From 854078bde1b8ecabc5eaab9df18cefcddf07d090 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 18 Nov 2024 21:25:44 +0100 Subject: [PATCH 001/176] GO-4231 Add recommendedFeaturedRelations sys rel --- pkg/lib/bundle/relation.gen.go | 283 ++++++++++++++------------ pkg/lib/bundle/relations.json | 13 ++ pkg/lib/bundle/systemRelations.gen.go | 3 +- pkg/lib/bundle/systemRelations.json | 3 +- 4 files changed, 166 insertions(+), 136 deletions(-) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 519184734..bd50220cc 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,141 +9,142 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "44f147da7e8233e89bb42533778c305d0735a54238aa2e5ba331a3396145450d" +const RelationChecksum = "98d4f22666ad37c13d524b51c0c940e0aef8d486ee83b2251c885b0dda9f1a36" const ( - RelationKeyTag domain.RelationKey = "tag" - RelationKeyCamera domain.RelationKey = "camera" - RelationKeyHeightInPixels domain.RelationKey = "heightInPixels" - RelationKeyCreatedDate domain.RelationKey = "createdDate" - RelationKeyToBeDeletedDate domain.RelationKey = "toBeDeletedDate" - RelationKeyRelationFormatObjectTypes domain.RelationKey = "relationFormatObjectTypes" - RelationKeyRelationKey domain.RelationKey = "relationKey" - RelationKeyRelationOptionColor domain.RelationKey = "relationOptionColor" - RelationKeyLatestAclHeadId domain.RelationKey = "latestAclHeadId" - RelationKeyDone domain.RelationKey = "done" - RelationKeyMediaArtistURL domain.RelationKey = "mediaArtistURL" - RelationKeyTemplateIsBundled domain.RelationKey = "templateIsBundled" - RelationKeyRestrictions domain.RelationKey = "restrictions" - RelationKeyReadersLimit domain.RelationKey = "readersLimit" - RelationKeyWritersLimit domain.RelationKey = "writersLimit" - RelationKeySharedSpacesLimit domain.RelationKey = "sharedSpacesLimit" - RelationKeyIsHighlighted domain.RelationKey = "isHighlighted" - RelationKeyTasks domain.RelationKey = "tasks" - RelationKeySnippet domain.RelationKey = "snippet" - RelationKeyRelationFormat domain.RelationKey = "relationFormat" - RelationKeyRelationReadonlyValue domain.RelationKey = "relationReadonlyValue" - RelationKeyIconImage domain.RelationKey = "iconImage" - RelationKeyIngredients domain.RelationKey = "ingredients" - RelationKeyGenre domain.RelationKey = "genre" - RelationKeyReleasedYear domain.RelationKey = "releasedYear" - RelationKeyCoverScale domain.RelationKey = "coverScale" - RelationKeyRelationDefaultValue domain.RelationKey = "relationDefaultValue" - RelationKeyLinkedProjects domain.RelationKey = "linkedProjects" - RelationKeyAudioAlbum domain.RelationKey = "audioAlbum" - RelationKeyLayoutAlign domain.RelationKey = "layoutAlign" - RelationKeyStatus domain.RelationKey = "status" - RelationKeyIsHidden domain.RelationKey = "isHidden" - RelationKeyIsHiddenDiscovery domain.RelationKey = "isHiddenDiscovery" - RelationKeyMediaArtistName domain.RelationKey = "mediaArtistName" - RelationKeyEmail domain.RelationKey = "email" - RelationKeyCompany domain.RelationKey = "company" - RelationKeyAperture domain.RelationKey = "aperture" - RelationKeyLastModifiedDate domain.RelationKey = "lastModifiedDate" - RelationKeyRecommendedRelations domain.RelationKey = "recommendedRelations" - RelationKeyCreator domain.RelationKey = "creator" - RelationKeyRecommendedLayout domain.RelationKey = "recommendedLayout" - RelationKeyLastOpenedDate domain.RelationKey = "lastOpenedDate" - RelationKeyAuthor domain.RelationKey = "author" - RelationKeyArtist domain.RelationKey = "artist" - RelationKeyDueDate domain.RelationKey = "dueDate" - RelationKeyIconEmoji domain.RelationKey = "iconEmoji" - RelationKeyCoverType domain.RelationKey = "coverType" - RelationKeyCoverY domain.RelationKey = "coverY" - RelationKeyTime domain.RelationKey = "time" - RelationKeySizeInBytes domain.RelationKey = "sizeInBytes" - RelationKeyCollectionOf domain.RelationKey = "collectionOf" - RelationKeyIsReadonly domain.RelationKey = "isReadonly" - RelationKeyAddedDate domain.RelationKey = "addedDate" - RelationKeyAssignee domain.RelationKey = "assignee" - RelationKeyExposure domain.RelationKey = "exposure" - RelationKeyTargetObjectType domain.RelationKey = "targetObjectType" - RelationKeyIsFavorite domain.RelationKey = "isFavorite" - RelationKeyWorkspaceId domain.RelationKey = "workspaceId" - RelationKeySpaceId domain.RelationKey = "spaceId" - RelationKeyAudioGenre domain.RelationKey = "audioGenre" - RelationKeyName domain.RelationKey = "name" - RelationKeyMood domain.RelationKey = "mood" - RelationKeyAudioLyrics domain.RelationKey = "audioLyrics" - RelationKeyFocalRatio domain.RelationKey = "focalRatio" - RelationKeyPriority domain.RelationKey = "priority" - RelationKeyFileMimeType domain.RelationKey = "fileMimeType" - RelationKeyType domain.RelationKey = "type" - RelationKeyLayout domain.RelationKey = "layout" - RelationKeyAudioAlbumTrackNumber domain.RelationKey = "audioAlbumTrackNumber" - RelationKeyInternalFlags domain.RelationKey = "internalFlags" - RelationKeyCoverX domain.RelationKey = "coverX" - RelationKeyDescription domain.RelationKey = "description" - RelationKeyPicture domain.RelationKey = "picture" - RelationKeyId domain.RelationKey = "id" - RelationKeyUrl domain.RelationKey = "url" - RelationKeyCameraIso domain.RelationKey = "cameraIso" - RelationKeyIsDeleted domain.RelationKey = "isDeleted" - RelationKeyLinks domain.RelationKey = "links" - RelationKeyCoverId domain.RelationKey = "coverId" - RelationKeyLastModifiedBy domain.RelationKey = "lastModifiedBy" - RelationKeyRelationMaxCount domain.RelationKey = "relationMaxCount" - RelationKeyWidthInPixels domain.RelationKey = "widthInPixels" - RelationKeyProgress domain.RelationKey = "progress" - RelationKeySetOf domain.RelationKey = "setOf" - RelationKeyIsArchived domain.RelationKey = "isArchived" - RelationKeyFileExt domain.RelationKey = "fileExt" - RelationKeyFeaturedRelations domain.RelationKey = "featuredRelations" - RelationKeyPhone domain.RelationKey = "phone" - RelationKeySmartblockTypes domain.RelationKey = "smartblockTypes" - RelationKeySource domain.RelationKey = "source" - RelationKeySourceObject domain.RelationKey = "sourceObject" - RelationKeyOldAnytypeID domain.RelationKey = "oldAnytypeID" - RelationKeySpaceDashboardId domain.RelationKey = "spaceDashboardId" - RelationKeyIconOption domain.RelationKey = "iconOption" - RelationKeySpaceAccessibility domain.RelationKey = "spaceAccessibility" - RelationKeySpaceAccessType domain.RelationKey = "spaceAccessType" - RelationKeySourceFilePath domain.RelationKey = "sourceFilePath" - RelationKeyFileSyncStatus domain.RelationKey = "fileSyncStatus" - RelationKeyFileBackupStatus domain.RelationKey = "fileBackupStatus" - RelationKeyFileIndexingStatus domain.RelationKey = "fileIndexingStatus" - RelationKeyLastChangeId domain.RelationKey = "lastChangeId" - RelationKeyStarred domain.RelationKey = "starred" - RelationKeyDefaultTemplateId domain.RelationKey = "defaultTemplateId" - RelationKeyUniqueKey domain.RelationKey = "uniqueKey" - RelationKeyBacklinks domain.RelationKey = "backlinks" - RelationKeyIsUninstalled domain.RelationKey = "isUninstalled" - RelationKeyOrigin domain.RelationKey = "origin" - RelationKeySpaceLocalStatus domain.RelationKey = "spaceLocalStatus" - RelationKeySpaceRemoteStatus domain.RelationKey = "spaceRemoteStatus" - RelationKeySpaceShareableStatus domain.RelationKey = "spaceShareableStatus" - RelationKeyIsAclShared domain.RelationKey = "isAclShared" - RelationKeySpaceAccountStatus domain.RelationKey = "spaceAccountStatus" - RelationKeySpaceInviteFileCid domain.RelationKey = "spaceInviteFileCid" - RelationKeySpaceInviteFileKey domain.RelationKey = "spaceInviteFileKey" - RelationKeyParticipantPermissions domain.RelationKey = "participantPermissions" - RelationKeyIdentity domain.RelationKey = "identity" - RelationKeyParticipantStatus domain.RelationKey = "participantStatus" - RelationKeyIdentityProfileLink domain.RelationKey = "identityProfileLink" - RelationKeyProfileOwnerIdentity domain.RelationKey = "profileOwnerIdentity" - RelationKeyTargetSpaceId domain.RelationKey = "targetSpaceId" - RelationKeyFileId domain.RelationKey = "fileId" - RelationKeyLastUsedDate domain.RelationKey = "lastUsedDate" - RelationKeyRevision domain.RelationKey = "revision" - RelationKeyImageKind domain.RelationKey = "imageKind" - RelationKeyImportType domain.RelationKey = "importType" - RelationKeyGlobalName domain.RelationKey = "globalName" - RelationKeySyncStatus domain.RelationKey = "syncStatus" - RelationKeySyncDate domain.RelationKey = "syncDate" - RelationKeySyncError domain.RelationKey = "syncError" - RelationKeyHasChat domain.RelationKey = "hasChat" - RelationKeyChatId domain.RelationKey = "chatId" - RelationKeyMentions domain.RelationKey = "mentions" - RelationKeyTimestamp domain.RelationKey = "timestamp" + RelationKeyTag domain.RelationKey = "tag" + RelationKeyCamera domain.RelationKey = "camera" + RelationKeyHeightInPixels domain.RelationKey = "heightInPixels" + RelationKeyCreatedDate domain.RelationKey = "createdDate" + RelationKeyToBeDeletedDate domain.RelationKey = "toBeDeletedDate" + RelationKeyRelationFormatObjectTypes domain.RelationKey = "relationFormatObjectTypes" + RelationKeyRelationKey domain.RelationKey = "relationKey" + RelationKeyRelationOptionColor domain.RelationKey = "relationOptionColor" + RelationKeyLatestAclHeadId domain.RelationKey = "latestAclHeadId" + RelationKeyDone domain.RelationKey = "done" + RelationKeyMediaArtistURL domain.RelationKey = "mediaArtistURL" + RelationKeyTemplateIsBundled domain.RelationKey = "templateIsBundled" + RelationKeyRestrictions domain.RelationKey = "restrictions" + RelationKeyReadersLimit domain.RelationKey = "readersLimit" + RelationKeyWritersLimit domain.RelationKey = "writersLimit" + RelationKeySharedSpacesLimit domain.RelationKey = "sharedSpacesLimit" + RelationKeyIsHighlighted domain.RelationKey = "isHighlighted" + RelationKeyTasks domain.RelationKey = "tasks" + RelationKeySnippet domain.RelationKey = "snippet" + RelationKeyRelationFormat domain.RelationKey = "relationFormat" + RelationKeyRelationReadonlyValue domain.RelationKey = "relationReadonlyValue" + RelationKeyIconImage domain.RelationKey = "iconImage" + RelationKeyIngredients domain.RelationKey = "ingredients" + RelationKeyGenre domain.RelationKey = "genre" + RelationKeyReleasedYear domain.RelationKey = "releasedYear" + RelationKeyCoverScale domain.RelationKey = "coverScale" + RelationKeyRelationDefaultValue domain.RelationKey = "relationDefaultValue" + RelationKeyLinkedProjects domain.RelationKey = "linkedProjects" + RelationKeyAudioAlbum domain.RelationKey = "audioAlbum" + RelationKeyLayoutAlign domain.RelationKey = "layoutAlign" + RelationKeyStatus domain.RelationKey = "status" + RelationKeyIsHidden domain.RelationKey = "isHidden" + RelationKeyIsHiddenDiscovery domain.RelationKey = "isHiddenDiscovery" + RelationKeyMediaArtistName domain.RelationKey = "mediaArtistName" + RelationKeyEmail domain.RelationKey = "email" + RelationKeyCompany domain.RelationKey = "company" + RelationKeyAperture domain.RelationKey = "aperture" + RelationKeyLastModifiedDate domain.RelationKey = "lastModifiedDate" + RelationKeyRecommendedRelations domain.RelationKey = "recommendedRelations" + RelationKeyCreator domain.RelationKey = "creator" + RelationKeyRecommendedLayout domain.RelationKey = "recommendedLayout" + RelationKeyLastOpenedDate domain.RelationKey = "lastOpenedDate" + RelationKeyAuthor domain.RelationKey = "author" + RelationKeyArtist domain.RelationKey = "artist" + RelationKeyDueDate domain.RelationKey = "dueDate" + RelationKeyIconEmoji domain.RelationKey = "iconEmoji" + RelationKeyCoverType domain.RelationKey = "coverType" + RelationKeyCoverY domain.RelationKey = "coverY" + RelationKeyTime domain.RelationKey = "time" + RelationKeySizeInBytes domain.RelationKey = "sizeInBytes" + RelationKeyCollectionOf domain.RelationKey = "collectionOf" + RelationKeyIsReadonly domain.RelationKey = "isReadonly" + RelationKeyAddedDate domain.RelationKey = "addedDate" + RelationKeyAssignee domain.RelationKey = "assignee" + RelationKeyExposure domain.RelationKey = "exposure" + RelationKeyTargetObjectType domain.RelationKey = "targetObjectType" + RelationKeyIsFavorite domain.RelationKey = "isFavorite" + RelationKeyWorkspaceId domain.RelationKey = "workspaceId" + RelationKeySpaceId domain.RelationKey = "spaceId" + RelationKeyAudioGenre domain.RelationKey = "audioGenre" + RelationKeyName domain.RelationKey = "name" + RelationKeyMood domain.RelationKey = "mood" + RelationKeyAudioLyrics domain.RelationKey = "audioLyrics" + RelationKeyFocalRatio domain.RelationKey = "focalRatio" + RelationKeyPriority domain.RelationKey = "priority" + RelationKeyFileMimeType domain.RelationKey = "fileMimeType" + RelationKeyType domain.RelationKey = "type" + RelationKeyLayout domain.RelationKey = "layout" + RelationKeyAudioAlbumTrackNumber domain.RelationKey = "audioAlbumTrackNumber" + RelationKeyInternalFlags domain.RelationKey = "internalFlags" + RelationKeyCoverX domain.RelationKey = "coverX" + RelationKeyDescription domain.RelationKey = "description" + RelationKeyPicture domain.RelationKey = "picture" + RelationKeyId domain.RelationKey = "id" + RelationKeyUrl domain.RelationKey = "url" + RelationKeyCameraIso domain.RelationKey = "cameraIso" + RelationKeyIsDeleted domain.RelationKey = "isDeleted" + RelationKeyLinks domain.RelationKey = "links" + RelationKeyCoverId domain.RelationKey = "coverId" + RelationKeyLastModifiedBy domain.RelationKey = "lastModifiedBy" + RelationKeyRelationMaxCount domain.RelationKey = "relationMaxCount" + RelationKeyWidthInPixels domain.RelationKey = "widthInPixels" + RelationKeyProgress domain.RelationKey = "progress" + RelationKeySetOf domain.RelationKey = "setOf" + RelationKeyIsArchived domain.RelationKey = "isArchived" + RelationKeyFileExt domain.RelationKey = "fileExt" + RelationKeyFeaturedRelations domain.RelationKey = "featuredRelations" + RelationKeyPhone domain.RelationKey = "phone" + RelationKeySmartblockTypes domain.RelationKey = "smartblockTypes" + RelationKeySource domain.RelationKey = "source" + RelationKeySourceObject domain.RelationKey = "sourceObject" + RelationKeyOldAnytypeID domain.RelationKey = "oldAnytypeID" + RelationKeySpaceDashboardId domain.RelationKey = "spaceDashboardId" + RelationKeyIconOption domain.RelationKey = "iconOption" + RelationKeySpaceAccessibility domain.RelationKey = "spaceAccessibility" + RelationKeySpaceAccessType domain.RelationKey = "spaceAccessType" + RelationKeySourceFilePath domain.RelationKey = "sourceFilePath" + RelationKeyFileSyncStatus domain.RelationKey = "fileSyncStatus" + RelationKeyFileBackupStatus domain.RelationKey = "fileBackupStatus" + RelationKeyFileIndexingStatus domain.RelationKey = "fileIndexingStatus" + RelationKeyLastChangeId domain.RelationKey = "lastChangeId" + RelationKeyStarred domain.RelationKey = "starred" + RelationKeyDefaultTemplateId domain.RelationKey = "defaultTemplateId" + RelationKeyUniqueKey domain.RelationKey = "uniqueKey" + RelationKeyBacklinks domain.RelationKey = "backlinks" + RelationKeyIsUninstalled domain.RelationKey = "isUninstalled" + RelationKeyOrigin domain.RelationKey = "origin" + RelationKeySpaceLocalStatus domain.RelationKey = "spaceLocalStatus" + RelationKeySpaceRemoteStatus domain.RelationKey = "spaceRemoteStatus" + RelationKeySpaceShareableStatus domain.RelationKey = "spaceShareableStatus" + RelationKeyIsAclShared domain.RelationKey = "isAclShared" + RelationKeySpaceAccountStatus domain.RelationKey = "spaceAccountStatus" + RelationKeySpaceInviteFileCid domain.RelationKey = "spaceInviteFileCid" + RelationKeySpaceInviteFileKey domain.RelationKey = "spaceInviteFileKey" + RelationKeyParticipantPermissions domain.RelationKey = "participantPermissions" + RelationKeyIdentity domain.RelationKey = "identity" + RelationKeyParticipantStatus domain.RelationKey = "participantStatus" + RelationKeyIdentityProfileLink domain.RelationKey = "identityProfileLink" + RelationKeyProfileOwnerIdentity domain.RelationKey = "profileOwnerIdentity" + RelationKeyTargetSpaceId domain.RelationKey = "targetSpaceId" + RelationKeyFileId domain.RelationKey = "fileId" + RelationKeyLastUsedDate domain.RelationKey = "lastUsedDate" + RelationKeyRevision domain.RelationKey = "revision" + RelationKeyImageKind domain.RelationKey = "imageKind" + RelationKeyImportType domain.RelationKey = "importType" + RelationKeyGlobalName domain.RelationKey = "globalName" + RelationKeySyncStatus domain.RelationKey = "syncStatus" + RelationKeySyncDate domain.RelationKey = "syncDate" + RelationKeySyncError domain.RelationKey = "syncError" + RelationKeyHasChat domain.RelationKey = "hasChat" + RelationKeyChatId domain.RelationKey = "chatId" + RelationKeyMentions domain.RelationKey = "mentions" + RelationKeyTimestamp domain.RelationKey = "timestamp" + RelationKeyRecommendedFeaturedRelations domain.RelationKey = "recommendedFeaturedRelations" ) var ( @@ -1288,6 +1289,20 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyRecommendedFeaturedRelations: { + + DataSource: model.Relation_details, + Description: "List of recommended featured relations", + Format: model.RelationFormat_object, + Hidden: true, + Id: "_brrecommendedFeaturedRelations", + Key: "recommendedFeaturedRelations", + Name: "Recommended featured relations", + ObjectTypes: []string{TypePrefix + "relation"}, + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyRecommendedLayout: { DataSource: model.Relation_details, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index 30ccb09fb..7ee393088 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1360,5 +1360,18 @@ "name": "Timestamp", "readonly": true, "source": "derived" + }, + { + "description": "List of recommended featured relations", + "format": "object", + "hidden": true, + "key": "recommendedFeaturedRelations", + "maxCount": 0, + "name": "Recommended featured relations", + "objectTypes": [ + "relation" + ], + "readonly": false, + "source": "details" } ] diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index f43d21d81..2f4a6f402 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "cebd4ab7522c2ca901215e20861e005c1ad1a6ca2a77d7c1205e9e51edd901db" +const SystemRelationsChecksum = "11ca17268a1ec86e67904f9379fba4b70152fe4f6e88db3d046b6a518fe8ccd4" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations @@ -82,4 +82,5 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyChatId, RelationKeyHasChat, RelationKeyTimestamp, + RelationKeyRecommendedFeaturedRelations, }...) diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index 67fac4e2e..d80b4eb4b 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -90,5 +90,6 @@ "mentions", "chatId", "hasChat", - "timestamp" + "timestamp", + "recommendedFeaturedRelations" ] From 3872ca51d45b2310d5f7a64aa18c63893b99c53d Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 21 Nov 2024 12:20:21 +0100 Subject: [PATCH 002/176] GO-4277 Make 5 relations hidden --- pkg/lib/bundle/relation.gen.go | 12 +++++++++++- pkg/lib/bundle/relations.json | 25 +++++++++++++++---------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 519184734..e5b4b49ed 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "44f147da7e8233e89bb42533778c305d0735a54238aa2e5ba331a3396145450d" +const RelationChecksum = "c034a14af3fc7980c46e74d91399e0a624ae73b73976e6b452170c7cfffaee34" const ( RelationKeyTag domain.RelationKey = "tag" RelationKeyCamera domain.RelationKey = "camera" @@ -649,12 +649,14 @@ var ( DataSource: model.Relation_derived, Description: "Name of profile that the user could be mentioned by", Format: model.RelationFormat_shorttext, + Hidden: true, Id: "_brglobalName", Key: "globalName", MaxCount: 1, Name: "Global name", ReadOnly: true, ReadOnlyRelation: true, + Revision: 1, Scope: model.Relation_type, }, RelationKeyHasChat: { @@ -1253,12 +1255,14 @@ var ( DataSource: model.Relation_derived, Description: "Link the profile object to specific Identity", Format: model.RelationFormat_shorttext, + Hidden: true, Id: "_brprofileOwnerIdentity", Key: "profileOwnerIdentity", MaxCount: 1, Name: "Anytype Identity", ReadOnly: true, ReadOnlyRelation: true, + Revision: 1, Scope: model.Relation_type, }, RelationKeyProgress: { @@ -1321,12 +1325,14 @@ var ( DataSource: model.Relation_details, Description: "", Format: model.RelationFormat_longtext, + Hidden: true, Id: "_brrelationDefaultValue", Key: "relationDefaultValue", MaxCount: 1, Name: "Default value", ReadOnly: false, ReadOnlyRelation: true, + Revision: 1, Scope: model.Relation_type, }, RelationKeyRelationFormat: { @@ -1375,12 +1381,14 @@ var ( DataSource: model.Relation_details, Description: "Relation allows multi values", Format: model.RelationFormat_number, + Hidden: true, Id: "_brrelationMaxCount", Key: "relationMaxCount", MaxCount: 1, Name: "Max values", ReadOnly: false, ReadOnlyRelation: true, + Revision: 1, Scope: model.Relation_type, }, RelationKeyRelationOptionColor: { @@ -1456,12 +1464,14 @@ var ( DataSource: model.Relation_details, Description: "Point to the object types or realtions used to aggregate the set. Empty means object of all types will be aggregated ", Format: model.RelationFormat_object, + Hidden: true, Id: "_brsetOf", Key: "setOf", Name: "Set of", ObjectTypes: []string{TypePrefix + "objectType"}, ReadOnly: true, ReadOnlyRelation: true, + Revision: 1, Scope: model.Relation_type, }, RelationKeySharedSpacesLimit: { diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index 30ccb09fb..2c73fad7b 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -265,12 +265,13 @@ }, { "format": "longtext", - "hidden": false, + "hidden": true, "key": "relationDefaultValue", "maxCount": 1, "name": "Default value", "readonly": false, - "source": "details" + "source": "details", + "revision": 1 }, { "format": "object", @@ -835,12 +836,13 @@ { "description": "Relation allows multi values", "format": "number", - "hidden": false, + "hidden": true, "key": "relationMaxCount", "maxCount": 1, "name": "Max values", "readonly": false, - "source": "details" + "source": "details", + "revision": 1 }, { "description": "Width of image/video in pixels", @@ -864,7 +866,7 @@ { "description": "Point to the object types or realtions used to aggregate the set. Empty means object of all types will be aggregated ", "format": "object", - "hidden": false, + "hidden": true, "key": "setOf", "maxCount": 0, "name": "Set of", @@ -872,7 +874,8 @@ "objectType" ], "readonly": true, - "source": "details" + "source": "details", + "revision": 1 }, { "description": "Hides the object", @@ -1217,10 +1220,11 @@ "format": "shorttext", "key": "profileOwnerIdentity", "maxCount": 1, - "hidden": false, + "hidden": true, "name": "Anytype Identity", "readonly": true, - "source": "derived" + "source": "derived", + "revision": 1 }, { "description": "Relation that indicates the real space id on the spaceView", @@ -1284,12 +1288,13 @@ { "description": "Name of profile that the user could be mentioned by", "format": "shorttext", - "hidden": false, + "hidden": true, "key": "globalName", "maxCount": 1, "name": "Global name", "readonly": true, - "source": "derived" + "source": "derived", + "revision": 1 }, { "description": "Object sync status", From 9450a600cda1a721fa8436cc0baf5b44679ea9ed Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 25 Nov 2024 12:58:09 +0100 Subject: [PATCH 003/176] GO-4231 Relations setting RPCs --- clientlibrary/service/service.pb.go | 734 +++-- core/block/detailservice/relations.go | 33 + core/block/detailservice/service.go | 2 + core/relations.go | 38 + docs/proto.md | 165 + pb/commands.pb.go | 4068 +++++++++++++++++-------- pb/protos/commands.proto | 50 + pb/protos/service/service.proto | 2 + pb/service/service.pb.go | 732 +++-- 9 files changed, 3971 insertions(+), 1853 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 6b30615df..97a66bf2a 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,334 +25,338 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5225 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0x5b, 0x6f, 0x24, 0x49, - 0x56, 0xf8, 0xc7, 0x2f, 0xff, 0xf9, 0x93, 0xcb, 0x0e, 0x50, 0x03, 0xc3, 0xec, 0xb0, 0xdb, 0xb7, - 0xe9, 0xb6, 0xdd, 0x6d, 0xbb, 0xdc, 0xd3, 0x3d, 0x3d, 0xb3, 0xda, 0x45, 0x42, 0x6e, 0xbb, 0xed, - 0x31, 0x6b, 0xbb, 0x8d, 0xab, 0xdc, 0x2d, 0x8d, 0x84, 0x44, 0x3a, 0x2b, 0x5c, 0x4e, 0x9c, 0x95, - 0x91, 0x9b, 0x19, 0x55, 0xee, 0x5a, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0x6e, 0xaf, 0x48, - 0x7c, 0x05, 0xbe, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe0, 0x6b, 0xa0, 0x8c, 0x88, 0x8c, - 0xcb, 0xc9, 0x73, 0x22, 0xd3, 0xfb, 0xd4, 0xad, 0x3a, 0xbf, 0x73, 0x4e, 0x5c, 0x4f, 0x9c, 0x88, - 0x8c, 0x4c, 0x47, 0x77, 0x8b, 0x8b, 0xed, 0xa2, 0xe4, 0x82, 0x57, 0xdb, 0x15, 0x2b, 0x17, 0x69, - 0xc2, 0x9a, 0x7f, 0x87, 0xf2, 0xe7, 0xc1, 0xfb, 0x71, 0xbe, 0x14, 0xcb, 0x82, 0x7d, 0xf2, 0xb1, - 0x25, 0x13, 0x3e, 0x9b, 0xc5, 0xf9, 0xa4, 0x52, 0xc8, 0x27, 0x1f, 0x59, 0x09, 0x5b, 0xb0, 0x5c, - 0xe8, 0xdf, 0x9f, 0xfd, 0xe7, 0xff, 0xae, 0x44, 0x1f, 0xec, 0x66, 0x29, 0xcb, 0xc5, 0xae, 0xd6, - 0x18, 0x7c, 0x1d, 0x7d, 0x77, 0xa7, 0x28, 0x0e, 0x98, 0x78, 0xc3, 0xca, 0x2a, 0xe5, 0xf9, 0xe0, - 0xd3, 0xa1, 0x76, 0x30, 0x3c, 0x2b, 0x92, 0xe1, 0x4e, 0x51, 0x0c, 0xad, 0x70, 0x78, 0xc6, 0x7e, - 0x3a, 0x67, 0x95, 0xf8, 0xe4, 0x61, 0x18, 0xaa, 0x0a, 0x9e, 0x57, 0x6c, 0x70, 0x19, 0xfd, 0xc6, - 0x4e, 0x51, 0x8c, 0x98, 0xd8, 0x63, 0x75, 0x05, 0x46, 0x22, 0x16, 0x6c, 0xb0, 0xd6, 0x52, 0xf5, - 0x01, 0xe3, 0x63, 0xbd, 0x1b, 0xd4, 0x7e, 0xc6, 0xd1, 0x77, 0x6a, 0x3f, 0x57, 0x73, 0x31, 0xe1, - 0x37, 0xf9, 0xe0, 0x7e, 0x5b, 0x51, 0x8b, 0x8c, 0xed, 0x07, 0x21, 0x44, 0x5b, 0x7d, 0x1b, 0xfd, - 0xea, 0xdb, 0x38, 0xcb, 0x98, 0xd8, 0x2d, 0x59, 0x5d, 0x70, 0x5f, 0x47, 0x89, 0x86, 0x4a, 0x66, - 0xec, 0x7e, 0x1a, 0x64, 0xb4, 0xe1, 0xaf, 0xa3, 0xef, 0x2a, 0xc9, 0x19, 0x4b, 0xf8, 0x82, 0x95, - 0x03, 0x54, 0x4b, 0x0b, 0x89, 0x26, 0x6f, 0x41, 0xd0, 0xf6, 0x2e, 0xcf, 0x17, 0xac, 0x14, 0xb8, - 0x6d, 0x2d, 0x0c, 0xdb, 0xb6, 0x90, 0xb6, 0xfd, 0xb7, 0x2b, 0xd1, 0xf7, 0x77, 0x92, 0x84, 0xcf, - 0x73, 0x71, 0xc4, 0x93, 0x38, 0x3b, 0x4a, 0xf3, 0xeb, 0x13, 0x76, 0xb3, 0x7b, 0x55, 0xf3, 0xf9, - 0x94, 0x0d, 0x9e, 0xfb, 0xad, 0xaa, 0xd0, 0xa1, 0x61, 0x87, 0x2e, 0x6c, 0x7c, 0x7f, 0x7e, 0x3b, - 0x25, 0x5d, 0x96, 0x7f, 0x5c, 0x89, 0xee, 0xc0, 0xb2, 0x8c, 0x78, 0xb6, 0x60, 0xb6, 0x34, 0x2f, - 0x3a, 0x0c, 0xfb, 0xb8, 0x29, 0xcf, 0x17, 0xb7, 0x55, 0xd3, 0x25, 0xca, 0xa2, 0x0f, 0xdd, 0xe1, - 0x32, 0x62, 0x95, 0x9c, 0x4e, 0x8f, 0xe9, 0x11, 0xa1, 0x11, 0xe3, 0xf9, 0x49, 0x1f, 0x54, 0x7b, - 0x4b, 0xa3, 0x81, 0xf6, 0x96, 0xf1, 0xca, 0x38, 0x5b, 0x47, 0x2d, 0x38, 0x84, 0xf1, 0xf5, 0xb8, - 0x07, 0xa9, 0x5d, 0xfd, 0x51, 0xf4, 0x6b, 0x6f, 0x79, 0x79, 0x5d, 0x15, 0x71, 0xc2, 0xf4, 0x54, - 0x78, 0xe4, 0x6b, 0x37, 0x52, 0x38, 0x1b, 0x56, 0xbb, 0x30, 0x67, 0xd0, 0x36, 0xc2, 0xd7, 0x05, - 0x83, 0x31, 0xc8, 0x2a, 0xd6, 0x42, 0x6a, 0xd0, 0x42, 0x48, 0xdb, 0xbe, 0x8e, 0x06, 0xd6, 0xf6, - 0xc5, 0x1f, 0xb3, 0x44, 0xec, 0x4c, 0x26, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x86, 0x3b, 0x93, 0x09, - 0xd5, 0x2b, 0x38, 0xaa, 0x9d, 0xdd, 0x44, 0x1f, 0x01, 0x67, 0x47, 0x69, 0x25, 0x1d, 0x6e, 0x85, - 0xad, 0x68, 0xcc, 0x38, 0x1d, 0xf6, 0xc5, 0xb5, 0xe3, 0x3f, 0x5f, 0x89, 0xbe, 0x87, 0x78, 0x3e, - 0x63, 0x33, 0xbe, 0x60, 0x83, 0xa7, 0xdd, 0xd6, 0x14, 0x69, 0xfc, 0x7f, 0x76, 0x0b, 0x0d, 0x64, - 0x98, 0x8c, 0x58, 0xc6, 0x12, 0x41, 0x0e, 0x13, 0x25, 0xee, 0x1c, 0x26, 0x06, 0x73, 0x66, 0x58, - 0x23, 0x3c, 0x60, 0x62, 0x77, 0x5e, 0x96, 0x2c, 0x17, 0x64, 0x5f, 0x5a, 0xa4, 0xb3, 0x2f, 0x3d, - 0x14, 0xa9, 0xcf, 0x01, 0x13, 0x3b, 0x59, 0x46, 0xd6, 0x47, 0x89, 0x3b, 0xeb, 0x63, 0x30, 0xed, - 0x21, 0x89, 0x7e, 0xdd, 0x69, 0x31, 0x71, 0x98, 0x5f, 0xf2, 0x01, 0xdd, 0x16, 0x52, 0x6e, 0x7c, - 0xac, 0x75, 0x72, 0x48, 0x35, 0x5e, 0xbd, 0x2b, 0x78, 0x49, 0x77, 0x8b, 0x12, 0x77, 0x56, 0xc3, - 0x60, 0xda, 0xc3, 0x1f, 0x46, 0x1f, 0xe8, 0x28, 0xd9, 0xac, 0x67, 0x0f, 0xd1, 0x10, 0x0a, 0x17, - 0xb4, 0x47, 0x1d, 0x94, 0x0d, 0x0e, 0x5a, 0xa6, 0x83, 0xcf, 0xa7, 0xa8, 0x1e, 0x08, 0x3d, 0x0f, - 0xc3, 0x50, 0xcb, 0xf6, 0x1e, 0xcb, 0x18, 0x69, 0x5b, 0x09, 0x3b, 0x6c, 0x1b, 0x48, 0xdb, 0x2e, - 0xa3, 0xdf, 0x32, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x0d, 0xa2, 0xde, 0x2e, 0x64, - 0x7c, 0x6d, 0xf6, 0x83, 0x5b, 0xf5, 0xd1, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0x0f, 0xc3, 0x90, - 0xb6, 0xfd, 0x77, 0x2b, 0xd1, 0x0f, 0xb4, 0xec, 0x55, 0x1e, 0x5f, 0x64, 0x4c, 0x2e, 0x89, 0x27, - 0x4c, 0xdc, 0xf0, 0xf2, 0x7a, 0xb4, 0xcc, 0x13, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, 0x54, - 0x72, 0x32, 0x3e, 0x5d, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0x35, 0x35, 0x10, 0xbc, 0xa0, 0x32, 0x3e, - 0x1f, 0x69, 0x59, 0x3d, 0xae, 0xc3, 0x26, 0x6e, 0xf5, 0xd8, 0x8d, 0x93, 0x0f, 0x42, 0x88, 0x0d, - 0x5b, 0xcd, 0x00, 0xe6, 0xf9, 0x65, 0x3a, 0x3d, 0x2f, 0x26, 0xf5, 0x30, 0x7e, 0x8c, 0x8f, 0x50, - 0x07, 0x21, 0xc2, 0x16, 0x81, 0x6a, 0x6f, 0xff, 0x60, 0x13, 0x23, 0x3d, 0x95, 0xf6, 0x4b, 0x3e, - 0x3b, 0x62, 0xd3, 0x38, 0x59, 0xea, 0xf9, 0xff, 0x79, 0x68, 0xe2, 0x41, 0xda, 0x14, 0xe2, 0xc5, - 0x2d, 0xb5, 0x74, 0x79, 0xfe, 0x7d, 0x25, 0x7a, 0xd8, 0x54, 0xff, 0x2a, 0xce, 0xa7, 0x4c, 0xf7, - 0xa7, 0x2a, 0xfd, 0x4e, 0x3e, 0x39, 0x63, 0x95, 0x88, 0x4b, 0x31, 0xf8, 0x11, 0x5e, 0xc9, 0x90, - 0x8e, 0x29, 0xdb, 0x8f, 0x7f, 0x29, 0x5d, 0xdb, 0xeb, 0xa3, 0x3a, 0xb0, 0xe9, 0x10, 0xe0, 0xf7, - 0xba, 0x94, 0xc0, 0x00, 0xf0, 0x20, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xc3, 0x7c, 0x91, 0x0a, 0x76, - 0xc0, 0x72, 0x56, 0xb6, 0x7b, 0x5d, 0xa9, 0xfa, 0x08, 0xd1, 0xeb, 0x04, 0x6a, 0x83, 0x8d, 0xe7, - 0xcd, 0x2c, 0x8e, 0x1b, 0x01, 0x23, 0xad, 0xe5, 0x71, 0xb3, 0x1f, 0x6c, 0x77, 0x77, 0x8e, 0xcf, - 0x33, 0xb6, 0xe0, 0xd7, 0x70, 0x77, 0xe7, 0x9a, 0x50, 0x00, 0xb1, 0xbb, 0x43, 0x41, 0xbb, 0x82, - 0x39, 0x7e, 0xde, 0xa4, 0xec, 0x06, 0xac, 0x60, 0xae, 0x72, 0x2d, 0x26, 0x56, 0x30, 0x04, 0xd3, - 0x1e, 0x4e, 0xa2, 0x5f, 0x91, 0xc2, 0xdf, 0xe7, 0x69, 0x3e, 0xb8, 0x8b, 0x28, 0xd5, 0x02, 0x63, - 0xf5, 0x1e, 0x0d, 0x80, 0x12, 0xd7, 0xbf, 0xee, 0xc6, 0x79, 0xc2, 0x32, 0xb4, 0xc4, 0x56, 0x1c, - 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xba, 0x8a, 0xcb, 0x34, 0x9f, 0x0e, - 0x30, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x56, 0xdc, 0x29, 0x8a, 0xb2, 0x0e, - 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x3d, 0x96, 0x64, 0x69, 0x1e, - 0xf4, 0xa6, 0x91, 0x3e, 0xde, 0x2c, 0x0a, 0x06, 0xef, 0x11, 0x8b, 0x17, 0xac, 0xa9, 0x19, 0xd6, - 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8e, 0xaf, 0x59, 0xdd, 0xc0, - 0xac, 0x5e, 0xd7, 0x06, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0xd4, 0xae, 0xe6, 0xd1, 0x47, - 0x52, 0x7e, 0x1a, 0x97, 0x22, 0x4d, 0xd2, 0x22, 0xce, 0x9b, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, 0xca, - 0xb8, 0xdc, 0xea, 0x49, 0x6b, 0xb7, 0xff, 0xb6, 0x12, 0xdd, 0x87, 0x7e, 0x4f, 0x59, 0x39, 0x4b, - 0xe5, 0x36, 0xb2, 0x52, 0x41, 0x78, 0xf0, 0x65, 0xd8, 0x68, 0x4b, 0xc1, 0x94, 0xe6, 0x87, 0xb7, - 0x57, 0xd4, 0x05, 0xfb, 0x83, 0x28, 0x52, 0xdb, 0x15, 0xb9, 0xa5, 0xf4, 0x67, 0xad, 0xde, 0xc7, - 0x78, 0xfb, 0xc9, 0xfb, 0x01, 0xc2, 0x2e, 0x15, 0xea, 0x77, 0xb9, 0x53, 0x1e, 0xa0, 0x1a, 0x52, - 0x44, 0x2c, 0x15, 0x00, 0x81, 0x05, 0x1d, 0x5d, 0xf1, 0x1b, 0xbc, 0xa0, 0xb5, 0x24, 0x5c, 0x50, - 0x4d, 0xd8, 0xb3, 0x2b, 0x5d, 0x50, 0xec, 0xec, 0xaa, 0x29, 0x46, 0xe8, 0xec, 0x0a, 0x32, 0xda, - 0x30, 0x8f, 0x7e, 0xd3, 0x35, 0xfc, 0x92, 0xf3, 0xeb, 0x59, 0x5c, 0x5e, 0x0f, 0x9e, 0xd0, 0xca, - 0x0d, 0x63, 0x1c, 0x6d, 0xf4, 0x62, 0x6d, 0x58, 0x70, 0x1d, 0xd6, 0x89, 0xc6, 0x79, 0x99, 0x81, - 0xb0, 0xe0, 0xd9, 0xd0, 0x08, 0x11, 0x16, 0x08, 0xd4, 0x46, 0x6e, 0xd7, 0xdb, 0x88, 0xc1, 0xdd, - 0x92, 0xa7, 0x3e, 0x62, 0xd4, 0x6e, 0x09, 0xc1, 0xe0, 0x10, 0x3a, 0x28, 0xe3, 0xe2, 0x0a, 0x1f, - 0x42, 0x52, 0x14, 0x1e, 0x42, 0x0d, 0x02, 0xfb, 0x7b, 0xc4, 0xe2, 0x32, 0xb9, 0xc2, 0xfb, 0x5b, - 0xc9, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x4a, 0xf0, 0x36, 0x15, 0x57, 0xc7, 0x4c, 0xc4, 0x78, - 0x7f, 0xfb, 0x4c, 0xb8, 0xbf, 0x5b, 0xac, 0xcd, 0x64, 0x5c, 0x87, 0xa3, 0xf9, 0x45, 0x95, 0x94, - 0xe9, 0x05, 0x1b, 0x04, 0xac, 0x18, 0x88, 0xc8, 0x64, 0x48, 0x58, 0xfb, 0xfc, 0xf9, 0x4a, 0x74, - 0xb7, 0xe9, 0x76, 0x5e, 0x55, 0x6a, 0x65, 0x05, 0xee, 0x5f, 0xe0, 0xfd, 0x4b, 0xe0, 0xc4, 0x69, - 0x62, 0x0f, 0x35, 0x27, 0xaa, 0xe2, 0x45, 0x3a, 0xcf, 0x2b, 0x53, 0xa8, 0x2f, 0xfb, 0x58, 0x77, - 0x14, 0x88, 0xa8, 0xda, 0x4b, 0xd1, 0x2e, 0x68, 0xba, 0x7f, 0x1a, 0xd9, 0xe1, 0xa4, 0x02, 0x0b, - 0x5a, 0xd3, 0xde, 0x0e, 0x41, 0x2c, 0x68, 0x38, 0x09, 0x87, 0xc2, 0x41, 0xc9, 0xe7, 0x45, 0xd5, - 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xfb, 0x7c, 0x17, 0xfd, 0xb6, 0x3b, 0xfc, 0xdc, - 0xc6, 0xde, 0xa2, 0xc7, 0x14, 0xd6, 0xc4, 0xc3, 0xbe, 0xb8, 0x4d, 0xe9, 0x1a, 0xcf, 0x62, 0x8f, - 0x89, 0x38, 0xcd, 0xaa, 0xc1, 0x2a, 0x6e, 0xa3, 0x91, 0x13, 0x29, 0x1d, 0xc6, 0xc1, 0xf8, 0xb6, - 0x37, 0x2f, 0xb2, 0x34, 0x69, 0x9f, 0xe5, 0x6a, 0x5d, 0x23, 0x0e, 0xc7, 0x37, 0x17, 0x83, 0xf1, - 0x7a, 0xc4, 0x84, 0xfa, 0xcf, 0x78, 0x59, 0x30, 0x3c, 0x5e, 0x7b, 0x48, 0x38, 0x5e, 0x43, 0x14, - 0xd6, 0x67, 0xc4, 0xc4, 0x51, 0xbc, 0xe4, 0x73, 0x22, 0x5e, 0x1b, 0x71, 0xb8, 0x3e, 0x2e, 0x66, - 0xb3, 0x2a, 0xe3, 0xe1, 0x30, 0x17, 0xac, 0xcc, 0xe3, 0x6c, 0x3f, 0x8b, 0xa7, 0xd5, 0x80, 0x88, - 0x31, 0x3e, 0x45, 0x64, 0x55, 0x34, 0x8d, 0x34, 0xe3, 0x61, 0xb5, 0x1f, 0x2f, 0x78, 0x99, 0x0a, - 0xba, 0x19, 0x2d, 0xd2, 0xd9, 0x8c, 0x1e, 0x8a, 0x7a, 0xdb, 0x29, 0x93, 0xab, 0x74, 0xc1, 0x26, - 0x01, 0x6f, 0x0d, 0xd2, 0xc3, 0x9b, 0x83, 0x22, 0x9d, 0x36, 0xe2, 0xf3, 0x32, 0x61, 0x64, 0xa7, - 0x29, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x7b, 0xf8, 0xab, 0x95, 0xe8, 0x77, 0x94, 0xd4, 0x3d, 0x60, - 0xdd, 0x8b, 0xab, 0xab, 0x0b, 0x1e, 0x97, 0x93, 0xc1, 0x67, 0x98, 0x1d, 0x14, 0x35, 0xae, 0x9f, - 0xdd, 0x46, 0x05, 0x36, 0xeb, 0x51, 0x5a, 0x39, 0x33, 0x0e, 0x6d, 0x56, 0x0f, 0x09, 0x37, 0x2b, - 0x44, 0x61, 0x00, 0x91, 0x72, 0x75, 0x98, 0xb1, 0x4a, 0xea, 0xfb, 0x27, 0x1a, 0x6b, 0x9d, 0x1c, - 0x8c, 0x8f, 0xb5, 0xd0, 0x1f, 0x2d, 0x5b, 0x94, 0x0d, 0x7c, 0xc4, 0x0c, 0xfb, 0xe2, 0xa4, 0x67, - 0x33, 0x2b, 0xc2, 0x9e, 0x5b, 0x33, 0x63, 0xd8, 0x17, 0x27, 0x3c, 0x3b, 0x61, 0x2d, 0xe4, 0x19, - 0x09, 0x6d, 0xc3, 0xbe, 0x38, 0xcc, 0xbe, 0x34, 0xd3, 0xac, 0x0b, 0x4f, 0x02, 0x76, 0xe0, 0xda, - 0xb0, 0xd1, 0x8b, 0xd5, 0x0e, 0xff, 0x66, 0x25, 0xfa, 0xbe, 0xf5, 0x78, 0xcc, 0x27, 0xe9, 0xe5, - 0x52, 0x41, 0x6f, 0xe2, 0x6c, 0xce, 0xaa, 0xc1, 0x33, 0xca, 0x5a, 0x9b, 0x35, 0x25, 0x78, 0x7e, - 0x2b, 0x1d, 0x38, 0x77, 0x76, 0x8a, 0x22, 0x5b, 0x8e, 0xd9, 0xac, 0xc8, 0xc8, 0xb9, 0xe3, 0x21, - 0xe1, 0xb9, 0x03, 0x51, 0x98, 0x95, 0x8f, 0x79, 0x9d, 0xf3, 0xa3, 0x59, 0xb9, 0x14, 0x85, 0xb3, - 0xf2, 0x06, 0x81, 0xb9, 0xd2, 0x98, 0xef, 0xf2, 0x2c, 0x63, 0x89, 0x68, 0x3f, 0xa4, 0x35, 0x9a, - 0x96, 0x08, 0xe7, 0x4a, 0x80, 0xb4, 0xe7, 0x19, 0xcd, 0x1e, 0x32, 0x2e, 0xd9, 0xcb, 0xe5, 0x51, - 0x9a, 0x5f, 0x0f, 0xf0, 0xb4, 0xc0, 0x02, 0xc4, 0x79, 0x06, 0x0a, 0xc2, 0xbd, 0xea, 0x79, 0x3e, - 0xe1, 0xf8, 0x5e, 0xb5, 0x96, 0x84, 0xf7, 0xaa, 0x9a, 0x80, 0x26, 0xcf, 0x18, 0x65, 0xb2, 0x96, - 0x84, 0x4d, 0x6a, 0x02, 0x0b, 0x85, 0xfa, 0xd4, 0x9b, 0x0c, 0x85, 0xe0, 0x9c, 0x7b, 0xad, 0x93, - 0x83, 0x23, 0xb4, 0xd9, 0xb4, 0xee, 0x33, 0x91, 0x5c, 0xe1, 0x23, 0xd4, 0x43, 0xc2, 0x23, 0x14, - 0xa2, 0xb0, 0x4a, 0x63, 0x6e, 0x36, 0xdd, 0xab, 0xf8, 0xf8, 0x68, 0x6d, 0xb8, 0xd7, 0x3a, 0x39, - 0xb8, 0x8d, 0x3c, 0x9c, 0xc9, 0x36, 0x43, 0x07, 0xb9, 0x92, 0x85, 0xb7, 0x91, 0x86, 0x81, 0xa5, - 0x57, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, 0x9d, 0xfc, 0x8b, 0xd9, - 0xc6, 0x29, 0xe9, 0x09, 0xaf, 0xe7, 0xc8, 0x9b, 0x38, 0x4b, 0x27, 0xb1, 0x60, 0x63, 0x7e, 0xcd, - 0x72, 0x7c, 0xc7, 0xa4, 0x4b, 0xab, 0xf8, 0xa1, 0xa7, 0x10, 0xde, 0x31, 0x85, 0x15, 0xe1, 0x38, - 0x51, 0xf4, 0x79, 0xc5, 0x76, 0xe3, 0x8a, 0x88, 0x64, 0x1e, 0x12, 0x1e, 0x27, 0x10, 0x85, 0xf9, - 0xaa, 0x92, 0xbf, 0x7a, 0x57, 0xb0, 0x32, 0x65, 0x79, 0xc2, 0xf0, 0x7c, 0x15, 0x52, 0xe1, 0x7c, - 0x15, 0xa1, 0x5b, 0xc7, 0x34, 0x26, 0x38, 0xb5, 0xef, 0x59, 0x40, 0x22, 0x70, 0xcf, 0x82, 0x40, - 0x61, 0x25, 0x2d, 0x80, 0x1e, 0x75, 0xb6, 0xac, 0x04, 0x8f, 0x3a, 0x69, 0xba, 0x75, 0xf8, 0x65, - 0x98, 0x51, 0x3d, 0x4d, 0x3a, 0x8a, 0x3e, 0x72, 0xa7, 0xcb, 0x46, 0x2f, 0x16, 0x3f, 0x6d, 0x3b, - 0x63, 0x59, 0x2c, 0x97, 0x90, 0xc0, 0x91, 0x56, 0xc3, 0xf4, 0x39, 0x6d, 0x73, 0x58, 0xed, 0xf0, - 0x2f, 0x56, 0xa2, 0x4f, 0x30, 0x8f, 0xaf, 0x0b, 0xe9, 0xf7, 0x69, 0xb7, 0x2d, 0x45, 0x12, 0x17, - 0x49, 0xc2, 0x1a, 0xba, 0x0c, 0x7f, 0x12, 0x7d, 0xdc, 0x88, 0xec, 0x3d, 0x13, 0x5d, 0x00, 0x3f, - 0x81, 0x32, 0xe5, 0x87, 0x9c, 0x71, 0xbf, 0xdd, 0x9b, 0xb7, 0x7b, 0x13, 0xbf, 0x5c, 0x15, 0xd8, - 0x9b, 0x18, 0x1b, 0x5a, 0x4c, 0xec, 0x4d, 0x10, 0xcc, 0x9e, 0x6a, 0xb8, 0xd5, 0x7b, 0x9b, 0x8a, - 0x2b, 0x99, 0xfb, 0x80, 0x53, 0x0d, 0xaf, 0xac, 0x06, 0x22, 0x4e, 0x35, 0x48, 0x18, 0x66, 0x07, - 0x0d, 0x58, 0xcf, 0x4d, 0x2c, 0xae, 0x1a, 0x43, 0xee, 0xcc, 0x5c, 0xef, 0x06, 0xe1, 0x78, 0x6d, - 0xc4, 0x7a, 0x1b, 0xf2, 0x24, 0x64, 0x01, 0x6c, 0x45, 0x36, 0x7a, 0xb1, 0xda, 0xe1, 0x9f, 0x45, - 0xdf, 0x6b, 0x55, 0x6c, 0x9f, 0xc5, 0x62, 0x5e, 0xb2, 0xc9, 0x60, 0xbb, 0xa3, 0xdc, 0x0d, 0x68, - 0x5c, 0x3f, 0xed, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x0d, 0x2b, 0x53, 0x86, 0x67, 0x21, 0x93, - 0x3e, 0x1b, 0xcc, 0x97, 0x69, 0x9d, 0xd6, 0x96, 0xd7, 0x1d, 0x5d, 0x3b, 0x8b, 0x38, 0xcd, 0xe4, - 0x23, 0xa7, 0xcf, 0x42, 0x46, 0x3d, 0x34, 0xb8, 0xe5, 0x25, 0x55, 0x5a, 0x91, 0x59, 0xce, 0x71, - 0x67, 0xab, 0xb4, 0x49, 0x47, 0x02, 0x64, 0xa7, 0xb4, 0xd5, 0x93, 0xd6, 0x6e, 0x45, 0x73, 0x54, - 0x58, 0xff, 0xec, 0x0e, 0x72, 0xcc, 0xab, 0x56, 0x45, 0x46, 0xfa, 0x56, 0x4f, 0x5a, 0x7b, 0xfd, - 0xd3, 0xe8, 0xe3, 0xb6, 0x57, 0xbd, 0x10, 0x6d, 0x77, 0x9a, 0x02, 0x6b, 0xd1, 0xd3, 0xfe, 0x0a, - 0x76, 0x7b, 0xf1, 0x55, 0x5a, 0x09, 0x5e, 0x2e, 0x47, 0x57, 0xfc, 0xa6, 0xb9, 0xbf, 0xed, 0xcf, - 0x56, 0x0d, 0x0c, 0x1d, 0x82, 0xd8, 0x5e, 0xe0, 0x64, 0xcb, 0x95, 0xbd, 0xe7, 0x5d, 0x11, 0xae, - 0x1c, 0xa2, 0xc3, 0x95, 0x4f, 0xda, 0x58, 0xd5, 0xd4, 0xca, 0x5e, 0x4a, 0x5f, 0xc3, 0x8b, 0xda, - 0xbe, 0x98, 0xbe, 0xde, 0x0d, 0xda, 0x8c, 0x45, 0x8b, 0xf7, 0xd2, 0xcb, 0x4b, 0x53, 0x27, 0xbc, - 0xa4, 0x2e, 0x42, 0x64, 0x2c, 0x04, 0x6a, 0x13, 0xe0, 0xfd, 0x34, 0x63, 0xf2, 0x74, 0xfd, 0xf5, - 0xe5, 0x65, 0xc6, 0xe3, 0x09, 0x48, 0x80, 0x6b, 0xf1, 0xd0, 0x95, 0x13, 0x09, 0x30, 0xc6, 0xd9, - 0xeb, 0x5f, 0xb5, 0xf4, 0x8c, 0x25, 0x3c, 0x4f, 0xd2, 0x0c, 0x5e, 0x67, 0x93, 0x9a, 0x46, 0x48, - 0x5c, 0xff, 0x6a, 0x41, 0x76, 0x61, 0xac, 0x45, 0xf5, 0xb4, 0x6f, 0xca, 0xff, 0xa8, 0xad, 0xe8, - 0x88, 0x89, 0x85, 0x11, 0xc1, 0xec, 0x3e, 0xb0, 0x16, 0x9e, 0x17, 0xd2, 0xf8, 0xbd, 0xb6, 0x96, - 0x92, 0x10, 0xfb, 0x40, 0x9f, 0xb0, 0xfb, 0x99, 0xfa, 0xf7, 0x3d, 0x7e, 0x93, 0x4b, 0xa3, 0x0f, - 0xda, 0x2a, 0x8d, 0x8c, 0xd8, 0xcf, 0x40, 0x46, 0x1b, 0xfe, 0x49, 0xf4, 0xff, 0xa5, 0xe1, 0x92, - 0x17, 0x83, 0x3b, 0x88, 0x42, 0xe9, 0xdc, 0x3c, 0xbb, 0x4b, 0xca, 0xed, 0x05, 0x4a, 0x33, 0x36, - 0xce, 0xab, 0x78, 0xca, 0x06, 0x0f, 0x89, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x65, 0x9b, 0xf2, 0x47, - 0xc5, 0x09, 0x9f, 0x68, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0x34, 0x2a, 0x5c, 0xc8, 0x26, 0x33, 0x27, - 0xf1, 0x22, 0x9d, 0x9a, 0x05, 0x47, 0xc5, 0xad, 0x0a, 0x24, 0x33, 0x96, 0x19, 0x3a, 0x10, 0x91, - 0xcc, 0x90, 0xb0, 0xf6, 0xf9, 0xcf, 0x2b, 0xd1, 0x3d, 0xcb, 0x1c, 0x34, 0x27, 0x67, 0x87, 0xf9, - 0x25, 0xaf, 0x53, 0x9f, 0xa3, 0x34, 0xbf, 0xae, 0x06, 0x5f, 0x50, 0x26, 0x71, 0xde, 0x14, 0xe5, - 0xcb, 0x5b, 0xeb, 0xd9, 0xac, 0xb5, 0x39, 0x56, 0xb2, 0xcf, 0x96, 0x95, 0x06, 0xc8, 0x5a, 0xcd, - 0xe9, 0x13, 0xe4, 0x88, 0xac, 0x35, 0xc4, 0xdb, 0x2e, 0x36, 0xce, 0x33, 0x9e, 0xc3, 0x2e, 0xb6, - 0x16, 0x6a, 0x21, 0xd1, 0xc5, 0x2d, 0xc8, 0xc6, 0xe3, 0x46, 0xa4, 0x4e, 0x40, 0x76, 0xb2, 0x0c, - 0xc4, 0x63, 0xa3, 0x6a, 0x00, 0x22, 0x1e, 0xa3, 0xa0, 0xf6, 0x73, 0x16, 0x7d, 0xa7, 0x6e, 0xd2, - 0xd3, 0x92, 0x2d, 0x52, 0x06, 0xaf, 0x41, 0x38, 0x12, 0x62, 0xfe, 0xfb, 0x84, 0x9d, 0x59, 0xe7, - 0x79, 0x55, 0x64, 0x71, 0x75, 0xa5, 0x1f, 0x8c, 0xfb, 0x75, 0x6e, 0x84, 0xf0, 0xd1, 0xf8, 0xa3, - 0x0e, 0xca, 0x06, 0xf5, 0x46, 0x66, 0x42, 0xcc, 0x2a, 0xae, 0xda, 0x0a, 0x33, 0x6b, 0x9d, 0x9c, - 0x3d, 0x7d, 0x3e, 0x88, 0xb3, 0x8c, 0x95, 0xcb, 0x46, 0x76, 0x1c, 0xe7, 0xe9, 0x25, 0xab, 0x04, - 0x38, 0x7d, 0xd6, 0xd4, 0x10, 0x62, 0xc4, 0xe9, 0x73, 0x00, 0xb7, 0xd9, 0x3c, 0xf0, 0x7c, 0x98, - 0x4f, 0xd8, 0x3b, 0x90, 0xcd, 0x43, 0x3b, 0x92, 0x21, 0xb2, 0x79, 0x8a, 0xb5, 0xa7, 0xb0, 0x2f, - 0x33, 0x9e, 0x5c, 0xeb, 0x25, 0xc0, 0xef, 0x60, 0x29, 0x81, 0x6b, 0xc0, 0x83, 0x10, 0x62, 0x17, - 0x01, 0x29, 0x38, 0x63, 0x45, 0x16, 0x27, 0xf0, 0x2e, 0x8c, 0xd2, 0xd1, 0x32, 0x62, 0x11, 0x80, - 0x0c, 0x28, 0xae, 0xbe, 0x63, 0x83, 0x15, 0x17, 0x5c, 0xb1, 0x79, 0x10, 0x42, 0xec, 0x32, 0x28, - 0x05, 0xa3, 0x22, 0x4b, 0x05, 0x98, 0x06, 0x4a, 0x43, 0x4a, 0x88, 0x69, 0xe0, 0x13, 0xc0, 0xe4, - 0x31, 0x2b, 0xa7, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x0d, 0x61, 0xaf, 0x4c, 0xaa, 0xba, 0xf3, - 0x62, 0x09, 0xae, 0x4c, 0xea, 0x6a, 0xf1, 0x62, 0x49, 0x5c, 0x99, 0xf4, 0x00, 0x50, 0xc4, 0xd3, - 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0xc4, 0x86, 0xb0, 0x6b, 0xb4, 0x2a, 0xe2, 0x5c, 0x80, - 0x35, 0x5a, 0x17, 0xc0, 0x79, 0x1a, 0x7c, 0x97, 0x94, 0xdb, 0x48, 0xa2, 0x7a, 0x85, 0x89, 0xfd, - 0x94, 0x65, 0x93, 0x0a, 0x44, 0x12, 0xdd, 0xee, 0x8d, 0x94, 0x88, 0x24, 0x6d, 0x0a, 0x0c, 0x25, - 0x7d, 0x56, 0x8d, 0xd5, 0x0e, 0x1c, 0x53, 0x3f, 0x08, 0x21, 0x36, 0x3e, 0x35, 0x85, 0xde, 0x8d, - 0xcb, 0x32, 0xad, 0x17, 0xff, 0x55, 0xbc, 0x40, 0x8d, 0x9c, 0x88, 0x4f, 0x18, 0x07, 0xa6, 0x57, - 0x13, 0xb8, 0xb1, 0x82, 0xc1, 0xd0, 0xfd, 0x69, 0x90, 0xb1, 0x19, 0xa7, 0x94, 0x38, 0x8f, 0x33, - 0xb1, 0xd6, 0x44, 0x9e, 0x66, 0xae, 0x76, 0x61, 0xce, 0x2b, 0x0d, 0xc6, 0xc5, 0x31, 0x5f, 0xb0, - 0x31, 0x7f, 0xf5, 0x2e, 0xad, 0x44, 0x9a, 0x4f, 0xf5, 0xca, 0xfd, 0x9c, 0xb0, 0x84, 0xc1, 0xc4, - 0x2b, 0x0d, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x61, 0x37, 0x68, 0x02, 0x01, 0x2d, 0x1a, - 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x47, 0x31, 0xce, 0xf5, 0x7b, 0x9f, 0x63, 0xde, 0xe4, 0x72, - 0x94, 0x35, 0x08, 0x12, 0x5b, 0xd9, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, 0x8a, 0xad, 0x13, - 0x76, 0xda, 0xd3, 0xec, 0x71, 0x0f, 0x12, 0x71, 0x65, 0x9f, 0xc9, 0x53, 0xae, 0xda, 0x8f, 0xe4, - 0x1f, 0xf7, 0x20, 0x9d, 0x33, 0x19, 0xb7, 0x5a, 0x2f, 0xe3, 0xe4, 0x7a, 0x5a, 0xf2, 0x79, 0x3e, - 0xd9, 0xe5, 0x19, 0x2f, 0xc1, 0x99, 0x8c, 0x57, 0x6a, 0x80, 0x12, 0x67, 0x32, 0x1d, 0x2a, 0x36, - 0x83, 0x73, 0x4b, 0xb1, 0x93, 0xa5, 0x53, 0xb8, 0xa3, 0xf6, 0x0c, 0x49, 0x80, 0xc8, 0xe0, 0x50, - 0x10, 0x19, 0x44, 0x6a, 0xc7, 0x2d, 0xd2, 0x24, 0xce, 0x94, 0xbf, 0x6d, 0xda, 0x8c, 0x07, 0x76, - 0x0e, 0x22, 0x44, 0x01, 0xa9, 0xe7, 0x78, 0x5e, 0xe6, 0x87, 0xb9, 0xe0, 0x64, 0x3d, 0x1b, 0xa0, - 0xb3, 0x9e, 0x0e, 0x08, 0xc2, 0xea, 0x98, 0xbd, 0xab, 0x4b, 0x53, 0xff, 0x83, 0x85, 0xd5, 0xfa, - 0xf7, 0xa1, 0x96, 0x87, 0xc2, 0x2a, 0xe0, 0x40, 0x65, 0xb4, 0x13, 0x35, 0x60, 0x02, 0xda, 0xfe, - 0x30, 0x59, 0xef, 0x06, 0x71, 0x3f, 0x23, 0xb1, 0xcc, 0x58, 0xc8, 0x8f, 0x04, 0xfa, 0xf8, 0x69, - 0x40, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x8a, 0x25, 0xd7, 0xad, 0x2b, 0x46, 0x7e, 0x41, 0x15, 0x42, - 0x1c, 0xb7, 0x10, 0x28, 0xde, 0x45, 0x87, 0x09, 0xcf, 0x43, 0x5d, 0x54, 0xcb, 0xfb, 0x74, 0x91, - 0xe6, 0xec, 0xe6, 0xd7, 0x48, 0xf5, 0xc8, 0x54, 0xdd, 0xb4, 0x41, 0x58, 0x70, 0x21, 0x62, 0xf3, - 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xdb, 0xf7, 0xaf, 0x5b, 0x56, 0x8e, 0xe9, 0xfb, 0xd7, - 0x14, 0x4b, 0x57, 0x52, 0x8d, 0x91, 0x0e, 0x2b, 0xfe, 0x38, 0xd9, 0xec, 0x07, 0xdb, 0x2d, 0x8f, - 0xe7, 0x73, 0x37, 0x63, 0x71, 0xa9, 0xbc, 0x6e, 0x05, 0x0c, 0x59, 0x8c, 0xd8, 0xf2, 0x04, 0x70, - 0x10, 0xc2, 0x3c, 0xcf, 0xbb, 0x3c, 0x17, 0x2c, 0x17, 0x58, 0x08, 0xf3, 0x8d, 0x69, 0x30, 0x14, - 0xc2, 0x28, 0x05, 0x30, 0x6e, 0xe5, 0x79, 0x10, 0x13, 0x27, 0xf1, 0x0c, 0xcd, 0xd8, 0xd4, 0x59, - 0x8f, 0x92, 0x87, 0xc6, 0x2d, 0xe0, 0x9c, 0x87, 0x7c, 0xae, 0x97, 0x71, 0x5c, 0x4e, 0xcd, 0xe9, - 0xc6, 0x64, 0xf0, 0x94, 0xb6, 0xe3, 0x93, 0xc4, 0x43, 0xbe, 0xb0, 0x06, 0x08, 0x3b, 0x87, 0xb3, - 0x78, 0x6a, 0x6a, 0x8a, 0xd4, 0x40, 0xca, 0x5b, 0x55, 0x5d, 0xef, 0x06, 0x81, 0x9f, 0x37, 0xe9, - 0x84, 0xf1, 0x80, 0x1f, 0x29, 0xef, 0xe3, 0x07, 0x82, 0x20, 0x7b, 0xab, 0xeb, 0xad, 0x76, 0x74, - 0x3b, 0xf9, 0x44, 0xef, 0x63, 0x87, 0x44, 0xf3, 0x00, 0x2e, 0x94, 0xbd, 0x11, 0x3c, 0x98, 0xa3, - 0xcd, 0x01, 0x6d, 0x68, 0x8e, 0x9a, 0xf3, 0xd7, 0x3e, 0x73, 0x14, 0x83, 0xb5, 0xcf, 0x9f, 0xe9, - 0x39, 0xba, 0x17, 0x8b, 0xb8, 0xce, 0xdb, 0xdf, 0xa4, 0xec, 0x46, 0x6f, 0x84, 0x91, 0xfa, 0x36, - 0xd4, 0x50, 0xbe, 0x78, 0x07, 0x76, 0xc5, 0xdb, 0xbd, 0xf9, 0x80, 0x6f, 0xbd, 0x43, 0xe8, 0xf4, - 0x0d, 0xb6, 0x0a, 0xdb, 0xbd, 0xf9, 0x80, 0x6f, 0xfd, 0x46, 0x6f, 0xa7, 0x6f, 0xf0, 0x5a, 0xef, - 0x76, 0x6f, 0x5e, 0xfb, 0xfe, 0xcb, 0x66, 0xe2, 0xba, 0xce, 0xeb, 0x3c, 0x2c, 0x11, 0xe9, 0x82, - 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, 0x74, 0x92, 0x56, 0x71, 0x3e, 0x03, 0x83, 0x95, 0xe2, - 0x94, 0x57, 0xa9, 0x7c, 0x48, 0xff, 0xbc, 0x87, 0xd1, 0x06, 0x0e, 0x6d, 0x9a, 0x42, 0x4a, 0xf6, - 0x71, 0xa3, 0x87, 0xda, 0x1b, 0xc5, 0x9b, 0x01, 0x7b, 0xed, 0x8b, 0xc5, 0x5b, 0x3d, 0x69, 0xfb, - 0xe0, 0xcf, 0x63, 0xdc, 0x27, 0x8e, 0xa1, 0x5e, 0x45, 0x1f, 0x3a, 0x3e, 0xed, 0xaf, 0xa0, 0xdd, - 0xff, 0x75, 0xb3, 0xaf, 0x80, 0xfe, 0xf5, 0x24, 0x78, 0xd6, 0xc7, 0x22, 0x98, 0x08, 0xcf, 0x6f, - 0xa5, 0xa3, 0x0b, 0xf2, 0xf7, 0xcd, 0x06, 0xba, 0x41, 0xe5, 0x7b, 0x15, 0xaf, 0xcb, 0x09, 0x2b, - 0xf5, 0x9c, 0x08, 0x75, 0xab, 0x85, 0xe1, 0xcc, 0x78, 0x71, 0x4b, 0x2d, 0xe7, 0xa3, 0x40, 0x1e, - 0xac, 0xdf, 0xff, 0x73, 0xca, 0x13, 0xb2, 0xec, 0xd0, 0xb0, 0x40, 0x5f, 0xdc, 0x56, 0x8d, 0x9a, - 0x2b, 0x0e, 0x2c, 0xbf, 0x31, 0xf0, 0xbc, 0xa7, 0x61, 0xef, 0xab, 0x03, 0x9f, 0xdf, 0x4e, 0x49, - 0x97, 0xe5, 0x3f, 0x56, 0xa2, 0x47, 0x1e, 0x6b, 0x9f, 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x07, 0xec, - 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xfb, 0xcb, 0x29, 0xdb, 0x2f, 0xe8, 0x78, 0x2a, 0xfb, 0x69, 0x26, - 0x58, 0xd9, 0xfe, 0x82, 0x8e, 0x6f, 0x57, 0x51, 0x43, 0xfa, 0x0b, 0x3a, 0x01, 0xdc, 0xf9, 0x82, - 0x0e, 0xe2, 0x19, 0xfd, 0x82, 0x0e, 0x6a, 0x2d, 0xf8, 0x05, 0x9d, 0xb0, 0x06, 0x15, 0xde, 0x9b, - 0x22, 0xa8, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, 0x67, 0xb7, 0x51, 0x21, 0x16, 0x38, 0xc5, - 0xc9, 0x7b, 0x6e, 0x3d, 0xda, 0xd4, 0xbb, 0xeb, 0xb6, 0xdd, 0x9b, 0xd7, 0xbe, 0x7f, 0xaa, 0x77, - 0x37, 0x26, 0x9c, 0xf3, 0x52, 0x7e, 0x3d, 0x69, 0x23, 0x14, 0x9e, 0x6b, 0x0b, 0x6e, 0xcf, 0x6f, - 0xf6, 0x83, 0x89, 0xea, 0xd6, 0x84, 0xee, 0xf4, 0x61, 0x97, 0x21, 0xd0, 0xe5, 0xdb, 0xbd, 0x79, - 0x62, 0x19, 0x51, 0xbe, 0x55, 0x6f, 0xf7, 0x30, 0xe6, 0xf7, 0xf5, 0xd3, 0xfe, 0x0a, 0xda, 0xfd, - 0x42, 0xa7, 0x8d, 0xae, 0x7b, 0xd9, 0xcf, 0x5b, 0x5d, 0xa6, 0x46, 0x5e, 0x37, 0x0f, 0xfb, 0xe2, - 0xa1, 0x04, 0xc2, 0x5d, 0x42, 0xbb, 0x12, 0x08, 0x74, 0x19, 0xfd, 0xfc, 0x76, 0x4a, 0xba, 0x2c, - 0xff, 0xb4, 0x12, 0xdd, 0x25, 0xcb, 0xa2, 0xc7, 0xc1, 0x17, 0x7d, 0x2d, 0x83, 0xf1, 0xf0, 0xe5, - 0xad, 0xf5, 0x74, 0xa1, 0xfe, 0x75, 0x25, 0xba, 0x17, 0x28, 0x94, 0x1a, 0x20, 0xb7, 0xb0, 0xee, - 0x0f, 0x94, 0x1f, 0xde, 0x5e, 0x91, 0x5a, 0xee, 0x5d, 0x7c, 0xd4, 0xfe, 0xb4, 0x4c, 0xc0, 0xf6, - 0x88, 0xfe, 0xb4, 0x4c, 0xb7, 0x16, 0x3c, 0xe4, 0x89, 0x2f, 0x9a, 0x4d, 0x17, 0x7a, 0xc8, 0x23, - 0x6f, 0xa8, 0x81, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, 0x79, 0xf5, 0xae, 0x88, 0xf3, 0x09, 0xed, - 0x44, 0xc9, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, 0xd2, 0x33, 0xde, 0x6c, 0xa4, 0x1e, 0x53, - 0xfa, 0x06, 0x09, 0x1e, 0x8e, 0xb5, 0x50, 0xc2, 0x9b, 0xce, 0x1a, 0x43, 0xde, 0x40, 0xb2, 0xf8, - 0xa4, 0x0f, 0x0a, 0x52, 0x74, 0xe3, 0xcd, 0x9c, 0xb9, 0x6f, 0x86, 0xac, 0xb4, 0xce, 0xdd, 0xb7, - 0x7a, 0xd2, 0x84, 0xdb, 0x11, 0x13, 0x5f, 0xb1, 0x78, 0xc2, 0xca, 0xa0, 0x5b, 0x43, 0xf5, 0x72, - 0xeb, 0xd2, 0x98, 0xdb, 0x5d, 0x9e, 0xcd, 0x67, 0xb9, 0xee, 0x4c, 0xd2, 0xad, 0x4b, 0x75, 0xbb, - 0x05, 0x34, 0x3c, 0x16, 0xb4, 0x6e, 0x65, 0x7a, 0xf9, 0x24, 0x6c, 0xc6, 0xcb, 0x2a, 0x37, 0x7a, - 0xb1, 0x74, 0x3d, 0xf5, 0x30, 0xea, 0xa8, 0x27, 0x18, 0x49, 0x5b, 0x3d, 0x69, 0x78, 0x3e, 0xe7, - 0xb8, 0x35, 0xe3, 0x69, 0xbb, 0xc3, 0x56, 0x6b, 0x48, 0x3d, 0xed, 0xaf, 0x00, 0x4f, 0x43, 0xf5, - 0xa8, 0x3a, 0x4a, 0x2b, 0xb1, 0x9f, 0x66, 0xd9, 0x60, 0x23, 0x30, 0x4c, 0x1a, 0x28, 0x78, 0x1a, - 0x8a, 0xc0, 0xc4, 0x48, 0x6e, 0x4e, 0x0f, 0xf3, 0x41, 0x97, 0x1d, 0x49, 0xf5, 0x1a, 0xc9, 0x2e, - 0x0d, 0x4e, 0xb4, 0x9c, 0xa6, 0x36, 0xb5, 0x1d, 0x86, 0x1b, 0xae, 0x55, 0xe1, 0xed, 0xde, 0x3c, - 0x78, 0xdc, 0x2e, 0x29, 0xb9, 0xb2, 0x3c, 0xa4, 0x4c, 0x78, 0x2b, 0xc9, 0xa3, 0x0e, 0x0a, 0x9c, - 0x0a, 0xaa, 0x69, 0xf4, 0x36, 0x9d, 0x4c, 0x99, 0x40, 0x9f, 0x14, 0xb9, 0x40, 0xf0, 0x49, 0x11, - 0x00, 0x41, 0xd7, 0xa9, 0xdf, 0xcd, 0x71, 0xe8, 0xe1, 0x04, 0xeb, 0x3a, 0xad, 0xec, 0x50, 0xa1, - 0xae, 0x43, 0x69, 0x10, 0x0d, 0x8c, 0x5b, 0xfd, 0x6a, 0xfc, 0x93, 0x90, 0x19, 0xf0, 0x7e, 0xfc, - 0x46, 0x2f, 0x16, 0xac, 0x28, 0xd6, 0x61, 0x3a, 0x4b, 0x05, 0xb6, 0xa2, 0x38, 0x36, 0x6a, 0x24, - 0xb4, 0xa2, 0xb4, 0x51, 0xaa, 0x7a, 0x75, 0x8e, 0x70, 0x38, 0x09, 0x57, 0x4f, 0x31, 0xfd, 0xaa, - 0x67, 0xd8, 0xd6, 0x83, 0xcd, 0xdc, 0x0c, 0x19, 0x71, 0xa5, 0x37, 0xcb, 0xc8, 0xd8, 0x96, 0xaf, - 0x4c, 0x42, 0x30, 0x14, 0x75, 0x28, 0x05, 0x78, 0x60, 0x5f, 0x73, 0xcd, 0xb3, 0xd7, 0xa2, 0x60, - 0x71, 0x19, 0xe7, 0x09, 0xba, 0x39, 0x95, 0x06, 0x5b, 0x64, 0x68, 0x73, 0x4a, 0x6a, 0x80, 0xc7, - 0xe6, 0xfe, 0xcb, 0x8e, 0xc8, 0x54, 0x30, 0x6f, 0x15, 0xfa, 0xef, 0x3a, 0x3e, 0xee, 0x41, 0xc2, - 0xc7, 0xe6, 0x0d, 0x60, 0x0e, 0xbe, 0x95, 0xd3, 0xcf, 0x02, 0xa6, 0x7c, 0x34, 0xb4, 0x11, 0xa6, - 0x55, 0xc0, 0xa0, 0x36, 0x09, 0x2e, 0x13, 0x3f, 0x61, 0x4b, 0x6c, 0x50, 0xdb, 0xfc, 0x54, 0x22, - 0xa1, 0x41, 0xdd, 0x46, 0x41, 0x9e, 0xe9, 0xee, 0x83, 0x56, 0x03, 0xfa, 0xee, 0xd6, 0x67, 0xad, - 0x93, 0x03, 0x33, 0x67, 0x2f, 0x5d, 0x78, 0xcf, 0x09, 0x90, 0x82, 0xee, 0xa5, 0x0b, 0xfc, 0x31, - 0xc1, 0x46, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, 0xd7, 0x3c, 0x2b, 0x47, 0x8a, 0x2b, 0xe5, - 0xad, 0x87, 0xe5, 0xeb, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, 0x5a, 0xf2, 0x84, 0x55, 0x95, 0xfe, 0xde, - 0x9e, 0x7f, 0xc3, 0x48, 0xcb, 0x86, 0xe0, 0x6b, 0x7b, 0x0f, 0xc3, 0x90, 0xed, 0x19, 0x2d, 0xb2, - 0x5f, 0xa0, 0x59, 0x45, 0x35, 0xdb, 0x1f, 0x9f, 0x59, 0xeb, 0xe4, 0xec, 0xf4, 0xd2, 0x52, 0xf7, - 0x93, 0x33, 0xeb, 0xa8, 0x3a, 0xf6, 0xb5, 0x99, 0xc7, 0x3d, 0x48, 0xed, 0xea, 0xab, 0xe8, 0xfd, - 0x23, 0x3e, 0x1d, 0xb1, 0x7c, 0x32, 0xf8, 0x81, 0x7f, 0x85, 0x96, 0x4f, 0x87, 0xf5, 0xcf, 0xc6, - 0xe8, 0x1d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb1, 0x8b, 0xf9, 0x74, 0x24, 0x62, 0x01, 0x2e, 0x01, - 0xca, 0xdf, 0x87, 0xb5, 0x80, 0xb8, 0x04, 0xe8, 0x01, 0xc0, 0xde, 0xb8, 0x64, 0x0c, 0xb5, 0x57, - 0x0b, 0x82, 0xf6, 0x34, 0x60, 0xb3, 0x08, 0x63, 0xaf, 0x4e, 0xd4, 0xe1, 0xa5, 0x3d, 0xab, 0x23, - 0xa5, 0x44, 0x16, 0xd1, 0xa6, 0xec, 0xe0, 0x56, 0xd5, 0x97, 0x5f, 0x00, 0x99, 0xcf, 0x66, 0x71, - 0xb9, 0x04, 0x83, 0x5b, 0xd7, 0xd2, 0x01, 0x88, 0xc1, 0x8d, 0x82, 0x76, 0xd6, 0x36, 0xcd, 0x9c, - 0x5c, 0x1f, 0xf0, 0x92, 0xcf, 0x45, 0x9a, 0x33, 0xf8, 0x15, 0x08, 0xd3, 0xa0, 0x2e, 0x43, 0xcc, - 0x5a, 0x8a, 0xb5, 0x59, 0xae, 0x24, 0xd4, 0x7d, 0x42, 0xf9, 0x15, 0xde, 0x4a, 0xf0, 0x12, 0x3e, - 0x4f, 0x54, 0x56, 0x20, 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xfa, 0xfe, 0x34, 0xcd, 0xa7, 0x68, 0xdf, - 0x9f, 0xba, 0xdf, 0xb0, 0xbc, 0x47, 0x03, 0x76, 0x42, 0xa9, 0x46, 0x53, 0x13, 0x40, 0xbf, 0xcb, - 0x89, 0x36, 0xba, 0x4b, 0x10, 0x13, 0x0a, 0x27, 0x81, 0xab, 0xd7, 0x05, 0xcb, 0xd9, 0xa4, 0xb9, - 0x35, 0x87, 0xb9, 0xf2, 0x88, 0xa0, 0x2b, 0x48, 0xda, 0x58, 0x24, 0xe5, 0x67, 0xf3, 0xfc, 0xb4, - 0xe4, 0x97, 0x69, 0xc6, 0x4a, 0x10, 0x8b, 0x94, 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, - 0x17, 0x52, 0xea, 0x7d, 0x4a, 0x7a, 0x5c, 0xc6, 0x09, 0xbc, 0x7e, 0xa1, 0x6c, 0xb4, 0x31, 0xe2, - 0x64, 0x30, 0x80, 0x3b, 0x89, 0x8e, 0x72, 0x9d, 0x2f, 0xe5, 0xf8, 0xd0, 0xef, 0x12, 0xca, 0x2f, - 0x3b, 0x56, 0x20, 0xd1, 0xd1, 0xe6, 0x30, 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, - 0x89, 0xbe, 0x56, 0x04, 0x96, 0x12, 0x65, 0xa3, 0x11, 0x12, 0x4b, 0x49, 0x0b, 0x02, 0x01, 0xa9, - 0x99, 0x06, 0x53, 0x34, 0x20, 0x19, 0x69, 0x30, 0x20, 0xb9, 0x94, 0x0d, 0x14, 0x87, 0x79, 0x2a, - 0xd2, 0x38, 0x1b, 0x31, 0x71, 0x1a, 0x97, 0xf1, 0x8c, 0x09, 0x56, 0xc2, 0x40, 0xa1, 0x91, 0xa1, - 0xc7, 0x10, 0x81, 0x82, 0x62, 0xb5, 0xc3, 0xdf, 0x8b, 0x3e, 0xac, 0xd7, 0x7d, 0x96, 0xeb, 0x3f, - 0x1a, 0xf1, 0x4a, 0xfe, 0xb5, 0x99, 0xc1, 0x47, 0xc6, 0xc6, 0x48, 0x94, 0x2c, 0x9e, 0x35, 0xb6, - 0x3f, 0x30, 0xbf, 0x4b, 0xf0, 0xe9, 0x4a, 0x3d, 0x9e, 0x4f, 0xb8, 0x48, 0x2f, 0xeb, 0x6d, 0xb6, - 0x7e, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0c, 0x7c, 0x17, 0x02, 0xe3, 0x6c, 0x9c, 0x76, 0xa5, - 0x67, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, 0x93, 0xd3, 0x15, - 0x8f, 0x59, 0xb8, 0x32, 0x63, 0xd6, 0xaf, 0x32, 0x63, 0xef, 0xa5, 0x8c, 0x2c, 0xfa, 0xf0, 0x98, - 0xcd, 0x2e, 0x58, 0x59, 0x5d, 0xa5, 0xc5, 0x41, 0x9d, 0x70, 0xc5, 0x62, 0x0e, 0x5f, 0x5b, 0xb4, - 0xc4, 0xd0, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x61, 0x75, 0x12, 0xcf, 0x98, - 0xfc, 0xca, 0x05, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, 0xbc, 0xdf, 0x65, - 0x99, 0x33, 0x36, 0xad, 0x47, 0x58, 0x79, 0x1a, 0x2f, 0x67, 0x2c, 0x17, 0xda, 0x24, 0x38, 0x93, - 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, 0x9f, 0xf2, 0x52, - 0xa8, 0x3f, 0x09, 0x73, 0x5e, 0x66, 0x20, 0x34, 0xf9, 0x8d, 0xea, 0x91, 0x44, 0x68, 0x0a, 0x6b, - 0x38, 0xdf, 0x52, 0xf7, 0xca, 0xf0, 0x86, 0x95, 0x66, 0x9c, 0xbc, 0x9a, 0xc5, 0x69, 0xa6, 0x47, - 0xc3, 0x8f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0x5b, 0xea, 0x7d, 0x75, 0x9d, 0xaf, 0xcf, 0x87, 0x4b, - 0x08, 0x1e, 0x11, 0x74, 0xd8, 0x27, 0x1e, 0x11, 0x74, 0x6b, 0xd9, 0x9d, 0xbb, 0x65, 0x25, 0xb7, - 0x94, 0xc4, 0x2e, 0x9f, 0xc0, 0xf3, 0x42, 0xc7, 0x26, 0x00, 0x89, 0x9d, 0x7b, 0x50, 0xc1, 0xa6, - 0x06, 0x16, 0xdb, 0x4f, 0xf3, 0x38, 0x4b, 0x7f, 0x06, 0xd3, 0x7a, 0xc7, 0x4e, 0x43, 0x10, 0xa9, - 0x01, 0x4e, 0x62, 0xae, 0x0e, 0x98, 0x18, 0xa7, 0x75, 0xe8, 0x5f, 0x0f, 0xb4, 0x9b, 0x24, 0xba, - 0x5d, 0x39, 0xa4, 0xf3, 0xbd, 0x54, 0xd8, 0xac, 0x3b, 0x45, 0x31, 0xaa, 0x57, 0xd5, 0x33, 0x96, - 0xb0, 0xb4, 0x10, 0x83, 0x17, 0xe1, 0xb6, 0x02, 0x38, 0x71, 0xd1, 0xa2, 0x87, 0x9a, 0xf3, 0xf8, - 0xbe, 0x8e, 0x25, 0x23, 0xf5, 0xb7, 0xd2, 0xce, 0x2b, 0x56, 0xea, 0x44, 0xe3, 0x80, 0x09, 0x30, - 0x3b, 0x1d, 0x6e, 0xe8, 0x80, 0x75, 0x45, 0x89, 0xd9, 0x19, 0xd6, 0xb0, 0x87, 0x7d, 0x0e, 0x77, - 0xc6, 0x2a, 0x9e, 0x2d, 0x98, 0xbc, 0x6f, 0xb8, 0x49, 0x1a, 0x73, 0x28, 0xe2, 0xb0, 0x8f, 0xa6, - 0x6d, 0xb6, 0xd6, 0x76, 0xbb, 0x93, 0x2f, 0x0f, 0xe1, 0x95, 0x09, 0xc4, 0x92, 0xc4, 0x88, 0x6c, - 0x2d, 0x80, 0x3b, 0x87, 0xe1, 0x25, 0x8f, 0x27, 0x49, 0x5c, 0x89, 0xd3, 0x78, 0x99, 0xf1, 0x78, - 0x22, 0xd7, 0x75, 0x78, 0x18, 0xde, 0x30, 0x43, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, 0xce, - 0xe4, 0x9f, 0x80, 0xd3, 0x77, 0x39, 0x61, 0x76, 0x26, 0xcb, 0x0b, 0xef, 0x71, 0x3e, 0x0c, 0x43, - 0xf6, 0x1d, 0x34, 0x25, 0x92, 0x69, 0xc8, 0x3d, 0x4c, 0xc7, 0x4b, 0x40, 0xee, 0x07, 0x08, 0xfb, - 0x5d, 0x0a, 0xf5, 0x7b, 0xf3, 0x57, 0x4c, 0x84, 0xfe, 0xaa, 0xf4, 0x26, 0xa6, 0xeb, 0x42, 0x43, - 0xf7, 0x63, 0x73, 0x5b, 0x3d, 0x69, 0x9b, 0x66, 0xee, 0x5e, 0xc5, 0x62, 0x67, 0x32, 0x39, 0x66, - 0x15, 0xf2, 0x42, 0x79, 0x2d, 0x1c, 0x5a, 0x29, 0x91, 0x66, 0xb6, 0x29, 0x3b, 0xd0, 0x6b, 0xd9, - 0xab, 0x49, 0x2a, 0xb4, 0xac, 0xb9, 0x21, 0xbd, 0xd9, 0x36, 0xd0, 0xa6, 0x88, 0x5a, 0xd1, 0xb4, - 0x8d, 0xe5, 0x35, 0x33, 0xe6, 0xd3, 0x69, 0xc6, 0x34, 0x74, 0xc6, 0x62, 0xf5, 0x51, 0xbd, 0xed, - 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, 0xa6, 0x91, 0x35, 0xa6, 0x1e, 0x49, 0x35, 0x0d, - 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0x7c, 0xc0, 0x9a, - 0x96, 0x80, 0x9f, 0x20, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, 0x78, - 0x78, 0xb9, 0x3c, 0x9c, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, 0x58, 0xbf, 0xeb, - 0xcc, 0xb9, 0xd7, 0x51, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, 0xa3, 0x14, 0xfc, - 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x56, 0xbb, 0x30, 0x1b, 0x97, 0xcc, 0x7e, - 0x52, 0x5e, 0x59, 0xc2, 0xbf, 0xa6, 0xaf, 0x84, 0x44, 0x5c, 0x6a, 0x41, 0xca, 0xf6, 0xcb, 0xfb, - 0xff, 0xf5, 0xcd, 0x9d, 0x95, 0x5f, 0x7c, 0x73, 0x67, 0xe5, 0x7f, 0xbe, 0xb9, 0xb3, 0xf2, 0xf3, - 0x6f, 0xef, 0xbc, 0xf7, 0x8b, 0x6f, 0xef, 0xbc, 0xf7, 0xdf, 0xdf, 0xde, 0x79, 0xef, 0xeb, 0xf7, - 0xf5, 0x9f, 0x06, 0xbd, 0xf8, 0x7f, 0xf2, 0x0f, 0x7c, 0x3e, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x9c, 0x16, 0xfd, 0x01, 0x3e, 0x74, 0x00, 0x00, + // 5285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, + 0x52, 0xc0, 0xaf, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, + 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x02, 0x8f, 0x3d, 0xf6, 0x9a, + 0xb3, 0x3d, 0xc6, 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0xee, 0x4a, 0xb7, 0x0b, 0x57, 0x57, 0xd6, + 0x55, 0x65, 0xb7, 0xa7, 0x0f, 0x81, 0x38, 0x81, 0x40, 0x20, 0x10, 0x27, 0xfe, 0x89, 0x37, 0x24, + 0x3e, 0x01, 0x1f, 0x83, 0xc7, 0x7b, 0xe4, 0x11, 0xed, 0xbe, 0xf1, 0x29, 0x50, 0x65, 0x66, 0xe5, + 0x9f, 0xa8, 0x88, 0xac, 0xf2, 0xf2, 0x34, 0xa3, 0x8e, 0x5f, 0x44, 0x64, 0x56, 0x66, 0x46, 0x46, + 0x66, 0x65, 0xa5, 0xa3, 0xbb, 0xc5, 0xc5, 0x56, 0x51, 0x72, 0xc1, 0xab, 0xad, 0x8a, 0x95, 0x8b, + 0x74, 0xc2, 0x9a, 0x7f, 0x47, 0xf2, 0xe7, 0xe1, 0x5b, 0x71, 0xbe, 0x14, 0xcb, 0x82, 0xbd, 0xff, + 0x9e, 0x25, 0x27, 0x7c, 0x36, 0x8b, 0xf3, 0xa4, 0x52, 0xc8, 0xfb, 0xef, 0x5a, 0x09, 0x5b, 0xb0, + 0x5c, 0xe8, 0xdf, 0x9f, 0xfe, 0xf4, 0x7f, 0x07, 0xd1, 0xdb, 0x3b, 0x59, 0xca, 0x72, 0xb1, 0xa3, + 0x35, 0x86, 0x5f, 0x46, 0xdf, 0xd9, 0x2e, 0x8a, 0x7d, 0x26, 0x5e, 0xb1, 0xb2, 0x4a, 0x79, 0x3e, + 0xfc, 0x70, 0xa4, 0x1d, 0x8c, 0x4e, 0x8b, 0xc9, 0x68, 0xbb, 0x28, 0x46, 0x56, 0x38, 0x3a, 0x65, + 0x3f, 0x9e, 0xb3, 0x4a, 0xbc, 0xff, 0x20, 0x0c, 0x55, 0x05, 0xcf, 0x2b, 0x36, 0xbc, 0x8c, 0x7e, + 0x6d, 0xbb, 0x28, 0xc6, 0x4c, 0xec, 0xb2, 0xba, 0x02, 0x63, 0x11, 0x0b, 0x36, 0x5c, 0x6d, 0xa9, + 0xfa, 0x80, 0xf1, 0xb1, 0xd6, 0x0d, 0x6a, 0x3f, 0x67, 0xd1, 0xb7, 0x6b, 0x3f, 0x57, 0x73, 0x91, + 0xf0, 0x9b, 0x7c, 0xf8, 0x41, 0x5b, 0x51, 0x8b, 0x8c, 0xed, 0xfb, 0x21, 0x44, 0x5b, 0x7d, 0x1d, + 0xfd, 0xf2, 0xeb, 0x38, 0xcb, 0x98, 0xd8, 0x29, 0x59, 0x5d, 0x70, 0x5f, 0x47, 0x89, 0x46, 0x4a, + 0x66, 0xec, 0x7e, 0x18, 0x64, 0xb4, 0xe1, 0x2f, 0xa3, 0xef, 0x28, 0xc9, 0x29, 0x9b, 0xf0, 0x05, + 0x2b, 0x87, 0xa8, 0x96, 0x16, 0x12, 0x8f, 0xbc, 0x05, 0x41, 0xdb, 0x3b, 0x3c, 0x5f, 0xb0, 0x52, + 0xe0, 0xb6, 0xb5, 0x30, 0x6c, 0xdb, 0x42, 0xda, 0xf6, 0xdf, 0x0c, 0xa2, 0xef, 0x6d, 0x4f, 0x26, + 0x7c, 0x9e, 0x8b, 0x43, 0x3e, 0x89, 0xb3, 0xc3, 0x34, 0xbf, 0x3e, 0x66, 0x37, 0x3b, 0x57, 0x35, + 0x9f, 0x4f, 0xd9, 0xf0, 0x99, 0xff, 0x54, 0x15, 0x3a, 0x32, 0xec, 0xc8, 0x85, 0x8d, 0xef, 0x8f, + 0x6f, 0xa7, 0xa4, 0xcb, 0xf2, 0x0f, 0x83, 0xe8, 0x0e, 0x2c, 0xcb, 0x98, 0x67, 0x0b, 0x66, 0x4b, + 0xf3, 0x49, 0x87, 0x61, 0x1f, 0x37, 0xe5, 0xf9, 0xf4, 0xb6, 0x6a, 0xba, 0x44, 0x59, 0xf4, 0x8e, + 0xdb, 0x5d, 0xc6, 0xac, 0x92, 0xc3, 0xe9, 0x11, 0xdd, 0x23, 0x34, 0x62, 0x3c, 0x3f, 0xee, 0x83, + 0x6a, 0x6f, 0x69, 0x34, 0xd4, 0xde, 0x32, 0x5e, 0x19, 0x67, 0x6b, 0xa8, 0x05, 0x87, 0x30, 0xbe, + 0x1e, 0xf5, 0x20, 0xb5, 0xab, 0x3f, 0x8a, 0x7e, 0xe5, 0x35, 0x2f, 0xaf, 0xab, 0x22, 0x9e, 0x30, + 0x3d, 0x14, 0x1e, 0xfa, 0xda, 0x8d, 0x14, 0x8e, 0x86, 0x95, 0x2e, 0xcc, 0xe9, 0xb4, 0x8d, 0xf0, + 0x65, 0xc1, 0x60, 0x0c, 0xb2, 0x8a, 0xb5, 0x90, 0xea, 0xb4, 0x10, 0xd2, 0xb6, 0xaf, 0xa3, 0xa1, + 0xb5, 0x7d, 0xf1, 0xc7, 0x6c, 0x22, 0xb6, 0x93, 0x04, 0xb6, 0x8a, 0xd5, 0x95, 0xc4, 0x68, 0x3b, + 0x49, 0xa8, 0x56, 0xc1, 0x51, 0xed, 0xec, 0x26, 0x7a, 0x17, 0x38, 0x3b, 0x4c, 0x2b, 0xe9, 0x70, + 0x33, 0x6c, 0x45, 0x63, 0xc6, 0xe9, 0xa8, 0x2f, 0xae, 0x1d, 0xff, 0xf9, 0x20, 0xfa, 0x2e, 0xe2, + 0xf9, 0x94, 0xcd, 0xf8, 0x82, 0x0d, 0x9f, 0x74, 0x5b, 0x53, 0xa4, 0xf1, 0xff, 0xd1, 0x2d, 0x34, + 0x90, 0x6e, 0x32, 0x66, 0x19, 0x9b, 0x08, 0xb2, 0x9b, 0x28, 0x71, 0x67, 0x37, 0x31, 0x98, 0x33, + 0xc2, 0x1a, 0xe1, 0x3e, 0x13, 0x3b, 0xf3, 0xb2, 0x64, 0xb9, 0x20, 0xdb, 0xd2, 0x22, 0x9d, 0x6d, + 0xe9, 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x4a, 0xdc, 0x59, 0x1f, 0x83, + 0x69, 0x0f, 0x93, 0xe8, 0x57, 0x9d, 0x27, 0x26, 0x0e, 0xf2, 0x4b, 0x3e, 0xa4, 0x9f, 0x85, 0x94, + 0x1b, 0x1f, 0xab, 0x9d, 0x1c, 0x52, 0x8d, 0x17, 0x6f, 0x0a, 0x5e, 0xd2, 0xcd, 0xa2, 0xc4, 0x9d, + 0xd5, 0x30, 0x98, 0xf6, 0xf0, 0x87, 0xd1, 0xdb, 0x3a, 0x4a, 0x36, 0xf3, 0xd9, 0x03, 0x34, 0x84, + 0xc2, 0x09, 0xed, 0x61, 0x07, 0x65, 0x83, 0x83, 0x96, 0xe9, 0xe0, 0xf3, 0x21, 0xaa, 0x07, 0x42, + 0xcf, 0x83, 0x30, 0xd4, 0xb2, 0xbd, 0xcb, 0x32, 0x46, 0xda, 0x56, 0xc2, 0x0e, 0xdb, 0x06, 0xd2, + 0xb6, 0xcb, 0xe8, 0x37, 0xcc, 0x63, 0xa9, 0xe7, 0x51, 0x29, 0xaf, 0x83, 0xf4, 0x3a, 0x51, 0x6f, + 0x17, 0x32, 0xbe, 0x36, 0xfa, 0xc1, 0xad, 0xfa, 0xe8, 0x11, 0x88, 0xd7, 0x07, 0x8c, 0xbf, 0x07, + 0x61, 0x48, 0xdb, 0xfe, 0xdb, 0x41, 0xf4, 0x7d, 0x2d, 0x7b, 0x91, 0xc7, 0x17, 0x19, 0x93, 0x53, + 0xe2, 0x31, 0x13, 0x37, 0xbc, 0xbc, 0x1e, 0x2f, 0xf3, 0x09, 0x31, 0xfd, 0xe3, 0x70, 0xc7, 0xf4, + 0x4f, 0x2a, 0x39, 0x19, 0x9f, 0xae, 0xa8, 0xe0, 0x05, 0xcc, 0xf8, 0x9a, 0x1a, 0x08, 0x5e, 0x50, + 0x19, 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xfb, 0x21, + 0xc4, 0x86, 0xad, 0xa6, 0x03, 0xf3, 0xfc, 0x32, 0x9d, 0x9e, 0x17, 0x49, 0xdd, 0x8d, 0x1f, 0xe1, + 0x3d, 0xd4, 0x41, 0x88, 0xb0, 0x45, 0xa0, 0xda, 0xdb, 0xdf, 0xdb, 0xc4, 0x48, 0x0f, 0xa5, 0xbd, + 0x92, 0xcf, 0x0e, 0xd9, 0x34, 0x9e, 0x2c, 0xf5, 0xf8, 0xff, 0x38, 0x34, 0xf0, 0x20, 0x6d, 0x0a, + 0xf1, 0xc9, 0x2d, 0xb5, 0x74, 0x79, 0xfe, 0x7d, 0x10, 0x3d, 0x68, 0xaa, 0x7f, 0x15, 0xe7, 0x53, + 0xa6, 0xdb, 0x53, 0x95, 0x7e, 0x3b, 0x4f, 0x4e, 0x59, 0x25, 0xe2, 0x52, 0x0c, 0x7f, 0x80, 0x57, + 0x32, 0xa4, 0x63, 0xca, 0xf6, 0xc3, 0x6f, 0xa4, 0x6b, 0x5b, 0x7d, 0x5c, 0x07, 0x36, 0x1d, 0x02, + 0xfc, 0x56, 0x97, 0x12, 0x18, 0x00, 0xee, 0x87, 0x10, 0xdb, 0xea, 0x52, 0x70, 0x90, 0x2f, 0x52, + 0xc1, 0xf6, 0x59, 0xce, 0xca, 0x76, 0xab, 0x2b, 0x55, 0x1f, 0x21, 0x5a, 0x9d, 0x40, 0x6d, 0xb0, + 0xf1, 0xbc, 0x99, 0xc9, 0x71, 0x3d, 0x60, 0xa4, 0x35, 0x3d, 0x6e, 0xf4, 0x83, 0xed, 0xea, 0xce, + 0xf1, 0x79, 0xca, 0x16, 0xfc, 0x1a, 0xae, 0xee, 0x5c, 0x13, 0x0a, 0x20, 0x56, 0x77, 0x28, 0x68, + 0x67, 0x30, 0xc7, 0xcf, 0xab, 0x94, 0xdd, 0x80, 0x19, 0xcc, 0x55, 0xae, 0xc5, 0xc4, 0x0c, 0x86, + 0x60, 0xda, 0xc3, 0x71, 0xf4, 0x4b, 0x52, 0xf8, 0xfb, 0x3c, 0xcd, 0x87, 0x77, 0x11, 0xa5, 0x5a, + 0x60, 0xac, 0xde, 0xa3, 0x01, 0x50, 0xe2, 0xfa, 0xd7, 0x9d, 0x38, 0x9f, 0xb0, 0x0c, 0x2d, 0xb1, + 0x15, 0x07, 0x4b, 0xec, 0x61, 0x36, 0x75, 0x90, 0xc2, 0x3a, 0x7e, 0x8d, 0xaf, 0xe2, 0x32, 0xcd, + 0xa7, 0x43, 0x4c, 0xd7, 0x91, 0x13, 0xa9, 0x03, 0xc6, 0x81, 0x2e, 0xac, 0x15, 0xb7, 0x8b, 0xa2, + 0xac, 0xc3, 0x22, 0xd6, 0x85, 0x7d, 0x24, 0xd8, 0x85, 0x5b, 0x28, 0xee, 0x6d, 0x97, 0x4d, 0xb2, + 0x34, 0x0f, 0x7a, 0xd3, 0x48, 0x1f, 0x6f, 0x16, 0x05, 0x9d, 0xf7, 0x90, 0xc5, 0x0b, 0xd6, 0xd4, + 0x0c, 0x7b, 0x32, 0x2e, 0x10, 0xec, 0xbc, 0x00, 0xb4, 0xeb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x59, + 0xfd, 0x80, 0x59, 0x3d, 0xaf, 0x0d, 0x31, 0x7d, 0x8f, 0x20, 0xd6, 0x69, 0x38, 0xa9, 0x5d, 0xcd, + 0xa3, 0x77, 0xa5, 0xfc, 0x24, 0x2e, 0x45, 0x3a, 0x49, 0x8b, 0x38, 0x6f, 0xf2, 0x7f, 0x6c, 0x5c, + 0xb7, 0x28, 0xe3, 0x72, 0xb3, 0x27, 0xad, 0xdd, 0xfe, 0xeb, 0x20, 0xfa, 0x00, 0xfa, 0x3d, 0x61, + 0xe5, 0x2c, 0x95, 0xcb, 0xc8, 0x4a, 0x05, 0xe1, 0xe1, 0x67, 0x61, 0xa3, 0x2d, 0x05, 0x53, 0x9a, + 0xcf, 0x6f, 0xaf, 0xa8, 0x0b, 0xf6, 0x07, 0x51, 0xa4, 0x96, 0x2b, 0x72, 0x49, 0xe9, 0x8f, 0x5a, + 0xbd, 0x8e, 0xf1, 0xd6, 0x93, 0x1f, 0x04, 0x08, 0x3b, 0x55, 0xa8, 0xdf, 0xe5, 0x4a, 0x79, 0x88, + 0x6a, 0x48, 0x11, 0x31, 0x55, 0x00, 0x04, 0x16, 0x74, 0x7c, 0xc5, 0x6f, 0xf0, 0x82, 0xd6, 0x92, + 0x70, 0x41, 0x35, 0x61, 0xf7, 0xae, 0x74, 0x41, 0xb1, 0xbd, 0xab, 0xa6, 0x18, 0xa1, 0xbd, 0x2b, + 0xc8, 0x68, 0xc3, 0x3c, 0xfa, 0x75, 0xd7, 0xf0, 0x73, 0xce, 0xaf, 0x67, 0x71, 0x79, 0x3d, 0x7c, + 0x4c, 0x2b, 0x37, 0x8c, 0x71, 0xb4, 0xde, 0x8b, 0xb5, 0x61, 0xc1, 0x75, 0x58, 0x27, 0x1a, 0xe7, + 0x65, 0x06, 0xc2, 0x82, 0x67, 0x43, 0x23, 0x44, 0x58, 0x20, 0x50, 0x1b, 0xb9, 0x5d, 0x6f, 0x63, + 0x06, 0x57, 0x4b, 0x9e, 0xfa, 0x98, 0x51, 0xab, 0x25, 0x04, 0x83, 0x5d, 0x68, 0xbf, 0x8c, 0x8b, + 0x2b, 0xbc, 0x0b, 0x49, 0x51, 0xb8, 0x0b, 0x35, 0x08, 0x6c, 0xef, 0x31, 0x8b, 0xcb, 0xc9, 0x15, + 0xde, 0xde, 0x4a, 0x16, 0x6e, 0x6f, 0xc3, 0xc0, 0xf6, 0x56, 0x82, 0xd7, 0xa9, 0xb8, 0x3a, 0x62, + 0x22, 0xc6, 0xdb, 0xdb, 0x67, 0xc2, 0xed, 0xdd, 0x62, 0x6d, 0x26, 0xe3, 0x3a, 0x1c, 0xcf, 0x2f, + 0xaa, 0x49, 0x99, 0x5e, 0xb0, 0x61, 0xc0, 0x8a, 0x81, 0x88, 0x4c, 0x86, 0x84, 0xb5, 0xcf, 0x9f, + 0x0d, 0xa2, 0xbb, 0x4d, 0xb3, 0xf3, 0xaa, 0x52, 0x33, 0x2b, 0x70, 0xff, 0x09, 0xde, 0xbe, 0x04, + 0x4e, 0xec, 0x26, 0xf6, 0x50, 0x73, 0xa2, 0x2a, 0x5e, 0xa4, 0xf3, 0xbc, 0x32, 0x85, 0xfa, 0xac, + 0x8f, 0x75, 0x47, 0x81, 0x88, 0xaa, 0xbd, 0x14, 0xed, 0x84, 0xa6, 0xdb, 0xa7, 0x91, 0x1d, 0x24, + 0x15, 0x98, 0xd0, 0x9a, 0xe7, 0xed, 0x10, 0xc4, 0x84, 0x86, 0x93, 0xb0, 0x2b, 0xec, 0x97, 0x7c, + 0x5e, 0x54, 0x1d, 0x5d, 0x01, 0x40, 0xe1, 0xae, 0xd0, 0x86, 0xb5, 0xcf, 0x37, 0xd1, 0x6f, 0xba, + 0xdd, 0xcf, 0x7d, 0xd8, 0x9b, 0x74, 0x9f, 0xc2, 0x1e, 0xf1, 0xa8, 0x2f, 0x6e, 0x53, 0xba, 0xc6, + 0xb3, 0xd8, 0x65, 0x22, 0x4e, 0xb3, 0x6a, 0xb8, 0x82, 0xdb, 0x68, 0xe4, 0x44, 0x4a, 0x87, 0x71, + 0x30, 0xbe, 0xed, 0xce, 0x8b, 0x2c, 0x9d, 0xb4, 0xf7, 0x72, 0xb5, 0xae, 0x11, 0x87, 0xe3, 0x9b, + 0x8b, 0xc1, 0x78, 0x3d, 0x66, 0x42, 0xfd, 0xe7, 0x6c, 0x59, 0x30, 0x3c, 0x5e, 0x7b, 0x48, 0x38, + 0x5e, 0x43, 0x14, 0xd6, 0x67, 0xcc, 0xc4, 0x61, 0xbc, 0xe4, 0x73, 0x22, 0x5e, 0x1b, 0x71, 0xb8, + 0x3e, 0x2e, 0x66, 0xb3, 0x2a, 0xe3, 0xe1, 0x20, 0x17, 0xac, 0xcc, 0xe3, 0x6c, 0x2f, 0x8b, 0xa7, + 0xd5, 0x90, 0x88, 0x31, 0x3e, 0x45, 0x64, 0x55, 0x34, 0x8d, 0x3c, 0xc6, 0x83, 0x6a, 0x2f, 0x5e, + 0xf0, 0x32, 0x15, 0xf4, 0x63, 0xb4, 0x48, 0xe7, 0x63, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xb9, + 0x4a, 0x17, 0x2c, 0x09, 0x78, 0x6b, 0x90, 0x1e, 0xde, 0x1c, 0x14, 0x69, 0xb4, 0x31, 0x9f, 0x97, + 0x13, 0x46, 0x36, 0x9a, 0x12, 0x77, 0x36, 0x9a, 0xc1, 0xb4, 0x87, 0xbf, 0x1c, 0x44, 0xbf, 0xa5, + 0xa4, 0xee, 0x06, 0xeb, 0x6e, 0x5c, 0x5d, 0x5d, 0xf0, 0xb8, 0x4c, 0x86, 0x1f, 0x61, 0x76, 0x50, + 0xd4, 0xb8, 0x7e, 0x7a, 0x1b, 0x15, 0xf8, 0x58, 0x0f, 0xd3, 0xca, 0x19, 0x71, 0xe8, 0x63, 0xf5, + 0x90, 0xf0, 0x63, 0x85, 0x28, 0x0c, 0x20, 0x52, 0xae, 0x36, 0x33, 0x56, 0x48, 0x7d, 0x7f, 0x47, + 0x63, 0xb5, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xbd, 0x65, 0x93, 0xb2, 0x81, 0xf7, 0x98, 0x51, + 0x5f, 0x9c, 0xf4, 0x6c, 0x46, 0x45, 0xd8, 0x73, 0x6b, 0x64, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, + 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x66, 0x9a, 0x79, 0xe1, 0x71, + 0xc0, 0x0e, 0x9c, 0x1b, 0xd6, 0x7b, 0xb1, 0xda, 0xe1, 0x5f, 0x0f, 0xa2, 0xef, 0x59, 0x8f, 0x47, + 0x3c, 0x49, 0x2f, 0x97, 0x0a, 0x7a, 0x15, 0x67, 0x73, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, + 0x29, 0xc1, 0xb3, 0x5b, 0xe9, 0xc0, 0xb1, 0xb3, 0x5d, 0x14, 0xd9, 0xf2, 0x8c, 0xcd, 0x8a, 0x8c, + 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, 0x59, 0xf9, 0x19, 0xaf, 0x73, 0x7e, 0x34, 0x2b, + 0x97, 0xa2, 0x70, 0x56, 0xde, 0x20, 0x30, 0x57, 0x3a, 0xe3, 0x3b, 0x3c, 0xcb, 0xd8, 0x44, 0xb4, + 0x5f, 0xd2, 0x1a, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xfd, 0x8c, 0x66, 0x0d, 0x19, 0x97, + 0xec, 0xf9, 0xf2, 0x30, 0xcd, 0xaf, 0x87, 0x78, 0x5a, 0x60, 0x01, 0x62, 0x3f, 0x03, 0x05, 0xe1, + 0x5a, 0xf5, 0x3c, 0x4f, 0x38, 0xbe, 0x56, 0xad, 0x25, 0xe1, 0xb5, 0xaa, 0x26, 0xa0, 0xc9, 0x53, + 0x46, 0x99, 0xac, 0x25, 0x61, 0x93, 0x9a, 0xc0, 0x42, 0xa1, 0xde, 0xf5, 0x26, 0x43, 0x21, 0xd8, + 0xe7, 0x5e, 0xed, 0xe4, 0x60, 0x0f, 0x6d, 0x16, 0xad, 0x7b, 0x4c, 0x4c, 0xae, 0xf0, 0x1e, 0xea, + 0x21, 0xe1, 0x1e, 0x0a, 0x51, 0x58, 0xa5, 0x33, 0x6e, 0x16, 0xdd, 0x2b, 0x78, 0xff, 0x68, 0x2d, + 0xb8, 0x57, 0x3b, 0x39, 0xb8, 0x8c, 0x3c, 0x98, 0xc9, 0x67, 0x86, 0x76, 0x72, 0x25, 0x0b, 0x2f, + 0x23, 0x0d, 0x03, 0x4b, 0xaf, 0x04, 0xf5, 0xe3, 0xc4, 0x4b, 0x6f, 0xe5, 0xe1, 0xd2, 0x7b, 0x9c, + 0x76, 0xf2, 0xcf, 0x66, 0x19, 0xa7, 0xa4, 0xc7, 0xbc, 0x1e, 0x23, 0xaf, 0xe2, 0x2c, 0x4d, 0x62, + 0xc1, 0xce, 0xf8, 0x35, 0xcb, 0xf1, 0x15, 0x93, 0x2e, 0xad, 0xe2, 0x47, 0x9e, 0x42, 0x78, 0xc5, + 0x14, 0x56, 0x84, 0xfd, 0x44, 0xd1, 0xe7, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0xb8, + 0x9f, 0x40, 0x14, 0xe6, 0xab, 0x4a, 0xfe, 0xe2, 0x4d, 0xc1, 0xca, 0x94, 0xe5, 0x13, 0x86, 0xe7, + 0xab, 0x90, 0x0a, 0xe7, 0xab, 0x08, 0xdd, 0xda, 0xa6, 0x31, 0xc1, 0xa9, 0x7d, 0xce, 0x02, 0x12, + 0x81, 0x73, 0x16, 0x04, 0x0a, 0x2b, 0x69, 0x01, 0x74, 0xab, 0xb3, 0x65, 0x25, 0xb8, 0xd5, 0x49, + 0xd3, 0xad, 0xcd, 0x2f, 0xc3, 0x8c, 0xeb, 0x61, 0xd2, 0x51, 0xf4, 0xb1, 0x3b, 0x5c, 0xd6, 0x7b, + 0xb1, 0xf8, 0x6e, 0xdb, 0x29, 0xcb, 0x62, 0x39, 0x85, 0x04, 0xb6, 0xb4, 0x1a, 0xa6, 0xcf, 0x6e, + 0x9b, 0xc3, 0x6a, 0x87, 0x3f, 0x1d, 0x44, 0xef, 0x63, 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, + 0x5b, 0x8a, 0x24, 0x0e, 0x92, 0x84, 0x35, 0x74, 0x19, 0xfe, 0x24, 0x7a, 0xaf, 0x11, 0xd9, 0x73, + 0x26, 0xba, 0x00, 0x7e, 0x02, 0x65, 0xca, 0x0f, 0x39, 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xd7, 0x26, + 0x7e, 0xb9, 0x2a, 0xb0, 0x36, 0x31, 0x36, 0xb4, 0x98, 0x58, 0x9b, 0x20, 0x98, 0xdd, 0xd5, 0x70, + 0xab, 0xf7, 0x3a, 0x15, 0x57, 0x32, 0xf7, 0x01, 0xbb, 0x1a, 0x5e, 0x59, 0x0d, 0x44, 0xec, 0x6a, + 0x90, 0x30, 0xcc, 0x0e, 0x1a, 0xb0, 0x1e, 0x9b, 0x58, 0x5c, 0x35, 0x86, 0xdc, 0x91, 0xb9, 0xd6, + 0x0d, 0xc2, 0xfe, 0xda, 0x88, 0xf5, 0x32, 0xe4, 0x71, 0xc8, 0x02, 0x58, 0x8a, 0xac, 0xf7, 0x62, + 0xb5, 0xc3, 0x3f, 0x8b, 0xbe, 0xdb, 0xaa, 0xd8, 0x1e, 0x8b, 0xc5, 0xbc, 0x64, 0xc9, 0x70, 0xab, + 0xa3, 0xdc, 0x0d, 0x68, 0x5c, 0x3f, 0xe9, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x75, 0x2b, 0x53, + 0x86, 0xa7, 0x21, 0x93, 0x3e, 0x1b, 0xcc, 0x97, 0x69, 0x9d, 0xd6, 0x92, 0xd7, 0xed, 0x5d, 0xdb, + 0x8b, 0x38, 0xcd, 0xe4, 0x2b, 0xa7, 0x8f, 0x42, 0x46, 0x3d, 0x34, 0xb8, 0xe4, 0x25, 0x55, 0x5a, + 0x91, 0x59, 0x8e, 0x71, 0x67, 0xa9, 0xb4, 0x41, 0x47, 0x02, 0x64, 0xa5, 0xb4, 0xd9, 0x93, 0xd6, + 0x6e, 0x45, 0xb3, 0x55, 0x58, 0xff, 0xec, 0x76, 0x72, 0xcc, 0xab, 0x56, 0x45, 0x7a, 0xfa, 0x66, + 0x4f, 0x5a, 0x7b, 0xfd, 0xd3, 0xe8, 0xbd, 0xb6, 0x57, 0x3d, 0x11, 0x6d, 0x75, 0x9a, 0x02, 0x73, + 0xd1, 0x93, 0xfe, 0x0a, 0xda, 0xfd, 0xbf, 0x99, 0x3d, 0x62, 0xe5, 0x7f, 0xc2, 0x67, 0x33, 0x96, + 0x27, 0x2c, 0x69, 0x34, 0xaa, 0x7a, 0x2d, 0xf3, 0x39, 0x6d, 0xd7, 0x28, 0x8c, 0x5c, 0x0d, 0x53, + 0xa2, 0xdf, 0xfe, 0x06, 0x9a, 0xba, 0x68, 0xff, 0x39, 0x88, 0x1e, 0xa1, 0x45, 0x6b, 0x3a, 0xae, + 0x57, 0xc4, 0xdf, 0xeb, 0xe3, 0x08, 0xd3, 0x34, 0x45, 0xdd, 0xfe, 0x7f, 0x58, 0xb0, 0x8b, 0xb5, + 0x2f, 0xd2, 0x4a, 0xf0, 0x72, 0x39, 0xbe, 0xe2, 0x37, 0xcd, 0x69, 0x78, 0x3f, 0xf6, 0x69, 0x60, + 0xe4, 0x10, 0xc4, 0x62, 0x0d, 0x27, 0x5b, 0xae, 0xec, 0xa9, 0xf9, 0x8a, 0x70, 0xe5, 0x10, 0x1d, + 0xae, 0x7c, 0xd2, 0x46, 0xfe, 0xa6, 0x56, 0xf6, 0x88, 0xff, 0x2a, 0x5e, 0xd4, 0xf6, 0x31, 0xff, + 0xb5, 0x6e, 0xd0, 0xe6, 0x7f, 0x5a, 0xbc, 0x9b, 0x5e, 0x5e, 0x9a, 0x3a, 0xe1, 0x25, 0x75, 0x11, + 0x22, 0xff, 0x23, 0x50, 0xbb, 0x9c, 0xd8, 0x4b, 0x33, 0x26, 0xdf, 0x55, 0xbc, 0xbc, 0xbc, 0xcc, + 0x78, 0x9c, 0x80, 0xe5, 0x44, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x39, 0x81, 0x71, 0xf6, 0x30, 0x5d, + 0x2d, 0xad, 0x7b, 0x50, 0x3e, 0x49, 0x33, 0x78, 0x38, 0x50, 0x6a, 0x1a, 0x21, 0x71, 0x98, 0xae, + 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0xb4, 0x29, 0xff, 0xc3, 0xb6, 0xa2, 0x23, 0x26, 0xd2, + 0x0c, 0x04, 0xb3, 0xab, 0xea, 0x5a, 0x78, 0x5e, 0x48, 0xe3, 0xf7, 0xda, 0x5a, 0x4a, 0x42, 0xac, + 0xaa, 0x7d, 0xc2, 0xae, 0x0e, 0xeb, 0xdf, 0x77, 0xf9, 0x4d, 0x2e, 0x8d, 0xde, 0x6f, 0xab, 0x34, + 0x32, 0x62, 0x75, 0x08, 0x19, 0x6d, 0xf8, 0x47, 0xd1, 0x2f, 0x4a, 0xc3, 0x25, 0x2f, 0x86, 0x77, + 0x10, 0x85, 0xd2, 0x39, 0xc7, 0x77, 0x97, 0x94, 0xdb, 0xe3, 0xa8, 0xa6, 0x6f, 0x9c, 0x57, 0xf1, + 0x94, 0x0d, 0x1f, 0x10, 0x2d, 0x2e, 0xa5, 0xc4, 0x71, 0xd4, 0x36, 0xe5, 0xf7, 0x8a, 0x63, 0x9e, + 0x68, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0xd4, 0x2b, 0x5c, 0xc8, 0xa6, 0x86, 0xc7, 0xf1, 0x22, 0x9d, + 0x9a, 0xe9, 0x5b, 0x05, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, 0x10, 0x91, 0x1a, 0x92, 0xb0, + 0xf6, 0xf9, 0x4f, 0x83, 0xe8, 0x9e, 0x65, 0xf6, 0x9b, 0x7d, 0xc8, 0x83, 0xfc, 0x92, 0xd7, 0x89, + 0xe4, 0x61, 0x9a, 0x5f, 0x57, 0xc3, 0x4f, 0x29, 0x93, 0x38, 0x6f, 0x8a, 0xf2, 0xd9, 0xad, 0xf5, + 0xec, 0x1a, 0xa0, 0xd9, 0xa4, 0xb3, 0x6f, 0xea, 0x95, 0x06, 0x58, 0x03, 0x98, 0xbd, 0x3c, 0xc8, + 0x11, 0x6b, 0x80, 0x10, 0x6f, 0x9b, 0xd8, 0x38, 0xcf, 0x78, 0x0e, 0x9b, 0xd8, 0x5a, 0xa8, 0x85, + 0x44, 0x13, 0xb7, 0x20, 0x1b, 0x8f, 0x1b, 0x91, 0xda, 0x4f, 0xda, 0xce, 0x32, 0x10, 0x8f, 0x8d, + 0xaa, 0x01, 0x88, 0x78, 0x8c, 0x82, 0xda, 0xcf, 0x69, 0xf4, 0xed, 0xfa, 0x91, 0x9e, 0x94, 0x6c, + 0x91, 0x32, 0x78, 0xa8, 0xc4, 0x91, 0x10, 0xe3, 0xdf, 0x27, 0xec, 0xc8, 0x3a, 0xcf, 0xab, 0x22, + 0x8b, 0xab, 0x2b, 0x7d, 0xcc, 0xc0, 0xaf, 0x73, 0x23, 0x84, 0x07, 0x0d, 0x1e, 0x76, 0x50, 0x36, + 0xa8, 0x37, 0x32, 0x13, 0x62, 0x56, 0x70, 0xd5, 0x56, 0x98, 0x59, 0xed, 0xe4, 0xec, 0x5e, 0xfe, + 0x7e, 0x9c, 0x65, 0xac, 0x5c, 0x36, 0xb2, 0xa3, 0x38, 0x4f, 0x2f, 0x59, 0x25, 0xc0, 0x5e, 0xbe, + 0xa6, 0x46, 0x10, 0x23, 0xf6, 0xf2, 0x03, 0xb8, 0x5d, 0x1b, 0x01, 0xcf, 0x07, 0x79, 0xc2, 0xde, + 0x80, 0xb5, 0x11, 0xb4, 0x23, 0x19, 0x62, 0x6d, 0x44, 0xb1, 0x76, 0x4f, 0xfb, 0x79, 0xc6, 0x27, + 0xd7, 0x7a, 0x0a, 0xf0, 0x1b, 0x58, 0x4a, 0xe0, 0x1c, 0x70, 0x3f, 0x84, 0xd8, 0x49, 0x40, 0x0a, + 0x4e, 0x59, 0x91, 0xc5, 0x13, 0x78, 0xb2, 0x48, 0xe9, 0x68, 0x19, 0x31, 0x09, 0x40, 0x06, 0x14, + 0x57, 0x9f, 0x58, 0xc2, 0x8a, 0x0b, 0x0e, 0x2c, 0xdd, 0x0f, 0x21, 0x76, 0x1a, 0x94, 0x82, 0x71, + 0x91, 0xa5, 0x02, 0x0c, 0x03, 0xa5, 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x88, 0x95, + 0x53, 0x86, 0x9a, 0x94, 0x92, 0xa0, 0xc9, 0x86, 0xb0, 0x07, 0x50, 0x55, 0xdd, 0x79, 0xb1, 0x04, + 0x07, 0x50, 0x75, 0xb5, 0x78, 0xb1, 0x24, 0x0e, 0xa0, 0x7a, 0x00, 0x28, 0xe2, 0x49, 0x5c, 0x09, + 0xbc, 0x88, 0x52, 0x12, 0x2c, 0x62, 0x43, 0xd8, 0x39, 0x5a, 0x15, 0x71, 0x2e, 0xc0, 0x1c, 0xad, + 0x0b, 0xe0, 0xbc, 0x5b, 0xbf, 0x4b, 0xca, 0x6d, 0x24, 0x51, 0xad, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, + 0xa4, 0x02, 0x91, 0x44, 0x3f, 0xf7, 0x46, 0x4a, 0x44, 0x92, 0x36, 0x05, 0xba, 0x92, 0xde, 0xf9, + 0xc7, 0x6a, 0x07, 0x36, 0xfd, 0xef, 0x87, 0x10, 0x1b, 0x9f, 0x9a, 0x42, 0xef, 0xc4, 0x65, 0x99, + 0xd6, 0x93, 0xff, 0x0a, 0x5e, 0xa0, 0x46, 0x4e, 0xc4, 0x27, 0x8c, 0x03, 0xc3, 0xab, 0x09, 0xdc, + 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, 0x9c, 0x97, 0xc3, 0xd8, 0xd3, + 0x44, 0xde, 0x0d, 0xaf, 0x74, 0x61, 0xce, 0x07, 0x22, 0xc6, 0xc5, 0x11, 0x5f, 0xb0, 0x33, 0xfe, + 0xe2, 0x4d, 0x5a, 0x89, 0x34, 0x9f, 0xea, 0x99, 0xfb, 0x19, 0x61, 0x09, 0x83, 0x89, 0x0f, 0x44, + 0x3a, 0x95, 0x6c, 0x02, 0x01, 0xca, 0x72, 0xcc, 0x6e, 0xd0, 0x04, 0x02, 0x5a, 0x34, 0x1c, 0x91, + 0x40, 0x84, 0x78, 0xbb, 0x2b, 0x65, 0x9c, 0xeb, 0xaf, 0x68, 0xcf, 0x78, 0x93, 0xcb, 0x51, 0xd6, + 0x20, 0x48, 0x6c, 0x0c, 0x04, 0x15, 0xec, 0xfa, 0xd2, 0xf8, 0xb7, 0x43, 0x6c, 0x8d, 0xb0, 0xd3, + 0x1e, 0x66, 0x8f, 0x7a, 0x90, 0x88, 0x2b, 0x7b, 0xc2, 0x81, 0x72, 0xd5, 0x3e, 0xe0, 0xf0, 0xa8, + 0x07, 0xe9, 0xec, 0x70, 0xb9, 0xd5, 0x7a, 0x1e, 0x4f, 0xae, 0xa7, 0x25, 0x9f, 0xe7, 0xc9, 0x0e, + 0xcf, 0x78, 0x09, 0x76, 0xb8, 0xbc, 0x52, 0x03, 0x94, 0xd8, 0xe1, 0xea, 0x50, 0xb1, 0x19, 0x9c, + 0x5b, 0x8a, 0xed, 0x2c, 0x9d, 0xc2, 0x15, 0xb5, 0x67, 0x48, 0x02, 0x44, 0x06, 0x87, 0x82, 0x48, + 0x27, 0x52, 0x2b, 0x6e, 0x91, 0x4e, 0xe2, 0x4c, 0xf9, 0xdb, 0xa2, 0xcd, 0x78, 0x60, 0x67, 0x27, + 0x42, 0x14, 0x90, 0x7a, 0x9e, 0xcd, 0xcb, 0xfc, 0x20, 0x17, 0x9c, 0xac, 0x67, 0x03, 0x74, 0xd6, + 0xd3, 0x01, 0x41, 0x58, 0x3d, 0x63, 0x6f, 0xea, 0xd2, 0xd4, 0xff, 0x60, 0x61, 0xb5, 0xfe, 0x7d, + 0xa4, 0xe5, 0xa1, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xed, 0x44, 0x75, 0x98, 0x80, 0xb6, 0xdf, 0x4d, + 0xd6, 0xba, 0x41, 0xdc, 0xcf, 0x58, 0x2c, 0x33, 0x16, 0xf2, 0x23, 0x81, 0x3e, 0x7e, 0x1a, 0xd0, + 0x6e, 0xb7, 0x78, 0xf5, 0xb9, 0x62, 0x93, 0xeb, 0xd6, 0x81, 0x2d, 0xbf, 0xa0, 0x0a, 0x21, 0xb6, + 0x5b, 0x08, 0x14, 0x6f, 0xa2, 0x83, 0x09, 0xcf, 0x43, 0x4d, 0x54, 0xcb, 0xfb, 0x34, 0x91, 0xe6, + 0xec, 0xe2, 0xd7, 0x48, 0x75, 0xcf, 0x54, 0xcd, 0xb4, 0x4e, 0x58, 0x70, 0x21, 0x62, 0xf1, 0x4b, + 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0xa7, 0xd9, 0x5b, 0x56, 0x8e, 0xe8, 0xd3, 0xec, 0x14, + 0x4b, 0x57, 0x52, 0xf5, 0x91, 0x0e, 0x2b, 0x7e, 0x3f, 0xd9, 0xe8, 0x07, 0xdb, 0x25, 0x8f, 0xe7, + 0x73, 0x27, 0x63, 0x71, 0xa9, 0xbc, 0x6e, 0x06, 0x0c, 0x59, 0x8c, 0x58, 0xf2, 0x04, 0x70, 0x10, + 0xc2, 0x3c, 0xcf, 0x3b, 0x3c, 0x17, 0x2c, 0x17, 0x58, 0x08, 0xf3, 0x8d, 0x69, 0x30, 0x14, 0xc2, + 0x28, 0x05, 0xd0, 0x6f, 0xe5, 0x7e, 0x10, 0x13, 0xc7, 0xf1, 0x0c, 0xcd, 0xd8, 0xd4, 0x5e, 0x8f, + 0x92, 0x87, 0xfa, 0x2d, 0xe0, 0x9c, 0x57, 0xa6, 0xae, 0x97, 0xb3, 0xb8, 0x9c, 0x9a, 0xdd, 0x8d, + 0x64, 0xf8, 0x84, 0xb6, 0xe3, 0x93, 0xc4, 0x2b, 0xd3, 0xb0, 0x06, 0x08, 0x3b, 0x07, 0xb3, 0x78, + 0x6a, 0x6a, 0x8a, 0xd4, 0x40, 0xca, 0x5b, 0x55, 0x5d, 0xeb, 0x06, 0x81, 0x9f, 0x57, 0x69, 0xc2, + 0x78, 0xc0, 0x8f, 0x94, 0xf7, 0xf1, 0x03, 0x41, 0x90, 0xbd, 0xd5, 0xf5, 0x56, 0x2b, 0xba, 0xed, + 0x3c, 0xd1, 0xeb, 0xd8, 0x11, 0xf1, 0x78, 0x00, 0x17, 0xca, 0xde, 0x08, 0x1e, 0x8c, 0xd1, 0x66, + 0x83, 0x36, 0x34, 0x46, 0xcd, 0xfe, 0x6b, 0x9f, 0x31, 0x8a, 0xc1, 0xda, 0xe7, 0x4f, 0xf4, 0x18, + 0xdd, 0x8d, 0x45, 0x5c, 0xe7, 0xed, 0xaf, 0x52, 0x76, 0xa3, 0x17, 0xc2, 0x48, 0x7d, 0x1b, 0x6a, + 0x24, 0x3f, 0x63, 0x04, 0xab, 0xe2, 0xad, 0xde, 0x7c, 0xc0, 0xb7, 0x5e, 0x21, 0x74, 0xfa, 0x06, + 0x4b, 0x85, 0xad, 0xde, 0x7c, 0xc0, 0xb7, 0xfe, 0x3e, 0xba, 0xd3, 0x37, 0xf8, 0x48, 0x7a, 0xab, + 0x37, 0xaf, 0x7d, 0xff, 0x45, 0x33, 0x70, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x11, 0xe9, 0x82, 0x61, + 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, 0x74, 0x92, 0x56, 0x71, 0x2e, 0xd5, 0xc1, 0x4a, 0x71, 0xc2, + 0xab, 0x54, 0x1e, 0x79, 0x78, 0xd6, 0xc3, 0x68, 0x03, 0x87, 0x16, 0x4d, 0x21, 0x25, 0xfb, 0xf2, + 0xd6, 0x43, 0xed, 0xf9, 0xec, 0x8d, 0x80, 0xbd, 0xf6, 0x31, 0xed, 0xcd, 0x9e, 0xb4, 0x7d, 0x8d, + 0xea, 0x31, 0xee, 0xfb, 0xdb, 0x50, 0xab, 0xa2, 0xaf, 0x70, 0x9f, 0xf4, 0x57, 0xd0, 0xee, 0xff, + 0xaa, 0x59, 0x57, 0x40, 0xff, 0x7a, 0x10, 0x3c, 0xed, 0x63, 0x11, 0x0c, 0x84, 0x67, 0xb7, 0xd2, + 0xd1, 0x05, 0xf9, 0xbb, 0x66, 0x01, 0xdd, 0xa0, 0xf2, 0x2b, 0x95, 0x97, 0x65, 0xc2, 0x4a, 0x3d, + 0x26, 0x42, 0xcd, 0x6a, 0x61, 0x38, 0x32, 0x3e, 0xb9, 0xa5, 0x96, 0x73, 0xc5, 0x92, 0x07, 0xeb, + 0xaf, 0x29, 0x9d, 0xf2, 0x84, 0x2c, 0x3b, 0x34, 0x2c, 0xd0, 0xa7, 0xb7, 0x55, 0xa3, 0xc6, 0x8a, + 0x03, 0xcb, 0x1b, 0x1b, 0x9e, 0xf5, 0x34, 0xec, 0xdd, 0xe1, 0xf0, 0xf1, 0xed, 0x94, 0x74, 0x59, + 0xfe, 0x63, 0x10, 0x3d, 0xf4, 0x58, 0xfb, 0x3e, 0x01, 0xec, 0x7a, 0xfc, 0x30, 0x60, 0x9f, 0x52, + 0x32, 0x85, 0xfb, 0x9d, 0x6f, 0xa6, 0x6c, 0xef, 0x23, 0xf2, 0x54, 0xf6, 0xd2, 0x4c, 0xb0, 0xb2, + 0x7d, 0x1f, 0x91, 0x6f, 0x57, 0x51, 0x23, 0xfa, 0x3e, 0xa2, 0x00, 0xee, 0xdc, 0x47, 0x84, 0x78, + 0x46, 0xef, 0x23, 0x42, 0xad, 0x05, 0xef, 0x23, 0x0a, 0x6b, 0x50, 0xe1, 0xbd, 0x29, 0x82, 0xda, + 0xb7, 0xee, 0x65, 0xd1, 0xdf, 0xc6, 0x7e, 0x7a, 0x1b, 0x15, 0x62, 0x82, 0x53, 0x9c, 0x3c, 0x35, + 0xd8, 0xe3, 0x99, 0x7a, 0x27, 0x07, 0xb7, 0x7a, 0xf3, 0xda, 0xf7, 0x8f, 0xf5, 0xea, 0xc6, 0x84, + 0x73, 0x5e, 0xca, 0xbb, 0xa8, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, 0xb6, 0xfc, 0x46, 0x3f, 0x98, + 0xa8, 0x6e, 0x4d, 0xe8, 0x46, 0x1f, 0x75, 0x19, 0x02, 0x4d, 0xbe, 0xd5, 0x9b, 0x27, 0xa6, 0x11, + 0xe5, 0x5b, 0xb5, 0x76, 0x0f, 0x63, 0x7e, 0x5b, 0x3f, 0xe9, 0xaf, 0xa0, 0xdd, 0x2f, 0x74, 0xda, + 0xe8, 0xba, 0x97, 0xed, 0xbc, 0xd9, 0x65, 0x6a, 0xec, 0x35, 0xf3, 0xa8, 0x2f, 0x1e, 0x4a, 0x20, + 0xdc, 0x29, 0xb4, 0x2b, 0x81, 0x40, 0xa7, 0xd1, 0x8f, 0x6f, 0xa7, 0xa4, 0xcb, 0xf2, 0x8f, 0x83, + 0xe8, 0x2e, 0x59, 0x16, 0xdd, 0x0f, 0x3e, 0xed, 0x6b, 0x19, 0xf4, 0x87, 0xcf, 0x6e, 0xad, 0xa7, + 0x0b, 0xf5, 0x2f, 0x83, 0xe8, 0x5e, 0xa0, 0x50, 0xaa, 0x83, 0xdc, 0xc2, 0xba, 0xdf, 0x51, 0x3e, + 0xbf, 0xbd, 0x22, 0x35, 0xdd, 0xbb, 0xf8, 0xb8, 0x7d, 0x51, 0x4f, 0xc0, 0xf6, 0x98, 0xbe, 0xa8, + 0xa7, 0x5b, 0x0b, 0x6e, 0xf2, 0xc4, 0x17, 0xcd, 0xa2, 0x0b, 0xdd, 0xe4, 0x91, 0xe7, 0xfd, 0xc0, + 0x9a, 0x63, 0xb5, 0x93, 0xc3, 0x9c, 0xbc, 0x78, 0x53, 0xc4, 0x79, 0x42, 0x3b, 0x51, 0xf2, 0x6e, + 0x27, 0x86, 0x83, 0x9b, 0x63, 0xb5, 0xf4, 0x94, 0x37, 0x0b, 0xa9, 0x47, 0x94, 0xbe, 0x41, 0x82, + 0x9b, 0x63, 0x2d, 0x94, 0xf0, 0xa6, 0xb3, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0xee, 0x83, 0x82, + 0x14, 0xdd, 0x78, 0x33, 0x7b, 0xee, 0x1b, 0x21, 0x2b, 0xad, 0x7d, 0xf7, 0xcd, 0x9e, 0x34, 0xe1, + 0x76, 0xcc, 0xc4, 0x17, 0x2c, 0x4e, 0x58, 0x19, 0x74, 0x6b, 0xa8, 0x5e, 0x6e, 0x5d, 0x1a, 0x73, + 0xbb, 0xc3, 0xb3, 0xf9, 0x2c, 0xd7, 0x8d, 0x49, 0xba, 0x75, 0xa9, 0x6e, 0xb7, 0x80, 0x86, 0xdb, + 0x82, 0xd6, 0xad, 0x4c, 0x2f, 0x1f, 0x87, 0xcd, 0x78, 0x59, 0xe5, 0x7a, 0x2f, 0x96, 0xae, 0xa7, + 0xee, 0x46, 0x1d, 0xf5, 0x04, 0x3d, 0x69, 0xb3, 0x27, 0x0d, 0xf7, 0xe7, 0x1c, 0xb7, 0xa6, 0x3f, + 0x6d, 0x75, 0xd8, 0x6a, 0x75, 0xa9, 0x27, 0xfd, 0x15, 0xe0, 0x6e, 0xa8, 0xee, 0x55, 0x87, 0x69, + 0x25, 0xf6, 0xd2, 0x2c, 0x1b, 0xae, 0x07, 0xba, 0x49, 0x03, 0x05, 0x77, 0x43, 0x11, 0x98, 0xe8, + 0xc9, 0xcd, 0xee, 0x61, 0x3e, 0xec, 0xb2, 0x23, 0xa9, 0x5e, 0x3d, 0xd9, 0xa5, 0xc1, 0x8e, 0x96, + 0xf3, 0xa8, 0x4d, 0x6d, 0x47, 0xe1, 0x07, 0xd7, 0xaa, 0xf0, 0x56, 0x6f, 0x1e, 0xbc, 0x6e, 0x97, + 0x94, 0x9c, 0x59, 0x1e, 0x50, 0x26, 0xbc, 0x99, 0xe4, 0x61, 0x07, 0x05, 0x76, 0x05, 0xd5, 0x30, + 0x7a, 0x9d, 0x26, 0x53, 0x26, 0xd0, 0x37, 0x45, 0x2e, 0x10, 0x7c, 0x53, 0x04, 0x40, 0xd0, 0x74, + 0xea, 0x77, 0xb3, 0x1d, 0x7a, 0x90, 0x60, 0x4d, 0xa7, 0x95, 0x1d, 0x2a, 0xd4, 0x74, 0x28, 0x0d, + 0xa2, 0x81, 0x71, 0xab, 0x2f, 0x1a, 0x78, 0x1c, 0x32, 0x03, 0x6e, 0x1b, 0x58, 0xef, 0xc5, 0x82, + 0x19, 0xc5, 0x3a, 0x4c, 0x67, 0xa9, 0xc0, 0x66, 0x14, 0xc7, 0x46, 0x8d, 0x84, 0x66, 0x94, 0x36, + 0x4a, 0x55, 0xaf, 0xce, 0x11, 0x0e, 0x92, 0x70, 0xf5, 0x14, 0xd3, 0xaf, 0x7a, 0x86, 0x6d, 0xbd, + 0xd8, 0xcc, 0x4d, 0x97, 0x11, 0x57, 0x7a, 0xb1, 0x8c, 0xf4, 0x6d, 0xf9, 0x01, 0x2a, 0x04, 0x43, + 0x51, 0x87, 0x52, 0x80, 0x1b, 0xf6, 0x35, 0xd7, 0xbc, 0x7b, 0x2d, 0x0a, 0x16, 0x97, 0x71, 0x3e, + 0x41, 0x17, 0xa7, 0xd2, 0x60, 0x8b, 0x0c, 0x2d, 0x4e, 0x49, 0x0d, 0xf0, 0xda, 0xdc, 0xff, 0x74, + 0x14, 0x19, 0x0a, 0xe6, 0x1b, 0x4d, 0xff, 0xcb, 0xd1, 0x47, 0x3d, 0x48, 0xf8, 0xda, 0xbc, 0x01, + 0xcc, 0xc6, 0xb7, 0x72, 0xfa, 0x51, 0xc0, 0x94, 0x8f, 0x86, 0x16, 0xc2, 0xb4, 0x0a, 0xe8, 0xd4, + 0x26, 0xc1, 0x65, 0xe2, 0x47, 0x6c, 0x89, 0x75, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0xd4, 0xa9, 0xdb, + 0x28, 0xc8, 0x33, 0xdd, 0x75, 0xd0, 0x4a, 0x40, 0xdf, 0x5d, 0xfa, 0xac, 0x76, 0x72, 0x60, 0xe4, + 0xec, 0xa6, 0x0b, 0xef, 0x3d, 0x01, 0x52, 0xd0, 0xdd, 0x74, 0x81, 0xbf, 0x26, 0x58, 0xef, 0xc5, + 0xc2, 0x57, 0xf2, 0xb1, 0x60, 0x6f, 0x9a, 0x77, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf5, 0xb2, 0x7c, + 0xad, 0x1b, 0xb4, 0x07, 0x60, 0x4f, 0x4a, 0x3e, 0x61, 0x55, 0xa5, 0x6f, 0x2f, 0xf4, 0x4f, 0x18, + 0x69, 0xd9, 0x08, 0xdc, 0x5d, 0xf8, 0x20, 0x0c, 0xd9, 0x96, 0xd1, 0x22, 0x7b, 0x9f, 0xcf, 0x0a, + 0xaa, 0xd9, 0xbe, 0xca, 0x67, 0xb5, 0x93, 0xb3, 0xc3, 0x4b, 0x4b, 0xdd, 0x0b, 0x7c, 0xd6, 0x50, + 0x75, 0xec, 0xee, 0x9e, 0x47, 0x3d, 0x48, 0xed, 0xea, 0x8b, 0xe8, 0xad, 0x43, 0x3e, 0x1d, 0xb3, + 0x3c, 0x19, 0x7e, 0xdf, 0x3f, 0x42, 0xcb, 0xa7, 0xa3, 0xfa, 0x67, 0x63, 0xf4, 0x0e, 0x25, 0xb6, + 0x87, 0x00, 0x77, 0xd9, 0xc5, 0x7c, 0x3a, 0x16, 0xb1, 0x00, 0x87, 0x00, 0xe5, 0xef, 0xa3, 0x5a, + 0x40, 0x1c, 0x02, 0xf4, 0x00, 0x60, 0xef, 0xac, 0x64, 0x0c, 0xb5, 0x57, 0x0b, 0x82, 0xf6, 0x34, + 0x60, 0xb3, 0x08, 0x63, 0xaf, 0x4e, 0xd4, 0xe1, 0xa1, 0x3d, 0xab, 0x23, 0xa5, 0x44, 0x16, 0xd1, + 0xa6, 0x6c, 0xe7, 0x56, 0xd5, 0x97, 0xf7, 0xa9, 0xcc, 0x67, 0xb3, 0xb8, 0x5c, 0x82, 0xce, 0xad, + 0x6b, 0xe9, 0x00, 0x44, 0xe7, 0x46, 0x41, 0x3b, 0x6a, 0x9b, 0xc7, 0x3c, 0xb9, 0xde, 0xe7, 0x25, + 0x9f, 0x8b, 0x34, 0x67, 0xf0, 0x4e, 0x0d, 0xf3, 0x40, 0x5d, 0x86, 0x18, 0xb5, 0x14, 0x6b, 0xb3, + 0x5c, 0x49, 0xa8, 0xf3, 0x84, 0xf2, 0x4e, 0xe3, 0x4a, 0xf0, 0x12, 0xbe, 0x4f, 0x54, 0x56, 0x20, + 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xda, 0xfe, 0x24, 0xcd, 0xa7, 0x68, 0xdb, 0x9f, 0xb8, 0x37, 0x82, + 0xde, 0xa3, 0x01, 0x3b, 0xa0, 0xd4, 0x43, 0x53, 0x03, 0x40, 0x7f, 0x19, 0x8b, 0x3e, 0x74, 0x97, + 0x20, 0x06, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0xa4, 0x39, 0x35, 0x87, 0xb9, 0xf2, + 0x88, 0xa0, 0x2b, 0x48, 0xda, 0x58, 0x24, 0xe5, 0xa7, 0xf3, 0xfc, 0xa4, 0xe4, 0x97, 0x69, 0xc6, + 0x4a, 0x10, 0x8b, 0x94, 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xe3, 0x17, 0x52, 0xea, 0x5d, + 0xcc, 0x7d, 0x56, 0xc6, 0x13, 0x78, 0xfc, 0x42, 0xd9, 0x68, 0x63, 0xc4, 0xce, 0x60, 0x00, 0x77, + 0x12, 0x1d, 0xe5, 0x3a, 0x5f, 0xca, 0xfe, 0xa1, 0xbf, 0xcc, 0x94, 0xf7, 0x64, 0x56, 0x20, 0xd1, + 0xd1, 0xe6, 0x30, 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x2a, 0x91, 0xdc, 0xb1, 0x3e, 0x56, 0x04, + 0xa6, 0x12, 0x65, 0xa3, 0x11, 0x12, 0x53, 0x49, 0x0b, 0x02, 0x01, 0xa9, 0x19, 0x06, 0x53, 0x34, + 0x20, 0x19, 0x69, 0x30, 0x20, 0xb9, 0x94, 0x0d, 0x14, 0x07, 0x79, 0x2a, 0xd2, 0x38, 0x1b, 0x33, + 0x71, 0x12, 0x97, 0xf1, 0x8c, 0x09, 0x56, 0xc2, 0x40, 0xa1, 0x91, 0x91, 0xc7, 0x10, 0x81, 0x82, + 0x62, 0xb5, 0xc3, 0xdf, 0x8d, 0xde, 0xa9, 0xe7, 0x7d, 0x96, 0xeb, 0x3f, 0xc1, 0xf1, 0x42, 0xfe, + 0xed, 0x9e, 0xe1, 0xbb, 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x35, 0xb6, 0xdf, 0x36, 0xbf, 0x4b, + 0xf0, 0xc9, 0xa0, 0xee, 0xcf, 0xc7, 0x5c, 0xa4, 0x97, 0xf5, 0x32, 0x5b, 0x7f, 0x41, 0x04, 0xfa, + 0xb3, 0x2b, 0x1e, 0x05, 0x6e, 0xd9, 0xc0, 0x38, 0x1b, 0xa7, 0x5d, 0xe9, 0x29, 0x2b, 0x32, 0x18, + 0xa7, 0x3d, 0x6d, 0x09, 0x10, 0x71, 0x1a, 0x05, 0xed, 0xe0, 0x74, 0xc5, 0x67, 0x2c, 0x5c, 0x99, + 0x33, 0xd6, 0xaf, 0x32, 0x67, 0xde, 0x47, 0x19, 0x59, 0xf4, 0xce, 0x11, 0x9b, 0x5d, 0xb0, 0xb2, + 0xba, 0x4a, 0x8b, 0xfd, 0x3a, 0xe1, 0x8a, 0xc5, 0x1c, 0x7e, 0xb6, 0x68, 0x89, 0x91, 0x41, 0x88, + 0xac, 0x94, 0x40, 0xed, 0x4c, 0x60, 0x81, 0x83, 0xea, 0x38, 0x9e, 0x31, 0x79, 0x67, 0x08, 0x98, + 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xcc, 0x04, 0x24, 0xec, 0x7c, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xad, + 0x7b, 0x58, 0x79, 0x12, 0x2f, 0x67, 0x2c, 0x17, 0xda, 0x24, 0xd8, 0x93, 0x77, 0x4c, 0xe2, 0x3c, + 0xb1, 0x27, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0xde, 0x83, 0x3f, 0xe1, 0xa5, 0x50, 0x7f, 0x60, 0xe7, + 0xbc, 0xcc, 0x40, 0x68, 0xf2, 0x1f, 0xaa, 0x47, 0x12, 0xa1, 0x29, 0xac, 0xe1, 0xdc, 0x4c, 0xef, + 0x95, 0xe1, 0x15, 0x2b, 0x4d, 0x3f, 0x79, 0x31, 0x8b, 0xd3, 0x4c, 0xf7, 0x86, 0x1f, 0x04, 0x6c, + 0x13, 0x3a, 0xc4, 0xcd, 0xf4, 0x7d, 0x75, 0x9d, 0xbb, 0xfc, 0xc3, 0x25, 0x04, 0xaf, 0x08, 0x3a, + 0xec, 0x13, 0xaf, 0x08, 0xba, 0xb5, 0xec, 0xca, 0xdd, 0xb2, 0x92, 0x5b, 0x4a, 0x62, 0x87, 0x27, + 0x70, 0xbf, 0xd0, 0xb1, 0x09, 0x40, 0x62, 0xe5, 0x1e, 0x54, 0xb0, 0xa9, 0x81, 0xc5, 0xf6, 0xd2, + 0x3c, 0xce, 0xd2, 0x9f, 0xc0, 0xb4, 0xde, 0xb1, 0xd3, 0x10, 0x44, 0x6a, 0x80, 0x93, 0x98, 0xab, + 0x7d, 0x26, 0xce, 0xd2, 0x3a, 0xf4, 0xaf, 0x05, 0x9e, 0x9b, 0x24, 0xba, 0x5d, 0x39, 0xa4, 0x73, + 0xfb, 0x2c, 0x7c, 0xac, 0xdb, 0x45, 0x31, 0xae, 0x67, 0xd5, 0x53, 0x36, 0x61, 0x69, 0x21, 0x86, + 0x9f, 0x84, 0x9f, 0x15, 0xc0, 0x89, 0x83, 0x16, 0x3d, 0xd4, 0x9c, 0xd7, 0xf7, 0x75, 0x2c, 0x19, + 0xab, 0xbf, 0x3c, 0x77, 0x5e, 0xb1, 0x52, 0x27, 0x1a, 0xfb, 0x4c, 0x80, 0xd1, 0xe9, 0x70, 0x23, + 0x07, 0xac, 0x2b, 0x4a, 0x8c, 0xce, 0xb0, 0x86, 0xdd, 0xec, 0x73, 0xb8, 0x53, 0x56, 0xf1, 0x6c, + 0xc1, 0xe4, 0x79, 0xc3, 0x0d, 0xd2, 0x98, 0x43, 0x11, 0x9b, 0x7d, 0x34, 0x6d, 0xb3, 0xb5, 0xb6, + 0xdb, 0xed, 0x7c, 0x79, 0x00, 0x8f, 0x4c, 0x20, 0x96, 0x24, 0x46, 0x64, 0x6b, 0x01, 0xdc, 0xd9, + 0x0c, 0x2f, 0x79, 0x9c, 0x4c, 0xe2, 0x4a, 0x9c, 0xc4, 0xcb, 0x8c, 0xc7, 0x89, 0x9c, 0xd7, 0xe1, + 0x66, 0x78, 0xc3, 0x8c, 0x5c, 0x88, 0xda, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x7f, 0x50, 0x4f, + 0x9f, 0xe5, 0x84, 0xd9, 0x99, 0x2c, 0x2f, 0x3c, 0xc7, 0xf9, 0x20, 0x0c, 0xd9, 0x6f, 0xd0, 0x94, + 0x48, 0xa6, 0x21, 0xf7, 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0x5b, 0x3e, 0xd4, 0xef, + 0xcd, 0xdf, 0x84, 0x11, 0xfa, 0x8e, 0xee, 0x0d, 0x4c, 0xd7, 0x85, 0x46, 0xee, 0x65, 0x11, 0x9b, + 0x3d, 0x69, 0x9b, 0x66, 0xee, 0x5c, 0xc5, 0x62, 0x3b, 0x49, 0x8e, 0x58, 0x85, 0x7c, 0x50, 0x5e, + 0x0b, 0x47, 0x56, 0x4a, 0xa4, 0x99, 0x6d, 0xca, 0x76, 0xf4, 0x5a, 0xf6, 0x22, 0x49, 0x85, 0x96, + 0x35, 0x27, 0xa4, 0x37, 0xda, 0x06, 0xda, 0x14, 0x51, 0x2b, 0x9a, 0xb6, 0xb1, 0xbc, 0x66, 0xce, + 0xf8, 0x74, 0x9a, 0x31, 0x0d, 0x9d, 0xb2, 0x58, 0x5d, 0x51, 0xb8, 0xd5, 0xb6, 0x85, 0x82, 0x44, + 0x2c, 0x0f, 0x2a, 0xd8, 0x34, 0xb2, 0xc6, 0xd4, 0x2b, 0xa9, 0xe6, 0xc1, 0xae, 0xb6, 0xcd, 0x78, + 0x00, 0x91, 0x46, 0xa2, 0xa0, 0xfd, 0xee, 0xad, 0x16, 0xef, 0xb3, 0xe6, 0x49, 0xc0, 0x0b, 0x9d, + 0xa4, 0xb2, 0x23, 0x26, 0xbe, 0x7b, 0x43, 0x30, 0xbb, 0x4e, 0x00, 0x1e, 0x9e, 0x2f, 0x0f, 0x12, + 0xb8, 0x4e, 0x80, 0xfa, 0x92, 0x21, 0xd6, 0x09, 0x14, 0xeb, 0x37, 0x9d, 0xd9, 0xf7, 0x3a, 0x8c, + 0x2b, 0x5b, 0x39, 0xa4, 0xe9, 0x50, 0x30, 0xd4, 0x74, 0x94, 0x82, 0xff, 0x48, 0xdd, 0xad, 0x35, + 0xe4, 0x91, 0x62, 0xfb, 0x6a, 0x2b, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3d, 0x29, 0x8f, 0x2c, 0xe1, + 0x7f, 0x9b, 0x40, 0x09, 0x89, 0xb8, 0xd4, 0x82, 0x94, 0xed, 0xe7, 0x1f, 0xfc, 0xd7, 0x57, 0x77, + 0x06, 0x3f, 0xff, 0xea, 0xce, 0xe0, 0x7f, 0xbe, 0xba, 0x33, 0xf8, 0xd9, 0xd7, 0x77, 0xbe, 0xf5, + 0xf3, 0xaf, 0xef, 0x7c, 0xeb, 0xbf, 0xbf, 0xbe, 0xf3, 0xad, 0x2f, 0xdf, 0xd2, 0x7f, 0x68, 0xf5, + 0xe2, 0x17, 0xe4, 0x9f, 0x4b, 0x7d, 0xf6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xab, 0xf4, 0x52, + 0x6c, 0x8c, 0x75, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -491,6 +495,8 @@ type ClientCommandsHandler interface { ObjectCreateObjectType(context.Context, *pb.RpcObjectCreateObjectTypeRequest) *pb.RpcObjectCreateObjectTypeResponse ObjectTypeRelationAdd(context.Context, *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse + ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse + ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -2836,6 +2842,46 @@ func ObjectTypeRelationRemove(b []byte) (resp []byte) { return resp } +func ObjectTypeRecommendedRelationsSet(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedRelationsSetResponse{Error: &pb.RpcObjectTypeRecommendedRelationsSetResponseError{Code: pb.RpcObjectTypeRecommendedRelationsSetResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectTypeRecommendedRelationsSetRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedRelationsSetResponse{Error: &pb.RpcObjectTypeRecommendedRelationsSetResponseError{Code: pb.RpcObjectTypeRecommendedRelationsSetResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectTypeRecommendedRelationsSet(context.Background(), in).Marshal() + return resp +} + +func ObjectTypeRecommendedFeaturedRelationsSet(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse{Error: &pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError{Code: pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse{Error: &pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError{Code: pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectTypeRecommendedFeaturedRelationsSet(context.Background(), in).Marshal() + return resp +} + func HistoryShowVersion(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6236,6 +6282,10 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectTypeRelationAdd(data) case "ObjectTypeRelationRemove": cd = ObjectTypeRelationRemove(data) + case "ObjectTypeRecommendedRelationsSet": + cd = ObjectTypeRecommendedRelationsSet(data) + case "ObjectTypeRecommendedFeaturedRelationsSet": + cd = ObjectTypeRecommendedFeaturedRelationsSet(data) case "HistoryShowVersion": cd = HistoryShowVersion(data) case "HistoryGetVersions": @@ -8074,6 +8124,34 @@ func (h *ClientCommandsHandlerProxy) ObjectTypeRelationRemove(ctx context.Contex call, _ := actualCall(ctx, req) return call.(*pb.RpcObjectTypeRelationRemoveResponse) } +func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.ObjectTypeRecommendedRelationsSet(ctx, req.(*pb.RpcObjectTypeRecommendedRelationsSetRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "ObjectTypeRecommendedRelationsSet", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcObjectTypeRecommendedRelationsSetResponse) +} +func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.ObjectTypeRecommendedFeaturedRelationsSet(ctx, req.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "ObjectTypeRecommendedFeaturedRelationsSet", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) +} func (h *ClientCommandsHandlerProxy) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.HistoryShowVersion(ctx, req.(*pb.RpcHistoryShowVersionRequest)), nil diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 54b903162..855f37dd4 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -66,6 +66,39 @@ func (s *service) ObjectTypeRemoveRelations(ctx context.Context, objectTypeId st }) } +func (s *service) ObjectTypeSetRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error { + return s.objectTypeSetRelations(ctx, objectTypeId, relationKeys, false) +} + +func (s *service) ObjectTypeSetFeaturedRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error { + return s.objectTypeSetRelations(ctx, objectTypeId, relationKeys, true) +} + +func (s *service) objectTypeSetRelations( + ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey, isFeatured bool, +) error { + if strings.HasPrefix(objectTypeId, bundle.TypePrefix) { + return ErrBundledTypeIsReadonly + } + relationToSet := bundle.RelationKeyRecommendedRelations + if isFeatured { + relationToSet = bundle.RelationKeyRecommendedFeaturedRelations + } + return cache.Do(s.objectGetter, objectTypeId, func(b smartblock.SmartBlock) error { + st := b.NewState() + list := make([]string, len(relationKeys)) + for i, relKey := range relationKeys { + relId, err := b.Space().GetRelationIdByKey(ctx, relKey) + if err != nil { + return fmt.Errorf("get relation id by key %s: %w", relKey, err) + } + list[i] = relId + } + st.SetDetailAndBundledRelation(relationToSet, pbtypes.StringList(list)) + return b.Apply(st) + }) +} + func (s *service) ListRelationsWithValue(spaceId string, value *types.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) { countersByKeys := make(map[string]int64) detailHandlesValue := generateFilter(value) diff --git a/core/block/detailservice/service.go b/core/block/detailservice/service.go index dd5f38937..8f55a85fd 100644 --- a/core/block/detailservice/service.go +++ b/core/block/detailservice/service.go @@ -40,6 +40,8 @@ type Service interface { ObjectTypeAddRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error + ObjectTypeSetRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error + ObjectTypeSetFeaturedRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ListRelationsWithValue(spaceId string, value *types.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) diff --git a/core/relations.go b/core/relations.go index 5f952e105..f8540b483 100644 --- a/core/relations.go +++ b/core/relations.go @@ -48,6 +48,44 @@ func (mw *Middleware) ObjectTypeRelationRemove(cctx context.Context, req *pb.Rpc } } +func (mw *Middleware) ObjectTypeRecommendedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { + detailsService := getService[detailservice.Service](mw) + keys := make([]domain.RelationKey, 0, len(req.RelationKeys)) + for _, relKey := range req.RelationKeys { + keys = append(keys, domain.RelationKey(relKey)) + } + + err := detailsService.ObjectTypeSetRelations(ctx, req.ObjectTypeId, keys) + code := mapErrorCode(err, + errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedRelationsSetResponseError_READONLY_OBJECT_TYPE), + ) + return &pb.RpcObjectTypeRecommendedRelationsSetResponse{ + Error: &pb.RpcObjectTypeRecommendedRelationsSetResponseError{ + Code: code, + Description: getErrorDescription(err), + }, + } +} + +func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { + detailsService := getService[detailservice.Service](mw) + keys := make([]domain.RelationKey, 0, len(req.RelationKeys)) + for _, relKey := range req.RelationKeys { + keys = append(keys, domain.RelationKey(relKey)) + } + + err := detailsService.ObjectTypeSetFeaturedRelations(ctx, req.ObjectTypeId, keys) + code := mapErrorCode(err, + errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_READONLY_OBJECT_TYPE), + ) + return &pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse{ + Error: &pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError{ + Code: code, + Description: getErrorDescription(err), + }, + } +} + func (mw *Middleware) RelationListRemoveOption(cctx context.Context, request *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse { response := func(code pb.RpcRelationListRemoveOptionResponseErrorCode, err error) *pb.RpcRelationListRemoveOptionResponse { if err != nil { diff --git a/docs/proto.md b/docs/proto.md index bb5bcb8f2..9302025c0 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -1059,6 +1059,15 @@ - [Rpc.ObjectRelation.RemoveFeatured.Response](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error) - [Rpc.ObjectType](#anytype-Rpc-ObjectType) + - [Rpc.ObjectType.Recommended](#anytype-Rpc-ObjectType-Recommended) + - [Rpc.ObjectType.Recommended.FeaturedRelationsSet](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet) + - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) + - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) + - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error) + - [Rpc.ObjectType.Recommended.RelationsSet](#anytype-Rpc-ObjectType-Recommended-RelationsSet) + - [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) + - [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) + - [Rpc.ObjectType.Recommended.RelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error) - [Rpc.ObjectType.Relation](#anytype-Rpc-ObjectType-Relation) - [Rpc.ObjectType.Relation.Add](#anytype-Rpc-ObjectType-Relation-Add) - [Rpc.ObjectType.Relation.Add.Request](#anytype-Rpc-ObjectType-Relation-Add-Request) @@ -1488,6 +1497,8 @@ - [Rpc.ObjectRelation.Delete.Response.Error.Code](#anytype-Rpc-ObjectRelation-Delete-Response-Error-Code) - [Rpc.ObjectRelation.ListAvailable.Response.Error.Code](#anytype-Rpc-ObjectRelation-ListAvailable-Response-Error-Code) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error.Code](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error-Code) + - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error-Code) + - [Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error-Code) - [Rpc.ObjectType.Relation.Add.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Add-Response-Error-Code) - [Rpc.ObjectType.Relation.Remove.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Remove-Response-Error-Code) - [Rpc.Process.Cancel.Response.Error.Code](#anytype-Rpc-Process-Cancel-Response-Error-Code) @@ -2054,6 +2065,8 @@ | ObjectCreateObjectType | [Rpc.Object.CreateObjectType.Request](#anytype-Rpc-Object-CreateObjectType-Request) | [Rpc.Object.CreateObjectType.Response](#anytype-Rpc-Object-CreateObjectType-Response) | ObjectType commands *** | | ObjectTypeRelationAdd | [Rpc.ObjectType.Relation.Add.Request](#anytype-Rpc-ObjectType-Relation-Add-Request) | [Rpc.ObjectType.Relation.Add.Response](#anytype-Rpc-ObjectType-Relation-Add-Response) | | | ObjectTypeRelationRemove | [Rpc.ObjectType.Relation.Remove.Request](#anytype-Rpc-ObjectType-Relation-Remove-Request) | [Rpc.ObjectType.Relation.Remove.Response](#anytype-Rpc-ObjectType-Relation-Remove-Response) | | +| ObjectTypeRecommendedRelationsSet | [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) | [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) | | +| ObjectTypeRecommendedFeaturedRelationsSet | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) | | | HistoryShowVersion | [Rpc.History.ShowVersion.Request](#anytype-Rpc-History-ShowVersion-Request) | [Rpc.History.ShowVersion.Response](#anytype-Rpc-History-ShowVersion-Response) | | | HistoryGetVersions | [Rpc.History.GetVersions.Request](#anytype-Rpc-History-GetVersions-Request) | [Rpc.History.GetVersions.Response](#anytype-Rpc-History-GetVersions-Response) | | | HistorySetVersion | [Rpc.History.SetVersion.Request](#anytype-Rpc-History-SetVersion-Request) | [Rpc.History.SetVersion.Response](#anytype-Rpc-History-SetVersion-Response) | | @@ -17605,6 +17618,130 @@ Available undo/redo operations + + +### Rpc.ObjectType.Recommended + + + + + + + + + +### Rpc.ObjectType.Recommended.FeaturedRelationsSet + + + + + + + + + +### Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| objectTypeId | [string](#string) | | | +| relationKeys | [string](#string) | repeated | | + + + + + + + + +### Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error) | | | + + + + + + + + +### Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + + + +### Rpc.ObjectType.Recommended.RelationsSet + + + + + + + + + +### Rpc.ObjectType.Recommended.RelationsSet.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| objectTypeId | [string](#string) | | | +| relationKeys | [string](#string) | repeated | | + + + + + + + + +### Rpc.ObjectType.Recommended.RelationsSet.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.ObjectType.Recommended.RelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error) | | | + + + + + + + + +### Rpc.ObjectType.Recommended.RelationsSet.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.ObjectType.Relation @@ -23551,6 +23688,34 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | +| READONLY_OBJECT_TYPE | 3 | ... | + + + + + +### Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | +| READONLY_OBJECT_TYPE | 3 | ... | + + + ### Rpc.ObjectType.Relation.Add.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index bb5fc1fb5..dfd0a96f2 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -3801,6 +3801,68 @@ func (RpcObjectTypeRelationRemoveResponseErrorCode) EnumDescriptor() ([]byte, [] return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 0, 1, 1, 0, 0} } +type RpcObjectTypeRecommendedRelationsSetResponseErrorCode int32 + +const ( + RpcObjectTypeRecommendedRelationsSetResponseError_NULL RpcObjectTypeRecommendedRelationsSetResponseErrorCode = 0 + RpcObjectTypeRecommendedRelationsSetResponseError_UNKNOWN_ERROR RpcObjectTypeRecommendedRelationsSetResponseErrorCode = 1 + RpcObjectTypeRecommendedRelationsSetResponseError_BAD_INPUT RpcObjectTypeRecommendedRelationsSetResponseErrorCode = 2 + RpcObjectTypeRecommendedRelationsSetResponseError_READONLY_OBJECT_TYPE RpcObjectTypeRecommendedRelationsSetResponseErrorCode = 3 +) + +var RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 3: "READONLY_OBJECT_TYPE", +} + +var RpcObjectTypeRecommendedRelationsSetResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "READONLY_OBJECT_TYPE": 3, +} + +func (x RpcObjectTypeRecommendedRelationsSetResponseErrorCode) String() string { + return proto.EnumName(RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name, int32(x)) +} + +func (RpcObjectTypeRecommendedRelationsSetResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 0, 1, 0, 0} +} + +type RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode int32 + +const ( + RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_NULL RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode = 0 + RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_UNKNOWN_ERROR RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode = 1 + RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_BAD_INPUT RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode = 2 + RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_READONLY_OBJECT_TYPE RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode = 3 +) + +var RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 3: "READONLY_OBJECT_TYPE", +} + +var RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "READONLY_OBJECT_TYPE": 3, +} + +func (x RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode) String() string { + return proto.EnumName(RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name, int32(x)) +} + +func (RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1, 0, 0} +} + type RpcRelationListRemoveOptionResponseErrorCode int32 const ( @@ -31780,6 +31842,438 @@ func (m *RpcObjectTypeRelationRemoveResponseError) GetDescription() string { return "" } +type RpcObjectTypeRecommended struct { +} + +func (m *RpcObjectTypeRecommended) Reset() { *m = RpcObjectTypeRecommended{} } +func (m *RpcObjectTypeRecommended) String() string { return proto.CompactTextString(m) } +func (*RpcObjectTypeRecommended) ProtoMessage() {} +func (*RpcObjectTypeRecommended) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1} +} +func (m *RpcObjectTypeRecommended) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommended) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommended.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommended) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommended.Merge(m, src) +} +func (m *RpcObjectTypeRecommended) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommended) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommended.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommended proto.InternalMessageInfo + +type RpcObjectTypeRecommendedRelationsSet struct { +} + +func (m *RpcObjectTypeRecommendedRelationsSet) Reset() { *m = RpcObjectTypeRecommendedRelationsSet{} } +func (m *RpcObjectTypeRecommendedRelationsSet) String() string { return proto.CompactTextString(m) } +func (*RpcObjectTypeRecommendedRelationsSet) ProtoMessage() {} +func (*RpcObjectTypeRecommendedRelationsSet) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 0} +} +func (m *RpcObjectTypeRecommendedRelationsSet) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedRelationsSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedRelationsSet.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedRelationsSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSet.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedRelationsSet) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedRelationsSet) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSet.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSet proto.InternalMessageInfo + +type RpcObjectTypeRecommendedRelationsSetRequest struct { + ObjectTypeId string `protobuf:"bytes,1,opt,name=objectTypeId,proto3" json:"objectTypeId,omitempty"` + RelationKeys []string `protobuf:"bytes,2,rep,name=relationKeys,proto3" json:"relationKeys,omitempty"` +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) Reset() { + *m = RpcObjectTypeRecommendedRelationsSetRequest{} +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedRelationsSetRequest) ProtoMessage() {} +func (*RpcObjectTypeRecommendedRelationsSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 0, 0} +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetRequest.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetRequest proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetObjectTypeId() string { + if m != nil { + return m.ObjectTypeId + } + return "" +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetRelationKeys() []string { + if m != nil { + return m.RelationKeys + } + return nil +} + +type RpcObjectTypeRecommendedRelationsSetResponse struct { + Error *RpcObjectTypeRecommendedRelationsSetResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) Reset() { + *m = RpcObjectTypeRecommendedRelationsSetResponse{} +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedRelationsSetResponse) ProtoMessage() {} +func (*RpcObjectTypeRecommendedRelationsSetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 0, 1} +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponse.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponse proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) GetError() *RpcObjectTypeRecommendedRelationsSetResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcObjectTypeRecommendedRelationsSetResponseError struct { + Code RpcObjectTypeRecommendedRelationsSetResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectTypeRecommendedRelationsSetResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) Reset() { + *m = RpcObjectTypeRecommendedRelationsSetResponseError{} +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedRelationsSetResponseError) ProtoMessage() {} +func (*RpcObjectTypeRecommendedRelationsSetResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 0, 1, 0} +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponseError.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetResponseError proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) GetCode() RpcObjectTypeRecommendedRelationsSetResponseErrorCode { + if m != nil { + return m.Code + } + return RpcObjectTypeRecommendedRelationsSetResponseError_NULL +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +type RpcObjectTypeRecommendedFeaturedRelationsSet struct { +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) Reset() { + *m = RpcObjectTypeRecommendedFeaturedRelationsSet{} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedFeaturedRelationsSet) ProtoMessage() {} +func (*RpcObjectTypeRecommendedFeaturedRelationsSet) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSet.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSet.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSet.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSet proto.InternalMessageInfo + +type RpcObjectTypeRecommendedFeaturedRelationsSetRequest struct { + ObjectTypeId string `protobuf:"bytes,1,opt,name=objectTypeId,proto3" json:"objectTypeId,omitempty"` + RelationKeys []string `protobuf:"bytes,2,rep,name=relationKeys,proto3" json:"relationKeys,omitempty"` +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Reset() { + *m = RpcObjectTypeRecommendedFeaturedRelationsSetRequest{} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetRequest) ProtoMessage() {} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 0} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetRequest.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetRequest proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetObjectTypeId() string { + if m != nil { + return m.ObjectTypeId + } + return "" +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetRelationKeys() []string { + if m != nil { + return m.RelationKeys + } + return nil +} + +type RpcObjectTypeRecommendedFeaturedRelationsSetResponse struct { + Error *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) Reset() { + *m = RpcObjectTypeRecommendedFeaturedRelationsSetResponse{} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetResponse) ProtoMessage() {} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponse.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponse proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) GetError() *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcObjectTypeRecommendedFeaturedRelationsSetResponseError struct { + Code RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Reset() { + *m = RpcObjectTypeRecommendedFeaturedRelationsSetResponseError{} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) ProtoMessage() {} +func (*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1, 0} +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponseError.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetResponseError proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) GetCode() RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode { + if m != nil { + return m.Code + } + return RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_NULL +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcRelation struct { } @@ -68755,6 +69249,8 @@ func init() { proto.RegisterEnum("anytype.RpcObjectRelationRemoveFeaturedResponseErrorCode", RpcObjectRelationRemoveFeaturedResponseErrorCode_name, RpcObjectRelationRemoveFeaturedResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRelationAddResponseErrorCode", RpcObjectTypeRelationAddResponseErrorCode_name, RpcObjectTypeRelationAddResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRelationRemoveResponseErrorCode", RpcObjectTypeRelationRemoveResponseErrorCode_name, RpcObjectTypeRelationRemoveResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectTypeRecommendedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedRelationsSetResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListRemoveOptionResponseErrorCode", RpcRelationListRemoveOptionResponseErrorCode_name, RpcRelationListRemoveOptionResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationOptionsResponseErrorCode", RpcRelationOptionsResponseErrorCode_name, RpcRelationOptionsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListWithValueResponseErrorCode", RpcRelationListWithValueResponseErrorCode_name, RpcRelationListWithValueResponseErrorCode_value) @@ -69387,6 +69883,15 @@ func init() { proto.RegisterType((*RpcObjectTypeRelationRemoveRequest)(nil), "anytype.Rpc.ObjectType.Relation.Remove.Request") proto.RegisterType((*RpcObjectTypeRelationRemoveResponse)(nil), "anytype.Rpc.ObjectType.Relation.Remove.Response") proto.RegisterType((*RpcObjectTypeRelationRemoveResponseError)(nil), "anytype.Rpc.ObjectType.Relation.Remove.Response.Error") + proto.RegisterType((*RpcObjectTypeRecommended)(nil), "anytype.Rpc.ObjectType.Recommended") + proto.RegisterType((*RpcObjectTypeRecommendedRelationsSet)(nil), "anytype.Rpc.ObjectType.Recommended.RelationsSet") + proto.RegisterType((*RpcObjectTypeRecommendedRelationsSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.RelationsSet.Request") + proto.RegisterType((*RpcObjectTypeRecommendedRelationsSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.RelationsSet.Response") + proto.RegisterType((*RpcObjectTypeRecommendedRelationsSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.RelationsSet.Response.Error") + proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSet)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet") + proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request") + proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response") + proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error") proto.RegisterType((*RpcRelation)(nil), "anytype.Rpc.Relation") proto.RegisterType((*RpcRelationListRemoveOption)(nil), "anytype.Rpc.Relation.ListRemoveOption") proto.RegisterType((*RpcRelationListRemoveOptionRequest)(nil), "anytype.Rpc.Relation.ListRemoveOption.Request") @@ -70127,1203 +70632,1210 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 19138 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x24, 0x47, - 0x75, 0x27, 0x3a, 0x55, 0x59, 0x55, 0xdd, 0x7d, 0xfa, 0x31, 0x35, 0xa9, 0x99, 0xd1, 0x28, 0x24, - 0x46, 0xf2, 0x48, 0x08, 0x59, 0x88, 0x96, 0x90, 0x30, 0x20, 0x21, 0x21, 0x55, 0x57, 0x67, 0x77, - 0x97, 0xd4, 0x5d, 0xd5, 0x64, 0x55, 0xcf, 0x20, 0x7b, 0x7d, 0x6b, 0x73, 0xaa, 0xa2, 0xbb, 0x53, - 0x53, 0x9d, 0x59, 0xce, 0xcc, 0xee, 0xd1, 0x70, 0xbf, 0xbd, 0x6b, 0x8c, 0xc5, 0xc3, 0x98, 0x05, - 0x8c, 0xb1, 0x8d, 0x79, 0x8b, 0xd7, 0x82, 0x0d, 0x98, 0xf7, 0x82, 0x6d, 0xc0, 0x3c, 0x0c, 0xc6, - 0x36, 0xc6, 0x60, 0x0c, 0xc6, 0xe6, 0x1a, 0x0c, 0xc6, 0xf8, 0x7e, 0x66, 0xb9, 0xf6, 0x2e, 0xb0, - 0xd8, 0xe6, 0xfa, 0x7e, 0x19, 0x11, 0xf9, 0x88, 0xea, 0xca, 0xac, 0xc8, 0xea, 0xca, 0x6a, 0x61, - 0xf6, 0xbf, 0xcc, 0xc8, 0xc8, 0x13, 0x27, 0xce, 0xef, 0x44, 0xc4, 0x89, 0x88, 0x13, 0x27, 0xe0, - 0x54, 0xf7, 0xfc, 0xcd, 0x5d, 0xcb, 0x74, 0x4c, 0xfb, 0xe6, 0x96, 0xb9, 0xb3, 0xa3, 0x19, 0x6d, - 0x7b, 0x9e, 0xbc, 0xcb, 0x13, 0x9a, 0x71, 0xc9, 0xb9, 0xd4, 0xc5, 0xe8, 0xba, 0xee, 0x85, 0xad, - 0x9b, 0x3b, 0xfa, 0xf9, 0x9b, 0xbb, 0xe7, 0x6f, 0xde, 0x31, 0xdb, 0xb8, 0xe3, 0xfd, 0x40, 0x5e, - 0x58, 0x76, 0x74, 0x43, 0x54, 0xae, 0x8e, 0xd9, 0xd2, 0x3a, 0xb6, 0x63, 0x5a, 0x98, 0xe5, 0x3c, - 0x19, 0x14, 0x89, 0xf7, 0xb0, 0xe1, 0x78, 0x14, 0xae, 0xda, 0x32, 0xcd, 0xad, 0x0e, 0xa6, 0xdf, - 0xce, 0xef, 0x6e, 0xde, 0x6c, 0x3b, 0xd6, 0x6e, 0xcb, 0x61, 0x5f, 0xaf, 0xe9, 0xfd, 0xda, 0xc6, - 0x76, 0xcb, 0xd2, 0xbb, 0x8e, 0x69, 0xd1, 0x1c, 0x67, 0x1e, 0xfa, 0x1f, 0x13, 0x20, 0xa9, 0xdd, - 0x16, 0xfa, 0xee, 0x04, 0x48, 0xa5, 0x6e, 0x17, 0x7d, 0x3c, 0x0b, 0xb0, 0x8c, 0x9d, 0xb3, 0xd8, - 0xb2, 0x75, 0xd3, 0x40, 0x47, 0x61, 0x42, 0xc5, 0x3f, 0xb3, 0x8b, 0x6d, 0xe7, 0x8e, 0xdc, 0x73, - 0xbf, 0x21, 0x65, 0xd0, 0x1b, 0xb2, 0x30, 0xa9, 0x62, 0xbb, 0x6b, 0x1a, 0x36, 0x96, 0xef, 0x81, - 0x3c, 0xb6, 0x2c, 0xd3, 0x3a, 0x95, 0xb9, 0x26, 0x73, 0xc3, 0xf4, 0xad, 0x37, 0xce, 0xb3, 0xea, - 0xcf, 0xab, 0xdd, 0xd6, 0x7c, 0xa9, 0xdb, 0x9d, 0x0f, 0x28, 0xcd, 0x7b, 0x3f, 0xcd, 0x2b, 0xee, - 0x1f, 0x2a, 0xfd, 0x51, 0x3e, 0x05, 0x13, 0x7b, 0x34, 0xc3, 0xa9, 0xec, 0x35, 0x99, 0x1b, 0xa6, - 0x54, 0xef, 0xd5, 0xfd, 0xd2, 0xc6, 0x8e, 0xa6, 0x77, 0xec, 0x53, 0x12, 0xfd, 0xc2, 0x5e, 0xd1, - 0xc3, 0x19, 0xc8, 0x13, 0x22, 0x72, 0x19, 0x72, 0x2d, 0xb3, 0x8d, 0x49, 0xf1, 0x73, 0xb7, 0xde, - 0x2c, 0x5e, 0xfc, 0x7c, 0xd9, 0x6c, 0x63, 0x95, 0xfc, 0x2c, 0x5f, 0x03, 0xd3, 0x9e, 0x58, 0x02, - 0x36, 0xc2, 0x49, 0x67, 0x6e, 0x85, 0x9c, 0x9b, 0x5f, 0x9e, 0x84, 0x5c, 0x75, 0x63, 0x75, 0xb5, - 0x78, 0x44, 0x3e, 0x06, 0xb3, 0x1b, 0xd5, 0xfb, 0xaa, 0xb5, 0x73, 0xd5, 0xa6, 0xa2, 0xaa, 0x35, - 0xb5, 0x98, 0x91, 0x67, 0x61, 0x6a, 0xa1, 0xb4, 0xd8, 0xac, 0x54, 0xd7, 0x37, 0x1a, 0xc5, 0x2c, - 0x7a, 0x95, 0x04, 0x73, 0x75, 0xec, 0x2c, 0xe2, 0x3d, 0xbd, 0x85, 0xeb, 0x8e, 0xe6, 0x60, 0xf4, - 0xc2, 0x8c, 0x2f, 0x4c, 0x79, 0xc3, 0x2d, 0xd4, 0xff, 0xc4, 0x2a, 0x70, 0xdb, 0xbe, 0x0a, 0xf0, - 0x14, 0xe6, 0xd9, 0xdf, 0xf3, 0xa1, 0x34, 0x35, 0x4c, 0xe7, 0xcc, 0xe3, 0x60, 0x3a, 0xf4, 0x4d, - 0x9e, 0x03, 0x58, 0x28, 0x95, 0xef, 0x5b, 0x56, 0x6b, 0x1b, 0xd5, 0xc5, 0xe2, 0x11, 0xf7, 0x7d, - 0xa9, 0xa6, 0x2a, 0xec, 0x3d, 0x83, 0xbe, 0x9f, 0x09, 0x81, 0xb9, 0xc8, 0x83, 0x39, 0x3f, 0x98, - 0x99, 0x3e, 0x80, 0xa2, 0x37, 0xfa, 0xe0, 0x2c, 0x73, 0xe0, 0xdc, 0x96, 0x8c, 0x5c, 0xfa, 0x00, - 0x3d, 0x94, 0x85, 0xc9, 0xfa, 0xf6, 0xae, 0xd3, 0x36, 0x2f, 0x1a, 0x68, 0xca, 0x47, 0x06, 0x7d, - 0x2b, 0x2c, 0x93, 0xa7, 0xf2, 0x32, 0xb9, 0x61, 0x7f, 0x25, 0x18, 0x85, 0x08, 0x69, 0xbc, 0xc6, - 0x97, 0x46, 0x89, 0x93, 0xc6, 0xe3, 0x44, 0x09, 0xa5, 0x2f, 0x87, 0x17, 0xdd, 0x06, 0xf9, 0x7a, - 0x57, 0x6b, 0x61, 0xf4, 0x47, 0x12, 0xcc, 0xac, 0x62, 0x6d, 0x0f, 0x97, 0xba, 0x5d, 0xcb, 0xdc, - 0xc3, 0xa8, 0x1c, 0xe8, 0xeb, 0x29, 0x98, 0xb0, 0xdd, 0x4c, 0x95, 0x36, 0xa9, 0xc1, 0x94, 0xea, - 0xbd, 0xca, 0xa7, 0x01, 0xf4, 0x36, 0x36, 0x1c, 0xdd, 0xd1, 0xb1, 0x7d, 0x2a, 0x7b, 0x8d, 0x74, - 0xc3, 0x94, 0x1a, 0x4a, 0x41, 0xdf, 0xcd, 0x8a, 0xea, 0x18, 0xe1, 0x62, 0x3e, 0xcc, 0x41, 0x84, - 0x54, 0x5f, 0x97, 0x15, 0xd1, 0xb1, 0x81, 0xe4, 0x92, 0xc9, 0xf6, 0x6d, 0x99, 0xe4, 0xc2, 0x75, - 0x73, 0x54, 0x6b, 0xcd, 0xfa, 0x46, 0x79, 0xa5, 0x59, 0x5f, 0x2f, 0x95, 0x95, 0x22, 0x96, 0x8f, - 0x43, 0x91, 0x3c, 0x36, 0x2b, 0xf5, 0xe6, 0xa2, 0xb2, 0xaa, 0x34, 0x94, 0xc5, 0xe2, 0xa6, 0x2c, - 0xc3, 0x9c, 0xaa, 0x3c, 0x6d, 0x43, 0xa9, 0x37, 0x9a, 0x4b, 0xa5, 0xca, 0xaa, 0xb2, 0x58, 0xdc, - 0x72, 0x7f, 0x5e, 0xad, 0xac, 0x55, 0x1a, 0x4d, 0x55, 0x29, 0x95, 0x57, 0x94, 0xc5, 0xe2, 0xb6, - 0x7c, 0x39, 0x5c, 0x56, 0xad, 0x35, 0x4b, 0xeb, 0xeb, 0x6a, 0xed, 0xac, 0xd2, 0x64, 0x7f, 0xd4, - 0x8b, 0x3a, 0x2d, 0xa8, 0xd1, 0xac, 0xaf, 0x94, 0x54, 0xa5, 0xb4, 0xb0, 0xaa, 0x14, 0x1f, 0x40, - 0xcf, 0x92, 0x60, 0x76, 0x4d, 0xbb, 0x80, 0xeb, 0xdb, 0x9a, 0x85, 0xb5, 0xf3, 0x1d, 0x8c, 0xae, - 0x15, 0xc0, 0x13, 0xfd, 0x51, 0x18, 0x2f, 0x85, 0xc7, 0xeb, 0xe6, 0x3e, 0x02, 0xe6, 0x8a, 0x88, - 0x00, 0xec, 0x7f, 0xf9, 0xcd, 0x60, 0x85, 0x03, 0xec, 0x09, 0x09, 0xe9, 0x25, 0x43, 0xec, 0xe7, - 0x1e, 0x01, 0x88, 0xa1, 0x2f, 0x4b, 0x30, 0x57, 0x31, 0xf6, 0x74, 0x07, 0x2f, 0x63, 0x03, 0x5b, - 0xee, 0x38, 0x20, 0x04, 0xc3, 0x1b, 0xa4, 0x10, 0x0c, 0x4b, 0x3c, 0x0c, 0xb7, 0xf4, 0x11, 0x1b, - 0x5f, 0x46, 0xc4, 0x68, 0x7b, 0x15, 0x4c, 0xe9, 0x24, 0x5f, 0x59, 0x6f, 0x33, 0x89, 0x05, 0x09, - 0xf2, 0x75, 0x30, 0x4b, 0x5f, 0x96, 0xf4, 0x0e, 0xbe, 0x0f, 0x5f, 0x62, 0xe3, 0x2e, 0x9f, 0x88, - 0x7e, 0xd1, 0x6f, 0x7c, 0x15, 0x0e, 0xcb, 0x9f, 0x48, 0xca, 0x54, 0x32, 0x30, 0x5f, 0xfa, 0x48, - 0x68, 0x7e, 0xfb, 0x5a, 0x99, 0x8e, 0x7e, 0x90, 0x85, 0xe9, 0xba, 0x63, 0x76, 0x5d, 0x95, 0xd5, - 0x8d, 0x2d, 0x31, 0x70, 0x3f, 0x19, 0x6e, 0x63, 0x65, 0x1e, 0xdc, 0xc7, 0xf5, 0x91, 0x63, 0xa8, - 0x80, 0x88, 0x16, 0xf6, 0x5d, 0xbf, 0x85, 0x2d, 0x71, 0xa8, 0xdc, 0x9a, 0x88, 0xda, 0x0f, 0x61, - 0xfb, 0x7a, 0xa9, 0x04, 0x45, 0x4f, 0xcd, 0x9c, 0xf2, 0xae, 0x65, 0x61, 0xc3, 0x11, 0x03, 0xe1, - 0x2f, 0xc3, 0x20, 0xac, 0xf0, 0x20, 0xdc, 0x1a, 0xa3, 0xcc, 0x5e, 0x29, 0x29, 0xb6, 0xb1, 0x0f, - 0xfb, 0x68, 0xde, 0xc7, 0xa1, 0xf9, 0xa4, 0xe4, 0x6c, 0x25, 0x83, 0x74, 0x65, 0x08, 0x44, 0x8f, - 0x43, 0xd1, 0x1d, 0x93, 0xca, 0x8d, 0xca, 0x59, 0xa5, 0x59, 0xa9, 0x9e, 0xad, 0x34, 0x94, 0x22, - 0x46, 0x2f, 0x91, 0x60, 0x86, 0xb2, 0xa6, 0xe2, 0x3d, 0xf3, 0x82, 0x60, 0xaf, 0xf7, 0xe5, 0x84, - 0xc6, 0x42, 0xb8, 0x84, 0x88, 0x96, 0xf1, 0x0b, 0x09, 0x8c, 0x85, 0x18, 0x72, 0x8f, 0xa4, 0xde, - 0x6a, 0x5f, 0x33, 0xd8, 0xea, 0xd3, 0x5a, 0xfa, 0xf6, 0x56, 0x2f, 0xcd, 0x01, 0xd0, 0x4a, 0x9e, - 0xd5, 0xf1, 0x45, 0xb4, 0x16, 0x60, 0xc2, 0xa9, 0x6d, 0x66, 0xa0, 0xda, 0x66, 0xfb, 0xa9, 0xed, - 0xfb, 0xc2, 0x63, 0xd6, 0x02, 0x8f, 0xde, 0x4d, 0x91, 0xe2, 0x76, 0x39, 0x89, 0x9e, 0x1d, 0x7a, - 0x8a, 0x92, 0xe5, 0xad, 0xce, 0xab, 0x60, 0x8a, 0x3c, 0x56, 0xb5, 0x1d, 0xcc, 0xda, 0x50, 0x90, - 0x20, 0x9f, 0x81, 0x19, 0x9a, 0xb1, 0x65, 0x1a, 0x6e, 0x7d, 0x72, 0x24, 0x03, 0x97, 0xe6, 0x82, - 0xd8, 0xb2, 0xb0, 0xe6, 0x98, 0x16, 0xa1, 0x91, 0xa7, 0x20, 0x86, 0x92, 0xd0, 0x37, 0xfd, 0x56, - 0xa8, 0x70, 0x9a, 0xf3, 0xf8, 0x24, 0x55, 0x49, 0xa6, 0x37, 0x7b, 0xc3, 0xb5, 0x3f, 0xda, 0xea, - 0x9a, 0x2e, 0xda, 0x4b, 0x64, 0x6a, 0x87, 0xe5, 0x93, 0x20, 0xb3, 0x54, 0x37, 0x6f, 0xb9, 0x56, - 0x6d, 0x28, 0xd5, 0x46, 0x71, 0xb3, 0xaf, 0x46, 0x6d, 0xa1, 0xd7, 0xe5, 0x20, 0x77, 0xaf, 0xa9, - 0x1b, 0xe8, 0xa1, 0x0c, 0xa7, 0x12, 0x06, 0x76, 0x2e, 0x9a, 0xd6, 0x05, 0xbf, 0xa1, 0x06, 0x09, - 0xf1, 0xd8, 0x04, 0xaa, 0x24, 0x0d, 0x54, 0xa5, 0x5c, 0x3f, 0x55, 0xfa, 0xa5, 0xb0, 0x2a, 0xdd, - 0xc9, 0xab, 0xd2, 0xf5, 0x7d, 0xe4, 0xef, 0x32, 0x1f, 0xd1, 0x01, 0x7c, 0xc2, 0xef, 0x00, 0xee, - 0xe6, 0x60, 0x7c, 0xac, 0x18, 0x99, 0x64, 0x00, 0x7e, 0x29, 0xd5, 0x86, 0xdf, 0x0f, 0xea, 0xad, - 0x08, 0xa8, 0xb7, 0xfb, 0xf4, 0x09, 0xfa, 0xfe, 0xae, 0xe3, 0x81, 0xfd, 0xdd, 0xc4, 0x05, 0xf9, - 0x04, 0x1c, 0x5b, 0xac, 0x2c, 0x2d, 0x29, 0xaa, 0x52, 0x6d, 0x34, 0xab, 0x4a, 0xe3, 0x5c, 0x4d, - 0xbd, 0xaf, 0xd8, 0x41, 0x0f, 0x4b, 0x00, 0xae, 0x84, 0xca, 0x9a, 0xd1, 0xc2, 0x1d, 0xb1, 0x1e, - 0xfd, 0xbf, 0x67, 0x93, 0xf5, 0x09, 0x01, 0xfd, 0x08, 0x38, 0x5f, 0x99, 0x15, 0x6f, 0x95, 0x91, - 0xc4, 0x92, 0x81, 0xfa, 0x96, 0x47, 0x82, 0xed, 0x79, 0x19, 0x1c, 0xf5, 0xe8, 0xb1, 0xec, 0xfd, - 0xa7, 0x7d, 0x6f, 0xcf, 0xc1, 0x1c, 0x83, 0xc5, 0x9b, 0xc7, 0x3f, 0x37, 0x23, 0x32, 0x91, 0x47, - 0x30, 0xc9, 0xa6, 0xed, 0x5e, 0xf7, 0xee, 0xbf, 0xcb, 0xcb, 0x30, 0xdd, 0xc5, 0xd6, 0x8e, 0x6e, - 0xdb, 0xba, 0x69, 0xd0, 0x05, 0xb9, 0xb9, 0x5b, 0x1f, 0xed, 0x4b, 0x9c, 0xac, 0x5d, 0xce, 0xaf, - 0x6b, 0x96, 0xa3, 0xb7, 0xf4, 0xae, 0x66, 0x38, 0xeb, 0x41, 0x66, 0x35, 0xfc, 0x27, 0x7a, 0x71, - 0xc2, 0x69, 0x0d, 0x5f, 0x93, 0x08, 0x95, 0xf8, 0x9d, 0x04, 0x53, 0x92, 0x58, 0x82, 0xc9, 0xd4, - 0xe2, 0xe3, 0xa9, 0xaa, 0x45, 0x1f, 0xbc, 0xb7, 0xe4, 0x2b, 0xe0, 0x44, 0xa5, 0x5a, 0xae, 0xa9, - 0xaa, 0x52, 0x6e, 0x34, 0xd7, 0x15, 0x75, 0xad, 0x52, 0xaf, 0x57, 0x6a, 0xd5, 0xfa, 0x41, 0x5a, - 0x3b, 0xfa, 0x94, 0xe4, 0x6b, 0xcc, 0x22, 0x6e, 0x75, 0x74, 0x03, 0xa3, 0xbb, 0x0f, 0xa8, 0x30, - 0xfc, 0xaa, 0x8f, 0x38, 0xce, 0xac, 0xfc, 0x08, 0x9c, 0x5f, 0x9b, 0x1c, 0xe7, 0xfe, 0x04, 0xff, - 0x1d, 0x37, 0xff, 0x2f, 0x4b, 0x70, 0x2c, 0xd4, 0x10, 0x55, 0xbc, 0x33, 0xb2, 0x95, 0xbc, 0x9f, - 0x0b, 0xb7, 0xdd, 0x0a, 0x8f, 0x69, 0x3f, 0x6b, 0x7a, 0x1f, 0x1b, 0x11, 0xb0, 0xbe, 0xc5, 0x87, - 0x75, 0x95, 0x83, 0xf5, 0xc9, 0x43, 0xd0, 0x4c, 0x86, 0xec, 0x6f, 0xa5, 0x8a, 0xec, 0x15, 0x70, - 0x62, 0xbd, 0xa4, 0x36, 0x2a, 0xe5, 0xca, 0x7a, 0xc9, 0x1d, 0x47, 0x43, 0x43, 0x76, 0x84, 0xb9, - 0xce, 0x83, 0xde, 0x17, 0xdf, 0x0f, 0xe5, 0xe0, 0xaa, 0xfe, 0x1d, 0x6d, 0x79, 0x5b, 0x33, 0xb6, - 0x30, 0xd2, 0x45, 0xa0, 0x5e, 0x84, 0x89, 0x16, 0xc9, 0x4e, 0x71, 0x0e, 0x6f, 0xdd, 0xc4, 0xf4, - 0xe5, 0xb4, 0x04, 0xd5, 0xfb, 0x15, 0xbd, 0x2b, 0xac, 0x10, 0x0d, 0x5e, 0x21, 0x9e, 0x1a, 0x0f, - 0xde, 0x3e, 0xbe, 0x23, 0x74, 0xe3, 0x33, 0xbe, 0x6e, 0x9c, 0xe3, 0x74, 0xa3, 0x7c, 0x30, 0xf2, - 0xc9, 0xd4, 0xe4, 0x0f, 0x1f, 0x09, 0x1d, 0x40, 0xa4, 0x36, 0xe9, 0xd1, 0xa3, 0x42, 0xdf, 0xee, - 0xfe, 0xd5, 0x12, 0x14, 0x16, 0x71, 0x07, 0x8b, 0xae, 0x44, 0x7e, 0x3b, 0x2b, 0xba, 0x21, 0x42, - 0x61, 0xa0, 0xb4, 0xa3, 0x57, 0x47, 0x1c, 0x7d, 0x07, 0xdb, 0x8e, 0xb6, 0xd3, 0x25, 0xa2, 0x96, - 0xd4, 0x20, 0x01, 0xfd, 0x7c, 0x56, 0x64, 0xbb, 0x24, 0xa6, 0x98, 0x7f, 0x1f, 0x6b, 0x8a, 0x5f, - 0x9b, 0x83, 0xc2, 0x39, 0xad, 0xd3, 0xc1, 0x0e, 0xfa, 0x7a, 0x16, 0x0a, 0x65, 0x77, 0x4e, 0x8a, - 0xd1, 0x63, 0x03, 0xb0, 0x10, 0x4c, 0x5a, 0xa6, 0xe9, 0xac, 0x6b, 0xce, 0x36, 0x43, 0xcb, 0x7f, - 0x67, 0xdb, 0xb4, 0xbf, 0x19, 0x06, 0xed, 0x6e, 0x1e, 0xb4, 0x1f, 0xe7, 0xa4, 0x49, 0x0b, 0x9a, - 0xa7, 0x85, 0x44, 0xa0, 0x86, 0x60, 0x72, 0xc7, 0xc0, 0x3b, 0xa6, 0xa1, 0xb7, 0xbc, 0x91, 0xde, - 0x7b, 0x47, 0x1f, 0xf1, 0x67, 0xc9, 0x0b, 0x1c, 0x66, 0xf3, 0xc2, 0xa5, 0x24, 0x03, 0xad, 0x3e, - 0x04, 0x66, 0x57, 0xc3, 0x95, 0x14, 0x82, 0x66, 0xa3, 0xd6, 0x2c, 0xab, 0x4a, 0xa9, 0xa1, 0x34, - 0x57, 0x6b, 0xe5, 0xd2, 0x6a, 0x53, 0x55, 0xd6, 0x6b, 0x45, 0x8c, 0xfe, 0x2e, 0xeb, 0x0a, 0xb7, - 0x65, 0xee, 0x61, 0x0b, 0x2d, 0x0b, 0xc9, 0x39, 0x4e, 0x26, 0x0c, 0x83, 0x5f, 0x12, 0xde, 0x2a, - 0x67, 0xd2, 0x61, 0x1c, 0x44, 0x74, 0x85, 0x1f, 0x15, 0xda, 0xf6, 0x8e, 0x25, 0xf5, 0x08, 0x90, - 0xf4, 0xff, 0xcc, 0xc2, 0x44, 0xd9, 0x34, 0xf6, 0xb0, 0xe5, 0x84, 0xad, 0xcc, 0xb0, 0x34, 0x33, - 0xbc, 0x34, 0xdd, 0xae, 0x09, 0x1b, 0x8e, 0x65, 0x76, 0x3d, 0x33, 0xd3, 0x7b, 0x45, 0x6f, 0x4a, - 0x2a, 0x61, 0x56, 0x72, 0xf4, 0x72, 0x53, 0xff, 0x82, 0x38, 0xf6, 0xa4, 0x9e, 0x06, 0xf0, 0x70, - 0x12, 0x5c, 0xfa, 0x33, 0x90, 0xfe, 0x2e, 0xef, 0x57, 0x24, 0x98, 0xa5, 0x8d, 0xaf, 0x8e, 0xc9, - 0xb8, 0x88, 0x6a, 0xe1, 0x85, 0x9e, 0x1e, 0xe1, 0xaf, 0x1c, 0xe1, 0xc4, 0x5f, 0xd0, 0xba, 0x5d, - 0x7f, 0xd1, 0x6f, 0xe5, 0x88, 0xca, 0xde, 0xa9, 0x9a, 0x2f, 0x14, 0x20, 0xa7, 0xed, 0x3a, 0xdb, - 0xe8, 0x07, 0xc2, 0x26, 0x3f, 0xd7, 0x19, 0x30, 0x7e, 0x22, 0x20, 0x39, 0x0e, 0x79, 0xc7, 0xbc, - 0x80, 0x3d, 0x39, 0xd0, 0x17, 0x17, 0x0e, 0xad, 0xdb, 0x6d, 0x90, 0x0f, 0x0c, 0x0e, 0xef, 0xdd, - 0x1d, 0x61, 0xb4, 0x56, 0xcb, 0xdc, 0x35, 0x9c, 0x8a, 0xb7, 0xf0, 0x17, 0x24, 0xa0, 0x2f, 0x66, - 0x44, 0xa6, 0x10, 0x02, 0x0c, 0x26, 0x83, 0xec, 0xfc, 0x10, 0x4d, 0x69, 0x1e, 0x6e, 0x2c, 0xad, - 0xaf, 0x37, 0x1b, 0xb5, 0xfb, 0x94, 0x6a, 0x30, 0xdc, 0x37, 0x2b, 0xd5, 0x66, 0x63, 0x45, 0x69, - 0x96, 0x37, 0x54, 0xb2, 0x3a, 0x53, 0x2a, 0x97, 0x6b, 0x1b, 0xd5, 0x46, 0x11, 0xa3, 0xb7, 0x66, - 0x61, 0xa6, 0xdc, 0x31, 0x6d, 0x1f, 0xe1, 0xab, 0x03, 0x84, 0x7d, 0x31, 0x66, 0x42, 0x62, 0x44, - 0xff, 0x92, 0x11, 0xdd, 0xea, 0xf5, 0x04, 0x12, 0x22, 0x1f, 0xd1, 0x4b, 0xbd, 0x49, 0x68, 0xab, - 0x77, 0x30, 0xbd, 0xf4, 0x9b, 0xc4, 0xe7, 0xee, 0x80, 0x89, 0x12, 0x55, 0x0c, 0xf4, 0xd7, 0x19, - 0x28, 0x94, 0x4d, 0x63, 0x53, 0xdf, 0x92, 0xaf, 0x87, 0x39, 0x6c, 0x68, 0xe7, 0x3b, 0x78, 0x51, - 0x73, 0xb4, 0x3d, 0x1d, 0x5f, 0x24, 0x15, 0x98, 0x54, 0x7b, 0x52, 0x5d, 0xa6, 0x58, 0x0a, 0x3e, - 0xbf, 0xbb, 0x45, 0x98, 0x9a, 0x54, 0xc3, 0x49, 0xf2, 0x93, 0xe1, 0x72, 0xfa, 0xba, 0x6e, 0x61, - 0x0b, 0x77, 0xb0, 0x66, 0x63, 0xd7, 0x18, 0x35, 0x70, 0x87, 0x28, 0xed, 0xa4, 0x1a, 0xf5, 0x59, - 0x3e, 0x03, 0x33, 0xf4, 0x13, 0x31, 0x75, 0x6c, 0xa2, 0xc6, 0x93, 0x2a, 0x97, 0x26, 0x3f, 0x0e, - 0xf2, 0xf8, 0x41, 0xc7, 0xd2, 0x4e, 0xb5, 0x09, 0x5e, 0x97, 0xcf, 0x53, 0x5f, 0xaf, 0x79, 0xcf, - 0xd7, 0x6b, 0xbe, 0x4e, 0x3c, 0xc1, 0x54, 0x9a, 0x0b, 0xbd, 0x62, 0xd2, 0x37, 0x24, 0xfe, 0x2d, - 0x1b, 0x28, 0x86, 0x0c, 0x39, 0x43, 0xdb, 0xc1, 0x4c, 0x2f, 0xc8, 0xb3, 0x7c, 0x23, 0x1c, 0xd5, - 0xf6, 0x34, 0x47, 0xb3, 0x56, 0xcd, 0x96, 0xd6, 0x21, 0x83, 0x9f, 0xd7, 0xf2, 0x7b, 0x3f, 0x90, - 0x75, 0x78, 0xc7, 0xb4, 0x30, 0xc9, 0xe5, 0xad, 0xc3, 0x7b, 0x09, 0x2e, 0x75, 0xbd, 0x65, 0x1a, - 0x84, 0x7f, 0x49, 0x25, 0xcf, 0xae, 0x54, 0xda, 0xba, 0xed, 0x56, 0x84, 0x50, 0xa9, 0xd2, 0x05, - 0xe5, 0xfa, 0x25, 0xa3, 0x45, 0xd6, 0xe0, 0x27, 0xd5, 0xa8, 0xcf, 0xf2, 0x02, 0x4c, 0xb3, 0xe5, - 0xe7, 0x35, 0x57, 0xaf, 0x0a, 0x44, 0xaf, 0xae, 0xe1, 0x3d, 0x69, 0x28, 0x9e, 0xf3, 0xd5, 0x20, - 0x9f, 0x1a, 0xfe, 0x49, 0xbe, 0x07, 0xae, 0x64, 0xaf, 0xe5, 0x5d, 0xdb, 0x31, 0x77, 0x28, 0xe8, - 0x4b, 0x7a, 0x87, 0xd6, 0x60, 0x82, 0xd4, 0x20, 0x2e, 0x8b, 0x7c, 0x2b, 0x1c, 0xef, 0x5a, 0x78, - 0x13, 0x5b, 0xf7, 0x6b, 0x3b, 0xbb, 0x0f, 0x36, 0x2c, 0xcd, 0xb0, 0xbb, 0xa6, 0xe5, 0x9c, 0x9a, - 0x24, 0xcc, 0xf7, 0xfd, 0xc6, 0x3a, 0xca, 0x49, 0x28, 0x50, 0xf1, 0xa1, 0x17, 0xe6, 0x85, 0x9d, - 0xe8, 0x58, 0x85, 0x62, 0xcd, 0xb3, 0x5b, 0x60, 0x82, 0xf5, 0x70, 0x04, 0xa8, 0xe9, 0x5b, 0x4f, - 0xf6, 0xcc, 0xe6, 0x18, 0x15, 0xd5, 0xcb, 0x26, 0xdf, 0x06, 0x85, 0x16, 0xa9, 0x16, 0xc1, 0x6c, - 0xfa, 0xd6, 0x2b, 0xfb, 0x17, 0x4a, 0xb2, 0xa8, 0x2c, 0x2b, 0xfa, 0x0b, 0x49, 0xc8, 0xef, 0x2e, - 0x8e, 0xe3, 0x64, 0xad, 0xfa, 0x9b, 0xd9, 0x21, 0xba, 0xcd, 0x9b, 0xe0, 0x06, 0xd6, 0x27, 0x32, - 0xfb, 0x63, 0xb1, 0xb9, 0xb0, 0xe1, 0x99, 0xe0, 0xae, 0x55, 0x52, 0x6f, 0x94, 0x54, 0x77, 0xfe, - 0xb4, 0xe8, 0x9a, 0xee, 0x37, 0xc2, 0xf5, 0x03, 0x72, 0x2b, 0x8d, 0x66, 0xb5, 0xb4, 0xa6, 0x14, - 0x37, 0x79, 0xdb, 0xa6, 0xde, 0xa8, 0xad, 0x37, 0xd5, 0x8d, 0x6a, 0xb5, 0x52, 0x5d, 0xa6, 0xc4, - 0x5c, 0x93, 0xf0, 0x64, 0x90, 0xe1, 0x9c, 0x5a, 0x69, 0x28, 0xcd, 0x72, 0xad, 0xba, 0x54, 0x59, - 0x2e, 0xea, 0x83, 0x0c, 0xa3, 0x07, 0xe4, 0x6b, 0xe0, 0x2a, 0x8e, 0x93, 0x4a, 0xad, 0xea, 0xce, - 0x27, 0xca, 0xa5, 0x6a, 0x59, 0x71, 0x27, 0x0f, 0x17, 0x64, 0x04, 0x27, 0x28, 0xb9, 0xe6, 0x52, - 0x65, 0x35, 0xbc, 0x05, 0xf0, 0xc9, 0x8c, 0x7c, 0x0a, 0x2e, 0x0b, 0x7f, 0xab, 0x54, 0xcf, 0x96, - 0x56, 0x2b, 0x8b, 0xc5, 0x3f, 0xc8, 0xc8, 0xd7, 0xc1, 0xd5, 0xdc, 0x5f, 0x74, 0x35, 0xbf, 0x59, - 0x59, 0x6c, 0xae, 0x55, 0xea, 0x6b, 0xa5, 0x46, 0x79, 0xa5, 0xf8, 0x29, 0x32, 0x5f, 0xf0, 0x0d, - 0xe0, 0x90, 0x33, 0xdc, 0x4b, 0xc3, 0x63, 0x7a, 0x89, 0x57, 0xd4, 0xc7, 0xf6, 0x85, 0x3d, 0xde, - 0x86, 0xfd, 0xb8, 0x3f, 0x3a, 0x2c, 0x72, 0x2a, 0x74, 0x4b, 0x02, 0x5a, 0xc9, 0x74, 0xa8, 0x31, - 0x84, 0x0a, 0x5d, 0x03, 0x57, 0x55, 0x15, 0x8a, 0x94, 0xaa, 0x94, 0x6b, 0x67, 0x15, 0xb5, 0x79, - 0xae, 0xb4, 0xba, 0xaa, 0x34, 0x9a, 0x4b, 0x15, 0xb5, 0xde, 0x28, 0x6e, 0xa2, 0xef, 0x64, 0xfd, - 0x39, 0x74, 0x48, 0x5a, 0x7f, 0x9d, 0x4d, 0xda, 0xac, 0x63, 0xe7, 0xca, 0x3f, 0x01, 0x05, 0xdb, - 0xd1, 0x9c, 0x5d, 0x9b, 0xb5, 0xea, 0x47, 0xf5, 0x6f, 0xd5, 0xf3, 0x75, 0x92, 0x49, 0x65, 0x99, - 0xd1, 0x5f, 0x64, 0x92, 0x34, 0xd3, 0x11, 0x4c, 0xa3, 0xf5, 0x21, 0x44, 0x7c, 0x1a, 0x90, 0xa7, - 0xed, 0x95, 0x7a, 0xb3, 0xb4, 0xaa, 0x2a, 0xa5, 0xc5, 0xfb, 0xfd, 0xc9, 0x33, 0x96, 0x4f, 0xc0, - 0xb1, 0x8d, 0xaa, 0x3b, 0x1d, 0x26, 0xcd, 0xa5, 0x56, 0xad, 0x2a, 0x65, 0x57, 0xee, 0x3f, 0x4f, - 0x96, 0xaa, 0x5d, 0x0b, 0x9a, 0xf0, 0xed, 0x5a, 0x39, 0x21, 0xf9, 0x7f, 0x43, 0xd8, 0xa3, 0x23, - 0xd0, 0xb0, 0x30, 0xad, 0xd1, 0xe2, 0xf0, 0x45, 0x21, 0x27, 0x0e, 0x21, 0x4e, 0x92, 0xe1, 0xf1, - 0x1f, 0x87, 0xc0, 0xe3, 0x04, 0x1c, 0x0b, 0xe3, 0x41, 0x9c, 0x39, 0xa2, 0x61, 0xf8, 0xea, 0x24, - 0x14, 0xea, 0xb8, 0x83, 0x5b, 0x0e, 0x7a, 0x7b, 0xc8, 0x98, 0x98, 0x83, 0xac, 0xef, 0x3c, 0x90, - 0xd5, 0xdb, 0xdc, 0xf4, 0x39, 0xdb, 0x33, 0x7d, 0x8e, 0x31, 0x03, 0xa4, 0x44, 0x66, 0x40, 0x2e, - 0x05, 0x33, 0x20, 0x3f, 0xbc, 0x19, 0x50, 0x18, 0x64, 0x06, 0xa0, 0xd7, 0x17, 0x92, 0xf6, 0x12, - 0x54, 0xd4, 0x87, 0x3b, 0xf8, 0xff, 0xf7, 0x5c, 0x92, 0x5e, 0xa5, 0x2f, 0xc7, 0xc9, 0xb4, 0xf8, - 0x07, 0x52, 0x0a, 0xcb, 0x0f, 0xf2, 0xb5, 0x70, 0x75, 0xf0, 0xde, 0x54, 0x9e, 0x5e, 0xa9, 0x37, - 0xea, 0x64, 0xc4, 0x2f, 0xd7, 0x54, 0x75, 0x63, 0x9d, 0xae, 0xdc, 0x9d, 0x04, 0x39, 0xa0, 0xa2, - 0x6e, 0x54, 0xe9, 0xf8, 0xbe, 0xc5, 0x53, 0x5f, 0xaa, 0x54, 0x17, 0x9b, 0x7e, 0x9b, 0xa9, 0x2e, - 0xd5, 0x8a, 0xdb, 0xee, 0x94, 0x2d, 0x44, 0xdd, 0x1d, 0xa0, 0x59, 0x09, 0xa5, 0xea, 0x62, 0x73, - 0xad, 0xaa, 0xac, 0xd5, 0xaa, 0x95, 0x32, 0x49, 0xaf, 0x2b, 0x8d, 0xa2, 0xee, 0x0e, 0x34, 0x3d, - 0x16, 0x45, 0x5d, 0x29, 0xa9, 0xe5, 0x15, 0x45, 0xa5, 0x45, 0x3e, 0x20, 0x5f, 0x0f, 0x67, 0x4a, - 0xd5, 0x5a, 0xc3, 0x4d, 0x29, 0x55, 0xef, 0x6f, 0xdc, 0xbf, 0xae, 0x34, 0xd7, 0xd5, 0x5a, 0x59, - 0xa9, 0xd7, 0xdd, 0x76, 0xca, 0xec, 0x8f, 0x62, 0x47, 0x7e, 0x2a, 0xdc, 0x11, 0x62, 0x4d, 0x69, - 0x90, 0x6d, 0xa2, 0xb5, 0x1a, 0xf1, 0x14, 0x58, 0x54, 0x9a, 0x2b, 0xa5, 0x7a, 0xb3, 0x52, 0x2d, - 0xd7, 0xd6, 0xd6, 0x4b, 0x8d, 0x8a, 0xdb, 0x9c, 0xd7, 0xd5, 0x5a, 0xa3, 0xd6, 0x3c, 0xab, 0xa8, - 0xf5, 0x4a, 0xad, 0x5a, 0x34, 0xdc, 0x2a, 0x87, 0xda, 0xbf, 0xd7, 0x0f, 0x9b, 0xf2, 0x55, 0x70, - 0xca, 0x4b, 0x5f, 0xad, 0xb9, 0x82, 0x0e, 0x59, 0x24, 0xdd, 0x54, 0x2d, 0x92, 0x7f, 0xce, 0x42, - 0xae, 0xee, 0x98, 0x5d, 0xf4, 0xe3, 0x41, 0x07, 0x73, 0x1a, 0xc0, 0x22, 0xbb, 0x3e, 0xee, 0x2c, - 0x8c, 0xcd, 0xcb, 0x42, 0x29, 0xe8, 0xf7, 0x85, 0x97, 0xaa, 0x83, 0x3e, 0xdb, 0xec, 0x46, 0xd8, - 0x2a, 0xdf, 0x17, 0xf3, 0xdd, 0x8f, 0x26, 0x94, 0x4c, 0xdf, 0x7f, 0x61, 0x98, 0xc5, 0x68, 0x04, - 0x27, 0x43, 0xb0, 0xb9, 0xf2, 0xf7, 0x54, 0x02, 0xcb, 0x97, 0xc3, 0x65, 0x3d, 0xca, 0x45, 0x74, - 0x6a, 0x53, 0xfe, 0x31, 0x78, 0x54, 0x48, 0xbd, 0x95, 0xb5, 0xda, 0x59, 0xc5, 0x57, 0xe4, 0xc5, - 0x52, 0xa3, 0x54, 0xdc, 0x42, 0x9f, 0x93, 0x20, 0xb7, 0x66, 0xee, 0xf5, 0xee, 0x10, 0x18, 0xf8, - 0x62, 0x68, 0x2d, 0xd4, 0x7b, 0xe5, 0x7d, 0x95, 0x85, 0xc4, 0xbe, 0x16, 0xbd, 0x1b, 0xf8, 0xc5, - 0x6c, 0x12, 0xb1, 0xaf, 0x1d, 0x74, 0x0b, 0xf0, 0xef, 0x87, 0x11, 0x7b, 0x84, 0x68, 0xb1, 0x7c, - 0x06, 0x4e, 0x07, 0x1f, 0x2a, 0x8b, 0x4a, 0xb5, 0x51, 0x59, 0xba, 0x3f, 0x10, 0x6e, 0x45, 0x15, - 0x12, 0xff, 0xa0, 0x6e, 0x2c, 0x7e, 0xa6, 0x71, 0x0a, 0x8e, 0x07, 0xdf, 0x96, 0x95, 0x86, 0xf7, - 0xe5, 0x01, 0xf4, 0x50, 0x1e, 0x66, 0x68, 0xb7, 0xbe, 0xd1, 0x6d, 0x6b, 0x0e, 0x46, 0xb7, 0x05, - 0xe8, 0xde, 0x00, 0x47, 0x2b, 0xeb, 0x4b, 0xf5, 0xba, 0x63, 0x5a, 0xda, 0x16, 0x2e, 0xb5, 0xdb, - 0x16, 0x93, 0x56, 0x6f, 0x32, 0x7a, 0x8f, 0xf0, 0x3a, 0x1f, 0x3f, 0x94, 0xd0, 0x32, 0x23, 0x50, - 0xff, 0x8a, 0xd0, 0xba, 0x9c, 0x00, 0xc1, 0x64, 0xe8, 0x3f, 0x30, 0xe2, 0x36, 0x17, 0x8d, 0xcb, - 0xe6, 0x99, 0xe7, 0x64, 0x61, 0xaa, 0xa1, 0xef, 0xe0, 0x67, 0x98, 0x06, 0xb6, 0xe5, 0x09, 0x90, - 0x96, 0xd7, 0x1a, 0xc5, 0x23, 0xee, 0x83, 0x6b, 0x54, 0x65, 0xc8, 0x83, 0xe2, 0x16, 0xe0, 0x3e, - 0x94, 0x1a, 0x45, 0xc9, 0x7d, 0x58, 0x53, 0x1a, 0xc5, 0x9c, 0xfb, 0x50, 0x55, 0x1a, 0xc5, 0xbc, - 0xfb, 0xb0, 0xbe, 0xda, 0x28, 0x16, 0xdc, 0x87, 0x4a, 0xbd, 0x51, 0x9c, 0x70, 0x1f, 0x16, 0xea, - 0x8d, 0xe2, 0xa4, 0xfb, 0x70, 0xb6, 0xde, 0x28, 0x4e, 0xb9, 0x0f, 0xe5, 0x46, 0xa3, 0x08, 0xee, - 0xc3, 0xbd, 0xf5, 0x46, 0x71, 0xda, 0x7d, 0x28, 0x95, 0x1b, 0xc5, 0x19, 0xf2, 0xa0, 0x34, 0x8a, - 0xb3, 0xee, 0x43, 0xbd, 0xde, 0x28, 0xce, 0x11, 0xca, 0xf5, 0x46, 0xf1, 0x28, 0x29, 0xab, 0xd2, - 0x28, 0x16, 0xdd, 0x87, 0x95, 0x7a, 0xa3, 0x78, 0x8c, 0x64, 0xae, 0x37, 0x8a, 0x32, 0x29, 0xb4, - 0xde, 0x28, 0x5e, 0x46, 0xf2, 0xd4, 0x1b, 0xc5, 0xe3, 0xa4, 0x88, 0x7a, 0xa3, 0x78, 0x82, 0xb0, - 0xa1, 0x34, 0x8a, 0x27, 0x49, 0x1e, 0xb5, 0x51, 0xbc, 0x9c, 0x7c, 0xaa, 0x36, 0x8a, 0xa7, 0x08, - 0x63, 0x4a, 0xa3, 0x78, 0x05, 0x79, 0x50, 0x1b, 0x45, 0x44, 0x3e, 0x95, 0x1a, 0xc5, 0x2b, 0xd1, - 0xa3, 0x60, 0x6a, 0x19, 0x3b, 0x14, 0x44, 0x54, 0x04, 0x69, 0x19, 0x3b, 0x61, 0x33, 0xfe, 0x6b, - 0x12, 0x5c, 0xce, 0xa6, 0x7e, 0x4b, 0x96, 0xb9, 0xb3, 0x8a, 0xb7, 0xb4, 0xd6, 0x25, 0xe5, 0x41, - 0xd7, 0x84, 0x42, 0x75, 0x6e, 0xe9, 0xaa, 0x1b, 0x74, 0x46, 0xe4, 0x39, 0xd6, 0xe2, 0xf4, 0x16, - 0xa3, 0xa4, 0x60, 0x31, 0x8a, 0x59, 0x64, 0xff, 0x14, 0xd6, 0x68, 0x6e, 0xfd, 0x38, 0xd3, 0xb3, - 0x7e, 0xec, 0x36, 0x93, 0x2e, 0xb6, 0x6c, 0xd3, 0xd0, 0x3a, 0x75, 0xb6, 0x5d, 0x4a, 0x57, 0xbd, - 0x7a, 0x93, 0xe5, 0xa7, 0x79, 0x2d, 0x83, 0x5a, 0x65, 0x4f, 0x89, 0x9b, 0xe1, 0xf6, 0x56, 0x33, - 0xa2, 0x91, 0x7c, 0xca, 0x6f, 0x24, 0x0d, 0xae, 0x91, 0xdc, 0x73, 0x00, 0xda, 0xc9, 0xda, 0x4b, - 0x65, 0xb8, 0xa9, 0x45, 0xe0, 0x4c, 0xe8, 0x2d, 0x57, 0x4b, 0xe8, 0x73, 0x59, 0x38, 0xa9, 0x18, - 0xfd, 0x2c, 0xfc, 0xb0, 0x2e, 0xbc, 0x35, 0x0c, 0xcd, 0x3a, 0x2f, 0xd2, 0x3b, 0xfa, 0x56, 0xbb, - 0x3f, 0xcd, 0x08, 0x89, 0x7e, 0xda, 0x97, 0x68, 0x9d, 0x93, 0xe8, 0xdd, 0xc3, 0x93, 0x4e, 0x26, - 0xd0, 0xea, 0x48, 0x3b, 0xa0, 0x1c, 0xfa, 0x66, 0x0e, 0x1e, 0x45, 0x3d, 0x1e, 0x18, 0x87, 0xb4, - 0x95, 0x95, 0x8c, 0xb6, 0x8a, 0x6d, 0x47, 0xb3, 0x1c, 0xee, 0x14, 0x6a, 0xcf, 0x54, 0x2a, 0x93, - 0xc2, 0x54, 0x2a, 0x3b, 0x70, 0x2a, 0x85, 0xde, 0x1d, 0x36, 0x1f, 0xce, 0xf1, 0x18, 0x97, 0xfa, - 0xf7, 0xff, 0x71, 0x35, 0x8c, 0x82, 0xda, 0xb7, 0x2b, 0x7e, 0x92, 0x83, 0x7a, 0xe9, 0xc0, 0x25, - 0x24, 0x43, 0xfc, 0xf7, 0x47, 0x6b, 0xe7, 0xe5, 0xc2, 0xdf, 0x78, 0xa3, 0xa4, 0xd8, 0x4e, 0xd5, - 0x40, 0xff, 0xcc, 0x04, 0x4c, 0x91, 0xb6, 0xb0, 0xaa, 0x1b, 0x17, 0xd0, 0xc3, 0x12, 0xcc, 0x54, - 0xf1, 0xc5, 0xf2, 0xb6, 0xd6, 0xe9, 0x60, 0x63, 0x0b, 0x87, 0xcd, 0xf6, 0x53, 0x30, 0xa1, 0x75, - 0xbb, 0xd5, 0x60, 0x9f, 0xc1, 0x7b, 0x65, 0xfd, 0xef, 0x37, 0xfa, 0x36, 0xf2, 0x4c, 0x4c, 0x23, - 0xf7, 0xcb, 0x9d, 0x0f, 0x97, 0x19, 0x31, 0x43, 0xbe, 0x06, 0xa6, 0x5b, 0x5e, 0x16, 0xdf, 0x5b, - 0x3d, 0x9c, 0x84, 0xfe, 0x36, 0x51, 0x37, 0x20, 0x54, 0x78, 0x32, 0xa5, 0xc0, 0x23, 0xb6, 0x43, - 0x4e, 0xc0, 0xb1, 0x46, 0xad, 0xd6, 0x5c, 0x2b, 0x55, 0xef, 0x0f, 0x4e, 0x89, 0x6e, 0xa2, 0x57, - 0xe6, 0x60, 0xae, 0x6e, 0x76, 0xf6, 0x70, 0x00, 0x53, 0x25, 0x80, 0xa9, 0x47, 0x4e, 0x99, 0x7d, - 0x72, 0x92, 0x4f, 0x42, 0x41, 0x33, 0xec, 0x8b, 0xd8, 0xb3, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x43, - 0xe1, 0x76, 0xac, 0xf2, 0x30, 0xde, 0x39, 0x40, 0x92, 0x3c, 0x57, 0x11, 0x40, 0x9e, 0x81, 0x19, - 0x9b, 0x6e, 0x16, 0x36, 0x42, 0x7b, 0xc2, 0x5c, 0x1a, 0x61, 0x91, 0xee, 0x56, 0x4b, 0x8c, 0x45, - 0xf2, 0x86, 0x1e, 0xf6, 0x9b, 0xff, 0x06, 0x07, 0x71, 0xe9, 0x20, 0x8c, 0x25, 0x03, 0xf9, 0xd5, - 0xa3, 0x9e, 0xe1, 0x9d, 0x82, 0xe3, 0xac, 0xd5, 0x36, 0xcb, 0x2b, 0xa5, 0xd5, 0x55, 0xa5, 0xba, - 0xac, 0x34, 0x2b, 0x8b, 0x74, 0xab, 0x22, 0x48, 0x29, 0x35, 0x1a, 0xca, 0xda, 0x7a, 0xa3, 0xde, - 0x54, 0x9e, 0x5e, 0x56, 0x94, 0x45, 0xe2, 0x88, 0x44, 0x4e, 0x12, 0x78, 0x2e, 0x63, 0xa5, 0x6a, - 0xfd, 0x9c, 0xa2, 0x16, 0xb7, 0xcf, 0x94, 0x60, 0x3a, 0xd4, 0xcf, 0xbb, 0xdc, 0x2d, 0xe2, 0x4d, - 0x6d, 0xb7, 0xc3, 0x6c, 0xb5, 0xe2, 0x11, 0x97, 0x3b, 0x22, 0x9b, 0x9a, 0xd1, 0xb9, 0x54, 0xcc, - 0xc8, 0x45, 0x98, 0x09, 0x77, 0xe9, 0xc5, 0x2c, 0x7a, 0xc7, 0x55, 0x30, 0x75, 0xce, 0xb4, 0x2e, - 0x10, 0xef, 0x31, 0xf4, 0x7e, 0x1a, 0x4d, 0xc2, 0x3b, 0x97, 0x17, 0x1a, 0xd8, 0x5f, 0x2d, 0xee, - 0x2d, 0xe0, 0x51, 0x9b, 0x1f, 0x78, 0xf6, 0xee, 0x1a, 0x98, 0xbe, 0xe8, 0xe5, 0x0e, 0x5a, 0x7a, - 0x28, 0x09, 0xfd, 0x57, 0xb1, 0xfd, 0xff, 0xc1, 0x45, 0xa6, 0xbf, 0x3f, 0xfd, 0xf6, 0x2c, 0x14, - 0x96, 0xb1, 0x53, 0xea, 0x74, 0xc2, 0x72, 0x7b, 0x99, 0xf0, 0x79, 0x0a, 0xae, 0x12, 0xa5, 0x4e, - 0x27, 0xba, 0x51, 0x85, 0x04, 0xe4, 0xf9, 0xfd, 0x72, 0x69, 0xe8, 0xf5, 0x42, 0x27, 0xa1, 0x06, - 0x14, 0x98, 0xbe, 0xc4, 0x3e, 0x22, 0xf9, 0x7b, 0xdc, 0x6f, 0x08, 0x59, 0x39, 0x8f, 0x0f, 0x22, - 0x89, 0x64, 0xe2, 0xf7, 0xca, 0xbd, 0x7c, 0xf2, 0x7d, 0x30, 0xb1, 0x6b, 0xe3, 0xb2, 0x66, 0x63, - 0xc2, 0x5b, 0x6f, 0x4d, 0x6b, 0xe7, 0x1f, 0xc0, 0x2d, 0x67, 0xbe, 0xb2, 0xe3, 0x1a, 0xd4, 0x1b, - 0x34, 0xa3, 0x1f, 0x9c, 0x83, 0xbd, 0xab, 0x1e, 0x05, 0x77, 0x52, 0x72, 0x51, 0x77, 0xb6, 0xcb, - 0xdb, 0x9a, 0xc3, 0xd6, 0xb6, 0xfd, 0x77, 0xf4, 0xc2, 0x21, 0xe0, 0x8c, 0xdd, 0x0b, 0x8e, 0x3c, - 0x96, 0x95, 0x18, 0xc4, 0x11, 0x6c, 0xe0, 0x0e, 0x03, 0xe2, 0x3f, 0x64, 0x21, 0x57, 0xeb, 0x62, - 0x43, 0xf8, 0x0c, 0x82, 0x2f, 0xdb, 0x6c, 0x8f, 0x6c, 0x1f, 0x16, 0xf7, 0x0e, 0xf3, 0x2b, 0xed, - 0x96, 0x1c, 0x21, 0xd9, 0x9b, 0x21, 0xa7, 0x1b, 0x9b, 0x26, 0x33, 0x4c, 0xaf, 0x8c, 0xd8, 0x04, - 0xaa, 0x18, 0x9b, 0xa6, 0x4a, 0x32, 0x8a, 0x3a, 0x86, 0xc5, 0x95, 0x9d, 0xbe, 0xb8, 0xbf, 0x35, - 0x09, 0x05, 0xaa, 0xce, 0xe8, 0xa5, 0x12, 0x48, 0xa5, 0x76, 0x3b, 0x42, 0xf0, 0xd9, 0x7d, 0x82, - 0x37, 0xc9, 0x6f, 0x3e, 0x26, 0xfe, 0x3b, 0x1f, 0x42, 0x42, 0xb0, 0x6f, 0x67, 0x4d, 0xaa, 0xd4, - 0x6e, 0x47, 0xfb, 0xa0, 0xfa, 0x05, 0x66, 0xf9, 0x02, 0xc3, 0x2d, 0x5c, 0x12, 0x6b, 0xe1, 0x89, - 0x07, 0x82, 0x48, 0xfe, 0xd2, 0x87, 0xe8, 0x9f, 0xb2, 0x30, 0xb1, 0xaa, 0xdb, 0x8e, 0x8b, 0x4d, - 0x49, 0x04, 0x9b, 0xab, 0x60, 0xca, 0x13, 0x8d, 0xdb, 0xe5, 0xb9, 0xfd, 0x79, 0x90, 0x80, 0x5e, - 0x17, 0x46, 0xe7, 0x5e, 0x1e, 0x9d, 0x27, 0xc4, 0xd7, 0x9e, 0x71, 0x11, 0xed, 0xdb, 0x1d, 0x14, - 0x9b, 0xed, 0x2d, 0xf6, 0x37, 0x7d, 0x81, 0xaf, 0x71, 0x02, 0xbf, 0x7d, 0x98, 0x22, 0xd3, 0x17, - 0xfa, 0xe7, 0xb3, 0x00, 0x6e, 0xd9, 0xec, 0x00, 0xcd, 0x63, 0xb8, 0x63, 0xb1, 0x31, 0xd2, 0x7d, - 0x65, 0x58, 0xba, 0x6b, 0xbc, 0x74, 0x9f, 0x34, 0xb8, 0xaa, 0x71, 0x07, 0x65, 0xe4, 0x22, 0x48, - 0xba, 0x2f, 0x5a, 0xf7, 0x11, 0xbd, 0xdd, 0x17, 0xea, 0x3a, 0x27, 0xd4, 0x3b, 0x87, 0x2c, 0x29, - 0x7d, 0xb9, 0xfe, 0x65, 0x16, 0x26, 0xea, 0xd8, 0x71, 0xbb, 0x49, 0x74, 0x56, 0xa4, 0x87, 0x0f, - 0xb5, 0xed, 0xac, 0x60, 0xdb, 0xfe, 0x5e, 0x46, 0x34, 0xbc, 0x46, 0x20, 0x19, 0xc6, 0x53, 0xc4, - 0xe2, 0xc1, 0x1b, 0x84, 0xc2, 0x6b, 0x0c, 0xa2, 0x96, 0xbe, 0x74, 0xdf, 0x9a, 0xf5, 0x37, 0xe6, - 0x1f, 0xcb, 0x4d, 0xec, 0xc2, 0x66, 0x71, 0x66, 0xbf, 0x59, 0xfc, 0x9d, 0x4c, 0x72, 0x33, 0x24, - 0x6e, 0x57, 0x3a, 0xb1, 0xb1, 0x31, 0x82, 0x0d, 0xe3, 0x61, 0xe4, 0xf5, 0x2c, 0x09, 0x0a, 0x6c, - 0x65, 0xf9, 0xee, 0xf8, 0x95, 0xe5, 0xc1, 0x53, 0x8b, 0xf7, 0x0d, 0x61, 0xca, 0xc5, 0x2d, 0xf7, - 0xfa, 0x6c, 0x64, 0x43, 0x6c, 0xdc, 0x04, 0x79, 0x12, 0xff, 0x8f, 0x8d, 0x73, 0xc1, 0x5e, 0xbf, - 0x47, 0x42, 0x71, 0xbf, 0xaa, 0x34, 0x53, 0x62, 0x14, 0x46, 0xb0, 0x42, 0x3c, 0x0c, 0x0a, 0xff, - 0xfc, 0x99, 0x8c, 0x6f, 0x84, 0xbc, 0x2f, 0xc7, 0xcc, 0xbf, 0x4f, 0xf0, 0x91, 0x08, 0x5a, 0xa6, - 0xe1, 0xe0, 0x07, 0x43, 0x6b, 0xf2, 0x7e, 0x42, 0xac, 0x65, 0x70, 0x0a, 0x26, 0x1c, 0x2b, 0xbc, - 0x4e, 0xef, 0xbd, 0x86, 0x7b, 0x9c, 0x3c, 0xdf, 0xe3, 0x54, 0xe1, 0x8c, 0x6e, 0xb4, 0x3a, 0xbb, - 0x6d, 0xac, 0xe2, 0x8e, 0xe6, 0xd6, 0xca, 0x2e, 0xd9, 0x8b, 0xb8, 0x8b, 0x8d, 0x36, 0x36, 0x1c, - 0xca, 0xa7, 0xe7, 0x93, 0x2b, 0x90, 0x13, 0x7d, 0x3d, 0xac, 0x18, 0x77, 0xf1, 0x8a, 0xf1, 0x98, - 0x7e, 0xf3, 0x8a, 0x18, 0x23, 0xf4, 0x76, 0x00, 0x5a, 0xb7, 0xb3, 0x3a, 0xbe, 0xc8, 0x3a, 0xc4, - 0x2b, 0x7a, 0x4c, 0xd1, 0x9a, 0x9f, 0x41, 0x0d, 0x65, 0x46, 0x5f, 0xf6, 0x95, 0xe1, 0x1e, 0x4e, - 0x19, 0x6e, 0x12, 0x64, 0x21, 0x99, 0x1e, 0x74, 0x87, 0x58, 0xeb, 0x98, 0x85, 0xa9, 0x60, 0x85, - 0x52, 0x92, 0xaf, 0x80, 0x13, 0x9e, 0xcf, 0x43, 0x55, 0x51, 0x16, 0xeb, 0xcd, 0x8d, 0xf5, 0x65, - 0xb5, 0xb4, 0xa8, 0x14, 0x41, 0x96, 0x61, 0xae, 0xb6, 0x70, 0xaf, 0x52, 0x6e, 0xf8, 0xae, 0x0a, - 0x39, 0xf4, 0xe7, 0x59, 0xc8, 0x13, 0x87, 0x72, 0xf4, 0xd3, 0x23, 0xd2, 0x1c, 0x9b, 0xdb, 0xe1, - 0xf1, 0x27, 0x52, 0xe2, 0x11, 0x02, 0x99, 0x30, 0x09, 0x57, 0x07, 0x8a, 0x10, 0x18, 0x43, 0x28, - 0xfd, 0xe6, 0xe9, 0x36, 0xc9, 0xfa, 0xb6, 0x79, 0xf1, 0x47, 0xb9, 0x49, 0xba, 0xf5, 0x3f, 0xe4, - 0x26, 0xd9, 0x87, 0x85, 0xb1, 0x37, 0xc9, 0x3e, 0xed, 0x2e, 0xa6, 0x99, 0xa2, 0x67, 0xe6, 0xfd, - 0x05, 0x99, 0xe7, 0x64, 0x0f, 0xb4, 0x20, 0x53, 0x82, 0x59, 0xdd, 0x70, 0xb0, 0x65, 0x68, 0x9d, - 0xa5, 0x8e, 0xb6, 0xe5, 0x1d, 0x5b, 0xee, 0x9d, 0x85, 0x57, 0x42, 0x79, 0x54, 0xfe, 0x0f, 0xf9, - 0x34, 0x80, 0x83, 0x77, 0xba, 0x1d, 0xcd, 0x09, 0x54, 0x2f, 0x94, 0x12, 0xd6, 0xbe, 0x1c, 0xaf, - 0x7d, 0xb7, 0xc0, 0x65, 0x14, 0xb4, 0xc6, 0xa5, 0x2e, 0xde, 0x30, 0xf4, 0x9f, 0xd9, 0x25, 0x81, - 0x6b, 0xa8, 0x8e, 0xf6, 0xfb, 0xc4, 0x2d, 0x4b, 0x14, 0x7a, 0x96, 0x25, 0xfe, 0x41, 0xf8, 0x68, - 0xa6, 0xd7, 0xea, 0x07, 0x1c, 0xcd, 0xf4, 0x5b, 0x9a, 0xd4, 0xd3, 0xd2, 0x7c, 0x63, 0x21, 0x27, - 0x60, 0x2c, 0x84, 0x51, 0xc9, 0x0b, 0x1a, 0xda, 0xaf, 0x15, 0x3a, 0xfb, 0x19, 0x57, 0x8d, 0x31, - 0x4c, 0xe4, 0x24, 0x98, 0xa3, 0x45, 0x2f, 0x98, 0xe6, 0x85, 0x1d, 0xcd, 0xba, 0x80, 0xac, 0x03, - 0xa9, 0x62, 0xec, 0x9a, 0x48, 0xe4, 0x42, 0xdf, 0xa7, 0xc3, 0xa8, 0x2f, 0xf3, 0xa8, 0x3f, 0x3e, - 0x5a, 0x5c, 0x1e, 0xcf, 0xe3, 0x59, 0x14, 0x79, 0xb3, 0x8f, 0xe7, 0xbd, 0x1c, 0x9e, 0x4f, 0x4c, - 0xcc, 0x60, 0xfa, 0xb8, 0xfe, 0xa1, 0x8f, 0xab, 0xd7, 0xd1, 0x87, 0xe7, 0x93, 0xa3, 0xc4, 0x15, - 0x7d, 0x65, 0x38, 0xec, 0x3c, 0xbe, 0x86, 0xc0, 0xae, 0x08, 0xd2, 0x05, 0x7f, 0x0b, 0xcb, 0x7d, - 0x0c, 0x57, 0x28, 0x97, 0x1e, 0x9a, 0x11, 0x2c, 0x8f, 0x05, 0xcd, 0xe3, 0x3c, 0x0b, 0xb5, 0x6e, - 0xaa, 0x98, 0x7e, 0x49, 0x78, 0x9d, 0xa6, 0xaf, 0x80, 0x28, 0x77, 0xe3, 0x69, 0x95, 0x62, 0x8b, - 0x3c, 0xe2, 0x6c, 0xa6, 0x8f, 0xe6, 0x0b, 0xf2, 0x30, 0xe5, 0x1d, 0x9e, 0x25, 0x11, 0xb5, 0x7d, - 0x0c, 0x4f, 0x42, 0xc1, 0x36, 0x77, 0xad, 0x16, 0x66, 0x2b, 0x67, 0xec, 0x6d, 0x88, 0x55, 0x9e, - 0x81, 0xe3, 0xf9, 0x3e, 0x93, 0x21, 0x97, 0xd8, 0x64, 0x88, 0x36, 0x48, 0xe3, 0x06, 0xf8, 0x17, - 0x0a, 0x87, 0x41, 0xe4, 0x30, 0xab, 0x63, 0xe7, 0x91, 0x38, 0xc6, 0xff, 0x9e, 0xd0, 0x1a, 0xc2, - 0x80, 0x9a, 0x24, 0x53, 0xb9, 0xda, 0x10, 0x86, 0xea, 0x95, 0x70, 0xb9, 0x97, 0x83, 0x59, 0xa8, - 0xc4, 0x22, 0xdd, 0x50, 0x57, 0x8b, 0x12, 0x7a, 0x56, 0x0e, 0x8a, 0x94, 0xb5, 0x9a, 0x6f, 0xac, - 0xa1, 0x97, 0x65, 0x0e, 0xdb, 0x22, 0x8d, 0x9e, 0x62, 0x7e, 0x36, 0x2b, 0x1a, 0x6a, 0x89, 0x13, - 0x7c, 0x50, 0xbb, 0x08, 0x4d, 0x1a, 0xa2, 0x99, 0xc5, 0x28, 0x1f, 0xfa, 0x8d, 0x8c, 0x48, 0xe4, - 0x26, 0x31, 0x16, 0xd3, 0xef, 0x95, 0xbe, 0x90, 0xf3, 0x62, 0x20, 0x2c, 0x59, 0xe6, 0xce, 0x86, - 0xd5, 0x41, 0xff, 0xb7, 0x50, 0x60, 0xbc, 0x08, 0xf3, 0x3f, 0x1b, 0x6d, 0xfe, 0x17, 0x41, 0xda, - 0xb5, 0x3a, 0xde, 0xf0, 0xbd, 0x6b, 0x75, 0x86, 0x18, 0xbe, 0xe5, 0xeb, 0x61, 0x4e, 0x6b, 0xb7, - 0xd7, 0xb5, 0x2d, 0x5c, 0x76, 0xe7, 0xd5, 0x86, 0xc3, 0xce, 0x47, 0xf7, 0xa4, 0xc6, 0x76, 0x45, - 0x5f, 0x17, 0xde, 0x89, 0xe3, 0x40, 0x62, 0xf2, 0x19, 0xcb, 0xf0, 0xe6, 0x0e, 0x09, 0xad, 0x6d, - 0x2d, 0x88, 0xd6, 0xc0, 0xde, 0x04, 0x77, 0xe8, 0x04, 0xf8, 0x4e, 0x5f, 0xb3, 0x7e, 0x27, 0x0b, - 0x13, 0xae, 0xbc, 0x4b, 0xed, 0x36, 0x7a, 0x34, 0x17, 0xd4, 0x24, 0x72, 0x8f, 0xf4, 0x79, 0xc2, - 0x9b, 0xd3, 0x5e, 0x0d, 0x29, 0xfd, 0x08, 0x4c, 0x02, 0x21, 0x66, 0x39, 0x21, 0x8a, 0xed, 0x41, - 0xc7, 0x16, 0x91, 0xbe, 0xf8, 0x3e, 0x95, 0x85, 0x59, 0x6f, 0x1e, 0xb1, 0x84, 0x9d, 0xd6, 0x36, - 0xba, 0x5d, 0x74, 0xa1, 0x89, 0xb5, 0xb4, 0xac, 0xdf, 0xd2, 0xd0, 0x0f, 0x32, 0x09, 0x55, 0x9e, - 0x2b, 0x39, 0x62, 0x95, 0x2e, 0x91, 0x2e, 0xc6, 0x11, 0x4c, 0x5f, 0x98, 0x5f, 0xce, 0x02, 0x34, - 0x4c, 0x7f, 0xae, 0x7b, 0x00, 0x49, 0xbe, 0x44, 0x38, 0x4a, 0x3d, 0xab, 0x78, 0x50, 0x6c, 0xf2, - 0x9e, 0x43, 0x70, 0x8b, 0x6d, 0x50, 0x49, 0x63, 0x69, 0xeb, 0x53, 0x8b, 0xbb, 0xdd, 0x8e, 0xde, - 0xd2, 0x9c, 0xde, 0x7d, 0xe1, 0x68, 0xf1, 0x92, 0xeb, 0x66, 0x12, 0x19, 0x85, 0x7e, 0x19, 0x11, - 0xb2, 0xa4, 0x87, 0x6d, 0xb3, 0xde, 0x61, 0x5b, 0xc1, 0xbd, 0x9e, 0x01, 0xc4, 0xc7, 0xa0, 0x9e, - 0x12, 0x1c, 0xad, 0x75, 0xb1, 0xb1, 0x60, 0x61, 0xad, 0xdd, 0xb2, 0x76, 0x77, 0xce, 0xdb, 0x61, - 0xa7, 0x86, 0x78, 0x1d, 0x0d, 0x2d, 0x1d, 0x67, 0xb9, 0xa5, 0x63, 0xf4, 0x6c, 0x49, 0xf4, 0xe8, - 0x77, 0x68, 0x83, 0x23, 0xc4, 0xc3, 0x10, 0x43, 0x5d, 0xa2, 0xad, 0xb8, 0x9e, 0x55, 0xe2, 0x5c, - 0x92, 0x55, 0xe2, 0xb7, 0x08, 0x1d, 0x24, 0x17, 0xaa, 0xd7, 0x58, 0x76, 0x54, 0xe7, 0xea, 0xd8, - 0x89, 0x80, 0xf7, 0x3a, 0x98, 0x3d, 0x1f, 0x7c, 0xf1, 0x21, 0xe6, 0x13, 0xfb, 0xf8, 0x39, 0xbc, - 0x35, 0xe9, 0x0a, 0x0c, 0xcf, 0x42, 0x04, 0xba, 0x3e, 0x82, 0x59, 0x91, 0xcd, 0xd4, 0x44, 0xcb, - 0x29, 0xb1, 0xe5, 0xa7, 0x8f, 0xc2, 0xc7, 0xb2, 0x30, 0x4d, 0x2e, 0xd1, 0x59, 0xb8, 0x44, 0xbc, - 0xf3, 0x05, 0x8d, 0x92, 0x17, 0x84, 0xc5, 0x2c, 0x43, 0xae, 0xa3, 0x1b, 0x17, 0xbc, 0x5d, 0x70, - 0xf7, 0x39, 0xb8, 0x92, 0x21, 0xdb, 0xe7, 0x4a, 0x06, 0x7f, 0x9f, 0xc2, 0x2f, 0xf7, 0x40, 0x77, - 0x84, 0x0d, 0x24, 0x97, 0xbe, 0x18, 0xff, 0x2e, 0x07, 0x85, 0x3a, 0xd6, 0xac, 0xd6, 0x36, 0x7a, - 0x5f, 0xb6, 0xef, 0x54, 0x61, 0x92, 0x9f, 0x2a, 0x2c, 0xc1, 0xc4, 0xa6, 0xde, 0x71, 0xb0, 0x45, - 0x3d, 0x83, 0xc2, 0x5d, 0x3b, 0x6d, 0xe2, 0x0b, 0x1d, 0xb3, 0x75, 0x61, 0x9e, 0x99, 0xee, 0xf3, - 0x5e, 0x30, 0xa9, 0xf9, 0x25, 0xf2, 0x93, 0xea, 0xfd, 0xec, 0x1a, 0x84, 0xb6, 0x69, 0x39, 0x51, - 0xd1, 0x59, 0x23, 0xa8, 0xd4, 0x4d, 0xcb, 0x51, 0xe9, 0x8f, 0x2e, 0xcc, 0x9b, 0xbb, 0x9d, 0x4e, - 0x03, 0x3f, 0xe8, 0x78, 0xd3, 0x36, 0xef, 0xdd, 0x35, 0x16, 0xcd, 0xcd, 0x4d, 0x1b, 0xd3, 0x45, - 0x83, 0xbc, 0xca, 0xde, 0xe4, 0xe3, 0x90, 0xef, 0xe8, 0x3b, 0x3a, 0x9d, 0x68, 0xe4, 0x55, 0xfa, - 0x22, 0xdf, 0x08, 0xc5, 0x60, 0x8e, 0x43, 0x19, 0x3d, 0x55, 0x20, 0x4d, 0x73, 0x5f, 0xba, 0xab, - 0x33, 0x17, 0xf0, 0x25, 0xfb, 0xd4, 0x04, 0xf9, 0x4e, 0x9e, 0x79, 0x37, 0x4c, 0x91, 0xfd, 0x0e, - 0x2a, 0xf1, 0xe8, 0x19, 0xac, 0x85, 0x5b, 0xa6, 0xd5, 0xf6, 0x64, 0x13, 0x3d, 0xc1, 0x60, 0xf9, - 0x92, 0xed, 0x52, 0xf4, 0x2d, 0x3c, 0x7d, 0x4d, 0x7b, 0x77, 0xc1, 0xed, 0x36, 0xdd, 0xa2, 0xcf, - 0xe9, 0xce, 0xf6, 0x1a, 0x76, 0x34, 0xf4, 0x77, 0x52, 0x5f, 0x8d, 0x9b, 0xfe, 0xdf, 0x1a, 0x37, - 0x40, 0xe3, 0x68, 0x98, 0x00, 0x67, 0xd7, 0x32, 0x5c, 0x39, 0xb2, 0xc0, 0x5c, 0xa1, 0x14, 0xf9, - 0x4e, 0xb8, 0x22, 0x78, 0xf3, 0x96, 0x4a, 0x17, 0xd9, 0xb4, 0x75, 0x8a, 0x64, 0x8f, 0xce, 0x20, - 0xaf, 0xc3, 0xb5, 0xf4, 0xe3, 0x4a, 0x63, 0x6d, 0x75, 0x45, 0xdf, 0xda, 0xee, 0xe8, 0x5b, 0xdb, - 0x8e, 0x5d, 0x31, 0x6c, 0x07, 0x6b, 0xed, 0xda, 0xa6, 0x4a, 0xe3, 0x2a, 0x03, 0xa1, 0x23, 0x92, - 0x95, 0xf7, 0x1c, 0x12, 0x1b, 0xdd, 0xc2, 0x9a, 0x12, 0xd1, 0x52, 0x9e, 0xe8, 0xb6, 0x14, 0x7b, - 0xb7, 0xe3, 0x63, 0x7a, 0x55, 0x0f, 0xa6, 0x81, 0xaa, 0xef, 0x76, 0x48, 0x73, 0x21, 0x99, 0x93, - 0x8e, 0x73, 0x31, 0x9c, 0xa4, 0xdf, 0x6c, 0xfe, 0xbf, 0x02, 0xe4, 0x97, 0x2d, 0xad, 0xbb, 0x8d, - 0x9e, 0x15, 0xea, 0x9f, 0x47, 0xd5, 0x26, 0x7c, 0xed, 0xcc, 0x0e, 0xd2, 0x4e, 0x69, 0x80, 0x76, - 0xe6, 0x42, 0xda, 0x19, 0xbd, 0xa8, 0x7c, 0x06, 0x66, 0x5a, 0x66, 0xa7, 0x83, 0x5b, 0xae, 0x3c, - 0x2a, 0x6d, 0xb2, 0x9a, 0x33, 0xa5, 0x72, 0x69, 0x24, 0xe0, 0x1e, 0x76, 0xea, 0x74, 0x0d, 0x9d, - 0x2a, 0x7d, 0x90, 0x80, 0x5e, 0x96, 0x85, 0x9c, 0xd2, 0xde, 0xc2, 0xdc, 0x3a, 0x7b, 0x26, 0xb4, - 0xce, 0x7e, 0x12, 0x0a, 0x8e, 0x66, 0x6d, 0x61, 0xc7, 0x5b, 0x27, 0xa0, 0x6f, 0x7e, 0x1c, 0x40, - 0x29, 0x14, 0x07, 0xf0, 0x49, 0x90, 0x73, 0x65, 0xc6, 0x22, 0xec, 0x5c, 0xdb, 0x0f, 0x7e, 0x22, - 0xfb, 0x79, 0xb7, 0xc4, 0x79, 0xb7, 0xd6, 0x2a, 0xf9, 0xa1, 0x17, 0xeb, 0xfc, 0x3e, 0xac, 0xc9, - 0x15, 0x31, 0x2d, 0xd3, 0xa8, 0xec, 0x68, 0x5b, 0x98, 0x55, 0x33, 0x48, 0xf0, 0xbe, 0x2a, 0x3b, - 0xe6, 0x03, 0x3a, 0x0b, 0xc9, 0x17, 0x24, 0xb8, 0x55, 0xd8, 0xd6, 0xdb, 0x6d, 0x6c, 0xb0, 0x96, - 0xcd, 0xde, 0xce, 0x9c, 0x86, 0x9c, 0xcb, 0x83, 0xab, 0x3f, 0xae, 0xb1, 0x50, 0x3c, 0x22, 0xcf, - 0xb8, 0xcd, 0x8a, 0x36, 0xde, 0x62, 0x86, 0x5f, 0x53, 0x15, 0x71, 0xdb, 0xa1, 0x95, 0xeb, 0xdf, - 0xb8, 0x1e, 0x07, 0x79, 0xc3, 0x6c, 0xe3, 0x81, 0x83, 0x10, 0xcd, 0x25, 0x3f, 0x01, 0xf2, 0xb8, - 0xed, 0xf6, 0x0a, 0x12, 0xc9, 0x7e, 0x3a, 0x5e, 0x96, 0x2a, 0xcd, 0x9c, 0xcc, 0x37, 0xa8, 0x1f, - 0xb7, 0xe9, 0x37, 0xc0, 0x5f, 0x9c, 0x80, 0xa3, 0xb4, 0x0f, 0xa8, 0xef, 0x9e, 0x77, 0x49, 0x9d, - 0xc7, 0xe8, 0x0d, 0xfd, 0x07, 0xae, 0xa3, 0xbc, 0xb2, 0x1f, 0x87, 0xbc, 0xbd, 0x7b, 0xde, 0x37, - 0x42, 0xe9, 0x4b, 0xb8, 0xe9, 0x66, 0x47, 0x32, 0x9c, 0x49, 0xc3, 0x0e, 0x67, 0xdc, 0xd0, 0x24, - 0x79, 0x8d, 0x3f, 0x18, 0xc8, 0x0a, 0x24, 0xd9, 0x1b, 0xc8, 0xfa, 0x0d, 0x43, 0xa7, 0x60, 0x42, - 0xdb, 0x74, 0xb0, 0x15, 0x98, 0x89, 0xec, 0xd5, 0x1d, 0x2a, 0xcf, 0xe3, 0x4d, 0xd3, 0x72, 0xc5, - 0x32, 0x45, 0x87, 0x4a, 0xef, 0x3d, 0xd4, 0x72, 0x81, 0xdb, 0x21, 0xbb, 0x09, 0x8e, 0x19, 0xe6, - 0x22, 0xee, 0x32, 0x39, 0x53, 0x14, 0x67, 0x49, 0x0b, 0xd8, 0xff, 0x61, 0x5f, 0x57, 0x32, 0xb7, - 0xbf, 0x2b, 0x41, 0x9f, 0x49, 0x3a, 0x67, 0xee, 0x01, 0x7a, 0x64, 0x16, 0x9a, 0xfc, 0x14, 0x98, - 0x69, 0x33, 0x17, 0xad, 0x96, 0xee, 0xb7, 0x92, 0xc8, 0xff, 0xb8, 0xcc, 0x81, 0x22, 0xe5, 0xc2, - 0x8a, 0xb4, 0x0c, 0x93, 0xe4, 0x40, 0x8e, 0xab, 0x49, 0xf9, 0x9e, 0x78, 0x85, 0x64, 0x5a, 0xe7, - 0x57, 0x2a, 0x24, 0xb6, 0xf9, 0x32, 0xfb, 0x45, 0xf5, 0x7f, 0x4e, 0x36, 0xfb, 0x8e, 0x97, 0x50, - 0xfa, 0xcd, 0xf1, 0x37, 0x0b, 0x70, 0x45, 0xd9, 0x32, 0x6d, 0x9b, 0x44, 0xa1, 0xe8, 0x6d, 0x98, - 0x6f, 0xca, 0x72, 0x11, 0x81, 0x1f, 0xd1, 0xcd, 0xaf, 0x5f, 0x83, 0x1a, 0x5f, 0xd3, 0xf8, 0xba, - 0xf0, 0x51, 0x66, 0x7f, 0xff, 0x21, 0x42, 0xe8, 0x3f, 0x1a, 0x8d, 0xe4, 0xdd, 0x19, 0x91, 0xd3, - 0xd5, 0x09, 0x65, 0x95, 0x7e, 0x73, 0xf9, 0x52, 0x16, 0xae, 0xec, 0xe5, 0x66, 0xc3, 0xb0, 0xfd, - 0x06, 0x73, 0xf5, 0x80, 0xf6, 0xc2, 0x9f, 0xc6, 0x8d, 0xbd, 0x01, 0x25, 0xa2, 0xee, 0xa1, 0xd2, - 0x22, 0x16, 0x4b, 0xde, 0x9b, 0x11, 0xb9, 0x01, 0x25, 0x31, 0xf9, 0xf4, 0x85, 0xfb, 0xd9, 0x1c, - 0x1c, 0x5d, 0xb6, 0xcc, 0xdd, 0xae, 0x1d, 0xf4, 0x40, 0x7f, 0xdd, 0x7f, 0xc3, 0xb5, 0x20, 0x62, - 0x1a, 0x5c, 0x03, 0xd3, 0x16, 0xb3, 0xe6, 0x82, 0xed, 0xd7, 0x70, 0x52, 0xb8, 0xf7, 0x92, 0x0e, - 0xd2, 0x7b, 0x05, 0xfd, 0x4c, 0x8e, 0xeb, 0x67, 0x7a, 0x7b, 0x8e, 0x7c, 0x9f, 0x9e, 0xe3, 0xaf, - 0xb2, 0x09, 0x07, 0xd5, 0x1e, 0x11, 0x45, 0xf4, 0x17, 0x65, 0x28, 0x6c, 0x91, 0x8c, 0xac, 0xbb, - 0x78, 0xac, 0x58, 0xcd, 0x08, 0x71, 0x95, 0xfd, 0x1a, 0xc8, 0x55, 0x0a, 0xeb, 0x70, 0xa2, 0x01, - 0x2e, 0x9e, 0xdb, 0xf4, 0x95, 0xea, 0xe1, 0x1c, 0xcc, 0xf8, 0xa5, 0x57, 0xda, 0x36, 0x7a, 0x41, - 0x7f, 0x8d, 0x9a, 0x15, 0xd1, 0xa8, 0x7d, 0xeb, 0xcc, 0xfe, 0xa8, 0x23, 0x85, 0x46, 0x9d, 0xbe, - 0xa3, 0xcb, 0x4c, 0xc4, 0xe8, 0x82, 0x9e, 0x29, 0x89, 0xc6, 0xd4, 0xe7, 0xbb, 0x56, 0x52, 0x9b, - 0x47, 0xf2, 0x60, 0x21, 0x18, 0xd9, 0x7f, 0x70, 0xad, 0xd2, 0x57, 0x92, 0x0f, 0x66, 0xe1, 0xd8, - 0xfe, 0xce, 0xfc, 0xc7, 0x78, 0x2f, 0x34, 0xb7, 0x4e, 0xb6, 0xef, 0x85, 0x46, 0xde, 0xf8, 0x4d, - 0xba, 0xd8, 0xa3, 0xb1, 0x9c, 0xbd, 0x37, 0xb8, 0x13, 0x17, 0x3b, 0xfc, 0x2a, 0x48, 0x34, 0x7d, - 0x01, 0xfe, 0xb2, 0x04, 0x53, 0x75, 0xec, 0xac, 0x6a, 0x97, 0xcc, 0x5d, 0x07, 0x69, 0xa2, 0xdb, - 0x73, 0x4f, 0x86, 0x42, 0x87, 0xfc, 0xc2, 0x2e, 0x88, 0xbc, 0xa6, 0xef, 0xfe, 0x16, 0xf1, 0xfd, - 0xa1, 0xa4, 0x55, 0x96, 0x9f, 0x3f, 0x93, 0x2c, 0xb2, 0x3b, 0xea, 0x73, 0x37, 0x92, 0xad, 0x9d, - 0x44, 0x7b, 0xa7, 0x51, 0x45, 0xa7, 0x0f, 0xcb, 0xb3, 0x25, 0x98, 0xad, 0x63, 0xa7, 0x62, 0x2f, - 0x69, 0x7b, 0xa6, 0xa5, 0x3b, 0x38, 0x7c, 0x57, 0x51, 0x3c, 0x34, 0xa7, 0x01, 0x74, 0xff, 0x37, - 0x16, 0x29, 0x21, 0x94, 0x82, 0x7e, 0x23, 0xa9, 0xa3, 0x10, 0xc7, 0xc7, 0x48, 0x40, 0x48, 0xe4, - 0x63, 0x11, 0x57, 0x7c, 0xfa, 0x40, 0x7c, 0x31, 0xcb, 0x80, 0x28, 0x59, 0xad, 0x6d, 0x7d, 0x0f, - 0xb7, 0x13, 0x02, 0xe1, 0xfd, 0x16, 0x00, 0xe1, 0x13, 0x4a, 0xec, 0xbe, 0xc2, 0xf1, 0x31, 0x0a, - 0xf7, 0x95, 0x38, 0x82, 0x63, 0x09, 0x76, 0xe0, 0x76, 0x3d, 0x6c, 0x3d, 0xf3, 0x6e, 0x51, 0xb1, - 0x06, 0x26, 0x5b, 0x36, 0x6c, 0xb2, 0x0d, 0xd5, 0xb1, 0xd0, 0xb2, 0x07, 0xe9, 0x74, 0x2e, 0x8d, - 0x8e, 0xa5, 0x6f, 0xd1, 0xe9, 0x0b, 0xfd, 0xbd, 0x12, 0x9c, 0xf0, 0x4f, 0x01, 0xd7, 0xb1, 0xb3, - 0xa8, 0xd9, 0xdb, 0xe7, 0x4d, 0xcd, 0x6a, 0x87, 0x2f, 0x0e, 0x1d, 0xfa, 0xc4, 0x1f, 0xfa, 0x42, - 0x18, 0x84, 0x2a, 0x0f, 0x42, 0x5f, 0x57, 0xd1, 0xbe, 0xbc, 0x8c, 0xa2, 0x93, 0x89, 0xf5, 0x66, - 0xfd, 0x2d, 0x1f, 0xac, 0xa7, 0x71, 0x60, 0xdd, 0x35, 0x2c, 0x8b, 0xe9, 0x03, 0xf7, 0x6b, 0x74, - 0x44, 0x08, 0x79, 0x35, 0xdf, 0x2f, 0x0a, 0x58, 0x84, 0x57, 0xab, 0x14, 0xe9, 0xd5, 0x3a, 0xd4, - 0x18, 0x31, 0xd0, 0x23, 0x39, 0xdd, 0x31, 0xe2, 0x10, 0xbd, 0x8d, 0xdf, 0x29, 0x41, 0x91, 0x84, - 0x81, 0x08, 0x79, 0x7c, 0xa3, 0x07, 0x44, 0xd1, 0xd9, 0xe7, 0x5d, 0x3e, 0x91, 0xd4, 0xbb, 0x1c, - 0xbd, 0x23, 0xa9, 0x0f, 0x79, 0x2f, 0xb7, 0x23, 0x41, 0x2c, 0x91, 0x8b, 0xf8, 0x00, 0x0e, 0xd2, - 0x07, 0xed, 0xbf, 0x48, 0x00, 0x6e, 0x83, 0x66, 0x67, 0x1f, 0x9e, 0x2e, 0x0a, 0xd7, 0xcd, 0x61, - 0xbf, 0x7a, 0x17, 0xa8, 0x13, 0x3d, 0x40, 0x51, 0x8a, 0xc1, 0xa9, 0x8a, 0x37, 0x24, 0xf5, 0xad, - 0x0c, 0xb8, 0x1a, 0x09, 0x2c, 0x89, 0xbc, 0x2d, 0x23, 0xcb, 0x4e, 0x1f, 0x90, 0xff, 0x96, 0x85, - 0x7c, 0xc3, 0xac, 0x63, 0xe7, 0xe0, 0xa6, 0x40, 0xe2, 0x63, 0xfb, 0xa4, 0xdc, 0x51, 0x1c, 0xdb, - 0xef, 0x47, 0x28, 0x7d, 0xd1, 0xbd, 0x27, 0x0b, 0x33, 0x0d, 0xb3, 0xec, 0x2f, 0x4e, 0x89, 0xfb, - 0xaa, 0x8a, 0xdf, 0x0b, 0xe8, 0x57, 0x30, 0x28, 0xe6, 0x40, 0xf7, 0x02, 0x0e, 0xa6, 0x97, 0xbe, - 0xdc, 0x6e, 0x87, 0xa3, 0x1b, 0x46, 0xdb, 0x54, 0x71, 0xdb, 0x64, 0x2b, 0xdd, 0xb2, 0x0c, 0xb9, - 0x5d, 0xa3, 0x6d, 0x12, 0x96, 0xf3, 0x2a, 0x79, 0x76, 0xd3, 0x2c, 0xdc, 0x36, 0x99, 0x6f, 0x00, - 0x79, 0x46, 0x5f, 0x97, 0x20, 0xe7, 0xfe, 0x2b, 0x2e, 0xea, 0x77, 0x4a, 0x09, 0x03, 0x11, 0xb8, - 0xe4, 0x47, 0x62, 0x09, 0xdd, 0x1d, 0x5a, 0xfb, 0xa7, 0x1e, 0xac, 0xd7, 0x46, 0x95, 0x17, 0x12, - 0x45, 0xb0, 0xe6, 0x2f, 0x9f, 0x82, 0x89, 0xf3, 0x1d, 0xb3, 0x75, 0x21, 0x38, 0x2f, 0xcf, 0x5e, - 0xe5, 0x1b, 0x21, 0x6f, 0x69, 0xc6, 0x16, 0x66, 0x7b, 0x0a, 0xc7, 0x7b, 0xfa, 0x42, 0xe2, 0xf5, - 0xa2, 0xd2, 0x2c, 0xe8, 0x1d, 0x49, 0x42, 0x20, 0xf4, 0xa9, 0x7c, 0x32, 0x7d, 0x58, 0x1c, 0xe2, - 0x64, 0x59, 0x11, 0x66, 0xca, 0x25, 0x7a, 0x03, 0xe7, 0x5a, 0xed, 0xac, 0x52, 0x94, 0x08, 0xcc, - 0xae, 0x4c, 0x52, 0x84, 0xd9, 0x25, 0xff, 0x23, 0x0b, 0x73, 0x9f, 0xca, 0x1f, 0x06, 0xcc, 0x9f, - 0xca, 0xc2, 0xec, 0xaa, 0x6e, 0x3b, 0x51, 0xde, 0xfe, 0x31, 0x51, 0xe0, 0x5e, 0x98, 0xd4, 0x54, - 0xe6, 0xca, 0x11, 0x0e, 0xff, 0x96, 0xc8, 0x1c, 0x8e, 0x2b, 0x62, 0x3c, 0xc7, 0x52, 0x08, 0x07, - 0xf4, 0xd6, 0x3c, 0x61, 0x49, 0x26, 0x36, 0x94, 0x82, 0x42, 0xc6, 0x6f, 0x28, 0x45, 0x96, 0x9d, - 0xbe, 0x7c, 0xbf, 0x9e, 0x85, 0x63, 0x6e, 0xf1, 0x71, 0xcb, 0x52, 0xd1, 0x62, 0x1e, 0xb8, 0x2c, - 0x95, 0x78, 0x65, 0x7c, 0x1f, 0x2f, 0xa3, 0x58, 0x19, 0x1f, 0x44, 0x74, 0xcc, 0x62, 0x8e, 0x58, - 0x86, 0x1d, 0x24, 0xe6, 0x98, 0x65, 0xd8, 0xe1, 0xc5, 0x1c, 0xbf, 0x14, 0x3b, 0xa4, 0x98, 0x0f, - 0x6d, 0x81, 0xf5, 0xf5, 0x92, 0x2f, 0xe6, 0xc8, 0xb5, 0x8d, 0x18, 0x31, 0x27, 0x3e, 0xb1, 0x8b, - 0xde, 0x35, 0xa4, 0xe0, 0x47, 0xbc, 0xbe, 0x31, 0x0c, 0x4c, 0x87, 0xb8, 0xc6, 0xf1, 0xeb, 0x12, - 0xcc, 0x31, 0x2e, 0xfa, 0x4f, 0x99, 0x63, 0x30, 0x4a, 0x3c, 0x65, 0x4e, 0x7c, 0x06, 0x88, 0xe7, - 0x6c, 0xfc, 0x67, 0x80, 0x62, 0xcb, 0x4f, 0x1f, 0x9c, 0x6f, 0xe4, 0xe0, 0xa4, 0xcb, 0xc2, 0x9a, - 0xd9, 0xd6, 0x37, 0x2f, 0x51, 0x2e, 0xce, 0x6a, 0x9d, 0x5d, 0x6c, 0xa3, 0xf7, 0x67, 0x45, 0x51, - 0xfa, 0x0f, 0x00, 0x66, 0x17, 0x5b, 0x34, 0x90, 0x1a, 0x03, 0xea, 0xce, 0xa8, 0xca, 0xee, 0x2f, - 0xc9, 0x0f, 0x8a, 0x5e, 0xf3, 0x88, 0xa8, 0x21, 0x7a, 0xae, 0x55, 0x38, 0xe5, 0x7f, 0xe9, 0x75, - 0xf0, 0xc8, 0xec, 0x77, 0xf0, 0xb8, 0x01, 0x24, 0xad, 0xdd, 0xf6, 0xa1, 0xea, 0xdd, 0xcc, 0x26, - 0x65, 0xaa, 0x6e, 0x16, 0x37, 0xa7, 0x8d, 0x83, 0xa3, 0x79, 0x11, 0x39, 0x6d, 0xec, 0xc8, 0xf3, - 0x50, 0xa0, 0x37, 0x08, 0xfa, 0x2b, 0xfa, 0xfd, 0x33, 0xb3, 0x5c, 0xbc, 0x69, 0x57, 0xe3, 0xd5, - 0xf0, 0xf6, 0x44, 0x92, 0xe9, 0xd7, 0x4f, 0x07, 0x76, 0xb2, 0xca, 0x29, 0xd8, 0x53, 0x87, 0xa6, - 0x3c, 0x9e, 0xdd, 0xb0, 0x52, 0xb7, 0xdb, 0xb9, 0xd4, 0x60, 0xc1, 0x57, 0x12, 0xed, 0x86, 0x85, - 0x62, 0xb8, 0x64, 0x7b, 0x63, 0xb8, 0x24, 0xdf, 0x0d, 0xe3, 0xf8, 0x18, 0xc5, 0x6e, 0x58, 0x1c, - 0xc1, 0x31, 0xac, 0x47, 0xe6, 0xa9, 0xd5, 0xcc, 0x62, 0xd4, 0xbe, 0xb9, 0xff, 0x21, 0x34, 0xe0, - 0x9d, 0x5d, 0xfa, 0x85, 0xaf, 0x8d, 0x8d, 0xcd, 0x2d, 0x3f, 0x01, 0x0a, 0x9b, 0xa6, 0xb5, 0xa3, - 0x79, 0x1b, 0xf7, 0xbd, 0x27, 0x45, 0x58, 0x5c, 0xd8, 0x25, 0x92, 0x47, 0x65, 0x79, 0xdd, 0xf9, - 0xc8, 0x33, 0xf4, 0x2e, 0x8b, 0xba, 0xe8, 0x3e, 0xca, 0xd7, 0xc1, 0x2c, 0x0b, 0xbe, 0x58, 0xc5, - 0xb6, 0x83, 0xdb, 0x2c, 0x62, 0x05, 0x9f, 0x28, 0x9f, 0x81, 0x19, 0x96, 0xb0, 0xa4, 0x77, 0xb0, - 0xcd, 0x82, 0x56, 0x70, 0x69, 0xf2, 0x49, 0x28, 0xe8, 0xf6, 0xbd, 0xb6, 0x69, 0x10, 0xff, 0xff, - 0x49, 0x95, 0xbd, 0xc9, 0x37, 0xc0, 0x51, 0x96, 0xcf, 0x37, 0x56, 0xe9, 0x81, 0x9d, 0xde, 0x64, - 0xf4, 0xb9, 0x61, 0x26, 0x0e, 0x89, 0xe3, 0xf1, 0xba, 0x28, 0xec, 0xb6, 0x5a, 0x18, 0xb7, 0xd9, - 0xc9, 0x26, 0xef, 0x35, 0x61, 0xa4, 0xde, 0xc4, 0xd3, 0x8c, 0x43, 0x0a, 0xd5, 0xfb, 0x91, 0x13, - 0x50, 0xa0, 0xd7, 0x5e, 0xa0, 0x97, 0xce, 0xf5, 0x55, 0xc6, 0x39, 0x5e, 0x19, 0x37, 0x60, 0xc6, - 0x30, 0xdd, 0xe2, 0xd6, 0x35, 0x4b, 0xdb, 0xb1, 0xe3, 0x56, 0x11, 0x29, 0x5d, 0x7f, 0xc8, 0xa8, - 0x86, 0x7e, 0x5b, 0x39, 0xa2, 0x72, 0x64, 0xe4, 0xff, 0x03, 0x8e, 0x9e, 0x67, 0x11, 0x00, 0x6c, - 0x46, 0x39, 0x1b, 0xed, 0x63, 0xd7, 0x43, 0x79, 0x81, 0xff, 0x73, 0xe5, 0x88, 0xda, 0x4b, 0x4c, - 0xfe, 0x29, 0x98, 0x73, 0x5f, 0xdb, 0xe6, 0x45, 0x8f, 0x71, 0x29, 0xda, 0xd0, 0xe8, 0x21, 0xbf, - 0xc6, 0xfd, 0xb8, 0x72, 0x44, 0xed, 0x21, 0x25, 0xd7, 0x00, 0xb6, 0x9d, 0x9d, 0x0e, 0x23, 0x9c, - 0x8b, 0x56, 0xc9, 0x1e, 0xc2, 0x2b, 0xfe, 0x4f, 0x2b, 0x47, 0xd4, 0x10, 0x09, 0x79, 0x15, 0xa6, - 0x9c, 0x07, 0x1d, 0x46, 0x2f, 0x1f, 0xbd, 0xb9, 0xdd, 0x43, 0xaf, 0xe1, 0xfd, 0xb3, 0x72, 0x44, - 0x0d, 0x08, 0xc8, 0x15, 0x98, 0xec, 0x9e, 0x67, 0xc4, 0x0a, 0x7d, 0xae, 0xfa, 0xef, 0x4f, 0x6c, - 0xfd, 0xbc, 0x4f, 0xcb, 0xff, 0xdd, 0x65, 0xac, 0x65, 0xef, 0x31, 0x5a, 0x13, 0xc2, 0x8c, 0x95, - 0xbd, 0x7f, 0x5c, 0xc6, 0x7c, 0x02, 0x72, 0x05, 0xa6, 0x6c, 0x43, 0xeb, 0xda, 0xdb, 0xa6, 0x63, - 0x9f, 0x9a, 0xec, 0xf1, 0x83, 0x8c, 0xa6, 0x56, 0x67, 0xff, 0xa8, 0xc1, 0xdf, 0xf2, 0x13, 0xe0, - 0xc4, 0x2e, 0xb9, 0x3e, 0x54, 0x79, 0x50, 0xb7, 0x1d, 0xdd, 0xd8, 0xf2, 0x62, 0xc8, 0xd2, 0xde, - 0xa4, 0xff, 0x47, 0x79, 0x9e, 0x9d, 0x88, 0x02, 0xd2, 0x36, 0x51, 0xef, 0x66, 0x1c, 0x2d, 0x36, - 0x74, 0x10, 0xea, 0x29, 0x90, 0x73, 0x3f, 0x91, 0x33, 0x9b, 0x73, 0xfd, 0x17, 0xfa, 0x7a, 0x75, - 0x87, 0x34, 0x60, 0xf7, 0x27, 0x77, 0x6c, 0x34, 0xcc, 0x75, 0xcb, 0xdc, 0xb2, 0xb0, 0x6d, 0x33, - 0x87, 0xc3, 0x50, 0x8a, 0xdb, 0xc0, 0x75, 0x7b, 0x4d, 0xdf, 0xa2, 0xd6, 0x13, 0xf3, 0x77, 0x0f, - 0x27, 0xd1, 0xd9, 0x66, 0x15, 0x5f, 0x24, 0x0e, 0xc1, 0xe4, 0xfc, 0x0d, 0x99, 0x6d, 0x7a, 0x29, - 0xe8, 0x7a, 0x98, 0x09, 0x37, 0x32, 0x7a, 0x77, 0x96, 0x1e, 0xd8, 0x5e, 0xec, 0x0d, 0x5d, 0x07, - 0x73, 0xbc, 0x4e, 0x87, 0x86, 0x18, 0xc9, 0xeb, 0x0a, 0xd1, 0xb5, 0x70, 0xb4, 0xa7, 0x61, 0x79, - 0x31, 0x45, 0x32, 0x41, 0x4c, 0x91, 0x6b, 0x00, 0x02, 0x2d, 0xee, 0x4b, 0xe6, 0x6a, 0x98, 0xf2, - 0xf5, 0xb2, 0x6f, 0x86, 0xaf, 0x66, 0x60, 0xd2, 0x53, 0xb6, 0x7e, 0x19, 0xdc, 0xf1, 0xc5, 0x08, - 0x6d, 0x20, 0xb0, 0x69, 0x36, 0x97, 0xe6, 0x8e, 0x23, 0x81, 0xdb, 0x6e, 0x43, 0x77, 0x3a, 0xde, - 0xd1, 0xb7, 0xde, 0x64, 0x79, 0x1d, 0x40, 0x27, 0x18, 0x35, 0x82, 0xb3, 0x70, 0xb7, 0x24, 0x68, - 0x0f, 0x54, 0x1f, 0x42, 0x34, 0xce, 0xfc, 0x18, 0x3b, 0xa8, 0x36, 0x05, 0xf9, 0xfa, 0x7a, 0xa9, - 0xac, 0x14, 0x8f, 0xc8, 0x73, 0x00, 0xca, 0xd3, 0xd7, 0x15, 0xb5, 0xa2, 0x54, 0xcb, 0x4a, 0x31, - 0x83, 0x5e, 0x9e, 0x85, 0x29, 0xbf, 0x11, 0xf4, 0xad, 0xa4, 0xc2, 0x54, 0x6b, 0xe0, 0xf5, 0x44, - 0xfb, 0x1b, 0x55, 0x58, 0xc9, 0x9e, 0x0c, 0x97, 0xef, 0xda, 0x78, 0x49, 0xb7, 0x6c, 0x47, 0x35, - 0x2f, 0x2e, 0x99, 0x96, 0x1f, 0x35, 0xd9, 0xbb, 0x86, 0x3f, 0xe2, 0xb3, 0x6b, 0x51, 0xb4, 0x31, - 0x39, 0x14, 0x85, 0x2d, 0xb6, 0x32, 0x1c, 0x24, 0xb8, 0x74, 0x1d, 0x7a, 0xef, 0xbd, 0x8d, 0x55, - 0xf3, 0xa2, 0x5d, 0x32, 0xda, 0x65, 0xb3, 0xb3, 0xbb, 0x63, 0xd8, 0xcc, 0x26, 0x88, 0xfa, 0xec, - 0x4a, 0x87, 0x5c, 0x3e, 0x36, 0x07, 0x50, 0xae, 0xad, 0xae, 0x2a, 0xe5, 0x46, 0xa5, 0x56, 0x2d, - 0x1e, 0x71, 0xa5, 0xd5, 0x28, 0x2d, 0xac, 0xba, 0xd2, 0xf9, 0x69, 0x98, 0xf4, 0xda, 0x34, 0x0b, - 0x83, 0x92, 0xf1, 0xc2, 0xa0, 0xc8, 0x25, 0x98, 0xf4, 0x5a, 0x39, 0x1b, 0x11, 0x1e, 0xdd, 0x7b, - 0xec, 0x75, 0x47, 0xb3, 0x1c, 0xe2, 0x2f, 0xed, 0x11, 0x59, 0xd0, 0x6c, 0xac, 0xfa, 0xbf, 0x9d, - 0x79, 0x1c, 0xe3, 0x40, 0x86, 0xb9, 0xd2, 0xea, 0x6a, 0xb3, 0xa6, 0x36, 0xab, 0xb5, 0xc6, 0x4a, - 0xa5, 0xba, 0x4c, 0x47, 0xc8, 0xca, 0x72, 0xb5, 0xa6, 0x2a, 0x74, 0x80, 0xac, 0x17, 0x33, 0xf4, - 0xf2, 0xbb, 0x85, 0x49, 0x28, 0x74, 0x89, 0x74, 0xd1, 0x97, 0xa4, 0x84, 0xe7, 0xdd, 0x7d, 0x9c, - 0x22, 0xae, 0xe7, 0xe2, 0x7c, 0xce, 0xb3, 0x7d, 0xce, 0x84, 0x9e, 0x81, 0x19, 0x6a, 0xcb, 0xd9, - 0x64, 0xf9, 0x9e, 0xdd, 0x70, 0xcb, 0xa5, 0xa1, 0x8f, 0x65, 0x13, 0x1c, 0x82, 0xef, 0xcb, 0x51, - 0x32, 0xe3, 0xe2, 0xcf, 0x86, 0xb9, 0xec, 0x4e, 0x86, 0xb9, 0x4a, 0xb5, 0xa1, 0xa8, 0xd5, 0xd2, - 0x2a, 0xcb, 0x22, 0xc9, 0xa7, 0xe0, 0x78, 0xb5, 0xc6, 0x62, 0xfa, 0xd5, 0xc9, 0xb5, 0xda, 0x6b, - 0xeb, 0x35, 0xb5, 0x51, 0xcc, 0xcb, 0x27, 0x41, 0xa6, 0xcf, 0xdc, 0xad, 0xf4, 0x05, 0xf9, 0x31, - 0x70, 0xed, 0x6a, 0x65, 0xad, 0xd2, 0x68, 0xd6, 0x96, 0x9a, 0x6a, 0xed, 0x5c, 0xdd, 0x45, 0x50, - 0x55, 0x56, 0x4b, 0xae, 0x22, 0x85, 0x2e, 0xc1, 0x9b, 0x90, 0x2f, 0x83, 0xa3, 0xe4, 0x82, 0x4b, - 0x72, 0xb3, 0x3d, 0x2d, 0x6f, 0x52, 0xbe, 0x0a, 0x4e, 0x55, 0xaa, 0xf5, 0x8d, 0xa5, 0xa5, 0x4a, - 0xb9, 0xa2, 0x54, 0x1b, 0xcd, 0x75, 0x45, 0x5d, 0xab, 0xd4, 0xeb, 0xee, 0xbf, 0xc5, 0x29, 0x72, - 0xc5, 0x18, 0xed, 0x33, 0xd1, 0xfb, 0x24, 0x98, 0x3d, 0xab, 0x75, 0x74, 0x77, 0xa0, 0x20, 0x77, - 0x0f, 0xf6, 0x1c, 0x17, 0x71, 0xc8, 0x1d, 0x85, 0xcc, 0xe1, 0x9c, 0xbc, 0xa0, 0x9f, 0x97, 0x12, - 0x1e, 0x17, 0x61, 0x40, 0xd0, 0x12, 0xe7, 0xb9, 0xd2, 0x22, 0x26, 0x37, 0xaf, 0xcd, 0x26, 0x38, - 0x2e, 0x22, 0x4e, 0x3e, 0x19, 0xf8, 0xaf, 0x18, 0x15, 0xf8, 0x45, 0x98, 0xd9, 0xa8, 0x96, 0x36, - 0x1a, 0x2b, 0x35, 0xb5, 0xf2, 0x93, 0x24, 0xda, 0xf8, 0x2c, 0x4c, 0x2d, 0xd5, 0xd4, 0x85, 0xca, - 0xe2, 0xa2, 0x52, 0x2d, 0xe6, 0xe5, 0xcb, 0xe1, 0xb2, 0xba, 0xa2, 0x9e, 0xad, 0x94, 0x95, 0xe6, - 0x46, 0xb5, 0x74, 0xb6, 0x54, 0x59, 0x25, 0x7d, 0x44, 0x21, 0xe6, 0xde, 0xc4, 0x09, 0xf4, 0xb3, - 0x39, 0x00, 0x5a, 0x75, 0xd7, 0x92, 0x0e, 0xdf, 0xae, 0xf7, 0xe7, 0x49, 0x27, 0x0d, 0x01, 0x99, - 0x88, 0xf6, 0x5b, 0x81, 0x49, 0x8b, 0x7d, 0x60, 0xcb, 0x27, 0x83, 0xe8, 0xd0, 0x47, 0x8f, 0x9a, - 0xea, 0xff, 0x8e, 0xde, 0x9f, 0x64, 0x8e, 0x10, 0xc9, 0x58, 0x32, 0x24, 0x97, 0x46, 0x03, 0x24, - 0x7a, 0x41, 0x06, 0xe6, 0xf8, 0x8a, 0xb9, 0x95, 0x20, 0xc6, 0x94, 0x58, 0x25, 0xf8, 0x9f, 0x43, - 0x46, 0xd6, 0x99, 0xdb, 0xd8, 0x70, 0x0a, 0x5e, 0xcb, 0xa4, 0x27, 0xbf, 0x3d, 0x8b, 0xa5, 0x98, - 0x71, 0x99, 0x77, 0x8d, 0x0e, 0x7a, 0xb5, 0x7a, 0xe3, 0x41, 0xa7, 0x28, 0xa1, 0xf7, 0xe4, 0x60, - 0x96, 0xbb, 0xbe, 0x0f, 0x7d, 0x27, 0x23, 0x72, 0xb5, 0x56, 0xe8, 0x62, 0xc0, 0xcc, 0x41, 0x2f, - 0x06, 0x3c, 0xf3, 0x73, 0x19, 0x98, 0x60, 0x89, 0x44, 0xc0, 0xb5, 0xaa, 0x6b, 0x0b, 0x1c, 0x85, - 0xe9, 0x65, 0xa5, 0xd1, 0xac, 0x37, 0x4a, 0x6a, 0x43, 0x59, 0x2c, 0x66, 0xe4, 0x13, 0x70, 0x6c, - 0x5d, 0x51, 0xeb, 0x35, 0x57, 0x9e, 0xeb, 0x6a, 0x8d, 0x74, 0x84, 0x54, 0xcc, 0x2e, 0x0c, 0xab, - 0xca, 0xe2, 0xb2, 0xd2, 0x5c, 0x28, 0xd5, 0x95, 0xa2, 0xe4, 0xfe, 0x5b, 0xad, 0x35, 0x94, 0x7a, - 0x73, 0xb1, 0x52, 0x52, 0xef, 0x2f, 0xe6, 0xdc, 0x7f, 0xeb, 0x0d, 0xb5, 0xd4, 0x50, 0x96, 0x2b, - 0x65, 0x72, 0x21, 0xbd, 0xdb, 0x02, 0xf2, 0xee, 0x60, 0xaa, 0xac, 0xad, 0x37, 0xee, 0x2f, 0x16, - 0x92, 0x7b, 0xf5, 0xf5, 0x56, 0x6e, 0xcc, 0x5e, 0x7d, 0x71, 0xc5, 0xa7, 0x3f, 0xff, 0xfd, 0x8c, - 0x04, 0x45, 0xca, 0x81, 0xf2, 0x60, 0x17, 0x5b, 0x3a, 0x36, 0x5a, 0x18, 0x5d, 0x10, 0x89, 0x22, - 0xba, 0x2f, 0xbe, 0x1e, 0x19, 0x23, 0x42, 0x96, 0x27, 0x7d, 0xe9, 0x31, 0xda, 0x73, 0xfb, 0x8c, - 0xf6, 0x4f, 0x27, 0x75, 0xeb, 0xeb, 0x65, 0x77, 0x24, 0x90, 0x7d, 0x32, 0x89, 0x5b, 0xdf, 0x00, - 0x0e, 0xc6, 0x12, 0x1c, 0x38, 0x62, 0x4c, 0x2f, 0x4a, 0xe8, 0xed, 0x53, 0x50, 0xa4, 0x8c, 0x86, - 0x7c, 0xa5, 0x7e, 0x99, 0xdd, 0x85, 0xd8, 0x4c, 0x10, 0x9a, 0xce, 0x3b, 0xec, 0x9f, 0xe5, 0x0f, - 0xfb, 0x73, 0x4b, 0x6f, 0x52, 0xef, 0xfe, 0x76, 0xd2, 0xe6, 0x17, 0x72, 0x8c, 0x8a, 0x8e, 0x06, - 0x9a, 0x5e, 0xf3, 0x8b, 0x2d, 0x7e, 0x3c, 0xf7, 0x75, 0xb1, 0x1b, 0xf9, 0x14, 0x51, 0x64, 0xe2, - 0xaf, 0x25, 0x4c, 0xea, 0x25, 0xcb, 0x39, 0xa6, 0xc5, 0xdc, 0xd5, 0x97, 0x9e, 0x97, 0xec, 0x20, - 0x0e, 0xd2, 0x47, 0xe1, 0x07, 0x59, 0xc8, 0xd5, 0x4d, 0xcb, 0x19, 0x15, 0x06, 0x49, 0x77, 0xf6, - 0x42, 0x12, 0xa8, 0x47, 0xcf, 0x9c, 0xd2, 0xdb, 0xd9, 0x8b, 0x2f, 0x7f, 0x0c, 0xd1, 0xfd, 0x8e, - 0xc2, 0x1c, 0xe5, 0xc4, 0xbf, 0xfa, 0xe2, 0x5f, 0xb3, 0xb4, 0xbf, 0xba, 0x4f, 0x14, 0x91, 0x33, - 0x30, 0x13, 0xda, 0x59, 0xf3, 0xaf, 0x7d, 0x0e, 0xa7, 0xa1, 0x37, 0x85, 0x71, 0x59, 0xe4, 0x71, - 0xe9, 0x37, 0x6f, 0xf4, 0x6f, 0x8f, 0x18, 0x55, 0xcf, 0x94, 0x24, 0x50, 0x60, 0x4c, 0xe1, 0xe9, - 0x23, 0xf2, 0x90, 0x04, 0x05, 0xe6, 0xd9, 0x34, 0x52, 0x04, 0x92, 0xb6, 0x0c, 0x5f, 0x08, 0x62, - 0x1e, 0x50, 0xd2, 0xa8, 0x5b, 0x46, 0x7c, 0xf9, 0xe9, 0xe3, 0xf0, 0x6f, 0xcc, 0x65, 0xaf, 0xb4, - 0xa7, 0xe9, 0x1d, 0xed, 0x7c, 0x27, 0x41, 0x80, 0xde, 0x8f, 0x25, 0x3c, 0xa4, 0xe4, 0x57, 0x95, - 0x2b, 0x2f, 0x42, 0xe2, 0x3f, 0x01, 0x53, 0x96, 0xbf, 0xb0, 0xe6, 0x9d, 0xe1, 0xee, 0x71, 0x97, - 0x64, 0xdf, 0xd5, 0x20, 0x67, 0xa2, 0x13, 0x49, 0x42, 0xfc, 0x8c, 0xe5, 0x04, 0xc5, 0x74, 0xa9, - 0xdd, 0x5e, 0xc2, 0x9a, 0xb3, 0x6b, 0xe1, 0x76, 0xa2, 0x21, 0x82, 0x17, 0xd1, 0x54, 0x58, 0x12, - 0x5c, 0x88, 0xbc, 0x55, 0x1e, 0x9d, 0x27, 0x0e, 0xe8, 0x0d, 0x3c, 0x5e, 0x46, 0xd2, 0x25, 0xbd, - 0xcd, 0x87, 0xa4, 0xc6, 0x41, 0xf2, 0x94, 0xe1, 0x98, 0x48, 0x1f, 0x90, 0x5f, 0x95, 0x60, 0x8e, - 0xda, 0x09, 0xa3, 0xc6, 0xe4, 0x77, 0x13, 0x7a, 0x42, 0x84, 0x2e, 0x17, 0x0a, 0xb3, 0x33, 0x12, - 0x58, 0x92, 0xf8, 0x4d, 0x88, 0xf1, 0x91, 0x3e, 0x32, 0x9f, 0x2b, 0x00, 0x84, 0xbc, 0xdb, 0x3e, - 0x56, 0x08, 0xc2, 0xd5, 0xa1, 0x77, 0xb0, 0xf9, 0x47, 0x9d, 0x8b, 0x9d, 0x1c, 0xf2, 0x5c, 0xf3, - 0xb7, 0x55, 0xf8, 0x44, 0xa1, 0x51, 0xe5, 0xcf, 0x12, 0xda, 0xbc, 0xcc, 0xb7, 0x6c, 0xe0, 0xe0, - 0x3e, 0x64, 0x2f, 0xf7, 0xf1, 0x04, 0xc6, 0xef, 0x20, 0x56, 0x92, 0xa1, 0xb6, 0x3a, 0xc4, 0x5c, - 0xf2, 0x14, 0x1c, 0x57, 0x95, 0xd2, 0x62, 0xad, 0xba, 0x7a, 0x7f, 0xf8, 0xa6, 0x99, 0xa2, 0x14, - 0x9e, 0x9c, 0xa4, 0x02, 0xdb, 0xeb, 0x12, 0xf6, 0x81, 0xbc, 0xac, 0xe2, 0x66, 0x2b, 0xa1, 0xe9, - 0xfc, 0xe0, 0x5e, 0x4d, 0x80, 0xec, 0x61, 0xa2, 0xf0, 0x10, 0x84, 0x9a, 0xd1, 0xf3, 0x24, 0x28, - 0x06, 0x97, 0x9d, 0xb3, 0x2b, 0xc5, 0x6a, 0xbc, 0xf3, 0x5b, 0x97, 0xee, 0xa2, 0x04, 0xce, 0x6f, - 0x5e, 0x82, 0x7c, 0x3d, 0xcc, 0xb5, 0xb6, 0x71, 0xeb, 0x42, 0xc5, 0xf0, 0x76, 0x87, 0xe9, 0x56, - 0x62, 0x4f, 0x2a, 0x0f, 0xcc, 0x7d, 0x3c, 0x30, 0xfc, 0x24, 0x9a, 0x1b, 0xa4, 0xc3, 0x4c, 0x45, - 0xe0, 0xf2, 0x07, 0x3e, 0x2e, 0x55, 0x0e, 0x97, 0x3b, 0x86, 0xa2, 0x9a, 0x0c, 0x96, 0xea, 0x10, - 0xb0, 0x20, 0x38, 0x59, 0x5b, 0x6f, 0x54, 0x6a, 0xd5, 0xe6, 0x46, 0x5d, 0x59, 0x6c, 0x2e, 0x78, - 0xe0, 0xd4, 0x8b, 0x12, 0xfa, 0x66, 0x16, 0x26, 0x28, 0x5b, 0x76, 0xcf, 0xe5, 0xe4, 0xf1, 0x5e, - 0x7f, 0xe8, 0xed, 0xc2, 0x67, 0xf8, 0x7d, 0x41, 0xb0, 0x72, 0x22, 0xfa, 0xa9, 0x27, 0xc3, 0x04, - 0x05, 0xd9, 0x73, 0x1a, 0x39, 0x1d, 0xd1, 0x4b, 0x31, 0x32, 0xaa, 0x97, 0x5d, 0xf0, 0x3c, 0xff, - 0x00, 0x36, 0xd2, 0x1f, 0x59, 0x9e, 0x99, 0xa3, 0x66, 0xf0, 0x39, 0xdd, 0xd9, 0x26, 0x4e, 0x81, - 0xe8, 0x69, 0x22, 0x4b, 0x94, 0x37, 0x41, 0x7e, 0xcf, 0xcd, 0x3d, 0xc0, 0xc1, 0x92, 0x66, 0x42, - 0xaf, 0x10, 0x0e, 0x1f, 0xc9, 0xe9, 0xa7, 0xcf, 0x53, 0x04, 0x38, 0x6b, 0x90, 0xeb, 0xe8, 0xb6, - 0xc3, 0xc6, 0x8f, 0xdb, 0x13, 0x11, 0xf2, 0x1e, 0x2a, 0x0e, 0xde, 0x51, 0x09, 0x19, 0x74, 0x2f, - 0xcc, 0x84, 0x53, 0x05, 0x9c, 0x4c, 0x4f, 0xc1, 0x04, 0x3b, 0xfc, 0x44, 0xe4, 0x20, 0xa9, 0xde, - 0xab, 0x60, 0xa4, 0x2c, 0xa1, 0xda, 0xa6, 0xaf, 0x03, 0xff, 0xe3, 0x28, 0x4c, 0xac, 0xe8, 0xb6, - 0x63, 0x5a, 0x97, 0xd0, 0x1b, 0x32, 0x30, 0x71, 0x16, 0x5b, 0xb6, 0x6e, 0x1a, 0xfb, 0x36, 0xcc, - 0xaf, 0x81, 0xe9, 0xae, 0x85, 0xf7, 0x74, 0x73, 0xd7, 0x0e, 0x16, 0x67, 0xc2, 0x49, 0x32, 0x82, - 0x49, 0x6d, 0xd7, 0xd9, 0x36, 0xad, 0x20, 0x66, 0x82, 0xf7, 0x2e, 0x9f, 0x06, 0xa0, 0xcf, 0x55, - 0x6d, 0x07, 0x33, 0x37, 0x80, 0x50, 0x8a, 0x2c, 0x43, 0xce, 0xd1, 0x77, 0x30, 0x0b, 0xa2, 0x4a, - 0x9e, 0x5d, 0x01, 0x93, 0x80, 0x64, 0x2c, 0xf0, 0x9b, 0xa4, 0x7a, 0xaf, 0xe8, 0x0b, 0x12, 0x4c, - 0x2f, 0x63, 0x87, 0xb1, 0x6a, 0xa3, 0x17, 0x66, 0x84, 0xee, 0x2d, 0x70, 0xc7, 0xd8, 0x8e, 0x66, - 0x7b, 0xff, 0xf9, 0x4b, 0xb0, 0x7c, 0x62, 0x10, 0xd1, 0x55, 0x0a, 0x87, 0x73, 0x26, 0xe1, 0xbd, - 0x9c, 0x0a, 0xf5, 0x1e, 0x64, 0x99, 0xd9, 0xb2, 0xfb, 0xfe, 0x0f, 0xe8, 0x3d, 0x59, 0xd1, 0xa3, - 0xb1, 0x4c, 0xf6, 0xf3, 0xa1, 0xfa, 0x44, 0x76, 0x47, 0x93, 0x7b, 0x2c, 0xc7, 0xbe, 0x48, 0xdd, - 0x61, 0x4a, 0x8c, 0x8c, 0xea, 0xe7, 0x16, 0x3c, 0x54, 0x3b, 0x98, 0x93, 0xf4, 0xb5, 0xf1, 0x7b, - 0x12, 0x4c, 0xd7, 0xb7, 0xcd, 0x8b, 0x9e, 0x1c, 0x7f, 0x5a, 0x0c, 0xd8, 0xab, 0x60, 0x6a, 0xaf, - 0x07, 0xd4, 0x20, 0x21, 0xfa, 0x26, 0x71, 0xf4, 0x5c, 0x29, 0x29, 0x4c, 0x21, 0xe6, 0x46, 0x7e, - 0xcf, 0xb7, 0xfc, 0x44, 0x98, 0x60, 0x5c, 0xb3, 0x25, 0x97, 0x78, 0x80, 0xbd, 0xcc, 0xe1, 0x0a, - 0xe6, 0xf8, 0x0a, 0x26, 0x43, 0x3e, 0xba, 0x72, 0xe9, 0x23, 0xff, 0xc7, 0x59, 0x12, 0x52, 0xc1, - 0x03, 0xbe, 0x3c, 0x02, 0xe0, 0xd1, 0xf7, 0x33, 0xa2, 0x0b, 0x93, 0xbe, 0x04, 0x7c, 0x0e, 0x0e, - 0x74, 0x27, 0xc9, 0x40, 0x72, 0xe9, 0xcb, 0xf3, 0xe5, 0x39, 0x98, 0x59, 0xd4, 0x37, 0x37, 0xfd, - 0x4e, 0xf2, 0xc5, 0x82, 0x9d, 0x64, 0xf4, 0xa6, 0xb6, 0x6b, 0xe7, 0xee, 0x5a, 0x16, 0x36, 0xbc, - 0x4a, 0xb1, 0xe6, 0xd4, 0x93, 0x2a, 0xdf, 0x00, 0x47, 0xbd, 0x71, 0x21, 0xdc, 0x51, 0x4e, 0xa9, - 0xbd, 0xc9, 0xe8, 0xbb, 0xc2, 0xbb, 0x5a, 0x9e, 0x44, 0xc3, 0x55, 0x8a, 0x68, 0x80, 0x77, 0xc2, - 0xec, 0x36, 0xcd, 0x4d, 0xa6, 0xfe, 0x5e, 0x67, 0x79, 0xb2, 0x27, 0x64, 0xed, 0x1a, 0xb6, 0x6d, - 0x6d, 0x0b, 0xab, 0x7c, 0xe6, 0x9e, 0xe6, 0x2b, 0x25, 0xb9, 0x80, 0x49, 0x6c, 0x83, 0x4c, 0xa0, - 0x26, 0x63, 0xd0, 0x8e, 0x33, 0x90, 0x5b, 0xd2, 0x3b, 0x18, 0xfd, 0x42, 0x16, 0xa6, 0x54, 0xdc, - 0x32, 0x8d, 0x96, 0xfb, 0x16, 0x72, 0x71, 0xf9, 0xc7, 0x8c, 0xe8, 0xc5, 0x83, 0x2e, 0x9d, 0x79, - 0x9f, 0x46, 0x44, 0xbb, 0x11, 0xbb, 0x60, 0x30, 0x96, 0xd4, 0x18, 0xae, 0x89, 0x70, 0xa7, 0x1e, - 0x9b, 0x9b, 0x1d, 0x53, 0xe3, 0x16, 0xbf, 0x7a, 0x4d, 0xa1, 0x1b, 0xa1, 0xe8, 0x9d, 0x54, 0x30, - 0x9d, 0x75, 0xdd, 0x30, 0xfc, 0xa3, 0xb0, 0xfb, 0xd2, 0xf9, 0x7d, 0xdb, 0xd8, 0x68, 0x22, 0xa4, - 0xee, 0xac, 0xf4, 0x08, 0xcd, 0xbe, 0x1e, 0xe6, 0xce, 0x5f, 0x72, 0xb0, 0xcd, 0x72, 0xb1, 0x62, - 0x73, 0x6a, 0x4f, 0x6a, 0x28, 0x16, 0x70, 0x5c, 0xd4, 0x91, 0x98, 0x02, 0x93, 0x89, 0x7a, 0x65, - 0x88, 0x19, 0xe0, 0x71, 0x28, 0x56, 0x6b, 0x8b, 0x0a, 0xf1, 0xb8, 0xf2, 0x5c, 0x58, 0xb6, 0xd0, - 0x4b, 0x24, 0x98, 0x21, 0xee, 0x0b, 0x1e, 0x0a, 0xd7, 0x0a, 0xcc, 0x47, 0xd0, 0x97, 0x85, 0xbd, - 0xb1, 0x48, 0x95, 0xc3, 0x05, 0x44, 0x0b, 0x7a, 0x53, 0xef, 0xf4, 0x0a, 0x3a, 0xaf, 0xf6, 0xa4, - 0xf6, 0x01, 0x44, 0xea, 0x0b, 0xc8, 0x6f, 0x0b, 0xb9, 0x64, 0x0d, 0xe2, 0xee, 0xb0, 0x50, 0xf9, - 0x1d, 0x09, 0xa6, 0xdd, 0x49, 0x8a, 0x07, 0x4a, 0x8d, 0x03, 0xc5, 0x34, 0x3a, 0x97, 0x82, 0x65, - 0x11, 0xef, 0x35, 0x51, 0x23, 0xf9, 0x4b, 0xe1, 0x99, 0x3b, 0x11, 0x51, 0x88, 0x97, 0x31, 0xe1, - 0xf7, 0x01, 0xa1, 0xf9, 0xfc, 0x00, 0xe6, 0x0e, 0x0b, 0xbe, 0xaf, 0xe7, 0xa1, 0xb0, 0xd1, 0x25, - 0xc8, 0xbd, 0x42, 0x12, 0x89, 0xab, 0xbd, 0xcf, 0x1d, 0xdf, 0x35, 0xb3, 0x3a, 0x66, 0x4b, 0xeb, - 0xac, 0x07, 0xe7, 0x9a, 0x82, 0x04, 0xf9, 0x0e, 0xe6, 0xa1, 0x47, 0x0f, 0x85, 0x5d, 0x1f, 0x1b, - 0x72, 0x9a, 0xc8, 0x28, 0x74, 0xf4, 0xe1, 0x26, 0x38, 0xd6, 0xd6, 0x6d, 0xed, 0x7c, 0x07, 0x2b, - 0x46, 0xcb, 0xba, 0x44, 0xc5, 0xc1, 0xa6, 0x55, 0xfb, 0x3e, 0xc8, 0x77, 0x41, 0xde, 0x76, 0x2e, - 0x75, 0xe8, 0x3c, 0x31, 0x7c, 0x52, 0x22, 0xb2, 0xa8, 0xba, 0x9b, 0x5d, 0xa5, 0x7f, 0x85, 0x6f, - 0x1d, 0x9e, 0x10, 0xbc, 0x75, 0xf8, 0x36, 0x28, 0x98, 0x96, 0xbe, 0xa5, 0xd3, 0x5b, 0x64, 0xe6, - 0xf6, 0x45, 0x56, 0xa3, 0xa6, 0x40, 0x8d, 0x64, 0x51, 0x59, 0x56, 0xf9, 0x89, 0x30, 0xa5, 0xef, - 0x68, 0x5b, 0xf8, 0x3e, 0xdd, 0xa0, 0xe7, 0xce, 0xe6, 0x6e, 0x3d, 0xb5, 0xef, 0x10, 0x08, 0xfb, - 0xae, 0x06, 0x59, 0xd1, 0x07, 0xb2, 0xa2, 0xe1, 0x5f, 0x48, 0xdd, 0x28, 0xa8, 0x63, 0xb9, 0x7d, - 0x19, 0xbd, 0x5a, 0x28, 0x30, 0x4b, 0x34, 0x5b, 0xe9, 0x0f, 0xde, 0x9f, 0xcf, 0xc2, 0xe4, 0xa2, - 0x79, 0xd1, 0x20, 0x8a, 0x7e, 0xbb, 0x98, 0xad, 0xdb, 0xe7, 0xa8, 0x1e, 0x7f, 0xb9, 0x61, 0xac, - 0x5f, 0x3e, 0xa9, 0xad, 0x57, 0x64, 0x04, 0x0c, 0xb1, 0x2d, 0x47, 0xf0, 0xca, 0xb9, 0xb8, 0x72, - 0xd2, 0x97, 0xeb, 0x9f, 0x48, 0x90, 0x5b, 0xb4, 0xcc, 0x2e, 0x7a, 0x5b, 0x26, 0x81, 0xcb, 0x42, - 0xdb, 0x32, 0xbb, 0x0d, 0x72, 0x67, 0x54, 0x70, 0x18, 0x21, 0x9c, 0x26, 0xdf, 0x0e, 0x93, 0x5d, - 0xd3, 0xd6, 0x1d, 0x6f, 0x1a, 0x31, 0x77, 0xeb, 0xa3, 0xfa, 0xb6, 0xe6, 0x75, 0x96, 0x49, 0xf5, - 0xb3, 0xbb, 0xbd, 0x36, 0x11, 0xa1, 0x2b, 0x17, 0x57, 0x8c, 0xde, 0xbd, 0x59, 0x3d, 0xa9, 0xe8, - 0xa5, 0x61, 0x24, 0x9f, 0xc2, 0x23, 0xf9, 0xe8, 0x3e, 0x12, 0xb6, 0xcc, 0xee, 0x48, 0x36, 0x19, - 0x5f, 0xe9, 0xa3, 0xfa, 0x54, 0x0e, 0xd5, 0x1b, 0x85, 0xca, 0x4c, 0x1f, 0xd1, 0x0f, 0xe4, 0x00, - 0x88, 0x99, 0xb1, 0xe1, 0x4e, 0x80, 0xc4, 0x6c, 0xac, 0x67, 0xe7, 0x42, 0xb2, 0x2c, 0xf1, 0xb2, - 0x7c, 0x6c, 0x84, 0x15, 0x43, 0xc8, 0x47, 0x48, 0xb4, 0x04, 0xf9, 0x5d, 0xf7, 0x33, 0x93, 0xa8, - 0x20, 0x09, 0xf2, 0xaa, 0xd2, 0x3f, 0xd1, 0x1f, 0x67, 0x20, 0x4f, 0x12, 0xe4, 0xd3, 0x00, 0x64, - 0x60, 0xa7, 0xc7, 0x5a, 0x32, 0x64, 0x08, 0x0f, 0xa5, 0x10, 0x6d, 0xd5, 0xdb, 0xec, 0x33, 0x35, - 0x99, 0x83, 0x04, 0xf7, 0x6f, 0x32, 0xdc, 0x13, 0x5a, 0xcc, 0x00, 0x08, 0xa5, 0xb8, 0x7f, 0x93, - 0xb7, 0x55, 0xbc, 0x49, 0xc3, 0xf9, 0xe6, 0xd4, 0x20, 0xc1, 0xff, 0x7b, 0xd5, 0xbf, 0x04, 0xca, - 0xfb, 0x9b, 0xa4, 0xb8, 0x93, 0x61, 0xa2, 0x96, 0x0b, 0x41, 0x11, 0x05, 0x92, 0xa9, 0x37, 0x19, - 0xbd, 0xce, 0x57, 0x9b, 0x45, 0x4e, 0x6d, 0x6e, 0x49, 0x20, 0xde, 0xf4, 0x95, 0xe7, 0xab, 0x79, - 0x98, 0xaa, 0x9a, 0x6d, 0xa6, 0x3b, 0xa1, 0x09, 0xe3, 0x27, 0xf3, 0x89, 0x26, 0x8c, 0x3e, 0x8d, - 0x08, 0x05, 0xb9, 0x87, 0x57, 0x10, 0x31, 0x0a, 0x61, 0xfd, 0x90, 0x17, 0xa0, 0x40, 0xb4, 0x77, - 0xff, 0xed, 0x42, 0x71, 0x24, 0x88, 0x68, 0x55, 0xf6, 0xe7, 0xbf, 0x3b, 0x1d, 0xfb, 0xcf, 0x90, - 0x27, 0x15, 0x8c, 0xd9, 0xdd, 0xe1, 0x2b, 0x9a, 0x8d, 0xaf, 0xa8, 0x14, 0x5f, 0xd1, 0x5c, 0x6f, - 0x45, 0x93, 0xac, 0x03, 0x44, 0x69, 0x48, 0xfa, 0x3a, 0xfe, 0x0f, 0x13, 0x00, 0x55, 0x6d, 0x4f, - 0xdf, 0xa2, 0xbb, 0xc3, 0x5f, 0xf0, 0xe6, 0x3f, 0x6c, 0x1f, 0xf7, 0xbf, 0x84, 0x06, 0xc2, 0xdb, - 0x61, 0x82, 0x8d, 0x7b, 0xac, 0x22, 0x57, 0x73, 0x15, 0x09, 0xa8, 0x50, 0xb3, 0xf4, 0x41, 0x47, - 0xf5, 0xf2, 0x73, 0x17, 0xa1, 0x66, 0x7b, 0x2e, 0x42, 0xed, 0xbf, 0x07, 0x11, 0x71, 0x3d, 0x2a, - 0x7a, 0xaf, 0xf0, 0x65, 0x32, 0x21, 0x7e, 0x42, 0x35, 0x8a, 0x68, 0x82, 0xb7, 0xc1, 0x84, 0xe9, - 0x6f, 0x68, 0x4b, 0x91, 0xeb, 0x60, 0x15, 0x63, 0xd3, 0x54, 0xbd, 0x9c, 0x82, 0x9b, 0x5f, 0x42, - 0x7c, 0x8c, 0xe5, 0x98, 0xc6, 0xc9, 0x65, 0x2f, 0x34, 0x92, 0x5b, 0x8f, 0x73, 0xba, 0xb3, 0xbd, - 0xaa, 0x1b, 0x17, 0x6c, 0xf4, 0x1f, 0xc5, 0x2c, 0xc8, 0x10, 0xfe, 0xd9, 0x64, 0xf8, 0xf3, 0x91, - 0x27, 0xea, 0x3c, 0x6a, 0x77, 0x45, 0x51, 0xe9, 0xcf, 0x6d, 0x04, 0x80, 0x77, 0x40, 0x81, 0x32, - 0xca, 0x3a, 0xd1, 0x33, 0x91, 0xf8, 0xf9, 0x94, 0x54, 0xf6, 0x07, 0x7a, 0x8f, 0x8f, 0xe3, 0x59, - 0x0e, 0xc7, 0x85, 0x03, 0x71, 0x96, 0x3a, 0xa4, 0x67, 0x1e, 0x0f, 0x13, 0x4c, 0xd2, 0xf2, 0x5c, - 0xb8, 0x15, 0x17, 0x8f, 0xc8, 0x00, 0x85, 0x35, 0x73, 0x0f, 0x37, 0xcc, 0x62, 0xc6, 0x7d, 0x76, - 0xf9, 0x6b, 0x98, 0xc5, 0x2c, 0x7a, 0xd5, 0x24, 0x4c, 0xfa, 0x31, 0x69, 0x3e, 0x9f, 0x85, 0x62, - 0xd9, 0xc2, 0x9a, 0x83, 0x97, 0x2c, 0x73, 0x87, 0xd6, 0x48, 0xdc, 0x3b, 0xf4, 0x57, 0x85, 0x5d, - 0x3c, 0xfc, 0x58, 0x31, 0xbd, 0x85, 0x45, 0x60, 0x49, 0x17, 0x21, 0xb3, 0xde, 0x22, 0x24, 0x7a, - 0xab, 0x90, 0xcb, 0x87, 0x68, 0x29, 0xe9, 0x37, 0xb5, 0x4f, 0x67, 0x21, 0x5f, 0xee, 0x98, 0x06, - 0x0e, 0xdf, 0xf3, 0x3f, 0xf0, 0xac, 0x4c, 0xff, 0x9d, 0x08, 0xf4, 0xcc, 0xac, 0xa8, 0xad, 0x11, - 0x08, 0xc0, 0x2d, 0x5b, 0x50, 0xb6, 0x62, 0x83, 0x54, 0x2c, 0xe9, 0xf4, 0x05, 0xfa, 0xcd, 0x2c, - 0x4c, 0xd1, 0xe8, 0x2e, 0xa5, 0x4e, 0x07, 0x3d, 0x2a, 0x10, 0x6a, 0x9f, 0xb8, 0x3e, 0xe8, 0xb7, - 0x85, 0x5d, 0xf4, 0xfd, 0x5a, 0xf9, 0xb4, 0x13, 0x84, 0xb9, 0x49, 0xe6, 0x31, 0x2e, 0xb6, 0x97, - 0x36, 0x90, 0xa1, 0xf4, 0x45, 0xfd, 0xe7, 0x59, 0xd7, 0x00, 0x30, 0x2e, 0xac, 0x5b, 0x78, 0x4f, - 0xc7, 0x17, 0xd1, 0x95, 0x81, 0xb0, 0xf7, 0x87, 0xae, 0x78, 0xb3, 0xf0, 0x22, 0x4e, 0x88, 0x64, - 0xe4, 0x56, 0xd6, 0x74, 0x27, 0xc8, 0xc4, 0x7a, 0xf1, 0xde, 0x78, 0x22, 0x21, 0x32, 0x6a, 0x38, - 0xbb, 0xe0, 0x9a, 0x4d, 0x34, 0x17, 0xe9, 0x0b, 0xf6, 0xc3, 0x13, 0x30, 0xb9, 0x61, 0xd8, 0xdd, - 0x8e, 0x66, 0x6f, 0xa3, 0x7f, 0x95, 0xa0, 0x40, 0xef, 0xb4, 0x42, 0x3f, 0xc1, 0x9d, 0x90, 0xff, - 0x99, 0x5d, 0x6c, 0x79, 0x2e, 0x38, 0xf4, 0xa5, 0xff, 0x95, 0xdb, 0xe8, 0x03, 0x92, 0xe8, 0x24, - 0xd5, 0x2b, 0xb4, 0xff, 0x3d, 0xfe, 0xa1, 0x43, 0xd9, 0x5d, 0xbd, 0xe5, 0xec, 0x5a, 0xfe, 0x05, - 0xce, 0x8f, 0x13, 0xa3, 0xb2, 0x4e, 0xff, 0x52, 0xfd, 0xdf, 0x91, 0x06, 0x13, 0x2c, 0x71, 0xdf, - 0x76, 0xd2, 0xfe, 0x13, 0x9f, 0x27, 0xa1, 0xa0, 0x59, 0x8e, 0x6e, 0x7b, 0x17, 0xe4, 0xb3, 0x37, - 0xb7, 0xbb, 0xa4, 0x4f, 0x1b, 0x56, 0xc7, 0x8b, 0xa5, 0xe1, 0x27, 0xa0, 0xdf, 0x11, 0x9a, 0x3f, - 0xc6, 0xd7, 0x3c, 0x19, 0xe4, 0xf7, 0x0d, 0xb1, 0x46, 0x7d, 0x39, 0x5c, 0xa6, 0x96, 0x1a, 0x4a, - 0x93, 0x86, 0x5e, 0xf0, 0xa3, 0x2c, 0xb4, 0xd1, 0xbb, 0xa5, 0xd0, 0xfa, 0xdd, 0x25, 0x6e, 0x8c, - 0x60, 0x52, 0x0c, 0xc6, 0x08, 0x3f, 0x21, 0x66, 0xb7, 0x9a, 0x5b, 0x84, 0x95, 0xc4, 0x17, 0x61, - 0x7f, 0x53, 0x78, 0x37, 0xc9, 0x17, 0xe5, 0x80, 0x35, 0xc0, 0xb8, 0x3b, 0x6f, 0x3e, 0x28, 0xb4, - 0x33, 0x34, 0xa8, 0xa4, 0x43, 0x84, 0xed, 0x4d, 0x13, 0x30, 0xb1, 0xac, 0x75, 0x3a, 0xd8, 0xba, - 0xe4, 0x0e, 0x49, 0x45, 0x8f, 0xc3, 0x35, 0xcd, 0xd0, 0x37, 0xb1, 0xed, 0xc4, 0x77, 0x96, 0xef, - 0x15, 0x8e, 0xa7, 0xca, 0xca, 0x98, 0xef, 0xa5, 0x1f, 0x21, 0xf3, 0x9b, 0x21, 0xa7, 0x1b, 0x9b, - 0x26, 0xeb, 0x32, 0x7b, 0x57, 0xed, 0xbd, 0x9f, 0xc9, 0xd4, 0x85, 0x64, 0x14, 0x0c, 0xa9, 0x2a, - 0xc8, 0x45, 0xfa, 0x3d, 0xe7, 0x6f, 0xe5, 0x60, 0xd6, 0x63, 0xa2, 0x62, 0xb4, 0xf1, 0x83, 0xe1, - 0xa5, 0x98, 0x97, 0xe4, 0x44, 0x8f, 0x83, 0xf5, 0xd6, 0x87, 0x90, 0x8a, 0x10, 0x69, 0x03, 0xa0, - 0xa5, 0x39, 0x78, 0xcb, 0xb4, 0x74, 0xbf, 0x3f, 0x7c, 0x42, 0x12, 0x6a, 0x65, 0xfa, 0xf7, 0x25, - 0x35, 0x44, 0x47, 0xbe, 0x0b, 0xa6, 0xb1, 0x7f, 0xe2, 0xdb, 0x5b, 0xaa, 0x89, 0xc5, 0x2b, 0x9c, - 0x1f, 0xfd, 0xb9, 0xd0, 0xa9, 0x33, 0x91, 0x6a, 0x26, 0xc3, 0xac, 0x39, 0x5c, 0x1b, 0xda, 0xa8, - 0xae, 0x95, 0xd4, 0xfa, 0x4a, 0x69, 0x75, 0xb5, 0x52, 0x5d, 0xf6, 0xc3, 0x97, 0xc8, 0x30, 0xb7, - 0x58, 0x3b, 0x57, 0x0d, 0xc5, 0x97, 0xc9, 0xa1, 0x75, 0x98, 0xf4, 0xe4, 0xd5, 0xcf, 0x17, 0x33, - 0x2c, 0x33, 0xe6, 0x8b, 0x19, 0x4a, 0x72, 0x8d, 0x33, 0xbd, 0xe5, 0x3b, 0xe8, 0x90, 0x67, 0xf4, - 0x87, 0x1a, 0xe4, 0xc9, 0x9a, 0x3a, 0x7a, 0x27, 0xd9, 0x06, 0xec, 0x76, 0xb4, 0x16, 0x46, 0x3b, - 0x09, 0xac, 0x71, 0x2f, 0xc0, 0x7f, 0x76, 0x5f, 0x80, 0x7f, 0xf2, 0xc8, 0xac, 0xbe, 0xe3, 0xfd, - 0xd6, 0xf1, 0x55, 0x9a, 0x85, 0x3f, 0xa0, 0x15, 0xbb, 0xbb, 0x42, 0x97, 0xff, 0x19, 0x9b, 0x11, - 0x2a, 0x19, 0xcd, 0x53, 0x32, 0x4b, 0x54, 0x6c, 0x1f, 0x26, 0x8e, 0xa3, 0x31, 0x5c, 0x42, 0x9d, - 0x83, 0x7c, 0xbd, 0xdb, 0xd1, 0x1d, 0xf4, 0xeb, 0xd9, 0x91, 0x60, 0x46, 0x2f, 0x65, 0x90, 0x06, - 0x5e, 0xca, 0x10, 0xec, 0xba, 0xe6, 0x04, 0x76, 0x5d, 0x1b, 0xf8, 0x41, 0x87, 0xdf, 0x75, 0xbd, - 0x9d, 0x85, 0x20, 0xa3, 0x7b, 0xb6, 0x8f, 0xee, 0x23, 0x52, 0x52, 0xad, 0x3e, 0xb1, 0xed, 0xce, - 0x3c, 0x9e, 0x85, 0xd8, 0x02, 0x28, 0x2c, 0xd4, 0x1a, 0x8d, 0xda, 0x5a, 0xf1, 0x08, 0x89, 0xcd, - 0x52, 0x5b, 0x2f, 0x66, 0xe4, 0x29, 0xc8, 0x57, 0xaa, 0x55, 0x45, 0x2d, 0x66, 0x49, 0xd0, 0xaf, - 0x4a, 0x63, 0x55, 0x29, 0x4a, 0x7c, 0x84, 0xee, 0x58, 0xf3, 0x9b, 0x2f, 0x3b, 0x4d, 0xf5, 0x12, - 0x33, 0xc4, 0xa3, 0xf9, 0x49, 0x5f, 0xb9, 0x7e, 0x45, 0x82, 0xfc, 0x1a, 0xb6, 0xb6, 0x30, 0xfa, - 0x99, 0x04, 0x9b, 0x7c, 0x9b, 0xba, 0x65, 0xd3, 0x10, 0x69, 0xc1, 0x26, 0x5f, 0x38, 0x4d, 0xbe, - 0x0e, 0x66, 0x6d, 0xdc, 0x32, 0x8d, 0xb6, 0x97, 0x89, 0xf6, 0x47, 0x7c, 0x22, 0x7f, 0x3b, 0xba, - 0x00, 0x64, 0x84, 0xd1, 0x91, 0xec, 0xd4, 0x25, 0x01, 0xa6, 0x5f, 0xa9, 0xe9, 0x03, 0xf3, 0x5d, - 0xc9, 0xfd, 0xa9, 0x7b, 0x09, 0xbd, 0x4c, 0x78, 0xf7, 0xf5, 0x26, 0x28, 0x10, 0x35, 0xf5, 0xc6, - 0xe8, 0xfe, 0xfd, 0x31, 0xcb, 0x23, 0x2f, 0xc0, 0x31, 0x1b, 0x77, 0x70, 0xcb, 0xc1, 0x6d, 0xb7, - 0xe9, 0xaa, 0x03, 0x3b, 0x85, 0xfd, 0xd9, 0xd1, 0x9f, 0x86, 0x01, 0xbc, 0x93, 0x07, 0xf0, 0xfa, - 0x3e, 0xa2, 0x74, 0x2b, 0x14, 0x6d, 0x2b, 0xbb, 0xd5, 0xa8, 0x77, 0x4c, 0x7f, 0x51, 0xdc, 0x7b, - 0x77, 0xbf, 0x6d, 0x3b, 0x3b, 0x1d, 0xf2, 0x8d, 0x1d, 0x30, 0xf0, 0xde, 0xe5, 0x79, 0x98, 0xd0, - 0x8c, 0x4b, 0xe4, 0x53, 0x2e, 0xa6, 0xd6, 0x5e, 0x26, 0xf4, 0x2a, 0x1f, 0xf9, 0xbb, 0x39, 0xe4, - 0x1f, 0x2b, 0xc6, 0x6e, 0xfa, 0xc0, 0xff, 0xfc, 0x04, 0xe4, 0xd7, 0x35, 0xdb, 0xc1, 0xe8, 0xff, - 0x95, 0x44, 0x91, 0xbf, 0x1e, 0xe6, 0x36, 0xcd, 0xd6, 0xae, 0x8d, 0xdb, 0x7c, 0xa3, 0xec, 0x49, - 0x1d, 0x05, 0xe6, 0xf2, 0x8d, 0x50, 0xf4, 0x12, 0x19, 0x59, 0x6f, 0x1b, 0x7e, 0x5f, 0x3a, 0x89, - 0xf7, 0x6c, 0xaf, 0x6b, 0x96, 0x53, 0xdb, 0x24, 0x69, 0x7e, 0xbc, 0xe7, 0x70, 0x22, 0x07, 0x7d, - 0x21, 0x06, 0xfa, 0x89, 0x68, 0xe8, 0x27, 0x05, 0xa0, 0x97, 0x4b, 0x30, 0xb9, 0xa9, 0x77, 0x30, - 0xf9, 0x61, 0x8a, 0xfc, 0xd0, 0x6f, 0x4c, 0x22, 0xb2, 0xf7, 0xc7, 0xa4, 0x25, 0xbd, 0x83, 0x55, - 0xff, 0x37, 0x6f, 0x22, 0x03, 0xc1, 0x44, 0x66, 0x95, 0xfa, 0xd3, 0xba, 0x86, 0x97, 0xa1, 0xed, - 0x60, 0x6f, 0xf1, 0xcd, 0x60, 0x87, 0x5b, 0xda, 0x9a, 0xa3, 0x11, 0x30, 0x66, 0x54, 0xf2, 0xcc, - 0xfb, 0x85, 0x48, 0xbd, 0x7e, 0x21, 0xcf, 0x91, 0x92, 0xf5, 0x88, 0x1e, 0xb3, 0x11, 0x2d, 0xea, - 0xbc, 0x07, 0x10, 0xb5, 0x14, 0xfd, 0x77, 0x17, 0x98, 0x96, 0x66, 0x61, 0x67, 0x3d, 0xec, 0x89, - 0x91, 0x57, 0xf9, 0x44, 0xe2, 0xca, 0x67, 0xd7, 0xb5, 0x1d, 0x4c, 0x0a, 0x2b, 0xbb, 0xdf, 0x98, - 0x8b, 0xd6, 0xbe, 0xf4, 0xa0, 0xff, 0xcd, 0x8f, 0xba, 0xff, 0xed, 0x57, 0xc7, 0xf4, 0x9b, 0xe1, - 0x6b, 0x73, 0x20, 0x95, 0x77, 0x9d, 0x47, 0x74, 0xf7, 0xfb, 0x03, 0x61, 0x3f, 0x17, 0xd6, 0x9f, - 0x45, 0x5e, 0x87, 0x3e, 0xa6, 0xde, 0x37, 0xa1, 0x96, 0x88, 0xf9, 0xd3, 0x44, 0xd5, 0x2d, 0x7d, - 0x1d, 0x79, 0x9b, 0xe4, 0x3b, 0x58, 0x3e, 0x94, 0x39, 0xb8, 0x69, 0x8e, 0x68, 0xff, 0x14, 0xea, - 0x19, 0xfc, 0x77, 0xaf, 0xe3, 0xc9, 0x71, 0xd1, 0xe1, 0xc8, 0xf6, 0x3a, 0x11, 0xe5, 0x8c, 0x4a, - 0x5f, 0xd0, 0xcb, 0x85, 0xdd, 0xce, 0xa9, 0xd8, 0x62, 0x5d, 0x09, 0x93, 0xd9, 0x54, 0x62, 0x57, - 0x5e, 0xc6, 0x14, 0x9b, 0x3e, 0x60, 0xdf, 0x0e, 0xbb, 0x0a, 0x96, 0x0e, 0x8c, 0x18, 0x7a, 0xb5, - 0xf0, 0x76, 0x14, 0xad, 0xf6, 0x80, 0xf5, 0xc2, 0x64, 0xf2, 0x16, 0xdb, 0xac, 0x8a, 0x2d, 0x38, - 0x7d, 0x89, 0x7f, 0x4b, 0x82, 0x02, 0xdd, 0x82, 0x44, 0x6f, 0xc9, 0x24, 0xb8, 0x2b, 0xdc, 0xe1, - 0x5d, 0x08, 0xfd, 0xf7, 0x24, 0x6b, 0x0e, 0x9c, 0xab, 0x61, 0x2e, 0x91, 0xab, 0x21, 0x7f, 0x8e, - 0x53, 0xa0, 0x1d, 0xd1, 0x3a, 0xa6, 0x3c, 0x9d, 0x4c, 0xd2, 0xc2, 0xfa, 0x32, 0x94, 0x3e, 0xde, - 0xcf, 0xcb, 0xc3, 0x0c, 0x2d, 0xfa, 0x9c, 0xde, 0xde, 0xc2, 0x0e, 0x7a, 0x77, 0xf6, 0x87, 0x07, - 0x75, 0xb9, 0x0a, 0x33, 0x17, 0x09, 0xdb, 0xab, 0xda, 0x25, 0x73, 0xd7, 0x61, 0x2b, 0x17, 0x37, - 0xc6, 0xae, 0x7b, 0xd0, 0x7a, 0xce, 0xd3, 0x3f, 0x54, 0xee, 0x7f, 0x57, 0xc6, 0x74, 0xc1, 0x9f, - 0x3a, 0x70, 0x15, 0x88, 0x91, 0x15, 0x4e, 0x92, 0x4f, 0x42, 0x61, 0x4f, 0xc7, 0x17, 0x2b, 0x6d, - 0x66, 0xdd, 0xb2, 0x37, 0xf4, 0x7b, 0xc2, 0xfb, 0xb6, 0x61, 0xb8, 0x19, 0x2f, 0xe9, 0x6a, 0xa1, - 0xd8, 0xee, 0xed, 0x40, 0xb6, 0xc6, 0x70, 0xa6, 0x98, 0xbf, 0x52, 0xb2, 0x9c, 0x40, 0x11, 0xa3, - 0x0c, 0x67, 0x3e, 0x94, 0x47, 0xec, 0x89, 0x15, 0x2a, 0x80, 0x11, 0xdf, 0x36, 0x29, 0x16, 0x5f, - 0x62, 0x40, 0xd1, 0xe9, 0x4b, 0xfe, 0x75, 0x12, 0x4c, 0xd5, 0xb1, 0xb3, 0xa4, 0xe3, 0x4e, 0xdb, - 0x46, 0xd6, 0xc1, 0x4d, 0xa3, 0x9b, 0xa1, 0xb0, 0x49, 0x88, 0x0d, 0x3a, 0xb7, 0xc0, 0xb2, 0xa1, - 0xd7, 0x66, 0x45, 0x77, 0x84, 0xd9, 0xea, 0x9b, 0xc7, 0xed, 0x48, 0x60, 0x12, 0xf3, 0xe8, 0x8d, - 0x2f, 0x39, 0x7d, 0x94, 0xde, 0x2e, 0xc1, 0x0c, 0xbb, 0x83, 0xae, 0xd4, 0xd1, 0xb7, 0x0c, 0xb4, - 0x3b, 0x82, 0x16, 0x22, 0xdf, 0x02, 0x79, 0xcd, 0xa5, 0xc6, 0xb6, 0x5e, 0x51, 0xdf, 0xce, 0x93, - 0x94, 0xa7, 0xd2, 0x8c, 0x09, 0xc2, 0x48, 0x06, 0x8a, 0xed, 0xf1, 0x3c, 0xc6, 0x30, 0x92, 0x03, - 0x0b, 0x4f, 0x1f, 0xb1, 0xaf, 0x48, 0x70, 0x9c, 0x31, 0x70, 0x16, 0x5b, 0x8e, 0xde, 0xd2, 0x3a, - 0x14, 0xb9, 0x17, 0x64, 0x46, 0x01, 0xdd, 0x0a, 0xcc, 0xee, 0x85, 0xc9, 0x32, 0x08, 0xcf, 0xf4, - 0x85, 0x90, 0x63, 0x40, 0xe5, 0x7f, 0x4c, 0x10, 0x8e, 0x8f, 0x93, 0x2a, 0x47, 0x73, 0x8c, 0xe1, - 0xf8, 0x84, 0x99, 0x48, 0x1f, 0xe2, 0x97, 0xb2, 0xd0, 0x3c, 0x41, 0xf7, 0xf9, 0x05, 0x61, 0x6c, - 0x37, 0x60, 0x9a, 0x60, 0x49, 0x7f, 0x64, 0xcb, 0x10, 0x31, 0x4a, 0xec, 0xf7, 0x3b, 0xec, 0xda, - 0x2b, 0xff, 0x5f, 0x35, 0x4c, 0x07, 0x9d, 0x03, 0x08, 0x3e, 0x85, 0x3b, 0xe9, 0x4c, 0x54, 0x27, - 0x9d, 0x15, 0xeb, 0xa4, 0xdf, 0x2c, 0x1c, 0x2c, 0xa5, 0x3f, 0xdb, 0x07, 0x57, 0x0f, 0xb1, 0x30, - 0x19, 0x83, 0x4b, 0x4f, 0x5f, 0x2f, 0x5e, 0x95, 0xeb, 0xbd, 0x6c, 0xfc, 0x63, 0x23, 0x99, 0x4f, - 0x85, 0xfb, 0x03, 0xa9, 0xa7, 0x3f, 0x38, 0x80, 0x25, 0x7d, 0x03, 0x1c, 0xa5, 0x45, 0x94, 0x7d, - 0xb6, 0xf2, 0x34, 0x14, 0x44, 0x4f, 0x32, 0xfa, 0xf8, 0x10, 0x4a, 0x30, 0xe8, 0x26, 0xf4, 0xb8, - 0x4e, 0x2e, 0x99, 0xb1, 0x9b, 0x54, 0x41, 0x0e, 0xef, 0x02, 0xf5, 0x6f, 0xe6, 0xa8, 0xb5, 0xbb, - 0x41, 0x6e, 0x26, 0x43, 0x7f, 0x91, 0x1b, 0xc5, 0x88, 0x70, 0x0f, 0xe4, 0x88, 0x8b, 0xbb, 0x14, - 0xb9, 0xa4, 0x11, 0x14, 0x19, 0x5c, 0x1b, 0x87, 0x1f, 0x74, 0x56, 0x8e, 0xa8, 0xe4, 0x4f, 0xf9, - 0x46, 0x38, 0x7a, 0x5e, 0x6b, 0x5d, 0xd8, 0xb2, 0xcc, 0x5d, 0x72, 0x87, 0x93, 0xc9, 0x2e, 0x83, - 0x22, 0x97, 0xea, 0xf1, 0x1f, 0xe4, 0x5b, 0x3d, 0xd3, 0x21, 0x3f, 0xc8, 0x74, 0x58, 0x39, 0xc2, - 0x8c, 0x07, 0xf9, 0xf1, 0x7e, 0xa7, 0x53, 0x88, 0xed, 0x74, 0x56, 0x8e, 0x78, 0xdd, 0x8e, 0xbc, - 0x08, 0x93, 0x6d, 0x7d, 0x8f, 0x6c, 0x55, 0x93, 0x59, 0xd7, 0xa0, 0xa3, 0xcb, 0x8b, 0xfa, 0x1e, - 0xdd, 0xd8, 0x5e, 0x39, 0xa2, 0xfa, 0x7f, 0xca, 0xcb, 0x30, 0x45, 0xb6, 0x05, 0x08, 0x99, 0xc9, - 0x44, 0xc7, 0x92, 0x57, 0x8e, 0xa8, 0xc1, 0xbf, 0xae, 0xf5, 0x91, 0x23, 0x67, 0x3f, 0xee, 0xf6, - 0xb6, 0xdb, 0x33, 0x89, 0xb6, 0xdb, 0x5d, 0x59, 0xd0, 0x0d, 0xf7, 0x93, 0x90, 0x6f, 0x11, 0x09, - 0x67, 0x99, 0x84, 0xe9, 0xab, 0x7c, 0x27, 0xe4, 0x76, 0x34, 0xcb, 0x9b, 0x3c, 0x5f, 0x3f, 0x98, - 0xee, 0x9a, 0x66, 0x5d, 0x70, 0x11, 0x74, 0xff, 0x5a, 0x98, 0x80, 0x3c, 0x11, 0x9c, 0xff, 0x80, - 0xde, 0x96, 0xa3, 0x66, 0x48, 0xd9, 0x34, 0xdc, 0x61, 0xbf, 0x61, 0x7a, 0x07, 0x64, 0x7e, 0x2f, - 0x33, 0x1a, 0x0b, 0xb2, 0xef, 0xed, 0xdc, 0x52, 0xe4, 0xed, 0xdc, 0x3d, 0xd7, 0xc4, 0xe6, 0x7a, - 0xaf, 0x89, 0x0d, 0x96, 0x0f, 0xf2, 0x83, 0x1d, 0x55, 0xfe, 0x74, 0x08, 0xd3, 0xa5, 0x57, 0x10, - 0xd1, 0x33, 0xf0, 0x8e, 0x6e, 0x84, 0xea, 0xec, 0xbd, 0x26, 0xec, 0x94, 0x92, 0x1a, 0x35, 0x03, - 0xd8, 0x4b, 0xbf, 0x6f, 0xfa, 0x8d, 0x1c, 0x9c, 0xa2, 0x97, 0x11, 0xef, 0xe1, 0x86, 0xc9, 0xdf, - 0x9a, 0x88, 0xfe, 0x68, 0x24, 0x4a, 0xd3, 0x67, 0xc0, 0x91, 0xfa, 0x0e, 0x38, 0xfb, 0x0e, 0x29, - 0xe7, 0x06, 0x1c, 0x52, 0xce, 0x27, 0x5b, 0x39, 0xfc, 0x50, 0x58, 0x7f, 0xd6, 0x79, 0xfd, 0xb9, - 0x23, 0x02, 0xa0, 0x7e, 0x72, 0x19, 0x89, 0x7d, 0xf3, 0x4e, 0x5f, 0x53, 0xea, 0x9c, 0xa6, 0xdc, - 0x3d, 0x3c, 0x23, 0xe9, 0x6b, 0xcb, 0xef, 0xe6, 0xe0, 0xb2, 0x80, 0x99, 0x2a, 0xbe, 0xc8, 0x14, - 0xe5, 0xf3, 0x23, 0x51, 0x94, 0xe4, 0x31, 0x10, 0xd2, 0xd6, 0x98, 0x3f, 0x16, 0x3e, 0x3b, 0xd4, - 0x0b, 0x94, 0x2f, 0x9b, 0x08, 0x65, 0x39, 0x09, 0x05, 0xda, 0xc3, 0x30, 0x68, 0xd8, 0x5b, 0xc2, - 0xee, 0x46, 0xec, 0xc4, 0x91, 0x28, 0x6f, 0x63, 0xd0, 0x1f, 0xb6, 0xae, 0xd1, 0xd8, 0xb5, 0x8c, - 0x8a, 0xe1, 0x98, 0xe8, 0xe7, 0x46, 0xa2, 0x38, 0xbe, 0x37, 0x9c, 0x34, 0x8c, 0x37, 0xdc, 0x50, - 0xab, 0x1c, 0x5e, 0x0d, 0x0e, 0x65, 0x95, 0x23, 0xa2, 0xf0, 0xf4, 0xf1, 0x7b, 0x87, 0x04, 0x27, - 0xd9, 0x64, 0x6b, 0x81, 0xb7, 0x10, 0xd1, 0xfd, 0xa3, 0x00, 0xf2, 0xb8, 0x67, 0x26, 0xb1, 0x7b, - 0xb5, 0xc8, 0x0b, 0x7f, 0x52, 0x2a, 0xf6, 0x7e, 0x07, 0x6e, 0x3a, 0xd8, 0xc3, 0xe1, 0x48, 0x90, - 0x12, 0xbb, 0xd6, 0x21, 0x01, 0x1b, 0xe9, 0x63, 0xf6, 0x62, 0x09, 0x0a, 0xec, 0x12, 0xfa, 0x8d, - 0x54, 0x1c, 0x26, 0xf8, 0x28, 0xcf, 0x02, 0x3b, 0x72, 0x89, 0xaf, 0x6a, 0x4f, 0x6f, 0x2f, 0xee, - 0x90, 0xee, 0x62, 0xff, 0x6e, 0x16, 0xa6, 0xeb, 0xd8, 0x29, 0x6b, 0x96, 0xa5, 0x6b, 0x5b, 0xa3, - 0xf2, 0xf8, 0x16, 0xf5, 0x1e, 0x46, 0xdf, 0xcb, 0x88, 0x9e, 0xa7, 0xf1, 0x17, 0xc2, 0x3d, 0x56, - 0x23, 0x62, 0x09, 0x8a, 0x5d, 0x82, 0x3f, 0x88, 0xda, 0x18, 0x3c, 0xb6, 0xb3, 0x30, 0xe1, 0x9d, - 0xc5, 0xbb, 0x99, 0x3b, 0x9f, 0xb9, 0xed, 0xec, 0x78, 0xc7, 0x60, 0xc8, 0xf3, 0xfe, 0x33, 0x60, - 0xe8, 0x95, 0x09, 0x1d, 0xe5, 0xe3, 0x0f, 0x12, 0x26, 0x6b, 0x63, 0x49, 0xdc, 0xe1, 0x0f, 0xeb, - 0xe8, 0xe0, 0x6f, 0x4f, 0xb0, 0xe5, 0xc8, 0x55, 0xcd, 0xc1, 0x0f, 0xa2, 0x2f, 0x48, 0x30, 0x51, - 0xc7, 0x8e, 0x3b, 0xde, 0xba, 0xec, 0x1f, 0x58, 0xc3, 0xe5, 0xd0, 0x8a, 0xc7, 0x14, 0x5b, 0xc3, - 0xb8, 0x17, 0xa6, 0xba, 0x96, 0xd9, 0xc2, 0xb6, 0xcd, 0x56, 0x2f, 0xc2, 0x8e, 0x6a, 0xfd, 0x46, - 0x7f, 0xc2, 0xda, 0xfc, 0xba, 0xf7, 0x8f, 0x1a, 0xfc, 0x9e, 0xd4, 0x0c, 0xa0, 0x94, 0x58, 0x05, - 0xc7, 0x6d, 0x06, 0xc4, 0x15, 0x9e, 0x3e, 0xd0, 0x9f, 0x95, 0x60, 0xa6, 0x8e, 0x1d, 0x5f, 0x8a, - 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, 0xa0, 0x94, 0x0e, 0x06, 0xa5, 0xf8, 0xd5, 0x80, 0xbc, 0x34, - 0x7d, 0x62, 0x63, 0xbc, 0x1a, 0x50, 0x8c, 0x83, 0x31, 0x1c, 0x5f, 0x7b, 0x34, 0x4c, 0x11, 0x5e, - 0x48, 0x83, 0xfd, 0xc5, 0x5c, 0xd0, 0x78, 0xbf, 0x98, 0x52, 0xe3, 0xbd, 0x0b, 0xf2, 0x3b, 0x9a, - 0x75, 0xc1, 0x26, 0x0d, 0x77, 0x5a, 0xc4, 0x6c, 0x5f, 0x73, 0xb3, 0xab, 0xf4, 0xaf, 0xfe, 0x7e, - 0x9a, 0xf9, 0x64, 0x7e, 0x9a, 0x6f, 0xc8, 0x26, 0x1a, 0x09, 0xe9, 0xdc, 0x61, 0x84, 0x4d, 0x3e, - 0xc1, 0xb8, 0x19, 0x53, 0x76, 0xfa, 0xca, 0xf1, 0x02, 0x09, 0x26, 0xdd, 0x71, 0x9b, 0xd8, 0xe3, - 0xe7, 0x0e, 0xae, 0x0e, 0xfd, 0x0d, 0xfd, 0x84, 0x3d, 0xb0, 0x27, 0x91, 0xd1, 0x99, 0xf7, 0x09, - 0x7a, 0xe0, 0xb8, 0xc2, 0xd3, 0xc7, 0xe3, 0x5d, 0x14, 0x0f, 0xd2, 0x1e, 0xd0, 0x1b, 0x25, 0x90, - 0x96, 0xb1, 0x33, 0x6e, 0x2b, 0xf2, 0xed, 0xc2, 0x21, 0x8e, 0x38, 0x81, 0x11, 0x9e, 0xe7, 0x97, - 0xf1, 0x68, 0x1a, 0x90, 0x58, 0x6c, 0x23, 0x21, 0x06, 0xd2, 0x47, 0xed, 0x7d, 0x14, 0x35, 0xba, - 0xb9, 0xf0, 0xb3, 0x23, 0xe8, 0x55, 0xc7, 0xbb, 0xf0, 0xe1, 0x09, 0x90, 0xd0, 0x38, 0xac, 0xf6, - 0xd6, 0xaf, 0xf0, 0xb1, 0x5c, 0xc5, 0x07, 0x6e, 0x63, 0xdf, 0xc6, 0xad, 0x0b, 0xb8, 0x8d, 0x7e, - 0xea, 0xe0, 0xd0, 0x9d, 0x82, 0x89, 0x16, 0xa5, 0x46, 0xc0, 0x9b, 0x54, 0xbd, 0xd7, 0x04, 0xf7, - 0x4a, 0xf3, 0x1d, 0x11, 0xfd, 0x7d, 0x8c, 0xf7, 0x4a, 0x0b, 0x14, 0x3f, 0x06, 0xb3, 0x85, 0xce, - 0x32, 0x2a, 0x2d, 0xd3, 0x40, 0xff, 0xe9, 0xe0, 0xb0, 0x5c, 0x05, 0x53, 0x7a, 0xcb, 0x34, 0x48, - 0x18, 0x0a, 0xef, 0x10, 0x90, 0x9f, 0xe0, 0x7d, 0x55, 0x76, 0xcc, 0x07, 0x74, 0xb6, 0x6b, 0x1e, - 0x24, 0x0c, 0x6b, 0x4c, 0xb8, 0xac, 0x1f, 0x96, 0x31, 0xd1, 0xa7, 0xec, 0xf4, 0x21, 0xfb, 0x78, - 0xe0, 0xdd, 0x46, 0xbb, 0xc2, 0x47, 0xc4, 0x2a, 0xf0, 0x30, 0xc3, 0x59, 0xb8, 0x16, 0x87, 0x32, - 0x9c, 0xc5, 0x30, 0x30, 0x86, 0x1b, 0x2b, 0x02, 0x1c, 0x53, 0x5f, 0x03, 0x3e, 0x00, 0x3a, 0xa3, - 0x33, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x4c, 0xc4, 0x0f, 0xb2, 0x10, 0x99, 0xcc, 0xe2, 0x41, 0xff, - 0x79, 0x14, 0xe0, 0xdc, 0x31, 0x8c, 0xbf, 0x02, 0xf5, 0x56, 0x48, 0x70, 0x23, 0xf6, 0x3e, 0x09, - 0xba, 0x54, 0xc6, 0x78, 0x57, 0xbc, 0x48, 0xf9, 0xe9, 0x03, 0xf8, 0x7c, 0x09, 0xe6, 0x88, 0x8f, - 0x40, 0x07, 0x6b, 0x16, 0xed, 0x28, 0x47, 0xe2, 0x28, 0xff, 0x2e, 0xe1, 0x00, 0x3f, 0xbc, 0x1c, - 0x02, 0x3e, 0x46, 0x02, 0x85, 0x58, 0x74, 0x1f, 0x41, 0x16, 0xc6, 0xb2, 0x8d, 0x52, 0xf4, 0x59, - 0x60, 0x2a, 0x3e, 0x1a, 0x3c, 0x12, 0x7a, 0xe4, 0xf2, 0xc2, 0xf0, 0x1a, 0xdb, 0x98, 0x3d, 0x72, - 0x45, 0x98, 0x48, 0x1f, 0x93, 0x37, 0xde, 0xc2, 0x16, 0x9c, 0x1b, 0xe4, 0xc2, 0xf8, 0x57, 0xe7, - 0xfc, 0x13, 0x6d, 0x9f, 0x1d, 0x89, 0x07, 0xe6, 0x01, 0x02, 0xe2, 0xcb, 0x90, 0xb3, 0xcc, 0x8b, - 0x74, 0x69, 0x6b, 0x56, 0x25, 0xcf, 0xf4, 0x7a, 0xca, 0xce, 0xee, 0x8e, 0x41, 0x4f, 0x86, 0xce, - 0xaa, 0xde, 0xab, 0x7c, 0x1d, 0xcc, 0x5e, 0xd4, 0x9d, 0xed, 0x15, 0xac, 0xb5, 0xb1, 0xa5, 0x9a, - 0x17, 0x89, 0xc7, 0xdc, 0xa4, 0xca, 0x27, 0xf2, 0xfe, 0x2b, 0x02, 0xf6, 0x25, 0xb9, 0x45, 0x7e, - 0x2c, 0xc7, 0xdf, 0x92, 0x58, 0x9e, 0xd1, 0x5c, 0xa5, 0xaf, 0x30, 0xef, 0x97, 0x60, 0x4a, 0x35, - 0x2f, 0x32, 0x25, 0xf9, 0xbf, 0x0e, 0x57, 0x47, 0x12, 0x4f, 0xf4, 0x88, 0xe4, 0x7c, 0xf6, 0xc7, - 0x3e, 0xd1, 0x8b, 0x2d, 0x7e, 0x2c, 0x27, 0x97, 0x66, 0x54, 0xf3, 0x62, 0x1d, 0x3b, 0xb4, 0x45, - 0xa0, 0xe6, 0x88, 0x9c, 0xac, 0x75, 0x9b, 0x12, 0x64, 0xf3, 0x70, 0xff, 0x3d, 0xe9, 0x2e, 0x82, - 0x2f, 0x20, 0x9f, 0xc5, 0x71, 0xef, 0x22, 0x0c, 0xe4, 0x60, 0x0c, 0x31, 0x52, 0x24, 0x98, 0x56, - 0xcd, 0x8b, 0xee, 0xd0, 0xb0, 0xa4, 0x77, 0x3a, 0xa3, 0x19, 0x21, 0x93, 0x1a, 0xff, 0x9e, 0x18, - 0x3c, 0x2e, 0xc6, 0x6e, 0xfc, 0x0f, 0x60, 0x20, 0x7d, 0x18, 0x9e, 0x43, 0x1b, 0x8b, 0x37, 0x42, - 0x1b, 0xa3, 0xc1, 0x61, 0xd8, 0x06, 0xe1, 0xb3, 0x71, 0x68, 0x0d, 0x22, 0x8a, 0x83, 0xb1, 0xec, - 0x9c, 0xcc, 0x95, 0xc9, 0x30, 0x3f, 0xda, 0x36, 0xf1, 0x9e, 0x64, 0xae, 0x89, 0x6c, 0xd8, 0xe5, - 0x18, 0x19, 0x09, 0x1a, 0x09, 0x5c, 0x10, 0x05, 0x78, 0x48, 0x1f, 0x8f, 0x8f, 0x48, 0x30, 0x43, - 0x59, 0x78, 0x84, 0x58, 0x01, 0x43, 0x35, 0xaa, 0x70, 0x0d, 0x0e, 0xa7, 0x51, 0xc5, 0x70, 0x30, - 0x96, 0x5b, 0x41, 0x5d, 0x3b, 0x6e, 0x88, 0xe3, 0xe3, 0x51, 0x08, 0x0e, 0x6d, 0x8c, 0x8d, 0xf0, - 0x08, 0xf9, 0x30, 0xc6, 0xd8, 0x21, 0x1d, 0x23, 0x7f, 0x8e, 0xdf, 0x8a, 0x46, 0x89, 0xc1, 0x01, - 0x9a, 0xc2, 0x08, 0x61, 0x18, 0xb2, 0x29, 0x1c, 0x12, 0x12, 0x5f, 0x95, 0x00, 0x28, 0x03, 0x6b, - 0xe6, 0x1e, 0xb9, 0xcc, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x34, 0xc0, 0xad, 0x3e, 0x61, - 0x08, 0x97, 0xa4, 0x2b, 0x81, 0x21, 0x29, 0xbb, 0x95, 0x1c, 0xfb, 0x4a, 0x60, 0x7c, 0xf9, 0xe9, - 0x63, 0xfc, 0x65, 0x6a, 0xcd, 0x05, 0x07, 0x4c, 0x7f, 0x6d, 0x24, 0x28, 0x87, 0x66, 0xff, 0x12, - 0x3f, 0xfb, 0x3f, 0x00, 0xb6, 0xc3, 0xda, 0x88, 0x83, 0x0e, 0x8e, 0xa6, 0x6f, 0x23, 0x1e, 0xde, - 0x01, 0xd1, 0x9f, 0xcd, 0xc1, 0x51, 0xd6, 0x89, 0xfc, 0x30, 0x40, 0x9c, 0xf0, 0x1c, 0x1e, 0xd7, - 0x49, 0x0e, 0x40, 0x79, 0x54, 0x0b, 0x52, 0x49, 0x96, 0x32, 0x05, 0xd8, 0x1b, 0xcb, 0xea, 0x46, - 0x41, 0x79, 0xb0, 0xab, 0x19, 0x6d, 0xf1, 0x70, 0xbf, 0x03, 0x80, 0xf7, 0xd6, 0x1a, 0x25, 0x7e, - 0xad, 0xb1, 0xcf, 0xca, 0x64, 0xe2, 0x9d, 0x6b, 0x22, 0x32, 0xca, 0xee, 0xd8, 0x77, 0xae, 0xa3, - 0xcb, 0x4e, 0x1f, 0xa5, 0xf7, 0x48, 0x90, 0xab, 0x9b, 0x96, 0x83, 0x9e, 0x9b, 0xa4, 0x75, 0x52, - 0xc9, 0x07, 0x20, 0x79, 0xef, 0x72, 0x99, 0xbb, 0xa5, 0xf9, 0xe6, 0xf8, 0xa3, 0xce, 0x9a, 0xa3, - 0x11, 0xaf, 0x6e, 0xb7, 0xfc, 0xd0, 0x75, 0xcd, 0x49, 0xe3, 0xe9, 0x50, 0xf9, 0xd5, 0xa3, 0x0f, - 0x60, 0xa4, 0x16, 0x4f, 0x27, 0xb2, 0xe4, 0xf4, 0x71, 0x7b, 0xf8, 0x28, 0xf3, 0x6d, 0x5d, 0xd2, - 0x3b, 0x18, 0x3d, 0x97, 0xba, 0x8c, 0x54, 0xb5, 0x1d, 0x2c, 0x7e, 0x24, 0x26, 0xd6, 0xb5, 0x95, - 0xc4, 0x97, 0x95, 0x82, 0xf8, 0xb2, 0x49, 0x1b, 0x14, 0x3d, 0x80, 0x4e, 0x59, 0x1a, 0x77, 0x83, - 0x8a, 0x29, 0x7b, 0x2c, 0x71, 0x3a, 0x8f, 0xd5, 0xb1, 0x43, 0x8d, 0xca, 0x9a, 0x77, 0x03, 0xcb, - 0x4f, 0x8f, 0x24, 0x62, 0xa7, 0x7f, 0xc1, 0x8b, 0xd4, 0x73, 0xc1, 0xcb, 0xfb, 0xc3, 0xe0, 0xac, - 0xf1, 0xe0, 0x3c, 0x29, 0x5a, 0x40, 0x3c, 0x93, 0x23, 0x81, 0xe9, 0xed, 0x3e, 0x4c, 0xeb, 0x1c, - 0x4c, 0x77, 0x0e, 0xc9, 0x45, 0xfa, 0x80, 0xbd, 0x28, 0x0f, 0x47, 0xe9, 0xa4, 0xbf, 0x64, 0xb4, - 0x59, 0x84, 0xd5, 0xb7, 0x64, 0x0f, 0x79, 0xb3, 0x6d, 0x7f, 0x08, 0x56, 0x2e, 0x96, 0x73, 0xbe, - 0xf7, 0x76, 0xfc, 0x05, 0x1a, 0xce, 0xd5, 0xed, 0x44, 0xc9, 0x4e, 0x9b, 0xf8, 0x0d, 0xf9, 0xfe, - 0x7f, 0xfc, 0x5d, 0x46, 0x13, 0xe2, 0x77, 0x19, 0xfd, 0x49, 0xb2, 0x75, 0x3b, 0x52, 0x74, 0x8f, - 0xc0, 0x53, 0xb6, 0x9d, 0x12, 0xac, 0xe8, 0x09, 0x70, 0xf7, 0xa3, 0xe1, 0x4e, 0x16, 0x44, 0x10, - 0x19, 0xd2, 0x9d, 0x8c, 0x10, 0x38, 0x4c, 0x77, 0xb2, 0x41, 0x0c, 0x8c, 0xe1, 0x56, 0xfb, 0x3c, - 0xdb, 0xcd, 0x27, 0xed, 0x06, 0xfd, 0x55, 0x36, 0xf5, 0x51, 0xfa, 0xfb, 0x99, 0x44, 0xfe, 0xcf, - 0x84, 0xaf, 0xf8, 0x61, 0x3a, 0x89, 0x47, 0x73, 0x1c, 0xb9, 0x31, 0xac, 0x1b, 0x65, 0x89, 0x2f, - 0xfa, 0x39, 0xbd, 0xed, 0x6c, 0x8f, 0xe8, 0x44, 0xc7, 0x45, 0x97, 0x96, 0x77, 0x3d, 0x32, 0x79, - 0x41, 0xff, 0x92, 0x49, 0x14, 0x42, 0xca, 0x17, 0x09, 0x61, 0x2b, 0x42, 0xc4, 0x09, 0x02, 0x3f, - 0xc5, 0xd2, 0x1b, 0xa3, 0x46, 0x9f, 0xd5, 0xdb, 0xd8, 0x7c, 0x04, 0x6a, 0x34, 0xe1, 0x6b, 0x74, - 0x1a, 0x1d, 0x47, 0xee, 0x47, 0x54, 0xa3, 0x7d, 0x91, 0x8c, 0x48, 0xa3, 0x63, 0xe9, 0xa5, 0x2f, - 0xe3, 0x57, 0xce, 0xb0, 0x89, 0xd4, 0xaa, 0x6e, 0x5c, 0x40, 0xdf, 0x29, 0x78, 0x17, 0x33, 0x9f, - 0xd3, 0x9d, 0x6d, 0x16, 0x0b, 0xe6, 0x77, 0x85, 0xef, 0x46, 0x19, 0x22, 0xde, 0x0b, 0x1f, 0x4e, - 0x2a, 0xbf, 0x2f, 0x9c, 0x54, 0x09, 0x66, 0x75, 0xc3, 0xc1, 0x96, 0xa1, 0x75, 0x96, 0x3a, 0xda, - 0x96, 0x7d, 0x6a, 0xa2, 0xef, 0xe5, 0x75, 0x95, 0x50, 0x1e, 0x95, 0xff, 0x23, 0x7c, 0x7d, 0xe5, - 0x24, 0x7f, 0x7d, 0x65, 0x44, 0xf4, 0xab, 0xa9, 0xe8, 0xe8, 0x57, 0x7e, 0x74, 0x2b, 0x18, 0x1c, - 0x1c, 0x5b, 0xd4, 0x36, 0x4e, 0x18, 0xee, 0xef, 0x66, 0xc1, 0x28, 0x6c, 0x7e, 0xe8, 0xc7, 0xd7, - 0x48, 0x89, 0x56, 0xf7, 0x5c, 0x45, 0x98, 0xef, 0x55, 0x82, 0xc4, 0x16, 0x6a, 0xb8, 0xf2, 0x52, - 0x4f, 0xe5, 0x7d, 0x93, 0x27, 0x27, 0x60, 0xf2, 0x84, 0x95, 0x2a, 0x2f, 0xa6, 0x54, 0x49, 0x16, - 0x0b, 0x45, 0x6a, 0x3b, 0x86, 0xd3, 0x48, 0x79, 0x38, 0xe6, 0x45, 0xbb, 0xed, 0x76, 0xb1, 0x66, - 0x69, 0x46, 0x0b, 0xa3, 0x8f, 0x67, 0x47, 0x61, 0xf6, 0x2e, 0xc1, 0xa4, 0xde, 0x32, 0x8d, 0xba, - 0xfe, 0x0c, 0xef, 0x72, 0xb9, 0xf8, 0x20, 0xeb, 0x44, 0x22, 0x15, 0xf6, 0x87, 0xea, 0xff, 0x2b, - 0x57, 0x60, 0xaa, 0xa5, 0x59, 0x6d, 0x1a, 0x84, 0x2f, 0xdf, 0x73, 0x91, 0x53, 0x24, 0xa1, 0xb2, - 0xf7, 0x8b, 0x1a, 0xfc, 0x2d, 0xd7, 0x78, 0x21, 0x16, 0x7a, 0xa2, 0x79, 0x44, 0x12, 0x5b, 0x0c, - 0x7e, 0xe2, 0x64, 0xee, 0x4a, 0xc7, 0xc2, 0x1d, 0x72, 0x07, 0x3d, 0xed, 0x21, 0xa6, 0xd4, 0x20, - 0x21, 0xe9, 0xf2, 0x00, 0x29, 0x6a, 0x1f, 0x1a, 0xe3, 0x5e, 0x1e, 0x10, 0xe2, 0x22, 0x7d, 0xcd, - 0x7c, 0x67, 0x01, 0x66, 0x69, 0xaf, 0xc6, 0xc4, 0x89, 0x9e, 0x4f, 0xae, 0x90, 0x76, 0xee, 0xc3, - 0x97, 0x50, 0xfd, 0xe0, 0x63, 0x72, 0x11, 0xa4, 0x0b, 0x7e, 0xc0, 0x41, 0xf7, 0x31, 0xe9, 0xbe, - 0xbd, 0xc7, 0xd7, 0x3c, 0xe5, 0x69, 0xdc, 0xfb, 0xf6, 0xf1, 0xc5, 0xa7, 0x8f, 0xcf, 0x2f, 0x49, - 0x20, 0x95, 0xda, 0x6d, 0xd4, 0x3a, 0x38, 0x14, 0xd7, 0xc0, 0xb4, 0xd7, 0x66, 0x82, 0x18, 0x90, - 0xe1, 0xa4, 0xa4, 0x8b, 0xa0, 0xbe, 0x6c, 0x4a, 0xed, 0xb1, 0xef, 0x2a, 0xc4, 0x94, 0x9d, 0x3e, - 0x28, 0xbf, 0x36, 0xc1, 0x1a, 0xcd, 0x82, 0x69, 0x5e, 0x20, 0x47, 0x65, 0x9e, 0x2b, 0x41, 0x7e, - 0x09, 0x3b, 0xad, 0xed, 0x11, 0xb5, 0x99, 0x5d, 0xab, 0xe3, 0xb5, 0x99, 0x7d, 0xf7, 0xe1, 0x0f, - 0xb6, 0x61, 0x3d, 0xb6, 0xe6, 0x09, 0x4b, 0xe3, 0x8e, 0xee, 0x1c, 0x5b, 0x7a, 0xfa, 0xe0, 0xfc, - 0x8b, 0x04, 0x73, 0xfe, 0x0a, 0x17, 0xc5, 0xe4, 0x45, 0x99, 0x47, 0xda, 0x7a, 0x27, 0xfa, 0x7c, - 0xb2, 0x10, 0x69, 0xbe, 0x4c, 0xf9, 0x9a, 0xa5, 0xbc, 0xb0, 0x98, 0x20, 0x78, 0x9a, 0x18, 0x83, - 0x63, 0x98, 0xc1, 0x4b, 0x30, 0x49, 0x18, 0x5a, 0xd4, 0xf7, 0x88, 0xeb, 0x20, 0xb7, 0xd0, 0xf8, - 0xcc, 0x91, 0x2c, 0x34, 0xde, 0xc9, 0x2f, 0x34, 0x0a, 0x46, 0x3c, 0xf6, 0xd6, 0x19, 0x13, 0xfa, - 0xd2, 0xb8, 0xff, 0x8f, 0x7c, 0x99, 0x31, 0x81, 0x2f, 0xcd, 0x80, 0xf2, 0xd3, 0x47, 0xf4, 0x35, - 0xff, 0x81, 0x75, 0xb6, 0xde, 0x86, 0x2a, 0xfa, 0x7f, 0x8e, 0x41, 0xee, 0xac, 0xfb, 0xf0, 0x3f, - 0x83, 0x1b, 0xb1, 0x5e, 0x36, 0x82, 0xe0, 0x0c, 0x4f, 0x85, 0x9c, 0x4b, 0x9f, 0x4d, 0x5b, 0x6e, - 0x14, 0xdb, 0xdd, 0x75, 0x19, 0x51, 0xc9, 0x7f, 0xf2, 0x49, 0x28, 0xd8, 0xe6, 0xae, 0xd5, 0x72, - 0xcd, 0x67, 0x57, 0x63, 0xd8, 0x5b, 0xd2, 0xa0, 0xa4, 0x1c, 0xe9, 0xf9, 0xd1, 0xb9, 0x8c, 0x86, - 0x2e, 0x48, 0x92, 0xb8, 0x0b, 0x92, 0x12, 0xec, 0x1f, 0x08, 0xf0, 0x96, 0xbe, 0x46, 0xfc, 0x15, - 0xb9, 0x2b, 0xb0, 0x3d, 0x2a, 0xd8, 0x23, 0xc4, 0x72, 0x50, 0x75, 0x48, 0xea, 0xf0, 0xcd, 0x8b, - 0xd6, 0x8f, 0x03, 0x3f, 0x56, 0x87, 0x6f, 0x01, 0x1e, 0xc6, 0x72, 0x4a, 0xbd, 0xc0, 0x9c, 0x54, - 0xef, 0x1f, 0x25, 0xba, 0x39, 0x4e, 0xe9, 0x0f, 0x84, 0xce, 0x08, 0x9d, 0x57, 0x87, 0x46, 0xe7, - 0x90, 0xdc, 0x57, 0x7f, 0x5f, 0x22, 0x91, 0x30, 0x3d, 0x23, 0x47, 0xfc, 0xa2, 0xa3, 0xc4, 0x10, - 0xb9, 0x63, 0x30, 0x17, 0x07, 0x7a, 0x76, 0xf8, 0xd0, 0xe0, 0xbc, 0xe8, 0x42, 0xfc, 0x8f, 0x3b, - 0x34, 0xb8, 0x28, 0x23, 0xe9, 0x03, 0xf9, 0x7a, 0x7a, 0xb1, 0x58, 0xa9, 0xe5, 0xe8, 0x7b, 0x23, - 0x6e, 0x69, 0xfc, 0xf0, 0x92, 0x30, 0x1a, 0xf0, 0x3e, 0x09, 0x51, 0x0e, 0xc7, 0x1d, 0x0d, 0x58, - 0x8c, 0x8d, 0xf4, 0x61, 0xfa, 0xdb, 0x82, 0x2b, 0x3d, 0xb6, 0x36, 0xf3, 0x46, 0xb6, 0x1a, 0x80, - 0x0f, 0x8e, 0xd6, 0x19, 0x98, 0x09, 0x4d, 0xfd, 0xbd, 0x0b, 0x6b, 0xb8, 0xb4, 0xa4, 0x07, 0xdd, - 0x7d, 0x91, 0x8d, 0x7c, 0x61, 0x20, 0xc1, 0x82, 0xaf, 0x08, 0x13, 0x63, 0xb9, 0x0f, 0xce, 0x1b, - 0xc3, 0xc6, 0x84, 0xd5, 0xef, 0x86, 0xb1, 0xaa, 0xf1, 0x58, 0xdd, 0x2e, 0x22, 0x26, 0xb1, 0x31, - 0x4d, 0x68, 0xde, 0xf8, 0x0e, 0x1f, 0x2e, 0x95, 0x83, 0xeb, 0xa9, 0x43, 0xf3, 0x91, 0x3e, 0x62, - 0xbf, 0x4e, 0xbb, 0xc3, 0x3a, 0x35, 0xd9, 0x47, 0xd3, 0x1d, 0xb2, 0xd9, 0x80, 0xc4, 0xcd, 0x06, - 0x12, 0xfa, 0xdb, 0x07, 0x6e, 0xa4, 0x1e, 0x73, 0x83, 0x20, 0xca, 0x8d, 0xd8, 0xdf, 0x7e, 0x20, - 0x07, 0xe9, 0x83, 0xf3, 0x8f, 0x12, 0xc0, 0xb2, 0x65, 0xee, 0x76, 0x6b, 0x56, 0x1b, 0x5b, 0xe8, - 0x6f, 0x82, 0x09, 0xc0, 0x4b, 0x46, 0x30, 0x01, 0x58, 0x07, 0xd8, 0xf2, 0x89, 0x33, 0x0d, 0xbf, - 0x45, 0xcc, 0xdc, 0x0f, 0x98, 0x52, 0x43, 0x34, 0xf8, 0x2b, 0x67, 0x9f, 0xc6, 0x63, 0x1c, 0xd7, - 0x67, 0x05, 0xe4, 0x46, 0x39, 0x01, 0x78, 0x97, 0x8f, 0x75, 0x83, 0xc3, 0xfa, 0x9e, 0x03, 0x70, - 0x92, 0x3e, 0xe6, 0xff, 0x34, 0x01, 0xd3, 0x74, 0xbb, 0x8e, 0xca, 0xf4, 0xef, 0x03, 0xd0, 0x7f, - 0x6d, 0x04, 0xa0, 0x6f, 0xc0, 0x8c, 0x19, 0x50, 0xa7, 0x7d, 0x6a, 0x78, 0x01, 0x26, 0x16, 0xf6, - 0x10, 0x5f, 0x2a, 0x47, 0x06, 0x7d, 0x34, 0x8c, 0xbc, 0xca, 0x23, 0x7f, 0x67, 0x8c, 0xbc, 0x43, - 0x14, 0x47, 0x09, 0xfd, 0xbb, 0x7d, 0xe8, 0x37, 0x38, 0xe8, 0x4b, 0x07, 0x61, 0x65, 0x0c, 0xe1, - 0xf6, 0x25, 0xc8, 0x91, 0xd3, 0x71, 0xbf, 0x91, 0xe2, 0xfc, 0xfe, 0x14, 0x4c, 0x90, 0x26, 0xeb, - 0xcf, 0x3b, 0xbc, 0x57, 0xf7, 0x8b, 0xb6, 0xe9, 0x60, 0xcb, 0xf7, 0x58, 0xf0, 0x5e, 0x5d, 0x1e, - 0x3c, 0xaf, 0x64, 0xfb, 0x54, 0x81, 0x6e, 0x44, 0xfa, 0x09, 0x43, 0x4f, 0x4a, 0xc2, 0x12, 0x1f, - 0xd9, 0x79, 0xb9, 0x61, 0x26, 0x25, 0x03, 0x18, 0x49, 0x1f, 0xf8, 0xbf, 0xc8, 0xc1, 0x29, 0xba, - 0xaa, 0xb4, 0x64, 0x99, 0x3b, 0x3d, 0xb7, 0x5b, 0xe9, 0x07, 0xd7, 0x85, 0xeb, 0x61, 0xce, 0xe1, - 0xfc, 0xb1, 0x99, 0x4e, 0xf4, 0xa4, 0xa2, 0x3f, 0x0d, 0xfb, 0x54, 0x3c, 0x9d, 0x47, 0x72, 0x21, - 0x46, 0x80, 0x51, 0xbc, 0x27, 0x5e, 0xa8, 0x17, 0x64, 0x34, 0xb4, 0x48, 0x25, 0x0d, 0xb5, 0x66, - 0xe9, 0xeb, 0x54, 0x5e, 0x44, 0xa7, 0x3e, 0xe0, 0xeb, 0xd4, 0x4f, 0x71, 0x3a, 0xb5, 0x7c, 0x70, - 0x91, 0xa4, 0xaf, 0x5b, 0xaf, 0xf6, 0x37, 0x86, 0xfc, 0x6d, 0xbb, 0x9d, 0x14, 0x36, 0xeb, 0xc2, - 0xfe, 0x48, 0x39, 0xce, 0x1f, 0x89, 0xbf, 0x8f, 0x22, 0xc1, 0x4c, 0x98, 0xe7, 0x3a, 0x42, 0x97, - 0xe6, 0x20, 0xab, 0x7b, 0xdc, 0x65, 0xf5, 0xf6, 0x50, 0x73, 0xdd, 0xd8, 0x82, 0xc6, 0xb0, 0xb6, - 0x34, 0x07, 0x85, 0x25, 0xbd, 0xe3, 0x60, 0x0b, 0x7d, 0x99, 0xcd, 0x74, 0x5f, 0x9d, 0xe2, 0x00, - 0xb0, 0x08, 0x85, 0x4d, 0x52, 0x1a, 0x33, 0x99, 0x6f, 0x12, 0x6b, 0x3d, 0x94, 0x43, 0x95, 0xfd, - 0x9b, 0x34, 0x3a, 0x5f, 0x0f, 0x99, 0x91, 0x4d, 0x91, 0x13, 0x44, 0xe7, 0x1b, 0xcc, 0xc2, 0x58, - 0x2e, 0xa6, 0x2a, 0xa8, 0x78, 0xc7, 0x1d, 0xe3, 0x2f, 0xa4, 0x87, 0x70, 0x11, 0x24, 0xbd, 0x6d, - 0x93, 0xce, 0x71, 0x4a, 0x75, 0x1f, 0x93, 0xfa, 0x0a, 0xf5, 0x8a, 0x8a, 0xb2, 0x3c, 0x6e, 0x5f, - 0x21, 0x21, 0x2e, 0xd2, 0xc7, 0xec, 0xfb, 0xc4, 0x51, 0xb4, 0xdb, 0xd1, 0x5a, 0xd8, 0xe5, 0x3e, - 0x35, 0xd4, 0x68, 0x4f, 0x96, 0xf3, 0x7a, 0xb2, 0x50, 0x3b, 0xcd, 0x1f, 0xa0, 0x9d, 0x0e, 0xbb, - 0x0c, 0xe9, 0xcb, 0x9c, 0x54, 0xfc, 0xd0, 0x96, 0x21, 0x63, 0xd9, 0x18, 0xc3, 0xb5, 0xa3, 0xde, - 0x41, 0xda, 0xb1, 0xb6, 0xd6, 0x61, 0x37, 0x69, 0x98, 0xb0, 0x46, 0x76, 0x68, 0x76, 0x98, 0x4d, - 0x9a, 0x68, 0x1e, 0xc6, 0x80, 0xd6, 0x1c, 0x43, 0xeb, 0x73, 0x6c, 0x18, 0x4d, 0x79, 0x9f, 0xd4, - 0x36, 0x2d, 0x27, 0xd9, 0x3e, 0xa9, 0xcb, 0x9d, 0x4a, 0xfe, 0x4b, 0x7a, 0xf0, 0x8a, 0x3f, 0x57, - 0x3d, 0xaa, 0xe1, 0x33, 0xc1, 0xc1, 0xab, 0x41, 0x0c, 0xa4, 0x0f, 0xef, 0x5b, 0x0f, 0x69, 0xf0, - 0x1c, 0xb6, 0x39, 0xb2, 0x36, 0x30, 0xb2, 0xa1, 0x73, 0x98, 0xe6, 0x18, 0xcd, 0x43, 0xfa, 0x78, - 0x7d, 0x3b, 0x34, 0x70, 0xbe, 0x79, 0x8c, 0x03, 0xa7, 0xd7, 0x32, 0xf3, 0x43, 0xb6, 0xcc, 0x61, - 0xf7, 0x7f, 0x98, 0xac, 0x47, 0x37, 0x60, 0x0e, 0xb3, 0xff, 0x13, 0xc3, 0x44, 0xfa, 0x88, 0xbf, - 0x45, 0x82, 0x7c, 0x7d, 0xfc, 0xe3, 0xe5, 0xb0, 0x73, 0x11, 0x22, 0xab, 0xfa, 0xc8, 0x86, 0xcb, - 0x61, 0xe6, 0x22, 0x91, 0x2c, 0x8c, 0x21, 0xf0, 0xfe, 0x51, 0x98, 0x21, 0x4b, 0x22, 0xde, 0x36, - 0xeb, 0xb7, 0xd9, 0xa8, 0xf9, 0x86, 0x14, 0xdb, 0xea, 0xbd, 0x30, 0xe9, 0xed, 0xdf, 0xb1, 0x91, - 0x73, 0x5e, 0xac, 0x7d, 0x7a, 0x5c, 0xaa, 0xfe, 0xff, 0x07, 0x72, 0x86, 0x18, 0xf9, 0x5e, 0xed, - 0xb0, 0xce, 0x10, 0x87, 0xba, 0x5f, 0xfb, 0x27, 0xc1, 0x88, 0xfa, 0x9f, 0xd2, 0xc3, 0xbc, 0x77, - 0x1f, 0x37, 0xd7, 0x67, 0x1f, 0xf7, 0xe3, 0x61, 0x2c, 0xeb, 0x3c, 0x96, 0x77, 0x89, 0x8a, 0x70, - 0x84, 0x63, 0xed, 0x7b, 0x7c, 0x38, 0xcf, 0x72, 0x70, 0x2e, 0x1c, 0x88, 0x97, 0x31, 0x1c, 0x7c, - 0xcc, 0x05, 0x63, 0xee, 0x27, 0x52, 0x6c, 0xc7, 0x3d, 0xa7, 0x2a, 0x72, 0xfb, 0x4e, 0x55, 0x70, - 0x2d, 0x3d, 0x7f, 0xc0, 0x96, 0xfe, 0x89, 0xb0, 0x76, 0x34, 0x78, 0xed, 0x78, 0xaa, 0x38, 0x22, - 0xa3, 0x1b, 0x99, 0xdf, 0xeb, 0xab, 0xc7, 0x39, 0x4e, 0x3d, 0xca, 0x07, 0x63, 0x26, 0x7d, 0xfd, - 0xf8, 0x03, 0x6f, 0x42, 0x7b, 0xc8, 0xed, 0x7d, 0xd8, 0xad, 0x62, 0x4e, 0x88, 0x23, 0x1b, 0xb9, - 0x87, 0xd9, 0x2a, 0x1e, 0xc4, 0xc9, 0x18, 0x62, 0xb1, 0xcd, 0xc2, 0x34, 0xe1, 0xe9, 0x9c, 0xde, - 0xde, 0xc2, 0x0e, 0x7a, 0x0d, 0xf5, 0x51, 0xf4, 0x22, 0x5f, 0x8e, 0x28, 0x3c, 0x51, 0xd4, 0x79, - 0xd7, 0xa4, 0x1e, 0x1d, 0x94, 0xc9, 0xf9, 0x10, 0x83, 0xe3, 0x8e, 0xa0, 0x38, 0x90, 0x83, 0xf4, - 0x21, 0xfb, 0x28, 0x75, 0xb7, 0x59, 0xd5, 0x2e, 0x99, 0xbb, 0x0e, 0x7a, 0x68, 0x04, 0x1d, 0xf4, - 0x02, 0x14, 0x3a, 0x84, 0x1a, 0x3b, 0x96, 0x11, 0x3f, 0xdd, 0x61, 0x22, 0xa0, 0xe5, 0xab, 0xec, - 0xcf, 0xa4, 0x67, 0x33, 0x02, 0x39, 0x52, 0x3a, 0xe3, 0x3e, 0x9b, 0x31, 0xa0, 0xfc, 0xb1, 0xdc, - 0xb1, 0x33, 0xe9, 0x96, 0xae, 0xef, 0xe8, 0xce, 0x88, 0x22, 0x38, 0x74, 0x5c, 0x5a, 0x5e, 0x04, - 0x07, 0xf2, 0x92, 0xf4, 0xc4, 0x68, 0x48, 0x2a, 0xee, 0xef, 0xe3, 0x3e, 0x31, 0x1a, 0x5f, 0x7c, - 0xfa, 0x98, 0xfc, 0x0a, 0x6d, 0x59, 0x67, 0xa9, 0xf3, 0x6d, 0x8a, 0x7e, 0xbd, 0x43, 0x37, 0x16, - 0xca, 0xda, 0xe1, 0x35, 0x96, 0xbe, 0xe5, 0xa7, 0x0f, 0xcc, 0x7f, 0xfd, 0x71, 0xc8, 0x2f, 0xe2, - 0xf3, 0xbb, 0x5b, 0xe8, 0x4e, 0x98, 0x6c, 0x58, 0x18, 0x57, 0x8c, 0x4d, 0xd3, 0x95, 0xae, 0xe3, - 0x3e, 0x7b, 0x90, 0xb0, 0x37, 0x17, 0x8f, 0x6d, 0xac, 0xb5, 0x83, 0xf3, 0x67, 0xde, 0x2b, 0x7a, - 0x59, 0x16, 0x72, 0x75, 0x47, 0x73, 0xd0, 0x94, 0x8f, 0x2d, 0x7a, 0x28, 0x8c, 0xc5, 0x9d, 0x3c, - 0x16, 0xd7, 0x73, 0xb2, 0x20, 0x1c, 0xcc, 0xbb, 0xff, 0x47, 0x00, 0x80, 0x60, 0xf2, 0x01, 0xdb, - 0x34, 0xdc, 0x1c, 0xde, 0x11, 0x48, 0xef, 0x1d, 0xbd, 0xca, 0x17, 0xf7, 0xdd, 0x9c, 0xb8, 0x1f, - 0x2b, 0x56, 0xc4, 0x18, 0x56, 0xda, 0xb2, 0x30, 0xe5, 0x8a, 0x76, 0x05, 0x6b, 0x6d, 0x1b, 0xfd, - 0x58, 0xa0, 0xfc, 0x11, 0x62, 0x46, 0x1f, 0x14, 0x0e, 0xc6, 0x49, 0x6b, 0xe5, 0x13, 0x8f, 0xf6, - 0xe8, 0xf0, 0x36, 0xff, 0xb3, 0x7c, 0x30, 0x92, 0x9b, 0x21, 0xa7, 0x1b, 0x9b, 0x26, 0xf3, 0x2f, - 0xbc, 0x32, 0x82, 0xb6, 0xab, 0x13, 0x2a, 0xc9, 0x28, 0x18, 0xa9, 0x33, 0x9e, 0xad, 0xb1, 0x5c, - 0x7a, 0x97, 0x73, 0x4b, 0x47, 0xff, 0xe7, 0x40, 0x61, 0xcb, 0x32, 0xe4, 0xba, 0x9a, 0xb3, 0xcd, - 0x8a, 0x26, 0xcf, 0xae, 0x8d, 0xbc, 0x6b, 0x68, 0x86, 0x69, 0x5c, 0xda, 0xd1, 0x9f, 0xe1, 0xdf, - 0xad, 0xcb, 0xa5, 0xb9, 0x9c, 0x6f, 0x61, 0x03, 0x5b, 0x9a, 0x83, 0xeb, 0x7b, 0x5b, 0x64, 0x8e, - 0x35, 0xa9, 0x86, 0x93, 0x12, 0xeb, 0xbf, 0xcb, 0x71, 0xb4, 0xfe, 0x6f, 0xea, 0x1d, 0x4c, 0x22, - 0x35, 0x31, 0xfd, 0xf7, 0xde, 0x13, 0xe9, 0x7f, 0x9f, 0x22, 0xd2, 0x47, 0xe3, 0x5f, 0xb3, 0x30, - 0x53, 0x77, 0x15, 0xae, 0xbe, 0xbb, 0xb3, 0xa3, 0x59, 0x97, 0xd0, 0xb5, 0x01, 0x2a, 0x21, 0xd5, - 0xcc, 0xf0, 0x7e, 0x29, 0xbf, 0x2f, 0x7c, 0xad, 0x34, 0x6b, 0xda, 0xa1, 0x12, 0x12, 0xb7, 0x83, - 0xc7, 0x43, 0xde, 0x55, 0x6f, 0xcf, 0xe3, 0x32, 0xb6, 0x21, 0xd0, 0x9c, 0x82, 0x11, 0xad, 0x06, - 0xf2, 0x36, 0x86, 0x68, 0x1a, 0x59, 0x38, 0x5a, 0x77, 0xb4, 0xd6, 0x85, 0x65, 0xd3, 0x32, 0x77, - 0x1d, 0xdd, 0xc0, 0x36, 0x7a, 0x54, 0x80, 0x80, 0xa7, 0xff, 0x99, 0x40, 0xff, 0xd1, 0xbf, 0x65, - 0x44, 0x47, 0x51, 0xbf, 0x5b, 0x0d, 0x93, 0x8f, 0x08, 0x50, 0x25, 0x36, 0x2e, 0x8a, 0x50, 0x4c, - 0x5f, 0x68, 0x6f, 0x96, 0xa0, 0xa8, 0x3c, 0xd8, 0x35, 0x2d, 0x67, 0xd5, 0x6c, 0x69, 0x1d, 0xdb, - 0x31, 0x2d, 0x8c, 0x6a, 0xb1, 0x52, 0x73, 0x7b, 0x98, 0xb6, 0xd9, 0x0a, 0x06, 0x47, 0xf6, 0x16, - 0x56, 0x3b, 0x89, 0xd7, 0xf1, 0x8f, 0x0a, 0xef, 0x32, 0x52, 0xa9, 0xf4, 0x72, 0x14, 0xa1, 0xe7, - 0xfd, 0xba, 0xb4, 0x64, 0x87, 0x25, 0xc4, 0x76, 0x1e, 0x85, 0x98, 0x1a, 0xc3, 0x52, 0x79, 0x16, - 0x66, 0xeb, 0xbb, 0xe7, 0x7d, 0x22, 0x76, 0xd8, 0x08, 0x79, 0xad, 0x70, 0x94, 0x0a, 0xa6, 0x78, - 0x61, 0x42, 0x11, 0xf2, 0xbd, 0x0e, 0x66, 0xed, 0x70, 0x36, 0x86, 0x37, 0x9f, 0x28, 0x18, 0x9d, - 0x62, 0x70, 0xa9, 0xe9, 0x0b, 0xf0, 0xbd, 0x59, 0x98, 0xad, 0x75, 0xb1, 0x81, 0xdb, 0xd4, 0x0b, - 0x92, 0x13, 0xe0, 0xcb, 0x12, 0x0a, 0x90, 0x23, 0x14, 0x21, 0xc0, 0xc0, 0x63, 0x79, 0xd1, 0x13, - 0x5e, 0x90, 0x90, 0x48, 0x70, 0x71, 0xa5, 0xa5, 0x2f, 0xb8, 0x2f, 0x65, 0x61, 0x5a, 0xdd, 0x35, - 0xd6, 0x2d, 0xd3, 0x1d, 0x8d, 0x2d, 0x74, 0x57, 0xd0, 0x41, 0xdc, 0x04, 0xc7, 0xda, 0xbb, 0x16, - 0x59, 0x7f, 0xaa, 0x18, 0x75, 0xdc, 0x32, 0x8d, 0xb6, 0x4d, 0xea, 0x91, 0x57, 0xf7, 0x7f, 0xb8, - 0x23, 0xf7, 0xdc, 0x6f, 0x48, 0x19, 0xf4, 0x7c, 0xe1, 0x50, 0x37, 0xb4, 0xf2, 0xa1, 0xa2, 0xc5, - 0x7b, 0x02, 0xc1, 0x80, 0x36, 0x83, 0x4a, 0x48, 0x5f, 0xb8, 0x9f, 0xcb, 0x82, 0x5c, 0x6a, 0xb5, - 0xcc, 0x5d, 0xc3, 0xa9, 0xe3, 0x0e, 0x6e, 0x39, 0x0d, 0x4b, 0x6b, 0xe1, 0xb0, 0xfd, 0x5c, 0x04, - 0xa9, 0xad, 0x5b, 0xac, 0x0f, 0x76, 0x1f, 0x99, 0x1c, 0x5f, 0x26, 0xbc, 0xe3, 0x48, 0x6b, 0xb9, - 0xbf, 0x94, 0x04, 0xe2, 0x14, 0xdb, 0x57, 0x14, 0x2c, 0x28, 0x7d, 0xa9, 0x7e, 0x22, 0x0b, 0x53, - 0x5e, 0x8f, 0xbd, 0x25, 0x22, 0xcc, 0x5f, 0x49, 0x38, 0x19, 0xf1, 0x89, 0x27, 0x90, 0xe1, 0x3b, - 0x13, 0xcc, 0x2a, 0xa2, 0xe8, 0x27, 0x13, 0x5d, 0x29, 0xb9, 0xe8, 0xdc, 0xd7, 0x6a, 0xad, 0xb9, - 0x54, 0x5b, 0x5d, 0x54, 0xd4, 0xa2, 0x84, 0xbe, 0x9c, 0x85, 0xdc, 0xba, 0x6e, 0x6c, 0x85, 0xa3, - 0x2b, 0x1d, 0x77, 0xed, 0xc8, 0x36, 0x7e, 0x90, 0xb5, 0x74, 0xfa, 0x22, 0xdf, 0x0a, 0xc7, 0x8d, - 0xdd, 0x9d, 0xf3, 0xd8, 0xaa, 0x6d, 0x92, 0x51, 0xd6, 0x6e, 0x98, 0x75, 0x6c, 0x50, 0x23, 0x34, - 0xaf, 0xf6, 0xfd, 0xc6, 0x9b, 0x60, 0x02, 0x93, 0x07, 0x97, 0x93, 0x08, 0x89, 0xfb, 0x4c, 0x65, - 0x43, 0x4c, 0x25, 0x9a, 0x36, 0xf4, 0x21, 0x9e, 0xbe, 0xa6, 0xfe, 0x61, 0x1e, 0x4e, 0x94, 0x8c, - 0x4b, 0xc4, 0xa6, 0xa0, 0x1d, 0x7c, 0x79, 0x5b, 0x33, 0xb6, 0x30, 0x19, 0x20, 0x7c, 0x89, 0x87, - 0x43, 0xf4, 0x67, 0xf8, 0x10, 0xfd, 0xb2, 0x0a, 0x13, 0xa6, 0xd5, 0xc6, 0xd6, 0xc2, 0x25, 0xc2, - 0x53, 0xef, 0xb2, 0x33, 0x6b, 0x93, 0xfd, 0x8a, 0x98, 0x67, 0xe4, 0xe7, 0x6b, 0xf4, 0x7f, 0xd5, - 0x23, 0x74, 0xe6, 0x26, 0x98, 0x60, 0x69, 0xf2, 0x0c, 0x4c, 0xd6, 0xd4, 0x45, 0x45, 0x6d, 0x56, - 0x16, 0x8b, 0x47, 0xe4, 0xcb, 0xe0, 0x68, 0xa5, 0xa1, 0xa8, 0xa5, 0x46, 0xa5, 0x56, 0x6d, 0x92, - 0xf4, 0x62, 0x06, 0x3d, 0x27, 0x27, 0xea, 0xd9, 0x1b, 0xcf, 0x4c, 0x3f, 0x58, 0x55, 0x98, 0x68, - 0xd1, 0x0c, 0x64, 0x08, 0x9d, 0x4e, 0x54, 0x3b, 0x46, 0x90, 0x26, 0xa8, 0x1e, 0x21, 0xf9, 0x34, - 0xc0, 0x45, 0xcb, 0x34, 0xb6, 0x82, 0x53, 0x87, 0x93, 0x6a, 0x28, 0x05, 0x3d, 0x94, 0x81, 0x02, - 0xfd, 0x87, 0x5c, 0x49, 0x42, 0x9e, 0x02, 0xc1, 0x7b, 0xef, 0xae, 0xc5, 0x4b, 0xe4, 0x15, 0x4c, - 0xb4, 0xd8, 0xab, 0xab, 0x8b, 0x54, 0x06, 0xd4, 0x12, 0x66, 0x55, 0xb9, 0x19, 0x0a, 0xf4, 0x5f, - 0xe6, 0x75, 0x10, 0x1d, 0x5e, 0x94, 0x66, 0x13, 0xf4, 0x53, 0x16, 0x97, 0x69, 0xfa, 0xda, 0xfc, - 0xa1, 0x2c, 0x4c, 0x56, 0xb1, 0x53, 0xde, 0xc6, 0xad, 0x0b, 0xe8, 0x31, 0xfc, 0x02, 0x68, 0x47, - 0xc7, 0x86, 0x73, 0xff, 0x4e, 0xc7, 0x5f, 0x00, 0xf5, 0x12, 0xd0, 0xf3, 0xc2, 0x9d, 0xef, 0x3d, - 0xbc, 0xfe, 0xdc, 0xd8, 0xa7, 0xae, 0x5e, 0x09, 0x11, 0x2a, 0x73, 0x12, 0x0a, 0x16, 0xb6, 0x77, - 0x3b, 0xde, 0x22, 0x1a, 0x7b, 0x43, 0x0f, 0xfb, 0xe2, 0x2c, 0x73, 0xe2, 0xbc, 0x59, 0xbc, 0x88, - 0x31, 0xc4, 0x2b, 0xcd, 0xc1, 0x44, 0xc5, 0xd0, 0x1d, 0x5d, 0xeb, 0xa0, 0xe7, 0xe7, 0x60, 0xb6, - 0x8e, 0x9d, 0x75, 0xcd, 0xd2, 0x76, 0xb0, 0x83, 0x2d, 0x1b, 0x7d, 0x8f, 0xef, 0x13, 0xba, 0x1d, - 0xcd, 0xd9, 0x34, 0xad, 0x1d, 0x4f, 0x35, 0xbd, 0x77, 0x57, 0x35, 0xf7, 0xb0, 0x65, 0x07, 0x7c, - 0x79, 0xaf, 0xee, 0x97, 0x8b, 0xa6, 0x75, 0xc1, 0x1d, 0x04, 0xd9, 0x34, 0x8d, 0xbd, 0xba, 0xf4, - 0x3a, 0xe6, 0xd6, 0x2a, 0xde, 0xc3, 0x5e, 0xb8, 0x34, 0xff, 0xdd, 0x9d, 0x0b, 0xb4, 0xcd, 0xaa, - 0xe9, 0xb8, 0x9d, 0xf6, 0xaa, 0xb9, 0x45, 0xe3, 0xc5, 0x4e, 0xaa, 0x7c, 0x62, 0x90, 0x4b, 0xdb, - 0xc3, 0x24, 0x57, 0x21, 0x9c, 0x8b, 0x25, 0xca, 0xf3, 0x20, 0xfb, 0xbf, 0x35, 0x70, 0x07, 0xef, - 0x60, 0xc7, 0xba, 0x44, 0xae, 0x85, 0x98, 0x54, 0xfb, 0x7c, 0x61, 0x03, 0xb4, 0xf8, 0x64, 0x9d, - 0x49, 0x6f, 0x9e, 0x93, 0xdc, 0x81, 0x26, 0xeb, 0x22, 0x14, 0xc7, 0x72, 0xed, 0x95, 0xe4, 0x5a, - 0x33, 0x2f, 0x97, 0x20, 0x47, 0x06, 0xcf, 0xb7, 0x64, 0xb8, 0x15, 0xa6, 0x1d, 0x6c, 0xdb, 0xda, - 0x16, 0xf6, 0x56, 0x98, 0xd8, 0xab, 0x7c, 0x3b, 0xe4, 0x3b, 0x04, 0x53, 0x3a, 0x38, 0x5c, 0xcb, - 0xd5, 0xcc, 0x35, 0x30, 0x5c, 0x5a, 0xfe, 0x48, 0x40, 0xe0, 0x56, 0xe9, 0x1f, 0x67, 0xee, 0x85, - 0x3c, 0x85, 0x7f, 0x0a, 0xf2, 0x8b, 0xca, 0xc2, 0xc6, 0x72, 0xf1, 0x88, 0xfb, 0xe8, 0xf1, 0x37, - 0x05, 0xf9, 0xa5, 0x52, 0xa3, 0xb4, 0x5a, 0xcc, 0xba, 0xf5, 0xa8, 0x54, 0x97, 0x6a, 0x45, 0xc9, - 0x4d, 0x5c, 0x2f, 0x55, 0x2b, 0xe5, 0x62, 0x4e, 0x9e, 0x86, 0x89, 0x73, 0x25, 0xb5, 0x5a, 0xa9, - 0x2e, 0x17, 0xf3, 0xe8, 0x6f, 0xc3, 0xf8, 0xdd, 0xc1, 0xe3, 0x77, 0x5d, 0x14, 0x4f, 0xfd, 0x20, - 0x7b, 0x85, 0x0f, 0xd9, 0x5d, 0x1c, 0x64, 0x3f, 0x2e, 0x42, 0x64, 0x0c, 0xee, 0x4c, 0x05, 0x98, - 0x58, 0xb7, 0xcc, 0x16, 0xb6, 0x6d, 0xf4, 0xab, 0x59, 0x28, 0x94, 0x35, 0xa3, 0x85, 0x3b, 0xe8, - 0x8a, 0x00, 0x2a, 0xea, 0x2a, 0x9a, 0xf1, 0x4f, 0x8b, 0xfd, 0x63, 0x46, 0xb4, 0xf7, 0x63, 0x74, - 0xe7, 0x29, 0xcd, 0x08, 0xf9, 0x88, 0xf5, 0x72, 0xb1, 0xa4, 0xc6, 0x70, 0x35, 0x4e, 0x16, 0xa6, - 0xd8, 0x6a, 0xc0, 0x79, 0x1c, 0x9e, 0x87, 0x7f, 0x2f, 0x23, 0x3a, 0x39, 0xf4, 0x6a, 0xe0, 0x93, - 0x89, 0x90, 0x87, 0xd8, 0x44, 0x70, 0x10, 0xb5, 0x31, 0x6c, 0x1e, 0x66, 0x61, 0x7a, 0xc3, 0xb0, - 0xfb, 0x09, 0x45, 0x3c, 0x8e, 0xbe, 0x57, 0x8d, 0x10, 0xa1, 0x03, 0xc5, 0xd1, 0x1f, 0x4c, 0x2f, - 0x7d, 0xc1, 0x7c, 0x2f, 0x03, 0xc7, 0x97, 0xb1, 0x81, 0x2d, 0xbd, 0x45, 0x6b, 0xe0, 0x49, 0xe2, - 0x2e, 0x5e, 0x12, 0x8f, 0xe1, 0x38, 0xef, 0xf7, 0x07, 0x2f, 0x81, 0x57, 0xfb, 0x12, 0xb8, 0x87, - 0x93, 0xc0, 0x4d, 0x82, 0x74, 0xc6, 0x70, 0x1f, 0xfa, 0x14, 0xcc, 0x54, 0x4d, 0x47, 0xdf, 0xd4, - 0x5b, 0xd4, 0x07, 0xed, 0xd7, 0x25, 0xc8, 0xad, 0xea, 0xb6, 0x83, 0x4a, 0x41, 0x77, 0x72, 0x0d, - 0x4c, 0xeb, 0x46, 0xab, 0xb3, 0xdb, 0xc6, 0x2a, 0xd6, 0x68, 0xbf, 0x32, 0xa9, 0x86, 0x93, 0x82, - 0xad, 0x7d, 0x97, 0x2d, 0xc9, 0xdb, 0xda, 0xff, 0xb4, 0xf0, 0x32, 0x4c, 0x98, 0x05, 0x12, 0x90, - 0x32, 0xc2, 0xee, 0x2a, 0xc1, 0xac, 0x11, 0xca, 0xea, 0x19, 0xec, 0xbd, 0x17, 0x0a, 0x84, 0xc9, - 0xa9, 0xfc, 0x1f, 0xe8, 0xfd, 0x42, 0x8d, 0x75, 0x10, 0x43, 0xc9, 0x90, 0x59, 0x1a, 0x62, 0x92, - 0x2c, 0xc3, 0x5c, 0xa5, 0xda, 0x50, 0xd4, 0x6a, 0x69, 0x95, 0x65, 0x91, 0xd0, 0xbf, 0x66, 0x21, - 0xaf, 0xe2, 0x6e, 0xe7, 0x52, 0x38, 0x62, 0x34, 0x73, 0x14, 0xcf, 0xf8, 0x8e, 0xe2, 0xf2, 0x12, - 0x80, 0xd6, 0x72, 0x0b, 0x26, 0x57, 0x6a, 0x65, 0xfb, 0xc6, 0x31, 0xe5, 0x2a, 0x58, 0xf2, 0x73, - 0xab, 0xa1, 0x3f, 0xd1, 0x0b, 0x84, 0x77, 0x8e, 0x38, 0x6a, 0x84, 0xc3, 0x88, 0x3e, 0xe1, 0x03, - 0x42, 0x9b, 0x3d, 0x03, 0xc9, 0x1d, 0x8e, 0xf8, 0xbf, 0x92, 0x85, 0x5c, 0xc3, 0xed, 0x2d, 0x43, - 0x1d, 0xe7, 0x1f, 0x0d, 0xa7, 0xe3, 0x2e, 0x99, 0x08, 0x1d, 0xbf, 0x1b, 0x66, 0xc2, 0x1a, 0xcb, - 0x5c, 0x25, 0x62, 0x55, 0x9c, 0xfb, 0x61, 0x18, 0x0d, 0xef, 0xc3, 0xce, 0xe1, 0x88, 0xf8, 0x93, - 0x8f, 0x05, 0x58, 0xc3, 0x3b, 0xe7, 0xb1, 0x65, 0x6f, 0xeb, 0x5d, 0xf4, 0x77, 0x12, 0x4c, 0x2d, - 0x63, 0xa7, 0xee, 0x68, 0xce, 0xae, 0xdd, 0xb3, 0xdd, 0x69, 0x98, 0x65, 0xad, 0xb5, 0x8d, 0x59, - 0x77, 0xe4, 0xbd, 0xa2, 0x77, 0x4b, 0xa2, 0xfe, 0x44, 0x41, 0x39, 0xf3, 0x7e, 0x19, 0x11, 0x98, - 0x3c, 0x0e, 0x72, 0x6d, 0xcd, 0xd1, 0x18, 0x16, 0x57, 0xf4, 0x60, 0x11, 0x10, 0x52, 0x49, 0x36, - 0xf4, 0x5b, 0x59, 0x11, 0x87, 0x22, 0x81, 0xf2, 0x93, 0x81, 0xf0, 0xfe, 0xcc, 0x10, 0x28, 0x1c, - 0x83, 0xd9, 0x6a, 0xad, 0xd1, 0x5c, 0xad, 0x2d, 0x2f, 0x2b, 0x6e, 0x6a, 0x51, 0x92, 0x4f, 0x82, - 0xbc, 0x5e, 0xba, 0x7f, 0x4d, 0xa9, 0x36, 0x9a, 0xd5, 0xda, 0xa2, 0xc2, 0xfe, 0xcc, 0xc9, 0x47, - 0x61, 0xba, 0x5c, 0x2a, 0xaf, 0x78, 0x09, 0x79, 0xf9, 0x14, 0x1c, 0x5f, 0x53, 0xd6, 0x16, 0x14, - 0xb5, 0xbe, 0x52, 0x59, 0x6f, 0xba, 0x64, 0x96, 0x6a, 0x1b, 0xd5, 0xc5, 0x62, 0x41, 0x46, 0x70, - 0x32, 0xf4, 0xe5, 0x9c, 0x5a, 0xab, 0x2e, 0x37, 0xeb, 0x8d, 0x52, 0x43, 0x29, 0x4e, 0xc8, 0x97, - 0xc1, 0xd1, 0x72, 0xa9, 0x4a, 0xb2, 0x97, 0x6b, 0xd5, 0xaa, 0x52, 0x6e, 0x14, 0x27, 0xd1, 0xbf, - 0xe5, 0x60, 0xba, 0x62, 0x57, 0xb5, 0x1d, 0x7c, 0x56, 0xeb, 0xe8, 0x6d, 0xf4, 0xfc, 0xd0, 0xcc, - 0xe3, 0x3a, 0x98, 0xb5, 0xe8, 0x23, 0x6e, 0x37, 0x74, 0x4c, 0xd1, 0x9c, 0x55, 0xf9, 0x44, 0x77, - 0x4e, 0x6e, 0x10, 0x02, 0xde, 0x9c, 0x9c, 0xbe, 0xc9, 0x0b, 0x00, 0xf4, 0xa9, 0x11, 0x5c, 0xee, - 0x7a, 0xa6, 0xb7, 0x35, 0x69, 0x3b, 0xd8, 0xc6, 0xd6, 0x9e, 0xde, 0xc2, 0x5e, 0x4e, 0x35, 0xf4, - 0x17, 0xfa, 0xaa, 0x24, 0xba, 0xbf, 0x18, 0x02, 0x35, 0x54, 0x9d, 0x88, 0xde, 0xf0, 0x17, 0x24, - 0x91, 0xdd, 0x41, 0x21, 0x92, 0xc9, 0x34, 0xe5, 0xc5, 0xd9, 0xe1, 0x96, 0x6d, 0x1b, 0xb5, 0x5a, - 0xb3, 0xbe, 0x52, 0x53, 0x1b, 0x45, 0x49, 0x9e, 0x81, 0x49, 0xf7, 0x75, 0xb5, 0x56, 0x5d, 0x2e, - 0xe6, 0xe4, 0x13, 0x70, 0x6c, 0xa5, 0x54, 0x6f, 0x56, 0xaa, 0x67, 0x4b, 0xab, 0x95, 0xc5, 0x66, - 0x79, 0xa5, 0xa4, 0xd6, 0x8b, 0x79, 0xf9, 0x0a, 0x38, 0xd1, 0xa8, 0x28, 0x6a, 0x73, 0x49, 0x29, - 0x35, 0x36, 0x54, 0xa5, 0xde, 0xac, 0xd6, 0x9a, 0xd5, 0xd2, 0x9a, 0x52, 0x2c, 0xb8, 0xcd, 0x9f, - 0x7c, 0x0a, 0xd4, 0x66, 0x62, 0xbf, 0x32, 0x4e, 0x46, 0x28, 0xe3, 0x54, 0xaf, 0x32, 0x42, 0x58, - 0xad, 0x54, 0xa5, 0xae, 0xa8, 0x67, 0x95, 0xe2, 0x74, 0x3f, 0x5d, 0x9b, 0x91, 0x8f, 0x43, 0xd1, - 0xe5, 0xa1, 0x59, 0xa9, 0x7b, 0x39, 0x17, 0x8b, 0xb3, 0xe8, 0x13, 0x05, 0x38, 0xa9, 0xe2, 0x2d, - 0xdd, 0x76, 0xb0, 0xb5, 0xae, 0x5d, 0xda, 0xc1, 0x86, 0xe3, 0x75, 0xf2, 0xff, 0x2b, 0xb1, 0x32, - 0xae, 0xc1, 0x6c, 0x97, 0xd2, 0x58, 0xc3, 0xce, 0xb6, 0xd9, 0x66, 0xa3, 0xf0, 0x63, 0x22, 0x7b, - 0x8e, 0xf9, 0xf5, 0x70, 0x76, 0x95, 0xff, 0x3b, 0xa4, 0xdb, 0x52, 0x8c, 0x6e, 0xe7, 0x86, 0xd1, - 0x6d, 0xf9, 0x2a, 0x98, 0xda, 0xb5, 0xb1, 0xa5, 0xec, 0x68, 0x7a, 0xc7, 0xbb, 0x9c, 0xd3, 0x4f, - 0x40, 0xef, 0xc8, 0x89, 0x9e, 0x58, 0x09, 0xd5, 0xa5, 0xbf, 0x18, 0x23, 0xfa, 0xd6, 0xd3, 0x00, - 0xac, 0xb2, 0x1b, 0x56, 0x87, 0x29, 0x6b, 0x28, 0xc5, 0xe5, 0xef, 0xbc, 0xde, 0xe9, 0xe8, 0xc6, - 0x96, 0xbf, 0xef, 0x1f, 0x24, 0xa0, 0x17, 0x4b, 0x22, 0x27, 0x58, 0x92, 0xf2, 0x96, 0xac, 0x35, - 0xbd, 0x20, 0x3b, 0xe6, 0x7e, 0x77, 0x7f, 0xd3, 0x29, 0xc8, 0x45, 0x98, 0x21, 0x69, 0xac, 0x05, - 0x16, 0x27, 0xdc, 0x3e, 0xd8, 0x23, 0xb7, 0xa6, 0x34, 0x56, 0x6a, 0x8b, 0xfe, 0xb7, 0x49, 0x97, - 0xa4, 0xcb, 0x4c, 0xa9, 0x7a, 0x3f, 0x69, 0x8d, 0x53, 0xf2, 0xa3, 0xe0, 0x8a, 0x50, 0x87, 0x5d, - 0x5a, 0x55, 0x95, 0xd2, 0xe2, 0xfd, 0x4d, 0xe5, 0xe9, 0x95, 0x7a, 0xa3, 0xce, 0x37, 0x2e, 0xaf, - 0x1d, 0x4d, 0xbb, 0xfc, 0x2a, 0x6b, 0xa5, 0xca, 0x2a, 0xeb, 0xdf, 0x97, 0x6a, 0xea, 0x5a, 0xa9, - 0x51, 0x9c, 0x41, 0x2f, 0x97, 0xa0, 0xb8, 0x8c, 0x9d, 0x75, 0xd3, 0x72, 0xb4, 0xce, 0xaa, 0x6e, - 0x5c, 0xd8, 0xb0, 0x3a, 0xdc, 0x64, 0x53, 0x38, 0x4c, 0x07, 0x3f, 0x44, 0x72, 0x04, 0xa3, 0x77, - 0xc4, 0xbb, 0x24, 0x5b, 0xa0, 0x4c, 0x41, 0x02, 0x7a, 0x66, 0x56, 0x64, 0xb9, 0x5b, 0xbc, 0xd4, - 0x64, 0x7a, 0xf2, 0xac, 0x71, 0x8f, 0xcf, 0x7d, 0x50, 0x2b, 0xa0, 0xe7, 0xe6, 0x60, 0x72, 0x49, - 0x37, 0xb4, 0x8e, 0xfe, 0x0c, 0x2e, 0x7e, 0x69, 0xd0, 0xc7, 0x64, 0x62, 0xfa, 0x98, 0xec, 0x50, - 0xe3, 0xe7, 0x2f, 0x4b, 0xa2, 0xcb, 0x0b, 0x21, 0xd9, 0x7b, 0x4c, 0x46, 0x0c, 0x9e, 0x1f, 0xce, - 0x8a, 0x2c, 0x2f, 0x0c, 0xa6, 0x97, 0x0c, 0xc3, 0x4f, 0xfd, 0x70, 0xd8, 0x58, 0x3d, 0xed, 0x7b, - 0xb2, 0x9f, 0x2a, 0x4c, 0xa1, 0x3f, 0x93, 0x00, 0x2d, 0x63, 0xe7, 0x2c, 0xb6, 0xfc, 0xa9, 0x00, - 0xe9, 0xf5, 0x99, 0xbd, 0x1d, 0x6a, 0xb2, 0x6f, 0x09, 0x03, 0x78, 0x8e, 0x07, 0xb0, 0x14, 0xd3, - 0x78, 0x22, 0x48, 0x47, 0x34, 0xde, 0x0a, 0x14, 0x6c, 0xf2, 0x9d, 0xa9, 0xd9, 0xe3, 0xa3, 0x87, - 0x4b, 0x42, 0x2c, 0x4c, 0x9d, 0x12, 0x56, 0x19, 0x01, 0xf4, 0x7d, 0x7f, 0x12, 0xf4, 0x93, 0x9c, - 0x76, 0x2c, 0x1d, 0x98, 0xd9, 0x64, 0xfa, 0x62, 0xa5, 0xab, 0x2e, 0xfd, 0xec, 0x1b, 0xf4, 0xe1, - 0x3c, 0x1c, 0xef, 0x57, 0x1d, 0xf4, 0xdb, 0x19, 0x6e, 0x87, 0x1d, 0x93, 0x21, 0x3f, 0xc3, 0x36, - 0x10, 0xdd, 0x17, 0xf9, 0x09, 0x70, 0xc2, 0x5f, 0x86, 0x6b, 0x98, 0x55, 0x7c, 0xd1, 0xee, 0x60, - 0xc7, 0xc1, 0x16, 0xa9, 0xda, 0xa4, 0xda, 0xff, 0xa3, 0xfc, 0x64, 0xb8, 0x5c, 0x37, 0x6c, 0xbd, - 0x8d, 0xad, 0x86, 0xde, 0xb5, 0x4b, 0x46, 0xbb, 0xb1, 0xeb, 0x98, 0x96, 0xae, 0xb1, 0xab, 0x24, - 0x27, 0xd5, 0xa8, 0xcf, 0xf2, 0x8d, 0x50, 0xd4, 0xed, 0x9a, 0x71, 0xde, 0xd4, 0xac, 0xb6, 0x6e, - 0x6c, 0xad, 0xea, 0xb6, 0xc3, 0x3c, 0x80, 0xf7, 0xa5, 0xa3, 0xbf, 0x97, 0x44, 0x0f, 0xd3, 0x0d, - 0x80, 0x35, 0xa2, 0x43, 0x79, 0x9e, 0x24, 0x72, 0x3c, 0x2e, 0x19, 0xed, 0x64, 0xca, 0xf2, 0x9c, - 0x71, 0x1b, 0x12, 0xfd, 0x47, 0x70, 0xd2, 0xb5, 0xd0, 0x74, 0xcf, 0x10, 0x38, 0xab, 0xa8, 0x95, - 0xa5, 0x8a, 0xe2, 0x9a, 0x15, 0x27, 0xe0, 0x58, 0xf0, 0x6d, 0xf1, 0xfe, 0x66, 0x5d, 0xa9, 0x36, - 0x8a, 0x93, 0x6e, 0x3f, 0x45, 0x93, 0x97, 0x4a, 0x95, 0x55, 0x65, 0xb1, 0xd9, 0xa8, 0xb9, 0x5f, - 0x16, 0x87, 0x33, 0x2d, 0xd0, 0x43, 0x39, 0x38, 0x4a, 0x64, 0x7b, 0x89, 0x48, 0xd5, 0x15, 0x4a, - 0x8f, 0xaf, 0xad, 0x0f, 0xd0, 0x14, 0x15, 0x2f, 0xfa, 0xac, 0xf0, 0x4d, 0x99, 0x21, 0x08, 0x7b, - 0xca, 0x88, 0xd0, 0x8c, 0xef, 0x65, 0x45, 0x22, 0x54, 0x08, 0x93, 0x4d, 0xa6, 0x14, 0xff, 0x3c, - 0xee, 0x11, 0x27, 0x1a, 0x7c, 0x62, 0x65, 0x96, 0xc9, 0xcf, 0x4f, 0x5f, 0xaf, 0xa8, 0x44, 0x1d, - 0xe6, 0x00, 0x48, 0x0a, 0xd1, 0x20, 0xaa, 0x07, 0x7d, 0xc7, 0xab, 0x28, 0x3d, 0x28, 0x95, 0x1b, - 0x95, 0xb3, 0x4a, 0x94, 0x1e, 0x7c, 0x46, 0x82, 0xc9, 0x65, 0xec, 0xb8, 0x73, 0x2a, 0x1b, 0x3d, - 0x45, 0x60, 0xfd, 0xc7, 0x35, 0x63, 0x3a, 0x66, 0x4b, 0xeb, 0xf8, 0xcb, 0x00, 0xf4, 0x0d, 0x3d, - 0x7b, 0x18, 0x13, 0xc4, 0x2b, 0x3a, 0x62, 0xbc, 0x7a, 0x12, 0xe4, 0x1d, 0xf7, 0x33, 0x5b, 0x86, - 0xfe, 0xb1, 0xc8, 0xe1, 0xca, 0x25, 0xb2, 0xa8, 0x39, 0x9a, 0x4a, 0xf3, 0x87, 0x46, 0x27, 0x41, - 0xdb, 0x25, 0x82, 0x91, 0x1f, 0x46, 0xfb, 0xf3, 0x6f, 0x25, 0x38, 0x41, 0xdb, 0x47, 0xa9, 0xdb, - 0xad, 0x3b, 0xa6, 0x85, 0x55, 0xdc, 0xc2, 0x7a, 0xd7, 0xe9, 0x59, 0xdf, 0xb3, 0x68, 0xaa, 0xb7, - 0xd9, 0xcc, 0x5e, 0xd1, 0x1b, 0x25, 0xd1, 0x18, 0xcc, 0xfb, 0xda, 0x63, 0x4f, 0x79, 0x11, 0x8d, - 0xfd, 0xe3, 0x59, 0x91, 0xa8, 0xca, 0x09, 0x89, 0x27, 0x03, 0xea, 0x23, 0x87, 0x00, 0x94, 0xb7, - 0x72, 0xa3, 0x2a, 0x65, 0xa5, 0xb2, 0xee, 0x0e, 0x02, 0x57, 0xc3, 0x95, 0xeb, 0x1b, 0x6a, 0x79, - 0xa5, 0x54, 0x57, 0x9a, 0xaa, 0xb2, 0x5c, 0xa9, 0x37, 0x98, 0x53, 0x16, 0xfd, 0x6b, 0x42, 0xbe, - 0x0a, 0x4e, 0xd5, 0x37, 0x16, 0xea, 0x65, 0xb5, 0xb2, 0x4e, 0xd2, 0x55, 0xa5, 0xaa, 0x9c, 0x63, - 0x5f, 0x27, 0xd1, 0x07, 0x8b, 0x30, 0xed, 0x4e, 0x00, 0xea, 0x74, 0x5e, 0x80, 0xbe, 0x95, 0x83, - 0x69, 0x15, 0xdb, 0x66, 0x67, 0x8f, 0xcc, 0x11, 0xc6, 0x35, 0xf5, 0xf8, 0xae, 0x24, 0x7a, 0x7e, - 0x3b, 0xc4, 0xec, 0x7c, 0x88, 0xd1, 0xe8, 0x89, 0xa6, 0xb6, 0xa7, 0xe9, 0x1d, 0xed, 0x3c, 0xeb, - 0x6a, 0x26, 0xd5, 0x20, 0x41, 0x9e, 0x07, 0xd9, 0xbc, 0x68, 0x60, 0xab, 0xde, 0xba, 0xa8, 0x38, - 0xdb, 0xa5, 0x76, 0xdb, 0xc2, 0xb6, 0xcd, 0x56, 0x2f, 0xfa, 0x7c, 0x91, 0x6f, 0x80, 0xa3, 0x24, - 0x35, 0x94, 0x99, 0x3a, 0xc8, 0xf4, 0x26, 0xfb, 0x39, 0x4b, 0xc6, 0x25, 0x2f, 0x67, 0x3e, 0x94, - 0x33, 0x48, 0x0e, 0x1f, 0x97, 0x28, 0xf0, 0xa7, 0x74, 0xae, 0x81, 0x69, 0x43, 0xdb, 0xc1, 0xca, - 0x83, 0x5d, 0xdd, 0xc2, 0x36, 0x71, 0x8c, 0x91, 0xd4, 0x70, 0x12, 0xfa, 0xb0, 0xd0, 0x79, 0x73, - 0x31, 0x89, 0x25, 0xd3, 0xfd, 0xe5, 0x21, 0x54, 0xbf, 0x4f, 0x3f, 0x23, 0xa1, 0x0f, 0x4a, 0x30, - 0xc3, 0x98, 0x2a, 0x19, 0x97, 0x2a, 0x6d, 0x74, 0x35, 0x67, 0xfc, 0x6a, 0x6e, 0x9a, 0x67, 0xfc, - 0x92, 0x17, 0xf4, 0x8b, 0x92, 0xa8, 0xbb, 0x73, 0x9f, 0x8a, 0x93, 0x32, 0xa2, 0x1d, 0x47, 0x37, - 0xcd, 0x5d, 0xe6, 0xa8, 0x3a, 0xa9, 0xd2, 0x97, 0x34, 0x17, 0xf5, 0xd0, 0xef, 0x09, 0x39, 0x53, - 0x0b, 0x56, 0xe3, 0x90, 0x00, 0xfc, 0xa4, 0x04, 0x73, 0x8c, 0xab, 0x3a, 0x3b, 0xe7, 0x23, 0x74, - 0xe0, 0xed, 0x45, 0xc2, 0x86, 0x60, 0x9f, 0xfa, 0xb3, 0x92, 0x1e, 0x31, 0x40, 0x7e, 0x54, 0x28, - 0x38, 0x9a, 0x70, 0x45, 0x0e, 0x09, 0xca, 0x77, 0xe6, 0x60, 0x7a, 0xc3, 0xc6, 0x16, 0xf3, 0xdb, - 0x47, 0x0f, 0xe7, 0x40, 0x5a, 0xc6, 0xdc, 0x46, 0xea, 0x0b, 0x85, 0x3d, 0x7c, 0xc3, 0x95, 0x0d, - 0x11, 0x75, 0x6d, 0xa4, 0x08, 0xd8, 0xae, 0x87, 0x39, 0x2a, 0xd2, 0x92, 0xe3, 0xb8, 0x46, 0xa2, - 0xe7, 0x4d, 0xdb, 0x93, 0x3a, 0x8a, 0xad, 0x22, 0x52, 0x96, 0x9b, 0xa5, 0xec, 0xf2, 0xb4, 0x8a, - 0x37, 0xe9, 0x7c, 0x36, 0xa7, 0xf6, 0xa4, 0xca, 0xb7, 0xc0, 0x65, 0x66, 0x17, 0xd3, 0xf3, 0x2b, - 0xa1, 0xcc, 0x79, 0x92, 0xb9, 0xdf, 0x27, 0xf4, 0x2d, 0x21, 0x5f, 0x5d, 0x71, 0xe9, 0x24, 0xd3, - 0x85, 0xee, 0x68, 0x4c, 0x92, 0xe3, 0x50, 0x74, 0x73, 0x90, 0xfd, 0x17, 0x55, 0xa9, 0xd7, 0x56, - 0xcf, 0x2a, 0xfd, 0x97, 0x31, 0xf2, 0xe8, 0x39, 0x12, 0x4c, 0x2d, 0x58, 0xa6, 0xd6, 0x6e, 0x69, - 0xb6, 0x83, 0xbe, 0x9f, 0x85, 0x99, 0x75, 0xed, 0x52, 0xc7, 0xd4, 0xda, 0xc4, 0xbf, 0xbf, 0xa7, - 0x2f, 0xe8, 0xd2, 0x4f, 0x5e, 0x5f, 0xc0, 0x5e, 0xf9, 0x83, 0x81, 0xfe, 0xd1, 0xbd, 0x8c, 0xc8, - 0x85, 0x9a, 0xfe, 0x36, 0x5f, 0xb6, 0x5f, 0xb0, 0x52, 0x8f, 0xaf, 0xf9, 0x30, 0x4f, 0x11, 0x16, - 0xe5, 0x07, 0xc5, 0xc2, 0x8f, 0x8a, 0x90, 0x3c, 0x9c, 0x5d, 0xf9, 0xe7, 0x4e, 0x42, 0x61, 0x11, - 0x13, 0x2b, 0xee, 0xbf, 0x65, 0x61, 0xa2, 0x8e, 0x1d, 0x62, 0xc1, 0xdd, 0xce, 0x79, 0x0a, 0xb7, - 0x49, 0x86, 0xc0, 0x89, 0xdd, 0x7b, 0x77, 0x27, 0xeb, 0xa1, 0xf3, 0xd6, 0xe4, 0x39, 0x81, 0x47, - 0x22, 0x2d, 0x77, 0x9e, 0x95, 0x79, 0x20, 0x8f, 0xc4, 0x58, 0x52, 0xe9, 0xfb, 0x5a, 0xbd, 0x3b, - 0xcb, 0x5c, 0xab, 0x42, 0xbd, 0xde, 0x6b, 0xc2, 0xfa, 0x19, 0xeb, 0x6d, 0xc6, 0x98, 0x8f, 0x71, - 0x8e, 0xba, 0x0d, 0x26, 0xa8, 0xcc, 0xbd, 0xf9, 0x68, 0xaf, 0x9f, 0x02, 0x25, 0x41, 0xce, 0x5e, - 0x7b, 0x39, 0x05, 0x5d, 0xd4, 0xa2, 0x0b, 0x1f, 0x4b, 0x0c, 0x82, 0x99, 0x2a, 0x76, 0x2e, 0x9a, - 0xd6, 0x85, 0xba, 0xa3, 0x39, 0x18, 0xfd, 0x73, 0x16, 0xa4, 0x3a, 0x76, 0xc2, 0xd1, 0x4f, 0xaa, - 0x70, 0x8c, 0x56, 0x88, 0x65, 0x24, 0xfd, 0x37, 0xad, 0xc8, 0x35, 0x7d, 0x85, 0x10, 0xca, 0xa7, - 0xee, 0xff, 0x15, 0xfd, 0x6a, 0xdf, 0xa0, 0x4f, 0xd9, 0x3e, 0x93, 0x06, 0x26, 0x99, 0x30, 0x83, - 0xae, 0x82, 0x45, 0xe8, 0xe9, 0x87, 0x84, 0xcc, 0x6a, 0x31, 0x9a, 0x87, 0xd3, 0x15, 0xbc, 0xea, - 0x0a, 0xc8, 0x95, 0xb7, 0x35, 0x07, 0xbd, 0x4b, 0x02, 0x28, 0xb5, 0xdb, 0x6b, 0xd4, 0x07, 0x3c, - 0xec, 0x90, 0x76, 0x06, 0x66, 0x5a, 0xdb, 0x5a, 0x70, 0xb7, 0x09, 0xed, 0x0f, 0xb8, 0x34, 0xf9, - 0x09, 0x81, 0x33, 0x39, 0x95, 0x2a, 0xea, 0x81, 0xc9, 0x2d, 0x83, 0xd1, 0xf6, 0x1d, 0xcd, 0xf9, - 0x50, 0x98, 0xb1, 0x47, 0xe8, 0xdc, 0xdf, 0xe7, 0x03, 0xf6, 0xa2, 0xe7, 0x70, 0x8c, 0xb4, 0x7f, - 0xc0, 0x26, 0x48, 0x48, 0x78, 0xd2, 0x5b, 0x2c, 0xa0, 0x47, 0x3c, 0x5f, 0x63, 0x09, 0x5d, 0x2b, - 0x2b, 0x6d, 0xdd, 0x13, 0x2d, 0x0b, 0x98, 0x85, 0x5e, 0x90, 0x49, 0x06, 0x5f, 0xbc, 0xe0, 0xee, - 0x81, 0x59, 0xdc, 0xd6, 0x1d, 0xec, 0xd5, 0x92, 0x09, 0x30, 0x0e, 0x62, 0xfe, 0x07, 0xf4, 0x2c, - 0xe1, 0xa0, 0x6b, 0x44, 0xa0, 0xfb, 0x6b, 0x14, 0xd1, 0xfe, 0xc4, 0xc2, 0xa8, 0x89, 0xd1, 0x4c, - 0x1f, 0xac, 0x67, 0x4b, 0x70, 0xa2, 0x61, 0x6e, 0x6d, 0x75, 0xb0, 0x27, 0x26, 0x4c, 0xbd, 0x33, - 0x91, 0x36, 0x4a, 0xb8, 0xc8, 0x4e, 0x90, 0xf9, 0x80, 0xee, 0x1f, 0x25, 0x73, 0x5f, 0xf8, 0x13, - 0x53, 0xb1, 0xb3, 0x28, 0x22, 0xae, 0xbe, 0x7c, 0x46, 0xa0, 0x20, 0x16, 0xf0, 0x59, 0x98, 0x6c, - 0xfa, 0x40, 0x7c, 0x31, 0x0b, 0xb3, 0xf4, 0xe6, 0x4a, 0x4f, 0x41, 0xef, 0x1b, 0x21, 0x00, 0xe8, - 0xfb, 0x19, 0x51, 0x3f, 0x5b, 0x22, 0x13, 0x8e, 0x93, 0x08, 0x11, 0x8b, 0x05, 0x55, 0x19, 0x48, - 0x6e, 0x0c, 0x71, 0xb3, 0x24, 0x98, 0x5e, 0xc6, 0x5e, 0x4b, 0xb3, 0xc3, 0xd7, 0x80, 0x89, 0x08, - 0xf6, 0x3a, 0x98, 0x3d, 0x8f, 0x37, 0x4d, 0x0b, 0xd7, 0xb8, 0x63, 0x92, 0x7c, 0x62, 0x44, 0xe4, - 0x39, 0x2e, 0xc4, 0xd9, 0x02, 0x2f, 0xf6, 0x9b, 0xf6, 0xcb, 0x29, 0xc4, 0x65, 0xc4, 0x70, 0xf2, - 0x44, 0x98, 0x64, 0xa0, 0x7a, 0x16, 0x58, 0x5c, 0x97, 0xe7, 0xe7, 0x45, 0xaf, 0xf7, 0xc1, 0x52, - 0x38, 0xb0, 0x1e, 0x9f, 0x84, 0x89, 0xb1, 0x5c, 0xdd, 0x5e, 0x0c, 0x95, 0xbf, 0x70, 0xa9, 0xd2, - 0xb6, 0xd1, 0x5a, 0x32, 0xbc, 0x4e, 0x03, 0xf8, 0x7a, 0xef, 0x45, 0xac, 0x08, 0xa5, 0xf0, 0x41, - 0xe9, 0x63, 0xcf, 0xe0, 0xf5, 0x8a, 0x83, 0xb0, 0x33, 0x62, 0x60, 0xc4, 0xce, 0xee, 0x89, 0x70, - 0x92, 0x3e, 0x3a, 0x9f, 0x96, 0xe0, 0x84, 0x7f, 0xb4, 0x68, 0x55, 0xb3, 0x83, 0x26, 0x55, 0x4e, - 0x06, 0x11, 0x77, 0x96, 0xc3, 0x6f, 0x2c, 0xdf, 0x4e, 0x36, 0x1c, 0xf4, 0xe5, 0x64, 0xb4, 0xe8, - 0xc8, 0x37, 0xc1, 0x31, 0x63, 0x77, 0xc7, 0x97, 0x3a, 0x69, 0xf1, 0xac, 0x85, 0xef, 0xff, 0x90, - 0x64, 0xd0, 0x11, 0x61, 0x7e, 0x2c, 0xd3, 0x45, 0xee, 0xb4, 0xd6, 0xe3, 0x12, 0xc1, 0x88, 0xbe, - 0x93, 0x49, 0xd4, 0xbb, 0x0d, 0x3e, 0xce, 0x95, 0xa0, 0x97, 0x3a, 0xc4, 0xb3, 0x5c, 0x67, 0x26, - 0x20, 0xaf, 0xec, 0x74, 0x9d, 0x4b, 0x67, 0x1e, 0x0d, 0xb3, 0x75, 0xc7, 0xc2, 0xda, 0x4e, 0x68, - 0xd1, 0xdf, 0x31, 0x2f, 0x60, 0xc3, 0x5b, 0xf4, 0x27, 0x2f, 0x77, 0xdc, 0x0e, 0x13, 0x86, 0xd9, - 0xd4, 0x76, 0x9d, 0x6d, 0xf9, 0xea, 0x7d, 0xa7, 0xe5, 0x19, 0xf8, 0x35, 0x16, 0x9e, 0xe8, 0xab, - 0x77, 0x92, 0x65, 0xdf, 0x82, 0x61, 0x96, 0x76, 0x9d, 0xed, 0x85, 0xab, 0x3e, 0xf9, 0x37, 0xa7, - 0x33, 0x9f, 0xf9, 0x9b, 0xd3, 0x99, 0xaf, 0xfc, 0xcd, 0xe9, 0xcc, 0x8b, 0xbe, 0x76, 0xfa, 0xc8, - 0x67, 0xbe, 0x76, 0xfa, 0xc8, 0x17, 0xbf, 0x76, 0xfa, 0xc8, 0x4f, 0x66, 0xbb, 0xe7, 0xcf, 0x17, - 0x08, 0x95, 0xdb, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x95, 0xdc, 0x31, 0xa6, 0xe5, 0xfa, + // 19250 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x78, 0x2c, 0x47, + 0x75, 0x2f, 0xba, 0x67, 0x7a, 0x66, 0x24, 0x2d, 0x3d, 0xf6, 0xec, 0xf6, 0xde, 0xdb, 0xdb, 0x65, + 0xb3, 0x6d, 0xb6, 0x8d, 0x71, 0x8c, 0x91, 0x8d, 0x4d, 0x00, 0x1b, 0x1b, 0x7b, 0x34, 0x6a, 0x49, + 0x63, 0x4b, 0x33, 0xa2, 0x67, 0xb4, 0x37, 0x4e, 0x0e, 0x77, 0xd2, 0x9a, 0x29, 0x49, 0xed, 0x3d, + 0xea, 0x9e, 0xf4, 0xb4, 0xb4, 0xb7, 0xb8, 0xdf, 0xb9, 0x27, 0x84, 0x98, 0x47, 0x08, 0x07, 0x08, + 0x21, 0x89, 0xc3, 0xdb, 0x60, 0x38, 0x90, 0x00, 0xe1, 0x7d, 0x20, 0x09, 0x10, 0x1e, 0x81, 0x90, + 0x84, 0x10, 0x08, 0xe1, 0x91, 0xf8, 0x06, 0xc2, 0x23, 0xe4, 0x7e, 0xe1, 0x70, 0x93, 0x7b, 0x80, + 0xe3, 0x24, 0xdc, 0xdc, 0xaf, 0xab, 0xaa, 0x1f, 0x35, 0x9a, 0xee, 0xa9, 0x1e, 0x4d, 0x8f, 0x4c, + 0xb8, 0xff, 0x75, 0x57, 0x57, 0xaf, 0x5a, 0xb5, 0x7e, 0xab, 0xaa, 0x56, 0x55, 0xad, 0x5a, 0x05, + 0xa7, 0xda, 0xeb, 0x37, 0xb6, 0x2d, 0xd3, 0x36, 0x3b, 0x37, 0x36, 0xcc, 0xed, 0x6d, 0xcd, 0x68, + 0x76, 0x66, 0xc9, 0xbb, 0x3c, 0xa6, 0x19, 0x7b, 0xf6, 0x5e, 0x1b, 0xa3, 0x6b, 0xda, 0xe7, 0x37, + 0x6f, 0x6c, 0xe9, 0xeb, 0x37, 0xb6, 0xd7, 0x6f, 0xdc, 0x36, 0x9b, 0xb8, 0xe5, 0xfe, 0x40, 0x5e, + 0x58, 0x76, 0x74, 0x5d, 0x58, 0xae, 0x96, 0xd9, 0xd0, 0x5a, 0x1d, 0xdb, 0xb4, 0x30, 0xcb, 0x79, + 0xd2, 0x2f, 0x12, 0xef, 0x62, 0xc3, 0x76, 0x29, 0x5c, 0xb1, 0x69, 0x9a, 0x9b, 0x2d, 0x4c, 0xbf, + 0xad, 0xef, 0x6c, 0xdc, 0xd8, 0xb1, 0xad, 0x9d, 0x86, 0xcd, 0xbe, 0x5e, 0xd5, 0xfd, 0xb5, 0x89, + 0x3b, 0x0d, 0x4b, 0x6f, 0xdb, 0xa6, 0x45, 0x73, 0x9c, 0xf9, 0xd6, 0x23, 0x63, 0x20, 0xa9, 0xed, + 0x06, 0xfa, 0xc1, 0x18, 0x48, 0x85, 0x76, 0x1b, 0x7d, 0x32, 0x0d, 0xb0, 0x88, 0xed, 0xb3, 0xd8, + 0xea, 0xe8, 0xa6, 0x81, 0x8e, 0xc2, 0x98, 0x8a, 0x7f, 0x7e, 0x07, 0x77, 0xec, 0xdb, 0x32, 0x2f, + 0xfc, 0xb6, 0x94, 0x42, 0x0f, 0xa5, 0x61, 0x5c, 0xc5, 0x9d, 0xb6, 0x69, 0x74, 0xb0, 0x7c, 0x17, + 0x64, 0xb1, 0x65, 0x99, 0xd6, 0xa9, 0xd4, 0x55, 0xa9, 0xeb, 0x26, 0x6f, 0xbe, 0x7e, 0x96, 0x55, + 0x7f, 0x56, 0x6d, 0x37, 0x66, 0x0b, 0xed, 0xf6, 0xac, 0x4f, 0x69, 0xd6, 0xfd, 0x69, 0x56, 0x71, + 0xfe, 0x50, 0xe9, 0x8f, 0xf2, 0x29, 0x18, 0xdb, 0xa5, 0x19, 0x4e, 0xa5, 0xaf, 0x4a, 0x5d, 0x37, + 0xa1, 0xba, 0xaf, 0xce, 0x97, 0x26, 0xb6, 0x35, 0xbd, 0xd5, 0x39, 0x25, 0xd1, 0x2f, 0xec, 0x15, + 0x3d, 0x98, 0x82, 0x2c, 0x21, 0x22, 0x17, 0x21, 0xd3, 0x30, 0x9b, 0x98, 0x14, 0x3f, 0x73, 0xf3, + 0x8d, 0xe2, 0xc5, 0xcf, 0x16, 0xcd, 0x26, 0x56, 0xc9, 0xcf, 0xf2, 0x55, 0x30, 0xe9, 0x8a, 0xc5, + 0x67, 0x23, 0x98, 0x74, 0xe6, 0x66, 0xc8, 0x38, 0xf9, 0xe5, 0x71, 0xc8, 0x94, 0xd7, 0x96, 0x97, + 0xf3, 0x47, 0xe4, 0x63, 0x30, 0xbd, 0x56, 0xbe, 0xa7, 0x5c, 0x39, 0x57, 0xae, 0x2b, 0xaa, 0x5a, + 0x51, 0xf3, 0x29, 0x79, 0x1a, 0x26, 0xe6, 0x0a, 0xf3, 0xf5, 0x52, 0x79, 0x75, 0xad, 0x96, 0x4f, + 0xa3, 0xd7, 0x4a, 0x30, 0x53, 0xc5, 0xf6, 0x3c, 0xde, 0xd5, 0x1b, 0xb8, 0x6a, 0x6b, 0x36, 0x46, + 0x2f, 0x4d, 0x79, 0xc2, 0x94, 0xd7, 0x9c, 0x42, 0xbd, 0x4f, 0xac, 0x02, 0xb7, 0xec, 0xab, 0x00, + 0x4f, 0x61, 0x96, 0xfd, 0x3d, 0x1b, 0x48, 0x53, 0x83, 0x74, 0xce, 0x3c, 0x11, 0x26, 0x03, 0xdf, + 0xe4, 0x19, 0x80, 0xb9, 0x42, 0xf1, 0x9e, 0x45, 0xb5, 0xb2, 0x56, 0x9e, 0xcf, 0x1f, 0x71, 0xde, + 0x17, 0x2a, 0xaa, 0xc2, 0xde, 0x53, 0xe8, 0x91, 0x54, 0x00, 0xcc, 0x79, 0x1e, 0xcc, 0xd9, 0xfe, + 0xcc, 0xf4, 0x00, 0x14, 0xbd, 0xd9, 0x03, 0x67, 0x91, 0x03, 0xe7, 0x96, 0x78, 0xe4, 0x92, 0x07, + 0xe8, 0xfe, 0x34, 0x8c, 0x57, 0xb7, 0x76, 0xec, 0xa6, 0x79, 0xc1, 0x40, 0x13, 0x1e, 0x32, 0xe8, + 0xbb, 0x41, 0x99, 0x3c, 0x83, 0x97, 0xc9, 0x75, 0xfb, 0x2b, 0xc1, 0x28, 0x84, 0x48, 0xe3, 0xf5, + 0x9e, 0x34, 0x0a, 0x9c, 0x34, 0x9e, 0x28, 0x4a, 0x28, 0x79, 0x39, 0xbc, 0xec, 0x16, 0xc8, 0x56, + 0xdb, 0x5a, 0x03, 0xa3, 0x3f, 0x95, 0x60, 0x6a, 0x19, 0x6b, 0xbb, 0xb8, 0xd0, 0x6e, 0x5b, 0xe6, + 0x2e, 0x46, 0x45, 0x5f, 0x5f, 0x4f, 0xc1, 0x58, 0xc7, 0xc9, 0x54, 0x6a, 0x92, 0x1a, 0x4c, 0xa8, + 0xee, 0xab, 0x7c, 0x1a, 0x40, 0x6f, 0x62, 0xc3, 0xd6, 0x6d, 0x1d, 0x77, 0x4e, 0xa5, 0xaf, 0x92, + 0xae, 0x9b, 0x50, 0x03, 0x29, 0xe8, 0x07, 0x69, 0x51, 0x1d, 0x23, 0x5c, 0xcc, 0x06, 0x39, 0x08, + 0x91, 0xea, 0x1b, 0xd3, 0x22, 0x3a, 0xd6, 0x97, 0x5c, 0x3c, 0xd9, 0xbe, 0x23, 0x15, 0x5f, 0xb8, + 0x4e, 0x8e, 0x72, 0xa5, 0x5e, 0x5d, 0x2b, 0x2e, 0xd5, 0xab, 0xab, 0x85, 0xa2, 0x92, 0xc7, 0xf2, + 0x71, 0xc8, 0x93, 0xc7, 0x7a, 0xa9, 0x5a, 0x9f, 0x57, 0x96, 0x95, 0x9a, 0x32, 0x9f, 0xdf, 0x90, + 0x65, 0x98, 0x51, 0x95, 0x67, 0xae, 0x29, 0xd5, 0x5a, 0x7d, 0xa1, 0x50, 0x5a, 0x56, 0xe6, 0xf3, + 0x9b, 0xce, 0xcf, 0xcb, 0xa5, 0x95, 0x52, 0xad, 0xae, 0x2a, 0x85, 0xe2, 0x92, 0x32, 0x9f, 0xdf, + 0x92, 0x2f, 0x85, 0x4b, 0xca, 0x95, 0x7a, 0x61, 0x75, 0x55, 0xad, 0x9c, 0x55, 0xea, 0xec, 0x8f, + 0x6a, 0x5e, 0xa7, 0x05, 0xd5, 0xea, 0xd5, 0xa5, 0x82, 0xaa, 0x14, 0xe6, 0x96, 0x95, 0xfc, 0x7d, + 0xe8, 0x79, 0x12, 0x4c, 0xaf, 0x68, 0xe7, 0x71, 0x75, 0x4b, 0xb3, 0xb0, 0xb6, 0xde, 0xc2, 0xe8, + 0x6a, 0x01, 0x3c, 0xd1, 0x9f, 0x06, 0xf1, 0x52, 0x78, 0xbc, 0x6e, 0xec, 0x21, 0x60, 0xae, 0x88, + 0x10, 0xc0, 0xfe, 0x97, 0xd7, 0x0c, 0x96, 0x38, 0xc0, 0x9e, 0x1c, 0x93, 0x5e, 0x3c, 0xc4, 0x7e, + 0xf1, 0x51, 0x80, 0x18, 0x7a, 0x58, 0x82, 0x99, 0x92, 0xb1, 0xab, 0xdb, 0x78, 0x11, 0x1b, 0xd8, + 0x72, 0xc6, 0x01, 0x21, 0x18, 0x1e, 0x92, 0x02, 0x30, 0x2c, 0xf0, 0x30, 0xdc, 0xd4, 0x43, 0x6c, + 0x7c, 0x19, 0x21, 0xa3, 0xed, 0x15, 0x30, 0xa1, 0x93, 0x7c, 0x45, 0xbd, 0xc9, 0x24, 0xe6, 0x27, + 0xc8, 0xd7, 0xc0, 0x34, 0x7d, 0x59, 0xd0, 0x5b, 0xf8, 0x1e, 0xbc, 0xc7, 0xc6, 0x5d, 0x3e, 0x11, + 0xfd, 0x8a, 0xd7, 0xf8, 0x4a, 0x1c, 0x96, 0x3f, 0x1d, 0x97, 0xa9, 0x78, 0x60, 0xbe, 0xf2, 0xd1, + 0xd0, 0xfc, 0xf6, 0xb5, 0x32, 0x1d, 0xfd, 0x28, 0x0d, 0x93, 0x55, 0xdb, 0x6c, 0x3b, 0x2a, 0xab, + 0x1b, 0x9b, 0x62, 0xe0, 0x7e, 0x3a, 0xd8, 0xc6, 0x8a, 0x3c, 0xb8, 0x4f, 0xec, 0x21, 0xc7, 0x40, + 0x01, 0x21, 0x2d, 0xec, 0x07, 0x5e, 0x0b, 0x5b, 0xe0, 0x50, 0xb9, 0x39, 0x16, 0xb5, 0x1f, 0xc3, + 0xf6, 0xf5, 0x4a, 0x09, 0xf2, 0xae, 0x9a, 0xd9, 0xc5, 0x1d, 0xcb, 0xc2, 0x86, 0x2d, 0x06, 0xc2, + 0x5f, 0x07, 0x41, 0x58, 0xe2, 0x41, 0xb8, 0x39, 0x42, 0x99, 0xdd, 0x52, 0x12, 0x6c, 0x63, 0x1f, + 0xf5, 0xd0, 0xbc, 0x87, 0x43, 0xf3, 0xa9, 0xf1, 0xd9, 0x8a, 0x07, 0xe9, 0xd2, 0x00, 0x88, 0x1e, + 0x87, 0xbc, 0x33, 0x26, 0x15, 0x6b, 0xa5, 0xb3, 0x4a, 0xbd, 0x54, 0x3e, 0x5b, 0xaa, 0x29, 0x79, + 0x8c, 0x5e, 0x21, 0xc1, 0x14, 0x65, 0x4d, 0xc5, 0xbb, 0xe6, 0x79, 0xc1, 0x5e, 0xef, 0xe1, 0x98, + 0xc6, 0x42, 0xb0, 0x84, 0x90, 0x96, 0xf1, 0xcb, 0x31, 0x8c, 0x85, 0x08, 0x72, 0x8f, 0xa6, 0xde, + 0x6a, 0x5f, 0x33, 0xd8, 0xec, 0xd1, 0x5a, 0x7a, 0xf6, 0x56, 0xaf, 0xcc, 0x00, 0xd0, 0x4a, 0x9e, + 0xd5, 0xf1, 0x05, 0xb4, 0xe2, 0x63, 0xc2, 0xa9, 0x6d, 0xaa, 0xaf, 0xda, 0xa6, 0x7b, 0xa9, 0xed, + 0x07, 0x82, 0x63, 0xd6, 0x1c, 0x8f, 0xde, 0x0d, 0xa1, 0xe2, 0x76, 0x38, 0x09, 0x9f, 0x1d, 0xba, + 0x8a, 0x92, 0xe6, 0xad, 0xce, 0x2b, 0x60, 0x82, 0x3c, 0x96, 0xb5, 0x6d, 0xcc, 0xda, 0x90, 0x9f, + 0x20, 0x9f, 0x81, 0x29, 0x9a, 0xb1, 0x61, 0x1a, 0x4e, 0x7d, 0x32, 0x24, 0x03, 0x97, 0xe6, 0x80, + 0xd8, 0xb0, 0xb0, 0x66, 0x9b, 0x16, 0xa1, 0x91, 0xa5, 0x20, 0x06, 0x92, 0xd0, 0x77, 0xbc, 0x56, + 0xa8, 0x70, 0x9a, 0xf3, 0xa4, 0x38, 0x55, 0x89, 0xa7, 0x37, 0xbb, 0x83, 0xb5, 0x3f, 0xda, 0xea, + 0xea, 0x0e, 0xda, 0x0b, 0x64, 0x6a, 0x87, 0xe5, 0x93, 0x20, 0xb3, 0x54, 0x27, 0x6f, 0xb1, 0x52, + 0xae, 0x29, 0xe5, 0x5a, 0x7e, 0xa3, 0xa7, 0x46, 0x6d, 0xa2, 0x37, 0x66, 0x20, 0x73, 0xb7, 0xa9, + 0x1b, 0xe8, 0xfe, 0x14, 0xa7, 0x12, 0x06, 0xb6, 0x2f, 0x98, 0xd6, 0x79, 0xaf, 0xa1, 0xfa, 0x09, + 0xd1, 0xd8, 0xf8, 0xaa, 0x24, 0xf5, 0x55, 0xa5, 0x4c, 0x2f, 0x55, 0xfa, 0xd5, 0xa0, 0x2a, 0xdd, + 0xce, 0xab, 0xd2, 0xb5, 0x3d, 0xe4, 0xef, 0x30, 0x1f, 0xd2, 0x01, 0x7c, 0xca, 0xeb, 0x00, 0xee, + 0xe4, 0x60, 0x7c, 0x82, 0x18, 0x99, 0x78, 0x00, 0x7e, 0x35, 0xd1, 0x86, 0xdf, 0x0b, 0xea, 0xcd, + 0x10, 0xa8, 0xb7, 0x7a, 0xf4, 0x09, 0xfa, 0xfe, 0xae, 0xe3, 0xbe, 0xfd, 0xdd, 0xc4, 0x79, 0xf9, + 0x04, 0x1c, 0x9b, 0x2f, 0x2d, 0x2c, 0x28, 0xaa, 0x52, 0xae, 0xd5, 0xcb, 0x4a, 0xed, 0x5c, 0x45, + 0xbd, 0x27, 0xdf, 0x42, 0x0f, 0x4a, 0x00, 0x8e, 0x84, 0x8a, 0x9a, 0xd1, 0xc0, 0x2d, 0xb1, 0x1e, + 0xfd, 0x7f, 0xa4, 0xe3, 0xf5, 0x09, 0x3e, 0xfd, 0x10, 0x38, 0x5f, 0x93, 0x16, 0x6f, 0x95, 0xa1, + 0xc4, 0xe2, 0x81, 0xfa, 0xb6, 0x47, 0x83, 0xed, 0x79, 0x09, 0x1c, 0x75, 0xe9, 0xb1, 0xec, 0xbd, + 0xa7, 0x7d, 0xef, 0xcc, 0xc0, 0x0c, 0x83, 0xc5, 0x9d, 0xc7, 0xbf, 0x30, 0x25, 0x32, 0x91, 0x47, + 0x30, 0xce, 0xa6, 0xed, 0x6e, 0xf7, 0xee, 0xbd, 0xcb, 0x8b, 0x30, 0xd9, 0xc6, 0xd6, 0xb6, 0xde, + 0xe9, 0xe8, 0xa6, 0x41, 0x17, 0xe4, 0x66, 0x6e, 0x7e, 0x9c, 0x27, 0x71, 0xb2, 0x76, 0x39, 0xbb, + 0xaa, 0x59, 0xb6, 0xde, 0xd0, 0xdb, 0x9a, 0x61, 0xaf, 0xfa, 0x99, 0xd5, 0xe0, 0x9f, 0xe8, 0xe5, + 0x31, 0xa7, 0x35, 0x7c, 0x4d, 0x42, 0x54, 0xe2, 0xf7, 0x63, 0x4c, 0x49, 0x22, 0x09, 0xc6, 0x53, + 0x8b, 0x4f, 0x26, 0xaa, 0x16, 0x3d, 0xf0, 0xde, 0x94, 0x2f, 0x83, 0x13, 0xa5, 0x72, 0xb1, 0xa2, + 0xaa, 0x4a, 0xb1, 0x56, 0x5f, 0x55, 0xd4, 0x95, 0x52, 0xb5, 0x5a, 0xaa, 0x94, 0xab, 0x07, 0x69, + 0xed, 0xe8, 0x33, 0x92, 0xa7, 0x31, 0xf3, 0xb8, 0xd1, 0xd2, 0x0d, 0x8c, 0xee, 0x3c, 0xa0, 0xc2, + 0xf0, 0xab, 0x3e, 0xe2, 0x38, 0xb3, 0xf2, 0x43, 0x70, 0x7e, 0x43, 0x7c, 0x9c, 0x7b, 0x13, 0xfc, + 0x0f, 0xdc, 0xfc, 0x1f, 0x96, 0xe0, 0x58, 0xa0, 0x21, 0xaa, 0x78, 0x7b, 0x68, 0x2b, 0x79, 0xbf, + 0x18, 0x6c, 0xbb, 0x25, 0x1e, 0xd3, 0x5e, 0xd6, 0xf4, 0x3e, 0x36, 0x42, 0x60, 0x7d, 0x9b, 0x07, + 0xeb, 0x32, 0x07, 0xeb, 0xd3, 0x06, 0xa0, 0x19, 0x0f, 0xd9, 0xdf, 0x4d, 0x14, 0xd9, 0xcb, 0xe0, + 0xc4, 0x6a, 0x41, 0xad, 0x95, 0x8a, 0xa5, 0xd5, 0x82, 0x33, 0x8e, 0x06, 0x86, 0xec, 0x10, 0x73, + 0x9d, 0x07, 0xbd, 0x27, 0xbe, 0x1f, 0xc9, 0xc0, 0x15, 0xbd, 0x3b, 0xda, 0xe2, 0x96, 0x66, 0x6c, + 0x62, 0xa4, 0x8b, 0x40, 0x3d, 0x0f, 0x63, 0x0d, 0x92, 0x9d, 0xe2, 0x1c, 0xdc, 0xba, 0x89, 0xe8, + 0xcb, 0x69, 0x09, 0xaa, 0xfb, 0x2b, 0x7a, 0x4f, 0x50, 0x21, 0x6a, 0xbc, 0x42, 0x3c, 0x23, 0x1a, + 0xbc, 0x7d, 0x7c, 0x87, 0xe8, 0xc6, 0xe7, 0x3c, 0xdd, 0x38, 0xc7, 0xe9, 0x46, 0xf1, 0x60, 0xe4, + 0xe3, 0xa9, 0xc9, 0x9f, 0x3c, 0x1a, 0x3a, 0x80, 0x50, 0x6d, 0xd2, 0xc3, 0x47, 0x85, 0x9e, 0xdd, + 0xfd, 0xeb, 0x24, 0xc8, 0xcd, 0xe3, 0x16, 0x16, 0x5d, 0x89, 0xfc, 0x5e, 0x5a, 0x74, 0x43, 0x84, + 0xc2, 0x40, 0x69, 0x87, 0xaf, 0x8e, 0xd8, 0xfa, 0x36, 0xee, 0xd8, 0xda, 0x76, 0x9b, 0x88, 0x5a, + 0x52, 0xfd, 0x04, 0xf4, 0x4b, 0x69, 0x91, 0xed, 0x92, 0x88, 0x62, 0xfe, 0x63, 0xac, 0x29, 0x7e, + 0x63, 0x06, 0x72, 0xe7, 0xb4, 0x56, 0x0b, 0xdb, 0xe8, 0x9b, 0x69, 0xc8, 0x15, 0x9d, 0x39, 0x29, + 0x46, 0x4f, 0xf0, 0xc1, 0x42, 0x30, 0x6e, 0x99, 0xa6, 0xbd, 0xaa, 0xd9, 0x5b, 0x0c, 0x2d, 0xef, + 0x9d, 0x6d, 0xd3, 0xfe, 0x4e, 0x10, 0xb4, 0x3b, 0x79, 0xd0, 0x7e, 0x8a, 0x93, 0x26, 0x2d, 0x68, + 0x96, 0x16, 0x12, 0x82, 0x1a, 0x82, 0xf1, 0x6d, 0x03, 0x6f, 0x9b, 0x86, 0xde, 0x70, 0x47, 0x7a, + 0xf7, 0x1d, 0x7d, 0xcc, 0x9b, 0x25, 0xcf, 0x71, 0x98, 0xcd, 0x0a, 0x97, 0x12, 0x0f, 0xb4, 0xea, + 0x00, 0x98, 0x5d, 0x09, 0x97, 0x53, 0x08, 0xea, 0xb5, 0x4a, 0xbd, 0xa8, 0x2a, 0x85, 0x9a, 0x52, + 0x5f, 0xae, 0x14, 0x0b, 0xcb, 0x75, 0x55, 0x59, 0xad, 0xe4, 0x31, 0xfa, 0xfb, 0xb4, 0x23, 0xdc, + 0x86, 0xb9, 0x8b, 0x2d, 0xb4, 0x28, 0x24, 0xe7, 0x28, 0x99, 0x30, 0x0c, 0x7e, 0x55, 0x78, 0xab, + 0x9c, 0x49, 0x87, 0x71, 0x10, 0xd2, 0x15, 0x7e, 0x5c, 0x68, 0xdb, 0x3b, 0x92, 0xd4, 0xa3, 0x40, + 0xd2, 0xff, 0x33, 0x0d, 0x63, 0x45, 0xd3, 0xd8, 0xc5, 0x96, 0x1d, 0xb4, 0x32, 0x83, 0xd2, 0x4c, + 0xf1, 0xd2, 0x74, 0xba, 0x26, 0x6c, 0xd8, 0x96, 0xd9, 0x76, 0xcd, 0x4c, 0xf7, 0x15, 0xbd, 0x25, + 0xae, 0x84, 0x59, 0xc9, 0xe1, 0xcb, 0x4d, 0xbd, 0x0b, 0xe2, 0xd8, 0x93, 0xba, 0x1a, 0xc0, 0x83, + 0x71, 0x70, 0xe9, 0xcd, 0x40, 0xf2, 0xbb, 0xbc, 0x5f, 0x93, 0x60, 0x9a, 0x36, 0xbe, 0x2a, 0x26, + 0xe3, 0x22, 0xaa, 0x04, 0x17, 0x7a, 0xba, 0x84, 0xbf, 0x74, 0x84, 0x13, 0x7f, 0x4e, 0x6b, 0xb7, + 0xbd, 0x45, 0xbf, 0xa5, 0x23, 0x2a, 0x7b, 0xa7, 0x6a, 0x3e, 0x97, 0x83, 0x8c, 0xb6, 0x63, 0x6f, + 0xa1, 0x1f, 0x09, 0x9b, 0xfc, 0x5c, 0x67, 0xc0, 0xf8, 0x09, 0x81, 0xe4, 0x38, 0x64, 0x6d, 0xf3, + 0x3c, 0x76, 0xe5, 0x40, 0x5f, 0x1c, 0x38, 0xb4, 0x76, 0xbb, 0x46, 0x3e, 0x30, 0x38, 0xdc, 0x77, + 0x67, 0x84, 0xd1, 0x1a, 0x0d, 0x73, 0xc7, 0xb0, 0x4b, 0xee, 0xc2, 0x9f, 0x9f, 0x80, 0xbe, 0x9c, + 0x12, 0x99, 0x42, 0x08, 0x30, 0x18, 0x0f, 0xb2, 0xf5, 0x01, 0x9a, 0xd2, 0x2c, 0x5c, 0x5f, 0x58, + 0x5d, 0xad, 0xd7, 0x2a, 0xf7, 0x28, 0x65, 0x7f, 0xb8, 0xaf, 0x97, 0xca, 0xf5, 0xda, 0x92, 0x52, + 0x2f, 0xae, 0xa9, 0x64, 0x75, 0xa6, 0x50, 0x2c, 0x56, 0xd6, 0xca, 0xb5, 0x3c, 0x46, 0x6f, 0x4f, + 0xc3, 0x54, 0xb1, 0x65, 0x76, 0x3c, 0x84, 0xaf, 0xf4, 0x11, 0xf6, 0xc4, 0x98, 0x0a, 0x88, 0x11, + 0xfd, 0x6b, 0x4a, 0x74, 0xab, 0xd7, 0x15, 0x48, 0x80, 0x7c, 0x48, 0x2f, 0xf5, 0x16, 0xa1, 0xad, + 0xde, 0xfe, 0xf4, 0x92, 0x6f, 0x12, 0x5f, 0xb8, 0x0d, 0xc6, 0x0a, 0x54, 0x31, 0xd0, 0xdf, 0xa6, + 0x20, 0x57, 0x34, 0x8d, 0x0d, 0x7d, 0x53, 0xbe, 0x16, 0x66, 0xb0, 0xa1, 0xad, 0xb7, 0xf0, 0xbc, + 0x66, 0x6b, 0xbb, 0x3a, 0xbe, 0x40, 0x2a, 0x30, 0xae, 0x76, 0xa5, 0x3a, 0x4c, 0xb1, 0x14, 0xbc, + 0xbe, 0xb3, 0x49, 0x98, 0x1a, 0x57, 0x83, 0x49, 0xf2, 0xd3, 0xe0, 0x52, 0xfa, 0xba, 0x6a, 0x61, + 0x0b, 0xb7, 0xb0, 0xd6, 0xc1, 0x8e, 0x31, 0x6a, 0xe0, 0x16, 0x51, 0xda, 0x71, 0x35, 0xec, 0xb3, + 0x7c, 0x06, 0xa6, 0xe8, 0x27, 0x62, 0xea, 0x74, 0x88, 0x1a, 0x8f, 0xab, 0x5c, 0x9a, 0xfc, 0x44, + 0xc8, 0xe2, 0x8b, 0xb6, 0xa5, 0x9d, 0x6a, 0x12, 0xbc, 0x2e, 0x9d, 0xa5, 0xbe, 0x5e, 0xb3, 0xae, + 0xaf, 0xd7, 0x6c, 0x95, 0x78, 0x82, 0xa9, 0x34, 0x17, 0x7a, 0xf5, 0xb8, 0x67, 0x48, 0xfc, 0x7b, + 0xda, 0x57, 0x0c, 0x19, 0x32, 0x86, 0xb6, 0x8d, 0x99, 0x5e, 0x90, 0x67, 0xf9, 0x7a, 0x38, 0xaa, + 0xed, 0x6a, 0xb6, 0x66, 0x2d, 0x9b, 0x0d, 0xad, 0x45, 0x06, 0x3f, 0xb7, 0xe5, 0x77, 0x7f, 0x20, + 0xeb, 0xf0, 0xb6, 0x69, 0x61, 0x92, 0xcb, 0x5d, 0x87, 0x77, 0x13, 0x1c, 0xea, 0x7a, 0xc3, 0x34, + 0x08, 0xff, 0x92, 0x4a, 0x9e, 0x1d, 0xa9, 0x34, 0xf5, 0x8e, 0x53, 0x11, 0x42, 0xa5, 0x4c, 0x17, + 0x94, 0xab, 0x7b, 0x46, 0x83, 0xac, 0xc1, 0x8f, 0xab, 0x61, 0x9f, 0xe5, 0x39, 0x98, 0x64, 0xcb, + 0xcf, 0x2b, 0x8e, 0x5e, 0xe5, 0x88, 0x5e, 0x5d, 0xc5, 0x7b, 0xd2, 0x50, 0x3c, 0x67, 0xcb, 0x7e, + 0x3e, 0x35, 0xf8, 0x93, 0x7c, 0x17, 0x5c, 0xce, 0x5e, 0x8b, 0x3b, 0x1d, 0xdb, 0xdc, 0xa6, 0xa0, + 0x2f, 0xe8, 0x2d, 0x5a, 0x83, 0x31, 0x52, 0x83, 0xa8, 0x2c, 0xf2, 0xcd, 0x70, 0xbc, 0x6d, 0xe1, + 0x0d, 0x6c, 0xdd, 0xab, 0x6d, 0xef, 0x5c, 0xac, 0x59, 0x9a, 0xd1, 0x69, 0x9b, 0x96, 0x7d, 0x6a, + 0x9c, 0x30, 0xdf, 0xf3, 0x1b, 0xeb, 0x28, 0xc7, 0x21, 0x47, 0xc5, 0x87, 0x5e, 0x9a, 0x15, 0x76, + 0xa2, 0x63, 0x15, 0x8a, 0x34, 0xcf, 0x6e, 0x82, 0x31, 0xd6, 0xc3, 0x11, 0xa0, 0x26, 0x6f, 0x3e, + 0xd9, 0x35, 0x9b, 0x63, 0x54, 0x54, 0x37, 0x9b, 0x7c, 0x0b, 0xe4, 0x1a, 0xa4, 0x5a, 0x04, 0xb3, + 0xc9, 0x9b, 0x2f, 0xef, 0x5d, 0x28, 0xc9, 0xa2, 0xb2, 0xac, 0xe8, 0x2b, 0x92, 0x90, 0xdf, 0x5d, + 0x14, 0xc7, 0xf1, 0x5a, 0xf5, 0x77, 0xd2, 0x03, 0x74, 0x9b, 0x37, 0xc0, 0x75, 0xac, 0x4f, 0x64, + 0xf6, 0xc7, 0x7c, 0x7d, 0x6e, 0xcd, 0x35, 0xc1, 0x1d, 0xab, 0xa4, 0x5a, 0x2b, 0xa8, 0xce, 0xfc, + 0x69, 0xde, 0x31, 0xdd, 0xaf, 0x87, 0x6b, 0xfb, 0xe4, 0x56, 0x6a, 0xf5, 0x72, 0x61, 0x45, 0xc9, + 0x6f, 0xf0, 0xb6, 0x4d, 0xb5, 0x56, 0x59, 0xad, 0xab, 0x6b, 0xe5, 0x72, 0xa9, 0xbc, 0x48, 0x89, + 0x39, 0x26, 0xe1, 0x49, 0x3f, 0xc3, 0x39, 0xb5, 0x54, 0x53, 0xea, 0xc5, 0x4a, 0x79, 0xa1, 0xb4, + 0x98, 0xd7, 0xfb, 0x19, 0x46, 0xf7, 0xc9, 0x57, 0xc1, 0x15, 0x1c, 0x27, 0xa5, 0x4a, 0xd9, 0x99, + 0x4f, 0x14, 0x0b, 0xe5, 0xa2, 0xe2, 0x4c, 0x1e, 0xce, 0xcb, 0x08, 0x4e, 0x50, 0x72, 0xf5, 0x85, + 0xd2, 0x72, 0x70, 0x0b, 0xe0, 0xd3, 0x29, 0xf9, 0x14, 0x5c, 0x12, 0xfc, 0x56, 0x2a, 0x9f, 0x2d, + 0x2c, 0x97, 0xe6, 0xf3, 0x7f, 0x9c, 0x92, 0xaf, 0x81, 0x2b, 0xb9, 0xbf, 0xe8, 0x6a, 0x7e, 0xbd, + 0x34, 0x5f, 0x5f, 0x29, 0x55, 0x57, 0x0a, 0xb5, 0xe2, 0x52, 0xfe, 0x33, 0x64, 0xbe, 0xe0, 0x19, + 0xc0, 0x01, 0x67, 0xb8, 0x57, 0x06, 0xc7, 0xf4, 0x02, 0xaf, 0xa8, 0x4f, 0xe8, 0x09, 0x7b, 0xb4, + 0x0d, 0xfb, 0x49, 0x6f, 0x74, 0x98, 0xe7, 0x54, 0xe8, 0xa6, 0x18, 0xb4, 0xe2, 0xe9, 0x50, 0x6d, + 0x00, 0x15, 0xba, 0x0a, 0xae, 0x28, 0x2b, 0x14, 0x29, 0x55, 0x29, 0x56, 0xce, 0x2a, 0x6a, 0xfd, + 0x5c, 0x61, 0x79, 0x59, 0xa9, 0xd5, 0x17, 0x4a, 0x6a, 0xb5, 0x96, 0xdf, 0x40, 0xdf, 0x4f, 0x7b, + 0x73, 0xe8, 0x80, 0xb4, 0xfe, 0x36, 0x1d, 0xb7, 0x59, 0x47, 0xce, 0x95, 0x7f, 0x1a, 0x72, 0x1d, + 0x5b, 0xb3, 0x77, 0x3a, 0xac, 0x55, 0x3f, 0xa6, 0x77, 0xab, 0x9e, 0xad, 0x92, 0x4c, 0x2a, 0xcb, + 0x8c, 0xbe, 0x92, 0x8a, 0xd3, 0x4c, 0x87, 0x30, 0x8d, 0xd6, 0x07, 0x10, 0xf1, 0x69, 0x40, 0xae, + 0xb6, 0x97, 0xaa, 0xf5, 0xc2, 0xb2, 0xaa, 0x14, 0xe6, 0xef, 0xf5, 0x26, 0xcf, 0x58, 0x3e, 0x01, + 0xc7, 0xd6, 0xca, 0xce, 0x74, 0x98, 0x34, 0x97, 0x4a, 0xb9, 0xac, 0x14, 0x1d, 0xb9, 0xff, 0x12, + 0x59, 0xaa, 0x76, 0x2c, 0x68, 0xc2, 0xb7, 0x63, 0xe5, 0x04, 0xe4, 0xff, 0x6d, 0x61, 0x8f, 0x0e, + 0x5f, 0xc3, 0x82, 0xb4, 0x86, 0x8b, 0xc3, 0x97, 0x85, 0x9c, 0x38, 0x84, 0x38, 0x89, 0x87, 0xc7, + 0xcf, 0x0d, 0x80, 0xc7, 0x09, 0x38, 0x16, 0xc4, 0x83, 0x38, 0x73, 0x84, 0xc3, 0xf0, 0xf5, 0x71, + 0xc8, 0x55, 0x71, 0x0b, 0x37, 0x6c, 0xf4, 0xce, 0x80, 0x31, 0x31, 0x03, 0x69, 0xcf, 0x79, 0x20, + 0xad, 0x37, 0xb9, 0xe9, 0x73, 0xba, 0x6b, 0xfa, 0x1c, 0x61, 0x06, 0x48, 0xb1, 0xcc, 0x80, 0x4c, + 0x02, 0x66, 0x40, 0x76, 0x70, 0x33, 0x20, 0xd7, 0xcf, 0x0c, 0x40, 0x6f, 0xca, 0xc5, 0xed, 0x25, + 0xa8, 0xa8, 0x0f, 0x77, 0xf0, 0xff, 0x1f, 0x99, 0x38, 0xbd, 0x4a, 0x4f, 0x8e, 0xe3, 0x69, 0xf1, + 0x8f, 0xa4, 0x04, 0x96, 0x1f, 0xe4, 0xab, 0xe1, 0x4a, 0xff, 0xbd, 0xae, 0x3c, 0xab, 0x54, 0xad, + 0x55, 0xc9, 0x88, 0x5f, 0xac, 0xa8, 0xea, 0xda, 0x2a, 0x5d, 0xb9, 0x3b, 0x09, 0xb2, 0x4f, 0x45, + 0x5d, 0x2b, 0xd3, 0xf1, 0x7d, 0x93, 0xa7, 0xbe, 0x50, 0x2a, 0xcf, 0xd7, 0xbd, 0x36, 0x53, 0x5e, + 0xa8, 0xe4, 0xb7, 0x9c, 0x29, 0x5b, 0x80, 0xba, 0x33, 0x40, 0xb3, 0x12, 0x0a, 0xe5, 0xf9, 0xfa, + 0x4a, 0x59, 0x59, 0xa9, 0x94, 0x4b, 0x45, 0x92, 0x5e, 0x55, 0x6a, 0x79, 0xdd, 0x19, 0x68, 0xba, + 0x2c, 0x8a, 0xaa, 0x52, 0x50, 0x8b, 0x4b, 0x8a, 0x4a, 0x8b, 0xbc, 0x4f, 0xbe, 0x16, 0xce, 0x14, + 0xca, 0x95, 0x9a, 0x93, 0x52, 0x28, 0xdf, 0x5b, 0xbb, 0x77, 0x55, 0xa9, 0xaf, 0xaa, 0x95, 0xa2, + 0x52, 0xad, 0x3a, 0xed, 0x94, 0xd9, 0x1f, 0xf9, 0x96, 0xfc, 0x0c, 0xb8, 0x2d, 0xc0, 0x9a, 0x52, + 0x23, 0xdb, 0x44, 0x2b, 0x15, 0xe2, 0x29, 0x30, 0xaf, 0xd4, 0x97, 0x0a, 0xd5, 0x7a, 0xa9, 0x5c, + 0xac, 0xac, 0xac, 0x16, 0x6a, 0x25, 0xa7, 0x39, 0xaf, 0xaa, 0x95, 0x5a, 0xa5, 0x7e, 0x56, 0x51, + 0xab, 0xa5, 0x4a, 0x39, 0x6f, 0x38, 0x55, 0x0e, 0xb4, 0x7f, 0xb7, 0x1f, 0x36, 0xe5, 0x2b, 0xe0, + 0x94, 0x9b, 0xbe, 0x5c, 0x71, 0x04, 0x1d, 0xb0, 0x48, 0xda, 0x89, 0x5a, 0x24, 0xff, 0x92, 0x86, + 0x4c, 0xd5, 0x36, 0xdb, 0xe8, 0xa7, 0xfc, 0x0e, 0xe6, 0x34, 0x80, 0x45, 0x76, 0x7d, 0x9c, 0x59, + 0x18, 0x9b, 0x97, 0x05, 0x52, 0xd0, 0x1f, 0x09, 0x2f, 0x55, 0xfb, 0x7d, 0xb6, 0xd9, 0x0e, 0xb1, + 0x55, 0x1e, 0x11, 0xf3, 0xdd, 0x0f, 0x27, 0x14, 0x4f, 0xdf, 0x7f, 0x79, 0x90, 0xc5, 0x68, 0x04, + 0x27, 0x03, 0xb0, 0x39, 0xf2, 0x77, 0x55, 0x02, 0xcb, 0x97, 0xc2, 0x25, 0x5d, 0xca, 0x45, 0x74, + 0x6a, 0x43, 0x7e, 0x2c, 0x3c, 0x26, 0xa0, 0xde, 0xca, 0x4a, 0xe5, 0xac, 0xe2, 0x29, 0xf2, 0x7c, + 0xa1, 0x56, 0xc8, 0x6f, 0xa2, 0x2f, 0x48, 0x90, 0x59, 0x31, 0x77, 0xbb, 0x77, 0x08, 0x0c, 0x7c, + 0x21, 0xb0, 0x16, 0xea, 0xbe, 0xf2, 0xbe, 0xca, 0x42, 0x62, 0x5f, 0x09, 0xdf, 0x0d, 0xfc, 0x72, + 0x3a, 0x8e, 0xd8, 0x57, 0x0e, 0xba, 0x05, 0xf8, 0x0f, 0x83, 0x88, 0x3d, 0x44, 0xb4, 0x58, 0x3e, + 0x03, 0xa7, 0xfd, 0x0f, 0xa5, 0x79, 0xa5, 0x5c, 0x2b, 0x2d, 0xdc, 0xeb, 0x0b, 0xb7, 0xa4, 0x0a, + 0x89, 0xbf, 0x5f, 0x37, 0x16, 0x3d, 0xd3, 0x38, 0x05, 0xc7, 0xfd, 0x6f, 0x8b, 0x4a, 0xcd, 0xfd, + 0x72, 0x1f, 0xba, 0x3f, 0x0b, 0x53, 0xb4, 0x5b, 0x5f, 0x6b, 0x37, 0x35, 0x1b, 0xa3, 0x5b, 0x7c, + 0x74, 0xaf, 0x83, 0xa3, 0xa5, 0xd5, 0x85, 0x6a, 0xd5, 0x36, 0x2d, 0x6d, 0x13, 0x17, 0x9a, 0x4d, + 0x8b, 0x49, 0xab, 0x3b, 0x19, 0xbd, 0x4f, 0x78, 0x9d, 0x8f, 0x1f, 0x4a, 0x68, 0x99, 0x21, 0xa8, + 0x7f, 0x4d, 0x68, 0x5d, 0x4e, 0x80, 0x60, 0x3c, 0xf4, 0xef, 0x1b, 0x72, 0x9b, 0x0b, 0xc7, 0x65, + 0xe3, 0xcc, 0x0b, 0xd2, 0x30, 0x51, 0xd3, 0xb7, 0xf1, 0x73, 0x4c, 0x03, 0x77, 0xe4, 0x31, 0x90, + 0x16, 0x57, 0x6a, 0xf9, 0x23, 0xce, 0x83, 0x63, 0x54, 0xa5, 0xc8, 0x83, 0xe2, 0x14, 0xe0, 0x3c, + 0x14, 0x6a, 0x79, 0xc9, 0x79, 0x58, 0x51, 0x6a, 0xf9, 0x8c, 0xf3, 0x50, 0x56, 0x6a, 0xf9, 0xac, + 0xf3, 0xb0, 0xba, 0x5c, 0xcb, 0xe7, 0x9c, 0x87, 0x52, 0xb5, 0x96, 0x1f, 0x73, 0x1e, 0xe6, 0xaa, + 0xb5, 0xfc, 0xb8, 0xf3, 0x70, 0xb6, 0x5a, 0xcb, 0x4f, 0x38, 0x0f, 0xc5, 0x5a, 0x2d, 0x0f, 0xce, + 0xc3, 0xdd, 0xd5, 0x5a, 0x7e, 0xd2, 0x79, 0x28, 0x14, 0x6b, 0xf9, 0x29, 0xf2, 0xa0, 0xd4, 0xf2, + 0xd3, 0xce, 0x43, 0xb5, 0x5a, 0xcb, 0xcf, 0x10, 0xca, 0xd5, 0x5a, 0xfe, 0x28, 0x29, 0xab, 0x54, + 0xcb, 0xe7, 0x9d, 0x87, 0xa5, 0x6a, 0x2d, 0x7f, 0x8c, 0x64, 0xae, 0xd6, 0xf2, 0x32, 0x29, 0xb4, + 0x5a, 0xcb, 0x5f, 0x42, 0xf2, 0x54, 0x6b, 0xf9, 0xe3, 0xa4, 0x88, 0x6a, 0x2d, 0x7f, 0x82, 0xb0, + 0xa1, 0xd4, 0xf2, 0x27, 0x49, 0x1e, 0xb5, 0x96, 0xbf, 0x94, 0x7c, 0x2a, 0xd7, 0xf2, 0xa7, 0x08, + 0x63, 0x4a, 0x2d, 0x7f, 0x19, 0x79, 0x50, 0x6b, 0x79, 0x44, 0x3e, 0x15, 0x6a, 0xf9, 0xcb, 0xd1, + 0x63, 0x60, 0x62, 0x11, 0xdb, 0x14, 0x44, 0x94, 0x07, 0x69, 0x11, 0xdb, 0x41, 0x33, 0xfe, 0x1b, + 0x12, 0x5c, 0xca, 0xa6, 0x7e, 0x0b, 0x96, 0xb9, 0xbd, 0x8c, 0x37, 0xb5, 0xc6, 0x9e, 0x72, 0xd1, + 0x31, 0xa1, 0x50, 0x95, 0x5b, 0xba, 0x6a, 0xfb, 0x9d, 0x11, 0x79, 0x8e, 0xb4, 0x38, 0xdd, 0xc5, + 0x28, 0xc9, 0x5f, 0x8c, 0x62, 0x16, 0xd9, 0x3f, 0x07, 0x35, 0x9a, 0x5b, 0x3f, 0x4e, 0x75, 0xad, + 0x1f, 0x3b, 0xcd, 0xa4, 0x8d, 0xad, 0x8e, 0x69, 0x68, 0xad, 0x2a, 0xdb, 0x2e, 0xa5, 0xab, 0x5e, + 0xdd, 0xc9, 0xf2, 0x33, 0xdd, 0x96, 0x41, 0xad, 0xb2, 0xa7, 0x47, 0xcd, 0x70, 0xbb, 0xab, 0x19, + 0xd2, 0x48, 0x3e, 0xe3, 0x35, 0x92, 0x1a, 0xd7, 0x48, 0xee, 0x3a, 0x00, 0xed, 0x78, 0xed, 0xa5, + 0x34, 0xd8, 0xd4, 0xc2, 0x77, 0x26, 0x74, 0x97, 0xab, 0x25, 0xf4, 0x85, 0x34, 0x9c, 0x54, 0x8c, + 0x5e, 0x16, 0x7e, 0x50, 0x17, 0xde, 0x1e, 0x84, 0x66, 0x95, 0x17, 0xe9, 0x6d, 0x3d, 0xab, 0xdd, + 0x9b, 0x66, 0x88, 0x44, 0x3f, 0xeb, 0x49, 0xb4, 0xca, 0x49, 0xf4, 0xce, 0xc1, 0x49, 0xc7, 0x13, + 0x68, 0x79, 0xa8, 0x1d, 0x50, 0x06, 0x7d, 0x27, 0x03, 0x8f, 0xa1, 0x1e, 0x0f, 0x8c, 0x43, 0xda, + 0xca, 0x0a, 0x46, 0x53, 0xc5, 0x1d, 0x5b, 0xb3, 0x6c, 0xee, 0x14, 0x6a, 0xd7, 0x54, 0x2a, 0x95, + 0xc0, 0x54, 0x2a, 0xdd, 0x77, 0x2a, 0x85, 0xde, 0x1b, 0x34, 0x1f, 0xce, 0xf1, 0x18, 0x17, 0x7a, + 0xf7, 0xff, 0x51, 0x35, 0x0c, 0x83, 0xda, 0xb3, 0x2b, 0x7e, 0x86, 0x83, 0x7a, 0xe1, 0xc0, 0x25, + 0xc4, 0x43, 0xfc, 0x8f, 0x86, 0x6b, 0xe7, 0x65, 0x82, 0xdf, 0x78, 0xa3, 0x24, 0xdf, 0x4c, 0xd4, + 0x40, 0xff, 0xdc, 0x18, 0x4c, 0x90, 0xb6, 0xb0, 0xac, 0x1b, 0xe7, 0xd1, 0x83, 0x12, 0x4c, 0x95, + 0xf1, 0x85, 0xe2, 0x96, 0xd6, 0x6a, 0x61, 0x63, 0x13, 0x07, 0xcd, 0xf6, 0x53, 0x30, 0xa6, 0xb5, + 0xdb, 0x65, 0x7f, 0x9f, 0xc1, 0x7d, 0x65, 0xfd, 0xef, 0xb7, 0x7b, 0x36, 0xf2, 0x54, 0x44, 0x23, + 0xf7, 0xca, 0x9d, 0x0d, 0x96, 0x19, 0x32, 0x43, 0xbe, 0x0a, 0x26, 0x1b, 0x6e, 0x16, 0xcf, 0x5b, + 0x3d, 0x98, 0x84, 0xbe, 0x15, 0xab, 0x1b, 0x10, 0x2a, 0x3c, 0x9e, 0x52, 0xe0, 0x21, 0xdb, 0x21, + 0x27, 0xe0, 0x58, 0xad, 0x52, 0xa9, 0xaf, 0x14, 0xca, 0xf7, 0xfa, 0xa7, 0x44, 0x37, 0xd0, 0x6b, + 0x32, 0x30, 0x53, 0x35, 0x5b, 0xbb, 0xd8, 0x87, 0xa9, 0xe4, 0xc3, 0xd4, 0x25, 0xa7, 0xd4, 0x3e, + 0x39, 0xc9, 0x27, 0x21, 0xa7, 0x19, 0x9d, 0x0b, 0xd8, 0xb5, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x23, + 0xc1, 0x76, 0xac, 0xf2, 0x30, 0xde, 0xde, 0x47, 0x92, 0x3c, 0x57, 0x21, 0x40, 0x9e, 0x81, 0xa9, + 0x0e, 0xdd, 0x2c, 0xac, 0x05, 0xf6, 0x84, 0xb9, 0x34, 0xc2, 0x22, 0xdd, 0xad, 0x96, 0x18, 0x8b, + 0xe4, 0x0d, 0x3d, 0xe8, 0x35, 0xff, 0x35, 0x0e, 0xe2, 0xc2, 0x41, 0x18, 0x8b, 0x07, 0xf2, 0xeb, + 0x86, 0x3d, 0xc3, 0x3b, 0x05, 0xc7, 0x59, 0xab, 0xad, 0x17, 0x97, 0x0a, 0xcb, 0xcb, 0x4a, 0x79, + 0x51, 0xa9, 0x97, 0xe6, 0xe9, 0x56, 0x85, 0x9f, 0x52, 0xa8, 0xd5, 0x94, 0x95, 0xd5, 0x5a, 0xb5, + 0xae, 0x3c, 0xab, 0xa8, 0x28, 0xf3, 0xc4, 0x11, 0x89, 0x9c, 0x24, 0x70, 0x5d, 0xc6, 0x0a, 0xe5, + 0xea, 0x39, 0x45, 0xcd, 0x6f, 0x9d, 0x29, 0xc0, 0x64, 0xa0, 0x9f, 0x77, 0xb8, 0x9b, 0xc7, 0x1b, + 0xda, 0x4e, 0x8b, 0xd9, 0x6a, 0xf9, 0x23, 0x0e, 0x77, 0x44, 0x36, 0x15, 0xa3, 0xb5, 0x97, 0x4f, + 0xc9, 0x79, 0x98, 0x0a, 0x76, 0xe9, 0xf9, 0x34, 0x7a, 0xd7, 0x15, 0x30, 0x71, 0xce, 0xb4, 0xce, + 0x13, 0xef, 0x31, 0xf4, 0x41, 0x1a, 0x4d, 0xc2, 0x3d, 0x97, 0x17, 0x18, 0xd8, 0x5f, 0x27, 0xee, + 0x2d, 0xe0, 0x52, 0x9b, 0xed, 0x7b, 0xf6, 0xee, 0x2a, 0x98, 0xbc, 0xe0, 0xe6, 0xf6, 0x5b, 0x7a, + 0x20, 0x09, 0xfd, 0x37, 0xb1, 0xfd, 0xff, 0xfe, 0x45, 0x26, 0xbf, 0x3f, 0xfd, 0xce, 0x34, 0xe4, + 0x16, 0xb1, 0x5d, 0x68, 0xb5, 0x82, 0x72, 0x7b, 0x40, 0xf8, 0x3c, 0x05, 0x57, 0x89, 0x42, 0xab, + 0x15, 0xde, 0xa8, 0x02, 0x02, 0x72, 0xfd, 0x7e, 0xb9, 0x34, 0xf4, 0x26, 0xa1, 0x93, 0x50, 0x7d, + 0x0a, 0x4c, 0x5e, 0x62, 0x1f, 0x93, 0xbc, 0x3d, 0xee, 0x87, 0x02, 0x56, 0xce, 0x93, 0xfc, 0x48, + 0x22, 0xa9, 0xe8, 0xbd, 0x72, 0x37, 0x9f, 0x7c, 0x0f, 0x8c, 0xed, 0x74, 0x70, 0x51, 0xeb, 0x60, + 0xc2, 0x5b, 0x77, 0x4d, 0x2b, 0xeb, 0xf7, 0xe1, 0x86, 0x3d, 0x5b, 0xda, 0x76, 0x0c, 0xea, 0x35, + 0x9a, 0xd1, 0x0b, 0xce, 0xc1, 0xde, 0x55, 0x97, 0x82, 0x33, 0x29, 0xb9, 0xa0, 0xdb, 0x5b, 0xc5, + 0x2d, 0xcd, 0x66, 0x6b, 0xdb, 0xde, 0x3b, 0x7a, 0xe9, 0x00, 0x70, 0x46, 0xee, 0x05, 0x87, 0x1e, + 0xcb, 0x8a, 0x0d, 0xe2, 0x10, 0x36, 0x70, 0x07, 0x01, 0xf1, 0x1f, 0xd3, 0x90, 0xa9, 0xb4, 0xb1, + 0x21, 0x7c, 0x06, 0xc1, 0x93, 0x6d, 0xba, 0x4b, 0xb6, 0x0f, 0x8a, 0x7b, 0x87, 0x79, 0x95, 0x76, + 0x4a, 0x0e, 0x91, 0xec, 0x8d, 0x90, 0xd1, 0x8d, 0x0d, 0x93, 0x19, 0xa6, 0x97, 0x87, 0x6c, 0x02, + 0x95, 0x8c, 0x0d, 0x53, 0x25, 0x19, 0x45, 0x1d, 0xc3, 0xa2, 0xca, 0x4e, 0x5e, 0xdc, 0xdf, 0x1d, + 0x87, 0x1c, 0x55, 0x67, 0xf4, 0x4a, 0x09, 0xa4, 0x42, 0xb3, 0x19, 0x22, 0xf8, 0xf4, 0x3e, 0xc1, + 0x9b, 0xe4, 0x37, 0x0f, 0x13, 0xef, 0x9d, 0x0f, 0x21, 0x21, 0xd8, 0xb7, 0xb3, 0x26, 0x55, 0x68, + 0x36, 0xc3, 0x7d, 0x50, 0xbd, 0x02, 0xd3, 0x7c, 0x81, 0xc1, 0x16, 0x2e, 0x89, 0xb5, 0xf0, 0xd8, + 0x03, 0x41, 0x28, 0x7f, 0xc9, 0x43, 0xf4, 0xcf, 0x69, 0x18, 0x5b, 0xd6, 0x3b, 0xb6, 0x83, 0x4d, + 0x41, 0x04, 0x9b, 0x2b, 0x60, 0xc2, 0x15, 0x8d, 0xd3, 0xe5, 0x39, 0xfd, 0xb9, 0x9f, 0x80, 0xde, + 0x18, 0x44, 0xe7, 0x6e, 0x1e, 0x9d, 0x27, 0x47, 0xd7, 0x9e, 0x71, 0x11, 0xee, 0xdb, 0xed, 0x17, + 0x9b, 0xee, 0x2e, 0xf6, 0x77, 0x3c, 0x81, 0xaf, 0x70, 0x02, 0xbf, 0x75, 0x90, 0x22, 0x93, 0x17, + 0xfa, 0x17, 0xd3, 0x00, 0x4e, 0xd9, 0xec, 0x00, 0xcd, 0xe3, 0xb9, 0x63, 0xb1, 0x11, 0xd2, 0x7d, + 0x4d, 0x50, 0xba, 0x2b, 0xbc, 0x74, 0x9f, 0xda, 0xbf, 0xaa, 0x51, 0x07, 0x65, 0xe4, 0x3c, 0x48, + 0xba, 0x27, 0x5a, 0xe7, 0x11, 0xbd, 0xd3, 0x13, 0xea, 0x2a, 0x27, 0xd4, 0xdb, 0x07, 0x2c, 0x29, + 0x79, 0xb9, 0xfe, 0x75, 0x1a, 0xc6, 0xaa, 0xd8, 0x76, 0xba, 0x49, 0x74, 0x56, 0xa4, 0x87, 0x0f, + 0xb4, 0xed, 0xb4, 0x60, 0xdb, 0xfe, 0x61, 0x4a, 0x34, 0xbc, 0x86, 0x2f, 0x19, 0xc6, 0x53, 0xc8, + 0xe2, 0xc1, 0x43, 0x42, 0xe1, 0x35, 0xfa, 0x51, 0x4b, 0x5e, 0xba, 0x6f, 0x4f, 0x7b, 0x1b, 0xf3, + 0x4f, 0xe0, 0x26, 0x76, 0x41, 0xb3, 0x38, 0xb5, 0xdf, 0x2c, 0xfe, 0x7e, 0x2a, 0xbe, 0x19, 0x12, + 0xb5, 0x2b, 0x1d, 0xdb, 0xd8, 0x18, 0xc2, 0x86, 0xf1, 0x20, 0xf2, 0x7a, 0x9e, 0x04, 0x39, 0xb6, + 0xb2, 0x7c, 0x67, 0xf4, 0xca, 0x72, 0xff, 0xa9, 0xc5, 0x07, 0x06, 0x30, 0xe5, 0xa2, 0x96, 0x7b, + 0x3d, 0x36, 0xd2, 0x01, 0x36, 0x6e, 0x80, 0x2c, 0x89, 0xff, 0xc7, 0xc6, 0x39, 0x7f, 0xaf, 0xdf, + 0x25, 0xa1, 0x38, 0x5f, 0x55, 0x9a, 0x29, 0x36, 0x0a, 0x43, 0x58, 0x21, 0x1e, 0x04, 0x85, 0x7f, + 0xf9, 0x5c, 0xca, 0x33, 0x42, 0x3e, 0x90, 0x61, 0xe6, 0xdf, 0xa7, 0xf8, 0x48, 0x04, 0x0d, 0xd3, + 0xb0, 0xf1, 0xc5, 0xc0, 0x9a, 0xbc, 0x97, 0x10, 0x69, 0x19, 0x9c, 0x82, 0x31, 0xdb, 0x0a, 0xae, + 0xd3, 0xbb, 0xaf, 0xc1, 0x1e, 0x27, 0xcb, 0xf7, 0x38, 0x65, 0x38, 0xa3, 0x1b, 0x8d, 0xd6, 0x4e, + 0x13, 0xab, 0xb8, 0xa5, 0x39, 0xb5, 0xea, 0x14, 0x3a, 0xf3, 0xb8, 0x8d, 0x8d, 0x26, 0x36, 0x6c, + 0xca, 0xa7, 0xeb, 0x93, 0x2b, 0x90, 0x13, 0x7d, 0x33, 0xa8, 0x18, 0x77, 0xf0, 0x8a, 0xf1, 0xf8, + 0x5e, 0xf3, 0x8a, 0x08, 0x23, 0xf4, 0x56, 0x00, 0x5a, 0xb7, 0xb3, 0x3a, 0xbe, 0xc0, 0x3a, 0xc4, + 0xcb, 0xba, 0x4c, 0xd1, 0x8a, 0x97, 0x41, 0x0d, 0x64, 0x46, 0x0f, 0x7b, 0xca, 0x70, 0x17, 0xa7, + 0x0c, 0x37, 0x08, 0xb2, 0x10, 0x4f, 0x0f, 0xda, 0x03, 0xac, 0x75, 0x4c, 0xc3, 0x84, 0xbf, 0x42, + 0x29, 0xc9, 0x97, 0xc1, 0x09, 0xd7, 0xe7, 0xa1, 0xac, 0x28, 0xf3, 0xd5, 0xfa, 0xda, 0xea, 0xa2, + 0x5a, 0x98, 0x57, 0xf2, 0x20, 0xcb, 0x30, 0x53, 0x99, 0xbb, 0x5b, 0x29, 0xd6, 0x3c, 0x57, 0x85, + 0x0c, 0xfa, 0xab, 0x34, 0x64, 0x89, 0x43, 0x39, 0x7a, 0xf6, 0x90, 0x34, 0xa7, 0xc3, 0xed, 0xf0, + 0x78, 0x13, 0x29, 0xf1, 0x08, 0x81, 0x4c, 0x98, 0x84, 0xab, 0x03, 0x45, 0x08, 0x8c, 0x20, 0x94, + 0x7c, 0xf3, 0x74, 0x9a, 0x64, 0x75, 0xcb, 0xbc, 0xf0, 0x93, 0xdc, 0x24, 0x9d, 0xfa, 0x1f, 0x72, + 0x93, 0xec, 0xc1, 0xc2, 0xc8, 0x9b, 0x64, 0x8f, 0x76, 0x17, 0xd1, 0x4c, 0xd1, 0x73, 0xb3, 0xde, + 0x82, 0xcc, 0x0b, 0xd2, 0x07, 0x5a, 0x90, 0x29, 0xc0, 0xb4, 0x6e, 0xd8, 0xd8, 0x32, 0xb4, 0xd6, + 0x42, 0x4b, 0xdb, 0x74, 0x8f, 0x2d, 0x77, 0xcf, 0xc2, 0x4b, 0x81, 0x3c, 0x2a, 0xff, 0x87, 0x7c, + 0x1a, 0xc0, 0xc6, 0xdb, 0xed, 0x96, 0x66, 0xfb, 0xaa, 0x17, 0x48, 0x09, 0x6a, 0x5f, 0x86, 0xd7, + 0xbe, 0x9b, 0xe0, 0x12, 0x0a, 0x5a, 0x6d, 0xaf, 0x8d, 0xd7, 0x0c, 0xfd, 0xe7, 0x77, 0x48, 0xe0, + 0x1a, 0xaa, 0xa3, 0xbd, 0x3e, 0x71, 0xcb, 0x12, 0xb9, 0xae, 0x65, 0x89, 0x7f, 0x14, 0x3e, 0x9a, + 0xe9, 0xb6, 0xfa, 0x3e, 0x47, 0x33, 0xbd, 0x96, 0x26, 0x75, 0xb5, 0x34, 0xcf, 0x58, 0xc8, 0x08, + 0x18, 0x0b, 0x41, 0x54, 0xb2, 0x82, 0x86, 0xf6, 0x1b, 0x84, 0xce, 0x7e, 0x46, 0x55, 0x63, 0x04, + 0x13, 0x39, 0x09, 0x66, 0x68, 0xd1, 0x73, 0xa6, 0x79, 0x7e, 0x5b, 0xb3, 0xce, 0x23, 0xeb, 0x40, + 0xaa, 0x18, 0xb9, 0x26, 0x12, 0xba, 0xd0, 0xf7, 0xd9, 0x20, 0xea, 0x8b, 0x3c, 0xea, 0x4f, 0x0a, + 0x17, 0x97, 0xcb, 0xf3, 0x68, 0x16, 0x45, 0xde, 0xea, 0xe1, 0x79, 0x37, 0x87, 0xe7, 0x53, 0x62, + 0x33, 0x98, 0x3c, 0xae, 0x7f, 0xe2, 0xe1, 0xea, 0x76, 0xf4, 0xc1, 0xf9, 0xe4, 0x30, 0x71, 0x45, + 0x5f, 0x1b, 0x0c, 0x3b, 0x97, 0xaf, 0x01, 0xb0, 0xcb, 0x83, 0x74, 0xde, 0xdb, 0xc2, 0x72, 0x1e, + 0x83, 0x15, 0xca, 0x24, 0x87, 0x66, 0x08, 0xcb, 0x23, 0x41, 0xf3, 0x38, 0xcf, 0x42, 0xa5, 0x9d, + 0x28, 0xa6, 0x5f, 0x15, 0x5e, 0xa7, 0xe9, 0x29, 0x20, 0xca, 0xdd, 0x68, 0x5a, 0xa5, 0xd8, 0x22, + 0x8f, 0x38, 0x9b, 0xc9, 0xa3, 0xf9, 0x92, 0x2c, 0x4c, 0xb8, 0x87, 0x67, 0x49, 0x44, 0x6d, 0x0f, + 0xc3, 0x93, 0x90, 0xeb, 0x98, 0x3b, 0x56, 0x03, 0xb3, 0x95, 0x33, 0xf6, 0x36, 0xc0, 0x2a, 0x4f, + 0xdf, 0xf1, 0x7c, 0x9f, 0xc9, 0x90, 0x89, 0x6d, 0x32, 0x84, 0x1b, 0xa4, 0x51, 0x03, 0xfc, 0x4b, + 0x85, 0xc3, 0x20, 0x72, 0x98, 0x55, 0xb1, 0xfd, 0x68, 0x1c, 0xe3, 0xff, 0x50, 0x68, 0x0d, 0xa1, + 0x4f, 0x4d, 0xe2, 0xa9, 0x5c, 0x65, 0x00, 0x43, 0xf5, 0x72, 0xb8, 0xd4, 0xcd, 0xc1, 0x2c, 0x54, + 0x62, 0x91, 0xae, 0xa9, 0xcb, 0x79, 0x09, 0x3d, 0x2f, 0x03, 0x79, 0xca, 0x5a, 0xc5, 0x33, 0xd6, + 0xd0, 0x03, 0xa9, 0xc3, 0xb6, 0x48, 0xc3, 0xa7, 0x98, 0x9f, 0x4f, 0x8b, 0x86, 0x5a, 0xe2, 0x04, + 0xef, 0xd7, 0x2e, 0x44, 0x93, 0x06, 0x68, 0x66, 0x11, 0xca, 0x87, 0x7e, 0x3b, 0x25, 0x12, 0xb9, + 0x49, 0x8c, 0xc5, 0xe4, 0x7b, 0xa5, 0x2f, 0x65, 0xdc, 0x18, 0x08, 0x0b, 0x96, 0xb9, 0xbd, 0x66, + 0xb5, 0xd0, 0xff, 0x29, 0x14, 0x18, 0x2f, 0xc4, 0xfc, 0x4f, 0x87, 0x9b, 0xff, 0x79, 0x90, 0x76, + 0xac, 0x96, 0x3b, 0x7c, 0xef, 0x58, 0xad, 0x01, 0x86, 0x6f, 0xf9, 0x5a, 0x98, 0xd1, 0x9a, 0xcd, + 0x55, 0x6d, 0x13, 0x17, 0x9d, 0x79, 0xb5, 0x61, 0xb3, 0xf3, 0xd1, 0x5d, 0xa9, 0x91, 0x5d, 0xd1, + 0x37, 0x85, 0x77, 0xe2, 0x38, 0x90, 0x98, 0x7c, 0x46, 0x32, 0xbc, 0x39, 0x43, 0x42, 0x63, 0x4b, + 0xf3, 0xa3, 0x35, 0xb0, 0x37, 0xc1, 0x1d, 0x3a, 0x01, 0xbe, 0x93, 0xd7, 0xac, 0xdf, 0x4f, 0xc3, + 0x98, 0x23, 0xef, 0x42, 0xb3, 0x89, 0x1e, 0xc7, 0x05, 0x35, 0x09, 0xdd, 0x23, 0x7d, 0x91, 0xf0, + 0xe6, 0xb4, 0x5b, 0x43, 0x4a, 0x3f, 0x04, 0x13, 0x5f, 0x88, 0x69, 0x4e, 0x88, 0x62, 0x7b, 0xd0, + 0x91, 0x45, 0x24, 0x2f, 0xbe, 0xcf, 0xa4, 0x61, 0xda, 0x9d, 0x47, 0x2c, 0x60, 0xbb, 0xb1, 0x85, + 0x6e, 0x15, 0x5d, 0x68, 0x62, 0x2d, 0x2d, 0xed, 0xb5, 0x34, 0xf4, 0xa3, 0x54, 0x4c, 0x95, 0xe7, + 0x4a, 0x0e, 0x59, 0xa5, 0x8b, 0xa5, 0x8b, 0x51, 0x04, 0x93, 0x17, 0xe6, 0xc3, 0x69, 0x80, 0x9a, + 0xe9, 0xcd, 0x75, 0x0f, 0x20, 0xc9, 0x57, 0x08, 0x47, 0xa9, 0x67, 0x15, 0xf7, 0x8b, 0x8d, 0xdf, + 0x73, 0x08, 0x6e, 0xb1, 0xf5, 0x2b, 0x69, 0x24, 0x6d, 0x7d, 0x62, 0x7e, 0xa7, 0xdd, 0xd2, 0x1b, + 0x9a, 0xdd, 0xbd, 0x2f, 0x1c, 0x2e, 0x5e, 0x72, 0xdd, 0x4c, 0x2c, 0xa3, 0xd0, 0x2b, 0x23, 0x44, + 0x96, 0xf4, 0xb0, 0x6d, 0xda, 0x3d, 0x6c, 0x2b, 0xb8, 0xd7, 0xd3, 0x87, 0xf8, 0x08, 0xd4, 0x53, + 0x82, 0xa3, 0x95, 0x36, 0x36, 0xe6, 0x2c, 0xac, 0x35, 0x1b, 0xd6, 0xce, 0xf6, 0x7a, 0x27, 0xe8, + 0xd4, 0x10, 0xad, 0xa3, 0x81, 0xa5, 0xe3, 0x34, 0xb7, 0x74, 0x8c, 0x9e, 0x2f, 0x89, 0x1e, 0xfd, + 0x0e, 0x6c, 0x70, 0x04, 0x78, 0x18, 0x60, 0xa8, 0x8b, 0xb5, 0x15, 0xd7, 0xb5, 0x4a, 0x9c, 0x89, + 0xb3, 0x4a, 0xfc, 0x36, 0xa1, 0x83, 0xe4, 0x42, 0xf5, 0x1a, 0xc9, 0x8e, 0xea, 0x4c, 0x15, 0xdb, + 0x21, 0xf0, 0x5e, 0x03, 0xd3, 0xeb, 0xfe, 0x17, 0x0f, 0x62, 0x3e, 0xb1, 0x87, 0x9f, 0xc3, 0xdb, + 0xe3, 0xae, 0xc0, 0xf0, 0x2c, 0x84, 0xa0, 0xeb, 0x21, 0x98, 0x16, 0xd9, 0x4c, 0x8d, 0xb5, 0x9c, + 0x12, 0x59, 0x7e, 0xf2, 0x28, 0x7c, 0x22, 0x0d, 0x93, 0xe4, 0x12, 0x9d, 0xb9, 0x3d, 0xe2, 0x9d, + 0x2f, 0x68, 0x94, 0xbc, 0x24, 0x28, 0x66, 0x19, 0x32, 0x2d, 0xdd, 0x38, 0xef, 0xee, 0x82, 0x3b, + 0xcf, 0xfe, 0x95, 0x0c, 0xe9, 0x1e, 0x57, 0x32, 0x78, 0xfb, 0x14, 0x5e, 0xb9, 0x07, 0xba, 0x23, + 0xac, 0x2f, 0xb9, 0xe4, 0xc5, 0xf8, 0xf7, 0x19, 0xc8, 0x55, 0xb1, 0x66, 0x35, 0xb6, 0xd0, 0x07, + 0xd2, 0x3d, 0xa7, 0x0a, 0xe3, 0xfc, 0x54, 0x61, 0x01, 0xc6, 0x36, 0xf4, 0x96, 0x8d, 0x2d, 0xea, + 0x19, 0x14, 0xec, 0xda, 0x69, 0x13, 0x9f, 0x6b, 0x99, 0x8d, 0xf3, 0xb3, 0xcc, 0x74, 0x9f, 0x75, + 0x83, 0x49, 0xcd, 0x2e, 0x90, 0x9f, 0x54, 0xf7, 0x67, 0xc7, 0x20, 0xec, 0x98, 0x96, 0x1d, 0x16, + 0x9d, 0x35, 0x84, 0x4a, 0xd5, 0xb4, 0x6c, 0x95, 0xfe, 0xe8, 0xc0, 0xbc, 0xb1, 0xd3, 0x6a, 0xd5, + 0xf0, 0x45, 0xdb, 0x9d, 0xb6, 0xb9, 0xef, 0x8e, 0xb1, 0x68, 0x6e, 0x6c, 0x74, 0x30, 0x5d, 0x34, + 0xc8, 0xaa, 0xec, 0x4d, 0x3e, 0x0e, 0xd9, 0x96, 0xbe, 0xad, 0xd3, 0x89, 0x46, 0x56, 0xa5, 0x2f, + 0xf2, 0xf5, 0x90, 0xf7, 0xe7, 0x38, 0x94, 0xd1, 0x53, 0x39, 0xd2, 0x34, 0xf7, 0xa5, 0x3b, 0x3a, + 0x73, 0x1e, 0xef, 0x75, 0x4e, 0x8d, 0x91, 0xef, 0xe4, 0x99, 0x77, 0xc3, 0x14, 0xd9, 0xef, 0xa0, + 0x12, 0x0f, 0x9f, 0xc1, 0x5a, 0xb8, 0x61, 0x5a, 0x4d, 0x57, 0x36, 0xe1, 0x13, 0x0c, 0x96, 0x2f, + 0xde, 0x2e, 0x45, 0xcf, 0xc2, 0x93, 0xd7, 0xb4, 0xf7, 0xe6, 0x9c, 0x6e, 0xd3, 0x29, 0xfa, 0x9c, + 0x6e, 0x6f, 0xad, 0x60, 0x5b, 0x43, 0x7f, 0x2f, 0xf5, 0xd4, 0xb8, 0xc9, 0xff, 0x5f, 0xe3, 0xfa, + 0x68, 0x1c, 0x0d, 0x13, 0x60, 0xef, 0x58, 0x86, 0x23, 0x47, 0x16, 0x98, 0x2b, 0x90, 0x22, 0xdf, + 0x0e, 0x97, 0xf9, 0x6f, 0xee, 0x52, 0xe9, 0x3c, 0x9b, 0xb6, 0x4e, 0x90, 0xec, 0xe1, 0x19, 0xe4, + 0x55, 0xb8, 0x9a, 0x7e, 0x5c, 0xaa, 0xad, 0x2c, 0x2f, 0xe9, 0x9b, 0x5b, 0x2d, 0x7d, 0x73, 0xcb, + 0xee, 0x94, 0x8c, 0x8e, 0x8d, 0xb5, 0x66, 0x65, 0x43, 0xa5, 0x71, 0x95, 0x81, 0xd0, 0x11, 0xc9, + 0xca, 0x7b, 0x0e, 0x89, 0x8d, 0x6e, 0x41, 0x4d, 0x09, 0x69, 0x29, 0x4f, 0x71, 0x5a, 0x4a, 0x67, + 0xa7, 0xe5, 0x61, 0x7a, 0x45, 0x17, 0xa6, 0xbe, 0xaa, 0xef, 0xb4, 0x48, 0x73, 0x21, 0x99, 0xe3, + 0x8e, 0x73, 0x11, 0x9c, 0x24, 0xdf, 0x6c, 0xfe, 0xdf, 0x1c, 0x64, 0x17, 0x2d, 0xad, 0xbd, 0x85, + 0x9e, 0x17, 0xe8, 0x9f, 0x87, 0xd5, 0x26, 0x3c, 0xed, 0x4c, 0xf7, 0xd3, 0x4e, 0xa9, 0x8f, 0x76, + 0x66, 0x02, 0xda, 0x19, 0xbe, 0xa8, 0x7c, 0x06, 0xa6, 0x1a, 0x66, 0xab, 0x85, 0x1b, 0x8e, 0x3c, + 0x4a, 0x4d, 0xb2, 0x9a, 0x33, 0xa1, 0x72, 0x69, 0x24, 0xe0, 0x1e, 0xb6, 0xab, 0x74, 0x0d, 0x9d, + 0x2a, 0xbd, 0x9f, 0x80, 0x1e, 0x48, 0x43, 0x46, 0x69, 0x6e, 0x62, 0x6e, 0x9d, 0x3d, 0x15, 0x58, + 0x67, 0x3f, 0x09, 0x39, 0x5b, 0xb3, 0x36, 0xb1, 0xed, 0xae, 0x13, 0xd0, 0x37, 0x2f, 0x0e, 0xa0, + 0x14, 0x88, 0x03, 0xf8, 0x54, 0xc8, 0x38, 0x32, 0x63, 0x11, 0x76, 0xae, 0xee, 0x05, 0x3f, 0x91, + 0xfd, 0xac, 0x53, 0xe2, 0xac, 0x53, 0x6b, 0x95, 0xfc, 0xd0, 0x8d, 0x75, 0x76, 0x1f, 0xd6, 0xe4, + 0x8a, 0x98, 0x86, 0x69, 0x94, 0xb6, 0xb5, 0x4d, 0xcc, 0xaa, 0xe9, 0x27, 0xb8, 0x5f, 0x95, 0x6d, + 0xf3, 0x3e, 0x9d, 0x85, 0xe4, 0xf3, 0x13, 0x9c, 0x2a, 0x6c, 0xe9, 0xcd, 0x26, 0x36, 0x58, 0xcb, + 0x66, 0x6f, 0x67, 0x4e, 0x43, 0xc6, 0xe1, 0xc1, 0xd1, 0x1f, 0xc7, 0x58, 0xc8, 0x1f, 0x91, 0xa7, + 0x9c, 0x66, 0x45, 0x1b, 0x6f, 0x3e, 0xc5, 0xaf, 0xa9, 0x8a, 0xb8, 0xed, 0xd0, 0xca, 0xf5, 0x6e, + 0x5c, 0x4f, 0x84, 0xac, 0x61, 0x36, 0x71, 0xdf, 0x41, 0x88, 0xe6, 0x92, 0x9f, 0x0c, 0x59, 0xdc, + 0x74, 0x7a, 0x05, 0x89, 0x64, 0x3f, 0x1d, 0x2d, 0x4b, 0x95, 0x66, 0x8e, 0xe7, 0x1b, 0xd4, 0x8b, + 0xdb, 0xe4, 0x1b, 0xe0, 0xaf, 0x8c, 0xc1, 0x51, 0xda, 0x07, 0x54, 0x77, 0xd6, 0x1d, 0x52, 0xeb, + 0x18, 0x3d, 0xd4, 0x7b, 0xe0, 0x3a, 0xca, 0x2b, 0xfb, 0x71, 0xc8, 0x76, 0x76, 0xd6, 0x3d, 0x23, + 0x94, 0xbe, 0x04, 0x9b, 0x6e, 0x7a, 0x28, 0xc3, 0x99, 0x34, 0xe8, 0x70, 0xc6, 0x0d, 0x4d, 0x92, + 0xdb, 0xf8, 0xfd, 0x81, 0x2c, 0x47, 0x92, 0xdd, 0x81, 0xac, 0xd7, 0x30, 0x74, 0x0a, 0xc6, 0xb4, + 0x0d, 0x1b, 0x5b, 0xbe, 0x99, 0xc8, 0x5e, 0x9d, 0xa1, 0x72, 0x1d, 0x6f, 0x98, 0x96, 0x23, 0x96, + 0x09, 0x3a, 0x54, 0xba, 0xef, 0x81, 0x96, 0x0b, 0xdc, 0x0e, 0xd9, 0x0d, 0x70, 0xcc, 0x30, 0xe7, + 0x71, 0x9b, 0xc9, 0x99, 0xa2, 0x38, 0x4d, 0x5a, 0xc0, 0xfe, 0x0f, 0xfb, 0xba, 0x92, 0x99, 0xfd, + 0x5d, 0x09, 0xfa, 0x5c, 0xdc, 0x39, 0x73, 0x17, 0xd0, 0x43, 0xb3, 0xd0, 0xe4, 0xa7, 0xc3, 0x54, + 0x93, 0xb9, 0x68, 0x35, 0x74, 0xaf, 0x95, 0x84, 0xfe, 0xc7, 0x65, 0xf6, 0x15, 0x29, 0x13, 0x54, + 0xa4, 0x45, 0x18, 0x27, 0x07, 0x72, 0x1c, 0x4d, 0xca, 0x76, 0xc5, 0x2b, 0x24, 0xd3, 0x3a, 0xaf, + 0x52, 0x01, 0xb1, 0xcd, 0x16, 0xd9, 0x2f, 0xaa, 0xf7, 0x73, 0xbc, 0xd9, 0x77, 0xb4, 0x84, 0x92, + 0x6f, 0x8e, 0xbf, 0x93, 0x83, 0xcb, 0x8a, 0x96, 0xd9, 0xe9, 0x90, 0x28, 0x14, 0xdd, 0x0d, 0xf3, + 0x2d, 0x69, 0x2e, 0x22, 0xf0, 0xa3, 0xba, 0xf9, 0xf5, 0x6a, 0x50, 0xa3, 0x6b, 0x1a, 0xdf, 0x14, + 0x3e, 0xca, 0xec, 0xed, 0x3f, 0x84, 0x08, 0xfd, 0x27, 0xa3, 0x91, 0xbc, 0x37, 0x25, 0x72, 0xba, + 0x3a, 0xa6, 0xac, 0x92, 0x6f, 0x2e, 0x5f, 0x4d, 0xc3, 0xe5, 0xdd, 0xdc, 0xac, 0x19, 0x1d, 0xaf, + 0xc1, 0x5c, 0xd9, 0xa7, 0xbd, 0xf0, 0xa7, 0x71, 0x23, 0x6f, 0x40, 0x09, 0xa9, 0x7b, 0xa0, 0xb4, + 0x90, 0xc5, 0x92, 0xf7, 0xa7, 0x44, 0x6e, 0x40, 0x89, 0x4d, 0x3e, 0x79, 0xe1, 0x7e, 0x3e, 0x03, + 0x47, 0x17, 0x2d, 0x73, 0xa7, 0xdd, 0xf1, 0x7b, 0xa0, 0xbf, 0xed, 0xbd, 0xe1, 0x9a, 0x13, 0x31, + 0x0d, 0xae, 0x82, 0x49, 0x8b, 0x59, 0x73, 0xfe, 0xf6, 0x6b, 0x30, 0x29, 0xd8, 0x7b, 0x49, 0x07, + 0xe9, 0xbd, 0xfc, 0x7e, 0x26, 0xc3, 0xf5, 0x33, 0xdd, 0x3d, 0x47, 0xb6, 0x47, 0xcf, 0xf1, 0x37, + 0xe9, 0x98, 0x83, 0x6a, 0x97, 0x88, 0x42, 0xfa, 0x8b, 0x22, 0xe4, 0x36, 0x49, 0x46, 0xd6, 0x5d, + 0x3c, 0x41, 0xac, 0x66, 0x84, 0xb8, 0xca, 0x7e, 0xf5, 0xe5, 0x2a, 0x05, 0x75, 0x38, 0xd6, 0x00, + 0x17, 0xcd, 0x6d, 0xf2, 0x4a, 0xf5, 0x60, 0x06, 0xa6, 0xbc, 0xd2, 0x4b, 0xcd, 0x0e, 0x7a, 0x49, + 0x6f, 0x8d, 0x9a, 0x16, 0xd1, 0xa8, 0x7d, 0xeb, 0xcc, 0xde, 0xa8, 0x23, 0x05, 0x46, 0x9d, 0x9e, + 0xa3, 0xcb, 0x54, 0xc8, 0xe8, 0x82, 0x9e, 0x2b, 0x89, 0xc6, 0xd4, 0xe7, 0xbb, 0x56, 0x52, 0x9b, + 0x47, 0xf3, 0x60, 0x21, 0x18, 0xd9, 0xbf, 0x7f, 0xad, 0x92, 0x57, 0x92, 0x0f, 0xa7, 0xe1, 0xd8, + 0xfe, 0xce, 0xfc, 0xb1, 0xbc, 0x17, 0x9a, 0x53, 0xa7, 0x8e, 0xe7, 0x85, 0x46, 0xde, 0xf8, 0x4d, + 0xba, 0xc8, 0xa3, 0xb1, 0x9c, 0xbd, 0xd7, 0xbf, 0x13, 0x17, 0x3b, 0xfc, 0x2a, 0x48, 0x34, 0x79, + 0x01, 0xfe, 0x9a, 0x04, 0x13, 0x55, 0x6c, 0x2f, 0x6b, 0x7b, 0xe6, 0x8e, 0x8d, 0x34, 0xd1, 0xed, + 0xb9, 0xa7, 0x41, 0xae, 0x45, 0x7e, 0x61, 0x17, 0x44, 0x5e, 0xd5, 0x73, 0x7f, 0x8b, 0xf8, 0xfe, + 0x50, 0xd2, 0x2a, 0xcb, 0xcf, 0x9f, 0x49, 0x16, 0xd9, 0x1d, 0xf5, 0xb8, 0x1b, 0xca, 0xd6, 0x4e, + 0xac, 0xbd, 0xd3, 0xb0, 0xa2, 0x93, 0x87, 0xe5, 0xf9, 0x12, 0x4c, 0x57, 0xb1, 0x5d, 0xea, 0x2c, + 0x68, 0xbb, 0xa6, 0xa5, 0xdb, 0x38, 0x78, 0x57, 0x51, 0x34, 0x34, 0xa7, 0x01, 0x74, 0xef, 0x37, + 0x16, 0x29, 0x21, 0x90, 0x82, 0x7e, 0x3b, 0xae, 0xa3, 0x10, 0xc7, 0xc7, 0x50, 0x40, 0x88, 0xe5, + 0x63, 0x11, 0x55, 0x7c, 0xf2, 0x40, 0x7c, 0x39, 0xcd, 0x80, 0x28, 0x58, 0x8d, 0x2d, 0x7d, 0x17, + 0x37, 0x63, 0x02, 0xe1, 0xfe, 0xe6, 0x03, 0xe1, 0x11, 0x8a, 0xed, 0xbe, 0xc2, 0xf1, 0x31, 0x0c, + 0xf7, 0x95, 0x28, 0x82, 0x23, 0x09, 0x76, 0xe0, 0x74, 0x3d, 0x6c, 0x3d, 0xf3, 0x4e, 0x51, 0xb1, + 0xfa, 0x26, 0x5b, 0x3a, 0x68, 0xb2, 0x0d, 0xd4, 0xb1, 0xd0, 0xb2, 0xfb, 0xe9, 0x74, 0x26, 0x89, + 0x8e, 0xa5, 0x67, 0xd1, 0xc9, 0x0b, 0xfd, 0xfd, 0x12, 0x9c, 0xf0, 0x4e, 0x01, 0x57, 0xb1, 0x3d, + 0xaf, 0x75, 0xb6, 0xd6, 0x4d, 0xcd, 0x6a, 0x06, 0x2f, 0x0e, 0x1d, 0xf8, 0xc4, 0x1f, 0xfa, 0x52, + 0x10, 0x84, 0x32, 0x0f, 0x42, 0x4f, 0x57, 0xd1, 0x9e, 0xbc, 0x0c, 0xa3, 0x93, 0x89, 0xf4, 0x66, + 0xfd, 0x5d, 0x0f, 0xac, 0x67, 0x72, 0x60, 0xdd, 0x31, 0x28, 0x8b, 0xc9, 0x03, 0xf7, 0x9b, 0x74, + 0x44, 0x08, 0x78, 0x35, 0xdf, 0x2b, 0x0a, 0x58, 0x88, 0x57, 0xab, 0x14, 0xea, 0xd5, 0x3a, 0xd0, + 0x18, 0xd1, 0xd7, 0x23, 0x39, 0xd9, 0x31, 0xe2, 0x10, 0xbd, 0x8d, 0xdf, 0x2d, 0x41, 0x9e, 0x84, + 0x81, 0x08, 0x78, 0x7c, 0xa3, 0xfb, 0x44, 0xd1, 0xd9, 0xe7, 0x5d, 0x3e, 0x16, 0xd7, 0xbb, 0x1c, + 0xbd, 0x2b, 0xae, 0x0f, 0x79, 0x37, 0xb7, 0x43, 0x41, 0x2c, 0x96, 0x8b, 0x78, 0x1f, 0x0e, 0x92, + 0x07, 0xed, 0xbf, 0x4a, 0x00, 0x4e, 0x83, 0x66, 0x67, 0x1f, 0x9e, 0x25, 0x0a, 0xd7, 0x8d, 0x41, + 0xbf, 0x7a, 0x07, 0xa8, 0x13, 0x5d, 0x40, 0x51, 0x8a, 0xfe, 0xa9, 0x8a, 0x87, 0xe2, 0xfa, 0x56, + 0xfa, 0x5c, 0x0d, 0x05, 0x96, 0x58, 0xde, 0x96, 0xa1, 0x65, 0x27, 0x0f, 0xc8, 0x7f, 0x4f, 0x43, + 0xb6, 0x66, 0x56, 0xb1, 0x7d, 0x70, 0x53, 0x20, 0xf6, 0xb1, 0x7d, 0x52, 0xee, 0x30, 0x8e, 0xed, + 0xf7, 0x22, 0x94, 0xbc, 0xe8, 0xde, 0x97, 0x86, 0xa9, 0x9a, 0x59, 0xf4, 0x16, 0xa7, 0xc4, 0x7d, + 0x55, 0xc5, 0xef, 0x05, 0xf4, 0x2a, 0xe8, 0x17, 0x73, 0xa0, 0x7b, 0x01, 0xfb, 0xd3, 0x4b, 0x5e, + 0x6e, 0xb7, 0xc2, 0xd1, 0x35, 0xa3, 0x69, 0xaa, 0xb8, 0x69, 0xb2, 0x95, 0x6e, 0x59, 0x86, 0xcc, + 0x8e, 0xd1, 0x34, 0x09, 0xcb, 0x59, 0x95, 0x3c, 0x3b, 0x69, 0x16, 0x6e, 0x9a, 0xcc, 0x37, 0x80, + 0x3c, 0xa3, 0x6f, 0x4a, 0x90, 0x71, 0xfe, 0x15, 0x17, 0xf5, 0xbb, 0xa5, 0x98, 0x81, 0x08, 0x1c, + 0xf2, 0x43, 0xb1, 0x84, 0xee, 0x0c, 0xac, 0xfd, 0x53, 0x0f, 0xd6, 0xab, 0xc3, 0xca, 0x0b, 0x88, + 0xc2, 0x5f, 0xf3, 0x97, 0x4f, 0xc1, 0xd8, 0x7a, 0xcb, 0x6c, 0x9c, 0xf7, 0xcf, 0xcb, 0xb3, 0x57, + 0xf9, 0x7a, 0xc8, 0x5a, 0x9a, 0xb1, 0x89, 0xd9, 0x9e, 0xc2, 0xf1, 0xae, 0xbe, 0x90, 0x78, 0xbd, + 0xa8, 0x34, 0x0b, 0x7a, 0x57, 0x9c, 0x10, 0x08, 0x3d, 0x2a, 0x1f, 0x4f, 0x1f, 0xe6, 0x07, 0x38, + 0x59, 0x96, 0x87, 0xa9, 0x62, 0x81, 0xde, 0xc0, 0xb9, 0x52, 0x39, 0xab, 0xe4, 0x25, 0x02, 0xb3, + 0x23, 0x93, 0x04, 0x61, 0x76, 0xc8, 0xff, 0xc4, 0xc2, 0xdc, 0xa3, 0xf2, 0x87, 0x01, 0xf3, 0x67, + 0xd2, 0x30, 0xbd, 0xac, 0x77, 0xec, 0x30, 0x6f, 0xff, 0x88, 0x28, 0x70, 0x2f, 0x8d, 0x6b, 0x2a, + 0x73, 0xe5, 0x08, 0x87, 0x7f, 0x8b, 0x65, 0x0e, 0x47, 0x15, 0x31, 0x9a, 0x63, 0x29, 0x84, 0x03, + 0x7a, 0x6b, 0x9e, 0xb0, 0x24, 0x63, 0x1b, 0x4a, 0x7e, 0x21, 0xa3, 0x37, 0x94, 0x42, 0xcb, 0x4e, + 0x5e, 0xbe, 0xdf, 0x4c, 0xc3, 0x31, 0xa7, 0xf8, 0xa8, 0x65, 0xa9, 0x70, 0x31, 0xf7, 0x5d, 0x96, + 0x8a, 0xbd, 0x32, 0xbe, 0x8f, 0x97, 0x61, 0xac, 0x8c, 0xf7, 0x23, 0x3a, 0x62, 0x31, 0x87, 0x2c, + 0xc3, 0xf6, 0x13, 0x73, 0xc4, 0x32, 0xec, 0xe0, 0x62, 0x8e, 0x5e, 0x8a, 0x1d, 0x50, 0xcc, 0x87, + 0xb6, 0xc0, 0xfa, 0x26, 0xc9, 0x13, 0x73, 0xe8, 0xda, 0x46, 0x84, 0x98, 0x63, 0x9f, 0xd8, 0x45, + 0xef, 0x19, 0x50, 0xf0, 0x43, 0x5e, 0xdf, 0x18, 0x04, 0xa6, 0x43, 0x5c, 0xe3, 0xf8, 0x2d, 0x09, + 0x66, 0x18, 0x17, 0xbd, 0xa7, 0xcc, 0x11, 0x18, 0xc5, 0x9e, 0x32, 0xc7, 0x3e, 0x03, 0xc4, 0x73, + 0x36, 0xfa, 0x33, 0x40, 0x91, 0xe5, 0x27, 0x0f, 0xce, 0xb7, 0x33, 0x70, 0xd2, 0x61, 0x61, 0xc5, + 0x6c, 0xea, 0x1b, 0x7b, 0x94, 0x8b, 0xb3, 0x5a, 0x6b, 0x07, 0x77, 0xd0, 0x07, 0xd3, 0xa2, 0x28, + 0xfd, 0x27, 0x00, 0xb3, 0x8d, 0x2d, 0x1a, 0x48, 0x8d, 0x01, 0x75, 0x7b, 0x58, 0x65, 0xf7, 0x97, + 0xe4, 0x05, 0x45, 0xaf, 0xb8, 0x44, 0xd4, 0x00, 0x3d, 0xc7, 0x2a, 0x9c, 0xf0, 0xbe, 0x74, 0x3b, + 0x78, 0xa4, 0xf6, 0x3b, 0x78, 0x5c, 0x07, 0x92, 0xd6, 0x6c, 0x7a, 0x50, 0x75, 0x6f, 0x66, 0x93, + 0x32, 0x55, 0x27, 0x8b, 0x93, 0xb3, 0x83, 0xfd, 0xa3, 0x79, 0x21, 0x39, 0x3b, 0xd8, 0x96, 0x67, + 0x21, 0x47, 0x6f, 0x10, 0xf4, 0x56, 0xf4, 0x7b, 0x67, 0x66, 0xb9, 0x78, 0xd3, 0xae, 0xc2, 0xab, + 0xe1, 0xad, 0xb1, 0x24, 0xd3, 0xab, 0x9f, 0xf6, 0xed, 0x64, 0x95, 0x53, 0xb0, 0x67, 0x0c, 0x4c, + 0x79, 0x34, 0xbb, 0x61, 0x85, 0x76, 0xbb, 0xb5, 0x57, 0x63, 0xc1, 0x57, 0x62, 0xed, 0x86, 0x05, + 0x62, 0xb8, 0xa4, 0xbb, 0x63, 0xb8, 0xc4, 0xdf, 0x0d, 0xe3, 0xf8, 0x18, 0xc6, 0x6e, 0x58, 0x14, + 0xc1, 0x11, 0xac, 0x47, 0x66, 0xa9, 0xd5, 0xcc, 0x62, 0xd4, 0xbe, 0xb5, 0xf7, 0x21, 0x34, 0xe0, + 0x9d, 0x5d, 0x7a, 0x85, 0xaf, 0x8d, 0x8c, 0xcd, 0x2d, 0x3f, 0x19, 0x72, 0x1b, 0xa6, 0xb5, 0xad, + 0xb9, 0x1b, 0xf7, 0xdd, 0x27, 0x45, 0x58, 0x5c, 0xd8, 0x05, 0x92, 0x47, 0x65, 0x79, 0x9d, 0xf9, + 0xc8, 0x73, 0xf4, 0x36, 0x8b, 0xba, 0xe8, 0x3c, 0xca, 0xd7, 0xc0, 0x34, 0x0b, 0xbe, 0x58, 0xc6, + 0x1d, 0x1b, 0x37, 0x59, 0xc4, 0x0a, 0x3e, 0x51, 0x3e, 0x03, 0x53, 0x2c, 0x61, 0x41, 0x6f, 0xe1, + 0x0e, 0x0b, 0x5a, 0xc1, 0xa5, 0xc9, 0x27, 0x21, 0xa7, 0x77, 0xee, 0xee, 0x98, 0x06, 0xf1, 0xff, + 0x1f, 0x57, 0xd9, 0x9b, 0x7c, 0x1d, 0x1c, 0x65, 0xf9, 0x3c, 0x63, 0x95, 0x1e, 0xd8, 0xe9, 0x4e, + 0x46, 0x5f, 0x18, 0x64, 0xe2, 0x10, 0x3b, 0x1e, 0xaf, 0x83, 0xc2, 0x4e, 0xa3, 0x81, 0x71, 0x93, + 0x9d, 0x6c, 0x72, 0x5f, 0x63, 0x46, 0xea, 0x8d, 0x3d, 0xcd, 0x38, 0xa4, 0x50, 0xbd, 0x1f, 0x3b, + 0x01, 0x39, 0x7a, 0xed, 0x05, 0x7a, 0xe5, 0x4c, 0x4f, 0x65, 0x9c, 0xe1, 0x95, 0x71, 0x0d, 0xa6, + 0x0c, 0xd3, 0x29, 0x6e, 0x55, 0xb3, 0xb4, 0xed, 0x4e, 0xd4, 0x2a, 0x22, 0xa5, 0xeb, 0x0d, 0x19, + 0xe5, 0xc0, 0x6f, 0x4b, 0x47, 0x54, 0x8e, 0x8c, 0xfc, 0xbf, 0xc1, 0xd1, 0x75, 0x16, 0x01, 0xa0, + 0xc3, 0x28, 0xa7, 0xc3, 0x7d, 0xec, 0xba, 0x28, 0xcf, 0xf1, 0x7f, 0x2e, 0x1d, 0x51, 0xbb, 0x89, + 0xc9, 0x3f, 0x0b, 0x33, 0xce, 0x6b, 0xd3, 0xbc, 0xe0, 0x32, 0x2e, 0x85, 0x1b, 0x1a, 0x5d, 0xe4, + 0x57, 0xb8, 0x1f, 0x97, 0x8e, 0xa8, 0x5d, 0xa4, 0xe4, 0x0a, 0xc0, 0x96, 0xbd, 0xdd, 0x62, 0x84, + 0x33, 0xe1, 0x2a, 0xd9, 0x45, 0x78, 0xc9, 0xfb, 0x69, 0xe9, 0x88, 0x1a, 0x20, 0x21, 0x2f, 0xc3, + 0x84, 0x7d, 0xd1, 0x66, 0xf4, 0xb2, 0xe1, 0x9b, 0xdb, 0x5d, 0xf4, 0x6a, 0xee, 0x3f, 0x4b, 0x47, + 0x54, 0x9f, 0x80, 0x5c, 0x82, 0xf1, 0xf6, 0x3a, 0x23, 0x96, 0xeb, 0x71, 0xd5, 0x7f, 0x6f, 0x62, + 0xab, 0xeb, 0x1e, 0x2d, 0xef, 0x77, 0x87, 0xb1, 0x46, 0x67, 0x97, 0xd1, 0x1a, 0x13, 0x66, 0xac, + 0xe8, 0xfe, 0xe3, 0x30, 0xe6, 0x11, 0x90, 0x4b, 0x30, 0xd1, 0x31, 0xb4, 0x76, 0x67, 0xcb, 0xb4, + 0x3b, 0xa7, 0xc6, 0xbb, 0xfc, 0x20, 0xc3, 0xa9, 0x55, 0xd9, 0x3f, 0xaa, 0xff, 0xb7, 0xfc, 0x64, + 0x38, 0xb1, 0x43, 0xae, 0x0f, 0x55, 0x2e, 0xea, 0x1d, 0x5b, 0x37, 0x36, 0xdd, 0x18, 0xb2, 0xb4, + 0x37, 0xe9, 0xfd, 0x51, 0x9e, 0x65, 0x27, 0xa2, 0x80, 0xb4, 0x4d, 0xd4, 0xbd, 0x19, 0x47, 0x8b, + 0x0d, 0x1c, 0x84, 0x7a, 0x3a, 0x64, 0x9c, 0x4f, 0xe4, 0xcc, 0xe6, 0x4c, 0xef, 0x85, 0xbe, 0x6e, + 0xdd, 0x21, 0x0d, 0xd8, 0xf9, 0xc9, 0x19, 0x1b, 0x0d, 0x73, 0xd5, 0x32, 0x37, 0x2d, 0xdc, 0xe9, + 0x30, 0x87, 0xc3, 0x40, 0x8a, 0xd3, 0xc0, 0xf5, 0xce, 0x8a, 0xbe, 0x49, 0xad, 0x27, 0xe6, 0xef, + 0x1e, 0x4c, 0xa2, 0xb3, 0xcd, 0x32, 0xbe, 0x40, 0x1c, 0x82, 0xc9, 0xf9, 0x1b, 0x32, 0xdb, 0x74, + 0x53, 0xd0, 0xb5, 0x30, 0x15, 0x6c, 0x64, 0xf4, 0xee, 0x2c, 0xdd, 0xb7, 0xbd, 0xd8, 0x1b, 0xba, + 0x06, 0x66, 0x78, 0x9d, 0x0e, 0x0c, 0x31, 0x92, 0xdb, 0x15, 0xa2, 0xab, 0xe1, 0x68, 0x57, 0xc3, + 0x72, 0x63, 0x8a, 0xa4, 0xfc, 0x98, 0x22, 0x57, 0x01, 0xf8, 0x5a, 0xdc, 0x93, 0xcc, 0x95, 0x30, + 0xe1, 0xe9, 0x65, 0xcf, 0x0c, 0x5f, 0x4f, 0xc1, 0xb8, 0xab, 0x6c, 0xbd, 0x32, 0x38, 0xe3, 0x8b, + 0x11, 0xd8, 0x40, 0x60, 0xd3, 0x6c, 0x2e, 0xcd, 0x19, 0x47, 0x7c, 0xb7, 0xdd, 0x9a, 0x6e, 0xb7, + 0xdc, 0xa3, 0x6f, 0xdd, 0xc9, 0xf2, 0x2a, 0x80, 0x4e, 0x30, 0xaa, 0xf9, 0x67, 0xe1, 0x6e, 0x8a, + 0xd1, 0x1e, 0xa8, 0x3e, 0x04, 0x68, 0x9c, 0x79, 0x2c, 0x3b, 0xa8, 0x36, 0x01, 0xd9, 0xea, 0x6a, + 0xa1, 0xa8, 0xe4, 0x8f, 0xc8, 0x33, 0x00, 0xca, 0xb3, 0x56, 0x15, 0xb5, 0xa4, 0x94, 0x8b, 0x4a, + 0x3e, 0x85, 0x5e, 0x95, 0x86, 0x09, 0xaf, 0x11, 0xf4, 0xac, 0xa4, 0xc2, 0x54, 0xab, 0xef, 0xf5, + 0x44, 0xfb, 0x1b, 0x55, 0x50, 0xc9, 0x9e, 0x06, 0x97, 0xee, 0x74, 0xf0, 0x82, 0x6e, 0x75, 0x6c, + 0xd5, 0xbc, 0xb0, 0x60, 0x5a, 0x5e, 0xd4, 0x64, 0xf7, 0x1a, 0xfe, 0x90, 0xcf, 0x8e, 0x45, 0xd1, + 0xc4, 0xe4, 0x50, 0x14, 0xb6, 0xd8, 0xca, 0xb0, 0x9f, 0xe0, 0xd0, 0xb5, 0xe9, 0xbd, 0xf7, 0x1d, + 0xac, 0x9a, 0x17, 0x3a, 0x05, 0xa3, 0x59, 0x34, 0x5b, 0x3b, 0xdb, 0x46, 0x87, 0xd9, 0x04, 0x61, + 0x9f, 0x1d, 0xe9, 0x90, 0xcb, 0xc7, 0x66, 0x00, 0x8a, 0x95, 0xe5, 0x65, 0xa5, 0x58, 0x2b, 0x55, + 0xca, 0xf9, 0x23, 0x8e, 0xb4, 0x6a, 0x85, 0xb9, 0x65, 0x47, 0x3a, 0xcf, 0x86, 0x71, 0xb7, 0x4d, + 0xb3, 0x30, 0x28, 0x29, 0x37, 0x0c, 0x8a, 0x5c, 0x80, 0x71, 0xb7, 0x95, 0xb3, 0x11, 0xe1, 0x71, + 0xdd, 0xc7, 0x5e, 0xb7, 0x35, 0xcb, 0x26, 0xfe, 0xd2, 0x2e, 0x91, 0x39, 0xad, 0x83, 0x55, 0xef, + 0xb7, 0x33, 0x4f, 0x64, 0x1c, 0xc8, 0x30, 0x53, 0x58, 0x5e, 0xae, 0x57, 0xd4, 0x7a, 0xb9, 0x52, + 0x5b, 0x2a, 0x95, 0x17, 0xe9, 0x08, 0x59, 0x5a, 0x2c, 0x57, 0x54, 0x85, 0x0e, 0x90, 0xd5, 0x7c, + 0x8a, 0x5e, 0x7e, 0x37, 0x37, 0x0e, 0xb9, 0x36, 0x91, 0x2e, 0xfa, 0xaa, 0x14, 0xf3, 0xbc, 0xbb, + 0x87, 0x53, 0xc8, 0xf5, 0x5c, 0x9c, 0xcf, 0x79, 0xba, 0xc7, 0x99, 0xd0, 0x33, 0x30, 0x45, 0x6d, + 0xb9, 0x0e, 0x59, 0xbe, 0x67, 0x37, 0xdc, 0x72, 0x69, 0xe8, 0x13, 0xe9, 0x18, 0x87, 0xe0, 0x7b, + 0x72, 0x14, 0xcf, 0xb8, 0xf8, 0xcb, 0x41, 0x2e, 0xbb, 0x93, 0x61, 0xa6, 0x54, 0xae, 0x29, 0x6a, + 0xb9, 0xb0, 0xcc, 0xb2, 0x48, 0xf2, 0x29, 0x38, 0x5e, 0xae, 0xb0, 0x98, 0x7e, 0x55, 0x72, 0xad, + 0xf6, 0xca, 0x6a, 0x45, 0xad, 0xe5, 0xb3, 0xf2, 0x49, 0x90, 0xe9, 0x33, 0x77, 0x2b, 0x7d, 0x4e, + 0x7e, 0x3c, 0x5c, 0xbd, 0x5c, 0x5a, 0x29, 0xd5, 0xea, 0x95, 0x85, 0xba, 0x5a, 0x39, 0x57, 0x75, + 0x10, 0x54, 0x95, 0xe5, 0x82, 0xa3, 0x48, 0x81, 0x4b, 0xf0, 0xc6, 0xe4, 0x4b, 0xe0, 0x28, 0xb9, + 0xe0, 0x92, 0xdc, 0x6c, 0x4f, 0xcb, 0x1b, 0x97, 0xaf, 0x80, 0x53, 0xa5, 0x72, 0x75, 0x6d, 0x61, + 0xa1, 0x54, 0x2c, 0x29, 0xe5, 0x5a, 0x7d, 0x55, 0x51, 0x57, 0x4a, 0xd5, 0xaa, 0xf3, 0x6f, 0x7e, + 0x82, 0x5c, 0x31, 0x46, 0xfb, 0x4c, 0xf4, 0x01, 0x09, 0xa6, 0xcf, 0x6a, 0x2d, 0xdd, 0x19, 0x28, + 0xc8, 0xdd, 0x83, 0x5d, 0xc7, 0x45, 0x6c, 0x72, 0x47, 0x21, 0x73, 0x38, 0x27, 0x2f, 0xe8, 0x97, + 0xa4, 0x98, 0xc7, 0x45, 0x18, 0x10, 0xb4, 0xc4, 0x59, 0xae, 0xb4, 0x90, 0xc9, 0xcd, 0x1b, 0xd2, + 0x31, 0x8e, 0x8b, 0x88, 0x93, 0x8f, 0x07, 0xfe, 0xab, 0x87, 0x05, 0x7e, 0x1e, 0xa6, 0xd6, 0xca, + 0x85, 0xb5, 0xda, 0x52, 0x45, 0x2d, 0xfd, 0x0c, 0x89, 0x36, 0x3e, 0x0d, 0x13, 0x0b, 0x15, 0x75, + 0xae, 0x34, 0x3f, 0xaf, 0x94, 0xf3, 0x59, 0xf9, 0x52, 0xb8, 0xa4, 0xaa, 0xa8, 0x67, 0x4b, 0x45, + 0xa5, 0xbe, 0x56, 0x2e, 0x9c, 0x2d, 0x94, 0x96, 0x49, 0x1f, 0x91, 0x8b, 0xb8, 0x37, 0x71, 0x0c, + 0xfd, 0x42, 0x06, 0x80, 0x56, 0xdd, 0xb1, 0xa4, 0x83, 0xb7, 0xeb, 0xfd, 0x55, 0xdc, 0x49, 0x83, + 0x4f, 0x26, 0xa4, 0xfd, 0x96, 0x60, 0xdc, 0x62, 0x1f, 0xd8, 0xf2, 0x49, 0x3f, 0x3a, 0xf4, 0xd1, + 0xa5, 0xa6, 0x7a, 0xbf, 0xa3, 0x0f, 0xc6, 0x99, 0x23, 0x84, 0x32, 0x16, 0x0f, 0xc9, 0x85, 0xe1, + 0x00, 0x89, 0x5e, 0x92, 0x82, 0x19, 0xbe, 0x62, 0x4e, 0x25, 0x88, 0x31, 0x25, 0x56, 0x09, 0xfe, + 0xe7, 0x80, 0x91, 0x75, 0xe6, 0x16, 0x36, 0x9c, 0x82, 0xdb, 0x32, 0xe9, 0xc9, 0x6f, 0xd7, 0x62, + 0xc9, 0xa7, 0x1c, 0xe6, 0x1d, 0xa3, 0x83, 0x5e, 0xad, 0x5e, 0xbb, 0x68, 0xe7, 0x25, 0xf4, 0xbe, + 0x0c, 0x4c, 0x73, 0xd7, 0xf7, 0xa1, 0xef, 0xa7, 0x44, 0xae, 0xd6, 0x0a, 0x5c, 0x0c, 0x98, 0x3a, + 0xe8, 0xc5, 0x80, 0x67, 0x7e, 0x31, 0x05, 0x63, 0x2c, 0x91, 0x08, 0xb8, 0x52, 0x76, 0x6c, 0x81, + 0xa3, 0x30, 0xb9, 0xa8, 0xd4, 0xea, 0xd5, 0x5a, 0x41, 0xad, 0x29, 0xf3, 0xf9, 0x94, 0x7c, 0x02, + 0x8e, 0xad, 0x2a, 0x6a, 0xb5, 0xe2, 0xc8, 0x73, 0x55, 0xad, 0x90, 0x8e, 0x90, 0x8a, 0xd9, 0x81, + 0x61, 0x59, 0x99, 0x5f, 0x54, 0xea, 0x73, 0x85, 0xaa, 0x92, 0x97, 0x9c, 0x7f, 0xcb, 0x95, 0x9a, + 0x52, 0xad, 0xcf, 0x97, 0x0a, 0xea, 0xbd, 0xf9, 0x8c, 0xf3, 0x6f, 0xb5, 0xa6, 0x16, 0x6a, 0xca, + 0x62, 0xa9, 0x48, 0x2e, 0xa4, 0x77, 0x5a, 0x40, 0xd6, 0x19, 0x4c, 0x95, 0x95, 0xd5, 0xda, 0xbd, + 0xf9, 0x5c, 0x7c, 0xaf, 0xbe, 0xee, 0xca, 0x8d, 0xd8, 0xab, 0x2f, 0xaa, 0xf8, 0xe4, 0xe7, 0xbf, + 0x9f, 0x93, 0x20, 0x4f, 0x39, 0x50, 0x2e, 0xb6, 0xb1, 0xa5, 0x63, 0xa3, 0x81, 0xd1, 0x79, 0x91, + 0x28, 0xa2, 0xfb, 0xe2, 0xeb, 0x91, 0x31, 0x22, 0x60, 0x79, 0xd2, 0x97, 0x2e, 0xa3, 0x3d, 0xb3, + 0xcf, 0x68, 0xff, 0x6c, 0x5c, 0xb7, 0xbe, 0x6e, 0x76, 0x87, 0x02, 0xd9, 0xa7, 0xe3, 0xb8, 0xf5, + 0xf5, 0xe1, 0x60, 0x24, 0xc1, 0x81, 0x43, 0xc6, 0xf4, 0xbc, 0x84, 0xde, 0x39, 0x01, 0x79, 0xca, + 0x68, 0xc0, 0x57, 0xea, 0xd7, 0xd8, 0x5d, 0x88, 0xf5, 0x18, 0xa1, 0xe9, 0xdc, 0xc3, 0xfe, 0x69, + 0xfe, 0xb0, 0x3f, 0xb7, 0xf4, 0x26, 0x75, 0xef, 0x6f, 0xc7, 0x6d, 0x7e, 0x01, 0xc7, 0xa8, 0xf0, + 0x68, 0xa0, 0xc9, 0x35, 0xbf, 0xc8, 0xe2, 0x47, 0x73, 0x5f, 0x17, 0xbb, 0x91, 0x4f, 0x11, 0x45, + 0x26, 0xfa, 0x5a, 0xc2, 0xb8, 0x5e, 0xb2, 0x9c, 0x63, 0x5a, 0xc4, 0x5d, 0x7d, 0xc9, 0x79, 0xc9, + 0xf6, 0xe3, 0x20, 0x79, 0x14, 0x7e, 0x94, 0x86, 0x4c, 0xd5, 0xb4, 0xec, 0x61, 0x61, 0x10, 0x77, + 0x67, 0x2f, 0x20, 0x81, 0x6a, 0xf8, 0xcc, 0x29, 0xb9, 0x9d, 0xbd, 0xe8, 0xf2, 0x47, 0x10, 0xdd, + 0xef, 0x28, 0xcc, 0x50, 0x4e, 0xbc, 0xab, 0x2f, 0xfe, 0x2d, 0x4d, 0xfb, 0xab, 0x7b, 0x44, 0x11, + 0x39, 0x03, 0x53, 0x81, 0x9d, 0x35, 0xef, 0xda, 0xe7, 0x60, 0x1a, 0x7a, 0x4b, 0x10, 0x97, 0x79, + 0x1e, 0x97, 0x5e, 0xf3, 0x46, 0xef, 0xf6, 0x88, 0x61, 0xf5, 0x4c, 0x71, 0x02, 0x05, 0x46, 0x14, + 0x9e, 0x3c, 0x22, 0xf7, 0x4b, 0x90, 0x63, 0x9e, 0x4d, 0x43, 0x45, 0x20, 0x6e, 0xcb, 0xf0, 0x84, + 0x20, 0xe6, 0x01, 0x25, 0x0d, 0xbb, 0x65, 0x44, 0x97, 0x9f, 0x3c, 0x0e, 0xff, 0xce, 0x5c, 0xf6, + 0x0a, 0xbb, 0x9a, 0xde, 0xd2, 0xd6, 0x5b, 0x31, 0x02, 0xf4, 0x7e, 0x22, 0xe6, 0x21, 0x25, 0xaf, + 0xaa, 0x5c, 0x79, 0x21, 0x12, 0xff, 0x69, 0x98, 0xb0, 0xbc, 0x85, 0x35, 0xf7, 0x0c, 0x77, 0x97, + 0xbb, 0x24, 0xfb, 0xae, 0xfa, 0x39, 0x63, 0x9d, 0x48, 0x12, 0xe2, 0x67, 0x24, 0x27, 0x28, 0x26, + 0x0b, 0xcd, 0xe6, 0x02, 0xd6, 0xec, 0x1d, 0x0b, 0x37, 0x63, 0x0d, 0x11, 0xbc, 0x88, 0x26, 0x82, + 0x92, 0xe0, 0x42, 0xe4, 0x2d, 0xf3, 0xe8, 0x3c, 0xa5, 0x4f, 0x6f, 0xe0, 0xf2, 0x32, 0x94, 0x2e, + 0xe9, 0x1d, 0x1e, 0x24, 0x15, 0x0e, 0x92, 0xa7, 0x0f, 0xc6, 0x44, 0xf2, 0x80, 0xfc, 0x86, 0x04, + 0x33, 0xd4, 0x4e, 0x18, 0x36, 0x26, 0x7f, 0x10, 0xd3, 0x13, 0x22, 0x70, 0xb9, 0x50, 0x90, 0x9d, + 0xa1, 0xc0, 0x12, 0xc7, 0x6f, 0x42, 0x8c, 0x8f, 0xe4, 0x91, 0x79, 0xcf, 0x34, 0x40, 0xc0, 0xbb, + 0xed, 0x13, 0x39, 0x3f, 0x5c, 0x1d, 0x7a, 0x17, 0x9b, 0x7f, 0x54, 0xb9, 0xd8, 0xc9, 0x01, 0xcf, + 0x35, 0x6f, 0x5b, 0x85, 0x4f, 0x14, 0x1a, 0x55, 0xfe, 0x32, 0xa6, 0xcd, 0xcb, 0x7c, 0xcb, 0xfa, + 0x0e, 0xee, 0x03, 0xf6, 0x72, 0x9f, 0x8c, 0x61, 0xfc, 0xf6, 0x63, 0x25, 0x1e, 0x6a, 0xcb, 0x03, + 0xcc, 0x25, 0x4f, 0xc1, 0x71, 0x55, 0x29, 0xcc, 0x57, 0xca, 0xcb, 0xf7, 0x06, 0x6f, 0x9a, 0xc9, + 0x4b, 0xc1, 0xc9, 0x49, 0x22, 0xb0, 0xbd, 0x31, 0x66, 0x1f, 0xc8, 0xcb, 0x2a, 0x6a, 0xb6, 0x12, + 0x98, 0xce, 0xf7, 0xef, 0xd5, 0x04, 0xc8, 0x1e, 0x26, 0x0a, 0x0f, 0xe7, 0x60, 0x52, 0xc5, 0x0d, + 0x73, 0x7b, 0x1b, 0x1b, 0x4d, 0xdc, 0x44, 0x0f, 0x48, 0x30, 0xe5, 0xed, 0x5a, 0x55, 0xb1, 0x8d, + 0x9e, 0xe9, 0x63, 0xe3, 0x6d, 0x9c, 0x38, 0x75, 0xf2, 0x3a, 0x40, 0x2e, 0x4d, 0x08, 0x99, 0xf7, + 0x05, 0x91, 0x59, 0xe3, 0x91, 0xb9, 0x33, 0x5c, 0x84, 0x1e, 0x93, 0xb3, 0x41, 0x06, 0x43, 0x20, + 0xfa, 0x0b, 0x0f, 0xa2, 0x67, 0x71, 0x10, 0xcd, 0x1f, 0x90, 0xfe, 0x61, 0x62, 0xf5, 0x2e, 0x09, + 0x8e, 0xbb, 0xdd, 0x6f, 0xd2, 0x18, 0x7d, 0x32, 0x88, 0xd1, 0xb3, 0x79, 0x8c, 0x16, 0x45, 0x64, + 0xd8, 0x8b, 0xd1, 0x10, 0xac, 0xbe, 0xe2, 0x61, 0xf5, 0x73, 0x1c, 0x56, 0xcb, 0x43, 0x2a, 0xe7, + 0x30, 0x31, 0xbb, 0x1f, 0x02, 0xc3, 0xd4, 0x8b, 0x24, 0xc8, 0x3b, 0xf6, 0x26, 0xed, 0x05, 0xd8, + 0x95, 0x7d, 0x15, 0xde, 0xb9, 0xb4, 0x4d, 0x77, 0x29, 0x7d, 0xe7, 0x52, 0x37, 0x41, 0xbe, 0x16, + 0x66, 0x1a, 0x5b, 0xb8, 0x71, 0xbe, 0x64, 0xb8, 0xde, 0x17, 0x74, 0xab, 0xbe, 0x2b, 0x95, 0xef, + 0xf8, 0xee, 0xe1, 0xa1, 0xe3, 0x17, 0xa9, 0x38, 0x23, 0x38, 0xc8, 0x54, 0x08, 0x50, 0x7f, 0xec, + 0x01, 0x55, 0xe6, 0x80, 0xba, 0x6d, 0x20, 0xaa, 0xf1, 0x60, 0x29, 0x0f, 0x00, 0x0b, 0x82, 0x93, + 0x95, 0xd5, 0x5a, 0xa9, 0x52, 0xae, 0xaf, 0x55, 0x95, 0xf9, 0xfa, 0x9c, 0x0b, 0x4e, 0x35, 0x2f, + 0xa1, 0xef, 0xa4, 0x61, 0x8c, 0xb2, 0xd5, 0xe9, 0xba, 0xfc, 0x3f, 0xda, 0xab, 0x16, 0xbd, 0x53, + 0x38, 0x46, 0x86, 0x27, 0x08, 0x56, 0x4e, 0x88, 0x1d, 0xf0, 0x34, 0x18, 0xa3, 0x20, 0xbb, 0x4e, + 0x59, 0xa7, 0x43, 0xac, 0x00, 0x46, 0x46, 0x75, 0xb3, 0x0b, 0xc6, 0xcb, 0xe8, 0xc3, 0x46, 0xf2, + 0x96, 0xdb, 0x73, 0x33, 0x74, 0x9a, 0x79, 0x4e, 0xb7, 0xb7, 0x88, 0xd3, 0x6d, 0xb0, 0xc3, 0x0a, + 0xdf, 0x02, 0xb8, 0x01, 0xb2, 0xbb, 0x4e, 0xee, 0x3e, 0x0e, 0xcc, 0x34, 0x13, 0x7a, 0xb5, 0x70, + 0x78, 0x56, 0x4e, 0x3f, 0x3d, 0x9e, 0x42, 0xc0, 0x59, 0x81, 0x4c, 0x4b, 0xef, 0xd8, 0xcc, 0x3e, + 0xbb, 0x35, 0x16, 0x21, 0xf7, 0xa1, 0x64, 0xe3, 0x6d, 0x95, 0x90, 0x41, 0x77, 0x3b, 0xa3, 0xab, + 0x9f, 0x2a, 0xe0, 0xc4, 0x7d, 0x0a, 0xc6, 0xd8, 0xe1, 0x42, 0x22, 0x07, 0x49, 0x75, 0x5f, 0x05, + 0x23, 0xd1, 0x09, 0xd5, 0x36, 0x79, 0x1d, 0xf8, 0x7f, 0x8e, 0xc2, 0xd8, 0x92, 0xde, 0xb1, 0x4d, + 0x6b, 0x0f, 0x3d, 0x94, 0x82, 0xb1, 0xb3, 0xd8, 0xea, 0xe8, 0xa6, 0xb1, 0xcf, 0x21, 0xe5, 0x2a, + 0x98, 0x6c, 0x5b, 0x78, 0x57, 0x37, 0x77, 0x3a, 0xfe, 0xe2, 0x67, 0x30, 0x49, 0x46, 0x30, 0xae, + 0xed, 0xd8, 0x5b, 0xa6, 0xe5, 0xc7, 0x24, 0x71, 0xdf, 0xe5, 0xd3, 0x00, 0xf4, 0xb9, 0xac, 0x6d, + 0x63, 0xe6, 0x66, 0x13, 0x48, 0x91, 0x65, 0xc8, 0xd8, 0xfa, 0x36, 0x66, 0x41, 0x8a, 0xc9, 0xb3, + 0x23, 0x60, 0x12, 0xf0, 0x8f, 0x05, 0x56, 0x94, 0x54, 0xf7, 0x15, 0x7d, 0x49, 0x82, 0xc9, 0x45, + 0x6c, 0x33, 0x56, 0x3b, 0xe8, 0xa5, 0x29, 0xa1, 0x7b, 0x41, 0x1c, 0x1b, 0xb6, 0xa5, 0x75, 0xdc, + 0xff, 0xbc, 0x2d, 0x0e, 0x3e, 0xd1, 0x8f, 0x98, 0x2c, 0x05, 0xc3, 0xa5, 0x93, 0xf0, 0x79, 0x76, + 0x89, 0x7a, 0xe7, 0xb2, 0xcc, 0x6c, 0x5b, 0x6b, 0xff, 0x07, 0xde, 0x92, 0x8a, 0x3c, 0x7a, 0xce, + 0x64, 0x3f, 0x1b, 0xa8, 0x4f, 0x68, 0x77, 0x34, 0xbe, 0xcb, 0x72, 0xec, 0x8b, 0x84, 0x1f, 0xa4, + 0xc4, 0xc8, 0xa8, 0x5e, 0x6e, 0xc1, 0x43, 0xeb, 0xfd, 0x39, 0x49, 0x5e, 0x1b, 0x7f, 0x28, 0xc1, + 0x64, 0x75, 0xcb, 0xbc, 0xe0, 0xca, 0xf1, 0xd9, 0x62, 0xc0, 0x5e, 0x01, 0x13, 0xbb, 0x5d, 0xa0, + 0xfa, 0x09, 0xe1, 0x37, 0xf5, 0xa3, 0x17, 0x4a, 0x71, 0x61, 0x0a, 0x30, 0x37, 0xf4, 0x7b, 0xf4, + 0xe5, 0xa7, 0xc0, 0x18, 0xe3, 0x9a, 0x2d, 0x69, 0x46, 0x03, 0xec, 0x66, 0x0e, 0x56, 0x30, 0xc3, + 0x57, 0x30, 0x1e, 0xf2, 0xe1, 0x95, 0x4b, 0x1e, 0xf9, 0x3f, 0x4b, 0x93, 0x90, 0x25, 0x2e, 0xf0, + 0xc5, 0x21, 0x00, 0x8f, 0x1e, 0x49, 0x89, 0x2e, 0xfc, 0x7b, 0x12, 0xf0, 0x38, 0x38, 0xd0, 0x9d, + 0x3f, 0x7d, 0xc9, 0x25, 0x2f, 0xcf, 0x57, 0x65, 0x60, 0x6a, 0x5e, 0xdf, 0xd8, 0xf0, 0x3a, 0xc9, + 0x97, 0x0b, 0x76, 0x92, 0xe1, 0x4e, 0x23, 0x8e, 0x9d, 0xbb, 0x63, 0x59, 0xd8, 0x70, 0x2b, 0xc5, + 0x9a, 0x53, 0x57, 0xaa, 0x7c, 0x1d, 0x1c, 0x75, 0xc7, 0x85, 0x60, 0x47, 0x39, 0xa1, 0x76, 0x27, + 0xa3, 0x1f, 0x08, 0xef, 0x1a, 0xbb, 0x12, 0x0d, 0x56, 0x29, 0xa4, 0x01, 0xde, 0x0e, 0xd3, 0x5b, + 0x34, 0x37, 0x59, 0x5a, 0x73, 0x3b, 0xcb, 0x93, 0x5d, 0x21, 0xa1, 0x57, 0x70, 0xa7, 0xa3, 0x6d, + 0x62, 0x95, 0xcf, 0xdc, 0xd5, 0x7c, 0xa5, 0x38, 0x17, 0x9c, 0x89, 0x6d, 0x40, 0x0b, 0xd4, 0x64, + 0x04, 0xda, 0x71, 0x06, 0x32, 0x0b, 0x7a, 0x0b, 0xa3, 0x5f, 0x4e, 0xc3, 0x84, 0x33, 0x6b, 0x33, + 0x1a, 0xce, 0x5b, 0xc0, 0x85, 0xec, 0x9f, 0x52, 0xa2, 0x17, 0x7b, 0x3a, 0x74, 0x66, 0x3d, 0x1a, + 0x21, 0xed, 0x46, 0xec, 0x02, 0xcf, 0x48, 0x52, 0x23, 0xb8, 0x86, 0xc5, 0x99, 0x7a, 0x6c, 0x6c, + 0xb4, 0x4c, 0x8d, 0x5b, 0x5c, 0xee, 0x36, 0x85, 0xae, 0x87, 0xbc, 0x7b, 0x12, 0xc8, 0xb4, 0x57, + 0x75, 0xc3, 0xf0, 0x8e, 0x9a, 0xef, 0x4b, 0xe7, 0xfd, 0x22, 0x22, 0xa3, 0xf5, 0x90, 0xba, 0xb3, + 0xd2, 0x43, 0x34, 0xfb, 0x5a, 0x98, 0x59, 0xdf, 0xb3, 0x71, 0x87, 0xe5, 0x62, 0xc5, 0x66, 0xd4, + 0xae, 0xd4, 0x40, 0xac, 0xed, 0xa8, 0xa8, 0x3e, 0x11, 0x05, 0xc6, 0x13, 0xf5, 0xd2, 0x00, 0x33, + 0xc0, 0xe3, 0x90, 0x2f, 0x57, 0xe6, 0x15, 0xe2, 0xd1, 0xe8, 0xba, 0x88, 0x6d, 0xa2, 0x57, 0x48, + 0x30, 0x45, 0xdc, 0x83, 0x5c, 0x14, 0xae, 0x16, 0x98, 0x8f, 0xa0, 0x87, 0x85, 0xbd, 0x1d, 0x49, + 0x95, 0x83, 0x05, 0x84, 0x0b, 0x7a, 0x43, 0x6f, 0x75, 0x0b, 0x3a, 0xab, 0x76, 0xa5, 0xf6, 0x00, + 0x44, 0xea, 0x09, 0xc8, 0xef, 0x09, 0xb9, 0x3c, 0xf6, 0xe3, 0xee, 0xb0, 0x50, 0xf9, 0x7d, 0x09, + 0x26, 0x9d, 0x49, 0x8a, 0x0b, 0x4a, 0x85, 0x03, 0xc5, 0x34, 0x5a, 0x7b, 0xfe, 0xb2, 0x88, 0xfb, + 0x1a, 0xab, 0x91, 0xfc, 0xb5, 0xf0, 0xcc, 0x9d, 0x88, 0x28, 0xc0, 0xcb, 0x88, 0xf0, 0xfb, 0x90, + 0xd0, 0x7c, 0xbe, 0x0f, 0x73, 0x87, 0x05, 0xdf, 0x37, 0xb3, 0x90, 0x5b, 0x6b, 0x13, 0xe4, 0x5e, + 0x2d, 0x89, 0xc4, 0xad, 0xdf, 0x77, 0xdc, 0xc5, 0x31, 0xb3, 0x5a, 0x66, 0x43, 0x6b, 0xad, 0xfa, + 0xe7, 0x06, 0xfd, 0x04, 0xf9, 0x36, 0xe6, 0x01, 0x4b, 0x0f, 0x5d, 0x5e, 0x1b, 0x19, 0xd2, 0x9d, + 0xc8, 0x28, 0x70, 0xb4, 0xe8, 0x06, 0x38, 0xd6, 0xd4, 0x3b, 0xda, 0x7a, 0x0b, 0x2b, 0x46, 0xc3, + 0xda, 0xa3, 0xe2, 0x60, 0xd3, 0xaa, 0x7d, 0x1f, 0xe4, 0x3b, 0x20, 0xdb, 0xb1, 0xf7, 0x5a, 0x74, + 0x9e, 0x18, 0x3c, 0x89, 0x14, 0x5a, 0x54, 0xd5, 0xc9, 0xae, 0xd2, 0xbf, 0x82, 0xb7, 0x7a, 0x8f, + 0x09, 0xde, 0xea, 0x7d, 0x0b, 0xe4, 0x4c, 0x4b, 0xdf, 0xd4, 0xe9, 0x2d, 0x4d, 0x33, 0xfb, 0x22, + 0x17, 0x52, 0x53, 0xa0, 0x42, 0xb2, 0xa8, 0x2c, 0xab, 0xfc, 0x14, 0x98, 0xd0, 0xb7, 0xb5, 0x4d, + 0x7c, 0x8f, 0x6e, 0xd0, 0x73, 0x9d, 0x33, 0x37, 0x9f, 0xda, 0x77, 0xc8, 0x8a, 0x7d, 0x57, 0xfd, + 0xac, 0xe8, 0x43, 0x69, 0xd1, 0xf0, 0x4a, 0xa4, 0x6e, 0x14, 0xd4, 0x91, 0xdc, 0x6e, 0x8e, 0x5e, + 0x27, 0x14, 0xf8, 0x28, 0x9c, 0xad, 0xe4, 0x07, 0xef, 0x2f, 0xa6, 0x61, 0x7c, 0xde, 0xbc, 0x60, + 0x10, 0x45, 0xbf, 0x55, 0xcc, 0xd6, 0xed, 0x71, 0x14, 0x96, 0xbf, 0x3c, 0x34, 0xf2, 0xdc, 0x0b, + 0xa9, 0xad, 0x5b, 0x64, 0x08, 0x0c, 0x91, 0x2d, 0x47, 0xf0, 0x4a, 0xc7, 0xa8, 0x72, 0x92, 0x97, + 0xeb, 0x9f, 0x4b, 0x90, 0x99, 0xb7, 0xcc, 0x36, 0x7a, 0x47, 0x2a, 0x86, 0x4b, 0x50, 0xd3, 0x32, + 0xdb, 0x35, 0x72, 0x27, 0x9b, 0x7f, 0xd8, 0x27, 0x98, 0x26, 0xdf, 0x0a, 0xe3, 0x6d, 0xb3, 0xa3, + 0xdb, 0xee, 0x34, 0x62, 0xe6, 0xe6, 0xc7, 0xf4, 0x6c, 0xcd, 0xab, 0x2c, 0x93, 0xea, 0x65, 0x77, + 0x7a, 0x6d, 0x22, 0x42, 0x47, 0x2e, 0x8e, 0x18, 0xdd, 0x7b, 0xe9, 0xba, 0x52, 0xd1, 0x2b, 0x83, + 0x48, 0x3e, 0x9d, 0x47, 0xf2, 0x71, 0x3d, 0x24, 0x6c, 0x99, 0xed, 0xa1, 0x6c, 0xe2, 0xbf, 0xc6, + 0x43, 0xf5, 0x19, 0x1c, 0xaa, 0xd7, 0x0b, 0x95, 0x99, 0x3c, 0xa2, 0x1f, 0xca, 0x00, 0x10, 0x33, + 0x63, 0xcd, 0x99, 0x00, 0x89, 0xd9, 0x58, 0xcf, 0xcf, 0x04, 0x64, 0x59, 0xe0, 0x65, 0xf9, 0x84, + 0x10, 0x2b, 0x86, 0x90, 0x0f, 0x91, 0x68, 0x01, 0xb2, 0x3b, 0xce, 0x67, 0x26, 0x51, 0x41, 0x12, + 0xe4, 0x55, 0xa5, 0x7f, 0xa2, 0x3f, 0x4b, 0x41, 0x96, 0x24, 0xc8, 0xa7, 0x01, 0xc8, 0xc0, 0x4e, + 0x8f, 0x8d, 0xa5, 0xc8, 0x10, 0x1e, 0x48, 0x21, 0xda, 0xaa, 0x37, 0xd9, 0x67, 0x6a, 0x32, 0xfb, + 0x09, 0xce, 0xdf, 0x64, 0xb8, 0x27, 0xb4, 0x98, 0x01, 0x10, 0x48, 0x71, 0xfe, 0x26, 0x6f, 0xcb, + 0x78, 0x83, 0x86, 0xcb, 0xce, 0xa8, 0x7e, 0x82, 0xf7, 0xf7, 0xb2, 0x77, 0xc9, 0x9a, 0xfb, 0x37, + 0x49, 0x71, 0x26, 0xc3, 0x44, 0x2d, 0xe7, 0xfc, 0x22, 0x72, 0x24, 0x53, 0x77, 0x32, 0x7a, 0xa3, + 0xa7, 0x36, 0xf3, 0x9c, 0xda, 0xdc, 0x14, 0x43, 0xbc, 0xc9, 0x2b, 0xcf, 0xd7, 0xb3, 0x30, 0x51, + 0x36, 0x9b, 0x4c, 0x77, 0x02, 0x13, 0xc6, 0x4f, 0x67, 0x63, 0x4d, 0x18, 0x3d, 0x1a, 0x21, 0x0a, + 0x72, 0x17, 0xaf, 0x20, 0x62, 0x14, 0x82, 0xfa, 0x21, 0xcf, 0x41, 0x8e, 0x68, 0xef, 0xfe, 0xdb, + 0xbb, 0xa2, 0x48, 0x10, 0xd1, 0xaa, 0xec, 0xcf, 0xff, 0x70, 0x3a, 0xf6, 0x5f, 0x20, 0x4b, 0x2a, + 0x18, 0xb1, 0xbb, 0xc3, 0x57, 0x34, 0x1d, 0x5d, 0x51, 0x29, 0xba, 0xa2, 0x99, 0xee, 0x8a, 0xc6, + 0x59, 0x07, 0x08, 0xd3, 0x90, 0xe4, 0x75, 0xfc, 0x1f, 0xc7, 0x00, 0xca, 0xda, 0xae, 0xbe, 0x49, + 0x77, 0x87, 0xbf, 0xe4, 0xce, 0x7f, 0xd8, 0x3e, 0xee, 0x7f, 0x0d, 0x0c, 0x84, 0xb7, 0xc2, 0x18, + 0x1b, 0xf7, 0x58, 0x45, 0xae, 0xe4, 0x2a, 0xe2, 0x53, 0xa1, 0x66, 0xe9, 0x45, 0x5b, 0x75, 0xf3, + 0x73, 0x17, 0x0d, 0xa7, 0xbb, 0x2e, 0x1a, 0xee, 0xbd, 0x07, 0x11, 0x72, 0xfd, 0x30, 0x7a, 0xbf, + 0xf0, 0x65, 0x4d, 0x01, 0x7e, 0x02, 0x35, 0x0a, 0x69, 0x82, 0xb7, 0xc0, 0x98, 0xe9, 0x6d, 0x68, + 0x4b, 0xa1, 0xeb, 0x60, 0x25, 0x63, 0xc3, 0x54, 0xdd, 0x9c, 0x82, 0x9b, 0x5f, 0x42, 0x7c, 0x8c, + 0xe4, 0x18, 0xd4, 0xc9, 0x45, 0x37, 0xf4, 0x98, 0x53, 0x8f, 0x73, 0xba, 0xbd, 0xb5, 0xac, 0x1b, + 0xe7, 0x3b, 0xe8, 0xe7, 0xc4, 0x2c, 0xc8, 0x00, 0xfe, 0xe9, 0x78, 0xf8, 0xf3, 0x91, 0x5d, 0xaa, + 0x3c, 0x6a, 0x77, 0x84, 0x51, 0xe9, 0xcd, 0x6d, 0x08, 0x80, 0xb7, 0x41, 0x8e, 0x32, 0xca, 0x3a, + 0xd1, 0x33, 0xa1, 0xf8, 0x79, 0x94, 0x54, 0xf6, 0x07, 0x7a, 0x9f, 0x87, 0xe3, 0x59, 0x0e, 0xc7, + 0xb9, 0x03, 0x71, 0x96, 0x38, 0xa4, 0x67, 0x9e, 0x04, 0x63, 0x4c, 0xd2, 0xf2, 0x4c, 0xb0, 0x15, + 0xe7, 0x8f, 0xc8, 0x00, 0xb9, 0x15, 0x73, 0x17, 0xd7, 0xcc, 0x7c, 0xca, 0x79, 0x76, 0xf8, 0xab, + 0x99, 0xf9, 0x34, 0x7a, 0xed, 0x38, 0x8c, 0x7b, 0x31, 0x9f, 0xbe, 0x98, 0x86, 0x7c, 0xd1, 0xc2, + 0x9a, 0x8d, 0x17, 0x2c, 0x73, 0x9b, 0xd6, 0x48, 0xdc, 0xfb, 0xfa, 0x37, 0x84, 0x5d, 0x3c, 0xbc, + 0x58, 0x4c, 0xdd, 0x85, 0x85, 0x60, 0x49, 0x17, 0x21, 0xd3, 0xee, 0x22, 0x24, 0x7a, 0xbb, 0x90, + 0xcb, 0x87, 0x68, 0x29, 0xc9, 0x37, 0xb5, 0xcf, 0xa6, 0x21, 0x5b, 0x6c, 0x99, 0x06, 0x46, 0x85, + 0x18, 0x67, 0xd1, 0x7a, 0xef, 0x44, 0xa0, 0xe7, 0xa6, 0x45, 0x6d, 0x0d, 0x5f, 0x00, 0x4e, 0xd9, + 0x82, 0xb2, 0x15, 0x1b, 0xa4, 0x22, 0x49, 0x27, 0x2f, 0xd0, 0xef, 0xa4, 0x61, 0x82, 0x46, 0x4f, + 0x2a, 0xb4, 0x5a, 0xe8, 0x31, 0xbe, 0x50, 0x7b, 0xc4, 0xcd, 0x42, 0xbf, 0x27, 0x7c, 0x04, 0xc6, + 0xab, 0x95, 0x47, 0x3b, 0x46, 0x18, 0xa9, 0x78, 0x27, 0x32, 0xc4, 0xf6, 0xd2, 0xfa, 0x32, 0x94, + 0xbc, 0xa8, 0xff, 0x2a, 0xed, 0x18, 0x00, 0xc6, 0xf9, 0x55, 0x0b, 0xef, 0xea, 0xf8, 0x02, 0xba, + 0xdc, 0x17, 0xf6, 0xfe, 0xd0, 0x30, 0x6f, 0x15, 0x5e, 0xc4, 0x09, 0x90, 0x0c, 0xdd, 0xca, 0x9a, + 0x6c, 0xf9, 0x99, 0x58, 0x2f, 0xde, 0x1d, 0xaf, 0x27, 0x40, 0x46, 0x0d, 0x66, 0x17, 0x5c, 0xb3, + 0x09, 0xe7, 0x22, 0x79, 0xc1, 0x7e, 0x74, 0x0c, 0xc6, 0xd7, 0x8c, 0x4e, 0xbb, 0xa5, 0x75, 0xb6, + 0xd0, 0xbf, 0x49, 0x90, 0xa3, 0x77, 0xc6, 0xa1, 0x9f, 0xe6, 0x22, 0x50, 0xfc, 0xfc, 0x0e, 0xb6, + 0x5c, 0x17, 0x1c, 0xfa, 0xd2, 0xfb, 0x4a, 0x7b, 0xf4, 0x21, 0x49, 0x74, 0x92, 0xea, 0x16, 0xca, + 0x2e, 0xa9, 0x0b, 0x0f, 0x7a, 0xd0, 0xd6, 0x1b, 0xf6, 0x8e, 0xe5, 0x5d, 0x90, 0xfe, 0x44, 0x31, + 0x2a, 0xab, 0xf4, 0x2f, 0xd5, 0xfb, 0x1d, 0x69, 0x30, 0xc6, 0x12, 0xf7, 0x6d, 0x27, 0xed, 0x3f, + 0x51, 0x7d, 0x12, 0x72, 0x9a, 0x65, 0xeb, 0x1d, 0x9b, 0x6d, 0xb0, 0xb2, 0x37, 0xa7, 0xbb, 0xa4, + 0x4f, 0x6b, 0x56, 0xcb, 0x8d, 0x55, 0xe3, 0x25, 0xa0, 0xdf, 0x17, 0x9a, 0x3f, 0x46, 0xd7, 0x3c, + 0x1e, 0xe4, 0xf7, 0x0c, 0xb0, 0x46, 0x7d, 0x29, 0x5c, 0xa2, 0x16, 0x6a, 0x4a, 0x9d, 0x86, 0x36, + 0xf1, 0xa2, 0x98, 0x34, 0xd1, 0x7b, 0xa5, 0xc0, 0xfa, 0xdd, 0x1e, 0x37, 0x46, 0x30, 0x29, 0xfa, + 0x63, 0x84, 0x97, 0x10, 0xb1, 0x5b, 0xcd, 0x2d, 0xc2, 0x4a, 0xe2, 0x8b, 0xb0, 0xbf, 0x23, 0xbc, + 0x9b, 0xe4, 0x89, 0xb2, 0xcf, 0x1a, 0x60, 0xd4, 0x9d, 0x52, 0x1f, 0x16, 0xda, 0x19, 0xea, 0x57, + 0xd2, 0x21, 0xc2, 0xf6, 0x96, 0x31, 0x18, 0x5b, 0xd4, 0x5a, 0x2d, 0x6c, 0xed, 0x39, 0x43, 0x52, + 0xde, 0xe5, 0x70, 0x45, 0x33, 0xf4, 0x0d, 0xdc, 0xb1, 0xa3, 0x3b, 0xcb, 0xf7, 0x0b, 0xc7, 0x2b, + 0x66, 0x65, 0xcc, 0x76, 0xd3, 0x0f, 0x91, 0xf9, 0x8d, 0x90, 0xd1, 0x8d, 0x0d, 0x93, 0x75, 0x99, + 0xdd, 0xab, 0xf6, 0xee, 0xcf, 0x64, 0xea, 0x42, 0x32, 0x0a, 0x86, 0x2c, 0x16, 0xe4, 0x22, 0xf9, + 0x9e, 0xf3, 0x77, 0x33, 0x30, 0xed, 0x32, 0x51, 0x32, 0x9a, 0xf8, 0x62, 0x70, 0x29, 0xe6, 0x15, + 0x19, 0xd1, 0xe3, 0x96, 0xdd, 0xf5, 0x21, 0xa4, 0x42, 0x44, 0x5a, 0x03, 0x68, 0x68, 0x36, 0xde, + 0x34, 0x2d, 0xdd, 0xeb, 0x0f, 0x9f, 0x1c, 0x87, 0x5a, 0x91, 0xfe, 0xbd, 0xa7, 0x06, 0xe8, 0xc8, + 0x77, 0xc0, 0x24, 0xf6, 0x22, 0x2a, 0xb8, 0x4b, 0x35, 0x91, 0x78, 0x05, 0xf3, 0xa3, 0xbf, 0x12, + 0x3a, 0xd5, 0x29, 0x52, 0xcd, 0x78, 0x98, 0xd5, 0x07, 0x6b, 0x43, 0x6b, 0xe5, 0x95, 0x82, 0x5a, + 0x5d, 0x2a, 0x2c, 0x2f, 0x97, 0xca, 0x8b, 0x5e, 0x78, 0x20, 0x19, 0x66, 0xe6, 0x2b, 0xe7, 0xca, + 0x81, 0xf8, 0x4d, 0x19, 0xb4, 0x0a, 0xe3, 0xae, 0xbc, 0x7a, 0xf9, 0x62, 0x06, 0x65, 0xc6, 0x7c, + 0x31, 0x03, 0x49, 0x8e, 0x71, 0xa6, 0x37, 0x3c, 0x07, 0x1d, 0xf2, 0x8c, 0xfe, 0x44, 0x83, 0x2c, + 0x59, 0x53, 0x47, 0xef, 0x26, 0xdb, 0x80, 0xed, 0x96, 0xd6, 0xc0, 0x68, 0x3b, 0x86, 0x35, 0xee, + 0x5e, 0xa0, 0x91, 0xde, 0x77, 0x81, 0x06, 0x79, 0x64, 0x56, 0xdf, 0xf1, 0x5e, 0xeb, 0xf8, 0x2a, + 0xcd, 0xc2, 0x1f, 0x80, 0x8c, 0xdc, 0x5d, 0xa1, 0xcb, 0xff, 0x8c, 0xcd, 0x10, 0x95, 0x0c, 0xe7, + 0x29, 0x9e, 0x25, 0x2a, 0xb6, 0x0f, 0x13, 0xc5, 0xd1, 0x08, 0x2e, 0x79, 0xcf, 0x40, 0xb6, 0xda, + 0x6e, 0xe9, 0x36, 0xfa, 0xad, 0xf4, 0x50, 0x30, 0xa3, 0x97, 0x9e, 0x48, 0x7d, 0x2f, 0x3d, 0xf1, + 0x77, 0x5d, 0x33, 0x02, 0xbb, 0xae, 0x35, 0x7c, 0xd1, 0xe6, 0x77, 0x5d, 0x6f, 0x65, 0x21, 0xfe, + 0xe8, 0x9e, 0xed, 0xe3, 0x7a, 0x88, 0x94, 0x54, 0xab, 0x47, 0xec, 0xc8, 0x33, 0x4f, 0x62, 0x21, + 0xec, 0x00, 0x72, 0x73, 0x95, 0x5a, 0xad, 0xb2, 0x92, 0x3f, 0x42, 0x62, 0x1f, 0x55, 0x56, 0xf3, + 0x29, 0x79, 0x02, 0xb2, 0xa5, 0x72, 0x59, 0x51, 0xf3, 0x69, 0x12, 0x54, 0xaf, 0x54, 0x5b, 0x56, + 0xf2, 0x12, 0x1f, 0x01, 0x3f, 0xd2, 0xfc, 0xe6, 0xcb, 0x4e, 0x52, 0xbd, 0xc4, 0x0c, 0xf1, 0x70, + 0x7e, 0x92, 0x57, 0xae, 0x5f, 0x97, 0x20, 0xbb, 0x82, 0xad, 0x4d, 0x8c, 0x7e, 0x3e, 0xc6, 0x26, + 0xdf, 0x86, 0x6e, 0x75, 0x68, 0x08, 0x42, 0x7f, 0x93, 0x2f, 0x98, 0x26, 0x5f, 0x03, 0xd3, 0x1d, + 0xdc, 0x30, 0x8d, 0xa6, 0x9b, 0x89, 0xf6, 0x47, 0x7c, 0x22, 0x7a, 0x20, 0x26, 0x64, 0x84, 0xd1, + 0xa1, 0xec, 0xd4, 0xc5, 0x01, 0xa6, 0x57, 0xa9, 0xc9, 0x03, 0xf3, 0x03, 0xc9, 0xf9, 0xa9, 0xbd, + 0x87, 0x1e, 0x10, 0xde, 0x7d, 0xbd, 0x01, 0x72, 0x44, 0x4d, 0xdd, 0x31, 0xba, 0x77, 0x7f, 0xcc, + 0xf2, 0xc8, 0x73, 0x70, 0xac, 0x83, 0x5b, 0xb8, 0x61, 0xe3, 0xa6, 0xd3, 0x74, 0xd5, 0xbe, 0x9d, + 0xc2, 0xfe, 0xec, 0xe8, 0x2f, 0x82, 0x00, 0xde, 0xce, 0x03, 0x78, 0x6d, 0x0f, 0x51, 0x3a, 0x15, + 0x0a, 0xb7, 0x95, 0x9d, 0x6a, 0x54, 0x5b, 0xa6, 0xb7, 0x28, 0xee, 0xbe, 0x3b, 0xdf, 0xb6, 0xec, + 0xed, 0x16, 0xf9, 0xc6, 0x0e, 0x18, 0xb8, 0xef, 0xf2, 0x2c, 0x8c, 0x69, 0xc6, 0x1e, 0xf9, 0x94, + 0x89, 0xa8, 0xb5, 0x9b, 0x09, 0xbd, 0xd6, 0x43, 0xfe, 0x4e, 0x0e, 0xf9, 0x27, 0x88, 0xb1, 0x9b, + 0x3c, 0xf0, 0xbf, 0x34, 0x06, 0xd9, 0x55, 0xad, 0x63, 0x63, 0xf4, 0x7f, 0x4b, 0xa2, 0xc8, 0x5f, + 0x0b, 0x33, 0x1b, 0x66, 0x63, 0xa7, 0x83, 0x9b, 0x7c, 0xa3, 0xec, 0x4a, 0x1d, 0x06, 0xe6, 0xf2, + 0xf5, 0x90, 0x77, 0x13, 0x19, 0x59, 0x77, 0x1b, 0x7e, 0x5f, 0x3a, 0x89, 0xa7, 0xde, 0x59, 0xd5, + 0x2c, 0xbb, 0xb2, 0x41, 0xd2, 0xbc, 0x78, 0xea, 0xc1, 0x44, 0x0e, 0xfa, 0x5c, 0x04, 0xf4, 0x63, + 0xe1, 0xd0, 0x8f, 0x0b, 0x40, 0x2f, 0x17, 0x60, 0x7c, 0x43, 0x6f, 0x61, 0xf2, 0xc3, 0x04, 0xf9, + 0xa1, 0xd7, 0x98, 0x44, 0x64, 0xef, 0x8d, 0x49, 0x0b, 0x7a, 0x0b, 0xab, 0xde, 0x6f, 0xee, 0x44, + 0x06, 0xfc, 0x89, 0xcc, 0x32, 0xf5, 0xa7, 0x75, 0x0c, 0x2f, 0x43, 0xdb, 0xc6, 0xee, 0xe2, 0x9b, + 0xc1, 0x0e, 0xb7, 0x34, 0x35, 0x5b, 0x23, 0x60, 0x4c, 0xa9, 0xe4, 0x99, 0xf7, 0x0b, 0x91, 0xba, + 0xfd, 0x42, 0x5e, 0x20, 0xc5, 0xeb, 0x11, 0x5d, 0x66, 0x43, 0x5a, 0xd4, 0xba, 0x0b, 0x10, 0xb5, + 0x14, 0xbd, 0x77, 0x07, 0x98, 0x86, 0x66, 0x61, 0x7b, 0x35, 0xe8, 0x89, 0x91, 0x55, 0xf9, 0x44, + 0xe2, 0xca, 0xd7, 0xa9, 0x6a, 0xdb, 0x98, 0x14, 0x56, 0x74, 0xbe, 0x31, 0x17, 0xad, 0x7d, 0xe9, + 0x7e, 0xff, 0x9b, 0x1d, 0x76, 0xff, 0xdb, 0xab, 0x8e, 0xc9, 0x37, 0xc3, 0x37, 0x64, 0x40, 0x2a, + 0xee, 0xd8, 0x8f, 0xea, 0xee, 0xf7, 0x47, 0xc2, 0x7e, 0x2e, 0xac, 0x3f, 0xdb, 0xb1, 0x0f, 0xb7, + 0xf7, 0x8d, 0xa9, 0x25, 0x62, 0xfe, 0x34, 0x61, 0x75, 0x4b, 0x5e, 0x47, 0xde, 0x21, 0x79, 0x0e, + 0x96, 0xf7, 0xa7, 0x0e, 0x6e, 0x9a, 0x23, 0xda, 0x3f, 0x05, 0x7a, 0x06, 0xef, 0xdd, 0xed, 0x78, + 0x32, 0x5c, 0xf4, 0x45, 0xb2, 0xbd, 0x4e, 0x44, 0x39, 0xa5, 0xd2, 0x17, 0xf4, 0x2a, 0x61, 0xb7, + 0x73, 0x2a, 0xb6, 0x48, 0x57, 0xc2, 0x78, 0x36, 0x95, 0xd8, 0x95, 0xb2, 0x11, 0xc5, 0x26, 0x0f, + 0xd8, 0xf7, 0x82, 0xae, 0x82, 0x85, 0x03, 0x23, 0x86, 0x5e, 0x27, 0xbc, 0x1d, 0x45, 0xab, 0xdd, + 0x67, 0xbd, 0x30, 0x9e, 0xbc, 0xc5, 0x36, 0xab, 0x22, 0x0b, 0x4e, 0x5e, 0xe2, 0xdf, 0x95, 0x20, + 0x47, 0xb7, 0x20, 0xd1, 0xdb, 0x52, 0x31, 0xee, 0xe2, 0xb7, 0x79, 0x17, 0x42, 0xef, 0x3d, 0xce, + 0x9a, 0x03, 0xe7, 0x6a, 0x98, 0x89, 0xe5, 0x6a, 0xc8, 0x9f, 0xe3, 0x14, 0x68, 0x47, 0xb4, 0x8e, + 0x09, 0x4f, 0x27, 0xe3, 0xb4, 0xb0, 0x9e, 0x0c, 0x25, 0x8f, 0xf7, 0x8b, 0xb2, 0x30, 0x45, 0x8b, + 0x3e, 0xa7, 0x37, 0x37, 0xb1, 0x8d, 0xde, 0x9b, 0xfe, 0xf1, 0x41, 0x5d, 0x2e, 0xc3, 0xd4, 0x05, + 0xc2, 0xf6, 0xb2, 0xb6, 0x67, 0xee, 0xd8, 0x6c, 0xe5, 0xe2, 0xfa, 0xc8, 0x75, 0x0f, 0x5a, 0xcf, + 0x59, 0xfa, 0x87, 0xca, 0xfd, 0xef, 0xc8, 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x1c, 0x31, 0xb2, + 0x82, 0x49, 0xf2, 0x49, 0xc8, 0xed, 0xea, 0xf8, 0x42, 0xa9, 0xc9, 0xac, 0x5b, 0xf6, 0x86, 0xfe, + 0x50, 0x78, 0xdf, 0x36, 0x08, 0x37, 0xe3, 0x25, 0x59, 0x2d, 0x14, 0xdb, 0xbd, 0xed, 0xcb, 0xd6, + 0x08, 0xce, 0x14, 0xf3, 0x57, 0xb6, 0x16, 0x63, 0x28, 0x62, 0x98, 0xe1, 0xcc, 0x87, 0xf2, 0x88, + 0x3c, 0xb1, 0x42, 0x05, 0x30, 0xe4, 0xdb, 0x5c, 0xc5, 0xe2, 0x4b, 0xf4, 0x29, 0x3a, 0x79, 0xc9, + 0xbf, 0x51, 0x82, 0x89, 0x2a, 0xb6, 0x17, 0x74, 0xdc, 0x6a, 0x76, 0x90, 0x75, 0x70, 0xd3, 0xe8, + 0x46, 0xc8, 0x6d, 0x10, 0x62, 0xfd, 0xce, 0x2d, 0xb0, 0x6c, 0xe8, 0x0d, 0x69, 0xd1, 0x1d, 0x61, + 0xb6, 0xfa, 0xe6, 0x72, 0x3b, 0x14, 0x98, 0xc4, 0x3c, 0x7a, 0xa3, 0x4b, 0x4e, 0x1e, 0xa5, 0x77, + 0x4a, 0x30, 0xc5, 0xee, 0x78, 0x2c, 0xb4, 0xf4, 0x4d, 0x03, 0xed, 0x0c, 0xa1, 0x85, 0xc8, 0x37, + 0x41, 0x56, 0x73, 0xa8, 0xb1, 0xad, 0x57, 0xd4, 0xb3, 0xf3, 0x24, 0xe5, 0xa9, 0x34, 0x63, 0x8c, + 0x30, 0xad, 0xbe, 0x62, 0xbb, 0x3c, 0x8f, 0x30, 0x4c, 0x6b, 0xdf, 0xc2, 0x93, 0x47, 0xec, 0x6b, + 0x12, 0x1c, 0x67, 0x0c, 0x9c, 0xc5, 0x96, 0xad, 0x37, 0xb4, 0x16, 0x45, 0xee, 0x25, 0xa9, 0x61, + 0x40, 0xb7, 0x04, 0xd3, 0xbb, 0x41, 0xb2, 0x0c, 0xc2, 0x33, 0x3d, 0x21, 0xe4, 0x18, 0x50, 0xf9, + 0x1f, 0x63, 0x84, 0xbb, 0xe4, 0xa4, 0xca, 0xd1, 0x1c, 0x61, 0xb8, 0x4b, 0x61, 0x26, 0x92, 0x87, + 0xf8, 0x95, 0x2c, 0x34, 0x8f, 0xdf, 0x7d, 0x7e, 0x49, 0x18, 0xdb, 0x35, 0x98, 0x24, 0x58, 0xd2, + 0x1f, 0xd9, 0x32, 0x44, 0x84, 0x12, 0x7b, 0xfd, 0x0e, 0xbb, 0x56, 0xce, 0xfb, 0x57, 0x0d, 0xd2, + 0x41, 0xe7, 0x00, 0xfc, 0x4f, 0xc1, 0x4e, 0x3a, 0x15, 0xd6, 0x49, 0xa7, 0xc5, 0x3a, 0xe9, 0xb7, + 0x0a, 0x07, 0x4b, 0xe9, 0xcd, 0xf6, 0xc1, 0xd5, 0x43, 0x2c, 0x4c, 0x46, 0xff, 0xd2, 0x93, 0xd7, + 0x8b, 0xd7, 0x66, 0xba, 0x2f, 0xf3, 0xff, 0xc4, 0x50, 0xe6, 0x53, 0xc1, 0xfe, 0x40, 0xea, 0xea, + 0x0f, 0x0e, 0x60, 0x49, 0x5f, 0x07, 0x47, 0x69, 0x11, 0x45, 0x8f, 0xad, 0x2c, 0x0d, 0x05, 0xd1, + 0x95, 0xcc, 0xc7, 0xb5, 0x13, 0x54, 0x02, 0x4f, 0x08, 0x03, 0x2c, 0x7d, 0xc6, 0x33, 0x76, 0xe3, + 0x2a, 0x48, 0x18, 0x67, 0x23, 0x70, 0x0b, 0xcd, 0x50, 0x6b, 0x77, 0x8d, 0xdc, 0xfc, 0x87, 0xbe, + 0x92, 0x19, 0xc6, 0x88, 0x70, 0x17, 0x64, 0x88, 0x8b, 0xbb, 0x14, 0xba, 0xa4, 0xe1, 0x17, 0xe9, + 0x5f, 0xcb, 0x88, 0x2f, 0xda, 0x4b, 0x47, 0x54, 0xf2, 0xa7, 0x7c, 0x3d, 0x1c, 0x5d, 0xd7, 0x1a, + 0xe7, 0x37, 0x2d, 0x73, 0x87, 0xdc, 0x91, 0x66, 0xb2, 0xcb, 0xd6, 0xc8, 0xa5, 0x95, 0xfc, 0x07, + 0xf9, 0x66, 0xd7, 0x74, 0xc8, 0xf6, 0x33, 0x1d, 0x96, 0x8e, 0x30, 0xe3, 0x41, 0x7e, 0x92, 0xd7, + 0xe9, 0xe4, 0x22, 0x3b, 0x9d, 0xa5, 0x23, 0x6e, 0xb7, 0x23, 0xcf, 0xc3, 0x78, 0x53, 0xdf, 0x25, + 0x5b, 0xd5, 0x64, 0xd6, 0xd5, 0xef, 0xe8, 0xf2, 0xbc, 0xbe, 0x4b, 0x37, 0xb6, 0x97, 0x8e, 0xa8, + 0xde, 0x9f, 0xf2, 0x22, 0x4c, 0x90, 0x6d, 0x01, 0x42, 0x66, 0x3c, 0xd6, 0xb1, 0xe4, 0xa5, 0x23, + 0xaa, 0xff, 0xaf, 0x63, 0x7d, 0x64, 0xc8, 0xd9, 0x8f, 0x3b, 0xdd, 0xed, 0xf6, 0x54, 0xac, 0xed, + 0x76, 0x47, 0x16, 0x74, 0xc3, 0xfd, 0x24, 0x64, 0x1b, 0x44, 0xc2, 0x69, 0x26, 0x61, 0xfa, 0x2a, + 0xdf, 0x0e, 0x99, 0x6d, 0xcd, 0x72, 0x27, 0xcf, 0xd7, 0xf6, 0xa7, 0xbb, 0xa2, 0x59, 0xe7, 0x1d, + 0x04, 0x9d, 0xbf, 0xe6, 0xc6, 0x20, 0x4b, 0x04, 0xe7, 0x3d, 0xa0, 0x77, 0x64, 0xa8, 0x19, 0x52, + 0x34, 0x0d, 0x67, 0xd8, 0xaf, 0x99, 0xee, 0x01, 0x99, 0x3f, 0x4c, 0x0d, 0xc7, 0x82, 0xec, 0x79, + 0xfb, 0xbd, 0x14, 0x7a, 0xfb, 0x7d, 0xd7, 0x35, 0xcc, 0x99, 0xee, 0x6b, 0x98, 0xfd, 0xe5, 0x83, + 0x6c, 0x7f, 0x47, 0x95, 0xbf, 0x18, 0xc0, 0x74, 0xe9, 0x16, 0x44, 0xf8, 0x0c, 0xbc, 0xa5, 0x1b, + 0x81, 0x3a, 0xbb, 0xaf, 0x31, 0x3b, 0xa5, 0xb8, 0x46, 0x4d, 0x1f, 0xf6, 0x92, 0xef, 0x9b, 0x7e, + 0x3b, 0x03, 0xa7, 0xe8, 0x65, 0xdf, 0xbb, 0xb8, 0x66, 0xf2, 0xb7, 0x92, 0xa2, 0x3f, 0x1d, 0x8a, + 0xd2, 0xf4, 0x18, 0x70, 0xa4, 0x9e, 0x03, 0xce, 0xbe, 0x43, 0xca, 0x99, 0x3e, 0x87, 0x94, 0xb3, + 0xf1, 0x56, 0x0e, 0x3f, 0x12, 0xd4, 0x9f, 0x55, 0x5e, 0x7f, 0x6e, 0x0b, 0x01, 0xa8, 0x97, 0x5c, + 0x86, 0x62, 0xdf, 0xbc, 0xdb, 0xd3, 0x94, 0x2a, 0xa7, 0x29, 0x77, 0x0e, 0xce, 0x48, 0xf2, 0xda, + 0xf2, 0x07, 0x19, 0xb8, 0xc4, 0x67, 0xa6, 0x8c, 0x2f, 0x30, 0x45, 0xf9, 0xe2, 0x50, 0x14, 0x25, + 0x7e, 0x0c, 0x84, 0xa4, 0x35, 0xe6, 0xcf, 0x84, 0xcf, 0x0e, 0x75, 0x03, 0xe5, 0xc9, 0x26, 0x44, + 0x59, 0x4e, 0x42, 0x8e, 0xf6, 0x30, 0x0c, 0x1a, 0xf6, 0x16, 0xb3, 0xbb, 0x11, 0x3b, 0x71, 0x24, + 0xca, 0xdb, 0x08, 0xf4, 0x87, 0xad, 0x6b, 0xd4, 0x76, 0x2c, 0xa3, 0x64, 0xd8, 0x26, 0xfa, 0xc5, + 0xa1, 0x28, 0x8e, 0xe7, 0x0d, 0x27, 0x0d, 0xe2, 0x0d, 0x37, 0xd0, 0x2a, 0x87, 0x5b, 0x83, 0x43, + 0x59, 0xe5, 0x08, 0x29, 0x3c, 0x79, 0xfc, 0xde, 0x25, 0xc1, 0x49, 0x36, 0xd9, 0x9a, 0xe3, 0x2d, + 0x44, 0x74, 0xef, 0x30, 0x80, 0x3c, 0xee, 0x9a, 0x49, 0xec, 0xde, 0x3a, 0xf2, 0xc2, 0x9f, 0x94, + 0x8a, 0xbc, 0x3f, 0x85, 0x9b, 0x0e, 0x76, 0x71, 0x38, 0x14, 0xa4, 0xc4, 0xae, 0x4d, 0x89, 0xc1, + 0x46, 0xf2, 0x98, 0xbd, 0x5c, 0x82, 0x1c, 0x3d, 0xa7, 0x85, 0xd6, 0x12, 0x71, 0x98, 0xe0, 0xa3, + 0x3c, 0x0b, 0xec, 0xc8, 0x51, 0x6e, 0x12, 0x3b, 0xc3, 0x16, 0x67, 0x2f, 0xae, 0x27, 0x2b, 0x23, + 0x70, 0x21, 0x4c, 0xc3, 0x64, 0x15, 0xdb, 0x45, 0xcd, 0xb2, 0x74, 0x6d, 0x73, 0x58, 0x1e, 0xdf, + 0xa2, 0xde, 0xc3, 0xe8, 0x87, 0x29, 0xd1, 0xf3, 0x34, 0xde, 0x42, 0xb8, 0xcb, 0x6a, 0x48, 0x2c, + 0xc1, 0x87, 0x84, 0xce, 0xcc, 0xf4, 0xa3, 0x36, 0x02, 0x8f, 0xed, 0x34, 0x8c, 0xb9, 0x67, 0xf1, + 0x6e, 0xe4, 0xce, 0x67, 0x6e, 0xd9, 0xdb, 0xee, 0x31, 0x18, 0xf2, 0xbc, 0xff, 0x0c, 0x18, 0x7a, + 0x4d, 0x4c, 0x47, 0xf9, 0xe8, 0x83, 0x84, 0xf1, 0xda, 0x58, 0x1c, 0x77, 0xf8, 0xc3, 0x3a, 0x3a, + 0xf8, 0x7b, 0x63, 0x6c, 0x39, 0x72, 0x59, 0xb3, 0xf1, 0x45, 0xf4, 0x25, 0x09, 0xc6, 0xaa, 0xd8, + 0x76, 0xc6, 0x5b, 0x87, 0xfd, 0x03, 0x6b, 0xb8, 0x1c, 0x58, 0xf1, 0x98, 0x60, 0x6b, 0x18, 0x77, + 0xc3, 0x44, 0xdb, 0x32, 0x1b, 0xb8, 0xd3, 0x61, 0xab, 0x17, 0x41, 0x47, 0xb5, 0x5e, 0xa3, 0x3f, + 0x61, 0x6d, 0x76, 0xd5, 0xfd, 0x47, 0xf5, 0x7f, 0x8f, 0x6b, 0x06, 0x50, 0x4a, 0xac, 0x82, 0xa3, + 0x36, 0x03, 0xa2, 0x0a, 0x4f, 0x1e, 0xe8, 0xcf, 0x4b, 0x30, 0x55, 0xc5, 0xb6, 0x27, 0xc5, 0x18, + 0x9b, 0x1c, 0xe1, 0xf0, 0x72, 0x50, 0x4a, 0x07, 0x83, 0x52, 0xfc, 0xea, 0x4d, 0x5e, 0x9a, 0x1e, + 0xb1, 0x11, 0x5e, 0xbd, 0x29, 0xc6, 0xc1, 0x08, 0x8e, 0xaf, 0x3d, 0x0e, 0x26, 0x08, 0x2f, 0xa4, + 0xc1, 0xfe, 0x4a, 0xc6, 0x6f, 0xbc, 0x5f, 0x4e, 0xa8, 0xf1, 0xde, 0x01, 0xd9, 0x6d, 0xcd, 0x3a, + 0xdf, 0x21, 0x0d, 0x77, 0x52, 0xc4, 0x6c, 0x5f, 0x71, 0xb2, 0xab, 0xf4, 0xaf, 0xde, 0x7e, 0x9a, + 0xd9, 0x78, 0x7e, 0x9a, 0x0f, 0xa5, 0x63, 0x8d, 0x84, 0x74, 0xee, 0x30, 0xc4, 0x26, 0x1f, 0x63, + 0xdc, 0x8c, 0x28, 0x3b, 0x79, 0xe5, 0x78, 0x89, 0x04, 0xe3, 0xce, 0xb8, 0x4d, 0xec, 0xf1, 0x73, + 0x07, 0x57, 0x87, 0xde, 0x86, 0x7e, 0xcc, 0x1e, 0xd8, 0x95, 0xc8, 0xf0, 0xcc, 0xfb, 0x18, 0x3d, + 0x70, 0x54, 0xe1, 0x23, 0xb8, 0xe0, 0x8d, 0xe2, 0x41, 0xda, 0x03, 0x7a, 0xb3, 0x04, 0xd2, 0x22, + 0xb6, 0x47, 0x6d, 0x45, 0xbe, 0x53, 0x38, 0xc4, 0x11, 0x27, 0x30, 0xc2, 0xf3, 0xec, 0x22, 0x1e, + 0x4e, 0x03, 0x12, 0x8b, 0x6d, 0x24, 0xc4, 0x40, 0xf2, 0xa8, 0x7d, 0x80, 0xa2, 0x46, 0x37, 0x17, + 0x7e, 0x61, 0x08, 0xbd, 0xea, 0x68, 0x17, 0x3e, 0x5c, 0x01, 0x12, 0x1a, 0x87, 0xd5, 0xde, 0x7a, + 0x15, 0x3e, 0x92, 0xab, 0x2e, 0xc1, 0x69, 0xec, 0x5b, 0xb8, 0x71, 0x1e, 0x37, 0xd1, 0xcf, 0x1e, + 0x1c, 0xba, 0x53, 0x30, 0xd6, 0xa0, 0xd4, 0x08, 0x78, 0xe3, 0xaa, 0xfb, 0x1a, 0xe3, 0xde, 0x76, + 0xbe, 0x23, 0xa2, 0xbf, 0x8f, 0xf0, 0xde, 0x76, 0x81, 0xe2, 0x47, 0x60, 0xb6, 0xd0, 0x59, 0x46, + 0xa9, 0x61, 0x1a, 0xe8, 0x3f, 0x1f, 0x1c, 0x96, 0x2b, 0x60, 0x42, 0x6f, 0x98, 0x06, 0x09, 0x43, + 0xe1, 0x1e, 0x02, 0xf2, 0x12, 0xdc, 0xaf, 0xca, 0xb6, 0x79, 0x9f, 0xce, 0x76, 0xcd, 0xfd, 0x84, + 0x41, 0x8d, 0x09, 0x87, 0xf5, 0xc3, 0x32, 0x26, 0x7a, 0x94, 0x9d, 0x3c, 0x64, 0x9f, 0xf4, 0xbd, + 0xdb, 0x68, 0x57, 0xf8, 0xa8, 0x58, 0x05, 0x1e, 0x64, 0x38, 0x0b, 0xd6, 0xe2, 0x50, 0x86, 0xb3, + 0x08, 0x06, 0x46, 0x70, 0x63, 0x85, 0x8f, 0x63, 0xe2, 0x6b, 0xc0, 0x07, 0x40, 0x67, 0x78, 0xe6, + 0xe1, 0x80, 0xe8, 0x1c, 0x8e, 0x89, 0xf8, 0x61, 0x16, 0x22, 0x93, 0x59, 0x3c, 0xe8, 0xbf, 0x0c, + 0x03, 0x9c, 0xdb, 0x06, 0xf1, 0x57, 0xa0, 0xde, 0x0a, 0x31, 0x6e, 0x9c, 0xdf, 0x27, 0x41, 0x87, + 0xca, 0x50, 0x10, 0x14, 0xbb, 0x71, 0x5e, 0xa4, 0xfc, 0xe4, 0x01, 0x7c, 0xb1, 0x04, 0x33, 0xc4, + 0x47, 0xa0, 0x85, 0x35, 0x8b, 0x76, 0x94, 0x43, 0x71, 0x94, 0x7f, 0x8f, 0x70, 0x80, 0x1f, 0x5e, + 0x0e, 0x3e, 0x1f, 0x43, 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x23, 0xd9, 0x46, 0xc9, 0x7b, + 0x2c, 0x30, 0x15, 0x1f, 0x0e, 0x1e, 0x31, 0x3d, 0x72, 0x79, 0x61, 0xb8, 0x8d, 0x6d, 0xc4, 0x1e, + 0xb9, 0x22, 0x4c, 0x24, 0x8f, 0xc9, 0x9b, 0x6f, 0x62, 0x0b, 0xce, 0x35, 0x6d, 0xbd, 0x85, 0xd1, + 0xeb, 0x32, 0xde, 0x89, 0xb6, 0xcf, 0x0f, 0xc5, 0x03, 0xf3, 0x00, 0x01, 0xf1, 0x65, 0xc8, 0x58, + 0xe6, 0x05, 0xba, 0xb4, 0x35, 0xad, 0x92, 0x67, 0x7a, 0x3d, 0x65, 0x6b, 0x67, 0xdb, 0xa0, 0x27, + 0x43, 0xa7, 0x55, 0xf7, 0x55, 0xbe, 0x06, 0xa6, 0x2f, 0xe8, 0xf6, 0xd6, 0x12, 0xd6, 0x9a, 0xd8, + 0x52, 0xcd, 0x0b, 0xc4, 0x63, 0x6e, 0x5c, 0xe5, 0x13, 0x79, 0xff, 0x15, 0x01, 0xfb, 0xd2, 0x11, + 0xca, 0x68, 0x8e, 0xbf, 0xc5, 0xb1, 0x3c, 0xc3, 0xb9, 0x4a, 0x5e, 0x61, 0x3e, 0x28, 0xc1, 0x84, + 0x6a, 0x5e, 0x60, 0x4a, 0xf2, 0x7f, 0x1c, 0xae, 0x8e, 0xc4, 0x9e, 0xe8, 0x11, 0xc9, 0x79, 0xec, + 0x8f, 0x7c, 0xa2, 0x17, 0x59, 0xfc, 0x48, 0x4e, 0x2e, 0x4d, 0xa9, 0xe6, 0x85, 0x2a, 0xb6, 0x69, + 0x8b, 0x40, 0xf5, 0x21, 0x39, 0x59, 0xeb, 0x1d, 0x4a, 0x90, 0xcd, 0xc3, 0xbd, 0xf7, 0xb8, 0xbb, + 0x08, 0x9e, 0x80, 0x3c, 0x16, 0x47, 0xbd, 0x8b, 0xd0, 0x97, 0x83, 0x11, 0xc4, 0x48, 0x91, 0x60, + 0x52, 0x35, 0x2f, 0x38, 0x43, 0xc3, 0x82, 0xde, 0x6a, 0x0d, 0x67, 0x84, 0x8c, 0x6b, 0xfc, 0xbb, + 0x62, 0x70, 0xb9, 0x18, 0xb9, 0xf1, 0xdf, 0x87, 0x81, 0xe4, 0x61, 0x78, 0x01, 0x6d, 0x2c, 0xee, + 0x08, 0x6d, 0x0c, 0x07, 0x87, 0x41, 0x1b, 0x84, 0xc7, 0xc6, 0xa1, 0x35, 0x88, 0x30, 0x0e, 0x46, + 0xb2, 0x73, 0x32, 0x53, 0x24, 0xc3, 0xfc, 0x70, 0xdb, 0xc4, 0xfb, 0xe2, 0xb9, 0x26, 0xb2, 0x61, + 0x97, 0x63, 0x64, 0x28, 0x68, 0xc4, 0x70, 0x41, 0x14, 0xe0, 0x21, 0x79, 0x3c, 0x3e, 0x26, 0xc1, + 0x14, 0x65, 0xe1, 0x51, 0x62, 0x05, 0x0c, 0xd4, 0xa8, 0x82, 0x35, 0x38, 0x9c, 0x46, 0x15, 0xc1, + 0xc1, 0x48, 0x6e, 0x05, 0x75, 0xec, 0xb8, 0x01, 0x8e, 0x8f, 0x87, 0x21, 0x38, 0xb0, 0x31, 0x36, + 0xc4, 0x23, 0xe4, 0x83, 0x18, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0x05, 0x5e, 0x2b, 0x1a, 0x26, 0x06, + 0x07, 0x68, 0x0a, 0x43, 0x84, 0x61, 0xc0, 0xa6, 0x70, 0x48, 0x48, 0x7c, 0x5d, 0x02, 0xa0, 0x0c, + 0xac, 0x98, 0xbb, 0xe4, 0x32, 0x9f, 0x21, 0x74, 0x67, 0xdd, 0x6e, 0xf5, 0x52, 0x1f, 0xb7, 0xfa, + 0x98, 0x21, 0x5c, 0xe2, 0xae, 0x04, 0x06, 0xa4, 0xec, 0x54, 0x72, 0xe4, 0x2b, 0x81, 0xd1, 0xe5, + 0x27, 0x8f, 0xf1, 0xc3, 0xd4, 0x9a, 0xf3, 0x0f, 0x98, 0xfe, 0xe6, 0x50, 0x50, 0x0e, 0xcc, 0xfe, + 0x25, 0x7e, 0xf6, 0x7f, 0x00, 0x6c, 0x07, 0xb5, 0x11, 0xfb, 0x1d, 0x1c, 0x4d, 0xde, 0x46, 0x3c, + 0xbc, 0x03, 0xa2, 0xbf, 0x90, 0x81, 0xa3, 0xac, 0x13, 0xf9, 0x71, 0x80, 0x38, 0xe6, 0x39, 0x3c, + 0xae, 0x93, 0xec, 0x83, 0xf2, 0xb0, 0x16, 0xa4, 0xe2, 0x2c, 0x65, 0x0a, 0xb0, 0x37, 0x92, 0xd5, + 0x8d, 0x9c, 0x72, 0xb1, 0xad, 0x19, 0x4d, 0xf1, 0x70, 0xbf, 0x7d, 0x80, 0x77, 0xd7, 0x1a, 0x25, + 0x7e, 0xad, 0xb1, 0xc7, 0xca, 0x64, 0xec, 0x9d, 0x6b, 0x22, 0x32, 0xca, 0xee, 0xc8, 0x77, 0xae, + 0xc3, 0xcb, 0x4e, 0x1e, 0xa5, 0xf7, 0x49, 0x90, 0xa9, 0x9a, 0x96, 0x8d, 0x5e, 0x18, 0xa7, 0x75, + 0x52, 0xc9, 0xfb, 0x20, 0xb9, 0xef, 0x72, 0x91, 0xbb, 0xa5, 0xf9, 0xc6, 0xe8, 0xa3, 0xce, 0x9a, + 0xad, 0x11, 0xaf, 0x6e, 0xa7, 0xfc, 0xc0, 0x75, 0xcd, 0x71, 0xe3, 0xe9, 0x50, 0xf9, 0x55, 0xc3, + 0x0f, 0x60, 0x24, 0x16, 0x4f, 0x27, 0xb4, 0xe4, 0xe4, 0x71, 0x7b, 0xf0, 0x28, 0xf3, 0x6d, 0x5d, + 0xd0, 0x5b, 0x18, 0xbd, 0x90, 0xba, 0x8c, 0x94, 0xb5, 0x6d, 0x2c, 0x7e, 0x24, 0x26, 0xd2, 0xb5, + 0x95, 0xc4, 0x97, 0x95, 0xfc, 0xf8, 0xb2, 0x71, 0x1b, 0x14, 0x3d, 0x80, 0x4e, 0x59, 0x1a, 0x75, + 0x83, 0x8a, 0x28, 0x7b, 0x24, 0x71, 0x3a, 0x8f, 0x55, 0xb1, 0x4d, 0x8d, 0xca, 0x8a, 0x7b, 0x03, + 0xcb, 0xb3, 0x87, 0x12, 0xb1, 0xd3, 0xbb, 0xe0, 0x45, 0xea, 0xba, 0xe0, 0xe5, 0x83, 0x41, 0x70, + 0x56, 0x78, 0x70, 0x9e, 0x1a, 0x2e, 0x20, 0x9e, 0xc9, 0xa1, 0xc0, 0xf4, 0x4e, 0x0f, 0xa6, 0x55, + 0x0e, 0xa6, 0xdb, 0x07, 0xe4, 0x22, 0x79, 0xc0, 0x5e, 0x96, 0x85, 0xa3, 0x74, 0xd2, 0x5f, 0x30, + 0x9a, 0x2c, 0xc2, 0xea, 0xdb, 0xd2, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, + 0xdb, 0x7d, 0x3b, 0xfe, 0x1c, 0x0d, 0xe7, 0xea, 0x74, 0xa2, 0x64, 0xa7, 0x4d, 0xfc, 0x86, 0x7c, + 0xef, 0x3f, 0xfe, 0x2e, 0xa3, 0x31, 0xf1, 0xbb, 0x8c, 0xfe, 0x3c, 0xde, 0xba, 0x1d, 0x29, 0xba, + 0x4b, 0xe0, 0x09, 0xdb, 0x4e, 0x31, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0xf3, 0x23, + 0x88, 0x0c, 0xe8, 0x4e, 0x46, 0x08, 0x1c, 0xa6, 0x3b, 0x59, 0x3f, 0x06, 0x46, 0x70, 0xab, 0x7d, + 0x96, 0xed, 0xe6, 0x93, 0x76, 0x83, 0xfe, 0x26, 0x9d, 0xf8, 0x28, 0xfd, 0x48, 0x2a, 0x96, 0xff, + 0x33, 0xe1, 0x2b, 0x7a, 0x98, 0x8e, 0xe3, 0xd1, 0x1c, 0x45, 0x6e, 0x04, 0xeb, 0x46, 0x69, 0xe2, + 0x8b, 0x7e, 0x4e, 0x6f, 0xda, 0x5b, 0x43, 0x3a, 0xd1, 0x71, 0xc1, 0xa1, 0xe5, 0x5e, 0x8f, 0x4c, + 0x5e, 0xd0, 0xbf, 0xa6, 0x62, 0x85, 0x90, 0xf2, 0x44, 0x42, 0xd8, 0x0a, 0x11, 0x71, 0x8c, 0xc0, + 0x4f, 0x91, 0xf4, 0x46, 0xa8, 0xd1, 0x67, 0xf5, 0x26, 0x36, 0x1f, 0x85, 0x1a, 0x4d, 0xf8, 0x1a, + 0x9e, 0x46, 0x47, 0x91, 0xfb, 0x09, 0xd5, 0x68, 0x4f, 0x24, 0x43, 0xd2, 0xe8, 0x48, 0x7a, 0xc9, + 0xcb, 0xf8, 0x35, 0x53, 0x6c, 0x22, 0xb5, 0xac, 0x1b, 0xe7, 0xd1, 0xf7, 0x73, 0xee, 0xc5, 0xcc, + 0xe7, 0x74, 0x7b, 0x8b, 0xc5, 0x82, 0xf9, 0x03, 0xe1, 0xbb, 0x51, 0x06, 0x88, 0xf7, 0xc2, 0x87, + 0x93, 0xca, 0xee, 0x0b, 0x27, 0x55, 0x80, 0x69, 0xdd, 0xb0, 0xb1, 0x65, 0x68, 0xad, 0x85, 0x96, + 0xb6, 0xd9, 0x39, 0x35, 0xd6, 0xf3, 0xf2, 0xba, 0x52, 0x20, 0x8f, 0xca, 0xff, 0x11, 0xbc, 0xbe, + 0x72, 0x9c, 0xbf, 0xbe, 0x32, 0x24, 0xfa, 0xd5, 0x44, 0x78, 0xf4, 0x2b, 0x2f, 0xba, 0x15, 0xf4, + 0x0f, 0x8e, 0x2d, 0x6a, 0x1b, 0xc7, 0x0c, 0xf7, 0x77, 0xa3, 0x60, 0x14, 0x36, 0x2f, 0xf4, 0xe3, + 0xeb, 0xa5, 0x58, 0xab, 0x7b, 0x8e, 0x22, 0xcc, 0x76, 0x2b, 0x41, 0x6c, 0x0b, 0x35, 0x58, 0x79, + 0xa9, 0xab, 0xf2, 0x9e, 0xc9, 0x93, 0x11, 0x30, 0x79, 0x82, 0x4a, 0x95, 0x15, 0x53, 0xaa, 0x38, + 0x8b, 0x85, 0x22, 0xb5, 0x1d, 0xc1, 0x69, 0xa4, 0x2c, 0x1c, 0x73, 0xa3, 0xdd, 0xb6, 0xdb, 0x58, + 0xb3, 0x34, 0xa3, 0x81, 0xd1, 0x27, 0xd3, 0xc3, 0x30, 0x7b, 0x17, 0x60, 0x5c, 0x6f, 0x98, 0x46, + 0x55, 0x7f, 0x8e, 0x7b, 0xb9, 0x5c, 0x74, 0x90, 0x75, 0x22, 0x91, 0x12, 0xfb, 0x43, 0xf5, 0xfe, + 0x95, 0x4b, 0x30, 0xd1, 0xd0, 0xac, 0x26, 0x0d, 0xc2, 0x97, 0xed, 0xba, 0xc8, 0x29, 0x94, 0x50, + 0xd1, 0xfd, 0x45, 0xf5, 0xff, 0x96, 0x2b, 0xbc, 0x10, 0x73, 0x5d, 0xd1, 0x3c, 0x42, 0x89, 0xcd, + 0xfb, 0x3f, 0x71, 0x32, 0x77, 0xa4, 0x63, 0xe1, 0x16, 0xb9, 0x83, 0x9e, 0xf6, 0x10, 0x13, 0xaa, + 0x9f, 0x10, 0x77, 0x79, 0x80, 0x14, 0xb5, 0x0f, 0x8d, 0x51, 0x2f, 0x0f, 0x08, 0x71, 0x91, 0xbc, + 0x66, 0xbe, 0x3b, 0x07, 0xd3, 0xb4, 0x57, 0x63, 0xe2, 0x44, 0x2f, 0x26, 0x57, 0x48, 0xdb, 0xf7, + 0xe0, 0x3d, 0x54, 0x3d, 0xf8, 0x98, 0x9c, 0x07, 0xe9, 0xbc, 0x17, 0x70, 0xd0, 0x79, 0x8c, 0xbb, + 0x6f, 0xef, 0xf2, 0x35, 0x4b, 0x79, 0x1a, 0xf5, 0xbe, 0x7d, 0x74, 0xf1, 0xc9, 0xe3, 0xf3, 0xab, + 0x12, 0x48, 0x85, 0x66, 0x13, 0x35, 0x0e, 0x0e, 0xc5, 0x55, 0x30, 0xe9, 0xb6, 0x19, 0x3f, 0x06, + 0x64, 0x30, 0x29, 0xee, 0x22, 0xa8, 0x27, 0x9b, 0x42, 0x73, 0xe4, 0xbb, 0x0a, 0x11, 0x65, 0x27, + 0x0f, 0xca, 0x6f, 0x8e, 0xb1, 0x46, 0x33, 0x67, 0x9a, 0xe7, 0xc9, 0x51, 0x99, 0x17, 0x4a, 0x90, + 0x5d, 0xc0, 0x76, 0x63, 0x6b, 0x48, 0x6d, 0x66, 0xc7, 0x6a, 0xb9, 0x6d, 0x66, 0xdf, 0x7d, 0xf8, + 0xfd, 0x6d, 0x58, 0x97, 0xad, 0x59, 0xc2, 0xd2, 0xa8, 0xa3, 0x3b, 0x47, 0x96, 0x9e, 0x3c, 0x38, + 0xff, 0x2a, 0xc1, 0x8c, 0xb7, 0xc2, 0x45, 0x31, 0x79, 0x59, 0xea, 0xd1, 0xb6, 0xde, 0x89, 0xbe, + 0x18, 0x2f, 0x44, 0x9a, 0x27, 0x53, 0xbe, 0x66, 0x09, 0x2f, 0x2c, 0xc6, 0x08, 0x9e, 0x26, 0xc6, + 0xe0, 0x08, 0x66, 0xf0, 0x12, 0x8c, 0x13, 0x86, 0xe6, 0xf5, 0x5d, 0xe2, 0x3a, 0xc8, 0x2d, 0x34, + 0x3e, 0x77, 0x28, 0x0b, 0x8d, 0xb7, 0xf3, 0x0b, 0x8d, 0x82, 0x11, 0x8f, 0xdd, 0x75, 0xc6, 0x98, + 0xbe, 0x34, 0xce, 0xff, 0x43, 0x5f, 0x66, 0x8c, 0xe1, 0x4b, 0xd3, 0xa7, 0xfc, 0xe4, 0x11, 0x7d, + 0xfd, 0x7f, 0x62, 0x9d, 0xad, 0xbb, 0xa1, 0x8a, 0xfe, 0xaf, 0x63, 0x90, 0x39, 0xeb, 0x3c, 0xfc, + 0x4f, 0xff, 0x46, 0xac, 0x07, 0x86, 0x10, 0x9c, 0xe1, 0x19, 0x90, 0x71, 0xe8, 0xb3, 0x69, 0xcb, + 0xf5, 0x62, 0xbb, 0xbb, 0x0e, 0x23, 0x2a, 0xf9, 0x4f, 0x3e, 0x09, 0xb9, 0x8e, 0xb9, 0x63, 0x35, + 0x1c, 0xf3, 0xd9, 0xd1, 0x18, 0xf6, 0x16, 0x37, 0x28, 0x29, 0x47, 0x7a, 0x76, 0x78, 0x2e, 0xa3, + 0x81, 0x0b, 0x92, 0x24, 0xee, 0x82, 0xa4, 0x18, 0xfb, 0x07, 0x02, 0xbc, 0x25, 0xaf, 0x11, 0x7f, + 0x43, 0xee, 0x0a, 0x6c, 0x0e, 0x0b, 0xf6, 0x10, 0xb1, 0x1c, 0x54, 0x1d, 0xe2, 0x3a, 0x7c, 0xf3, + 0xa2, 0xf5, 0xe2, 0xc0, 0x8f, 0xd4, 0xe1, 0x5b, 0x80, 0x87, 0x91, 0x9c, 0x52, 0xcf, 0x31, 0x27, + 0xd5, 0x7b, 0x87, 0x89, 0x6e, 0x86, 0x53, 0xfa, 0x03, 0xa1, 0x33, 0x44, 0xe7, 0xd5, 0x81, 0xd1, + 0x39, 0x24, 0xf7, 0xd5, 0x3f, 0x92, 0x48, 0x24, 0x4c, 0xd7, 0xc8, 0x11, 0xbf, 0xe8, 0x28, 0x36, + 0x44, 0xce, 0x18, 0xcc, 0xc5, 0x81, 0x9e, 0x1e, 0x3c, 0x34, 0x38, 0x2f, 0xba, 0x00, 0xff, 0xa3, + 0x0e, 0x0d, 0x2e, 0xca, 0x48, 0xf2, 0x40, 0xbe, 0x89, 0x5e, 0x2c, 0x56, 0x68, 0xd8, 0xfa, 0xee, + 0x90, 0x5b, 0x1a, 0x3f, 0xbc, 0xc4, 0x8c, 0x06, 0xbc, 0x4f, 0x42, 0x94, 0xc3, 0x51, 0x47, 0x03, + 0x16, 0x63, 0x23, 0x79, 0x98, 0xbe, 0x95, 0x73, 0xa4, 0xc7, 0xd6, 0x66, 0xde, 0xcc, 0x56, 0x03, + 0xf0, 0xc1, 0xd1, 0x3a, 0x03, 0x53, 0x81, 0xa9, 0xbf, 0x7b, 0x61, 0x0d, 0x97, 0x16, 0xf7, 0xa0, + 0xbb, 0x27, 0xb2, 0xa1, 0x2f, 0x0c, 0xc4, 0x58, 0xf0, 0x15, 0x61, 0x62, 0x24, 0xf7, 0xc1, 0xb9, + 0x63, 0xd8, 0x88, 0xb0, 0xfa, 0x83, 0x20, 0x56, 0x15, 0x1e, 0xab, 0x5b, 0x45, 0xc4, 0x24, 0x36, + 0xa6, 0x09, 0xcd, 0x1b, 0xdf, 0xe5, 0xc1, 0xa5, 0x72, 0x70, 0x3d, 0x63, 0x60, 0x3e, 0x92, 0x47, + 0xec, 0xb7, 0x68, 0x77, 0x58, 0xa5, 0x26, 0xfb, 0x70, 0xba, 0x43, 0x36, 0x1b, 0x90, 0xb8, 0xd9, + 0x40, 0x4c, 0x7f, 0x7b, 0xdf, 0x8d, 0xd4, 0x65, 0xae, 0x1f, 0x44, 0x99, 0x21, 0xfb, 0xdb, 0xf7, + 0xe5, 0x20, 0x79, 0x70, 0xfe, 0x49, 0x02, 0x58, 0xb4, 0xcc, 0x9d, 0x76, 0xc5, 0x6a, 0x62, 0x0b, + 0xfd, 0x9d, 0x3f, 0x01, 0x78, 0xc5, 0x10, 0x26, 0x00, 0xab, 0x00, 0x9b, 0x1e, 0x71, 0xa6, 0xe1, + 0x37, 0x89, 0x99, 0xfb, 0x3e, 0x53, 0x6a, 0x80, 0x06, 0x7f, 0xe5, 0xec, 0x33, 0x79, 0x8c, 0xa3, + 0xfa, 0x2c, 0x9f, 0xdc, 0x30, 0x27, 0x00, 0xef, 0xf1, 0xb0, 0xae, 0x71, 0x58, 0xdf, 0x75, 0x00, + 0x4e, 0x92, 0xc7, 0xfc, 0x9f, 0xc7, 0x60, 0x92, 0x6e, 0xd7, 0x51, 0x99, 0xfe, 0x83, 0x0f, 0xfa, + 0x6f, 0x0e, 0x01, 0xf4, 0x35, 0x98, 0x32, 0x7d, 0xea, 0xb4, 0x4f, 0x0d, 0x2e, 0xc0, 0x44, 0xc2, + 0x1e, 0xe0, 0x4b, 0xe5, 0xc8, 0xa0, 0x8f, 0x07, 0x91, 0x57, 0x79, 0xe4, 0x6f, 0x8f, 0x90, 0x77, + 0x80, 0xe2, 0x30, 0xa1, 0x7f, 0xaf, 0x07, 0xfd, 0x1a, 0x07, 0x7d, 0xe1, 0x20, 0xac, 0x8c, 0x20, + 0xdc, 0xbe, 0x04, 0x19, 0x72, 0x3a, 0xee, 0xb7, 0x13, 0x9c, 0xdf, 0x9f, 0x82, 0x31, 0xd2, 0x64, + 0xbd, 0x79, 0x87, 0xfb, 0xea, 0x7c, 0xd1, 0x36, 0x6c, 0x6c, 0x79, 0x1e, 0x0b, 0xee, 0xab, 0xc3, + 0x83, 0xeb, 0x95, 0xdc, 0x39, 0x95, 0xa3, 0x1b, 0x91, 0x5e, 0xc2, 0xc0, 0x93, 0x92, 0xa0, 0xc4, + 0x87, 0x76, 0x5e, 0x6e, 0x90, 0x49, 0x49, 0x1f, 0x46, 0x92, 0x07, 0xfe, 0x2b, 0x19, 0x38, 0x45, + 0x57, 0x95, 0x16, 0x2c, 0x73, 0xbb, 0xeb, 0x76, 0x2b, 0xfd, 0xe0, 0xba, 0x70, 0x2d, 0xcc, 0xd8, + 0x9c, 0x3f, 0x36, 0xd3, 0x89, 0xae, 0x54, 0xf4, 0x17, 0x41, 0x9f, 0x8a, 0x67, 0xf1, 0x48, 0xce, + 0x45, 0x08, 0x30, 0x8c, 0xf7, 0xd8, 0x0b, 0xf5, 0x82, 0x8c, 0x06, 0x16, 0xa9, 0xa4, 0x81, 0xd6, + 0x2c, 0x3d, 0x9d, 0xca, 0x8a, 0xe8, 0xd4, 0x87, 0x3c, 0x9d, 0xfa, 0x59, 0x4e, 0xa7, 0x16, 0x0f, + 0x2e, 0x92, 0xe4, 0x75, 0xeb, 0x75, 0xde, 0xc6, 0x90, 0xb7, 0x6d, 0xb7, 0x9d, 0xc0, 0x66, 0x5d, + 0xd0, 0x1f, 0x29, 0xc3, 0xf9, 0x23, 0xf1, 0xf7, 0x51, 0xc4, 0x98, 0x09, 0xf3, 0x5c, 0x87, 0xe8, + 0xd2, 0x0c, 0xa4, 0x75, 0x97, 0xbb, 0xb4, 0xde, 0x1c, 0x68, 0xae, 0x1b, 0x59, 0xd0, 0x08, 0xd6, + 0x96, 0x66, 0x20, 0xb7, 0xa0, 0xb7, 0x6c, 0x6c, 0xa1, 0x87, 0xd9, 0x4c, 0xf7, 0x75, 0x09, 0x0e, + 0x00, 0xf3, 0x90, 0xdb, 0x20, 0xa5, 0x31, 0x93, 0xf9, 0x06, 0xb1, 0xd6, 0x43, 0x39, 0x54, 0xd9, + 0xbf, 0x71, 0xa3, 0xf3, 0x75, 0x91, 0x19, 0xda, 0x14, 0x39, 0x46, 0x74, 0xbe, 0xfe, 0x2c, 0x8c, + 0xe4, 0x62, 0xaa, 0x9c, 0x8a, 0xb7, 0x9d, 0x31, 0xfe, 0x7c, 0x72, 0x08, 0xe7, 0x41, 0xd2, 0x9b, + 0x1d, 0xd2, 0x39, 0x4e, 0xa8, 0xce, 0x63, 0x5c, 0x5f, 0xa1, 0x6e, 0x51, 0x51, 0x96, 0x47, 0xed, + 0x2b, 0x24, 0xc4, 0x45, 0xf2, 0x98, 0x3d, 0x42, 0x1c, 0x45, 0xdb, 0x2d, 0xad, 0x81, 0x1d, 0xee, + 0x13, 0x43, 0x8d, 0xf6, 0x64, 0x19, 0xb7, 0x27, 0x0b, 0xb4, 0xd3, 0xec, 0x01, 0xda, 0xe9, 0xa0, + 0xcb, 0x90, 0x9e, 0xcc, 0x49, 0xc5, 0x0f, 0x6d, 0x19, 0x32, 0x92, 0x8d, 0x11, 0x5c, 0x3b, 0xea, + 0x1e, 0xa4, 0x1d, 0x69, 0x6b, 0x1d, 0x74, 0x93, 0x86, 0x09, 0x6b, 0x68, 0x87, 0x66, 0x07, 0xd9, + 0xa4, 0x09, 0xe7, 0x61, 0x04, 0x68, 0xcd, 0x30, 0xb4, 0xbe, 0xc0, 0x86, 0xd1, 0x84, 0xf7, 0x49, + 0x3b, 0xa6, 0x65, 0xc7, 0xdb, 0x27, 0x75, 0xb8, 0x53, 0xc9, 0x7f, 0x71, 0x0f, 0x5e, 0xf1, 0xe7, + 0xaa, 0x87, 0x35, 0x7c, 0xc6, 0x38, 0x78, 0xd5, 0x8f, 0x81, 0xe4, 0xe1, 0x7d, 0xfb, 0x21, 0x0d, + 0x9e, 0x83, 0x36, 0x47, 0xd6, 0x06, 0x86, 0x36, 0x74, 0x0e, 0xd2, 0x1c, 0xc3, 0x79, 0x48, 0x1e, + 0xaf, 0xef, 0x05, 0x06, 0xce, 0xb7, 0x8e, 0x70, 0xe0, 0x74, 0x5b, 0x66, 0x76, 0xc0, 0x96, 0x39, + 0xe8, 0xfe, 0x0f, 0x93, 0xf5, 0xf0, 0x06, 0xcc, 0x41, 0xf6, 0x7f, 0x22, 0x98, 0x48, 0x1e, 0xf1, + 0xb7, 0x49, 0x90, 0xad, 0x8e, 0x7e, 0xbc, 0x1c, 0x74, 0x2e, 0x42, 0x64, 0x55, 0x1d, 0xda, 0x70, + 0x39, 0xc8, 0x5c, 0x24, 0x94, 0x85, 0x11, 0x04, 0xde, 0x3f, 0x0a, 0x53, 0x64, 0x49, 0xc4, 0xdd, + 0x66, 0xfd, 0x1e, 0x1b, 0x35, 0x1f, 0x4a, 0xb0, 0xad, 0xde, 0x0d, 0xe3, 0xee, 0xfe, 0x1d, 0x1b, + 0x39, 0x67, 0xc5, 0xda, 0xa7, 0xcb, 0xa5, 0xea, 0xfd, 0x7f, 0x20, 0x67, 0x88, 0xa1, 0xef, 0xd5, + 0x0e, 0xea, 0x0c, 0x71, 0xa8, 0xfb, 0xb5, 0x7f, 0xee, 0x8f, 0xa8, 0xff, 0x39, 0x39, 0xcc, 0xbb, + 0xf7, 0x71, 0x33, 0x3d, 0xf6, 0x71, 0x3f, 0x19, 0xc4, 0xb2, 0xca, 0x63, 0x79, 0x87, 0xa8, 0x08, + 0x87, 0x38, 0xd6, 0xbe, 0xcf, 0x83, 0xf3, 0x2c, 0x07, 0xe7, 0xdc, 0x81, 0x78, 0x19, 0xc1, 0xc1, + 0xc7, 0x8c, 0x3f, 0xe6, 0x7e, 0x2a, 0xc1, 0x76, 0xdc, 0x75, 0xaa, 0x22, 0xb3, 0xef, 0x54, 0x05, + 0xd7, 0xd2, 0xb3, 0x07, 0x6c, 0xe9, 0x9f, 0x0a, 0x6a, 0x47, 0x8d, 0xd7, 0x8e, 0x67, 0x88, 0x23, + 0x32, 0xbc, 0x91, 0xf9, 0xfd, 0x9e, 0x7a, 0x9c, 0xe3, 0xd4, 0xa3, 0x78, 0x30, 0x66, 0x92, 0xd7, + 0x8f, 0x3f, 0x76, 0x27, 0xb4, 0x87, 0xdc, 0xde, 0x07, 0xdd, 0x2a, 0xe6, 0x84, 0x38, 0xb4, 0x91, + 0x7b, 0x90, 0xad, 0xe2, 0x7e, 0x9c, 0x8c, 0x20, 0x16, 0xdb, 0x34, 0x4c, 0x12, 0x9e, 0xce, 0xe9, + 0xcd, 0x4d, 0x6c, 0xa3, 0xd7, 0x53, 0x1f, 0x45, 0x37, 0xf2, 0xe5, 0x90, 0xc2, 0x13, 0x85, 0x9d, + 0x77, 0x8d, 0xeb, 0xd1, 0x41, 0x99, 0x9c, 0x0d, 0x30, 0x38, 0xea, 0x08, 0x8a, 0x7d, 0x39, 0x48, + 0x1e, 0xb2, 0x8f, 0x53, 0x77, 0x9b, 0x65, 0x6d, 0xcf, 0xdc, 0xb1, 0xd1, 0xfd, 0x43, 0xe8, 0xa0, + 0xe7, 0x20, 0xd7, 0x22, 0xd4, 0xd8, 0xb1, 0x8c, 0xe8, 0xe9, 0x0e, 0x13, 0x01, 0x2d, 0x5f, 0x65, + 0x7f, 0xc6, 0x3d, 0x9b, 0xe1, 0xcb, 0x91, 0xd2, 0x19, 0xf5, 0xd9, 0x8c, 0x3e, 0xe5, 0x8f, 0xe4, + 0x8e, 0x9d, 0x71, 0xa7, 0x74, 0x7d, 0x5b, 0xb7, 0x87, 0x14, 0xc1, 0xa1, 0xe5, 0xd0, 0x72, 0x23, + 0x38, 0x90, 0x97, 0xb8, 0x27, 0x46, 0x03, 0x52, 0x71, 0x7e, 0x1f, 0xf5, 0x89, 0xd1, 0xe8, 0xe2, + 0x93, 0xc7, 0xe4, 0xd7, 0x69, 0xcb, 0x3a, 0x4b, 0x9d, 0x6f, 0x13, 0xf4, 0xeb, 0x1d, 0xb8, 0xb1, + 0x50, 0xd6, 0x0e, 0xaf, 0xb1, 0xf4, 0x2c, 0x3f, 0x79, 0x60, 0xfe, 0xdb, 0x4f, 0x41, 0x76, 0x1e, + 0xaf, 0xef, 0x6c, 0xa2, 0xdb, 0x61, 0xbc, 0x66, 0x61, 0x5c, 0x32, 0x36, 0x4c, 0x47, 0xba, 0xb6, + 0xf3, 0xec, 0x42, 0xc2, 0xde, 0x1c, 0x3c, 0xb6, 0xb0, 0xd6, 0xf4, 0xcf, 0x9f, 0xb9, 0xaf, 0xe8, + 0x81, 0x34, 0x64, 0xaa, 0xb6, 0x66, 0xa3, 0x09, 0x0f, 0x5b, 0x74, 0x7f, 0x10, 0x8b, 0xdb, 0x79, + 0x2c, 0xae, 0xe5, 0x64, 0x41, 0x38, 0x98, 0x75, 0xfe, 0x0f, 0x01, 0x00, 0xc1, 0xf8, 0x7d, 0x1d, + 0xd3, 0x70, 0x72, 0xb8, 0x47, 0x20, 0xdd, 0x77, 0xf4, 0x5a, 0x4f, 0xdc, 0x77, 0x72, 0xe2, 0x7e, + 0x82, 0x58, 0x11, 0x23, 0x58, 0x69, 0x4b, 0xc3, 0x84, 0x23, 0xda, 0x25, 0xac, 0x35, 0x3b, 0xe8, + 0xb1, 0xbe, 0xf2, 0x87, 0x88, 0x19, 0x7d, 0x58, 0x38, 0x18, 0x27, 0xad, 0x95, 0x47, 0x3c, 0xdc, + 0xa3, 0xc3, 0xdd, 0xfc, 0x4f, 0xf3, 0xc1, 0x48, 0x6e, 0x84, 0x8c, 0x6e, 0x6c, 0x98, 0xcc, 0xbf, + 0xf0, 0xf2, 0x10, 0xda, 0x8e, 0x4e, 0xa8, 0x24, 0xa3, 0x60, 0xa4, 0xce, 0x68, 0xb6, 0x46, 0x72, + 0xe9, 0x5d, 0xc6, 0x29, 0x1d, 0xfd, 0xef, 0x7d, 0x85, 0x2d, 0xcb, 0x90, 0x69, 0x6b, 0xf6, 0x16, + 0x2b, 0x9a, 0x3c, 0x3b, 0x36, 0xf2, 0x8e, 0xa1, 0x19, 0xa6, 0xb1, 0xb7, 0xad, 0x3f, 0xc7, 0xbb, + 0x5b, 0x97, 0x4b, 0x73, 0x38, 0xdf, 0xc4, 0x06, 0xb6, 0x34, 0x1b, 0x57, 0x77, 0x37, 0xc9, 0x1c, + 0x6b, 0x5c, 0x0d, 0x26, 0xc5, 0xd6, 0x7f, 0x87, 0xe3, 0x70, 0xfd, 0xdf, 0xd0, 0x5b, 0x98, 0x44, + 0x6a, 0x62, 0xfa, 0xef, 0xbe, 0xc7, 0xd2, 0xff, 0x1e, 0x45, 0x24, 0x8f, 0xc6, 0xbf, 0xa5, 0x61, + 0xaa, 0xea, 0x28, 0x5c, 0x75, 0x67, 0x7b, 0x5b, 0xb3, 0xf6, 0xd0, 0xd5, 0x3e, 0x2a, 0x01, 0xd5, + 0x4c, 0xf1, 0x7e, 0x29, 0x7f, 0x24, 0x7c, 0xad, 0x34, 0x6b, 0xda, 0x81, 0x12, 0x62, 0xb7, 0x83, + 0x27, 0x41, 0xd6, 0x51, 0x6f, 0xd7, 0xe3, 0x32, 0xb2, 0x21, 0xd0, 0x9c, 0x82, 0x11, 0xad, 0xfa, + 0xf2, 0x36, 0x82, 0x68, 0x1a, 0x69, 0x38, 0x5a, 0xb5, 0xb5, 0xc6, 0xf9, 0x45, 0xd3, 0x32, 0x77, + 0x6c, 0xdd, 0xc0, 0x1d, 0xf4, 0x18, 0x1f, 0x01, 0x57, 0xff, 0x53, 0xbe, 0xfe, 0xa3, 0x7f, 0x4f, + 0x89, 0x8e, 0xa2, 0x5e, 0xb7, 0x1a, 0x24, 0x1f, 0x12, 0xa0, 0x4a, 0x6c, 0x5c, 0x14, 0xa1, 0x98, + 0xbc, 0xd0, 0xde, 0x2a, 0x41, 0x5e, 0xb9, 0xd8, 0x36, 0x2d, 0x7b, 0xd9, 0x6c, 0x68, 0xad, 0x8e, + 0x6d, 0x5a, 0x18, 0x55, 0x22, 0xa5, 0xe6, 0xf4, 0x30, 0x4d, 0xb3, 0xe1, 0x0f, 0x8e, 0xec, 0x2d, + 0xa8, 0x76, 0x12, 0xaf, 0xe3, 0x1f, 0x17, 0xde, 0x65, 0xa4, 0x52, 0xe9, 0xe6, 0x28, 0x44, 0xcf, + 0x7b, 0x75, 0x69, 0xf1, 0x0e, 0x4b, 0x88, 0xed, 0x3c, 0x0a, 0x31, 0x35, 0x82, 0xa5, 0xf2, 0x34, + 0x4c, 0x57, 0x77, 0xd6, 0x3d, 0x22, 0x9d, 0xa0, 0x11, 0xf2, 0x06, 0xe1, 0x28, 0x15, 0x4c, 0xf1, + 0x82, 0x84, 0x42, 0xe4, 0x7b, 0x0d, 0x4c, 0x77, 0x82, 0xd9, 0x18, 0xde, 0x7c, 0xa2, 0x60, 0x74, + 0x8a, 0xfe, 0xa5, 0x26, 0x2f, 0xc0, 0xf7, 0xa7, 0x61, 0xba, 0xd2, 0xc6, 0x06, 0x6e, 0x52, 0x2f, + 0x48, 0x4e, 0x80, 0x0f, 0xc4, 0x14, 0x20, 0x47, 0x28, 0x44, 0x80, 0xbe, 0xc7, 0xf2, 0xbc, 0x2b, + 0x3c, 0x3f, 0x21, 0x96, 0xe0, 0xa2, 0x4a, 0x4b, 0x5e, 0x70, 0x5f, 0x4d, 0xc3, 0xa4, 0xba, 0x63, + 0xac, 0x5a, 0xa6, 0x33, 0x1a, 0x5b, 0xe8, 0x0e, 0xbf, 0x83, 0xb8, 0x01, 0x8e, 0x35, 0x77, 0x2c, + 0xb2, 0xfe, 0x54, 0x32, 0xaa, 0xb8, 0x61, 0x1a, 0xcd, 0x0e, 0xa9, 0x47, 0x56, 0xdd, 0xff, 0xe1, + 0xb6, 0xcc, 0x0b, 0xbf, 0x2d, 0xa5, 0xd0, 0x8b, 0x85, 0x43, 0xdd, 0xd0, 0xca, 0x07, 0x8a, 0x16, + 0xef, 0x09, 0x04, 0x03, 0xda, 0xf4, 0x2b, 0x21, 0x79, 0xe1, 0x7e, 0x21, 0x0d, 0x72, 0xa1, 0xd1, + 0x30, 0x77, 0x0c, 0xbb, 0x8a, 0x5b, 0xb8, 0x61, 0xd7, 0x2c, 0xad, 0x81, 0x83, 0xf6, 0x73, 0x1e, + 0xa4, 0xa6, 0x6e, 0xb1, 0x3e, 0xd8, 0x79, 0x64, 0x72, 0x7c, 0x40, 0x78, 0xc7, 0x91, 0xd6, 0x72, + 0x7f, 0x29, 0x31, 0xc4, 0x29, 0xb6, 0xaf, 0x28, 0x58, 0x50, 0xf2, 0x52, 0xfd, 0x54, 0x1a, 0x26, + 0xdc, 0x1e, 0x7b, 0x53, 0x44, 0x98, 0xbf, 0x1e, 0x73, 0x32, 0xe2, 0x11, 0x8f, 0x21, 0xc3, 0x77, + 0xc7, 0x98, 0x55, 0x84, 0xd1, 0x8f, 0x27, 0xba, 0x42, 0x7c, 0xd1, 0x39, 0xaf, 0xe5, 0x4a, 0x7d, + 0xa1, 0xb2, 0x3c, 0xaf, 0xa8, 0x79, 0x09, 0x3d, 0x9c, 0x86, 0xcc, 0xaa, 0x6e, 0x6c, 0x06, 0xa3, + 0x2b, 0x1d, 0x77, 0xec, 0xc8, 0x26, 0xbe, 0xc8, 0x5a, 0x3a, 0x7d, 0x91, 0x6f, 0x86, 0xe3, 0xc6, + 0xce, 0xf6, 0x3a, 0xb6, 0x2a, 0x1b, 0x64, 0x94, 0xed, 0xd4, 0xcc, 0x2a, 0x36, 0xa8, 0x11, 0x9a, + 0x55, 0x7b, 0x7e, 0xe3, 0x4d, 0x30, 0x81, 0xc9, 0x83, 0xc3, 0x49, 0x88, 0xc4, 0x3d, 0xa6, 0xd2, + 0x01, 0xa6, 0x62, 0x4d, 0x1b, 0x7a, 0x10, 0x4f, 0x5e, 0x53, 0xff, 0x24, 0x0b, 0x27, 0x0a, 0xc6, + 0x1e, 0xb1, 0x29, 0x68, 0x07, 0x5f, 0xdc, 0xd2, 0x8c, 0x4d, 0x4c, 0x06, 0x08, 0x4f, 0xe2, 0xc1, + 0x10, 0xfd, 0x29, 0x3e, 0x44, 0xbf, 0xac, 0xc2, 0x98, 0x69, 0x35, 0xb1, 0x35, 0xb7, 0x47, 0x78, + 0xea, 0x5e, 0x76, 0x66, 0x6d, 0xb2, 0x57, 0x11, 0xb3, 0x8c, 0xfc, 0x6c, 0x85, 0xfe, 0xaf, 0xba, + 0x84, 0xce, 0xdc, 0x00, 0x63, 0x2c, 0x4d, 0x9e, 0x82, 0xf1, 0x8a, 0x3a, 0xaf, 0xa8, 0xf5, 0xd2, + 0x7c, 0xfe, 0x88, 0x7c, 0x09, 0x1c, 0x2d, 0xd5, 0x14, 0xb5, 0x50, 0x2b, 0x55, 0xca, 0x75, 0x92, + 0x9e, 0x4f, 0xa1, 0x17, 0x64, 0x44, 0x3d, 0x7b, 0xa3, 0x99, 0xe9, 0x05, 0xab, 0x0a, 0x63, 0x0d, + 0x9a, 0x81, 0x0c, 0xa1, 0x93, 0xb1, 0x6a, 0xc7, 0x08, 0xd2, 0x04, 0xd5, 0x25, 0x24, 0x9f, 0x06, + 0xb8, 0x60, 0x99, 0xc6, 0xa6, 0x7f, 0xea, 0x70, 0x5c, 0x0d, 0xa4, 0xa0, 0xfb, 0x53, 0x90, 0xa3, + 0xff, 0x90, 0x2b, 0x49, 0xc8, 0x93, 0x2f, 0x78, 0xf7, 0xdd, 0xb1, 0x78, 0x89, 0xbc, 0xfc, 0x89, + 0x16, 0x7b, 0x75, 0x74, 0x91, 0xca, 0x80, 0x5a, 0xc2, 0xac, 0x2a, 0x37, 0x42, 0x8e, 0xfe, 0xcb, + 0xbc, 0x0e, 0xc2, 0xc3, 0x8b, 0xd2, 0x6c, 0x82, 0x7e, 0xca, 0xe2, 0x32, 0x4d, 0x5e, 0x9b, 0x3f, + 0x92, 0x86, 0xf1, 0x32, 0xb6, 0x8b, 0x5b, 0xb8, 0x71, 0x1e, 0x3d, 0x9e, 0x5f, 0x00, 0x6d, 0xe9, + 0xd8, 0xb0, 0xef, 0xdd, 0x6e, 0x79, 0x0b, 0xa0, 0x6e, 0x02, 0x7a, 0x51, 0xb0, 0xf3, 0xbd, 0x8b, + 0xd7, 0x9f, 0xeb, 0x7b, 0xd4, 0xd5, 0x2d, 0x21, 0x44, 0x65, 0x4e, 0x42, 0xce, 0xc2, 0x9d, 0x9d, + 0x96, 0xbb, 0x88, 0xc6, 0xde, 0xd0, 0x83, 0x9e, 0x38, 0x8b, 0x9c, 0x38, 0x6f, 0x14, 0x2f, 0x62, + 0x04, 0xf1, 0x4a, 0x33, 0x30, 0x56, 0x32, 0x74, 0x5b, 0xd7, 0x5a, 0xe8, 0xc5, 0x19, 0x98, 0xae, + 0x62, 0x7b, 0x55, 0xb3, 0xb4, 0x6d, 0x6c, 0x63, 0xab, 0x83, 0x7e, 0xc8, 0xf7, 0x09, 0xed, 0x96, + 0x66, 0x6f, 0x98, 0xd6, 0xb6, 0xab, 0x9a, 0xee, 0xbb, 0xa3, 0x9a, 0xbb, 0xd8, 0xea, 0xf8, 0x7c, + 0xb9, 0xaf, 0xce, 0x97, 0x0b, 0xa6, 0x75, 0xde, 0x19, 0x04, 0xd9, 0x34, 0x8d, 0xbd, 0x3a, 0xf4, + 0x5a, 0xe6, 0xe6, 0x32, 0xde, 0xc5, 0x6e, 0xb8, 0x34, 0xef, 0xdd, 0x99, 0x0b, 0x34, 0xcd, 0xb2, + 0x69, 0x3b, 0x9d, 0xf6, 0xb2, 0xb9, 0x49, 0xe3, 0xc5, 0x8e, 0xab, 0x7c, 0xa2, 0x9f, 0x4b, 0xdb, + 0xc5, 0x24, 0x57, 0x2e, 0x98, 0x8b, 0x25, 0xca, 0xb3, 0x20, 0x7b, 0xbf, 0xd5, 0x70, 0x0b, 0x6f, + 0x63, 0xdb, 0xda, 0x23, 0xd7, 0x42, 0x8c, 0xab, 0x3d, 0xbe, 0xb0, 0x01, 0x5a, 0x7c, 0xb2, 0xce, + 0xa4, 0x37, 0xcb, 0x49, 0xee, 0x40, 0x93, 0x75, 0x11, 0x8a, 0x23, 0xb9, 0xf6, 0x4a, 0x72, 0xac, + 0x99, 0x57, 0x49, 0x90, 0x21, 0x83, 0xe7, 0xdb, 0x52, 0xdc, 0x0a, 0xd3, 0x36, 0xee, 0x74, 0xb4, + 0x4d, 0xec, 0xae, 0x30, 0xb1, 0x57, 0xf9, 0x56, 0xc8, 0xb6, 0x08, 0xa6, 0x74, 0x70, 0xb8, 0x9a, + 0xab, 0x99, 0x63, 0x60, 0x38, 0xb4, 0xbc, 0x91, 0x80, 0xc0, 0xad, 0xd2, 0x3f, 0xce, 0xdc, 0x0d, + 0x59, 0x0a, 0xff, 0x04, 0x64, 0xe7, 0x95, 0xb9, 0xb5, 0xc5, 0xfc, 0x11, 0xe7, 0xd1, 0xe5, 0x6f, + 0x02, 0xb2, 0x0b, 0x85, 0x5a, 0x61, 0x39, 0x9f, 0x76, 0xea, 0x51, 0x2a, 0x2f, 0x54, 0xf2, 0x92, + 0x93, 0xb8, 0x5a, 0x28, 0x97, 0x8a, 0xf9, 0x8c, 0x3c, 0x09, 0x63, 0xe7, 0x0a, 0x6a, 0xb9, 0x54, + 0x5e, 0xcc, 0x67, 0xd1, 0xb7, 0x82, 0xf8, 0xdd, 0xc6, 0xe3, 0x77, 0x4d, 0x18, 0x4f, 0xbd, 0x20, + 0x7b, 0xb5, 0x07, 0xd9, 0x1d, 0x1c, 0x64, 0x3f, 0x25, 0x42, 0x64, 0x04, 0xee, 0x4c, 0x39, 0x18, + 0x5b, 0xb5, 0xcc, 0x06, 0xee, 0x74, 0xd0, 0x6f, 0xa4, 0x21, 0x57, 0xd4, 0x8c, 0x06, 0x6e, 0xa1, + 0xcb, 0x7c, 0xa8, 0xa8, 0xab, 0x68, 0xca, 0x3b, 0x2d, 0xf6, 0x4f, 0x29, 0xd1, 0xde, 0x8f, 0xd1, + 0x9d, 0xa5, 0x34, 0x43, 0xe4, 0x23, 0xd6, 0xcb, 0x45, 0x92, 0x1a, 0xc1, 0xd5, 0x38, 0x69, 0x98, + 0x60, 0xab, 0x01, 0xeb, 0x38, 0x38, 0x0f, 0xff, 0x61, 0x4a, 0x74, 0x72, 0xe8, 0xd6, 0xc0, 0x23, + 0x13, 0x22, 0x0f, 0xb1, 0x89, 0x60, 0x3f, 0x6a, 0x23, 0xd8, 0x3c, 0x4c, 0xc3, 0xe4, 0x9a, 0xd1, + 0xe9, 0x25, 0x14, 0xf1, 0x38, 0xfa, 0x6e, 0x35, 0x02, 0x84, 0x0e, 0x14, 0x47, 0xbf, 0x3f, 0xbd, + 0xe4, 0x05, 0xf3, 0xc3, 0x14, 0x1c, 0x5f, 0xc4, 0x06, 0xb6, 0xf4, 0x06, 0xad, 0x81, 0x2b, 0x89, + 0x3b, 0x78, 0x49, 0x3c, 0x9e, 0xe3, 0xbc, 0xd7, 0x1f, 0xbc, 0x04, 0x5e, 0xe7, 0x49, 0xe0, 0x2e, + 0x4e, 0x02, 0x37, 0x08, 0xd2, 0x19, 0xc1, 0x7d, 0xe8, 0x13, 0x30, 0x55, 0x36, 0x6d, 0x7d, 0x43, + 0x6f, 0x50, 0x1f, 0xb4, 0xdf, 0x92, 0x20, 0xb3, 0xac, 0x77, 0x6c, 0x54, 0xf0, 0xbb, 0x93, 0xab, + 0x60, 0x52, 0x37, 0x1a, 0xad, 0x9d, 0x26, 0x56, 0xb1, 0x46, 0xfb, 0x95, 0x71, 0x35, 0x98, 0xe4, + 0x6f, 0xed, 0x3b, 0x6c, 0x49, 0xee, 0xd6, 0xfe, 0x67, 0x85, 0x97, 0x61, 0x82, 0x2c, 0x90, 0x80, + 0x94, 0x21, 0x76, 0x57, 0x01, 0xa6, 0x8d, 0x40, 0x56, 0xd7, 0x60, 0xef, 0xbe, 0x50, 0x20, 0x48, + 0x4e, 0xe5, 0xff, 0x40, 0x1f, 0x14, 0x6a, 0xac, 0xfd, 0x18, 0x8a, 0x87, 0xcc, 0xc2, 0x00, 0x93, + 0x64, 0x19, 0x66, 0x4a, 0xe5, 0x9a, 0xa2, 0x96, 0x0b, 0xcb, 0x2c, 0x8b, 0x84, 0xfe, 0x2d, 0x0d, + 0x59, 0x15, 0xb7, 0x5b, 0x7b, 0xc1, 0x88, 0xd1, 0xcc, 0x51, 0x3c, 0xe5, 0x39, 0x8a, 0xcb, 0x0b, + 0x00, 0x5a, 0xc3, 0x29, 0x98, 0x5c, 0xa9, 0x95, 0xee, 0x19, 0xc7, 0x94, 0xab, 0x60, 0xc1, 0xcb, + 0xad, 0x06, 0xfe, 0x44, 0x2f, 0x11, 0xde, 0x39, 0xe2, 0xa8, 0x11, 0x0e, 0x43, 0xfa, 0x84, 0x0f, + 0x09, 0x6d, 0xf6, 0xf4, 0x25, 0x77, 0x38, 0xe2, 0xff, 0x5a, 0x1a, 0x32, 0x35, 0xa7, 0xb7, 0x0c, + 0x74, 0x9c, 0x7f, 0x3a, 0x98, 0x8e, 0x3b, 0x64, 0x42, 0x74, 0xfc, 0x4e, 0x98, 0x0a, 0x6a, 0x2c, + 0x73, 0x95, 0x88, 0x54, 0x71, 0xee, 0x87, 0x41, 0x34, 0xbc, 0x07, 0x3b, 0x87, 0x23, 0xe2, 0x4f, + 0x3f, 0x01, 0x60, 0x05, 0x6f, 0xaf, 0x63, 0xab, 0xb3, 0xa5, 0xb7, 0xd1, 0xdf, 0x4b, 0x30, 0xb1, + 0x88, 0xed, 0xaa, 0xad, 0xd9, 0x3b, 0x9d, 0xae, 0xed, 0x4e, 0xc3, 0x2c, 0x6a, 0x8d, 0x2d, 0xcc, + 0xba, 0x23, 0xf7, 0x15, 0xbd, 0x57, 0x12, 0xf5, 0x27, 0xf2, 0xcb, 0x99, 0xf5, 0xca, 0x08, 0xc1, + 0xe4, 0x89, 0x90, 0x69, 0x6a, 0xb6, 0xc6, 0xb0, 0xb8, 0xac, 0x0b, 0x0b, 0x9f, 0x90, 0x4a, 0xb2, + 0xa1, 0xdf, 0x4d, 0x8b, 0x38, 0x14, 0x09, 0x94, 0x1f, 0x0f, 0x84, 0x0f, 0xa6, 0x06, 0x40, 0xe1, + 0x18, 0x4c, 0x97, 0x2b, 0xb5, 0xfa, 0x72, 0x65, 0x71, 0x51, 0x71, 0x52, 0xf3, 0x92, 0x7c, 0x12, + 0xe4, 0xd5, 0xc2, 0xbd, 0x2b, 0x4a, 0xb9, 0x56, 0x2f, 0x57, 0xe6, 0x15, 0xf6, 0x67, 0x46, 0x3e, + 0x0a, 0x93, 0xc5, 0x42, 0x71, 0xc9, 0x4d, 0xc8, 0xca, 0xa7, 0xe0, 0xf8, 0x8a, 0xb2, 0x32, 0xa7, + 0xa8, 0xd5, 0xa5, 0xd2, 0x6a, 0xdd, 0x21, 0xb3, 0x50, 0x59, 0x2b, 0xcf, 0xe7, 0x73, 0x32, 0x82, + 0x93, 0x81, 0x2f, 0xe7, 0xd4, 0x4a, 0x79, 0xb1, 0x5e, 0xad, 0x15, 0x6a, 0x4a, 0x7e, 0x4c, 0xbe, + 0x04, 0x8e, 0x16, 0x0b, 0x65, 0x92, 0xbd, 0x58, 0x29, 0x97, 0x95, 0x62, 0x2d, 0x3f, 0x8e, 0xfe, + 0x3d, 0x03, 0x93, 0xa5, 0x4e, 0x59, 0xdb, 0xc6, 0x67, 0xb5, 0x96, 0xde, 0x44, 0x2f, 0x0e, 0xcc, + 0x3c, 0xae, 0x81, 0x69, 0x8b, 0x3e, 0xe2, 0x66, 0x4d, 0xc7, 0x14, 0xcd, 0x69, 0x95, 0x4f, 0x74, + 0xe6, 0xe4, 0x06, 0x21, 0xe0, 0xce, 0xc9, 0xe9, 0x9b, 0x3c, 0x07, 0x40, 0x9f, 0x6a, 0xfe, 0xe5, + 0xae, 0x67, 0xba, 0x5b, 0x93, 0xb6, 0x8d, 0x3b, 0xd8, 0xda, 0xd5, 0x1b, 0xd8, 0xcd, 0xa9, 0x06, + 0xfe, 0x42, 0x5f, 0x97, 0x44, 0xf7, 0x17, 0x03, 0xa0, 0x06, 0xaa, 0x13, 0xd2, 0x1b, 0xfe, 0xb2, + 0x24, 0xb2, 0x3b, 0x28, 0x44, 0x32, 0x9e, 0xa6, 0xbc, 0x3c, 0x3d, 0xd8, 0xb2, 0x6d, 0xad, 0x52, + 0xa9, 0x57, 0x97, 0x2a, 0x6a, 0x2d, 0x2f, 0xc9, 0x53, 0x30, 0xee, 0xbc, 0x2e, 0x57, 0xca, 0x8b, + 0xf9, 0x8c, 0x7c, 0x02, 0x8e, 0x2d, 0x15, 0xaa, 0xf5, 0x52, 0xf9, 0x6c, 0x61, 0xb9, 0x34, 0x5f, + 0x2f, 0x2e, 0x15, 0xd4, 0x6a, 0x3e, 0x2b, 0x5f, 0x06, 0x27, 0x6a, 0x25, 0x45, 0xad, 0x2f, 0x28, + 0x85, 0xda, 0x9a, 0xaa, 0x54, 0xeb, 0xe5, 0x4a, 0xbd, 0x5c, 0x58, 0x51, 0xf2, 0x39, 0xa7, 0xf9, + 0x93, 0x4f, 0xbe, 0xda, 0x8c, 0xed, 0x57, 0xc6, 0xf1, 0x10, 0x65, 0x9c, 0xe8, 0x56, 0x46, 0x08, + 0xaa, 0x95, 0xaa, 0x54, 0x15, 0xf5, 0xac, 0x92, 0x9f, 0xec, 0xa5, 0x6b, 0x53, 0xf2, 0x71, 0xc8, + 0x3b, 0x3c, 0xd4, 0x4b, 0x55, 0x37, 0xe7, 0x7c, 0x7e, 0x1a, 0x7d, 0x2a, 0x07, 0x27, 0x55, 0xbc, + 0xa9, 0x77, 0x6c, 0x6c, 0xad, 0x6a, 0x7b, 0xdb, 0xd8, 0xb0, 0xdd, 0x4e, 0xfe, 0x7f, 0xc5, 0x56, + 0xc6, 0x15, 0x98, 0x6e, 0x53, 0x1a, 0x2b, 0xd8, 0xde, 0x32, 0x9b, 0x6c, 0x14, 0x7e, 0x7c, 0x68, + 0xcf, 0x31, 0xbb, 0x1a, 0xcc, 0xae, 0xf2, 0x7f, 0x07, 0x74, 0x5b, 0x8a, 0xd0, 0xed, 0xcc, 0x20, + 0xba, 0x2d, 0x5f, 0x01, 0x13, 0x3b, 0x1d, 0x6c, 0x29, 0xdb, 0x9a, 0xde, 0x72, 0x2f, 0xe7, 0xf4, + 0x12, 0xd0, 0xbb, 0x32, 0xa2, 0x27, 0x56, 0x02, 0x75, 0xe9, 0x2d, 0xc6, 0x90, 0xbe, 0xf5, 0x34, + 0x00, 0xab, 0xec, 0x9a, 0xd5, 0x62, 0xca, 0x1a, 0x48, 0x71, 0xf8, 0x5b, 0xd7, 0x5b, 0x2d, 0xdd, + 0xd8, 0xf4, 0xf6, 0xfd, 0xfd, 0x04, 0xf4, 0x72, 0x49, 0xe4, 0x04, 0x4b, 0x5c, 0xde, 0xe2, 0xb5, + 0xa6, 0x97, 0xa4, 0x47, 0xdc, 0xef, 0xee, 0x6f, 0x3a, 0x39, 0x39, 0x0f, 0x53, 0x24, 0x8d, 0xb5, + 0xc0, 0xfc, 0x98, 0xd3, 0x07, 0xbb, 0xe4, 0x56, 0x94, 0xda, 0x52, 0x65, 0xde, 0xfb, 0x36, 0xee, + 0x90, 0x74, 0x98, 0x29, 0x94, 0xef, 0x25, 0xad, 0x71, 0x42, 0x7e, 0x0c, 0x5c, 0x16, 0xe8, 0xb0, + 0x0b, 0xcb, 0xaa, 0x52, 0x98, 0xbf, 0xb7, 0xae, 0x3c, 0xab, 0x54, 0xad, 0x55, 0xf9, 0xc6, 0xe5, + 0xb6, 0xa3, 0x49, 0x87, 0x5f, 0x65, 0xa5, 0x50, 0x5a, 0x66, 0xfd, 0xfb, 0x42, 0x45, 0x5d, 0x29, + 0xd4, 0xf2, 0x53, 0xe8, 0x55, 0x12, 0xe4, 0x17, 0xb1, 0xbd, 0x6a, 0x5a, 0xb6, 0xd6, 0x5a, 0xd6, + 0x8d, 0xf3, 0x6b, 0x56, 0x8b, 0x9b, 0x6c, 0x0a, 0x87, 0xe9, 0xe0, 0x87, 0x48, 0x8e, 0x60, 0xf8, + 0x8e, 0x78, 0x9b, 0x64, 0xf3, 0x95, 0xc9, 0x4f, 0x40, 0xcf, 0x4d, 0x8b, 0x2c, 0x77, 0x8b, 0x97, + 0x1a, 0x4f, 0x4f, 0x9e, 0x37, 0xea, 0xf1, 0xb9, 0x07, 0x6a, 0x39, 0xf4, 0xc2, 0x0c, 0x8c, 0x2f, + 0xe8, 0x86, 0xd6, 0xd2, 0x9f, 0xc3, 0xc5, 0x2f, 0xf5, 0xfb, 0x98, 0x54, 0x44, 0x1f, 0x93, 0x1e, + 0x68, 0xfc, 0xfc, 0x35, 0x49, 0x74, 0x79, 0x21, 0x20, 0x7b, 0x97, 0xc9, 0x90, 0xc1, 0xf3, 0xa3, + 0x69, 0x91, 0xe5, 0x85, 0xfe, 0xf4, 0xe2, 0x61, 0xf8, 0x99, 0x1f, 0x0f, 0x1b, 0xab, 0xab, 0x7d, + 0x8f, 0xf7, 0x52, 0x85, 0x09, 0xf4, 0x97, 0x12, 0xa0, 0x45, 0x6c, 0x9f, 0xc5, 0x96, 0x37, 0x15, + 0x20, 0xbd, 0x3e, 0xb3, 0xb7, 0x03, 0x4d, 0xf6, 0x6d, 0x41, 0x00, 0xcf, 0xf1, 0x00, 0x16, 0x22, + 0x1a, 0x4f, 0x08, 0xe9, 0x90, 0xc6, 0x5b, 0x82, 0x5c, 0x87, 0x7c, 0x67, 0x6a, 0xf6, 0xa4, 0xf0, + 0xe1, 0x92, 0x10, 0x0b, 0x52, 0xa7, 0x84, 0x55, 0x46, 0x00, 0x3d, 0xe2, 0x4d, 0x82, 0x7e, 0x86, + 0xd3, 0x8e, 0x85, 0x03, 0x33, 0x1b, 0x4f, 0x5f, 0xac, 0x64, 0xd5, 0xa5, 0x97, 0x7d, 0x83, 0x3e, + 0x9a, 0x85, 0xe3, 0xbd, 0xaa, 0x83, 0x7e, 0x2f, 0xc5, 0xed, 0xb0, 0x63, 0x32, 0xe4, 0xa7, 0xd8, + 0x06, 0xa2, 0xf3, 0x22, 0x3f, 0x19, 0x4e, 0x78, 0xcb, 0x70, 0x35, 0xb3, 0x8c, 0x2f, 0x74, 0x5a, + 0xd8, 0xb6, 0xb1, 0x45, 0xaa, 0x36, 0xae, 0xf6, 0xfe, 0x28, 0x3f, 0x0d, 0x2e, 0xd5, 0x8d, 0x8e, + 0xde, 0xc4, 0x56, 0x4d, 0x6f, 0x77, 0x0a, 0x46, 0xb3, 0xb6, 0x63, 0x9b, 0x96, 0xae, 0xb1, 0xab, + 0x24, 0xc7, 0xd5, 0xb0, 0xcf, 0xf2, 0xf5, 0x90, 0xd7, 0x3b, 0x15, 0x63, 0xdd, 0xd4, 0xac, 0xa6, + 0x6e, 0x6c, 0x2e, 0xeb, 0x1d, 0x9b, 0x79, 0x00, 0xef, 0x4b, 0x47, 0xff, 0x20, 0x89, 0x1e, 0xa6, + 0xeb, 0x03, 0x6b, 0x48, 0x87, 0xf2, 0x22, 0x49, 0xe4, 0x78, 0x5c, 0x3c, 0xda, 0xf1, 0x94, 0xe5, + 0x05, 0xa3, 0x36, 0x24, 0x7a, 0x8f, 0xe0, 0xa4, 0x6b, 0xa1, 0xe9, 0xae, 0x21, 0x70, 0x56, 0x51, + 0x4b, 0x0b, 0x25, 0xc5, 0x31, 0x2b, 0x4e, 0xc0, 0x31, 0xff, 0xdb, 0xfc, 0xbd, 0xf5, 0xaa, 0x52, + 0xae, 0xe5, 0xc7, 0x9d, 0x7e, 0x8a, 0x26, 0x2f, 0x14, 0x4a, 0xcb, 0xca, 0x7c, 0xbd, 0x56, 0x71, + 0xbe, 0xcc, 0x0f, 0x66, 0x5a, 0xa0, 0xfb, 0x33, 0x70, 0x94, 0xc8, 0x76, 0x8f, 0x48, 0xd5, 0x11, + 0x4a, 0x97, 0xaf, 0xad, 0x07, 0xd0, 0x04, 0x15, 0x2f, 0xfa, 0xbc, 0xf0, 0x4d, 0x99, 0x01, 0x08, + 0xbb, 0xca, 0x08, 0xd1, 0x8c, 0x1f, 0xa6, 0x45, 0x22, 0x54, 0x08, 0x93, 0x8d, 0xa7, 0x14, 0xff, + 0x32, 0xea, 0x11, 0x27, 0x1c, 0x7c, 0x62, 0x65, 0x16, 0xc9, 0xcf, 0xcf, 0x5a, 0x2d, 0xa9, 0x44, + 0x1d, 0x66, 0x00, 0x48, 0x0a, 0xd1, 0x20, 0xaa, 0x07, 0x3d, 0xc7, 0xab, 0x30, 0x3d, 0x28, 0x14, + 0x6b, 0xa5, 0xb3, 0x4a, 0x98, 0x1e, 0x7c, 0x4e, 0x82, 0xf1, 0x45, 0x6c, 0x3b, 0x73, 0xaa, 0x0e, + 0x7a, 0xba, 0xc0, 0xfa, 0x8f, 0x63, 0xc6, 0xb4, 0xcc, 0x86, 0xd6, 0xf2, 0x96, 0x01, 0xe8, 0x1b, + 0x7a, 0xfe, 0x20, 0x26, 0x88, 0x5b, 0x74, 0xc8, 0x78, 0xf5, 0x54, 0xc8, 0xda, 0xce, 0x67, 0xb6, + 0x0c, 0xfd, 0xd8, 0xd0, 0xe1, 0xca, 0x21, 0x32, 0xaf, 0xd9, 0x9a, 0x4a, 0xf3, 0x07, 0x46, 0x27, + 0x41, 0xdb, 0x25, 0x84, 0x91, 0x1f, 0x47, 0xfb, 0xf3, 0x5b, 0x12, 0x9c, 0xa0, 0xed, 0xa3, 0xd0, + 0x6e, 0x57, 0x6d, 0xd3, 0xc2, 0x2a, 0x6e, 0x60, 0xbd, 0x6d, 0x77, 0xad, 0xef, 0x59, 0x34, 0xd5, + 0xdd, 0x6c, 0x66, 0xaf, 0xe8, 0xcd, 0x92, 0x68, 0x0c, 0xe6, 0x7d, 0xed, 0xb1, 0xab, 0xbc, 0x90, + 0xc6, 0xfe, 0xc9, 0xb4, 0x48, 0x54, 0xe5, 0x98, 0xc4, 0xe3, 0x01, 0xf5, 0xb1, 0x43, 0x00, 0xca, + 0x5d, 0xb9, 0x51, 0x95, 0xa2, 0x52, 0x5a, 0x75, 0x06, 0x81, 0x2b, 0xe1, 0xf2, 0xd5, 0x35, 0xb5, + 0xb8, 0x54, 0xa8, 0x2a, 0x75, 0x55, 0x59, 0x2c, 0x55, 0x6b, 0xcc, 0x29, 0x8b, 0xfe, 0x35, 0x26, + 0x5f, 0x01, 0xa7, 0xaa, 0x6b, 0x73, 0xd5, 0xa2, 0x5a, 0x5a, 0x25, 0xe9, 0xaa, 0x52, 0x56, 0xce, + 0xb1, 0xaf, 0xe3, 0xe8, 0xc3, 0x79, 0x98, 0x74, 0x26, 0x00, 0x55, 0x3a, 0x2f, 0x40, 0xdf, 0xcd, + 0xc0, 0xa4, 0x8a, 0x3b, 0x66, 0x6b, 0x97, 0xcc, 0x11, 0x46, 0x35, 0xf5, 0xf8, 0x81, 0x24, 0x7a, + 0x7e, 0x3b, 0xc0, 0xec, 0x6c, 0x80, 0xd1, 0xf0, 0x89, 0xa6, 0xb6, 0xab, 0xe9, 0x2d, 0x6d, 0x9d, + 0x75, 0x35, 0xe3, 0xaa, 0x9f, 0x20, 0xcf, 0x82, 0x6c, 0x5e, 0x30, 0xb0, 0x55, 0x6d, 0x5c, 0x50, + 0xec, 0xad, 0x42, 0xb3, 0x69, 0xe1, 0x4e, 0x87, 0xad, 0x5e, 0xf4, 0xf8, 0x22, 0x5f, 0x07, 0x47, + 0x49, 0x6a, 0x20, 0x33, 0x75, 0x90, 0xe9, 0x4e, 0xf6, 0x72, 0x16, 0x8c, 0x3d, 0x37, 0x67, 0x36, + 0x90, 0xd3, 0x4f, 0x0e, 0x1e, 0x97, 0xc8, 0xf1, 0xa7, 0x74, 0xae, 0x82, 0x49, 0x43, 0xdb, 0xc6, + 0xca, 0xc5, 0xb6, 0x6e, 0xe1, 0x0e, 0x71, 0x8c, 0x91, 0xd4, 0x60, 0x12, 0xfa, 0xa8, 0xd0, 0x79, + 0x73, 0x31, 0x89, 0xc5, 0xd3, 0xfd, 0xc5, 0x01, 0x54, 0xbf, 0x47, 0x3f, 0x23, 0xa1, 0x0f, 0x4b, + 0x30, 0xc5, 0x98, 0x2a, 0x18, 0x7b, 0xa5, 0x26, 0xba, 0x92, 0x33, 0x7e, 0x35, 0x27, 0xcd, 0x35, + 0x7e, 0xc9, 0x0b, 0xfa, 0x15, 0x49, 0xd4, 0xdd, 0xb9, 0x47, 0xc5, 0x49, 0x19, 0xe1, 0x8e, 0xa3, + 0x1b, 0xe6, 0x0e, 0x73, 0x54, 0x1d, 0x57, 0xe9, 0x4b, 0x92, 0x8b, 0x7a, 0xe8, 0x0f, 0x85, 0x9c, + 0xa9, 0x05, 0xab, 0x71, 0x48, 0x00, 0x7e, 0x5a, 0x82, 0x19, 0xc6, 0x55, 0x95, 0x9d, 0xf3, 0x11, + 0x3a, 0xf0, 0xf6, 0x32, 0x61, 0x43, 0xb0, 0x47, 0xfd, 0x59, 0x49, 0x8f, 0x1a, 0x20, 0x3f, 0x2e, + 0x14, 0x1c, 0x4d, 0xb8, 0x22, 0x87, 0x04, 0xe5, 0xbb, 0x33, 0x30, 0xb9, 0xd6, 0xc1, 0x16, 0xf3, + 0xdb, 0x47, 0x0f, 0x66, 0x40, 0x5a, 0xc4, 0xdc, 0x46, 0xea, 0x4b, 0x85, 0x3d, 0x7c, 0x83, 0x95, + 0x0d, 0x10, 0x75, 0x6c, 0xa4, 0x10, 0xd8, 0xae, 0x85, 0x19, 0x2a, 0xd2, 0x82, 0x6d, 0x3b, 0x46, + 0xa2, 0xeb, 0x4d, 0xdb, 0x95, 0x3a, 0x8c, 0xad, 0x22, 0x52, 0x96, 0x93, 0xa5, 0xe8, 0xf0, 0xb4, + 0x8c, 0x37, 0xe8, 0x7c, 0x36, 0xa3, 0x76, 0xa5, 0xca, 0x37, 0xc1, 0x25, 0x66, 0x1b, 0xd3, 0xf3, + 0x2b, 0x81, 0xcc, 0x59, 0x92, 0xb9, 0xd7, 0x27, 0xf4, 0x5d, 0x21, 0x5f, 0x5d, 0x71, 0xe9, 0xc4, + 0xd3, 0x85, 0xf6, 0x70, 0x4c, 0x92, 0xe3, 0x90, 0x77, 0x72, 0x90, 0xfd, 0x17, 0x55, 0xa9, 0x56, + 0x96, 0xcf, 0x2a, 0xbd, 0x97, 0x31, 0xb2, 0xe8, 0x05, 0x12, 0x4c, 0xcc, 0x59, 0xa6, 0xd6, 0x6c, + 0x68, 0x1d, 0x1b, 0x3d, 0x92, 0x86, 0xa9, 0x55, 0x6d, 0xaf, 0x65, 0x6a, 0x4d, 0xe2, 0xdf, 0xdf, + 0xd5, 0x17, 0xb4, 0xe9, 0x27, 0xb7, 0x2f, 0x60, 0xaf, 0xfc, 0xc1, 0x40, 0xef, 0xe8, 0x5e, 0x4a, + 0xe4, 0x42, 0x4d, 0x6f, 0x9b, 0x2f, 0xdd, 0x2b, 0x58, 0xa9, 0xcb, 0xd7, 0x6c, 0x90, 0xa7, 0x10, + 0x8b, 0xf2, 0xc3, 0x62, 0xe1, 0x47, 0x45, 0x48, 0x1e, 0xce, 0xae, 0xfc, 0x0b, 0xc7, 0x21, 0x37, + 0x8f, 0x89, 0x15, 0xf7, 0xdf, 0xd3, 0x30, 0x56, 0xc5, 0x36, 0xb1, 0xe0, 0x6e, 0xe5, 0x3c, 0x85, + 0x9b, 0x24, 0x83, 0xef, 0xc4, 0xee, 0xbe, 0x3b, 0x93, 0xf5, 0xc0, 0x79, 0x6b, 0xf2, 0x1c, 0xc3, + 0x23, 0x91, 0x96, 0x3b, 0xcb, 0xca, 0x3c, 0x90, 0x47, 0x62, 0x24, 0xa9, 0xe4, 0x7d, 0xad, 0xde, + 0x9b, 0x66, 0xae, 0x55, 0x81, 0x5e, 0xef, 0xf5, 0x41, 0xfd, 0x8c, 0xf4, 0x36, 0x63, 0xcc, 0x47, + 0x38, 0x47, 0xdd, 0x02, 0x63, 0x54, 0xe6, 0xee, 0x7c, 0xb4, 0xdb, 0x4f, 0x81, 0x92, 0x20, 0x67, + 0xaf, 0xdd, 0x9c, 0x82, 0x2e, 0x6a, 0xe1, 0x85, 0x8f, 0x24, 0x06, 0xc1, 0x54, 0x19, 0xdb, 0x17, + 0x4c, 0xeb, 0x7c, 0xd5, 0xd6, 0x6c, 0x8c, 0xfe, 0x25, 0x0d, 0x52, 0x15, 0xdb, 0xc1, 0xe8, 0x27, + 0x65, 0x38, 0x46, 0x2b, 0xc4, 0x32, 0x92, 0xfe, 0x9b, 0x56, 0xe4, 0xaa, 0x9e, 0x42, 0x08, 0xe4, + 0x53, 0xf7, 0xff, 0x8a, 0x7e, 0xa3, 0x67, 0xd0, 0xa7, 0x74, 0x8f, 0x49, 0x03, 0x93, 0x4c, 0x90, + 0x41, 0x47, 0xc1, 0x42, 0xf4, 0xf4, 0x23, 0x42, 0x66, 0xb5, 0x18, 0xcd, 0xc3, 0xe9, 0x0a, 0x5e, + 0x7b, 0x19, 0x64, 0x8a, 0x5b, 0x9a, 0x8d, 0xde, 0x23, 0x01, 0x14, 0x9a, 0xcd, 0x15, 0xea, 0x03, + 0x1e, 0x74, 0x48, 0x3b, 0x03, 0x53, 0x8d, 0x2d, 0xcd, 0xbf, 0xdb, 0x84, 0xf6, 0x07, 0x5c, 0x9a, + 0xfc, 0x64, 0xdf, 0x99, 0x9c, 0x4a, 0x15, 0x75, 0xc1, 0xe4, 0x94, 0xc1, 0x68, 0x7b, 0x8e, 0xe6, + 0x7c, 0x28, 0xcc, 0xc8, 0x23, 0x74, 0xce, 0xef, 0xb3, 0x3e, 0x7b, 0xe1, 0x73, 0x38, 0x46, 0xda, + 0x3b, 0x60, 0xe3, 0x27, 0xc4, 0x3c, 0xe9, 0x2d, 0x16, 0xd0, 0x23, 0x9a, 0xaf, 0x91, 0x84, 0xae, + 0x95, 0x95, 0xa6, 0xee, 0x8a, 0x96, 0x05, 0xcc, 0x42, 0x2f, 0x49, 0xc5, 0x83, 0x2f, 0x5a, 0x70, + 0x77, 0xc1, 0x34, 0x6e, 0xea, 0x36, 0x76, 0x6b, 0xc9, 0x04, 0x18, 0x05, 0x31, 0xff, 0x03, 0x7a, + 0x9e, 0x70, 0xd0, 0x35, 0x22, 0xd0, 0xfd, 0x35, 0x0a, 0x69, 0x7f, 0x62, 0x61, 0xd4, 0xc4, 0x68, + 0x26, 0x0f, 0xd6, 0xf3, 0x25, 0x38, 0x51, 0x33, 0x37, 0x37, 0x5b, 0xd8, 0x15, 0x13, 0xa6, 0xde, + 0x99, 0x48, 0x1b, 0x26, 0x5c, 0x64, 0x27, 0xc8, 0xbc, 0x4f, 0xf7, 0x8e, 0x92, 0x39, 0x2f, 0xfc, + 0x89, 0xa9, 0xc8, 0x59, 0x14, 0x11, 0x57, 0x4f, 0x3e, 0x43, 0x50, 0x10, 0x0b, 0xf8, 0x2c, 0x4c, + 0x36, 0x79, 0x20, 0xbe, 0x9c, 0x86, 0x69, 0x7a, 0x73, 0xa5, 0xab, 0xa0, 0xf7, 0x0c, 0x11, 0x00, + 0xf4, 0x48, 0x4a, 0xd4, 0xcf, 0x96, 0xc8, 0x84, 0xe3, 0x24, 0x44, 0xc4, 0x62, 0x41, 0x55, 0xfa, + 0x92, 0x1b, 0x41, 0xdc, 0x2c, 0x09, 0x26, 0x17, 0xb1, 0xdb, 0xd2, 0x3a, 0xc1, 0x6b, 0xc0, 0x44, + 0x04, 0x7b, 0x0d, 0x4c, 0xaf, 0xe3, 0x0d, 0xd3, 0xc2, 0x15, 0xee, 0x98, 0x24, 0x9f, 0x18, 0x12, + 0x79, 0x8e, 0x0b, 0x71, 0x36, 0xc7, 0x8b, 0xfd, 0x86, 0xfd, 0x72, 0x0a, 0x70, 0x19, 0x32, 0x9c, + 0x3c, 0x05, 0xc6, 0x19, 0xa8, 0xae, 0x05, 0x16, 0xd5, 0xe5, 0x79, 0x79, 0xd1, 0x9b, 0x3c, 0xb0, + 0x14, 0x0e, 0xac, 0x27, 0xc5, 0x61, 0x62, 0x24, 0x57, 0xb7, 0xe7, 0x03, 0xe5, 0xcf, 0xed, 0x95, + 0x9a, 0x1d, 0xb4, 0x12, 0x0f, 0xaf, 0xd3, 0x00, 0x9e, 0xde, 0xbb, 0x11, 0x2b, 0x02, 0x29, 0x7c, + 0x50, 0xfa, 0xc8, 0x33, 0x78, 0xdd, 0xe2, 0x20, 0xec, 0x0c, 0x19, 0x18, 0xb1, 0xb3, 0x7b, 0x22, + 0x9c, 0x24, 0x8f, 0xce, 0x67, 0x25, 0x38, 0xe1, 0x1d, 0x2d, 0x5a, 0xd6, 0x3a, 0x7e, 0x93, 0x2a, + 0xc6, 0x83, 0x88, 0x3b, 0xcb, 0xe1, 0x35, 0x96, 0xef, 0xc5, 0x1b, 0x0e, 0x7a, 0x72, 0x32, 0x5c, + 0x74, 0xe4, 0x1b, 0xe0, 0x98, 0xb1, 0xb3, 0xed, 0x49, 0x9d, 0xb4, 0x78, 0xd6, 0xc2, 0xf7, 0x7f, + 0x88, 0x33, 0xe8, 0x88, 0x30, 0x3f, 0x92, 0xe9, 0x22, 0x77, 0x5a, 0xeb, 0x89, 0xb1, 0x60, 0x44, + 0xdf, 0x4f, 0xc5, 0xea, 0xdd, 0xfa, 0x1f, 0xe7, 0x8a, 0xd1, 0x4b, 0x1d, 0xe2, 0x59, 0xae, 0x33, + 0x63, 0x90, 0x55, 0xb6, 0xdb, 0xf6, 0xde, 0x99, 0xc7, 0xc1, 0x74, 0xd5, 0xb6, 0xb0, 0xb6, 0x1d, + 0x58, 0xf4, 0xb7, 0xcd, 0xf3, 0xd8, 0x70, 0x17, 0xfd, 0xc9, 0xcb, 0x6d, 0xb7, 0xc2, 0x98, 0x61, + 0xd6, 0xb5, 0x1d, 0x7b, 0x4b, 0xbe, 0x72, 0xdf, 0x69, 0x79, 0x06, 0x7e, 0x85, 0x85, 0x27, 0xfa, + 0xfa, 0xed, 0x64, 0xd9, 0x37, 0x67, 0x98, 0x85, 0x1d, 0x7b, 0x6b, 0xee, 0x8a, 0x4f, 0xff, 0xdd, + 0xe9, 0xd4, 0xe7, 0xfe, 0xee, 0x74, 0xea, 0x6b, 0x7f, 0x77, 0x3a, 0xf5, 0xb2, 0x6f, 0x9c, 0x3e, + 0xf2, 0xb9, 0x6f, 0x9c, 0x3e, 0xf2, 0xe5, 0x6f, 0x9c, 0x3e, 0xf2, 0x33, 0xe9, 0xf6, 0xfa, 0x7a, + 0x8e, 0x50, 0xb9, 0xe5, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x90, 0x5d, 0xb3, 0x98, 0x45, 0xfe, 0x01, 0x00, } @@ -88274,6 +88786,293 @@ func (m *RpcObjectTypeRelationRemoveResponseError) MarshalToSizedBuffer(dAtA []b return len(dAtA) - i, nil } +func (m *RpcObjectTypeRecommended) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommended) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommended) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedRelationsSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedRelationsSet) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedRelationsSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RelationKeys) > 0 { + for iNdEx := len(m.RelationKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RelationKeys[iNdEx]) + copy(dAtA[i:], m.RelationKeys[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.ObjectTypeId) > 0 { + i -= len(m.ObjectTypeId) + copy(dAtA[i:], m.ObjectTypeId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectTypeId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RelationKeys) > 0 { + for iNdEx := len(m.RelationKeys) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RelationKeys[iNdEx]) + copy(dAtA[i:], m.RelationKeys[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKeys[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.ObjectTypeId) > 0 { + i -= len(m.ObjectTypeId) + copy(dAtA[i:], m.ObjectTypeId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectTypeId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcRelation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -122480,6 +123279,129 @@ func (m *RpcObjectTypeRelationRemoveResponseError) Size() (n int) { return n } +func (m *RpcObjectTypeRecommended) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectTypeRecommendedRelationsSet) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectTypeRecommendedRelationsSetRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ObjectTypeId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + if len(m.RelationKeys) > 0 { + for _, s := range m.RelationKeys { + l = len(s) + n += 1 + l + sovCommands(uint64(l)) + } + } + return n +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ObjectTypeId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + if len(m.RelationKeys) > 0 { + for _, s := range m.RelationKeys { + l = len(s) + n += 1 + l + sovCommands(uint64(l)) + } + } + return n +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcRelation) Size() (n int) { if m == nil { return 0 @@ -179242,6 +180164,758 @@ func (m *RpcObjectTypeRelationRemoveResponseError) Unmarshal(dAtA []byte) error } return nil } +func (m *RpcObjectTypeRecommended) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Recommended: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Recommended: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedRelationsSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RelationsSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RelationsSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedRelationsSetRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectTypeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ObjectTypeId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RelationKeys = append(m.RelationKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedRelationsSetResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcObjectTypeRecommendedRelationsSetResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedRelationsSetResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcObjectTypeRecommendedRelationsSetResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FeaturedRelationsSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FeaturedRelationsSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectTypeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ObjectTypeId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationKeys", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RelationKeys = append(m.RelationKeys, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcObjectTypeRecommendedFeaturedRelationsSetResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcRelation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 8d742aff3..59c6096fd 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3063,6 +3063,56 @@ message Rpc { } } } + + message Recommended { + message RelationsSet { + message Request { + string objectTypeId = 1; + repeated string relationKeys = 2; + } + + message Response { + Error error = 1; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + READONLY_OBJECT_TYPE = 3; + // ... + } + } + } + } + + message FeaturedRelationsSet { + message Request { + string objectTypeId = 1; + repeated string relationKeys = 2; + } + + message Response { + Error error = 1; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + READONLY_OBJECT_TYPE = 3; + // ... + } + } + } + } + } } message Relation { diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index a14c1bd62..9c3dbab87 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -145,6 +145,8 @@ service ClientCommands { rpc ObjectCreateObjectType (anytype.Rpc.Object.CreateObjectType.Request) returns (anytype.Rpc.Object.CreateObjectType.Response); rpc ObjectTypeRelationAdd (anytype.Rpc.ObjectType.Relation.Add.Request) returns (anytype.Rpc.ObjectType.Relation.Add.Response); rpc ObjectTypeRelationRemove (anytype.Rpc.ObjectType.Relation.Remove.Request) returns (anytype.Rpc.ObjectType.Relation.Remove.Response); + rpc ObjectTypeRecommendedRelationsSet (anytype.Rpc.ObjectType.Recommended.RelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.RelationsSet.Response); + rpc ObjectTypeRecommendedFeaturedRelationsSet (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response); rpc HistoryShowVersion (anytype.Rpc.History.ShowVersion.Request) returns (anytype.Rpc.History.ShowVersion.Response); rpc HistoryGetVersions (anytype.Rpc.History.GetVersions.Request) returns (anytype.Rpc.History.GetVersions.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index b7ffdae2f..8424fa46c 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,334 +26,338 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5225 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0x5b, 0x6f, 0x24, 0x49, - 0x56, 0xf8, 0xc7, 0x2f, 0xff, 0xf9, 0x93, 0xcb, 0x0e, 0x50, 0x03, 0xc3, 0xec, 0xb0, 0xdb, 0xb7, - 0xe9, 0xb6, 0xdd, 0x6d, 0xbb, 0xdc, 0xd3, 0x3d, 0x3d, 0xb3, 0xda, 0x45, 0x42, 0x6e, 0xbb, 0xed, - 0x31, 0x6b, 0xbb, 0x8d, 0xab, 0xdc, 0x2d, 0x8d, 0x84, 0x44, 0x3a, 0x2b, 0x5c, 0x4e, 0x9c, 0x95, - 0x91, 0x9b, 0x19, 0x55, 0xee, 0x5a, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0x6e, 0xaf, 0x48, - 0x7c, 0x05, 0xbe, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe0, 0x6b, 0xa0, 0x8c, 0x88, 0x8c, - 0xcb, 0xc9, 0x73, 0x22, 0xd3, 0xfb, 0xd4, 0xad, 0x3a, 0xbf, 0x73, 0x4e, 0x5c, 0x4f, 0x9c, 0x88, - 0x8c, 0x4c, 0x47, 0x77, 0x8b, 0x8b, 0xed, 0xa2, 0xe4, 0x82, 0x57, 0xdb, 0x15, 0x2b, 0x17, 0x69, - 0xc2, 0x9a, 0x7f, 0x87, 0xf2, 0xe7, 0xc1, 0xfb, 0x71, 0xbe, 0x14, 0xcb, 0x82, 0x7d, 0xf2, 0xb1, - 0x25, 0x13, 0x3e, 0x9b, 0xc5, 0xf9, 0xa4, 0x52, 0xc8, 0x27, 0x1f, 0x59, 0x09, 0x5b, 0xb0, 0x5c, - 0xe8, 0xdf, 0x9f, 0xfd, 0xe7, 0xff, 0xae, 0x44, 0x1f, 0xec, 0x66, 0x29, 0xcb, 0xc5, 0xae, 0xd6, - 0x18, 0x7c, 0x1d, 0x7d, 0x77, 0xa7, 0x28, 0x0e, 0x98, 0x78, 0xc3, 0xca, 0x2a, 0xe5, 0xf9, 0xe0, - 0xd3, 0xa1, 0x76, 0x30, 0x3c, 0x2b, 0x92, 0xe1, 0x4e, 0x51, 0x0c, 0xad, 0x70, 0x78, 0xc6, 0x7e, - 0x3a, 0x67, 0x95, 0xf8, 0xe4, 0x61, 0x18, 0xaa, 0x0a, 0x9e, 0x57, 0x6c, 0x70, 0x19, 0xfd, 0xc6, - 0x4e, 0x51, 0x8c, 0x98, 0xd8, 0x63, 0x75, 0x05, 0x46, 0x22, 0x16, 0x6c, 0xb0, 0xd6, 0x52, 0xf5, - 0x01, 0xe3, 0x63, 0xbd, 0x1b, 0xd4, 0x7e, 0xc6, 0xd1, 0x77, 0x6a, 0x3f, 0x57, 0x73, 0x31, 0xe1, - 0x37, 0xf9, 0xe0, 0x7e, 0x5b, 0x51, 0x8b, 0x8c, 0xed, 0x07, 0x21, 0x44, 0x5b, 0x7d, 0x1b, 0xfd, - 0xea, 0xdb, 0x38, 0xcb, 0x98, 0xd8, 0x2d, 0x59, 0x5d, 0x70, 0x5f, 0x47, 0x89, 0x86, 0x4a, 0x66, - 0xec, 0x7e, 0x1a, 0x64, 0xb4, 0xe1, 0xaf, 0xa3, 0xef, 0x2a, 0xc9, 0x19, 0x4b, 0xf8, 0x82, 0x95, - 0x03, 0x54, 0x4b, 0x0b, 0x89, 0x26, 0x6f, 0x41, 0xd0, 0xf6, 0x2e, 0xcf, 0x17, 0xac, 0x14, 0xb8, - 0x6d, 0x2d, 0x0c, 0xdb, 0xb6, 0x90, 0xb6, 0xfd, 0xb7, 0x2b, 0xd1, 0xf7, 0x77, 0x92, 0x84, 0xcf, - 0x73, 0x71, 0xc4, 0x93, 0x38, 0x3b, 0x4a, 0xf3, 0xeb, 0x13, 0x76, 0xb3, 0x7b, 0x55, 0xf3, 0xf9, - 0x94, 0x0d, 0x9e, 0xfb, 0xad, 0xaa, 0xd0, 0xa1, 0x61, 0x87, 0x2e, 0x6c, 0x7c, 0x7f, 0x7e, 0x3b, - 0x25, 0x5d, 0x96, 0x7f, 0x5c, 0x89, 0xee, 0xc0, 0xb2, 0x8c, 0x78, 0xb6, 0x60, 0xb6, 0x34, 0x2f, - 0x3a, 0x0c, 0xfb, 0xb8, 0x29, 0xcf, 0x17, 0xb7, 0x55, 0xd3, 0x25, 0xca, 0xa2, 0x0f, 0xdd, 0xe1, - 0x32, 0x62, 0x95, 0x9c, 0x4e, 0x8f, 0xe9, 0x11, 0xa1, 0x11, 0xe3, 0xf9, 0x49, 0x1f, 0x54, 0x7b, - 0x4b, 0xa3, 0x81, 0xf6, 0x96, 0xf1, 0xca, 0x38, 0x5b, 0x47, 0x2d, 0x38, 0x84, 0xf1, 0xf5, 0xb8, - 0x07, 0xa9, 0x5d, 0xfd, 0x51, 0xf4, 0x6b, 0x6f, 0x79, 0x79, 0x5d, 0x15, 0x71, 0xc2, 0xf4, 0x54, - 0x78, 0xe4, 0x6b, 0x37, 0x52, 0x38, 0x1b, 0x56, 0xbb, 0x30, 0x67, 0xd0, 0x36, 0xc2, 0xd7, 0x05, - 0x83, 0x31, 0xc8, 0x2a, 0xd6, 0x42, 0x6a, 0xd0, 0x42, 0x48, 0xdb, 0xbe, 0x8e, 0x06, 0xd6, 0xf6, - 0xc5, 0x1f, 0xb3, 0x44, 0xec, 0x4c, 0x26, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x86, 0x3b, 0x93, 0x09, - 0xd5, 0x2b, 0x38, 0xaa, 0x9d, 0xdd, 0x44, 0x1f, 0x01, 0x67, 0x47, 0x69, 0x25, 0x1d, 0x6e, 0x85, - 0xad, 0x68, 0xcc, 0x38, 0x1d, 0xf6, 0xc5, 0xb5, 0xe3, 0x3f, 0x5f, 0x89, 0xbe, 0x87, 0x78, 0x3e, - 0x63, 0x33, 0xbe, 0x60, 0x83, 0xa7, 0xdd, 0xd6, 0x14, 0x69, 0xfc, 0x7f, 0x76, 0x0b, 0x0d, 0x64, - 0x98, 0x8c, 0x58, 0xc6, 0x12, 0x41, 0x0e, 0x13, 0x25, 0xee, 0x1c, 0x26, 0x06, 0x73, 0x66, 0x58, - 0x23, 0x3c, 0x60, 0x62, 0x77, 0x5e, 0x96, 0x2c, 0x17, 0x64, 0x5f, 0x5a, 0xa4, 0xb3, 0x2f, 0x3d, - 0x14, 0xa9, 0xcf, 0x01, 0x13, 0x3b, 0x59, 0x46, 0xd6, 0x47, 0x89, 0x3b, 0xeb, 0x63, 0x30, 0xed, - 0x21, 0x89, 0x7e, 0xdd, 0x69, 0x31, 0x71, 0x98, 0x5f, 0xf2, 0x01, 0xdd, 0x16, 0x52, 0x6e, 0x7c, - 0xac, 0x75, 0x72, 0x48, 0x35, 0x5e, 0xbd, 0x2b, 0x78, 0x49, 0x77, 0x8b, 0x12, 0x77, 0x56, 0xc3, - 0x60, 0xda, 0xc3, 0x1f, 0x46, 0x1f, 0xe8, 0x28, 0xd9, 0xac, 0x67, 0x0f, 0xd1, 0x10, 0x0a, 0x17, - 0xb4, 0x47, 0x1d, 0x94, 0x0d, 0x0e, 0x5a, 0xa6, 0x83, 0xcf, 0xa7, 0xa8, 0x1e, 0x08, 0x3d, 0x0f, - 0xc3, 0x50, 0xcb, 0xf6, 0x1e, 0xcb, 0x18, 0x69, 0x5b, 0x09, 0x3b, 0x6c, 0x1b, 0x48, 0xdb, 0x2e, - 0xa3, 0xdf, 0x32, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x0d, 0xa2, 0xde, 0x2e, 0x64, - 0x7c, 0x6d, 0xf6, 0x83, 0x5b, 0xf5, 0xd1, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0x0f, 0xc3, 0x90, - 0xb6, 0xfd, 0x77, 0x2b, 0xd1, 0x0f, 0xb4, 0xec, 0x55, 0x1e, 0x5f, 0x64, 0x4c, 0x2e, 0x89, 0x27, - 0x4c, 0xdc, 0xf0, 0xf2, 0x7a, 0xb4, 0xcc, 0x13, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, 0x54, - 0x72, 0x32, 0x3e, 0x5d, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0x35, 0x35, 0x10, 0xbc, 0xa0, 0x32, 0x3e, - 0x1f, 0x69, 0x59, 0x3d, 0xae, 0xc3, 0x26, 0x6e, 0xf5, 0xd8, 0x8d, 0x93, 0x0f, 0x42, 0x88, 0x0d, - 0x5b, 0xcd, 0x00, 0xe6, 0xf9, 0x65, 0x3a, 0x3d, 0x2f, 0x26, 0xf5, 0x30, 0x7e, 0x8c, 0x8f, 0x50, - 0x07, 0x21, 0xc2, 0x16, 0x81, 0x6a, 0x6f, 0xff, 0x60, 0x13, 0x23, 0x3d, 0x95, 0xf6, 0x4b, 0x3e, - 0x3b, 0x62, 0xd3, 0x38, 0x59, 0xea, 0xf9, 0xff, 0x79, 0x68, 0xe2, 0x41, 0xda, 0x14, 0xe2, 0xc5, - 0x2d, 0xb5, 0x74, 0x79, 0xfe, 0x7d, 0x25, 0x7a, 0xd8, 0x54, 0xff, 0x2a, 0xce, 0xa7, 0x4c, 0xf7, - 0xa7, 0x2a, 0xfd, 0x4e, 0x3e, 0x39, 0x63, 0x95, 0x88, 0x4b, 0x31, 0xf8, 0x11, 0x5e, 0xc9, 0x90, - 0x8e, 0x29, 0xdb, 0x8f, 0x7f, 0x29, 0x5d, 0xdb, 0xeb, 0xa3, 0x3a, 0xb0, 0xe9, 0x10, 0xe0, 0xf7, - 0xba, 0x94, 0xc0, 0x00, 0xf0, 0x20, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xc3, 0x7c, 0x91, 0x0a, 0x76, - 0xc0, 0x72, 0x56, 0xb6, 0x7b, 0x5d, 0xa9, 0xfa, 0x08, 0xd1, 0xeb, 0x04, 0x6a, 0x83, 0x8d, 0xe7, - 0xcd, 0x2c, 0x8e, 0x1b, 0x01, 0x23, 0xad, 0xe5, 0x71, 0xb3, 0x1f, 0x6c, 0x77, 0x77, 0x8e, 0xcf, - 0x33, 0xb6, 0xe0, 0xd7, 0x70, 0x77, 0xe7, 0x9a, 0x50, 0x00, 0xb1, 0xbb, 0x43, 0x41, 0xbb, 0x82, - 0x39, 0x7e, 0xde, 0xa4, 0xec, 0x06, 0xac, 0x60, 0xae, 0x72, 0x2d, 0x26, 0x56, 0x30, 0x04, 0xd3, - 0x1e, 0x4e, 0xa2, 0x5f, 0x91, 0xc2, 0xdf, 0xe7, 0x69, 0x3e, 0xb8, 0x8b, 0x28, 0xd5, 0x02, 0x63, - 0xf5, 0x1e, 0x0d, 0x80, 0x12, 0xd7, 0xbf, 0xee, 0xc6, 0x79, 0xc2, 0x32, 0xb4, 0xc4, 0x56, 0x1c, - 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xba, 0x8a, 0xcb, 0x34, 0x9f, 0x0e, - 0x30, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x56, 0xdc, 0x29, 0x8a, 0xb2, 0x0e, - 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x3d, 0x96, 0x64, 0x69, 0x1e, - 0xf4, 0xa6, 0x91, 0x3e, 0xde, 0x2c, 0x0a, 0x06, 0xef, 0x11, 0x8b, 0x17, 0xac, 0xa9, 0x19, 0xd6, - 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8e, 0xaf, 0x59, 0xdd, 0xc0, - 0xac, 0x5e, 0xd7, 0x06, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0xd4, 0xae, 0xe6, 0xd1, 0x47, - 0x52, 0x7e, 0x1a, 0x97, 0x22, 0x4d, 0xd2, 0x22, 0xce, 0x9b, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, 0xca, - 0xb8, 0xdc, 0xea, 0x49, 0x6b, 0xb7, 0xff, 0xb6, 0x12, 0xdd, 0x87, 0x7e, 0x4f, 0x59, 0x39, 0x4b, - 0xe5, 0x36, 0xb2, 0x52, 0x41, 0x78, 0xf0, 0x65, 0xd8, 0x68, 0x4b, 0xc1, 0x94, 0xe6, 0x87, 0xb7, - 0x57, 0xd4, 0x05, 0xfb, 0x83, 0x28, 0x52, 0xdb, 0x15, 0xb9, 0xa5, 0xf4, 0x67, 0xad, 0xde, 0xc7, - 0x78, 0xfb, 0xc9, 0xfb, 0x01, 0xc2, 0x2e, 0x15, 0xea, 0x77, 0xb9, 0x53, 0x1e, 0xa0, 0x1a, 0x52, - 0x44, 0x2c, 0x15, 0x00, 0x81, 0x05, 0x1d, 0x5d, 0xf1, 0x1b, 0xbc, 0xa0, 0xb5, 0x24, 0x5c, 0x50, - 0x4d, 0xd8, 0xb3, 0x2b, 0x5d, 0x50, 0xec, 0xec, 0xaa, 0x29, 0x46, 0xe8, 0xec, 0x0a, 0x32, 0xda, - 0x30, 0x8f, 0x7e, 0xd3, 0x35, 0xfc, 0x92, 0xf3, 0xeb, 0x59, 0x5c, 0x5e, 0x0f, 0x9e, 0xd0, 0xca, - 0x0d, 0x63, 0x1c, 0x6d, 0xf4, 0x62, 0x6d, 0x58, 0x70, 0x1d, 0xd6, 0x89, 0xc6, 0x79, 0x99, 0x81, - 0xb0, 0xe0, 0xd9, 0xd0, 0x08, 0x11, 0x16, 0x08, 0xd4, 0x46, 0x6e, 0xd7, 0xdb, 0x88, 0xc1, 0xdd, - 0x92, 0xa7, 0x3e, 0x62, 0xd4, 0x6e, 0x09, 0xc1, 0xe0, 0x10, 0x3a, 0x28, 0xe3, 0xe2, 0x0a, 0x1f, - 0x42, 0x52, 0x14, 0x1e, 0x42, 0x0d, 0x02, 0xfb, 0x7b, 0xc4, 0xe2, 0x32, 0xb9, 0xc2, 0xfb, 0x5b, - 0xc9, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x4a, 0xf0, 0x36, 0x15, 0x57, 0xc7, 0x4c, 0xc4, 0x78, - 0x7f, 0xfb, 0x4c, 0xb8, 0xbf, 0x5b, 0xac, 0xcd, 0x64, 0x5c, 0x87, 0xa3, 0xf9, 0x45, 0x95, 0x94, - 0xe9, 0x05, 0x1b, 0x04, 0xac, 0x18, 0x88, 0xc8, 0x64, 0x48, 0x58, 0xfb, 0xfc, 0xf9, 0x4a, 0x74, - 0xb7, 0xe9, 0x76, 0x5e, 0x55, 0x6a, 0x65, 0x05, 0xee, 0x5f, 0xe0, 0xfd, 0x4b, 0xe0, 0xc4, 0x69, - 0x62, 0x0f, 0x35, 0x27, 0xaa, 0xe2, 0x45, 0x3a, 0xcf, 0x2b, 0x53, 0xa8, 0x2f, 0xfb, 0x58, 0x77, - 0x14, 0x88, 0xa8, 0xda, 0x4b, 0xd1, 0x2e, 0x68, 0xba, 0x7f, 0x1a, 0xd9, 0xe1, 0xa4, 0x02, 0x0b, - 0x5a, 0xd3, 0xde, 0x0e, 0x41, 0x2c, 0x68, 0x38, 0x09, 0x87, 0xc2, 0x41, 0xc9, 0xe7, 0x45, 0xd5, - 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xfb, 0x7c, 0x17, 0xfd, 0xb6, 0x3b, 0xfc, 0xdc, - 0xc6, 0xde, 0xa2, 0xc7, 0x14, 0xd6, 0xc4, 0xc3, 0xbe, 0xb8, 0x4d, 0xe9, 0x1a, 0xcf, 0x62, 0x8f, - 0x89, 0x38, 0xcd, 0xaa, 0xc1, 0x2a, 0x6e, 0xa3, 0x91, 0x13, 0x29, 0x1d, 0xc6, 0xc1, 0xf8, 0xb6, - 0x37, 0x2f, 0xb2, 0x34, 0x69, 0x9f, 0xe5, 0x6a, 0x5d, 0x23, 0x0e, 0xc7, 0x37, 0x17, 0x83, 0xf1, - 0x7a, 0xc4, 0x84, 0xfa, 0xcf, 0x78, 0x59, 0x30, 0x3c, 0x5e, 0x7b, 0x48, 0x38, 0x5e, 0x43, 0x14, - 0xd6, 0x67, 0xc4, 0xc4, 0x51, 0xbc, 0xe4, 0x73, 0x22, 0x5e, 0x1b, 0x71, 0xb8, 0x3e, 0x2e, 0x66, - 0xb3, 0x2a, 0xe3, 0xe1, 0x30, 0x17, 0xac, 0xcc, 0xe3, 0x6c, 0x3f, 0x8b, 0xa7, 0xd5, 0x80, 0x88, - 0x31, 0x3e, 0x45, 0x64, 0x55, 0x34, 0x8d, 0x34, 0xe3, 0x61, 0xb5, 0x1f, 0x2f, 0x78, 0x99, 0x0a, - 0xba, 0x19, 0x2d, 0xd2, 0xd9, 0x8c, 0x1e, 0x8a, 0x7a, 0xdb, 0x29, 0x93, 0xab, 0x74, 0xc1, 0x26, - 0x01, 0x6f, 0x0d, 0xd2, 0xc3, 0x9b, 0x83, 0x22, 0x9d, 0x36, 0xe2, 0xf3, 0x32, 0x61, 0x64, 0xa7, - 0x29, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x7b, 0xf8, 0xab, 0x95, 0xe8, 0x77, 0x94, 0xd4, 0x3d, 0x60, - 0xdd, 0x8b, 0xab, 0xab, 0x0b, 0x1e, 0x97, 0x93, 0xc1, 0x67, 0x98, 0x1d, 0x14, 0x35, 0xae, 0x9f, - 0xdd, 0x46, 0x05, 0x36, 0xeb, 0x51, 0x5a, 0x39, 0x33, 0x0e, 0x6d, 0x56, 0x0f, 0x09, 0x37, 0x2b, - 0x44, 0x61, 0x00, 0x91, 0x72, 0x75, 0x98, 0xb1, 0x4a, 0xea, 0xfb, 0x27, 0x1a, 0x6b, 0x9d, 0x1c, - 0x8c, 0x8f, 0xb5, 0xd0, 0x1f, 0x2d, 0x5b, 0x94, 0x0d, 0x7c, 0xc4, 0x0c, 0xfb, 0xe2, 0xa4, 0x67, - 0x33, 0x2b, 0xc2, 0x9e, 0x5b, 0x33, 0x63, 0xd8, 0x17, 0x27, 0x3c, 0x3b, 0x61, 0x2d, 0xe4, 0x19, - 0x09, 0x6d, 0xc3, 0xbe, 0x38, 0xcc, 0xbe, 0x34, 0xd3, 0xac, 0x0b, 0x4f, 0x02, 0x76, 0xe0, 0xda, - 0xb0, 0xd1, 0x8b, 0xd5, 0x0e, 0xff, 0x66, 0x25, 0xfa, 0xbe, 0xf5, 0x78, 0xcc, 0x27, 0xe9, 0xe5, - 0x52, 0x41, 0x6f, 0xe2, 0x6c, 0xce, 0xaa, 0xc1, 0x33, 0xca, 0x5a, 0x9b, 0x35, 0x25, 0x78, 0x7e, - 0x2b, 0x1d, 0x38, 0x77, 0x76, 0x8a, 0x22, 0x5b, 0x8e, 0xd9, 0xac, 0xc8, 0xc8, 0xb9, 0xe3, 0x21, - 0xe1, 0xb9, 0x03, 0x51, 0x98, 0x95, 0x8f, 0x79, 0x9d, 0xf3, 0xa3, 0x59, 0xb9, 0x14, 0x85, 0xb3, - 0xf2, 0x06, 0x81, 0xb9, 0xd2, 0x98, 0xef, 0xf2, 0x2c, 0x63, 0x89, 0x68, 0x3f, 0xa4, 0x35, 0x9a, - 0x96, 0x08, 0xe7, 0x4a, 0x80, 0xb4, 0xe7, 0x19, 0xcd, 0x1e, 0x32, 0x2e, 0xd9, 0xcb, 0xe5, 0x51, - 0x9a, 0x5f, 0x0f, 0xf0, 0xb4, 0xc0, 0x02, 0xc4, 0x79, 0x06, 0x0a, 0xc2, 0xbd, 0xea, 0x79, 0x3e, - 0xe1, 0xf8, 0x5e, 0xb5, 0x96, 0x84, 0xf7, 0xaa, 0x9a, 0x80, 0x26, 0xcf, 0x18, 0x65, 0xb2, 0x96, - 0x84, 0x4d, 0x6a, 0x02, 0x0b, 0x85, 0xfa, 0xd4, 0x9b, 0x0c, 0x85, 0xe0, 0x9c, 0x7b, 0xad, 0x93, - 0x83, 0x23, 0xb4, 0xd9, 0xb4, 0xee, 0x33, 0x91, 0x5c, 0xe1, 0x23, 0xd4, 0x43, 0xc2, 0x23, 0x14, - 0xa2, 0xb0, 0x4a, 0x63, 0x6e, 0x36, 0xdd, 0xab, 0xf8, 0xf8, 0x68, 0x6d, 0xb8, 0xd7, 0x3a, 0x39, - 0xb8, 0x8d, 0x3c, 0x9c, 0xc9, 0x36, 0x43, 0x07, 0xb9, 0x92, 0x85, 0xb7, 0x91, 0x86, 0x81, 0xa5, - 0x57, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, 0x9d, 0xfc, 0x8b, 0xd9, - 0xc6, 0x29, 0xe9, 0x09, 0xaf, 0xe7, 0xc8, 0x9b, 0x38, 0x4b, 0x27, 0xb1, 0x60, 0x63, 0x7e, 0xcd, - 0x72, 0x7c, 0xc7, 0xa4, 0x4b, 0xab, 0xf8, 0xa1, 0xa7, 0x10, 0xde, 0x31, 0x85, 0x15, 0xe1, 0x38, - 0x51, 0xf4, 0x79, 0xc5, 0x76, 0xe3, 0x8a, 0x88, 0x64, 0x1e, 0x12, 0x1e, 0x27, 0x10, 0x85, 0xf9, - 0xaa, 0x92, 0xbf, 0x7a, 0x57, 0xb0, 0x32, 0x65, 0x79, 0xc2, 0xf0, 0x7c, 0x15, 0x52, 0xe1, 0x7c, - 0x15, 0xa1, 0x5b, 0xc7, 0x34, 0x26, 0x38, 0xb5, 0xef, 0x59, 0x40, 0x22, 0x70, 0xcf, 0x82, 0x40, - 0x61, 0x25, 0x2d, 0x80, 0x1e, 0x75, 0xb6, 0xac, 0x04, 0x8f, 0x3a, 0x69, 0xba, 0x75, 0xf8, 0x65, - 0x98, 0x51, 0x3d, 0x4d, 0x3a, 0x8a, 0x3e, 0x72, 0xa7, 0xcb, 0x46, 0x2f, 0x16, 0x3f, 0x6d, 0x3b, - 0x63, 0x59, 0x2c, 0x97, 0x90, 0xc0, 0x91, 0x56, 0xc3, 0xf4, 0x39, 0x6d, 0x73, 0x58, 0xed, 0xf0, - 0x2f, 0x56, 0xa2, 0x4f, 0x30, 0x8f, 0xaf, 0x0b, 0xe9, 0xf7, 0x69, 0xb7, 0x2d, 0x45, 0x12, 0x17, - 0x49, 0xc2, 0x1a, 0xba, 0x0c, 0x7f, 0x12, 0x7d, 0xdc, 0x88, 0xec, 0x3d, 0x13, 0x5d, 0x00, 0x3f, - 0x81, 0x32, 0xe5, 0x87, 0x9c, 0x71, 0xbf, 0xdd, 0x9b, 0xb7, 0x7b, 0x13, 0xbf, 0x5c, 0x15, 0xd8, - 0x9b, 0x18, 0x1b, 0x5a, 0x4c, 0xec, 0x4d, 0x10, 0xcc, 0x9e, 0x6a, 0xb8, 0xd5, 0x7b, 0x9b, 0x8a, - 0x2b, 0x99, 0xfb, 0x80, 0x53, 0x0d, 0xaf, 0xac, 0x06, 0x22, 0x4e, 0x35, 0x48, 0x18, 0x66, 0x07, - 0x0d, 0x58, 0xcf, 0x4d, 0x2c, 0xae, 0x1a, 0x43, 0xee, 0xcc, 0x5c, 0xef, 0x06, 0xe1, 0x78, 0x6d, - 0xc4, 0x7a, 0x1b, 0xf2, 0x24, 0x64, 0x01, 0x6c, 0x45, 0x36, 0x7a, 0xb1, 0xda, 0xe1, 0x9f, 0x45, - 0xdf, 0x6b, 0x55, 0x6c, 0x9f, 0xc5, 0x62, 0x5e, 0xb2, 0xc9, 0x60, 0xbb, 0xa3, 0xdc, 0x0d, 0x68, - 0x5c, 0x3f, 0xed, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x0d, 0x2b, 0x53, 0x86, 0x67, 0x21, 0x93, - 0x3e, 0x1b, 0xcc, 0x97, 0x69, 0x9d, 0xd6, 0x96, 0xd7, 0x1d, 0x5d, 0x3b, 0x8b, 0x38, 0xcd, 0xe4, - 0x23, 0xa7, 0xcf, 0x42, 0x46, 0x3d, 0x34, 0xb8, 0xe5, 0x25, 0x55, 0x5a, 0x91, 0x59, 0xce, 0x71, - 0x67, 0xab, 0xb4, 0x49, 0x47, 0x02, 0x64, 0xa7, 0xb4, 0xd5, 0x93, 0xd6, 0x6e, 0x45, 0x73, 0x54, - 0x58, 0xff, 0xec, 0x0e, 0x72, 0xcc, 0xab, 0x56, 0x45, 0x46, 0xfa, 0x56, 0x4f, 0x5a, 0x7b, 0xfd, - 0xd3, 0xe8, 0xe3, 0xb6, 0x57, 0xbd, 0x10, 0x6d, 0x77, 0x9a, 0x02, 0x6b, 0xd1, 0xd3, 0xfe, 0x0a, - 0x76, 0x7b, 0xf1, 0x55, 0x5a, 0x09, 0x5e, 0x2e, 0x47, 0x57, 0xfc, 0xa6, 0xb9, 0xbf, 0xed, 0xcf, - 0x56, 0x0d, 0x0c, 0x1d, 0x82, 0xd8, 0x5e, 0xe0, 0x64, 0xcb, 0x95, 0xbd, 0xe7, 0x5d, 0x11, 0xae, - 0x1c, 0xa2, 0xc3, 0x95, 0x4f, 0xda, 0x58, 0xd5, 0xd4, 0xca, 0x5e, 0x4a, 0x5f, 0xc3, 0x8b, 0xda, - 0xbe, 0x98, 0xbe, 0xde, 0x0d, 0xda, 0x8c, 0x45, 0x8b, 0xf7, 0xd2, 0xcb, 0x4b, 0x53, 0x27, 0xbc, - 0xa4, 0x2e, 0x42, 0x64, 0x2c, 0x04, 0x6a, 0x13, 0xe0, 0xfd, 0x34, 0x63, 0xf2, 0x74, 0xfd, 0xf5, - 0xe5, 0x65, 0xc6, 0xe3, 0x09, 0x48, 0x80, 0x6b, 0xf1, 0xd0, 0x95, 0x13, 0x09, 0x30, 0xc6, 0xd9, - 0xeb, 0x5f, 0xb5, 0xf4, 0x8c, 0x25, 0x3c, 0x4f, 0xd2, 0x0c, 0x5e, 0x67, 0x93, 0x9a, 0x46, 0x48, - 0x5c, 0xff, 0x6a, 0x41, 0x76, 0x61, 0xac, 0x45, 0xf5, 0xb4, 0x6f, 0xca, 0xff, 0xa8, 0xad, 0xe8, - 0x88, 0x89, 0x85, 0x11, 0xc1, 0xec, 0x3e, 0xb0, 0x16, 0x9e, 0x17, 0xd2, 0xf8, 0xbd, 0xb6, 0x96, - 0x92, 0x10, 0xfb, 0x40, 0x9f, 0xb0, 0xfb, 0x99, 0xfa, 0xf7, 0x3d, 0x7e, 0x93, 0x4b, 0xa3, 0x0f, - 0xda, 0x2a, 0x8d, 0x8c, 0xd8, 0xcf, 0x40, 0x46, 0x1b, 0xfe, 0x49, 0xf4, 0xff, 0xa5, 0xe1, 0x92, - 0x17, 0x83, 0x3b, 0x88, 0x42, 0xe9, 0xdc, 0x3c, 0xbb, 0x4b, 0xca, 0xed, 0x05, 0x4a, 0x33, 0x36, - 0xce, 0xab, 0x78, 0xca, 0x06, 0x0f, 0x89, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x65, 0x9b, 0xf2, 0x47, - 0xc5, 0x09, 0x9f, 0x68, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0x34, 0x2a, 0x5c, 0xc8, 0x26, 0x33, 0x27, - 0xf1, 0x22, 0x9d, 0x9a, 0x05, 0x47, 0xc5, 0xad, 0x0a, 0x24, 0x33, 0x96, 0x19, 0x3a, 0x10, 0x91, - 0xcc, 0x90, 0xb0, 0xf6, 0xf9, 0xcf, 0x2b, 0xd1, 0x3d, 0xcb, 0x1c, 0x34, 0x27, 0x67, 0x87, 0xf9, - 0x25, 0xaf, 0x53, 0x9f, 0xa3, 0x34, 0xbf, 0xae, 0x06, 0x5f, 0x50, 0x26, 0x71, 0xde, 0x14, 0xe5, - 0xcb, 0x5b, 0xeb, 0xd9, 0xac, 0xb5, 0x39, 0x56, 0xb2, 0xcf, 0x96, 0x95, 0x06, 0xc8, 0x5a, 0xcd, - 0xe9, 0x13, 0xe4, 0x88, 0xac, 0x35, 0xc4, 0xdb, 0x2e, 0x36, 0xce, 0x33, 0x9e, 0xc3, 0x2e, 0xb6, - 0x16, 0x6a, 0x21, 0xd1, 0xc5, 0x2d, 0xc8, 0xc6, 0xe3, 0x46, 0xa4, 0x4e, 0x40, 0x76, 0xb2, 0x0c, - 0xc4, 0x63, 0xa3, 0x6a, 0x00, 0x22, 0x1e, 0xa3, 0xa0, 0xf6, 0x73, 0x16, 0x7d, 0xa7, 0x6e, 0xd2, - 0xd3, 0x92, 0x2d, 0x52, 0x06, 0xaf, 0x41, 0x38, 0x12, 0x62, 0xfe, 0xfb, 0x84, 0x9d, 0x59, 0xe7, - 0x79, 0x55, 0x64, 0x71, 0x75, 0xa5, 0x1f, 0x8c, 0xfb, 0x75, 0x6e, 0x84, 0xf0, 0xd1, 0xf8, 0xa3, - 0x0e, 0xca, 0x06, 0xf5, 0x46, 0x66, 0x42, 0xcc, 0x2a, 0xae, 0xda, 0x0a, 0x33, 0x6b, 0x9d, 0x9c, - 0x3d, 0x7d, 0x3e, 0x88, 0xb3, 0x8c, 0x95, 0xcb, 0x46, 0x76, 0x1c, 0xe7, 0xe9, 0x25, 0xab, 0x04, - 0x38, 0x7d, 0xd6, 0xd4, 0x10, 0x62, 0xc4, 0xe9, 0x73, 0x00, 0xb7, 0xd9, 0x3c, 0xf0, 0x7c, 0x98, - 0x4f, 0xd8, 0x3b, 0x90, 0xcd, 0x43, 0x3b, 0x92, 0x21, 0xb2, 0x79, 0x8a, 0xb5, 0xa7, 0xb0, 0x2f, - 0x33, 0x9e, 0x5c, 0xeb, 0x25, 0xc0, 0xef, 0x60, 0x29, 0x81, 0x6b, 0xc0, 0x83, 0x10, 0x62, 0x17, - 0x01, 0x29, 0x38, 0x63, 0x45, 0x16, 0x27, 0xf0, 0x2e, 0x8c, 0xd2, 0xd1, 0x32, 0x62, 0x11, 0x80, - 0x0c, 0x28, 0xae, 0xbe, 0x63, 0x83, 0x15, 0x17, 0x5c, 0xb1, 0x79, 0x10, 0x42, 0xec, 0x32, 0x28, - 0x05, 0xa3, 0x22, 0x4b, 0x05, 0x98, 0x06, 0x4a, 0x43, 0x4a, 0x88, 0x69, 0xe0, 0x13, 0xc0, 0xe4, - 0x31, 0x2b, 0xa7, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x0d, 0x61, 0xaf, 0x4c, 0xaa, 0xba, 0xf3, - 0x62, 0x09, 0xae, 0x4c, 0xea, 0x6a, 0xf1, 0x62, 0x49, 0x5c, 0x99, 0xf4, 0x00, 0x50, 0xc4, 0xd3, - 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0xc4, 0x86, 0xb0, 0x6b, 0xb4, 0x2a, 0xe2, 0x5c, 0x80, - 0x35, 0x5a, 0x17, 0xc0, 0x79, 0x1a, 0x7c, 0x97, 0x94, 0xdb, 0x48, 0xa2, 0x7a, 0x85, 0x89, 0xfd, - 0x94, 0x65, 0x93, 0x0a, 0x44, 0x12, 0xdd, 0xee, 0x8d, 0x94, 0x88, 0x24, 0x6d, 0x0a, 0x0c, 0x25, - 0x7d, 0x56, 0x8d, 0xd5, 0x0e, 0x1c, 0x53, 0x3f, 0x08, 0x21, 0x36, 0x3e, 0x35, 0x85, 0xde, 0x8d, - 0xcb, 0x32, 0xad, 0x17, 0xff, 0x55, 0xbc, 0x40, 0x8d, 0x9c, 0x88, 0x4f, 0x18, 0x07, 0xa6, 0x57, - 0x13, 0xb8, 0xb1, 0x82, 0xc1, 0xd0, 0xfd, 0x69, 0x90, 0xb1, 0x19, 0xa7, 0x94, 0x38, 0x8f, 0x33, - 0xb1, 0xd6, 0x44, 0x9e, 0x66, 0xae, 0x76, 0x61, 0xce, 0x2b, 0x0d, 0xc6, 0xc5, 0x31, 0x5f, 0xb0, - 0x31, 0x7f, 0xf5, 0x2e, 0xad, 0x44, 0x9a, 0x4f, 0xf5, 0xca, 0xfd, 0x9c, 0xb0, 0x84, 0xc1, 0xc4, - 0x2b, 0x0d, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x61, 0x37, 0x68, 0x02, 0x01, 0x2d, 0x1a, - 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x47, 0x31, 0xce, 0xf5, 0x7b, 0x9f, 0x63, 0xde, 0xe4, 0x72, - 0x94, 0x35, 0x08, 0x12, 0x5b, 0xd9, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, 0x8a, 0xad, 0x13, - 0x76, 0xda, 0xd3, 0xec, 0x71, 0x0f, 0x12, 0x71, 0x65, 0x9f, 0xc9, 0x53, 0xae, 0xda, 0x8f, 0xe4, - 0x1f, 0xf7, 0x20, 0x9d, 0x33, 0x19, 0xb7, 0x5a, 0x2f, 0xe3, 0xe4, 0x7a, 0x5a, 0xf2, 0x79, 0x3e, - 0xd9, 0xe5, 0x19, 0x2f, 0xc1, 0x99, 0x8c, 0x57, 0x6a, 0x80, 0x12, 0x67, 0x32, 0x1d, 0x2a, 0x36, - 0x83, 0x73, 0x4b, 0xb1, 0x93, 0xa5, 0x53, 0xb8, 0xa3, 0xf6, 0x0c, 0x49, 0x80, 0xc8, 0xe0, 0x50, - 0x10, 0x19, 0x44, 0x6a, 0xc7, 0x2d, 0xd2, 0x24, 0xce, 0x94, 0xbf, 0x6d, 0xda, 0x8c, 0x07, 0x76, - 0x0e, 0x22, 0x44, 0x01, 0xa9, 0xe7, 0x78, 0x5e, 0xe6, 0x87, 0xb9, 0xe0, 0x64, 0x3d, 0x1b, 0xa0, - 0xb3, 0x9e, 0x0e, 0x08, 0xc2, 0xea, 0x98, 0xbd, 0xab, 0x4b, 0x53, 0xff, 0x83, 0x85, 0xd5, 0xfa, - 0xf7, 0xa1, 0x96, 0x87, 0xc2, 0x2a, 0xe0, 0x40, 0x65, 0xb4, 0x13, 0x35, 0x60, 0x02, 0xda, 0xfe, - 0x30, 0x59, 0xef, 0x06, 0x71, 0x3f, 0x23, 0xb1, 0xcc, 0x58, 0xc8, 0x8f, 0x04, 0xfa, 0xf8, 0x69, - 0x40, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x8a, 0x25, 0xd7, 0xad, 0x2b, 0x46, 0x7e, 0x41, 0x15, 0x42, - 0x1c, 0xb7, 0x10, 0x28, 0xde, 0x45, 0x87, 0x09, 0xcf, 0x43, 0x5d, 0x54, 0xcb, 0xfb, 0x74, 0x91, - 0xe6, 0xec, 0xe6, 0xd7, 0x48, 0xf5, 0xc8, 0x54, 0xdd, 0xb4, 0x41, 0x58, 0x70, 0x21, 0x62, 0xf3, - 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xdb, 0xf7, 0xaf, 0x5b, 0x56, 0x8e, 0xe9, 0xfb, 0xd7, - 0x14, 0x4b, 0x57, 0x52, 0x8d, 0x91, 0x0e, 0x2b, 0xfe, 0x38, 0xd9, 0xec, 0x07, 0xdb, 0x2d, 0x8f, - 0xe7, 0x73, 0x37, 0x63, 0x71, 0xa9, 0xbc, 0x6e, 0x05, 0x0c, 0x59, 0x8c, 0xd8, 0xf2, 0x04, 0x70, - 0x10, 0xc2, 0x3c, 0xcf, 0xbb, 0x3c, 0x17, 0x2c, 0x17, 0x58, 0x08, 0xf3, 0x8d, 0x69, 0x30, 0x14, - 0xc2, 0x28, 0x05, 0x30, 0x6e, 0xe5, 0x79, 0x10, 0x13, 0x27, 0xf1, 0x0c, 0xcd, 0xd8, 0xd4, 0x59, - 0x8f, 0x92, 0x87, 0xc6, 0x2d, 0xe0, 0x9c, 0x87, 0x7c, 0xae, 0x97, 0x71, 0x5c, 0x4e, 0xcd, 0xe9, - 0xc6, 0x64, 0xf0, 0x94, 0xb6, 0xe3, 0x93, 0xc4, 0x43, 0xbe, 0xb0, 0x06, 0x08, 0x3b, 0x87, 0xb3, - 0x78, 0x6a, 0x6a, 0x8a, 0xd4, 0x40, 0xca, 0x5b, 0x55, 0x5d, 0xef, 0x06, 0x81, 0x9f, 0x37, 0xe9, - 0x84, 0xf1, 0x80, 0x1f, 0x29, 0xef, 0xe3, 0x07, 0x82, 0x20, 0x7b, 0xab, 0xeb, 0xad, 0x76, 0x74, - 0x3b, 0xf9, 0x44, 0xef, 0x63, 0x87, 0x44, 0xf3, 0x00, 0x2e, 0x94, 0xbd, 0x11, 0x3c, 0x98, 0xa3, - 0xcd, 0x01, 0x6d, 0x68, 0x8e, 0x9a, 0xf3, 0xd7, 0x3e, 0x73, 0x14, 0x83, 0xb5, 0xcf, 0x9f, 0xe9, - 0x39, 0xba, 0x17, 0x8b, 0xb8, 0xce, 0xdb, 0xdf, 0xa4, 0xec, 0x46, 0x6f, 0x84, 0x91, 0xfa, 0x36, - 0xd4, 0x50, 0xbe, 0x78, 0x07, 0x76, 0xc5, 0xdb, 0xbd, 0xf9, 0x80, 0x6f, 0xbd, 0x43, 0xe8, 0xf4, - 0x0d, 0xb6, 0x0a, 0xdb, 0xbd, 0xf9, 0x80, 0x6f, 0xfd, 0x46, 0x6f, 0xa7, 0x6f, 0xf0, 0x5a, 0xef, - 0x76, 0x6f, 0x5e, 0xfb, 0xfe, 0xcb, 0x66, 0xe2, 0xba, 0xce, 0xeb, 0x3c, 0x2c, 0x11, 0xe9, 0x82, - 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, 0x74, 0x92, 0x56, 0x71, 0x3e, 0x03, 0x83, 0x95, 0xe2, - 0x94, 0x57, 0xa9, 0x7c, 0x48, 0xff, 0xbc, 0x87, 0xd1, 0x06, 0x0e, 0x6d, 0x9a, 0x42, 0x4a, 0xf6, - 0x71, 0xa3, 0x87, 0xda, 0x1b, 0xc5, 0x9b, 0x01, 0x7b, 0xed, 0x8b, 0xc5, 0x5b, 0x3d, 0x69, 0xfb, - 0xe0, 0xcf, 0x63, 0xdc, 0x27, 0x8e, 0xa1, 0x5e, 0x45, 0x1f, 0x3a, 0x3e, 0xed, 0xaf, 0xa0, 0xdd, - 0xff, 0x75, 0xb3, 0xaf, 0x80, 0xfe, 0xf5, 0x24, 0x78, 0xd6, 0xc7, 0x22, 0x98, 0x08, 0xcf, 0x6f, - 0xa5, 0xa3, 0x0b, 0xf2, 0xf7, 0xcd, 0x06, 0xba, 0x41, 0xe5, 0x7b, 0x15, 0xaf, 0xcb, 0x09, 0x2b, - 0xf5, 0x9c, 0x08, 0x75, 0xab, 0x85, 0xe1, 0xcc, 0x78, 0x71, 0x4b, 0x2d, 0xe7, 0xa3, 0x40, 0x1e, - 0xac, 0xdf, 0xff, 0x73, 0xca, 0x13, 0xb2, 0xec, 0xd0, 0xb0, 0x40, 0x5f, 0xdc, 0x56, 0x8d, 0x9a, - 0x2b, 0x0e, 0x2c, 0xbf, 0x31, 0xf0, 0xbc, 0xa7, 0x61, 0xef, 0xab, 0x03, 0x9f, 0xdf, 0x4e, 0x49, - 0x97, 0xe5, 0x3f, 0x56, 0xa2, 0x47, 0x1e, 0x6b, 0x9f, 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x07, 0xec, - 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xfb, 0xcb, 0x29, 0xdb, 0x2f, 0xe8, 0x78, 0x2a, 0xfb, 0x69, 0x26, - 0x58, 0xd9, 0xfe, 0x82, 0x8e, 0x6f, 0x57, 0x51, 0x43, 0xfa, 0x0b, 0x3a, 0x01, 0xdc, 0xf9, 0x82, - 0x0e, 0xe2, 0x19, 0xfd, 0x82, 0x0e, 0x6a, 0x2d, 0xf8, 0x05, 0x9d, 0xb0, 0x06, 0x15, 0xde, 0x9b, - 0x22, 0xa8, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, 0x67, 0xb7, 0x51, 0x21, 0x16, 0x38, 0xc5, - 0xc9, 0x7b, 0x6e, 0x3d, 0xda, 0xd4, 0xbb, 0xeb, 0xb6, 0xdd, 0x9b, 0xd7, 0xbe, 0x7f, 0xaa, 0x77, - 0x37, 0x26, 0x9c, 0xf3, 0x52, 0x7e, 0x3d, 0x69, 0x23, 0x14, 0x9e, 0x6b, 0x0b, 0x6e, 0xcf, 0x6f, - 0xf6, 0x83, 0x89, 0xea, 0xd6, 0x84, 0xee, 0xf4, 0x61, 0x97, 0x21, 0xd0, 0xe5, 0xdb, 0xbd, 0x79, - 0x62, 0x19, 0x51, 0xbe, 0x55, 0x6f, 0xf7, 0x30, 0xe6, 0xf7, 0xf5, 0xd3, 0xfe, 0x0a, 0xda, 0xfd, - 0x42, 0xa7, 0x8d, 0xae, 0x7b, 0xd9, 0xcf, 0x5b, 0x5d, 0xa6, 0x46, 0x5e, 0x37, 0x0f, 0xfb, 0xe2, - 0xa1, 0x04, 0xc2, 0x5d, 0x42, 0xbb, 0x12, 0x08, 0x74, 0x19, 0xfd, 0xfc, 0x76, 0x4a, 0xba, 0x2c, - 0xff, 0xb4, 0x12, 0xdd, 0x25, 0xcb, 0xa2, 0xc7, 0xc1, 0x17, 0x7d, 0x2d, 0x83, 0xf1, 0xf0, 0xe5, - 0xad, 0xf5, 0x74, 0xa1, 0xfe, 0x75, 0x25, 0xba, 0x17, 0x28, 0x94, 0x1a, 0x20, 0xb7, 0xb0, 0xee, - 0x0f, 0x94, 0x1f, 0xde, 0x5e, 0x91, 0x5a, 0xee, 0x5d, 0x7c, 0xd4, 0xfe, 0xb4, 0x4c, 0xc0, 0xf6, - 0x88, 0xfe, 0xb4, 0x4c, 0xb7, 0x16, 0x3c, 0xe4, 0x89, 0x2f, 0x9a, 0x4d, 0x17, 0x7a, 0xc8, 0x23, - 0x6f, 0xa8, 0x81, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, 0x79, 0xf5, 0xae, 0x88, 0xf3, 0x09, 0xed, - 0x44, 0xc9, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, 0xd2, 0x33, 0xde, 0x6c, 0xa4, 0x1e, 0x53, - 0xfa, 0x06, 0x09, 0x1e, 0x8e, 0xb5, 0x50, 0xc2, 0x9b, 0xce, 0x1a, 0x43, 0xde, 0x40, 0xb2, 0xf8, - 0xa4, 0x0f, 0x0a, 0x52, 0x74, 0xe3, 0xcd, 0x9c, 0xb9, 0x6f, 0x86, 0xac, 0xb4, 0xce, 0xdd, 0xb7, - 0x7a, 0xd2, 0x84, 0xdb, 0x11, 0x13, 0x5f, 0xb1, 0x78, 0xc2, 0xca, 0xa0, 0x5b, 0x43, 0xf5, 0x72, - 0xeb, 0xd2, 0x98, 0xdb, 0x5d, 0x9e, 0xcd, 0x67, 0xb9, 0xee, 0x4c, 0xd2, 0xad, 0x4b, 0x75, 0xbb, - 0x05, 0x34, 0x3c, 0x16, 0xb4, 0x6e, 0x65, 0x7a, 0xf9, 0x24, 0x6c, 0xc6, 0xcb, 0x2a, 0x37, 0x7a, - 0xb1, 0x74, 0x3d, 0xf5, 0x30, 0xea, 0xa8, 0x27, 0x18, 0x49, 0x5b, 0x3d, 0x69, 0x78, 0x3e, 0xe7, - 0xb8, 0x35, 0xe3, 0x69, 0xbb, 0xc3, 0x56, 0x6b, 0x48, 0x3d, 0xed, 0xaf, 0x00, 0x4f, 0x43, 0xf5, - 0xa8, 0x3a, 0x4a, 0x2b, 0xb1, 0x9f, 0x66, 0xd9, 0x60, 0x23, 0x30, 0x4c, 0x1a, 0x28, 0x78, 0x1a, - 0x8a, 0xc0, 0xc4, 0x48, 0x6e, 0x4e, 0x0f, 0xf3, 0x41, 0x97, 0x1d, 0x49, 0xf5, 0x1a, 0xc9, 0x2e, - 0x0d, 0x4e, 0xb4, 0x9c, 0xa6, 0x36, 0xb5, 0x1d, 0x86, 0x1b, 0xae, 0x55, 0xe1, 0xed, 0xde, 0x3c, - 0x78, 0xdc, 0x2e, 0x29, 0xb9, 0xb2, 0x3c, 0xa4, 0x4c, 0x78, 0x2b, 0xc9, 0xa3, 0x0e, 0x0a, 0x9c, - 0x0a, 0xaa, 0x69, 0xf4, 0x36, 0x9d, 0x4c, 0x99, 0x40, 0x9f, 0x14, 0xb9, 0x40, 0xf0, 0x49, 0x11, - 0x00, 0x41, 0xd7, 0xa9, 0xdf, 0xcd, 0x71, 0xe8, 0xe1, 0x04, 0xeb, 0x3a, 0xad, 0xec, 0x50, 0xa1, - 0xae, 0x43, 0x69, 0x10, 0x0d, 0x8c, 0x5b, 0xfd, 0x6a, 0xfc, 0x93, 0x90, 0x19, 0xf0, 0x7e, 0xfc, - 0x46, 0x2f, 0x16, 0xac, 0x28, 0xd6, 0x61, 0x3a, 0x4b, 0x05, 0xb6, 0xa2, 0x38, 0x36, 0x6a, 0x24, - 0xb4, 0xa2, 0xb4, 0x51, 0xaa, 0x7a, 0x75, 0x8e, 0x70, 0x38, 0x09, 0x57, 0x4f, 0x31, 0xfd, 0xaa, - 0x67, 0xd8, 0xd6, 0x83, 0xcd, 0xdc, 0x0c, 0x19, 0x71, 0xa5, 0x37, 0xcb, 0xc8, 0xd8, 0x96, 0xaf, - 0x4c, 0x42, 0x30, 0x14, 0x75, 0x28, 0x05, 0x78, 0x60, 0x5f, 0x73, 0xcd, 0xb3, 0xd7, 0xa2, 0x60, - 0x71, 0x19, 0xe7, 0x09, 0xba, 0x39, 0x95, 0x06, 0x5b, 0x64, 0x68, 0x73, 0x4a, 0x6a, 0x80, 0xc7, - 0xe6, 0xfe, 0xcb, 0x8e, 0xc8, 0x54, 0x30, 0x6f, 0x15, 0xfa, 0xef, 0x3a, 0x3e, 0xee, 0x41, 0xc2, - 0xc7, 0xe6, 0x0d, 0x60, 0x0e, 0xbe, 0x95, 0xd3, 0xcf, 0x02, 0xa6, 0x7c, 0x34, 0xb4, 0x11, 0xa6, - 0x55, 0xc0, 0xa0, 0x36, 0x09, 0x2e, 0x13, 0x3f, 0x61, 0x4b, 0x6c, 0x50, 0xdb, 0xfc, 0x54, 0x22, - 0xa1, 0x41, 0xdd, 0x46, 0x41, 0x9e, 0xe9, 0xee, 0x83, 0x56, 0x03, 0xfa, 0xee, 0xd6, 0x67, 0xad, - 0x93, 0x03, 0x33, 0x67, 0x2f, 0x5d, 0x78, 0xcf, 0x09, 0x90, 0x82, 0xee, 0xa5, 0x0b, 0xfc, 0x31, - 0xc1, 0x46, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, 0xd7, 0x3c, 0x2b, 0x47, 0x8a, 0x2b, 0xe5, - 0xad, 0x87, 0xe5, 0xeb, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, 0x5a, 0xf2, 0x84, 0x55, 0x95, 0xfe, 0xde, - 0x9e, 0x7f, 0xc3, 0x48, 0xcb, 0x86, 0xe0, 0x6b, 0x7b, 0x0f, 0xc3, 0x90, 0xed, 0x19, 0x2d, 0xb2, - 0x5f, 0xa0, 0x59, 0x45, 0x35, 0xdb, 0x1f, 0x9f, 0x59, 0xeb, 0xe4, 0xec, 0xf4, 0xd2, 0x52, 0xf7, - 0x93, 0x33, 0xeb, 0xa8, 0x3a, 0xf6, 0xb5, 0x99, 0xc7, 0x3d, 0x48, 0xed, 0xea, 0xab, 0xe8, 0xfd, - 0x23, 0x3e, 0x1d, 0xb1, 0x7c, 0x32, 0xf8, 0x81, 0x7f, 0x85, 0x96, 0x4f, 0x87, 0xf5, 0xcf, 0xc6, - 0xe8, 0x1d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb1, 0x8b, 0xf9, 0x74, 0x24, 0x62, 0x01, 0x2e, 0x01, - 0xca, 0xdf, 0x87, 0xb5, 0x80, 0xb8, 0x04, 0xe8, 0x01, 0xc0, 0xde, 0xb8, 0x64, 0x0c, 0xb5, 0x57, - 0x0b, 0x82, 0xf6, 0x34, 0x60, 0xb3, 0x08, 0x63, 0xaf, 0x4e, 0xd4, 0xe1, 0xa5, 0x3d, 0xab, 0x23, - 0xa5, 0x44, 0x16, 0xd1, 0xa6, 0xec, 0xe0, 0x56, 0xd5, 0x97, 0x5f, 0x00, 0x99, 0xcf, 0x66, 0x71, - 0xb9, 0x04, 0x83, 0x5b, 0xd7, 0xd2, 0x01, 0x88, 0xc1, 0x8d, 0x82, 0x76, 0xd6, 0x36, 0xcd, 0x9c, - 0x5c, 0x1f, 0xf0, 0x92, 0xcf, 0x45, 0x9a, 0x33, 0xf8, 0x15, 0x08, 0xd3, 0xa0, 0x2e, 0x43, 0xcc, - 0x5a, 0x8a, 0xb5, 0x59, 0xae, 0x24, 0xd4, 0x7d, 0x42, 0xf9, 0x15, 0xde, 0x4a, 0xf0, 0x12, 0x3e, - 0x4f, 0x54, 0x56, 0x20, 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xfa, 0xfe, 0x34, 0xcd, 0xa7, 0x68, 0xdf, - 0x9f, 0xba, 0xdf, 0xb0, 0xbc, 0x47, 0x03, 0x76, 0x42, 0xa9, 0x46, 0x53, 0x13, 0x40, 0xbf, 0xcb, - 0x89, 0x36, 0xba, 0x4b, 0x10, 0x13, 0x0a, 0x27, 0x81, 0xab, 0xd7, 0x05, 0xcb, 0xd9, 0xa4, 0xb9, - 0x35, 0x87, 0xb9, 0xf2, 0x88, 0xa0, 0x2b, 0x48, 0xda, 0x58, 0x24, 0xe5, 0x67, 0xf3, 0xfc, 0xb4, - 0xe4, 0x97, 0x69, 0xc6, 0x4a, 0x10, 0x8b, 0x94, 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, - 0x17, 0x52, 0xea, 0x7d, 0x4a, 0x7a, 0x5c, 0xc6, 0x09, 0xbc, 0x7e, 0xa1, 0x6c, 0xb4, 0x31, 0xe2, - 0x64, 0x30, 0x80, 0x3b, 0x89, 0x8e, 0x72, 0x9d, 0x2f, 0xe5, 0xf8, 0xd0, 0xef, 0x12, 0xca, 0x2f, - 0x3b, 0x56, 0x20, 0xd1, 0xd1, 0xe6, 0x30, 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, - 0x89, 0xbe, 0x56, 0x04, 0x96, 0x12, 0x65, 0xa3, 0x11, 0x12, 0x4b, 0x49, 0x0b, 0x02, 0x01, 0xa9, - 0x99, 0x06, 0x53, 0x34, 0x20, 0x19, 0x69, 0x30, 0x20, 0xb9, 0x94, 0x0d, 0x14, 0x87, 0x79, 0x2a, - 0xd2, 0x38, 0x1b, 0x31, 0x71, 0x1a, 0x97, 0xf1, 0x8c, 0x09, 0x56, 0xc2, 0x40, 0xa1, 0x91, 0xa1, - 0xc7, 0x10, 0x81, 0x82, 0x62, 0xb5, 0xc3, 0xdf, 0x8b, 0x3e, 0xac, 0xd7, 0x7d, 0x96, 0xeb, 0x3f, - 0x1a, 0xf1, 0x4a, 0xfe, 0xb5, 0x99, 0xc1, 0x47, 0xc6, 0xc6, 0x48, 0x94, 0x2c, 0x9e, 0x35, 0xb6, - 0x3f, 0x30, 0xbf, 0x4b, 0xf0, 0xe9, 0x4a, 0x3d, 0x9e, 0x4f, 0xb8, 0x48, 0x2f, 0xeb, 0x6d, 0xb6, - 0x7e, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0c, 0x7c, 0x17, 0x02, 0xe3, 0x6c, 0x9c, 0x76, 0xa5, - 0x67, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, 0x93, 0xd3, 0x15, - 0x8f, 0x59, 0xb8, 0x32, 0x63, 0xd6, 0xaf, 0x32, 0x63, 0xef, 0xa5, 0x8c, 0x2c, 0xfa, 0xf0, 0x98, - 0xcd, 0x2e, 0x58, 0x59, 0x5d, 0xa5, 0xc5, 0x41, 0x9d, 0x70, 0xc5, 0x62, 0x0e, 0x5f, 0x5b, 0xb4, - 0xc4, 0xd0, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x61, 0x75, 0x12, 0xcf, 0x98, - 0xfc, 0xca, 0x05, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, 0xbc, 0xdf, 0x65, - 0x99, 0x33, 0x36, 0xad, 0x47, 0x58, 0x79, 0x1a, 0x2f, 0x67, 0x2c, 0x17, 0xda, 0x24, 0x38, 0x93, - 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, 0x9f, 0xf2, 0x52, - 0xa8, 0x3f, 0x09, 0x73, 0x5e, 0x66, 0x20, 0x34, 0xf9, 0x8d, 0xea, 0x91, 0x44, 0x68, 0x0a, 0x6b, - 0x38, 0xdf, 0x52, 0xf7, 0xca, 0xf0, 0x86, 0x95, 0x66, 0x9c, 0xbc, 0x9a, 0xc5, 0x69, 0xa6, 0x47, - 0xc3, 0x8f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0x5b, 0xea, 0x7d, 0x75, 0x9d, 0xaf, 0xcf, 0x87, 0x4b, - 0x08, 0x1e, 0x11, 0x74, 0xd8, 0x27, 0x1e, 0x11, 0x74, 0x6b, 0xd9, 0x9d, 0xbb, 0x65, 0x25, 0xb7, - 0x94, 0xc4, 0x2e, 0x9f, 0xc0, 0xf3, 0x42, 0xc7, 0x26, 0x00, 0x89, 0x9d, 0x7b, 0x50, 0xc1, 0xa6, - 0x06, 0x16, 0xdb, 0x4f, 0xf3, 0x38, 0x4b, 0x7f, 0x06, 0xd3, 0x7a, 0xc7, 0x4e, 0x43, 0x10, 0xa9, - 0x01, 0x4e, 0x62, 0xae, 0x0e, 0x98, 0x18, 0xa7, 0x75, 0xe8, 0x5f, 0x0f, 0xb4, 0x9b, 0x24, 0xba, - 0x5d, 0x39, 0xa4, 0xf3, 0xbd, 0x54, 0xd8, 0xac, 0x3b, 0x45, 0x31, 0xaa, 0x57, 0xd5, 0x33, 0x96, - 0xb0, 0xb4, 0x10, 0x83, 0x17, 0xe1, 0xb6, 0x02, 0x38, 0x71, 0xd1, 0xa2, 0x87, 0x9a, 0xf3, 0xf8, - 0xbe, 0x8e, 0x25, 0x23, 0xf5, 0xb7, 0xd2, 0xce, 0x2b, 0x56, 0xea, 0x44, 0xe3, 0x80, 0x09, 0x30, - 0x3b, 0x1d, 0x6e, 0xe8, 0x80, 0x75, 0x45, 0x89, 0xd9, 0x19, 0xd6, 0xb0, 0x87, 0x7d, 0x0e, 0x77, - 0xc6, 0x2a, 0x9e, 0x2d, 0x98, 0xbc, 0x6f, 0xb8, 0x49, 0x1a, 0x73, 0x28, 0xe2, 0xb0, 0x8f, 0xa6, - 0x6d, 0xb6, 0xd6, 0x76, 0xbb, 0x93, 0x2f, 0x0f, 0xe1, 0x95, 0x09, 0xc4, 0x92, 0xc4, 0x88, 0x6c, - 0x2d, 0x80, 0x3b, 0x87, 0xe1, 0x25, 0x8f, 0x27, 0x49, 0x5c, 0x89, 0xd3, 0x78, 0x99, 0xf1, 0x78, - 0x22, 0xd7, 0x75, 0x78, 0x18, 0xde, 0x30, 0x43, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, 0xce, - 0xe4, 0x9f, 0x80, 0xd3, 0x77, 0x39, 0x61, 0x76, 0x26, 0xcb, 0x0b, 0xef, 0x71, 0x3e, 0x0c, 0x43, - 0xf6, 0x1d, 0x34, 0x25, 0x92, 0x69, 0xc8, 0x3d, 0x4c, 0xc7, 0x4b, 0x40, 0xee, 0x07, 0x08, 0xfb, - 0x5d, 0x0a, 0xf5, 0x7b, 0xf3, 0x57, 0x4c, 0x84, 0xfe, 0xaa, 0xf4, 0x26, 0xa6, 0xeb, 0x42, 0x43, - 0xf7, 0x63, 0x73, 0x5b, 0x3d, 0x69, 0x9b, 0x66, 0xee, 0x5e, 0xc5, 0x62, 0x67, 0x32, 0x39, 0x66, - 0x15, 0xf2, 0x42, 0x79, 0x2d, 0x1c, 0x5a, 0x29, 0x91, 0x66, 0xb6, 0x29, 0x3b, 0xd0, 0x6b, 0xd9, - 0xab, 0x49, 0x2a, 0xb4, 0xac, 0xb9, 0x21, 0xbd, 0xd9, 0x36, 0xd0, 0xa6, 0x88, 0x5a, 0xd1, 0xb4, - 0x8d, 0xe5, 0x35, 0x33, 0xe6, 0xd3, 0x69, 0xc6, 0x34, 0x74, 0xc6, 0x62, 0xf5, 0x51, 0xbd, 0xed, - 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, 0xa6, 0x91, 0x35, 0xa6, 0x1e, 0x49, 0x35, 0x0d, - 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0x7c, 0xc0, 0x9a, - 0x96, 0x80, 0x9f, 0x20, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, 0x78, - 0x78, 0xb9, 0x3c, 0x9c, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, 0x58, 0xbf, 0xeb, - 0xcc, 0xb9, 0xd7, 0x51, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, 0xa3, 0x14, 0xfc, - 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x56, 0xbb, 0x30, 0x1b, 0x97, 0xcc, 0x7e, - 0x52, 0x5e, 0x59, 0xc2, 0xbf, 0xa6, 0xaf, 0x84, 0x44, 0x5c, 0x6a, 0x41, 0xca, 0xf6, 0xcb, 0xfb, - 0xff, 0xf5, 0xcd, 0x9d, 0x95, 0x5f, 0x7c, 0x73, 0x67, 0xe5, 0x7f, 0xbe, 0xb9, 0xb3, 0xf2, 0xf3, - 0x6f, 0xef, 0xbc, 0xf7, 0x8b, 0x6f, 0xef, 0xbc, 0xf7, 0xdf, 0xdf, 0xde, 0x79, 0xef, 0xeb, 0xf7, - 0xf5, 0x9f, 0x06, 0xbd, 0xf8, 0x7f, 0xf2, 0x0f, 0x7c, 0x3e, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x9c, 0x16, 0xfd, 0x01, 0x3e, 0x74, 0x00, 0x00, + // 5285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, + 0x52, 0xc0, 0xaf, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, + 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x02, 0x8f, 0x3d, 0xf6, 0x9a, + 0xb3, 0x3d, 0xc6, 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0xee, 0x4a, 0xb7, 0x0b, 0x57, 0x57, 0xd6, + 0x55, 0x65, 0xb7, 0xa7, 0x0f, 0x81, 0x38, 0x81, 0x40, 0x20, 0x10, 0x27, 0xfe, 0x89, 0x37, 0x24, + 0x3e, 0x01, 0x1f, 0x83, 0xc7, 0x7b, 0xe4, 0x11, 0xed, 0xbe, 0xf1, 0x29, 0x50, 0x65, 0x66, 0xe5, + 0x9f, 0xa8, 0x88, 0xac, 0xf2, 0xf2, 0x34, 0xa3, 0x8e, 0x5f, 0x44, 0x64, 0x56, 0x66, 0x46, 0x46, + 0x66, 0x65, 0xa5, 0xa3, 0xbb, 0xc5, 0xc5, 0x56, 0x51, 0x72, 0xc1, 0xab, 0xad, 0x8a, 0x95, 0x8b, + 0x74, 0xc2, 0x9a, 0x7f, 0x47, 0xf2, 0xe7, 0xe1, 0x5b, 0x71, 0xbe, 0x14, 0xcb, 0x82, 0xbd, 0xff, + 0x9e, 0x25, 0x27, 0x7c, 0x36, 0x8b, 0xf3, 0xa4, 0x52, 0xc8, 0xfb, 0xef, 0x5a, 0x09, 0x5b, 0xb0, + 0x5c, 0xe8, 0xdf, 0x9f, 0xfe, 0xf4, 0x7f, 0x07, 0xd1, 0xdb, 0x3b, 0x59, 0xca, 0x72, 0xb1, 0xa3, + 0x35, 0x86, 0x5f, 0x46, 0xdf, 0xd9, 0x2e, 0x8a, 0x7d, 0x26, 0x5e, 0xb1, 0xb2, 0x4a, 0x79, 0x3e, + 0xfc, 0x70, 0xa4, 0x1d, 0x8c, 0x4e, 0x8b, 0xc9, 0x68, 0xbb, 0x28, 0x46, 0x56, 0x38, 0x3a, 0x65, + 0x3f, 0x9e, 0xb3, 0x4a, 0xbc, 0xff, 0x20, 0x0c, 0x55, 0x05, 0xcf, 0x2b, 0x36, 0xbc, 0x8c, 0x7e, + 0x6d, 0xbb, 0x28, 0xc6, 0x4c, 0xec, 0xb2, 0xba, 0x02, 0x63, 0x11, 0x0b, 0x36, 0x5c, 0x6d, 0xa9, + 0xfa, 0x80, 0xf1, 0xb1, 0xd6, 0x0d, 0x6a, 0x3f, 0x67, 0xd1, 0xb7, 0x6b, 0x3f, 0x57, 0x73, 0x91, + 0xf0, 0x9b, 0x7c, 0xf8, 0x41, 0x5b, 0x51, 0x8b, 0x8c, 0xed, 0xfb, 0x21, 0x44, 0x5b, 0x7d, 0x1d, + 0xfd, 0xf2, 0xeb, 0x38, 0xcb, 0x98, 0xd8, 0x29, 0x59, 0x5d, 0x70, 0x5f, 0x47, 0x89, 0x46, 0x4a, + 0x66, 0xec, 0x7e, 0x18, 0x64, 0xb4, 0xe1, 0x2f, 0xa3, 0xef, 0x28, 0xc9, 0x29, 0x9b, 0xf0, 0x05, + 0x2b, 0x87, 0xa8, 0x96, 0x16, 0x12, 0x8f, 0xbc, 0x05, 0x41, 0xdb, 0x3b, 0x3c, 0x5f, 0xb0, 0x52, + 0xe0, 0xb6, 0xb5, 0x30, 0x6c, 0xdb, 0x42, 0xda, 0xf6, 0xdf, 0x0c, 0xa2, 0xef, 0x6d, 0x4f, 0x26, + 0x7c, 0x9e, 0x8b, 0x43, 0x3e, 0x89, 0xb3, 0xc3, 0x34, 0xbf, 0x3e, 0x66, 0x37, 0x3b, 0x57, 0x35, + 0x9f, 0x4f, 0xd9, 0xf0, 0x99, 0xff, 0x54, 0x15, 0x3a, 0x32, 0xec, 0xc8, 0x85, 0x8d, 0xef, 0x8f, + 0x6f, 0xa7, 0xa4, 0xcb, 0xf2, 0x0f, 0x83, 0xe8, 0x0e, 0x2c, 0xcb, 0x98, 0x67, 0x0b, 0x66, 0x4b, + 0xf3, 0x49, 0x87, 0x61, 0x1f, 0x37, 0xe5, 0xf9, 0xf4, 0xb6, 0x6a, 0xba, 0x44, 0x59, 0xf4, 0x8e, + 0xdb, 0x5d, 0xc6, 0xac, 0x92, 0xc3, 0xe9, 0x11, 0xdd, 0x23, 0x34, 0x62, 0x3c, 0x3f, 0xee, 0x83, + 0x6a, 0x6f, 0x69, 0x34, 0xd4, 0xde, 0x32, 0x5e, 0x19, 0x67, 0x6b, 0xa8, 0x05, 0x87, 0x30, 0xbe, + 0x1e, 0xf5, 0x20, 0xb5, 0xab, 0x3f, 0x8a, 0x7e, 0xe5, 0x35, 0x2f, 0xaf, 0xab, 0x22, 0x9e, 0x30, + 0x3d, 0x14, 0x1e, 0xfa, 0xda, 0x8d, 0x14, 0x8e, 0x86, 0x95, 0x2e, 0xcc, 0xe9, 0xb4, 0x8d, 0xf0, + 0x65, 0xc1, 0x60, 0x0c, 0xb2, 0x8a, 0xb5, 0x90, 0xea, 0xb4, 0x10, 0xd2, 0xb6, 0xaf, 0xa3, 0xa1, + 0xb5, 0x7d, 0xf1, 0xc7, 0x6c, 0x22, 0xb6, 0x93, 0x04, 0xb6, 0x8a, 0xd5, 0x95, 0xc4, 0x68, 0x3b, + 0x49, 0xa8, 0x56, 0xc1, 0x51, 0xed, 0xec, 0x26, 0x7a, 0x17, 0x38, 0x3b, 0x4c, 0x2b, 0xe9, 0x70, + 0x33, 0x6c, 0x45, 0x63, 0xc6, 0xe9, 0xa8, 0x2f, 0xae, 0x1d, 0xff, 0xf9, 0x20, 0xfa, 0x2e, 0xe2, + 0xf9, 0x94, 0xcd, 0xf8, 0x82, 0x0d, 0x9f, 0x74, 0x5b, 0x53, 0xa4, 0xf1, 0xff, 0xd1, 0x2d, 0x34, + 0x90, 0x6e, 0x32, 0x66, 0x19, 0x9b, 0x08, 0xb2, 0x9b, 0x28, 0x71, 0x67, 0x37, 0x31, 0x98, 0x33, + 0xc2, 0x1a, 0xe1, 0x3e, 0x13, 0x3b, 0xf3, 0xb2, 0x64, 0xb9, 0x20, 0xdb, 0xd2, 0x22, 0x9d, 0x6d, + 0xe9, 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x4a, 0xdc, 0x59, 0x1f, 0x83, + 0x69, 0x0f, 0x93, 0xe8, 0x57, 0x9d, 0x27, 0x26, 0x0e, 0xf2, 0x4b, 0x3e, 0xa4, 0x9f, 0x85, 0x94, + 0x1b, 0x1f, 0xab, 0x9d, 0x1c, 0x52, 0x8d, 0x17, 0x6f, 0x0a, 0x5e, 0xd2, 0xcd, 0xa2, 0xc4, 0x9d, + 0xd5, 0x30, 0x98, 0xf6, 0xf0, 0x87, 0xd1, 0xdb, 0x3a, 0x4a, 0x36, 0xf3, 0xd9, 0x03, 0x34, 0x84, + 0xc2, 0x09, 0xed, 0x61, 0x07, 0x65, 0x83, 0x83, 0x96, 0xe9, 0xe0, 0xf3, 0x21, 0xaa, 0x07, 0x42, + 0xcf, 0x83, 0x30, 0xd4, 0xb2, 0xbd, 0xcb, 0x32, 0x46, 0xda, 0x56, 0xc2, 0x0e, 0xdb, 0x06, 0xd2, + 0xb6, 0xcb, 0xe8, 0x37, 0xcc, 0x63, 0xa9, 0xe7, 0x51, 0x29, 0xaf, 0x83, 0xf4, 0x3a, 0x51, 0x6f, + 0x17, 0x32, 0xbe, 0x36, 0xfa, 0xc1, 0xad, 0xfa, 0xe8, 0x11, 0x88, 0xd7, 0x07, 0x8c, 0xbf, 0x07, + 0x61, 0x48, 0xdb, 0xfe, 0xdb, 0x41, 0xf4, 0x7d, 0x2d, 0x7b, 0x91, 0xc7, 0x17, 0x19, 0x93, 0x53, + 0xe2, 0x31, 0x13, 0x37, 0xbc, 0xbc, 0x1e, 0x2f, 0xf3, 0x09, 0x31, 0xfd, 0xe3, 0x70, 0xc7, 0xf4, + 0x4f, 0x2a, 0x39, 0x19, 0x9f, 0xae, 0xa8, 0xe0, 0x05, 0xcc, 0xf8, 0x9a, 0x1a, 0x08, 0x5e, 0x50, + 0x19, 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xfb, 0x21, + 0xc4, 0x86, 0xad, 0xa6, 0x03, 0xf3, 0xfc, 0x32, 0x9d, 0x9e, 0x17, 0x49, 0xdd, 0x8d, 0x1f, 0xe1, + 0x3d, 0xd4, 0x41, 0x88, 0xb0, 0x45, 0xa0, 0xda, 0xdb, 0xdf, 0xdb, 0xc4, 0x48, 0x0f, 0xa5, 0xbd, + 0x92, 0xcf, 0x0e, 0xd9, 0x34, 0x9e, 0x2c, 0xf5, 0xf8, 0xff, 0x38, 0x34, 0xf0, 0x20, 0x6d, 0x0a, + 0xf1, 0xc9, 0x2d, 0xb5, 0x74, 0x79, 0xfe, 0x7d, 0x10, 0x3d, 0x68, 0xaa, 0x7f, 0x15, 0xe7, 0x53, + 0xa6, 0xdb, 0x53, 0x95, 0x7e, 0x3b, 0x4f, 0x4e, 0x59, 0x25, 0xe2, 0x52, 0x0c, 0x7f, 0x80, 0x57, + 0x32, 0xa4, 0x63, 0xca, 0xf6, 0xc3, 0x6f, 0xa4, 0x6b, 0x5b, 0x7d, 0x5c, 0x07, 0x36, 0x1d, 0x02, + 0xfc, 0x56, 0x97, 0x12, 0x18, 0x00, 0xee, 0x87, 0x10, 0xdb, 0xea, 0x52, 0x70, 0x90, 0x2f, 0x52, + 0xc1, 0xf6, 0x59, 0xce, 0xca, 0x76, 0xab, 0x2b, 0x55, 0x1f, 0x21, 0x5a, 0x9d, 0x40, 0x6d, 0xb0, + 0xf1, 0xbc, 0x99, 0xc9, 0x71, 0x3d, 0x60, 0xa4, 0x35, 0x3d, 0x6e, 0xf4, 0x83, 0xed, 0xea, 0xce, + 0xf1, 0x79, 0xca, 0x16, 0xfc, 0x1a, 0xae, 0xee, 0x5c, 0x13, 0x0a, 0x20, 0x56, 0x77, 0x28, 0x68, + 0x67, 0x30, 0xc7, 0xcf, 0xab, 0x94, 0xdd, 0x80, 0x19, 0xcc, 0x55, 0xae, 0xc5, 0xc4, 0x0c, 0x86, + 0x60, 0xda, 0xc3, 0x71, 0xf4, 0x4b, 0x52, 0xf8, 0xfb, 0x3c, 0xcd, 0x87, 0x77, 0x11, 0xa5, 0x5a, + 0x60, 0xac, 0xde, 0xa3, 0x01, 0x50, 0xe2, 0xfa, 0xd7, 0x9d, 0x38, 0x9f, 0xb0, 0x0c, 0x2d, 0xb1, + 0x15, 0x07, 0x4b, 0xec, 0x61, 0x36, 0x75, 0x90, 0xc2, 0x3a, 0x7e, 0x8d, 0xaf, 0xe2, 0x32, 0xcd, + 0xa7, 0x43, 0x4c, 0xd7, 0x91, 0x13, 0xa9, 0x03, 0xc6, 0x81, 0x2e, 0xac, 0x15, 0xb7, 0x8b, 0xa2, + 0xac, 0xc3, 0x22, 0xd6, 0x85, 0x7d, 0x24, 0xd8, 0x85, 0x5b, 0x28, 0xee, 0x6d, 0x97, 0x4d, 0xb2, + 0x34, 0x0f, 0x7a, 0xd3, 0x48, 0x1f, 0x6f, 0x16, 0x05, 0x9d, 0xf7, 0x90, 0xc5, 0x0b, 0xd6, 0xd4, + 0x0c, 0x7b, 0x32, 0x2e, 0x10, 0xec, 0xbc, 0x00, 0xb4, 0xeb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x59, + 0xfd, 0x80, 0x59, 0x3d, 0xaf, 0x0d, 0x31, 0x7d, 0x8f, 0x20, 0xd6, 0x69, 0x38, 0xa9, 0x5d, 0xcd, + 0xa3, 0x77, 0xa5, 0xfc, 0x24, 0x2e, 0x45, 0x3a, 0x49, 0x8b, 0x38, 0x6f, 0xf2, 0x7f, 0x6c, 0x5c, + 0xb7, 0x28, 0xe3, 0x72, 0xb3, 0x27, 0xad, 0xdd, 0xfe, 0xeb, 0x20, 0xfa, 0x00, 0xfa, 0x3d, 0x61, + 0xe5, 0x2c, 0x95, 0xcb, 0xc8, 0x4a, 0x05, 0xe1, 0xe1, 0x67, 0x61, 0xa3, 0x2d, 0x05, 0x53, 0x9a, + 0xcf, 0x6f, 0xaf, 0xa8, 0x0b, 0xf6, 0x07, 0x51, 0xa4, 0x96, 0x2b, 0x72, 0x49, 0xe9, 0x8f, 0x5a, + 0xbd, 0x8e, 0xf1, 0xd6, 0x93, 0x1f, 0x04, 0x08, 0x3b, 0x55, 0xa8, 0xdf, 0xe5, 0x4a, 0x79, 0x88, + 0x6a, 0x48, 0x11, 0x31, 0x55, 0x00, 0x04, 0x16, 0x74, 0x7c, 0xc5, 0x6f, 0xf0, 0x82, 0xd6, 0x92, + 0x70, 0x41, 0x35, 0x61, 0xf7, 0xae, 0x74, 0x41, 0xb1, 0xbd, 0xab, 0xa6, 0x18, 0xa1, 0xbd, 0x2b, + 0xc8, 0x68, 0xc3, 0x3c, 0xfa, 0x75, 0xd7, 0xf0, 0x73, 0xce, 0xaf, 0x67, 0x71, 0x79, 0x3d, 0x7c, + 0x4c, 0x2b, 0x37, 0x8c, 0x71, 0xb4, 0xde, 0x8b, 0xb5, 0x61, 0xc1, 0x75, 0x58, 0x27, 0x1a, 0xe7, + 0x65, 0x06, 0xc2, 0x82, 0x67, 0x43, 0x23, 0x44, 0x58, 0x20, 0x50, 0x1b, 0xb9, 0x5d, 0x6f, 0x63, + 0x06, 0x57, 0x4b, 0x9e, 0xfa, 0x98, 0x51, 0xab, 0x25, 0x04, 0x83, 0x5d, 0x68, 0xbf, 0x8c, 0x8b, + 0x2b, 0xbc, 0x0b, 0x49, 0x51, 0xb8, 0x0b, 0x35, 0x08, 0x6c, 0xef, 0x31, 0x8b, 0xcb, 0xc9, 0x15, + 0xde, 0xde, 0x4a, 0x16, 0x6e, 0x6f, 0xc3, 0xc0, 0xf6, 0x56, 0x82, 0xd7, 0xa9, 0xb8, 0x3a, 0x62, + 0x22, 0xc6, 0xdb, 0xdb, 0x67, 0xc2, 0xed, 0xdd, 0x62, 0x6d, 0x26, 0xe3, 0x3a, 0x1c, 0xcf, 0x2f, + 0xaa, 0x49, 0x99, 0x5e, 0xb0, 0x61, 0xc0, 0x8a, 0x81, 0x88, 0x4c, 0x86, 0x84, 0xb5, 0xcf, 0x9f, + 0x0d, 0xa2, 0xbb, 0x4d, 0xb3, 0xf3, 0xaa, 0x52, 0x33, 0x2b, 0x70, 0xff, 0x09, 0xde, 0xbe, 0x04, + 0x4e, 0xec, 0x26, 0xf6, 0x50, 0x73, 0xa2, 0x2a, 0x5e, 0xa4, 0xf3, 0xbc, 0x32, 0x85, 0xfa, 0xac, + 0x8f, 0x75, 0x47, 0x81, 0x88, 0xaa, 0xbd, 0x14, 0xed, 0x84, 0xa6, 0xdb, 0xa7, 0x91, 0x1d, 0x24, + 0x15, 0x98, 0xd0, 0x9a, 0xe7, 0xed, 0x10, 0xc4, 0x84, 0x86, 0x93, 0xb0, 0x2b, 0xec, 0x97, 0x7c, + 0x5e, 0x54, 0x1d, 0x5d, 0x01, 0x40, 0xe1, 0xae, 0xd0, 0x86, 0xb5, 0xcf, 0x37, 0xd1, 0x6f, 0xba, + 0xdd, 0xcf, 0x7d, 0xd8, 0x9b, 0x74, 0x9f, 0xc2, 0x1e, 0xf1, 0xa8, 0x2f, 0x6e, 0x53, 0xba, 0xc6, + 0xb3, 0xd8, 0x65, 0x22, 0x4e, 0xb3, 0x6a, 0xb8, 0x82, 0xdb, 0x68, 0xe4, 0x44, 0x4a, 0x87, 0x71, + 0x30, 0xbe, 0xed, 0xce, 0x8b, 0x2c, 0x9d, 0xb4, 0xf7, 0x72, 0xb5, 0xae, 0x11, 0x87, 0xe3, 0x9b, + 0x8b, 0xc1, 0x78, 0x3d, 0x66, 0x42, 0xfd, 0xe7, 0x6c, 0x59, 0x30, 0x3c, 0x5e, 0x7b, 0x48, 0x38, + 0x5e, 0x43, 0x14, 0xd6, 0x67, 0xcc, 0xc4, 0x61, 0xbc, 0xe4, 0x73, 0x22, 0x5e, 0x1b, 0x71, 0xb8, + 0x3e, 0x2e, 0x66, 0xb3, 0x2a, 0xe3, 0xe1, 0x20, 0x17, 0xac, 0xcc, 0xe3, 0x6c, 0x2f, 0x8b, 0xa7, + 0xd5, 0x90, 0x88, 0x31, 0x3e, 0x45, 0x64, 0x55, 0x34, 0x8d, 0x3c, 0xc6, 0x83, 0x6a, 0x2f, 0x5e, + 0xf0, 0x32, 0x15, 0xf4, 0x63, 0xb4, 0x48, 0xe7, 0x63, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xb9, + 0x4a, 0x17, 0x2c, 0x09, 0x78, 0x6b, 0x90, 0x1e, 0xde, 0x1c, 0x14, 0x69, 0xb4, 0x31, 0x9f, 0x97, + 0x13, 0x46, 0x36, 0x9a, 0x12, 0x77, 0x36, 0x9a, 0xc1, 0xb4, 0x87, 0xbf, 0x1c, 0x44, 0xbf, 0xa5, + 0xa4, 0xee, 0x06, 0xeb, 0x6e, 0x5c, 0x5d, 0x5d, 0xf0, 0xb8, 0x4c, 0x86, 0x1f, 0x61, 0x76, 0x50, + 0xd4, 0xb8, 0x7e, 0x7a, 0x1b, 0x15, 0xf8, 0x58, 0x0f, 0xd3, 0xca, 0x19, 0x71, 0xe8, 0x63, 0xf5, + 0x90, 0xf0, 0x63, 0x85, 0x28, 0x0c, 0x20, 0x52, 0xae, 0x36, 0x33, 0x56, 0x48, 0x7d, 0x7f, 0x47, + 0x63, 0xb5, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xbd, 0x65, 0x93, 0xb2, 0x81, 0xf7, 0x98, 0x51, + 0x5f, 0x9c, 0xf4, 0x6c, 0x46, 0x45, 0xd8, 0x73, 0x6b, 0x64, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, + 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x66, 0x9a, 0x79, 0xe1, 0x71, + 0xc0, 0x0e, 0x9c, 0x1b, 0xd6, 0x7b, 0xb1, 0xda, 0xe1, 0x5f, 0x0f, 0xa2, 0xef, 0x59, 0x8f, 0x47, + 0x3c, 0x49, 0x2f, 0x97, 0x0a, 0x7a, 0x15, 0x67, 0x73, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, + 0x29, 0xc1, 0xb3, 0x5b, 0xe9, 0xc0, 0xb1, 0xb3, 0x5d, 0x14, 0xd9, 0xf2, 0x8c, 0xcd, 0x8a, 0x8c, + 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, 0x59, 0xf9, 0x19, 0xaf, 0x73, 0x7e, 0x34, 0x2b, + 0x97, 0xa2, 0x70, 0x56, 0xde, 0x20, 0x30, 0x57, 0x3a, 0xe3, 0x3b, 0x3c, 0xcb, 0xd8, 0x44, 0xb4, + 0x5f, 0xd2, 0x1a, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xfd, 0x8c, 0x66, 0x0d, 0x19, 0x97, + 0xec, 0xf9, 0xf2, 0x30, 0xcd, 0xaf, 0x87, 0x78, 0x5a, 0x60, 0x01, 0x62, 0x3f, 0x03, 0x05, 0xe1, + 0x5a, 0xf5, 0x3c, 0x4f, 0x38, 0xbe, 0x56, 0xad, 0x25, 0xe1, 0xb5, 0xaa, 0x26, 0xa0, 0xc9, 0x53, + 0x46, 0x99, 0xac, 0x25, 0x61, 0x93, 0x9a, 0xc0, 0x42, 0xa1, 0xde, 0xf5, 0x26, 0x43, 0x21, 0xd8, + 0xe7, 0x5e, 0xed, 0xe4, 0x60, 0x0f, 0x6d, 0x16, 0xad, 0x7b, 0x4c, 0x4c, 0xae, 0xf0, 0x1e, 0xea, + 0x21, 0xe1, 0x1e, 0x0a, 0x51, 0x58, 0xa5, 0x33, 0x6e, 0x16, 0xdd, 0x2b, 0x78, 0xff, 0x68, 0x2d, + 0xb8, 0x57, 0x3b, 0x39, 0xb8, 0x8c, 0x3c, 0x98, 0xc9, 0x67, 0x86, 0x76, 0x72, 0x25, 0x0b, 0x2f, + 0x23, 0x0d, 0x03, 0x4b, 0xaf, 0x04, 0xf5, 0xe3, 0xc4, 0x4b, 0x6f, 0xe5, 0xe1, 0xd2, 0x7b, 0x9c, + 0x76, 0xf2, 0xcf, 0x66, 0x19, 0xa7, 0xa4, 0xc7, 0xbc, 0x1e, 0x23, 0xaf, 0xe2, 0x2c, 0x4d, 0x62, + 0xc1, 0xce, 0xf8, 0x35, 0xcb, 0xf1, 0x15, 0x93, 0x2e, 0xad, 0xe2, 0x47, 0x9e, 0x42, 0x78, 0xc5, + 0x14, 0x56, 0x84, 0xfd, 0x44, 0xd1, 0xe7, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0xb8, + 0x9f, 0x40, 0x14, 0xe6, 0xab, 0x4a, 0xfe, 0xe2, 0x4d, 0xc1, 0xca, 0x94, 0xe5, 0x13, 0x86, 0xe7, + 0xab, 0x90, 0x0a, 0xe7, 0xab, 0x08, 0xdd, 0xda, 0xa6, 0x31, 0xc1, 0xa9, 0x7d, 0xce, 0x02, 0x12, + 0x81, 0x73, 0x16, 0x04, 0x0a, 0x2b, 0x69, 0x01, 0x74, 0xab, 0xb3, 0x65, 0x25, 0xb8, 0xd5, 0x49, + 0xd3, 0xad, 0xcd, 0x2f, 0xc3, 0x8c, 0xeb, 0x61, 0xd2, 0x51, 0xf4, 0xb1, 0x3b, 0x5c, 0xd6, 0x7b, + 0xb1, 0xf8, 0x6e, 0xdb, 0x29, 0xcb, 0x62, 0x39, 0x85, 0x04, 0xb6, 0xb4, 0x1a, 0xa6, 0xcf, 0x6e, + 0x9b, 0xc3, 0x6a, 0x87, 0x3f, 0x1d, 0x44, 0xef, 0x63, 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, + 0x5b, 0x8a, 0x24, 0x0e, 0x92, 0x84, 0x35, 0x74, 0x19, 0xfe, 0x24, 0x7a, 0xaf, 0x11, 0xd9, 0x73, + 0x26, 0xba, 0x00, 0x7e, 0x02, 0x65, 0xca, 0x0f, 0x39, 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xd7, 0x26, + 0x7e, 0xb9, 0x2a, 0xb0, 0x36, 0x31, 0x36, 0xb4, 0x98, 0x58, 0x9b, 0x20, 0x98, 0xdd, 0xd5, 0x70, + 0xab, 0xf7, 0x3a, 0x15, 0x57, 0x32, 0xf7, 0x01, 0xbb, 0x1a, 0x5e, 0x59, 0x0d, 0x44, 0xec, 0x6a, + 0x90, 0x30, 0xcc, 0x0e, 0x1a, 0xb0, 0x1e, 0x9b, 0x58, 0x5c, 0x35, 0x86, 0xdc, 0x91, 0xb9, 0xd6, + 0x0d, 0xc2, 0xfe, 0xda, 0x88, 0xf5, 0x32, 0xe4, 0x71, 0xc8, 0x02, 0x58, 0x8a, 0xac, 0xf7, 0x62, + 0xb5, 0xc3, 0x3f, 0x8b, 0xbe, 0xdb, 0xaa, 0xd8, 0x1e, 0x8b, 0xc5, 0xbc, 0x64, 0xc9, 0x70, 0xab, + 0xa3, 0xdc, 0x0d, 0x68, 0x5c, 0x3f, 0xe9, 0xaf, 0xd0, 0xca, 0x97, 0x1b, 0x4e, 0x75, 0x2b, 0x53, + 0x86, 0xa7, 0x21, 0x93, 0x3e, 0x1b, 0xcc, 0x97, 0x69, 0x9d, 0xd6, 0x92, 0xd7, 0xed, 0x5d, 0xdb, + 0x8b, 0x38, 0xcd, 0xe4, 0x2b, 0xa7, 0x8f, 0x42, 0x46, 0x3d, 0x34, 0xb8, 0xe4, 0x25, 0x55, 0x5a, + 0x91, 0x59, 0x8e, 0x71, 0x67, 0xa9, 0xb4, 0x41, 0x47, 0x02, 0x64, 0xa5, 0xb4, 0xd9, 0x93, 0xd6, + 0x6e, 0x45, 0xb3, 0x55, 0x58, 0xff, 0xec, 0x76, 0x72, 0xcc, 0xab, 0x56, 0x45, 0x7a, 0xfa, 0x66, + 0x4f, 0x5a, 0x7b, 0xfd, 0xd3, 0xe8, 0xbd, 0xb6, 0x57, 0x3d, 0x11, 0x6d, 0x75, 0x9a, 0x02, 0x73, + 0xd1, 0x93, 0xfe, 0x0a, 0xda, 0xfd, 0xbf, 0x99, 0x3d, 0x62, 0xe5, 0x7f, 0xc2, 0x67, 0x33, 0x96, + 0x27, 0x2c, 0x69, 0x34, 0xaa, 0x7a, 0x2d, 0xf3, 0x39, 0x6d, 0xd7, 0x28, 0x8c, 0x5c, 0x0d, 0x53, + 0xa2, 0xdf, 0xfe, 0x06, 0x9a, 0xba, 0x68, 0xff, 0x39, 0x88, 0x1e, 0xa1, 0x45, 0x6b, 0x3a, 0xae, + 0x57, 0xc4, 0xdf, 0xeb, 0xe3, 0x08, 0xd3, 0x34, 0x45, 0xdd, 0xfe, 0x7f, 0x58, 0xb0, 0x8b, 0xb5, + 0x2f, 0xd2, 0x4a, 0xf0, 0x72, 0x39, 0xbe, 0xe2, 0x37, 0xcd, 0x69, 0x78, 0x3f, 0xf6, 0x69, 0x60, + 0xe4, 0x10, 0xc4, 0x62, 0x0d, 0x27, 0x5b, 0xae, 0xec, 0xa9, 0xf9, 0x8a, 0x70, 0xe5, 0x10, 0x1d, + 0xae, 0x7c, 0xd2, 0x46, 0xfe, 0xa6, 0x56, 0xf6, 0x88, 0xff, 0x2a, 0x5e, 0xd4, 0xf6, 0x31, 0xff, + 0xb5, 0x6e, 0xd0, 0xe6, 0x7f, 0x5a, 0xbc, 0x9b, 0x5e, 0x5e, 0x9a, 0x3a, 0xe1, 0x25, 0x75, 0x11, + 0x22, 0xff, 0x23, 0x50, 0xbb, 0x9c, 0xd8, 0x4b, 0x33, 0x26, 0xdf, 0x55, 0xbc, 0xbc, 0xbc, 0xcc, + 0x78, 0x9c, 0x80, 0xe5, 0x44, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x39, 0x81, 0x71, 0xf6, 0x30, 0x5d, + 0x2d, 0xad, 0x7b, 0x50, 0x3e, 0x49, 0x33, 0x78, 0x38, 0x50, 0x6a, 0x1a, 0x21, 0x71, 0x98, 0xae, + 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0xb4, 0x29, 0xff, 0xc3, 0xb6, 0xa2, 0x23, 0x26, 0xd2, + 0x0c, 0x04, 0xb3, 0xab, 0xea, 0x5a, 0x78, 0x5e, 0x48, 0xe3, 0xf7, 0xda, 0x5a, 0x4a, 0x42, 0xac, + 0xaa, 0x7d, 0xc2, 0xae, 0x0e, 0xeb, 0xdf, 0x77, 0xf9, 0x4d, 0x2e, 0x8d, 0xde, 0x6f, 0xab, 0x34, + 0x32, 0x62, 0x75, 0x08, 0x19, 0x6d, 0xf8, 0x47, 0xd1, 0x2f, 0x4a, 0xc3, 0x25, 0x2f, 0x86, 0x77, + 0x10, 0x85, 0xd2, 0x39, 0xc7, 0x77, 0x97, 0x94, 0xdb, 0xe3, 0xa8, 0xa6, 0x6f, 0x9c, 0x57, 0xf1, + 0x94, 0x0d, 0x1f, 0x10, 0x2d, 0x2e, 0xa5, 0xc4, 0x71, 0xd4, 0x36, 0xe5, 0xf7, 0x8a, 0x63, 0x9e, + 0x68, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0xd4, 0x2b, 0x5c, 0xc8, 0xa6, 0x86, 0xc7, 0xf1, 0x22, 0x9d, + 0x9a, 0xe9, 0x5b, 0x05, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, 0x10, 0x91, 0x1a, 0x92, 0xb0, + 0xf6, 0xf9, 0x4f, 0x83, 0xe8, 0x9e, 0x65, 0xf6, 0x9b, 0x7d, 0xc8, 0x83, 0xfc, 0x92, 0xd7, 0x89, + 0xe4, 0x61, 0x9a, 0x5f, 0x57, 0xc3, 0x4f, 0x29, 0x93, 0x38, 0x6f, 0x8a, 0xf2, 0xd9, 0xad, 0xf5, + 0xec, 0x1a, 0xa0, 0xd9, 0xa4, 0xb3, 0x6f, 0xea, 0x95, 0x06, 0x58, 0x03, 0x98, 0xbd, 0x3c, 0xc8, + 0x11, 0x6b, 0x80, 0x10, 0x6f, 0x9b, 0xd8, 0x38, 0xcf, 0x78, 0x0e, 0x9b, 0xd8, 0x5a, 0xa8, 0x85, + 0x44, 0x13, 0xb7, 0x20, 0x1b, 0x8f, 0x1b, 0x91, 0xda, 0x4f, 0xda, 0xce, 0x32, 0x10, 0x8f, 0x8d, + 0xaa, 0x01, 0x88, 0x78, 0x8c, 0x82, 0xda, 0xcf, 0x69, 0xf4, 0xed, 0xfa, 0x91, 0x9e, 0x94, 0x6c, + 0x91, 0x32, 0x78, 0xa8, 0xc4, 0x91, 0x10, 0xe3, 0xdf, 0x27, 0xec, 0xc8, 0x3a, 0xcf, 0xab, 0x22, + 0x8b, 0xab, 0x2b, 0x7d, 0xcc, 0xc0, 0xaf, 0x73, 0x23, 0x84, 0x07, 0x0d, 0x1e, 0x76, 0x50, 0x36, + 0xa8, 0x37, 0x32, 0x13, 0x62, 0x56, 0x70, 0xd5, 0x56, 0x98, 0x59, 0xed, 0xe4, 0xec, 0x5e, 0xfe, + 0x7e, 0x9c, 0x65, 0xac, 0x5c, 0x36, 0xb2, 0xa3, 0x38, 0x4f, 0x2f, 0x59, 0x25, 0xc0, 0x5e, 0xbe, + 0xa6, 0x46, 0x10, 0x23, 0xf6, 0xf2, 0x03, 0xb8, 0x5d, 0x1b, 0x01, 0xcf, 0x07, 0x79, 0xc2, 0xde, + 0x80, 0xb5, 0x11, 0xb4, 0x23, 0x19, 0x62, 0x6d, 0x44, 0xb1, 0x76, 0x4f, 0xfb, 0x79, 0xc6, 0x27, + 0xd7, 0x7a, 0x0a, 0xf0, 0x1b, 0x58, 0x4a, 0xe0, 0x1c, 0x70, 0x3f, 0x84, 0xd8, 0x49, 0x40, 0x0a, + 0x4e, 0x59, 0x91, 0xc5, 0x13, 0x78, 0xb2, 0x48, 0xe9, 0x68, 0x19, 0x31, 0x09, 0x40, 0x06, 0x14, + 0x57, 0x9f, 0x58, 0xc2, 0x8a, 0x0b, 0x0e, 0x2c, 0xdd, 0x0f, 0x21, 0x76, 0x1a, 0x94, 0x82, 0x71, + 0x91, 0xa5, 0x02, 0x0c, 0x03, 0xa5, 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x88, 0x95, + 0x53, 0x86, 0x9a, 0x94, 0x92, 0xa0, 0xc9, 0x86, 0xb0, 0x07, 0x50, 0x55, 0xdd, 0x79, 0xb1, 0x04, + 0x07, 0x50, 0x75, 0xb5, 0x78, 0xb1, 0x24, 0x0e, 0xa0, 0x7a, 0x00, 0x28, 0xe2, 0x49, 0x5c, 0x09, + 0xbc, 0x88, 0x52, 0x12, 0x2c, 0x62, 0x43, 0xd8, 0x39, 0x5a, 0x15, 0x71, 0x2e, 0xc0, 0x1c, 0xad, + 0x0b, 0xe0, 0xbc, 0x5b, 0xbf, 0x4b, 0xca, 0x6d, 0x24, 0x51, 0xad, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, + 0xa4, 0x02, 0x91, 0x44, 0x3f, 0xf7, 0x46, 0x4a, 0x44, 0x92, 0x36, 0x05, 0xba, 0x92, 0xde, 0xf9, + 0xc7, 0x6a, 0x07, 0x36, 0xfd, 0xef, 0x87, 0x10, 0x1b, 0x9f, 0x9a, 0x42, 0xef, 0xc4, 0x65, 0x99, + 0xd6, 0x93, 0xff, 0x0a, 0x5e, 0xa0, 0x46, 0x4e, 0xc4, 0x27, 0x8c, 0x03, 0xc3, 0xab, 0x09, 0xdc, + 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, 0x9c, 0x97, 0xc3, 0xd8, 0xd3, + 0x44, 0xde, 0x0d, 0xaf, 0x74, 0x61, 0xce, 0x07, 0x22, 0xc6, 0xc5, 0x11, 0x5f, 0xb0, 0x33, 0xfe, + 0xe2, 0x4d, 0x5a, 0x89, 0x34, 0x9f, 0xea, 0x99, 0xfb, 0x19, 0x61, 0x09, 0x83, 0x89, 0x0f, 0x44, + 0x3a, 0x95, 0x6c, 0x02, 0x01, 0xca, 0x72, 0xcc, 0x6e, 0xd0, 0x04, 0x02, 0x5a, 0x34, 0x1c, 0x91, + 0x40, 0x84, 0x78, 0xbb, 0x2b, 0x65, 0x9c, 0xeb, 0xaf, 0x68, 0xcf, 0x78, 0x93, 0xcb, 0x51, 0xd6, + 0x20, 0x48, 0x6c, 0x0c, 0x04, 0x15, 0xec, 0xfa, 0xd2, 0xf8, 0xb7, 0x43, 0x6c, 0x8d, 0xb0, 0xd3, + 0x1e, 0x66, 0x8f, 0x7a, 0x90, 0x88, 0x2b, 0x7b, 0xc2, 0x81, 0x72, 0xd5, 0x3e, 0xe0, 0xf0, 0xa8, + 0x07, 0xe9, 0xec, 0x70, 0xb9, 0xd5, 0x7a, 0x1e, 0x4f, 0xae, 0xa7, 0x25, 0x9f, 0xe7, 0xc9, 0x0e, + 0xcf, 0x78, 0x09, 0x76, 0xb8, 0xbc, 0x52, 0x03, 0x94, 0xd8, 0xe1, 0xea, 0x50, 0xb1, 0x19, 0x9c, + 0x5b, 0x8a, 0xed, 0x2c, 0x9d, 0xc2, 0x15, 0xb5, 0x67, 0x48, 0x02, 0x44, 0x06, 0x87, 0x82, 0x48, + 0x27, 0x52, 0x2b, 0x6e, 0x91, 0x4e, 0xe2, 0x4c, 0xf9, 0xdb, 0xa2, 0xcd, 0x78, 0x60, 0x67, 0x27, + 0x42, 0x14, 0x90, 0x7a, 0x9e, 0xcd, 0xcb, 0xfc, 0x20, 0x17, 0x9c, 0xac, 0x67, 0x03, 0x74, 0xd6, + 0xd3, 0x01, 0x41, 0x58, 0x3d, 0x63, 0x6f, 0xea, 0xd2, 0xd4, 0xff, 0x60, 0x61, 0xb5, 0xfe, 0x7d, + 0xa4, 0xe5, 0xa1, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xed, 0x44, 0x75, 0x98, 0x80, 0xb6, 0xdf, 0x4d, + 0xd6, 0xba, 0x41, 0xdc, 0xcf, 0x58, 0x2c, 0x33, 0x16, 0xf2, 0x23, 0x81, 0x3e, 0x7e, 0x1a, 0xd0, + 0x6e, 0xb7, 0x78, 0xf5, 0xb9, 0x62, 0x93, 0xeb, 0xd6, 0x81, 0x2d, 0xbf, 0xa0, 0x0a, 0x21, 0xb6, + 0x5b, 0x08, 0x14, 0x6f, 0xa2, 0x83, 0x09, 0xcf, 0x43, 0x4d, 0x54, 0xcb, 0xfb, 0x34, 0x91, 0xe6, + 0xec, 0xe2, 0xd7, 0x48, 0x75, 0xcf, 0x54, 0xcd, 0xb4, 0x4e, 0x58, 0x70, 0x21, 0x62, 0xf1, 0x4b, + 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0xa7, 0xd9, 0x5b, 0x56, 0x8e, 0xe8, 0xd3, 0xec, 0x14, + 0x4b, 0x57, 0x52, 0xf5, 0x91, 0x0e, 0x2b, 0x7e, 0x3f, 0xd9, 0xe8, 0x07, 0xdb, 0x25, 0x8f, 0xe7, + 0x73, 0x27, 0x63, 0x71, 0xa9, 0xbc, 0x6e, 0x06, 0x0c, 0x59, 0x8c, 0x58, 0xf2, 0x04, 0x70, 0x10, + 0xc2, 0x3c, 0xcf, 0x3b, 0x3c, 0x17, 0x2c, 0x17, 0x58, 0x08, 0xf3, 0x8d, 0x69, 0x30, 0x14, 0xc2, + 0x28, 0x05, 0xd0, 0x6f, 0xe5, 0x7e, 0x10, 0x13, 0xc7, 0xf1, 0x0c, 0xcd, 0xd8, 0xd4, 0x5e, 0x8f, + 0x92, 0x87, 0xfa, 0x2d, 0xe0, 0x9c, 0x57, 0xa6, 0xae, 0x97, 0xb3, 0xb8, 0x9c, 0x9a, 0xdd, 0x8d, + 0x64, 0xf8, 0x84, 0xb6, 0xe3, 0x93, 0xc4, 0x2b, 0xd3, 0xb0, 0x06, 0x08, 0x3b, 0x07, 0xb3, 0x78, + 0x6a, 0x6a, 0x8a, 0xd4, 0x40, 0xca, 0x5b, 0x55, 0x5d, 0xeb, 0x06, 0x81, 0x9f, 0x57, 0x69, 0xc2, + 0x78, 0xc0, 0x8f, 0x94, 0xf7, 0xf1, 0x03, 0x41, 0x90, 0xbd, 0xd5, 0xf5, 0x56, 0x2b, 0xba, 0xed, + 0x3c, 0xd1, 0xeb, 0xd8, 0x11, 0xf1, 0x78, 0x00, 0x17, 0xca, 0xde, 0x08, 0x1e, 0x8c, 0xd1, 0x66, + 0x83, 0x36, 0x34, 0x46, 0xcd, 0xfe, 0x6b, 0x9f, 0x31, 0x8a, 0xc1, 0xda, 0xe7, 0x4f, 0xf4, 0x18, + 0xdd, 0x8d, 0x45, 0x5c, 0xe7, 0xed, 0xaf, 0x52, 0x76, 0xa3, 0x17, 0xc2, 0x48, 0x7d, 0x1b, 0x6a, + 0x24, 0x3f, 0x63, 0x04, 0xab, 0xe2, 0xad, 0xde, 0x7c, 0xc0, 0xb7, 0x5e, 0x21, 0x74, 0xfa, 0x06, + 0x4b, 0x85, 0xad, 0xde, 0x7c, 0xc0, 0xb7, 0xfe, 0x3e, 0xba, 0xd3, 0x37, 0xf8, 0x48, 0x7a, 0xab, + 0x37, 0xaf, 0x7d, 0xff, 0x45, 0x33, 0x70, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x11, 0xe9, 0x82, 0x61, + 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, 0x74, 0x92, 0x56, 0x71, 0x2e, 0xd5, 0xc1, 0x4a, 0x71, 0xc2, + 0xab, 0x54, 0x1e, 0x79, 0x78, 0xd6, 0xc3, 0x68, 0x03, 0x87, 0x16, 0x4d, 0x21, 0x25, 0xfb, 0xf2, + 0xd6, 0x43, 0xed, 0xf9, 0xec, 0x8d, 0x80, 0xbd, 0xf6, 0x31, 0xed, 0xcd, 0x9e, 0xb4, 0x7d, 0x8d, + 0xea, 0x31, 0xee, 0xfb, 0xdb, 0x50, 0xab, 0xa2, 0xaf, 0x70, 0x9f, 0xf4, 0x57, 0xd0, 0xee, 0xff, + 0xaa, 0x59, 0x57, 0x40, 0xff, 0x7a, 0x10, 0x3c, 0xed, 0x63, 0x11, 0x0c, 0x84, 0x67, 0xb7, 0xd2, + 0xd1, 0x05, 0xf9, 0xbb, 0x66, 0x01, 0xdd, 0xa0, 0xf2, 0x2b, 0x95, 0x97, 0x65, 0xc2, 0x4a, 0x3d, + 0x26, 0x42, 0xcd, 0x6a, 0x61, 0x38, 0x32, 0x3e, 0xb9, 0xa5, 0x96, 0x73, 0xc5, 0x92, 0x07, 0xeb, + 0xaf, 0x29, 0x9d, 0xf2, 0x84, 0x2c, 0x3b, 0x34, 0x2c, 0xd0, 0xa7, 0xb7, 0x55, 0xa3, 0xc6, 0x8a, + 0x03, 0xcb, 0x1b, 0x1b, 0x9e, 0xf5, 0x34, 0xec, 0xdd, 0xe1, 0xf0, 0xf1, 0xed, 0x94, 0x74, 0x59, + 0xfe, 0x63, 0x10, 0x3d, 0xf4, 0x58, 0xfb, 0x3e, 0x01, 0xec, 0x7a, 0xfc, 0x30, 0x60, 0x9f, 0x52, + 0x32, 0x85, 0xfb, 0x9d, 0x6f, 0xa6, 0x6c, 0xef, 0x23, 0xf2, 0x54, 0xf6, 0xd2, 0x4c, 0xb0, 0xb2, + 0x7d, 0x1f, 0x91, 0x6f, 0x57, 0x51, 0x23, 0xfa, 0x3e, 0xa2, 0x00, 0xee, 0xdc, 0x47, 0x84, 0x78, + 0x46, 0xef, 0x23, 0x42, 0xad, 0x05, 0xef, 0x23, 0x0a, 0x6b, 0x50, 0xe1, 0xbd, 0x29, 0x82, 0xda, + 0xb7, 0xee, 0x65, 0xd1, 0xdf, 0xc6, 0x7e, 0x7a, 0x1b, 0x15, 0x62, 0x82, 0x53, 0x9c, 0x3c, 0x35, + 0xd8, 0xe3, 0x99, 0x7a, 0x27, 0x07, 0xb7, 0x7a, 0xf3, 0xda, 0xf7, 0x8f, 0xf5, 0xea, 0xc6, 0x84, + 0x73, 0x5e, 0xca, 0xbb, 0xa8, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, 0xb6, 0xfc, 0x46, 0x3f, 0x98, + 0xa8, 0x6e, 0x4d, 0xe8, 0x46, 0x1f, 0x75, 0x19, 0x02, 0x4d, 0xbe, 0xd5, 0x9b, 0x27, 0xa6, 0x11, + 0xe5, 0x5b, 0xb5, 0x76, 0x0f, 0x63, 0x7e, 0x5b, 0x3f, 0xe9, 0xaf, 0xa0, 0xdd, 0x2f, 0x74, 0xda, + 0xe8, 0xba, 0x97, 0xed, 0xbc, 0xd9, 0x65, 0x6a, 0xec, 0x35, 0xf3, 0xa8, 0x2f, 0x1e, 0x4a, 0x20, + 0xdc, 0x29, 0xb4, 0x2b, 0x81, 0x40, 0xa7, 0xd1, 0x8f, 0x6f, 0xa7, 0xa4, 0xcb, 0xf2, 0x8f, 0x83, + 0xe8, 0x2e, 0x59, 0x16, 0xdd, 0x0f, 0x3e, 0xed, 0x6b, 0x19, 0xf4, 0x87, 0xcf, 0x6e, 0xad, 0xa7, + 0x0b, 0xf5, 0x2f, 0x83, 0xe8, 0x5e, 0xa0, 0x50, 0xaa, 0x83, 0xdc, 0xc2, 0xba, 0xdf, 0x51, 0x3e, + 0xbf, 0xbd, 0x22, 0x35, 0xdd, 0xbb, 0xf8, 0xb8, 0x7d, 0x51, 0x4f, 0xc0, 0xf6, 0x98, 0xbe, 0xa8, + 0xa7, 0x5b, 0x0b, 0x6e, 0xf2, 0xc4, 0x17, 0xcd, 0xa2, 0x0b, 0xdd, 0xe4, 0x91, 0xe7, 0xfd, 0xc0, + 0x9a, 0x63, 0xb5, 0x93, 0xc3, 0x9c, 0xbc, 0x78, 0x53, 0xc4, 0x79, 0x42, 0x3b, 0x51, 0xf2, 0x6e, + 0x27, 0x86, 0x83, 0x9b, 0x63, 0xb5, 0xf4, 0x94, 0x37, 0x0b, 0xa9, 0x47, 0x94, 0xbe, 0x41, 0x82, + 0x9b, 0x63, 0x2d, 0x94, 0xf0, 0xa6, 0xb3, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0xee, 0x83, 0x82, + 0x14, 0xdd, 0x78, 0x33, 0x7b, 0xee, 0x1b, 0x21, 0x2b, 0xad, 0x7d, 0xf7, 0xcd, 0x9e, 0x34, 0xe1, + 0x76, 0xcc, 0xc4, 0x17, 0x2c, 0x4e, 0x58, 0x19, 0x74, 0x6b, 0xa8, 0x5e, 0x6e, 0x5d, 0x1a, 0x73, + 0xbb, 0xc3, 0xb3, 0xf9, 0x2c, 0xd7, 0x8d, 0x49, 0xba, 0x75, 0xa9, 0x6e, 0xb7, 0x80, 0x86, 0xdb, + 0x82, 0xd6, 0xad, 0x4c, 0x2f, 0x1f, 0x87, 0xcd, 0x78, 0x59, 0xe5, 0x7a, 0x2f, 0x96, 0xae, 0xa7, + 0xee, 0x46, 0x1d, 0xf5, 0x04, 0x3d, 0x69, 0xb3, 0x27, 0x0d, 0xf7, 0xe7, 0x1c, 0xb7, 0xa6, 0x3f, + 0x6d, 0x75, 0xd8, 0x6a, 0x75, 0xa9, 0x27, 0xfd, 0x15, 0xe0, 0x6e, 0xa8, 0xee, 0x55, 0x87, 0x69, + 0x25, 0xf6, 0xd2, 0x2c, 0x1b, 0xae, 0x07, 0xba, 0x49, 0x03, 0x05, 0x77, 0x43, 0x11, 0x98, 0xe8, + 0xc9, 0xcd, 0xee, 0x61, 0x3e, 0xec, 0xb2, 0x23, 0xa9, 0x5e, 0x3d, 0xd9, 0xa5, 0xc1, 0x8e, 0x96, + 0xf3, 0xa8, 0x4d, 0x6d, 0x47, 0xe1, 0x07, 0xd7, 0xaa, 0xf0, 0x56, 0x6f, 0x1e, 0xbc, 0x6e, 0x97, + 0x94, 0x9c, 0x59, 0x1e, 0x50, 0x26, 0xbc, 0x99, 0xe4, 0x61, 0x07, 0x05, 0x76, 0x05, 0xd5, 0x30, + 0x7a, 0x9d, 0x26, 0x53, 0x26, 0xd0, 0x37, 0x45, 0x2e, 0x10, 0x7c, 0x53, 0x04, 0x40, 0xd0, 0x74, + 0xea, 0x77, 0xb3, 0x1d, 0x7a, 0x90, 0x60, 0x4d, 0xa7, 0x95, 0x1d, 0x2a, 0xd4, 0x74, 0x28, 0x0d, + 0xa2, 0x81, 0x71, 0xab, 0x2f, 0x1a, 0x78, 0x1c, 0x32, 0x03, 0x6e, 0x1b, 0x58, 0xef, 0xc5, 0x82, + 0x19, 0xc5, 0x3a, 0x4c, 0x67, 0xa9, 0xc0, 0x66, 0x14, 0xc7, 0x46, 0x8d, 0x84, 0x66, 0x94, 0x36, + 0x4a, 0x55, 0xaf, 0xce, 0x11, 0x0e, 0x92, 0x70, 0xf5, 0x14, 0xd3, 0xaf, 0x7a, 0x86, 0x6d, 0xbd, + 0xd8, 0xcc, 0x4d, 0x97, 0x11, 0x57, 0x7a, 0xb1, 0x8c, 0xf4, 0x6d, 0xf9, 0x01, 0x2a, 0x04, 0x43, + 0x51, 0x87, 0x52, 0x80, 0x1b, 0xf6, 0x35, 0xd7, 0xbc, 0x7b, 0x2d, 0x0a, 0x16, 0x97, 0x71, 0x3e, + 0x41, 0x17, 0xa7, 0xd2, 0x60, 0x8b, 0x0c, 0x2d, 0x4e, 0x49, 0x0d, 0xf0, 0xda, 0xdc, 0xff, 0x74, + 0x14, 0x19, 0x0a, 0xe6, 0x1b, 0x4d, 0xff, 0xcb, 0xd1, 0x47, 0x3d, 0x48, 0xf8, 0xda, 0xbc, 0x01, + 0xcc, 0xc6, 0xb7, 0x72, 0xfa, 0x51, 0xc0, 0x94, 0x8f, 0x86, 0x16, 0xc2, 0xb4, 0x0a, 0xe8, 0xd4, + 0x26, 0xc1, 0x65, 0xe2, 0x47, 0x6c, 0x89, 0x75, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0xd4, 0xa9, 0xdb, + 0x28, 0xc8, 0x33, 0xdd, 0x75, 0xd0, 0x4a, 0x40, 0xdf, 0x5d, 0xfa, 0xac, 0x76, 0x72, 0x60, 0xe4, + 0xec, 0xa6, 0x0b, 0xef, 0x3d, 0x01, 0x52, 0xd0, 0xdd, 0x74, 0x81, 0xbf, 0x26, 0x58, 0xef, 0xc5, + 0xc2, 0x57, 0xf2, 0xb1, 0x60, 0x6f, 0x9a, 0x77, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf5, 0xb2, 0x7c, + 0xad, 0x1b, 0xb4, 0x07, 0x60, 0x4f, 0x4a, 0x3e, 0x61, 0x55, 0xa5, 0x6f, 0x2f, 0xf4, 0x4f, 0x18, + 0x69, 0xd9, 0x08, 0xdc, 0x5d, 0xf8, 0x20, 0x0c, 0xd9, 0x96, 0xd1, 0x22, 0x7b, 0x9f, 0xcf, 0x0a, + 0xaa, 0xd9, 0xbe, 0xca, 0x67, 0xb5, 0x93, 0xb3, 0xc3, 0x4b, 0x4b, 0xdd, 0x0b, 0x7c, 0xd6, 0x50, + 0x75, 0xec, 0xee, 0x9e, 0x47, 0x3d, 0x48, 0xed, 0xea, 0x8b, 0xe8, 0xad, 0x43, 0x3e, 0x1d, 0xb3, + 0x3c, 0x19, 0x7e, 0xdf, 0x3f, 0x42, 0xcb, 0xa7, 0xa3, 0xfa, 0x67, 0x63, 0xf4, 0x0e, 0x25, 0xb6, + 0x87, 0x00, 0x77, 0xd9, 0xc5, 0x7c, 0x3a, 0x16, 0xb1, 0x00, 0x87, 0x00, 0xe5, 0xef, 0xa3, 0x5a, + 0x40, 0x1c, 0x02, 0xf4, 0x00, 0x60, 0xef, 0xac, 0x64, 0x0c, 0xb5, 0x57, 0x0b, 0x82, 0xf6, 0x34, + 0x60, 0xb3, 0x08, 0x63, 0xaf, 0x4e, 0xd4, 0xe1, 0xa1, 0x3d, 0xab, 0x23, 0xa5, 0x44, 0x16, 0xd1, + 0xa6, 0x6c, 0xe7, 0x56, 0xd5, 0x97, 0xf7, 0xa9, 0xcc, 0x67, 0xb3, 0xb8, 0x5c, 0x82, 0xce, 0xad, + 0x6b, 0xe9, 0x00, 0x44, 0xe7, 0x46, 0x41, 0x3b, 0x6a, 0x9b, 0xc7, 0x3c, 0xb9, 0xde, 0xe7, 0x25, + 0x9f, 0x8b, 0x34, 0x67, 0xf0, 0x4e, 0x0d, 0xf3, 0x40, 0x5d, 0x86, 0x18, 0xb5, 0x14, 0x6b, 0xb3, + 0x5c, 0x49, 0xa8, 0xf3, 0x84, 0xf2, 0x4e, 0xe3, 0x4a, 0xf0, 0x12, 0xbe, 0x4f, 0x54, 0x56, 0x20, + 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xda, 0xfe, 0x24, 0xcd, 0xa7, 0x68, 0xdb, 0x9f, 0xb8, 0x37, 0x82, + 0xde, 0xa3, 0x01, 0x3b, 0xa0, 0xd4, 0x43, 0x53, 0x03, 0x40, 0x7f, 0x19, 0x8b, 0x3e, 0x74, 0x97, + 0x20, 0x06, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0xa4, 0x39, 0x35, 0x87, 0xb9, 0xf2, + 0x88, 0xa0, 0x2b, 0x48, 0xda, 0x58, 0x24, 0xe5, 0xa7, 0xf3, 0xfc, 0xa4, 0xe4, 0x97, 0x69, 0xc6, + 0x4a, 0x10, 0x8b, 0x94, 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xe3, 0x17, 0x52, 0xea, 0x5d, + 0xcc, 0x7d, 0x56, 0xc6, 0x13, 0x78, 0xfc, 0x42, 0xd9, 0x68, 0x63, 0xc4, 0xce, 0x60, 0x00, 0x77, + 0x12, 0x1d, 0xe5, 0x3a, 0x5f, 0xca, 0xfe, 0xa1, 0xbf, 0xcc, 0x94, 0xf7, 0x64, 0x56, 0x20, 0xd1, + 0xd1, 0xe6, 0x30, 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x2a, 0x91, 0xdc, 0xb1, 0x3e, 0x56, 0x04, + 0xa6, 0x12, 0x65, 0xa3, 0x11, 0x12, 0x53, 0x49, 0x0b, 0x02, 0x01, 0xa9, 0x19, 0x06, 0x53, 0x34, + 0x20, 0x19, 0x69, 0x30, 0x20, 0xb9, 0x94, 0x0d, 0x14, 0x07, 0x79, 0x2a, 0xd2, 0x38, 0x1b, 0x33, + 0x71, 0x12, 0x97, 0xf1, 0x8c, 0x09, 0x56, 0xc2, 0x40, 0xa1, 0x91, 0x91, 0xc7, 0x10, 0x81, 0x82, + 0x62, 0xb5, 0xc3, 0xdf, 0x8d, 0xde, 0xa9, 0xe7, 0x7d, 0x96, 0xeb, 0x3f, 0xc1, 0xf1, 0x42, 0xfe, + 0xed, 0x9e, 0xe1, 0xbb, 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x35, 0xb6, 0xdf, 0x36, 0xbf, 0x4b, + 0xf0, 0xc9, 0xa0, 0xee, 0xcf, 0xc7, 0x5c, 0xa4, 0x97, 0xf5, 0x32, 0x5b, 0x7f, 0x41, 0x04, 0xfa, + 0xb3, 0x2b, 0x1e, 0x05, 0x6e, 0xd9, 0xc0, 0x38, 0x1b, 0xa7, 0x5d, 0xe9, 0x29, 0x2b, 0x32, 0x18, + 0xa7, 0x3d, 0x6d, 0x09, 0x10, 0x71, 0x1a, 0x05, 0xed, 0xe0, 0x74, 0xc5, 0x67, 0x2c, 0x5c, 0x99, + 0x33, 0xd6, 0xaf, 0x32, 0x67, 0xde, 0x47, 0x19, 0x59, 0xf4, 0xce, 0x11, 0x9b, 0x5d, 0xb0, 0xb2, + 0xba, 0x4a, 0x8b, 0xfd, 0x3a, 0xe1, 0x8a, 0xc5, 0x1c, 0x7e, 0xb6, 0x68, 0x89, 0x91, 0x41, 0x88, + 0xac, 0x94, 0x40, 0xed, 0x4c, 0x60, 0x81, 0x83, 0xea, 0x38, 0x9e, 0x31, 0x79, 0x67, 0x08, 0x98, + 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xcc, 0x04, 0x24, 0xec, 0x7c, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xad, + 0x7b, 0x58, 0x79, 0x12, 0x2f, 0x67, 0x2c, 0x17, 0xda, 0x24, 0xd8, 0x93, 0x77, 0x4c, 0xe2, 0x3c, + 0xb1, 0x27, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0xde, 0x83, 0x3f, 0xe1, 0xa5, 0x50, 0x7f, 0x60, 0xe7, + 0xbc, 0xcc, 0x40, 0x68, 0xf2, 0x1f, 0xaa, 0x47, 0x12, 0xa1, 0x29, 0xac, 0xe1, 0xdc, 0x4c, 0xef, + 0x95, 0xe1, 0x15, 0x2b, 0x4d, 0x3f, 0x79, 0x31, 0x8b, 0xd3, 0x4c, 0xf7, 0x86, 0x1f, 0x04, 0x6c, + 0x13, 0x3a, 0xc4, 0xcd, 0xf4, 0x7d, 0x75, 0x9d, 0xbb, 0xfc, 0xc3, 0x25, 0x04, 0xaf, 0x08, 0x3a, + 0xec, 0x13, 0xaf, 0x08, 0xba, 0xb5, 0xec, 0xca, 0xdd, 0xb2, 0x92, 0x5b, 0x4a, 0x62, 0x87, 0x27, + 0x70, 0xbf, 0xd0, 0xb1, 0x09, 0x40, 0x62, 0xe5, 0x1e, 0x54, 0xb0, 0xa9, 0x81, 0xc5, 0xf6, 0xd2, + 0x3c, 0xce, 0xd2, 0x9f, 0xc0, 0xb4, 0xde, 0xb1, 0xd3, 0x10, 0x44, 0x6a, 0x80, 0x93, 0x98, 0xab, + 0x7d, 0x26, 0xce, 0xd2, 0x3a, 0xf4, 0xaf, 0x05, 0x9e, 0x9b, 0x24, 0xba, 0x5d, 0x39, 0xa4, 0x73, + 0xfb, 0x2c, 0x7c, 0xac, 0xdb, 0x45, 0x31, 0xae, 0x67, 0xd5, 0x53, 0x36, 0x61, 0x69, 0x21, 0x86, + 0x9f, 0x84, 0x9f, 0x15, 0xc0, 0x89, 0x83, 0x16, 0x3d, 0xd4, 0x9c, 0xd7, 0xf7, 0x75, 0x2c, 0x19, + 0xab, 0xbf, 0x3c, 0x77, 0x5e, 0xb1, 0x52, 0x27, 0x1a, 0xfb, 0x4c, 0x80, 0xd1, 0xe9, 0x70, 0x23, + 0x07, 0xac, 0x2b, 0x4a, 0x8c, 0xce, 0xb0, 0x86, 0xdd, 0xec, 0x73, 0xb8, 0x53, 0x56, 0xf1, 0x6c, + 0xc1, 0xe4, 0x79, 0xc3, 0x0d, 0xd2, 0x98, 0x43, 0x11, 0x9b, 0x7d, 0x34, 0x6d, 0xb3, 0xb5, 0xb6, + 0xdb, 0xed, 0x7c, 0x79, 0x00, 0x8f, 0x4c, 0x20, 0x96, 0x24, 0x46, 0x64, 0x6b, 0x01, 0xdc, 0xd9, + 0x0c, 0x2f, 0x79, 0x9c, 0x4c, 0xe2, 0x4a, 0x9c, 0xc4, 0xcb, 0x8c, 0xc7, 0x89, 0x9c, 0xd7, 0xe1, + 0x66, 0x78, 0xc3, 0x8c, 0x5c, 0x88, 0xda, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x7f, 0x50, 0x4f, + 0x9f, 0xe5, 0x84, 0xd9, 0x99, 0x2c, 0x2f, 0x3c, 0xc7, 0xf9, 0x20, 0x0c, 0xd9, 0x6f, 0xd0, 0x94, + 0x48, 0xa6, 0x21, 0xf7, 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0x5b, 0x3e, 0xd4, 0xef, + 0xcd, 0xdf, 0x84, 0x11, 0xfa, 0x8e, 0xee, 0x0d, 0x4c, 0xd7, 0x85, 0x46, 0xee, 0x65, 0x11, 0x9b, + 0x3d, 0x69, 0x9b, 0x66, 0xee, 0x5c, 0xc5, 0x62, 0x3b, 0x49, 0x8e, 0x58, 0x85, 0x7c, 0x50, 0x5e, + 0x0b, 0x47, 0x56, 0x4a, 0xa4, 0x99, 0x6d, 0xca, 0x76, 0xf4, 0x5a, 0xf6, 0x22, 0x49, 0x85, 0x96, + 0x35, 0x27, 0xa4, 0x37, 0xda, 0x06, 0xda, 0x14, 0x51, 0x2b, 0x9a, 0xb6, 0xb1, 0xbc, 0x66, 0xce, + 0xf8, 0x74, 0x9a, 0x31, 0x0d, 0x9d, 0xb2, 0x58, 0x5d, 0x51, 0xb8, 0xd5, 0xb6, 0x85, 0x82, 0x44, + 0x2c, 0x0f, 0x2a, 0xd8, 0x34, 0xb2, 0xc6, 0xd4, 0x2b, 0xa9, 0xe6, 0xc1, 0xae, 0xb6, 0xcd, 0x78, + 0x00, 0x91, 0x46, 0xa2, 0xa0, 0xfd, 0xee, 0xad, 0x16, 0xef, 0xb3, 0xe6, 0x49, 0xc0, 0x0b, 0x9d, + 0xa4, 0xb2, 0x23, 0x26, 0xbe, 0x7b, 0x43, 0x30, 0xbb, 0x4e, 0x00, 0x1e, 0x9e, 0x2f, 0x0f, 0x12, + 0xb8, 0x4e, 0x80, 0xfa, 0x92, 0x21, 0xd6, 0x09, 0x14, 0xeb, 0x37, 0x9d, 0xd9, 0xf7, 0x3a, 0x8c, + 0x2b, 0x5b, 0x39, 0xa4, 0xe9, 0x50, 0x30, 0xd4, 0x74, 0x94, 0x82, 0xff, 0x48, 0xdd, 0xad, 0x35, + 0xe4, 0x91, 0x62, 0xfb, 0x6a, 0x2b, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3d, 0x29, 0x8f, 0x2c, 0xe1, + 0x7f, 0x9b, 0x40, 0x09, 0x89, 0xb8, 0xd4, 0x82, 0x94, 0xed, 0xe7, 0x1f, 0xfc, 0xd7, 0x57, 0x77, + 0x06, 0x3f, 0xff, 0xea, 0xce, 0xe0, 0x7f, 0xbe, 0xba, 0x33, 0xf8, 0xd9, 0xd7, 0x77, 0xbe, 0xf5, + 0xf3, 0xaf, 0xef, 0x7c, 0xeb, 0xbf, 0xbf, 0xbe, 0xf3, 0xad, 0x2f, 0xdf, 0xd2, 0x7f, 0x68, 0xf5, + 0xe2, 0x17, 0xe4, 0x9f, 0x4b, 0x7d, 0xf6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xab, 0xf4, 0x52, + 0x6c, 0x8c, 0x75, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -497,6 +501,8 @@ type ClientCommandsClient interface { ObjectCreateObjectType(ctx context.Context, in *pb.RpcObjectCreateObjectTypeRequest, opts ...grpc.CallOption) (*pb.RpcObjectCreateObjectTypeResponse, error) ObjectTypeRelationAdd(ctx context.Context, in *pb.RpcObjectTypeRelationAddRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRelationAddResponse, error) ObjectTypeRelationRemove(ctx context.Context, in *pb.RpcObjectTypeRelationRemoveRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRelationRemoveResponse, error) + ObjectTypeRecommendedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedRelationsSetResponse, error) + ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse, error) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) HistoryGetVersions(ctx context.Context, in *pb.RpcHistoryGetVersionsRequest, opts ...grpc.CallOption) (*pb.RpcHistoryGetVersionsResponse, error) HistorySetVersion(ctx context.Context, in *pb.RpcHistorySetVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistorySetVersionResponse, error) @@ -1669,6 +1675,24 @@ func (c *clientCommandsClient) ObjectTypeRelationRemove(ctx context.Context, in return out, nil } +func (c *clientCommandsClient) ObjectTypeRecommendedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedRelationsSetResponse, error) { + out := new(pb.RpcObjectTypeRecommendedRelationsSetResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectTypeRecommendedRelationsSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clientCommandsClient) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse, error) { + out := new(pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectTypeRecommendedFeaturedRelationsSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) { out := new(pb.RpcHistoryShowVersionResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/HistoryShowVersion", in, out, opts...) @@ -3263,6 +3287,8 @@ type ClientCommandsServer interface { ObjectCreateObjectType(context.Context, *pb.RpcObjectCreateObjectTypeRequest) *pb.RpcObjectCreateObjectTypeResponse ObjectTypeRelationAdd(context.Context, *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse + ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse + ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -3789,6 +3815,12 @@ func (*UnimplementedClientCommandsServer) ObjectTypeRelationAdd(ctx context.Cont func (*UnimplementedClientCommandsServer) ObjectTypeRelationRemove(ctx context.Context, req *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse { return nil } +func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { + return nil +} +func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { + return nil +} func (*UnimplementedClientCommandsServer) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { return nil } @@ -6200,6 +6232,42 @@ func _ClientCommands_ObjectTypeRelationRemove_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _ClientCommands_ObjectTypeRecommendedRelationsSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectTypeRecommendedRelationsSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectTypeRecommendedRelationsSet(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectTypeRecommendedRelationsSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectTypeRecommendedRelationsSet(ctx, req.(*pb.RpcObjectTypeRecommendedRelationsSetRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + +func _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectTypeRecommendedFeaturedRelationsSet(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectTypeRecommendedFeaturedRelationsSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectTypeRecommendedFeaturedRelationsSet(ctx, req.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_HistoryShowVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcHistoryShowVersionRequest) if err := dec(in); err != nil { @@ -9516,6 +9584,14 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectTypeRelationRemove", Handler: _ClientCommands_ObjectTypeRelationRemove_Handler, }, + { + MethodName: "ObjectTypeRecommendedRelationsSet", + Handler: _ClientCommands_ObjectTypeRecommendedRelationsSet_Handler, + }, + { + MethodName: "ObjectTypeRecommendedFeaturedRelationsSet", + Handler: _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler, + }, { MethodName: "HistoryShowVersion", Handler: _ClientCommands_HistoryShowVersion_Handler, From 0389df36b8fa581ca261f0b88569d82963a7e68d Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 25 Nov 2024 13:50:02 +0100 Subject: [PATCH 004/176] GO-4231 Add recommended featured relations --- pkg/lib/bundle/relation.gen.go | 283 ++++++++++++++------------ pkg/lib/bundle/relations.json | 13 ++ pkg/lib/bundle/systemRelations.gen.go | 3 +- pkg/lib/bundle/systemRelations.json | 3 +- 4 files changed, 166 insertions(+), 136 deletions(-) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index e5b4b49ed..d95cfb762 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,141 +9,142 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "c034a14af3fc7980c46e74d91399e0a624ae73b73976e6b452170c7cfffaee34" +const RelationChecksum = "ee87cfabadaa575c8e4c1a74a737cbbd8520d37dbe71668120e516db416947df" const ( - RelationKeyTag domain.RelationKey = "tag" - RelationKeyCamera domain.RelationKey = "camera" - RelationKeyHeightInPixels domain.RelationKey = "heightInPixels" - RelationKeyCreatedDate domain.RelationKey = "createdDate" - RelationKeyToBeDeletedDate domain.RelationKey = "toBeDeletedDate" - RelationKeyRelationFormatObjectTypes domain.RelationKey = "relationFormatObjectTypes" - RelationKeyRelationKey domain.RelationKey = "relationKey" - RelationKeyRelationOptionColor domain.RelationKey = "relationOptionColor" - RelationKeyLatestAclHeadId domain.RelationKey = "latestAclHeadId" - RelationKeyDone domain.RelationKey = "done" - RelationKeyMediaArtistURL domain.RelationKey = "mediaArtistURL" - RelationKeyTemplateIsBundled domain.RelationKey = "templateIsBundled" - RelationKeyRestrictions domain.RelationKey = "restrictions" - RelationKeyReadersLimit domain.RelationKey = "readersLimit" - RelationKeyWritersLimit domain.RelationKey = "writersLimit" - RelationKeySharedSpacesLimit domain.RelationKey = "sharedSpacesLimit" - RelationKeyIsHighlighted domain.RelationKey = "isHighlighted" - RelationKeyTasks domain.RelationKey = "tasks" - RelationKeySnippet domain.RelationKey = "snippet" - RelationKeyRelationFormat domain.RelationKey = "relationFormat" - RelationKeyRelationReadonlyValue domain.RelationKey = "relationReadonlyValue" - RelationKeyIconImage domain.RelationKey = "iconImage" - RelationKeyIngredients domain.RelationKey = "ingredients" - RelationKeyGenre domain.RelationKey = "genre" - RelationKeyReleasedYear domain.RelationKey = "releasedYear" - RelationKeyCoverScale domain.RelationKey = "coverScale" - RelationKeyRelationDefaultValue domain.RelationKey = "relationDefaultValue" - RelationKeyLinkedProjects domain.RelationKey = "linkedProjects" - RelationKeyAudioAlbum domain.RelationKey = "audioAlbum" - RelationKeyLayoutAlign domain.RelationKey = "layoutAlign" - RelationKeyStatus domain.RelationKey = "status" - RelationKeyIsHidden domain.RelationKey = "isHidden" - RelationKeyIsHiddenDiscovery domain.RelationKey = "isHiddenDiscovery" - RelationKeyMediaArtistName domain.RelationKey = "mediaArtistName" - RelationKeyEmail domain.RelationKey = "email" - RelationKeyCompany domain.RelationKey = "company" - RelationKeyAperture domain.RelationKey = "aperture" - RelationKeyLastModifiedDate domain.RelationKey = "lastModifiedDate" - RelationKeyRecommendedRelations domain.RelationKey = "recommendedRelations" - RelationKeyCreator domain.RelationKey = "creator" - RelationKeyRecommendedLayout domain.RelationKey = "recommendedLayout" - RelationKeyLastOpenedDate domain.RelationKey = "lastOpenedDate" - RelationKeyAuthor domain.RelationKey = "author" - RelationKeyArtist domain.RelationKey = "artist" - RelationKeyDueDate domain.RelationKey = "dueDate" - RelationKeyIconEmoji domain.RelationKey = "iconEmoji" - RelationKeyCoverType domain.RelationKey = "coverType" - RelationKeyCoverY domain.RelationKey = "coverY" - RelationKeyTime domain.RelationKey = "time" - RelationKeySizeInBytes domain.RelationKey = "sizeInBytes" - RelationKeyCollectionOf domain.RelationKey = "collectionOf" - RelationKeyIsReadonly domain.RelationKey = "isReadonly" - RelationKeyAddedDate domain.RelationKey = "addedDate" - RelationKeyAssignee domain.RelationKey = "assignee" - RelationKeyExposure domain.RelationKey = "exposure" - RelationKeyTargetObjectType domain.RelationKey = "targetObjectType" - RelationKeyIsFavorite domain.RelationKey = "isFavorite" - RelationKeyWorkspaceId domain.RelationKey = "workspaceId" - RelationKeySpaceId domain.RelationKey = "spaceId" - RelationKeyAudioGenre domain.RelationKey = "audioGenre" - RelationKeyName domain.RelationKey = "name" - RelationKeyMood domain.RelationKey = "mood" - RelationKeyAudioLyrics domain.RelationKey = "audioLyrics" - RelationKeyFocalRatio domain.RelationKey = "focalRatio" - RelationKeyPriority domain.RelationKey = "priority" - RelationKeyFileMimeType domain.RelationKey = "fileMimeType" - RelationKeyType domain.RelationKey = "type" - RelationKeyLayout domain.RelationKey = "layout" - RelationKeyAudioAlbumTrackNumber domain.RelationKey = "audioAlbumTrackNumber" - RelationKeyInternalFlags domain.RelationKey = "internalFlags" - RelationKeyCoverX domain.RelationKey = "coverX" - RelationKeyDescription domain.RelationKey = "description" - RelationKeyPicture domain.RelationKey = "picture" - RelationKeyId domain.RelationKey = "id" - RelationKeyUrl domain.RelationKey = "url" - RelationKeyCameraIso domain.RelationKey = "cameraIso" - RelationKeyIsDeleted domain.RelationKey = "isDeleted" - RelationKeyLinks domain.RelationKey = "links" - RelationKeyCoverId domain.RelationKey = "coverId" - RelationKeyLastModifiedBy domain.RelationKey = "lastModifiedBy" - RelationKeyRelationMaxCount domain.RelationKey = "relationMaxCount" - RelationKeyWidthInPixels domain.RelationKey = "widthInPixels" - RelationKeyProgress domain.RelationKey = "progress" - RelationKeySetOf domain.RelationKey = "setOf" - RelationKeyIsArchived domain.RelationKey = "isArchived" - RelationKeyFileExt domain.RelationKey = "fileExt" - RelationKeyFeaturedRelations domain.RelationKey = "featuredRelations" - RelationKeyPhone domain.RelationKey = "phone" - RelationKeySmartblockTypes domain.RelationKey = "smartblockTypes" - RelationKeySource domain.RelationKey = "source" - RelationKeySourceObject domain.RelationKey = "sourceObject" - RelationKeyOldAnytypeID domain.RelationKey = "oldAnytypeID" - RelationKeySpaceDashboardId domain.RelationKey = "spaceDashboardId" - RelationKeyIconOption domain.RelationKey = "iconOption" - RelationKeySpaceAccessibility domain.RelationKey = "spaceAccessibility" - RelationKeySpaceAccessType domain.RelationKey = "spaceAccessType" - RelationKeySourceFilePath domain.RelationKey = "sourceFilePath" - RelationKeyFileSyncStatus domain.RelationKey = "fileSyncStatus" - RelationKeyFileBackupStatus domain.RelationKey = "fileBackupStatus" - RelationKeyFileIndexingStatus domain.RelationKey = "fileIndexingStatus" - RelationKeyLastChangeId domain.RelationKey = "lastChangeId" - RelationKeyStarred domain.RelationKey = "starred" - RelationKeyDefaultTemplateId domain.RelationKey = "defaultTemplateId" - RelationKeyUniqueKey domain.RelationKey = "uniqueKey" - RelationKeyBacklinks domain.RelationKey = "backlinks" - RelationKeyIsUninstalled domain.RelationKey = "isUninstalled" - RelationKeyOrigin domain.RelationKey = "origin" - RelationKeySpaceLocalStatus domain.RelationKey = "spaceLocalStatus" - RelationKeySpaceRemoteStatus domain.RelationKey = "spaceRemoteStatus" - RelationKeySpaceShareableStatus domain.RelationKey = "spaceShareableStatus" - RelationKeyIsAclShared domain.RelationKey = "isAclShared" - RelationKeySpaceAccountStatus domain.RelationKey = "spaceAccountStatus" - RelationKeySpaceInviteFileCid domain.RelationKey = "spaceInviteFileCid" - RelationKeySpaceInviteFileKey domain.RelationKey = "spaceInviteFileKey" - RelationKeyParticipantPermissions domain.RelationKey = "participantPermissions" - RelationKeyIdentity domain.RelationKey = "identity" - RelationKeyParticipantStatus domain.RelationKey = "participantStatus" - RelationKeyIdentityProfileLink domain.RelationKey = "identityProfileLink" - RelationKeyProfileOwnerIdentity domain.RelationKey = "profileOwnerIdentity" - RelationKeyTargetSpaceId domain.RelationKey = "targetSpaceId" - RelationKeyFileId domain.RelationKey = "fileId" - RelationKeyLastUsedDate domain.RelationKey = "lastUsedDate" - RelationKeyRevision domain.RelationKey = "revision" - RelationKeyImageKind domain.RelationKey = "imageKind" - RelationKeyImportType domain.RelationKey = "importType" - RelationKeyGlobalName domain.RelationKey = "globalName" - RelationKeySyncStatus domain.RelationKey = "syncStatus" - RelationKeySyncDate domain.RelationKey = "syncDate" - RelationKeySyncError domain.RelationKey = "syncError" - RelationKeyHasChat domain.RelationKey = "hasChat" - RelationKeyChatId domain.RelationKey = "chatId" - RelationKeyMentions domain.RelationKey = "mentions" - RelationKeyTimestamp domain.RelationKey = "timestamp" + RelationKeyTag domain.RelationKey = "tag" + RelationKeyCamera domain.RelationKey = "camera" + RelationKeyHeightInPixels domain.RelationKey = "heightInPixels" + RelationKeyCreatedDate domain.RelationKey = "createdDate" + RelationKeyToBeDeletedDate domain.RelationKey = "toBeDeletedDate" + RelationKeyRelationFormatObjectTypes domain.RelationKey = "relationFormatObjectTypes" + RelationKeyRelationKey domain.RelationKey = "relationKey" + RelationKeyRelationOptionColor domain.RelationKey = "relationOptionColor" + RelationKeyLatestAclHeadId domain.RelationKey = "latestAclHeadId" + RelationKeyDone domain.RelationKey = "done" + RelationKeyMediaArtistURL domain.RelationKey = "mediaArtistURL" + RelationKeyTemplateIsBundled domain.RelationKey = "templateIsBundled" + RelationKeyRestrictions domain.RelationKey = "restrictions" + RelationKeyReadersLimit domain.RelationKey = "readersLimit" + RelationKeyWritersLimit domain.RelationKey = "writersLimit" + RelationKeySharedSpacesLimit domain.RelationKey = "sharedSpacesLimit" + RelationKeyIsHighlighted domain.RelationKey = "isHighlighted" + RelationKeyTasks domain.RelationKey = "tasks" + RelationKeySnippet domain.RelationKey = "snippet" + RelationKeyRelationFormat domain.RelationKey = "relationFormat" + RelationKeyRelationReadonlyValue domain.RelationKey = "relationReadonlyValue" + RelationKeyIconImage domain.RelationKey = "iconImage" + RelationKeyIngredients domain.RelationKey = "ingredients" + RelationKeyGenre domain.RelationKey = "genre" + RelationKeyReleasedYear domain.RelationKey = "releasedYear" + RelationKeyCoverScale domain.RelationKey = "coverScale" + RelationKeyRelationDefaultValue domain.RelationKey = "relationDefaultValue" + RelationKeyLinkedProjects domain.RelationKey = "linkedProjects" + RelationKeyAudioAlbum domain.RelationKey = "audioAlbum" + RelationKeyLayoutAlign domain.RelationKey = "layoutAlign" + RelationKeyStatus domain.RelationKey = "status" + RelationKeyIsHidden domain.RelationKey = "isHidden" + RelationKeyIsHiddenDiscovery domain.RelationKey = "isHiddenDiscovery" + RelationKeyMediaArtistName domain.RelationKey = "mediaArtistName" + RelationKeyEmail domain.RelationKey = "email" + RelationKeyCompany domain.RelationKey = "company" + RelationKeyAperture domain.RelationKey = "aperture" + RelationKeyLastModifiedDate domain.RelationKey = "lastModifiedDate" + RelationKeyRecommendedRelations domain.RelationKey = "recommendedRelations" + RelationKeyCreator domain.RelationKey = "creator" + RelationKeyRecommendedLayout domain.RelationKey = "recommendedLayout" + RelationKeyLastOpenedDate domain.RelationKey = "lastOpenedDate" + RelationKeyAuthor domain.RelationKey = "author" + RelationKeyArtist domain.RelationKey = "artist" + RelationKeyDueDate domain.RelationKey = "dueDate" + RelationKeyIconEmoji domain.RelationKey = "iconEmoji" + RelationKeyCoverType domain.RelationKey = "coverType" + RelationKeyCoverY domain.RelationKey = "coverY" + RelationKeyTime domain.RelationKey = "time" + RelationKeySizeInBytes domain.RelationKey = "sizeInBytes" + RelationKeyCollectionOf domain.RelationKey = "collectionOf" + RelationKeyIsReadonly domain.RelationKey = "isReadonly" + RelationKeyAddedDate domain.RelationKey = "addedDate" + RelationKeyAssignee domain.RelationKey = "assignee" + RelationKeyExposure domain.RelationKey = "exposure" + RelationKeyTargetObjectType domain.RelationKey = "targetObjectType" + RelationKeyIsFavorite domain.RelationKey = "isFavorite" + RelationKeyWorkspaceId domain.RelationKey = "workspaceId" + RelationKeySpaceId domain.RelationKey = "spaceId" + RelationKeyAudioGenre domain.RelationKey = "audioGenre" + RelationKeyName domain.RelationKey = "name" + RelationKeyMood domain.RelationKey = "mood" + RelationKeyAudioLyrics domain.RelationKey = "audioLyrics" + RelationKeyFocalRatio domain.RelationKey = "focalRatio" + RelationKeyPriority domain.RelationKey = "priority" + RelationKeyFileMimeType domain.RelationKey = "fileMimeType" + RelationKeyType domain.RelationKey = "type" + RelationKeyLayout domain.RelationKey = "layout" + RelationKeyAudioAlbumTrackNumber domain.RelationKey = "audioAlbumTrackNumber" + RelationKeyInternalFlags domain.RelationKey = "internalFlags" + RelationKeyCoverX domain.RelationKey = "coverX" + RelationKeyDescription domain.RelationKey = "description" + RelationKeyPicture domain.RelationKey = "picture" + RelationKeyId domain.RelationKey = "id" + RelationKeyUrl domain.RelationKey = "url" + RelationKeyCameraIso domain.RelationKey = "cameraIso" + RelationKeyIsDeleted domain.RelationKey = "isDeleted" + RelationKeyLinks domain.RelationKey = "links" + RelationKeyCoverId domain.RelationKey = "coverId" + RelationKeyLastModifiedBy domain.RelationKey = "lastModifiedBy" + RelationKeyRelationMaxCount domain.RelationKey = "relationMaxCount" + RelationKeyWidthInPixels domain.RelationKey = "widthInPixels" + RelationKeyProgress domain.RelationKey = "progress" + RelationKeySetOf domain.RelationKey = "setOf" + RelationKeyIsArchived domain.RelationKey = "isArchived" + RelationKeyFileExt domain.RelationKey = "fileExt" + RelationKeyFeaturedRelations domain.RelationKey = "featuredRelations" + RelationKeyPhone domain.RelationKey = "phone" + RelationKeySmartblockTypes domain.RelationKey = "smartblockTypes" + RelationKeySource domain.RelationKey = "source" + RelationKeySourceObject domain.RelationKey = "sourceObject" + RelationKeyOldAnytypeID domain.RelationKey = "oldAnytypeID" + RelationKeySpaceDashboardId domain.RelationKey = "spaceDashboardId" + RelationKeyIconOption domain.RelationKey = "iconOption" + RelationKeySpaceAccessibility domain.RelationKey = "spaceAccessibility" + RelationKeySpaceAccessType domain.RelationKey = "spaceAccessType" + RelationKeySourceFilePath domain.RelationKey = "sourceFilePath" + RelationKeyFileSyncStatus domain.RelationKey = "fileSyncStatus" + RelationKeyFileBackupStatus domain.RelationKey = "fileBackupStatus" + RelationKeyFileIndexingStatus domain.RelationKey = "fileIndexingStatus" + RelationKeyLastChangeId domain.RelationKey = "lastChangeId" + RelationKeyStarred domain.RelationKey = "starred" + RelationKeyDefaultTemplateId domain.RelationKey = "defaultTemplateId" + RelationKeyUniqueKey domain.RelationKey = "uniqueKey" + RelationKeyBacklinks domain.RelationKey = "backlinks" + RelationKeyIsUninstalled domain.RelationKey = "isUninstalled" + RelationKeyOrigin domain.RelationKey = "origin" + RelationKeySpaceLocalStatus domain.RelationKey = "spaceLocalStatus" + RelationKeySpaceRemoteStatus domain.RelationKey = "spaceRemoteStatus" + RelationKeySpaceShareableStatus domain.RelationKey = "spaceShareableStatus" + RelationKeyIsAclShared domain.RelationKey = "isAclShared" + RelationKeySpaceAccountStatus domain.RelationKey = "spaceAccountStatus" + RelationKeySpaceInviteFileCid domain.RelationKey = "spaceInviteFileCid" + RelationKeySpaceInviteFileKey domain.RelationKey = "spaceInviteFileKey" + RelationKeyParticipantPermissions domain.RelationKey = "participantPermissions" + RelationKeyIdentity domain.RelationKey = "identity" + RelationKeyParticipantStatus domain.RelationKey = "participantStatus" + RelationKeyIdentityProfileLink domain.RelationKey = "identityProfileLink" + RelationKeyProfileOwnerIdentity domain.RelationKey = "profileOwnerIdentity" + RelationKeyTargetSpaceId domain.RelationKey = "targetSpaceId" + RelationKeyFileId domain.RelationKey = "fileId" + RelationKeyLastUsedDate domain.RelationKey = "lastUsedDate" + RelationKeyRevision domain.RelationKey = "revision" + RelationKeyImageKind domain.RelationKey = "imageKind" + RelationKeyImportType domain.RelationKey = "importType" + RelationKeyGlobalName domain.RelationKey = "globalName" + RelationKeySyncStatus domain.RelationKey = "syncStatus" + RelationKeySyncDate domain.RelationKey = "syncDate" + RelationKeySyncError domain.RelationKey = "syncError" + RelationKeyHasChat domain.RelationKey = "hasChat" + RelationKeyChatId domain.RelationKey = "chatId" + RelationKeyMentions domain.RelationKey = "mentions" + RelationKeyTimestamp domain.RelationKey = "timestamp" + RelationKeyRecommendedFeaturedRelations domain.RelationKey = "recommendedFeaturedRelations" ) var ( @@ -1292,6 +1293,20 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyRecommendedFeaturedRelations: { + + DataSource: model.Relation_details, + Description: "List of recommended featured relations", + Format: model.RelationFormat_object, + Hidden: true, + Id: "_brrecommendedFeaturedRelations", + Key: "recommendedFeaturedRelations", + Name: "Recommended featured relations", + ObjectTypes: []string{TypePrefix + "relation"}, + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyRecommendedLayout: { DataSource: model.Relation_details, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index 2c73fad7b..17edc598a 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1365,5 +1365,18 @@ "name": "Timestamp", "readonly": true, "source": "derived" + }, + { + "description": "List of recommended featured relations", + "format": "object", + "hidden": true, + "key": "recommendedFeaturedRelations", + "maxCount": 0, + "name": "Recommended featured relations", + "objectTypes": [ + "relation" + ], + "readonly": false, + "source": "details" } ] diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index f43d21d81..2f4a6f402 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "cebd4ab7522c2ca901215e20861e005c1ad1a6ca2a77d7c1205e9e51edd901db" +const SystemRelationsChecksum = "11ca17268a1ec86e67904f9379fba4b70152fe4f6e88db3d046b6a518fe8ccd4" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations @@ -82,4 +82,5 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyChatId, RelationKeyHasChat, RelationKeyTimestamp, + RelationKeyRecommendedFeaturedRelations, }...) diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index 67fac4e2e..d80b4eb4b 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -90,5 +90,6 @@ "mentions", "chatId", "hasChat", - "timestamp" + "timestamp", + "recommendedFeaturedRelations" ] From 1873c917744266ee6f0369459cff591acfc2d7bd Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 25 Nov 2024 15:12:55 +0100 Subject: [PATCH 005/176] GO-4231 Add unit tests --- core/block/detailservice/relations_test.go | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index e92404a0a..f6f0756cf 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -224,3 +224,95 @@ func TestService_ObjectTypeRemoveRelations(t *testing.T) { assert.ErrorIs(t, ErrBundledTypeIsReadonly, err) }) } + +func TestService_objectTypeSetRelations(t *testing.T) { + t.Run("set recommended relations to type", func(t *testing.T) { + // given + fx := newFixture(t) + sb := smarttest.New(bundle.TypeKeyTask.URL()) + sb.SetSpace(fx.space) + sb.Doc.(*state.State).SetDetails(&types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList([]string{ + bundle.RelationKeyAssignee.URL(), + bundle.RelationKeyIsFavorite.URL(), + bundle.RelationKeyLinkedProjects.URL(), + }), + }}) + fx.getter.EXPECT().GetObject(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, objectId string) (smartblock.SmartBlock, error) { + assert.Equal(t, bundle.TypeKeyTask.URL(), objectId) + return sb, nil + }) + fx.space.EXPECT().GetRelationIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.RelationKey) (string, error) { + return key.URL(), nil + }) + + // when + err := fx.ObjectTypeSetRelations(nil, bundle.TypeKeyTask.URL(), []domain.RelationKey{ + bundle.RelationKeyAssignee, bundle.RelationKeyDone, + }) + + // then + assert.NoError(t, err) + assert.Equal(t, []string{bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL()}, + pbtypes.GetStringList(sb.Details(), bundle.RelationKeyRecommendedRelations.String())) + }) + + t.Run("setting recommended relations to bundled type is prohibited", func(t *testing.T) { + // given + fx := newFixture(t) + + // when + err := fx.ObjectTypeSetRelations(nil, bundle.TypeKeyTask.BundledURL(), []domain.RelationKey{ + bundle.RelationKeyAssignee, bundle.RelationKeyDone, + }) + + // then + assert.Error(t, err) + assert.ErrorIs(t, ErrBundledTypeIsReadonly, err) + }) + + t.Run("set recommended featured relations to type", func(t *testing.T) { + // given + fx := newFixture(t) + sb := smarttest.New(bundle.TypeKeyTask.URL()) + sb.SetSpace(fx.space) + sb.Doc.(*state.State).SetDetails(&types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyRecommendedFeaturedRelations.String(): pbtypes.StringList([]string{ + bundle.RelationKeyAssignee.URL(), + bundle.RelationKeyIsFavorite.URL(), + bundle.RelationKeyLinkedProjects.URL(), + }), + }}) + fx.getter.EXPECT().GetObject(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, objectId string) (smartblock.SmartBlock, error) { + assert.Equal(t, bundle.TypeKeyTask.URL(), objectId) + return sb, nil + }) + fx.space.EXPECT().GetRelationIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.RelationKey) (string, error) { + return key.URL(), nil + }) + + // when + err := fx.ObjectTypeSetFeaturedRelations(nil, bundle.TypeKeyTask.URL(), []domain.RelationKey{ + bundle.RelationKeyAssignee, bundle.RelationKeyDone, + }) + + // then + assert.NoError(t, err) + assert.Equal(t, []string{bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL()}, + pbtypes.GetStringList(sb.Details(), bundle.RelationKeyRecommendedFeaturedRelations.String())) + }) + + t.Run("setting recommended featured relations to bundled type is prohibited", func(t *testing.T) { + // given + fx := newFixture(t) + + // when + err := fx.ObjectTypeSetFeaturedRelations(nil, bundle.TypeKeyTask.BundledURL(), []domain.RelationKey{ + bundle.RelationKeyAssignee, bundle.RelationKeyDone, + }) + + // then + assert.Error(t, err) + assert.ErrorIs(t, ErrBundledTypeIsReadonly, err) + }) +} From 2f273ae84fb6d2b8c7bbaa4fa8237aa1fa11bdf4 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 28 Nov 2024 11:59:57 +0100 Subject: [PATCH 006/176] GO-4231 Rename request params --- core/block/detailservice/relations.go | 20 +- core/block/detailservice/relations_test.go | 24 +- core/block/detailservice/service.go | 4 +- core/relations.go | 18 +- docs/proto.md | 8 +- pb/commands.pb.go | 2494 ++++++++++---------- pb/protos/commands.proto | 8 +- 7 files changed, 1275 insertions(+), 1301 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 83edc07aa..3809c2d5c 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -66,16 +66,16 @@ func (s *service) ObjectTypeRemoveRelations(ctx context.Context, objectTypeId st }) } -func (s *service) ObjectTypeSetRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error { - return s.objectTypeSetRelations(ctx, objectTypeId, relationKeys, false) +func (s *service) ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error { + return s.objectTypeSetRelations(objectTypeId, relationObjectIds, false) } -func (s *service) ObjectTypeSetFeaturedRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error { - return s.objectTypeSetRelations(ctx, objectTypeId, relationKeys, true) +func (s *service) ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error { + return s.objectTypeSetRelations(objectTypeId, relationObjectIds, true) } func (s *service) objectTypeSetRelations( - ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey, isFeatured bool, + objectTypeId string, relationList []string, isFeatured bool, ) error { if strings.HasPrefix(objectTypeId, bundle.TypePrefix) { return ErrBundledTypeIsReadonly @@ -86,15 +86,7 @@ func (s *service) objectTypeSetRelations( } return cache.Do(s.objectGetter, objectTypeId, func(b smartblock.SmartBlock) error { st := b.NewState() - list := make([]string, len(relationKeys)) - for i, relKey := range relationKeys { - relId, err := b.Space().GetRelationIdByKey(ctx, relKey) - if err != nil { - return fmt.Errorf("get relation id by key %s: %w", relKey, err) - } - list[i] = relId - } - st.SetDetailAndBundledRelation(relationToSet, pbtypes.StringList(list)) + st.SetDetailAndBundledRelation(relationToSet, pbtypes.StringList(relationList)) return b.Apply(st) }) } diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index f6f0756cf..9fdca74a8 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -230,7 +230,6 @@ func TestService_objectTypeSetRelations(t *testing.T) { // given fx := newFixture(t) sb := smarttest.New(bundle.TypeKeyTask.URL()) - sb.SetSpace(fx.space) sb.Doc.(*state.State).SetDetails(&types.Struct{Fields: map[string]*types.Value{ bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList([]string{ bundle.RelationKeyAssignee.URL(), @@ -242,13 +241,10 @@ func TestService_objectTypeSetRelations(t *testing.T) { assert.Equal(t, bundle.TypeKeyTask.URL(), objectId) return sb, nil }) - fx.space.EXPECT().GetRelationIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.RelationKey) (string, error) { - return key.URL(), nil - }) // when - err := fx.ObjectTypeSetRelations(nil, bundle.TypeKeyTask.URL(), []domain.RelationKey{ - bundle.RelationKeyAssignee, bundle.RelationKeyDone, + err := fx.ObjectTypeSetRelations(bundle.TypeKeyTask.URL(), []string{ + bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), }) // then @@ -262,8 +258,8 @@ func TestService_objectTypeSetRelations(t *testing.T) { fx := newFixture(t) // when - err := fx.ObjectTypeSetRelations(nil, bundle.TypeKeyTask.BundledURL(), []domain.RelationKey{ - bundle.RelationKeyAssignee, bundle.RelationKeyDone, + err := fx.ObjectTypeSetRelations(bundle.TypeKeyTask.BundledURL(), []string{ + bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), }) // then @@ -275,7 +271,6 @@ func TestService_objectTypeSetRelations(t *testing.T) { // given fx := newFixture(t) sb := smarttest.New(bundle.TypeKeyTask.URL()) - sb.SetSpace(fx.space) sb.Doc.(*state.State).SetDetails(&types.Struct{Fields: map[string]*types.Value{ bundle.RelationKeyRecommendedFeaturedRelations.String(): pbtypes.StringList([]string{ bundle.RelationKeyAssignee.URL(), @@ -287,13 +282,10 @@ func TestService_objectTypeSetRelations(t *testing.T) { assert.Equal(t, bundle.TypeKeyTask.URL(), objectId) return sb, nil }) - fx.space.EXPECT().GetRelationIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.RelationKey) (string, error) { - return key.URL(), nil - }) // when - err := fx.ObjectTypeSetFeaturedRelations(nil, bundle.TypeKeyTask.URL(), []domain.RelationKey{ - bundle.RelationKeyAssignee, bundle.RelationKeyDone, + err := fx.ObjectTypeSetFeaturedRelations(bundle.TypeKeyTask.URL(), []string{ + bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), }) // then @@ -307,8 +299,8 @@ func TestService_objectTypeSetRelations(t *testing.T) { fx := newFixture(t) // when - err := fx.ObjectTypeSetFeaturedRelations(nil, bundle.TypeKeyTask.BundledURL(), []domain.RelationKey{ - bundle.RelationKeyAssignee, bundle.RelationKeyDone, + err := fx.ObjectTypeSetFeaturedRelations(bundle.TypeKeyTask.BundledURL(), []string{ + bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), }) // then diff --git a/core/block/detailservice/service.go b/core/block/detailservice/service.go index 8f55a85fd..9c63201e5 100644 --- a/core/block/detailservice/service.go +++ b/core/block/detailservice/service.go @@ -40,8 +40,8 @@ type Service interface { ObjectTypeAddRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error - ObjectTypeSetRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error - ObjectTypeSetFeaturedRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error + ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error + ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error ListRelationsWithValue(spaceId string, value *types.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) diff --git a/core/relations.go b/core/relations.go index f8540b483..64dc5604f 100644 --- a/core/relations.go +++ b/core/relations.go @@ -48,14 +48,9 @@ func (mw *Middleware) ObjectTypeRelationRemove(cctx context.Context, req *pb.Rpc } } -func (mw *Middleware) ObjectTypeRecommendedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { +func (mw *Middleware) ObjectTypeRecommendedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { detailsService := getService[detailservice.Service](mw) - keys := make([]domain.RelationKey, 0, len(req.RelationKeys)) - for _, relKey := range req.RelationKeys { - keys = append(keys, domain.RelationKey(relKey)) - } - - err := detailsService.ObjectTypeSetRelations(ctx, req.ObjectTypeId, keys) + err := detailsService.ObjectTypeSetRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedRelationsSetResponseError_READONLY_OBJECT_TYPE), ) @@ -67,14 +62,9 @@ func (mw *Middleware) ObjectTypeRecommendedRelationsSet(ctx context.Context, req } } -func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { +func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { detailsService := getService[detailservice.Service](mw) - keys := make([]domain.RelationKey, 0, len(req.RelationKeys)) - for _, relKey := range req.RelationKeys { - keys = append(keys, domain.RelationKey(relKey)) - } - - err := detailsService.ObjectTypeSetFeaturedRelations(ctx, req.ObjectTypeId, keys) + err := detailsService.ObjectTypeSetFeaturedRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_READONLY_OBJECT_TYPE), ) diff --git a/docs/proto.md b/docs/proto.md index 9e02e55ae..d3ce3cbc5 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -17647,8 +17647,8 @@ Available undo/redo operations | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| objectTypeId | [string](#string) | | | -| relationKeys | [string](#string) | repeated | | +| typeObjectId | [string](#string) | | | +| relationObjectIds | [string](#string) | repeated | | @@ -17704,8 +17704,8 @@ Available undo/redo operations | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| objectTypeId | [string](#string) | | | -| relationKeys | [string](#string) | repeated | | +| typeObjectId | [string](#string) | | | +| relationObjectIds | [string](#string) | repeated | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index dfd0a96f2..e8b29baca 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -31915,8 +31915,8 @@ func (m *RpcObjectTypeRecommendedRelationsSet) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSet proto.InternalMessageInfo type RpcObjectTypeRecommendedRelationsSetRequest struct { - ObjectTypeId string `protobuf:"bytes,1,opt,name=objectTypeId,proto3" json:"objectTypeId,omitempty"` - RelationKeys []string `protobuf:"bytes,2,rep,name=relationKeys,proto3" json:"relationKeys,omitempty"` + TypeObjectId string `protobuf:"bytes,1,opt,name=typeObjectId,proto3" json:"typeObjectId,omitempty"` + RelationObjectIds []string `protobuf:"bytes,2,rep,name=relationObjectIds,proto3" json:"relationObjectIds,omitempty"` } func (m *RpcObjectTypeRecommendedRelationsSetRequest) Reset() { @@ -31956,16 +31956,16 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectTypeRecommendedRelationsSetRequest proto.InternalMessageInfo -func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetObjectTypeId() string { +func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetTypeObjectId() string { if m != nil { - return m.ObjectTypeId + return m.TypeObjectId } return "" } -func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetRelationKeys() []string { +func (m *RpcObjectTypeRecommendedRelationsSetRequest) GetRelationObjectIds() []string { if m != nil { - return m.RelationKeys + return m.RelationObjectIds } return nil } @@ -32115,8 +32115,8 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSet) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSet proto.InternalMessageInfo type RpcObjectTypeRecommendedFeaturedRelationsSetRequest struct { - ObjectTypeId string `protobuf:"bytes,1,opt,name=objectTypeId,proto3" json:"objectTypeId,omitempty"` - RelationKeys []string `protobuf:"bytes,2,rep,name=relationKeys,proto3" json:"relationKeys,omitempty"` + TypeObjectId string `protobuf:"bytes,1,opt,name=typeObjectId,proto3" json:"typeObjectId,omitempty"` + RelationObjectIds []string `protobuf:"bytes,2,rep,name=relationObjectIds,proto3" json:"relationObjectIds,omitempty"` } func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Reset() { @@ -32156,16 +32156,16 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) XXX_DiscardUnknown var xxx_messageInfo_RpcObjectTypeRecommendedFeaturedRelationsSetRequest proto.InternalMessageInfo -func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetObjectTypeId() string { +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetTypeObjectId() string { if m != nil { - return m.ObjectTypeId + return m.TypeObjectId } return "" } -func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetRelationKeys() []string { +func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) GetRelationObjectIds() []string { if m != nil { - return m.RelationKeys + return m.RelationObjectIds } return nil } @@ -70632,1211 +70632,1211 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 19250 bytes of a gzipped FileDescriptorProto + // 19263 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x78, 0x2c, 0x47, 0x75, 0x2f, 0xba, 0x67, 0x7a, 0x66, 0x24, 0x2d, 0x3d, 0xf6, 0xec, 0xf6, 0xde, 0xdb, 0xdb, 0x65, - 0xb3, 0x6d, 0xb6, 0x8d, 0x71, 0x8c, 0x91, 0x8d, 0x4d, 0x00, 0x1b, 0x1b, 0x7b, 0x34, 0x6a, 0x49, - 0x63, 0x4b, 0x33, 0xa2, 0x67, 0xb4, 0x37, 0x4e, 0x0e, 0x77, 0xd2, 0x9a, 0x29, 0x49, 0xed, 0x3d, - 0xea, 0x9e, 0xf4, 0xb4, 0xb4, 0xb7, 0xb8, 0xdf, 0xb9, 0x27, 0x84, 0x98, 0x47, 0x08, 0x07, 0x08, - 0x21, 0x89, 0xc3, 0xdb, 0x60, 0x38, 0x90, 0x00, 0xe1, 0x7d, 0x20, 0x09, 0x10, 0x1e, 0x81, 0x90, - 0x84, 0x10, 0x08, 0xe1, 0x91, 0xf8, 0x06, 0xc2, 0x23, 0xe4, 0x7e, 0xe1, 0x70, 0x93, 0x7b, 0x80, - 0xe3, 0x24, 0xdc, 0xdc, 0xaf, 0xab, 0xaa, 0x1f, 0x35, 0x9a, 0xee, 0xa9, 0x1e, 0x4d, 0x8f, 0x4c, - 0xb8, 0xff, 0x75, 0x57, 0x57, 0xaf, 0x5a, 0xb5, 0x7e, 0xab, 0xaa, 0x56, 0x55, 0xad, 0x5a, 0x05, - 0xa7, 0xda, 0xeb, 0x37, 0xb6, 0x2d, 0xd3, 0x36, 0x3b, 0x37, 0x36, 0xcc, 0xed, 0x6d, 0xcd, 0x68, - 0x76, 0x66, 0xc9, 0xbb, 0x3c, 0xa6, 0x19, 0x7b, 0xf6, 0x5e, 0x1b, 0xa3, 0x6b, 0xda, 0xe7, 0x37, - 0x6f, 0x6c, 0xe9, 0xeb, 0x37, 0xb6, 0xd7, 0x6f, 0xdc, 0x36, 0x9b, 0xb8, 0xe5, 0xfe, 0x40, 0x5e, - 0x58, 0x76, 0x74, 0x5d, 0x58, 0xae, 0x96, 0xd9, 0xd0, 0x5a, 0x1d, 0xdb, 0xb4, 0x30, 0xcb, 0x79, - 0xd2, 0x2f, 0x12, 0xef, 0x62, 0xc3, 0x76, 0x29, 0x5c, 0xb1, 0x69, 0x9a, 0x9b, 0x2d, 0x4c, 0xbf, - 0xad, 0xef, 0x6c, 0xdc, 0xd8, 0xb1, 0xad, 0x9d, 0x86, 0xcd, 0xbe, 0x5e, 0xd5, 0xfd, 0xb5, 0x89, - 0x3b, 0x0d, 0x4b, 0x6f, 0xdb, 0xa6, 0x45, 0x73, 0x9c, 0xf9, 0xd6, 0x23, 0x63, 0x20, 0xa9, 0xed, - 0x06, 0xfa, 0xc1, 0x18, 0x48, 0x85, 0x76, 0x1b, 0x7d, 0x32, 0x0d, 0xb0, 0x88, 0xed, 0xb3, 0xd8, - 0xea, 0xe8, 0xa6, 0x81, 0x8e, 0xc2, 0x98, 0x8a, 0x7f, 0x7e, 0x07, 0x77, 0xec, 0xdb, 0x32, 0x2f, - 0xfc, 0xb6, 0x94, 0x42, 0x0f, 0xa5, 0x61, 0x5c, 0xc5, 0x9d, 0xb6, 0x69, 0x74, 0xb0, 0x7c, 0x17, - 0x64, 0xb1, 0x65, 0x99, 0xd6, 0xa9, 0xd4, 0x55, 0xa9, 0xeb, 0x26, 0x6f, 0xbe, 0x7e, 0x96, 0x55, - 0x7f, 0x56, 0x6d, 0x37, 0x66, 0x0b, 0xed, 0xf6, 0xac, 0x4f, 0x69, 0xd6, 0xfd, 0x69, 0x56, 0x71, - 0xfe, 0x50, 0xe9, 0x8f, 0xf2, 0x29, 0x18, 0xdb, 0xa5, 0x19, 0x4e, 0xa5, 0xaf, 0x4a, 0x5d, 0x37, - 0xa1, 0xba, 0xaf, 0xce, 0x97, 0x26, 0xb6, 0x35, 0xbd, 0xd5, 0x39, 0x25, 0xd1, 0x2f, 0xec, 0x15, - 0x3d, 0x98, 0x82, 0x2c, 0x21, 0x22, 0x17, 0x21, 0xd3, 0x30, 0x9b, 0x98, 0x14, 0x3f, 0x73, 0xf3, - 0x8d, 0xe2, 0xc5, 0xcf, 0x16, 0xcd, 0x26, 0x56, 0xc9, 0xcf, 0xf2, 0x55, 0x30, 0xe9, 0x8a, 0xc5, - 0x67, 0x23, 0x98, 0x74, 0xe6, 0x66, 0xc8, 0x38, 0xf9, 0xe5, 0x71, 0xc8, 0x94, 0xd7, 0x96, 0x97, - 0xf3, 0x47, 0xe4, 0x63, 0x30, 0xbd, 0x56, 0xbe, 0xa7, 0x5c, 0x39, 0x57, 0xae, 0x2b, 0xaa, 0x5a, - 0x51, 0xf3, 0x29, 0x79, 0x1a, 0x26, 0xe6, 0x0a, 0xf3, 0xf5, 0x52, 0x79, 0x75, 0xad, 0x96, 0x4f, - 0xa3, 0xd7, 0x4a, 0x30, 0x53, 0xc5, 0xf6, 0x3c, 0xde, 0xd5, 0x1b, 0xb8, 0x6a, 0x6b, 0x36, 0x46, - 0x2f, 0x4d, 0x79, 0xc2, 0x94, 0xd7, 0x9c, 0x42, 0xbd, 0x4f, 0xac, 0x02, 0xb7, 0xec, 0xab, 0x00, - 0x4f, 0x61, 0x96, 0xfd, 0x3d, 0x1b, 0x48, 0x53, 0x83, 0x74, 0xce, 0x3c, 0x11, 0x26, 0x03, 0xdf, - 0xe4, 0x19, 0x80, 0xb9, 0x42, 0xf1, 0x9e, 0x45, 0xb5, 0xb2, 0x56, 0x9e, 0xcf, 0x1f, 0x71, 0xde, - 0x17, 0x2a, 0xaa, 0xc2, 0xde, 0x53, 0xe8, 0x91, 0x54, 0x00, 0xcc, 0x79, 0x1e, 0xcc, 0xd9, 0xfe, - 0xcc, 0xf4, 0x00, 0x14, 0xbd, 0xd9, 0x03, 0x67, 0x91, 0x03, 0xe7, 0x96, 0x78, 0xe4, 0x92, 0x07, - 0xe8, 0xfe, 0x34, 0x8c, 0x57, 0xb7, 0x76, 0xec, 0xa6, 0x79, 0xc1, 0x40, 0x13, 0x1e, 0x32, 0xe8, - 0xbb, 0x41, 0x99, 0x3c, 0x83, 0x97, 0xc9, 0x75, 0xfb, 0x2b, 0xc1, 0x28, 0x84, 0x48, 0xe3, 0xf5, - 0x9e, 0x34, 0x0a, 0x9c, 0x34, 0x9e, 0x28, 0x4a, 0x28, 0x79, 0x39, 0xbc, 0xec, 0x16, 0xc8, 0x56, - 0xdb, 0x5a, 0x03, 0xa3, 0x3f, 0x95, 0x60, 0x6a, 0x19, 0x6b, 0xbb, 0xb8, 0xd0, 0x6e, 0x5b, 0xe6, - 0x2e, 0x46, 0x45, 0x5f, 0x5f, 0x4f, 0xc1, 0x58, 0xc7, 0xc9, 0x54, 0x6a, 0x92, 0x1a, 0x4c, 0xa8, - 0xee, 0xab, 0x7c, 0x1a, 0x40, 0x6f, 0x62, 0xc3, 0xd6, 0x6d, 0x1d, 0x77, 0x4e, 0xa5, 0xaf, 0x92, - 0xae, 0x9b, 0x50, 0x03, 0x29, 0xe8, 0x07, 0x69, 0x51, 0x1d, 0x23, 0x5c, 0xcc, 0x06, 0x39, 0x08, - 0x91, 0xea, 0x1b, 0xd3, 0x22, 0x3a, 0xd6, 0x97, 0x5c, 0x3c, 0xd9, 0xbe, 0x23, 0x15, 0x5f, 0xb8, - 0x4e, 0x8e, 0x72, 0xa5, 0x5e, 0x5d, 0x2b, 0x2e, 0xd5, 0xab, 0xab, 0x85, 0xa2, 0x92, 0xc7, 0xf2, - 0x71, 0xc8, 0x93, 0xc7, 0x7a, 0xa9, 0x5a, 0x9f, 0x57, 0x96, 0x95, 0x9a, 0x32, 0x9f, 0xdf, 0x90, - 0x65, 0x98, 0x51, 0x95, 0x67, 0xae, 0x29, 0xd5, 0x5a, 0x7d, 0xa1, 0x50, 0x5a, 0x56, 0xe6, 0xf3, - 0x9b, 0xce, 0xcf, 0xcb, 0xa5, 0x95, 0x52, 0xad, 0xae, 0x2a, 0x85, 0xe2, 0x92, 0x32, 0x9f, 0xdf, - 0x92, 0x2f, 0x85, 0x4b, 0xca, 0x95, 0x7a, 0x61, 0x75, 0x55, 0xad, 0x9c, 0x55, 0xea, 0xec, 0x8f, - 0x6a, 0x5e, 0xa7, 0x05, 0xd5, 0xea, 0xd5, 0xa5, 0x82, 0xaa, 0x14, 0xe6, 0x96, 0x95, 0xfc, 0x7d, - 0xe8, 0x79, 0x12, 0x4c, 0xaf, 0x68, 0xe7, 0x71, 0x75, 0x4b, 0xb3, 0xb0, 0xb6, 0xde, 0xc2, 0xe8, - 0x6a, 0x01, 0x3c, 0xd1, 0x9f, 0x06, 0xf1, 0x52, 0x78, 0xbc, 0x6e, 0xec, 0x21, 0x60, 0xae, 0x88, - 0x10, 0xc0, 0xfe, 0x97, 0xd7, 0x0c, 0x96, 0x38, 0xc0, 0x9e, 0x1c, 0x93, 0x5e, 0x3c, 0xc4, 0x7e, - 0xf1, 0x51, 0x80, 0x18, 0x7a, 0x58, 0x82, 0x99, 0x92, 0xb1, 0xab, 0xdb, 0x78, 0x11, 0x1b, 0xd8, - 0x72, 0xc6, 0x01, 0x21, 0x18, 0x1e, 0x92, 0x02, 0x30, 0x2c, 0xf0, 0x30, 0xdc, 0xd4, 0x43, 0x6c, - 0x7c, 0x19, 0x21, 0xa3, 0xed, 0x15, 0x30, 0xa1, 0x93, 0x7c, 0x45, 0xbd, 0xc9, 0x24, 0xe6, 0x27, - 0xc8, 0xd7, 0xc0, 0x34, 0x7d, 0x59, 0xd0, 0x5b, 0xf8, 0x1e, 0xbc, 0xc7, 0xc6, 0x5d, 0x3e, 0x11, - 0xfd, 0x8a, 0xd7, 0xf8, 0x4a, 0x1c, 0x96, 0x3f, 0x1d, 0x97, 0xa9, 0x78, 0x60, 0xbe, 0xf2, 0xd1, - 0xd0, 0xfc, 0xf6, 0xb5, 0x32, 0x1d, 0xfd, 0x28, 0x0d, 0x93, 0x55, 0xdb, 0x6c, 0x3b, 0x2a, 0xab, - 0x1b, 0x9b, 0x62, 0xe0, 0x7e, 0x3a, 0xd8, 0xc6, 0x8a, 0x3c, 0xb8, 0x4f, 0xec, 0x21, 0xc7, 0x40, - 0x01, 0x21, 0x2d, 0xec, 0x07, 0x5e, 0x0b, 0x5b, 0xe0, 0x50, 0xb9, 0x39, 0x16, 0xb5, 0x1f, 0xc3, - 0xf6, 0xf5, 0x4a, 0x09, 0xf2, 0xae, 0x9a, 0xd9, 0xc5, 0x1d, 0xcb, 0xc2, 0x86, 0x2d, 0x06, 0xc2, - 0x5f, 0x07, 0x41, 0x58, 0xe2, 0x41, 0xb8, 0x39, 0x42, 0x99, 0xdd, 0x52, 0x12, 0x6c, 0x63, 0x1f, - 0xf5, 0xd0, 0xbc, 0x87, 0x43, 0xf3, 0xa9, 0xf1, 0xd9, 0x8a, 0x07, 0xe9, 0xd2, 0x00, 0x88, 0x1e, - 0x87, 0xbc, 0x33, 0x26, 0x15, 0x6b, 0xa5, 0xb3, 0x4a, 0xbd, 0x54, 0x3e, 0x5b, 0xaa, 0x29, 0x79, - 0x8c, 0x5e, 0x21, 0xc1, 0x14, 0x65, 0x4d, 0xc5, 0xbb, 0xe6, 0x79, 0xc1, 0x5e, 0xef, 0xe1, 0x98, - 0xc6, 0x42, 0xb0, 0x84, 0x90, 0x96, 0xf1, 0xcb, 0x31, 0x8c, 0x85, 0x08, 0x72, 0x8f, 0xa6, 0xde, - 0x6a, 0x5f, 0x33, 0xd8, 0xec, 0xd1, 0x5a, 0x7a, 0xf6, 0x56, 0xaf, 0xcc, 0x00, 0xd0, 0x4a, 0x9e, - 0xd5, 0xf1, 0x05, 0xb4, 0xe2, 0x63, 0xc2, 0xa9, 0x6d, 0xaa, 0xaf, 0xda, 0xa6, 0x7b, 0xa9, 0xed, - 0x07, 0x82, 0x63, 0xd6, 0x1c, 0x8f, 0xde, 0x0d, 0xa1, 0xe2, 0x76, 0x38, 0x09, 0x9f, 0x1d, 0xba, - 0x8a, 0x92, 0xe6, 0xad, 0xce, 0x2b, 0x60, 0x82, 0x3c, 0x96, 0xb5, 0x6d, 0xcc, 0xda, 0x90, 0x9f, - 0x20, 0x9f, 0x81, 0x29, 0x9a, 0xb1, 0x61, 0x1a, 0x4e, 0x7d, 0x32, 0x24, 0x03, 0x97, 0xe6, 0x80, - 0xd8, 0xb0, 0xb0, 0x66, 0x9b, 0x16, 0xa1, 0x91, 0xa5, 0x20, 0x06, 0x92, 0xd0, 0x77, 0xbc, 0x56, - 0xa8, 0x70, 0x9a, 0xf3, 0xa4, 0x38, 0x55, 0x89, 0xa7, 0x37, 0xbb, 0x83, 0xb5, 0x3f, 0xda, 0xea, - 0xea, 0x0e, 0xda, 0x0b, 0x64, 0x6a, 0x87, 0xe5, 0x93, 0x20, 0xb3, 0x54, 0x27, 0x6f, 0xb1, 0x52, - 0xae, 0x29, 0xe5, 0x5a, 0x7e, 0xa3, 0xa7, 0x46, 0x6d, 0xa2, 0x37, 0x66, 0x20, 0x73, 0xb7, 0xa9, - 0x1b, 0xe8, 0xfe, 0x14, 0xa7, 0x12, 0x06, 0xb6, 0x2f, 0x98, 0xd6, 0x79, 0xaf, 0xa1, 0xfa, 0x09, - 0xd1, 0xd8, 0xf8, 0xaa, 0x24, 0xf5, 0x55, 0xa5, 0x4c, 0x2f, 0x55, 0xfa, 0xd5, 0xa0, 0x2a, 0xdd, - 0xce, 0xab, 0xd2, 0xb5, 0x3d, 0xe4, 0xef, 0x30, 0x1f, 0xd2, 0x01, 0x7c, 0xca, 0xeb, 0x00, 0xee, - 0xe4, 0x60, 0x7c, 0x82, 0x18, 0x99, 0x78, 0x00, 0x7e, 0x35, 0xd1, 0x86, 0xdf, 0x0b, 0xea, 0xcd, - 0x10, 0xa8, 0xb7, 0x7a, 0xf4, 0x09, 0xfa, 0xfe, 0xae, 0xe3, 0xbe, 0xfd, 0xdd, 0xc4, 0x79, 0xf9, - 0x04, 0x1c, 0x9b, 0x2f, 0x2d, 0x2c, 0x28, 0xaa, 0x52, 0xae, 0xd5, 0xcb, 0x4a, 0xed, 0x5c, 0x45, - 0xbd, 0x27, 0xdf, 0x42, 0x0f, 0x4a, 0x00, 0x8e, 0x84, 0x8a, 0x9a, 0xd1, 0xc0, 0x2d, 0xb1, 0x1e, - 0xfd, 0x7f, 0xa4, 0xe3, 0xf5, 0x09, 0x3e, 0xfd, 0x10, 0x38, 0x5f, 0x93, 0x16, 0x6f, 0x95, 0xa1, - 0xc4, 0xe2, 0x81, 0xfa, 0xb6, 0x47, 0x83, 0xed, 0x79, 0x09, 0x1c, 0x75, 0xe9, 0xb1, 0xec, 0xbd, - 0xa7, 0x7d, 0xef, 0xcc, 0xc0, 0x0c, 0x83, 0xc5, 0x9d, 0xc7, 0xbf, 0x30, 0x25, 0x32, 0x91, 0x47, - 0x30, 0xce, 0xa6, 0xed, 0x6e, 0xf7, 0xee, 0xbd, 0xcb, 0x8b, 0x30, 0xd9, 0xc6, 0xd6, 0xb6, 0xde, - 0xe9, 0xe8, 0xa6, 0x41, 0x17, 0xe4, 0x66, 0x6e, 0x7e, 0x9c, 0x27, 0x71, 0xb2, 0x76, 0x39, 0xbb, - 0xaa, 0x59, 0xb6, 0xde, 0xd0, 0xdb, 0x9a, 0x61, 0xaf, 0xfa, 0x99, 0xd5, 0xe0, 0x9f, 0xe8, 0xe5, - 0x31, 0xa7, 0x35, 0x7c, 0x4d, 0x42, 0x54, 0xe2, 0xf7, 0x63, 0x4c, 0x49, 0x22, 0x09, 0xc6, 0x53, - 0x8b, 0x4f, 0x26, 0xaa, 0x16, 0x3d, 0xf0, 0xde, 0x94, 0x2f, 0x83, 0x13, 0xa5, 0x72, 0xb1, 0xa2, - 0xaa, 0x4a, 0xb1, 0x56, 0x5f, 0x55, 0xd4, 0x95, 0x52, 0xb5, 0x5a, 0xaa, 0x94, 0xab, 0x07, 0x69, - 0xed, 0xe8, 0x33, 0x92, 0xa7, 0x31, 0xf3, 0xb8, 0xd1, 0xd2, 0x0d, 0x8c, 0xee, 0x3c, 0xa0, 0xc2, - 0xf0, 0xab, 0x3e, 0xe2, 0x38, 0xb3, 0xf2, 0x43, 0x70, 0x7e, 0x43, 0x7c, 0x9c, 0x7b, 0x13, 0xfc, - 0x0f, 0xdc, 0xfc, 0x1f, 0x96, 0xe0, 0x58, 0xa0, 0x21, 0xaa, 0x78, 0x7b, 0x68, 0x2b, 0x79, 0xbf, - 0x18, 0x6c, 0xbb, 0x25, 0x1e, 0xd3, 0x5e, 0xd6, 0xf4, 0x3e, 0x36, 0x42, 0x60, 0x7d, 0x9b, 0x07, - 0xeb, 0x32, 0x07, 0xeb, 0xd3, 0x06, 0xa0, 0x19, 0x0f, 0xd9, 0xdf, 0x4d, 0x14, 0xd9, 0xcb, 0xe0, - 0xc4, 0x6a, 0x41, 0xad, 0x95, 0x8a, 0xa5, 0xd5, 0x82, 0x33, 0x8e, 0x06, 0x86, 0xec, 0x10, 0x73, - 0x9d, 0x07, 0xbd, 0x27, 0xbe, 0x1f, 0xc9, 0xc0, 0x15, 0xbd, 0x3b, 0xda, 0xe2, 0x96, 0x66, 0x6c, - 0x62, 0xa4, 0x8b, 0x40, 0x3d, 0x0f, 0x63, 0x0d, 0x92, 0x9d, 0xe2, 0x1c, 0xdc, 0xba, 0x89, 0xe8, - 0xcb, 0x69, 0x09, 0xaa, 0xfb, 0x2b, 0x7a, 0x4f, 0x50, 0x21, 0x6a, 0xbc, 0x42, 0x3c, 0x23, 0x1a, - 0xbc, 0x7d, 0x7c, 0x87, 0xe8, 0xc6, 0xe7, 0x3c, 0xdd, 0x38, 0xc7, 0xe9, 0x46, 0xf1, 0x60, 0xe4, - 0xe3, 0xa9, 0xc9, 0x9f, 0x3c, 0x1a, 0x3a, 0x80, 0x50, 0x6d, 0xd2, 0xc3, 0x47, 0x85, 0x9e, 0xdd, - 0xfd, 0xeb, 0x24, 0xc8, 0xcd, 0xe3, 0x16, 0x16, 0x5d, 0x89, 0xfc, 0x5e, 0x5a, 0x74, 0x43, 0x84, - 0xc2, 0x40, 0x69, 0x87, 0xaf, 0x8e, 0xd8, 0xfa, 0x36, 0xee, 0xd8, 0xda, 0x76, 0x9b, 0x88, 0x5a, - 0x52, 0xfd, 0x04, 0xf4, 0x4b, 0x69, 0x91, 0xed, 0x92, 0x88, 0x62, 0xfe, 0x63, 0xac, 0x29, 0x7e, - 0x63, 0x06, 0x72, 0xe7, 0xb4, 0x56, 0x0b, 0xdb, 0xe8, 0x9b, 0x69, 0xc8, 0x15, 0x9d, 0x39, 0x29, - 0x46, 0x4f, 0xf0, 0xc1, 0x42, 0x30, 0x6e, 0x99, 0xa6, 0xbd, 0xaa, 0xd9, 0x5b, 0x0c, 0x2d, 0xef, - 0x9d, 0x6d, 0xd3, 0xfe, 0x4e, 0x10, 0xb4, 0x3b, 0x79, 0xd0, 0x7e, 0x8a, 0x93, 0x26, 0x2d, 0x68, - 0x96, 0x16, 0x12, 0x82, 0x1a, 0x82, 0xf1, 0x6d, 0x03, 0x6f, 0x9b, 0x86, 0xde, 0x70, 0x47, 0x7a, - 0xf7, 0x1d, 0x7d, 0xcc, 0x9b, 0x25, 0xcf, 0x71, 0x98, 0xcd, 0x0a, 0x97, 0x12, 0x0f, 0xb4, 0xea, - 0x00, 0x98, 0x5d, 0x09, 0x97, 0x53, 0x08, 0xea, 0xb5, 0x4a, 0xbd, 0xa8, 0x2a, 0x85, 0x9a, 0x52, - 0x5f, 0xae, 0x14, 0x0b, 0xcb, 0x75, 0x55, 0x59, 0xad, 0xe4, 0x31, 0xfa, 0xfb, 0xb4, 0x23, 0xdc, - 0x86, 0xb9, 0x8b, 0x2d, 0xb4, 0x28, 0x24, 0xe7, 0x28, 0x99, 0x30, 0x0c, 0x7e, 0x55, 0x78, 0xab, - 0x9c, 0x49, 0x87, 0x71, 0x10, 0xd2, 0x15, 0x7e, 0x5c, 0x68, 0xdb, 0x3b, 0x92, 0xd4, 0xa3, 0x40, - 0xd2, 0xff, 0x33, 0x0d, 0x63, 0x45, 0xd3, 0xd8, 0xc5, 0x96, 0x1d, 0xb4, 0x32, 0x83, 0xd2, 0x4c, - 0xf1, 0xd2, 0x74, 0xba, 0x26, 0x6c, 0xd8, 0x96, 0xd9, 0x76, 0xcd, 0x4c, 0xf7, 0x15, 0xbd, 0x25, - 0xae, 0x84, 0x59, 0xc9, 0xe1, 0xcb, 0x4d, 0xbd, 0x0b, 0xe2, 0xd8, 0x93, 0xba, 0x1a, 0xc0, 0x83, - 0x71, 0x70, 0xe9, 0xcd, 0x40, 0xf2, 0xbb, 0xbc, 0x5f, 0x93, 0x60, 0x9a, 0x36, 0xbe, 0x2a, 0x26, - 0xe3, 0x22, 0xaa, 0x04, 0x17, 0x7a, 0xba, 0x84, 0xbf, 0x74, 0x84, 0x13, 0x7f, 0x4e, 0x6b, 0xb7, - 0xbd, 0x45, 0xbf, 0xa5, 0x23, 0x2a, 0x7b, 0xa7, 0x6a, 0x3e, 0x97, 0x83, 0x8c, 0xb6, 0x63, 0x6f, - 0xa1, 0x1f, 0x09, 0x9b, 0xfc, 0x5c, 0x67, 0xc0, 0xf8, 0x09, 0x81, 0xe4, 0x38, 0x64, 0x6d, 0xf3, - 0x3c, 0x76, 0xe5, 0x40, 0x5f, 0x1c, 0x38, 0xb4, 0x76, 0xbb, 0x46, 0x3e, 0x30, 0x38, 0xdc, 0x77, - 0x67, 0x84, 0xd1, 0x1a, 0x0d, 0x73, 0xc7, 0xb0, 0x4b, 0xee, 0xc2, 0x9f, 0x9f, 0x80, 0xbe, 0x9c, - 0x12, 0x99, 0x42, 0x08, 0x30, 0x18, 0x0f, 0xb2, 0xf5, 0x01, 0x9a, 0xd2, 0x2c, 0x5c, 0x5f, 0x58, - 0x5d, 0xad, 0xd7, 0x2a, 0xf7, 0x28, 0x65, 0x7f, 0xb8, 0xaf, 0x97, 0xca, 0xf5, 0xda, 0x92, 0x52, - 0x2f, 0xae, 0xa9, 0x64, 0x75, 0xa6, 0x50, 0x2c, 0x56, 0xd6, 0xca, 0xb5, 0x3c, 0x46, 0x6f, 0x4f, - 0xc3, 0x54, 0xb1, 0x65, 0x76, 0x3c, 0x84, 0xaf, 0xf4, 0x11, 0xf6, 0xc4, 0x98, 0x0a, 0x88, 0x11, - 0xfd, 0x6b, 0x4a, 0x74, 0xab, 0xd7, 0x15, 0x48, 0x80, 0x7c, 0x48, 0x2f, 0xf5, 0x16, 0xa1, 0xad, - 0xde, 0xfe, 0xf4, 0x92, 0x6f, 0x12, 0x5f, 0xb8, 0x0d, 0xc6, 0x0a, 0x54, 0x31, 0xd0, 0xdf, 0xa6, - 0x20, 0x57, 0x34, 0x8d, 0x0d, 0x7d, 0x53, 0xbe, 0x16, 0x66, 0xb0, 0xa1, 0xad, 0xb7, 0xf0, 0xbc, - 0x66, 0x6b, 0xbb, 0x3a, 0xbe, 0x40, 0x2a, 0x30, 0xae, 0x76, 0xa5, 0x3a, 0x4c, 0xb1, 0x14, 0xbc, - 0xbe, 0xb3, 0x49, 0x98, 0x1a, 0x57, 0x83, 0x49, 0xf2, 0xd3, 0xe0, 0x52, 0xfa, 0xba, 0x6a, 0x61, - 0x0b, 0xb7, 0xb0, 0xd6, 0xc1, 0x8e, 0x31, 0x6a, 0xe0, 0x16, 0x51, 0xda, 0x71, 0x35, 0xec, 0xb3, - 0x7c, 0x06, 0xa6, 0xe8, 0x27, 0x62, 0xea, 0x74, 0x88, 0x1a, 0x8f, 0xab, 0x5c, 0x9a, 0xfc, 0x44, - 0xc8, 0xe2, 0x8b, 0xb6, 0xa5, 0x9d, 0x6a, 0x12, 0xbc, 0x2e, 0x9d, 0xa5, 0xbe, 0x5e, 0xb3, 0xae, - 0xaf, 0xd7, 0x6c, 0x95, 0x78, 0x82, 0xa9, 0x34, 0x17, 0x7a, 0xf5, 0xb8, 0x67, 0x48, 0xfc, 0x7b, - 0xda, 0x57, 0x0c, 0x19, 0x32, 0x86, 0xb6, 0x8d, 0x99, 0x5e, 0x90, 0x67, 0xf9, 0x7a, 0x38, 0xaa, - 0xed, 0x6a, 0xb6, 0x66, 0x2d, 0x9b, 0x0d, 0xad, 0x45, 0x06, 0x3f, 0xb7, 0xe5, 0x77, 0x7f, 0x20, - 0xeb, 0xf0, 0xb6, 0x69, 0x61, 0x92, 0xcb, 0x5d, 0x87, 0x77, 0x13, 0x1c, 0xea, 0x7a, 0xc3, 0x34, - 0x08, 0xff, 0x92, 0x4a, 0x9e, 0x1d, 0xa9, 0x34, 0xf5, 0x8e, 0x53, 0x11, 0x42, 0xa5, 0x4c, 0x17, - 0x94, 0xab, 0x7b, 0x46, 0x83, 0xac, 0xc1, 0x8f, 0xab, 0x61, 0x9f, 0xe5, 0x39, 0x98, 0x64, 0xcb, - 0xcf, 0x2b, 0x8e, 0x5e, 0xe5, 0x88, 0x5e, 0x5d, 0xc5, 0x7b, 0xd2, 0x50, 0x3c, 0x67, 0xcb, 0x7e, - 0x3e, 0x35, 0xf8, 0x93, 0x7c, 0x17, 0x5c, 0xce, 0x5e, 0x8b, 0x3b, 0x1d, 0xdb, 0xdc, 0xa6, 0xa0, - 0x2f, 0xe8, 0x2d, 0x5a, 0x83, 0x31, 0x52, 0x83, 0xa8, 0x2c, 0xf2, 0xcd, 0x70, 0xbc, 0x6d, 0xe1, - 0x0d, 0x6c, 0xdd, 0xab, 0x6d, 0xef, 0x5c, 0xac, 0x59, 0x9a, 0xd1, 0x69, 0x9b, 0x96, 0x7d, 0x6a, - 0x9c, 0x30, 0xdf, 0xf3, 0x1b, 0xeb, 0x28, 0xc7, 0x21, 0x47, 0xc5, 0x87, 0x5e, 0x9a, 0x15, 0x76, - 0xa2, 0x63, 0x15, 0x8a, 0x34, 0xcf, 0x6e, 0x82, 0x31, 0xd6, 0xc3, 0x11, 0xa0, 0x26, 0x6f, 0x3e, - 0xd9, 0x35, 0x9b, 0x63, 0x54, 0x54, 0x37, 0x9b, 0x7c, 0x0b, 0xe4, 0x1a, 0xa4, 0x5a, 0x04, 0xb3, - 0xc9, 0x9b, 0x2f, 0xef, 0x5d, 0x28, 0xc9, 0xa2, 0xb2, 0xac, 0xe8, 0x2b, 0x92, 0x90, 0xdf, 0x5d, - 0x14, 0xc7, 0xf1, 0x5a, 0xf5, 0x77, 0xd2, 0x03, 0x74, 0x9b, 0x37, 0xc0, 0x75, 0xac, 0x4f, 0x64, - 0xf6, 0xc7, 0x7c, 0x7d, 0x6e, 0xcd, 0x35, 0xc1, 0x1d, 0xab, 0xa4, 0x5a, 0x2b, 0xa8, 0xce, 0xfc, - 0x69, 0xde, 0x31, 0xdd, 0xaf, 0x87, 0x6b, 0xfb, 0xe4, 0x56, 0x6a, 0xf5, 0x72, 0x61, 0x45, 0xc9, - 0x6f, 0xf0, 0xb6, 0x4d, 0xb5, 0x56, 0x59, 0xad, 0xab, 0x6b, 0xe5, 0x72, 0xa9, 0xbc, 0x48, 0x89, - 0x39, 0x26, 0xe1, 0x49, 0x3f, 0xc3, 0x39, 0xb5, 0x54, 0x53, 0xea, 0xc5, 0x4a, 0x79, 0xa1, 0xb4, - 0x98, 0xd7, 0xfb, 0x19, 0x46, 0xf7, 0xc9, 0x57, 0xc1, 0x15, 0x1c, 0x27, 0xa5, 0x4a, 0xd9, 0x99, - 0x4f, 0x14, 0x0b, 0xe5, 0xa2, 0xe2, 0x4c, 0x1e, 0xce, 0xcb, 0x08, 0x4e, 0x50, 0x72, 0xf5, 0x85, - 0xd2, 0x72, 0x70, 0x0b, 0xe0, 0xd3, 0x29, 0xf9, 0x14, 0x5c, 0x12, 0xfc, 0x56, 0x2a, 0x9f, 0x2d, - 0x2c, 0x97, 0xe6, 0xf3, 0x7f, 0x9c, 0x92, 0xaf, 0x81, 0x2b, 0xb9, 0xbf, 0xe8, 0x6a, 0x7e, 0xbd, - 0x34, 0x5f, 0x5f, 0x29, 0x55, 0x57, 0x0a, 0xb5, 0xe2, 0x52, 0xfe, 0x33, 0x64, 0xbe, 0xe0, 0x19, - 0xc0, 0x01, 0x67, 0xb8, 0x57, 0x06, 0xc7, 0xf4, 0x02, 0xaf, 0xa8, 0x4f, 0xe8, 0x09, 0x7b, 0xb4, - 0x0d, 0xfb, 0x49, 0x6f, 0x74, 0x98, 0xe7, 0x54, 0xe8, 0xa6, 0x18, 0xb4, 0xe2, 0xe9, 0x50, 0x6d, - 0x00, 0x15, 0xba, 0x0a, 0xae, 0x28, 0x2b, 0x14, 0x29, 0x55, 0x29, 0x56, 0xce, 0x2a, 0x6a, 0xfd, - 0x5c, 0x61, 0x79, 0x59, 0xa9, 0xd5, 0x17, 0x4a, 0x6a, 0xb5, 0x96, 0xdf, 0x40, 0xdf, 0x4f, 0x7b, - 0x73, 0xe8, 0x80, 0xb4, 0xfe, 0x36, 0x1d, 0xb7, 0x59, 0x47, 0xce, 0x95, 0x7f, 0x1a, 0x72, 0x1d, - 0x5b, 0xb3, 0x77, 0x3a, 0xac, 0x55, 0x3f, 0xa6, 0x77, 0xab, 0x9e, 0xad, 0x92, 0x4c, 0x2a, 0xcb, - 0x8c, 0xbe, 0x92, 0x8a, 0xd3, 0x4c, 0x87, 0x30, 0x8d, 0xd6, 0x07, 0x10, 0xf1, 0x69, 0x40, 0xae, - 0xb6, 0x97, 0xaa, 0xf5, 0xc2, 0xb2, 0xaa, 0x14, 0xe6, 0xef, 0xf5, 0x26, 0xcf, 0x58, 0x3e, 0x01, - 0xc7, 0xd6, 0xca, 0xce, 0x74, 0x98, 0x34, 0x97, 0x4a, 0xb9, 0xac, 0x14, 0x1d, 0xb9, 0xff, 0x12, - 0x59, 0xaa, 0x76, 0x2c, 0x68, 0xc2, 0xb7, 0x63, 0xe5, 0x04, 0xe4, 0xff, 0x6d, 0x61, 0x8f, 0x0e, - 0x5f, 0xc3, 0x82, 0xb4, 0x86, 0x8b, 0xc3, 0x97, 0x85, 0x9c, 0x38, 0x84, 0x38, 0x89, 0x87, 0xc7, - 0xcf, 0x0d, 0x80, 0xc7, 0x09, 0x38, 0x16, 0xc4, 0x83, 0x38, 0x73, 0x84, 0xc3, 0xf0, 0xf5, 0x71, - 0xc8, 0x55, 0x71, 0x0b, 0x37, 0x6c, 0xf4, 0xce, 0x80, 0x31, 0x31, 0x03, 0x69, 0xcf, 0x79, 0x20, - 0xad, 0x37, 0xb9, 0xe9, 0x73, 0xba, 0x6b, 0xfa, 0x1c, 0x61, 0x06, 0x48, 0xb1, 0xcc, 0x80, 0x4c, - 0x02, 0x66, 0x40, 0x76, 0x70, 0x33, 0x20, 0xd7, 0xcf, 0x0c, 0x40, 0x6f, 0xca, 0xc5, 0xed, 0x25, - 0xa8, 0xa8, 0x0f, 0x77, 0xf0, 0xff, 0x1f, 0x99, 0x38, 0xbd, 0x4a, 0x4f, 0x8e, 0xe3, 0x69, 0xf1, - 0x8f, 0xa4, 0x04, 0x96, 0x1f, 0xe4, 0xab, 0xe1, 0x4a, 0xff, 0xbd, 0xae, 0x3c, 0xab, 0x54, 0xad, - 0x55, 0xc9, 0x88, 0x5f, 0xac, 0xa8, 0xea, 0xda, 0x2a, 0x5d, 0xb9, 0x3b, 0x09, 0xb2, 0x4f, 0x45, - 0x5d, 0x2b, 0xd3, 0xf1, 0x7d, 0x93, 0xa7, 0xbe, 0x50, 0x2a, 0xcf, 0xd7, 0xbd, 0x36, 0x53, 0x5e, - 0xa8, 0xe4, 0xb7, 0x9c, 0x29, 0x5b, 0x80, 0xba, 0x33, 0x40, 0xb3, 0x12, 0x0a, 0xe5, 0xf9, 0xfa, - 0x4a, 0x59, 0x59, 0xa9, 0x94, 0x4b, 0x45, 0x92, 0x5e, 0x55, 0x6a, 0x79, 0xdd, 0x19, 0x68, 0xba, - 0x2c, 0x8a, 0xaa, 0x52, 0x50, 0x8b, 0x4b, 0x8a, 0x4a, 0x8b, 0xbc, 0x4f, 0xbe, 0x16, 0xce, 0x14, - 0xca, 0x95, 0x9a, 0x93, 0x52, 0x28, 0xdf, 0x5b, 0xbb, 0x77, 0x55, 0xa9, 0xaf, 0xaa, 0x95, 0xa2, - 0x52, 0xad, 0x3a, 0xed, 0x94, 0xd9, 0x1f, 0xf9, 0x96, 0xfc, 0x0c, 0xb8, 0x2d, 0xc0, 0x9a, 0x52, - 0x23, 0xdb, 0x44, 0x2b, 0x15, 0xe2, 0x29, 0x30, 0xaf, 0xd4, 0x97, 0x0a, 0xd5, 0x7a, 0xa9, 0x5c, - 0xac, 0xac, 0xac, 0x16, 0x6a, 0x25, 0xa7, 0x39, 0xaf, 0xaa, 0x95, 0x5a, 0xa5, 0x7e, 0x56, 0x51, - 0xab, 0xa5, 0x4a, 0x39, 0x6f, 0x38, 0x55, 0x0e, 0xb4, 0x7f, 0xb7, 0x1f, 0x36, 0xe5, 0x2b, 0xe0, - 0x94, 0x9b, 0xbe, 0x5c, 0x71, 0x04, 0x1d, 0xb0, 0x48, 0xda, 0x89, 0x5a, 0x24, 0xff, 0x92, 0x86, - 0x4c, 0xd5, 0x36, 0xdb, 0xe8, 0xa7, 0xfc, 0x0e, 0xe6, 0x34, 0x80, 0x45, 0x76, 0x7d, 0x9c, 0x59, - 0x18, 0x9b, 0x97, 0x05, 0x52, 0xd0, 0x1f, 0x09, 0x2f, 0x55, 0xfb, 0x7d, 0xb6, 0xd9, 0x0e, 0xb1, - 0x55, 0x1e, 0x11, 0xf3, 0xdd, 0x0f, 0x27, 0x14, 0x4f, 0xdf, 0x7f, 0x79, 0x90, 0xc5, 0x68, 0x04, - 0x27, 0x03, 0xb0, 0x39, 0xf2, 0x77, 0x55, 0x02, 0xcb, 0x97, 0xc2, 0x25, 0x5d, 0xca, 0x45, 0x74, - 0x6a, 0x43, 0x7e, 0x2c, 0x3c, 0x26, 0xa0, 0xde, 0xca, 0x4a, 0xe5, 0xac, 0xe2, 0x29, 0xf2, 0x7c, - 0xa1, 0x56, 0xc8, 0x6f, 0xa2, 0x2f, 0x48, 0x90, 0x59, 0x31, 0x77, 0xbb, 0x77, 0x08, 0x0c, 0x7c, - 0x21, 0xb0, 0x16, 0xea, 0xbe, 0xf2, 0xbe, 0xca, 0x42, 0x62, 0x5f, 0x09, 0xdf, 0x0d, 0xfc, 0x72, - 0x3a, 0x8e, 0xd8, 0x57, 0x0e, 0xba, 0x05, 0xf8, 0x0f, 0x83, 0x88, 0x3d, 0x44, 0xb4, 0x58, 0x3e, - 0x03, 0xa7, 0xfd, 0x0f, 0xa5, 0x79, 0xa5, 0x5c, 0x2b, 0x2d, 0xdc, 0xeb, 0x0b, 0xb7, 0xa4, 0x0a, - 0x89, 0xbf, 0x5f, 0x37, 0x16, 0x3d, 0xd3, 0x38, 0x05, 0xc7, 0xfd, 0x6f, 0x8b, 0x4a, 0xcd, 0xfd, - 0x72, 0x1f, 0xba, 0x3f, 0x0b, 0x53, 0xb4, 0x5b, 0x5f, 0x6b, 0x37, 0x35, 0x1b, 0xa3, 0x5b, 0x7c, - 0x74, 0xaf, 0x83, 0xa3, 0xa5, 0xd5, 0x85, 0x6a, 0xd5, 0x36, 0x2d, 0x6d, 0x13, 0x17, 0x9a, 0x4d, - 0x8b, 0x49, 0xab, 0x3b, 0x19, 0xbd, 0x4f, 0x78, 0x9d, 0x8f, 0x1f, 0x4a, 0x68, 0x99, 0x21, 0xa8, - 0x7f, 0x4d, 0x68, 0x5d, 0x4e, 0x80, 0x60, 0x3c, 0xf4, 0xef, 0x1b, 0x72, 0x9b, 0x0b, 0xc7, 0x65, - 0xe3, 0xcc, 0x0b, 0xd2, 0x30, 0x51, 0xd3, 0xb7, 0xf1, 0x73, 0x4c, 0x03, 0x77, 0xe4, 0x31, 0x90, - 0x16, 0x57, 0x6a, 0xf9, 0x23, 0xce, 0x83, 0x63, 0x54, 0xa5, 0xc8, 0x83, 0xe2, 0x14, 0xe0, 0x3c, - 0x14, 0x6a, 0x79, 0xc9, 0x79, 0x58, 0x51, 0x6a, 0xf9, 0x8c, 0xf3, 0x50, 0x56, 0x6a, 0xf9, 0xac, - 0xf3, 0xb0, 0xba, 0x5c, 0xcb, 0xe7, 0x9c, 0x87, 0x52, 0xb5, 0x96, 0x1f, 0x73, 0x1e, 0xe6, 0xaa, - 0xb5, 0xfc, 0xb8, 0xf3, 0x70, 0xb6, 0x5a, 0xcb, 0x4f, 0x38, 0x0f, 0xc5, 0x5a, 0x2d, 0x0f, 0xce, - 0xc3, 0xdd, 0xd5, 0x5a, 0x7e, 0xd2, 0x79, 0x28, 0x14, 0x6b, 0xf9, 0x29, 0xf2, 0xa0, 0xd4, 0xf2, - 0xd3, 0xce, 0x43, 0xb5, 0x5a, 0xcb, 0xcf, 0x10, 0xca, 0xd5, 0x5a, 0xfe, 0x28, 0x29, 0xab, 0x54, - 0xcb, 0xe7, 0x9d, 0x87, 0xa5, 0x6a, 0x2d, 0x7f, 0x8c, 0x64, 0xae, 0xd6, 0xf2, 0x32, 0x29, 0xb4, - 0x5a, 0xcb, 0x5f, 0x42, 0xf2, 0x54, 0x6b, 0xf9, 0xe3, 0xa4, 0x88, 0x6a, 0x2d, 0x7f, 0x82, 0xb0, - 0xa1, 0xd4, 0xf2, 0x27, 0x49, 0x1e, 0xb5, 0x96, 0xbf, 0x94, 0x7c, 0x2a, 0xd7, 0xf2, 0xa7, 0x08, - 0x63, 0x4a, 0x2d, 0x7f, 0x19, 0x79, 0x50, 0x6b, 0x79, 0x44, 0x3e, 0x15, 0x6a, 0xf9, 0xcb, 0xd1, - 0x63, 0x60, 0x62, 0x11, 0xdb, 0x14, 0x44, 0x94, 0x07, 0x69, 0x11, 0xdb, 0x41, 0x33, 0xfe, 0x1b, - 0x12, 0x5c, 0xca, 0xa6, 0x7e, 0x0b, 0x96, 0xb9, 0xbd, 0x8c, 0x37, 0xb5, 0xc6, 0x9e, 0x72, 0xd1, - 0x31, 0xa1, 0x50, 0x95, 0x5b, 0xba, 0x6a, 0xfb, 0x9d, 0x11, 0x79, 0x8e, 0xb4, 0x38, 0xdd, 0xc5, - 0x28, 0xc9, 0x5f, 0x8c, 0x62, 0x16, 0xd9, 0x3f, 0x07, 0x35, 0x9a, 0x5b, 0x3f, 0x4e, 0x75, 0xad, - 0x1f, 0x3b, 0xcd, 0xa4, 0x8d, 0xad, 0x8e, 0x69, 0x68, 0xad, 0x2a, 0xdb, 0x2e, 0xa5, 0xab, 0x5e, - 0xdd, 0xc9, 0xf2, 0x33, 0xdd, 0x96, 0x41, 0xad, 0xb2, 0xa7, 0x47, 0xcd, 0x70, 0xbb, 0xab, 0x19, - 0xd2, 0x48, 0x3e, 0xe3, 0x35, 0x92, 0x1a, 0xd7, 0x48, 0xee, 0x3a, 0x00, 0xed, 0x78, 0xed, 0xa5, - 0x34, 0xd8, 0xd4, 0xc2, 0x77, 0x26, 0x74, 0x97, 0xab, 0x25, 0xf4, 0x85, 0x34, 0x9c, 0x54, 0x8c, - 0x5e, 0x16, 0x7e, 0x50, 0x17, 0xde, 0x1e, 0x84, 0x66, 0x95, 0x17, 0xe9, 0x6d, 0x3d, 0xab, 0xdd, - 0x9b, 0x66, 0x88, 0x44, 0x3f, 0xeb, 0x49, 0xb4, 0xca, 0x49, 0xf4, 0xce, 0xc1, 0x49, 0xc7, 0x13, - 0x68, 0x79, 0xa8, 0x1d, 0x50, 0x06, 0x7d, 0x27, 0x03, 0x8f, 0xa1, 0x1e, 0x0f, 0x8c, 0x43, 0xda, - 0xca, 0x0a, 0x46, 0x53, 0xc5, 0x1d, 0x5b, 0xb3, 0x6c, 0xee, 0x14, 0x6a, 0xd7, 0x54, 0x2a, 0x95, - 0xc0, 0x54, 0x2a, 0xdd, 0x77, 0x2a, 0x85, 0xde, 0x1b, 0x34, 0x1f, 0xce, 0xf1, 0x18, 0x17, 0x7a, - 0xf7, 0xff, 0x51, 0x35, 0x0c, 0x83, 0xda, 0xb3, 0x2b, 0x7e, 0x86, 0x83, 0x7a, 0xe1, 0xc0, 0x25, - 0xc4, 0x43, 0xfc, 0x8f, 0x86, 0x6b, 0xe7, 0x65, 0x82, 0xdf, 0x78, 0xa3, 0x24, 0xdf, 0x4c, 0xd4, - 0x40, 0xff, 0xdc, 0x18, 0x4c, 0x90, 0xb6, 0xb0, 0xac, 0x1b, 0xe7, 0xd1, 0x83, 0x12, 0x4c, 0x95, - 0xf1, 0x85, 0xe2, 0x96, 0xd6, 0x6a, 0x61, 0x63, 0x13, 0x07, 0xcd, 0xf6, 0x53, 0x30, 0xa6, 0xb5, - 0xdb, 0x65, 0x7f, 0x9f, 0xc1, 0x7d, 0x65, 0xfd, 0xef, 0xb7, 0x7b, 0x36, 0xf2, 0x54, 0x44, 0x23, - 0xf7, 0xca, 0x9d, 0x0d, 0x96, 0x19, 0x32, 0x43, 0xbe, 0x0a, 0x26, 0x1b, 0x6e, 0x16, 0xcf, 0x5b, - 0x3d, 0x98, 0x84, 0xbe, 0x15, 0xab, 0x1b, 0x10, 0x2a, 0x3c, 0x9e, 0x52, 0xe0, 0x21, 0xdb, 0x21, - 0x27, 0xe0, 0x58, 0xad, 0x52, 0xa9, 0xaf, 0x14, 0xca, 0xf7, 0xfa, 0xa7, 0x44, 0x37, 0xd0, 0x6b, - 0x32, 0x30, 0x53, 0x35, 0x5b, 0xbb, 0xd8, 0x87, 0xa9, 0xe4, 0xc3, 0xd4, 0x25, 0xa7, 0xd4, 0x3e, - 0x39, 0xc9, 0x27, 0x21, 0xa7, 0x19, 0x9d, 0x0b, 0xd8, 0xb5, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x23, - 0xc1, 0x76, 0xac, 0xf2, 0x30, 0xde, 0xde, 0x47, 0x92, 0x3c, 0x57, 0x21, 0x40, 0x9e, 0x81, 0xa9, - 0x0e, 0xdd, 0x2c, 0xac, 0x05, 0xf6, 0x84, 0xb9, 0x34, 0xc2, 0x22, 0xdd, 0xad, 0x96, 0x18, 0x8b, - 0xe4, 0x0d, 0x3d, 0xe8, 0x35, 0xff, 0x35, 0x0e, 0xe2, 0xc2, 0x41, 0x18, 0x8b, 0x07, 0xf2, 0xeb, - 0x86, 0x3d, 0xc3, 0x3b, 0x05, 0xc7, 0x59, 0xab, 0xad, 0x17, 0x97, 0x0a, 0xcb, 0xcb, 0x4a, 0x79, - 0x51, 0xa9, 0x97, 0xe6, 0xe9, 0x56, 0x85, 0x9f, 0x52, 0xa8, 0xd5, 0x94, 0x95, 0xd5, 0x5a, 0xb5, - 0xae, 0x3c, 0xab, 0xa8, 0x28, 0xf3, 0xc4, 0x11, 0x89, 0x9c, 0x24, 0x70, 0x5d, 0xc6, 0x0a, 0xe5, - 0xea, 0x39, 0x45, 0xcd, 0x6f, 0x9d, 0x29, 0xc0, 0x64, 0xa0, 0x9f, 0x77, 0xb8, 0x9b, 0xc7, 0x1b, - 0xda, 0x4e, 0x8b, 0xd9, 0x6a, 0xf9, 0x23, 0x0e, 0x77, 0x44, 0x36, 0x15, 0xa3, 0xb5, 0x97, 0x4f, - 0xc9, 0x79, 0x98, 0x0a, 0x76, 0xe9, 0xf9, 0x34, 0x7a, 0xd7, 0x15, 0x30, 0x71, 0xce, 0xb4, 0xce, - 0x13, 0xef, 0x31, 0xf4, 0x41, 0x1a, 0x4d, 0xc2, 0x3d, 0x97, 0x17, 0x18, 0xd8, 0x5f, 0x27, 0xee, - 0x2d, 0xe0, 0x52, 0x9b, 0xed, 0x7b, 0xf6, 0xee, 0x2a, 0x98, 0xbc, 0xe0, 0xe6, 0xf6, 0x5b, 0x7a, - 0x20, 0x09, 0xfd, 0x37, 0xb1, 0xfd, 0xff, 0xfe, 0x45, 0x26, 0xbf, 0x3f, 0xfd, 0xce, 0x34, 0xe4, - 0x16, 0xb1, 0x5d, 0x68, 0xb5, 0x82, 0x72, 0x7b, 0x40, 0xf8, 0x3c, 0x05, 0x57, 0x89, 0x42, 0xab, - 0x15, 0xde, 0xa8, 0x02, 0x02, 0x72, 0xfd, 0x7e, 0xb9, 0x34, 0xf4, 0x26, 0xa1, 0x93, 0x50, 0x7d, - 0x0a, 0x4c, 0x5e, 0x62, 0x1f, 0x93, 0xbc, 0x3d, 0xee, 0x87, 0x02, 0x56, 0xce, 0x93, 0xfc, 0x48, - 0x22, 0xa9, 0xe8, 0xbd, 0x72, 0x37, 0x9f, 0x7c, 0x0f, 0x8c, 0xed, 0x74, 0x70, 0x51, 0xeb, 0x60, - 0xc2, 0x5b, 0x77, 0x4d, 0x2b, 0xeb, 0xf7, 0xe1, 0x86, 0x3d, 0x5b, 0xda, 0x76, 0x0c, 0xea, 0x35, - 0x9a, 0xd1, 0x0b, 0xce, 0xc1, 0xde, 0x55, 0x97, 0x82, 0x33, 0x29, 0xb9, 0xa0, 0xdb, 0x5b, 0xc5, - 0x2d, 0xcd, 0x66, 0x6b, 0xdb, 0xde, 0x3b, 0x7a, 0xe9, 0x00, 0x70, 0x46, 0xee, 0x05, 0x87, 0x1e, - 0xcb, 0x8a, 0x0d, 0xe2, 0x10, 0x36, 0x70, 0x07, 0x01, 0xf1, 0x1f, 0xd3, 0x90, 0xa9, 0xb4, 0xb1, - 0x21, 0x7c, 0x06, 0xc1, 0x93, 0x6d, 0xba, 0x4b, 0xb6, 0x0f, 0x8a, 0x7b, 0x87, 0x79, 0x95, 0x76, - 0x4a, 0x0e, 0x91, 0xec, 0x8d, 0x90, 0xd1, 0x8d, 0x0d, 0x93, 0x19, 0xa6, 0x97, 0x87, 0x6c, 0x02, - 0x95, 0x8c, 0x0d, 0x53, 0x25, 0x19, 0x45, 0x1d, 0xc3, 0xa2, 0xca, 0x4e, 0x5e, 0xdc, 0xdf, 0x1d, - 0x87, 0x1c, 0x55, 0x67, 0xf4, 0x4a, 0x09, 0xa4, 0x42, 0xb3, 0x19, 0x22, 0xf8, 0xf4, 0x3e, 0xc1, - 0x9b, 0xe4, 0x37, 0x0f, 0x13, 0xef, 0x9d, 0x0f, 0x21, 0x21, 0xd8, 0xb7, 0xb3, 0x26, 0x55, 0x68, - 0x36, 0xc3, 0x7d, 0x50, 0xbd, 0x02, 0xd3, 0x7c, 0x81, 0xc1, 0x16, 0x2e, 0x89, 0xb5, 0xf0, 0xd8, - 0x03, 0x41, 0x28, 0x7f, 0xc9, 0x43, 0xf4, 0xcf, 0x69, 0x18, 0x5b, 0xd6, 0x3b, 0xb6, 0x83, 0x4d, - 0x41, 0x04, 0x9b, 0x2b, 0x60, 0xc2, 0x15, 0x8d, 0xd3, 0xe5, 0x39, 0xfd, 0xb9, 0x9f, 0x80, 0xde, - 0x18, 0x44, 0xe7, 0x6e, 0x1e, 0x9d, 0x27, 0x47, 0xd7, 0x9e, 0x71, 0x11, 0xee, 0xdb, 0xed, 0x17, - 0x9b, 0xee, 0x2e, 0xf6, 0x77, 0x3c, 0x81, 0xaf, 0x70, 0x02, 0xbf, 0x75, 0x90, 0x22, 0x93, 0x17, - 0xfa, 0x17, 0xd3, 0x00, 0x4e, 0xd9, 0xec, 0x00, 0xcd, 0xe3, 0xb9, 0x63, 0xb1, 0x11, 0xd2, 0x7d, - 0x4d, 0x50, 0xba, 0x2b, 0xbc, 0x74, 0x9f, 0xda, 0xbf, 0xaa, 0x51, 0x07, 0x65, 0xe4, 0x3c, 0x48, - 0xba, 0x27, 0x5a, 0xe7, 0x11, 0xbd, 0xd3, 0x13, 0xea, 0x2a, 0x27, 0xd4, 0xdb, 0x07, 0x2c, 0x29, - 0x79, 0xb9, 0xfe, 0x75, 0x1a, 0xc6, 0xaa, 0xd8, 0x76, 0xba, 0x49, 0x74, 0x56, 0xa4, 0x87, 0x0f, - 0xb4, 0xed, 0xb4, 0x60, 0xdb, 0xfe, 0x61, 0x4a, 0x34, 0xbc, 0x86, 0x2f, 0x19, 0xc6, 0x53, 0xc8, - 0xe2, 0xc1, 0x43, 0x42, 0xe1, 0x35, 0xfa, 0x51, 0x4b, 0x5e, 0xba, 0x6f, 0x4f, 0x7b, 0x1b, 0xf3, - 0x4f, 0xe0, 0x26, 0x76, 0x41, 0xb3, 0x38, 0xb5, 0xdf, 0x2c, 0xfe, 0x7e, 0x2a, 0xbe, 0x19, 0x12, - 0xb5, 0x2b, 0x1d, 0xdb, 0xd8, 0x18, 0xc2, 0x86, 0xf1, 0x20, 0xf2, 0x7a, 0x9e, 0x04, 0x39, 0xb6, - 0xb2, 0x7c, 0x67, 0xf4, 0xca, 0x72, 0xff, 0xa9, 0xc5, 0x07, 0x06, 0x30, 0xe5, 0xa2, 0x96, 0x7b, - 0x3d, 0x36, 0xd2, 0x01, 0x36, 0x6e, 0x80, 0x2c, 0x89, 0xff, 0xc7, 0xc6, 0x39, 0x7f, 0xaf, 0xdf, - 0x25, 0xa1, 0x38, 0x5f, 0x55, 0x9a, 0x29, 0x36, 0x0a, 0x43, 0x58, 0x21, 0x1e, 0x04, 0x85, 0x7f, - 0xf9, 0x5c, 0xca, 0x33, 0x42, 0x3e, 0x90, 0x61, 0xe6, 0xdf, 0xa7, 0xf8, 0x48, 0x04, 0x0d, 0xd3, - 0xb0, 0xf1, 0xc5, 0xc0, 0x9a, 0xbc, 0x97, 0x10, 0x69, 0x19, 0x9c, 0x82, 0x31, 0xdb, 0x0a, 0xae, - 0xd3, 0xbb, 0xaf, 0xc1, 0x1e, 0x27, 0xcb, 0xf7, 0x38, 0x65, 0x38, 0xa3, 0x1b, 0x8d, 0xd6, 0x4e, - 0x13, 0xab, 0xb8, 0xa5, 0x39, 0xb5, 0xea, 0x14, 0x3a, 0xf3, 0xb8, 0x8d, 0x8d, 0x26, 0x36, 0x6c, - 0xca, 0xa7, 0xeb, 0x93, 0x2b, 0x90, 0x13, 0x7d, 0x33, 0xa8, 0x18, 0x77, 0xf0, 0x8a, 0xf1, 0xf8, - 0x5e, 0xf3, 0x8a, 0x08, 0x23, 0xf4, 0x56, 0x00, 0x5a, 0xb7, 0xb3, 0x3a, 0xbe, 0xc0, 0x3a, 0xc4, - 0xcb, 0xba, 0x4c, 0xd1, 0x8a, 0x97, 0x41, 0x0d, 0x64, 0x46, 0x0f, 0x7b, 0xca, 0x70, 0x17, 0xa7, - 0x0c, 0x37, 0x08, 0xb2, 0x10, 0x4f, 0x0f, 0xda, 0x03, 0xac, 0x75, 0x4c, 0xc3, 0x84, 0xbf, 0x42, - 0x29, 0xc9, 0x97, 0xc1, 0x09, 0xd7, 0xe7, 0xa1, 0xac, 0x28, 0xf3, 0xd5, 0xfa, 0xda, 0xea, 0xa2, - 0x5a, 0x98, 0x57, 0xf2, 0x20, 0xcb, 0x30, 0x53, 0x99, 0xbb, 0x5b, 0x29, 0xd6, 0x3c, 0x57, 0x85, - 0x0c, 0xfa, 0xab, 0x34, 0x64, 0x89, 0x43, 0x39, 0x7a, 0xf6, 0x90, 0x34, 0xa7, 0xc3, 0xed, 0xf0, - 0x78, 0x13, 0x29, 0xf1, 0x08, 0x81, 0x4c, 0x98, 0x84, 0xab, 0x03, 0x45, 0x08, 0x8c, 0x20, 0x94, - 0x7c, 0xf3, 0x74, 0x9a, 0x64, 0x75, 0xcb, 0xbc, 0xf0, 0x93, 0xdc, 0x24, 0x9d, 0xfa, 0x1f, 0x72, - 0x93, 0xec, 0xc1, 0xc2, 0xc8, 0x9b, 0x64, 0x8f, 0x76, 0x17, 0xd1, 0x4c, 0xd1, 0x73, 0xb3, 0xde, - 0x82, 0xcc, 0x0b, 0xd2, 0x07, 0x5a, 0x90, 0x29, 0xc0, 0xb4, 0x6e, 0xd8, 0xd8, 0x32, 0xb4, 0xd6, - 0x42, 0x4b, 0xdb, 0x74, 0x8f, 0x2d, 0x77, 0xcf, 0xc2, 0x4b, 0x81, 0x3c, 0x2a, 0xff, 0x87, 0x7c, - 0x1a, 0xc0, 0xc6, 0xdb, 0xed, 0x96, 0x66, 0xfb, 0xaa, 0x17, 0x48, 0x09, 0x6a, 0x5f, 0x86, 0xd7, - 0xbe, 0x9b, 0xe0, 0x12, 0x0a, 0x5a, 0x6d, 0xaf, 0x8d, 0xd7, 0x0c, 0xfd, 0xe7, 0x77, 0x48, 0xe0, - 0x1a, 0xaa, 0xa3, 0xbd, 0x3e, 0x71, 0xcb, 0x12, 0xb9, 0xae, 0x65, 0x89, 0x7f, 0x14, 0x3e, 0x9a, - 0xe9, 0xb6, 0xfa, 0x3e, 0x47, 0x33, 0xbd, 0x96, 0x26, 0x75, 0xb5, 0x34, 0xcf, 0x58, 0xc8, 0x08, - 0x18, 0x0b, 0x41, 0x54, 0xb2, 0x82, 0x86, 0xf6, 0x1b, 0x84, 0xce, 0x7e, 0x46, 0x55, 0x63, 0x04, - 0x13, 0x39, 0x09, 0x66, 0x68, 0xd1, 0x73, 0xa6, 0x79, 0x7e, 0x5b, 0xb3, 0xce, 0x23, 0xeb, 0x40, - 0xaa, 0x18, 0xb9, 0x26, 0x12, 0xba, 0xd0, 0xf7, 0xd9, 0x20, 0xea, 0x8b, 0x3c, 0xea, 0x4f, 0x0a, - 0x17, 0x97, 0xcb, 0xf3, 0x68, 0x16, 0x45, 0xde, 0xea, 0xe1, 0x79, 0x37, 0x87, 0xe7, 0x53, 0x62, - 0x33, 0x98, 0x3c, 0xae, 0x7f, 0xe2, 0xe1, 0xea, 0x76, 0xf4, 0xc1, 0xf9, 0xe4, 0x30, 0x71, 0x45, - 0x5f, 0x1b, 0x0c, 0x3b, 0x97, 0xaf, 0x01, 0xb0, 0xcb, 0x83, 0x74, 0xde, 0xdb, 0xc2, 0x72, 0x1e, - 0x83, 0x15, 0xca, 0x24, 0x87, 0x66, 0x08, 0xcb, 0x23, 0x41, 0xf3, 0x38, 0xcf, 0x42, 0xa5, 0x9d, - 0x28, 0xa6, 0x5f, 0x15, 0x5e, 0xa7, 0xe9, 0x29, 0x20, 0xca, 0xdd, 0x68, 0x5a, 0xa5, 0xd8, 0x22, - 0x8f, 0x38, 0x9b, 0xc9, 0xa3, 0xf9, 0x92, 0x2c, 0x4c, 0xb8, 0x87, 0x67, 0x49, 0x44, 0x6d, 0x0f, - 0xc3, 0x93, 0x90, 0xeb, 0x98, 0x3b, 0x56, 0x03, 0xb3, 0x95, 0x33, 0xf6, 0x36, 0xc0, 0x2a, 0x4f, - 0xdf, 0xf1, 0x7c, 0x9f, 0xc9, 0x90, 0x89, 0x6d, 0x32, 0x84, 0x1b, 0xa4, 0x51, 0x03, 0xfc, 0x4b, - 0x85, 0xc3, 0x20, 0x72, 0x98, 0x55, 0xb1, 0xfd, 0x68, 0x1c, 0xe3, 0xff, 0x50, 0x68, 0x0d, 0xa1, - 0x4f, 0x4d, 0xe2, 0xa9, 0x5c, 0x65, 0x00, 0x43, 0xf5, 0x72, 0xb8, 0xd4, 0xcd, 0xc1, 0x2c, 0x54, - 0x62, 0x91, 0xae, 0xa9, 0xcb, 0x79, 0x09, 0x3d, 0x2f, 0x03, 0x79, 0xca, 0x5a, 0xc5, 0x33, 0xd6, - 0xd0, 0x03, 0xa9, 0xc3, 0xb6, 0x48, 0xc3, 0xa7, 0x98, 0x9f, 0x4f, 0x8b, 0x86, 0x5a, 0xe2, 0x04, - 0xef, 0xd7, 0x2e, 0x44, 0x93, 0x06, 0x68, 0x66, 0x11, 0xca, 0x87, 0x7e, 0x3b, 0x25, 0x12, 0xb9, - 0x49, 0x8c, 0xc5, 0xe4, 0x7b, 0xa5, 0x2f, 0x65, 0xdc, 0x18, 0x08, 0x0b, 0x96, 0xb9, 0xbd, 0x66, - 0xb5, 0xd0, 0xff, 0x29, 0x14, 0x18, 0x2f, 0xc4, 0xfc, 0x4f, 0x87, 0x9b, 0xff, 0x79, 0x90, 0x76, - 0xac, 0x96, 0x3b, 0x7c, 0xef, 0x58, 0xad, 0x01, 0x86, 0x6f, 0xf9, 0x5a, 0x98, 0xd1, 0x9a, 0xcd, - 0x55, 0x6d, 0x13, 0x17, 0x9d, 0x79, 0xb5, 0x61, 0xb3, 0xf3, 0xd1, 0x5d, 0xa9, 0x91, 0x5d, 0xd1, - 0x37, 0x85, 0x77, 0xe2, 0x38, 0x90, 0x98, 0x7c, 0x46, 0x32, 0xbc, 0x39, 0x43, 0x42, 0x63, 0x4b, - 0xf3, 0xa3, 0x35, 0xb0, 0x37, 0xc1, 0x1d, 0x3a, 0x01, 0xbe, 0x93, 0xd7, 0xac, 0xdf, 0x4f, 0xc3, - 0x98, 0x23, 0xef, 0x42, 0xb3, 0x89, 0x1e, 0xc7, 0x05, 0x35, 0x09, 0xdd, 0x23, 0x7d, 0x91, 0xf0, - 0xe6, 0xb4, 0x5b, 0x43, 0x4a, 0x3f, 0x04, 0x13, 0x5f, 0x88, 0x69, 0x4e, 0x88, 0x62, 0x7b, 0xd0, - 0x91, 0x45, 0x24, 0x2f, 0xbe, 0xcf, 0xa4, 0x61, 0xda, 0x9d, 0x47, 0x2c, 0x60, 0xbb, 0xb1, 0x85, - 0x6e, 0x15, 0x5d, 0x68, 0x62, 0x2d, 0x2d, 0xed, 0xb5, 0x34, 0xf4, 0xa3, 0x54, 0x4c, 0x95, 0xe7, - 0x4a, 0x0e, 0x59, 0xa5, 0x8b, 0xa5, 0x8b, 0x51, 0x04, 0x93, 0x17, 0xe6, 0xc3, 0x69, 0x80, 0x9a, - 0xe9, 0xcd, 0x75, 0x0f, 0x20, 0xc9, 0x57, 0x08, 0x47, 0xa9, 0x67, 0x15, 0xf7, 0x8b, 0x8d, 0xdf, - 0x73, 0x08, 0x6e, 0xb1, 0xf5, 0x2b, 0x69, 0x24, 0x6d, 0x7d, 0x62, 0x7e, 0xa7, 0xdd, 0xd2, 0x1b, - 0x9a, 0xdd, 0xbd, 0x2f, 0x1c, 0x2e, 0x5e, 0x72, 0xdd, 0x4c, 0x2c, 0xa3, 0xd0, 0x2b, 0x23, 0x44, - 0x96, 0xf4, 0xb0, 0x6d, 0xda, 0x3d, 0x6c, 0x2b, 0xb8, 0xd7, 0xd3, 0x87, 0xf8, 0x08, 0xd4, 0x53, - 0x82, 0xa3, 0x95, 0x36, 0x36, 0xe6, 0x2c, 0xac, 0x35, 0x1b, 0xd6, 0xce, 0xf6, 0x7a, 0x27, 0xe8, - 0xd4, 0x10, 0xad, 0xa3, 0x81, 0xa5, 0xe3, 0x34, 0xb7, 0x74, 0x8c, 0x9e, 0x2f, 0x89, 0x1e, 0xfd, - 0x0e, 0x6c, 0x70, 0x04, 0x78, 0x18, 0x60, 0xa8, 0x8b, 0xb5, 0x15, 0xd7, 0xb5, 0x4a, 0x9c, 0x89, - 0xb3, 0x4a, 0xfc, 0x36, 0xa1, 0x83, 0xe4, 0x42, 0xf5, 0x1a, 0xc9, 0x8e, 0xea, 0x4c, 0x15, 0xdb, - 0x21, 0xf0, 0x5e, 0x03, 0xd3, 0xeb, 0xfe, 0x17, 0x0f, 0x62, 0x3e, 0xb1, 0x87, 0x9f, 0xc3, 0xdb, - 0xe3, 0xae, 0xc0, 0xf0, 0x2c, 0x84, 0xa0, 0xeb, 0x21, 0x98, 0x16, 0xd9, 0x4c, 0x8d, 0xb5, 0x9c, - 0x12, 0x59, 0x7e, 0xf2, 0x28, 0x7c, 0x22, 0x0d, 0x93, 0xe4, 0x12, 0x9d, 0xb9, 0x3d, 0xe2, 0x9d, - 0x2f, 0x68, 0x94, 0xbc, 0x24, 0x28, 0x66, 0x19, 0x32, 0x2d, 0xdd, 0x38, 0xef, 0xee, 0x82, 0x3b, - 0xcf, 0xfe, 0x95, 0x0c, 0xe9, 0x1e, 0x57, 0x32, 0x78, 0xfb, 0x14, 0x5e, 0xb9, 0x07, 0xba, 0x23, - 0xac, 0x2f, 0xb9, 0xe4, 0xc5, 0xf8, 0xf7, 0x19, 0xc8, 0x55, 0xb1, 0x66, 0x35, 0xb6, 0xd0, 0x07, - 0xd2, 0x3d, 0xa7, 0x0a, 0xe3, 0xfc, 0x54, 0x61, 0x01, 0xc6, 0x36, 0xf4, 0x96, 0x8d, 0x2d, 0xea, - 0x19, 0x14, 0xec, 0xda, 0x69, 0x13, 0x9f, 0x6b, 0x99, 0x8d, 0xf3, 0xb3, 0xcc, 0x74, 0x9f, 0x75, - 0x83, 0x49, 0xcd, 0x2e, 0x90, 0x9f, 0x54, 0xf7, 0x67, 0xc7, 0x20, 0xec, 0x98, 0x96, 0x1d, 0x16, - 0x9d, 0x35, 0x84, 0x4a, 0xd5, 0xb4, 0x6c, 0x95, 0xfe, 0xe8, 0xc0, 0xbc, 0xb1, 0xd3, 0x6a, 0xd5, - 0xf0, 0x45, 0xdb, 0x9d, 0xb6, 0xb9, 0xef, 0x8e, 0xb1, 0x68, 0x6e, 0x6c, 0x74, 0x30, 0x5d, 0x34, - 0xc8, 0xaa, 0xec, 0x4d, 0x3e, 0x0e, 0xd9, 0x96, 0xbe, 0xad, 0xd3, 0x89, 0x46, 0x56, 0xa5, 0x2f, - 0xf2, 0xf5, 0x90, 0xf7, 0xe7, 0x38, 0x94, 0xd1, 0x53, 0x39, 0xd2, 0x34, 0xf7, 0xa5, 0x3b, 0x3a, - 0x73, 0x1e, 0xef, 0x75, 0x4e, 0x8d, 0x91, 0xef, 0xe4, 0x99, 0x77, 0xc3, 0x14, 0xd9, 0xef, 0xa0, - 0x12, 0x0f, 0x9f, 0xc1, 0x5a, 0xb8, 0x61, 0x5a, 0x4d, 0x57, 0x36, 0xe1, 0x13, 0x0c, 0x96, 0x2f, - 0xde, 0x2e, 0x45, 0xcf, 0xc2, 0x93, 0xd7, 0xb4, 0xf7, 0xe6, 0x9c, 0x6e, 0xd3, 0x29, 0xfa, 0x9c, - 0x6e, 0x6f, 0xad, 0x60, 0x5b, 0x43, 0x7f, 0x2f, 0xf5, 0xd4, 0xb8, 0xc9, 0xff, 0x5f, 0xe3, 0xfa, - 0x68, 0x1c, 0x0d, 0x13, 0x60, 0xef, 0x58, 0x86, 0x23, 0x47, 0x16, 0x98, 0x2b, 0x90, 0x22, 0xdf, - 0x0e, 0x97, 0xf9, 0x6f, 0xee, 0x52, 0xe9, 0x3c, 0x9b, 0xb6, 0x4e, 0x90, 0xec, 0xe1, 0x19, 0xe4, - 0x55, 0xb8, 0x9a, 0x7e, 0x5c, 0xaa, 0xad, 0x2c, 0x2f, 0xe9, 0x9b, 0x5b, 0x2d, 0x7d, 0x73, 0xcb, - 0xee, 0x94, 0x8c, 0x8e, 0x8d, 0xb5, 0x66, 0x65, 0x43, 0xa5, 0x71, 0x95, 0x81, 0xd0, 0x11, 0xc9, - 0xca, 0x7b, 0x0e, 0x89, 0x8d, 0x6e, 0x41, 0x4d, 0x09, 0x69, 0x29, 0x4f, 0x71, 0x5a, 0x4a, 0x67, - 0xa7, 0xe5, 0x61, 0x7a, 0x45, 0x17, 0xa6, 0xbe, 0xaa, 0xef, 0xb4, 0x48, 0x73, 0x21, 0x99, 0xe3, - 0x8e, 0x73, 0x11, 0x9c, 0x24, 0xdf, 0x6c, 0xfe, 0xdf, 0x1c, 0x64, 0x17, 0x2d, 0xad, 0xbd, 0x85, - 0x9e, 0x17, 0xe8, 0x9f, 0x87, 0xd5, 0x26, 0x3c, 0xed, 0x4c, 0xf7, 0xd3, 0x4e, 0xa9, 0x8f, 0x76, - 0x66, 0x02, 0xda, 0x19, 0xbe, 0xa8, 0x7c, 0x06, 0xa6, 0x1a, 0x66, 0xab, 0x85, 0x1b, 0x8e, 0x3c, - 0x4a, 0x4d, 0xb2, 0x9a, 0x33, 0xa1, 0x72, 0x69, 0x24, 0xe0, 0x1e, 0xb6, 0xab, 0x74, 0x0d, 0x9d, - 0x2a, 0xbd, 0x9f, 0x80, 0x1e, 0x48, 0x43, 0x46, 0x69, 0x6e, 0x62, 0x6e, 0x9d, 0x3d, 0x15, 0x58, - 0x67, 0x3f, 0x09, 0x39, 0x5b, 0xb3, 0x36, 0xb1, 0xed, 0xae, 0x13, 0xd0, 0x37, 0x2f, 0x0e, 0xa0, - 0x14, 0x88, 0x03, 0xf8, 0x54, 0xc8, 0x38, 0x32, 0x63, 0x11, 0x76, 0xae, 0xee, 0x05, 0x3f, 0x91, - 0xfd, 0xac, 0x53, 0xe2, 0xac, 0x53, 0x6b, 0x95, 0xfc, 0xd0, 0x8d, 0x75, 0x76, 0x1f, 0xd6, 0xe4, - 0x8a, 0x98, 0x86, 0x69, 0x94, 0xb6, 0xb5, 0x4d, 0xcc, 0xaa, 0xe9, 0x27, 0xb8, 0x5f, 0x95, 0x6d, - 0xf3, 0x3e, 0x9d, 0x85, 0xe4, 0xf3, 0x13, 0x9c, 0x2a, 0x6c, 0xe9, 0xcd, 0x26, 0x36, 0x58, 0xcb, - 0x66, 0x6f, 0x67, 0x4e, 0x43, 0xc6, 0xe1, 0xc1, 0xd1, 0x1f, 0xc7, 0x58, 0xc8, 0x1f, 0x91, 0xa7, - 0x9c, 0x66, 0x45, 0x1b, 0x6f, 0x3e, 0xc5, 0xaf, 0xa9, 0x8a, 0xb8, 0xed, 0xd0, 0xca, 0xf5, 0x6e, - 0x5c, 0x4f, 0x84, 0xac, 0x61, 0x36, 0x71, 0xdf, 0x41, 0x88, 0xe6, 0x92, 0x9f, 0x0c, 0x59, 0xdc, - 0x74, 0x7a, 0x05, 0x89, 0x64, 0x3f, 0x1d, 0x2d, 0x4b, 0x95, 0x66, 0x8e, 0xe7, 0x1b, 0xd4, 0x8b, - 0xdb, 0xe4, 0x1b, 0xe0, 0xaf, 0x8c, 0xc1, 0x51, 0xda, 0x07, 0x54, 0x77, 0xd6, 0x1d, 0x52, 0xeb, - 0x18, 0x3d, 0xd4, 0x7b, 0xe0, 0x3a, 0xca, 0x2b, 0xfb, 0x71, 0xc8, 0x76, 0x76, 0xd6, 0x3d, 0x23, - 0x94, 0xbe, 0x04, 0x9b, 0x6e, 0x7a, 0x28, 0xc3, 0x99, 0x34, 0xe8, 0x70, 0xc6, 0x0d, 0x4d, 0x92, - 0xdb, 0xf8, 0xfd, 0x81, 0x2c, 0x47, 0x92, 0xdd, 0x81, 0xac, 0xd7, 0x30, 0x74, 0x0a, 0xc6, 0xb4, - 0x0d, 0x1b, 0x5b, 0xbe, 0x99, 0xc8, 0x5e, 0x9d, 0xa1, 0x72, 0x1d, 0x6f, 0x98, 0x96, 0x23, 0x96, - 0x09, 0x3a, 0x54, 0xba, 0xef, 0x81, 0x96, 0x0b, 0xdc, 0x0e, 0xd9, 0x0d, 0x70, 0xcc, 0x30, 0xe7, - 0x71, 0x9b, 0xc9, 0x99, 0xa2, 0x38, 0x4d, 0x5a, 0xc0, 0xfe, 0x0f, 0xfb, 0xba, 0x92, 0x99, 0xfd, - 0x5d, 0x09, 0xfa, 0x5c, 0xdc, 0x39, 0x73, 0x17, 0xd0, 0x43, 0xb3, 0xd0, 0xe4, 0xa7, 0xc3, 0x54, - 0x93, 0xb9, 0x68, 0x35, 0x74, 0xaf, 0x95, 0x84, 0xfe, 0xc7, 0x65, 0xf6, 0x15, 0x29, 0x13, 0x54, - 0xa4, 0x45, 0x18, 0x27, 0x07, 0x72, 0x1c, 0x4d, 0xca, 0x76, 0xc5, 0x2b, 0x24, 0xd3, 0x3a, 0xaf, - 0x52, 0x01, 0xb1, 0xcd, 0x16, 0xd9, 0x2f, 0xaa, 0xf7, 0x73, 0xbc, 0xd9, 0x77, 0xb4, 0x84, 0x92, - 0x6f, 0x8e, 0xbf, 0x93, 0x83, 0xcb, 0x8a, 0x96, 0xd9, 0xe9, 0x90, 0x28, 0x14, 0xdd, 0x0d, 0xf3, - 0x2d, 0x69, 0x2e, 0x22, 0xf0, 0xa3, 0xba, 0xf9, 0xf5, 0x6a, 0x50, 0xa3, 0x6b, 0x1a, 0xdf, 0x14, - 0x3e, 0xca, 0xec, 0xed, 0x3f, 0x84, 0x08, 0xfd, 0x27, 0xa3, 0x91, 0xbc, 0x37, 0x25, 0x72, 0xba, - 0x3a, 0xa6, 0xac, 0x92, 0x6f, 0x2e, 0x5f, 0x4d, 0xc3, 0xe5, 0xdd, 0xdc, 0xac, 0x19, 0x1d, 0xaf, - 0xc1, 0x5c, 0xd9, 0xa7, 0xbd, 0xf0, 0xa7, 0x71, 0x23, 0x6f, 0x40, 0x09, 0xa9, 0x7b, 0xa0, 0xb4, - 0x90, 0xc5, 0x92, 0xf7, 0xa7, 0x44, 0x6e, 0x40, 0x89, 0x4d, 0x3e, 0x79, 0xe1, 0x7e, 0x3e, 0x03, - 0x47, 0x17, 0x2d, 0x73, 0xa7, 0xdd, 0xf1, 0x7b, 0xa0, 0xbf, 0xed, 0xbd, 0xe1, 0x9a, 0x13, 0x31, - 0x0d, 0xae, 0x82, 0x49, 0x8b, 0x59, 0x73, 0xfe, 0xf6, 0x6b, 0x30, 0x29, 0xd8, 0x7b, 0x49, 0x07, - 0xe9, 0xbd, 0xfc, 0x7e, 0x26, 0xc3, 0xf5, 0x33, 0xdd, 0x3d, 0x47, 0xb6, 0x47, 0xcf, 0xf1, 0x37, - 0xe9, 0x98, 0x83, 0x6a, 0x97, 0x88, 0x42, 0xfa, 0x8b, 0x22, 0xe4, 0x36, 0x49, 0x46, 0xd6, 0x5d, - 0x3c, 0x41, 0xac, 0x66, 0x84, 0xb8, 0xca, 0x7e, 0xf5, 0xe5, 0x2a, 0x05, 0x75, 0x38, 0xd6, 0x00, - 0x17, 0xcd, 0x6d, 0xf2, 0x4a, 0xf5, 0x60, 0x06, 0xa6, 0xbc, 0xd2, 0x4b, 0xcd, 0x0e, 0x7a, 0x49, - 0x6f, 0x8d, 0x9a, 0x16, 0xd1, 0xa8, 0x7d, 0xeb, 0xcc, 0xde, 0xa8, 0x23, 0x05, 0x46, 0x9d, 0x9e, - 0xa3, 0xcb, 0x54, 0xc8, 0xe8, 0x82, 0x9e, 0x2b, 0x89, 0xc6, 0xd4, 0xe7, 0xbb, 0x56, 0x52, 0x9b, - 0x47, 0xf3, 0x60, 0x21, 0x18, 0xd9, 0xbf, 0x7f, 0xad, 0x92, 0x57, 0x92, 0x0f, 0xa7, 0xe1, 0xd8, - 0xfe, 0xce, 0xfc, 0xb1, 0xbc, 0x17, 0x9a, 0x53, 0xa7, 0x8e, 0xe7, 0x85, 0x46, 0xde, 0xf8, 0x4d, - 0xba, 0xc8, 0xa3, 0xb1, 0x9c, 0xbd, 0xd7, 0xbf, 0x13, 0x17, 0x3b, 0xfc, 0x2a, 0x48, 0x34, 0x79, - 0x01, 0xfe, 0x9a, 0x04, 0x13, 0x55, 0x6c, 0x2f, 0x6b, 0x7b, 0xe6, 0x8e, 0x8d, 0x34, 0xd1, 0xed, - 0xb9, 0xa7, 0x41, 0xae, 0x45, 0x7e, 0x61, 0x17, 0x44, 0x5e, 0xd5, 0x73, 0x7f, 0x8b, 0xf8, 0xfe, - 0x50, 0xd2, 0x2a, 0xcb, 0xcf, 0x9f, 0x49, 0x16, 0xd9, 0x1d, 0xf5, 0xb8, 0x1b, 0xca, 0xd6, 0x4e, - 0xac, 0xbd, 0xd3, 0xb0, 0xa2, 0x93, 0x87, 0xe5, 0xf9, 0x12, 0x4c, 0x57, 0xb1, 0x5d, 0xea, 0x2c, - 0x68, 0xbb, 0xa6, 0xa5, 0xdb, 0x38, 0x78, 0x57, 0x51, 0x34, 0x34, 0xa7, 0x01, 0x74, 0xef, 0x37, - 0x16, 0x29, 0x21, 0x90, 0x82, 0x7e, 0x3b, 0xae, 0xa3, 0x10, 0xc7, 0xc7, 0x50, 0x40, 0x88, 0xe5, - 0x63, 0x11, 0x55, 0x7c, 0xf2, 0x40, 0x7c, 0x39, 0xcd, 0x80, 0x28, 0x58, 0x8d, 0x2d, 0x7d, 0x17, - 0x37, 0x63, 0x02, 0xe1, 0xfe, 0xe6, 0x03, 0xe1, 0x11, 0x8a, 0xed, 0xbe, 0xc2, 0xf1, 0x31, 0x0c, - 0xf7, 0x95, 0x28, 0x82, 0x23, 0x09, 0x76, 0xe0, 0x74, 0x3d, 0x6c, 0x3d, 0xf3, 0x4e, 0x51, 0xb1, - 0xfa, 0x26, 0x5b, 0x3a, 0x68, 0xb2, 0x0d, 0xd4, 0xb1, 0xd0, 0xb2, 0xfb, 0xe9, 0x74, 0x26, 0x89, - 0x8e, 0xa5, 0x67, 0xd1, 0xc9, 0x0b, 0xfd, 0xfd, 0x12, 0x9c, 0xf0, 0x4e, 0x01, 0x57, 0xb1, 0x3d, - 0xaf, 0x75, 0xb6, 0xd6, 0x4d, 0xcd, 0x6a, 0x06, 0x2f, 0x0e, 0x1d, 0xf8, 0xc4, 0x1f, 0xfa, 0x52, - 0x10, 0x84, 0x32, 0x0f, 0x42, 0x4f, 0x57, 0xd1, 0x9e, 0xbc, 0x0c, 0xa3, 0x93, 0x89, 0xf4, 0x66, - 0xfd, 0x5d, 0x0f, 0xac, 0x67, 0x72, 0x60, 0xdd, 0x31, 0x28, 0x8b, 0xc9, 0x03, 0xf7, 0x9b, 0x74, - 0x44, 0x08, 0x78, 0x35, 0xdf, 0x2b, 0x0a, 0x58, 0x88, 0x57, 0xab, 0x14, 0xea, 0xd5, 0x3a, 0xd0, - 0x18, 0xd1, 0xd7, 0x23, 0x39, 0xd9, 0x31, 0xe2, 0x10, 0xbd, 0x8d, 0xdf, 0x2d, 0x41, 0x9e, 0x84, - 0x81, 0x08, 0x78, 0x7c, 0xa3, 0xfb, 0x44, 0xd1, 0xd9, 0xe7, 0x5d, 0x3e, 0x16, 0xd7, 0xbb, 0x1c, - 0xbd, 0x2b, 0xae, 0x0f, 0x79, 0x37, 0xb7, 0x43, 0x41, 0x2c, 0x96, 0x8b, 0x78, 0x1f, 0x0e, 0x92, - 0x07, 0xed, 0xbf, 0x4a, 0x00, 0x4e, 0x83, 0x66, 0x67, 0x1f, 0x9e, 0x25, 0x0a, 0xd7, 0x8d, 0x41, - 0xbf, 0x7a, 0x07, 0xa8, 0x13, 0x5d, 0x40, 0x51, 0x8a, 0xfe, 0xa9, 0x8a, 0x87, 0xe2, 0xfa, 0x56, - 0xfa, 0x5c, 0x0d, 0x05, 0x96, 0x58, 0xde, 0x96, 0xa1, 0x65, 0x27, 0x0f, 0xc8, 0x7f, 0x4f, 0x43, - 0xb6, 0x66, 0x56, 0xb1, 0x7d, 0x70, 0x53, 0x20, 0xf6, 0xb1, 0x7d, 0x52, 0xee, 0x30, 0x8e, 0xed, - 0xf7, 0x22, 0x94, 0xbc, 0xe8, 0xde, 0x97, 0x86, 0xa9, 0x9a, 0x59, 0xf4, 0x16, 0xa7, 0xc4, 0x7d, - 0x55, 0xc5, 0xef, 0x05, 0xf4, 0x2a, 0xe8, 0x17, 0x73, 0xa0, 0x7b, 0x01, 0xfb, 0xd3, 0x4b, 0x5e, - 0x6e, 0xb7, 0xc2, 0xd1, 0x35, 0xa3, 0x69, 0xaa, 0xb8, 0x69, 0xb2, 0x95, 0x6e, 0x59, 0x86, 0xcc, - 0x8e, 0xd1, 0x34, 0x09, 0xcb, 0x59, 0x95, 0x3c, 0x3b, 0x69, 0x16, 0x6e, 0x9a, 0xcc, 0x37, 0x80, - 0x3c, 0xa3, 0x6f, 0x4a, 0x90, 0x71, 0xfe, 0x15, 0x17, 0xf5, 0xbb, 0xa5, 0x98, 0x81, 0x08, 0x1c, - 0xf2, 0x43, 0xb1, 0x84, 0xee, 0x0c, 0xac, 0xfd, 0x53, 0x0f, 0xd6, 0xab, 0xc3, 0xca, 0x0b, 0x88, - 0xc2, 0x5f, 0xf3, 0x97, 0x4f, 0xc1, 0xd8, 0x7a, 0xcb, 0x6c, 0x9c, 0xf7, 0xcf, 0xcb, 0xb3, 0x57, - 0xf9, 0x7a, 0xc8, 0x5a, 0x9a, 0xb1, 0x89, 0xd9, 0x9e, 0xc2, 0xf1, 0xae, 0xbe, 0x90, 0x78, 0xbd, - 0xa8, 0x34, 0x0b, 0x7a, 0x57, 0x9c, 0x10, 0x08, 0x3d, 0x2a, 0x1f, 0x4f, 0x1f, 0xe6, 0x07, 0x38, - 0x59, 0x96, 0x87, 0xa9, 0x62, 0x81, 0xde, 0xc0, 0xb9, 0x52, 0x39, 0xab, 0xe4, 0x25, 0x02, 0xb3, - 0x23, 0x93, 0x04, 0x61, 0x76, 0xc8, 0xff, 0xc4, 0xc2, 0xdc, 0xa3, 0xf2, 0x87, 0x01, 0xf3, 0x67, - 0xd2, 0x30, 0xbd, 0xac, 0x77, 0xec, 0x30, 0x6f, 0xff, 0x88, 0x28, 0x70, 0x2f, 0x8d, 0x6b, 0x2a, - 0x73, 0xe5, 0x08, 0x87, 0x7f, 0x8b, 0x65, 0x0e, 0x47, 0x15, 0x31, 0x9a, 0x63, 0x29, 0x84, 0x03, - 0x7a, 0x6b, 0x9e, 0xb0, 0x24, 0x63, 0x1b, 0x4a, 0x7e, 0x21, 0xa3, 0x37, 0x94, 0x42, 0xcb, 0x4e, - 0x5e, 0xbe, 0xdf, 0x4c, 0xc3, 0x31, 0xa7, 0xf8, 0xa8, 0x65, 0xa9, 0x70, 0x31, 0xf7, 0x5d, 0x96, - 0x8a, 0xbd, 0x32, 0xbe, 0x8f, 0x97, 0x61, 0xac, 0x8c, 0xf7, 0x23, 0x3a, 0x62, 0x31, 0x87, 0x2c, - 0xc3, 0xf6, 0x13, 0x73, 0xc4, 0x32, 0xec, 0xe0, 0x62, 0x8e, 0x5e, 0x8a, 0x1d, 0x50, 0xcc, 0x87, - 0xb6, 0xc0, 0xfa, 0x26, 0xc9, 0x13, 0x73, 0xe8, 0xda, 0x46, 0x84, 0x98, 0x63, 0x9f, 0xd8, 0x45, - 0xef, 0x19, 0x50, 0xf0, 0x43, 0x5e, 0xdf, 0x18, 0x04, 0xa6, 0x43, 0x5c, 0xe3, 0xf8, 0x2d, 0x09, - 0x66, 0x18, 0x17, 0xbd, 0xa7, 0xcc, 0x11, 0x18, 0xc5, 0x9e, 0x32, 0xc7, 0x3e, 0x03, 0xc4, 0x73, - 0x36, 0xfa, 0x33, 0x40, 0x91, 0xe5, 0x27, 0x0f, 0xce, 0xb7, 0x33, 0x70, 0xd2, 0x61, 0x61, 0xc5, - 0x6c, 0xea, 0x1b, 0x7b, 0x94, 0x8b, 0xb3, 0x5a, 0x6b, 0x07, 0x77, 0xd0, 0x07, 0xd3, 0xa2, 0x28, - 0xfd, 0x27, 0x00, 0xb3, 0x8d, 0x2d, 0x1a, 0x48, 0x8d, 0x01, 0x75, 0x7b, 0x58, 0x65, 0xf7, 0x97, - 0xe4, 0x05, 0x45, 0xaf, 0xb8, 0x44, 0xd4, 0x00, 0x3d, 0xc7, 0x2a, 0x9c, 0xf0, 0xbe, 0x74, 0x3b, - 0x78, 0xa4, 0xf6, 0x3b, 0x78, 0x5c, 0x07, 0x92, 0xd6, 0x6c, 0x7a, 0x50, 0x75, 0x6f, 0x66, 0x93, - 0x32, 0x55, 0x27, 0x8b, 0x93, 0xb3, 0x83, 0xfd, 0xa3, 0x79, 0x21, 0x39, 0x3b, 0xd8, 0x96, 0x67, - 0x21, 0x47, 0x6f, 0x10, 0xf4, 0x56, 0xf4, 0x7b, 0x67, 0x66, 0xb9, 0x78, 0xd3, 0xae, 0xc2, 0xab, - 0xe1, 0xad, 0xb1, 0x24, 0xd3, 0xab, 0x9f, 0xf6, 0xed, 0x64, 0x95, 0x53, 0xb0, 0x67, 0x0c, 0x4c, - 0x79, 0x34, 0xbb, 0x61, 0x85, 0x76, 0xbb, 0xb5, 0x57, 0x63, 0xc1, 0x57, 0x62, 0xed, 0x86, 0x05, - 0x62, 0xb8, 0xa4, 0xbb, 0x63, 0xb8, 0xc4, 0xdf, 0x0d, 0xe3, 0xf8, 0x18, 0xc6, 0x6e, 0x58, 0x14, - 0xc1, 0x11, 0xac, 0x47, 0x66, 0xa9, 0xd5, 0xcc, 0x62, 0xd4, 0xbe, 0xb5, 0xf7, 0x21, 0x34, 0xe0, - 0x9d, 0x5d, 0x7a, 0x85, 0xaf, 0x8d, 0x8c, 0xcd, 0x2d, 0x3f, 0x19, 0x72, 0x1b, 0xa6, 0xb5, 0xad, - 0xb9, 0x1b, 0xf7, 0xdd, 0x27, 0x45, 0x58, 0x5c, 0xd8, 0x05, 0x92, 0x47, 0x65, 0x79, 0x9d, 0xf9, - 0xc8, 0x73, 0xf4, 0x36, 0x8b, 0xba, 0xe8, 0x3c, 0xca, 0xd7, 0xc0, 0x34, 0x0b, 0xbe, 0x58, 0xc6, - 0x1d, 0x1b, 0x37, 0x59, 0xc4, 0x0a, 0x3e, 0x51, 0x3e, 0x03, 0x53, 0x2c, 0x61, 0x41, 0x6f, 0xe1, - 0x0e, 0x0b, 0x5a, 0xc1, 0xa5, 0xc9, 0x27, 0x21, 0xa7, 0x77, 0xee, 0xee, 0x98, 0x06, 0xf1, 0xff, - 0x1f, 0x57, 0xd9, 0x9b, 0x7c, 0x1d, 0x1c, 0x65, 0xf9, 0x3c, 0x63, 0x95, 0x1e, 0xd8, 0xe9, 0x4e, - 0x46, 0x5f, 0x18, 0x64, 0xe2, 0x10, 0x3b, 0x1e, 0xaf, 0x83, 0xc2, 0x4e, 0xa3, 0x81, 0x71, 0x93, - 0x9d, 0x6c, 0x72, 0x5f, 0x63, 0x46, 0xea, 0x8d, 0x3d, 0xcd, 0x38, 0xa4, 0x50, 0xbd, 0x1f, 0x3b, - 0x01, 0x39, 0x7a, 0xed, 0x05, 0x7a, 0xe5, 0x4c, 0x4f, 0x65, 0x9c, 0xe1, 0x95, 0x71, 0x0d, 0xa6, - 0x0c, 0xd3, 0x29, 0x6e, 0x55, 0xb3, 0xb4, 0xed, 0x4e, 0xd4, 0x2a, 0x22, 0xa5, 0xeb, 0x0d, 0x19, - 0xe5, 0xc0, 0x6f, 0x4b, 0x47, 0x54, 0x8e, 0x8c, 0xfc, 0xbf, 0xc1, 0xd1, 0x75, 0x16, 0x01, 0xa0, - 0xc3, 0x28, 0xa7, 0xc3, 0x7d, 0xec, 0xba, 0x28, 0xcf, 0xf1, 0x7f, 0x2e, 0x1d, 0x51, 0xbb, 0x89, - 0xc9, 0x3f, 0x0b, 0x33, 0xce, 0x6b, 0xd3, 0xbc, 0xe0, 0x32, 0x2e, 0x85, 0x1b, 0x1a, 0x5d, 0xe4, - 0x57, 0xb8, 0x1f, 0x97, 0x8e, 0xa8, 0x5d, 0xa4, 0xe4, 0x0a, 0xc0, 0x96, 0xbd, 0xdd, 0x62, 0x84, - 0x33, 0xe1, 0x2a, 0xd9, 0x45, 0x78, 0xc9, 0xfb, 0x69, 0xe9, 0x88, 0x1a, 0x20, 0x21, 0x2f, 0xc3, - 0x84, 0x7d, 0xd1, 0x66, 0xf4, 0xb2, 0xe1, 0x9b, 0xdb, 0x5d, 0xf4, 0x6a, 0xee, 0x3f, 0x4b, 0x47, - 0x54, 0x9f, 0x80, 0x5c, 0x82, 0xf1, 0xf6, 0x3a, 0x23, 0x96, 0xeb, 0x71, 0xd5, 0x7f, 0x6f, 0x62, - 0xab, 0xeb, 0x1e, 0x2d, 0xef, 0x77, 0x87, 0xb1, 0x46, 0x67, 0x97, 0xd1, 0x1a, 0x13, 0x66, 0xac, - 0xe8, 0xfe, 0xe3, 0x30, 0xe6, 0x11, 0x90, 0x4b, 0x30, 0xd1, 0x31, 0xb4, 0x76, 0x67, 0xcb, 0xb4, - 0x3b, 0xa7, 0xc6, 0xbb, 0xfc, 0x20, 0xc3, 0xa9, 0x55, 0xd9, 0x3f, 0xaa, 0xff, 0xb7, 0xfc, 0x64, - 0x38, 0xb1, 0x43, 0xae, 0x0f, 0x55, 0x2e, 0xea, 0x1d, 0x5b, 0x37, 0x36, 0xdd, 0x18, 0xb2, 0xb4, - 0x37, 0xe9, 0xfd, 0x51, 0x9e, 0x65, 0x27, 0xa2, 0x80, 0xb4, 0x4d, 0xd4, 0xbd, 0x19, 0x47, 0x8b, - 0x0d, 0x1c, 0x84, 0x7a, 0x3a, 0x64, 0x9c, 0x4f, 0xe4, 0xcc, 0xe6, 0x4c, 0xef, 0x85, 0xbe, 0x6e, - 0xdd, 0x21, 0x0d, 0xd8, 0xf9, 0xc9, 0x19, 0x1b, 0x0d, 0x73, 0xd5, 0x32, 0x37, 0x2d, 0xdc, 0xe9, - 0x30, 0x87, 0xc3, 0x40, 0x8a, 0xd3, 0xc0, 0xf5, 0xce, 0x8a, 0xbe, 0x49, 0xad, 0x27, 0xe6, 0xef, - 0x1e, 0x4c, 0xa2, 0xb3, 0xcd, 0x32, 0xbe, 0x40, 0x1c, 0x82, 0xc9, 0xf9, 0x1b, 0x32, 0xdb, 0x74, - 0x53, 0xd0, 0xb5, 0x30, 0x15, 0x6c, 0x64, 0xf4, 0xee, 0x2c, 0xdd, 0xb7, 0xbd, 0xd8, 0x1b, 0xba, - 0x06, 0x66, 0x78, 0x9d, 0x0e, 0x0c, 0x31, 0x92, 0xdb, 0x15, 0xa2, 0xab, 0xe1, 0x68, 0x57, 0xc3, - 0x72, 0x63, 0x8a, 0xa4, 0xfc, 0x98, 0x22, 0x57, 0x01, 0xf8, 0x5a, 0xdc, 0x93, 0xcc, 0x95, 0x30, - 0xe1, 0xe9, 0x65, 0xcf, 0x0c, 0x5f, 0x4f, 0xc1, 0xb8, 0xab, 0x6c, 0xbd, 0x32, 0x38, 0xe3, 0x8b, - 0x11, 0xd8, 0x40, 0x60, 0xd3, 0x6c, 0x2e, 0xcd, 0x19, 0x47, 0x7c, 0xb7, 0xdd, 0x9a, 0x6e, 0xb7, - 0xdc, 0xa3, 0x6f, 0xdd, 0xc9, 0xf2, 0x2a, 0x80, 0x4e, 0x30, 0xaa, 0xf9, 0x67, 0xe1, 0x6e, 0x8a, - 0xd1, 0x1e, 0xa8, 0x3e, 0x04, 0x68, 0x9c, 0x79, 0x2c, 0x3b, 0xa8, 0x36, 0x01, 0xd9, 0xea, 0x6a, - 0xa1, 0xa8, 0xe4, 0x8f, 0xc8, 0x33, 0x00, 0xca, 0xb3, 0x56, 0x15, 0xb5, 0xa4, 0x94, 0x8b, 0x4a, - 0x3e, 0x85, 0x5e, 0x95, 0x86, 0x09, 0xaf, 0x11, 0xf4, 0xac, 0xa4, 0xc2, 0x54, 0xab, 0xef, 0xf5, - 0x44, 0xfb, 0x1b, 0x55, 0x50, 0xc9, 0x9e, 0x06, 0x97, 0xee, 0x74, 0xf0, 0x82, 0x6e, 0x75, 0x6c, - 0xd5, 0xbc, 0xb0, 0x60, 0x5a, 0x5e, 0xd4, 0x64, 0xf7, 0x1a, 0xfe, 0x90, 0xcf, 0x8e, 0x45, 0xd1, - 0xc4, 0xe4, 0x50, 0x14, 0xb6, 0xd8, 0xca, 0xb0, 0x9f, 0xe0, 0xd0, 0xb5, 0xe9, 0xbd, 0xf7, 0x1d, - 0xac, 0x9a, 0x17, 0x3a, 0x05, 0xa3, 0x59, 0x34, 0x5b, 0x3b, 0xdb, 0x46, 0x87, 0xd9, 0x04, 0x61, - 0x9f, 0x1d, 0xe9, 0x90, 0xcb, 0xc7, 0x66, 0x00, 0x8a, 0x95, 0xe5, 0x65, 0xa5, 0x58, 0x2b, 0x55, - 0xca, 0xf9, 0x23, 0x8e, 0xb4, 0x6a, 0x85, 0xb9, 0x65, 0x47, 0x3a, 0xcf, 0x86, 0x71, 0xb7, 0x4d, - 0xb3, 0x30, 0x28, 0x29, 0x37, 0x0c, 0x8a, 0x5c, 0x80, 0x71, 0xb7, 0x95, 0xb3, 0x11, 0xe1, 0x71, - 0xdd, 0xc7, 0x5e, 0xb7, 0x35, 0xcb, 0x26, 0xfe, 0xd2, 0x2e, 0x91, 0x39, 0xad, 0x83, 0x55, 0xef, - 0xb7, 0x33, 0x4f, 0x64, 0x1c, 0xc8, 0x30, 0x53, 0x58, 0x5e, 0xae, 0x57, 0xd4, 0x7a, 0xb9, 0x52, - 0x5b, 0x2a, 0x95, 0x17, 0xe9, 0x08, 0x59, 0x5a, 0x2c, 0x57, 0x54, 0x85, 0x0e, 0x90, 0xd5, 0x7c, - 0x8a, 0x5e, 0x7e, 0x37, 0x37, 0x0e, 0xb9, 0x36, 0x91, 0x2e, 0xfa, 0xaa, 0x14, 0xf3, 0xbc, 0xbb, - 0x87, 0x53, 0xc8, 0xf5, 0x5c, 0x9c, 0xcf, 0x79, 0xba, 0xc7, 0x99, 0xd0, 0x33, 0x30, 0x45, 0x6d, - 0xb9, 0x0e, 0x59, 0xbe, 0x67, 0x37, 0xdc, 0x72, 0x69, 0xe8, 0x13, 0xe9, 0x18, 0x87, 0xe0, 0x7b, - 0x72, 0x14, 0xcf, 0xb8, 0xf8, 0xcb, 0x41, 0x2e, 0xbb, 0x93, 0x61, 0xa6, 0x54, 0xae, 0x29, 0x6a, - 0xb9, 0xb0, 0xcc, 0xb2, 0x48, 0xf2, 0x29, 0x38, 0x5e, 0xae, 0xb0, 0x98, 0x7e, 0x55, 0x72, 0xad, - 0xf6, 0xca, 0x6a, 0x45, 0xad, 0xe5, 0xb3, 0xf2, 0x49, 0x90, 0xe9, 0x33, 0x77, 0x2b, 0x7d, 0x4e, - 0x7e, 0x3c, 0x5c, 0xbd, 0x5c, 0x5a, 0x29, 0xd5, 0xea, 0x95, 0x85, 0xba, 0x5a, 0x39, 0x57, 0x75, - 0x10, 0x54, 0x95, 0xe5, 0x82, 0xa3, 0x48, 0x81, 0x4b, 0xf0, 0xc6, 0xe4, 0x4b, 0xe0, 0x28, 0xb9, - 0xe0, 0x92, 0xdc, 0x6c, 0x4f, 0xcb, 0x1b, 0x97, 0xaf, 0x80, 0x53, 0xa5, 0x72, 0x75, 0x6d, 0x61, - 0xa1, 0x54, 0x2c, 0x29, 0xe5, 0x5a, 0x7d, 0x55, 0x51, 0x57, 0x4a, 0xd5, 0xaa, 0xf3, 0x6f, 0x7e, - 0x82, 0x5c, 0x31, 0x46, 0xfb, 0x4c, 0xf4, 0x01, 0x09, 0xa6, 0xcf, 0x6a, 0x2d, 0xdd, 0x19, 0x28, - 0xc8, 0xdd, 0x83, 0x5d, 0xc7, 0x45, 0x6c, 0x72, 0x47, 0x21, 0x73, 0x38, 0x27, 0x2f, 0xe8, 0x97, - 0xa4, 0x98, 0xc7, 0x45, 0x18, 0x10, 0xb4, 0xc4, 0x59, 0xae, 0xb4, 0x90, 0xc9, 0xcd, 0x1b, 0xd2, - 0x31, 0x8e, 0x8b, 0x88, 0x93, 0x8f, 0x07, 0xfe, 0xab, 0x87, 0x05, 0x7e, 0x1e, 0xa6, 0xd6, 0xca, - 0x85, 0xb5, 0xda, 0x52, 0x45, 0x2d, 0xfd, 0x0c, 0x89, 0x36, 0x3e, 0x0d, 0x13, 0x0b, 0x15, 0x75, - 0xae, 0x34, 0x3f, 0xaf, 0x94, 0xf3, 0x59, 0xf9, 0x52, 0xb8, 0xa4, 0xaa, 0xa8, 0x67, 0x4b, 0x45, - 0xa5, 0xbe, 0x56, 0x2e, 0x9c, 0x2d, 0x94, 0x96, 0x49, 0x1f, 0x91, 0x8b, 0xb8, 0x37, 0x71, 0x0c, - 0xfd, 0x42, 0x06, 0x80, 0x56, 0xdd, 0xb1, 0xa4, 0x83, 0xb7, 0xeb, 0xfd, 0x55, 0xdc, 0x49, 0x83, - 0x4f, 0x26, 0xa4, 0xfd, 0x96, 0x60, 0xdc, 0x62, 0x1f, 0xd8, 0xf2, 0x49, 0x3f, 0x3a, 0xf4, 0xd1, - 0xa5, 0xa6, 0x7a, 0xbf, 0xa3, 0x0f, 0xc6, 0x99, 0x23, 0x84, 0x32, 0x16, 0x0f, 0xc9, 0x85, 0xe1, - 0x00, 0x89, 0x5e, 0x92, 0x82, 0x19, 0xbe, 0x62, 0x4e, 0x25, 0x88, 0x31, 0x25, 0x56, 0x09, 0xfe, - 0xe7, 0x80, 0x91, 0x75, 0xe6, 0x16, 0x36, 0x9c, 0x82, 0xdb, 0x32, 0xe9, 0xc9, 0x6f, 0xd7, 0x62, - 0xc9, 0xa7, 0x1c, 0xe6, 0x1d, 0xa3, 0x83, 0x5e, 0xad, 0x5e, 0xbb, 0x68, 0xe7, 0x25, 0xf4, 0xbe, - 0x0c, 0x4c, 0x73, 0xd7, 0xf7, 0xa1, 0xef, 0xa7, 0x44, 0xae, 0xd6, 0x0a, 0x5c, 0x0c, 0x98, 0x3a, - 0xe8, 0xc5, 0x80, 0x67, 0x7e, 0x31, 0x05, 0x63, 0x2c, 0x91, 0x08, 0xb8, 0x52, 0x76, 0x6c, 0x81, - 0xa3, 0x30, 0xb9, 0xa8, 0xd4, 0xea, 0xd5, 0x5a, 0x41, 0xad, 0x29, 0xf3, 0xf9, 0x94, 0x7c, 0x02, - 0x8e, 0xad, 0x2a, 0x6a, 0xb5, 0xe2, 0xc8, 0x73, 0x55, 0xad, 0x90, 0x8e, 0x90, 0x8a, 0xd9, 0x81, - 0x61, 0x59, 0x99, 0x5f, 0x54, 0xea, 0x73, 0x85, 0xaa, 0x92, 0x97, 0x9c, 0x7f, 0xcb, 0x95, 0x9a, - 0x52, 0xad, 0xcf, 0x97, 0x0a, 0xea, 0xbd, 0xf9, 0x8c, 0xf3, 0x6f, 0xb5, 0xa6, 0x16, 0x6a, 0xca, - 0x62, 0xa9, 0x48, 0x2e, 0xa4, 0x77, 0x5a, 0x40, 0xd6, 0x19, 0x4c, 0x95, 0x95, 0xd5, 0xda, 0xbd, - 0xf9, 0x5c, 0x7c, 0xaf, 0xbe, 0xee, 0xca, 0x8d, 0xd8, 0xab, 0x2f, 0xaa, 0xf8, 0xe4, 0xe7, 0xbf, - 0x9f, 0x93, 0x20, 0x4f, 0x39, 0x50, 0x2e, 0xb6, 0xb1, 0xa5, 0x63, 0xa3, 0x81, 0xd1, 0x79, 0x91, - 0x28, 0xa2, 0xfb, 0xe2, 0xeb, 0x91, 0x31, 0x22, 0x60, 0x79, 0xd2, 0x97, 0x2e, 0xa3, 0x3d, 0xb3, - 0xcf, 0x68, 0xff, 0x6c, 0x5c, 0xb7, 0xbe, 0x6e, 0x76, 0x87, 0x02, 0xd9, 0xa7, 0xe3, 0xb8, 0xf5, - 0xf5, 0xe1, 0x60, 0x24, 0xc1, 0x81, 0x43, 0xc6, 0xf4, 0xbc, 0x84, 0xde, 0x39, 0x01, 0x79, 0xca, - 0x68, 0xc0, 0x57, 0xea, 0xd7, 0xd8, 0x5d, 0x88, 0xf5, 0x18, 0xa1, 0xe9, 0xdc, 0xc3, 0xfe, 0x69, - 0xfe, 0xb0, 0x3f, 0xb7, 0xf4, 0x26, 0x75, 0xef, 0x6f, 0xc7, 0x6d, 0x7e, 0x01, 0xc7, 0xa8, 0xf0, - 0x68, 0xa0, 0xc9, 0x35, 0xbf, 0xc8, 0xe2, 0x47, 0x73, 0x5f, 0x17, 0xbb, 0x91, 0x4f, 0x11, 0x45, - 0x26, 0xfa, 0x5a, 0xc2, 0xb8, 0x5e, 0xb2, 0x9c, 0x63, 0x5a, 0xc4, 0x5d, 0x7d, 0xc9, 0x79, 0xc9, - 0xf6, 0xe3, 0x20, 0x79, 0x14, 0x7e, 0x94, 0x86, 0x4c, 0xd5, 0xb4, 0xec, 0x61, 0x61, 0x10, 0x77, - 0x67, 0x2f, 0x20, 0x81, 0x6a, 0xf8, 0xcc, 0x29, 0xb9, 0x9d, 0xbd, 0xe8, 0xf2, 0x47, 0x10, 0xdd, - 0xef, 0x28, 0xcc, 0x50, 0x4e, 0xbc, 0xab, 0x2f, 0xfe, 0x2d, 0x4d, 0xfb, 0xab, 0x7b, 0x44, 0x11, - 0x39, 0x03, 0x53, 0x81, 0x9d, 0x35, 0xef, 0xda, 0xe7, 0x60, 0x1a, 0x7a, 0x4b, 0x10, 0x97, 0x79, - 0x1e, 0x97, 0x5e, 0xf3, 0x46, 0xef, 0xf6, 0x88, 0x61, 0xf5, 0x4c, 0x71, 0x02, 0x05, 0x46, 0x14, - 0x9e, 0x3c, 0x22, 0xf7, 0x4b, 0x90, 0x63, 0x9e, 0x4d, 0x43, 0x45, 0x20, 0x6e, 0xcb, 0xf0, 0x84, - 0x20, 0xe6, 0x01, 0x25, 0x0d, 0xbb, 0x65, 0x44, 0x97, 0x9f, 0x3c, 0x0e, 0xff, 0xce, 0x5c, 0xf6, - 0x0a, 0xbb, 0x9a, 0xde, 0xd2, 0xd6, 0x5b, 0x31, 0x02, 0xf4, 0x7e, 0x22, 0xe6, 0x21, 0x25, 0xaf, - 0xaa, 0x5c, 0x79, 0x21, 0x12, 0xff, 0x69, 0x98, 0xb0, 0xbc, 0x85, 0x35, 0xf7, 0x0c, 0x77, 0x97, - 0xbb, 0x24, 0xfb, 0xae, 0xfa, 0x39, 0x63, 0x9d, 0x48, 0x12, 0xe2, 0x67, 0x24, 0x27, 0x28, 0x26, - 0x0b, 0xcd, 0xe6, 0x02, 0xd6, 0xec, 0x1d, 0x0b, 0x37, 0x63, 0x0d, 0x11, 0xbc, 0x88, 0x26, 0x82, - 0x92, 0xe0, 0x42, 0xe4, 0x2d, 0xf3, 0xe8, 0x3c, 0xa5, 0x4f, 0x6f, 0xe0, 0xf2, 0x32, 0x94, 0x2e, - 0xe9, 0x1d, 0x1e, 0x24, 0x15, 0x0e, 0x92, 0xa7, 0x0f, 0xc6, 0x44, 0xf2, 0x80, 0xfc, 0x86, 0x04, - 0x33, 0xd4, 0x4e, 0x18, 0x36, 0x26, 0x7f, 0x10, 0xd3, 0x13, 0x22, 0x70, 0xb9, 0x50, 0x90, 0x9d, - 0xa1, 0xc0, 0x12, 0xc7, 0x6f, 0x42, 0x8c, 0x8f, 0xe4, 0x91, 0x79, 0xcf, 0x34, 0x40, 0xc0, 0xbb, - 0xed, 0x13, 0x39, 0x3f, 0x5c, 0x1d, 0x7a, 0x17, 0x9b, 0x7f, 0x54, 0xb9, 0xd8, 0xc9, 0x01, 0xcf, - 0x35, 0x6f, 0x5b, 0x85, 0x4f, 0x14, 0x1a, 0x55, 0xfe, 0x32, 0xa6, 0xcd, 0xcb, 0x7c, 0xcb, 0xfa, - 0x0e, 0xee, 0x03, 0xf6, 0x72, 0x9f, 0x8c, 0x61, 0xfc, 0xf6, 0x63, 0x25, 0x1e, 0x6a, 0xcb, 0x03, - 0xcc, 0x25, 0x4f, 0xc1, 0x71, 0x55, 0x29, 0xcc, 0x57, 0xca, 0xcb, 0xf7, 0x06, 0x6f, 0x9a, 0xc9, - 0x4b, 0xc1, 0xc9, 0x49, 0x22, 0xb0, 0xbd, 0x31, 0x66, 0x1f, 0xc8, 0xcb, 0x2a, 0x6a, 0xb6, 0x12, - 0x98, 0xce, 0xf7, 0xef, 0xd5, 0x04, 0xc8, 0x1e, 0x26, 0x0a, 0x0f, 0xe7, 0x60, 0x52, 0xc5, 0x0d, - 0x73, 0x7b, 0x1b, 0x1b, 0x4d, 0xdc, 0x44, 0x0f, 0x48, 0x30, 0xe5, 0xed, 0x5a, 0x55, 0xb1, 0x8d, - 0x9e, 0xe9, 0x63, 0xe3, 0x6d, 0x9c, 0x38, 0x75, 0xf2, 0x3a, 0x40, 0x2e, 0x4d, 0x08, 0x99, 0xf7, - 0x05, 0x91, 0x59, 0xe3, 0x91, 0xb9, 0x33, 0x5c, 0x84, 0x1e, 0x93, 0xb3, 0x41, 0x06, 0x43, 0x20, - 0xfa, 0x0b, 0x0f, 0xa2, 0x67, 0x71, 0x10, 0xcd, 0x1f, 0x90, 0xfe, 0x61, 0x62, 0xf5, 0x2e, 0x09, - 0x8e, 0xbb, 0xdd, 0x6f, 0xd2, 0x18, 0x7d, 0x32, 0x88, 0xd1, 0xb3, 0x79, 0x8c, 0x16, 0x45, 0x64, - 0xd8, 0x8b, 0xd1, 0x10, 0xac, 0xbe, 0xe2, 0x61, 0xf5, 0x73, 0x1c, 0x56, 0xcb, 0x43, 0x2a, 0xe7, - 0x30, 0x31, 0xbb, 0x1f, 0x02, 0xc3, 0xd4, 0x8b, 0x24, 0xc8, 0x3b, 0xf6, 0x26, 0xed, 0x05, 0xd8, - 0x95, 0x7d, 0x15, 0xde, 0xb9, 0xb4, 0x4d, 0x77, 0x29, 0x7d, 0xe7, 0x52, 0x37, 0x41, 0xbe, 0x16, - 0x66, 0x1a, 0x5b, 0xb8, 0x71, 0xbe, 0x64, 0xb8, 0xde, 0x17, 0x74, 0xab, 0xbe, 0x2b, 0x95, 0xef, - 0xf8, 0xee, 0xe1, 0xa1, 0xe3, 0x17, 0xa9, 0x38, 0x23, 0x38, 0xc8, 0x54, 0x08, 0x50, 0x7f, 0xec, - 0x01, 0x55, 0xe6, 0x80, 0xba, 0x6d, 0x20, 0xaa, 0xf1, 0x60, 0x29, 0x0f, 0x00, 0x0b, 0x82, 0x93, - 0x95, 0xd5, 0x5a, 0xa9, 0x52, 0xae, 0xaf, 0x55, 0x95, 0xf9, 0xfa, 0x9c, 0x0b, 0x4e, 0x35, 0x2f, - 0xa1, 0xef, 0xa4, 0x61, 0x8c, 0xb2, 0xd5, 0xe9, 0xba, 0xfc, 0x3f, 0xda, 0xab, 0x16, 0xbd, 0x53, - 0x38, 0x46, 0x86, 0x27, 0x08, 0x56, 0x4e, 0x88, 0x1d, 0xf0, 0x34, 0x18, 0xa3, 0x20, 0xbb, 0x4e, - 0x59, 0xa7, 0x43, 0xac, 0x00, 0x46, 0x46, 0x75, 0xb3, 0x0b, 0xc6, 0xcb, 0xe8, 0xc3, 0x46, 0xf2, - 0x96, 0xdb, 0x73, 0x33, 0x74, 0x9a, 0x79, 0x4e, 0xb7, 0xb7, 0x88, 0xd3, 0x6d, 0xb0, 0xc3, 0x0a, - 0xdf, 0x02, 0xb8, 0x01, 0xb2, 0xbb, 0x4e, 0xee, 0x3e, 0x0e, 0xcc, 0x34, 0x13, 0x7a, 0xb5, 0x70, - 0x78, 0x56, 0x4e, 0x3f, 0x3d, 0x9e, 0x42, 0xc0, 0x59, 0x81, 0x4c, 0x4b, 0xef, 0xd8, 0xcc, 0x3e, - 0xbb, 0x35, 0x16, 0x21, 0xf7, 0xa1, 0x64, 0xe3, 0x6d, 0x95, 0x90, 0x41, 0x77, 0x3b, 0xa3, 0xab, - 0x9f, 0x2a, 0xe0, 0xc4, 0x7d, 0x0a, 0xc6, 0xd8, 0xe1, 0x42, 0x22, 0x07, 0x49, 0x75, 0x5f, 0x05, - 0x23, 0xd1, 0x09, 0xd5, 0x36, 0x79, 0x1d, 0xf8, 0x7f, 0x8e, 0xc2, 0xd8, 0x92, 0xde, 0xb1, 0x4d, - 0x6b, 0x0f, 0x3d, 0x94, 0x82, 0xb1, 0xb3, 0xd8, 0xea, 0xe8, 0xa6, 0xb1, 0xcf, 0x21, 0xe5, 0x2a, - 0x98, 0x6c, 0x5b, 0x78, 0x57, 0x37, 0x77, 0x3a, 0xfe, 0xe2, 0x67, 0x30, 0x49, 0x46, 0x30, 0xae, - 0xed, 0xd8, 0x5b, 0xa6, 0xe5, 0xc7, 0x24, 0x71, 0xdf, 0xe5, 0xd3, 0x00, 0xf4, 0xb9, 0xac, 0x6d, - 0x63, 0xe6, 0x66, 0x13, 0x48, 0x91, 0x65, 0xc8, 0xd8, 0xfa, 0x36, 0x66, 0x41, 0x8a, 0xc9, 0xb3, - 0x23, 0x60, 0x12, 0xf0, 0x8f, 0x05, 0x56, 0x94, 0x54, 0xf7, 0x15, 0x7d, 0x49, 0x82, 0xc9, 0x45, - 0x6c, 0x33, 0x56, 0x3b, 0xe8, 0xa5, 0x29, 0xa1, 0x7b, 0x41, 0x1c, 0x1b, 0xb6, 0xa5, 0x75, 0xdc, - 0xff, 0xbc, 0x2d, 0x0e, 0x3e, 0xd1, 0x8f, 0x98, 0x2c, 0x05, 0xc3, 0xa5, 0x93, 0xf0, 0x79, 0x76, - 0x89, 0x7a, 0xe7, 0xb2, 0xcc, 0x6c, 0x5b, 0x6b, 0xff, 0x07, 0xde, 0x92, 0x8a, 0x3c, 0x7a, 0xce, - 0x64, 0x3f, 0x1b, 0xa8, 0x4f, 0x68, 0x77, 0x34, 0xbe, 0xcb, 0x72, 0xec, 0x8b, 0x84, 0x1f, 0xa4, - 0xc4, 0xc8, 0xa8, 0x5e, 0x6e, 0xc1, 0x43, 0xeb, 0xfd, 0x39, 0x49, 0x5e, 0x1b, 0x7f, 0x28, 0xc1, - 0x64, 0x75, 0xcb, 0xbc, 0xe0, 0xca, 0xf1, 0xd9, 0x62, 0xc0, 0x5e, 0x01, 0x13, 0xbb, 0x5d, 0xa0, - 0xfa, 0x09, 0xe1, 0x37, 0xf5, 0xa3, 0x17, 0x4a, 0x71, 0x61, 0x0a, 0x30, 0x37, 0xf4, 0x7b, 0xf4, - 0xe5, 0xa7, 0xc0, 0x18, 0xe3, 0x9a, 0x2d, 0x69, 0x46, 0x03, 0xec, 0x66, 0x0e, 0x56, 0x30, 0xc3, - 0x57, 0x30, 0x1e, 0xf2, 0xe1, 0x95, 0x4b, 0x1e, 0xf9, 0x3f, 0x4b, 0x93, 0x90, 0x25, 0x2e, 0xf0, - 0xc5, 0x21, 0x00, 0x8f, 0x1e, 0x49, 0x89, 0x2e, 0xfc, 0x7b, 0x12, 0xf0, 0x38, 0x38, 0xd0, 0x9d, - 0x3f, 0x7d, 0xc9, 0x25, 0x2f, 0xcf, 0x57, 0x65, 0x60, 0x6a, 0x5e, 0xdf, 0xd8, 0xf0, 0x3a, 0xc9, - 0x97, 0x0b, 0x76, 0x92, 0xe1, 0x4e, 0x23, 0x8e, 0x9d, 0xbb, 0x63, 0x59, 0xd8, 0x70, 0x2b, 0xc5, - 0x9a, 0x53, 0x57, 0xaa, 0x7c, 0x1d, 0x1c, 0x75, 0xc7, 0x85, 0x60, 0x47, 0x39, 0xa1, 0x76, 0x27, - 0xa3, 0x1f, 0x08, 0xef, 0x1a, 0xbb, 0x12, 0x0d, 0x56, 0x29, 0xa4, 0x01, 0xde, 0x0e, 0xd3, 0x5b, - 0x34, 0x37, 0x59, 0x5a, 0x73, 0x3b, 0xcb, 0x93, 0x5d, 0x21, 0xa1, 0x57, 0x70, 0xa7, 0xa3, 0x6d, - 0x62, 0x95, 0xcf, 0xdc, 0xd5, 0x7c, 0xa5, 0x38, 0x17, 0x9c, 0x89, 0x6d, 0x40, 0x0b, 0xd4, 0x64, - 0x04, 0xda, 0x71, 0x06, 0x32, 0x0b, 0x7a, 0x0b, 0xa3, 0x5f, 0x4e, 0xc3, 0x84, 0x33, 0x6b, 0x33, - 0x1a, 0xce, 0x5b, 0xc0, 0x85, 0xec, 0x9f, 0x52, 0xa2, 0x17, 0x7b, 0x3a, 0x74, 0x66, 0x3d, 0x1a, - 0x21, 0xed, 0x46, 0xec, 0x02, 0xcf, 0x48, 0x52, 0x23, 0xb8, 0x86, 0xc5, 0x99, 0x7a, 0x6c, 0x6c, - 0xb4, 0x4c, 0x8d, 0x5b, 0x5c, 0xee, 0x36, 0x85, 0xae, 0x87, 0xbc, 0x7b, 0x12, 0xc8, 0xb4, 0x57, - 0x75, 0xc3, 0xf0, 0x8e, 0x9a, 0xef, 0x4b, 0xe7, 0xfd, 0x22, 0x22, 0xa3, 0xf5, 0x90, 0xba, 0xb3, - 0xd2, 0x43, 0x34, 0xfb, 0x5a, 0x98, 0x59, 0xdf, 0xb3, 0x71, 0x87, 0xe5, 0x62, 0xc5, 0x66, 0xd4, - 0xae, 0xd4, 0x40, 0xac, 0xed, 0xa8, 0xa8, 0x3e, 0x11, 0x05, 0xc6, 0x13, 0xf5, 0xd2, 0x00, 0x33, - 0xc0, 0xe3, 0x90, 0x2f, 0x57, 0xe6, 0x15, 0xe2, 0xd1, 0xe8, 0xba, 0x88, 0x6d, 0xa2, 0x57, 0x48, - 0x30, 0x45, 0xdc, 0x83, 0x5c, 0x14, 0xae, 0x16, 0x98, 0x8f, 0xa0, 0x87, 0x85, 0xbd, 0x1d, 0x49, - 0x95, 0x83, 0x05, 0x84, 0x0b, 0x7a, 0x43, 0x6f, 0x75, 0x0b, 0x3a, 0xab, 0x76, 0xa5, 0xf6, 0x00, - 0x44, 0xea, 0x09, 0xc8, 0xef, 0x09, 0xb9, 0x3c, 0xf6, 0xe3, 0xee, 0xb0, 0x50, 0xf9, 0x7d, 0x09, - 0x26, 0x9d, 0x49, 0x8a, 0x0b, 0x4a, 0x85, 0x03, 0xc5, 0x34, 0x5a, 0x7b, 0xfe, 0xb2, 0x88, 0xfb, - 0x1a, 0xab, 0x91, 0xfc, 0xb5, 0xf0, 0xcc, 0x9d, 0x88, 0x28, 0xc0, 0xcb, 0x88, 0xf0, 0xfb, 0x90, - 0xd0, 0x7c, 0xbe, 0x0f, 0x73, 0x87, 0x05, 0xdf, 0x37, 0xb3, 0x90, 0x5b, 0x6b, 0x13, 0xe4, 0x5e, - 0x2d, 0x89, 0xc4, 0xad, 0xdf, 0x77, 0xdc, 0xc5, 0x31, 0xb3, 0x5a, 0x66, 0x43, 0x6b, 0xad, 0xfa, - 0xe7, 0x06, 0xfd, 0x04, 0xf9, 0x36, 0xe6, 0x01, 0x4b, 0x0f, 0x5d, 0x5e, 0x1b, 0x19, 0xd2, 0x9d, - 0xc8, 0x28, 0x70, 0xb4, 0xe8, 0x06, 0x38, 0xd6, 0xd4, 0x3b, 0xda, 0x7a, 0x0b, 0x2b, 0x46, 0xc3, - 0xda, 0xa3, 0xe2, 0x60, 0xd3, 0xaa, 0x7d, 0x1f, 0xe4, 0x3b, 0x20, 0xdb, 0xb1, 0xf7, 0x5a, 0x74, - 0x9e, 0x18, 0x3c, 0x89, 0x14, 0x5a, 0x54, 0xd5, 0xc9, 0xae, 0xd2, 0xbf, 0x82, 0xb7, 0x7a, 0x8f, - 0x09, 0xde, 0xea, 0x7d, 0x0b, 0xe4, 0x4c, 0x4b, 0xdf, 0xd4, 0xe9, 0x2d, 0x4d, 0x33, 0xfb, 0x22, - 0x17, 0x52, 0x53, 0xa0, 0x42, 0xb2, 0xa8, 0x2c, 0xab, 0xfc, 0x14, 0x98, 0xd0, 0xb7, 0xb5, 0x4d, - 0x7c, 0x8f, 0x6e, 0xd0, 0x73, 0x9d, 0x33, 0x37, 0x9f, 0xda, 0x77, 0xc8, 0x8a, 0x7d, 0x57, 0xfd, - 0xac, 0xe8, 0x43, 0x69, 0xd1, 0xf0, 0x4a, 0xa4, 0x6e, 0x14, 0xd4, 0x91, 0xdc, 0x6e, 0x8e, 0x5e, - 0x27, 0x14, 0xf8, 0x28, 0x9c, 0xad, 0xe4, 0x07, 0xef, 0x2f, 0xa6, 0x61, 0x7c, 0xde, 0xbc, 0x60, - 0x10, 0x45, 0xbf, 0x55, 0xcc, 0xd6, 0xed, 0x71, 0x14, 0x96, 0xbf, 0x3c, 0x34, 0xf2, 0xdc, 0x0b, - 0xa9, 0xad, 0x5b, 0x64, 0x08, 0x0c, 0x91, 0x2d, 0x47, 0xf0, 0x4a, 0xc7, 0xa8, 0x72, 0x92, 0x97, - 0xeb, 0x9f, 0x4b, 0x90, 0x99, 0xb7, 0xcc, 0x36, 0x7a, 0x47, 0x2a, 0x86, 0x4b, 0x50, 0xd3, 0x32, - 0xdb, 0x35, 0x72, 0x27, 0x9b, 0x7f, 0xd8, 0x27, 0x98, 0x26, 0xdf, 0x0a, 0xe3, 0x6d, 0xb3, 0xa3, - 0xdb, 0xee, 0x34, 0x62, 0xe6, 0xe6, 0xc7, 0xf4, 0x6c, 0xcd, 0xab, 0x2c, 0x93, 0xea, 0x65, 0x77, - 0x7a, 0x6d, 0x22, 0x42, 0x47, 0x2e, 0x8e, 0x18, 0xdd, 0x7b, 0xe9, 0xba, 0x52, 0xd1, 0x2b, 0x83, - 0x48, 0x3e, 0x9d, 0x47, 0xf2, 0x71, 0x3d, 0x24, 0x6c, 0x99, 0xed, 0xa1, 0x6c, 0xe2, 0xbf, 0xc6, - 0x43, 0xf5, 0x19, 0x1c, 0xaa, 0xd7, 0x0b, 0x95, 0x99, 0x3c, 0xa2, 0x1f, 0xca, 0x00, 0x10, 0x33, - 0x63, 0xcd, 0x99, 0x00, 0x89, 0xd9, 0x58, 0xcf, 0xcf, 0x04, 0x64, 0x59, 0xe0, 0x65, 0xf9, 0x84, - 0x10, 0x2b, 0x86, 0x90, 0x0f, 0x91, 0x68, 0x01, 0xb2, 0x3b, 0xce, 0x67, 0x26, 0x51, 0x41, 0x12, - 0xe4, 0x55, 0xa5, 0x7f, 0xa2, 0x3f, 0x4b, 0x41, 0x96, 0x24, 0xc8, 0xa7, 0x01, 0xc8, 0xc0, 0x4e, - 0x8f, 0x8d, 0xa5, 0xc8, 0x10, 0x1e, 0x48, 0x21, 0xda, 0xaa, 0x37, 0xd9, 0x67, 0x6a, 0x32, 0xfb, - 0x09, 0xce, 0xdf, 0x64, 0xb8, 0x27, 0xb4, 0x98, 0x01, 0x10, 0x48, 0x71, 0xfe, 0x26, 0x6f, 0xcb, - 0x78, 0x83, 0x86, 0xcb, 0xce, 0xa8, 0x7e, 0x82, 0xf7, 0xf7, 0xb2, 0x77, 0xc9, 0x9a, 0xfb, 0x37, - 0x49, 0x71, 0x26, 0xc3, 0x44, 0x2d, 0xe7, 0xfc, 0x22, 0x72, 0x24, 0x53, 0x77, 0x32, 0x7a, 0xa3, - 0xa7, 0x36, 0xf3, 0x9c, 0xda, 0xdc, 0x14, 0x43, 0xbc, 0xc9, 0x2b, 0xcf, 0xd7, 0xb3, 0x30, 0x51, - 0x36, 0x9b, 0x4c, 0x77, 0x02, 0x13, 0xc6, 0x4f, 0x67, 0x63, 0x4d, 0x18, 0x3d, 0x1a, 0x21, 0x0a, - 0x72, 0x17, 0xaf, 0x20, 0x62, 0x14, 0x82, 0xfa, 0x21, 0xcf, 0x41, 0x8e, 0x68, 0xef, 0xfe, 0xdb, - 0xbb, 0xa2, 0x48, 0x10, 0xd1, 0xaa, 0xec, 0xcf, 0xff, 0x70, 0x3a, 0xf6, 0x5f, 0x20, 0x4b, 0x2a, - 0x18, 0xb1, 0xbb, 0xc3, 0x57, 0x34, 0x1d, 0x5d, 0x51, 0x29, 0xba, 0xa2, 0x99, 0xee, 0x8a, 0xc6, - 0x59, 0x07, 0x08, 0xd3, 0x90, 0xe4, 0x75, 0xfc, 0x1f, 0xc7, 0x00, 0xca, 0xda, 0xae, 0xbe, 0x49, - 0x77, 0x87, 0xbf, 0xe4, 0xce, 0x7f, 0xd8, 0x3e, 0xee, 0x7f, 0x0d, 0x0c, 0x84, 0xb7, 0xc2, 0x18, - 0x1b, 0xf7, 0x58, 0x45, 0xae, 0xe4, 0x2a, 0xe2, 0x53, 0xa1, 0x66, 0xe9, 0x45, 0x5b, 0x75, 0xf3, - 0x73, 0x17, 0x0d, 0xa7, 0xbb, 0x2e, 0x1a, 0xee, 0xbd, 0x07, 0x11, 0x72, 0xfd, 0x30, 0x7a, 0xbf, - 0xf0, 0x65, 0x4d, 0x01, 0x7e, 0x02, 0x35, 0x0a, 0x69, 0x82, 0xb7, 0xc0, 0x98, 0xe9, 0x6d, 0x68, - 0x4b, 0xa1, 0xeb, 0x60, 0x25, 0x63, 0xc3, 0x54, 0xdd, 0x9c, 0x82, 0x9b, 0x5f, 0x42, 0x7c, 0x8c, - 0xe4, 0x18, 0xd4, 0xc9, 0x45, 0x37, 0xf4, 0x98, 0x53, 0x8f, 0x73, 0xba, 0xbd, 0xb5, 0xac, 0x1b, - 0xe7, 0x3b, 0xe8, 0xe7, 0xc4, 0x2c, 0xc8, 0x00, 0xfe, 0xe9, 0x78, 0xf8, 0xf3, 0x91, 0x5d, 0xaa, - 0x3c, 0x6a, 0x77, 0x84, 0x51, 0xe9, 0xcd, 0x6d, 0x08, 0x80, 0xb7, 0x41, 0x8e, 0x32, 0xca, 0x3a, - 0xd1, 0x33, 0xa1, 0xf8, 0x79, 0x94, 0x54, 0xf6, 0x07, 0x7a, 0x9f, 0x87, 0xe3, 0x59, 0x0e, 0xc7, - 0xb9, 0x03, 0x71, 0x96, 0x38, 0xa4, 0x67, 0x9e, 0x04, 0x63, 0x4c, 0xd2, 0xf2, 0x4c, 0xb0, 0x15, - 0xe7, 0x8f, 0xc8, 0x00, 0xb9, 0x15, 0x73, 0x17, 0xd7, 0xcc, 0x7c, 0xca, 0x79, 0x76, 0xf8, 0xab, - 0x99, 0xf9, 0x34, 0x7a, 0xed, 0x38, 0x8c, 0x7b, 0x31, 0x9f, 0xbe, 0x98, 0x86, 0x7c, 0xd1, 0xc2, - 0x9a, 0x8d, 0x17, 0x2c, 0x73, 0x9b, 0xd6, 0x48, 0xdc, 0xfb, 0xfa, 0x37, 0x84, 0x5d, 0x3c, 0xbc, - 0x58, 0x4c, 0xdd, 0x85, 0x85, 0x60, 0x49, 0x17, 0x21, 0xd3, 0xee, 0x22, 0x24, 0x7a, 0xbb, 0x90, - 0xcb, 0x87, 0x68, 0x29, 0xc9, 0x37, 0xb5, 0xcf, 0xa6, 0x21, 0x5b, 0x6c, 0x99, 0x06, 0x46, 0x85, - 0x18, 0x67, 0xd1, 0x7a, 0xef, 0x44, 0xa0, 0xe7, 0xa6, 0x45, 0x6d, 0x0d, 0x5f, 0x00, 0x4e, 0xd9, - 0x82, 0xb2, 0x15, 0x1b, 0xa4, 0x22, 0x49, 0x27, 0x2f, 0xd0, 0xef, 0xa4, 0x61, 0x82, 0x46, 0x4f, - 0x2a, 0xb4, 0x5a, 0xe8, 0x31, 0xbe, 0x50, 0x7b, 0xc4, 0xcd, 0x42, 0xbf, 0x27, 0x7c, 0x04, 0xc6, - 0xab, 0x95, 0x47, 0x3b, 0x46, 0x18, 0xa9, 0x78, 0x27, 0x32, 0xc4, 0xf6, 0xd2, 0xfa, 0x32, 0x94, - 0xbc, 0xa8, 0xff, 0x2a, 0xed, 0x18, 0x00, 0xc6, 0xf9, 0x55, 0x0b, 0xef, 0xea, 0xf8, 0x02, 0xba, - 0xdc, 0x17, 0xf6, 0xfe, 0xd0, 0x30, 0x6f, 0x15, 0x5e, 0xc4, 0x09, 0x90, 0x0c, 0xdd, 0xca, 0x9a, - 0x6c, 0xf9, 0x99, 0x58, 0x2f, 0xde, 0x1d, 0xaf, 0x27, 0x40, 0x46, 0x0d, 0x66, 0x17, 0x5c, 0xb3, - 0x09, 0xe7, 0x22, 0x79, 0xc1, 0x7e, 0x74, 0x0c, 0xc6, 0xd7, 0x8c, 0x4e, 0xbb, 0xa5, 0x75, 0xb6, - 0xd0, 0xbf, 0x49, 0x90, 0xa3, 0x77, 0xc6, 0xa1, 0x9f, 0xe6, 0x22, 0x50, 0xfc, 0xfc, 0x0e, 0xb6, - 0x5c, 0x17, 0x1c, 0xfa, 0xd2, 0xfb, 0x4a, 0x7b, 0xf4, 0x21, 0x49, 0x74, 0x92, 0xea, 0x16, 0xca, - 0x2e, 0xa9, 0x0b, 0x0f, 0x7a, 0xd0, 0xd6, 0x1b, 0xf6, 0x8e, 0xe5, 0x5d, 0x90, 0xfe, 0x44, 0x31, - 0x2a, 0xab, 0xf4, 0x2f, 0xd5, 0xfb, 0x1d, 0x69, 0x30, 0xc6, 0x12, 0xf7, 0x6d, 0x27, 0xed, 0x3f, - 0x51, 0x7d, 0x12, 0x72, 0x9a, 0x65, 0xeb, 0x1d, 0x9b, 0x6d, 0xb0, 0xb2, 0x37, 0xa7, 0xbb, 0xa4, - 0x4f, 0x6b, 0x56, 0xcb, 0x8d, 0x55, 0xe3, 0x25, 0xa0, 0xdf, 0x17, 0x9a, 0x3f, 0x46, 0xd7, 0x3c, - 0x1e, 0xe4, 0xf7, 0x0c, 0xb0, 0x46, 0x7d, 0x29, 0x5c, 0xa2, 0x16, 0x6a, 0x4a, 0x9d, 0x86, 0x36, - 0xf1, 0xa2, 0x98, 0x34, 0xd1, 0x7b, 0xa5, 0xc0, 0xfa, 0xdd, 0x1e, 0x37, 0x46, 0x30, 0x29, 0xfa, - 0x63, 0x84, 0x97, 0x10, 0xb1, 0x5b, 0xcd, 0x2d, 0xc2, 0x4a, 0xe2, 0x8b, 0xb0, 0xbf, 0x23, 0xbc, - 0x9b, 0xe4, 0x89, 0xb2, 0xcf, 0x1a, 0x60, 0xd4, 0x9d, 0x52, 0x1f, 0x16, 0xda, 0x19, 0xea, 0x57, - 0xd2, 0x21, 0xc2, 0xf6, 0x96, 0x31, 0x18, 0x5b, 0xd4, 0x5a, 0x2d, 0x6c, 0xed, 0x39, 0x43, 0x52, - 0xde, 0xe5, 0x70, 0x45, 0x33, 0xf4, 0x0d, 0xdc, 0xb1, 0xa3, 0x3b, 0xcb, 0xf7, 0x0b, 0xc7, 0x2b, - 0x66, 0x65, 0xcc, 0x76, 0xd3, 0x0f, 0x91, 0xf9, 0x8d, 0x90, 0xd1, 0x8d, 0x0d, 0x93, 0x75, 0x99, - 0xdd, 0xab, 0xf6, 0xee, 0xcf, 0x64, 0xea, 0x42, 0x32, 0x0a, 0x86, 0x2c, 0x16, 0xe4, 0x22, 0xf9, - 0x9e, 0xf3, 0x77, 0x33, 0x30, 0xed, 0x32, 0x51, 0x32, 0x9a, 0xf8, 0x62, 0x70, 0x29, 0xe6, 0x15, - 0x19, 0xd1, 0xe3, 0x96, 0xdd, 0xf5, 0x21, 0xa4, 0x42, 0x44, 0x5a, 0x03, 0x68, 0x68, 0x36, 0xde, - 0x34, 0x2d, 0xdd, 0xeb, 0x0f, 0x9f, 0x1c, 0x87, 0x5a, 0x91, 0xfe, 0xbd, 0xa7, 0x06, 0xe8, 0xc8, - 0x77, 0xc0, 0x24, 0xf6, 0x22, 0x2a, 0xb8, 0x4b, 0x35, 0x91, 0x78, 0x05, 0xf3, 0xa3, 0xbf, 0x12, - 0x3a, 0xd5, 0x29, 0x52, 0xcd, 0x78, 0x98, 0xd5, 0x07, 0x6b, 0x43, 0x6b, 0xe5, 0x95, 0x82, 0x5a, - 0x5d, 0x2a, 0x2c, 0x2f, 0x97, 0xca, 0x8b, 0x5e, 0x78, 0x20, 0x19, 0x66, 0xe6, 0x2b, 0xe7, 0xca, - 0x81, 0xf8, 0x4d, 0x19, 0xb4, 0x0a, 0xe3, 0xae, 0xbc, 0x7a, 0xf9, 0x62, 0x06, 0x65, 0xc6, 0x7c, - 0x31, 0x03, 0x49, 0x8e, 0x71, 0xa6, 0x37, 0x3c, 0x07, 0x1d, 0xf2, 0x8c, 0xfe, 0x44, 0x83, 0x2c, - 0x59, 0x53, 0x47, 0xef, 0x26, 0xdb, 0x80, 0xed, 0x96, 0xd6, 0xc0, 0x68, 0x3b, 0x86, 0x35, 0xee, - 0x5e, 0xa0, 0x91, 0xde, 0x77, 0x81, 0x06, 0x79, 0x64, 0x56, 0xdf, 0xf1, 0x5e, 0xeb, 0xf8, 0x2a, - 0xcd, 0xc2, 0x1f, 0x80, 0x8c, 0xdc, 0x5d, 0xa1, 0xcb, 0xff, 0x8c, 0xcd, 0x10, 0x95, 0x0c, 0xe7, - 0x29, 0x9e, 0x25, 0x2a, 0xb6, 0x0f, 0x13, 0xc5, 0xd1, 0x08, 0x2e, 0x79, 0xcf, 0x40, 0xb6, 0xda, - 0x6e, 0xe9, 0x36, 0xfa, 0xad, 0xf4, 0x50, 0x30, 0xa3, 0x97, 0x9e, 0x48, 0x7d, 0x2f, 0x3d, 0xf1, - 0x77, 0x5d, 0x33, 0x02, 0xbb, 0xae, 0x35, 0x7c, 0xd1, 0xe6, 0x77, 0x5d, 0x6f, 0x65, 0x21, 0xfe, - 0xe8, 0x9e, 0xed, 0xe3, 0x7a, 0x88, 0x94, 0x54, 0xab, 0x47, 0xec, 0xc8, 0x33, 0x4f, 0x62, 0x21, - 0xec, 0x00, 0x72, 0x73, 0x95, 0x5a, 0xad, 0xb2, 0x92, 0x3f, 0x42, 0x62, 0x1f, 0x55, 0x56, 0xf3, - 0x29, 0x79, 0x02, 0xb2, 0xa5, 0x72, 0x59, 0x51, 0xf3, 0x69, 0x12, 0x54, 0xaf, 0x54, 0x5b, 0x56, - 0xf2, 0x12, 0x1f, 0x01, 0x3f, 0xd2, 0xfc, 0xe6, 0xcb, 0x4e, 0x52, 0xbd, 0xc4, 0x0c, 0xf1, 0x70, - 0x7e, 0x92, 0x57, 0xae, 0x5f, 0x97, 0x20, 0xbb, 0x82, 0xad, 0x4d, 0x8c, 0x7e, 0x3e, 0xc6, 0x26, - 0xdf, 0x86, 0x6e, 0x75, 0x68, 0x08, 0x42, 0x7f, 0x93, 0x2f, 0x98, 0x26, 0x5f, 0x03, 0xd3, 0x1d, - 0xdc, 0x30, 0x8d, 0xa6, 0x9b, 0x89, 0xf6, 0x47, 0x7c, 0x22, 0x7a, 0x20, 0x26, 0x64, 0x84, 0xd1, - 0xa1, 0xec, 0xd4, 0xc5, 0x01, 0xa6, 0x57, 0xa9, 0xc9, 0x03, 0xf3, 0x03, 0xc9, 0xf9, 0xa9, 0xbd, - 0x87, 0x1e, 0x10, 0xde, 0x7d, 0xbd, 0x01, 0x72, 0x44, 0x4d, 0xdd, 0x31, 0xba, 0x77, 0x7f, 0xcc, - 0xf2, 0xc8, 0x73, 0x70, 0xac, 0x83, 0x5b, 0xb8, 0x61, 0xe3, 0xa6, 0xd3, 0x74, 0xd5, 0xbe, 0x9d, - 0xc2, 0xfe, 0xec, 0xe8, 0x2f, 0x82, 0x00, 0xde, 0xce, 0x03, 0x78, 0x6d, 0x0f, 0x51, 0x3a, 0x15, - 0x0a, 0xb7, 0x95, 0x9d, 0x6a, 0x54, 0x5b, 0xa6, 0xb7, 0x28, 0xee, 0xbe, 0x3b, 0xdf, 0xb6, 0xec, - 0xed, 0x16, 0xf9, 0xc6, 0x0e, 0x18, 0xb8, 0xef, 0xf2, 0x2c, 0x8c, 0x69, 0xc6, 0x1e, 0xf9, 0x94, - 0x89, 0xa8, 0xb5, 0x9b, 0x09, 0xbd, 0xd6, 0x43, 0xfe, 0x4e, 0x0e, 0xf9, 0x27, 0x88, 0xb1, 0x9b, - 0x3c, 0xf0, 0xbf, 0x34, 0x06, 0xd9, 0x55, 0xad, 0x63, 0x63, 0xf4, 0x7f, 0x4b, 0xa2, 0xc8, 0x5f, - 0x0b, 0x33, 0x1b, 0x66, 0x63, 0xa7, 0x83, 0x9b, 0x7c, 0xa3, 0xec, 0x4a, 0x1d, 0x06, 0xe6, 0xf2, - 0xf5, 0x90, 0x77, 0x13, 0x19, 0x59, 0x77, 0x1b, 0x7e, 0x5f, 0x3a, 0x89, 0xa7, 0xde, 0x59, 0xd5, - 0x2c, 0xbb, 0xb2, 0x41, 0xd2, 0xbc, 0x78, 0xea, 0xc1, 0x44, 0x0e, 0xfa, 0x5c, 0x04, 0xf4, 0x63, - 0xe1, 0xd0, 0x8f, 0x0b, 0x40, 0x2f, 0x17, 0x60, 0x7c, 0x43, 0x6f, 0x61, 0xf2, 0xc3, 0x04, 0xf9, - 0xa1, 0xd7, 0x98, 0x44, 0x64, 0xef, 0x8d, 0x49, 0x0b, 0x7a, 0x0b, 0xab, 0xde, 0x6f, 0xee, 0x44, - 0x06, 0xfc, 0x89, 0xcc, 0x32, 0xf5, 0xa7, 0x75, 0x0c, 0x2f, 0x43, 0xdb, 0xc6, 0xee, 0xe2, 0x9b, - 0xc1, 0x0e, 0xb7, 0x34, 0x35, 0x5b, 0x23, 0x60, 0x4c, 0xa9, 0xe4, 0x99, 0xf7, 0x0b, 0x91, 0xba, - 0xfd, 0x42, 0x5e, 0x20, 0xc5, 0xeb, 0x11, 0x5d, 0x66, 0x43, 0x5a, 0xd4, 0xba, 0x0b, 0x10, 0xb5, - 0x14, 0xbd, 0x77, 0x07, 0x98, 0x86, 0x66, 0x61, 0x7b, 0x35, 0xe8, 0x89, 0x91, 0x55, 0xf9, 0x44, - 0xe2, 0xca, 0xd7, 0xa9, 0x6a, 0xdb, 0x98, 0x14, 0x56, 0x74, 0xbe, 0x31, 0x17, 0xad, 0x7d, 0xe9, - 0x7e, 0xff, 0x9b, 0x1d, 0x76, 0xff, 0xdb, 0xab, 0x8e, 0xc9, 0x37, 0xc3, 0x37, 0x64, 0x40, 0x2a, - 0xee, 0xd8, 0x8f, 0xea, 0xee, 0xf7, 0x47, 0xc2, 0x7e, 0x2e, 0xac, 0x3f, 0xdb, 0xb1, 0x0f, 0xb7, - 0xf7, 0x8d, 0xa9, 0x25, 0x62, 0xfe, 0x34, 0x61, 0x75, 0x4b, 0x5e, 0x47, 0xde, 0x21, 0x79, 0x0e, - 0x96, 0xf7, 0xa7, 0x0e, 0x6e, 0x9a, 0x23, 0xda, 0x3f, 0x05, 0x7a, 0x06, 0xef, 0xdd, 0xed, 0x78, - 0x32, 0x5c, 0xf4, 0x45, 0xb2, 0xbd, 0x4e, 0x44, 0x39, 0xa5, 0xd2, 0x17, 0xf4, 0x2a, 0x61, 0xb7, - 0x73, 0x2a, 0xb6, 0x48, 0x57, 0xc2, 0x78, 0x36, 0x95, 0xd8, 0x95, 0xb2, 0x11, 0xc5, 0x26, 0x0f, - 0xd8, 0xf7, 0x82, 0xae, 0x82, 0x85, 0x03, 0x23, 0x86, 0x5e, 0x27, 0xbc, 0x1d, 0x45, 0xab, 0xdd, - 0x67, 0xbd, 0x30, 0x9e, 0xbc, 0xc5, 0x36, 0xab, 0x22, 0x0b, 0x4e, 0x5e, 0xe2, 0xdf, 0x95, 0x20, - 0x47, 0xb7, 0x20, 0xd1, 0xdb, 0x52, 0x31, 0xee, 0xe2, 0xb7, 0x79, 0x17, 0x42, 0xef, 0x3d, 0xce, - 0x9a, 0x03, 0xe7, 0x6a, 0x98, 0x89, 0xe5, 0x6a, 0xc8, 0x9f, 0xe3, 0x14, 0x68, 0x47, 0xb4, 0x8e, - 0x09, 0x4f, 0x27, 0xe3, 0xb4, 0xb0, 0x9e, 0x0c, 0x25, 0x8f, 0xf7, 0x8b, 0xb2, 0x30, 0x45, 0x8b, - 0x3e, 0xa7, 0x37, 0x37, 0xb1, 0x8d, 0xde, 0x9b, 0xfe, 0xf1, 0x41, 0x5d, 0x2e, 0xc3, 0xd4, 0x05, - 0xc2, 0xf6, 0xb2, 0xb6, 0x67, 0xee, 0xd8, 0x6c, 0xe5, 0xe2, 0xfa, 0xc8, 0x75, 0x0f, 0x5a, 0xcf, - 0x59, 0xfa, 0x87, 0xca, 0xfd, 0xef, 0xc8, 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x1c, 0x31, 0xb2, - 0x82, 0x49, 0xf2, 0x49, 0xc8, 0xed, 0xea, 0xf8, 0x42, 0xa9, 0xc9, 0xac, 0x5b, 0xf6, 0x86, 0xfe, - 0x50, 0x78, 0xdf, 0x36, 0x08, 0x37, 0xe3, 0x25, 0x59, 0x2d, 0x14, 0xdb, 0xbd, 0xed, 0xcb, 0xd6, - 0x08, 0xce, 0x14, 0xf3, 0x57, 0xb6, 0x16, 0x63, 0x28, 0x62, 0x98, 0xe1, 0xcc, 0x87, 0xf2, 0x88, - 0x3c, 0xb1, 0x42, 0x05, 0x30, 0xe4, 0xdb, 0x5c, 0xc5, 0xe2, 0x4b, 0xf4, 0x29, 0x3a, 0x79, 0xc9, - 0xbf, 0x51, 0x82, 0x89, 0x2a, 0xb6, 0x17, 0x74, 0xdc, 0x6a, 0x76, 0x90, 0x75, 0x70, 0xd3, 0xe8, - 0x46, 0xc8, 0x6d, 0x10, 0x62, 0xfd, 0xce, 0x2d, 0xb0, 0x6c, 0xe8, 0x0d, 0x69, 0xd1, 0x1d, 0x61, - 0xb6, 0xfa, 0xe6, 0x72, 0x3b, 0x14, 0x98, 0xc4, 0x3c, 0x7a, 0xa3, 0x4b, 0x4e, 0x1e, 0xa5, 0x77, - 0x4a, 0x30, 0xc5, 0xee, 0x78, 0x2c, 0xb4, 0xf4, 0x4d, 0x03, 0xed, 0x0c, 0xa1, 0x85, 0xc8, 0x37, - 0x41, 0x56, 0x73, 0xa8, 0xb1, 0xad, 0x57, 0xd4, 0xb3, 0xf3, 0x24, 0xe5, 0xa9, 0x34, 0x63, 0x8c, - 0x30, 0xad, 0xbe, 0x62, 0xbb, 0x3c, 0x8f, 0x30, 0x4c, 0x6b, 0xdf, 0xc2, 0x93, 0x47, 0xec, 0x6b, - 0x12, 0x1c, 0x67, 0x0c, 0x9c, 0xc5, 0x96, 0xad, 0x37, 0xb4, 0x16, 0x45, 0xee, 0x25, 0xa9, 0x61, - 0x40, 0xb7, 0x04, 0xd3, 0xbb, 0x41, 0xb2, 0x0c, 0xc2, 0x33, 0x3d, 0x21, 0xe4, 0x18, 0x50, 0xf9, - 0x1f, 0x63, 0x84, 0xbb, 0xe4, 0xa4, 0xca, 0xd1, 0x1c, 0x61, 0xb8, 0x4b, 0x61, 0x26, 0x92, 0x87, - 0xf8, 0x95, 0x2c, 0x34, 0x8f, 0xdf, 0x7d, 0x7e, 0x49, 0x18, 0xdb, 0x35, 0x98, 0x24, 0x58, 0xd2, - 0x1f, 0xd9, 0x32, 0x44, 0x84, 0x12, 0x7b, 0xfd, 0x0e, 0xbb, 0x56, 0xce, 0xfb, 0x57, 0x0d, 0xd2, - 0x41, 0xe7, 0x00, 0xfc, 0x4f, 0xc1, 0x4e, 0x3a, 0x15, 0xd6, 0x49, 0xa7, 0xc5, 0x3a, 0xe9, 0xb7, - 0x0a, 0x07, 0x4b, 0xe9, 0xcd, 0xf6, 0xc1, 0xd5, 0x43, 0x2c, 0x4c, 0x46, 0xff, 0xd2, 0x93, 0xd7, - 0x8b, 0xd7, 0x66, 0xba, 0x2f, 0xf3, 0xff, 0xc4, 0x50, 0xe6, 0x53, 0xc1, 0xfe, 0x40, 0xea, 0xea, - 0x0f, 0x0e, 0x60, 0x49, 0x5f, 0x07, 0x47, 0x69, 0x11, 0x45, 0x8f, 0xad, 0x2c, 0x0d, 0x05, 0xd1, - 0x95, 0xcc, 0xc7, 0xb5, 0x13, 0x54, 0x02, 0x4f, 0x08, 0x03, 0x2c, 0x7d, 0xc6, 0x33, 0x76, 0xe3, - 0x2a, 0x48, 0x18, 0x67, 0x23, 0x70, 0x0b, 0xcd, 0x50, 0x6b, 0x77, 0x8d, 0xdc, 0xfc, 0x87, 0xbe, - 0x92, 0x19, 0xc6, 0x88, 0x70, 0x17, 0x64, 0x88, 0x8b, 0xbb, 0x14, 0xba, 0xa4, 0xe1, 0x17, 0xe9, - 0x5f, 0xcb, 0x88, 0x2f, 0xda, 0x4b, 0x47, 0x54, 0xf2, 0xa7, 0x7c, 0x3d, 0x1c, 0x5d, 0xd7, 0x1a, - 0xe7, 0x37, 0x2d, 0x73, 0x87, 0xdc, 0x91, 0x66, 0xb2, 0xcb, 0xd6, 0xc8, 0xa5, 0x95, 0xfc, 0x07, - 0xf9, 0x66, 0xd7, 0x74, 0xc8, 0xf6, 0x33, 0x1d, 0x96, 0x8e, 0x30, 0xe3, 0x41, 0x7e, 0x92, 0xd7, - 0xe9, 0xe4, 0x22, 0x3b, 0x9d, 0xa5, 0x23, 0x6e, 0xb7, 0x23, 0xcf, 0xc3, 0x78, 0x53, 0xdf, 0x25, - 0x5b, 0xd5, 0x64, 0xd6, 0xd5, 0xef, 0xe8, 0xf2, 0xbc, 0xbe, 0x4b, 0x37, 0xb6, 0x97, 0x8e, 0xa8, - 0xde, 0x9f, 0xf2, 0x22, 0x4c, 0x90, 0x6d, 0x01, 0x42, 0x66, 0x3c, 0xd6, 0xb1, 0xe4, 0xa5, 0x23, - 0xaa, 0xff, 0xaf, 0x63, 0x7d, 0x64, 0xc8, 0xd9, 0x8f, 0x3b, 0xdd, 0xed, 0xf6, 0x54, 0xac, 0xed, - 0x76, 0x47, 0x16, 0x74, 0xc3, 0xfd, 0x24, 0x64, 0x1b, 0x44, 0xc2, 0x69, 0x26, 0x61, 0xfa, 0x2a, - 0xdf, 0x0e, 0x99, 0x6d, 0xcd, 0x72, 0x27, 0xcf, 0xd7, 0xf6, 0xa7, 0xbb, 0xa2, 0x59, 0xe7, 0x1d, - 0x04, 0x9d, 0xbf, 0xe6, 0xc6, 0x20, 0x4b, 0x04, 0xe7, 0x3d, 0xa0, 0x77, 0x64, 0xa8, 0x19, 0x52, - 0x34, 0x0d, 0x67, 0xd8, 0xaf, 0x99, 0xee, 0x01, 0x99, 0x3f, 0x4c, 0x0d, 0xc7, 0x82, 0xec, 0x79, - 0xfb, 0xbd, 0x14, 0x7a, 0xfb, 0x7d, 0xd7, 0x35, 0xcc, 0x99, 0xee, 0x6b, 0x98, 0xfd, 0xe5, 0x83, - 0x6c, 0x7f, 0x47, 0x95, 0xbf, 0x18, 0xc0, 0x74, 0xe9, 0x16, 0x44, 0xf8, 0x0c, 0xbc, 0xa5, 0x1b, - 0x81, 0x3a, 0xbb, 0xaf, 0x31, 0x3b, 0xa5, 0xb8, 0x46, 0x4d, 0x1f, 0xf6, 0x92, 0xef, 0x9b, 0x7e, - 0x3b, 0x03, 0xa7, 0xe8, 0x65, 0xdf, 0xbb, 0xb8, 0x66, 0xf2, 0xb7, 0x92, 0xa2, 0x3f, 0x1d, 0x8a, - 0xd2, 0xf4, 0x18, 0x70, 0xa4, 0x9e, 0x03, 0xce, 0xbe, 0x43, 0xca, 0x99, 0x3e, 0x87, 0x94, 0xb3, - 0xf1, 0x56, 0x0e, 0x3f, 0x12, 0xd4, 0x9f, 0x55, 0x5e, 0x7f, 0x6e, 0x0b, 0x01, 0xa8, 0x97, 0x5c, - 0x86, 0x62, 0xdf, 0xbc, 0xdb, 0xd3, 0x94, 0x2a, 0xa7, 0x29, 0x77, 0x0e, 0xce, 0x48, 0xf2, 0xda, - 0xf2, 0x07, 0x19, 0xb8, 0xc4, 0x67, 0xa6, 0x8c, 0x2f, 0x30, 0x45, 0xf9, 0xe2, 0x50, 0x14, 0x25, - 0x7e, 0x0c, 0x84, 0xa4, 0x35, 0xe6, 0xcf, 0x84, 0xcf, 0x0e, 0x75, 0x03, 0xe5, 0xc9, 0x26, 0x44, - 0x59, 0x4e, 0x42, 0x8e, 0xf6, 0x30, 0x0c, 0x1a, 0xf6, 0x16, 0xb3, 0xbb, 0x11, 0x3b, 0x71, 0x24, - 0xca, 0xdb, 0x08, 0xf4, 0x87, 0xad, 0x6b, 0xd4, 0x76, 0x2c, 0xa3, 0x64, 0xd8, 0x26, 0xfa, 0xc5, - 0xa1, 0x28, 0x8e, 0xe7, 0x0d, 0x27, 0x0d, 0xe2, 0x0d, 0x37, 0xd0, 0x2a, 0x87, 0x5b, 0x83, 0x43, - 0x59, 0xe5, 0x08, 0x29, 0x3c, 0x79, 0xfc, 0xde, 0x25, 0xc1, 0x49, 0x36, 0xd9, 0x9a, 0xe3, 0x2d, - 0x44, 0x74, 0xef, 0x30, 0x80, 0x3c, 0xee, 0x9a, 0x49, 0xec, 0xde, 0x3a, 0xf2, 0xc2, 0x9f, 0x94, - 0x8a, 0xbc, 0x3f, 0x85, 0x9b, 0x0e, 0x76, 0x71, 0x38, 0x14, 0xa4, 0xc4, 0xae, 0x4d, 0x89, 0xc1, - 0x46, 0xf2, 0x98, 0xbd, 0x5c, 0x82, 0x1c, 0x3d, 0xa7, 0x85, 0xd6, 0x12, 0x71, 0x98, 0xe0, 0xa3, - 0x3c, 0x0b, 0xec, 0xc8, 0x51, 0x6e, 0x12, 0x3b, 0xc3, 0x16, 0x67, 0x2f, 0xae, 0x27, 0x2b, 0x23, - 0x70, 0x21, 0x4c, 0xc3, 0x64, 0x15, 0xdb, 0x45, 0xcd, 0xb2, 0x74, 0x6d, 0x73, 0x58, 0x1e, 0xdf, - 0xa2, 0xde, 0xc3, 0xe8, 0x87, 0x29, 0xd1, 0xf3, 0x34, 0xde, 0x42, 0xb8, 0xcb, 0x6a, 0x48, 0x2c, - 0xc1, 0x87, 0x84, 0xce, 0xcc, 0xf4, 0xa3, 0x36, 0x02, 0x8f, 0xed, 0x34, 0x8c, 0xb9, 0x67, 0xf1, - 0x6e, 0xe4, 0xce, 0x67, 0x6e, 0xd9, 0xdb, 0xee, 0x31, 0x18, 0xf2, 0xbc, 0xff, 0x0c, 0x18, 0x7a, - 0x4d, 0x4c, 0x47, 0xf9, 0xe8, 0x83, 0x84, 0xf1, 0xda, 0x58, 0x1c, 0x77, 0xf8, 0xc3, 0x3a, 0x3a, - 0xf8, 0x7b, 0x63, 0x6c, 0x39, 0x72, 0x59, 0xb3, 0xf1, 0x45, 0xf4, 0x25, 0x09, 0xc6, 0xaa, 0xd8, - 0x76, 0xc6, 0x5b, 0x87, 0xfd, 0x03, 0x6b, 0xb8, 0x1c, 0x58, 0xf1, 0x98, 0x60, 0x6b, 0x18, 0x77, - 0xc3, 0x44, 0xdb, 0x32, 0x1b, 0xb8, 0xd3, 0x61, 0xab, 0x17, 0x41, 0x47, 0xb5, 0x5e, 0xa3, 0x3f, - 0x61, 0x6d, 0x76, 0xd5, 0xfd, 0x47, 0xf5, 0x7f, 0x8f, 0x6b, 0x06, 0x50, 0x4a, 0xac, 0x82, 0xa3, - 0x36, 0x03, 0xa2, 0x0a, 0x4f, 0x1e, 0xe8, 0xcf, 0x4b, 0x30, 0x55, 0xc5, 0xb6, 0x27, 0xc5, 0x18, - 0x9b, 0x1c, 0xe1, 0xf0, 0x72, 0x50, 0x4a, 0x07, 0x83, 0x52, 0xfc, 0xea, 0x4d, 0x5e, 0x9a, 0x1e, - 0xb1, 0x11, 0x5e, 0xbd, 0x29, 0xc6, 0xc1, 0x08, 0x8e, 0xaf, 0x3d, 0x0e, 0x26, 0x08, 0x2f, 0xa4, - 0xc1, 0xfe, 0x4a, 0xc6, 0x6f, 0xbc, 0x5f, 0x4e, 0xa8, 0xf1, 0xde, 0x01, 0xd9, 0x6d, 0xcd, 0x3a, - 0xdf, 0x21, 0x0d, 0x77, 0x52, 0xc4, 0x6c, 0x5f, 0x71, 0xb2, 0xab, 0xf4, 0xaf, 0xde, 0x7e, 0x9a, - 0xd9, 0x78, 0x7e, 0x9a, 0x0f, 0xa5, 0x63, 0x8d, 0x84, 0x74, 0xee, 0x30, 0xc4, 0x26, 0x1f, 0x63, - 0xdc, 0x8c, 0x28, 0x3b, 0x79, 0xe5, 0x78, 0x89, 0x04, 0xe3, 0xce, 0xb8, 0x4d, 0xec, 0xf1, 0x73, - 0x07, 0x57, 0x87, 0xde, 0x86, 0x7e, 0xcc, 0x1e, 0xd8, 0x95, 0xc8, 0xf0, 0xcc, 0xfb, 0x18, 0x3d, - 0x70, 0x54, 0xe1, 0x23, 0xb8, 0xe0, 0x8d, 0xe2, 0x41, 0xda, 0x03, 0x7a, 0xb3, 0x04, 0xd2, 0x22, - 0xb6, 0x47, 0x6d, 0x45, 0xbe, 0x53, 0x38, 0xc4, 0x11, 0x27, 0x30, 0xc2, 0xf3, 0xec, 0x22, 0x1e, - 0x4e, 0x03, 0x12, 0x8b, 0x6d, 0x24, 0xc4, 0x40, 0xf2, 0xa8, 0x7d, 0x80, 0xa2, 0x46, 0x37, 0x17, - 0x7e, 0x61, 0x08, 0xbd, 0xea, 0x68, 0x17, 0x3e, 0x5c, 0x01, 0x12, 0x1a, 0x87, 0xd5, 0xde, 0x7a, - 0x15, 0x3e, 0x92, 0xab, 0x2e, 0xc1, 0x69, 0xec, 0x5b, 0xb8, 0x71, 0x1e, 0x37, 0xd1, 0xcf, 0x1e, - 0x1c, 0xba, 0x53, 0x30, 0xd6, 0xa0, 0xd4, 0x08, 0x78, 0xe3, 0xaa, 0xfb, 0x1a, 0xe3, 0xde, 0x76, - 0xbe, 0x23, 0xa2, 0xbf, 0x8f, 0xf0, 0xde, 0x76, 0x81, 0xe2, 0x47, 0x60, 0xb6, 0xd0, 0x59, 0x46, - 0xa9, 0x61, 0x1a, 0xe8, 0x3f, 0x1f, 0x1c, 0x96, 0x2b, 0x60, 0x42, 0x6f, 0x98, 0x06, 0x09, 0x43, - 0xe1, 0x1e, 0x02, 0xf2, 0x12, 0xdc, 0xaf, 0xca, 0xb6, 0x79, 0x9f, 0xce, 0x76, 0xcd, 0xfd, 0x84, - 0x41, 0x8d, 0x09, 0x87, 0xf5, 0xc3, 0x32, 0x26, 0x7a, 0x94, 0x9d, 0x3c, 0x64, 0x9f, 0xf4, 0xbd, - 0xdb, 0x68, 0x57, 0xf8, 0xa8, 0x58, 0x05, 0x1e, 0x64, 0x38, 0x0b, 0xd6, 0xe2, 0x50, 0x86, 0xb3, - 0x08, 0x06, 0x46, 0x70, 0x63, 0x85, 0x8f, 0x63, 0xe2, 0x6b, 0xc0, 0x07, 0x40, 0x67, 0x78, 0xe6, - 0xe1, 0x80, 0xe8, 0x1c, 0x8e, 0x89, 0xf8, 0x61, 0x16, 0x22, 0x93, 0x59, 0x3c, 0xe8, 0xbf, 0x0c, - 0x03, 0x9c, 0xdb, 0x06, 0xf1, 0x57, 0xa0, 0xde, 0x0a, 0x31, 0x6e, 0x9c, 0xdf, 0x27, 0x41, 0x87, - 0xca, 0x50, 0x10, 0x14, 0xbb, 0x71, 0x5e, 0xa4, 0xfc, 0xe4, 0x01, 0x7c, 0xb1, 0x04, 0x33, 0xc4, - 0x47, 0xa0, 0x85, 0x35, 0x8b, 0x76, 0x94, 0x43, 0x71, 0x94, 0x7f, 0x8f, 0x70, 0x80, 0x1f, 0x5e, - 0x0e, 0x3e, 0x1f, 0x43, 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x23, 0xd9, 0x46, 0xc9, 0x7b, - 0x2c, 0x30, 0x15, 0x1f, 0x0e, 0x1e, 0x31, 0x3d, 0x72, 0x79, 0x61, 0xb8, 0x8d, 0x6d, 0xc4, 0x1e, - 0xb9, 0x22, 0x4c, 0x24, 0x8f, 0xc9, 0x9b, 0x6f, 0x62, 0x0b, 0xce, 0x35, 0x6d, 0xbd, 0x85, 0xd1, - 0xeb, 0x32, 0xde, 0x89, 0xb6, 0xcf, 0x0f, 0xc5, 0x03, 0xf3, 0x00, 0x01, 0xf1, 0x65, 0xc8, 0x58, - 0xe6, 0x05, 0xba, 0xb4, 0x35, 0xad, 0x92, 0x67, 0x7a, 0x3d, 0x65, 0x6b, 0x67, 0xdb, 0xa0, 0x27, - 0x43, 0xa7, 0x55, 0xf7, 0x55, 0xbe, 0x06, 0xa6, 0x2f, 0xe8, 0xf6, 0xd6, 0x12, 0xd6, 0x9a, 0xd8, - 0x52, 0xcd, 0x0b, 0xc4, 0x63, 0x6e, 0x5c, 0xe5, 0x13, 0x79, 0xff, 0x15, 0x01, 0xfb, 0xd2, 0x11, - 0xca, 0x68, 0x8e, 0xbf, 0xc5, 0xb1, 0x3c, 0xc3, 0xb9, 0x4a, 0x5e, 0x61, 0x3e, 0x28, 0xc1, 0x84, - 0x6a, 0x5e, 0x60, 0x4a, 0xf2, 0x7f, 0x1c, 0xae, 0x8e, 0xc4, 0x9e, 0xe8, 0x11, 0xc9, 0x79, 0xec, - 0x8f, 0x7c, 0xa2, 0x17, 0x59, 0xfc, 0x48, 0x4e, 0x2e, 0x4d, 0xa9, 0xe6, 0x85, 0x2a, 0xb6, 0x69, - 0x8b, 0x40, 0xf5, 0x21, 0x39, 0x59, 0xeb, 0x1d, 0x4a, 0x90, 0xcd, 0xc3, 0xbd, 0xf7, 0xb8, 0xbb, - 0x08, 0x9e, 0x80, 0x3c, 0x16, 0x47, 0xbd, 0x8b, 0xd0, 0x97, 0x83, 0x11, 0xc4, 0x48, 0x91, 0x60, - 0x52, 0x35, 0x2f, 0x38, 0x43, 0xc3, 0x82, 0xde, 0x6a, 0x0d, 0x67, 0x84, 0x8c, 0x6b, 0xfc, 0xbb, - 0x62, 0x70, 0xb9, 0x18, 0xb9, 0xf1, 0xdf, 0x87, 0x81, 0xe4, 0x61, 0x78, 0x01, 0x6d, 0x2c, 0xee, - 0x08, 0x6d, 0x0c, 0x07, 0x87, 0x41, 0x1b, 0x84, 0xc7, 0xc6, 0xa1, 0x35, 0x88, 0x30, 0x0e, 0x46, - 0xb2, 0x73, 0x32, 0x53, 0x24, 0xc3, 0xfc, 0x70, 0xdb, 0xc4, 0xfb, 0xe2, 0xb9, 0x26, 0xb2, 0x61, - 0x97, 0x63, 0x64, 0x28, 0x68, 0xc4, 0x70, 0x41, 0x14, 0xe0, 0x21, 0x79, 0x3c, 0x3e, 0x26, 0xc1, - 0x14, 0x65, 0xe1, 0x51, 0x62, 0x05, 0x0c, 0xd4, 0xa8, 0x82, 0x35, 0x38, 0x9c, 0x46, 0x15, 0xc1, - 0xc1, 0x48, 0x6e, 0x05, 0x75, 0xec, 0xb8, 0x01, 0x8e, 0x8f, 0x87, 0x21, 0x38, 0xb0, 0x31, 0x36, - 0xc4, 0x23, 0xe4, 0x83, 0x18, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0x05, 0x5e, 0x2b, 0x1a, 0x26, 0x06, - 0x07, 0x68, 0x0a, 0x43, 0x84, 0x61, 0xc0, 0xa6, 0x70, 0x48, 0x48, 0x7c, 0x5d, 0x02, 0xa0, 0x0c, - 0xac, 0x98, 0xbb, 0xe4, 0x32, 0x9f, 0x21, 0x74, 0x67, 0xdd, 0x6e, 0xf5, 0x52, 0x1f, 0xb7, 0xfa, - 0x98, 0x21, 0x5c, 0xe2, 0xae, 0x04, 0x06, 0xa4, 0xec, 0x54, 0x72, 0xe4, 0x2b, 0x81, 0xd1, 0xe5, - 0x27, 0x8f, 0xf1, 0xc3, 0xd4, 0x9a, 0xf3, 0x0f, 0x98, 0xfe, 0xe6, 0x50, 0x50, 0x0e, 0xcc, 0xfe, - 0x25, 0x7e, 0xf6, 0x7f, 0x00, 0x6c, 0x07, 0xb5, 0x11, 0xfb, 0x1d, 0x1c, 0x4d, 0xde, 0x46, 0x3c, - 0xbc, 0x03, 0xa2, 0xbf, 0x90, 0x81, 0xa3, 0xac, 0x13, 0xf9, 0x71, 0x80, 0x38, 0xe6, 0x39, 0x3c, - 0xae, 0x93, 0xec, 0x83, 0xf2, 0xb0, 0x16, 0xa4, 0xe2, 0x2c, 0x65, 0x0a, 0xb0, 0x37, 0x92, 0xd5, - 0x8d, 0x9c, 0x72, 0xb1, 0xad, 0x19, 0x4d, 0xf1, 0x70, 0xbf, 0x7d, 0x80, 0x77, 0xd7, 0x1a, 0x25, - 0x7e, 0xad, 0xb1, 0xc7, 0xca, 0x64, 0xec, 0x9d, 0x6b, 0x22, 0x32, 0xca, 0xee, 0xc8, 0x77, 0xae, - 0xc3, 0xcb, 0x4e, 0x1e, 0xa5, 0xf7, 0x49, 0x90, 0xa9, 0x9a, 0x96, 0x8d, 0x5e, 0x18, 0xa7, 0x75, - 0x52, 0xc9, 0xfb, 0x20, 0xb9, 0xef, 0x72, 0x91, 0xbb, 0xa5, 0xf9, 0xc6, 0xe8, 0xa3, 0xce, 0x9a, - 0xad, 0x11, 0xaf, 0x6e, 0xa7, 0xfc, 0xc0, 0x75, 0xcd, 0x71, 0xe3, 0xe9, 0x50, 0xf9, 0x55, 0xc3, - 0x0f, 0x60, 0x24, 0x16, 0x4f, 0x27, 0xb4, 0xe4, 0xe4, 0x71, 0x7b, 0xf0, 0x28, 0xf3, 0x6d, 0x5d, - 0xd0, 0x5b, 0x18, 0xbd, 0x90, 0xba, 0x8c, 0x94, 0xb5, 0x6d, 0x2c, 0x7e, 0x24, 0x26, 0xd2, 0xb5, - 0x95, 0xc4, 0x97, 0x95, 0xfc, 0xf8, 0xb2, 0x71, 0x1b, 0x14, 0x3d, 0x80, 0x4e, 0x59, 0x1a, 0x75, - 0x83, 0x8a, 0x28, 0x7b, 0x24, 0x71, 0x3a, 0x8f, 0x55, 0xb1, 0x4d, 0x8d, 0xca, 0x8a, 0x7b, 0x03, - 0xcb, 0xb3, 0x87, 0x12, 0xb1, 0xd3, 0xbb, 0xe0, 0x45, 0xea, 0xba, 0xe0, 0xe5, 0x83, 0x41, 0x70, - 0x56, 0x78, 0x70, 0x9e, 0x1a, 0x2e, 0x20, 0x9e, 0xc9, 0xa1, 0xc0, 0xf4, 0x4e, 0x0f, 0xa6, 0x55, - 0x0e, 0xa6, 0xdb, 0x07, 0xe4, 0x22, 0x79, 0xc0, 0x5e, 0x96, 0x85, 0xa3, 0x74, 0xd2, 0x5f, 0x30, - 0x9a, 0x2c, 0xc2, 0xea, 0xdb, 0xd2, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, - 0xdb, 0x7d, 0x3b, 0xfe, 0x1c, 0x0d, 0xe7, 0xea, 0x74, 0xa2, 0x64, 0xa7, 0x4d, 0xfc, 0x86, 0x7c, - 0xef, 0x3f, 0xfe, 0x2e, 0xa3, 0x31, 0xf1, 0xbb, 0x8c, 0xfe, 0x3c, 0xde, 0xba, 0x1d, 0x29, 0xba, - 0x4b, 0xe0, 0x09, 0xdb, 0x4e, 0x31, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0xf3, 0x23, - 0x88, 0x0c, 0xe8, 0x4e, 0x46, 0x08, 0x1c, 0xa6, 0x3b, 0x59, 0x3f, 0x06, 0x46, 0x70, 0xab, 0x7d, - 0x96, 0xed, 0xe6, 0x93, 0x76, 0x83, 0xfe, 0x26, 0x9d, 0xf8, 0x28, 0xfd, 0x48, 0x2a, 0x96, 0xff, - 0x33, 0xe1, 0x2b, 0x7a, 0x98, 0x8e, 0xe3, 0xd1, 0x1c, 0x45, 0x6e, 0x04, 0xeb, 0x46, 0x69, 0xe2, - 0x8b, 0x7e, 0x4e, 0x6f, 0xda, 0x5b, 0x43, 0x3a, 0xd1, 0x71, 0xc1, 0xa1, 0xe5, 0x5e, 0x8f, 0x4c, - 0x5e, 0xd0, 0xbf, 0xa6, 0x62, 0x85, 0x90, 0xf2, 0x44, 0x42, 0xd8, 0x0a, 0x11, 0x71, 0x8c, 0xc0, - 0x4f, 0x91, 0xf4, 0x46, 0xa8, 0xd1, 0x67, 0xf5, 0x26, 0x36, 0x1f, 0x85, 0x1a, 0x4d, 0xf8, 0x1a, - 0x9e, 0x46, 0x47, 0x91, 0xfb, 0x09, 0xd5, 0x68, 0x4f, 0x24, 0x43, 0xd2, 0xe8, 0x48, 0x7a, 0xc9, - 0xcb, 0xf8, 0x35, 0x53, 0x6c, 0x22, 0xb5, 0xac, 0x1b, 0xe7, 0xd1, 0xf7, 0x73, 0xee, 0xc5, 0xcc, - 0xe7, 0x74, 0x7b, 0x8b, 0xc5, 0x82, 0xf9, 0x03, 0xe1, 0xbb, 0x51, 0x06, 0x88, 0xf7, 0xc2, 0x87, - 0x93, 0xca, 0xee, 0x0b, 0x27, 0x55, 0x80, 0x69, 0xdd, 0xb0, 0xb1, 0x65, 0x68, 0xad, 0x85, 0x96, - 0xb6, 0xd9, 0x39, 0x35, 0xd6, 0xf3, 0xf2, 0xba, 0x52, 0x20, 0x8f, 0xca, 0xff, 0x11, 0xbc, 0xbe, - 0x72, 0x9c, 0xbf, 0xbe, 0x32, 0x24, 0xfa, 0xd5, 0x44, 0x78, 0xf4, 0x2b, 0x2f, 0xba, 0x15, 0xf4, - 0x0f, 0x8e, 0x2d, 0x6a, 0x1b, 0xc7, 0x0c, 0xf7, 0x77, 0xa3, 0x60, 0x14, 0x36, 0x2f, 0xf4, 0xe3, - 0xeb, 0xa5, 0x58, 0xab, 0x7b, 0x8e, 0x22, 0xcc, 0x76, 0x2b, 0x41, 0x6c, 0x0b, 0x35, 0x58, 0x79, - 0xa9, 0xab, 0xf2, 0x9e, 0xc9, 0x93, 0x11, 0x30, 0x79, 0x82, 0x4a, 0x95, 0x15, 0x53, 0xaa, 0x38, - 0x8b, 0x85, 0x22, 0xb5, 0x1d, 0xc1, 0x69, 0xa4, 0x2c, 0x1c, 0x73, 0xa3, 0xdd, 0xb6, 0xdb, 0x58, - 0xb3, 0x34, 0xa3, 0x81, 0xd1, 0x27, 0xd3, 0xc3, 0x30, 0x7b, 0x17, 0x60, 0x5c, 0x6f, 0x98, 0x46, - 0x55, 0x7f, 0x8e, 0x7b, 0xb9, 0x5c, 0x74, 0x90, 0x75, 0x22, 0x91, 0x12, 0xfb, 0x43, 0xf5, 0xfe, - 0x95, 0x4b, 0x30, 0xd1, 0xd0, 0xac, 0x26, 0x0d, 0xc2, 0x97, 0xed, 0xba, 0xc8, 0x29, 0x94, 0x50, - 0xd1, 0xfd, 0x45, 0xf5, 0xff, 0x96, 0x2b, 0xbc, 0x10, 0x73, 0x5d, 0xd1, 0x3c, 0x42, 0x89, 0xcd, - 0xfb, 0x3f, 0x71, 0x32, 0x77, 0xa4, 0x63, 0xe1, 0x16, 0xb9, 0x83, 0x9e, 0xf6, 0x10, 0x13, 0xaa, - 0x9f, 0x10, 0x77, 0x79, 0x80, 0x14, 0xb5, 0x0f, 0x8d, 0x51, 0x2f, 0x0f, 0x08, 0x71, 0x91, 0xbc, - 0x66, 0xbe, 0x3b, 0x07, 0xd3, 0xb4, 0x57, 0x63, 0xe2, 0x44, 0x2f, 0x26, 0x57, 0x48, 0xdb, 0xf7, - 0xe0, 0x3d, 0x54, 0x3d, 0xf8, 0x98, 0x9c, 0x07, 0xe9, 0xbc, 0x17, 0x70, 0xd0, 0x79, 0x8c, 0xbb, - 0x6f, 0xef, 0xf2, 0x35, 0x4b, 0x79, 0x1a, 0xf5, 0xbe, 0x7d, 0x74, 0xf1, 0xc9, 0xe3, 0xf3, 0xab, - 0x12, 0x48, 0x85, 0x66, 0x13, 0x35, 0x0e, 0x0e, 0xc5, 0x55, 0x30, 0xe9, 0xb6, 0x19, 0x3f, 0x06, - 0x64, 0x30, 0x29, 0xee, 0x22, 0xa8, 0x27, 0x9b, 0x42, 0x73, 0xe4, 0xbb, 0x0a, 0x11, 0x65, 0x27, - 0x0f, 0xca, 0x6f, 0x8e, 0xb1, 0x46, 0x33, 0x67, 0x9a, 0xe7, 0xc9, 0x51, 0x99, 0x17, 0x4a, 0x90, - 0x5d, 0xc0, 0x76, 0x63, 0x6b, 0x48, 0x6d, 0x66, 0xc7, 0x6a, 0xb9, 0x6d, 0x66, 0xdf, 0x7d, 0xf8, - 0xfd, 0x6d, 0x58, 0x97, 0xad, 0x59, 0xc2, 0xd2, 0xa8, 0xa3, 0x3b, 0x47, 0x96, 0x9e, 0x3c, 0x38, - 0xff, 0x2a, 0xc1, 0x8c, 0xb7, 0xc2, 0x45, 0x31, 0x79, 0x59, 0xea, 0xd1, 0xb6, 0xde, 0x89, 0xbe, - 0x18, 0x2f, 0x44, 0x9a, 0x27, 0x53, 0xbe, 0x66, 0x09, 0x2f, 0x2c, 0xc6, 0x08, 0x9e, 0x26, 0xc6, - 0xe0, 0x08, 0x66, 0xf0, 0x12, 0x8c, 0x13, 0x86, 0xe6, 0xf5, 0x5d, 0xe2, 0x3a, 0xc8, 0x2d, 0x34, - 0x3e, 0x77, 0x28, 0x0b, 0x8d, 0xb7, 0xf3, 0x0b, 0x8d, 0x82, 0x11, 0x8f, 0xdd, 0x75, 0xc6, 0x98, - 0xbe, 0x34, 0xce, 0xff, 0x43, 0x5f, 0x66, 0x8c, 0xe1, 0x4b, 0xd3, 0xa7, 0xfc, 0xe4, 0x11, 0x7d, - 0xfd, 0x7f, 0x62, 0x9d, 0xad, 0xbb, 0xa1, 0x8a, 0xfe, 0xaf, 0x63, 0x90, 0x39, 0xeb, 0x3c, 0xfc, - 0x4f, 0xff, 0x46, 0xac, 0x07, 0x86, 0x10, 0x9c, 0xe1, 0x19, 0x90, 0x71, 0xe8, 0xb3, 0x69, 0xcb, - 0xf5, 0x62, 0xbb, 0xbb, 0x0e, 0x23, 0x2a, 0xf9, 0x4f, 0x3e, 0x09, 0xb9, 0x8e, 0xb9, 0x63, 0x35, - 0x1c, 0xf3, 0xd9, 0xd1, 0x18, 0xf6, 0x16, 0x37, 0x28, 0x29, 0x47, 0x7a, 0x76, 0x78, 0x2e, 0xa3, - 0x81, 0x0b, 0x92, 0x24, 0xee, 0x82, 0xa4, 0x18, 0xfb, 0x07, 0x02, 0xbc, 0x25, 0xaf, 0x11, 0x7f, - 0x43, 0xee, 0x0a, 0x6c, 0x0e, 0x0b, 0xf6, 0x10, 0xb1, 0x1c, 0x54, 0x1d, 0xe2, 0x3a, 0x7c, 0xf3, - 0xa2, 0xf5, 0xe2, 0xc0, 0x8f, 0xd4, 0xe1, 0x5b, 0x80, 0x87, 0x91, 0x9c, 0x52, 0xcf, 0x31, 0x27, - 0xd5, 0x7b, 0x87, 0x89, 0x6e, 0x86, 0x53, 0xfa, 0x03, 0xa1, 0x33, 0x44, 0xe7, 0xd5, 0x81, 0xd1, - 0x39, 0x24, 0xf7, 0xd5, 0x3f, 0x92, 0x48, 0x24, 0x4c, 0xd7, 0xc8, 0x11, 0xbf, 0xe8, 0x28, 0x36, - 0x44, 0xce, 0x18, 0xcc, 0xc5, 0x81, 0x9e, 0x1e, 0x3c, 0x34, 0x38, 0x2f, 0xba, 0x00, 0xff, 0xa3, - 0x0e, 0x0d, 0x2e, 0xca, 0x48, 0xf2, 0x40, 0xbe, 0x89, 0x5e, 0x2c, 0x56, 0x68, 0xd8, 0xfa, 0xee, - 0x90, 0x5b, 0x1a, 0x3f, 0xbc, 0xc4, 0x8c, 0x06, 0xbc, 0x4f, 0x42, 0x94, 0xc3, 0x51, 0x47, 0x03, - 0x16, 0x63, 0x23, 0x79, 0x98, 0xbe, 0x95, 0x73, 0xa4, 0xc7, 0xd6, 0x66, 0xde, 0xcc, 0x56, 0x03, - 0xf0, 0xc1, 0xd1, 0x3a, 0x03, 0x53, 0x81, 0xa9, 0xbf, 0x7b, 0x61, 0x0d, 0x97, 0x16, 0xf7, 0xa0, - 0xbb, 0x27, 0xb2, 0xa1, 0x2f, 0x0c, 0xc4, 0x58, 0xf0, 0x15, 0x61, 0x62, 0x24, 0xf7, 0xc1, 0xb9, - 0x63, 0xd8, 0x88, 0xb0, 0xfa, 0x83, 0x20, 0x56, 0x15, 0x1e, 0xab, 0x5b, 0x45, 0xc4, 0x24, 0x36, - 0xa6, 0x09, 0xcd, 0x1b, 0xdf, 0xe5, 0xc1, 0xa5, 0x72, 0x70, 0x3d, 0x63, 0x60, 0x3e, 0x92, 0x47, - 0xec, 0xb7, 0x68, 0x77, 0x58, 0xa5, 0x26, 0xfb, 0x70, 0xba, 0x43, 0x36, 0x1b, 0x90, 0xb8, 0xd9, - 0x40, 0x4c, 0x7f, 0x7b, 0xdf, 0x8d, 0xd4, 0x65, 0xae, 0x1f, 0x44, 0x99, 0x21, 0xfb, 0xdb, 0xf7, - 0xe5, 0x20, 0x79, 0x70, 0xfe, 0x49, 0x02, 0x58, 0xb4, 0xcc, 0x9d, 0x76, 0xc5, 0x6a, 0x62, 0x0b, - 0xfd, 0x9d, 0x3f, 0x01, 0x78, 0xc5, 0x10, 0x26, 0x00, 0xab, 0x00, 0x9b, 0x1e, 0x71, 0xa6, 0xe1, - 0x37, 0x89, 0x99, 0xfb, 0x3e, 0x53, 0x6a, 0x80, 0x06, 0x7f, 0xe5, 0xec, 0x33, 0x79, 0x8c, 0xa3, - 0xfa, 0x2c, 0x9f, 0xdc, 0x30, 0x27, 0x00, 0xef, 0xf1, 0xb0, 0xae, 0x71, 0x58, 0xdf, 0x75, 0x00, - 0x4e, 0x92, 0xc7, 0xfc, 0x9f, 0xc7, 0x60, 0x92, 0x6e, 0xd7, 0x51, 0x99, 0xfe, 0x83, 0x0f, 0xfa, - 0x6f, 0x0e, 0x01, 0xf4, 0x35, 0x98, 0x32, 0x7d, 0xea, 0xb4, 0x4f, 0x0d, 0x2e, 0xc0, 0x44, 0xc2, - 0x1e, 0xe0, 0x4b, 0xe5, 0xc8, 0xa0, 0x8f, 0x07, 0x91, 0x57, 0x79, 0xe4, 0x6f, 0x8f, 0x90, 0x77, - 0x80, 0xe2, 0x30, 0xa1, 0x7f, 0xaf, 0x07, 0xfd, 0x1a, 0x07, 0x7d, 0xe1, 0x20, 0xac, 0x8c, 0x20, - 0xdc, 0xbe, 0x04, 0x19, 0x72, 0x3a, 0xee, 0xb7, 0x13, 0x9c, 0xdf, 0x9f, 0x82, 0x31, 0xd2, 0x64, - 0xbd, 0x79, 0x87, 0xfb, 0xea, 0x7c, 0xd1, 0x36, 0x6c, 0x6c, 0x79, 0x1e, 0x0b, 0xee, 0xab, 0xc3, - 0x83, 0xeb, 0x95, 0xdc, 0x39, 0x95, 0xa3, 0x1b, 0x91, 0x5e, 0xc2, 0xc0, 0x93, 0x92, 0xa0, 0xc4, - 0x87, 0x76, 0x5e, 0x6e, 0x90, 0x49, 0x49, 0x1f, 0x46, 0x92, 0x07, 0xfe, 0x2b, 0x19, 0x38, 0x45, - 0x57, 0x95, 0x16, 0x2c, 0x73, 0xbb, 0xeb, 0x76, 0x2b, 0xfd, 0xe0, 0xba, 0x70, 0x2d, 0xcc, 0xd8, - 0x9c, 0x3f, 0x36, 0xd3, 0x89, 0xae, 0x54, 0xf4, 0x17, 0x41, 0x9f, 0x8a, 0x67, 0xf1, 0x48, 0xce, - 0x45, 0x08, 0x30, 0x8c, 0xf7, 0xd8, 0x0b, 0xf5, 0x82, 0x8c, 0x06, 0x16, 0xa9, 0xa4, 0x81, 0xd6, - 0x2c, 0x3d, 0x9d, 0xca, 0x8a, 0xe8, 0xd4, 0x87, 0x3c, 0x9d, 0xfa, 0x59, 0x4e, 0xa7, 0x16, 0x0f, - 0x2e, 0x92, 0xe4, 0x75, 0xeb, 0x75, 0xde, 0xc6, 0x90, 0xb7, 0x6d, 0xb7, 0x9d, 0xc0, 0x66, 0x5d, - 0xd0, 0x1f, 0x29, 0xc3, 0xf9, 0x23, 0xf1, 0xf7, 0x51, 0xc4, 0x98, 0x09, 0xf3, 0x5c, 0x87, 0xe8, - 0xd2, 0x0c, 0xa4, 0x75, 0x97, 0xbb, 0xb4, 0xde, 0x1c, 0x68, 0xae, 0x1b, 0x59, 0xd0, 0x08, 0xd6, - 0x96, 0x66, 0x20, 0xb7, 0xa0, 0xb7, 0x6c, 0x6c, 0xa1, 0x87, 0xd9, 0x4c, 0xf7, 0x75, 0x09, 0x0e, - 0x00, 0xf3, 0x90, 0xdb, 0x20, 0xa5, 0x31, 0x93, 0xf9, 0x06, 0xb1, 0xd6, 0x43, 0x39, 0x54, 0xd9, - 0xbf, 0x71, 0xa3, 0xf3, 0x75, 0x91, 0x19, 0xda, 0x14, 0x39, 0x46, 0x74, 0xbe, 0xfe, 0x2c, 0x8c, - 0xe4, 0x62, 0xaa, 0x9c, 0x8a, 0xb7, 0x9d, 0x31, 0xfe, 0x7c, 0x72, 0x08, 0xe7, 0x41, 0xd2, 0x9b, - 0x1d, 0xd2, 0x39, 0x4e, 0xa8, 0xce, 0x63, 0x5c, 0x5f, 0xa1, 0x6e, 0x51, 0x51, 0x96, 0x47, 0xed, - 0x2b, 0x24, 0xc4, 0x45, 0xf2, 0x98, 0x3d, 0x42, 0x1c, 0x45, 0xdb, 0x2d, 0xad, 0x81, 0x1d, 0xee, - 0x13, 0x43, 0x8d, 0xf6, 0x64, 0x19, 0xb7, 0x27, 0x0b, 0xb4, 0xd3, 0xec, 0x01, 0xda, 0xe9, 0xa0, - 0xcb, 0x90, 0x9e, 0xcc, 0x49, 0xc5, 0x0f, 0x6d, 0x19, 0x32, 0x92, 0x8d, 0x11, 0x5c, 0x3b, 0xea, - 0x1e, 0xa4, 0x1d, 0x69, 0x6b, 0x1d, 0x74, 0x93, 0x86, 0x09, 0x6b, 0x68, 0x87, 0x66, 0x07, 0xd9, - 0xa4, 0x09, 0xe7, 0x61, 0x04, 0x68, 0xcd, 0x30, 0xb4, 0xbe, 0xc0, 0x86, 0xd1, 0x84, 0xf7, 0x49, - 0x3b, 0xa6, 0x65, 0xc7, 0xdb, 0x27, 0x75, 0xb8, 0x53, 0xc9, 0x7f, 0x71, 0x0f, 0x5e, 0xf1, 0xe7, - 0xaa, 0x87, 0x35, 0x7c, 0xc6, 0x38, 0x78, 0xd5, 0x8f, 0x81, 0xe4, 0xe1, 0x7d, 0xfb, 0x21, 0x0d, - 0x9e, 0x83, 0x36, 0x47, 0xd6, 0x06, 0x86, 0x36, 0x74, 0x0e, 0xd2, 0x1c, 0xc3, 0x79, 0x48, 0x1e, - 0xaf, 0xef, 0x05, 0x06, 0xce, 0xb7, 0x8e, 0x70, 0xe0, 0x74, 0x5b, 0x66, 0x76, 0xc0, 0x96, 0x39, - 0xe8, 0xfe, 0x0f, 0x93, 0xf5, 0xf0, 0x06, 0xcc, 0x41, 0xf6, 0x7f, 0x22, 0x98, 0x48, 0x1e, 0xf1, - 0xb7, 0x49, 0x90, 0xad, 0x8e, 0x7e, 0xbc, 0x1c, 0x74, 0x2e, 0x42, 0x64, 0x55, 0x1d, 0xda, 0x70, - 0x39, 0xc8, 0x5c, 0x24, 0x94, 0x85, 0x11, 0x04, 0xde, 0x3f, 0x0a, 0x53, 0x64, 0x49, 0xc4, 0xdd, - 0x66, 0xfd, 0x1e, 0x1b, 0x35, 0x1f, 0x4a, 0xb0, 0xad, 0xde, 0x0d, 0xe3, 0xee, 0xfe, 0x1d, 0x1b, - 0x39, 0x67, 0xc5, 0xda, 0xa7, 0xcb, 0xa5, 0xea, 0xfd, 0x7f, 0x20, 0x67, 0x88, 0xa1, 0xef, 0xd5, - 0x0e, 0xea, 0x0c, 0x71, 0xa8, 0xfb, 0xb5, 0x7f, 0xee, 0x8f, 0xa8, 0xff, 0x39, 0x39, 0xcc, 0xbb, - 0xf7, 0x71, 0x33, 0x3d, 0xf6, 0x71, 0x3f, 0x19, 0xc4, 0xb2, 0xca, 0x63, 0x79, 0x87, 0xa8, 0x08, - 0x87, 0x38, 0xd6, 0xbe, 0xcf, 0x83, 0xf3, 0x2c, 0x07, 0xe7, 0xdc, 0x81, 0x78, 0x19, 0xc1, 0xc1, - 0xc7, 0x8c, 0x3f, 0xe6, 0x7e, 0x2a, 0xc1, 0x76, 0xdc, 0x75, 0xaa, 0x22, 0xb3, 0xef, 0x54, 0x05, - 0xd7, 0xd2, 0xb3, 0x07, 0x6c, 0xe9, 0x9f, 0x0a, 0x6a, 0x47, 0x8d, 0xd7, 0x8e, 0x67, 0x88, 0x23, - 0x32, 0xbc, 0x91, 0xf9, 0xfd, 0x9e, 0x7a, 0x9c, 0xe3, 0xd4, 0xa3, 0x78, 0x30, 0x66, 0x92, 0xd7, - 0x8f, 0x3f, 0x76, 0x27, 0xb4, 0x87, 0xdc, 0xde, 0x07, 0xdd, 0x2a, 0xe6, 0x84, 0x38, 0xb4, 0x91, - 0x7b, 0x90, 0xad, 0xe2, 0x7e, 0x9c, 0x8c, 0x20, 0x16, 0xdb, 0x34, 0x4c, 0x12, 0x9e, 0xce, 0xe9, - 0xcd, 0x4d, 0x6c, 0xa3, 0xd7, 0x53, 0x1f, 0x45, 0x37, 0xf2, 0xe5, 0x90, 0xc2, 0x13, 0x85, 0x9d, - 0x77, 0x8d, 0xeb, 0xd1, 0x41, 0x99, 0x9c, 0x0d, 0x30, 0x38, 0xea, 0x08, 0x8a, 0x7d, 0x39, 0x48, - 0x1e, 0xb2, 0x8f, 0x53, 0x77, 0x9b, 0x65, 0x6d, 0xcf, 0xdc, 0xb1, 0xd1, 0xfd, 0x43, 0xe8, 0xa0, - 0xe7, 0x20, 0xd7, 0x22, 0xd4, 0xd8, 0xb1, 0x8c, 0xe8, 0xe9, 0x0e, 0x13, 0x01, 0x2d, 0x5f, 0x65, - 0x7f, 0xc6, 0x3d, 0x9b, 0xe1, 0xcb, 0x91, 0xd2, 0x19, 0xf5, 0xd9, 0x8c, 0x3e, 0xe5, 0x8f, 0xe4, - 0x8e, 0x9d, 0x71, 0xa7, 0x74, 0x7d, 0x5b, 0xb7, 0x87, 0x14, 0xc1, 0xa1, 0xe5, 0xd0, 0x72, 0x23, - 0x38, 0x90, 0x97, 0xb8, 0x27, 0x46, 0x03, 0x52, 0x71, 0x7e, 0x1f, 0xf5, 0x89, 0xd1, 0xe8, 0xe2, - 0x93, 0xc7, 0xe4, 0xd7, 0x69, 0xcb, 0x3a, 0x4b, 0x9d, 0x6f, 0x13, 0xf4, 0xeb, 0x1d, 0xb8, 0xb1, - 0x50, 0xd6, 0x0e, 0xaf, 0xb1, 0xf4, 0x2c, 0x3f, 0x79, 0x60, 0xfe, 0xdb, 0x4f, 0x41, 0x76, 0x1e, - 0xaf, 0xef, 0x6c, 0xa2, 0xdb, 0x61, 0xbc, 0x66, 0x61, 0x5c, 0x32, 0x36, 0x4c, 0x47, 0xba, 0xb6, - 0xf3, 0xec, 0x42, 0xc2, 0xde, 0x1c, 0x3c, 0xb6, 0xb0, 0xd6, 0xf4, 0xcf, 0x9f, 0xb9, 0xaf, 0xe8, - 0x81, 0x34, 0x64, 0xaa, 0xb6, 0x66, 0xa3, 0x09, 0x0f, 0x5b, 0x74, 0x7f, 0x10, 0x8b, 0xdb, 0x79, - 0x2c, 0xae, 0xe5, 0x64, 0x41, 0x38, 0x98, 0x75, 0xfe, 0x0f, 0x01, 0x00, 0xc1, 0xf8, 0x7d, 0x1d, - 0xd3, 0x70, 0x72, 0xb8, 0x47, 0x20, 0xdd, 0x77, 0xf4, 0x5a, 0x4f, 0xdc, 0x77, 0x72, 0xe2, 0x7e, - 0x82, 0x58, 0x11, 0x23, 0x58, 0x69, 0x4b, 0xc3, 0x84, 0x23, 0xda, 0x25, 0xac, 0x35, 0x3b, 0xe8, - 0xb1, 0xbe, 0xf2, 0x87, 0x88, 0x19, 0x7d, 0x58, 0x38, 0x18, 0x27, 0xad, 0x95, 0x47, 0x3c, 0xdc, - 0xa3, 0xc3, 0xdd, 0xfc, 0x4f, 0xf3, 0xc1, 0x48, 0x6e, 0x84, 0x8c, 0x6e, 0x6c, 0x98, 0xcc, 0xbf, - 0xf0, 0xf2, 0x10, 0xda, 0x8e, 0x4e, 0xa8, 0x24, 0xa3, 0x60, 0xa4, 0xce, 0x68, 0xb6, 0x46, 0x72, - 0xe9, 0x5d, 0xc6, 0x29, 0x1d, 0xfd, 0xef, 0x7d, 0x85, 0x2d, 0xcb, 0x90, 0x69, 0x6b, 0xf6, 0x16, - 0x2b, 0x9a, 0x3c, 0x3b, 0x36, 0xf2, 0x8e, 0xa1, 0x19, 0xa6, 0xb1, 0xb7, 0xad, 0x3f, 0xc7, 0xbb, - 0x5b, 0x97, 0x4b, 0x73, 0x38, 0xdf, 0xc4, 0x06, 0xb6, 0x34, 0x1b, 0x57, 0x77, 0x37, 0xc9, 0x1c, - 0x6b, 0x5c, 0x0d, 0x26, 0xc5, 0xd6, 0x7f, 0x87, 0xe3, 0x70, 0xfd, 0xdf, 0xd0, 0x5b, 0x98, 0x44, - 0x6a, 0x62, 0xfa, 0xef, 0xbe, 0xc7, 0xd2, 0xff, 0x1e, 0x45, 0x24, 0x8f, 0xc6, 0xbf, 0xa5, 0x61, - 0xaa, 0xea, 0x28, 0x5c, 0x75, 0x67, 0x7b, 0x5b, 0xb3, 0xf6, 0xd0, 0xd5, 0x3e, 0x2a, 0x01, 0xd5, - 0x4c, 0xf1, 0x7e, 0x29, 0x7f, 0x24, 0x7c, 0xad, 0x34, 0x6b, 0xda, 0x81, 0x12, 0x62, 0xb7, 0x83, - 0x27, 0x41, 0xd6, 0x51, 0x6f, 0xd7, 0xe3, 0x32, 0xb2, 0x21, 0xd0, 0x9c, 0x82, 0x11, 0xad, 0xfa, - 0xf2, 0x36, 0x82, 0x68, 0x1a, 0x69, 0x38, 0x5a, 0xb5, 0xb5, 0xc6, 0xf9, 0x45, 0xd3, 0x32, 0x77, - 0x6c, 0xdd, 0xc0, 0x1d, 0xf4, 0x18, 0x1f, 0x01, 0x57, 0xff, 0x53, 0xbe, 0xfe, 0xa3, 0x7f, 0x4f, - 0x89, 0x8e, 0xa2, 0x5e, 0xb7, 0x1a, 0x24, 0x1f, 0x12, 0xa0, 0x4a, 0x6c, 0x5c, 0x14, 0xa1, 0x98, - 0xbc, 0xd0, 0xde, 0x2a, 0x41, 0x5e, 0xb9, 0xd8, 0x36, 0x2d, 0x7b, 0xd9, 0x6c, 0x68, 0xad, 0x8e, - 0x6d, 0x5a, 0x18, 0x55, 0x22, 0xa5, 0xe6, 0xf4, 0x30, 0x4d, 0xb3, 0xe1, 0x0f, 0x8e, 0xec, 0x2d, - 0xa8, 0x76, 0x12, 0xaf, 0xe3, 0x1f, 0x17, 0xde, 0x65, 0xa4, 0x52, 0xe9, 0xe6, 0x28, 0x44, 0xcf, - 0x7b, 0x75, 0x69, 0xf1, 0x0e, 0x4b, 0x88, 0xed, 0x3c, 0x0a, 0x31, 0x35, 0x82, 0xa5, 0xf2, 0x34, - 0x4c, 0x57, 0x77, 0xd6, 0x3d, 0x22, 0x9d, 0xa0, 0x11, 0xf2, 0x06, 0xe1, 0x28, 0x15, 0x4c, 0xf1, - 0x82, 0x84, 0x42, 0xe4, 0x7b, 0x0d, 0x4c, 0x77, 0x82, 0xd9, 0x18, 0xde, 0x7c, 0xa2, 0x60, 0x74, - 0x8a, 0xfe, 0xa5, 0x26, 0x2f, 0xc0, 0xf7, 0xa7, 0x61, 0xba, 0xd2, 0xc6, 0x06, 0x6e, 0x52, 0x2f, - 0x48, 0x4e, 0x80, 0x0f, 0xc4, 0x14, 0x20, 0x47, 0x28, 0x44, 0x80, 0xbe, 0xc7, 0xf2, 0xbc, 0x2b, - 0x3c, 0x3f, 0x21, 0x96, 0xe0, 0xa2, 0x4a, 0x4b, 0x5e, 0x70, 0x5f, 0x4d, 0xc3, 0xa4, 0xba, 0x63, - 0xac, 0x5a, 0xa6, 0x33, 0x1a, 0x5b, 0xe8, 0x0e, 0xbf, 0x83, 0xb8, 0x01, 0x8e, 0x35, 0x77, 0x2c, - 0xb2, 0xfe, 0x54, 0x32, 0xaa, 0xb8, 0x61, 0x1a, 0xcd, 0x0e, 0xa9, 0x47, 0x56, 0xdd, 0xff, 0xe1, - 0xb6, 0xcc, 0x0b, 0xbf, 0x2d, 0xa5, 0xd0, 0x8b, 0x85, 0x43, 0xdd, 0xd0, 0xca, 0x07, 0x8a, 0x16, - 0xef, 0x09, 0x04, 0x03, 0xda, 0xf4, 0x2b, 0x21, 0x79, 0xe1, 0x7e, 0x21, 0x0d, 0x72, 0xa1, 0xd1, - 0x30, 0x77, 0x0c, 0xbb, 0x8a, 0x5b, 0xb8, 0x61, 0xd7, 0x2c, 0xad, 0x81, 0x83, 0xf6, 0x73, 0x1e, - 0xa4, 0xa6, 0x6e, 0xb1, 0x3e, 0xd8, 0x79, 0x64, 0x72, 0x7c, 0x40, 0x78, 0xc7, 0x91, 0xd6, 0x72, - 0x7f, 0x29, 0x31, 0xc4, 0x29, 0xb6, 0xaf, 0x28, 0x58, 0x50, 0xf2, 0x52, 0xfd, 0x54, 0x1a, 0x26, - 0xdc, 0x1e, 0x7b, 0x53, 0x44, 0x98, 0xbf, 0x1e, 0x73, 0x32, 0xe2, 0x11, 0x8f, 0x21, 0xc3, 0x77, - 0xc7, 0x98, 0x55, 0x84, 0xd1, 0x8f, 0x27, 0xba, 0x42, 0x7c, 0xd1, 0x39, 0xaf, 0xe5, 0x4a, 0x7d, - 0xa1, 0xb2, 0x3c, 0xaf, 0xa8, 0x79, 0x09, 0x3d, 0x9c, 0x86, 0xcc, 0xaa, 0x6e, 0x6c, 0x06, 0xa3, - 0x2b, 0x1d, 0x77, 0xec, 0xc8, 0x26, 0xbe, 0xc8, 0x5a, 0x3a, 0x7d, 0x91, 0x6f, 0x86, 0xe3, 0xc6, - 0xce, 0xf6, 0x3a, 0xb6, 0x2a, 0x1b, 0x64, 0x94, 0xed, 0xd4, 0xcc, 0x2a, 0x36, 0xa8, 0x11, 0x9a, - 0x55, 0x7b, 0x7e, 0xe3, 0x4d, 0x30, 0x81, 0xc9, 0x83, 0xc3, 0x49, 0x88, 0xc4, 0x3d, 0xa6, 0xd2, - 0x01, 0xa6, 0x62, 0x4d, 0x1b, 0x7a, 0x10, 0x4f, 0x5e, 0x53, 0xff, 0x24, 0x0b, 0x27, 0x0a, 0xc6, - 0x1e, 0xb1, 0x29, 0x68, 0x07, 0x5f, 0xdc, 0xd2, 0x8c, 0x4d, 0x4c, 0x06, 0x08, 0x4f, 0xe2, 0xc1, - 0x10, 0xfd, 0x29, 0x3e, 0x44, 0xbf, 0xac, 0xc2, 0x98, 0x69, 0x35, 0xb1, 0x35, 0xb7, 0x47, 0x78, - 0xea, 0x5e, 0x76, 0x66, 0x6d, 0xb2, 0x57, 0x11, 0xb3, 0x8c, 0xfc, 0x6c, 0x85, 0xfe, 0xaf, 0xba, - 0x84, 0xce, 0xdc, 0x00, 0x63, 0x2c, 0x4d, 0x9e, 0x82, 0xf1, 0x8a, 0x3a, 0xaf, 0xa8, 0xf5, 0xd2, - 0x7c, 0xfe, 0x88, 0x7c, 0x09, 0x1c, 0x2d, 0xd5, 0x14, 0xb5, 0x50, 0x2b, 0x55, 0xca, 0x75, 0x92, - 0x9e, 0x4f, 0xa1, 0x17, 0x64, 0x44, 0x3d, 0x7b, 0xa3, 0x99, 0xe9, 0x05, 0xab, 0x0a, 0x63, 0x0d, - 0x9a, 0x81, 0x0c, 0xa1, 0x93, 0xb1, 0x6a, 0xc7, 0x08, 0xd2, 0x04, 0xd5, 0x25, 0x24, 0x9f, 0x06, - 0xb8, 0x60, 0x99, 0xc6, 0xa6, 0x7f, 0xea, 0x70, 0x5c, 0x0d, 0xa4, 0xa0, 0xfb, 0x53, 0x90, 0xa3, - 0xff, 0x90, 0x2b, 0x49, 0xc8, 0x93, 0x2f, 0x78, 0xf7, 0xdd, 0xb1, 0x78, 0x89, 0xbc, 0xfc, 0x89, - 0x16, 0x7b, 0x75, 0x74, 0x91, 0xca, 0x80, 0x5a, 0xc2, 0xac, 0x2a, 0x37, 0x42, 0x8e, 0xfe, 0xcb, - 0xbc, 0x0e, 0xc2, 0xc3, 0x8b, 0xd2, 0x6c, 0x82, 0x7e, 0xca, 0xe2, 0x32, 0x4d, 0x5e, 0x9b, 0x3f, - 0x92, 0x86, 0xf1, 0x32, 0xb6, 0x8b, 0x5b, 0xb8, 0x71, 0x1e, 0x3d, 0x9e, 0x5f, 0x00, 0x6d, 0xe9, - 0xd8, 0xb0, 0xef, 0xdd, 0x6e, 0x79, 0x0b, 0xa0, 0x6e, 0x02, 0x7a, 0x51, 0xb0, 0xf3, 0xbd, 0x8b, - 0xd7, 0x9f, 0xeb, 0x7b, 0xd4, 0xd5, 0x2d, 0x21, 0x44, 0x65, 0x4e, 0x42, 0xce, 0xc2, 0x9d, 0x9d, - 0x96, 0xbb, 0x88, 0xc6, 0xde, 0xd0, 0x83, 0x9e, 0x38, 0x8b, 0x9c, 0x38, 0x6f, 0x14, 0x2f, 0x62, - 0x04, 0xf1, 0x4a, 0x33, 0x30, 0x56, 0x32, 0x74, 0x5b, 0xd7, 0x5a, 0xe8, 0xc5, 0x19, 0x98, 0xae, - 0x62, 0x7b, 0x55, 0xb3, 0xb4, 0x6d, 0x6c, 0x63, 0xab, 0x83, 0x7e, 0xc8, 0xf7, 0x09, 0xed, 0x96, - 0x66, 0x6f, 0x98, 0xd6, 0xb6, 0xab, 0x9a, 0xee, 0xbb, 0xa3, 0x9a, 0xbb, 0xd8, 0xea, 0xf8, 0x7c, - 0xb9, 0xaf, 0xce, 0x97, 0x0b, 0xa6, 0x75, 0xde, 0x19, 0x04, 0xd9, 0x34, 0x8d, 0xbd, 0x3a, 0xf4, - 0x5a, 0xe6, 0xe6, 0x32, 0xde, 0xc5, 0x6e, 0xb8, 0x34, 0xef, 0xdd, 0x99, 0x0b, 0x34, 0xcd, 0xb2, - 0x69, 0x3b, 0x9d, 0xf6, 0xb2, 0xb9, 0x49, 0xe3, 0xc5, 0x8e, 0xab, 0x7c, 0xa2, 0x9f, 0x4b, 0xdb, - 0xc5, 0x24, 0x57, 0x2e, 0x98, 0x8b, 0x25, 0xca, 0xb3, 0x20, 0x7b, 0xbf, 0xd5, 0x70, 0x0b, 0x6f, - 0x63, 0xdb, 0xda, 0x23, 0xd7, 0x42, 0x8c, 0xab, 0x3d, 0xbe, 0xb0, 0x01, 0x5a, 0x7c, 0xb2, 0xce, - 0xa4, 0x37, 0xcb, 0x49, 0xee, 0x40, 0x93, 0x75, 0x11, 0x8a, 0x23, 0xb9, 0xf6, 0x4a, 0x72, 0xac, - 0x99, 0x57, 0x49, 0x90, 0x21, 0x83, 0xe7, 0xdb, 0x52, 0xdc, 0x0a, 0xd3, 0x36, 0xee, 0x74, 0xb4, - 0x4d, 0xec, 0xae, 0x30, 0xb1, 0x57, 0xf9, 0x56, 0xc8, 0xb6, 0x08, 0xa6, 0x74, 0x70, 0xb8, 0x9a, - 0xab, 0x99, 0x63, 0x60, 0x38, 0xb4, 0xbc, 0x91, 0x80, 0xc0, 0xad, 0xd2, 0x3f, 0xce, 0xdc, 0x0d, - 0x59, 0x0a, 0xff, 0x04, 0x64, 0xe7, 0x95, 0xb9, 0xb5, 0xc5, 0xfc, 0x11, 0xe7, 0xd1, 0xe5, 0x6f, - 0x02, 0xb2, 0x0b, 0x85, 0x5a, 0x61, 0x39, 0x9f, 0x76, 0xea, 0x51, 0x2a, 0x2f, 0x54, 0xf2, 0x92, - 0x93, 0xb8, 0x5a, 0x28, 0x97, 0x8a, 0xf9, 0x8c, 0x3c, 0x09, 0x63, 0xe7, 0x0a, 0x6a, 0xb9, 0x54, - 0x5e, 0xcc, 0x67, 0xd1, 0xb7, 0x82, 0xf8, 0xdd, 0xc6, 0xe3, 0x77, 0x4d, 0x18, 0x4f, 0xbd, 0x20, - 0x7b, 0xb5, 0x07, 0xd9, 0x1d, 0x1c, 0x64, 0x3f, 0x25, 0x42, 0x64, 0x04, 0xee, 0x4c, 0x39, 0x18, - 0x5b, 0xb5, 0xcc, 0x06, 0xee, 0x74, 0xd0, 0x6f, 0xa4, 0x21, 0x57, 0xd4, 0x8c, 0x06, 0x6e, 0xa1, - 0xcb, 0x7c, 0xa8, 0xa8, 0xab, 0x68, 0xca, 0x3b, 0x2d, 0xf6, 0x4f, 0x29, 0xd1, 0xde, 0x8f, 0xd1, - 0x9d, 0xa5, 0x34, 0x43, 0xe4, 0x23, 0xd6, 0xcb, 0x45, 0x92, 0x1a, 0xc1, 0xd5, 0x38, 0x69, 0x98, - 0x60, 0xab, 0x01, 0xeb, 0x38, 0x38, 0x0f, 0xff, 0x61, 0x4a, 0x74, 0x72, 0xe8, 0xd6, 0xc0, 0x23, - 0x13, 0x22, 0x0f, 0xb1, 0x89, 0x60, 0x3f, 0x6a, 0x23, 0xd8, 0x3c, 0x4c, 0xc3, 0xe4, 0x9a, 0xd1, - 0xe9, 0x25, 0x14, 0xf1, 0x38, 0xfa, 0x6e, 0x35, 0x02, 0x84, 0x0e, 0x14, 0x47, 0xbf, 0x3f, 0xbd, - 0xe4, 0x05, 0xf3, 0xc3, 0x14, 0x1c, 0x5f, 0xc4, 0x06, 0xb6, 0xf4, 0x06, 0xad, 0x81, 0x2b, 0x89, - 0x3b, 0x78, 0x49, 0x3c, 0x9e, 0xe3, 0xbc, 0xd7, 0x1f, 0xbc, 0x04, 0x5e, 0xe7, 0x49, 0xe0, 0x2e, - 0x4e, 0x02, 0x37, 0x08, 0xd2, 0x19, 0xc1, 0x7d, 0xe8, 0x13, 0x30, 0x55, 0x36, 0x6d, 0x7d, 0x43, - 0x6f, 0x50, 0x1f, 0xb4, 0xdf, 0x92, 0x20, 0xb3, 0xac, 0x77, 0x6c, 0x54, 0xf0, 0xbb, 0x93, 0xab, - 0x60, 0x52, 0x37, 0x1a, 0xad, 0x9d, 0x26, 0x56, 0xb1, 0x46, 0xfb, 0x95, 0x71, 0x35, 0x98, 0xe4, - 0x6f, 0xed, 0x3b, 0x6c, 0x49, 0xee, 0xd6, 0xfe, 0x67, 0x85, 0x97, 0x61, 0x82, 0x2c, 0x90, 0x80, - 0x94, 0x21, 0x76, 0x57, 0x01, 0xa6, 0x8d, 0x40, 0x56, 0xd7, 0x60, 0xef, 0xbe, 0x50, 0x20, 0x48, - 0x4e, 0xe5, 0xff, 0x40, 0x1f, 0x14, 0x6a, 0xac, 0xfd, 0x18, 0x8a, 0x87, 0xcc, 0xc2, 0x00, 0x93, - 0x64, 0x19, 0x66, 0x4a, 0xe5, 0x9a, 0xa2, 0x96, 0x0b, 0xcb, 0x2c, 0x8b, 0x84, 0xfe, 0x2d, 0x0d, - 0x59, 0x15, 0xb7, 0x5b, 0x7b, 0xc1, 0x88, 0xd1, 0xcc, 0x51, 0x3c, 0xe5, 0x39, 0x8a, 0xcb, 0x0b, - 0x00, 0x5a, 0xc3, 0x29, 0x98, 0x5c, 0xa9, 0x95, 0xee, 0x19, 0xc7, 0x94, 0xab, 0x60, 0xc1, 0xcb, - 0xad, 0x06, 0xfe, 0x44, 0x2f, 0x11, 0xde, 0x39, 0xe2, 0xa8, 0x11, 0x0e, 0x43, 0xfa, 0x84, 0x0f, - 0x09, 0x6d, 0xf6, 0xf4, 0x25, 0x77, 0x38, 0xe2, 0xff, 0x5a, 0x1a, 0x32, 0x35, 0xa7, 0xb7, 0x0c, - 0x74, 0x9c, 0x7f, 0x3a, 0x98, 0x8e, 0x3b, 0x64, 0x42, 0x74, 0xfc, 0x4e, 0x98, 0x0a, 0x6a, 0x2c, - 0x73, 0x95, 0x88, 0x54, 0x71, 0xee, 0x87, 0x41, 0x34, 0xbc, 0x07, 0x3b, 0x87, 0x23, 0xe2, 0x4f, - 0x3f, 0x01, 0x60, 0x05, 0x6f, 0xaf, 0x63, 0xab, 0xb3, 0xa5, 0xb7, 0xd1, 0xdf, 0x4b, 0x30, 0xb1, - 0x88, 0xed, 0xaa, 0xad, 0xd9, 0x3b, 0x9d, 0xae, 0xed, 0x4e, 0xc3, 0x2c, 0x6a, 0x8d, 0x2d, 0xcc, - 0xba, 0x23, 0xf7, 0x15, 0xbd, 0x57, 0x12, 0xf5, 0x27, 0xf2, 0xcb, 0x99, 0xf5, 0xca, 0x08, 0xc1, - 0xe4, 0x89, 0x90, 0x69, 0x6a, 0xb6, 0xc6, 0xb0, 0xb8, 0xac, 0x0b, 0x0b, 0x9f, 0x90, 0x4a, 0xb2, - 0xa1, 0xdf, 0x4d, 0x8b, 0x38, 0x14, 0x09, 0x94, 0x1f, 0x0f, 0x84, 0x0f, 0xa6, 0x06, 0x40, 0xe1, - 0x18, 0x4c, 0x97, 0x2b, 0xb5, 0xfa, 0x72, 0x65, 0x71, 0x51, 0x71, 0x52, 0xf3, 0x92, 0x7c, 0x12, - 0xe4, 0xd5, 0xc2, 0xbd, 0x2b, 0x4a, 0xb9, 0x56, 0x2f, 0x57, 0xe6, 0x15, 0xf6, 0x67, 0x46, 0x3e, - 0x0a, 0x93, 0xc5, 0x42, 0x71, 0xc9, 0x4d, 0xc8, 0xca, 0xa7, 0xe0, 0xf8, 0x8a, 0xb2, 0x32, 0xa7, - 0xa8, 0xd5, 0xa5, 0xd2, 0x6a, 0xdd, 0x21, 0xb3, 0x50, 0x59, 0x2b, 0xcf, 0xe7, 0x73, 0x32, 0x82, - 0x93, 0x81, 0x2f, 0xe7, 0xd4, 0x4a, 0x79, 0xb1, 0x5e, 0xad, 0x15, 0x6a, 0x4a, 0x7e, 0x4c, 0xbe, - 0x04, 0x8e, 0x16, 0x0b, 0x65, 0x92, 0xbd, 0x58, 0x29, 0x97, 0x95, 0x62, 0x2d, 0x3f, 0x8e, 0xfe, - 0x3d, 0x03, 0x93, 0xa5, 0x4e, 0x59, 0xdb, 0xc6, 0x67, 0xb5, 0x96, 0xde, 0x44, 0x2f, 0x0e, 0xcc, - 0x3c, 0xae, 0x81, 0x69, 0x8b, 0x3e, 0xe2, 0x66, 0x4d, 0xc7, 0x14, 0xcd, 0x69, 0x95, 0x4f, 0x74, - 0xe6, 0xe4, 0x06, 0x21, 0xe0, 0xce, 0xc9, 0xe9, 0x9b, 0x3c, 0x07, 0x40, 0x9f, 0x6a, 0xfe, 0xe5, - 0xae, 0x67, 0xba, 0x5b, 0x93, 0xb6, 0x8d, 0x3b, 0xd8, 0xda, 0xd5, 0x1b, 0xd8, 0xcd, 0xa9, 0x06, - 0xfe, 0x42, 0x5f, 0x97, 0x44, 0xf7, 0x17, 0x03, 0xa0, 0x06, 0xaa, 0x13, 0xd2, 0x1b, 0xfe, 0xb2, - 0x24, 0xb2, 0x3b, 0x28, 0x44, 0x32, 0x9e, 0xa6, 0xbc, 0x3c, 0x3d, 0xd8, 0xb2, 0x6d, 0xad, 0x52, - 0xa9, 0x57, 0x97, 0x2a, 0x6a, 0x2d, 0x2f, 0xc9, 0x53, 0x30, 0xee, 0xbc, 0x2e, 0x57, 0xca, 0x8b, - 0xf9, 0x8c, 0x7c, 0x02, 0x8e, 0x2d, 0x15, 0xaa, 0xf5, 0x52, 0xf9, 0x6c, 0x61, 0xb9, 0x34, 0x5f, - 0x2f, 0x2e, 0x15, 0xd4, 0x6a, 0x3e, 0x2b, 0x5f, 0x06, 0x27, 0x6a, 0x25, 0x45, 0xad, 0x2f, 0x28, - 0x85, 0xda, 0x9a, 0xaa, 0x54, 0xeb, 0xe5, 0x4a, 0xbd, 0x5c, 0x58, 0x51, 0xf2, 0x39, 0xa7, 0xf9, - 0x93, 0x4f, 0xbe, 0xda, 0x8c, 0xed, 0x57, 0xc6, 0xf1, 0x10, 0x65, 0x9c, 0xe8, 0x56, 0x46, 0x08, - 0xaa, 0x95, 0xaa, 0x54, 0x15, 0xf5, 0xac, 0x92, 0x9f, 0xec, 0xa5, 0x6b, 0x53, 0xf2, 0x71, 0xc8, - 0x3b, 0x3c, 0xd4, 0x4b, 0x55, 0x37, 0xe7, 0x7c, 0x7e, 0x1a, 0x7d, 0x2a, 0x07, 0x27, 0x55, 0xbc, - 0xa9, 0x77, 0x6c, 0x6c, 0xad, 0x6a, 0x7b, 0xdb, 0xd8, 0xb0, 0xdd, 0x4e, 0xfe, 0x7f, 0xc5, 0x56, - 0xc6, 0x15, 0x98, 0x6e, 0x53, 0x1a, 0x2b, 0xd8, 0xde, 0x32, 0x9b, 0x6c, 0x14, 0x7e, 0x7c, 0x68, - 0xcf, 0x31, 0xbb, 0x1a, 0xcc, 0xae, 0xf2, 0x7f, 0x07, 0x74, 0x5b, 0x8a, 0xd0, 0xed, 0xcc, 0x20, - 0xba, 0x2d, 0x5f, 0x01, 0x13, 0x3b, 0x1d, 0x6c, 0x29, 0xdb, 0x9a, 0xde, 0x72, 0x2f, 0xe7, 0xf4, - 0x12, 0xd0, 0xbb, 0x32, 0xa2, 0x27, 0x56, 0x02, 0x75, 0xe9, 0x2d, 0xc6, 0x90, 0xbe, 0xf5, 0x34, - 0x00, 0xab, 0xec, 0x9a, 0xd5, 0x62, 0xca, 0x1a, 0x48, 0x71, 0xf8, 0x5b, 0xd7, 0x5b, 0x2d, 0xdd, - 0xd8, 0xf4, 0xf6, 0xfd, 0xfd, 0x04, 0xf4, 0x72, 0x49, 0xe4, 0x04, 0x4b, 0x5c, 0xde, 0xe2, 0xb5, - 0xa6, 0x97, 0xa4, 0x47, 0xdc, 0xef, 0xee, 0x6f, 0x3a, 0x39, 0x39, 0x0f, 0x53, 0x24, 0x8d, 0xb5, - 0xc0, 0xfc, 0x98, 0xd3, 0x07, 0xbb, 0xe4, 0x56, 0x94, 0xda, 0x52, 0x65, 0xde, 0xfb, 0x36, 0xee, - 0x90, 0x74, 0x98, 0x29, 0x94, 0xef, 0x25, 0xad, 0x71, 0x42, 0x7e, 0x0c, 0x5c, 0x16, 0xe8, 0xb0, - 0x0b, 0xcb, 0xaa, 0x52, 0x98, 0xbf, 0xb7, 0xae, 0x3c, 0xab, 0x54, 0xad, 0x55, 0xf9, 0xc6, 0xe5, - 0xb6, 0xa3, 0x49, 0x87, 0x5f, 0x65, 0xa5, 0x50, 0x5a, 0x66, 0xfd, 0xfb, 0x42, 0x45, 0x5d, 0x29, - 0xd4, 0xf2, 0x53, 0xe8, 0x55, 0x12, 0xe4, 0x17, 0xb1, 0xbd, 0x6a, 0x5a, 0xb6, 0xd6, 0x5a, 0xd6, - 0x8d, 0xf3, 0x6b, 0x56, 0x8b, 0x9b, 0x6c, 0x0a, 0x87, 0xe9, 0xe0, 0x87, 0x48, 0x8e, 0x60, 0xf8, - 0x8e, 0x78, 0x9b, 0x64, 0xf3, 0x95, 0xc9, 0x4f, 0x40, 0xcf, 0x4d, 0x8b, 0x2c, 0x77, 0x8b, 0x97, - 0x1a, 0x4f, 0x4f, 0x9e, 0x37, 0xea, 0xf1, 0xb9, 0x07, 0x6a, 0x39, 0xf4, 0xc2, 0x0c, 0x8c, 0x2f, - 0xe8, 0x86, 0xd6, 0xd2, 0x9f, 0xc3, 0xc5, 0x2f, 0xf5, 0xfb, 0x98, 0x54, 0x44, 0x1f, 0x93, 0x1e, - 0x68, 0xfc, 0xfc, 0x35, 0x49, 0x74, 0x79, 0x21, 0x20, 0x7b, 0x97, 0xc9, 0x90, 0xc1, 0xf3, 0xa3, - 0x69, 0x91, 0xe5, 0x85, 0xfe, 0xf4, 0xe2, 0x61, 0xf8, 0x99, 0x1f, 0x0f, 0x1b, 0xab, 0xab, 0x7d, - 0x8f, 0xf7, 0x52, 0x85, 0x09, 0xf4, 0x97, 0x12, 0xa0, 0x45, 0x6c, 0x9f, 0xc5, 0x96, 0x37, 0x15, - 0x20, 0xbd, 0x3e, 0xb3, 0xb7, 0x03, 0x4d, 0xf6, 0x6d, 0x41, 0x00, 0xcf, 0xf1, 0x00, 0x16, 0x22, - 0x1a, 0x4f, 0x08, 0xe9, 0x90, 0xc6, 0x5b, 0x82, 0x5c, 0x87, 0x7c, 0x67, 0x6a, 0xf6, 0xa4, 0xf0, - 0xe1, 0x92, 0x10, 0x0b, 0x52, 0xa7, 0x84, 0x55, 0x46, 0x00, 0x3d, 0xe2, 0x4d, 0x82, 0x7e, 0x86, - 0xd3, 0x8e, 0x85, 0x03, 0x33, 0x1b, 0x4f, 0x5f, 0xac, 0x64, 0xd5, 0xa5, 0x97, 0x7d, 0x83, 0x3e, - 0x9a, 0x85, 0xe3, 0xbd, 0xaa, 0x83, 0x7e, 0x2f, 0xc5, 0xed, 0xb0, 0x63, 0x32, 0xe4, 0xa7, 0xd8, - 0x06, 0xa2, 0xf3, 0x22, 0x3f, 0x19, 0x4e, 0x78, 0xcb, 0x70, 0x35, 0xb3, 0x8c, 0x2f, 0x74, 0x5a, - 0xd8, 0xb6, 0xb1, 0x45, 0xaa, 0x36, 0xae, 0xf6, 0xfe, 0x28, 0x3f, 0x0d, 0x2e, 0xd5, 0x8d, 0x8e, - 0xde, 0xc4, 0x56, 0x4d, 0x6f, 0x77, 0x0a, 0x46, 0xb3, 0xb6, 0x63, 0x9b, 0x96, 0xae, 0xb1, 0xab, - 0x24, 0xc7, 0xd5, 0xb0, 0xcf, 0xf2, 0xf5, 0x90, 0xd7, 0x3b, 0x15, 0x63, 0xdd, 0xd4, 0xac, 0xa6, - 0x6e, 0x6c, 0x2e, 0xeb, 0x1d, 0x9b, 0x79, 0x00, 0xef, 0x4b, 0x47, 0xff, 0x20, 0x89, 0x1e, 0xa6, - 0xeb, 0x03, 0x6b, 0x48, 0x87, 0xf2, 0x22, 0x49, 0xe4, 0x78, 0x5c, 0x3c, 0xda, 0xf1, 0x94, 0xe5, - 0x05, 0xa3, 0x36, 0x24, 0x7a, 0x8f, 0xe0, 0xa4, 0x6b, 0xa1, 0xe9, 0xae, 0x21, 0x70, 0x56, 0x51, - 0x4b, 0x0b, 0x25, 0xc5, 0x31, 0x2b, 0x4e, 0xc0, 0x31, 0xff, 0xdb, 0xfc, 0xbd, 0xf5, 0xaa, 0x52, - 0xae, 0xe5, 0xc7, 0x9d, 0x7e, 0x8a, 0x26, 0x2f, 0x14, 0x4a, 0xcb, 0xca, 0x7c, 0xbd, 0x56, 0x71, - 0xbe, 0xcc, 0x0f, 0x66, 0x5a, 0xa0, 0xfb, 0x33, 0x70, 0x94, 0xc8, 0x76, 0x8f, 0x48, 0xd5, 0x11, - 0x4a, 0x97, 0xaf, 0xad, 0x07, 0xd0, 0x04, 0x15, 0x2f, 0xfa, 0xbc, 0xf0, 0x4d, 0x99, 0x01, 0x08, - 0xbb, 0xca, 0x08, 0xd1, 0x8c, 0x1f, 0xa6, 0x45, 0x22, 0x54, 0x08, 0x93, 0x8d, 0xa7, 0x14, 0xff, - 0x32, 0xea, 0x11, 0x27, 0x1c, 0x7c, 0x62, 0x65, 0x16, 0xc9, 0xcf, 0xcf, 0x5a, 0x2d, 0xa9, 0x44, - 0x1d, 0x66, 0x00, 0x48, 0x0a, 0xd1, 0x20, 0xaa, 0x07, 0x3d, 0xc7, 0xab, 0x30, 0x3d, 0x28, 0x14, - 0x6b, 0xa5, 0xb3, 0x4a, 0x98, 0x1e, 0x7c, 0x4e, 0x82, 0xf1, 0x45, 0x6c, 0x3b, 0x73, 0xaa, 0x0e, - 0x7a, 0xba, 0xc0, 0xfa, 0x8f, 0x63, 0xc6, 0xb4, 0xcc, 0x86, 0xd6, 0xf2, 0x96, 0x01, 0xe8, 0x1b, - 0x7a, 0xfe, 0x20, 0x26, 0x88, 0x5b, 0x74, 0xc8, 0x78, 0xf5, 0x54, 0xc8, 0xda, 0xce, 0x67, 0xb6, - 0x0c, 0xfd, 0xd8, 0xd0, 0xe1, 0xca, 0x21, 0x32, 0xaf, 0xd9, 0x9a, 0x4a, 0xf3, 0x07, 0x46, 0x27, - 0x41, 0xdb, 0x25, 0x84, 0x91, 0x1f, 0x47, 0xfb, 0xf3, 0x5b, 0x12, 0x9c, 0xa0, 0xed, 0xa3, 0xd0, - 0x6e, 0x57, 0x6d, 0xd3, 0xc2, 0x2a, 0x6e, 0x60, 0xbd, 0x6d, 0x77, 0xad, 0xef, 0x59, 0x34, 0xd5, - 0xdd, 0x6c, 0x66, 0xaf, 0xe8, 0xcd, 0x92, 0x68, 0x0c, 0xe6, 0x7d, 0xed, 0xb1, 0xab, 0xbc, 0x90, - 0xc6, 0xfe, 0xc9, 0xb4, 0x48, 0x54, 0xe5, 0x98, 0xc4, 0xe3, 0x01, 0xf5, 0xb1, 0x43, 0x00, 0xca, - 0x5d, 0xb9, 0x51, 0x95, 0xa2, 0x52, 0x5a, 0x75, 0x06, 0x81, 0x2b, 0xe1, 0xf2, 0xd5, 0x35, 0xb5, - 0xb8, 0x54, 0xa8, 0x2a, 0x75, 0x55, 0x59, 0x2c, 0x55, 0x6b, 0xcc, 0x29, 0x8b, 0xfe, 0x35, 0x26, - 0x5f, 0x01, 0xa7, 0xaa, 0x6b, 0x73, 0xd5, 0xa2, 0x5a, 0x5a, 0x25, 0xe9, 0xaa, 0x52, 0x56, 0xce, - 0xb1, 0xaf, 0xe3, 0xe8, 0xc3, 0x79, 0x98, 0x74, 0x26, 0x00, 0x55, 0x3a, 0x2f, 0x40, 0xdf, 0xcd, - 0xc0, 0xa4, 0x8a, 0x3b, 0x66, 0x6b, 0x97, 0xcc, 0x11, 0x46, 0x35, 0xf5, 0xf8, 0x81, 0x24, 0x7a, - 0x7e, 0x3b, 0xc0, 0xec, 0x6c, 0x80, 0xd1, 0xf0, 0x89, 0xa6, 0xb6, 0xab, 0xe9, 0x2d, 0x6d, 0x9d, - 0x75, 0x35, 0xe3, 0xaa, 0x9f, 0x20, 0xcf, 0x82, 0x6c, 0x5e, 0x30, 0xb0, 0x55, 0x6d, 0x5c, 0x50, - 0xec, 0xad, 0x42, 0xb3, 0x69, 0xe1, 0x4e, 0x87, 0xad, 0x5e, 0xf4, 0xf8, 0x22, 0x5f, 0x07, 0x47, - 0x49, 0x6a, 0x20, 0x33, 0x75, 0x90, 0xe9, 0x4e, 0xf6, 0x72, 0x16, 0x8c, 0x3d, 0x37, 0x67, 0x36, - 0x90, 0xd3, 0x4f, 0x0e, 0x1e, 0x97, 0xc8, 0xf1, 0xa7, 0x74, 0xae, 0x82, 0x49, 0x43, 0xdb, 0xc6, - 0xca, 0xc5, 0xb6, 0x6e, 0xe1, 0x0e, 0x71, 0x8c, 0x91, 0xd4, 0x60, 0x12, 0xfa, 0xa8, 0xd0, 0x79, - 0x73, 0x31, 0x89, 0xc5, 0xd3, 0xfd, 0xc5, 0x01, 0x54, 0xbf, 0x47, 0x3f, 0x23, 0xa1, 0x0f, 0x4b, - 0x30, 0xc5, 0x98, 0x2a, 0x18, 0x7b, 0xa5, 0x26, 0xba, 0x92, 0x33, 0x7e, 0x35, 0x27, 0xcd, 0x35, - 0x7e, 0xc9, 0x0b, 0xfa, 0x15, 0x49, 0xd4, 0xdd, 0xb9, 0x47, 0xc5, 0x49, 0x19, 0xe1, 0x8e, 0xa3, - 0x1b, 0xe6, 0x0e, 0x73, 0x54, 0x1d, 0x57, 0xe9, 0x4b, 0x92, 0x8b, 0x7a, 0xe8, 0x0f, 0x85, 0x9c, - 0xa9, 0x05, 0xab, 0x71, 0x48, 0x00, 0x7e, 0x5a, 0x82, 0x19, 0xc6, 0x55, 0x95, 0x9d, 0xf3, 0x11, - 0x3a, 0xf0, 0xf6, 0x32, 0x61, 0x43, 0xb0, 0x47, 0xfd, 0x59, 0x49, 0x8f, 0x1a, 0x20, 0x3f, 0x2e, - 0x14, 0x1c, 0x4d, 0xb8, 0x22, 0x87, 0x04, 0xe5, 0xbb, 0x33, 0x30, 0xb9, 0xd6, 0xc1, 0x16, 0xf3, - 0xdb, 0x47, 0x0f, 0x66, 0x40, 0x5a, 0xc4, 0xdc, 0x46, 0xea, 0x4b, 0x85, 0x3d, 0x7c, 0x83, 0x95, - 0x0d, 0x10, 0x75, 0x6c, 0xa4, 0x10, 0xd8, 0xae, 0x85, 0x19, 0x2a, 0xd2, 0x82, 0x6d, 0x3b, 0x46, - 0xa2, 0xeb, 0x4d, 0xdb, 0x95, 0x3a, 0x8c, 0xad, 0x22, 0x52, 0x96, 0x93, 0xa5, 0xe8, 0xf0, 0xb4, - 0x8c, 0x37, 0xe8, 0x7c, 0x36, 0xa3, 0x76, 0xa5, 0xca, 0x37, 0xc1, 0x25, 0x66, 0x1b, 0xd3, 0xf3, - 0x2b, 0x81, 0xcc, 0x59, 0x92, 0xb9, 0xd7, 0x27, 0xf4, 0x5d, 0x21, 0x5f, 0x5d, 0x71, 0xe9, 0xc4, - 0xd3, 0x85, 0xf6, 0x70, 0x4c, 0x92, 0xe3, 0x90, 0x77, 0x72, 0x90, 0xfd, 0x17, 0x55, 0xa9, 0x56, - 0x96, 0xcf, 0x2a, 0xbd, 0x97, 0x31, 0xb2, 0xe8, 0x05, 0x12, 0x4c, 0xcc, 0x59, 0xa6, 0xd6, 0x6c, - 0x68, 0x1d, 0x1b, 0x3d, 0x92, 0x86, 0xa9, 0x55, 0x6d, 0xaf, 0x65, 0x6a, 0x4d, 0xe2, 0xdf, 0xdf, - 0xd5, 0x17, 0xb4, 0xe9, 0x27, 0xb7, 0x2f, 0x60, 0xaf, 0xfc, 0xc1, 0x40, 0xef, 0xe8, 0x5e, 0x4a, - 0xe4, 0x42, 0x4d, 0x6f, 0x9b, 0x2f, 0xdd, 0x2b, 0x58, 0xa9, 0xcb, 0xd7, 0x6c, 0x90, 0xa7, 0x10, - 0x8b, 0xf2, 0xc3, 0x62, 0xe1, 0x47, 0x45, 0x48, 0x1e, 0xce, 0xae, 0xfc, 0x0b, 0xc7, 0x21, 0x37, - 0x8f, 0x89, 0x15, 0xf7, 0xdf, 0xd3, 0x30, 0x56, 0xc5, 0x36, 0xb1, 0xe0, 0x6e, 0xe5, 0x3c, 0x85, - 0x9b, 0x24, 0x83, 0xef, 0xc4, 0xee, 0xbe, 0x3b, 0x93, 0xf5, 0xc0, 0x79, 0x6b, 0xf2, 0x1c, 0xc3, - 0x23, 0x91, 0x96, 0x3b, 0xcb, 0xca, 0x3c, 0x90, 0x47, 0x62, 0x24, 0xa9, 0xe4, 0x7d, 0xad, 0xde, - 0x9b, 0x66, 0xae, 0x55, 0x81, 0x5e, 0xef, 0xf5, 0x41, 0xfd, 0x8c, 0xf4, 0x36, 0x63, 0xcc, 0x47, - 0x38, 0x47, 0xdd, 0x02, 0x63, 0x54, 0xe6, 0xee, 0x7c, 0xb4, 0xdb, 0x4f, 0x81, 0x92, 0x20, 0x67, - 0xaf, 0xdd, 0x9c, 0x82, 0x2e, 0x6a, 0xe1, 0x85, 0x8f, 0x24, 0x06, 0xc1, 0x54, 0x19, 0xdb, 0x17, - 0x4c, 0xeb, 0x7c, 0xd5, 0xd6, 0x6c, 0x8c, 0xfe, 0x25, 0x0d, 0x52, 0x15, 0xdb, 0xc1, 0xe8, 0x27, - 0x65, 0x38, 0x46, 0x2b, 0xc4, 0x32, 0x92, 0xfe, 0x9b, 0x56, 0xe4, 0xaa, 0x9e, 0x42, 0x08, 0xe4, - 0x53, 0xf7, 0xff, 0x8a, 0x7e, 0xa3, 0x67, 0xd0, 0xa7, 0x74, 0x8f, 0x49, 0x03, 0x93, 0x4c, 0x90, - 0x41, 0x47, 0xc1, 0x42, 0xf4, 0xf4, 0x23, 0x42, 0x66, 0xb5, 0x18, 0xcd, 0xc3, 0xe9, 0x0a, 0x5e, - 0x7b, 0x19, 0x64, 0x8a, 0x5b, 0x9a, 0x8d, 0xde, 0x23, 0x01, 0x14, 0x9a, 0xcd, 0x15, 0xea, 0x03, - 0x1e, 0x74, 0x48, 0x3b, 0x03, 0x53, 0x8d, 0x2d, 0xcd, 0xbf, 0xdb, 0x84, 0xf6, 0x07, 0x5c, 0x9a, - 0xfc, 0x64, 0xdf, 0x99, 0x9c, 0x4a, 0x15, 0x75, 0xc1, 0xe4, 0x94, 0xc1, 0x68, 0x7b, 0x8e, 0xe6, - 0x7c, 0x28, 0xcc, 0xc8, 0x23, 0x74, 0xce, 0xef, 0xb3, 0x3e, 0x7b, 0xe1, 0x73, 0x38, 0x46, 0xda, - 0x3b, 0x60, 0xe3, 0x27, 0xc4, 0x3c, 0xe9, 0x2d, 0x16, 0xd0, 0x23, 0x9a, 0xaf, 0x91, 0x84, 0xae, - 0x95, 0x95, 0xa6, 0xee, 0x8a, 0x96, 0x05, 0xcc, 0x42, 0x2f, 0x49, 0xc5, 0x83, 0x2f, 0x5a, 0x70, - 0x77, 0xc1, 0x34, 0x6e, 0xea, 0x36, 0x76, 0x6b, 0xc9, 0x04, 0x18, 0x05, 0x31, 0xff, 0x03, 0x7a, - 0x9e, 0x70, 0xd0, 0x35, 0x22, 0xd0, 0xfd, 0x35, 0x0a, 0x69, 0x7f, 0x62, 0x61, 0xd4, 0xc4, 0x68, - 0x26, 0x0f, 0xd6, 0xf3, 0x25, 0x38, 0x51, 0x33, 0x37, 0x37, 0x5b, 0xd8, 0x15, 0x13, 0xa6, 0xde, - 0x99, 0x48, 0x1b, 0x26, 0x5c, 0x64, 0x27, 0xc8, 0xbc, 0x4f, 0xf7, 0x8e, 0x92, 0x39, 0x2f, 0xfc, - 0x89, 0xa9, 0xc8, 0x59, 0x14, 0x11, 0x57, 0x4f, 0x3e, 0x43, 0x50, 0x10, 0x0b, 0xf8, 0x2c, 0x4c, - 0x36, 0x79, 0x20, 0xbe, 0x9c, 0x86, 0x69, 0x7a, 0x73, 0xa5, 0xab, 0xa0, 0xf7, 0x0c, 0x11, 0x00, - 0xf4, 0x48, 0x4a, 0xd4, 0xcf, 0x96, 0xc8, 0x84, 0xe3, 0x24, 0x44, 0xc4, 0x62, 0x41, 0x55, 0xfa, - 0x92, 0x1b, 0x41, 0xdc, 0x2c, 0x09, 0x26, 0x17, 0xb1, 0xdb, 0xd2, 0x3a, 0xc1, 0x6b, 0xc0, 0x44, - 0x04, 0x7b, 0x0d, 0x4c, 0xaf, 0xe3, 0x0d, 0xd3, 0xc2, 0x15, 0xee, 0x98, 0x24, 0x9f, 0x18, 0x12, - 0x79, 0x8e, 0x0b, 0x71, 0x36, 0xc7, 0x8b, 0xfd, 0x86, 0xfd, 0x72, 0x0a, 0x70, 0x19, 0x32, 0x9c, - 0x3c, 0x05, 0xc6, 0x19, 0xa8, 0xae, 0x05, 0x16, 0xd5, 0xe5, 0x79, 0x79, 0xd1, 0x9b, 0x3c, 0xb0, - 0x14, 0x0e, 0xac, 0x27, 0xc5, 0x61, 0x62, 0x24, 0x57, 0xb7, 0xe7, 0x03, 0xe5, 0xcf, 0xed, 0x95, - 0x9a, 0x1d, 0xb4, 0x12, 0x0f, 0xaf, 0xd3, 0x00, 0x9e, 0xde, 0xbb, 0x11, 0x2b, 0x02, 0x29, 0x7c, - 0x50, 0xfa, 0xc8, 0x33, 0x78, 0xdd, 0xe2, 0x20, 0xec, 0x0c, 0x19, 0x18, 0xb1, 0xb3, 0x7b, 0x22, - 0x9c, 0x24, 0x8f, 0xce, 0x67, 0x25, 0x38, 0xe1, 0x1d, 0x2d, 0x5a, 0xd6, 0x3a, 0x7e, 0x93, 0x2a, - 0xc6, 0x83, 0x88, 0x3b, 0xcb, 0xe1, 0x35, 0x96, 0xef, 0xc5, 0x1b, 0x0e, 0x7a, 0x72, 0x32, 0x5c, - 0x74, 0xe4, 0x1b, 0xe0, 0x98, 0xb1, 0xb3, 0xed, 0x49, 0x9d, 0xb4, 0x78, 0xd6, 0xc2, 0xf7, 0x7f, - 0x88, 0x33, 0xe8, 0x88, 0x30, 0x3f, 0x92, 0xe9, 0x22, 0x77, 0x5a, 0xeb, 0x89, 0xb1, 0x60, 0x44, - 0xdf, 0x4f, 0xc5, 0xea, 0xdd, 0xfa, 0x1f, 0xe7, 0x8a, 0xd1, 0x4b, 0x1d, 0xe2, 0x59, 0xae, 0x33, - 0x63, 0x90, 0x55, 0xb6, 0xdb, 0xf6, 0xde, 0x99, 0xc7, 0xc1, 0x74, 0xd5, 0xb6, 0xb0, 0xb6, 0x1d, - 0x58, 0xf4, 0xb7, 0xcd, 0xf3, 0xd8, 0x70, 0x17, 0xfd, 0xc9, 0xcb, 0x6d, 0xb7, 0xc2, 0x98, 0x61, - 0xd6, 0xb5, 0x1d, 0x7b, 0x4b, 0xbe, 0x72, 0xdf, 0x69, 0x79, 0x06, 0x7e, 0x85, 0x85, 0x27, 0xfa, - 0xfa, 0xed, 0x64, 0xd9, 0x37, 0x67, 0x98, 0x85, 0x1d, 0x7b, 0x6b, 0xee, 0x8a, 0x4f, 0xff, 0xdd, - 0xe9, 0xd4, 0xe7, 0xfe, 0xee, 0x74, 0xea, 0x6b, 0x7f, 0x77, 0x3a, 0xf5, 0xb2, 0x6f, 0x9c, 0x3e, - 0xf2, 0xb9, 0x6f, 0x9c, 0x3e, 0xf2, 0xe5, 0x6f, 0x9c, 0x3e, 0xf2, 0x33, 0xe9, 0xf6, 0xfa, 0x7a, - 0x8e, 0x50, 0xb9, 0xe5, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x90, 0x5d, 0xb3, 0x98, 0x45, 0xfe, - 0x01, 0x00, + 0xb3, 0x6d, 0xb6, 0x8d, 0x71, 0x6c, 0x23, 0x1b, 0x9b, 0x00, 0x36, 0x36, 0xf6, 0x68, 0xd4, 0x92, + 0xc6, 0x96, 0x66, 0x44, 0xcf, 0x68, 0x6f, 0x9c, 0x1c, 0xee, 0xa4, 0x35, 0x53, 0x92, 0xda, 0x7b, + 0xd4, 0x3d, 0xe9, 0x69, 0x69, 0x6f, 0x71, 0xbf, 0x73, 0x4f, 0x08, 0x31, 0x8f, 0x10, 0x0e, 0x10, + 0x42, 0x12, 0xc2, 0xdb, 0x60, 0x38, 0x90, 0x00, 0xe1, 0x7d, 0x80, 0x04, 0x08, 0x8f, 0x40, 0x48, + 0x42, 0x08, 0x84, 0xf0, 0x48, 0x7c, 0x03, 0x81, 0x10, 0x72, 0xbf, 0x70, 0xb8, 0xc9, 0x3d, 0xc0, + 0x71, 0x12, 0x6e, 0xee, 0xd7, 0x55, 0xd5, 0x8f, 0x1a, 0x4d, 0xf7, 0x54, 0x8f, 0xa6, 0x47, 0x26, + 0xdc, 0xff, 0xba, 0xab, 0xab, 0x57, 0xad, 0x5a, 0xbf, 0x55, 0x55, 0xab, 0xaa, 0x56, 0xad, 0x82, + 0x53, 0xed, 0xf5, 0x9b, 0xda, 0x96, 0x69, 0x9b, 0x9d, 0x9b, 0x1a, 0xe6, 0xf6, 0xb6, 0x66, 0x34, + 0x3b, 0xb3, 0xe4, 0x5d, 0x1e, 0xd3, 0x8c, 0x3d, 0x7b, 0xaf, 0x8d, 0xd1, 0x35, 0xed, 0xf3, 0x9b, + 0x37, 0xb5, 0xf4, 0xf5, 0x9b, 0xda, 0xeb, 0x37, 0x6d, 0x9b, 0x4d, 0xdc, 0x72, 0x7f, 0x20, 0x2f, + 0x2c, 0x3b, 0xba, 0x2e, 0x2c, 0x57, 0xcb, 0x6c, 0x68, 0xad, 0x8e, 0x6d, 0x5a, 0x98, 0xe5, 0x3c, + 0xe9, 0x17, 0x89, 0x77, 0xb1, 0x61, 0xbb, 0x14, 0xae, 0xd8, 0x34, 0xcd, 0xcd, 0x16, 0xa6, 0xdf, + 0xd6, 0x77, 0x36, 0x6e, 0xea, 0xd8, 0xd6, 0x4e, 0xc3, 0x66, 0x5f, 0xaf, 0xea, 0xfe, 0xda, 0xc4, + 0x9d, 0x86, 0xa5, 0xb7, 0x6d, 0xd3, 0xa2, 0x39, 0xce, 0x3c, 0xf2, 0xc8, 0x18, 0x48, 0x6a, 0xbb, + 0x81, 0x7e, 0x30, 0x06, 0x52, 0xa1, 0xdd, 0x46, 0x9f, 0x4a, 0x03, 0x2c, 0x62, 0xfb, 0x2c, 0xb6, + 0x3a, 0xba, 0x69, 0xa0, 0xa3, 0x30, 0xa6, 0xe2, 0x9f, 0xdf, 0xc1, 0x1d, 0xfb, 0xf6, 0xcc, 0x0b, + 0xbe, 0x2d, 0xa5, 0xd0, 0x43, 0x69, 0x18, 0x57, 0x71, 0xa7, 0x6d, 0x1a, 0x1d, 0x2c, 0xdf, 0x0d, + 0x59, 0x6c, 0x59, 0xa6, 0x75, 0x2a, 0x75, 0x55, 0xea, 0xba, 0xc9, 0x5b, 0xae, 0x9f, 0x65, 0xd5, + 0x9f, 0x55, 0xdb, 0x8d, 0xd9, 0x42, 0xbb, 0x3d, 0xeb, 0x53, 0x9a, 0x75, 0x7f, 0x9a, 0x55, 0x9c, + 0x3f, 0x54, 0xfa, 0xa3, 0x7c, 0x0a, 0xc6, 0x76, 0x69, 0x86, 0x53, 0xe9, 0xab, 0x52, 0xd7, 0x4d, + 0xa8, 0xee, 0xab, 0xf3, 0xa5, 0x89, 0x6d, 0x4d, 0x6f, 0x75, 0x4e, 0x49, 0xf4, 0x0b, 0x7b, 0x45, + 0x0f, 0xa6, 0x20, 0x4b, 0x88, 0xc8, 0x45, 0xc8, 0x34, 0xcc, 0x26, 0x26, 0xc5, 0xcf, 0xdc, 0x72, + 0x93, 0x78, 0xf1, 0xb3, 0x45, 0xb3, 0x89, 0x55, 0xf2, 0xb3, 0x7c, 0x15, 0x4c, 0xba, 0x62, 0xf1, + 0xd9, 0x08, 0x26, 0x9d, 0xb9, 0x05, 0x32, 0x4e, 0x7e, 0x79, 0x1c, 0x32, 0xe5, 0xb5, 0xe5, 0xe5, + 0xfc, 0x11, 0xf9, 0x18, 0x4c, 0xaf, 0x95, 0xef, 0x2d, 0x57, 0xce, 0x95, 0xeb, 0x8a, 0xaa, 0x56, + 0xd4, 0x7c, 0x4a, 0x9e, 0x86, 0x89, 0xb9, 0xc2, 0x7c, 0xbd, 0x54, 0x5e, 0x5d, 0xab, 0xe5, 0xd3, + 0xe8, 0xb5, 0x12, 0xcc, 0x54, 0xb1, 0x3d, 0x8f, 0x77, 0xf5, 0x06, 0xae, 0xda, 0x9a, 0x8d, 0xd1, + 0x4b, 0x52, 0x9e, 0x30, 0xe5, 0x35, 0xa7, 0x50, 0xef, 0x13, 0xab, 0xc0, 0xad, 0xfb, 0x2a, 0xc0, + 0x53, 0x98, 0x65, 0x7f, 0xcf, 0x06, 0xd2, 0xd4, 0x20, 0x9d, 0x33, 0x4f, 0x80, 0xc9, 0xc0, 0x37, + 0x79, 0x06, 0x60, 0xae, 0x50, 0xbc, 0x77, 0x51, 0xad, 0xac, 0x95, 0xe7, 0xf3, 0x47, 0x9c, 0xf7, + 0x85, 0x8a, 0xaa, 0xb0, 0xf7, 0x14, 0x7a, 0x24, 0x15, 0x00, 0x73, 0x9e, 0x07, 0x73, 0xb6, 0x3f, + 0x33, 0x3d, 0x00, 0x45, 0x6f, 0xf6, 0xc0, 0x59, 0xe4, 0xc0, 0xb9, 0x35, 0x1e, 0xb9, 0xe4, 0x01, + 0x7a, 0x20, 0x0d, 0xe3, 0xd5, 0xad, 0x1d, 0xbb, 0x69, 0x5e, 0x30, 0xd0, 0x84, 0x87, 0x0c, 0xfa, + 0x6e, 0x50, 0x26, 0x4f, 0xe7, 0x65, 0x72, 0xdd, 0xfe, 0x4a, 0x30, 0x0a, 0x21, 0xd2, 0x78, 0xbd, + 0x27, 0x8d, 0x02, 0x27, 0x8d, 0x27, 0x88, 0x12, 0x4a, 0x5e, 0x0e, 0x2f, 0xbd, 0x15, 0xb2, 0xd5, + 0xb6, 0xd6, 0xc0, 0xe8, 0x4f, 0x24, 0x98, 0x5a, 0xc6, 0xda, 0x2e, 0x2e, 0xb4, 0xdb, 0x96, 0xb9, + 0x8b, 0x51, 0xd1, 0xd7, 0xd7, 0x53, 0x30, 0xd6, 0x71, 0x32, 0x95, 0x9a, 0xa4, 0x06, 0x13, 0xaa, + 0xfb, 0x2a, 0x9f, 0x06, 0xd0, 0x9b, 0xd8, 0xb0, 0x75, 0x5b, 0xc7, 0x9d, 0x53, 0xe9, 0xab, 0xa4, + 0xeb, 0x26, 0xd4, 0x40, 0x0a, 0xfa, 0x41, 0x5a, 0x54, 0xc7, 0x08, 0x17, 0xb3, 0x41, 0x0e, 0x42, + 0xa4, 0xfa, 0xc6, 0xb4, 0x88, 0x8e, 0xf5, 0x25, 0x17, 0x4f, 0xb6, 0xef, 0x48, 0xc5, 0x17, 0xae, + 0x93, 0xa3, 0x5c, 0xa9, 0x57, 0xd7, 0x8a, 0x4b, 0xf5, 0xea, 0x6a, 0xa1, 0xa8, 0xe4, 0xb1, 0x7c, + 0x1c, 0xf2, 0xe4, 0xb1, 0x5e, 0xaa, 0xd6, 0xe7, 0x95, 0x65, 0xa5, 0xa6, 0xcc, 0xe7, 0x37, 0x64, + 0x19, 0x66, 0x54, 0xe5, 0x19, 0x6b, 0x4a, 0xb5, 0x56, 0x5f, 0x28, 0x94, 0x96, 0x95, 0xf9, 0xfc, + 0xa6, 0xf3, 0xf3, 0x72, 0x69, 0xa5, 0x54, 0xab, 0xab, 0x4a, 0xa1, 0xb8, 0xa4, 0xcc, 0xe7, 0xb7, + 0xe4, 0x4b, 0xe1, 0x92, 0x72, 0xa5, 0x5e, 0x58, 0x5d, 0x55, 0x2b, 0x67, 0x95, 0x3a, 0xfb, 0xa3, + 0x9a, 0xd7, 0x69, 0x41, 0xb5, 0x7a, 0x75, 0xa9, 0xa0, 0x2a, 0x85, 0xb9, 0x65, 0x25, 0x7f, 0x3f, + 0x7a, 0xae, 0x04, 0xd3, 0x2b, 0xda, 0x79, 0x5c, 0xdd, 0xd2, 0x2c, 0xac, 0xad, 0xb7, 0x30, 0xba, + 0x5a, 0x00, 0x4f, 0xf4, 0x27, 0x41, 0xbc, 0x14, 0x1e, 0xaf, 0x9b, 0x7a, 0x08, 0x98, 0x2b, 0x22, + 0x04, 0xb0, 0xff, 0xe5, 0x35, 0x83, 0x25, 0x0e, 0xb0, 0x27, 0xc5, 0xa4, 0x17, 0x0f, 0xb1, 0x5f, + 0x7c, 0x14, 0x20, 0x86, 0x1e, 0x96, 0x60, 0xa6, 0x64, 0xec, 0xea, 0x36, 0x5e, 0xc4, 0x06, 0xb6, + 0x9c, 0x71, 0x40, 0x08, 0x86, 0x87, 0xa4, 0x00, 0x0c, 0x0b, 0x3c, 0x0c, 0x37, 0xf7, 0x10, 0x1b, + 0x5f, 0x46, 0xc8, 0x68, 0x7b, 0x05, 0x4c, 0xe8, 0x24, 0x5f, 0x51, 0x6f, 0x32, 0x89, 0xf9, 0x09, + 0xf2, 0x35, 0x30, 0x4d, 0x5f, 0x16, 0xf4, 0x16, 0xbe, 0x17, 0xef, 0xb1, 0x71, 0x97, 0x4f, 0x44, + 0xbf, 0xe2, 0x35, 0xbe, 0x12, 0x87, 0xe5, 0x4f, 0xc7, 0x65, 0x2a, 0x1e, 0x98, 0xaf, 0x78, 0x34, + 0x34, 0xbf, 0x7d, 0xad, 0x4c, 0x47, 0x3f, 0x4a, 0xc3, 0x64, 0xd5, 0x36, 0xdb, 0x8e, 0xca, 0xea, + 0xc6, 0xa6, 0x18, 0xb8, 0x9f, 0x09, 0xb6, 0xb1, 0x22, 0x0f, 0xee, 0x13, 0x7a, 0xc8, 0x31, 0x50, + 0x40, 0x48, 0x0b, 0xfb, 0x81, 0xd7, 0xc2, 0x16, 0x38, 0x54, 0x6e, 0x89, 0x45, 0xed, 0xc7, 0xb0, + 0x7d, 0xbd, 0x42, 0x82, 0xbc, 0xab, 0x66, 0x76, 0x71, 0xc7, 0xb2, 0xb0, 0x61, 0x8b, 0x81, 0xf0, + 0x57, 0x41, 0x10, 0x96, 0x78, 0x10, 0x6e, 0x89, 0x50, 0x66, 0xb7, 0x94, 0x04, 0xdb, 0xd8, 0xc7, + 0x3c, 0x34, 0xef, 0xe5, 0xd0, 0x7c, 0x4a, 0x7c, 0xb6, 0xe2, 0x41, 0xba, 0x34, 0x00, 0xa2, 0xc7, + 0x21, 0xef, 0x8c, 0x49, 0xc5, 0x5a, 0xe9, 0xac, 0x52, 0x2f, 0x95, 0xcf, 0x96, 0x6a, 0x4a, 0x1e, + 0xa3, 0x97, 0x4b, 0x30, 0x45, 0x59, 0x53, 0xf1, 0xae, 0x79, 0x5e, 0xb0, 0xd7, 0x7b, 0x38, 0xa6, + 0xb1, 0x10, 0x2c, 0x21, 0xa4, 0x65, 0xfc, 0x72, 0x0c, 0x63, 0x21, 0x82, 0xdc, 0xa3, 0xa9, 0xb7, + 0xda, 0xd7, 0x0c, 0x36, 0x7b, 0xb4, 0x96, 0x9e, 0xbd, 0xd5, 0x2b, 0x32, 0x00, 0xb4, 0x92, 0x67, + 0x75, 0x7c, 0x01, 0xad, 0xf8, 0x98, 0x70, 0x6a, 0x9b, 0xea, 0xab, 0xb6, 0xe9, 0x5e, 0x6a, 0xfb, + 0x81, 0xe0, 0x98, 0x35, 0xc7, 0xa3, 0x77, 0x63, 0xa8, 0xb8, 0x1d, 0x4e, 0xc2, 0x67, 0x87, 0xae, + 0xa2, 0xa4, 0x79, 0xab, 0xf3, 0x0a, 0x98, 0x20, 0x8f, 0x65, 0x6d, 0x1b, 0xb3, 0x36, 0xe4, 0x27, + 0xc8, 0x67, 0x60, 0x8a, 0x66, 0x6c, 0x98, 0x86, 0x53, 0x9f, 0x0c, 0xc9, 0xc0, 0xa5, 0x39, 0x20, + 0x36, 0x2c, 0xac, 0xd9, 0xa6, 0x45, 0x68, 0x64, 0x29, 0x88, 0x81, 0x24, 0xf4, 0x1d, 0xaf, 0x15, + 0x2a, 0x9c, 0xe6, 0x3c, 0x31, 0x4e, 0x55, 0xe2, 0xe9, 0xcd, 0xee, 0x60, 0xed, 0x8f, 0xb6, 0xba, + 0xba, 0x83, 0xf6, 0x02, 0x99, 0xda, 0x61, 0xf9, 0x24, 0xc8, 0x2c, 0xd5, 0xc9, 0x5b, 0xac, 0x94, + 0x6b, 0x4a, 0xb9, 0x96, 0xdf, 0xe8, 0xa9, 0x51, 0x9b, 0xe8, 0x8d, 0x19, 0xc8, 0xdc, 0x63, 0xea, + 0x06, 0x7a, 0x20, 0xc5, 0xa9, 0x84, 0x81, 0xed, 0x0b, 0xa6, 0x75, 0xde, 0x6b, 0xa8, 0x7e, 0x42, + 0x34, 0x36, 0xbe, 0x2a, 0x49, 0x7d, 0x55, 0x29, 0xd3, 0x4b, 0x95, 0x7e, 0x35, 0xa8, 0x4a, 0x77, + 0xf0, 0xaa, 0x74, 0x6d, 0x0f, 0xf9, 0x3b, 0xcc, 0x87, 0x74, 0x00, 0x9f, 0xf6, 0x3a, 0x80, 0xbb, + 0x38, 0x18, 0x6f, 0x10, 0x23, 0x13, 0x0f, 0xc0, 0xaf, 0x25, 0xda, 0xf0, 0x7b, 0x41, 0xbd, 0x19, + 0x02, 0xf5, 0x56, 0x8f, 0x3e, 0x41, 0xdf, 0xdf, 0x75, 0xdc, 0xbf, 0xbf, 0x9b, 0x38, 0x2f, 0x9f, + 0x80, 0x63, 0xf3, 0xa5, 0x85, 0x05, 0x45, 0x55, 0xca, 0xb5, 0x7a, 0x59, 0xa9, 0x9d, 0xab, 0xa8, + 0xf7, 0xe6, 0x5b, 0xe8, 0x41, 0x09, 0xc0, 0x91, 0x50, 0x51, 0x33, 0x1a, 0xb8, 0x25, 0xd6, 0xa3, + 0xff, 0x8f, 0x74, 0xbc, 0x3e, 0xc1, 0xa7, 0x1f, 0x02, 0xe7, 0x6b, 0xd2, 0xe2, 0xad, 0x32, 0x94, + 0x58, 0x3c, 0x50, 0xdf, 0xf6, 0x68, 0xb0, 0x3d, 0x2f, 0x81, 0xa3, 0x2e, 0x3d, 0x96, 0xbd, 0xf7, + 0xb4, 0xef, 0x9d, 0x19, 0x98, 0x61, 0xb0, 0xb8, 0xf3, 0xf8, 0x17, 0xa4, 0x44, 0x26, 0xf2, 0x08, + 0xc6, 0xd9, 0xb4, 0xdd, 0xed, 0xde, 0xbd, 0x77, 0x79, 0x11, 0x26, 0xdb, 0xd8, 0xda, 0xd6, 0x3b, + 0x1d, 0xdd, 0x34, 0xe8, 0x82, 0xdc, 0xcc, 0x2d, 0x8f, 0xf3, 0x24, 0x4e, 0xd6, 0x2e, 0x67, 0x57, + 0x35, 0xcb, 0xd6, 0x1b, 0x7a, 0x5b, 0x33, 0xec, 0x55, 0x3f, 0xb3, 0x1a, 0xfc, 0x13, 0xbd, 0x2c, + 0xe6, 0xb4, 0x86, 0xaf, 0x49, 0x88, 0x4a, 0xfc, 0x5e, 0x8c, 0x29, 0x49, 0x24, 0xc1, 0x78, 0x6a, + 0xf1, 0xa9, 0x44, 0xd5, 0xa2, 0x07, 0xde, 0x9b, 0xf2, 0x65, 0x70, 0xa2, 0x54, 0x2e, 0x56, 0x54, + 0x55, 0x29, 0xd6, 0xea, 0xab, 0x8a, 0xba, 0x52, 0xaa, 0x56, 0x4b, 0x95, 0x72, 0xf5, 0x20, 0xad, + 0x1d, 0x7d, 0x56, 0xf2, 0x34, 0x66, 0x1e, 0x37, 0x5a, 0xba, 0x81, 0xd1, 0x5d, 0x07, 0x54, 0x18, + 0x7e, 0xd5, 0x47, 0x1c, 0x67, 0x56, 0x7e, 0x08, 0xce, 0x6f, 0x88, 0x8f, 0x73, 0x6f, 0x82, 0xff, + 0x81, 0x9b, 0xff, 0xc3, 0x12, 0x1c, 0x0b, 0x34, 0x44, 0x15, 0x6f, 0x0f, 0x6d, 0x25, 0xef, 0x17, + 0x83, 0x6d, 0xb7, 0xc4, 0x63, 0xda, 0xcb, 0x9a, 0xde, 0xc7, 0x46, 0x08, 0xac, 0x6f, 0xf3, 0x60, + 0x5d, 0xe6, 0x60, 0x7d, 0xea, 0x00, 0x34, 0xe3, 0x21, 0xfb, 0xbb, 0x89, 0x22, 0x7b, 0x19, 0x9c, + 0x58, 0x2d, 0xa8, 0xb5, 0x52, 0xb1, 0xb4, 0x5a, 0x70, 0xc6, 0xd1, 0xc0, 0x90, 0x1d, 0x62, 0xae, + 0xf3, 0xa0, 0xf7, 0xc4, 0xf7, 0xa3, 0x19, 0xb8, 0xa2, 0x77, 0x47, 0x5b, 0xdc, 0xd2, 0x8c, 0x4d, + 0x8c, 0x74, 0x11, 0xa8, 0xe7, 0x61, 0xac, 0x41, 0xb2, 0x53, 0x9c, 0x83, 0x5b, 0x37, 0x11, 0x7d, + 0x39, 0x2d, 0x41, 0x75, 0x7f, 0x45, 0xef, 0x09, 0x2a, 0x44, 0x8d, 0x57, 0x88, 0xa7, 0x47, 0x83, + 0xb7, 0x8f, 0xef, 0x10, 0xdd, 0xf8, 0xbc, 0xa7, 0x1b, 0xe7, 0x38, 0xdd, 0x28, 0x1e, 0x8c, 0x7c, + 0x3c, 0x35, 0xf9, 0xe3, 0x47, 0x43, 0x07, 0x10, 0xaa, 0x4d, 0x7a, 0xf8, 0xa8, 0xd0, 0xb3, 0xbb, + 0x7f, 0x9d, 0x04, 0xb9, 0x79, 0xdc, 0xc2, 0xa2, 0x2b, 0x91, 0xdf, 0x4b, 0x8b, 0x6e, 0x88, 0x50, + 0x18, 0x28, 0xed, 0xf0, 0xd5, 0x11, 0x5b, 0xdf, 0xc6, 0x1d, 0x5b, 0xdb, 0x6e, 0x13, 0x51, 0x4b, + 0xaa, 0x9f, 0x80, 0x7e, 0x29, 0x2d, 0xb2, 0x5d, 0x12, 0x51, 0xcc, 0x7f, 0x8c, 0x35, 0xc5, 0x6f, + 0xce, 0x40, 0xee, 0x9c, 0xd6, 0x6a, 0x61, 0x1b, 0x7d, 0x2b, 0x0d, 0xb9, 0xa2, 0x33, 0x27, 0xc5, + 0xe8, 0x06, 0x1f, 0x2c, 0x04, 0xe3, 0x96, 0x69, 0xda, 0xab, 0x9a, 0xbd, 0xc5, 0xd0, 0xf2, 0xde, + 0xd9, 0x36, 0xed, 0xef, 0x04, 0x41, 0xbb, 0x8b, 0x07, 0xed, 0xa7, 0x38, 0x69, 0xd2, 0x82, 0x66, + 0x69, 0x21, 0x21, 0xa8, 0x21, 0x18, 0xdf, 0x36, 0xf0, 0xb6, 0x69, 0xe8, 0x0d, 0x77, 0xa4, 0x77, + 0xdf, 0xd1, 0xc7, 0xbd, 0x59, 0xf2, 0x1c, 0x87, 0xd9, 0xac, 0x70, 0x29, 0xf1, 0x40, 0xab, 0x0e, + 0x80, 0xd9, 0x95, 0x70, 0x39, 0x85, 0xa0, 0x5e, 0xab, 0xd4, 0x8b, 0xaa, 0x52, 0xa8, 0x29, 0xf5, + 0xe5, 0x4a, 0xb1, 0xb0, 0x5c, 0x57, 0x95, 0xd5, 0x4a, 0x1e, 0xa3, 0xbf, 0x4f, 0x3b, 0xc2, 0x6d, + 0x98, 0xbb, 0xd8, 0x42, 0x8b, 0x42, 0x72, 0x8e, 0x92, 0x09, 0xc3, 0xe0, 0x57, 0x85, 0xb7, 0xca, + 0x99, 0x74, 0x18, 0x07, 0x21, 0x5d, 0xe1, 0x27, 0x84, 0xb6, 0xbd, 0x23, 0x49, 0x3d, 0x0a, 0x24, + 0xfd, 0x3f, 0xd3, 0x30, 0x56, 0x34, 0x8d, 0x5d, 0x6c, 0xd9, 0x41, 0x2b, 0x33, 0x28, 0xcd, 0x14, + 0x2f, 0x4d, 0xa7, 0x6b, 0xc2, 0x86, 0x6d, 0x99, 0x6d, 0xd7, 0xcc, 0x74, 0x5f, 0xd1, 0x5b, 0xe2, + 0x4a, 0x98, 0x95, 0x1c, 0xbe, 0xdc, 0xd4, 0xbb, 0x20, 0x8e, 0x3d, 0xa9, 0xab, 0x01, 0x3c, 0x18, + 0x07, 0x97, 0xde, 0x0c, 0x24, 0xbf, 0xcb, 0xfb, 0x75, 0x09, 0xa6, 0x69, 0xe3, 0xab, 0x62, 0x32, + 0x2e, 0xa2, 0x4a, 0x70, 0xa1, 0xa7, 0x4b, 0xf8, 0x4b, 0x47, 0x38, 0xf1, 0xe7, 0xb4, 0x76, 0xdb, + 0x5b, 0xf4, 0x5b, 0x3a, 0xa2, 0xb2, 0x77, 0xaa, 0xe6, 0x73, 0x39, 0xc8, 0x68, 0x3b, 0xf6, 0x16, + 0xfa, 0x91, 0xb0, 0xc9, 0xcf, 0x75, 0x06, 0x8c, 0x9f, 0x10, 0x48, 0x8e, 0x43, 0xd6, 0x36, 0xcf, + 0x63, 0x57, 0x0e, 0xf4, 0xc5, 0x81, 0x43, 0x6b, 0xb7, 0x6b, 0xe4, 0x03, 0x83, 0xc3, 0x7d, 0x77, + 0x46, 0x18, 0xad, 0xd1, 0x30, 0x77, 0x0c, 0xbb, 0xe4, 0x2e, 0xfc, 0xf9, 0x09, 0xe8, 0x2b, 0x29, + 0x91, 0x29, 0x84, 0x00, 0x83, 0xf1, 0x20, 0x5b, 0x1f, 0xa0, 0x29, 0xcd, 0xc2, 0xf5, 0x85, 0xd5, + 0xd5, 0x7a, 0xad, 0x72, 0xaf, 0x52, 0xf6, 0x87, 0xfb, 0x7a, 0xa9, 0x5c, 0xaf, 0x2d, 0x29, 0xf5, + 0xe2, 0x9a, 0x4a, 0x56, 0x67, 0x0a, 0xc5, 0x62, 0x65, 0xad, 0x5c, 0xcb, 0x63, 0xf4, 0xf6, 0x34, + 0x4c, 0x15, 0x5b, 0x66, 0xc7, 0x43, 0xf8, 0x4a, 0x1f, 0x61, 0x4f, 0x8c, 0xa9, 0x80, 0x18, 0xd1, + 0xbf, 0xa6, 0x44, 0xb7, 0x7a, 0x5d, 0x81, 0x04, 0xc8, 0x87, 0xf4, 0x52, 0x6f, 0x11, 0xda, 0xea, + 0xed, 0x4f, 0x2f, 0xf9, 0x26, 0xf1, 0xc5, 0xdb, 0x61, 0xac, 0x40, 0x15, 0x03, 0xfd, 0x4d, 0x0a, + 0x72, 0x45, 0xd3, 0xd8, 0xd0, 0x37, 0xe5, 0x6b, 0x61, 0x06, 0x1b, 0xda, 0x7a, 0x0b, 0xcf, 0x6b, + 0xb6, 0xb6, 0xab, 0xe3, 0x0b, 0xa4, 0x02, 0xe3, 0x6a, 0x57, 0xaa, 0xc3, 0x14, 0x4b, 0xc1, 0xeb, + 0x3b, 0x9b, 0x84, 0xa9, 0x71, 0x35, 0x98, 0x24, 0x3f, 0x15, 0x2e, 0xa5, 0xaf, 0xab, 0x16, 0xb6, + 0x70, 0x0b, 0x6b, 0x1d, 0xec, 0x18, 0xa3, 0x06, 0x6e, 0x11, 0xa5, 0x1d, 0x57, 0xc3, 0x3e, 0xcb, + 0x67, 0x60, 0x8a, 0x7e, 0x22, 0xa6, 0x4e, 0x87, 0xa8, 0xf1, 0xb8, 0xca, 0xa5, 0xc9, 0x4f, 0x80, + 0x2c, 0xbe, 0x68, 0x5b, 0xda, 0xa9, 0x26, 0xc1, 0xeb, 0xd2, 0x59, 0xea, 0xeb, 0x35, 0xeb, 0xfa, + 0x7a, 0xcd, 0x56, 0x89, 0x27, 0x98, 0x4a, 0x73, 0xa1, 0x57, 0x8f, 0x7b, 0x86, 0xc4, 0xbf, 0xa7, + 0x7d, 0xc5, 0x90, 0x21, 0x63, 0x68, 0xdb, 0x98, 0xe9, 0x05, 0x79, 0x96, 0xaf, 0x87, 0xa3, 0xda, + 0xae, 0x66, 0x6b, 0xd6, 0xb2, 0xd9, 0xd0, 0x5a, 0x64, 0xf0, 0x73, 0x5b, 0x7e, 0xf7, 0x07, 0xb2, + 0x0e, 0x6f, 0x9b, 0x16, 0x26, 0xb9, 0xdc, 0x75, 0x78, 0x37, 0xc1, 0xa1, 0xae, 0x37, 0x4c, 0x83, + 0xf0, 0x2f, 0xa9, 0xe4, 0xd9, 0x91, 0x4a, 0x53, 0xef, 0x38, 0x15, 0x21, 0x54, 0xca, 0x74, 0x41, + 0xb9, 0xba, 0x67, 0x34, 0xc8, 0x1a, 0xfc, 0xb8, 0x1a, 0xf6, 0x59, 0x9e, 0x83, 0x49, 0xb6, 0xfc, + 0xbc, 0xe2, 0xe8, 0x55, 0x8e, 0xe8, 0xd5, 0x55, 0xbc, 0x27, 0x0d, 0xc5, 0x73, 0xb6, 0xec, 0xe7, + 0x53, 0x83, 0x3f, 0xc9, 0x77, 0xc3, 0xe5, 0xec, 0xb5, 0xb8, 0xd3, 0xb1, 0xcd, 0x6d, 0x0a, 0xfa, + 0x82, 0xde, 0xa2, 0x35, 0x18, 0x23, 0x35, 0x88, 0xca, 0x22, 0xdf, 0x02, 0xc7, 0xdb, 0x16, 0xde, + 0xc0, 0xd6, 0x7d, 0xda, 0xf6, 0xce, 0xc5, 0x9a, 0xa5, 0x19, 0x9d, 0xb6, 0x69, 0xd9, 0xa7, 0xc6, + 0x09, 0xf3, 0x3d, 0xbf, 0xb1, 0x8e, 0x72, 0x1c, 0x72, 0x54, 0x7c, 0xe8, 0x25, 0x59, 0x61, 0x27, + 0x3a, 0x56, 0xa1, 0x48, 0xf3, 0xec, 0x66, 0x18, 0x63, 0x3d, 0x1c, 0x01, 0x6a, 0xf2, 0x96, 0x93, + 0x5d, 0xb3, 0x39, 0x46, 0x45, 0x75, 0xb3, 0xc9, 0xb7, 0x42, 0xae, 0x41, 0xaa, 0x45, 0x30, 0x9b, + 0xbc, 0xe5, 0xf2, 0xde, 0x85, 0x92, 0x2c, 0x2a, 0xcb, 0x8a, 0xbe, 0x2a, 0x09, 0xf9, 0xdd, 0x45, + 0x71, 0x1c, 0xaf, 0x55, 0x7f, 0x27, 0x3d, 0x40, 0xb7, 0x79, 0x23, 0x5c, 0xc7, 0xfa, 0x44, 0x66, + 0x7f, 0xcc, 0xd7, 0xe7, 0xd6, 0x5c, 0x13, 0xdc, 0xb1, 0x4a, 0xaa, 0xb5, 0x82, 0xea, 0xcc, 0x9f, + 0xe6, 0x1d, 0xd3, 0xfd, 0x7a, 0xb8, 0xb6, 0x4f, 0x6e, 0xa5, 0x56, 0x2f, 0x17, 0x56, 0x94, 0xfc, + 0x06, 0x6f, 0xdb, 0x54, 0x6b, 0x95, 0xd5, 0xba, 0xba, 0x56, 0x2e, 0x97, 0xca, 0x8b, 0x94, 0x98, + 0x63, 0x12, 0x9e, 0xf4, 0x33, 0x9c, 0x53, 0x4b, 0x35, 0xa5, 0x5e, 0xac, 0x94, 0x17, 0x4a, 0x8b, + 0x79, 0xbd, 0x9f, 0x61, 0x74, 0xbf, 0x7c, 0x15, 0x5c, 0xc1, 0x71, 0x52, 0xaa, 0x94, 0x9d, 0xf9, + 0x44, 0xb1, 0x50, 0x2e, 0x2a, 0xce, 0xe4, 0xe1, 0xbc, 0x8c, 0xe0, 0x04, 0x25, 0x57, 0x5f, 0x28, + 0x2d, 0x07, 0xb7, 0x00, 0x3e, 0x93, 0x92, 0x4f, 0xc1, 0x25, 0xc1, 0x6f, 0xa5, 0xf2, 0xd9, 0xc2, + 0x72, 0x69, 0x3e, 0xff, 0x47, 0x29, 0xf9, 0x1a, 0xb8, 0x92, 0xfb, 0x8b, 0xae, 0xe6, 0xd7, 0x4b, + 0xf3, 0xf5, 0x95, 0x52, 0x75, 0xa5, 0x50, 0x2b, 0x2e, 0xe5, 0x3f, 0x4b, 0xe6, 0x0b, 0x9e, 0x01, + 0x1c, 0x70, 0x86, 0x7b, 0x45, 0x70, 0x4c, 0x2f, 0xf0, 0x8a, 0x7a, 0x43, 0x4f, 0xd8, 0xa3, 0x6d, + 0xd8, 0x4f, 0x79, 0xa3, 0xc3, 0x3c, 0xa7, 0x42, 0x37, 0xc7, 0xa0, 0x15, 0x4f, 0x87, 0x6a, 0x03, + 0xa8, 0xd0, 0x55, 0x70, 0x45, 0x59, 0xa1, 0x48, 0xa9, 0x4a, 0xb1, 0x72, 0x56, 0x51, 0xeb, 0xe7, + 0x0a, 0xcb, 0xcb, 0x4a, 0xad, 0xbe, 0x50, 0x52, 0xab, 0xb5, 0xfc, 0x06, 0xfa, 0x7e, 0xda, 0x9b, + 0x43, 0x07, 0xa4, 0xf5, 0x37, 0xe9, 0xb8, 0xcd, 0x3a, 0x72, 0xae, 0xfc, 0xd3, 0x90, 0xeb, 0xd8, + 0x9a, 0xbd, 0xd3, 0x61, 0xad, 0xfa, 0x31, 0xbd, 0x5b, 0xf5, 0x6c, 0x95, 0x64, 0x52, 0x59, 0x66, + 0xf4, 0xd5, 0x54, 0x9c, 0x66, 0x3a, 0x84, 0x69, 0xb4, 0x3e, 0x80, 0x88, 0x4f, 0x03, 0x72, 0xb5, + 0xbd, 0x54, 0xad, 0x17, 0x96, 0x55, 0xa5, 0x30, 0x7f, 0x9f, 0x37, 0x79, 0xc6, 0xf2, 0x09, 0x38, + 0xb6, 0x56, 0x76, 0xa6, 0xc3, 0xa4, 0xb9, 0x54, 0xca, 0x65, 0xa5, 0xe8, 0xc8, 0xfd, 0x97, 0xc8, + 0x52, 0xb5, 0x63, 0x41, 0x13, 0xbe, 0x1d, 0x2b, 0x27, 0x20, 0xff, 0x6f, 0x0b, 0x7b, 0x74, 0xf8, + 0x1a, 0x16, 0xa4, 0x35, 0x5c, 0x1c, 0xbe, 0x22, 0xe4, 0xc4, 0x21, 0xc4, 0x49, 0x3c, 0x3c, 0x7e, + 0x6e, 0x00, 0x3c, 0x4e, 0xc0, 0xb1, 0x20, 0x1e, 0xc4, 0x99, 0x23, 0x1c, 0x86, 0x6f, 0x8c, 0x43, + 0xae, 0x8a, 0x5b, 0xb8, 0x61, 0xa3, 0x77, 0x06, 0x8c, 0x89, 0x19, 0x48, 0x7b, 0xce, 0x03, 0x69, + 0xbd, 0xc9, 0x4d, 0x9f, 0xd3, 0x5d, 0xd3, 0xe7, 0x08, 0x33, 0x40, 0x8a, 0x65, 0x06, 0x64, 0x12, + 0x30, 0x03, 0xb2, 0x83, 0x9b, 0x01, 0xb9, 0x7e, 0x66, 0x00, 0x7a, 0x53, 0x2e, 0x6e, 0x2f, 0x41, + 0x45, 0x7d, 0xb8, 0x83, 0xff, 0xff, 0xc8, 0xc4, 0xe9, 0x55, 0x7a, 0x72, 0x1c, 0x4f, 0x8b, 0x7f, + 0x24, 0x25, 0xb0, 0xfc, 0x20, 0x5f, 0x0d, 0x57, 0xfa, 0xef, 0x75, 0xe5, 0x99, 0xa5, 0x6a, 0xad, + 0x4a, 0x46, 0xfc, 0x62, 0x45, 0x55, 0xd7, 0x56, 0xe9, 0xca, 0xdd, 0x49, 0x90, 0x7d, 0x2a, 0xea, + 0x5a, 0x99, 0x8e, 0xef, 0x9b, 0x3c, 0xf5, 0x85, 0x52, 0x79, 0xbe, 0xee, 0xb5, 0x99, 0xf2, 0x42, + 0x25, 0xbf, 0xe5, 0x4c, 0xd9, 0x02, 0xd4, 0x9d, 0x01, 0x9a, 0x95, 0x50, 0x28, 0xcf, 0xd7, 0x57, + 0xca, 0xca, 0x4a, 0xa5, 0x5c, 0x2a, 0x92, 0xf4, 0xaa, 0x52, 0xcb, 0xeb, 0xce, 0x40, 0xd3, 0x65, + 0x51, 0x54, 0x95, 0x82, 0x5a, 0x5c, 0x52, 0x54, 0x5a, 0xe4, 0xfd, 0xf2, 0xb5, 0x70, 0xa6, 0x50, + 0xae, 0xd4, 0x9c, 0x94, 0x42, 0xf9, 0xbe, 0xda, 0x7d, 0xab, 0x4a, 0x7d, 0x55, 0xad, 0x14, 0x95, + 0x6a, 0xd5, 0x69, 0xa7, 0xcc, 0xfe, 0xc8, 0xb7, 0xe4, 0xa7, 0xc3, 0xed, 0x01, 0xd6, 0x94, 0x1a, + 0xd9, 0x26, 0x5a, 0xa9, 0x10, 0x4f, 0x81, 0x79, 0xa5, 0xbe, 0x54, 0xa8, 0xd6, 0x4b, 0xe5, 0x62, + 0x65, 0x65, 0xb5, 0x50, 0x2b, 0x39, 0xcd, 0x79, 0x55, 0xad, 0xd4, 0x2a, 0xf5, 0xb3, 0x8a, 0x5a, + 0x2d, 0x55, 0xca, 0x79, 0xc3, 0xa9, 0x72, 0xa0, 0xfd, 0xbb, 0xfd, 0xb0, 0x29, 0x5f, 0x01, 0xa7, + 0xdc, 0xf4, 0xe5, 0x8a, 0x23, 0xe8, 0x80, 0x45, 0xd2, 0x4e, 0xd4, 0x22, 0xf9, 0x97, 0x34, 0x64, + 0xaa, 0xb6, 0xd9, 0x46, 0x3f, 0xe5, 0x77, 0x30, 0xa7, 0x01, 0x2c, 0xb2, 0xeb, 0xe3, 0xcc, 0xc2, + 0xd8, 0xbc, 0x2c, 0x90, 0x82, 0xfe, 0x50, 0x78, 0xa9, 0xda, 0xef, 0xb3, 0xcd, 0x76, 0x88, 0xad, + 0xf2, 0x88, 0x98, 0xef, 0x7e, 0x38, 0xa1, 0x78, 0xfa, 0xfe, 0xcb, 0x83, 0x2c, 0x46, 0x23, 0x38, + 0x19, 0x80, 0xcd, 0x91, 0xbf, 0xab, 0x12, 0x58, 0xbe, 0x14, 0x2e, 0xe9, 0x52, 0x2e, 0xa2, 0x53, + 0x1b, 0xf2, 0x63, 0xe1, 0x31, 0x01, 0xf5, 0x56, 0x56, 0x2a, 0x67, 0x15, 0x4f, 0x91, 0xe7, 0x0b, + 0xb5, 0x42, 0x7e, 0x13, 0x7d, 0x51, 0x82, 0xcc, 0x8a, 0xb9, 0xdb, 0xbd, 0x43, 0x60, 0xe0, 0x0b, + 0x81, 0xb5, 0x50, 0xf7, 0x95, 0xf7, 0x55, 0x16, 0x12, 0xfb, 0x4a, 0xf8, 0x6e, 0xe0, 0x57, 0xd2, + 0x71, 0xc4, 0xbe, 0x72, 0xd0, 0x2d, 0xc0, 0x7f, 0x18, 0x44, 0xec, 0x21, 0xa2, 0xc5, 0xf2, 0x19, + 0x38, 0xed, 0x7f, 0x28, 0xcd, 0x2b, 0xe5, 0x5a, 0x69, 0xe1, 0x3e, 0x5f, 0xb8, 0x25, 0x55, 0x48, + 0xfc, 0xfd, 0xba, 0xb1, 0xe8, 0x99, 0xc6, 0x29, 0x38, 0xee, 0x7f, 0x5b, 0x54, 0x6a, 0xee, 0x97, + 0xfb, 0xd1, 0x03, 0x59, 0x98, 0xa2, 0xdd, 0xfa, 0x5a, 0xbb, 0xa9, 0xd9, 0x18, 0xdd, 0xea, 0xa3, + 0x7b, 0x1d, 0x1c, 0x2d, 0xad, 0x2e, 0x54, 0xab, 0xb6, 0x69, 0x69, 0x9b, 0xb8, 0xd0, 0x6c, 0x5a, + 0x4c, 0x5a, 0xdd, 0xc9, 0xe8, 0x7d, 0xc2, 0xeb, 0x7c, 0xfc, 0x50, 0x42, 0xcb, 0x0c, 0x41, 0xfd, + 0xeb, 0x42, 0xeb, 0x72, 0x02, 0x04, 0xe3, 0xa1, 0x7f, 0xff, 0x90, 0xdb, 0x5c, 0x38, 0x2e, 0x1b, + 0x67, 0x9e, 0x9f, 0x86, 0x89, 0x9a, 0xbe, 0x8d, 0x9f, 0x6d, 0x1a, 0xb8, 0x23, 0x8f, 0x81, 0xb4, + 0xb8, 0x52, 0xcb, 0x1f, 0x71, 0x1e, 0x1c, 0xa3, 0x2a, 0x45, 0x1e, 0x14, 0xa7, 0x00, 0xe7, 0xa1, + 0x50, 0xcb, 0x4b, 0xce, 0xc3, 0x8a, 0x52, 0xcb, 0x67, 0x9c, 0x87, 0xb2, 0x52, 0xcb, 0x67, 0x9d, + 0x87, 0xd5, 0xe5, 0x5a, 0x3e, 0xe7, 0x3c, 0x94, 0xaa, 0xb5, 0xfc, 0x98, 0xf3, 0x30, 0x57, 0xad, + 0xe5, 0xc7, 0x9d, 0x87, 0xb3, 0xd5, 0x5a, 0x7e, 0xc2, 0x79, 0x28, 0xd6, 0x6a, 0x79, 0x70, 0x1e, + 0xee, 0xa9, 0xd6, 0xf2, 0x93, 0xce, 0x43, 0xa1, 0x58, 0xcb, 0x4f, 0x91, 0x07, 0xa5, 0x96, 0x9f, + 0x76, 0x1e, 0xaa, 0xd5, 0x5a, 0x7e, 0x86, 0x50, 0xae, 0xd6, 0xf2, 0x47, 0x49, 0x59, 0xa5, 0x5a, + 0x3e, 0xef, 0x3c, 0x2c, 0x55, 0x6b, 0xf9, 0x63, 0x24, 0x73, 0xb5, 0x96, 0x97, 0x49, 0xa1, 0xd5, + 0x5a, 0xfe, 0x12, 0x92, 0xa7, 0x5a, 0xcb, 0x1f, 0x27, 0x45, 0x54, 0x6b, 0xf9, 0x13, 0x84, 0x0d, + 0xa5, 0x96, 0x3f, 0x49, 0xf2, 0xa8, 0xb5, 0xfc, 0xa5, 0xe4, 0x53, 0xb9, 0x96, 0x3f, 0x45, 0x18, + 0x53, 0x6a, 0xf9, 0xcb, 0xc8, 0x83, 0x5a, 0xcb, 0x23, 0xf2, 0xa9, 0x50, 0xcb, 0x5f, 0x8e, 0x1e, + 0x03, 0x13, 0x8b, 0xd8, 0xa6, 0x20, 0xa2, 0x3c, 0x48, 0x8b, 0xd8, 0x0e, 0x9a, 0xf1, 0xdf, 0x94, + 0xe0, 0x52, 0x36, 0xf5, 0x5b, 0xb0, 0xcc, 0xed, 0x65, 0xbc, 0xa9, 0x35, 0xf6, 0x94, 0x8b, 0x8e, + 0x09, 0x85, 0xaa, 0xdc, 0xd2, 0x55, 0xdb, 0xef, 0x8c, 0xc8, 0x73, 0xa4, 0xc5, 0xe9, 0x2e, 0x46, + 0x49, 0xfe, 0x62, 0x14, 0xb3, 0xc8, 0xfe, 0x39, 0xa8, 0xd1, 0xdc, 0xfa, 0x71, 0xaa, 0x6b, 0xfd, + 0xd8, 0x69, 0x26, 0x6d, 0x6c, 0x75, 0x4c, 0x43, 0x6b, 0x55, 0xd9, 0x76, 0x29, 0x5d, 0xf5, 0xea, + 0x4e, 0x96, 0x9f, 0xe1, 0xb6, 0x0c, 0x6a, 0x95, 0x3d, 0x2d, 0x6a, 0x86, 0xdb, 0x5d, 0xcd, 0x90, + 0x46, 0xf2, 0x59, 0xaf, 0x91, 0xd4, 0xb8, 0x46, 0x72, 0xf7, 0x01, 0x68, 0xc7, 0x6b, 0x2f, 0xa5, + 0xc1, 0xa6, 0x16, 0xbe, 0x33, 0xa1, 0xbb, 0x5c, 0x2d, 0xa1, 0x2f, 0xa6, 0xe1, 0xa4, 0x62, 0xf4, + 0xb2, 0xf0, 0x83, 0xba, 0xf0, 0xf6, 0x20, 0x34, 0xab, 0xbc, 0x48, 0x6f, 0xef, 0x59, 0xed, 0xde, + 0x34, 0x43, 0x24, 0xfa, 0x39, 0x4f, 0xa2, 0x55, 0x4e, 0xa2, 0x77, 0x0d, 0x4e, 0x3a, 0x9e, 0x40, + 0xcb, 0x43, 0xed, 0x80, 0x32, 0xe8, 0x3b, 0x19, 0x78, 0x0c, 0xf5, 0x78, 0x60, 0x1c, 0xd2, 0x56, + 0x56, 0x30, 0x9a, 0x2a, 0xee, 0xd8, 0x9a, 0x65, 0x73, 0xa7, 0x50, 0xbb, 0xa6, 0x52, 0xa9, 0x04, + 0xa6, 0x52, 0xe9, 0xbe, 0x53, 0x29, 0xf4, 0xde, 0xa0, 0xf9, 0x70, 0x8e, 0xc7, 0xb8, 0xd0, 0xbb, + 0xff, 0x8f, 0xaa, 0x61, 0x18, 0xd4, 0x9e, 0x5d, 0xf1, 0x33, 0x1c, 0xd4, 0x0b, 0x07, 0x2e, 0x21, + 0x1e, 0xe2, 0x7f, 0x38, 0x5c, 0x3b, 0x2f, 0x13, 0xfc, 0xc6, 0x1b, 0x25, 0xf9, 0x66, 0xa2, 0x06, + 0xfa, 0xe7, 0xc7, 0x60, 0x82, 0xb4, 0x85, 0x65, 0xdd, 0x38, 0x8f, 0x1e, 0x94, 0x60, 0xaa, 0x8c, + 0x2f, 0x14, 0xb7, 0xb4, 0x56, 0x0b, 0x1b, 0x9b, 0x38, 0x68, 0xb6, 0x9f, 0x82, 0x31, 0xad, 0xdd, + 0x2e, 0xfb, 0xfb, 0x0c, 0xee, 0x2b, 0xeb, 0x7f, 0xbf, 0xdd, 0xb3, 0x91, 0xa7, 0x22, 0x1a, 0xb9, + 0x57, 0xee, 0x6c, 0xb0, 0xcc, 0x90, 0x19, 0xf2, 0x55, 0x30, 0xd9, 0x70, 0xb3, 0x78, 0xde, 0xea, + 0xc1, 0x24, 0xf4, 0x77, 0xb1, 0xba, 0x01, 0xa1, 0xc2, 0xe3, 0x29, 0x05, 0x1e, 0xb2, 0x1d, 0x72, + 0x02, 0x8e, 0xd5, 0x2a, 0x95, 0xfa, 0x4a, 0xa1, 0x7c, 0x9f, 0x7f, 0x4a, 0x74, 0x03, 0xbd, 0x26, + 0x03, 0x33, 0x55, 0xb3, 0xb5, 0x8b, 0x7d, 0x98, 0x4a, 0x3e, 0x4c, 0x5d, 0x72, 0x4a, 0xed, 0x93, + 0x93, 0x7c, 0x12, 0x72, 0x9a, 0xd1, 0xb9, 0x80, 0x5d, 0xdb, 0x90, 0xbd, 0x31, 0x18, 0x3f, 0x1a, + 0x6c, 0xc7, 0x2a, 0x0f, 0xe3, 0x1d, 0x7d, 0x24, 0xc9, 0x73, 0x15, 0x02, 0xe4, 0x19, 0x98, 0xea, + 0xd0, 0xcd, 0xc2, 0x5a, 0x60, 0x4f, 0x98, 0x4b, 0x23, 0x2c, 0xd2, 0xdd, 0x6a, 0x89, 0xb1, 0x48, + 0xde, 0xd0, 0x83, 0x5e, 0xf3, 0x5f, 0xe3, 0x20, 0x2e, 0x1c, 0x84, 0xb1, 0x78, 0x20, 0xbf, 0x6e, + 0xd8, 0x33, 0xbc, 0x53, 0x70, 0x9c, 0xb5, 0xda, 0x7a, 0x71, 0xa9, 0xb0, 0xbc, 0xac, 0x94, 0x17, + 0x95, 0x7a, 0x69, 0x9e, 0x6e, 0x55, 0xf8, 0x29, 0x85, 0x5a, 0x4d, 0x59, 0x59, 0xad, 0x55, 0xeb, + 0xca, 0x33, 0x8b, 0x8a, 0x32, 0x4f, 0x1c, 0x91, 0xc8, 0x49, 0x02, 0xd7, 0x65, 0xac, 0x50, 0xae, + 0x9e, 0x53, 0xd4, 0xfc, 0xd6, 0x99, 0x02, 0x4c, 0x06, 0xfa, 0x79, 0x87, 0xbb, 0x79, 0xbc, 0xa1, + 0xed, 0xb4, 0x98, 0xad, 0x96, 0x3f, 0xe2, 0x70, 0x47, 0x64, 0x53, 0x31, 0x5a, 0x7b, 0xf9, 0x94, + 0x9c, 0x87, 0xa9, 0x60, 0x97, 0x9e, 0x4f, 0xa3, 0x77, 0x5d, 0x01, 0x13, 0xe7, 0x4c, 0xeb, 0x3c, + 0xf1, 0x1e, 0x43, 0x1f, 0xa4, 0xd1, 0x24, 0xdc, 0x73, 0x79, 0x81, 0x81, 0xfd, 0x75, 0xe2, 0xde, + 0x02, 0x2e, 0xb5, 0xd9, 0xbe, 0x67, 0xef, 0xae, 0x82, 0xc9, 0x0b, 0x6e, 0x6e, 0xbf, 0xa5, 0x07, + 0x92, 0xd0, 0x7f, 0x13, 0xdb, 0xff, 0xef, 0x5f, 0x64, 0xf2, 0xfb, 0xd3, 0xef, 0x4c, 0x43, 0x6e, + 0x11, 0xdb, 0x85, 0x56, 0x2b, 0x28, 0xb7, 0x57, 0x0a, 0x9f, 0xa7, 0xe0, 0x2a, 0x51, 0x68, 0xb5, + 0xc2, 0x1b, 0x55, 0x40, 0x40, 0xae, 0xdf, 0x2f, 0x97, 0x86, 0xde, 0x24, 0x74, 0x12, 0xaa, 0x4f, + 0x81, 0xc9, 0x4b, 0xec, 0xe3, 0x92, 0xb7, 0xc7, 0xfd, 0x50, 0xc0, 0xca, 0x79, 0xa2, 0x1f, 0x49, + 0x24, 0x15, 0xbd, 0x57, 0xee, 0xe6, 0x93, 0xef, 0x85, 0xb1, 0x9d, 0x0e, 0x2e, 0x6a, 0x1d, 0x4c, + 0x78, 0xeb, 0xae, 0x69, 0x65, 0xfd, 0x7e, 0xdc, 0xb0, 0x67, 0x4b, 0xdb, 0x8e, 0x41, 0xbd, 0x46, + 0x33, 0x7a, 0xc1, 0x39, 0xd8, 0xbb, 0xea, 0x52, 0x70, 0x26, 0x25, 0x17, 0x74, 0x7b, 0xab, 0xb8, + 0xa5, 0xd9, 0x6c, 0x6d, 0xdb, 0x7b, 0x47, 0x2f, 0x19, 0x00, 0xce, 0xc8, 0xbd, 0xe0, 0xd0, 0x63, + 0x59, 0xb1, 0x41, 0x1c, 0xc2, 0x06, 0xee, 0x20, 0x20, 0xfe, 0x63, 0x1a, 0x32, 0x95, 0x36, 0x36, + 0x84, 0xcf, 0x20, 0x78, 0xb2, 0x4d, 0x77, 0xc9, 0xf6, 0x41, 0x71, 0xef, 0x30, 0xaf, 0xd2, 0x4e, + 0xc9, 0x21, 0x92, 0xbd, 0x09, 0x32, 0xba, 0xb1, 0x61, 0x32, 0xc3, 0xf4, 0xf2, 0x90, 0x4d, 0xa0, + 0x92, 0xb1, 0x61, 0xaa, 0x24, 0xa3, 0xa8, 0x63, 0x58, 0x54, 0xd9, 0xc9, 0x8b, 0xfb, 0xbb, 0xe3, + 0x90, 0xa3, 0xea, 0x8c, 0x5e, 0x21, 0x81, 0x54, 0x68, 0x36, 0x43, 0x04, 0x9f, 0xde, 0x27, 0x78, + 0x93, 0xfc, 0xe6, 0x61, 0xe2, 0xbd, 0xf3, 0x21, 0x24, 0x04, 0xfb, 0x76, 0xd6, 0xa4, 0x0a, 0xcd, + 0x66, 0xb8, 0x0f, 0xaa, 0x57, 0x60, 0x9a, 0x2f, 0x30, 0xd8, 0xc2, 0x25, 0xb1, 0x16, 0x1e, 0x7b, + 0x20, 0x08, 0xe5, 0x2f, 0x79, 0x88, 0xfe, 0x39, 0x0d, 0x63, 0xcb, 0x7a, 0xc7, 0x76, 0xb0, 0x29, + 0x88, 0x60, 0x73, 0x05, 0x4c, 0xb8, 0xa2, 0x71, 0xba, 0x3c, 0xa7, 0x3f, 0xf7, 0x13, 0xd0, 0x1b, + 0x83, 0xe8, 0xdc, 0xc3, 0xa3, 0xf3, 0xa4, 0xe8, 0xda, 0x33, 0x2e, 0xc2, 0x7d, 0xbb, 0xfd, 0x62, + 0xd3, 0xdd, 0xc5, 0xfe, 0x8e, 0x27, 0xf0, 0x15, 0x4e, 0xe0, 0xb7, 0x0d, 0x52, 0x64, 0xf2, 0x42, + 0xff, 0x52, 0x1a, 0xc0, 0x29, 0x9b, 0x1d, 0xa0, 0x79, 0x3c, 0x77, 0x2c, 0x36, 0x42, 0xba, 0xaf, + 0x09, 0x4a, 0x77, 0x85, 0x97, 0xee, 0x53, 0xfa, 0x57, 0x35, 0xea, 0xa0, 0x8c, 0x9c, 0x07, 0x49, + 0xf7, 0x44, 0xeb, 0x3c, 0xa2, 0x77, 0x7a, 0x42, 0x5d, 0xe5, 0x84, 0x7a, 0xc7, 0x80, 0x25, 0x25, + 0x2f, 0xd7, 0xbf, 0x4a, 0xc3, 0x58, 0x15, 0xdb, 0x4e, 0x37, 0x89, 0xce, 0x8a, 0xf4, 0xf0, 0x81, + 0xb6, 0x9d, 0x16, 0x6c, 0xdb, 0x3f, 0x4c, 0x89, 0x86, 0xd7, 0xf0, 0x25, 0xc3, 0x78, 0x0a, 0x59, + 0x3c, 0x78, 0x48, 0x28, 0xbc, 0x46, 0x3f, 0x6a, 0xc9, 0x4b, 0xf7, 0xed, 0x69, 0x6f, 0x63, 0xfe, + 0x06, 0x6e, 0x62, 0x17, 0x34, 0x8b, 0x53, 0xfb, 0xcd, 0xe2, 0xef, 0xa7, 0xe2, 0x9b, 0x21, 0x51, + 0xbb, 0xd2, 0xb1, 0x8d, 0x8d, 0x21, 0x6c, 0x18, 0x0f, 0x22, 0xaf, 0xe7, 0x4a, 0x90, 0x63, 0x2b, + 0xcb, 0x77, 0x45, 0xaf, 0x2c, 0xf7, 0x9f, 0x5a, 0x7c, 0x60, 0x00, 0x53, 0x2e, 0x6a, 0xb9, 0xd7, + 0x63, 0x23, 0x1d, 0x60, 0xe3, 0x46, 0xc8, 0x92, 0xf8, 0x7f, 0x6c, 0x9c, 0xf3, 0xf7, 0xfa, 0x5d, + 0x12, 0x8a, 0xf3, 0x55, 0xa5, 0x99, 0x62, 0xa3, 0x30, 0x84, 0x15, 0xe2, 0x41, 0x50, 0xf8, 0x97, + 0xcf, 0xa7, 0x3c, 0x23, 0xe4, 0x03, 0x19, 0x66, 0xfe, 0x7d, 0x9a, 0x8f, 0x44, 0xd0, 0x30, 0x0d, + 0x1b, 0x5f, 0x0c, 0xac, 0xc9, 0x7b, 0x09, 0x91, 0x96, 0xc1, 0x29, 0x18, 0xb3, 0xad, 0xe0, 0x3a, + 0xbd, 0xfb, 0x1a, 0xec, 0x71, 0xb2, 0x7c, 0x8f, 0x53, 0x86, 0x33, 0xba, 0xd1, 0x68, 0xed, 0x34, + 0xb1, 0x8a, 0x5b, 0x9a, 0x53, 0xab, 0x4e, 0xa1, 0x33, 0x8f, 0xdb, 0xd8, 0x68, 0x62, 0xc3, 0xa6, + 0x7c, 0xba, 0x3e, 0xb9, 0x02, 0x39, 0xd1, 0xb7, 0x82, 0x8a, 0x71, 0x27, 0xaf, 0x18, 0x8f, 0xef, + 0x35, 0xaf, 0x88, 0x30, 0x42, 0x6f, 0x03, 0xa0, 0x75, 0x3b, 0xab, 0xe3, 0x0b, 0xac, 0x43, 0xbc, + 0xac, 0xcb, 0x14, 0xad, 0x78, 0x19, 0xd4, 0x40, 0x66, 0xf4, 0xb0, 0xa7, 0x0c, 0x77, 0x73, 0xca, + 0x70, 0xa3, 0x20, 0x0b, 0xf1, 0xf4, 0xa0, 0x3d, 0xc0, 0x5a, 0xc7, 0x34, 0x4c, 0xf8, 0x2b, 0x94, + 0x92, 0x7c, 0x19, 0x9c, 0x70, 0x7d, 0x1e, 0xca, 0x8a, 0x32, 0x5f, 0xad, 0xaf, 0xad, 0x2e, 0xaa, + 0x85, 0x79, 0x25, 0x0f, 0xb2, 0x0c, 0x33, 0x95, 0xb9, 0x7b, 0x94, 0x62, 0xcd, 0x73, 0x55, 0xc8, + 0xa0, 0xbf, 0x4c, 0x43, 0x96, 0x38, 0x94, 0xa3, 0x67, 0x0d, 0x49, 0x73, 0x3a, 0xdc, 0x0e, 0x8f, + 0x37, 0x91, 0x12, 0x8f, 0x10, 0xc8, 0x84, 0x49, 0xb8, 0x3a, 0x50, 0x84, 0xc0, 0x08, 0x42, 0xc9, + 0x37, 0x4f, 0xa7, 0x49, 0x56, 0xb7, 0xcc, 0x0b, 0x3f, 0xc9, 0x4d, 0xd2, 0xa9, 0xff, 0x21, 0x37, + 0xc9, 0x1e, 0x2c, 0x8c, 0xbc, 0x49, 0xf6, 0x68, 0x77, 0x11, 0xcd, 0x14, 0x3d, 0x27, 0xeb, 0x2d, + 0xc8, 0x3c, 0x3f, 0x7d, 0xa0, 0x05, 0x99, 0x02, 0x4c, 0xeb, 0x86, 0x8d, 0x2d, 0x43, 0x6b, 0x2d, + 0xb4, 0xb4, 0x4d, 0xf7, 0xd8, 0x72, 0xf7, 0x2c, 0xbc, 0x14, 0xc8, 0xa3, 0xf2, 0x7f, 0xc8, 0xa7, + 0x01, 0x6c, 0xbc, 0xdd, 0x6e, 0x69, 0xb6, 0xaf, 0x7a, 0x81, 0x94, 0xa0, 0xf6, 0x65, 0x78, 0xed, + 0xbb, 0x19, 0x2e, 0xa1, 0xa0, 0xd5, 0xf6, 0xda, 0x78, 0xcd, 0xd0, 0x7f, 0x7e, 0x87, 0x04, 0xae, + 0xa1, 0x3a, 0xda, 0xeb, 0x13, 0xb7, 0x2c, 0x91, 0xeb, 0x5a, 0x96, 0xf8, 0x47, 0xe1, 0xa3, 0x99, + 0x6e, 0xab, 0xef, 0x73, 0x34, 0xd3, 0x6b, 0x69, 0x52, 0x57, 0x4b, 0xf3, 0x8c, 0x85, 0x8c, 0x80, + 0xb1, 0x10, 0x44, 0x25, 0x2b, 0x68, 0x68, 0xbf, 0x41, 0xe8, 0xec, 0x67, 0x54, 0x35, 0x46, 0x30, + 0x91, 0x93, 0x60, 0x86, 0x16, 0x3d, 0x67, 0x9a, 0xe7, 0xb7, 0x35, 0xeb, 0x3c, 0xb2, 0x0e, 0xa4, + 0x8a, 0x91, 0x6b, 0x22, 0xa1, 0x0b, 0x7d, 0x9f, 0x0b, 0xa2, 0xbe, 0xc8, 0xa3, 0xfe, 0xc4, 0x70, + 0x71, 0xb9, 0x3c, 0x8f, 0x66, 0x51, 0xe4, 0xad, 0x1e, 0x9e, 0xf7, 0x70, 0x78, 0x3e, 0x39, 0x36, + 0x83, 0xc9, 0xe3, 0xfa, 0xc7, 0x1e, 0xae, 0x6e, 0x47, 0x1f, 0x9c, 0x4f, 0x0e, 0x13, 0x57, 0xf4, + 0xf5, 0xc1, 0xb0, 0x73, 0xf9, 0x1a, 0x00, 0xbb, 0x3c, 0x48, 0xe7, 0xbd, 0x2d, 0x2c, 0xe7, 0x31, + 0x58, 0xa1, 0x4c, 0x72, 0x68, 0x86, 0xb0, 0x3c, 0x12, 0x34, 0x8f, 0xf3, 0x2c, 0x54, 0xda, 0x89, + 0x62, 0xfa, 0x35, 0xe1, 0x75, 0x9a, 0x9e, 0x02, 0xa2, 0xdc, 0x8d, 0xa6, 0x55, 0x8a, 0x2d, 0xf2, + 0x88, 0xb3, 0x99, 0x3c, 0x9a, 0x2f, 0xce, 0xc2, 0x84, 0x7b, 0x78, 0x96, 0x44, 0xd4, 0xf6, 0x30, + 0x3c, 0x09, 0xb9, 0x8e, 0xb9, 0x63, 0x35, 0x30, 0x5b, 0x39, 0x63, 0x6f, 0x03, 0xac, 0xf2, 0xf4, + 0x1d, 0xcf, 0xf7, 0x99, 0x0c, 0x99, 0xd8, 0x26, 0x43, 0xb8, 0x41, 0x1a, 0x35, 0xc0, 0xbf, 0x44, + 0x38, 0x0c, 0x22, 0x87, 0x59, 0x15, 0xdb, 0x8f, 0xc6, 0x31, 0xfe, 0x0f, 0x84, 0xd6, 0x10, 0xfa, + 0xd4, 0x24, 0x9e, 0xca, 0x55, 0x06, 0x30, 0x54, 0x2f, 0x87, 0x4b, 0xdd, 0x1c, 0xcc, 0x42, 0x25, + 0x16, 0xe9, 0x9a, 0xba, 0x9c, 0x97, 0xd0, 0x73, 0x33, 0x90, 0xa7, 0xac, 0x55, 0x3c, 0x63, 0x0d, + 0xbd, 0x32, 0x75, 0xd8, 0x16, 0x69, 0xf8, 0x14, 0xf3, 0x0b, 0x69, 0xd1, 0x50, 0x4b, 0x9c, 0xe0, + 0xfd, 0xda, 0x85, 0x68, 0xd2, 0x00, 0xcd, 0x2c, 0x42, 0xf9, 0xd0, 0x6f, 0xa7, 0x44, 0x22, 0x37, + 0x89, 0xb1, 0x98, 0x7c, 0xaf, 0xf4, 0xe5, 0x8c, 0x1b, 0x03, 0x61, 0xc1, 0x32, 0xb7, 0xd7, 0xac, + 0x16, 0xfa, 0x3f, 0x85, 0x02, 0xe3, 0x85, 0x98, 0xff, 0xe9, 0x70, 0xf3, 0x3f, 0x0f, 0xd2, 0x8e, + 0xd5, 0x72, 0x87, 0xef, 0x1d, 0xab, 0x35, 0xc0, 0xf0, 0x2d, 0x5f, 0x0b, 0x33, 0x5a, 0xb3, 0xb9, + 0xaa, 0x6d, 0xe2, 0xa2, 0x33, 0xaf, 0x36, 0x6c, 0x76, 0x3e, 0xba, 0x2b, 0x35, 0xb2, 0x2b, 0xfa, + 0x96, 0xf0, 0x4e, 0x1c, 0x07, 0x12, 0x93, 0xcf, 0x48, 0x86, 0x37, 0x67, 0x48, 0x68, 0x6c, 0x69, + 0x7e, 0xb4, 0x06, 0xf6, 0x26, 0xb8, 0x43, 0x27, 0xc0, 0x77, 0xf2, 0x9a, 0xf5, 0x7b, 0x69, 0x18, + 0x73, 0xe4, 0x5d, 0x68, 0x36, 0xd1, 0xe3, 0xb8, 0xa0, 0x26, 0xa1, 0x7b, 0xa4, 0x2f, 0x14, 0xde, + 0x9c, 0x76, 0x6b, 0x48, 0xe9, 0x87, 0x60, 0xe2, 0x0b, 0x31, 0xcd, 0x09, 0x51, 0x6c, 0x0f, 0x3a, + 0xb2, 0x88, 0xe4, 0xc5, 0xf7, 0xd9, 0x34, 0x4c, 0xbb, 0xf3, 0x88, 0x05, 0x6c, 0x37, 0xb6, 0xd0, + 0x6d, 0xa2, 0x0b, 0x4d, 0xac, 0xa5, 0xa5, 0xbd, 0x96, 0x86, 0x7e, 0x94, 0x8a, 0xa9, 0xf2, 0x5c, + 0xc9, 0x21, 0xab, 0x74, 0xb1, 0x74, 0x31, 0x8a, 0x60, 0xf2, 0xc2, 0x7c, 0x38, 0x0d, 0x50, 0x33, + 0xbd, 0xb9, 0xee, 0x01, 0x24, 0xf9, 0x72, 0xe1, 0x28, 0xf5, 0xac, 0xe2, 0x7e, 0xb1, 0xf1, 0x7b, + 0x0e, 0xc1, 0x2d, 0xb6, 0x7e, 0x25, 0x8d, 0xa4, 0xad, 0x4f, 0xcc, 0xef, 0xb4, 0x5b, 0x7a, 0x43, + 0xb3, 0xbb, 0xf7, 0x85, 0xc3, 0xc5, 0x4b, 0xae, 0x9b, 0x89, 0x65, 0x14, 0x7a, 0x65, 0x84, 0xc8, + 0x92, 0x1e, 0xb6, 0x4d, 0xbb, 0x87, 0x6d, 0x05, 0xf7, 0x7a, 0xfa, 0x10, 0x1f, 0x81, 0x7a, 0x4a, + 0x70, 0xb4, 0xd2, 0xc6, 0xc6, 0x9c, 0x85, 0xb5, 0x66, 0xc3, 0xda, 0xd9, 0x5e, 0xef, 0x04, 0x9d, + 0x1a, 0xa2, 0x75, 0x34, 0xb0, 0x74, 0x9c, 0xe6, 0x96, 0x8e, 0xd1, 0xf3, 0x24, 0xd1, 0xa3, 0xdf, + 0x81, 0x0d, 0x8e, 0x00, 0x0f, 0x03, 0x0c, 0x75, 0xb1, 0xb6, 0xe2, 0xba, 0x56, 0x89, 0x33, 0x71, + 0x56, 0x89, 0xdf, 0x26, 0x74, 0x90, 0x5c, 0xa8, 0x5e, 0x23, 0xd9, 0x51, 0x9d, 0xa9, 0x62, 0x3b, + 0x04, 0xde, 0x6b, 0x60, 0x7a, 0xdd, 0xff, 0xe2, 0x41, 0xcc, 0x27, 0xf6, 0xf0, 0x73, 0x78, 0x7b, + 0xdc, 0x15, 0x18, 0x9e, 0x85, 0x10, 0x74, 0x3d, 0x04, 0xd3, 0x22, 0x9b, 0xa9, 0xb1, 0x96, 0x53, + 0x22, 0xcb, 0x4f, 0x1e, 0x85, 0x4f, 0xa6, 0x61, 0x92, 0x5c, 0xa2, 0x33, 0xb7, 0x47, 0xbc, 0xf3, + 0x05, 0x8d, 0x92, 0x17, 0x07, 0xc5, 0x2c, 0x43, 0xa6, 0xa5, 0x1b, 0xe7, 0xdd, 0x5d, 0x70, 0xe7, + 0xd9, 0xbf, 0x92, 0x21, 0xdd, 0xe3, 0x4a, 0x06, 0x6f, 0x9f, 0xc2, 0x2b, 0xf7, 0x40, 0x77, 0x84, + 0xf5, 0x25, 0x97, 0xbc, 0x18, 0xff, 0x3e, 0x03, 0xb9, 0x2a, 0xd6, 0xac, 0xc6, 0x16, 0xfa, 0x40, + 0xba, 0xe7, 0x54, 0x61, 0x9c, 0x9f, 0x2a, 0x2c, 0xc0, 0xd8, 0x86, 0xde, 0xb2, 0xb1, 0x45, 0x3d, + 0x83, 0x82, 0x5d, 0x3b, 0x6d, 0xe2, 0x73, 0x2d, 0xb3, 0x71, 0x7e, 0x96, 0x99, 0xee, 0xb3, 0x6e, + 0x30, 0xa9, 0xd9, 0x05, 0xf2, 0x93, 0xea, 0xfe, 0xec, 0x18, 0x84, 0x1d, 0xd3, 0xb2, 0xc3, 0xa2, + 0xb3, 0x86, 0x50, 0xa9, 0x9a, 0x96, 0xad, 0xd2, 0x1f, 0x1d, 0x98, 0x37, 0x76, 0x5a, 0xad, 0x1a, + 0xbe, 0x68, 0xbb, 0xd3, 0x36, 0xf7, 0xdd, 0x31, 0x16, 0xcd, 0x8d, 0x8d, 0x0e, 0xa6, 0x8b, 0x06, + 0x59, 0x95, 0xbd, 0xc9, 0xc7, 0x21, 0xdb, 0xd2, 0xb7, 0x75, 0x3a, 0xd1, 0xc8, 0xaa, 0xf4, 0x45, + 0xbe, 0x1e, 0xf2, 0xfe, 0x1c, 0x87, 0x32, 0x7a, 0x2a, 0x47, 0x9a, 0xe6, 0xbe, 0x74, 0x47, 0x67, + 0xce, 0xe3, 0xbd, 0xce, 0xa9, 0x31, 0xf2, 0x9d, 0x3c, 0xf3, 0x6e, 0x98, 0x22, 0xfb, 0x1d, 0x54, + 0xe2, 0xe1, 0x33, 0x58, 0x0b, 0x37, 0x4c, 0xab, 0xe9, 0xca, 0x26, 0x7c, 0x82, 0xc1, 0xf2, 0xc5, + 0xdb, 0xa5, 0xe8, 0x59, 0x78, 0xf2, 0x9a, 0xf6, 0xde, 0x9c, 0xd3, 0x6d, 0x3a, 0x45, 0x9f, 0xd3, + 0xed, 0xad, 0x15, 0x6c, 0x6b, 0xe8, 0xef, 0xa5, 0x9e, 0x1a, 0x37, 0xf9, 0xff, 0x6b, 0x5c, 0x1f, + 0x8d, 0xa3, 0x61, 0x02, 0xec, 0x1d, 0xcb, 0x70, 0xe4, 0xc8, 0x02, 0x73, 0x05, 0x52, 0xe4, 0x3b, + 0xe0, 0x32, 0xff, 0xcd, 0x5d, 0x2a, 0x9d, 0x67, 0xd3, 0xd6, 0x09, 0x92, 0x3d, 0x3c, 0x83, 0xbc, + 0x0a, 0x57, 0xd3, 0x8f, 0x4b, 0xb5, 0x95, 0xe5, 0x25, 0x7d, 0x73, 0xab, 0xa5, 0x6f, 0x6e, 0xd9, + 0x9d, 0x92, 0xd1, 0xb1, 0xb1, 0xd6, 0xac, 0x6c, 0xa8, 0x34, 0xae, 0x32, 0x10, 0x3a, 0x22, 0x59, + 0x79, 0xcf, 0x21, 0xb1, 0xd1, 0x2d, 0xa8, 0x29, 0x21, 0x2d, 0xe5, 0xc9, 0x4e, 0x4b, 0xe9, 0xec, + 0xb4, 0x3c, 0x4c, 0xaf, 0xe8, 0xc2, 0xd4, 0x57, 0xf5, 0x9d, 0x16, 0x69, 0x2e, 0x24, 0x73, 0xdc, + 0x71, 0x2e, 0x82, 0x93, 0xe4, 0x9b, 0xcd, 0xff, 0x9b, 0x83, 0xec, 0xa2, 0xa5, 0xb5, 0xb7, 0xd0, + 0x73, 0x03, 0xfd, 0xf3, 0xb0, 0xda, 0x84, 0xa7, 0x9d, 0xe9, 0x7e, 0xda, 0x29, 0xf5, 0xd1, 0xce, + 0x4c, 0x40, 0x3b, 0xc3, 0x17, 0x95, 0xcf, 0xc0, 0x54, 0xc3, 0x6c, 0xb5, 0x70, 0xc3, 0x91, 0x47, + 0xa9, 0x49, 0x56, 0x73, 0x26, 0x54, 0x2e, 0x8d, 0x04, 0xdc, 0xc3, 0x76, 0x95, 0xae, 0xa1, 0x53, + 0xa5, 0xf7, 0x13, 0xd0, 0x2b, 0xd3, 0x90, 0x51, 0x9a, 0x9b, 0x98, 0x5b, 0x67, 0x4f, 0x05, 0xd6, + 0xd9, 0x4f, 0x42, 0xce, 0xd6, 0xac, 0x4d, 0x6c, 0xbb, 0xeb, 0x04, 0xf4, 0xcd, 0x8b, 0x03, 0x28, + 0x05, 0xe2, 0x00, 0x3e, 0x05, 0x32, 0x8e, 0xcc, 0x58, 0x84, 0x9d, 0xab, 0x7b, 0xc1, 0x4f, 0x64, + 0x3f, 0xeb, 0x94, 0x38, 0xeb, 0xd4, 0x5a, 0x25, 0x3f, 0x74, 0x63, 0x9d, 0xdd, 0x87, 0x35, 0xb9, + 0x22, 0xa6, 0x61, 0x1a, 0xa5, 0x6d, 0x6d, 0x13, 0xb3, 0x6a, 0xfa, 0x09, 0xee, 0x57, 0x65, 0xdb, + 0xbc, 0x5f, 0x67, 0x21, 0xf9, 0xfc, 0x04, 0xa7, 0x0a, 0x5b, 0x7a, 0xb3, 0x89, 0x0d, 0xd6, 0xb2, + 0xd9, 0xdb, 0x99, 0xd3, 0x90, 0x71, 0x78, 0x70, 0xf4, 0xc7, 0x31, 0x16, 0xf2, 0x47, 0xe4, 0x29, + 0xa7, 0x59, 0xd1, 0xc6, 0x9b, 0x4f, 0xf1, 0x6b, 0xaa, 0x22, 0x6e, 0x3b, 0xb4, 0x72, 0xbd, 0x1b, + 0xd7, 0x13, 0x20, 0x6b, 0x98, 0x4d, 0xdc, 0x77, 0x10, 0xa2, 0xb9, 0xe4, 0x27, 0x41, 0x16, 0x37, + 0x9d, 0x5e, 0x41, 0x22, 0xd9, 0x4f, 0x47, 0xcb, 0x52, 0xa5, 0x99, 0xe3, 0xf9, 0x06, 0xf5, 0xe2, + 0x36, 0xf9, 0x06, 0xf8, 0x2b, 0x63, 0x70, 0x94, 0xf6, 0x01, 0xd5, 0x9d, 0x75, 0x87, 0xd4, 0x3a, + 0x46, 0x0f, 0xf5, 0x1e, 0xb8, 0x8e, 0xf2, 0xca, 0x7e, 0x1c, 0xb2, 0x9d, 0x9d, 0x75, 0xcf, 0x08, + 0xa5, 0x2f, 0xc1, 0xa6, 0x9b, 0x1e, 0xca, 0x70, 0x26, 0x0d, 0x3a, 0x9c, 0x71, 0x43, 0x93, 0xe4, + 0x36, 0x7e, 0x7f, 0x20, 0xcb, 0x91, 0x64, 0x77, 0x20, 0xeb, 0x35, 0x0c, 0x9d, 0x82, 0x31, 0x6d, + 0xc3, 0xc6, 0x96, 0x6f, 0x26, 0xb2, 0x57, 0x67, 0xa8, 0x5c, 0xc7, 0x1b, 0xa6, 0xe5, 0x88, 0x65, + 0x82, 0x0e, 0x95, 0xee, 0x7b, 0xa0, 0xe5, 0x02, 0xb7, 0x43, 0x76, 0x23, 0x1c, 0x33, 0xcc, 0x79, + 0xdc, 0x66, 0x72, 0xa6, 0x28, 0x4e, 0x93, 0x16, 0xb0, 0xff, 0xc3, 0xbe, 0xae, 0x64, 0x66, 0x7f, + 0x57, 0x82, 0x3e, 0x1f, 0x77, 0xce, 0xdc, 0x05, 0xf4, 0xd0, 0x2c, 0x34, 0xf9, 0x69, 0x30, 0xd5, + 0x64, 0x2e, 0x5a, 0x0d, 0xdd, 0x6b, 0x25, 0xa1, 0xff, 0x71, 0x99, 0x7d, 0x45, 0xca, 0x04, 0x15, + 0x69, 0x11, 0xc6, 0xc9, 0x81, 0x1c, 0x47, 0x93, 0xb2, 0x5d, 0xf1, 0x0a, 0xc9, 0xb4, 0xce, 0xab, + 0x54, 0x40, 0x6c, 0xb3, 0x45, 0xf6, 0x8b, 0xea, 0xfd, 0x1c, 0x6f, 0xf6, 0x1d, 0x2d, 0xa1, 0xe4, + 0x9b, 0xe3, 0xef, 0xe4, 0xe0, 0xb2, 0xa2, 0x65, 0x76, 0x3a, 0x24, 0x0a, 0x45, 0x77, 0xc3, 0x7c, + 0x4b, 0x9a, 0x8b, 0x08, 0xfc, 0xa8, 0x6e, 0x7e, 0xbd, 0x1a, 0xd4, 0xe8, 0x9a, 0xc6, 0xb7, 0x84, + 0x8f, 0x32, 0x7b, 0xfb, 0x0f, 0x21, 0x42, 0xff, 0xc9, 0x68, 0x24, 0xef, 0x4d, 0x89, 0x9c, 0xae, + 0x8e, 0x29, 0xab, 0xe4, 0x9b, 0xcb, 0xd7, 0xd2, 0x70, 0x79, 0x37, 0x37, 0x6b, 0x46, 0xc7, 0x6b, + 0x30, 0x57, 0xf6, 0x69, 0x2f, 0xfc, 0x69, 0xdc, 0xc8, 0x1b, 0x50, 0x42, 0xea, 0x1e, 0x28, 0x2d, + 0x64, 0xb1, 0xe4, 0xfd, 0x29, 0x91, 0x1b, 0x50, 0x62, 0x93, 0x4f, 0x5e, 0xb8, 0x5f, 0xc8, 0xc0, + 0xd1, 0x45, 0xcb, 0xdc, 0x69, 0x77, 0xfc, 0x1e, 0xe8, 0x6f, 0x7a, 0x6f, 0xb8, 0xe6, 0x44, 0x4c, + 0x83, 0xab, 0x60, 0xd2, 0x62, 0xd6, 0x9c, 0xbf, 0xfd, 0x1a, 0x4c, 0x0a, 0xf6, 0x5e, 0xd2, 0x41, + 0x7a, 0x2f, 0xbf, 0x9f, 0xc9, 0x70, 0xfd, 0x4c, 0x77, 0xcf, 0x91, 0xed, 0xd1, 0x73, 0xfc, 0x75, + 0x3a, 0xe6, 0xa0, 0xda, 0x25, 0xa2, 0x90, 0xfe, 0xa2, 0x08, 0xb9, 0x4d, 0x92, 0x91, 0x75, 0x17, + 0x37, 0x88, 0xd5, 0x8c, 0x10, 0x57, 0xd9, 0xaf, 0xbe, 0x5c, 0xa5, 0xa0, 0x0e, 0xc7, 0x1a, 0xe0, + 0xa2, 0xb9, 0x4d, 0x5e, 0xa9, 0x1e, 0xcc, 0xc0, 0x94, 0x57, 0x7a, 0xa9, 0xd9, 0x41, 0x2f, 0xee, + 0xad, 0x51, 0xd3, 0x22, 0x1a, 0xb5, 0x6f, 0x9d, 0xd9, 0x1b, 0x75, 0xa4, 0xc0, 0xa8, 0xd3, 0x73, + 0x74, 0x99, 0x0a, 0x19, 0x5d, 0xd0, 0x73, 0x24, 0xd1, 0x98, 0xfa, 0x7c, 0xd7, 0x4a, 0x6a, 0xf3, + 0x68, 0x1e, 0x2c, 0x04, 0x23, 0xfb, 0xf7, 0xaf, 0x55, 0xf2, 0x4a, 0xf2, 0x91, 0x34, 0x1c, 0xdb, + 0xdf, 0x99, 0x3f, 0x96, 0xf7, 0x42, 0x73, 0xea, 0xd4, 0xf1, 0xbc, 0xd0, 0xc8, 0x1b, 0xbf, 0x49, + 0x17, 0x79, 0x34, 0x96, 0xb3, 0xf7, 0xfa, 0x77, 0xe2, 0x62, 0x87, 0x5f, 0x05, 0x89, 0x26, 0x2f, + 0xc0, 0x5f, 0x93, 0x60, 0xa2, 0x8a, 0xed, 0x65, 0x6d, 0xcf, 0xdc, 0xb1, 0x91, 0x26, 0xba, 0x3d, + 0xf7, 0x54, 0xc8, 0xb5, 0xc8, 0x2f, 0xec, 0x82, 0xc8, 0xab, 0x7a, 0xee, 0x6f, 0x11, 0xdf, 0x1f, + 0x4a, 0x5a, 0x65, 0xf9, 0xf9, 0x33, 0xc9, 0x22, 0xbb, 0xa3, 0x1e, 0x77, 0x43, 0xd9, 0xda, 0x89, + 0xb5, 0x77, 0x1a, 0x56, 0x74, 0xf2, 0xb0, 0x3c, 0x4f, 0x82, 0xe9, 0x2a, 0xb6, 0x4b, 0x9d, 0x05, + 0x6d, 0xd7, 0xb4, 0x74, 0x1b, 0x07, 0xef, 0x2a, 0x8a, 0x86, 0xe6, 0x34, 0x80, 0xee, 0xfd, 0xc6, + 0x22, 0x25, 0x04, 0x52, 0xd0, 0x6f, 0xc7, 0x75, 0x14, 0xe2, 0xf8, 0x18, 0x0a, 0x08, 0xb1, 0x7c, + 0x2c, 0xa2, 0x8a, 0x4f, 0x1e, 0x88, 0xaf, 0xa4, 0x19, 0x10, 0x05, 0xab, 0xb1, 0xa5, 0xef, 0xe2, + 0x66, 0x4c, 0x20, 0xdc, 0xdf, 0x7c, 0x20, 0x3c, 0x42, 0xb1, 0xdd, 0x57, 0x38, 0x3e, 0x86, 0xe1, + 0xbe, 0x12, 0x45, 0x70, 0x24, 0xc1, 0x0e, 0x9c, 0xae, 0x87, 0xad, 0x67, 0xde, 0x25, 0x2a, 0x56, + 0xdf, 0x64, 0x4b, 0x07, 0x4d, 0xb6, 0x81, 0x3a, 0x16, 0x5a, 0x76, 0x3f, 0x9d, 0xce, 0x24, 0xd1, + 0xb1, 0xf4, 0x2c, 0x3a, 0x79, 0xa1, 0xbf, 0x5f, 0x82, 0x13, 0xde, 0x29, 0xe0, 0x2a, 0xb6, 0xe7, + 0xb5, 0xce, 0xd6, 0xba, 0xa9, 0x59, 0xcd, 0xe0, 0xc5, 0xa1, 0x03, 0x9f, 0xf8, 0x43, 0x5f, 0x0e, + 0x82, 0x50, 0xe6, 0x41, 0xe8, 0xe9, 0x2a, 0xda, 0x93, 0x97, 0x61, 0x74, 0x32, 0x91, 0xde, 0xac, + 0xbf, 0xeb, 0x81, 0xf5, 0x0c, 0x0e, 0xac, 0x3b, 0x07, 0x65, 0x31, 0x79, 0xe0, 0x7e, 0x93, 0x8e, + 0x08, 0x01, 0xaf, 0xe6, 0xfb, 0x44, 0x01, 0x0b, 0xf1, 0x6a, 0x95, 0x42, 0xbd, 0x5a, 0x07, 0x1a, + 0x23, 0xfa, 0x7a, 0x24, 0x27, 0x3b, 0x46, 0x1c, 0xa2, 0xb7, 0xf1, 0xbb, 0x25, 0xc8, 0x93, 0x30, + 0x10, 0x01, 0x8f, 0x6f, 0x74, 0xbf, 0x28, 0x3a, 0xfb, 0xbc, 0xcb, 0xc7, 0xe2, 0x7a, 0x97, 0xa3, + 0x77, 0xc5, 0xf5, 0x21, 0xef, 0xe6, 0x76, 0x28, 0x88, 0xc5, 0x72, 0x11, 0xef, 0xc3, 0x41, 0xf2, + 0xa0, 0xfd, 0x57, 0x09, 0xc0, 0x69, 0xd0, 0xec, 0xec, 0xc3, 0x33, 0x45, 0xe1, 0xba, 0x29, 0xe8, + 0x57, 0xef, 0x00, 0x75, 0xa2, 0x0b, 0x28, 0x4a, 0xd1, 0x3f, 0x55, 0xf1, 0x50, 0x5c, 0xdf, 0x4a, + 0x9f, 0xab, 0xa1, 0xc0, 0x12, 0xcb, 0xdb, 0x32, 0xb4, 0xec, 0xe4, 0x01, 0xf9, 0xef, 0x69, 0xc8, + 0xd6, 0xcc, 0x2a, 0xb6, 0x0f, 0x6e, 0x0a, 0xc4, 0x3e, 0xb6, 0x4f, 0xca, 0x1d, 0xc6, 0xb1, 0xfd, + 0x5e, 0x84, 0x92, 0x17, 0xdd, 0xfb, 0xd2, 0x30, 0x55, 0x33, 0x8b, 0xde, 0xe2, 0x94, 0xb8, 0xaf, + 0xaa, 0xf8, 0xbd, 0x80, 0x5e, 0x05, 0xfd, 0x62, 0x0e, 0x74, 0x2f, 0x60, 0x7f, 0x7a, 0xc9, 0xcb, + 0xed, 0x36, 0x38, 0xba, 0x66, 0x34, 0x4d, 0x15, 0x37, 0x4d, 0xb6, 0xd2, 0x2d, 0xcb, 0x90, 0xd9, + 0x31, 0x9a, 0x26, 0x61, 0x39, 0xab, 0x92, 0x67, 0x27, 0xcd, 0xc2, 0x4d, 0x93, 0xf9, 0x06, 0x90, + 0x67, 0xf4, 0x2d, 0x09, 0x32, 0xce, 0xbf, 0xe2, 0xa2, 0x7e, 0xb7, 0x14, 0x33, 0x10, 0x81, 0x43, + 0x7e, 0x28, 0x96, 0xd0, 0x5d, 0x81, 0xb5, 0x7f, 0xea, 0xc1, 0x7a, 0x75, 0x58, 0x79, 0x01, 0x51, + 0xf8, 0x6b, 0xfe, 0xf2, 0x29, 0x18, 0x5b, 0x6f, 0x99, 0x8d, 0xf3, 0xfe, 0x79, 0x79, 0xf6, 0x2a, + 0x5f, 0x0f, 0x59, 0x4b, 0x33, 0x36, 0x31, 0xdb, 0x53, 0x38, 0xde, 0xd5, 0x17, 0x12, 0xaf, 0x17, + 0x95, 0x66, 0x41, 0xef, 0x8a, 0x13, 0x02, 0xa1, 0x47, 0xe5, 0xe3, 0xe9, 0xc3, 0xfc, 0x00, 0x27, + 0xcb, 0xf2, 0x30, 0x55, 0x2c, 0xd0, 0x1b, 0x38, 0x57, 0x2a, 0x67, 0x95, 0xbc, 0x44, 0x60, 0x76, + 0x64, 0x92, 0x20, 0xcc, 0x0e, 0xf9, 0x9f, 0x58, 0x98, 0x7b, 0x54, 0xfe, 0x30, 0x60, 0xfe, 0x6c, + 0x1a, 0xa6, 0x97, 0xf5, 0x8e, 0x1d, 0xe6, 0xed, 0x1f, 0x11, 0x05, 0xee, 0x25, 0x71, 0x4d, 0x65, + 0xae, 0x1c, 0xe1, 0xf0, 0x6f, 0xb1, 0xcc, 0xe1, 0xa8, 0x22, 0x46, 0x73, 0x2c, 0x85, 0x70, 0x40, + 0x6f, 0xcd, 0x13, 0x96, 0x64, 0x6c, 0x43, 0xc9, 0x2f, 0x64, 0xf4, 0x86, 0x52, 0x68, 0xd9, 0xc9, + 0xcb, 0xf7, 0x5b, 0x69, 0x38, 0xe6, 0x14, 0x1f, 0xb5, 0x2c, 0x15, 0x2e, 0xe6, 0xbe, 0xcb, 0x52, + 0xb1, 0x57, 0xc6, 0xf7, 0xf1, 0x32, 0x8c, 0x95, 0xf1, 0x7e, 0x44, 0x47, 0x2c, 0xe6, 0x90, 0x65, + 0xd8, 0x7e, 0x62, 0x8e, 0x58, 0x86, 0x1d, 0x5c, 0xcc, 0xd1, 0x4b, 0xb1, 0x03, 0x8a, 0xf9, 0xd0, + 0x16, 0x58, 0xdf, 0x24, 0x79, 0x62, 0x0e, 0x5d, 0xdb, 0x88, 0x10, 0x73, 0xec, 0x13, 0xbb, 0xe8, + 0x3d, 0x03, 0x0a, 0x7e, 0xc8, 0xeb, 0x1b, 0x83, 0xc0, 0x74, 0x88, 0x6b, 0x1c, 0xbf, 0x25, 0xc1, + 0x0c, 0xe3, 0xa2, 0xf7, 0x94, 0x39, 0x02, 0xa3, 0xd8, 0x53, 0xe6, 0xd8, 0x67, 0x80, 0x78, 0xce, + 0x46, 0x7f, 0x06, 0x28, 0xb2, 0xfc, 0xe4, 0xc1, 0xf9, 0x76, 0x06, 0x4e, 0x3a, 0x2c, 0xac, 0x98, + 0x4d, 0x7d, 0x63, 0x8f, 0x72, 0x71, 0x56, 0x6b, 0xed, 0xe0, 0x0e, 0xfa, 0x60, 0x5a, 0x14, 0xa5, + 0xff, 0x04, 0x60, 0xb6, 0xb1, 0x45, 0x03, 0xa9, 0x31, 0xa0, 0xee, 0x08, 0xab, 0xec, 0xfe, 0x92, + 0xbc, 0xa0, 0xe8, 0x15, 0x97, 0x88, 0x1a, 0xa0, 0xe7, 0x58, 0x85, 0x13, 0xde, 0x97, 0x6e, 0x07, + 0x8f, 0xd4, 0x7e, 0x07, 0x8f, 0xeb, 0x40, 0xd2, 0x9a, 0x4d, 0x0f, 0xaa, 0xee, 0xcd, 0x6c, 0x52, + 0xa6, 0xea, 0x64, 0x71, 0x72, 0x76, 0xb0, 0x7f, 0x34, 0x2f, 0x24, 0x67, 0x07, 0xdb, 0xf2, 0x2c, + 0xe4, 0xe8, 0x0d, 0x82, 0xde, 0x8a, 0x7e, 0xef, 0xcc, 0x2c, 0x17, 0x6f, 0xda, 0x55, 0x78, 0x35, + 0xbc, 0x2d, 0x96, 0x64, 0x7a, 0xf5, 0xd3, 0xbe, 0x9d, 0xac, 0x72, 0x0a, 0xf6, 0xf4, 0x81, 0x29, + 0x8f, 0x66, 0x37, 0xac, 0xd0, 0x6e, 0xb7, 0xf6, 0x6a, 0x2c, 0xf8, 0x4a, 0xac, 0xdd, 0xb0, 0x40, + 0x0c, 0x97, 0x74, 0x77, 0x0c, 0x97, 0xf8, 0xbb, 0x61, 0x1c, 0x1f, 0xc3, 0xd8, 0x0d, 0x8b, 0x22, + 0x38, 0x82, 0xf5, 0xc8, 0x2c, 0xb5, 0x9a, 0x59, 0x8c, 0xda, 0xb7, 0xf6, 0x3e, 0x84, 0x06, 0xbc, + 0xb3, 0x4b, 0xaf, 0xf0, 0xb5, 0x91, 0xb1, 0xb9, 0xe5, 0x27, 0x41, 0x6e, 0xc3, 0xb4, 0xb6, 0x35, + 0x77, 0xe3, 0xbe, 0xfb, 0xa4, 0x08, 0x8b, 0x0b, 0xbb, 0x40, 0xf2, 0xa8, 0x2c, 0xaf, 0x33, 0x1f, + 0x79, 0xb6, 0xde, 0x66, 0x51, 0x17, 0x9d, 0x47, 0xf9, 0x1a, 0x98, 0x66, 0xc1, 0x17, 0xcb, 0xb8, + 0x63, 0xe3, 0x26, 0x8b, 0x58, 0xc1, 0x27, 0xca, 0x67, 0x60, 0x8a, 0x25, 0x2c, 0xe8, 0x2d, 0xdc, + 0x61, 0x41, 0x2b, 0xb8, 0x34, 0xf9, 0x24, 0xe4, 0xf4, 0xce, 0x3d, 0x1d, 0xd3, 0x20, 0xfe, 0xff, + 0xe3, 0x2a, 0x7b, 0x93, 0xaf, 0x83, 0xa3, 0x2c, 0x9f, 0x67, 0xac, 0xd2, 0x03, 0x3b, 0xdd, 0xc9, + 0xe8, 0x8b, 0x83, 0x4c, 0x1c, 0x62, 0xc7, 0xe3, 0x75, 0x50, 0xd8, 0x69, 0x34, 0x30, 0x6e, 0xb2, + 0x93, 0x4d, 0xee, 0x6b, 0xcc, 0x48, 0xbd, 0xb1, 0xa7, 0x19, 0x87, 0x14, 0xaa, 0xf7, 0xe3, 0x27, + 0x20, 0x47, 0xaf, 0xbd, 0x40, 0xaf, 0x98, 0xe9, 0xa9, 0x8c, 0x33, 0xbc, 0x32, 0xae, 0xc1, 0x94, + 0x61, 0x3a, 0xc5, 0xad, 0x6a, 0x96, 0xb6, 0xdd, 0x89, 0x5a, 0x45, 0xa4, 0x74, 0xbd, 0x21, 0xa3, + 0x1c, 0xf8, 0x6d, 0xe9, 0x88, 0xca, 0x91, 0x91, 0xff, 0x37, 0x38, 0xba, 0xce, 0x22, 0x00, 0x74, + 0x18, 0xe5, 0x74, 0xb8, 0x8f, 0x5d, 0x17, 0xe5, 0x39, 0xfe, 0xcf, 0xa5, 0x23, 0x6a, 0x37, 0x31, + 0xf9, 0x67, 0x61, 0xc6, 0x79, 0x6d, 0x9a, 0x17, 0x5c, 0xc6, 0xa5, 0x70, 0x43, 0xa3, 0x8b, 0xfc, + 0x0a, 0xf7, 0xe3, 0xd2, 0x11, 0xb5, 0x8b, 0x94, 0x5c, 0x01, 0xd8, 0xb2, 0xb7, 0x5b, 0x8c, 0x70, + 0x26, 0x5c, 0x25, 0xbb, 0x08, 0x2f, 0x79, 0x3f, 0x2d, 0x1d, 0x51, 0x03, 0x24, 0xe4, 0x65, 0x98, + 0xb0, 0x2f, 0xda, 0x8c, 0x5e, 0x36, 0x7c, 0x73, 0xbb, 0x8b, 0x5e, 0xcd, 0xfd, 0x67, 0xe9, 0x88, + 0xea, 0x13, 0x90, 0x4b, 0x30, 0xde, 0x5e, 0x67, 0xc4, 0x72, 0x3d, 0xae, 0xfa, 0xef, 0x4d, 0x6c, + 0x75, 0xdd, 0xa3, 0xe5, 0xfd, 0xee, 0x30, 0xd6, 0xe8, 0xec, 0x32, 0x5a, 0x63, 0xc2, 0x8c, 0x15, + 0xdd, 0x7f, 0x1c, 0xc6, 0x3c, 0x02, 0x72, 0x09, 0x26, 0x3a, 0x86, 0xd6, 0xee, 0x6c, 0x99, 0x76, + 0xe7, 0xd4, 0x78, 0x97, 0x1f, 0x64, 0x38, 0xb5, 0x2a, 0xfb, 0x47, 0xf5, 0xff, 0x96, 0x9f, 0x04, + 0x27, 0x76, 0xc8, 0xf5, 0xa1, 0xca, 0x45, 0xbd, 0x63, 0xeb, 0xc6, 0xa6, 0x1b, 0x43, 0x96, 0xf6, + 0x26, 0xbd, 0x3f, 0xca, 0xb3, 0xec, 0x44, 0x14, 0x90, 0xb6, 0x89, 0xba, 0x37, 0xe3, 0x68, 0xb1, + 0x81, 0x83, 0x50, 0x4f, 0x83, 0x8c, 0xf3, 0x89, 0x9c, 0xd9, 0x9c, 0xe9, 0xbd, 0xd0, 0xd7, 0xad, + 0x3b, 0xa4, 0x01, 0x3b, 0x3f, 0x39, 0x63, 0xa3, 0x61, 0xae, 0x5a, 0xe6, 0xa6, 0x85, 0x3b, 0x1d, + 0xe6, 0x70, 0x18, 0x48, 0x71, 0x1a, 0xb8, 0xde, 0x59, 0xd1, 0x37, 0xa9, 0xf5, 0xc4, 0xfc, 0xdd, + 0x83, 0x49, 0x74, 0xb6, 0x59, 0xc6, 0x17, 0x88, 0x43, 0x30, 0x39, 0x7f, 0x43, 0x66, 0x9b, 0x6e, + 0x0a, 0xba, 0x16, 0xa6, 0x82, 0x8d, 0x8c, 0xde, 0x9d, 0xa5, 0xfb, 0xb6, 0x17, 0x7b, 0x43, 0xd7, + 0xc0, 0x0c, 0xaf, 0xd3, 0x81, 0x21, 0x46, 0x72, 0xbb, 0x42, 0x74, 0x35, 0x1c, 0xed, 0x6a, 0x58, + 0x6e, 0x4c, 0x91, 0x94, 0x1f, 0x53, 0xe4, 0x2a, 0x00, 0x5f, 0x8b, 0x7b, 0x92, 0xb9, 0x12, 0x26, + 0x3c, 0xbd, 0xec, 0x99, 0xe1, 0x1b, 0x29, 0x18, 0x77, 0x95, 0xad, 0x57, 0x06, 0x67, 0x7c, 0x31, + 0x02, 0x1b, 0x08, 0x6c, 0x9a, 0xcd, 0xa5, 0x39, 0xe3, 0x88, 0xef, 0xb6, 0x5b, 0xd3, 0xed, 0x96, + 0x7b, 0xf4, 0xad, 0x3b, 0x59, 0x5e, 0x05, 0xd0, 0x09, 0x46, 0x35, 0xff, 0x2c, 0xdc, 0xcd, 0x31, + 0xda, 0x03, 0xd5, 0x87, 0x00, 0x8d, 0x33, 0x8f, 0x65, 0x07, 0xd5, 0x26, 0x20, 0x5b, 0x5d, 0x2d, + 0x14, 0x95, 0xfc, 0x11, 0x79, 0x06, 0x40, 0x79, 0xe6, 0xaa, 0xa2, 0x96, 0x94, 0x72, 0x51, 0xc9, + 0xa7, 0xd0, 0xab, 0xd2, 0x30, 0xe1, 0x35, 0x82, 0x9e, 0x95, 0x54, 0x98, 0x6a, 0xf5, 0xbd, 0x9e, + 0x68, 0x7f, 0xa3, 0x0a, 0x2a, 0xd9, 0x53, 0xe1, 0xd2, 0x9d, 0x0e, 0x5e, 0xd0, 0xad, 0x8e, 0xad, + 0x9a, 0x17, 0x16, 0x4c, 0xcb, 0x8b, 0x9a, 0xec, 0x5e, 0xc3, 0x1f, 0xf2, 0xd9, 0xb1, 0x28, 0x9a, + 0x98, 0x1c, 0x8a, 0xc2, 0x16, 0x5b, 0x19, 0xf6, 0x13, 0x1c, 0xba, 0x36, 0xbd, 0xf7, 0xbe, 0x83, + 0x55, 0xf3, 0x42, 0xa7, 0x60, 0x34, 0x8b, 0x66, 0x6b, 0x67, 0xdb, 0xe8, 0x30, 0x9b, 0x20, 0xec, + 0xb3, 0x23, 0x1d, 0x72, 0xf9, 0xd8, 0x0c, 0x40, 0xb1, 0xb2, 0xbc, 0xac, 0x14, 0x6b, 0xa5, 0x4a, + 0x39, 0x7f, 0xc4, 0x91, 0x56, 0xad, 0x30, 0xb7, 0xec, 0x48, 0xe7, 0x59, 0x30, 0xee, 0xb6, 0x69, + 0x16, 0x06, 0x25, 0xe5, 0x86, 0x41, 0x91, 0x0b, 0x30, 0xee, 0xb6, 0x72, 0x36, 0x22, 0x3c, 0xae, + 0xfb, 0xd8, 0xeb, 0xb6, 0x66, 0xd9, 0xc4, 0x5f, 0xda, 0x25, 0x32, 0xa7, 0x75, 0xb0, 0xea, 0xfd, + 0x76, 0xe6, 0x09, 0x8c, 0x03, 0x19, 0x66, 0x0a, 0xcb, 0xcb, 0xf5, 0x8a, 0x5a, 0x2f, 0x57, 0x6a, + 0x4b, 0xa5, 0xf2, 0x22, 0x1d, 0x21, 0x4b, 0x8b, 0xe5, 0x8a, 0xaa, 0xd0, 0x01, 0xb2, 0x9a, 0x4f, + 0xd1, 0xcb, 0xef, 0xe6, 0xc6, 0x21, 0xd7, 0x26, 0xd2, 0x45, 0x5f, 0x93, 0x62, 0x9e, 0x77, 0xf7, + 0x70, 0x0a, 0xb9, 0x9e, 0x8b, 0xf3, 0x39, 0x4f, 0xf7, 0x38, 0x13, 0x7a, 0x06, 0xa6, 0xa8, 0x2d, + 0xd7, 0x21, 0xcb, 0xf7, 0xec, 0x86, 0x5b, 0x2e, 0x0d, 0x7d, 0x32, 0x1d, 0xe3, 0x10, 0x7c, 0x4f, + 0x8e, 0xe2, 0x19, 0x17, 0x7f, 0x31, 0xc8, 0x65, 0x77, 0x32, 0xcc, 0x94, 0xca, 0x35, 0x45, 0x2d, + 0x17, 0x96, 0x59, 0x16, 0x49, 0x3e, 0x05, 0xc7, 0xcb, 0x15, 0x16, 0xd3, 0xaf, 0x4a, 0xae, 0xd5, + 0x5e, 0x59, 0xad, 0xa8, 0xb5, 0x7c, 0x56, 0x3e, 0x09, 0x32, 0x7d, 0xe6, 0x6e, 0xa5, 0xcf, 0xc9, + 0x8f, 0x87, 0xab, 0x97, 0x4b, 0x2b, 0xa5, 0x5a, 0xbd, 0xb2, 0x50, 0x57, 0x2b, 0xe7, 0xaa, 0x0e, + 0x82, 0xaa, 0xb2, 0x5c, 0x70, 0x14, 0x29, 0x70, 0x09, 0xde, 0x98, 0x7c, 0x09, 0x1c, 0x25, 0x17, + 0x5c, 0x92, 0x9b, 0xed, 0x69, 0x79, 0xe3, 0xf2, 0x15, 0x70, 0xaa, 0x54, 0xae, 0xae, 0x2d, 0x2c, + 0x94, 0x8a, 0x25, 0xa5, 0x5c, 0xab, 0xaf, 0x2a, 0xea, 0x4a, 0xa9, 0x5a, 0x75, 0xfe, 0xcd, 0x4f, + 0x90, 0x2b, 0xc6, 0x68, 0x9f, 0x89, 0x3e, 0x20, 0xc1, 0xf4, 0x59, 0xad, 0xa5, 0x3b, 0x03, 0x05, + 0xb9, 0x7b, 0xb0, 0xeb, 0xb8, 0x88, 0x4d, 0xee, 0x28, 0x64, 0x0e, 0xe7, 0xe4, 0x05, 0xfd, 0x92, + 0x14, 0xf3, 0xb8, 0x08, 0x03, 0x82, 0x96, 0x38, 0xcb, 0x95, 0x16, 0x32, 0xb9, 0x79, 0x43, 0x3a, + 0xc6, 0x71, 0x11, 0x71, 0xf2, 0xf1, 0xc0, 0x7f, 0xf5, 0xb0, 0xc0, 0xcf, 0xc3, 0xd4, 0x5a, 0xb9, + 0xb0, 0x56, 0x5b, 0xaa, 0xa8, 0xa5, 0x9f, 0x21, 0xd1, 0xc6, 0xa7, 0x61, 0x62, 0xa1, 0xa2, 0xce, + 0x95, 0xe6, 0xe7, 0x95, 0x72, 0x3e, 0x2b, 0x5f, 0x0a, 0x97, 0x54, 0x15, 0xf5, 0x6c, 0xa9, 0xa8, + 0xd4, 0xd7, 0xca, 0x85, 0xb3, 0x85, 0xd2, 0x32, 0xe9, 0x23, 0x72, 0x11, 0xf7, 0x26, 0x8e, 0xa1, + 0x5f, 0xc8, 0x00, 0xd0, 0xaa, 0x3b, 0x96, 0x74, 0xf0, 0x76, 0xbd, 0xbf, 0x8c, 0x3b, 0x69, 0xf0, + 0xc9, 0x84, 0xb4, 0xdf, 0x12, 0x8c, 0x5b, 0xec, 0x03, 0x5b, 0x3e, 0xe9, 0x47, 0x87, 0x3e, 0xba, + 0xd4, 0x54, 0xef, 0x77, 0xf4, 0xc1, 0x38, 0x73, 0x84, 0x50, 0xc6, 0xe2, 0x21, 0xb9, 0x30, 0x1c, + 0x20, 0xd1, 0x8b, 0x53, 0x30, 0xc3, 0x57, 0xcc, 0xa9, 0x04, 0x31, 0xa6, 0xc4, 0x2a, 0xc1, 0xff, + 0x1c, 0x30, 0xb2, 0xce, 0xdc, 0xca, 0x86, 0x53, 0x70, 0x5b, 0x26, 0x3d, 0xf9, 0xed, 0x5a, 0x2c, + 0xf9, 0x94, 0xc3, 0xbc, 0x63, 0x74, 0xd0, 0xab, 0xd5, 0x6b, 0x17, 0xed, 0xbc, 0x84, 0xde, 0x97, + 0x81, 0x69, 0xee, 0xfa, 0x3e, 0xf4, 0xfd, 0x94, 0xc8, 0xd5, 0x5a, 0x81, 0x8b, 0x01, 0x53, 0x07, + 0xbd, 0x18, 0xf0, 0xcc, 0x2f, 0xa6, 0x60, 0x8c, 0x25, 0x12, 0x01, 0x57, 0xca, 0x8e, 0x2d, 0x70, + 0x14, 0x26, 0x17, 0x95, 0x5a, 0xbd, 0x5a, 0x2b, 0xa8, 0x35, 0x65, 0x3e, 0x9f, 0x92, 0x4f, 0xc0, + 0xb1, 0x55, 0x45, 0xad, 0x56, 0x1c, 0x79, 0xae, 0xaa, 0x15, 0xd2, 0x11, 0x52, 0x31, 0x3b, 0x30, + 0x2c, 0x2b, 0xf3, 0x8b, 0x4a, 0x7d, 0xae, 0x50, 0x55, 0xf2, 0x92, 0xf3, 0x6f, 0xb9, 0x52, 0x53, + 0xaa, 0xf5, 0xf9, 0x52, 0x41, 0xbd, 0x2f, 0x9f, 0x71, 0xfe, 0xad, 0xd6, 0xd4, 0x42, 0x4d, 0x59, + 0x2c, 0x15, 0xc9, 0x85, 0xf4, 0x4e, 0x0b, 0xc8, 0x3a, 0x83, 0xa9, 0xb2, 0xb2, 0x5a, 0xbb, 0x2f, + 0x9f, 0x8b, 0xef, 0xd5, 0xd7, 0x5d, 0xb9, 0x11, 0x7b, 0xf5, 0x45, 0x15, 0x9f, 0xfc, 0xfc, 0xf7, + 0xf3, 0x12, 0xe4, 0x29, 0x07, 0xca, 0xc5, 0x36, 0xb6, 0x74, 0x6c, 0x34, 0x30, 0x3a, 0x2f, 0x12, + 0x45, 0x74, 0x5f, 0x7c, 0x3d, 0x32, 0x46, 0x04, 0x2c, 0x4f, 0xfa, 0xd2, 0x65, 0xb4, 0x67, 0xf6, + 0x19, 0xed, 0x9f, 0x8b, 0xeb, 0xd6, 0xd7, 0xcd, 0xee, 0x50, 0x20, 0xfb, 0x4c, 0x1c, 0xb7, 0xbe, + 0x3e, 0x1c, 0x8c, 0x24, 0x38, 0x70, 0xc8, 0x98, 0x9e, 0x97, 0xd0, 0x3b, 0x27, 0x20, 0x4f, 0x19, + 0x0d, 0xf8, 0x4a, 0xfd, 0x1a, 0xbb, 0x0b, 0xb1, 0x1e, 0x23, 0x34, 0x9d, 0x7b, 0xd8, 0x3f, 0xcd, + 0x1f, 0xf6, 0xe7, 0x96, 0xde, 0xa4, 0xee, 0xfd, 0xed, 0xb8, 0xcd, 0x2f, 0xe0, 0x18, 0x15, 0x1e, + 0x0d, 0x34, 0xb9, 0xe6, 0x17, 0x59, 0xfc, 0x68, 0xee, 0xeb, 0x62, 0x37, 0xf2, 0x29, 0xa2, 0xc8, + 0x44, 0x5f, 0x4b, 0x18, 0xd7, 0x4b, 0x96, 0x73, 0x4c, 0x8b, 0xb8, 0xab, 0x2f, 0x39, 0x2f, 0xd9, + 0x7e, 0x1c, 0x24, 0x8f, 0xc2, 0x8f, 0xd2, 0x90, 0xa9, 0x9a, 0x96, 0x3d, 0x2c, 0x0c, 0xe2, 0xee, + 0xec, 0x05, 0x24, 0x50, 0x0d, 0x9f, 0x39, 0x25, 0xb7, 0xb3, 0x17, 0x5d, 0xfe, 0x08, 0xa2, 0xfb, + 0x1d, 0x85, 0x19, 0xca, 0x89, 0x77, 0xf5, 0xc5, 0xbf, 0xa5, 0x69, 0x7f, 0x75, 0xaf, 0x28, 0x22, + 0x67, 0x60, 0x2a, 0xb0, 0xb3, 0xe6, 0x5d, 0xfb, 0x1c, 0x4c, 0x43, 0x6f, 0x09, 0xe2, 0x32, 0xcf, + 0xe3, 0xd2, 0x6b, 0xde, 0xe8, 0xdd, 0x1e, 0x31, 0xac, 0x9e, 0x29, 0x4e, 0xa0, 0xc0, 0x88, 0xc2, + 0x93, 0x47, 0xe4, 0x01, 0x09, 0x72, 0xcc, 0xb3, 0x69, 0xa8, 0x08, 0xc4, 0x6d, 0x19, 0x9e, 0x10, + 0xc4, 0x3c, 0xa0, 0xa4, 0x61, 0xb7, 0x8c, 0xe8, 0xf2, 0x93, 0xc7, 0xe1, 0xdf, 0x99, 0xcb, 0x5e, + 0x61, 0x57, 0xd3, 0x5b, 0xda, 0x7a, 0x2b, 0x46, 0x80, 0xde, 0x4f, 0xc6, 0x3c, 0xa4, 0xe4, 0x55, + 0x95, 0x2b, 0x2f, 0x44, 0xe2, 0x3f, 0x0d, 0x13, 0x96, 0xb7, 0xb0, 0xe6, 0x9e, 0xe1, 0xee, 0x72, + 0x97, 0x64, 0xdf, 0x55, 0x3f, 0x67, 0xac, 0x13, 0x49, 0x42, 0xfc, 0x8c, 0xe4, 0x04, 0xc5, 0x64, + 0xa1, 0xd9, 0x5c, 0xc0, 0x9a, 0xbd, 0x63, 0xe1, 0x66, 0xac, 0x21, 0x82, 0x17, 0xd1, 0x44, 0x50, + 0x12, 0x5c, 0x88, 0xbc, 0x65, 0x1e, 0x9d, 0x27, 0xf7, 0xe9, 0x0d, 0x5c, 0x5e, 0x86, 0xd2, 0x25, + 0xbd, 0xc3, 0x83, 0xa4, 0xc2, 0x41, 0xf2, 0xb4, 0xc1, 0x98, 0x48, 0x1e, 0x90, 0xdf, 0x90, 0x60, + 0x86, 0xda, 0x09, 0xc3, 0xc6, 0xe4, 0xf7, 0x63, 0x7a, 0x42, 0x04, 0x2e, 0x17, 0x0a, 0xb2, 0x33, + 0x14, 0x58, 0xe2, 0xf8, 0x4d, 0x88, 0xf1, 0x91, 0x3c, 0x32, 0x9f, 0x9e, 0x06, 0x08, 0x78, 0xb7, + 0x7d, 0x32, 0xe7, 0x87, 0xab, 0x43, 0xef, 0x62, 0xf3, 0x8f, 0x2a, 0x17, 0x3b, 0x39, 0xe0, 0xb9, + 0xe6, 0x6d, 0xab, 0xf0, 0x89, 0x42, 0xa3, 0xca, 0x5f, 0xc4, 0xb4, 0x79, 0x99, 0x6f, 0x59, 0xdf, + 0xc1, 0x7d, 0xc0, 0x5e, 0xee, 0x53, 0x31, 0x8c, 0xdf, 0x7e, 0xac, 0xc4, 0x43, 0x6d, 0x79, 0x80, + 0xb9, 0xe4, 0x29, 0x38, 0xae, 0x2a, 0x85, 0xf9, 0x4a, 0x79, 0xf9, 0xbe, 0xe0, 0x4d, 0x33, 0x79, + 0x29, 0x38, 0x39, 0x49, 0x04, 0xb6, 0x37, 0xc6, 0xec, 0x03, 0x79, 0x59, 0x45, 0xcd, 0x56, 0x02, + 0xd3, 0xf9, 0xfe, 0xbd, 0x9a, 0x00, 0xd9, 0xc3, 0x44, 0xe1, 0x9f, 0x72, 0x30, 0xa9, 0xe2, 0x86, + 0xb9, 0xbd, 0x8d, 0x8d, 0x26, 0x6e, 0xa2, 0x37, 0x4a, 0x30, 0xe5, 0xed, 0x5a, 0x55, 0xb1, 0x8d, + 0x7e, 0xd6, 0xc7, 0xe6, 0x0c, 0x4c, 0x39, 0x95, 0xab, 0xf0, 0xf1, 0xb0, 0xb9, 0x34, 0xf9, 0x46, + 0x38, 0xe6, 0xa2, 0x50, 0xe9, 0x9a, 0xc2, 0xec, 0xff, 0x80, 0xde, 0x17, 0xc4, 0x68, 0x8d, 0xc7, + 0xe8, 0xae, 0x70, 0x61, 0x7a, 0xec, 0xce, 0x06, 0x59, 0x0d, 0x01, 0xeb, 0xcf, 0x3d, 0xb0, 0x9e, + 0xc9, 0x81, 0x35, 0x7f, 0x40, 0xfa, 0x87, 0x89, 0xda, 0x87, 0x25, 0x38, 0xee, 0x76, 0xc4, 0xa3, + 0x43, 0xeb, 0x53, 0x41, 0xb4, 0x9e, 0xc5, 0xa3, 0xb5, 0x28, 0x22, 0xcd, 0x5e, 0x2c, 0x87, 0xa0, + 0xf6, 0x55, 0x0f, 0xb5, 0x9f, 0xe3, 0x50, 0x5b, 0x1e, 0x52, 0x39, 0x87, 0x89, 0xde, 0x03, 0x10, + 0x18, 0xba, 0x5e, 0x28, 0x41, 0xde, 0xb1, 0x41, 0x69, 0xcf, 0xc0, 0xae, 0xf1, 0xab, 0xf0, 0x0e, + 0xa7, 0x6d, 0xba, 0x73, 0xe9, 0x3b, 0x9c, 0xba, 0x09, 0xf2, 0xb5, 0x30, 0xd3, 0xd8, 0xc2, 0x8d, + 0xf3, 0x25, 0xc3, 0xf5, 0xc8, 0xa0, 0xdb, 0xf7, 0x5d, 0xa9, 0x7c, 0x67, 0x78, 0x2f, 0x0f, 0x1d, + 0xbf, 0x70, 0xc5, 0x19, 0xc6, 0x41, 0xa6, 0x42, 0x80, 0xfa, 0x23, 0x0f, 0xa8, 0x32, 0x07, 0xd4, + 0xed, 0x03, 0x51, 0x8d, 0x07, 0x4b, 0x79, 0x00, 0x58, 0x10, 0x9c, 0xac, 0xac, 0xd6, 0x4a, 0x95, + 0x72, 0x7d, 0xad, 0xaa, 0xcc, 0xd7, 0xe7, 0x5c, 0x70, 0xaa, 0x79, 0x09, 0x7d, 0x27, 0x0d, 0x63, + 0x94, 0xad, 0x0e, 0xba, 0xc1, 0x87, 0xa0, 0xaf, 0xa7, 0x2d, 0x7a, 0xa7, 0x70, 0xdc, 0x0c, 0x4f, + 0x10, 0xac, 0x9c, 0x10, 0xdb, 0xe0, 0xa9, 0x30, 0x46, 0x41, 0x76, 0x1d, 0xb5, 0x4e, 0x87, 0x58, + 0x06, 0x8c, 0x8c, 0xea, 0x66, 0x17, 0x8c, 0xa1, 0xd1, 0x87, 0x8d, 0xe4, 0xad, 0xb9, 0xe7, 0x64, + 0xe8, 0xd4, 0xf3, 0x9c, 0x6e, 0x6f, 0x11, 0x47, 0x5c, 0xf4, 0x0c, 0x91, 0x6d, 0x81, 0x1b, 0x21, + 0xbb, 0xeb, 0xe4, 0xee, 0xe3, 0xd4, 0x4c, 0x33, 0xa1, 0x57, 0x0b, 0x87, 0x6c, 0xe5, 0xf4, 0xd3, + 0xe3, 0x29, 0x04, 0x9c, 0x15, 0xc8, 0xb4, 0xf4, 0x8e, 0xcd, 0x6c, 0xb6, 0xdb, 0x62, 0x11, 0x72, + 0x1f, 0x4a, 0x36, 0xde, 0x56, 0x09, 0x19, 0x74, 0x8f, 0x33, 0xe2, 0xfa, 0xa9, 0x02, 0x8e, 0xdd, + 0xa7, 0x60, 0x8c, 0x1d, 0x38, 0x24, 0x72, 0x90, 0x54, 0xf7, 0x55, 0x30, 0x3a, 0x9d, 0x50, 0x6d, + 0x93, 0xd7, 0x81, 0xff, 0xe7, 0x28, 0x8c, 0x2d, 0xe9, 0x1d, 0xdb, 0xb4, 0xf6, 0xd0, 0x43, 0x29, + 0x18, 0x3b, 0x8b, 0xad, 0x8e, 0x6e, 0x1a, 0xfb, 0x9c, 0x54, 0xae, 0x82, 0xc9, 0xb6, 0x85, 0x77, + 0x75, 0x73, 0xa7, 0xe3, 0x8f, 0x4f, 0xc1, 0x24, 0x19, 0xc1, 0xb8, 0xb6, 0x63, 0x6f, 0x99, 0x96, + 0x1f, 0xa7, 0xc4, 0x7d, 0x97, 0x4f, 0x03, 0xd0, 0xe7, 0xb2, 0xb6, 0x8d, 0x99, 0xeb, 0x4d, 0x20, + 0x45, 0x96, 0x21, 0x63, 0xeb, 0xdb, 0x98, 0x05, 0x2e, 0x26, 0xcf, 0x8e, 0x80, 0x49, 0x10, 0x40, + 0x16, 0x6c, 0x51, 0x52, 0xdd, 0x57, 0xf4, 0x65, 0x09, 0x26, 0x17, 0xb1, 0xcd, 0x58, 0xed, 0xa0, + 0x97, 0xa4, 0x84, 0xee, 0x0a, 0x71, 0xec, 0xda, 0x96, 0xd6, 0x71, 0xff, 0xf3, 0xb6, 0x3d, 0xf8, + 0x44, 0x3f, 0x8a, 0xb2, 0x14, 0x0c, 0xa1, 0x4e, 0x42, 0xea, 0xd9, 0x25, 0xea, 0xb1, 0xcb, 0x32, + 0xb3, 0xad, 0xae, 0xfd, 0x1f, 0x78, 0x9b, 0x2a, 0xf2, 0x38, 0x3a, 0x93, 0xfd, 0x6c, 0xa0, 0x3e, + 0xa1, 0xdd, 0xd1, 0xf8, 0x2e, 0xcb, 0xb1, 0x2f, 0x3a, 0x7e, 0x90, 0x12, 0x23, 0xa3, 0x7a, 0xb9, + 0x05, 0x0f, 0xb2, 0xf7, 0xe7, 0x24, 0x79, 0x6d, 0xfc, 0xa1, 0x04, 0x93, 0xd5, 0x2d, 0xf3, 0x82, + 0x2b, 0xc7, 0x67, 0x89, 0x01, 0x7b, 0x05, 0x4c, 0xec, 0x76, 0x81, 0xea, 0x27, 0x84, 0xdf, 0xde, + 0x8f, 0x5e, 0x20, 0xc5, 0x85, 0x29, 0xc0, 0xdc, 0xd0, 0xef, 0xd6, 0x97, 0x9f, 0x0c, 0x63, 0x8c, + 0x6b, 0xb6, 0xcc, 0x19, 0x0d, 0xb0, 0x9b, 0x39, 0x58, 0xc1, 0x0c, 0x5f, 0xc1, 0x78, 0xc8, 0x87, + 0x57, 0x2e, 0x79, 0xe4, 0xff, 0x34, 0x4d, 0xc2, 0x98, 0xb8, 0xc0, 0x17, 0x87, 0x00, 0x3c, 0x7a, + 0x24, 0x25, 0xba, 0x19, 0xe0, 0x49, 0xc0, 0xe3, 0xe0, 0x40, 0xf7, 0x00, 0xf5, 0x25, 0x97, 0xbc, + 0x3c, 0x5f, 0x95, 0x81, 0xa9, 0x79, 0x7d, 0x63, 0xc3, 0xeb, 0x24, 0x5f, 0x26, 0xd8, 0x49, 0x86, + 0x3b, 0x92, 0x38, 0x76, 0xee, 0x8e, 0x65, 0x61, 0xc3, 0xad, 0x14, 0x6b, 0x4e, 0x5d, 0xa9, 0xf2, + 0x75, 0x70, 0xd4, 0x1d, 0x17, 0x82, 0x1d, 0xe5, 0x84, 0xda, 0x9d, 0x8c, 0x7e, 0x20, 0xbc, 0x93, + 0xec, 0x4a, 0x34, 0x58, 0xa5, 0x90, 0x06, 0x78, 0x07, 0x4c, 0x6f, 0xd1, 0xdc, 0x64, 0xb9, 0xcd, + 0xed, 0x2c, 0x4f, 0x76, 0x85, 0x89, 0x5e, 0xc1, 0x9d, 0x8e, 0xb6, 0x89, 0x55, 0x3e, 0x73, 0x57, + 0xf3, 0x95, 0xe2, 0x5c, 0x7a, 0x26, 0xb6, 0x29, 0x2d, 0x50, 0x93, 0x11, 0x68, 0xc7, 0x19, 0xc8, + 0x2c, 0xe8, 0x2d, 0x8c, 0x7e, 0x39, 0x0d, 0x13, 0xce, 0xac, 0xcd, 0x68, 0x38, 0x6f, 0x01, 0xb7, + 0xb2, 0x7f, 0x4a, 0x89, 0x5e, 0xf6, 0xe9, 0xd0, 0x99, 0xf5, 0x68, 0x84, 0xb4, 0x1b, 0xb1, 0x4b, + 0x3d, 0x23, 0x49, 0x8d, 0xe0, 0x6a, 0x16, 0x67, 0xea, 0xb1, 0xb1, 0xd1, 0x32, 0x35, 0x6e, 0xc1, + 0xb9, 0xdb, 0x14, 0xba, 0x1e, 0xf2, 0xee, 0xe9, 0x20, 0xd3, 0x5e, 0xd5, 0x0d, 0xc3, 0x3b, 0x7e, + 0xbe, 0x2f, 0x9d, 0xf7, 0x95, 0x88, 0x8c, 0xe0, 0x43, 0xea, 0xce, 0x4a, 0x0f, 0xd1, 0xec, 0x6b, + 0x61, 0x66, 0x7d, 0xcf, 0xc6, 0x1d, 0x96, 0x8b, 0x15, 0x9b, 0x51, 0xbb, 0x52, 0x03, 0xf1, 0xb7, + 0xa3, 0x22, 0xfd, 0x44, 0x14, 0x18, 0x4f, 0xd4, 0x4b, 0x03, 0xcc, 0x00, 0x8f, 0x43, 0xbe, 0x5c, + 0x99, 0x57, 0x88, 0x97, 0xa3, 0xeb, 0x36, 0xb6, 0x89, 0x5e, 0x2e, 0xc1, 0x14, 0x71, 0x19, 0x72, + 0x51, 0xb8, 0x5a, 0x60, 0x3e, 0x82, 0x1e, 0x16, 0xf6, 0x80, 0x24, 0x55, 0x0e, 0x16, 0x10, 0x2e, + 0xe8, 0x0d, 0xbd, 0xd5, 0x2d, 0xe8, 0xac, 0xda, 0x95, 0xda, 0x03, 0x10, 0xa9, 0x27, 0x20, 0x1f, + 0x16, 0x72, 0x83, 0xec, 0xc7, 0xdd, 0x61, 0xa1, 0xf2, 0x7b, 0x12, 0x4c, 0x3a, 0x93, 0x14, 0x17, + 0x94, 0x0a, 0x07, 0x8a, 0x69, 0xb4, 0xf6, 0xfc, 0x65, 0x11, 0xf7, 0x35, 0x56, 0x23, 0xf9, 0x2b, + 0xe1, 0x99, 0x3b, 0x11, 0x51, 0x80, 0x97, 0x11, 0xe1, 0xf7, 0x21, 0xa1, 0xf9, 0x7c, 0x1f, 0xe6, + 0x0e, 0x0b, 0xbe, 0x6f, 0x65, 0x21, 0xb7, 0xd6, 0x26, 0xc8, 0xbd, 0x5a, 0x12, 0x89, 0x65, 0xbf, + 0xef, 0x08, 0x8c, 0x63, 0x66, 0xb5, 0xcc, 0x86, 0xd6, 0x5a, 0xf5, 0xcf, 0x12, 0xfa, 0x09, 0xf2, + 0xed, 0xcc, 0x2b, 0x96, 0x1e, 0xc4, 0xbc, 0x36, 0x32, 0xcc, 0x3b, 0x91, 0x51, 0xe0, 0xb8, 0xd1, + 0x8d, 0x70, 0xac, 0xa9, 0x77, 0xb4, 0xf5, 0x16, 0x56, 0x8c, 0x86, 0xb5, 0x47, 0xc5, 0xc1, 0xa6, + 0x55, 0xfb, 0x3e, 0xc8, 0x77, 0x42, 0xb6, 0x63, 0xef, 0xb5, 0xe8, 0x3c, 0x31, 0x78, 0x3a, 0x29, + 0xb4, 0xa8, 0xaa, 0x93, 0x5d, 0xa5, 0x7f, 0x05, 0x6f, 0xfa, 0x1e, 0x13, 0xbc, 0xe9, 0xfb, 0x56, + 0xc8, 0x99, 0x96, 0xbe, 0xa9, 0xd3, 0x9b, 0x9b, 0x66, 0xf6, 0x45, 0x33, 0xa4, 0xa6, 0x40, 0x85, + 0x64, 0x51, 0x59, 0x56, 0xf9, 0xc9, 0x30, 0xa1, 0x6f, 0x6b, 0x9b, 0xf8, 0x5e, 0xdd, 0xa0, 0x67, + 0x3d, 0x67, 0x6e, 0x39, 0xb5, 0xef, 0xe0, 0x15, 0xfb, 0xae, 0xfa, 0x59, 0xd1, 0x87, 0xd2, 0xa2, + 0x21, 0x97, 0x48, 0xdd, 0x28, 0xa8, 0x23, 0xb9, 0xf1, 0x1c, 0xbd, 0x4e, 0x28, 0x18, 0x52, 0x38, + 0x5b, 0xc9, 0x0f, 0xde, 0x5f, 0x4a, 0xc3, 0xf8, 0xbc, 0x79, 0xc1, 0x20, 0x8a, 0x7e, 0x9b, 0x98, + 0xad, 0xdb, 0xe3, 0x78, 0x2c, 0x7f, 0xa1, 0x68, 0xe4, 0x59, 0x18, 0x52, 0x5b, 0xb7, 0xc8, 0x10, + 0x18, 0x22, 0x5b, 0x8e, 0xe0, 0x35, 0x8f, 0x51, 0xe5, 0x24, 0x2f, 0xd7, 0x3f, 0x93, 0x20, 0x33, + 0x6f, 0x99, 0x6d, 0xf4, 0x8e, 0x54, 0x0c, 0x37, 0xa1, 0xa6, 0x65, 0xb6, 0x6b, 0xe4, 0x9e, 0x36, + 0xff, 0x00, 0x50, 0x30, 0x4d, 0xbe, 0x0d, 0xc6, 0xdb, 0x66, 0x47, 0xb7, 0xdd, 0x69, 0xc4, 0xcc, + 0x2d, 0x8f, 0xe9, 0xd9, 0x9a, 0x57, 0x59, 0x26, 0xd5, 0xcb, 0xee, 0xf4, 0xda, 0x44, 0x84, 0x8e, + 0x5c, 0x1c, 0x31, 0xba, 0x77, 0xd5, 0x75, 0xa5, 0xa2, 0x57, 0x04, 0x91, 0x7c, 0x1a, 0x8f, 0xe4, + 0xe3, 0x7a, 0x48, 0xd8, 0x32, 0xdb, 0x43, 0xd9, 0xd8, 0x7f, 0x8d, 0x87, 0xea, 0xd3, 0x39, 0x54, + 0xaf, 0x17, 0x2a, 0x33, 0x79, 0x44, 0x3f, 0x94, 0x01, 0x20, 0x66, 0xc6, 0x9a, 0x33, 0x01, 0x12, + 0xb3, 0xb1, 0x9e, 0x97, 0x09, 0xc8, 0xb2, 0xc0, 0xcb, 0xf2, 0x86, 0x10, 0x2b, 0x86, 0x90, 0x0f, + 0x91, 0x68, 0x01, 0xb2, 0x3b, 0xce, 0x67, 0x26, 0x51, 0x41, 0x12, 0xe4, 0x55, 0xa5, 0x7f, 0xa2, + 0x3f, 0x4d, 0x41, 0x96, 0x24, 0xc8, 0xa7, 0x01, 0xc8, 0xc0, 0x4e, 0x8f, 0x92, 0xa5, 0xc8, 0x10, + 0x1e, 0x48, 0x21, 0xda, 0xaa, 0x37, 0xd9, 0x67, 0x6a, 0x32, 0xfb, 0x09, 0xce, 0xdf, 0x64, 0xb8, + 0x27, 0xb4, 0x98, 0x01, 0x10, 0x48, 0x71, 0xfe, 0x26, 0x6f, 0xcb, 0x78, 0x83, 0x86, 0xd0, 0xce, + 0xa8, 0x7e, 0x82, 0xf7, 0xf7, 0xb2, 0x77, 0xf1, 0x9a, 0xfb, 0x37, 0x49, 0x71, 0x26, 0xc3, 0x44, + 0x2d, 0xe7, 0xfc, 0x22, 0x72, 0x24, 0x53, 0x77, 0x32, 0x7a, 0xa3, 0xa7, 0x36, 0xf3, 0x9c, 0xda, + 0xdc, 0x1c, 0x43, 0xbc, 0xc9, 0x2b, 0xcf, 0x37, 0xb2, 0x30, 0x51, 0x36, 0x9b, 0x4c, 0x77, 0x02, + 0x13, 0xc6, 0xcf, 0x64, 0x63, 0x4d, 0x18, 0x3d, 0x1a, 0x21, 0x0a, 0x72, 0x37, 0xaf, 0x20, 0x62, + 0x14, 0x82, 0xfa, 0x21, 0xcf, 0x41, 0x8e, 0x68, 0xef, 0xfe, 0x1b, 0xbd, 0xa2, 0x48, 0x10, 0xd1, + 0xaa, 0xec, 0xcf, 0xff, 0x70, 0x3a, 0xf6, 0x5f, 0x20, 0x4b, 0x2a, 0x18, 0xb1, 0xbb, 0xc3, 0x57, + 0x34, 0x1d, 0x5d, 0x51, 0x29, 0xba, 0xa2, 0x99, 0xee, 0x8a, 0xc6, 0x59, 0x07, 0x08, 0xd3, 0x90, + 0xe4, 0x75, 0xfc, 0x1f, 0xc7, 0x00, 0xca, 0xda, 0xae, 0xbe, 0x49, 0x77, 0x87, 0xbf, 0xec, 0xce, + 0x7f, 0xd8, 0x3e, 0xee, 0x7f, 0x0d, 0x0c, 0x84, 0xb7, 0xc1, 0x18, 0x1b, 0xf7, 0x58, 0x45, 0xae, + 0xe4, 0x2a, 0xe2, 0x53, 0xa1, 0x66, 0xe9, 0x45, 0x5b, 0x75, 0xf3, 0x73, 0x97, 0x0f, 0xa7, 0xbb, + 0x2e, 0x1f, 0xee, 0xbd, 0x07, 0x11, 0x72, 0x25, 0x31, 0x7a, 0xbf, 0xf0, 0x05, 0x4e, 0x01, 0x7e, + 0x02, 0x35, 0x0a, 0x69, 0x82, 0xb7, 0xc2, 0x98, 0xe9, 0x6d, 0x68, 0x4b, 0xa1, 0xeb, 0x60, 0x25, + 0x63, 0xc3, 0x54, 0xdd, 0x9c, 0x82, 0x9b, 0x5f, 0x42, 0x7c, 0x8c, 0xe4, 0x68, 0xd4, 0xc9, 0x45, + 0x37, 0x1c, 0x99, 0x53, 0x8f, 0x73, 0xba, 0xbd, 0xb5, 0xac, 0x1b, 0xe7, 0x3b, 0xe8, 0xe7, 0xc4, + 0x2c, 0xc8, 0x00, 0xfe, 0xe9, 0x78, 0xf8, 0xf3, 0xd1, 0x5e, 0xaa, 0x3c, 0x6a, 0x77, 0x86, 0x51, + 0xe9, 0xcd, 0x6d, 0x08, 0x80, 0xb7, 0x43, 0x8e, 0x32, 0xca, 0x3a, 0xd1, 0x33, 0xa1, 0xf8, 0x79, + 0x94, 0x54, 0xf6, 0x07, 0x7a, 0x9f, 0x87, 0xe3, 0x59, 0x0e, 0xc7, 0xb9, 0x03, 0x71, 0x96, 0x38, + 0xa4, 0x67, 0x9e, 0x08, 0x63, 0x4c, 0xd2, 0xf2, 0x4c, 0xb0, 0x15, 0xe7, 0x8f, 0xc8, 0x00, 0xb9, + 0x15, 0x73, 0x17, 0xd7, 0xcc, 0x7c, 0xca, 0x79, 0x76, 0xf8, 0xab, 0x99, 0xf9, 0x34, 0x7a, 0xed, + 0x38, 0x8c, 0x7b, 0x71, 0xa0, 0xbe, 0x94, 0x86, 0x7c, 0xd1, 0xc2, 0x9a, 0x8d, 0x17, 0x2c, 0x73, + 0x9b, 0xd6, 0x48, 0xdc, 0x23, 0xfb, 0x37, 0x84, 0x5d, 0x3c, 0xbc, 0xf8, 0x4c, 0xdd, 0x85, 0x85, + 0x60, 0x49, 0x17, 0x21, 0xd3, 0xee, 0x22, 0x24, 0x7a, 0xbb, 0x90, 0xcb, 0x87, 0x68, 0x29, 0xc9, + 0x37, 0xb5, 0xcf, 0xa5, 0x21, 0x5b, 0x6c, 0x99, 0x06, 0x46, 0x85, 0x18, 0xe7, 0xd3, 0x7a, 0xef, + 0x44, 0xa0, 0xe7, 0xa4, 0x45, 0x6d, 0x0d, 0x5f, 0x00, 0x4e, 0xd9, 0x82, 0xb2, 0x15, 0x1b, 0xa4, + 0x22, 0x49, 0x27, 0x2f, 0xd0, 0xef, 0xa4, 0x61, 0x82, 0x46, 0x54, 0x2a, 0xb4, 0x5a, 0xe8, 0x31, + 0xbe, 0x50, 0x7b, 0xc4, 0xd2, 0x42, 0x1f, 0x16, 0x3e, 0x16, 0xe3, 0xd5, 0xca, 0xa3, 0x1d, 0x23, + 0xb4, 0x54, 0xbc, 0x53, 0x1a, 0x62, 0x7b, 0x69, 0x7d, 0x19, 0x4a, 0x5e, 0xd4, 0x7f, 0x99, 0x76, + 0x0c, 0x00, 0xe3, 0xfc, 0xaa, 0x85, 0x77, 0x75, 0x7c, 0x01, 0x5d, 0xee, 0x0b, 0x7b, 0x7f, 0xb8, + 0x98, 0xb7, 0x0a, 0x2f, 0xe2, 0x04, 0x48, 0x86, 0x6e, 0x65, 0x4d, 0xb6, 0xfc, 0x4c, 0xac, 0x17, + 0xef, 0x8e, 0xe1, 0x13, 0x20, 0xa3, 0x06, 0xb3, 0x0b, 0xae, 0xd9, 0x84, 0x73, 0x91, 0xbc, 0x60, + 0x3f, 0x36, 0x06, 0xe3, 0x6b, 0x46, 0xa7, 0xdd, 0xd2, 0x3a, 0x5b, 0xe8, 0xdf, 0x24, 0xc8, 0xd1, + 0x7b, 0xe4, 0xd0, 0x4f, 0x73, 0x51, 0x29, 0x7e, 0x7e, 0x07, 0x5b, 0xae, 0x0b, 0x0e, 0x7d, 0xe9, + 0x7d, 0xcd, 0x3d, 0xfa, 0x90, 0x24, 0x3a, 0x49, 0x75, 0x0b, 0x65, 0x17, 0xd7, 0x85, 0x07, 0x42, + 0x68, 0xeb, 0x0d, 0x7b, 0xc7, 0xf2, 0x2e, 0x4d, 0x7f, 0x82, 0x18, 0x95, 0x55, 0xfa, 0x97, 0xea, + 0xfd, 0x8e, 0x34, 0x18, 0x63, 0x89, 0xfb, 0xb6, 0x93, 0xf6, 0x9f, 0xb2, 0x3e, 0x09, 0x39, 0xcd, + 0xb2, 0xf5, 0x8e, 0xcd, 0x36, 0x58, 0xd9, 0x9b, 0xd3, 0x5d, 0xd2, 0xa7, 0x35, 0xab, 0xe5, 0xc6, + 0xaf, 0xf1, 0x12, 0xd0, 0xef, 0x09, 0xcd, 0x1f, 0xa3, 0x6b, 0x1e, 0x0f, 0xf2, 0x7b, 0x07, 0x58, + 0xa3, 0xbe, 0x14, 0x2e, 0x51, 0x0b, 0x35, 0xa5, 0x4e, 0xc3, 0x9d, 0x78, 0x91, 0x4d, 0x9a, 0xe8, + 0xbd, 0x52, 0x60, 0xfd, 0x6e, 0x8f, 0x1b, 0x23, 0x98, 0x14, 0xfd, 0x31, 0xc2, 0x4b, 0x88, 0xd8, + 0xad, 0xe6, 0x16, 0x61, 0x25, 0xf1, 0x45, 0xd8, 0xdf, 0x11, 0xde, 0x4d, 0xf2, 0x44, 0xd9, 0x67, + 0x0d, 0x30, 0xea, 0x9e, 0xa9, 0x8f, 0x08, 0xed, 0x0c, 0xf5, 0x2b, 0xe9, 0x10, 0x61, 0x7b, 0xcb, + 0x18, 0x8c, 0x2d, 0x6a, 0xad, 0x16, 0xb6, 0xf6, 0x9c, 0x21, 0x29, 0xef, 0x72, 0xb8, 0xa2, 0x19, + 0xfa, 0x06, 0xee, 0xd8, 0xd1, 0x9d, 0xe5, 0xfb, 0x85, 0x63, 0x18, 0xb3, 0x32, 0x66, 0xbb, 0xe9, + 0x87, 0xc8, 0xfc, 0x26, 0xc8, 0xe8, 0xc6, 0x86, 0xc9, 0xba, 0xcc, 0xee, 0x55, 0x7b, 0xf7, 0x67, + 0x32, 0x75, 0x21, 0x19, 0x05, 0xc3, 0x18, 0x0b, 0x72, 0x91, 0x7c, 0xcf, 0xf9, 0xbb, 0x19, 0x98, + 0x76, 0x99, 0x28, 0x19, 0x4d, 0x7c, 0x31, 0xb8, 0x14, 0xf3, 0xf2, 0x8c, 0xe8, 0x11, 0xcc, 0xee, + 0xfa, 0x10, 0x52, 0x21, 0x22, 0xad, 0x01, 0x34, 0x34, 0x1b, 0x6f, 0x9a, 0x96, 0xee, 0xf5, 0x87, + 0x4f, 0x8a, 0x43, 0xad, 0x48, 0xff, 0xde, 0x53, 0x03, 0x74, 0xe4, 0x3b, 0x61, 0x12, 0x7b, 0x51, + 0x16, 0xdc, 0xa5, 0x9a, 0x48, 0xbc, 0x82, 0xf9, 0xd1, 0x5f, 0x0a, 0x9d, 0xf4, 0x14, 0xa9, 0x66, + 0x3c, 0xcc, 0xea, 0x83, 0xb5, 0xa1, 0xb5, 0xf2, 0x4a, 0x41, 0xad, 0x2e, 0x15, 0x96, 0x97, 0x4b, + 0xe5, 0x45, 0x2f, 0x64, 0x90, 0x0c, 0x33, 0xf3, 0x95, 0x73, 0xe5, 0x40, 0x4c, 0xa7, 0x0c, 0x5a, + 0x85, 0x71, 0x57, 0x5e, 0xbd, 0x7c, 0x31, 0x83, 0x32, 0x63, 0xbe, 0x98, 0x81, 0x24, 0xc7, 0x38, + 0xd3, 0x1b, 0x9e, 0x83, 0x0e, 0x79, 0x46, 0x7f, 0xac, 0x41, 0x96, 0xac, 0xa9, 0xa3, 0x77, 0x93, + 0x6d, 0xc0, 0x76, 0x4b, 0x6b, 0x60, 0xb4, 0x1d, 0xc3, 0x1a, 0x77, 0x2f, 0xd5, 0x48, 0xef, 0xbb, + 0x54, 0x83, 0x3c, 0x32, 0xab, 0xef, 0x78, 0xaf, 0x75, 0x7c, 0x95, 0x66, 0xe1, 0x0f, 0x45, 0x46, + 0xee, 0xae, 0xd0, 0xe5, 0x7f, 0xc6, 0x66, 0x88, 0x4a, 0x86, 0xf3, 0x14, 0xcf, 0x12, 0x15, 0xdb, + 0x87, 0x89, 0xe2, 0x68, 0x04, 0x17, 0xbf, 0x67, 0x20, 0x5b, 0x6d, 0xb7, 0x74, 0x1b, 0xfd, 0x56, + 0x7a, 0x28, 0x98, 0xd1, 0x8b, 0x50, 0xa4, 0xbe, 0x17, 0xa1, 0xf8, 0xbb, 0xae, 0x19, 0x81, 0x5d, + 0xd7, 0x1a, 0xbe, 0x68, 0xf3, 0xbb, 0xae, 0xb7, 0xb1, 0xb0, 0x7f, 0x74, 0xcf, 0xf6, 0x71, 0x3d, + 0x44, 0x4a, 0xaa, 0xd5, 0x23, 0x9e, 0xe4, 0x99, 0x27, 0xb2, 0xb0, 0x76, 0x00, 0xb9, 0xb9, 0x4a, + 0xad, 0x56, 0x59, 0xc9, 0x1f, 0x21, 0xf1, 0x90, 0x2a, 0xab, 0xf9, 0x94, 0x3c, 0x01, 0xd9, 0x52, + 0xb9, 0xac, 0xa8, 0xf9, 0x34, 0x09, 0xb4, 0x57, 0xaa, 0x2d, 0x2b, 0x79, 0x89, 0x8f, 0x8a, 0x1f, + 0x69, 0x7e, 0xf3, 0x65, 0x27, 0xa9, 0x5e, 0x62, 0x86, 0x78, 0x38, 0x3f, 0xc9, 0x2b, 0xd7, 0xaf, + 0x4b, 0x90, 0x5d, 0xc1, 0xd6, 0x26, 0x46, 0x3f, 0x1f, 0x63, 0x93, 0x6f, 0x43, 0xb7, 0x3a, 0x34, + 0x2c, 0xa1, 0xbf, 0xc9, 0x17, 0x4c, 0x93, 0xaf, 0x81, 0xe9, 0x0e, 0x6e, 0x98, 0x46, 0xd3, 0xcd, + 0x44, 0xfb, 0x23, 0x3e, 0x11, 0xbd, 0x32, 0x26, 0x64, 0x84, 0xd1, 0xa1, 0xec, 0xd4, 0xc5, 0x01, + 0xa6, 0x57, 0xa9, 0xc9, 0x03, 0xf3, 0x03, 0xc9, 0xf9, 0xa9, 0xbd, 0x87, 0x5e, 0x29, 0xbc, 0xfb, + 0x7a, 0x23, 0xe4, 0x88, 0x9a, 0xba, 0x63, 0x74, 0xef, 0xfe, 0x98, 0xe5, 0x91, 0xe7, 0xe0, 0x58, + 0x07, 0xb7, 0x70, 0xc3, 0xc6, 0x4d, 0xa7, 0xe9, 0xaa, 0x7d, 0x3b, 0x85, 0xfd, 0xd9, 0xd1, 0x9f, + 0x07, 0x01, 0xbc, 0x83, 0x07, 0xf0, 0xda, 0x1e, 0xa2, 0x74, 0x2a, 0x14, 0x6e, 0x2b, 0x3b, 0xd5, + 0xa8, 0xb6, 0x4c, 0x6f, 0x51, 0xdc, 0x7d, 0x77, 0xbe, 0x6d, 0xd9, 0xdb, 0x2d, 0xf2, 0x8d, 0x1d, + 0x30, 0x70, 0xdf, 0xe5, 0x59, 0x18, 0xd3, 0x8c, 0x3d, 0xf2, 0x29, 0x13, 0x51, 0x6b, 0x37, 0x13, + 0x7a, 0xad, 0x87, 0xfc, 0x5d, 0x1c, 0xf2, 0x37, 0x88, 0xb1, 0x9b, 0x3c, 0xf0, 0xbf, 0x34, 0x06, + 0xd9, 0x55, 0xad, 0x63, 0x63, 0xf4, 0x7f, 0x4b, 0xa2, 0xc8, 0x5f, 0x0b, 0x33, 0x1b, 0x66, 0x63, + 0xa7, 0x83, 0x9b, 0x7c, 0xa3, 0xec, 0x4a, 0x1d, 0x06, 0xe6, 0xf2, 0xf5, 0x90, 0x77, 0x13, 0x19, + 0x59, 0x77, 0x1b, 0x7e, 0x5f, 0x3a, 0x89, 0xb1, 0xde, 0x59, 0xd5, 0x2c, 0xbb, 0xb2, 0x41, 0xd2, + 0xbc, 0x18, 0xeb, 0xc1, 0x44, 0x0e, 0xfa, 0x5c, 0x04, 0xf4, 0x63, 0xe1, 0xd0, 0x8f, 0x0b, 0x40, + 0x2f, 0x17, 0x60, 0x7c, 0x43, 0x6f, 0x61, 0xf2, 0xc3, 0x04, 0xf9, 0xa1, 0xd7, 0x98, 0x44, 0x64, + 0xef, 0x8d, 0x49, 0x0b, 0x7a, 0x0b, 0xab, 0xde, 0x6f, 0xee, 0x44, 0x06, 0xfc, 0x89, 0xcc, 0x32, + 0xf5, 0xa7, 0x75, 0x0c, 0x2f, 0x43, 0xdb, 0xc6, 0xee, 0xe2, 0x9b, 0xc1, 0x0e, 0xb7, 0x34, 0x35, + 0x5b, 0x23, 0x60, 0x4c, 0xa9, 0xe4, 0x99, 0xf7, 0x0b, 0x91, 0xba, 0xfd, 0x42, 0x9e, 0x2f, 0xc5, + 0xeb, 0x11, 0x5d, 0x66, 0x43, 0x5a, 0xd4, 0xba, 0x0b, 0x10, 0xb5, 0x14, 0xbd, 0x77, 0x07, 0x98, + 0x86, 0x66, 0x61, 0x7b, 0x35, 0xe8, 0x89, 0x91, 0x55, 0xf9, 0x44, 0xe2, 0xca, 0xd7, 0xa9, 0x6a, + 0xdb, 0x98, 0x14, 0x56, 0x74, 0xbe, 0x31, 0x17, 0xad, 0x7d, 0xe9, 0x7e, 0xff, 0x9b, 0x1d, 0x76, + 0xff, 0xdb, 0xab, 0x8e, 0xc9, 0x37, 0xc3, 0x37, 0x64, 0x40, 0x2a, 0xee, 0xd8, 0x8f, 0xea, 0xee, + 0xf7, 0x47, 0xc2, 0x7e, 0x2e, 0xac, 0x3f, 0xdb, 0xb1, 0x0f, 0xb7, 0xf7, 0x8d, 0xa9, 0x25, 0x62, + 0xfe, 0x34, 0x61, 0x75, 0x4b, 0x5e, 0x47, 0xde, 0x21, 0x79, 0x0e, 0x96, 0x0f, 0xa4, 0x0e, 0x6e, + 0x9a, 0x23, 0xda, 0x3f, 0x05, 0x7a, 0x06, 0xef, 0xdd, 0xed, 0x78, 0x32, 0x5c, 0x44, 0x46, 0xb2, + 0xbd, 0x4e, 0x44, 0x39, 0xa5, 0xd2, 0x17, 0xf4, 0x2a, 0x61, 0xb7, 0x73, 0x2a, 0xb6, 0x48, 0x57, + 0xc2, 0x78, 0x36, 0x95, 0xd8, 0x35, 0xb3, 0x11, 0xc5, 0x26, 0x0f, 0xd8, 0xf7, 0x82, 0xae, 0x82, + 0x85, 0x03, 0x23, 0x86, 0x5e, 0x27, 0xbc, 0x1d, 0x45, 0xab, 0xdd, 0x67, 0xbd, 0x30, 0x9e, 0xbc, + 0xc5, 0x36, 0xab, 0x22, 0x0b, 0x4e, 0x5e, 0xe2, 0xdf, 0x95, 0x20, 0x47, 0xb7, 0x20, 0xd1, 0xdb, + 0x52, 0x31, 0xee, 0xe7, 0xb7, 0x79, 0x17, 0x42, 0xef, 0x3d, 0xce, 0x9a, 0x03, 0xe7, 0x6a, 0x98, + 0x89, 0xe5, 0x6a, 0xc8, 0x9f, 0xe3, 0x14, 0x68, 0x47, 0xb4, 0x8e, 0x09, 0x4f, 0x27, 0xe3, 0xb4, + 0xb0, 0x9e, 0x0c, 0x25, 0x8f, 0xf7, 0x0b, 0xb3, 0x30, 0x45, 0x8b, 0x3e, 0xa7, 0x37, 0x37, 0xb1, + 0x8d, 0xde, 0x9b, 0xfe, 0xf1, 0x41, 0x5d, 0x2e, 0xc3, 0xd4, 0x05, 0xc2, 0xf6, 0xb2, 0xb6, 0x67, + 0xee, 0xd8, 0x6c, 0xe5, 0xe2, 0xfa, 0xc8, 0x75, 0x0f, 0x5a, 0xcf, 0x59, 0xfa, 0x87, 0xca, 0xfd, + 0xef, 0xc8, 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x1c, 0x31, 0xb2, 0x82, 0x49, 0xf2, 0x49, 0xc8, + 0xed, 0xea, 0xf8, 0x42, 0xa9, 0xc9, 0xac, 0x5b, 0xf6, 0x86, 0xfe, 0x40, 0x78, 0xdf, 0x36, 0x08, + 0x37, 0xe3, 0x25, 0x59, 0x2d, 0x14, 0xdb, 0xbd, 0xed, 0xcb, 0xd6, 0x08, 0xce, 0x14, 0xf3, 0xd7, + 0xb8, 0x16, 0x63, 0x28, 0x62, 0x98, 0xe1, 0xcc, 0x87, 0xf2, 0x88, 0x3c, 0xb1, 0x42, 0x05, 0x30, + 0xe4, 0x1b, 0x5e, 0xc5, 0xe2, 0x4b, 0xf4, 0x29, 0x3a, 0x79, 0xc9, 0xbf, 0x51, 0x82, 0x89, 0x2a, + 0xb6, 0x17, 0x74, 0xdc, 0x6a, 0x76, 0x90, 0x75, 0x70, 0xd3, 0xe8, 0x26, 0xc8, 0x6d, 0x10, 0x62, + 0xfd, 0xce, 0x2d, 0xb0, 0x6c, 0xe8, 0x0d, 0x69, 0xd1, 0x1d, 0x61, 0xb6, 0xfa, 0xe6, 0x72, 0x3b, + 0x14, 0x98, 0xc4, 0x3c, 0x7a, 0xa3, 0x4b, 0x4e, 0x1e, 0xa5, 0x77, 0x4a, 0x30, 0xc5, 0xee, 0x7d, + 0x2c, 0xb4, 0xf4, 0x4d, 0x03, 0xed, 0x0c, 0xa1, 0x85, 0xc8, 0x37, 0x43, 0x56, 0x73, 0xa8, 0xb1, + 0xad, 0x57, 0xd4, 0xb3, 0xf3, 0x24, 0xe5, 0xa9, 0x34, 0x63, 0x8c, 0xd0, 0xad, 0xbe, 0x62, 0xbb, + 0x3c, 0x8f, 0x30, 0x74, 0x6b, 0xdf, 0xc2, 0x93, 0x47, 0xec, 0xeb, 0x12, 0x1c, 0x67, 0x0c, 0x9c, + 0xc5, 0x96, 0xad, 0x37, 0xb4, 0x16, 0x45, 0xee, 0xc5, 0xa9, 0x61, 0x40, 0xb7, 0x04, 0xd3, 0xbb, + 0x41, 0xb2, 0x0c, 0xc2, 0x33, 0x3d, 0x21, 0xe4, 0x18, 0x50, 0xf9, 0x1f, 0x63, 0x84, 0xc0, 0xe4, + 0xa4, 0xca, 0xd1, 0x1c, 0x61, 0x08, 0x4c, 0x61, 0x26, 0x92, 0x87, 0xf8, 0x15, 0x2c, 0x34, 0x8f, + 0xdf, 0x7d, 0x7e, 0x59, 0x18, 0xdb, 0x35, 0x98, 0x24, 0x58, 0xd2, 0x1f, 0xd9, 0x32, 0x44, 0x84, + 0x12, 0x7b, 0xfd, 0x0e, 0xbb, 0x6a, 0xce, 0xfb, 0x57, 0x0d, 0xd2, 0x41, 0xe7, 0x00, 0xfc, 0x4f, + 0xc1, 0x4e, 0x3a, 0x15, 0xd6, 0x49, 0xa7, 0xc5, 0x3a, 0xe9, 0xb7, 0x0a, 0x07, 0x4b, 0xe9, 0xcd, + 0xf6, 0xc1, 0xd5, 0x43, 0x2c, 0x4c, 0x46, 0xff, 0xd2, 0x93, 0xd7, 0x8b, 0xd7, 0x66, 0xba, 0x2f, + 0xf8, 0xff, 0xe4, 0x50, 0xe6, 0x53, 0xc1, 0xfe, 0x40, 0xea, 0xea, 0x0f, 0x0e, 0x60, 0x49, 0x5f, + 0x07, 0x47, 0x69, 0x11, 0x45, 0x8f, 0xad, 0x2c, 0x0d, 0x05, 0xd1, 0x95, 0xcc, 0xc7, 0xb5, 0x13, + 0x54, 0x02, 0x4f, 0x08, 0x03, 0x2c, 0x7d, 0xc6, 0x33, 0x76, 0xe3, 0x2a, 0x48, 0x18, 0x67, 0x23, + 0x70, 0x0b, 0xcd, 0x50, 0x6b, 0x77, 0x8d, 0xdc, 0x06, 0x88, 0xbe, 0x9a, 0x19, 0xc6, 0x88, 0x70, + 0x37, 0x64, 0x88, 0x8b, 0xbb, 0x14, 0xba, 0xa4, 0xe1, 0x17, 0xe9, 0x5f, 0xd5, 0x88, 0x2f, 0xda, + 0x4b, 0x47, 0x54, 0xf2, 0xa7, 0x7c, 0x3d, 0x1c, 0x5d, 0xd7, 0x1a, 0xe7, 0x37, 0x2d, 0x73, 0x87, + 0xdc, 0x9b, 0x66, 0xb2, 0x0b, 0xd8, 0xc8, 0x45, 0x96, 0xfc, 0x07, 0xf9, 0x16, 0xd7, 0x74, 0xc8, + 0xf6, 0x33, 0x1d, 0x96, 0x8e, 0x30, 0xe3, 0x41, 0x7e, 0xa2, 0xd7, 0xe9, 0xe4, 0x22, 0x3b, 0x9d, + 0xa5, 0x23, 0x6e, 0xb7, 0x23, 0xcf, 0xc3, 0x78, 0x53, 0xdf, 0x25, 0x5b, 0xd5, 0x64, 0xd6, 0xd5, + 0xef, 0xe8, 0xf2, 0xbc, 0xbe, 0x4b, 0x37, 0xb6, 0x97, 0x8e, 0xa8, 0xde, 0x9f, 0xf2, 0x22, 0x4c, + 0x90, 0x6d, 0x01, 0x42, 0x66, 0x3c, 0xd6, 0xb1, 0xe4, 0xa5, 0x23, 0xaa, 0xff, 0xaf, 0x63, 0x7d, + 0x64, 0xc8, 0xd9, 0x8f, 0xbb, 0xdc, 0xed, 0xf6, 0x54, 0xac, 0xed, 0x76, 0x47, 0x16, 0x74, 0xc3, + 0xfd, 0x24, 0x64, 0x1b, 0x44, 0xc2, 0x69, 0x26, 0x61, 0xfa, 0x2a, 0xdf, 0x01, 0x99, 0x6d, 0xcd, + 0x72, 0x27, 0xcf, 0xd7, 0xf6, 0xa7, 0xbb, 0xa2, 0x59, 0xe7, 0x1d, 0x04, 0x9d, 0xbf, 0xe6, 0xc6, + 0x20, 0x4b, 0x04, 0xe7, 0x3d, 0xa0, 0x77, 0x64, 0xa8, 0x19, 0x52, 0x34, 0x0d, 0x67, 0xd8, 0xaf, + 0x99, 0xee, 0x01, 0x99, 0x3f, 0x48, 0x0d, 0xc7, 0x82, 0xec, 0x79, 0x23, 0xbe, 0x14, 0x7a, 0x23, + 0x7e, 0xd7, 0xd5, 0xcc, 0x99, 0xee, 0xab, 0x99, 0xfd, 0xe5, 0x83, 0x6c, 0x7f, 0x47, 0x95, 0x3f, + 0x1f, 0xc0, 0x74, 0xe9, 0x16, 0x44, 0xf8, 0x0c, 0xbc, 0xa5, 0x1b, 0x81, 0x3a, 0xbb, 0xaf, 0x31, + 0x3b, 0xa5, 0xb8, 0x46, 0x4d, 0x1f, 0xf6, 0x92, 0xef, 0x9b, 0x7e, 0x3b, 0x03, 0xa7, 0xe8, 0x05, + 0xe0, 0xbb, 0xb8, 0x66, 0xf2, 0x37, 0x95, 0xa2, 0x3f, 0x19, 0x8a, 0xd2, 0xf4, 0x18, 0x70, 0xa4, + 0x9e, 0x03, 0xce, 0xbe, 0x43, 0xca, 0x99, 0x3e, 0x87, 0x94, 0xb3, 0xf1, 0x56, 0x0e, 0x3f, 0x1a, + 0xd4, 0x9f, 0x55, 0x5e, 0x7f, 0x6e, 0x0f, 0x01, 0xa8, 0x97, 0x5c, 0x86, 0x62, 0xdf, 0xbc, 0xdb, + 0xd3, 0x94, 0x2a, 0xa7, 0x29, 0x77, 0x0d, 0xce, 0x48, 0xf2, 0xda, 0xf2, 0xfb, 0x19, 0xb8, 0xc4, + 0x67, 0xa6, 0x8c, 0x2f, 0x30, 0x45, 0xf9, 0xd2, 0x50, 0x14, 0x25, 0x7e, 0x0c, 0x84, 0xa4, 0x35, + 0xe6, 0x4f, 0x85, 0xcf, 0x0e, 0x75, 0x03, 0xe5, 0xc9, 0x26, 0x44, 0x59, 0x4e, 0x42, 0x8e, 0xf6, + 0x30, 0x0c, 0x1a, 0xf6, 0x16, 0xb3, 0xbb, 0x11, 0x3b, 0x71, 0x24, 0xca, 0xdb, 0x08, 0xf4, 0x87, + 0xad, 0x6b, 0xd4, 0x76, 0x2c, 0xa3, 0x64, 0xd8, 0x26, 0xfa, 0xc5, 0xa1, 0x28, 0x8e, 0xe7, 0x0d, + 0x27, 0x0d, 0xe2, 0x0d, 0x37, 0xd0, 0x2a, 0x87, 0x5b, 0x83, 0x43, 0x59, 0xe5, 0x08, 0x29, 0x3c, + 0x79, 0xfc, 0xde, 0x25, 0xc1, 0x49, 0x36, 0xd9, 0x9a, 0xe3, 0x2d, 0x44, 0x74, 0xdf, 0x30, 0x80, + 0x3c, 0xee, 0x9a, 0x49, 0xec, 0x2e, 0x3b, 0xf2, 0xc2, 0x9f, 0x94, 0x8a, 0xbc, 0x53, 0x85, 0x9b, + 0x0e, 0x76, 0x71, 0x38, 0x14, 0xa4, 0xc4, 0xae, 0x52, 0x89, 0xc1, 0x46, 0xf2, 0x98, 0xbd, 0x4c, + 0x82, 0x1c, 0x3d, 0xa7, 0x85, 0xd6, 0x12, 0x71, 0x98, 0xe0, 0xa3, 0x3c, 0x0b, 0xec, 0xc8, 0x51, + 0x6e, 0x12, 0x3b, 0xc3, 0x16, 0x67, 0x2f, 0xae, 0x27, 0x2b, 0x23, 0x70, 0x21, 0x4c, 0xc3, 0x64, + 0x15, 0xdb, 0x45, 0xcd, 0xb2, 0x74, 0x6d, 0x73, 0x58, 0x1e, 0xdf, 0xa2, 0xde, 0xc3, 0xe8, 0x87, + 0x29, 0xd1, 0xf3, 0x34, 0xde, 0x42, 0xb8, 0xcb, 0x6a, 0x48, 0x2c, 0xc1, 0x87, 0x84, 0xce, 0xcc, + 0xf4, 0xa3, 0x36, 0x02, 0x8f, 0xed, 0x34, 0x8c, 0xb9, 0x67, 0xf1, 0x6e, 0xe2, 0xce, 0x67, 0x6e, + 0xd9, 0xdb, 0xee, 0x31, 0x18, 0xf2, 0xbc, 0xff, 0x0c, 0x18, 0x7a, 0x4d, 0x4c, 0x47, 0xf9, 0xe8, + 0x83, 0x84, 0xf1, 0xda, 0x58, 0x1c, 0x77, 0xf8, 0xc3, 0x3a, 0x3a, 0xf8, 0xe1, 0x31, 0xb6, 0x1c, + 0xb9, 0xac, 0xd9, 0xf8, 0x22, 0xfa, 0xb2, 0x04, 0x63, 0x55, 0x6c, 0x3b, 0xe3, 0xad, 0xc3, 0xfe, + 0x81, 0x35, 0x5c, 0x0e, 0xac, 0x78, 0x4c, 0xb0, 0x35, 0x8c, 0x7b, 0x60, 0xa2, 0x6d, 0x99, 0x0d, + 0xdc, 0xe9, 0xb0, 0xd5, 0x8b, 0xa0, 0xa3, 0x5a, 0xaf, 0xd1, 0x9f, 0xb0, 0x36, 0xbb, 0xea, 0xfe, + 0xa3, 0xfa, 0xbf, 0xc7, 0x35, 0x03, 0x28, 0x25, 0x56, 0xc1, 0x51, 0x9b, 0x01, 0x51, 0x85, 0x27, + 0x0f, 0xf4, 0x17, 0x24, 0x98, 0xaa, 0x62, 0xdb, 0x93, 0x62, 0x8c, 0x4d, 0x8e, 0x70, 0x78, 0x39, + 0x28, 0xa5, 0x83, 0x41, 0x29, 0x7e, 0x1d, 0x27, 0x2f, 0x4d, 0x8f, 0xd8, 0x08, 0xaf, 0xe3, 0x14, + 0xe3, 0x60, 0x04, 0xc7, 0xd7, 0x1e, 0x07, 0x13, 0x84, 0x17, 0xd2, 0x60, 0x7f, 0x25, 0xe3, 0x37, + 0xde, 0xaf, 0x24, 0xd4, 0x78, 0xef, 0x84, 0xec, 0xb6, 0x66, 0x9d, 0xef, 0x90, 0x86, 0x3b, 0x29, + 0x62, 0xb6, 0xaf, 0x38, 0xd9, 0x55, 0xfa, 0x57, 0x6f, 0x3f, 0xcd, 0x6c, 0x3c, 0x3f, 0xcd, 0x87, + 0xd2, 0xb1, 0x46, 0x42, 0x3a, 0x77, 0x18, 0x62, 0x93, 0x8f, 0x31, 0x6e, 0x46, 0x94, 0x9d, 0xbc, + 0x72, 0xbc, 0x58, 0x82, 0x71, 0x67, 0xdc, 0x26, 0xf6, 0xf8, 0xb9, 0x83, 0xab, 0x43, 0x6f, 0x43, + 0x3f, 0x66, 0x0f, 0xec, 0x4a, 0x64, 0x78, 0xe6, 0x7d, 0x8c, 0x1e, 0x38, 0xaa, 0xf0, 0xe4, 0xf1, + 0x78, 0x0f, 0xc5, 0x83, 0xb4, 0x07, 0xf4, 0x66, 0x09, 0xa4, 0x45, 0x6c, 0x8f, 0xda, 0x8a, 0x7c, + 0xa7, 0x70, 0x88, 0x23, 0x4e, 0x60, 0x84, 0xe7, 0xd9, 0x45, 0x3c, 0x9c, 0x06, 0x24, 0x16, 0xdb, + 0x48, 0x88, 0x81, 0xe4, 0x51, 0xfb, 0x00, 0x45, 0x8d, 0x6e, 0x2e, 0xfc, 0xc2, 0x10, 0x7a, 0xd5, + 0xd1, 0x2e, 0x7c, 0xb8, 0x02, 0x24, 0x34, 0x0e, 0xab, 0xbd, 0xf5, 0x2a, 0x7c, 0x24, 0xd7, 0x5f, + 0x82, 0xd3, 0xd8, 0xb7, 0x70, 0xe3, 0x3c, 0x6e, 0x06, 0xaf, 0x13, 0x1b, 0x14, 0xba, 0x53, 0x30, + 0xd6, 0xa0, 0xd4, 0x08, 0x78, 0xe3, 0xaa, 0xfb, 0x1a, 0xe3, 0x2e, 0x77, 0xbe, 0x23, 0xa2, 0xbf, + 0x8f, 0xf0, 0x2e, 0x77, 0x81, 0xe2, 0x47, 0x60, 0xb6, 0xd0, 0x59, 0x46, 0xa9, 0x61, 0x1a, 0xe8, + 0x3f, 0x1f, 0x1c, 0x96, 0x2b, 0x60, 0x42, 0x6f, 0x98, 0x06, 0x09, 0x43, 0xe1, 0x1e, 0x02, 0xf2, + 0x12, 0xdc, 0xaf, 0xca, 0xb6, 0x79, 0xbf, 0xce, 0x76, 0xcd, 0xfd, 0x84, 0x41, 0x8d, 0x09, 0x87, + 0xf5, 0xc3, 0x32, 0x26, 0x7a, 0x94, 0x9d, 0x3c, 0x64, 0x9f, 0xf2, 0xbd, 0xdb, 0x68, 0x57, 0xf8, + 0xa8, 0x58, 0x05, 0x1e, 0x64, 0x38, 0x0b, 0xd6, 0xe2, 0x50, 0x86, 0xb3, 0x08, 0x06, 0x46, 0x70, + 0x63, 0x85, 0x8f, 0x63, 0xe2, 0x6b, 0xc0, 0x07, 0x40, 0x67, 0x78, 0xe6, 0xe1, 0x80, 0xe8, 0x1c, + 0x8e, 0x89, 0xf8, 0x11, 0x16, 0x22, 0x93, 0x59, 0x3c, 0xe8, 0xbf, 0x0c, 0x03, 0x9c, 0xdb, 0x07, + 0xf1, 0x57, 0xa0, 0xde, 0x0a, 0x31, 0x6e, 0xa1, 0xdf, 0x27, 0x41, 0x87, 0xca, 0x50, 0x10, 0x14, + 0xbb, 0x85, 0x5e, 0xa4, 0xfc, 0xe4, 0x01, 0x7c, 0x91, 0x04, 0x33, 0xc4, 0x47, 0xa0, 0x85, 0x35, + 0x8b, 0x76, 0x94, 0x43, 0x71, 0x94, 0x7f, 0x8f, 0x70, 0x80, 0x1f, 0x5e, 0x0e, 0x3e, 0x1f, 0x43, + 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x23, 0xd9, 0x46, 0xc9, 0x7b, 0x2c, 0x30, 0x15, 0x1f, + 0x0e, 0x1e, 0x31, 0x3d, 0x72, 0x79, 0x61, 0xb8, 0x8d, 0x6d, 0xc4, 0x1e, 0xb9, 0x22, 0x4c, 0x24, + 0x8f, 0xc9, 0x9b, 0x6f, 0x66, 0x0b, 0xce, 0x35, 0x6d, 0xbd, 0x85, 0xd1, 0xeb, 0x32, 0xde, 0x89, + 0xb6, 0x2f, 0x0c, 0xc5, 0x03, 0xf3, 0x00, 0x01, 0xf1, 0x65, 0xc8, 0x58, 0xe6, 0x05, 0xba, 0xb4, + 0x35, 0xad, 0x92, 0x67, 0x7a, 0x3d, 0x65, 0x6b, 0x67, 0xdb, 0xa0, 0x27, 0x43, 0xa7, 0x55, 0xf7, + 0x55, 0xbe, 0x06, 0xa6, 0x2f, 0xe8, 0xf6, 0xd6, 0x12, 0xd6, 0x9a, 0xd8, 0x52, 0xcd, 0x0b, 0xc4, + 0x63, 0x6e, 0x5c, 0xe5, 0x13, 0x79, 0xff, 0x15, 0x01, 0xfb, 0xd2, 0x11, 0xca, 0x68, 0x8e, 0xbf, + 0xc5, 0xb1, 0x3c, 0xc3, 0xb9, 0x4a, 0x5e, 0x61, 0x3e, 0x28, 0xc1, 0x84, 0x6a, 0x5e, 0x60, 0x4a, + 0xf2, 0x7f, 0x1c, 0xae, 0x8e, 0xc4, 0x9e, 0xe8, 0x11, 0xc9, 0x79, 0xec, 0x8f, 0x7c, 0xa2, 0x17, + 0x59, 0xfc, 0x48, 0x4e, 0x2e, 0x4d, 0xa9, 0xe6, 0x85, 0x2a, 0xb6, 0x69, 0x8b, 0x40, 0xf5, 0x21, + 0x39, 0x59, 0xeb, 0x1d, 0x4a, 0x90, 0xcd, 0xc3, 0xbd, 0xf7, 0xb8, 0xbb, 0x08, 0x9e, 0x80, 0x3c, + 0x16, 0x47, 0xbd, 0x8b, 0xd0, 0x97, 0x83, 0x11, 0xc4, 0x48, 0x91, 0x60, 0x52, 0x35, 0x2f, 0x38, + 0x43, 0xc3, 0x82, 0xde, 0x6a, 0x0d, 0x67, 0x84, 0x8c, 0x6b, 0xfc, 0xbb, 0x62, 0x70, 0xb9, 0x18, + 0xb9, 0xf1, 0xdf, 0x87, 0x81, 0xe4, 0x61, 0x78, 0x3e, 0x6d, 0x2c, 0xee, 0x08, 0x6d, 0x0c, 0x07, + 0x87, 0x41, 0x1b, 0x84, 0xc7, 0xc6, 0xa1, 0x35, 0x88, 0x30, 0x0e, 0x46, 0xb2, 0x73, 0x32, 0x53, + 0x24, 0xc3, 0xfc, 0x70, 0xdb, 0xc4, 0xfb, 0xe2, 0xb9, 0x26, 0xb2, 0x61, 0x97, 0x63, 0x64, 0x28, + 0x68, 0xc4, 0x70, 0x41, 0x14, 0xe0, 0x21, 0x79, 0x3c, 0x3e, 0x2e, 0xc1, 0x14, 0x65, 0xe1, 0x51, + 0x62, 0x05, 0x0c, 0xd4, 0xa8, 0x82, 0x35, 0x38, 0x9c, 0x46, 0x15, 0xc1, 0xc1, 0x48, 0x6e, 0x05, + 0x75, 0xec, 0xb8, 0x01, 0x8e, 0x8f, 0x87, 0x21, 0x38, 0xb0, 0x31, 0x36, 0xc4, 0x23, 0xe4, 0x83, + 0x18, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0xf9, 0x5e, 0x2b, 0x1a, 0x26, 0x06, 0x07, 0x68, 0x0a, 0x43, + 0x84, 0x61, 0xc0, 0xa6, 0x70, 0x48, 0x48, 0x7c, 0x43, 0x02, 0xa0, 0x0c, 0xac, 0x98, 0xbb, 0xe4, + 0x32, 0x9f, 0x21, 0x74, 0x67, 0xdd, 0x6e, 0xf5, 0x52, 0x1f, 0xb7, 0xfa, 0x98, 0x21, 0x5c, 0xe2, + 0xae, 0x04, 0x06, 0xa4, 0xec, 0x54, 0x72, 0xe4, 0x2b, 0x81, 0xd1, 0xe5, 0x27, 0x8f, 0xf1, 0xc3, + 0xd4, 0x9a, 0xf3, 0x0f, 0x98, 0xfe, 0xe6, 0x50, 0x50, 0x0e, 0xcc, 0xfe, 0x25, 0x7e, 0xf6, 0x7f, + 0x00, 0x6c, 0x07, 0xb5, 0x11, 0xfb, 0x1d, 0x1c, 0x4d, 0xde, 0x46, 0x3c, 0xbc, 0x03, 0xa2, 0xbf, + 0x90, 0x81, 0xa3, 0xac, 0x13, 0xf9, 0x71, 0x80, 0x38, 0xe6, 0x39, 0x3c, 0xae, 0x93, 0xec, 0x83, + 0xf2, 0xb0, 0x16, 0xa4, 0xe2, 0x2c, 0x65, 0x0a, 0xb0, 0x37, 0x92, 0xd5, 0x8d, 0x9c, 0x72, 0xb1, + 0xad, 0x19, 0x4d, 0xf1, 0x70, 0xbf, 0x7d, 0x80, 0x77, 0xd7, 0x1a, 0x25, 0x7e, 0xad, 0xb1, 0xc7, + 0xca, 0x64, 0xec, 0x9d, 0x6b, 0x22, 0x32, 0xca, 0xee, 0xc8, 0x77, 0xae, 0xc3, 0xcb, 0x4e, 0x1e, + 0xa5, 0xf7, 0x49, 0x90, 0xa9, 0x9a, 0x96, 0x8d, 0x5e, 0x10, 0xa7, 0x75, 0x52, 0xc9, 0xfb, 0x20, + 0xb9, 0xef, 0x72, 0x91, 0xbb, 0xa5, 0xf9, 0xa6, 0xe8, 0xa3, 0xce, 0x9a, 0xad, 0x11, 0xaf, 0x6e, + 0xa7, 0xfc, 0xc0, 0x75, 0xcd, 0x71, 0xe3, 0xe9, 0x50, 0xf9, 0x55, 0xc3, 0x0f, 0x60, 0x24, 0x16, + 0x4f, 0x27, 0xb4, 0xe4, 0xe4, 0x71, 0x7b, 0xf0, 0x28, 0xf3, 0x6d, 0x5d, 0xd0, 0x5b, 0x18, 0xbd, + 0x80, 0xba, 0x8c, 0x94, 0xb5, 0x6d, 0x2c, 0x7e, 0x24, 0x26, 0xd2, 0xb5, 0x95, 0xc4, 0x97, 0x95, + 0xfc, 0xf8, 0xb2, 0x71, 0x1b, 0x14, 0x3d, 0x80, 0x4e, 0x59, 0x1a, 0x75, 0x83, 0x8a, 0x28, 0x7b, + 0x24, 0x71, 0x3a, 0x8f, 0x55, 0xb1, 0x4d, 0x8d, 0xca, 0x8a, 0x7b, 0x03, 0xcb, 0xb3, 0x86, 0x12, + 0xb1, 0xd3, 0xbb, 0xe0, 0x45, 0xea, 0xba, 0xe0, 0xe5, 0x83, 0x41, 0x70, 0x56, 0x78, 0x70, 0x9e, + 0x12, 0x2e, 0x20, 0x9e, 0xc9, 0xa1, 0xc0, 0xf4, 0x4e, 0x0f, 0xa6, 0x55, 0x0e, 0xa6, 0x3b, 0x06, + 0xe4, 0x22, 0x79, 0xc0, 0x5e, 0x9a, 0x85, 0xa3, 0x74, 0xd2, 0x5f, 0x30, 0x9a, 0x2c, 0xc2, 0xea, + 0xdb, 0xd2, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, 0xdb, 0x7d, 0x3b, 0xfe, + 0x1c, 0x0d, 0xe7, 0xea, 0x74, 0xa2, 0x64, 0xa7, 0x4d, 0xfc, 0x86, 0x7c, 0xef, 0x3f, 0xfe, 0x2e, + 0xa3, 0x31, 0xf1, 0xbb, 0x8c, 0xfe, 0x2c, 0xde, 0xba, 0x1d, 0x29, 0xba, 0x4b, 0xe0, 0x09, 0xdb, + 0x4e, 0x31, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0xf3, 0x23, 0x88, 0x0c, 0xe8, 0x4e, + 0x46, 0x08, 0x1c, 0xa6, 0x3b, 0x59, 0x3f, 0x06, 0x46, 0x70, 0xab, 0x7d, 0x96, 0xed, 0xe6, 0x93, + 0x76, 0x83, 0xfe, 0x3a, 0x9d, 0xf8, 0x28, 0xfd, 0x48, 0x2a, 0x96, 0xff, 0x33, 0xe1, 0x2b, 0x7a, + 0x98, 0x8e, 0xe3, 0xd1, 0x1c, 0x45, 0x6e, 0x04, 0xeb, 0x46, 0x69, 0xe2, 0x8b, 0x7e, 0x4e, 0x6f, + 0xda, 0x5b, 0x43, 0x3a, 0xd1, 0x71, 0xc1, 0xa1, 0xe5, 0x5e, 0x8f, 0x4c, 0x5e, 0xd0, 0xbf, 0xa6, + 0x62, 0x85, 0x90, 0xf2, 0x44, 0x42, 0xd8, 0x0a, 0x11, 0x71, 0x8c, 0xc0, 0x4f, 0x91, 0xf4, 0x46, + 0xa8, 0xd1, 0x67, 0xf5, 0x26, 0x36, 0x1f, 0x85, 0x1a, 0x4d, 0xf8, 0x1a, 0x9e, 0x46, 0x47, 0x91, + 0xfb, 0x09, 0xd5, 0x68, 0x4f, 0x24, 0x43, 0xd2, 0xe8, 0x48, 0x7a, 0xc9, 0xcb, 0xf8, 0x35, 0x53, + 0x6c, 0x22, 0xb5, 0xac, 0x1b, 0xe7, 0xd1, 0xf7, 0x73, 0xee, 0xc5, 0xcc, 0xe7, 0x74, 0x7b, 0x8b, + 0xc5, 0x82, 0xf9, 0x7d, 0xe1, 0xbb, 0x51, 0x06, 0x88, 0xf7, 0xc2, 0x87, 0x93, 0xca, 0xee, 0x0b, + 0x27, 0x55, 0x80, 0x69, 0xdd, 0xb0, 0xb1, 0x65, 0x68, 0xad, 0x85, 0x96, 0xb6, 0xd9, 0x39, 0x35, + 0xd6, 0xf3, 0xf2, 0xba, 0x52, 0x20, 0x8f, 0xca, 0xff, 0x11, 0xbc, 0xbe, 0x72, 0x9c, 0xbf, 0xbe, + 0x32, 0x24, 0xfa, 0xd5, 0x44, 0x78, 0xf4, 0x2b, 0x2f, 0xba, 0x15, 0xf4, 0x0f, 0x8e, 0x2d, 0x6a, + 0x1b, 0xc7, 0x0c, 0xf7, 0x77, 0x93, 0x60, 0x14, 0x36, 0x2f, 0xf4, 0xe3, 0xeb, 0xa5, 0x58, 0xab, + 0x7b, 0x8e, 0x22, 0xcc, 0x76, 0x2b, 0x41, 0x6c, 0x0b, 0x35, 0x58, 0x79, 0xa9, 0xab, 0xf2, 0x9e, + 0xc9, 0x93, 0x11, 0x30, 0x79, 0x82, 0x4a, 0x95, 0x15, 0x53, 0xaa, 0x38, 0x8b, 0x85, 0x22, 0xb5, + 0x1d, 0xc1, 0x69, 0xa4, 0x2c, 0x1c, 0x73, 0xa3, 0xdd, 0xb6, 0xdb, 0x58, 0xb3, 0x34, 0xa3, 0x81, + 0xd1, 0xa7, 0xd2, 0xc3, 0x30, 0x7b, 0x17, 0x60, 0x5c, 0x6f, 0x98, 0x46, 0x55, 0x7f, 0xb6, 0x7b, + 0xb9, 0x5c, 0x74, 0x90, 0x75, 0x22, 0x91, 0x12, 0xfb, 0x43, 0xf5, 0xfe, 0x95, 0x4b, 0x30, 0xd1, + 0xd0, 0xac, 0x26, 0x0d, 0xc2, 0x97, 0xed, 0xba, 0xc8, 0x29, 0x94, 0x50, 0xd1, 0xfd, 0x45, 0xf5, + 0xff, 0x96, 0x2b, 0xbc, 0x10, 0x73, 0x5d, 0xd1, 0x3c, 0x42, 0x89, 0xcd, 0xfb, 0x3f, 0x71, 0x32, + 0x77, 0xa4, 0x63, 0xe1, 0x16, 0xb9, 0x83, 0x9e, 0xf6, 0x10, 0x13, 0xaa, 0x9f, 0x10, 0x77, 0x79, + 0x80, 0x14, 0xb5, 0x0f, 0x8d, 0x51, 0x2f, 0x0f, 0x08, 0x71, 0x91, 0xbc, 0x66, 0xbe, 0x3b, 0x07, + 0xd3, 0xb4, 0x57, 0x63, 0xe2, 0x44, 0x2f, 0x22, 0x57, 0x48, 0xdb, 0xf7, 0xe2, 0x3d, 0x54, 0x3d, + 0xf8, 0x98, 0x9c, 0x07, 0xe9, 0xbc, 0x17, 0x70, 0xd0, 0x79, 0x8c, 0xbb, 0x6f, 0xef, 0xf2, 0x35, + 0x4b, 0x79, 0x1a, 0xf5, 0xbe, 0x7d, 0x74, 0xf1, 0xc9, 0xe3, 0xf3, 0xab, 0x12, 0x48, 0x85, 0x66, + 0x13, 0x35, 0x0e, 0x0e, 0xc5, 0x55, 0x30, 0xe9, 0xb6, 0x19, 0x3f, 0x06, 0x64, 0x30, 0x29, 0xee, + 0x22, 0xa8, 0x27, 0x9b, 0x42, 0x73, 0xe4, 0xbb, 0x0a, 0x11, 0x65, 0x27, 0x0f, 0xca, 0x6f, 0x8e, + 0xb1, 0x46, 0x33, 0x67, 0x9a, 0xe7, 0xc9, 0x51, 0x99, 0x17, 0x48, 0x90, 0x5d, 0xc0, 0x76, 0x63, + 0x6b, 0x48, 0x6d, 0x66, 0xc7, 0x6a, 0xb9, 0x6d, 0x66, 0xdf, 0x7d, 0xf8, 0xfd, 0x6d, 0x58, 0x97, + 0xad, 0x59, 0xc2, 0xd2, 0xa8, 0xa3, 0x3b, 0x47, 0x96, 0x9e, 0x3c, 0x38, 0xff, 0x2a, 0xc1, 0x8c, + 0xb7, 0xc2, 0x45, 0x31, 0x79, 0x69, 0xea, 0xd1, 0xb6, 0xde, 0x89, 0xbe, 0x14, 0x2f, 0x44, 0x9a, + 0x27, 0x53, 0xbe, 0x66, 0x09, 0x2f, 0x2c, 0xc6, 0x08, 0x9e, 0x26, 0xc6, 0xe0, 0x08, 0x66, 0xf0, + 0x12, 0x8c, 0x13, 0x86, 0xe6, 0xf5, 0x5d, 0xe2, 0x3a, 0xc8, 0x2d, 0x34, 0x3e, 0x67, 0x28, 0x0b, + 0x8d, 0x77, 0xf0, 0x0b, 0x8d, 0x82, 0x11, 0x8f, 0xdd, 0x75, 0xc6, 0x98, 0xbe, 0x34, 0xce, 0xff, + 0x43, 0x5f, 0x66, 0x8c, 0xe1, 0x4b, 0xd3, 0xa7, 0xfc, 0xe4, 0x11, 0x7d, 0xfd, 0x7f, 0x62, 0x9d, + 0xad, 0xbb, 0xa1, 0x8a, 0xfe, 0xaf, 0x63, 0x90, 0x39, 0xeb, 0x3c, 0xfc, 0x4f, 0xff, 0x46, 0xac, + 0x57, 0x0e, 0x21, 0x38, 0xc3, 0xd3, 0x21, 0xe3, 0xd0, 0x67, 0xd3, 0x96, 0xeb, 0xc5, 0x76, 0x77, + 0x1d, 0x46, 0x54, 0xf2, 0x9f, 0x7c, 0x12, 0x72, 0x1d, 0x73, 0xc7, 0x6a, 0x38, 0xe6, 0xb3, 0xa3, + 0x31, 0xec, 0x2d, 0x6e, 0x50, 0x52, 0x8e, 0xf4, 0xec, 0xf0, 0x5c, 0x46, 0x03, 0x17, 0x24, 0x49, + 0xdc, 0x05, 0x49, 0x31, 0xf6, 0x0f, 0x04, 0x78, 0x4b, 0x5e, 0x23, 0xfe, 0x9a, 0xdc, 0x15, 0xd8, + 0x1c, 0x16, 0xec, 0x21, 0x62, 0x39, 0xa8, 0x3a, 0xc4, 0x75, 0xf8, 0xe6, 0x45, 0xeb, 0xc5, 0x81, + 0x1f, 0xa9, 0xc3, 0xb7, 0x00, 0x0f, 0x23, 0x39, 0xa5, 0x9e, 0x63, 0x4e, 0xaa, 0xf7, 0x0d, 0x13, + 0xdd, 0x0c, 0xa7, 0xf4, 0x07, 0x42, 0x67, 0x88, 0xce, 0xab, 0x03, 0xa3, 0x73, 0x48, 0xee, 0xab, + 0x7f, 0x28, 0x91, 0x48, 0x98, 0xae, 0x91, 0x23, 0x7e, 0xd1, 0x51, 0x6c, 0x88, 0x9c, 0x31, 0x98, + 0x8b, 0x03, 0x3d, 0x3d, 0x78, 0x68, 0x70, 0x5e, 0x74, 0x01, 0xfe, 0x47, 0x1d, 0x1a, 0x5c, 0x94, + 0x91, 0xe4, 0x81, 0x7c, 0x13, 0xbd, 0x58, 0xac, 0xd0, 0xb0, 0xf5, 0xdd, 0x21, 0xb7, 0x34, 0x7e, + 0x78, 0x89, 0x19, 0x0d, 0x78, 0x9f, 0x84, 0x28, 0x87, 0xa3, 0x8e, 0x06, 0x2c, 0xc6, 0x46, 0xf2, + 0x30, 0xfd, 0x5d, 0xce, 0x91, 0x1e, 0x5b, 0x9b, 0x79, 0x33, 0x5b, 0x0d, 0xc0, 0x07, 0x47, 0xeb, + 0x0c, 0x4c, 0x05, 0xa6, 0xfe, 0xee, 0x85, 0x35, 0x5c, 0x5a, 0xdc, 0x83, 0xee, 0x9e, 0xc8, 0x86, + 0xbe, 0x30, 0x10, 0x63, 0xc1, 0x57, 0x84, 0x89, 0x91, 0xdc, 0x07, 0xe7, 0x8e, 0x61, 0x23, 0xc2, + 0xea, 0xf7, 0x83, 0x58, 0x55, 0x78, 0xac, 0x6e, 0x13, 0x11, 0x93, 0xd8, 0x98, 0x26, 0x34, 0x6f, + 0x7c, 0x97, 0x07, 0x97, 0xca, 0xc1, 0xf5, 0xf4, 0x81, 0xf9, 0x48, 0x1e, 0xb1, 0xdf, 0xa2, 0xdd, + 0x61, 0x95, 0x9a, 0xec, 0xc3, 0xe9, 0x0e, 0xd9, 0x6c, 0x40, 0xe2, 0x66, 0x03, 0x31, 0xfd, 0xed, + 0x7d, 0x37, 0x52, 0x97, 0xb9, 0x7e, 0x10, 0x65, 0x86, 0xec, 0x6f, 0xdf, 0x97, 0x83, 0xe4, 0xc1, + 0xf9, 0x27, 0x09, 0x60, 0xd1, 0x32, 0x77, 0xda, 0x15, 0xab, 0x89, 0x2d, 0xf4, 0xb7, 0xfe, 0x04, + 0xe0, 0xe5, 0x43, 0x98, 0x00, 0xac, 0x02, 0x6c, 0x7a, 0xc4, 0x99, 0x86, 0xdf, 0x2c, 0x66, 0xee, + 0xfb, 0x4c, 0xa9, 0x01, 0x1a, 0xfc, 0x95, 0xb3, 0xcf, 0xe0, 0x31, 0x8e, 0xea, 0xb3, 0x7c, 0x72, + 0xc3, 0x9c, 0x00, 0xbc, 0xc7, 0xc3, 0xba, 0xc6, 0x61, 0x7d, 0xf7, 0x01, 0x38, 0x49, 0x1e, 0xf3, + 0x7f, 0x1e, 0x83, 0x49, 0xba, 0x5d, 0x47, 0x65, 0xfa, 0x0f, 0x3e, 0xe8, 0xbf, 0x39, 0x04, 0xd0, + 0xd7, 0x60, 0xca, 0xf4, 0xa9, 0xd3, 0x3e, 0x35, 0xb8, 0x00, 0x13, 0x09, 0x7b, 0x80, 0x2f, 0x95, + 0x23, 0x83, 0x3e, 0x11, 0x44, 0x5e, 0xe5, 0x91, 0xbf, 0x23, 0x42, 0xde, 0x01, 0x8a, 0xc3, 0x84, + 0xfe, 0xbd, 0x1e, 0xf4, 0x6b, 0x1c, 0xf4, 0x85, 0x83, 0xb0, 0x32, 0x82, 0x70, 0xfb, 0x12, 0x64, + 0xc8, 0xe9, 0xb8, 0xdf, 0x4e, 0x70, 0x7e, 0x7f, 0x0a, 0xc6, 0x48, 0x93, 0xf5, 0xe6, 0x1d, 0xee, + 0xab, 0xf3, 0x45, 0xdb, 0xb0, 0xb1, 0xe5, 0x79, 0x2c, 0xb8, 0xaf, 0x0e, 0x0f, 0xae, 0x57, 0x72, + 0xe7, 0x54, 0x8e, 0x6e, 0x44, 0x7a, 0x09, 0x03, 0x4f, 0x4a, 0x82, 0x12, 0x1f, 0xda, 0x79, 0xb9, + 0x41, 0x26, 0x25, 0x7d, 0x18, 0x49, 0x1e, 0xf8, 0xaf, 0x66, 0xe0, 0x14, 0x5d, 0x55, 0x5a, 0xb0, + 0xcc, 0xed, 0xae, 0xdb, 0xad, 0xf4, 0x83, 0xeb, 0xc2, 0xb5, 0x30, 0x63, 0x73, 0xfe, 0xd8, 0x4c, + 0x27, 0xba, 0x52, 0xd1, 0x9f, 0x07, 0x7d, 0x2a, 0x9e, 0xc9, 0x23, 0x39, 0x17, 0x21, 0xc0, 0x30, + 0xde, 0x63, 0x2f, 0xd4, 0x0b, 0x32, 0x1a, 0x58, 0xa4, 0x92, 0x06, 0x5a, 0xb3, 0xf4, 0x74, 0x2a, + 0x2b, 0xa2, 0x53, 0x1f, 0xf2, 0x74, 0xea, 0x67, 0x39, 0x9d, 0x5a, 0x3c, 0xb8, 0x48, 0x92, 0xd7, + 0xad, 0xd7, 0x79, 0x1b, 0x43, 0xde, 0xb6, 0xdd, 0x76, 0x02, 0x9b, 0x75, 0x41, 0x7f, 0xa4, 0x0c, + 0xe7, 0x8f, 0xc4, 0xdf, 0x47, 0x11, 0x63, 0x26, 0xcc, 0x73, 0x1d, 0xa2, 0x4b, 0x33, 0x90, 0xd6, + 0x5d, 0xee, 0xd2, 0x7a, 0x73, 0xa0, 0xb9, 0x6e, 0x64, 0x41, 0x23, 0x58, 0x5b, 0x9a, 0x81, 0xdc, + 0x82, 0xde, 0xb2, 0xb1, 0x85, 0x1e, 0x66, 0x33, 0xdd, 0xd7, 0x25, 0x38, 0x00, 0xcc, 0x43, 0x6e, + 0x83, 0x94, 0xc6, 0x4c, 0xe6, 0x1b, 0xc5, 0x5a, 0x0f, 0xe5, 0x50, 0x65, 0xff, 0xc6, 0x8d, 0xce, + 0xd7, 0x45, 0x66, 0x68, 0x53, 0xe4, 0x18, 0xd1, 0xf9, 0xfa, 0xb3, 0x30, 0x92, 0x8b, 0xa9, 0x72, + 0x2a, 0xde, 0x76, 0xc6, 0xf8, 0xf3, 0xc9, 0x21, 0x9c, 0x07, 0x49, 0x6f, 0x76, 0x48, 0xe7, 0x38, + 0xa1, 0x3a, 0x8f, 0x71, 0x7d, 0x85, 0xba, 0x45, 0x45, 0x59, 0x1e, 0xb5, 0xaf, 0x90, 0x10, 0x17, + 0xc9, 0x63, 0xf6, 0x08, 0x71, 0x14, 0x6d, 0xb7, 0xb4, 0x06, 0x76, 0xb8, 0x4f, 0x0c, 0x35, 0xda, + 0x93, 0x65, 0xdc, 0x9e, 0x2c, 0xd0, 0x4e, 0xb3, 0x07, 0x68, 0xa7, 0x83, 0x2e, 0x43, 0x7a, 0x32, + 0x27, 0x15, 0x3f, 0xb4, 0x65, 0xc8, 0x48, 0x36, 0x46, 0x70, 0xed, 0xa8, 0x7b, 0x90, 0x76, 0xa4, + 0xad, 0x75, 0xd0, 0x4d, 0x1a, 0x26, 0xac, 0xa1, 0x1d, 0x9a, 0x1d, 0x64, 0x93, 0x26, 0x9c, 0x87, + 0x11, 0xa0, 0x35, 0xc3, 0xd0, 0xfa, 0x22, 0x1b, 0x46, 0x13, 0xde, 0x27, 0xed, 0x98, 0x96, 0x1d, + 0x6f, 0x9f, 0xd4, 0xe1, 0x4e, 0x25, 0xff, 0xc5, 0x3d, 0x78, 0xc5, 0x9f, 0xab, 0x1e, 0xd6, 0xf0, + 0x19, 0xe3, 0xe0, 0x55, 0x3f, 0x06, 0x92, 0x87, 0xf7, 0xed, 0x87, 0x34, 0x78, 0x0e, 0xda, 0x1c, + 0x59, 0x1b, 0x18, 0xda, 0xd0, 0x39, 0x48, 0x73, 0x0c, 0xe7, 0x21, 0x79, 0xbc, 0xbe, 0x17, 0x18, + 0x38, 0xdf, 0x3a, 0xc2, 0x81, 0xd3, 0x6d, 0x99, 0xd9, 0x01, 0x5b, 0xe6, 0xa0, 0xfb, 0x3f, 0x4c, + 0xd6, 0xc3, 0x1b, 0x30, 0x07, 0xd9, 0xff, 0x89, 0x60, 0x22, 0x79, 0xc4, 0xdf, 0x26, 0x41, 0xb6, + 0x3a, 0xfa, 0xf1, 0x72, 0xd0, 0xb9, 0x08, 0x91, 0x55, 0x75, 0x68, 0xc3, 0xe5, 0x20, 0x73, 0x91, + 0x50, 0x16, 0x46, 0x10, 0x78, 0xff, 0x28, 0x4c, 0x91, 0x25, 0x11, 0x77, 0x9b, 0xf5, 0x7b, 0x6c, + 0xd4, 0x7c, 0x28, 0xc1, 0xb6, 0x7a, 0x0f, 0x8c, 0xbb, 0xfb, 0x77, 0x6c, 0xe4, 0x9c, 0x15, 0x6b, + 0x9f, 0x2e, 0x97, 0xaa, 0xf7, 0xff, 0x81, 0x9c, 0x21, 0x86, 0xbe, 0x57, 0x3b, 0xa8, 0x33, 0xc4, + 0xa1, 0xee, 0xd7, 0xfe, 0x99, 0x3f, 0xa2, 0xfe, 0xe7, 0xe4, 0x30, 0xef, 0xde, 0xc7, 0xcd, 0xf4, + 0xd8, 0xc7, 0xfd, 0x54, 0x10, 0xcb, 0x2a, 0x8f, 0xe5, 0x9d, 0xa2, 0x22, 0x1c, 0xe2, 0x58, 0xfb, + 0x3e, 0x0f, 0xce, 0xb3, 0x1c, 0x9c, 0x73, 0x07, 0xe2, 0x65, 0x04, 0x07, 0x1f, 0x33, 0xfe, 0x98, + 0xfb, 0xe9, 0x04, 0xdb, 0x71, 0xd7, 0xa9, 0x8a, 0xcc, 0xbe, 0x53, 0x15, 0x5c, 0x4b, 0xcf, 0x1e, + 0xb0, 0xa5, 0x7f, 0x3a, 0xa8, 0x1d, 0x35, 0x5e, 0x3b, 0x9e, 0x2e, 0x8e, 0xc8, 0xf0, 0x46, 0xe6, + 0xf7, 0x7b, 0xea, 0x71, 0x8e, 0x53, 0x8f, 0xe2, 0xc1, 0x98, 0x49, 0x5e, 0x3f, 0xfe, 0xc8, 0x9d, + 0xd0, 0x1e, 0x72, 0x7b, 0x1f, 0x74, 0xab, 0x98, 0x13, 0xe2, 0xd0, 0x46, 0xee, 0x41, 0xb6, 0x8a, + 0xfb, 0x71, 0x32, 0x82, 0x58, 0x6c, 0xd3, 0x30, 0x49, 0x78, 0x3a, 0xa7, 0x37, 0x37, 0xb1, 0x8d, + 0x5e, 0x4f, 0x7d, 0x14, 0xdd, 0xc8, 0x97, 0x43, 0x0a, 0x4f, 0x14, 0x76, 0xde, 0x35, 0xae, 0x47, + 0x07, 0x65, 0x72, 0x36, 0xc0, 0xe0, 0xa8, 0x23, 0x28, 0xf6, 0xe5, 0x20, 0x79, 0xc8, 0x3e, 0x41, + 0xdd, 0x6d, 0x96, 0xb5, 0x3d, 0x73, 0xc7, 0x46, 0x0f, 0x0c, 0xa1, 0x83, 0x9e, 0x83, 0x5c, 0x8b, + 0x50, 0x63, 0xc7, 0x32, 0xa2, 0xa7, 0x3b, 0x4c, 0x04, 0xb4, 0x7c, 0x95, 0xfd, 0x19, 0xf7, 0x6c, + 0x86, 0x2f, 0x47, 0x4a, 0x67, 0xd4, 0x67, 0x33, 0xfa, 0x94, 0x3f, 0x92, 0x3b, 0x76, 0xc6, 0x9d, + 0xd2, 0xf5, 0x6d, 0xdd, 0x1e, 0x52, 0x04, 0x87, 0x96, 0x43, 0xcb, 0x8d, 0xe0, 0x40, 0x5e, 0xe2, + 0x9e, 0x18, 0x0d, 0x48, 0xc5, 0xf9, 0x7d, 0xd4, 0x27, 0x46, 0xa3, 0x8b, 0x4f, 0x1e, 0x93, 0x5f, + 0xa7, 0x2d, 0xeb, 0x2c, 0x75, 0xbe, 0x4d, 0xd0, 0xaf, 0x77, 0xe0, 0xc6, 0x42, 0x59, 0x3b, 0xbc, + 0xc6, 0xd2, 0xb3, 0xfc, 0xe4, 0x81, 0xf9, 0x6f, 0x3f, 0x05, 0xd9, 0x79, 0xbc, 0xbe, 0xb3, 0x89, + 0xee, 0x80, 0xf1, 0x9a, 0x85, 0x71, 0xc9, 0xd8, 0x30, 0x1d, 0xe9, 0xda, 0xce, 0xb3, 0x0b, 0x09, + 0x7b, 0x73, 0xf0, 0xd8, 0xc2, 0x5a, 0xd3, 0x3f, 0x7f, 0xe6, 0xbe, 0xa2, 0x57, 0xa6, 0x21, 0x53, + 0xb5, 0x35, 0x1b, 0x4d, 0x78, 0xd8, 0xa2, 0x07, 0x82, 0x58, 0xdc, 0xc1, 0x63, 0x71, 0x2d, 0x27, + 0x0b, 0xc2, 0xc1, 0xac, 0xf3, 0x7f, 0x08, 0x00, 0x08, 0xc6, 0xef, 0xef, 0x98, 0x86, 0x93, 0xc3, + 0x3d, 0x02, 0xe9, 0xbe, 0xa3, 0xd7, 0x7a, 0xe2, 0xbe, 0x8b, 0x13, 0xf7, 0x0d, 0x62, 0x45, 0x8c, + 0x60, 0xa5, 0x2d, 0x0d, 0x13, 0x8e, 0x68, 0x97, 0xb0, 0xd6, 0xec, 0xa0, 0xc7, 0xfa, 0xca, 0x1f, + 0x22, 0x66, 0xf4, 0x11, 0xe1, 0x60, 0x9c, 0xb4, 0x56, 0x1e, 0xf1, 0x70, 0x8f, 0x0e, 0x77, 0xf3, + 0x3f, 0xcd, 0x07, 0x23, 0xb9, 0x09, 0x32, 0xba, 0xb1, 0x61, 0x32, 0xff, 0xc2, 0xcb, 0x43, 0x68, + 0x3b, 0x3a, 0xa1, 0x92, 0x8c, 0x82, 0x91, 0x3a, 0xa3, 0xd9, 0x1a, 0xc9, 0xa5, 0x77, 0x19, 0xa7, + 0x74, 0xf4, 0xbf, 0xf7, 0x15, 0xb6, 0x2c, 0x43, 0xa6, 0xad, 0xd9, 0x5b, 0xac, 0x68, 0xf2, 0xec, + 0xd8, 0xc8, 0x3b, 0x86, 0x66, 0x98, 0xc6, 0xde, 0xb6, 0xfe, 0x6c, 0xef, 0x6e, 0x5d, 0x2e, 0xcd, + 0xe1, 0x7c, 0x13, 0x1b, 0xd8, 0xd2, 0x6c, 0x5c, 0xdd, 0xdd, 0x24, 0x73, 0xac, 0x71, 0x35, 0x98, + 0x14, 0x5b, 0xff, 0x1d, 0x8e, 0xc3, 0xf5, 0x7f, 0x43, 0x6f, 0x61, 0x12, 0xa9, 0x89, 0xe9, 0xbf, + 0xfb, 0x1e, 0x4b, 0xff, 0x7b, 0x14, 0x91, 0x3c, 0x1a, 0xff, 0x96, 0x86, 0xa9, 0xaa, 0xa3, 0x70, + 0xd5, 0x9d, 0xed, 0x6d, 0xcd, 0xda, 0x43, 0x57, 0xfb, 0xa8, 0x04, 0x54, 0x33, 0xc5, 0xfb, 0xa5, + 0xfc, 0xa1, 0xf0, 0xb5, 0xd2, 0xac, 0x69, 0x07, 0x4a, 0x88, 0xdd, 0x0e, 0x9e, 0x08, 0x59, 0x47, + 0xbd, 0x5d, 0x8f, 0xcb, 0xc8, 0x86, 0x40, 0x73, 0x0a, 0x46, 0xb4, 0xea, 0xcb, 0xdb, 0x08, 0xa2, + 0x69, 0xa4, 0xe1, 0x68, 0xd5, 0xd6, 0x1a, 0xe7, 0x17, 0x4d, 0xcb, 0xdc, 0xb1, 0x75, 0x03, 0x77, + 0xd0, 0x63, 0x7c, 0x04, 0x5c, 0xfd, 0x4f, 0xf9, 0xfa, 0x8f, 0xfe, 0x3d, 0x25, 0x3a, 0x8a, 0x7a, + 0xdd, 0x6a, 0x90, 0x7c, 0x48, 0x80, 0x2a, 0xb1, 0x71, 0x51, 0x84, 0x62, 0xf2, 0x42, 0x7b, 0xab, + 0x04, 0x79, 0xe5, 0x62, 0xdb, 0xb4, 0xec, 0x65, 0xb3, 0xa1, 0xb5, 0x3a, 0xb6, 0x69, 0x61, 0x54, + 0x89, 0x94, 0x9a, 0xd3, 0xc3, 0x34, 0xcd, 0x86, 0x3f, 0x38, 0xb2, 0xb7, 0xa0, 0xda, 0x49, 0xbc, + 0x8e, 0x7f, 0x42, 0x78, 0x97, 0x91, 0x4a, 0xa5, 0x9b, 0xa3, 0x10, 0x3d, 0xef, 0xd5, 0xa5, 0xc5, + 0x3b, 0x2c, 0x21, 0xb6, 0xf3, 0x28, 0xc4, 0xd4, 0x08, 0x96, 0xca, 0xd3, 0x30, 0x5d, 0xdd, 0x59, + 0xf7, 0x88, 0x74, 0x82, 0x46, 0xc8, 0x1b, 0x84, 0xa3, 0x54, 0x30, 0xc5, 0x0b, 0x12, 0x0a, 0x91, + 0xef, 0x35, 0x30, 0xdd, 0x09, 0x66, 0x63, 0x78, 0xf3, 0x89, 0x82, 0xd1, 0x29, 0xfa, 0x97, 0x9a, + 0xbc, 0x00, 0xdf, 0x9f, 0x86, 0xe9, 0x4a, 0x1b, 0x1b, 0xb8, 0x49, 0xbd, 0x20, 0x39, 0x01, 0xbe, + 0x32, 0xa6, 0x00, 0x39, 0x42, 0x21, 0x02, 0xf4, 0x3d, 0x96, 0xe7, 0x5d, 0xe1, 0xf9, 0x09, 0xb1, + 0x04, 0x17, 0x55, 0x5a, 0xf2, 0x82, 0xfb, 0x5a, 0x1a, 0x26, 0xd5, 0x1d, 0x63, 0xd5, 0x32, 0x9d, + 0xd1, 0xd8, 0x42, 0x77, 0xfa, 0x1d, 0xc4, 0x8d, 0x70, 0xac, 0xb9, 0x63, 0x91, 0xf5, 0xa7, 0x92, + 0x51, 0xc5, 0x0d, 0xd3, 0x68, 0x76, 0x48, 0x3d, 0xb2, 0xea, 0xfe, 0x0f, 0xb7, 0x67, 0x5e, 0xf0, + 0x6d, 0x29, 0x85, 0x5e, 0x24, 0x1c, 0xea, 0x86, 0x56, 0x3e, 0x50, 0xb4, 0x78, 0x4f, 0x20, 0x18, + 0xd0, 0xa6, 0x5f, 0x09, 0xc9, 0x0b, 0xf7, 0x8b, 0x69, 0x90, 0x0b, 0x8d, 0x86, 0xb9, 0x63, 0xd8, + 0x55, 0xdc, 0xc2, 0x0d, 0xbb, 0x66, 0x69, 0x0d, 0x1c, 0xb4, 0x9f, 0xf3, 0x20, 0x35, 0x75, 0x8b, + 0xf5, 0xc1, 0xce, 0x23, 0x93, 0xe3, 0x2b, 0x85, 0x77, 0x1c, 0x69, 0x2d, 0xf7, 0x97, 0x12, 0x43, + 0x9c, 0x62, 0xfb, 0x8a, 0x82, 0x05, 0x25, 0x2f, 0xd5, 0x4f, 0xa7, 0x61, 0xc2, 0xed, 0xb1, 0x37, + 0x45, 0x84, 0xf9, 0xeb, 0x31, 0x27, 0x23, 0x1e, 0xf1, 0x18, 0x32, 0x7c, 0x77, 0x8c, 0x59, 0x45, + 0x18, 0xfd, 0x78, 0xa2, 0x2b, 0xc4, 0x17, 0x9d, 0xf3, 0x5a, 0xae, 0xd4, 0x17, 0x2a, 0xcb, 0xf3, + 0x8a, 0x9a, 0x97, 0xd0, 0xc3, 0x69, 0xc8, 0xac, 0xea, 0xc6, 0x66, 0x30, 0xba, 0xd2, 0x71, 0xc7, + 0x8e, 0x6c, 0xe2, 0x8b, 0xac, 0xa5, 0xd3, 0x17, 0xf9, 0x16, 0x38, 0x6e, 0xec, 0x6c, 0xaf, 0x63, + 0xab, 0xb2, 0x41, 0x46, 0xd9, 0x4e, 0xcd, 0xac, 0x62, 0x83, 0x1a, 0xa1, 0x59, 0xb5, 0xe7, 0x37, + 0xde, 0x04, 0x13, 0x98, 0x3c, 0x38, 0x9c, 0x84, 0x48, 0xdc, 0x63, 0x2a, 0x1d, 0x60, 0x2a, 0xd6, + 0xb4, 0xa1, 0x07, 0xf1, 0xe4, 0x35, 0xf5, 0x8f, 0xb3, 0x70, 0xa2, 0x60, 0xec, 0x11, 0x9b, 0x82, + 0x76, 0xf0, 0xc5, 0x2d, 0xcd, 0xd8, 0xc4, 0x64, 0x80, 0xf0, 0x24, 0x1e, 0x0c, 0xd1, 0x9f, 0xe2, + 0x43, 0xf4, 0xcb, 0x2a, 0x8c, 0x99, 0x56, 0x13, 0x5b, 0x73, 0x7b, 0x84, 0xa7, 0xee, 0x65, 0x67, + 0xd6, 0x26, 0x7b, 0x15, 0x31, 0xcb, 0xc8, 0xcf, 0x56, 0xe8, 0xff, 0xaa, 0x4b, 0xe8, 0xcc, 0x8d, + 0x30, 0xc6, 0xd2, 0xe4, 0x29, 0x18, 0xaf, 0xa8, 0xf3, 0x8a, 0x5a, 0x2f, 0xcd, 0xe7, 0x8f, 0xc8, + 0x97, 0xc0, 0xd1, 0x52, 0x4d, 0x51, 0x0b, 0xb5, 0x52, 0xa5, 0x5c, 0x27, 0xe9, 0xf9, 0x14, 0x7a, + 0x7e, 0x46, 0xd4, 0xb3, 0x37, 0x9a, 0x99, 0x5e, 0xb0, 0xaa, 0x30, 0xd6, 0xa0, 0x19, 0xc8, 0x10, + 0x3a, 0x19, 0xab, 0x76, 0x8c, 0x20, 0x4d, 0x50, 0x5d, 0x42, 0xf2, 0x69, 0x80, 0x0b, 0x96, 0x69, + 0x6c, 0xfa, 0xa7, 0x0e, 0xc7, 0xd5, 0x40, 0x0a, 0x7a, 0x20, 0x05, 0x39, 0xfa, 0x0f, 0xb9, 0x92, + 0x84, 0x3c, 0xf9, 0x82, 0x77, 0xdf, 0x1d, 0x8b, 0x97, 0xc8, 0xcb, 0x9f, 0x68, 0xb1, 0x57, 0x47, + 0x17, 0xa9, 0x0c, 0xa8, 0x25, 0xcc, 0xaa, 0x72, 0x13, 0xe4, 0xe8, 0xbf, 0xcc, 0xeb, 0x20, 0x3c, + 0xbc, 0x28, 0xcd, 0x26, 0xe8, 0xa7, 0x2c, 0x2e, 0xd3, 0xe4, 0xb5, 0xf9, 0xa3, 0x69, 0x18, 0x2f, + 0x63, 0xbb, 0xb8, 0x85, 0x1b, 0xe7, 0xd1, 0xe3, 0xf9, 0x05, 0xd0, 0x96, 0x8e, 0x0d, 0xfb, 0xbe, + 0xed, 0x96, 0xb7, 0x00, 0xea, 0x26, 0xa0, 0x17, 0x06, 0x3b, 0xdf, 0xbb, 0x79, 0xfd, 0xb9, 0xbe, + 0x47, 0x5d, 0xdd, 0x12, 0x42, 0x54, 0xe6, 0x24, 0xe4, 0x2c, 0xdc, 0xd9, 0x69, 0xb9, 0x8b, 0x68, + 0xec, 0x0d, 0x3d, 0xe8, 0x89, 0xb3, 0xc8, 0x89, 0xf3, 0x26, 0xf1, 0x22, 0x46, 0x10, 0xaf, 0x34, + 0x03, 0x63, 0x25, 0x43, 0xb7, 0x75, 0xad, 0x85, 0x5e, 0x94, 0x81, 0xe9, 0x2a, 0xb6, 0x57, 0x35, + 0x4b, 0xdb, 0xc6, 0x36, 0xb6, 0x3a, 0xe8, 0x87, 0x7c, 0x9f, 0xd0, 0x6e, 0x69, 0xf6, 0x86, 0x69, + 0x6d, 0xbb, 0xaa, 0xe9, 0xbe, 0x3b, 0xaa, 0xb9, 0x8b, 0xad, 0x8e, 0xcf, 0x97, 0xfb, 0xea, 0x7c, + 0xb9, 0x60, 0x5a, 0xe7, 0x9d, 0x41, 0x90, 0x4d, 0xd3, 0xd8, 0xab, 0x43, 0xaf, 0x65, 0x6e, 0x2e, + 0xe3, 0x5d, 0xec, 0x86, 0x4b, 0xf3, 0xde, 0x9d, 0xb9, 0x40, 0xd3, 0x2c, 0x9b, 0xb6, 0xd3, 0x69, + 0x2f, 0x9b, 0x9b, 0x34, 0x5e, 0xec, 0xb8, 0xca, 0x27, 0xfa, 0xb9, 0xb4, 0x5d, 0x4c, 0x72, 0xe5, + 0x82, 0xb9, 0x58, 0xa2, 0x3c, 0x0b, 0xb2, 0xf7, 0x5b, 0x0d, 0xb7, 0xf0, 0x36, 0xb6, 0xad, 0x3d, + 0x72, 0x2d, 0xc4, 0xb8, 0xda, 0xe3, 0x0b, 0x1b, 0xa0, 0xc5, 0x27, 0xeb, 0x4c, 0x7a, 0xb3, 0x9c, + 0xe4, 0x0e, 0x34, 0x59, 0x17, 0xa1, 0x38, 0x92, 0x6b, 0xaf, 0x24, 0xc7, 0x9a, 0x79, 0x95, 0x04, + 0x19, 0x32, 0x78, 0xbe, 0x2d, 0xc5, 0xad, 0x30, 0x6d, 0xe3, 0x4e, 0x47, 0xdb, 0xc4, 0xee, 0x0a, + 0x13, 0x7b, 0x95, 0x6f, 0x83, 0x6c, 0x8b, 0x60, 0x4a, 0x07, 0x87, 0xab, 0xb9, 0x9a, 0x39, 0x06, + 0x86, 0x43, 0xcb, 0x1b, 0x09, 0x08, 0xdc, 0x2a, 0xfd, 0xe3, 0xcc, 0x3d, 0x90, 0xa5, 0xf0, 0x4f, + 0x40, 0x76, 0x5e, 0x99, 0x5b, 0x5b, 0xcc, 0x1f, 0x71, 0x1e, 0x5d, 0xfe, 0x26, 0x20, 0xbb, 0x50, + 0xa8, 0x15, 0x96, 0xf3, 0x69, 0xa7, 0x1e, 0xa5, 0xf2, 0x42, 0x25, 0x2f, 0x39, 0x89, 0xab, 0x85, + 0x72, 0xa9, 0x98, 0xcf, 0xc8, 0x93, 0x30, 0x76, 0xae, 0xa0, 0x96, 0x4b, 0xe5, 0xc5, 0x7c, 0x16, + 0xfd, 0x5d, 0x10, 0xbf, 0xdb, 0x79, 0xfc, 0xae, 0x09, 0xe3, 0xa9, 0x17, 0x64, 0xaf, 0xf6, 0x20, + 0xbb, 0x93, 0x83, 0xec, 0xa7, 0x44, 0x88, 0x8c, 0xc0, 0x9d, 0x29, 0x07, 0x63, 0xab, 0x96, 0xd9, + 0xc0, 0x9d, 0x0e, 0xfa, 0x8d, 0x34, 0xe4, 0x8a, 0x9a, 0xd1, 0xc0, 0x2d, 0x74, 0x99, 0x0f, 0x15, + 0x75, 0x15, 0x4d, 0x79, 0xa7, 0xc5, 0xfe, 0x29, 0x25, 0xda, 0xfb, 0x31, 0xba, 0xb3, 0x94, 0x66, + 0x88, 0x7c, 0xc4, 0x7a, 0xb9, 0x48, 0x52, 0x23, 0xb8, 0x1a, 0x27, 0x0d, 0x13, 0x6c, 0x35, 0x60, + 0x1d, 0x07, 0xe7, 0xe1, 0x3f, 0x4c, 0x89, 0x4e, 0x0e, 0xdd, 0x1a, 0x78, 0x64, 0x42, 0xe4, 0x21, + 0x36, 0x11, 0xec, 0x47, 0x6d, 0x04, 0x9b, 0x87, 0x69, 0x98, 0x5c, 0x33, 0x3a, 0xbd, 0x84, 0x22, + 0x1e, 0x47, 0xdf, 0xad, 0x46, 0x80, 0xd0, 0x81, 0xe2, 0xe8, 0xf7, 0xa7, 0x97, 0xbc, 0x60, 0x7e, + 0x98, 0x82, 0xe3, 0x8b, 0xd8, 0xc0, 0x96, 0xde, 0xa0, 0x35, 0x70, 0x25, 0x71, 0x27, 0x2f, 0x89, + 0xc7, 0x73, 0x9c, 0xf7, 0xfa, 0x83, 0x97, 0xc0, 0xeb, 0x3c, 0x09, 0xdc, 0xcd, 0x49, 0xe0, 0x46, + 0x41, 0x3a, 0x23, 0xb8, 0x0f, 0x7d, 0x02, 0xa6, 0xca, 0xa6, 0xad, 0x6f, 0xe8, 0x0d, 0xea, 0x83, + 0xf6, 0x5b, 0x12, 0x64, 0x96, 0xf5, 0x8e, 0x8d, 0x0a, 0x7e, 0x77, 0x72, 0x15, 0x4c, 0xea, 0x46, + 0xa3, 0xb5, 0xd3, 0xc4, 0x2a, 0xd6, 0x68, 0xbf, 0x32, 0xae, 0x06, 0x93, 0xfc, 0xad, 0x7d, 0x87, + 0x2d, 0xc9, 0xdd, 0xda, 0xff, 0x9c, 0xf0, 0x32, 0x4c, 0x90, 0x05, 0x12, 0x90, 0x32, 0xc4, 0xee, + 0x2a, 0xc0, 0xb4, 0x11, 0xc8, 0xea, 0x1a, 0xec, 0xdd, 0x17, 0x0a, 0x04, 0xc9, 0xa9, 0xfc, 0x1f, + 0xe8, 0x83, 0x42, 0x8d, 0xb5, 0x1f, 0x43, 0xf1, 0x90, 0x59, 0x18, 0x60, 0x92, 0x2c, 0xc3, 0x4c, + 0xa9, 0x5c, 0x53, 0xd4, 0x72, 0x61, 0x99, 0x65, 0x91, 0xd0, 0xbf, 0xa5, 0x21, 0xab, 0xe2, 0x76, + 0x6b, 0x2f, 0x18, 0x31, 0x9a, 0x39, 0x8a, 0xa7, 0x3c, 0x47, 0x71, 0x79, 0x01, 0x40, 0x6b, 0x38, + 0x05, 0x93, 0x2b, 0xb5, 0xd2, 0x3d, 0xe3, 0x98, 0x72, 0x15, 0x2c, 0x78, 0xb9, 0xd5, 0xc0, 0x9f, + 0xe8, 0xc5, 0xc2, 0x3b, 0x47, 0x1c, 0x35, 0xc2, 0x61, 0x48, 0x9f, 0xf0, 0x21, 0xa1, 0xcd, 0x9e, + 0xbe, 0xe4, 0x0e, 0x47, 0xfc, 0x5f, 0x4f, 0x43, 0xa6, 0xe6, 0xf4, 0x96, 0x81, 0x8e, 0xf3, 0x4f, + 0x06, 0xd3, 0x71, 0x87, 0x4c, 0x88, 0x8e, 0xdf, 0x05, 0x53, 0x41, 0x8d, 0x65, 0xae, 0x12, 0x91, + 0x2a, 0xce, 0xfd, 0x30, 0x88, 0x86, 0xf7, 0x60, 0xe7, 0x70, 0x44, 0xfc, 0x99, 0x1b, 0x00, 0x56, + 0xf0, 0xf6, 0x3a, 0xb6, 0x3a, 0x5b, 0x7a, 0x1b, 0xfd, 0xbd, 0x04, 0x13, 0x8b, 0xd8, 0xae, 0xda, + 0x9a, 0xbd, 0xd3, 0xe9, 0xda, 0xee, 0x34, 0xcc, 0xa2, 0xd6, 0xd8, 0xc2, 0xac, 0x3b, 0x72, 0x5f, + 0xd1, 0x7b, 0x25, 0x51, 0x7f, 0x22, 0xbf, 0x9c, 0x59, 0xaf, 0x8c, 0x10, 0x4c, 0x9e, 0x00, 0x99, + 0xa6, 0x66, 0x6b, 0x0c, 0x8b, 0xcb, 0xba, 0xb0, 0xf0, 0x09, 0xa9, 0x24, 0x1b, 0xfa, 0xdd, 0xb4, + 0x88, 0x43, 0x91, 0x40, 0xf9, 0xf1, 0x40, 0xf8, 0x60, 0x6a, 0x00, 0x14, 0x8e, 0xc1, 0x74, 0xb9, + 0x52, 0xab, 0x2f, 0x57, 0x16, 0x17, 0x15, 0x27, 0x35, 0x2f, 0xc9, 0x27, 0x41, 0x5e, 0x2d, 0xdc, + 0xb7, 0xa2, 0x94, 0x6b, 0xf5, 0x72, 0x65, 0x5e, 0x61, 0x7f, 0x66, 0xe4, 0xa3, 0x30, 0x59, 0x2c, + 0x14, 0x97, 0xdc, 0x84, 0xac, 0x7c, 0x0a, 0x8e, 0xaf, 0x28, 0x2b, 0x73, 0x8a, 0x5a, 0x5d, 0x2a, + 0xad, 0xd6, 0x1d, 0x32, 0x0b, 0x95, 0xb5, 0xf2, 0x7c, 0x3e, 0x27, 0x23, 0x38, 0x19, 0xf8, 0x72, + 0x4e, 0xad, 0x94, 0x17, 0xeb, 0xd5, 0x5a, 0xa1, 0xa6, 0xe4, 0xc7, 0xe4, 0x4b, 0xe0, 0x68, 0xb1, + 0x50, 0x26, 0xd9, 0x8b, 0x95, 0x72, 0x59, 0x29, 0xd6, 0xf2, 0xe3, 0xe8, 0xdf, 0x33, 0x30, 0x59, + 0xea, 0x94, 0xb5, 0x6d, 0x7c, 0x56, 0x6b, 0xe9, 0x4d, 0xf4, 0xa2, 0xc0, 0xcc, 0xe3, 0x1a, 0x98, + 0xb6, 0xe8, 0x23, 0x6e, 0xd6, 0x74, 0x4c, 0xd1, 0x9c, 0x56, 0xf9, 0x44, 0x67, 0x4e, 0x6e, 0x10, + 0x02, 0xee, 0x9c, 0x9c, 0xbe, 0xc9, 0x73, 0x00, 0xf4, 0xa9, 0xe6, 0x5f, 0xee, 0x7a, 0xa6, 0xbb, + 0x35, 0x69, 0xdb, 0xb8, 0x83, 0xad, 0x5d, 0xbd, 0x81, 0xdd, 0x9c, 0x6a, 0xe0, 0x2f, 0xf4, 0x0d, + 0x49, 0x74, 0x7f, 0x31, 0x00, 0x6a, 0xa0, 0x3a, 0x21, 0xbd, 0xe1, 0x2f, 0x4b, 0x22, 0xbb, 0x83, + 0x42, 0x24, 0xe3, 0x69, 0xca, 0xcb, 0xd2, 0x83, 0x2d, 0xdb, 0xd6, 0x2a, 0x95, 0x7a, 0x75, 0xa9, + 0xa2, 0xd6, 0xf2, 0x92, 0x3c, 0x05, 0xe3, 0xce, 0xeb, 0x72, 0xa5, 0xbc, 0x98, 0xcf, 0xc8, 0x27, + 0xe0, 0xd8, 0x52, 0xa1, 0x5a, 0x2f, 0x95, 0xcf, 0x16, 0x96, 0x4b, 0xf3, 0xf5, 0xe2, 0x52, 0x41, + 0xad, 0xe6, 0xb3, 0xf2, 0x65, 0x70, 0xa2, 0x56, 0x52, 0xd4, 0xfa, 0x82, 0x52, 0xa8, 0xad, 0xa9, + 0x4a, 0xb5, 0x5e, 0xae, 0xd4, 0xcb, 0x85, 0x15, 0x25, 0x9f, 0x73, 0x9a, 0x3f, 0xf9, 0xe4, 0xab, + 0xcd, 0xd8, 0x7e, 0x65, 0x1c, 0x0f, 0x51, 0xc6, 0x89, 0x6e, 0x65, 0x84, 0xa0, 0x5a, 0xa9, 0x4a, + 0x55, 0x51, 0xcf, 0x2a, 0xf9, 0xc9, 0x5e, 0xba, 0x36, 0x25, 0x1f, 0x87, 0xbc, 0xc3, 0x43, 0xbd, + 0x54, 0x75, 0x73, 0xce, 0xe7, 0xa7, 0xd1, 0xa7, 0x73, 0x70, 0x52, 0xc5, 0x9b, 0x7a, 0xc7, 0xc6, + 0xd6, 0xaa, 0xb6, 0xb7, 0x8d, 0x0d, 0xdb, 0xed, 0xe4, 0xff, 0x57, 0x6c, 0x65, 0x5c, 0x81, 0xe9, + 0x36, 0xa5, 0xb1, 0x82, 0xed, 0x2d, 0xb3, 0xc9, 0x46, 0xe1, 0xc7, 0x87, 0xf6, 0x1c, 0xb3, 0xab, + 0xc1, 0xec, 0x2a, 0xff, 0x77, 0x40, 0xb7, 0xa5, 0x08, 0xdd, 0xce, 0x0c, 0xa2, 0xdb, 0xf2, 0x15, + 0x30, 0xb1, 0xd3, 0xc1, 0x96, 0xb2, 0xad, 0xe9, 0x2d, 0xf7, 0x72, 0x4e, 0x2f, 0x01, 0xbd, 0x2b, + 0x23, 0x7a, 0x62, 0x25, 0x50, 0x97, 0xde, 0x62, 0x0c, 0xe9, 0x5b, 0x4f, 0x03, 0xb0, 0xca, 0xae, + 0x59, 0x2d, 0xa6, 0xac, 0x81, 0x14, 0x87, 0xbf, 0x75, 0xbd, 0xd5, 0xd2, 0x8d, 0x4d, 0x6f, 0xdf, + 0xdf, 0x4f, 0x40, 0x2f, 0x93, 0x44, 0x4e, 0xb0, 0xc4, 0xe5, 0x2d, 0x5e, 0x6b, 0x7a, 0x71, 0x7a, + 0xc4, 0xfd, 0xee, 0xfe, 0xa6, 0x93, 0x93, 0xf3, 0x30, 0x45, 0xd2, 0x58, 0x0b, 0xcc, 0x8f, 0x39, + 0x7d, 0xb0, 0x4b, 0x6e, 0x45, 0xa9, 0x2d, 0x55, 0xe6, 0xbd, 0x6f, 0xe3, 0x0e, 0x49, 0x87, 0x99, + 0x42, 0xf9, 0x3e, 0xd2, 0x1a, 0x27, 0xe4, 0xc7, 0xc0, 0x65, 0x81, 0x0e, 0xbb, 0xb0, 0xac, 0x2a, + 0x85, 0xf9, 0xfb, 0xea, 0xca, 0x33, 0x4b, 0xd5, 0x5a, 0x95, 0x6f, 0x5c, 0x6e, 0x3b, 0x9a, 0x74, + 0xf8, 0x55, 0x56, 0x0a, 0xa5, 0x65, 0xd6, 0xbf, 0x2f, 0x54, 0xd4, 0x95, 0x42, 0x2d, 0x3f, 0x85, + 0x5e, 0x25, 0x41, 0x7e, 0x11, 0xdb, 0xab, 0xa6, 0x65, 0x6b, 0xad, 0x65, 0xdd, 0x38, 0xbf, 0x66, + 0xb5, 0xb8, 0xc9, 0xa6, 0x70, 0x98, 0x0e, 0x7e, 0x88, 0xe4, 0x08, 0x86, 0xef, 0x88, 0xb7, 0x49, + 0x36, 0x5f, 0x99, 0xfc, 0x04, 0xf4, 0x9c, 0xb4, 0xc8, 0x72, 0xb7, 0x78, 0xa9, 0xf1, 0xf4, 0xe4, + 0xb9, 0xa3, 0x1e, 0x9f, 0x7b, 0xa0, 0x96, 0x43, 0x2f, 0xc8, 0xc0, 0xf8, 0x82, 0x6e, 0x68, 0x2d, + 0xfd, 0xd9, 0x5c, 0xfc, 0x52, 0xbf, 0x8f, 0x49, 0x45, 0xf4, 0x31, 0xe9, 0x81, 0xc6, 0xcf, 0x5f, + 0x93, 0x44, 0x97, 0x17, 0x02, 0xb2, 0x77, 0x99, 0x0c, 0x19, 0x3c, 0x3f, 0x96, 0x16, 0x59, 0x5e, + 0xe8, 0x4f, 0x2f, 0x1e, 0x86, 0x9f, 0xfd, 0xf1, 0xb0, 0xb1, 0xba, 0xda, 0xf7, 0x78, 0x2f, 0x55, + 0x98, 0x40, 0x7f, 0x21, 0x01, 0x5a, 0xc4, 0xf6, 0x59, 0x6c, 0x79, 0x53, 0x01, 0xd2, 0xeb, 0x33, + 0x7b, 0x3b, 0xd0, 0x64, 0xdf, 0x16, 0x04, 0xf0, 0x1c, 0x0f, 0x60, 0x21, 0xa2, 0xf1, 0x84, 0x90, + 0x0e, 0x69, 0xbc, 0x25, 0xc8, 0x75, 0xc8, 0x77, 0xa6, 0x66, 0x4f, 0x0c, 0x1f, 0x2e, 0x09, 0xb1, + 0x20, 0x75, 0x4a, 0x58, 0x65, 0x04, 0xd0, 0x23, 0xde, 0x24, 0xe8, 0x67, 0x38, 0xed, 0x58, 0x38, + 0x30, 0xb3, 0xf1, 0xf4, 0xc5, 0x4a, 0x56, 0x5d, 0x7a, 0xd9, 0x37, 0xe8, 0x63, 0x59, 0x38, 0xde, + 0xab, 0x3a, 0xe8, 0xc3, 0x29, 0x6e, 0x87, 0x1d, 0x93, 0x21, 0x3f, 0xc5, 0x36, 0x10, 0x9d, 0x17, + 0xf9, 0x49, 0x70, 0xc2, 0x5b, 0x86, 0xab, 0x99, 0x65, 0x7c, 0xa1, 0xd3, 0xc2, 0xb6, 0x8d, 0x2d, + 0x52, 0xb5, 0x71, 0xb5, 0xf7, 0x47, 0xf9, 0xa9, 0x70, 0xa9, 0x6e, 0x74, 0xf4, 0x26, 0xb6, 0x6a, + 0x7a, 0xbb, 0x53, 0x30, 0x9a, 0xb5, 0x1d, 0xdb, 0xb4, 0x74, 0x8d, 0x5d, 0x25, 0x39, 0xae, 0x86, + 0x7d, 0x96, 0xaf, 0x87, 0xbc, 0xde, 0xa9, 0x18, 0xeb, 0xa6, 0x66, 0x35, 0x75, 0x63, 0x73, 0x59, + 0xef, 0xd8, 0xcc, 0x03, 0x78, 0x5f, 0x3a, 0xfa, 0x07, 0x49, 0xf4, 0x30, 0x5d, 0x1f, 0x58, 0x43, + 0x3a, 0x94, 0x17, 0x4a, 0x22, 0xc7, 0xe3, 0xe2, 0xd1, 0x8e, 0xa7, 0x2c, 0xcf, 0x1f, 0xb5, 0x21, + 0xd1, 0x7b, 0x04, 0x27, 0x5d, 0x0b, 0x4d, 0x77, 0x0d, 0x81, 0xb3, 0x8a, 0x5a, 0x5a, 0x28, 0x29, + 0x8e, 0x59, 0x71, 0x02, 0x8e, 0xf9, 0xdf, 0xe6, 0xef, 0xab, 0x57, 0x95, 0x72, 0x2d, 0x3f, 0xee, + 0xf4, 0x53, 0x34, 0x79, 0xa1, 0x50, 0x5a, 0x56, 0xe6, 0xeb, 0xb5, 0x8a, 0xf3, 0x65, 0x7e, 0x30, + 0xd3, 0x02, 0x3d, 0x90, 0x81, 0xa3, 0x44, 0xb6, 0x7b, 0x44, 0xaa, 0x8e, 0x50, 0xba, 0x7c, 0x6d, + 0x3d, 0x80, 0x26, 0xa8, 0x78, 0xd1, 0x17, 0x84, 0x6f, 0xca, 0x0c, 0x40, 0xd8, 0x55, 0x46, 0x88, + 0x66, 0xfc, 0x30, 0x2d, 0x12, 0xa1, 0x42, 0x98, 0x6c, 0x3c, 0xa5, 0xf8, 0x97, 0x51, 0x8f, 0x38, + 0xe1, 0xe0, 0x13, 0x2b, 0xb3, 0x48, 0x7e, 0x7e, 0xe6, 0x6a, 0x49, 0x25, 0xea, 0x30, 0x03, 0x40, + 0x52, 0x88, 0x06, 0x51, 0x3d, 0xe8, 0x39, 0x5e, 0x85, 0xe9, 0x41, 0xa1, 0x58, 0x2b, 0x9d, 0x55, + 0xc2, 0xf4, 0xe0, 0xf3, 0x12, 0x8c, 0x2f, 0x62, 0xdb, 0x99, 0x53, 0x75, 0xd0, 0xd3, 0x04, 0xd6, + 0x7f, 0x1c, 0x33, 0xa6, 0x65, 0x36, 0xb4, 0x96, 0xb7, 0x0c, 0x40, 0xdf, 0xd0, 0xf3, 0x06, 0x31, + 0x41, 0xdc, 0xa2, 0x43, 0xc6, 0xab, 0xa7, 0x40, 0xd6, 0x76, 0x3e, 0xb3, 0x65, 0xe8, 0xc7, 0x86, + 0x0e, 0x57, 0x0e, 0x91, 0x79, 0xcd, 0xd6, 0x54, 0x9a, 0x3f, 0x30, 0x3a, 0x09, 0xda, 0x2e, 0x21, + 0x8c, 0xfc, 0x38, 0xda, 0x9f, 0x7f, 0x27, 0xc1, 0x09, 0xda, 0x3e, 0x0a, 0xed, 0x76, 0xd5, 0x36, + 0x2d, 0xac, 0xe2, 0x06, 0xd6, 0xdb, 0x76, 0xd7, 0xfa, 0x9e, 0x45, 0x53, 0xdd, 0xcd, 0x66, 0xf6, + 0x8a, 0xde, 0x2c, 0x89, 0xc6, 0x60, 0xde, 0xd7, 0x1e, 0xbb, 0xca, 0x0b, 0x69, 0xec, 0x9f, 0x4a, + 0x8b, 0x44, 0x55, 0x8e, 0x49, 0x3c, 0x1e, 0x50, 0x1f, 0x3f, 0x04, 0xa0, 0xdc, 0x95, 0x1b, 0x55, + 0x29, 0x2a, 0xa5, 0x55, 0x67, 0x10, 0xb8, 0x12, 0x2e, 0x5f, 0x5d, 0x53, 0x8b, 0x4b, 0x85, 0xaa, + 0x52, 0x57, 0x95, 0xc5, 0x52, 0xb5, 0xc6, 0x9c, 0xb2, 0xe8, 0x5f, 0x63, 0xf2, 0x15, 0x70, 0xaa, + 0xba, 0x36, 0x57, 0x2d, 0xaa, 0xa5, 0x55, 0x92, 0xae, 0x2a, 0x65, 0xe5, 0x1c, 0xfb, 0x3a, 0x8e, + 0x3e, 0x92, 0x87, 0x49, 0x67, 0x02, 0x50, 0xa5, 0xf3, 0x02, 0xf4, 0xdd, 0x0c, 0x4c, 0xaa, 0xb8, + 0x63, 0xb6, 0x76, 0xc9, 0x1c, 0x61, 0x54, 0x53, 0x8f, 0x1f, 0x48, 0xa2, 0xe7, 0xb7, 0x03, 0xcc, + 0xce, 0x06, 0x18, 0x0d, 0x9f, 0x68, 0x6a, 0xbb, 0x9a, 0xde, 0xd2, 0xd6, 0x59, 0x57, 0x33, 0xae, + 0xfa, 0x09, 0xf2, 0x2c, 0xc8, 0xe6, 0x05, 0x03, 0x5b, 0xd5, 0xc6, 0x05, 0xc5, 0xde, 0x2a, 0x34, + 0x9b, 0x16, 0xee, 0x74, 0xd8, 0xea, 0x45, 0x8f, 0x2f, 0xf2, 0x75, 0x70, 0x94, 0xa4, 0x06, 0x32, + 0x53, 0x07, 0x99, 0xee, 0x64, 0x2f, 0x67, 0xc1, 0xd8, 0x73, 0x73, 0x66, 0x03, 0x39, 0xfd, 0xe4, + 0xe0, 0x71, 0x89, 0x1c, 0x7f, 0x4a, 0xe7, 0x2a, 0x98, 0x34, 0xb4, 0x6d, 0xac, 0x5c, 0x6c, 0xeb, + 0x16, 0xee, 0x10, 0xc7, 0x18, 0x49, 0x0d, 0x26, 0xa1, 0x8f, 0x09, 0x9d, 0x37, 0x17, 0x93, 0x58, + 0x3c, 0xdd, 0x5f, 0x1c, 0x40, 0xf5, 0x7b, 0xf4, 0x33, 0x12, 0xfa, 0x88, 0x04, 0x53, 0x8c, 0xa9, + 0x82, 0xb1, 0x57, 0x6a, 0xa2, 0x2b, 0x39, 0xe3, 0x57, 0x73, 0xd2, 0x5c, 0xe3, 0x97, 0xbc, 0xa0, + 0x5f, 0x91, 0x44, 0xdd, 0x9d, 0x7b, 0x54, 0x9c, 0x94, 0x11, 0xee, 0x38, 0xba, 0x61, 0xee, 0x30, + 0x47, 0xd5, 0x71, 0x95, 0xbe, 0x24, 0xb9, 0xa8, 0x87, 0xfe, 0x40, 0xc8, 0x99, 0x5a, 0xb0, 0x1a, + 0x87, 0x04, 0xe0, 0x67, 0x24, 0x98, 0x61, 0x5c, 0x55, 0xd9, 0x39, 0x1f, 0xa1, 0x03, 0x6f, 0x2f, + 0x15, 0x36, 0x04, 0x7b, 0xd4, 0x9f, 0x95, 0xf4, 0xa8, 0x01, 0xf2, 0x13, 0x42, 0xc1, 0xd1, 0x84, + 0x2b, 0x72, 0x48, 0x50, 0xbe, 0x3b, 0x03, 0x93, 0x6b, 0x1d, 0x6c, 0x31, 0xbf, 0x7d, 0xf4, 0x60, + 0x06, 0xa4, 0x45, 0xcc, 0x6d, 0xa4, 0xbe, 0x44, 0xd8, 0xc3, 0x37, 0x58, 0xd9, 0x00, 0x51, 0xc7, + 0x46, 0x0a, 0x81, 0xed, 0x5a, 0x98, 0xa1, 0x22, 0x2d, 0xd8, 0xb6, 0x63, 0x24, 0xba, 0xde, 0xb4, + 0x5d, 0xa9, 0xc3, 0xd8, 0x2a, 0x22, 0x65, 0x39, 0x59, 0x8a, 0x0e, 0x4f, 0xcb, 0x78, 0x83, 0xce, + 0x67, 0x33, 0x6a, 0x57, 0xaa, 0x7c, 0x33, 0x5c, 0x62, 0xb6, 0x31, 0x3d, 0xbf, 0x12, 0xc8, 0x9c, + 0x25, 0x99, 0x7b, 0x7d, 0x42, 0xdf, 0x15, 0xf2, 0xd5, 0x15, 0x97, 0x4e, 0x3c, 0x5d, 0x68, 0x0f, + 0xc7, 0x24, 0x39, 0x0e, 0x79, 0x27, 0x07, 0xd9, 0x7f, 0x51, 0x95, 0x6a, 0x65, 0xf9, 0xac, 0xd2, + 0x7b, 0x19, 0x23, 0x8b, 0x9e, 0x2f, 0xc1, 0xc4, 0x9c, 0x65, 0x6a, 0xcd, 0x86, 0xd6, 0xb1, 0xd1, + 0x23, 0x69, 0x98, 0x5a, 0xd5, 0xf6, 0x5a, 0xa6, 0xd6, 0x24, 0xfe, 0xfd, 0x5d, 0x7d, 0x41, 0x9b, + 0x7e, 0x72, 0xfb, 0x02, 0xf6, 0xca, 0x1f, 0x0c, 0xf4, 0x8e, 0xee, 0xa5, 0x44, 0x2e, 0xd4, 0xf4, + 0xb6, 0xf9, 0xd2, 0xbd, 0x82, 0x95, 0xba, 0x7c, 0xcd, 0x06, 0x79, 0x0a, 0xb1, 0x28, 0x3f, 0x22, + 0x16, 0x7e, 0x54, 0x84, 0xe4, 0xe1, 0xec, 0xca, 0xbf, 0x60, 0x1c, 0x72, 0xf3, 0x98, 0x58, 0x71, + 0xff, 0x3d, 0x0d, 0x63, 0x55, 0x6c, 0x13, 0x0b, 0xee, 0x36, 0xce, 0x53, 0xb8, 0x49, 0x32, 0xf8, + 0x4e, 0xec, 0xee, 0xbb, 0x33, 0x59, 0x0f, 0x9c, 0xb7, 0x26, 0xcf, 0x31, 0x3c, 0x12, 0x69, 0xb9, + 0xb3, 0xac, 0xcc, 0x03, 0x79, 0x24, 0x46, 0x92, 0x4a, 0xde, 0xd7, 0xea, 0xbd, 0x69, 0xe6, 0x5a, + 0x15, 0xe8, 0xf5, 0x5e, 0x1f, 0xd4, 0xcf, 0x48, 0x6f, 0x33, 0xc6, 0x7c, 0x84, 0x73, 0xd4, 0xad, + 0x30, 0x46, 0x65, 0xee, 0xce, 0x47, 0xbb, 0xfd, 0x14, 0x28, 0x09, 0x72, 0xf6, 0xda, 0xcd, 0x29, + 0xe8, 0xa2, 0x16, 0x5e, 0xf8, 0x48, 0x62, 0x10, 0x4c, 0x95, 0xb1, 0x7d, 0xc1, 0xb4, 0xce, 0x57, + 0x6d, 0xcd, 0xc6, 0xe8, 0x5f, 0xd2, 0x20, 0x55, 0xb1, 0x1d, 0x8c, 0x7e, 0x52, 0x86, 0x63, 0xb4, + 0x42, 0x2c, 0x23, 0xe9, 0xbf, 0x69, 0x45, 0xae, 0xea, 0x29, 0x84, 0x40, 0x3e, 0x75, 0xff, 0xaf, + 0xe8, 0x37, 0x7a, 0x06, 0x7d, 0x4a, 0xf7, 0x98, 0x34, 0x30, 0xc9, 0x04, 0x19, 0x74, 0x14, 0x2c, + 0x44, 0x4f, 0x3f, 0x2a, 0x64, 0x56, 0x8b, 0xd1, 0x3c, 0x9c, 0xae, 0xe0, 0xb5, 0x97, 0x41, 0xa6, + 0xb8, 0xa5, 0xd9, 0xe8, 0x3d, 0x12, 0x40, 0xa1, 0xd9, 0x5c, 0xa1, 0x3e, 0xe0, 0x41, 0x87, 0xb4, + 0x33, 0x30, 0xd5, 0xd8, 0xd2, 0xfc, 0xbb, 0x4d, 0x68, 0x7f, 0xc0, 0xa5, 0xc9, 0x4f, 0xf2, 0x9d, + 0xc9, 0xa9, 0x54, 0x51, 0x17, 0x4c, 0x4e, 0x19, 0x8c, 0xb6, 0xe7, 0x68, 0xce, 0x87, 0xc2, 0x8c, + 0x3c, 0x42, 0xe7, 0xfc, 0x3e, 0xeb, 0xb3, 0x17, 0x3e, 0x87, 0x63, 0xa4, 0xbd, 0x03, 0x36, 0x7e, + 0x42, 0xcc, 0x93, 0xde, 0x62, 0x01, 0x3d, 0xa2, 0xf9, 0x1a, 0x49, 0xe8, 0x5a, 0x59, 0x69, 0xea, + 0xae, 0x68, 0x59, 0xc0, 0x2c, 0xf4, 0xe2, 0x54, 0x3c, 0xf8, 0xa2, 0x05, 0x77, 0x37, 0x4c, 0xe3, + 0xa6, 0x6e, 0x63, 0xb7, 0x96, 0x4c, 0x80, 0x51, 0x10, 0xf3, 0x3f, 0xa0, 0xe7, 0x0a, 0x07, 0x5d, + 0x23, 0x02, 0xdd, 0x5f, 0xa3, 0x90, 0xf6, 0x27, 0x16, 0x46, 0x4d, 0x8c, 0x66, 0xf2, 0x60, 0x3d, + 0x4f, 0x82, 0x13, 0x35, 0x73, 0x73, 0xb3, 0x85, 0x5d, 0x31, 0x61, 0xea, 0x9d, 0x89, 0xb4, 0x61, + 0xc2, 0x45, 0x76, 0x82, 0xcc, 0xfb, 0x75, 0xef, 0x28, 0x99, 0xf3, 0xc2, 0x9f, 0x98, 0x8a, 0x9c, + 0x45, 0x11, 0x71, 0xf5, 0xe4, 0x33, 0x04, 0x05, 0xb1, 0x80, 0xcf, 0xc2, 0x64, 0x93, 0x07, 0xe2, + 0x2b, 0x69, 0x98, 0xa6, 0x37, 0x57, 0xba, 0x0a, 0x7a, 0xef, 0x10, 0x01, 0x40, 0x8f, 0xa4, 0x44, + 0xfd, 0x6c, 0x89, 0x4c, 0x38, 0x4e, 0x42, 0x44, 0x2c, 0x16, 0x54, 0xa5, 0x2f, 0xb9, 0x11, 0xc4, + 0xcd, 0x92, 0x60, 0x72, 0x11, 0xbb, 0x2d, 0xad, 0x13, 0xbc, 0x06, 0x4c, 0x44, 0xb0, 0xd7, 0xc0, + 0xf4, 0x3a, 0xde, 0x30, 0x2d, 0x5c, 0xe1, 0x8e, 0x49, 0xf2, 0x89, 0x21, 0x91, 0xe7, 0xb8, 0x10, + 0x67, 0x73, 0xbc, 0xd8, 0x6f, 0xdc, 0x2f, 0xa7, 0x00, 0x97, 0x21, 0xc3, 0xc9, 0x93, 0x61, 0x9c, + 0x81, 0xea, 0x5a, 0x60, 0x51, 0x5d, 0x9e, 0x97, 0x17, 0xbd, 0xc9, 0x03, 0x4b, 0xe1, 0xc0, 0x7a, + 0x62, 0x1c, 0x26, 0x46, 0x72, 0x75, 0x7b, 0x3e, 0x50, 0xfe, 0xdc, 0x5e, 0xa9, 0xd9, 0x41, 0x2b, + 0xf1, 0xf0, 0x3a, 0x0d, 0xe0, 0xe9, 0xbd, 0x1b, 0xb1, 0x22, 0x90, 0xc2, 0x07, 0xa5, 0x8f, 0x3c, + 0x83, 0xd7, 0x2d, 0x0e, 0xc2, 0xce, 0x90, 0x81, 0x11, 0x3b, 0xbb, 0x27, 0xc2, 0x49, 0xf2, 0xe8, + 0x7c, 0x4e, 0x82, 0x13, 0xde, 0xd1, 0xa2, 0x65, 0xad, 0xe3, 0x37, 0xa9, 0x62, 0x3c, 0x88, 0xb8, + 0xb3, 0x1c, 0x5e, 0x63, 0xf9, 0x5e, 0xbc, 0xe1, 0xa0, 0x27, 0x27, 0xc3, 0x45, 0x47, 0xbe, 0x11, + 0x8e, 0x19, 0x3b, 0xdb, 0x9e, 0xd4, 0x49, 0x8b, 0x67, 0x2d, 0x7c, 0xff, 0x87, 0x38, 0x83, 0x8e, + 0x08, 0xf3, 0x23, 0x99, 0x2e, 0x72, 0xa7, 0xb5, 0x9e, 0x10, 0x0b, 0x46, 0xf4, 0xfd, 0x54, 0xac, + 0xde, 0xad, 0xff, 0x71, 0xae, 0x18, 0xbd, 0xd4, 0x21, 0x9e, 0xe5, 0x3a, 0x33, 0x06, 0x59, 0x65, + 0xbb, 0x6d, 0xef, 0x9d, 0x79, 0x1c, 0x4c, 0x57, 0x6d, 0x0b, 0x6b, 0xdb, 0x81, 0x45, 0x7f, 0xdb, + 0x3c, 0x8f, 0x0d, 0x77, 0xd1, 0x9f, 0xbc, 0xdc, 0x7e, 0x1b, 0x8c, 0x19, 0x66, 0x5d, 0xdb, 0xb1, + 0xb7, 0xe4, 0x2b, 0xf7, 0x9d, 0x96, 0x67, 0xe0, 0x57, 0x58, 0x78, 0xa2, 0x6f, 0xdc, 0x41, 0x96, + 0x7d, 0x73, 0x86, 0x59, 0xd8, 0xb1, 0xb7, 0xe6, 0xae, 0xf8, 0xcc, 0xdf, 0x9e, 0x4e, 0x7d, 0xfe, + 0x6f, 0x4f, 0xa7, 0xbe, 0xfe, 0xb7, 0xa7, 0x53, 0x2f, 0xfd, 0xe6, 0xe9, 0x23, 0x9f, 0xff, 0xe6, + 0xe9, 0x23, 0x5f, 0xf9, 0xe6, 0xe9, 0x23, 0x3f, 0x93, 0x6e, 0xaf, 0xaf, 0xe7, 0x08, 0x95, 0x5b, + 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x95, 0x5c, 0x25, 0x8b, 0x59, 0xfe, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -88852,19 +88852,19 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) MarshalToSizedBuffer(dAtA _ = i var l int _ = l - if len(m.RelationKeys) > 0 { - for iNdEx := len(m.RelationKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RelationKeys[iNdEx]) - copy(dAtA[i:], m.RelationKeys[iNdEx]) - i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKeys[iNdEx]))) + if len(m.RelationObjectIds) > 0 { + for iNdEx := len(m.RelationObjectIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RelationObjectIds[iNdEx]) + copy(dAtA[i:], m.RelationObjectIds[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationObjectIds[iNdEx]))) i-- dAtA[i] = 0x12 } } - if len(m.ObjectTypeId) > 0 { - i -= len(m.ObjectTypeId) - copy(dAtA[i:], m.ObjectTypeId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectTypeId))) + if len(m.TypeObjectId) > 0 { + i -= len(m.TypeObjectId) + copy(dAtA[i:], m.TypeObjectId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TypeObjectId))) i-- dAtA[i] = 0xa } @@ -88984,19 +88984,19 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) MarshalToSizedBuff _ = i var l int _ = l - if len(m.RelationKeys) > 0 { - for iNdEx := len(m.RelationKeys) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RelationKeys[iNdEx]) - copy(dAtA[i:], m.RelationKeys[iNdEx]) - i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKeys[iNdEx]))) + if len(m.RelationObjectIds) > 0 { + for iNdEx := len(m.RelationObjectIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RelationObjectIds[iNdEx]) + copy(dAtA[i:], m.RelationObjectIds[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationObjectIds[iNdEx]))) i-- dAtA[i] = 0x12 } } - if len(m.ObjectTypeId) > 0 { - i -= len(m.ObjectTypeId) - copy(dAtA[i:], m.ObjectTypeId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectTypeId))) + if len(m.TypeObjectId) > 0 { + i -= len(m.TypeObjectId) + copy(dAtA[i:], m.TypeObjectId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TypeObjectId))) i-- dAtA[i] = 0xa } @@ -123303,12 +123303,12 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) Size() (n int) { } var l int _ = l - l = len(m.ObjectTypeId) + l = len(m.TypeObjectId) if l > 0 { n += 1 + l + sovCommands(uint64(l)) } - if len(m.RelationKeys) > 0 { - for _, s := range m.RelationKeys { + if len(m.RelationObjectIds) > 0 { + for _, s := range m.RelationObjectIds { l = len(s) n += 1 + l + sovCommands(uint64(l)) } @@ -123360,12 +123360,12 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Size() (n int) { } var l int _ = l - l = len(m.ObjectTypeId) + l = len(m.TypeObjectId) if l > 0 { n += 1 + l + sovCommands(uint64(l)) } - if len(m.RelationKeys) > 0 { - for _, s := range m.RelationKeys { + if len(m.RelationObjectIds) > 0 { + for _, s := range m.RelationObjectIds { l = len(s) n += 1 + l + sovCommands(uint64(l)) } @@ -180295,7 +180295,7 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) Unmarshal(dAtA []byte) err switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectTypeId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TypeObjectId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -180323,11 +180323,11 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) Unmarshal(dAtA []byte) err if postIndex > l { return io.ErrUnexpectedEOF } - m.ObjectTypeId = string(dAtA[iNdEx:postIndex]) + m.TypeObjectId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RelationKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RelationObjectIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -180355,7 +180355,7 @@ func (m *RpcObjectTypeRecommendedRelationsSetRequest) Unmarshal(dAtA []byte) err if postIndex > l { return io.ErrUnexpectedEOF } - m.RelationKeys = append(m.RelationKeys, string(dAtA[iNdEx:postIndex])) + m.RelationObjectIds = append(m.RelationObjectIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -180646,7 +180646,7 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Unmarshal(dAtA []b switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectTypeId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TypeObjectId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -180674,11 +180674,11 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Unmarshal(dAtA []b if postIndex > l { return io.ErrUnexpectedEOF } - m.ObjectTypeId = string(dAtA[iNdEx:postIndex]) + m.TypeObjectId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RelationKeys", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RelationObjectIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -180706,7 +180706,7 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetRequest) Unmarshal(dAtA []b if postIndex > l { return io.ErrUnexpectedEOF } - m.RelationKeys = append(m.RelationKeys, string(dAtA[iNdEx:postIndex])) + m.RelationObjectIds = append(m.RelationObjectIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 841bb2bec..34a6edc8b 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3067,8 +3067,8 @@ message Rpc { message Recommended { message RelationsSet { message Request { - string objectTypeId = 1; - repeated string relationKeys = 2; + string typeObjectId = 1; + repeated string relationObjectIds = 2; } message Response { @@ -3091,8 +3091,8 @@ message Rpc { message FeaturedRelationsSet { message Request { - string objectTypeId = 1; - repeated string relationKeys = 2; + string typeObjectId = 1; + repeated string relationObjectIds = 2; } message Response { From 94554252caf07bb0f65c68ece0ead8feececc1c6 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 29 Nov 2024 14:29:17 +0100 Subject: [PATCH 007/176] GO-4608 LayoutWidth relation --- pkg/lib/bundle/relation.gen.go | 17 ++++++++++++++++- pkg/lib/bundle/relations.json | 10 ++++++++++ pkg/lib/bundle/systemRelations.gen.go | 3 ++- pkg/lib/bundle/systemRelations.json | 3 ++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index dee1c70c2..9c9b88f82 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "40664f94553807e45b8ad3ab00ba848505de50bd499545f42673bad8175e135d" +const RelationChecksum = "7bebaf625f21e63f771279cca7ea7cf876bb06f3c64a5d4083a9f2fe3f824088" const ( RelationKeyTag domain.RelationKey = "tag" RelationKeyCamera domain.RelationKey = "camera" @@ -145,6 +145,7 @@ const ( RelationKeyMentions domain.RelationKey = "mentions" RelationKeyTimestamp domain.RelationKey = "timestamp" RelationKeyRecommendedFeaturedRelations domain.RelationKey = "recommendedFeaturedRelations" + RelationKeyLayoutWidth domain.RelationKey = "layoutWidth" ) var ( @@ -1063,6 +1064,20 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyLayoutWidth: { + + DataSource: model.Relation_details, + Description: "Width of object's layout", + Format: model.RelationFormat_number, + Hidden: true, + Id: "_brlayoutWidth", + Key: "layoutWidth", + MaxCount: 1, + Name: "Layout width", + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyLinkedProjects: { DataSource: model.Relation_details, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index b2d01cc25..efd5671f0 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1379,5 +1379,15 @@ ], "readonly": false, "source": "details" + }, + { + "description": "Width of object's layout", + "format": "number", + "hidden": true, + "key": "layoutWidth", + "maxCount": 1, + "name": "Layout width", + "readonly": false, + "source": "details" } ] diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index 2f4a6f402..d5451b10e 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "11ca17268a1ec86e67904f9379fba4b70152fe4f6e88db3d046b6a518fe8ccd4" +const SystemRelationsChecksum = "1e5b0e9052b1eaada03cb90e8703e8bc34b5be7180aa17933afaee74209af65b" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations @@ -83,4 +83,5 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyHasChat, RelationKeyTimestamp, RelationKeyRecommendedFeaturedRelations, + RelationKeyLayoutWidth, }...) diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index d80b4eb4b..2ea17f250 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -91,5 +91,6 @@ "chatId", "hasChat", "timestamp", - "recommendedFeaturedRelations" + "recommendedFeaturedRelations", + "layoutWidth" ] From c2a8157cea070e5aadad8e02006541111aee05a8 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 29 Nov 2024 15:51:21 +0100 Subject: [PATCH 008/176] GO-4608 Make mocks --- .../mock_detailservice/mock_Service.go | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/core/block/detailservice/mock_detailservice/mock_Service.go b/core/block/detailservice/mock_detailservice/mock_Service.go index 7f50049dd..b8dc888aa 100644 --- a/core/block/detailservice/mock_detailservice/mock_Service.go +++ b/core/block/detailservice/mock_detailservice/mock_Service.go @@ -372,6 +372,100 @@ func (_c *MockService_ObjectTypeRemoveRelations_Call) RunAndReturn(run func(cont return _c } +// ObjectTypeSetFeaturedRelations provides a mock function with given fields: objectTypeId, relationObjectIds +func (_m *MockService) ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error { + ret := _m.Called(objectTypeId, relationObjectIds) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeSetFeaturedRelations") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, []string) error); ok { + r0 = rf(objectTypeId, relationObjectIds) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_ObjectTypeSetFeaturedRelations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeSetFeaturedRelations' +type MockService_ObjectTypeSetFeaturedRelations_Call struct { + *mock.Call +} + +// ObjectTypeSetFeaturedRelations is a helper method to define mock.On call +// - objectTypeId string +// - relationObjectIds []string +func (_e *MockService_Expecter) ObjectTypeSetFeaturedRelations(objectTypeId interface{}, relationObjectIds interface{}) *MockService_ObjectTypeSetFeaturedRelations_Call { + return &MockService_ObjectTypeSetFeaturedRelations_Call{Call: _e.mock.On("ObjectTypeSetFeaturedRelations", objectTypeId, relationObjectIds)} +} + +func (_c *MockService_ObjectTypeSetFeaturedRelations_Call) Run(run func(objectTypeId string, relationObjectIds []string)) *MockService_ObjectTypeSetFeaturedRelations_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].([]string)) + }) + return _c +} + +func (_c *MockService_ObjectTypeSetFeaturedRelations_Call) Return(_a0 error) *MockService_ObjectTypeSetFeaturedRelations_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_ObjectTypeSetFeaturedRelations_Call) RunAndReturn(run func(string, []string) error) *MockService_ObjectTypeSetFeaturedRelations_Call { + _c.Call.Return(run) + return _c +} + +// ObjectTypeSetRelations provides a mock function with given fields: objectTypeId, relationObjectIds +func (_m *MockService) ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error { + ret := _m.Called(objectTypeId, relationObjectIds) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeSetRelations") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, []string) error); ok { + r0 = rf(objectTypeId, relationObjectIds) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_ObjectTypeSetRelations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeSetRelations' +type MockService_ObjectTypeSetRelations_Call struct { + *mock.Call +} + +// ObjectTypeSetRelations is a helper method to define mock.On call +// - objectTypeId string +// - relationObjectIds []string +func (_e *MockService_Expecter) ObjectTypeSetRelations(objectTypeId interface{}, relationObjectIds interface{}) *MockService_ObjectTypeSetRelations_Call { + return &MockService_ObjectTypeSetRelations_Call{Call: _e.mock.On("ObjectTypeSetRelations", objectTypeId, relationObjectIds)} +} + +func (_c *MockService_ObjectTypeSetRelations_Call) Run(run func(objectTypeId string, relationObjectIds []string)) *MockService_ObjectTypeSetRelations_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].([]string)) + }) + return _c +} + +func (_c *MockService_ObjectTypeSetRelations_Call) Return(_a0 error) *MockService_ObjectTypeSetRelations_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_ObjectTypeSetRelations_Call) RunAndReturn(run func(string, []string) error) *MockService_ObjectTypeSetRelations_Call { + _c.Call.Return(run) + return _c +} + // SetDetails provides a mock function with given fields: ctx, objectId, details func (_m *MockService) SetDetails(ctx session.Context, objectId string, details []*model.Detail) error { ret := _m.Called(ctx, objectId, details) From 74e1c3aa7361e0b6496f5e350a7a6ab964ff094f Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 3 Dec 2024 13:58:45 +0100 Subject: [PATCH 009/176] GO-4277 Revise sys objects using bundled info --- .../migration/readonlyfixer/relationsfixer.go | 2 +- .../readonlyfixer/relationsfixer_test.go | 6 +- space/internal/components/migration/runner.go | 7 +- .../components/migration/runner_test.go | 4 +- .../systemobjectreviser.go | 63 +++++---- .../systemobjectreviser_test.go | 129 +++++++----------- 6 files changed, 99 insertions(+), 112 deletions(-) diff --git a/space/internal/components/migration/readonlyfixer/relationsfixer.go b/space/internal/components/migration/readonlyfixer/relationsfixer.go index 1105ffd13..1b6ab119a 100644 --- a/space/internal/components/migration/readonlyfixer/relationsfixer.go +++ b/space/internal/components/migration/readonlyfixer/relationsfixer.go @@ -31,7 +31,7 @@ func (Migration) Name() string { return MName } -func (Migration) Run(ctx context.Context, log logger.CtxLogger, store, _ dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { spaceId := space.Id() relations, err := listReadonlyTagAndStatusRelations(store, spaceId) diff --git a/space/internal/components/migration/readonlyfixer/relationsfixer_test.go b/space/internal/components/migration/readonlyfixer/relationsfixer_test.go index a94f14a62..3a256da6b 100644 --- a/space/internal/components/migration/readonlyfixer/relationsfixer_test.go +++ b/space/internal/components/migration/readonlyfixer/relationsfixer_test.go @@ -82,7 +82,7 @@ func TestFixReadonlyInRelations(t *testing.T) { ).Times(2) // when - migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space1"), nil, spc) + migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space1"), spc) // then assert.NoError(t, err) @@ -99,7 +99,7 @@ func TestFixReadonlyInRelations(t *testing.T) { // sp.EXPECT().Do(mock.Anything, mock.Anything).Times(1).Return(nil) // when - migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space2"), nil, spc) + migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space2"), spc) // then assert.NoError(t, err) @@ -116,7 +116,7 @@ func TestFixReadonlyInRelations(t *testing.T) { // sp.EXPECT().Do(mock.Anything, mock.Anything).Times(1).Return(nil) // when - migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space3"), nil, spc) + migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space3"), spc) // then assert.NoError(t, err) diff --git a/space/internal/components/migration/runner.go b/space/internal/components/migration/runner.go index c3f6c1490..21e6cc76d 100644 --- a/space/internal/components/migration/runner.go +++ b/space/internal/components/migration/runner.go @@ -10,7 +10,6 @@ import ( "github.com/anyproto/any-sync/app/logger" "go.uber.org/zap" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/space/clientspace" "github.com/anyproto/anytype-heart/space/internal/components/dependencies" @@ -27,7 +26,7 @@ const ( var log = logger.NewNamed(CName) type Migration interface { - Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) + Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) Name() string } @@ -107,7 +106,7 @@ func (r *Runner) run(migrations ...Migration) (err error) { start := time.Now() store := r.store.SpaceIndex(spaceId) - marketPlaceStore := r.store.SpaceIndex(addr.AnytypeMarketplaceWorkspace) + // marketPlaceStore := r.store.SpaceIndex(addr.AnytypeMarketplaceWorkspace) spent := time.Since(start) for _, m := range migrations { @@ -115,7 +114,7 @@ func (r *Runner) run(migrations ...Migration) (err error) { err = errors.Join(err, e) return } - toMigrate, migrated, e := m.Run(r.ctx, log, store, marketPlaceStore, r.spc) + toMigrate, migrated, e := m.Run(r.ctx, log, store, r.spc) if e != nil { err = errors.Join(err, wrapError(e, m.Name(), spaceId, migrated, toMigrate)) continue diff --git a/space/internal/components/migration/runner_test.go b/space/internal/components/migration/runner_test.go index 0f352f1c0..0ced781ec 100644 --- a/space/internal/components/migration/runner_test.go +++ b/space/internal/components/migration/runner_test.go @@ -158,7 +158,7 @@ func (longSpaceMigration) Name() string { return "long migration" } -func (longSpaceMigration) Run(ctx context.Context, _ logger.CtxLogger, _, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (longSpaceMigration) Run(ctx context.Context, _ logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { for { if err = space.DoCtx(ctx, "", func(smartblock.SmartBlock) error { // do smth @@ -175,6 +175,6 @@ func (instantMigration) Name() string { return "instant migration" } -func (instantMigration) Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (instantMigration) Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { return 0, 0, nil } diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index 1c30388b8..c9472c2f9 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -14,6 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" @@ -43,19 +44,14 @@ func (Migration) Name() string { return MName } -func (Migration) Run(ctx context.Context, log logger.CtxLogger, store, marketPlace dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { spaceObjects, err := listAllTypesAndRelations(store) if err != nil { return 0, 0, fmt.Errorf("failed to get relations and types from client space: %w", err) } - marketObjects, err := listAllTypesAndRelations(marketPlace) - if err != nil { - return 0, 0, fmt.Errorf("failed to get relations from marketplace space: %w", err) - } - for _, details := range spaceObjects { - shouldBeRevised, e := reviseSystemObject(ctx, log, space, details, marketObjects) + shouldBeRevised, e := reviseObject(ctx, log, space, details) if !shouldBeRevised { continue } @@ -91,15 +87,25 @@ func listAllTypesAndRelations(store dependencies.QueryableStore) (map[string]*ty return details, nil } -func reviseSystemObject(ctx context.Context, log logger.CtxLogger, space dependencies.SpaceWithCtx, localObject *types.Struct, marketObjects map[string]*types.Struct) (toRevise bool, err error) { - source := pbtypes.GetString(localObject, bundle.RelationKeySourceObject.String()) - marketObject, found := marketObjects[source] - if !found || !isSystemObject(localObject) || pbtypes.GetInt64(marketObject, revisionKey) <= pbtypes.GetInt64(localObject, revisionKey) { +func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies.SpaceWithCtx, localObject *types.Struct) (toRevise bool, err error) { + uniqueKeyRaw := pbtypes.GetString(localObject, bundle.RelationKeyUniqueKey.String()) + + uk, err := domain.UnmarshalUniqueKey(uniqueKeyRaw) + if err != nil { + return false, fmt.Errorf("failed to unmarshal unique key '%s': %w", uniqueKeyRaw, err) + } + + bundleObject := getBundleSystemObjectDetails(uk) + if bundleObject == nil { return false, nil } - details := buildDiffDetails(marketObject, localObject) - recRelsDetail, err := checkRecommendedRelations(ctx, space, marketObject, localObject) + if pbtypes.GetInt64(bundleObject, revisionKey) <= pbtypes.GetInt64(localObject, revisionKey) { + return false, nil + } + details := buildDiffDetails(bundleObject, localObject) + + recRelsDetail, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) if err != nil { log.Error("failed to check recommended relations", zap.Error(err)) } @@ -109,32 +115,41 @@ func reviseSystemObject(ctx context.Context, log logger.CtxLogger, space depende } if len(details) != 0 { - log.Debug("updating system object", zap.String("source", source), zap.String("space", space.Id())) + log.Debug("updating system object", zap.String("key", uk.InternalKey()), zap.String("space", space.Id())) if err := space.DoCtx(ctx, pbtypes.GetString(localObject, bundle.RelationKeyId.String()), func(sb smartblock.SmartBlock) error { if ds, ok := sb.(detailsSettable); ok { return ds.SetDetails(nil, details, false) } return nil }); err != nil { - return true, fmt.Errorf("failed to update system object %s in space %s: %w", source, space.Id(), err) + return true, fmt.Errorf("failed to update system object '%s' in space '%s': %w", uk.InternalKey(), space.Id(), err) } } return true, nil } -func isSystemObject(details *types.Struct) bool { - rawKey := pbtypes.GetString(details, bundle.RelationKeyUniqueKey.String()) - uk, err := domain.UnmarshalUniqueKey(rawKey) - if err != nil { - return false - } +// getBundleSystemObjectDetails returns nil if the object with provided unique key is not either system relation or system type +func getBundleSystemObjectDetails(uk domain.UniqueKey) *types.Struct { switch uk.SmartblockType() { case coresb.SmartBlockTypeObjectType: - return lo.Contains(bundle.SystemTypes, domain.TypeKey(uk.InternalKey())) + typeKey := domain.TypeKey(uk.InternalKey()) + if !lo.Contains(bundle.SystemTypes, typeKey) { + // non system object type, no need to revise + return nil + } + objectType := bundle.MustGetType(typeKey) + return (&relationutils.ObjectType{ObjectType: objectType}).BundledTypeDetails() case coresb.SmartBlockTypeRelation: - return lo.Contains(bundle.SystemRelations, domain.RelationKey(uk.InternalKey())) + relationKey := domain.RelationKey(uk.InternalKey()) + if !lo.Contains(bundle.SystemRelations, relationKey) { + // non system relation, no need to revise + return nil + } + relation := bundle.MustGetRelation(relationKey) + return (&relationutils.Relation{Relation: relation}).ToStruct() + default: + return nil } - return false } func buildDiffDetails(origin, current *types.Struct) (details []*model.Detail) { diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go index d3b568604..a9dc343de 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go @@ -25,23 +25,13 @@ func TestMigration_Run(t *testing.T) { store.AddObjects(t, "space1", []objectstore.TestObject{ { bundle.RelationKeySpaceId: pbtypes.String("space1"), - bundle.RelationKeyRelationFormat: pbtypes.Int64(int64(model.RelationFormat_checkbox)), + bundle.RelationKeyRelationFormat: pbtypes.Int64(int64(model.RelationFormat_object)), bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyId: pbtypes.String("id1"), - bundle.RelationKeyIsHidden: pbtypes.Bool(true), - bundle.RelationKeyRevision: pbtypes.Int64(1), - bundle.RelationKeyUniqueKey: pbtypes.String(bundle.RelationKeyDone.URL()), - bundle.RelationKeySourceObject: pbtypes.String(bundle.RelationKeyDone.BundledURL()), - }, - }) - marketPlace := objectstore.NewStoreFixture(t) - marketPlace.AddObjects(t, addr.AnytypeMarketplaceWorkspace, []objectstore.TestObject{ - { - bundle.RelationKeySpaceId: pbtypes.String(addr.AnytypeMarketplaceWorkspace), - bundle.RelationKeyRelationFormat: pbtypes.Int64(int64(model.RelationFormat_checkbox)), - bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeyId: pbtypes.String(bundle.RelationKeyDone.BundledURL()), - bundle.RelationKeyRevision: pbtypes.Int64(2), + bundle.RelationKeyIsHidden: pbtypes.Bool(true), // bundle = false + bundle.RelationKeyRevision: pbtypes.Int64(1), // bundle = 3 + bundle.RelationKeyUniqueKey: pbtypes.String(bundle.RelationKeyBacklinks.URL()), + bundle.RelationKeySourceObject: pbtypes.String(bundle.RelationKeyBacklinks.BundledURL()), }, }) fixer := &Migration{} @@ -54,7 +44,7 @@ func TestMigration_Run(t *testing.T) { spc.EXPECT().DoCtx(ctx, "id1", mock.Anything).Return(nil).Times(1) // when - migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space1"), marketPlace.SpaceIndex(addr.AnytypeMarketplaceWorkspace), spc) + migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space1"), spc) // then assert.NoError(t, err) @@ -65,7 +55,7 @@ func TestMigration_Run(t *testing.T) { func TestReviseSystemObject(t *testing.T) { ctx := context.Background() - log := logger.NewNamed("tesr") + log := logger.NewNamed("test") marketObjects := map[string]*types.Struct{ "_otnote": {Fields: map[string]*types.Value{revisionKey: pbtypes.Int64(3)}}, "_otpage": {Fields: map[string]*types.Value{revisionKey: pbtypes.Int64(2)}}, @@ -79,16 +69,19 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system object type is updated if revision is higher", func(t *testing.T) { // given objectType := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(1), - bundle.RelationKeySourceObject.String(): pbtypes.String("_otnote"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-note"), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetType(bundle.TypeKeyFile).Revision - 1), + bundle.RelationKeySourceObject.String(): pbtypes.String("_otfile"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-file"), }} space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return addr.ObjectTypeKeyToIdPrefix + key.InternalKey(), nil + }).Maybe() // when - toRevise, err := reviseSystemObject(ctx, log, space, objectType, marketObjects) + toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) @@ -97,16 +90,19 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system object type is updated if no revision is set", func(t *testing.T) { // given - objectType := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeySourceObject.String(): pbtypes.String("_otpage"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-page"), + objectType := &types.Struct{Fields: map[string]*types.Value{ // bundle Audio type revision = 1 + bundle.RelationKeySourceObject.String(): pbtypes.String("_otaudio"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-audio"), }} space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return addr.ObjectTypeKeyToIdPrefix + key.InternalKey(), nil + }).Maybe() // when - toRevise, err := reviseSystemObject(ctx, log, space, objectType, marketObjects) + toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) @@ -121,7 +117,7 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, objectType, marketObjects) + toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) @@ -137,7 +133,7 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, objectType, marketObjects) + toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) @@ -147,14 +143,14 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system object type with same revision is not updated", func(t *testing.T) { // given objectType := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(3), - bundle.RelationKeySourceObject.String(): pbtypes.String("_otnote"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-note"), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetType(bundle.TypeKeyImage).Revision), + bundle.RelationKeySourceObject.String(): pbtypes.String("_otimage"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-image"), }} space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, objectType, marketObjects) + toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) @@ -164,16 +160,16 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system relation is updated if revision is higher", func(t *testing.T) { // given rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(1), - bundle.RelationKeySourceObject.String(): pbtypes.String("_brdescription"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-description"), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetRelation(bundle.RelationKeyGlobalName).Revision - 1), + bundle.RelationKeySourceObject.String(): pbtypes.String("_brglobalName"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-globalName"), }} space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -182,16 +178,16 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system relation is updated if no revision is set", func(t *testing.T) { // given - rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeySourceObject.String(): pbtypes.String("_brid"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-id"), + rel := &types.Struct{Fields: map[string]*types.Value{ // relationMaxCount revision = 1 + bundle.RelationKeySourceObject.String(): pbtypes.String("_brrelationMaxCount"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-relationMaxCount"), }} space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -206,7 +202,7 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -223,7 +219,7 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -233,14 +229,14 @@ func TestReviseSystemObject(t *testing.T) { t.Run("system relation with same revision is not updated", func(t *testing.T) { // given rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(3), - bundle.RelationKeySourceObject.String(): pbtypes.String("_brisReadonly"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-isReadonly"), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetRelation(bundle.RelationKeyBacklinks).Revision), + bundle.RelationKeySourceObject.String(): pbtypes.String("_brbacklinks"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-backlinks"), }} space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -250,17 +246,17 @@ func TestReviseSystemObject(t *testing.T) { t.Run("relation with absent maxCount is updated", func(t *testing.T) { // given rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(2), - bundle.RelationKeySourceObject.String(): pbtypes.String("_brisReadonly"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-isReadonly"), - bundle.RelationKeyRelationMaxCount.String(): pbtypes.Int64(1), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetRelation(bundle.RelationKeyBacklinks).Revision - 1), + bundle.RelationKeySourceObject.String(): pbtypes.String("_brbacklinks"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("rel-backlinks"), + bundle.RelationKeyRelationMaxCount.String(): pbtypes.Int64(1), // maxCount of bundle backlinks = 0 }} space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") // when - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) @@ -270,9 +266,9 @@ func TestReviseSystemObject(t *testing.T) { t.Run("recommendedRelations list is updated", func(t *testing.T) { // given rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(1), - bundle.RelationKeySourceObject.String(): pbtypes.String("_otpage"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-page"), + bundle.RelationKeyRevision.String(): pbtypes.Int64(bundle.MustGetType(bundle.TypeKeyImage).Revision - 1), + bundle.RelationKeySourceObject.String(): pbtypes.String("_otimage"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-image"), bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList([]string{"rel-name"}), }} space := mock_space.NewMockSpace(t) @@ -283,36 +279,13 @@ func TestReviseSystemObject(t *testing.T) { }).Maybe() // when - marketObjects["_otpage"].Fields["recommendedRelations"] = pbtypes.StringList([]string{"_brname", "_brorigin"}) - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) assert.True(t, toRevise) }) - t.Run("recommendedRelations list is not updated", func(t *testing.T) { - // given - rel := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyRevision.String(): pbtypes.Int64(2), - bundle.RelationKeySourceObject.String(): pbtypes.String("_otpage"), - bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-page"), - bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList([]string{"rel-name", "rel-tag"}), - }} - space := mock_space.NewMockSpace(t) - space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { - return addr.ObjectTypeKeyToIdPrefix + key.InternalKey(), nil - }).Maybe() - - // when - marketObjects["_otpage"].Fields["recommendedRelations"] = pbtypes.StringList([]string{"_brname", "_brtag"}) - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) - - // then - assert.NoError(t, err) - assert.False(t, toRevise) - }) - t.Run("recommendedRelations list is updated by not system relations", func(t *testing.T) { // given rel := &types.Struct{Fields: map[string]*types.Value{ @@ -328,7 +301,7 @@ func TestReviseSystemObject(t *testing.T) { // when marketObjects["_otpage"].Fields["recommendedRelations"] = pbtypes.StringList([]string{"_brname", "_brtag"}) - toRevise, err := reviseSystemObject(ctx, log, space, rel, marketObjects) + toRevise, err := reviseObject(ctx, log, space, rel) // then assert.NoError(t, err) From c7a35bce10e9c5bbee403fd48880f560b6d95eed Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 3 Dec 2024 17:44:21 +0100 Subject: [PATCH 010/176] GO-4419 Default templates for collections --- core/block/object/objectcreator/creator.go | 31 ++--------- core/block/object/objectcreator/set.go | 64 ---------------------- 2 files changed, 6 insertions(+), 89 deletions(-) delete mode 100644 core/block/object/objectcreator/set.go diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 92c58749a..35bcd30a9 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -14,9 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" - "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" - coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -28,10 +26,6 @@ import ( ) type ( - collectionService interface { - CreateCollection(details *types.Struct, flags []*model.InternalFlag) (coresb.SmartBlockType, *types.Struct, *state.State, error) - } - templateService interface { CreateTemplateStateWithDetails(templateId string, details *types.Struct) (st *state.State, err error) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) @@ -63,13 +57,12 @@ type Service interface { } type service struct { - objectStore objectstore.ObjectStore - collectionService collectionService - bookmarkService bookmarkService - spaceService space.Service - templateService templateService - lastUsedUpdater lastused.ObjectUsageUpdater - archiver objectArchiver + objectStore objectstore.ObjectStore + bookmarkService bookmarkService + spaceService space.Service + templateService templateService + lastUsedUpdater lastused.ObjectUsageUpdater + archiver objectArchiver } func NewCreator() Service { @@ -79,7 +72,6 @@ func NewCreator() Service { func (s *service) Init(a *app.App) (err error) { s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) s.bookmarkService = app.MustComponent[bookmarkService](a) - s.collectionService = app.MustComponent[collectionService](a) s.spaceService = app.MustComponent[space.Service](a) s.templateService = app.MustComponent[templateService](a) s.lastUsedUpdater = app.MustComponent[lastused.ObjectUsageUpdater](a) @@ -140,19 +132,8 @@ func (s *service) createObjectInSpace( return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) case bundle.TypeKeySet: details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_set)) - return s.createSet(ctx, space, &pb.RpcObjectCreateSetRequest{ - Details: details, - InternalFlags: req.InternalFlags, - Source: pbtypes.GetStringList(details, bundle.RelationKeySetOf.String()), - }) case bundle.TypeKeyCollection: - var st *state.State details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_collection)) - _, details, st, err = s.collectionService.CreateCollection(details, req.InternalFlags) - if err != nil { - return "", nil, err - } - return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyCollection}, st) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) case bundle.TypeKeyRelation: diff --git a/core/block/object/objectcreator/set.go b/core/block/object/objectcreator/set.go deleted file mode 100644 index 7dc4d761e..000000000 --- a/core/block/object/objectcreator/set.go +++ /dev/null @@ -1,64 +0,0 @@ -package objectcreator - -import ( - "context" - - "github.com/gogo/protobuf/types" - - "github.com/anyproto/anytype-heart/core/block/editor/dataview" - "github.com/anyproto/anytype-heart/core/block/editor/state" - "github.com/anyproto/anytype-heart/core/block/editor/template" - "github.com/anyproto/anytype-heart/core/domain" - "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/pkg/lib/bundle" - "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/space/clientspace" - "github.com/anyproto/anytype-heart/util/internalflag" - "github.com/anyproto/anytype-heart/util/pbtypes" -) - -func (s *service) createSet(ctx context.Context, space clientspace.Space, req *pb.RpcObjectCreateSetRequest) (setID string, newDetails *types.Struct, err error) { - req.Details = internalflag.PutToDetails(req.Details, req.InternalFlags) - - dvContent, err := dataview.BlockBySource(s.objectStore.SpaceIndex(space.Id()), req.Source) - if err != nil { - return - } - - newState := state.NewDoc("", nil).NewState() - if len(req.Source) > 0 { - newState.SetDetailAndBundledRelation(bundle.RelationKeySetOf, pbtypes.StringList(req.Source)) - } - newState.AddDetails(req.Details) - newState.BlocksInit(newState) - - tmpls := []template.StateTransformer{} - - for i, view := range dvContent.Dataview.Views { - if view.Relations == nil { - dvContent.Dataview.Views[i].Relations = getDefaultViewRelations(dvContent.Dataview.Relations) - } - } - tmpls = append(tmpls, - template.WithDataview(dvContent, false), - ) - - template.InitTemplate(newState, tmpls...) - - return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeySet}, newState) -} - -func getDefaultViewRelations(rels []*model.Relation) []*model.BlockContentDataviewRelation { - viewRels := make([]*model.BlockContentDataviewRelation, 0, len(rels)) - for _, rel := range rels { - if rel.Hidden && rel.Key != bundle.RelationKeyName.String() { - continue - } - var visible bool - if rel.Key == bundle.RelationKeyName.String() { - visible = true - } - viewRels = append(viewRels, &model.BlockContentDataviewRelation{Key: rel.Key, IsVisible: visible}) - } - return viewRels -} From c42b2663ed31f695b9d9c14c88894775b9295306 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 3 Dec 2024 22:34:26 +0100 Subject: [PATCH 011/176] GO-4232 Add system relations to recommended --- core/block/object/objectcreator/installer.go | 44 ++------ .../object/objectcreator/installer_test.go | 13 ++- .../block/object/objectcreator/object_type.go | 104 +++++++++++++----- .../object/objectcreator/object_type_test.go | 86 +++++++++++++++ core/block/object/objectcreator/relation.go | 22 ++++ 5 files changed, 207 insertions(+), 62 deletions(-) create mode 100644 core/block/object/objectcreator/object_type_test.go diff --git a/core/block/object/objectcreator/installer.go b/core/block/object/objectcreator/installer.go index be23cb2d3..3bf16ba66 100644 --- a/core/block/object/objectcreator/installer.go +++ b/core/block/object/objectcreator/installer.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "strings" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/gogo/protobuf/types" @@ -260,41 +259,20 @@ func (s *service) prepareDetailsForInstallingObject( lastused.SetLastUsedDateForInitialObjectType(sourceId, details) } - bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) - if len(bundledRelationIds) > 0 { - recommendedRelationKeys := make([]string, 0, len(bundledRelationIds)) - for _, id := range bundledRelationIds { - key, err := bundle.RelationKeyFromID(id) - if err != nil { - return nil, fmt.Errorf("relation key from id: %w", err) - } - recommendedRelationKeys = append(recommendedRelationKeys, key.String()) - } - recommendedRelationIds, err := s.prepareRecommendedRelationIds(ctx, spc, recommendedRelationKeys) - if err != nil { - return nil, fmt.Errorf("prepare recommended relation ids: %w", err) - } - details.Fields[bundle.RelationKeyRecommendedRelations.String()] = pbtypes.StringList(recommendedRelationIds) + uk, err := domain.UnmarshalUniqueKey(pbtypes.GetString(details, bundle.RelationKeyUniqueKey.String())) + if err != nil { + return nil, fmt.Errorf("unmarshal unique key: %w", err) } - objectTypes := pbtypes.GetStringList(details, bundle.RelationKeyRelationFormatObjectTypes.String()) - - if len(objectTypes) > 0 { - for i, objectType := range objectTypes { - // replace object type url with id - uniqueKey, err := domain.NewUniqueKey(coresb.SmartBlockTypeObjectType, strings.TrimPrefix(objectType, addr.BundledObjectTypeURLPrefix)) - if err != nil { - // should never happen - return nil, err - } - id, err := spc.DeriveObjectID(ctx, uniqueKey) - if err != nil { - // should never happen - return nil, err - } - objectTypes[i] = id + switch uk.SmartblockType() { + case coresb.SmartBlockTypeBundledObjectType, coresb.SmartBlockTypeObjectType: + if err = s.fillRecommendedRelations(ctx, spc, details, false); err != nil { + return nil, fmt.Errorf("fill recommended relations: %w", err) + } + case coresb.SmartBlockTypeBundledRelation, coresb.SmartBlockTypeRelation: + if err = fillRelationFormatObjectTypes(ctx, spc, details); err != nil { + return nil, fmt.Errorf("fill relation format objectTypes: %w", err) } - details.Fields[bundle.RelationKeyRelationFormatObjectTypes.String()] = pbtypes.StringList(objectTypes) } return details, nil diff --git a/core/block/object/objectcreator/installer_test.go b/core/block/object/objectcreator/installer_test.go index a82574775..bda235296 100644 --- a/core/block/object/objectcreator/installer_test.go +++ b/core/block/object/objectcreator/installer_test.go @@ -1,6 +1,7 @@ package objectcreator import ( + "context" "testing" "github.com/gogo/protobuf/types" @@ -11,6 +12,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/detailservice/mock_detailservice" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" + "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" @@ -84,9 +86,10 @@ func TestInstaller_reinstallObject(t *testing.T) { t.Run("reinstall archived object", func(t *testing.T) { // given sourceDetails := &types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyId.String(): pbtypes.String(bundle.TypeKeyProject.BundledURL()), - bundle.RelationKeySpaceId.String(): pbtypes.String(addr.AnytypeMarketplaceWorkspace), - bundle.RelationKeyName.String(): pbtypes.String(bundle.TypeKeyProject.String()), + bundle.RelationKeyId.String(): pbtypes.String(bundle.TypeKeyProject.BundledURL()), + bundle.RelationKeySpaceId.String(): pbtypes.String(addr.AnytypeMarketplaceWorkspace), + bundle.RelationKeyName.String(): pbtypes.String(bundle.TypeKeyProject.String()), + bundle.RelationKeyUniqueKey.String(): pbtypes.String(bundle.TypeKeyProject.URL()), }} sourceObject := smarttest.New(bundle.TypeKeyProject.BundledURL()) @@ -121,6 +124,10 @@ func TestInstaller_reinstallObject(t *testing.T) { assert.Equal(t, id, bundle.TypeKeyProject.URL()) return apply(archivedObject) }) + spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.UniqueKey) (string, error) { + return domain.RelationKey(key.InternalKey()).URL(), nil + }) + spc.EXPECT().IsReadOnly().Return(true) archiver := mock_detailservice.NewMockService(t) archiver.EXPECT().SetIsArchived(mock.Anything, mock.Anything).RunAndReturn(func(id string, isArchived bool) error { diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 23df89b7e..739b1303e 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/gogo/protobuf/types" + "github.com/samber/lo" "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/block/editor/state" @@ -17,6 +18,23 @@ import ( "github.com/anyproto/anytype-heart/util/pbtypes" ) +var ( + defaultRecommendedFeaturedRelationKeys = []domain.RelationKey{ + bundle.RelationKeyType, + bundle.RelationKeyTag, + bundle.RelationKeyBacklinks, + } + + defaultRecommendedRelationKeys = []domain.RelationKey{ + bundle.RelationKeyCreatedDate, + bundle.RelationKeyCreator, + bundle.RelationKeyLastModifiedDate, + bundle.RelationKeyLastModifiedBy, + bundle.RelationKeyLastOpenedDate, + bundle.RelationKeyLinks, + } +) + func (s *service) createObjectType(ctx context.Context, space clientspace.Space, details *types.Struct) (id string, newDetails *types.Struct, err error) { if details == nil || details.Fields == nil { return "", nil, fmt.Errorf("create object type: no data") @@ -32,7 +50,7 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, object.Fields[bundle.RelationKeyRecommendedLayout.String()] = pbtypes.Int64(int64(model.ObjectType_basic)) } if len(pbtypes.GetStringList(object, bundle.RelationKeyRecommendedRelations.String())) == 0 { - err = s.fillRecommendedRelationsFromLayout(ctx, space, object) + err = s.fillRecommendedRelations(ctx, space, object, true) if err != nil { return "", nil, fmt.Errorf("fill recommended relations: %w", err) } @@ -56,48 +74,82 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, return id, newDetails, nil } -func (s *service) fillRecommendedRelationsFromLayout(ctx context.Context, space clientspace.Space, details *types.Struct) error { - rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) - recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(int32(rawRecommendedLayout))) +func (s *service) fillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *types.Struct, fromLayout bool) error { + keys, err := getRelationKeysFromDetails(details, fromLayout) if err != nil { - return fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) + return fmt.Errorf("get recommended relation keys: %w", err) } - recommendedRelationKeys := make([]string, 0, len(recommendedLayout.RequiredRelations)+1) - for _, rel := range recommendedLayout.RequiredRelations { - recommendedRelationKeys = append(recommendedRelationKeys, rel.Key) - } - recommendedRelationIds, err := s.prepareRecommendedRelationIds(ctx, space, recommendedRelationKeys) + + // we should include default system recommended relations and exclude default recommended featured relations + keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) + keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { + return slices.Contains(defaultRecommendedFeaturedRelationKeys, key) + }) + + relationIds, err := s.prepareRelationIds(ctx, spc, keys) if err != nil { return fmt.Errorf("prepare recommended relation ids: %w", err) } - details.Fields[bundle.RelationKeyRecommendedRelations.String()] = pbtypes.StringList(recommendedRelationIds) - return nil + details.Fields[bundle.RelationKeyRecommendedRelations.String()] = pbtypes.StringList(relationIds) + + featuredRelationIds, err := s.prepareRelationIds(ctx, spc, defaultRecommendedFeaturedRelationKeys) + if err != nil { + return fmt.Errorf("prepare recommended featured relation ids: %w", err) + } + details.Fields[bundle.RelationKeyRecommendedFeaturedRelations.String()] = pbtypes.StringList(featuredRelationIds) + + return s.installRecommendedRelations(ctx, spc, append(keys, defaultRecommendedFeaturedRelationKeys...)) } -func (s *service) prepareRecommendedRelationIds(ctx context.Context, space clientspace.Space, recommendedRelationKeys []string) ([]string, error) { - descriptionRelationKey := bundle.RelationKeyDescription.String() - if !slices.Contains(recommendedRelationKeys, descriptionRelationKey) { - recommendedRelationKeys = append(recommendedRelationKeys, descriptionRelationKey) +func getRelationKeysFromDetails(details *types.Struct, fromLayout bool) ([]domain.RelationKey, error) { + var keys []domain.RelationKey + if fromLayout { + rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) + recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(int32(rawRecommendedLayout))) + if err != nil { + return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) + } + keys = make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) + for _, rel := range recommendedLayout.RequiredRelations { + keys = append(keys, domain.RelationKey(rel.Key)) + } + } else { + bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) + keys = make([]domain.RelationKey, 0, len(bundledRelationIds)) + for _, id := range bundledRelationIds { + key, err := bundle.RelationKeyFromID(id) + if err != nil { + return nil, fmt.Errorf("relation key from id: %w", err) + } + keys = append(keys, key) + } } - recommendedRelationIDs := make([]string, 0, len(recommendedRelationKeys)) - relationsToInstall := make([]string, 0, len(recommendedRelationKeys)) - for _, relKey := range recommendedRelationKeys { - uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, relKey) + return keys, nil +} + +func (s *service) prepareRelationIds(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) ([]string, error) { + relationIds := make([]string, 0, len(relationKeys)) + for _, key := range relationKeys { + uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, key.String()) if err != nil { return nil, fmt.Errorf("failed to create unique Key: %w", err) } - relationsToInstall = append(relationsToInstall, domain.RelationKey(relKey).BundledURL()) id, err := space.DeriveObjectID(ctx, uk) if err != nil { return nil, fmt.Errorf("failed to derive object id: %w", err) } - recommendedRelationIDs = append(recommendedRelationIDs, id) + relationIds = append(relationIds, id) } - _, _, err := s.InstallBundledObjects(ctx, space, relationsToInstall, false) - if err != nil { - return nil, fmt.Errorf("install recommended relations: %w", err) + return relationIds, nil +} + +func (s *service) installRecommendedRelations(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) error { + bundledRelationIds := make([]string, len(relationKeys)) + for i, key := range relationKeys { + bundledRelationIds[i] = key.BundledURL() } - return recommendedRelationIDs, nil + _, _, err := s.InstallBundledObjects(ctx, space, bundledRelationIds, false) + return err } func (s *service) installTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { diff --git a/core/block/object/objectcreator/object_type_test.go b/core/block/object/objectcreator/object_type_test.go new file mode 100644 index 000000000..3a1d00984 --- /dev/null +++ b/core/block/object/objectcreator/object_type_test.go @@ -0,0 +1,86 @@ +package objectcreator + +import ( + "context" + "fmt" + "testing" + + "github.com/gogo/protobuf/types" + "github.com/samber/lo" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" + "github.com/anyproto/anytype-heart/util/pbtypes" +) + +func TestService_fillRecommendedRelations(t *testing.T) { + s := service{} + spc := mock_clientspace.NewMockSpace(t) + spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.UniqueKey) (string, error) { + return domain.RelationKey(key.InternalKey()).URL(), nil + }).Maybe() + spc.EXPECT().IsReadOnly().Return(true).Maybe() + defaultRecFeatRelIds := buildRelationIds(defaultRecommendedFeaturedRelationKeys) + defaultRecRelIds := buildRelationIds(defaultRecommendedRelationKeys) + + for _, tc := range []struct { + name string + given []string + expected []string + }{ + { + "empty", []string{}, defaultRecRelIds, + }, + { + "no intersect", + []string{bundle.RelationKeyAssignee.BundledURL(), bundle.RelationKeyDone.BundledURL()}, + append([]string{bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL()}, defaultRecRelIds...), + }, + { + "fully intersect with system", + []string{bundle.RelationKeyLinks.BundledURL(), bundle.RelationKeyCreator.BundledURL()}, + lo.Uniq(append([]string{bundle.RelationKeyLinks.URL(), bundle.RelationKeyCreator.URL()}, defaultRecRelIds...)), + }, + { + "partially intersect with system", + []string{bundle.RelationKeyLinks.BundledURL(), bundle.RelationKeyDone.BundledURL()}, + lo.Uniq(append([]string{bundle.RelationKeyLinks.URL(), bundle.RelationKeyDone.URL()}, defaultRecRelIds...)), + }, + { + "intersect with featured", + []string{bundle.RelationKeyType.BundledURL(), bundle.RelationKeyTag.BundledURL(), bundle.RelationKeyIconOption.BundledURL()}, + append([]string{bundle.RelationKeyIconOption.URL()}, defaultRecRelIds...), + }, + { + "intersect both with featured and system", + []string{bundle.RelationKeyBacklinks.BundledURL(), bundle.RelationKeyAddedDate.BundledURL(), bundle.RelationKeyCreatedDate.BundledURL()}, + lo.Uniq(append([]string{bundle.RelationKeyAddedDate.URL(), bundle.RelationKeyCreatedDate.URL()}, defaultRecRelIds...)), + }, + } { + t.Run(fmt.Sprintf("from source: %s", tc.name), func(t *testing.T) { + // given + details := &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList(tc.given), + }} + + // when + err := s.fillRecommendedRelations(nil, spc, details, false) + + // then + assert.NoError(t, err) + assert.Equal(t, tc.expected, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String())) + assert.Equal(t, defaultRecFeatRelIds, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedFeaturedRelations.String())) + }) + } +} + +func buildRelationIds(keys []domain.RelationKey) []string { + ids := make([]string, len(keys)) + for i, rel := range keys { + ids[i] = rel.URL() + } + return ids +} diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index be2ad63b3..9fb71d594 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -3,6 +3,7 @@ package objectcreator import ( "context" "fmt" + "strings" "github.com/globalsign/mgo/bson" "github.com/gogo/protobuf/types" @@ -60,3 +61,24 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d createState.SetDetails(object) return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyRelation}, createState) } + +func fillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, details *types.Struct) error { + objectTypes := pbtypes.GetStringList(details, bundle.RelationKeyRelationFormatObjectTypes.String()) + + for i, objectType := range objectTypes { + // replace object type url with id + uniqueKey, err := domain.NewUniqueKey(coresb.SmartBlockTypeObjectType, strings.TrimPrefix(objectType, addr.BundledObjectTypeURLPrefix)) + if err != nil { + // should never happen + return err + } + id, err := spc.DeriveObjectID(ctx, uniqueKey) + if err != nil { + // should never happen + return err + } + objectTypes[i] = id + } + details.Fields[bundle.RelationKeyRelationFormatObjectTypes.String()] = pbtypes.StringList(objectTypes) + return nil +} From 35e6a0ce7c0962619dedaefa8b9ef8e1be3e40fc Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 4 Dec 2024 12:32:42 +0100 Subject: [PATCH 012/176] GO-4232 Fix lint --- core/block/object/objectcreator/object_type.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 739b1303e..88282e626 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -105,7 +105,7 @@ func getRelationKeysFromDetails(details *types.Struct, fromLayout bool) ([]domai var keys []domain.RelationKey if fromLayout { rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) - recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(int32(rawRecommendedLayout))) + recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) if err != nil { return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) } From 322e84107344f643700039ee24bb65d0631ce976 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 4 Dec 2024 16:13:18 +0100 Subject: [PATCH 013/176] GO-4232 Add BundleObjectsInstaller --- core/anytype/bootstrap.go | 2 + .../common/objectcreator/objectcreator.go | 10 +- .../objectcreator/objectcreator_test.go | 4 +- core/block/import/importer.go | 6 +- .../installer.go => installer/bundle.go} | 105 +++++++--- .../bundle_test.go} | 13 +- core/block/object/objectcreator/chat.go | 2 +- core/block/object/objectcreator/creator.go | 20 +- .../mock_objectcreator/mock_Service.go | 184 +++++++++++------- .../block/object/objectcreator/object_type.go | 55 ++++-- .../object/objectcreator/object_type_test.go | 67 ++++++- core/block/object/objectcreator/relation.go | 10 +- core/block/service.go | 7 +- pkg/lib/bundle/layout.gen.go | 27 ++- pkg/lib/bundle/layouts.json | 24 +-- 15 files changed, 353 insertions(+), 183 deletions(-) rename core/block/object/{objectcreator/installer.go => installer/bundle.go} (71%) rename core/block/object/{objectcreator/installer_test.go => installer/bundle_test.go} (95%) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 888a11204..edfd798d2 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -49,6 +49,7 @@ import ( importer "github.com/anyproto/anytype-heart/core/block/import" "github.com/anyproto/anytype-heart/core/block/object/idderiver/idderiverimpl" "github.com/anyproto/anytype-heart/core/block/object/idresolver" + "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/object/objectgraph" "github.com/anyproto/anytype-heart/core/block/object/treemanager" @@ -301,6 +302,7 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(importer.New()). Register(decorator.New()). Register(objectcreator.NewCreator()). + Register(installer.New()). Register(kanban.New()). Register(device.NewDevices()). Register(editor.NewObjectFactory()). diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 0cbe139fb..da4f52ded 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -21,7 +21,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/import/common" "github.com/anyproto/anytype-heart/core/block/import/common/syncer" "github.com/anyproto/anytype-heart/core/block/import/markdown/anymark" - "github.com/anyproto/anytype-heart/core/block/object/objectcreator" + "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" @@ -55,7 +55,7 @@ type ObjectCreator struct { objectStore objectstore.ObjectStore relationSyncer *syncer.FileRelationSyncer syncFactory *syncer.Factory - objectCreator objectcreator.Service + objectInstaller installer.BundleObjectInstaller objectGetterDeleter ObjectGetterDeleter } @@ -64,7 +64,7 @@ func New(detailsService detailservice.Service, objectStore objectstore.ObjectStore, relationSyncer *syncer.FileRelationSyncer, spaceService space.Service, - objectCreator objectcreator.Service, + objectInstaller installer.BundleObjectInstaller, objectGetterDeleter ObjectGetterDeleter, ) Service { return &ObjectCreator{ @@ -73,7 +73,7 @@ func New(detailsService detailservice.Service, objectStore: objectStore, relationSyncer: relationSyncer, spaceService: spaceService, - objectCreator: objectCreator, + objectInstaller: objectInstaller, objectGetterDeleter: objectGetterDeleter, } } @@ -233,7 +233,7 @@ func (oc *ObjectCreator) installBundledRelationsAndTypes( if err != nil { return fmt.Errorf("get space %s: %w", spaceID, err) } - _, _, err = oc.objectCreator.InstallBundledObjects(ctx, spc, idsToCheck, origin.Origin == model.ObjectOrigin_usecase) + _, _, err = oc.objectInstaller.InstallBundledObjects(ctx, spc, idsToCheck, origin.Origin == model.ObjectOrigin_usecase) return err } diff --git a/core/block/import/common/objectcreator/objectcreator_test.go b/core/block/import/common/objectcreator/objectcreator_test.go index 2887b8429..708a5c41b 100644 --- a/core/block/import/common/objectcreator/objectcreator_test.go +++ b/core/block/import/common/objectcreator/objectcreator_test.go @@ -14,7 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/import/common" - "github.com/anyproto/anytype-heart/core/block/object/objectcreator" + "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/pb" @@ -79,7 +79,7 @@ func TestObjectCreator_Create(t *testing.T) { participantId: testParticipant, }) - service := New(detailsService, nil, nil, nil, mockService, objectcreator.NewCreator(), getter) + service := New(detailsService, nil, nil, nil, mockService, installer.New(), getter) // when create, id, err := service.Create(dataObject, sn) diff --git a/core/block/import/importer.go b/core/block/import/importer.go index efc3927c8..07dc907ef 100644 --- a/core/block/import/importer.go +++ b/core/block/import/importer.go @@ -30,7 +30,7 @@ import ( pbc "github.com/anyproto/anytype-heart/core/block/import/pb" "github.com/anyproto/anytype-heart/core/block/import/txt" "github.com/anyproto/anytype-heart/core/block/import/web" - "github.com/anyproto/anytype-heart/core/block/object/objectcreator" + "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" @@ -104,9 +104,9 @@ func (i *Import) Init(a *app.App) (err error) { i.idProvider = objectid.NewIDProvider(store, spaceService, i.s, i.fileStore, fileObjectService) factory := syncer.New(syncer.NewFileSyncer(i.s, fileObjectService), syncer.NewBookmarkSyncer(i.s), syncer.NewIconSyncer(i.s, fileObjectService)) relationSyncer := syncer.NewFileRelationSyncer(i.s, fileObjectService) - objectCreator := app.MustComponent[objectcreator.Service](a) + objectInstaller := app.MustComponent[installer.BundleObjectInstaller](a) detailsService := app.MustComponent[detailservice.Service](a) - i.oc = creator.New(detailsService, factory, store, relationSyncer, spaceService, objectCreator, i.s) + i.oc = creator.New(detailsService, factory, store, relationSyncer, spaceService, objectInstaller, i.s) i.fileSync = app.MustComponent[filesync.FileSync](a) i.notificationService = app.MustComponent[notifications.Notifications](a) i.eventSender = app.MustComponent[event.Sender](a) diff --git a/core/block/object/objectcreator/installer.go b/core/block/object/installer/bundle.go similarity index 71% rename from core/block/object/objectcreator/installer.go rename to core/block/object/installer/bundle.go index 3bf16ba66..4722b5dd7 100644 --- a/core/block/object/objectcreator/installer.go +++ b/core/block/object/installer/bundle.go @@ -1,37 +1,78 @@ -package objectcreator +package installer import ( "context" "errors" "fmt" + "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/gogo/protobuf/types" "go.uber.org/zap" "github.com/anyproto/anytype-heart/core/block/editor/lastused" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" + "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/space" "github.com/anyproto/anytype-heart/space/clientspace" "github.com/anyproto/anytype-heart/util/pbtypes" ) -func (s *service) BundledObjectsIdsToInstall( +const CName = "bundle-objects-installer" + +var log = logging.Logger(CName) + +type objectArchiver interface { + SetIsArchived(objectId string, isArchived bool) error +} + +type BundleObjectInstaller interface { + InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) + app.Component +} + +type objectInstaller struct { + spaceService space.Service + store objectstore.ObjectStore + archiver objectArchiver + creator objectcreator.Service +} + +func New() BundleObjectInstaller { + return &objectInstaller{} +} + +func (i *objectInstaller) Init(a *app.App) error { + i.spaceService = app.MustComponent[space.Service](a) + i.store = app.MustComponent[objectstore.ObjectStore](a) + i.archiver = app.MustComponent[objectArchiver](a) + i.creator = app.MustComponent[objectcreator.Service](a) + return nil +} + +func (i *objectInstaller) Name() string { + return CName +} + +func (i *objectInstaller) BundledObjectsIdsToInstall( ctx context.Context, space clientspace.Space, sourceObjectIds []string, ) (ids domain.BundledObjectIds, err error) { - marketplaceSpace, err := s.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) + marketplaceSpace, err := i.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) if err != nil { return nil, fmt.Errorf("get marketplace space: %w", err) } - existingObjectMap, err := s.listInstalledObjects(space, sourceObjectIds) + existingObjectMap, err := i.listInstalledObjects(space, sourceObjectIds) if err != nil { return nil, fmt.Errorf("list installed objects: %w", err) } @@ -63,7 +104,7 @@ func (s *service) BundledObjectsIdsToInstall( return } -func (s *service) InstallBundledObjects( +func (i *objectInstaller) InstallBundledObjects( ctx context.Context, space clientspace.Space, sourceObjectIds []string, @@ -73,17 +114,17 @@ func (s *service) InstallBundledObjects( return } - marketplaceSpace, err := s.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) + marketplaceSpace, err := i.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) if err != nil { return nil, nil, fmt.Errorf("get marketplace space: %w", err) } - ids, objects, err = s.reinstallBundledObjects(ctx, marketplaceSpace, space, sourceObjectIds) + ids, objects, err = i.reinstallBundledObjects(ctx, marketplaceSpace, space, sourceObjectIds) if err != nil { return nil, nil, fmt.Errorf("reinstall bundled objects: %w", err) } - existingObjectMap, err := s.listInstalledObjects(space, sourceObjectIds) + existingObjectMap, err := i.listInstalledObjects(space, sourceObjectIds) if err != nil { return nil, nil, fmt.Errorf("list installed objects: %w", err) } @@ -92,11 +133,11 @@ func (s *service) InstallBundledObjects( if _, ok := existingObjectMap[sourceObjectId]; ok { continue } - installingDetails, err := s.prepareDetailsForInstallingObject(ctx, marketplaceSpace, space, sourceObjectId, isNewSpace) + installingDetails, err := i.prepareDetailsForInstallingObject(ctx, marketplaceSpace, space, sourceObjectId, isNewSpace) if err != nil { return nil, nil, fmt.Errorf("prepare details for installing object: %w", err) } - id, newDetails, err := s.installObject(ctx, space, installingDetails) + id, newDetails, err := i.installObject(ctx, space, installingDetails) if err != nil { return nil, nil, fmt.Errorf("install object: %w", err) } @@ -108,7 +149,7 @@ func (s *service) InstallBundledObjects( return } -func (s *service) installObject(ctx context.Context, space clientspace.Space, installingDetails *types.Struct) (id string, newDetails *types.Struct, err error) { +func (i *objectInstaller) installObject(ctx context.Context, space clientspace.Space, installingDetails *types.Struct) (id string, newDetails *types.Struct, err error) { uk, err := domain.UnmarshalUniqueKey(pbtypes.GetString(installingDetails, bundle.RelationKeyUniqueKey.String())) if err != nil { return "", nil, fmt.Errorf("unmarshal unique key: %w", err) @@ -122,7 +163,7 @@ func (s *service) installObject(ctx context.Context, space clientspace.Space, in return "", nil, fmt.Errorf("unsupported object type: %s", uk.SmartblockType()) } - id, newDetails, err = s.createObjectInSpace(ctx, space, CreateObjectRequest{ + id, newDetails, err = i.creator.CreateObjectInSpace(ctx, space, objectcreator.CreateObjectRequest{ Details: installingDetails, ObjectTypeKey: objectTypeKey, }) @@ -135,8 +176,8 @@ func (s *service) installObject(ctx context.Context, space clientspace.Space, in return id, newDetails, nil } -func (s *service) listInstalledObjects(space clientspace.Space, sourceObjectIds []string) (map[string]*types.Struct, error) { - existingObjects, err := s.objectStore.SpaceIndex(space.Id()).Query(database.Query{ +func (i *objectInstaller) listInstalledObjects(space clientspace.Space, sourceObjectIds []string) (map[string]*types.Struct, error) { + existingObjects, err := i.store.SpaceIndex(space.Id()).Query(database.Query{ Filters: []*model.BlockContentDataviewFilter{ { RelationKey: bundle.RelationKeySourceObject.String(), @@ -170,16 +211,16 @@ func (s *service) listInstalledObjects(space clientspace.Space, sourceObjectIds return existingObjectMap, nil } -func (s *service) reinstallBundledObjects( +func (i *objectInstaller) reinstallBundledObjects( ctx context.Context, sourceSpace, space clientspace.Space, sourceObjectIDs []string, ) (ids []string, objects []*types.Struct, err error) { - deletedObjects, err := s.queryDeletedObjects(space, sourceObjectIDs) + deletedObjects, err := i.queryDeletedObjects(space, sourceObjectIDs) if err != nil { return nil, nil, fmt.Errorf("query deleted objects: %w", err) } for _, rec := range deletedObjects { - id, typeKey, details, err := s.reinstallObject(ctx, sourceSpace, space, rec.Details) + id, typeKey, details, err := i.reinstallObject(ctx, sourceSpace, space, rec.Details) if err != nil { return nil, nil, err } @@ -187,7 +228,7 @@ func (s *service) reinstallBundledObjects( ids = append(ids, id) objects = append(objects, details) - if err = s.installTemplatesForObjectType(space, typeKey); err != nil { + if err = i.creator.CreateTemplatesForObjectType(space, typeKey); err != nil { return nil, nil, fmt.Errorf("install templates for object type %s: %w", typeKey, err) } } @@ -195,7 +236,7 @@ func (s *service) reinstallBundledObjects( return ids, objects, nil } -func (s *service) reinstallObject( +func (i *objectInstaller) reinstallObject( ctx context.Context, sourceSpace, space clientspace.Space, currentDetails *types.Struct, ) (id string, key domain.TypeKey, details *types.Struct, err error) { id = pbtypes.GetString(currentDetails, bundle.RelationKeyId.String()) @@ -204,7 +245,7 @@ func (s *service) reinstallObject( isArchived = pbtypes.GetBool(currentDetails, bundle.RelationKeyIsArchived.String()) ) - installingDetails, err := s.prepareDetailsForInstallingObject(ctx, sourceSpace, space, sourceObjectId, false) + installingDetails, err := i.prepareDetailsForInstallingObject(ctx, sourceSpace, space, sourceObjectId, false) if err != nil { return "", "", nil, fmt.Errorf("prepare details for installing object: %w", err) } @@ -226,7 +267,7 @@ func (s *service) reinstallObject( if isArchived { // we should do archive operations only via Archive object - if err = s.archiver.SetIsArchived(id, false); err != nil { + if err = i.archiver.SetIsArchived(id, false); err != nil { return "", "", nil, fmt.Errorf("failed to restore object %s (source object: %s) from bin: %w", id, sourceObjectId, err) } } @@ -234,7 +275,7 @@ func (s *service) reinstallObject( return id, key, details, nil } -func (s *service) prepareDetailsForInstallingObject( +func (i *objectInstaller) prepareDetailsForInstallingObject( ctx context.Context, sourceSpace, spc clientspace.Space, sourceObjectId string, @@ -266,11 +307,23 @@ func (s *service) prepareDetailsForInstallingObject( switch uk.SmartblockType() { case coresb.SmartBlockTypeBundledObjectType, coresb.SmartBlockTypeObjectType: - if err = s.fillRecommendedRelations(ctx, spc, details, false); err != nil { + relationKeys, isAlreadyFilled, err := objectcreator.FillRecommendedRelations(ctx, spc, details) + if err != nil { return nil, fmt.Errorf("fill recommended relations: %w", err) } + + if !isAlreadyFilled { + bundledRelationIds := make([]string, len(relationKeys)) + for j, key := range relationKeys { + bundledRelationIds[j] = key.BundledURL() + } + if _, _, err = i.InstallBundledObjects(ctx, spc, bundledRelationIds, isNewSpace); err != nil { + return nil, fmt.Errorf("install recommended relations: %w", err) + } + } + case coresb.SmartBlockTypeBundledRelation, coresb.SmartBlockTypeRelation: - if err = fillRelationFormatObjectTypes(ctx, spc, details); err != nil { + if err = objectcreator.FillRelationFormatObjectTypes(ctx, spc, details); err != nil { return nil, fmt.Errorf("fill relation format objectTypes: %w", err) } } @@ -278,12 +331,12 @@ func (s *service) prepareDetailsForInstallingObject( return details, nil } -func (s *service) queryDeletedObjects(space clientspace.Space, sourceObjectIDs []string) ([]database.Record, error) { +func (i *objectInstaller) queryDeletedObjects(space clientspace.Space, sourceObjectIDs []string) ([]database.Record, error) { sourceList, err := pbtypes.ValueListWrapper(pbtypes.StringList(sourceObjectIDs)) if err != nil { return nil, err } - return s.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ + return i.store.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ database.FiltersOr{ database.FilterEq{ Key: bundle.RelationKeyLayout.String(), diff --git a/core/block/object/objectcreator/installer_test.go b/core/block/object/installer/bundle_test.go similarity index 95% rename from core/block/object/objectcreator/installer_test.go rename to core/block/object/installer/bundle_test.go index bda235296..143709888 100644 --- a/core/block/object/objectcreator/installer_test.go +++ b/core/block/object/installer/bundle_test.go @@ -1,4 +1,4 @@ -package objectcreator +package installer import ( "context" @@ -26,10 +26,11 @@ type objKey interface { BundledURL() string } +const spaceId = "spaceId" + func TestInstaller_queryDeletedObjects(t *testing.T) { // given var ( - spaceId = "spaceId" sourceObjectIds = []string{} validObjectIds = []string{} ) @@ -69,10 +70,10 @@ func TestInstaller_queryDeletedObjects(t *testing.T) { spc := mock_clientspace.NewMockSpace(t) spc.EXPECT().Id().Return(spaceId) - s := service{objectStore: store} + i := objectInstaller{store: store} // when - records, err := s.queryDeletedObjects(spc, sourceObjectIds) + records, err := i.queryDeletedObjects(spc, sourceObjectIds) // then assert.NoError(t, err) @@ -136,10 +137,10 @@ func TestInstaller_reinstallObject(t *testing.T) { return nil }) - s := service{archiver: archiver} + i := objectInstaller{archiver: archiver} // when - id, _, newDetails, err := s.reinstallObject(nil, market, spc, oldDetails) + id, _, newDetails, err := i.reinstallObject(nil, market, spc, oldDetails) // then assert.NoError(t, err) diff --git a/core/block/object/objectcreator/chat.go b/core/block/object/objectcreator/chat.go index 0c96cf846..1fd9d0800 100644 --- a/core/block/object/objectcreator/chat.go +++ b/core/block/object/objectcreator/chat.go @@ -28,7 +28,7 @@ func (s *service) AddChatDerivedObject(ctx context.Context, space clientspace.Sp Details: chatDetails, } - chatId, _, err = s.createObjectInSpace(ctx, space, chatReq) + chatId, _, err = s.CreateObjectInSpace(ctx, space, chatReq) if err != nil { return "", fmt.Errorf("create object: %w", err) } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 92c58749a..e94466a33 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -41,24 +41,26 @@ type ( CreateObjectAndFetch(ctx context.Context, spaceId string, details *types.Struct) (objectID string, newDetails *types.Struct, err error) } - objectArchiver interface { - SetIsArchived(objectId string, isArchived bool) error + installer interface { + InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) } ) const CName = "objectCreator" -var log = logging.Logger("object-service") +var log = logging.Logger(CName) type Service interface { CreateObject(ctx context.Context, spaceID string, req CreateObjectRequest) (id string, details *types.Struct, err error) CreateObjectUsingObjectUniqueTypeKey(ctx context.Context, spaceID string, objectUniqueTypeKey string, req CreateObjectRequest) (id string, details *types.Struct, err error) + CreateObjectInSpace(ctx context.Context, space clientspace.Space, req CreateObjectRequest) (id string, details *types.Struct, err error) CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *types.Struct, err error) CreateSmartBlockFromStateInSpace(ctx context.Context, space clientspace.Space, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *types.Struct, err error) AddChatDerivedObject(ctx context.Context, space clientspace.Space, chatObjectId string) (chatId string, err error) - InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) + CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error + app.Component } @@ -69,7 +71,7 @@ type service struct { spaceService space.Service templateService templateService lastUsedUpdater lastused.ObjectUsageUpdater - archiver objectArchiver + installer installer } func NewCreator() Service { @@ -83,7 +85,7 @@ func (s *service) Init(a *app.App) (err error) { s.spaceService = app.MustComponent[space.Service](a) s.templateService = app.MustComponent[templateService](a) s.lastUsedUpdater = app.MustComponent[lastused.ObjectUsageUpdater](a) - s.archiver = app.MustComponent[objectArchiver](a) + s.installer = app.MustComponent[installer](a) return nil } @@ -105,7 +107,7 @@ func (s *service) CreateObject(ctx context.Context, spaceID string, req CreateOb if err != nil { return "", nil, fmt.Errorf("get space: %w", err) } - return s.createObjectInSpace(ctx, space, req) + return s.CreateObjectInSpace(ctx, space, req) } func (s *service) CreateObjectUsingObjectUniqueTypeKey( @@ -119,9 +121,9 @@ func (s *service) CreateObjectUsingObjectUniqueTypeKey( return s.CreateObject(ctx, spaceID, req) } -// createObjectInSpace is supposed to be called for user-initiated object creation requests +// CreateObjectInSpace is supposed to be called for user-initiated object creation requests // will return Restricted error in case called with types like File or Participant -func (s *service) createObjectInSpace( +func (s *service) CreateObjectInSpace( ctx context.Context, space clientspace.Space, req CreateObjectRequest, ) (id string, details *types.Struct, err error) { details = req.Details diff --git a/core/block/object/objectcreator/mock_objectcreator/mock_Service.go b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go index 1225a2295..43e4a5ff0 100644 --- a/core/block/object/objectcreator/mock_objectcreator/mock_Service.go +++ b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go @@ -157,6 +157,73 @@ func (_c *MockService_CreateObject_Call) RunAndReturn(run func(context.Context, return _c } +// CreateObjectInSpace provides a mock function with given fields: ctx, space, req +func (_m *MockService) CreateObjectInSpace(ctx context.Context, space clientspace.Space, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { + ret := _m.Called(ctx, space, req) + + if len(ret) == 0 { + panic("no return value specified for CreateObjectInSpace") + } + + var r0 string + var r1 *types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) (string, *types.Struct, error)); ok { + return rf(ctx, space, req) + } + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) string); ok { + r0 = rf(ctx, space, req) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) *types.Struct); ok { + r1 = rf(ctx, space, req) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) error); ok { + r2 = rf(ctx, space, req) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_CreateObjectInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateObjectInSpace' +type MockService_CreateObjectInSpace_Call struct { + *mock.Call +} + +// CreateObjectInSpace is a helper method to define mock.On call +// - ctx context.Context +// - space clientspace.Space +// - req objectcreator.CreateObjectRequest +func (_e *MockService_Expecter) CreateObjectInSpace(ctx interface{}, space interface{}, req interface{}) *MockService_CreateObjectInSpace_Call { + return &MockService_CreateObjectInSpace_Call{Call: _e.mock.On("CreateObjectInSpace", ctx, space, req)} +} + +func (_c *MockService_CreateObjectInSpace_Call) Run(run func(ctx context.Context, space clientspace.Space, req objectcreator.CreateObjectRequest)) *MockService_CreateObjectInSpace_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(clientspace.Space), args[2].(objectcreator.CreateObjectRequest)) + }) + return _c +} + +func (_c *MockService_CreateObjectInSpace_Call) Return(id string, details *types.Struct, err error) *MockService_CreateObjectInSpace_Call { + _c.Call.Return(id, details, err) + return _c +} + +func (_c *MockService_CreateObjectInSpace_Call) RunAndReturn(run func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) (string, *types.Struct, error)) *MockService_CreateObjectInSpace_Call { + _c.Call.Return(run) + return _c +} + // CreateObjectUsingObjectUniqueTypeKey provides a mock function with given fields: ctx, spaceID, objectUniqueTypeKey, req func (_m *MockService) CreateObjectUsingObjectUniqueTypeKey(ctx context.Context, spaceID string, objectUniqueTypeKey string, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { ret := _m.Called(ctx, spaceID, objectUniqueTypeKey, req) @@ -361,6 +428,53 @@ func (_c *MockService_CreateSmartBlockFromStateInSpace_Call) RunAndReturn(run fu return _c } +// CreateTemplatesForObjectType provides a mock function with given fields: spc, typeKey +func (_m *MockService) CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { + ret := _m.Called(spc, typeKey) + + if len(ret) == 0 { + panic("no return value specified for CreateTemplatesForObjectType") + } + + var r0 error + if rf, ok := ret.Get(0).(func(clientspace.Space, domain.TypeKey) error); ok { + r0 = rf(spc, typeKey) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_CreateTemplatesForObjectType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplatesForObjectType' +type MockService_CreateTemplatesForObjectType_Call struct { + *mock.Call +} + +// CreateTemplatesForObjectType is a helper method to define mock.On call +// - spc clientspace.Space +// - typeKey domain.TypeKey +func (_e *MockService_Expecter) CreateTemplatesForObjectType(spc interface{}, typeKey interface{}) *MockService_CreateTemplatesForObjectType_Call { + return &MockService_CreateTemplatesForObjectType_Call{Call: _e.mock.On("CreateTemplatesForObjectType", spc, typeKey)} +} + +func (_c *MockService_CreateTemplatesForObjectType_Call) Run(run func(spc clientspace.Space, typeKey domain.TypeKey)) *MockService_CreateTemplatesForObjectType_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(clientspace.Space), args[1].(domain.TypeKey)) + }) + return _c +} + +func (_c *MockService_CreateTemplatesForObjectType_Call) Return(_a0 error) *MockService_CreateTemplatesForObjectType_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_CreateTemplatesForObjectType_Call) RunAndReturn(run func(clientspace.Space, domain.TypeKey) error) *MockService_CreateTemplatesForObjectType_Call { + _c.Call.Return(run) + return _c +} + // Init provides a mock function with given fields: a func (_m *MockService) Init(a *app.App) error { ret := _m.Called(a) @@ -407,76 +521,6 @@ func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockSer return _c } -// InstallBundledObjects provides a mock function with given fields: ctx, space, sourceObjectIds, isNewSpace -func (_m *MockService) InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) ([]string, []*types.Struct, error) { - ret := _m.Called(ctx, space, sourceObjectIds, isNewSpace) - - if len(ret) == 0 { - panic("no return value specified for InstallBundledObjects") - } - - var r0 []string - var r1 []*types.Struct - var r2 error - if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)); ok { - return rf(ctx, space, sourceObjectIds, isNewSpace) - } - if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) []string); ok { - r0 = rf(ctx, space, sourceObjectIds, isNewSpace) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, []string, bool) []*types.Struct); ok { - r1 = rf(ctx, space, sourceObjectIds, isNewSpace) - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).([]*types.Struct) - } - } - - if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, []string, bool) error); ok { - r2 = rf(ctx, space, sourceObjectIds, isNewSpace) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// MockService_InstallBundledObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'InstallBundledObjects' -type MockService_InstallBundledObjects_Call struct { - *mock.Call -} - -// InstallBundledObjects is a helper method to define mock.On call -// - ctx context.Context -// - space clientspace.Space -// - sourceObjectIds []string -// - isNewSpace bool -func (_e *MockService_Expecter) InstallBundledObjects(ctx interface{}, space interface{}, sourceObjectIds interface{}, isNewSpace interface{}) *MockService_InstallBundledObjects_Call { - return &MockService_InstallBundledObjects_Call{Call: _e.mock.On("InstallBundledObjects", ctx, space, sourceObjectIds, isNewSpace)} -} - -func (_c *MockService_InstallBundledObjects_Call) Run(run func(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool)) *MockService_InstallBundledObjects_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(clientspace.Space), args[2].([]string), args[3].(bool)) - }) - return _c -} - -func (_c *MockService_InstallBundledObjects_Call) Return(ids []string, objects []*types.Struct, err error) *MockService_InstallBundledObjects_Call { - _c.Call.Return(ids, objects, err) - return _c -} - -func (_c *MockService_InstallBundledObjects_Call) RunAndReturn(run func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)) *MockService_InstallBundledObjects_Call { - _c.Call.Return(run) - return _c -} - // Name provides a mock function with given fields: func (_m *MockService) Name() string { ret := _m.Called() diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 88282e626..eadfc8bc4 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -2,6 +2,7 @@ package objectcreator import ( "context" + "errors" "fmt" "github.com/gogo/protobuf/types" @@ -33,6 +34,8 @@ var ( bundle.RelationKeyLastOpenedDate, bundle.RelationKeyLinks, } + + errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) func (s *service) createObjectType(ctx context.Context, space clientspace.Space, details *types.Struct) (id string, newDetails *types.Struct, err error) { @@ -49,10 +52,15 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, if _, ok := object.Fields[bundle.RelationKeyRecommendedLayout.String()]; !ok { object.Fields[bundle.RelationKeyRecommendedLayout.String()] = pbtypes.Int64(int64(model.ObjectType_basic)) } - if len(pbtypes.GetStringList(object, bundle.RelationKeyRecommendedRelations.String())) == 0 { - err = s.fillRecommendedRelations(ctx, space, object, true) + + keys, isAlreadyFilled, err := FillRecommendedRelations(ctx, space, object) + if err != nil { + return "", nil, fmt.Errorf("fill recommended relations: %w", err) + } + if !isAlreadyFilled { + err = s.installRecommendedRelations(ctx, space, keys) if err != nil { - return "", nil, fmt.Errorf("fill recommended relations: %w", err) + return "", nil, fmt.Errorf("install recommended relations: %w", err) } } @@ -67,17 +75,22 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, } installingObjectTypeKey := domain.TypeKey(uniqueKey.InternalKey()) - err = s.installTemplatesForObjectType(space, installingObjectTypeKey) + err = s.CreateTemplatesForObjectType(space, installingObjectTypeKey) if err != nil { log.With("spaceID", space.Id(), "objectTypeKey", installingObjectTypeKey).Errorf("error while installing templates: %s", err) } return id, newDetails, nil } -func (s *service) fillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *types.Struct, fromLayout bool) error { - keys, err := getRelationKeysFromDetails(details, fromLayout) +// FillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details +// If these relations are already filled with correct ids, isAlreadyFilled = true is returned +func FillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *types.Struct) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { + keys, err = getRelationKeysFromDetails(details) if err != nil { - return fmt.Errorf("get recommended relation keys: %w", err) + if errors.Is(err, errRecommendedRelationsAlreadyFilled) { + return nil, true, nil + } + return nil, false, fmt.Errorf("get recommended relation keys: %w", err) } // we should include default system recommended relations and exclude default recommended featured relations @@ -86,24 +99,25 @@ func (s *service) fillRecommendedRelations(ctx context.Context, spc clientspace. return slices.Contains(defaultRecommendedFeaturedRelationKeys, key) }) - relationIds, err := s.prepareRelationIds(ctx, spc, keys) + relationIds, err := prepareRelationIds(ctx, spc, keys) if err != nil { - return fmt.Errorf("prepare recommended relation ids: %w", err) + return nil, false, fmt.Errorf("prepare recommended relation ids: %w", err) } details.Fields[bundle.RelationKeyRecommendedRelations.String()] = pbtypes.StringList(relationIds) - featuredRelationIds, err := s.prepareRelationIds(ctx, spc, defaultRecommendedFeaturedRelationKeys) + featuredRelationIds, err := prepareRelationIds(ctx, spc, defaultRecommendedFeaturedRelationKeys) if err != nil { - return fmt.Errorf("prepare recommended featured relation ids: %w", err) + return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) } details.Fields[bundle.RelationKeyRecommendedFeaturedRelations.String()] = pbtypes.StringList(featuredRelationIds) - return s.installRecommendedRelations(ctx, spc, append(keys, defaultRecommendedFeaturedRelationKeys...)) + return append(keys, defaultRecommendedFeaturedRelationKeys...), false, nil } -func getRelationKeysFromDetails(details *types.Struct, fromLayout bool) ([]domain.RelationKey, error) { +func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, error) { var keys []domain.RelationKey - if fromLayout { + bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) + if len(bundledRelationIds) == 0 { rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) if err != nil { @@ -114,11 +128,14 @@ func getRelationKeysFromDetails(details *types.Struct, fromLayout bool) ([]domai keys = append(keys, domain.RelationKey(rel.Key)) } } else { - bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) keys = make([]domain.RelationKey, 0, len(bundledRelationIds)) - for _, id := range bundledRelationIds { + for i, id := range bundledRelationIds { key, err := bundle.RelationKeyFromID(id) if err != nil { + if i == 0 { + // if we fail to parse 1st bundled relation id, details are already filled with correct ids + return nil, errRecommendedRelationsAlreadyFilled + } return nil, fmt.Errorf("relation key from id: %w", err) } keys = append(keys, key) @@ -127,7 +144,7 @@ func getRelationKeysFromDetails(details *types.Struct, fromLayout bool) ([]domai return keys, nil } -func (s *service) prepareRelationIds(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) ([]string, error) { +func prepareRelationIds(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) ([]string, error) { relationIds := make([]string, 0, len(relationKeys)) for _, key := range relationKeys { uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, key.String()) @@ -148,11 +165,11 @@ func (s *service) installRecommendedRelations(ctx context.Context, space clients for i, key := range relationKeys { bundledRelationIds[i] = key.BundledURL() } - _, _, err := s.InstallBundledObjects(ctx, space, bundledRelationIds, false) + _, _, err := s.installer.InstallBundledObjects(ctx, space, bundledRelationIds, false) return err } -func (s *service) installTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { +func (s *service) CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { bundledTemplates, err := s.objectStore.SpaceIndex(spc.Id()).Query(database.Query{ Filters: []*model.BlockContentDataviewFilter{ { diff --git a/core/block/object/objectcreator/object_type_test.go b/core/block/object/objectcreator/object_type_test.go index 3a1d00984..9956f2ca1 100644 --- a/core/block/object/objectcreator/object_type_test.go +++ b/core/block/object/objectcreator/object_type_test.go @@ -12,12 +12,12 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" "github.com/anyproto/anytype-heart/util/pbtypes" ) -func TestService_fillRecommendedRelations(t *testing.T) { - s := service{} +func TestFillRecommendedRelations(t *testing.T) { spc := mock_clientspace.NewMockSpace(t) spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.UniqueKey) (string, error) { return domain.RelationKey(key.InternalKey()).URL(), nil @@ -67,12 +67,73 @@ func TestService_fillRecommendedRelations(t *testing.T) { }} // when - err := s.fillRecommendedRelations(nil, spc, details, false) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) + assert.False(t, isAlreadyFilled) assert.Equal(t, tc.expected, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String())) assert.Equal(t, defaultRecFeatRelIds, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedFeaturedRelations.String())) + assert.Len(t, keys, len(tc.expected)+3) + }) + } + + t.Run("recommendedRelations are already filled", func(t *testing.T) { + // given + details := &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyRecommendedRelations.String(): pbtypes.StringList([]string{ + "createdBy", "createdDate", "backlinks", + }), + }} + + // when + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + + // then + assert.NoError(t, err) + assert.True(t, isAlreadyFilled) + assert.Empty(t, keys) + }) + + for _, tc := range []struct { + name string + layout int64 + expected []string + }{ + { + "empty", int64(0), defaultRecRelIds, + }, + { + "basic", int64(model.ObjectType_basic), defaultRecRelIds, + }, + { + "set", int64(model.ObjectType_set), append([]string{bundle.RelationKeySetOf.URL()}, defaultRecRelIds...), + }, + { + "to do", int64(model.ObjectType_todo), append([]string{bundle.RelationKeyDone.URL()}, defaultRecRelIds...), + }, + { + "note", int64(model.ObjectType_note), defaultRecRelIds, + }, + { + "collection", int64(model.ObjectType_collection), defaultRecRelIds, + }, + } { + t.Run(fmt.Sprintf("from layout: %s", tc.name), func(t *testing.T) { + // given + details := &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyRecommendedLayout.String(): pbtypes.Int64(tc.layout), + }} + + // when + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + + // then + assert.NoError(t, err) + assert.False(t, isAlreadyFilled) + assert.Equal(t, tc.expected, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String())) + assert.Equal(t, defaultRecFeatRelIds, pbtypes.GetStringList(details, bundle.RelationKeyRecommendedFeaturedRelations.String())) + assert.Len(t, keys, len(tc.expected)+3) }) } } diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index 9fb71d594..0920caadc 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -53,8 +53,12 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d if pbtypes.GetInt64(details, bundle.RelationKeyRelationFormat.String()) == int64(model.RelationFormat_status) { object.Fields[bundle.RelationKeyRelationMaxCount.String()] = pbtypes.Int64(1) } - // objectTypes := pbtypes.GetStringList(object, bundle.RelationKeyRelationFormatObjectTypes.String()) - // todo: check the objectTypes + + if err = FillRelationFormatObjectTypes(ctx, space, object); err != nil { + return "", nil, fmt.Errorf("failed to fill relation format object types: %w", err) + } + // todo: check the existence of objectTypes in space. InstallBundledObjects should be called same as for recommendedRelations on type creation + object.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Int64(int64(model.ObjectType_relation)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) @@ -62,7 +66,7 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyRelation}, createState) } -func fillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, details *types.Struct) error { +func FillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, details *types.Struct) error { objectTypes := pbtypes.GetStringList(details, bundle.RelationKeyRelationFormatObjectTypes.String()) for i, objectType := range objectTypes { diff --git a/core/block/service.go b/core/block/service.go index d722bd398..4cb7a1a6e 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -25,6 +25,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/history" "github.com/anyproto/anytype-heart/core/block/object/idresolver" + "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/block/restriction" @@ -91,6 +92,7 @@ type Service struct { restriction restriction.Service bookmark bookmarksvc.Service objectCreator objectcreator.Service + objectInstaller installer.BundleObjectInstaller templateService templateService resolver idresolver.Resolver spaceService space.Service @@ -131,6 +133,7 @@ func (s *Service) Init(a *app.App) (err error) { s.restriction = a.MustComponent(restriction.CName).(restriction.Service) s.bookmark = a.MustComponent("bookmark-importer").(bookmarksvc.Service) s.objectCreator = app.MustComponent[objectcreator.Service](a) + s.objectInstaller = app.MustComponent[installer.BundleObjectInstaller](a) s.templateService = app.MustComponent[templateService](a) s.spaceService = a.MustComponent(space.CName).(space.Service) s.fileService = app.MustComponent[files.Service](a) @@ -283,7 +286,7 @@ func (s *Service) SpaceInstallBundledObject( if err != nil { return "", nil, fmt.Errorf("get space: %w", err) } - ids, details, err := s.objectCreator.InstallBundledObjects(ctx, spc, []string{sourceObjectId}, false) + ids, details, err := s.objectInstaller.InstallBundledObjects(ctx, spc, []string{sourceObjectId}, false) if err != nil { return "", nil, err } @@ -303,7 +306,7 @@ func (s *Service) SpaceInstallBundledObjects( if err != nil { return nil, nil, fmt.Errorf("get space: %w", err) } - return s.objectCreator.InstallBundledObjects(ctx, spc, sourceObjectIds, false) + return s.objectInstaller.InstallBundledObjects(ctx, spc, sourceObjectIds, false) } func (s *Service) SpaceInitChat(ctx context.Context, spaceId string) error { diff --git a/pkg/lib/bundle/layout.gen.go b/pkg/lib/bundle/layout.gen.go index 41c867183..5a905f3b0 100644 --- a/pkg/lib/bundle/layout.gen.go +++ b/pkg/lib/bundle/layout.gen.go @@ -6,15 +6,14 @@ package bundle import "github.com/anyproto/anytype-heart/pkg/lib/pb/model" -const LayoutChecksum = "14f867af62d4e7e5a33400f9eded0f27230467402c61cadd363518ff8f2bfb29" +const LayoutChecksum = "fa6e186dd587015702413aac5ac0d70cb606d4ae6bc1ba31c5e90ea11bd6473b" var ( Layouts = map[model.ObjectTypeLayout]model.Layout{ model.ObjectType_basic: { - Id: model.ObjectType_basic, - Name: "Basic", - RequiredRelations: []*model.Relation{relations[RelationKeyName]}, + Id: model.ObjectType_basic, + Name: "Basic", }, model.ObjectType_bookmark: { @@ -23,9 +22,8 @@ var ( }, model.ObjectType_collection: { - Id: model.ObjectType_collection, - Name: "Collection", - RequiredRelations: []*model.Relation{relations[RelationKeyName]}, + Id: model.ObjectType_collection, + Name: "Collection", }, model.ObjectType_dashboard: { @@ -52,7 +50,7 @@ var ( Id: model.ObjectType_objectType, Name: "Object Type", - RequiredRelations: []*model.Relation{relations[RelationKeyName], relations[RelationKeyRecommendedRelations]}, + RequiredRelations: []*model.Relation{relations[RelationKeyRecommendedRelations]}, }, model.ObjectType_participant: { @@ -61,9 +59,8 @@ var ( }, model.ObjectType_profile: { - Id: model.ObjectType_profile, - Name: "Profile", - RequiredRelations: []*model.Relation{relations[RelationKeyName]}, + Id: model.ObjectType_profile, + Name: "Profile", }, model.ObjectType_relation: { @@ -74,13 +71,13 @@ var ( Id: model.ObjectType_relationOption, Name: "Relation Option", - RequiredRelations: []*model.Relation{relations[RelationKeyName], relations[RelationKeyRelationOptionColor]}, + RequiredRelations: []*model.Relation{relations[RelationKeyRelationOptionColor]}, }, model.ObjectType_set: { Id: model.ObjectType_set, Name: "Set", - RequiredRelations: []*model.Relation{relations[RelationKeySetOf], relations[RelationKeyName]}, + RequiredRelations: []*model.Relation{relations[RelationKeySetOf]}, }, model.ObjectType_space: { @@ -96,13 +93,13 @@ var ( Id: model.ObjectType_tag, Name: "Tag", - RequiredRelations: []*model.Relation{relations[RelationKeyName], relations[RelationKeyRelationOptionColor]}, + RequiredRelations: []*model.Relation{relations[RelationKeyRelationOptionColor]}, }, model.ObjectType_todo: { Id: model.ObjectType_todo, Name: "to-do", - RequiredRelations: []*model.Relation{relations[RelationKeyDone], relations[RelationKeyName]}, + RequiredRelations: []*model.Relation{relations[RelationKeyDone]}, }, } ) diff --git a/pkg/lib/bundle/layouts.json b/pkg/lib/bundle/layouts.json index 71c11cc39..90efeb7e9 100644 --- a/pkg/lib/bundle/layouts.json +++ b/pkg/lib/bundle/layouts.json @@ -1,17 +1,13 @@ [ { "id": "basic", - "name": "Basic", - "requiredRelations": [ - "name" - ] + "name": "Basic" }, { "id": "set", "name": "Set", "requiredRelations": [ - "setOf", - "name" + "setOf" ] }, { @@ -34,8 +30,7 @@ "id": "todo", "name": "to-do", "requiredRelations": [ - "done", - "name" + "done" ] }, { @@ -63,16 +58,12 @@ }, { "id": "profile", - "name": "Profile", - "requiredRelations": [ - "name" - ] + "name": "Profile" }, { "id": "objectType", "name": "Object Type", "requiredRelations": [ - "name", "recommendedRelations" ] }, @@ -80,22 +71,17 @@ "id": "relationOption", "name": "Relation Option", "requiredRelations": [ - "name", "relationOptionColor" ] }, { "id": "collection", - "name": "Collection", - "requiredRelations": [ - "name" - ] + "name": "Collection" }, { "id": "tag", "name": "Tag", "requiredRelations": [ - "name", "relationOptionColor" ] } From 5d35a3075361b4608d35d922f7145985e3bed8d9 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 4 Dec 2024 16:20:00 +0100 Subject: [PATCH 014/176] GO-4232 Excplicit cast --- core/block/object/objectcreator/object_type.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index eadfc8bc4..a3655ffb1 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -118,7 +118,7 @@ func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, er var keys []domain.RelationKey bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) if len(bundledRelationIds) == 0 { - rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) + rawRecommendedLayout := int32(pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String())) recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) if err != nil { return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) From be5a072d7153a9d51e2c44d816c314cfaac949d3 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 4 Dec 2024 16:26:41 +0100 Subject: [PATCH 015/176] GO-4277 Give names to bold receivers in tests --- space/internal/components/migration/runner_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/space/internal/components/migration/runner_test.go b/space/internal/components/migration/runner_test.go index 0ced781ec..3102a3b3d 100644 --- a/space/internal/components/migration/runner_test.go +++ b/space/internal/components/migration/runner_test.go @@ -140,11 +140,11 @@ func TestRunner(t *testing.T) { type longStoreMigration struct{} -func (longStoreMigration) Name() string { +func (m longStoreMigration) Name() string { return "long migration" } -func (longStoreMigration) Run(ctx context.Context, _ logger.CtxLogger, store, queryableStore dependencies.QueryableStore, _ dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (m longStoreMigration) Run(ctx context.Context, _ logger.CtxLogger, store, queryableStore dependencies.QueryableStore, _ dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { for { if _, err = store.Query(database.Query{}); err != nil { return 0, 0, err @@ -154,11 +154,11 @@ func (longStoreMigration) Run(ctx context.Context, _ logger.CtxLogger, store, qu type longSpaceMigration struct{} -func (longSpaceMigration) Name() string { +func (m longSpaceMigration) Name() string { return "long migration" } -func (longSpaceMigration) Run(ctx context.Context, _ logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (m longSpaceMigration) Run(ctx context.Context, _ logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { for { if err = space.DoCtx(ctx, "", func(smartblock.SmartBlock) error { // do smth @@ -171,10 +171,10 @@ func (longSpaceMigration) Run(ctx context.Context, _ logger.CtxLogger, store dep type instantMigration struct{} -func (instantMigration) Name() string { +func (m instantMigration) Name() string { return "instant migration" } -func (instantMigration) Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (m instantMigration) Run(context.Context, logger.CtxLogger, dependencies.QueryableStore, dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { return 0, 0, nil } From afc1239bb01ac5741473be2792397516e6180cfc Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 4 Dec 2024 16:33:36 +0100 Subject: [PATCH 016/176] GO-4232 Fix lint --- core/block/object/objectcreator/object_type.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index a3655ffb1..10f3828ca 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -118,7 +118,8 @@ func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, er var keys []domain.RelationKey bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) if len(bundledRelationIds) == 0 { - rawRecommendedLayout := int32(pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String())) + rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) + // nolint: gosec recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) if err != nil { return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) @@ -131,14 +132,15 @@ func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, er keys = make([]domain.RelationKey, 0, len(bundledRelationIds)) for i, id := range bundledRelationIds { key, err := bundle.RelationKeyFromID(id) - if err != nil { - if i == 0 { - // if we fail to parse 1st bundled relation id, details are already filled with correct ids - return nil, errRecommendedRelationsAlreadyFilled - } - return nil, fmt.Errorf("relation key from id: %w", err) + if err == nil { + keys = append(keys, key) + continue } - keys = append(keys, key) + if i == 0 { + // if we fail to parse 1st bundled relation id, details are already filled with correct ids + return nil, errRecommendedRelationsAlreadyFilled + } + return nil, fmt.Errorf("relation key from id: %w", err) } } return keys, nil From 318fbf616c8b5bf965fa7b5beffb60f31dc5ac32 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 6 Dec 2024 19:07:11 +0100 Subject: [PATCH 017/176] GO-4588 Add resolved layout injection WIP --- core/block/editor/smartblock/detailsinject.go | 252 +++++++++++++++ .../editor/smartblock/detailsinject_test.go | 294 ++++++++++++++++++ core/block/editor/smartblock/relations.go | 1 - core/block/editor/smartblock/smartblock.go | 206 ------------ .../editor/smartblock/smartblock_test.go | 278 ----------------- pkg/lib/bundle/internalRelations.gen.go | 3 +- pkg/lib/bundle/internalRelations.json | 1 - pkg/lib/bundle/relation.gen.go | 17 +- pkg/lib/bundle/relations.json | 10 + pkg/lib/bundle/systemRelations.gen.go | 4 +- pkg/lib/bundle/systemRelations.json | 3 +- 11 files changed, 578 insertions(+), 491 deletions(-) create mode 100644 core/block/editor/smartblock/detailsinject.go create mode 100644 core/block/editor/smartblock/detailsinject_test.go delete mode 100644 core/block/editor/smartblock/relations.go diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go new file mode 100644 index 000000000..2c0ac23a3 --- /dev/null +++ b/core/block/editor/smartblock/detailsinject.go @@ -0,0 +1,252 @@ +package smartblock + +import ( + "context" + + "github.com/gogo/protobuf/types" + + "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/util/pbtypes" +) + +func (sb *smartBlock) injectLocalDetails(s *state.State) error { + details, err := sb.getDetailsFromStore() + if err != nil { + return err + } + + details, hasPendingLocalDetails := sb.appendPendingDetails(details) + + // inject also derived keys, because it may be a good idea to have created date and creator cached, + // so we don't need to traverse changes every time + keys := bundle.LocalAndDerivedRelationKeys + + localDetailsFromStore := pbtypes.StructFilterKeys(details, keys) + + s.InjectLocalDetails(localDetailsFromStore) + if p := s.ParentState(); p != nil && !hasPendingLocalDetails { + // inject for both current and parent state + p.InjectLocalDetails(localDetailsFromStore) + } + + err = sb.injectCreationInfo(s) + if err != nil { + log.With("objectID", sb.Id()).With("sbtype", sb.Type().String()).Errorf("failed to inject creation info: %s", err.Error()) + } + return nil +} + +func (sb *smartBlock) getDetailsFromStore() (*types.Struct, error) { + storedDetails, err := sb.spaceIndex.GetDetails(sb.Id()) + if err != nil || storedDetails == nil { + return nil, err + } + return pbtypes.CopyStruct(storedDetails.GetDetails(), true), nil +} + +func (sb *smartBlock) appendPendingDetails(details *types.Struct) (resultDetails *types.Struct, hasPendingLocalDetails bool) { + // Consume pending details + err := sb.spaceIndex.UpdatePendingLocalDetails(sb.Id(), func(pending *types.Struct) (*types.Struct, error) { + if len(pending.GetFields()) > 0 { + hasPendingLocalDetails = true + } + details = pbtypes.StructMerge(details, pending, false) + return nil, nil + }) + if err != nil { + log.With("objectID", sb.Id()). + With("sbType", sb.Type()).Errorf("failed to update pending details: %v", err) + } + return details, hasPendingLocalDetails +} + +func (sb *smartBlock) getCreationInfo() (creatorObjectId string, treeCreatedDate int64, err error) { + creatorObjectId, treeCreatedDate, err = sb.source.GetCreationInfo() + if err != nil { + return + } + + return creatorObjectId, treeCreatedDate, nil +} + +func (sb *smartBlock) injectCreationInfo(s *state.State) error { + if sb.Type() == smartblock.SmartBlockTypeProfilePage { + // todo: for the shared spaces we need to change this for sophisticated logic + creatorIdentityObjectId, _, err := sb.getCreationInfo() + if err != nil { + return err + } + + if creatorIdentityObjectId != "" { + s.SetDetailAndBundledRelation(bundle.RelationKeyProfileOwnerIdentity, pbtypes.String(creatorIdentityObjectId)) + } + } else { + // make sure we don't have this relation for other objects + s.RemoveLocalDetail(bundle.RelationKeyProfileOwnerIdentity.String()) + } + + if pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String()) != "" && pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String()) != 0 { + return nil + } + + creatorIdentityObjectId, treeCreatedDate, err := sb.getCreationInfo() + if err != nil { + return err + } + + if creatorIdentityObjectId != "" { + s.SetDetailAndBundledRelation(bundle.RelationKeyCreator, pbtypes.String(creatorIdentityObjectId)) + } else { + // For derived objects we set current identity + s.SetDetailAndBundledRelation(bundle.RelationKeyCreator, pbtypes.String(sb.currentParticipantId)) + } + + if originalCreated := s.OriginalCreatedTimestamp(); originalCreated > 0 { + // means we have imported object, so we need to set original created date + s.SetDetailAndBundledRelation(bundle.RelationKeyCreatedDate, pbtypes.Float64(float64(originalCreated))) + // Only set AddedDate once because we have a side effect with treeCreatedDate: + // - When we import object, treeCreateDate is set to time.Now() + // - But after push it is changed to original modified date + // - So after account recovery we will get treeCreateDate = original modified date, which is not equal to AddedDate + if pbtypes.GetInt64(s.Details(), bundle.RelationKeyAddedDate.String()) == 0 { + s.SetDetailAndBundledRelation(bundle.RelationKeyAddedDate, pbtypes.Float64(float64(treeCreatedDate))) + } + } else { + s.SetDetailAndBundledRelation(bundle.RelationKeyCreatedDate, pbtypes.Float64(float64(treeCreatedDate))) + } + + return nil +} + +// injectDerivedDetails injects the local data +func (sb *smartBlock) injectDerivedDetails(s *state.State, spaceID string, sbt smartblock.SmartBlockType) { + id := s.RootId() + if id != "" { + s.SetDetailAndBundledRelation(bundle.RelationKeyId, pbtypes.String(id)) + } + + if v, ok := s.Details().GetFields()[bundle.RelationKeyFileBackupStatus.String()]; ok { + status := filesyncstatus.Status(v.GetNumberValue()) + // Clients expect syncstatus constants in this relation + s.SetDetailAndBundledRelation(bundle.RelationKeyFileSyncStatus, pbtypes.Int64(int64(status.ToSyncStatus()))) + } + + if info := s.GetFileInfo(); info.FileId != "" { + err := sb.fileStore.AddFileKeys(domain.FileEncryptionKeys{ + FileId: info.FileId, + EncryptionKeys: info.EncryptionKeys, + }) + if err != nil { + log.Errorf("failed to store file keys: %v", err) + } + } + + if spaceID != "" { + s.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, pbtypes.String(spaceID)) + } else { + log.Errorf("InjectDerivedDetails: failed to set space id for %s: no space id provided, but in details: %s", id, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeySpaceId.String())) + } + if ot := s.ObjectTypeKey(); ot != "" { + typeID, err := sb.space.GetTypeIdByKey(context.Background(), ot) + if err != nil { + log.Errorf("failed to get type id for %s: %v", ot, err) + } + + s.SetDetailAndBundledRelation(bundle.RelationKeyType, pbtypes.String(typeID)) + } + + if uki := s.UniqueKeyInternal(); uki != "" { + // todo: remove this hack after spaceService refactored to include marketplace virtual space + if sbt == smartblock.SmartBlockTypeBundledObjectType { + sbt = smartblock.SmartBlockTypeObjectType + } else if sbt == smartblock.SmartBlockTypeBundledRelation { + sbt = smartblock.SmartBlockTypeRelation + } + + uk, err := domain.NewUniqueKey(sbt, uki) + if err != nil { + log.Errorf("failed to get unique key for %s: %v", uki, err) + } else { + s.SetDetailAndBundledRelation(bundle.RelationKeyUniqueKey, pbtypes.String(uk.Marshal())) + } + } + + err := sb.deriveChatId(s) + if err != nil { + log.With("objectId", sb.Id()).Errorf("can't derive chat id: %v", err) + } + + sb.setRestrictionsDetail(s) + + snippet := s.Snippet() + if snippet != "" || s.LocalDetails() != nil { + s.SetDetailAndBundledRelation(bundle.RelationKeySnippet, pbtypes.String(snippet)) + } + + // Set isDeleted relation only if isUninstalled is present in details + if isUninstalled := s.Details().GetFields()[bundle.RelationKeyIsUninstalled.String()]; isUninstalled != nil { + var isDeleted bool + if isUninstalled.GetBoolValue() { + isDeleted = true + } + s.SetDetailAndBundledRelation(bundle.RelationKeyIsDeleted, pbtypes.Bool(isDeleted)) + } + + sb.injectLinksDetails(s) + sb.injectMentions(s) + sb.updateBackLinks(s) + + sb.injectResolvedLayout(s) +} + +func (sb *smartBlock) deriveChatId(s *state.State) error { + hasChat := pbtypes.GetBool(s.Details(), bundle.RelationKeyHasChat.String()) + if hasChat { + chatUk, err := domain.NewUniqueKey(smartblock.SmartBlockTypeChatDerivedObject, sb.Id()) + if err != nil { + return err + } + + chatId, err := sb.space.DeriveObjectID(context.Background(), chatUk) + if err != nil { + return err + } + s.SetDetailAndBundledRelation(bundle.RelationKeyChatId, pbtypes.String(chatId)) + } + return nil +} + +func (sb *smartBlock) injectResolvedLayout(s *state.State) { + if s.Details() == nil { + return + } + rawValue := s.Details().Fields[bundle.RelationKeyLayout.String()] + if rawValue != nil { + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) + return + } + + typeObjectId := pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyType.String()) + + // I have no clue when lastDepDetails are filled, so maybe we need to call metaListener directly + typeDetails, found := sb.lastDepDetails[typeObjectId] + if !found { + log.Errorf("failed to find details of type in smartblock dependencies") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + return + } + + rawValue = typeDetails.Details.Fields[bundle.RelationKeyRecommendedLayout.String()] + if rawValue == nil { + log.Errorf("failed to get recommended layout from details of type") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + return + } + + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) +} diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go new file mode 100644 index 000000000..08ecc7a49 --- /dev/null +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -0,0 +1,294 @@ +package smartblock + +import ( + "context" + "errors" + "testing" + "time" + + "github.com/gogo/protobuf/types" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/simple" + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/util/pbtypes" +) + +func TestSmartBlock_getDetailsFromStore(t *testing.T) { + id := "id" + t.Run("details are in the store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + details := &types.Struct{ + Fields: map[string]*types.Value{ + "id": pbtypes.String(id), + "number": pbtypes.Float64(2.18281828459045), + "🔥": pbtypes.StringList([]string{"Jeanne d'Arc", "Giordano Bruno", "Capocchio"}), + }, + } + + err := fx.store.UpdateObjectDetails(context.Background(), id, &types.Struct{ + Fields: map[string]*types.Value{ + "id": pbtypes.String(id), + "number": pbtypes.Float64(2.18281828459045), + "🔥": pbtypes.StringList([]string{"Jeanne d'Arc", "Giordano Bruno", "Capocchio"}), + }, + }) + require.NoError(t, err) + + // when + detailsFromStore, err := fx.getDetailsFromStore() + + // then + assert.NoError(t, err) + assert.Equal(t, details, detailsFromStore) + }) + + t.Run("no details in the store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + // when + details, err := fx.getDetailsFromStore() + + // then + assert.NoError(t, err) + assert.NotNil(t, details) + }) +} + +func TestSmartBlock_injectBackLinks(t *testing.T) { + backLinks := []string{"1", "2", "3"} + id := "id" + + t.Run("update back links", func(t *testing.T) { + // given + newBackLinks := []string{"4", "5"} + fx := newFixture(id, t) + + ctx := context.Background() + err := fx.store.UpdateObjectLinks(ctx, "4", []string{id}) + require.NoError(t, err) + err = fx.store.UpdateObjectLinks(ctx, "5", []string{id}) + require.NoError(t, err) + + st := state.NewDoc("", nil).NewState() + st.SetDetailAndBundledRelation(bundle.RelationKeyBacklinks, pbtypes.StringList(backLinks)) + + // when + fx.updateBackLinks(st) + + // then + assert.Equal(t, newBackLinks, pbtypes.GetStringList(st.CombinedDetails(), bundle.RelationKeyBacklinks.String())) + }) + + t.Run("back links were found in object store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + ctx := context.Background() + err := fx.store.UpdateObjectLinks(ctx, "1", []string{id}) + require.NoError(t, err) + err = fx.store.UpdateObjectLinks(ctx, "2", []string{id}) + require.NoError(t, err) + err = fx.store.UpdateObjectLinks(ctx, "3", []string{id}) + require.NoError(t, err) + + // fx.store.EXPECT().GetInboundLinksById(id).Return(backLinks, nil) + st := state.NewDoc("", nil).NewState() + + // when + fx.updateBackLinks(st) + + // then + details := st.CombinedDetails() + assert.NotNil(t, pbtypes.GetStringList(details, bundle.RelationKeyBacklinks.String())) + assert.Equal(t, backLinks, pbtypes.GetStringList(details, bundle.RelationKeyBacklinks.String())) + }) + + t.Run("back links were not found in object store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("", nil).NewState() + + // when + fx.updateBackLinks(st) + + // then + assert.Len(t, pbtypes.GetStringList(st.CombinedDetails(), bundle.RelationKeyBacklinks.String()), 0) + }) +} + +func TestSmartBlock_updatePendingDetails(t *testing.T) { + id := "id" + + t.Run("no pending details", func(t *testing.T) { + // given + fx := newFixture(id, t) + + var hasPendingDetails bool + details := &types.Struct{Fields: map[string]*types.Value{}} + + // when + _, result := fx.appendPendingDetails(details) + + // then + assert.Equal(t, hasPendingDetails, result) + assert.Zero(t, len(details.Fields)) + }) + + t.Run("found pending details", func(t *testing.T) { + // given + fx := newFixture(id, t) + + details := &types.Struct{Fields: map[string]*types.Value{}} + + err := fx.store.UpdatePendingLocalDetails(id, func(det *types.Struct) (*types.Struct, error) { + det.Fields[bundle.RelationKeyIsDeleted.String()] = pbtypes.Bool(false) + return det, nil + }) + require.NoError(t, err) + + // when + got, _ := fx.appendPendingDetails(details) + + // then + want := &types.Struct{ + Fields: map[string]*types.Value{ + bundle.RelationKeyId.String(): pbtypes.String(id), + bundle.RelationKeyIsDeleted.String(): pbtypes.Bool(false), + }, + } + assert.Equal(t, want, got) + }) + + t.Run("failure on retrieving pending details from the store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + details := &types.Struct{} + + // when + _, hasPendingDetails := fx.appendPendingDetails(details) + + // then + assert.False(t, hasPendingDetails) + }) +} + +func TestSmartBlock_injectCreationInfo(t *testing.T) { + creator := "Anytype" + creationDate := int64(1692127254) + + t.Run("both creator and creation date are already set", func(t *testing.T) { + // given + src := &sourceStub{ + creator: creator, + createdDate: creationDate, + err: nil, + } + sb := &smartBlock{source: src} + s := &state.State{} + s.SetLocalDetails(&types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyCreator.String(): pbtypes.String(creator), + bundle.RelationKeyCreatedDate.String(): pbtypes.Int64(creationDate), + }}) + + // when + err := sb.injectCreationInfo(s) + + // then + assert.NoError(t, err) + assert.Equal(t, creator, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String())) + assert.Equal(t, creationDate, pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String())) + }) + + t.Run("both creator and creation date are found", func(t *testing.T) { + // given + src := &sourceStub{ + creator: creator, + createdDate: creationDate, + err: nil, + } + sb := smartBlock{source: src} + s := &state.State{} + + // when + err := sb.injectCreationInfo(s) + + // then + assert.NoError(t, err) + assert.Equal(t, creator, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String())) + assert.NotNil(t, s.GetRelationLinks().Get(bundle.RelationKeyCreator.String())) + assert.Equal(t, creationDate, pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String())) + assert.NotNil(t, s.GetRelationLinks().Get(bundle.RelationKeyCreatedDate.String())) + }) + + t.Run("failure on retrieving creation info from source", func(t *testing.T) { + // given + srcErr := errors.New("source error") + src := &sourceStub{err: srcErr} + sb := smartBlock{source: src} + s := &state.State{} + + // when + err := sb.injectCreationInfo(s) + + // then + assert.True(t, errors.Is(err, srcErr)) + assert.Nil(t, s.LocalDetails()) + }) +} + +func TestInjectLocalDetails(t *testing.T) { + t.Run("with no details in store get creation info from source", func(t *testing.T) { + const id = "id" + + fx := newFixture(id, t) + fx.source.creator = domain.NewParticipantId("testSpace", "testIdentity") + fx.source.createdDate = time.Now().Unix() + + st := state.NewDoc("id", nil).NewState() + + err := fx.injectLocalDetails(st) + + require.NoError(t, err) + + assert.Equal(t, fx.source.creator, pbtypes.GetString(st.LocalDetails(), bundle.RelationKeyCreator.String())) + assert.Equal(t, fx.source.createdDate, pbtypes.GetInt64(st.LocalDetails(), bundle.RelationKeyCreatedDate.String())) + }) + + // TODO More tests +} + +func TestInjectDerivedDetails(t *testing.T) { + const ( + id = "id" + spaceId = "testSpace" + ) + t.Run("links are updated on injection", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", map[string]simple.Block{ + id: simple.New(&model.Block{Id: id, ChildrenIds: []string{"dataview", "link"}}), + "dataview": simple.New(&model.Block{Id: "dataview", Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{TargetObjectId: "some_set"}}}), + "link": simple.New(&model.Block{Id: "link", Content: &model.BlockContentOfLink{Link: &model.BlockContentLink{TargetBlockId: "some_obj"}}}), + }).NewState() + st.AddRelationLinks(&model.RelationLink{Key: bundle.RelationKeyAssignee.String(), Format: model.RelationFormat_object}) + st.SetDetail(bundle.RelationKeyAssignee.String(), pbtypes.String("Kirill")) + + // when + fx.injectDerivedDetails(st, spaceId, smartblock.SmartBlockTypePage) + + // then + assert.Len(t, pbtypes.GetStringList(st.LocalDetails(), bundle.RelationKeyLinks.String()), 3) + }) +} diff --git a/core/block/editor/smartblock/relations.go b/core/block/editor/smartblock/relations.go deleted file mode 100644 index dd9974f20..000000000 --- a/core/block/editor/smartblock/relations.go +++ /dev/null @@ -1 +0,0 @@ -package smartblock diff --git a/core/block/editor/smartblock/smartblock.go b/core/block/editor/smartblock/smartblock.go index 94daddcbb..2310d9084 100644 --- a/core/block/editor/smartblock/smartblock.go +++ b/core/block/editor/smartblock/smartblock.go @@ -31,7 +31,6 @@ import ( "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/core/session" - "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus" "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -934,115 +933,6 @@ func (sb *smartBlock) AddRelationLinksToState(s *state.State, relationKeys ...st return } -func (sb *smartBlock) injectLocalDetails(s *state.State) error { - details, err := sb.getDetailsFromStore() - if err != nil { - return err - } - - details, hasPendingLocalDetails := sb.appendPendingDetails(details) - - // inject also derived keys, because it may be a good idea to have created date and creator cached, - // so we don't need to traverse changes every time - keys := bundle.LocalAndDerivedRelationKeys - - localDetailsFromStore := pbtypes.StructFilterKeys(details, keys) - - s.InjectLocalDetails(localDetailsFromStore) - if p := s.ParentState(); p != nil && !hasPendingLocalDetails { - // inject for both current and parent state - p.InjectLocalDetails(localDetailsFromStore) - } - - err = sb.injectCreationInfo(s) - if err != nil { - log.With("objectID", sb.Id()).With("sbtype", sb.Type().String()).Errorf("failed to inject creation info: %s", err.Error()) - } - return nil -} - -func (sb *smartBlock) getDetailsFromStore() (*types.Struct, error) { - storedDetails, err := sb.spaceIndex.GetDetails(sb.Id()) - if err != nil || storedDetails == nil { - return nil, err - } - return pbtypes.CopyStruct(storedDetails.GetDetails(), true), nil -} - -func (sb *smartBlock) appendPendingDetails(details *types.Struct) (resultDetails *types.Struct, hasPendingLocalDetails bool) { - // Consume pending details - err := sb.spaceIndex.UpdatePendingLocalDetails(sb.Id(), func(pending *types.Struct) (*types.Struct, error) { - if len(pending.GetFields()) > 0 { - hasPendingLocalDetails = true - } - details = pbtypes.StructMerge(details, pending, false) - return nil, nil - }) - if err != nil { - log.With("objectID", sb.Id()). - With("sbType", sb.Type()).Errorf("failed to update pending details: %v", err) - } - return details, hasPendingLocalDetails -} - -func (sb *smartBlock) getCreationInfo() (creatorObjectId string, treeCreatedDate int64, err error) { - creatorObjectId, treeCreatedDate, err = sb.source.GetCreationInfo() - if err != nil { - return - } - - return creatorObjectId, treeCreatedDate, nil -} - -func (sb *smartBlock) injectCreationInfo(s *state.State) error { - if sb.Type() == smartblock.SmartBlockTypeProfilePage { - // todo: for the shared spaces we need to change this for sophisticated logic - creatorIdentityObjectId, _, err := sb.getCreationInfo() - if err != nil { - return err - } - - if creatorIdentityObjectId != "" { - s.SetDetailAndBundledRelation(bundle.RelationKeyProfileOwnerIdentity, pbtypes.String(creatorIdentityObjectId)) - } - } else { - // make sure we don't have this relation for other objects - s.RemoveLocalDetail(bundle.RelationKeyProfileOwnerIdentity.String()) - } - - if pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String()) != "" && pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String()) != 0 { - return nil - } - - creatorIdentityObjectId, treeCreatedDate, err := sb.getCreationInfo() - if err != nil { - return err - } - - if creatorIdentityObjectId != "" { - s.SetDetailAndBundledRelation(bundle.RelationKeyCreator, pbtypes.String(creatorIdentityObjectId)) - } else { - // For derived objects we set current identity - s.SetDetailAndBundledRelation(bundle.RelationKeyCreator, pbtypes.String(sb.currentParticipantId)) - } - - if originalCreated := s.OriginalCreatedTimestamp(); originalCreated > 0 { - // means we have imported object, so we need to set original created date - s.SetDetailAndBundledRelation(bundle.RelationKeyCreatedDate, pbtypes.Float64(float64(originalCreated))) - // Only set AddedDate once because we have a side effect with treeCreatedDate: - // - When we import object, treeCreateDate is set to time.Now() - // - But after push it is changed to original modified date - // - So after account recovery we will get treeCreateDate = original modified date, which is not equal to AddedDate - if pbtypes.GetInt64(s.Details(), bundle.RelationKeyAddedDate.String()) == 0 { - s.SetDetailAndBundledRelation(bundle.RelationKeyAddedDate, pbtypes.Float64(float64(treeCreatedDate))) - } - } else { - s.SetDetailAndBundledRelation(bundle.RelationKeyCreatedDate, pbtypes.Float64(float64(treeCreatedDate))) - } - - return nil -} - func (sb *smartBlock) SetVerticalAlign(ctx session.Context, align model.BlockVerticalAlign, ids ...string) (err error) { s := sb.NewStateCtx(ctx) for _, id := range ids { @@ -1452,100 +1342,4 @@ func SkipFullTextIfHeadsNotChanged(o *IndexOptions) { o.SkipFullTextIfHeadsNotChanged = true } -// injectDerivedDetails injects the local data -func (sb *smartBlock) injectDerivedDetails(s *state.State, spaceID string, sbt smartblock.SmartBlockType) { - id := s.RootId() - if id != "" { - s.SetDetailAndBundledRelation(bundle.RelationKeyId, pbtypes.String(id)) - } - - if v, ok := s.Details().GetFields()[bundle.RelationKeyFileBackupStatus.String()]; ok { - status := filesyncstatus.Status(v.GetNumberValue()) - // Clients expect syncstatus constants in this relation - s.SetDetailAndBundledRelation(bundle.RelationKeyFileSyncStatus, pbtypes.Int64(int64(status.ToSyncStatus()))) - } - - if info := s.GetFileInfo(); info.FileId != "" { - err := sb.fileStore.AddFileKeys(domain.FileEncryptionKeys{ - FileId: info.FileId, - EncryptionKeys: info.EncryptionKeys, - }) - if err != nil { - log.Errorf("failed to store file keys: %v", err) - } - } - - if spaceID != "" { - s.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, pbtypes.String(spaceID)) - } else { - log.Errorf("InjectDerivedDetails: failed to set space id for %s: no space id provided, but in details: %s", id, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeySpaceId.String())) - } - if ot := s.ObjectTypeKey(); ot != "" { - typeID, err := sb.space.GetTypeIdByKey(context.Background(), ot) - if err != nil { - log.Errorf("failed to get type id for %s: %v", ot, err) - } - - s.SetDetailAndBundledRelation(bundle.RelationKeyType, pbtypes.String(typeID)) - } - - if uki := s.UniqueKeyInternal(); uki != "" { - // todo: remove this hack after spaceService refactored to include marketplace virtual space - if sbt == smartblock.SmartBlockTypeBundledObjectType { - sbt = smartblock.SmartBlockTypeObjectType - } else if sbt == smartblock.SmartBlockTypeBundledRelation { - sbt = smartblock.SmartBlockTypeRelation - } - - uk, err := domain.NewUniqueKey(sbt, uki) - if err != nil { - log.Errorf("failed to get unique key for %s: %v", uki, err) - } else { - s.SetDetailAndBundledRelation(bundle.RelationKeyUniqueKey, pbtypes.String(uk.Marshal())) - } - } - - err := sb.deriveChatId(s) - if err != nil { - log.With("objectId", sb.Id()).Errorf("can't derive chat id: %v", err) - } - - sb.setRestrictionsDetail(s) - - snippet := s.Snippet() - if snippet != "" || s.LocalDetails() != nil { - s.SetDetailAndBundledRelation(bundle.RelationKeySnippet, pbtypes.String(snippet)) - } - - // Set isDeleted relation only if isUninstalled is present in details - if isUninstalled := s.Details().GetFields()[bundle.RelationKeyIsUninstalled.String()]; isUninstalled != nil { - var isDeleted bool - if isUninstalled.GetBoolValue() { - isDeleted = true - } - s.SetDetailAndBundledRelation(bundle.RelationKeyIsDeleted, pbtypes.Bool(isDeleted)) - } - - sb.injectLinksDetails(s) - sb.injectMentions(s) - sb.updateBackLinks(s) -} - -func (sb *smartBlock) deriveChatId(s *state.State) error { - hasChat := pbtypes.GetBool(s.Details(), bundle.RelationKeyHasChat.String()) - if hasChat { - chatUk, err := domain.NewUniqueKey(smartblock.SmartBlockTypeChatDerivedObject, sb.Id()) - if err != nil { - return err - } - - chatId, err := sb.space.DeriveObjectID(context.Background(), chatUk) - if err != nil { - return err - } - s.SetDetailAndBundledRelation(bundle.RelationKeyChatId, pbtypes.String(chatId)) - } - return nil -} - type InitFunc = func(id string) *InitContext diff --git a/core/block/editor/smartblock/smartblock_test.go b/core/block/editor/smartblock/smartblock_test.go index 4afcd97c9..ba32d5653 100644 --- a/core/block/editor/smartblock/smartblock_test.go +++ b/core/block/editor/smartblock/smartblock_test.go @@ -2,11 +2,8 @@ package smartblock import ( "context" - "errors" "testing" - "time" - "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -20,7 +17,6 @@ import ( _ "github.com/anyproto/anytype-heart/core/block/simple/link" _ "github.com/anyproto/anytype-heart/core/block/simple/text" "github.com/anyproto/anytype-heart/core/block/source" - "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event/mock_event" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pb" @@ -125,234 +121,6 @@ func TestBasic_SetAlign(t *testing.T) { } -func TestSmartBlock_getDetailsFromStore(t *testing.T) { - id := "id" - t.Run("details are in the store", func(t *testing.T) { - // given - fx := newFixture(id, t) - - details := &types.Struct{ - Fields: map[string]*types.Value{ - "id": pbtypes.String(id), - "number": pbtypes.Float64(2.18281828459045), - "🔥": pbtypes.StringList([]string{"Jeanne d'Arc", "Giordano Bruno", "Capocchio"}), - }, - } - - err := fx.store.UpdateObjectDetails(context.Background(), id, &types.Struct{ - Fields: map[string]*types.Value{ - "id": pbtypes.String(id), - "number": pbtypes.Float64(2.18281828459045), - "🔥": pbtypes.StringList([]string{"Jeanne d'Arc", "Giordano Bruno", "Capocchio"}), - }, - }) - require.NoError(t, err) - - // when - detailsFromStore, err := fx.getDetailsFromStore() - - // then - assert.NoError(t, err) - assert.Equal(t, details, detailsFromStore) - }) - - t.Run("no details in the store", func(t *testing.T) { - // given - fx := newFixture(id, t) - - // when - details, err := fx.getDetailsFromStore() - - // then - assert.NoError(t, err) - assert.NotNil(t, details) - }) -} - -func TestSmartBlock_injectBackLinks(t *testing.T) { - backLinks := []string{"1", "2", "3"} - id := "id" - - t.Run("update back links", func(t *testing.T) { - // given - newBackLinks := []string{"4", "5"} - fx := newFixture(id, t) - - ctx := context.Background() - err := fx.store.UpdateObjectLinks(ctx, "4", []string{id}) - require.NoError(t, err) - err = fx.store.UpdateObjectLinks(ctx, "5", []string{id}) - require.NoError(t, err) - - st := state.NewDoc("", nil).NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyBacklinks, pbtypes.StringList(backLinks)) - - // when - fx.updateBackLinks(st) - - // then - assert.Equal(t, newBackLinks, pbtypes.GetStringList(st.CombinedDetails(), bundle.RelationKeyBacklinks.String())) - }) - - t.Run("back links were found in object store", func(t *testing.T) { - // given - fx := newFixture(id, t) - - ctx := context.Background() - err := fx.store.UpdateObjectLinks(ctx, "1", []string{id}) - require.NoError(t, err) - err = fx.store.UpdateObjectLinks(ctx, "2", []string{id}) - require.NoError(t, err) - err = fx.store.UpdateObjectLinks(ctx, "3", []string{id}) - require.NoError(t, err) - - // fx.store.EXPECT().GetInboundLinksById(id).Return(backLinks, nil) - st := state.NewDoc("", nil).NewState() - - // when - fx.updateBackLinks(st) - - // then - details := st.CombinedDetails() - assert.NotNil(t, pbtypes.GetStringList(details, bundle.RelationKeyBacklinks.String())) - assert.Equal(t, backLinks, pbtypes.GetStringList(details, bundle.RelationKeyBacklinks.String())) - }) - - t.Run("back links were not found in object store", func(t *testing.T) { - // given - fx := newFixture(id, t) - - st := state.NewDoc("", nil).NewState() - - // when - fx.updateBackLinks(st) - - // then - assert.Len(t, pbtypes.GetStringList(st.CombinedDetails(), bundle.RelationKeyBacklinks.String()), 0) - }) -} - -func TestSmartBlock_updatePendingDetails(t *testing.T) { - id := "id" - - t.Run("no pending details", func(t *testing.T) { - // given - fx := newFixture(id, t) - - var hasPendingDetails bool - details := &types.Struct{Fields: map[string]*types.Value{}} - - // when - _, result := fx.appendPendingDetails(details) - - // then - assert.Equal(t, hasPendingDetails, result) - assert.Zero(t, len(details.Fields)) - }) - - t.Run("found pending details", func(t *testing.T) { - // given - fx := newFixture(id, t) - - details := &types.Struct{Fields: map[string]*types.Value{}} - - err := fx.store.UpdatePendingLocalDetails(id, func(det *types.Struct) (*types.Struct, error) { - det.Fields[bundle.RelationKeyIsDeleted.String()] = pbtypes.Bool(false) - return det, nil - }) - require.NoError(t, err) - - // when - got, _ := fx.appendPendingDetails(details) - - // then - want := &types.Struct{ - Fields: map[string]*types.Value{ - bundle.RelationKeyId.String(): pbtypes.String(id), - bundle.RelationKeyIsDeleted.String(): pbtypes.Bool(false), - }, - } - assert.Equal(t, want, got) - }) - - t.Run("failure on retrieving pending details from the store", func(t *testing.T) { - // given - fx := newFixture(id, t) - - details := &types.Struct{} - - // when - _, hasPendingDetails := fx.appendPendingDetails(details) - - // then - assert.False(t, hasPendingDetails) - }) -} - -func TestSmartBlock_injectCreationInfo(t *testing.T) { - creator := "Anytype" - creationDate := int64(1692127254) - - t.Run("both creator and creation date are already set", func(t *testing.T) { - // given - src := &sourceStub{ - creator: creator, - createdDate: creationDate, - err: nil, - } - sb := &smartBlock{source: src} - s := &state.State{} - s.SetLocalDetails(&types.Struct{Fields: map[string]*types.Value{ - bundle.RelationKeyCreator.String(): pbtypes.String(creator), - bundle.RelationKeyCreatedDate.String(): pbtypes.Int64(creationDate), - }}) - - // when - err := sb.injectCreationInfo(s) - - // then - assert.NoError(t, err) - assert.Equal(t, creator, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String())) - assert.Equal(t, creationDate, pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String())) - }) - - t.Run("both creator and creation date are found", func(t *testing.T) { - // given - src := &sourceStub{ - creator: creator, - createdDate: creationDate, - err: nil, - } - sb := smartBlock{source: src} - s := &state.State{} - - // when - err := sb.injectCreationInfo(s) - - // then - assert.NoError(t, err) - assert.Equal(t, creator, pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyCreator.String())) - assert.NotNil(t, s.GetRelationLinks().Get(bundle.RelationKeyCreator.String())) - assert.Equal(t, creationDate, pbtypes.GetInt64(s.LocalDetails(), bundle.RelationKeyCreatedDate.String())) - assert.NotNil(t, s.GetRelationLinks().Get(bundle.RelationKeyCreatedDate.String())) - }) - - t.Run("failure on retrieving creation info from source", func(t *testing.T) { - // given - srcErr := errors.New("source error") - src := &sourceStub{err: srcErr} - sb := smartBlock{source: src} - s := &state.State{} - - // when - err := sb.injectCreationInfo(s) - - // then - assert.True(t, errors.Is(err, srcErr)) - assert.Nil(t, s.LocalDetails()) - }) -} - func Test_removeInternalFlags(t *testing.T) { t.Run("no flags - no changes", func(t *testing.T) { // given @@ -411,52 +179,6 @@ func Test_removeInternalFlags(t *testing.T) { }) } -func TestInjectLocalDetails(t *testing.T) { - t.Run("with no details in store get creation info from source", func(t *testing.T) { - const id = "id" - - fx := newFixture(id, t) - fx.source.creator = domain.NewParticipantId("testSpace", "testIdentity") - fx.source.createdDate = time.Now().Unix() - - st := state.NewDoc("id", nil).NewState() - - err := fx.injectLocalDetails(st) - - require.NoError(t, err) - - assert.Equal(t, fx.source.creator, pbtypes.GetString(st.LocalDetails(), bundle.RelationKeyCreator.String())) - assert.Equal(t, fx.source.createdDate, pbtypes.GetInt64(st.LocalDetails(), bundle.RelationKeyCreatedDate.String())) - }) - - // TODO More tests -} - -func TestInjectDerivedDetails(t *testing.T) { - const ( - id = "id" - spaceId = "testSpace" - ) - t.Run("links are updated on injection", func(t *testing.T) { - // given - fx := newFixture(id, t) - - st := state.NewDoc("id", map[string]simple.Block{ - id: simple.New(&model.Block{Id: id, ChildrenIds: []string{"dataview", "link"}}), - "dataview": simple.New(&model.Block{Id: "dataview", Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{TargetObjectId: "some_set"}}}), - "link": simple.New(&model.Block{Id: "link", Content: &model.BlockContentOfLink{Link: &model.BlockContentLink{TargetBlockId: "some_obj"}}}), - }).NewState() - st.AddRelationLinks(&model.RelationLink{Key: bundle.RelationKeyAssignee.String(), Format: model.RelationFormat_object}) - st.SetDetail(bundle.RelationKeyAssignee.String(), pbtypes.String("Kirill")) - - // when - fx.injectDerivedDetails(st, spaceId, smartblock.SmartBlockTypePage) - - // then - assert.Len(t, pbtypes.GetStringList(st.LocalDetails(), bundle.RelationKeyLinks.String()), 3) - }) -} - type fixture struct { objectStore *objectstore.StoreFixture store spaceindex.Store diff --git a/pkg/lib/bundle/internalRelations.gen.go b/pkg/lib/bundle/internalRelations.gen.go index fe2ac2cd6..e3fa7fbd2 100644 --- a/pkg/lib/bundle/internalRelations.gen.go +++ b/pkg/lib/bundle/internalRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const InternalRelationsChecksum = "22209a849ccdd7975e889da4026ba438c9fcf170b83726bb0be47e05910668dc" +const InternalRelationsChecksum = "881f0f80d1923b96fa64c4c6630e9dc6b730ac3a96bec1a26770bc16a5a7f088" // RequiredInternalRelations contains internal relations that will be added to EVERY new or existing object // if this relation only needs SPECIFIC objects(e.g. of some type) add it to the SystemRelations @@ -17,7 +17,6 @@ var RequiredInternalRelations = []domain.RelationKey{ RelationKeyIconEmoji, RelationKeyIconImage, RelationKeyType, - RelationKeyLayout, RelationKeyCreatedDate, RelationKeyCreator, RelationKeyLastModifiedDate, diff --git a/pkg/lib/bundle/internalRelations.json b/pkg/lib/bundle/internalRelations.json index 53f4414c4..c0ea64747 100644 --- a/pkg/lib/bundle/internalRelations.json +++ b/pkg/lib/bundle/internalRelations.json @@ -5,7 +5,6 @@ "iconEmoji", "iconImage", "type", - "layout", "createdDate", "creator", "lastModifiedDate", diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 8a6091f57..8371c1fe0 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "988fe0e151919f1331d67f7334d80efa82c85a3655c4cdcc11309d248513c37d" +const RelationChecksum = "b90b34a574d8af507986c1d9b8d5aa640c1cedbf47e51dfc65ba5834b71fda6b" const ( RelationKeyTag domain.RelationKey = "tag" RelationKeyCamera domain.RelationKey = "camera" @@ -146,6 +146,7 @@ const ( RelationKeyTimestamp domain.RelationKey = "timestamp" RelationKeyRecommendedFeaturedRelations domain.RelationKey = "recommendedFeaturedRelations" RelationKeyLayoutWidth domain.RelationKey = "layoutWidth" + RelationKeyResolvedLayout domain.RelationKey = "resolvedLayout" RelationKeySpaceOrder domain.RelationKey = "spaceOrder" ) @@ -1464,6 +1465,20 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyResolvedLayout: { + + DataSource: model.Relation_derived, + Description: "Layout resolved based on object self layout and type recommended layout", + Format: model.RelationFormat_number, + Hidden: true, + Id: "_brresolvedLayout", + Key: "resolvedLayout", + MaxCount: 1, + Name: "Resolved layout", + ReadOnly: true, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyRestrictions: { DataSource: model.Relation_derived, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index 5c45e1120..672c332a4 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1390,6 +1390,16 @@ "readonly": false, "source": "details" }, + { + "description": "Layout resolved based on object self layout and type recommended layout", + "format": "number", + "hidden": true, + "key": "resolvedLayout", + "maxCount": 1, + "name": "Resolved layout", + "readonly": true, + "source": "derived" + }, { "description": "Space order", "format": "longtext", diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index d5451b10e..d8f2471f8 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,12 +6,13 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "1e5b0e9052b1eaada03cb90e8703e8bc34b5be7180aa17933afaee74209af65b" +const SystemRelationsChecksum = "aaa5a97c5e98e22c5c59ceb32c603f8993f1386f239f555d089d5e435a02cd10" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeySnippet, + RelationKeyLayout, RelationKeyLayoutAlign, RelationKeyCoverId, RelationKeyCoverScale, @@ -84,4 +85,5 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyTimestamp, RelationKeyRecommendedFeaturedRelations, RelationKeyLayoutWidth, + RelationKeyResolvedLayout, }...) diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index 2ea17f250..c9e914e82 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -92,5 +92,6 @@ "hasChat", "timestamp", "recommendedFeaturedRelations", - "layoutWidth" + "layoutWidth", + "resolvedLayout" ] From dc0ccef1a05a0621a78785a2fd1826ae8ea22633 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 10 Dec 2024 12:43:39 +0100 Subject: [PATCH 018/176] GO-4277 Add receivers to migrations --- .../components/migration/readonlyfixer/relationsfixer.go | 4 ++-- .../migration/systemobjectreviser/systemobjectreviser.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/space/internal/components/migration/readonlyfixer/relationsfixer.go b/space/internal/components/migration/readonlyfixer/relationsfixer.go index 1b6ab119a..cccb034f1 100644 --- a/space/internal/components/migration/readonlyfixer/relationsfixer.go +++ b/space/internal/components/migration/readonlyfixer/relationsfixer.go @@ -27,11 +27,11 @@ const MName = "ReadonlyRelationsFixer" // This migration was implemented to fix relations in accounts of users that are not able to modify its value (GO-2331) type Migration struct{} -func (Migration) Name() string { +func (m Migration) Name() string { return MName } -func (Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (m Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { spaceId := space.Id() relations, err := listReadonlyTagAndStatusRelations(store, spaceId) diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index c9472c2f9..52b7ee5bb 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -40,11 +40,11 @@ var revisionKey = bundle.RelationKeyRevision.String() // For more info see 'System Objects Update' section of docs/Flow.md type Migration struct{} -func (Migration) Name() string { +func (m Migration) Name() string { return MName } -func (Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { +func (m Migration) Run(ctx context.Context, log logger.CtxLogger, store dependencies.QueryableStore, space dependencies.SpaceWithCtx) (toMigrate, migrated int, err error) { spaceObjects, err := listAllTypesAndRelations(store) if err != nil { return 0, 0, fmt.Errorf("failed to get relations and types from client space: %w", err) From 0f647163775b38e0909db0a56921805f7ed2fc42 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 16 Dec 2024 23:37:17 +0300 Subject: [PATCH 019/176] GO-4232 Rename installer fields --- core/block/object/installer/bundle.go | 20 ++++++++++---------- core/block/object/installer/bundle_test.go | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/block/object/installer/bundle.go b/core/block/object/installer/bundle.go index 4722b5dd7..6a75072ed 100644 --- a/core/block/object/installer/bundle.go +++ b/core/block/object/installer/bundle.go @@ -40,10 +40,10 @@ type BundleObjectInstaller interface { } type objectInstaller struct { - spaceService space.Service - store objectstore.ObjectStore - archiver objectArchiver - creator objectcreator.Service + spaceService space.Service + objectStore objectstore.ObjectStore + archiver objectArchiver + creatorService objectcreator.Service } func New() BundleObjectInstaller { @@ -52,9 +52,9 @@ func New() BundleObjectInstaller { func (i *objectInstaller) Init(a *app.App) error { i.spaceService = app.MustComponent[space.Service](a) - i.store = app.MustComponent[objectstore.ObjectStore](a) + i.objectStore = app.MustComponent[objectstore.ObjectStore](a) i.archiver = app.MustComponent[objectArchiver](a) - i.creator = app.MustComponent[objectcreator.Service](a) + i.creatorService = app.MustComponent[objectcreator.Service](a) return nil } @@ -163,7 +163,7 @@ func (i *objectInstaller) installObject(ctx context.Context, space clientspace.S return "", nil, fmt.Errorf("unsupported object type: %s", uk.SmartblockType()) } - id, newDetails, err = i.creator.CreateObjectInSpace(ctx, space, objectcreator.CreateObjectRequest{ + id, newDetails, err = i.creatorService.CreateObjectInSpace(ctx, space, objectcreator.CreateObjectRequest{ Details: installingDetails, ObjectTypeKey: objectTypeKey, }) @@ -177,7 +177,7 @@ func (i *objectInstaller) installObject(ctx context.Context, space clientspace.S } func (i *objectInstaller) listInstalledObjects(space clientspace.Space, sourceObjectIds []string) (map[string]*types.Struct, error) { - existingObjects, err := i.store.SpaceIndex(space.Id()).Query(database.Query{ + existingObjects, err := i.objectStore.SpaceIndex(space.Id()).Query(database.Query{ Filters: []*model.BlockContentDataviewFilter{ { RelationKey: bundle.RelationKeySourceObject.String(), @@ -228,7 +228,7 @@ func (i *objectInstaller) reinstallBundledObjects( ids = append(ids, id) objects = append(objects, details) - if err = i.creator.CreateTemplatesForObjectType(space, typeKey); err != nil { + if err = i.creatorService.CreateTemplatesForObjectType(space, typeKey); err != nil { return nil, nil, fmt.Errorf("install templates for object type %s: %w", typeKey, err) } } @@ -336,7 +336,7 @@ func (i *objectInstaller) queryDeletedObjects(space clientspace.Space, sourceObj if err != nil { return nil, err } - return i.store.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ + return i.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ database.FiltersOr{ database.FilterEq{ Key: bundle.RelationKeyLayout.String(), diff --git a/core/block/object/installer/bundle_test.go b/core/block/object/installer/bundle_test.go index 143709888..4864f43f7 100644 --- a/core/block/object/installer/bundle_test.go +++ b/core/block/object/installer/bundle_test.go @@ -70,7 +70,7 @@ func TestInstaller_queryDeletedObjects(t *testing.T) { spc := mock_clientspace.NewMockSpace(t) spc.EXPECT().Id().Return(spaceId) - i := objectInstaller{store: store} + i := objectInstaller{objectStore: store} // when records, err := i.queryDeletedObjects(spc, sourceObjectIds) From decb884e255720634eb753d2fc4776961be853fa Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 17 Dec 2024 11:51:21 +0300 Subject: [PATCH 020/176] GO-4588 Update subscriptions on type absence --- core/block/editor/smartblock/detailsinject.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 2c0ac23a3..4ee09e074 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -233,12 +233,15 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { typeObjectId := pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyType.String()) - // I have no clue when lastDepDetails are filled, so maybe we need to call metaListener directly typeDetails, found := sb.lastDepDetails[typeObjectId] if !found { - log.Errorf("failed to find details of type in smartblock dependencies") - s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) - return + sb.CheckSubscriptions() + typeDetails, found = sb.lastDepDetails[typeObjectId] + if !found { + log.Errorf("failed to find details of type in smartblock dependencies") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + return + } } rawValue = typeDetails.Details.Fields[bundle.RelationKeyRecommendedLayout.String()] From 15f3efb0057b76b381e67cd4036092ab5b0335b9 Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 17 Dec 2024 11:28:40 +0100 Subject: [PATCH 021/176] Fix build --- core/relations.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/relations.go b/core/relations.go index 293a95dfe..e282e25bc 100644 --- a/core/relations.go +++ b/core/relations.go @@ -49,7 +49,7 @@ func (mw *Middleware) ObjectTypeRelationRemove(cctx context.Context, req *pb.Rpc } func (mw *Middleware) ObjectTypeRecommendedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { - detailsService := getService[detailservice.Service](mw) + detailsService := mustService[detailservice.Service](mw) err := detailsService.ObjectTypeSetRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedRelationsSetResponseError_READONLY_OBJECT_TYPE), @@ -63,7 +63,7 @@ func (mw *Middleware) ObjectTypeRecommendedRelationsSet(_ context.Context, req * } func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { - detailsService := getService[detailservice.Service](mw) + detailsService := mustService[detailservice.Service](mw) err := detailsService.ObjectTypeSetFeaturedRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_READONLY_OBJECT_TYPE), From b680046baa126bec11874fddf2f2afbea339a904 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 17 Dec 2024 13:34:34 +0300 Subject: [PATCH 022/176] GO-4232 Fix build --- core/relations.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/relations.go b/core/relations.go index 293a95dfe..e282e25bc 100644 --- a/core/relations.go +++ b/core/relations.go @@ -49,7 +49,7 @@ func (mw *Middleware) ObjectTypeRelationRemove(cctx context.Context, req *pb.Rpc } func (mw *Middleware) ObjectTypeRecommendedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { - detailsService := getService[detailservice.Service](mw) + detailsService := mustService[detailservice.Service](mw) err := detailsService.ObjectTypeSetRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedRelationsSetResponseError_READONLY_OBJECT_TYPE), @@ -63,7 +63,7 @@ func (mw *Middleware) ObjectTypeRecommendedRelationsSet(_ context.Context, req * } func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(_ context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { - detailsService := getService[detailservice.Service](mw) + detailsService := mustService[detailservice.Service](mw) err := detailsService.ObjectTypeSetFeaturedRelations(req.TypeObjectId, req.RelationObjectIds) code := mapErrorCode(err, errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponseError_READONLY_OBJECT_TYPE), From db58cc312453b53c7d3f84cf1571d6c91441d50d Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 17 Dec 2024 22:59:36 +0300 Subject: [PATCH 023/176] GO-4232 Remove installer --- core/anytype/bootstrap.go | 2 - .../common/objectcreator/objectcreator.go | 10 +- .../objectcreator/objectcreator_test.go | 4 +- core/block/import/importer.go | 6 +- core/block/object/objectcreator/chat.go | 2 +- core/block/object/objectcreator/creator.go | 18 +- .../bundle.go => objectcreator/installer.go} | 95 +++------ .../installer_test.go} | 8 +- .../mock_objectcreator/mock_Service.go | 184 +++++++----------- .../block/object/objectcreator/object_type.go | 12 +- .../object/objectcreator/object_type_test.go | 6 +- core/block/object/objectcreator/relation.go | 4 +- core/block/service.go | 7 +- space/mock_space/mock_Service.go | 46 ----- .../mock_techspace/mock_AccountObject.go | 45 ----- 15 files changed, 132 insertions(+), 317 deletions(-) rename core/block/object/{installer/bundle.go => objectcreator/installer.go} (74%) rename core/block/object/{installer/bundle_test.go => objectcreator/installer_test.go} (97%) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 4164f8709..7037a279d 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -49,7 +49,6 @@ import ( importer "github.com/anyproto/anytype-heart/core/block/import" "github.com/anyproto/anytype-heart/core/block/object/idderiver/idderiverimpl" "github.com/anyproto/anytype-heart/core/block/object/idresolver" - "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/object/objectgraph" "github.com/anyproto/anytype-heart/core/block/object/treemanager" @@ -303,7 +302,6 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(importer.New()). Register(decorator.New()). Register(objectcreator.NewCreator()). - Register(installer.New()). Register(kanban.New()). Register(device.NewDevices()). Register(editor.NewObjectFactory()). diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index da4f52ded..0cbe139fb 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -21,7 +21,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/import/common" "github.com/anyproto/anytype-heart/core/block/import/common/syncer" "github.com/anyproto/anytype-heart/core/block/import/markdown/anymark" - "github.com/anyproto/anytype-heart/core/block/object/installer" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" @@ -55,7 +55,7 @@ type ObjectCreator struct { objectStore objectstore.ObjectStore relationSyncer *syncer.FileRelationSyncer syncFactory *syncer.Factory - objectInstaller installer.BundleObjectInstaller + objectCreator objectcreator.Service objectGetterDeleter ObjectGetterDeleter } @@ -64,7 +64,7 @@ func New(detailsService detailservice.Service, objectStore objectstore.ObjectStore, relationSyncer *syncer.FileRelationSyncer, spaceService space.Service, - objectInstaller installer.BundleObjectInstaller, + objectCreator objectcreator.Service, objectGetterDeleter ObjectGetterDeleter, ) Service { return &ObjectCreator{ @@ -73,7 +73,7 @@ func New(detailsService detailservice.Service, objectStore: objectStore, relationSyncer: relationSyncer, spaceService: spaceService, - objectInstaller: objectInstaller, + objectCreator: objectCreator, objectGetterDeleter: objectGetterDeleter, } } @@ -233,7 +233,7 @@ func (oc *ObjectCreator) installBundledRelationsAndTypes( if err != nil { return fmt.Errorf("get space %s: %w", spaceID, err) } - _, _, err = oc.objectInstaller.InstallBundledObjects(ctx, spc, idsToCheck, origin.Origin == model.ObjectOrigin_usecase) + _, _, err = oc.objectCreator.InstallBundledObjects(ctx, spc, idsToCheck, origin.Origin == model.ObjectOrigin_usecase) return err } diff --git a/core/block/import/common/objectcreator/objectcreator_test.go b/core/block/import/common/objectcreator/objectcreator_test.go index 708a5c41b..2887b8429 100644 --- a/core/block/import/common/objectcreator/objectcreator_test.go +++ b/core/block/import/common/objectcreator/objectcreator_test.go @@ -14,7 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/import/common" - "github.com/anyproto/anytype-heart/core/block/object/installer" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/pb" @@ -79,7 +79,7 @@ func TestObjectCreator_Create(t *testing.T) { participantId: testParticipant, }) - service := New(detailsService, nil, nil, nil, mockService, installer.New(), getter) + service := New(detailsService, nil, nil, nil, mockService, objectcreator.NewCreator(), getter) // when create, id, err := service.Create(dataObject, sn) diff --git a/core/block/import/importer.go b/core/block/import/importer.go index 07dc907ef..efc3927c8 100644 --- a/core/block/import/importer.go +++ b/core/block/import/importer.go @@ -30,7 +30,7 @@ import ( pbc "github.com/anyproto/anytype-heart/core/block/import/pb" "github.com/anyproto/anytype-heart/core/block/import/txt" "github.com/anyproto/anytype-heart/core/block/import/web" - "github.com/anyproto/anytype-heart/core/block/object/installer" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" @@ -104,9 +104,9 @@ func (i *Import) Init(a *app.App) (err error) { i.idProvider = objectid.NewIDProvider(store, spaceService, i.s, i.fileStore, fileObjectService) factory := syncer.New(syncer.NewFileSyncer(i.s, fileObjectService), syncer.NewBookmarkSyncer(i.s), syncer.NewIconSyncer(i.s, fileObjectService)) relationSyncer := syncer.NewFileRelationSyncer(i.s, fileObjectService) - objectInstaller := app.MustComponent[installer.BundleObjectInstaller](a) + objectCreator := app.MustComponent[objectcreator.Service](a) detailsService := app.MustComponent[detailservice.Service](a) - i.oc = creator.New(detailsService, factory, store, relationSyncer, spaceService, objectInstaller, i.s) + i.oc = creator.New(detailsService, factory, store, relationSyncer, spaceService, objectCreator, i.s) i.fileSync = app.MustComponent[filesync.FileSync](a) i.notificationService = app.MustComponent[notifications.Notifications](a) i.eventSender = app.MustComponent[event.Sender](a) diff --git a/core/block/object/objectcreator/chat.go b/core/block/object/objectcreator/chat.go index 1fd9d0800..0c96cf846 100644 --- a/core/block/object/objectcreator/chat.go +++ b/core/block/object/objectcreator/chat.go @@ -28,7 +28,7 @@ func (s *service) AddChatDerivedObject(ctx context.Context, space clientspace.Sp Details: chatDetails, } - chatId, _, err = s.CreateObjectInSpace(ctx, space, chatReq) + chatId, _, err = s.createObjectInSpace(ctx, space, chatReq) if err != nil { return "", fmt.Errorf("create object: %w", err) } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index c95195898..78e2f641a 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -35,8 +35,8 @@ type ( CreateObjectAndFetch(ctx context.Context, spaceId string, details *types.Struct) (objectID string, newDetails *types.Struct, err error) } - installer interface { - InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) + objectArchiver interface { + SetIsArchived(objectId string, isArchived bool) error } ) @@ -47,14 +47,12 @@ var log = logging.Logger(CName) type Service interface { CreateObject(ctx context.Context, spaceID string, req CreateObjectRequest) (id string, details *types.Struct, err error) CreateObjectUsingObjectUniqueTypeKey(ctx context.Context, spaceID string, objectUniqueTypeKey string, req CreateObjectRequest) (id string, details *types.Struct, err error) - CreateObjectInSpace(ctx context.Context, space clientspace.Space, req CreateObjectRequest) (id string, details *types.Struct, err error) CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *types.Struct, err error) CreateSmartBlockFromStateInSpace(ctx context.Context, space clientspace.Space, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *types.Struct, err error) AddChatDerivedObject(ctx context.Context, space clientspace.Space, chatObjectId string) (chatId string, err error) - CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error - + InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) app.Component } @@ -64,7 +62,7 @@ type service struct { spaceService space.Service templateService templateService lastUsedUpdater lastused.ObjectUsageUpdater - installer installer + archiver objectArchiver } func NewCreator() Service { @@ -77,7 +75,7 @@ func (s *service) Init(a *app.App) (err error) { s.spaceService = app.MustComponent[space.Service](a) s.templateService = app.MustComponent[templateService](a) s.lastUsedUpdater = app.MustComponent[lastused.ObjectUsageUpdater](a) - s.installer = app.MustComponent[installer](a) + s.archiver = app.MustComponent[objectArchiver](a) return nil } @@ -99,7 +97,7 @@ func (s *service) CreateObject(ctx context.Context, spaceID string, req CreateOb if err != nil { return "", nil, fmt.Errorf("get space: %w", err) } - return s.CreateObjectInSpace(ctx, space, req) + return s.createObjectInSpace(ctx, space, req) } func (s *service) CreateObjectUsingObjectUniqueTypeKey( @@ -113,9 +111,9 @@ func (s *service) CreateObjectUsingObjectUniqueTypeKey( return s.CreateObject(ctx, spaceID, req) } -// CreateObjectInSpace is supposed to be called for user-initiated object creation requests +// createObjectInSpace is supposed to be called for user-initiated object creation requests // will return Restricted error in case called with types like File or Participant -func (s *service) CreateObjectInSpace( +func (s *service) createObjectInSpace( ctx context.Context, space clientspace.Space, req CreateObjectRequest, ) (id string, details *types.Struct, err error) { details = req.Details diff --git a/core/block/object/installer/bundle.go b/core/block/object/objectcreator/installer.go similarity index 74% rename from core/block/object/installer/bundle.go rename to core/block/object/objectcreator/installer.go index 9ac0ff7aa..4c99fa7f3 100644 --- a/core/block/object/installer/bundle.go +++ b/core/block/object/objectcreator/installer.go @@ -1,78 +1,37 @@ -package installer +package objectcreator import ( "context" "errors" "fmt" - "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/gogo/protobuf/types" "go.uber.org/zap" "github.com/anyproto/anytype-heart/core/block/editor/lastused" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" - "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" - "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/space" "github.com/anyproto/anytype-heart/space/clientspace" "github.com/anyproto/anytype-heart/util/pbtypes" ) -const CName = "bundle-objects-installer" - -var log = logging.Logger(CName) - -type objectArchiver interface { - SetIsArchived(objectId string, isArchived bool) error -} - -type BundleObjectInstaller interface { - InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) (ids []string, objects []*types.Struct, err error) - app.Component -} - -type objectInstaller struct { - spaceService space.Service - objectStore objectstore.ObjectStore - archiver objectArchiver - creatorService objectcreator.Service -} - -func New() BundleObjectInstaller { - return &objectInstaller{} -} - -func (i *objectInstaller) Init(a *app.App) error { - i.spaceService = app.MustComponent[space.Service](a) - i.objectStore = app.MustComponent[objectstore.ObjectStore](a) - i.archiver = app.MustComponent[objectArchiver](a) - i.creatorService = app.MustComponent[objectcreator.Service](a) - return nil -} - -func (i *objectInstaller) Name() string { - return CName -} - -func (i *objectInstaller) BundledObjectsIdsToInstall( +func (s *service) BundledObjectsIdsToInstall( ctx context.Context, space clientspace.Space, sourceObjectIds []string, ) (ids domain.BundledObjectIds, err error) { - marketplaceSpace, err := i.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) + marketplaceSpace, err := s.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) if err != nil { return nil, fmt.Errorf("get marketplace space: %w", err) } - existingObjectMap, err := i.listInstalledObjects(space, sourceObjectIds) + existingObjectMap, err := s.listInstalledObjects(space, sourceObjectIds) if err != nil { return nil, fmt.Errorf("list installed objects: %w", err) } @@ -104,7 +63,7 @@ func (i *objectInstaller) BundledObjectsIdsToInstall( return } -func (i *objectInstaller) InstallBundledObjects( +func (s *service) InstallBundledObjects( ctx context.Context, space clientspace.Space, sourceObjectIds []string, @@ -114,17 +73,17 @@ func (i *objectInstaller) InstallBundledObjects( return } - marketplaceSpace, err := i.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) + marketplaceSpace, err := s.spaceService.Get(ctx, addr.AnytypeMarketplaceWorkspace) if err != nil { return nil, nil, fmt.Errorf("get marketplace space: %w", err) } - ids, objects, err = i.reinstallBundledObjects(ctx, marketplaceSpace, space, sourceObjectIds) + ids, objects, err = s.reinstallBundledObjects(ctx, marketplaceSpace, space, sourceObjectIds) if err != nil { return nil, nil, fmt.Errorf("reinstall bundled objects: %w", err) } - existingObjectMap, err := i.listInstalledObjects(space, sourceObjectIds) + existingObjectMap, err := s.listInstalledObjects(space, sourceObjectIds) if err != nil { return nil, nil, fmt.Errorf("list installed objects: %w", err) } @@ -133,11 +92,11 @@ func (i *objectInstaller) InstallBundledObjects( if _, ok := existingObjectMap[sourceObjectId]; ok { continue } - installingDetails, err := i.prepareDetailsForInstallingObject(ctx, marketplaceSpace, space, sourceObjectId, isNewSpace) + installingDetails, err := s.prepareDetailsForInstallingObject(ctx, marketplaceSpace, space, sourceObjectId, isNewSpace) if err != nil { return nil, nil, fmt.Errorf("prepare details for installing object: %w", err) } - id, newDetails, err := i.installObject(ctx, space, installingDetails) + id, newDetails, err := s.installObject(ctx, space, installingDetails) if err != nil { return nil, nil, fmt.Errorf("install object: %w", err) } @@ -149,7 +108,7 @@ func (i *objectInstaller) InstallBundledObjects( return } -func (i *objectInstaller) installObject(ctx context.Context, space clientspace.Space, installingDetails *types.Struct) (id string, newDetails *types.Struct, err error) { +func (s *service) installObject(ctx context.Context, space clientspace.Space, installingDetails *types.Struct) (id string, newDetails *types.Struct, err error) { uk, err := domain.UnmarshalUniqueKey(pbtypes.GetString(installingDetails, bundle.RelationKeyUniqueKey.String())) if err != nil { return "", nil, fmt.Errorf("unmarshal unique key: %w", err) @@ -163,7 +122,7 @@ func (i *objectInstaller) installObject(ctx context.Context, space clientspace.S return "", nil, fmt.Errorf("unsupported object type: %s", uk.SmartblockType()) } - id, newDetails, err = i.creatorService.CreateObjectInSpace(ctx, space, objectcreator.CreateObjectRequest{ + id, newDetails, err = s.createObjectInSpace(ctx, space, CreateObjectRequest{ Details: installingDetails, ObjectTypeKey: objectTypeKey, }) @@ -176,8 +135,8 @@ func (i *objectInstaller) installObject(ctx context.Context, space clientspace.S return id, newDetails, nil } -func (i *objectInstaller) listInstalledObjects(space clientspace.Space, sourceObjectIds []string) (map[string]*types.Struct, error) { - existingObjects, err := i.objectStore.SpaceIndex(space.Id()).Query(database.Query{ +func (s *service) listInstalledObjects(space clientspace.Space, sourceObjectIds []string) (map[string]*types.Struct, error) { + existingObjects, err := s.objectStore.SpaceIndex(space.Id()).Query(database.Query{ Filters: []*model.BlockContentDataviewFilter{ { RelationKey: bundle.RelationKeySourceObject.String(), @@ -211,16 +170,16 @@ func (i *objectInstaller) listInstalledObjects(space clientspace.Space, sourceOb return existingObjectMap, nil } -func (i *objectInstaller) reinstallBundledObjects( +func (s *service) reinstallBundledObjects( ctx context.Context, sourceSpace, space clientspace.Space, sourceObjectIDs []string, ) (ids []string, objects []*types.Struct, err error) { - deletedObjects, err := i.queryDeletedObjects(space, sourceObjectIDs) + deletedObjects, err := s.queryDeletedObjects(space, sourceObjectIDs) if err != nil { return nil, nil, fmt.Errorf("query deleted objects: %w", err) } for _, rec := range deletedObjects { - id, typeKey, details, err := i.reinstallObject(ctx, sourceSpace, space, rec.Details) + id, typeKey, details, err := s.reinstallObject(ctx, sourceSpace, space, rec.Details) if err != nil { return nil, nil, err } @@ -228,7 +187,7 @@ func (i *objectInstaller) reinstallBundledObjects( ids = append(ids, id) objects = append(objects, details) - if err = i.creatorService.CreateTemplatesForObjectType(space, typeKey); err != nil { + if err = s.createTemplatesForObjectType(space, typeKey); err != nil { return nil, nil, fmt.Errorf("install templates for object type %s: %w", typeKey, err) } } @@ -236,7 +195,7 @@ func (i *objectInstaller) reinstallBundledObjects( return ids, objects, nil } -func (i *objectInstaller) reinstallObject( +func (s *service) reinstallObject( ctx context.Context, sourceSpace, space clientspace.Space, currentDetails *types.Struct, ) (id string, key domain.TypeKey, details *types.Struct, err error) { id = pbtypes.GetString(currentDetails, bundle.RelationKeyId.String()) @@ -245,7 +204,7 @@ func (i *objectInstaller) reinstallObject( isArchived = pbtypes.GetBool(currentDetails, bundle.RelationKeyIsArchived.String()) ) - installingDetails, err := i.prepareDetailsForInstallingObject(ctx, sourceSpace, space, sourceObjectId, false) + installingDetails, err := s.prepareDetailsForInstallingObject(ctx, sourceSpace, space, sourceObjectId, false) if err != nil { return "", "", nil, fmt.Errorf("prepare details for installing object: %w", err) } @@ -267,7 +226,7 @@ func (i *objectInstaller) reinstallObject( if isArchived { // we should do archive operations only via Archive object - if err = i.archiver.SetIsArchived(id, false); err != nil { + if err = s.archiver.SetIsArchived(id, false); err != nil { return "", "", nil, fmt.Errorf("failed to restore object %s (source object: %s) from bin: %w", id, sourceObjectId, err) } } @@ -275,7 +234,7 @@ func (i *objectInstaller) reinstallObject( return id, key, details, nil } -func (i *objectInstaller) prepareDetailsForInstallingObject( +func (s *service) prepareDetailsForInstallingObject( ctx context.Context, sourceSpace, spc clientspace.Space, sourceObjectId string, @@ -310,7 +269,7 @@ func (i *objectInstaller) prepareDetailsForInstallingObject( switch uk.SmartblockType() { case coresb.SmartBlockTypeBundledObjectType, coresb.SmartBlockTypeObjectType: - relationKeys, isAlreadyFilled, err := objectcreator.FillRecommendedRelations(ctx, spc, details) + relationKeys, isAlreadyFilled, err := fillRecommendedRelations(ctx, spc, details) if err != nil { return nil, fmt.Errorf("fill recommended relations: %w", err) } @@ -320,13 +279,13 @@ func (i *objectInstaller) prepareDetailsForInstallingObject( for j, key := range relationKeys { bundledRelationIds[j] = key.BundledURL() } - if _, _, err = i.InstallBundledObjects(ctx, spc, bundledRelationIds, isNewSpace); err != nil { + if _, _, err = s.InstallBundledObjects(ctx, spc, bundledRelationIds, isNewSpace); err != nil { return nil, fmt.Errorf("install recommended relations: %w", err) } } case coresb.SmartBlockTypeBundledRelation, coresb.SmartBlockTypeRelation: - if err = objectcreator.FillRelationFormatObjectTypes(ctx, spc, details); err != nil { + if err = fillRelationFormatObjectTypes(ctx, spc, details); err != nil { return nil, fmt.Errorf("fill relation format objectTypes: %w", err) } } @@ -334,12 +293,12 @@ func (i *objectInstaller) prepareDetailsForInstallingObject( return details, nil } -func (i *objectInstaller) queryDeletedObjects(space clientspace.Space, sourceObjectIDs []string) ([]database.Record, error) { +func (s *service) queryDeletedObjects(space clientspace.Space, sourceObjectIDs []string) ([]database.Record, error) { sourceList, err := pbtypes.ValueListWrapper(pbtypes.StringList(sourceObjectIDs)) if err != nil { return nil, err } - return i.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ + return s.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ database.FiltersOr{ database.FilterEq{ Key: bundle.RelationKeyLayout.String(), diff --git a/core/block/object/installer/bundle_test.go b/core/block/object/objectcreator/installer_test.go similarity index 97% rename from core/block/object/installer/bundle_test.go rename to core/block/object/objectcreator/installer_test.go index 4864f43f7..1daf7dd8a 100644 --- a/core/block/object/installer/bundle_test.go +++ b/core/block/object/objectcreator/installer_test.go @@ -1,4 +1,4 @@ -package installer +package objectcreator import ( "context" @@ -26,8 +26,6 @@ type objKey interface { BundledURL() string } -const spaceId = "spaceId" - func TestInstaller_queryDeletedObjects(t *testing.T) { // given var ( @@ -70,7 +68,7 @@ func TestInstaller_queryDeletedObjects(t *testing.T) { spc := mock_clientspace.NewMockSpace(t) spc.EXPECT().Id().Return(spaceId) - i := objectInstaller{objectStore: store} + i := service{objectStore: store} // when records, err := i.queryDeletedObjects(spc, sourceObjectIds) @@ -137,7 +135,7 @@ func TestInstaller_reinstallObject(t *testing.T) { return nil }) - i := objectInstaller{archiver: archiver} + i := service{archiver: archiver} // when id, _, newDetails, err := i.reinstallObject(nil, market, spc, oldDetails) diff --git a/core/block/object/objectcreator/mock_objectcreator/mock_Service.go b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go index 43e4a5ff0..1225a2295 100644 --- a/core/block/object/objectcreator/mock_objectcreator/mock_Service.go +++ b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go @@ -157,73 +157,6 @@ func (_c *MockService_CreateObject_Call) RunAndReturn(run func(context.Context, return _c } -// CreateObjectInSpace provides a mock function with given fields: ctx, space, req -func (_m *MockService) CreateObjectInSpace(ctx context.Context, space clientspace.Space, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { - ret := _m.Called(ctx, space, req) - - if len(ret) == 0 { - panic("no return value specified for CreateObjectInSpace") - } - - var r0 string - var r1 *types.Struct - var r2 error - if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) (string, *types.Struct, error)); ok { - return rf(ctx, space, req) - } - if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) string); ok { - r0 = rf(ctx, space, req) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) *types.Struct); ok { - r1 = rf(ctx, space, req) - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).(*types.Struct) - } - } - - if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) error); ok { - r2 = rf(ctx, space, req) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// MockService_CreateObjectInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateObjectInSpace' -type MockService_CreateObjectInSpace_Call struct { - *mock.Call -} - -// CreateObjectInSpace is a helper method to define mock.On call -// - ctx context.Context -// - space clientspace.Space -// - req objectcreator.CreateObjectRequest -func (_e *MockService_Expecter) CreateObjectInSpace(ctx interface{}, space interface{}, req interface{}) *MockService_CreateObjectInSpace_Call { - return &MockService_CreateObjectInSpace_Call{Call: _e.mock.On("CreateObjectInSpace", ctx, space, req)} -} - -func (_c *MockService_CreateObjectInSpace_Call) Run(run func(ctx context.Context, space clientspace.Space, req objectcreator.CreateObjectRequest)) *MockService_CreateObjectInSpace_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(clientspace.Space), args[2].(objectcreator.CreateObjectRequest)) - }) - return _c -} - -func (_c *MockService_CreateObjectInSpace_Call) Return(id string, details *types.Struct, err error) *MockService_CreateObjectInSpace_Call { - _c.Call.Return(id, details, err) - return _c -} - -func (_c *MockService_CreateObjectInSpace_Call) RunAndReturn(run func(context.Context, clientspace.Space, objectcreator.CreateObjectRequest) (string, *types.Struct, error)) *MockService_CreateObjectInSpace_Call { - _c.Call.Return(run) - return _c -} - // CreateObjectUsingObjectUniqueTypeKey provides a mock function with given fields: ctx, spaceID, objectUniqueTypeKey, req func (_m *MockService) CreateObjectUsingObjectUniqueTypeKey(ctx context.Context, spaceID string, objectUniqueTypeKey string, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { ret := _m.Called(ctx, spaceID, objectUniqueTypeKey, req) @@ -428,53 +361,6 @@ func (_c *MockService_CreateSmartBlockFromStateInSpace_Call) RunAndReturn(run fu return _c } -// CreateTemplatesForObjectType provides a mock function with given fields: spc, typeKey -func (_m *MockService) CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { - ret := _m.Called(spc, typeKey) - - if len(ret) == 0 { - panic("no return value specified for CreateTemplatesForObjectType") - } - - var r0 error - if rf, ok := ret.Get(0).(func(clientspace.Space, domain.TypeKey) error); ok { - r0 = rf(spc, typeKey) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockService_CreateTemplatesForObjectType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplatesForObjectType' -type MockService_CreateTemplatesForObjectType_Call struct { - *mock.Call -} - -// CreateTemplatesForObjectType is a helper method to define mock.On call -// - spc clientspace.Space -// - typeKey domain.TypeKey -func (_e *MockService_Expecter) CreateTemplatesForObjectType(spc interface{}, typeKey interface{}) *MockService_CreateTemplatesForObjectType_Call { - return &MockService_CreateTemplatesForObjectType_Call{Call: _e.mock.On("CreateTemplatesForObjectType", spc, typeKey)} -} - -func (_c *MockService_CreateTemplatesForObjectType_Call) Run(run func(spc clientspace.Space, typeKey domain.TypeKey)) *MockService_CreateTemplatesForObjectType_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(clientspace.Space), args[1].(domain.TypeKey)) - }) - return _c -} - -func (_c *MockService_CreateTemplatesForObjectType_Call) Return(_a0 error) *MockService_CreateTemplatesForObjectType_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockService_CreateTemplatesForObjectType_Call) RunAndReturn(run func(clientspace.Space, domain.TypeKey) error) *MockService_CreateTemplatesForObjectType_Call { - _c.Call.Return(run) - return _c -} - // Init provides a mock function with given fields: a func (_m *MockService) Init(a *app.App) error { ret := _m.Called(a) @@ -521,6 +407,76 @@ func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockSer return _c } +// InstallBundledObjects provides a mock function with given fields: ctx, space, sourceObjectIds, isNewSpace +func (_m *MockService) InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) ([]string, []*types.Struct, error) { + ret := _m.Called(ctx, space, sourceObjectIds, isNewSpace) + + if len(ret) == 0 { + panic("no return value specified for InstallBundledObjects") + } + + var r0 []string + var r1 []*types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)); ok { + return rf(ctx, space, sourceObjectIds, isNewSpace) + } + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) []string); ok { + r0 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]string) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, []string, bool) []*types.Struct); ok { + r1 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).([]*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, []string, bool) error); ok { + r2 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_InstallBundledObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'InstallBundledObjects' +type MockService_InstallBundledObjects_Call struct { + *mock.Call +} + +// InstallBundledObjects is a helper method to define mock.On call +// - ctx context.Context +// - space clientspace.Space +// - sourceObjectIds []string +// - isNewSpace bool +func (_e *MockService_Expecter) InstallBundledObjects(ctx interface{}, space interface{}, sourceObjectIds interface{}, isNewSpace interface{}) *MockService_InstallBundledObjects_Call { + return &MockService_InstallBundledObjects_Call{Call: _e.mock.On("InstallBundledObjects", ctx, space, sourceObjectIds, isNewSpace)} +} + +func (_c *MockService_InstallBundledObjects_Call) Run(run func(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool)) *MockService_InstallBundledObjects_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(clientspace.Space), args[2].([]string), args[3].(bool)) + }) + return _c +} + +func (_c *MockService_InstallBundledObjects_Call) Return(ids []string, objects []*types.Struct, err error) *MockService_InstallBundledObjects_Call { + _c.Call.Return(ids, objects, err) + return _c +} + +func (_c *MockService_InstallBundledObjects_Call) RunAndReturn(run func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)) *MockService_InstallBundledObjects_Call { + _c.Call.Return(run) + return _c +} + // Name provides a mock function with given fields: func (_m *MockService) Name() string { ret := _m.Called() diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 10f3828ca..29a2eb046 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -53,7 +53,7 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, object.Fields[bundle.RelationKeyRecommendedLayout.String()] = pbtypes.Int64(int64(model.ObjectType_basic)) } - keys, isAlreadyFilled, err := FillRecommendedRelations(ctx, space, object) + keys, isAlreadyFilled, err := fillRecommendedRelations(ctx, space, object) if err != nil { return "", nil, fmt.Errorf("fill recommended relations: %w", err) } @@ -75,16 +75,16 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, } installingObjectTypeKey := domain.TypeKey(uniqueKey.InternalKey()) - err = s.CreateTemplatesForObjectType(space, installingObjectTypeKey) + err = s.createTemplatesForObjectType(space, installingObjectTypeKey) if err != nil { log.With("spaceID", space.Id(), "objectTypeKey", installingObjectTypeKey).Errorf("error while installing templates: %s", err) } return id, newDetails, nil } -// FillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details +// fillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details // If these relations are already filled with correct ids, isAlreadyFilled = true is returned -func FillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *types.Struct) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { +func fillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *types.Struct) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { keys, err = getRelationKeysFromDetails(details) if err != nil { if errors.Is(err, errRecommendedRelationsAlreadyFilled) { @@ -167,11 +167,11 @@ func (s *service) installRecommendedRelations(ctx context.Context, space clients for i, key := range relationKeys { bundledRelationIds[i] = key.BundledURL() } - _, _, err := s.installer.InstallBundledObjects(ctx, space, bundledRelationIds, false) + _, _, err := s.InstallBundledObjects(ctx, space, bundledRelationIds, false) return err } -func (s *service) CreateTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { +func (s *service) createTemplatesForObjectType(spc clientspace.Space, typeKey domain.TypeKey) error { bundledTemplates, err := s.objectStore.SpaceIndex(spc.Id()).Query(database.Query{ Filters: []*model.BlockContentDataviewFilter{ { diff --git a/core/block/object/objectcreator/object_type_test.go b/core/block/object/objectcreator/object_type_test.go index 9956f2ca1..201ae40dc 100644 --- a/core/block/object/objectcreator/object_type_test.go +++ b/core/block/object/objectcreator/object_type_test.go @@ -67,7 +67,7 @@ func TestFillRecommendedRelations(t *testing.T) { }} // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) @@ -87,7 +87,7 @@ func TestFillRecommendedRelations(t *testing.T) { }} // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) @@ -126,7 +126,7 @@ func TestFillRecommendedRelations(t *testing.T) { }} // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index 0920caadc..eb132c6d9 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -54,7 +54,7 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d object.Fields[bundle.RelationKeyRelationMaxCount.String()] = pbtypes.Int64(1) } - if err = FillRelationFormatObjectTypes(ctx, space, object); err != nil { + if err = fillRelationFormatObjectTypes(ctx, space, object); err != nil { return "", nil, fmt.Errorf("failed to fill relation format object types: %w", err) } // todo: check the existence of objectTypes in space. InstallBundledObjects should be called same as for recommendedRelations on type creation @@ -66,7 +66,7 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyRelation}, createState) } -func FillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, details *types.Struct) error { +func fillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, details *types.Struct) error { objectTypes := pbtypes.GetStringList(details, bundle.RelationKeyRelationFormatObjectTypes.String()) for i, objectType := range objectTypes { diff --git a/core/block/service.go b/core/block/service.go index c593a0a21..f471ac44d 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -25,7 +25,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/history" "github.com/anyproto/anytype-heart/core/block/object/idresolver" - "github.com/anyproto/anytype-heart/core/block/object/installer" "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/block/restriction" @@ -96,7 +95,6 @@ type Service struct { restriction restriction.Service bookmark bookmarksvc.Service objectCreator objectcreator.Service - objectInstaller installer.BundleObjectInstaller templateService templateService resolver idresolver.Resolver spaceService space.Service @@ -137,7 +135,6 @@ func (s *Service) Init(a *app.App) (err error) { s.restriction = a.MustComponent(restriction.CName).(restriction.Service) s.bookmark = a.MustComponent("bookmark-importer").(bookmarksvc.Service) s.objectCreator = app.MustComponent[objectcreator.Service](a) - s.objectInstaller = app.MustComponent[installer.BundleObjectInstaller](a) s.templateService = app.MustComponent[templateService](a) s.spaceService = a.MustComponent(space.CName).(space.Service) s.fileService = app.MustComponent[files.Service](a) @@ -302,7 +299,7 @@ func (s *Service) SpaceInstallBundledObject( if err != nil { return "", nil, fmt.Errorf("get space: %w", err) } - ids, details, err := s.objectInstaller.InstallBundledObjects(ctx, spc, []string{sourceObjectId}, false) + ids, details, err := s.objectCreator.InstallBundledObjects(ctx, spc, []string{sourceObjectId}, false) if err != nil { return "", nil, err } @@ -322,7 +319,7 @@ func (s *Service) SpaceInstallBundledObjects( if err != nil { return nil, nil, fmt.Errorf("get space: %w", err) } - return s.objectInstaller.InstallBundledObjects(ctx, spc, sourceObjectIds, false) + return s.objectCreator.InstallBundledObjects(ctx, spc, sourceObjectIds, false) } func (s *Service) SpaceInitChat(ctx context.Context, spaceId string) error { diff --git a/space/mock_space/mock_Service.go b/space/mock_space/mock_Service.go index 03c2bc293..5fcaa6703 100644 --- a/space/mock_space/mock_Service.go +++ b/space/mock_space/mock_Service.go @@ -975,52 +975,6 @@ func (_c *MockService_Wait_Call) RunAndReturn(run func(context.Context, string) return _c } -// WaitPersonalSpaceMigration provides a mock function with given fields: ctx -func (_m *MockService) WaitPersonalSpaceMigration(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for WaitPersonalSpaceMigration") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockService_WaitPersonalSpaceMigration_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WaitPersonalSpaceMigration' -type MockService_WaitPersonalSpaceMigration_Call struct { - *mock.Call -} - -// WaitPersonalSpaceMigration is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockService_Expecter) WaitPersonalSpaceMigration(ctx interface{}) *MockService_WaitPersonalSpaceMigration_Call { - return &MockService_WaitPersonalSpaceMigration_Call{Call: _e.mock.On("WaitPersonalSpaceMigration", ctx)} -} - -func (_c *MockService_WaitPersonalSpaceMigration_Call) Run(run func(ctx context.Context)) *MockService_WaitPersonalSpaceMigration_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockService_WaitPersonalSpaceMigration_Call) Return(err error) *MockService_WaitPersonalSpaceMigration_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockService_WaitPersonalSpaceMigration_Call) RunAndReturn(run func(context.Context) error) *MockService_WaitPersonalSpaceMigration_Call { - _c.Call.Return(run) - return _c -} - // NewMockService creates a new instance of MockService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. func NewMockService(t interface { diff --git a/space/techspace/mock_techspace/mock_AccountObject.go b/space/techspace/mock_techspace/mock_AccountObject.go index 6ce5b07f8..4d2b3222d 100644 --- a/space/techspace/mock_techspace/mock_AccountObject.go +++ b/space/techspace/mock_techspace/mock_AccountObject.go @@ -848,51 +848,6 @@ func (_c *MockAccountObject_GetDocInfo_Call) RunAndReturn(run func() smartblock. return _c } -// GetPrivateAnalyticsId provides a mock function with given fields: -func (_m *MockAccountObject) GetPrivateAnalyticsId() string { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetPrivateAnalyticsId") - } - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// MockAccountObject_GetPrivateAnalyticsId_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPrivateAnalyticsId' -type MockAccountObject_GetPrivateAnalyticsId_Call struct { - *mock.Call -} - -// GetPrivateAnalyticsId is a helper method to define mock.On call -func (_e *MockAccountObject_Expecter) GetPrivateAnalyticsId() *MockAccountObject_GetPrivateAnalyticsId_Call { - return &MockAccountObject_GetPrivateAnalyticsId_Call{Call: _e.mock.On("GetPrivateAnalyticsId")} -} - -func (_c *MockAccountObject_GetPrivateAnalyticsId_Call) Run(run func()) *MockAccountObject_GetPrivateAnalyticsId_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockAccountObject_GetPrivateAnalyticsId_Call) Return(_a0 string) *MockAccountObject_GetPrivateAnalyticsId_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockAccountObject_GetPrivateAnalyticsId_Call) RunAndReturn(run func() string) *MockAccountObject_GetPrivateAnalyticsId_Call { - _c.Call.Return(run) - return _c -} - // GetRelationLinks provides a mock function with given fields: func (_m *MockAccountObject) GetRelationLinks() pbtypes.RelationLinks { ret := _m.Called() From ffacb5870e633c44c9ba2f3b68259e5c040e0590 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 18 Dec 2024 14:29:15 +0300 Subject: [PATCH 024/176] GO-4724 Remove template restriction from sets --- core/block/restriction/object.go | 19 ++++++++++++------- core/block/restriction/object_test.go | 6 ++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index ff5d4fc68..2574c14f8 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -35,6 +35,11 @@ var ( model.Restrictions_Blocks, model.Restrictions_LayoutChange, model.Restrictions_TypeChange, + } + objRestrictEditAndTemplate = ObjectRestrictions{ + model.Restrictions_Blocks, + model.Restrictions_LayoutChange, + model.Restrictions_TypeChange, model.Restrictions_Template, } sysTypesRestrictions = ObjectRestrictions{ @@ -61,8 +66,8 @@ var ( model.ObjectType_todo: {}, model.ObjectType_set: objRestrictEdit, model.ObjectType_collection: objRestrictEdit, - model.ObjectType_objectType: objRestrictEdit, - model.ObjectType_relation: objRestrictEdit, + model.ObjectType_objectType: objRestrictEditAndTemplate, + model.ObjectType_relation: objRestrictEditAndTemplate, model.ObjectType_file: objRestrictEditAndDuplicate, model.ObjectType_dashboard: { model.Restrictions_Details, @@ -80,14 +85,14 @@ var ( }, model.ObjectType_bookmark: {}, - model.ObjectType_relationOption: objRestrictEdit, + model.ObjectType_relationOption: objRestrictEditAndTemplate, model.ObjectType_relationOptionsList: { model.Restrictions_Template, }, model.ObjectType_participant: objRestrictAll, model.ObjectType_chat: objRestrictEditAndDuplicate, model.ObjectType_chatDerived: objRestrictEditAndDuplicate, - model.ObjectType_tag: objRestrictEdit, + model.ObjectType_tag: objRestrictEditAndTemplate, } objectRestrictionsBySBType = map[smartblock.SmartBlockType]ObjectRestrictions{ @@ -120,9 +125,9 @@ var ( smartblock.SmartBlockTypeFileObject: objRestrictEditAndDuplicate, smartblock.SmartBlockTypeArchive: objRestrictAll, smartblock.SmartBlockTypeBundledRelation: objRestrictAll, - smartblock.SmartBlockTypeSubObject: objRestrictEdit, - smartblock.SmartBlockTypeObjectType: objRestrictEdit, - smartblock.SmartBlockTypeRelation: objRestrictEdit, + smartblock.SmartBlockTypeSubObject: objRestrictEditAndTemplate, + smartblock.SmartBlockTypeObjectType: objRestrictEditAndTemplate, + smartblock.SmartBlockTypeRelation: objRestrictEditAndTemplate, smartblock.SmartBlockTypeBundledObjectType: objRestrictAll, smartblock.SmartBlockTypeBundledTemplate: objRestrictAll, smartblock.SmartBlockTypeTemplate: { diff --git a/core/block/restriction/object_test.go b/core/block/restriction/object_test.go index e225386dc..4a4c95b23 100644 --- a/core/block/restriction/object_test.go +++ b/core/block/restriction/object_test.go @@ -108,9 +108,11 @@ func TestTemplateRestriction(t *testing.T) { assert.ErrorIs(t, rs.GetRestrictions(template).Object.Check(model.Restrictions_Template), ErrRestricted) }) - t.Run("cannot make template from set or collection layout", func(t *testing.T) { + t.Run("we CAN make template from set or collection layout", func(t *testing.T) { collection := givenRestrictionHolder(coresb.SmartBlockTypePage, bundle.TypeKeyCollection) - assert.ErrorIs(t, rs.GetRestrictions(collection).Object.Check(model.Restrictions_Template), ErrRestricted) + set := givenRestrictionHolder(coresb.SmartBlockTypePage, bundle.TypeKeySet) + assert.NoError(t, rs.GetRestrictions(collection).Object.Check(model.Restrictions_Template)) + assert.NoError(t, rs.GetRestrictions(set).Object.Check(model.Restrictions_Template)) }) t.Run("cannot make template from space layout", func(t *testing.T) { From 747aac464982ba216a7781cdfcaa968664839e0a Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 18 Dec 2024 15:09:22 +0300 Subject: [PATCH 025/176] GO-4232 Exclude description from featured --- core/block/object/objectcreator/object_type.go | 9 +++++++++ core/block/object/objectcreator/object_type_test.go | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 29a2eb046..1e0280d6f 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -35,6 +35,10 @@ var ( bundle.RelationKeyLinks, } + relationsToExclude = []domain.RelationKey{ + bundle.RelationKeyDescription, + } + errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) @@ -133,6 +137,11 @@ func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, er for i, id := range bundledRelationIds { key, err := bundle.RelationKeyFromID(id) if err == nil { + // use Contains when we have more relations to exclude + // if slices.Contains(relationsToExclude, key) { + if key == bundle.RelationKeyDescription { + continue + } keys = append(keys, key) continue } diff --git a/core/block/object/objectcreator/object_type_test.go b/core/block/object/objectcreator/object_type_test.go index 201ae40dc..104930c8e 100644 --- a/core/block/object/objectcreator/object_type_test.go +++ b/core/block/object/objectcreator/object_type_test.go @@ -59,6 +59,11 @@ func TestFillRecommendedRelations(t *testing.T) { []string{bundle.RelationKeyBacklinks.BundledURL(), bundle.RelationKeyAddedDate.BundledURL(), bundle.RelationKeyCreatedDate.BundledURL()}, lo.Uniq(append([]string{bundle.RelationKeyAddedDate.URL(), bundle.RelationKeyCreatedDate.URL()}, defaultRecRelIds...)), }, + { + "exclude description", + []string{bundle.RelationKeyAssignee.BundledURL(), bundle.RelationKeyDescription.BundledURL()}, + append([]string{bundle.RelationKeyAssignee.URL()}, defaultRecRelIds...), + }, } { t.Run(fmt.Sprintf("from source: %s", tc.name), func(t *testing.T) { // given From a2ca5d05f12e7b63c22388c8900db0c99c453f71 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 18 Dec 2024 15:27:11 +0300 Subject: [PATCH 026/176] GO-4232 Fix lint --- .../block/object/objectcreator/object_type.go | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 1e0280d6f..f4441c605 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -35,9 +35,9 @@ var ( bundle.RelationKeyLinks, } - relationsToExclude = []domain.RelationKey{ - bundle.RelationKeyDescription, - } + // relationsToExclude = []domain.RelationKey{ + // bundle.RelationKeyDescription, + // } errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) @@ -119,7 +119,6 @@ func fillRecommendedRelations(ctx context.Context, spc clientspace.Space, detail } func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, error) { - var keys []domain.RelationKey bundledRelationIds := pbtypes.GetStringList(details, bundle.RelationKeyRecommendedRelations.String()) if len(bundledRelationIds) == 0 { rawRecommendedLayout := pbtypes.GetInt64(details, bundle.RelationKeyRecommendedLayout.String()) @@ -128,29 +127,29 @@ func getRelationKeysFromDetails(details *types.Struct) ([]domain.RelationKey, er if err != nil { return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) } - keys = make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) + keys := make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) for _, rel := range recommendedLayout.RequiredRelations { keys = append(keys, domain.RelationKey(rel.Key)) } - } else { - keys = make([]domain.RelationKey, 0, len(bundledRelationIds)) - for i, id := range bundledRelationIds { - key, err := bundle.RelationKeyFromID(id) - if err == nil { - // use Contains when we have more relations to exclude - // if slices.Contains(relationsToExclude, key) { - if key == bundle.RelationKeyDescription { - continue - } + return keys, nil + } + + keys := make([]domain.RelationKey, 0, len(bundledRelationIds)) + for i, id := range bundledRelationIds { + key, err := bundle.RelationKeyFromID(id) + if err == nil { + // TODO: use Contains when we have more relations to exclude + // if !slices.Contains(relationsToExclude, key) { + if key != bundle.RelationKeyDescription { keys = append(keys, key) - continue } - if i == 0 { - // if we fail to parse 1st bundled relation id, details are already filled with correct ids - return nil, errRecommendedRelationsAlreadyFilled - } - return nil, fmt.Errorf("relation key from id: %w", err) + continue } + if i == 0 { + // if we fail to parse 1st bundled relation id, details are already filled with correct ids + return nil, errRecommendedRelationsAlreadyFilled + } + return nil, fmt.Errorf("relation key from id: %w", err) } return keys, nil } From a3178d75975dcfa74db87655c6eac635bccd378c Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 19 Dec 2024 14:20:18 +0300 Subject: [PATCH 027/176] GO-4588 Resolve layout for new objects --- core/block/editor/page.go | 1 - core/block/editor/smartblock/detailsinject.go | 27 ++++++++++++++----- core/block/editor/template/template.go | 5 ++-- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index f61b16670..f7131afb3 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -174,7 +174,6 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig templates := []template.StateTransformer{ template.WithEmpty, template.WithObjectTypesAndLayout(ctx.State.ObjectTypeKeys(), layout), - template.WithLayout(layout), template.WithDefaultFeaturedRelations, template.WithFeaturedRelations, template.WithLinkFieldsMigration, diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 4ee09e074..9067bff6d 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -232,21 +232,34 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { } typeObjectId := pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyType.String()) + if typeObjectId == "" { + if currentValue := s.LocalDetails().Fields[bundle.RelationKeyResolvedLayout.String()]; currentValue != nil { + return + } + log.Errorf("failed to find id of object type") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + return + } + + if currentValue := s.LocalDetails().Fields[bundle.RelationKeyResolvedLayout.String()]; currentValue != nil { + return + } typeDetails, found := sb.lastDepDetails[typeObjectId] - if !found { - sb.CheckSubscriptions() - typeDetails, found = sb.lastDepDetails[typeObjectId] - if !found { - log.Errorf("failed to find details of type in smartblock dependencies") + if found { + rawValue = typeDetails.Details.Fields[bundle.RelationKeyRecommendedLayout.String()] + } else { + records, err := sb.objectStore.SpaceIndex(sb.SpaceID()).QueryByIds([]string{typeObjectId}) + if err != nil || len(records) != 0 { + log.Errorf("failed to query object %s: %v", typeObjectId, err) s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) return } + rawValue = records[0].Details.Fields[bundle.RelationKeyRecommendedLayout.String()] } - rawValue = typeDetails.Details.Fields[bundle.RelationKeyRecommendedLayout.String()] if rawValue == nil { - log.Errorf("failed to get recommended layout from details of type") + log.Errorf("failed to get recommended layout from details of type. Setting basic layout") s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) return } diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index d1f804a94..44d5b4114 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -98,12 +98,13 @@ var WithObjectTypesAndLayout = func(otypes []domain.TypeKey, layout model.Object otypes = s.ObjectTypeKeys() } - if !pbtypes.HasField(s.Details(), bundle.RelationKeyLayout.String()) { - s.SetDetailAndBundledRelation(bundle.RelationKeyLayout, pbtypes.Float64(float64(layout))) + if !pbtypes.HasField(s.Details(), bundle.RelationKeyResolvedLayout.String()) { + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Float64(float64(layout))) } } } +// deprecated? var WithLayout = func(layout model.ObjectTypeLayout) StateTransformer { return WithDetail(bundle.RelationKeyLayout, pbtypes.Float64(float64(layout))) } From ffd19803055eadd4b3654ea33492f9c6b4f15e35 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 19 Dec 2024 16:10:50 +0300 Subject: [PATCH 028/176] Include description fix --- .../block/object/objectcreator/object_type.go | 34 ++++++++++++------- .../object/objectcreator/object_type_test.go | 5 +++ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 519e73f18..36fcae195 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -33,6 +33,10 @@ var ( bundle.RelationKeyLinks, } + // relationsToExclude = []domain.RelationKey{ + // bundle.RelationKeyDescription, + // } + errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) @@ -113,7 +117,6 @@ func fillRecommendedRelations(ctx context.Context, spc clientspace.Space, detail } func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { - var keys []domain.RelationKey bundledRelationIds := details.GetStringList(bundle.RelationKeyRecommendedRelations) if len(bundledRelationIds) == 0 { rawRecommendedLayout := details.GetInt64(bundle.RelationKeyRecommendedLayout) @@ -122,24 +125,29 @@ func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, if err != nil { return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) } - keys = make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) + keys := make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) for _, rel := range recommendedLayout.RequiredRelations { keys = append(keys, domain.RelationKey(rel.Key)) } - } else { - keys = make([]domain.RelationKey, 0, len(bundledRelationIds)) - for i, id := range bundledRelationIds { - key, err := bundle.RelationKeyFromID(id) - if err == nil { + return keys, nil + } + + keys := make([]domain.RelationKey, 0, len(bundledRelationIds)) + for i, id := range bundledRelationIds { + key, err := bundle.RelationKeyFromID(id) + if err == nil { + // TODO: use Contains when we have more relations to exclude + // if !slices.Contains(relationsToExclude, key) { + if key != bundle.RelationKeyDescription { keys = append(keys, key) - continue } - if i == 0 { - // if we fail to parse 1st bundled relation id, details are already filled with correct ids - return nil, errRecommendedRelationsAlreadyFilled - } - return nil, fmt.Errorf("relation key from id: %w", err) + continue } + if i == 0 { + // if we fail to parse 1st bundled relation id, details are already filled with correct ids + return nil, errRecommendedRelationsAlreadyFilled + } + return nil, fmt.Errorf("relation key from id: %w", err) } return keys, nil } diff --git a/core/block/object/objectcreator/object_type_test.go b/core/block/object/objectcreator/object_type_test.go index 16bfc012c..4bfa5ffa4 100644 --- a/core/block/object/objectcreator/object_type_test.go +++ b/core/block/object/objectcreator/object_type_test.go @@ -57,6 +57,11 @@ func TestFillRecommendedRelations(t *testing.T) { []string{bundle.RelationKeyBacklinks.BundledURL(), bundle.RelationKeyAddedDate.BundledURL(), bundle.RelationKeyCreatedDate.BundledURL()}, lo.Uniq(append([]string{bundle.RelationKeyAddedDate.URL(), bundle.RelationKeyCreatedDate.URL()}, defaultRecRelIds...)), }, + { + "exclude description", + []string{bundle.RelationKeyAssignee.BundledURL(), bundle.RelationKeyDescription.BundledURL()}, + append([]string{bundle.RelationKeyAssignee.URL()}, defaultRecRelIds...), + }, } { t.Run(fmt.Sprintf("from source: %s", tc.name), func(t *testing.T) { // given From 17a0891d75712b424ca81ccd4e4430733af6acce Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 19 Dec 2024 19:54:33 +0300 Subject: [PATCH 029/176] GO-4588 Add SetRecLayout rpc WIP --- clientlibrary/service/service.pb.go | 699 +++-- core/block/detailservice/relations.go | 106 + core/block/detailservice/service.go | 1 + core/block/editor/basic/details.go | 12 + core/block/object/objectcreator/creator.go | 6 + core/relations.go | 14 + docs/proto.md | 77 + pb/commands.pb.go | 3177 ++++++++++++-------- pb/protos/commands.proto | 24 + pb/protos/service/service.proto | 1 + pb/service/service.pb.go | 698 +++-- 11 files changed, 2943 insertions(+), 1872 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 54fac1614..630a379ef 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,341 +25,343 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5340 bytes of a gzipped FileDescriptorProto + // 5361 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, - 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, - 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, - 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, - 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, - 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, - 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, - 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, - 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, - 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, - 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, - 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, - 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, - 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, - 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, - 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, - 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, - 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, - 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, - 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, - 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, - 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, - 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, - 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, - 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, - 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, - 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, - 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, - 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, - 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, - 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, - 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, - 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, - 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, - 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, - 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, - 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, - 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, - 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, - 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, - 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, - 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, - 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, - 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, - 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, - 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, - 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, - 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, - 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, - 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, - 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, - 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, - 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, - 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, - 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, - 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, - 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, - 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, - 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, - 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, - 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, - 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, - 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, - 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, - 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, - 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, - 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, - 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, - 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, - 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, - 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, - 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, - 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, - 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, - 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, - 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, - 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, - 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, - 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, - 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, - 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, - 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, - 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, - 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, - 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, - 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, - 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, - 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, - 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, - 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, - 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, - 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, - 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, - 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, - 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, - 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, - 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, - 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, - 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, - 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, - 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, - 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, - 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, - 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, - 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, - 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, - 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, - 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, - 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, - 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, - 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, - 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, - 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, - 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, - 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, - 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, - 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, - 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, - 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, - 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, - 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, - 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, - 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, - 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, - 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, - 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, - 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, - 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, - 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, - 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, - 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, - 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, - 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, - 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, - 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, - 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, - 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, - 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, - 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, - 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, - 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, - 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, - 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, - 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, - 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, - 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, - 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, - 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, - 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, - 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, - 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, - 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, - 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, - 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, - 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, - 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, - 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, - 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, - 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, - 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, - 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, - 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, - 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, - 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, - 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, - 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, - 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, - 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, - 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, - 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, - 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, - 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, - 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, - 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, - 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, - 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, - 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, - 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, - 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, - 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, - 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, - 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, - 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, - 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, - 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, - 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, - 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, - 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, - 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, - 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, - 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, - 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, - 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, - 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, - 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, - 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, - 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, - 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, - 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, - 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, - 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, - 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, - 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, - 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, - 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, - 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, - 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, - 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, - 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, - 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, - 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, - 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, - 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, - 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, - 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, - 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, - 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, - 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, - 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, - 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, - 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, - 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, - 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, - 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, - 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, - 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, - 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, - 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, - 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, - 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, - 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, - 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, - 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, - 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, - 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, - 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, - 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, - 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, - 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, - 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, - 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, - 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, - 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, - 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, - 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, - 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, - 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, - 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, - 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, - 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, - 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, - 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, - 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, - 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, - 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, - 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, - 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, - 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, - 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, - 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, - 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, - 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, - 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, - 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, - 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, - 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, - 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, - 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, - 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, - 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, - 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, - 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, - 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, - 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, - 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, - 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, - 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, - 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, - 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, - 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, - 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, - 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, - 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, - 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, - 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, - 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, - 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, - 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, - 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, - 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, - 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, - 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, - 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, - 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, - 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, - 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, - 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, - 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, - 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, - 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, - 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, - 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, - 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, - 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, - 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, - 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, - 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, - 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, - 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, - 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, - 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, - 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, - 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, - 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, - 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, - 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, - 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, - 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, - 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, - 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, - 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, - 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, - 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, - 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, + 0xff, 0x04, 0x12, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe6, 0x7f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, + 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xe4, 0xf3, 0x3b, 0xe7, 0xdc, 0xcf, 0x73, 0xcf, 0xbd, 0x75, + 0xab, 0x3a, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, + 0x4c, 0xff, 0x3b, 0x92, 0x7f, 0x1e, 0xbe, 0x15, 0xe7, 0x2b, 0xb1, 0x2a, 0xd8, 0xfb, 0xef, 0x59, + 0x72, 0xca, 0xe7, 0xf3, 0x38, 0x4f, 0xaa, 0x06, 0x79, 0xff, 0x5d, 0x2b, 0x61, 0x4b, 0x96, 0x0b, + 0xf5, 0xf7, 0xa7, 0xff, 0xf9, 0xbf, 0x83, 0xe8, 0xed, 0x9d, 0x2c, 0x65, 0xb9, 0xd8, 0x51, 0x1a, + 0xc3, 0x2f, 0xa3, 0xef, 0x6c, 0x17, 0xc5, 0x3e, 0x13, 0xaf, 0x58, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, + 0x38, 0x52, 0x0e, 0x46, 0xa7, 0xc5, 0x74, 0xb4, 0x5d, 0x14, 0x23, 0x2b, 0x1c, 0x9d, 0xb2, 0x1f, + 0x2f, 0x58, 0x25, 0xde, 0xbf, 0x17, 0x86, 0xaa, 0x82, 0xe7, 0x15, 0x1b, 0x5e, 0x44, 0xbf, 0xb2, + 0x5d, 0x14, 0x63, 0x26, 0x76, 0x59, 0x5d, 0x81, 0xb1, 0x88, 0x05, 0x1b, 0xae, 0xb5, 0x54, 0x7d, + 0xc0, 0xf8, 0x78, 0xd8, 0x0d, 0x2a, 0x3f, 0x93, 0xe8, 0xdb, 0xb5, 0x9f, 0xcb, 0x85, 0x48, 0xf8, + 0x75, 0x3e, 0xfc, 0xa0, 0xad, 0xa8, 0x44, 0xc6, 0xf6, 0xdd, 0x10, 0xa2, 0xac, 0xbe, 0x8e, 0x7e, + 0xf1, 0x75, 0x9c, 0x65, 0x4c, 0xec, 0x94, 0xac, 0x2e, 0xb8, 0xaf, 0xd3, 0x88, 0x46, 0x8d, 0xcc, + 0xd8, 0xfd, 0x30, 0xc8, 0x28, 0xc3, 0x5f, 0x46, 0xdf, 0x69, 0x24, 0xa7, 0x6c, 0xca, 0x97, 0xac, + 0x1c, 0xa2, 0x5a, 0x4a, 0x48, 0x34, 0x79, 0x0b, 0x82, 0xb6, 0x77, 0x78, 0xbe, 0x64, 0xa5, 0xc0, + 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x85, 0x94, 0xed, 0xbf, 0x1e, 0x44, 0xdf, 0xdb, 0x9e, 0x4e, 0xf9, + 0x22, 0x17, 0x87, 0x7c, 0x1a, 0x67, 0x87, 0x69, 0x7e, 0x75, 0xcc, 0xae, 0x77, 0x2e, 0x6b, 0x3e, + 0x9f, 0xb1, 0xe1, 0x33, 0xbf, 0x55, 0x1b, 0x74, 0x64, 0xd8, 0x91, 0x0b, 0x1b, 0xdf, 0x1f, 0xdf, + 0x4c, 0x49, 0x95, 0xe5, 0xef, 0x07, 0xd1, 0x2d, 0x58, 0x96, 0x31, 0xcf, 0x96, 0xcc, 0x96, 0xe6, + 0x93, 0x0e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xe9, 0x4d, 0xd5, 0x54, 0x89, 0xb2, 0xe8, 0x1d, 0x77, + 0xb8, 0x8c, 0x59, 0x25, 0xa7, 0xd3, 0x23, 0x7a, 0x44, 0x28, 0xc4, 0x78, 0x7e, 0xdc, 0x07, 0x55, + 0xde, 0xd2, 0x68, 0xa8, 0xbc, 0x65, 0xbc, 0x32, 0xce, 0x1e, 0xa2, 0x16, 0x1c, 0xc2, 0xf8, 0x7a, + 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x20, 0xfa, 0xa5, 0xd7, 0xbc, 0xbc, 0xaa, 0x8a, 0x78, 0xca, 0xd4, + 0x54, 0xb8, 0xef, 0x6b, 0x6b, 0x29, 0x9c, 0x0d, 0x0f, 0xba, 0x30, 0x67, 0xd0, 0x6a, 0xe1, 0xcb, + 0x82, 0xc1, 0x18, 0x64, 0x15, 0x6b, 0x21, 0x35, 0x68, 0x21, 0xa4, 0x6c, 0x5f, 0x45, 0x43, 0x6b, + 0xfb, 0xfc, 0x0f, 0xd9, 0x54, 0x6c, 0x27, 0x09, 0xec, 0x15, 0xab, 0x2b, 0x89, 0xd1, 0x76, 0x92, + 0x50, 0xbd, 0x82, 0xa3, 0xca, 0xd9, 0x75, 0xf4, 0x2e, 0x70, 0x76, 0x98, 0x56, 0xd2, 0xe1, 0x66, + 0xd8, 0x8a, 0xc2, 0x8c, 0xd3, 0x51, 0x5f, 0x5c, 0x39, 0xfe, 0xd3, 0x41, 0xf4, 0x5d, 0xc4, 0xf3, + 0x29, 0x9b, 0xf3, 0x25, 0x1b, 0x3e, 0xe9, 0xb6, 0xd6, 0x90, 0xc6, 0xff, 0x47, 0x37, 0xd0, 0x40, + 0x86, 0xc9, 0x98, 0x65, 0x6c, 0x2a, 0xc8, 0x61, 0xd2, 0x88, 0x3b, 0x87, 0x89, 0xc1, 0x9c, 0x19, + 0xa6, 0x85, 0xfb, 0x4c, 0xec, 0x2c, 0xca, 0x92, 0xe5, 0x82, 0xec, 0x4b, 0x8b, 0x74, 0xf6, 0xa5, + 0x87, 0x22, 0xf5, 0xd9, 0x67, 0x62, 0x3b, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c, + 0x79, 0x98, 0x46, 0xbf, 0xec, 0xb4, 0x98, 0x38, 0xc8, 0x2f, 0xf8, 0x90, 0x6e, 0x0b, 0x29, 0x37, + 0x3e, 0xd6, 0x3a, 0x39, 0xa4, 0x1a, 0x2f, 0xde, 0x14, 0xbc, 0xa4, 0xbb, 0xa5, 0x11, 0x77, 0x56, + 0xc3, 0x60, 0xca, 0xc3, 0xef, 0x47, 0x6f, 0xab, 0x28, 0xa9, 0xd7, 0xb3, 0x7b, 0x68, 0x08, 0x85, + 0x0b, 0xda, 0xfd, 0x0e, 0xca, 0x06, 0x07, 0x25, 0x53, 0xc1, 0xe7, 0x43, 0x54, 0x0f, 0x84, 0x9e, + 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x97, 0x65, 0x8c, 0xb4, 0xdd, 0x08, 0x3b, 0x6c, 0x1b, 0x48, 0xd9, + 0x2e, 0xa3, 0x5f, 0x33, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x75, 0xa2, 0xde, 0x2e, + 0x64, 0x7c, 0x6d, 0xf4, 0x83, 0x5b, 0xf5, 0x51, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0xf7, 0xc2, + 0x90, 0xb2, 0xfd, 0x37, 0x83, 0xe8, 0xfb, 0x4a, 0xf6, 0x22, 0x8f, 0xcf, 0x33, 0x26, 0x97, 0xc4, + 0x63, 0x26, 0xae, 0x79, 0x79, 0x35, 0x5e, 0xe5, 0x53, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, + 0x54, 0x72, 0x32, 0x3e, 0x55, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0xe9, 0x1a, 0x08, 0x5e, 0x50, 0x19, + 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xbb, 0x21, 0xc4, + 0x86, 0x2d, 0x3d, 0x80, 0x79, 0x7e, 0x91, 0xce, 0xce, 0x8a, 0xa4, 0x1e, 0xc6, 0x8f, 0xf0, 0x11, + 0xea, 0x20, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, 0xef, 0x6c, 0x62, 0xa4, 0xa6, 0xd2, 0x5e, 0xc9, + 0xe7, 0x87, 0x6c, 0x16, 0x4f, 0x57, 0x6a, 0xfe, 0x7f, 0x1c, 0x9a, 0x78, 0x90, 0x36, 0x85, 0xf8, + 0xe4, 0x86, 0x5a, 0xaa, 0x3c, 0xff, 0x36, 0x88, 0xee, 0xe9, 0xea, 0x5f, 0xc6, 0xf9, 0x8c, 0xa9, + 0xfe, 0x6c, 0x4a, 0xbf, 0x9d, 0x27, 0xa7, 0xac, 0x12, 0x71, 0x29, 0x86, 0x3f, 0xc0, 0x2b, 0x19, + 0xd2, 0x31, 0x65, 0xfb, 0xe1, 0x37, 0xd2, 0xb5, 0xbd, 0x3e, 0xae, 0x03, 0x9b, 0x0a, 0x01, 0x7e, + 0xaf, 0x4b, 0x09, 0x0c, 0x00, 0x77, 0x43, 0x88, 0xed, 0x75, 0x29, 0x38, 0xc8, 0x97, 0xa9, 0x60, + 0xfb, 0x2c, 0x67, 0x65, 0xbb, 0xd7, 0x1b, 0x55, 0x1f, 0x21, 0x7a, 0x9d, 0x40, 0x6d, 0xb0, 0xf1, + 0xbc, 0x99, 0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb5, 0x3c, 0x6e, 0xf4, 0x83, 0xed, 0xee, 0xce, 0xf1, + 0x79, 0xca, 0x96, 0xfc, 0x0a, 0xee, 0xee, 0x5c, 0x13, 0x0d, 0x40, 0xec, 0xee, 0x50, 0xd0, 0xae, + 0x60, 0x8e, 0x9f, 0x57, 0x29, 0xbb, 0x06, 0x2b, 0x98, 0xab, 0x5c, 0x8b, 0x89, 0x15, 0x0c, 0xc1, + 0x94, 0x87, 0xe3, 0xe8, 0x17, 0xa4, 0xf0, 0x77, 0x79, 0x9a, 0x0f, 0x6f, 0x23, 0x4a, 0xb5, 0xc0, + 0x58, 0xbd, 0x43, 0x03, 0xa0, 0xc4, 0xf5, 0x5f, 0x77, 0xe2, 0x7c, 0xca, 0x32, 0xb4, 0xc4, 0x56, + 0x1c, 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xbe, 0x8c, 0xcb, 0x34, 0x9f, + 0x0d, 0x31, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x52, 0xdc, 0x2e, 0x8a, 0xb2, + 0x0e, 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x5d, 0x36, 0xcd, 0xd2, + 0x3c, 0xe8, 0x4d, 0x21, 0x7d, 0xbc, 0x59, 0x14, 0x0c, 0xde, 0x43, 0x16, 0x2f, 0x99, 0xae, 0x19, + 0xd6, 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x58, 0xdd, + 0xc0, 0xac, 0x5e, 0xd7, 0x86, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0x54, 0xae, 0x16, 0xd1, + 0xbb, 0x52, 0x7e, 0x12, 0x97, 0x22, 0x9d, 0xa6, 0x45, 0x9c, 0xeb, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, + 0xca, 0xb8, 0xdc, 0xec, 0x49, 0x2b, 0xb7, 0xff, 0x32, 0x88, 0x3e, 0x80, 0x7e, 0x4f, 0x58, 0x39, + 0x4f, 0xe5, 0x36, 0xb2, 0x6a, 0x82, 0xf0, 0xf0, 0xb3, 0xb0, 0xd1, 0x96, 0x82, 0x29, 0xcd, 0xe7, + 0x37, 0x57, 0xb4, 0xc9, 0xd0, 0x58, 0xa5, 0xd6, 0x2f, 0xcb, 0xa4, 0x75, 0xcc, 0x32, 0xd6, 0xf9, + 0xb2, 0x14, 0x12, 0xc9, 0x50, 0x0b, 0x02, 0x33, 0xfc, 0x2c, 0xaf, 0xb4, 0x75, 0x6c, 0x86, 0x5b, + 0x71, 0x70, 0x86, 0x7b, 0x98, 0xf2, 0xf0, 0x7b, 0x51, 0xd4, 0x6c, 0xb6, 0xe4, 0x86, 0xd8, 0x8f, + 0x39, 0x6a, 0x17, 0xe6, 0xed, 0x86, 0x3f, 0x08, 0x10, 0x76, 0xa1, 0x6b, 0xfe, 0x2e, 0xf7, 0xf9, + 0x43, 0x54, 0x43, 0x8a, 0x88, 0x85, 0x0e, 0x20, 0xb0, 0xa0, 0xe3, 0x4b, 0x7e, 0x8d, 0x17, 0xb4, + 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0xf2, 0xa6, 0x0a, 0x8a, 0x9d, 0xbc, 0xe9, 0x62, 0x84, 0x4e, + 0xde, 0x20, 0xa3, 0x0c, 0xf3, 0xe8, 0x57, 0x5d, 0xc3, 0xcf, 0x39, 0xbf, 0x9a, 0xc7, 0xe5, 0xd5, + 0xf0, 0x31, 0xad, 0xac, 0x19, 0xe3, 0x68, 0xbd, 0x17, 0x6b, 0x83, 0x9a, 0xeb, 0xb0, 0x4e, 0x93, + 0xce, 0xca, 0x0c, 0x04, 0x35, 0xcf, 0x86, 0x42, 0x88, 0xa0, 0x46, 0xa0, 0x76, 0x54, 0xba, 0xde, + 0xc6, 0x0c, 0xee, 0xf5, 0x3c, 0xf5, 0x31, 0xa3, 0xf6, 0x7a, 0x08, 0x06, 0x87, 0xd0, 0x7e, 0x19, + 0x17, 0x97, 0xf8, 0x10, 0x92, 0xa2, 0xf0, 0x10, 0xd2, 0x08, 0xec, 0xef, 0x31, 0x8b, 0xcb, 0xe9, + 0x25, 0xde, 0xdf, 0x8d, 0x2c, 0xdc, 0xdf, 0x86, 0x81, 0xfd, 0xdd, 0x08, 0x5e, 0xa7, 0xe2, 0xf2, + 0x88, 0x89, 0x18, 0xef, 0x6f, 0x9f, 0x09, 0xf7, 0x77, 0x8b, 0xb5, 0x79, 0x98, 0xeb, 0x70, 0xbc, + 0x38, 0xaf, 0xa6, 0x65, 0x7a, 0xce, 0x86, 0x01, 0x2b, 0x06, 0x22, 0xf2, 0x30, 0x12, 0x56, 0x3e, + 0x7f, 0x3a, 0x88, 0x6e, 0xeb, 0x6e, 0xe7, 0x55, 0xa5, 0x62, 0x9e, 0xef, 0xfe, 0x13, 0xbc, 0x7f, + 0x09, 0x9c, 0x38, 0x0b, 0xed, 0xa1, 0xe6, 0xac, 0x09, 0x78, 0x91, 0xce, 0xf2, 0xca, 0x14, 0xea, + 0xb3, 0x3e, 0xd6, 0x1d, 0x05, 0x62, 0x4d, 0xe8, 0xa5, 0x68, 0x97, 0x63, 0xd5, 0x3f, 0x5a, 0x76, + 0x90, 0x54, 0x60, 0x39, 0xd6, 0xed, 0xed, 0x10, 0xc4, 0x72, 0x8c, 0x93, 0x70, 0x28, 0xec, 0x97, + 0x7c, 0x51, 0x54, 0x1d, 0x43, 0x01, 0x40, 0xe1, 0xa1, 0xd0, 0x86, 0x95, 0xcf, 0x37, 0xd1, 0xaf, + 0xbb, 0xc3, 0xcf, 0x6d, 0xec, 0x4d, 0x7a, 0x4c, 0x61, 0x4d, 0x3c, 0xea, 0x8b, 0xdb, 0x84, 0x54, + 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0x1f, 0xe0, 0x36, 0xb4, 0x9c, 0x48, 0x48, 0x31, + 0x0e, 0xc6, 0xb7, 0xdd, 0x45, 0x91, 0xa5, 0xd3, 0xf6, 0x49, 0xb4, 0xd2, 0x35, 0xe2, 0x70, 0x7c, + 0x73, 0x31, 0x18, 0xaf, 0xeb, 0x25, 0x5f, 0xfe, 0x67, 0xb2, 0x2a, 0x18, 0x1e, 0xaf, 0x3d, 0x24, + 0x1c, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x66, 0xe2, 0x30, 0x5e, 0xf1, 0x05, 0x11, 0xaf, 0x8d, 0x38, + 0x5c, 0x1f, 0x17, 0xb3, 0x39, 0xa1, 0xf1, 0x70, 0x90, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, + 0xb3, 0x6a, 0x48, 0xc4, 0x18, 0x9f, 0x22, 0x72, 0x42, 0x9a, 0x46, 0x9a, 0xf1, 0xa0, 0xda, 0x8b, + 0x97, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46, 0x0f, 0x45, 0xbd, 0x6d, 0x97, 0xd3, + 0xcb, 0x74, 0xc9, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6, 0xa0, 0x48, 0xa7, 0x8d, 0xf9, 0xa2, + 0x9c, 0x32, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x79, 0xf8, 0x8b, 0x41, 0xf4, 0x1b, + 0x8d, 0xd4, 0x3d, 0x1e, 0xde, 0x8d, 0xab, 0xcb, 0x73, 0x1e, 0x97, 0xc9, 0xf0, 0x23, 0xcc, 0x0e, + 0x8a, 0x1a, 0xd7, 0x4f, 0x6f, 0xa2, 0x02, 0x9b, 0xf5, 0x30, 0xad, 0x9c, 0x19, 0x87, 0x36, 0xab, + 0x87, 0x84, 0x9b, 0x15, 0xa2, 0x30, 0x80, 0x48, 0x79, 0x73, 0x14, 0xf3, 0x80, 0xd4, 0xf7, 0xcf, + 0x63, 0xd6, 0x3a, 0x39, 0x18, 0x1f, 0x6b, 0xa1, 0x3f, 0x5a, 0x36, 0x29, 0x1b, 0xf8, 0x88, 0x19, + 0xf5, 0xc5, 0x49, 0xcf, 0x66, 0x56, 0x84, 0x3d, 0xb7, 0x66, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0x76, + 0xc2, 0x5a, 0xc8, 0x33, 0x12, 0xda, 0x46, 0x7d, 0x71, 0x98, 0x7d, 0x29, 0x46, 0xaf, 0x0b, 0x8f, + 0x03, 0x76, 0xe0, 0xda, 0xb0, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x6a, 0x10, 0x7d, 0xcf, 0x7a, 0x3c, + 0xe2, 0x49, 0x7a, 0xb1, 0x6a, 0xa0, 0x57, 0x71, 0xb6, 0x60, 0xd5, 0xf0, 0x29, 0x65, 0xad, 0xcd, + 0x9a, 0x12, 0x3c, 0xbb, 0x91, 0x0e, 0x9c, 0x3b, 0xdb, 0x45, 0x91, 0xad, 0x26, 0x6c, 0x5e, 0x64, + 0xe4, 0xdc, 0xf1, 0x90, 0xf0, 0xdc, 0x81, 0x28, 0xcc, 0xca, 0x27, 0xbc, 0xce, 0xf9, 0xd1, 0xac, + 0x5c, 0x8a, 0xc2, 0x59, 0xb9, 0x46, 0x60, 0xae, 0x34, 0xe1, 0x3b, 0x3c, 0xcb, 0xd8, 0x54, 0xb4, + 0x1f, 0x31, 0x1b, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xd3, 0x18, 0xbd, 0x87, 0x8c, 0x4b, + 0xf6, 0x7c, 0x75, 0x98, 0xe6, 0x57, 0x43, 0x3c, 0x2d, 0xb0, 0x00, 0x71, 0x1a, 0x83, 0x82, 0x70, + 0xaf, 0x7a, 0x96, 0x27, 0x1c, 0xdf, 0xab, 0xd6, 0x92, 0xf0, 0x5e, 0x55, 0x11, 0xd0, 0xe4, 0x29, + 0xa3, 0x4c, 0xd6, 0x92, 0xb0, 0x49, 0x45, 0x60, 0xa1, 0x50, 0x9d, 0xd9, 0x93, 0xa1, 0x10, 0x9c, + 0xd2, 0xaf, 0x75, 0x72, 0x70, 0x84, 0xea, 0x4d, 0xeb, 0x1e, 0x13, 0xd3, 0x4b, 0x7c, 0x84, 0x7a, + 0x48, 0x78, 0x84, 0x42, 0x14, 0x56, 0x69, 0xc2, 0xcd, 0xa6, 0xfb, 0x01, 0x3e, 0x3e, 0x5a, 0x1b, + 0xee, 0xb5, 0x4e, 0x0e, 0x6e, 0x23, 0x0f, 0xe6, 0xb2, 0xcd, 0xd0, 0x41, 0xde, 0xc8, 0xc2, 0xdb, + 0x48, 0xc3, 0xc0, 0xd2, 0x37, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, + 0x9c, 0xfc, 0x93, 0xd9, 0xc6, 0x35, 0xd2, 0x63, 0x5e, 0xcf, 0x91, 0x57, 0x71, 0x96, 0x26, 0xb1, + 0x60, 0x13, 0x7e, 0xc5, 0x72, 0x7c, 0xc7, 0xa4, 0x4a, 0xdb, 0xf0, 0x23, 0x4f, 0x21, 0xbc, 0x63, + 0x0a, 0x2b, 0xc2, 0x71, 0xd2, 0xd0, 0x67, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0x78, + 0x9c, 0x40, 0x14, 0xe6, 0xab, 0x8d, 0xfc, 0xc5, 0x9b, 0x82, 0x95, 0x29, 0xcb, 0xa7, 0x0c, 0xcf, + 0x57, 0x21, 0x15, 0xce, 0x57, 0x11, 0x1a, 0xee, 0xd5, 0x76, 0x63, 0xc1, 0x9e, 0xaf, 0x26, 0xe9, + 0x9c, 0x55, 0x22, 0x9e, 0x17, 0xf8, 0x5e, 0x0d, 0x40, 0xe1, 0xbd, 0x5a, 0x1b, 0x6e, 0x1d, 0x0d, + 0x99, 0x80, 0xd8, 0xbe, 0x99, 0x02, 0x89, 0xc0, 0xcd, 0x14, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, + 0x70, 0xb8, 0x65, 0x25, 0x78, 0x38, 0x4c, 0xd3, 0xad, 0x03, 0x37, 0xc3, 0x8c, 0xeb, 0xa9, 0xd9, + 0x51, 0xf4, 0xb1, 0x3b, 0x45, 0xd7, 0x7b, 0xb1, 0xf8, 0x09, 0xdf, 0x29, 0xcb, 0x62, 0xb9, 0x6c, + 0x05, 0x8e, 0xd1, 0x34, 0xd3, 0xe7, 0x84, 0xcf, 0x61, 0x95, 0xc3, 0x3f, 0x1b, 0x44, 0xef, 0x63, + 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, 0x5b, 0x0d, 0x49, 0x5c, 0xbd, 0x09, 0x6b, 0xa8, 0x32, + 0xfc, 0x51, 0xf4, 0x9e, 0x16, 0xd9, 0x9b, 0x39, 0xaa, 0x00, 0x7e, 0xd2, 0x66, 0xca, 0x0f, 0x39, + 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xf7, 0x43, 0x7e, 0xb9, 0x2a, 0xb0, 0x1f, 0x32, 0x36, 0x94, 0x98, + 0xd8, 0x0f, 0x21, 0x98, 0x9d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa7, 0xe2, 0x52, 0xe6, 0x5b, 0x60, 0x76, + 0x7a, 0x65, 0x35, 0x10, 0x31, 0x3b, 0x49, 0x18, 0x66, 0x24, 0x1a, 0xac, 0xe7, 0x26, 0x16, 0xcb, + 0x8d, 0x21, 0x77, 0x66, 0x3e, 0xec, 0x06, 0xe1, 0x78, 0xd5, 0x62, 0xb5, 0xf5, 0x79, 0x1c, 0xb2, + 0x00, 0xb6, 0x3f, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0x4f, 0xa2, 0xef, 0xb6, 0x2a, 0xb6, 0xc7, 0x62, + 0xb1, 0x28, 0x59, 0x32, 0xdc, 0xea, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0x27, 0xfd, 0x15, 0x5a, 0x39, + 0xba, 0xe6, 0x9a, 0x61, 0x65, 0xca, 0xf0, 0x34, 0x64, 0xd2, 0x67, 0x83, 0x39, 0x3a, 0xad, 0xd3, + 0xda, 0x66, 0xbb, 0xa3, 0x6b, 0x7b, 0x19, 0xa7, 0x99, 0x7c, 0x48, 0xf7, 0x51, 0xc8, 0xa8, 0x87, + 0x06, 0xb7, 0xd9, 0xa4, 0x4a, 0x2b, 0x32, 0xcb, 0x39, 0xee, 0x6c, 0xcf, 0x36, 0xe8, 0x48, 0x80, + 0xec, 0xce, 0x36, 0x7b, 0xd2, 0xca, 0xad, 0xd0, 0x4b, 0x5e, 0xfd, 0x67, 0x77, 0x90, 0x63, 0x5e, + 0x95, 0x2a, 0x32, 0xd2, 0x37, 0x7b, 0xd2, 0xca, 0xeb, 0x1f, 0x47, 0xef, 0xb5, 0xbd, 0xaa, 0x85, + 0x68, 0xab, 0xd3, 0x14, 0x58, 0x8b, 0x9e, 0xf4, 0x57, 0x50, 0xee, 0xff, 0xd5, 0x9c, 0x4b, 0x37, + 0xfe, 0xa7, 0x7c, 0x3e, 0x67, 0x79, 0xc2, 0x12, 0xad, 0x51, 0xd5, 0xfb, 0xa7, 0xcf, 0x69, 0xbb, + 0x46, 0x61, 0xe4, 0x6a, 0x98, 0x12, 0xfd, 0xe6, 0x37, 0xd0, 0x54, 0x45, 0xfb, 0x8f, 0x41, 0xf4, + 0x08, 0x2d, 0x9a, 0x1e, 0xb8, 0x5e, 0x11, 0x7f, 0xa7, 0x8f, 0x23, 0x4c, 0xd3, 0x14, 0x75, 0xfb, + 0xff, 0x61, 0xc1, 0xb9, 0x83, 0x8d, 0x16, 0xb9, 0x39, 0x85, 0xac, 0xcb, 0xf9, 0x49, 0x1f, 0x2f, + 0x06, 0x0f, 0x3e, 0x77, 0x08, 0xaa, 0xd9, 0x2d, 0xeb, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, + 0xf2, 0x6b, 0xfd, 0x46, 0x83, 0x1f, 0x8d, 0x15, 0x30, 0x72, 0x08, 0x62, 0xcb, 0x8a, 0x93, 0x2d, + 0x57, 0xf6, 0xcd, 0x87, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xae, 0x45, 0xba, 0x56, + 0xf6, 0x35, 0x8d, 0x35, 0xbc, 0xa8, 0xed, 0x57, 0x35, 0x1e, 0x76, 0x83, 0x36, 0x23, 0x55, 0xe2, + 0xdd, 0xf4, 0xe2, 0xc2, 0xd4, 0x09, 0x2f, 0xa9, 0x8b, 0x10, 0x19, 0x29, 0x81, 0xda, 0x4d, 0xd5, + 0x5e, 0x9a, 0x31, 0xf9, 0xc4, 0xe6, 0xe5, 0xc5, 0x45, 0xc6, 0xe3, 0x04, 0x6c, 0xaa, 0x6a, 0xf1, + 0xc8, 0x95, 0x13, 0x9b, 0x2a, 0x8c, 0xb3, 0x77, 0x00, 0x6a, 0x69, 0x3d, 0x6c, 0xf2, 0x69, 0x9a, + 0xc1, 0x0b, 0x9e, 0x52, 0xd3, 0x08, 0x89, 0x3b, 0x00, 0x2d, 0xc8, 0x26, 0x3e, 0xb5, 0xa8, 0x0e, + 0xeb, 0xba, 0xfc, 0xf7, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x7c, 0x10, 0xcc, 0x9e, 0x2d, 0xd4, 0xc2, + 0xb3, 0x42, 0x1a, 0xbf, 0xd3, 0xd6, 0x6a, 0x24, 0xc4, 0xd9, 0x82, 0x4f, 0xd8, 0x3d, 0x72, 0xfd, + 0xf7, 0x5d, 0x7e, 0x9d, 0x4b, 0xa3, 0x77, 0xdb, 0x2a, 0x5a, 0x46, 0xec, 0x91, 0x21, 0xa3, 0x0c, + 0xff, 0x28, 0xfa, 0x79, 0x69, 0xb8, 0xe4, 0xc5, 0xf0, 0x16, 0xa2, 0x50, 0x3a, 0x77, 0x31, 0x6f, + 0x93, 0x72, 0x7b, 0xa5, 0xd8, 0x8c, 0x8d, 0xb3, 0x2a, 0x9e, 0xb1, 0xe1, 0x3d, 0xa2, 0xc7, 0xa5, + 0x94, 0xb8, 0x52, 0xdc, 0xa6, 0xfc, 0x51, 0x71, 0xcc, 0x13, 0x65, 0x1d, 0xa9, 0xa1, 0x11, 0x86, + 0x46, 0x85, 0x0b, 0xd9, 0x64, 0xf5, 0x38, 0x5e, 0xa6, 0x33, 0x93, 0x50, 0x34, 0xd1, 0xab, 0x02, + 0xc9, 0xaa, 0x65, 0x46, 0x0e, 0x44, 0x24, 0xab, 0x24, 0xac, 0x7c, 0xfe, 0xe3, 0x20, 0xba, 0x63, + 0x99, 0x7d, 0x7d, 0x1a, 0x7b, 0x90, 0x5f, 0xf0, 0x3a, 0xb5, 0x3d, 0x4c, 0xf3, 0xab, 0x6a, 0xf8, + 0x29, 0x65, 0x12, 0xe7, 0x4d, 0x51, 0x3e, 0xbb, 0xb1, 0x9e, 0xdd, 0x95, 0xe8, 0xa3, 0x4a, 0x7b, + 0x5f, 0xa1, 0xd1, 0x00, 0xbb, 0x12, 0x73, 0xa2, 0x09, 0x39, 0x62, 0x57, 0x12, 0xe2, 0x6d, 0x17, + 0x1b, 0xe7, 0x19, 0xcf, 0x61, 0x17, 0x5b, 0x0b, 0xb5, 0x90, 0xe8, 0xe2, 0x16, 0x64, 0xe3, 0xb1, + 0x16, 0x35, 0xa7, 0x6a, 0xdb, 0x59, 0x06, 0xe2, 0xb1, 0x51, 0x35, 0x00, 0x11, 0x8f, 0x51, 0x50, + 0xf9, 0x39, 0x8d, 0xbe, 0x5d, 0x37, 0xe9, 0x49, 0xc9, 0x96, 0x29, 0x83, 0x57, 0x6b, 0x1c, 0x09, + 0x31, 0xff, 0x7d, 0xc2, 0xce, 0xac, 0xb3, 0xbc, 0x2a, 0xb2, 0xb8, 0xba, 0x54, 0x97, 0x2d, 0xfc, + 0x3a, 0x6b, 0x21, 0xbc, 0x6e, 0x71, 0xbf, 0x83, 0xb2, 0x41, 0x5d, 0xcb, 0x4c, 0x88, 0x79, 0x80, + 0xab, 0xb6, 0xc2, 0xcc, 0x5a, 0x27, 0x67, 0x9f, 0x68, 0xec, 0xc7, 0x59, 0xc6, 0xca, 0x95, 0x96, + 0x1d, 0xc5, 0x79, 0x7a, 0xc1, 0x2a, 0x01, 0x9e, 0x68, 0x28, 0x6a, 0x04, 0x31, 0xe2, 0x89, 0x46, + 0x00, 0xb7, 0xbb, 0x35, 0xe0, 0xf9, 0x20, 0x4f, 0xd8, 0x1b, 0xb0, 0x5b, 0x83, 0x76, 0x24, 0x43, + 0xec, 0xd6, 0x28, 0xd6, 0x9e, 0xec, 0x3f, 0xcf, 0xf8, 0xf4, 0x4a, 0x2d, 0x01, 0x7e, 0x07, 0x4b, + 0x09, 0x5c, 0x03, 0xee, 0x86, 0x10, 0xbb, 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xb2, 0x78, 0x0a, 0xef, + 0x57, 0x35, 0x3a, 0x4a, 0x46, 0x2c, 0x02, 0x90, 0x01, 0xc5, 0x55, 0xf7, 0xb6, 0xb0, 0xe2, 0x82, + 0x6b, 0x5b, 0x77, 0x43, 0x88, 0x5d, 0x06, 0xa5, 0x60, 0x5c, 0x64, 0xa9, 0x00, 0xd3, 0xa0, 0xd1, + 0x90, 0x12, 0x62, 0x1a, 0xf8, 0x04, 0x30, 0x79, 0xc4, 0xca, 0x19, 0x43, 0x4d, 0x4a, 0x49, 0xd0, + 0xa4, 0x26, 0xec, 0x25, 0xe2, 0xa6, 0xee, 0xbc, 0x58, 0x81, 0x4b, 0xc4, 0xaa, 0x5a, 0xbc, 0x58, + 0x11, 0x97, 0x88, 0x3d, 0x00, 0x14, 0xf1, 0x24, 0xae, 0x04, 0x5e, 0x44, 0x29, 0x09, 0x16, 0x51, + 0x13, 0x76, 0x8d, 0x6e, 0x8a, 0xb8, 0x10, 0x60, 0x8d, 0x56, 0x05, 0x70, 0x6e, 0x18, 0xdc, 0x26, + 0xe5, 0x36, 0x92, 0x34, 0xbd, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, 0xa4, 0x02, 0x91, 0x44, 0xb5, 0xbb, + 0x96, 0x12, 0x91, 0xa4, 0x4d, 0x81, 0xa1, 0xa4, 0x9e, 0x7f, 0x60, 0xb5, 0x03, 0x8f, 0x3e, 0xee, + 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, 0xe2, 0xb2, 0x4c, 0xeb, 0xc5, 0xff, 0x01, 0x5e, 0x20, + 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x0c, + 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x11, 0x39, 0xd6, 0x9a, 0xc8, 0x13, 0xf2, 0x07, 0x5d, 0x98, + 0xf3, 0x92, 0x8f, 0x71, 0x71, 0xc4, 0x97, 0x6c, 0xc2, 0x5f, 0xbc, 0x49, 0x2b, 0x91, 0xe6, 0x33, + 0xb5, 0x72, 0x3f, 0x23, 0x2c, 0x61, 0x30, 0xf1, 0x92, 0x4f, 0xa7, 0x92, 0x4d, 0x20, 0x40, 0x59, + 0x8e, 0xd9, 0x35, 0x9a, 0x40, 0x40, 0x8b, 0x86, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xcf, 0xc9, 0x8c, + 0x73, 0xf5, 0x26, 0xf4, 0x84, 0xeb, 0x5c, 0x8e, 0xb2, 0x06, 0x41, 0xe2, 0xa8, 0x22, 0xa8, 0x60, + 0xf7, 0x97, 0xc6, 0xbf, 0x9d, 0x62, 0x0f, 0x09, 0x3b, 0xed, 0x69, 0xf6, 0xa8, 0x07, 0x89, 0xb8, + 0xb2, 0xf7, 0x3c, 0x28, 0x57, 0xed, 0x6b, 0x1e, 0x8f, 0x7a, 0x90, 0xce, 0x99, 0x9b, 0x5b, 0xad, + 0xe7, 0xf1, 0xf4, 0x6a, 0x56, 0xf2, 0x45, 0x9e, 0xec, 0xf0, 0x8c, 0x97, 0xe0, 0xcc, 0xcd, 0x2b, + 0x35, 0x40, 0x89, 0x33, 0xb7, 0x0e, 0x15, 0x9b, 0xc1, 0xb9, 0xa5, 0xd8, 0xce, 0xd2, 0x19, 0xdc, + 0x51, 0x7b, 0x86, 0x24, 0x40, 0x64, 0x70, 0x28, 0x88, 0x0c, 0xa2, 0x66, 0xc7, 0x2d, 0xd2, 0x69, + 0x9c, 0x35, 0xfe, 0xb6, 0x68, 0x33, 0x1e, 0xd8, 0x39, 0x88, 0x10, 0x05, 0xa4, 0x9e, 0x93, 0x45, + 0x99, 0x1f, 0xe4, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67, 0x3d, 0x1d, 0x10, 0x84, 0xd5, 0x09, 0x7b, + 0x53, 0x97, 0xa6, 0xfe, 0x07, 0x0b, 0xab, 0xf5, 0xdf, 0x47, 0x4a, 0x1e, 0x0a, 0xab, 0x80, 0x03, + 0x95, 0x51, 0x4e, 0x9a, 0x01, 0x13, 0xd0, 0xf6, 0x87, 0xc9, 0xc3, 0x6e, 0x10, 0xf7, 0x33, 0x16, + 0xab, 0x8c, 0x85, 0xfc, 0x48, 0xa0, 0x8f, 0x1f, 0x0d, 0xda, 0xe3, 0x16, 0xaf, 0x3e, 0x97, 0x6c, + 0x7a, 0xd5, 0xba, 0xb6, 0xe6, 0x17, 0xb4, 0x41, 0x88, 0xe3, 0x16, 0x02, 0xc5, 0xbb, 0xe8, 0x60, + 0xca, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4, 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x35, 0x32, + 0x9b, 0x6e, 0x5a, 0x27, 0x2c, 0xb8, 0x10, 0xb1, 0xf9, 0x25, 0x61, 0x9b, 0x93, 0x43, 0x9f, 0x47, + 0xed, 0x3b, 0xfd, 0x2d, 0x2b, 0x47, 0xf4, 0x9d, 0x7e, 0x8a, 0xa5, 0x2b, 0xd9, 0x8c, 0x91, 0x0e, + 0x2b, 0xfe, 0x38, 0xd9, 0xe8, 0x07, 0xdb, 0x2d, 0x8f, 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, + 0xdd, 0x0c, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0, 0x20, 0x84, 0x79, 0x9e, 0x77, 0x78, 0x2e, + 0x58, 0x2e, 0xb0, 0x10, 0xe6, 0x1b, 0x53, 0x60, 0x28, 0x84, 0x51, 0x0a, 0x60, 0xdc, 0xca, 0xf3, + 0x20, 0x26, 0x8e, 0xe3, 0x39, 0x9a, 0xb1, 0x35, 0x67, 0x3d, 0x8d, 0x3c, 0x34, 0x6e, 0x01, 0xe7, + 0x3c, 0xc4, 0x75, 0xbd, 0x4c, 0xe2, 0x72, 0x66, 0x4e, 0x37, 0x92, 0xe1, 0x13, 0xda, 0x8e, 0x4f, + 0x12, 0x0f, 0x71, 0xc3, 0x1a, 0x20, 0xec, 0x1c, 0xcc, 0xe3, 0x99, 0xa9, 0x29, 0x52, 0x03, 0x29, + 0x6f, 0x55, 0xf5, 0x61, 0x37, 0x08, 0xfc, 0xbc, 0x4a, 0x13, 0xc6, 0x03, 0x7e, 0xa4, 0xbc, 0x8f, + 0x1f, 0x08, 0x82, 0xec, 0xad, 0xae, 0x77, 0xb3, 0xa3, 0xdb, 0xce, 0x13, 0xb5, 0x8f, 0x1d, 0x11, + 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8e, 0xea, 0x03, 0xda, 0xd0, 0x1c, 0x35, 0xe7, + 0xaf, 0x7d, 0xe6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x51, 0x73, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, + 0xbf, 0x4a, 0xd9, 0xb5, 0xda, 0x08, 0x23, 0xf5, 0xd5, 0xd4, 0x48, 0xbe, 0x8a, 0x0a, 0x76, 0xc5, + 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xb5, 0x43, 0xe8, 0xf4, 0x0d, 0xb6, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, + 0x6f, 0xf5, 0x8e, 0x7b, 0xa7, 0x6f, 0xf0, 0xa2, 0xfb, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x73, 0x3d, + 0x71, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x15, 0xe9, 0x92, 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, + 0x74, 0x92, 0x56, 0x71, 0x3e, 0x8c, 0x84, 0x95, 0xe2, 0x84, 0x57, 0xa9, 0xbc, 0x84, 0xf1, 0xac, + 0x87, 0x51, 0x0d, 0x87, 0x36, 0x4d, 0x21, 0x25, 0xfb, 0x38, 0xd9, 0x43, 0xed, 0x2d, 0xf5, 0x8d, + 0x80, 0xbd, 0xf6, 0x65, 0xf5, 0xcd, 0x9e, 0xb4, 0x7d, 0xb0, 0xeb, 0x31, 0xee, 0x13, 0xe5, 0x50, + 0xaf, 0xa2, 0x0f, 0x95, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0xff, 0x52, 0xef, 0x2b, 0xa0, 0x7f, 0x35, + 0x09, 0x9e, 0xf6, 0xb1, 0x08, 0x26, 0xc2, 0xb3, 0x1b, 0xe9, 0xa8, 0x82, 0xfc, 0xad, 0xde, 0x40, + 0x6b, 0x54, 0xbe, 0xab, 0x23, 0xdf, 0xed, 0x54, 0x73, 0x22, 0xd4, 0xad, 0x16, 0x86, 0x33, 0xe3, + 0x93, 0x1b, 0x6a, 0x39, 0x8f, 0x68, 0x3d, 0x58, 0xbd, 0x53, 0xea, 0x94, 0x27, 0x64, 0xd9, 0xa1, + 0x61, 0x81, 0x3e, 0xbd, 0xa9, 0x1a, 0x35, 0x57, 0x1c, 0x58, 0x7e, 0x75, 0xe3, 0x59, 0x4f, 0xc3, + 0xde, 0x77, 0x38, 0x3e, 0xbe, 0x99, 0x92, 0x2a, 0xcb, 0xbf, 0x0f, 0xa2, 0xfb, 0x1e, 0x6b, 0x9f, + 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x06, 0xec, 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xf5, 0xcd, 0x94, 0xed, + 0x37, 0xa5, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c, 0x7f, 0x53, 0xca, 0xb7, 0xdb, 0x50, 0x23, + 0xfa, 0x9b, 0x52, 0x01, 0xdc, 0xf9, 0xa6, 0x14, 0xe2, 0x19, 0xfd, 0xa6, 0x14, 0x6a, 0x2d, 0xf8, + 0x4d, 0xa9, 0xb0, 0x06, 0x15, 0xde, 0x75, 0x11, 0x9a, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, + 0xa7, 0x37, 0x51, 0x21, 0x16, 0xb8, 0x86, 0x93, 0xf7, 0x18, 0x7b, 0xb4, 0xa9, 0x77, 0x97, 0x71, + 0xab, 0x37, 0xaf, 0x7c, 0xff, 0x58, 0xed, 0x6e, 0x4c, 0x38, 0xe7, 0xa5, 0xfc, 0x9e, 0xd8, 0x7a, + 0x28, 0x3c, 0xd7, 0x16, 0xdc, 0x9e, 0xdf, 0xe8, 0x07, 0x13, 0xd5, 0xad, 0x09, 0xd5, 0xe9, 0xa3, + 0x2e, 0x43, 0xa0, 0xcb, 0xb7, 0x7a, 0xf3, 0xc4, 0x32, 0xd2, 0xf8, 0x6e, 0x7a, 0xbb, 0x87, 0x31, + 0xbf, 0xaf, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0x97, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xec, + 0x32, 0x35, 0xf6, 0xba, 0x79, 0xd4, 0x17, 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x95, 0x40, 0xa0, + 0xcb, 0xe8, 0xc7, 0x37, 0x53, 0x52, 0x65, 0xf9, 0x87, 0x41, 0x74, 0x9b, 0x2c, 0x8b, 0x1a, 0x07, + 0x9f, 0xf6, 0xb5, 0x0c, 0xc6, 0xc3, 0x67, 0x37, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x41, 0x74, 0x27, + 0x50, 0xa8, 0x66, 0x80, 0xdc, 0xc0, 0xba, 0x3f, 0x50, 0x3e, 0xbf, 0xb9, 0x22, 0xb5, 0xdc, 0xbb, + 0xf8, 0xb8, 0xfd, 0xb1, 0xa5, 0x80, 0xed, 0x31, 0xfd, 0xb1, 0xa5, 0x6e, 0x2d, 0x78, 0xc8, 0x13, + 0x9f, 0xeb, 0x4d, 0x17, 0x7a, 0xc8, 0x23, 0x6f, 0x20, 0x82, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, + 0x79, 0xf1, 0xa6, 0x88, 0xf3, 0x84, 0x76, 0xd2, 0xc8, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, + 0xd2, 0x53, 0xae, 0x37, 0x52, 0x8f, 0x28, 0x7d, 0x83, 0x04, 0x0f, 0xc7, 0x5a, 0x28, 0xe1, 0x4d, + 0x65, 0x8d, 0x21, 0x6f, 0x20, 0x59, 0x7c, 0xdc, 0x07, 0x05, 0x29, 0xba, 0xf1, 0x66, 0xce, 0xdc, + 0x37, 0x42, 0x56, 0x5a, 0xe7, 0xee, 0x9b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x9c, + 0xb0, 0x32, 0xe8, 0xd6, 0x50, 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0x8b, 0x79, 0xae, + 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xdd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, 0x3e, + 0x0e, 0x9b, 0xf1, 0xb2, 0xca, 0xf5, 0x5e, 0x2c, 0x5d, 0x4f, 0x35, 0x8c, 0x3a, 0xea, 0x09, 0x46, + 0xd2, 0x66, 0x4f, 0x1a, 0x9e, 0xcf, 0x39, 0x6e, 0xcd, 0x78, 0xda, 0xea, 0xb0, 0xd5, 0x1a, 0x52, + 0x4f, 0xfa, 0x2b, 0xc0, 0xd3, 0x50, 0x35, 0xaa, 0x0e, 0xd3, 0x4a, 0xec, 0xa5, 0x59, 0x36, 0x5c, + 0x0f, 0x0c, 0x13, 0x0d, 0x05, 0x4f, 0x43, 0x11, 0x98, 0x18, 0xc9, 0xfa, 0xf4, 0x30, 0x1f, 0x76, + 0xd9, 0x91, 0x54, 0xaf, 0x91, 0xec, 0xd2, 0xe0, 0x44, 0xcb, 0x69, 0x6a, 0x53, 0xdb, 0x51, 0xb8, + 0xe1, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0x83, 0xc7, 0xed, 0x92, 0x92, 0x2b, 0xcb, 0x3d, 0xca, 0x84, + 0xb7, 0x92, 0xdc, 0xef, 0xa0, 0xc0, 0xa9, 0x60, 0x33, 0x8d, 0x5e, 0xa7, 0xc9, 0x8c, 0x09, 0xf4, + 0x49, 0x91, 0x0b, 0x04, 0x9f, 0x14, 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1c, 0x7a, 0x90, + 0x60, 0x5d, 0xa7, 0x94, 0x1d, 0x2a, 0xd4, 0x75, 0x28, 0x0d, 0xa2, 0x81, 0x71, 0xab, 0x3e, 0xb7, + 0xf0, 0x38, 0x64, 0x06, 0x7c, 0x73, 0x61, 0xbd, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x9d, 0xa7, + 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35, 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x38, + 0x48, 0xc2, 0xd5, 0x6b, 0x98, 0x7e, 0xd5, 0x33, 0x6c, 0xeb, 0xc1, 0x66, 0x6e, 0x86, 0x8c, 0xb8, + 0x54, 0x9b, 0x65, 0x64, 0x6c, 0xcb, 0xd7, 0x70, 0x21, 0x18, 0x8a, 0x3a, 0x94, 0x02, 0x3c, 0xb0, + 0xaf, 0x39, 0xfd, 0xec, 0xb5, 0x28, 0x58, 0x5c, 0xc6, 0xf9, 0x14, 0xdd, 0x9c, 0x4a, 0x83, 0x2d, + 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x05, 0x5a, 0x64, 0x2a, 0x98, 0x37, 0x55, + 0xfd, 0xf7, 0x67, 0x1f, 0xf5, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xc6, 0xe9, 0x47, + 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x60, 0x50, 0x9b, 0x04, 0x97, 0x89, 0x1f, 0xb1, + 0x15, 0x36, 0xa8, 0x6d, 0x7e, 0x2a, 0x91, 0xd0, 0xa0, 0x6e, 0xa3, 0x20, 0xcf, 0x74, 0xf7, 0x41, + 0x0f, 0x02, 0xfa, 0xee, 0xd6, 0x67, 0xad, 0x93, 0x03, 0x33, 0x67, 0x37, 0x5d, 0x7a, 0xcf, 0x09, + 0x90, 0x82, 0xee, 0xa6, 0x4b, 0xfc, 0x31, 0xc1, 0x7a, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, + 0xa3, 0x9f, 0x95, 0x23, 0xc5, 0x95, 0xf2, 0xd6, 0xc3, 0xf2, 0x87, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, + 0x52, 0xf2, 0x29, 0xab, 0x2a, 0xf5, 0x05, 0x4a, 0xff, 0x86, 0x91, 0x92, 0x8d, 0xc0, 0xf7, 0x27, + 0xef, 0x85, 0x21, 0xdb, 0x33, 0x4a, 0x64, 0xbf, 0x6a, 0xf4, 0x00, 0xd5, 0x6c, 0x7f, 0xd0, 0x68, + 0xad, 0x93, 0xb3, 0xd3, 0x4b, 0x49, 0xdd, 0xcf, 0x18, 0x3d, 0x44, 0xd5, 0xb1, 0x2f, 0x18, 0x3d, + 0xea, 0x41, 0x2a, 0x57, 0x5f, 0x44, 0x6f, 0x1d, 0xf2, 0xd9, 0x98, 0xe5, 0xc9, 0xf0, 0xfb, 0xfe, + 0x15, 0x5a, 0x3e, 0x1b, 0xd5, 0x7f, 0x36, 0x46, 0x6f, 0x51, 0x62, 0x7b, 0x09, 0x70, 0x97, 0x9d, + 0x2f, 0x66, 0x63, 0x11, 0x0b, 0x70, 0x09, 0x50, 0xfe, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, + 0x00, 0xec, 0x4d, 0x4a, 0xc6, 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, + 0xea, 0x44, 0x1d, 0x5e, 0xda, 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, + 0xfa, 0xf2, 0xab, 0x32, 0x8b, 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, + 0xb8, 0x51, 0xd0, 0xce, 0x5a, 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, + 0xbf, 0x2c, 0x62, 0x1a, 0xd4, 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, + 0x50, 0x7e, 0x97, 0xba, 0x12, 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, + 0x06, 0x7d, 0x7f, 0x92, 0xe6, 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0xaf, 0xba, 0xde, 0xa1, 0x01, 0x3b, + 0xa1, 0x9a, 0x46, 0x6b, 0x26, 0x80, 0x7a, 0x57, 0x17, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, + 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, + 0x6d, 0x2c, 0x92, 0xf2, 0xd3, 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, + 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0x5c, 0x7d, 0x52, 0xc6, + 0x53, 0x78, 0xfd, 0xa2, 0xb1, 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, + 0x7c, 0x25, 0xc7, 0x87, 0x7a, 0x57, 0x54, 0x7e, 0xeb, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, + 0x44, 0xa2, 0x13, 0xd6, 0xb0, 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, + 0xb4, 0x90, 0x58, 0x4a, 0x5a, 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, + 0x80, 0xe4, 0x52, 0x36, 0x50, 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, + 0x73, 0x26, 0x58, 0x09, 0x03, 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, + 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, 0x59, 0xae, 0x7e, 0x46, 0xe5, 0x85, 0xfc, 0xfd, 0xa5, 0xe1, 0xbb, + 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x6b, 0xdb, 0x6f, 0x9b, 0xbf, 0x4b, 0xf0, 0xc9, 0xa0, 0x1e, + 0xcf, 0xc7, 0x5c, 0xa4, 0x17, 0xf5, 0x36, 0x5b, 0xbd, 0x41, 0x04, 0xc6, 0xb3, 0x2b, 0x1e, 0x05, + 0xbe, 0x35, 0x82, 0x71, 0x36, 0x4e, 0xbb, 0xd2, 0x53, 0x56, 0x64, 0x30, 0x4e, 0x7b, 0xda, 0x12, + 0x20, 0xe2, 0x34, 0x0a, 0xda, 0xc9, 0xe9, 0x8a, 0x27, 0x2c, 0x5c, 0x99, 0x09, 0xeb, 0x57, 0x99, + 0x89, 0xf7, 0x52, 0x46, 0x16, 0xbd, 0x73, 0xc4, 0xe6, 0xe7, 0xac, 0xac, 0x2e, 0xd3, 0x62, 0xbf, + 0x4e, 0xb8, 0x62, 0xb1, 0x80, 0xaf, 0x2d, 0x5a, 0x62, 0x64, 0x10, 0x22, 0x2b, 0x25, 0x50, 0xbb, + 0x12, 0x58, 0xe0, 0xa0, 0x3a, 0x8e, 0xe7, 0x4c, 0x7e, 0x39, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, + 0x22, 0x56, 0x02, 0x12, 0x76, 0xde, 0xef, 0xb2, 0xcc, 0x29, 0x9b, 0xd5, 0x23, 0xac, 0x3c, 0x89, + 0x57, 0x73, 0x96, 0x0b, 0x65, 0x12, 0x9c, 0xc9, 0x3b, 0x26, 0x71, 0x9e, 0x38, 0x93, 0xef, 0xa3, + 0xe7, 0x84, 0x26, 0xaf, 0xe1, 0x4f, 0x78, 0x29, 0x9a, 0x1f, 0x49, 0x3a, 0x2b, 0x33, 0x10, 0x9a, + 0xfc, 0x46, 0xf5, 0x48, 0x22, 0x34, 0x85, 0x35, 0x9c, 0x5f, 0x17, 0xf0, 0xca, 0xf0, 0x8a, 0x95, + 0x66, 0x9c, 0xbc, 0x98, 0xc7, 0x69, 0xa6, 0x46, 0xc3, 0x0f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0xd7, + 0x05, 0xfa, 0xea, 0x3a, 0xbf, 0xc7, 0x10, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x61, 0x9f, 0x78, 0x44, + 0xd0, 0xad, 0x65, 0x77, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xe7, 0x85, 0x8e, + 0x4d, 0x00, 0x12, 0x3b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, + 0x04, 0xa6, 0xf5, 0x8e, 0x1d, 0x4d, 0x10, 0xa9, 0x01, 0x4e, 0x62, 0xae, 0xf6, 0x99, 0x98, 0xa4, + 0x75, 0xe8, 0x7f, 0x18, 0x68, 0x37, 0x49, 0x74, 0xbb, 0x72, 0x48, 0xe7, 0x1b, 0xbc, 0xb0, 0x59, + 0xb7, 0x8b, 0x62, 0x5c, 0xaf, 0xaa, 0xa7, 0x6c, 0xca, 0xd2, 0x02, 0xbe, 0x0b, 0xdf, 0x6a, 0x2b, + 0x80, 0x13, 0x17, 0x2d, 0x7a, 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0x7e, 0x3d, 0xf0, + 0xac, 0x62, 0xa5, 0x4a, 0x34, 0xf6, 0x99, 0x00, 0xb3, 0xd3, 0xe1, 0x46, 0x0e, 0x58, 0x57, 0x94, + 0x98, 0x9d, 0x61, 0x0d, 0x7b, 0xd8, 0xe7, 0x70, 0xa7, 0xac, 0xe2, 0xd9, 0x92, 0xc9, 0xfb, 0x86, + 0x1b, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xdb, 0xf9, 0xea, + 0x00, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18, 0x5e, 0xf2, 0x38, + 0x99, 0xc6, 0x95, 0x38, 0x89, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3, 0x70, 0xcd, 0x8c, + 0x5c, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x3f, 0x8a, 0xa8, 0xee, 0x72, 0xc2, 0xec, + 0x4c, 0x96, 0x17, 0xde, 0xe3, 0xbc, 0x17, 0x86, 0xec, 0x3b, 0x68, 0x8d, 0x48, 0xa6, 0x21, 0x77, + 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0xef, 0x8e, 0x34, 0x7f, 0xd7, 0xbf, 0xeb, 0x23, + 0xd4, 0x97, 0xca, 0x37, 0x30, 0x5d, 0x17, 0x1a, 0xb9, 0x5f, 0x88, 0xd8, 0xec, 0x49, 0xdb, 0x34, + 0x73, 0xe7, 0x32, 0x16, 0xdb, 0x49, 0x72, 0xc4, 0x2a, 0xe4, 0x85, 0xf2, 0x5a, 0x38, 0xb2, 0x52, + 0x22, 0xcd, 0x6c, 0x53, 0x76, 0xa0, 0xd7, 0xb2, 0x17, 0x49, 0x2a, 0x94, 0x4c, 0xdf, 0x90, 0xde, + 0x68, 0x1b, 0x68, 0x53, 0x44, 0xad, 0x68, 0xda, 0xc6, 0xf2, 0x9a, 0x99, 0xf0, 0xd9, 0x2c, 0x63, + 0x0a, 0x3a, 0x65, 0x71, 0xf3, 0xa1, 0xc6, 0xad, 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, + 0xa6, 0x91, 0x35, 0xd6, 0x3c, 0x92, 0xd2, 0x0d, 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, + 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0xbc, 0xcf, 0x74, 0x4b, 0xc0, 0x4f, 0x4c, 0x49, 0x65, 0x47, 0x4c, + 0xbc, 0xf7, 0x86, 0x60, 0x76, 0x9f, 0x00, 0x3c, 0x3c, 0x5f, 0x1d, 0x24, 0x70, 0x9f, 0x00, 0xf5, + 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x18, 0x57, 0xb6, 0x72, 0x48, + 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49, 0xb1, 0x73, + 0xb5, 0x07, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3f, 0x29, 0xaf, 0x2c, 0xe1, 0xbf, 0xd0, 0xd0, 0x08, + 0x89, 0xb8, 0xd4, 0x82, 0x1a, 0xdb, 0xcf, 0x3f, 0xf8, 0xaf, 0xaf, 0x6e, 0x0d, 0x7e, 0xf6, 0xd5, + 0xad, 0xc1, 0xff, 0x7c, 0x75, 0x6b, 0xf0, 0xd3, 0xaf, 0x6f, 0x7d, 0xeb, 0x67, 0x5f, 0xdf, 0xfa, + 0xd6, 0x7f, 0x7f, 0x7d, 0xeb, 0x5b, 0x5f, 0xbe, 0xa5, 0x7e, 0x2c, 0xf7, 0xfc, 0xe7, 0xe4, 0x4f, + 0xde, 0x3e, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x53, 0x6e, 0xdf, 0x50, 0x77, 0x00, + 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -503,6 +505,7 @@ type ClientCommandsHandler interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse + ObjectTypeRecommendedLayoutSet(context.Context, *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -2948,6 +2951,26 @@ func ObjectTypeRecommendedFeaturedRelationsSet(b []byte) (resp []byte) { return resp } +func ObjectTypeRecommendedLayoutSet(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedLayoutSetResponse{Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{Code: pb.RpcObjectTypeRecommendedLayoutSetResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectTypeRecommendedLayoutSetRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectTypeRecommendedLayoutSetResponse{Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{Code: pb.RpcObjectTypeRecommendedLayoutSetResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectTypeRecommendedLayoutSet(context.Background(), in).Marshal() + return resp +} + func HistoryShowVersion(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6358,6 +6381,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectTypeRecommendedRelationsSet(data) case "ObjectTypeRecommendedFeaturedRelationsSet": cd = ObjectTypeRecommendedFeaturedRelationsSet(data) + case "ObjectTypeRecommendedLayoutSet": + cd = ObjectTypeRecommendedLayoutSet(data) case "HistoryShowVersion": cd = HistoryShowVersion(data) case "HistoryGetVersions": @@ -8266,6 +8291,20 @@ func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedFeaturedRelationsSet(c call, _ := actualCall(ctx, req) return call.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) } +func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedLayoutSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.ObjectTypeRecommendedLayoutSet(ctx, req.(*pb.RpcObjectTypeRecommendedLayoutSetRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "ObjectTypeRecommendedLayoutSet", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcObjectTypeRecommendedLayoutSetResponse) +} func (h *ClientCommandsHandlerProxy) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.HistoryShowVersion(ctx, req.(*pb.RpcHistoryShowVersionRequest)), nil diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 0302a9636..16cf82380 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -2,23 +2,28 @@ package detailservice import ( "context" + "errors" "fmt" "slices" "sort" "strings" "time" + "github.com/anyproto/any-sync/app/ocache" "github.com/gogo/protobuf/types" "go.uber.org/zap" "golang.org/x/exp/maps" "github.com/anyproto/anytype-heart/core/block/cache" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider" "github.com/anyproto/anytype-heart/util/dateutil" "github.com/anyproto/anytype-heart/util/pbtypes" @@ -93,6 +98,107 @@ func (s *service) objectTypeSetRelations( }) } +func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { + if strings.HasPrefix(objectTypeId, bundle.TypePrefix) { + return ErrBundledTypeIsReadonly + } + + // 1. set layout to object type + err := cache.Do(s.objectGetter, objectTypeId, func(b smartblock.SmartBlock) error { + st := b.NewState() + st.SetDetailAndBundledRelation(bundle.RelationKeyRecommendedLayout, pbtypes.Int64(layout)) + return b.Apply(st) + }) + if err != nil { + return fmt.Errorf("failed to set recommended layout: %w", err) + } + + spaceId, err := s.resolver.ResolveSpaceID(objectTypeId) + if err != nil { + return fmt.Errorf("failed to resolve space: %w", err) + } + + // TODO: we should do operations below Async and with context, so separate service would be needed + + // object types are not cross-space + index := s.store.SpaceIndex(spaceId) + records, err := index.Query(database.Query{Filters: []*model.BlockContentDataviewFilter{ + { + RelationKey: bundle.RelationKeyType.String(), + Condition: model.BlockContentDataviewFilter_Equal, + Value: pbtypes.String(objectTypeId), + }, + }}) + if err != nil { + return fmt.Errorf("failed to get objects of single type: %w", err) + } + + spc, err := s.spaceService.Get(context.Background(), spaceId) + if err != nil { + return fmt.Errorf("failed to get space: %w", err) + } + + var resultErr error + for _, record := range records { + id := pbtypes.GetString(record.Details, bundle.RelationKeyId.String()) + if id == "" { + continue + } + if _, found := record.Details.Fields[bundle.RelationKeyLayout.String()]; found { + // we should delete layout from object, that's why we apply changes even if object is not in cache + err = cache.Do(s.objectGetter, id, func(b smartblock.SmartBlock) error { + st := b.NewState() + st.RemoveDetail(bundle.RelationKeyLayout.String()) + st.SetDetail(bundle.RelationKeyResolvedLayout.String(), pbtypes.Int64(layout)) + return b.Apply(st) + }) + if err != nil { + resultErr = errors.Join(resultErr, err) + } + continue + } + + err = spc.DoLockedIfNotExists(id, func() error { + return index.ModifyObjectDetails(id, func(details *types.Struct) (*types.Struct, bool, error) { + if details == nil || details.Fields == nil { + return nil, false, nil + } + if pbtypes.GetInt64(details, bundle.RelationKeyResolvedLayout.String()) == layout { + return nil, false, nil + } + details.Fields[bundle.RelationKeyResolvedLayout.String()] = pbtypes.Int64(layout) + return details, true, nil + }) + }) + + if err == nil { + continue + } + + if !errors.Is(err, ocache.ErrExists) { + resultErr = errors.Join(resultErr, err) + continue + } + + err = spc.Do(id, func(b smartblock.SmartBlock) error { + if cr, ok := b.(source.ChangeReceiver); ok { + return cr.StateAppend(func(d state.Doc) (s *state.State, changes []*pb.ChangeContent, err error) { + st := d.NewState() + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(layout)) + return st, nil, nil + }) + } + // do no Apply. StateAppend sends the event and runs reindex + return nil + }) + if err != nil { + resultErr = errors.Join(resultErr, err) + } + } + + return resultErr +} + func (s *service) ListRelationsWithValue(spaceId string, value *types.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) { var ( countersByKeys = make(map[string]int64) diff --git a/core/block/detailservice/service.go b/core/block/detailservice/service.go index 9c63201e5..c0ea9e33f 100644 --- a/core/block/detailservice/service.go +++ b/core/block/detailservice/service.go @@ -42,6 +42,7 @@ type Service interface { ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error + ObjectTypeSetLayout(objectTypeId string, layout int64) error ListRelationsWithValue(spaceId string, value *types.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 246b11d86..861189a8e 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,6 +3,7 @@ package basic import ( "errors" "fmt" + "slices" "strings" "time" @@ -27,6 +28,10 @@ import ( var log = logging.Logger("anytype-mw-editor-basic") +var relationsProhibitedToUpdate = []domain.RelationKey{ + bundle.RelationKeyRecommendedLayout, +} + type detailUpdate struct { key string value *types.Value @@ -56,6 +61,13 @@ func (bs *basic) setDetails(ctx session.Context, details []*model.Detail, showEv // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later updates, updatedKeys := bs.collectDetailUpdates(details, s) + + for _, rel := range relationsProhibitedToUpdate { + if slices.Contains(updatedKeys, rel) { + return nil, fmt.Errorf("it is prohibited to update %s detail via ObjectSetDetails", rel.String()) + } + } + newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 35bcd30a9..7dae99f00 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -131,8 +131,14 @@ func (s *service) createObjectInSpace( case bundle.TypeKeyBookmark: return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) case bundle.TypeKeySet: + // TODO: this logic should be reviewed as: + // - set and collection are not the only types that could have set and collection layout + // - we should exclude layout relation prior to resolvedLayout details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_set)) case bundle.TypeKeyCollection: + // TODO: this logic should be reviewed as: + // - set and collection are not the only types that could have set and collection layout + // - we should exclude layout relation prior to resolvedLayout details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_collection)) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) diff --git a/core/relations.go b/core/relations.go index 64dc5604f..7a39a3012 100644 --- a/core/relations.go +++ b/core/relations.go @@ -76,6 +76,20 @@ func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(_ context.Contex } } +func (mw *Middleware) ObjectTypeRecommendedLayoutSet(_ context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { + detailsService := getService[detailservice.Service](mw) + err := detailsService.ObjectTypeSetLayout(req.TypeObjectId, int64(req.Layout)) + code := mapErrorCode(err, + errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedLayoutSetResponseError_READONLY_OBJECT_TYPE), + ) + return &pb.RpcObjectTypeRecommendedLayoutSetResponse{ + Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{ + Code: code, + Description: getErrorDescription(err), + }, + } +} + func (mw *Middleware) RelationListRemoveOption(cctx context.Context, request *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse { response := func(code pb.RpcRelationListRemoveOptionResponseErrorCode, err error) *pb.RpcRelationListRemoveOptionResponse { if err != nil { diff --git a/docs/proto.md b/docs/proto.md index aacf99332..e9f10f17e 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -1068,6 +1068,10 @@ - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error) + - [Rpc.ObjectType.Recommended.LayoutSet](#anytype-Rpc-ObjectType-Recommended-LayoutSet) + - [Rpc.ObjectType.Recommended.LayoutSet.Request](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Request) + - [Rpc.ObjectType.Recommended.LayoutSet.Response](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response) + - [Rpc.ObjectType.Recommended.LayoutSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error) - [Rpc.ObjectType.Recommended.RelationsSet](#anytype-Rpc-ObjectType-Recommended-RelationsSet) - [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) - [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) @@ -1511,6 +1515,7 @@ - [Rpc.ObjectRelation.ListAvailable.Response.Error.Code](#anytype-Rpc-ObjectRelation-ListAvailable-Response-Error-Code) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error.Code](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error-Code) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error-Code) + - [Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error-Code) - [Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error-Code) - [Rpc.ObjectType.Relation.Add.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Add-Response-Error-Code) - [Rpc.ObjectType.Relation.Remove.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Remove-Response-Error-Code) @@ -2086,6 +2091,7 @@ | ObjectTypeRelationRemove | [Rpc.ObjectType.Relation.Remove.Request](#anytype-Rpc-ObjectType-Relation-Remove-Request) | [Rpc.ObjectType.Relation.Remove.Response](#anytype-Rpc-ObjectType-Relation-Remove-Response) | | | ObjectTypeRecommendedRelationsSet | [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) | [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) | | | ObjectTypeRecommendedFeaturedRelationsSet | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) | | +| ObjectTypeRecommendedLayoutSet | [Rpc.ObjectType.Recommended.LayoutSet.Request](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Request) | [Rpc.ObjectType.Recommended.LayoutSet.Response](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response) | | | HistoryShowVersion | [Rpc.History.ShowVersion.Request](#anytype-Rpc-History-ShowVersion-Request) | [Rpc.History.ShowVersion.Response](#anytype-Rpc-History-ShowVersion-Response) | | | HistoryGetVersions | [Rpc.History.GetVersions.Request](#anytype-Rpc-History-GetVersions-Request) | [Rpc.History.GetVersions.Response](#anytype-Rpc-History-GetVersions-Response) | | | HistorySetVersion | [Rpc.History.SetVersion.Request](#anytype-Rpc-History-SetVersion-Request) | [Rpc.History.SetVersion.Response](#anytype-Rpc-History-SetVersion-Response) | | @@ -17762,6 +17768,63 @@ Available undo/redo operations + + +### Rpc.ObjectType.Recommended.LayoutSet + + + + + + + + + +### Rpc.ObjectType.Recommended.LayoutSet.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| typeObjectId | [string](#string) | | | +| layout | [model.ObjectType.Layout](#anytype-model-ObjectType-Layout) | | | + + + + + + + + +### Rpc.ObjectType.Recommended.LayoutSet.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.ObjectType.Recommended.LayoutSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error) | | | + + + + + + + + +### Rpc.ObjectType.Recommended.LayoutSet.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.ObjectType.Recommended.RelationsSet @@ -23901,6 +23964,20 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | +| READONLY_OBJECT_TYPE | 3 | ... | + + + ### Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 8230d5124..bc88bd382 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -3935,6 +3935,37 @@ func (RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode) EnumDescrip return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1, 0, 0} } +type RpcObjectTypeRecommendedLayoutSetResponseErrorCode int32 + +const ( + RpcObjectTypeRecommendedLayoutSetResponseError_NULL RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 0 + RpcObjectTypeRecommendedLayoutSetResponseError_UNKNOWN_ERROR RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 1 + RpcObjectTypeRecommendedLayoutSetResponseError_BAD_INPUT RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 2 + RpcObjectTypeRecommendedLayoutSetResponseError_READONLY_OBJECT_TYPE RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 3 +) + +var RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 3: "READONLY_OBJECT_TYPE", +} + +var RpcObjectTypeRecommendedLayoutSetResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "READONLY_OBJECT_TYPE": 3, +} + +func (x RpcObjectTypeRecommendedLayoutSetResponseErrorCode) String() string { + return proto.EnumName(RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name, int32(x)) +} + +func (RpcObjectTypeRecommendedLayoutSetResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1, 0, 0} +} + type RpcRelationListRemoveOptionResponseErrorCode int32 const ( @@ -32898,6 +32929,200 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) GetDescripti return "" } +type RpcObjectTypeRecommendedLayoutSet struct { +} + +func (m *RpcObjectTypeRecommendedLayoutSet) Reset() { *m = RpcObjectTypeRecommendedLayoutSet{} } +func (m *RpcObjectTypeRecommendedLayoutSet) String() string { return proto.CompactTextString(m) } +func (*RpcObjectTypeRecommendedLayoutSet) ProtoMessage() {} +func (*RpcObjectTypeRecommendedLayoutSet) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2} +} +func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedLayoutSet) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet proto.InternalMessageInfo + +type RpcObjectTypeRecommendedLayoutSetRequest struct { + TypeObjectId string `protobuf:"bytes,1,opt,name=typeObjectId,proto3" json:"typeObjectId,omitempty"` + Layout model.ObjectTypeLayout `protobuf:"varint,2,opt,name=layout,proto3,enum=anytype.model.ObjectTypeLayout" json:"layout,omitempty"` +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) Reset() { + *m = RpcObjectTypeRecommendedLayoutSetRequest{} +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) String() string { return proto.CompactTextString(m) } +func (*RpcObjectTypeRecommendedLayoutSetRequest) ProtoMessage() {} +func (*RpcObjectTypeRecommendedLayoutSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 0} +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) GetTypeObjectId() string { + if m != nil { + return m.TypeObjectId + } + return "" +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) GetLayout() model.ObjectTypeLayout { + if m != nil { + return m.Layout + } + return model.ObjectType_basic +} + +type RpcObjectTypeRecommendedLayoutSetResponse struct { + Error *RpcObjectTypeRecommendedLayoutSetResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) Reset() { + *m = RpcObjectTypeRecommendedLayoutSetResponse{} +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedLayoutSetResponse) ProtoMessage() {} +func (*RpcObjectTypeRecommendedLayoutSetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1} +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) GetError() *RpcObjectTypeRecommendedLayoutSetResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcObjectTypeRecommendedLayoutSetResponseError struct { + Code RpcObjectTypeRecommendedLayoutSetResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectTypeRecommendedLayoutSetResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Reset() { + *m = RpcObjectTypeRecommendedLayoutSetResponseError{} +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeRecommendedLayoutSetResponseError) ProtoMessage() {} +func (*RpcObjectTypeRecommendedLayoutSetResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1, 0} +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.Merge(m, src) +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError proto.InternalMessageInfo + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) GetCode() RpcObjectTypeRecommendedLayoutSetResponseErrorCode { + if m != nil { + return m.Code + } + return RpcObjectTypeRecommendedLayoutSetResponseError_NULL +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcRelation struct { } @@ -69878,6 +70103,7 @@ func init() { proto.RegisterEnum("anytype.RpcObjectTypeRelationRemoveResponseErrorCode", RpcObjectTypeRelationRemoveResponseErrorCode_name, RpcObjectTypeRelationRemoveResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedRelationsSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectTypeRecommendedLayoutSetResponseErrorCode", RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name, RpcObjectTypeRecommendedLayoutSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListRemoveOptionResponseErrorCode", RpcRelationListRemoveOptionResponseErrorCode_name, RpcRelationListRemoveOptionResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationOptionsResponseErrorCode", RpcRelationOptionsResponseErrorCode_name, RpcRelationOptionsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListWithValueResponseErrorCode", RpcRelationListWithValueResponseErrorCode_name, RpcRelationListWithValueResponseErrorCode_value) @@ -70531,6 +70757,10 @@ func init() { proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error") + proto.RegisterType((*RpcObjectTypeRecommendedLayoutSet)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet") + proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Request") + proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Response") + proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Response.Error") proto.RegisterType((*RpcRelation)(nil), "anytype.Rpc.Relation") proto.RegisterType((*RpcRelationListRemoveOption)(nil), "anytype.Rpc.Relation.ListRemoveOption") proto.RegisterType((*RpcRelationListRemoveOptionRequest)(nil), "anytype.Rpc.Relation.ListRemoveOption.Request") @@ -71271,1218 +71501,1221 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 19366 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x78, 0x24, 0x47, - 0x79, 0x2f, 0xba, 0x33, 0x3d, 0x33, 0x92, 0x5e, 0x7d, 0xec, 0x6c, 0x7b, 0x77, 0xbd, 0x2e, 0x9b, - 0xb5, 0xb3, 0x36, 0xc6, 0x31, 0x46, 0x6b, 0x0c, 0x21, 0xd8, 0xd8, 0xd8, 0xa3, 0xd1, 0x48, 0x1a, - 0x5b, 0x9a, 0x11, 0x3d, 0xa3, 0x5d, 0x9c, 0x1c, 0xae, 0xd2, 0x3b, 0x53, 0x92, 0xda, 0x3b, 0xea, - 0x1e, 0x7a, 0x5a, 0x5a, 0x8b, 0xfb, 0x9c, 0x7b, 0x42, 0x88, 0xf9, 0x08, 0xe1, 0x10, 0x42, 0x48, - 0xc2, 0x37, 0x18, 0x0c, 0x07, 0x12, 0x20, 0x7c, 0x1f, 0x20, 0x7c, 0x84, 0x8f, 0x40, 0x48, 0x42, - 0x08, 0x84, 0xf0, 0x91, 0x70, 0x03, 0x81, 0x10, 0x72, 0x9f, 0x70, 0xb8, 0xe4, 0x9e, 0xc0, 0x21, - 0x09, 0x37, 0xf7, 0xe9, 0xaa, 0xea, 0xee, 0xaa, 0xd1, 0x74, 0x4f, 0xf5, 0x68, 0x7a, 0x64, 0xc2, - 0xfd, 0xaf, 0xbb, 0xba, 0xfa, 0xad, 0xb7, 0xde, 0xdf, 0x5b, 0x55, 0x6f, 0x55, 0xbd, 0xf5, 0x16, - 0x9c, 0x6a, 0x5f, 0x38, 0xdb, 0xb6, 0x2d, 0xc7, 0xea, 0x9c, 0x6d, 0x58, 0xdb, 0xdb, 0xba, 0xd9, - 0xec, 0xcc, 0x92, 0x77, 0x75, 0x4c, 0x37, 0xf7, 0x9c, 0xbd, 0x36, 0x46, 0xd7, 0xb5, 0x2f, 0x6e, - 0x9e, 0x6d, 0x19, 0x17, 0xce, 0xb6, 0x2f, 0x9c, 0xdd, 0xb6, 0x9a, 0xb8, 0xe5, 0xfd, 0x40, 0x5e, - 0x58, 0x76, 0x74, 0x43, 0x58, 0xae, 0x96, 0xd5, 0xd0, 0x5b, 0x1d, 0xc7, 0xb2, 0x31, 0xcb, 0x79, - 0x32, 0x28, 0x12, 0xef, 0x62, 0xd3, 0xf1, 0x28, 0x5c, 0xb5, 0x69, 0x59, 0x9b, 0x2d, 0x4c, 0xbf, - 0x5d, 0xd8, 0xd9, 0x38, 0xdb, 0x71, 0xec, 0x9d, 0x86, 0xc3, 0xbe, 0x5e, 0xd3, 0xfd, 0xb5, 0x89, - 0x3b, 0x0d, 0xdb, 0x68, 0x3b, 0x96, 0x4d, 0x73, 0x9c, 0xf9, 0xe0, 0x33, 0xc7, 0x41, 0xd1, 0xda, - 0x0d, 0xf4, 0xfd, 0x31, 0x50, 0x0a, 0xed, 0x36, 0xfa, 0x44, 0x1a, 0x60, 0x11, 0x3b, 0xe7, 0xb0, - 0xdd, 0x31, 0x2c, 0x13, 0x1d, 0x85, 0x31, 0x0d, 0x3f, 0x7d, 0x07, 0x77, 0x9c, 0xdb, 0x32, 0xcf, - 0xfd, 0x96, 0x92, 0x42, 0x0f, 0xa5, 0x61, 0x5c, 0xc3, 0x9d, 0xb6, 0x65, 0x76, 0xb0, 0x7a, 0x17, - 0x64, 0xb1, 0x6d, 0x5b, 0xf6, 0xa9, 0xd4, 0x35, 0xa9, 0x1b, 0x26, 0x6f, 0xb9, 0x71, 0x96, 0x55, - 0x7f, 0x56, 0x6b, 0x37, 0x66, 0x0b, 0xed, 0xf6, 0x6c, 0x40, 0x69, 0xd6, 0xfb, 0x69, 0xb6, 0xe4, - 0xfe, 0xa1, 0xd1, 0x1f, 0xd5, 0x53, 0x30, 0xb6, 0x4b, 0x33, 0x9c, 0x4a, 0x5f, 0x93, 0xba, 0x61, - 0x42, 0xf3, 0x5e, 0xdd, 0x2f, 0x4d, 0xec, 0xe8, 0x46, 0xab, 0x73, 0x4a, 0xa1, 0x5f, 0xd8, 0x2b, - 0x7a, 0x30, 0x05, 0x59, 0x42, 0x44, 0x2d, 0x42, 0xa6, 0x61, 0x35, 0x31, 0x29, 0x7e, 0xe6, 0x96, - 0xb3, 0xf2, 0xc5, 0xcf, 0x16, 0xad, 0x26, 0xd6, 0xc8, 0xcf, 0xea, 0x35, 0x30, 0xe9, 0x89, 0x25, - 0x60, 0x83, 0x4f, 0x3a, 0x73, 0x0b, 0x64, 0xdc, 0xfc, 0xea, 0x38, 0x64, 0x2a, 0x6b, 0xcb, 0xcb, - 0xf9, 0x23, 0xea, 0x31, 0x98, 0x5e, 0xab, 0xdc, 0x53, 0xa9, 0x9e, 0xaf, 0xac, 0x97, 0x34, 0xad, - 0xaa, 0xe5, 0x53, 0xea, 0x34, 0x4c, 0xcc, 0x15, 0xe6, 0xd7, 0xcb, 0x95, 0xd5, 0xb5, 0x7a, 0x3e, - 0x8d, 0x5e, 0xa5, 0xc0, 0x4c, 0x0d, 0x3b, 0xf3, 0x78, 0xd7, 0x68, 0xe0, 0x9a, 0xa3, 0x3b, 0x18, - 0xbd, 0x30, 0xe5, 0x0b, 0x53, 0x5d, 0x73, 0x0b, 0xf5, 0x3f, 0xb1, 0x0a, 0x3c, 0x6e, 0x5f, 0x05, - 0x44, 0x0a, 0xb3, 0xec, 0xef, 0x59, 0x2e, 0x4d, 0xe3, 0xe9, 0x9c, 0x79, 0x0c, 0x4c, 0x72, 0xdf, - 0xd4, 0x19, 0x80, 0xb9, 0x42, 0xf1, 0x9e, 0x45, 0xad, 0xba, 0x56, 0x99, 0xcf, 0x1f, 0x71, 0xdf, - 0x17, 0xaa, 0x5a, 0x89, 0xbd, 0xa7, 0xd0, 0x0f, 0x53, 0x1c, 0x98, 0xf3, 0x22, 0x98, 0xb3, 0xfd, - 0x99, 0xe9, 0x01, 0x28, 0x7a, 0x83, 0x0f, 0xce, 0xa2, 0x00, 0xce, 0xe3, 0xe2, 0x91, 0x4b, 0x1e, - 0xa0, 0x07, 0xd2, 0x30, 0x5e, 0xdb, 0xda, 0x71, 0x9a, 0xd6, 0x25, 0x13, 0x4d, 0xf8, 0xc8, 0xa0, - 0xef, 0xf0, 0x32, 0x79, 0xb2, 0x28, 0x93, 0x1b, 0xf6, 0x57, 0x82, 0x51, 0x08, 0x91, 0xc6, 0x6b, - 0x7c, 0x69, 0x14, 0x04, 0x69, 0x3c, 0x46, 0x96, 0x50, 0xf2, 0x72, 0x78, 0xd9, 0x13, 0x21, 0x5b, - 0x6b, 0xeb, 0x0d, 0x8c, 0xfe, 0x44, 0x81, 0xa9, 0x65, 0xac, 0xef, 0xe2, 0x42, 0xbb, 0x6d, 0x5b, - 0xbb, 0x18, 0x15, 0x03, 0x7d, 0x3d, 0x05, 0x63, 0x1d, 0x37, 0x53, 0xb9, 0x49, 0x6a, 0x30, 0xa1, - 0x79, 0xaf, 0xea, 0x69, 0x00, 0xa3, 0x89, 0x4d, 0xc7, 0x70, 0x0c, 0xdc, 0x39, 0x95, 0xbe, 0x46, - 0xb9, 0x61, 0x42, 0xe3, 0x52, 0xd0, 0xf7, 0xd3, 0xb2, 0x3a, 0x46, 0xb8, 0x98, 0xe5, 0x39, 0x08, - 0x91, 0xea, 0xeb, 0xd2, 0x32, 0x3a, 0xd6, 0x97, 0x5c, 0x3c, 0xd9, 0xbe, 0x35, 0x15, 0x5f, 0xb8, - 0x6e, 0x8e, 0x4a, 0x75, 0xbd, 0xb6, 0x56, 0x5c, 0x5a, 0xaf, 0xad, 0x16, 0x8a, 0xa5, 0x3c, 0x56, - 0x8f, 0x43, 0x9e, 0x3c, 0xae, 0x97, 0x6b, 0xeb, 0xf3, 0xa5, 0xe5, 0x52, 0xbd, 0x34, 0x9f, 0xdf, - 0x50, 0x55, 0x98, 0xd1, 0x4a, 0x4f, 0x59, 0x2b, 0xd5, 0xea, 0xeb, 0x0b, 0x85, 0xf2, 0x72, 0x69, - 0x3e, 0xbf, 0xe9, 0xfe, 0xbc, 0x5c, 0x5e, 0x29, 0xd7, 0xd7, 0xb5, 0x52, 0xa1, 0xb8, 0x54, 0x9a, - 0xcf, 0x6f, 0xa9, 0x97, 0xc3, 0x65, 0x95, 0xea, 0x7a, 0x61, 0x75, 0x55, 0xab, 0x9e, 0x2b, 0xad, - 0xb3, 0x3f, 0x6a, 0x79, 0x83, 0x16, 0x54, 0x5f, 0xaf, 0x2d, 0x15, 0xb4, 0x52, 0x61, 0x6e, 0xb9, - 0x94, 0xbf, 0x0f, 0x3d, 0x4b, 0x81, 0xe9, 0x15, 0xfd, 0x22, 0xae, 0x6d, 0xe9, 0x36, 0xd6, 0x2f, - 0xb4, 0x30, 0xba, 0x56, 0x02, 0x4f, 0xf4, 0x27, 0x3c, 0x5e, 0x25, 0x11, 0xaf, 0xb3, 0x3d, 0x04, - 0x2c, 0x14, 0x11, 0x02, 0xd8, 0xff, 0xf2, 0x9b, 0xc1, 0x92, 0x00, 0xd8, 0xe3, 0x63, 0xd2, 0x8b, - 0x87, 0xd8, 0x2f, 0x3d, 0x0c, 0x10, 0x43, 0x5f, 0x55, 0x60, 0xa6, 0x6c, 0xee, 0x1a, 0x0e, 0x5e, - 0xc4, 0x26, 0xb6, 0xdd, 0x71, 0x40, 0x0a, 0x86, 0x87, 0x14, 0x0e, 0x86, 0x05, 0x11, 0x86, 0x9b, - 0x7b, 0x88, 0x4d, 0x2c, 0x23, 0x64, 0xb4, 0xbd, 0x0a, 0x26, 0x0c, 0x92, 0xaf, 0x68, 0x34, 0x99, - 0xc4, 0x82, 0x04, 0xf5, 0x3a, 0x98, 0xa6, 0x2f, 0x0b, 0x46, 0x0b, 0xdf, 0x83, 0xf7, 0xd8, 0xb8, - 0x2b, 0x26, 0xa2, 0x5f, 0xf5, 0x1b, 0x5f, 0x59, 0xc0, 0xf2, 0x67, 0xe2, 0x32, 0x15, 0x0f, 0xcc, - 0x97, 0x3c, 0x1c, 0x9a, 0xdf, 0xbe, 0x56, 0x66, 0xa0, 0x1f, 0xa5, 0x61, 0xb2, 0xe6, 0x58, 0x6d, - 0x57, 0x65, 0x0d, 0x73, 0x53, 0x0e, 0xdc, 0x4f, 0xf1, 0x6d, 0xac, 0x28, 0x82, 0xfb, 0x98, 0x1e, - 0x72, 0xe4, 0x0a, 0x08, 0x69, 0x61, 0xdf, 0xf7, 0x5b, 0xd8, 0x82, 0x80, 0xca, 0x2d, 0xb1, 0xa8, - 0xfd, 0x18, 0xb6, 0xaf, 0x97, 0x28, 0x90, 0xf7, 0xd4, 0xcc, 0x29, 0xee, 0xd8, 0x36, 0x36, 0x1d, - 0x39, 0x10, 0xfe, 0x8a, 0x07, 0x61, 0x49, 0x04, 0xe1, 0x96, 0x08, 0x65, 0xf6, 0x4a, 0x49, 0xb0, - 0x8d, 0x7d, 0xc4, 0x47, 0xf3, 0x1e, 0x01, 0xcd, 0x9f, 0x8d, 0xcf, 0x56, 0x3c, 0x48, 0x97, 0x06, - 0x40, 0xf4, 0x38, 0xe4, 0xdd, 0x31, 0xa9, 0x58, 0x2f, 0x9f, 0x2b, 0xad, 0x97, 0x2b, 0xe7, 0xca, - 0xf5, 0x52, 0x1e, 0xa3, 0x17, 0x2b, 0x30, 0x45, 0x59, 0xd3, 0xf0, 0xae, 0x75, 0x51, 0xb2, 0xd7, - 0xfb, 0x6a, 0x4c, 0x63, 0x81, 0x2f, 0x21, 0xa4, 0x65, 0xfc, 0x4a, 0x0c, 0x63, 0x21, 0x82, 0xdc, - 0xc3, 0xa9, 0xb7, 0xda, 0xd7, 0x0c, 0x36, 0x7b, 0xb4, 0x96, 0x9e, 0xbd, 0xd5, 0x4b, 0x32, 0x00, - 0xb4, 0x92, 0xe7, 0x0c, 0x7c, 0x09, 0xad, 0x04, 0x98, 0x08, 0x6a, 0x9b, 0xea, 0xab, 0xb6, 0xe9, - 0x5e, 0x6a, 0xfb, 0x5e, 0x7e, 0xcc, 0x9a, 0x13, 0xd1, 0xbb, 0x29, 0x54, 0xdc, 0x2e, 0x27, 0xe1, - 0xb3, 0x43, 0x4f, 0x51, 0xd2, 0xa2, 0xd5, 0x79, 0x15, 0x4c, 0x90, 0xc7, 0x8a, 0xbe, 0x8d, 0x59, - 0x1b, 0x0a, 0x12, 0xd4, 0x33, 0x30, 0x45, 0x33, 0x36, 0x2c, 0xd3, 0xad, 0x4f, 0x86, 0x64, 0x10, - 0xd2, 0x5c, 0x10, 0x1b, 0x36, 0xd6, 0x1d, 0xcb, 0x26, 0x34, 0xb2, 0x14, 0x44, 0x2e, 0x09, 0x7d, - 0xdb, 0x6f, 0x85, 0x25, 0x41, 0x73, 0x1e, 0x1b, 0xa7, 0x2a, 0xf1, 0xf4, 0x66, 0x77, 0xb0, 0xf6, - 0x47, 0x5b, 0xdd, 0xba, 0x8b, 0xf6, 0x02, 0x99, 0xda, 0x61, 0xf5, 0x24, 0xa8, 0x2c, 0xd5, 0xcd, - 0x5b, 0xac, 0x56, 0xea, 0xa5, 0x4a, 0x3d, 0xbf, 0xd1, 0x53, 0xa3, 0x36, 0xd1, 0xeb, 0x32, 0x90, - 0xb9, 0xdb, 0x32, 0x4c, 0xf4, 0x40, 0x4a, 0x50, 0x09, 0x13, 0x3b, 0x97, 0x2c, 0xfb, 0xa2, 0xdf, - 0x50, 0x83, 0x84, 0x68, 0x6c, 0x02, 0x55, 0x52, 0xfa, 0xaa, 0x52, 0xa6, 0x97, 0x2a, 0xfd, 0x3a, - 0xaf, 0x4a, 0xb7, 0x8b, 0xaa, 0x74, 0x7d, 0x0f, 0xf9, 0xbb, 0xcc, 0x87, 0x74, 0x00, 0x9f, 0xf4, - 0x3b, 0x80, 0x3b, 0x05, 0x18, 0x1f, 0x2d, 0x47, 0x26, 0x1e, 0x80, 0x5f, 0x49, 0xb4, 0xe1, 0xf7, - 0x82, 0x7a, 0x33, 0x04, 0xea, 0xad, 0x1e, 0x7d, 0x82, 0xb1, 0xbf, 0xeb, 0xb8, 0x6f, 0x7f, 0x37, - 0x71, 0x51, 0x3d, 0x01, 0xc7, 0xe6, 0xcb, 0x0b, 0x0b, 0x25, 0xad, 0x54, 0xa9, 0xaf, 0x57, 0x4a, - 0xf5, 0xf3, 0x55, 0xed, 0x9e, 0x7c, 0x0b, 0x3d, 0xa8, 0x00, 0xb8, 0x12, 0x2a, 0xea, 0x66, 0x03, - 0xb7, 0xe4, 0x7a, 0xf4, 0xff, 0x91, 0x8e, 0xd7, 0x27, 0x04, 0xf4, 0x43, 0xe0, 0x7c, 0x65, 0x5a, - 0xbe, 0x55, 0x86, 0x12, 0x8b, 0x07, 0xea, 0x9b, 0x1f, 0x0e, 0xb6, 0xe7, 0x65, 0x70, 0xd4, 0xa3, - 0xc7, 0xb2, 0xf7, 0x9e, 0xf6, 0xbd, 0x2d, 0x03, 0x33, 0x0c, 0x16, 0x6f, 0x1e, 0xff, 0xdc, 0x94, - 0xcc, 0x44, 0x1e, 0xc1, 0x38, 0x9b, 0xb6, 0x7b, 0xdd, 0xbb, 0xff, 0xae, 0x2e, 0xc2, 0x64, 0x1b, - 0xdb, 0xdb, 0x46, 0xa7, 0x63, 0x58, 0x26, 0x5d, 0x90, 0x9b, 0xb9, 0xe5, 0x91, 0xbe, 0xc4, 0xc9, - 0xda, 0xe5, 0xec, 0xaa, 0x6e, 0x3b, 0x46, 0xc3, 0x68, 0xeb, 0xa6, 0xb3, 0x1a, 0x64, 0xd6, 0xf8, - 0x3f, 0xd1, 0x8b, 0x62, 0x4e, 0x6b, 0xc4, 0x9a, 0x84, 0xa8, 0xc4, 0xef, 0xc7, 0x98, 0x92, 0x44, - 0x12, 0x8c, 0xa7, 0x16, 0x9f, 0x48, 0x54, 0x2d, 0x7a, 0xe0, 0xbd, 0xa9, 0x5e, 0x01, 0x27, 0xca, - 0x95, 0x62, 0x55, 0xd3, 0x4a, 0xc5, 0xfa, 0xfa, 0x6a, 0x49, 0x5b, 0x29, 0xd7, 0x6a, 0xe5, 0x6a, - 0xa5, 0x76, 0x90, 0xd6, 0x8e, 0x3e, 0xad, 0xf8, 0x1a, 0x33, 0x8f, 0x1b, 0x2d, 0xc3, 0xc4, 0xe8, - 0xce, 0x03, 0x2a, 0x8c, 0xb8, 0xea, 0x23, 0x8f, 0x33, 0x2b, 0x3f, 0x04, 0xe7, 0xd7, 0xc6, 0xc7, - 0xb9, 0x37, 0xc1, 0xff, 0xc0, 0xcd, 0xff, 0xab, 0x0a, 0x1c, 0xe3, 0x1a, 0xa2, 0x86, 0xb7, 0x87, - 0xb6, 0x92, 0xf7, 0x4b, 0x7c, 0xdb, 0x2d, 0x8b, 0x98, 0xf6, 0xb2, 0xa6, 0xf7, 0xb1, 0x11, 0x02, - 0xeb, 0x9b, 0x7d, 0x58, 0x97, 0x05, 0x58, 0x9f, 0x38, 0x00, 0xcd, 0x78, 0xc8, 0xfe, 0x5e, 0xa2, - 0xc8, 0x5e, 0x01, 0x27, 0x56, 0x0b, 0x5a, 0xbd, 0x5c, 0x2c, 0xaf, 0x16, 0xdc, 0x71, 0x94, 0x1b, - 0xb2, 0x43, 0xcc, 0x75, 0x11, 0xf4, 0x9e, 0xf8, 0x7e, 0x38, 0x03, 0x57, 0xf5, 0xee, 0x68, 0x8b, - 0x5b, 0xba, 0xb9, 0x89, 0x91, 0x21, 0x03, 0xf5, 0x3c, 0x8c, 0x35, 0x48, 0x76, 0x8a, 0x33, 0xbf, - 0x75, 0x13, 0xd1, 0x97, 0xd3, 0x12, 0x34, 0xef, 0x57, 0xf4, 0x4e, 0x5e, 0x21, 0xea, 0xa2, 0x42, - 0x3c, 0x39, 0x1a, 0xbc, 0x7d, 0x7c, 0x87, 0xe8, 0xc6, 0x67, 0x7d, 0xdd, 0x38, 0x2f, 0xe8, 0x46, - 0xf1, 0x60, 0xe4, 0xe3, 0xa9, 0xc9, 0x1f, 0x3f, 0x1c, 0x3a, 0x80, 0x50, 0x6d, 0x32, 0xc2, 0x47, - 0x85, 0x9e, 0xdd, 0xfd, 0xab, 0x15, 0xc8, 0xcd, 0xe3, 0x16, 0x96, 0x5d, 0x89, 0xfc, 0x6e, 0x5a, - 0x76, 0x43, 0x84, 0xc2, 0x40, 0x69, 0x87, 0xaf, 0x8e, 0x38, 0xc6, 0x36, 0xee, 0x38, 0xfa, 0x76, - 0x9b, 0x88, 0x5a, 0xd1, 0x82, 0x04, 0xf4, 0xcb, 0x69, 0x99, 0xed, 0x92, 0x88, 0x62, 0xfe, 0x63, - 0xac, 0x29, 0x7e, 0x3e, 0x0d, 0xe3, 0x35, 0xec, 0x54, 0xed, 0x26, 0xb6, 0x51, 0x2d, 0xc0, 0xe8, - 0x1a, 0x98, 0x24, 0xa0, 0xb8, 0xd3, 0x4c, 0x1f, 0x27, 0x3e, 0x49, 0xbd, 0x1e, 0x66, 0xfc, 0x57, - 0xf2, 0x3b, 0xeb, 0xc6, 0xbb, 0x52, 0xd1, 0xf7, 0x52, 0xb2, 0xbb, 0xb8, 0x6c, 0xc9, 0x90, 0x71, - 0x13, 0xd2, 0x4a, 0xe5, 0x76, 0x64, 0x23, 0x49, 0x25, 0xbf, 0xd1, 0xf5, 0xf6, 0x34, 0xc0, 0x9a, - 0xd9, 0xf1, 0xe4, 0xfa, 0xe8, 0x18, 0x72, 0x45, 0xff, 0x9c, 0x8a, 0x37, 0x8b, 0x09, 0xca, 0x09, - 0x91, 0xd8, 0xeb, 0x63, 0xac, 0x2d, 0x84, 0x12, 0x4b, 0x5e, 0x66, 0xdf, 0x98, 0x81, 0xdc, 0x79, - 0xbd, 0xd5, 0xc2, 0x0e, 0xfa, 0x66, 0x1a, 0x72, 0x45, 0x1b, 0xeb, 0x0e, 0xe6, 0x45, 0x87, 0x60, - 0xdc, 0xb6, 0x2c, 0x67, 0x55, 0x77, 0xb6, 0x98, 0xdc, 0xfc, 0x77, 0xe6, 0x30, 0xf0, 0xbb, 0x7c, - 0xf7, 0x71, 0xa7, 0x28, 0xba, 0x9f, 0x16, 0x6a, 0x4b, 0x0b, 0x9a, 0xa5, 0x85, 0x84, 0xf4, 0x1f, - 0x08, 0xc6, 0xb7, 0x4d, 0xbc, 0x6d, 0x99, 0x46, 0xc3, 0xb3, 0x39, 0xbd, 0x77, 0xf4, 0x51, 0x5f, - 0xa6, 0x73, 0x82, 0x4c, 0x67, 0xa5, 0x4b, 0x89, 0x27, 0xd0, 0xda, 0x00, 0xbd, 0xc7, 0xd5, 0x70, - 0x25, 0xed, 0x0c, 0xd6, 0xeb, 0xd5, 0xf5, 0xa2, 0x56, 0x2a, 0xd4, 0x4b, 0xeb, 0xcb, 0xd5, 0x62, - 0x61, 0x79, 0x5d, 0x2b, 0xad, 0x56, 0xf3, 0x18, 0xfd, 0x7d, 0xda, 0x15, 0x6e, 0xc3, 0xda, 0xc5, - 0x36, 0x5a, 0x94, 0x92, 0x73, 0x94, 0x4c, 0x18, 0x06, 0xbf, 0x2e, 0xed, 0xb4, 0xc1, 0xa4, 0xc3, - 0x38, 0x08, 0x51, 0xde, 0x8f, 0x49, 0x35, 0xf7, 0x48, 0x52, 0x0f, 0x03, 0x49, 0xff, 0xcf, 0x34, - 0x8c, 0x15, 0x2d, 0x73, 0x17, 0xdb, 0x0e, 0x3f, 0xdf, 0xe1, 0xa5, 0x99, 0x12, 0xa5, 0xe9, 0x0e, - 0x92, 0xd8, 0x74, 0x6c, 0xab, 0xed, 0x4d, 0x78, 0xbc, 0x57, 0xf4, 0xc6, 0xb8, 0x12, 0x66, 0x25, - 0x87, 0x2f, 0x7c, 0xf6, 0x2e, 0x48, 0x60, 0x4f, 0xe9, 0x6a, 0x00, 0x0f, 0xc6, 0xc1, 0xa5, 0x37, - 0x03, 0xc9, 0x77, 0x29, 0x5f, 0x53, 0x60, 0x9a, 0x36, 0xbe, 0x1a, 0x26, 0x16, 0x1a, 0xaa, 0xf2, - 0x4b, 0x8e, 0x5d, 0xc2, 0x5f, 0x3a, 0x22, 0x88, 0x3f, 0xa7, 0xb7, 0xdb, 0xfe, 0xf2, 0xf3, 0xd2, - 0x11, 0x8d, 0xbd, 0x53, 0x35, 0x9f, 0xcb, 0x41, 0x46, 0xdf, 0x71, 0xb6, 0xd0, 0x8f, 0xa4, 0x27, - 0x9f, 0x42, 0x67, 0xc0, 0xf8, 0x09, 0x81, 0xe4, 0x38, 0x64, 0x1d, 0xeb, 0x22, 0xf6, 0xe4, 0x40, - 0x5f, 0x5c, 0x38, 0xf4, 0x76, 0xbb, 0x4e, 0x3e, 0x30, 0x38, 0xbc, 0x77, 0xd7, 0xd6, 0xd1, 0x1b, - 0x0d, 0x6b, 0xc7, 0x74, 0xca, 0xde, 0x12, 0x74, 0x90, 0x80, 0xbe, 0x94, 0x92, 0x99, 0xcc, 0x4a, - 0x30, 0x18, 0x0f, 0xb2, 0x0b, 0x03, 0x34, 0xa5, 0x59, 0xb8, 0xb1, 0xb0, 0xba, 0xba, 0x5e, 0xaf, - 0xde, 0x53, 0xaa, 0x04, 0x86, 0xe7, 0x7a, 0xb9, 0xb2, 0x5e, 0x5f, 0x2a, 0xad, 0x17, 0xd7, 0x34, - 0xb2, 0x4e, 0x58, 0x28, 0x16, 0xab, 0x6b, 0x95, 0x7a, 0x1e, 0xa3, 0xb7, 0xa4, 0x61, 0xaa, 0xd8, - 0xb2, 0x3a, 0x3e, 0xc2, 0x57, 0x07, 0x08, 0xfb, 0x62, 0x4c, 0x71, 0x62, 0x44, 0xff, 0x9a, 0x92, - 0x75, 0x3a, 0xf0, 0x04, 0xc2, 0x91, 0x0f, 0xe9, 0xa5, 0xde, 0x28, 0xe5, 0x74, 0xd0, 0x9f, 0x5e, - 0xf2, 0x4d, 0xe2, 0xf3, 0xb7, 0xc1, 0x58, 0x81, 0x2a, 0x06, 0xfa, 0x9b, 0x14, 0xe4, 0x8a, 0x96, - 0xb9, 0x61, 0x6c, 0xba, 0xc6, 0x1c, 0x36, 0xf5, 0x0b, 0x2d, 0x3c, 0xaf, 0x3b, 0xfa, 0xae, 0x81, - 0x2f, 0x91, 0x0a, 0x8c, 0x6b, 0x5d, 0xa9, 0x2e, 0x53, 0x2c, 0x05, 0x5f, 0xd8, 0xd9, 0x24, 0x4c, - 0x8d, 0x6b, 0x7c, 0x92, 0xfa, 0x44, 0xb8, 0x9c, 0xbe, 0xae, 0xda, 0xd8, 0xc6, 0x2d, 0xac, 0x77, - 0xb0, 0x3b, 0x2d, 0x32, 0x71, 0x8b, 0x28, 0xed, 0xb8, 0x16, 0xf6, 0x59, 0x3d, 0x03, 0x53, 0xf4, - 0x13, 0x31, 0x45, 0x3a, 0x44, 0x8d, 0xc7, 0x35, 0x21, 0x4d, 0x7d, 0x0c, 0x64, 0xf1, 0xfd, 0x8e, - 0xad, 0x9f, 0x6a, 0x12, 0xbc, 0x2e, 0x9f, 0xa5, 0x5e, 0x87, 0xb3, 0x9e, 0xd7, 0xe1, 0x6c, 0x8d, - 0xf8, 0x24, 0x6a, 0x34, 0x17, 0x7a, 0xc5, 0xb8, 0x6f, 0x48, 0xfc, 0x7b, 0x3a, 0x50, 0x0c, 0x15, - 0x32, 0xa6, 0xbe, 0x8d, 0x99, 0x5e, 0x90, 0x67, 0xf5, 0x46, 0x38, 0xaa, 0xef, 0xea, 0x8e, 0x6e, - 0x2f, 0x5b, 0x0d, 0xbd, 0x45, 0x06, 0x3f, 0xaf, 0xe5, 0x77, 0x7f, 0x20, 0x3b, 0x42, 0x8e, 0x65, - 0x63, 0x92, 0xcb, 0xdb, 0x11, 0xf2, 0x12, 0x5c, 0xea, 0x46, 0xc3, 0x32, 0x09, 0xff, 0x8a, 0x46, - 0x9e, 0x5d, 0xa9, 0x34, 0x8d, 0x8e, 0x5b, 0x11, 0x42, 0xa5, 0x42, 0xb7, 0x36, 0x6a, 0x7b, 0x66, - 0x83, 0xec, 0x06, 0x8d, 0x6b, 0x61, 0x9f, 0xd5, 0x39, 0x98, 0x64, 0x1b, 0x21, 0x2b, 0xae, 0x5e, - 0xe5, 0x88, 0x5e, 0x5d, 0x23, 0xfa, 0x74, 0x51, 0x3c, 0x67, 0x2b, 0x41, 0x3e, 0x8d, 0xff, 0x49, - 0xbd, 0x0b, 0xae, 0x64, 0xaf, 0xc5, 0x9d, 0x8e, 0x63, 0x6d, 0x53, 0xd0, 0x17, 0x8c, 0x16, 0xad, - 0xc1, 0x18, 0xa9, 0x41, 0x54, 0x16, 0xf5, 0x16, 0x38, 0xde, 0xb6, 0xf1, 0x06, 0xb6, 0xef, 0xd5, - 0xb7, 0x77, 0xee, 0xaf, 0xdb, 0xba, 0xd9, 0x69, 0x5b, 0xb6, 0x73, 0x6a, 0x9c, 0x30, 0xdf, 0xf3, - 0x1b, 0xeb, 0x28, 0xc7, 0x21, 0x47, 0xc5, 0x87, 0x5e, 0x98, 0x95, 0x76, 0xe7, 0x64, 0x15, 0x8a, - 0x34, 0xcf, 0x6e, 0x86, 0x31, 0xd6, 0xc3, 0x11, 0xa0, 0x26, 0x6f, 0x39, 0xd9, 0xb5, 0xae, 0xc0, - 0xa8, 0x68, 0x5e, 0x36, 0xf5, 0x71, 0x90, 0x6b, 0x90, 0x6a, 0x11, 0xcc, 0x26, 0x6f, 0xb9, 0xb2, - 0x77, 0xa1, 0x24, 0x8b, 0xc6, 0xb2, 0xa2, 0x2f, 0x2b, 0x52, 0x1e, 0xa0, 0x51, 0x1c, 0xc7, 0x6b, - 0xd5, 0xdf, 0x4e, 0x0f, 0xd0, 0x6d, 0xde, 0x04, 0x37, 0xb0, 0x3e, 0x91, 0xd9, 0x1f, 0xf3, 0xeb, - 0x73, 0x6b, 0xde, 0x64, 0xd0, 0xb5, 0x4a, 0x6a, 0xf5, 0x82, 0xe6, 0xce, 0xe4, 0xe7, 0xdd, 0x49, - 0xe4, 0x8d, 0x70, 0x7d, 0x9f, 0xdc, 0xa5, 0xfa, 0x7a, 0xa5, 0xb0, 0x52, 0xca, 0x6f, 0x88, 0xb6, - 0x4d, 0xad, 0x5e, 0x5d, 0x5d, 0xd7, 0xd6, 0x2a, 0x95, 0x72, 0x65, 0x91, 0x12, 0x73, 0x4d, 0xc2, - 0x93, 0x41, 0x86, 0xf3, 0x5a, 0xb9, 0x5e, 0x5a, 0x2f, 0x56, 0x2b, 0x0b, 0xe5, 0xc5, 0xbc, 0xd1, - 0xcf, 0x30, 0xba, 0x4f, 0xbd, 0x06, 0xae, 0x12, 0x38, 0x29, 0x57, 0x2b, 0xee, 0xcc, 0xb6, 0x58, - 0xa8, 0x14, 0x4b, 0xee, 0x34, 0xf6, 0xa2, 0x8a, 0xe0, 0x04, 0x25, 0xb7, 0xbe, 0x50, 0x5e, 0xe6, - 0x37, 0xa3, 0x3e, 0x95, 0x52, 0x4f, 0xc1, 0x65, 0xfc, 0xb7, 0x72, 0xe5, 0x5c, 0x61, 0xb9, 0x3c, - 0x9f, 0xff, 0xa3, 0x94, 0x7a, 0x1d, 0x5c, 0x2d, 0xfc, 0x45, 0xf7, 0x95, 0xd6, 0xcb, 0xf3, 0xeb, - 0x2b, 0xe5, 0xda, 0x4a, 0xa1, 0x5e, 0x5c, 0xca, 0x7f, 0x9a, 0xcc, 0x17, 0x7c, 0x03, 0x98, 0x73, - 0xcb, 0x7c, 0x09, 0x3f, 0xa6, 0x17, 0x44, 0x45, 0x7d, 0x74, 0x4f, 0xd8, 0xa3, 0x6d, 0xd8, 0x4f, - 0xf8, 0xa3, 0xc3, 0xbc, 0xa0, 0x42, 0x37, 0xc7, 0xa0, 0x15, 0x4f, 0x87, 0xea, 0x03, 0xa8, 0xd0, - 0x35, 0x70, 0x55, 0xa5, 0x44, 0x91, 0xd2, 0x4a, 0xc5, 0xea, 0xb9, 0x92, 0xb6, 0x7e, 0xbe, 0xb0, - 0xbc, 0x5c, 0xaa, 0xaf, 0x2f, 0x94, 0xb5, 0x5a, 0x3d, 0xbf, 0x81, 0xfe, 0x39, 0xed, 0xaf, 0xe6, - 0x70, 0xd2, 0xfa, 0x9b, 0x74, 0xdc, 0x66, 0x1d, 0xb9, 0x6a, 0xf3, 0x33, 0x90, 0xeb, 0x38, 0xba, - 0xb3, 0xd3, 0x61, 0xad, 0xfa, 0x11, 0xbd, 0x5b, 0xf5, 0x6c, 0x8d, 0x64, 0xd2, 0x58, 0x66, 0xf4, - 0xe5, 0x54, 0x9c, 0x66, 0x3a, 0x84, 0x05, 0x1d, 0x63, 0x00, 0x11, 0x9f, 0x06, 0xe4, 0x69, 0x7b, - 0xb9, 0xb6, 0x5e, 0x58, 0xd6, 0x4a, 0x85, 0xf9, 0x7b, 0xfd, 0x65, 0x1c, 0xac, 0x9e, 0x80, 0x63, - 0x6b, 0x95, 0xc2, 0xdc, 0x72, 0x89, 0x34, 0x97, 0x6a, 0xa5, 0x52, 0x2a, 0xba, 0x72, 0xff, 0x65, - 0xb2, 0x69, 0xe2, 0x5a, 0xd0, 0x84, 0x6f, 0xd7, 0xca, 0xe1, 0xe4, 0xff, 0x2d, 0x69, 0xdf, 0xa2, - 0x40, 0xc3, 0x78, 0x5a, 0xc3, 0xc5, 0xe1, 0x4b, 0x52, 0xee, 0x44, 0x52, 0x9c, 0xc4, 0xc3, 0xe3, - 0x17, 0x06, 0xc0, 0xe3, 0x04, 0x1c, 0xe3, 0xf1, 0x20, 0x6e, 0x45, 0xe1, 0x30, 0x7c, 0x7d, 0x1c, - 0x72, 0x35, 0xdc, 0xc2, 0x0d, 0x07, 0xbd, 0x8d, 0x33, 0x26, 0x66, 0x20, 0xed, 0xbb, 0xb1, 0xa4, - 0x8d, 0xa6, 0x30, 0x7d, 0x4e, 0x77, 0x4d, 0x9f, 0x23, 0xcc, 0x00, 0x25, 0x96, 0x19, 0x90, 0x49, - 0xc0, 0x0c, 0xc8, 0x0e, 0x6e, 0x06, 0xe4, 0xfa, 0x99, 0x01, 0xe8, 0xf5, 0xb9, 0xb8, 0xbd, 0x04, - 0x15, 0xf5, 0xe1, 0x0e, 0xfe, 0xff, 0x23, 0x13, 0xa7, 0x57, 0xe9, 0xc9, 0x71, 0x3c, 0x2d, 0xfe, - 0x91, 0x92, 0xc0, 0xf2, 0x83, 0x7a, 0x2d, 0x5c, 0x1d, 0xbc, 0xaf, 0x97, 0x9e, 0x5a, 0xae, 0xd5, - 0x6b, 0x64, 0xc4, 0x2f, 0x56, 0x35, 0x6d, 0x6d, 0x95, 0xae, 0x21, 0x9f, 0x04, 0x35, 0xa0, 0xa2, - 0xad, 0x55, 0xe8, 0xf8, 0xbe, 0x29, 0x52, 0x5f, 0x28, 0x57, 0xe6, 0xd7, 0xfd, 0x36, 0x53, 0x59, - 0xa8, 0xe6, 0xb7, 0xdc, 0x29, 0x1b, 0x47, 0xdd, 0x1d, 0xa0, 0x59, 0x09, 0x85, 0xca, 0xfc, 0xfa, - 0x4a, 0xa5, 0xb4, 0x52, 0xad, 0x94, 0x8b, 0x24, 0xbd, 0x56, 0xaa, 0xe7, 0x0d, 0x77, 0xa0, 0xe9, - 0xb2, 0x28, 0x6a, 0xa5, 0x82, 0x56, 0x5c, 0x2a, 0x69, 0xb4, 0xc8, 0xfb, 0xd4, 0xeb, 0xe1, 0x4c, - 0xa1, 0x52, 0xad, 0xbb, 0x29, 0x85, 0xca, 0xbd, 0xf5, 0x7b, 0x57, 0x4b, 0xeb, 0xab, 0x5a, 0xb5, - 0x58, 0xaa, 0xd5, 0xdc, 0x76, 0xca, 0xec, 0x8f, 0x7c, 0x4b, 0x7d, 0x32, 0xdc, 0xc6, 0xb1, 0x56, - 0xaa, 0x93, 0x0d, 0xcb, 0x95, 0x2a, 0xf1, 0x59, 0x99, 0x2f, 0xad, 0x2f, 0x15, 0x6a, 0xeb, 0xe5, - 0x4a, 0xb1, 0xba, 0xb2, 0x5a, 0xa8, 0x97, 0xdd, 0xe6, 0xbc, 0xaa, 0x55, 0xeb, 0xd5, 0xf5, 0x73, - 0x25, 0xad, 0x56, 0xae, 0x56, 0xf2, 0xa6, 0x5b, 0x65, 0xae, 0xfd, 0x7b, 0xfd, 0xb0, 0xa5, 0x5e, - 0x05, 0xa7, 0xbc, 0xf4, 0xe5, 0xaa, 0x2b, 0x68, 0xce, 0x22, 0x69, 0x27, 0x6a, 0x91, 0xfc, 0x4b, - 0x1a, 0x32, 0x35, 0xc7, 0x6a, 0xa3, 0x9f, 0x0e, 0x3a, 0x98, 0xd3, 0x00, 0x36, 0xd9, 0x7f, 0x74, - 0x67, 0x61, 0x6c, 0x5e, 0xc6, 0xa5, 0xa0, 0x3f, 0x94, 0xde, 0x34, 0x09, 0xfa, 0x6c, 0xab, 0x1d, - 0x62, 0xab, 0xfc, 0x50, 0xee, 0x14, 0x49, 0x38, 0xa1, 0x78, 0xfa, 0xfe, 0x2b, 0x83, 0x6c, 0x8b, - 0x20, 0x38, 0xc9, 0xc1, 0xe6, 0xca, 0xdf, 0x53, 0x09, 0xac, 0x5e, 0x0e, 0x97, 0x75, 0x29, 0x17, - 0xd1, 0xa9, 0x0d, 0xf5, 0xa7, 0xe0, 0x11, 0x9c, 0x7a, 0x97, 0x56, 0xaa, 0xe7, 0x4a, 0xbe, 0x22, - 0xcf, 0x17, 0xea, 0x85, 0xfc, 0x26, 0xfa, 0xbc, 0x02, 0x99, 0x15, 0x6b, 0xb7, 0x7b, 0xaf, 0xca, - 0xc4, 0x97, 0xb8, 0xb5, 0x50, 0xef, 0x55, 0xf4, 0x9a, 0x97, 0x12, 0xfb, 0x4a, 0xf8, 0xbe, 0xf4, - 0x97, 0xd2, 0x71, 0xc4, 0xbe, 0x72, 0xd0, 0xcd, 0xe8, 0x7f, 0x18, 0x44, 0xec, 0x21, 0xa2, 0xc5, - 0xea, 0x19, 0x38, 0x1d, 0x7c, 0x28, 0xcf, 0x97, 0x2a, 0xf5, 0xf2, 0xc2, 0xbd, 0x81, 0x70, 0xcb, - 0x9a, 0x94, 0xf8, 0xfb, 0x75, 0x63, 0xd1, 0x33, 0x8d, 0x53, 0x70, 0x3c, 0xf8, 0xb6, 0x58, 0xaa, - 0x7b, 0x5f, 0xee, 0x43, 0x0f, 0x64, 0x61, 0x8a, 0x76, 0xeb, 0x6b, 0xed, 0xa6, 0xee, 0x60, 0xf4, - 0xb8, 0x00, 0xdd, 0x1b, 0xe0, 0x68, 0x79, 0x75, 0xa1, 0x56, 0x73, 0x2c, 0x5b, 0xdf, 0xc4, 0x85, - 0x66, 0xd3, 0x66, 0xd2, 0xea, 0x4e, 0x46, 0xef, 0x96, 0x5e, 0xe7, 0x13, 0x87, 0x12, 0x5a, 0x66, - 0x08, 0xea, 0x5f, 0x93, 0x5a, 0x97, 0x93, 0x20, 0x18, 0x0f, 0xfd, 0xfb, 0x86, 0xdc, 0xe6, 0xc2, - 0x71, 0xd9, 0x38, 0xf3, 0x9c, 0x34, 0x4c, 0xd4, 0x8d, 0x6d, 0xfc, 0x0c, 0xcb, 0xc4, 0x1d, 0x75, - 0x0c, 0x94, 0xc5, 0x95, 0x7a, 0xfe, 0x88, 0xfb, 0xe0, 0x1a, 0x55, 0x29, 0xf2, 0x50, 0x72, 0x0b, - 0x70, 0x1f, 0x0a, 0xf5, 0xbc, 0xe2, 0x3e, 0xac, 0x94, 0xea, 0xf9, 0x8c, 0xfb, 0x50, 0x29, 0xd5, - 0xf3, 0x59, 0xf7, 0x61, 0x75, 0xb9, 0x9e, 0xcf, 0xb9, 0x0f, 0xe5, 0x5a, 0x3d, 0x3f, 0xe6, 0x3e, - 0xcc, 0xd5, 0xea, 0xf9, 0x71, 0xf7, 0xe1, 0x5c, 0xad, 0x9e, 0x9f, 0x70, 0x1f, 0x8a, 0xf5, 0x7a, - 0x1e, 0xdc, 0x87, 0xbb, 0x6b, 0xf5, 0xfc, 0xa4, 0xfb, 0x50, 0x28, 0xd6, 0xf3, 0x53, 0xe4, 0xa1, - 0x54, 0xcf, 0x4f, 0xbb, 0x0f, 0xb5, 0x5a, 0x3d, 0x3f, 0x43, 0x28, 0xd7, 0xea, 0xf9, 0xa3, 0xa4, - 0xac, 0x72, 0x3d, 0x9f, 0x77, 0x1f, 0x96, 0x6a, 0xf5, 0xfc, 0x31, 0x92, 0xb9, 0x56, 0xcf, 0xab, - 0xa4, 0xd0, 0x5a, 0x3d, 0x7f, 0x19, 0xc9, 0x53, 0xab, 0xe7, 0x8f, 0x93, 0x22, 0x6a, 0xf5, 0xfc, - 0x09, 0xc2, 0x46, 0xa9, 0x9e, 0x3f, 0x49, 0xf2, 0x68, 0xf5, 0xfc, 0xe5, 0xe4, 0x53, 0xa5, 0x9e, - 0x3f, 0x45, 0x18, 0x2b, 0xd5, 0xf3, 0x57, 0x90, 0x07, 0xad, 0x9e, 0x47, 0xe4, 0x53, 0xa1, 0x9e, - 0xbf, 0x12, 0x3d, 0x02, 0x26, 0x16, 0xb1, 0x43, 0x41, 0x44, 0x79, 0x50, 0x16, 0xb1, 0xc3, 0x9b, - 0xf1, 0xdf, 0x50, 0xe0, 0x72, 0x36, 0xf5, 0x5b, 0xb0, 0xad, 0xed, 0x65, 0xbc, 0xa9, 0x37, 0xf6, - 0x4a, 0xf7, 0xbb, 0x26, 0x14, 0xbf, 0x2f, 0xab, 0x42, 0xa6, 0x1d, 0x74, 0x46, 0xe4, 0x39, 0xd2, - 0xe2, 0xf4, 0x16, 0xa3, 0x94, 0x60, 0x31, 0x8a, 0x59, 0x64, 0xff, 0xc4, 0x6b, 0xb4, 0xb0, 0x7e, - 0x9c, 0xea, 0x5a, 0x3f, 0x76, 0x9b, 0x49, 0x1b, 0xdb, 0x1d, 0xcb, 0xd4, 0x5b, 0x35, 0xb6, 0x71, - 0x4f, 0x57, 0xbd, 0xba, 0x93, 0xd5, 0xa7, 0x78, 0x2d, 0x83, 0x5a, 0x65, 0x4f, 0x8a, 0x9a, 0xe1, - 0x76, 0x57, 0x33, 0xa4, 0x91, 0x7c, 0xda, 0x6f, 0x24, 0x75, 0xa1, 0x91, 0xdc, 0x75, 0x00, 0xda, - 0xf1, 0xda, 0x4b, 0x79, 0xb0, 0xa9, 0x45, 0xe0, 0xd6, 0xea, 0x2d, 0x57, 0x2b, 0xe8, 0xf3, 0x69, - 0x38, 0x59, 0x32, 0x7b, 0x59, 0xf8, 0xbc, 0x2e, 0xbc, 0x85, 0x87, 0x66, 0x55, 0x14, 0xe9, 0x6d, - 0x3d, 0xab, 0xdd, 0x9b, 0x66, 0x88, 0x44, 0x3f, 0xe3, 0x4b, 0xb4, 0x26, 0x48, 0xf4, 0xce, 0xc1, - 0x49, 0xc7, 0x13, 0x68, 0x65, 0xa8, 0x1d, 0x50, 0x06, 0x7d, 0x3b, 0x03, 0x8f, 0xa0, 0xbe, 0x37, - 0x8c, 0x43, 0xda, 0xca, 0x0a, 0x66, 0x53, 0xc3, 0x1d, 0x47, 0xb7, 0x1d, 0xe1, 0x3c, 0x74, 0xd7, - 0x54, 0x2a, 0x95, 0xc0, 0x54, 0x2a, 0xdd, 0x77, 0x2a, 0x85, 0xde, 0xc5, 0x9b, 0x0f, 0xe7, 0x45, - 0x8c, 0x0b, 0xbd, 0xfb, 0xff, 0xa8, 0x1a, 0x86, 0x41, 0xed, 0xdb, 0x15, 0x3f, 0x27, 0x40, 0xbd, - 0x70, 0xe0, 0x12, 0xe2, 0x21, 0xfe, 0x87, 0xc3, 0xb5, 0xf3, 0x32, 0xfc, 0x37, 0xd1, 0x28, 0xc9, - 0x37, 0x13, 0x35, 0xd0, 0x3f, 0x3b, 0x06, 0x13, 0xa4, 0x2d, 0x2c, 0x1b, 0xe6, 0x45, 0xf4, 0xa0, - 0x02, 0x53, 0x15, 0x7c, 0xa9, 0xb8, 0xa5, 0xb7, 0x5a, 0xd8, 0xdc, 0xc4, 0xbc, 0xd9, 0x7e, 0x0a, - 0xc6, 0xf4, 0x76, 0xbb, 0x12, 0xec, 0x33, 0x78, 0xaf, 0xac, 0xff, 0xfd, 0x56, 0xcf, 0x46, 0x9e, - 0x8a, 0x68, 0xe4, 0x7e, 0xb9, 0xb3, 0x7c, 0x99, 0x21, 0x33, 0xe4, 0x6b, 0x60, 0xb2, 0xe1, 0x65, - 0xf1, 0xcf, 0x4d, 0xf0, 0x49, 0xe8, 0xef, 0x62, 0x75, 0x03, 0x52, 0x85, 0xc7, 0x53, 0x0a, 0x3c, - 0x64, 0x3b, 0xe4, 0x04, 0x1c, 0xab, 0x57, 0xab, 0xeb, 0x2b, 0x85, 0xca, 0xbd, 0xc1, 0x79, 0xe5, - 0x0d, 0xf4, 0xca, 0x0c, 0xcc, 0xd4, 0xac, 0xd6, 0x2e, 0x0e, 0x60, 0x2a, 0x0b, 0x0e, 0x39, 0xbc, - 0x9c, 0x52, 0xfb, 0xe4, 0xa4, 0x9e, 0x84, 0x9c, 0x6e, 0x76, 0x2e, 0x61, 0xcf, 0x36, 0x64, 0x6f, - 0x0c, 0xc6, 0x0f, 0xf3, 0xed, 0x58, 0x13, 0x61, 0xbc, 0xbd, 0x8f, 0x24, 0x45, 0xae, 0x42, 0x80, - 0x3c, 0x03, 0x53, 0x1d, 0xba, 0x59, 0x58, 0xe7, 0xf6, 0x84, 0x85, 0x34, 0xc2, 0x22, 0xdd, 0xad, - 0x56, 0x18, 0x8b, 0xe4, 0x0d, 0x3d, 0xe8, 0x37, 0xff, 0x35, 0x01, 0xe2, 0xc2, 0x41, 0x18, 0x8b, - 0x07, 0xf2, 0xab, 0x87, 0x3d, 0xc3, 0x3b, 0x05, 0xc7, 0x59, 0xab, 0x5d, 0x2f, 0x2e, 0x15, 0x96, - 0x97, 0x4b, 0x95, 0xc5, 0xd2, 0x7a, 0x79, 0x9e, 0x6e, 0x55, 0x04, 0x29, 0x85, 0x7a, 0xbd, 0xb4, - 0xb2, 0x5a, 0xaf, 0xad, 0x97, 0x9e, 0x5a, 0x2c, 0x95, 0xe6, 0x89, 0x4b, 0x1c, 0x39, 0xd3, 0xe2, - 0x39, 0x2f, 0x16, 0x2a, 0xb5, 0xf3, 0x25, 0x2d, 0xbf, 0x75, 0xa6, 0x00, 0x93, 0x5c, 0x3f, 0xef, - 0x72, 0x37, 0x8f, 0x37, 0xf4, 0x9d, 0x16, 0xb3, 0xd5, 0xf2, 0x47, 0x5c, 0xee, 0x88, 0x6c, 0xaa, - 0x66, 0x6b, 0x2f, 0x9f, 0x52, 0xf3, 0x30, 0xc5, 0x77, 0xe9, 0xf9, 0x34, 0x7a, 0xfb, 0x55, 0x30, - 0x71, 0xde, 0xb2, 0x2f, 0x12, 0x3f, 0x2e, 0xf4, 0x3e, 0x1a, 0xd7, 0xc4, 0x3b, 0x21, 0xca, 0x0d, - 0xec, 0xaf, 0x96, 0xf7, 0x16, 0xf0, 0xa8, 0xcd, 0xf6, 0x3d, 0x05, 0x7a, 0x0d, 0x4c, 0x5e, 0xf2, - 0x72, 0x07, 0x2d, 0x9d, 0x4b, 0x42, 0xff, 0x4d, 0x6e, 0xff, 0xbf, 0x7f, 0x91, 0xc9, 0xef, 0x4f, - 0xbf, 0x2d, 0x0d, 0xb9, 0x45, 0xec, 0x14, 0x5a, 0x2d, 0x5e, 0x6e, 0x2f, 0x95, 0x3e, 0xd9, 0x23, - 0x54, 0xa2, 0xd0, 0x6a, 0x85, 0x37, 0x2a, 0x4e, 0x40, 0x9e, 0x07, 0xba, 0x90, 0x26, 0xe9, 0x37, - 0xd7, 0xa7, 0xc0, 0xe4, 0x25, 0xf6, 0x51, 0xc5, 0xdf, 0xe3, 0x7e, 0x88, 0xb3, 0x72, 0x1e, 0x1b, - 0xc4, 0xb4, 0x49, 0x45, 0xef, 0x95, 0x7b, 0xf9, 0xd4, 0x7b, 0x60, 0x6c, 0xa7, 0x83, 0x8b, 0x7a, - 0x07, 0x13, 0xde, 0xba, 0x6b, 0x5a, 0xbd, 0x70, 0x1f, 0x6e, 0x38, 0xb3, 0xe5, 0x6d, 0xd7, 0xa0, - 0x5e, 0xa3, 0x19, 0xfd, 0x30, 0x31, 0xec, 0x5d, 0xf3, 0x28, 0xb8, 0x93, 0x92, 0x4b, 0x86, 0xb3, - 0x55, 0xdc, 0xd2, 0x1d, 0xb6, 0xb6, 0xed, 0xbf, 0xa3, 0x17, 0x0e, 0x00, 0x67, 0xe4, 0x5e, 0x70, - 0xe8, 0x01, 0xc1, 0xd8, 0x20, 0x0e, 0x61, 0x03, 0x77, 0x10, 0x10, 0xff, 0x31, 0x0d, 0x99, 0x6a, - 0x1b, 0x9b, 0xd2, 0xa7, 0x61, 0x7c, 0xd9, 0xa6, 0xbb, 0x64, 0xfb, 0xa0, 0xbc, 0x77, 0x98, 0x5f, - 0x69, 0xb7, 0xe4, 0x10, 0xc9, 0x9e, 0x85, 0x8c, 0x61, 0x6e, 0x58, 0xcc, 0x30, 0xbd, 0x32, 0x64, - 0x13, 0xa8, 0x6c, 0x6e, 0x58, 0x1a, 0xc9, 0x28, 0xeb, 0x18, 0x16, 0x55, 0x76, 0xf2, 0xe2, 0xfe, - 0xce, 0x38, 0xe4, 0xa8, 0x3a, 0xa3, 0x97, 0x28, 0xa0, 0x14, 0x9a, 0xcd, 0x10, 0xc1, 0xa7, 0xf7, - 0x09, 0xde, 0x22, 0xbf, 0xf9, 0x98, 0xf8, 0xef, 0x62, 0x30, 0x13, 0xc9, 0xbe, 0x9d, 0x35, 0xa9, - 0x42, 0xb3, 0x19, 0xee, 0x83, 0xea, 0x17, 0x98, 0x16, 0x0b, 0xe4, 0x5b, 0xb8, 0x22, 0xd7, 0xc2, - 0x63, 0x0f, 0x04, 0xa1, 0xfc, 0x25, 0x0f, 0xd1, 0x3f, 0xa5, 0x61, 0x6c, 0xd9, 0xe8, 0x38, 0x2e, - 0x36, 0x05, 0x19, 0x6c, 0xae, 0x82, 0x09, 0x4f, 0x34, 0x6e, 0x97, 0xe7, 0xf6, 0xe7, 0x41, 0x02, - 0x7a, 0x1d, 0x8f, 0xce, 0xdd, 0x22, 0x3a, 0x8f, 0x8f, 0xae, 0x3d, 0xe3, 0x22, 0xfc, 0x94, 0x41, - 0x50, 0x6c, 0xba, 0xbb, 0xd8, 0xdf, 0xf5, 0x05, 0xbe, 0x22, 0x08, 0xfc, 0xd6, 0x41, 0x8a, 0x4c, - 0x5e, 0xe8, 0x5f, 0x48, 0x03, 0xb8, 0x65, 0xb3, 0xa3, 0x5c, 0x8f, 0x12, 0x0e, 0x68, 0x47, 0x48, - 0xf7, 0x95, 0xbc, 0x74, 0x57, 0x44, 0xe9, 0xfe, 0x6c, 0xff, 0xaa, 0x46, 0x1d, 0xd9, 0x52, 0xf3, - 0xa0, 0x18, 0xbe, 0x68, 0xdd, 0x47, 0xf4, 0x36, 0x5f, 0xa8, 0xab, 0x82, 0x50, 0x6f, 0x1f, 0xb0, - 0xa4, 0xe4, 0xe5, 0xfa, 0x57, 0x69, 0x18, 0xab, 0x61, 0xc7, 0xed, 0x26, 0xd1, 0x39, 0x99, 0x1e, - 0x9e, 0x6b, 0xdb, 0x69, 0xc9, 0xb6, 0xfd, 0x83, 0x94, 0x6c, 0xa0, 0x97, 0x40, 0x32, 0x8c, 0xa7, - 0x90, 0xc5, 0x83, 0x87, 0xa4, 0x02, 0xbd, 0xf4, 0xa3, 0x96, 0xbc, 0x74, 0xdf, 0x92, 0xf6, 0x37, - 0xe6, 0xc5, 0x93, 0x16, 0xbc, 0x59, 0x9c, 0xda, 0x6f, 0x16, 0xcb, 0x9f, 0xb4, 0xe0, 0xeb, 0x18, - 0xbe, 0x2b, 0x1d, 0xdb, 0xd8, 0x18, 0xc2, 0x86, 0xf1, 0x20, 0xf2, 0x7a, 0x96, 0x02, 0x39, 0xb6, - 0xb2, 0x7c, 0x67, 0xf4, 0xca, 0x72, 0xff, 0xa9, 0xc5, 0x7b, 0x07, 0x30, 0xe5, 0xa2, 0x96, 0x7b, - 0x7d, 0x36, 0xd2, 0x1c, 0x1b, 0x37, 0x41, 0x96, 0x44, 0xa2, 0x64, 0xe3, 0x5c, 0xb0, 0xd7, 0xef, - 0x91, 0x28, 0xb9, 0x5f, 0x35, 0x9a, 0x29, 0x36, 0x0a, 0x43, 0x58, 0x21, 0x1e, 0x04, 0x85, 0x77, - 0x7d, 0x3e, 0xe5, 0x1b, 0x21, 0xef, 0xcd, 0x30, 0xf3, 0xef, 0x93, 0x62, 0x4c, 0x8c, 0x86, 0x65, - 0x3a, 0xf8, 0x7e, 0x6e, 0x4d, 0xde, 0x4f, 0x88, 0xb4, 0x0c, 0x4e, 0xc1, 0x98, 0x63, 0xf3, 0xeb, - 0xf4, 0xde, 0x2b, 0xdf, 0xe3, 0x64, 0xc5, 0x1e, 0xa7, 0x02, 0x67, 0x0c, 0xb3, 0xd1, 0xda, 0x69, - 0x62, 0x0d, 0xb7, 0x74, 0xb7, 0x56, 0x9d, 0x42, 0x67, 0x1e, 0xb7, 0xb1, 0xd9, 0xc4, 0xa6, 0x43, - 0xf9, 0xf4, 0x7c, 0x72, 0x25, 0x72, 0xa2, 0x6f, 0xf2, 0x8a, 0x71, 0x87, 0xa8, 0x18, 0x8f, 0xea, - 0x35, 0xaf, 0x88, 0x30, 0x42, 0x6f, 0x05, 0xa0, 0x75, 0x3b, 0x67, 0xe0, 0x4b, 0xac, 0x43, 0xbc, - 0xa2, 0xcb, 0x14, 0xad, 0xfa, 0x19, 0x34, 0x2e, 0x33, 0xfa, 0xaa, 0xaf, 0x0c, 0x77, 0x09, 0xca, - 0x70, 0x93, 0x24, 0x0b, 0xf1, 0xf4, 0xa0, 0x3d, 0xc0, 0x5a, 0xc7, 0x34, 0x4c, 0x04, 0x2b, 0x94, - 0x8a, 0x7a, 0x05, 0x9c, 0xf0, 0x7c, 0x1e, 0x2a, 0xa5, 0xd2, 0x7c, 0x6d, 0x7d, 0x6d, 0x75, 0x51, - 0x2b, 0xcc, 0x97, 0xf2, 0xa0, 0xaa, 0x30, 0x53, 0x9d, 0xbb, 0xbb, 0x54, 0xac, 0xfb, 0xae, 0x0a, - 0x19, 0xf4, 0x97, 0x69, 0xc8, 0x12, 0x87, 0x72, 0xf4, 0xb4, 0x21, 0x69, 0x4e, 0x47, 0xd8, 0xe1, - 0xf1, 0x27, 0x52, 0xf2, 0xb1, 0x2a, 0x99, 0x30, 0x09, 0x57, 0x07, 0x8a, 0x55, 0x19, 0x41, 0x28, - 0xf9, 0xe6, 0xe9, 0x36, 0xc9, 0xda, 0x96, 0x75, 0xe9, 0x27, 0xb9, 0x49, 0xba, 0xf5, 0x3f, 0xe4, - 0x26, 0xd9, 0x83, 0x85, 0x91, 0x37, 0xc9, 0x1e, 0xed, 0x2e, 0xa2, 0x99, 0xa2, 0x67, 0x66, 0xfd, - 0x05, 0x99, 0xe7, 0xa4, 0x0f, 0xb4, 0x20, 0x53, 0x80, 0x69, 0xc3, 0x74, 0xb0, 0x6d, 0xea, 0xad, - 0x85, 0x96, 0xbe, 0xe9, 0x1d, 0xa0, 0xef, 0x9e, 0x85, 0x97, 0xb9, 0x3c, 0x9a, 0xf8, 0x87, 0x7a, - 0x1a, 0xc0, 0xc1, 0xdb, 0xed, 0x96, 0xee, 0x04, 0xaa, 0xc7, 0xa5, 0xf0, 0xda, 0x97, 0x11, 0xb5, - 0xef, 0x66, 0xb8, 0x8c, 0x82, 0x56, 0xdf, 0x6b, 0xe3, 0x35, 0xd3, 0x78, 0xfa, 0x0e, 0x09, 0xa1, - 0x44, 0x75, 0xb4, 0xd7, 0x27, 0x61, 0x59, 0x22, 0xd7, 0xb5, 0x2c, 0xf1, 0x8f, 0xd2, 0x47, 0x33, - 0xbd, 0x56, 0xdf, 0xe7, 0x68, 0xa6, 0xdf, 0xd2, 0x94, 0xae, 0x96, 0xe6, 0x1b, 0x0b, 0x19, 0x09, - 0x63, 0x81, 0x47, 0x25, 0x2b, 0x69, 0x68, 0xbf, 0x56, 0xea, 0xec, 0x67, 0x54, 0x35, 0x46, 0x30, - 0x91, 0x53, 0x60, 0x86, 0x16, 0x3d, 0x67, 0x59, 0x17, 0xb7, 0x75, 0xfb, 0x22, 0xb2, 0x0f, 0xa4, - 0x8a, 0x91, 0x6b, 0x22, 0xa1, 0x0b, 0x7d, 0x9f, 0xe1, 0x51, 0x5f, 0x14, 0x51, 0x7f, 0x6c, 0xb8, - 0xb8, 0x3c, 0x9e, 0x47, 0xb3, 0x28, 0xf2, 0x26, 0x1f, 0xcf, 0xbb, 0x05, 0x3c, 0x9f, 0x10, 0x9b, - 0xc1, 0xe4, 0x71, 0xfd, 0x63, 0x1f, 0x57, 0xaf, 0xa3, 0xe7, 0xe7, 0x93, 0xc3, 0xc4, 0x15, 0x7d, - 0x6d, 0x30, 0xec, 0x3c, 0xbe, 0x06, 0xc0, 0x2e, 0x0f, 0xca, 0x45, 0x7f, 0x0b, 0xcb, 0x7d, 0xe4, - 0x2b, 0x94, 0x49, 0x0e, 0xcd, 0x10, 0x96, 0x47, 0x82, 0xe6, 0x71, 0x91, 0x85, 0x6a, 0x3b, 0x51, - 0x4c, 0xbf, 0x22, 0xbd, 0x4e, 0xd3, 0x53, 0x40, 0x94, 0xbb, 0xd1, 0xb4, 0x4a, 0xb9, 0x45, 0x1e, - 0x79, 0x36, 0x93, 0x47, 0xf3, 0x05, 0x59, 0x98, 0xf0, 0x0e, 0xcf, 0x92, 0xd8, 0xee, 0x3e, 0x86, - 0x27, 0x21, 0xd7, 0xb1, 0x76, 0xec, 0x06, 0x66, 0x2b, 0x67, 0xec, 0x6d, 0x80, 0x55, 0x9e, 0xbe, - 0xe3, 0xf9, 0x3e, 0x93, 0x21, 0x13, 0xdb, 0x64, 0x08, 0x37, 0x48, 0xa3, 0x06, 0xf8, 0x17, 0x4a, - 0x07, 0xe4, 0x14, 0x30, 0xab, 0x61, 0xe7, 0xe1, 0x38, 0xc6, 0xff, 0x81, 0xd4, 0x1a, 0x42, 0x9f, - 0x9a, 0xc4, 0x53, 0xb9, 0xea, 0x00, 0x86, 0xea, 0x95, 0x70, 0xb9, 0x97, 0x83, 0x59, 0xa8, 0xc4, - 0x22, 0x5d, 0xd3, 0x96, 0xf3, 0x0a, 0x7a, 0x56, 0x06, 0xf2, 0x94, 0xb5, 0xaa, 0x6f, 0xac, 0xa1, - 0x97, 0xa6, 0x0e, 0xdb, 0x22, 0x0d, 0x9f, 0x62, 0x7e, 0x2e, 0x2d, 0x1b, 0xf4, 0x4b, 0x10, 0x7c, - 0x50, 0xbb, 0x10, 0x4d, 0x1a, 0xa0, 0x99, 0x45, 0x28, 0x1f, 0xfa, 0x9d, 0x94, 0x4c, 0x0c, 0x31, - 0x39, 0x16, 0x93, 0xef, 0x95, 0xbe, 0x98, 0xf1, 0x62, 0x20, 0x2c, 0xd8, 0xd6, 0xf6, 0x9a, 0xdd, - 0x42, 0xff, 0xa7, 0x54, 0x88, 0xc6, 0x10, 0xf3, 0x3f, 0x1d, 0x6e, 0xfe, 0xe7, 0x41, 0xd9, 0xb1, - 0x5b, 0xde, 0xf0, 0xbd, 0x63, 0xb7, 0x06, 0x18, 0xbe, 0xd5, 0xeb, 0x61, 0x46, 0x6f, 0x36, 0x57, - 0xf5, 0x4d, 0x5c, 0x74, 0xe7, 0xd5, 0xa6, 0xc3, 0xce, 0x47, 0x77, 0xa5, 0x46, 0x76, 0x45, 0xdf, - 0x94, 0xde, 0x89, 0x13, 0x40, 0x62, 0xf2, 0x19, 0xc9, 0xf0, 0xe6, 0x0e, 0x09, 0x8d, 0x2d, 0x3d, - 0x88, 0xd6, 0xc0, 0xde, 0x24, 0x77, 0xe8, 0x24, 0xf8, 0x4e, 0x5e, 0xb3, 0x7e, 0x3f, 0x0d, 0x63, - 0xae, 0xbc, 0x0b, 0xcd, 0x26, 0x7a, 0xa4, 0x10, 0xd4, 0x24, 0x74, 0x8f, 0xf4, 0x79, 0xd2, 0x9b, - 0xd3, 0x5e, 0x0d, 0x29, 0xfd, 0x10, 0x4c, 0x02, 0x21, 0xa6, 0x05, 0x21, 0xca, 0xed, 0x41, 0x47, - 0x16, 0x91, 0xbc, 0xf8, 0x3e, 0x9d, 0x86, 0x69, 0x6f, 0x1e, 0xb1, 0x80, 0x9d, 0xc6, 0x16, 0xba, - 0x55, 0x76, 0xa1, 0x89, 0xb5, 0xb4, 0xb4, 0xdf, 0xd2, 0xd0, 0x8f, 0x52, 0x31, 0x55, 0x5e, 0x28, - 0x39, 0x64, 0x95, 0x2e, 0x96, 0x2e, 0x46, 0x11, 0x4c, 0x5e, 0x98, 0x5f, 0x4d, 0x03, 0xd4, 0x2d, - 0x7f, 0xae, 0x7b, 0x00, 0x49, 0xbe, 0x58, 0xfa, 0xbe, 0x04, 0x56, 0xf1, 0xa0, 0xd8, 0xf8, 0x3d, - 0x87, 0xe4, 0x16, 0x5b, 0xbf, 0x92, 0x46, 0xd2, 0xd6, 0x27, 0xe6, 0x77, 0xda, 0x2d, 0xa3, 0xa1, - 0x3b, 0xdd, 0xfb, 0xc2, 0xe1, 0xe2, 0x25, 0x17, 0x1f, 0xc5, 0x32, 0x0a, 0xfd, 0x32, 0x42, 0x64, - 0x49, 0x0f, 0xdb, 0xa6, 0xbd, 0xc3, 0xb6, 0x92, 0x7b, 0x3d, 0x7d, 0x88, 0x8f, 0x40, 0x3d, 0x15, - 0x38, 0x5a, 0x6d, 0x63, 0x73, 0xce, 0xc6, 0x7a, 0xb3, 0x61, 0xef, 0x6c, 0x5f, 0xe8, 0xf0, 0x4e, - 0x0d, 0xd1, 0x3a, 0xca, 0x2d, 0x1d, 0xa7, 0x85, 0xa5, 0x63, 0xf4, 0x6c, 0x45, 0xf6, 0xe8, 0x37, - 0xb7, 0xc1, 0xc1, 0xf1, 0x30, 0xc0, 0x50, 0x17, 0x6b, 0x2b, 0xae, 0x6b, 0x95, 0x38, 0x13, 0x67, - 0x95, 0xf8, 0xcd, 0x52, 0x07, 0xc9, 0xa5, 0xea, 0x35, 0x92, 0x1d, 0xd5, 0x99, 0x1a, 0x76, 0x42, - 0xe0, 0xbd, 0x0e, 0xa6, 0x2f, 0x04, 0x5f, 0x7c, 0x88, 0xc5, 0xc4, 0x1e, 0x7e, 0x0e, 0x6f, 0x89, - 0xbb, 0x02, 0x23, 0xb2, 0x10, 0x82, 0xae, 0x8f, 0x60, 0x5a, 0x66, 0x33, 0x35, 0xd6, 0x72, 0x4a, - 0x64, 0xf9, 0xc9, 0xa3, 0xf0, 0xf1, 0x34, 0x4c, 0x92, 0xeb, 0x9c, 0xe6, 0xf6, 0x88, 0x77, 0xbe, - 0xa4, 0x51, 0xf2, 0x02, 0x5e, 0xcc, 0x2a, 0x64, 0x5a, 0x86, 0x79, 0xd1, 0xdb, 0x05, 0x77, 0x9f, - 0x83, 0xcb, 0x41, 0xd2, 0x3d, 0x2e, 0x07, 0xf1, 0xf7, 0x29, 0xfc, 0x72, 0x0f, 0x74, 0x5b, 0x5d, - 0x5f, 0x72, 0xc9, 0x8b, 0xf1, 0xef, 0x33, 0x90, 0xab, 0x61, 0xdd, 0x6e, 0x6c, 0xa1, 0xf7, 0xa6, - 0x7b, 0x4e, 0x15, 0xc6, 0xc5, 0xa9, 0xc2, 0x02, 0x8c, 0x6d, 0x18, 0x2d, 0x07, 0xdb, 0xd4, 0x33, - 0x88, 0xef, 0xda, 0x69, 0x13, 0x9f, 0x6b, 0x59, 0x8d, 0x8b, 0xb3, 0xcc, 0x74, 0x9f, 0xf5, 0x82, - 0x49, 0xcd, 0x2e, 0x90, 0x9f, 0x34, 0xef, 0x67, 0xd7, 0x20, 0xec, 0x58, 0xb6, 0x13, 0x16, 0x27, - 0x38, 0x84, 0x4a, 0xcd, 0xb2, 0x1d, 0x8d, 0xfe, 0xe8, 0xc2, 0xbc, 0xb1, 0xd3, 0x6a, 0xd5, 0xf1, - 0xfd, 0x8e, 0x37, 0x6d, 0xf3, 0xde, 0x5d, 0x63, 0xd1, 0xda, 0xd8, 0xe8, 0x60, 0xba, 0x68, 0x90, - 0xd5, 0xd8, 0x9b, 0x7a, 0x1c, 0xb2, 0x2d, 0x63, 0xdb, 0xa0, 0x13, 0x8d, 0xac, 0x46, 0x5f, 0xd4, - 0x1b, 0x21, 0x1f, 0xcc, 0x71, 0x28, 0xa3, 0xa7, 0x72, 0xa4, 0x69, 0xee, 0x4b, 0x77, 0x75, 0xe6, - 0x22, 0xde, 0xeb, 0x9c, 0x1a, 0x23, 0xdf, 0xc9, 0xb3, 0xe8, 0x86, 0x29, 0xb3, 0xdf, 0x41, 0x25, - 0x1e, 0x3e, 0x83, 0xb5, 0x71, 0xc3, 0xb2, 0x9b, 0x9e, 0x6c, 0xc2, 0x27, 0x18, 0x2c, 0x5f, 0xbc, - 0x5d, 0x8a, 0x9e, 0x85, 0x8f, 0xc0, 0x05, 0x22, 0xe7, 0x76, 0x9b, 0x6e, 0xd1, 0xe7, 0x0d, 0x67, - 0x6b, 0x05, 0x3b, 0x3a, 0xfa, 0x7b, 0xa5, 0xa7, 0xc6, 0x4d, 0xfe, 0xff, 0x1a, 0xd7, 0x47, 0xe3, - 0x68, 0x98, 0x00, 0x67, 0xc7, 0x36, 0x5d, 0x39, 0xb2, 0xc0, 0x5c, 0x5c, 0x8a, 0x7a, 0x3b, 0x5c, - 0x11, 0xbc, 0x79, 0x4b, 0xa5, 0xf3, 0x6c, 0xda, 0x3a, 0x41, 0xb2, 0x87, 0x67, 0x50, 0x57, 0xe1, - 0x5a, 0xfa, 0x71, 0xa9, 0xbe, 0xb2, 0xbc, 0x64, 0x6c, 0x6e, 0xb5, 0x8c, 0xcd, 0x2d, 0xa7, 0x53, - 0x36, 0x3b, 0x0e, 0xd6, 0x9b, 0xd5, 0x0d, 0x8d, 0x46, 0xf8, 0x06, 0x42, 0x47, 0x26, 0xab, 0xe8, - 0x39, 0x24, 0x37, 0xba, 0xf1, 0x9a, 0x12, 0xd2, 0x52, 0x9e, 0xe0, 0xb6, 0x94, 0xce, 0x4e, 0xcb, - 0xc7, 0xf4, 0xaa, 0x2e, 0x4c, 0x03, 0x55, 0xdf, 0x69, 0x91, 0xe6, 0x42, 0x32, 0xc7, 0x1d, 0xe7, - 0x22, 0x38, 0x49, 0xbe, 0xd9, 0xfc, 0xbf, 0x39, 0xc8, 0x2e, 0xda, 0x7a, 0x7b, 0x0b, 0x3d, 0x8b, - 0xeb, 0x9f, 0x87, 0xd5, 0x26, 0x7c, 0xed, 0x4c, 0xf7, 0xd3, 0x4e, 0xa5, 0x8f, 0x76, 0x66, 0x38, - 0xed, 0x0c, 0x5f, 0x54, 0x3e, 0x03, 0x53, 0x0d, 0xab, 0xd5, 0xc2, 0x0d, 0x57, 0x1e, 0xe5, 0x26, - 0x59, 0xcd, 0x99, 0xd0, 0x84, 0x34, 0x12, 0x70, 0x0f, 0x3b, 0x35, 0xba, 0x86, 0x4e, 0x95, 0x3e, - 0x48, 0x40, 0x2f, 0x4d, 0x43, 0xa6, 0xd4, 0xdc, 0xc4, 0xc2, 0x3a, 0x7b, 0x8a, 0x5b, 0x67, 0x3f, - 0x09, 0x39, 0x47, 0xb7, 0x37, 0xb1, 0xe3, 0xad, 0x13, 0xd0, 0x37, 0x3f, 0x0e, 0xa0, 0xc2, 0xc5, - 0x01, 0xfc, 0x59, 0xc8, 0xb8, 0x32, 0x63, 0x11, 0x76, 0xae, 0xed, 0x05, 0x3f, 0x91, 0xfd, 0xac, - 0x5b, 0xe2, 0xac, 0x5b, 0x6b, 0x8d, 0xfc, 0xd0, 0x8d, 0x75, 0x76, 0x1f, 0xd6, 0xe4, 0xb2, 0xa2, - 0x86, 0x65, 0x96, 0xb7, 0xf5, 0x4d, 0xcc, 0xaa, 0x19, 0x24, 0x78, 0x5f, 0x4b, 0xdb, 0xd6, 0x7d, - 0x06, 0x0b, 0xc9, 0x17, 0x24, 0xb8, 0x55, 0xd8, 0x32, 0x9a, 0x4d, 0x6c, 0xb2, 0x96, 0xcd, 0xde, - 0xce, 0x9c, 0x86, 0x8c, 0xcb, 0x83, 0xab, 0x3f, 0xae, 0xb1, 0x90, 0x3f, 0xa2, 0x4e, 0xb9, 0xcd, - 0x8a, 0x36, 0xde, 0x7c, 0x4a, 0x5c, 0x53, 0x95, 0x71, 0xdb, 0xa1, 0x95, 0xeb, 0xdd, 0xb8, 0x1e, - 0x03, 0x59, 0xd3, 0x6a, 0xe2, 0xbe, 0x83, 0x10, 0xcd, 0xa5, 0x3e, 0x1e, 0xb2, 0xb8, 0xe9, 0xf6, - 0x0a, 0x0a, 0xc9, 0x7e, 0x3a, 0x5a, 0x96, 0x1a, 0xcd, 0x1c, 0xcf, 0x37, 0xa8, 0x17, 0xb7, 0xc9, - 0x37, 0xc0, 0x5f, 0x1d, 0x83, 0xa3, 0xb4, 0x0f, 0xa8, 0xed, 0x5c, 0x70, 0x49, 0x5d, 0xc0, 0xe8, - 0xa1, 0xde, 0x03, 0xd7, 0x51, 0x51, 0xd9, 0x8f, 0x43, 0xb6, 0xb3, 0x73, 0xc1, 0x37, 0x42, 0xe9, - 0x0b, 0xdf, 0x74, 0xd3, 0x43, 0x19, 0xce, 0x94, 0x41, 0x87, 0x33, 0x61, 0x68, 0x52, 0xbc, 0xc6, - 0x1f, 0x0c, 0x64, 0x39, 0x92, 0xec, 0x0d, 0x64, 0xbd, 0x86, 0xa1, 0x53, 0x30, 0xa6, 0x6f, 0x38, - 0xd8, 0x0e, 0xcc, 0x44, 0xf6, 0xea, 0x0e, 0x95, 0x17, 0xf0, 0x86, 0x65, 0xbb, 0x62, 0x99, 0xa0, - 0x43, 0xa5, 0xf7, 0xce, 0xb5, 0x5c, 0x10, 0x76, 0xc8, 0x6e, 0x82, 0x63, 0xa6, 0x35, 0x8f, 0xdb, - 0x4c, 0xce, 0x14, 0xc5, 0x69, 0xd2, 0x02, 0xf6, 0x7f, 0xd8, 0xd7, 0x95, 0xcc, 0xec, 0xef, 0x4a, - 0xd0, 0x67, 0xe3, 0xce, 0x99, 0xbb, 0x80, 0x1e, 0x9a, 0x85, 0xa6, 0x3e, 0x09, 0xa6, 0x9a, 0xcc, - 0x45, 0xab, 0x61, 0xf8, 0xad, 0x24, 0xf4, 0x3f, 0x21, 0x73, 0xa0, 0x48, 0x19, 0x5e, 0x91, 0x16, - 0x61, 0x9c, 0x1c, 0xc8, 0x71, 0x35, 0x29, 0xdb, 0x15, 0xaf, 0x90, 0x4c, 0xeb, 0xfc, 0x4a, 0x71, - 0x62, 0x9b, 0x2d, 0xb2, 0x5f, 0x34, 0xff, 0xe7, 0x78, 0xb3, 0xef, 0x68, 0x09, 0x25, 0xdf, 0x1c, - 0x7f, 0x37, 0x07, 0x57, 0x14, 0x6d, 0xab, 0xd3, 0x21, 0x51, 0x28, 0xba, 0x1b, 0xe6, 0x1b, 0xd3, - 0x42, 0x44, 0xe0, 0x87, 0x75, 0xf3, 0xeb, 0xd5, 0xa0, 0x46, 0xd7, 0x34, 0xbe, 0x29, 0x7d, 0x94, - 0xd9, 0xdf, 0x7f, 0x08, 0x11, 0xfa, 0x4f, 0x46, 0x23, 0x79, 0x57, 0x4a, 0xe6, 0x74, 0x75, 0x4c, - 0x59, 0x25, 0xdf, 0x5c, 0xbe, 0x92, 0x86, 0x2b, 0xbb, 0xb9, 0x59, 0x33, 0x3b, 0x7e, 0x83, 0xb9, - 0xba, 0x4f, 0x7b, 0x11, 0x4f, 0xe3, 0x46, 0xde, 0xc5, 0x13, 0x52, 0x77, 0xae, 0xb4, 0x90, 0xc5, - 0x92, 0xf7, 0xa4, 0x64, 0xee, 0xe2, 0x89, 0x4d, 0x3e, 0x79, 0xe1, 0x7e, 0x2e, 0x03, 0x47, 0x17, - 0x6d, 0x6b, 0xa7, 0xdd, 0x09, 0x7a, 0xa0, 0xbf, 0xe9, 0xbd, 0xe1, 0x9a, 0x93, 0x31, 0x0d, 0xae, - 0x81, 0x49, 0x9b, 0x59, 0x73, 0xc1, 0xf6, 0x2b, 0x9f, 0xc4, 0xf7, 0x5e, 0xca, 0x41, 0x7a, 0xaf, - 0xa0, 0x9f, 0xc9, 0x08, 0xfd, 0x4c, 0x77, 0xcf, 0x91, 0xed, 0xd1, 0x73, 0xfc, 0x75, 0x3a, 0xe6, - 0xa0, 0xda, 0x25, 0xa2, 0x90, 0xfe, 0xa2, 0x08, 0xb9, 0x4d, 0x92, 0x91, 0x75, 0x17, 0x8f, 0x96, - 0xab, 0x19, 0x21, 0xae, 0xb1, 0x5f, 0x03, 0xb9, 0x2a, 0xbc, 0x0e, 0xc7, 0x1a, 0xe0, 0xa2, 0xb9, - 0x4d, 0x5e, 0xa9, 0x1e, 0xcc, 0xc0, 0x94, 0x5f, 0x7a, 0xb9, 0xd9, 0x41, 0x2f, 0xe8, 0xad, 0x51, - 0xd3, 0x32, 0x1a, 0xb5, 0x6f, 0x9d, 0xd9, 0x1f, 0x75, 0x14, 0x6e, 0xd4, 0xe9, 0x39, 0xba, 0x4c, - 0x85, 0x8c, 0x2e, 0xe8, 0x99, 0x8a, 0x6c, 0x4c, 0x7d, 0xb1, 0x6b, 0x25, 0xb5, 0x79, 0x38, 0x0f, - 0x16, 0x92, 0x91, 0xfd, 0xfb, 0xd7, 0x2a, 0x79, 0x25, 0xf9, 0x50, 0x1a, 0x8e, 0xed, 0xef, 0xcc, - 0x7f, 0x4a, 0xf4, 0x42, 0x73, 0xeb, 0xd4, 0xf1, 0xbd, 0xd0, 0xc8, 0x9b, 0xb8, 0x49, 0x17, 0x79, - 0x34, 0x56, 0xb0, 0xf7, 0xfa, 0x77, 0xe2, 0x72, 0x87, 0x5f, 0x25, 0x89, 0x26, 0x2f, 0xc0, 0xdf, - 0x50, 0x60, 0xa2, 0x86, 0x9d, 0x65, 0x7d, 0xcf, 0xda, 0x71, 0x90, 0x2e, 0xbb, 0x3d, 0xf7, 0x44, - 0xc8, 0xb5, 0xc8, 0x2f, 0xec, 0xaa, 0xd2, 0x6b, 0x7a, 0xee, 0x6f, 0x11, 0xdf, 0x1f, 0x4a, 0x5a, - 0x63, 0xf9, 0xc5, 0x33, 0xc9, 0x32, 0xbb, 0xa3, 0x3e, 0x77, 0x43, 0xd9, 0xda, 0x89, 0xb5, 0x77, - 0x1a, 0x56, 0x74, 0xf2, 0xb0, 0x3c, 0x5b, 0x81, 0xe9, 0x1a, 0x76, 0xca, 0x9d, 0x05, 0x7d, 0xd7, - 0xb2, 0x0d, 0x07, 0xf3, 0x77, 0x15, 0x45, 0x43, 0x73, 0x1a, 0xc0, 0xf0, 0x7f, 0x63, 0x91, 0x12, - 0xb8, 0x14, 0xf4, 0x3b, 0x71, 0x1d, 0x85, 0x04, 0x3e, 0x86, 0x02, 0x42, 0x2c, 0x1f, 0x8b, 0xa8, - 0xe2, 0x93, 0x07, 0xe2, 0x4b, 0x69, 0x06, 0x44, 0xc1, 0x6e, 0x6c, 0x19, 0xbb, 0xb8, 0x19, 0x13, - 0x08, 0xef, 0xb7, 0x00, 0x08, 0x9f, 0x50, 0x6c, 0xf7, 0x15, 0x81, 0x8f, 0x61, 0xb8, 0xaf, 0x44, - 0x11, 0x1c, 0x49, 0xb0, 0x03, 0xb7, 0xeb, 0x61, 0xeb, 0x99, 0x77, 0xca, 0x8a, 0x35, 0x30, 0xd9, - 0xd2, 0xbc, 0xc9, 0x36, 0x50, 0xc7, 0x42, 0xcb, 0xee, 0xa7, 0xd3, 0x99, 0x24, 0x3a, 0x96, 0x9e, - 0x45, 0x27, 0x2f, 0xf4, 0xf7, 0x28, 0x70, 0xc2, 0x3f, 0x05, 0x5c, 0xc3, 0xce, 0xbc, 0xde, 0xd9, - 0xba, 0x60, 0xe9, 0x76, 0x93, 0xbf, 0xc2, 0x76, 0xe0, 0x13, 0x7f, 0xe8, 0x8b, 0x3c, 0x08, 0x15, - 0x11, 0x84, 0x9e, 0xae, 0xa2, 0x3d, 0x79, 0x19, 0x46, 0x27, 0x13, 0xe9, 0xcd, 0xfa, 0x7b, 0x3e, - 0x58, 0x4f, 0x11, 0xc0, 0xba, 0x63, 0x50, 0x16, 0x93, 0x07, 0xee, 0xb7, 0xe9, 0x88, 0xc0, 0x79, - 0x35, 0xdf, 0x2b, 0x0b, 0x58, 0x88, 0x57, 0xab, 0x12, 0xea, 0xd5, 0x3a, 0xd0, 0x18, 0xd1, 0xd7, - 0x23, 0x39, 0xd9, 0x31, 0xe2, 0x10, 0xbd, 0x8d, 0xdf, 0xa1, 0x40, 0x9e, 0x84, 0x81, 0xe0, 0x3c, - 0xbe, 0xd1, 0x7d, 0xb2, 0xe8, 0xec, 0xf3, 0x2e, 0x1f, 0x8b, 0xeb, 0x5d, 0x8e, 0xde, 0x1e, 0xd7, - 0x87, 0xbc, 0x9b, 0xdb, 0xa1, 0x20, 0x16, 0xcb, 0x45, 0xbc, 0x0f, 0x07, 0xc9, 0x83, 0xf6, 0x5f, - 0x15, 0x00, 0xb7, 0x41, 0xb3, 0xb3, 0x0f, 0x4f, 0x95, 0x85, 0xeb, 0x2c, 0xef, 0x57, 0xef, 0x02, - 0x75, 0xa2, 0x0b, 0x28, 0x4a, 0x31, 0x38, 0x55, 0xf1, 0x50, 0x5c, 0xdf, 0xca, 0x80, 0xab, 0xa1, - 0xc0, 0x12, 0xcb, 0xdb, 0x32, 0xb4, 0xec, 0xe4, 0x01, 0xf9, 0xef, 0x69, 0xc8, 0xd6, 0xad, 0x1a, - 0x76, 0x0e, 0x6e, 0x0a, 0xc4, 0x3e, 0xb6, 0x4f, 0xca, 0x1d, 0xc6, 0xb1, 0xfd, 0x5e, 0x84, 0x92, - 0x17, 0xdd, 0xbb, 0xd3, 0x30, 0x55, 0xb7, 0x8a, 0xfe, 0xe2, 0x94, 0xbc, 0xaf, 0xaa, 0xfc, 0xbd, - 0x80, 0x7e, 0x05, 0x83, 0x62, 0x0e, 0x74, 0x2f, 0x60, 0x7f, 0x7a, 0xc9, 0xcb, 0xed, 0x56, 0x38, - 0xba, 0x66, 0x36, 0x2d, 0x0d, 0x37, 0x2d, 0xb6, 0xd2, 0xad, 0xaa, 0x90, 0xd9, 0x31, 0x9b, 0x16, - 0x61, 0x39, 0xab, 0x91, 0x67, 0x37, 0xcd, 0xc6, 0x4d, 0x8b, 0xf9, 0x06, 0x90, 0x67, 0xf4, 0x4d, - 0x05, 0x32, 0xee, 0xbf, 0xf2, 0xa2, 0x7e, 0x87, 0x12, 0x33, 0x10, 0x81, 0x4b, 0x7e, 0x28, 0x96, - 0xd0, 0x9d, 0xdc, 0xda, 0x3f, 0xf5, 0x60, 0xbd, 0x36, 0xac, 0x3c, 0x4e, 0x14, 0xc1, 0x9a, 0xbf, - 0x7a, 0x0a, 0xc6, 0x2e, 0xb4, 0xac, 0xc6, 0xc5, 0xe0, 0xbc, 0x3c, 0x7b, 0x55, 0x6f, 0x84, 0xac, - 0xad, 0x9b, 0x9b, 0x98, 0xed, 0x29, 0x1c, 0xef, 0xea, 0x0b, 0x89, 0xd7, 0x8b, 0x46, 0xb3, 0xa0, - 0xb7, 0xc7, 0x09, 0x81, 0xd0, 0xa3, 0xf2, 0xf1, 0xf4, 0x61, 0x7e, 0x80, 0x93, 0x65, 0x79, 0x98, - 0x2a, 0x16, 0xe8, 0x0d, 0x9c, 0x2b, 0xd5, 0x73, 0xa5, 0xbc, 0x42, 0x60, 0x76, 0x65, 0x92, 0x20, - 0xcc, 0x2e, 0xf9, 0x9f, 0x58, 0x98, 0x7b, 0x54, 0xfe, 0x30, 0x60, 0xfe, 0x74, 0x1a, 0xa6, 0x97, - 0x8d, 0x8e, 0x13, 0xe6, 0xed, 0x1f, 0x11, 0x05, 0xee, 0x85, 0x71, 0x4d, 0x65, 0xa1, 0x1c, 0xe9, - 0xf0, 0x6f, 0xb1, 0xcc, 0xe1, 0xa8, 0x22, 0x46, 0x73, 0x2c, 0x85, 0x70, 0x40, 0x6f, 0xcd, 0x93, - 0x96, 0x64, 0x6c, 0x43, 0x29, 0x28, 0x64, 0xf4, 0x86, 0x52, 0x68, 0xd9, 0xc9, 0xcb, 0xf7, 0x9b, - 0x69, 0x38, 0xe6, 0x16, 0x1f, 0xb5, 0x2c, 0x15, 0x2e, 0xe6, 0xbe, 0xcb, 0x52, 0xb1, 0x57, 0xc6, - 0xf7, 0xf1, 0x32, 0x8c, 0x95, 0xf1, 0x7e, 0x44, 0x47, 0x2c, 0xe6, 0x90, 0x65, 0xd8, 0x7e, 0x62, - 0x8e, 0x58, 0x86, 0x1d, 0x5c, 0xcc, 0xd1, 0x4b, 0xb1, 0x03, 0x8a, 0xf9, 0xd0, 0x16, 0x58, 0x5f, - 0xaf, 0xf8, 0x62, 0x0e, 0x5d, 0xdb, 0x88, 0x10, 0x73, 0xec, 0x13, 0xbb, 0xe8, 0x9d, 0x03, 0x0a, - 0x7e, 0xc8, 0xeb, 0x1b, 0x83, 0xc0, 0x74, 0x88, 0x6b, 0x1c, 0x2f, 0x53, 0x60, 0x86, 0x71, 0xd1, - 0x7b, 0xca, 0x1c, 0x81, 0x51, 0xec, 0x29, 0x73, 0xec, 0x33, 0x40, 0x22, 0x67, 0xa3, 0x3f, 0x03, - 0x14, 0x59, 0x7e, 0xf2, 0xe0, 0x7c, 0x2b, 0x03, 0x27, 0x5d, 0x16, 0x56, 0xac, 0xa6, 0xb1, 0xb1, - 0x47, 0xb9, 0x38, 0xa7, 0xb7, 0x76, 0x70, 0x07, 0xbd, 0x2f, 0x2d, 0x8b, 0xd2, 0x7f, 0x02, 0xb0, - 0xda, 0xd8, 0xa6, 0x81, 0xd4, 0x18, 0x50, 0xb7, 0x87, 0x55, 0x76, 0x7f, 0x49, 0x7e, 0x50, 0xf4, - 0xaa, 0x47, 0x44, 0xe3, 0xe8, 0xb9, 0x56, 0xe1, 0x84, 0xff, 0xa5, 0xdb, 0xc1, 0x23, 0xb5, 0xdf, - 0xc1, 0xe3, 0x06, 0x50, 0xf4, 0x66, 0xd3, 0x87, 0xaa, 0x7b, 0x33, 0x9b, 0x94, 0xa9, 0xb9, 0x59, - 0xdc, 0x9c, 0x1d, 0x1c, 0x1c, 0xcd, 0x0b, 0xc9, 0xd9, 0xc1, 0x8e, 0x3a, 0x0b, 0x39, 0x7a, 0x83, - 0xa0, 0xbf, 0xa2, 0xdf, 0x3b, 0x33, 0xcb, 0x25, 0x9a, 0x76, 0x55, 0x51, 0x0d, 0x6f, 0x8d, 0x25, - 0x99, 0x5e, 0xfd, 0x74, 0x60, 0x27, 0x6b, 0x82, 0x82, 0x3d, 0x79, 0x60, 0xca, 0xa3, 0xd9, 0x0d, - 0x2b, 0xb4, 0xdb, 0xad, 0xbd, 0x3a, 0x0b, 0xbe, 0x12, 0x6b, 0x37, 0x8c, 0x8b, 0xe1, 0x92, 0xee, - 0x8e, 0xe1, 0x12, 0x7f, 0x37, 0x4c, 0xe0, 0x63, 0x18, 0xbb, 0x61, 0x51, 0x04, 0x47, 0xb0, 0x1e, - 0x99, 0xa5, 0x56, 0x33, 0x8b, 0x51, 0xfb, 0xa6, 0xde, 0x87, 0xd0, 0x40, 0x74, 0x76, 0xe9, 0x15, - 0xbe, 0x36, 0x32, 0x36, 0xb7, 0xfa, 0x78, 0xc8, 0x6d, 0x58, 0xf6, 0xb6, 0xee, 0x6d, 0xdc, 0x77, - 0x9f, 0x14, 0x61, 0x71, 0x61, 0x17, 0x48, 0x1e, 0x8d, 0xe5, 0x75, 0xe7, 0x23, 0xcf, 0x30, 0xda, - 0x2c, 0xea, 0xa2, 0xfb, 0xa8, 0x5e, 0x07, 0xd3, 0x2c, 0xf8, 0x62, 0x05, 0x77, 0x1c, 0xdc, 0x64, - 0x11, 0x2b, 0xc4, 0x44, 0xf5, 0x0c, 0x4c, 0xb1, 0x84, 0x05, 0xa3, 0x85, 0x3b, 0x2c, 0x68, 0x85, - 0x90, 0xa6, 0x9e, 0x84, 0x9c, 0xd1, 0xb9, 0xbb, 0x63, 0x99, 0xc4, 0xff, 0x7f, 0x5c, 0x63, 0x6f, - 0xea, 0x0d, 0x70, 0x94, 0xe5, 0xf3, 0x8d, 0x55, 0x7a, 0x60, 0xa7, 0x3b, 0x19, 0x7d, 0x7e, 0x90, - 0x89, 0x43, 0xec, 0x78, 0xbc, 0x2e, 0x0a, 0x3b, 0x8d, 0x06, 0xc6, 0x4d, 0x76, 0xb2, 0xc9, 0x7b, - 0x8d, 0x19, 0xa9, 0x37, 0xf6, 0x34, 0xe3, 0x90, 0x42, 0xf5, 0x7e, 0xf4, 0x04, 0xe4, 0xe8, 0xb5, - 0x17, 0xe8, 0x25, 0x33, 0x3d, 0x95, 0x71, 0x46, 0x54, 0xc6, 0x35, 0x98, 0x32, 0x2d, 0xb7, 0xb8, - 0x55, 0xdd, 0xd6, 0xb7, 0x3b, 0x51, 0xab, 0x88, 0x94, 0xae, 0x3f, 0x64, 0x54, 0xb8, 0xdf, 0x96, - 0x8e, 0x68, 0x02, 0x19, 0xf5, 0x7f, 0x83, 0xa3, 0x17, 0x58, 0x04, 0x80, 0x0e, 0xa3, 0x9c, 0x0e, - 0xf7, 0xb1, 0xeb, 0xa2, 0x3c, 0x27, 0xfe, 0xb9, 0x74, 0x44, 0xeb, 0x26, 0xa6, 0xfe, 0x3c, 0xcc, - 0xb8, 0xaf, 0x4d, 0xeb, 0x92, 0xc7, 0xb8, 0x12, 0x6e, 0x68, 0x74, 0x91, 0x5f, 0x11, 0x7e, 0x5c, - 0x3a, 0xa2, 0x75, 0x91, 0x52, 0xab, 0x00, 0x5b, 0xce, 0x76, 0x8b, 0x11, 0xce, 0x84, 0xab, 0x64, - 0x17, 0xe1, 0x25, 0xff, 0xa7, 0xa5, 0x23, 0x1a, 0x47, 0x42, 0x5d, 0x86, 0x09, 0xe7, 0x7e, 0x87, - 0xd1, 0xcb, 0x86, 0x6f, 0x6e, 0x77, 0xd1, 0xab, 0x7b, 0xff, 0x2c, 0x1d, 0xd1, 0x02, 0x02, 0x6a, - 0x19, 0xc6, 0xdb, 0x17, 0x18, 0xb1, 0x5c, 0x8f, 0xab, 0xfe, 0x7b, 0x13, 0x5b, 0xbd, 0xe0, 0xd3, - 0xf2, 0x7f, 0x77, 0x19, 0x6b, 0x74, 0x76, 0x19, 0xad, 0x31, 0x69, 0xc6, 0x8a, 0xde, 0x3f, 0x2e, - 0x63, 0x3e, 0x01, 0xb5, 0x0c, 0x13, 0x1d, 0x53, 0x6f, 0x77, 0xb6, 0x2c, 0xa7, 0x73, 0x6a, 0xbc, - 0xcb, 0x0f, 0x32, 0x9c, 0x5a, 0x8d, 0xfd, 0xa3, 0x05, 0x7f, 0xab, 0x8f, 0x87, 0x13, 0x3b, 0xe4, - 0xfa, 0xd0, 0xd2, 0xfd, 0x46, 0xc7, 0x31, 0xcc, 0x4d, 0x2f, 0x86, 0x2c, 0xed, 0x4d, 0x7a, 0x7f, - 0x54, 0x67, 0xd9, 0x89, 0x28, 0x20, 0x6d, 0x13, 0x75, 0x6f, 0xc6, 0xd1, 0x62, 0xb9, 0x83, 0x50, - 0x4f, 0x82, 0x8c, 0xfb, 0x89, 0x9c, 0xd9, 0x9c, 0xe9, 0xbd, 0xd0, 0xd7, 0xad, 0x3b, 0xa4, 0x01, - 0xbb, 0x3f, 0xb9, 0x63, 0xa3, 0x69, 0xad, 0xda, 0xd6, 0xa6, 0x8d, 0x3b, 0x1d, 0xe6, 0x70, 0xc8, - 0xa5, 0xb8, 0x0d, 0xdc, 0xe8, 0xac, 0x18, 0x9b, 0xd4, 0x7a, 0x62, 0xfe, 0xee, 0x7c, 0x12, 0x9d, - 0x6d, 0x56, 0xf0, 0x25, 0xe2, 0x10, 0x4c, 0xce, 0xdf, 0x90, 0xd9, 0xa6, 0x97, 0x82, 0xae, 0x87, - 0x29, 0xbe, 0x91, 0xd1, 0xbb, 0xb3, 0x8c, 0xc0, 0xf6, 0x62, 0x6f, 0xe8, 0x3a, 0x98, 0x11, 0x75, - 0x9a, 0x1b, 0x62, 0x14, 0xaf, 0x2b, 0x44, 0xd7, 0xc2, 0xd1, 0xae, 0x86, 0xe5, 0xc5, 0x14, 0x49, - 0x05, 0x31, 0x45, 0xae, 0x01, 0x08, 0xb4, 0xb8, 0x27, 0x99, 0xab, 0x61, 0xc2, 0xd7, 0xcb, 0x9e, - 0x19, 0xbe, 0x9e, 0x82, 0x71, 0x4f, 0xd9, 0x7a, 0x65, 0x70, 0xc7, 0x17, 0x93, 0xdb, 0x40, 0x60, - 0xd3, 0x6c, 0x21, 0xcd, 0x1d, 0x47, 0x02, 0xb7, 0xdd, 0xba, 0xe1, 0xb4, 0xbc, 0xa3, 0x6f, 0xdd, - 0xc9, 0xea, 0x2a, 0x80, 0x41, 0x30, 0xaa, 0x07, 0x67, 0xe1, 0x6e, 0x8e, 0xd1, 0x1e, 0xa8, 0x3e, - 0x70, 0x34, 0xce, 0xfc, 0x14, 0x3b, 0xa8, 0x36, 0x01, 0xd9, 0xda, 0x6a, 0xa1, 0x58, 0xca, 0x1f, - 0x51, 0x67, 0x00, 0x4a, 0x4f, 0x5d, 0x2d, 0x69, 0xe5, 0x52, 0xa5, 0x58, 0xca, 0xa7, 0xd0, 0xcb, - 0xd3, 0x30, 0xe1, 0x37, 0x82, 0x9e, 0x95, 0x2c, 0x31, 0xd5, 0xea, 0x7b, 0x3d, 0xd1, 0xfe, 0x46, - 0xc5, 0x2b, 0xd9, 0x13, 0xe1, 0xf2, 0x9d, 0x0e, 0x5e, 0x30, 0xec, 0x8e, 0xa3, 0x59, 0x97, 0x16, - 0x2c, 0xdb, 0x8f, 0x9a, 0xec, 0x5d, 0xc3, 0x1f, 0xf2, 0xd9, 0xb5, 0x28, 0x9a, 0x98, 0x1c, 0x8a, - 0xc2, 0x36, 0x5b, 0x19, 0x0e, 0x12, 0x5c, 0xba, 0x0e, 0xbd, 0xf7, 0xbe, 0x83, 0x35, 0xeb, 0x52, - 0xa7, 0x60, 0x36, 0x8b, 0x56, 0x6b, 0x67, 0xdb, 0xec, 0x30, 0x9b, 0x20, 0xec, 0xb3, 0x2b, 0x1d, - 0x72, 0xf9, 0xd8, 0x0c, 0x40, 0xb1, 0xba, 0xbc, 0x5c, 0x2a, 0xd6, 0xcb, 0xd5, 0x4a, 0xfe, 0x88, - 0x2b, 0xad, 0x7a, 0x61, 0x6e, 0xd9, 0x95, 0xce, 0xd3, 0x60, 0xdc, 0x6b, 0xd3, 0x2c, 0x0c, 0x4a, - 0xca, 0x0b, 0x83, 0xa2, 0x16, 0x60, 0xdc, 0x6b, 0xe5, 0x6c, 0x44, 0x78, 0x64, 0xf7, 0xb1, 0xd7, - 0x6d, 0xdd, 0x76, 0x88, 0xbf, 0xb4, 0x47, 0x64, 0x4e, 0xef, 0x60, 0xcd, 0xff, 0xed, 0xcc, 0x63, - 0x18, 0x07, 0x2a, 0xcc, 0x14, 0x96, 0x97, 0xd7, 0xab, 0xda, 0x7a, 0xa5, 0x5a, 0x5f, 0x2a, 0x57, - 0x16, 0xe9, 0x08, 0x59, 0x5e, 0xac, 0x54, 0xb5, 0x12, 0x1d, 0x20, 0x6b, 0xf9, 0x14, 0xbd, 0xfc, - 0x6e, 0x6e, 0x1c, 0x72, 0x6d, 0x22, 0x5d, 0xf4, 0x15, 0x25, 0xe6, 0x79, 0x77, 0x1f, 0xa7, 0x90, - 0xeb, 0xb9, 0x04, 0x9f, 0xf3, 0x74, 0x8f, 0x33, 0xa1, 0x67, 0x60, 0x8a, 0xda, 0x72, 0x1d, 0xb2, - 0x7c, 0xcf, 0x6e, 0xb8, 0x15, 0xd2, 0xd0, 0xc7, 0xd3, 0x31, 0x0e, 0xc1, 0xf7, 0xe4, 0x28, 0x9e, - 0x71, 0xf1, 0x17, 0x83, 0x5c, 0x76, 0xa7, 0xc2, 0x4c, 0xb9, 0x52, 0x2f, 0x69, 0x95, 0xc2, 0x32, - 0xcb, 0xa2, 0xa8, 0xa7, 0xe0, 0x78, 0xa5, 0xca, 0x62, 0xfa, 0xd5, 0xc8, 0xb5, 0xda, 0x2b, 0xab, - 0x55, 0xad, 0x9e, 0xcf, 0xaa, 0x27, 0x41, 0xa5, 0xcf, 0xc2, 0xad, 0xf4, 0x39, 0xf5, 0x51, 0x70, - 0xed, 0x72, 0x79, 0xa5, 0x5c, 0x5f, 0xaf, 0x2e, 0xac, 0x6b, 0xd5, 0xf3, 0x35, 0x17, 0x41, 0xad, - 0xb4, 0x5c, 0x70, 0x15, 0x89, 0xbb, 0x04, 0x6f, 0x4c, 0xbd, 0x0c, 0x8e, 0x92, 0x0b, 0x2e, 0xc9, - 0xcd, 0xf6, 0xb4, 0xbc, 0x71, 0xf5, 0x2a, 0x38, 0x55, 0xae, 0xd4, 0xd6, 0x16, 0x16, 0xca, 0xc5, - 0x72, 0xa9, 0x52, 0x5f, 0x5f, 0x2d, 0x69, 0x2b, 0xe5, 0x5a, 0xcd, 0xfd, 0x37, 0x3f, 0x41, 0xae, - 0x18, 0xa3, 0x7d, 0x26, 0x7a, 0xaf, 0x02, 0xd3, 0xe7, 0xf4, 0x96, 0xe1, 0x0e, 0x14, 0xe4, 0xee, - 0xc1, 0xae, 0xe3, 0x22, 0x0e, 0xb9, 0xa3, 0x90, 0x39, 0x9c, 0x93, 0x17, 0xf4, 0xcb, 0x4a, 0xcc, - 0xe3, 0x22, 0x0c, 0x08, 0x5a, 0xe2, 0xac, 0x50, 0x5a, 0xc8, 0xe4, 0xe6, 0xb5, 0xe9, 0x18, 0xc7, - 0x45, 0xe4, 0xc9, 0xc7, 0x03, 0xff, 0x15, 0xc3, 0x02, 0x3f, 0x0f, 0x53, 0x6b, 0x95, 0xc2, 0x5a, - 0x7d, 0xa9, 0xaa, 0x95, 0x7f, 0x8e, 0x44, 0x1b, 0x9f, 0x86, 0x89, 0x85, 0xaa, 0x36, 0x57, 0x9e, - 0x9f, 0x2f, 0x55, 0xf2, 0x59, 0xf5, 0x72, 0xb8, 0xac, 0x56, 0xd2, 0xce, 0x95, 0x8b, 0xa5, 0xf5, - 0xb5, 0x4a, 0xe1, 0x5c, 0xa1, 0xbc, 0x4c, 0xfa, 0x88, 0x5c, 0xc4, 0xbd, 0x89, 0x63, 0xe8, 0x17, - 0x33, 0x00, 0xb4, 0xea, 0xae, 0x25, 0xcd, 0xdf, 0xae, 0xf7, 0x97, 0x71, 0x27, 0x0d, 0x01, 0x99, - 0x90, 0xf6, 0x5b, 0x86, 0x71, 0x9b, 0x7d, 0x60, 0xcb, 0x27, 0xfd, 0xe8, 0xd0, 0x47, 0x8f, 0x9a, - 0xe6, 0xff, 0x8e, 0xde, 0x17, 0x67, 0x8e, 0x10, 0xca, 0x58, 0x3c, 0x24, 0x17, 0x86, 0x03, 0x24, - 0x7a, 0x41, 0x0a, 0x66, 0xc4, 0x8a, 0xb9, 0x95, 0x20, 0xc6, 0x94, 0x5c, 0x25, 0xc4, 0x9f, 0x39, - 0x23, 0xeb, 0xcc, 0xe3, 0xd8, 0x70, 0x0a, 0x5e, 0xcb, 0xa4, 0x27, 0xbf, 0x3d, 0x8b, 0x25, 0x9f, - 0x72, 0x99, 0x77, 0x8d, 0x0e, 0x7a, 0xb5, 0x7a, 0xfd, 0x7e, 0x27, 0xaf, 0xa0, 0xaf, 0x2b, 0x30, - 0x2d, 0x5c, 0xdf, 0x87, 0x5e, 0x9b, 0x92, 0xb9, 0x5a, 0x8b, 0xbb, 0x18, 0x30, 0x75, 0xd0, 0x8b, - 0x01, 0xcf, 0x9c, 0x85, 0x31, 0x96, 0x46, 0xe4, 0x5b, 0xad, 0xb8, 0xa6, 0xc0, 0x51, 0x98, 0x5c, - 0x2c, 0xd5, 0xd7, 0x6b, 0xf5, 0x82, 0x56, 0x2f, 0xcd, 0xe7, 0x53, 0xee, 0xc0, 0x57, 0x5a, 0x59, - 0xad, 0xdf, 0x9b, 0xcf, 0xc5, 0xf7, 0xc0, 0xeb, 0x66, 0x64, 0xc4, 0x1e, 0x78, 0x51, 0xc5, 0x27, - 0x3f, 0x57, 0xfd, 0xac, 0x02, 0x79, 0xca, 0x41, 0xe9, 0xfe, 0x36, 0xb6, 0x0d, 0x6c, 0x36, 0x30, - 0xba, 0x28, 0x13, 0xf1, 0x73, 0x5f, 0x2c, 0x3c, 0xd2, 0x9f, 0x73, 0x56, 0x22, 0x7d, 0xe9, 0x32, - 0xb0, 0x33, 0xfb, 0x0c, 0xec, 0xcf, 0xc4, 0x75, 0xc1, 0xeb, 0x66, 0x77, 0x28, 0x90, 0x7d, 0x2a, - 0x8e, 0x0b, 0x5e, 0x1f, 0x0e, 0x46, 0x12, 0xc8, 0x37, 0x64, 0xfc, 0xcd, 0x2b, 0xe8, 0xf9, 0x0a, - 0x1c, 0x9d, 0xd7, 0x1d, 0x3c, 0xb7, 0x57, 0x37, 0xb6, 0x71, 0xc7, 0xd1, 0xb7, 0xdb, 0x21, 0x57, - 0xe2, 0xa5, 0xf6, 0x5d, 0x89, 0xe7, 0x78, 0x7f, 0x10, 0x4e, 0x15, 0x2d, 0x48, 0x40, 0xef, 0x8a, - 0x7b, 0x68, 0xaf, 0x8b, 0x87, 0xa1, 0x45, 0xdb, 0x8d, 0x77, 0x18, 0x2f, 0x9a, 0x8b, 0x11, 0xdc, - 0x50, 0x3b, 0x01, 0x79, 0xca, 0x0a, 0xe7, 0x65, 0xf6, 0x1b, 0xec, 0x16, 0xc9, 0xf5, 0x18, 0x41, - 0xfd, 0xbc, 0x30, 0x09, 0x69, 0x31, 0x4c, 0x82, 0xb0, 0x68, 0xa9, 0x74, 0x7b, 0x06, 0xc4, 0xed, - 0x0c, 0x39, 0x97, 0xb2, 0xf0, 0x38, 0xaa, 0xc9, 0x75, 0x86, 0x91, 0xc5, 0x8f, 0xe6, 0xa6, 0x33, - 0x76, 0x97, 0x61, 0x49, 0x16, 0x99, 0xe8, 0x0b, 0x1d, 0xe3, 0xfa, 0x17, 0x0b, 0x2e, 0x7d, 0x11, - 0xb7, 0x1c, 0x26, 0xe7, 0x5f, 0xdc, 0x8f, 0x83, 0xe4, 0x51, 0xf8, 0x51, 0x1a, 0x32, 0x35, 0xcb, - 0x76, 0x86, 0x85, 0x41, 0xdc, 0x3d, 0x51, 0x4e, 0x02, 0xb5, 0xf0, 0x39, 0x67, 0x72, 0x7b, 0xa2, - 0xd1, 0xe5, 0x8f, 0x20, 0x2e, 0xe2, 0x51, 0x98, 0xa1, 0x9c, 0xf8, 0x97, 0x86, 0xfc, 0x5b, 0x9a, - 0xf6, 0x57, 0xf7, 0xc8, 0x22, 0x72, 0x06, 0xa6, 0xb8, 0x3d, 0x49, 0xff, 0xc2, 0x6c, 0x3e, 0x0d, - 0xbd, 0x91, 0xc7, 0x65, 0x5e, 0xc4, 0xa5, 0xd7, 0x8c, 0xdb, 0xbf, 0x77, 0x63, 0x58, 0x3d, 0x53, - 0x9c, 0x10, 0x8b, 0x11, 0x85, 0x27, 0x8f, 0xc8, 0x03, 0x0a, 0xe4, 0x98, 0x4f, 0xd8, 0x50, 0x11, - 0x88, 0xdb, 0x32, 0x7c, 0x21, 0xc8, 0xf9, 0x8e, 0x29, 0xc3, 0x6e, 0x19, 0xd1, 0xe5, 0x27, 0x8f, - 0xc3, 0xbf, 0x33, 0x67, 0xc7, 0xc2, 0xae, 0x6e, 0xb4, 0xf4, 0x0b, 0xad, 0x18, 0xa1, 0x8d, 0x3f, - 0x1e, 0xf3, 0x78, 0x97, 0x5f, 0x55, 0xa1, 0xbc, 0x10, 0x89, 0xff, 0x0c, 0x4c, 0xd8, 0xfe, 0x92, - 0xa4, 0x77, 0xfa, 0xbd, 0xcb, 0xd1, 0x94, 0x7d, 0xd7, 0x82, 0x9c, 0xb1, 0xce, 0x72, 0x49, 0xf1, - 0x33, 0x92, 0xb3, 0x27, 0x93, 0x85, 0x66, 0x73, 0x01, 0xeb, 0xce, 0x8e, 0x8d, 0x9b, 0xb1, 0x86, - 0x08, 0x51, 0x44, 0x13, 0xbc, 0x24, 0x84, 0xe0, 0x82, 0xcb, 0x22, 0x3a, 0x4f, 0xe8, 0xd3, 0x1b, - 0x78, 0xbc, 0x0c, 0xa5, 0x4b, 0x7a, 0xab, 0x0f, 0x49, 0x55, 0x80, 0xe4, 0x49, 0x83, 0x31, 0x91, - 0x3c, 0x20, 0xbf, 0xa5, 0xc0, 0x0c, 0xb5, 0x13, 0x86, 0x8d, 0xc9, 0x07, 0x63, 0xfa, 0x90, 0x70, - 0xd7, 0x32, 0xf1, 0xec, 0x0c, 0x05, 0x96, 0x38, 0x1e, 0x27, 0x72, 0x7c, 0x24, 0x8f, 0xcc, 0x27, - 0xa7, 0x01, 0x38, 0xbf, 0xc0, 0x8f, 0xe7, 0x82, 0x40, 0x7f, 0xe8, 0xed, 0x6c, 0xfe, 0x51, 0x13, - 0xa2, 0x4e, 0x73, 0x3e, 0x7f, 0xfe, 0x86, 0x94, 0x98, 0x28, 0x35, 0xaa, 0xfc, 0x45, 0x4c, 0x9b, - 0x97, 0x79, 0xe5, 0xf5, 0x1d, 0xdc, 0x07, 0xec, 0xe5, 0x3e, 0x11, 0xc3, 0xf8, 0xed, 0xc7, 0x4a, - 0x3c, 0xd4, 0x96, 0x07, 0x98, 0xd9, 0x9f, 0x82, 0xe3, 0x5a, 0xa9, 0x30, 0x5f, 0xad, 0x2c, 0xdf, - 0xcb, 0xdf, 0xd1, 0x93, 0x57, 0xf8, 0xc9, 0x49, 0x22, 0xb0, 0xbd, 0x2e, 0x66, 0x1f, 0x28, 0xca, - 0x2a, 0x6a, 0xb6, 0xc2, 0x2d, 0xae, 0xf4, 0xef, 0xd5, 0x24, 0xc8, 0x1e, 0x26, 0x0a, 0xdf, 0xcb, - 0xc1, 0xa4, 0x86, 0x1b, 0xd6, 0xf6, 0x36, 0x36, 0x9b, 0xb8, 0x89, 0x5e, 0xa7, 0xc0, 0x94, 0xbf, - 0xdf, 0x57, 0xc3, 0x0e, 0xfa, 0xf9, 0x00, 0x9b, 0x33, 0x30, 0xe5, 0x56, 0xae, 0x2a, 0x46, 0x12, - 0x17, 0xd2, 0xd4, 0x9b, 0xe0, 0x98, 0x87, 0x42, 0xb5, 0x6b, 0x0a, 0xb3, 0xff, 0x03, 0x7a, 0x37, - 0x8f, 0xd1, 0x9a, 0x88, 0xd1, 0x9d, 0xe1, 0xc2, 0xf4, 0xd9, 0x9d, 0xe5, 0x59, 0x0d, 0x01, 0xeb, - 0xcf, 0x7d, 0xb0, 0x9e, 0x2a, 0x80, 0x35, 0x7f, 0x40, 0xfa, 0x87, 0x89, 0xda, 0x07, 0x14, 0x38, - 0xee, 0x75, 0xc4, 0xa3, 0x43, 0xeb, 0x13, 0x3c, 0x5a, 0x4f, 0x13, 0xd1, 0x5a, 0x94, 0x91, 0x66, - 0x2f, 0x96, 0x43, 0x50, 0xfb, 0xb2, 0x8f, 0xda, 0x2f, 0x08, 0xa8, 0x2d, 0x0f, 0xa9, 0x9c, 0xc3, - 0x44, 0xef, 0x01, 0xe0, 0x86, 0xae, 0xe7, 0x29, 0x90, 0x77, 0x6d, 0x50, 0xda, 0x33, 0xb0, 0x0b, - 0x10, 0xab, 0xa2, 0xab, 0x6e, 0x9b, 0xee, 0xf9, 0x06, 0xae, 0xba, 0x5e, 0x82, 0x7a, 0x3d, 0xcc, - 0x34, 0xb6, 0x70, 0xe3, 0x62, 0xd9, 0xf4, 0x7c, 0x59, 0xa8, 0xe3, 0x43, 0x57, 0xaa, 0xd8, 0x19, - 0xde, 0x23, 0x42, 0x27, 0x2e, 0x5c, 0x09, 0x86, 0x31, 0xcf, 0x54, 0x08, 0x50, 0x7f, 0xe4, 0x03, - 0x55, 0x11, 0x80, 0xba, 0x6d, 0x20, 0xaa, 0xf1, 0x60, 0xa9, 0x0c, 0x00, 0x0b, 0x82, 0x93, 0xd5, - 0xd5, 0x7a, 0xb9, 0x5a, 0x59, 0x5f, 0xab, 0x95, 0xe6, 0xd7, 0xe7, 0x3c, 0x70, 0x6a, 0x79, 0x05, - 0x7d, 0x3b, 0x0d, 0x63, 0x94, 0xad, 0x0e, 0x7a, 0x74, 0x00, 0x41, 0x5f, 0x1f, 0x65, 0xf4, 0x36, - 0xe9, 0x88, 0x23, 0xbe, 0x20, 0x58, 0x39, 0x21, 0xb6, 0xc1, 0x13, 0x61, 0x8c, 0x82, 0xec, 0xad, - 0x22, 0x9f, 0x0e, 0xb1, 0x0c, 0x18, 0x19, 0xcd, 0xcb, 0x2e, 0x19, 0x7d, 0xa4, 0x0f, 0x1b, 0xc9, - 0x5b, 0x73, 0xcf, 0xcc, 0xd0, 0xa9, 0xe7, 0x79, 0xc3, 0xd9, 0x22, 0x2e, 0xcc, 0xe8, 0x29, 0x32, - 0x4b, 0xfa, 0x37, 0x41, 0x76, 0xd7, 0xcd, 0xdd, 0xc7, 0x1d, 0x9c, 0x66, 0x42, 0xaf, 0x90, 0x0e, - 0x76, 0x2b, 0xe8, 0xa7, 0xcf, 0x53, 0x08, 0x38, 0x2b, 0x90, 0x69, 0x19, 0x1d, 0x87, 0xd9, 0x6c, - 0xb7, 0xc6, 0x22, 0xe4, 0x3d, 0x94, 0x1d, 0xbc, 0xad, 0x11, 0x32, 0xe8, 0x6e, 0x77, 0xc4, 0x0d, - 0x52, 0x25, 0x5c, 0xe2, 0x4f, 0xc1, 0x18, 0x3b, 0xaa, 0xc9, 0xb6, 0x35, 0xbc, 0x57, 0xc9, 0xad, - 0x04, 0xa9, 0xda, 0x26, 0xaf, 0x03, 0xff, 0xcf, 0x51, 0x18, 0x5b, 0x32, 0x3a, 0x8e, 0x65, 0xef, - 0xa1, 0x87, 0x52, 0x30, 0x76, 0x0e, 0xdb, 0x1d, 0xc3, 0x32, 0xf7, 0xb9, 0xf7, 0x5c, 0x03, 0x93, - 0x6d, 0x1b, 0xef, 0x1a, 0xd6, 0x4e, 0x27, 0x18, 0x9f, 0xf8, 0x24, 0x15, 0xc1, 0xb8, 0xbe, 0xe3, - 0x6c, 0x59, 0x76, 0x10, 0xe1, 0xc5, 0x7b, 0x57, 0x4f, 0x03, 0xd0, 0xe7, 0x8a, 0xbe, 0x8d, 0x99, - 0xd3, 0x12, 0x97, 0xa2, 0xaa, 0x90, 0x71, 0x8c, 0x6d, 0xcc, 0x42, 0x3e, 0x93, 0x67, 0x57, 0xc0, - 0x24, 0x7c, 0x22, 0x0b, 0x53, 0xa9, 0x68, 0xde, 0x2b, 0xfa, 0xa2, 0x02, 0x93, 0x8b, 0xd8, 0x61, - 0xac, 0x76, 0xd0, 0x0b, 0x53, 0x52, 0xb7, 0xac, 0xb8, 0x76, 0x6d, 0x4b, 0xef, 0x78, 0xff, 0xf9, - 0xdb, 0x1e, 0x62, 0x62, 0x10, 0x7f, 0x5a, 0xe1, 0x83, 0xcf, 0x93, 0x60, 0x84, 0x4e, 0x99, 0xfa, - 0x3a, 0xb3, 0xcc, 0x6c, 0xe3, 0x71, 0xff, 0x07, 0xd1, 0xa6, 0x8a, 0x3c, 0xc8, 0xcf, 0x64, 0x3f, - 0xcb, 0xd5, 0x27, 0xb4, 0x3b, 0x1a, 0xdf, 0x65, 0x39, 0xf6, 0xdd, 0x2b, 0xc0, 0x53, 0x62, 0x64, - 0x34, 0x3f, 0xb7, 0x64, 0x08, 0x80, 0xfe, 0x9c, 0x24, 0xaf, 0x8d, 0x3f, 0x50, 0x60, 0xb2, 0xb6, - 0x65, 0x5d, 0xf2, 0xe4, 0xf8, 0x34, 0x39, 0x60, 0xaf, 0x82, 0x89, 0xdd, 0x2e, 0x50, 0x83, 0x04, - 0xfe, 0xf2, 0x2a, 0x45, 0xbc, 0xbc, 0xea, 0xb9, 0x4a, 0x5c, 0x98, 0x38, 0xe6, 0x42, 0x60, 0x12, - 0xef, 0x9b, 0x4a, 0xc7, 0xb8, 0x6f, 0x4a, 0x7d, 0x02, 0x8c, 0x31, 0xae, 0xd9, 0x32, 0x67, 0x34, - 0xc0, 0x5e, 0x66, 0xbe, 0x82, 0x19, 0xb1, 0x82, 0xf1, 0x90, 0x0f, 0xaf, 0x5c, 0xf2, 0xc8, 0xff, - 0x69, 0x9a, 0x04, 0x80, 0xf1, 0x80, 0x2f, 0x0e, 0x01, 0x78, 0xf4, 0xc3, 0x94, 0xec, 0x66, 0x80, - 0x2f, 0x01, 0x9f, 0x83, 0x03, 0xdd, 0xa0, 0xd4, 0x97, 0x5c, 0xf2, 0xf2, 0x7c, 0x79, 0x06, 0xa6, - 0xe6, 0x8d, 0x8d, 0x0d, 0xbf, 0x93, 0x7c, 0x91, 0x64, 0x27, 0x19, 0xee, 0x82, 0xe3, 0xda, 0xb9, - 0x3b, 0xb6, 0x8d, 0x4d, 0xaf, 0x52, 0xac, 0x39, 0x75, 0xa5, 0xaa, 0x37, 0xc0, 0x51, 0x6f, 0x5c, - 0xe0, 0x3b, 0xca, 0x09, 0xad, 0x3b, 0x19, 0x7d, 0x5f, 0x7a, 0x27, 0xd9, 0x93, 0x28, 0x5f, 0xa5, - 0x90, 0x06, 0x78, 0x3b, 0x4c, 0x6f, 0xd1, 0xdc, 0x64, 0xb9, 0xcd, 0xeb, 0x2c, 0x4f, 0x76, 0x05, - 0xd8, 0x5e, 0xc1, 0x9d, 0x8e, 0xbe, 0x89, 0x35, 0x31, 0x73, 0x57, 0xf3, 0x55, 0xe2, 0x5c, 0x17, - 0x27, 0xb7, 0x29, 0x2d, 0x51, 0x93, 0x11, 0x68, 0xc7, 0x19, 0xc8, 0x2c, 0x18, 0x2d, 0x8c, 0x7e, - 0x25, 0x0d, 0x13, 0xee, 0xac, 0xcd, 0x6c, 0xb8, 0x6f, 0x9c, 0x43, 0xde, 0xf7, 0x52, 0xb2, 0xd7, - 0xa4, 0xba, 0x74, 0x66, 0x7d, 0x1a, 0x21, 0xed, 0x46, 0xee, 0x3a, 0xd4, 0x48, 0x52, 0x23, 0xb8, - 0xd4, 0xc6, 0x9d, 0x7a, 0x6c, 0x6c, 0xb4, 0x2c, 0x5d, 0x58, 0x70, 0xee, 0x36, 0x85, 0x6e, 0x84, - 0xbc, 0x77, 0xae, 0xca, 0x72, 0x56, 0x0d, 0xd3, 0xf4, 0x0f, 0xee, 0xef, 0x4b, 0x17, 0x7d, 0x25, - 0x22, 0x63, 0x1f, 0x91, 0xba, 0xb3, 0xd2, 0x43, 0x34, 0xfb, 0x7a, 0x98, 0xb9, 0xb0, 0xe7, 0xe0, - 0x0e, 0xcb, 0xc5, 0x8a, 0xcd, 0x68, 0x5d, 0xa9, 0x5c, 0xe4, 0xf2, 0xa8, 0x18, 0x49, 0x11, 0x05, - 0xc6, 0x13, 0xf5, 0xd2, 0x00, 0x33, 0xc0, 0xe3, 0x90, 0xaf, 0x54, 0xe7, 0x4b, 0xc4, 0x3f, 0xd4, - 0xf3, 0xb8, 0xdb, 0x44, 0x2f, 0x56, 0x60, 0x8a, 0x38, 0x70, 0x79, 0x28, 0x5c, 0x2b, 0x31, 0x1f, - 0x41, 0x5f, 0x95, 0xf6, 0x1d, 0x25, 0x55, 0xe6, 0x0b, 0x08, 0x17, 0xf4, 0x86, 0xd1, 0xea, 0x16, - 0x74, 0x56, 0xeb, 0x4a, 0xed, 0x01, 0x88, 0xd2, 0x13, 0x90, 0x0f, 0x48, 0x39, 0x90, 0xf6, 0xe3, - 0xee, 0xb0, 0x50, 0xf9, 0x7d, 0x05, 0x26, 0xdd, 0x49, 0x8a, 0x07, 0x4a, 0x55, 0x00, 0xc5, 0x32, - 0x5b, 0x7b, 0xc1, 0xb2, 0x88, 0xf7, 0x1a, 0xab, 0x91, 0xfc, 0x95, 0xf4, 0xcc, 0x9d, 0x88, 0x88, - 0xe3, 0x65, 0x44, 0xf8, 0xbd, 0x5f, 0x6a, 0x3e, 0xdf, 0x87, 0xb9, 0xc3, 0x82, 0xef, 0x9b, 0x59, - 0xc8, 0xad, 0xb5, 0x09, 0x72, 0xaf, 0x50, 0x64, 0x6e, 0x01, 0xd8, 0x77, 0x78, 0xc8, 0x35, 0xb3, - 0x5a, 0x56, 0x43, 0x6f, 0xad, 0x06, 0xa7, 0x30, 0x83, 0x04, 0xf5, 0x36, 0xe6, 0x4f, 0x4c, 0x8f, - 0xb0, 0x5e, 0x1f, 0x19, 0x20, 0x9f, 0xc8, 0x88, 0x3b, 0xa8, 0x75, 0x13, 0x1c, 0x6b, 0x1a, 0x1d, - 0xfd, 0x42, 0x0b, 0x97, 0xcc, 0x86, 0xbd, 0x47, 0xc5, 0xc1, 0xa6, 0x55, 0xfb, 0x3e, 0xa8, 0x77, - 0x40, 0xb6, 0xe3, 0xec, 0xb5, 0xe8, 0x3c, 0x91, 0x3f, 0xd7, 0x15, 0x5a, 0x54, 0xcd, 0xcd, 0xae, - 0xd1, 0xbf, 0x78, 0xb7, 0xc0, 0x31, 0xc9, 0x3b, 0xd2, 0x1f, 0x07, 0x39, 0xcb, 0x36, 0x36, 0x0d, - 0x7a, 0xe7, 0xd5, 0xcc, 0xbe, 0x38, 0x90, 0xd4, 0x14, 0xa8, 0x92, 0x2c, 0x1a, 0xcb, 0xaa, 0x3e, - 0x01, 0x26, 0x8c, 0x6d, 0x7d, 0x13, 0xdf, 0x63, 0x98, 0xf4, 0x94, 0xec, 0xcc, 0x2d, 0xa7, 0xf6, - 0x1d, 0x59, 0x63, 0xdf, 0xb5, 0x20, 0x2b, 0x7a, 0x7f, 0x5a, 0x36, 0x58, 0x15, 0xa9, 0x1b, 0x05, - 0x75, 0x24, 0x77, 0xc5, 0xa3, 0x57, 0x4b, 0x85, 0x91, 0x0a, 0x67, 0x2b, 0xf9, 0xc1, 0xfb, 0x0b, - 0x69, 0x18, 0x9f, 0xb7, 0x2e, 0x99, 0x44, 0xd1, 0x6f, 0x95, 0xb3, 0x75, 0x7b, 0x1c, 0x2c, 0x16, - 0xaf, 0x62, 0x8d, 0x3c, 0x45, 0x44, 0x6a, 0xeb, 0x15, 0x19, 0x02, 0x43, 0x64, 0xcb, 0x91, 0xbc, - 0x20, 0x33, 0xaa, 0x9c, 0xe4, 0xe5, 0xfa, 0x67, 0x0a, 0x64, 0xe6, 0x6d, 0xab, 0x8d, 0xde, 0x9a, - 0x8a, 0xe1, 0x26, 0xd4, 0xb4, 0xad, 0x76, 0x9d, 0xdc, 0x70, 0x17, 0x1c, 0x9d, 0xe2, 0xd3, 0xd4, - 0x5b, 0x61, 0xbc, 0x6d, 0x75, 0x0c, 0xc7, 0x9b, 0x46, 0xcc, 0xdc, 0xf2, 0x88, 0x9e, 0xad, 0x79, - 0x95, 0x65, 0xd2, 0xfc, 0xec, 0x6e, 0xaf, 0x4d, 0x44, 0xe8, 0xca, 0xc5, 0x15, 0xa3, 0x77, 0xcb, - 0x5f, 0x57, 0x2a, 0x7a, 0x09, 0x8f, 0xe4, 0x93, 0x44, 0x24, 0x1f, 0xd9, 0x43, 0xc2, 0xb6, 0xd5, - 0x1e, 0xca, 0xc6, 0xfe, 0x2b, 0x7d, 0x54, 0x9f, 0x2c, 0xa0, 0x7a, 0xa3, 0x54, 0x99, 0xc9, 0x23, - 0xfa, 0xfe, 0x0c, 0x00, 0x31, 0x33, 0xd6, 0xdc, 0x09, 0x90, 0x9c, 0x8d, 0xf5, 0xec, 0x0c, 0x27, - 0xcb, 0x82, 0x28, 0xcb, 0x47, 0x87, 0x58, 0x31, 0x84, 0x7c, 0x88, 0x44, 0x0b, 0x90, 0xdd, 0x71, - 0x3f, 0x33, 0x89, 0x4a, 0x92, 0x20, 0xaf, 0x1a, 0xfd, 0x13, 0xfd, 0x69, 0x0a, 0xb2, 0x24, 0x41, - 0x3d, 0x0d, 0x40, 0x06, 0x76, 0x7a, 0x08, 0x2f, 0x45, 0x86, 0x70, 0x2e, 0x85, 0x68, 0xab, 0xd1, - 0x64, 0x9f, 0xa9, 0xc9, 0x1c, 0x24, 0xb8, 0x7f, 0x93, 0xe1, 0x9e, 0xd0, 0x62, 0x06, 0x00, 0x97, - 0xe2, 0xfe, 0x4d, 0xde, 0x96, 0xf1, 0x06, 0x0d, 0x3e, 0x9e, 0xd1, 0x82, 0x04, 0xff, 0xef, 0x65, - 0xff, 0xca, 0x3a, 0xef, 0x6f, 0x92, 0xe2, 0x4e, 0x86, 0x89, 0x5a, 0xce, 0x05, 0x45, 0xe4, 0x48, - 0xa6, 0xee, 0x64, 0xf4, 0x3a, 0x5f, 0x6d, 0xe6, 0x05, 0xb5, 0xb9, 0x39, 0x86, 0x78, 0x93, 0x57, - 0x9e, 0xaf, 0x67, 0x61, 0xa2, 0x62, 0x35, 0x99, 0xee, 0x70, 0x13, 0xc6, 0x4f, 0x65, 0x63, 0x4d, - 0x18, 0x7d, 0x1a, 0x21, 0x0a, 0x72, 0x97, 0xa8, 0x20, 0x72, 0x14, 0x78, 0xfd, 0x50, 0xe7, 0x20, - 0x47, 0xb4, 0x77, 0xff, 0x5d, 0x68, 0x51, 0x24, 0x88, 0x68, 0x35, 0xf6, 0xe7, 0x7f, 0x38, 0x1d, - 0xfb, 0x2f, 0x90, 0x25, 0x15, 0x8c, 0xd8, 0xdd, 0x11, 0x2b, 0x9a, 0x8e, 0xae, 0xa8, 0x12, 0x5d, - 0xd1, 0x4c, 0x77, 0x45, 0xe3, 0xac, 0x03, 0x84, 0x69, 0x48, 0xf2, 0x3a, 0xfe, 0x8f, 0x63, 0x00, - 0x15, 0x7d, 0xd7, 0xd8, 0xa4, 0xbb, 0xc3, 0x5f, 0xf4, 0xe6, 0x3f, 0x6c, 0x1f, 0xf7, 0xbf, 0x72, - 0x03, 0xe1, 0xad, 0x30, 0xc6, 0xc6, 0x3d, 0x56, 0x91, 0xab, 0x85, 0x8a, 0x04, 0x54, 0xa8, 0x59, - 0x7a, 0xbf, 0xa3, 0x79, 0xf9, 0x85, 0x6b, 0x9b, 0xd3, 0x5d, 0xd7, 0x36, 0xf7, 0xde, 0x83, 0x08, - 0xb9, 0xcc, 0x19, 0xbd, 0x47, 0xfa, 0x14, 0x0d, 0xc7, 0x0f, 0x57, 0xa3, 0x90, 0x26, 0xf8, 0x38, - 0x18, 0xb3, 0xfc, 0x0d, 0x6d, 0x25, 0x74, 0x1d, 0xac, 0x6c, 0x6e, 0x58, 0x9a, 0x97, 0x53, 0x72, - 0xf3, 0x4b, 0x8a, 0x8f, 0x91, 0x1c, 0x54, 0x3b, 0xb9, 0xe8, 0x05, 0x72, 0x73, 0xeb, 0x71, 0xde, - 0x70, 0xb6, 0x96, 0x0d, 0xf3, 0x62, 0x07, 0xfd, 0x82, 0x9c, 0x05, 0xc9, 0xe1, 0x9f, 0x8e, 0x87, - 0xbf, 0x18, 0x27, 0xa7, 0x26, 0xa2, 0x76, 0x47, 0x18, 0x95, 0xde, 0xdc, 0x86, 0x00, 0x78, 0x1b, - 0xe4, 0x28, 0xa3, 0xac, 0x13, 0x3d, 0x13, 0x8a, 0x9f, 0x4f, 0x49, 0x63, 0x7f, 0xa0, 0x77, 0xfb, - 0x38, 0x9e, 0x13, 0x70, 0x9c, 0x3b, 0x10, 0x67, 0x89, 0x43, 0x7a, 0xe6, 0xb1, 0x30, 0xc6, 0x24, - 0xad, 0xce, 0xf0, 0xad, 0x38, 0x7f, 0x44, 0x05, 0xc8, 0xad, 0x58, 0xbb, 0xb8, 0x6e, 0xe5, 0x53, - 0xee, 0xb3, 0xcb, 0x5f, 0xdd, 0xca, 0xa7, 0xd1, 0xab, 0xc6, 0x61, 0xdc, 0x8f, 0xa0, 0xf5, 0x85, - 0x34, 0xe4, 0x8b, 0x36, 0xd6, 0x1d, 0xbc, 0x60, 0x5b, 0xdb, 0xb4, 0x46, 0xf2, 0x1e, 0xd9, 0xbf, - 0x25, 0xed, 0xe2, 0xe1, 0x47, 0xb6, 0xea, 0x2e, 0x2c, 0x04, 0x4b, 0xba, 0x08, 0x99, 0xf6, 0x16, - 0x21, 0xd1, 0x5b, 0xa4, 0x5c, 0x3e, 0x64, 0x4b, 0x49, 0xbe, 0xa9, 0x7d, 0x26, 0x0d, 0xd9, 0x62, - 0xcb, 0x32, 0x31, 0x7f, 0x6c, 0xb0, 0xef, 0xf9, 0xb4, 0xde, 0x3b, 0x11, 0xe8, 0x99, 0x69, 0x59, - 0x5b, 0x23, 0x10, 0x80, 0x5b, 0xb6, 0xa4, 0x6c, 0xe5, 0x06, 0xa9, 0x48, 0xd2, 0xc9, 0x0b, 0xf4, - 0xdb, 0x69, 0x98, 0xa0, 0xb1, 0xa8, 0x0a, 0xad, 0x16, 0x7a, 0x44, 0x20, 0xd4, 0x1e, 0x51, 0xc8, - 0xd0, 0x07, 0xa4, 0x8f, 0xc5, 0xf8, 0xb5, 0xf2, 0x69, 0xc7, 0x08, 0xca, 0x15, 0xef, 0x94, 0x86, - 0xdc, 0x5e, 0x5a, 0x5f, 0x86, 0x92, 0x17, 0xf5, 0x5f, 0xa6, 0x5d, 0x03, 0xc0, 0xbc, 0xb8, 0x6a, - 0xe3, 0x5d, 0x03, 0x5f, 0x42, 0x57, 0x06, 0xc2, 0xde, 0x1f, 0x68, 0xe7, 0x4d, 0xd2, 0x8b, 0x38, - 0x1c, 0xc9, 0xd0, 0xad, 0xac, 0xc9, 0x56, 0x90, 0x89, 0xf5, 0xe2, 0xdd, 0xd1, 0x8f, 0x38, 0x32, - 0x1a, 0x9f, 0x5d, 0x72, 0xcd, 0x26, 0x9c, 0x8b, 0xe4, 0x05, 0xfb, 0x91, 0x31, 0x18, 0x5f, 0x33, - 0x3b, 0xed, 0x96, 0xde, 0xd9, 0x42, 0xff, 0xa6, 0x40, 0x8e, 0xde, 0xc0, 0x87, 0x7e, 0x46, 0x88, - 0xe7, 0xf1, 0xf4, 0x1d, 0x6c, 0x7b, 0x2e, 0x38, 0xf4, 0x25, 0xb0, 0x8f, 0xd2, 0x9c, 0x7d, 0x84, - 0xde, 0xaf, 0xc8, 0x4e, 0x52, 0xbd, 0x42, 0xd9, 0x95, 0x7f, 0xe1, 0x21, 0x24, 0xda, 0x46, 0xc3, - 0xd9, 0xb1, 0xfd, 0xeb, 0xe6, 0x1f, 0x23, 0x47, 0x65, 0x95, 0xfe, 0xa5, 0xf9, 0xbf, 0x23, 0x1d, - 0xc6, 0x58, 0xe2, 0xbe, 0xed, 0xa4, 0xfd, 0x67, 0xde, 0x4f, 0x42, 0x4e, 0xb7, 0x1d, 0xa3, 0xe3, - 0xb0, 0x0d, 0x56, 0xf6, 0xe6, 0x76, 0x97, 0xf4, 0x69, 0xcd, 0x6e, 0x79, 0x91, 0x7f, 0xfc, 0x04, - 0xf4, 0xfb, 0x52, 0xf3, 0xc7, 0xe8, 0x9a, 0xc7, 0x83, 0xfc, 0x9e, 0x01, 0xd6, 0xa8, 0x2f, 0x87, - 0xcb, 0xb4, 0x42, 0xbd, 0xb4, 0x4e, 0x03, 0xc5, 0xf8, 0x31, 0x61, 0x9a, 0xe8, 0x5d, 0x0a, 0xb7, - 0x7e, 0xb7, 0x27, 0x8c, 0x11, 0x4c, 0x8a, 0xc1, 0x18, 0xe1, 0x27, 0x44, 0xec, 0x56, 0x0b, 0x8b, - 0xb0, 0x8a, 0xfc, 0x22, 0xec, 0xef, 0x4a, 0xef, 0x26, 0xf9, 0xa2, 0xec, 0xb3, 0x06, 0x18, 0x75, - 0x43, 0xd7, 0x87, 0xa4, 0x76, 0x86, 0xfa, 0x95, 0x74, 0x88, 0xb0, 0xbd, 0x71, 0x0c, 0xc6, 0x16, - 0xf5, 0x56, 0x0b, 0xdb, 0x7b, 0xee, 0x90, 0x94, 0xf7, 0x38, 0x5c, 0xd1, 0x4d, 0x63, 0x03, 0x77, - 0x9c, 0xe8, 0xce, 0xf2, 0x3d, 0xd2, 0xd1, 0x9f, 0x59, 0x19, 0xb3, 0xdd, 0xf4, 0x43, 0x64, 0x7e, - 0x16, 0x32, 0x86, 0xb9, 0x61, 0xb1, 0x2e, 0xb3, 0x7b, 0xd5, 0xde, 0xfb, 0x99, 0x4c, 0x5d, 0x48, - 0x46, 0xc9, 0x00, 0xd0, 0x92, 0x5c, 0x24, 0xdf, 0x73, 0xfe, 0x5e, 0x06, 0xa6, 0x3d, 0x26, 0xca, - 0x66, 0x13, 0xdf, 0xcf, 0x2f, 0xc5, 0xbc, 0x38, 0x23, 0x7b, 0x04, 0xb3, 0xbb, 0x3e, 0x84, 0x54, - 0x88, 0x48, 0xeb, 0x00, 0x0d, 0xdd, 0xc1, 0x9b, 0x96, 0x6d, 0xf8, 0xfd, 0xe1, 0xe3, 0xe3, 0x50, - 0x2b, 0xd2, 0xbf, 0xf7, 0x34, 0x8e, 0x8e, 0x7a, 0x07, 0x4c, 0x62, 0x3f, 0xe6, 0x85, 0xb7, 0x54, - 0x13, 0x89, 0x17, 0x9f, 0x1f, 0xfd, 0xa5, 0xd4, 0x49, 0x4f, 0x99, 0x6a, 0xc6, 0xc3, 0x6c, 0x7d, - 0xb0, 0x36, 0xb4, 0x56, 0x59, 0x29, 0x68, 0xb5, 0xa5, 0xc2, 0xf2, 0x72, 0xb9, 0xb2, 0xe8, 0x07, - 0x5b, 0x52, 0x61, 0x66, 0xbe, 0x7a, 0xbe, 0xc2, 0x45, 0xc3, 0xca, 0xa0, 0x55, 0x18, 0xf7, 0xe4, - 0xd5, 0xcb, 0x17, 0x93, 0x97, 0x19, 0xf3, 0xc5, 0xe4, 0x92, 0x5c, 0xe3, 0xcc, 0x68, 0xf8, 0x0e, - 0x3a, 0xe4, 0x19, 0xfd, 0xb1, 0x0e, 0x59, 0xb2, 0xa6, 0x8e, 0xde, 0x41, 0xb6, 0x01, 0xdb, 0x2d, - 0xbd, 0x81, 0xd1, 0x76, 0x0c, 0x6b, 0xdc, 0xbb, 0x8e, 0x24, 0xbd, 0xef, 0x3a, 0x12, 0xf2, 0xc8, - 0xac, 0xbe, 0xe3, 0xbd, 0xd6, 0xf1, 0x35, 0x9a, 0x45, 0x3c, 0x14, 0x19, 0xb9, 0xbb, 0x42, 0x97, - 0xff, 0x19, 0x9b, 0x21, 0x2a, 0x19, 0xce, 0x53, 0x3c, 0x4b, 0x54, 0x6e, 0x1f, 0x26, 0x8a, 0xa3, - 0x11, 0x5c, 0x99, 0x9f, 0x81, 0x6c, 0xad, 0xdd, 0x32, 0x1c, 0xf4, 0xb2, 0xf4, 0x50, 0x30, 0xa3, - 0x57, 0xc8, 0x28, 0x7d, 0xaf, 0x90, 0x09, 0x76, 0x5d, 0x33, 0x12, 0xbb, 0xae, 0x75, 0x7c, 0xbf, - 0x23, 0xee, 0xba, 0xde, 0xca, 0x02, 0x26, 0xd2, 0x3d, 0xdb, 0x47, 0xf6, 0x10, 0x29, 0xa9, 0x56, - 0x8f, 0x48, 0x9c, 0x67, 0x1e, 0xcb, 0x02, 0x02, 0x02, 0xe4, 0xe6, 0xaa, 0xf5, 0x7a, 0x75, 0x25, - 0x7f, 0x84, 0x44, 0x92, 0xaa, 0xae, 0xd2, 0xf0, 0x4c, 0xe5, 0x4a, 0xa5, 0xa4, 0xe5, 0xd3, 0x24, - 0x44, 0x61, 0xb9, 0xbe, 0x5c, 0xca, 0x2b, 0xe2, 0x7d, 0x02, 0x91, 0xe6, 0xb7, 0x58, 0x76, 0x92, - 0xea, 0x25, 0x67, 0x88, 0x87, 0xf3, 0x93, 0xbc, 0x72, 0xfd, 0xa6, 0x02, 0xd9, 0x15, 0x6c, 0x6f, - 0x62, 0xf4, 0xf4, 0x18, 0x9b, 0x7c, 0x1b, 0x86, 0xdd, 0xa1, 0x01, 0x1d, 0x83, 0x4d, 0x3e, 0x3e, - 0x4d, 0xbd, 0x0e, 0xa6, 0x3b, 0xb8, 0x61, 0x99, 0x4d, 0x2f, 0x13, 0xed, 0x8f, 0xc4, 0x44, 0xf4, - 0xd2, 0x98, 0x90, 0x11, 0x46, 0x87, 0xb2, 0x53, 0x17, 0x07, 0x98, 0x5e, 0xa5, 0x26, 0x0f, 0xcc, - 0xf7, 0x15, 0xf7, 0xa7, 0xf6, 0x1e, 0x7a, 0xa9, 0xf4, 0xee, 0xeb, 0x4d, 0x90, 0x23, 0x6a, 0xea, - 0x8d, 0xd1, 0xbd, 0xfb, 0x63, 0x96, 0x47, 0x9d, 0x83, 0x63, 0x1d, 0xdc, 0xc2, 0x0d, 0x07, 0x37, - 0xdd, 0xa6, 0xab, 0xf5, 0xed, 0x14, 0xf6, 0x67, 0x47, 0x7f, 0xce, 0x03, 0x78, 0xbb, 0x08, 0xe0, - 0xf5, 0x3d, 0x44, 0xe9, 0x56, 0x28, 0xdc, 0x56, 0x76, 0xab, 0x51, 0x6b, 0x59, 0xfe, 0xa2, 0xb8, - 0xf7, 0xee, 0x7e, 0xdb, 0x72, 0xb6, 0x5b, 0xe4, 0x1b, 0x3b, 0x60, 0xe0, 0xbd, 0xab, 0xb3, 0x30, - 0xa6, 0x9b, 0x7b, 0xe4, 0x53, 0x26, 0xa2, 0xd6, 0x5e, 0x26, 0xf4, 0x2a, 0x1f, 0xf9, 0x3b, 0x05, - 0xe4, 0x1f, 0x2d, 0xc7, 0x6e, 0xf2, 0xc0, 0xff, 0xf2, 0x18, 0x64, 0x57, 0xf5, 0x8e, 0x83, 0xd1, - 0xff, 0xad, 0xc8, 0x22, 0x7f, 0x3d, 0xcc, 0x6c, 0x58, 0x8d, 0x9d, 0x0e, 0x6e, 0x8a, 0x8d, 0xb2, - 0x2b, 0x75, 0x18, 0x98, 0xab, 0x37, 0x42, 0xde, 0x4b, 0x64, 0x64, 0xbd, 0x6d, 0xf8, 0x7d, 0xe9, - 0x24, 0x3a, 0x7d, 0x67, 0x55, 0xb7, 0x9d, 0xea, 0x06, 0x49, 0xf3, 0xa3, 0xd3, 0xf3, 0x89, 0x02, - 0xf4, 0xb9, 0x08, 0xe8, 0xc7, 0xc2, 0xa1, 0x1f, 0x97, 0x80, 0x5e, 0x2d, 0xc0, 0xf8, 0x86, 0xd1, - 0xc2, 0xe4, 0x87, 0x09, 0xf2, 0x43, 0xaf, 0x31, 0x89, 0xc8, 0xde, 0x1f, 0x93, 0x16, 0x8c, 0x16, - 0xd6, 0xfc, 0xdf, 0xbc, 0x89, 0x0c, 0x04, 0x13, 0x99, 0x65, 0xea, 0x4f, 0xeb, 0x1a, 0x5e, 0xa6, - 0xbe, 0x8d, 0xbd, 0xc5, 0x37, 0x93, 0x1d, 0x6e, 0x69, 0xea, 0x8e, 0x4e, 0xc0, 0x98, 0xd2, 0xc8, - 0xb3, 0xe8, 0x17, 0xa2, 0x74, 0xfb, 0x85, 0x3c, 0x47, 0x89, 0xd7, 0x23, 0x7a, 0xcc, 0x86, 0xb4, - 0xa8, 0x0b, 0x1e, 0x40, 0xd4, 0x52, 0xf4, 0xdf, 0x5d, 0x60, 0x1a, 0xba, 0x8d, 0x9d, 0x55, 0xde, - 0x13, 0x23, 0xab, 0x89, 0x89, 0xc4, 0x95, 0xaf, 0x53, 0xd3, 0xb7, 0x31, 0x29, 0xac, 0xe8, 0x7e, - 0x63, 0x2e, 0x5a, 0xfb, 0xd2, 0x83, 0xfe, 0x37, 0x3b, 0xec, 0xfe, 0xb7, 0x57, 0x1d, 0x93, 0x6f, - 0x86, 0xaf, 0xcd, 0x80, 0x52, 0xdc, 0x71, 0x1e, 0xd6, 0xdd, 0xef, 0x8f, 0xa4, 0xfd, 0x5c, 0x58, - 0x7f, 0xb6, 0xe3, 0x1c, 0x6e, 0xef, 0x1b, 0x53, 0x4b, 0xe4, 0xfc, 0x69, 0xc2, 0xea, 0x96, 0xbc, - 0x8e, 0xbc, 0x55, 0xf1, 0x1d, 0x2c, 0x1f, 0x48, 0x1d, 0xdc, 0x34, 0x47, 0xb4, 0x7f, 0xe2, 0x7a, - 0x06, 0xff, 0xdd, 0xeb, 0x78, 0x32, 0x42, 0x7c, 0x4c, 0xb2, 0xbd, 0x4e, 0x44, 0x39, 0xa5, 0xd1, - 0x17, 0xf4, 0x72, 0x69, 0xb7, 0x73, 0x2a, 0xb6, 0x48, 0x57, 0xc2, 0x78, 0x36, 0x95, 0xdc, 0x05, - 0xbd, 0x11, 0xc5, 0x26, 0x0f, 0xd8, 0x77, 0x79, 0x57, 0xc1, 0xc2, 0x81, 0x11, 0x43, 0xaf, 0x96, - 0xde, 0x8e, 0xa2, 0xd5, 0xee, 0xb3, 0x5e, 0x18, 0x4f, 0xde, 0x72, 0x9b, 0x55, 0x91, 0x05, 0x27, - 0x2f, 0xf1, 0xef, 0x28, 0x90, 0xa3, 0x5b, 0x90, 0xe8, 0xcd, 0xd2, 0x4d, 0xc4, 0xed, 0x8d, 0x44, - 0x17, 0x42, 0xff, 0x3d, 0xce, 0x9a, 0x83, 0xe0, 0x6a, 0x98, 0x89, 0xe5, 0x6a, 0x28, 0x9e, 0xe3, - 0x94, 0x68, 0x47, 0xb4, 0x8e, 0x09, 0x4f, 0x27, 0xe3, 0xb4, 0xb0, 0x9e, 0x0c, 0x25, 0x8f, 0xf7, - 0xf3, 0xb2, 0x30, 0x45, 0x8b, 0x3e, 0x6f, 0x34, 0x37, 0xb1, 0x83, 0xde, 0x95, 0xfe, 0xf1, 0x41, - 0x5d, 0xad, 0xc0, 0xd4, 0x25, 0xc2, 0xf6, 0xb2, 0xbe, 0x67, 0xed, 0x38, 0x6c, 0xe5, 0xe2, 0xc6, - 0xc8, 0x75, 0x0f, 0x5a, 0xcf, 0x59, 0xfa, 0x87, 0x26, 0xfc, 0xef, 0xca, 0x98, 0x2e, 0xf8, 0x53, - 0x07, 0xae, 0x1c, 0x31, 0xb2, 0xf8, 0x24, 0xf5, 0x24, 0xe4, 0x76, 0x0d, 0x7c, 0xa9, 0xdc, 0x64, - 0xd6, 0x2d, 0x7b, 0x43, 0x7f, 0x20, 0xbd, 0x6f, 0xcb, 0xc3, 0xcd, 0x78, 0x49, 0x56, 0x0b, 0xe5, - 0x76, 0x6f, 0xfb, 0xb2, 0x35, 0x82, 0x33, 0xc5, 0xe2, 0x05, 0xb8, 0xc5, 0x18, 0x8a, 0x18, 0x66, - 0x38, 0x8b, 0xa1, 0x3c, 0x22, 0x4f, 0xac, 0x50, 0x01, 0x0c, 0xf9, 0x6e, 0x5c, 0xb9, 0xf8, 0x12, - 0x7d, 0x8a, 0x4e, 0x5e, 0xf2, 0xaf, 0x53, 0x60, 0xa2, 0x86, 0x9d, 0x05, 0x03, 0xb7, 0x9a, 0x1d, - 0x64, 0x1f, 0xdc, 0x34, 0x3a, 0x0b, 0xb9, 0x0d, 0x42, 0xac, 0xdf, 0xb9, 0x05, 0x96, 0x0d, 0xbd, - 0x36, 0x2d, 0xbb, 0x23, 0xcc, 0x56, 0xdf, 0x3c, 0x6e, 0x87, 0x02, 0x93, 0x9c, 0x47, 0x6f, 0x74, - 0xc9, 0x23, 0x08, 0x26, 0xad, 0xc0, 0x14, 0xbb, 0x31, 0xb3, 0xd0, 0x32, 0x36, 0x4d, 0xb4, 0x33, - 0x84, 0x16, 0xa2, 0xde, 0x0c, 0x59, 0xdd, 0xa5, 0xc6, 0xb6, 0x5e, 0x51, 0xcf, 0xce, 0x93, 0x94, - 0xa7, 0xd1, 0x8c, 0x31, 0x42, 0xb7, 0x06, 0x8a, 0xed, 0xf1, 0x3c, 0xc2, 0xd0, 0xad, 0x7d, 0x0b, - 0x4f, 0x1e, 0xb1, 0xaf, 0x29, 0x70, 0x9c, 0x31, 0x70, 0x0e, 0xdb, 0x8e, 0xd1, 0xd0, 0x5b, 0x14, - 0xb9, 0x17, 0xa4, 0x86, 0x01, 0xdd, 0x12, 0x4c, 0xef, 0xf2, 0x64, 0x19, 0x84, 0x67, 0x7a, 0x42, - 0x28, 0x30, 0xa0, 0x89, 0x3f, 0xc6, 0x08, 0x81, 0x29, 0x48, 0x55, 0xa0, 0x39, 0xc2, 0x10, 0x98, - 0xd2, 0x4c, 0x24, 0x0f, 0xf1, 0x4b, 0x58, 0x68, 0x9e, 0xa0, 0xfb, 0xfc, 0xa2, 0x34, 0xb6, 0x6b, - 0x30, 0x49, 0xb0, 0xa4, 0x3f, 0xb2, 0x65, 0x88, 0x08, 0x25, 0xf6, 0xfb, 0x1d, 0x76, 0x49, 0x9f, - 0xff, 0xaf, 0xc6, 0xd3, 0x41, 0xe7, 0x01, 0x82, 0x4f, 0x7c, 0x27, 0x9d, 0x0a, 0xeb, 0xa4, 0xd3, - 0x72, 0x9d, 0xf4, 0x9b, 0xa4, 0x83, 0xa5, 0xf4, 0x66, 0xfb, 0xe0, 0xea, 0x21, 0x17, 0x26, 0xa3, - 0x7f, 0xe9, 0xc9, 0xeb, 0xc5, 0xab, 0x98, 0x5e, 0xcc, 0xef, 0xb4, 0x5b, 0x46, 0xc3, 0x9d, 0x4f, - 0x7d, 0x7c, 0x28, 0xf3, 0x29, 0xbe, 0x3f, 0x50, 0xba, 0xfa, 0x83, 0x03, 0x58, 0xd2, 0x37, 0xc0, - 0x51, 0x5a, 0x44, 0xd1, 0x67, 0x2b, 0x4b, 0x43, 0x41, 0x74, 0x25, 0x8b, 0x71, 0xed, 0x24, 0x95, - 0xc0, 0x17, 0xc2, 0x00, 0x4b, 0x9f, 0xf1, 0x8c, 0xdd, 0xb8, 0x0a, 0x12, 0xc6, 0xd9, 0x08, 0xdc, - 0x42, 0x33, 0xd4, 0xda, 0x5d, 0x23, 0xf7, 0x28, 0xa2, 0x2f, 0x67, 0x86, 0x31, 0x22, 0xdc, 0x05, - 0x19, 0xe2, 0xe2, 0xae, 0x84, 0x2e, 0x69, 0x04, 0x45, 0x06, 0x97, 0x5c, 0xe2, 0xfb, 0x9d, 0xa5, - 0x23, 0x1a, 0xf9, 0x53, 0xbd, 0x11, 0x8e, 0x5e, 0xd0, 0x1b, 0x17, 0x37, 0x6d, 0x6b, 0x87, 0xdc, - 0x38, 0x67, 0xb1, 0xab, 0xeb, 0xc8, 0x15, 0xa0, 0xe2, 0x07, 0xf5, 0x16, 0xcf, 0x74, 0xc8, 0xf6, - 0x33, 0x1d, 0x96, 0x8e, 0x30, 0xe3, 0x41, 0x7d, 0xac, 0xdf, 0xe9, 0xe4, 0x22, 0x3b, 0x9d, 0xa5, - 0x23, 0x5e, 0xb7, 0xa3, 0xce, 0xc3, 0x78, 0xd3, 0xd8, 0x25, 0x5b, 0xd5, 0x64, 0xd6, 0xd5, 0xef, - 0xe8, 0xf2, 0xbc, 0xb1, 0x4b, 0x37, 0xb6, 0x97, 0x8e, 0x68, 0xfe, 0x9f, 0xea, 0x22, 0x4c, 0x90, - 0x6d, 0x01, 0x42, 0x66, 0x3c, 0xd6, 0xb1, 0xe4, 0xa5, 0x23, 0x5a, 0xf0, 0xaf, 0x6b, 0x7d, 0x64, - 0xc8, 0xd9, 0x8f, 0x3b, 0xbd, 0xed, 0xf6, 0x54, 0xac, 0xed, 0x76, 0x57, 0x16, 0x74, 0xc3, 0xfd, - 0x24, 0x64, 0x1b, 0x44, 0xc2, 0x69, 0x26, 0x61, 0xfa, 0xaa, 0xde, 0x0e, 0x99, 0x6d, 0xdd, 0xf6, - 0x26, 0xcf, 0xd7, 0xf7, 0xa7, 0xbb, 0xa2, 0xdb, 0x17, 0x5d, 0x04, 0xdd, 0xbf, 0xe6, 0xc6, 0x20, - 0x4b, 0x04, 0xe7, 0x3f, 0xa0, 0xb7, 0x66, 0xa8, 0x19, 0x52, 0xb4, 0x4c, 0x77, 0xd8, 0xaf, 0x5b, - 0xde, 0x01, 0x99, 0x3f, 0x48, 0x0d, 0xc7, 0x82, 0xbc, 0x8c, 0x0b, 0x38, 0x6b, 0x1a, 0x4f, 0xdf, - 0xc1, 0xf7, 0xe0, 0x3d, 0xb6, 0x24, 0xda, 0xeb, 0x53, 0xd7, 0xa5, 0xd6, 0x99, 0xee, 0x4b, 0xad, - 0x83, 0xe5, 0x83, 0x6c, 0x7f, 0x47, 0x95, 0x3f, 0x1f, 0xc0, 0x74, 0xe9, 0x16, 0x44, 0xf8, 0x0c, - 0xbc, 0x65, 0x98, 0x5c, 0x9d, 0xbd, 0xd7, 0x98, 0x9d, 0x52, 0x5c, 0xa3, 0xa6, 0x0f, 0x7b, 0xc9, - 0xf7, 0x4d, 0xbf, 0x93, 0x81, 0x53, 0xf4, 0xea, 0xf4, 0x5d, 0x5c, 0xb7, 0xc4, 0x3b, 0x5e, 0xd1, - 0x9f, 0x0c, 0x45, 0x69, 0x7a, 0x0c, 0x38, 0x4a, 0xcf, 0x01, 0x67, 0xdf, 0x21, 0xe5, 0x4c, 0x9f, - 0x43, 0xca, 0xd9, 0x78, 0x2b, 0x87, 0x1f, 0xe6, 0xf5, 0x67, 0x55, 0xd4, 0x9f, 0xdb, 0x42, 0x00, - 0xea, 0x25, 0x97, 0xa1, 0xd8, 0x37, 0xef, 0xf0, 0x35, 0xa5, 0x26, 0x68, 0xca, 0x9d, 0x83, 0x33, - 0x92, 0xbc, 0xb6, 0x7c, 0x30, 0x03, 0x97, 0x05, 0xcc, 0x54, 0xf0, 0x25, 0xa6, 0x28, 0x5f, 0x18, - 0x8a, 0xa2, 0xc4, 0x8f, 0x81, 0x90, 0xb4, 0xc6, 0xfc, 0xa9, 0xf4, 0xd9, 0xa1, 0x6e, 0xa0, 0x7c, - 0xd9, 0x84, 0x28, 0xcb, 0x49, 0xc8, 0xd1, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x62, 0x76, 0x37, 0x72, - 0x27, 0x8e, 0x64, 0x79, 0x1b, 0x81, 0xfe, 0xb0, 0x75, 0x8d, 0xfa, 0x8e, 0x6d, 0x96, 0x4d, 0xc7, - 0x42, 0xbf, 0x34, 0x14, 0xc5, 0xf1, 0xbd, 0xe1, 0x94, 0x41, 0xbc, 0xe1, 0x06, 0x5a, 0xe5, 0xf0, - 0x6a, 0x70, 0x28, 0xab, 0x1c, 0x21, 0x85, 0x27, 0x8f, 0xdf, 0xdb, 0x15, 0x38, 0xc9, 0x26, 0x5b, - 0x73, 0xa2, 0x85, 0x88, 0xee, 0x1d, 0x06, 0x90, 0xc7, 0x3d, 0x33, 0x89, 0xdd, 0x2c, 0x48, 0x5e, - 0xc4, 0x93, 0x52, 0x91, 0x77, 0xaa, 0x08, 0xd3, 0xc1, 0x2e, 0x0e, 0x87, 0x82, 0x94, 0xdc, 0x55, - 0x2a, 0x31, 0xd8, 0x48, 0x1e, 0xb3, 0x17, 0x29, 0x90, 0xa3, 0xe7, 0xb4, 0xd0, 0x5a, 0x22, 0x0e, - 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, 0x39, 0xca, 0x4d, 0x62, 0x67, 0xd8, 0xe2, 0xec, 0xc5, 0xf5, - 0x64, 0x65, 0x04, 0x2e, 0x84, 0x69, 0x98, 0xac, 0x61, 0xa7, 0xa8, 0xdb, 0xb6, 0xa1, 0x6f, 0x0e, - 0xcb, 0xe3, 0x5b, 0xd6, 0x7b, 0x18, 0xfd, 0x20, 0x25, 0x7b, 0x9e, 0xc6, 0x5f, 0x08, 0xf7, 0x58, - 0x0d, 0x89, 0x25, 0xf8, 0x90, 0xd4, 0x99, 0x99, 0x7e, 0xd4, 0x46, 0xe0, 0xb1, 0x9d, 0x86, 0x31, - 0xef, 0x2c, 0xde, 0x59, 0xe1, 0x7c, 0xe6, 0x96, 0xb3, 0xed, 0x1d, 0x83, 0x21, 0xcf, 0xfb, 0xcf, - 0x80, 0xa1, 0x57, 0xc6, 0x74, 0x94, 0x8f, 0x3e, 0x48, 0x18, 0xaf, 0x8d, 0xc5, 0x71, 0x87, 0x3f, - 0xac, 0xa3, 0x83, 0x1f, 0x18, 0x63, 0xcb, 0x91, 0xcb, 0xba, 0x83, 0xef, 0x47, 0x5f, 0x54, 0x60, - 0xac, 0x86, 0x1d, 0x77, 0xbc, 0x15, 0x2e, 0x14, 0x1e, 0x54, 0xc3, 0x55, 0x6e, 0xc5, 0x63, 0x82, - 0xad, 0x61, 0xdc, 0x0d, 0x13, 0x6d, 0xdb, 0x6a, 0xe0, 0x4e, 0x87, 0xad, 0x5e, 0xf0, 0x8e, 0x6a, - 0xbd, 0x46, 0x7f, 0xc2, 0xda, 0xec, 0xaa, 0xf7, 0x8f, 0x16, 0xfc, 0x1e, 0xd7, 0x0c, 0xa0, 0x94, - 0x58, 0x05, 0x47, 0x6d, 0x06, 0x44, 0x15, 0x9e, 0x3c, 0xd0, 0x9f, 0x53, 0x60, 0xaa, 0x86, 0x1d, - 0x5f, 0x8a, 0x31, 0x36, 0x39, 0xc2, 0xe1, 0x15, 0xa0, 0x54, 0x0e, 0x06, 0xa5, 0xfc, 0x75, 0x9c, - 0xa2, 0x34, 0x7d, 0x62, 0x23, 0xbc, 0x8e, 0x53, 0x8e, 0x83, 0x11, 0x1c, 0x5f, 0x7b, 0x24, 0x4c, - 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xd5, 0x4c, 0xd0, 0x78, 0xbf, 0x94, 0x50, 0xe3, 0xbd, 0x03, 0xb2, - 0xdb, 0xba, 0x7d, 0xb1, 0x43, 0x1a, 0xee, 0xa4, 0x8c, 0xd9, 0xbe, 0xe2, 0x66, 0xd7, 0xe8, 0x5f, - 0xbd, 0xfd, 0x34, 0xb3, 0xf1, 0xfc, 0x34, 0x1f, 0x4a, 0xc7, 0x1a, 0x09, 0xe9, 0xdc, 0x61, 0x88, - 0x4d, 0x3e, 0xc6, 0xb8, 0x19, 0x51, 0x76, 0xf2, 0xca, 0xf1, 0x02, 0x05, 0xc6, 0xdd, 0x71, 0x9b, - 0xd8, 0xe3, 0xe7, 0x0f, 0xae, 0x0e, 0xbd, 0x0d, 0xfd, 0x98, 0x3d, 0xb0, 0x27, 0x91, 0xe1, 0x99, - 0xf7, 0x31, 0x7a, 0xe0, 0xa8, 0xc2, 0x93, 0xc7, 0xe3, 0x9d, 0x14, 0x0f, 0xd2, 0x1e, 0xd0, 0x1b, - 0x14, 0x50, 0x16, 0xb1, 0x33, 0x6a, 0x2b, 0xf2, 0x6d, 0xd2, 0x21, 0x8e, 0x04, 0x81, 0x11, 0x9e, - 0x67, 0x17, 0xf1, 0x70, 0x1a, 0x90, 0x5c, 0x6c, 0x23, 0x29, 0x06, 0x92, 0x47, 0xed, 0xbd, 0x14, - 0x35, 0xba, 0xb9, 0xf0, 0x8b, 0x43, 0xe8, 0x55, 0x47, 0xbb, 0xf0, 0xe1, 0x09, 0x90, 0xd0, 0x38, - 0xac, 0xf6, 0xd6, 0xab, 0xf0, 0x91, 0x5c, 0x7f, 0x09, 0x6e, 0x63, 0xdf, 0xc2, 0x8d, 0x8b, 0xb8, - 0xc9, 0x5f, 0x27, 0x36, 0x28, 0x74, 0xa7, 0x60, 0xac, 0x41, 0xa9, 0x11, 0xf0, 0xc6, 0x35, 0xef, - 0x35, 0xc6, 0x5d, 0xee, 0x62, 0x47, 0x44, 0x7f, 0x1f, 0xe1, 0x5d, 0xee, 0x12, 0xc5, 0x8f, 0xc0, - 0x6c, 0xa1, 0xb3, 0x8c, 0x72, 0xc3, 0x32, 0xd1, 0x7f, 0x3e, 0x38, 0x2c, 0x57, 0xc1, 0x84, 0xd1, - 0xb0, 0x4c, 0x12, 0x86, 0xc2, 0x3b, 0x04, 0xe4, 0x27, 0x78, 0x5f, 0x4b, 0xdb, 0xd6, 0x7d, 0x06, - 0xdb, 0x35, 0x0f, 0x12, 0x06, 0x35, 0x26, 0x5c, 0xd6, 0x0f, 0xcb, 0x98, 0xe8, 0x51, 0x76, 0xf2, - 0x90, 0x7d, 0x22, 0xf0, 0x6e, 0xa3, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, 0x90, 0xe1, 0x8c, 0xaf, - 0xc5, 0xa1, 0x0c, 0x67, 0x11, 0x0c, 0x8c, 0xe0, 0xc6, 0x8a, 0x00, 0xc7, 0xc4, 0xd7, 0x80, 0x0f, - 0x80, 0xce, 0xf0, 0xcc, 0xc3, 0x01, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0x43, 0x2c, 0x44, 0x26, 0xb3, - 0x78, 0xd0, 0x7f, 0x19, 0x06, 0x38, 0xb7, 0x0d, 0xe2, 0xaf, 0x40, 0xbd, 0x15, 0x62, 0xdc, 0x42, - 0xbf, 0x4f, 0x82, 0x2e, 0x95, 0xa1, 0x20, 0x28, 0x77, 0x0b, 0xbd, 0x4c, 0xf9, 0xc9, 0x03, 0xf8, - 0x7c, 0x05, 0x66, 0x88, 0x8f, 0x40, 0x0b, 0xeb, 0x36, 0xed, 0x28, 0x87, 0xe2, 0x28, 0xff, 0x4e, - 0xe9, 0x00, 0x3f, 0xa2, 0x1c, 0x02, 0x3e, 0x86, 0x02, 0x85, 0x5c, 0x74, 0x1f, 0x49, 0x16, 0x46, - 0xb2, 0x8d, 0x92, 0xf7, 0x59, 0x60, 0x2a, 0x3e, 0x1c, 0x3c, 0x62, 0x7a, 0xe4, 0x8a, 0xc2, 0xf0, - 0x1a, 0xdb, 0x88, 0x3d, 0x72, 0x65, 0x98, 0x48, 0x1e, 0x93, 0x37, 0xdc, 0xcc, 0x16, 0x9c, 0xeb, - 0xfa, 0x85, 0x16, 0x46, 0xaf, 0xce, 0xf8, 0x27, 0xda, 0x3e, 0x37, 0x14, 0x0f, 0xcc, 0x03, 0x04, - 0xc4, 0x57, 0x21, 0x63, 0x5b, 0x97, 0xe8, 0xd2, 0xd6, 0xb4, 0x46, 0x9e, 0xe9, 0xf5, 0x94, 0xad, - 0x9d, 0x6d, 0x93, 0x9e, 0x0c, 0x9d, 0xd6, 0xbc, 0x57, 0xf5, 0x3a, 0x98, 0xbe, 0x64, 0x38, 0x5b, - 0x4b, 0x58, 0x6f, 0x62, 0x5b, 0xb3, 0x2e, 0x11, 0x8f, 0xb9, 0x71, 0x4d, 0x4c, 0x14, 0xfd, 0x57, - 0x24, 0xec, 0x4b, 0x57, 0x28, 0xa3, 0x39, 0xfe, 0x16, 0xc7, 0xf2, 0x0c, 0xe7, 0x2a, 0x79, 0x85, - 0x79, 0x9f, 0x02, 0x13, 0x9a, 0x75, 0x89, 0x29, 0xc9, 0xff, 0x71, 0xb8, 0x3a, 0x12, 0x7b, 0xa2, - 0x47, 0x24, 0xe7, 0xb3, 0x3f, 0xf2, 0x89, 0x5e, 0x64, 0xf1, 0x23, 0x39, 0xb9, 0x34, 0xa5, 0x59, - 0x97, 0x6a, 0xd8, 0xa1, 0x2d, 0x02, 0xad, 0x0f, 0xc9, 0xc9, 0xda, 0xe8, 0x50, 0x82, 0x6c, 0x1e, - 0xee, 0xbf, 0xc7, 0xdd, 0x45, 0xf0, 0x05, 0xe4, 0xb3, 0x38, 0xea, 0x5d, 0x84, 0xbe, 0x1c, 0x8c, - 0x20, 0x46, 0x8a, 0x02, 0x93, 0x9a, 0x75, 0xc9, 0x1d, 0x1a, 0x16, 0x8c, 0x56, 0x6b, 0x38, 0x23, - 0x64, 0x5c, 0xe3, 0xdf, 0x13, 0x83, 0xc7, 0xc5, 0xc8, 0x8d, 0xff, 0x3e, 0x0c, 0x24, 0x0f, 0xc3, - 0x73, 0x68, 0x63, 0xf1, 0x46, 0x68, 0x73, 0x38, 0x38, 0x0c, 0xda, 0x20, 0x7c, 0x36, 0x0e, 0xad, - 0x41, 0x84, 0x71, 0x30, 0x92, 0x9d, 0x93, 0x99, 0x22, 0x19, 0xe6, 0x87, 0xdb, 0x26, 0xde, 0x1d, - 0xcf, 0x35, 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x43, 0x41, 0x23, 0x86, 0x0b, 0xa2, 0x04, 0x0f, 0xc9, - 0xe3, 0xf1, 0x51, 0x05, 0xa6, 0x28, 0x0b, 0x0f, 0x13, 0x2b, 0x60, 0xa0, 0x46, 0xc5, 0xd7, 0xe0, - 0x70, 0x1a, 0x55, 0x04, 0x07, 0x23, 0xb9, 0x15, 0xd4, 0xb5, 0xe3, 0x06, 0x38, 0x3e, 0x1e, 0x86, - 0xe0, 0xc0, 0xc6, 0xd8, 0x10, 0x8f, 0x90, 0x0f, 0x62, 0x8c, 0x1d, 0xd2, 0x31, 0xf2, 0xe7, 0xf8, - 0xad, 0x68, 0x98, 0x18, 0x1c, 0xa0, 0x29, 0x0c, 0x11, 0x86, 0x01, 0x9b, 0xc2, 0x21, 0x21, 0xf1, - 0x75, 0x05, 0x80, 0x32, 0xb0, 0x62, 0xed, 0x92, 0xcb, 0x7c, 0x86, 0xd0, 0x9d, 0x75, 0xbb, 0xd5, - 0x2b, 0x7d, 0xdc, 0xea, 0x63, 0x86, 0x70, 0x89, 0xbb, 0x12, 0xc8, 0x49, 0xd9, 0xad, 0xe4, 0xc8, - 0x57, 0x02, 0xa3, 0xcb, 0x4f, 0x1e, 0xe3, 0xaf, 0x52, 0x6b, 0x2e, 0x38, 0x60, 0xfa, 0xdb, 0x43, - 0x41, 0x99, 0x9b, 0xfd, 0x2b, 0xe2, 0xec, 0xff, 0x00, 0xd8, 0x0e, 0x6a, 0x23, 0xf6, 0x3b, 0x38, - 0x9a, 0xbc, 0x8d, 0x78, 0x78, 0x07, 0x44, 0x7f, 0x31, 0x03, 0x47, 0x59, 0x27, 0xf2, 0xe3, 0x00, - 0x71, 0xcc, 0x73, 0x78, 0x42, 0x27, 0xd9, 0x07, 0xe5, 0x61, 0x2d, 0x48, 0xc5, 0x59, 0xca, 0x94, - 0x60, 0x6f, 0x24, 0xab, 0x1b, 0xb9, 0xd2, 0xfd, 0x6d, 0xdd, 0x6c, 0xca, 0x87, 0xfb, 0xed, 0x03, - 0xbc, 0xb7, 0xd6, 0xa8, 0x88, 0x6b, 0x8d, 0x3d, 0x56, 0x26, 0x63, 0xef, 0x5c, 0x13, 0x91, 0x51, - 0x76, 0x47, 0xbe, 0x73, 0x1d, 0x5e, 0x76, 0xf2, 0x28, 0xbd, 0x5b, 0x81, 0x4c, 0xcd, 0xb2, 0x1d, - 0xf4, 0xdc, 0x38, 0xad, 0x93, 0x4a, 0x3e, 0x00, 0xc9, 0x7b, 0x57, 0x8b, 0xc2, 0x2d, 0xcd, 0x67, - 0xa3, 0x8f, 0x3a, 0xeb, 0x8e, 0x4e, 0xbc, 0xba, 0xdd, 0xf2, 0xb9, 0xeb, 0x9a, 0xe3, 0xc6, 0xd3, - 0xa1, 0xf2, 0xab, 0x85, 0x1f, 0xc0, 0x48, 0x2c, 0x9e, 0x4e, 0x68, 0xc9, 0xc9, 0xe3, 0xf6, 0xe0, - 0x51, 0xe6, 0xdb, 0xba, 0x60, 0xb4, 0x30, 0x7a, 0x2e, 0x75, 0x19, 0xa9, 0xe8, 0xdb, 0x58, 0xfe, - 0x48, 0x4c, 0xa4, 0x6b, 0x2b, 0x89, 0x2f, 0xab, 0x04, 0xf1, 0x65, 0xe3, 0x36, 0x28, 0x7a, 0x00, - 0x9d, 0xb2, 0x34, 0xea, 0x06, 0x15, 0x51, 0xf6, 0x48, 0xe2, 0x74, 0x1e, 0xab, 0x61, 0x87, 0x1a, - 0x95, 0x55, 0xef, 0x06, 0x96, 0xa7, 0x0d, 0x25, 0x62, 0xa7, 0x7f, 0xc1, 0x8b, 0xd2, 0x75, 0xc1, - 0xcb, 0xfb, 0x78, 0x70, 0x56, 0x44, 0x70, 0x7e, 0x36, 0x5c, 0x40, 0x22, 0x93, 0x43, 0x81, 0xe9, - 0x6d, 0x3e, 0x4c, 0xab, 0x02, 0x4c, 0xb7, 0x0f, 0xc8, 0x45, 0xf2, 0x80, 0xfd, 0x5a, 0x16, 0x8e, - 0xd2, 0x49, 0x7f, 0xc1, 0x6c, 0xb2, 0x08, 0xab, 0x6f, 0x4e, 0x1f, 0xf2, 0x66, 0xdb, 0xfe, 0x10, - 0xac, 0x42, 0x2c, 0xe7, 0x6c, 0xf7, 0xed, 0xf8, 0x73, 0x34, 0x9c, 0xab, 0xdb, 0x89, 0x92, 0x9d, - 0x36, 0xf9, 0x1b, 0xf2, 0xfd, 0xff, 0xc4, 0xbb, 0x8c, 0xc6, 0xe4, 0xef, 0x32, 0xfa, 0xb3, 0x78, - 0xeb, 0x76, 0xa4, 0xe8, 0x2e, 0x81, 0x27, 0x6c, 0x3b, 0xc5, 0x58, 0xd1, 0x93, 0xe0, 0xee, 0x27, - 0xc3, 0x9d, 0x2c, 0x88, 0x20, 0x32, 0xa0, 0x3b, 0x19, 0x21, 0x70, 0x98, 0xee, 0x64, 0xfd, 0x18, - 0x18, 0xc1, 0xad, 0xf6, 0x59, 0xb6, 0x9b, 0x4f, 0xda, 0x0d, 0xfa, 0xeb, 0x74, 0xe2, 0xa3, 0xf4, - 0x0f, 0x53, 0xb1, 0xfc, 0x9f, 0x09, 0x5f, 0xd1, 0xc3, 0x74, 0x1c, 0x8f, 0xe6, 0x28, 0x72, 0x23, - 0x58, 0x37, 0x4a, 0x13, 0x5f, 0xf4, 0xf3, 0x46, 0xd3, 0xd9, 0x1a, 0xd2, 0x89, 0x8e, 0x4b, 0x2e, - 0x2d, 0xef, 0x7a, 0x64, 0xf2, 0x82, 0xfe, 0x35, 0x15, 0x2b, 0x84, 0x94, 0x2f, 0x12, 0xc2, 0x56, - 0x88, 0x88, 0x63, 0x04, 0x7e, 0x8a, 0xa4, 0x37, 0x42, 0x8d, 0x3e, 0x67, 0x34, 0xb1, 0xf5, 0x30, - 0xd4, 0x68, 0xc2, 0xd7, 0xf0, 0x34, 0x3a, 0x8a, 0xdc, 0x4f, 0xa8, 0x46, 0xfb, 0x22, 0x19, 0x92, - 0x46, 0x47, 0xd2, 0x4b, 0x5e, 0xc6, 0xaf, 0x9c, 0x62, 0x13, 0xa9, 0x65, 0xc3, 0xbc, 0x88, 0xfe, - 0x39, 0xe7, 0x5d, 0xcc, 0x7c, 0xde, 0x70, 0xb6, 0x58, 0x2c, 0x98, 0x0f, 0x4a, 0xdf, 0x8d, 0x32, - 0x40, 0xbc, 0x17, 0x31, 0x9c, 0x54, 0x76, 0x5f, 0x38, 0xa9, 0x02, 0x4c, 0x1b, 0xa6, 0x83, 0x6d, - 0x53, 0x6f, 0x2d, 0xb4, 0xf4, 0xcd, 0xce, 0xa9, 0xb1, 0x9e, 0x97, 0xd7, 0x95, 0xb9, 0x3c, 0x9a, - 0xf8, 0x07, 0x7f, 0x7d, 0xe5, 0xb8, 0x78, 0x7d, 0x65, 0x48, 0xf4, 0xab, 0x89, 0xf0, 0xe8, 0x57, - 0x7e, 0x74, 0x2b, 0xe8, 0x1f, 0x1c, 0x5b, 0xd6, 0x36, 0x8e, 0x19, 0xee, 0xef, 0xac, 0x64, 0x14, - 0x36, 0x3f, 0xf4, 0xe3, 0x6b, 0x94, 0x58, 0xab, 0x7b, 0xae, 0x22, 0xcc, 0x76, 0x2b, 0x41, 0x6c, - 0x0b, 0x95, 0xaf, 0xbc, 0xd2, 0x55, 0x79, 0xdf, 0xe4, 0xc9, 0x48, 0x98, 0x3c, 0xbc, 0x52, 0x65, - 0xe5, 0x94, 0x2a, 0xce, 0x62, 0xa1, 0x4c, 0x6d, 0x47, 0x70, 0x1a, 0x29, 0x0b, 0xc7, 0xbc, 0x68, - 0xb7, 0xed, 0x36, 0xd6, 0x6d, 0xdd, 0x6c, 0x60, 0xf4, 0x89, 0xf4, 0x30, 0xcc, 0xde, 0x05, 0x18, - 0x37, 0x1a, 0x96, 0x59, 0x33, 0x9e, 0xe1, 0x5d, 0x2e, 0x17, 0x1d, 0x64, 0x9d, 0x48, 0xa4, 0xcc, - 0xfe, 0xd0, 0xfc, 0x7f, 0xd5, 0x32, 0x4c, 0x34, 0x74, 0xbb, 0x49, 0x83, 0xf0, 0x65, 0xbb, 0x2e, - 0x72, 0x0a, 0x25, 0x54, 0xf4, 0x7e, 0xd1, 0x82, 0xbf, 0xd5, 0xaa, 0x28, 0xc4, 0x5c, 0x57, 0x34, - 0x8f, 0x50, 0x62, 0xf3, 0xc1, 0x4f, 0x82, 0xcc, 0x5d, 0xe9, 0xd8, 0xb8, 0x45, 0xee, 0xa0, 0xa7, - 0x3d, 0xc4, 0x84, 0x16, 0x24, 0xc4, 0x5d, 0x1e, 0x20, 0x45, 0xed, 0x43, 0x63, 0xd4, 0xcb, 0x03, - 0x52, 0x5c, 0x24, 0xaf, 0x99, 0xef, 0xc8, 0xc1, 0x34, 0xed, 0xd5, 0x98, 0x38, 0xd1, 0xf3, 0xc9, - 0x15, 0xd2, 0xce, 0x3d, 0x78, 0x0f, 0xd5, 0x0e, 0x3e, 0x26, 0xe7, 0x41, 0xb9, 0xe8, 0x07, 0x1c, - 0x74, 0x1f, 0xe3, 0xee, 0xdb, 0x7b, 0x7c, 0xcd, 0x52, 0x9e, 0x46, 0xbd, 0x6f, 0x1f, 0x5d, 0x7c, - 0xf2, 0xf8, 0xfc, 0xba, 0x02, 0x4a, 0xa1, 0xd9, 0x44, 0x8d, 0x83, 0x43, 0x71, 0x0d, 0x4c, 0x7a, - 0x6d, 0x26, 0x88, 0x01, 0xc9, 0x27, 0xc5, 0x5d, 0x04, 0xf5, 0x65, 0x53, 0x68, 0x8e, 0x7c, 0x57, - 0x21, 0xa2, 0xec, 0xe4, 0x41, 0xf9, 0xed, 0x31, 0xd6, 0x68, 0xe6, 0x2c, 0xeb, 0x22, 0x39, 0x2a, - 0xf3, 0x5c, 0x05, 0xb2, 0x0b, 0xd8, 0x69, 0x6c, 0x0d, 0xa9, 0xcd, 0xec, 0xd8, 0x2d, 0xaf, 0xcd, - 0xec, 0xbb, 0x0f, 0xbf, 0xbf, 0x0d, 0xeb, 0xb1, 0x35, 0x4b, 0x58, 0x1a, 0x75, 0x74, 0xe7, 0xc8, - 0xd2, 0x93, 0x07, 0xe7, 0x5f, 0x15, 0x98, 0xf1, 0x57, 0xb8, 0x28, 0x26, 0xbf, 0x96, 0x7a, 0xb8, - 0xad, 0x77, 0xa2, 0x2f, 0xc4, 0x0b, 0x91, 0xe6, 0xcb, 0x54, 0xac, 0x59, 0xc2, 0x0b, 0x8b, 0x31, - 0x82, 0xa7, 0xc9, 0x31, 0x38, 0x82, 0x19, 0xbc, 0x02, 0xe3, 0x84, 0xa1, 0x79, 0x63, 0x97, 0xb8, - 0x0e, 0x0a, 0x0b, 0x8d, 0xcf, 0x1c, 0xca, 0x42, 0xe3, 0xed, 0xe2, 0x42, 0xa3, 0x64, 0xc4, 0x63, - 0x6f, 0x9d, 0x31, 0xa6, 0x2f, 0x8d, 0xfb, 0xff, 0xd0, 0x97, 0x19, 0x63, 0xf8, 0xd2, 0xf4, 0x29, - 0x3f, 0x79, 0x44, 0x5f, 0xf3, 0x9f, 0x58, 0x67, 0xeb, 0x6d, 0xa8, 0xa2, 0xff, 0xeb, 0x18, 0x64, - 0xce, 0xb9, 0x0f, 0xff, 0x33, 0xb8, 0x11, 0xeb, 0xa5, 0x43, 0x08, 0xce, 0xf0, 0x64, 0xc8, 0xb8, - 0xf4, 0xd9, 0xb4, 0xe5, 0x46, 0xb9, 0xdd, 0x5d, 0x97, 0x11, 0x8d, 0xfc, 0xa7, 0x9e, 0x84, 0x5c, - 0xc7, 0xda, 0xb1, 0x1b, 0xae, 0xf9, 0xec, 0x6a, 0x0c, 0x7b, 0x8b, 0x1b, 0x94, 0x54, 0x20, 0x3d, - 0x3b, 0x3c, 0x97, 0x51, 0xee, 0x82, 0x24, 0x45, 0xb8, 0x20, 0x29, 0xc6, 0xfe, 0x81, 0x04, 0x6f, - 0xc9, 0x6b, 0xc4, 0x5f, 0x93, 0xbb, 0x02, 0x9b, 0xc3, 0x82, 0x3d, 0x44, 0x2c, 0x07, 0x55, 0x87, - 0xb8, 0x0e, 0xdf, 0xa2, 0x68, 0xfd, 0x38, 0xf0, 0x23, 0x75, 0xf8, 0x96, 0xe0, 0x61, 0x24, 0xa7, - 0xd4, 0x73, 0xcc, 0x49, 0xf5, 0xde, 0x61, 0xa2, 0x9b, 0x11, 0x94, 0xfe, 0x40, 0xe8, 0x0c, 0xd1, - 0x79, 0x75, 0x60, 0x74, 0x0e, 0xc9, 0x7d, 0xf5, 0x0f, 0x15, 0x12, 0x09, 0xd3, 0x33, 0x72, 0xe4, - 0x2f, 0x3a, 0x8a, 0x0d, 0x91, 0x3b, 0x06, 0x0b, 0x71, 0xa0, 0xa7, 0x07, 0x0f, 0x0d, 0x2e, 0x8a, - 0x8e, 0xe3, 0x7f, 0xd4, 0xa1, 0xc1, 0x65, 0x19, 0x49, 0x1e, 0xc8, 0xd7, 0xd3, 0x8b, 0xc5, 0x0a, - 0x0d, 0xc7, 0xd8, 0x1d, 0x72, 0x4b, 0x13, 0x87, 0x97, 0x98, 0xd1, 0x80, 0xf7, 0x49, 0x88, 0x72, - 0x38, 0xea, 0x68, 0xc0, 0x72, 0x6c, 0x24, 0x0f, 0xd3, 0xdf, 0xe5, 0x5c, 0xe9, 0xb1, 0xb5, 0x99, - 0x37, 0xb0, 0xd5, 0x00, 0x7c, 0x70, 0xb4, 0xce, 0xc0, 0x14, 0x37, 0xf5, 0xf7, 0x2e, 0xac, 0x11, - 0xd2, 0xe2, 0x1e, 0x74, 0xf7, 0x45, 0x36, 0xf4, 0x85, 0x81, 0x18, 0x0b, 0xbe, 0x32, 0x4c, 0x8c, - 0xe4, 0x3e, 0x38, 0x6f, 0x0c, 0x1b, 0x11, 0x56, 0x1f, 0xe4, 0xb1, 0xaa, 0x8a, 0x58, 0xdd, 0x2a, - 0x23, 0x26, 0xb9, 0x31, 0x4d, 0x6a, 0xde, 0xf8, 0x76, 0x1f, 0x2e, 0x4d, 0x80, 0xeb, 0xc9, 0x03, - 0xf3, 0x91, 0x3c, 0x62, 0x2f, 0xa3, 0xdd, 0x61, 0x8d, 0x9a, 0xec, 0xc3, 0xe9, 0x0e, 0xd9, 0x6c, - 0x40, 0x11, 0x66, 0x03, 0x31, 0xfd, 0xed, 0x03, 0x37, 0x52, 0x8f, 0xb9, 0x7e, 0x10, 0x65, 0x86, - 0xec, 0x6f, 0xdf, 0x97, 0x83, 0xe4, 0xc1, 0xf9, 0x9e, 0x02, 0xb0, 0x68, 0x5b, 0x3b, 0xed, 0xaa, - 0xdd, 0xc4, 0x36, 0xfa, 0xdb, 0x60, 0x02, 0xf0, 0xe2, 0x21, 0x4c, 0x00, 0x56, 0x01, 0x36, 0x7d, - 0xe2, 0x4c, 0xc3, 0x6f, 0x96, 0x33, 0xf7, 0x03, 0xa6, 0x34, 0x8e, 0x86, 0x78, 0xe5, 0xec, 0x53, - 0x44, 0x8c, 0xa3, 0xfa, 0xac, 0x80, 0xdc, 0x30, 0x27, 0x00, 0xef, 0xf4, 0xb1, 0xae, 0x0b, 0x58, - 0xdf, 0x75, 0x00, 0x4e, 0x92, 0xc7, 0xfc, 0x9f, 0xc6, 0x60, 0x92, 0x6e, 0xd7, 0x51, 0x99, 0xfe, - 0x43, 0x00, 0xfa, 0x6f, 0x0f, 0x01, 0xf4, 0x35, 0x98, 0xb2, 0x02, 0xea, 0xb4, 0x4f, 0xe5, 0x17, - 0x60, 0x22, 0x61, 0xe7, 0xf8, 0xd2, 0x04, 0x32, 0xe8, 0x63, 0x3c, 0xf2, 0x9a, 0x88, 0xfc, 0xed, - 0x11, 0xf2, 0xe6, 0x28, 0x0e, 0x13, 0xfa, 0x77, 0xf9, 0xd0, 0xaf, 0x09, 0xd0, 0x17, 0x0e, 0xc2, - 0xca, 0x08, 0xc2, 0xed, 0x2b, 0x90, 0x21, 0xa7, 0xe3, 0x7e, 0x27, 0xc1, 0xf9, 0xfd, 0x29, 0x18, - 0x23, 0x4d, 0xd6, 0x9f, 0x77, 0x78, 0xaf, 0xee, 0x17, 0x7d, 0xc3, 0xc1, 0xb6, 0xef, 0xb1, 0xe0, - 0xbd, 0xba, 0x3c, 0x78, 0x5e, 0xc9, 0x9d, 0x53, 0x39, 0xba, 0x11, 0xe9, 0x27, 0x0c, 0x3c, 0x29, - 0xe1, 0x25, 0x3e, 0xb4, 0xf3, 0x72, 0x83, 0x4c, 0x4a, 0xfa, 0x30, 0x92, 0x3c, 0xf0, 0x5f, 0xce, - 0xc0, 0x29, 0xba, 0xaa, 0xb4, 0x60, 0x5b, 0xdb, 0x5d, 0xb7, 0x5b, 0x19, 0x07, 0xd7, 0x85, 0xeb, - 0x61, 0xc6, 0x11, 0xfc, 0xb1, 0x99, 0x4e, 0x74, 0xa5, 0xa2, 0x3f, 0xe7, 0x7d, 0x2a, 0x9e, 0x2a, - 0x22, 0x39, 0x17, 0x21, 0xc0, 0x30, 0xde, 0x63, 0x2f, 0xd4, 0x4b, 0x32, 0xca, 0x2d, 0x52, 0x29, - 0x03, 0xad, 0x59, 0xfa, 0x3a, 0x95, 0x95, 0xd1, 0xa9, 0xf7, 0xfb, 0x3a, 0xf5, 0xf3, 0x82, 0x4e, - 0x2d, 0x1e, 0x5c, 0x24, 0xc9, 0xeb, 0xd6, 0xab, 0xfd, 0x8d, 0x21, 0x7f, 0xdb, 0x6e, 0x3b, 0x81, - 0xcd, 0x3a, 0xde, 0x1f, 0x29, 0x23, 0xf8, 0x23, 0x89, 0xf7, 0x51, 0xc4, 0x98, 0x09, 0x8b, 0x5c, - 0x87, 0xe8, 0xd2, 0x0c, 0xa4, 0x0d, 0x8f, 0xbb, 0xb4, 0xd1, 0x1c, 0x68, 0xae, 0x1b, 0x59, 0xd0, - 0x08, 0xd6, 0x96, 0x66, 0x20, 0xb7, 0x60, 0xb4, 0x1c, 0x6c, 0xa3, 0xaf, 0xb2, 0x99, 0xee, 0xab, - 0x13, 0x1c, 0x00, 0xe6, 0x21, 0xb7, 0x41, 0x4a, 0x63, 0x26, 0xf3, 0x4d, 0x72, 0xad, 0x87, 0x72, - 0xa8, 0xb1, 0x7f, 0xe3, 0x46, 0xe7, 0xeb, 0x22, 0x33, 0xb4, 0x29, 0x72, 0x8c, 0xe8, 0x7c, 0xfd, - 0x59, 0x18, 0xc9, 0xc5, 0x54, 0x39, 0x0d, 0x6f, 0xbb, 0x63, 0xfc, 0xc5, 0xe4, 0x10, 0xce, 0x83, - 0x62, 0x34, 0x3b, 0xa4, 0x73, 0x9c, 0xd0, 0xdc, 0xc7, 0xb8, 0xbe, 0x42, 0xdd, 0xa2, 0xa2, 0x2c, - 0x8f, 0xda, 0x57, 0x48, 0x8a, 0x8b, 0xe4, 0x31, 0xfb, 0x21, 0x71, 0x14, 0x6d, 0xb7, 0xf4, 0x06, - 0x76, 0xb9, 0x4f, 0x0c, 0x35, 0xda, 0x93, 0x65, 0xbc, 0x9e, 0x8c, 0x6b, 0xa7, 0xd9, 0x03, 0xb4, - 0xd3, 0x41, 0x97, 0x21, 0x7d, 0x99, 0x93, 0x8a, 0x1f, 0xda, 0x32, 0x64, 0x24, 0x1b, 0x23, 0xb8, - 0x76, 0xd4, 0x3b, 0x48, 0x3b, 0xd2, 0xd6, 0x3a, 0xe8, 0x26, 0x0d, 0x13, 0xd6, 0xd0, 0x0e, 0xcd, - 0x0e, 0xb2, 0x49, 0x13, 0xce, 0xc3, 0x08, 0xd0, 0x9a, 0x61, 0x68, 0x7d, 0x9e, 0x0d, 0xa3, 0x09, - 0xef, 0x93, 0x76, 0x2c, 0xdb, 0x89, 0xb7, 0x4f, 0xea, 0x72, 0xa7, 0x91, 0xff, 0xe2, 0x1e, 0xbc, - 0x12, 0xcf, 0x55, 0x0f, 0x6b, 0xf8, 0x8c, 0x71, 0xf0, 0xaa, 0x1f, 0x03, 0xc9, 0xc3, 0xfb, 0x96, - 0x43, 0x1a, 0x3c, 0x07, 0x6d, 0x8e, 0xac, 0x0d, 0x0c, 0x6d, 0xe8, 0x1c, 0xa4, 0x39, 0x86, 0xf3, - 0x90, 0x3c, 0x5e, 0xdf, 0xe5, 0x06, 0xce, 0x37, 0x8d, 0x70, 0xe0, 0xf4, 0x5a, 0x66, 0x76, 0xc0, - 0x96, 0x39, 0xe8, 0xfe, 0x0f, 0x93, 0xf5, 0xf0, 0x06, 0xcc, 0x41, 0xf6, 0x7f, 0x22, 0x98, 0x48, - 0x1e, 0xf1, 0x37, 0x2b, 0x90, 0xad, 0x8d, 0x7e, 0xbc, 0x1c, 0x74, 0x2e, 0x42, 0x64, 0x55, 0x1b, - 0xda, 0x70, 0x39, 0xc8, 0x5c, 0x24, 0x94, 0x85, 0x11, 0x04, 0xde, 0x3f, 0x0a, 0x53, 0x64, 0x49, - 0xc4, 0xdb, 0x66, 0xfd, 0x2e, 0x1b, 0x35, 0x1f, 0x4a, 0xb0, 0xad, 0xde, 0x0d, 0xe3, 0xde, 0xfe, - 0x1d, 0x1b, 0x39, 0x67, 0xe5, 0xda, 0xa7, 0xc7, 0xa5, 0xe6, 0xff, 0x7f, 0x20, 0x67, 0x88, 0xa1, - 0xef, 0xd5, 0x0e, 0xea, 0x0c, 0x71, 0xa8, 0xfb, 0xb5, 0x7f, 0x16, 0x8c, 0xa8, 0xff, 0x39, 0x39, - 0xcc, 0xbb, 0xf7, 0x71, 0x33, 0x3d, 0xf6, 0x71, 0x3f, 0xc1, 0x63, 0x59, 0x13, 0xb1, 0xbc, 0x43, - 0x56, 0x84, 0x43, 0x1c, 0x6b, 0xdf, 0xed, 0xc3, 0x79, 0x4e, 0x80, 0x73, 0xee, 0x40, 0xbc, 0x8c, - 0xe0, 0xe0, 0x63, 0x26, 0x18, 0x73, 0x3f, 0x99, 0x60, 0x3b, 0xee, 0x3a, 0x55, 0x91, 0xd9, 0x77, - 0xaa, 0x42, 0x68, 0xe9, 0xd9, 0x03, 0xb6, 0xf4, 0x4f, 0xf2, 0xda, 0x51, 0x17, 0xb5, 0xe3, 0xc9, - 0xf2, 0x88, 0x0c, 0x6f, 0x64, 0x7e, 0x8f, 0xaf, 0x1e, 0xe7, 0x05, 0xf5, 0x28, 0x1e, 0x8c, 0x99, - 0xe4, 0xf5, 0xe3, 0x8f, 0xbc, 0x09, 0xed, 0x21, 0xb7, 0xf7, 0x41, 0xb7, 0x8a, 0x05, 0x21, 0x0e, - 0x6d, 0xe4, 0x1e, 0x64, 0xab, 0xb8, 0x1f, 0x27, 0x23, 0x88, 0xc5, 0x36, 0x0d, 0x93, 0x84, 0xa7, - 0xf3, 0x46, 0x73, 0x13, 0x3b, 0xe8, 0x35, 0xd4, 0x47, 0xd1, 0x8b, 0x7c, 0x39, 0xa4, 0xf0, 0x44, - 0x61, 0xe7, 0x5d, 0xe3, 0x7a, 0x74, 0x50, 0x26, 0x67, 0x39, 0x06, 0x47, 0x1d, 0x41, 0xb1, 0x2f, - 0x07, 0xc9, 0x43, 0xf6, 0x31, 0xea, 0x6e, 0xb3, 0xac, 0xef, 0x59, 0x3b, 0x0e, 0x7a, 0x60, 0x08, - 0x1d, 0xf4, 0x1c, 0xe4, 0x5a, 0x84, 0x1a, 0x3b, 0x96, 0x11, 0x3d, 0xdd, 0x61, 0x22, 0xa0, 0xe5, - 0x6b, 0xec, 0xcf, 0xb8, 0x67, 0x33, 0x02, 0x39, 0x52, 0x3a, 0xa3, 0x3e, 0x9b, 0xd1, 0xa7, 0xfc, - 0x91, 0xdc, 0xb1, 0x33, 0xee, 0x96, 0x6e, 0x6c, 0x1b, 0xce, 0x90, 0x22, 0x38, 0xb4, 0x5c, 0x5a, - 0x5e, 0x04, 0x07, 0xf2, 0x12, 0xf7, 0xc4, 0x28, 0x27, 0x15, 0xf7, 0xf7, 0x51, 0x9f, 0x18, 0x8d, - 0x2e, 0x3e, 0x79, 0x4c, 0x7e, 0x93, 0xb6, 0xac, 0x73, 0xd4, 0xf9, 0x36, 0x41, 0xbf, 0xde, 0x81, - 0x1b, 0x0b, 0x65, 0xed, 0xf0, 0x1a, 0x4b, 0xcf, 0xf2, 0x93, 0x07, 0xe6, 0xbf, 0xfd, 0x34, 0x64, - 0xe7, 0xf1, 0x85, 0x9d, 0x4d, 0x74, 0x3b, 0x8c, 0xd7, 0x6d, 0x8c, 0xcb, 0xe6, 0x86, 0xe5, 0x4a, - 0xd7, 0x71, 0x9f, 0x3d, 0x48, 0xd8, 0x9b, 0x8b, 0xc7, 0x16, 0xd6, 0x9b, 0xc1, 0xf9, 0x33, 0xef, - 0x15, 0xbd, 0x34, 0x0d, 0x99, 0x9a, 0xa3, 0x3b, 0x68, 0xc2, 0xc7, 0x16, 0x3d, 0xc0, 0x63, 0x71, - 0xbb, 0x88, 0xc5, 0xf5, 0x82, 0x2c, 0x08, 0x07, 0xb3, 0xee, 0xff, 0x21, 0x00, 0x20, 0x18, 0xbf, - 0xaf, 0x63, 0x99, 0x6e, 0x0e, 0xef, 0x08, 0xa4, 0xf7, 0x8e, 0x5e, 0xe5, 0x8b, 0xfb, 0x4e, 0x41, - 0xdc, 0x8f, 0x96, 0x2b, 0x62, 0x04, 0x2b, 0x6d, 0x69, 0x98, 0x70, 0x45, 0xbb, 0x84, 0xf5, 0x66, - 0x07, 0xfd, 0x54, 0xa0, 0xfc, 0x21, 0x62, 0x46, 0x1f, 0x92, 0x0e, 0xc6, 0x49, 0x6b, 0xe5, 0x13, - 0x0f, 0xf7, 0xe8, 0xf0, 0x36, 0xff, 0xd3, 0x62, 0x30, 0x92, 0xb3, 0x90, 0x31, 0xcc, 0x0d, 0x8b, - 0xf9, 0x17, 0x5e, 0x19, 0x42, 0xdb, 0xd5, 0x09, 0x8d, 0x64, 0x94, 0x8c, 0xd4, 0x19, 0xcd, 0xd6, - 0x48, 0x2e, 0xbd, 0xcb, 0xb8, 0xa5, 0xa3, 0xff, 0xbd, 0xaf, 0xb0, 0x55, 0x15, 0x32, 0x6d, 0xdd, - 0xd9, 0x62, 0x45, 0x93, 0x67, 0xd7, 0x46, 0xde, 0x31, 0x75, 0xd3, 0x32, 0xf7, 0xb6, 0x8d, 0x67, - 0xf8, 0x77, 0xeb, 0x0a, 0x69, 0x2e, 0xe7, 0x9b, 0xd8, 0xc4, 0xb6, 0xee, 0xe0, 0xda, 0xee, 0x26, - 0x99, 0x63, 0x8d, 0x6b, 0x7c, 0x52, 0x6c, 0xfd, 0x77, 0x39, 0x0e, 0xd7, 0xff, 0x0d, 0xa3, 0x85, - 0x49, 0xa4, 0x26, 0xa6, 0xff, 0xde, 0x7b, 0x2c, 0xfd, 0xef, 0x51, 0x44, 0xf2, 0x68, 0xfc, 0x5b, - 0x1a, 0xa6, 0x6a, 0xae, 0xc2, 0xd5, 0x76, 0xb6, 0xb7, 0x75, 0x7b, 0x0f, 0x5d, 0x1b, 0xa0, 0xc2, - 0xa9, 0x66, 0x4a, 0xf4, 0x4b, 0xf9, 0x43, 0xe9, 0x6b, 0xa5, 0x59, 0xd3, 0xe6, 0x4a, 0x88, 0xdd, - 0x0e, 0x1e, 0x0b, 0x59, 0x57, 0xbd, 0x3d, 0x8f, 0xcb, 0xc8, 0x86, 0x40, 0x73, 0x4a, 0x46, 0xb4, - 0xea, 0xcb, 0xdb, 0x08, 0xa2, 0x69, 0xa4, 0xe1, 0x68, 0xcd, 0xd1, 0x1b, 0x17, 0x17, 0x2d, 0xdb, - 0xda, 0x71, 0x0c, 0x13, 0x77, 0xd0, 0x23, 0x02, 0x04, 0x3c, 0xfd, 0x4f, 0x05, 0xfa, 0x8f, 0xfe, - 0x3d, 0x25, 0x3b, 0x8a, 0xfa, 0xdd, 0x2a, 0x4f, 0x3e, 0x24, 0x40, 0x95, 0xdc, 0xb8, 0x28, 0x43, - 0x31, 0x79, 0xa1, 0xbd, 0x49, 0x81, 0x7c, 0xe9, 0xfe, 0xb6, 0x65, 0x3b, 0xcb, 0x56, 0x43, 0x6f, - 0x75, 0x1c, 0xcb, 0xc6, 0xa8, 0x1a, 0x29, 0x35, 0xb7, 0x87, 0x69, 0x5a, 0x8d, 0x60, 0x70, 0x64, - 0x6f, 0xbc, 0xda, 0x29, 0xa2, 0x8e, 0x7f, 0x4c, 0x7a, 0x97, 0x91, 0x4a, 0xa5, 0x9b, 0xa3, 0x10, - 0x3d, 0xef, 0xd5, 0xa5, 0xc5, 0x3b, 0x2c, 0x21, 0xb7, 0xf3, 0x28, 0xc5, 0xd4, 0x08, 0x96, 0xca, - 0xd3, 0x30, 0x5d, 0xdb, 0xb9, 0xe0, 0x13, 0xe9, 0xf0, 0x46, 0xc8, 0x6b, 0xa5, 0xa3, 0x54, 0x30, - 0xc5, 0xe3, 0x09, 0x85, 0xc8, 0xf7, 0x3a, 0x98, 0xee, 0xf0, 0xd9, 0x18, 0xde, 0x62, 0xa2, 0x64, - 0x74, 0x8a, 0xfe, 0xa5, 0x26, 0x2f, 0xc0, 0xf7, 0xa4, 0x61, 0xba, 0xda, 0xc6, 0x26, 0x6e, 0x52, - 0x2f, 0x48, 0x41, 0x80, 0x2f, 0x8d, 0x29, 0x40, 0x81, 0x50, 0x88, 0x00, 0x03, 0x8f, 0xe5, 0x79, - 0x4f, 0x78, 0x41, 0x42, 0x2c, 0xc1, 0x45, 0x95, 0x96, 0xbc, 0xe0, 0xbe, 0x92, 0x86, 0x49, 0x6d, - 0xc7, 0x5c, 0xb5, 0x2d, 0x77, 0x34, 0xb6, 0xd1, 0x1d, 0x41, 0x07, 0x71, 0x13, 0x1c, 0x6b, 0xee, - 0xd8, 0x64, 0xfd, 0xa9, 0x6c, 0xd6, 0x70, 0xc3, 0x32, 0x9b, 0x1d, 0x52, 0x8f, 0xac, 0xb6, 0xff, - 0xc3, 0x6d, 0x99, 0xe7, 0x7e, 0x4b, 0x49, 0xa1, 0xe7, 0x4b, 0x87, 0xba, 0xa1, 0x95, 0xe7, 0x8a, - 0x96, 0xef, 0x09, 0x24, 0x03, 0xda, 0xf4, 0x2b, 0x21, 0x79, 0xe1, 0x7e, 0x3e, 0x0d, 0x6a, 0xa1, - 0xd1, 0xb0, 0x76, 0x4c, 0xa7, 0x86, 0x5b, 0xb8, 0xe1, 0xd4, 0x6d, 0xbd, 0x81, 0x79, 0xfb, 0x39, - 0x0f, 0x4a, 0xd3, 0xb0, 0x59, 0x1f, 0xec, 0x3e, 0x32, 0x39, 0xbe, 0x54, 0x7a, 0xc7, 0x91, 0xd6, - 0x72, 0x7f, 0x29, 0x31, 0xc4, 0x29, 0xb7, 0xaf, 0x28, 0x59, 0x50, 0xf2, 0x52, 0xfd, 0x64, 0x1a, - 0x26, 0xbc, 0x1e, 0x7b, 0x53, 0x46, 0x98, 0xbf, 0x19, 0x73, 0x32, 0xe2, 0x13, 0x8f, 0x21, 0xc3, - 0x77, 0xc4, 0x98, 0x55, 0x84, 0xd1, 0x8f, 0x27, 0xba, 0x42, 0x7c, 0xd1, 0xb9, 0xaf, 0x95, 0xea, - 0xfa, 0x42, 0x75, 0x79, 0xbe, 0xa4, 0xe5, 0x15, 0xf4, 0xd5, 0x34, 0x64, 0x56, 0x0d, 0x73, 0x93, - 0x8f, 0xae, 0x74, 0xdc, 0xb5, 0x23, 0x9b, 0xf8, 0x7e, 0xd6, 0xd2, 0xe9, 0x8b, 0x7a, 0x0b, 0x1c, - 0x37, 0x77, 0xb6, 0x2f, 0x60, 0xbb, 0xba, 0x41, 0x46, 0xd9, 0x4e, 0xdd, 0xaa, 0x61, 0x93, 0x1a, - 0xa1, 0x59, 0xad, 0xe7, 0x37, 0xd1, 0x04, 0x93, 0x98, 0x3c, 0xb8, 0x9c, 0x84, 0x48, 0xdc, 0x67, - 0x2a, 0xcd, 0x31, 0x15, 0x6b, 0xda, 0xd0, 0x83, 0x78, 0xf2, 0x9a, 0xfa, 0xc7, 0x59, 0x38, 0x51, - 0x30, 0xf7, 0x88, 0x4d, 0x41, 0x3b, 0xf8, 0xe2, 0x96, 0x6e, 0x6e, 0x62, 0x32, 0x40, 0xf8, 0x12, - 0xe7, 0x43, 0xf4, 0xa7, 0xc4, 0x10, 0xfd, 0xaa, 0x06, 0x63, 0x96, 0xdd, 0xc4, 0xf6, 0xdc, 0x1e, - 0xe1, 0xa9, 0x7b, 0xd9, 0x99, 0xb5, 0xc9, 0x5e, 0x45, 0xcc, 0x32, 0xf2, 0xb3, 0x55, 0xfa, 0xbf, - 0xe6, 0x11, 0x3a, 0x73, 0x13, 0x8c, 0xb1, 0x34, 0x75, 0x0a, 0xc6, 0xab, 0xda, 0x7c, 0x49, 0x5b, - 0x2f, 0xcf, 0xe7, 0x8f, 0xa8, 0x97, 0xc1, 0xd1, 0x72, 0xbd, 0xa4, 0x15, 0xea, 0xe5, 0x6a, 0x65, - 0x9d, 0xa4, 0xe7, 0x53, 0xe8, 0x39, 0x19, 0x59, 0xcf, 0xde, 0x68, 0x66, 0x7a, 0xc1, 0xaa, 0xc1, - 0x58, 0x83, 0x66, 0x20, 0x43, 0xe8, 0x64, 0xac, 0xda, 0x31, 0x82, 0x34, 0x41, 0xf3, 0x08, 0xa9, - 0xa7, 0x01, 0x2e, 0xd9, 0x96, 0xb9, 0x19, 0x9c, 0x3a, 0x1c, 0xd7, 0xb8, 0x14, 0xf4, 0x40, 0x0a, - 0x72, 0xf4, 0x1f, 0x72, 0x25, 0x09, 0x79, 0x0a, 0x04, 0xef, 0xbd, 0xbb, 0x16, 0x2f, 0x91, 0x57, - 0x30, 0xd1, 0x62, 0xaf, 0xae, 0x2e, 0x52, 0x19, 0x50, 0x4b, 0x98, 0x55, 0xe5, 0x2c, 0xe4, 0xe8, - 0xbf, 0xcc, 0xeb, 0x20, 0x3c, 0xbc, 0x28, 0xcd, 0x26, 0xe9, 0xa7, 0x2c, 0x2f, 0xd3, 0xe4, 0xb5, - 0xf9, 0xc3, 0x69, 0x18, 0xaf, 0x60, 0xa7, 0xb8, 0x85, 0x1b, 0x17, 0xd1, 0xa3, 0xc4, 0x05, 0xd0, - 0x96, 0x81, 0x4d, 0xe7, 0xde, 0xed, 0x96, 0xbf, 0x00, 0xea, 0x25, 0xa0, 0xe7, 0xf1, 0x9d, 0xef, - 0x5d, 0xa2, 0xfe, 0xdc, 0xd8, 0xa3, 0xae, 0x5e, 0x09, 0x21, 0x2a, 0x73, 0x12, 0x72, 0x36, 0xee, - 0xec, 0xb4, 0xbc, 0x45, 0x34, 0xf6, 0x86, 0x1e, 0xf4, 0xc5, 0x59, 0x14, 0xc4, 0x79, 0x56, 0xbe, - 0x88, 0x11, 0xc4, 0x2b, 0xcd, 0xc0, 0x58, 0xd9, 0x34, 0x1c, 0x43, 0x6f, 0xa1, 0xe7, 0x67, 0x60, - 0xba, 0x86, 0x9d, 0x55, 0xdd, 0xd6, 0xb7, 0xb1, 0x83, 0xed, 0x0e, 0xfa, 0x81, 0xd8, 0x27, 0xb4, - 0x5b, 0xba, 0xb3, 0x61, 0xd9, 0xdb, 0x9e, 0x6a, 0x7a, 0xef, 0xae, 0x6a, 0xee, 0x62, 0xbb, 0x13, - 0xf0, 0xe5, 0xbd, 0xba, 0x5f, 0x2e, 0x59, 0xf6, 0x45, 0x77, 0x10, 0x64, 0xd3, 0x34, 0xf6, 0xea, - 0xd2, 0x6b, 0x59, 0x9b, 0xcb, 0x78, 0x17, 0x7b, 0xe1, 0xd2, 0xfc, 0x77, 0x77, 0x2e, 0xd0, 0xb4, - 0x2a, 0x96, 0xe3, 0x76, 0xda, 0xcb, 0xd6, 0x26, 0x8d, 0x17, 0x3b, 0xae, 0x89, 0x89, 0x41, 0x2e, - 0x7d, 0x17, 0x93, 0x5c, 0x39, 0x3e, 0x17, 0x4b, 0x54, 0x67, 0x41, 0xf5, 0x7f, 0xab, 0xe3, 0x16, - 0xde, 0xc6, 0x8e, 0xbd, 0x47, 0xae, 0x85, 0x18, 0xd7, 0x7a, 0x7c, 0x61, 0x03, 0xb4, 0xfc, 0x64, - 0x9d, 0x49, 0x6f, 0x56, 0x90, 0xdc, 0x81, 0x26, 0xeb, 0x32, 0x14, 0x47, 0x72, 0xed, 0x95, 0xe2, - 0x5a, 0x33, 0x2f, 0x57, 0x20, 0x43, 0x06, 0xcf, 0x37, 0xa7, 0x84, 0x15, 0xa6, 0x6d, 0xdc, 0xe9, - 0xe8, 0x9b, 0xd8, 0x5b, 0x61, 0x62, 0xaf, 0xea, 0xad, 0x90, 0x6d, 0x11, 0x4c, 0xe9, 0xe0, 0x70, - 0xad, 0x50, 0x33, 0xd7, 0xc0, 0x70, 0x69, 0xf9, 0x23, 0x01, 0x81, 0x5b, 0xa3, 0x7f, 0x9c, 0xb9, - 0x1b, 0xb2, 0x14, 0xfe, 0x09, 0xc8, 0xce, 0x97, 0xe6, 0xd6, 0x16, 0xf3, 0x47, 0xdc, 0x47, 0x8f, - 0xbf, 0x09, 0xc8, 0x2e, 0x14, 0xea, 0x85, 0xe5, 0x7c, 0xda, 0xad, 0x47, 0xb9, 0xb2, 0x50, 0xcd, - 0x2b, 0x6e, 0xe2, 0x6a, 0xa1, 0x52, 0x2e, 0xe6, 0x33, 0xea, 0x24, 0x8c, 0x9d, 0x2f, 0x68, 0x95, - 0x72, 0x65, 0x31, 0x9f, 0x45, 0x7f, 0xc7, 0xe3, 0x77, 0x9b, 0x88, 0xdf, 0x75, 0x61, 0x3c, 0xf5, - 0x82, 0xec, 0x15, 0x3e, 0x64, 0x77, 0x08, 0x90, 0xfd, 0xb4, 0x0c, 0x91, 0x11, 0xb8, 0x33, 0xe5, - 0x60, 0x6c, 0xd5, 0xb6, 0x1a, 0xb8, 0xd3, 0x41, 0xbf, 0x95, 0x86, 0x5c, 0x51, 0x37, 0x1b, 0xb8, - 0x85, 0xae, 0x08, 0xa0, 0xa2, 0xae, 0xa2, 0x29, 0xff, 0xb4, 0xd8, 0xf7, 0x52, 0xb2, 0xbd, 0x1f, - 0xa3, 0x3b, 0x4b, 0x69, 0x86, 0xc8, 0x47, 0xae, 0x97, 0x8b, 0x24, 0x35, 0x82, 0xab, 0x71, 0xd2, - 0x30, 0xc1, 0x56, 0x03, 0x2e, 0x60, 0x7e, 0x1e, 0xfe, 0x83, 0x94, 0xec, 0xe4, 0xd0, 0xab, 0x81, - 0x4f, 0x26, 0x44, 0x1e, 0x72, 0x13, 0xc1, 0x7e, 0xd4, 0x46, 0xb0, 0x79, 0x98, 0x86, 0xc9, 0x35, - 0xb3, 0xd3, 0x4b, 0x28, 0xf2, 0x71, 0xf4, 0xbd, 0x6a, 0x70, 0x84, 0x0e, 0x14, 0x47, 0xbf, 0x3f, - 0xbd, 0xe4, 0x05, 0xf3, 0x83, 0x14, 0x1c, 0x5f, 0xc4, 0x26, 0xb6, 0x8d, 0x06, 0xad, 0x81, 0x27, - 0x89, 0x3b, 0x44, 0x49, 0x3c, 0x4a, 0xe0, 0xbc, 0xd7, 0x1f, 0xa2, 0x04, 0x5e, 0xed, 0x4b, 0xe0, - 0x2e, 0x41, 0x02, 0x37, 0x49, 0xd2, 0x19, 0xc1, 0x7d, 0xe8, 0x13, 0x30, 0x55, 0xb1, 0x1c, 0x63, - 0xc3, 0x68, 0x50, 0x1f, 0xb4, 0x97, 0x29, 0x90, 0x59, 0x36, 0x3a, 0x0e, 0x2a, 0x04, 0xdd, 0xc9, - 0x35, 0x30, 0x69, 0x98, 0x8d, 0xd6, 0x4e, 0x13, 0x6b, 0x58, 0xa7, 0xfd, 0xca, 0xb8, 0xc6, 0x27, - 0x05, 0x5b, 0xfb, 0x2e, 0x5b, 0x8a, 0xb7, 0xb5, 0xff, 0x19, 0xe9, 0x65, 0x18, 0x9e, 0x05, 0x12, - 0x90, 0x32, 0xc4, 0xee, 0x2a, 0xc0, 0xb4, 0xc9, 0x65, 0xf5, 0x0c, 0xf6, 0xee, 0x0b, 0x05, 0x78, - 0x72, 0x9a, 0xf8, 0x07, 0x7a, 0x9f, 0x54, 0x63, 0xed, 0xc7, 0x50, 0x3c, 0x64, 0x16, 0x06, 0x98, - 0x24, 0xab, 0x30, 0x53, 0xae, 0xd4, 0x4b, 0x5a, 0xa5, 0xb0, 0xcc, 0xb2, 0x28, 0xe8, 0xdf, 0xd2, - 0x90, 0xd5, 0x70, 0xbb, 0xb5, 0xc7, 0x47, 0x8c, 0x66, 0x8e, 0xe2, 0x29, 0xdf, 0x51, 0x5c, 0x5d, - 0x00, 0xd0, 0x1b, 0x6e, 0xc1, 0xe4, 0x4a, 0xad, 0x74, 0xcf, 0x38, 0xa6, 0x42, 0x05, 0x0b, 0x7e, - 0x6e, 0x8d, 0xfb, 0x13, 0xbd, 0x40, 0x7a, 0xe7, 0x48, 0xa0, 0x46, 0x38, 0x0c, 0xe9, 0x13, 0xde, - 0x2f, 0xb5, 0xd9, 0xd3, 0x97, 0xdc, 0xe1, 0x88, 0xff, 0x6b, 0x69, 0xc8, 0xd4, 0xdd, 0xde, 0x92, - 0xeb, 0x38, 0xff, 0x64, 0x30, 0x1d, 0x77, 0xc9, 0x84, 0xe8, 0xf8, 0x9d, 0x30, 0xc5, 0x6b, 0x2c, - 0x73, 0x95, 0x88, 0x54, 0x71, 0xe1, 0x87, 0x41, 0x34, 0xbc, 0x07, 0x3b, 0x87, 0x23, 0xe2, 0x4f, - 0x3d, 0x1a, 0x60, 0x05, 0x6f, 0x5f, 0xc0, 0x76, 0x67, 0xcb, 0x68, 0xa3, 0xbf, 0x57, 0x60, 0x62, - 0x11, 0x3b, 0x35, 0x47, 0x77, 0x76, 0x3a, 0x5d, 0xdb, 0x9d, 0xa6, 0x55, 0xd4, 0x1b, 0x5b, 0x98, - 0x75, 0x47, 0xde, 0x2b, 0x7a, 0x97, 0x22, 0xeb, 0x4f, 0x14, 0x94, 0x33, 0xeb, 0x97, 0x11, 0x82, - 0xc9, 0x63, 0x20, 0xd3, 0xd4, 0x1d, 0x9d, 0x61, 0x71, 0x45, 0x17, 0x16, 0x01, 0x21, 0x8d, 0x64, - 0x43, 0xbf, 0x97, 0x96, 0x71, 0x28, 0x92, 0x28, 0x3f, 0x1e, 0x08, 0xef, 0x4b, 0x0d, 0x80, 0xc2, - 0x31, 0x98, 0xae, 0x54, 0xeb, 0xeb, 0xcb, 0xd5, 0xc5, 0xc5, 0x92, 0x9b, 0x9a, 0x57, 0xd4, 0x93, - 0xa0, 0xae, 0x16, 0xee, 0x5d, 0x29, 0x55, 0xea, 0xeb, 0x95, 0xea, 0x7c, 0x89, 0xfd, 0x99, 0x51, - 0x8f, 0xc2, 0x64, 0xb1, 0x50, 0x5c, 0xf2, 0x12, 0xb2, 0xea, 0x29, 0x38, 0xbe, 0x52, 0x5a, 0x99, - 0x2b, 0x69, 0xb5, 0xa5, 0xf2, 0xea, 0xba, 0x4b, 0x66, 0xa1, 0xba, 0x56, 0x99, 0xcf, 0xe7, 0x54, - 0x04, 0x27, 0xb9, 0x2f, 0xe7, 0xb5, 0x6a, 0x65, 0x71, 0xbd, 0x56, 0x2f, 0xd4, 0x4b, 0xf9, 0x31, - 0xf5, 0x32, 0x38, 0x5a, 0x2c, 0x54, 0x48, 0xf6, 0x62, 0xb5, 0x52, 0x29, 0x15, 0xeb, 0xf9, 0x71, - 0xf4, 0xef, 0x19, 0x98, 0x2c, 0x77, 0x2a, 0xfa, 0x36, 0x3e, 0xa7, 0xb7, 0x8c, 0x26, 0x7a, 0x3e, - 0x37, 0xf3, 0xb8, 0x0e, 0xa6, 0x6d, 0xfa, 0x88, 0x9b, 0x75, 0x03, 0x53, 0x34, 0xa7, 0x35, 0x31, - 0xd1, 0x9d, 0x93, 0x9b, 0x84, 0x80, 0x37, 0x27, 0xa7, 0x6f, 0xea, 0x1c, 0x00, 0x7d, 0xaa, 0x07, - 0x97, 0xbb, 0x9e, 0xe9, 0x6e, 0x4d, 0xfa, 0x36, 0xee, 0x60, 0x7b, 0xd7, 0x68, 0x60, 0x2f, 0xa7, - 0xc6, 0xfd, 0x85, 0xbe, 0xae, 0xc8, 0xee, 0x2f, 0x72, 0xa0, 0x72, 0xd5, 0x09, 0xe9, 0x0d, 0x7f, - 0x45, 0x91, 0xd9, 0x1d, 0x94, 0x22, 0x19, 0x4f, 0x53, 0x5e, 0x94, 0x1e, 0x6c, 0xd9, 0xb6, 0x5e, - 0xad, 0xae, 0xd7, 0x96, 0xaa, 0x5a, 0x3d, 0xaf, 0xa8, 0x53, 0x30, 0xee, 0xbe, 0x2e, 0x57, 0x2b, - 0x8b, 0xf9, 0x8c, 0x7a, 0x02, 0x8e, 0x2d, 0x15, 0x6a, 0xeb, 0xe5, 0xca, 0xb9, 0xc2, 0x72, 0x79, - 0x7e, 0xbd, 0xb8, 0x54, 0xd0, 0x6a, 0xf9, 0xac, 0x7a, 0x05, 0x9c, 0xa8, 0x97, 0x4b, 0xda, 0xfa, - 0x42, 0xa9, 0x50, 0x5f, 0xd3, 0x4a, 0xb5, 0xf5, 0x4a, 0x75, 0xbd, 0x52, 0x58, 0x29, 0xe5, 0x73, - 0x6e, 0xf3, 0x27, 0x9f, 0x02, 0xb5, 0x19, 0xdb, 0xaf, 0x8c, 0xe3, 0x21, 0xca, 0x38, 0xd1, 0xad, - 0x8c, 0xc0, 0xab, 0x95, 0x56, 0xaa, 0x95, 0xb4, 0x73, 0xa5, 0xfc, 0x64, 0x2f, 0x5d, 0x9b, 0x52, - 0x8f, 0x43, 0xde, 0xe5, 0x61, 0xbd, 0x5c, 0xf3, 0x72, 0xce, 0xe7, 0xa7, 0xd1, 0x27, 0x73, 0x70, - 0x52, 0xc3, 0x9b, 0x46, 0xc7, 0xc1, 0xf6, 0xaa, 0xbe, 0xb7, 0x8d, 0x4d, 0xc7, 0xeb, 0xe4, 0xff, - 0x57, 0x6c, 0x65, 0x5c, 0x81, 0xe9, 0x36, 0xa5, 0xb1, 0x82, 0x9d, 0x2d, 0xab, 0xc9, 0x46, 0xe1, - 0x47, 0x85, 0xf6, 0x1c, 0xb3, 0xab, 0x7c, 0x76, 0x4d, 0xfc, 0x9b, 0xd3, 0x6d, 0x25, 0x42, 0xb7, - 0x33, 0x83, 0xe8, 0xb6, 0x7a, 0x15, 0x4c, 0xec, 0x74, 0xb0, 0x5d, 0xda, 0xd6, 0x8d, 0x96, 0x77, - 0x39, 0xa7, 0x9f, 0x80, 0xde, 0x9e, 0x91, 0x3d, 0xb1, 0xc2, 0xd5, 0xa5, 0xb7, 0x18, 0x43, 0xfa, - 0xd6, 0xd3, 0x00, 0xac, 0xb2, 0x6b, 0x76, 0x8b, 0x29, 0x2b, 0x97, 0xe2, 0xf2, 0x77, 0xc1, 0x68, - 0xb5, 0x0c, 0x73, 0xd3, 0xdf, 0xf7, 0x0f, 0x12, 0xd0, 0x8b, 0x14, 0x99, 0x13, 0x2c, 0x71, 0x79, - 0x8b, 0xd7, 0x9a, 0x5e, 0x90, 0x1e, 0x71, 0xbf, 0xbb, 0xbf, 0xe9, 0xe4, 0xd4, 0x3c, 0x4c, 0x91, - 0x34, 0xd6, 0x02, 0xf3, 0x63, 0x6e, 0x1f, 0xec, 0x91, 0x5b, 0x29, 0xd5, 0x97, 0xaa, 0xf3, 0xfe, - 0xb7, 0x71, 0x97, 0xa4, 0xcb, 0x4c, 0xa1, 0x72, 0x2f, 0x69, 0x8d, 0x13, 0xea, 0x23, 0xe0, 0x0a, - 0xae, 0xc3, 0x2e, 0x2c, 0x6b, 0xa5, 0xc2, 0xfc, 0xbd, 0xeb, 0xa5, 0xa7, 0x96, 0x6b, 0xf5, 0x9a, - 0xd8, 0xb8, 0xbc, 0x76, 0x34, 0xe9, 0xf2, 0x5b, 0x5a, 0x29, 0x94, 0x97, 0x59, 0xff, 0xbe, 0x50, - 0xd5, 0x56, 0x0a, 0xf5, 0xfc, 0x14, 0x7a, 0xb9, 0x02, 0xf9, 0x45, 0xec, 0xac, 0x5a, 0xb6, 0xa3, - 0xb7, 0x96, 0x0d, 0xf3, 0xe2, 0x9a, 0xdd, 0x12, 0x26, 0x9b, 0xd2, 0x61, 0x3a, 0xc4, 0x21, 0x52, - 0x20, 0x18, 0xbe, 0x23, 0xde, 0x26, 0xd9, 0x02, 0x65, 0x0a, 0x12, 0xd0, 0x33, 0xd3, 0x32, 0xcb, - 0xdd, 0xf2, 0xa5, 0xc6, 0xd3, 0x93, 0x67, 0x8d, 0x7a, 0x7c, 0xee, 0x81, 0x5a, 0x0e, 0x3d, 0x37, - 0x03, 0xe3, 0x0b, 0x86, 0xa9, 0xb7, 0x8c, 0x67, 0x08, 0xf1, 0x4b, 0x83, 0x3e, 0x26, 0x15, 0xd1, - 0xc7, 0xa4, 0x07, 0x1a, 0x3f, 0x7f, 0x43, 0x91, 0x5d, 0x5e, 0xe0, 0x64, 0xef, 0x31, 0x19, 0x32, - 0x78, 0x7e, 0x24, 0x2d, 0xb3, 0xbc, 0xd0, 0x9f, 0x5e, 0x3c, 0x0c, 0x3f, 0xfd, 0xe3, 0x61, 0x63, - 0x75, 0xb5, 0xef, 0xf1, 0x5e, 0xaa, 0x30, 0x81, 0xfe, 0x42, 0x01, 0xb4, 0x88, 0x9d, 0x73, 0xd8, - 0xf6, 0xa7, 0x02, 0xa4, 0xd7, 0x67, 0xf6, 0x36, 0xd7, 0x64, 0xdf, 0xcc, 0x03, 0x78, 0x5e, 0x04, - 0xb0, 0x10, 0xd1, 0x78, 0x42, 0x48, 0x87, 0x34, 0xde, 0x32, 0xe4, 0x3a, 0xe4, 0x3b, 0x53, 0xb3, - 0xc7, 0x86, 0x0f, 0x97, 0x84, 0x18, 0x4f, 0x9d, 0x12, 0xd6, 0x18, 0x01, 0xf4, 0x43, 0x7f, 0x12, - 0xf4, 0x73, 0x82, 0x76, 0x2c, 0x1c, 0x98, 0xd9, 0x78, 0xfa, 0x62, 0x27, 0xab, 0x2e, 0xbd, 0xec, - 0x1b, 0xf4, 0x91, 0x2c, 0x1c, 0xef, 0x55, 0x1d, 0xf4, 0x81, 0x94, 0xb0, 0xc3, 0x8e, 0xc9, 0x90, - 0x9f, 0x62, 0x1b, 0x88, 0xee, 0x8b, 0xfa, 0x78, 0x38, 0xe1, 0x2f, 0xc3, 0xd5, 0xad, 0x0a, 0xbe, - 0xd4, 0x69, 0x61, 0xc7, 0xc1, 0x36, 0xa9, 0xda, 0xb8, 0xd6, 0xfb, 0xa3, 0xfa, 0x44, 0xb8, 0xdc, - 0x30, 0x3b, 0x46, 0x13, 0xdb, 0x75, 0xa3, 0xdd, 0x29, 0x98, 0xcd, 0xfa, 0x8e, 0x63, 0xd9, 0x86, - 0xce, 0xae, 0x92, 0x1c, 0xd7, 0xc2, 0x3e, 0xab, 0x37, 0x42, 0xde, 0xe8, 0x54, 0xcd, 0x0b, 0x96, - 0x6e, 0x37, 0x0d, 0x73, 0x73, 0xd9, 0xe8, 0x38, 0xcc, 0x03, 0x78, 0x5f, 0x3a, 0xfa, 0x07, 0x45, - 0xf6, 0x30, 0x5d, 0x1f, 0x58, 0x43, 0x3a, 0x94, 0xe7, 0x29, 0x32, 0xc7, 0xe3, 0xe2, 0xd1, 0x8e, - 0xa7, 0x2c, 0xcf, 0x19, 0xb5, 0x21, 0xd1, 0x7b, 0x04, 0x27, 0x5d, 0x0b, 0x4d, 0xf7, 0x0c, 0x81, - 0x73, 0x25, 0xad, 0xbc, 0x50, 0x2e, 0xb9, 0x66, 0xc5, 0x09, 0x38, 0x16, 0x7c, 0x9b, 0xbf, 0x77, - 0xbd, 0x56, 0xaa, 0xd4, 0xf3, 0xe3, 0x6e, 0x3f, 0x45, 0x93, 0x17, 0x0a, 0xe5, 0xe5, 0xd2, 0xfc, - 0x7a, 0xbd, 0xea, 0x7e, 0x99, 0x1f, 0xcc, 0xb4, 0x40, 0x0f, 0x64, 0xe0, 0x28, 0x91, 0xed, 0x1e, - 0x91, 0xaa, 0x2b, 0x94, 0x2e, 0x5f, 0x5b, 0x1f, 0xa0, 0x09, 0x2a, 0x5e, 0xf4, 0x39, 0xe9, 0x9b, - 0x32, 0x39, 0x08, 0xbb, 0xca, 0x08, 0xd1, 0x8c, 0x1f, 0xa4, 0x65, 0x22, 0x54, 0x48, 0x93, 0x8d, - 0xa7, 0x14, 0xff, 0x32, 0xea, 0x11, 0x27, 0x1c, 0x7c, 0x62, 0x65, 0x16, 0xc9, 0xcf, 0x4f, 0x5d, - 0x2d, 0x6b, 0x44, 0x1d, 0x66, 0x00, 0x48, 0x0a, 0xd1, 0x20, 0xaa, 0x07, 0x3d, 0xc7, 0xab, 0x30, - 0x3d, 0x28, 0x14, 0xeb, 0xe5, 0x73, 0xa5, 0x30, 0x3d, 0xf8, 0xac, 0x02, 0xe3, 0x8b, 0xd8, 0x71, - 0xe7, 0x54, 0x1d, 0xf4, 0x24, 0x89, 0xf5, 0x1f, 0xd7, 0x8c, 0x69, 0x59, 0x0d, 0xbd, 0xe5, 0x2f, - 0x03, 0xd0, 0x37, 0xf4, 0xec, 0x41, 0x4c, 0x10, 0xaf, 0xe8, 0x90, 0xf1, 0xea, 0x67, 0x21, 0xeb, - 0xb8, 0x9f, 0xd9, 0x32, 0xf4, 0x4f, 0x85, 0x0e, 0x57, 0x2e, 0x91, 0x79, 0xdd, 0xd1, 0x35, 0x9a, - 0x9f, 0x1b, 0x9d, 0x24, 0x6d, 0x97, 0x10, 0x46, 0x7e, 0x1c, 0xed, 0xcf, 0xbf, 0x53, 0xe0, 0x04, - 0x6d, 0x1f, 0x85, 0x76, 0xbb, 0xe6, 0x58, 0x36, 0xd6, 0x70, 0x03, 0x1b, 0x6d, 0xa7, 0x6b, 0x7d, - 0xcf, 0xa6, 0xa9, 0xde, 0x66, 0x33, 0x7b, 0x45, 0x6f, 0x50, 0x64, 0x63, 0x30, 0xef, 0x6b, 0x8f, - 0x5d, 0xe5, 0x85, 0x34, 0xf6, 0x4f, 0xa4, 0x65, 0xa2, 0x2a, 0xc7, 0x24, 0x1e, 0x0f, 0xa8, 0x8f, - 0x1e, 0x02, 0x50, 0xde, 0xca, 0x8d, 0x56, 0x2a, 0x96, 0xca, 0xab, 0xee, 0x20, 0x70, 0x35, 0x5c, - 0xb9, 0xba, 0xa6, 0x15, 0x97, 0x0a, 0xb5, 0xd2, 0xba, 0x56, 0x5a, 0x2c, 0xd7, 0xea, 0xcc, 0x29, - 0x8b, 0xfe, 0x35, 0xa6, 0x5e, 0x05, 0xa7, 0x6a, 0x6b, 0x73, 0xb5, 0xa2, 0x56, 0x5e, 0x25, 0xe9, - 0x5a, 0xa9, 0x52, 0x3a, 0xcf, 0xbe, 0x8e, 0xa3, 0x0f, 0xe5, 0x61, 0xd2, 0x9d, 0x00, 0xd4, 0xe8, - 0xbc, 0x00, 0x7d, 0x27, 0x03, 0x93, 0x1a, 0xee, 0x58, 0xad, 0x5d, 0x32, 0x47, 0x18, 0xd5, 0xd4, - 0xe3, 0xfb, 0x8a, 0xec, 0xf9, 0x6d, 0x8e, 0xd9, 0x59, 0x8e, 0xd1, 0xf0, 0x89, 0xa6, 0xbe, 0xab, - 0x1b, 0x2d, 0xfd, 0x02, 0xeb, 0x6a, 0xc6, 0xb5, 0x20, 0x41, 0x9d, 0x05, 0xd5, 0xba, 0x64, 0x62, - 0xbb, 0xd6, 0xb8, 0x54, 0x72, 0xb6, 0x0a, 0xcd, 0xa6, 0x8d, 0x3b, 0x1d, 0xb6, 0x7a, 0xd1, 0xe3, - 0x8b, 0x7a, 0x03, 0x1c, 0x25, 0xa9, 0x5c, 0x66, 0xea, 0x20, 0xd3, 0x9d, 0xec, 0xe7, 0x2c, 0x98, - 0x7b, 0x5e, 0xce, 0x2c, 0x97, 0x33, 0x48, 0xe6, 0x8f, 0x4b, 0xe4, 0xc4, 0x53, 0x3a, 0xd7, 0xc0, - 0xa4, 0xa9, 0x6f, 0xe3, 0xd2, 0xfd, 0x6d, 0xc3, 0xc6, 0x1d, 0xe2, 0x18, 0xa3, 0x68, 0x7c, 0x12, - 0xfa, 0x88, 0xd4, 0x79, 0x73, 0x39, 0x89, 0xc5, 0xd3, 0xfd, 0xc5, 0x01, 0x54, 0xbf, 0x47, 0x3f, - 0xa3, 0xa0, 0x0f, 0x29, 0x30, 0xc5, 0x98, 0x2a, 0x98, 0x7b, 0xe5, 0x26, 0xba, 0x5a, 0x30, 0x7e, - 0x75, 0x37, 0xcd, 0x33, 0x7e, 0xc9, 0x0b, 0xfa, 0x55, 0x45, 0xd6, 0xdd, 0xb9, 0x47, 0xc5, 0x49, - 0x19, 0xe1, 0x8e, 0xa3, 0x1b, 0xd6, 0x0e, 0x73, 0x54, 0x1d, 0xd7, 0xe8, 0x4b, 0x92, 0x8b, 0x7a, - 0xe8, 0x0f, 0xa4, 0x9c, 0xa9, 0x25, 0xab, 0x71, 0x48, 0x00, 0x7e, 0x4a, 0x81, 0x19, 0xc6, 0x55, - 0x8d, 0x9d, 0xf3, 0x91, 0x3a, 0xf0, 0xf6, 0x6b, 0xd2, 0x86, 0x60, 0x8f, 0xfa, 0xb3, 0x92, 0x1e, - 0x36, 0x40, 0x7e, 0x4c, 0x2a, 0x38, 0x9a, 0x74, 0x45, 0x0e, 0x09, 0xca, 0x77, 0x64, 0x60, 0x72, - 0xad, 0x83, 0x6d, 0xe6, 0xb7, 0x8f, 0x1e, 0xcc, 0x80, 0xb2, 0x88, 0x85, 0x8d, 0xd4, 0x17, 0x4a, - 0x7b, 0xf8, 0xf2, 0x95, 0xe5, 0x88, 0xba, 0x36, 0x52, 0x08, 0x6c, 0xd7, 0xc3, 0x0c, 0x15, 0x69, - 0xc1, 0x71, 0x5c, 0x23, 0xd1, 0xf3, 0xa6, 0xed, 0x4a, 0x1d, 0xc6, 0x56, 0x11, 0x29, 0xcb, 0xcd, - 0x52, 0x74, 0x79, 0x5a, 0xc6, 0x1b, 0x74, 0x3e, 0x9b, 0xd1, 0xba, 0x52, 0xd5, 0x9b, 0xe1, 0x32, - 0xab, 0x8d, 0xe9, 0xf9, 0x15, 0x2e, 0x73, 0x96, 0x64, 0xee, 0xf5, 0x09, 0x7d, 0x47, 0xca, 0x57, - 0x57, 0x5e, 0x3a, 0xf1, 0x74, 0xa1, 0x3d, 0x1c, 0x93, 0xe4, 0x38, 0xe4, 0xdd, 0x1c, 0x64, 0xff, - 0x45, 0x2b, 0xd5, 0xaa, 0xcb, 0xe7, 0x4a, 0xbd, 0x97, 0x31, 0xb2, 0xe8, 0x39, 0x0a, 0x4c, 0xcc, - 0xd9, 0x96, 0xde, 0x6c, 0xe8, 0x1d, 0x07, 0xfd, 0x30, 0x0d, 0x53, 0xab, 0xfa, 0x5e, 0xcb, 0xd2, - 0x9b, 0xc4, 0xbf, 0xbf, 0xab, 0x2f, 0x68, 0xd3, 0x4f, 0x5e, 0x5f, 0xc0, 0x5e, 0xc5, 0x83, 0x81, - 0xfe, 0xd1, 0xbd, 0x94, 0xcc, 0x85, 0x9a, 0xfe, 0x36, 0x5f, 0xba, 0x57, 0xb0, 0x52, 0x8f, 0xaf, - 0x59, 0x9e, 0xa7, 0x10, 0x8b, 0xf2, 0x43, 0x72, 0xe1, 0x47, 0x65, 0x48, 0x1e, 0xce, 0xae, 0xfc, - 0x73, 0xc7, 0x21, 0x37, 0x8f, 0x89, 0x15, 0xf7, 0xdf, 0xd3, 0x30, 0x56, 0xc3, 0x0e, 0xb1, 0xe0, - 0x6e, 0x15, 0x3c, 0x85, 0x9b, 0x24, 0x43, 0xe0, 0xc4, 0xee, 0xbd, 0xbb, 0x93, 0x75, 0xee, 0xbc, - 0x35, 0x79, 0x8e, 0xe1, 0x91, 0x48, 0xcb, 0x9d, 0x65, 0x65, 0x1e, 0xc8, 0x23, 0x31, 0x92, 0x54, - 0xf2, 0xbe, 0x56, 0xef, 0x4a, 0x33, 0xd7, 0x2a, 0xae, 0xd7, 0x7b, 0x0d, 0xaf, 0x9f, 0x91, 0xde, - 0x66, 0x8c, 0xf9, 0x08, 0xe7, 0xa8, 0xc7, 0xc1, 0x18, 0x95, 0xb9, 0x37, 0x1f, 0xed, 0xf6, 0x53, - 0xa0, 0x24, 0xc8, 0xd9, 0x6b, 0x2f, 0xa7, 0xa4, 0x8b, 0x5a, 0x78, 0xe1, 0x23, 0x89, 0x41, 0x30, - 0x55, 0xc1, 0xce, 0x25, 0xcb, 0xbe, 0x58, 0x73, 0x74, 0x07, 0xa3, 0x7f, 0x49, 0x83, 0x52, 0xc3, - 0x0e, 0x1f, 0xfd, 0xa4, 0x02, 0xc7, 0x68, 0x85, 0x58, 0x46, 0xd2, 0x7f, 0xd3, 0x8a, 0x5c, 0xd3, - 0x53, 0x08, 0x5c, 0x3e, 0x6d, 0xff, 0xaf, 0xe8, 0xb7, 0x7a, 0x06, 0x7d, 0x4a, 0xf7, 0x98, 0x34, - 0x30, 0xc9, 0xf0, 0x0c, 0xba, 0x0a, 0x16, 0xa2, 0xa7, 0x1f, 0x96, 0x32, 0xab, 0xe5, 0x68, 0x1e, - 0x4e, 0x57, 0xf0, 0xaa, 0x2b, 0x20, 0x53, 0xdc, 0xd2, 0x1d, 0xf4, 0x4e, 0x05, 0xa0, 0xd0, 0x6c, - 0xae, 0x50, 0x1f, 0x70, 0xde, 0x21, 0xed, 0x0c, 0x4c, 0x35, 0xb6, 0xf4, 0xe0, 0x6e, 0x13, 0xda, - 0x1f, 0x08, 0x69, 0xea, 0xe3, 0x03, 0x67, 0x72, 0x2a, 0x55, 0xd4, 0x05, 0x93, 0x5b, 0x06, 0xa3, - 0xed, 0x3b, 0x9a, 0x8b, 0xa1, 0x30, 0x23, 0x8f, 0xd0, 0xb9, 0xbf, 0xcf, 0x06, 0xec, 0x85, 0xcf, - 0xe1, 0x18, 0x69, 0xff, 0x80, 0x4d, 0x90, 0x10, 0xf3, 0xa4, 0xb7, 0x5c, 0x40, 0x8f, 0x68, 0xbe, - 0x46, 0x12, 0xba, 0x56, 0x2d, 0x35, 0x0d, 0x4f, 0xb4, 0x2c, 0x60, 0x16, 0x7a, 0x41, 0x2a, 0x1e, - 0x7c, 0xd1, 0x82, 0xbb, 0x0b, 0xa6, 0x71, 0xd3, 0x70, 0xb0, 0x57, 0x4b, 0x26, 0xc0, 0x28, 0x88, - 0xc5, 0x1f, 0xd0, 0xb3, 0xa4, 0x83, 0xae, 0x11, 0x81, 0xee, 0xaf, 0x51, 0x48, 0xfb, 0x93, 0x0b, - 0xa3, 0x26, 0x47, 0x33, 0x79, 0xb0, 0x9e, 0xad, 0xc0, 0x89, 0xba, 0xb5, 0xb9, 0xd9, 0xc2, 0x9e, - 0x98, 0x30, 0xf5, 0xce, 0x44, 0xfa, 0x30, 0xe1, 0x22, 0x3b, 0x41, 0xd6, 0x7d, 0x86, 0x7f, 0x94, - 0xcc, 0x7d, 0x11, 0x4f, 0x4c, 0x45, 0xce, 0xa2, 0x88, 0xb8, 0x7a, 0xf2, 0x19, 0x82, 0x82, 0x5c, - 0xc0, 0x67, 0x69, 0xb2, 0xc9, 0x03, 0xf1, 0xa5, 0x34, 0x4c, 0xd3, 0x9b, 0x2b, 0x3d, 0x05, 0xbd, - 0x67, 0x88, 0x00, 0xa0, 0x1f, 0xa6, 0x64, 0xfd, 0x6c, 0x89, 0x4c, 0x04, 0x4e, 0x42, 0x44, 0x2c, - 0x17, 0x54, 0xa5, 0x2f, 0xb9, 0x11, 0xc4, 0xcd, 0x52, 0x60, 0x72, 0x11, 0x7b, 0x2d, 0xad, 0xc3, - 0x5f, 0x03, 0x26, 0x23, 0xd8, 0xeb, 0x60, 0xfa, 0x02, 0xde, 0xb0, 0x6c, 0x5c, 0x15, 0x8e, 0x49, - 0x8a, 0x89, 0x21, 0x91, 0xe7, 0x84, 0x10, 0x67, 0x73, 0xa2, 0xd8, 0x6f, 0xda, 0x2f, 0x27, 0x8e, - 0xcb, 0x90, 0xe1, 0xe4, 0x09, 0x30, 0xce, 0x40, 0xf5, 0x2c, 0xb0, 0xa8, 0x2e, 0xcf, 0xcf, 0x8b, - 0x5e, 0xef, 0x83, 0x55, 0x12, 0xc0, 0x7a, 0x6c, 0x1c, 0x26, 0x46, 0x72, 0x75, 0x7b, 0x9e, 0x2b, - 0x7f, 0x6e, 0xaf, 0xdc, 0xec, 0xa0, 0x95, 0x78, 0x78, 0x9d, 0x06, 0xf0, 0xf5, 0xde, 0x8b, 0x58, - 0xc1, 0xa5, 0x88, 0x41, 0xe9, 0x23, 0xcf, 0xe0, 0x75, 0x8b, 0x83, 0xb0, 0x33, 0x64, 0x60, 0xe4, - 0xce, 0xee, 0xc9, 0x70, 0x92, 0x3c, 0x3a, 0x9f, 0x51, 0xe0, 0x84, 0x7f, 0xb4, 0x68, 0x59, 0xef, - 0x04, 0x4d, 0xaa, 0x18, 0x0f, 0x22, 0xe1, 0x2c, 0x87, 0xdf, 0x58, 0xbe, 0x1b, 0x6f, 0x38, 0xe8, - 0xc9, 0xc9, 0x70, 0xd1, 0x51, 0x6f, 0x82, 0x63, 0xe6, 0xce, 0xb6, 0x2f, 0x75, 0xd2, 0xe2, 0x59, - 0x0b, 0xdf, 0xff, 0x21, 0xce, 0xa0, 0x23, 0xc3, 0xfc, 0x48, 0xa6, 0x8b, 0xc2, 0x69, 0xad, 0xc7, - 0xc4, 0x82, 0x11, 0xfd, 0x73, 0x2a, 0x56, 0xef, 0xd6, 0xff, 0x38, 0x57, 0x8c, 0x5e, 0xea, 0x10, - 0xcf, 0x72, 0x9d, 0x19, 0x83, 0x6c, 0x69, 0xbb, 0xed, 0xec, 0x9d, 0x79, 0x24, 0x4c, 0xd7, 0x1c, - 0x1b, 0xeb, 0xdb, 0xdc, 0xa2, 0xbf, 0x63, 0x5d, 0xc4, 0xa6, 0xb7, 0xe8, 0x4f, 0x5e, 0x6e, 0xbb, - 0x15, 0xc6, 0x4c, 0x6b, 0x5d, 0xdf, 0x71, 0xb6, 0xd4, 0xab, 0xf7, 0x9d, 0x96, 0x67, 0xe0, 0x57, - 0x59, 0x78, 0xa2, 0xaf, 0xdf, 0x4e, 0x96, 0x7d, 0x73, 0xa6, 0x55, 0xd8, 0x71, 0xb6, 0xe6, 0xae, - 0xfa, 0xd4, 0xdf, 0x9e, 0x4e, 0x7d, 0xf6, 0x6f, 0x4f, 0xa7, 0xbe, 0xf6, 0xb7, 0xa7, 0x53, 0xbf, - 0xf6, 0x8d, 0xd3, 0x47, 0x3e, 0xfb, 0x8d, 0xd3, 0x47, 0xbe, 0xf4, 0x8d, 0xd3, 0x47, 0x7e, 0x2e, - 0xdd, 0xbe, 0x70, 0x21, 0x47, 0xa8, 0x3c, 0xee, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xec, 0x8c, - 0x95, 0x0b, 0x1d, 0x02, 0x02, 0x00, + // 19411 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x7c, 0x24, 0x47, + 0x75, 0x2f, 0x8c, 0xef, 0x74, 0xcf, 0x8c, 0xa4, 0xa3, 0x97, 0x9d, 0x6d, 0xef, 0xae, 0xd7, 0x6d, + 0xb3, 0x76, 0xd6, 0xc6, 0x38, 0xc6, 0x68, 0x8d, 0x21, 0x80, 0x8d, 0x8d, 0x3d, 0x1a, 0x8d, 0xa4, + 0xb1, 0xa5, 0x19, 0xd1, 0x33, 0xda, 0xc5, 0xc9, 0xe5, 0xa7, 0xf4, 0xce, 0x94, 0xa4, 0xf6, 0x8e, + 0xba, 0x87, 0xee, 0x96, 0xd6, 0xe2, 0xf7, 0xb9, 0xcf, 0x0d, 0x01, 0xf3, 0x12, 0xc2, 0x25, 0x84, + 0x90, 0x84, 0x77, 0x30, 0x18, 0x2e, 0x24, 0x40, 0x78, 0xbf, 0x40, 0x02, 0x84, 0x97, 0x40, 0x48, + 0x42, 0x08, 0x84, 0xf0, 0x92, 0xf0, 0x04, 0x02, 0x21, 0xe4, 0xf9, 0x84, 0xcb, 0x4d, 0x9e, 0x1b, + 0xb8, 0x24, 0xe1, 0xc9, 0xf3, 0xe9, 0xaa, 0xea, 0xee, 0xaa, 0xd1, 0x74, 0x4f, 0xf5, 0x68, 0x7a, + 0x64, 0xc2, 0xf3, 0x5f, 0x77, 0x75, 0xf5, 0xa9, 0x53, 0xe7, 0x7b, 0xaa, 0xea, 0x54, 0xd5, 0xa9, + 0x53, 0x70, 0xaa, 0x73, 0xe1, 0x6c, 0xc7, 0xb6, 0x5c, 0xcb, 0x39, 0xdb, 0xb4, 0xb6, 0xb7, 0x75, + 0xb3, 0xe5, 0xcc, 0xe2, 0x77, 0x65, 0x4c, 0x37, 0xf7, 0xdc, 0xbd, 0x0e, 0x52, 0xaf, 0xeb, 0x5c, + 0xdc, 0x3c, 0xdb, 0x36, 0x2e, 0x9c, 0xed, 0x5c, 0x38, 0xbb, 0x6d, 0xb5, 0x50, 0xdb, 0xff, 0x01, + 0xbf, 0xd0, 0xec, 0xea, 0x0d, 0x51, 0xb9, 0xda, 0x56, 0x53, 0x6f, 0x3b, 0xae, 0x65, 0x23, 0x9a, + 0xf3, 0x64, 0x58, 0x24, 0xda, 0x45, 0xa6, 0xeb, 0x53, 0xb8, 0x6a, 0xd3, 0xb2, 0x36, 0xdb, 0x88, + 0x7c, 0xbb, 0xb0, 0xb3, 0x71, 0xd6, 0x71, 0xed, 0x9d, 0xa6, 0x4b, 0xbf, 0x5e, 0xd3, 0xfd, 0xb5, + 0x85, 0x9c, 0xa6, 0x6d, 0x74, 0x5c, 0xcb, 0x26, 0x39, 0xce, 0x7c, 0xfb, 0x39, 0xe3, 0x20, 0x6b, + 0x9d, 0xa6, 0xfa, 0xfd, 0x31, 0x90, 0x8b, 0x9d, 0x8e, 0xfa, 0x49, 0x09, 0x60, 0x11, 0xb9, 0xe7, + 0x90, 0xed, 0x18, 0x96, 0xa9, 0x1e, 0x85, 0x31, 0x0d, 0x3d, 0x63, 0x07, 0x39, 0xee, 0x6d, 0xd9, + 0xe7, 0x7f, 0x5b, 0xce, 0xa8, 0x0f, 0x49, 0x30, 0xae, 0x21, 0xa7, 0x63, 0x99, 0x0e, 0x52, 0xee, + 0x82, 0x1c, 0xb2, 0x6d, 0xcb, 0x3e, 0x95, 0xb9, 0x26, 0x73, 0xc3, 0xe4, 0x2d, 0x37, 0xce, 0xd2, + 0xea, 0xcf, 0x6a, 0x9d, 0xe6, 0x6c, 0xb1, 0xd3, 0x99, 0x0d, 0x29, 0xcd, 0xfa, 0x3f, 0xcd, 0x96, + 0xbd, 0x3f, 0x34, 0xf2, 0xa3, 0x72, 0x0a, 0xc6, 0x76, 0x49, 0x86, 0x53, 0xd2, 0x35, 0x99, 0x1b, + 0x26, 0x34, 0xff, 0xd5, 0xfb, 0xd2, 0x42, 0xae, 0x6e, 0xb4, 0x9d, 0x53, 0x32, 0xf9, 0x42, 0x5f, + 0xd5, 0x07, 0x33, 0x90, 0xc3, 0x44, 0x94, 0x12, 0x64, 0x9b, 0x56, 0x0b, 0xe1, 0xe2, 0x67, 0x6e, + 0x39, 0x2b, 0x5e, 0xfc, 0x6c, 0xc9, 0x6a, 0x21, 0x0d, 0xff, 0xac, 0x5c, 0x03, 0x93, 0xbe, 0x58, + 0x42, 0x36, 0xd8, 0xa4, 0x33, 0xb7, 0x40, 0xd6, 0xcb, 0xaf, 0x8c, 0x43, 0xb6, 0xba, 0xb6, 0xbc, + 0x5c, 0x38, 0xa2, 0x1c, 0x83, 0xe9, 0xb5, 0xea, 0x3d, 0xd5, 0xda, 0xf9, 0xea, 0x7a, 0x59, 0xd3, + 0x6a, 0x5a, 0x21, 0xa3, 0x4c, 0xc3, 0xc4, 0x5c, 0x71, 0x7e, 0xbd, 0x52, 0x5d, 0x5d, 0x6b, 0x14, + 0x24, 0xf5, 0x35, 0x32, 0xcc, 0xd4, 0x91, 0x3b, 0x8f, 0x76, 0x8d, 0x26, 0xaa, 0xbb, 0xba, 0x8b, + 0xd4, 0x17, 0x67, 0x02, 0x61, 0x2a, 0x6b, 0x5e, 0xa1, 0xc1, 0x27, 0x5a, 0x81, 0xc7, 0xed, 0xab, + 0x00, 0x4f, 0x61, 0x96, 0xfe, 0x3d, 0xcb, 0xa4, 0x69, 0x2c, 0x9d, 0x33, 0x8f, 0x81, 0x49, 0xe6, + 0x9b, 0x32, 0x03, 0x30, 0x57, 0x2c, 0xdd, 0xb3, 0xa8, 0xd5, 0xd6, 0xaa, 0xf3, 0x85, 0x23, 0xde, + 0xfb, 0x42, 0x4d, 0x2b, 0xd3, 0xf7, 0x8c, 0xfa, 0xc3, 0x0c, 0x03, 0xe6, 0x3c, 0x0f, 0xe6, 0x6c, + 0x7f, 0x66, 0x7a, 0x00, 0xaa, 0xbe, 0x29, 0x00, 0x67, 0x91, 0x03, 0xe7, 0x71, 0xc9, 0xc8, 0xa5, + 0x0f, 0xd0, 0x03, 0x12, 0x8c, 0xd7, 0xb7, 0x76, 0xdc, 0x96, 0x75, 0xc9, 0x54, 0x27, 0x02, 0x64, + 0xd4, 0xef, 0xb2, 0x32, 0x79, 0x0a, 0x2f, 0x93, 0x1b, 0xf6, 0x57, 0x82, 0x52, 0x88, 0x90, 0xc6, + 0xeb, 0x02, 0x69, 0x14, 0x39, 0x69, 0x3c, 0x46, 0x94, 0x50, 0xfa, 0x72, 0x78, 0xc5, 0x93, 0x20, + 0x57, 0xef, 0xe8, 0x4d, 0xa4, 0xfe, 0xb1, 0x0c, 0x53, 0xcb, 0x48, 0xdf, 0x45, 0xc5, 0x4e, 0xc7, + 0xb6, 0x76, 0x91, 0x5a, 0x0a, 0xf5, 0xf5, 0x14, 0x8c, 0x39, 0x5e, 0xa6, 0x4a, 0x0b, 0xd7, 0x60, + 0x42, 0xf3, 0x5f, 0x95, 0xd3, 0x00, 0x46, 0x0b, 0x99, 0xae, 0xe1, 0x1a, 0xc8, 0x39, 0x25, 0x5d, + 0x23, 0xdf, 0x30, 0xa1, 0x31, 0x29, 0xea, 0xf7, 0x25, 0x51, 0x1d, 0xc3, 0x5c, 0xcc, 0xb2, 0x1c, + 0x44, 0x48, 0xf5, 0x0d, 0x92, 0x88, 0x8e, 0xf5, 0x25, 0x97, 0x4c, 0xb6, 0x6f, 0xcf, 0x24, 0x17, + 0xae, 0x97, 0xa3, 0x5a, 0x5b, 0xaf, 0xaf, 0x95, 0x96, 0xd6, 0xeb, 0xab, 0xc5, 0x52, 0xb9, 0x80, + 0x94, 0xe3, 0x50, 0xc0, 0x8f, 0xeb, 0x95, 0xfa, 0xfa, 0x7c, 0x79, 0xb9, 0xdc, 0x28, 0xcf, 0x17, + 0x36, 0x14, 0x05, 0x66, 0xb4, 0xf2, 0x53, 0xd7, 0xca, 0xf5, 0xc6, 0xfa, 0x42, 0xb1, 0xb2, 0x5c, + 0x9e, 0x2f, 0x6c, 0x7a, 0x3f, 0x2f, 0x57, 0x56, 0x2a, 0x8d, 0x75, 0xad, 0x5c, 0x2c, 0x2d, 0x95, + 0xe7, 0x0b, 0x5b, 0xca, 0xe5, 0x70, 0x59, 0xb5, 0xb6, 0x5e, 0x5c, 0x5d, 0xd5, 0x6a, 0xe7, 0xca, + 0xeb, 0xf4, 0x8f, 0x7a, 0xc1, 0x20, 0x05, 0x35, 0xd6, 0xeb, 0x4b, 0x45, 0xad, 0x5c, 0x9c, 0x5b, + 0x2e, 0x17, 0xee, 0x53, 0x9f, 0x2d, 0xc3, 0xf4, 0x8a, 0x7e, 0x11, 0xd5, 0xb7, 0x74, 0x1b, 0xe9, + 0x17, 0xda, 0x48, 0xbd, 0x56, 0x00, 0x4f, 0xf5, 0x8f, 0x59, 0xbc, 0xca, 0x3c, 0x5e, 0x67, 0x7b, + 0x08, 0x98, 0x2b, 0x22, 0x02, 0xb0, 0xff, 0x1d, 0x34, 0x83, 0x25, 0x0e, 0xb0, 0xc7, 0x27, 0xa4, + 0x97, 0x0c, 0xb1, 0x5f, 0x7c, 0x18, 0x20, 0xa6, 0x7e, 0x4d, 0x86, 0x99, 0x8a, 0xb9, 0x6b, 0xb8, + 0x68, 0x11, 0x99, 0xc8, 0xf6, 0xc6, 0x01, 0x21, 0x18, 0x1e, 0x92, 0x19, 0x18, 0x16, 0x78, 0x18, + 0x6e, 0xee, 0x21, 0x36, 0xbe, 0x8c, 0x88, 0xd1, 0xf6, 0x2a, 0x98, 0x30, 0x70, 0xbe, 0x92, 0xd1, + 0xa2, 0x12, 0x0b, 0x13, 0x94, 0xeb, 0x60, 0x9a, 0xbc, 0x2c, 0x18, 0x6d, 0x74, 0x0f, 0xda, 0xa3, + 0xe3, 0x2e, 0x9f, 0xa8, 0xfe, 0x72, 0xd0, 0xf8, 0x2a, 0x1c, 0x96, 0x3f, 0x93, 0x94, 0xa9, 0x64, + 0x60, 0xbe, 0xec, 0xe1, 0xd0, 0xfc, 0xf6, 0xb5, 0x32, 0x43, 0xfd, 0x91, 0x04, 0x93, 0x75, 0xd7, + 0xea, 0x78, 0x2a, 0x6b, 0x98, 0x9b, 0x62, 0xe0, 0x7e, 0x9a, 0x6d, 0x63, 0x25, 0x1e, 0xdc, 0xc7, + 0xf4, 0x90, 0x23, 0x53, 0x40, 0x44, 0x0b, 0xfb, 0x7e, 0xd0, 0xc2, 0x16, 0x38, 0x54, 0x6e, 0x49, + 0x44, 0xed, 0xc7, 0xb0, 0x7d, 0xbd, 0x4c, 0x86, 0x82, 0xaf, 0x66, 0x6e, 0x69, 0xc7, 0xb6, 0x91, + 0xe9, 0x8a, 0x81, 0xf0, 0x97, 0x2c, 0x08, 0x4b, 0x3c, 0x08, 0xb7, 0xc4, 0x28, 0xb3, 0x5f, 0x4a, + 0x8a, 0x6d, 0xec, 0xa3, 0x01, 0x9a, 0xf7, 0x70, 0x68, 0x3e, 0x31, 0x39, 0x5b, 0xc9, 0x20, 0x5d, + 0x1a, 0x00, 0xd1, 0xe3, 0x50, 0xf0, 0xc6, 0xa4, 0x52, 0xa3, 0x72, 0xae, 0xbc, 0x5e, 0xa9, 0x9e, + 0xab, 0x34, 0xca, 0x05, 0xa4, 0xbe, 0x54, 0x86, 0x29, 0xc2, 0x9a, 0x86, 0x76, 0xad, 0x8b, 0x82, + 0xbd, 0xde, 0xd7, 0x12, 0x1a, 0x0b, 0x6c, 0x09, 0x11, 0x2d, 0xe3, 0x97, 0x12, 0x18, 0x0b, 0x31, + 0xe4, 0x1e, 0x4e, 0xbd, 0xd5, 0xbe, 0x66, 0xb0, 0xd9, 0xa3, 0xb5, 0xf4, 0xec, 0xad, 0x5e, 0x96, + 0x05, 0x20, 0x95, 0x3c, 0x67, 0xa0, 0x4b, 0xea, 0x4a, 0x88, 0x09, 0xa7, 0xb6, 0x99, 0xbe, 0x6a, + 0x2b, 0xf5, 0x52, 0xdb, 0xf7, 0xb3, 0x63, 0xd6, 0x1c, 0x8f, 0xde, 0x4d, 0x91, 0xe2, 0xf6, 0x38, + 0x89, 0x9e, 0x1d, 0xfa, 0x8a, 0x22, 0xf1, 0x56, 0xe7, 0x55, 0x30, 0x81, 0x1f, 0xab, 0xfa, 0x36, + 0xa2, 0x6d, 0x28, 0x4c, 0x50, 0xce, 0xc0, 0x14, 0xc9, 0xd8, 0xb4, 0x4c, 0xaf, 0x3e, 0x59, 0x9c, + 0x81, 0x4b, 0xf3, 0x40, 0x6c, 0xda, 0x48, 0x77, 0x2d, 0x1b, 0xd3, 0xc8, 0x11, 0x10, 0x99, 0x24, + 0xf5, 0x3b, 0x41, 0x2b, 0x2c, 0x73, 0x9a, 0xf3, 0xd8, 0x24, 0x55, 0x49, 0xa6, 0x37, 0xbb, 0x83, + 0xb5, 0x3f, 0xd2, 0xea, 0xd6, 0x3d, 0xb4, 0x17, 0xf0, 0xd4, 0x0e, 0x29, 0x27, 0x41, 0xa1, 0xa9, + 0x5e, 0xde, 0x52, 0xad, 0xda, 0x28, 0x57, 0x1b, 0x85, 0x8d, 0x9e, 0x1a, 0xb5, 0xa9, 0xbe, 0x21, + 0x0b, 0xd9, 0xbb, 0x2d, 0xc3, 0x54, 0x1f, 0xc8, 0x70, 0x2a, 0x61, 0x22, 0xf7, 0x92, 0x65, 0x5f, + 0x0c, 0x1a, 0x6a, 0x98, 0x10, 0x8f, 0x4d, 0xa8, 0x4a, 0x72, 0x5f, 0x55, 0xca, 0xf6, 0x52, 0xa5, + 0x5f, 0x65, 0x55, 0xe9, 0x76, 0x5e, 0x95, 0xae, 0xef, 0x21, 0x7f, 0x8f, 0xf9, 0x88, 0x0e, 0xe0, + 0x53, 0x41, 0x07, 0x70, 0x27, 0x07, 0xe3, 0xa3, 0xc5, 0xc8, 0x24, 0x03, 0xf0, 0xab, 0xa9, 0x36, + 0xfc, 0x5e, 0x50, 0x6f, 0x46, 0x40, 0xbd, 0xd5, 0xa3, 0x4f, 0x30, 0xf6, 0x77, 0x1d, 0xf7, 0xed, + 0xef, 0x26, 0x2e, 0x2a, 0x27, 0xe0, 0xd8, 0x7c, 0x65, 0x61, 0xa1, 0xac, 0x95, 0xab, 0x8d, 0xf5, + 0x6a, 0xb9, 0x71, 0xbe, 0xa6, 0xdd, 0x53, 0x68, 0xab, 0x0f, 0xca, 0x00, 0x9e, 0x84, 0x4a, 0xba, + 0xd9, 0x44, 0x6d, 0xb1, 0x1e, 0xfd, 0x7f, 0x48, 0xc9, 0xfa, 0x84, 0x90, 0x7e, 0x04, 0x9c, 0xaf, + 0x96, 0xc4, 0x5b, 0x65, 0x24, 0xb1, 0x64, 0xa0, 0xbe, 0xf5, 0xe1, 0x60, 0x7b, 0x5e, 0x06, 0x47, + 0x7d, 0x7a, 0x34, 0x7b, 0xef, 0x69, 0xdf, 0x3b, 0xb2, 0x30, 0x43, 0x61, 0xf1, 0xe7, 0xf1, 0xcf, + 0xcf, 0x88, 0x4c, 0xe4, 0x55, 0x18, 0xa7, 0xd3, 0x76, 0xbf, 0x7b, 0x0f, 0xde, 0x95, 0x45, 0x98, + 0xec, 0x20, 0x7b, 0xdb, 0x70, 0x1c, 0xc3, 0x32, 0xc9, 0x82, 0xdc, 0xcc, 0x2d, 0x8f, 0x0c, 0x24, + 0x8e, 0xd7, 0x2e, 0x67, 0x57, 0x75, 0xdb, 0x35, 0x9a, 0x46, 0x47, 0x37, 0xdd, 0xd5, 0x30, 0xb3, + 0xc6, 0xfe, 0xa9, 0xbe, 0x24, 0xe1, 0xb4, 0x86, 0xaf, 0x49, 0x84, 0x4a, 0xfc, 0x6e, 0x82, 0x29, + 0x49, 0x2c, 0xc1, 0x64, 0x6a, 0xf1, 0xc9, 0x54, 0xd5, 0xa2, 0x07, 0xde, 0x9b, 0xca, 0x15, 0x70, + 0xa2, 0x52, 0x2d, 0xd5, 0x34, 0xad, 0x5c, 0x6a, 0xac, 0xaf, 0x96, 0xb5, 0x95, 0x4a, 0xbd, 0x5e, + 0xa9, 0x55, 0xeb, 0x07, 0x69, 0xed, 0xea, 0x67, 0xe4, 0x40, 0x63, 0xe6, 0x51, 0xb3, 0x6d, 0x98, + 0x48, 0xbd, 0xf3, 0x80, 0x0a, 0xc3, 0xaf, 0xfa, 0x88, 0xe3, 0x4c, 0xcb, 0x8f, 0xc0, 0xf9, 0xf5, + 0xc9, 0x71, 0xee, 0x4d, 0xf0, 0x3f, 0x70, 0xf3, 0xff, 0x9a, 0x0c, 0xc7, 0x98, 0x86, 0xa8, 0xa1, + 0xed, 0xa1, 0xad, 0xe4, 0xfd, 0x22, 0xdb, 0x76, 0x2b, 0x3c, 0xa6, 0xbd, 0xac, 0xe9, 0x7d, 0x6c, + 0x44, 0xc0, 0xfa, 0xd6, 0x00, 0xd6, 0x65, 0x0e, 0xd6, 0x27, 0x0d, 0x40, 0x33, 0x19, 0xb2, 0xbf, + 0x93, 0x2a, 0xb2, 0x57, 0xc0, 0x89, 0xd5, 0xa2, 0xd6, 0xa8, 0x94, 0x2a, 0xab, 0x45, 0x6f, 0x1c, + 0x65, 0x86, 0xec, 0x08, 0x73, 0x9d, 0x07, 0xbd, 0x27, 0xbe, 0x1f, 0xc9, 0xc2, 0x55, 0xbd, 0x3b, + 0xda, 0xd2, 0x96, 0x6e, 0x6e, 0x22, 0xd5, 0x10, 0x81, 0x7a, 0x1e, 0xc6, 0x9a, 0x38, 0x3b, 0xc1, + 0x99, 0xdd, 0xba, 0x89, 0xe9, 0xcb, 0x49, 0x09, 0x9a, 0xff, 0xab, 0xfa, 0x6e, 0x56, 0x21, 0x1a, + 0xbc, 0x42, 0x3c, 0x25, 0x1e, 0xbc, 0x7d, 0x7c, 0x47, 0xe8, 0xc6, 0xe7, 0x02, 0xdd, 0x38, 0xcf, + 0xe9, 0x46, 0xe9, 0x60, 0xe4, 0x93, 0xa9, 0xc9, 0x1f, 0x3d, 0x1c, 0x3a, 0x80, 0x48, 0x6d, 0x32, + 0xa2, 0x47, 0x85, 0x9e, 0xdd, 0xfd, 0x6b, 0x65, 0xc8, 0xcf, 0xa3, 0x36, 0x12, 0x5d, 0x89, 0xfc, + 0x9e, 0x24, 0xba, 0x21, 0x42, 0x60, 0x20, 0xb4, 0xa3, 0x57, 0x47, 0x5c, 0x63, 0x1b, 0x39, 0xae, + 0xbe, 0xdd, 0xc1, 0xa2, 0x96, 0xb5, 0x30, 0x41, 0x7d, 0x8e, 0x24, 0xb2, 0x5d, 0x12, 0x53, 0xcc, + 0x7f, 0x8c, 0x35, 0xc5, 0x2f, 0x48, 0x30, 0x5e, 0x47, 0x6e, 0xcd, 0x6e, 0x21, 0x5b, 0xad, 0x87, + 0x18, 0x5d, 0x03, 0x93, 0x18, 0x14, 0x6f, 0x9a, 0x19, 0xe0, 0xc4, 0x26, 0x29, 0xd7, 0xc3, 0x4c, + 0xf0, 0x8a, 0x7f, 0xa7, 0xdd, 0x78, 0x57, 0xaa, 0xfa, 0x8f, 0x19, 0xd1, 0x5d, 0x5c, 0xba, 0x64, + 0x48, 0xb9, 0x89, 0x68, 0xa5, 0x62, 0x3b, 0xb2, 0xb1, 0xa4, 0xd2, 0xdf, 0xe8, 0x7a, 0xa7, 0x04, + 0xb0, 0x66, 0x3a, 0xbe, 0x5c, 0x1f, 0x9d, 0x40, 0xae, 0xea, 0x3f, 0x67, 0x92, 0xcd, 0x62, 0xc2, + 0x72, 0x22, 0x24, 0xf6, 0xc6, 0x04, 0x6b, 0x0b, 0x91, 0xc4, 0xd2, 0x97, 0xd9, 0x37, 0x67, 0x20, + 0x7f, 0x5e, 0x6f, 0xb7, 0x91, 0xab, 0x7e, 0x4b, 0x82, 0x7c, 0xc9, 0x46, 0xba, 0x8b, 0x58, 0xd1, + 0xa9, 0x30, 0x6e, 0x5b, 0x96, 0xbb, 0xaa, 0xbb, 0x5b, 0x54, 0x6e, 0xc1, 0x3b, 0x75, 0x18, 0xf8, + 0x6d, 0xb6, 0xfb, 0xb8, 0x93, 0x17, 0xdd, 0x4f, 0x73, 0xb5, 0x25, 0x05, 0xcd, 0x92, 0x42, 0x22, + 0xfa, 0x0f, 0x15, 0xc6, 0xb7, 0x4d, 0xb4, 0x6d, 0x99, 0x46, 0xd3, 0xb7, 0x39, 0xfd, 0x77, 0xf5, + 0x63, 0x81, 0x4c, 0xe7, 0x38, 0x99, 0xce, 0x0a, 0x97, 0x92, 0x4c, 0xa0, 0xf5, 0x01, 0x7a, 0x8f, + 0xab, 0xe1, 0x4a, 0xd2, 0x19, 0xac, 0x37, 0x6a, 0xeb, 0x25, 0xad, 0x5c, 0x6c, 0x94, 0xd7, 0x97, + 0x6b, 0xa5, 0xe2, 0xf2, 0xba, 0x56, 0x5e, 0xad, 0x15, 0x90, 0xfa, 0x77, 0x92, 0x27, 0xdc, 0xa6, + 0xb5, 0x8b, 0x6c, 0x75, 0x51, 0x48, 0xce, 0x71, 0x32, 0xa1, 0x18, 0xfc, 0xaa, 0xb0, 0xd3, 0x06, + 0x95, 0x0e, 0xe5, 0x20, 0x42, 0x79, 0x3f, 0x2e, 0xd4, 0xdc, 0x63, 0x49, 0x3d, 0x0c, 0x24, 0xfd, + 0xbf, 0x24, 0x18, 0x2b, 0x59, 0xe6, 0x2e, 0xb2, 0x5d, 0x76, 0xbe, 0xc3, 0x4a, 0x33, 0xc3, 0x4b, + 0xd3, 0x1b, 0x24, 0x91, 0xe9, 0xda, 0x56, 0xc7, 0x9f, 0xf0, 0xf8, 0xaf, 0xea, 0x9b, 0x93, 0x4a, + 0x98, 0x96, 0x1c, 0xbd, 0xf0, 0xd9, 0xbb, 0x20, 0x8e, 0x3d, 0xb9, 0xab, 0x01, 0x3c, 0x98, 0x04, + 0x97, 0xde, 0x0c, 0xa4, 0xdf, 0xa5, 0x7c, 0x5d, 0x86, 0x69, 0xd2, 0xf8, 0xea, 0x08, 0x5b, 0x68, + 0x6a, 0x8d, 0x5d, 0x72, 0xec, 0x12, 0xfe, 0xd2, 0x11, 0x4e, 0xfc, 0x79, 0xbd, 0xd3, 0x09, 0x96, + 0x9f, 0x97, 0x8e, 0x68, 0xf4, 0x9d, 0xa8, 0xf9, 0x5c, 0x1e, 0xb2, 0xfa, 0x8e, 0xbb, 0xa5, 0xfe, + 0x48, 0x78, 0xf2, 0xc9, 0x75, 0x06, 0x94, 0x9f, 0x08, 0x48, 0x8e, 0x43, 0xce, 0xb5, 0x2e, 0x22, + 0x5f, 0x0e, 0xe4, 0xc5, 0x83, 0x43, 0xef, 0x74, 0x1a, 0xf8, 0x03, 0x85, 0xc3, 0x7f, 0xf7, 0x6c, + 0x1d, 0xbd, 0xd9, 0xb4, 0x76, 0x4c, 0xb7, 0xe2, 0x2f, 0x41, 0x87, 0x09, 0xea, 0x97, 0x33, 0x22, + 0x93, 0x59, 0x01, 0x06, 0x93, 0x41, 0x76, 0x61, 0x80, 0xa6, 0x34, 0x0b, 0x37, 0x16, 0x57, 0x57, + 0xd7, 0x1b, 0xb5, 0x7b, 0xca, 0xd5, 0xd0, 0xf0, 0x5c, 0xaf, 0x54, 0xd7, 0x1b, 0x4b, 0xe5, 0xf5, + 0xd2, 0x9a, 0x86, 0xd7, 0x09, 0x8b, 0xa5, 0x52, 0x6d, 0xad, 0xda, 0x28, 0x20, 0xf5, 0x6d, 0x12, + 0x4c, 0x95, 0xda, 0x96, 0x13, 0x20, 0x7c, 0x75, 0x88, 0x70, 0x20, 0xc6, 0x0c, 0x23, 0x46, 0xf5, + 0x5f, 0x33, 0xa2, 0x4e, 0x07, 0xbe, 0x40, 0x18, 0xf2, 0x11, 0xbd, 0xd4, 0x9b, 0x85, 0x9c, 0x0e, + 0xfa, 0xd3, 0x4b, 0xbf, 0x49, 0x7c, 0xe1, 0x36, 0x18, 0x2b, 0x12, 0xc5, 0x50, 0xff, 0x3a, 0x03, + 0xf9, 0x92, 0x65, 0x6e, 0x18, 0x9b, 0x9e, 0x31, 0x87, 0x4c, 0xfd, 0x42, 0x1b, 0xcd, 0xeb, 0xae, + 0xbe, 0x6b, 0xa0, 0x4b, 0xb8, 0x02, 0xe3, 0x5a, 0x57, 0xaa, 0xc7, 0x14, 0x4d, 0x41, 0x17, 0x76, + 0x36, 0x31, 0x53, 0xe3, 0x1a, 0x9b, 0xa4, 0x3c, 0x09, 0x2e, 0x27, 0xaf, 0xab, 0x36, 0xb2, 0x51, + 0x1b, 0xe9, 0x0e, 0xf2, 0xa6, 0x45, 0x26, 0x6a, 0x63, 0xa5, 0x1d, 0xd7, 0xa2, 0x3e, 0x2b, 0x67, + 0x60, 0x8a, 0x7c, 0xc2, 0xa6, 0x88, 0x83, 0xd5, 0x78, 0x5c, 0xe3, 0xd2, 0x94, 0xc7, 0x40, 0x0e, + 0xdd, 0xef, 0xda, 0xfa, 0xa9, 0x16, 0xc6, 0xeb, 0xf2, 0x59, 0xe2, 0x75, 0x38, 0xeb, 0x7b, 0x1d, + 0xce, 0xd6, 0xb1, 0x4f, 0xa2, 0x46, 0x72, 0xa9, 0xaf, 0x1a, 0x0f, 0x0c, 0x89, 0x7f, 0x97, 0x42, + 0xc5, 0x50, 0x20, 0x6b, 0xea, 0xdb, 0x88, 0xea, 0x05, 0x7e, 0x56, 0x6e, 0x84, 0xa3, 0xfa, 0xae, + 0xee, 0xea, 0xf6, 0xb2, 0xd5, 0xd4, 0xdb, 0x78, 0xf0, 0xf3, 0x5b, 0x7e, 0xf7, 0x07, 0xbc, 0x23, + 0xe4, 0x5a, 0x36, 0xc2, 0xb9, 0xfc, 0x1d, 0x21, 0x3f, 0xc1, 0xa3, 0x6e, 0x34, 0x2d, 0x13, 0xf3, + 0x2f, 0x6b, 0xf8, 0xd9, 0x93, 0x4a, 0xcb, 0x70, 0xbc, 0x8a, 0x60, 0x2a, 0x55, 0xb2, 0xb5, 0x51, + 0xdf, 0x33, 0x9b, 0x78, 0x37, 0x68, 0x5c, 0x8b, 0xfa, 0xac, 0xcc, 0xc1, 0x24, 0xdd, 0x08, 0x59, + 0xf1, 0xf4, 0x2a, 0x8f, 0xf5, 0xea, 0x1a, 0xde, 0xa7, 0x8b, 0xe0, 0x39, 0x5b, 0x0d, 0xf3, 0x69, + 0xec, 0x4f, 0xca, 0x5d, 0x70, 0x25, 0x7d, 0x2d, 0xed, 0x38, 0xae, 0xb5, 0x4d, 0x40, 0x5f, 0x30, + 0xda, 0xa4, 0x06, 0x63, 0xb8, 0x06, 0x71, 0x59, 0x94, 0x5b, 0xe0, 0x78, 0xc7, 0x46, 0x1b, 0xc8, + 0xbe, 0x57, 0xdf, 0xde, 0xb9, 0xbf, 0x61, 0xeb, 0xa6, 0xd3, 0xb1, 0x6c, 0xf7, 0xd4, 0x38, 0x66, + 0xbe, 0xe7, 0x37, 0xda, 0x51, 0x8e, 0x43, 0x9e, 0x88, 0x4f, 0x7d, 0x71, 0x4e, 0xd8, 0x9d, 0x93, + 0x56, 0x28, 0xd6, 0x3c, 0xbb, 0x19, 0xc6, 0x68, 0x0f, 0x87, 0x81, 0x9a, 0xbc, 0xe5, 0x64, 0xd7, + 0xba, 0x02, 0xa5, 0xa2, 0xf9, 0xd9, 0x94, 0xc7, 0x41, 0xbe, 0x89, 0xab, 0x85, 0x31, 0x9b, 0xbc, + 0xe5, 0xca, 0xde, 0x85, 0xe2, 0x2c, 0x1a, 0xcd, 0xaa, 0x7e, 0x45, 0x16, 0xf2, 0x00, 0x8d, 0xe3, + 0x38, 0x59, 0xab, 0xfe, 0x8e, 0x34, 0x40, 0xb7, 0x79, 0x13, 0xdc, 0x40, 0xfb, 0x44, 0x6a, 0x7f, + 0xcc, 0xaf, 0xcf, 0xad, 0xf9, 0x93, 0x41, 0xcf, 0x2a, 0xa9, 0x37, 0x8a, 0x9a, 0x37, 0x93, 0x9f, + 0xf7, 0x26, 0x91, 0x37, 0xc2, 0xf5, 0x7d, 0x72, 0x97, 0x1b, 0xeb, 0xd5, 0xe2, 0x4a, 0xb9, 0xb0, + 0xc1, 0xdb, 0x36, 0xf5, 0x46, 0x6d, 0x75, 0x5d, 0x5b, 0xab, 0x56, 0x2b, 0xd5, 0x45, 0x42, 0xcc, + 0x33, 0x09, 0x4f, 0x86, 0x19, 0xce, 0x6b, 0x95, 0x46, 0x79, 0xbd, 0x54, 0xab, 0x2e, 0x54, 0x16, + 0x0b, 0x46, 0x3f, 0xc3, 0xe8, 0x3e, 0xe5, 0x1a, 0xb8, 0x8a, 0xe3, 0xa4, 0x52, 0xab, 0x7a, 0x33, + 0xdb, 0x52, 0xb1, 0x5a, 0x2a, 0x7b, 0xd3, 0xd8, 0x8b, 0x8a, 0x0a, 0x27, 0x08, 0xb9, 0xf5, 0x85, + 0xca, 0x32, 0xbb, 0x19, 0xf5, 0xe9, 0x8c, 0x72, 0x0a, 0x2e, 0x63, 0xbf, 0x55, 0xaa, 0xe7, 0x8a, + 0xcb, 0x95, 0xf9, 0xc2, 0x1f, 0x66, 0x94, 0xeb, 0xe0, 0x6a, 0xee, 0x2f, 0xb2, 0xaf, 0xb4, 0x5e, + 0x99, 0x5f, 0x5f, 0xa9, 0xd4, 0x57, 0x8a, 0x8d, 0xd2, 0x52, 0xe1, 0x33, 0x78, 0xbe, 0x10, 0x18, + 0xc0, 0x8c, 0x5b, 0xe6, 0xcb, 0xd8, 0x31, 0xbd, 0xc8, 0x2b, 0xea, 0xa3, 0x7b, 0xc2, 0x1e, 0x6f, + 0xc3, 0x7e, 0x32, 0x18, 0x1d, 0xe6, 0x39, 0x15, 0xba, 0x39, 0x01, 0xad, 0x64, 0x3a, 0xd4, 0x18, + 0x40, 0x85, 0xae, 0x81, 0xab, 0xaa, 0x65, 0x82, 0x94, 0x56, 0x2e, 0xd5, 0xce, 0x95, 0xb5, 0xf5, + 0xf3, 0xc5, 0xe5, 0xe5, 0x72, 0x63, 0x7d, 0xa1, 0xa2, 0xd5, 0x1b, 0x85, 0x0d, 0xf5, 0x9f, 0xa5, + 0x60, 0x35, 0x87, 0x91, 0xd6, 0x5f, 0x4b, 0x49, 0x9b, 0x75, 0xec, 0xaa, 0xcd, 0xcf, 0x40, 0xde, + 0x71, 0x75, 0x77, 0xc7, 0xa1, 0xad, 0xfa, 0x11, 0xbd, 0x5b, 0xf5, 0x6c, 0x1d, 0x67, 0xd2, 0x68, + 0x66, 0xf5, 0x2b, 0x99, 0x24, 0xcd, 0x74, 0x08, 0x0b, 0x3a, 0xc6, 0x00, 0x22, 0x3e, 0x0d, 0xaa, + 0xaf, 0xed, 0x95, 0xfa, 0x7a, 0x71, 0x59, 0x2b, 0x17, 0xe7, 0xef, 0x0d, 0x96, 0x71, 0x90, 0x72, + 0x02, 0x8e, 0xad, 0x55, 0x8b, 0x73, 0xcb, 0x65, 0xdc, 0x5c, 0x6a, 0xd5, 0x6a, 0xb9, 0xe4, 0xc9, + 0xfd, 0x39, 0x78, 0xd3, 0xc4, 0xb3, 0xa0, 0x31, 0xdf, 0x9e, 0x95, 0xc3, 0xc8, 0xff, 0xdb, 0xc2, + 0xbe, 0x45, 0xa1, 0x86, 0xb1, 0xb4, 0x86, 0x8b, 0xc3, 0x97, 0x85, 0xdc, 0x89, 0x84, 0x38, 0x49, + 0x86, 0xc7, 0xcf, 0x0f, 0x80, 0xc7, 0x09, 0x38, 0xc6, 0xe2, 0x81, 0xdd, 0x8a, 0xa2, 0x61, 0xf8, + 0xc6, 0x38, 0xe4, 0xeb, 0xa8, 0x8d, 0x9a, 0xae, 0xfa, 0x0e, 0xc6, 0x98, 0x98, 0x01, 0x29, 0x70, + 0x63, 0x91, 0x8c, 0x16, 0x37, 0x7d, 0x96, 0xba, 0xa6, 0xcf, 0x31, 0x66, 0x80, 0x9c, 0xc8, 0x0c, + 0xc8, 0xa6, 0x60, 0x06, 0xe4, 0x06, 0x37, 0x03, 0xf2, 0xfd, 0xcc, 0x00, 0xf5, 0x8d, 0xf9, 0xa4, + 0xbd, 0x04, 0x11, 0xf5, 0xe1, 0x0e, 0xfe, 0xff, 0x23, 0x9b, 0xa4, 0x57, 0xe9, 0xc9, 0x71, 0x32, + 0x2d, 0xfe, 0x91, 0x9c, 0xc2, 0xf2, 0x83, 0x72, 0x2d, 0x5c, 0x1d, 0xbe, 0xaf, 0x97, 0x9f, 0x56, + 0xa9, 0x37, 0xea, 0x78, 0xc4, 0x2f, 0xd5, 0x34, 0x6d, 0x6d, 0x95, 0xac, 0x21, 0x9f, 0x04, 0x25, + 0xa4, 0xa2, 0xad, 0x55, 0xc9, 0xf8, 0xbe, 0xc9, 0x53, 0x5f, 0xa8, 0x54, 0xe7, 0xd7, 0x83, 0x36, + 0x53, 0x5d, 0xa8, 0x15, 0xb6, 0xbc, 0x29, 0x1b, 0x43, 0xdd, 0x1b, 0xa0, 0x69, 0x09, 0xc5, 0xea, + 0xfc, 0xfa, 0x4a, 0xb5, 0xbc, 0x52, 0xab, 0x56, 0x4a, 0x38, 0xbd, 0x5e, 0x6e, 0x14, 0x0c, 0x6f, + 0xa0, 0xe9, 0xb2, 0x28, 0xea, 0xe5, 0xa2, 0x56, 0x5a, 0x2a, 0x6b, 0xa4, 0xc8, 0xfb, 0x94, 0xeb, + 0xe1, 0x4c, 0xb1, 0x5a, 0x6b, 0x78, 0x29, 0xc5, 0xea, 0xbd, 0x8d, 0x7b, 0x57, 0xcb, 0xeb, 0xab, + 0x5a, 0xad, 0x54, 0xae, 0xd7, 0xbd, 0x76, 0x4a, 0xed, 0x8f, 0x42, 0x5b, 0x79, 0x0a, 0xdc, 0xc6, + 0xb0, 0x56, 0x6e, 0xe0, 0x0d, 0xcb, 0x95, 0x1a, 0xf6, 0x59, 0x99, 0x2f, 0xaf, 0x2f, 0x15, 0xeb, + 0xeb, 0x95, 0x6a, 0xa9, 0xb6, 0xb2, 0x5a, 0x6c, 0x54, 0xbc, 0xe6, 0xbc, 0xaa, 0xd5, 0x1a, 0xb5, + 0xf5, 0x73, 0x65, 0xad, 0x5e, 0xa9, 0x55, 0x0b, 0xa6, 0x57, 0x65, 0xa6, 0xfd, 0xfb, 0xfd, 0xb0, + 0xa5, 0x5c, 0x05, 0xa7, 0xfc, 0xf4, 0xe5, 0x9a, 0x27, 0x68, 0xc6, 0x22, 0xe9, 0xa4, 0x6a, 0x91, + 0xfc, 0x8b, 0x04, 0xd9, 0xba, 0x6b, 0x75, 0xd4, 0x9f, 0x0e, 0x3b, 0x98, 0xd3, 0x00, 0x36, 0xde, + 0x7f, 0xf4, 0x66, 0x61, 0x74, 0x5e, 0xc6, 0xa4, 0xa8, 0x7f, 0x20, 0xbc, 0x69, 0x12, 0xf6, 0xd9, + 0x56, 0x27, 0xc2, 0x56, 0xf9, 0xa1, 0xd8, 0x29, 0x92, 0x68, 0x42, 0xc9, 0xf4, 0xfd, 0x97, 0x06, + 0xd9, 0x16, 0x51, 0xe1, 0x24, 0x03, 0x9b, 0x27, 0x7f, 0x5f, 0x25, 0x90, 0x72, 0x39, 0x5c, 0xd6, + 0xa5, 0x5c, 0x58, 0xa7, 0x36, 0x94, 0x9f, 0x82, 0x47, 0x30, 0xea, 0x5d, 0x5e, 0xa9, 0x9d, 0x2b, + 0x07, 0x8a, 0x3c, 0x5f, 0x6c, 0x14, 0x0b, 0x9b, 0xea, 0x17, 0x64, 0xc8, 0xae, 0x58, 0xbb, 0xdd, + 0x7b, 0x55, 0x26, 0xba, 0xc4, 0xac, 0x85, 0xfa, 0xaf, 0xbc, 0xd7, 0xbc, 0x90, 0xd8, 0x57, 0xa2, + 0xf7, 0xa5, 0xbf, 0x2c, 0x25, 0x11, 0xfb, 0xca, 0x41, 0x37, 0xa3, 0xff, 0x7e, 0x10, 0xb1, 0x47, + 0x88, 0x16, 0x29, 0x67, 0xe0, 0x74, 0xf8, 0xa1, 0x32, 0x5f, 0xae, 0x36, 0x2a, 0x0b, 0xf7, 0x86, + 0xc2, 0xad, 0x68, 0x42, 0xe2, 0xef, 0xd7, 0x8d, 0xc5, 0xcf, 0x34, 0x4e, 0xc1, 0xf1, 0xf0, 0xdb, + 0x62, 0xb9, 0xe1, 0x7f, 0xb9, 0x4f, 0x7d, 0x20, 0x07, 0x53, 0xa4, 0x5b, 0x5f, 0xeb, 0xb4, 0x74, + 0x17, 0xa9, 0x8f, 0x0b, 0xd1, 0xbd, 0x01, 0x8e, 0x56, 0x56, 0x17, 0xea, 0x75, 0xd7, 0xb2, 0xf5, + 0x4d, 0x54, 0x6c, 0xb5, 0x6c, 0x2a, 0xad, 0xee, 0x64, 0xf5, 0xbd, 0xc2, 0xeb, 0x7c, 0xfc, 0x50, + 0x42, 0xca, 0x8c, 0x40, 0xfd, 0xeb, 0x42, 0xeb, 0x72, 0x02, 0x04, 0x93, 0xa1, 0x7f, 0xdf, 0x90, + 0xdb, 0x5c, 0x34, 0x2e, 0x1b, 0x67, 0x9e, 0x27, 0xc1, 0x44, 0xc3, 0xd8, 0x46, 0xcf, 0xb4, 0x4c, + 0xe4, 0x28, 0x63, 0x20, 0x2f, 0xae, 0x34, 0x0a, 0x47, 0xbc, 0x07, 0xcf, 0xa8, 0xca, 0xe0, 0x87, + 0xb2, 0x57, 0x80, 0xf7, 0x50, 0x6c, 0x14, 0x64, 0xef, 0x61, 0xa5, 0xdc, 0x28, 0x64, 0xbd, 0x87, + 0x6a, 0xb9, 0x51, 0xc8, 0x79, 0x0f, 0xab, 0xcb, 0x8d, 0x42, 0xde, 0x7b, 0xa8, 0xd4, 0x1b, 0x85, + 0x31, 0xef, 0x61, 0xae, 0xde, 0x28, 0x8c, 0x7b, 0x0f, 0xe7, 0xea, 0x8d, 0xc2, 0x84, 0xf7, 0x50, + 0x6a, 0x34, 0x0a, 0xe0, 0x3d, 0xdc, 0x5d, 0x6f, 0x14, 0x26, 0xbd, 0x87, 0x62, 0xa9, 0x51, 0x98, + 0xc2, 0x0f, 0xe5, 0x46, 0x61, 0xda, 0x7b, 0xa8, 0xd7, 0x1b, 0x85, 0x19, 0x4c, 0xb9, 0xde, 0x28, + 0x1c, 0xc5, 0x65, 0x55, 0x1a, 0x85, 0x82, 0xf7, 0xb0, 0x54, 0x6f, 0x14, 0x8e, 0xe1, 0xcc, 0xf5, + 0x46, 0x41, 0xc1, 0x85, 0xd6, 0x1b, 0x85, 0xcb, 0x70, 0x9e, 0x7a, 0xa3, 0x70, 0x1c, 0x17, 0x51, + 0x6f, 0x14, 0x4e, 0x60, 0x36, 0xca, 0x8d, 0xc2, 0x49, 0x9c, 0x47, 0x6b, 0x14, 0x2e, 0xc7, 0x9f, + 0xaa, 0x8d, 0xc2, 0x29, 0xcc, 0x58, 0xb9, 0x51, 0xb8, 0x02, 0x3f, 0x68, 0x8d, 0x82, 0x8a, 0x3f, + 0x15, 0x1b, 0x85, 0x2b, 0xd5, 0x47, 0xc0, 0xc4, 0x22, 0x72, 0x09, 0x88, 0x6a, 0x01, 0xe4, 0x45, + 0xe4, 0xb2, 0x66, 0xfc, 0x37, 0x65, 0xb8, 0x9c, 0x4e, 0xfd, 0x16, 0x6c, 0x6b, 0x7b, 0x19, 0x6d, + 0xea, 0xcd, 0xbd, 0xf2, 0xfd, 0x9e, 0x09, 0xc5, 0xee, 0xcb, 0x2a, 0x90, 0xed, 0x84, 0x9d, 0x11, + 0x7e, 0x8e, 0xb5, 0x38, 0xfd, 0xc5, 0x28, 0x39, 0x5c, 0x8c, 0xa2, 0x16, 0xd9, 0x3f, 0xb1, 0x1a, + 0xcd, 0xad, 0x1f, 0x67, 0xba, 0xd6, 0x8f, 0xbd, 0x66, 0xd2, 0x41, 0xb6, 0x63, 0x99, 0x7a, 0xbb, + 0x4e, 0x37, 0xee, 0xc9, 0xaa, 0x57, 0x77, 0xb2, 0xf2, 0x54, 0xbf, 0x65, 0x10, 0xab, 0xec, 0xc9, + 0x71, 0x33, 0xdc, 0xee, 0x6a, 0x46, 0x34, 0x92, 0xcf, 0x04, 0x8d, 0xa4, 0xc1, 0x35, 0x92, 0xbb, + 0x0e, 0x40, 0x3b, 0x59, 0x7b, 0xa9, 0x0c, 0x36, 0xb5, 0x08, 0xdd, 0x5a, 0xfd, 0xe5, 0x6a, 0x59, + 0xfd, 0x82, 0x04, 0x27, 0xcb, 0x66, 0x2f, 0x0b, 0x9f, 0xd5, 0x85, 0xb7, 0xb1, 0xd0, 0xac, 0xf2, + 0x22, 0xbd, 0xad, 0x67, 0xb5, 0x7b, 0xd3, 0x8c, 0x90, 0xe8, 0x67, 0x03, 0x89, 0xd6, 0x39, 0x89, + 0xde, 0x39, 0x38, 0xe9, 0x64, 0x02, 0xad, 0x0e, 0xb5, 0x03, 0xca, 0xaa, 0xdf, 0xc9, 0xc2, 0x23, + 0x88, 0xef, 0x0d, 0xe5, 0x90, 0xb4, 0xb2, 0xa2, 0xd9, 0xd2, 0x90, 0xe3, 0xea, 0xb6, 0xcb, 0x9d, + 0x87, 0xee, 0x9a, 0x4a, 0x65, 0x52, 0x98, 0x4a, 0x49, 0x7d, 0xa7, 0x52, 0xea, 0x7b, 0x58, 0xf3, + 0xe1, 0x3c, 0x8f, 0x71, 0xb1, 0x77, 0xff, 0x1f, 0x57, 0xc3, 0x28, 0xa8, 0x03, 0xbb, 0xe2, 0x67, + 0x39, 0xa8, 0x17, 0x0e, 0x5c, 0x42, 0x32, 0xc4, 0xff, 0x60, 0xb8, 0x76, 0x5e, 0x96, 0xfd, 0xc6, + 0x1b, 0x25, 0x85, 0x56, 0xaa, 0x06, 0xfa, 0xe7, 0xc6, 0x60, 0x02, 0xb7, 0x85, 0x65, 0xc3, 0xbc, + 0xa8, 0x3e, 0x28, 0xc3, 0x54, 0x15, 0x5d, 0x2a, 0x6d, 0xe9, 0xed, 0x36, 0x32, 0x37, 0x11, 0x6b, + 0xb6, 0x9f, 0x82, 0x31, 0xbd, 0xd3, 0xa9, 0x86, 0xfb, 0x0c, 0xfe, 0x2b, 0xed, 0x7f, 0xbf, 0xdd, + 0xb3, 0x91, 0x67, 0x62, 0x1a, 0x79, 0x50, 0xee, 0x2c, 0x5b, 0x66, 0xc4, 0x0c, 0xf9, 0x1a, 0x98, + 0x6c, 0xfa, 0x59, 0x82, 0x73, 0x13, 0x6c, 0x92, 0xfa, 0xb7, 0x89, 0xba, 0x01, 0xa1, 0xc2, 0x93, + 0x29, 0x05, 0x1a, 0xb2, 0x1d, 0x72, 0x02, 0x8e, 0x35, 0x6a, 0xb5, 0xf5, 0x95, 0x62, 0xf5, 0xde, + 0xf0, 0xbc, 0xf2, 0x86, 0xfa, 0xea, 0x2c, 0xcc, 0xd4, 0xad, 0xf6, 0x2e, 0x0a, 0x61, 0xaa, 0x70, + 0x0e, 0x39, 0xac, 0x9c, 0x32, 0xfb, 0xe4, 0xa4, 0x9c, 0x84, 0xbc, 0x6e, 0x3a, 0x97, 0x90, 0x6f, + 0x1b, 0xd2, 0x37, 0x0a, 0xe3, 0x47, 0xd8, 0x76, 0xac, 0xf1, 0x30, 0xde, 0xde, 0x47, 0x92, 0x3c, + 0x57, 0x11, 0x40, 0x9e, 0x81, 0x29, 0x87, 0x6c, 0x16, 0x36, 0x98, 0x3d, 0x61, 0x2e, 0x0d, 0xb3, + 0x48, 0x76, 0xab, 0x65, 0xca, 0x22, 0x7e, 0x53, 0x1f, 0x0c, 0x9a, 0xff, 0x1a, 0x07, 0x71, 0xf1, + 0x20, 0x8c, 0x25, 0x03, 0xf9, 0xb5, 0xc3, 0x9e, 0xe1, 0x9d, 0x82, 0xe3, 0xb4, 0xd5, 0xae, 0x97, + 0x96, 0x8a, 0xcb, 0xcb, 0xe5, 0xea, 0x62, 0x79, 0xbd, 0x32, 0x4f, 0xb6, 0x2a, 0xc2, 0x94, 0x62, + 0xa3, 0x51, 0x5e, 0x59, 0x6d, 0xd4, 0xd7, 0xcb, 0x4f, 0x2b, 0x95, 0xcb, 0xf3, 0xd8, 0x25, 0x0e, + 0x9f, 0x69, 0xf1, 0x9d, 0x17, 0x8b, 0xd5, 0xfa, 0xf9, 0xb2, 0x56, 0xd8, 0x3a, 0x53, 0x84, 0x49, + 0xa6, 0x9f, 0xf7, 0xb8, 0x9b, 0x47, 0x1b, 0xfa, 0x4e, 0x9b, 0xda, 0x6a, 0x85, 0x23, 0x1e, 0x77, + 0x58, 0x36, 0x35, 0xb3, 0xbd, 0x57, 0xc8, 0x28, 0x05, 0x98, 0x62, 0xbb, 0xf4, 0x82, 0xa4, 0xbe, + 0xf3, 0x2a, 0x98, 0x38, 0x6f, 0xd9, 0x17, 0xb1, 0x1f, 0x97, 0xfa, 0x01, 0x12, 0xd7, 0xc4, 0x3f, + 0x21, 0xca, 0x0c, 0xec, 0xaf, 0x15, 0xf7, 0x16, 0xf0, 0xa9, 0xcd, 0xf6, 0x3d, 0x05, 0x7a, 0x0d, + 0x4c, 0x5e, 0xf2, 0x73, 0x87, 0x2d, 0x9d, 0x49, 0x52, 0xff, 0x9b, 0xd8, 0xfe, 0x7f, 0xff, 0x22, + 0xd3, 0xdf, 0x9f, 0x7e, 0x87, 0x04, 0xf9, 0x45, 0xe4, 0x16, 0xdb, 0x6d, 0x56, 0x6e, 0x2f, 0x17, + 0x3e, 0xd9, 0xc3, 0x55, 0xa2, 0xd8, 0x6e, 0x47, 0x37, 0x2a, 0x46, 0x40, 0xbe, 0x07, 0x3a, 0x97, + 0x26, 0xe8, 0x37, 0xd7, 0xa7, 0xc0, 0xf4, 0x25, 0xf6, 0x31, 0x39, 0xd8, 0xe3, 0x7e, 0x88, 0xb1, + 0x72, 0x1e, 0x1b, 0xc6, 0xb4, 0xc9, 0xc4, 0xef, 0x95, 0xfb, 0xf9, 0x94, 0x7b, 0x60, 0x6c, 0xc7, + 0x41, 0x25, 0xdd, 0x41, 0x98, 0xb7, 0xee, 0x9a, 0xd6, 0x2e, 0xdc, 0x87, 0x9a, 0xee, 0x6c, 0x65, + 0xdb, 0x33, 0xa8, 0xd7, 0x48, 0xc6, 0x20, 0x4c, 0x0c, 0x7d, 0xd7, 0x7c, 0x0a, 0xde, 0xa4, 0xe4, + 0x92, 0xe1, 0x6e, 0x95, 0xb6, 0x74, 0x97, 0xae, 0x6d, 0x07, 0xef, 0xea, 0x8b, 0x07, 0x80, 0x33, + 0x76, 0x2f, 0x38, 0xf2, 0x80, 0x60, 0x62, 0x10, 0x87, 0xb0, 0x81, 0x3b, 0x08, 0x88, 0xff, 0x20, + 0x41, 0xb6, 0xd6, 0x41, 0xa6, 0xf0, 0x69, 0x98, 0x40, 0xb6, 0x52, 0x97, 0x6c, 0x1f, 0x14, 0xf7, + 0x0e, 0x0b, 0x2a, 0xed, 0x95, 0x1c, 0x21, 0xd9, 0xb3, 0x90, 0x35, 0xcc, 0x0d, 0x8b, 0x1a, 0xa6, + 0x57, 0x46, 0x6c, 0x02, 0x55, 0xcc, 0x0d, 0x4b, 0xc3, 0x19, 0x45, 0x1d, 0xc3, 0xe2, 0xca, 0x4e, + 0x5f, 0xdc, 0xdf, 0x1d, 0x87, 0x3c, 0x51, 0x67, 0xf5, 0x65, 0x32, 0xc8, 0xc5, 0x56, 0x2b, 0x42, + 0xf0, 0xd2, 0x3e, 0xc1, 0x5b, 0xf8, 0xb7, 0x00, 0x93, 0xe0, 0x9d, 0x0f, 0x66, 0x22, 0xd8, 0xb7, + 0xd3, 0x26, 0x55, 0x6c, 0xb5, 0xa2, 0x7d, 0x50, 0x83, 0x02, 0x25, 0xbe, 0x40, 0xb6, 0x85, 0xcb, + 0x62, 0x2d, 0x3c, 0xf1, 0x40, 0x10, 0xc9, 0x5f, 0xfa, 0x10, 0xfd, 0x93, 0x04, 0x63, 0xcb, 0x86, + 0xe3, 0x7a, 0xd8, 0x14, 0x45, 0xb0, 0xb9, 0x0a, 0x26, 0x7c, 0xd1, 0x78, 0x5d, 0x9e, 0xd7, 0x9f, + 0x87, 0x09, 0xea, 0x1b, 0x58, 0x74, 0xee, 0xe6, 0xd1, 0x79, 0x7c, 0x7c, 0xed, 0x29, 0x17, 0xd1, + 0xa7, 0x0c, 0xc2, 0x62, 0xa5, 0xee, 0x62, 0x7f, 0x3b, 0x10, 0xf8, 0x0a, 0x27, 0xf0, 0x5b, 0x07, + 0x29, 0x32, 0x7d, 0xa1, 0x7f, 0x51, 0x02, 0xf0, 0xca, 0xa6, 0x47, 0xb9, 0x1e, 0xc5, 0x1d, 0xd0, + 0x8e, 0x91, 0xee, 0xab, 0x59, 0xe9, 0xae, 0xf0, 0xd2, 0x7d, 0x62, 0xff, 0xaa, 0xc6, 0x1d, 0xd9, + 0x52, 0x0a, 0x20, 0x1b, 0x81, 0x68, 0xbd, 0x47, 0xf5, 0x1d, 0x81, 0x50, 0x57, 0x39, 0xa1, 0xde, + 0x3e, 0x60, 0x49, 0xe9, 0xcb, 0xf5, 0x2f, 0x25, 0x18, 0xab, 0x23, 0xd7, 0xeb, 0x26, 0xd5, 0x73, + 0x22, 0x3d, 0x3c, 0xd3, 0xb6, 0x25, 0xc1, 0xb6, 0xfd, 0x83, 0x8c, 0x68, 0xa0, 0x97, 0x50, 0x32, + 0x94, 0xa7, 0x88, 0xc5, 0x83, 0x87, 0x84, 0x02, 0xbd, 0xf4, 0xa3, 0x96, 0xbe, 0x74, 0xdf, 0x26, + 0x05, 0x1b, 0xf3, 0xfc, 0x49, 0x0b, 0xd6, 0x2c, 0xce, 0xec, 0x37, 0x8b, 0xc5, 0x4f, 0x5a, 0xb0, + 0x75, 0x8c, 0xde, 0x95, 0x4e, 0x6c, 0x6c, 0x0c, 0x61, 0xc3, 0x78, 0x10, 0x79, 0x3d, 0x5b, 0x86, + 0x3c, 0x5d, 0x59, 0xbe, 0x33, 0x7e, 0x65, 0xb9, 0xff, 0xd4, 0xe2, 0xfd, 0x03, 0x98, 0x72, 0x71, + 0xcb, 0xbd, 0x01, 0x1b, 0x12, 0xc3, 0xc6, 0x4d, 0x90, 0xc3, 0x91, 0x28, 0xe9, 0x38, 0x17, 0xee, + 0xf5, 0xfb, 0x24, 0xca, 0xde, 0x57, 0x8d, 0x64, 0x4a, 0x8c, 0xc2, 0x10, 0x56, 0x88, 0x07, 0x41, + 0xe1, 0x3d, 0x5f, 0xc8, 0x04, 0x46, 0xc8, 0xfb, 0xb3, 0xd4, 0xfc, 0xfb, 0x14, 0x1f, 0x13, 0xa3, + 0x69, 0x99, 0x2e, 0xba, 0x9f, 0x59, 0x93, 0x0f, 0x12, 0x62, 0x2d, 0x83, 0x53, 0x30, 0xe6, 0xda, + 0xec, 0x3a, 0xbd, 0xff, 0xca, 0xf6, 0x38, 0x39, 0xbe, 0xc7, 0xa9, 0xc2, 0x19, 0xc3, 0x6c, 0xb6, + 0x77, 0x5a, 0x48, 0x43, 0x6d, 0xdd, 0xab, 0x95, 0x53, 0x74, 0xe6, 0x51, 0x07, 0x99, 0x2d, 0x64, + 0xba, 0x84, 0x4f, 0xdf, 0x27, 0x57, 0x20, 0xa7, 0xfa, 0x2d, 0x56, 0x31, 0xee, 0xe0, 0x15, 0xe3, + 0x51, 0xbd, 0xe6, 0x15, 0x31, 0x46, 0xe8, 0xad, 0x00, 0xa4, 0x6e, 0xe7, 0x0c, 0x74, 0x89, 0x76, + 0x88, 0x57, 0x74, 0x99, 0xa2, 0xb5, 0x20, 0x83, 0xc6, 0x64, 0x56, 0xbf, 0x16, 0x28, 0xc3, 0x5d, + 0x9c, 0x32, 0xdc, 0x24, 0xc8, 0x42, 0x32, 0x3d, 0xe8, 0x0c, 0xb0, 0xd6, 0x31, 0x0d, 0x13, 0xe1, + 0x0a, 0xa5, 0xac, 0x5c, 0x01, 0x27, 0x7c, 0x9f, 0x87, 0x6a, 0xb9, 0x3c, 0x5f, 0x5f, 0x5f, 0x5b, + 0x5d, 0xd4, 0x8a, 0xf3, 0xe5, 0x02, 0x28, 0x0a, 0xcc, 0xd4, 0xe6, 0xee, 0x2e, 0x97, 0x1a, 0x81, + 0xab, 0x42, 0x56, 0xfd, 0x0b, 0x09, 0x72, 0xd8, 0xa1, 0x5c, 0x7d, 0xfa, 0x90, 0x34, 0xc7, 0xe1, + 0x76, 0x78, 0x82, 0x89, 0x94, 0x78, 0xac, 0x4a, 0x2a, 0x4c, 0xcc, 0xd5, 0x81, 0x62, 0x55, 0xc6, + 0x10, 0x4a, 0xbf, 0x79, 0x7a, 0x4d, 0xb2, 0xbe, 0x65, 0x5d, 0xfa, 0x49, 0x6e, 0x92, 0x5e, 0xfd, + 0x0f, 0xb9, 0x49, 0xf6, 0x60, 0x61, 0xe4, 0x4d, 0xb2, 0x47, 0xbb, 0x8b, 0x69, 0xa6, 0xea, 0xb3, + 0x72, 0xc1, 0x82, 0xcc, 0xf3, 0xa4, 0x03, 0x2d, 0xc8, 0x14, 0x61, 0xda, 0x30, 0x5d, 0x64, 0x9b, + 0x7a, 0x7b, 0xa1, 0xad, 0x6f, 0xfa, 0x07, 0xe8, 0xbb, 0x67, 0xe1, 0x15, 0x26, 0x8f, 0xc6, 0xff, + 0xa1, 0x9c, 0x06, 0x70, 0xd1, 0x76, 0xa7, 0xad, 0xbb, 0xa1, 0xea, 0x31, 0x29, 0xac, 0xf6, 0x65, + 0x79, 0xed, 0xbb, 0x19, 0x2e, 0x23, 0xa0, 0x35, 0xf6, 0x3a, 0x68, 0xcd, 0x34, 0x9e, 0xb1, 0x83, + 0x43, 0x28, 0x11, 0x1d, 0xed, 0xf5, 0x89, 0x5b, 0x96, 0xc8, 0x77, 0x2d, 0x4b, 0xfc, 0x83, 0xf0, + 0xd1, 0x4c, 0xbf, 0xd5, 0xf7, 0x39, 0x9a, 0x19, 0xb4, 0x34, 0xb9, 0xab, 0xa5, 0x05, 0xc6, 0x42, + 0x56, 0xc0, 0x58, 0x60, 0x51, 0xc9, 0x09, 0x1a, 0xda, 0xaf, 0x17, 0x3a, 0xfb, 0x19, 0x57, 0x8d, + 0x11, 0x4c, 0xe4, 0x64, 0x98, 0x21, 0x45, 0xcf, 0x59, 0xd6, 0xc5, 0x6d, 0xdd, 0xbe, 0xa8, 0xda, + 0x07, 0x52, 0xc5, 0xd8, 0x35, 0x91, 0xc8, 0x85, 0xbe, 0xcf, 0xb2, 0xa8, 0x2f, 0xf2, 0xa8, 0x3f, + 0x36, 0x5a, 0x5c, 0x3e, 0xcf, 0xa3, 0x59, 0x14, 0x79, 0x4b, 0x80, 0xe7, 0xdd, 0x1c, 0x9e, 0x4f, + 0x48, 0xcc, 0x60, 0xfa, 0xb8, 0xfe, 0x51, 0x80, 0xab, 0xdf, 0xd1, 0xb3, 0xf3, 0xc9, 0x61, 0xe2, + 0xaa, 0x7e, 0x7d, 0x30, 0xec, 0x7c, 0xbe, 0x06, 0xc0, 0xae, 0x00, 0xf2, 0xc5, 0x60, 0x0b, 0xcb, + 0x7b, 0x64, 0x2b, 0x94, 0x4d, 0x0f, 0xcd, 0x08, 0x96, 0x47, 0x82, 0xe6, 0x71, 0x9e, 0x85, 0x5a, + 0x27, 0x55, 0x4c, 0xbf, 0x2a, 0xbc, 0x4e, 0xd3, 0x53, 0x40, 0x84, 0xbb, 0xd1, 0xb4, 0x4a, 0xb1, + 0x45, 0x1e, 0x71, 0x36, 0xd3, 0x47, 0xf3, 0x45, 0x39, 0x98, 0xf0, 0x0f, 0xcf, 0xe2, 0xd8, 0xee, + 0x01, 0x86, 0x27, 0x21, 0xef, 0x58, 0x3b, 0x76, 0x13, 0xd1, 0x95, 0x33, 0xfa, 0x36, 0xc0, 0x2a, + 0x4f, 0xdf, 0xf1, 0x7c, 0x9f, 0xc9, 0x90, 0x4d, 0x6c, 0x32, 0x44, 0x1b, 0xa4, 0x71, 0x03, 0xfc, + 0x8b, 0x85, 0x03, 0x72, 0x72, 0x98, 0xd5, 0x91, 0xfb, 0x70, 0x1c, 0xe3, 0x7f, 0x5f, 0x68, 0x0d, + 0xa1, 0x4f, 0x4d, 0x92, 0xa9, 0x5c, 0x6d, 0x00, 0x43, 0xf5, 0x4a, 0xb8, 0xdc, 0xcf, 0x41, 0x2d, + 0x54, 0x6c, 0x91, 0xae, 0x69, 0xcb, 0x05, 0x59, 0x7d, 0x76, 0x16, 0x0a, 0x84, 0xb5, 0x5a, 0x60, + 0xac, 0xa9, 0x2f, 0xcf, 0x1c, 0xb6, 0x45, 0x1a, 0x3d, 0xc5, 0xfc, 0xbc, 0x24, 0x1a, 0xf4, 0x8b, + 0x13, 0x7c, 0x58, 0xbb, 0x08, 0x4d, 0x1a, 0xa0, 0x99, 0xc5, 0x28, 0x9f, 0xfa, 0x5b, 0x19, 0x91, + 0x18, 0x62, 0x62, 0x2c, 0xa6, 0xdf, 0x2b, 0x7d, 0x29, 0xeb, 0xc7, 0x40, 0x58, 0xb0, 0xad, 0xed, + 0x35, 0xbb, 0xad, 0xfe, 0x9f, 0x42, 0x21, 0x1a, 0x23, 0xcc, 0x7f, 0x29, 0xda, 0xfc, 0x2f, 0x80, + 0xbc, 0x63, 0xb7, 0xfd, 0xe1, 0x7b, 0xc7, 0x6e, 0x0f, 0x30, 0x7c, 0x2b, 0xd7, 0xc3, 0x8c, 0xde, + 0x6a, 0xad, 0xea, 0x9b, 0xa8, 0xe4, 0xcd, 0xab, 0x4d, 0x97, 0x9e, 0x8f, 0xee, 0x4a, 0x8d, 0xed, + 0x8a, 0xbe, 0x25, 0xbc, 0x13, 0xc7, 0x81, 0x44, 0xe5, 0x33, 0x92, 0xe1, 0xcd, 0x1b, 0x12, 0x9a, + 0x5b, 0x7a, 0x18, 0xad, 0x81, 0xbe, 0x09, 0xee, 0xd0, 0x09, 0xf0, 0x9d, 0xbe, 0x66, 0xfd, 0xae, + 0x04, 0x63, 0x9e, 0xbc, 0x8b, 0xad, 0x96, 0xfa, 0x48, 0x2e, 0xa8, 0x49, 0xe4, 0x1e, 0xe9, 0x0b, + 0x84, 0x37, 0xa7, 0xfd, 0x1a, 0x12, 0xfa, 0x11, 0x98, 0x84, 0x42, 0x94, 0x38, 0x21, 0x8a, 0xed, + 0x41, 0xc7, 0x16, 0x91, 0xbe, 0xf8, 0x3e, 0x23, 0xc1, 0xb4, 0x3f, 0x8f, 0x58, 0x40, 0x6e, 0x73, + 0x4b, 0xbd, 0x55, 0x74, 0xa1, 0x89, 0xb6, 0x34, 0x29, 0x68, 0x69, 0xea, 0x8f, 0x32, 0x09, 0x55, + 0x9e, 0x2b, 0x39, 0x62, 0x95, 0x2e, 0x91, 0x2e, 0xc6, 0x11, 0x4c, 0x5f, 0x98, 0x5f, 0x93, 0x00, + 0x1a, 0x56, 0x30, 0xd7, 0x3d, 0x80, 0x24, 0x5f, 0x2a, 0x7c, 0x5f, 0x02, 0xad, 0x78, 0x58, 0x6c, + 0xf2, 0x9e, 0x43, 0x70, 0x8b, 0xad, 0x5f, 0x49, 0x23, 0x69, 0xeb, 0x13, 0xf3, 0x3b, 0x9d, 0xb6, + 0xd1, 0xd4, 0xdd, 0xee, 0x7d, 0xe1, 0x68, 0xf1, 0xe2, 0x8b, 0x8f, 0x12, 0x19, 0x85, 0x41, 0x19, + 0x11, 0xb2, 0x24, 0x87, 0x6d, 0x25, 0xff, 0xb0, 0xad, 0xe0, 0x5e, 0x4f, 0x1f, 0xe2, 0x23, 0x50, + 0x4f, 0x19, 0x8e, 0xd6, 0x3a, 0xc8, 0x9c, 0xb3, 0x91, 0xde, 0x6a, 0xda, 0x3b, 0xdb, 0x17, 0x1c, + 0xd6, 0xa9, 0x21, 0x5e, 0x47, 0x99, 0xa5, 0x63, 0x89, 0x5b, 0x3a, 0x56, 0x9f, 0x2b, 0x8b, 0x1e, + 0xfd, 0x66, 0x36, 0x38, 0x18, 0x1e, 0x06, 0x18, 0xea, 0x12, 0x6d, 0xc5, 0x75, 0xad, 0x12, 0x67, + 0x93, 0xac, 0x12, 0xbf, 0x55, 0xe8, 0x20, 0xb9, 0x50, 0xbd, 0x46, 0xb2, 0xa3, 0x3a, 0x53, 0x47, + 0x6e, 0x04, 0xbc, 0xd7, 0xc1, 0xf4, 0x85, 0xf0, 0x4b, 0x00, 0x31, 0x9f, 0xd8, 0xc3, 0xcf, 0xe1, + 0x6d, 0x49, 0x57, 0x60, 0x78, 0x16, 0x22, 0xd0, 0x0d, 0x10, 0x94, 0x44, 0x36, 0x53, 0x13, 0x2d, + 0xa7, 0xc4, 0x96, 0x9f, 0x3e, 0x0a, 0x9f, 0x90, 0x60, 0x12, 0x5f, 0xe7, 0x34, 0xb7, 0x87, 0xbd, + 0xf3, 0x05, 0x8d, 0x92, 0x17, 0xb1, 0x62, 0x56, 0x20, 0xdb, 0x36, 0xcc, 0x8b, 0xfe, 0x2e, 0xb8, + 0xf7, 0x1c, 0x5e, 0x0e, 0x22, 0xf5, 0xb8, 0x1c, 0x24, 0xd8, 0xa7, 0x08, 0xca, 0x3d, 0xd0, 0x6d, + 0x75, 0x7d, 0xc9, 0xa5, 0x2f, 0xc6, 0xbf, 0xcb, 0x42, 0xbe, 0x8e, 0x74, 0xbb, 0xb9, 0xa5, 0xbe, + 0x5f, 0xea, 0x39, 0x55, 0x18, 0xe7, 0xa7, 0x0a, 0x0b, 0x30, 0xb6, 0x61, 0xb4, 0x5d, 0x64, 0x13, + 0xcf, 0x20, 0xb6, 0x6b, 0x27, 0x4d, 0x7c, 0xae, 0x6d, 0x35, 0x2f, 0xce, 0x52, 0xd3, 0x7d, 0xd6, + 0x0f, 0x26, 0x35, 0xbb, 0x80, 0x7f, 0xd2, 0xfc, 0x9f, 0x3d, 0x83, 0xd0, 0xb1, 0x6c, 0x37, 0x2a, + 0x4e, 0x70, 0x04, 0x95, 0xba, 0x65, 0xbb, 0x1a, 0xf9, 0xd1, 0x83, 0x79, 0x63, 0xa7, 0xdd, 0x6e, + 0xa0, 0xfb, 0x5d, 0x7f, 0xda, 0xe6, 0xbf, 0x7b, 0xc6, 0xa2, 0xb5, 0xb1, 0xe1, 0x20, 0xb2, 0x68, + 0x90, 0xd3, 0xe8, 0x9b, 0x72, 0x1c, 0x72, 0x6d, 0x63, 0xdb, 0x20, 0x13, 0x8d, 0x9c, 0x46, 0x5e, + 0x94, 0x1b, 0xa1, 0x10, 0xce, 0x71, 0x08, 0xa3, 0xa7, 0xf2, 0xb8, 0x69, 0xee, 0x4b, 0xf7, 0x74, + 0xe6, 0x22, 0xda, 0x73, 0x4e, 0x8d, 0xe1, 0xef, 0xf8, 0x99, 0x77, 0xc3, 0x14, 0xd9, 0xef, 0x20, + 0x12, 0x8f, 0x9e, 0xc1, 0xda, 0xa8, 0x69, 0xd9, 0x2d, 0x5f, 0x36, 0xd1, 0x13, 0x0c, 0x9a, 0x2f, + 0xd9, 0x2e, 0x45, 0xcf, 0xc2, 0x47, 0xe0, 0x02, 0x91, 0xf7, 0xba, 0x4d, 0xaf, 0xe8, 0xf3, 0x86, + 0xbb, 0xb5, 0x82, 0x5c, 0x5d, 0xfd, 0x3b, 0xb9, 0xa7, 0xc6, 0x4d, 0xfe, 0x7f, 0x1a, 0xd7, 0x47, + 0xe3, 0x48, 0x98, 0x00, 0x77, 0xc7, 0x36, 0x3d, 0x39, 0xd2, 0xc0, 0x5c, 0x4c, 0x8a, 0x72, 0x3b, + 0x5c, 0x11, 0xbe, 0xf9, 0x4b, 0xa5, 0xf3, 0x74, 0xda, 0x3a, 0x81, 0xb3, 0x47, 0x67, 0x50, 0x56, + 0xe1, 0x5a, 0xf2, 0x71, 0xa9, 0xb1, 0xb2, 0xbc, 0x64, 0x6c, 0x6e, 0xb5, 0x8d, 0xcd, 0x2d, 0xd7, + 0xa9, 0x98, 0x8e, 0x8b, 0xf4, 0x56, 0x6d, 0x43, 0x23, 0x11, 0xbe, 0x01, 0xd3, 0x11, 0xc9, 0xca, + 0x7b, 0x0e, 0x89, 0x8d, 0x6e, 0xac, 0xa6, 0x44, 0xb4, 0x94, 0x27, 0x78, 0x2d, 0xc5, 0xd9, 0x69, + 0x07, 0x98, 0x5e, 0xd5, 0x85, 0x69, 0xa8, 0xea, 0x3b, 0x6d, 0xdc, 0x5c, 0x70, 0xe6, 0xa4, 0xe3, + 0x5c, 0x0c, 0x27, 0xe9, 0x37, 0x9b, 0xff, 0x27, 0x0f, 0xb9, 0x45, 0x5b, 0xef, 0x6c, 0xa9, 0xcf, + 0x66, 0xfa, 0xe7, 0x61, 0xb5, 0x89, 0x40, 0x3b, 0xa5, 0x7e, 0xda, 0x29, 0xf7, 0xd1, 0xce, 0x2c, + 0xa3, 0x9d, 0xd1, 0x8b, 0xca, 0x67, 0x60, 0xaa, 0x69, 0xb5, 0xdb, 0xa8, 0xe9, 0xc9, 0xa3, 0xd2, + 0xc2, 0xab, 0x39, 0x13, 0x1a, 0x97, 0x86, 0x03, 0xee, 0x21, 0xb7, 0x4e, 0xd6, 0xd0, 0x89, 0xd2, + 0x87, 0x09, 0xea, 0xcb, 0x25, 0xc8, 0x96, 0x5b, 0x9b, 0x88, 0x5b, 0x67, 0xcf, 0x30, 0xeb, 0xec, + 0x27, 0x21, 0xef, 0xea, 0xf6, 0x26, 0x72, 0xfd, 0x75, 0x02, 0xf2, 0x16, 0xc4, 0x01, 0x94, 0x99, + 0x38, 0x80, 0x4f, 0x84, 0xac, 0x27, 0x33, 0x1a, 0x61, 0xe7, 0xda, 0x5e, 0xf0, 0x63, 0xd9, 0xcf, + 0x7a, 0x25, 0xce, 0x7a, 0xb5, 0xd6, 0xf0, 0x0f, 0xdd, 0x58, 0xe7, 0xf6, 0x61, 0x8d, 0x2f, 0x2b, + 0x6a, 0x5a, 0x66, 0x65, 0x5b, 0xdf, 0x44, 0xb4, 0x9a, 0x61, 0x82, 0xff, 0xb5, 0xbc, 0x6d, 0xdd, + 0x67, 0xd0, 0x90, 0x7c, 0x61, 0x82, 0x57, 0x85, 0x2d, 0xa3, 0xd5, 0x42, 0x26, 0x6d, 0xd9, 0xf4, + 0xed, 0xcc, 0x69, 0xc8, 0x7a, 0x3c, 0x78, 0xfa, 0xe3, 0x19, 0x0b, 0x85, 0x23, 0xca, 0x94, 0xd7, + 0xac, 0x48, 0xe3, 0x2d, 0x64, 0xf8, 0x35, 0x55, 0x11, 0xb7, 0x1d, 0x52, 0xb9, 0xde, 0x8d, 0xeb, + 0x31, 0x90, 0x33, 0xad, 0x16, 0xea, 0x3b, 0x08, 0x91, 0x5c, 0xca, 0xe3, 0x21, 0x87, 0x5a, 0x5e, + 0xaf, 0x20, 0xe3, 0xec, 0xa7, 0xe3, 0x65, 0xa9, 0x91, 0xcc, 0xc9, 0x7c, 0x83, 0x7a, 0x71, 0x9b, + 0x7e, 0x03, 0xfc, 0xe5, 0x31, 0x38, 0x4a, 0xfa, 0x80, 0xfa, 0xce, 0x05, 0x8f, 0xd4, 0x05, 0xa4, + 0x3e, 0xd4, 0x7b, 0xe0, 0x3a, 0xca, 0x2b, 0xfb, 0x71, 0xc8, 0x39, 0x3b, 0x17, 0x02, 0x23, 0x94, + 0xbc, 0xb0, 0x4d, 0x57, 0x1a, 0xca, 0x70, 0x26, 0x0f, 0x3a, 0x9c, 0x71, 0x43, 0x93, 0xec, 0x37, + 0xfe, 0x70, 0x20, 0xcb, 0xe3, 0x64, 0x7f, 0x20, 0xeb, 0x35, 0x0c, 0x9d, 0x82, 0x31, 0x7d, 0xc3, + 0x45, 0x76, 0x68, 0x26, 0xd2, 0x57, 0x6f, 0xa8, 0xbc, 0x80, 0x36, 0x2c, 0xdb, 0x13, 0xcb, 0x04, + 0x19, 0x2a, 0xfd, 0x77, 0xa6, 0xe5, 0x02, 0xb7, 0x43, 0x76, 0x13, 0x1c, 0x33, 0xad, 0x79, 0xd4, + 0xa1, 0x72, 0x26, 0x28, 0x4e, 0xe3, 0x16, 0xb0, 0xff, 0xc3, 0xbe, 0xae, 0x64, 0x66, 0x7f, 0x57, + 0xa2, 0x7e, 0x2e, 0xe9, 0x9c, 0xb9, 0x0b, 0xe8, 0xa1, 0x59, 0x68, 0xca, 0x93, 0x61, 0xaa, 0x45, + 0x5d, 0xb4, 0x9a, 0x46, 0xd0, 0x4a, 0x22, 0xff, 0xe3, 0x32, 0x87, 0x8a, 0x94, 0x65, 0x15, 0x69, + 0x11, 0xc6, 0xf1, 0x81, 0x1c, 0x4f, 0x93, 0x72, 0x5d, 0xf1, 0x0a, 0xf1, 0xb4, 0x2e, 0xa8, 0x14, + 0x23, 0xb6, 0xd9, 0x12, 0xfd, 0x45, 0x0b, 0x7e, 0x4e, 0x36, 0xfb, 0x8e, 0x97, 0x50, 0xfa, 0xcd, + 0xf1, 0xb7, 0xf3, 0x70, 0x45, 0xc9, 0xb6, 0x1c, 0x07, 0x47, 0xa1, 0xe8, 0x6e, 0x98, 0x6f, 0x96, + 0xb8, 0x88, 0xc0, 0x0f, 0xeb, 0xe6, 0xd7, 0xab, 0x41, 0x8d, 0xae, 0x69, 0x7c, 0x4b, 0xf8, 0x28, + 0x73, 0xb0, 0xff, 0x10, 0x21, 0xf4, 0x9f, 0x8c, 0x46, 0xf2, 0x9e, 0x8c, 0xc8, 0xe9, 0xea, 0x84, + 0xb2, 0x4a, 0xbf, 0xb9, 0x7c, 0x55, 0x82, 0x2b, 0xbb, 0xb9, 0x59, 0x33, 0x9d, 0xa0, 0xc1, 0x5c, + 0xdd, 0xa7, 0xbd, 0xf0, 0xa7, 0x71, 0x63, 0xef, 0xe2, 0x89, 0xa8, 0x3b, 0x53, 0x5a, 0xc4, 0x62, + 0xc9, 0xfb, 0x32, 0x22, 0x77, 0xf1, 0x24, 0x26, 0x9f, 0xbe, 0x70, 0x3f, 0x9f, 0x85, 0xa3, 0x8b, + 0xb6, 0xb5, 0xd3, 0x71, 0xc2, 0x1e, 0xe8, 0xaf, 0x7b, 0x6f, 0xb8, 0xe6, 0x45, 0x4c, 0x83, 0x6b, + 0x60, 0xd2, 0xa6, 0xd6, 0x5c, 0xb8, 0xfd, 0xca, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x90, 0xde, 0x2b, + 0xec, 0x67, 0xb2, 0x5c, 0x3f, 0xd3, 0xdd, 0x73, 0xe4, 0x7a, 0xf4, 0x1c, 0x7f, 0x25, 0x25, 0x1c, + 0x54, 0xbb, 0x44, 0x14, 0xd1, 0x5f, 0x94, 0x20, 0xbf, 0x89, 0x33, 0xd2, 0xee, 0xe2, 0xd1, 0x62, + 0x35, 0xc3, 0xc4, 0x35, 0xfa, 0x6b, 0x28, 0x57, 0x99, 0xd5, 0xe1, 0x44, 0x03, 0x5c, 0x3c, 0xb7, + 0xe9, 0x2b, 0xd5, 0x83, 0x59, 0x98, 0x0a, 0x4a, 0xaf, 0xb4, 0x1c, 0xf5, 0x45, 0xbd, 0x35, 0x6a, + 0x5a, 0x44, 0xa3, 0xf6, 0xad, 0x33, 0x07, 0xa3, 0x8e, 0xcc, 0x8c, 0x3a, 0x3d, 0x47, 0x97, 0xa9, + 0x88, 0xd1, 0x45, 0x7d, 0x96, 0x2c, 0x1a, 0x53, 0x9f, 0xef, 0x5a, 0x71, 0x6d, 0x1e, 0xce, 0x83, + 0x85, 0x60, 0x64, 0xff, 0xfe, 0xb5, 0x4a, 0x5f, 0x49, 0x3e, 0x2c, 0xc1, 0xb1, 0xfd, 0x9d, 0xf9, + 0x4f, 0xf1, 0x5e, 0x68, 0x5e, 0x9d, 0x9c, 0xc0, 0x0b, 0x0d, 0xbf, 0xf1, 0x9b, 0x74, 0xb1, 0x47, + 0x63, 0x39, 0x7b, 0xaf, 0x7f, 0x27, 0x2e, 0x76, 0xf8, 0x55, 0x90, 0x68, 0xfa, 0x02, 0xfc, 0x35, + 0x19, 0x26, 0xea, 0xc8, 0x5d, 0xd6, 0xf7, 0xac, 0x1d, 0x57, 0xd5, 0x45, 0xb7, 0xe7, 0x9e, 0x04, + 0xf9, 0x36, 0xfe, 0x85, 0x5e, 0x55, 0x7a, 0x4d, 0xcf, 0xfd, 0x2d, 0xec, 0xfb, 0x43, 0x48, 0x6b, + 0x34, 0x3f, 0x7f, 0x26, 0x59, 0x64, 0x77, 0x34, 0xe0, 0x6e, 0x28, 0x5b, 0x3b, 0x89, 0xf6, 0x4e, + 0xa3, 0x8a, 0x4e, 0x1f, 0x96, 0xe7, 0xca, 0x30, 0x5d, 0x47, 0x6e, 0xc5, 0x59, 0xd0, 0x77, 0x2d, + 0xdb, 0x70, 0x11, 0x7b, 0x57, 0x51, 0x3c, 0x34, 0xa7, 0x01, 0x8c, 0xe0, 0x37, 0x1a, 0x29, 0x81, + 0x49, 0x51, 0x7f, 0x2b, 0xa9, 0xa3, 0x10, 0xc7, 0xc7, 0x50, 0x40, 0x48, 0xe4, 0x63, 0x11, 0x57, + 0x7c, 0xfa, 0x40, 0x7c, 0x59, 0xa2, 0x40, 0x14, 0xed, 0xe6, 0x96, 0xb1, 0x8b, 0x5a, 0x09, 0x81, + 0xf0, 0x7f, 0x0b, 0x81, 0x08, 0x08, 0x25, 0x76, 0x5f, 0xe1, 0xf8, 0x18, 0x86, 0xfb, 0x4a, 0x1c, + 0xc1, 0x91, 0x04, 0x3b, 0xf0, 0xba, 0x1e, 0xba, 0x9e, 0x79, 0xa7, 0xa8, 0x58, 0x43, 0x93, 0x4d, + 0x62, 0x4d, 0xb6, 0x81, 0x3a, 0x16, 0x52, 0x76, 0x3f, 0x9d, 0xce, 0xa6, 0xd1, 0xb1, 0xf4, 0x2c, + 0x3a, 0x7d, 0xa1, 0xbf, 0x4f, 0x86, 0x13, 0xc1, 0x29, 0xe0, 0x3a, 0x72, 0xe7, 0x75, 0x67, 0xeb, + 0x82, 0xa5, 0xdb, 0x2d, 0xf6, 0x0a, 0xdb, 0x81, 0x4f, 0xfc, 0xa9, 0x5f, 0x62, 0x41, 0xa8, 0xf2, + 0x20, 0xf4, 0x74, 0x15, 0xed, 0xc9, 0xcb, 0x30, 0x3a, 0x99, 0x58, 0x6f, 0xd6, 0xdf, 0x09, 0xc0, + 0x7a, 0x2a, 0x07, 0xd6, 0x1d, 0x83, 0xb2, 0x98, 0x3e, 0x70, 0xbf, 0x49, 0x46, 0x04, 0xc6, 0xab, + 0xf9, 0x5e, 0x51, 0xc0, 0x22, 0xbc, 0x5a, 0xe5, 0x48, 0xaf, 0xd6, 0x81, 0xc6, 0x88, 0xbe, 0x1e, + 0xc9, 0xe9, 0x8e, 0x11, 0x87, 0xe8, 0x6d, 0xfc, 0x2e, 0x19, 0x0a, 0x38, 0x0c, 0x04, 0xe3, 0xf1, + 0xad, 0xde, 0x27, 0x8a, 0xce, 0x3e, 0xef, 0xf2, 0xb1, 0xa4, 0xde, 0xe5, 0xea, 0x3b, 0x93, 0xfa, + 0x90, 0x77, 0x73, 0x3b, 0x14, 0xc4, 0x12, 0xb9, 0x88, 0xf7, 0xe1, 0x20, 0x7d, 0xd0, 0xfe, 0xab, + 0x0c, 0xe0, 0x35, 0x68, 0x7a, 0xf6, 0xe1, 0x69, 0xa2, 0x70, 0x9d, 0x65, 0xfd, 0xea, 0x3d, 0xa0, + 0x4e, 0x74, 0x01, 0x45, 0x28, 0x86, 0xa7, 0x2a, 0x1e, 0x4a, 0xea, 0x5b, 0x19, 0x72, 0x35, 0x14, + 0x58, 0x12, 0x79, 0x5b, 0x46, 0x96, 0x9d, 0x3e, 0x20, 0xff, 0x5d, 0x82, 0x5c, 0xc3, 0xaa, 0x23, + 0xf7, 0xe0, 0xa6, 0x40, 0xe2, 0x63, 0xfb, 0xb8, 0xdc, 0x61, 0x1c, 0xdb, 0xef, 0x45, 0x28, 0x7d, + 0xd1, 0xbd, 0x57, 0x82, 0xa9, 0x86, 0x55, 0x0a, 0x16, 0xa7, 0xc4, 0x7d, 0x55, 0xc5, 0xef, 0x05, + 0x0c, 0x2a, 0x18, 0x16, 0x73, 0xa0, 0x7b, 0x01, 0xfb, 0xd3, 0x4b, 0x5f, 0x6e, 0xb7, 0xc2, 0xd1, + 0x35, 0xb3, 0x65, 0x69, 0xa8, 0x65, 0xd1, 0x95, 0x6e, 0x45, 0x81, 0xec, 0x8e, 0xd9, 0xb2, 0x30, + 0xcb, 0x39, 0x0d, 0x3f, 0x7b, 0x69, 0x36, 0x6a, 0x59, 0xd4, 0x37, 0x00, 0x3f, 0xab, 0xdf, 0x92, + 0x21, 0xeb, 0xfd, 0x2b, 0x2e, 0xea, 0x77, 0xc9, 0x09, 0x03, 0x11, 0x78, 0xe4, 0x87, 0x62, 0x09, + 0xdd, 0xc9, 0xac, 0xfd, 0x13, 0x0f, 0xd6, 0x6b, 0xa3, 0xca, 0x63, 0x44, 0x11, 0xae, 0xf9, 0x2b, + 0xa7, 0x60, 0xec, 0x42, 0xdb, 0x6a, 0x5e, 0x0c, 0xcf, 0xcb, 0xd3, 0x57, 0xe5, 0x46, 0xc8, 0xd9, + 0xba, 0xb9, 0x89, 0xe8, 0x9e, 0xc2, 0xf1, 0xae, 0xbe, 0x10, 0x7b, 0xbd, 0x68, 0x24, 0x8b, 0xfa, + 0xce, 0x24, 0x21, 0x10, 0x7a, 0x54, 0x3e, 0x99, 0x3e, 0xcc, 0x0f, 0x70, 0xb2, 0xac, 0x00, 0x53, + 0xa5, 0x22, 0xb9, 0x81, 0x73, 0xa5, 0x76, 0xae, 0x5c, 0x90, 0x31, 0xcc, 0x9e, 0x4c, 0x52, 0x84, + 0xd9, 0x23, 0xff, 0x13, 0x0b, 0x73, 0x8f, 0xca, 0x1f, 0x06, 0xcc, 0x9f, 0x91, 0x60, 0x7a, 0xd9, + 0x70, 0xdc, 0x28, 0x6f, 0xff, 0x98, 0x28, 0x70, 0x2f, 0x4e, 0x6a, 0x2a, 0x73, 0xe5, 0x08, 0x87, + 0x7f, 0x4b, 0x64, 0x0e, 0xc7, 0x15, 0x31, 0x9a, 0x63, 0x29, 0x98, 0x03, 0x72, 0x6b, 0x9e, 0xb0, + 0x24, 0x13, 0x1b, 0x4a, 0x61, 0x21, 0xa3, 0x37, 0x94, 0x22, 0xcb, 0x4e, 0x5f, 0xbe, 0xdf, 0x92, + 0xe0, 0x98, 0x57, 0x7c, 0xdc, 0xb2, 0x54, 0xb4, 0x98, 0xfb, 0x2e, 0x4b, 0x25, 0x5e, 0x19, 0xdf, + 0xc7, 0xcb, 0x30, 0x56, 0xc6, 0xfb, 0x11, 0x1d, 0xb1, 0x98, 0x23, 0x96, 0x61, 0xfb, 0x89, 0x39, + 0x66, 0x19, 0x76, 0x70, 0x31, 0xc7, 0x2f, 0xc5, 0x0e, 0x28, 0xe6, 0x43, 0x5b, 0x60, 0x7d, 0xa3, + 0x1c, 0x88, 0x39, 0x72, 0x6d, 0x23, 0x46, 0xcc, 0x89, 0x4f, 0xec, 0xaa, 0xef, 0x1e, 0x50, 0xf0, + 0x43, 0x5e, 0xdf, 0x18, 0x04, 0xa6, 0x43, 0x5c, 0xe3, 0x78, 0x85, 0x0c, 0x33, 0x94, 0x8b, 0xde, + 0x53, 0xe6, 0x18, 0x8c, 0x12, 0x4f, 0x99, 0x13, 0x9f, 0x01, 0xe2, 0x39, 0x1b, 0xfd, 0x19, 0xa0, + 0xd8, 0xf2, 0xd3, 0x07, 0xe7, 0xdb, 0x59, 0x38, 0xe9, 0xb1, 0xb0, 0x62, 0xb5, 0x8c, 0x8d, 0x3d, + 0xc2, 0xc5, 0x39, 0xbd, 0xbd, 0x83, 0x1c, 0xf5, 0x03, 0x92, 0x28, 0x4a, 0xff, 0x09, 0xc0, 0xea, + 0x20, 0x9b, 0x04, 0x52, 0xa3, 0x40, 0xdd, 0x1e, 0x55, 0xd9, 0xfd, 0x25, 0x05, 0x41, 0xd1, 0x6b, + 0x3e, 0x11, 0x8d, 0xa1, 0xe7, 0x59, 0x85, 0x13, 0xc1, 0x97, 0x6e, 0x07, 0x8f, 0xcc, 0x7e, 0x07, + 0x8f, 0x1b, 0x40, 0xd6, 0x5b, 0xad, 0x00, 0xaa, 0xee, 0xcd, 0x6c, 0x5c, 0xa6, 0xe6, 0x65, 0xf1, + 0x72, 0x3a, 0x28, 0x3c, 0x9a, 0x17, 0x91, 0xd3, 0x41, 0xae, 0x32, 0x0b, 0x79, 0x72, 0x83, 0x60, + 0xb0, 0xa2, 0xdf, 0x3b, 0x33, 0xcd, 0xc5, 0x9b, 0x76, 0x35, 0x5e, 0x0d, 0x6f, 0x4d, 0x24, 0x99, + 0x5e, 0xfd, 0x74, 0x68, 0x27, 0x6b, 0x9c, 0x82, 0x3d, 0x65, 0x60, 0xca, 0xa3, 0xd9, 0x0d, 0x2b, + 0x76, 0x3a, 0xed, 0xbd, 0x06, 0x0d, 0xbe, 0x92, 0x68, 0x37, 0x8c, 0x89, 0xe1, 0x22, 0x75, 0xc7, + 0x70, 0x49, 0xbe, 0x1b, 0xc6, 0xf1, 0x31, 0x8c, 0xdd, 0xb0, 0x38, 0x82, 0x23, 0x58, 0x8f, 0xcc, + 0x11, 0xab, 0x99, 0xc6, 0xa8, 0x7d, 0x4b, 0xef, 0x43, 0x68, 0xc0, 0x3b, 0xbb, 0xf4, 0x0a, 0x5f, + 0x1b, 0x1b, 0x9b, 0x5b, 0x79, 0x3c, 0xe4, 0x37, 0x2c, 0x7b, 0x5b, 0xf7, 0x37, 0xee, 0xbb, 0x4f, + 0x8a, 0xd0, 0xb8, 0xb0, 0x0b, 0x38, 0x8f, 0x46, 0xf3, 0x7a, 0xf3, 0x91, 0x67, 0x1a, 0x1d, 0x1a, + 0x75, 0xd1, 0x7b, 0x54, 0xae, 0x83, 0x69, 0x1a, 0x7c, 0xb1, 0x8a, 0x1c, 0x17, 0xb5, 0x68, 0xc4, + 0x0a, 0x3e, 0x51, 0x39, 0x03, 0x53, 0x34, 0x61, 0xc1, 0x68, 0x23, 0x87, 0x06, 0xad, 0xe0, 0xd2, + 0x94, 0x93, 0x90, 0x37, 0x9c, 0xbb, 0x1d, 0xcb, 0xc4, 0xfe, 0xff, 0xe3, 0x1a, 0x7d, 0x53, 0x6e, + 0x80, 0xa3, 0x34, 0x5f, 0x60, 0xac, 0x92, 0x03, 0x3b, 0xdd, 0xc9, 0xea, 0x17, 0x06, 0x99, 0x38, + 0x24, 0x8e, 0xc7, 0xeb, 0xa1, 0xb0, 0xd3, 0x6c, 0x22, 0xd4, 0xa2, 0x27, 0x9b, 0xfc, 0xd7, 0x84, + 0x91, 0x7a, 0x13, 0x4f, 0x33, 0x0e, 0x29, 0x54, 0xef, 0xc7, 0x4e, 0x40, 0x9e, 0x5c, 0x7b, 0xa1, + 0xbe, 0x6c, 0xa6, 0xa7, 0x32, 0xce, 0xf0, 0xca, 0xb8, 0x06, 0x53, 0xa6, 0xe5, 0x15, 0xb7, 0xaa, + 0xdb, 0xfa, 0xb6, 0x13, 0xb7, 0x8a, 0x48, 0xe8, 0x06, 0x43, 0x46, 0x95, 0xf9, 0x6d, 0xe9, 0x88, + 0xc6, 0x91, 0x51, 0xfe, 0x7f, 0x70, 0xf4, 0x02, 0x8d, 0x00, 0xe0, 0x50, 0xca, 0x52, 0xb4, 0x8f, + 0x5d, 0x17, 0xe5, 0x39, 0xfe, 0xcf, 0xa5, 0x23, 0x5a, 0x37, 0x31, 0xe5, 0xe7, 0x60, 0xc6, 0x7b, + 0x6d, 0x59, 0x97, 0x7c, 0xc6, 0xe5, 0x68, 0x43, 0xa3, 0x8b, 0xfc, 0x0a, 0xf7, 0xe3, 0xd2, 0x11, + 0xad, 0x8b, 0x94, 0x52, 0x03, 0xd8, 0x72, 0xb7, 0xdb, 0x94, 0x70, 0x36, 0x5a, 0x25, 0xbb, 0x08, + 0x2f, 0x05, 0x3f, 0x2d, 0x1d, 0xd1, 0x18, 0x12, 0xca, 0x32, 0x4c, 0xb8, 0xf7, 0xbb, 0x94, 0x5e, + 0x2e, 0x7a, 0x73, 0xbb, 0x8b, 0x5e, 0xc3, 0xff, 0x67, 0xe9, 0x88, 0x16, 0x12, 0x50, 0x2a, 0x30, + 0xde, 0xb9, 0x40, 0x89, 0xe5, 0x7b, 0x5c, 0xf5, 0xdf, 0x9b, 0xd8, 0xea, 0x85, 0x80, 0x56, 0xf0, + 0xbb, 0xc7, 0x58, 0xd3, 0xd9, 0xa5, 0xb4, 0xc6, 0x84, 0x19, 0x2b, 0xf9, 0xff, 0x78, 0x8c, 0x05, + 0x04, 0x94, 0x0a, 0x4c, 0x38, 0xa6, 0xde, 0x71, 0xb6, 0x2c, 0xd7, 0x39, 0x35, 0xde, 0xe5, 0x07, + 0x19, 0x4d, 0xad, 0x4e, 0xff, 0xd1, 0xc2, 0xbf, 0x95, 0xc7, 0xc3, 0x89, 0x1d, 0x7c, 0x7d, 0x68, + 0xf9, 0x7e, 0xc3, 0x71, 0x0d, 0x73, 0xd3, 0x8f, 0x21, 0x4b, 0x7a, 0x93, 0xde, 0x1f, 0x95, 0x59, + 0x7a, 0x22, 0x0a, 0x70, 0xdb, 0x54, 0xbb, 0x37, 0xe3, 0x48, 0xb1, 0xcc, 0x41, 0xa8, 0x27, 0x43, + 0xd6, 0xfb, 0x84, 0xcf, 0x6c, 0xce, 0xf4, 0x5e, 0xe8, 0xeb, 0xd6, 0x1d, 0xdc, 0x80, 0xbd, 0x9f, + 0xbc, 0xb1, 0xd1, 0xb4, 0x56, 0x6d, 0x6b, 0xd3, 0x46, 0x8e, 0x43, 0x1d, 0x0e, 0x99, 0x14, 0xaf, + 0x81, 0x1b, 0xce, 0x8a, 0xb1, 0x49, 0xac, 0x27, 0xea, 0xef, 0xce, 0x26, 0x91, 0xd9, 0x66, 0x15, + 0x5d, 0xc2, 0x0e, 0xc1, 0xf8, 0xfc, 0x0d, 0x9e, 0x6d, 0xfa, 0x29, 0xea, 0xf5, 0x30, 0xc5, 0x36, + 0x32, 0x72, 0x77, 0x96, 0x11, 0xda, 0x5e, 0xf4, 0x4d, 0xbd, 0x0e, 0x66, 0x78, 0x9d, 0x66, 0x86, + 0x18, 0xd9, 0xef, 0x0a, 0xd5, 0x6b, 0xe1, 0x68, 0x57, 0xc3, 0xf2, 0x63, 0x8a, 0x64, 0xc2, 0x98, + 0x22, 0xd7, 0x00, 0x84, 0x5a, 0xdc, 0x93, 0xcc, 0xd5, 0x30, 0x11, 0xe8, 0x65, 0xcf, 0x0c, 0xdf, + 0xc8, 0xc0, 0xb8, 0xaf, 0x6c, 0xbd, 0x32, 0x78, 0xe3, 0x8b, 0xc9, 0x6c, 0x20, 0xd0, 0x69, 0x36, + 0x97, 0xe6, 0x8d, 0x23, 0xa1, 0xdb, 0x6e, 0xc3, 0x70, 0xdb, 0xfe, 0xd1, 0xb7, 0xee, 0x64, 0x65, + 0x15, 0xc0, 0xc0, 0x18, 0x35, 0xc2, 0xb3, 0x70, 0x37, 0x27, 0x68, 0x0f, 0x44, 0x1f, 0x18, 0x1a, + 0x67, 0x7e, 0x8a, 0x1e, 0x54, 0x9b, 0x80, 0x5c, 0x7d, 0xb5, 0x58, 0x2a, 0x17, 0x8e, 0x28, 0x33, + 0x00, 0xe5, 0xa7, 0xad, 0x96, 0xb5, 0x4a, 0xb9, 0x5a, 0x2a, 0x17, 0x32, 0xea, 0x2b, 0x25, 0x98, + 0x08, 0x1a, 0x41, 0xcf, 0x4a, 0x96, 0xa9, 0x6a, 0xf5, 0xbd, 0x9e, 0x68, 0x7f, 0xa3, 0x62, 0x95, + 0xec, 0x49, 0x70, 0xf9, 0x8e, 0x83, 0x16, 0x0c, 0xdb, 0x71, 0x35, 0xeb, 0xd2, 0x82, 0x65, 0x07, + 0x51, 0x93, 0xfd, 0x6b, 0xf8, 0x23, 0x3e, 0x7b, 0x16, 0x45, 0x0b, 0xe1, 0x43, 0x51, 0xc8, 0xa6, + 0x2b, 0xc3, 0x61, 0x82, 0x47, 0xd7, 0x25, 0xf7, 0xde, 0x3b, 0x48, 0xb3, 0x2e, 0x39, 0x45, 0xb3, + 0x55, 0xb2, 0xda, 0x3b, 0xdb, 0xa6, 0x43, 0x6d, 0x82, 0xa8, 0xcf, 0x9e, 0x74, 0xf0, 0xe5, 0x63, + 0x33, 0x00, 0xa5, 0xda, 0xf2, 0x72, 0xb9, 0xd4, 0xa8, 0xd4, 0xaa, 0x85, 0x23, 0x9e, 0xb4, 0x1a, + 0xc5, 0xb9, 0x65, 0x4f, 0x3a, 0x4f, 0x87, 0x71, 0xbf, 0x4d, 0xd3, 0x30, 0x28, 0x19, 0x3f, 0x0c, + 0x8a, 0x52, 0x84, 0x71, 0xbf, 0x95, 0xd3, 0x11, 0xe1, 0x91, 0xdd, 0xc7, 0x5e, 0xb7, 0x75, 0xdb, + 0xc5, 0xfe, 0xd2, 0x3e, 0x91, 0x39, 0xdd, 0x41, 0x5a, 0xf0, 0xdb, 0x99, 0xc7, 0x50, 0x0e, 0x14, + 0x98, 0x29, 0x2e, 0x2f, 0xaf, 0xd7, 0xb4, 0xf5, 0x6a, 0xad, 0xb1, 0x54, 0xa9, 0x2e, 0x92, 0x11, + 0xb2, 0xb2, 0x58, 0xad, 0x69, 0x65, 0x32, 0x40, 0xd6, 0x0b, 0x19, 0x72, 0xf9, 0xdd, 0xdc, 0x38, + 0xe4, 0x3b, 0x58, 0xba, 0xea, 0x57, 0xe5, 0x84, 0xe7, 0xdd, 0x03, 0x9c, 0x22, 0xae, 0xe7, 0xe2, + 0x7c, 0xce, 0xa5, 0x1e, 0x67, 0x42, 0xcf, 0xc0, 0x14, 0xb1, 0xe5, 0x1c, 0xbc, 0x7c, 0x4f, 0x6f, + 0xb8, 0xe5, 0xd2, 0xd4, 0x4f, 0x48, 0x09, 0x0e, 0xc1, 0xf7, 0xe4, 0x28, 0x99, 0x71, 0xf1, 0xe7, + 0x83, 0x5c, 0x76, 0xa7, 0xc0, 0x4c, 0xa5, 0xda, 0x28, 0x6b, 0xd5, 0xe2, 0x32, 0xcd, 0x22, 0x2b, + 0xa7, 0xe0, 0x78, 0xb5, 0x46, 0x63, 0xfa, 0xd5, 0xf1, 0xb5, 0xda, 0x2b, 0xab, 0x35, 0xad, 0x51, + 0xc8, 0x29, 0x27, 0x41, 0x21, 0xcf, 0xdc, 0xad, 0xf4, 0x79, 0xe5, 0x51, 0x70, 0xed, 0x72, 0x65, + 0xa5, 0xd2, 0x58, 0xaf, 0x2d, 0xac, 0x6b, 0xb5, 0xf3, 0x75, 0x0f, 0x41, 0xad, 0xbc, 0x5c, 0xf4, + 0x14, 0x89, 0xb9, 0x04, 0x6f, 0x4c, 0xb9, 0x0c, 0x8e, 0xe2, 0x0b, 0x2e, 0xf1, 0xcd, 0xf6, 0xa4, + 0xbc, 0x71, 0xe5, 0x2a, 0x38, 0x55, 0xa9, 0xd6, 0xd7, 0x16, 0x16, 0x2a, 0xa5, 0x4a, 0xb9, 0xda, + 0x58, 0x5f, 0x2d, 0x6b, 0x2b, 0x95, 0x7a, 0xdd, 0xfb, 0xb7, 0x30, 0x81, 0xaf, 0x18, 0x23, 0x7d, + 0xa6, 0xfa, 0x7e, 0x19, 0xa6, 0xcf, 0xe9, 0x6d, 0xc3, 0x1b, 0x28, 0xf0, 0xdd, 0x83, 0x5d, 0xc7, + 0x45, 0x5c, 0x7c, 0x47, 0x21, 0x75, 0x38, 0xc7, 0x2f, 0xea, 0x73, 0xe4, 0x84, 0xc7, 0x45, 0x28, + 0x10, 0xa4, 0xc4, 0x59, 0xae, 0xb4, 0x88, 0xc9, 0xcd, 0xeb, 0xa5, 0x04, 0xc7, 0x45, 0xc4, 0xc9, + 0x27, 0x03, 0xff, 0x55, 0xc3, 0x02, 0xbf, 0x00, 0x53, 0x6b, 0xd5, 0xe2, 0x5a, 0x63, 0xa9, 0xa6, + 0x55, 0x7e, 0x16, 0x47, 0x1b, 0x9f, 0x86, 0x89, 0x85, 0x9a, 0x36, 0x57, 0x99, 0x9f, 0x2f, 0x57, + 0x0b, 0x39, 0xe5, 0x72, 0xb8, 0xac, 0x5e, 0xd6, 0xce, 0x55, 0x4a, 0xe5, 0xf5, 0xb5, 0x6a, 0xf1, + 0x5c, 0xb1, 0xb2, 0x8c, 0xfb, 0x88, 0x7c, 0xcc, 0xbd, 0x89, 0x63, 0xea, 0x2f, 0x64, 0x01, 0x48, + 0xd5, 0x3d, 0x4b, 0x9a, 0xbd, 0x5d, 0xef, 0x2f, 0x92, 0x4e, 0x1a, 0x42, 0x32, 0x11, 0xed, 0xb7, + 0x02, 0xe3, 0x36, 0xfd, 0x40, 0x97, 0x4f, 0xfa, 0xd1, 0x21, 0x8f, 0x3e, 0x35, 0x2d, 0xf8, 0x5d, + 0xfd, 0x40, 0x92, 0x39, 0x42, 0x24, 0x63, 0xc9, 0x90, 0x5c, 0x18, 0x0e, 0x90, 0xea, 0x8b, 0x32, + 0x30, 0xc3, 0x57, 0xcc, 0xab, 0x04, 0x36, 0xa6, 0xc4, 0x2a, 0xc1, 0xff, 0xcc, 0x18, 0x59, 0x67, + 0x1e, 0x47, 0x87, 0x53, 0xf0, 0x5b, 0x26, 0x39, 0xf9, 0xed, 0x5b, 0x2c, 0x85, 0x8c, 0xc7, 0xbc, + 0x67, 0x74, 0x90, 0xab, 0xd5, 0x1b, 0xf7, 0xbb, 0x05, 0x59, 0xfd, 0x86, 0x0c, 0xd3, 0xdc, 0xf5, + 0x7d, 0xea, 0xeb, 0x33, 0x22, 0x57, 0x6b, 0x31, 0x17, 0x03, 0x66, 0x0e, 0x7a, 0x31, 0xe0, 0x99, + 0xb3, 0x30, 0x46, 0xd3, 0xb0, 0x7c, 0x6b, 0x55, 0xcf, 0x14, 0x38, 0x0a, 0x93, 0x8b, 0xe5, 0xc6, + 0x7a, 0xbd, 0x51, 0xd4, 0x1a, 0xe5, 0xf9, 0x42, 0xc6, 0x1b, 0xf8, 0xca, 0x2b, 0xab, 0x8d, 0x7b, + 0x0b, 0xf9, 0xe4, 0x1e, 0x78, 0xdd, 0x8c, 0x8c, 0xd8, 0x03, 0x2f, 0xae, 0xf8, 0xf4, 0xe7, 0xaa, + 0x9f, 0x93, 0xa1, 0x40, 0x38, 0x28, 0xdf, 0xdf, 0x41, 0xb6, 0x81, 0xcc, 0x26, 0x52, 0x2f, 0x8a, + 0x44, 0xfc, 0xdc, 0x17, 0x0b, 0x0f, 0xf7, 0xe7, 0x8c, 0x95, 0x48, 0x5e, 0xba, 0x0c, 0xec, 0xec, + 0x3e, 0x03, 0xfb, 0xb3, 0x49, 0x5d, 0xf0, 0xba, 0xd9, 0x1d, 0x0a, 0x64, 0x9f, 0x4e, 0xe2, 0x82, + 0xd7, 0x87, 0x83, 0x91, 0x04, 0xf2, 0x8d, 0x18, 0x7f, 0x0b, 0xb2, 0xfa, 0x42, 0x19, 0x8e, 0xce, + 0xeb, 0x2e, 0x9a, 0xdb, 0x6b, 0x18, 0xdb, 0xc8, 0x71, 0xf5, 0xed, 0x4e, 0xc4, 0x95, 0x78, 0x99, + 0x7d, 0x57, 0xe2, 0xb9, 0xfe, 0x1f, 0x98, 0x53, 0x59, 0x0b, 0x13, 0xd4, 0xf7, 0x24, 0x3d, 0xb4, + 0xd7, 0xc5, 0xc3, 0xd0, 0xa2, 0xed, 0x26, 0x3b, 0x8c, 0x17, 0xcf, 0xc5, 0x08, 0x6e, 0xa8, 0x9d, + 0x80, 0x02, 0x61, 0x85, 0xf1, 0x32, 0xfb, 0x35, 0x7a, 0x8b, 0xe4, 0x7a, 0x82, 0xa0, 0x7e, 0x7e, + 0x98, 0x04, 0x89, 0x0f, 0x93, 0xc0, 0x2d, 0x5a, 0xca, 0xdd, 0x9e, 0x01, 0x49, 0x3b, 0x43, 0xc6, + 0xa5, 0x2c, 0x3a, 0x8e, 0x6a, 0x7a, 0x9d, 0x61, 0x6c, 0xf1, 0xa3, 0xb9, 0xe9, 0x8c, 0xde, 0x65, + 0x58, 0x16, 0x45, 0x26, 0xfe, 0x42, 0xc7, 0xa4, 0xfe, 0xc5, 0x9c, 0x4b, 0x5f, 0xcc, 0x2d, 0x87, + 0xe9, 0xf9, 0x17, 0xf7, 0xe3, 0x20, 0x7d, 0x14, 0x7e, 0x24, 0x41, 0xb6, 0x6e, 0xd9, 0xee, 0xb0, + 0x30, 0x48, 0xba, 0x27, 0xca, 0x48, 0xa0, 0x1e, 0x3d, 0xe7, 0x4c, 0x6f, 0x4f, 0x34, 0xbe, 0xfc, + 0x11, 0xc4, 0x45, 0x3c, 0x0a, 0x33, 0x84, 0x93, 0xe0, 0xd2, 0x90, 0x7f, 0x93, 0x48, 0x7f, 0x75, + 0x8f, 0x28, 0x22, 0x67, 0x60, 0x8a, 0xd9, 0x93, 0x0c, 0x2e, 0xcc, 0x66, 0xd3, 0xd4, 0x37, 0xb3, + 0xb8, 0xcc, 0xf3, 0xb8, 0xf4, 0x9a, 0x71, 0x07, 0xf7, 0x6e, 0x0c, 0xab, 0x67, 0x4a, 0x12, 0x62, + 0x31, 0xa6, 0xf0, 0xf4, 0x11, 0x79, 0x40, 0x86, 0x3c, 0xf5, 0x09, 0x1b, 0x2a, 0x02, 0x49, 0x5b, + 0x46, 0x20, 0x04, 0x31, 0xdf, 0x31, 0x79, 0xd8, 0x2d, 0x23, 0xbe, 0xfc, 0xf4, 0x71, 0xf8, 0x77, + 0xea, 0xec, 0x58, 0xdc, 0xd5, 0x8d, 0xb6, 0x7e, 0xa1, 0x9d, 0x20, 0xb4, 0xf1, 0x27, 0x12, 0x1e, + 0xef, 0x0a, 0xaa, 0xca, 0x95, 0x17, 0x21, 0xf1, 0x9f, 0x81, 0x09, 0x3b, 0x58, 0x92, 0xf4, 0x4f, + 0xbf, 0x77, 0x39, 0x9a, 0xd2, 0xef, 0x5a, 0x98, 0x33, 0xd1, 0x59, 0x2e, 0x21, 0x7e, 0x46, 0x72, + 0xf6, 0x64, 0xb2, 0xd8, 0x6a, 0x2d, 0x20, 0xdd, 0xdd, 0xb1, 0x51, 0x2b, 0xd1, 0x10, 0xc1, 0x8b, + 0x68, 0x82, 0x95, 0x04, 0x17, 0x5c, 0x70, 0x99, 0x47, 0xe7, 0x09, 0x7d, 0x7a, 0x03, 0x9f, 0x97, + 0xa1, 0x74, 0x49, 0x6f, 0x0f, 0x20, 0xa9, 0x71, 0x90, 0x3c, 0x79, 0x30, 0x26, 0xd2, 0x07, 0xe4, + 0x37, 0x64, 0x98, 0x21, 0x76, 0xc2, 0xb0, 0x31, 0xf9, 0xbd, 0x84, 0x3e, 0x24, 0xcc, 0xb5, 0x4c, + 0x2c, 0x3b, 0x43, 0x81, 0x25, 0x89, 0xc7, 0x89, 0x18, 0x1f, 0xe9, 0x23, 0xf3, 0x3f, 0x0b, 0x00, + 0x8c, 0x5f, 0xe0, 0x27, 0xf2, 0x61, 0xa0, 0x3f, 0xf5, 0x9d, 0x74, 0xfe, 0x51, 0xe7, 0xa2, 0x4e, + 0x33, 0x3e, 0x7f, 0xc1, 0x86, 0x14, 0x9f, 0x28, 0x34, 0xaa, 0xfc, 0x79, 0x42, 0x9b, 0x97, 0x7a, + 0xe5, 0xf5, 0x1d, 0xdc, 0x07, 0xec, 0xe5, 0x3e, 0x99, 0xc0, 0xf8, 0xed, 0xc7, 0x4a, 0x32, 0xd4, + 0x96, 0x07, 0x98, 0xd9, 0x9f, 0x82, 0xe3, 0x5a, 0xb9, 0x38, 0x5f, 0xab, 0x2e, 0xdf, 0xcb, 0xde, + 0xd1, 0x53, 0x90, 0xd9, 0xc9, 0x49, 0x2a, 0xb0, 0xbd, 0x21, 0x61, 0x1f, 0xc8, 0xcb, 0x2a, 0x6e, + 0xb6, 0xc2, 0x2c, 0xae, 0xf4, 0xef, 0xd5, 0x04, 0xc8, 0x1e, 0x26, 0x0a, 0xaf, 0x00, 0x98, 0xd4, + 0x50, 0xd3, 0xda, 0xde, 0x46, 0x66, 0x0b, 0xb5, 0xd4, 0x37, 0xc8, 0x30, 0x15, 0xec, 0xf7, 0xd5, + 0x91, 0xab, 0xfe, 0x5c, 0x88, 0xcd, 0x19, 0x98, 0xf2, 0x2a, 0x57, 0xe3, 0x23, 0x89, 0x73, 0x69, + 0xca, 0x4d, 0x70, 0xcc, 0x47, 0xa1, 0xd6, 0x35, 0x85, 0xd9, 0xff, 0x41, 0x7d, 0x2f, 0x8b, 0xd1, + 0x1a, 0x8f, 0xd1, 0x9d, 0xd1, 0xc2, 0x0c, 0xd8, 0x9d, 0x65, 0x59, 0x8d, 0x00, 0xeb, 0xcf, 0x02, + 0xb0, 0x9e, 0xc6, 0x81, 0x35, 0x7f, 0x40, 0xfa, 0x87, 0x89, 0xda, 0x87, 0x64, 0x38, 0xee, 0x77, + 0xc4, 0xa3, 0x43, 0xeb, 0x93, 0x2c, 0x5a, 0x4f, 0xe7, 0xd1, 0x5a, 0x14, 0x91, 0x66, 0x2f, 0x96, + 0x23, 0x50, 0xfb, 0x4a, 0x80, 0xda, 0xcf, 0x73, 0xa8, 0x2d, 0x0f, 0xa9, 0x9c, 0xc3, 0x44, 0xef, + 0x4d, 0x32, 0x4c, 0x90, 0x68, 0x32, 0x1e, 0x64, 0x9b, 0xc9, 0x20, 0x0b, 0xe3, 0xed, 0x48, 0x09, + 0xe3, 0xed, 0xbc, 0x43, 0x4a, 0x16, 0xdf, 0x70, 0x9f, 0x58, 0x03, 0x9e, 0x23, 0x30, 0xfb, 0x6c, + 0x82, 0x80, 0x80, 0xc2, 0xc4, 0x0f, 0x13, 0xa8, 0x07, 0x80, 0xb1, 0x31, 0x5e, 0x20, 0x43, 0xc1, + 0x9b, 0x2c, 0x90, 0x2e, 0x9c, 0xde, 0x54, 0x59, 0xe3, 0x7d, 0xaa, 0x3b, 0x64, 0x73, 0x3e, 0xf4, + 0xa9, 0xf6, 0x13, 0x94, 0xeb, 0x61, 0xa6, 0xb9, 0x85, 0x9a, 0x17, 0x2b, 0xa6, 0xef, 0x74, 0x44, + 0x3c, 0x54, 0xba, 0x52, 0xf9, 0x51, 0xeb, 0x1e, 0x1e, 0x24, 0x7e, 0x85, 0x91, 0x9b, 0xc1, 0xb0, + 0x4c, 0x45, 0xa0, 0xf3, 0x87, 0x01, 0x3a, 0x55, 0x0e, 0x9d, 0xdb, 0x06, 0xa2, 0x9a, 0x0c, 0x96, + 0xea, 0x00, 0xb0, 0xa8, 0x70, 0xb2, 0xb6, 0xda, 0xa8, 0xd4, 0xaa, 0xeb, 0x6b, 0xf5, 0xf2, 0xfc, + 0xfa, 0x9c, 0x0f, 0x4e, 0xbd, 0x20, 0xab, 0xdf, 0x91, 0x60, 0x8c, 0xb0, 0xe5, 0xa8, 0x8f, 0x0e, + 0x21, 0xe8, 0xeb, 0x4c, 0xce, 0xb7, 0x81, 0xd8, 0xd0, 0x30, 0x81, 0x20, 0x68, 0x39, 0x11, 0x46, + 0xdc, 0x93, 0x60, 0x8c, 0x80, 0xec, 0x2f, 0xf7, 0x9f, 0x8e, 0x30, 0xe1, 0x28, 0x19, 0xcd, 0xcf, + 0x2e, 0x18, 0x26, 0xa6, 0x0f, 0x1b, 0xe9, 0x9b, 0xdd, 0xcf, 0xca, 0x92, 0x35, 0x82, 0xf3, 0x86, + 0xbb, 0x85, 0x7d, 0xcd, 0xd5, 0xa7, 0x8a, 0xec, 0xbd, 0xdc, 0x04, 0xb9, 0x5d, 0x2f, 0x77, 0x1f, + 0xbf, 0x7d, 0x92, 0x49, 0x7d, 0x95, 0x70, 0x54, 0x62, 0x4e, 0x3f, 0x03, 0x9e, 0x22, 0xc0, 0x59, + 0x81, 0x6c, 0xdb, 0x70, 0x5c, 0x6a, 0x5c, 0xdf, 0x9a, 0x88, 0x90, 0xff, 0x50, 0x71, 0xd1, 0xb6, + 0x86, 0xc9, 0xa8, 0x77, 0x7b, 0xa6, 0x51, 0x98, 0x2a, 0x70, 0x76, 0xe1, 0x14, 0x8c, 0xd1, 0x33, + 0xb5, 0x74, 0xff, 0xc9, 0x7f, 0x15, 0xdc, 0xf3, 0x11, 0xaa, 0x6d, 0xfa, 0x3a, 0xf0, 0x7f, 0x1f, + 0x85, 0xb1, 0x25, 0xc3, 0x71, 0x2d, 0x7b, 0x4f, 0x7d, 0x28, 0x03, 0x63, 0xe7, 0x90, 0xed, 0x18, + 0x96, 0xb9, 0xcf, 0x0f, 0xeb, 0x1a, 0x98, 0xec, 0xd8, 0x68, 0xd7, 0xb0, 0x76, 0x9c, 0xd0, 0x90, + 0x60, 0x93, 0x14, 0x15, 0xc6, 0xf5, 0x1d, 0x77, 0xcb, 0xb2, 0xc3, 0x50, 0x3c, 0xfe, 0xbb, 0x72, + 0x1a, 0x80, 0x3c, 0x57, 0xf5, 0x6d, 0x44, 0xbd, 0xcb, 0x98, 0x14, 0x45, 0x81, 0xac, 0x6b, 0x6c, + 0x23, 0x1a, 0x9b, 0x1b, 0x3f, 0x7b, 0x02, 0xc6, 0x71, 0x2e, 0x69, 0x3c, 0x51, 0x59, 0xf3, 0x5f, + 0xd5, 0x2f, 0xc9, 0x30, 0xb9, 0x88, 0x5c, 0xca, 0xaa, 0xa3, 0xbe, 0x38, 0x23, 0x74, 0x1d, 0x8e, + 0x37, 0x01, 0x69, 0xeb, 0x8e, 0xff, 0x5f, 0xb0, 0x3f, 0xc5, 0x27, 0x86, 0x81, 0xc2, 0x65, 0xf6, + 0x96, 0x00, 0x1c, 0x35, 0xd2, 0xad, 0x10, 0xa7, 0x74, 0x9a, 0x99, 0xee, 0x10, 0xef, 0xff, 0xc0, + 0x1b, 0xbf, 0xb1, 0x11, 0x17, 0xa8, 0xec, 0x67, 0x99, 0xfa, 0x44, 0x76, 0x47, 0xe3, 0xbb, 0x34, + 0xc7, 0xbe, 0x0b, 0x20, 0x58, 0x4a, 0x94, 0x8c, 0x16, 0xe4, 0x16, 0x8c, 0xd5, 0xd0, 0x9f, 0x93, + 0xf4, 0xb5, 0xf1, 0x07, 0x32, 0x4c, 0xd6, 0xb7, 0xac, 0x4b, 0xbe, 0x1c, 0x9f, 0x2e, 0x06, 0xec, + 0x55, 0x30, 0xb1, 0xdb, 0x05, 0x6a, 0x98, 0xc0, 0xde, 0x32, 0x26, 0xf3, 0xb7, 0x8c, 0x3d, 0x5f, + 0x4e, 0x0a, 0x13, 0xc3, 0x5c, 0x04, 0x4c, 0xfc, 0xc5, 0x60, 0x52, 0x82, 0x8b, 0xc1, 0x94, 0x27, + 0xc0, 0x18, 0xe5, 0x9a, 0xae, 0x47, 0xc7, 0x03, 0xec, 0x67, 0x66, 0x2b, 0x98, 0xe5, 0x2b, 0x98, + 0x0c, 0xf9, 0xe8, 0xca, 0xa5, 0x8f, 0xfc, 0x9f, 0x48, 0x38, 0x52, 0x8f, 0x0f, 0x7c, 0x69, 0x08, + 0xc0, 0xab, 0x3f, 0xcc, 0x88, 0xee, 0xda, 0x04, 0x12, 0x08, 0x38, 0x38, 0xd0, 0x55, 0x57, 0x7d, + 0xc9, 0xa5, 0x2f, 0xcf, 0x57, 0x66, 0x61, 0x6a, 0xde, 0xd8, 0xd8, 0x08, 0x3a, 0xc9, 0x97, 0x08, + 0x76, 0x92, 0xd1, 0xbe, 0x52, 0x9e, 0x9d, 0xbb, 0x63, 0xdb, 0xc8, 0xf4, 0x2b, 0x45, 0x9b, 0x53, + 0x57, 0xaa, 0x72, 0x03, 0x1c, 0xf5, 0xc7, 0x05, 0xb6, 0xa3, 0x9c, 0xd0, 0xba, 0x93, 0xd5, 0xef, + 0x0b, 0x6f, 0xf9, 0xfb, 0x12, 0x65, 0xab, 0x14, 0xd1, 0x00, 0x6f, 0x87, 0xe9, 0x2d, 0x92, 0x1b, + 0xaf, 0x8b, 0xfa, 0x9d, 0xe5, 0xc9, 0xae, 0x48, 0xe8, 0x2b, 0xc8, 0x71, 0xf4, 0x4d, 0xa4, 0xf1, + 0x99, 0xbb, 0x9a, 0xaf, 0x9c, 0xe4, 0x5e, 0x3f, 0x31, 0xef, 0x01, 0x81, 0x9a, 0x8c, 0x40, 0x3b, + 0xce, 0x40, 0x76, 0xc1, 0x68, 0x23, 0xf5, 0x97, 0x24, 0x98, 0xf0, 0xa6, 0x6a, 0x66, 0xd3, 0x7b, + 0x63, 0x3c, 0x27, 0xff, 0x31, 0x23, 0x7a, 0x9f, 0xad, 0x47, 0x67, 0x36, 0xa0, 0x11, 0xd1, 0x6e, + 0xc4, 0xee, 0xad, 0x8d, 0x25, 0x35, 0x82, 0xdb, 0x87, 0xbc, 0xa9, 0xc7, 0xc6, 0x46, 0xdb, 0xd2, + 0xb9, 0x9d, 0x81, 0x6e, 0x53, 0xe8, 0x46, 0x28, 0xf8, 0x07, 0xe0, 0x2c, 0x77, 0xd5, 0x30, 0xcd, + 0x20, 0xc2, 0xc2, 0xbe, 0x74, 0xde, 0xa9, 0x25, 0x36, 0x48, 0x15, 0xae, 0x3b, 0x2d, 0x3d, 0x42, + 0xb3, 0xaf, 0x87, 0x99, 0x0b, 0x7b, 0x2e, 0x72, 0x68, 0x2e, 0x5a, 0x6c, 0x56, 0xeb, 0x4a, 0x65, + 0x42, 0xcc, 0xc7, 0x05, 0xb3, 0x8a, 0x29, 0x30, 0x99, 0xa8, 0x97, 0x06, 0x98, 0x01, 0x1e, 0x87, + 0x42, 0xb5, 0x36, 0x5f, 0xc6, 0x8e, 0xbc, 0xbe, 0x6b, 0xe4, 0xa6, 0xfa, 0x52, 0x19, 0xa6, 0xb0, + 0xa7, 0x9d, 0x8f, 0xc2, 0xb5, 0x02, 0xf3, 0x11, 0xf5, 0x6b, 0xc2, 0x4e, 0xbe, 0xb8, 0xca, 0x6c, + 0x01, 0xd1, 0x82, 0xde, 0x30, 0xda, 0xdd, 0x82, 0xce, 0x69, 0x5d, 0xa9, 0x3d, 0x00, 0x91, 0x7b, + 0x02, 0xf2, 0x21, 0x21, 0x4f, 0xdf, 0x7e, 0xdc, 0x1d, 0x16, 0x2a, 0xbf, 0x2b, 0xc3, 0xa4, 0x37, + 0x49, 0xf1, 0x41, 0xa9, 0x71, 0xa0, 0x58, 0x66, 0x7b, 0x2f, 0x5c, 0x16, 0xf1, 0x5f, 0x13, 0x35, + 0x92, 0xbf, 0x14, 0x9e, 0xb9, 0x63, 0x11, 0x31, 0xbc, 0x8c, 0x08, 0xbf, 0x0f, 0x0a, 0xcd, 0xe7, + 0xfb, 0x30, 0x77, 0x58, 0xf0, 0x7d, 0x2b, 0x07, 0xf9, 0xb5, 0x0e, 0x46, 0xee, 0x55, 0xb2, 0xc8, + 0x75, 0x0d, 0xfb, 0x4e, 0x79, 0x79, 0x66, 0x56, 0xdb, 0x6a, 0xea, 0xed, 0xd5, 0xf0, 0xb8, 0x6c, + 0x98, 0xa0, 0xdc, 0x46, 0x1d, 0xbf, 0xc9, 0x59, 0xe3, 0xeb, 0x63, 0x6f, 0x32, 0xc0, 0x32, 0x62, + 0x4e, 0xd4, 0xdd, 0x04, 0xc7, 0x5a, 0x86, 0xa3, 0x5f, 0x68, 0xa3, 0xb2, 0xd9, 0xb4, 0xf7, 0x88, + 0x38, 0xe8, 0xb4, 0x6a, 0xdf, 0x07, 0xe5, 0x0e, 0xc8, 0x39, 0xee, 0x5e, 0x9b, 0xcc, 0x13, 0xd9, + 0x03, 0x78, 0x91, 0x45, 0xd5, 0xbd, 0xec, 0x1a, 0xf9, 0x8b, 0xf5, 0xdf, 0x1c, 0x13, 0xbc, 0xcc, + 0xfe, 0x71, 0x90, 0xb7, 0x6c, 0x63, 0xd3, 0x20, 0x97, 0x93, 0xcd, 0xec, 0x0b, 0xd8, 0x49, 0x4c, + 0x81, 0x1a, 0xce, 0xa2, 0xd1, 0xac, 0xca, 0x13, 0x60, 0xc2, 0xd8, 0xd6, 0x37, 0xd1, 0x3d, 0x86, + 0x49, 0x8e, 0x33, 0xcf, 0xdc, 0x72, 0x6a, 0xdf, 0xd9, 0x42, 0xfa, 0x5d, 0x0b, 0xb3, 0xaa, 0x1f, + 0x94, 0x44, 0xa3, 0x8a, 0xe1, 0xba, 0x11, 0x50, 0x47, 0x72, 0xa9, 0xbf, 0xfa, 0x5a, 0xa1, 0x78, + 0x5f, 0xd1, 0x6c, 0xa5, 0x3f, 0x78, 0x7f, 0x51, 0x82, 0xf1, 0x79, 0xeb, 0x92, 0x89, 0x15, 0xfd, + 0x56, 0x31, 0x5b, 0xb7, 0xc7, 0x09, 0x70, 0xfe, 0xce, 0xdc, 0xd8, 0xe3, 0x5e, 0xb8, 0xb6, 0x7e, + 0x91, 0x11, 0x30, 0xc4, 0xb6, 0x1c, 0xc1, 0x9b, 0x4c, 0xe3, 0xca, 0x49, 0x5f, 0xae, 0x7f, 0x2a, + 0x43, 0x76, 0xde, 0xb6, 0x3a, 0xea, 0xdb, 0x33, 0x09, 0xfc, 0xb9, 0x5a, 0xb6, 0xd5, 0x69, 0xe0, + 0xab, 0x08, 0xc3, 0x33, 0x6e, 0x6c, 0x9a, 0x72, 0x2b, 0x8c, 0x77, 0x2c, 0xc7, 0x70, 0xfd, 0x69, + 0xc4, 0xcc, 0x2d, 0x8f, 0xe8, 0xd9, 0x9a, 0x57, 0x69, 0x26, 0x2d, 0xc8, 0xee, 0xf5, 0xda, 0x58, + 0x84, 0x9e, 0x5c, 0x3c, 0x31, 0xfa, 0xd7, 0x31, 0x76, 0xa5, 0xaa, 0x2f, 0x63, 0x91, 0x7c, 0x32, + 0x8f, 0xe4, 0x23, 0x7b, 0x48, 0xd8, 0xb6, 0x3a, 0x43, 0xf1, 0xc0, 0x78, 0x75, 0x80, 0xea, 0x53, + 0x38, 0x54, 0x6f, 0x14, 0x2a, 0x33, 0x7d, 0x44, 0x3f, 0x98, 0x05, 0xc0, 0x66, 0xc6, 0x9a, 0x37, + 0x01, 0x12, 0xb3, 0xb1, 0x9e, 0x9b, 0x65, 0x64, 0x59, 0xe4, 0x65, 0xf9, 0xe8, 0x08, 0x2b, 0x06, + 0x93, 0x8f, 0x90, 0x68, 0x11, 0x72, 0x3b, 0xde, 0x67, 0x2a, 0x51, 0x41, 0x12, 0xf8, 0x55, 0x23, + 0x7f, 0xaa, 0x7f, 0x92, 0x81, 0x1c, 0x4e, 0x50, 0x4e, 0x03, 0xe0, 0x81, 0x9d, 0x9c, 0x96, 0xcc, + 0xe0, 0x21, 0x9c, 0x49, 0xc1, 0xda, 0x6a, 0xb4, 0xe8, 0x67, 0x62, 0x32, 0x87, 0x09, 0xde, 0xdf, + 0x78, 0xb8, 0xc7, 0xb4, 0xa8, 0x01, 0xc0, 0xa4, 0x78, 0x7f, 0xe3, 0xb7, 0x65, 0xb4, 0x41, 0xa2, + 0xc4, 0x67, 0xb5, 0x30, 0x21, 0xf8, 0x7b, 0x39, 0xb8, 0x5b, 0xd0, 0xff, 0x1b, 0xa7, 0x78, 0x93, + 0x61, 0xac, 0x96, 0x73, 0x61, 0x11, 0x79, 0x9c, 0xa9, 0x3b, 0x59, 0x7d, 0x43, 0xa0, 0x36, 0xf3, + 0x9c, 0xda, 0xdc, 0x9c, 0x40, 0xbc, 0xe9, 0x2b, 0xcf, 0x37, 0x72, 0x30, 0x51, 0xb5, 0x5a, 0x54, + 0x77, 0x98, 0x09, 0xe3, 0xa7, 0x73, 0x89, 0x26, 0x8c, 0x01, 0x8d, 0x08, 0x05, 0xb9, 0x8b, 0x57, + 0x10, 0x31, 0x0a, 0xac, 0x7e, 0x28, 0x73, 0x90, 0xc7, 0xda, 0xbb, 0xff, 0xd2, 0xba, 0x38, 0x12, + 0x58, 0xb4, 0x1a, 0xfd, 0xf3, 0x3f, 0x9c, 0x8e, 0xfd, 0x17, 0xc8, 0xe1, 0x0a, 0xc6, 0xec, 0xee, + 0xf0, 0x15, 0x95, 0xe2, 0x2b, 0x2a, 0xc7, 0x57, 0x34, 0xdb, 0x5d, 0xd1, 0x24, 0xeb, 0x00, 0x51, + 0x1a, 0x92, 0xbe, 0x8e, 0xff, 0xc3, 0x18, 0x40, 0x55, 0xdf, 0x35, 0x36, 0xc9, 0xee, 0xf0, 0x97, + 0xfc, 0xf9, 0x0f, 0xdd, 0xc7, 0xfd, 0xaf, 0xcc, 0x40, 0x78, 0x2b, 0x8c, 0xd1, 0x71, 0x8f, 0x56, + 0xe4, 0x6a, 0xae, 0x22, 0x21, 0x15, 0x62, 0x96, 0xde, 0xef, 0x6a, 0x7e, 0x7e, 0xee, 0x7e, 0x6d, + 0xa9, 0xeb, 0x7e, 0xed, 0xde, 0x7b, 0x10, 0x11, 0xb7, 0x6e, 0xab, 0xef, 0x13, 0x3e, 0xee, 0xc4, + 0xf0, 0xc3, 0xd4, 0x28, 0xa2, 0x09, 0x3e, 0x0e, 0xc6, 0xac, 0x60, 0x43, 0x5b, 0x8e, 0x5c, 0x07, + 0xab, 0x98, 0x1b, 0x96, 0xe6, 0xe7, 0x14, 0xdc, 0xfc, 0x12, 0xe2, 0x63, 0x24, 0x27, 0x0a, 0x4f, + 0x2e, 0xfa, 0x11, 0xf7, 0xbc, 0x7a, 0x9c, 0x37, 0xdc, 0xad, 0x65, 0xc3, 0xbc, 0xe8, 0xa8, 0x3f, + 0x2f, 0x66, 0x41, 0x32, 0xf8, 0x4b, 0xc9, 0xf0, 0xe7, 0x03, 0x1a, 0xd5, 0x79, 0xd4, 0xee, 0x88, + 0xa2, 0xd2, 0x9b, 0xdb, 0x08, 0x00, 0x6f, 0x83, 0x3c, 0x61, 0x94, 0x76, 0xa2, 0x67, 0x22, 0xf1, + 0x0b, 0x28, 0x69, 0xf4, 0x0f, 0xf5, 0xbd, 0x01, 0x8e, 0xe7, 0x38, 0x1c, 0xe7, 0x0e, 0xc4, 0x59, + 0xea, 0x90, 0x9e, 0x79, 0x2c, 0x8c, 0x51, 0x49, 0x2b, 0x33, 0x6c, 0x2b, 0x2e, 0x1c, 0x51, 0x00, + 0xf2, 0x2b, 0xd6, 0x2e, 0x6a, 0x58, 0x85, 0x8c, 0xf7, 0xec, 0xf1, 0xd7, 0xb0, 0x0a, 0x92, 0xfa, + 0x9a, 0x71, 0x18, 0x0f, 0x42, 0x9d, 0x7d, 0x51, 0x82, 0x42, 0xc9, 0x46, 0xba, 0x8b, 0x16, 0x6c, + 0x6b, 0x9b, 0xd4, 0x48, 0xdc, 0x75, 0xfe, 0x37, 0x84, 0x5d, 0x3c, 0x82, 0x10, 0x64, 0xdd, 0x85, + 0x45, 0x60, 0x49, 0x16, 0x21, 0x25, 0x7f, 0x11, 0x52, 0x7d, 0x9b, 0x90, 0xcb, 0x87, 0x68, 0x29, + 0xe9, 0x37, 0xb5, 0xcf, 0x4a, 0x90, 0x2b, 0xb5, 0x2d, 0x13, 0xb1, 0xe7, 0x3b, 0xfb, 0x1e, 0x24, + 0xec, 0xbd, 0x13, 0xa1, 0x3e, 0x4b, 0x12, 0xb5, 0x35, 0x42, 0x01, 0x78, 0x65, 0x0b, 0xca, 0x56, + 0x6c, 0x90, 0x8a, 0x25, 0x9d, 0xbe, 0x40, 0xbf, 0x23, 0xc1, 0x04, 0x09, 0x1a, 0x56, 0x6c, 0xb7, + 0xd5, 0x47, 0x84, 0x42, 0xed, 0x11, 0x2e, 0x4e, 0xfd, 0x90, 0xf0, 0xf9, 0xa5, 0xa0, 0x56, 0x01, + 0xed, 0x04, 0xd1, 0xd3, 0x92, 0x1d, 0xa7, 0x11, 0xdb, 0x4b, 0xeb, 0xcb, 0x50, 0xfa, 0xa2, 0xfe, + 0x0b, 0xc9, 0x33, 0x00, 0xcc, 0x8b, 0xab, 0x36, 0xda, 0x35, 0xd0, 0x25, 0xf5, 0xca, 0x50, 0xd8, + 0xfb, 0x23, 0x22, 0xbd, 0x45, 0x78, 0x11, 0x87, 0x21, 0x19, 0xb9, 0x95, 0x35, 0xd9, 0x0e, 0x33, + 0xd1, 0x5e, 0xbc, 0x3b, 0x4c, 0x15, 0x43, 0x46, 0x63, 0xb3, 0x0b, 0xae, 0xd9, 0x44, 0x73, 0x91, + 0xbe, 0x60, 0x3f, 0x3a, 0x06, 0xe3, 0x6b, 0xa6, 0xd3, 0x69, 0xeb, 0xce, 0x96, 0xfa, 0x6f, 0x32, + 0xe4, 0xc9, 0x55, 0x89, 0xea, 0xcf, 0x70, 0x81, 0x57, 0x9e, 0xb1, 0x83, 0x6c, 0xdf, 0x05, 0x87, + 0xbc, 0x84, 0xf6, 0x91, 0xc4, 0xd8, 0x47, 0xea, 0x07, 0x65, 0xd1, 0x49, 0xaa, 0x5f, 0x28, 0xbd, + 0x9b, 0x31, 0x3a, 0xd6, 0x47, 0xc7, 0x68, 0xba, 0x3b, 0x36, 0x72, 0x7a, 0xc6, 0xfa, 0x88, 0xa4, + 0xb2, 0x4a, 0xfe, 0xd2, 0x82, 0xdf, 0x55, 0x1d, 0xc6, 0x68, 0xe2, 0xbe, 0xed, 0xa4, 0xfd, 0xc1, + 0x09, 0x4e, 0x42, 0x5e, 0xb7, 0x5d, 0xc3, 0x71, 0xe9, 0x06, 0x2b, 0x7d, 0xf3, 0xba, 0x4b, 0xf2, + 0xb4, 0x66, 0xb7, 0xfd, 0x10, 0x4d, 0x41, 0x82, 0xfa, 0xbb, 0x42, 0xf3, 0xc7, 0xf8, 0x9a, 0x27, + 0x83, 0xfc, 0x9e, 0x01, 0xd6, 0xa8, 0x2f, 0x87, 0xcb, 0xb4, 0x62, 0xa3, 0xbc, 0x4e, 0x22, 0xfa, + 0x04, 0xc1, 0x7b, 0x5a, 0xea, 0x7b, 0x64, 0x66, 0xfd, 0x6e, 0x8f, 0x1b, 0x23, 0xa8, 0x14, 0xc3, + 0x31, 0x22, 0x48, 0x88, 0xd9, 0xad, 0xe6, 0x16, 0x61, 0x65, 0xf1, 0x45, 0xd8, 0xdf, 0x16, 0xde, + 0x4d, 0x0a, 0x44, 0xd9, 0x67, 0x0d, 0x30, 0xee, 0x2a, 0xb5, 0x0f, 0x0b, 0xed, 0x0c, 0xf5, 0x2b, + 0xe9, 0x10, 0x61, 0x7b, 0xf3, 0x18, 0x8c, 0x2d, 0xea, 0xed, 0x36, 0xb2, 0xf7, 0xbc, 0x21, 0xa9, + 0xe0, 0x73, 0xb8, 0xa2, 0x9b, 0xc6, 0x06, 0x72, 0xdc, 0xf8, 0xce, 0xf2, 0x7d, 0xc2, 0x61, 0xba, + 0x69, 0x19, 0xb3, 0xdd, 0xf4, 0x23, 0x64, 0x7e, 0x16, 0xb2, 0x86, 0xb9, 0x61, 0xd1, 0x2e, 0xb3, + 0x7b, 0xd5, 0xde, 0xff, 0x19, 0x4f, 0x5d, 0x70, 0x46, 0xc1, 0x48, 0xdd, 0x82, 0x5c, 0xa4, 0xdf, + 0x73, 0xfe, 0x4e, 0x16, 0xa6, 0x7d, 0x26, 0x2a, 0x66, 0x0b, 0xdd, 0xcf, 0x2e, 0xc5, 0xbc, 0x34, + 0x2b, 0x7a, 0x56, 0xb6, 0xbb, 0x3e, 0x98, 0x54, 0x84, 0x48, 0x1b, 0x00, 0x4d, 0xdd, 0x45, 0x9b, + 0x96, 0x6d, 0x04, 0xfd, 0xe1, 0xe3, 0x93, 0x50, 0x2b, 0x91, 0xbf, 0xf7, 0x34, 0x86, 0x8e, 0x72, + 0x07, 0x4c, 0xa2, 0x20, 0x38, 0x89, 0xbf, 0x54, 0x13, 0x8b, 0x17, 0x9b, 0x5f, 0xfd, 0x0b, 0xa1, + 0x23, 0xb9, 0x22, 0xd5, 0x4c, 0x86, 0xd9, 0xfa, 0x60, 0x6d, 0x68, 0xad, 0xba, 0x52, 0xd4, 0xea, + 0x4b, 0xc5, 0xe5, 0xe5, 0x4a, 0x75, 0x31, 0x88, 0x8a, 0xa5, 0xc0, 0xcc, 0x7c, 0xed, 0x7c, 0x95, + 0x09, 0x5b, 0x96, 0x55, 0x57, 0x61, 0xdc, 0x97, 0x57, 0x2f, 0x5f, 0x4c, 0x56, 0x66, 0xd4, 0x17, + 0x93, 0x49, 0xf2, 0x8c, 0x33, 0xa3, 0x19, 0x38, 0xe8, 0xe0, 0x67, 0xf5, 0x8f, 0x74, 0xc8, 0xe1, + 0x35, 0x75, 0xf5, 0x5d, 0x78, 0x1b, 0xb0, 0xd3, 0xd6, 0x9b, 0x48, 0xdd, 0x4e, 0x60, 0x8d, 0xfb, + 0xf7, 0xc6, 0x48, 0xfb, 0xee, 0x8d, 0xc1, 0x8f, 0xd4, 0xea, 0x3b, 0xde, 0x6b, 0x1d, 0x5f, 0x23, + 0x59, 0xf8, 0xd3, 0xab, 0xb1, 0xbb, 0x2b, 0x64, 0xf9, 0x9f, 0xb2, 0x19, 0xa1, 0x92, 0xd1, 0x3c, + 0x25, 0xb3, 0x44, 0xc5, 0xf6, 0x61, 0xe2, 0x38, 0x4a, 0xbf, 0xc5, 0x7f, 0x35, 0x0b, 0xb9, 0x7a, + 0xa7, 0x6d, 0xb8, 0xea, 0x2b, 0xa4, 0xa1, 0x60, 0x46, 0xee, 0xfa, 0x91, 0xfb, 0xde, 0xf5, 0x13, + 0xee, 0xba, 0x66, 0x05, 0x76, 0x5d, 0x1b, 0xe8, 0x7e, 0x97, 0xdf, 0x75, 0xbd, 0x95, 0x46, 0xb6, + 0x24, 0x7b, 0xb6, 0x8f, 0xec, 0x21, 0x52, 0x5c, 0xad, 0x1e, 0x21, 0x53, 0xcf, 0x3c, 0x96, 0x46, + 0x6e, 0x04, 0xc8, 0xcf, 0xd5, 0x1a, 0x8d, 0xda, 0x4a, 0xe1, 0x08, 0x0e, 0xf9, 0x55, 0x5b, 0x25, + 0x71, 0xb4, 0x2a, 0xd5, 0x6a, 0x59, 0x2b, 0x48, 0x38, 0x96, 0x64, 0xa5, 0xb1, 0x5c, 0x2e, 0xc8, + 0xfc, 0xc5, 0x0f, 0xb1, 0xe6, 0x37, 0x5f, 0x76, 0x9a, 0xea, 0x25, 0x66, 0x88, 0x47, 0xf3, 0x93, + 0xbe, 0x72, 0xfd, 0xba, 0x0c, 0xb9, 0x15, 0x64, 0x6f, 0x22, 0xf5, 0x19, 0x09, 0x36, 0xf9, 0x36, + 0x0c, 0xdb, 0x21, 0x91, 0x37, 0xc3, 0x4d, 0x3e, 0x36, 0x4d, 0xb9, 0x0e, 0xa6, 0x1d, 0xd4, 0xb4, + 0xcc, 0x96, 0x9f, 0x89, 0xf4, 0x47, 0x7c, 0xa2, 0xfa, 0xf2, 0x84, 0x90, 0x61, 0x46, 0x87, 0xb2, + 0x53, 0x97, 0x04, 0x98, 0x5e, 0xa5, 0xa6, 0x0f, 0xcc, 0xf7, 0x65, 0xef, 0xa7, 0xce, 0x9e, 0xfa, + 0x72, 0xe1, 0xdd, 0xd7, 0x9b, 0x20, 0x8f, 0xd5, 0xd4, 0x1f, 0xa3, 0x7b, 0xf7, 0xc7, 0x34, 0x8f, + 0x32, 0x07, 0xc7, 0x1c, 0xd4, 0x46, 0x4d, 0x17, 0xb5, 0xbc, 0xa6, 0xab, 0xf5, 0xed, 0x14, 0xf6, + 0x67, 0x57, 0xff, 0x8c, 0x05, 0xf0, 0x76, 0x1e, 0xc0, 0xeb, 0x7b, 0x88, 0xd2, 0xab, 0x50, 0xb4, + 0xad, 0xec, 0x55, 0xa3, 0xde, 0xb6, 0x82, 0x45, 0x71, 0xff, 0xdd, 0xfb, 0xb6, 0xe5, 0x6e, 0xb7, + 0xf1, 0x37, 0x7a, 0xc0, 0xc0, 0x7f, 0x57, 0x66, 0x61, 0x4c, 0x37, 0xf7, 0xf0, 0xa7, 0x6c, 0x4c, + 0xad, 0xfd, 0x4c, 0xea, 0x6b, 0x02, 0xe4, 0xef, 0xe4, 0x90, 0x7f, 0xb4, 0x18, 0xbb, 0xe9, 0x03, + 0xff, 0x9c, 0x31, 0xc8, 0xad, 0xea, 0x8e, 0x8b, 0xd4, 0xff, 0x29, 0x8b, 0x22, 0x7f, 0x3d, 0xcc, + 0x6c, 0x58, 0xcd, 0x1d, 0x07, 0xb5, 0xf8, 0x46, 0xd9, 0x95, 0x3a, 0x0c, 0xcc, 0x95, 0x1b, 0xa1, + 0xe0, 0x27, 0x52, 0xb2, 0xfe, 0x36, 0xfc, 0xbe, 0x74, 0x7c, 0x8d, 0x80, 0xb3, 0xaa, 0xdb, 0x6e, + 0x6d, 0x03, 0xa7, 0x05, 0xd7, 0x08, 0xb0, 0x89, 0x1c, 0xf4, 0xf9, 0x18, 0xe8, 0xc7, 0xa2, 0xa1, + 0x1f, 0x17, 0x80, 0x5e, 0x29, 0xc2, 0xf8, 0x86, 0xd1, 0x46, 0xf8, 0x87, 0x09, 0xfc, 0x43, 0xaf, + 0x31, 0x09, 0xcb, 0x3e, 0x18, 0x93, 0x16, 0x8c, 0x36, 0xd2, 0x82, 0xdf, 0xfc, 0x89, 0x0c, 0x84, + 0x13, 0x99, 0x65, 0xe2, 0x4f, 0xeb, 0x19, 0x5e, 0xa6, 0xbe, 0x8d, 0xfc, 0xc5, 0x37, 0x93, 0x1e, + 0x6e, 0x69, 0xe9, 0xae, 0x8e, 0xc1, 0x98, 0xd2, 0xf0, 0x33, 0xef, 0x17, 0x22, 0x77, 0xfb, 0x85, + 0x3c, 0x4f, 0x4e, 0xd6, 0x23, 0xfa, 0xcc, 0x46, 0xb4, 0xa8, 0x0b, 0x3e, 0x40, 0xc4, 0x52, 0x0c, + 0xde, 0x3d, 0x60, 0x9a, 0xba, 0x8d, 0xdc, 0x55, 0xd6, 0x13, 0x23, 0xa7, 0xf1, 0x89, 0xd8, 0x95, + 0xcf, 0xa9, 0xeb, 0xdb, 0x08, 0x17, 0x56, 0xf2, 0xbe, 0x51, 0x17, 0xad, 0x7d, 0xe9, 0x61, 0xff, + 0x9b, 0x1b, 0x76, 0xff, 0xdb, 0xab, 0x8e, 0xe9, 0x37, 0xc3, 0xd7, 0x67, 0x41, 0x2e, 0xed, 0xb8, + 0x0f, 0xeb, 0xee, 0xf7, 0x47, 0xc2, 0x7e, 0x2e, 0xb4, 0x3f, 0xdb, 0x71, 0x0f, 0xb7, 0xf7, 0x4d, + 0xa8, 0x25, 0x62, 0xfe, 0x34, 0x51, 0x75, 0x4b, 0x5f, 0x47, 0xde, 0x2e, 0x07, 0x0e, 0x96, 0x0f, + 0x64, 0x0e, 0x6e, 0x9a, 0xab, 0xa4, 0x7f, 0x62, 0x7a, 0x86, 0xe0, 0xdd, 0xef, 0x78, 0xb2, 0x5c, + 0x20, 0x53, 0xbc, 0xbd, 0x8e, 0x45, 0x39, 0xa5, 0x91, 0x17, 0xf5, 0x95, 0xc2, 0x6e, 0xe7, 0x44, + 0x6c, 0xb1, 0xae, 0x84, 0xc9, 0x6c, 0x2a, 0xb1, 0x9b, 0x94, 0x63, 0x8a, 0x4d, 0x1f, 0xb0, 0xef, + 0xb1, 0xae, 0x82, 0xc5, 0x03, 0x23, 0xa6, 0xbe, 0x56, 0x78, 0x3b, 0x8a, 0x54, 0xbb, 0xcf, 0x7a, + 0x61, 0x32, 0x79, 0x8b, 0x6d, 0x56, 0xc5, 0x16, 0x9c, 0xbe, 0xc4, 0xbf, 0x2b, 0x43, 0x9e, 0x6c, + 0x41, 0xaa, 0x6f, 0x15, 0x6e, 0x22, 0x5e, 0x6f, 0xc4, 0xbb, 0x10, 0x06, 0xef, 0x49, 0xd6, 0x1c, + 0x38, 0x57, 0xc3, 0x6c, 0x22, 0x57, 0x43, 0xfe, 0x1c, 0xa7, 0x40, 0x3b, 0x22, 0x75, 0x4c, 0x79, + 0x3a, 0x99, 0xa4, 0x85, 0xf5, 0x64, 0x28, 0x7d, 0xbc, 0x5f, 0x90, 0x83, 0x29, 0x52, 0xf4, 0x79, + 0xa3, 0xb5, 0x89, 0x5c, 0xf5, 0x3d, 0xd2, 0x8f, 0x0f, 0xea, 0x4a, 0x15, 0xa6, 0x2e, 0x61, 0xb6, + 0x49, 0xe0, 0x0a, 0xba, 0x72, 0x71, 0x63, 0xec, 0xba, 0x07, 0xa9, 0xa7, 0x1f, 0x97, 0x83, 0xfb, + 0xdf, 0x93, 0x31, 0x59, 0xf0, 0x27, 0x0e, 0x5c, 0x79, 0x6c, 0x64, 0xb1, 0x49, 0xca, 0x49, 0xc8, + 0xef, 0x1a, 0xe8, 0x52, 0xa5, 0x45, 0xad, 0x5b, 0xfa, 0xa6, 0xfe, 0xbe, 0xf0, 0xbe, 0x2d, 0x0b, + 0x37, 0xe5, 0x25, 0x5d, 0x2d, 0x14, 0xdb, 0xbd, 0xed, 0xcb, 0xd6, 0x08, 0xce, 0x14, 0xf3, 0x37, + 0x15, 0x97, 0x12, 0x28, 0x62, 0x94, 0xe1, 0xcc, 0x87, 0xf2, 0x88, 0x3d, 0xb1, 0x42, 0x04, 0x30, + 0xe4, 0x4b, 0x8c, 0xc5, 0xe2, 0x4b, 0xf4, 0x29, 0x3a, 0x7d, 0xc9, 0xbf, 0x41, 0x86, 0x89, 0x3a, + 0x72, 0x17, 0x0c, 0xd4, 0x6e, 0x39, 0xaa, 0x7d, 0x70, 0xd3, 0xe8, 0x2c, 0xe4, 0x37, 0x30, 0xb1, + 0x7e, 0xe7, 0x16, 0x68, 0x36, 0xf5, 0xf5, 0x92, 0xe8, 0x8e, 0x30, 0x5d, 0x7d, 0xf3, 0xb9, 0x1d, + 0x0a, 0x4c, 0x62, 0x1e, 0xbd, 0xf1, 0x25, 0x8f, 0x20, 0xea, 0xb7, 0x0c, 0x53, 0xf4, 0x6a, 0xd3, + 0x62, 0xdb, 0xd8, 0x34, 0xd5, 0x9d, 0x21, 0xb4, 0x10, 0xe5, 0x66, 0xc8, 0xe9, 0x1e, 0x35, 0xba, + 0xf5, 0xaa, 0xf6, 0xec, 0x3c, 0x71, 0x79, 0x1a, 0xc9, 0x98, 0x20, 0xc6, 0x6e, 0xa8, 0xd8, 0x3e, + 0xcf, 0x23, 0x8c, 0xb1, 0xdb, 0xb7, 0xf0, 0xf4, 0x11, 0xfb, 0xba, 0x0c, 0xc7, 0x29, 0x03, 0xe7, + 0x90, 0xed, 0x1a, 0x4d, 0xbd, 0x4d, 0x90, 0x7b, 0x51, 0x66, 0x18, 0xd0, 0x2d, 0xc1, 0xf4, 0x2e, + 0x4b, 0x96, 0x42, 0x78, 0xa6, 0x27, 0x84, 0x1c, 0x03, 0x1a, 0xff, 0x63, 0x82, 0x58, 0xa5, 0x9c, + 0x54, 0x39, 0x9a, 0x23, 0x8c, 0x55, 0x2a, 0xcc, 0x44, 0xfa, 0x10, 0xbf, 0x8c, 0x86, 0xe6, 0x09, + 0xbb, 0xcf, 0x2f, 0x09, 0x63, 0xbb, 0x06, 0x93, 0x18, 0x4b, 0xf2, 0x23, 0x5d, 0x86, 0x88, 0x51, + 0xe2, 0xa0, 0xdf, 0xa1, 0xb7, 0x29, 0x06, 0xff, 0x6a, 0x2c, 0x1d, 0xf5, 0x3c, 0x40, 0xf8, 0x89, + 0xed, 0xa4, 0x33, 0x51, 0x9d, 0xb4, 0x24, 0xd6, 0x49, 0xbf, 0x45, 0x38, 0x58, 0x4a, 0x6f, 0xb6, + 0x0f, 0xae, 0x1e, 0x62, 0x61, 0x32, 0xfa, 0x97, 0x9e, 0xbe, 0x5e, 0xbc, 0x86, 0xea, 0xc5, 0xfc, + 0x4e, 0xa7, 0x6d, 0x34, 0xbd, 0xf9, 0xd4, 0x27, 0x86, 0x32, 0x9f, 0x62, 0xfb, 0x03, 0xb9, 0xab, + 0x3f, 0x38, 0x80, 0x25, 0x7d, 0x03, 0x1c, 0x25, 0x45, 0x94, 0x02, 0xb6, 0x72, 0x24, 0x14, 0x44, + 0x57, 0x32, 0x1f, 0x80, 0x50, 0x50, 0x09, 0x02, 0x21, 0x0c, 0xb0, 0xf4, 0x99, 0xcc, 0xd8, 0x4d, + 0xaa, 0x20, 0x51, 0x9c, 0x8d, 0xc0, 0x2d, 0x34, 0x4b, 0xac, 0xdd, 0x35, 0x7c, 0xe1, 0xa5, 0xfa, + 0x95, 0xec, 0x30, 0x46, 0x84, 0xbb, 0x20, 0x8b, 0x5d, 0xdc, 0xe5, 0xc8, 0x25, 0x8d, 0xb0, 0xc8, + 0xf0, 0x36, 0x52, 0x74, 0xbf, 0xbb, 0x74, 0x44, 0xc3, 0x7f, 0x2a, 0x37, 0xc2, 0xd1, 0x0b, 0x7a, + 0xf3, 0xe2, 0xa6, 0x6d, 0xed, 0xe0, 0xab, 0x01, 0x2d, 0x7a, 0xc7, 0x20, 0xbe, 0xab, 0x95, 0xff, + 0xa0, 0xdc, 0xe2, 0x9b, 0x0e, 0xb9, 0x7e, 0xa6, 0xc3, 0xd2, 0x11, 0x6a, 0x3c, 0x28, 0x8f, 0x0d, + 0x3a, 0x9d, 0x7c, 0x6c, 0xa7, 0xb3, 0x74, 0xc4, 0xef, 0x76, 0x94, 0x79, 0x18, 0x6f, 0x19, 0xbb, + 0x78, 0xab, 0x1a, 0xcf, 0xba, 0xfa, 0x1d, 0x5d, 0x9e, 0x37, 0x76, 0xc9, 0xc6, 0xf6, 0xd2, 0x11, + 0x2d, 0xf8, 0x53, 0x59, 0x84, 0x09, 0xbc, 0x2d, 0x80, 0xc9, 0x8c, 0x27, 0x3a, 0x96, 0xbc, 0x74, + 0x44, 0x0b, 0xff, 0xf5, 0xac, 0x8f, 0x2c, 0x3e, 0xfb, 0x71, 0xa7, 0xbf, 0xdd, 0x9e, 0x49, 0xb4, + 0xdd, 0xee, 0xc9, 0x82, 0x6c, 0xb8, 0x9f, 0x84, 0x5c, 0x13, 0x4b, 0x58, 0xa2, 0x12, 0x26, 0xaf, + 0xca, 0xed, 0x90, 0xdd, 0xd6, 0x6d, 0x7f, 0xf2, 0x7c, 0x7d, 0x7f, 0xba, 0x2b, 0xba, 0x7d, 0xd1, + 0x43, 0xd0, 0xfb, 0x6b, 0x6e, 0x0c, 0x72, 0x58, 0x70, 0xc1, 0x83, 0xfa, 0xf6, 0x2c, 0x31, 0x43, + 0x4a, 0x96, 0xe9, 0x0d, 0xfb, 0x0d, 0xcb, 0x3f, 0x20, 0xf3, 0xfb, 0x99, 0xe1, 0x58, 0x90, 0x97, + 0x31, 0x91, 0x81, 0x4d, 0xe3, 0x19, 0x3b, 0xe8, 0x1e, 0xb4, 0x47, 0x97, 0x44, 0x7b, 0x7d, 0xea, + 0xba, 0x7d, 0x3c, 0xdb, 0x7d, 0xfb, 0x78, 0xb8, 0x7c, 0x90, 0xeb, 0xef, 0xa8, 0xf2, 0x67, 0x03, + 0x98, 0x2e, 0xdd, 0x82, 0x88, 0x9e, 0x81, 0xb7, 0x0d, 0x93, 0xa9, 0xb3, 0xff, 0x9a, 0xb0, 0x53, + 0x4a, 0x6a, 0xd4, 0xf4, 0x61, 0x2f, 0xfd, 0xbe, 0xe9, 0xb7, 0xb2, 0x70, 0x8a, 0xdc, 0x71, 0xbf, + 0x8b, 0x1a, 0x16, 0x7f, 0x19, 0xaf, 0xfa, 0xc7, 0x43, 0x51, 0x9a, 0x1e, 0x03, 0x8e, 0xdc, 0x73, + 0xc0, 0xd9, 0x77, 0x48, 0x39, 0xdb, 0xe7, 0x90, 0x72, 0x2e, 0xd9, 0xca, 0xe1, 0x47, 0x58, 0xfd, + 0x59, 0xe5, 0xf5, 0xe7, 0xb6, 0x08, 0x80, 0x7a, 0xc9, 0x65, 0x28, 0xf6, 0xcd, 0xbb, 0x02, 0x4d, + 0xa9, 0x73, 0x9a, 0x72, 0xe7, 0xe0, 0x8c, 0xa4, 0xaf, 0x2d, 0xbf, 0x97, 0x85, 0xcb, 0x42, 0x66, + 0xaa, 0xe8, 0x12, 0x55, 0x94, 0x2f, 0x0e, 0x45, 0x51, 0x92, 0xc7, 0x40, 0x48, 0x5b, 0x63, 0xfe, + 0x44, 0xf8, 0xec, 0x50, 0x37, 0x50, 0x81, 0x6c, 0x22, 0x94, 0xe5, 0x24, 0xe4, 0x49, 0x0f, 0x43, + 0xa1, 0xa1, 0x6f, 0x09, 0xbb, 0x1b, 0xb1, 0x13, 0x47, 0xa2, 0xbc, 0x8d, 0x40, 0x7f, 0xe8, 0xba, + 0x46, 0x63, 0xc7, 0x36, 0x2b, 0xa6, 0x6b, 0xa9, 0xbf, 0x38, 0x14, 0xc5, 0x09, 0xbc, 0xe1, 0xe4, + 0x41, 0xbc, 0xe1, 0x06, 0x5a, 0xe5, 0xf0, 0x6b, 0x70, 0x28, 0xab, 0x1c, 0x11, 0x85, 0xa7, 0x8f, + 0xdf, 0x3b, 0x65, 0x38, 0x49, 0x27, 0x5b, 0x73, 0xbc, 0x85, 0xa8, 0xde, 0x3b, 0x0c, 0x20, 0x8f, + 0xfb, 0x66, 0x12, 0xbd, 0x02, 0x12, 0xbf, 0xf0, 0x27, 0xa5, 0x62, 0x2f, 0xbf, 0xe1, 0xa6, 0x83, + 0x5d, 0x1c, 0x0e, 0x05, 0x29, 0xb1, 0x3b, 0x6f, 0x12, 0xb0, 0x91, 0x3e, 0x66, 0x2f, 0x91, 0x21, + 0x4f, 0xce, 0x69, 0xa9, 0x6b, 0xa9, 0x38, 0x4c, 0xf0, 0x51, 0x9e, 0x05, 0x76, 0xe4, 0x08, 0x37, + 0xa9, 0x9d, 0x61, 0x4b, 0xb2, 0x17, 0xd7, 0x93, 0x95, 0x11, 0xb8, 0x10, 0x4a, 0x30, 0x59, 0x47, + 0x6e, 0x49, 0xb7, 0x6d, 0x43, 0xdf, 0x1c, 0x96, 0xc7, 0xb7, 0xa8, 0xf7, 0xb0, 0xfa, 0x83, 0x8c, + 0xe8, 0x79, 0x9a, 0x60, 0x21, 0xdc, 0x67, 0x35, 0x22, 0x96, 0xe0, 0x43, 0x42, 0x67, 0x66, 0xfa, + 0x51, 0x1b, 0x81, 0xc7, 0xb6, 0x04, 0x63, 0xfe, 0x59, 0xbc, 0xb3, 0xdc, 0xf9, 0xcc, 0x2d, 0x77, + 0xdb, 0x3f, 0x06, 0x83, 0x9f, 0xf7, 0x9f, 0x01, 0x53, 0x5f, 0x9d, 0xd0, 0x51, 0x3e, 0xfe, 0x20, + 0x61, 0xb2, 0x36, 0x96, 0xc4, 0x1d, 0xfe, 0xb0, 0x8e, 0x0e, 0x7e, 0x68, 0x8c, 0x2e, 0x47, 0x2e, + 0xeb, 0x2e, 0xba, 0x5f, 0xfd, 0x92, 0x0c, 0x63, 0x75, 0xe4, 0x7a, 0xe3, 0x2d, 0x77, 0xf3, 0xf3, + 0xa0, 0x1a, 0xae, 0x30, 0x2b, 0x1e, 0x13, 0x74, 0x0d, 0xe3, 0x6e, 0x98, 0xe8, 0xd8, 0x56, 0x13, + 0x39, 0x0e, 0x5d, 0xbd, 0x60, 0x1d, 0xd5, 0x7a, 0x8d, 0xfe, 0x98, 0xb5, 0xd9, 0x55, 0xff, 0x1f, + 0x2d, 0xfc, 0x3d, 0xa9, 0x19, 0x40, 0x28, 0xd1, 0x0a, 0x8e, 0xda, 0x0c, 0x88, 0x2b, 0x3c, 0x7d, + 0xa0, 0x3f, 0x2f, 0xc3, 0x54, 0x1d, 0xb9, 0x81, 0x14, 0x13, 0x6c, 0x72, 0x44, 0xc3, 0xcb, 0x41, + 0x29, 0x1f, 0x0c, 0x4a, 0xf1, 0x7b, 0x53, 0x79, 0x69, 0x06, 0xc4, 0x46, 0x78, 0x6f, 0xaa, 0x18, + 0x07, 0x23, 0x38, 0xbe, 0xf6, 0x48, 0x98, 0xc0, 0xbc, 0xe0, 0x06, 0xfb, 0xcb, 0xd9, 0xb0, 0xf1, + 0x7e, 0x39, 0xa5, 0xc6, 0x7b, 0x07, 0xe4, 0xb6, 0x75, 0xfb, 0xa2, 0x83, 0x1b, 0xee, 0xa4, 0x88, + 0xd9, 0xbe, 0xe2, 0x65, 0xd7, 0xc8, 0x5f, 0xbd, 0xfd, 0x34, 0x73, 0xc9, 0xfc, 0x34, 0x1f, 0x92, + 0x12, 0x8d, 0x84, 0x64, 0xee, 0x30, 0xc4, 0x26, 0x9f, 0x60, 0xdc, 0x8c, 0x29, 0x3b, 0x7d, 0xe5, + 0x78, 0x91, 0x0c, 0xe3, 0xde, 0xb8, 0x8d, 0xed, 0xf1, 0xf3, 0x07, 0x57, 0x87, 0xde, 0x86, 0x7e, + 0xc2, 0x1e, 0xd8, 0x97, 0xc8, 0xf0, 0xcc, 0xfb, 0x04, 0x3d, 0x70, 0x5c, 0xe1, 0xe9, 0xe3, 0xf1, + 0x6e, 0x82, 0x07, 0x6e, 0x0f, 0xea, 0x9b, 0x64, 0x90, 0x17, 0x91, 0x3b, 0x6a, 0x2b, 0xf2, 0x1d, + 0xc2, 0x21, 0x8e, 0x38, 0x81, 0x61, 0x9e, 0x67, 0x17, 0xd1, 0x70, 0x1a, 0x90, 0x58, 0x6c, 0x23, + 0x21, 0x06, 0xd2, 0x47, 0xed, 0xfd, 0x04, 0x35, 0xb2, 0xb9, 0xf0, 0x0b, 0x43, 0xe8, 0x55, 0x47, + 0xbb, 0xf0, 0xe1, 0x0b, 0x10, 0xd3, 0x38, 0xac, 0xf6, 0xd6, 0xab, 0xf0, 0x91, 0xdc, 0x53, 0x0a, + 0x5e, 0x63, 0xdf, 0x42, 0xcd, 0x8b, 0xa8, 0xc5, 0xde, 0xfb, 0x36, 0x28, 0x74, 0xa7, 0x60, 0xac, + 0x49, 0xa8, 0x61, 0xf0, 0xc6, 0x35, 0xff, 0x35, 0xc1, 0xa5, 0xfb, 0x7c, 0x47, 0x44, 0x7e, 0x1f, + 0xe1, 0xa5, 0xfb, 0x02, 0xc5, 0x8f, 0xc0, 0x6c, 0x21, 0xb3, 0x8c, 0x4a, 0xd3, 0x32, 0xd5, 0xff, + 0x7c, 0x70, 0x58, 0xae, 0x82, 0x09, 0xa3, 0x69, 0x99, 0x38, 0x0c, 0x85, 0x7f, 0x08, 0x28, 0x48, + 0xf0, 0xbf, 0x96, 0xb7, 0xad, 0xfb, 0x0c, 0xba, 0x6b, 0x1e, 0x26, 0x0c, 0x6a, 0x4c, 0x78, 0xac, + 0x1f, 0x96, 0x31, 0xd1, 0xa3, 0xec, 0xf4, 0x21, 0xfb, 0x64, 0xe8, 0xdd, 0x46, 0xba, 0xc2, 0x87, + 0xc5, 0x2a, 0xf0, 0x20, 0xc3, 0x19, 0x5b, 0x8b, 0x43, 0x19, 0xce, 0x62, 0x18, 0x18, 0xc1, 0x8d, + 0x15, 0x21, 0x8e, 0xa9, 0xaf, 0x01, 0x1f, 0x00, 0x9d, 0xe1, 0x99, 0x87, 0x03, 0xa2, 0x73, 0x38, + 0x26, 0xe2, 0x87, 0x69, 0x88, 0x4c, 0x6a, 0xf1, 0xa8, 0xff, 0x65, 0x18, 0xe0, 0xdc, 0x36, 0x88, + 0xbf, 0x02, 0xf1, 0x56, 0x50, 0xdf, 0x26, 0x89, 0x86, 0x40, 0xd9, 0x27, 0x41, 0x8f, 0xca, 0x50, + 0x10, 0x7c, 0x8b, 0x50, 0x6c, 0x12, 0x91, 0xf2, 0xd3, 0x07, 0xf0, 0x85, 0x32, 0xcc, 0x60, 0x1f, + 0x81, 0x36, 0xd2, 0x6d, 0xd2, 0x51, 0x0e, 0xc5, 0x51, 0xfe, 0xdd, 0xc2, 0x01, 0x7e, 0x78, 0x39, + 0x84, 0x7c, 0x0c, 0x05, 0x0a, 0xb1, 0xe8, 0x3e, 0x82, 0x2c, 0x8c, 0x64, 0x1b, 0xa5, 0x10, 0xb0, + 0x40, 0x55, 0x7c, 0x38, 0x78, 0x24, 0xf4, 0xc8, 0xe5, 0x85, 0xe1, 0x37, 0xb6, 0x11, 0x7b, 0xe4, + 0x8a, 0x30, 0x91, 0x3e, 0x26, 0x6f, 0xba, 0x99, 0x2e, 0x38, 0x37, 0xf4, 0x0b, 0x6d, 0xa4, 0xbe, + 0x36, 0x1b, 0x9c, 0x68, 0xfb, 0xfc, 0x50, 0x3c, 0x30, 0x0f, 0x10, 0x10, 0x5f, 0x81, 0xac, 0x6d, + 0x5d, 0x22, 0x4b, 0x5b, 0xd3, 0x1a, 0x7e, 0x26, 0xd7, 0x53, 0xb6, 0x77, 0xb6, 0x4d, 0x72, 0x32, + 0x74, 0x5a, 0xf3, 0x5f, 0x95, 0xeb, 0x60, 0xfa, 0x92, 0xe1, 0x6e, 0x2d, 0x21, 0xbd, 0x85, 0x6c, + 0xcd, 0xba, 0x84, 0x3d, 0xe6, 0xc6, 0x35, 0x3e, 0x91, 0xf7, 0x5f, 0x11, 0xb0, 0x2f, 0x3d, 0xa1, + 0x8c, 0xe6, 0xf8, 0x5b, 0x12, 0xcb, 0x33, 0x9a, 0xab, 0xf4, 0x15, 0xe6, 0x03, 0x32, 0x4c, 0x68, + 0xd6, 0x25, 0xaa, 0x24, 0xff, 0xc7, 0xe1, 0xea, 0x48, 0xe2, 0x89, 0x1e, 0x96, 0x5c, 0xc0, 0xfe, + 0xc8, 0x27, 0x7a, 0xb1, 0xc5, 0x8f, 0xe4, 0xe4, 0xd2, 0x94, 0x66, 0x5d, 0xaa, 0x23, 0x97, 0xb4, + 0x08, 0x75, 0x7d, 0x48, 0x4e, 0xd6, 0x86, 0x43, 0x08, 0xd2, 0x79, 0x78, 0xf0, 0x9e, 0x74, 0x17, + 0x21, 0x10, 0x50, 0xc0, 0xe2, 0xa8, 0x77, 0x11, 0xfa, 0x72, 0x30, 0x82, 0x18, 0x29, 0x32, 0x4c, + 0x6a, 0xd6, 0x25, 0x6f, 0x68, 0x58, 0x30, 0xda, 0xed, 0xe1, 0x8c, 0x90, 0x49, 0x8d, 0x7f, 0x5f, + 0x0c, 0x3e, 0x17, 0x23, 0x37, 0xfe, 0xfb, 0x30, 0x90, 0x3e, 0x0c, 0xcf, 0x23, 0x8d, 0xc5, 0x1f, + 0xa1, 0xcd, 0xe1, 0xe0, 0x30, 0x68, 0x83, 0x08, 0xd8, 0x38, 0xb4, 0x06, 0x11, 0xc5, 0xc1, 0x48, + 0x76, 0x4e, 0x66, 0x4a, 0x78, 0x98, 0x1f, 0x6e, 0x9b, 0x78, 0x6f, 0x32, 0xd7, 0x44, 0x3a, 0xec, + 0x72, 0x8c, 0x0c, 0x05, 0x8d, 0x04, 0x2e, 0x88, 0x02, 0x3c, 0xa4, 0x8f, 0xc7, 0xc7, 0x64, 0x98, + 0x22, 0x2c, 0x3c, 0x4c, 0xac, 0x80, 0x81, 0x1a, 0x15, 0x5b, 0x83, 0xc3, 0x69, 0x54, 0x31, 0x1c, + 0x8c, 0xe4, 0x56, 0x50, 0xcf, 0x8e, 0x1b, 0xe0, 0xf8, 0x78, 0x14, 0x82, 0x03, 0x1b, 0x63, 0x43, + 0x3c, 0x42, 0x3e, 0x88, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x9f, 0x17, 0xb4, 0xa2, 0x61, 0x62, 0x70, + 0x80, 0xa6, 0x30, 0x44, 0x18, 0x06, 0x6c, 0x0a, 0x87, 0x84, 0xc4, 0x37, 0x64, 0x00, 0xc2, 0xc0, + 0x8a, 0xb5, 0x8b, 0x2f, 0xf3, 0x19, 0x42, 0x77, 0xd6, 0xed, 0x56, 0x2f, 0xf7, 0x71, 0xab, 0x4f, + 0x18, 0xc2, 0x25, 0xe9, 0x4a, 0x20, 0x23, 0x65, 0xaf, 0x92, 0x23, 0x5f, 0x09, 0x8c, 0x2f, 0x3f, + 0x7d, 0x8c, 0xbf, 0x46, 0xac, 0xb9, 0xf0, 0x80, 0xe9, 0x6f, 0x0e, 0x05, 0x65, 0x66, 0xf6, 0x2f, + 0xf3, 0xb3, 0xff, 0x03, 0x60, 0x3b, 0xa8, 0x8d, 0xd8, 0xef, 0xe0, 0x68, 0xfa, 0x36, 0xe2, 0xe1, + 0x1d, 0x10, 0xfd, 0x85, 0x2c, 0x1c, 0xa5, 0x9d, 0xc8, 0x8f, 0x03, 0xc4, 0x09, 0xcf, 0xe1, 0x71, + 0x9d, 0x64, 0x1f, 0x94, 0x87, 0xb5, 0x20, 0x95, 0x64, 0x29, 0x53, 0x80, 0xbd, 0x91, 0xac, 0x6e, + 0xe4, 0xcb, 0xf7, 0x77, 0x74, 0xb3, 0x25, 0x1e, 0xee, 0xb7, 0x0f, 0xf0, 0xfe, 0x5a, 0xa3, 0xcc, + 0xaf, 0x35, 0xf6, 0x58, 0x99, 0x4c, 0xbc, 0x73, 0x8d, 0x45, 0x46, 0xd8, 0x1d, 0xf9, 0xce, 0x75, + 0x74, 0xd9, 0xe9, 0xa3, 0xf4, 0x5e, 0x19, 0xb2, 0x75, 0xcb, 0x76, 0xd5, 0xe7, 0x27, 0x69, 0x9d, + 0x44, 0xf2, 0x21, 0x48, 0xfe, 0xbb, 0x52, 0xe2, 0x6e, 0x69, 0x3e, 0x1b, 0x7f, 0xd4, 0x59, 0x77, + 0x75, 0xec, 0xd5, 0xed, 0x95, 0xcf, 0x5c, 0xd7, 0x9c, 0x34, 0x9e, 0x0e, 0x91, 0x5f, 0x3d, 0xfa, + 0x00, 0x46, 0x6a, 0xf1, 0x74, 0x22, 0x4b, 0x4e, 0x1f, 0xb7, 0x07, 0x8f, 0x52, 0xdf, 0xd6, 0x05, + 0xa3, 0x8d, 0xd4, 0xe7, 0x13, 0x97, 0x91, 0xaa, 0xbe, 0x8d, 0xc4, 0x8f, 0xc4, 0xc4, 0xba, 0xb6, + 0xe2, 0xf8, 0xb2, 0x72, 0x18, 0x5f, 0x36, 0x69, 0x83, 0x22, 0x07, 0xd0, 0x09, 0x4b, 0xa3, 0x6e, + 0x50, 0x31, 0x65, 0x8f, 0x24, 0x4e, 0xe7, 0xb1, 0x3a, 0x72, 0x89, 0x51, 0x59, 0xf3, 0x6f, 0x60, + 0x79, 0xfa, 0x50, 0x22, 0x76, 0x06, 0x17, 0xbc, 0xc8, 0x5d, 0x17, 0xbc, 0x7c, 0x80, 0x05, 0x67, + 0x85, 0x07, 0xe7, 0x89, 0xd1, 0x02, 0xe2, 0x99, 0x1c, 0x0a, 0x4c, 0xef, 0x08, 0x60, 0x5a, 0xe5, + 0x60, 0xba, 0x7d, 0x40, 0x2e, 0xd2, 0x07, 0xec, 0x57, 0x72, 0x70, 0x94, 0x4c, 0xfa, 0x8b, 0x66, + 0x8b, 0x46, 0x58, 0x7d, 0xab, 0x74, 0xc8, 0x9b, 0x6d, 0xfb, 0x43, 0xb0, 0x72, 0xb1, 0x9c, 0x73, + 0xdd, 0xb7, 0xe3, 0xcf, 0x91, 0x70, 0xae, 0x5e, 0x27, 0x8a, 0x77, 0xda, 0xc4, 0x6f, 0xc8, 0x0f, + 0xfe, 0xe3, 0xef, 0x32, 0x1a, 0x13, 0xbf, 0xcb, 0xe8, 0x4f, 0x93, 0xad, 0xdb, 0xe1, 0xa2, 0xbb, + 0x04, 0x9e, 0xb2, 0xed, 0x94, 0x60, 0x45, 0x4f, 0x80, 0xbb, 0x9f, 0x0c, 0x77, 0xb2, 0x30, 0x82, + 0xc8, 0x80, 0xee, 0x64, 0x98, 0xc0, 0x61, 0xba, 0x93, 0xf5, 0x63, 0x60, 0x04, 0xb7, 0xda, 0xe7, + 0xe8, 0x6e, 0x3e, 0x6e, 0x37, 0xea, 0x5f, 0x49, 0xa9, 0x8f, 0xd2, 0x3f, 0xcc, 0x24, 0xf2, 0x7f, + 0xc6, 0x7c, 0xc5, 0x0f, 0xd3, 0x49, 0x3c, 0x9a, 0xe3, 0xc8, 0x8d, 0x60, 0xdd, 0x48, 0xc2, 0xbe, + 0xe8, 0xe7, 0x8d, 0x96, 0xbb, 0x35, 0xa4, 0x13, 0x1d, 0x97, 0x3c, 0x5a, 0xfe, 0xf5, 0xc8, 0xf8, + 0x45, 0xfd, 0xd7, 0x4c, 0xa2, 0x10, 0x52, 0x81, 0x48, 0x30, 0x5b, 0x11, 0x22, 0x4e, 0x10, 0xf8, + 0x29, 0x96, 0xde, 0x08, 0x35, 0xfa, 0x9c, 0xd1, 0x42, 0xd6, 0xc3, 0x50, 0xa3, 0x31, 0x5f, 0xc3, + 0xd3, 0xe8, 0x38, 0x72, 0x3f, 0xa1, 0x1a, 0x1d, 0x88, 0x64, 0x48, 0x1a, 0x1d, 0x4b, 0x2f, 0x7d, + 0x19, 0xbf, 0x7a, 0x8a, 0x4e, 0xa4, 0x96, 0x0d, 0xf3, 0xa2, 0xfa, 0xcf, 0x79, 0xff, 0x62, 0xe6, + 0xf3, 0x86, 0xbb, 0x45, 0x63, 0xc1, 0xfc, 0x9e, 0xf0, 0xdd, 0x28, 0x03, 0xc4, 0x7b, 0xe1, 0xc3, + 0x49, 0xe5, 0xf6, 0x85, 0x93, 0x2a, 0xc2, 0xb4, 0x61, 0xba, 0xc8, 0x36, 0xf5, 0xf6, 0x42, 0x5b, + 0xdf, 0x74, 0x4e, 0x8d, 0xf5, 0xbc, 0xbc, 0xae, 0xc2, 0xe4, 0xd1, 0xf8, 0x3f, 0xd8, 0xeb, 0x2b, + 0xc7, 0xf9, 0xeb, 0x2b, 0x23, 0xa2, 0x5f, 0x4d, 0x44, 0x47, 0xbf, 0x0a, 0xa2, 0x5b, 0x41, 0xff, + 0xe0, 0xd8, 0xa2, 0xb6, 0x71, 0xc2, 0x70, 0x7f, 0x67, 0x05, 0xa3, 0xb0, 0x05, 0xa1, 0x1f, 0x5f, + 0x27, 0x27, 0x5a, 0xdd, 0xf3, 0x14, 0x61, 0xb6, 0x5b, 0x09, 0x12, 0x5b, 0xa8, 0x6c, 0xe5, 0xe5, + 0xae, 0xca, 0x07, 0x26, 0x4f, 0x56, 0xc0, 0xe4, 0x61, 0x95, 0x2a, 0x27, 0xa6, 0x54, 0x49, 0x16, + 0x0b, 0x45, 0x6a, 0x3b, 0x82, 0xd3, 0x48, 0x39, 0x38, 0xe6, 0x47, 0xbb, 0xed, 0x74, 0x90, 0x6e, + 0xeb, 0x66, 0x13, 0xa9, 0x9f, 0x94, 0x86, 0x61, 0xf6, 0x2e, 0xc0, 0xb8, 0xd1, 0xb4, 0xcc, 0xba, + 0xf1, 0x4c, 0xff, 0x72, 0xb9, 0xf8, 0x20, 0xeb, 0x58, 0x22, 0x15, 0xfa, 0x87, 0x16, 0xfc, 0xab, + 0x54, 0x60, 0xa2, 0xa9, 0xdb, 0x2d, 0x12, 0x84, 0x2f, 0xd7, 0x75, 0x91, 0x53, 0x24, 0xa1, 0x92, + 0xff, 0x8b, 0x16, 0xfe, 0xad, 0xd4, 0x78, 0x21, 0xe6, 0xbb, 0xa2, 0x79, 0x44, 0x12, 0x9b, 0x0f, + 0x7f, 0xe2, 0x64, 0xee, 0x49, 0xc7, 0x46, 0x6d, 0x7c, 0x07, 0x3d, 0xe9, 0x21, 0x26, 0xb4, 0x30, + 0x21, 0xe9, 0xf2, 0x00, 0x2e, 0x6a, 0x1f, 0x1a, 0xa3, 0x5e, 0x1e, 0x10, 0xe2, 0x22, 0x7d, 0xcd, + 0x7c, 0x57, 0x1e, 0xa6, 0x49, 0xaf, 0x46, 0xc5, 0xa9, 0xbe, 0x10, 0x5f, 0x21, 0xed, 0xde, 0x83, + 0xf6, 0xd4, 0xfa, 0xc1, 0xc7, 0xe4, 0x02, 0xc8, 0x17, 0x83, 0x80, 0x83, 0xde, 0x63, 0xd2, 0x7d, + 0x7b, 0x9f, 0xaf, 0x59, 0xc2, 0xd3, 0xa8, 0xf7, 0xed, 0xe3, 0x8b, 0x4f, 0x1f, 0x9f, 0x5f, 0x95, + 0x41, 0x2e, 0xb6, 0x5a, 0x6a, 0xf3, 0xe0, 0x50, 0x5c, 0x03, 0x93, 0x7e, 0x9b, 0x09, 0x63, 0x40, + 0xb2, 0x49, 0x49, 0x17, 0x41, 0x03, 0xd9, 0x14, 0x5b, 0x23, 0xdf, 0x55, 0x88, 0x29, 0x3b, 0x7d, + 0x50, 0x7e, 0x73, 0x8c, 0x36, 0x9a, 0x39, 0xcb, 0xba, 0x88, 0x8f, 0xca, 0x3c, 0x5f, 0x86, 0xdc, + 0x02, 0x72, 0x9b, 0x5b, 0x43, 0x6a, 0x33, 0x3b, 0x76, 0xdb, 0x6f, 0x33, 0xfb, 0xee, 0xc3, 0xef, + 0x6f, 0xc3, 0xfa, 0x6c, 0xcd, 0x62, 0x96, 0x46, 0x1d, 0xdd, 0x39, 0xb6, 0xf4, 0xf4, 0xc1, 0xf9, + 0x57, 0x19, 0x66, 0x82, 0x15, 0x2e, 0x82, 0xc9, 0xaf, 0x64, 0x1e, 0x6e, 0xeb, 0x9d, 0xea, 0x17, + 0x93, 0x85, 0x48, 0x0b, 0x64, 0xca, 0xd7, 0x2c, 0xe5, 0x85, 0xc5, 0x04, 0xc1, 0xd3, 0xc4, 0x18, + 0x1c, 0xc1, 0x0c, 0x5e, 0x86, 0x71, 0xcc, 0xd0, 0xbc, 0xb1, 0x8b, 0x5d, 0x07, 0xb9, 0x85, 0xc6, + 0x67, 0x0d, 0x65, 0xa1, 0xf1, 0x76, 0x7e, 0xa1, 0x51, 0x30, 0xe2, 0xb1, 0xbf, 0xce, 0x98, 0xd0, + 0x97, 0xc6, 0xfb, 0x7f, 0xe8, 0xcb, 0x8c, 0x09, 0x7c, 0x69, 0xfa, 0x94, 0x9f, 0x3e, 0xa2, 0xaf, + 0xfb, 0x4f, 0xb4, 0xb3, 0xf5, 0x37, 0x54, 0xd5, 0xff, 0xeb, 0x18, 0x64, 0xcf, 0x79, 0x0f, 0xff, + 0x2b, 0xbc, 0x11, 0xeb, 0xe5, 0x43, 0x08, 0xce, 0xf0, 0x14, 0xc8, 0x7a, 0xf4, 0xe9, 0xb4, 0xe5, + 0x46, 0xb1, 0xdd, 0x5d, 0x8f, 0x11, 0x0d, 0xff, 0xa7, 0x9c, 0x84, 0xbc, 0x63, 0xed, 0xd8, 0x4d, + 0xcf, 0x7c, 0xf6, 0x34, 0x86, 0xbe, 0x25, 0x0d, 0x4a, 0xca, 0x91, 0x9e, 0x1d, 0x9e, 0xcb, 0x28, + 0x73, 0x41, 0x92, 0xcc, 0x5d, 0x90, 0x94, 0x60, 0xff, 0x40, 0x80, 0xb7, 0xf4, 0x35, 0xe2, 0xaf, + 0xf0, 0x5d, 0x81, 0xad, 0x61, 0xc1, 0x1e, 0x21, 0x96, 0x83, 0xaa, 0x43, 0x52, 0x87, 0x6f, 0x5e, + 0xb4, 0x41, 0x1c, 0xf8, 0x91, 0x3a, 0x7c, 0x0b, 0xf0, 0x30, 0x92, 0x53, 0xea, 0x79, 0xea, 0xa4, + 0x7a, 0xef, 0x30, 0xd1, 0xcd, 0x72, 0x4a, 0x7f, 0x20, 0x74, 0x86, 0xe8, 0xbc, 0x3a, 0x30, 0x3a, + 0x87, 0xe4, 0xbe, 0xfa, 0x07, 0x32, 0x8e, 0x84, 0xe9, 0x1b, 0x39, 0xe2, 0x17, 0x1d, 0x25, 0x86, + 0xc8, 0x1b, 0x83, 0xb9, 0x38, 0xd0, 0xd3, 0x83, 0x87, 0x06, 0xe7, 0x45, 0xc7, 0xf0, 0x3f, 0xea, + 0xd0, 0xe0, 0xa2, 0x8c, 0xa4, 0x0f, 0xe4, 0x1b, 0xc9, 0xc5, 0x62, 0xc5, 0xa6, 0x6b, 0xec, 0x0e, + 0xb9, 0xa5, 0xf1, 0xc3, 0x4b, 0xc2, 0x68, 0xc0, 0xfb, 0x24, 0x44, 0x38, 0x1c, 0x75, 0x34, 0x60, + 0x31, 0x36, 0xd2, 0x87, 0xe9, 0x6f, 0xf3, 0x9e, 0xf4, 0xe8, 0xda, 0xcc, 0x9b, 0xe8, 0x6a, 0x00, + 0x3a, 0x38, 0x5a, 0x67, 0x60, 0x8a, 0x99, 0xfa, 0xfb, 0x17, 0xd6, 0x70, 0x69, 0x49, 0x0f, 0xba, + 0x07, 0x22, 0x1b, 0xfa, 0xc2, 0x40, 0x82, 0x05, 0x5f, 0x11, 0x26, 0x46, 0x72, 0x1f, 0x9c, 0x3f, + 0x86, 0x8d, 0x08, 0xab, 0xdf, 0x63, 0xb1, 0xaa, 0xf1, 0x58, 0xdd, 0x2a, 0x22, 0x26, 0xb1, 0x31, + 0x4d, 0x68, 0xde, 0xf8, 0xce, 0x00, 0x2e, 0x8d, 0x83, 0xeb, 0x29, 0x03, 0xf3, 0x91, 0x3e, 0x62, + 0xaf, 0x20, 0xdd, 0x61, 0x9d, 0x98, 0xec, 0xc3, 0xe9, 0x0e, 0xe9, 0x6c, 0x40, 0xe6, 0x66, 0x03, + 0x09, 0xfd, 0xed, 0x43, 0x37, 0x52, 0x9f, 0xb9, 0x7e, 0x10, 0x65, 0x87, 0xec, 0x6f, 0xdf, 0x97, + 0x83, 0xf4, 0xc1, 0xf9, 0x47, 0x19, 0x60, 0xd1, 0xb6, 0x76, 0x3a, 0x35, 0xbb, 0x85, 0x6c, 0xf5, + 0x6f, 0xc2, 0x09, 0xc0, 0x4b, 0x87, 0x30, 0x01, 0x58, 0x05, 0xd8, 0x0c, 0x88, 0x53, 0x0d, 0xbf, + 0x59, 0xcc, 0xdc, 0x0f, 0x99, 0xd2, 0x18, 0x1a, 0xfc, 0x95, 0xb3, 0x4f, 0xe5, 0x31, 0x8e, 0xeb, + 0xb3, 0x42, 0x72, 0xc3, 0x9c, 0x00, 0xbc, 0x3b, 0xc0, 0xba, 0xc1, 0x61, 0x7d, 0xd7, 0x01, 0x38, + 0x49, 0x1f, 0xf3, 0x7f, 0x1a, 0x83, 0x49, 0xb2, 0x5d, 0x47, 0x64, 0xfa, 0xf7, 0x21, 0xe8, 0xbf, + 0x39, 0x04, 0xd0, 0xd7, 0x60, 0xca, 0x0a, 0xa9, 0x93, 0x3e, 0x95, 0x5d, 0x80, 0x89, 0x85, 0x9d, + 0xe1, 0x4b, 0xe3, 0xc8, 0xa8, 0x1f, 0x67, 0x91, 0xd7, 0x78, 0xe4, 0x6f, 0x8f, 0x91, 0x37, 0x43, + 0x71, 0x98, 0xd0, 0xbf, 0x27, 0x80, 0x7e, 0x8d, 0x83, 0xbe, 0x78, 0x10, 0x56, 0x46, 0x10, 0x6e, + 0x5f, 0x86, 0x2c, 0x3e, 0x1d, 0xf7, 0x5b, 0x29, 0xce, 0xef, 0x4f, 0xc1, 0x18, 0x6e, 0xb2, 0xc1, + 0xbc, 0xc3, 0x7f, 0xf5, 0xbe, 0xe8, 0x1b, 0x2e, 0xb2, 0x03, 0x8f, 0x05, 0xff, 0xd5, 0xe3, 0xc1, + 0xf7, 0x4a, 0x76, 0x4e, 0xe5, 0xc9, 0x46, 0x64, 0x90, 0x30, 0xf0, 0xa4, 0x84, 0x95, 0xf8, 0xd0, + 0xce, 0xcb, 0x0d, 0x32, 0x29, 0xe9, 0xc3, 0x48, 0xfa, 0xc0, 0x7f, 0x25, 0x0b, 0xa7, 0xc8, 0xaa, + 0xd2, 0x82, 0x6d, 0x6d, 0x77, 0xdd, 0x6e, 0x65, 0x1c, 0x5c, 0x17, 0xae, 0x87, 0x19, 0x97, 0xf3, + 0xc7, 0xa6, 0x3a, 0xd1, 0x95, 0xaa, 0xfe, 0x19, 0xeb, 0x53, 0xf1, 0x34, 0x1e, 0xc9, 0xb9, 0x18, + 0x01, 0x46, 0xf1, 0x9e, 0x78, 0xa1, 0x5e, 0x90, 0x51, 0x66, 0x91, 0x4a, 0x1e, 0x68, 0xcd, 0x32, + 0xd0, 0xa9, 0x9c, 0x88, 0x4e, 0x7d, 0x30, 0xd0, 0xa9, 0x9f, 0xe3, 0x74, 0x6a, 0xf1, 0xe0, 0x22, + 0x49, 0x5f, 0xb7, 0x5e, 0x1b, 0x6c, 0x0c, 0x05, 0xdb, 0x76, 0xdb, 0x29, 0x6c, 0xd6, 0xb1, 0xfe, + 0x48, 0x59, 0xce, 0x1f, 0x89, 0xbf, 0x8f, 0x22, 0xc1, 0x4c, 0x98, 0xe7, 0x3a, 0x42, 0x97, 0x66, + 0x40, 0x32, 0x7c, 0xee, 0x24, 0xa3, 0x35, 0xd0, 0x5c, 0x37, 0xb6, 0xa0, 0x11, 0xac, 0x2d, 0xcd, + 0x40, 0x7e, 0xc1, 0x68, 0xbb, 0xc8, 0x56, 0xbf, 0x46, 0x67, 0xba, 0xaf, 0x4d, 0x71, 0x00, 0x98, + 0x87, 0xfc, 0x06, 0x2e, 0x8d, 0x9a, 0xcc, 0x37, 0x89, 0xb5, 0x1e, 0xc2, 0xa1, 0x46, 0xff, 0x4d, + 0x1a, 0x9d, 0xaf, 0x8b, 0xcc, 0xd0, 0xa6, 0xc8, 0x09, 0xa2, 0xf3, 0xf5, 0x67, 0x61, 0x24, 0x17, + 0x53, 0xe5, 0x35, 0xb4, 0xed, 0x8d, 0xf1, 0x17, 0xd3, 0x43, 0xb8, 0x00, 0xb2, 0xd1, 0x72, 0x70, + 0xe7, 0x38, 0xa1, 0x79, 0x8f, 0x49, 0x7d, 0x85, 0xba, 0x45, 0x45, 0x58, 0x1e, 0xb5, 0xaf, 0x90, + 0x10, 0x17, 0xe9, 0x63, 0xf6, 0x43, 0xec, 0x28, 0xda, 0x69, 0xeb, 0x4d, 0xe4, 0x71, 0x9f, 0x1a, + 0x6a, 0xa4, 0x27, 0xcb, 0xfa, 0x3d, 0x19, 0xd3, 0x4e, 0x73, 0x07, 0x68, 0xa7, 0x83, 0x2e, 0x43, + 0x06, 0x32, 0xc7, 0x15, 0x3f, 0xb4, 0x65, 0xc8, 0x58, 0x36, 0x46, 0x70, 0xed, 0xa8, 0x7f, 0x90, + 0x76, 0xa4, 0xad, 0x75, 0xd0, 0x4d, 0x1a, 0x2a, 0xac, 0xa1, 0x1d, 0x9a, 0x1d, 0x64, 0x93, 0x26, + 0x9a, 0x87, 0x11, 0xa0, 0x35, 0x43, 0xd1, 0xfa, 0x02, 0x1d, 0x46, 0x53, 0xde, 0x27, 0x75, 0x2c, + 0xdb, 0x4d, 0xb6, 0x4f, 0xea, 0x71, 0xa7, 0xe1, 0xff, 0x92, 0x1e, 0xbc, 0xe2, 0xcf, 0x55, 0x0f, + 0x6b, 0xf8, 0x4c, 0x70, 0xf0, 0xaa, 0x1f, 0x03, 0xe9, 0xc3, 0xfb, 0xb6, 0x43, 0x1a, 0x3c, 0x07, + 0x6d, 0x8e, 0xb4, 0x0d, 0x0c, 0x6d, 0xe8, 0x1c, 0xa4, 0x39, 0x46, 0xf3, 0x90, 0x3e, 0x5e, 0xdf, + 0x63, 0x06, 0xce, 0xb7, 0x8c, 0x70, 0xe0, 0xf4, 0x5b, 0x66, 0x6e, 0xc0, 0x96, 0x39, 0xe8, 0xfe, + 0x0f, 0x95, 0xf5, 0xf0, 0x06, 0xcc, 0x41, 0xf6, 0x7f, 0x62, 0x98, 0x48, 0x1f, 0xf1, 0xb7, 0xca, + 0x90, 0xab, 0x8f, 0x7e, 0xbc, 0x1c, 0x74, 0x2e, 0x82, 0x65, 0x55, 0x1f, 0xda, 0x70, 0x39, 0xc8, + 0x5c, 0x24, 0x92, 0x85, 0x11, 0x04, 0xde, 0x3f, 0x0a, 0x53, 0x78, 0x49, 0xc4, 0xdf, 0x66, 0xfd, + 0x1e, 0x1d, 0x35, 0x1f, 0x4a, 0xb1, 0xad, 0xde, 0x0d, 0xe3, 0xfe, 0xfe, 0x1d, 0x1d, 0x39, 0x67, + 0xc5, 0xda, 0xa7, 0xcf, 0xa5, 0x16, 0xfc, 0x7f, 0x20, 0x67, 0x88, 0xa1, 0xef, 0xd5, 0x0e, 0xea, + 0x0c, 0x71, 0xa8, 0xfb, 0xb5, 0x7f, 0x1a, 0x8e, 0xa8, 0xff, 0x39, 0x3d, 0xcc, 0xbb, 0xf7, 0x71, + 0xb3, 0x3d, 0xf6, 0x71, 0x3f, 0xc9, 0x62, 0x59, 0xe7, 0xb1, 0xbc, 0x43, 0x54, 0x84, 0x43, 0x1c, + 0x6b, 0xdf, 0x1b, 0xc0, 0x79, 0x8e, 0x83, 0x73, 0xee, 0x40, 0xbc, 0x8c, 0xe0, 0xe0, 0x63, 0x36, + 0x1c, 0x73, 0x3f, 0x95, 0x62, 0x3b, 0xee, 0x3a, 0x55, 0x91, 0xdd, 0x77, 0xaa, 0x82, 0x6b, 0xe9, + 0xb9, 0x03, 0xb6, 0xf4, 0x4f, 0xb1, 0xda, 0xd1, 0xe0, 0xb5, 0xe3, 0x29, 0xe2, 0x88, 0x0c, 0x6f, + 0x64, 0x7e, 0x5f, 0xa0, 0x1e, 0xe7, 0x39, 0xf5, 0x28, 0x1d, 0x8c, 0x99, 0xf4, 0xf5, 0xe3, 0x0f, + 0xfd, 0x09, 0xed, 0x21, 0xb7, 0xf7, 0x41, 0xb7, 0x8a, 0x39, 0x21, 0x0e, 0x6d, 0xe4, 0x1e, 0x64, + 0xab, 0xb8, 0x1f, 0x27, 0x23, 0x88, 0xc5, 0x36, 0x0d, 0x93, 0x98, 0xa7, 0xf3, 0x46, 0x6b, 0x13, + 0xb9, 0xea, 0xeb, 0x88, 0x8f, 0xa2, 0x1f, 0xf9, 0x72, 0x48, 0xe1, 0x89, 0xa2, 0xce, 0xbb, 0x26, + 0xf5, 0xe8, 0x20, 0x4c, 0xce, 0x32, 0x0c, 0x8e, 0x3a, 0x82, 0x62, 0x5f, 0x0e, 0xd2, 0x87, 0xec, + 0xe3, 0xc4, 0xdd, 0x66, 0x59, 0xdf, 0xb3, 0x76, 0x5c, 0xf5, 0x81, 0x21, 0x74, 0xd0, 0x73, 0x90, + 0x6f, 0x63, 0x6a, 0xf4, 0x58, 0x46, 0xfc, 0x74, 0x87, 0x8a, 0x80, 0x94, 0xaf, 0xd1, 0x3f, 0x93, + 0x9e, 0xcd, 0x08, 0xe5, 0x48, 0xe8, 0x8c, 0xfa, 0x6c, 0x46, 0x9f, 0xf2, 0x47, 0x72, 0xc7, 0xce, + 0xb8, 0x57, 0xba, 0xb1, 0x6d, 0xb8, 0x43, 0x8a, 0xe0, 0xd0, 0xf6, 0x68, 0xf9, 0x11, 0x1c, 0xf0, + 0x4b, 0xd2, 0x13, 0xa3, 0x8c, 0x54, 0xbc, 0xdf, 0x47, 0x7d, 0x62, 0x34, 0xbe, 0xf8, 0xf4, 0x31, + 0xf9, 0x75, 0xd2, 0xb2, 0xce, 0x11, 0xe7, 0xdb, 0x14, 0xfd, 0x7a, 0x07, 0x6e, 0x2c, 0x84, 0xb5, + 0xc3, 0x6b, 0x2c, 0x3d, 0xcb, 0x4f, 0x1f, 0x98, 0xff, 0xf6, 0xd3, 0x90, 0x9b, 0x47, 0x17, 0x76, + 0x36, 0xd5, 0xdb, 0x61, 0xbc, 0x61, 0x23, 0x54, 0x31, 0x37, 0x2c, 0x4f, 0xba, 0xae, 0xf7, 0xec, + 0x43, 0x42, 0xdf, 0x3c, 0x3c, 0xb6, 0x90, 0xde, 0x0a, 0xcf, 0x9f, 0xf9, 0xaf, 0xea, 0xcb, 0x25, + 0xc8, 0xd6, 0x5d, 0xdd, 0x55, 0x27, 0x02, 0x6c, 0xd5, 0x07, 0x58, 0x2c, 0x6e, 0xe7, 0xb1, 0xb8, + 0x9e, 0x93, 0x05, 0xe6, 0x60, 0xd6, 0xfb, 0x3f, 0x02, 0x00, 0x15, 0xc6, 0xef, 0x73, 0x2c, 0xd3, + 0xcb, 0xe1, 0x1f, 0x81, 0xf4, 0xdf, 0xd5, 0xd7, 0x04, 0xe2, 0xbe, 0x93, 0x13, 0xf7, 0xa3, 0xc5, + 0x8a, 0x18, 0xc1, 0x4a, 0x9b, 0x04, 0x13, 0x9e, 0x68, 0x97, 0x90, 0xde, 0x72, 0xd4, 0x9f, 0x0a, + 0x95, 0x3f, 0x42, 0xcc, 0xea, 0x87, 0x85, 0x83, 0x71, 0x92, 0x5a, 0x05, 0xc4, 0xa3, 0x3d, 0x3a, + 0xfc, 0xcd, 0x7f, 0x89, 0x0f, 0x46, 0x72, 0x16, 0xb2, 0x86, 0xb9, 0x61, 0x51, 0xff, 0xc2, 0x2b, + 0x23, 0x68, 0x7b, 0x3a, 0xa1, 0xe1, 0x8c, 0x82, 0x91, 0x3a, 0xe3, 0xd9, 0x1a, 0xc9, 0xa5, 0x77, + 0x59, 0xaf, 0x74, 0xf5, 0xff, 0xdf, 0x57, 0xd8, 0x8a, 0x02, 0xd9, 0x8e, 0xee, 0x6e, 0xd1, 0xa2, + 0xf1, 0xb3, 0x67, 0x23, 0xef, 0x98, 0xba, 0x69, 0x99, 0x7b, 0xdb, 0xc6, 0x33, 0x83, 0xbb, 0x75, + 0xb9, 0x34, 0x8f, 0xf3, 0x4d, 0x64, 0x22, 0x5b, 0x77, 0x51, 0x7d, 0x77, 0x13, 0xcf, 0xb1, 0xc6, + 0x35, 0x36, 0x29, 0xb1, 0xfe, 0x7b, 0x1c, 0x47, 0xeb, 0xff, 0x86, 0xd1, 0x46, 0x38, 0x52, 0x13, + 0xd5, 0x7f, 0xff, 0x3d, 0x91, 0xfe, 0xf7, 0x28, 0x22, 0x7d, 0x34, 0xfe, 0x4d, 0x82, 0xa9, 0xba, + 0xa7, 0x70, 0xf5, 0x9d, 0xed, 0x6d, 0xdd, 0xde, 0x53, 0xaf, 0x0d, 0x51, 0x61, 0x54, 0x33, 0xc3, + 0xfb, 0xa5, 0xfc, 0x81, 0xf0, 0xb5, 0xd2, 0xb4, 0x69, 0x33, 0x25, 0x24, 0x6e, 0x07, 0x8f, 0x85, + 0x9c, 0xa7, 0xde, 0xbe, 0xc7, 0x65, 0x6c, 0x43, 0x20, 0x39, 0x05, 0x23, 0x5a, 0xf5, 0xe5, 0x6d, + 0x04, 0xd1, 0x34, 0x24, 0x38, 0x5a, 0x77, 0xf5, 0xe6, 0xc5, 0x45, 0xcb, 0xb6, 0x76, 0x5c, 0xc3, + 0x44, 0x8e, 0xfa, 0x88, 0x10, 0x01, 0x5f, 0xff, 0x33, 0xa1, 0xfe, 0xab, 0xff, 0x9e, 0x11, 0x1d, + 0x45, 0x83, 0x6e, 0x95, 0x25, 0x1f, 0x11, 0xa0, 0x4a, 0x6c, 0x5c, 0x14, 0xa1, 0x98, 0xbe, 0xd0, + 0xde, 0x22, 0x43, 0xa1, 0x7c, 0x7f, 0xc7, 0xb2, 0xdd, 0x65, 0xab, 0xa9, 0xb7, 0x1d, 0xd7, 0xb2, + 0x91, 0x5a, 0x8b, 0x95, 0x9a, 0xd7, 0xc3, 0xb4, 0xac, 0x66, 0x38, 0x38, 0xd2, 0x37, 0x56, 0xed, + 0x64, 0x5e, 0xc7, 0x3f, 0x2e, 0xbc, 0xcb, 0x48, 0xa4, 0xd2, 0xcd, 0x51, 0x84, 0x9e, 0xf7, 0xea, + 0xd2, 0x92, 0x1d, 0x96, 0x10, 0xdb, 0x79, 0x14, 0x62, 0x6a, 0x04, 0x4b, 0xe5, 0x12, 0x4c, 0xd7, + 0x77, 0x2e, 0x04, 0x44, 0x1c, 0xd6, 0x08, 0x79, 0xbd, 0x70, 0x94, 0x0a, 0xaa, 0x78, 0x2c, 0xa1, + 0x08, 0xf9, 0x5e, 0x07, 0xd3, 0x0e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, 0x46, 0xa7, 0xe8, 0x5f, + 0x6a, 0xfa, 0x02, 0x7c, 0x9f, 0x04, 0xd3, 0xb5, 0x0e, 0x32, 0x51, 0x8b, 0x78, 0x41, 0x72, 0x02, + 0x7c, 0x79, 0x42, 0x01, 0x72, 0x84, 0x22, 0x04, 0x18, 0x7a, 0x2c, 0xcf, 0xfb, 0xc2, 0x0b, 0x13, + 0x12, 0x09, 0x2e, 0xae, 0xb4, 0xf4, 0x05, 0xf7, 0x55, 0x09, 0x26, 0xb5, 0x1d, 0x73, 0xd5, 0xb6, + 0xbc, 0xd1, 0xd8, 0x56, 0xef, 0x08, 0x3b, 0x88, 0x9b, 0xe0, 0x58, 0x6b, 0xc7, 0xc6, 0xeb, 0x4f, + 0x15, 0xb3, 0x8e, 0x9a, 0x96, 0xd9, 0x72, 0x70, 0x3d, 0x72, 0xda, 0xfe, 0x0f, 0xb7, 0x65, 0x9f, + 0xff, 0x6d, 0x39, 0xa3, 0xbe, 0x50, 0x38, 0xd4, 0x0d, 0xa9, 0x3c, 0x53, 0xb4, 0x78, 0x4f, 0x20, + 0x18, 0xd0, 0xa6, 0x5f, 0x09, 0xe9, 0x0b, 0xf7, 0x0b, 0x12, 0x28, 0xc5, 0x66, 0xd3, 0xda, 0x31, + 0xdd, 0x3a, 0x6a, 0xa3, 0xa6, 0xdb, 0xb0, 0xf5, 0x26, 0x62, 0xed, 0xe7, 0x02, 0xc8, 0x2d, 0xc3, + 0xa6, 0x7d, 0xb0, 0xf7, 0x48, 0xe5, 0xf8, 0x72, 0xe1, 0x1d, 0x47, 0x52, 0xcb, 0xfd, 0xa5, 0x24, + 0x10, 0xa7, 0xd8, 0xbe, 0xa2, 0x60, 0x41, 0xe9, 0x4b, 0xf5, 0x53, 0x12, 0x4c, 0xf8, 0x3d, 0xf6, + 0xa6, 0x88, 0x30, 0x7f, 0x3d, 0xe1, 0x64, 0x24, 0x20, 0x9e, 0x40, 0x86, 0xef, 0x4a, 0x30, 0xab, + 0x88, 0xa2, 0x9f, 0x4c, 0x74, 0xc5, 0xe4, 0xa2, 0xf3, 0x5e, 0xab, 0xb5, 0xf5, 0x85, 0xda, 0xf2, + 0x7c, 0x59, 0x2b, 0xc8, 0xea, 0xd7, 0x24, 0xc8, 0xae, 0x1a, 0xe6, 0x26, 0x1b, 0x5d, 0xe9, 0xb8, + 0x67, 0x47, 0xb6, 0xd0, 0xfd, 0xb4, 0xa5, 0x93, 0x17, 0xe5, 0x16, 0x38, 0x6e, 0xee, 0x6c, 0x5f, + 0x40, 0x76, 0x6d, 0x03, 0x8f, 0xb2, 0x4e, 0xc3, 0xaa, 0x23, 0x93, 0x18, 0xa1, 0x39, 0xad, 0xe7, + 0x37, 0xde, 0x04, 0x13, 0x98, 0x3c, 0x78, 0x9c, 0x44, 0x48, 0x3c, 0x60, 0x4a, 0x62, 0x98, 0x4a, + 0x34, 0x6d, 0xe8, 0x41, 0x3c, 0x7d, 0x4d, 0xfd, 0xa3, 0x1c, 0x9c, 0x28, 0x9a, 0x7b, 0xd8, 0xa6, + 0x20, 0x1d, 0x7c, 0x69, 0x4b, 0x37, 0x37, 0x11, 0x1e, 0x20, 0x02, 0x89, 0xb3, 0x21, 0xfa, 0x33, + 0x7c, 0x88, 0x7e, 0x45, 0x83, 0x31, 0xcb, 0x6e, 0x21, 0x7b, 0x6e, 0x0f, 0xf3, 0xd4, 0xbd, 0xec, + 0x4c, 0xdb, 0x64, 0xaf, 0x22, 0x66, 0x29, 0xf9, 0xd9, 0x1a, 0xf9, 0x5f, 0xf3, 0x09, 0x9d, 0xb9, + 0x09, 0xc6, 0x68, 0x9a, 0x32, 0x05, 0xe3, 0x35, 0x6d, 0xbe, 0xac, 0xad, 0x57, 0xe6, 0x0b, 0x47, + 0x94, 0xcb, 0xe0, 0x68, 0xa5, 0x51, 0xd6, 0x8a, 0x8d, 0x4a, 0xad, 0xba, 0x8e, 0xd3, 0x0b, 0x19, + 0xf5, 0x79, 0x59, 0x51, 0xcf, 0xde, 0x78, 0x66, 0x7a, 0xc1, 0xaa, 0xc1, 0x58, 0x93, 0x64, 0xc0, + 0x43, 0xe8, 0x64, 0xa2, 0xda, 0x51, 0x82, 0x24, 0x41, 0xf3, 0x09, 0x29, 0xa7, 0x01, 0x2e, 0xd9, + 0x96, 0xb9, 0x19, 0x9e, 0x3a, 0x1c, 0xd7, 0x98, 0x14, 0xf5, 0x81, 0x0c, 0xe4, 0xc9, 0x3f, 0xf8, + 0x4a, 0x12, 0xfc, 0x14, 0x0a, 0xde, 0x7f, 0xf7, 0x2c, 0x5e, 0x2c, 0xaf, 0x70, 0xa2, 0x45, 0x5f, + 0x3d, 0x5d, 0x24, 0x32, 0x20, 0x96, 0x30, 0xad, 0xca, 0x59, 0xc8, 0x93, 0x7f, 0xa9, 0xd7, 0x41, + 0x74, 0x78, 0x51, 0x92, 0x4d, 0xd0, 0x4f, 0x59, 0x5c, 0xa6, 0xe9, 0x6b, 0xf3, 0x47, 0x24, 0x18, + 0xaf, 0x22, 0xb7, 0xb4, 0x85, 0x9a, 0x17, 0xd5, 0x47, 0xf1, 0x0b, 0xa0, 0x6d, 0x03, 0x99, 0xee, + 0xbd, 0xdb, 0xed, 0x60, 0x01, 0xd4, 0x4f, 0x50, 0x5f, 0xc0, 0x76, 0xbe, 0x77, 0xf1, 0xfa, 0x73, + 0x63, 0x8f, 0xba, 0xfa, 0x25, 0x44, 0xa8, 0xcc, 0x49, 0xc8, 0xdb, 0xc8, 0xd9, 0x69, 0xfb, 0x8b, + 0x68, 0xf4, 0x4d, 0x7d, 0x30, 0x10, 0x67, 0x89, 0x13, 0xe7, 0x59, 0xf1, 0x22, 0x46, 0x10, 0xaf, + 0x34, 0x0b, 0x63, 0x15, 0xd3, 0x70, 0x0d, 0xbd, 0xad, 0xbe, 0x30, 0x0b, 0xd3, 0x75, 0xe4, 0xae, + 0xea, 0xb6, 0xbe, 0x8d, 0x5c, 0x64, 0x3b, 0xea, 0x0f, 0xf8, 0x3e, 0xa1, 0xd3, 0xd6, 0xdd, 0x0d, + 0xcb, 0xde, 0xf6, 0x55, 0xd3, 0x7f, 0xf7, 0x54, 0x73, 0x17, 0xd9, 0x4e, 0xc8, 0x97, 0xff, 0xea, + 0x7d, 0xb9, 0x64, 0xd9, 0x17, 0xbd, 0x41, 0x90, 0x4e, 0xd3, 0xe8, 0xab, 0x47, 0xaf, 0x6d, 0x6d, + 0x2e, 0xa3, 0x5d, 0xe4, 0x87, 0x4b, 0x0b, 0xde, 0xbd, 0xb9, 0x40, 0xcb, 0xaa, 0x5a, 0xae, 0xd7, + 0x69, 0x2f, 0x5b, 0x9b, 0x24, 0x5e, 0xec, 0xb8, 0xc6, 0x27, 0x86, 0xb9, 0xf4, 0x5d, 0x84, 0x73, + 0xe5, 0xd9, 0x5c, 0x34, 0x51, 0x99, 0x05, 0x25, 0xf8, 0xad, 0x81, 0xda, 0x68, 0x1b, 0xb9, 0xf6, + 0x1e, 0xbe, 0x16, 0x62, 0x5c, 0xeb, 0xf1, 0x85, 0x0e, 0xd0, 0xe2, 0x93, 0x75, 0x2a, 0xbd, 0x59, + 0x4e, 0x72, 0x07, 0x9a, 0xac, 0x8b, 0x50, 0x1c, 0xc9, 0xb5, 0x57, 0xb2, 0x67, 0xcd, 0xbc, 0x52, + 0x86, 0x2c, 0x1e, 0x3c, 0xdf, 0x9a, 0xe1, 0x56, 0x98, 0xb6, 0x91, 0xe3, 0xe8, 0x9b, 0xc8, 0x5f, + 0x61, 0xa2, 0xaf, 0xca, 0xad, 0x90, 0x6b, 0x63, 0x4c, 0xc9, 0xe0, 0x70, 0x2d, 0x57, 0x33, 0xcf, + 0xc0, 0xf0, 0x68, 0x05, 0x23, 0x01, 0x86, 0x5b, 0x23, 0x7f, 0x9c, 0xb9, 0x1b, 0x72, 0x04, 0xfe, + 0x09, 0xc8, 0xcd, 0x97, 0xe7, 0xd6, 0x16, 0x0b, 0x47, 0xbc, 0x47, 0x9f, 0xbf, 0x09, 0xc8, 0x2d, + 0x14, 0x1b, 0xc5, 0xe5, 0x82, 0xe4, 0xd5, 0xa3, 0x52, 0x5d, 0xa8, 0x15, 0x64, 0x2f, 0x71, 0xb5, + 0x58, 0xad, 0x94, 0x0a, 0x59, 0x65, 0x12, 0xc6, 0xce, 0x17, 0xb5, 0x6a, 0xa5, 0xba, 0x58, 0xc8, + 0xa9, 0x7f, 0xcb, 0xe2, 0x77, 0x1b, 0x8f, 0xdf, 0x75, 0x51, 0x3c, 0xf5, 0x82, 0xec, 0x55, 0x01, + 0x64, 0x77, 0x70, 0x90, 0xfd, 0xb4, 0x08, 0x91, 0x11, 0xb8, 0x33, 0xe5, 0x61, 0x6c, 0xd5, 0xb6, + 0x9a, 0xc8, 0x71, 0xd4, 0xdf, 0x90, 0x20, 0x5f, 0xd2, 0xcd, 0x26, 0x6a, 0xab, 0x57, 0x84, 0x50, + 0x11, 0x57, 0xd1, 0x4c, 0x70, 0x5a, 0xec, 0x1f, 0x33, 0xa2, 0xbd, 0x1f, 0xa5, 0x3b, 0x4b, 0x68, + 0x46, 0xc8, 0x47, 0xac, 0x97, 0x8b, 0x25, 0x35, 0x82, 0xab, 0x71, 0x24, 0x98, 0xa0, 0xab, 0x01, + 0x17, 0x10, 0x3b, 0x0f, 0xff, 0x41, 0x46, 0x74, 0x72, 0xe8, 0xd7, 0x20, 0x20, 0x13, 0x21, 0x0f, + 0xb1, 0x89, 0x60, 0x3f, 0x6a, 0x23, 0xd8, 0x3c, 0x94, 0x60, 0x72, 0xcd, 0x74, 0x7a, 0x09, 0x45, + 0x3c, 0x8e, 0xbe, 0x5f, 0x0d, 0x86, 0xd0, 0x81, 0xe2, 0xe8, 0xf7, 0xa7, 0x97, 0xbe, 0x60, 0x7e, + 0x90, 0x81, 0xe3, 0x8b, 0xc8, 0x44, 0xb6, 0xd1, 0x24, 0x35, 0xf0, 0x25, 0x71, 0x07, 0x2f, 0x89, + 0x47, 0x71, 0x9c, 0xf7, 0xfa, 0x83, 0x97, 0xc0, 0x6b, 0x03, 0x09, 0xdc, 0xc5, 0x49, 0xe0, 0x26, + 0x41, 0x3a, 0x23, 0xb8, 0x0f, 0x7d, 0x02, 0xa6, 0xaa, 0x96, 0x6b, 0x6c, 0x18, 0x4d, 0xe2, 0x83, + 0xf6, 0x0a, 0x19, 0xb2, 0xcb, 0x86, 0xe3, 0xaa, 0xc5, 0xb0, 0x3b, 0xb9, 0x06, 0x26, 0x0d, 0xb3, + 0xd9, 0xde, 0x69, 0x21, 0x0d, 0xe9, 0xa4, 0x5f, 0x19, 0xd7, 0xd8, 0xa4, 0x70, 0x6b, 0xdf, 0x63, + 0x4b, 0xf6, 0xb7, 0xf6, 0x3f, 0x2b, 0xbc, 0x0c, 0xc3, 0xb2, 0x80, 0x03, 0x52, 0x46, 0xd8, 0x5d, + 0x45, 0x98, 0x36, 0x99, 0xac, 0xbe, 0xc1, 0xde, 0x7d, 0xa1, 0x00, 0x4b, 0x4e, 0xe3, 0xff, 0x50, + 0x3f, 0x20, 0xd4, 0x58, 0xfb, 0x31, 0x94, 0x0c, 0x99, 0x85, 0x01, 0x26, 0xc9, 0x0a, 0xcc, 0x54, + 0xaa, 0x8d, 0xb2, 0x56, 0x2d, 0x2e, 0xd3, 0x2c, 0xb2, 0xfa, 0x6f, 0x12, 0xe4, 0x34, 0xd4, 0x69, + 0xef, 0xb1, 0x11, 0xa3, 0xa9, 0xa3, 0x78, 0x26, 0x70, 0x14, 0x57, 0x16, 0x00, 0xf4, 0xa6, 0x57, + 0x30, 0xbe, 0x52, 0x4b, 0xea, 0x19, 0xc7, 0x94, 0xab, 0x60, 0x31, 0xc8, 0xad, 0x31, 0x7f, 0xaa, + 0x2f, 0x12, 0xde, 0x39, 0xe2, 0xa8, 0x61, 0x0e, 0x23, 0xfa, 0x84, 0x0f, 0x0a, 0x6d, 0xf6, 0xf4, + 0x25, 0x77, 0x38, 0xe2, 0xff, 0xba, 0x04, 0xd9, 0x86, 0xd7, 0x5b, 0x32, 0x1d, 0xe7, 0x1f, 0x0f, + 0xa6, 0xe3, 0x1e, 0x99, 0x08, 0x1d, 0xbf, 0x13, 0xa6, 0x58, 0x8d, 0xa5, 0xae, 0x12, 0xb1, 0x2a, + 0xce, 0xfd, 0x30, 0x88, 0x86, 0xf7, 0x60, 0xe7, 0x70, 0x44, 0xfc, 0xe9, 0x47, 0x03, 0xac, 0xa0, + 0xed, 0x0b, 0xc8, 0x76, 0xb6, 0x8c, 0x8e, 0xfa, 0x77, 0x32, 0x4c, 0x2c, 0x22, 0xb7, 0xee, 0xea, + 0xee, 0x8e, 0xd3, 0xb5, 0xdd, 0x69, 0x5a, 0x25, 0xbd, 0xb9, 0x85, 0x68, 0x77, 0xe4, 0xbf, 0xaa, + 0xef, 0x91, 0x45, 0xfd, 0x89, 0xc2, 0x72, 0x66, 0x83, 0x32, 0x22, 0x30, 0x79, 0x0c, 0x64, 0x5b, + 0xba, 0xab, 0x53, 0x2c, 0xae, 0xe8, 0xc2, 0x22, 0x24, 0xa4, 0xe1, 0x6c, 0xea, 0xef, 0x48, 0x22, + 0x0e, 0x45, 0x02, 0xe5, 0x27, 0x03, 0xe1, 0x03, 0x99, 0x01, 0x50, 0x38, 0x06, 0xd3, 0xd5, 0x5a, + 0x63, 0x7d, 0xb9, 0xb6, 0xb8, 0x58, 0xf6, 0x52, 0x0b, 0xb2, 0x72, 0x12, 0x94, 0xd5, 0xe2, 0xbd, + 0x2b, 0xe5, 0x6a, 0x63, 0xbd, 0x5a, 0x9b, 0x2f, 0xd3, 0x3f, 0xb3, 0xca, 0x51, 0x98, 0x2c, 0x15, + 0x4b, 0x4b, 0x7e, 0x42, 0x4e, 0x39, 0x05, 0xc7, 0x57, 0xca, 0x2b, 0x73, 0x65, 0xad, 0xbe, 0x54, + 0x59, 0x5d, 0xf7, 0xc8, 0x2c, 0xd4, 0xd6, 0xaa, 0xf3, 0x85, 0xbc, 0xa2, 0xc2, 0x49, 0xe6, 0xcb, + 0x79, 0xad, 0x56, 0x5d, 0x5c, 0xaf, 0x37, 0x8a, 0x8d, 0x72, 0x61, 0x4c, 0xb9, 0x0c, 0x8e, 0x96, + 0x8a, 0x55, 0x9c, 0xbd, 0x54, 0xab, 0x56, 0xcb, 0xa5, 0x46, 0x61, 0x5c, 0xfd, 0xf7, 0x2c, 0x4c, + 0x56, 0x9c, 0xaa, 0xbe, 0x8d, 0xce, 0xe9, 0x6d, 0xa3, 0xa5, 0xbe, 0x90, 0x99, 0x79, 0x5c, 0x07, + 0xd3, 0x36, 0x79, 0x44, 0xad, 0x86, 0x81, 0x08, 0x9a, 0xd3, 0x1a, 0x9f, 0xe8, 0xcd, 0xc9, 0x4d, + 0x4c, 0xc0, 0x9f, 0x93, 0x93, 0x37, 0x65, 0x0e, 0x80, 0x3c, 0x35, 0xc2, 0xcb, 0x5d, 0xcf, 0x74, + 0xb7, 0x26, 0x7d, 0x1b, 0x39, 0xc8, 0xde, 0x35, 0x9a, 0xc8, 0xcf, 0xa9, 0x31, 0x7f, 0xa9, 0xdf, + 0x90, 0x45, 0xf7, 0x17, 0x19, 0x50, 0x99, 0xea, 0x44, 0xf4, 0x86, 0xbf, 0x24, 0x8b, 0xec, 0x0e, + 0x0a, 0x91, 0x4c, 0xa6, 0x29, 0x2f, 0x91, 0x06, 0x5b, 0xb6, 0x6d, 0xd4, 0x6a, 0xeb, 0xf5, 0xa5, + 0x9a, 0xd6, 0x28, 0xc8, 0xca, 0x14, 0x8c, 0x7b, 0xaf, 0xcb, 0xb5, 0xea, 0x62, 0x21, 0xab, 0x9c, + 0x80, 0x63, 0x4b, 0xc5, 0xfa, 0x7a, 0xa5, 0x7a, 0xae, 0xb8, 0x5c, 0x99, 0x5f, 0x2f, 0x2d, 0x15, + 0xb5, 0x7a, 0x21, 0xa7, 0x5c, 0x01, 0x27, 0x1a, 0x95, 0xb2, 0xb6, 0xbe, 0x50, 0x2e, 0x36, 0xd6, + 0xb4, 0x72, 0x7d, 0xbd, 0x5a, 0x5b, 0xaf, 0x16, 0x57, 0xca, 0x85, 0xbc, 0xd7, 0xfc, 0xf1, 0xa7, + 0x50, 0x6d, 0xc6, 0xf6, 0x2b, 0xe3, 0x78, 0x84, 0x32, 0x4e, 0x74, 0x2b, 0x23, 0xb0, 0x6a, 0xa5, + 0x95, 0xeb, 0x65, 0xed, 0x5c, 0xb9, 0x30, 0xd9, 0x4b, 0xd7, 0xa6, 0x94, 0xe3, 0x50, 0xf0, 0x78, + 0x58, 0xaf, 0xd4, 0xfd, 0x9c, 0xf3, 0x85, 0x69, 0xf5, 0x53, 0x79, 0x38, 0xa9, 0xa1, 0x4d, 0xc3, + 0x71, 0x91, 0xbd, 0xaa, 0xef, 0x6d, 0x23, 0xd3, 0xf5, 0x3b, 0xf9, 0xff, 0x9d, 0x58, 0x19, 0x57, + 0x60, 0xba, 0x43, 0x68, 0xac, 0x20, 0x77, 0xcb, 0x6a, 0xd1, 0x51, 0xf8, 0x51, 0x91, 0x3d, 0xc7, + 0xec, 0x2a, 0x9b, 0x5d, 0xe3, 0xff, 0x66, 0x74, 0x5b, 0x8e, 0xd1, 0xed, 0xec, 0x20, 0xba, 0xad, + 0x5c, 0x05, 0x13, 0x3b, 0x0e, 0xb2, 0xcb, 0xdb, 0xba, 0xd1, 0xf6, 0x2f, 0xe7, 0x0c, 0x12, 0xd4, + 0x77, 0x66, 0x45, 0x4f, 0xac, 0x30, 0x75, 0xe9, 0x2d, 0xc6, 0x88, 0xbe, 0xf5, 0x34, 0x00, 0xad, + 0xec, 0x9a, 0xdd, 0xa6, 0xca, 0xca, 0xa4, 0x78, 0xfc, 0x5d, 0x30, 0xda, 0x6d, 0xc3, 0xdc, 0x0c, + 0xf6, 0xfd, 0xc3, 0x04, 0xf5, 0x25, 0xb2, 0xc8, 0x09, 0x96, 0xa4, 0xbc, 0x25, 0x6b, 0x4d, 0x2f, + 0x92, 0x46, 0xdc, 0xef, 0xee, 0x6f, 0x3a, 0x79, 0xa5, 0x00, 0x53, 0x38, 0x8d, 0xb6, 0xc0, 0xc2, + 0x98, 0xd7, 0x07, 0xfb, 0xe4, 0x56, 0xca, 0x8d, 0xa5, 0xda, 0x7c, 0xf0, 0x6d, 0xdc, 0x23, 0xe9, + 0x31, 0x53, 0xac, 0xde, 0x8b, 0x5b, 0xe3, 0x84, 0xf2, 0x08, 0xb8, 0x82, 0xe9, 0xb0, 0x8b, 0xcb, + 0x5a, 0xb9, 0x38, 0x7f, 0xef, 0x7a, 0xf9, 0x69, 0x95, 0x7a, 0xa3, 0xce, 0x37, 0x2e, 0xbf, 0x1d, + 0x4d, 0x7a, 0xfc, 0x96, 0x57, 0x8a, 0x95, 0x65, 0xda, 0xbf, 0x2f, 0xd4, 0xb4, 0x95, 0x62, 0xa3, + 0x30, 0xa5, 0xbe, 0x52, 0x86, 0xc2, 0x22, 0x72, 0x57, 0x2d, 0xdb, 0xd5, 0xdb, 0xcb, 0x86, 0x79, + 0x71, 0xcd, 0x6e, 0x73, 0x93, 0x4d, 0xe1, 0x30, 0x1d, 0xfc, 0x10, 0xc9, 0x11, 0x8c, 0xde, 0x11, + 0xef, 0xe0, 0x6c, 0xa1, 0x32, 0x85, 0x09, 0xea, 0xb3, 0x24, 0x91, 0xe5, 0x6e, 0xf1, 0x52, 0x93, + 0xe9, 0xc9, 0xb3, 0x47, 0x3d, 0x3e, 0xf7, 0x40, 0x2d, 0xaf, 0x3e, 0x3f, 0x0b, 0xe3, 0x0b, 0x86, + 0xa9, 0xb7, 0x8d, 0x67, 0x72, 0xf1, 0x4b, 0xc3, 0x3e, 0x26, 0x13, 0xd3, 0xc7, 0x48, 0x03, 0x8d, + 0x9f, 0xbf, 0x26, 0x8b, 0x2e, 0x2f, 0x30, 0xb2, 0xf7, 0x99, 0x8c, 0x18, 0x3c, 0x3f, 0x2a, 0x89, + 0x2c, 0x2f, 0xf4, 0xa7, 0x97, 0x0c, 0xc3, 0xcf, 0xfc, 0x78, 0xd8, 0x58, 0x5d, 0xed, 0x7b, 0xbc, + 0x97, 0x2a, 0x4c, 0xa8, 0x7f, 0x2e, 0x83, 0xba, 0x88, 0xdc, 0x73, 0xc8, 0x0e, 0xa6, 0x02, 0xb8, + 0xd7, 0xa7, 0xf6, 0x36, 0xd3, 0x64, 0xdf, 0xca, 0x02, 0x78, 0x9e, 0x07, 0xb0, 0x18, 0xd3, 0x78, + 0x22, 0x48, 0x47, 0x34, 0xde, 0x0a, 0xe4, 0x1d, 0xfc, 0x9d, 0xaa, 0xd9, 0x63, 0xa3, 0x87, 0x4b, + 0x4c, 0x8c, 0xa5, 0x4e, 0x08, 0x6b, 0x94, 0x80, 0xfa, 0xc3, 0x60, 0x12, 0xf4, 0xb3, 0x9c, 0x76, + 0x2c, 0x1c, 0x98, 0xd9, 0x64, 0xfa, 0x62, 0xa7, 0xab, 0x2e, 0xbd, 0xec, 0x1b, 0xf5, 0xa3, 0x39, + 0x38, 0xde, 0xab, 0x3a, 0xea, 0x87, 0x32, 0xdc, 0x0e, 0x3b, 0xc2, 0x43, 0x7e, 0x86, 0x6e, 0x20, + 0x7a, 0x2f, 0xca, 0xe3, 0xe1, 0x44, 0xb0, 0x0c, 0xd7, 0xb0, 0xaa, 0xe8, 0x92, 0xd3, 0x46, 0xae, + 0x8b, 0x6c, 0x5c, 0xb5, 0x71, 0xad, 0xf7, 0x47, 0xe5, 0x49, 0x70, 0xb9, 0x61, 0x3a, 0x46, 0x0b, + 0xd9, 0x0d, 0xa3, 0xe3, 0x14, 0xcd, 0x56, 0x63, 0xc7, 0xb5, 0x6c, 0x43, 0xa7, 0x57, 0x49, 0x8e, + 0x6b, 0x51, 0x9f, 0x95, 0x1b, 0xa1, 0x60, 0x38, 0x35, 0xf3, 0x82, 0xa5, 0xdb, 0x2d, 0xc3, 0xdc, + 0x5c, 0x36, 0x1c, 0x97, 0x7a, 0x00, 0xef, 0x4b, 0x57, 0xff, 0x5e, 0x16, 0x3d, 0x4c, 0xd7, 0x07, + 0xd6, 0x88, 0x0e, 0xe5, 0x05, 0xb2, 0xc8, 0xf1, 0xb8, 0x64, 0xb4, 0x93, 0x29, 0xcb, 0xf3, 0x46, + 0x6d, 0x48, 0xf4, 0x1e, 0xc1, 0x71, 0xd7, 0x42, 0xd2, 0x7d, 0x43, 0xe0, 0x5c, 0x59, 0xab, 0x2c, + 0x54, 0xca, 0x9e, 0x59, 0x71, 0x02, 0x8e, 0x85, 0xdf, 0xe6, 0xef, 0x5d, 0xaf, 0x97, 0xab, 0x8d, + 0xc2, 0xb8, 0xd7, 0x4f, 0x91, 0xe4, 0x85, 0x62, 0x65, 0xb9, 0x3c, 0xbf, 0xde, 0xa8, 0x79, 0x5f, + 0xe6, 0x07, 0x33, 0x2d, 0xd4, 0x07, 0xb2, 0x70, 0x14, 0xcb, 0x76, 0x0f, 0x4b, 0xd5, 0x13, 0x4a, + 0x97, 0xaf, 0x6d, 0x00, 0xd0, 0x04, 0x11, 0xaf, 0xfa, 0x79, 0xe1, 0x9b, 0x32, 0x19, 0x08, 0xbb, + 0xca, 0x88, 0xd0, 0x8c, 0x1f, 0x48, 0x22, 0x11, 0x2a, 0x84, 0xc9, 0x26, 0x53, 0x8a, 0x7f, 0x19, + 0xf5, 0x88, 0x13, 0x0d, 0x3e, 0xb6, 0x32, 0x4b, 0xf8, 0xe7, 0xa7, 0xad, 0x56, 0x34, 0xac, 0x0e, + 0x33, 0x00, 0x38, 0x05, 0x6b, 0x10, 0xd1, 0x83, 0x9e, 0xe3, 0x55, 0x94, 0x1e, 0x14, 0x4b, 0x8d, + 0xca, 0xb9, 0x72, 0x94, 0x1e, 0x7c, 0x4e, 0x86, 0xf1, 0x45, 0xe4, 0x7a, 0x73, 0x2a, 0x47, 0x7d, + 0xb2, 0xc0, 0xfa, 0x8f, 0x67, 0xc6, 0xb4, 0xad, 0xa6, 0xde, 0x0e, 0x96, 0x01, 0xc8, 0x9b, 0xfa, + 0xdc, 0x41, 0x4c, 0x10, 0xbf, 0xe8, 0x88, 0xf1, 0xea, 0x89, 0x90, 0x73, 0xbd, 0xcf, 0x74, 0x19, + 0xfa, 0xa7, 0x22, 0x87, 0x2b, 0x8f, 0xc8, 0xbc, 0xee, 0xea, 0x1a, 0xc9, 0xcf, 0x8c, 0x4e, 0x82, + 0xb6, 0x4b, 0x04, 0x23, 0x3f, 0x8e, 0xf6, 0xe7, 0xdf, 0xca, 0x70, 0x82, 0xb4, 0x8f, 0x62, 0xa7, + 0x53, 0x77, 0x2d, 0x1b, 0x69, 0xa8, 0x89, 0x8c, 0x8e, 0xdb, 0xb5, 0xbe, 0x67, 0x93, 0x54, 0x7f, + 0xb3, 0x99, 0xbe, 0xaa, 0x6f, 0x92, 0x45, 0x63, 0x30, 0xef, 0x6b, 0x8f, 0x5d, 0xe5, 0x45, 0x34, + 0xf6, 0x4f, 0x4a, 0x22, 0x51, 0x95, 0x13, 0x12, 0x4f, 0x06, 0xd4, 0xc7, 0x0e, 0x01, 0x28, 0x7f, + 0xe5, 0x46, 0x2b, 0x97, 0xca, 0x95, 0x55, 0x6f, 0x10, 0xb8, 0x1a, 0xae, 0x5c, 0x5d, 0xd3, 0x4a, + 0x4b, 0xc5, 0x7a, 0x79, 0x5d, 0x2b, 0x2f, 0x56, 0xea, 0x0d, 0xea, 0x94, 0x45, 0xfe, 0x1a, 0x53, + 0xae, 0x82, 0x53, 0xf5, 0xb5, 0xb9, 0x7a, 0x49, 0xab, 0xac, 0xe2, 0x74, 0xad, 0x5c, 0x2d, 0x9f, + 0xa7, 0x5f, 0xc7, 0xd5, 0x0f, 0x17, 0x60, 0xd2, 0x9b, 0x00, 0xd4, 0xc9, 0xbc, 0x40, 0xfd, 0x6e, + 0x16, 0x26, 0x35, 0xe4, 0x58, 0xed, 0x5d, 0x3c, 0x47, 0x18, 0xd5, 0xd4, 0xe3, 0xfb, 0xb2, 0xe8, + 0xf9, 0x6d, 0x86, 0xd9, 0x59, 0x86, 0xd1, 0xe8, 0x89, 0xa6, 0xbe, 0xab, 0x1b, 0x6d, 0xfd, 0x02, + 0xed, 0x6a, 0xc6, 0xb5, 0x30, 0x41, 0x99, 0x05, 0xc5, 0xba, 0x64, 0x22, 0xbb, 0xde, 0xbc, 0x54, + 0x76, 0xb7, 0x8a, 0xad, 0x96, 0x8d, 0x1c, 0x87, 0xae, 0x5e, 0xf4, 0xf8, 0xa2, 0xdc, 0x00, 0x47, + 0x71, 0x2a, 0x93, 0x99, 0x38, 0xc8, 0x74, 0x27, 0x07, 0x39, 0x8b, 0xe6, 0x9e, 0x9f, 0x33, 0xc7, + 0xe4, 0x0c, 0x93, 0xd9, 0xe3, 0x12, 0x79, 0xfe, 0x94, 0xce, 0x35, 0x30, 0x69, 0xea, 0xdb, 0xa8, + 0x7c, 0x7f, 0xc7, 0xb0, 0x91, 0x83, 0x1d, 0x63, 0x64, 0x8d, 0x4d, 0x52, 0x3f, 0x2a, 0x74, 0xde, + 0x5c, 0x4c, 0x62, 0xc9, 0x74, 0x7f, 0x71, 0x00, 0xd5, 0xef, 0xd1, 0xcf, 0xc8, 0xea, 0x87, 0x65, + 0x98, 0xa2, 0x4c, 0x15, 0xcd, 0xbd, 0x4a, 0x4b, 0xbd, 0x9a, 0x33, 0x7e, 0x75, 0x2f, 0xcd, 0x37, + 0x7e, 0xf1, 0x8b, 0xfa, 0xcb, 0xb2, 0xa8, 0xbb, 0x73, 0x8f, 0x8a, 0xe3, 0x32, 0xa2, 0x1d, 0x47, + 0x37, 0xac, 0x1d, 0xea, 0xa8, 0x3a, 0xae, 0x91, 0x97, 0x34, 0x17, 0xf5, 0xd4, 0xdf, 0x17, 0x72, + 0xa6, 0x16, 0xac, 0xc6, 0x21, 0x01, 0xf8, 0x69, 0x19, 0x66, 0x28, 0x57, 0x75, 0x7a, 0xce, 0x47, + 0xe8, 0xc0, 0xdb, 0xaf, 0x08, 0x1b, 0x82, 0x3d, 0xea, 0x4f, 0x4b, 0x7a, 0xd8, 0x00, 0xf9, 0x71, + 0xa1, 0xe0, 0x68, 0xc2, 0x15, 0x39, 0x24, 0x28, 0xdf, 0x95, 0x85, 0xc9, 0x35, 0x07, 0xd9, 0xd4, + 0x6f, 0x5f, 0x7d, 0x30, 0x0b, 0xf2, 0x22, 0xe2, 0x36, 0x52, 0x5f, 0x2c, 0xec, 0xe1, 0xcb, 0x56, + 0x96, 0x21, 0xea, 0xd9, 0x48, 0x11, 0xb0, 0x5d, 0x0f, 0x33, 0x44, 0xa4, 0x45, 0xd7, 0xf5, 0x8c, + 0x44, 0xdf, 0x9b, 0xb6, 0x2b, 0x75, 0x18, 0x5b, 0x45, 0xb8, 0x2c, 0x2f, 0x4b, 0xc9, 0xe3, 0x69, + 0x19, 0x6d, 0x90, 0xf9, 0x6c, 0x56, 0xeb, 0x4a, 0x55, 0x6e, 0x86, 0xcb, 0xac, 0x0e, 0x22, 0xe7, + 0x57, 0x98, 0xcc, 0x39, 0x9c, 0xb9, 0xd7, 0x27, 0xf5, 0xbb, 0x42, 0xbe, 0xba, 0xe2, 0xd2, 0x49, + 0xa6, 0x0b, 0x9d, 0xe1, 0x98, 0x24, 0xc7, 0xa1, 0xe0, 0xe5, 0xc0, 0xfb, 0x2f, 0x5a, 0xb9, 0x5e, + 0x5b, 0x3e, 0x57, 0xee, 0xbd, 0x8c, 0x91, 0x53, 0x9f, 0x27, 0xc3, 0xc4, 0x9c, 0x6d, 0xe9, 0xad, + 0xa6, 0xee, 0xb8, 0xea, 0x0f, 0x25, 0x98, 0x5a, 0xd5, 0xf7, 0xda, 0x96, 0xde, 0xc2, 0xfe, 0xfd, + 0x5d, 0x7d, 0x41, 0x87, 0x7c, 0xf2, 0xfb, 0x02, 0xfa, 0xca, 0x1f, 0x0c, 0x0c, 0x8e, 0xee, 0x65, + 0x44, 0x2e, 0xd4, 0x0c, 0xb6, 0xf9, 0xa4, 0x5e, 0xc1, 0x4a, 0x7d, 0xbe, 0x66, 0x59, 0x9e, 0x22, + 0x2c, 0xca, 0x0f, 0x8b, 0x85, 0x1f, 0x15, 0x21, 0x79, 0x38, 0xbb, 0xf2, 0xcf, 0x1f, 0x87, 0xfc, + 0x3c, 0xc2, 0x56, 0xdc, 0x7f, 0x97, 0x60, 0xac, 0x8e, 0x5c, 0x6c, 0xc1, 0xdd, 0xca, 0x79, 0x0a, + 0xb7, 0x70, 0x86, 0xd0, 0x89, 0xdd, 0x7f, 0xf7, 0x26, 0xeb, 0xcc, 0x79, 0x6b, 0xfc, 0x9c, 0xc0, + 0x23, 0x91, 0x94, 0x3b, 0x4b, 0xcb, 0x3c, 0x90, 0x47, 0x62, 0x2c, 0xa9, 0xf4, 0x7d, 0xad, 0xde, + 0x23, 0x51, 0xd7, 0x2a, 0xa6, 0xd7, 0x7b, 0x1d, 0xab, 0x9f, 0xb1, 0xde, 0x66, 0x94, 0xf9, 0x18, + 0xe7, 0xa8, 0xc7, 0xc1, 0x18, 0x91, 0xb9, 0x3f, 0x1f, 0xed, 0xf6, 0x53, 0x20, 0x24, 0xf0, 0xd9, + 0x6b, 0x3f, 0xa7, 0xa0, 0x8b, 0x5a, 0x74, 0xe1, 0x23, 0x89, 0x41, 0x30, 0x55, 0x45, 0xee, 0x25, + 0xcb, 0xbe, 0x58, 0x77, 0x75, 0x17, 0xa9, 0xff, 0x22, 0x81, 0x5c, 0x47, 0x2e, 0x1b, 0xfd, 0xa4, + 0x0a, 0xc7, 0x48, 0x85, 0x68, 0x46, 0xdc, 0x7f, 0x93, 0x8a, 0x5c, 0xd3, 0x53, 0x08, 0x4c, 0x3e, + 0x6d, 0xff, 0xaf, 0xea, 0x6f, 0xf4, 0x0c, 0xfa, 0x24, 0xf5, 0x98, 0x34, 0x50, 0xc9, 0xb0, 0x0c, + 0x7a, 0x0a, 0x16, 0xa1, 0xa7, 0x1f, 0x11, 0x32, 0xab, 0xc5, 0x68, 0x1e, 0x4e, 0x57, 0xf0, 0x9a, + 0x2b, 0x20, 0x5b, 0xda, 0xd2, 0x5d, 0xf5, 0xdd, 0x32, 0x40, 0xb1, 0xd5, 0x5a, 0x21, 0x3e, 0xe0, + 0xac, 0x43, 0xda, 0x19, 0x98, 0x6a, 0x6e, 0xe9, 0xe1, 0xdd, 0x26, 0xa4, 0x3f, 0xe0, 0xd2, 0x94, + 0xc7, 0x87, 0xce, 0xe4, 0x44, 0xaa, 0x6a, 0x17, 0x4c, 0x5e, 0x19, 0x94, 0x76, 0xe0, 0x68, 0xce, + 0x87, 0xc2, 0x8c, 0x3d, 0x42, 0xe7, 0xfd, 0x3e, 0x1b, 0xb2, 0x17, 0x3d, 0x87, 0xa3, 0xa4, 0x83, + 0x03, 0x36, 0x61, 0x42, 0xc2, 0x93, 0xde, 0x62, 0x01, 0x3d, 0xe2, 0xf9, 0x1a, 0x49, 0xe8, 0x5a, + 0xa5, 0xdc, 0x32, 0x7c, 0xd1, 0xd2, 0x80, 0x59, 0xea, 0x8b, 0x32, 0xc9, 0xe0, 0x8b, 0x17, 0xdc, + 0x5d, 0x30, 0x8d, 0x5a, 0x86, 0x8b, 0xfc, 0x5a, 0x52, 0x01, 0xc6, 0x41, 0xcc, 0xff, 0xa0, 0x3e, + 0x5b, 0x38, 0xe8, 0x1a, 0x16, 0xe8, 0xfe, 0x1a, 0x45, 0xb4, 0x3f, 0xb1, 0x30, 0x6a, 0x62, 0x34, + 0xd3, 0x07, 0xeb, 0xb9, 0x32, 0x9c, 0x68, 0x58, 0x9b, 0x9b, 0x6d, 0xe4, 0x8b, 0x09, 0x11, 0xef, + 0x4c, 0x55, 0x1f, 0x26, 0x5c, 0x78, 0x27, 0xc8, 0xba, 0xcf, 0x08, 0x8e, 0x92, 0x79, 0x2f, 0xfc, + 0x89, 0xa9, 0xd8, 0x59, 0x14, 0x16, 0x57, 0x4f, 0x3e, 0x23, 0x50, 0x10, 0x0b, 0xf8, 0x2c, 0x4c, + 0x36, 0x7d, 0x20, 0xbe, 0x2c, 0xc1, 0x34, 0xb9, 0xb9, 0xd2, 0x57, 0xd0, 0x7b, 0x86, 0x08, 0x80, + 0xfa, 0xc3, 0x8c, 0xa8, 0x9f, 0x2d, 0x96, 0x09, 0xc7, 0x49, 0x84, 0x88, 0xc5, 0x82, 0xaa, 0xf4, + 0x25, 0x37, 0x82, 0xb8, 0x59, 0x32, 0x4c, 0x2e, 0x22, 0xbf, 0xa5, 0x39, 0xec, 0x35, 0x60, 0x22, + 0x82, 0xbd, 0x0e, 0xa6, 0x2f, 0xa0, 0x0d, 0xcb, 0x46, 0x35, 0xee, 0x98, 0x24, 0x9f, 0x18, 0x11, + 0x79, 0x8e, 0x0b, 0x71, 0x36, 0xc7, 0x8b, 0xfd, 0xa6, 0xfd, 0x72, 0x62, 0xb8, 0x8c, 0x18, 0x4e, + 0x9e, 0x00, 0xe3, 0x14, 0x54, 0xdf, 0x02, 0x8b, 0xeb, 0xf2, 0x82, 0xbc, 0xea, 0x1b, 0x03, 0xb0, + 0xca, 0x1c, 0x58, 0x8f, 0x4d, 0xc2, 0xc4, 0x48, 0xae, 0x6e, 0x2f, 0x30, 0xe5, 0xcf, 0xed, 0x55, + 0x5a, 0x8e, 0xba, 0x92, 0x0c, 0xaf, 0xd3, 0x00, 0x81, 0xde, 0xfb, 0x11, 0x2b, 0x98, 0x14, 0x3e, + 0x28, 0x7d, 0xec, 0x19, 0xbc, 0x6e, 0x71, 0x60, 0x76, 0x86, 0x0c, 0x8c, 0xd8, 0xd9, 0x3d, 0x11, + 0x4e, 0xd2, 0x47, 0xe7, 0xb3, 0x32, 0x9c, 0x08, 0x8e, 0x16, 0x2d, 0xeb, 0x4e, 0xd8, 0xa4, 0x4a, + 0xc9, 0x20, 0xe2, 0xce, 0x72, 0x04, 0x8d, 0xe5, 0x7b, 0xc9, 0x86, 0x83, 0x9e, 0x9c, 0x0c, 0x17, + 0x1d, 0xe5, 0x26, 0x38, 0x66, 0xee, 0x6c, 0x07, 0x52, 0xc7, 0x2d, 0x9e, 0xb6, 0xf0, 0xfd, 0x1f, + 0x92, 0x0c, 0x3a, 0x22, 0xcc, 0x8f, 0x64, 0xba, 0xc8, 0x9d, 0xd6, 0x7a, 0x4c, 0x22, 0x18, 0xd5, + 0x7f, 0xce, 0x24, 0xea, 0xdd, 0xfa, 0x1f, 0xe7, 0x4a, 0xd0, 0x4b, 0x1d, 0xe2, 0x59, 0xae, 0x33, + 0x63, 0x90, 0x2b, 0x6f, 0x77, 0xdc, 0xbd, 0x33, 0x8f, 0x84, 0xe9, 0xba, 0x6b, 0x23, 0x7d, 0x9b, + 0x59, 0xf4, 0x77, 0xad, 0x8b, 0xc8, 0xf4, 0x17, 0xfd, 0xf1, 0xcb, 0x6d, 0xb7, 0xc2, 0x98, 0x69, + 0xad, 0xeb, 0x3b, 0xee, 0x96, 0x72, 0xf5, 0xbe, 0xd3, 0xf2, 0x14, 0xfc, 0x1a, 0x0d, 0x4f, 0xf4, + 0x8d, 0xdb, 0xf1, 0xb2, 0x6f, 0xde, 0xb4, 0x8a, 0x3b, 0xee, 0xd6, 0xdc, 0x55, 0x9f, 0xfe, 0x9b, + 0xd3, 0x99, 0xcf, 0xfd, 0xcd, 0xe9, 0xcc, 0xd7, 0xff, 0xe6, 0x74, 0xe6, 0x57, 0xbe, 0x79, 0xfa, + 0xc8, 0xe7, 0xbe, 0x79, 0xfa, 0xc8, 0x97, 0xbf, 0x79, 0xfa, 0xc8, 0xcf, 0x4a, 0x9d, 0x0b, 0x17, + 0xf2, 0x98, 0xca, 0xe3, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x91, 0x4a, 0x1b, 0xb9, 0xc6, + 0x03, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -90114,6 +90347,134 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) MarshalToSiz return len(dAtA) - i, nil } +func (m *RpcObjectTypeRecommendedLayoutSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedLayoutSet) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedLayoutSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Layout != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Layout)) + i-- + dAtA[i] = 0x10 + } + if len(m.TypeObjectId) > 0 { + i -= len(m.TypeObjectId) + copy(dAtA[i:], m.TypeObjectId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TypeObjectId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcRelation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -124609,6 +124970,60 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Size() (n in return n } +func (m *RpcObjectTypeRecommendedLayoutSet) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectTypeRecommendedLayoutSetRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TypeObjectId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + if m.Layout != 0 { + n += 1 + sovCommands(uint64(m.Layout)) + } + return n +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcRelation) Size() (n int) { if m == nil { return 0 @@ -183167,6 +183582,344 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Unmarshal(dA } return nil } +func (m *RpcObjectTypeRecommendedLayoutSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LayoutSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LayoutSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedLayoutSetRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TypeObjectId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TypeObjectId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Layout", wireType) + } + m.Layout = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Layout |= model.ObjectTypeLayout(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedLayoutSetResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcObjectTypeRecommendedLayoutSetResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcObjectTypeRecommendedLayoutSetResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcRelation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 9863cac54..a9e8584ac 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3172,6 +3172,30 @@ message Rpc { } } } + + message LayoutSet { + message Request { + string typeObjectId = 1; + anytype.model.ObjectType.Layout layout = 2; + } + + message Response { + Error error = 1; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + READONLY_OBJECT_TYPE = 3; + // ... + } + } + } + } } } diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index 52bd83f1a..8fbd68347 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -150,6 +150,7 @@ service ClientCommands { rpc ObjectTypeRelationRemove (anytype.Rpc.ObjectType.Relation.Remove.Request) returns (anytype.Rpc.ObjectType.Relation.Remove.Response); rpc ObjectTypeRecommendedRelationsSet (anytype.Rpc.ObjectType.Recommended.RelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.RelationsSet.Response); rpc ObjectTypeRecommendedFeaturedRelationsSet (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response); + rpc ObjectTypeRecommendedLayoutSet (anytype.Rpc.ObjectType.Recommended.LayoutSet.Request) returns (anytype.Rpc.ObjectType.Recommended.LayoutSet.Response); rpc HistoryShowVersion (anytype.Rpc.History.ShowVersion.Request) returns (anytype.Rpc.History.ShowVersion.Response); rpc HistoryGetVersions (anytype.Rpc.History.GetVersions.Request) returns (anytype.Rpc.History.GetVersions.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 3197f06e5..67911e713 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,341 +26,343 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5340 bytes of a gzipped FileDescriptorProto + // 5361 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, - 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, - 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, - 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, - 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, - 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, - 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, - 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, - 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, - 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, - 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, - 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, - 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, - 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, - 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, - 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, - 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, - 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, - 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, - 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, - 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, - 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, - 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, - 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, - 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, - 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, - 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, - 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, - 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, - 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, - 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, - 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, - 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, - 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, - 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, - 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, - 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, - 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, - 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, - 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, - 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, - 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, - 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, - 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, - 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, - 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, - 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, - 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, - 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, - 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, - 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, - 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, - 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, - 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, - 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, - 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, - 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, - 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, - 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, - 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, - 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, - 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, - 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, - 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, - 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, - 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, - 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, - 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, - 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, - 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, - 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, - 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, - 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, - 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, - 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, - 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, - 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, - 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, - 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, - 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, - 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, - 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, - 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, - 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, - 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, - 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, - 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, - 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, - 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, - 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, - 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, - 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, - 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, - 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, - 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, - 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, - 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, - 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, - 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, - 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, - 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, - 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, - 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, - 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, - 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, - 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, - 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, - 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, - 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, - 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, - 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, - 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, - 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, - 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, - 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, - 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, - 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, - 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, - 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, - 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, - 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, - 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, - 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, - 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, - 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, - 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, - 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, - 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, - 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, - 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, - 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, - 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, - 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, - 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, - 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, - 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, - 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, - 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, - 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, - 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, - 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, - 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, - 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, - 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, - 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, - 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, - 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, - 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, - 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, - 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, - 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, - 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, - 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, - 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, - 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, - 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, - 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, - 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, - 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, - 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, - 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, - 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, - 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, - 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, - 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, - 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, - 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, - 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, - 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, - 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, - 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, - 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, - 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, - 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, - 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, - 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, - 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, - 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, - 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, - 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, - 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, - 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, - 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, - 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, - 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, - 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, - 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, - 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, - 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, - 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, - 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, - 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, - 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, - 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, - 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, - 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, - 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, - 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, - 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, - 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, - 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, - 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, - 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, - 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, - 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, - 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, - 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, - 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, - 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, - 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, - 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, - 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, - 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, - 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, - 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, - 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, - 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, - 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, - 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, - 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, - 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, - 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, - 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, - 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, - 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, - 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, - 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, - 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, - 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, - 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, - 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, - 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, - 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, - 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, - 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, - 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, - 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, - 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, - 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, - 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, - 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, - 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, - 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, - 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, - 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, - 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, - 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, - 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, - 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, - 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, - 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, - 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, - 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, - 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, - 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, - 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, - 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, - 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, - 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, - 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, - 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, - 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, - 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, - 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, - 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, - 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, - 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, - 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, - 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, - 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, - 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, - 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, - 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, - 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, - 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, - 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, - 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, - 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, - 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, - 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, - 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, - 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, - 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, - 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, - 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, - 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, - 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, - 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, - 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, - 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, - 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, - 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, - 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, - 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, - 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, - 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, - 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, - 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, - 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, - 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, - 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, - 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, - 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, - 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, - 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, - 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, - 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, - 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, - 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, - 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, - 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, - 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, - 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, - 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, - 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, - 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, - 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, - 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, - 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, - 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, - 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, - 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, - 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, - 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, + 0xff, 0x04, 0x12, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe6, 0x7f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, + 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xe4, 0xf3, 0x3b, 0xe7, 0xdc, 0xcf, 0x73, 0xcf, 0xbd, 0x75, + 0xab, 0x3a, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, + 0x4c, 0xff, 0x3b, 0x92, 0x7f, 0x1e, 0xbe, 0x15, 0xe7, 0x2b, 0xb1, 0x2a, 0xd8, 0xfb, 0xef, 0x59, + 0x72, 0xca, 0xe7, 0xf3, 0x38, 0x4f, 0xaa, 0x06, 0x79, 0xff, 0x5d, 0x2b, 0x61, 0x4b, 0x96, 0x0b, + 0xf5, 0xf7, 0xa7, 0xff, 0xf9, 0xbf, 0x83, 0xe8, 0xed, 0x9d, 0x2c, 0x65, 0xb9, 0xd8, 0x51, 0x1a, + 0xc3, 0x2f, 0xa3, 0xef, 0x6c, 0x17, 0xc5, 0x3e, 0x13, 0xaf, 0x58, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, + 0x38, 0x52, 0x0e, 0x46, 0xa7, 0xc5, 0x74, 0xb4, 0x5d, 0x14, 0x23, 0x2b, 0x1c, 0x9d, 0xb2, 0x1f, + 0x2f, 0x58, 0x25, 0xde, 0xbf, 0x17, 0x86, 0xaa, 0x82, 0xe7, 0x15, 0x1b, 0x5e, 0x44, 0xbf, 0xb2, + 0x5d, 0x14, 0x63, 0x26, 0x76, 0x59, 0x5d, 0x81, 0xb1, 0x88, 0x05, 0x1b, 0xae, 0xb5, 0x54, 0x7d, + 0xc0, 0xf8, 0x78, 0xd8, 0x0d, 0x2a, 0x3f, 0x93, 0xe8, 0xdb, 0xb5, 0x9f, 0xcb, 0x85, 0x48, 0xf8, + 0x75, 0x3e, 0xfc, 0xa0, 0xad, 0xa8, 0x44, 0xc6, 0xf6, 0xdd, 0x10, 0xa2, 0xac, 0xbe, 0x8e, 0x7e, + 0xf1, 0x75, 0x9c, 0x65, 0x4c, 0xec, 0x94, 0xac, 0x2e, 0xb8, 0xaf, 0xd3, 0x88, 0x46, 0x8d, 0xcc, + 0xd8, 0xfd, 0x30, 0xc8, 0x28, 0xc3, 0x5f, 0x46, 0xdf, 0x69, 0x24, 0xa7, 0x6c, 0xca, 0x97, 0xac, + 0x1c, 0xa2, 0x5a, 0x4a, 0x48, 0x34, 0x79, 0x0b, 0x82, 0xb6, 0x77, 0x78, 0xbe, 0x64, 0xa5, 0xc0, + 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x85, 0x94, 0xed, 0xbf, 0x1e, 0x44, 0xdf, 0xdb, 0x9e, 0x4e, 0xf9, + 0x22, 0x17, 0x87, 0x7c, 0x1a, 0x67, 0x87, 0x69, 0x7e, 0x75, 0xcc, 0xae, 0x77, 0x2e, 0x6b, 0x3e, + 0x9f, 0xb1, 0xe1, 0x33, 0xbf, 0x55, 0x1b, 0x74, 0x64, 0xd8, 0x91, 0x0b, 0x1b, 0xdf, 0x1f, 0xdf, + 0x4c, 0x49, 0x95, 0xe5, 0xef, 0x07, 0xd1, 0x2d, 0x58, 0x96, 0x31, 0xcf, 0x96, 0xcc, 0x96, 0xe6, + 0x93, 0x0e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xe9, 0x4d, 0xd5, 0x54, 0x89, 0xb2, 0xe8, 0x1d, 0x77, + 0xb8, 0x8c, 0x59, 0x25, 0xa7, 0xd3, 0x23, 0x7a, 0x44, 0x28, 0xc4, 0x78, 0x7e, 0xdc, 0x07, 0x55, + 0xde, 0xd2, 0x68, 0xa8, 0xbc, 0x65, 0xbc, 0x32, 0xce, 0x1e, 0xa2, 0x16, 0x1c, 0xc2, 0xf8, 0x7a, + 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x20, 0xfa, 0xa5, 0xd7, 0xbc, 0xbc, 0xaa, 0x8a, 0x78, 0xca, 0xd4, + 0x54, 0xb8, 0xef, 0x6b, 0x6b, 0x29, 0x9c, 0x0d, 0x0f, 0xba, 0x30, 0x67, 0xd0, 0x6a, 0xe1, 0xcb, + 0x82, 0xc1, 0x18, 0x64, 0x15, 0x6b, 0x21, 0x35, 0x68, 0x21, 0xa4, 0x6c, 0x5f, 0x45, 0x43, 0x6b, + 0xfb, 0xfc, 0x0f, 0xd9, 0x54, 0x6c, 0x27, 0x09, 0xec, 0x15, 0xab, 0x2b, 0x89, 0xd1, 0x76, 0x92, + 0x50, 0xbd, 0x82, 0xa3, 0xca, 0xd9, 0x75, 0xf4, 0x2e, 0x70, 0x76, 0x98, 0x56, 0xd2, 0xe1, 0x66, + 0xd8, 0x8a, 0xc2, 0x8c, 0xd3, 0x51, 0x5f, 0x5c, 0x39, 0xfe, 0xd3, 0x41, 0xf4, 0x5d, 0xc4, 0xf3, + 0x29, 0x9b, 0xf3, 0x25, 0x1b, 0x3e, 0xe9, 0xb6, 0xd6, 0x90, 0xc6, 0xff, 0x47, 0x37, 0xd0, 0x40, + 0x86, 0xc9, 0x98, 0x65, 0x6c, 0x2a, 0xc8, 0x61, 0xd2, 0x88, 0x3b, 0x87, 0x89, 0xc1, 0x9c, 0x19, + 0xa6, 0x85, 0xfb, 0x4c, 0xec, 0x2c, 0xca, 0x92, 0xe5, 0x82, 0xec, 0x4b, 0x8b, 0x74, 0xf6, 0xa5, + 0x87, 0x22, 0xf5, 0xd9, 0x67, 0x62, 0x3b, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c, + 0x79, 0x98, 0x46, 0xbf, 0xec, 0xb4, 0x98, 0x38, 0xc8, 0x2f, 0xf8, 0x90, 0x6e, 0x0b, 0x29, 0x37, + 0x3e, 0xd6, 0x3a, 0x39, 0xa4, 0x1a, 0x2f, 0xde, 0x14, 0xbc, 0xa4, 0xbb, 0xa5, 0x11, 0x77, 0x56, + 0xc3, 0x60, 0xca, 0xc3, 0xef, 0x47, 0x6f, 0xab, 0x28, 0xa9, 0xd7, 0xb3, 0x7b, 0x68, 0x08, 0x85, + 0x0b, 0xda, 0xfd, 0x0e, 0xca, 0x06, 0x07, 0x25, 0x53, 0xc1, 0xe7, 0x43, 0x54, 0x0f, 0x84, 0x9e, + 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x97, 0x65, 0x8c, 0xb4, 0xdd, 0x08, 0x3b, 0x6c, 0x1b, 0x48, 0xd9, + 0x2e, 0xa3, 0x5f, 0x33, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x75, 0xa2, 0xde, 0x2e, + 0x64, 0x7c, 0x6d, 0xf4, 0x83, 0x5b, 0xf5, 0x51, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0xf7, 0xc2, + 0x90, 0xb2, 0xfd, 0x37, 0x83, 0xe8, 0xfb, 0x4a, 0xf6, 0x22, 0x8f, 0xcf, 0x33, 0x26, 0x97, 0xc4, + 0x63, 0x26, 0xae, 0x79, 0x79, 0x35, 0x5e, 0xe5, 0x53, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, + 0x54, 0x72, 0x32, 0x3e, 0x55, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0xe9, 0x1a, 0x08, 0x5e, 0x50, 0x19, + 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xbb, 0x21, 0xc4, + 0x86, 0x2d, 0x3d, 0x80, 0x79, 0x7e, 0x91, 0xce, 0xce, 0x8a, 0xa4, 0x1e, 0xc6, 0x8f, 0xf0, 0x11, + 0xea, 0x20, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, 0xef, 0x6c, 0x62, 0xa4, 0xa6, 0xd2, 0x5e, 0xc9, + 0xe7, 0x87, 0x6c, 0x16, 0x4f, 0x57, 0x6a, 0xfe, 0x7f, 0x1c, 0x9a, 0x78, 0x90, 0x36, 0x85, 0xf8, + 0xe4, 0x86, 0x5a, 0xaa, 0x3c, 0xff, 0x36, 0x88, 0xee, 0xe9, 0xea, 0x5f, 0xc6, 0xf9, 0x8c, 0xa9, + 0xfe, 0x6c, 0x4a, 0xbf, 0x9d, 0x27, 0xa7, 0xac, 0x12, 0x71, 0x29, 0x86, 0x3f, 0xc0, 0x2b, 0x19, + 0xd2, 0x31, 0x65, 0xfb, 0xe1, 0x37, 0xd2, 0xb5, 0xbd, 0x3e, 0xae, 0x03, 0x9b, 0x0a, 0x01, 0x7e, + 0xaf, 0x4b, 0x09, 0x0c, 0x00, 0x77, 0x43, 0x88, 0xed, 0x75, 0x29, 0x38, 0xc8, 0x97, 0xa9, 0x60, + 0xfb, 0x2c, 0x67, 0x65, 0xbb, 0xd7, 0x1b, 0x55, 0x1f, 0x21, 0x7a, 0x9d, 0x40, 0x6d, 0xb0, 0xf1, + 0xbc, 0x99, 0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb5, 0x3c, 0x6e, 0xf4, 0x83, 0xed, 0xee, 0xce, 0xf1, + 0x79, 0xca, 0x96, 0xfc, 0x0a, 0xee, 0xee, 0x5c, 0x13, 0x0d, 0x40, 0xec, 0xee, 0x50, 0xd0, 0xae, + 0x60, 0x8e, 0x9f, 0x57, 0x29, 0xbb, 0x06, 0x2b, 0x98, 0xab, 0x5c, 0x8b, 0x89, 0x15, 0x0c, 0xc1, + 0x94, 0x87, 0xe3, 0xe8, 0x17, 0xa4, 0xf0, 0x77, 0x79, 0x9a, 0x0f, 0x6f, 0x23, 0x4a, 0xb5, 0xc0, + 0x58, 0xbd, 0x43, 0x03, 0xa0, 0xc4, 0xf5, 0x5f, 0x77, 0xe2, 0x7c, 0xca, 0x32, 0xb4, 0xc4, 0x56, + 0x1c, 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xbe, 0x8c, 0xcb, 0x34, 0x9f, + 0x0d, 0x31, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x52, 0xdc, 0x2e, 0x8a, 0xb2, + 0x0e, 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x5d, 0x36, 0xcd, 0xd2, + 0x3c, 0xe8, 0x4d, 0x21, 0x7d, 0xbc, 0x59, 0x14, 0x0c, 0xde, 0x43, 0x16, 0x2f, 0x99, 0xae, 0x19, + 0xd6, 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x58, 0xdd, + 0xc0, 0xac, 0x5e, 0xd7, 0x86, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0x54, 0xae, 0x16, 0xd1, + 0xbb, 0x52, 0x7e, 0x12, 0x97, 0x22, 0x9d, 0xa6, 0x45, 0x9c, 0xeb, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, + 0xca, 0xb8, 0xdc, 0xec, 0x49, 0x2b, 0xb7, 0xff, 0x32, 0x88, 0x3e, 0x80, 0x7e, 0x4f, 0x58, 0x39, + 0x4f, 0xe5, 0x36, 0xb2, 0x6a, 0x82, 0xf0, 0xf0, 0xb3, 0xb0, 0xd1, 0x96, 0x82, 0x29, 0xcd, 0xe7, + 0x37, 0x57, 0xb4, 0xc9, 0xd0, 0x58, 0xa5, 0xd6, 0x2f, 0xcb, 0xa4, 0x75, 0xcc, 0x32, 0xd6, 0xf9, + 0xb2, 0x14, 0x12, 0xc9, 0x50, 0x0b, 0x02, 0x33, 0xfc, 0x2c, 0xaf, 0xb4, 0x75, 0x6c, 0x86, 0x5b, + 0x71, 0x70, 0x86, 0x7b, 0x98, 0xf2, 0xf0, 0x7b, 0x51, 0xd4, 0x6c, 0xb6, 0xe4, 0x86, 0xd8, 0x8f, + 0x39, 0x6a, 0x17, 0xe6, 0xed, 0x86, 0x3f, 0x08, 0x10, 0x76, 0xa1, 0x6b, 0xfe, 0x2e, 0xf7, 0xf9, + 0x43, 0x54, 0x43, 0x8a, 0x88, 0x85, 0x0e, 0x20, 0xb0, 0xa0, 0xe3, 0x4b, 0x7e, 0x8d, 0x17, 0xb4, + 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0xf2, 0xa6, 0x0a, 0x8a, 0x9d, 0xbc, 0xe9, 0x62, 0x84, 0x4e, + 0xde, 0x20, 0xa3, 0x0c, 0xf3, 0xe8, 0x57, 0x5d, 0xc3, 0xcf, 0x39, 0xbf, 0x9a, 0xc7, 0xe5, 0xd5, + 0xf0, 0x31, 0xad, 0xac, 0x19, 0xe3, 0x68, 0xbd, 0x17, 0x6b, 0x83, 0x9a, 0xeb, 0xb0, 0x4e, 0x93, + 0xce, 0xca, 0x0c, 0x04, 0x35, 0xcf, 0x86, 0x42, 0x88, 0xa0, 0x46, 0xa0, 0x76, 0x54, 0xba, 0xde, + 0xc6, 0x0c, 0xee, 0xf5, 0x3c, 0xf5, 0x31, 0xa3, 0xf6, 0x7a, 0x08, 0x06, 0x87, 0xd0, 0x7e, 0x19, + 0x17, 0x97, 0xf8, 0x10, 0x92, 0xa2, 0xf0, 0x10, 0xd2, 0x08, 0xec, 0xef, 0x31, 0x8b, 0xcb, 0xe9, + 0x25, 0xde, 0xdf, 0x8d, 0x2c, 0xdc, 0xdf, 0x86, 0x81, 0xfd, 0xdd, 0x08, 0x5e, 0xa7, 0xe2, 0xf2, + 0x88, 0x89, 0x18, 0xef, 0x6f, 0x9f, 0x09, 0xf7, 0x77, 0x8b, 0xb5, 0x79, 0x98, 0xeb, 0x70, 0xbc, + 0x38, 0xaf, 0xa6, 0x65, 0x7a, 0xce, 0x86, 0x01, 0x2b, 0x06, 0x22, 0xf2, 0x30, 0x12, 0x56, 0x3e, + 0x7f, 0x3a, 0x88, 0x6e, 0xeb, 0x6e, 0xe7, 0x55, 0xa5, 0x62, 0x9e, 0xef, 0xfe, 0x13, 0xbc, 0x7f, + 0x09, 0x9c, 0x38, 0x0b, 0xed, 0xa1, 0xe6, 0xac, 0x09, 0x78, 0x91, 0xce, 0xf2, 0xca, 0x14, 0xea, + 0xb3, 0x3e, 0xd6, 0x1d, 0x05, 0x62, 0x4d, 0xe8, 0xa5, 0x68, 0x97, 0x63, 0xd5, 0x3f, 0x5a, 0x76, + 0x90, 0x54, 0x60, 0x39, 0xd6, 0xed, 0xed, 0x10, 0xc4, 0x72, 0x8c, 0x93, 0x70, 0x28, 0xec, 0x97, + 0x7c, 0x51, 0x54, 0x1d, 0x43, 0x01, 0x40, 0xe1, 0xa1, 0xd0, 0x86, 0x95, 0xcf, 0x37, 0xd1, 0xaf, + 0xbb, 0xc3, 0xcf, 0x6d, 0xec, 0x4d, 0x7a, 0x4c, 0x61, 0x4d, 0x3c, 0xea, 0x8b, 0xdb, 0x84, 0x54, + 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0x1f, 0xe0, 0x36, 0xb4, 0x9c, 0x48, 0x48, 0x31, + 0x0e, 0xc6, 0xb7, 0xdd, 0x45, 0x91, 0xa5, 0xd3, 0xf6, 0x49, 0xb4, 0xd2, 0x35, 0xe2, 0x70, 0x7c, + 0x73, 0x31, 0x18, 0xaf, 0xeb, 0x25, 0x5f, 0xfe, 0x67, 0xb2, 0x2a, 0x18, 0x1e, 0xaf, 0x3d, 0x24, + 0x1c, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x66, 0xe2, 0x30, 0x5e, 0xf1, 0x05, 0x11, 0xaf, 0x8d, 0x38, + 0x5c, 0x1f, 0x17, 0xb3, 0x39, 0xa1, 0xf1, 0x70, 0x90, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, + 0xb3, 0x6a, 0x48, 0xc4, 0x18, 0x9f, 0x22, 0x72, 0x42, 0x9a, 0x46, 0x9a, 0xf1, 0xa0, 0xda, 0x8b, + 0x97, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46, 0x0f, 0x45, 0xbd, 0x6d, 0x97, 0xd3, + 0xcb, 0x74, 0xc9, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6, 0xa0, 0x48, 0xa7, 0x8d, 0xf9, 0xa2, + 0x9c, 0x32, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x79, 0xf8, 0x8b, 0x41, 0xf4, 0x1b, + 0x8d, 0xd4, 0x3d, 0x1e, 0xde, 0x8d, 0xab, 0xcb, 0x73, 0x1e, 0x97, 0xc9, 0xf0, 0x23, 0xcc, 0x0e, + 0x8a, 0x1a, 0xd7, 0x4f, 0x6f, 0xa2, 0x02, 0x9b, 0xf5, 0x30, 0xad, 0x9c, 0x19, 0x87, 0x36, 0xab, + 0x87, 0x84, 0x9b, 0x15, 0xa2, 0x30, 0x80, 0x48, 0x79, 0x73, 0x14, 0xf3, 0x80, 0xd4, 0xf7, 0xcf, + 0x63, 0xd6, 0x3a, 0x39, 0x18, 0x1f, 0x6b, 0xa1, 0x3f, 0x5a, 0x36, 0x29, 0x1b, 0xf8, 0x88, 0x19, + 0xf5, 0xc5, 0x49, 0xcf, 0x66, 0x56, 0x84, 0x3d, 0xb7, 0x66, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0x76, + 0xc2, 0x5a, 0xc8, 0x33, 0x12, 0xda, 0x46, 0x7d, 0x71, 0x98, 0x7d, 0x29, 0x46, 0xaf, 0x0b, 0x8f, + 0x03, 0x76, 0xe0, 0xda, 0xb0, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x6a, 0x10, 0x7d, 0xcf, 0x7a, 0x3c, + 0xe2, 0x49, 0x7a, 0xb1, 0x6a, 0xa0, 0x57, 0x71, 0xb6, 0x60, 0xd5, 0xf0, 0x29, 0x65, 0xad, 0xcd, + 0x9a, 0x12, 0x3c, 0xbb, 0x91, 0x0e, 0x9c, 0x3b, 0xdb, 0x45, 0x91, 0xad, 0x26, 0x6c, 0x5e, 0x64, + 0xe4, 0xdc, 0xf1, 0x90, 0xf0, 0xdc, 0x81, 0x28, 0xcc, 0xca, 0x27, 0xbc, 0xce, 0xf9, 0xd1, 0xac, + 0x5c, 0x8a, 0xc2, 0x59, 0xb9, 0x46, 0x60, 0xae, 0x34, 0xe1, 0x3b, 0x3c, 0xcb, 0xd8, 0x54, 0xb4, + 0x1f, 0x31, 0x1b, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xd3, 0x18, 0xbd, 0x87, 0x8c, 0x4b, + 0xf6, 0x7c, 0x75, 0x98, 0xe6, 0x57, 0x43, 0x3c, 0x2d, 0xb0, 0x00, 0x71, 0x1a, 0x83, 0x82, 0x70, + 0xaf, 0x7a, 0x96, 0x27, 0x1c, 0xdf, 0xab, 0xd6, 0x92, 0xf0, 0x5e, 0x55, 0x11, 0xd0, 0xe4, 0x29, + 0xa3, 0x4c, 0xd6, 0x92, 0xb0, 0x49, 0x45, 0x60, 0xa1, 0x50, 0x9d, 0xd9, 0x93, 0xa1, 0x10, 0x9c, + 0xd2, 0xaf, 0x75, 0x72, 0x70, 0x84, 0xea, 0x4d, 0xeb, 0x1e, 0x13, 0xd3, 0x4b, 0x7c, 0x84, 0x7a, + 0x48, 0x78, 0x84, 0x42, 0x14, 0x56, 0x69, 0xc2, 0xcd, 0xa6, 0xfb, 0x01, 0x3e, 0x3e, 0x5a, 0x1b, + 0xee, 0xb5, 0x4e, 0x0e, 0x6e, 0x23, 0x0f, 0xe6, 0xb2, 0xcd, 0xd0, 0x41, 0xde, 0xc8, 0xc2, 0xdb, + 0x48, 0xc3, 0xc0, 0xd2, 0x37, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, + 0x9c, 0xfc, 0x93, 0xd9, 0xc6, 0x35, 0xd2, 0x63, 0x5e, 0xcf, 0x91, 0x57, 0x71, 0x96, 0x26, 0xb1, + 0x60, 0x13, 0x7e, 0xc5, 0x72, 0x7c, 0xc7, 0xa4, 0x4a, 0xdb, 0xf0, 0x23, 0x4f, 0x21, 0xbc, 0x63, + 0x0a, 0x2b, 0xc2, 0x71, 0xd2, 0xd0, 0x67, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0x78, + 0x9c, 0x40, 0x14, 0xe6, 0xab, 0x8d, 0xfc, 0xc5, 0x9b, 0x82, 0x95, 0x29, 0xcb, 0xa7, 0x0c, 0xcf, + 0x57, 0x21, 0x15, 0xce, 0x57, 0x11, 0x1a, 0xee, 0xd5, 0x76, 0x63, 0xc1, 0x9e, 0xaf, 0x26, 0xe9, + 0x9c, 0x55, 0x22, 0x9e, 0x17, 0xf8, 0x5e, 0x0d, 0x40, 0xe1, 0xbd, 0x5a, 0x1b, 0x6e, 0x1d, 0x0d, + 0x99, 0x80, 0xd8, 0xbe, 0x99, 0x02, 0x89, 0xc0, 0xcd, 0x14, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, + 0x70, 0xb8, 0x65, 0x25, 0x78, 0x38, 0x4c, 0xd3, 0xad, 0x03, 0x37, 0xc3, 0x8c, 0xeb, 0xa9, 0xd9, + 0x51, 0xf4, 0xb1, 0x3b, 0x45, 0xd7, 0x7b, 0xb1, 0xf8, 0x09, 0xdf, 0x29, 0xcb, 0x62, 0xb9, 0x6c, + 0x05, 0x8e, 0xd1, 0x34, 0xd3, 0xe7, 0x84, 0xcf, 0x61, 0x95, 0xc3, 0x3f, 0x1b, 0x44, 0xef, 0x63, + 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, 0x5b, 0x0d, 0x49, 0x5c, 0xbd, 0x09, 0x6b, 0xa8, 0x32, + 0xfc, 0x51, 0xf4, 0x9e, 0x16, 0xd9, 0x9b, 0x39, 0xaa, 0x00, 0x7e, 0xd2, 0x66, 0xca, 0x0f, 0x39, + 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xf7, 0x43, 0x7e, 0xb9, 0x2a, 0xb0, 0x1f, 0x32, 0x36, 0x94, 0x98, + 0xd8, 0x0f, 0x21, 0x98, 0x9d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa7, 0xe2, 0x52, 0xe6, 0x5b, 0x60, 0x76, + 0x7a, 0x65, 0x35, 0x10, 0x31, 0x3b, 0x49, 0x18, 0x66, 0x24, 0x1a, 0xac, 0xe7, 0x26, 0x16, 0xcb, + 0x8d, 0x21, 0x77, 0x66, 0x3e, 0xec, 0x06, 0xe1, 0x78, 0xd5, 0x62, 0xb5, 0xf5, 0x79, 0x1c, 0xb2, + 0x00, 0xb6, 0x3f, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0x4f, 0xa2, 0xef, 0xb6, 0x2a, 0xb6, 0xc7, 0x62, + 0xb1, 0x28, 0x59, 0x32, 0xdc, 0xea, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0x27, 0xfd, 0x15, 0x5a, 0x39, + 0xba, 0xe6, 0x9a, 0x61, 0x65, 0xca, 0xf0, 0x34, 0x64, 0xd2, 0x67, 0x83, 0x39, 0x3a, 0xad, 0xd3, + 0xda, 0x66, 0xbb, 0xa3, 0x6b, 0x7b, 0x19, 0xa7, 0x99, 0x7c, 0x48, 0xf7, 0x51, 0xc8, 0xa8, 0x87, + 0x06, 0xb7, 0xd9, 0xa4, 0x4a, 0x2b, 0x32, 0xcb, 0x39, 0xee, 0x6c, 0xcf, 0x36, 0xe8, 0x48, 0x80, + 0xec, 0xce, 0x36, 0x7b, 0xd2, 0xca, 0xad, 0xd0, 0x4b, 0x5e, 0xfd, 0x67, 0x77, 0x90, 0x63, 0x5e, + 0x95, 0x2a, 0x32, 0xd2, 0x37, 0x7b, 0xd2, 0xca, 0xeb, 0x1f, 0x47, 0xef, 0xb5, 0xbd, 0xaa, 0x85, + 0x68, 0xab, 0xd3, 0x14, 0x58, 0x8b, 0x9e, 0xf4, 0x57, 0x50, 0xee, 0xff, 0xd5, 0x9c, 0x4b, 0x37, + 0xfe, 0xa7, 0x7c, 0x3e, 0x67, 0x79, 0xc2, 0x12, 0xad, 0x51, 0xd5, 0xfb, 0xa7, 0xcf, 0x69, 0xbb, + 0x46, 0x61, 0xe4, 0x6a, 0x98, 0x12, 0xfd, 0xe6, 0x37, 0xd0, 0x54, 0x45, 0xfb, 0x8f, 0x41, 0xf4, + 0x08, 0x2d, 0x9a, 0x1e, 0xb8, 0x5e, 0x11, 0x7f, 0xa7, 0x8f, 0x23, 0x4c, 0xd3, 0x14, 0x75, 0xfb, + 0xff, 0x61, 0xc1, 0xb9, 0x83, 0x8d, 0x16, 0xb9, 0x39, 0x85, 0xac, 0xcb, 0xf9, 0x49, 0x1f, 0x2f, + 0x06, 0x0f, 0x3e, 0x77, 0x08, 0xaa, 0xd9, 0x2d, 0xeb, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, + 0xf2, 0x6b, 0xfd, 0x46, 0x83, 0x1f, 0x8d, 0x15, 0x30, 0x72, 0x08, 0x62, 0xcb, 0x8a, 0x93, 0x2d, + 0x57, 0xf6, 0xcd, 0x87, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xae, 0x45, 0xba, 0x56, + 0xf6, 0x35, 0x8d, 0x35, 0xbc, 0xa8, 0xed, 0x57, 0x35, 0x1e, 0x76, 0x83, 0x36, 0x23, 0x55, 0xe2, + 0xdd, 0xf4, 0xe2, 0xc2, 0xd4, 0x09, 0x2f, 0xa9, 0x8b, 0x10, 0x19, 0x29, 0x81, 0xda, 0x4d, 0xd5, + 0x5e, 0x9a, 0x31, 0xf9, 0xc4, 0xe6, 0xe5, 0xc5, 0x45, 0xc6, 0xe3, 0x04, 0x6c, 0xaa, 0x6a, 0xf1, + 0xc8, 0x95, 0x13, 0x9b, 0x2a, 0x8c, 0xb3, 0x77, 0x00, 0x6a, 0x69, 0x3d, 0x6c, 0xf2, 0x69, 0x9a, + 0xc1, 0x0b, 0x9e, 0x52, 0xd3, 0x08, 0x89, 0x3b, 0x00, 0x2d, 0xc8, 0x26, 0x3e, 0xb5, 0xa8, 0x0e, + 0xeb, 0xba, 0xfc, 0xf7, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x7c, 0x10, 0xcc, 0x9e, 0x2d, 0xd4, 0xc2, + 0xb3, 0x42, 0x1a, 0xbf, 0xd3, 0xd6, 0x6a, 0x24, 0xc4, 0xd9, 0x82, 0x4f, 0xd8, 0x3d, 0x72, 0xfd, + 0xf7, 0x5d, 0x7e, 0x9d, 0x4b, 0xa3, 0x77, 0xdb, 0x2a, 0x5a, 0x46, 0xec, 0x91, 0x21, 0xa3, 0x0c, + 0xff, 0x28, 0xfa, 0x79, 0x69, 0xb8, 0xe4, 0xc5, 0xf0, 0x16, 0xa2, 0x50, 0x3a, 0x77, 0x31, 0x6f, + 0x93, 0x72, 0x7b, 0xa5, 0xd8, 0x8c, 0x8d, 0xb3, 0x2a, 0x9e, 0xb1, 0xe1, 0x3d, 0xa2, 0xc7, 0xa5, + 0x94, 0xb8, 0x52, 0xdc, 0xa6, 0xfc, 0x51, 0x71, 0xcc, 0x13, 0x65, 0x1d, 0xa9, 0xa1, 0x11, 0x86, + 0x46, 0x85, 0x0b, 0xd9, 0x64, 0xf5, 0x38, 0x5e, 0xa6, 0x33, 0x93, 0x50, 0x34, 0xd1, 0xab, 0x02, + 0xc9, 0xaa, 0x65, 0x46, 0x0e, 0x44, 0x24, 0xab, 0x24, 0xac, 0x7c, 0xfe, 0xe3, 0x20, 0xba, 0x63, + 0x99, 0x7d, 0x7d, 0x1a, 0x7b, 0x90, 0x5f, 0xf0, 0x3a, 0xb5, 0x3d, 0x4c, 0xf3, 0xab, 0x6a, 0xf8, + 0x29, 0x65, 0x12, 0xe7, 0x4d, 0x51, 0x3e, 0xbb, 0xb1, 0x9e, 0xdd, 0x95, 0xe8, 0xa3, 0x4a, 0x7b, + 0x5f, 0xa1, 0xd1, 0x00, 0xbb, 0x12, 0x73, 0xa2, 0x09, 0x39, 0x62, 0x57, 0x12, 0xe2, 0x6d, 0x17, + 0x1b, 0xe7, 0x19, 0xcf, 0x61, 0x17, 0x5b, 0x0b, 0xb5, 0x90, 0xe8, 0xe2, 0x16, 0x64, 0xe3, 0xb1, + 0x16, 0x35, 0xa7, 0x6a, 0xdb, 0x59, 0x06, 0xe2, 0xb1, 0x51, 0x35, 0x00, 0x11, 0x8f, 0x51, 0x50, + 0xf9, 0x39, 0x8d, 0xbe, 0x5d, 0x37, 0xe9, 0x49, 0xc9, 0x96, 0x29, 0x83, 0x57, 0x6b, 0x1c, 0x09, + 0x31, 0xff, 0x7d, 0xc2, 0xce, 0xac, 0xb3, 0xbc, 0x2a, 0xb2, 0xb8, 0xba, 0x54, 0x97, 0x2d, 0xfc, + 0x3a, 0x6b, 0x21, 0xbc, 0x6e, 0x71, 0xbf, 0x83, 0xb2, 0x41, 0x5d, 0xcb, 0x4c, 0x88, 0x79, 0x80, + 0xab, 0xb6, 0xc2, 0xcc, 0x5a, 0x27, 0x67, 0x9f, 0x68, 0xec, 0xc7, 0x59, 0xc6, 0xca, 0x95, 0x96, + 0x1d, 0xc5, 0x79, 0x7a, 0xc1, 0x2a, 0x01, 0x9e, 0x68, 0x28, 0x6a, 0x04, 0x31, 0xe2, 0x89, 0x46, + 0x00, 0xb7, 0xbb, 0x35, 0xe0, 0xf9, 0x20, 0x4f, 0xd8, 0x1b, 0xb0, 0x5b, 0x83, 0x76, 0x24, 0x43, + 0xec, 0xd6, 0x28, 0xd6, 0x9e, 0xec, 0x3f, 0xcf, 0xf8, 0xf4, 0x4a, 0x2d, 0x01, 0x7e, 0x07, 0x4b, + 0x09, 0x5c, 0x03, 0xee, 0x86, 0x10, 0xbb, 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xb2, 0x78, 0x0a, 0xef, + 0x57, 0x35, 0x3a, 0x4a, 0x46, 0x2c, 0x02, 0x90, 0x01, 0xc5, 0x55, 0xf7, 0xb6, 0xb0, 0xe2, 0x82, + 0x6b, 0x5b, 0x77, 0x43, 0x88, 0x5d, 0x06, 0xa5, 0x60, 0x5c, 0x64, 0xa9, 0x00, 0xd3, 0xa0, 0xd1, + 0x90, 0x12, 0x62, 0x1a, 0xf8, 0x04, 0x30, 0x79, 0xc4, 0xca, 0x19, 0x43, 0x4d, 0x4a, 0x49, 0xd0, + 0xa4, 0x26, 0xec, 0x25, 0xe2, 0xa6, 0xee, 0xbc, 0x58, 0x81, 0x4b, 0xc4, 0xaa, 0x5a, 0xbc, 0x58, + 0x11, 0x97, 0x88, 0x3d, 0x00, 0x14, 0xf1, 0x24, 0xae, 0x04, 0x5e, 0x44, 0x29, 0x09, 0x16, 0x51, + 0x13, 0x76, 0x8d, 0x6e, 0x8a, 0xb8, 0x10, 0x60, 0x8d, 0x56, 0x05, 0x70, 0x6e, 0x18, 0xdc, 0x26, + 0xe5, 0x36, 0x92, 0x34, 0xbd, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, 0xa4, 0x02, 0x91, 0x44, 0xb5, 0xbb, + 0x96, 0x12, 0x91, 0xa4, 0x4d, 0x81, 0xa1, 0xa4, 0x9e, 0x7f, 0x60, 0xb5, 0x03, 0x8f, 0x3e, 0xee, + 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, 0xe2, 0xb2, 0x4c, 0xeb, 0xc5, 0xff, 0x01, 0x5e, 0x20, + 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x0c, + 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x11, 0x39, 0xd6, 0x9a, 0xc8, 0x13, 0xf2, 0x07, 0x5d, 0x98, + 0xf3, 0x92, 0x8f, 0x71, 0x71, 0xc4, 0x97, 0x6c, 0xc2, 0x5f, 0xbc, 0x49, 0x2b, 0x91, 0xe6, 0x33, + 0xb5, 0x72, 0x3f, 0x23, 0x2c, 0x61, 0x30, 0xf1, 0x92, 0x4f, 0xa7, 0x92, 0x4d, 0x20, 0x40, 0x59, + 0x8e, 0xd9, 0x35, 0x9a, 0x40, 0x40, 0x8b, 0x86, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xcf, 0xc9, 0x8c, + 0x73, 0xf5, 0x26, 0xf4, 0x84, 0xeb, 0x5c, 0x8e, 0xb2, 0x06, 0x41, 0xe2, 0xa8, 0x22, 0xa8, 0x60, + 0xf7, 0x97, 0xc6, 0xbf, 0x9d, 0x62, 0x0f, 0x09, 0x3b, 0xed, 0x69, 0xf6, 0xa8, 0x07, 0x89, 0xb8, + 0xb2, 0xf7, 0x3c, 0x28, 0x57, 0xed, 0x6b, 0x1e, 0x8f, 0x7a, 0x90, 0xce, 0x99, 0x9b, 0x5b, 0xad, + 0xe7, 0xf1, 0xf4, 0x6a, 0x56, 0xf2, 0x45, 0x9e, 0xec, 0xf0, 0x8c, 0x97, 0xe0, 0xcc, 0xcd, 0x2b, + 0x35, 0x40, 0x89, 0x33, 0xb7, 0x0e, 0x15, 0x9b, 0xc1, 0xb9, 0xa5, 0xd8, 0xce, 0xd2, 0x19, 0xdc, + 0x51, 0x7b, 0x86, 0x24, 0x40, 0x64, 0x70, 0x28, 0x88, 0x0c, 0xa2, 0x66, 0xc7, 0x2d, 0xd2, 0x69, + 0x9c, 0x35, 0xfe, 0xb6, 0x68, 0x33, 0x1e, 0xd8, 0x39, 0x88, 0x10, 0x05, 0xa4, 0x9e, 0x93, 0x45, + 0x99, 0x1f, 0xe4, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67, 0x3d, 0x1d, 0x10, 0x84, 0xd5, 0x09, 0x7b, + 0x53, 0x97, 0xa6, 0xfe, 0x07, 0x0b, 0xab, 0xf5, 0xdf, 0x47, 0x4a, 0x1e, 0x0a, 0xab, 0x80, 0x03, + 0x95, 0x51, 0x4e, 0x9a, 0x01, 0x13, 0xd0, 0xf6, 0x87, 0xc9, 0xc3, 0x6e, 0x10, 0xf7, 0x33, 0x16, + 0xab, 0x8c, 0x85, 0xfc, 0x48, 0xa0, 0x8f, 0x1f, 0x0d, 0xda, 0xe3, 0x16, 0xaf, 0x3e, 0x97, 0x6c, + 0x7a, 0xd5, 0xba, 0xb6, 0xe6, 0x17, 0xb4, 0x41, 0x88, 0xe3, 0x16, 0x02, 0xc5, 0xbb, 0xe8, 0x60, + 0xca, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4, 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x35, 0x32, + 0x9b, 0x6e, 0x5a, 0x27, 0x2c, 0xb8, 0x10, 0xb1, 0xf9, 0x25, 0x61, 0x9b, 0x93, 0x43, 0x9f, 0x47, + 0xed, 0x3b, 0xfd, 0x2d, 0x2b, 0x47, 0xf4, 0x9d, 0x7e, 0x8a, 0xa5, 0x2b, 0xd9, 0x8c, 0x91, 0x0e, + 0x2b, 0xfe, 0x38, 0xd9, 0xe8, 0x07, 0xdb, 0x2d, 0x8f, 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, + 0xdd, 0x0c, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0, 0x20, 0x84, 0x79, 0x9e, 0x77, 0x78, 0x2e, + 0x58, 0x2e, 0xb0, 0x10, 0xe6, 0x1b, 0x53, 0x60, 0x28, 0x84, 0x51, 0x0a, 0x60, 0xdc, 0xca, 0xf3, + 0x20, 0x26, 0x8e, 0xe3, 0x39, 0x9a, 0xb1, 0x35, 0x67, 0x3d, 0x8d, 0x3c, 0x34, 0x6e, 0x01, 0xe7, + 0x3c, 0xc4, 0x75, 0xbd, 0x4c, 0xe2, 0x72, 0x66, 0x4e, 0x37, 0x92, 0xe1, 0x13, 0xda, 0x8e, 0x4f, + 0x12, 0x0f, 0x71, 0xc3, 0x1a, 0x20, 0xec, 0x1c, 0xcc, 0xe3, 0x99, 0xa9, 0x29, 0x52, 0x03, 0x29, + 0x6f, 0x55, 0xf5, 0x61, 0x37, 0x08, 0xfc, 0xbc, 0x4a, 0x13, 0xc6, 0x03, 0x7e, 0xa4, 0xbc, 0x8f, + 0x1f, 0x08, 0x82, 0xec, 0xad, 0xae, 0x77, 0xb3, 0xa3, 0xdb, 0xce, 0x13, 0xb5, 0x8f, 0x1d, 0x11, + 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8e, 0xea, 0x03, 0xda, 0xd0, 0x1c, 0x35, 0xe7, + 0xaf, 0x7d, 0xe6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x51, 0x73, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, + 0xbf, 0x4a, 0xd9, 0xb5, 0xda, 0x08, 0x23, 0xf5, 0xd5, 0xd4, 0x48, 0xbe, 0x8a, 0x0a, 0x76, 0xc5, + 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xb5, 0x43, 0xe8, 0xf4, 0x0d, 0xb6, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, + 0x6f, 0xf5, 0x8e, 0x7b, 0xa7, 0x6f, 0xf0, 0xa2, 0xfb, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x73, 0x3d, + 0x71, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x15, 0xe9, 0x92, 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, + 0x74, 0x92, 0x56, 0x71, 0x3e, 0x8c, 0x84, 0x95, 0xe2, 0x84, 0x57, 0xa9, 0xbc, 0x84, 0xf1, 0xac, + 0x87, 0x51, 0x0d, 0x87, 0x36, 0x4d, 0x21, 0x25, 0xfb, 0x38, 0xd9, 0x43, 0xed, 0x2d, 0xf5, 0x8d, + 0x80, 0xbd, 0xf6, 0x65, 0xf5, 0xcd, 0x9e, 0xb4, 0x7d, 0xb0, 0xeb, 0x31, 0xee, 0x13, 0xe5, 0x50, + 0xaf, 0xa2, 0x0f, 0x95, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0xff, 0x52, 0xef, 0x2b, 0xa0, 0x7f, 0x35, + 0x09, 0x9e, 0xf6, 0xb1, 0x08, 0x26, 0xc2, 0xb3, 0x1b, 0xe9, 0xa8, 0x82, 0xfc, 0xad, 0xde, 0x40, + 0x6b, 0x54, 0xbe, 0xab, 0x23, 0xdf, 0xed, 0x54, 0x73, 0x22, 0xd4, 0xad, 0x16, 0x86, 0x33, 0xe3, + 0x93, 0x1b, 0x6a, 0x39, 0x8f, 0x68, 0x3d, 0x58, 0xbd, 0x53, 0xea, 0x94, 0x27, 0x64, 0xd9, 0xa1, + 0x61, 0x81, 0x3e, 0xbd, 0xa9, 0x1a, 0x35, 0x57, 0x1c, 0x58, 0x7e, 0x75, 0xe3, 0x59, 0x4f, 0xc3, + 0xde, 0x77, 0x38, 0x3e, 0xbe, 0x99, 0x92, 0x2a, 0xcb, 0xbf, 0x0f, 0xa2, 0xfb, 0x1e, 0x6b, 0x9f, + 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x06, 0xec, 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xf5, 0xcd, 0x94, 0xed, + 0x37, 0xa5, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c, 0x7f, 0x53, 0xca, 0xb7, 0xdb, 0x50, 0x23, + 0xfa, 0x9b, 0x52, 0x01, 0xdc, 0xf9, 0xa6, 0x14, 0xe2, 0x19, 0xfd, 0xa6, 0x14, 0x6a, 0x2d, 0xf8, + 0x4d, 0xa9, 0xb0, 0x06, 0x15, 0xde, 0x75, 0x11, 0x9a, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, + 0xa7, 0x37, 0x51, 0x21, 0x16, 0xb8, 0x86, 0x93, 0xf7, 0x18, 0x7b, 0xb4, 0xa9, 0x77, 0x97, 0x71, + 0xab, 0x37, 0xaf, 0x7c, 0xff, 0x58, 0xed, 0x6e, 0x4c, 0x38, 0xe7, 0xa5, 0xfc, 0x9e, 0xd8, 0x7a, + 0x28, 0x3c, 0xd7, 0x16, 0xdc, 0x9e, 0xdf, 0xe8, 0x07, 0x13, 0xd5, 0xad, 0x09, 0xd5, 0xe9, 0xa3, + 0x2e, 0x43, 0xa0, 0xcb, 0xb7, 0x7a, 0xf3, 0xc4, 0x32, 0xd2, 0xf8, 0x6e, 0x7a, 0xbb, 0x87, 0x31, + 0xbf, 0xaf, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0x97, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xec, + 0x32, 0x35, 0xf6, 0xba, 0x79, 0xd4, 0x17, 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x95, 0x40, 0xa0, + 0xcb, 0xe8, 0xc7, 0x37, 0x53, 0x52, 0x65, 0xf9, 0x87, 0x41, 0x74, 0x9b, 0x2c, 0x8b, 0x1a, 0x07, + 0x9f, 0xf6, 0xb5, 0x0c, 0xc6, 0xc3, 0x67, 0x37, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x41, 0x74, 0x27, + 0x50, 0xa8, 0x66, 0x80, 0xdc, 0xc0, 0xba, 0x3f, 0x50, 0x3e, 0xbf, 0xb9, 0x22, 0xb5, 0xdc, 0xbb, + 0xf8, 0xb8, 0xfd, 0xb1, 0xa5, 0x80, 0xed, 0x31, 0xfd, 0xb1, 0xa5, 0x6e, 0x2d, 0x78, 0xc8, 0x13, + 0x9f, 0xeb, 0x4d, 0x17, 0x7a, 0xc8, 0x23, 0x6f, 0x20, 0x82, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, + 0x79, 0xf1, 0xa6, 0x88, 0xf3, 0x84, 0x76, 0xd2, 0xc8, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, + 0xd2, 0x53, 0xae, 0x37, 0x52, 0x8f, 0x28, 0x7d, 0x83, 0x04, 0x0f, 0xc7, 0x5a, 0x28, 0xe1, 0x4d, + 0x65, 0x8d, 0x21, 0x6f, 0x20, 0x59, 0x7c, 0xdc, 0x07, 0x05, 0x29, 0xba, 0xf1, 0x66, 0xce, 0xdc, + 0x37, 0x42, 0x56, 0x5a, 0xe7, 0xee, 0x9b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x9c, + 0xb0, 0x32, 0xe8, 0xd6, 0x50, 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0x8b, 0x79, 0xae, + 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xdd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, 0x3e, + 0x0e, 0x9b, 0xf1, 0xb2, 0xca, 0xf5, 0x5e, 0x2c, 0x5d, 0x4f, 0x35, 0x8c, 0x3a, 0xea, 0x09, 0x46, + 0xd2, 0x66, 0x4f, 0x1a, 0x9e, 0xcf, 0x39, 0x6e, 0xcd, 0x78, 0xda, 0xea, 0xb0, 0xd5, 0x1a, 0x52, + 0x4f, 0xfa, 0x2b, 0xc0, 0xd3, 0x50, 0x35, 0xaa, 0x0e, 0xd3, 0x4a, 0xec, 0xa5, 0x59, 0x36, 0x5c, + 0x0f, 0x0c, 0x13, 0x0d, 0x05, 0x4f, 0x43, 0x11, 0x98, 0x18, 0xc9, 0xfa, 0xf4, 0x30, 0x1f, 0x76, + 0xd9, 0x91, 0x54, 0xaf, 0x91, 0xec, 0xd2, 0xe0, 0x44, 0xcb, 0x69, 0x6a, 0x53, 0xdb, 0x51, 0xb8, + 0xe1, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0x83, 0xc7, 0xed, 0x92, 0x92, 0x2b, 0xcb, 0x3d, 0xca, 0x84, + 0xb7, 0x92, 0xdc, 0xef, 0xa0, 0xc0, 0xa9, 0x60, 0x33, 0x8d, 0x5e, 0xa7, 0xc9, 0x8c, 0x09, 0xf4, + 0x49, 0x91, 0x0b, 0x04, 0x9f, 0x14, 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1c, 0x7a, 0x90, + 0x60, 0x5d, 0xa7, 0x94, 0x1d, 0x2a, 0xd4, 0x75, 0x28, 0x0d, 0xa2, 0x81, 0x71, 0xab, 0x3e, 0xb7, + 0xf0, 0x38, 0x64, 0x06, 0x7c, 0x73, 0x61, 0xbd, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x9d, 0xa7, + 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35, 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x38, + 0x48, 0xc2, 0xd5, 0x6b, 0x98, 0x7e, 0xd5, 0x33, 0x6c, 0xeb, 0xc1, 0x66, 0x6e, 0x86, 0x8c, 0xb8, + 0x54, 0x9b, 0x65, 0x64, 0x6c, 0xcb, 0xd7, 0x70, 0x21, 0x18, 0x8a, 0x3a, 0x94, 0x02, 0x3c, 0xb0, + 0xaf, 0x39, 0xfd, 0xec, 0xb5, 0x28, 0x58, 0x5c, 0xc6, 0xf9, 0x14, 0xdd, 0x9c, 0x4a, 0x83, 0x2d, + 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x05, 0x5a, 0x64, 0x2a, 0x98, 0x37, 0x55, + 0xfd, 0xf7, 0x67, 0x1f, 0xf5, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xc6, 0xe9, 0x47, + 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x60, 0x50, 0x9b, 0x04, 0x97, 0x89, 0x1f, 0xb1, + 0x15, 0x36, 0xa8, 0x6d, 0x7e, 0x2a, 0x91, 0xd0, 0xa0, 0x6e, 0xa3, 0x20, 0xcf, 0x74, 0xf7, 0x41, + 0x0f, 0x02, 0xfa, 0xee, 0xd6, 0x67, 0xad, 0x93, 0x03, 0x33, 0x67, 0x37, 0x5d, 0x7a, 0xcf, 0x09, + 0x90, 0x82, 0xee, 0xa6, 0x4b, 0xfc, 0x31, 0xc1, 0x7a, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, + 0xa3, 0x9f, 0x95, 0x23, 0xc5, 0x95, 0xf2, 0xd6, 0xc3, 0xf2, 0x87, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, + 0x52, 0xf2, 0x29, 0xab, 0x2a, 0xf5, 0x05, 0x4a, 0xff, 0x86, 0x91, 0x92, 0x8d, 0xc0, 0xf7, 0x27, + 0xef, 0x85, 0x21, 0xdb, 0x33, 0x4a, 0x64, 0xbf, 0x6a, 0xf4, 0x00, 0xd5, 0x6c, 0x7f, 0xd0, 0x68, + 0xad, 0x93, 0xb3, 0xd3, 0x4b, 0x49, 0xdd, 0xcf, 0x18, 0x3d, 0x44, 0xd5, 0xb1, 0x2f, 0x18, 0x3d, + 0xea, 0x41, 0x2a, 0x57, 0x5f, 0x44, 0x6f, 0x1d, 0xf2, 0xd9, 0x98, 0xe5, 0xc9, 0xf0, 0xfb, 0xfe, + 0x15, 0x5a, 0x3e, 0x1b, 0xd5, 0x7f, 0x36, 0x46, 0x6f, 0x51, 0x62, 0x7b, 0x09, 0x70, 0x97, 0x9d, + 0x2f, 0x66, 0x63, 0x11, 0x0b, 0x70, 0x09, 0x50, 0xfe, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, + 0x00, 0xec, 0x4d, 0x4a, 0xc6, 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, + 0xea, 0x44, 0x1d, 0x5e, 0xda, 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, + 0xfa, 0xf2, 0xab, 0x32, 0x8b, 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, + 0xb8, 0x51, 0xd0, 0xce, 0x5a, 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, + 0xbf, 0x2c, 0x62, 0x1a, 0xd4, 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, + 0x50, 0x7e, 0x97, 0xba, 0x12, 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, + 0x06, 0x7d, 0x7f, 0x92, 0xe6, 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0xaf, 0xba, 0xde, 0xa1, 0x01, 0x3b, + 0xa1, 0x9a, 0x46, 0x6b, 0x26, 0x80, 0x7a, 0x57, 0x17, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, + 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, + 0x6d, 0x2c, 0x92, 0xf2, 0xd3, 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, + 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0x5c, 0x7d, 0x52, 0xc6, + 0x53, 0x78, 0xfd, 0xa2, 0xb1, 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, + 0x7c, 0x25, 0xc7, 0x87, 0x7a, 0x57, 0x54, 0x7e, 0xeb, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, + 0x44, 0xa2, 0x13, 0xd6, 0xb0, 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, + 0xb4, 0x90, 0x58, 0x4a, 0x5a, 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, + 0x80, 0xe4, 0x52, 0x36, 0x50, 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, + 0x73, 0x26, 0x58, 0x09, 0x03, 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, + 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, 0x59, 0xae, 0x7e, 0x46, 0xe5, 0x85, 0xfc, 0xfd, 0xa5, 0xe1, 0xbb, + 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x6b, 0xdb, 0x6f, 0x9b, 0xbf, 0x4b, 0xf0, 0xc9, 0xa0, 0x1e, + 0xcf, 0xc7, 0x5c, 0xa4, 0x17, 0xf5, 0x36, 0x5b, 0xbd, 0x41, 0x04, 0xc6, 0xb3, 0x2b, 0x1e, 0x05, + 0xbe, 0x35, 0x82, 0x71, 0x36, 0x4e, 0xbb, 0xd2, 0x53, 0x56, 0x64, 0x30, 0x4e, 0x7b, 0xda, 0x12, + 0x20, 0xe2, 0x34, 0x0a, 0xda, 0xc9, 0xe9, 0x8a, 0x27, 0x2c, 0x5c, 0x99, 0x09, 0xeb, 0x57, 0x99, + 0x89, 0xf7, 0x52, 0x46, 0x16, 0xbd, 0x73, 0xc4, 0xe6, 0xe7, 0xac, 0xac, 0x2e, 0xd3, 0x62, 0xbf, + 0x4e, 0xb8, 0x62, 0xb1, 0x80, 0xaf, 0x2d, 0x5a, 0x62, 0x64, 0x10, 0x22, 0x2b, 0x25, 0x50, 0xbb, + 0x12, 0x58, 0xe0, 0xa0, 0x3a, 0x8e, 0xe7, 0x4c, 0x7e, 0x39, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, + 0x22, 0x56, 0x02, 0x12, 0x76, 0xde, 0xef, 0xb2, 0xcc, 0x29, 0x9b, 0xd5, 0x23, 0xac, 0x3c, 0x89, + 0x57, 0x73, 0x96, 0x0b, 0x65, 0x12, 0x9c, 0xc9, 0x3b, 0x26, 0x71, 0x9e, 0x38, 0x93, 0xef, 0xa3, + 0xe7, 0x84, 0x26, 0xaf, 0xe1, 0x4f, 0x78, 0x29, 0x9a, 0x1f, 0x49, 0x3a, 0x2b, 0x33, 0x10, 0x9a, + 0xfc, 0x46, 0xf5, 0x48, 0x22, 0x34, 0x85, 0x35, 0x9c, 0x5f, 0x17, 0xf0, 0xca, 0xf0, 0x8a, 0x95, + 0x66, 0x9c, 0xbc, 0x98, 0xc7, 0x69, 0xa6, 0x46, 0xc3, 0x0f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0xd7, + 0x05, 0xfa, 0xea, 0x3a, 0xbf, 0xc7, 0x10, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x61, 0x9f, 0x78, 0x44, + 0xd0, 0xad, 0x65, 0x77, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xe7, 0x85, 0x8e, + 0x4d, 0x00, 0x12, 0x3b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, + 0x04, 0xa6, 0xf5, 0x8e, 0x1d, 0x4d, 0x10, 0xa9, 0x01, 0x4e, 0x62, 0xae, 0xf6, 0x99, 0x98, 0xa4, + 0x75, 0xe8, 0x7f, 0x18, 0x68, 0x37, 0x49, 0x74, 0xbb, 0x72, 0x48, 0xe7, 0x1b, 0xbc, 0xb0, 0x59, + 0xb7, 0x8b, 0x62, 0x5c, 0xaf, 0xaa, 0xa7, 0x6c, 0xca, 0xd2, 0x02, 0xbe, 0x0b, 0xdf, 0x6a, 0x2b, + 0x80, 0x13, 0x17, 0x2d, 0x7a, 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0x7e, 0x3d, 0xf0, + 0xac, 0x62, 0xa5, 0x4a, 0x34, 0xf6, 0x99, 0x00, 0xb3, 0xd3, 0xe1, 0x46, 0x0e, 0x58, 0x57, 0x94, + 0x98, 0x9d, 0x61, 0x0d, 0x7b, 0xd8, 0xe7, 0x70, 0xa7, 0xac, 0xe2, 0xd9, 0x92, 0xc9, 0xfb, 0x86, + 0x1b, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xdb, 0xf9, 0xea, + 0x00, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18, 0x5e, 0xf2, 0x38, + 0x99, 0xc6, 0x95, 0x38, 0x89, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3, 0x70, 0xcd, 0x8c, + 0x5c, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x3f, 0x8a, 0xa8, 0xee, 0x72, 0xc2, 0xec, + 0x4c, 0x96, 0x17, 0xde, 0xe3, 0xbc, 0x17, 0x86, 0xec, 0x3b, 0x68, 0x8d, 0x48, 0xa6, 0x21, 0x77, + 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0xef, 0x8e, 0x34, 0x7f, 0xd7, 0xbf, 0xeb, 0x23, + 0xd4, 0x97, 0xca, 0x37, 0x30, 0x5d, 0x17, 0x1a, 0xb9, 0x5f, 0x88, 0xd8, 0xec, 0x49, 0xdb, 0x34, + 0x73, 0xe7, 0x32, 0x16, 0xdb, 0x49, 0x72, 0xc4, 0x2a, 0xe4, 0x85, 0xf2, 0x5a, 0x38, 0xb2, 0x52, + 0x22, 0xcd, 0x6c, 0x53, 0x76, 0xa0, 0xd7, 0xb2, 0x17, 0x49, 0x2a, 0x94, 0x4c, 0xdf, 0x90, 0xde, + 0x68, 0x1b, 0x68, 0x53, 0x44, 0xad, 0x68, 0xda, 0xc6, 0xf2, 0x9a, 0x99, 0xf0, 0xd9, 0x2c, 0x63, + 0x0a, 0x3a, 0x65, 0x71, 0xf3, 0xa1, 0xc6, 0xad, 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, + 0xa6, 0x91, 0x35, 0xd6, 0x3c, 0x92, 0xd2, 0x0d, 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, + 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0xbc, 0xcf, 0x74, 0x4b, 0xc0, 0x4f, 0x4c, 0x49, 0x65, 0x47, 0x4c, + 0xbc, 0xf7, 0x86, 0x60, 0x76, 0x9f, 0x00, 0x3c, 0x3c, 0x5f, 0x1d, 0x24, 0x70, 0x9f, 0x00, 0xf5, + 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x18, 0x57, 0xb6, 0x72, 0x48, + 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49, 0xb1, 0x73, + 0xb5, 0x07, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3f, 0x29, 0xaf, 0x2c, 0xe1, 0xbf, 0xd0, 0xd0, 0x08, + 0x89, 0xb8, 0xd4, 0x82, 0x1a, 0xdb, 0xcf, 0x3f, 0xf8, 0xaf, 0xaf, 0x6e, 0x0d, 0x7e, 0xf6, 0xd5, + 0xad, 0xc1, 0xff, 0x7c, 0x75, 0x6b, 0xf0, 0xd3, 0xaf, 0x6f, 0x7d, 0xeb, 0x67, 0x5f, 0xdf, 0xfa, + 0xd6, 0x7f, 0x7f, 0x7d, 0xeb, 0x5b, 0x5f, 0xbe, 0xa5, 0x7e, 0x2c, 0xf7, 0xfc, 0xe7, 0xe4, 0x4f, + 0xde, 0x3e, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x53, 0x6e, 0xdf, 0x50, 0x77, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -509,6 +511,7 @@ type ClientCommandsClient interface { ObjectTypeRelationRemove(ctx context.Context, in *pb.RpcObjectTypeRelationRemoveRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRelationRemoveResponse, error) ObjectTypeRecommendedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedRelationsSetResponse, error) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse, error) + ObjectTypeRecommendedLayoutSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedLayoutSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedLayoutSetResponse, error) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) HistoryGetVersions(ctx context.Context, in *pb.RpcHistoryGetVersionsRequest, opts ...grpc.CallOption) (*pb.RpcHistoryGetVersionsResponse, error) HistorySetVersion(ctx context.Context, in *pb.RpcHistorySetVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistorySetVersionResponse, error) @@ -1726,6 +1729,15 @@ func (c *clientCommandsClient) ObjectTypeRecommendedFeaturedRelationsSet(ctx con return out, nil } +func (c *clientCommandsClient) ObjectTypeRecommendedLayoutSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedLayoutSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedLayoutSetResponse, error) { + out := new(pb.RpcObjectTypeRecommendedLayoutSetResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectTypeRecommendedLayoutSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) { out := new(pb.RpcHistoryShowVersionResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/HistoryShowVersion", in, out, opts...) @@ -3325,6 +3337,7 @@ type ClientCommandsServer interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse + ObjectTypeRecommendedLayoutSet(context.Context, *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -3866,6 +3879,9 @@ func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedRelationsSet(ctx func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { return nil } +func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedLayoutSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { + return nil +} func (*UnimplementedClientCommandsServer) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { return nil } @@ -6367,6 +6383,24 @@ func _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler(srv inter return interceptor(ctx, in, info, handler) } +func _ClientCommands_ObjectTypeRecommendedLayoutSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectTypeRecommendedLayoutSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectTypeRecommendedLayoutSet(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectTypeRecommendedLayoutSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectTypeRecommendedLayoutSet(ctx, req.(*pb.RpcObjectTypeRecommendedLayoutSetRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_HistoryShowVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcHistoryShowVersionRequest) if err := dec(in); err != nil { @@ -9703,6 +9737,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectTypeRecommendedFeaturedRelationsSet", Handler: _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler, }, + { + MethodName: "ObjectTypeRecommendedLayoutSet", + Handler: _ClientCommands_ObjectTypeRecommendedLayoutSet_Handler, + }, { MethodName: "HistoryShowVersion", Handler: _ClientCommands_HistoryShowVersion_Handler, From 00ded0edbb3b36d0c3e0aaaba15b161ce5b1526d Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 20 Dec 2024 15:41:31 +0300 Subject: [PATCH 030/176] GO-4588 Fix after merge --- core/block/detailservice/relations.go | 28 +++++++++---------- core/block/editor/smartblock/detailsinject.go | 24 ++++++++-------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index f940e2cb3..16254090c 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -104,7 +104,7 @@ func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { // 1. set layout to object type err := cache.Do(s.objectGetter, objectTypeId, func(b smartblock.SmartBlock) error { st := b.NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyRecommendedLayout, pbtypes.Int64(layout)) + st.SetDetailAndBundledRelation(bundle.RelationKeyRecommendedLayout, domain.Int64(layout)) return b.Apply(st) }) if err != nil { @@ -116,15 +116,13 @@ func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { return fmt.Errorf("failed to resolve space: %w", err) } - // TODO: we should do operations below Async and with context, so separate service would be needed - // object types are not cross-space index := s.store.SpaceIndex(spaceId) - records, err := index.Query(database.Query{Filters: []*model.BlockContentDataviewFilter{ + records, err := index.Query(database.Query{Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyType.String(), + RelationKey: bundle.RelationKeyType, Condition: model.BlockContentDataviewFilter_Equal, - Value: pbtypes.String(objectTypeId), + Value: domain.String(objectTypeId), }, }}) if err != nil { @@ -138,16 +136,16 @@ func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { var resultErr error for _, record := range records { - id := pbtypes.GetString(record.Details, bundle.RelationKeyId.String()) + id := record.Details.GetString(bundle.RelationKeyId) if id == "" { continue } - if _, found := record.Details.Fields[bundle.RelationKeyLayout.String()]; found { + if record.Details.Has(bundle.RelationKeyLayout) { // we should delete layout from object, that's why we apply changes even if object is not in cache err = cache.Do(s.objectGetter, id, func(b smartblock.SmartBlock) error { st := b.NewState() - st.RemoveDetail(bundle.RelationKeyLayout.String()) - st.SetDetail(bundle.RelationKeyResolvedLayout.String(), pbtypes.Int64(layout)) + st.RemoveDetail(bundle.RelationKeyLayout) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) return b.Apply(st) }) if err != nil { @@ -157,14 +155,14 @@ func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { } err = spc.DoLockedIfNotExists(id, func() error { - return index.ModifyObjectDetails(id, func(details *types.Struct) (*types.Struct, bool, error) { - if details == nil || details.Fields == nil { + return index.ModifyObjectDetails(id, func(details *domain.Details) (*domain.Details, bool, error) { + if details == nil { return nil, false, nil } - if pbtypes.GetInt64(details, bundle.RelationKeyResolvedLayout.String()) == layout { + if details.GetInt64(bundle.RelationKeyResolvedLayout) == layout { return nil, false, nil } - details.Fields[bundle.RelationKeyResolvedLayout.String()] = pbtypes.Int64(layout) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) return details, true, nil }) }) @@ -182,7 +180,7 @@ func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { if cr, ok := b.(source.ChangeReceiver); ok { return cr.StateAppend(func(d state.Doc) (s *state.State, changes []*pb.ChangeContent, err error) { st := d.NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(layout)) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) return st, nil, nil }) } diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 0cfc0ba03..26355bfdf 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -9,7 +9,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/util/pbtypes" ) func (sb *smartBlock) injectLocalDetails(s *state.State) error { @@ -196,6 +195,7 @@ func (sb *smartBlock) injectDerivedDetails(s *state.State, spaceID string, sbt s s.SetDetailAndBundledRelation(bundle.RelationKeyIsDeleted, domain.Bool(isDeleted)) } + sb.injectResolvedLayout(s) sb.injectLinksDetails(s) sb.injectMentions(s) sb.updateBackLinks(s) @@ -222,42 +222,42 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { if s.Details() == nil { return } - rawValue := s.Details().Fields[bundle.RelationKeyLayout.String()] - if rawValue != nil { + rawValue := s.Details().Get(bundle.RelationKeyLayout) + if rawValue.Ok() { s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) return } - typeObjectId := pbtypes.GetString(s.LocalDetails(), bundle.RelationKeyType.String()) + typeObjectId := s.LocalDetails().GetString(bundle.RelationKeyType) if typeObjectId == "" { - if currentValue := s.LocalDetails().Fields[bundle.RelationKeyResolvedLayout.String()]; currentValue != nil { + if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { return } log.Errorf("failed to find id of object type") - s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } - if currentValue := s.LocalDetails().Fields[bundle.RelationKeyResolvedLayout.String()]; currentValue != nil { + if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { return } typeDetails, found := sb.lastDepDetails[typeObjectId] if found { - rawValue = typeDetails.Details.Fields[bundle.RelationKeyRecommendedLayout.String()] + rawValue = typeDetails.Get(bundle.RelationKeyRecommendedLayout) } else { records, err := sb.objectStore.SpaceIndex(sb.SpaceID()).QueryByIds([]string{typeObjectId}) if err != nil || len(records) != 0 { log.Errorf("failed to query object %s: %v", typeObjectId, err) - s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } - rawValue = records[0].Details.Fields[bundle.RelationKeyRecommendedLayout.String()] + rawValue = records[0].Details.Get(bundle.RelationKeyRecommendedLayout) } - if rawValue == nil { + if !rawValue.Ok() { log.Errorf("failed to get recommended layout from details of type. Setting basic layout") - s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, pbtypes.Int64(int64(model.ObjectType_basic))) + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } From 2d1acea640f7c3c6379aed322b7441bc71dbb179 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 20 Dec 2024 18:41:55 +0300 Subject: [PATCH 031/176] GO-4588 Change resolved layout on type apply --- clientlibrary/service/service.pb.go | 699 ++-- core/block/detailservice/service.go | 1 - core/block/editor/basic/details.go | 8 - core/block/editor/smartblock/detailsinject.go | 118 +- core/block/editor/smartblock/smartblock.go | 9 + core/relations.go | 14 - docs/proto.md | 77 - pb/commands.pb.go | 3178 +++++++---------- pb/protos/commands.proto | 24 - pb/protos/service/service.proto | 1 - pb/service/service.pb.go | 698 ++-- 11 files changed, 1998 insertions(+), 2829 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 630a379ef..54fac1614 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,343 +25,341 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5361 bytes of a gzipped FileDescriptorProto + // 5340 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0xff, 0x04, 0x12, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe6, 0x7f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xe4, 0xf3, 0x3b, 0xe7, 0xdc, 0xcf, 0x73, 0xcf, 0xbd, 0x75, - 0xab, 0x3a, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x7f, 0x1e, 0xbe, 0x15, 0xe7, 0x2b, 0xb1, 0x2a, 0xd8, 0xfb, 0xef, 0x59, - 0x72, 0xca, 0xe7, 0xf3, 0x38, 0x4f, 0xaa, 0x06, 0x79, 0xff, 0x5d, 0x2b, 0x61, 0x4b, 0x96, 0x0b, - 0xf5, 0xf7, 0xa7, 0xff, 0xf9, 0xbf, 0x83, 0xe8, 0xed, 0x9d, 0x2c, 0x65, 0xb9, 0xd8, 0x51, 0x1a, - 0xc3, 0x2f, 0xa3, 0xef, 0x6c, 0x17, 0xc5, 0x3e, 0x13, 0xaf, 0x58, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, - 0x38, 0x52, 0x0e, 0x46, 0xa7, 0xc5, 0x74, 0xb4, 0x5d, 0x14, 0x23, 0x2b, 0x1c, 0x9d, 0xb2, 0x1f, - 0x2f, 0x58, 0x25, 0xde, 0xbf, 0x17, 0x86, 0xaa, 0x82, 0xe7, 0x15, 0x1b, 0x5e, 0x44, 0xbf, 0xb2, - 0x5d, 0x14, 0x63, 0x26, 0x76, 0x59, 0x5d, 0x81, 0xb1, 0x88, 0x05, 0x1b, 0xae, 0xb5, 0x54, 0x7d, - 0xc0, 0xf8, 0x78, 0xd8, 0x0d, 0x2a, 0x3f, 0x93, 0xe8, 0xdb, 0xb5, 0x9f, 0xcb, 0x85, 0x48, 0xf8, - 0x75, 0x3e, 0xfc, 0xa0, 0xad, 0xa8, 0x44, 0xc6, 0xf6, 0xdd, 0x10, 0xa2, 0xac, 0xbe, 0x8e, 0x7e, - 0xf1, 0x75, 0x9c, 0x65, 0x4c, 0xec, 0x94, 0xac, 0x2e, 0xb8, 0xaf, 0xd3, 0x88, 0x46, 0x8d, 0xcc, - 0xd8, 0xfd, 0x30, 0xc8, 0x28, 0xc3, 0x5f, 0x46, 0xdf, 0x69, 0x24, 0xa7, 0x6c, 0xca, 0x97, 0xac, - 0x1c, 0xa2, 0x5a, 0x4a, 0x48, 0x34, 0x79, 0x0b, 0x82, 0xb6, 0x77, 0x78, 0xbe, 0x64, 0xa5, 0xc0, - 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x85, 0x94, 0xed, 0xbf, 0x1e, 0x44, 0xdf, 0xdb, 0x9e, 0x4e, 0xf9, - 0x22, 0x17, 0x87, 0x7c, 0x1a, 0x67, 0x87, 0x69, 0x7e, 0x75, 0xcc, 0xae, 0x77, 0x2e, 0x6b, 0x3e, - 0x9f, 0xb1, 0xe1, 0x33, 0xbf, 0x55, 0x1b, 0x74, 0x64, 0xd8, 0x91, 0x0b, 0x1b, 0xdf, 0x1f, 0xdf, - 0x4c, 0x49, 0x95, 0xe5, 0xef, 0x07, 0xd1, 0x2d, 0x58, 0x96, 0x31, 0xcf, 0x96, 0xcc, 0x96, 0xe6, - 0x93, 0x0e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xe9, 0x4d, 0xd5, 0x54, 0x89, 0xb2, 0xe8, 0x1d, 0x77, - 0xb8, 0x8c, 0x59, 0x25, 0xa7, 0xd3, 0x23, 0x7a, 0x44, 0x28, 0xc4, 0x78, 0x7e, 0xdc, 0x07, 0x55, - 0xde, 0xd2, 0x68, 0xa8, 0xbc, 0x65, 0xbc, 0x32, 0xce, 0x1e, 0xa2, 0x16, 0x1c, 0xc2, 0xf8, 0x7a, - 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x20, 0xfa, 0xa5, 0xd7, 0xbc, 0xbc, 0xaa, 0x8a, 0x78, 0xca, 0xd4, - 0x54, 0xb8, 0xef, 0x6b, 0x6b, 0x29, 0x9c, 0x0d, 0x0f, 0xba, 0x30, 0x67, 0xd0, 0x6a, 0xe1, 0xcb, - 0x82, 0xc1, 0x18, 0x64, 0x15, 0x6b, 0x21, 0x35, 0x68, 0x21, 0xa4, 0x6c, 0x5f, 0x45, 0x43, 0x6b, - 0xfb, 0xfc, 0x0f, 0xd9, 0x54, 0x6c, 0x27, 0x09, 0xec, 0x15, 0xab, 0x2b, 0x89, 0xd1, 0x76, 0x92, - 0x50, 0xbd, 0x82, 0xa3, 0xca, 0xd9, 0x75, 0xf4, 0x2e, 0x70, 0x76, 0x98, 0x56, 0xd2, 0xe1, 0x66, - 0xd8, 0x8a, 0xc2, 0x8c, 0xd3, 0x51, 0x5f, 0x5c, 0x39, 0xfe, 0xd3, 0x41, 0xf4, 0x5d, 0xc4, 0xf3, - 0x29, 0x9b, 0xf3, 0x25, 0x1b, 0x3e, 0xe9, 0xb6, 0xd6, 0x90, 0xc6, 0xff, 0x47, 0x37, 0xd0, 0x40, - 0x86, 0xc9, 0x98, 0x65, 0x6c, 0x2a, 0xc8, 0x61, 0xd2, 0x88, 0x3b, 0x87, 0x89, 0xc1, 0x9c, 0x19, - 0xa6, 0x85, 0xfb, 0x4c, 0xec, 0x2c, 0xca, 0x92, 0xe5, 0x82, 0xec, 0x4b, 0x8b, 0x74, 0xf6, 0xa5, - 0x87, 0x22, 0xf5, 0xd9, 0x67, 0x62, 0x3b, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c, - 0x79, 0x98, 0x46, 0xbf, 0xec, 0xb4, 0x98, 0x38, 0xc8, 0x2f, 0xf8, 0x90, 0x6e, 0x0b, 0x29, 0x37, - 0x3e, 0xd6, 0x3a, 0x39, 0xa4, 0x1a, 0x2f, 0xde, 0x14, 0xbc, 0xa4, 0xbb, 0xa5, 0x11, 0x77, 0x56, - 0xc3, 0x60, 0xca, 0xc3, 0xef, 0x47, 0x6f, 0xab, 0x28, 0xa9, 0xd7, 0xb3, 0x7b, 0x68, 0x08, 0x85, - 0x0b, 0xda, 0xfd, 0x0e, 0xca, 0x06, 0x07, 0x25, 0x53, 0xc1, 0xe7, 0x43, 0x54, 0x0f, 0x84, 0x9e, - 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x97, 0x65, 0x8c, 0xb4, 0xdd, 0x08, 0x3b, 0x6c, 0x1b, 0x48, 0xd9, - 0x2e, 0xa3, 0x5f, 0x33, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x75, 0xa2, 0xde, 0x2e, - 0x64, 0x7c, 0x6d, 0xf4, 0x83, 0x5b, 0xf5, 0x51, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0xf7, 0xc2, - 0x90, 0xb2, 0xfd, 0x37, 0x83, 0xe8, 0xfb, 0x4a, 0xf6, 0x22, 0x8f, 0xcf, 0x33, 0x26, 0x97, 0xc4, - 0x63, 0x26, 0xae, 0x79, 0x79, 0x35, 0x5e, 0xe5, 0x53, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, - 0x54, 0x72, 0x32, 0x3e, 0x55, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0xe9, 0x1a, 0x08, 0x5e, 0x50, 0x19, - 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xbb, 0x21, 0xc4, - 0x86, 0x2d, 0x3d, 0x80, 0x79, 0x7e, 0x91, 0xce, 0xce, 0x8a, 0xa4, 0x1e, 0xc6, 0x8f, 0xf0, 0x11, - 0xea, 0x20, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, 0xef, 0x6c, 0x62, 0xa4, 0xa6, 0xd2, 0x5e, 0xc9, - 0xe7, 0x87, 0x6c, 0x16, 0x4f, 0x57, 0x6a, 0xfe, 0x7f, 0x1c, 0x9a, 0x78, 0x90, 0x36, 0x85, 0xf8, - 0xe4, 0x86, 0x5a, 0xaa, 0x3c, 0xff, 0x36, 0x88, 0xee, 0xe9, 0xea, 0x5f, 0xc6, 0xf9, 0x8c, 0xa9, - 0xfe, 0x6c, 0x4a, 0xbf, 0x9d, 0x27, 0xa7, 0xac, 0x12, 0x71, 0x29, 0x86, 0x3f, 0xc0, 0x2b, 0x19, - 0xd2, 0x31, 0x65, 0xfb, 0xe1, 0x37, 0xd2, 0xb5, 0xbd, 0x3e, 0xae, 0x03, 0x9b, 0x0a, 0x01, 0x7e, - 0xaf, 0x4b, 0x09, 0x0c, 0x00, 0x77, 0x43, 0x88, 0xed, 0x75, 0x29, 0x38, 0xc8, 0x97, 0xa9, 0x60, - 0xfb, 0x2c, 0x67, 0x65, 0xbb, 0xd7, 0x1b, 0x55, 0x1f, 0x21, 0x7a, 0x9d, 0x40, 0x6d, 0xb0, 0xf1, - 0xbc, 0x99, 0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb5, 0x3c, 0x6e, 0xf4, 0x83, 0xed, 0xee, 0xce, 0xf1, - 0x79, 0xca, 0x96, 0xfc, 0x0a, 0xee, 0xee, 0x5c, 0x13, 0x0d, 0x40, 0xec, 0xee, 0x50, 0xd0, 0xae, - 0x60, 0x8e, 0x9f, 0x57, 0x29, 0xbb, 0x06, 0x2b, 0x98, 0xab, 0x5c, 0x8b, 0x89, 0x15, 0x0c, 0xc1, - 0x94, 0x87, 0xe3, 0xe8, 0x17, 0xa4, 0xf0, 0x77, 0x79, 0x9a, 0x0f, 0x6f, 0x23, 0x4a, 0xb5, 0xc0, - 0x58, 0xbd, 0x43, 0x03, 0xa0, 0xc4, 0xf5, 0x5f, 0x77, 0xe2, 0x7c, 0xca, 0x32, 0xb4, 0xc4, 0x56, - 0x1c, 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xbe, 0x8c, 0xcb, 0x34, 0x9f, - 0x0d, 0x31, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x52, 0xdc, 0x2e, 0x8a, 0xb2, - 0x0e, 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x5d, 0x36, 0xcd, 0xd2, - 0x3c, 0xe8, 0x4d, 0x21, 0x7d, 0xbc, 0x59, 0x14, 0x0c, 0xde, 0x43, 0x16, 0x2f, 0x99, 0xae, 0x19, - 0xd6, 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x58, 0xdd, - 0xc0, 0xac, 0x5e, 0xd7, 0x86, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0x54, 0xae, 0x16, 0xd1, - 0xbb, 0x52, 0x7e, 0x12, 0x97, 0x22, 0x9d, 0xa6, 0x45, 0x9c, 0xeb, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, - 0xca, 0xb8, 0xdc, 0xec, 0x49, 0x2b, 0xb7, 0xff, 0x32, 0x88, 0x3e, 0x80, 0x7e, 0x4f, 0x58, 0x39, - 0x4f, 0xe5, 0x36, 0xb2, 0x6a, 0x82, 0xf0, 0xf0, 0xb3, 0xb0, 0xd1, 0x96, 0x82, 0x29, 0xcd, 0xe7, - 0x37, 0x57, 0xb4, 0xc9, 0xd0, 0x58, 0xa5, 0xd6, 0x2f, 0xcb, 0xa4, 0x75, 0xcc, 0x32, 0xd6, 0xf9, - 0xb2, 0x14, 0x12, 0xc9, 0x50, 0x0b, 0x02, 0x33, 0xfc, 0x2c, 0xaf, 0xb4, 0x75, 0x6c, 0x86, 0x5b, - 0x71, 0x70, 0x86, 0x7b, 0x98, 0xf2, 0xf0, 0x7b, 0x51, 0xd4, 0x6c, 0xb6, 0xe4, 0x86, 0xd8, 0x8f, - 0x39, 0x6a, 0x17, 0xe6, 0xed, 0x86, 0x3f, 0x08, 0x10, 0x76, 0xa1, 0x6b, 0xfe, 0x2e, 0xf7, 0xf9, - 0x43, 0x54, 0x43, 0x8a, 0x88, 0x85, 0x0e, 0x20, 0xb0, 0xa0, 0xe3, 0x4b, 0x7e, 0x8d, 0x17, 0xb4, - 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0xf2, 0xa6, 0x0a, 0x8a, 0x9d, 0xbc, 0xe9, 0x62, 0x84, 0x4e, - 0xde, 0x20, 0xa3, 0x0c, 0xf3, 0xe8, 0x57, 0x5d, 0xc3, 0xcf, 0x39, 0xbf, 0x9a, 0xc7, 0xe5, 0xd5, - 0xf0, 0x31, 0xad, 0xac, 0x19, 0xe3, 0x68, 0xbd, 0x17, 0x6b, 0x83, 0x9a, 0xeb, 0xb0, 0x4e, 0x93, - 0xce, 0xca, 0x0c, 0x04, 0x35, 0xcf, 0x86, 0x42, 0x88, 0xa0, 0x46, 0xa0, 0x76, 0x54, 0xba, 0xde, - 0xc6, 0x0c, 0xee, 0xf5, 0x3c, 0xf5, 0x31, 0xa3, 0xf6, 0x7a, 0x08, 0x06, 0x87, 0xd0, 0x7e, 0x19, - 0x17, 0x97, 0xf8, 0x10, 0x92, 0xa2, 0xf0, 0x10, 0xd2, 0x08, 0xec, 0xef, 0x31, 0x8b, 0xcb, 0xe9, - 0x25, 0xde, 0xdf, 0x8d, 0x2c, 0xdc, 0xdf, 0x86, 0x81, 0xfd, 0xdd, 0x08, 0x5e, 0xa7, 0xe2, 0xf2, - 0x88, 0x89, 0x18, 0xef, 0x6f, 0x9f, 0x09, 0xf7, 0x77, 0x8b, 0xb5, 0x79, 0x98, 0xeb, 0x70, 0xbc, - 0x38, 0xaf, 0xa6, 0x65, 0x7a, 0xce, 0x86, 0x01, 0x2b, 0x06, 0x22, 0xf2, 0x30, 0x12, 0x56, 0x3e, - 0x7f, 0x3a, 0x88, 0x6e, 0xeb, 0x6e, 0xe7, 0x55, 0xa5, 0x62, 0x9e, 0xef, 0xfe, 0x13, 0xbc, 0x7f, - 0x09, 0x9c, 0x38, 0x0b, 0xed, 0xa1, 0xe6, 0xac, 0x09, 0x78, 0x91, 0xce, 0xf2, 0xca, 0x14, 0xea, - 0xb3, 0x3e, 0xd6, 0x1d, 0x05, 0x62, 0x4d, 0xe8, 0xa5, 0x68, 0x97, 0x63, 0xd5, 0x3f, 0x5a, 0x76, - 0x90, 0x54, 0x60, 0x39, 0xd6, 0xed, 0xed, 0x10, 0xc4, 0x72, 0x8c, 0x93, 0x70, 0x28, 0xec, 0x97, - 0x7c, 0x51, 0x54, 0x1d, 0x43, 0x01, 0x40, 0xe1, 0xa1, 0xd0, 0x86, 0x95, 0xcf, 0x37, 0xd1, 0xaf, - 0xbb, 0xc3, 0xcf, 0x6d, 0xec, 0x4d, 0x7a, 0x4c, 0x61, 0x4d, 0x3c, 0xea, 0x8b, 0xdb, 0x84, 0x54, - 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0x1f, 0xe0, 0x36, 0xb4, 0x9c, 0x48, 0x48, 0x31, - 0x0e, 0xc6, 0xb7, 0xdd, 0x45, 0x91, 0xa5, 0xd3, 0xf6, 0x49, 0xb4, 0xd2, 0x35, 0xe2, 0x70, 0x7c, - 0x73, 0x31, 0x18, 0xaf, 0xeb, 0x25, 0x5f, 0xfe, 0x67, 0xb2, 0x2a, 0x18, 0x1e, 0xaf, 0x3d, 0x24, - 0x1c, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x66, 0xe2, 0x30, 0x5e, 0xf1, 0x05, 0x11, 0xaf, 0x8d, 0x38, - 0x5c, 0x1f, 0x17, 0xb3, 0x39, 0xa1, 0xf1, 0x70, 0x90, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, - 0xb3, 0x6a, 0x48, 0xc4, 0x18, 0x9f, 0x22, 0x72, 0x42, 0x9a, 0x46, 0x9a, 0xf1, 0xa0, 0xda, 0x8b, - 0x97, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46, 0x0f, 0x45, 0xbd, 0x6d, 0x97, 0xd3, - 0xcb, 0x74, 0xc9, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6, 0xa0, 0x48, 0xa7, 0x8d, 0xf9, 0xa2, - 0x9c, 0x32, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x79, 0xf8, 0x8b, 0x41, 0xf4, 0x1b, - 0x8d, 0xd4, 0x3d, 0x1e, 0xde, 0x8d, 0xab, 0xcb, 0x73, 0x1e, 0x97, 0xc9, 0xf0, 0x23, 0xcc, 0x0e, - 0x8a, 0x1a, 0xd7, 0x4f, 0x6f, 0xa2, 0x02, 0x9b, 0xf5, 0x30, 0xad, 0x9c, 0x19, 0x87, 0x36, 0xab, - 0x87, 0x84, 0x9b, 0x15, 0xa2, 0x30, 0x80, 0x48, 0x79, 0x73, 0x14, 0xf3, 0x80, 0xd4, 0xf7, 0xcf, - 0x63, 0xd6, 0x3a, 0x39, 0x18, 0x1f, 0x6b, 0xa1, 0x3f, 0x5a, 0x36, 0x29, 0x1b, 0xf8, 0x88, 0x19, - 0xf5, 0xc5, 0x49, 0xcf, 0x66, 0x56, 0x84, 0x3d, 0xb7, 0x66, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0x76, - 0xc2, 0x5a, 0xc8, 0x33, 0x12, 0xda, 0x46, 0x7d, 0x71, 0x98, 0x7d, 0x29, 0x46, 0xaf, 0x0b, 0x8f, - 0x03, 0x76, 0xe0, 0xda, 0xb0, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x6a, 0x10, 0x7d, 0xcf, 0x7a, 0x3c, - 0xe2, 0x49, 0x7a, 0xb1, 0x6a, 0xa0, 0x57, 0x71, 0xb6, 0x60, 0xd5, 0xf0, 0x29, 0x65, 0xad, 0xcd, - 0x9a, 0x12, 0x3c, 0xbb, 0x91, 0x0e, 0x9c, 0x3b, 0xdb, 0x45, 0x91, 0xad, 0x26, 0x6c, 0x5e, 0x64, - 0xe4, 0xdc, 0xf1, 0x90, 0xf0, 0xdc, 0x81, 0x28, 0xcc, 0xca, 0x27, 0xbc, 0xce, 0xf9, 0xd1, 0xac, - 0x5c, 0x8a, 0xc2, 0x59, 0xb9, 0x46, 0x60, 0xae, 0x34, 0xe1, 0x3b, 0x3c, 0xcb, 0xd8, 0x54, 0xb4, - 0x1f, 0x31, 0x1b, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xd3, 0x18, 0xbd, 0x87, 0x8c, 0x4b, - 0xf6, 0x7c, 0x75, 0x98, 0xe6, 0x57, 0x43, 0x3c, 0x2d, 0xb0, 0x00, 0x71, 0x1a, 0x83, 0x82, 0x70, - 0xaf, 0x7a, 0x96, 0x27, 0x1c, 0xdf, 0xab, 0xd6, 0x92, 0xf0, 0x5e, 0x55, 0x11, 0xd0, 0xe4, 0x29, - 0xa3, 0x4c, 0xd6, 0x92, 0xb0, 0x49, 0x45, 0x60, 0xa1, 0x50, 0x9d, 0xd9, 0x93, 0xa1, 0x10, 0x9c, - 0xd2, 0xaf, 0x75, 0x72, 0x70, 0x84, 0xea, 0x4d, 0xeb, 0x1e, 0x13, 0xd3, 0x4b, 0x7c, 0x84, 0x7a, - 0x48, 0x78, 0x84, 0x42, 0x14, 0x56, 0x69, 0xc2, 0xcd, 0xa6, 0xfb, 0x01, 0x3e, 0x3e, 0x5a, 0x1b, - 0xee, 0xb5, 0x4e, 0x0e, 0x6e, 0x23, 0x0f, 0xe6, 0xb2, 0xcd, 0xd0, 0x41, 0xde, 0xc8, 0xc2, 0xdb, - 0x48, 0xc3, 0xc0, 0xd2, 0x37, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, - 0x9c, 0xfc, 0x93, 0xd9, 0xc6, 0x35, 0xd2, 0x63, 0x5e, 0xcf, 0x91, 0x57, 0x71, 0x96, 0x26, 0xb1, - 0x60, 0x13, 0x7e, 0xc5, 0x72, 0x7c, 0xc7, 0xa4, 0x4a, 0xdb, 0xf0, 0x23, 0x4f, 0x21, 0xbc, 0x63, - 0x0a, 0x2b, 0xc2, 0x71, 0xd2, 0xd0, 0x67, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0x78, - 0x9c, 0x40, 0x14, 0xe6, 0xab, 0x8d, 0xfc, 0xc5, 0x9b, 0x82, 0x95, 0x29, 0xcb, 0xa7, 0x0c, 0xcf, - 0x57, 0x21, 0x15, 0xce, 0x57, 0x11, 0x1a, 0xee, 0xd5, 0x76, 0x63, 0xc1, 0x9e, 0xaf, 0x26, 0xe9, - 0x9c, 0x55, 0x22, 0x9e, 0x17, 0xf8, 0x5e, 0x0d, 0x40, 0xe1, 0xbd, 0x5a, 0x1b, 0x6e, 0x1d, 0x0d, - 0x99, 0x80, 0xd8, 0xbe, 0x99, 0x02, 0x89, 0xc0, 0xcd, 0x14, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, - 0x70, 0xb8, 0x65, 0x25, 0x78, 0x38, 0x4c, 0xd3, 0xad, 0x03, 0x37, 0xc3, 0x8c, 0xeb, 0xa9, 0xd9, - 0x51, 0xf4, 0xb1, 0x3b, 0x45, 0xd7, 0x7b, 0xb1, 0xf8, 0x09, 0xdf, 0x29, 0xcb, 0x62, 0xb9, 0x6c, - 0x05, 0x8e, 0xd1, 0x34, 0xd3, 0xe7, 0x84, 0xcf, 0x61, 0x95, 0xc3, 0x3f, 0x1b, 0x44, 0xef, 0x63, - 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, 0x5b, 0x0d, 0x49, 0x5c, 0xbd, 0x09, 0x6b, 0xa8, 0x32, - 0xfc, 0x51, 0xf4, 0x9e, 0x16, 0xd9, 0x9b, 0x39, 0xaa, 0x00, 0x7e, 0xd2, 0x66, 0xca, 0x0f, 0x39, - 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xf7, 0x43, 0x7e, 0xb9, 0x2a, 0xb0, 0x1f, 0x32, 0x36, 0x94, 0x98, - 0xd8, 0x0f, 0x21, 0x98, 0x9d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa7, 0xe2, 0x52, 0xe6, 0x5b, 0x60, 0x76, - 0x7a, 0x65, 0x35, 0x10, 0x31, 0x3b, 0x49, 0x18, 0x66, 0x24, 0x1a, 0xac, 0xe7, 0x26, 0x16, 0xcb, - 0x8d, 0x21, 0x77, 0x66, 0x3e, 0xec, 0x06, 0xe1, 0x78, 0xd5, 0x62, 0xb5, 0xf5, 0x79, 0x1c, 0xb2, - 0x00, 0xb6, 0x3f, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0x4f, 0xa2, 0xef, 0xb6, 0x2a, 0xb6, 0xc7, 0x62, - 0xb1, 0x28, 0x59, 0x32, 0xdc, 0xea, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0x27, 0xfd, 0x15, 0x5a, 0x39, - 0xba, 0xe6, 0x9a, 0x61, 0x65, 0xca, 0xf0, 0x34, 0x64, 0xd2, 0x67, 0x83, 0x39, 0x3a, 0xad, 0xd3, - 0xda, 0x66, 0xbb, 0xa3, 0x6b, 0x7b, 0x19, 0xa7, 0x99, 0x7c, 0x48, 0xf7, 0x51, 0xc8, 0xa8, 0x87, - 0x06, 0xb7, 0xd9, 0xa4, 0x4a, 0x2b, 0x32, 0xcb, 0x39, 0xee, 0x6c, 0xcf, 0x36, 0xe8, 0x48, 0x80, - 0xec, 0xce, 0x36, 0x7b, 0xd2, 0xca, 0xad, 0xd0, 0x4b, 0x5e, 0xfd, 0x67, 0x77, 0x90, 0x63, 0x5e, - 0x95, 0x2a, 0x32, 0xd2, 0x37, 0x7b, 0xd2, 0xca, 0xeb, 0x1f, 0x47, 0xef, 0xb5, 0xbd, 0xaa, 0x85, - 0x68, 0xab, 0xd3, 0x14, 0x58, 0x8b, 0x9e, 0xf4, 0x57, 0x50, 0xee, 0xff, 0xd5, 0x9c, 0x4b, 0x37, - 0xfe, 0xa7, 0x7c, 0x3e, 0x67, 0x79, 0xc2, 0x12, 0xad, 0x51, 0xd5, 0xfb, 0xa7, 0xcf, 0x69, 0xbb, - 0x46, 0x61, 0xe4, 0x6a, 0x98, 0x12, 0xfd, 0xe6, 0x37, 0xd0, 0x54, 0x45, 0xfb, 0x8f, 0x41, 0xf4, - 0x08, 0x2d, 0x9a, 0x1e, 0xb8, 0x5e, 0x11, 0x7f, 0xa7, 0x8f, 0x23, 0x4c, 0xd3, 0x14, 0x75, 0xfb, - 0xff, 0x61, 0xc1, 0xb9, 0x83, 0x8d, 0x16, 0xb9, 0x39, 0x85, 0xac, 0xcb, 0xf9, 0x49, 0x1f, 0x2f, - 0x06, 0x0f, 0x3e, 0x77, 0x08, 0xaa, 0xd9, 0x2d, 0xeb, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, - 0xf2, 0x6b, 0xfd, 0x46, 0x83, 0x1f, 0x8d, 0x15, 0x30, 0x72, 0x08, 0x62, 0xcb, 0x8a, 0x93, 0x2d, - 0x57, 0xf6, 0xcd, 0x87, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xae, 0x45, 0xba, 0x56, - 0xf6, 0x35, 0x8d, 0x35, 0xbc, 0xa8, 0xed, 0x57, 0x35, 0x1e, 0x76, 0x83, 0x36, 0x23, 0x55, 0xe2, - 0xdd, 0xf4, 0xe2, 0xc2, 0xd4, 0x09, 0x2f, 0xa9, 0x8b, 0x10, 0x19, 0x29, 0x81, 0xda, 0x4d, 0xd5, - 0x5e, 0x9a, 0x31, 0xf9, 0xc4, 0xe6, 0xe5, 0xc5, 0x45, 0xc6, 0xe3, 0x04, 0x6c, 0xaa, 0x6a, 0xf1, - 0xc8, 0x95, 0x13, 0x9b, 0x2a, 0x8c, 0xb3, 0x77, 0x00, 0x6a, 0x69, 0x3d, 0x6c, 0xf2, 0x69, 0x9a, - 0xc1, 0x0b, 0x9e, 0x52, 0xd3, 0x08, 0x89, 0x3b, 0x00, 0x2d, 0xc8, 0x26, 0x3e, 0xb5, 0xa8, 0x0e, - 0xeb, 0xba, 0xfc, 0xf7, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x7c, 0x10, 0xcc, 0x9e, 0x2d, 0xd4, 0xc2, - 0xb3, 0x42, 0x1a, 0xbf, 0xd3, 0xd6, 0x6a, 0x24, 0xc4, 0xd9, 0x82, 0x4f, 0xd8, 0x3d, 0x72, 0xfd, - 0xf7, 0x5d, 0x7e, 0x9d, 0x4b, 0xa3, 0x77, 0xdb, 0x2a, 0x5a, 0x46, 0xec, 0x91, 0x21, 0xa3, 0x0c, - 0xff, 0x28, 0xfa, 0x79, 0x69, 0xb8, 0xe4, 0xc5, 0xf0, 0x16, 0xa2, 0x50, 0x3a, 0x77, 0x31, 0x6f, - 0x93, 0x72, 0x7b, 0xa5, 0xd8, 0x8c, 0x8d, 0xb3, 0x2a, 0x9e, 0xb1, 0xe1, 0x3d, 0xa2, 0xc7, 0xa5, - 0x94, 0xb8, 0x52, 0xdc, 0xa6, 0xfc, 0x51, 0x71, 0xcc, 0x13, 0x65, 0x1d, 0xa9, 0xa1, 0x11, 0x86, - 0x46, 0x85, 0x0b, 0xd9, 0x64, 0xf5, 0x38, 0x5e, 0xa6, 0x33, 0x93, 0x50, 0x34, 0xd1, 0xab, 0x02, - 0xc9, 0xaa, 0x65, 0x46, 0x0e, 0x44, 0x24, 0xab, 0x24, 0xac, 0x7c, 0xfe, 0xe3, 0x20, 0xba, 0x63, - 0x99, 0x7d, 0x7d, 0x1a, 0x7b, 0x90, 0x5f, 0xf0, 0x3a, 0xb5, 0x3d, 0x4c, 0xf3, 0xab, 0x6a, 0xf8, - 0x29, 0x65, 0x12, 0xe7, 0x4d, 0x51, 0x3e, 0xbb, 0xb1, 0x9e, 0xdd, 0x95, 0xe8, 0xa3, 0x4a, 0x7b, - 0x5f, 0xa1, 0xd1, 0x00, 0xbb, 0x12, 0x73, 0xa2, 0x09, 0x39, 0x62, 0x57, 0x12, 0xe2, 0x6d, 0x17, - 0x1b, 0xe7, 0x19, 0xcf, 0x61, 0x17, 0x5b, 0x0b, 0xb5, 0x90, 0xe8, 0xe2, 0x16, 0x64, 0xe3, 0xb1, - 0x16, 0x35, 0xa7, 0x6a, 0xdb, 0x59, 0x06, 0xe2, 0xb1, 0x51, 0x35, 0x00, 0x11, 0x8f, 0x51, 0x50, - 0xf9, 0x39, 0x8d, 0xbe, 0x5d, 0x37, 0xe9, 0x49, 0xc9, 0x96, 0x29, 0x83, 0x57, 0x6b, 0x1c, 0x09, - 0x31, 0xff, 0x7d, 0xc2, 0xce, 0xac, 0xb3, 0xbc, 0x2a, 0xb2, 0xb8, 0xba, 0x54, 0x97, 0x2d, 0xfc, - 0x3a, 0x6b, 0x21, 0xbc, 0x6e, 0x71, 0xbf, 0x83, 0xb2, 0x41, 0x5d, 0xcb, 0x4c, 0x88, 0x79, 0x80, - 0xab, 0xb6, 0xc2, 0xcc, 0x5a, 0x27, 0x67, 0x9f, 0x68, 0xec, 0xc7, 0x59, 0xc6, 0xca, 0x95, 0x96, - 0x1d, 0xc5, 0x79, 0x7a, 0xc1, 0x2a, 0x01, 0x9e, 0x68, 0x28, 0x6a, 0x04, 0x31, 0xe2, 0x89, 0x46, - 0x00, 0xb7, 0xbb, 0x35, 0xe0, 0xf9, 0x20, 0x4f, 0xd8, 0x1b, 0xb0, 0x5b, 0x83, 0x76, 0x24, 0x43, - 0xec, 0xd6, 0x28, 0xd6, 0x9e, 0xec, 0x3f, 0xcf, 0xf8, 0xf4, 0x4a, 0x2d, 0x01, 0x7e, 0x07, 0x4b, - 0x09, 0x5c, 0x03, 0xee, 0x86, 0x10, 0xbb, 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xb2, 0x78, 0x0a, 0xef, - 0x57, 0x35, 0x3a, 0x4a, 0x46, 0x2c, 0x02, 0x90, 0x01, 0xc5, 0x55, 0xf7, 0xb6, 0xb0, 0xe2, 0x82, - 0x6b, 0x5b, 0x77, 0x43, 0x88, 0x5d, 0x06, 0xa5, 0x60, 0x5c, 0x64, 0xa9, 0x00, 0xd3, 0xa0, 0xd1, - 0x90, 0x12, 0x62, 0x1a, 0xf8, 0x04, 0x30, 0x79, 0xc4, 0xca, 0x19, 0x43, 0x4d, 0x4a, 0x49, 0xd0, - 0xa4, 0x26, 0xec, 0x25, 0xe2, 0xa6, 0xee, 0xbc, 0x58, 0x81, 0x4b, 0xc4, 0xaa, 0x5a, 0xbc, 0x58, - 0x11, 0x97, 0x88, 0x3d, 0x00, 0x14, 0xf1, 0x24, 0xae, 0x04, 0x5e, 0x44, 0x29, 0x09, 0x16, 0x51, - 0x13, 0x76, 0x8d, 0x6e, 0x8a, 0xb8, 0x10, 0x60, 0x8d, 0x56, 0x05, 0x70, 0x6e, 0x18, 0xdc, 0x26, - 0xe5, 0x36, 0x92, 0x34, 0xbd, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, 0xa4, 0x02, 0x91, 0x44, 0xb5, 0xbb, - 0x96, 0x12, 0x91, 0xa4, 0x4d, 0x81, 0xa1, 0xa4, 0x9e, 0x7f, 0x60, 0xb5, 0x03, 0x8f, 0x3e, 0xee, - 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, 0xe2, 0xb2, 0x4c, 0xeb, 0xc5, 0xff, 0x01, 0x5e, 0x20, - 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x0c, - 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x11, 0x39, 0xd6, 0x9a, 0xc8, 0x13, 0xf2, 0x07, 0x5d, 0x98, - 0xf3, 0x92, 0x8f, 0x71, 0x71, 0xc4, 0x97, 0x6c, 0xc2, 0x5f, 0xbc, 0x49, 0x2b, 0x91, 0xe6, 0x33, - 0xb5, 0x72, 0x3f, 0x23, 0x2c, 0x61, 0x30, 0xf1, 0x92, 0x4f, 0xa7, 0x92, 0x4d, 0x20, 0x40, 0x59, - 0x8e, 0xd9, 0x35, 0x9a, 0x40, 0x40, 0x8b, 0x86, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xcf, 0xc9, 0x8c, - 0x73, 0xf5, 0x26, 0xf4, 0x84, 0xeb, 0x5c, 0x8e, 0xb2, 0x06, 0x41, 0xe2, 0xa8, 0x22, 0xa8, 0x60, - 0xf7, 0x97, 0xc6, 0xbf, 0x9d, 0x62, 0x0f, 0x09, 0x3b, 0xed, 0x69, 0xf6, 0xa8, 0x07, 0x89, 0xb8, - 0xb2, 0xf7, 0x3c, 0x28, 0x57, 0xed, 0x6b, 0x1e, 0x8f, 0x7a, 0x90, 0xce, 0x99, 0x9b, 0x5b, 0xad, - 0xe7, 0xf1, 0xf4, 0x6a, 0x56, 0xf2, 0x45, 0x9e, 0xec, 0xf0, 0x8c, 0x97, 0xe0, 0xcc, 0xcd, 0x2b, - 0x35, 0x40, 0x89, 0x33, 0xb7, 0x0e, 0x15, 0x9b, 0xc1, 0xb9, 0xa5, 0xd8, 0xce, 0xd2, 0x19, 0xdc, - 0x51, 0x7b, 0x86, 0x24, 0x40, 0x64, 0x70, 0x28, 0x88, 0x0c, 0xa2, 0x66, 0xc7, 0x2d, 0xd2, 0x69, - 0x9c, 0x35, 0xfe, 0xb6, 0x68, 0x33, 0x1e, 0xd8, 0x39, 0x88, 0x10, 0x05, 0xa4, 0x9e, 0x93, 0x45, - 0x99, 0x1f, 0xe4, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67, 0x3d, 0x1d, 0x10, 0x84, 0xd5, 0x09, 0x7b, - 0x53, 0x97, 0xa6, 0xfe, 0x07, 0x0b, 0xab, 0xf5, 0xdf, 0x47, 0x4a, 0x1e, 0x0a, 0xab, 0x80, 0x03, - 0x95, 0x51, 0x4e, 0x9a, 0x01, 0x13, 0xd0, 0xf6, 0x87, 0xc9, 0xc3, 0x6e, 0x10, 0xf7, 0x33, 0x16, - 0xab, 0x8c, 0x85, 0xfc, 0x48, 0xa0, 0x8f, 0x1f, 0x0d, 0xda, 0xe3, 0x16, 0xaf, 0x3e, 0x97, 0x6c, - 0x7a, 0xd5, 0xba, 0xb6, 0xe6, 0x17, 0xb4, 0x41, 0x88, 0xe3, 0x16, 0x02, 0xc5, 0xbb, 0xe8, 0x60, - 0xca, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4, 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x35, 0x32, - 0x9b, 0x6e, 0x5a, 0x27, 0x2c, 0xb8, 0x10, 0xb1, 0xf9, 0x25, 0x61, 0x9b, 0x93, 0x43, 0x9f, 0x47, - 0xed, 0x3b, 0xfd, 0x2d, 0x2b, 0x47, 0xf4, 0x9d, 0x7e, 0x8a, 0xa5, 0x2b, 0xd9, 0x8c, 0x91, 0x0e, - 0x2b, 0xfe, 0x38, 0xd9, 0xe8, 0x07, 0xdb, 0x2d, 0x8f, 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, - 0xdd, 0x0c, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0, 0x20, 0x84, 0x79, 0x9e, 0x77, 0x78, 0x2e, - 0x58, 0x2e, 0xb0, 0x10, 0xe6, 0x1b, 0x53, 0x60, 0x28, 0x84, 0x51, 0x0a, 0x60, 0xdc, 0xca, 0xf3, - 0x20, 0x26, 0x8e, 0xe3, 0x39, 0x9a, 0xb1, 0x35, 0x67, 0x3d, 0x8d, 0x3c, 0x34, 0x6e, 0x01, 0xe7, - 0x3c, 0xc4, 0x75, 0xbd, 0x4c, 0xe2, 0x72, 0x66, 0x4e, 0x37, 0x92, 0xe1, 0x13, 0xda, 0x8e, 0x4f, - 0x12, 0x0f, 0x71, 0xc3, 0x1a, 0x20, 0xec, 0x1c, 0xcc, 0xe3, 0x99, 0xa9, 0x29, 0x52, 0x03, 0x29, - 0x6f, 0x55, 0xf5, 0x61, 0x37, 0x08, 0xfc, 0xbc, 0x4a, 0x13, 0xc6, 0x03, 0x7e, 0xa4, 0xbc, 0x8f, - 0x1f, 0x08, 0x82, 0xec, 0xad, 0xae, 0x77, 0xb3, 0xa3, 0xdb, 0xce, 0x13, 0xb5, 0x8f, 0x1d, 0x11, - 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8e, 0xea, 0x03, 0xda, 0xd0, 0x1c, 0x35, 0xe7, - 0xaf, 0x7d, 0xe6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x51, 0x73, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, - 0xbf, 0x4a, 0xd9, 0xb5, 0xda, 0x08, 0x23, 0xf5, 0xd5, 0xd4, 0x48, 0xbe, 0x8a, 0x0a, 0x76, 0xc5, - 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xb5, 0x43, 0xe8, 0xf4, 0x0d, 0xb6, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, - 0x6f, 0xf5, 0x8e, 0x7b, 0xa7, 0x6f, 0xf0, 0xa2, 0xfb, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x73, 0x3d, - 0x71, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x15, 0xe9, 0x92, 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, - 0x74, 0x92, 0x56, 0x71, 0x3e, 0x8c, 0x84, 0x95, 0xe2, 0x84, 0x57, 0xa9, 0xbc, 0x84, 0xf1, 0xac, - 0x87, 0x51, 0x0d, 0x87, 0x36, 0x4d, 0x21, 0x25, 0xfb, 0x38, 0xd9, 0x43, 0xed, 0x2d, 0xf5, 0x8d, - 0x80, 0xbd, 0xf6, 0x65, 0xf5, 0xcd, 0x9e, 0xb4, 0x7d, 0xb0, 0xeb, 0x31, 0xee, 0x13, 0xe5, 0x50, - 0xaf, 0xa2, 0x0f, 0x95, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0xff, 0x52, 0xef, 0x2b, 0xa0, 0x7f, 0x35, - 0x09, 0x9e, 0xf6, 0xb1, 0x08, 0x26, 0xc2, 0xb3, 0x1b, 0xe9, 0xa8, 0x82, 0xfc, 0xad, 0xde, 0x40, - 0x6b, 0x54, 0xbe, 0xab, 0x23, 0xdf, 0xed, 0x54, 0x73, 0x22, 0xd4, 0xad, 0x16, 0x86, 0x33, 0xe3, - 0x93, 0x1b, 0x6a, 0x39, 0x8f, 0x68, 0x3d, 0x58, 0xbd, 0x53, 0xea, 0x94, 0x27, 0x64, 0xd9, 0xa1, - 0x61, 0x81, 0x3e, 0xbd, 0xa9, 0x1a, 0x35, 0x57, 0x1c, 0x58, 0x7e, 0x75, 0xe3, 0x59, 0x4f, 0xc3, - 0xde, 0x77, 0x38, 0x3e, 0xbe, 0x99, 0x92, 0x2a, 0xcb, 0xbf, 0x0f, 0xa2, 0xfb, 0x1e, 0x6b, 0x9f, - 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x06, 0xec, 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xf5, 0xcd, 0x94, 0xed, - 0x37, 0xa5, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c, 0x7f, 0x53, 0xca, 0xb7, 0xdb, 0x50, 0x23, - 0xfa, 0x9b, 0x52, 0x01, 0xdc, 0xf9, 0xa6, 0x14, 0xe2, 0x19, 0xfd, 0xa6, 0x14, 0x6a, 0x2d, 0xf8, - 0x4d, 0xa9, 0xb0, 0x06, 0x15, 0xde, 0x75, 0x11, 0x9a, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, - 0xa7, 0x37, 0x51, 0x21, 0x16, 0xb8, 0x86, 0x93, 0xf7, 0x18, 0x7b, 0xb4, 0xa9, 0x77, 0x97, 0x71, - 0xab, 0x37, 0xaf, 0x7c, 0xff, 0x58, 0xed, 0x6e, 0x4c, 0x38, 0xe7, 0xa5, 0xfc, 0x9e, 0xd8, 0x7a, - 0x28, 0x3c, 0xd7, 0x16, 0xdc, 0x9e, 0xdf, 0xe8, 0x07, 0x13, 0xd5, 0xad, 0x09, 0xd5, 0xe9, 0xa3, - 0x2e, 0x43, 0xa0, 0xcb, 0xb7, 0x7a, 0xf3, 0xc4, 0x32, 0xd2, 0xf8, 0x6e, 0x7a, 0xbb, 0x87, 0x31, - 0xbf, 0xaf, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0x97, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xec, - 0x32, 0x35, 0xf6, 0xba, 0x79, 0xd4, 0x17, 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x95, 0x40, 0xa0, - 0xcb, 0xe8, 0xc7, 0x37, 0x53, 0x52, 0x65, 0xf9, 0x87, 0x41, 0x74, 0x9b, 0x2c, 0x8b, 0x1a, 0x07, - 0x9f, 0xf6, 0xb5, 0x0c, 0xc6, 0xc3, 0x67, 0x37, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x41, 0x74, 0x27, - 0x50, 0xa8, 0x66, 0x80, 0xdc, 0xc0, 0xba, 0x3f, 0x50, 0x3e, 0xbf, 0xb9, 0x22, 0xb5, 0xdc, 0xbb, - 0xf8, 0xb8, 0xfd, 0xb1, 0xa5, 0x80, 0xed, 0x31, 0xfd, 0xb1, 0xa5, 0x6e, 0x2d, 0x78, 0xc8, 0x13, - 0x9f, 0xeb, 0x4d, 0x17, 0x7a, 0xc8, 0x23, 0x6f, 0x20, 0x82, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, - 0x79, 0xf1, 0xa6, 0x88, 0xf3, 0x84, 0x76, 0xd2, 0xc8, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, - 0xd2, 0x53, 0xae, 0x37, 0x52, 0x8f, 0x28, 0x7d, 0x83, 0x04, 0x0f, 0xc7, 0x5a, 0x28, 0xe1, 0x4d, - 0x65, 0x8d, 0x21, 0x6f, 0x20, 0x59, 0x7c, 0xdc, 0x07, 0x05, 0x29, 0xba, 0xf1, 0x66, 0xce, 0xdc, - 0x37, 0x42, 0x56, 0x5a, 0xe7, 0xee, 0x9b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x9c, - 0xb0, 0x32, 0xe8, 0xd6, 0x50, 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0x8b, 0x79, 0xae, - 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xdd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, 0x3e, - 0x0e, 0x9b, 0xf1, 0xb2, 0xca, 0xf5, 0x5e, 0x2c, 0x5d, 0x4f, 0x35, 0x8c, 0x3a, 0xea, 0x09, 0x46, - 0xd2, 0x66, 0x4f, 0x1a, 0x9e, 0xcf, 0x39, 0x6e, 0xcd, 0x78, 0xda, 0xea, 0xb0, 0xd5, 0x1a, 0x52, - 0x4f, 0xfa, 0x2b, 0xc0, 0xd3, 0x50, 0x35, 0xaa, 0x0e, 0xd3, 0x4a, 0xec, 0xa5, 0x59, 0x36, 0x5c, - 0x0f, 0x0c, 0x13, 0x0d, 0x05, 0x4f, 0x43, 0x11, 0x98, 0x18, 0xc9, 0xfa, 0xf4, 0x30, 0x1f, 0x76, - 0xd9, 0x91, 0x54, 0xaf, 0x91, 0xec, 0xd2, 0xe0, 0x44, 0xcb, 0x69, 0x6a, 0x53, 0xdb, 0x51, 0xb8, - 0xe1, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0x83, 0xc7, 0xed, 0x92, 0x92, 0x2b, 0xcb, 0x3d, 0xca, 0x84, - 0xb7, 0x92, 0xdc, 0xef, 0xa0, 0xc0, 0xa9, 0x60, 0x33, 0x8d, 0x5e, 0xa7, 0xc9, 0x8c, 0x09, 0xf4, - 0x49, 0x91, 0x0b, 0x04, 0x9f, 0x14, 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1c, 0x7a, 0x90, - 0x60, 0x5d, 0xa7, 0x94, 0x1d, 0x2a, 0xd4, 0x75, 0x28, 0x0d, 0xa2, 0x81, 0x71, 0xab, 0x3e, 0xb7, - 0xf0, 0x38, 0x64, 0x06, 0x7c, 0x73, 0x61, 0xbd, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x9d, 0xa7, - 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35, 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x38, - 0x48, 0xc2, 0xd5, 0x6b, 0x98, 0x7e, 0xd5, 0x33, 0x6c, 0xeb, 0xc1, 0x66, 0x6e, 0x86, 0x8c, 0xb8, - 0x54, 0x9b, 0x65, 0x64, 0x6c, 0xcb, 0xd7, 0x70, 0x21, 0x18, 0x8a, 0x3a, 0x94, 0x02, 0x3c, 0xb0, - 0xaf, 0x39, 0xfd, 0xec, 0xb5, 0x28, 0x58, 0x5c, 0xc6, 0xf9, 0x14, 0xdd, 0x9c, 0x4a, 0x83, 0x2d, - 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x05, 0x5a, 0x64, 0x2a, 0x98, 0x37, 0x55, - 0xfd, 0xf7, 0x67, 0x1f, 0xf5, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xc6, 0xe9, 0x47, - 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x60, 0x50, 0x9b, 0x04, 0x97, 0x89, 0x1f, 0xb1, - 0x15, 0x36, 0xa8, 0x6d, 0x7e, 0x2a, 0x91, 0xd0, 0xa0, 0x6e, 0xa3, 0x20, 0xcf, 0x74, 0xf7, 0x41, - 0x0f, 0x02, 0xfa, 0xee, 0xd6, 0x67, 0xad, 0x93, 0x03, 0x33, 0x67, 0x37, 0x5d, 0x7a, 0xcf, 0x09, - 0x90, 0x82, 0xee, 0xa6, 0x4b, 0xfc, 0x31, 0xc1, 0x7a, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, - 0xa3, 0x9f, 0x95, 0x23, 0xc5, 0x95, 0xf2, 0xd6, 0xc3, 0xf2, 0x87, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, - 0x52, 0xf2, 0x29, 0xab, 0x2a, 0xf5, 0x05, 0x4a, 0xff, 0x86, 0x91, 0x92, 0x8d, 0xc0, 0xf7, 0x27, - 0xef, 0x85, 0x21, 0xdb, 0x33, 0x4a, 0x64, 0xbf, 0x6a, 0xf4, 0x00, 0xd5, 0x6c, 0x7f, 0xd0, 0x68, - 0xad, 0x93, 0xb3, 0xd3, 0x4b, 0x49, 0xdd, 0xcf, 0x18, 0x3d, 0x44, 0xd5, 0xb1, 0x2f, 0x18, 0x3d, - 0xea, 0x41, 0x2a, 0x57, 0x5f, 0x44, 0x6f, 0x1d, 0xf2, 0xd9, 0x98, 0xe5, 0xc9, 0xf0, 0xfb, 0xfe, - 0x15, 0x5a, 0x3e, 0x1b, 0xd5, 0x7f, 0x36, 0x46, 0x6f, 0x51, 0x62, 0x7b, 0x09, 0x70, 0x97, 0x9d, - 0x2f, 0x66, 0x63, 0x11, 0x0b, 0x70, 0x09, 0x50, 0xfe, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, - 0x00, 0xec, 0x4d, 0x4a, 0xc6, 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, - 0xea, 0x44, 0x1d, 0x5e, 0xda, 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, - 0xfa, 0xf2, 0xab, 0x32, 0x8b, 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, - 0xb8, 0x51, 0xd0, 0xce, 0x5a, 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, - 0xbf, 0x2c, 0x62, 0x1a, 0xd4, 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, - 0x50, 0x7e, 0x97, 0xba, 0x12, 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, - 0x06, 0x7d, 0x7f, 0x92, 0xe6, 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0xaf, 0xba, 0xde, 0xa1, 0x01, 0x3b, - 0xa1, 0x9a, 0x46, 0x6b, 0x26, 0x80, 0x7a, 0x57, 0x17, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, - 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, - 0x6d, 0x2c, 0x92, 0xf2, 0xd3, 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, - 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0x5c, 0x7d, 0x52, 0xc6, - 0x53, 0x78, 0xfd, 0xa2, 0xb1, 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, - 0x7c, 0x25, 0xc7, 0x87, 0x7a, 0x57, 0x54, 0x7e, 0xeb, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, - 0x44, 0xa2, 0x13, 0xd6, 0xb0, 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, - 0xb4, 0x90, 0x58, 0x4a, 0x5a, 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, - 0x80, 0xe4, 0x52, 0x36, 0x50, 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, - 0x73, 0x26, 0x58, 0x09, 0x03, 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, - 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, 0x59, 0xae, 0x7e, 0x46, 0xe5, 0x85, 0xfc, 0xfd, 0xa5, 0xe1, 0xbb, - 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x6b, 0xdb, 0x6f, 0x9b, 0xbf, 0x4b, 0xf0, 0xc9, 0xa0, 0x1e, - 0xcf, 0xc7, 0x5c, 0xa4, 0x17, 0xf5, 0x36, 0x5b, 0xbd, 0x41, 0x04, 0xc6, 0xb3, 0x2b, 0x1e, 0x05, - 0xbe, 0x35, 0x82, 0x71, 0x36, 0x4e, 0xbb, 0xd2, 0x53, 0x56, 0x64, 0x30, 0x4e, 0x7b, 0xda, 0x12, - 0x20, 0xe2, 0x34, 0x0a, 0xda, 0xc9, 0xe9, 0x8a, 0x27, 0x2c, 0x5c, 0x99, 0x09, 0xeb, 0x57, 0x99, - 0x89, 0xf7, 0x52, 0x46, 0x16, 0xbd, 0x73, 0xc4, 0xe6, 0xe7, 0xac, 0xac, 0x2e, 0xd3, 0x62, 0xbf, - 0x4e, 0xb8, 0x62, 0xb1, 0x80, 0xaf, 0x2d, 0x5a, 0x62, 0x64, 0x10, 0x22, 0x2b, 0x25, 0x50, 0xbb, - 0x12, 0x58, 0xe0, 0xa0, 0x3a, 0x8e, 0xe7, 0x4c, 0x7e, 0x39, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, - 0x22, 0x56, 0x02, 0x12, 0x76, 0xde, 0xef, 0xb2, 0xcc, 0x29, 0x9b, 0xd5, 0x23, 0xac, 0x3c, 0x89, - 0x57, 0x73, 0x96, 0x0b, 0x65, 0x12, 0x9c, 0xc9, 0x3b, 0x26, 0x71, 0x9e, 0x38, 0x93, 0xef, 0xa3, - 0xe7, 0x84, 0x26, 0xaf, 0xe1, 0x4f, 0x78, 0x29, 0x9a, 0x1f, 0x49, 0x3a, 0x2b, 0x33, 0x10, 0x9a, - 0xfc, 0x46, 0xf5, 0x48, 0x22, 0x34, 0x85, 0x35, 0x9c, 0x5f, 0x17, 0xf0, 0xca, 0xf0, 0x8a, 0x95, - 0x66, 0x9c, 0xbc, 0x98, 0xc7, 0x69, 0xa6, 0x46, 0xc3, 0x0f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0xd7, - 0x05, 0xfa, 0xea, 0x3a, 0xbf, 0xc7, 0x10, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x61, 0x9f, 0x78, 0x44, - 0xd0, 0xad, 0x65, 0x77, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xe7, 0x85, 0x8e, - 0x4d, 0x00, 0x12, 0x3b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, - 0x04, 0xa6, 0xf5, 0x8e, 0x1d, 0x4d, 0x10, 0xa9, 0x01, 0x4e, 0x62, 0xae, 0xf6, 0x99, 0x98, 0xa4, - 0x75, 0xe8, 0x7f, 0x18, 0x68, 0x37, 0x49, 0x74, 0xbb, 0x72, 0x48, 0xe7, 0x1b, 0xbc, 0xb0, 0x59, - 0xb7, 0x8b, 0x62, 0x5c, 0xaf, 0xaa, 0xa7, 0x6c, 0xca, 0xd2, 0x02, 0xbe, 0x0b, 0xdf, 0x6a, 0x2b, - 0x80, 0x13, 0x17, 0x2d, 0x7a, 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0x7e, 0x3d, 0xf0, - 0xac, 0x62, 0xa5, 0x4a, 0x34, 0xf6, 0x99, 0x00, 0xb3, 0xd3, 0xe1, 0x46, 0x0e, 0x58, 0x57, 0x94, - 0x98, 0x9d, 0x61, 0x0d, 0x7b, 0xd8, 0xe7, 0x70, 0xa7, 0xac, 0xe2, 0xd9, 0x92, 0xc9, 0xfb, 0x86, - 0x1b, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xdb, 0xf9, 0xea, - 0x00, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18, 0x5e, 0xf2, 0x38, - 0x99, 0xc6, 0x95, 0x38, 0x89, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3, 0x70, 0xcd, 0x8c, - 0x5c, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x3f, 0x8a, 0xa8, 0xee, 0x72, 0xc2, 0xec, - 0x4c, 0x96, 0x17, 0xde, 0xe3, 0xbc, 0x17, 0x86, 0xec, 0x3b, 0x68, 0x8d, 0x48, 0xa6, 0x21, 0x77, - 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0xef, 0x8e, 0x34, 0x7f, 0xd7, 0xbf, 0xeb, 0x23, - 0xd4, 0x97, 0xca, 0x37, 0x30, 0x5d, 0x17, 0x1a, 0xb9, 0x5f, 0x88, 0xd8, 0xec, 0x49, 0xdb, 0x34, - 0x73, 0xe7, 0x32, 0x16, 0xdb, 0x49, 0x72, 0xc4, 0x2a, 0xe4, 0x85, 0xf2, 0x5a, 0x38, 0xb2, 0x52, - 0x22, 0xcd, 0x6c, 0x53, 0x76, 0xa0, 0xd7, 0xb2, 0x17, 0x49, 0x2a, 0x94, 0x4c, 0xdf, 0x90, 0xde, - 0x68, 0x1b, 0x68, 0x53, 0x44, 0xad, 0x68, 0xda, 0xc6, 0xf2, 0x9a, 0x99, 0xf0, 0xd9, 0x2c, 0x63, - 0x0a, 0x3a, 0x65, 0x71, 0xf3, 0xa1, 0xc6, 0xad, 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, - 0xa6, 0x91, 0x35, 0xd6, 0x3c, 0x92, 0xd2, 0x0d, 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, - 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0xbc, 0xcf, 0x74, 0x4b, 0xc0, 0x4f, 0x4c, 0x49, 0x65, 0x47, 0x4c, - 0xbc, 0xf7, 0x86, 0x60, 0x76, 0x9f, 0x00, 0x3c, 0x3c, 0x5f, 0x1d, 0x24, 0x70, 0x9f, 0x00, 0xf5, - 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x18, 0x57, 0xb6, 0x72, 0x48, - 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49, 0xb1, 0x73, - 0xb5, 0x07, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3f, 0x29, 0xaf, 0x2c, 0xe1, 0xbf, 0xd0, 0xd0, 0x08, - 0x89, 0xb8, 0xd4, 0x82, 0x1a, 0xdb, 0xcf, 0x3f, 0xf8, 0xaf, 0xaf, 0x6e, 0x0d, 0x7e, 0xf6, 0xd5, - 0xad, 0xc1, 0xff, 0x7c, 0x75, 0x6b, 0xf0, 0xd3, 0xaf, 0x6f, 0x7d, 0xeb, 0x67, 0x5f, 0xdf, 0xfa, - 0xd6, 0x7f, 0x7f, 0x7d, 0xeb, 0x5b, 0x5f, 0xbe, 0xa5, 0x7e, 0x2c, 0xf7, 0xfc, 0xe7, 0xe4, 0x4f, - 0xde, 0x3e, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x53, 0x6e, 0xdf, 0x50, 0x77, 0x00, - 0x00, + 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, + 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, + 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, + 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, + 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, + 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, + 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, + 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, + 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, + 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, + 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, + 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, + 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, + 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, + 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, + 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, + 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, + 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, + 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, + 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, + 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, + 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, + 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, + 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, + 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, + 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, + 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, + 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, + 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, + 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, + 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, + 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, + 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, + 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, + 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, + 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, + 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, + 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, + 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, + 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, + 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, + 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, + 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, + 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, + 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, + 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, + 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, + 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, + 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, + 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, + 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, + 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, + 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, + 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, + 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, + 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, + 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, + 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, + 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, + 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, + 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, + 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, + 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, + 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, + 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, + 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, + 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, + 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, + 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, + 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, + 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, + 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, + 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, + 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, + 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, + 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, + 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, + 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, + 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, + 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, + 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, + 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, + 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, + 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, + 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, + 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, + 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, + 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, + 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, + 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, + 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, + 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, + 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, + 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, + 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, + 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, + 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, + 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, + 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, + 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, + 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, + 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, + 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, + 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, + 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, + 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, + 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, + 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, + 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, + 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, + 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, + 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, + 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, + 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, + 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, + 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, + 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, + 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, + 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, + 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, + 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, + 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, + 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, + 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, + 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, + 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, + 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, + 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, + 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, + 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, + 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, + 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, + 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, + 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, + 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, + 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, + 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, + 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, + 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, + 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, + 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, + 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, + 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, + 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, + 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, + 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, + 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, + 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, + 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, + 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, + 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, + 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, + 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, + 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, + 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, + 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, + 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, + 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, + 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, + 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, + 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, + 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, + 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, + 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, + 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, + 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, + 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, + 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, + 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, + 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, + 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, + 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, + 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, + 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, + 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, + 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, + 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, + 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, + 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, + 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, + 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, + 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, + 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, + 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, + 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, + 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, + 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, + 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, + 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, + 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, + 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, + 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, + 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, + 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, + 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, + 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, + 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, + 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, + 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, + 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, + 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, + 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, + 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, + 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, + 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, + 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, + 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, + 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, + 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, + 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, + 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, + 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, + 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, + 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, + 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, + 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, + 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, + 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, + 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, + 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, + 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, + 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, + 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, + 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, + 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, + 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, + 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, + 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, + 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, + 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, + 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, + 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, + 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, + 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, + 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, + 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, + 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, + 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, + 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, + 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, + 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, + 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, + 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, + 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, + 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, + 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, + 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, + 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, + 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, + 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, + 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, + 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, + 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, + 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, + 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, + 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, + 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, + 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, + 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, + 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, + 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, + 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, + 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, + 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, + 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, + 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, + 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, + 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, + 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, + 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, + 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, + 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, + 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, + 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, + 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, + 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, + 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, + 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, + 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, + 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, + 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, + 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, + 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, + 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, + 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, + 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, + 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, + 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, + 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, + 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, + 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, + 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, + 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, + 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, + 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, + 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, + 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, + 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, + 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, + 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, + 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, + 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, + 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, + 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, + 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, + 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, + 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, + 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, + 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, + 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, + 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, + 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, + 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, + 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, + 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, + 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, + 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, + 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, + 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, + 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, + 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, + 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, + 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, + 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, + 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, + 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, + 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, + 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, + 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -505,7 +503,6 @@ type ClientCommandsHandler interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse - ObjectTypeRecommendedLayoutSet(context.Context, *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -2951,26 +2948,6 @@ func ObjectTypeRecommendedFeaturedRelationsSet(b []byte) (resp []byte) { return resp } -func ObjectTypeRecommendedLayoutSet(b []byte) (resp []byte) { - defer func() { - if PanicHandler != nil { - if r := recover(); r != nil { - resp, _ = (&pb.RpcObjectTypeRecommendedLayoutSetResponse{Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{Code: pb.RpcObjectTypeRecommendedLayoutSetResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() - PanicHandler(r) - } - } - }() - - in := new(pb.RpcObjectTypeRecommendedLayoutSetRequest) - if err := in.Unmarshal(b); err != nil { - resp, _ = (&pb.RpcObjectTypeRecommendedLayoutSetResponse{Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{Code: pb.RpcObjectTypeRecommendedLayoutSetResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() - return resp - } - - resp, _ = clientCommandsHandler.ObjectTypeRecommendedLayoutSet(context.Background(), in).Marshal() - return resp -} - func HistoryShowVersion(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6381,8 +6358,6 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectTypeRecommendedRelationsSet(data) case "ObjectTypeRecommendedFeaturedRelationsSet": cd = ObjectTypeRecommendedFeaturedRelationsSet(data) - case "ObjectTypeRecommendedLayoutSet": - cd = ObjectTypeRecommendedLayoutSet(data) case "HistoryShowVersion": cd = HistoryShowVersion(data) case "HistoryGetVersions": @@ -8291,20 +8266,6 @@ func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedFeaturedRelationsSet(c call, _ := actualCall(ctx, req) return call.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) } -func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedLayoutSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { - actualCall := func(ctx context.Context, req any) (any, error) { - return h.client.ObjectTypeRecommendedLayoutSet(ctx, req.(*pb.RpcObjectTypeRecommendedLayoutSetRequest)), nil - } - for _, interceptor := range h.interceptors { - toCall := actualCall - currentInterceptor := interceptor - actualCall = func(ctx context.Context, req any) (any, error) { - return currentInterceptor(ctx, req, "ObjectTypeRecommendedLayoutSet", toCall) - } - } - call, _ := actualCall(ctx, req) - return call.(*pb.RpcObjectTypeRecommendedLayoutSetResponse) -} func (h *ClientCommandsHandlerProxy) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.HistoryShowVersion(ctx, req.(*pb.RpcHistoryShowVersionRequest)), nil diff --git a/core/block/detailservice/service.go b/core/block/detailservice/service.go index 296f5e199..8350b6871 100644 --- a/core/block/detailservice/service.go +++ b/core/block/detailservice/service.go @@ -40,7 +40,6 @@ type Service interface { ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error - ObjectTypeSetLayout(objectTypeId string, layout int64) error ListRelationsWithValue(spaceId string, value domain.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index f5aee4c1f..fbdedb8ef 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,7 +3,6 @@ package basic import ( "errors" "fmt" - "slices" "strings" "time" @@ -52,13 +51,6 @@ func (bs *basic) setDetails(ctx session.Context, details []domain.Detail, showEv // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later updates, updatedKeys := bs.collectDetailUpdates(details, s) - - for _, rel := range relationsProhibitedToUpdate { - if slices.Contains(updatedKeys, rel) { - return nil, fmt.Errorf("it is prohibited to update %s detail via ObjectSetDetails", rel.String()) - } - } - newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 26355bfdf..7d8ac710a 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -2,12 +2,20 @@ package smartblock import ( "context" + "errors" + "fmt" + + "github.com/anyproto/any-sync/app/ocache" "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/simple" + "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus" + "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/database" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) @@ -233,7 +241,7 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { return } - log.Errorf("failed to find id of object type") + log.Errorf("failed to find id of object type. Falling back to basic layout") s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } @@ -256,10 +264,116 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { } if !rawValue.Ok() { - log.Errorf("failed to get recommended layout from details of type. Setting basic layout") + log.Errorf("failed to get recommended layout from details of type. Fallback to basic layout") s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) } + +// changeResolvedLayoutForObjects changes resolvedLayout for object of this type and deletes Layout relation +func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, deleteLayoutRelation bool) error { + if sb.Type() != smartblock.SmartBlockTypeObjectType { + return nil + } + + layout, found := getLayoutFromMessages(msgs) + if !found { + // recommendedLayout was not changed + return nil + } + + index := sb.objectStore.SpaceIndex(sb.SpaceID()) + records, err := index.Query(database.Query{Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(sb.Id()), + }, + }}) + if err != nil { + return fmt.Errorf("failed to get objects of single type: %w", err) + } + + var resultErr error + for _, record := range records { + id := record.Details.GetString(bundle.RelationKeyId) + if id == "" { + continue + } + if deleteLayoutRelation && record.Details.Has(bundle.RelationKeyLayout) { + // we should delete layout from object, that's why we apply changes even if object is not in cache + err = sb.space.Do(id, func(b SmartBlock) error { + st := b.NewState() + st.RemoveDetail(bundle.RelationKeyLayout) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + return b.Apply(st) + }) + if err != nil { + resultErr = errors.Join(resultErr, err) + } + continue + } + + if record.Details.GetInt64(bundle.RelationKeyResolvedLayout) == layout { + // relevant layout is already set, skipping + continue + } + + err = sb.space.DoLockedIfNotExists(id, func() error { + return index.ModifyObjectDetails(id, func(details *domain.Details) (*domain.Details, bool, error) { + if details == nil { + return nil, false, nil + } + if details.GetInt64(bundle.RelationKeyResolvedLayout) == layout { + return nil, false, nil + } + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + return details, true, nil + }) + }) + + if err == nil { + continue + } + + if !errors.Is(err, ocache.ErrExists) { + resultErr = errors.Join(resultErr, err) + continue + } + + err = sb.space.Do(id, func(b SmartBlock) error { + if cr, ok := b.(source.ChangeReceiver); ok { + return cr.StateAppend(func(d state.Doc) (s *state.State, changes []*pb.ChangeContent, err error) { + st := d.NewState() + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + return st, nil, nil + }) + } + // do not Apply. StateAppend sends the event and runs reindex + return nil + }) + if err != nil { + resultErr = errors.Join(resultErr, err) + } + } + + if resultErr != nil { + return fmt.Errorf("failed to change layout for objects: %v", resultErr) + } + return nil +} + +func getLayoutFromMessages(msgs []simple.EventMessage) (layout int64, found bool) { + for _, ev := range msgs { + if amend := ev.Msg.GetObjectDetailsAmend(); amend != nil { + for _, detail := range amend.Details { + if detail.Key == bundle.RelationKeyRecommendedLayout.String() { + return int64(detail.Value.GetNumberValue()), true + } + } + } + } + return 0, false +} diff --git a/core/block/editor/smartblock/smartblock.go b/core/block/editor/smartblock/smartblock.go index 478b8ff2e..2d8de59a5 100644 --- a/core/block/editor/smartblock/smartblock.go +++ b/core/block/editor/smartblock/smartblock.go @@ -709,6 +709,10 @@ func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { return } + if err = sb.changeResolvedLayoutForObjects(msgs, true); err != nil { + return + } + // we may have layout changed, so we need to update restrictions sb.updateRestrictions() sb.setRestrictionsDetail(s) @@ -962,6 +966,11 @@ func (sb *smartBlock) StateAppend(f func(d state.Doc) (s *state.State, changes [ return err } log.Infof("changes: stateAppend: %d events", len(msgs)) + + if err = sb.changeResolvedLayoutForObjects(msgs, true); err != nil { + return err + } + if len(msgs) > 0 { sb.sendEvent(&pb.Event{ Messages: msgsToEvents(msgs), diff --git a/core/relations.go b/core/relations.go index 1a3f42d3e..00b652b9f 100644 --- a/core/relations.go +++ b/core/relations.go @@ -76,20 +76,6 @@ func (mw *Middleware) ObjectTypeRecommendedFeaturedRelationsSet(_ context.Contex } } -func (mw *Middleware) ObjectTypeRecommendedLayoutSet(_ context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { - detailsService := getService[detailservice.Service](mw) - err := detailsService.ObjectTypeSetLayout(req.TypeObjectId, int64(req.Layout)) - code := mapErrorCode(err, - errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeRecommendedLayoutSetResponseError_READONLY_OBJECT_TYPE), - ) - return &pb.RpcObjectTypeRecommendedLayoutSetResponse{ - Error: &pb.RpcObjectTypeRecommendedLayoutSetResponseError{ - Code: code, - Description: getErrorDescription(err), - }, - } -} - func (mw *Middleware) RelationListRemoveOption(cctx context.Context, request *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse { response := func(code pb.RpcRelationListRemoveOptionResponseErrorCode, err error) *pb.RpcRelationListRemoveOptionResponse { if err != nil { diff --git a/docs/proto.md b/docs/proto.md index 651de7c3f..6072ef38d 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -1068,10 +1068,6 @@ - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error) - - [Rpc.ObjectType.Recommended.LayoutSet](#anytype-Rpc-ObjectType-Recommended-LayoutSet) - - [Rpc.ObjectType.Recommended.LayoutSet.Request](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Request) - - [Rpc.ObjectType.Recommended.LayoutSet.Response](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response) - - [Rpc.ObjectType.Recommended.LayoutSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error) - [Rpc.ObjectType.Recommended.RelationsSet](#anytype-Rpc-ObjectType-Recommended-RelationsSet) - [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) - [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) @@ -1515,7 +1511,6 @@ - [Rpc.ObjectRelation.ListAvailable.Response.Error.Code](#anytype-Rpc-ObjectRelation-ListAvailable-Response-Error-Code) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error.Code](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error-Code) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error-Code) - - [Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error-Code) - [Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error-Code) - [Rpc.ObjectType.Relation.Add.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Add-Response-Error-Code) - [Rpc.ObjectType.Relation.Remove.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Remove-Response-Error-Code) @@ -2091,7 +2086,6 @@ | ObjectTypeRelationRemove | [Rpc.ObjectType.Relation.Remove.Request](#anytype-Rpc-ObjectType-Relation-Remove-Request) | [Rpc.ObjectType.Relation.Remove.Response](#anytype-Rpc-ObjectType-Relation-Remove-Response) | | | ObjectTypeRecommendedRelationsSet | [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) | [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) | | | ObjectTypeRecommendedFeaturedRelationsSet | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) | | -| ObjectTypeRecommendedLayoutSet | [Rpc.ObjectType.Recommended.LayoutSet.Request](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Request) | [Rpc.ObjectType.Recommended.LayoutSet.Response](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response) | | | HistoryShowVersion | [Rpc.History.ShowVersion.Request](#anytype-Rpc-History-ShowVersion-Request) | [Rpc.History.ShowVersion.Response](#anytype-Rpc-History-ShowVersion-Response) | | | HistoryGetVersions | [Rpc.History.GetVersions.Request](#anytype-Rpc-History-GetVersions-Request) | [Rpc.History.GetVersions.Response](#anytype-Rpc-History-GetVersions-Response) | | | HistorySetVersion | [Rpc.History.SetVersion.Request](#anytype-Rpc-History-SetVersion-Request) | [Rpc.History.SetVersion.Response](#anytype-Rpc-History-SetVersion-Response) | | @@ -17769,63 +17763,6 @@ Available undo/redo operations - - -### Rpc.ObjectType.Recommended.LayoutSet - - - - - - - - - -### Rpc.ObjectType.Recommended.LayoutSet.Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| typeObjectId | [string](#string) | | | -| layout | [model.ObjectType.Layout](#anytype-model-ObjectType-Layout) | | | - - - - - - - - -### Rpc.ObjectType.Recommended.LayoutSet.Response - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| error | [Rpc.ObjectType.Recommended.LayoutSet.Response.Error](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error) | | | - - - - - - - - -### Rpc.ObjectType.Recommended.LayoutSet.Response.Error - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| code | [Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-LayoutSet-Response-Error-Code) | | | -| description | [string](#string) | | | - - - - - - ### Rpc.ObjectType.Recommended.RelationsSet @@ -23965,20 +23902,6 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er - - -### Rpc.ObjectType.Recommended.LayoutSet.Response.Error.Code - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NULL | 0 | | -| UNKNOWN_ERROR | 1 | | -| BAD_INPUT | 2 | | -| READONLY_OBJECT_TYPE | 3 | ... | - - - ### Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index c79586a13..0eec4783d 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -3935,37 +3935,6 @@ func (RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode) EnumDescrip return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1, 0, 0} } -type RpcObjectTypeRecommendedLayoutSetResponseErrorCode int32 - -const ( - RpcObjectTypeRecommendedLayoutSetResponseError_NULL RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 0 - RpcObjectTypeRecommendedLayoutSetResponseError_UNKNOWN_ERROR RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 1 - RpcObjectTypeRecommendedLayoutSetResponseError_BAD_INPUT RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 2 - RpcObjectTypeRecommendedLayoutSetResponseError_READONLY_OBJECT_TYPE RpcObjectTypeRecommendedLayoutSetResponseErrorCode = 3 -) - -var RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name = map[int32]string{ - 0: "NULL", - 1: "UNKNOWN_ERROR", - 2: "BAD_INPUT", - 3: "READONLY_OBJECT_TYPE", -} - -var RpcObjectTypeRecommendedLayoutSetResponseErrorCode_value = map[string]int32{ - "NULL": 0, - "UNKNOWN_ERROR": 1, - "BAD_INPUT": 2, - "READONLY_OBJECT_TYPE": 3, -} - -func (x RpcObjectTypeRecommendedLayoutSetResponseErrorCode) String() string { - return proto.EnumName(RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name, int32(x)) -} - -func (RpcObjectTypeRecommendedLayoutSetResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1, 0, 0} -} - type RpcRelationListRemoveOptionResponseErrorCode int32 const ( @@ -32929,200 +32898,6 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) GetDescripti return "" } -type RpcObjectTypeRecommendedLayoutSet struct { -} - -func (m *RpcObjectTypeRecommendedLayoutSet) Reset() { *m = RpcObjectTypeRecommendedLayoutSet{} } -func (m *RpcObjectTypeRecommendedLayoutSet) String() string { return proto.CompactTextString(m) } -func (*RpcObjectTypeRecommendedLayoutSet) ProtoMessage() {} -func (*RpcObjectTypeRecommendedLayoutSet) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2} -} -func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.Merge(m, src) -} -func (m *RpcObjectTypeRecommendedLayoutSet) XXX_Size() int { - return m.Size() -} -func (m *RpcObjectTypeRecommendedLayoutSet) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSet proto.InternalMessageInfo - -type RpcObjectTypeRecommendedLayoutSetRequest struct { - TypeObjectId string `protobuf:"bytes,1,opt,name=typeObjectId,proto3" json:"typeObjectId,omitempty"` - Layout model.ObjectTypeLayout `protobuf:"varint,2,opt,name=layout,proto3,enum=anytype.model.ObjectTypeLayout" json:"layout,omitempty"` -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) Reset() { - *m = RpcObjectTypeRecommendedLayoutSetRequest{} -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) String() string { return proto.CompactTextString(m) } -func (*RpcObjectTypeRecommendedLayoutSetRequest) ProtoMessage() {} -func (*RpcObjectTypeRecommendedLayoutSetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 0} -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.Merge(m, src) -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_Size() int { - return m.Size() -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetRequest proto.InternalMessageInfo - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) GetTypeObjectId() string { - if m != nil { - return m.TypeObjectId - } - return "" -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) GetLayout() model.ObjectTypeLayout { - if m != nil { - return m.Layout - } - return model.ObjectType_basic -} - -type RpcObjectTypeRecommendedLayoutSetResponse struct { - Error *RpcObjectTypeRecommendedLayoutSetResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) Reset() { - *m = RpcObjectTypeRecommendedLayoutSetResponse{} -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) String() string { - return proto.CompactTextString(m) -} -func (*RpcObjectTypeRecommendedLayoutSetResponse) ProtoMessage() {} -func (*RpcObjectTypeRecommendedLayoutSetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1} -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.Merge(m, src) -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_Size() int { - return m.Size() -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponse proto.InternalMessageInfo - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) GetError() *RpcObjectTypeRecommendedLayoutSetResponseError { - if m != nil { - return m.Error - } - return nil -} - -type RpcObjectTypeRecommendedLayoutSetResponseError struct { - Code RpcObjectTypeRecommendedLayoutSetResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectTypeRecommendedLayoutSetResponseErrorCode" json:"code,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Reset() { - *m = RpcObjectTypeRecommendedLayoutSetResponseError{} -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) String() string { - return proto.CompactTextString(m) -} -func (*RpcObjectTypeRecommendedLayoutSetResponseError) ProtoMessage() {} -func (*RpcObjectTypeRecommendedLayoutSetResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 2, 1, 0} -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.Merge(m, src) -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_Size() int { - return m.Size() -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcObjectTypeRecommendedLayoutSetResponseError proto.InternalMessageInfo - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) GetCode() RpcObjectTypeRecommendedLayoutSetResponseErrorCode { - if m != nil { - return m.Code - } - return RpcObjectTypeRecommendedLayoutSetResponseError_NULL -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - type RpcRelation struct { } @@ -70111,7 +69886,6 @@ func init() { proto.RegisterEnum("anytype.RpcObjectTypeRelationRemoveResponseErrorCode", RpcObjectTypeRelationRemoveResponseErrorCode_name, RpcObjectTypeRelationRemoveResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedRelationsSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_value) - proto.RegisterEnum("anytype.RpcObjectTypeRecommendedLayoutSetResponseErrorCode", RpcObjectTypeRecommendedLayoutSetResponseErrorCode_name, RpcObjectTypeRecommendedLayoutSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListRemoveOptionResponseErrorCode", RpcRelationListRemoveOptionResponseErrorCode_name, RpcRelationListRemoveOptionResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationOptionsResponseErrorCode", RpcRelationOptionsResponseErrorCode_name, RpcRelationOptionsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListWithValueResponseErrorCode", RpcRelationListWithValueResponseErrorCode_name, RpcRelationListWithValueResponseErrorCode_value) @@ -70765,10 +70539,6 @@ func init() { proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error") - proto.RegisterType((*RpcObjectTypeRecommendedLayoutSet)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet") - proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Request") - proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Response") - proto.RegisterType((*RpcObjectTypeRecommendedLayoutSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.LayoutSet.Response.Error") proto.RegisterType((*RpcRelation)(nil), "anytype.Rpc.Relation") proto.RegisterType((*RpcRelationListRemoveOption)(nil), "anytype.Rpc.Relation.ListRemoveOption") proto.RegisterType((*RpcRelationListRemoveOptionRequest)(nil), "anytype.Rpc.Relation.ListRemoveOption.Request") @@ -71509,1221 +71279,1219 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 19423 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x7c, 0x24, 0x47, - 0x75, 0x2f, 0x8c, 0xef, 0x74, 0xcf, 0x8c, 0xa4, 0xa3, 0x97, 0x9d, 0x6d, 0xef, 0xae, 0xd7, 0x6d, - 0xb3, 0x36, 0x6b, 0x63, 0x1c, 0x63, 0xb4, 0xc6, 0x10, 0xc0, 0xc6, 0xc6, 0x1e, 0x8d, 0x46, 0xd2, - 0xd8, 0xd2, 0x8c, 0xe8, 0x19, 0xed, 0xe2, 0xe4, 0xf2, 0x53, 0x7a, 0x67, 0x4a, 0x52, 0x7b, 0x47, - 0xdd, 0x43, 0x77, 0x4b, 0x6b, 0xf1, 0xfb, 0xdc, 0xe7, 0x86, 0x10, 0xf3, 0x12, 0xc2, 0x25, 0x84, - 0x90, 0x84, 0x77, 0x30, 0x18, 0x2e, 0x24, 0x40, 0x78, 0xbf, 0x40, 0x02, 0x84, 0x97, 0x40, 0x48, - 0x42, 0x08, 0x84, 0xf0, 0x92, 0xf0, 0x04, 0x02, 0x21, 0xe4, 0xf9, 0x84, 0xcb, 0x4d, 0x9e, 0x1b, - 0xb8, 0x24, 0xe1, 0xc9, 0xf3, 0xe9, 0xaa, 0xea, 0xee, 0xaa, 0xd1, 0x74, 0x4f, 0xf5, 0x68, 0x7a, - 0x64, 0xc2, 0xf3, 0x5f, 0x77, 0x75, 0xf5, 0xa9, 0x53, 0xe7, 0x7b, 0xaa, 0xea, 0x54, 0xd5, 0xa9, - 0x53, 0x70, 0xaa, 0x73, 0xe1, 0x6c, 0xc7, 0xb6, 0x5c, 0xcb, 0x39, 0xdb, 0xb4, 0xb6, 0xb7, 0x75, - 0xb3, 0xe5, 0xcc, 0xe2, 0x77, 0x65, 0x4c, 0x37, 0xf7, 0xdc, 0xbd, 0x0e, 0x52, 0xaf, 0xeb, 0x5c, - 0xdc, 0x3c, 0xdb, 0x36, 0x2e, 0x9c, 0xed, 0x5c, 0x38, 0xbb, 0x6d, 0xb5, 0x50, 0xdb, 0xff, 0x01, - 0xbf, 0xd0, 0xec, 0xea, 0x0d, 0x51, 0xb9, 0xda, 0x56, 0x53, 0x6f, 0x3b, 0xae, 0x65, 0x23, 0x9a, - 0xf3, 0x64, 0x58, 0x24, 0xda, 0x45, 0xa6, 0xeb, 0x53, 0xb8, 0x6a, 0xd3, 0xb2, 0x36, 0xdb, 0x88, - 0x7c, 0xbb, 0xb0, 0xb3, 0x71, 0xd6, 0x71, 0xed, 0x9d, 0xa6, 0x4b, 0xbf, 0x5e, 0xd3, 0xfd, 0xb5, - 0x85, 0x9c, 0xa6, 0x6d, 0x74, 0x5c, 0xcb, 0x26, 0x39, 0xce, 0xbc, 0xf0, 0x81, 0x71, 0x90, 0xb5, - 0x4e, 0x53, 0xfd, 0xfe, 0x18, 0xc8, 0xc5, 0x4e, 0x47, 0xfd, 0xa4, 0x04, 0xb0, 0x88, 0xdc, 0x73, - 0xc8, 0x76, 0x0c, 0xcb, 0x54, 0x8f, 0xc2, 0x98, 0x86, 0x9e, 0xb9, 0x83, 0x1c, 0xf7, 0xb6, 0xec, - 0xf3, 0xbf, 0x2d, 0x67, 0xd4, 0x87, 0x24, 0x18, 0xd7, 0x90, 0xd3, 0xb1, 0x4c, 0x07, 0x29, 0x77, - 0x41, 0x0e, 0xd9, 0xb6, 0x65, 0x9f, 0xca, 0x5c, 0x93, 0xb9, 0x61, 0xf2, 0x96, 0x1b, 0x67, 0x69, - 0xf5, 0x67, 0xb5, 0x4e, 0x73, 0xb6, 0xd8, 0xe9, 0xcc, 0x86, 0x94, 0x66, 0xfd, 0x9f, 0x66, 0xcb, - 0xde, 0x1f, 0x1a, 0xf9, 0x51, 0x39, 0x05, 0x63, 0xbb, 0x24, 0xc3, 0x29, 0xe9, 0x9a, 0xcc, 0x0d, - 0x13, 0x9a, 0xff, 0xea, 0x7d, 0x69, 0x21, 0x57, 0x37, 0xda, 0xce, 0x29, 0x99, 0x7c, 0xa1, 0xaf, - 0xea, 0x83, 0x19, 0xc8, 0x61, 0x22, 0x4a, 0x09, 0xb2, 0x4d, 0xab, 0x85, 0x70, 0xf1, 0x33, 0xb7, - 0x9c, 0x15, 0x2f, 0x7e, 0xb6, 0x64, 0xb5, 0x90, 0x86, 0x7f, 0x56, 0xae, 0x81, 0x49, 0x5f, 0x2c, - 0x21, 0x1b, 0x6c, 0xd2, 0x99, 0x5b, 0x20, 0xeb, 0xe5, 0x57, 0xc6, 0x21, 0x5b, 0x5d, 0x5b, 0x5e, - 0x2e, 0x1c, 0x51, 0x8e, 0xc1, 0xf4, 0x5a, 0xf5, 0x9e, 0x6a, 0xed, 0x7c, 0x75, 0xbd, 0xac, 0x69, - 0x35, 0xad, 0x90, 0x51, 0xa6, 0x61, 0x62, 0xae, 0x38, 0xbf, 0x5e, 0xa9, 0xae, 0xae, 0x35, 0x0a, - 0x92, 0xfa, 0x1a, 0x19, 0x66, 0xea, 0xc8, 0x9d, 0x47, 0xbb, 0x46, 0x13, 0xd5, 0x5d, 0xdd, 0x45, - 0xea, 0x8b, 0x33, 0x81, 0x30, 0x95, 0x35, 0xaf, 0xd0, 0xe0, 0x13, 0xad, 0xc0, 0xe3, 0xf7, 0x55, - 0x80, 0xa7, 0x30, 0x4b, 0xff, 0x9e, 0x65, 0xd2, 0x34, 0x96, 0xce, 0x99, 0xc7, 0xc2, 0x24, 0xf3, - 0x4d, 0x99, 0x01, 0x98, 0x2b, 0x96, 0xee, 0x59, 0xd4, 0x6a, 0x6b, 0xd5, 0xf9, 0xc2, 0x11, 0xef, - 0x7d, 0xa1, 0xa6, 0x95, 0xe9, 0x7b, 0x46, 0xfd, 0x61, 0x86, 0x01, 0x73, 0x9e, 0x07, 0x73, 0xb6, - 0x3f, 0x33, 0x3d, 0x00, 0x55, 0xdf, 0x14, 0x80, 0xb3, 0xc8, 0x81, 0xf3, 0xf8, 0x64, 0xe4, 0xd2, - 0x07, 0xe8, 0x01, 0x09, 0xc6, 0xeb, 0x5b, 0x3b, 0x6e, 0xcb, 0xba, 0x64, 0xaa, 0x13, 0x01, 0x32, - 0xea, 0x77, 0x59, 0x99, 0x3c, 0x95, 0x97, 0xc9, 0x0d, 0xfb, 0x2b, 0x41, 0x29, 0x44, 0x48, 0xe3, - 0x75, 0x81, 0x34, 0x8a, 0x9c, 0x34, 0x1e, 0x2b, 0x4a, 0x28, 0x7d, 0x39, 0xbc, 0xe2, 0xc9, 0x90, - 0xab, 0x77, 0xf4, 0x26, 0x52, 0xff, 0x58, 0x86, 0xa9, 0x65, 0xa4, 0xef, 0xa2, 0x62, 0xa7, 0x63, - 0x5b, 0xbb, 0x48, 0x2d, 0x85, 0xfa, 0x7a, 0x0a, 0xc6, 0x1c, 0x2f, 0x53, 0xa5, 0x85, 0x6b, 0x30, - 0xa1, 0xf9, 0xaf, 0xca, 0x69, 0x00, 0xa3, 0x85, 0x4c, 0xd7, 0x70, 0x0d, 0xe4, 0x9c, 0x92, 0xae, - 0x91, 0x6f, 0x98, 0xd0, 0x98, 0x14, 0xf5, 0xfb, 0x92, 0xa8, 0x8e, 0x61, 0x2e, 0x66, 0x59, 0x0e, - 0x22, 0xa4, 0xfa, 0x06, 0x49, 0x44, 0xc7, 0xfa, 0x92, 0x4b, 0x26, 0xdb, 0xb7, 0x67, 0x92, 0x0b, - 0xd7, 0xcb, 0x51, 0xad, 0xad, 0xd7, 0xd7, 0x4a, 0x4b, 0xeb, 0xf5, 0xd5, 0x62, 0xa9, 0x5c, 0x40, - 0xca, 0x71, 0x28, 0xe0, 0xc7, 0xf5, 0x4a, 0x7d, 0x7d, 0xbe, 0xbc, 0x5c, 0x6e, 0x94, 0xe7, 0x0b, - 0x1b, 0x8a, 0x02, 0x33, 0x5a, 0xf9, 0x69, 0x6b, 0xe5, 0x7a, 0x63, 0x7d, 0xa1, 0x58, 0x59, 0x2e, - 0xcf, 0x17, 0x36, 0xbd, 0x9f, 0x97, 0x2b, 0x2b, 0x95, 0xc6, 0xba, 0x56, 0x2e, 0x96, 0x96, 0xca, - 0xf3, 0x85, 0x2d, 0xe5, 0x72, 0xb8, 0xac, 0x5a, 0x5b, 0x2f, 0xae, 0xae, 0x6a, 0xb5, 0x73, 0xe5, - 0x75, 0xfa, 0x47, 0xbd, 0x60, 0x90, 0x82, 0x1a, 0xeb, 0xf5, 0xa5, 0xa2, 0x56, 0x2e, 0xce, 0x2d, - 0x97, 0x0b, 0xf7, 0xa9, 0xcf, 0x91, 0x61, 0x7a, 0x45, 0xbf, 0x88, 0xea, 0x5b, 0xba, 0x8d, 0xf4, - 0x0b, 0x6d, 0xa4, 0x5e, 0x2b, 0x80, 0xa7, 0xfa, 0xc7, 0x2c, 0x5e, 0x65, 0x1e, 0xaf, 0xb3, 0x3d, - 0x04, 0xcc, 0x15, 0x11, 0x01, 0xd8, 0xff, 0x0e, 0x9a, 0xc1, 0x12, 0x07, 0xd8, 0x13, 0x12, 0xd2, - 0x4b, 0x86, 0xd8, 0x2f, 0x3c, 0x0c, 0x10, 0x53, 0xbf, 0x26, 0xc3, 0x4c, 0xc5, 0xdc, 0x35, 0x5c, - 0xb4, 0x88, 0x4c, 0x64, 0x7b, 0xe3, 0x80, 0x10, 0x0c, 0x0f, 0xc9, 0x0c, 0x0c, 0x0b, 0x3c, 0x0c, - 0x37, 0xf7, 0x10, 0x1b, 0x5f, 0x46, 0xc4, 0x68, 0x7b, 0x15, 0x4c, 0x18, 0x38, 0x5f, 0xc9, 0x68, - 0x51, 0x89, 0x85, 0x09, 0xca, 0x75, 0x30, 0x4d, 0x5e, 0x16, 0x8c, 0x36, 0xba, 0x07, 0xed, 0xd1, - 0x71, 0x97, 0x4f, 0x54, 0x7f, 0x39, 0x68, 0x7c, 0x15, 0x0e, 0xcb, 0x9f, 0x4e, 0xca, 0x54, 0x32, - 0x30, 0x5f, 0xf6, 0x70, 0x68, 0x7e, 0xfb, 0x5a, 0x99, 0xa1, 0xfe, 0x48, 0x82, 0xc9, 0xba, 0x6b, - 0x75, 0x3c, 0x95, 0x35, 0xcc, 0x4d, 0x31, 0x70, 0x3f, 0xcd, 0xb6, 0xb1, 0x12, 0x0f, 0xee, 0x63, - 0x7b, 0xc8, 0x91, 0x29, 0x20, 0xa2, 0x85, 0x7d, 0x3f, 0x68, 0x61, 0x0b, 0x1c, 0x2a, 0xb7, 0x24, - 0xa2, 0xf6, 0x63, 0xd8, 0xbe, 0x5e, 0x26, 0x43, 0xc1, 0x57, 0x33, 0xb7, 0xb4, 0x63, 0xdb, 0xc8, - 0x74, 0xc5, 0x40, 0xf8, 0x4b, 0x16, 0x84, 0x25, 0x1e, 0x84, 0x5b, 0x62, 0x94, 0xd9, 0x2f, 0x25, - 0xc5, 0x36, 0xf6, 0xd1, 0x00, 0xcd, 0x7b, 0x38, 0x34, 0x9f, 0x94, 0x9c, 0xad, 0x64, 0x90, 0x2e, - 0x0d, 0x80, 0xe8, 0x71, 0x28, 0x78, 0x63, 0x52, 0xa9, 0x51, 0x39, 0x57, 0x5e, 0xaf, 0x54, 0xcf, - 0x55, 0x1a, 0xe5, 0x02, 0x52, 0x5f, 0x2a, 0xc3, 0x14, 0x61, 0x4d, 0x43, 0xbb, 0xd6, 0x45, 0xc1, - 0x5e, 0xef, 0x6b, 0x09, 0x8d, 0x05, 0xb6, 0x84, 0x88, 0x96, 0xf1, 0x4b, 0x09, 0x8c, 0x85, 0x18, - 0x72, 0x0f, 0xa7, 0xde, 0x6a, 0x5f, 0x33, 0xd8, 0xec, 0xd1, 0x5a, 0x7a, 0xf6, 0x56, 0x2f, 0xcb, - 0x02, 0x90, 0x4a, 0x9e, 0x33, 0xd0, 0x25, 0x75, 0x25, 0xc4, 0x84, 0x53, 0xdb, 0x4c, 0x5f, 0xb5, - 0x95, 0x7a, 0xa9, 0xed, 0xfb, 0xd9, 0x31, 0x6b, 0x8e, 0x47, 0xef, 0xa6, 0x48, 0x71, 0x7b, 0x9c, - 0x44, 0xcf, 0x0e, 0x7d, 0x45, 0x91, 0x78, 0xab, 0xf3, 0x2a, 0x98, 0xc0, 0x8f, 0x55, 0x7d, 0x1b, - 0xd1, 0x36, 0x14, 0x26, 0x28, 0x67, 0x60, 0x8a, 0x64, 0x6c, 0x5a, 0xa6, 0x57, 0x9f, 0x2c, 0xce, - 0xc0, 0xa5, 0x79, 0x20, 0x36, 0x6d, 0xa4, 0xbb, 0x96, 0x8d, 0x69, 0xe4, 0x08, 0x88, 0x4c, 0x92, - 0xfa, 0x9d, 0xa0, 0x15, 0x96, 0x39, 0xcd, 0x79, 0x5c, 0x92, 0xaa, 0x24, 0xd3, 0x9b, 0xdd, 0xc1, - 0xda, 0x1f, 0x69, 0x75, 0xeb, 0x1e, 0xda, 0x0b, 0x78, 0x6a, 0x87, 0x94, 0x93, 0xa0, 0xd0, 0x54, - 0x2f, 0x6f, 0xa9, 0x56, 0x6d, 0x94, 0xab, 0x8d, 0xc2, 0x46, 0x4f, 0x8d, 0xda, 0x54, 0xdf, 0x90, - 0x85, 0xec, 0xdd, 0x96, 0x61, 0xaa, 0x0f, 0x64, 0x38, 0x95, 0x30, 0x91, 0x7b, 0xc9, 0xb2, 0x2f, - 0x06, 0x0d, 0x35, 0x4c, 0x88, 0xc7, 0x26, 0x54, 0x25, 0xb9, 0xaf, 0x2a, 0x65, 0x7b, 0xa9, 0xd2, - 0xaf, 0xb2, 0xaa, 0x74, 0x3b, 0xaf, 0x4a, 0xd7, 0xf7, 0x90, 0xbf, 0xc7, 0x7c, 0x44, 0x07, 0xf0, - 0xa9, 0xa0, 0x03, 0xb8, 0x93, 0x83, 0xf1, 0x31, 0x62, 0x64, 0x92, 0x01, 0xf8, 0xd5, 0x54, 0x1b, - 0x7e, 0x2f, 0xa8, 0x37, 0x23, 0xa0, 0xde, 0xea, 0xd1, 0x27, 0x18, 0xfb, 0xbb, 0x8e, 0xfb, 0xf6, - 0x77, 0x13, 0x17, 0x95, 0x13, 0x70, 0x6c, 0xbe, 0xb2, 0xb0, 0x50, 0xd6, 0xca, 0xd5, 0xc6, 0x7a, - 0xb5, 0xdc, 0x38, 0x5f, 0xd3, 0xee, 0x29, 0xb4, 0xd5, 0x07, 0x65, 0x00, 0x4f, 0x42, 0x25, 0xdd, - 0x6c, 0xa2, 0xb6, 0x58, 0x8f, 0xfe, 0x3f, 0xa4, 0x64, 0x7d, 0x42, 0x48, 0x3f, 0x02, 0xce, 0x57, - 0x4b, 0xe2, 0xad, 0x32, 0x92, 0x58, 0x32, 0x50, 0xdf, 0xfa, 0x70, 0xb0, 0x3d, 0x2f, 0x83, 0xa3, - 0x3e, 0x3d, 0x9a, 0xbd, 0xf7, 0xb4, 0xef, 0x1d, 0x59, 0x98, 0xa1, 0xb0, 0xf8, 0xf3, 0xf8, 0xe7, - 0x67, 0x44, 0x26, 0xf2, 0x2a, 0x8c, 0xd3, 0x69, 0xbb, 0xdf, 0xbd, 0x07, 0xef, 0xca, 0x22, 0x4c, - 0x76, 0x90, 0xbd, 0x6d, 0x38, 0x8e, 0x61, 0x99, 0x64, 0x41, 0x6e, 0xe6, 0x96, 0x47, 0x05, 0x12, - 0xc7, 0x6b, 0x97, 0xb3, 0xab, 0xba, 0xed, 0x1a, 0x4d, 0xa3, 0xa3, 0x9b, 0xee, 0x6a, 0x98, 0x59, - 0x63, 0xff, 0x54, 0x5f, 0x92, 0x70, 0x5a, 0xc3, 0xd7, 0x24, 0x42, 0x25, 0x7e, 0x37, 0xc1, 0x94, - 0x24, 0x96, 0x60, 0x32, 0xb5, 0xf8, 0x64, 0xaa, 0x6a, 0xd1, 0x03, 0xef, 0x4d, 0xe5, 0x0a, 0x38, - 0x51, 0xa9, 0x96, 0x6a, 0x9a, 0x56, 0x2e, 0x35, 0xd6, 0x57, 0xcb, 0xda, 0x4a, 0xa5, 0x5e, 0xaf, - 0xd4, 0xaa, 0xf5, 0x83, 0xb4, 0x76, 0xf5, 0x33, 0x72, 0xa0, 0x31, 0xf3, 0xa8, 0xd9, 0x36, 0x4c, - 0xa4, 0xde, 0x79, 0x40, 0x85, 0xe1, 0x57, 0x7d, 0xc4, 0x71, 0xa6, 0xe5, 0x47, 0xe0, 0xfc, 0xfa, - 0xe4, 0x38, 0xf7, 0x26, 0xf8, 0x1f, 0xb8, 0xf9, 0x7f, 0x4d, 0x86, 0x63, 0x4c, 0x43, 0xd4, 0xd0, - 0xf6, 0xd0, 0x56, 0xf2, 0x7e, 0x81, 0x6d, 0xbb, 0x15, 0x1e, 0xd3, 0x5e, 0xd6, 0xf4, 0x3e, 0x36, - 0x22, 0x60, 0x7d, 0x6b, 0x00, 0xeb, 0x32, 0x07, 0xeb, 0x93, 0x07, 0xa0, 0x99, 0x0c, 0xd9, 0xdf, - 0x49, 0x15, 0xd9, 0x2b, 0xe0, 0xc4, 0x6a, 0x51, 0x6b, 0x54, 0x4a, 0x95, 0xd5, 0xa2, 0x37, 0x8e, - 0x32, 0x43, 0x76, 0x84, 0xb9, 0xce, 0x83, 0xde, 0x13, 0xdf, 0x8f, 0x64, 0xe1, 0xaa, 0xde, 0x1d, - 0x6d, 0x69, 0x4b, 0x37, 0x37, 0x91, 0x6a, 0x88, 0x40, 0x3d, 0x0f, 0x63, 0x4d, 0x9c, 0x9d, 0xe0, - 0xcc, 0x6e, 0xdd, 0xc4, 0xf4, 0xe5, 0xa4, 0x04, 0xcd, 0xff, 0x55, 0x7d, 0x37, 0xab, 0x10, 0x0d, - 0x5e, 0x21, 0x9e, 0x1a, 0x0f, 0xde, 0x3e, 0xbe, 0x23, 0x74, 0xe3, 0x73, 0x81, 0x6e, 0x9c, 0xe7, - 0x74, 0xa3, 0x74, 0x30, 0xf2, 0xc9, 0xd4, 0xe4, 0x8f, 0x1e, 0x0e, 0x1d, 0x40, 0xa4, 0x36, 0x19, - 0xd1, 0xa3, 0x42, 0xcf, 0xee, 0xfe, 0xb5, 0x32, 0xe4, 0xe7, 0x51, 0x1b, 0x89, 0xae, 0x44, 0x7e, - 0x4f, 0x12, 0xdd, 0x10, 0x21, 0x30, 0x10, 0xda, 0xd1, 0xab, 0x23, 0xae, 0xb1, 0x8d, 0x1c, 0x57, - 0xdf, 0xee, 0x60, 0x51, 0xcb, 0x5a, 0x98, 0xa0, 0xfe, 0xa2, 0x24, 0xb2, 0x5d, 0x12, 0x53, 0xcc, - 0x7f, 0x8c, 0x35, 0xc5, 0x2f, 0x48, 0x30, 0x5e, 0x47, 0x6e, 0xcd, 0x6e, 0x21, 0x5b, 0xad, 0x87, - 0x18, 0x5d, 0x03, 0x93, 0x18, 0x14, 0x6f, 0x9a, 0x19, 0xe0, 0xc4, 0x26, 0x29, 0xd7, 0xc3, 0x4c, - 0xf0, 0x8a, 0x7f, 0xa7, 0xdd, 0x78, 0x57, 0xaa, 0xfa, 0x8f, 0x19, 0xd1, 0x5d, 0x5c, 0xba, 0x64, - 0x48, 0xb9, 0x89, 0x68, 0xa5, 0x62, 0x3b, 0xb2, 0xb1, 0xa4, 0xd2, 0xdf, 0xe8, 0x7a, 0xa7, 0x04, - 0xb0, 0x66, 0x3a, 0xbe, 0x5c, 0x1f, 0x93, 0x40, 0xae, 0xea, 0x3f, 0x67, 0x92, 0xcd, 0x62, 0xc2, - 0x72, 0x22, 0x24, 0xf6, 0xc6, 0x04, 0x6b, 0x0b, 0x91, 0xc4, 0xd2, 0x97, 0xd9, 0x37, 0x67, 0x20, - 0x7f, 0x5e, 0x6f, 0xb7, 0x91, 0xab, 0x7e, 0x4b, 0x82, 0x7c, 0xc9, 0x46, 0xba, 0x8b, 0x58, 0xd1, - 0xa9, 0x30, 0x6e, 0x5b, 0x96, 0xbb, 0xaa, 0xbb, 0x5b, 0x54, 0x6e, 0xc1, 0x3b, 0x75, 0x18, 0xf8, - 0x6d, 0xb6, 0xfb, 0xb8, 0x93, 0x17, 0xdd, 0x4f, 0x71, 0xb5, 0x25, 0x05, 0xcd, 0x92, 0x42, 0x22, - 0xfa, 0x0f, 0x15, 0xc6, 0xb7, 0x4d, 0xb4, 0x6d, 0x99, 0x46, 0xd3, 0xb7, 0x39, 0xfd, 0x77, 0xf5, - 0x63, 0x81, 0x4c, 0xe7, 0x38, 0x99, 0xce, 0x0a, 0x97, 0x92, 0x4c, 0xa0, 0xf5, 0x01, 0x7a, 0x8f, - 0xab, 0xe1, 0x4a, 0xd2, 0x19, 0xac, 0x37, 0x6a, 0xeb, 0x25, 0xad, 0x5c, 0x6c, 0x94, 0xd7, 0x97, - 0x6b, 0xa5, 0xe2, 0xf2, 0xba, 0x56, 0x5e, 0xad, 0x15, 0x90, 0xfa, 0x77, 0x92, 0x27, 0xdc, 0xa6, - 0xb5, 0x8b, 0x6c, 0x75, 0x51, 0x48, 0xce, 0x71, 0x32, 0xa1, 0x18, 0xfc, 0xaa, 0xb0, 0xd3, 0x06, - 0x95, 0x0e, 0xe5, 0x20, 0x42, 0x79, 0x3f, 0x2e, 0xd4, 0xdc, 0x63, 0x49, 0x3d, 0x0c, 0x24, 0xfd, - 0xbf, 0x24, 0x18, 0x2b, 0x59, 0xe6, 0x2e, 0xb2, 0x5d, 0x76, 0xbe, 0xc3, 0x4a, 0x33, 0xc3, 0x4b, - 0xd3, 0x1b, 0x24, 0x91, 0xe9, 0xda, 0x56, 0xc7, 0x9f, 0xf0, 0xf8, 0xaf, 0xea, 0x9b, 0x93, 0x4a, - 0x98, 0x96, 0x1c, 0xbd, 0xf0, 0xd9, 0xbb, 0x20, 0x8e, 0x3d, 0xb9, 0xab, 0x01, 0x3c, 0x98, 0x04, - 0x97, 0xde, 0x0c, 0xa4, 0xdf, 0xa5, 0x7c, 0x5d, 0x86, 0x69, 0xd2, 0xf8, 0xea, 0x08, 0x5b, 0x68, - 0x6a, 0x8d, 0x5d, 0x72, 0xec, 0x12, 0xfe, 0xd2, 0x11, 0x4e, 0xfc, 0x79, 0xbd, 0xd3, 0x09, 0x96, - 0x9f, 0x97, 0x8e, 0x68, 0xf4, 0x9d, 0xa8, 0xf9, 0x5c, 0x1e, 0xb2, 0xfa, 0x8e, 0xbb, 0xa5, 0xfe, - 0x48, 0x78, 0xf2, 0xc9, 0x75, 0x06, 0x94, 0x9f, 0x08, 0x48, 0x8e, 0x43, 0xce, 0xb5, 0x2e, 0x22, - 0x5f, 0x0e, 0xe4, 0xc5, 0x83, 0x43, 0xef, 0x74, 0x1a, 0xf8, 0x03, 0x85, 0xc3, 0x7f, 0xf7, 0x6c, - 0x1d, 0xbd, 0xd9, 0xb4, 0x76, 0x4c, 0xb7, 0xe2, 0x2f, 0x41, 0x87, 0x09, 0xea, 0x97, 0x33, 0x22, - 0x93, 0x59, 0x01, 0x06, 0x93, 0x41, 0x76, 0x61, 0x80, 0xa6, 0x34, 0x0b, 0x37, 0x16, 0x57, 0x57, - 0xd7, 0x1b, 0xb5, 0x7b, 0xca, 0xd5, 0xd0, 0xf0, 0x5c, 0xaf, 0x54, 0xd7, 0x1b, 0x4b, 0xe5, 0xf5, - 0xd2, 0x9a, 0x86, 0xd7, 0x09, 0x8b, 0xa5, 0x52, 0x6d, 0xad, 0xda, 0x28, 0x20, 0xf5, 0x6d, 0x12, - 0x4c, 0x95, 0xda, 0x96, 0x13, 0x20, 0x7c, 0x75, 0x88, 0x70, 0x20, 0xc6, 0x0c, 0x23, 0x46, 0xf5, - 0x5f, 0x33, 0xa2, 0x4e, 0x07, 0xbe, 0x40, 0x18, 0xf2, 0x11, 0xbd, 0xd4, 0x9b, 0x85, 0x9c, 0x0e, - 0xfa, 0xd3, 0x4b, 0xbf, 0x49, 0x7c, 0xe1, 0x36, 0x18, 0x2b, 0x12, 0xc5, 0x50, 0xff, 0x3a, 0x03, - 0xf9, 0x92, 0x65, 0x6e, 0x18, 0x9b, 0x9e, 0x31, 0x87, 0x4c, 0xfd, 0x42, 0x1b, 0xcd, 0xeb, 0xae, - 0xbe, 0x6b, 0xa0, 0x4b, 0xb8, 0x02, 0xe3, 0x5a, 0x57, 0xaa, 0xc7, 0x14, 0x4d, 0x41, 0x17, 0x76, - 0x36, 0x31, 0x53, 0xe3, 0x1a, 0x9b, 0xa4, 0x3c, 0x19, 0x2e, 0x27, 0xaf, 0xab, 0x36, 0xb2, 0x51, - 0x1b, 0xe9, 0x0e, 0xf2, 0xa6, 0x45, 0x26, 0x6a, 0x63, 0xa5, 0x1d, 0xd7, 0xa2, 0x3e, 0x2b, 0x67, - 0x60, 0x8a, 0x7c, 0xc2, 0xa6, 0x88, 0x83, 0xd5, 0x78, 0x5c, 0xe3, 0xd2, 0x94, 0xc7, 0x42, 0x0e, - 0xdd, 0xef, 0xda, 0xfa, 0xa9, 0x16, 0xc6, 0xeb, 0xf2, 0x59, 0xe2, 0x75, 0x38, 0xeb, 0x7b, 0x1d, - 0xce, 0xd6, 0xb1, 0x4f, 0xa2, 0x46, 0x72, 0xa9, 0xaf, 0x1a, 0x0f, 0x0c, 0x89, 0x7f, 0x97, 0x42, - 0xc5, 0x50, 0x20, 0x6b, 0xea, 0xdb, 0x88, 0xea, 0x05, 0x7e, 0x56, 0x6e, 0x84, 0xa3, 0xfa, 0xae, - 0xee, 0xea, 0xf6, 0xb2, 0xd5, 0xd4, 0xdb, 0x78, 0xf0, 0xf3, 0x5b, 0x7e, 0xf7, 0x07, 0xbc, 0x23, - 0xe4, 0x5a, 0x36, 0xc2, 0xb9, 0xfc, 0x1d, 0x21, 0x3f, 0xc1, 0xa3, 0x6e, 0x34, 0x2d, 0x13, 0xf3, - 0x2f, 0x6b, 0xf8, 0xd9, 0x93, 0x4a, 0xcb, 0x70, 0xbc, 0x8a, 0x60, 0x2a, 0x55, 0xb2, 0xb5, 0x51, - 0xdf, 0x33, 0x9b, 0x78, 0x37, 0x68, 0x5c, 0x8b, 0xfa, 0xac, 0xcc, 0xc1, 0x24, 0xdd, 0x08, 0x59, - 0xf1, 0xf4, 0x2a, 0x8f, 0xf5, 0xea, 0x1a, 0xde, 0xa7, 0x8b, 0xe0, 0x39, 0x5b, 0x0d, 0xf3, 0x69, - 0xec, 0x4f, 0xca, 0x5d, 0x70, 0x25, 0x7d, 0x2d, 0xed, 0x38, 0xae, 0xb5, 0x4d, 0x40, 0x5f, 0x30, - 0xda, 0xa4, 0x06, 0x63, 0xb8, 0x06, 0x71, 0x59, 0x94, 0x5b, 0xe0, 0x78, 0xc7, 0x46, 0x1b, 0xc8, - 0xbe, 0x57, 0xdf, 0xde, 0xb9, 0xbf, 0x61, 0xeb, 0xa6, 0xd3, 0xb1, 0x6c, 0xf7, 0xd4, 0x38, 0x66, - 0xbe, 0xe7, 0x37, 0xda, 0x51, 0x8e, 0x43, 0x9e, 0x88, 0x4f, 0x7d, 0x71, 0x4e, 0xd8, 0x9d, 0x93, - 0x56, 0x28, 0xd6, 0x3c, 0xbb, 0x19, 0xc6, 0x68, 0x0f, 0x87, 0x81, 0x9a, 0xbc, 0xe5, 0x64, 0xd7, - 0xba, 0x02, 0xa5, 0xa2, 0xf9, 0xd9, 0x94, 0xc7, 0x43, 0xbe, 0x89, 0xab, 0x85, 0x31, 0x9b, 0xbc, - 0xe5, 0xca, 0xde, 0x85, 0xe2, 0x2c, 0x1a, 0xcd, 0xaa, 0x7e, 0x45, 0x16, 0xf2, 0x00, 0x8d, 0xe3, - 0x38, 0x59, 0xab, 0xfe, 0x8e, 0x34, 0x40, 0xb7, 0x79, 0x13, 0xdc, 0x40, 0xfb, 0x44, 0x6a, 0x7f, - 0xcc, 0xaf, 0xcf, 0xad, 0xf9, 0x93, 0x41, 0xcf, 0x2a, 0xa9, 0x37, 0x8a, 0x9a, 0x37, 0x93, 0x9f, - 0xf7, 0x26, 0x91, 0x37, 0xc2, 0xf5, 0x7d, 0x72, 0x97, 0x1b, 0xeb, 0xd5, 0xe2, 0x4a, 0xb9, 0xb0, - 0xc1, 0xdb, 0x36, 0xf5, 0x46, 0x6d, 0x75, 0x5d, 0x5b, 0xab, 0x56, 0x2b, 0xd5, 0x45, 0x42, 0xcc, - 0x33, 0x09, 0x4f, 0x86, 0x19, 0xce, 0x6b, 0x95, 0x46, 0x79, 0xbd, 0x54, 0xab, 0x2e, 0x54, 0x16, - 0x0b, 0x46, 0x3f, 0xc3, 0xe8, 0x3e, 0xe5, 0x1a, 0xb8, 0x8a, 0xe3, 0xa4, 0x52, 0xab, 0x7a, 0x33, - 0xdb, 0x52, 0xb1, 0x5a, 0x2a, 0x7b, 0xd3, 0xd8, 0x8b, 0x8a, 0x0a, 0x27, 0x08, 0xb9, 0xf5, 0x85, - 0xca, 0x32, 0xbb, 0x19, 0xf5, 0xe9, 0x8c, 0x72, 0x0a, 0x2e, 0x63, 0xbf, 0x55, 0xaa, 0xe7, 0x8a, - 0xcb, 0x95, 0xf9, 0xc2, 0x1f, 0x66, 0x94, 0xeb, 0xe0, 0x6a, 0xee, 0x2f, 0xb2, 0xaf, 0xb4, 0x5e, - 0x99, 0x5f, 0x5f, 0xa9, 0xd4, 0x57, 0x8a, 0x8d, 0xd2, 0x52, 0xe1, 0x33, 0x78, 0xbe, 0x10, 0x18, - 0xc0, 0x8c, 0x5b, 0xe6, 0xcb, 0xd8, 0x31, 0xbd, 0xc8, 0x2b, 0xea, 0x63, 0x7a, 0xc2, 0x1e, 0x6f, - 0xc3, 0x7e, 0x32, 0x18, 0x1d, 0xe6, 0x39, 0x15, 0xba, 0x39, 0x01, 0xad, 0x64, 0x3a, 0xd4, 0x18, - 0x40, 0x85, 0xae, 0x81, 0xab, 0xaa, 0x65, 0x82, 0x94, 0x56, 0x2e, 0xd5, 0xce, 0x95, 0xb5, 0xf5, - 0xf3, 0xc5, 0xe5, 0xe5, 0x72, 0x63, 0x7d, 0xa1, 0xa2, 0xd5, 0x1b, 0x85, 0x0d, 0xf5, 0x9f, 0xa5, - 0x60, 0x35, 0x87, 0x91, 0xd6, 0x5f, 0x4b, 0x49, 0x9b, 0x75, 0xec, 0xaa, 0xcd, 0x4f, 0x43, 0xde, - 0x71, 0x75, 0x77, 0xc7, 0xa1, 0xad, 0xfa, 0x11, 0xbd, 0x5b, 0xf5, 0x6c, 0x1d, 0x67, 0xd2, 0x68, - 0x66, 0xf5, 0x2b, 0x99, 0x24, 0xcd, 0x74, 0x08, 0x0b, 0x3a, 0xc6, 0x00, 0x22, 0x3e, 0x0d, 0xaa, - 0xaf, 0xed, 0x95, 0xfa, 0x7a, 0x71, 0x59, 0x2b, 0x17, 0xe7, 0xef, 0x0d, 0x96, 0x71, 0x90, 0x72, - 0x02, 0x8e, 0xad, 0x55, 0x8b, 0x73, 0xcb, 0x65, 0xdc, 0x5c, 0x6a, 0xd5, 0x6a, 0xb9, 0xe4, 0xc9, - 0xfd, 0x17, 0xf1, 0xa6, 0x89, 0x67, 0x41, 0x63, 0xbe, 0x3d, 0x2b, 0x87, 0x91, 0xff, 0xb7, 0x85, - 0x7d, 0x8b, 0x42, 0x0d, 0x63, 0x69, 0x0d, 0x17, 0x87, 0x2f, 0x0b, 0xb9, 0x13, 0x09, 0x71, 0x92, - 0x0c, 0x8f, 0x9f, 0x1b, 0x00, 0x8f, 0x13, 0x70, 0x8c, 0xc5, 0x03, 0xbb, 0x15, 0x45, 0xc3, 0xf0, - 0x8d, 0x71, 0xc8, 0xd7, 0x51, 0x1b, 0x35, 0x5d, 0xf5, 0x1d, 0x8c, 0x31, 0x31, 0x03, 0x52, 0xe0, - 0xc6, 0x22, 0x19, 0x2d, 0x6e, 0xfa, 0x2c, 0x75, 0x4d, 0x9f, 0x63, 0xcc, 0x00, 0x39, 0x91, 0x19, - 0x90, 0x4d, 0xc1, 0x0c, 0xc8, 0x0d, 0x6e, 0x06, 0xe4, 0xfb, 0x99, 0x01, 0xea, 0x1b, 0xf3, 0x49, - 0x7b, 0x09, 0x22, 0xea, 0xc3, 0x1d, 0xfc, 0xff, 0x47, 0x36, 0x49, 0xaf, 0xd2, 0x93, 0xe3, 0x64, - 0x5a, 0xfc, 0x23, 0x39, 0x85, 0xe5, 0x07, 0xe5, 0x5a, 0xb8, 0x3a, 0x7c, 0x5f, 0x2f, 0x3f, 0xbd, - 0x52, 0x6f, 0xd4, 0xf1, 0x88, 0x5f, 0xaa, 0x69, 0xda, 0xda, 0x2a, 0x59, 0x43, 0x3e, 0x09, 0x4a, - 0x48, 0x45, 0x5b, 0xab, 0x92, 0xf1, 0x7d, 0x93, 0xa7, 0xbe, 0x50, 0xa9, 0xce, 0xaf, 0x07, 0x6d, - 0xa6, 0xba, 0x50, 0x2b, 0x6c, 0x79, 0x53, 0x36, 0x86, 0xba, 0x37, 0x40, 0xd3, 0x12, 0x8a, 0xd5, - 0xf9, 0xf5, 0x95, 0x6a, 0x79, 0xa5, 0x56, 0xad, 0x94, 0x70, 0x7a, 0xbd, 0xdc, 0x28, 0x18, 0xde, - 0x40, 0xd3, 0x65, 0x51, 0xd4, 0xcb, 0x45, 0xad, 0xb4, 0x54, 0xd6, 0x48, 0x91, 0xf7, 0x29, 0xd7, - 0xc3, 0x99, 0x62, 0xb5, 0xd6, 0xf0, 0x52, 0x8a, 0xd5, 0x7b, 0x1b, 0xf7, 0xae, 0x96, 0xd7, 0x57, - 0xb5, 0x5a, 0xa9, 0x5c, 0xaf, 0x7b, 0xed, 0x94, 0xda, 0x1f, 0x85, 0xb6, 0xf2, 0x54, 0xb8, 0x8d, - 0x61, 0xad, 0xdc, 0xc0, 0x1b, 0x96, 0x2b, 0x35, 0xec, 0xb3, 0x32, 0x5f, 0x5e, 0x5f, 0x2a, 0xd6, - 0xd7, 0x2b, 0xd5, 0x52, 0x6d, 0x65, 0xb5, 0xd8, 0xa8, 0x78, 0xcd, 0x79, 0x55, 0xab, 0x35, 0x6a, - 0xeb, 0xe7, 0xca, 0x5a, 0xbd, 0x52, 0xab, 0x16, 0x4c, 0xaf, 0xca, 0x4c, 0xfb, 0xf7, 0xfb, 0x61, - 0x4b, 0xb9, 0x0a, 0x4e, 0xf9, 0xe9, 0xcb, 0x35, 0x4f, 0xd0, 0x8c, 0x45, 0xd2, 0x49, 0xd5, 0x22, - 0xf9, 0x17, 0x09, 0xb2, 0x75, 0xd7, 0xea, 0xa8, 0x3f, 0x15, 0x76, 0x30, 0xa7, 0x01, 0x6c, 0xbc, - 0xff, 0xe8, 0xcd, 0xc2, 0xe8, 0xbc, 0x8c, 0x49, 0x51, 0xff, 0x40, 0x78, 0xd3, 0x24, 0xec, 0xb3, - 0xad, 0x4e, 0x84, 0xad, 0xf2, 0x43, 0xb1, 0x53, 0x24, 0xd1, 0x84, 0x92, 0xe9, 0xfb, 0x2f, 0x0d, - 0xb2, 0x2d, 0xa2, 0xc2, 0x49, 0x06, 0x36, 0x4f, 0xfe, 0xbe, 0x4a, 0x20, 0xe5, 0x72, 0xb8, 0xac, - 0x4b, 0xb9, 0xb0, 0x4e, 0x6d, 0x28, 0x8f, 0x84, 0x47, 0x30, 0xea, 0x5d, 0x5e, 0xa9, 0x9d, 0x2b, - 0x07, 0x8a, 0x3c, 0x5f, 0x6c, 0x14, 0x0b, 0x9b, 0xea, 0x17, 0x64, 0xc8, 0xae, 0x58, 0xbb, 0xdd, - 0x7b, 0x55, 0x26, 0xba, 0xc4, 0xac, 0x85, 0xfa, 0xaf, 0xbc, 0xd7, 0xbc, 0x90, 0xd8, 0x57, 0xa2, - 0xf7, 0xa5, 0xbf, 0x2c, 0x25, 0x11, 0xfb, 0xca, 0x41, 0x37, 0xa3, 0xff, 0x7e, 0x10, 0xb1, 0x47, - 0x88, 0x16, 0x29, 0x67, 0xe0, 0x74, 0xf8, 0xa1, 0x32, 0x5f, 0xae, 0x36, 0x2a, 0x0b, 0xf7, 0x86, - 0xc2, 0xad, 0x68, 0x42, 0xe2, 0xef, 0xd7, 0x8d, 0xc5, 0xcf, 0x34, 0x4e, 0xc1, 0xf1, 0xf0, 0xdb, - 0x62, 0xb9, 0xe1, 0x7f, 0xb9, 0x4f, 0x7d, 0x20, 0x07, 0x53, 0xa4, 0x5b, 0x5f, 0xeb, 0xb4, 0x74, - 0x17, 0xa9, 0x8f, 0x0f, 0xd1, 0xbd, 0x01, 0x8e, 0x56, 0x56, 0x17, 0xea, 0x75, 0xd7, 0xb2, 0xf5, - 0x4d, 0x54, 0x6c, 0xb5, 0x6c, 0x2a, 0xad, 0xee, 0x64, 0xf5, 0xbd, 0xc2, 0xeb, 0x7c, 0xfc, 0x50, - 0x42, 0xca, 0x8c, 0x40, 0xfd, 0xeb, 0x42, 0xeb, 0x72, 0x02, 0x04, 0x93, 0xa1, 0x7f, 0xdf, 0x90, - 0xdb, 0x5c, 0x34, 0x2e, 0x1b, 0x67, 0x9e, 0x27, 0xc1, 0x44, 0xc3, 0xd8, 0x46, 0xcf, 0xb2, 0x4c, - 0xe4, 0x28, 0x63, 0x20, 0x2f, 0xae, 0x34, 0x0a, 0x47, 0xbc, 0x07, 0xcf, 0xa8, 0xca, 0xe0, 0x87, - 0xb2, 0x57, 0x80, 0xf7, 0x50, 0x6c, 0x14, 0x64, 0xef, 0x61, 0xa5, 0xdc, 0x28, 0x64, 0xbd, 0x87, - 0x6a, 0xb9, 0x51, 0xc8, 0x79, 0x0f, 0xab, 0xcb, 0x8d, 0x42, 0xde, 0x7b, 0xa8, 0xd4, 0x1b, 0x85, - 0x31, 0xef, 0x61, 0xae, 0xde, 0x28, 0x8c, 0x7b, 0x0f, 0xe7, 0xea, 0x8d, 0xc2, 0x84, 0xf7, 0x50, - 0x6a, 0x34, 0x0a, 0xe0, 0x3d, 0xdc, 0x5d, 0x6f, 0x14, 0x26, 0xbd, 0x87, 0x62, 0xa9, 0x51, 0x98, - 0xc2, 0x0f, 0xe5, 0x46, 0x61, 0xda, 0x7b, 0xa8, 0xd7, 0x1b, 0x85, 0x19, 0x4c, 0xb9, 0xde, 0x28, - 0x1c, 0xc5, 0x65, 0x55, 0x1a, 0x85, 0x82, 0xf7, 0xb0, 0x54, 0x6f, 0x14, 0x8e, 0xe1, 0xcc, 0xf5, - 0x46, 0x41, 0xc1, 0x85, 0xd6, 0x1b, 0x85, 0xcb, 0x70, 0x9e, 0x7a, 0xa3, 0x70, 0x1c, 0x17, 0x51, - 0x6f, 0x14, 0x4e, 0x60, 0x36, 0xca, 0x8d, 0xc2, 0x49, 0x9c, 0x47, 0x6b, 0x14, 0x2e, 0xc7, 0x9f, - 0xaa, 0x8d, 0xc2, 0x29, 0xcc, 0x58, 0xb9, 0x51, 0xb8, 0x02, 0x3f, 0x68, 0x8d, 0x82, 0x8a, 0x3f, - 0x15, 0x1b, 0x85, 0x2b, 0xd5, 0x47, 0xc0, 0xc4, 0x22, 0x72, 0x09, 0x88, 0x6a, 0x01, 0xe4, 0x45, - 0xe4, 0xb2, 0x66, 0xfc, 0x37, 0x65, 0xb8, 0x9c, 0x4e, 0xfd, 0x16, 0x6c, 0x6b, 0x7b, 0x19, 0x6d, - 0xea, 0xcd, 0xbd, 0xf2, 0xfd, 0x9e, 0x09, 0xc5, 0xee, 0xcb, 0x2a, 0x90, 0xed, 0x84, 0x9d, 0x11, - 0x7e, 0x8e, 0xb5, 0x38, 0xfd, 0xc5, 0x28, 0x39, 0x5c, 0x8c, 0xa2, 0x16, 0xd9, 0x3f, 0xb1, 0x1a, - 0xcd, 0xad, 0x1f, 0x67, 0xba, 0xd6, 0x8f, 0xbd, 0x66, 0xd2, 0x41, 0xb6, 0x63, 0x99, 0x7a, 0xbb, - 0x4e, 0x37, 0xee, 0xc9, 0xaa, 0x57, 0x77, 0xb2, 0xf2, 0x34, 0xbf, 0x65, 0x10, 0xab, 0xec, 0x29, - 0x71, 0x33, 0xdc, 0xee, 0x6a, 0x46, 0x34, 0x92, 0xcf, 0x04, 0x8d, 0xa4, 0xc1, 0x35, 0x92, 0xbb, - 0x0e, 0x40, 0x3b, 0x59, 0x7b, 0xa9, 0x0c, 0x36, 0xb5, 0x08, 0xdd, 0x5a, 0xfd, 0xe5, 0x6a, 0x59, - 0xfd, 0x82, 0x04, 0x27, 0xcb, 0x66, 0x2f, 0x0b, 0x9f, 0xd5, 0x85, 0xb7, 0xb1, 0xd0, 0xac, 0xf2, - 0x22, 0xbd, 0xad, 0x67, 0xb5, 0x7b, 0xd3, 0x8c, 0x90, 0xe8, 0x67, 0x03, 0x89, 0xd6, 0x39, 0x89, - 0xde, 0x39, 0x38, 0xe9, 0x64, 0x02, 0xad, 0x0e, 0xb5, 0x03, 0xca, 0xaa, 0xdf, 0xc9, 0xc2, 0x23, - 0x88, 0xef, 0x0d, 0xe5, 0x90, 0xb4, 0xb2, 0xa2, 0xd9, 0xd2, 0x90, 0xe3, 0xea, 0xb6, 0xcb, 0x9d, - 0x87, 0xee, 0x9a, 0x4a, 0x65, 0x52, 0x98, 0x4a, 0x49, 0x7d, 0xa7, 0x52, 0xea, 0x7b, 0x58, 0xf3, - 0xe1, 0x3c, 0x8f, 0x71, 0xb1, 0x77, 0xff, 0x1f, 0x57, 0xc3, 0x28, 0xa8, 0x03, 0xbb, 0xe2, 0x67, - 0x38, 0xa8, 0x17, 0x0e, 0x5c, 0x42, 0x32, 0xc4, 0xff, 0x60, 0xb8, 0x76, 0x5e, 0x96, 0xfd, 0xc6, - 0x1b, 0x25, 0x85, 0x56, 0xaa, 0x06, 0xfa, 0xe7, 0xc6, 0x60, 0x02, 0xb7, 0x85, 0x65, 0xc3, 0xbc, - 0xa8, 0x3e, 0x28, 0xc3, 0x54, 0x15, 0x5d, 0x2a, 0x6d, 0xe9, 0xed, 0x36, 0x32, 0x37, 0x11, 0x6b, - 0xb6, 0x9f, 0x82, 0x31, 0xbd, 0xd3, 0xa9, 0x86, 0xfb, 0x0c, 0xfe, 0x2b, 0xed, 0x7f, 0xbf, 0xdd, - 0xb3, 0x91, 0x67, 0x62, 0x1a, 0x79, 0x50, 0xee, 0x2c, 0x5b, 0x66, 0xc4, 0x0c, 0xf9, 0x1a, 0x98, - 0x6c, 0xfa, 0x59, 0x82, 0x73, 0x13, 0x6c, 0x92, 0xfa, 0xb7, 0x89, 0xba, 0x01, 0xa1, 0xc2, 0x93, - 0x29, 0x05, 0x1a, 0xb2, 0x1d, 0x72, 0x02, 0x8e, 0x35, 0x6a, 0xb5, 0xf5, 0x95, 0x62, 0xf5, 0xde, - 0xf0, 0xbc, 0xf2, 0x86, 0xfa, 0xea, 0x2c, 0xcc, 0xd4, 0xad, 0xf6, 0x2e, 0x0a, 0x61, 0xaa, 0x70, - 0x0e, 0x39, 0xac, 0x9c, 0x32, 0xfb, 0xe4, 0xa4, 0x9c, 0x84, 0xbc, 0x6e, 0x3a, 0x97, 0x90, 0x6f, - 0x1b, 0xd2, 0x37, 0x0a, 0xe3, 0x47, 0xd8, 0x76, 0xac, 0xf1, 0x30, 0xde, 0xde, 0x47, 0x92, 0x3c, - 0x57, 0x11, 0x40, 0x9e, 0x81, 0x29, 0x87, 0x6c, 0x16, 0x36, 0x98, 0x3d, 0x61, 0x2e, 0x0d, 0xb3, - 0x48, 0x76, 0xab, 0x65, 0xca, 0x22, 0x7e, 0x53, 0x1f, 0x0c, 0x9a, 0xff, 0x1a, 0x07, 0x71, 0xf1, - 0x20, 0x8c, 0x25, 0x03, 0xf9, 0xb5, 0xc3, 0x9e, 0xe1, 0x9d, 0x82, 0xe3, 0xb4, 0xd5, 0xae, 0x97, - 0x96, 0x8a, 0xcb, 0xcb, 0xe5, 0xea, 0x62, 0x79, 0xbd, 0x32, 0x4f, 0xb6, 0x2a, 0xc2, 0x94, 0x62, - 0xa3, 0x51, 0x5e, 0x59, 0x6d, 0xd4, 0xd7, 0xcb, 0x4f, 0x2f, 0x95, 0xcb, 0xf3, 0xd8, 0x25, 0x0e, - 0x9f, 0x69, 0xf1, 0x9d, 0x17, 0x8b, 0xd5, 0xfa, 0xf9, 0xb2, 0x56, 0xd8, 0x3a, 0x53, 0x84, 0x49, - 0xa6, 0x9f, 0xf7, 0xb8, 0x9b, 0x47, 0x1b, 0xfa, 0x4e, 0x9b, 0xda, 0x6a, 0x85, 0x23, 0x1e, 0x77, - 0x58, 0x36, 0x35, 0xb3, 0xbd, 0x57, 0xc8, 0x28, 0x05, 0x98, 0x62, 0xbb, 0xf4, 0x82, 0xa4, 0xbe, - 0xf3, 0x2a, 0x98, 0x38, 0x6f, 0xd9, 0x17, 0xb1, 0x1f, 0x97, 0xfa, 0x01, 0x12, 0xd7, 0xc4, 0x3f, - 0x21, 0xca, 0x0c, 0xec, 0xaf, 0x15, 0xf7, 0x16, 0xf0, 0xa9, 0xcd, 0xf6, 0x3d, 0x05, 0x7a, 0x0d, - 0x4c, 0x5e, 0xf2, 0x73, 0x87, 0x2d, 0x9d, 0x49, 0x52, 0xff, 0x9b, 0xd8, 0xfe, 0x7f, 0xff, 0x22, - 0xd3, 0xdf, 0x9f, 0x7e, 0x87, 0x04, 0xf9, 0x45, 0xe4, 0x16, 0xdb, 0x6d, 0x56, 0x6e, 0x2f, 0x17, - 0x3e, 0xd9, 0xc3, 0x55, 0xa2, 0xd8, 0x6e, 0x47, 0x37, 0x2a, 0x46, 0x40, 0xbe, 0x07, 0x3a, 0x97, - 0x26, 0xe8, 0x37, 0xd7, 0xa7, 0xc0, 0xf4, 0x25, 0xf6, 0x31, 0x39, 0xd8, 0xe3, 0x7e, 0x88, 0xb1, - 0x72, 0x1e, 0x17, 0xc6, 0xb4, 0xc9, 0xc4, 0xef, 0x95, 0xfb, 0xf9, 0x94, 0x7b, 0x60, 0x6c, 0xc7, - 0x41, 0x25, 0xdd, 0x41, 0x98, 0xb7, 0xee, 0x9a, 0xd6, 0x2e, 0xdc, 0x87, 0x9a, 0xee, 0x6c, 0x65, - 0xdb, 0x33, 0xa8, 0xd7, 0x48, 0xc6, 0x20, 0x4c, 0x0c, 0x7d, 0xd7, 0x7c, 0x0a, 0xde, 0xa4, 0xe4, - 0x92, 0xe1, 0x6e, 0x95, 0xb6, 0x74, 0x97, 0xae, 0x6d, 0x07, 0xef, 0xea, 0x8b, 0x07, 0x80, 0x33, - 0x76, 0x2f, 0x38, 0xf2, 0x80, 0x60, 0x62, 0x10, 0x87, 0xb0, 0x81, 0x3b, 0x08, 0x88, 0xff, 0x20, - 0x41, 0xb6, 0xd6, 0x41, 0xa6, 0xf0, 0x69, 0x98, 0x40, 0xb6, 0x52, 0x97, 0x6c, 0x1f, 0x14, 0xf7, - 0x0e, 0x0b, 0x2a, 0xed, 0x95, 0x1c, 0x21, 0xd9, 0xb3, 0x90, 0x35, 0xcc, 0x0d, 0x8b, 0x1a, 0xa6, - 0x57, 0x46, 0x6c, 0x02, 0x55, 0xcc, 0x0d, 0x4b, 0xc3, 0x19, 0x45, 0x1d, 0xc3, 0xe2, 0xca, 0x4e, - 0x5f, 0xdc, 0xdf, 0x1d, 0x87, 0x3c, 0x51, 0x67, 0xf5, 0x65, 0x32, 0xc8, 0xc5, 0x56, 0x2b, 0x42, - 0xf0, 0xd2, 0x3e, 0xc1, 0x5b, 0xf8, 0xb7, 0x00, 0x93, 0xe0, 0x9d, 0x0f, 0x66, 0x22, 0xd8, 0xb7, - 0xd3, 0x26, 0x55, 0x6c, 0xb5, 0xa2, 0x7d, 0x50, 0x83, 0x02, 0x25, 0xbe, 0x40, 0xb6, 0x85, 0xcb, - 0x62, 0x2d, 0x3c, 0xf1, 0x40, 0x10, 0xc9, 0x5f, 0xfa, 0x10, 0xfd, 0x93, 0x04, 0x63, 0xcb, 0x86, - 0xe3, 0x7a, 0xd8, 0x14, 0x45, 0xb0, 0xb9, 0x0a, 0x26, 0x7c, 0xd1, 0x78, 0x5d, 0x9e, 0xd7, 0x9f, - 0x87, 0x09, 0xea, 0x1b, 0x58, 0x74, 0xee, 0xe6, 0xd1, 0x79, 0x42, 0x7c, 0xed, 0x29, 0x17, 0xd1, - 0xa7, 0x0c, 0xc2, 0x62, 0xa5, 0xee, 0x62, 0x7f, 0x3b, 0x10, 0xf8, 0x0a, 0x27, 0xf0, 0x5b, 0x07, - 0x29, 0x32, 0x7d, 0xa1, 0x7f, 0x51, 0x02, 0xf0, 0xca, 0xa6, 0x47, 0xb9, 0x1e, 0xcd, 0x1d, 0xd0, - 0x8e, 0x91, 0xee, 0xab, 0x59, 0xe9, 0xae, 0xf0, 0xd2, 0x7d, 0x52, 0xff, 0xaa, 0xc6, 0x1d, 0xd9, - 0x52, 0x0a, 0x20, 0x1b, 0x81, 0x68, 0xbd, 0x47, 0xf5, 0x1d, 0x81, 0x50, 0x57, 0x39, 0xa1, 0xde, - 0x3e, 0x60, 0x49, 0xe9, 0xcb, 0xf5, 0x2f, 0x25, 0x18, 0xab, 0x23, 0xd7, 0xeb, 0x26, 0xd5, 0x73, - 0x22, 0x3d, 0x3c, 0xd3, 0xb6, 0x25, 0xc1, 0xb6, 0xfd, 0x83, 0x8c, 0x68, 0xa0, 0x97, 0x50, 0x32, - 0x94, 0xa7, 0x88, 0xc5, 0x83, 0x87, 0x84, 0x02, 0xbd, 0xf4, 0xa3, 0x96, 0xbe, 0x74, 0xdf, 0x26, - 0x05, 0x1b, 0xf3, 0xfc, 0x49, 0x0b, 0xd6, 0x2c, 0xce, 0xec, 0x37, 0x8b, 0xc5, 0x4f, 0x5a, 0xb0, - 0x75, 0x8c, 0xde, 0x95, 0x4e, 0x6c, 0x6c, 0x0c, 0x61, 0xc3, 0x78, 0x10, 0x79, 0x3d, 0x47, 0x86, - 0x3c, 0x5d, 0x59, 0xbe, 0x33, 0x7e, 0x65, 0xb9, 0xff, 0xd4, 0xe2, 0xfd, 0x03, 0x98, 0x72, 0x71, - 0xcb, 0xbd, 0x01, 0x1b, 0x12, 0xc3, 0xc6, 0x4d, 0x90, 0xc3, 0x91, 0x28, 0xe9, 0x38, 0x17, 0xee, - 0xf5, 0xfb, 0x24, 0xca, 0xde, 0x57, 0x8d, 0x64, 0x4a, 0x8c, 0xc2, 0x10, 0x56, 0x88, 0x07, 0x41, - 0xe1, 0x3d, 0x5f, 0xc8, 0x04, 0x46, 0xc8, 0xfb, 0xb3, 0xd4, 0xfc, 0xfb, 0x14, 0x1f, 0x13, 0xa3, - 0x69, 0x99, 0x2e, 0xba, 0x9f, 0x59, 0x93, 0x0f, 0x12, 0x62, 0x2d, 0x83, 0x53, 0x30, 0xe6, 0xda, - 0xec, 0x3a, 0xbd, 0xff, 0xca, 0xf6, 0x38, 0x39, 0xbe, 0xc7, 0xa9, 0xc2, 0x19, 0xc3, 0x6c, 0xb6, - 0x77, 0x5a, 0x48, 0x43, 0x6d, 0xdd, 0xab, 0x95, 0x53, 0x74, 0xe6, 0x51, 0x07, 0x99, 0x2d, 0x64, - 0xba, 0x84, 0x4f, 0xdf, 0x27, 0x57, 0x20, 0xa7, 0xfa, 0x2d, 0x56, 0x31, 0xee, 0xe0, 0x15, 0xe3, - 0xd1, 0xbd, 0xe6, 0x15, 0x31, 0x46, 0xe8, 0xad, 0x00, 0xa4, 0x6e, 0xe7, 0x0c, 0x74, 0x89, 0x76, - 0x88, 0x57, 0x74, 0x99, 0xa2, 0xb5, 0x20, 0x83, 0xc6, 0x64, 0x56, 0xbf, 0x16, 0x28, 0xc3, 0x5d, - 0x9c, 0x32, 0xdc, 0x24, 0xc8, 0x42, 0x32, 0x3d, 0xe8, 0x0c, 0xb0, 0xd6, 0x31, 0x0d, 0x13, 0xe1, - 0x0a, 0xa5, 0xac, 0x5c, 0x01, 0x27, 0x7c, 0x9f, 0x87, 0x6a, 0xb9, 0x3c, 0x5f, 0x5f, 0x5f, 0x5b, - 0x5d, 0xd4, 0x8a, 0xf3, 0xe5, 0x02, 0x28, 0x0a, 0xcc, 0xd4, 0xe6, 0xee, 0x2e, 0x97, 0x1a, 0x81, - 0xab, 0x42, 0x56, 0xfd, 0x0b, 0x09, 0x72, 0xd8, 0xa1, 0x5c, 0x7d, 0xc6, 0x90, 0x34, 0xc7, 0xe1, - 0x76, 0x78, 0x82, 0x89, 0x94, 0x78, 0xac, 0x4a, 0x2a, 0x4c, 0xcc, 0xd5, 0x81, 0x62, 0x55, 0xc6, - 0x10, 0x4a, 0xbf, 0x79, 0x7a, 0x4d, 0xb2, 0xbe, 0x65, 0x5d, 0xfa, 0x49, 0x6e, 0x92, 0x5e, 0xfd, - 0x0f, 0xb9, 0x49, 0xf6, 0x60, 0x61, 0xe4, 0x4d, 0xb2, 0x47, 0xbb, 0x8b, 0x69, 0xa6, 0xea, 0xb3, - 0x73, 0xc1, 0x82, 0xcc, 0xf3, 0xa4, 0x03, 0x2d, 0xc8, 0x14, 0x61, 0xda, 0x30, 0x5d, 0x64, 0x9b, - 0x7a, 0x7b, 0xa1, 0xad, 0x6f, 0xfa, 0x07, 0xe8, 0xbb, 0x67, 0xe1, 0x15, 0x26, 0x8f, 0xc6, 0xff, - 0xa1, 0x9c, 0x06, 0x70, 0xd1, 0x76, 0xa7, 0xad, 0xbb, 0xa1, 0xea, 0x31, 0x29, 0xac, 0xf6, 0x65, - 0x79, 0xed, 0xbb, 0x19, 0x2e, 0x23, 0xa0, 0x35, 0xf6, 0x3a, 0x68, 0xcd, 0x34, 0x9e, 0xb9, 0x83, - 0x43, 0x28, 0x11, 0x1d, 0xed, 0xf5, 0x89, 0x5b, 0x96, 0xc8, 0x77, 0x2d, 0x4b, 0xfc, 0x83, 0xf0, - 0xd1, 0x4c, 0xbf, 0xd5, 0xf7, 0x39, 0x9a, 0x19, 0xb4, 0x34, 0xb9, 0xab, 0xa5, 0x05, 0xc6, 0x42, - 0x56, 0xc0, 0x58, 0x60, 0x51, 0xc9, 0x09, 0x1a, 0xda, 0xaf, 0x17, 0x3a, 0xfb, 0x19, 0x57, 0x8d, - 0x11, 0x4c, 0xe4, 0x64, 0x98, 0x21, 0x45, 0xcf, 0x59, 0xd6, 0xc5, 0x6d, 0xdd, 0xbe, 0xa8, 0xda, - 0x07, 0x52, 0xc5, 0xd8, 0x35, 0x91, 0xc8, 0x85, 0xbe, 0xcf, 0xb2, 0xa8, 0x2f, 0xf2, 0xa8, 0x3f, - 0x2e, 0x5a, 0x5c, 0x3e, 0xcf, 0xa3, 0x59, 0x14, 0x79, 0x4b, 0x80, 0xe7, 0xdd, 0x1c, 0x9e, 0x4f, - 0x4c, 0xcc, 0x60, 0xfa, 0xb8, 0xfe, 0x51, 0x80, 0xab, 0xdf, 0xd1, 0xb3, 0xf3, 0xc9, 0x61, 0xe2, - 0xaa, 0x7e, 0x7d, 0x30, 0xec, 0x7c, 0xbe, 0x06, 0xc0, 0xae, 0x00, 0xf2, 0xc5, 0x60, 0x0b, 0xcb, - 0x7b, 0x64, 0x2b, 0x94, 0x4d, 0x0f, 0xcd, 0x08, 0x96, 0x47, 0x82, 0xe6, 0x71, 0x9e, 0x85, 0x5a, - 0x27, 0x55, 0x4c, 0xbf, 0x2a, 0xbc, 0x4e, 0xd3, 0x53, 0x40, 0x84, 0xbb, 0xd1, 0xb4, 0x4a, 0xb1, - 0x45, 0x1e, 0x71, 0x36, 0xd3, 0x47, 0xf3, 0x45, 0x39, 0x98, 0xf0, 0x0f, 0xcf, 0xe2, 0xd8, 0xee, - 0x01, 0x86, 0x27, 0x21, 0xef, 0x58, 0x3b, 0x76, 0x13, 0xd1, 0x95, 0x33, 0xfa, 0x36, 0xc0, 0x2a, - 0x4f, 0xdf, 0xf1, 0x7c, 0x9f, 0xc9, 0x90, 0x4d, 0x6c, 0x32, 0x44, 0x1b, 0xa4, 0x71, 0x03, 0xfc, - 0x8b, 0x85, 0x03, 0x72, 0x72, 0x98, 0xd5, 0x91, 0xfb, 0x70, 0x1c, 0xe3, 0x7f, 0x5f, 0x68, 0x0d, - 0xa1, 0x4f, 0x4d, 0x92, 0xa9, 0x5c, 0x6d, 0x00, 0x43, 0xf5, 0x4a, 0xb8, 0xdc, 0xcf, 0x41, 0x2d, - 0x54, 0x6c, 0x91, 0xae, 0x69, 0xcb, 0x05, 0x59, 0x7d, 0x4e, 0x16, 0x0a, 0x84, 0xb5, 0x5a, 0x60, - 0xac, 0xa9, 0x2f, 0xcf, 0x1c, 0xb6, 0x45, 0x1a, 0x3d, 0xc5, 0xfc, 0xbc, 0x24, 0x1a, 0xf4, 0x8b, - 0x13, 0x7c, 0x58, 0xbb, 0x08, 0x4d, 0x1a, 0xa0, 0x99, 0xc5, 0x28, 0x9f, 0xfa, 0x5b, 0x19, 0x91, - 0x18, 0x62, 0x62, 0x2c, 0xa6, 0xdf, 0x2b, 0x7d, 0x29, 0xeb, 0xc7, 0x40, 0x58, 0xb0, 0xad, 0xed, - 0x35, 0xbb, 0xad, 0xfe, 0x9f, 0x42, 0x21, 0x1a, 0x23, 0xcc, 0x7f, 0x29, 0xda, 0xfc, 0x2f, 0x80, - 0xbc, 0x63, 0xb7, 0xfd, 0xe1, 0x7b, 0xc7, 0x6e, 0x0f, 0x30, 0x7c, 0x2b, 0xd7, 0xc3, 0x8c, 0xde, - 0x6a, 0xad, 0xea, 0x9b, 0xa8, 0xe4, 0xcd, 0xab, 0x4d, 0x97, 0x9e, 0x8f, 0xee, 0x4a, 0x8d, 0xed, - 0x8a, 0xbe, 0x25, 0xbc, 0x13, 0xc7, 0x81, 0x44, 0xe5, 0x33, 0x92, 0xe1, 0xcd, 0x1b, 0x12, 0x9a, - 0x5b, 0x7a, 0x18, 0xad, 0x81, 0xbe, 0x09, 0xee, 0xd0, 0x09, 0xf0, 0x9d, 0xbe, 0x66, 0xfd, 0xae, - 0x04, 0x63, 0x9e, 0xbc, 0x8b, 0xad, 0x96, 0xfa, 0x28, 0x2e, 0xa8, 0x49, 0xe4, 0x1e, 0xe9, 0x0b, - 0x84, 0x37, 0xa7, 0xfd, 0x1a, 0x12, 0xfa, 0x11, 0x98, 0x84, 0x42, 0x94, 0x38, 0x21, 0x8a, 0xed, - 0x41, 0xc7, 0x16, 0x91, 0xbe, 0xf8, 0x3e, 0x23, 0xc1, 0xb4, 0x3f, 0x8f, 0x58, 0x40, 0x6e, 0x73, - 0x4b, 0xbd, 0x55, 0x74, 0xa1, 0x89, 0xb6, 0x34, 0x29, 0x68, 0x69, 0xea, 0x8f, 0x32, 0x09, 0x55, - 0x9e, 0x2b, 0x39, 0x62, 0x95, 0x2e, 0x91, 0x2e, 0xc6, 0x11, 0x4c, 0x5f, 0x98, 0x5f, 0x93, 0x00, - 0x1a, 0x56, 0x30, 0xd7, 0x3d, 0x80, 0x24, 0x5f, 0x2a, 0x7c, 0x5f, 0x02, 0xad, 0x78, 0x58, 0x6c, - 0xf2, 0x9e, 0x43, 0x70, 0x8b, 0xad, 0x5f, 0x49, 0x23, 0x69, 0xeb, 0x13, 0xf3, 0x3b, 0x9d, 0xb6, - 0xd1, 0xd4, 0xdd, 0xee, 0x7d, 0xe1, 0x68, 0xf1, 0xe2, 0x8b, 0x8f, 0x12, 0x19, 0x85, 0x41, 0x19, - 0x11, 0xb2, 0x24, 0x87, 0x6d, 0x25, 0xff, 0xb0, 0xad, 0xe0, 0x5e, 0x4f, 0x1f, 0xe2, 0x23, 0x50, - 0x4f, 0x19, 0x8e, 0xd6, 0x3a, 0xc8, 0x9c, 0xb3, 0x91, 0xde, 0x6a, 0xda, 0x3b, 0xdb, 0x17, 0x1c, - 0xd6, 0xa9, 0x21, 0x5e, 0x47, 0x99, 0xa5, 0x63, 0x89, 0x5b, 0x3a, 0x56, 0x9f, 0x2b, 0x8b, 0x1e, - 0xfd, 0x66, 0x36, 0x38, 0x18, 0x1e, 0x06, 0x18, 0xea, 0x12, 0x6d, 0xc5, 0x75, 0xad, 0x12, 0x67, - 0x93, 0xac, 0x12, 0xbf, 0x55, 0xe8, 0x20, 0xb9, 0x50, 0xbd, 0x46, 0xb2, 0xa3, 0x3a, 0x53, 0x47, - 0x6e, 0x04, 0xbc, 0xd7, 0xc1, 0xf4, 0x85, 0xf0, 0x4b, 0x00, 0x31, 0x9f, 0xd8, 0xc3, 0xcf, 0xe1, - 0x6d, 0x49, 0x57, 0x60, 0x78, 0x16, 0x22, 0xd0, 0x0d, 0x10, 0x94, 0x44, 0x36, 0x53, 0x13, 0x2d, - 0xa7, 0xc4, 0x96, 0x9f, 0x3e, 0x0a, 0x9f, 0x90, 0x60, 0x12, 0x5f, 0xe7, 0x34, 0xb7, 0x87, 0xbd, - 0xf3, 0x05, 0x8d, 0x92, 0x17, 0xb1, 0x62, 0x56, 0x20, 0xdb, 0x36, 0xcc, 0x8b, 0xfe, 0x2e, 0xb8, - 0xf7, 0x1c, 0x5e, 0x0e, 0x22, 0xf5, 0xb8, 0x1c, 0x24, 0xd8, 0xa7, 0x08, 0xca, 0x3d, 0xd0, 0x6d, - 0x75, 0x7d, 0xc9, 0xa5, 0x2f, 0xc6, 0xbf, 0xcb, 0x42, 0xbe, 0x8e, 0x74, 0xbb, 0xb9, 0xa5, 0xbe, - 0x5f, 0xea, 0x39, 0x55, 0x18, 0xe7, 0xa7, 0x0a, 0x0b, 0x30, 0xb6, 0x61, 0xb4, 0x5d, 0x64, 0x13, - 0xcf, 0x20, 0xb6, 0x6b, 0x27, 0x4d, 0x7c, 0xae, 0x6d, 0x35, 0x2f, 0xce, 0x52, 0xd3, 0x7d, 0xd6, - 0x0f, 0x26, 0x35, 0xbb, 0x80, 0x7f, 0xd2, 0xfc, 0x9f, 0x3d, 0x83, 0xd0, 0xb1, 0x6c, 0x37, 0x2a, - 0x4e, 0x70, 0x04, 0x95, 0xba, 0x65, 0xbb, 0x1a, 0xf9, 0xd1, 0x83, 0x79, 0x63, 0xa7, 0xdd, 0x6e, - 0xa0, 0xfb, 0x5d, 0x7f, 0xda, 0xe6, 0xbf, 0x7b, 0xc6, 0xa2, 0xb5, 0xb1, 0xe1, 0x20, 0xb2, 0x68, - 0x90, 0xd3, 0xe8, 0x9b, 0x72, 0x1c, 0x72, 0x6d, 0x63, 0xdb, 0x20, 0x13, 0x8d, 0x9c, 0x46, 0x5e, - 0x94, 0x1b, 0xa1, 0x10, 0xce, 0x71, 0x08, 0xa3, 0xa7, 0xf2, 0xb8, 0x69, 0xee, 0x4b, 0xf7, 0x74, - 0xe6, 0x22, 0xda, 0x73, 0x4e, 0x8d, 0xe1, 0xef, 0xf8, 0x99, 0x77, 0xc3, 0x14, 0xd9, 0xef, 0x20, - 0x12, 0x8f, 0x9e, 0xc1, 0xda, 0xa8, 0x69, 0xd9, 0x2d, 0x5f, 0x36, 0xd1, 0x13, 0x0c, 0x9a, 0x2f, - 0xd9, 0x2e, 0x45, 0xcf, 0xc2, 0x47, 0xe0, 0x02, 0x91, 0xf7, 0xba, 0x4d, 0xaf, 0xe8, 0xf3, 0x86, - 0xbb, 0xb5, 0x82, 0x5c, 0x5d, 0xfd, 0x3b, 0xb9, 0xa7, 0xc6, 0x4d, 0xfe, 0x7f, 0x1a, 0xd7, 0x47, - 0xe3, 0x48, 0x98, 0x00, 0x77, 0xc7, 0x36, 0x3d, 0x39, 0xd2, 0xc0, 0x5c, 0x4c, 0x8a, 0x72, 0x3b, - 0x5c, 0x11, 0xbe, 0xf9, 0x4b, 0xa5, 0xf3, 0x74, 0xda, 0x3a, 0x81, 0xb3, 0x47, 0x67, 0x50, 0x56, - 0xe1, 0x5a, 0xf2, 0x71, 0xa9, 0xb1, 0xb2, 0xbc, 0x64, 0x6c, 0x6e, 0xb5, 0x8d, 0xcd, 0x2d, 0xd7, - 0xa9, 0x98, 0x8e, 0x8b, 0xf4, 0x56, 0x6d, 0x43, 0x23, 0x11, 0xbe, 0x01, 0xd3, 0x11, 0xc9, 0xca, - 0x7b, 0x0e, 0x89, 0x8d, 0x6e, 0xac, 0xa6, 0x44, 0xb4, 0x94, 0x27, 0x7a, 0x2d, 0xc5, 0xd9, 0x69, - 0x07, 0x98, 0x5e, 0xd5, 0x85, 0x69, 0xa8, 0xea, 0x3b, 0x6d, 0xdc, 0x5c, 0x70, 0xe6, 0xa4, 0xe3, - 0x5c, 0x0c, 0x27, 0xe9, 0x37, 0x9b, 0xff, 0x27, 0x0f, 0xb9, 0x45, 0x5b, 0xef, 0x6c, 0xa9, 0xcf, - 0x61, 0xfa, 0xe7, 0x61, 0xb5, 0x89, 0x40, 0x3b, 0xa5, 0x7e, 0xda, 0x29, 0xf7, 0xd1, 0xce, 0x2c, - 0xa3, 0x9d, 0xd1, 0x8b, 0xca, 0x67, 0x60, 0xaa, 0x69, 0xb5, 0xdb, 0xa8, 0xe9, 0xc9, 0xa3, 0xd2, - 0xc2, 0xab, 0x39, 0x13, 0x1a, 0x97, 0x86, 0x03, 0xee, 0x21, 0xb7, 0x4e, 0xd6, 0xd0, 0x89, 0xd2, - 0x87, 0x09, 0xea, 0xcb, 0x25, 0xc8, 0x96, 0x5b, 0x9b, 0x88, 0x5b, 0x67, 0xcf, 0x30, 0xeb, 0xec, - 0x27, 0x21, 0xef, 0xea, 0xf6, 0x26, 0x72, 0xfd, 0x75, 0x02, 0xf2, 0x16, 0xc4, 0x01, 0x94, 0x99, - 0x38, 0x80, 0x4f, 0x82, 0xac, 0x27, 0x33, 0x1a, 0x61, 0xe7, 0xda, 0x5e, 0xf0, 0x63, 0xd9, 0xcf, - 0x7a, 0x25, 0xce, 0x7a, 0xb5, 0xd6, 0xf0, 0x0f, 0xdd, 0x58, 0xe7, 0xf6, 0x61, 0x8d, 0x2f, 0x2b, - 0x6a, 0x5a, 0x66, 0x65, 0x5b, 0xdf, 0x44, 0xb4, 0x9a, 0x61, 0x82, 0xff, 0xb5, 0xbc, 0x6d, 0xdd, - 0x67, 0xd0, 0x90, 0x7c, 0x61, 0x82, 0x57, 0x85, 0x2d, 0xa3, 0xd5, 0x42, 0x26, 0x6d, 0xd9, 0xf4, - 0xed, 0xcc, 0x69, 0xc8, 0x7a, 0x3c, 0x78, 0xfa, 0xe3, 0x19, 0x0b, 0x85, 0x23, 0xca, 0x94, 0xd7, - 0xac, 0x48, 0xe3, 0x2d, 0x64, 0xf8, 0x35, 0x55, 0x11, 0xb7, 0x1d, 0x52, 0xb9, 0xde, 0x8d, 0xeb, - 0xb1, 0x90, 0x33, 0xad, 0x16, 0xea, 0x3b, 0x08, 0x91, 0x5c, 0xca, 0x13, 0x20, 0x87, 0x5a, 0x5e, - 0xaf, 0x20, 0xe3, 0xec, 0xa7, 0xe3, 0x65, 0xa9, 0x91, 0xcc, 0xc9, 0x7c, 0x83, 0x7a, 0x71, 0x9b, - 0x7e, 0x03, 0xfc, 0xe5, 0x31, 0x38, 0x4a, 0xfa, 0x80, 0xfa, 0xce, 0x05, 0x8f, 0xd4, 0x05, 0xa4, - 0x3e, 0xd4, 0x7b, 0xe0, 0x3a, 0xca, 0x2b, 0xfb, 0x71, 0xc8, 0x39, 0x3b, 0x17, 0x02, 0x23, 0x94, - 0xbc, 0xb0, 0x4d, 0x57, 0x1a, 0xca, 0x70, 0x26, 0x0f, 0x3a, 0x9c, 0x71, 0x43, 0x93, 0xec, 0x37, - 0xfe, 0x70, 0x20, 0xcb, 0xe3, 0x64, 0x7f, 0x20, 0xeb, 0x35, 0x0c, 0x9d, 0x82, 0x31, 0x7d, 0xc3, - 0x45, 0x76, 0x68, 0x26, 0xd2, 0x57, 0x6f, 0xa8, 0xbc, 0x80, 0x36, 0x2c, 0xdb, 0x13, 0xcb, 0x04, - 0x19, 0x2a, 0xfd, 0x77, 0xa6, 0xe5, 0x02, 0xb7, 0x43, 0x76, 0x13, 0x1c, 0x33, 0xad, 0x79, 0xd4, - 0xa1, 0x72, 0x26, 0x28, 0x4e, 0xe3, 0x16, 0xb0, 0xff, 0xc3, 0xbe, 0xae, 0x64, 0x66, 0x7f, 0x57, - 0xa2, 0x7e, 0x2e, 0xe9, 0x9c, 0xb9, 0x0b, 0xe8, 0xa1, 0x59, 0x68, 0xca, 0x53, 0x60, 0xaa, 0x45, - 0x5d, 0xb4, 0x9a, 0x46, 0xd0, 0x4a, 0x22, 0xff, 0xe3, 0x32, 0x87, 0x8a, 0x94, 0x65, 0x15, 0x69, - 0x11, 0xc6, 0xf1, 0x81, 0x1c, 0x4f, 0x93, 0x72, 0x5d, 0xf1, 0x0a, 0xf1, 0xb4, 0x2e, 0xa8, 0x14, - 0x23, 0xb6, 0xd9, 0x12, 0xfd, 0x45, 0x0b, 0x7e, 0x4e, 0x36, 0xfb, 0x8e, 0x97, 0x50, 0xfa, 0xcd, - 0xf1, 0xb7, 0xf3, 0x70, 0x45, 0xc9, 0xb6, 0x1c, 0x07, 0x47, 0xa1, 0xe8, 0x6e, 0x98, 0x6f, 0x96, - 0xb8, 0x88, 0xc0, 0x0f, 0xeb, 0xe6, 0xd7, 0xab, 0x41, 0x8d, 0xae, 0x69, 0x7c, 0x4b, 0xf8, 0x28, - 0x73, 0xb0, 0xff, 0x10, 0x21, 0xf4, 0x9f, 0x8c, 0x46, 0xf2, 0x9e, 0x8c, 0xc8, 0xe9, 0xea, 0x84, - 0xb2, 0x4a, 0xbf, 0xb9, 0x7c, 0x55, 0x82, 0x2b, 0xbb, 0xb9, 0x59, 0x33, 0x9d, 0xa0, 0xc1, 0x5c, - 0xdd, 0xa7, 0xbd, 0xf0, 0xa7, 0x71, 0x63, 0xef, 0xe2, 0x89, 0xa8, 0x3b, 0x53, 0x5a, 0xc4, 0x62, - 0xc9, 0xfb, 0x32, 0x22, 0x77, 0xf1, 0x24, 0x26, 0x9f, 0xbe, 0x70, 0x3f, 0x9f, 0x85, 0xa3, 0x8b, - 0xb6, 0xb5, 0xd3, 0x71, 0xc2, 0x1e, 0xe8, 0xaf, 0x7b, 0x6f, 0xb8, 0xe6, 0x45, 0x4c, 0x83, 0x6b, - 0x60, 0xd2, 0xa6, 0xd6, 0x5c, 0xb8, 0xfd, 0xca, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x90, 0xde, 0x2b, - 0xec, 0x67, 0xb2, 0x5c, 0x3f, 0xd3, 0xdd, 0x73, 0xe4, 0x7a, 0xf4, 0x1c, 0x7f, 0x25, 0x25, 0x1c, - 0x54, 0xbb, 0x44, 0x14, 0xd1, 0x5f, 0x94, 0x20, 0xbf, 0x89, 0x33, 0xd2, 0xee, 0xe2, 0x31, 0x62, - 0x35, 0xc3, 0xc4, 0x35, 0xfa, 0x6b, 0x28, 0x57, 0x99, 0xd5, 0xe1, 0x44, 0x03, 0x5c, 0x3c, 0xb7, - 0xe9, 0x2b, 0xd5, 0x83, 0x59, 0x98, 0x0a, 0x4a, 0xaf, 0xb4, 0x1c, 0xf5, 0x45, 0xbd, 0x35, 0x6a, - 0x5a, 0x44, 0xa3, 0xf6, 0xad, 0x33, 0x07, 0xa3, 0x8e, 0xcc, 0x8c, 0x3a, 0x3d, 0x47, 0x97, 0xa9, - 0x88, 0xd1, 0x45, 0x7d, 0xb6, 0x2c, 0x1a, 0x53, 0x9f, 0xef, 0x5a, 0x71, 0x6d, 0x1e, 0xce, 0x83, - 0x85, 0x60, 0x64, 0xff, 0xfe, 0xb5, 0x4a, 0x5f, 0x49, 0x3e, 0x2c, 0xc1, 0xb1, 0xfd, 0x9d, 0xf9, - 0x23, 0x79, 0x2f, 0x34, 0xaf, 0x4e, 0x4e, 0xe0, 0x85, 0x86, 0xdf, 0xf8, 0x4d, 0xba, 0xd8, 0xa3, - 0xb1, 0x9c, 0xbd, 0xd7, 0xbf, 0x13, 0x17, 0x3b, 0xfc, 0x2a, 0x48, 0x34, 0x7d, 0x01, 0xfe, 0x9a, - 0x0c, 0x13, 0x75, 0xe4, 0x2e, 0xeb, 0x7b, 0xd6, 0x8e, 0xab, 0xea, 0xa2, 0xdb, 0x73, 0x4f, 0x86, - 0x7c, 0x1b, 0xff, 0x42, 0xaf, 0x2a, 0xbd, 0xa6, 0xe7, 0xfe, 0x16, 0xf6, 0xfd, 0x21, 0xa4, 0x35, - 0x9a, 0x9f, 0x3f, 0x93, 0x2c, 0xb2, 0x3b, 0x1a, 0x70, 0x37, 0x94, 0xad, 0x9d, 0x44, 0x7b, 0xa7, - 0x51, 0x45, 0xa7, 0x0f, 0xcb, 0x73, 0x65, 0x98, 0xae, 0x23, 0xb7, 0xe2, 0x2c, 0xe8, 0xbb, 0x96, - 0x6d, 0xb8, 0x88, 0xbd, 0xab, 0x28, 0x1e, 0x9a, 0xd3, 0x00, 0x46, 0xf0, 0x1b, 0x8d, 0x94, 0xc0, - 0xa4, 0xa8, 0xbf, 0x95, 0xd4, 0x51, 0x88, 0xe3, 0x63, 0x28, 0x20, 0x24, 0xf2, 0xb1, 0x88, 0x2b, - 0x3e, 0x7d, 0x20, 0xbe, 0x2c, 0x51, 0x20, 0x8a, 0x76, 0x73, 0xcb, 0xd8, 0x45, 0xad, 0x84, 0x40, - 0xf8, 0xbf, 0x85, 0x40, 0x04, 0x84, 0x12, 0xbb, 0xaf, 0x70, 0x7c, 0x0c, 0xc3, 0x7d, 0x25, 0x8e, - 0xe0, 0x48, 0x82, 0x1d, 0x78, 0x5d, 0x0f, 0x5d, 0xcf, 0xbc, 0x53, 0x54, 0xac, 0xa1, 0xc9, 0x26, - 0xb1, 0x26, 0xdb, 0x40, 0x1d, 0x0b, 0x29, 0xbb, 0x9f, 0x4e, 0x67, 0xd3, 0xe8, 0x58, 0x7a, 0x16, - 0x9d, 0xbe, 0xd0, 0xdf, 0x27, 0xc3, 0x89, 0xe0, 0x14, 0x70, 0x1d, 0xb9, 0xf3, 0xba, 0xb3, 0x75, - 0xc1, 0xd2, 0xed, 0x16, 0x7b, 0x85, 0xed, 0xc0, 0x27, 0xfe, 0xd4, 0x2f, 0xb1, 0x20, 0x54, 0x79, - 0x10, 0x7a, 0xba, 0x8a, 0xf6, 0xe4, 0x65, 0x18, 0x9d, 0x4c, 0xac, 0x37, 0xeb, 0xef, 0x04, 0x60, - 0x3d, 0x8d, 0x03, 0xeb, 0x8e, 0x41, 0x59, 0x4c, 0x1f, 0xb8, 0xdf, 0x24, 0x23, 0x02, 0xe3, 0xd5, - 0x7c, 0xaf, 0x28, 0x60, 0x11, 0x5e, 0xad, 0x72, 0xa4, 0x57, 0xeb, 0x40, 0x63, 0x44, 0x5f, 0x8f, - 0xe4, 0x74, 0xc7, 0x88, 0x43, 0xf4, 0x36, 0x7e, 0x97, 0x0c, 0x05, 0x1c, 0x06, 0x82, 0xf1, 0xf8, - 0x56, 0xef, 0x13, 0x45, 0x67, 0x9f, 0x77, 0xf9, 0x58, 0x52, 0xef, 0x72, 0xf5, 0x9d, 0x49, 0x7d, - 0xc8, 0xbb, 0xb9, 0x1d, 0x0a, 0x62, 0x89, 0x5c, 0xc4, 0xfb, 0x70, 0x90, 0x3e, 0x68, 0xff, 0x55, - 0x06, 0xf0, 0x1a, 0x34, 0x3d, 0xfb, 0xf0, 0x74, 0x51, 0xb8, 0xce, 0xb2, 0x7e, 0xf5, 0x1e, 0x50, - 0x27, 0xba, 0x80, 0x22, 0x14, 0xc3, 0x53, 0x15, 0x0f, 0x25, 0xf5, 0xad, 0x0c, 0xb9, 0x1a, 0x0a, - 0x2c, 0x89, 0xbc, 0x2d, 0x23, 0xcb, 0x4e, 0x1f, 0x90, 0xff, 0x2e, 0x41, 0xae, 0x61, 0xd5, 0x91, - 0x7b, 0x70, 0x53, 0x20, 0xf1, 0xb1, 0x7d, 0x5c, 0xee, 0x30, 0x8e, 0xed, 0xf7, 0x22, 0x94, 0xbe, - 0xe8, 0xde, 0x2b, 0xc1, 0x54, 0xc3, 0x2a, 0x05, 0x8b, 0x53, 0xe2, 0xbe, 0xaa, 0xe2, 0xf7, 0x02, - 0x06, 0x15, 0x0c, 0x8b, 0x39, 0xd0, 0xbd, 0x80, 0xfd, 0xe9, 0xa5, 0x2f, 0xb7, 0x5b, 0xe1, 0xe8, - 0x9a, 0xd9, 0xb2, 0x34, 0xd4, 0xb2, 0xe8, 0x4a, 0xb7, 0xa2, 0x40, 0x76, 0xc7, 0x6c, 0x59, 0x98, - 0xe5, 0x9c, 0x86, 0x9f, 0xbd, 0x34, 0x1b, 0xb5, 0x2c, 0xea, 0x1b, 0x80, 0x9f, 0xd5, 0x6f, 0xc9, - 0x90, 0xf5, 0xfe, 0x15, 0x17, 0xf5, 0xbb, 0xe4, 0x84, 0x81, 0x08, 0x3c, 0xf2, 0x43, 0xb1, 0x84, - 0xee, 0x64, 0xd6, 0xfe, 0x89, 0x07, 0xeb, 0xb5, 0x51, 0xe5, 0x31, 0xa2, 0x08, 0xd7, 0xfc, 0x95, - 0x53, 0x30, 0x76, 0xa1, 0x6d, 0x35, 0x2f, 0x86, 0xe7, 0xe5, 0xe9, 0xab, 0x72, 0x23, 0xe4, 0x6c, - 0xdd, 0xdc, 0x44, 0x74, 0x4f, 0xe1, 0x78, 0x57, 0x5f, 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x45, 0x7d, - 0x67, 0x92, 0x10, 0x08, 0x3d, 0x2a, 0x9f, 0x4c, 0x1f, 0xe6, 0x07, 0x38, 0x59, 0x56, 0x80, 0xa9, - 0x52, 0x91, 0xdc, 0xc0, 0xb9, 0x52, 0x3b, 0x57, 0x2e, 0xc8, 0x18, 0x66, 0x4f, 0x26, 0x29, 0xc2, - 0xec, 0x91, 0xff, 0x89, 0x85, 0xb9, 0x47, 0xe5, 0x0f, 0x03, 0xe6, 0xcf, 0x48, 0x30, 0xbd, 0x6c, - 0x38, 0x6e, 0x94, 0xb7, 0x7f, 0x4c, 0x14, 0xb8, 0x17, 0x27, 0x35, 0x95, 0xb9, 0x72, 0x84, 0xc3, - 0xbf, 0x25, 0x32, 0x87, 0xe3, 0x8a, 0x18, 0xcd, 0xb1, 0x14, 0xcc, 0x01, 0xb9, 0x35, 0x4f, 0x58, - 0x92, 0x89, 0x0d, 0xa5, 0xb0, 0x90, 0xd1, 0x1b, 0x4a, 0x91, 0x65, 0xa7, 0x2f, 0xdf, 0x6f, 0x49, - 0x70, 0xcc, 0x2b, 0x3e, 0x6e, 0x59, 0x2a, 0x5a, 0xcc, 0x7d, 0x97, 0xa5, 0x12, 0xaf, 0x8c, 0xef, - 0xe3, 0x65, 0x18, 0x2b, 0xe3, 0xfd, 0x88, 0x8e, 0x58, 0xcc, 0x11, 0xcb, 0xb0, 0xfd, 0xc4, 0x1c, - 0xb3, 0x0c, 0x3b, 0xb8, 0x98, 0xe3, 0x97, 0x62, 0x07, 0x14, 0xf3, 0xa1, 0x2d, 0xb0, 0xbe, 0x51, - 0x0e, 0xc4, 0x1c, 0xb9, 0xb6, 0x11, 0x23, 0xe6, 0xc4, 0x27, 0x76, 0xd5, 0x77, 0x0f, 0x28, 0xf8, - 0x21, 0xaf, 0x6f, 0x0c, 0x02, 0xd3, 0x21, 0xae, 0x71, 0xbc, 0x42, 0x86, 0x19, 0xca, 0x45, 0xef, - 0x29, 0x73, 0x0c, 0x46, 0x89, 0xa7, 0xcc, 0x89, 0xcf, 0x00, 0xf1, 0x9c, 0x8d, 0xfe, 0x0c, 0x50, - 0x6c, 0xf9, 0xe9, 0x83, 0xf3, 0xed, 0x2c, 0x9c, 0xf4, 0x58, 0x58, 0xb1, 0x5a, 0xc6, 0xc6, 0x1e, - 0xe1, 0xe2, 0x9c, 0xde, 0xde, 0x41, 0x8e, 0xfa, 0x01, 0x49, 0x14, 0xa5, 0xff, 0x04, 0x60, 0x75, - 0x90, 0x4d, 0x02, 0xa9, 0x51, 0xa0, 0x6e, 0x8f, 0xaa, 0xec, 0xfe, 0x92, 0x82, 0xa0, 0xe8, 0x35, - 0x9f, 0x88, 0xc6, 0xd0, 0xf3, 0xac, 0xc2, 0x89, 0xe0, 0x4b, 0xb7, 0x83, 0x47, 0x66, 0xbf, 0x83, - 0xc7, 0x0d, 0x20, 0xeb, 0xad, 0x56, 0x00, 0x55, 0xf7, 0x66, 0x36, 0x2e, 0x53, 0xf3, 0xb2, 0x78, - 0x39, 0x1d, 0x14, 0x1e, 0xcd, 0x8b, 0xc8, 0xe9, 0x20, 0x57, 0x99, 0x85, 0x3c, 0xb9, 0x41, 0x30, - 0x58, 0xd1, 0xef, 0x9d, 0x99, 0xe6, 0xe2, 0x4d, 0xbb, 0x1a, 0xaf, 0x86, 0xb7, 0x26, 0x92, 0x4c, - 0xaf, 0x7e, 0x3a, 0xb4, 0x93, 0x35, 0x4e, 0xc1, 0x9e, 0x3a, 0x30, 0xe5, 0xd1, 0xec, 0x86, 0x15, - 0x3b, 0x9d, 0xf6, 0x5e, 0x83, 0x06, 0x5f, 0x49, 0xb4, 0x1b, 0xc6, 0xc4, 0x70, 0x91, 0xba, 0x63, - 0xb8, 0x24, 0xdf, 0x0d, 0xe3, 0xf8, 0x18, 0xc6, 0x6e, 0x58, 0x1c, 0xc1, 0x11, 0xac, 0x47, 0xe6, - 0x88, 0xd5, 0x4c, 0x63, 0xd4, 0xbe, 0xa5, 0xf7, 0x21, 0x34, 0xe0, 0x9d, 0x5d, 0x7a, 0x85, 0xaf, - 0x8d, 0x8d, 0xcd, 0xad, 0x3c, 0x01, 0xf2, 0x1b, 0x96, 0xbd, 0xad, 0xfb, 0x1b, 0xf7, 0xdd, 0x27, - 0x45, 0x68, 0x5c, 0xd8, 0x05, 0x9c, 0x47, 0xa3, 0x79, 0xbd, 0xf9, 0xc8, 0xb3, 0x8c, 0x0e, 0x8d, - 0xba, 0xe8, 0x3d, 0x2a, 0xd7, 0xc1, 0x34, 0x0d, 0xbe, 0x58, 0x45, 0x8e, 0x8b, 0x5a, 0x34, 0x62, - 0x05, 0x9f, 0xa8, 0x9c, 0x81, 0x29, 0x9a, 0xb0, 0x60, 0xb4, 0x91, 0x43, 0x83, 0x56, 0x70, 0x69, - 0xca, 0x49, 0xc8, 0x1b, 0xce, 0xdd, 0x8e, 0x65, 0x62, 0xff, 0xff, 0x71, 0x8d, 0xbe, 0x29, 0x37, - 0xc0, 0x51, 0x9a, 0x2f, 0x30, 0x56, 0xc9, 0x81, 0x9d, 0xee, 0x64, 0xf5, 0x0b, 0x83, 0x4c, 0x1c, - 0x12, 0xc7, 0xe3, 0xf5, 0x50, 0xd8, 0x69, 0x36, 0x11, 0x6a, 0xd1, 0x93, 0x4d, 0xfe, 0x6b, 0xc2, - 0x48, 0xbd, 0x89, 0xa7, 0x19, 0x87, 0x14, 0xaa, 0xf7, 0x63, 0x27, 0x20, 0x4f, 0xae, 0xbd, 0x50, - 0x5f, 0x36, 0xd3, 0x53, 0x19, 0x67, 0x78, 0x65, 0x5c, 0x83, 0x29, 0xd3, 0xf2, 0x8a, 0x5b, 0xd5, - 0x6d, 0x7d, 0xdb, 0x89, 0x5b, 0x45, 0x24, 0x74, 0x83, 0x21, 0xa3, 0xca, 0xfc, 0xb6, 0x74, 0x44, - 0xe3, 0xc8, 0x28, 0xff, 0x3f, 0x38, 0x7a, 0x81, 0x46, 0x00, 0x70, 0x28, 0x65, 0x29, 0xda, 0xc7, - 0xae, 0x8b, 0xf2, 0x1c, 0xff, 0xe7, 0xd2, 0x11, 0xad, 0x9b, 0x98, 0xf2, 0xb3, 0x30, 0xe3, 0xbd, - 0xb6, 0xac, 0x4b, 0x3e, 0xe3, 0x72, 0xb4, 0xa1, 0xd1, 0x45, 0x7e, 0x85, 0xfb, 0x71, 0xe9, 0x88, - 0xd6, 0x45, 0x4a, 0xa9, 0x01, 0x6c, 0xb9, 0xdb, 0x6d, 0x4a, 0x38, 0x1b, 0xad, 0x92, 0x5d, 0x84, - 0x97, 0x82, 0x9f, 0x96, 0x8e, 0x68, 0x0c, 0x09, 0x65, 0x19, 0x26, 0xdc, 0xfb, 0x5d, 0x4a, 0x2f, - 0x17, 0xbd, 0xb9, 0xdd, 0x45, 0xaf, 0xe1, 0xff, 0xb3, 0x74, 0x44, 0x0b, 0x09, 0x28, 0x15, 0x18, - 0xef, 0x5c, 0xa0, 0xc4, 0xf2, 0x3d, 0xae, 0xfa, 0xef, 0x4d, 0x6c, 0xf5, 0x42, 0x40, 0x2b, 0xf8, - 0xdd, 0x63, 0xac, 0xe9, 0xec, 0x52, 0x5a, 0x63, 0xc2, 0x8c, 0x95, 0xfc, 0x7f, 0x3c, 0xc6, 0x02, - 0x02, 0x4a, 0x05, 0x26, 0x1c, 0x53, 0xef, 0x38, 0x5b, 0x96, 0xeb, 0x9c, 0x1a, 0xef, 0xf2, 0x83, - 0x8c, 0xa6, 0x56, 0xa7, 0xff, 0x68, 0xe1, 0xdf, 0xca, 0x13, 0xe0, 0xc4, 0x0e, 0xbe, 0x3e, 0xb4, - 0x7c, 0xbf, 0xe1, 0xb8, 0x86, 0xb9, 0xe9, 0xc7, 0x90, 0x25, 0xbd, 0x49, 0xef, 0x8f, 0xca, 0x2c, - 0x3d, 0x11, 0x05, 0xb8, 0x6d, 0xaa, 0xdd, 0x9b, 0x71, 0xa4, 0x58, 0xe6, 0x20, 0xd4, 0x53, 0x20, - 0xeb, 0x7d, 0xc2, 0x67, 0x36, 0x67, 0x7a, 0x2f, 0xf4, 0x75, 0xeb, 0x0e, 0x6e, 0xc0, 0xde, 0x4f, - 0xde, 0xd8, 0x68, 0x5a, 0xab, 0xb6, 0xb5, 0x69, 0x23, 0xc7, 0xa1, 0x0e, 0x87, 0x4c, 0x8a, 0xd7, - 0xc0, 0x0d, 0x67, 0xc5, 0xd8, 0x24, 0xd6, 0x13, 0xf5, 0x77, 0x67, 0x93, 0xc8, 0x6c, 0xb3, 0x8a, - 0x2e, 0x61, 0x87, 0x60, 0x7c, 0xfe, 0x06, 0xcf, 0x36, 0xfd, 0x14, 0xf5, 0x7a, 0x98, 0x62, 0x1b, - 0x19, 0xb9, 0x3b, 0xcb, 0x08, 0x6d, 0x2f, 0xfa, 0xa6, 0x5e, 0x07, 0x33, 0xbc, 0x4e, 0x33, 0x43, - 0x8c, 0xec, 0x77, 0x85, 0xea, 0xb5, 0x70, 0xb4, 0xab, 0x61, 0xf9, 0x31, 0x45, 0x32, 0x61, 0x4c, - 0x91, 0x6b, 0x00, 0x42, 0x2d, 0xee, 0x49, 0xe6, 0x6a, 0x98, 0x08, 0xf4, 0xb2, 0x67, 0x86, 0x6f, - 0x64, 0x60, 0xdc, 0x57, 0xb6, 0x5e, 0x19, 0xbc, 0xf1, 0xc5, 0x64, 0x36, 0x10, 0xe8, 0x34, 0x9b, - 0x4b, 0xf3, 0xc6, 0x91, 0xd0, 0x6d, 0xb7, 0x61, 0xb8, 0x6d, 0xff, 0xe8, 0x5b, 0x77, 0xb2, 0xb2, - 0x0a, 0x60, 0x60, 0x8c, 0x1a, 0xe1, 0x59, 0xb8, 0x9b, 0x13, 0xb4, 0x07, 0xa2, 0x0f, 0x0c, 0x8d, - 0x33, 0x8f, 0xa4, 0x07, 0xd5, 0x26, 0x20, 0x57, 0x5f, 0x2d, 0x96, 0xca, 0x85, 0x23, 0xca, 0x0c, - 0x40, 0xf9, 0xe9, 0xab, 0x65, 0xad, 0x52, 0xae, 0x96, 0xca, 0x85, 0x8c, 0xfa, 0x4a, 0x09, 0x26, - 0x82, 0x46, 0xd0, 0xb3, 0x92, 0x65, 0xaa, 0x5a, 0x7d, 0xaf, 0x27, 0xda, 0xdf, 0xa8, 0x58, 0x25, - 0x7b, 0x32, 0x5c, 0xbe, 0xe3, 0xa0, 0x05, 0xc3, 0x76, 0x5c, 0xcd, 0xba, 0xb4, 0x60, 0xd9, 0x41, - 0xd4, 0x64, 0xff, 0x1a, 0xfe, 0x88, 0xcf, 0x9e, 0x45, 0xd1, 0x42, 0xf8, 0x50, 0x14, 0xb2, 0xe9, - 0xca, 0x70, 0x98, 0xe0, 0xd1, 0x75, 0xc9, 0xbd, 0xf7, 0x0e, 0xd2, 0xac, 0x4b, 0x4e, 0xd1, 0x6c, - 0x95, 0xac, 0xf6, 0xce, 0xb6, 0xe9, 0x50, 0x9b, 0x20, 0xea, 0xb3, 0x27, 0x1d, 0x7c, 0xf9, 0xd8, - 0x0c, 0x40, 0xa9, 0xb6, 0xbc, 0x5c, 0x2e, 0x35, 0x2a, 0xb5, 0x6a, 0xe1, 0x88, 0x27, 0xad, 0x46, - 0x71, 0x6e, 0xd9, 0x93, 0xce, 0x33, 0x60, 0xdc, 0x6f, 0xd3, 0x34, 0x0c, 0x4a, 0xc6, 0x0f, 0x83, - 0xa2, 0x14, 0x61, 0xdc, 0x6f, 0xe5, 0x74, 0x44, 0x78, 0x54, 0xf7, 0xb1, 0xd7, 0x6d, 0xdd, 0x76, - 0xb1, 0xbf, 0xb4, 0x4f, 0x64, 0x4e, 0x77, 0x90, 0x16, 0xfc, 0x76, 0xe6, 0xb1, 0x94, 0x03, 0x05, - 0x66, 0x8a, 0xcb, 0xcb, 0xeb, 0x35, 0x6d, 0xbd, 0x5a, 0x6b, 0x2c, 0x55, 0xaa, 0x8b, 0x64, 0x84, - 0xac, 0x2c, 0x56, 0x6b, 0x5a, 0x99, 0x0c, 0x90, 0xf5, 0x42, 0x86, 0x5c, 0x7e, 0x37, 0x37, 0x0e, - 0xf9, 0x0e, 0x96, 0xae, 0xfa, 0x55, 0x39, 0xe1, 0x79, 0xf7, 0x00, 0xa7, 0x88, 0xeb, 0xb9, 0x38, - 0x9f, 0x73, 0xa9, 0xc7, 0x99, 0xd0, 0x33, 0x30, 0x45, 0x6c, 0x39, 0x07, 0x2f, 0xdf, 0xd3, 0x1b, - 0x6e, 0xb9, 0x34, 0xf5, 0x13, 0x52, 0x82, 0x43, 0xf0, 0x3d, 0x39, 0x4a, 0x66, 0x5c, 0xfc, 0xf9, - 0x20, 0x97, 0xdd, 0x29, 0x30, 0x53, 0xa9, 0x36, 0xca, 0x5a, 0xb5, 0xb8, 0x4c, 0xb3, 0xc8, 0xca, - 0x29, 0x38, 0x5e, 0xad, 0xd1, 0x98, 0x7e, 0x75, 0x7c, 0xad, 0xf6, 0xca, 0x6a, 0x4d, 0x6b, 0x14, - 0x72, 0xca, 0x49, 0x50, 0xc8, 0x33, 0x77, 0x2b, 0x7d, 0x5e, 0x79, 0x34, 0x5c, 0xbb, 0x5c, 0x59, - 0xa9, 0x34, 0xd6, 0x6b, 0x0b, 0xeb, 0x5a, 0xed, 0x7c, 0xdd, 0x43, 0x50, 0x2b, 0x2f, 0x17, 0x3d, - 0x45, 0x62, 0x2e, 0xc1, 0x1b, 0x53, 0x2e, 0x83, 0xa3, 0xf8, 0x82, 0x4b, 0x7c, 0xb3, 0x3d, 0x29, - 0x6f, 0x5c, 0xb9, 0x0a, 0x4e, 0x55, 0xaa, 0xf5, 0xb5, 0x85, 0x85, 0x4a, 0xa9, 0x52, 0xae, 0x36, - 0xd6, 0x57, 0xcb, 0xda, 0x4a, 0xa5, 0x5e, 0xf7, 0xfe, 0x2d, 0x4c, 0xe0, 0x2b, 0xc6, 0x48, 0x9f, - 0xa9, 0xbe, 0x5f, 0x86, 0xe9, 0x73, 0x7a, 0xdb, 0xf0, 0x06, 0x0a, 0x7c, 0xf7, 0x60, 0xd7, 0x71, - 0x11, 0x17, 0xdf, 0x51, 0x48, 0x1d, 0xce, 0xf1, 0x8b, 0xfa, 0x8b, 0x72, 0xc2, 0xe3, 0x22, 0x14, - 0x08, 0x52, 0xe2, 0x2c, 0x57, 0x5a, 0xc4, 0xe4, 0xe6, 0xf5, 0x52, 0x82, 0xe3, 0x22, 0xe2, 0xe4, - 0x93, 0x81, 0xff, 0xaa, 0x61, 0x81, 0x5f, 0x80, 0xa9, 0xb5, 0x6a, 0x71, 0xad, 0xb1, 0x54, 0xd3, - 0x2a, 0x3f, 0x83, 0xa3, 0x8d, 0x4f, 0xc3, 0xc4, 0x42, 0x4d, 0x9b, 0xab, 0xcc, 0xcf, 0x97, 0xab, - 0x85, 0x9c, 0x72, 0x39, 0x5c, 0x56, 0x2f, 0x6b, 0xe7, 0x2a, 0xa5, 0xf2, 0xfa, 0x5a, 0xb5, 0x78, - 0xae, 0x58, 0x59, 0xc6, 0x7d, 0x44, 0x3e, 0xe6, 0xde, 0xc4, 0x31, 0xf5, 0xe7, 0xb3, 0x00, 0xa4, - 0xea, 0x9e, 0x25, 0xcd, 0xde, 0xae, 0xf7, 0x17, 0x49, 0x27, 0x0d, 0x21, 0x99, 0x88, 0xf6, 0x5b, - 0x81, 0x71, 0x9b, 0x7e, 0xa0, 0xcb, 0x27, 0xfd, 0xe8, 0x90, 0x47, 0x9f, 0x9a, 0x16, 0xfc, 0xae, - 0x7e, 0x20, 0xc9, 0x1c, 0x21, 0x92, 0xb1, 0x64, 0x48, 0x2e, 0x0c, 0x07, 0x48, 0xf5, 0x45, 0x19, - 0x98, 0xe1, 0x2b, 0xe6, 0x55, 0x02, 0x1b, 0x53, 0x62, 0x95, 0xe0, 0x7f, 0x66, 0x8c, 0xac, 0x33, - 0x8f, 0xa7, 0xc3, 0x29, 0xf8, 0x2d, 0x93, 0x9c, 0xfc, 0xf6, 0x2d, 0x96, 0x42, 0xc6, 0x63, 0xde, - 0x33, 0x3a, 0xc8, 0xd5, 0xea, 0x8d, 0xfb, 0xdd, 0x82, 0xac, 0x7e, 0x43, 0x86, 0x69, 0xee, 0xfa, - 0x3e, 0xf5, 0xf5, 0x19, 0x91, 0xab, 0xb5, 0x98, 0x8b, 0x01, 0x33, 0x07, 0xbd, 0x18, 0xf0, 0xcc, - 0x59, 0x18, 0xa3, 0x69, 0x58, 0xbe, 0xb5, 0xaa, 0x67, 0x0a, 0x1c, 0x85, 0xc9, 0xc5, 0x72, 0x63, - 0xbd, 0xde, 0x28, 0x6a, 0x8d, 0xf2, 0x7c, 0x21, 0xe3, 0x0d, 0x7c, 0xe5, 0x95, 0xd5, 0xc6, 0xbd, - 0x05, 0x29, 0xb9, 0x07, 0x5e, 0x37, 0x23, 0x23, 0xf6, 0xc0, 0x8b, 0x2b, 0x3e, 0xfd, 0xb9, 0xea, - 0xe7, 0x64, 0x28, 0x10, 0x0e, 0xca, 0xf7, 0x77, 0x90, 0x6d, 0x20, 0xb3, 0x89, 0xd4, 0x8b, 0x22, - 0x11, 0x3f, 0xf7, 0xc5, 0xc2, 0xc3, 0xfd, 0x39, 0x63, 0x25, 0x92, 0x97, 0x2e, 0x03, 0x3b, 0xbb, - 0xcf, 0xc0, 0xfe, 0x6c, 0x52, 0x17, 0xbc, 0x6e, 0x76, 0x87, 0x02, 0xd9, 0xa7, 0x93, 0xb8, 0xe0, - 0xf5, 0xe1, 0x60, 0x24, 0x81, 0x7c, 0x23, 0xc6, 0xdf, 0x82, 0xac, 0xbe, 0x50, 0x86, 0xa3, 0xf3, - 0xba, 0x8b, 0xe6, 0xf6, 0x1a, 0xc6, 0x36, 0x72, 0x5c, 0x7d, 0xbb, 0x13, 0x71, 0x25, 0x5e, 0x66, - 0xdf, 0x95, 0x78, 0xae, 0xff, 0x07, 0xe6, 0x54, 0xd6, 0xc2, 0x04, 0xf5, 0x3d, 0x49, 0x0f, 0xed, - 0x75, 0xf1, 0x30, 0xb4, 0x68, 0xbb, 0xc9, 0x0e, 0xe3, 0xc5, 0x73, 0x31, 0x82, 0x1b, 0x6a, 0x27, - 0xa0, 0x40, 0x58, 0x61, 0xbc, 0xcc, 0x7e, 0x8d, 0xde, 0x22, 0xb9, 0x9e, 0x20, 0xa8, 0x9f, 0x1f, - 0x26, 0x41, 0xe2, 0xc3, 0x24, 0x70, 0x8b, 0x96, 0x72, 0xb7, 0x67, 0x40, 0xd2, 0xce, 0x90, 0x71, - 0x29, 0x8b, 0x8e, 0xa3, 0x9a, 0x5e, 0x67, 0x18, 0x5b, 0xfc, 0x68, 0x6e, 0x3a, 0xa3, 0x77, 0x19, - 0x96, 0x45, 0x91, 0x89, 0xbf, 0xd0, 0x31, 0xa9, 0x7f, 0x31, 0xe7, 0xd2, 0x17, 0x73, 0xcb, 0x61, - 0x7a, 0xfe, 0xc5, 0xfd, 0x38, 0x48, 0x1f, 0x85, 0x1f, 0x49, 0x90, 0xad, 0x5b, 0xb6, 0x3b, 0x2c, - 0x0c, 0x92, 0xee, 0x89, 0x32, 0x12, 0xa8, 0x47, 0xcf, 0x39, 0xd3, 0xdb, 0x13, 0x8d, 0x2f, 0x7f, - 0x04, 0x71, 0x11, 0x8f, 0xc2, 0x0c, 0xe1, 0x24, 0xb8, 0x34, 0xe4, 0xdf, 0x24, 0xd2, 0x5f, 0xdd, - 0x23, 0x8a, 0xc8, 0x19, 0x98, 0x62, 0xf6, 0x24, 0x83, 0x0b, 0xb3, 0xd9, 0x34, 0xf5, 0xcd, 0x2c, - 0x2e, 0xf3, 0x3c, 0x2e, 0xbd, 0x66, 0xdc, 0xc1, 0xbd, 0x1b, 0xc3, 0xea, 0x99, 0x92, 0x84, 0x58, - 0x8c, 0x29, 0x3c, 0x7d, 0x44, 0x1e, 0x90, 0x21, 0x4f, 0x7d, 0xc2, 0x86, 0x8a, 0x40, 0xd2, 0x96, - 0x11, 0x08, 0x41, 0xcc, 0x77, 0x4c, 0x1e, 0x76, 0xcb, 0x88, 0x2f, 0x3f, 0x7d, 0x1c, 0xfe, 0x9d, - 0x3a, 0x3b, 0x16, 0x77, 0x75, 0xa3, 0xad, 0x5f, 0x68, 0x27, 0x08, 0x6d, 0xfc, 0x89, 0x84, 0xc7, - 0xbb, 0x82, 0xaa, 0x72, 0xe5, 0x45, 0x48, 0xfc, 0xa7, 0x61, 0xc2, 0x0e, 0x96, 0x24, 0xfd, 0xd3, - 0xef, 0x5d, 0x8e, 0xa6, 0xf4, 0xbb, 0x16, 0xe6, 0x4c, 0x74, 0x96, 0x4b, 0x88, 0x9f, 0x91, 0x9c, - 0x3d, 0x99, 0x2c, 0xb6, 0x5a, 0x0b, 0x48, 0x77, 0x77, 0x6c, 0xd4, 0x4a, 0x34, 0x44, 0xf0, 0x22, - 0x9a, 0x60, 0x25, 0xc1, 0x05, 0x17, 0x5c, 0xe6, 0xd1, 0x79, 0x62, 0x9f, 0xde, 0xc0, 0xe7, 0x65, - 0x28, 0x5d, 0xd2, 0xdb, 0x03, 0x48, 0x6a, 0x1c, 0x24, 0x4f, 0x19, 0x8c, 0x89, 0xf4, 0x01, 0xf9, - 0x0d, 0x19, 0x66, 0x88, 0x9d, 0x30, 0x6c, 0x4c, 0x7e, 0x2f, 0xa1, 0x0f, 0x09, 0x73, 0x2d, 0x13, - 0xcb, 0xce, 0x50, 0x60, 0x49, 0xe2, 0x71, 0x22, 0xc6, 0x47, 0xfa, 0xc8, 0xfc, 0xcf, 0x02, 0x00, - 0xe3, 0x17, 0xf8, 0x89, 0x7c, 0x18, 0xe8, 0x4f, 0x7d, 0x27, 0x9d, 0x7f, 0xd4, 0xb9, 0xa8, 0xd3, - 0x8c, 0xcf, 0x5f, 0xb0, 0x21, 0xc5, 0x27, 0x0a, 0x8d, 0x2a, 0x7f, 0x9e, 0xd0, 0xe6, 0xa5, 0x5e, - 0x79, 0x7d, 0x07, 0xf7, 0x01, 0x7b, 0xb9, 0x4f, 0x26, 0x30, 0x7e, 0xfb, 0xb1, 0x92, 0x0c, 0xb5, - 0xe5, 0x01, 0x66, 0xf6, 0xa7, 0xe0, 0xb8, 0x56, 0x2e, 0xce, 0xd7, 0xaa, 0xcb, 0xf7, 0xb2, 0x77, - 0xf4, 0x14, 0x64, 0x76, 0x72, 0x92, 0x0a, 0x6c, 0x6f, 0x48, 0xd8, 0x07, 0xf2, 0xb2, 0x8a, 0x9b, - 0xad, 0x30, 0x8b, 0x2b, 0xfd, 0x7b, 0x35, 0x01, 0xb2, 0x87, 0x89, 0xc2, 0x2b, 0x00, 0x26, 0x35, - 0xd4, 0xb4, 0xb6, 0xb7, 0x91, 0xd9, 0x42, 0x2d, 0xf5, 0x0d, 0x32, 0x4c, 0x05, 0xfb, 0x7d, 0x75, - 0xe4, 0xaa, 0x3f, 0x1b, 0x62, 0x73, 0x06, 0xa6, 0xbc, 0xca, 0xd5, 0xf8, 0x48, 0xe2, 0x5c, 0x9a, - 0x72, 0x13, 0x1c, 0xf3, 0x51, 0xa8, 0x75, 0x4d, 0x61, 0xf6, 0x7f, 0x50, 0xdf, 0xcb, 0x62, 0xb4, - 0xc6, 0x63, 0x74, 0x67, 0xb4, 0x30, 0x03, 0x76, 0x67, 0x59, 0x56, 0x23, 0xc0, 0xfa, 0xb3, 0x00, - 0xac, 0xa7, 0x73, 0x60, 0xcd, 0x1f, 0x90, 0xfe, 0x61, 0xa2, 0xf6, 0x21, 0x19, 0x8e, 0xfb, 0x1d, - 0xf1, 0xe8, 0xd0, 0xfa, 0x24, 0x8b, 0xd6, 0x33, 0x78, 0xb4, 0x16, 0x45, 0xa4, 0xd9, 0x8b, 0xe5, - 0x08, 0xd4, 0xbe, 0x12, 0xa0, 0xf6, 0x73, 0x1c, 0x6a, 0xcb, 0x43, 0x2a, 0xe7, 0x30, 0xd1, 0x7b, - 0x93, 0x0c, 0x13, 0x24, 0x9a, 0x8c, 0x07, 0xd9, 0x66, 0x32, 0xc8, 0xc2, 0x78, 0x3b, 0x52, 0xc2, - 0x78, 0x3b, 0xef, 0x90, 0x92, 0xc5, 0x37, 0xdc, 0x27, 0xd6, 0x80, 0xe7, 0x08, 0xcc, 0x3e, 0x9b, - 0x20, 0x20, 0xa0, 0x30, 0xf1, 0xc3, 0x04, 0xea, 0x01, 0x60, 0x6c, 0x8c, 0x17, 0xc8, 0x50, 0xf0, - 0x26, 0x0b, 0xa4, 0x0b, 0xa7, 0x37, 0x55, 0xd6, 0x78, 0x9f, 0xea, 0x0e, 0xd9, 0x9c, 0x0f, 0x7d, - 0xaa, 0xfd, 0x04, 0xe5, 0x7a, 0x98, 0x69, 0x6e, 0xa1, 0xe6, 0xc5, 0x8a, 0xe9, 0x3b, 0x1d, 0x11, - 0x0f, 0x95, 0xae, 0x54, 0x7e, 0xd4, 0xba, 0x87, 0x07, 0x89, 0x5f, 0x61, 0xe4, 0x66, 0x30, 0x2c, - 0x53, 0x11, 0xe8, 0xfc, 0x61, 0x80, 0x4e, 0x95, 0x43, 0xe7, 0xb6, 0x81, 0xa8, 0x26, 0x83, 0xa5, - 0x3a, 0x00, 0x2c, 0x2a, 0x9c, 0xac, 0xad, 0x36, 0x2a, 0xb5, 0xea, 0xfa, 0x5a, 0xbd, 0x3c, 0xbf, - 0x3e, 0xe7, 0x83, 0x53, 0x2f, 0xc8, 0xea, 0x77, 0x24, 0x18, 0x23, 0x6c, 0x39, 0xea, 0x63, 0x42, - 0x08, 0xfa, 0x3a, 0x93, 0xf3, 0x6d, 0x20, 0x36, 0x34, 0x4c, 0x20, 0x08, 0x5a, 0x4e, 0x84, 0x11, - 0xf7, 0x64, 0x18, 0x23, 0x20, 0xfb, 0xcb, 0xfd, 0xa7, 0x23, 0x4c, 0x38, 0x4a, 0x46, 0xf3, 0xb3, - 0x0b, 0x86, 0x89, 0xe9, 0xc3, 0x46, 0xfa, 0x66, 0xf7, 0xb3, 0xb3, 0x64, 0x8d, 0xe0, 0xbc, 0xe1, - 0x6e, 0x61, 0x5f, 0x73, 0xf5, 0x69, 0x22, 0x7b, 0x2f, 0x37, 0x41, 0x6e, 0xd7, 0xcb, 0xdd, 0xc7, - 0x6f, 0x9f, 0x64, 0x52, 0x5f, 0x25, 0x1c, 0x95, 0x98, 0xd3, 0xcf, 0x80, 0xa7, 0x08, 0x70, 0x56, - 0x20, 0xdb, 0x36, 0x1c, 0x97, 0x1a, 0xd7, 0xb7, 0x26, 0x22, 0xe4, 0x3f, 0x54, 0x5c, 0xb4, 0xad, - 0x61, 0x32, 0xea, 0xdd, 0x9e, 0x69, 0x14, 0xa6, 0x0a, 0x9c, 0x5d, 0x38, 0x05, 0x63, 0xf4, 0x4c, - 0x2d, 0xdd, 0x7f, 0xf2, 0x5f, 0x05, 0xf7, 0x7c, 0x84, 0x6a, 0x9b, 0xbe, 0x0e, 0xfc, 0xdf, 0x47, - 0x61, 0x6c, 0xc9, 0x70, 0x5c, 0xcb, 0xde, 0x53, 0x1f, 0xca, 0xc0, 0xd8, 0x39, 0x64, 0x3b, 0x86, - 0x65, 0xee, 0xf3, 0xc3, 0xba, 0x06, 0x26, 0x3b, 0x36, 0xda, 0x35, 0xac, 0x1d, 0x27, 0x34, 0x24, - 0xd8, 0x24, 0x45, 0x85, 0x71, 0x7d, 0xc7, 0xdd, 0xb2, 0xec, 0x30, 0x14, 0x8f, 0xff, 0xae, 0x9c, - 0x06, 0x20, 0xcf, 0x55, 0x7d, 0x1b, 0x51, 0xef, 0x32, 0x26, 0x45, 0x51, 0x20, 0xeb, 0x1a, 0xdb, - 0x88, 0xc6, 0xe6, 0xc6, 0xcf, 0x9e, 0x80, 0x71, 0x9c, 0x4b, 0x1a, 0x4f, 0x54, 0xd6, 0xfc, 0x57, - 0xf5, 0x4b, 0x32, 0x4c, 0x2e, 0x22, 0x97, 0xb2, 0xea, 0xa8, 0x2f, 0xce, 0x08, 0x5d, 0x87, 0xe3, - 0x4d, 0x40, 0xda, 0xba, 0xe3, 0xff, 0x17, 0xec, 0x4f, 0xf1, 0x89, 0x61, 0xa0, 0x70, 0x99, 0xbd, - 0x25, 0x00, 0x47, 0x8d, 0x74, 0x2b, 0xc4, 0x29, 0x9d, 0x66, 0xa6, 0x3b, 0xc4, 0xfb, 0x3f, 0xf0, - 0xc6, 0x6f, 0x6c, 0xc4, 0x05, 0x2a, 0xfb, 0x59, 0xa6, 0x3e, 0x91, 0xdd, 0xd1, 0xf8, 0x2e, 0xcd, - 0xb1, 0xef, 0x02, 0x08, 0x96, 0x12, 0x25, 0xa3, 0x05, 0xb9, 0x05, 0x63, 0x35, 0xf4, 0xe7, 0x24, - 0x7d, 0x6d, 0xfc, 0x81, 0x0c, 0x93, 0xf5, 0x2d, 0xeb, 0x92, 0x2f, 0xc7, 0x67, 0x88, 0x01, 0x7b, - 0x15, 0x4c, 0xec, 0x76, 0x81, 0x1a, 0x26, 0xb0, 0xb7, 0x8c, 0xc9, 0xfc, 0x2d, 0x63, 0xcf, 0x97, - 0x93, 0xc2, 0xc4, 0x30, 0x17, 0x01, 0x13, 0x7f, 0x31, 0x98, 0x94, 0xe0, 0x62, 0x30, 0xe5, 0x89, - 0x30, 0x46, 0xb9, 0xa6, 0xeb, 0xd1, 0xf1, 0x00, 0xfb, 0x99, 0xd9, 0x0a, 0x66, 0xf9, 0x0a, 0x26, - 0x43, 0x3e, 0xba, 0x72, 0xe9, 0x23, 0xff, 0x27, 0x12, 0x8e, 0xd4, 0xe3, 0x03, 0x5f, 0x1a, 0x02, - 0xf0, 0xea, 0x0f, 0x33, 0xa2, 0xbb, 0x36, 0x81, 0x04, 0x02, 0x0e, 0x0e, 0x74, 0xd5, 0x55, 0x5f, - 0x72, 0xe9, 0xcb, 0xf3, 0x95, 0x59, 0x98, 0x9a, 0x37, 0x36, 0x36, 0x82, 0x4e, 0xf2, 0x25, 0x82, - 0x9d, 0x64, 0xb4, 0xaf, 0x94, 0x67, 0xe7, 0xee, 0xd8, 0x36, 0x32, 0xfd, 0x4a, 0xd1, 0xe6, 0xd4, - 0x95, 0xaa, 0xdc, 0x00, 0x47, 0xfd, 0x71, 0x81, 0xed, 0x28, 0x27, 0xb4, 0xee, 0x64, 0xf5, 0xfb, - 0xc2, 0x5b, 0xfe, 0xbe, 0x44, 0xd9, 0x2a, 0x45, 0x34, 0xc0, 0xdb, 0x61, 0x7a, 0x8b, 0xe4, 0xc6, - 0xeb, 0xa2, 0x7e, 0x67, 0x79, 0xb2, 0x2b, 0x12, 0xfa, 0x0a, 0x72, 0x1c, 0x7d, 0x13, 0x69, 0x7c, - 0xe6, 0xae, 0xe6, 0x2b, 0x27, 0xb9, 0xd7, 0x4f, 0xcc, 0x7b, 0x40, 0xa0, 0x26, 0x23, 0xd0, 0x8e, - 0x33, 0x90, 0x5d, 0x30, 0xda, 0x48, 0xfd, 0x25, 0x09, 0x26, 0xbc, 0xa9, 0x9a, 0xd9, 0xf4, 0xde, - 0x18, 0xcf, 0xc9, 0x7f, 0xcc, 0x88, 0xde, 0x67, 0xeb, 0xd1, 0x99, 0x0d, 0x68, 0x44, 0xb4, 0x1b, - 0xb1, 0x7b, 0x6b, 0x63, 0x49, 0x8d, 0xe0, 0xf6, 0x21, 0x6f, 0xea, 0xb1, 0xb1, 0xd1, 0xb6, 0x74, - 0x6e, 0x67, 0xa0, 0xdb, 0x14, 0xba, 0x11, 0x0a, 0xfe, 0x01, 0x38, 0xcb, 0x5d, 0x35, 0x4c, 0x33, - 0x88, 0xb0, 0xb0, 0x2f, 0x9d, 0x77, 0x6a, 0x89, 0x0d, 0x52, 0x85, 0xeb, 0x4e, 0x4b, 0x8f, 0xd0, - 0xec, 0xeb, 0x61, 0xe6, 0xc2, 0x9e, 0x8b, 0x1c, 0x9a, 0x8b, 0x16, 0x9b, 0xd5, 0xba, 0x52, 0x99, - 0x10, 0xf3, 0x71, 0xc1, 0xac, 0x62, 0x0a, 0x4c, 0x26, 0xea, 0xa5, 0x01, 0x66, 0x80, 0xc7, 0xa1, - 0x50, 0xad, 0xcd, 0x97, 0xb1, 0x23, 0xaf, 0xef, 0x1a, 0xb9, 0xa9, 0xbe, 0x54, 0x86, 0x29, 0xec, - 0x69, 0xe7, 0xa3, 0x70, 0xad, 0xc0, 0x7c, 0x44, 0xfd, 0x9a, 0xb0, 0x93, 0x2f, 0xae, 0x32, 0x5b, - 0x40, 0xb4, 0xa0, 0x37, 0x8c, 0x76, 0xb7, 0xa0, 0x73, 0x5a, 0x57, 0x6a, 0x0f, 0x40, 0xe4, 0x9e, - 0x80, 0x7c, 0x48, 0xc8, 0xd3, 0xb7, 0x1f, 0x77, 0x87, 0x85, 0xca, 0xef, 0xca, 0x30, 0xe9, 0x4d, - 0x52, 0x7c, 0x50, 0x6a, 0x1c, 0x28, 0x96, 0xd9, 0xde, 0x0b, 0x97, 0x45, 0xfc, 0xd7, 0x44, 0x8d, - 0xe4, 0x2f, 0x85, 0x67, 0xee, 0x58, 0x44, 0x0c, 0x2f, 0x23, 0xc2, 0xef, 0x83, 0x42, 0xf3, 0xf9, - 0x3e, 0xcc, 0x1d, 0x16, 0x7c, 0xdf, 0xca, 0x41, 0x7e, 0xad, 0x83, 0x91, 0x7b, 0x95, 0x2c, 0x72, - 0x5d, 0xc3, 0xbe, 0x53, 0x5e, 0x9e, 0x99, 0xd5, 0xb6, 0x9a, 0x7a, 0x7b, 0x35, 0x3c, 0x2e, 0x1b, - 0x26, 0x28, 0xb7, 0x51, 0xc7, 0x6f, 0x72, 0xd6, 0xf8, 0xfa, 0xd8, 0x9b, 0x0c, 0xb0, 0x8c, 0x98, - 0x13, 0x75, 0x37, 0xc1, 0xb1, 0x96, 0xe1, 0xe8, 0x17, 0xda, 0xa8, 0x6c, 0x36, 0xed, 0x3d, 0x22, - 0x0e, 0x3a, 0xad, 0xda, 0xf7, 0x41, 0xb9, 0x03, 0x72, 0x8e, 0xbb, 0xd7, 0x26, 0xf3, 0x44, 0xf6, - 0x00, 0x5e, 0x64, 0x51, 0x75, 0x2f, 0xbb, 0x46, 0xfe, 0x62, 0xfd, 0x37, 0xc7, 0x04, 0x2f, 0xb3, - 0x7f, 0x3c, 0xe4, 0x2d, 0xdb, 0xd8, 0x34, 0xc8, 0xe5, 0x64, 0x33, 0xfb, 0x02, 0x76, 0x12, 0x53, - 0xa0, 0x86, 0xb3, 0x68, 0x34, 0xab, 0xf2, 0x44, 0x98, 0x30, 0xb6, 0xf5, 0x4d, 0x74, 0x8f, 0x61, - 0x92, 0xe3, 0xcc, 0x33, 0xb7, 0x9c, 0xda, 0x77, 0xb6, 0x90, 0x7e, 0xd7, 0xc2, 0xac, 0xea, 0x07, - 0x25, 0xd1, 0xa8, 0x62, 0xb8, 0x6e, 0x04, 0xd4, 0x91, 0x5c, 0xea, 0xaf, 0xbe, 0x56, 0x28, 0xde, - 0x57, 0x34, 0x5b, 0xe9, 0x0f, 0xde, 0x5f, 0x94, 0x60, 0x7c, 0xde, 0xba, 0x64, 0x62, 0x45, 0xbf, - 0x55, 0xcc, 0xd6, 0xed, 0x71, 0x02, 0x9c, 0xbf, 0x33, 0x37, 0xf6, 0xb8, 0x17, 0xae, 0xad, 0x5f, - 0x64, 0x04, 0x0c, 0xb1, 0x2d, 0x47, 0xf0, 0x26, 0xd3, 0xb8, 0x72, 0xd2, 0x97, 0xeb, 0x9f, 0xca, - 0x90, 0x9d, 0xb7, 0xad, 0x8e, 0xfa, 0xf6, 0x4c, 0x02, 0x7f, 0xae, 0x96, 0x6d, 0x75, 0x1a, 0xf8, - 0x2a, 0xc2, 0xf0, 0x8c, 0x1b, 0x9b, 0xa6, 0xdc, 0x0a, 0xe3, 0x1d, 0xcb, 0x31, 0x5c, 0x7f, 0x1a, - 0x31, 0x73, 0xcb, 0x23, 0x7a, 0xb6, 0xe6, 0x55, 0x9a, 0x49, 0x0b, 0xb2, 0x7b, 0xbd, 0x36, 0x16, - 0xa1, 0x27, 0x17, 0x4f, 0x8c, 0xfe, 0x75, 0x8c, 0x5d, 0xa9, 0xea, 0xcb, 0x58, 0x24, 0x9f, 0xc2, - 0x23, 0xf9, 0xa8, 0x1e, 0x12, 0xb6, 0xad, 0xce, 0x50, 0x3c, 0x30, 0x5e, 0x1d, 0xa0, 0xfa, 0x54, - 0x0e, 0xd5, 0x1b, 0x85, 0xca, 0x4c, 0x1f, 0xd1, 0x0f, 0x66, 0x01, 0xb0, 0x99, 0xb1, 0xe6, 0x4d, - 0x80, 0xc4, 0x6c, 0xac, 0xe7, 0x66, 0x19, 0x59, 0x16, 0x79, 0x59, 0x3e, 0x26, 0xc2, 0x8a, 0xc1, - 0xe4, 0x23, 0x24, 0x5a, 0x84, 0xdc, 0x8e, 0xf7, 0x99, 0x4a, 0x54, 0x90, 0x04, 0x7e, 0xd5, 0xc8, - 0x9f, 0xea, 0x9f, 0x64, 0x20, 0x87, 0x13, 0x94, 0xd3, 0x00, 0x78, 0x60, 0x27, 0xa7, 0x25, 0x33, - 0x78, 0x08, 0x67, 0x52, 0xb0, 0xb6, 0x1a, 0x2d, 0xfa, 0x99, 0x98, 0xcc, 0x61, 0x82, 0xf7, 0x37, - 0x1e, 0xee, 0x31, 0x2d, 0x6a, 0x00, 0x30, 0x29, 0xde, 0xdf, 0xf8, 0x6d, 0x19, 0x6d, 0x90, 0x28, - 0xf1, 0x59, 0x2d, 0x4c, 0x08, 0xfe, 0x5e, 0x0e, 0xee, 0x16, 0xf4, 0xff, 0xc6, 0x29, 0xde, 0x64, - 0x18, 0xab, 0xe5, 0x5c, 0x58, 0x44, 0x1e, 0x67, 0xea, 0x4e, 0x56, 0xdf, 0x10, 0xa8, 0xcd, 0x3c, - 0xa7, 0x36, 0x37, 0x27, 0x10, 0x6f, 0xfa, 0xca, 0xf3, 0x8d, 0x1c, 0x4c, 0x54, 0xad, 0x16, 0xd5, - 0x1d, 0x66, 0xc2, 0xf8, 0xe9, 0x5c, 0xa2, 0x09, 0x63, 0x40, 0x23, 0x42, 0x41, 0xee, 0xe2, 0x15, - 0x44, 0x8c, 0x02, 0xab, 0x1f, 0xca, 0x1c, 0xe4, 0xb1, 0xf6, 0xee, 0xbf, 0xb4, 0x2e, 0x8e, 0x04, - 0x16, 0xad, 0x46, 0xff, 0xfc, 0x0f, 0xa7, 0x63, 0xff, 0x05, 0x72, 0xb8, 0x82, 0x31, 0xbb, 0x3b, - 0x7c, 0x45, 0xa5, 0xf8, 0x8a, 0xca, 0xf1, 0x15, 0xcd, 0x76, 0x57, 0x34, 0xc9, 0x3a, 0x40, 0x94, - 0x86, 0xa4, 0xaf, 0xe3, 0xff, 0x30, 0x06, 0x50, 0xd5, 0x77, 0x8d, 0x4d, 0xb2, 0x3b, 0xfc, 0x25, - 0x7f, 0xfe, 0x43, 0xf7, 0x71, 0xff, 0x2b, 0x33, 0x10, 0xde, 0x0a, 0x63, 0x74, 0xdc, 0xa3, 0x15, - 0xb9, 0x9a, 0xab, 0x48, 0x48, 0x85, 0x98, 0xa5, 0xf7, 0xbb, 0x9a, 0x9f, 0x9f, 0xbb, 0x5f, 0x5b, - 0xea, 0xba, 0x5f, 0xbb, 0xf7, 0x1e, 0x44, 0xc4, 0xad, 0xdb, 0xea, 0xfb, 0x84, 0x8f, 0x3b, 0x31, - 0xfc, 0x30, 0x35, 0x8a, 0x68, 0x82, 0x8f, 0x87, 0x31, 0x2b, 0xd8, 0xd0, 0x96, 0x23, 0xd7, 0xc1, - 0x2a, 0xe6, 0x86, 0xa5, 0xf9, 0x39, 0x05, 0x37, 0xbf, 0x84, 0xf8, 0x18, 0xc9, 0x89, 0xc2, 0x93, - 0x8b, 0x7e, 0xc4, 0x3d, 0xaf, 0x1e, 0xe7, 0x0d, 0x77, 0x6b, 0xd9, 0x30, 0x2f, 0x3a, 0xea, 0xcf, - 0x89, 0x59, 0x90, 0x0c, 0xfe, 0x52, 0x32, 0xfc, 0xf9, 0x80, 0x46, 0x75, 0x1e, 0xb5, 0x3b, 0xa2, - 0xa8, 0xf4, 0xe6, 0x36, 0x02, 0xc0, 0xdb, 0x20, 0x4f, 0x18, 0xa5, 0x9d, 0xe8, 0x99, 0x48, 0xfc, - 0x02, 0x4a, 0x1a, 0xfd, 0x43, 0x7d, 0x6f, 0x80, 0xe3, 0x39, 0x0e, 0xc7, 0xb9, 0x03, 0x71, 0x96, - 0x3a, 0xa4, 0x67, 0x1e, 0x07, 0x63, 0x54, 0xd2, 0xca, 0x0c, 0xdb, 0x8a, 0x0b, 0x47, 0x14, 0x80, - 0xfc, 0x8a, 0xb5, 0x8b, 0x1a, 0x56, 0x21, 0xe3, 0x3d, 0x7b, 0xfc, 0x35, 0xac, 0x82, 0xa4, 0xbe, - 0x66, 0x1c, 0xc6, 0x83, 0x50, 0x67, 0x5f, 0x94, 0xa0, 0x50, 0xb2, 0x91, 0xee, 0xa2, 0x05, 0xdb, - 0xda, 0x26, 0x35, 0x12, 0x77, 0x9d, 0xff, 0x0d, 0x61, 0x17, 0x8f, 0x20, 0x04, 0x59, 0x77, 0x61, - 0x11, 0x58, 0x92, 0x45, 0x48, 0xc9, 0x5f, 0x84, 0x54, 0xdf, 0x26, 0xe4, 0xf2, 0x21, 0x5a, 0x4a, - 0xfa, 0x4d, 0xed, 0xb3, 0x12, 0xe4, 0x4a, 0x6d, 0xcb, 0x44, 0xec, 0xf9, 0xce, 0xbe, 0x07, 0x09, - 0x7b, 0xef, 0x44, 0xa8, 0xcf, 0x96, 0x44, 0x6d, 0x8d, 0x50, 0x00, 0x5e, 0xd9, 0x82, 0xb2, 0x15, - 0x1b, 0xa4, 0x62, 0x49, 0xa7, 0x2f, 0xd0, 0xef, 0x48, 0x30, 0x41, 0x82, 0x86, 0x15, 0xdb, 0x6d, - 0xf5, 0x11, 0xa1, 0x50, 0x7b, 0x84, 0x8b, 0x53, 0x3f, 0x24, 0x7c, 0x7e, 0x29, 0xa8, 0x55, 0x40, - 0x3b, 0x41, 0xf4, 0xb4, 0x64, 0xc7, 0x69, 0xc4, 0xf6, 0xd2, 0xfa, 0x32, 0x94, 0xbe, 0xa8, 0xff, - 0x42, 0xf2, 0x0c, 0x00, 0xf3, 0xe2, 0xaa, 0x8d, 0x76, 0x0d, 0x74, 0x49, 0xbd, 0x32, 0x14, 0xf6, - 0xfe, 0x88, 0x48, 0x6f, 0x11, 0x5e, 0xc4, 0x61, 0x48, 0x46, 0x6e, 0x65, 0x4d, 0xb6, 0xc3, 0x4c, - 0xb4, 0x17, 0xef, 0x0e, 0x53, 0xc5, 0x90, 0xd1, 0xd8, 0xec, 0x82, 0x6b, 0x36, 0xd1, 0x5c, 0xa4, - 0x2f, 0xd8, 0x8f, 0x8e, 0xc1, 0xf8, 0x9a, 0xe9, 0x74, 0xda, 0xba, 0xb3, 0xa5, 0xfe, 0x9b, 0x0c, - 0x79, 0x72, 0x55, 0xa2, 0xfa, 0xd3, 0x5c, 0xe0, 0x95, 0x67, 0xee, 0x20, 0xdb, 0x77, 0xc1, 0x21, - 0x2f, 0xa1, 0x7d, 0x24, 0x31, 0xf6, 0x91, 0xfa, 0x41, 0x59, 0x74, 0x92, 0xea, 0x17, 0x4a, 0xef, - 0x66, 0x8c, 0x8e, 0xf5, 0xd1, 0x31, 0x9a, 0xee, 0x8e, 0x8d, 0x9c, 0x9e, 0xb1, 0x3e, 0x22, 0xa9, - 0xac, 0x92, 0xbf, 0xb4, 0xe0, 0x77, 0x55, 0x87, 0x31, 0x9a, 0xb8, 0x6f, 0x3b, 0x69, 0x7f, 0x70, - 0x82, 0x93, 0x90, 0xd7, 0x6d, 0xd7, 0x70, 0x5c, 0xba, 0xc1, 0x4a, 0xdf, 0xbc, 0xee, 0x92, 0x3c, - 0xad, 0xd9, 0x6d, 0x3f, 0x44, 0x53, 0x90, 0xa0, 0xfe, 0xae, 0xd0, 0xfc, 0x31, 0xbe, 0xe6, 0xc9, - 0x20, 0xbf, 0x67, 0x80, 0x35, 0xea, 0xcb, 0xe1, 0x32, 0xad, 0xd8, 0x28, 0xaf, 0x93, 0x88, 0x3e, - 0x41, 0xf0, 0x9e, 0x96, 0xfa, 0x1e, 0x99, 0x59, 0xbf, 0xdb, 0xe3, 0xc6, 0x08, 0x2a, 0xc5, 0x70, - 0x8c, 0x08, 0x12, 0x62, 0x76, 0xab, 0xb9, 0x45, 0x58, 0x59, 0x7c, 0x11, 0xf6, 0xb7, 0x85, 0x77, - 0x93, 0x02, 0x51, 0xf6, 0x59, 0x03, 0x8c, 0xbb, 0x4a, 0xed, 0xc3, 0x42, 0x3b, 0x43, 0xfd, 0x4a, - 0x3a, 0x44, 0xd8, 0xde, 0x3c, 0x06, 0x63, 0x8b, 0x7a, 0xbb, 0x8d, 0xec, 0x3d, 0x6f, 0x48, 0x2a, - 0xf8, 0x1c, 0xae, 0xe8, 0xa6, 0xb1, 0x81, 0x1c, 0x37, 0xbe, 0xb3, 0x7c, 0x9f, 0x70, 0x98, 0x6e, - 0x5a, 0xc6, 0x6c, 0x37, 0xfd, 0x08, 0x99, 0x9f, 0x85, 0xac, 0x61, 0x6e, 0x58, 0xb4, 0xcb, 0xec, - 0x5e, 0xb5, 0xf7, 0x7f, 0xc6, 0x53, 0x17, 0x9c, 0x51, 0x30, 0x52, 0xb7, 0x20, 0x17, 0xe9, 0xf7, - 0x9c, 0xbf, 0x93, 0x85, 0x69, 0x9f, 0x89, 0x8a, 0xd9, 0x42, 0xf7, 0xb3, 0x4b, 0x31, 0x2f, 0xcd, - 0x8a, 0x9e, 0x95, 0xed, 0xae, 0x0f, 0x26, 0x15, 0x21, 0xd2, 0x06, 0x40, 0x53, 0x77, 0xd1, 0xa6, - 0x65, 0x1b, 0x41, 0x7f, 0xf8, 0x84, 0x24, 0xd4, 0x4a, 0xe4, 0xef, 0x3d, 0x8d, 0xa1, 0xa3, 0xdc, - 0x01, 0x93, 0x28, 0x08, 0x4e, 0xe2, 0x2f, 0xd5, 0xc4, 0xe2, 0xc5, 0xe6, 0x57, 0xff, 0x42, 0xe8, - 0x48, 0xae, 0x48, 0x35, 0x93, 0x61, 0xb6, 0x3e, 0x58, 0x1b, 0x5a, 0xab, 0xae, 0x14, 0xb5, 0xfa, - 0x52, 0x71, 0x79, 0xb9, 0x52, 0x5d, 0x0c, 0xa2, 0x62, 0x29, 0x30, 0x33, 0x5f, 0x3b, 0x5f, 0x65, - 0xc2, 0x96, 0x65, 0xd5, 0x55, 0x18, 0xf7, 0xe5, 0xd5, 0xcb, 0x17, 0x93, 0x95, 0x19, 0xf5, 0xc5, - 0x64, 0x92, 0x3c, 0xe3, 0xcc, 0x68, 0x06, 0x0e, 0x3a, 0xf8, 0x59, 0xfd, 0x23, 0x1d, 0x72, 0x78, - 0x4d, 0x5d, 0x7d, 0x17, 0xde, 0x06, 0xec, 0xb4, 0xf5, 0x26, 0x52, 0xb7, 0x13, 0x58, 0xe3, 0xfe, - 0xbd, 0x31, 0xd2, 0xbe, 0x7b, 0x63, 0xf0, 0x23, 0xb5, 0xfa, 0x8e, 0xf7, 0x5a, 0xc7, 0xd7, 0x48, - 0x16, 0xfe, 0xf4, 0x6a, 0xec, 0xee, 0x0a, 0x59, 0xfe, 0xa7, 0x6c, 0x46, 0xa8, 0x64, 0x34, 0x4f, - 0xc9, 0x2c, 0x51, 0xb1, 0x7d, 0x98, 0x38, 0x8e, 0xd2, 0x6f, 0xf1, 0x5f, 0xcd, 0x42, 0xae, 0xde, - 0x69, 0x1b, 0xae, 0xfa, 0x0a, 0x69, 0x28, 0x98, 0x91, 0xbb, 0x7e, 0xe4, 0xbe, 0x77, 0xfd, 0x84, - 0xbb, 0xae, 0x59, 0x81, 0x5d, 0xd7, 0x06, 0xba, 0xdf, 0xe5, 0x77, 0x5d, 0x6f, 0xa5, 0x91, 0x2d, - 0xc9, 0x9e, 0xed, 0xa3, 0x7a, 0x88, 0x14, 0x57, 0xab, 0x47, 0xc8, 0xd4, 0x33, 0x8f, 0xa3, 0x91, - 0x1b, 0x01, 0xf2, 0x73, 0xb5, 0x46, 0xa3, 0xb6, 0x52, 0x38, 0x82, 0x43, 0x7e, 0xd5, 0x56, 0x49, - 0x1c, 0xad, 0x4a, 0xb5, 0x5a, 0xd6, 0x0a, 0x12, 0x8e, 0x25, 0x59, 0x69, 0x2c, 0x97, 0x0b, 0x32, - 0x7f, 0xf1, 0x43, 0xac, 0xf9, 0xcd, 0x97, 0x9d, 0xa6, 0x7a, 0x89, 0x19, 0xe2, 0xd1, 0xfc, 0xa4, - 0xaf, 0x5c, 0xbf, 0x2e, 0x43, 0x6e, 0x05, 0xd9, 0x9b, 0x48, 0x7d, 0x66, 0x82, 0x4d, 0xbe, 0x0d, - 0xc3, 0x76, 0x48, 0xe4, 0xcd, 0x70, 0x93, 0x8f, 0x4d, 0x53, 0xae, 0x83, 0x69, 0x07, 0x35, 0x2d, - 0xb3, 0xe5, 0x67, 0x22, 0xfd, 0x11, 0x9f, 0xa8, 0xbe, 0x3c, 0x21, 0x64, 0x98, 0xd1, 0xa1, 0xec, - 0xd4, 0x25, 0x01, 0xa6, 0x57, 0xa9, 0xe9, 0x03, 0xf3, 0x7d, 0xd9, 0xfb, 0xa9, 0xb3, 0xa7, 0xbe, - 0x5c, 0x78, 0xf7, 0xf5, 0x26, 0xc8, 0x63, 0x35, 0xf5, 0xc7, 0xe8, 0xde, 0xfd, 0x31, 0xcd, 0xa3, - 0xcc, 0xc1, 0x31, 0x07, 0xb5, 0x51, 0xd3, 0x45, 0x2d, 0xaf, 0xe9, 0x6a, 0x7d, 0x3b, 0x85, 0xfd, - 0xd9, 0xd5, 0x3f, 0x63, 0x01, 0xbc, 0x9d, 0x07, 0xf0, 0xfa, 0x1e, 0xa2, 0xf4, 0x2a, 0x14, 0x6d, - 0x2b, 0x7b, 0xd5, 0xa8, 0xb7, 0xad, 0x60, 0x51, 0xdc, 0x7f, 0xf7, 0xbe, 0x6d, 0xb9, 0xdb, 0x6d, - 0xfc, 0x8d, 0x1e, 0x30, 0xf0, 0xdf, 0x95, 0x59, 0x18, 0xd3, 0xcd, 0x3d, 0xfc, 0x29, 0x1b, 0x53, - 0x6b, 0x3f, 0x93, 0xfa, 0x9a, 0x00, 0xf9, 0x3b, 0x39, 0xe4, 0x1f, 0x23, 0xc6, 0x6e, 0xfa, 0xc0, - 0xff, 0xe2, 0x18, 0xe4, 0x56, 0x75, 0xc7, 0x45, 0xea, 0xff, 0x94, 0x45, 0x91, 0xbf, 0x1e, 0x66, - 0x36, 0xac, 0xe6, 0x8e, 0x83, 0x5a, 0x7c, 0xa3, 0xec, 0x4a, 0x1d, 0x06, 0xe6, 0xca, 0x8d, 0x50, - 0xf0, 0x13, 0x29, 0x59, 0x7f, 0x1b, 0x7e, 0x5f, 0x3a, 0xbe, 0x46, 0xc0, 0x59, 0xd5, 0x6d, 0xb7, - 0xb6, 0x81, 0xd3, 0x82, 0x6b, 0x04, 0xd8, 0x44, 0x0e, 0xfa, 0x7c, 0x0c, 0xf4, 0x63, 0xd1, 0xd0, - 0x8f, 0x0b, 0x40, 0xaf, 0x14, 0x61, 0x7c, 0xc3, 0x68, 0x23, 0xfc, 0xc3, 0x04, 0xfe, 0xa1, 0xd7, - 0x98, 0x84, 0x65, 0x1f, 0x8c, 0x49, 0x0b, 0x46, 0x1b, 0x69, 0xc1, 0x6f, 0xfe, 0x44, 0x06, 0xc2, - 0x89, 0xcc, 0x32, 0xf1, 0xa7, 0xf5, 0x0c, 0x2f, 0x53, 0xdf, 0x46, 0xfe, 0xe2, 0x9b, 0x49, 0x0f, - 0xb7, 0xb4, 0x74, 0x57, 0xc7, 0x60, 0x4c, 0x69, 0xf8, 0x99, 0xf7, 0x0b, 0x91, 0xbb, 0xfd, 0x42, - 0x9e, 0x27, 0x27, 0xeb, 0x11, 0x7d, 0x66, 0x23, 0x5a, 0xd4, 0x05, 0x1f, 0x20, 0x62, 0x29, 0x06, - 0xef, 0x1e, 0x30, 0x4d, 0xdd, 0x46, 0xee, 0x2a, 0xeb, 0x89, 0x91, 0xd3, 0xf8, 0x44, 0xec, 0xca, - 0xe7, 0xd4, 0xf5, 0x6d, 0x84, 0x0b, 0x2b, 0x79, 0xdf, 0xa8, 0x8b, 0xd6, 0xbe, 0xf4, 0xb0, 0xff, - 0xcd, 0x0d, 0xbb, 0xff, 0xed, 0x55, 0xc7, 0xf4, 0x9b, 0xe1, 0xeb, 0xb3, 0x20, 0x97, 0x76, 0xdc, - 0x87, 0x75, 0xf7, 0xfb, 0x23, 0x61, 0x3f, 0x17, 0xda, 0x9f, 0xed, 0xb8, 0x87, 0xdb, 0xfb, 0x26, - 0xd4, 0x12, 0x31, 0x7f, 0x9a, 0xa8, 0xba, 0xa5, 0xaf, 0x23, 0x6f, 0x97, 0x03, 0x07, 0xcb, 0x07, - 0x32, 0x07, 0x37, 0xcd, 0x55, 0xd2, 0x3f, 0x31, 0x3d, 0x43, 0xf0, 0xee, 0x77, 0x3c, 0x59, 0x2e, - 0x90, 0x29, 0xde, 0x5e, 0xc7, 0xa2, 0x9c, 0xd2, 0xc8, 0x8b, 0xfa, 0x4a, 0x61, 0xb7, 0x73, 0x22, - 0xb6, 0x58, 0x57, 0xc2, 0x64, 0x36, 0x95, 0xd8, 0x4d, 0xca, 0x31, 0xc5, 0xa6, 0x0f, 0xd8, 0xf7, - 0x58, 0x57, 0xc1, 0xe2, 0x81, 0x11, 0x53, 0x5f, 0x2b, 0xbc, 0x1d, 0x45, 0xaa, 0xdd, 0x67, 0xbd, - 0x30, 0x99, 0xbc, 0xc5, 0x36, 0xab, 0x62, 0x0b, 0x4e, 0x5f, 0xe2, 0xdf, 0x95, 0x21, 0x4f, 0xb6, - 0x20, 0xd5, 0xb7, 0x0a, 0x37, 0x11, 0xaf, 0x37, 0xe2, 0x5d, 0x08, 0x83, 0xf7, 0x24, 0x6b, 0x0e, - 0x9c, 0xab, 0x61, 0x36, 0x91, 0xab, 0x21, 0x7f, 0x8e, 0x53, 0xa0, 0x1d, 0x91, 0x3a, 0xa6, 0x3c, - 0x9d, 0x4c, 0xd2, 0xc2, 0x7a, 0x32, 0x94, 0x3e, 0xde, 0x2f, 0xc8, 0xc1, 0x14, 0x29, 0xfa, 0xbc, - 0xd1, 0xda, 0x44, 0xae, 0xfa, 0x1e, 0xe9, 0xc7, 0x07, 0x75, 0xa5, 0x0a, 0x53, 0x97, 0x30, 0xdb, - 0x24, 0x70, 0x05, 0x5d, 0xb9, 0xb8, 0x31, 0x76, 0xdd, 0x83, 0xd4, 0xd3, 0x8f, 0xcb, 0xc1, 0xfd, - 0xef, 0xc9, 0x98, 0x2c, 0xf8, 0x13, 0x07, 0xae, 0x3c, 0x36, 0xb2, 0xd8, 0x24, 0xe5, 0x24, 0xe4, - 0x77, 0x0d, 0x74, 0xa9, 0xd2, 0xa2, 0xd6, 0x2d, 0x7d, 0x53, 0x7f, 0x5f, 0x78, 0xdf, 0x96, 0x85, - 0x9b, 0xf2, 0x92, 0xae, 0x16, 0x8a, 0xed, 0xde, 0xf6, 0x65, 0x6b, 0x04, 0x67, 0x8a, 0xf9, 0x9b, - 0x8a, 0x4b, 0x09, 0x14, 0x31, 0xca, 0x70, 0xe6, 0x43, 0x79, 0xc4, 0x9e, 0x58, 0x21, 0x02, 0x18, - 0xf2, 0x25, 0xc6, 0x62, 0xf1, 0x25, 0xfa, 0x14, 0x9d, 0xbe, 0xe4, 0xdf, 0x20, 0xc3, 0x44, 0x1d, - 0xb9, 0x0b, 0x06, 0x6a, 0xb7, 0x1c, 0xd5, 0x3e, 0xb8, 0x69, 0x74, 0x16, 0xf2, 0x1b, 0x98, 0x58, - 0xbf, 0x73, 0x0b, 0x34, 0x9b, 0xfa, 0x7a, 0x49, 0x74, 0x47, 0x98, 0xae, 0xbe, 0xf9, 0xdc, 0x0e, - 0x05, 0x26, 0x31, 0x8f, 0xde, 0xf8, 0x92, 0x47, 0x10, 0xf5, 0x5b, 0x86, 0x29, 0x7a, 0xb5, 0x69, - 0xb1, 0x6d, 0x6c, 0x9a, 0xea, 0xce, 0x10, 0x5a, 0x88, 0x72, 0x33, 0xe4, 0x74, 0x8f, 0x1a, 0xdd, - 0x7a, 0x55, 0x7b, 0x76, 0x9e, 0xb8, 0x3c, 0x8d, 0x64, 0x4c, 0x10, 0x63, 0x37, 0x54, 0x6c, 0x9f, - 0xe7, 0x11, 0xc6, 0xd8, 0xed, 0x5b, 0x78, 0xfa, 0x88, 0x7d, 0x5d, 0x86, 0xe3, 0x94, 0x81, 0x73, - 0xc8, 0x76, 0x8d, 0xa6, 0xde, 0x26, 0xc8, 0xbd, 0x28, 0x33, 0x0c, 0xe8, 0x96, 0x60, 0x7a, 0x97, - 0x25, 0x4b, 0x21, 0x3c, 0xd3, 0x13, 0x42, 0x8e, 0x01, 0x8d, 0xff, 0x31, 0x41, 0xac, 0x52, 0x4e, - 0xaa, 0x1c, 0xcd, 0x11, 0xc6, 0x2a, 0x15, 0x66, 0x22, 0x7d, 0x88, 0x5f, 0x46, 0x43, 0xf3, 0x84, - 0xdd, 0xe7, 0x97, 0x84, 0xb1, 0x5d, 0x83, 0x49, 0x8c, 0x25, 0xf9, 0x91, 0x2e, 0x43, 0xc4, 0x28, - 0x71, 0xd0, 0xef, 0xd0, 0xdb, 0x14, 0x83, 0x7f, 0x35, 0x96, 0x8e, 0x7a, 0x1e, 0x20, 0xfc, 0xc4, - 0x76, 0xd2, 0x99, 0xa8, 0x4e, 0x5a, 0x12, 0xeb, 0xa4, 0xdf, 0x22, 0x1c, 0x2c, 0xa5, 0x37, 0xdb, - 0x07, 0x57, 0x0f, 0xb1, 0x30, 0x19, 0xfd, 0x4b, 0x4f, 0x5f, 0x2f, 0x5e, 0x43, 0xf5, 0x62, 0x7e, - 0xa7, 0xd3, 0x36, 0x9a, 0xde, 0x7c, 0xea, 0x13, 0x43, 0x99, 0x4f, 0xb1, 0xfd, 0x81, 0xdc, 0xd5, - 0x1f, 0x1c, 0xc0, 0x92, 0xbe, 0x01, 0x8e, 0x92, 0x22, 0x4a, 0x01, 0x5b, 0x39, 0x12, 0x0a, 0xa2, - 0x2b, 0x99, 0x0f, 0x40, 0x28, 0xa8, 0x04, 0x81, 0x10, 0x06, 0x58, 0xfa, 0x4c, 0x66, 0xec, 0x26, - 0x55, 0x90, 0x28, 0xce, 0x46, 0xe0, 0x16, 0x9a, 0x25, 0xd6, 0xee, 0x1a, 0xbe, 0xf0, 0x52, 0xfd, - 0x4a, 0x76, 0x18, 0x23, 0xc2, 0x5d, 0x90, 0xc5, 0x2e, 0xee, 0x72, 0xe4, 0x92, 0x46, 0x58, 0x64, - 0x78, 0x1b, 0x29, 0xba, 0xdf, 0x5d, 0x3a, 0xa2, 0xe1, 0x3f, 0x95, 0x1b, 0xe1, 0xe8, 0x05, 0xbd, - 0x79, 0x71, 0xd3, 0xb6, 0x76, 0xf0, 0xd5, 0x80, 0x16, 0xbd, 0x63, 0x10, 0xdf, 0xd5, 0xca, 0x7f, - 0x50, 0x6e, 0xf1, 0x4d, 0x87, 0x5c, 0x3f, 0xd3, 0x61, 0xe9, 0x08, 0x35, 0x1e, 0x94, 0xc7, 0x05, - 0x9d, 0x4e, 0x3e, 0xb6, 0xd3, 0x59, 0x3a, 0xe2, 0x77, 0x3b, 0xca, 0x3c, 0x8c, 0xb7, 0x8c, 0x5d, - 0xbc, 0x55, 0x8d, 0x67, 0x5d, 0xfd, 0x8e, 0x2e, 0xcf, 0x1b, 0xbb, 0x64, 0x63, 0x7b, 0xe9, 0x88, - 0x16, 0xfc, 0xa9, 0x2c, 0xc2, 0x04, 0xde, 0x16, 0xc0, 0x64, 0xc6, 0x13, 0x1d, 0x4b, 0x5e, 0x3a, - 0xa2, 0x85, 0xff, 0x7a, 0xd6, 0x47, 0x16, 0x9f, 0xfd, 0xb8, 0xd3, 0xdf, 0x6e, 0xcf, 0x24, 0xda, - 0x6e, 0xf7, 0x64, 0x41, 0x36, 0xdc, 0x4f, 0x42, 0xae, 0x89, 0x25, 0x2c, 0x51, 0x09, 0x93, 0x57, - 0xe5, 0x76, 0xc8, 0x6e, 0xeb, 0xb6, 0x3f, 0x79, 0xbe, 0xbe, 0x3f, 0xdd, 0x15, 0xdd, 0xbe, 0xe8, - 0x21, 0xe8, 0xfd, 0x35, 0x37, 0x06, 0x39, 0x2c, 0xb8, 0xe0, 0x41, 0x7d, 0x7b, 0x96, 0x98, 0x21, - 0x25, 0xcb, 0xf4, 0x86, 0xfd, 0x86, 0xe5, 0x1f, 0x90, 0xf9, 0xfd, 0xcc, 0x70, 0x2c, 0xc8, 0xcb, - 0x98, 0xc8, 0xc0, 0xa6, 0xf1, 0xcc, 0x1d, 0x74, 0x0f, 0xda, 0xa3, 0x4b, 0xa2, 0xbd, 0x3e, 0x75, - 0xdd, 0x3e, 0x9e, 0xed, 0xbe, 0x7d, 0x3c, 0x5c, 0x3e, 0xc8, 0xf5, 0x77, 0x54, 0xf9, 0xb3, 0x01, - 0x4c, 0x97, 0x6e, 0x41, 0x44, 0xcf, 0xc0, 0xdb, 0x86, 0xc9, 0xd4, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, - 0x25, 0x35, 0x6a, 0xfa, 0xb0, 0x97, 0x7e, 0xdf, 0xf4, 0x5b, 0x59, 0x38, 0x45, 0xee, 0xb8, 0xdf, - 0x45, 0x0d, 0x8b, 0xbf, 0x8c, 0x57, 0xfd, 0xe3, 0xa1, 0x28, 0x4d, 0x8f, 0x01, 0x47, 0xee, 0x39, - 0xe0, 0xec, 0x3b, 0xa4, 0x9c, 0xed, 0x73, 0x48, 0x39, 0x97, 0x6c, 0xe5, 0xf0, 0x23, 0xac, 0xfe, - 0xac, 0xf2, 0xfa, 0x73, 0x5b, 0x04, 0x40, 0xbd, 0xe4, 0x32, 0x14, 0xfb, 0xe6, 0x5d, 0x81, 0xa6, - 0xd4, 0x39, 0x4d, 0xb9, 0x73, 0x70, 0x46, 0xd2, 0xd7, 0x96, 0xdf, 0xcb, 0xc2, 0x65, 0x21, 0x33, - 0x55, 0x74, 0x89, 0x2a, 0xca, 0x17, 0x87, 0xa2, 0x28, 0xc9, 0x63, 0x20, 0xa4, 0xad, 0x31, 0x7f, - 0x22, 0x7c, 0x76, 0xa8, 0x1b, 0xa8, 0x40, 0x36, 0x11, 0xca, 0x72, 0x12, 0xf2, 0xa4, 0x87, 0xa1, - 0xd0, 0xd0, 0xb7, 0x84, 0xdd, 0x8d, 0xd8, 0x89, 0x23, 0x51, 0xde, 0x46, 0xa0, 0x3f, 0x74, 0x5d, - 0xa3, 0xb1, 0x63, 0x9b, 0x15, 0xd3, 0xb5, 0xd4, 0x5f, 0x18, 0x8a, 0xe2, 0x04, 0xde, 0x70, 0xf2, - 0x20, 0xde, 0x70, 0x03, 0xad, 0x72, 0xf8, 0x35, 0x38, 0x94, 0x55, 0x8e, 0x88, 0xc2, 0xd3, 0xc7, - 0xef, 0x9d, 0x32, 0x9c, 0xa4, 0x93, 0xad, 0x39, 0xde, 0x42, 0x54, 0xef, 0x1d, 0x06, 0x90, 0xc7, - 0x7d, 0x33, 0x89, 0x5e, 0x01, 0x89, 0x5f, 0xf8, 0x93, 0x52, 0xb1, 0x97, 0xdf, 0x70, 0xd3, 0xc1, - 0x2e, 0x0e, 0x87, 0x82, 0x94, 0xd8, 0x9d, 0x37, 0x09, 0xd8, 0x48, 0x1f, 0xb3, 0x97, 0xc8, 0x90, - 0x27, 0xe7, 0xb4, 0xd4, 0xb5, 0x54, 0x1c, 0x26, 0xf8, 0x28, 0xcf, 0x02, 0x3b, 0x72, 0x84, 0x9b, - 0xd4, 0xce, 0xb0, 0x25, 0xd9, 0x8b, 0xeb, 0xc9, 0xca, 0x08, 0x5c, 0x08, 0x25, 0x98, 0xac, 0x23, - 0xb7, 0xa4, 0xdb, 0xb6, 0xa1, 0x6f, 0x0e, 0xcb, 0xe3, 0x5b, 0xd4, 0x7b, 0x58, 0xfd, 0x41, 0x46, - 0xf4, 0x3c, 0x4d, 0xb0, 0x10, 0xee, 0xb3, 0x1a, 0x11, 0x4b, 0xf0, 0x21, 0xa1, 0x33, 0x33, 0xfd, - 0xa8, 0x8d, 0xc0, 0x63, 0x5b, 0x82, 0x31, 0xff, 0x2c, 0xde, 0x59, 0xee, 0x7c, 0xe6, 0x96, 0xbb, - 0xed, 0x1f, 0x83, 0xc1, 0xcf, 0xfb, 0xcf, 0x80, 0xa9, 0xaf, 0x4e, 0xe8, 0x28, 0x1f, 0x7f, 0x90, - 0x30, 0x59, 0x1b, 0x4b, 0xe2, 0x0e, 0x7f, 0x58, 0x47, 0x07, 0x3f, 0x34, 0x46, 0x97, 0x23, 0x97, - 0x75, 0x17, 0xdd, 0xaf, 0x7e, 0x49, 0x86, 0xb1, 0x3a, 0x72, 0xbd, 0xf1, 0x96, 0xbb, 0xf9, 0x79, - 0x50, 0x0d, 0x57, 0x98, 0x15, 0x8f, 0x09, 0xba, 0x86, 0x71, 0x37, 0x4c, 0x74, 0x6c, 0xab, 0x89, - 0x1c, 0x87, 0xae, 0x5e, 0xb0, 0x8e, 0x6a, 0xbd, 0x46, 0x7f, 0xcc, 0xda, 0xec, 0xaa, 0xff, 0x8f, - 0x16, 0xfe, 0x9e, 0xd4, 0x0c, 0x20, 0x94, 0x68, 0x05, 0x47, 0x6d, 0x06, 0xc4, 0x15, 0x9e, 0x3e, - 0xd0, 0x9f, 0x97, 0x61, 0xaa, 0x8e, 0xdc, 0x40, 0x8a, 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, 0xa0, - 0x94, 0x0f, 0x06, 0xa5, 0xf8, 0xbd, 0xa9, 0xbc, 0x34, 0x03, 0x62, 0x23, 0xbc, 0x37, 0x55, 0x8c, - 0x83, 0x11, 0x1c, 0x5f, 0x7b, 0x14, 0x4c, 0x60, 0x5e, 0x70, 0x83, 0xfd, 0xe5, 0x6c, 0xd8, 0x78, - 0xbf, 0x9c, 0x52, 0xe3, 0xbd, 0x03, 0x72, 0xdb, 0xba, 0x7d, 0xd1, 0xc1, 0x0d, 0x77, 0x52, 0xc4, - 0x6c, 0x5f, 0xf1, 0xb2, 0x6b, 0xe4, 0xaf, 0xde, 0x7e, 0x9a, 0xb9, 0x64, 0x7e, 0x9a, 0x0f, 0x49, - 0x89, 0x46, 0x42, 0x32, 0x77, 0x18, 0x62, 0x93, 0x4f, 0x30, 0x6e, 0xc6, 0x94, 0x9d, 0xbe, 0x72, - 0xbc, 0x48, 0x86, 0x71, 0x6f, 0xdc, 0xc6, 0xf6, 0xf8, 0xf9, 0x83, 0xab, 0x43, 0x6f, 0x43, 0x3f, - 0x61, 0x0f, 0xec, 0x4b, 0x64, 0x78, 0xe6, 0x7d, 0x82, 0x1e, 0x38, 0xae, 0xf0, 0xf4, 0xf1, 0x78, - 0x37, 0xc1, 0x03, 0xb7, 0x07, 0xf5, 0x4d, 0x32, 0xc8, 0x8b, 0xc8, 0x1d, 0xb5, 0x15, 0xf9, 0x0e, - 0xe1, 0x10, 0x47, 0x9c, 0xc0, 0x30, 0xcf, 0xb3, 0x8b, 0x68, 0x38, 0x0d, 0x48, 0x2c, 0xb6, 0x91, - 0x10, 0x03, 0xe9, 0xa3, 0xf6, 0x7e, 0x82, 0x1a, 0xd9, 0x5c, 0xf8, 0xf9, 0x21, 0xf4, 0xaa, 0xa3, - 0x5d, 0xf8, 0xf0, 0x05, 0x88, 0x69, 0x1c, 0x56, 0x7b, 0xeb, 0x55, 0xf8, 0x48, 0xee, 0x29, 0x05, - 0xaf, 0xb1, 0x6f, 0xa1, 0xe6, 0x45, 0xd4, 0x62, 0xef, 0x7d, 0x1b, 0x14, 0xba, 0x53, 0x30, 0xd6, - 0x24, 0xd4, 0x30, 0x78, 0xe3, 0x9a, 0xff, 0x9a, 0xe0, 0xd2, 0x7d, 0xbe, 0x23, 0x22, 0xbf, 0x8f, - 0xf0, 0xd2, 0x7d, 0x81, 0xe2, 0x47, 0x60, 0xb6, 0x90, 0x59, 0x46, 0xa5, 0x69, 0x99, 0xea, 0x7f, - 0x3e, 0x38, 0x2c, 0x57, 0xc1, 0x84, 0xd1, 0xb4, 0x4c, 0x1c, 0x86, 0xc2, 0x3f, 0x04, 0x14, 0x24, - 0xf8, 0x5f, 0xcb, 0xdb, 0xd6, 0x7d, 0x06, 0xdd, 0x35, 0x0f, 0x13, 0x06, 0x35, 0x26, 0x3c, 0xd6, - 0x0f, 0xcb, 0x98, 0xe8, 0x51, 0x76, 0xfa, 0x90, 0x7d, 0x32, 0xf4, 0x6e, 0x23, 0x5d, 0xe1, 0xc3, - 0x62, 0x15, 0x78, 0x90, 0xe1, 0x8c, 0xad, 0xc5, 0xa1, 0x0c, 0x67, 0x31, 0x0c, 0x8c, 0xe0, 0xc6, - 0x8a, 0x10, 0xc7, 0xd4, 0xd7, 0x80, 0x0f, 0x80, 0xce, 0xf0, 0xcc, 0xc3, 0x01, 0xd1, 0x39, 0x1c, - 0x13, 0xf1, 0xc3, 0x34, 0x44, 0x26, 0xb5, 0x78, 0xd4, 0xff, 0x32, 0x0c, 0x70, 0x6e, 0x1b, 0xc4, - 0x5f, 0x81, 0x78, 0x2b, 0xa8, 0x6f, 0x93, 0x44, 0x43, 0xa0, 0xec, 0x93, 0xa0, 0x47, 0x65, 0x28, - 0x08, 0xbe, 0x45, 0x28, 0x36, 0x89, 0x48, 0xf9, 0xe9, 0x03, 0xf8, 0x42, 0x19, 0x66, 0xb0, 0x8f, - 0x40, 0x1b, 0xe9, 0x36, 0xe9, 0x28, 0x87, 0xe2, 0x28, 0xff, 0x6e, 0xe1, 0x00, 0x3f, 0xbc, 0x1c, - 0x42, 0x3e, 0x86, 0x02, 0x85, 0x58, 0x74, 0x1f, 0x41, 0x16, 0x46, 0xb2, 0x8d, 0x52, 0x08, 0x58, - 0xa0, 0x2a, 0x3e, 0x1c, 0x3c, 0x12, 0x7a, 0xe4, 0xf2, 0xc2, 0xf0, 0x1b, 0xdb, 0x88, 0x3d, 0x72, - 0x45, 0x98, 0x48, 0x1f, 0x93, 0x37, 0xdd, 0x4c, 0x17, 0x9c, 0x1b, 0xfa, 0x85, 0x36, 0x52, 0x5f, - 0x9b, 0x0d, 0x4e, 0xb4, 0x7d, 0x7e, 0x28, 0x1e, 0x98, 0x07, 0x08, 0x88, 0xaf, 0x40, 0xd6, 0xb6, - 0x2e, 0x91, 0xa5, 0xad, 0x69, 0x0d, 0x3f, 0x93, 0xeb, 0x29, 0xdb, 0x3b, 0xdb, 0x26, 0x39, 0x19, - 0x3a, 0xad, 0xf9, 0xaf, 0xca, 0x75, 0x30, 0x7d, 0xc9, 0x70, 0xb7, 0x96, 0x90, 0xde, 0x42, 0xb6, - 0x66, 0x5d, 0xc2, 0x1e, 0x73, 0xe3, 0x1a, 0x9f, 0xc8, 0xfb, 0xaf, 0x08, 0xd8, 0x97, 0x9e, 0x50, - 0x46, 0x73, 0xfc, 0x2d, 0x89, 0xe5, 0x19, 0xcd, 0x55, 0xfa, 0x0a, 0xf3, 0x01, 0x19, 0x26, 0x34, - 0xeb, 0x12, 0x55, 0x92, 0xff, 0xe3, 0x70, 0x75, 0x24, 0xf1, 0x44, 0x0f, 0x4b, 0x2e, 0x60, 0x7f, - 0xe4, 0x13, 0xbd, 0xd8, 0xe2, 0x47, 0x72, 0x72, 0x69, 0x4a, 0xb3, 0x2e, 0xd5, 0x91, 0x4b, 0x5a, - 0x84, 0xba, 0x3e, 0x24, 0x27, 0x6b, 0xc3, 0x21, 0x04, 0xe9, 0x3c, 0x3c, 0x78, 0x4f, 0xba, 0x8b, - 0x10, 0x08, 0x28, 0x60, 0x71, 0xd4, 0xbb, 0x08, 0x7d, 0x39, 0x18, 0x41, 0x8c, 0x14, 0x19, 0x26, - 0x35, 0xeb, 0x92, 0x37, 0x34, 0x2c, 0x18, 0xed, 0xf6, 0x70, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0x2f, - 0x06, 0x9f, 0x8b, 0x91, 0x1b, 0xff, 0x7d, 0x18, 0x48, 0x1f, 0x86, 0xe7, 0x91, 0xc6, 0xe2, 0x8f, - 0xd0, 0xe6, 0x70, 0x70, 0x18, 0xb4, 0x41, 0x04, 0x6c, 0x1c, 0x5a, 0x83, 0x88, 0xe2, 0x60, 0x24, - 0x3b, 0x27, 0x33, 0x25, 0x3c, 0xcc, 0x0f, 0xb7, 0x4d, 0xbc, 0x37, 0x99, 0x6b, 0x22, 0x1d, 0x76, - 0x39, 0x46, 0x86, 0x82, 0x46, 0x02, 0x17, 0x44, 0x01, 0x1e, 0xd2, 0xc7, 0xe3, 0x63, 0x32, 0x4c, - 0x11, 0x16, 0x1e, 0x26, 0x56, 0xc0, 0x40, 0x8d, 0x8a, 0xad, 0xc1, 0xe1, 0x34, 0xaa, 0x18, 0x0e, - 0x46, 0x72, 0x2b, 0xa8, 0x67, 0xc7, 0x0d, 0x70, 0x7c, 0x3c, 0x0a, 0xc1, 0x81, 0x8d, 0xb1, 0x21, - 0x1e, 0x21, 0x1f, 0xc4, 0x18, 0x3b, 0xa4, 0x63, 0xe4, 0xcf, 0x0b, 0x5a, 0xd1, 0x30, 0x31, 0x38, - 0x40, 0x53, 0x18, 0x22, 0x0c, 0x03, 0x36, 0x85, 0x43, 0x42, 0xe2, 0x1b, 0x32, 0x00, 0x61, 0x60, - 0xc5, 0xda, 0xc5, 0x97, 0xf9, 0x0c, 0xa1, 0x3b, 0xeb, 0x76, 0xab, 0x97, 0xfb, 0xb8, 0xd5, 0x27, - 0x0c, 0xe1, 0x92, 0x74, 0x25, 0x90, 0x91, 0xb2, 0x57, 0xc9, 0x91, 0xaf, 0x04, 0xc6, 0x97, 0x9f, - 0x3e, 0xc6, 0x5f, 0x23, 0xd6, 0x5c, 0x78, 0xc0, 0xf4, 0x37, 0x87, 0x82, 0x32, 0x33, 0xfb, 0x97, - 0xf9, 0xd9, 0xff, 0x01, 0xb0, 0x1d, 0xd4, 0x46, 0xec, 0x77, 0x70, 0x34, 0x7d, 0x1b, 0xf1, 0xf0, - 0x0e, 0x88, 0xfe, 0x7c, 0x16, 0x8e, 0xd2, 0x4e, 0xe4, 0xc7, 0x01, 0xe2, 0x84, 0xe7, 0xf0, 0xb8, - 0x4e, 0xb2, 0x0f, 0xca, 0xc3, 0x5a, 0x90, 0x4a, 0xb2, 0x94, 0x29, 0xc0, 0xde, 0x48, 0x56, 0x37, - 0xf2, 0xe5, 0xfb, 0x3b, 0xba, 0xd9, 0x12, 0x0f, 0xf7, 0xdb, 0x07, 0x78, 0x7f, 0xad, 0x51, 0xe6, - 0xd7, 0x1a, 0x7b, 0xac, 0x4c, 0x26, 0xde, 0xb9, 0xc6, 0x22, 0x23, 0xec, 0x8e, 0x7c, 0xe7, 0x3a, - 0xba, 0xec, 0xf4, 0x51, 0x7a, 0xaf, 0x0c, 0xd9, 0xba, 0x65, 0xbb, 0xea, 0xf3, 0x93, 0xb4, 0x4e, - 0x22, 0xf9, 0x10, 0x24, 0xff, 0x5d, 0x29, 0x71, 0xb7, 0x34, 0x9f, 0x8d, 0x3f, 0xea, 0xac, 0xbb, - 0x3a, 0xf6, 0xea, 0xf6, 0xca, 0x67, 0xae, 0x6b, 0x4e, 0x1a, 0x4f, 0x87, 0xc8, 0xaf, 0x1e, 0x7d, - 0x00, 0x23, 0xb5, 0x78, 0x3a, 0x91, 0x25, 0xa7, 0x8f, 0xdb, 0x83, 0x47, 0xa9, 0x6f, 0xeb, 0x82, - 0xd1, 0x46, 0xea, 0xf3, 0x89, 0xcb, 0x48, 0x55, 0xdf, 0x46, 0xe2, 0x47, 0x62, 0x62, 0x5d, 0x5b, - 0x71, 0x7c, 0x59, 0x39, 0x8c, 0x2f, 0x9b, 0xb4, 0x41, 0x91, 0x03, 0xe8, 0x84, 0xa5, 0x51, 0x37, - 0xa8, 0x98, 0xb2, 0x47, 0x12, 0xa7, 0xf3, 0x58, 0x1d, 0xb9, 0xc4, 0xa8, 0xac, 0xf9, 0x37, 0xb0, - 0x3c, 0x63, 0x28, 0x11, 0x3b, 0x83, 0x0b, 0x5e, 0xe4, 0xae, 0x0b, 0x5e, 0x3e, 0xc0, 0x82, 0xb3, - 0xc2, 0x83, 0xf3, 0xa4, 0x68, 0x01, 0xf1, 0x4c, 0x0e, 0x05, 0xa6, 0x77, 0x04, 0x30, 0xad, 0x72, - 0x30, 0xdd, 0x3e, 0x20, 0x17, 0xe9, 0x03, 0xf6, 0x2b, 0x39, 0x38, 0x4a, 0x26, 0xfd, 0x45, 0xb3, - 0x45, 0x23, 0xac, 0xbe, 0x55, 0x3a, 0xe4, 0xcd, 0xb6, 0xfd, 0x21, 0x58, 0xb9, 0x58, 0xce, 0xb9, - 0xee, 0xdb, 0xf1, 0xe7, 0x48, 0x38, 0x57, 0xaf, 0x13, 0xc5, 0x3b, 0x6d, 0xe2, 0x37, 0xe4, 0x07, - 0xff, 0xf1, 0x77, 0x19, 0x8d, 0x89, 0xdf, 0x65, 0xf4, 0xa7, 0xc9, 0xd6, 0xed, 0x70, 0xd1, 0x5d, - 0x02, 0x4f, 0xd9, 0x76, 0x4a, 0xb0, 0xa2, 0x27, 0xc0, 0xdd, 0x4f, 0x86, 0x3b, 0x59, 0x18, 0x41, - 0x64, 0x40, 0x77, 0x32, 0x4c, 0xe0, 0x30, 0xdd, 0xc9, 0xfa, 0x31, 0x30, 0x82, 0x5b, 0xed, 0x73, - 0x74, 0x37, 0x1f, 0xb7, 0x1b, 0xf5, 0xaf, 0xa4, 0xd4, 0x47, 0xe9, 0x1f, 0x66, 0x12, 0xf9, 0x3f, - 0x63, 0xbe, 0xe2, 0x87, 0xe9, 0x24, 0x1e, 0xcd, 0x71, 0xe4, 0x46, 0xb0, 0x6e, 0x24, 0x61, 0x5f, - 0xf4, 0xf3, 0x46, 0xcb, 0xdd, 0x1a, 0xd2, 0x89, 0x8e, 0x4b, 0x1e, 0x2d, 0xff, 0x7a, 0x64, 0xfc, - 0xa2, 0xfe, 0x6b, 0x26, 0x51, 0x08, 0xa9, 0x40, 0x24, 0x98, 0xad, 0x08, 0x11, 0x27, 0x08, 0xfc, - 0x14, 0x4b, 0x6f, 0x84, 0x1a, 0x7d, 0xce, 0x68, 0x21, 0xeb, 0x61, 0xa8, 0xd1, 0x98, 0xaf, 0xe1, - 0x69, 0x74, 0x1c, 0xb9, 0x9f, 0x50, 0x8d, 0x0e, 0x44, 0x32, 0x24, 0x8d, 0x8e, 0xa5, 0x97, 0xbe, - 0x8c, 0x5f, 0x3d, 0x45, 0x27, 0x52, 0xcb, 0x86, 0x79, 0x51, 0xfd, 0xe7, 0xbc, 0x7f, 0x31, 0xf3, - 0x79, 0xc3, 0xdd, 0xa2, 0xb1, 0x60, 0x7e, 0x4f, 0xf8, 0x6e, 0x94, 0x01, 0xe2, 0xbd, 0xf0, 0xe1, - 0xa4, 0x72, 0xfb, 0xc2, 0x49, 0x15, 0x61, 0xda, 0x30, 0x5d, 0x64, 0x9b, 0x7a, 0x7b, 0xa1, 0xad, - 0x6f, 0x3a, 0xa7, 0xc6, 0x7a, 0x5e, 0x5e, 0x57, 0x61, 0xf2, 0x68, 0xfc, 0x1f, 0xec, 0xf5, 0x95, - 0xe3, 0xfc, 0xf5, 0x95, 0x11, 0xd1, 0xaf, 0x26, 0xa2, 0xa3, 0x5f, 0x05, 0xd1, 0xad, 0xa0, 0x7f, - 0x70, 0x6c, 0x51, 0xdb, 0x38, 0x61, 0xb8, 0xbf, 0xb3, 0x82, 0x51, 0xd8, 0x82, 0xd0, 0x8f, 0xaf, - 0x93, 0x13, 0xad, 0xee, 0x79, 0x8a, 0x30, 0xdb, 0xad, 0x04, 0x89, 0x2d, 0x54, 0xb6, 0xf2, 0x72, - 0x57, 0xe5, 0x03, 0x93, 0x27, 0x2b, 0x60, 0xf2, 0xb0, 0x4a, 0x95, 0x13, 0x53, 0xaa, 0x24, 0x8b, - 0x85, 0x22, 0xb5, 0x1d, 0xc1, 0x69, 0xa4, 0x1c, 0x1c, 0xf3, 0xa3, 0xdd, 0x76, 0x3a, 0x48, 0xb7, - 0x75, 0xb3, 0x89, 0xd4, 0x4f, 0x4a, 0xc3, 0x30, 0x7b, 0x17, 0x60, 0xdc, 0x68, 0x5a, 0x66, 0xdd, - 0x78, 0x96, 0x7f, 0xb9, 0x5c, 0x7c, 0x90, 0x75, 0x2c, 0x91, 0x0a, 0xfd, 0x43, 0x0b, 0xfe, 0x55, - 0x2a, 0x30, 0xd1, 0xd4, 0xed, 0x16, 0x09, 0xc2, 0x97, 0xeb, 0xba, 0xc8, 0x29, 0x92, 0x50, 0xc9, - 0xff, 0x45, 0x0b, 0xff, 0x56, 0x6a, 0xbc, 0x10, 0xf3, 0x5d, 0xd1, 0x3c, 0x22, 0x89, 0xcd, 0x87, - 0x3f, 0x71, 0x32, 0xf7, 0xa4, 0x63, 0xa3, 0x36, 0xbe, 0x83, 0x9e, 0xf4, 0x10, 0x13, 0x5a, 0x98, - 0x90, 0x74, 0x79, 0x00, 0x17, 0xb5, 0x0f, 0x8d, 0x51, 0x2f, 0x0f, 0x08, 0x71, 0x91, 0xbe, 0x66, - 0xbe, 0x2b, 0x0f, 0xd3, 0xa4, 0x57, 0xa3, 0xe2, 0x54, 0x5f, 0x88, 0xaf, 0x90, 0x76, 0xef, 0x41, - 0x7b, 0x6a, 0xfd, 0xe0, 0x63, 0x72, 0x01, 0xe4, 0x8b, 0x41, 0xc0, 0x41, 0xef, 0x31, 0xe9, 0xbe, - 0xbd, 0xcf, 0xd7, 0x2c, 0xe1, 0x69, 0xd4, 0xfb, 0xf6, 0xf1, 0xc5, 0xa7, 0x8f, 0xcf, 0xaf, 0xca, - 0x20, 0x17, 0x5b, 0x2d, 0xb5, 0x79, 0x70, 0x28, 0xae, 0x81, 0x49, 0xbf, 0xcd, 0x84, 0x31, 0x20, - 0xd9, 0xa4, 0xa4, 0x8b, 0xa0, 0x81, 0x6c, 0x8a, 0xad, 0x91, 0xef, 0x2a, 0xc4, 0x94, 0x9d, 0x3e, - 0x28, 0xbf, 0x39, 0x46, 0x1b, 0xcd, 0x9c, 0x65, 0x5d, 0xc4, 0x47, 0x65, 0x9e, 0x2f, 0x43, 0x6e, - 0x01, 0xb9, 0xcd, 0xad, 0x21, 0xb5, 0x99, 0x1d, 0xbb, 0xed, 0xb7, 0x99, 0x7d, 0xf7, 0xe1, 0xf7, - 0xb7, 0x61, 0x7d, 0xb6, 0x66, 0x31, 0x4b, 0xa3, 0x8e, 0xee, 0x1c, 0x5b, 0x7a, 0xfa, 0xe0, 0xfc, - 0xab, 0x0c, 0x33, 0xc1, 0x0a, 0x17, 0xc1, 0xe4, 0x57, 0x32, 0x0f, 0xb7, 0xf5, 0x4e, 0xf5, 0x8b, - 0xc9, 0x42, 0xa4, 0x05, 0x32, 0xe5, 0x6b, 0x96, 0xf2, 0xc2, 0x62, 0x82, 0xe0, 0x69, 0x62, 0x0c, - 0x8e, 0x60, 0x06, 0x2f, 0xc3, 0x38, 0x66, 0x68, 0xde, 0xd8, 0xc5, 0xae, 0x83, 0xdc, 0x42, 0xe3, - 0xb3, 0x87, 0xb2, 0xd0, 0x78, 0x3b, 0xbf, 0xd0, 0x28, 0x18, 0xf1, 0xd8, 0x5f, 0x67, 0x4c, 0xe8, - 0x4b, 0xe3, 0xfd, 0x3f, 0xf4, 0x65, 0xc6, 0x04, 0xbe, 0x34, 0x7d, 0xca, 0x4f, 0x1f, 0xd1, 0xd7, - 0xfd, 0x27, 0xda, 0xd9, 0xfa, 0x1b, 0xaa, 0xea, 0xff, 0x75, 0x0c, 0xb2, 0xe7, 0xbc, 0x87, 0xff, - 0x15, 0xde, 0x88, 0xf5, 0xf2, 0x21, 0x04, 0x67, 0x78, 0x2a, 0x64, 0x3d, 0xfa, 0x74, 0xda, 0x72, - 0xa3, 0xd8, 0xee, 0xae, 0xc7, 0x88, 0x86, 0xff, 0x53, 0x4e, 0x42, 0xde, 0xb1, 0x76, 0xec, 0xa6, - 0x67, 0x3e, 0x7b, 0x1a, 0x43, 0xdf, 0x92, 0x06, 0x25, 0xe5, 0x48, 0xcf, 0x0e, 0xcf, 0x65, 0x94, - 0xb9, 0x20, 0x49, 0xe6, 0x2e, 0x48, 0x4a, 0xb0, 0x7f, 0x20, 0xc0, 0x5b, 0xfa, 0x1a, 0xf1, 0x57, - 0xf8, 0xae, 0xc0, 0xd6, 0xb0, 0x60, 0x8f, 0x10, 0xcb, 0x41, 0xd5, 0x21, 0xa9, 0xc3, 0x37, 0x2f, - 0xda, 0x20, 0x0e, 0xfc, 0x48, 0x1d, 0xbe, 0x05, 0x78, 0x18, 0xc9, 0x29, 0xf5, 0x3c, 0x75, 0x52, - 0xbd, 0x77, 0x98, 0xe8, 0x66, 0x39, 0xa5, 0x3f, 0x10, 0x3a, 0x43, 0x74, 0x5e, 0x1d, 0x18, 0x9d, - 0x43, 0x72, 0x5f, 0xfd, 0x03, 0x19, 0x47, 0xc2, 0xf4, 0x8d, 0x1c, 0xf1, 0x8b, 0x8e, 0x12, 0x43, - 0xe4, 0x8d, 0xc1, 0x5c, 0x1c, 0xe8, 0xe9, 0xc1, 0x43, 0x83, 0xf3, 0xa2, 0x63, 0xf8, 0x1f, 0x75, - 0x68, 0x70, 0x51, 0x46, 0xd2, 0x07, 0xf2, 0x8d, 0xe4, 0x62, 0xb1, 0x62, 0xd3, 0x35, 0x76, 0x87, - 0xdc, 0xd2, 0xf8, 0xe1, 0x25, 0x61, 0x34, 0xe0, 0x7d, 0x12, 0x22, 0x1c, 0x8e, 0x3a, 0x1a, 0xb0, - 0x18, 0x1b, 0xe9, 0xc3, 0xf4, 0xb7, 0x79, 0x4f, 0x7a, 0x74, 0x6d, 0xe6, 0x4d, 0x74, 0x35, 0x00, - 0x1d, 0x1c, 0xad, 0x33, 0x30, 0xc5, 0x4c, 0xfd, 0xfd, 0x0b, 0x6b, 0xb8, 0xb4, 0xa4, 0x07, 0xdd, - 0x03, 0x91, 0x0d, 0x7d, 0x61, 0x20, 0xc1, 0x82, 0xaf, 0x08, 0x13, 0x23, 0xb9, 0x0f, 0xce, 0x1f, - 0xc3, 0x46, 0x84, 0xd5, 0xef, 0xb1, 0x58, 0xd5, 0x78, 0xac, 0x6e, 0x15, 0x11, 0x93, 0xd8, 0x98, - 0x26, 0x34, 0x6f, 0x7c, 0x67, 0x00, 0x97, 0xc6, 0xc1, 0xf5, 0xd4, 0x81, 0xf9, 0x48, 0x1f, 0xb1, - 0x57, 0x90, 0xee, 0xb0, 0x4e, 0x4c, 0xf6, 0xe1, 0x74, 0x87, 0x74, 0x36, 0x20, 0x73, 0xb3, 0x81, - 0x84, 0xfe, 0xf6, 0xa1, 0x1b, 0xa9, 0xcf, 0x5c, 0x3f, 0x88, 0xb2, 0x43, 0xf6, 0xb7, 0xef, 0xcb, - 0x41, 0xfa, 0xe0, 0xfc, 0xa3, 0x0c, 0xb0, 0x68, 0x5b, 0x3b, 0x9d, 0x9a, 0xdd, 0x42, 0xb6, 0xfa, - 0x37, 0xe1, 0x04, 0xe0, 0xa5, 0x43, 0x98, 0x00, 0xac, 0x02, 0x6c, 0x06, 0xc4, 0xa9, 0x86, 0xdf, - 0x2c, 0x66, 0xee, 0x87, 0x4c, 0x69, 0x0c, 0x0d, 0xfe, 0xca, 0xd9, 0xa7, 0xf1, 0x18, 0xc7, 0xf5, - 0x59, 0x21, 0xb9, 0x61, 0x4e, 0x00, 0xde, 0x1d, 0x60, 0xdd, 0xe0, 0xb0, 0xbe, 0xeb, 0x00, 0x9c, - 0xa4, 0x8f, 0xf9, 0x3f, 0x8d, 0xc1, 0x24, 0xd9, 0xae, 0x23, 0x32, 0xfd, 0xfb, 0x10, 0xf4, 0xdf, - 0x1c, 0x02, 0xe8, 0x6b, 0x30, 0x65, 0x85, 0xd4, 0x49, 0x9f, 0xca, 0x2e, 0xc0, 0xc4, 0xc2, 0xce, - 0xf0, 0xa5, 0x71, 0x64, 0xd4, 0x8f, 0xb3, 0xc8, 0x6b, 0x3c, 0xf2, 0xb7, 0xc7, 0xc8, 0x9b, 0xa1, - 0x38, 0x4c, 0xe8, 0xdf, 0x13, 0x40, 0xbf, 0xc6, 0x41, 0x5f, 0x3c, 0x08, 0x2b, 0x23, 0x08, 0xb7, - 0x2f, 0x43, 0x16, 0x9f, 0x8e, 0xfb, 0xad, 0x14, 0xe7, 0xf7, 0xa7, 0x60, 0x0c, 0x37, 0xd9, 0x60, - 0xde, 0xe1, 0xbf, 0x7a, 0x5f, 0xf4, 0x0d, 0x17, 0xd9, 0x81, 0xc7, 0x82, 0xff, 0xea, 0xf1, 0xe0, - 0x7b, 0x25, 0x3b, 0xa7, 0xf2, 0x64, 0x23, 0x32, 0x48, 0x18, 0x78, 0x52, 0xc2, 0x4a, 0x7c, 0x68, - 0xe7, 0xe5, 0x06, 0x99, 0x94, 0xf4, 0x61, 0x24, 0x7d, 0xe0, 0xbf, 0x92, 0x85, 0x53, 0x64, 0x55, - 0x69, 0xc1, 0xb6, 0xb6, 0xbb, 0x6e, 0xb7, 0x32, 0x0e, 0xae, 0x0b, 0xd7, 0xc3, 0x8c, 0xcb, 0xf9, - 0x63, 0x53, 0x9d, 0xe8, 0x4a, 0x55, 0xff, 0x8c, 0xf5, 0xa9, 0x78, 0x3a, 0x8f, 0xe4, 0x5c, 0x8c, - 0x00, 0xa3, 0x78, 0x4f, 0xbc, 0x50, 0x2f, 0xc8, 0x28, 0xb3, 0x48, 0x25, 0x0f, 0xb4, 0x66, 0x19, - 0xe8, 0x54, 0x4e, 0x44, 0xa7, 0x3e, 0x18, 0xe8, 0xd4, 0xcf, 0x72, 0x3a, 0xb5, 0x78, 0x70, 0x91, - 0xa4, 0xaf, 0x5b, 0xaf, 0x0d, 0x36, 0x86, 0x82, 0x6d, 0xbb, 0xed, 0x14, 0x36, 0xeb, 0x58, 0x7f, - 0xa4, 0x2c, 0xe7, 0x8f, 0xc4, 0xdf, 0x47, 0x91, 0x60, 0x26, 0xcc, 0x73, 0x1d, 0xa1, 0x4b, 0x33, - 0x20, 0x19, 0x3e, 0x77, 0x92, 0xd1, 0x1a, 0x68, 0xae, 0x1b, 0x5b, 0xd0, 0x08, 0xd6, 0x96, 0x66, - 0x20, 0xbf, 0x60, 0xb4, 0x5d, 0x64, 0xab, 0x5f, 0xa3, 0x33, 0xdd, 0xd7, 0xa6, 0x38, 0x00, 0xcc, - 0x43, 0x7e, 0x03, 0x97, 0x46, 0x4d, 0xe6, 0x9b, 0xc4, 0x5a, 0x0f, 0xe1, 0x50, 0xa3, 0xff, 0x26, - 0x8d, 0xce, 0xd7, 0x45, 0x66, 0x68, 0x53, 0xe4, 0x04, 0xd1, 0xf9, 0xfa, 0xb3, 0x30, 0x92, 0x8b, - 0xa9, 0xf2, 0x1a, 0xda, 0xf6, 0xc6, 0xf8, 0x8b, 0xe9, 0x21, 0x5c, 0x00, 0xd9, 0x68, 0x39, 0xb8, - 0x73, 0x9c, 0xd0, 0xbc, 0xc7, 0xa4, 0xbe, 0x42, 0xdd, 0xa2, 0x22, 0x2c, 0x8f, 0xda, 0x57, 0x48, - 0x88, 0x8b, 0xf4, 0x31, 0xfb, 0x21, 0x76, 0x14, 0xed, 0xb4, 0xf5, 0x26, 0xf2, 0xb8, 0x4f, 0x0d, - 0x35, 0xd2, 0x93, 0x65, 0xfd, 0x9e, 0x8c, 0x69, 0xa7, 0xb9, 0x03, 0xb4, 0xd3, 0x41, 0x97, 0x21, - 0x03, 0x99, 0xe3, 0x8a, 0x1f, 0xda, 0x32, 0x64, 0x2c, 0x1b, 0x23, 0xb8, 0x76, 0xd4, 0x3f, 0x48, - 0x3b, 0xd2, 0xd6, 0x3a, 0xe8, 0x26, 0x0d, 0x15, 0xd6, 0xd0, 0x0e, 0xcd, 0x0e, 0xb2, 0x49, 0x13, - 0xcd, 0xc3, 0x08, 0xd0, 0x9a, 0xa1, 0x68, 0x7d, 0x81, 0x0e, 0xa3, 0x29, 0xef, 0x93, 0x3a, 0x96, - 0xed, 0x26, 0xdb, 0x27, 0xf5, 0xb8, 0xd3, 0xf0, 0x7f, 0x49, 0x0f, 0x5e, 0xf1, 0xe7, 0xaa, 0x87, - 0x35, 0x7c, 0x26, 0x38, 0x78, 0xd5, 0x8f, 0x81, 0xf4, 0xe1, 0x7d, 0xdb, 0x21, 0x0d, 0x9e, 0x83, - 0x36, 0x47, 0xda, 0x06, 0x86, 0x36, 0x74, 0x0e, 0xd2, 0x1c, 0xa3, 0x79, 0x48, 0x1f, 0xaf, 0xef, - 0x31, 0x03, 0xe7, 0x5b, 0x46, 0x38, 0x70, 0xfa, 0x2d, 0x33, 0x37, 0x60, 0xcb, 0x1c, 0x74, 0xff, - 0x87, 0xca, 0x7a, 0x78, 0x03, 0xe6, 0x20, 0xfb, 0x3f, 0x31, 0x4c, 0xa4, 0x8f, 0xf8, 0x5b, 0x65, - 0xc8, 0xd5, 0x47, 0x3f, 0x5e, 0x0e, 0x3a, 0x17, 0xc1, 0xb2, 0xaa, 0x0f, 0x6d, 0xb8, 0x1c, 0x64, - 0x2e, 0x12, 0xc9, 0xc2, 0x08, 0x02, 0xef, 0x1f, 0x85, 0x29, 0xbc, 0x24, 0xe2, 0x6f, 0xb3, 0x7e, - 0x8f, 0x8e, 0x9a, 0x0f, 0xa5, 0xd8, 0x56, 0xef, 0x86, 0x71, 0x7f, 0xff, 0x8e, 0x8e, 0x9c, 0xb3, - 0x62, 0xed, 0xd3, 0xe7, 0x52, 0x0b, 0xfe, 0x3f, 0x90, 0x33, 0xc4, 0xd0, 0xf7, 0x6a, 0x07, 0x75, - 0x86, 0x38, 0xd4, 0xfd, 0xda, 0x3f, 0x0d, 0x47, 0xd4, 0xff, 0x9c, 0x1e, 0xe6, 0xdd, 0xfb, 0xb8, - 0xd9, 0x1e, 0xfb, 0xb8, 0x9f, 0x64, 0xb1, 0xac, 0xf3, 0x58, 0xde, 0x21, 0x2a, 0xc2, 0x21, 0x8e, - 0xb5, 0xef, 0x0d, 0xe0, 0x3c, 0xc7, 0xc1, 0x39, 0x77, 0x20, 0x5e, 0x46, 0x70, 0xf0, 0x31, 0x1b, - 0x8e, 0xb9, 0x9f, 0x4a, 0xb1, 0x1d, 0x77, 0x9d, 0xaa, 0xc8, 0xee, 0x3b, 0x55, 0xc1, 0xb5, 0xf4, - 0xdc, 0x01, 0x5b, 0xfa, 0xa7, 0x58, 0xed, 0x68, 0xf0, 0xda, 0xf1, 0x54, 0x71, 0x44, 0x86, 0x37, - 0x32, 0xbf, 0x2f, 0x50, 0x8f, 0xf3, 0x9c, 0x7a, 0x94, 0x0e, 0xc6, 0x4c, 0xfa, 0xfa, 0xf1, 0x87, - 0xfe, 0x84, 0xf6, 0x90, 0xdb, 0xfb, 0xa0, 0x5b, 0xc5, 0x9c, 0x10, 0x87, 0x36, 0x72, 0x0f, 0xb2, - 0x55, 0xdc, 0x8f, 0x93, 0x11, 0xc4, 0x62, 0x9b, 0x86, 0x49, 0xcc, 0xd3, 0x79, 0xa3, 0xb5, 0x89, - 0x5c, 0xf5, 0x75, 0xc4, 0x47, 0xd1, 0x8f, 0x7c, 0x39, 0xa4, 0xf0, 0x44, 0x51, 0xe7, 0x5d, 0x93, - 0x7a, 0x74, 0x10, 0x26, 0x67, 0x19, 0x06, 0x47, 0x1d, 0x41, 0xb1, 0x2f, 0x07, 0xe9, 0x43, 0xf6, - 0x71, 0xe2, 0x6e, 0xb3, 0xac, 0xef, 0x59, 0x3b, 0xae, 0xfa, 0xc0, 0x10, 0x3a, 0xe8, 0x39, 0xc8, - 0xb7, 0x31, 0x35, 0x7a, 0x2c, 0x23, 0x7e, 0xba, 0x43, 0x45, 0x40, 0xca, 0xd7, 0xe8, 0x9f, 0x49, - 0xcf, 0x66, 0x84, 0x72, 0x24, 0x74, 0x46, 0x7d, 0x36, 0xa3, 0x4f, 0xf9, 0x23, 0xb9, 0x63, 0x67, - 0xdc, 0x2b, 0xdd, 0xd8, 0x36, 0xdc, 0x21, 0x45, 0x70, 0x68, 0x7b, 0xb4, 0xfc, 0x08, 0x0e, 0xf8, - 0x25, 0xe9, 0x89, 0x51, 0x46, 0x2a, 0xde, 0xef, 0xa3, 0x3e, 0x31, 0x1a, 0x5f, 0x7c, 0xfa, 0x98, - 0xfc, 0x3a, 0x69, 0x59, 0xe7, 0x88, 0xf3, 0x6d, 0x8a, 0x7e, 0xbd, 0x03, 0x37, 0x16, 0xc2, 0xda, - 0xe1, 0x35, 0x96, 0x9e, 0xe5, 0xa7, 0x0f, 0xcc, 0x7f, 0xfb, 0x29, 0xc8, 0xcd, 0xa3, 0x0b, 0x3b, - 0x9b, 0xea, 0xed, 0x30, 0xde, 0xb0, 0x11, 0xaa, 0x98, 0x1b, 0x96, 0x27, 0x5d, 0xd7, 0x7b, 0xf6, - 0x21, 0xa1, 0x6f, 0x1e, 0x1e, 0x5b, 0x48, 0x6f, 0x85, 0xe7, 0xcf, 0xfc, 0x57, 0xf5, 0xe5, 0x12, - 0x64, 0xeb, 0xae, 0xee, 0xaa, 0x13, 0x01, 0xb6, 0xea, 0x03, 0x2c, 0x16, 0xb7, 0xf3, 0x58, 0x5c, - 0xcf, 0xc9, 0x02, 0x73, 0x30, 0xeb, 0xfd, 0x1f, 0x01, 0x80, 0x0a, 0xe3, 0xf7, 0x39, 0x96, 0xe9, - 0xe5, 0xf0, 0x8f, 0x40, 0xfa, 0xef, 0xea, 0x6b, 0x02, 0x71, 0xdf, 0xc9, 0x89, 0xfb, 0x31, 0x62, - 0x45, 0x8c, 0x60, 0xa5, 0x4d, 0x82, 0x09, 0x4f, 0xb4, 0x4b, 0x48, 0x6f, 0x39, 0xea, 0x23, 0x43, - 0xe5, 0x8f, 0x10, 0xb3, 0xfa, 0x61, 0xe1, 0x60, 0x9c, 0xa4, 0x56, 0x01, 0xf1, 0x68, 0x8f, 0x0e, - 0x7f, 0xf3, 0x5f, 0xe2, 0x83, 0x91, 0x9c, 0x85, 0xac, 0x61, 0x6e, 0x58, 0xd4, 0xbf, 0xf0, 0xca, - 0x08, 0xda, 0x9e, 0x4e, 0x68, 0x38, 0xa3, 0x60, 0xa4, 0xce, 0x78, 0xb6, 0x46, 0x72, 0xe9, 0x5d, - 0xd6, 0x2b, 0x5d, 0xfd, 0xff, 0xf7, 0x15, 0xb6, 0xa2, 0x40, 0xb6, 0xa3, 0xbb, 0x5b, 0xb4, 0x68, - 0xfc, 0xec, 0xd9, 0xc8, 0x3b, 0xa6, 0x6e, 0x5a, 0xe6, 0xde, 0xb6, 0xf1, 0xac, 0xe0, 0x6e, 0x5d, - 0x2e, 0xcd, 0xe3, 0x7c, 0x13, 0x99, 0xc8, 0xd6, 0x5d, 0x54, 0xdf, 0xdd, 0xc4, 0x73, 0xac, 0x71, - 0x8d, 0x4d, 0x4a, 0xac, 0xff, 0x1e, 0xc7, 0xd1, 0xfa, 0xbf, 0x61, 0xb4, 0x11, 0x8e, 0xd4, 0x44, - 0xf5, 0xdf, 0x7f, 0x4f, 0xa4, 0xff, 0x3d, 0x8a, 0x48, 0x1f, 0x8d, 0x7f, 0x93, 0x60, 0xaa, 0xee, - 0x29, 0x5c, 0x7d, 0x67, 0x7b, 0x5b, 0xb7, 0xf7, 0xd4, 0x6b, 0x43, 0x54, 0x18, 0xd5, 0xcc, 0xf0, - 0x7e, 0x29, 0x7f, 0x20, 0x7c, 0xad, 0x34, 0x6d, 0xda, 0x4c, 0x09, 0x89, 0xdb, 0xc1, 0xe3, 0x20, - 0xe7, 0xa9, 0xb7, 0xef, 0x71, 0x19, 0xdb, 0x10, 0x48, 0x4e, 0xc1, 0x88, 0x56, 0x7d, 0x79, 0x1b, - 0x41, 0x34, 0x0d, 0x09, 0x8e, 0xd6, 0x5d, 0xbd, 0x79, 0x71, 0xd1, 0xb2, 0xad, 0x1d, 0xd7, 0x30, - 0x91, 0xa3, 0x3e, 0x22, 0x44, 0xc0, 0xd7, 0xff, 0x4c, 0xa8, 0xff, 0xea, 0xbf, 0x67, 0x44, 0x47, - 0xd1, 0xa0, 0x5b, 0x65, 0xc9, 0x47, 0x04, 0xa8, 0x12, 0x1b, 0x17, 0x45, 0x28, 0xa6, 0x2f, 0xb4, - 0xb7, 0xc8, 0x50, 0x28, 0xdf, 0xdf, 0xb1, 0x6c, 0x77, 0xd9, 0x6a, 0xea, 0x6d, 0xc7, 0xb5, 0x6c, - 0xa4, 0xd6, 0x62, 0xa5, 0xe6, 0xf5, 0x30, 0x2d, 0xab, 0x19, 0x0e, 0x8e, 0xf4, 0x8d, 0x55, 0x3b, - 0x99, 0xd7, 0xf1, 0x8f, 0x0b, 0xef, 0x32, 0x12, 0xa9, 0x74, 0x73, 0x14, 0xa1, 0xe7, 0xbd, 0xba, - 0xb4, 0x64, 0x87, 0x25, 0xc4, 0x76, 0x1e, 0x85, 0x98, 0x1a, 0xc1, 0x52, 0xb9, 0x04, 0xd3, 0xf5, - 0x9d, 0x0b, 0x01, 0x11, 0x87, 0x35, 0x42, 0x5e, 0x2f, 0x1c, 0xa5, 0x82, 0x2a, 0x1e, 0x4b, 0x28, - 0x42, 0xbe, 0xd7, 0xc1, 0xb4, 0xc3, 0x66, 0xa3, 0x78, 0xf3, 0x89, 0x82, 0xd1, 0x29, 0xfa, 0x97, - 0x9a, 0xbe, 0x00, 0xdf, 0x27, 0xc1, 0x74, 0xad, 0x83, 0x4c, 0xd4, 0x22, 0x5e, 0x90, 0x9c, 0x00, - 0x5f, 0x9e, 0x50, 0x80, 0x1c, 0xa1, 0x08, 0x01, 0x86, 0x1e, 0xcb, 0xf3, 0xbe, 0xf0, 0xc2, 0x84, - 0x44, 0x82, 0x8b, 0x2b, 0x2d, 0x7d, 0xc1, 0x7d, 0x55, 0x82, 0x49, 0x6d, 0xc7, 0x5c, 0xb5, 0x2d, - 0x6f, 0x34, 0xb6, 0xd5, 0x3b, 0xc2, 0x0e, 0xe2, 0x26, 0x38, 0xd6, 0xda, 0xb1, 0xf1, 0xfa, 0x53, - 0xc5, 0xac, 0xa3, 0xa6, 0x65, 0xb6, 0x1c, 0x5c, 0x8f, 0x9c, 0xb6, 0xff, 0xc3, 0x6d, 0xd9, 0xe7, - 0x7f, 0x5b, 0xce, 0xa8, 0x2f, 0x14, 0x0e, 0x75, 0x43, 0x2a, 0xcf, 0x14, 0x2d, 0xde, 0x13, 0x08, - 0x06, 0xb4, 0xe9, 0x57, 0x42, 0xfa, 0xc2, 0xfd, 0x82, 0x04, 0x4a, 0xb1, 0xd9, 0xb4, 0x76, 0x4c, - 0xb7, 0x8e, 0xda, 0xa8, 0xe9, 0x36, 0x6c, 0xbd, 0x89, 0x58, 0xfb, 0xb9, 0x00, 0x72, 0xcb, 0xb0, - 0x69, 0x1f, 0xec, 0x3d, 0x52, 0x39, 0xbe, 0x5c, 0x78, 0xc7, 0x91, 0xd4, 0x72, 0x7f, 0x29, 0x09, - 0xc4, 0x29, 0xb6, 0xaf, 0x28, 0x58, 0x50, 0xfa, 0x52, 0xfd, 0x94, 0x04, 0x13, 0x7e, 0x8f, 0xbd, - 0x29, 0x22, 0xcc, 0x5f, 0x4f, 0x38, 0x19, 0x09, 0x88, 0x27, 0x90, 0xe1, 0xbb, 0x12, 0xcc, 0x2a, - 0xa2, 0xe8, 0x27, 0x13, 0x5d, 0x31, 0xb9, 0xe8, 0xbc, 0xd7, 0x6a, 0x6d, 0x7d, 0xa1, 0xb6, 0x3c, - 0x5f, 0xd6, 0x0a, 0xb2, 0xfa, 0x35, 0x09, 0xb2, 0xab, 0x86, 0xb9, 0xc9, 0x46, 0x57, 0x3a, 0xee, - 0xd9, 0x91, 0x2d, 0x74, 0x3f, 0x6d, 0xe9, 0xe4, 0x45, 0xb9, 0x05, 0x8e, 0x9b, 0x3b, 0xdb, 0x17, - 0x90, 0x5d, 0xdb, 0xc0, 0xa3, 0xac, 0xd3, 0xb0, 0xea, 0xc8, 0x24, 0x46, 0x68, 0x4e, 0xeb, 0xf9, - 0x8d, 0x37, 0xc1, 0x04, 0x26, 0x0f, 0x1e, 0x27, 0x11, 0x12, 0x0f, 0x98, 0x92, 0x18, 0xa6, 0x12, - 0x4d, 0x1b, 0x7a, 0x10, 0x4f, 0x5f, 0x53, 0xff, 0x28, 0x07, 0x27, 0x8a, 0xe6, 0x1e, 0xb6, 0x29, - 0x48, 0x07, 0x5f, 0xda, 0xd2, 0xcd, 0x4d, 0x84, 0x07, 0x88, 0x40, 0xe2, 0x6c, 0x88, 0xfe, 0x0c, - 0x1f, 0xa2, 0x5f, 0xd1, 0x60, 0xcc, 0xb2, 0x5b, 0xc8, 0x9e, 0xdb, 0xc3, 0x3c, 0x75, 0x2f, 0x3b, - 0xd3, 0x36, 0xd9, 0xab, 0x88, 0x59, 0x4a, 0x7e, 0xb6, 0x46, 0xfe, 0xd7, 0x7c, 0x42, 0x67, 0x6e, - 0x82, 0x31, 0x9a, 0xa6, 0x4c, 0xc1, 0x78, 0x4d, 0x9b, 0x2f, 0x6b, 0xeb, 0x95, 0xf9, 0xc2, 0x11, - 0xe5, 0x32, 0x38, 0x5a, 0x69, 0x94, 0xb5, 0x62, 0xa3, 0x52, 0xab, 0xae, 0xe3, 0xf4, 0x42, 0x46, - 0x7d, 0x5e, 0x56, 0xd4, 0xb3, 0x37, 0x9e, 0x99, 0x5e, 0xb0, 0x6a, 0x30, 0xd6, 0x24, 0x19, 0xf0, - 0x10, 0x3a, 0x99, 0xa8, 0x76, 0x94, 0x20, 0x49, 0xd0, 0x7c, 0x42, 0xca, 0x69, 0x80, 0x4b, 0xb6, - 0x65, 0x6e, 0x86, 0xa7, 0x0e, 0xc7, 0x35, 0x26, 0x45, 0x7d, 0x20, 0x03, 0x79, 0xf2, 0x0f, 0xbe, - 0x92, 0x04, 0x3f, 0x85, 0x82, 0xf7, 0xdf, 0x3d, 0x8b, 0x17, 0xcb, 0x2b, 0x9c, 0x68, 0xd1, 0x57, - 0x4f, 0x17, 0x89, 0x0c, 0x88, 0x25, 0x4c, 0xab, 0x72, 0x16, 0xf2, 0xe4, 0x5f, 0xea, 0x75, 0x10, - 0x1d, 0x5e, 0x94, 0x64, 0x13, 0xf4, 0x53, 0x16, 0x97, 0x69, 0xfa, 0xda, 0xfc, 0x11, 0x09, 0xc6, - 0xab, 0xc8, 0x2d, 0x6d, 0xa1, 0xe6, 0x45, 0xf5, 0xd1, 0xfc, 0x02, 0x68, 0xdb, 0x40, 0xa6, 0x7b, - 0xef, 0x76, 0x3b, 0x58, 0x00, 0xf5, 0x13, 0xd4, 0x17, 0xb0, 0x9d, 0xef, 0x5d, 0xbc, 0xfe, 0xdc, - 0xd8, 0xa3, 0xae, 0x7e, 0x09, 0x11, 0x2a, 0x73, 0x12, 0xf2, 0x36, 0x72, 0x76, 0xda, 0xfe, 0x22, - 0x1a, 0x7d, 0x53, 0x1f, 0x0c, 0xc4, 0x59, 0xe2, 0xc4, 0x79, 0x56, 0xbc, 0x88, 0x11, 0xc4, 0x2b, - 0xcd, 0xc2, 0x58, 0xc5, 0x34, 0x5c, 0x43, 0x6f, 0xab, 0x2f, 0xcc, 0xc2, 0x74, 0x1d, 0xb9, 0xab, - 0xba, 0xad, 0x6f, 0x23, 0x17, 0xd9, 0x8e, 0xfa, 0x03, 0xbe, 0x4f, 0xe8, 0xb4, 0x75, 0x77, 0xc3, - 0xb2, 0xb7, 0x7d, 0xd5, 0xf4, 0xdf, 0x3d, 0xd5, 0xdc, 0x45, 0xb6, 0x13, 0xf2, 0xe5, 0xbf, 0x7a, - 0x5f, 0x2e, 0x59, 0xf6, 0x45, 0x6f, 0x10, 0xa4, 0xd3, 0x34, 0xfa, 0xea, 0xd1, 0x6b, 0x5b, 0x9b, - 0xcb, 0x68, 0x17, 0xf9, 0xe1, 0xd2, 0x82, 0x77, 0x6f, 0x2e, 0xd0, 0xb2, 0xaa, 0x96, 0xeb, 0x75, - 0xda, 0xcb, 0xd6, 0x26, 0x89, 0x17, 0x3b, 0xae, 0xf1, 0x89, 0x61, 0x2e, 0x7d, 0x17, 0xe1, 0x5c, - 0x79, 0x36, 0x17, 0x4d, 0x54, 0x66, 0x41, 0x09, 0x7e, 0x6b, 0xa0, 0x36, 0xda, 0x46, 0xae, 0xbd, - 0x87, 0xaf, 0x85, 0x18, 0xd7, 0x7a, 0x7c, 0xa1, 0x03, 0xb4, 0xf8, 0x64, 0x9d, 0x4a, 0x6f, 0x96, - 0x93, 0xdc, 0x81, 0x26, 0xeb, 0x22, 0x14, 0x47, 0x72, 0xed, 0x95, 0xec, 0x59, 0x33, 0xaf, 0x94, - 0x21, 0x8b, 0x07, 0xcf, 0xb7, 0x66, 0xb8, 0x15, 0xa6, 0x6d, 0xe4, 0x38, 0xfa, 0x26, 0xf2, 0x57, - 0x98, 0xe8, 0xab, 0x72, 0x2b, 0xe4, 0xda, 0x18, 0x53, 0x32, 0x38, 0x5c, 0xcb, 0xd5, 0xcc, 0x33, - 0x30, 0x3c, 0x5a, 0xc1, 0x48, 0x80, 0xe1, 0xd6, 0xc8, 0x1f, 0x67, 0xee, 0x86, 0x1c, 0x81, 0x7f, - 0x02, 0x72, 0xf3, 0xe5, 0xb9, 0xb5, 0xc5, 0xc2, 0x11, 0xef, 0xd1, 0xe7, 0x6f, 0x02, 0x72, 0x0b, - 0xc5, 0x46, 0x71, 0xb9, 0x20, 0x79, 0xf5, 0xa8, 0x54, 0x17, 0x6a, 0x05, 0xd9, 0x4b, 0x5c, 0x2d, - 0x56, 0x2b, 0xa5, 0x42, 0x56, 0x99, 0x84, 0xb1, 0xf3, 0x45, 0xad, 0x5a, 0xa9, 0x2e, 0x16, 0x72, - 0xea, 0xdf, 0xb2, 0xf8, 0xdd, 0xc6, 0xe3, 0x77, 0x5d, 0x14, 0x4f, 0xbd, 0x20, 0x7b, 0x55, 0x00, - 0xd9, 0x1d, 0x1c, 0x64, 0x3f, 0x25, 0x42, 0x64, 0x04, 0xee, 0x4c, 0x79, 0x18, 0x5b, 0xb5, 0xad, - 0x26, 0x72, 0x1c, 0xf5, 0x37, 0x24, 0xc8, 0x97, 0x74, 0xb3, 0x89, 0xda, 0xea, 0x15, 0x21, 0x54, - 0xc4, 0x55, 0x34, 0x13, 0x9c, 0x16, 0xfb, 0xc7, 0x8c, 0x68, 0xef, 0x47, 0xe9, 0xce, 0x12, 0x9a, - 0x11, 0xf2, 0x11, 0xeb, 0xe5, 0x62, 0x49, 0x8d, 0xe0, 0x6a, 0x1c, 0x09, 0x26, 0xe8, 0x6a, 0xc0, - 0x05, 0xc4, 0xce, 0xc3, 0x7f, 0x90, 0x11, 0x9d, 0x1c, 0xfa, 0x35, 0x08, 0xc8, 0x44, 0xc8, 0x43, - 0x6c, 0x22, 0xd8, 0x8f, 0xda, 0x08, 0x36, 0x0f, 0x25, 0x98, 0x5c, 0x33, 0x9d, 0x5e, 0x42, 0x11, - 0x8f, 0xa3, 0xef, 0x57, 0x83, 0x21, 0x74, 0xa0, 0x38, 0xfa, 0xfd, 0xe9, 0xa5, 0x2f, 0x98, 0x1f, - 0x64, 0xe0, 0xf8, 0x22, 0x32, 0x91, 0x6d, 0x34, 0x49, 0x0d, 0x7c, 0x49, 0xdc, 0xc1, 0x4b, 0xe2, - 0xd1, 0x1c, 0xe7, 0xbd, 0xfe, 0xe0, 0x25, 0xf0, 0xda, 0x40, 0x02, 0x77, 0x71, 0x12, 0xb8, 0x49, - 0x90, 0xce, 0x08, 0xee, 0x43, 0x9f, 0x80, 0xa9, 0xaa, 0xe5, 0x1a, 0x1b, 0x46, 0x93, 0xf8, 0xa0, - 0xbd, 0x42, 0x86, 0xec, 0xb2, 0xe1, 0xb8, 0x6a, 0x31, 0xec, 0x4e, 0xae, 0x81, 0x49, 0xc3, 0x6c, - 0xb6, 0x77, 0x5a, 0x48, 0x43, 0x3a, 0xe9, 0x57, 0xc6, 0x35, 0x36, 0x29, 0xdc, 0xda, 0xf7, 0xd8, - 0x92, 0xfd, 0xad, 0xfd, 0xcf, 0x0a, 0x2f, 0xc3, 0xb0, 0x2c, 0xe0, 0x80, 0x94, 0x11, 0x76, 0x57, - 0x11, 0xa6, 0x4d, 0x26, 0xab, 0x6f, 0xb0, 0x77, 0x5f, 0x28, 0xc0, 0x92, 0xd3, 0xf8, 0x3f, 0xd4, - 0x0f, 0x08, 0x35, 0xd6, 0x7e, 0x0c, 0x25, 0x43, 0x66, 0x61, 0x80, 0x49, 0xb2, 0x02, 0x33, 0x95, - 0x6a, 0xa3, 0xac, 0x55, 0x8b, 0xcb, 0x34, 0x8b, 0xac, 0xfe, 0x9b, 0x04, 0x39, 0x0d, 0x75, 0xda, - 0x7b, 0x6c, 0xc4, 0x68, 0xea, 0x28, 0x9e, 0x09, 0x1c, 0xc5, 0x95, 0x05, 0x00, 0xbd, 0xe9, 0x15, - 0x8c, 0xaf, 0xd4, 0x92, 0x7a, 0xc6, 0x31, 0xe5, 0x2a, 0x58, 0x0c, 0x72, 0x6b, 0xcc, 0x9f, 0xea, - 0x8b, 0x84, 0x77, 0x8e, 0x38, 0x6a, 0x98, 0xc3, 0x88, 0x3e, 0xe1, 0x83, 0x42, 0x9b, 0x3d, 0x7d, - 0xc9, 0x1d, 0x8e, 0xf8, 0xbf, 0x2e, 0x41, 0xb6, 0xe1, 0xf5, 0x96, 0x4c, 0xc7, 0xf9, 0xc7, 0x83, - 0xe9, 0xb8, 0x47, 0x26, 0x42, 0xc7, 0xef, 0x84, 0x29, 0x56, 0x63, 0xa9, 0xab, 0x44, 0xac, 0x8a, - 0x73, 0x3f, 0x0c, 0xa2, 0xe1, 0x3d, 0xd8, 0x39, 0x1c, 0x11, 0x7f, 0xfa, 0x31, 0x00, 0x2b, 0x68, - 0xfb, 0x02, 0xb2, 0x9d, 0x2d, 0xa3, 0xa3, 0xfe, 0x9d, 0x0c, 0x13, 0x8b, 0xc8, 0xad, 0xbb, 0xba, - 0xbb, 0xe3, 0x74, 0x6d, 0x77, 0x9a, 0x56, 0x49, 0x6f, 0x6e, 0x21, 0xda, 0x1d, 0xf9, 0xaf, 0xea, - 0x7b, 0x64, 0x51, 0x7f, 0xa2, 0xb0, 0x9c, 0xd9, 0xa0, 0x8c, 0x08, 0x4c, 0x1e, 0x0b, 0xd9, 0x96, - 0xee, 0xea, 0x14, 0x8b, 0x2b, 0xba, 0xb0, 0x08, 0x09, 0x69, 0x38, 0x9b, 0xfa, 0x3b, 0x92, 0x88, - 0x43, 0x91, 0x40, 0xf9, 0xc9, 0x40, 0xf8, 0x40, 0x66, 0x00, 0x14, 0x8e, 0xc1, 0x74, 0xb5, 0xd6, - 0x58, 0x5f, 0xae, 0x2d, 0x2e, 0x96, 0xbd, 0xd4, 0x82, 0xac, 0x9c, 0x04, 0x65, 0xb5, 0x78, 0xef, - 0x4a, 0xb9, 0xda, 0x58, 0xaf, 0xd6, 0xe6, 0xcb, 0xf4, 0xcf, 0xac, 0x72, 0x14, 0x26, 0x4b, 0xc5, - 0xd2, 0x92, 0x9f, 0x90, 0x53, 0x4e, 0xc1, 0xf1, 0x95, 0xf2, 0xca, 0x5c, 0x59, 0xab, 0x2f, 0x55, - 0x56, 0xd7, 0x3d, 0x32, 0x0b, 0xb5, 0xb5, 0xea, 0x7c, 0x21, 0xaf, 0xa8, 0x70, 0x92, 0xf9, 0x72, - 0x5e, 0xab, 0x55, 0x17, 0xd7, 0xeb, 0x8d, 0x62, 0xa3, 0x5c, 0x18, 0x53, 0x2e, 0x83, 0xa3, 0xa5, - 0x62, 0x15, 0x67, 0x2f, 0xd5, 0xaa, 0xd5, 0x72, 0xa9, 0x51, 0x18, 0x57, 0xff, 0x3d, 0x0b, 0x93, - 0x15, 0xa7, 0xaa, 0x6f, 0xa3, 0x73, 0x7a, 0xdb, 0x68, 0xa9, 0x2f, 0x64, 0x66, 0x1e, 0xd7, 0xc1, - 0xb4, 0x4d, 0x1e, 0x51, 0xab, 0x61, 0x20, 0x82, 0xe6, 0xb4, 0xc6, 0x27, 0x7a, 0x73, 0x72, 0x13, - 0x13, 0xf0, 0xe7, 0xe4, 0xe4, 0x4d, 0x99, 0x03, 0x20, 0x4f, 0x8d, 0xf0, 0x72, 0xd7, 0x33, 0xdd, - 0xad, 0x49, 0xdf, 0x46, 0x0e, 0xb2, 0x77, 0x8d, 0x26, 0xf2, 0x73, 0x6a, 0xcc, 0x5f, 0xea, 0x37, - 0x64, 0xd1, 0xfd, 0x45, 0x06, 0x54, 0xa6, 0x3a, 0x11, 0xbd, 0xe1, 0x2f, 0xc9, 0x22, 0xbb, 0x83, - 0x42, 0x24, 0x93, 0x69, 0xca, 0x4b, 0xa4, 0xc1, 0x96, 0x6d, 0x1b, 0xb5, 0xda, 0x7a, 0x7d, 0xa9, - 0xa6, 0x35, 0x0a, 0xb2, 0x32, 0x05, 0xe3, 0xde, 0xeb, 0x72, 0xad, 0xba, 0x58, 0xc8, 0x2a, 0x27, - 0xe0, 0xd8, 0x52, 0xb1, 0xbe, 0x5e, 0xa9, 0x9e, 0x2b, 0x2e, 0x57, 0xe6, 0xd7, 0x4b, 0x4b, 0x45, - 0xad, 0x5e, 0xc8, 0x29, 0x57, 0xc0, 0x89, 0x46, 0xa5, 0xac, 0xad, 0x2f, 0x94, 0x8b, 0x8d, 0x35, - 0xad, 0x5c, 0x5f, 0xaf, 0xd6, 0xd6, 0xab, 0xc5, 0x95, 0x72, 0x21, 0xef, 0x35, 0x7f, 0xfc, 0x29, - 0x54, 0x9b, 0xb1, 0xfd, 0xca, 0x38, 0x1e, 0xa1, 0x8c, 0x13, 0xdd, 0xca, 0x08, 0xac, 0x5a, 0x69, - 0xe5, 0x7a, 0x59, 0x3b, 0x57, 0x2e, 0x4c, 0xf6, 0xd2, 0xb5, 0x29, 0xe5, 0x38, 0x14, 0x3c, 0x1e, - 0xd6, 0x2b, 0x75, 0x3f, 0xe7, 0x7c, 0x61, 0x5a, 0xfd, 0x54, 0x1e, 0x4e, 0x6a, 0x68, 0xd3, 0x70, - 0x5c, 0x64, 0xaf, 0xea, 0x7b, 0xdb, 0xc8, 0x74, 0xfd, 0x4e, 0xfe, 0x7f, 0x27, 0x56, 0xc6, 0x15, - 0x98, 0xee, 0x10, 0x1a, 0x2b, 0xc8, 0xdd, 0xb2, 0x5a, 0x74, 0x14, 0x7e, 0x74, 0x64, 0xcf, 0x31, - 0xbb, 0xca, 0x66, 0xd7, 0xf8, 0xbf, 0x19, 0xdd, 0x96, 0x63, 0x74, 0x3b, 0x3b, 0x88, 0x6e, 0x2b, - 0x57, 0xc1, 0xc4, 0x8e, 0x83, 0xec, 0xf2, 0xb6, 0x6e, 0xb4, 0xfd, 0xcb, 0x39, 0x83, 0x04, 0xf5, - 0x9d, 0x59, 0xd1, 0x13, 0x2b, 0x4c, 0x5d, 0x7a, 0x8b, 0x31, 0xa2, 0x6f, 0x3d, 0x0d, 0x40, 0x2b, - 0xbb, 0x66, 0xb7, 0xa9, 0xb2, 0x32, 0x29, 0x1e, 0x7f, 0x17, 0x8c, 0x76, 0xdb, 0x30, 0x37, 0x83, - 0x7d, 0xff, 0x30, 0x41, 0x7d, 0x89, 0x2c, 0x72, 0x82, 0x25, 0x29, 0x6f, 0xc9, 0x5a, 0xd3, 0x8b, - 0xa4, 0x11, 0xf7, 0xbb, 0xfb, 0x9b, 0x4e, 0x5e, 0x29, 0xc0, 0x14, 0x4e, 0xa3, 0x2d, 0xb0, 0x30, - 0xe6, 0xf5, 0xc1, 0x3e, 0xb9, 0x95, 0x72, 0x63, 0xa9, 0x36, 0x1f, 0x7c, 0x1b, 0xf7, 0x48, 0x7a, - 0xcc, 0x14, 0xab, 0xf7, 0xe2, 0xd6, 0x38, 0xa1, 0x3c, 0x02, 0xae, 0x60, 0x3a, 0xec, 0xe2, 0xb2, - 0x56, 0x2e, 0xce, 0xdf, 0xbb, 0x5e, 0x7e, 0x7a, 0xa5, 0xde, 0xa8, 0xf3, 0x8d, 0xcb, 0x6f, 0x47, - 0x93, 0x1e, 0xbf, 0xe5, 0x95, 0x62, 0x65, 0x99, 0xf6, 0xef, 0x0b, 0x35, 0x6d, 0xa5, 0xd8, 0x28, - 0x4c, 0xa9, 0xaf, 0x94, 0xa1, 0xb0, 0x88, 0xdc, 0x55, 0xcb, 0x76, 0xf5, 0xf6, 0xb2, 0x61, 0x5e, - 0x5c, 0xb3, 0xdb, 0xdc, 0x64, 0x53, 0x38, 0x4c, 0x07, 0x3f, 0x44, 0x72, 0x04, 0xa3, 0x77, 0xc4, - 0x3b, 0x38, 0x5b, 0xa8, 0x4c, 0x61, 0x82, 0xfa, 0x6c, 0x49, 0x64, 0xb9, 0x5b, 0xbc, 0xd4, 0x64, - 0x7a, 0xf2, 0x9c, 0x51, 0x8f, 0xcf, 0x3d, 0x50, 0xcb, 0xab, 0xcf, 0xcf, 0xc2, 0xf8, 0x82, 0x61, - 0xea, 0x6d, 0xe3, 0x59, 0x5c, 0xfc, 0xd2, 0xb0, 0x8f, 0xc9, 0xc4, 0xf4, 0x31, 0xd2, 0x40, 0xe3, - 0xe7, 0xaf, 0xc9, 0xa2, 0xcb, 0x0b, 0x8c, 0xec, 0x7d, 0x26, 0x23, 0x06, 0xcf, 0x8f, 0x4a, 0x22, - 0xcb, 0x0b, 0xfd, 0xe9, 0x25, 0xc3, 0xf0, 0x33, 0x3f, 0x1e, 0x36, 0x56, 0x57, 0xfb, 0x1e, 0xef, - 0xa5, 0x0a, 0x13, 0xea, 0x9f, 0xcb, 0xa0, 0x2e, 0x22, 0xf7, 0x1c, 0xb2, 0x83, 0xa9, 0x00, 0xee, - 0xf5, 0xa9, 0xbd, 0xcd, 0x34, 0xd9, 0xb7, 0xb2, 0x00, 0x9e, 0xe7, 0x01, 0x2c, 0xc6, 0x34, 0x9e, - 0x08, 0xd2, 0x11, 0x8d, 0xb7, 0x02, 0x79, 0x07, 0x7f, 0xa7, 0x6a, 0xf6, 0xb8, 0xe8, 0xe1, 0x12, - 0x13, 0x63, 0xa9, 0x13, 0xc2, 0x1a, 0x25, 0xa0, 0xfe, 0x30, 0x98, 0x04, 0xfd, 0x0c, 0xa7, 0x1d, - 0x0b, 0x07, 0x66, 0x36, 0x99, 0xbe, 0xd8, 0xe9, 0xaa, 0x4b, 0x2f, 0xfb, 0x46, 0xfd, 0x68, 0x0e, - 0x8e, 0xf7, 0xaa, 0x8e, 0xfa, 0xa1, 0x0c, 0xb7, 0xc3, 0x8e, 0xf0, 0x90, 0x9f, 0xa1, 0x1b, 0x88, - 0xde, 0x8b, 0xf2, 0x04, 0x38, 0x11, 0x2c, 0xc3, 0x35, 0xac, 0x2a, 0xba, 0xe4, 0xb4, 0x91, 0xeb, - 0x22, 0x1b, 0x57, 0x6d, 0x5c, 0xeb, 0xfd, 0x51, 0x79, 0x32, 0x5c, 0x6e, 0x98, 0x8e, 0xd1, 0x42, - 0x76, 0xc3, 0xe8, 0x38, 0x45, 0xb3, 0xd5, 0xd8, 0x71, 0x2d, 0xdb, 0xd0, 0xe9, 0x55, 0x92, 0xe3, - 0x5a, 0xd4, 0x67, 0xe5, 0x46, 0x28, 0x18, 0x4e, 0xcd, 0xbc, 0x60, 0xe9, 0x76, 0xcb, 0x30, 0x37, - 0x97, 0x0d, 0xc7, 0xa5, 0x1e, 0xc0, 0xfb, 0xd2, 0xd5, 0xbf, 0x97, 0x45, 0x0f, 0xd3, 0xf5, 0x81, - 0x35, 0xa2, 0x43, 0x79, 0x81, 0x2c, 0x72, 0x3c, 0x2e, 0x19, 0xed, 0x64, 0xca, 0xf2, 0xbc, 0x51, - 0x1b, 0x12, 0xbd, 0x47, 0x70, 0xdc, 0xb5, 0x90, 0x74, 0xdf, 0x10, 0x38, 0x57, 0xd6, 0x2a, 0x0b, - 0x95, 0xb2, 0x67, 0x56, 0x9c, 0x80, 0x63, 0xe1, 0xb7, 0xf9, 0x7b, 0xd7, 0xeb, 0xe5, 0x6a, 0xa3, - 0x30, 0xee, 0xf5, 0x53, 0x24, 0x79, 0xa1, 0x58, 0x59, 0x2e, 0xcf, 0xaf, 0x37, 0x6a, 0xde, 0x97, - 0xf9, 0xc1, 0x4c, 0x0b, 0xf5, 0x81, 0x2c, 0x1c, 0xc5, 0xb2, 0xdd, 0xc3, 0x52, 0xf5, 0x84, 0xd2, - 0xe5, 0x6b, 0x1b, 0x00, 0x34, 0x41, 0xc4, 0xab, 0x7e, 0x5e, 0xf8, 0xa6, 0x4c, 0x06, 0xc2, 0xae, - 0x32, 0x22, 0x34, 0xe3, 0x07, 0x92, 0x48, 0x84, 0x0a, 0x61, 0xb2, 0xc9, 0x94, 0xe2, 0x5f, 0x46, - 0x3d, 0xe2, 0x44, 0x83, 0x8f, 0xad, 0xcc, 0x12, 0xfe, 0xf9, 0xe9, 0xab, 0x15, 0x0d, 0xab, 0xc3, - 0x0c, 0x00, 0x4e, 0xc1, 0x1a, 0x44, 0xf4, 0xa0, 0xe7, 0x78, 0x15, 0xa5, 0x07, 0xc5, 0x52, 0xa3, - 0x72, 0xae, 0x1c, 0xa5, 0x07, 0x9f, 0x93, 0x61, 0x7c, 0x11, 0xb9, 0xde, 0x9c, 0xca, 0x51, 0x9f, - 0x22, 0xb0, 0xfe, 0xe3, 0x99, 0x31, 0x6d, 0xab, 0xa9, 0xb7, 0x83, 0x65, 0x00, 0xf2, 0xa6, 0x3e, - 0x77, 0x10, 0x13, 0xc4, 0x2f, 0x3a, 0x62, 0xbc, 0x7a, 0x12, 0xe4, 0x5c, 0xef, 0x33, 0x5d, 0x86, - 0x7e, 0x64, 0xe4, 0x70, 0xe5, 0x11, 0x99, 0xd7, 0x5d, 0x5d, 0x23, 0xf9, 0x99, 0xd1, 0x49, 0xd0, - 0x76, 0x89, 0x60, 0xe4, 0xc7, 0xd1, 0xfe, 0xfc, 0x5b, 0x19, 0x4e, 0x90, 0xf6, 0x51, 0xec, 0x74, - 0xea, 0xae, 0x65, 0x23, 0x0d, 0x35, 0x91, 0xd1, 0x71, 0xbb, 0xd6, 0xf7, 0x6c, 0x92, 0xea, 0x6f, - 0x36, 0xd3, 0x57, 0xf5, 0x4d, 0xb2, 0x68, 0x0c, 0xe6, 0x7d, 0xed, 0xb1, 0xab, 0xbc, 0x88, 0xc6, - 0xfe, 0x49, 0x49, 0x24, 0xaa, 0x72, 0x42, 0xe2, 0xc9, 0x80, 0xfa, 0xd8, 0x21, 0x00, 0xe5, 0xaf, - 0xdc, 0x68, 0xe5, 0x52, 0xb9, 0xb2, 0xea, 0x0d, 0x02, 0x57, 0xc3, 0x95, 0xab, 0x6b, 0x5a, 0x69, - 0xa9, 0x58, 0x2f, 0xaf, 0x6b, 0xe5, 0xc5, 0x4a, 0xbd, 0x41, 0x9d, 0xb2, 0xc8, 0x5f, 0x63, 0xca, - 0x55, 0x70, 0xaa, 0xbe, 0x36, 0x57, 0x2f, 0x69, 0x95, 0x55, 0x9c, 0xae, 0x95, 0xab, 0xe5, 0xf3, - 0xf4, 0xeb, 0xb8, 0xfa, 0xe1, 0x02, 0x4c, 0x7a, 0x13, 0x80, 0x3a, 0x99, 0x17, 0xa8, 0xdf, 0xcd, - 0xc2, 0xa4, 0x86, 0x1c, 0xab, 0xbd, 0x8b, 0xe7, 0x08, 0xa3, 0x9a, 0x7a, 0x7c, 0x5f, 0x16, 0x3d, - 0xbf, 0xcd, 0x30, 0x3b, 0xcb, 0x30, 0x1a, 0x3d, 0xd1, 0xd4, 0x77, 0x75, 0xa3, 0xad, 0x5f, 0xa0, - 0x5d, 0xcd, 0xb8, 0x16, 0x26, 0x28, 0xb3, 0xa0, 0x58, 0x97, 0x4c, 0x64, 0xd7, 0x9b, 0x97, 0xca, - 0xee, 0x56, 0xb1, 0xd5, 0xb2, 0x91, 0xe3, 0xd0, 0xd5, 0x8b, 0x1e, 0x5f, 0x94, 0x1b, 0xe0, 0x28, - 0x4e, 0x65, 0x32, 0x13, 0x07, 0x99, 0xee, 0xe4, 0x20, 0x67, 0xd1, 0xdc, 0xf3, 0x73, 0xe6, 0x98, - 0x9c, 0x61, 0x32, 0x7b, 0x5c, 0x22, 0xcf, 0x9f, 0xd2, 0xb9, 0x06, 0x26, 0x4d, 0x7d, 0x1b, 0x95, - 0xef, 0xef, 0x18, 0x36, 0x72, 0xb0, 0x63, 0x8c, 0xac, 0xb1, 0x49, 0xea, 0x47, 0x85, 0xce, 0x9b, - 0x8b, 0x49, 0x2c, 0x99, 0xee, 0x2f, 0x0e, 0xa0, 0xfa, 0x3d, 0xfa, 0x19, 0x59, 0xfd, 0xb0, 0x0c, - 0x53, 0x94, 0xa9, 0xa2, 0xb9, 0x57, 0x69, 0xa9, 0x57, 0x73, 0xc6, 0xaf, 0xee, 0xa5, 0xf9, 0xc6, - 0x2f, 0x7e, 0x51, 0x7f, 0x59, 0x16, 0x75, 0x77, 0xee, 0x51, 0x71, 0x5c, 0x46, 0xb4, 0xe3, 0xe8, - 0x86, 0xb5, 0x43, 0x1d, 0x55, 0xc7, 0x35, 0xf2, 0x92, 0xe6, 0xa2, 0x9e, 0xfa, 0xfb, 0x42, 0xce, - 0xd4, 0x82, 0xd5, 0x38, 0x24, 0x00, 0x3f, 0x2d, 0xc3, 0x0c, 0xe5, 0xaa, 0x4e, 0xcf, 0xf9, 0x08, - 0x1d, 0x78, 0xfb, 0x15, 0x61, 0x43, 0xb0, 0x47, 0xfd, 0x69, 0x49, 0x0f, 0x1b, 0x20, 0x3f, 0x2e, - 0x14, 0x1c, 0x4d, 0xb8, 0x22, 0x87, 0x04, 0xe5, 0xbb, 0xb2, 0x30, 0xb9, 0xe6, 0x20, 0x9b, 0xfa, - 0xed, 0xab, 0x0f, 0x66, 0x41, 0x5e, 0x44, 0xdc, 0x46, 0xea, 0x8b, 0x85, 0x3d, 0x7c, 0xd9, 0xca, - 0x32, 0x44, 0x3d, 0x1b, 0x29, 0x02, 0xb6, 0xeb, 0x61, 0x86, 0x88, 0xb4, 0xe8, 0xba, 0x9e, 0x91, - 0xe8, 0x7b, 0xd3, 0x76, 0xa5, 0x0e, 0x63, 0xab, 0x08, 0x97, 0xe5, 0x65, 0x29, 0x79, 0x3c, 0x2d, - 0xa3, 0x0d, 0x32, 0x9f, 0xcd, 0x6a, 0x5d, 0xa9, 0xca, 0xcd, 0x70, 0x99, 0xd5, 0x41, 0xe4, 0xfc, - 0x0a, 0x93, 0x39, 0x87, 0x33, 0xf7, 0xfa, 0xa4, 0x7e, 0x57, 0xc8, 0x57, 0x57, 0x5c, 0x3a, 0xc9, - 0x74, 0xa1, 0x33, 0x1c, 0x93, 0xe4, 0x38, 0x14, 0xbc, 0x1c, 0x78, 0xff, 0x45, 0x2b, 0xd7, 0x6b, - 0xcb, 0xe7, 0xca, 0xbd, 0x97, 0x31, 0x72, 0xea, 0xf3, 0x64, 0x98, 0x98, 0xb3, 0x2d, 0xbd, 0xd5, - 0xd4, 0x1d, 0x57, 0xfd, 0xa1, 0x04, 0x53, 0xab, 0xfa, 0x5e, 0xdb, 0xd2, 0x5b, 0xd8, 0xbf, 0xbf, - 0xab, 0x2f, 0xe8, 0x90, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0xf9, 0x83, 0x81, 0xc1, 0xd1, 0xbd, 0x8c, - 0xc8, 0x85, 0x9a, 0xc1, 0x36, 0x9f, 0xd4, 0x2b, 0x58, 0xa9, 0xcf, 0xd7, 0x2c, 0xcb, 0x53, 0x84, - 0x45, 0xf9, 0x61, 0xb1, 0xf0, 0xa3, 0x22, 0x24, 0x0f, 0x67, 0x57, 0xfe, 0xf9, 0xe3, 0x90, 0x9f, - 0x47, 0xd8, 0x8a, 0xfb, 0xef, 0x12, 0x8c, 0xd5, 0x91, 0x8b, 0x2d, 0xb8, 0x5b, 0x39, 0x4f, 0xe1, - 0x16, 0xce, 0x10, 0x3a, 0xb1, 0xfb, 0xef, 0xde, 0x64, 0x9d, 0x39, 0x6f, 0x8d, 0x9f, 0x13, 0x78, - 0x24, 0x92, 0x72, 0x67, 0x69, 0x99, 0x07, 0xf2, 0x48, 0x8c, 0x25, 0x95, 0xbe, 0xaf, 0xd5, 0x7b, - 0x24, 0xea, 0x5a, 0xc5, 0xf4, 0x7a, 0xaf, 0x63, 0xf5, 0x33, 0xd6, 0xdb, 0x8c, 0x32, 0x1f, 0xe3, - 0x1c, 0xf5, 0x78, 0x18, 0x23, 0x32, 0xf7, 0xe7, 0xa3, 0xdd, 0x7e, 0x0a, 0x84, 0x04, 0x3e, 0x7b, - 0xed, 0xe7, 0x14, 0x74, 0x51, 0x8b, 0x2e, 0x7c, 0x24, 0x31, 0x08, 0xa6, 0xaa, 0xc8, 0xbd, 0x64, - 0xd9, 0x17, 0xeb, 0xae, 0xee, 0x22, 0xf5, 0x5f, 0x24, 0x90, 0xeb, 0xc8, 0x65, 0xa3, 0x9f, 0x54, - 0xe1, 0x18, 0xa9, 0x10, 0xcd, 0x88, 0xfb, 0x6f, 0x52, 0x91, 0x6b, 0x7a, 0x0a, 0x81, 0xc9, 0xa7, - 0xed, 0xff, 0x55, 0xfd, 0x8d, 0x9e, 0x41, 0x9f, 0xa4, 0x1e, 0x93, 0x06, 0x2a, 0x19, 0x96, 0x41, - 0x4f, 0xc1, 0x22, 0xf4, 0xf4, 0x23, 0x42, 0x66, 0xb5, 0x18, 0xcd, 0xc3, 0xe9, 0x0a, 0x3e, 0x7e, - 0x05, 0x64, 0x4b, 0x5b, 0xba, 0xab, 0xbe, 0x5b, 0x06, 0x28, 0xb6, 0x5a, 0x2b, 0xc4, 0x07, 0x9c, - 0x75, 0x48, 0x3b, 0x03, 0x53, 0xcd, 0x2d, 0x3d, 0xbc, 0xdb, 0x84, 0xf4, 0x07, 0x5c, 0x9a, 0xf2, - 0x84, 0xd0, 0x99, 0x9c, 0x48, 0x55, 0xed, 0x82, 0xc9, 0x2b, 0x83, 0xd2, 0x0e, 0x1c, 0xcd, 0xf9, - 0x50, 0x98, 0xb1, 0x47, 0xe8, 0xbc, 0xdf, 0x67, 0x43, 0xf6, 0xa2, 0xe7, 0x70, 0x94, 0x74, 0x70, - 0xc0, 0x26, 0x4c, 0x48, 0x78, 0xd2, 0x5b, 0x2c, 0xa0, 0x47, 0x3c, 0x5f, 0x23, 0x09, 0x5d, 0xab, - 0x94, 0x5b, 0x86, 0x2f, 0x5a, 0x1a, 0x30, 0x4b, 0x7d, 0x51, 0x26, 0x19, 0x7c, 0xf1, 0x82, 0xbb, - 0x0b, 0xa6, 0x51, 0xcb, 0x70, 0x91, 0x5f, 0x4b, 0x2a, 0xc0, 0x38, 0x88, 0xf9, 0x1f, 0xd4, 0xe7, - 0x08, 0x07, 0x5d, 0xc3, 0x02, 0xdd, 0x5f, 0xa3, 0x88, 0xf6, 0x27, 0x16, 0x46, 0x4d, 0x8c, 0x66, - 0xfa, 0x60, 0x3d, 0x57, 0x86, 0x13, 0x0d, 0x6b, 0x73, 0xb3, 0x8d, 0x7c, 0x31, 0x21, 0xe2, 0x9d, - 0xa9, 0xea, 0xc3, 0x84, 0x0b, 0xef, 0x04, 0x59, 0xf7, 0x19, 0xc1, 0x51, 0x32, 0xef, 0x85, 0x3f, - 0x31, 0x15, 0x3b, 0x8b, 0xc2, 0xe2, 0xea, 0xc9, 0x67, 0x04, 0x0a, 0x62, 0x01, 0x9f, 0x85, 0xc9, - 0xa6, 0x0f, 0xc4, 0x97, 0x25, 0x98, 0x26, 0x37, 0x57, 0xfa, 0x0a, 0x7a, 0xcf, 0x10, 0x01, 0x50, - 0x7f, 0x98, 0x11, 0xf5, 0xb3, 0xc5, 0x32, 0xe1, 0x38, 0x89, 0x10, 0xb1, 0x58, 0x50, 0x95, 0xbe, - 0xe4, 0xd2, 0x17, 0xed, 0x9f, 0xc8, 0x30, 0xb9, 0x88, 0xfc, 0x96, 0xe6, 0x24, 0xee, 0x89, 0xce, - 0xc0, 0x14, 0xbe, 0xbe, 0xad, 0x46, 0x8f, 0x49, 0x92, 0x55, 0x33, 0x2e, 0x4d, 0xb9, 0x0e, 0xa6, - 0x2f, 0xa0, 0x0d, 0xcb, 0x46, 0x35, 0xee, 0x2c, 0x25, 0x9f, 0x18, 0x11, 0x9e, 0x8e, 0x8b, 0x83, - 0x36, 0xc7, 0x63, 0x73, 0xd3, 0x7e, 0x61, 0x32, 0x55, 0x89, 0x18, 0x73, 0x9e, 0x08, 0xe3, 0x14, - 0x79, 0xdf, 0x4c, 0x8b, 0xeb, 0x17, 0x83, 0xbc, 0xea, 0x1b, 0x03, 0x44, 0xcb, 0x1c, 0xa2, 0x8f, - 0x4b, 0xc2, 0xc4, 0x48, 0xee, 0x77, 0x2f, 0x30, 0xe5, 0xcf, 0xed, 0x55, 0x5a, 0x8e, 0xba, 0x92, - 0x0c, 0xd3, 0xd3, 0x00, 0x41, 0xe3, 0xf0, 0xc3, 0x5a, 0x30, 0x29, 0x7c, 0xe4, 0xfa, 0xd8, 0x83, - 0x7a, 0xdd, 0xe2, 0xc0, 0xec, 0x0c, 0x19, 0x18, 0xb1, 0x03, 0x7e, 0x22, 0x9c, 0xa4, 0x8f, 0xce, - 0x67, 0x65, 0x38, 0x11, 0x9c, 0x3f, 0x5a, 0xd6, 0x9d, 0xb0, 0xdd, 0x95, 0x92, 0x41, 0xc4, 0x1d, - 0xf8, 0x08, 0x1a, 0xcb, 0xf7, 0x92, 0x8d, 0x19, 0x3d, 0x39, 0x19, 0x2e, 0x3a, 0xca, 0x4d, 0x70, - 0xcc, 0xdc, 0xd9, 0x0e, 0xa4, 0x8e, 0x5b, 0x3c, 0x6d, 0xe1, 0xfb, 0x3f, 0x24, 0x19, 0x99, 0x44, - 0x98, 0x1f, 0xc9, 0x9c, 0x92, 0x3b, 0xd2, 0xf5, 0xd8, 0x44, 0x30, 0xaa, 0xff, 0x9c, 0x49, 0xd4, - 0xbb, 0xf5, 0x3f, 0xf3, 0x95, 0xa0, 0x97, 0x3a, 0xc4, 0x03, 0x5f, 0x67, 0xc6, 0x20, 0x57, 0xde, - 0xee, 0xb8, 0x7b, 0x67, 0x1e, 0x05, 0xd3, 0x75, 0xd7, 0x46, 0xfa, 0x36, 0xb3, 0x33, 0xe0, 0x5a, - 0x17, 0x91, 0xe9, 0xef, 0x0c, 0xe0, 0x97, 0xdb, 0x6e, 0x85, 0x31, 0xd3, 0x5a, 0xd7, 0x77, 0xdc, - 0x2d, 0xe5, 0xea, 0x7d, 0x47, 0xea, 0x29, 0xf8, 0x35, 0x1a, 0xc3, 0xe8, 0x1b, 0xb7, 0xe3, 0xb5, - 0xe1, 0xbc, 0x69, 0x15, 0x77, 0xdc, 0xad, 0xb9, 0xab, 0x3e, 0xfd, 0x37, 0xa7, 0x33, 0x9f, 0xfb, - 0x9b, 0xd3, 0x99, 0xaf, 0xff, 0xcd, 0xe9, 0xcc, 0xaf, 0x7c, 0xf3, 0xf4, 0x91, 0xcf, 0x7d, 0xf3, - 0xf4, 0x91, 0x2f, 0x7f, 0xf3, 0xf4, 0x91, 0x9f, 0x91, 0x3a, 0x17, 0x2e, 0xe4, 0x31, 0x95, 0xc7, - 0xff, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc7, 0xdc, 0xb6, 0x1d, 0xeb, 0x03, 0x02, 0x00, + // 19378 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x78, 0x24, 0x47, + 0x79, 0x2f, 0xba, 0x33, 0x3d, 0x33, 0x92, 0x5e, 0x7d, 0xec, 0x6c, 0x7b, 0x77, 0xbd, 0x2e, 0x9b, + 0xb5, 0xb3, 0x36, 0xc6, 0x31, 0x46, 0x6b, 0x0c, 0x21, 0xd8, 0xd8, 0xd8, 0xa3, 0xd1, 0x48, 0x1a, + 0x5b, 0x9a, 0x11, 0x3d, 0xa3, 0x5d, 0x9c, 0x1c, 0xae, 0xd2, 0x3b, 0x53, 0x92, 0xda, 0x3b, 0xea, + 0x1e, 0x7a, 0x5a, 0x5a, 0x8b, 0xfb, 0x9c, 0x7b, 0x42, 0x88, 0xf9, 0x08, 0xe1, 0x10, 0x42, 0x48, + 0xc2, 0x37, 0x18, 0x0c, 0x07, 0x12, 0x20, 0x7c, 0x1f, 0x20, 0x01, 0xc2, 0x47, 0x20, 0x24, 0x21, + 0x04, 0x42, 0xf8, 0x48, 0xb8, 0xe1, 0x2b, 0x84, 0xdc, 0x27, 0x1c, 0x2e, 0xb9, 0x27, 0x70, 0x48, + 0xc2, 0xcd, 0x7d, 0xba, 0xaa, 0xba, 0xbb, 0x6a, 0x34, 0xdd, 0x53, 0x3d, 0x9a, 0x1e, 0x99, 0x70, + 0xff, 0xeb, 0xae, 0xae, 0x7e, 0xeb, 0xad, 0xf7, 0xf7, 0x56, 0xd5, 0x5b, 0x55, 0x6f, 0xbd, 0x05, + 0xa7, 0xda, 0x17, 0xce, 0xb6, 0x6d, 0xcb, 0xb1, 0x3a, 0x67, 0x1b, 0xd6, 0xf6, 0xb6, 0x6e, 0x36, + 0x3b, 0xb3, 0xe4, 0x5d, 0x1d, 0xd3, 0xcd, 0x3d, 0x67, 0xaf, 0x8d, 0xd1, 0x75, 0xed, 0x8b, 0x9b, + 0x67, 0x5b, 0xc6, 0x85, 0xb3, 0xed, 0x0b, 0x67, 0xb7, 0xad, 0x26, 0x6e, 0x79, 0x3f, 0x90, 0x17, + 0x96, 0x1d, 0xdd, 0x10, 0x96, 0xab, 0x65, 0x35, 0xf4, 0x56, 0xc7, 0xb1, 0x6c, 0xcc, 0x72, 0x9e, + 0x0c, 0x8a, 0xc4, 0xbb, 0xd8, 0x74, 0x3c, 0x0a, 0x57, 0x6d, 0x5a, 0xd6, 0x66, 0x0b, 0xd3, 0x6f, + 0x17, 0x76, 0x36, 0xce, 0x76, 0x1c, 0x7b, 0xa7, 0xe1, 0xb0, 0xaf, 0xd7, 0x74, 0x7f, 0x6d, 0xe2, + 0x4e, 0xc3, 0x36, 0xda, 0x8e, 0x65, 0xd3, 0x1c, 0x67, 0xbe, 0xfe, 0xcc, 0x71, 0x50, 0xb4, 0x76, + 0x03, 0x7d, 0x7f, 0x0c, 0x94, 0x42, 0xbb, 0x8d, 0x3e, 0x9e, 0x06, 0x58, 0xc4, 0xce, 0x39, 0x6c, + 0x77, 0x0c, 0xcb, 0x44, 0x47, 0x61, 0x4c, 0xc3, 0x4f, 0xdf, 0xc1, 0x1d, 0xe7, 0xb6, 0xcc, 0x73, + 0xbf, 0xa5, 0xa4, 0xd0, 0x43, 0x69, 0x18, 0xd7, 0x70, 0xa7, 0x6d, 0x99, 0x1d, 0xac, 0xde, 0x05, + 0x59, 0x6c, 0xdb, 0x96, 0x7d, 0x2a, 0x75, 0x4d, 0xea, 0x86, 0xc9, 0x5b, 0x6e, 0x9c, 0x65, 0xd5, + 0x9f, 0xd5, 0xda, 0x8d, 0xd9, 0x42, 0xbb, 0x3d, 0x1b, 0x50, 0x9a, 0xf5, 0x7e, 0x9a, 0x2d, 0xb9, + 0x7f, 0x68, 0xf4, 0x47, 0xf5, 0x14, 0x8c, 0xed, 0xd2, 0x0c, 0xa7, 0xd2, 0xd7, 0xa4, 0x6e, 0x98, + 0xd0, 0xbc, 0x57, 0xf7, 0x4b, 0x13, 0x3b, 0xba, 0xd1, 0xea, 0x9c, 0x52, 0xe8, 0x17, 0xf6, 0x8a, + 0x1e, 0x4c, 0x41, 0x96, 0x10, 0x51, 0x8b, 0x90, 0x69, 0x58, 0x4d, 0x4c, 0x8a, 0x9f, 0xb9, 0xe5, + 0xac, 0x7c, 0xf1, 0xb3, 0x45, 0xab, 0x89, 0x35, 0xf2, 0xb3, 0x7a, 0x0d, 0x4c, 0x7a, 0x62, 0x09, + 0xd8, 0xe0, 0x93, 0xce, 0xdc, 0x02, 0x19, 0x37, 0xbf, 0x3a, 0x0e, 0x99, 0xca, 0xda, 0xf2, 0x72, + 0xfe, 0x88, 0x7a, 0x0c, 0xa6, 0xd7, 0x2a, 0xf7, 0x54, 0xaa, 0xe7, 0x2b, 0xeb, 0x25, 0x4d, 0xab, + 0x6a, 0xf9, 0x94, 0x3a, 0x0d, 0x13, 0x73, 0x85, 0xf9, 0xf5, 0x72, 0x65, 0x75, 0xad, 0x9e, 0x4f, + 0xa3, 0x57, 0x29, 0x30, 0x53, 0xc3, 0xce, 0x3c, 0xde, 0x35, 0x1a, 0xb8, 0xe6, 0xe8, 0x0e, 0x46, + 0x2f, 0x4c, 0xf9, 0xc2, 0x54, 0xd7, 0xdc, 0x42, 0xfd, 0x4f, 0xac, 0x02, 0x8f, 0xdb, 0x57, 0x01, + 0x91, 0xc2, 0x2c, 0xfb, 0x7b, 0x96, 0x4b, 0xd3, 0x78, 0x3a, 0x67, 0x1e, 0x03, 0x93, 0xdc, 0x37, + 0x75, 0x06, 0x60, 0xae, 0x50, 0xbc, 0x67, 0x51, 0xab, 0xae, 0x55, 0xe6, 0xf3, 0x47, 0xdc, 0xf7, + 0x85, 0xaa, 0x56, 0x62, 0xef, 0x29, 0xf4, 0xc3, 0x14, 0x07, 0xe6, 0xbc, 0x08, 0xe6, 0x6c, 0x7f, + 0x66, 0x7a, 0x00, 0x8a, 0xde, 0xe0, 0x83, 0xb3, 0x28, 0x80, 0xf3, 0xb8, 0x78, 0xe4, 0x92, 0x07, + 0xe8, 0x81, 0x34, 0x8c, 0xd7, 0xb6, 0x76, 0x9c, 0xa6, 0x75, 0xc9, 0x44, 0x13, 0x3e, 0x32, 0xe8, + 0x3b, 0xbc, 0x4c, 0x9e, 0x2c, 0xca, 0xe4, 0x86, 0xfd, 0x95, 0x60, 0x14, 0x42, 0xa4, 0xf1, 0x1a, + 0x5f, 0x1a, 0x05, 0x41, 0x1a, 0x8f, 0x91, 0x25, 0x94, 0xbc, 0x1c, 0x5e, 0xf6, 0x44, 0xc8, 0xd6, + 0xda, 0x7a, 0x03, 0xa3, 0x3f, 0x55, 0x60, 0x6a, 0x19, 0xeb, 0xbb, 0xb8, 0xd0, 0x6e, 0xdb, 0xd6, + 0x2e, 0x46, 0xc5, 0x40, 0x5f, 0x4f, 0xc1, 0x58, 0xc7, 0xcd, 0x54, 0x6e, 0x92, 0x1a, 0x4c, 0x68, + 0xde, 0xab, 0x7a, 0x1a, 0xc0, 0x68, 0x62, 0xd3, 0x31, 0x1c, 0x03, 0x77, 0x4e, 0xa5, 0xaf, 0x51, + 0x6e, 0x98, 0xd0, 0xb8, 0x14, 0xf4, 0xfd, 0xb4, 0xac, 0x8e, 0x11, 0x2e, 0x66, 0x79, 0x0e, 0x42, + 0xa4, 0xfa, 0xba, 0xb4, 0x8c, 0x8e, 0xf5, 0x25, 0x17, 0x4f, 0xb6, 0x6f, 0x4d, 0xc5, 0x17, 0xae, + 0x9b, 0xa3, 0x52, 0x5d, 0xaf, 0xad, 0x15, 0x97, 0xd6, 0x6b, 0xab, 0x85, 0x62, 0x29, 0x8f, 0xd5, + 0xe3, 0x90, 0x27, 0x8f, 0xeb, 0xe5, 0xda, 0xfa, 0x7c, 0x69, 0xb9, 0x54, 0x2f, 0xcd, 0xe7, 0x37, + 0x54, 0x15, 0x66, 0xb4, 0xd2, 0x53, 0xd6, 0x4a, 0xb5, 0xfa, 0xfa, 0x42, 0xa1, 0xbc, 0x5c, 0x9a, + 0xcf, 0x6f, 0xba, 0x3f, 0x2f, 0x97, 0x57, 0xca, 0xf5, 0x75, 0xad, 0x54, 0x28, 0x2e, 0x95, 0xe6, + 0xf3, 0x5b, 0xea, 0xe5, 0x70, 0x59, 0xa5, 0xba, 0x5e, 0x58, 0x5d, 0xd5, 0xaa, 0xe7, 0x4a, 0xeb, + 0xec, 0x8f, 0x5a, 0xde, 0xa0, 0x05, 0xd5, 0xd7, 0x6b, 0x4b, 0x05, 0xad, 0x54, 0x98, 0x5b, 0x2e, + 0xe5, 0xef, 0x43, 0xcf, 0x52, 0x60, 0x7a, 0x45, 0xbf, 0x88, 0x6b, 0x5b, 0xba, 0x8d, 0xf5, 0x0b, + 0x2d, 0x8c, 0xae, 0x95, 0xc0, 0x13, 0xfd, 0x29, 0x8f, 0x57, 0x49, 0xc4, 0xeb, 0x6c, 0x0f, 0x01, + 0x0b, 0x45, 0x84, 0x00, 0xf6, 0xbf, 0xfc, 0x66, 0xb0, 0x24, 0x00, 0xf6, 0xf8, 0x98, 0xf4, 0xe2, + 0x21, 0xf6, 0x4b, 0x0f, 0x03, 0xc4, 0xd0, 0x57, 0x14, 0x98, 0x29, 0x9b, 0xbb, 0x86, 0x83, 0x17, + 0xb1, 0x89, 0x6d, 0x77, 0x1c, 0x90, 0x82, 0xe1, 0x21, 0x85, 0x83, 0x61, 0x41, 0x84, 0xe1, 0xe6, + 0x1e, 0x62, 0x13, 0xcb, 0x08, 0x19, 0x6d, 0xaf, 0x82, 0x09, 0x83, 0xe4, 0x2b, 0x1a, 0x4d, 0x26, + 0xb1, 0x20, 0x41, 0xbd, 0x0e, 0xa6, 0xe9, 0xcb, 0x82, 0xd1, 0xc2, 0xf7, 0xe0, 0x3d, 0x36, 0xee, + 0x8a, 0x89, 0xe8, 0x57, 0xfd, 0xc6, 0x57, 0x16, 0xb0, 0xfc, 0x99, 0xb8, 0x4c, 0xc5, 0x03, 0xf3, + 0x25, 0x0f, 0x87, 0xe6, 0xb7, 0xaf, 0x95, 0x19, 0xe8, 0x47, 0x69, 0x98, 0xac, 0x39, 0x56, 0xdb, + 0x55, 0x59, 0xc3, 0xdc, 0x94, 0x03, 0xf7, 0x93, 0x7c, 0x1b, 0x2b, 0x8a, 0xe0, 0x3e, 0xa6, 0x87, + 0x1c, 0xb9, 0x02, 0x42, 0x5a, 0xd8, 0xf7, 0xfd, 0x16, 0xb6, 0x20, 0xa0, 0x72, 0x4b, 0x2c, 0x6a, + 0x3f, 0x86, 0xed, 0xeb, 0x25, 0x0a, 0xe4, 0x3d, 0x35, 0x73, 0x8a, 0x3b, 0xb6, 0x8d, 0x4d, 0x47, + 0x0e, 0x84, 0xbf, 0xe6, 0x41, 0x58, 0x12, 0x41, 0xb8, 0x25, 0x42, 0x99, 0xbd, 0x52, 0x12, 0x6c, + 0x63, 0x1f, 0xf6, 0xd1, 0xbc, 0x47, 0x40, 0xf3, 0x67, 0xe3, 0xb3, 0x15, 0x0f, 0xd2, 0xa5, 0x01, + 0x10, 0x3d, 0x0e, 0x79, 0x77, 0x4c, 0x2a, 0xd6, 0xcb, 0xe7, 0x4a, 0xeb, 0xe5, 0xca, 0xb9, 0x72, + 0xbd, 0x94, 0xc7, 0xe8, 0xc5, 0x0a, 0x4c, 0x51, 0xd6, 0x34, 0xbc, 0x6b, 0x5d, 0x94, 0xec, 0xf5, + 0xbe, 0x12, 0xd3, 0x58, 0xe0, 0x4b, 0x08, 0x69, 0x19, 0xbf, 0x12, 0xc3, 0x58, 0x88, 0x20, 0xf7, + 0x70, 0xea, 0xad, 0xf6, 0x35, 0x83, 0xcd, 0x1e, 0xad, 0xa5, 0x67, 0x6f, 0xf5, 0x92, 0x0c, 0x00, + 0xad, 0xe4, 0x39, 0x03, 0x5f, 0x42, 0x2b, 0x01, 0x26, 0x82, 0xda, 0xa6, 0xfa, 0xaa, 0x6d, 0xba, + 0x97, 0xda, 0xbe, 0x97, 0x1f, 0xb3, 0xe6, 0x44, 0xf4, 0x6e, 0x0a, 0x15, 0xb7, 0xcb, 0x49, 0xf8, + 0xec, 0xd0, 0x53, 0x94, 0xb4, 0x68, 0x75, 0x5e, 0x05, 0x13, 0xe4, 0xb1, 0xa2, 0x6f, 0x63, 0xd6, + 0x86, 0x82, 0x04, 0xf5, 0x0c, 0x4c, 0xd1, 0x8c, 0x0d, 0xcb, 0x74, 0xeb, 0x93, 0x21, 0x19, 0x84, + 0x34, 0x17, 0xc4, 0x86, 0x8d, 0x75, 0xc7, 0xb2, 0x09, 0x8d, 0x2c, 0x05, 0x91, 0x4b, 0x42, 0xdf, + 0xf6, 0x5b, 0x61, 0x49, 0xd0, 0x9c, 0xc7, 0xc6, 0xa9, 0x4a, 0x3c, 0xbd, 0xd9, 0x1d, 0xac, 0xfd, + 0xd1, 0x56, 0xb7, 0xee, 0xa2, 0xbd, 0x40, 0xa6, 0x76, 0x58, 0x3d, 0x09, 0x2a, 0x4b, 0x75, 0xf3, + 0x16, 0xab, 0x95, 0x7a, 0xa9, 0x52, 0xcf, 0x6f, 0xf4, 0xd4, 0xa8, 0x4d, 0xf4, 0xba, 0x0c, 0x64, + 0xee, 0xb6, 0x0c, 0x13, 0x3d, 0x90, 0x12, 0x54, 0xc2, 0xc4, 0xce, 0x25, 0xcb, 0xbe, 0xe8, 0x37, + 0xd4, 0x20, 0x21, 0x1a, 0x9b, 0x40, 0x95, 0x94, 0xbe, 0xaa, 0x94, 0xe9, 0xa5, 0x4a, 0xbf, 0xce, + 0xab, 0xd2, 0xed, 0xa2, 0x2a, 0x5d, 0xdf, 0x43, 0xfe, 0x2e, 0xf3, 0x21, 0x1d, 0xc0, 0x27, 0xfc, + 0x0e, 0xe0, 0x4e, 0x01, 0xc6, 0x47, 0xcb, 0x91, 0x89, 0x07, 0xe0, 0x97, 0x13, 0x6d, 0xf8, 0xbd, + 0xa0, 0xde, 0x0c, 0x81, 0x7a, 0xab, 0x47, 0x9f, 0x60, 0xec, 0xef, 0x3a, 0xee, 0xdb, 0xdf, 0x4d, + 0x5c, 0x54, 0x4f, 0xc0, 0xb1, 0xf9, 0xf2, 0xc2, 0x42, 0x49, 0x2b, 0x55, 0xea, 0xeb, 0x95, 0x52, + 0xfd, 0x7c, 0x55, 0xbb, 0x27, 0xdf, 0x42, 0x0f, 0x2a, 0x00, 0xae, 0x84, 0x8a, 0xba, 0xd9, 0xc0, + 0x2d, 0xb9, 0x1e, 0xfd, 0x7f, 0xa4, 0xe3, 0xf5, 0x09, 0x01, 0xfd, 0x10, 0x38, 0x5f, 0x99, 0x96, + 0x6f, 0x95, 0xa1, 0xc4, 0xe2, 0x81, 0xfa, 0xe6, 0x87, 0x83, 0xed, 0x79, 0x19, 0x1c, 0xf5, 0xe8, + 0xb1, 0xec, 0xbd, 0xa7, 0x7d, 0x6f, 0xcb, 0xc0, 0x0c, 0x83, 0xc5, 0x9b, 0xc7, 0x3f, 0x37, 0x25, + 0x33, 0x91, 0x47, 0x30, 0xce, 0xa6, 0xed, 0x5e, 0xf7, 0xee, 0xbf, 0xab, 0x8b, 0x30, 0xd9, 0xc6, + 0xf6, 0xb6, 0xd1, 0xe9, 0x18, 0x96, 0x49, 0x17, 0xe4, 0x66, 0x6e, 0x79, 0xa4, 0x2f, 0x71, 0xb2, + 0x76, 0x39, 0xbb, 0xaa, 0xdb, 0x8e, 0xd1, 0x30, 0xda, 0xba, 0xe9, 0xac, 0x06, 0x99, 0x35, 0xfe, + 0x4f, 0xf4, 0xa2, 0x98, 0xd3, 0x1a, 0xb1, 0x26, 0x21, 0x2a, 0xf1, 0xfb, 0x31, 0xa6, 0x24, 0x91, + 0x04, 0xe3, 0xa9, 0xc5, 0xc7, 0x13, 0x55, 0x8b, 0x1e, 0x78, 0x6f, 0xaa, 0x57, 0xc0, 0x89, 0x72, + 0xa5, 0x58, 0xd5, 0xb4, 0x52, 0xb1, 0xbe, 0xbe, 0x5a, 0xd2, 0x56, 0xca, 0xb5, 0x5a, 0xb9, 0x5a, + 0xa9, 0x1d, 0xa4, 0xb5, 0xa3, 0x4f, 0x29, 0xbe, 0xc6, 0xcc, 0xe3, 0x46, 0xcb, 0x30, 0x31, 0xba, + 0xf3, 0x80, 0x0a, 0x23, 0xae, 0xfa, 0xc8, 0xe3, 0xcc, 0xca, 0x0f, 0xc1, 0xf9, 0xb5, 0xf1, 0x71, + 0xee, 0x4d, 0xf0, 0x3f, 0x70, 0xf3, 0xff, 0x8a, 0x02, 0xc7, 0xb8, 0x86, 0xa8, 0xe1, 0xed, 0xa1, + 0xad, 0xe4, 0xfd, 0x12, 0xdf, 0x76, 0xcb, 0x22, 0xa6, 0xbd, 0xac, 0xe9, 0x7d, 0x6c, 0x84, 0xc0, + 0xfa, 0x66, 0x1f, 0xd6, 0x65, 0x01, 0xd6, 0x27, 0x0e, 0x40, 0x33, 0x1e, 0xb2, 0xbf, 0x97, 0x28, + 0xb2, 0x57, 0xc0, 0x89, 0xd5, 0x82, 0x56, 0x2f, 0x17, 0xcb, 0xab, 0x05, 0x77, 0x1c, 0xe5, 0x86, + 0xec, 0x10, 0x73, 0x5d, 0x04, 0xbd, 0x27, 0xbe, 0x1f, 0xca, 0xc0, 0x55, 0xbd, 0x3b, 0xda, 0xe2, + 0x96, 0x6e, 0x6e, 0x62, 0x64, 0xc8, 0x40, 0x3d, 0x0f, 0x63, 0x0d, 0x92, 0x9d, 0xe2, 0xcc, 0x6f, + 0xdd, 0x44, 0xf4, 0xe5, 0xb4, 0x04, 0xcd, 0xfb, 0x15, 0xbd, 0x93, 0x57, 0x88, 0xba, 0xa8, 0x10, + 0x4f, 0x8e, 0x06, 0x6f, 0x1f, 0xdf, 0x21, 0xba, 0xf1, 0x19, 0x5f, 0x37, 0xce, 0x0b, 0xba, 0x51, + 0x3c, 0x18, 0xf9, 0x78, 0x6a, 0xf2, 0x27, 0x0f, 0x87, 0x0e, 0x20, 0x54, 0x9b, 0x8c, 0xf0, 0x51, + 0xa1, 0x67, 0x77, 0xff, 0x6a, 0x05, 0x72, 0xf3, 0xb8, 0x85, 0x65, 0x57, 0x22, 0xbf, 0x9b, 0x96, + 0xdd, 0x10, 0xa1, 0x30, 0x50, 0xda, 0xe1, 0xab, 0x23, 0x8e, 0xb1, 0x8d, 0x3b, 0x8e, 0xbe, 0xdd, + 0x26, 0xa2, 0x56, 0xb4, 0x20, 0x01, 0xfd, 0x72, 0x5a, 0x66, 0xbb, 0x24, 0xa2, 0x98, 0xff, 0x18, + 0x6b, 0x8a, 0x9f, 0x4b, 0xc3, 0x78, 0x0d, 0x3b, 0x55, 0xbb, 0x89, 0x6d, 0x54, 0x0b, 0x30, 0xba, + 0x06, 0x26, 0x09, 0x28, 0xee, 0x34, 0xd3, 0xc7, 0x89, 0x4f, 0x52, 0xaf, 0x87, 0x19, 0xff, 0x95, + 0xfc, 0xce, 0xba, 0xf1, 0xae, 0x54, 0xf4, 0xbd, 0x94, 0xec, 0x2e, 0x2e, 0x5b, 0x32, 0x64, 0xdc, + 0x84, 0xb4, 0x52, 0xb9, 0x1d, 0xd9, 0x48, 0x52, 0xc9, 0x6f, 0x74, 0xbd, 0x3d, 0x0d, 0xb0, 0x66, + 0x76, 0x3c, 0xb9, 0x3e, 0x3a, 0x86, 0x5c, 0xd1, 0x3f, 0xa7, 0xe2, 0xcd, 0x62, 0x82, 0x72, 0x42, + 0x24, 0xf6, 0xfa, 0x18, 0x6b, 0x0b, 0xa1, 0xc4, 0x92, 0x97, 0xd9, 0x37, 0x66, 0x20, 0x77, 0x5e, + 0x6f, 0xb5, 0xb0, 0x83, 0xbe, 0x99, 0x86, 0x5c, 0xd1, 0xc6, 0xba, 0x83, 0x79, 0xd1, 0x21, 0x18, + 0xb7, 0x2d, 0xcb, 0x59, 0xd5, 0x9d, 0x2d, 0x26, 0x37, 0xff, 0x9d, 0x39, 0x0c, 0xfc, 0x2e, 0xdf, + 0x7d, 0xdc, 0x29, 0x8a, 0xee, 0xa7, 0x85, 0xda, 0xd2, 0x82, 0x66, 0x69, 0x21, 0x21, 0xfd, 0x07, + 0x82, 0xf1, 0x6d, 0x13, 0x6f, 0x5b, 0xa6, 0xd1, 0xf0, 0x6c, 0x4e, 0xef, 0x1d, 0x7d, 0xc4, 0x97, + 0xe9, 0x9c, 0x20, 0xd3, 0x59, 0xe9, 0x52, 0xe2, 0x09, 0xb4, 0x36, 0x40, 0xef, 0x71, 0x35, 0x5c, + 0x49, 0x3b, 0x83, 0xf5, 0x7a, 0x75, 0xbd, 0xa8, 0x95, 0x0a, 0xf5, 0xd2, 0xfa, 0x72, 0xb5, 0x58, + 0x58, 0x5e, 0xd7, 0x4a, 0xab, 0xd5, 0x3c, 0x46, 0x7f, 0x9f, 0x76, 0x85, 0xdb, 0xb0, 0x76, 0xb1, + 0x8d, 0x16, 0xa5, 0xe4, 0x1c, 0x25, 0x13, 0x86, 0xc1, 0xaf, 0x4b, 0x3b, 0x6d, 0x30, 0xe9, 0x30, + 0x0e, 0x42, 0x94, 0xf7, 0xa3, 0x52, 0xcd, 0x3d, 0x92, 0xd4, 0xc3, 0x40, 0xd2, 0xff, 0x33, 0x0d, + 0x63, 0x45, 0xcb, 0xdc, 0xc5, 0xb6, 0xc3, 0xcf, 0x77, 0x78, 0x69, 0xa6, 0x44, 0x69, 0xba, 0x83, + 0x24, 0x36, 0x1d, 0xdb, 0x6a, 0x7b, 0x13, 0x1e, 0xef, 0x15, 0xbd, 0x31, 0xae, 0x84, 0x59, 0xc9, + 0xe1, 0x0b, 0x9f, 0xbd, 0x0b, 0x12, 0xd8, 0x53, 0xba, 0x1a, 0xc0, 0x83, 0x71, 0x70, 0xe9, 0xcd, + 0x40, 0xf2, 0x5d, 0xca, 0x57, 0x15, 0x98, 0xa6, 0x8d, 0xaf, 0x86, 0x89, 0x85, 0x86, 0xaa, 0xfc, + 0x92, 0x63, 0x97, 0xf0, 0x97, 0x8e, 0x08, 0xe2, 0xcf, 0xe9, 0xed, 0xb6, 0xbf, 0xfc, 0xbc, 0x74, + 0x44, 0x63, 0xef, 0x54, 0xcd, 0xe7, 0x72, 0x90, 0xd1, 0x77, 0x9c, 0x2d, 0xf4, 0x23, 0xe9, 0xc9, + 0xa7, 0xd0, 0x19, 0x30, 0x7e, 0x42, 0x20, 0x39, 0x0e, 0x59, 0xc7, 0xba, 0x88, 0x3d, 0x39, 0xd0, + 0x17, 0x17, 0x0e, 0xbd, 0xdd, 0xae, 0x93, 0x0f, 0x0c, 0x0e, 0xef, 0xdd, 0xb5, 0x75, 0xf4, 0x46, + 0xc3, 0xda, 0x31, 0x9d, 0xb2, 0xb7, 0x04, 0x1d, 0x24, 0xa0, 0x2f, 0xa6, 0x64, 0x26, 0xb3, 0x12, + 0x0c, 0xc6, 0x83, 0xec, 0xc2, 0x00, 0x4d, 0x69, 0x16, 0x6e, 0x2c, 0xac, 0xae, 0xae, 0xd7, 0xab, + 0xf7, 0x94, 0x2a, 0x81, 0xe1, 0xb9, 0x5e, 0xae, 0xac, 0xd7, 0x97, 0x4a, 0xeb, 0xc5, 0x35, 0x8d, + 0xac, 0x13, 0x16, 0x8a, 0xc5, 0xea, 0x5a, 0xa5, 0x9e, 0xc7, 0xe8, 0x2d, 0x69, 0x98, 0x2a, 0xb6, + 0xac, 0x8e, 0x8f, 0xf0, 0xd5, 0x01, 0xc2, 0xbe, 0x18, 0x53, 0x9c, 0x18, 0xd1, 0xbf, 0xa6, 0x64, + 0x9d, 0x0e, 0x3c, 0x81, 0x70, 0xe4, 0x43, 0x7a, 0xa9, 0x37, 0x4a, 0x39, 0x1d, 0xf4, 0xa7, 0x97, + 0x7c, 0x93, 0xf8, 0xdc, 0x6d, 0x30, 0x56, 0xa0, 0x8a, 0x81, 0xfe, 0x36, 0x05, 0xb9, 0xa2, 0x65, + 0x6e, 0x18, 0x9b, 0xae, 0x31, 0x87, 0x4d, 0xfd, 0x42, 0x0b, 0xcf, 0xeb, 0x8e, 0xbe, 0x6b, 0xe0, + 0x4b, 0xa4, 0x02, 0xe3, 0x5a, 0x57, 0xaa, 0xcb, 0x14, 0x4b, 0xc1, 0x17, 0x76, 0x36, 0x09, 0x53, + 0xe3, 0x1a, 0x9f, 0xa4, 0x3e, 0x11, 0x2e, 0xa7, 0xaf, 0xab, 0x36, 0xb6, 0x71, 0x0b, 0xeb, 0x1d, + 0xec, 0x4e, 0x8b, 0x4c, 0xdc, 0x22, 0x4a, 0x3b, 0xae, 0x85, 0x7d, 0x56, 0xcf, 0xc0, 0x14, 0xfd, + 0x44, 0x4c, 0x91, 0x0e, 0x51, 0xe3, 0x71, 0x4d, 0x48, 0x53, 0x1f, 0x03, 0x59, 0x7c, 0xbf, 0x63, + 0xeb, 0xa7, 0x9a, 0x04, 0xaf, 0xcb, 0x67, 0xa9, 0xd7, 0xe1, 0xac, 0xe7, 0x75, 0x38, 0x5b, 0x23, + 0x3e, 0x89, 0x1a, 0xcd, 0x85, 0x5e, 0x31, 0xee, 0x1b, 0x12, 0xff, 0x9e, 0x0e, 0x14, 0x43, 0x85, + 0x8c, 0xa9, 0x6f, 0x63, 0xa6, 0x17, 0xe4, 0x59, 0xbd, 0x11, 0x8e, 0xea, 0xbb, 0xba, 0xa3, 0xdb, + 0xcb, 0x56, 0x43, 0x6f, 0x91, 0xc1, 0xcf, 0x6b, 0xf9, 0xdd, 0x1f, 0xc8, 0x8e, 0x90, 0x63, 0xd9, + 0x98, 0xe4, 0xf2, 0x76, 0x84, 0xbc, 0x04, 0x97, 0xba, 0xd1, 0xb0, 0x4c, 0xc2, 0xbf, 0xa2, 0x91, + 0x67, 0x57, 0x2a, 0x4d, 0xa3, 0xe3, 0x56, 0x84, 0x50, 0xa9, 0xd0, 0xad, 0x8d, 0xda, 0x9e, 0xd9, + 0x20, 0xbb, 0x41, 0xe3, 0x5a, 0xd8, 0x67, 0x75, 0x0e, 0x26, 0xd9, 0x46, 0xc8, 0x8a, 0xab, 0x57, + 0x39, 0xa2, 0x57, 0xd7, 0x88, 0x3e, 0x5d, 0x14, 0xcf, 0xd9, 0x4a, 0x90, 0x4f, 0xe3, 0x7f, 0x52, + 0xef, 0x82, 0x2b, 0xd9, 0x6b, 0x71, 0xa7, 0xe3, 0x58, 0xdb, 0x14, 0xf4, 0x05, 0xa3, 0x45, 0x6b, + 0x30, 0x46, 0x6a, 0x10, 0x95, 0x45, 0xbd, 0x05, 0x8e, 0xb7, 0x6d, 0xbc, 0x81, 0xed, 0x7b, 0xf5, + 0xed, 0x9d, 0xfb, 0xeb, 0xb6, 0x6e, 0x76, 0xda, 0x96, 0xed, 0x9c, 0x1a, 0x27, 0xcc, 0xf7, 0xfc, + 0xc6, 0x3a, 0xca, 0x71, 0xc8, 0x51, 0xf1, 0xa1, 0x17, 0x66, 0xa5, 0xdd, 0x39, 0x59, 0x85, 0x22, + 0xcd, 0xb3, 0x9b, 0x61, 0x8c, 0xf5, 0x70, 0x04, 0xa8, 0xc9, 0x5b, 0x4e, 0x76, 0xad, 0x2b, 0x30, + 0x2a, 0x9a, 0x97, 0x4d, 0x7d, 0x1c, 0xe4, 0x1a, 0xa4, 0x5a, 0x04, 0xb3, 0xc9, 0x5b, 0xae, 0xec, + 0x5d, 0x28, 0xc9, 0xa2, 0xb1, 0xac, 0xe8, 0x4b, 0x8a, 0x94, 0x07, 0x68, 0x14, 0xc7, 0xf1, 0x5a, + 0xf5, 0xb7, 0xd3, 0x03, 0x74, 0x9b, 0x37, 0xc1, 0x0d, 0xac, 0x4f, 0x64, 0xf6, 0xc7, 0xfc, 0xfa, + 0xdc, 0x9a, 0x37, 0x19, 0x74, 0xad, 0x92, 0x5a, 0xbd, 0xa0, 0xb9, 0x33, 0xf9, 0x79, 0x77, 0x12, + 0x79, 0x23, 0x5c, 0xdf, 0x27, 0x77, 0xa9, 0xbe, 0x5e, 0x29, 0xac, 0x94, 0xf2, 0x1b, 0xa2, 0x6d, + 0x53, 0xab, 0x57, 0x57, 0xd7, 0xb5, 0xb5, 0x4a, 0xa5, 0x5c, 0x59, 0xa4, 0xc4, 0x5c, 0x93, 0xf0, + 0x64, 0x90, 0xe1, 0xbc, 0x56, 0xae, 0x97, 0xd6, 0x8b, 0xd5, 0xca, 0x42, 0x79, 0x31, 0x6f, 0xf4, + 0x33, 0x8c, 0xee, 0x53, 0xaf, 0x81, 0xab, 0x04, 0x4e, 0xca, 0xd5, 0x8a, 0x3b, 0xb3, 0x2d, 0x16, + 0x2a, 0xc5, 0x92, 0x3b, 0x8d, 0xbd, 0xa8, 0x22, 0x38, 0x41, 0xc9, 0xad, 0x2f, 0x94, 0x97, 0xf9, + 0xcd, 0xa8, 0x4f, 0xa6, 0xd4, 0x53, 0x70, 0x19, 0xff, 0xad, 0x5c, 0x39, 0x57, 0x58, 0x2e, 0xcf, + 0xe7, 0xff, 0x38, 0xa5, 0x5e, 0x07, 0x57, 0x0b, 0x7f, 0xd1, 0x7d, 0xa5, 0xf5, 0xf2, 0xfc, 0xfa, + 0x4a, 0xb9, 0xb6, 0x52, 0xa8, 0x17, 0x97, 0xf2, 0x9f, 0x22, 0xf3, 0x05, 0xdf, 0x00, 0xe6, 0xdc, + 0x32, 0x5f, 0xc2, 0x8f, 0xe9, 0x05, 0x51, 0x51, 0x1f, 0xdd, 0x13, 0xf6, 0x68, 0x1b, 0xf6, 0xe3, + 0xfe, 0xe8, 0x30, 0x2f, 0xa8, 0xd0, 0xcd, 0x31, 0x68, 0xc5, 0xd3, 0xa1, 0xfa, 0x00, 0x2a, 0x74, + 0x0d, 0x5c, 0x55, 0x29, 0x51, 0xa4, 0xb4, 0x52, 0xb1, 0x7a, 0xae, 0xa4, 0xad, 0x9f, 0x2f, 0x2c, + 0x2f, 0x97, 0xea, 0xeb, 0x0b, 0x65, 0xad, 0x56, 0xcf, 0x6f, 0xa0, 0x7f, 0x4e, 0xfb, 0xab, 0x39, + 0x9c, 0xb4, 0xfe, 0x36, 0x1d, 0xb7, 0x59, 0x47, 0xae, 0xda, 0xfc, 0x0c, 0xe4, 0x3a, 0x8e, 0xee, + 0xec, 0x74, 0x58, 0xab, 0x7e, 0x44, 0xef, 0x56, 0x3d, 0x5b, 0x23, 0x99, 0x34, 0x96, 0x19, 0x7d, + 0x29, 0x15, 0xa7, 0x99, 0x0e, 0x61, 0x41, 0xc7, 0x18, 0x40, 0xc4, 0xa7, 0x01, 0x79, 0xda, 0x5e, + 0xae, 0xad, 0x17, 0x96, 0xb5, 0x52, 0x61, 0xfe, 0x5e, 0x7f, 0x19, 0x07, 0xab, 0x27, 0xe0, 0xd8, + 0x5a, 0xa5, 0x30, 0xb7, 0x5c, 0x22, 0xcd, 0xa5, 0x5a, 0xa9, 0x94, 0x8a, 0xae, 0xdc, 0x7f, 0x99, + 0x6c, 0x9a, 0xb8, 0x16, 0x34, 0xe1, 0xdb, 0xb5, 0x72, 0x38, 0xf9, 0x7f, 0x4b, 0xda, 0xb7, 0x28, + 0xd0, 0x30, 0x9e, 0xd6, 0x70, 0x71, 0xf8, 0xa2, 0x94, 0x3b, 0x91, 0x14, 0x27, 0xf1, 0xf0, 0xf8, + 0x85, 0x01, 0xf0, 0x38, 0x01, 0xc7, 0x78, 0x3c, 0x88, 0x5b, 0x51, 0x38, 0x0c, 0x5f, 0x1b, 0x87, + 0x5c, 0x0d, 0xb7, 0x70, 0xc3, 0x41, 0x6f, 0xe3, 0x8c, 0x89, 0x19, 0x48, 0xfb, 0x6e, 0x2c, 0x69, + 0xa3, 0x29, 0x4c, 0x9f, 0xd3, 0x5d, 0xd3, 0xe7, 0x08, 0x33, 0x40, 0x89, 0x65, 0x06, 0x64, 0x12, + 0x30, 0x03, 0xb2, 0x83, 0x9b, 0x01, 0xb9, 0x7e, 0x66, 0x00, 0x7a, 0x7d, 0x2e, 0x6e, 0x2f, 0x41, + 0x45, 0x7d, 0xb8, 0x83, 0xff, 0xff, 0xc8, 0xc4, 0xe9, 0x55, 0x7a, 0x72, 0x1c, 0x4f, 0x8b, 0x7f, + 0xa4, 0x24, 0xb0, 0xfc, 0xa0, 0x5e, 0x0b, 0x57, 0x07, 0xef, 0xeb, 0xa5, 0xa7, 0x96, 0x6b, 0xf5, + 0x1a, 0x19, 0xf1, 0x8b, 0x55, 0x4d, 0x5b, 0x5b, 0xa5, 0x6b, 0xc8, 0x27, 0x41, 0x0d, 0xa8, 0x68, + 0x6b, 0x15, 0x3a, 0xbe, 0x6f, 0x8a, 0xd4, 0x17, 0xca, 0x95, 0xf9, 0x75, 0xbf, 0xcd, 0x54, 0x16, + 0xaa, 0xf9, 0x2d, 0x77, 0xca, 0xc6, 0x51, 0x77, 0x07, 0x68, 0x56, 0x42, 0xa1, 0x32, 0xbf, 0xbe, + 0x52, 0x29, 0xad, 0x54, 0x2b, 0xe5, 0x22, 0x49, 0xaf, 0x95, 0xea, 0x79, 0xc3, 0x1d, 0x68, 0xba, + 0x2c, 0x8a, 0x5a, 0xa9, 0xa0, 0x15, 0x97, 0x4a, 0x1a, 0x2d, 0xf2, 0x3e, 0xf5, 0x7a, 0x38, 0x53, + 0xa8, 0x54, 0xeb, 0x6e, 0x4a, 0xa1, 0x72, 0x6f, 0xfd, 0xde, 0xd5, 0xd2, 0xfa, 0xaa, 0x56, 0x2d, + 0x96, 0x6a, 0x35, 0xb7, 0x9d, 0x32, 0xfb, 0x23, 0xdf, 0x52, 0x9f, 0x0c, 0xb7, 0x71, 0xac, 0x95, + 0xea, 0x64, 0xc3, 0x72, 0xa5, 0x4a, 0x7c, 0x56, 0xe6, 0x4b, 0xeb, 0x4b, 0x85, 0xda, 0x7a, 0xb9, + 0x52, 0xac, 0xae, 0xac, 0x16, 0xea, 0x65, 0xb7, 0x39, 0xaf, 0x6a, 0xd5, 0x7a, 0x75, 0xfd, 0x5c, + 0x49, 0xab, 0x95, 0xab, 0x95, 0xbc, 0xe9, 0x56, 0x99, 0x6b, 0xff, 0x5e, 0x3f, 0x6c, 0xa9, 0x57, + 0xc1, 0x29, 0x2f, 0x7d, 0xb9, 0xea, 0x0a, 0x9a, 0xb3, 0x48, 0xda, 0x89, 0x5a, 0x24, 0xff, 0x92, + 0x86, 0x4c, 0xcd, 0xb1, 0xda, 0xe8, 0xa7, 0x83, 0x0e, 0xe6, 0x34, 0x80, 0x4d, 0xf6, 0x1f, 0xdd, + 0x59, 0x18, 0x9b, 0x97, 0x71, 0x29, 0xe8, 0x8f, 0xa4, 0x37, 0x4d, 0x82, 0x3e, 0xdb, 0x6a, 0x87, + 0xd8, 0x2a, 0x3f, 0x94, 0x3b, 0x45, 0x12, 0x4e, 0x28, 0x9e, 0xbe, 0xff, 0xca, 0x20, 0xdb, 0x22, + 0x08, 0x4e, 0x72, 0xb0, 0xb9, 0xf2, 0xf7, 0x54, 0x02, 0xab, 0x97, 0xc3, 0x65, 0x5d, 0xca, 0x45, + 0x74, 0x6a, 0x43, 0xfd, 0x29, 0x78, 0x04, 0xa7, 0xde, 0xa5, 0x95, 0xea, 0xb9, 0x92, 0xaf, 0xc8, + 0xf3, 0x85, 0x7a, 0x21, 0xbf, 0x89, 0x3e, 0xa7, 0x40, 0x66, 0xc5, 0xda, 0xed, 0xde, 0xab, 0x32, + 0xf1, 0x25, 0x6e, 0x2d, 0xd4, 0x7b, 0x15, 0xbd, 0xe6, 0xa5, 0xc4, 0xbe, 0x12, 0xbe, 0x2f, 0xfd, + 0xc5, 0x74, 0x1c, 0xb1, 0xaf, 0x1c, 0x74, 0x33, 0xfa, 0x1f, 0x06, 0x11, 0x7b, 0x88, 0x68, 0xb1, + 0x7a, 0x06, 0x4e, 0x07, 0x1f, 0xca, 0xf3, 0xa5, 0x4a, 0xbd, 0xbc, 0x70, 0x6f, 0x20, 0xdc, 0xb2, + 0x26, 0x25, 0xfe, 0x7e, 0xdd, 0x58, 0xf4, 0x4c, 0xe3, 0x14, 0x1c, 0x0f, 0xbe, 0x2d, 0x96, 0xea, + 0xde, 0x97, 0xfb, 0xd0, 0x03, 0x59, 0x98, 0xa2, 0xdd, 0xfa, 0x5a, 0xbb, 0xa9, 0x3b, 0x18, 0x3d, + 0x2e, 0x40, 0xf7, 0x06, 0x38, 0x5a, 0x5e, 0x5d, 0xa8, 0xd5, 0x1c, 0xcb, 0xd6, 0x37, 0x71, 0xa1, + 0xd9, 0xb4, 0x99, 0xb4, 0xba, 0x93, 0xd1, 0xbb, 0xa5, 0xd7, 0xf9, 0xc4, 0xa1, 0x84, 0x96, 0x19, + 0x82, 0xfa, 0x57, 0xa5, 0xd6, 0xe5, 0x24, 0x08, 0xc6, 0x43, 0xff, 0xbe, 0x21, 0xb7, 0xb9, 0x70, + 0x5c, 0x36, 0xce, 0x3c, 0x27, 0x0d, 0x13, 0x75, 0x63, 0x1b, 0x3f, 0xc3, 0x32, 0x71, 0x47, 0x1d, + 0x03, 0x65, 0x71, 0xa5, 0x9e, 0x3f, 0xe2, 0x3e, 0xb8, 0x46, 0x55, 0x8a, 0x3c, 0x94, 0xdc, 0x02, + 0xdc, 0x87, 0x42, 0x3d, 0xaf, 0xb8, 0x0f, 0x2b, 0xa5, 0x7a, 0x3e, 0xe3, 0x3e, 0x54, 0x4a, 0xf5, + 0x7c, 0xd6, 0x7d, 0x58, 0x5d, 0xae, 0xe7, 0x73, 0xee, 0x43, 0xb9, 0x56, 0xcf, 0x8f, 0xb9, 0x0f, + 0x73, 0xb5, 0x7a, 0x7e, 0xdc, 0x7d, 0x38, 0x57, 0xab, 0xe7, 0x27, 0xdc, 0x87, 0x62, 0xbd, 0x9e, + 0x07, 0xf7, 0xe1, 0xee, 0x5a, 0x3d, 0x3f, 0xe9, 0x3e, 0x14, 0x8a, 0xf5, 0xfc, 0x14, 0x79, 0x28, + 0xd5, 0xf3, 0xd3, 0xee, 0x43, 0xad, 0x56, 0xcf, 0xcf, 0x10, 0xca, 0xb5, 0x7a, 0xfe, 0x28, 0x29, + 0xab, 0x5c, 0xcf, 0xe7, 0xdd, 0x87, 0xa5, 0x5a, 0x3d, 0x7f, 0x8c, 0x64, 0xae, 0xd5, 0xf3, 0x2a, + 0x29, 0xb4, 0x56, 0xcf, 0x5f, 0x46, 0xf2, 0xd4, 0xea, 0xf9, 0xe3, 0xa4, 0x88, 0x5a, 0x3d, 0x7f, + 0x82, 0xb0, 0x51, 0xaa, 0xe7, 0x4f, 0x92, 0x3c, 0x5a, 0x3d, 0x7f, 0x39, 0xf9, 0x54, 0xa9, 0xe7, + 0x4f, 0x11, 0xc6, 0x4a, 0xf5, 0xfc, 0x15, 0xe4, 0x41, 0xab, 0xe7, 0x11, 0xf9, 0x54, 0xa8, 0xe7, + 0xaf, 0x44, 0x8f, 0x80, 0x89, 0x45, 0xec, 0x50, 0x10, 0x51, 0x1e, 0x94, 0x45, 0xec, 0xf0, 0x66, + 0xfc, 0x37, 0x14, 0xb8, 0x9c, 0x4d, 0xfd, 0x16, 0x6c, 0x6b, 0x7b, 0x19, 0x6f, 0xea, 0x8d, 0xbd, + 0xd2, 0xfd, 0xae, 0x09, 0xc5, 0xef, 0xcb, 0xaa, 0x90, 0x69, 0x07, 0x9d, 0x11, 0x79, 0x8e, 0xb4, + 0x38, 0xbd, 0xc5, 0x28, 0x25, 0x58, 0x8c, 0x62, 0x16, 0xd9, 0x3f, 0xf1, 0x1a, 0x2d, 0xac, 0x1f, + 0xa7, 0xba, 0xd6, 0x8f, 0xdd, 0x66, 0xd2, 0xc6, 0x76, 0xc7, 0x32, 0xf5, 0x56, 0x8d, 0x6d, 0xdc, + 0xd3, 0x55, 0xaf, 0xee, 0x64, 0xf5, 0x29, 0x5e, 0xcb, 0xa0, 0x56, 0xd9, 0x93, 0xa2, 0x66, 0xb8, + 0xdd, 0xd5, 0x0c, 0x69, 0x24, 0x9f, 0xf2, 0x1b, 0x49, 0x5d, 0x68, 0x24, 0x77, 0x1d, 0x80, 0x76, + 0xbc, 0xf6, 0x52, 0x1e, 0x6c, 0x6a, 0x11, 0xb8, 0xb5, 0x7a, 0xcb, 0xd5, 0x0a, 0xfa, 0x5c, 0x1a, + 0x4e, 0x96, 0xcc, 0x5e, 0x16, 0x3e, 0xaf, 0x0b, 0x6f, 0xe1, 0xa1, 0x59, 0x15, 0x45, 0x7a, 0x5b, + 0xcf, 0x6a, 0xf7, 0xa6, 0x19, 0x22, 0xd1, 0x4f, 0xfb, 0x12, 0xad, 0x09, 0x12, 0xbd, 0x73, 0x70, + 0xd2, 0xf1, 0x04, 0x5a, 0x19, 0x6a, 0x07, 0x94, 0x41, 0xdf, 0xce, 0xc0, 0x23, 0xa8, 0xef, 0x0d, + 0xe3, 0x90, 0xb6, 0xb2, 0x82, 0xd9, 0xd4, 0x70, 0xc7, 0xd1, 0x6d, 0x47, 0x38, 0x0f, 0xdd, 0x35, + 0x95, 0x4a, 0x25, 0x30, 0x95, 0x4a, 0xf7, 0x9d, 0x4a, 0xa1, 0x77, 0xf1, 0xe6, 0xc3, 0x79, 0x11, + 0xe3, 0x42, 0xef, 0xfe, 0x3f, 0xaa, 0x86, 0x61, 0x50, 0xfb, 0x76, 0xc5, 0xcf, 0x09, 0x50, 0x2f, + 0x1c, 0xb8, 0x84, 0x78, 0x88, 0xff, 0xd1, 0x70, 0xed, 0xbc, 0x0c, 0xff, 0x4d, 0x34, 0x4a, 0xf2, + 0xcd, 0x44, 0x0d, 0xf4, 0xcf, 0x8c, 0xc1, 0x04, 0x69, 0x0b, 0xcb, 0x86, 0x79, 0x11, 0x3d, 0xa8, + 0xc0, 0x54, 0x05, 0x5f, 0x2a, 0x6e, 0xe9, 0xad, 0x16, 0x36, 0x37, 0x31, 0x6f, 0xb6, 0x9f, 0x82, + 0x31, 0xbd, 0xdd, 0xae, 0x04, 0xfb, 0x0c, 0xde, 0x2b, 0xeb, 0x7f, 0xbf, 0xd5, 0xb3, 0x91, 0xa7, + 0x22, 0x1a, 0xb9, 0x5f, 0xee, 0x2c, 0x5f, 0x66, 0xc8, 0x0c, 0xf9, 0x1a, 0x98, 0x6c, 0x78, 0x59, + 0xfc, 0x73, 0x13, 0x7c, 0x12, 0xfa, 0xbb, 0x58, 0xdd, 0x80, 0x54, 0xe1, 0xf1, 0x94, 0x02, 0x0f, + 0xd9, 0x0e, 0x39, 0x01, 0xc7, 0xea, 0xd5, 0xea, 0xfa, 0x4a, 0xa1, 0x72, 0x6f, 0x70, 0x5e, 0x79, + 0x03, 0xbd, 0x32, 0x03, 0x33, 0x35, 0xab, 0xb5, 0x8b, 0x03, 0x98, 0xca, 0x82, 0x43, 0x0e, 0x2f, + 0xa7, 0xd4, 0x3e, 0x39, 0xa9, 0x27, 0x21, 0xa7, 0x9b, 0x9d, 0x4b, 0xd8, 0xb3, 0x0d, 0xd9, 0x1b, + 0x83, 0xf1, 0x43, 0x7c, 0x3b, 0xd6, 0x44, 0x18, 0x6f, 0xef, 0x23, 0x49, 0x91, 0xab, 0x10, 0x20, + 0xcf, 0xc0, 0x54, 0x87, 0x6e, 0x16, 0xd6, 0xb9, 0x3d, 0x61, 0x21, 0x8d, 0xb0, 0x48, 0x77, 0xab, + 0x15, 0xc6, 0x22, 0x79, 0x43, 0x0f, 0xfa, 0xcd, 0x7f, 0x4d, 0x80, 0xb8, 0x70, 0x10, 0xc6, 0xe2, + 0x81, 0xfc, 0xea, 0x61, 0xcf, 0xf0, 0x4e, 0xc1, 0x71, 0xd6, 0x6a, 0xd7, 0x8b, 0x4b, 0x85, 0xe5, + 0xe5, 0x52, 0x65, 0xb1, 0xb4, 0x5e, 0x9e, 0xa7, 0x5b, 0x15, 0x41, 0x4a, 0xa1, 0x5e, 0x2f, 0xad, + 0xac, 0xd6, 0x6b, 0xeb, 0xa5, 0xa7, 0x16, 0x4b, 0xa5, 0x79, 0xe2, 0x12, 0x47, 0xce, 0xb4, 0x78, + 0xce, 0x8b, 0x85, 0x4a, 0xed, 0x7c, 0x49, 0xcb, 0x6f, 0x9d, 0x29, 0xc0, 0x24, 0xd7, 0xcf, 0xbb, + 0xdc, 0xcd, 0xe3, 0x0d, 0x7d, 0xa7, 0xc5, 0x6c, 0xb5, 0xfc, 0x11, 0x97, 0x3b, 0x22, 0x9b, 0xaa, + 0xd9, 0xda, 0xcb, 0xa7, 0xd4, 0x3c, 0x4c, 0xf1, 0x5d, 0x7a, 0x3e, 0x8d, 0xde, 0x7e, 0x15, 0x4c, + 0x9c, 0xb7, 0xec, 0x8b, 0xc4, 0x8f, 0x0b, 0xbd, 0x8f, 0xc6, 0x35, 0xf1, 0x4e, 0x88, 0x72, 0x03, + 0xfb, 0xab, 0xe5, 0xbd, 0x05, 0x3c, 0x6a, 0xb3, 0x7d, 0x4f, 0x81, 0x5e, 0x03, 0x93, 0x97, 0xbc, + 0xdc, 0x41, 0x4b, 0xe7, 0x92, 0xd0, 0x7f, 0x93, 0xdb, 0xff, 0xef, 0x5f, 0x64, 0xf2, 0xfb, 0xd3, + 0x6f, 0x4b, 0x43, 0x6e, 0x11, 0x3b, 0x85, 0x56, 0x8b, 0x97, 0xdb, 0x4b, 0xa5, 0x4f, 0xf6, 0x08, + 0x95, 0x28, 0xb4, 0x5a, 0xe1, 0x8d, 0x8a, 0x13, 0x90, 0xe7, 0x81, 0x2e, 0xa4, 0x49, 0xfa, 0xcd, + 0xf5, 0x29, 0x30, 0x79, 0x89, 0x7d, 0x44, 0xf1, 0xf7, 0xb8, 0x1f, 0xe2, 0xac, 0x9c, 0xc7, 0x06, + 0x31, 0x6d, 0x52, 0xd1, 0x7b, 0xe5, 0x5e, 0x3e, 0xf5, 0x1e, 0x18, 0xdb, 0xe9, 0xe0, 0xa2, 0xde, + 0xc1, 0x84, 0xb7, 0xee, 0x9a, 0x56, 0x2f, 0xdc, 0x87, 0x1b, 0xce, 0x6c, 0x79, 0xdb, 0x35, 0xa8, + 0xd7, 0x68, 0x46, 0x3f, 0x4c, 0x0c, 0x7b, 0xd7, 0x3c, 0x0a, 0xee, 0xa4, 0xe4, 0x92, 0xe1, 0x6c, + 0x15, 0xb7, 0x74, 0x87, 0xad, 0x6d, 0xfb, 0xef, 0xe8, 0x85, 0x03, 0xc0, 0x19, 0xb9, 0x17, 0x1c, + 0x7a, 0x40, 0x30, 0x36, 0x88, 0x43, 0xd8, 0xc0, 0x1d, 0x04, 0xc4, 0x7f, 0x4c, 0x43, 0xa6, 0xda, + 0xc6, 0xa6, 0xf4, 0x69, 0x18, 0x5f, 0xb6, 0xe9, 0x2e, 0xd9, 0x3e, 0x28, 0xef, 0x1d, 0xe6, 0x57, + 0xda, 0x2d, 0x39, 0x44, 0xb2, 0x67, 0x21, 0x63, 0x98, 0x1b, 0x16, 0x33, 0x4c, 0xaf, 0x0c, 0xd9, + 0x04, 0x2a, 0x9b, 0x1b, 0x96, 0x46, 0x32, 0xca, 0x3a, 0x86, 0x45, 0x95, 0x9d, 0xbc, 0xb8, 0xbf, + 0x33, 0x0e, 0x39, 0xaa, 0xce, 0xe8, 0x25, 0x0a, 0x28, 0x85, 0x66, 0x33, 0x44, 0xf0, 0xe9, 0x7d, + 0x82, 0xb7, 0xc8, 0x6f, 0x3e, 0x26, 0xfe, 0xbb, 0x18, 0xcc, 0x44, 0xb2, 0x6f, 0x67, 0x4d, 0xaa, + 0xd0, 0x6c, 0x86, 0xfb, 0xa0, 0xfa, 0x05, 0xa6, 0xc5, 0x02, 0xf9, 0x16, 0xae, 0xc8, 0xb5, 0xf0, + 0xd8, 0x03, 0x41, 0x28, 0x7f, 0xc9, 0x43, 0xf4, 0x4f, 0x69, 0x18, 0x5b, 0x36, 0x3a, 0x8e, 0x8b, + 0x4d, 0x41, 0x06, 0x9b, 0xab, 0x60, 0xc2, 0x13, 0x8d, 0xdb, 0xe5, 0xb9, 0xfd, 0x79, 0x90, 0x80, + 0x5e, 0xc7, 0xa3, 0x73, 0xb7, 0x88, 0xce, 0xe3, 0xa3, 0x6b, 0xcf, 0xb8, 0x08, 0x3f, 0x65, 0x10, + 0x14, 0x9b, 0xee, 0x2e, 0xf6, 0x77, 0x7d, 0x81, 0xaf, 0x08, 0x02, 0xbf, 0x75, 0x90, 0x22, 0x93, + 0x17, 0xfa, 0xe7, 0xd3, 0x00, 0x6e, 0xd9, 0xec, 0x28, 0xd7, 0xa3, 0x84, 0x03, 0xda, 0x11, 0xd2, + 0x7d, 0x25, 0x2f, 0xdd, 0x15, 0x51, 0xba, 0x3f, 0xdb, 0xbf, 0xaa, 0x51, 0x47, 0xb6, 0xd4, 0x3c, + 0x28, 0x86, 0x2f, 0x5a, 0xf7, 0x11, 0xbd, 0xcd, 0x17, 0xea, 0xaa, 0x20, 0xd4, 0xdb, 0x07, 0x2c, + 0x29, 0x79, 0xb9, 0xfe, 0x75, 0x1a, 0xc6, 0x6a, 0xd8, 0x71, 0xbb, 0x49, 0x74, 0x4e, 0xa6, 0x87, + 0xe7, 0xda, 0x76, 0x5a, 0xb2, 0x6d, 0xff, 0x20, 0x25, 0x1b, 0xe8, 0x25, 0x90, 0x0c, 0xe3, 0x29, + 0x64, 0xf1, 0xe0, 0x21, 0xa9, 0x40, 0x2f, 0xfd, 0xa8, 0x25, 0x2f, 0xdd, 0xb7, 0xa4, 0xfd, 0x8d, + 0x79, 0xf1, 0xa4, 0x05, 0x6f, 0x16, 0xa7, 0xf6, 0x9b, 0xc5, 0xf2, 0x27, 0x2d, 0xf8, 0x3a, 0x86, + 0xef, 0x4a, 0xc7, 0x36, 0x36, 0x86, 0xb0, 0x61, 0x3c, 0x88, 0xbc, 0x9e, 0xa5, 0x40, 0x8e, 0xad, + 0x2c, 0xdf, 0x19, 0xbd, 0xb2, 0xdc, 0x7f, 0x6a, 0xf1, 0xde, 0x01, 0x4c, 0xb9, 0xa8, 0xe5, 0x5e, + 0x9f, 0x8d, 0x34, 0xc7, 0xc6, 0x4d, 0x90, 0x25, 0x91, 0x28, 0xd9, 0x38, 0x17, 0xec, 0xf5, 0x7b, + 0x24, 0x4a, 0xee, 0x57, 0x8d, 0x66, 0x8a, 0x8d, 0xc2, 0x10, 0x56, 0x88, 0x07, 0x41, 0xe1, 0x5d, + 0x9f, 0x4b, 0xf9, 0x46, 0xc8, 0x7b, 0x33, 0xcc, 0xfc, 0xfb, 0x84, 0x18, 0x13, 0xa3, 0x61, 0x99, + 0x0e, 0xbe, 0x9f, 0x5b, 0x93, 0xf7, 0x13, 0x22, 0x2d, 0x83, 0x53, 0x30, 0xe6, 0xd8, 0xfc, 0x3a, + 0xbd, 0xf7, 0xca, 0xf7, 0x38, 0x59, 0xb1, 0xc7, 0xa9, 0xc0, 0x19, 0xc3, 0x6c, 0xb4, 0x76, 0x9a, + 0x58, 0xc3, 0x2d, 0xdd, 0xad, 0x55, 0xa7, 0xd0, 0x99, 0xc7, 0x6d, 0x6c, 0x36, 0xb1, 0xe9, 0x50, + 0x3e, 0x3d, 0x9f, 0x5c, 0x89, 0x9c, 0xe8, 0x9b, 0xbc, 0x62, 0xdc, 0x21, 0x2a, 0xc6, 0xa3, 0x7a, + 0xcd, 0x2b, 0x22, 0x8c, 0xd0, 0x5b, 0x01, 0x68, 0xdd, 0xce, 0x19, 0xf8, 0x12, 0xeb, 0x10, 0xaf, + 0xe8, 0x32, 0x45, 0xab, 0x7e, 0x06, 0x8d, 0xcb, 0x8c, 0xbe, 0xe2, 0x2b, 0xc3, 0x5d, 0x82, 0x32, + 0xdc, 0x24, 0xc9, 0x42, 0x3c, 0x3d, 0x68, 0x0f, 0xb0, 0xd6, 0x31, 0x0d, 0x13, 0xc1, 0x0a, 0xa5, + 0xa2, 0x5e, 0x01, 0x27, 0x3c, 0x9f, 0x87, 0x4a, 0xa9, 0x34, 0x5f, 0x5b, 0x5f, 0x5b, 0x5d, 0xd4, + 0x0a, 0xf3, 0xa5, 0x3c, 0xa8, 0x2a, 0xcc, 0x54, 0xe7, 0xee, 0x2e, 0x15, 0xeb, 0xbe, 0xab, 0x42, + 0x06, 0xfd, 0x55, 0x1a, 0xb2, 0xc4, 0xa1, 0x1c, 0x3d, 0x6d, 0x48, 0x9a, 0xd3, 0x11, 0x76, 0x78, + 0xfc, 0x89, 0x94, 0x7c, 0xac, 0x4a, 0x26, 0x4c, 0xc2, 0xd5, 0x81, 0x62, 0x55, 0x46, 0x10, 0x4a, + 0xbe, 0x79, 0xba, 0x4d, 0xb2, 0xb6, 0x65, 0x5d, 0xfa, 0x49, 0x6e, 0x92, 0x6e, 0xfd, 0x0f, 0xb9, + 0x49, 0xf6, 0x60, 0x61, 0xe4, 0x4d, 0xb2, 0x47, 0xbb, 0x8b, 0x68, 0xa6, 0xe8, 0x99, 0x59, 0x7f, + 0x41, 0xe6, 0x39, 0xe9, 0x03, 0x2d, 0xc8, 0x14, 0x60, 0xda, 0x30, 0x1d, 0x6c, 0x9b, 0x7a, 0x6b, + 0xa1, 0xa5, 0x6f, 0x7a, 0x07, 0xe8, 0xbb, 0x67, 0xe1, 0x65, 0x2e, 0x8f, 0x26, 0xfe, 0xa1, 0x9e, + 0x06, 0x70, 0xf0, 0x76, 0xbb, 0xa5, 0x3b, 0x81, 0xea, 0x71, 0x29, 0xbc, 0xf6, 0x65, 0x44, 0xed, + 0xbb, 0x19, 0x2e, 0xa3, 0xa0, 0xd5, 0xf7, 0xda, 0x78, 0xcd, 0x34, 0x9e, 0xbe, 0x43, 0x42, 0x28, + 0x51, 0x1d, 0xed, 0xf5, 0x49, 0x58, 0x96, 0xc8, 0x75, 0x2d, 0x4b, 0xfc, 0xa3, 0xf4, 0xd1, 0x4c, + 0xaf, 0xd5, 0xf7, 0x39, 0x9a, 0xe9, 0xb7, 0x34, 0xa5, 0xab, 0xa5, 0xf9, 0xc6, 0x42, 0x46, 0xc2, + 0x58, 0xe0, 0x51, 0xc9, 0x4a, 0x1a, 0xda, 0xaf, 0x95, 0x3a, 0xfb, 0x19, 0x55, 0x8d, 0x11, 0x4c, + 0xe4, 0x14, 0x98, 0xa1, 0x45, 0xcf, 0x59, 0xd6, 0xc5, 0x6d, 0xdd, 0xbe, 0x88, 0xec, 0x03, 0xa9, + 0x62, 0xe4, 0x9a, 0x48, 0xe8, 0x42, 0xdf, 0xa7, 0x79, 0xd4, 0x17, 0x45, 0xd4, 0x1f, 0x1b, 0x2e, + 0x2e, 0x8f, 0xe7, 0xd1, 0x2c, 0x8a, 0xbc, 0xc9, 0xc7, 0xf3, 0x6e, 0x01, 0xcf, 0x27, 0xc4, 0x66, + 0x30, 0x79, 0x5c, 0xff, 0xc4, 0xc7, 0xd5, 0xeb, 0xe8, 0xf9, 0xf9, 0xe4, 0x30, 0x71, 0x45, 0x5f, + 0x1d, 0x0c, 0x3b, 0x8f, 0xaf, 0x01, 0xb0, 0xcb, 0x83, 0x72, 0xd1, 0xdf, 0xc2, 0x72, 0x1f, 0xf9, + 0x0a, 0x65, 0x92, 0x43, 0x33, 0x84, 0xe5, 0x91, 0xa0, 0x79, 0x5c, 0x64, 0xa1, 0xda, 0x4e, 0x14, + 0xd3, 0x2f, 0x4b, 0xaf, 0xd3, 0xf4, 0x14, 0x10, 0xe5, 0x6e, 0x34, 0xad, 0x52, 0x6e, 0x91, 0x47, + 0x9e, 0xcd, 0xe4, 0xd1, 0x7c, 0x41, 0x16, 0x26, 0xbc, 0xc3, 0xb3, 0x24, 0xb6, 0xbb, 0x8f, 0xe1, + 0x49, 0xc8, 0x75, 0xac, 0x1d, 0xbb, 0x81, 0xd9, 0xca, 0x19, 0x7b, 0x1b, 0x60, 0x95, 0xa7, 0xef, + 0x78, 0xbe, 0xcf, 0x64, 0xc8, 0xc4, 0x36, 0x19, 0xc2, 0x0d, 0xd2, 0xa8, 0x01, 0xfe, 0x85, 0xd2, + 0x01, 0x39, 0x05, 0xcc, 0x6a, 0xd8, 0x79, 0x38, 0x8e, 0xf1, 0x7f, 0x28, 0xb5, 0x86, 0xd0, 0xa7, + 0x26, 0xf1, 0x54, 0xae, 0x3a, 0x80, 0xa1, 0x7a, 0x25, 0x5c, 0xee, 0xe5, 0x60, 0x16, 0x2a, 0xb1, + 0x48, 0xd7, 0xb4, 0xe5, 0xbc, 0x82, 0x9e, 0x95, 0x81, 0x3c, 0x65, 0xad, 0xea, 0x1b, 0x6b, 0xe8, + 0xa5, 0xa9, 0xc3, 0xb6, 0x48, 0xc3, 0xa7, 0x98, 0x9f, 0x4d, 0xcb, 0x06, 0xfd, 0x12, 0x04, 0x1f, + 0xd4, 0x2e, 0x44, 0x93, 0x06, 0x68, 0x66, 0x11, 0xca, 0x87, 0x7e, 0x27, 0x25, 0x13, 0x43, 0x4c, + 0x8e, 0xc5, 0xe4, 0x7b, 0xa5, 0x2f, 0x64, 0xbc, 0x18, 0x08, 0x0b, 0xb6, 0xb5, 0xbd, 0x66, 0xb7, + 0xd0, 0xff, 0x29, 0x15, 0xa2, 0x31, 0xc4, 0xfc, 0x4f, 0x87, 0x9b, 0xff, 0x79, 0x50, 0x76, 0xec, + 0x96, 0x37, 0x7c, 0xef, 0xd8, 0xad, 0x01, 0x86, 0x6f, 0xf5, 0x7a, 0x98, 0xd1, 0x9b, 0xcd, 0x55, + 0x7d, 0x13, 0x17, 0xdd, 0x79, 0xb5, 0xe9, 0xb0, 0xf3, 0xd1, 0x5d, 0xa9, 0x91, 0x5d, 0xd1, 0x37, + 0xa5, 0x77, 0xe2, 0x04, 0x90, 0x98, 0x7c, 0x46, 0x32, 0xbc, 0xb9, 0x43, 0x42, 0x63, 0x4b, 0x0f, + 0xa2, 0x35, 0xb0, 0x37, 0xc9, 0x1d, 0x3a, 0x09, 0xbe, 0x93, 0xd7, 0xac, 0xdf, 0x4f, 0xc3, 0x98, + 0x2b, 0xef, 0x42, 0xb3, 0x89, 0x1e, 0x29, 0x04, 0x35, 0x09, 0xdd, 0x23, 0x7d, 0x9e, 0xf4, 0xe6, + 0xb4, 0x57, 0x43, 0x4a, 0x3f, 0x04, 0x93, 0x40, 0x88, 0x69, 0x41, 0x88, 0x72, 0x7b, 0xd0, 0x91, + 0x45, 0x24, 0x2f, 0xbe, 0x4f, 0xa5, 0x61, 0xda, 0x9b, 0x47, 0x2c, 0x60, 0xa7, 0xb1, 0x85, 0x6e, + 0x95, 0x5d, 0x68, 0x62, 0x2d, 0x2d, 0xed, 0xb7, 0x34, 0xf4, 0xa3, 0x54, 0x4c, 0x95, 0x17, 0x4a, + 0x0e, 0x59, 0xa5, 0x8b, 0xa5, 0x8b, 0x51, 0x04, 0x93, 0x17, 0xe6, 0x57, 0xd2, 0x00, 0x75, 0xcb, + 0x9f, 0xeb, 0x1e, 0x40, 0x92, 0x2f, 0x96, 0xbe, 0x2f, 0x81, 0x55, 0x3c, 0x28, 0x36, 0x7e, 0xcf, + 0x21, 0xb9, 0xc5, 0xd6, 0xaf, 0xa4, 0x91, 0xb4, 0xf5, 0x89, 0xf9, 0x9d, 0x76, 0xcb, 0x68, 0xe8, + 0x4e, 0xf7, 0xbe, 0x70, 0xb8, 0x78, 0xc9, 0xc5, 0x47, 0xb1, 0x8c, 0x42, 0xbf, 0x8c, 0x10, 0x59, + 0xd2, 0xc3, 0xb6, 0x69, 0xef, 0xb0, 0xad, 0xe4, 0x5e, 0x4f, 0x1f, 0xe2, 0x23, 0x50, 0x4f, 0x05, + 0x8e, 0x56, 0xdb, 0xd8, 0x9c, 0xb3, 0xb1, 0xde, 0x6c, 0xd8, 0x3b, 0xdb, 0x17, 0x3a, 0xbc, 0x53, + 0x43, 0xb4, 0x8e, 0x72, 0x4b, 0xc7, 0x69, 0x61, 0xe9, 0x18, 0x3d, 0x5b, 0x91, 0x3d, 0xfa, 0xcd, + 0x6d, 0x70, 0x70, 0x3c, 0x0c, 0x30, 0xd4, 0xc5, 0xda, 0x8a, 0xeb, 0x5a, 0x25, 0xce, 0xc4, 0x59, + 0x25, 0x7e, 0xb3, 0xd4, 0x41, 0x72, 0xa9, 0x7a, 0x8d, 0x64, 0x47, 0x75, 0xa6, 0x86, 0x9d, 0x10, + 0x78, 0xaf, 0x83, 0xe9, 0x0b, 0xc1, 0x17, 0x1f, 0x62, 0x31, 0xb1, 0x87, 0x9f, 0xc3, 0x5b, 0xe2, + 0xae, 0xc0, 0x88, 0x2c, 0x84, 0xa0, 0xeb, 0x23, 0x98, 0x96, 0xd9, 0x4c, 0x8d, 0xb5, 0x9c, 0x12, + 0x59, 0x7e, 0xf2, 0x28, 0x7c, 0x2c, 0x0d, 0x93, 0xe4, 0x3a, 0xa7, 0xb9, 0x3d, 0xe2, 0x9d, 0x2f, + 0x69, 0x94, 0xbc, 0x80, 0x17, 0xb3, 0x0a, 0x99, 0x96, 0x61, 0x5e, 0xf4, 0x76, 0xc1, 0xdd, 0xe7, + 0xe0, 0x72, 0x90, 0x74, 0x8f, 0xcb, 0x41, 0xfc, 0x7d, 0x0a, 0xbf, 0xdc, 0x03, 0xdd, 0x56, 0xd7, + 0x97, 0x5c, 0xf2, 0x62, 0xfc, 0xfb, 0x0c, 0xe4, 0x6a, 0x58, 0xb7, 0x1b, 0x5b, 0xe8, 0xbd, 0xe9, + 0x9e, 0x53, 0x85, 0x71, 0x71, 0xaa, 0xb0, 0x00, 0x63, 0x1b, 0x46, 0xcb, 0xc1, 0x36, 0xf5, 0x0c, + 0xe2, 0xbb, 0x76, 0xda, 0xc4, 0xe7, 0x5a, 0x56, 0xe3, 0xe2, 0x2c, 0x33, 0xdd, 0x67, 0xbd, 0x60, + 0x52, 0xb3, 0x0b, 0xe4, 0x27, 0xcd, 0xfb, 0xd9, 0x35, 0x08, 0x3b, 0x96, 0xed, 0x84, 0xc5, 0x09, + 0x0e, 0xa1, 0x52, 0xb3, 0x6c, 0x47, 0xa3, 0x3f, 0xba, 0x30, 0x6f, 0xec, 0xb4, 0x5a, 0x75, 0x7c, + 0xbf, 0xe3, 0x4d, 0xdb, 0xbc, 0x77, 0xd7, 0x58, 0xb4, 0x36, 0x36, 0x3a, 0x98, 0x2e, 0x1a, 0x64, + 0x35, 0xf6, 0xa6, 0x1e, 0x87, 0x6c, 0xcb, 0xd8, 0x36, 0xe8, 0x44, 0x23, 0xab, 0xd1, 0x17, 0xf5, + 0x46, 0xc8, 0x07, 0x73, 0x1c, 0xca, 0xe8, 0xa9, 0x1c, 0x69, 0x9a, 0xfb, 0xd2, 0x5d, 0x9d, 0xb9, + 0x88, 0xf7, 0x3a, 0xa7, 0xc6, 0xc8, 0x77, 0xf2, 0x2c, 0xba, 0x61, 0xca, 0xec, 0x77, 0x50, 0x89, + 0x87, 0xcf, 0x60, 0x6d, 0xdc, 0xb0, 0xec, 0xa6, 0x27, 0x9b, 0xf0, 0x09, 0x06, 0xcb, 0x17, 0x6f, + 0x97, 0xa2, 0x67, 0xe1, 0x23, 0x70, 0x81, 0xc8, 0xb9, 0xdd, 0xa6, 0x5b, 0xf4, 0x79, 0xc3, 0xd9, + 0x5a, 0xc1, 0x8e, 0x8e, 0xfe, 0x5e, 0xe9, 0xa9, 0x71, 0x93, 0xff, 0xbf, 0xc6, 0xf5, 0xd1, 0x38, + 0x1a, 0x26, 0xc0, 0xd9, 0xb1, 0x4d, 0x57, 0x8e, 0x2c, 0x30, 0x17, 0x97, 0xa2, 0xde, 0x0e, 0x57, + 0x04, 0x6f, 0xde, 0x52, 0xe9, 0x3c, 0x9b, 0xb6, 0x4e, 0x90, 0xec, 0xe1, 0x19, 0xd4, 0x55, 0xb8, + 0x96, 0x7e, 0x5c, 0xaa, 0xaf, 0x2c, 0x2f, 0x19, 0x9b, 0x5b, 0x2d, 0x63, 0x73, 0xcb, 0xe9, 0x94, + 0xcd, 0x8e, 0x83, 0xf5, 0x66, 0x75, 0x43, 0xa3, 0x11, 0xbe, 0x81, 0xd0, 0x91, 0xc9, 0x2a, 0x7a, + 0x0e, 0xc9, 0x8d, 0x6e, 0xbc, 0xa6, 0x84, 0xb4, 0x94, 0x27, 0xb8, 0x2d, 0xa5, 0xb3, 0xd3, 0xf2, + 0x31, 0xbd, 0xaa, 0x0b, 0xd3, 0x40, 0xd5, 0x77, 0x5a, 0xa4, 0xb9, 0x90, 0xcc, 0x71, 0xc7, 0xb9, + 0x08, 0x4e, 0x92, 0x6f, 0x36, 0xff, 0x6f, 0x0e, 0xb2, 0x8b, 0xb6, 0xde, 0xde, 0x42, 0xcf, 0xe2, + 0xfa, 0xe7, 0x61, 0xb5, 0x09, 0x5f, 0x3b, 0xd3, 0xfd, 0xb4, 0x53, 0xe9, 0xa3, 0x9d, 0x19, 0x4e, + 0x3b, 0xc3, 0x17, 0x95, 0xcf, 0xc0, 0x54, 0xc3, 0x6a, 0xb5, 0x70, 0xc3, 0x95, 0x47, 0xb9, 0x49, + 0x56, 0x73, 0x26, 0x34, 0x21, 0x8d, 0x04, 0xdc, 0xc3, 0x4e, 0x8d, 0xae, 0xa1, 0x53, 0xa5, 0x0f, + 0x12, 0xd0, 0x4b, 0xd3, 0x90, 0x29, 0x35, 0x37, 0xb1, 0xb0, 0xce, 0x9e, 0xe2, 0xd6, 0xd9, 0x4f, + 0x42, 0xce, 0xd1, 0xed, 0x4d, 0xec, 0x78, 0xeb, 0x04, 0xf4, 0xcd, 0x8f, 0x03, 0xa8, 0x70, 0x71, + 0x00, 0x7f, 0x16, 0x32, 0xae, 0xcc, 0x58, 0x84, 0x9d, 0x6b, 0x7b, 0xc1, 0x4f, 0x64, 0x3f, 0xeb, + 0x96, 0x38, 0xeb, 0xd6, 0x5a, 0x23, 0x3f, 0x74, 0x63, 0x9d, 0xdd, 0x87, 0x35, 0xb9, 0xac, 0xa8, + 0x61, 0x99, 0xe5, 0x6d, 0x7d, 0x13, 0xb3, 0x6a, 0x06, 0x09, 0xde, 0xd7, 0xd2, 0xb6, 0x75, 0x9f, + 0xc1, 0x42, 0xf2, 0x05, 0x09, 0x6e, 0x15, 0xb6, 0x8c, 0x66, 0x13, 0x9b, 0xac, 0x65, 0xb3, 0xb7, + 0x33, 0xa7, 0x21, 0xe3, 0xf2, 0xe0, 0xea, 0x8f, 0x6b, 0x2c, 0xe4, 0x8f, 0xa8, 0x53, 0x6e, 0xb3, + 0xa2, 0x8d, 0x37, 0x9f, 0x12, 0xd7, 0x54, 0x65, 0xdc, 0x76, 0x68, 0xe5, 0x7a, 0x37, 0xae, 0xc7, + 0x40, 0xd6, 0xb4, 0x9a, 0xb8, 0xef, 0x20, 0x44, 0x73, 0xa9, 0x8f, 0x87, 0x2c, 0x6e, 0xba, 0xbd, + 0x82, 0x42, 0xb2, 0x9f, 0x8e, 0x96, 0xa5, 0x46, 0x33, 0xc7, 0xf3, 0x0d, 0xea, 0xc5, 0x6d, 0xf2, + 0x0d, 0xf0, 0x57, 0xc7, 0xe0, 0x28, 0xed, 0x03, 0x6a, 0x3b, 0x17, 0x5c, 0x52, 0x17, 0x30, 0x7a, + 0xa8, 0xf7, 0xc0, 0x75, 0x54, 0x54, 0xf6, 0xe3, 0x90, 0xed, 0xec, 0x5c, 0xf0, 0x8d, 0x50, 0xfa, + 0xc2, 0x37, 0xdd, 0xf4, 0x50, 0x86, 0x33, 0x65, 0xd0, 0xe1, 0x4c, 0x18, 0x9a, 0x14, 0xaf, 0xf1, + 0x07, 0x03, 0x59, 0x8e, 0x24, 0x7b, 0x03, 0x59, 0xaf, 0x61, 0xe8, 0x14, 0x8c, 0xe9, 0x1b, 0x0e, + 0xb6, 0x03, 0x33, 0x91, 0xbd, 0xba, 0x43, 0xe5, 0x05, 0xbc, 0x61, 0xd9, 0xae, 0x58, 0x26, 0xe8, + 0x50, 0xe9, 0xbd, 0x73, 0x2d, 0x17, 0x84, 0x1d, 0xb2, 0x9b, 0xe0, 0x98, 0x69, 0xcd, 0xe3, 0x36, + 0x93, 0x33, 0x45, 0x71, 0x9a, 0xb4, 0x80, 0xfd, 0x1f, 0xf6, 0x75, 0x25, 0x33, 0xfb, 0xbb, 0x12, + 0xf4, 0x99, 0xb8, 0x73, 0xe6, 0x2e, 0xa0, 0x87, 0x66, 0xa1, 0xa9, 0x4f, 0x82, 0xa9, 0x26, 0x73, + 0xd1, 0x6a, 0x18, 0x7e, 0x2b, 0x09, 0xfd, 0x4f, 0xc8, 0x1c, 0x28, 0x52, 0x86, 0x57, 0xa4, 0x45, + 0x18, 0x27, 0x07, 0x72, 0x5c, 0x4d, 0xca, 0x76, 0xc5, 0x2b, 0x24, 0xd3, 0x3a, 0xbf, 0x52, 0x9c, + 0xd8, 0x66, 0x8b, 0xec, 0x17, 0xcd, 0xff, 0x39, 0xde, 0xec, 0x3b, 0x5a, 0x42, 0xc9, 0x37, 0xc7, + 0xdf, 0xcd, 0xc1, 0x15, 0x45, 0xdb, 0xea, 0x74, 0x48, 0x14, 0x8a, 0xee, 0x86, 0xf9, 0xc6, 0xb4, + 0x10, 0x11, 0xf8, 0x61, 0xdd, 0xfc, 0x7a, 0x35, 0xa8, 0xd1, 0x35, 0x8d, 0x6f, 0x4a, 0x1f, 0x65, + 0xf6, 0xf7, 0x1f, 0x42, 0x84, 0xfe, 0x93, 0xd1, 0x48, 0xde, 0x95, 0x92, 0x39, 0x5d, 0x1d, 0x53, + 0x56, 0xc9, 0x37, 0x97, 0x2f, 0xa7, 0xe1, 0xca, 0x6e, 0x6e, 0xd6, 0xcc, 0x8e, 0xdf, 0x60, 0xae, + 0xee, 0xd3, 0x5e, 0xc4, 0xd3, 0xb8, 0x91, 0x77, 0xf1, 0x84, 0xd4, 0x9d, 0x2b, 0x2d, 0x64, 0xb1, + 0xe4, 0x3d, 0x29, 0x99, 0xbb, 0x78, 0x62, 0x93, 0x4f, 0x5e, 0xb8, 0x9f, 0xcd, 0xc0, 0xd1, 0x45, + 0xdb, 0xda, 0x69, 0x77, 0x82, 0x1e, 0xe8, 0x6f, 0x7b, 0x6f, 0xb8, 0xe6, 0x64, 0x4c, 0x83, 0x6b, + 0x60, 0xd2, 0x66, 0xd6, 0x5c, 0xb0, 0xfd, 0xca, 0x27, 0xf1, 0xbd, 0x97, 0x72, 0x90, 0xde, 0x2b, + 0xe8, 0x67, 0x32, 0x42, 0x3f, 0xd3, 0xdd, 0x73, 0x64, 0x7b, 0xf4, 0x1c, 0x7f, 0x93, 0x8e, 0x39, + 0xa8, 0x76, 0x89, 0x28, 0xa4, 0xbf, 0x28, 0x42, 0x6e, 0x93, 0x64, 0x64, 0xdd, 0xc5, 0xa3, 0xe5, + 0x6a, 0x46, 0x88, 0x6b, 0xec, 0xd7, 0x40, 0xae, 0x0a, 0xaf, 0xc3, 0xb1, 0x06, 0xb8, 0x68, 0x6e, + 0x93, 0x57, 0xaa, 0x07, 0x33, 0x30, 0xe5, 0x97, 0x5e, 0x6e, 0x76, 0xd0, 0x0b, 0x7a, 0x6b, 0xd4, + 0xb4, 0x8c, 0x46, 0xed, 0x5b, 0x67, 0xf6, 0x47, 0x1d, 0x85, 0x1b, 0x75, 0x7a, 0x8e, 0x2e, 0x53, + 0x21, 0xa3, 0x0b, 0x7a, 0xa6, 0x22, 0x1b, 0x53, 0x5f, 0xec, 0x5a, 0x49, 0x6d, 0x1e, 0xce, 0x83, + 0x85, 0x64, 0x64, 0xff, 0xfe, 0xb5, 0x4a, 0x5e, 0x49, 0x3e, 0x98, 0x86, 0x63, 0xfb, 0x3b, 0xf3, + 0x9f, 0x12, 0xbd, 0xd0, 0xdc, 0x3a, 0x75, 0x7c, 0x2f, 0x34, 0xf2, 0x26, 0x6e, 0xd2, 0x45, 0x1e, + 0x8d, 0x15, 0xec, 0xbd, 0xfe, 0x9d, 0xb8, 0xdc, 0xe1, 0x57, 0x49, 0xa2, 0xc9, 0x0b, 0xf0, 0x37, + 0x14, 0x98, 0xa8, 0x61, 0x67, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xa4, 0xcb, 0x6e, 0xcf, 0x3d, 0x11, + 0x72, 0x2d, 0xf2, 0x0b, 0xbb, 0xaa, 0xf4, 0x9a, 0x9e, 0xfb, 0x5b, 0xc4, 0xf7, 0x87, 0x92, 0xd6, + 0x58, 0x7e, 0xf1, 0x4c, 0xb2, 0xcc, 0xee, 0xa8, 0xcf, 0xdd, 0x50, 0xb6, 0x76, 0x62, 0xed, 0x9d, + 0x86, 0x15, 0x9d, 0x3c, 0x2c, 0xcf, 0x56, 0x60, 0xba, 0x86, 0x9d, 0x72, 0x67, 0x41, 0xdf, 0xb5, + 0x6c, 0xc3, 0xc1, 0xfc, 0x5d, 0x45, 0xd1, 0xd0, 0x9c, 0x06, 0x30, 0xfc, 0xdf, 0x58, 0xa4, 0x04, + 0x2e, 0x05, 0xfd, 0x4e, 0x5c, 0x47, 0x21, 0x81, 0x8f, 0xa1, 0x80, 0x10, 0xcb, 0xc7, 0x22, 0xaa, + 0xf8, 0xe4, 0x81, 0xf8, 0x62, 0x9a, 0x01, 0x51, 0xb0, 0x1b, 0x5b, 0xc6, 0x2e, 0x6e, 0xc6, 0x04, + 0xc2, 0xfb, 0x2d, 0x00, 0xc2, 0x27, 0x14, 0xdb, 0x7d, 0x45, 0xe0, 0x63, 0x18, 0xee, 0x2b, 0x51, + 0x04, 0x47, 0x12, 0xec, 0xc0, 0xed, 0x7a, 0xd8, 0x7a, 0xe6, 0x9d, 0xb2, 0x62, 0x0d, 0x4c, 0xb6, + 0x34, 0x6f, 0xb2, 0x0d, 0xd4, 0xb1, 0xd0, 0xb2, 0xfb, 0xe9, 0x74, 0x26, 0x89, 0x8e, 0xa5, 0x67, + 0xd1, 0xc9, 0x0b, 0xfd, 0x3d, 0x0a, 0x9c, 0xf0, 0x4f, 0x01, 0xd7, 0xb0, 0x33, 0xaf, 0x77, 0xb6, + 0x2e, 0x58, 0xba, 0xdd, 0xe4, 0xaf, 0xb0, 0x1d, 0xf8, 0xc4, 0x1f, 0xfa, 0x02, 0x0f, 0x42, 0x45, + 0x04, 0xa1, 0xa7, 0xab, 0x68, 0x4f, 0x5e, 0x86, 0xd1, 0xc9, 0x44, 0x7a, 0xb3, 0xfe, 0x9e, 0x0f, + 0xd6, 0x53, 0x04, 0xb0, 0xee, 0x18, 0x94, 0xc5, 0xe4, 0x81, 0xfb, 0x6d, 0x3a, 0x22, 0x70, 0x5e, + 0xcd, 0xf7, 0xca, 0x02, 0x16, 0xe2, 0xd5, 0xaa, 0x84, 0x7a, 0xb5, 0x0e, 0x34, 0x46, 0xf4, 0xf5, + 0x48, 0x4e, 0x76, 0x8c, 0x38, 0x44, 0x6f, 0xe3, 0x77, 0x28, 0x90, 0x27, 0x61, 0x20, 0x38, 0x8f, + 0x6f, 0x74, 0x9f, 0x2c, 0x3a, 0xfb, 0xbc, 0xcb, 0xc7, 0xe2, 0x7a, 0x97, 0xa3, 0xb7, 0xc7, 0xf5, + 0x21, 0xef, 0xe6, 0x76, 0x28, 0x88, 0xc5, 0x72, 0x11, 0xef, 0xc3, 0x41, 0xf2, 0xa0, 0xfd, 0x57, + 0x05, 0xc0, 0x6d, 0xd0, 0xec, 0xec, 0xc3, 0x53, 0x65, 0xe1, 0x3a, 0xcb, 0xfb, 0xd5, 0xbb, 0x40, + 0x9d, 0xe8, 0x02, 0x8a, 0x52, 0x0c, 0x4e, 0x55, 0x3c, 0x14, 0xd7, 0xb7, 0x32, 0xe0, 0x6a, 0x28, + 0xb0, 0xc4, 0xf2, 0xb6, 0x0c, 0x2d, 0x3b, 0x79, 0x40, 0xfe, 0x7b, 0x1a, 0xb2, 0x75, 0xab, 0x86, + 0x9d, 0x83, 0x9b, 0x02, 0xb1, 0x8f, 0xed, 0x93, 0x72, 0x87, 0x71, 0x6c, 0xbf, 0x17, 0xa1, 0xe4, + 0x45, 0xf7, 0xee, 0x34, 0x4c, 0xd5, 0xad, 0xa2, 0xbf, 0x38, 0x25, 0xef, 0xab, 0x2a, 0x7f, 0x2f, + 0xa0, 0x5f, 0xc1, 0xa0, 0x98, 0x03, 0xdd, 0x0b, 0xd8, 0x9f, 0x5e, 0xf2, 0x72, 0xbb, 0x15, 0x8e, + 0xae, 0x99, 0x4d, 0x4b, 0xc3, 0x4d, 0x8b, 0xad, 0x74, 0xab, 0x2a, 0x64, 0x76, 0xcc, 0xa6, 0x45, + 0x58, 0xce, 0x6a, 0xe4, 0xd9, 0x4d, 0xb3, 0x71, 0xd3, 0x62, 0xbe, 0x01, 0xe4, 0x19, 0x7d, 0x53, + 0x81, 0x8c, 0xfb, 0xaf, 0xbc, 0xa8, 0xdf, 0xa1, 0xc4, 0x0c, 0x44, 0xe0, 0x92, 0x1f, 0x8a, 0x25, + 0x74, 0x27, 0xb7, 0xf6, 0x4f, 0x3d, 0x58, 0xaf, 0x0d, 0x2b, 0x8f, 0x13, 0x45, 0xb0, 0xe6, 0xaf, + 0x9e, 0x82, 0xb1, 0x0b, 0x2d, 0xab, 0x71, 0x31, 0x38, 0x2f, 0xcf, 0x5e, 0xd5, 0x1b, 0x21, 0x6b, + 0xeb, 0xe6, 0x26, 0x66, 0x7b, 0x0a, 0xc7, 0xbb, 0xfa, 0x42, 0xe2, 0xf5, 0xa2, 0xd1, 0x2c, 0xe8, + 0xed, 0x71, 0x42, 0x20, 0xf4, 0xa8, 0x7c, 0x3c, 0x7d, 0x98, 0x1f, 0xe0, 0x64, 0x59, 0x1e, 0xa6, + 0x8a, 0x05, 0x7a, 0x03, 0xe7, 0x4a, 0xf5, 0x5c, 0x29, 0xaf, 0x10, 0x98, 0x5d, 0x99, 0x24, 0x08, + 0xb3, 0x4b, 0xfe, 0x27, 0x16, 0xe6, 0x1e, 0x95, 0x3f, 0x0c, 0x98, 0x3f, 0x95, 0x86, 0xe9, 0x65, + 0xa3, 0xe3, 0x84, 0x79, 0xfb, 0x47, 0x44, 0x81, 0x7b, 0x61, 0x5c, 0x53, 0x59, 0x28, 0x47, 0x3a, + 0xfc, 0x5b, 0x2c, 0x73, 0x38, 0xaa, 0x88, 0xd1, 0x1c, 0x4b, 0x21, 0x1c, 0xd0, 0x5b, 0xf3, 0xa4, + 0x25, 0x19, 0xdb, 0x50, 0x0a, 0x0a, 0x19, 0xbd, 0xa1, 0x14, 0x5a, 0x76, 0xf2, 0xf2, 0xfd, 0x66, + 0x1a, 0x8e, 0xb9, 0xc5, 0x47, 0x2d, 0x4b, 0x85, 0x8b, 0xb9, 0xef, 0xb2, 0x54, 0xec, 0x95, 0xf1, + 0x7d, 0xbc, 0x0c, 0x63, 0x65, 0xbc, 0x1f, 0xd1, 0x11, 0x8b, 0x39, 0x64, 0x19, 0xb6, 0x9f, 0x98, + 0x23, 0x96, 0x61, 0x07, 0x17, 0x73, 0xf4, 0x52, 0xec, 0x80, 0x62, 0x3e, 0xb4, 0x05, 0xd6, 0xd7, + 0x2b, 0xbe, 0x98, 0x43, 0xd7, 0x36, 0x22, 0xc4, 0x1c, 0xfb, 0xc4, 0x2e, 0x7a, 0xe7, 0x80, 0x82, + 0x1f, 0xf2, 0xfa, 0xc6, 0x20, 0x30, 0x1d, 0xe2, 0x1a, 0xc7, 0xcb, 0x14, 0x98, 0x61, 0x5c, 0xf4, + 0x9e, 0x32, 0x47, 0x60, 0x14, 0x7b, 0xca, 0x1c, 0xfb, 0x0c, 0x90, 0xc8, 0xd9, 0xe8, 0xcf, 0x00, + 0x45, 0x96, 0x9f, 0x3c, 0x38, 0xdf, 0xca, 0xc0, 0x49, 0x97, 0x85, 0x15, 0xab, 0x69, 0x6c, 0xec, + 0x51, 0x2e, 0xce, 0xe9, 0xad, 0x1d, 0xdc, 0x41, 0xef, 0x4b, 0xcb, 0xa2, 0xf4, 0x9f, 0x00, 0xac, + 0x36, 0xb6, 0x69, 0x20, 0x35, 0x06, 0xd4, 0xed, 0x61, 0x95, 0xdd, 0x5f, 0x92, 0x1f, 0x14, 0xbd, + 0xea, 0x11, 0xd1, 0x38, 0x7a, 0xae, 0x55, 0x38, 0xe1, 0x7f, 0xe9, 0x76, 0xf0, 0x48, 0xed, 0x77, + 0xf0, 0xb8, 0x01, 0x14, 0xbd, 0xd9, 0xf4, 0xa1, 0xea, 0xde, 0xcc, 0x26, 0x65, 0x6a, 0x6e, 0x16, + 0x37, 0x67, 0x07, 0x07, 0x47, 0xf3, 0x42, 0x72, 0x76, 0xb0, 0xa3, 0xce, 0x42, 0x8e, 0xde, 0x20, + 0xe8, 0xaf, 0xe8, 0xf7, 0xce, 0xcc, 0x72, 0x89, 0xa6, 0x5d, 0x55, 0x54, 0xc3, 0x5b, 0x63, 0x49, + 0xa6, 0x57, 0x3f, 0x1d, 0xd8, 0xc9, 0x9a, 0xa0, 0x60, 0x4f, 0x1e, 0x98, 0xf2, 0x68, 0x76, 0xc3, + 0x0a, 0xed, 0x76, 0x6b, 0xaf, 0xce, 0x82, 0xaf, 0xc4, 0xda, 0x0d, 0xe3, 0x62, 0xb8, 0xa4, 0xbb, + 0x63, 0xb8, 0xc4, 0xdf, 0x0d, 0x13, 0xf8, 0x18, 0xc6, 0x6e, 0x58, 0x14, 0xc1, 0x11, 0xac, 0x47, + 0x66, 0xa9, 0xd5, 0xcc, 0x62, 0xd4, 0xbe, 0xa9, 0xf7, 0x21, 0x34, 0x10, 0x9d, 0x5d, 0x7a, 0x85, + 0xaf, 0x8d, 0x8c, 0xcd, 0xad, 0x3e, 0x1e, 0x72, 0x1b, 0x96, 0xbd, 0xad, 0x7b, 0x1b, 0xf7, 0xdd, + 0x27, 0x45, 0x58, 0x5c, 0xd8, 0x05, 0x92, 0x47, 0x63, 0x79, 0xdd, 0xf9, 0xc8, 0x33, 0x8c, 0x36, + 0x8b, 0xba, 0xe8, 0x3e, 0xaa, 0xd7, 0xc1, 0x34, 0x0b, 0xbe, 0x58, 0xc1, 0x1d, 0x07, 0x37, 0x59, + 0xc4, 0x0a, 0x31, 0x51, 0x3d, 0x03, 0x53, 0x2c, 0x61, 0xc1, 0x68, 0xe1, 0x0e, 0x0b, 0x5a, 0x21, + 0xa4, 0xa9, 0x27, 0x21, 0x67, 0x74, 0xee, 0xee, 0x58, 0x26, 0xf1, 0xff, 0x1f, 0xd7, 0xd8, 0x9b, + 0x7a, 0x03, 0x1c, 0x65, 0xf9, 0x7c, 0x63, 0x95, 0x1e, 0xd8, 0xe9, 0x4e, 0x46, 0x9f, 0x1b, 0x64, + 0xe2, 0x10, 0x3b, 0x1e, 0xaf, 0x8b, 0xc2, 0x4e, 0xa3, 0x81, 0x71, 0x93, 0x9d, 0x6c, 0xf2, 0x5e, + 0x63, 0x46, 0xea, 0x8d, 0x3d, 0xcd, 0x38, 0xa4, 0x50, 0xbd, 0x1f, 0x39, 0x01, 0x39, 0x7a, 0xed, + 0x05, 0x7a, 0xc9, 0x4c, 0x4f, 0x65, 0x9c, 0x11, 0x95, 0x71, 0x0d, 0xa6, 0x4c, 0xcb, 0x2d, 0x6e, + 0x55, 0xb7, 0xf5, 0xed, 0x4e, 0xd4, 0x2a, 0x22, 0xa5, 0xeb, 0x0f, 0x19, 0x15, 0xee, 0xb7, 0xa5, + 0x23, 0x9a, 0x40, 0x46, 0xfd, 0xdf, 0xe0, 0xe8, 0x05, 0x16, 0x01, 0xa0, 0xc3, 0x28, 0xa7, 0xc3, + 0x7d, 0xec, 0xba, 0x28, 0xcf, 0x89, 0x7f, 0x2e, 0x1d, 0xd1, 0xba, 0x89, 0xa9, 0x3f, 0x0f, 0x33, + 0xee, 0x6b, 0xd3, 0xba, 0xe4, 0x31, 0xae, 0x84, 0x1b, 0x1a, 0x5d, 0xe4, 0x57, 0x84, 0x1f, 0x97, + 0x8e, 0x68, 0x5d, 0xa4, 0xd4, 0x2a, 0xc0, 0x96, 0xb3, 0xdd, 0x62, 0x84, 0x33, 0xe1, 0x2a, 0xd9, + 0x45, 0x78, 0xc9, 0xff, 0x69, 0xe9, 0x88, 0xc6, 0x91, 0x50, 0x97, 0x61, 0xc2, 0xb9, 0xdf, 0x61, + 0xf4, 0xb2, 0xe1, 0x9b, 0xdb, 0x5d, 0xf4, 0xea, 0xde, 0x3f, 0x4b, 0x47, 0xb4, 0x80, 0x80, 0x5a, + 0x86, 0xf1, 0xf6, 0x05, 0x46, 0x2c, 0xd7, 0xe3, 0xaa, 0xff, 0xde, 0xc4, 0x56, 0x2f, 0xf8, 0xb4, + 0xfc, 0xdf, 0x5d, 0xc6, 0x1a, 0x9d, 0x5d, 0x46, 0x6b, 0x4c, 0x9a, 0xb1, 0xa2, 0xf7, 0x8f, 0xcb, + 0x98, 0x4f, 0x40, 0x2d, 0xc3, 0x44, 0xc7, 0xd4, 0xdb, 0x9d, 0x2d, 0xcb, 0xe9, 0x9c, 0x1a, 0xef, + 0xf2, 0x83, 0x0c, 0xa7, 0x56, 0x63, 0xff, 0x68, 0xc1, 0xdf, 0xea, 0xe3, 0xe1, 0xc4, 0x0e, 0xb9, + 0x3e, 0xb4, 0x74, 0xbf, 0xd1, 0x71, 0x0c, 0x73, 0xd3, 0x8b, 0x21, 0x4b, 0x7b, 0x93, 0xde, 0x1f, + 0xd5, 0x59, 0x76, 0x22, 0x0a, 0x48, 0xdb, 0x44, 0xdd, 0x9b, 0x71, 0xb4, 0x58, 0xee, 0x20, 0xd4, + 0x93, 0x20, 0xe3, 0x7e, 0x22, 0x67, 0x36, 0x67, 0x7a, 0x2f, 0xf4, 0x75, 0xeb, 0x0e, 0x69, 0xc0, + 0xee, 0x4f, 0xee, 0xd8, 0x68, 0x5a, 0xab, 0xb6, 0xb5, 0x69, 0xe3, 0x4e, 0x87, 0x39, 0x1c, 0x72, + 0x29, 0x6e, 0x03, 0x37, 0x3a, 0x2b, 0xc6, 0x26, 0xb5, 0x9e, 0x98, 0xbf, 0x3b, 0x9f, 0x44, 0x67, + 0x9b, 0x15, 0x7c, 0x89, 0x38, 0x04, 0x93, 0xf3, 0x37, 0x64, 0xb6, 0xe9, 0xa5, 0xa0, 0xeb, 0x61, + 0x8a, 0x6f, 0x64, 0xf4, 0xee, 0x2c, 0x23, 0xb0, 0xbd, 0xd8, 0x1b, 0xba, 0x0e, 0x66, 0x44, 0x9d, + 0xe6, 0x86, 0x18, 0xc5, 0xeb, 0x0a, 0xd1, 0xb5, 0x70, 0xb4, 0xab, 0x61, 0x79, 0x31, 0x45, 0x52, + 0x41, 0x4c, 0x91, 0x6b, 0x00, 0x02, 0x2d, 0xee, 0x49, 0xe6, 0x6a, 0x98, 0xf0, 0xf5, 0xb2, 0x67, + 0x86, 0xaf, 0xa5, 0x60, 0xdc, 0x53, 0xb6, 0x5e, 0x19, 0xdc, 0xf1, 0xc5, 0xe4, 0x36, 0x10, 0xd8, + 0x34, 0x5b, 0x48, 0x73, 0xc7, 0x91, 0xc0, 0x6d, 0xb7, 0x6e, 0x38, 0x2d, 0xef, 0xe8, 0x5b, 0x77, + 0xb2, 0xba, 0x0a, 0x60, 0x10, 0x8c, 0xea, 0xc1, 0x59, 0xb8, 0x9b, 0x63, 0xb4, 0x07, 0xaa, 0x0f, + 0x1c, 0x8d, 0x33, 0x3f, 0xc5, 0x0e, 0xaa, 0x4d, 0x40, 0xb6, 0xb6, 0x5a, 0x28, 0x96, 0xf2, 0x47, + 0xd4, 0x19, 0x80, 0xd2, 0x53, 0x57, 0x4b, 0x5a, 0xb9, 0x54, 0x29, 0x96, 0xf2, 0x29, 0xf4, 0xf2, + 0x34, 0x4c, 0xf8, 0x8d, 0xa0, 0x67, 0x25, 0x4b, 0x4c, 0xb5, 0xfa, 0x5e, 0x4f, 0xb4, 0xbf, 0x51, + 0xf1, 0x4a, 0xf6, 0x44, 0xb8, 0x7c, 0xa7, 0x83, 0x17, 0x0c, 0xbb, 0xe3, 0x68, 0xd6, 0xa5, 0x05, + 0xcb, 0xf6, 0xa3, 0x26, 0x7b, 0xd7, 0xf0, 0x87, 0x7c, 0x76, 0x2d, 0x8a, 0x26, 0x26, 0x87, 0xa2, + 0xb0, 0xcd, 0x56, 0x86, 0x83, 0x04, 0x97, 0xae, 0x43, 0xef, 0xbd, 0xef, 0x60, 0xcd, 0xba, 0xd4, + 0x29, 0x98, 0xcd, 0xa2, 0xd5, 0xda, 0xd9, 0x36, 0x3b, 0xcc, 0x26, 0x08, 0xfb, 0xec, 0x4a, 0x87, + 0x5c, 0x3e, 0x36, 0x03, 0x50, 0xac, 0x2e, 0x2f, 0x97, 0x8a, 0xf5, 0x72, 0xb5, 0x92, 0x3f, 0xe2, + 0x4a, 0xab, 0x5e, 0x98, 0x5b, 0x76, 0xa5, 0xf3, 0x34, 0x18, 0xf7, 0xda, 0x34, 0x0b, 0x83, 0x92, + 0xf2, 0xc2, 0xa0, 0xa8, 0x05, 0x18, 0xf7, 0x5a, 0x39, 0x1b, 0x11, 0x1e, 0xd9, 0x7d, 0xec, 0x75, + 0x5b, 0xb7, 0x1d, 0xe2, 0x2f, 0xed, 0x11, 0x99, 0xd3, 0x3b, 0x58, 0xf3, 0x7f, 0x3b, 0xf3, 0x18, + 0xc6, 0x81, 0x0a, 0x33, 0x85, 0xe5, 0xe5, 0xf5, 0xaa, 0xb6, 0x5e, 0xa9, 0xd6, 0x97, 0xca, 0x95, + 0x45, 0x3a, 0x42, 0x96, 0x17, 0x2b, 0x55, 0xad, 0x44, 0x07, 0xc8, 0x5a, 0x3e, 0x45, 0x2f, 0xbf, + 0x9b, 0x1b, 0x87, 0x5c, 0x9b, 0x48, 0x17, 0x7d, 0x59, 0x89, 0x79, 0xde, 0xdd, 0xc7, 0x29, 0xe4, + 0x7a, 0x2e, 0xc1, 0xe7, 0x3c, 0xdd, 0xe3, 0x4c, 0xe8, 0x19, 0x98, 0xa2, 0xb6, 0x5c, 0x87, 0x2c, + 0xdf, 0xb3, 0x1b, 0x6e, 0x85, 0x34, 0xf4, 0xb1, 0x74, 0x8c, 0x43, 0xf0, 0x3d, 0x39, 0x8a, 0x67, + 0x5c, 0xfc, 0xe5, 0x20, 0x97, 0xdd, 0xa9, 0x30, 0x53, 0xae, 0xd4, 0x4b, 0x5a, 0xa5, 0xb0, 0xcc, + 0xb2, 0x28, 0xea, 0x29, 0x38, 0x5e, 0xa9, 0xb2, 0x98, 0x7e, 0x35, 0x72, 0xad, 0xf6, 0xca, 0x6a, + 0x55, 0xab, 0xe7, 0xb3, 0xea, 0x49, 0x50, 0xe9, 0xb3, 0x70, 0x2b, 0x7d, 0x4e, 0x7d, 0x14, 0x5c, + 0xbb, 0x5c, 0x5e, 0x29, 0xd7, 0xd7, 0xab, 0x0b, 0xeb, 0x5a, 0xf5, 0x7c, 0xcd, 0x45, 0x50, 0x2b, + 0x2d, 0x17, 0x5c, 0x45, 0xe2, 0x2e, 0xc1, 0x1b, 0x53, 0x2f, 0x83, 0xa3, 0xe4, 0x82, 0x4b, 0x72, + 0xb3, 0x3d, 0x2d, 0x6f, 0x5c, 0xbd, 0x0a, 0x4e, 0x95, 0x2b, 0xb5, 0xb5, 0x85, 0x85, 0x72, 0xb1, + 0x5c, 0xaa, 0xd4, 0xd7, 0x57, 0x4b, 0xda, 0x4a, 0xb9, 0x56, 0x73, 0xff, 0xcd, 0x4f, 0x90, 0x2b, + 0xc6, 0x68, 0x9f, 0x89, 0xde, 0xab, 0xc0, 0xf4, 0x39, 0xbd, 0x65, 0xb8, 0x03, 0x05, 0xb9, 0x7b, + 0xb0, 0xeb, 0xb8, 0x88, 0x43, 0xee, 0x28, 0x64, 0x0e, 0xe7, 0xe4, 0x05, 0xfd, 0xb2, 0x12, 0xf3, + 0xb8, 0x08, 0x03, 0x82, 0x96, 0x38, 0x2b, 0x94, 0x16, 0x32, 0xb9, 0x79, 0x6d, 0x3a, 0xc6, 0x71, + 0x11, 0x79, 0xf2, 0xf1, 0xc0, 0x7f, 0xc5, 0xb0, 0xc0, 0xcf, 0xc3, 0xd4, 0x5a, 0xa5, 0xb0, 0x56, + 0x5f, 0xaa, 0x6a, 0xe5, 0x9f, 0x23, 0xd1, 0xc6, 0xa7, 0x61, 0x62, 0xa1, 0xaa, 0xcd, 0x95, 0xe7, + 0xe7, 0x4b, 0x95, 0x7c, 0x56, 0xbd, 0x1c, 0x2e, 0xab, 0x95, 0xb4, 0x73, 0xe5, 0x62, 0x69, 0x7d, + 0xad, 0x52, 0x38, 0x57, 0x28, 0x2f, 0x93, 0x3e, 0x22, 0x17, 0x71, 0x6f, 0xe2, 0x18, 0xfa, 0xc5, + 0x0c, 0x00, 0xad, 0xba, 0x6b, 0x49, 0xf3, 0xb7, 0xeb, 0xfd, 0x55, 0xdc, 0x49, 0x43, 0x40, 0x26, + 0xa4, 0xfd, 0x96, 0x61, 0xdc, 0x66, 0x1f, 0xd8, 0xf2, 0x49, 0x3f, 0x3a, 0xf4, 0xd1, 0xa3, 0xa6, + 0xf9, 0xbf, 0xa3, 0xf7, 0xc5, 0x99, 0x23, 0x84, 0x32, 0x16, 0x0f, 0xc9, 0x85, 0xe1, 0x00, 0x89, + 0x5e, 0x90, 0x82, 0x19, 0xb1, 0x62, 0x6e, 0x25, 0x88, 0x31, 0x25, 0x57, 0x09, 0xf1, 0x67, 0xce, + 0xc8, 0x3a, 0xf3, 0x38, 0x36, 0x9c, 0x82, 0xd7, 0x32, 0xe9, 0xc9, 0x6f, 0xcf, 0x62, 0xc9, 0xa7, + 0x5c, 0xe6, 0x5d, 0xa3, 0x83, 0x5e, 0xad, 0x5e, 0xbf, 0xdf, 0xc9, 0x2b, 0xe8, 0x6b, 0x0a, 0x4c, + 0x0b, 0xd7, 0xf7, 0xa1, 0xd7, 0xa6, 0x64, 0xae, 0xd6, 0xe2, 0x2e, 0x06, 0x4c, 0x1d, 0xf4, 0x62, + 0xc0, 0x33, 0x67, 0x61, 0x8c, 0xa5, 0x11, 0xf9, 0x56, 0x2b, 0xae, 0x29, 0x70, 0x14, 0x26, 0x17, + 0x4b, 0xf5, 0xf5, 0x5a, 0xbd, 0xa0, 0xd5, 0x4b, 0xf3, 0xf9, 0x94, 0x3b, 0xf0, 0x95, 0x56, 0x56, + 0xeb, 0xf7, 0xe6, 0xd3, 0xf1, 0x3d, 0xf0, 0xba, 0x19, 0x19, 0xb1, 0x07, 0x5e, 0x54, 0xf1, 0xc9, + 0xcf, 0x55, 0x3f, 0xa3, 0x40, 0x9e, 0x72, 0x50, 0xba, 0xbf, 0x8d, 0x6d, 0x03, 0x9b, 0x0d, 0x8c, + 0x2e, 0xca, 0x44, 0xfc, 0xdc, 0x17, 0x0b, 0x8f, 0xf4, 0xe7, 0x9c, 0x95, 0x48, 0x5f, 0xba, 0x0c, + 0xec, 0xcc, 0x3e, 0x03, 0xfb, 0xd3, 0x71, 0x5d, 0xf0, 0xba, 0xd9, 0x1d, 0x0a, 0x64, 0x9f, 0x8c, + 0xe3, 0x82, 0xd7, 0x87, 0x83, 0x91, 0x04, 0xf2, 0x0d, 0x19, 0x7f, 0xf3, 0x0a, 0x7a, 0xbe, 0x02, + 0x47, 0xe7, 0x75, 0x07, 0xcf, 0xed, 0xd5, 0x8d, 0x6d, 0xdc, 0x71, 0xf4, 0xed, 0x76, 0xc8, 0x95, + 0x78, 0xa9, 0x7d, 0x57, 0xe2, 0x39, 0xde, 0x1f, 0x84, 0x53, 0x45, 0x0b, 0x12, 0xd0, 0xbb, 0xe2, + 0x1e, 0xda, 0xeb, 0xe2, 0x61, 0x68, 0xd1, 0x76, 0xe3, 0x1d, 0xc6, 0x8b, 0xe6, 0x62, 0x04, 0x37, + 0xd4, 0x4e, 0x40, 0x9e, 0xb2, 0xc2, 0x79, 0x99, 0xfd, 0x06, 0xbb, 0x45, 0x72, 0x3d, 0x46, 0x50, + 0x3f, 0x2f, 0x4c, 0x42, 0x5a, 0x0c, 0x93, 0x20, 0x2c, 0x5a, 0x2a, 0xdd, 0x9e, 0x01, 0x71, 0x3b, + 0x43, 0xce, 0xa5, 0x2c, 0x3c, 0x8e, 0x6a, 0x72, 0x9d, 0x61, 0x64, 0xf1, 0xa3, 0xb9, 0xe9, 0x8c, + 0xdd, 0x65, 0x58, 0x92, 0x45, 0x26, 0xfa, 0x42, 0xc7, 0xb8, 0xfe, 0xc5, 0x82, 0x4b, 0x5f, 0xc4, + 0x2d, 0x87, 0xc9, 0xf9, 0x17, 0xf7, 0xe3, 0x20, 0x79, 0x14, 0x7e, 0x94, 0x86, 0x4c, 0xcd, 0xb2, + 0x9d, 0x61, 0x61, 0x10, 0x77, 0x4f, 0x94, 0x93, 0x40, 0x2d, 0x7c, 0xce, 0x99, 0xdc, 0x9e, 0x68, + 0x74, 0xf9, 0x23, 0x88, 0x8b, 0x78, 0x14, 0x66, 0x28, 0x27, 0xfe, 0xa5, 0x21, 0xff, 0x96, 0xa6, + 0xfd, 0xd5, 0x3d, 0xb2, 0x88, 0x9c, 0x81, 0x29, 0x6e, 0x4f, 0xd2, 0xbf, 0x30, 0x9b, 0x4f, 0x43, + 0x6f, 0xe4, 0x71, 0x99, 0x17, 0x71, 0xe9, 0x35, 0xe3, 0xf6, 0xef, 0xdd, 0x18, 0x56, 0xcf, 0x14, + 0x27, 0xc4, 0x62, 0x44, 0xe1, 0xc9, 0x23, 0xf2, 0x80, 0x02, 0x39, 0xe6, 0x13, 0x36, 0x54, 0x04, + 0xe2, 0xb6, 0x0c, 0x5f, 0x08, 0x72, 0xbe, 0x63, 0xca, 0xb0, 0x5b, 0x46, 0x74, 0xf9, 0xc9, 0xe3, + 0xf0, 0xef, 0xcc, 0xd9, 0xb1, 0xb0, 0xab, 0x1b, 0x2d, 0xfd, 0x42, 0x2b, 0x46, 0x68, 0xe3, 0x8f, + 0xc5, 0x3c, 0xde, 0xe5, 0x57, 0x55, 0x28, 0x2f, 0x44, 0xe2, 0x3f, 0x03, 0x13, 0xb6, 0xbf, 0x24, + 0xe9, 0x9d, 0x7e, 0xef, 0x72, 0x34, 0x65, 0xdf, 0xb5, 0x20, 0x67, 0xac, 0xb3, 0x5c, 0x52, 0xfc, + 0x8c, 0xe4, 0xec, 0xc9, 0x64, 0xa1, 0xd9, 0x5c, 0xc0, 0xba, 0xb3, 0x63, 0xe3, 0x66, 0xac, 0x21, + 0x42, 0x14, 0xd1, 0x04, 0x2f, 0x09, 0x21, 0xb8, 0xe0, 0xb2, 0x88, 0xce, 0x13, 0xfa, 0xf4, 0x06, + 0x1e, 0x2f, 0x43, 0xe9, 0x92, 0xde, 0xea, 0x43, 0x52, 0x15, 0x20, 0x79, 0xd2, 0x60, 0x4c, 0x24, + 0x0f, 0xc8, 0x6f, 0x29, 0x30, 0x43, 0xed, 0x84, 0x61, 0x63, 0xf2, 0x07, 0x31, 0x7d, 0x48, 0xb8, + 0x6b, 0x99, 0x78, 0x76, 0x86, 0x02, 0x4b, 0x1c, 0x8f, 0x13, 0x39, 0x3e, 0x92, 0x47, 0xe6, 0x13, + 0xd3, 0x00, 0x9c, 0x5f, 0xe0, 0xc7, 0x72, 0x41, 0xa0, 0x3f, 0xf4, 0x76, 0x36, 0xff, 0xa8, 0x09, + 0x51, 0xa7, 0x39, 0x9f, 0x3f, 0x7f, 0x43, 0x4a, 0x4c, 0x94, 0x1a, 0x55, 0xfe, 0x32, 0xa6, 0xcd, + 0xcb, 0xbc, 0xf2, 0xfa, 0x0e, 0xee, 0x03, 0xf6, 0x72, 0x1f, 0x8f, 0x61, 0xfc, 0xf6, 0x63, 0x25, + 0x1e, 0x6a, 0xcb, 0x03, 0xcc, 0xec, 0x4f, 0xc1, 0x71, 0xad, 0x54, 0x98, 0xaf, 0x56, 0x96, 0xef, + 0xe5, 0xef, 0xe8, 0xc9, 0x2b, 0xfc, 0xe4, 0x24, 0x11, 0xd8, 0x5e, 0x17, 0xb3, 0x0f, 0x14, 0x65, + 0x15, 0x35, 0x5b, 0xe1, 0x16, 0x57, 0xfa, 0xf7, 0x6a, 0x12, 0x64, 0x0f, 0x13, 0x85, 0xef, 0xe5, + 0x60, 0x52, 0xc3, 0x0d, 0x6b, 0x7b, 0x1b, 0x9b, 0x4d, 0xdc, 0x44, 0xaf, 0x53, 0x60, 0xca, 0xdf, + 0xef, 0xab, 0x61, 0x07, 0xfd, 0x7c, 0x80, 0xcd, 0x19, 0x98, 0x72, 0x2b, 0x57, 0x15, 0x23, 0x89, + 0x0b, 0x69, 0xea, 0x4d, 0x70, 0xcc, 0x43, 0xa1, 0xda, 0x35, 0x85, 0xd9, 0xff, 0x01, 0xbd, 0x9b, + 0xc7, 0x68, 0x4d, 0xc4, 0xe8, 0xce, 0x70, 0x61, 0xfa, 0xec, 0xce, 0xf2, 0xac, 0x86, 0x80, 0xf5, + 0x17, 0x3e, 0x58, 0x4f, 0x15, 0xc0, 0x9a, 0x3f, 0x20, 0xfd, 0xc3, 0x44, 0xed, 0x03, 0x0a, 0x1c, + 0xf7, 0x3a, 0xe2, 0xd1, 0xa1, 0xf5, 0x71, 0x1e, 0xad, 0xa7, 0x89, 0x68, 0x2d, 0xca, 0x48, 0xb3, + 0x17, 0xcb, 0x21, 0xa8, 0x7d, 0xc9, 0x47, 0xed, 0x17, 0x04, 0xd4, 0x96, 0x87, 0x54, 0xce, 0x61, + 0xa2, 0xf7, 0x00, 0x70, 0x43, 0xd7, 0xf3, 0x14, 0xc8, 0xbb, 0x36, 0x28, 0xed, 0x19, 0xd8, 0x05, + 0x88, 0x55, 0xd1, 0x55, 0xb7, 0x4d, 0xf7, 0x7c, 0x03, 0x57, 0x5d, 0x2f, 0x41, 0xbd, 0x1e, 0x66, + 0x1a, 0x5b, 0xb8, 0x71, 0xb1, 0x6c, 0x7a, 0xbe, 0x2c, 0xd4, 0xf1, 0xa1, 0x2b, 0x55, 0xec, 0x0c, + 0xef, 0x11, 0xa1, 0x13, 0x17, 0xae, 0x04, 0xc3, 0x98, 0x67, 0x2a, 0x04, 0xa8, 0x3f, 0xf6, 0x81, + 0xaa, 0x08, 0x40, 0xdd, 0x36, 0x10, 0xd5, 0x78, 0xb0, 0x54, 0x06, 0x80, 0x05, 0xc1, 0xc9, 0xea, + 0x6a, 0xbd, 0x5c, 0xad, 0xac, 0xaf, 0xd5, 0x4a, 0xf3, 0xeb, 0x73, 0x1e, 0x38, 0xb5, 0xbc, 0x82, + 0xbe, 0x9d, 0x86, 0x31, 0xca, 0x56, 0x07, 0x3d, 0x3a, 0x80, 0xa0, 0xaf, 0x8f, 0x32, 0x7a, 0x9b, + 0x74, 0xc4, 0x11, 0x5f, 0x10, 0xac, 0x9c, 0x10, 0xdb, 0xe0, 0x89, 0x30, 0x46, 0x41, 0xf6, 0x56, + 0x91, 0x4f, 0x87, 0x58, 0x06, 0x8c, 0x8c, 0xe6, 0x65, 0x97, 0x8c, 0x3e, 0xd2, 0x87, 0x8d, 0xe4, + 0xad, 0xb9, 0x67, 0x66, 0xe8, 0xd4, 0xf3, 0xbc, 0xe1, 0x6c, 0x11, 0x17, 0x66, 0xf4, 0x14, 0x99, + 0x25, 0xfd, 0x9b, 0x20, 0xbb, 0xeb, 0xe6, 0xee, 0xe3, 0x0e, 0x4e, 0x33, 0xa1, 0x57, 0x48, 0x07, + 0xbb, 0x15, 0xf4, 0xd3, 0xe7, 0x29, 0x04, 0x9c, 0x15, 0xc8, 0xb4, 0x8c, 0x8e, 0xc3, 0x6c, 0xb6, + 0x5b, 0x63, 0x11, 0xf2, 0x1e, 0xca, 0x0e, 0xde, 0xd6, 0x08, 0x19, 0x74, 0xb7, 0x3b, 0xe2, 0x06, + 0xa9, 0x12, 0x2e, 0xf1, 0xa7, 0x60, 0x8c, 0x1d, 0xd5, 0x64, 0xdb, 0x1a, 0xde, 0xab, 0xe4, 0x56, + 0x82, 0x54, 0x6d, 0x93, 0xd7, 0x81, 0xff, 0xe7, 0x28, 0x8c, 0x2d, 0x19, 0x1d, 0xc7, 0xb2, 0xf7, + 0xd0, 0x43, 0x29, 0x18, 0x3b, 0x87, 0xed, 0x8e, 0x61, 0x99, 0xfb, 0xdc, 0x7b, 0xae, 0x81, 0xc9, + 0xb6, 0x8d, 0x77, 0x0d, 0x6b, 0xa7, 0x13, 0x8c, 0x4f, 0x7c, 0x92, 0x8a, 0x60, 0x5c, 0xdf, 0x71, + 0xb6, 0x2c, 0x3b, 0x88, 0xf0, 0xe2, 0xbd, 0xab, 0xa7, 0x01, 0xe8, 0x73, 0x45, 0xdf, 0xc6, 0xcc, + 0x69, 0x89, 0x4b, 0x51, 0x55, 0xc8, 0x38, 0xc6, 0x36, 0x66, 0x21, 0x9f, 0xc9, 0xb3, 0x2b, 0x60, + 0x12, 0x3e, 0x91, 0x85, 0xa9, 0x54, 0x34, 0xef, 0x15, 0x7d, 0x41, 0x81, 0xc9, 0x45, 0xec, 0x30, + 0x56, 0x3b, 0xe8, 0x85, 0x29, 0xa9, 0x5b, 0x56, 0x5c, 0xbb, 0xb6, 0xa5, 0x77, 0xbc, 0xff, 0xfc, + 0x6d, 0x0f, 0x31, 0x31, 0x88, 0x3f, 0xad, 0xf0, 0xc1, 0xe7, 0x49, 0x30, 0x42, 0xa7, 0x4c, 0x7d, + 0x9d, 0x59, 0x66, 0xb6, 0xf1, 0xb8, 0xff, 0x83, 0x68, 0x53, 0x45, 0x1e, 0xe4, 0x67, 0xb2, 0x9f, + 0xe5, 0xea, 0x13, 0xda, 0x1d, 0x8d, 0xef, 0xb2, 0x1c, 0xfb, 0xee, 0x15, 0xe0, 0x29, 0x31, 0x32, + 0x9a, 0x9f, 0x5b, 0x32, 0x04, 0x40, 0x7f, 0x4e, 0x92, 0xd7, 0xc6, 0x1f, 0x28, 0x30, 0x59, 0xdb, + 0xb2, 0x2e, 0x79, 0x72, 0x7c, 0x9a, 0x1c, 0xb0, 0x57, 0xc1, 0xc4, 0x6e, 0x17, 0xa8, 0x41, 0x02, + 0x7f, 0x79, 0x95, 0x22, 0x5e, 0x5e, 0xf5, 0x5c, 0x25, 0x2e, 0x4c, 0x1c, 0x73, 0x21, 0x30, 0x89, + 0xf7, 0x4d, 0xa5, 0x63, 0xdc, 0x37, 0xa5, 0x3e, 0x01, 0xc6, 0x18, 0xd7, 0x6c, 0x99, 0x33, 0x1a, + 0x60, 0x2f, 0x33, 0x5f, 0xc1, 0x8c, 0x58, 0xc1, 0x78, 0xc8, 0x87, 0x57, 0x2e, 0x79, 0xe4, 0xff, + 0x2c, 0x4d, 0x02, 0xc0, 0x78, 0xc0, 0x17, 0x87, 0x00, 0x3c, 0xfa, 0x61, 0x4a, 0x76, 0x33, 0xc0, + 0x97, 0x80, 0xcf, 0xc1, 0x81, 0x6e, 0x50, 0xea, 0x4b, 0x2e, 0x79, 0x79, 0xbe, 0x3c, 0x03, 0x53, + 0xf3, 0xc6, 0xc6, 0x86, 0xdf, 0x49, 0xbe, 0x48, 0xb2, 0x93, 0x0c, 0x77, 0xc1, 0x71, 0xed, 0xdc, + 0x1d, 0xdb, 0xc6, 0xa6, 0x57, 0x29, 0xd6, 0x9c, 0xba, 0x52, 0xd5, 0x1b, 0xe0, 0xa8, 0x37, 0x2e, + 0xf0, 0x1d, 0xe5, 0x84, 0xd6, 0x9d, 0x8c, 0xbe, 0x2f, 0xbd, 0x93, 0xec, 0x49, 0x94, 0xaf, 0x52, + 0x48, 0x03, 0xbc, 0x1d, 0xa6, 0xb7, 0x68, 0x6e, 0xb2, 0xdc, 0xe6, 0x75, 0x96, 0x27, 0xbb, 0x02, + 0x6c, 0xaf, 0xe0, 0x4e, 0x47, 0xdf, 0xc4, 0x9a, 0x98, 0xb9, 0xab, 0xf9, 0x2a, 0x71, 0xae, 0x8b, + 0x93, 0xdb, 0x94, 0x96, 0xa8, 0xc9, 0x08, 0xb4, 0xe3, 0x0c, 0x64, 0x16, 0x8c, 0x16, 0x46, 0xbf, + 0x92, 0x86, 0x09, 0x77, 0xd6, 0x66, 0x36, 0xdc, 0x37, 0xce, 0x21, 0xef, 0x7b, 0x29, 0xd9, 0x6b, + 0x52, 0x5d, 0x3a, 0xb3, 0x3e, 0x8d, 0x90, 0x76, 0x23, 0x77, 0x1d, 0x6a, 0x24, 0xa9, 0x11, 0x5c, + 0x6a, 0xe3, 0x4e, 0x3d, 0x36, 0x36, 0x5a, 0x96, 0x2e, 0x2c, 0x38, 0x77, 0x9b, 0x42, 0x37, 0x42, + 0xde, 0x3b, 0x57, 0x65, 0x39, 0xab, 0x86, 0x69, 0xfa, 0x07, 0xf7, 0xf7, 0xa5, 0x8b, 0xbe, 0x12, + 0x91, 0xb1, 0x8f, 0x48, 0xdd, 0x59, 0xe9, 0x21, 0x9a, 0x7d, 0x3d, 0xcc, 0x5c, 0xd8, 0x73, 0x70, + 0x87, 0xe5, 0x62, 0xc5, 0x66, 0xb4, 0xae, 0x54, 0x2e, 0x72, 0x79, 0x54, 0x8c, 0xa4, 0x88, 0x02, + 0xe3, 0x89, 0x7a, 0x69, 0x80, 0x19, 0xe0, 0x71, 0xc8, 0x57, 0xaa, 0xf3, 0x25, 0xe2, 0x1f, 0xea, + 0x79, 0xdc, 0x6d, 0xa2, 0x17, 0x2b, 0x30, 0x45, 0x1c, 0xb8, 0x3c, 0x14, 0xae, 0x95, 0x98, 0x8f, + 0xa0, 0xaf, 0x48, 0xfb, 0x8e, 0x92, 0x2a, 0xf3, 0x05, 0x84, 0x0b, 0x7a, 0xc3, 0x68, 0x75, 0x0b, + 0x3a, 0xab, 0x75, 0xa5, 0xf6, 0x00, 0x44, 0xe9, 0x09, 0xc8, 0x07, 0xa4, 0x1c, 0x48, 0xfb, 0x71, + 0x77, 0x58, 0xa8, 0xfc, 0xbe, 0x02, 0x93, 0xee, 0x24, 0xc5, 0x03, 0xa5, 0x2a, 0x80, 0x62, 0x99, + 0xad, 0xbd, 0x60, 0x59, 0xc4, 0x7b, 0x8d, 0xd5, 0x48, 0xfe, 0x5a, 0x7a, 0xe6, 0x4e, 0x44, 0xc4, + 0xf1, 0x32, 0x22, 0xfc, 0xde, 0x2f, 0x35, 0x9f, 0xef, 0xc3, 0xdc, 0x61, 0xc1, 0xf7, 0xcd, 0x2c, + 0xe4, 0xd6, 0xda, 0x04, 0xb9, 0x57, 0x28, 0x32, 0xb7, 0x00, 0xec, 0x3b, 0x3c, 0xe4, 0x9a, 0x59, + 0x2d, 0xab, 0xa1, 0xb7, 0x56, 0x83, 0x53, 0x98, 0x41, 0x82, 0x7a, 0x1b, 0xf3, 0x27, 0xa6, 0x47, + 0x58, 0xaf, 0x8f, 0x0c, 0x90, 0x4f, 0x64, 0xc4, 0x1d, 0xd4, 0xba, 0x09, 0x8e, 0x35, 0x8d, 0x8e, + 0x7e, 0xa1, 0x85, 0x4b, 0x66, 0xc3, 0xde, 0xa3, 0xe2, 0x60, 0xd3, 0xaa, 0x7d, 0x1f, 0xd4, 0x3b, + 0x20, 0xdb, 0x71, 0xf6, 0x5a, 0x74, 0x9e, 0xc8, 0x9f, 0xeb, 0x0a, 0x2d, 0xaa, 0xe6, 0x66, 0xd7, + 0xe8, 0x5f, 0xbc, 0x5b, 0xe0, 0x98, 0xe4, 0x1d, 0xe9, 0x8f, 0x83, 0x9c, 0x65, 0x1b, 0x9b, 0x06, + 0xbd, 0xf3, 0x6a, 0x66, 0x5f, 0x1c, 0x48, 0x6a, 0x0a, 0x54, 0x49, 0x16, 0x8d, 0x65, 0x55, 0x9f, + 0x00, 0x13, 0xc6, 0xb6, 0xbe, 0x89, 0xef, 0x31, 0x4c, 0x7a, 0x4a, 0x76, 0xe6, 0x96, 0x53, 0xfb, + 0x8e, 0xac, 0xb1, 0xef, 0x5a, 0x90, 0x15, 0xbd, 0x3f, 0x2d, 0x1b, 0xac, 0x8a, 0xd4, 0x8d, 0x82, + 0x3a, 0x92, 0xbb, 0xe2, 0xd1, 0xab, 0xa5, 0xc2, 0x48, 0x85, 0xb3, 0x95, 0xfc, 0xe0, 0xfd, 0xf9, + 0x34, 0x8c, 0xcf, 0x5b, 0x97, 0x4c, 0xa2, 0xe8, 0xb7, 0xca, 0xd9, 0xba, 0x3d, 0x0e, 0x16, 0x8b, + 0x57, 0xb1, 0x46, 0x9e, 0x22, 0x22, 0xb5, 0xf5, 0x8a, 0x0c, 0x81, 0x21, 0xb2, 0xe5, 0x48, 0x5e, + 0x90, 0x19, 0x55, 0x4e, 0xf2, 0x72, 0xfd, 0x73, 0x05, 0x32, 0xf3, 0xb6, 0xd5, 0x46, 0x6f, 0x4d, + 0xc5, 0x70, 0x13, 0x6a, 0xda, 0x56, 0xbb, 0x4e, 0x6e, 0xb8, 0x0b, 0x8e, 0x4e, 0xf1, 0x69, 0xea, + 0xad, 0x30, 0xde, 0xb6, 0x3a, 0x86, 0xe3, 0x4d, 0x23, 0x66, 0x6e, 0x79, 0x44, 0xcf, 0xd6, 0xbc, + 0xca, 0x32, 0x69, 0x7e, 0x76, 0xb7, 0xd7, 0x26, 0x22, 0x74, 0xe5, 0xe2, 0x8a, 0xd1, 0xbb, 0xe5, + 0xaf, 0x2b, 0x15, 0xbd, 0x84, 0x47, 0xf2, 0x49, 0x22, 0x92, 0x8f, 0xec, 0x21, 0x61, 0xdb, 0x6a, + 0x0f, 0x65, 0x63, 0xff, 0x95, 0x3e, 0xaa, 0x4f, 0x16, 0x50, 0xbd, 0x51, 0xaa, 0xcc, 0xe4, 0x11, + 0x7d, 0x7f, 0x06, 0x80, 0x98, 0x19, 0x6b, 0xee, 0x04, 0x48, 0xce, 0xc6, 0x7a, 0x76, 0x86, 0x93, + 0x65, 0x41, 0x94, 0xe5, 0xa3, 0x43, 0xac, 0x18, 0x42, 0x3e, 0x44, 0xa2, 0x05, 0xc8, 0xee, 0xb8, + 0x9f, 0x99, 0x44, 0x25, 0x49, 0x90, 0x57, 0x8d, 0xfe, 0x89, 0xfe, 0x2c, 0x05, 0x59, 0x92, 0xa0, + 0x9e, 0x06, 0x20, 0x03, 0x3b, 0x3d, 0x84, 0x97, 0x22, 0x43, 0x38, 0x97, 0x42, 0xb4, 0xd5, 0x68, + 0xb2, 0xcf, 0xd4, 0x64, 0x0e, 0x12, 0xdc, 0xbf, 0xc9, 0x70, 0x4f, 0x68, 0x31, 0x03, 0x80, 0x4b, + 0x71, 0xff, 0x26, 0x6f, 0xcb, 0x78, 0x83, 0x06, 0x1f, 0xcf, 0x68, 0x41, 0x82, 0xff, 0xf7, 0xb2, + 0x7f, 0x65, 0x9d, 0xf7, 0x37, 0x49, 0x71, 0x27, 0xc3, 0x44, 0x2d, 0xe7, 0x82, 0x22, 0x72, 0x24, + 0x53, 0x77, 0x32, 0x7a, 0x9d, 0xaf, 0x36, 0xf3, 0x82, 0xda, 0xdc, 0x1c, 0x43, 0xbc, 0xc9, 0x2b, + 0xcf, 0xd7, 0xb2, 0x30, 0x51, 0xb1, 0x9a, 0x4c, 0x77, 0xb8, 0x09, 0xe3, 0x27, 0xb3, 0xb1, 0x26, + 0x8c, 0x3e, 0x8d, 0x10, 0x05, 0xb9, 0x4b, 0x54, 0x10, 0x39, 0x0a, 0xbc, 0x7e, 0xa8, 0x73, 0x90, + 0x23, 0xda, 0xbb, 0xff, 0x2e, 0xb4, 0x28, 0x12, 0x44, 0xb4, 0x1a, 0xfb, 0xf3, 0x3f, 0x9c, 0x8e, + 0xfd, 0x17, 0xc8, 0x92, 0x0a, 0x46, 0xec, 0xee, 0x88, 0x15, 0x4d, 0x47, 0x57, 0x54, 0x89, 0xae, + 0x68, 0xa6, 0xbb, 0xa2, 0x71, 0xd6, 0x01, 0xc2, 0x34, 0x24, 0x79, 0x1d, 0xff, 0xc7, 0x31, 0x80, + 0x8a, 0xbe, 0x6b, 0x6c, 0xd2, 0xdd, 0xe1, 0x2f, 0x78, 0xf3, 0x1f, 0xb6, 0x8f, 0xfb, 0x5f, 0xb9, + 0x81, 0xf0, 0x56, 0x18, 0x63, 0xe3, 0x1e, 0xab, 0xc8, 0xd5, 0x42, 0x45, 0x02, 0x2a, 0xd4, 0x2c, + 0xbd, 0xdf, 0xd1, 0xbc, 0xfc, 0xc2, 0xb5, 0xcd, 0xe9, 0xae, 0x6b, 0x9b, 0x7b, 0xef, 0x41, 0x84, + 0x5c, 0xe6, 0x8c, 0xde, 0x23, 0x7d, 0x8a, 0x86, 0xe3, 0x87, 0xab, 0x51, 0x48, 0x13, 0x7c, 0x1c, + 0x8c, 0x59, 0xfe, 0x86, 0xb6, 0x12, 0xba, 0x0e, 0x56, 0x36, 0x37, 0x2c, 0xcd, 0xcb, 0x29, 0xb9, + 0xf9, 0x25, 0xc5, 0xc7, 0x48, 0x0e, 0xaa, 0x9d, 0x5c, 0xf4, 0x02, 0xb9, 0xb9, 0xf5, 0x38, 0x6f, + 0x38, 0x5b, 0xcb, 0x86, 0x79, 0xb1, 0x83, 0x7e, 0x41, 0xce, 0x82, 0xe4, 0xf0, 0x4f, 0xc7, 0xc3, + 0x5f, 0x8c, 0x93, 0x53, 0x13, 0x51, 0xbb, 0x23, 0x8c, 0x4a, 0x6f, 0x6e, 0x43, 0x00, 0xbc, 0x0d, + 0x72, 0x94, 0x51, 0xd6, 0x89, 0x9e, 0x09, 0xc5, 0xcf, 0xa7, 0xa4, 0xb1, 0x3f, 0xd0, 0xbb, 0x7d, + 0x1c, 0xcf, 0x09, 0x38, 0xce, 0x1d, 0x88, 0xb3, 0xc4, 0x21, 0x3d, 0xf3, 0x58, 0x18, 0x63, 0x92, + 0x56, 0x67, 0xf8, 0x56, 0x9c, 0x3f, 0xa2, 0x02, 0xe4, 0x56, 0xac, 0x5d, 0x5c, 0xb7, 0xf2, 0x29, + 0xf7, 0xd9, 0xe5, 0xaf, 0x6e, 0xe5, 0xd3, 0xe8, 0x55, 0xe3, 0x30, 0xee, 0x47, 0xd0, 0xfa, 0x7c, + 0x1a, 0xf2, 0x45, 0x1b, 0xeb, 0x0e, 0x5e, 0xb0, 0xad, 0x6d, 0x5a, 0x23, 0x79, 0x8f, 0xec, 0xdf, + 0x92, 0x76, 0xf1, 0xf0, 0x23, 0x5b, 0x75, 0x17, 0x16, 0x82, 0x25, 0x5d, 0x84, 0x4c, 0x7b, 0x8b, + 0x90, 0xe8, 0x2d, 0x52, 0x2e, 0x1f, 0xb2, 0xa5, 0x24, 0xdf, 0xd4, 0x3e, 0x9d, 0x86, 0x6c, 0xb1, + 0x65, 0x99, 0x98, 0x3f, 0x36, 0xd8, 0xf7, 0x7c, 0x5a, 0xef, 0x9d, 0x08, 0xf4, 0xcc, 0xb4, 0xac, + 0xad, 0x11, 0x08, 0xc0, 0x2d, 0x5b, 0x52, 0xb6, 0x72, 0x83, 0x54, 0x24, 0xe9, 0xe4, 0x05, 0xfa, + 0xed, 0x34, 0x4c, 0xd0, 0x58, 0x54, 0x85, 0x56, 0x0b, 0x3d, 0x22, 0x10, 0x6a, 0x8f, 0x28, 0x64, + 0xe8, 0x03, 0xd2, 0xc7, 0x62, 0xfc, 0x5a, 0xf9, 0xb4, 0x63, 0x04, 0xe5, 0x8a, 0x77, 0x4a, 0x43, + 0x6e, 0x2f, 0xad, 0x2f, 0x43, 0xc9, 0x8b, 0xfa, 0xaf, 0xd2, 0xae, 0x01, 0x60, 0x5e, 0x5c, 0xb5, + 0xf1, 0xae, 0x81, 0x2f, 0xa1, 0x2b, 0x03, 0x61, 0xef, 0x0f, 0xb4, 0xf3, 0x26, 0xe9, 0x45, 0x1c, + 0x8e, 0x64, 0xe8, 0x56, 0xd6, 0x64, 0x2b, 0xc8, 0xc4, 0x7a, 0xf1, 0xee, 0xe8, 0x47, 0x1c, 0x19, + 0x8d, 0xcf, 0x2e, 0xb9, 0x66, 0x13, 0xce, 0x45, 0xf2, 0x82, 0xfd, 0xf0, 0x18, 0x8c, 0xaf, 0x99, + 0x9d, 0x76, 0x4b, 0xef, 0x6c, 0xa1, 0x7f, 0x53, 0x20, 0x47, 0x6f, 0xe0, 0x43, 0x3f, 0x23, 0xc4, + 0xf3, 0x78, 0xfa, 0x0e, 0xb6, 0x3d, 0x17, 0x1c, 0xfa, 0x12, 0xd8, 0x47, 0x69, 0xce, 0x3e, 0x42, + 0xef, 0x57, 0x64, 0x27, 0xa9, 0x5e, 0xa1, 0xec, 0xca, 0xbf, 0xf0, 0x10, 0x12, 0x6d, 0xa3, 0xe1, + 0xec, 0xd8, 0xfe, 0x75, 0xf3, 0x8f, 0x91, 0xa3, 0xb2, 0x4a, 0xff, 0xd2, 0xfc, 0xdf, 0x91, 0x0e, + 0x63, 0x2c, 0x71, 0xdf, 0x76, 0xd2, 0xfe, 0x33, 0xef, 0x27, 0x21, 0xa7, 0xdb, 0x8e, 0xd1, 0x71, + 0xd8, 0x06, 0x2b, 0x7b, 0x73, 0xbb, 0x4b, 0xfa, 0xb4, 0x66, 0xb7, 0xbc, 0xc8, 0x3f, 0x7e, 0x02, + 0xfa, 0x7d, 0xa9, 0xf9, 0x63, 0x74, 0xcd, 0xe3, 0x41, 0x7e, 0xcf, 0x00, 0x6b, 0xd4, 0x97, 0xc3, + 0x65, 0x5a, 0xa1, 0x5e, 0x5a, 0xa7, 0x81, 0x62, 0xfc, 0x98, 0x30, 0x4d, 0xf4, 0x2e, 0x85, 0x5b, + 0xbf, 0xdb, 0x13, 0xc6, 0x08, 0x26, 0xc5, 0x60, 0x8c, 0xf0, 0x13, 0x22, 0x76, 0xab, 0x85, 0x45, + 0x58, 0x45, 0x7e, 0x11, 0xf6, 0x77, 0xa5, 0x77, 0x93, 0x7c, 0x51, 0xf6, 0x59, 0x03, 0x8c, 0xba, + 0xa1, 0xeb, 0x83, 0x52, 0x3b, 0x43, 0xfd, 0x4a, 0x3a, 0x44, 0xd8, 0xde, 0x38, 0x06, 0x63, 0x8b, + 0x7a, 0xab, 0x85, 0xed, 0x3d, 0x77, 0x48, 0xca, 0x7b, 0x1c, 0xae, 0xe8, 0xa6, 0xb1, 0x81, 0x3b, + 0x4e, 0x74, 0x67, 0xf9, 0x1e, 0xe9, 0xe8, 0xcf, 0xac, 0x8c, 0xd9, 0x6e, 0xfa, 0x21, 0x32, 0x3f, + 0x0b, 0x19, 0xc3, 0xdc, 0xb0, 0x58, 0x97, 0xd9, 0xbd, 0x6a, 0xef, 0xfd, 0x4c, 0xa6, 0x2e, 0x24, + 0xa3, 0x64, 0x00, 0x68, 0x49, 0x2e, 0x92, 0xef, 0x39, 0x7f, 0x2f, 0x03, 0xd3, 0x1e, 0x13, 0x65, + 0xb3, 0x89, 0xef, 0xe7, 0x97, 0x62, 0x5e, 0x9c, 0x91, 0x3d, 0x82, 0xd9, 0x5d, 0x1f, 0x42, 0x2a, + 0x44, 0xa4, 0x75, 0x80, 0x86, 0xee, 0xe0, 0x4d, 0xcb, 0x36, 0xfc, 0xfe, 0xf0, 0xf1, 0x71, 0xa8, + 0x15, 0xe9, 0xdf, 0x7b, 0x1a, 0x47, 0x47, 0xbd, 0x03, 0x26, 0xb1, 0x1f, 0xf3, 0xc2, 0x5b, 0xaa, + 0x89, 0xc4, 0x8b, 0xcf, 0x8f, 0xfe, 0x4a, 0xea, 0xa4, 0xa7, 0x4c, 0x35, 0xe3, 0x61, 0xb6, 0x3e, + 0x58, 0x1b, 0x5a, 0xab, 0xac, 0x14, 0xb4, 0xda, 0x52, 0x61, 0x79, 0xb9, 0x5c, 0x59, 0xf4, 0x83, + 0x2d, 0xa9, 0x30, 0x33, 0x5f, 0x3d, 0x5f, 0xe1, 0xa2, 0x61, 0x65, 0xd0, 0x2a, 0x8c, 0x7b, 0xf2, + 0xea, 0xe5, 0x8b, 0xc9, 0xcb, 0x8c, 0xf9, 0x62, 0x72, 0x49, 0xae, 0x71, 0x66, 0x34, 0x7c, 0x07, + 0x1d, 0xf2, 0x8c, 0xfe, 0x44, 0x87, 0x2c, 0x59, 0x53, 0x47, 0xef, 0x20, 0xdb, 0x80, 0xed, 0x96, + 0xde, 0xc0, 0x68, 0x3b, 0x86, 0x35, 0xee, 0x5d, 0x47, 0x92, 0xde, 0x77, 0x1d, 0x09, 0x79, 0x64, + 0x56, 0xdf, 0xf1, 0x5e, 0xeb, 0xf8, 0x1a, 0xcd, 0x22, 0x1e, 0x8a, 0x8c, 0xdc, 0x5d, 0xa1, 0xcb, + 0xff, 0x8c, 0xcd, 0x10, 0x95, 0x0c, 0xe7, 0x29, 0x9e, 0x25, 0x2a, 0xb7, 0x0f, 0x13, 0xc5, 0xd1, + 0x08, 0xae, 0xcc, 0xcf, 0x40, 0xb6, 0xd6, 0x6e, 0x19, 0x0e, 0x7a, 0x59, 0x7a, 0x28, 0x98, 0xd1, + 0x2b, 0x64, 0x94, 0xbe, 0x57, 0xc8, 0x04, 0xbb, 0xae, 0x19, 0x89, 0x5d, 0xd7, 0x3a, 0xbe, 0xdf, + 0x11, 0x77, 0x5d, 0x6f, 0x65, 0x01, 0x13, 0xe9, 0x9e, 0xed, 0x23, 0x7b, 0x88, 0x94, 0x54, 0xab, + 0x47, 0x24, 0xce, 0x33, 0x8f, 0x65, 0x01, 0x01, 0x01, 0x72, 0x73, 0xd5, 0x7a, 0xbd, 0xba, 0x92, + 0x3f, 0x42, 0x22, 0x49, 0x55, 0x57, 0x69, 0x78, 0xa6, 0x72, 0xa5, 0x52, 0xd2, 0xf2, 0x69, 0x12, + 0xa2, 0xb0, 0x5c, 0x5f, 0x2e, 0xe5, 0x15, 0xf1, 0x3e, 0x81, 0x48, 0xf3, 0x5b, 0x2c, 0x3b, 0x49, + 0xf5, 0x92, 0x33, 0xc4, 0xc3, 0xf9, 0x49, 0x5e, 0xb9, 0x7e, 0x53, 0x81, 0xec, 0x0a, 0xb6, 0x37, + 0x31, 0x7a, 0x7a, 0x8c, 0x4d, 0xbe, 0x0d, 0xc3, 0xee, 0xd0, 0x80, 0x8e, 0xc1, 0x26, 0x1f, 0x9f, + 0xa6, 0x5e, 0x07, 0xd3, 0x1d, 0xdc, 0xb0, 0xcc, 0xa6, 0x97, 0x89, 0xf6, 0x47, 0x62, 0x22, 0x7a, + 0x69, 0x4c, 0xc8, 0x08, 0xa3, 0x43, 0xd9, 0xa9, 0x8b, 0x03, 0x4c, 0xaf, 0x52, 0x93, 0x07, 0xe6, + 0xfb, 0x8a, 0xfb, 0x53, 0x7b, 0x0f, 0xbd, 0x54, 0x7a, 0xf7, 0xf5, 0x26, 0xc8, 0x11, 0x35, 0xf5, + 0xc6, 0xe8, 0xde, 0xfd, 0x31, 0xcb, 0xa3, 0xce, 0xc1, 0xb1, 0x0e, 0x6e, 0xe1, 0x86, 0x83, 0x9b, + 0x6e, 0xd3, 0xd5, 0xfa, 0x76, 0x0a, 0xfb, 0xb3, 0xa3, 0xbf, 0xe0, 0x01, 0xbc, 0x5d, 0x04, 0xf0, + 0xfa, 0x1e, 0xa2, 0x74, 0x2b, 0x14, 0x6e, 0x2b, 0xbb, 0xd5, 0xa8, 0xb5, 0x2c, 0x7f, 0x51, 0xdc, + 0x7b, 0x77, 0xbf, 0x6d, 0x39, 0xdb, 0x2d, 0xf2, 0x8d, 0x1d, 0x30, 0xf0, 0xde, 0xd5, 0x59, 0x18, + 0xd3, 0xcd, 0x3d, 0xf2, 0x29, 0x13, 0x51, 0x6b, 0x2f, 0x13, 0x7a, 0x95, 0x8f, 0xfc, 0x9d, 0x02, + 0xf2, 0x8f, 0x96, 0x63, 0x37, 0x79, 0xe0, 0x7f, 0x79, 0x0c, 0xb2, 0xab, 0x7a, 0xc7, 0xc1, 0xe8, + 0xff, 0x56, 0x64, 0x91, 0xbf, 0x1e, 0x66, 0x36, 0xac, 0xc6, 0x4e, 0x07, 0x37, 0xc5, 0x46, 0xd9, + 0x95, 0x3a, 0x0c, 0xcc, 0xd5, 0x1b, 0x21, 0xef, 0x25, 0x32, 0xb2, 0xde, 0x36, 0xfc, 0xbe, 0x74, + 0x12, 0x9d, 0xbe, 0xb3, 0xaa, 0xdb, 0x4e, 0x75, 0x83, 0xa4, 0xf9, 0xd1, 0xe9, 0xf9, 0x44, 0x01, + 0xfa, 0x5c, 0x04, 0xf4, 0x63, 0xe1, 0xd0, 0x8f, 0x4b, 0x40, 0xaf, 0x16, 0x60, 0x7c, 0xc3, 0x68, + 0x61, 0xf2, 0xc3, 0x04, 0xf9, 0xa1, 0xd7, 0x98, 0x44, 0x64, 0xef, 0x8f, 0x49, 0x0b, 0x46, 0x0b, + 0x6b, 0xfe, 0x6f, 0xde, 0x44, 0x06, 0x82, 0x89, 0xcc, 0x32, 0xf5, 0xa7, 0x75, 0x0d, 0x2f, 0x53, + 0xdf, 0xc6, 0xde, 0xe2, 0x9b, 0xc9, 0x0e, 0xb7, 0x34, 0x75, 0x47, 0x27, 0x60, 0x4c, 0x69, 0xe4, + 0x59, 0xf4, 0x0b, 0x51, 0xba, 0xfd, 0x42, 0x9e, 0xa3, 0xc4, 0xeb, 0x11, 0x3d, 0x66, 0x43, 0x5a, + 0xd4, 0x05, 0x0f, 0x20, 0x6a, 0x29, 0xfa, 0xef, 0x2e, 0x30, 0x0d, 0xdd, 0xc6, 0xce, 0x2a, 0xef, + 0x89, 0x91, 0xd5, 0xc4, 0x44, 0xe2, 0xca, 0xd7, 0xa9, 0xe9, 0xdb, 0x98, 0x14, 0x56, 0x74, 0xbf, + 0x31, 0x17, 0xad, 0x7d, 0xe9, 0x41, 0xff, 0x9b, 0x1d, 0x76, 0xff, 0xdb, 0xab, 0x8e, 0xc9, 0x37, + 0xc3, 0xd7, 0x66, 0x40, 0x29, 0xee, 0x38, 0x0f, 0xeb, 0xee, 0xf7, 0x47, 0xd2, 0x7e, 0x2e, 0xac, + 0x3f, 0xdb, 0x71, 0x0e, 0xb7, 0xf7, 0x8d, 0xa9, 0x25, 0x72, 0xfe, 0x34, 0x61, 0x75, 0x4b, 0x5e, + 0x47, 0xde, 0xaa, 0xf8, 0x0e, 0x96, 0x0f, 0xa4, 0x0e, 0x6e, 0x9a, 0x23, 0xda, 0x3f, 0x71, 0x3d, + 0x83, 0xff, 0xee, 0x75, 0x3c, 0x19, 0x21, 0x3e, 0x26, 0xd9, 0x5e, 0x27, 0xa2, 0x9c, 0xd2, 0xe8, + 0x0b, 0x7a, 0xb9, 0xb4, 0xdb, 0x39, 0x15, 0x5b, 0xa4, 0x2b, 0x61, 0x3c, 0x9b, 0x4a, 0xee, 0x82, + 0xde, 0x88, 0x62, 0x93, 0x07, 0xec, 0xbb, 0xbc, 0xab, 0x60, 0xe1, 0xc0, 0x88, 0xa1, 0x57, 0x4b, + 0x6f, 0x47, 0xd1, 0x6a, 0xf7, 0x59, 0x2f, 0x8c, 0x27, 0x6f, 0xb9, 0xcd, 0xaa, 0xc8, 0x82, 0x93, + 0x97, 0xf8, 0x77, 0x14, 0xc8, 0xd1, 0x2d, 0x48, 0xf4, 0x66, 0xe9, 0x26, 0xe2, 0xf6, 0x46, 0xa2, + 0x0b, 0xa1, 0xff, 0x1e, 0x67, 0xcd, 0x41, 0x70, 0x35, 0xcc, 0xc4, 0x72, 0x35, 0x14, 0xcf, 0x71, + 0x4a, 0xb4, 0x23, 0x5a, 0xc7, 0x84, 0xa7, 0x93, 0x71, 0x5a, 0x58, 0x4f, 0x86, 0x92, 0xc7, 0xfb, + 0x79, 0x59, 0x98, 0xa2, 0x45, 0x9f, 0x37, 0x9a, 0x9b, 0xd8, 0x41, 0xef, 0x4a, 0xff, 0xf8, 0xa0, + 0xae, 0x56, 0x60, 0xea, 0x12, 0x61, 0x7b, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xb6, 0x72, 0x71, 0x63, + 0xe4, 0xba, 0x07, 0xad, 0xe7, 0x2c, 0xfd, 0x43, 0x13, 0xfe, 0x77, 0x65, 0x4c, 0x17, 0xfc, 0xa9, + 0x03, 0x57, 0x8e, 0x18, 0x59, 0x7c, 0x92, 0x7a, 0x12, 0x72, 0xbb, 0x06, 0xbe, 0x54, 0x6e, 0x32, + 0xeb, 0x96, 0xbd, 0xa1, 0x3f, 0x94, 0xde, 0xb7, 0xe5, 0xe1, 0x66, 0xbc, 0x24, 0xab, 0x85, 0x72, + 0xbb, 0xb7, 0x7d, 0xd9, 0x1a, 0xc1, 0x99, 0x62, 0xf1, 0x02, 0xdc, 0x62, 0x0c, 0x45, 0x0c, 0x33, + 0x9c, 0xc5, 0x50, 0x1e, 0x91, 0x27, 0x56, 0xa8, 0x00, 0x86, 0x7c, 0x37, 0xae, 0x5c, 0x7c, 0x89, + 0x3e, 0x45, 0x27, 0x2f, 0xf9, 0xd7, 0x29, 0x30, 0x51, 0xc3, 0xce, 0x82, 0x81, 0x5b, 0xcd, 0x0e, + 0xb2, 0x0f, 0x6e, 0x1a, 0x9d, 0x85, 0xdc, 0x06, 0x21, 0xd6, 0xef, 0xdc, 0x02, 0xcb, 0x86, 0x5e, + 0x9b, 0x96, 0xdd, 0x11, 0x66, 0xab, 0x6f, 0x1e, 0xb7, 0x43, 0x81, 0x49, 0xce, 0xa3, 0x37, 0xba, + 0xe4, 0x11, 0x04, 0x93, 0x56, 0x60, 0x8a, 0xdd, 0x98, 0x59, 0x68, 0x19, 0x9b, 0x26, 0xda, 0x19, + 0x42, 0x0b, 0x51, 0x6f, 0x86, 0xac, 0xee, 0x52, 0x63, 0x5b, 0xaf, 0xa8, 0x67, 0xe7, 0x49, 0xca, + 0xd3, 0x68, 0xc6, 0x18, 0xa1, 0x5b, 0x03, 0xc5, 0xf6, 0x78, 0x1e, 0x61, 0xe8, 0xd6, 0xbe, 0x85, + 0x27, 0x8f, 0xd8, 0x57, 0x15, 0x38, 0xce, 0x18, 0x38, 0x87, 0x6d, 0xc7, 0x68, 0xe8, 0x2d, 0x8a, + 0xdc, 0x0b, 0x52, 0xc3, 0x80, 0x6e, 0x09, 0xa6, 0x77, 0x79, 0xb2, 0x0c, 0xc2, 0x33, 0x3d, 0x21, + 0x14, 0x18, 0xd0, 0xc4, 0x1f, 0x63, 0x84, 0xc0, 0x14, 0xa4, 0x2a, 0xd0, 0x1c, 0x61, 0x08, 0x4c, + 0x69, 0x26, 0x92, 0x87, 0xf8, 0x25, 0x2c, 0x34, 0x4f, 0xd0, 0x7d, 0x7e, 0x41, 0x1a, 0xdb, 0x35, + 0x98, 0x24, 0x58, 0xd2, 0x1f, 0xd9, 0x32, 0x44, 0x84, 0x12, 0xfb, 0xfd, 0x0e, 0xbb, 0xa4, 0xcf, + 0xff, 0x57, 0xe3, 0xe9, 0xa0, 0xf3, 0x00, 0xc1, 0x27, 0xbe, 0x93, 0x4e, 0x85, 0x75, 0xd2, 0x69, + 0xb9, 0x4e, 0xfa, 0x4d, 0xd2, 0xc1, 0x52, 0x7a, 0xb3, 0x7d, 0x70, 0xf5, 0x90, 0x0b, 0x93, 0xd1, + 0xbf, 0xf4, 0xe4, 0xf5, 0xe2, 0x55, 0x4c, 0x2f, 0xe6, 0x77, 0xda, 0x2d, 0xa3, 0xe1, 0xce, 0xa7, + 0x3e, 0x36, 0x94, 0xf9, 0x14, 0xdf, 0x1f, 0x28, 0x5d, 0xfd, 0xc1, 0x01, 0x2c, 0xe9, 0x1b, 0xe0, + 0x28, 0x2d, 0xa2, 0xe8, 0xb3, 0x95, 0xa5, 0xa1, 0x20, 0xba, 0x92, 0xc5, 0xb8, 0x76, 0x92, 0x4a, + 0xe0, 0x0b, 0x61, 0x80, 0xa5, 0xcf, 0x78, 0xc6, 0x6e, 0x5c, 0x05, 0x09, 0xe3, 0x6c, 0x04, 0x6e, + 0xa1, 0x19, 0x6a, 0xed, 0xae, 0x91, 0x7b, 0x14, 0xd1, 0x97, 0x32, 0xc3, 0x18, 0x11, 0xee, 0x82, + 0x0c, 0x71, 0x71, 0x57, 0x42, 0x97, 0x34, 0x82, 0x22, 0x83, 0x4b, 0x2e, 0xf1, 0xfd, 0xce, 0xd2, + 0x11, 0x8d, 0xfc, 0xa9, 0xde, 0x08, 0x47, 0x2f, 0xe8, 0x8d, 0x8b, 0x9b, 0xb6, 0xb5, 0x43, 0x6e, + 0x9c, 0xb3, 0xd8, 0xd5, 0x75, 0xe4, 0x0a, 0x50, 0xf1, 0x83, 0x7a, 0x8b, 0x67, 0x3a, 0x64, 0xfb, + 0x99, 0x0e, 0x4b, 0x47, 0x98, 0xf1, 0xa0, 0x3e, 0xd6, 0xef, 0x74, 0x72, 0x91, 0x9d, 0xce, 0xd2, + 0x11, 0xaf, 0xdb, 0x51, 0xe7, 0x61, 0xbc, 0x69, 0xec, 0x92, 0xad, 0x6a, 0x32, 0xeb, 0xea, 0x77, + 0x74, 0x79, 0xde, 0xd8, 0xa5, 0x1b, 0xdb, 0x4b, 0x47, 0x34, 0xff, 0x4f, 0x75, 0x11, 0x26, 0xc8, + 0xb6, 0x00, 0x21, 0x33, 0x1e, 0xeb, 0x58, 0xf2, 0xd2, 0x11, 0x2d, 0xf8, 0xd7, 0xb5, 0x3e, 0x32, + 0xe4, 0xec, 0xc7, 0x9d, 0xde, 0x76, 0x7b, 0x2a, 0xd6, 0x76, 0xbb, 0x2b, 0x0b, 0xba, 0xe1, 0x7e, + 0x12, 0xb2, 0x0d, 0x22, 0xe1, 0x34, 0x93, 0x30, 0x7d, 0x55, 0x6f, 0x87, 0xcc, 0xb6, 0x6e, 0x7b, + 0x93, 0xe7, 0xeb, 0xfb, 0xd3, 0x5d, 0xd1, 0xed, 0x8b, 0x2e, 0x82, 0xee, 0x5f, 0x73, 0x63, 0x90, + 0x25, 0x82, 0xf3, 0x1f, 0xd0, 0x5b, 0x33, 0xd4, 0x0c, 0x29, 0x5a, 0xa6, 0x3b, 0xec, 0xd7, 0x2d, + 0xef, 0x80, 0xcc, 0x1f, 0xa6, 0x86, 0x63, 0x41, 0x5e, 0xc6, 0x05, 0x9c, 0x35, 0x8d, 0xa7, 0xef, + 0xe0, 0x7b, 0xf0, 0x1e, 0x5b, 0x12, 0xed, 0xf5, 0xa9, 0xeb, 0x52, 0xeb, 0x4c, 0xf7, 0xa5, 0xd6, + 0xc1, 0xf2, 0x41, 0xb6, 0xbf, 0xa3, 0xca, 0x5f, 0x0c, 0x60, 0xba, 0x74, 0x0b, 0x22, 0x7c, 0x06, + 0xde, 0x32, 0x4c, 0xae, 0xce, 0xde, 0x6b, 0xcc, 0x4e, 0x29, 0xae, 0x51, 0xd3, 0x87, 0xbd, 0xe4, + 0xfb, 0xa6, 0xdf, 0xc9, 0xc0, 0x29, 0x7a, 0x75, 0xfa, 0x2e, 0xae, 0x5b, 0xe2, 0x1d, 0xaf, 0xe8, + 0x4f, 0x87, 0xa2, 0x34, 0x3d, 0x06, 0x1c, 0xa5, 0xe7, 0x80, 0xb3, 0xef, 0x90, 0x72, 0xa6, 0xcf, + 0x21, 0xe5, 0x6c, 0xbc, 0x95, 0xc3, 0x0f, 0xf1, 0xfa, 0xb3, 0x2a, 0xea, 0xcf, 0x6d, 0x21, 0x00, + 0xf5, 0x92, 0xcb, 0x50, 0xec, 0x9b, 0x77, 0xf8, 0x9a, 0x52, 0x13, 0x34, 0xe5, 0xce, 0xc1, 0x19, + 0x49, 0x5e, 0x5b, 0xfe, 0x20, 0x03, 0x97, 0x05, 0xcc, 0x54, 0xf0, 0x25, 0xa6, 0x28, 0x9f, 0x1f, + 0x8a, 0xa2, 0xc4, 0x8f, 0x81, 0x90, 0xb4, 0xc6, 0xfc, 0x99, 0xf4, 0xd9, 0xa1, 0x6e, 0xa0, 0x7c, + 0xd9, 0x84, 0x28, 0xcb, 0x49, 0xc8, 0xd1, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x62, 0x76, 0x37, 0x72, + 0x27, 0x8e, 0x64, 0x79, 0x1b, 0x81, 0xfe, 0xb0, 0x75, 0x8d, 0xfa, 0x8e, 0x6d, 0x96, 0x4d, 0xc7, + 0x42, 0xbf, 0x34, 0x14, 0xc5, 0xf1, 0xbd, 0xe1, 0x94, 0x41, 0xbc, 0xe1, 0x06, 0x5a, 0xe5, 0xf0, + 0x6a, 0x70, 0x28, 0xab, 0x1c, 0x21, 0x85, 0x27, 0x8f, 0xdf, 0xdb, 0x15, 0x38, 0xc9, 0x26, 0x5b, + 0x73, 0xa2, 0x85, 0x88, 0xee, 0x1d, 0x06, 0x90, 0xc7, 0x3d, 0x33, 0x89, 0xdd, 0x2c, 0x48, 0x5e, + 0xc4, 0x93, 0x52, 0x91, 0x77, 0xaa, 0x08, 0xd3, 0xc1, 0x2e, 0x0e, 0x87, 0x82, 0x94, 0xdc, 0x55, + 0x2a, 0x31, 0xd8, 0x48, 0x1e, 0xb3, 0x17, 0x29, 0x90, 0xa3, 0xe7, 0xb4, 0xd0, 0x5a, 0x22, 0x0e, + 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, 0x39, 0xca, 0x4d, 0x62, 0x67, 0xd8, 0xe2, 0xec, 0xc5, 0xf5, + 0x64, 0x65, 0x04, 0x2e, 0x84, 0x69, 0x98, 0xac, 0x61, 0xa7, 0xa8, 0xdb, 0xb6, 0xa1, 0x6f, 0x0e, + 0xcb, 0xe3, 0x5b, 0xd6, 0x7b, 0x18, 0xfd, 0x20, 0x25, 0x7b, 0x9e, 0xc6, 0x5f, 0x08, 0xf7, 0x58, + 0x0d, 0x89, 0x25, 0xf8, 0x90, 0xd4, 0x99, 0x99, 0x7e, 0xd4, 0x46, 0xe0, 0xb1, 0x9d, 0x86, 0x31, + 0xef, 0x2c, 0xde, 0x59, 0xe1, 0x7c, 0xe6, 0x96, 0xb3, 0xed, 0x1d, 0x83, 0x21, 0xcf, 0xfb, 0xcf, + 0x80, 0xa1, 0x57, 0xc6, 0x74, 0x94, 0x8f, 0x3e, 0x48, 0x18, 0xaf, 0x8d, 0xc5, 0x71, 0x87, 0x3f, + 0xac, 0xa3, 0x83, 0x1f, 0x18, 0x63, 0xcb, 0x91, 0xcb, 0xba, 0x83, 0xef, 0x47, 0x5f, 0x50, 0x60, + 0xac, 0x86, 0x1d, 0x77, 0xbc, 0x15, 0x2e, 0x14, 0x1e, 0x54, 0xc3, 0x55, 0x6e, 0xc5, 0x63, 0x82, + 0xad, 0x61, 0xdc, 0x0d, 0x13, 0x6d, 0xdb, 0x6a, 0xe0, 0x4e, 0x87, 0xad, 0x5e, 0xf0, 0x8e, 0x6a, + 0xbd, 0x46, 0x7f, 0xc2, 0xda, 0xec, 0xaa, 0xf7, 0x8f, 0x16, 0xfc, 0x1e, 0xd7, 0x0c, 0xa0, 0x94, + 0x58, 0x05, 0x47, 0x6d, 0x06, 0x44, 0x15, 0x9e, 0x3c, 0xd0, 0x9f, 0x55, 0x60, 0xaa, 0x86, 0x1d, + 0x5f, 0x8a, 0x31, 0x36, 0x39, 0xc2, 0xe1, 0x15, 0xa0, 0x54, 0x0e, 0x06, 0xa5, 0xfc, 0x75, 0x9c, + 0xa2, 0x34, 0x7d, 0x62, 0x23, 0xbc, 0x8e, 0x53, 0x8e, 0x83, 0x11, 0x1c, 0x5f, 0x7b, 0x24, 0x4c, + 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xd5, 0x4c, 0xd0, 0x78, 0xbf, 0x98, 0x50, 0xe3, 0xbd, 0x03, 0xb2, + 0xdb, 0xba, 0x7d, 0xb1, 0x43, 0x1a, 0xee, 0xa4, 0x8c, 0xd9, 0xbe, 0xe2, 0x66, 0xd7, 0xe8, 0x5f, + 0xbd, 0xfd, 0x34, 0xb3, 0xf1, 0xfc, 0x34, 0x1f, 0x4a, 0xc7, 0x1a, 0x09, 0xe9, 0xdc, 0x61, 0x88, + 0x4d, 0x3e, 0xc6, 0xb8, 0x19, 0x51, 0x76, 0xf2, 0xca, 0xf1, 0x02, 0x05, 0xc6, 0xdd, 0x71, 0x9b, + 0xd8, 0xe3, 0xe7, 0x0f, 0xae, 0x0e, 0xbd, 0x0d, 0xfd, 0x98, 0x3d, 0xb0, 0x27, 0x91, 0xe1, 0x99, + 0xf7, 0x31, 0x7a, 0xe0, 0xa8, 0xc2, 0x93, 0xc7, 0xe3, 0x9d, 0x14, 0x0f, 0xd2, 0x1e, 0xd0, 0x1b, + 0x14, 0x50, 0x16, 0xb1, 0x33, 0x6a, 0x2b, 0xf2, 0x6d, 0xd2, 0x21, 0x8e, 0x04, 0x81, 0x11, 0x9e, + 0x67, 0x17, 0xf1, 0x70, 0x1a, 0x90, 0x5c, 0x6c, 0x23, 0x29, 0x06, 0x92, 0x47, 0xed, 0xbd, 0x14, + 0x35, 0xba, 0xb9, 0xf0, 0x8b, 0x43, 0xe8, 0x55, 0x47, 0xbb, 0xf0, 0xe1, 0x09, 0x90, 0xd0, 0x38, + 0xac, 0xf6, 0xd6, 0xab, 0xf0, 0x91, 0x5c, 0x7f, 0x09, 0x6e, 0x63, 0xdf, 0xc2, 0x8d, 0x8b, 0xb8, + 0xc9, 0x5f, 0x27, 0x36, 0x28, 0x74, 0xa7, 0x60, 0xac, 0x41, 0xa9, 0x11, 0xf0, 0xc6, 0x35, 0xef, + 0x35, 0xc6, 0x5d, 0xee, 0x62, 0x47, 0x44, 0x7f, 0x1f, 0xe1, 0x5d, 0xee, 0x12, 0xc5, 0x8f, 0xc0, + 0x6c, 0xa1, 0xb3, 0x8c, 0x72, 0xc3, 0x32, 0xd1, 0x7f, 0x3e, 0x38, 0x2c, 0x57, 0xc1, 0x84, 0xd1, + 0xb0, 0x4c, 0x12, 0x86, 0xc2, 0x3b, 0x04, 0xe4, 0x27, 0x78, 0x5f, 0x4b, 0xdb, 0xd6, 0x7d, 0x06, + 0xdb, 0x35, 0x0f, 0x12, 0x06, 0x35, 0x26, 0x5c, 0xd6, 0x0f, 0xcb, 0x98, 0xe8, 0x51, 0x76, 0xf2, + 0x90, 0x7d, 0x3c, 0xf0, 0x6e, 0xa3, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, 0x90, 0xe1, 0x8c, 0xaf, + 0xc5, 0xa1, 0x0c, 0x67, 0x11, 0x0c, 0x8c, 0xe0, 0xc6, 0x8a, 0x00, 0xc7, 0xc4, 0xd7, 0x80, 0x0f, + 0x80, 0xce, 0xf0, 0xcc, 0xc3, 0x01, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0x83, 0x2c, 0x44, 0x26, 0xb3, + 0x78, 0xd0, 0x7f, 0x19, 0x06, 0x38, 0xb7, 0x0d, 0xe2, 0xaf, 0x40, 0xbd, 0x15, 0x62, 0xdc, 0x42, + 0xbf, 0x4f, 0x82, 0x2e, 0x95, 0xa1, 0x20, 0x28, 0x77, 0x0b, 0xbd, 0x4c, 0xf9, 0xc9, 0x03, 0xf8, + 0x7c, 0x05, 0x66, 0x88, 0x8f, 0x40, 0x0b, 0xeb, 0x36, 0xed, 0x28, 0x87, 0xe2, 0x28, 0xff, 0x4e, + 0xe9, 0x00, 0x3f, 0xa2, 0x1c, 0x02, 0x3e, 0x86, 0x02, 0x85, 0x5c, 0x74, 0x1f, 0x49, 0x16, 0x46, + 0xb2, 0x8d, 0x92, 0xf7, 0x59, 0x60, 0x2a, 0x3e, 0x1c, 0x3c, 0x62, 0x7a, 0xe4, 0x8a, 0xc2, 0xf0, + 0x1a, 0xdb, 0x88, 0x3d, 0x72, 0x65, 0x98, 0x48, 0x1e, 0x93, 0x37, 0xdc, 0xcc, 0x16, 0x9c, 0xeb, + 0xfa, 0x85, 0x16, 0x46, 0xaf, 0xce, 0xf8, 0x27, 0xda, 0x3e, 0x3b, 0x14, 0x0f, 0xcc, 0x03, 0x04, + 0xc4, 0x57, 0x21, 0x63, 0x5b, 0x97, 0xe8, 0xd2, 0xd6, 0xb4, 0x46, 0x9e, 0xe9, 0xf5, 0x94, 0xad, + 0x9d, 0x6d, 0x93, 0x9e, 0x0c, 0x9d, 0xd6, 0xbc, 0x57, 0xf5, 0x3a, 0x98, 0xbe, 0x64, 0x38, 0x5b, + 0x4b, 0x58, 0x6f, 0x62, 0x5b, 0xb3, 0x2e, 0x11, 0x8f, 0xb9, 0x71, 0x4d, 0x4c, 0x14, 0xfd, 0x57, + 0x24, 0xec, 0x4b, 0x57, 0x28, 0xa3, 0x39, 0xfe, 0x16, 0xc7, 0xf2, 0x0c, 0xe7, 0x2a, 0x79, 0x85, + 0x79, 0x9f, 0x02, 0x13, 0x9a, 0x75, 0x89, 0x29, 0xc9, 0xff, 0x71, 0xb8, 0x3a, 0x12, 0x7b, 0xa2, + 0x47, 0x24, 0xe7, 0xb3, 0x3f, 0xf2, 0x89, 0x5e, 0x64, 0xf1, 0x23, 0x39, 0xb9, 0x34, 0xa5, 0x59, + 0x97, 0x6a, 0xd8, 0xa1, 0x2d, 0x02, 0xad, 0x0f, 0xc9, 0xc9, 0xda, 0xe8, 0x50, 0x82, 0x6c, 0x1e, + 0xee, 0xbf, 0xc7, 0xdd, 0x45, 0xf0, 0x05, 0xe4, 0xb3, 0x38, 0xea, 0x5d, 0x84, 0xbe, 0x1c, 0x8c, + 0x20, 0x46, 0x8a, 0x02, 0x93, 0x9a, 0x75, 0xc9, 0x1d, 0x1a, 0x16, 0x8c, 0x56, 0x6b, 0x38, 0x23, + 0x64, 0x5c, 0xe3, 0xdf, 0x13, 0x83, 0xc7, 0xc5, 0xc8, 0x8d, 0xff, 0x3e, 0x0c, 0x24, 0x0f, 0xc3, + 0x73, 0x68, 0x63, 0xf1, 0x46, 0x68, 0x73, 0x38, 0x38, 0x0c, 0xda, 0x20, 0x7c, 0x36, 0x0e, 0xad, + 0x41, 0x84, 0x71, 0x30, 0x92, 0x9d, 0x93, 0x99, 0x22, 0x19, 0xe6, 0x87, 0xdb, 0x26, 0xde, 0x1d, + 0xcf, 0x35, 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x43, 0x41, 0x23, 0x86, 0x0b, 0xa2, 0x04, 0x0f, 0xc9, + 0xe3, 0xf1, 0x11, 0x05, 0xa6, 0x28, 0x0b, 0x0f, 0x13, 0x2b, 0x60, 0xa0, 0x46, 0xc5, 0xd7, 0xe0, + 0x70, 0x1a, 0x55, 0x04, 0x07, 0x23, 0xb9, 0x15, 0xd4, 0xb5, 0xe3, 0x06, 0x38, 0x3e, 0x1e, 0x86, + 0xe0, 0xc0, 0xc6, 0xd8, 0x10, 0x8f, 0x90, 0x0f, 0x62, 0x8c, 0x1d, 0xd2, 0x31, 0xf2, 0xe7, 0xf8, + 0xad, 0x68, 0x98, 0x18, 0x1c, 0xa0, 0x29, 0x0c, 0x11, 0x86, 0x01, 0x9b, 0xc2, 0x21, 0x21, 0xf1, + 0x35, 0x05, 0x80, 0x32, 0xb0, 0x62, 0xed, 0x92, 0xcb, 0x7c, 0x86, 0xd0, 0x9d, 0x75, 0xbb, 0xd5, + 0x2b, 0x7d, 0xdc, 0xea, 0x63, 0x86, 0x70, 0x89, 0xbb, 0x12, 0xc8, 0x49, 0xd9, 0xad, 0xe4, 0xc8, + 0x57, 0x02, 0xa3, 0xcb, 0x4f, 0x1e, 0xe3, 0xaf, 0x50, 0x6b, 0x2e, 0x38, 0x60, 0xfa, 0xdb, 0x43, + 0x41, 0x99, 0x9b, 0xfd, 0x2b, 0xe2, 0xec, 0xff, 0x00, 0xd8, 0x0e, 0x6a, 0x23, 0xf6, 0x3b, 0x38, + 0x9a, 0xbc, 0x8d, 0x78, 0x78, 0x07, 0x44, 0x7f, 0x31, 0x03, 0x47, 0x59, 0x27, 0xf2, 0xe3, 0x00, + 0x71, 0xcc, 0x73, 0x78, 0x42, 0x27, 0xd9, 0x07, 0xe5, 0x61, 0x2d, 0x48, 0xc5, 0x59, 0xca, 0x94, + 0x60, 0x6f, 0x24, 0xab, 0x1b, 0xb9, 0xd2, 0xfd, 0x6d, 0xdd, 0x6c, 0xca, 0x87, 0xfb, 0xed, 0x03, + 0xbc, 0xb7, 0xd6, 0xa8, 0x88, 0x6b, 0x8d, 0x3d, 0x56, 0x26, 0x63, 0xef, 0x5c, 0x13, 0x91, 0x51, + 0x76, 0x47, 0xbe, 0x73, 0x1d, 0x5e, 0x76, 0xf2, 0x28, 0xbd, 0x5b, 0x81, 0x4c, 0xcd, 0xb2, 0x1d, + 0xf4, 0xdc, 0x38, 0xad, 0x93, 0x4a, 0x3e, 0x00, 0xc9, 0x7b, 0x57, 0x8b, 0xc2, 0x2d, 0xcd, 0x67, + 0xa3, 0x8f, 0x3a, 0xeb, 0x8e, 0x4e, 0xbc, 0xba, 0xdd, 0xf2, 0xb9, 0xeb, 0x9a, 0xe3, 0xc6, 0xd3, + 0xa1, 0xf2, 0xab, 0x85, 0x1f, 0xc0, 0x48, 0x2c, 0x9e, 0x4e, 0x68, 0xc9, 0xc9, 0xe3, 0xf6, 0xe0, + 0x51, 0xe6, 0xdb, 0xba, 0x60, 0xb4, 0x30, 0x7a, 0x2e, 0x75, 0x19, 0xa9, 0xe8, 0xdb, 0x58, 0xfe, + 0x48, 0x4c, 0xa4, 0x6b, 0x2b, 0x89, 0x2f, 0xab, 0x04, 0xf1, 0x65, 0xe3, 0x36, 0x28, 0x7a, 0x00, + 0x9d, 0xb2, 0x34, 0xea, 0x06, 0x15, 0x51, 0xf6, 0x48, 0xe2, 0x74, 0x1e, 0xab, 0x61, 0x87, 0x1a, + 0x95, 0x55, 0xef, 0x06, 0x96, 0xa7, 0x0d, 0x25, 0x62, 0xa7, 0x7f, 0xc1, 0x8b, 0xd2, 0x75, 0xc1, + 0xcb, 0xfb, 0x78, 0x70, 0x56, 0x44, 0x70, 0x7e, 0x36, 0x5c, 0x40, 0x22, 0x93, 0x43, 0x81, 0xe9, + 0x6d, 0x3e, 0x4c, 0xab, 0x02, 0x4c, 0xb7, 0x0f, 0xc8, 0x45, 0xf2, 0x80, 0xfd, 0x5a, 0x16, 0x8e, + 0xd2, 0x49, 0x7f, 0xc1, 0x6c, 0xb2, 0x08, 0xab, 0x6f, 0x4e, 0x1f, 0xf2, 0x66, 0xdb, 0xfe, 0x10, + 0xac, 0x42, 0x2c, 0xe7, 0x6c, 0xf7, 0xed, 0xf8, 0x73, 0x34, 0x9c, 0xab, 0xdb, 0x89, 0x92, 0x9d, + 0x36, 0xf9, 0x1b, 0xf2, 0xfd, 0xff, 0xc4, 0xbb, 0x8c, 0xc6, 0xe4, 0xef, 0x32, 0xfa, 0xf3, 0x78, + 0xeb, 0x76, 0xa4, 0xe8, 0x2e, 0x81, 0x27, 0x6c, 0x3b, 0xc5, 0x58, 0xd1, 0x93, 0xe0, 0xee, 0x27, + 0xc3, 0x9d, 0x2c, 0x88, 0x20, 0x32, 0xa0, 0x3b, 0x19, 0x21, 0x70, 0x98, 0xee, 0x64, 0xfd, 0x18, + 0x18, 0xc1, 0xad, 0xf6, 0x59, 0xb6, 0x9b, 0x4f, 0xda, 0x0d, 0xfa, 0x9b, 0x74, 0xe2, 0xa3, 0xf4, + 0x0f, 0x53, 0xb1, 0xfc, 0x9f, 0x09, 0x5f, 0xd1, 0xc3, 0x74, 0x1c, 0x8f, 0xe6, 0x28, 0x72, 0x23, + 0x58, 0x37, 0x4a, 0x13, 0x5f, 0xf4, 0xf3, 0x46, 0xd3, 0xd9, 0x1a, 0xd2, 0x89, 0x8e, 0x4b, 0x2e, + 0x2d, 0xef, 0x7a, 0x64, 0xf2, 0x82, 0xfe, 0x35, 0x15, 0x2b, 0x84, 0x94, 0x2f, 0x12, 0xc2, 0x56, + 0x88, 0x88, 0x63, 0x04, 0x7e, 0x8a, 0xa4, 0x37, 0x42, 0x8d, 0x3e, 0x67, 0x34, 0xb1, 0xf5, 0x30, + 0xd4, 0x68, 0xc2, 0xd7, 0xf0, 0x34, 0x3a, 0x8a, 0xdc, 0x4f, 0xa8, 0x46, 0xfb, 0x22, 0x19, 0x92, + 0x46, 0x47, 0xd2, 0x4b, 0x5e, 0xc6, 0xaf, 0x9c, 0x62, 0x13, 0xa9, 0x65, 0xc3, 0xbc, 0x88, 0xfe, + 0x39, 0xe7, 0x5d, 0xcc, 0x7c, 0xde, 0x70, 0xb6, 0x58, 0x2c, 0x98, 0x3f, 0x90, 0xbe, 0x1b, 0x65, + 0x80, 0x78, 0x2f, 0x62, 0x38, 0xa9, 0xec, 0xbe, 0x70, 0x52, 0x05, 0x98, 0x36, 0x4c, 0x07, 0xdb, + 0xa6, 0xde, 0x5a, 0x68, 0xe9, 0x9b, 0x9d, 0x53, 0x63, 0x3d, 0x2f, 0xaf, 0x2b, 0x73, 0x79, 0x34, + 0xf1, 0x0f, 0xfe, 0xfa, 0xca, 0x71, 0xf1, 0xfa, 0xca, 0x90, 0xe8, 0x57, 0x13, 0xe1, 0xd1, 0xaf, + 0xfc, 0xe8, 0x56, 0xd0, 0x3f, 0x38, 0xb6, 0xac, 0x6d, 0x1c, 0x33, 0xdc, 0xdf, 0x59, 0xc9, 0x28, + 0x6c, 0x7e, 0xe8, 0xc7, 0xd7, 0x28, 0xb1, 0x56, 0xf7, 0x5c, 0x45, 0x98, 0xed, 0x56, 0x82, 0xd8, + 0x16, 0x2a, 0x5f, 0x79, 0xa5, 0xab, 0xf2, 0xbe, 0xc9, 0x93, 0x91, 0x30, 0x79, 0x78, 0xa5, 0xca, + 0xca, 0x29, 0x55, 0x9c, 0xc5, 0x42, 0x99, 0xda, 0x8e, 0xe0, 0x34, 0x52, 0x16, 0x8e, 0x79, 0xd1, + 0x6e, 0xdb, 0x6d, 0xac, 0xdb, 0xba, 0xd9, 0xc0, 0xe8, 0xe3, 0xe9, 0x61, 0x98, 0xbd, 0x0b, 0x30, + 0x6e, 0x34, 0x2c, 0xb3, 0x66, 0x3c, 0xc3, 0xbb, 0x5c, 0x2e, 0x3a, 0xc8, 0x3a, 0x91, 0x48, 0x99, + 0xfd, 0xa1, 0xf9, 0xff, 0xaa, 0x65, 0x98, 0x68, 0xe8, 0x76, 0x93, 0x06, 0xe1, 0xcb, 0x76, 0x5d, + 0xe4, 0x14, 0x4a, 0xa8, 0xe8, 0xfd, 0xa2, 0x05, 0x7f, 0xab, 0x55, 0x51, 0x88, 0xb9, 0xae, 0x68, + 0x1e, 0xa1, 0xc4, 0xe6, 0x83, 0x9f, 0x04, 0x99, 0xbb, 0xd2, 0xb1, 0x71, 0x8b, 0xdc, 0x41, 0x4f, + 0x7b, 0x88, 0x09, 0x2d, 0x48, 0x88, 0xbb, 0x3c, 0x40, 0x8a, 0xda, 0x87, 0xc6, 0xa8, 0x97, 0x07, + 0xa4, 0xb8, 0x48, 0x5e, 0x33, 0xdf, 0x91, 0x83, 0x69, 0xda, 0xab, 0x31, 0x71, 0xa2, 0xe7, 0x93, + 0x2b, 0xa4, 0x9d, 0x7b, 0xf0, 0x1e, 0xaa, 0x1d, 0x7c, 0x4c, 0xce, 0x83, 0x72, 0xd1, 0x0f, 0x38, + 0xe8, 0x3e, 0xc6, 0xdd, 0xb7, 0xf7, 0xf8, 0x9a, 0xa5, 0x3c, 0x8d, 0x7a, 0xdf, 0x3e, 0xba, 0xf8, + 0xe4, 0xf1, 0xf9, 0x75, 0x05, 0x94, 0x42, 0xb3, 0x89, 0x1a, 0x07, 0x87, 0xe2, 0x1a, 0x98, 0xf4, + 0xda, 0x4c, 0x10, 0x03, 0x92, 0x4f, 0x8a, 0xbb, 0x08, 0xea, 0xcb, 0xa6, 0xd0, 0x1c, 0xf9, 0xae, + 0x42, 0x44, 0xd9, 0xc9, 0x83, 0xf2, 0xdb, 0x63, 0xac, 0xd1, 0xcc, 0x59, 0xd6, 0x45, 0x72, 0x54, + 0xe6, 0xb9, 0x0a, 0x64, 0x17, 0xb0, 0xd3, 0xd8, 0x1a, 0x52, 0x9b, 0xd9, 0xb1, 0x5b, 0x5e, 0x9b, + 0xd9, 0x77, 0x1f, 0x7e, 0x7f, 0x1b, 0xd6, 0x63, 0x6b, 0x96, 0xb0, 0x34, 0xea, 0xe8, 0xce, 0x91, + 0xa5, 0x27, 0x0f, 0xce, 0xbf, 0x2a, 0x30, 0xe3, 0xaf, 0x70, 0x51, 0x4c, 0x7e, 0x2d, 0xf5, 0x70, + 0x5b, 0xef, 0x44, 0x9f, 0x8f, 0x17, 0x22, 0xcd, 0x97, 0xa9, 0x58, 0xb3, 0x84, 0x17, 0x16, 0x63, + 0x04, 0x4f, 0x93, 0x63, 0x70, 0x04, 0x33, 0x78, 0x05, 0xc6, 0x09, 0x43, 0xf3, 0xc6, 0x2e, 0x71, + 0x1d, 0x14, 0x16, 0x1a, 0x9f, 0x39, 0x94, 0x85, 0xc6, 0xdb, 0xc5, 0x85, 0x46, 0xc9, 0x88, 0xc7, + 0xde, 0x3a, 0x63, 0x4c, 0x5f, 0x1a, 0xf7, 0xff, 0xa1, 0x2f, 0x33, 0xc6, 0xf0, 0xa5, 0xe9, 0x53, + 0x7e, 0xf2, 0x88, 0xbe, 0xe6, 0x3f, 0xb1, 0xce, 0xd6, 0xdb, 0x50, 0x45, 0xff, 0xd7, 0x31, 0xc8, + 0x9c, 0x73, 0x1f, 0xfe, 0x67, 0x70, 0x23, 0xd6, 0x4b, 0x87, 0x10, 0x9c, 0xe1, 0xc9, 0x90, 0x71, + 0xe9, 0xb3, 0x69, 0xcb, 0x8d, 0x72, 0xbb, 0xbb, 0x2e, 0x23, 0x1a, 0xf9, 0x4f, 0x3d, 0x09, 0xb9, + 0x8e, 0xb5, 0x63, 0x37, 0x5c, 0xf3, 0xd9, 0xd5, 0x18, 0xf6, 0x16, 0x37, 0x28, 0xa9, 0x40, 0x7a, + 0x76, 0x78, 0x2e, 0xa3, 0xdc, 0x05, 0x49, 0x8a, 0x70, 0x41, 0x52, 0x8c, 0xfd, 0x03, 0x09, 0xde, + 0x92, 0xd7, 0x88, 0xbf, 0x21, 0x77, 0x05, 0x36, 0x87, 0x05, 0x7b, 0x88, 0x58, 0x0e, 0xaa, 0x0e, + 0x71, 0x1d, 0xbe, 0x45, 0xd1, 0xfa, 0x71, 0xe0, 0x47, 0xea, 0xf0, 0x2d, 0xc1, 0xc3, 0x48, 0x4e, + 0xa9, 0xe7, 0x98, 0x93, 0xea, 0xbd, 0xc3, 0x44, 0x37, 0x23, 0x28, 0xfd, 0x81, 0xd0, 0x19, 0xa2, + 0xf3, 0xea, 0xc0, 0xe8, 0x1c, 0x92, 0xfb, 0xea, 0x1f, 0x29, 0x24, 0x12, 0xa6, 0x67, 0xe4, 0xc8, + 0x5f, 0x74, 0x14, 0x1b, 0x22, 0x77, 0x0c, 0x16, 0xe2, 0x40, 0x4f, 0x0f, 0x1e, 0x1a, 0x5c, 0x14, + 0x1d, 0xc7, 0xff, 0xa8, 0x43, 0x83, 0xcb, 0x32, 0x92, 0x3c, 0x90, 0xaf, 0xa7, 0x17, 0x8b, 0x15, + 0x1a, 0x8e, 0xb1, 0x3b, 0xe4, 0x96, 0x26, 0x0e, 0x2f, 0x31, 0xa3, 0x01, 0xef, 0x93, 0x10, 0xe5, + 0x70, 0xd4, 0xd1, 0x80, 0xe5, 0xd8, 0x48, 0x1e, 0xa6, 0xbf, 0xcb, 0xb9, 0xd2, 0x63, 0x6b, 0x33, + 0x6f, 0x60, 0xab, 0x01, 0xf8, 0xe0, 0x68, 0x9d, 0x81, 0x29, 0x6e, 0xea, 0xef, 0x5d, 0x58, 0x23, + 0xa4, 0xc5, 0x3d, 0xe8, 0xee, 0x8b, 0x6c, 0xe8, 0x0b, 0x03, 0x31, 0x16, 0x7c, 0x65, 0x98, 0x18, + 0xc9, 0x7d, 0x70, 0xde, 0x18, 0x36, 0x22, 0xac, 0xfe, 0x80, 0xc7, 0xaa, 0x2a, 0x62, 0x75, 0xab, + 0x8c, 0x98, 0xe4, 0xc6, 0x34, 0xa9, 0x79, 0xe3, 0xdb, 0x7d, 0xb8, 0x34, 0x01, 0xae, 0x27, 0x0f, + 0xcc, 0x47, 0xf2, 0x88, 0xbd, 0x8c, 0x76, 0x87, 0x35, 0x6a, 0xb2, 0x0f, 0xa7, 0x3b, 0x64, 0xb3, + 0x01, 0x45, 0x98, 0x0d, 0xc4, 0xf4, 0xb7, 0x0f, 0xdc, 0x48, 0x3d, 0xe6, 0xfa, 0x41, 0x94, 0x19, + 0xb2, 0xbf, 0x7d, 0x5f, 0x0e, 0x92, 0x07, 0xe7, 0x7b, 0x0a, 0xc0, 0xa2, 0x6d, 0xed, 0xb4, 0xab, + 0x76, 0x13, 0xdb, 0xe8, 0xeb, 0xc1, 0x04, 0xe0, 0xc5, 0x43, 0x98, 0x00, 0xac, 0x02, 0x6c, 0xfa, + 0xc4, 0x99, 0x86, 0xdf, 0x2c, 0x67, 0xee, 0x07, 0x4c, 0x69, 0x1c, 0x0d, 0xf1, 0xca, 0xd9, 0xa7, + 0x88, 0x18, 0x47, 0xf5, 0x59, 0x01, 0xb9, 0x61, 0x4e, 0x00, 0xde, 0xe9, 0x63, 0x5d, 0x17, 0xb0, + 0xbe, 0xeb, 0x00, 0x9c, 0x24, 0x8f, 0xf9, 0x3f, 0x8d, 0xc1, 0x24, 0xdd, 0xae, 0xa3, 0x32, 0xfd, + 0x87, 0x00, 0xf4, 0xdf, 0x1e, 0x02, 0xe8, 0x6b, 0x30, 0x65, 0x05, 0xd4, 0x69, 0x9f, 0xca, 0x2f, + 0xc0, 0x44, 0xc2, 0xce, 0xf1, 0xa5, 0x09, 0x64, 0xd0, 0x47, 0x79, 0xe4, 0x35, 0x11, 0xf9, 0xdb, + 0x23, 0xe4, 0xcd, 0x51, 0x1c, 0x26, 0xf4, 0xef, 0xf2, 0xa1, 0x5f, 0x13, 0xa0, 0x2f, 0x1c, 0x84, + 0x95, 0x11, 0x84, 0xdb, 0x57, 0x20, 0x43, 0x4e, 0xc7, 0xfd, 0x4e, 0x82, 0xf3, 0xfb, 0x53, 0x30, + 0x46, 0x9a, 0xac, 0x3f, 0xef, 0xf0, 0x5e, 0xdd, 0x2f, 0xfa, 0x86, 0x83, 0x6d, 0xdf, 0x63, 0xc1, + 0x7b, 0x75, 0x79, 0xf0, 0xbc, 0x92, 0x3b, 0xa7, 0x72, 0x74, 0x23, 0xd2, 0x4f, 0x18, 0x78, 0x52, + 0xc2, 0x4b, 0x7c, 0x68, 0xe7, 0xe5, 0x06, 0x99, 0x94, 0xf4, 0x61, 0x24, 0x79, 0xe0, 0xbf, 0x94, + 0x81, 0x53, 0x74, 0x55, 0x69, 0xc1, 0xb6, 0xb6, 0xbb, 0x6e, 0xb7, 0x32, 0x0e, 0xae, 0x0b, 0xd7, + 0xc3, 0x8c, 0x23, 0xf8, 0x63, 0x33, 0x9d, 0xe8, 0x4a, 0x45, 0x7f, 0xc1, 0xfb, 0x54, 0x3c, 0x55, + 0x44, 0x72, 0x2e, 0x42, 0x80, 0x61, 0xbc, 0xc7, 0x5e, 0xa8, 0x97, 0x64, 0x94, 0x5b, 0xa4, 0x52, + 0x06, 0x5a, 0xb3, 0xf4, 0x75, 0x2a, 0x2b, 0xa3, 0x53, 0xef, 0xf7, 0x75, 0xea, 0xe7, 0x05, 0x9d, + 0x5a, 0x3c, 0xb8, 0x48, 0x92, 0xd7, 0xad, 0x57, 0xfb, 0x1b, 0x43, 0xfe, 0xb6, 0xdd, 0x76, 0x02, + 0x9b, 0x75, 0xbc, 0x3f, 0x52, 0x46, 0xf0, 0x47, 0x12, 0xef, 0xa3, 0x88, 0x31, 0x13, 0x16, 0xb9, + 0x0e, 0xd1, 0xa5, 0x19, 0x48, 0x1b, 0x1e, 0x77, 0x69, 0xa3, 0x39, 0xd0, 0x5c, 0x37, 0xb2, 0xa0, + 0x11, 0xac, 0x2d, 0xcd, 0x40, 0x6e, 0xc1, 0x68, 0x39, 0xd8, 0x46, 0x5f, 0x61, 0x33, 0xdd, 0x57, + 0x27, 0x38, 0x00, 0xcc, 0x43, 0x6e, 0x83, 0x94, 0xc6, 0x4c, 0xe6, 0x9b, 0xe4, 0x5a, 0x0f, 0xe5, + 0x50, 0x63, 0xff, 0xc6, 0x8d, 0xce, 0xd7, 0x45, 0x66, 0x68, 0x53, 0xe4, 0x18, 0xd1, 0xf9, 0xfa, + 0xb3, 0x30, 0x92, 0x8b, 0xa9, 0x72, 0x1a, 0xde, 0x76, 0xc7, 0xf8, 0x8b, 0xc9, 0x21, 0x9c, 0x07, + 0xc5, 0x68, 0x76, 0x48, 0xe7, 0x38, 0xa1, 0xb9, 0x8f, 0x71, 0x7d, 0x85, 0xba, 0x45, 0x45, 0x59, + 0x1e, 0xb5, 0xaf, 0x90, 0x14, 0x17, 0xc9, 0x63, 0xf6, 0x43, 0xe2, 0x28, 0xda, 0x6e, 0xe9, 0x0d, + 0xec, 0x72, 0x9f, 0x18, 0x6a, 0xb4, 0x27, 0xcb, 0x78, 0x3d, 0x19, 0xd7, 0x4e, 0xb3, 0x07, 0x68, + 0xa7, 0x83, 0x2e, 0x43, 0xfa, 0x32, 0x27, 0x15, 0x3f, 0xb4, 0x65, 0xc8, 0x48, 0x36, 0x46, 0x70, + 0xed, 0xa8, 0x77, 0x90, 0x76, 0xa4, 0xad, 0x75, 0xd0, 0x4d, 0x1a, 0x26, 0xac, 0xa1, 0x1d, 0x9a, + 0x1d, 0x64, 0x93, 0x26, 0x9c, 0x87, 0x11, 0xa0, 0x35, 0xc3, 0xd0, 0xfa, 0x1c, 0x1b, 0x46, 0x13, + 0xde, 0x27, 0xed, 0x58, 0xb6, 0x13, 0x6f, 0x9f, 0xd4, 0xe5, 0x4e, 0x23, 0xff, 0xc5, 0x3d, 0x78, + 0x25, 0x9e, 0xab, 0x1e, 0xd6, 0xf0, 0x19, 0xe3, 0xe0, 0x55, 0x3f, 0x06, 0x92, 0x87, 0xf7, 0x2d, + 0x87, 0x34, 0x78, 0x0e, 0xda, 0x1c, 0x59, 0x1b, 0x18, 0xda, 0xd0, 0x39, 0x48, 0x73, 0x0c, 0xe7, + 0x21, 0x79, 0xbc, 0xbe, 0xcb, 0x0d, 0x9c, 0x6f, 0x1a, 0xe1, 0xc0, 0xe9, 0xb5, 0xcc, 0xec, 0x80, + 0x2d, 0x73, 0xd0, 0xfd, 0x1f, 0x26, 0xeb, 0xe1, 0x0d, 0x98, 0x83, 0xec, 0xff, 0x44, 0x30, 0x91, + 0x3c, 0xe2, 0x6f, 0x56, 0x20, 0x5b, 0x1b, 0xfd, 0x78, 0x39, 0xe8, 0x5c, 0x84, 0xc8, 0xaa, 0x36, + 0xb4, 0xe1, 0x72, 0x90, 0xb9, 0x48, 0x28, 0x0b, 0x23, 0x08, 0xbc, 0x7f, 0x14, 0xa6, 0xc8, 0x92, + 0x88, 0xb7, 0xcd, 0xfa, 0x5d, 0x36, 0x6a, 0x3e, 0x94, 0x60, 0x5b, 0xbd, 0x1b, 0xc6, 0xbd, 0xfd, + 0x3b, 0x36, 0x72, 0xce, 0xca, 0xb5, 0x4f, 0x8f, 0x4b, 0xcd, 0xff, 0xff, 0x40, 0xce, 0x10, 0x43, + 0xdf, 0xab, 0x1d, 0xd4, 0x19, 0xe2, 0x50, 0xf7, 0x6b, 0xff, 0x3c, 0x18, 0x51, 0xff, 0x73, 0x72, + 0x98, 0x77, 0xef, 0xe3, 0x66, 0x7a, 0xec, 0xe3, 0x7e, 0x9c, 0xc7, 0xb2, 0x26, 0x62, 0x79, 0x87, + 0xac, 0x08, 0x87, 0x38, 0xd6, 0xbe, 0xdb, 0x87, 0xf3, 0x9c, 0x00, 0xe7, 0xdc, 0x81, 0x78, 0x19, + 0xc1, 0xc1, 0xc7, 0x4c, 0x30, 0xe6, 0x7e, 0x22, 0xc1, 0x76, 0xdc, 0x75, 0xaa, 0x22, 0xb3, 0xef, + 0x54, 0x85, 0xd0, 0xd2, 0xb3, 0x07, 0x6c, 0xe9, 0x9f, 0xe0, 0xb5, 0xa3, 0x2e, 0x6a, 0xc7, 0x93, + 0xe5, 0x11, 0x19, 0xde, 0xc8, 0xfc, 0x1e, 0x5f, 0x3d, 0xce, 0x0b, 0xea, 0x51, 0x3c, 0x18, 0x33, + 0xc9, 0xeb, 0xc7, 0x1f, 0x7b, 0x13, 0xda, 0x43, 0x6e, 0xef, 0x83, 0x6e, 0x15, 0x0b, 0x42, 0x1c, + 0xda, 0xc8, 0x3d, 0xc8, 0x56, 0x71, 0x3f, 0x4e, 0x46, 0x10, 0x8b, 0x6d, 0x1a, 0x26, 0x09, 0x4f, + 0xe7, 0x8d, 0xe6, 0x26, 0x76, 0xd0, 0x6b, 0xa8, 0x8f, 0xa2, 0x17, 0xf9, 0x72, 0x48, 0xe1, 0x89, + 0xc2, 0xce, 0xbb, 0xc6, 0xf5, 0xe8, 0xa0, 0x4c, 0xce, 0x72, 0x0c, 0x8e, 0x3a, 0x82, 0x62, 0x5f, + 0x0e, 0x92, 0x87, 0xec, 0xa3, 0xd4, 0xdd, 0x66, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xf4, 0xc0, 0x10, + 0x3a, 0xe8, 0x39, 0xc8, 0xb5, 0x08, 0x35, 0x76, 0x2c, 0x23, 0x7a, 0xba, 0xc3, 0x44, 0x40, 0xcb, + 0xd7, 0xd8, 0x9f, 0x71, 0xcf, 0x66, 0x04, 0x72, 0xa4, 0x74, 0x46, 0x7d, 0x36, 0xa3, 0x4f, 0xf9, + 0x23, 0xb9, 0x63, 0x67, 0xdc, 0x2d, 0xdd, 0xd8, 0x36, 0x9c, 0x21, 0x45, 0x70, 0x68, 0xb9, 0xb4, + 0xbc, 0x08, 0x0e, 0xe4, 0x25, 0xee, 0x89, 0x51, 0x4e, 0x2a, 0xee, 0xef, 0xa3, 0x3e, 0x31, 0x1a, + 0x5d, 0x7c, 0xf2, 0x98, 0xfc, 0x26, 0x6d, 0x59, 0xe7, 0xa8, 0xf3, 0x6d, 0x82, 0x7e, 0xbd, 0x03, + 0x37, 0x16, 0xca, 0xda, 0xe1, 0x35, 0x96, 0x9e, 0xe5, 0x27, 0x0f, 0xcc, 0x7f, 0xfb, 0x69, 0xc8, + 0xce, 0xe3, 0x0b, 0x3b, 0x9b, 0xe8, 0x76, 0x18, 0xaf, 0xdb, 0x18, 0x97, 0xcd, 0x0d, 0xcb, 0x95, + 0xae, 0xe3, 0x3e, 0x7b, 0x90, 0xb0, 0x37, 0x17, 0x8f, 0x2d, 0xac, 0x37, 0x83, 0xf3, 0x67, 0xde, + 0x2b, 0x7a, 0x69, 0x1a, 0x32, 0x35, 0x47, 0x77, 0xd0, 0x84, 0x8f, 0x2d, 0x7a, 0x80, 0xc7, 0xe2, + 0x76, 0x11, 0x8b, 0xeb, 0x05, 0x59, 0x10, 0x0e, 0x66, 0xdd, 0xff, 0x43, 0x00, 0x40, 0x30, 0x7e, + 0x5f, 0xc7, 0x32, 0xdd, 0x1c, 0xde, 0x11, 0x48, 0xef, 0x1d, 0xbd, 0xca, 0x17, 0xf7, 0x9d, 0x82, + 0xb8, 0x1f, 0x2d, 0x57, 0xc4, 0x08, 0x56, 0xda, 0xd2, 0x30, 0xe1, 0x8a, 0x76, 0x09, 0xeb, 0xcd, + 0x0e, 0xfa, 0xa9, 0x40, 0xf9, 0x43, 0xc4, 0x8c, 0x3e, 0x28, 0x1d, 0x8c, 0x93, 0xd6, 0xca, 0x27, + 0x1e, 0xee, 0xd1, 0xe1, 0x6d, 0xfe, 0xa7, 0xc5, 0x60, 0x24, 0x67, 0x21, 0x63, 0x98, 0x1b, 0x16, + 0xf3, 0x2f, 0xbc, 0x32, 0x84, 0xb6, 0xab, 0x13, 0x1a, 0xc9, 0x28, 0x19, 0xa9, 0x33, 0x9a, 0xad, + 0x91, 0x5c, 0x7a, 0x97, 0x71, 0x4b, 0x47, 0xff, 0x7b, 0x5f, 0x61, 0xab, 0x2a, 0x64, 0xda, 0xba, + 0xb3, 0xc5, 0x8a, 0x26, 0xcf, 0xae, 0x8d, 0xbc, 0x63, 0xea, 0xa6, 0x65, 0xee, 0x6d, 0x1b, 0xcf, + 0xf0, 0xef, 0xd6, 0x15, 0xd2, 0x5c, 0xce, 0x37, 0xb1, 0x89, 0x6d, 0xdd, 0xc1, 0xb5, 0xdd, 0x4d, + 0x32, 0xc7, 0x1a, 0xd7, 0xf8, 0xa4, 0xd8, 0xfa, 0xef, 0x72, 0x1c, 0xae, 0xff, 0x1b, 0x46, 0x0b, + 0x93, 0x48, 0x4d, 0x4c, 0xff, 0xbd, 0xf7, 0x58, 0xfa, 0xdf, 0xa3, 0x88, 0xe4, 0xd1, 0xf8, 0xb7, + 0x34, 0x4c, 0xd5, 0x5c, 0x85, 0xab, 0xed, 0x6c, 0x6f, 0xeb, 0xf6, 0x1e, 0xba, 0x36, 0x40, 0x85, + 0x53, 0xcd, 0x94, 0xe8, 0x97, 0xf2, 0x47, 0xd2, 0xd7, 0x4a, 0xb3, 0xa6, 0xcd, 0x95, 0x10, 0xbb, + 0x1d, 0x3c, 0x16, 0xb2, 0xae, 0x7a, 0x7b, 0x1e, 0x97, 0x91, 0x0d, 0x81, 0xe6, 0x94, 0x8c, 0x68, + 0xd5, 0x97, 0xb7, 0x11, 0x44, 0xd3, 0x48, 0xc3, 0xd1, 0x9a, 0xa3, 0x37, 0x2e, 0x2e, 0x5a, 0xb6, + 0xb5, 0xe3, 0x18, 0x26, 0xee, 0xa0, 0x47, 0x04, 0x08, 0x78, 0xfa, 0x9f, 0x0a, 0xf4, 0x1f, 0xfd, + 0x7b, 0x4a, 0x76, 0x14, 0xf5, 0xbb, 0x55, 0x9e, 0x7c, 0x48, 0x80, 0x2a, 0xb9, 0x71, 0x51, 0x86, + 0x62, 0xf2, 0x42, 0x7b, 0x93, 0x02, 0xf9, 0xd2, 0xfd, 0x6d, 0xcb, 0x76, 0x96, 0xad, 0x86, 0xde, + 0xea, 0x38, 0x96, 0x8d, 0x51, 0x35, 0x52, 0x6a, 0x6e, 0x0f, 0xd3, 0xb4, 0x1a, 0xc1, 0xe0, 0xc8, + 0xde, 0x78, 0xb5, 0x53, 0x44, 0x1d, 0xff, 0xa8, 0xf4, 0x2e, 0x23, 0x95, 0x4a, 0x37, 0x47, 0x21, + 0x7a, 0xde, 0xab, 0x4b, 0x8b, 0x77, 0x58, 0x42, 0x6e, 0xe7, 0x51, 0x8a, 0xa9, 0x11, 0x2c, 0x95, + 0xa7, 0x61, 0xba, 0xb6, 0x73, 0xc1, 0x27, 0xd2, 0xe1, 0x8d, 0x90, 0xd7, 0x4a, 0x47, 0xa9, 0x60, + 0x8a, 0xc7, 0x13, 0x0a, 0x91, 0xef, 0x75, 0x30, 0xdd, 0xe1, 0xb3, 0x31, 0xbc, 0xc5, 0x44, 0xc9, + 0xe8, 0x14, 0xfd, 0x4b, 0x4d, 0x5e, 0x80, 0xef, 0x49, 0xc3, 0x74, 0xb5, 0x8d, 0x4d, 0xdc, 0xa4, + 0x5e, 0x90, 0x82, 0x00, 0x5f, 0x1a, 0x53, 0x80, 0x02, 0xa1, 0x10, 0x01, 0x06, 0x1e, 0xcb, 0xf3, + 0x9e, 0xf0, 0x82, 0x84, 0x58, 0x82, 0x8b, 0x2a, 0x2d, 0x79, 0xc1, 0x7d, 0x39, 0x0d, 0x93, 0xda, + 0x8e, 0xb9, 0x6a, 0x5b, 0xee, 0x68, 0x6c, 0xa3, 0x3b, 0x82, 0x0e, 0xe2, 0x26, 0x38, 0xd6, 0xdc, + 0xb1, 0xc9, 0xfa, 0x53, 0xd9, 0xac, 0xe1, 0x86, 0x65, 0x36, 0x3b, 0xa4, 0x1e, 0x59, 0x6d, 0xff, + 0x87, 0xdb, 0x32, 0xcf, 0xfd, 0x96, 0x92, 0x42, 0xcf, 0x97, 0x0e, 0x75, 0x43, 0x2b, 0xcf, 0x15, + 0x2d, 0xdf, 0x13, 0x48, 0x06, 0xb4, 0xe9, 0x57, 0x42, 0xf2, 0xc2, 0xfd, 0x5c, 0x1a, 0xd4, 0x42, + 0xa3, 0x61, 0xed, 0x98, 0x4e, 0x0d, 0xb7, 0x70, 0xc3, 0xa9, 0xdb, 0x7a, 0x03, 0xf3, 0xf6, 0x73, + 0x1e, 0x94, 0xa6, 0x61, 0xb3, 0x3e, 0xd8, 0x7d, 0x64, 0x72, 0x7c, 0xa9, 0xf4, 0x8e, 0x23, 0xad, + 0xe5, 0xfe, 0x52, 0x62, 0x88, 0x53, 0x6e, 0x5f, 0x51, 0xb2, 0xa0, 0xe4, 0xa5, 0xfa, 0x89, 0x34, + 0x4c, 0x78, 0x3d, 0xf6, 0xa6, 0x8c, 0x30, 0x7f, 0x33, 0xe6, 0x64, 0xc4, 0x27, 0x1e, 0x43, 0x86, + 0xef, 0x88, 0x31, 0xab, 0x08, 0xa3, 0x1f, 0x4f, 0x74, 0x85, 0xf8, 0xa2, 0x73, 0x5f, 0x2b, 0xd5, + 0xf5, 0x85, 0xea, 0xf2, 0x7c, 0x49, 0xcb, 0x2b, 0xe8, 0x2b, 0x69, 0xc8, 0xac, 0x1a, 0xe6, 0x26, + 0x1f, 0x5d, 0xe9, 0xb8, 0x6b, 0x47, 0x36, 0xf1, 0xfd, 0xac, 0xa5, 0xd3, 0x17, 0xf5, 0x16, 0x38, + 0x6e, 0xee, 0x6c, 0x5f, 0xc0, 0x76, 0x75, 0x83, 0x8c, 0xb2, 0x9d, 0xba, 0x55, 0xc3, 0x26, 0x35, + 0x42, 0xb3, 0x5a, 0xcf, 0x6f, 0xa2, 0x09, 0x26, 0x31, 0x79, 0x70, 0x39, 0x09, 0x91, 0xb8, 0xcf, + 0x54, 0x9a, 0x63, 0x2a, 0xd6, 0xb4, 0xa1, 0x07, 0xf1, 0xe4, 0x35, 0xf5, 0x4f, 0xb2, 0x70, 0xa2, + 0x60, 0xee, 0x11, 0x9b, 0x82, 0x76, 0xf0, 0xc5, 0x2d, 0xdd, 0xdc, 0xc4, 0x64, 0x80, 0xf0, 0x25, + 0xce, 0x87, 0xe8, 0x4f, 0x89, 0x21, 0xfa, 0x55, 0x0d, 0xc6, 0x2c, 0xbb, 0x89, 0xed, 0xb9, 0x3d, + 0xc2, 0x53, 0xf7, 0xb2, 0x33, 0x6b, 0x93, 0xbd, 0x8a, 0x98, 0x65, 0xe4, 0x67, 0xab, 0xf4, 0x7f, + 0xcd, 0x23, 0x74, 0xe6, 0x26, 0x18, 0x63, 0x69, 0xea, 0x14, 0x8c, 0x57, 0xb5, 0xf9, 0x92, 0xb6, + 0x5e, 0x9e, 0xcf, 0x1f, 0x51, 0x2f, 0x83, 0xa3, 0xe5, 0x7a, 0x49, 0x2b, 0xd4, 0xcb, 0xd5, 0xca, + 0x3a, 0x49, 0xcf, 0xa7, 0xd0, 0x73, 0x32, 0xb2, 0x9e, 0xbd, 0xd1, 0xcc, 0xf4, 0x82, 0x55, 0x83, + 0xb1, 0x06, 0xcd, 0x40, 0x86, 0xd0, 0xc9, 0x58, 0xb5, 0x63, 0x04, 0x69, 0x82, 0xe6, 0x11, 0x52, + 0x4f, 0x03, 0x5c, 0xb2, 0x2d, 0x73, 0x33, 0x38, 0x75, 0x38, 0xae, 0x71, 0x29, 0xe8, 0x81, 0x14, + 0xe4, 0xe8, 0x3f, 0xe4, 0x4a, 0x12, 0xf2, 0x14, 0x08, 0xde, 0x7b, 0x77, 0x2d, 0x5e, 0x22, 0xaf, + 0x60, 0xa2, 0xc5, 0x5e, 0x5d, 0x5d, 0xa4, 0x32, 0xa0, 0x96, 0x30, 0xab, 0xca, 0x59, 0xc8, 0xd1, + 0x7f, 0x99, 0xd7, 0x41, 0x78, 0x78, 0x51, 0x9a, 0x4d, 0xd2, 0x4f, 0x59, 0x5e, 0xa6, 0xc9, 0x6b, + 0xf3, 0x87, 0xd2, 0x30, 0x5e, 0xc1, 0x4e, 0x71, 0x0b, 0x37, 0x2e, 0xa2, 0x47, 0x89, 0x0b, 0xa0, + 0x2d, 0x03, 0x9b, 0xce, 0xbd, 0xdb, 0x2d, 0x7f, 0x01, 0xd4, 0x4b, 0x40, 0xcf, 0xe3, 0x3b, 0xdf, + 0xbb, 0x44, 0xfd, 0xb9, 0xb1, 0x47, 0x5d, 0xbd, 0x12, 0x42, 0x54, 0xe6, 0x24, 0xe4, 0x6c, 0xdc, + 0xd9, 0x69, 0x79, 0x8b, 0x68, 0xec, 0x0d, 0x3d, 0xe8, 0x8b, 0xb3, 0x28, 0x88, 0xf3, 0xac, 0x7c, + 0x11, 0x23, 0x88, 0x57, 0x9a, 0x81, 0xb1, 0xb2, 0x69, 0x38, 0x86, 0xde, 0x42, 0xcf, 0xcf, 0xc0, + 0x74, 0x0d, 0x3b, 0xab, 0xba, 0xad, 0x6f, 0x63, 0x07, 0xdb, 0x1d, 0xf4, 0x03, 0xb1, 0x4f, 0x68, + 0xb7, 0x74, 0x67, 0xc3, 0xb2, 0xb7, 0x3d, 0xd5, 0xf4, 0xde, 0x5d, 0xd5, 0xdc, 0xc5, 0x76, 0x27, + 0xe0, 0xcb, 0x7b, 0x75, 0xbf, 0x5c, 0xb2, 0xec, 0x8b, 0xee, 0x20, 0xc8, 0xa6, 0x69, 0xec, 0xd5, + 0xa5, 0xd7, 0xb2, 0x36, 0x97, 0xf1, 0x2e, 0xf6, 0xc2, 0xa5, 0xf9, 0xef, 0xee, 0x5c, 0xa0, 0x69, + 0x55, 0x2c, 0xc7, 0xed, 0xb4, 0x97, 0xad, 0x4d, 0x1a, 0x2f, 0x76, 0x5c, 0x13, 0x13, 0x83, 0x5c, + 0xfa, 0x2e, 0x26, 0xb9, 0x72, 0x7c, 0x2e, 0x96, 0xa8, 0xce, 0x82, 0xea, 0xff, 0x56, 0xc7, 0x2d, + 0xbc, 0x8d, 0x1d, 0x7b, 0x8f, 0x5c, 0x0b, 0x31, 0xae, 0xf5, 0xf8, 0xc2, 0x06, 0x68, 0xf9, 0xc9, + 0x3a, 0x93, 0xde, 0xac, 0x20, 0xb9, 0x03, 0x4d, 0xd6, 0x65, 0x28, 0x8e, 0xe4, 0xda, 0x2b, 0xc5, + 0xb5, 0x66, 0x5e, 0xae, 0x40, 0x86, 0x0c, 0x9e, 0x6f, 0x4e, 0x09, 0x2b, 0x4c, 0xdb, 0xb8, 0xd3, + 0xd1, 0x37, 0xb1, 0xb7, 0xc2, 0xc4, 0x5e, 0xd5, 0x5b, 0x21, 0xdb, 0x22, 0x98, 0xd2, 0xc1, 0xe1, + 0x5a, 0xa1, 0x66, 0xae, 0x81, 0xe1, 0xd2, 0xf2, 0x47, 0x02, 0x02, 0xb7, 0x46, 0xff, 0x38, 0x73, + 0x37, 0x64, 0x29, 0xfc, 0x13, 0x90, 0x9d, 0x2f, 0xcd, 0xad, 0x2d, 0xe6, 0x8f, 0xb8, 0x8f, 0x1e, + 0x7f, 0x13, 0x90, 0x5d, 0x28, 0xd4, 0x0b, 0xcb, 0xf9, 0xb4, 0x5b, 0x8f, 0x72, 0x65, 0xa1, 0x9a, + 0x57, 0xdc, 0xc4, 0xd5, 0x42, 0xa5, 0x5c, 0xcc, 0x67, 0xd4, 0x49, 0x18, 0x3b, 0x5f, 0xd0, 0x2a, + 0xe5, 0xca, 0x62, 0x3e, 0x8b, 0xfe, 0x8e, 0xc7, 0xef, 0x36, 0x11, 0xbf, 0xeb, 0xc2, 0x78, 0xea, + 0x05, 0xd9, 0x2b, 0x7c, 0xc8, 0xee, 0x10, 0x20, 0xfb, 0x69, 0x19, 0x22, 0x23, 0x70, 0x67, 0xca, + 0xc1, 0xd8, 0xaa, 0x6d, 0x35, 0x70, 0xa7, 0x83, 0x7e, 0x2b, 0x0d, 0xb9, 0xa2, 0x6e, 0x36, 0x70, + 0x0b, 0x5d, 0x11, 0x40, 0x45, 0x5d, 0x45, 0x53, 0xfe, 0x69, 0xb1, 0xef, 0xa5, 0x64, 0x7b, 0x3f, + 0x46, 0x77, 0x96, 0xd2, 0x0c, 0x91, 0x8f, 0x5c, 0x2f, 0x17, 0x49, 0x6a, 0x04, 0x57, 0xe3, 0xa4, + 0x61, 0x82, 0xad, 0x06, 0x5c, 0xc0, 0xfc, 0x3c, 0xfc, 0x07, 0x29, 0xd9, 0xc9, 0xa1, 0x57, 0x03, + 0x9f, 0x4c, 0x88, 0x3c, 0xe4, 0x26, 0x82, 0xfd, 0xa8, 0x8d, 0x60, 0xf3, 0x30, 0x0d, 0x93, 0x6b, + 0x66, 0xa7, 0x97, 0x50, 0xe4, 0xe3, 0xe8, 0x7b, 0xd5, 0xe0, 0x08, 0x1d, 0x28, 0x8e, 0x7e, 0x7f, + 0x7a, 0xc9, 0x0b, 0xe6, 0x07, 0x29, 0x38, 0xbe, 0x88, 0x4d, 0x6c, 0x1b, 0x0d, 0x5a, 0x03, 0x4f, + 0x12, 0x77, 0x88, 0x92, 0x78, 0x94, 0xc0, 0x79, 0xaf, 0x3f, 0x44, 0x09, 0xbc, 0xda, 0x97, 0xc0, + 0x5d, 0x82, 0x04, 0x6e, 0x92, 0xa4, 0x33, 0x82, 0xfb, 0xd0, 0x27, 0x60, 0xaa, 0x62, 0x39, 0xc6, + 0x86, 0xd1, 0xa0, 0x3e, 0x68, 0x2f, 0x53, 0x20, 0xb3, 0x6c, 0x74, 0x1c, 0x54, 0x08, 0xba, 0x93, + 0x6b, 0x60, 0xd2, 0x30, 0x1b, 0xad, 0x9d, 0x26, 0xd6, 0xb0, 0x4e, 0xfb, 0x95, 0x71, 0x8d, 0x4f, + 0x0a, 0xb6, 0xf6, 0x5d, 0xb6, 0x14, 0x6f, 0x6b, 0xff, 0xd3, 0xd2, 0xcb, 0x30, 0x3c, 0x0b, 0x24, + 0x20, 0x65, 0x88, 0xdd, 0x55, 0x80, 0x69, 0x93, 0xcb, 0xea, 0x19, 0xec, 0xdd, 0x17, 0x0a, 0xf0, + 0xe4, 0x34, 0xf1, 0x0f, 0xf4, 0x3e, 0xa9, 0xc6, 0xda, 0x8f, 0xa1, 0x78, 0xc8, 0x2c, 0x0c, 0x30, + 0x49, 0x56, 0x61, 0xa6, 0x5c, 0xa9, 0x97, 0xb4, 0x4a, 0x61, 0x99, 0x65, 0x51, 0xd0, 0xbf, 0xa5, + 0x21, 0xab, 0xe1, 0x76, 0x6b, 0x8f, 0x8f, 0x18, 0xcd, 0x1c, 0xc5, 0x53, 0xbe, 0xa3, 0xb8, 0xba, + 0x00, 0xa0, 0x37, 0xdc, 0x82, 0xc9, 0x95, 0x5a, 0xe9, 0x9e, 0x71, 0x4c, 0x85, 0x0a, 0x16, 0xfc, + 0xdc, 0x1a, 0xf7, 0x27, 0x7a, 0x81, 0xf4, 0xce, 0x91, 0x40, 0x8d, 0x70, 0x18, 0xd2, 0x27, 0xbc, + 0x5f, 0x6a, 0xb3, 0xa7, 0x2f, 0xb9, 0xc3, 0x11, 0xff, 0x57, 0xd3, 0x90, 0xa9, 0xbb, 0xbd, 0x25, + 0xd7, 0x71, 0xfe, 0xe9, 0x60, 0x3a, 0xee, 0x92, 0x09, 0xd1, 0xf1, 0x3b, 0x61, 0x8a, 0xd7, 0x58, + 0xe6, 0x2a, 0x11, 0xa9, 0xe2, 0xc2, 0x0f, 0x83, 0x68, 0x78, 0x0f, 0x76, 0x0e, 0x47, 0xc4, 0x9f, + 0x7c, 0x34, 0xc0, 0x0a, 0xde, 0xbe, 0x80, 0xed, 0xce, 0x96, 0xd1, 0x46, 0x7f, 0xaf, 0xc0, 0xc4, + 0x22, 0x76, 0x6a, 0x8e, 0xee, 0xec, 0x74, 0xba, 0xb6, 0x3b, 0x4d, 0xab, 0xa8, 0x37, 0xb6, 0x30, + 0xeb, 0x8e, 0xbc, 0x57, 0xf4, 0x2e, 0x45, 0xd6, 0x9f, 0x28, 0x28, 0x67, 0xd6, 0x2f, 0x23, 0x04, + 0x93, 0xc7, 0x40, 0xa6, 0xa9, 0x3b, 0x3a, 0xc3, 0xe2, 0x8a, 0x2e, 0x2c, 0x02, 0x42, 0x1a, 0xc9, + 0x86, 0x7e, 0x2f, 0x2d, 0xe3, 0x50, 0x24, 0x51, 0x7e, 0x3c, 0x10, 0xde, 0x97, 0x1a, 0x00, 0x85, + 0x63, 0x30, 0x5d, 0xa9, 0xd6, 0xd7, 0x97, 0xab, 0x8b, 0x8b, 0x25, 0x37, 0x35, 0xaf, 0xa8, 0x27, + 0x41, 0x5d, 0x2d, 0xdc, 0xbb, 0x52, 0xaa, 0xd4, 0xd7, 0x2b, 0xd5, 0xf9, 0x12, 0xfb, 0x33, 0xa3, + 0x1e, 0x85, 0xc9, 0x62, 0xa1, 0xb8, 0xe4, 0x25, 0x64, 0xd5, 0x53, 0x70, 0x7c, 0xa5, 0xb4, 0x32, + 0x57, 0xd2, 0x6a, 0x4b, 0xe5, 0xd5, 0x75, 0x97, 0xcc, 0x42, 0x75, 0xad, 0x32, 0x9f, 0xcf, 0xa9, + 0x08, 0x4e, 0x72, 0x5f, 0xce, 0x6b, 0xd5, 0xca, 0xe2, 0x7a, 0xad, 0x5e, 0xa8, 0x97, 0xf2, 0x63, + 0xea, 0x65, 0x70, 0xb4, 0x58, 0xa8, 0x90, 0xec, 0xc5, 0x6a, 0xa5, 0x52, 0x2a, 0xd6, 0xf3, 0xe3, + 0xe8, 0xdf, 0x33, 0x30, 0x59, 0xee, 0x54, 0xf4, 0x6d, 0x7c, 0x4e, 0x6f, 0x19, 0x4d, 0xf4, 0x7c, + 0x6e, 0xe6, 0x71, 0x1d, 0x4c, 0xdb, 0xf4, 0x11, 0x37, 0xeb, 0x06, 0xa6, 0x68, 0x4e, 0x6b, 0x62, + 0xa2, 0x3b, 0x27, 0x37, 0x09, 0x01, 0x6f, 0x4e, 0x4e, 0xdf, 0xd4, 0x39, 0x00, 0xfa, 0x54, 0x0f, + 0x2e, 0x77, 0x3d, 0xd3, 0xdd, 0x9a, 0xf4, 0x6d, 0xdc, 0xc1, 0xf6, 0xae, 0xd1, 0xc0, 0x5e, 0x4e, + 0x8d, 0xfb, 0x0b, 0x7d, 0x4d, 0x91, 0xdd, 0x5f, 0xe4, 0x40, 0xe5, 0xaa, 0x13, 0xd2, 0x1b, 0xfe, + 0x8a, 0x22, 0xb3, 0x3b, 0x28, 0x45, 0x32, 0x9e, 0xa6, 0xbc, 0x28, 0x3d, 0xd8, 0xb2, 0x6d, 0xbd, + 0x5a, 0x5d, 0xaf, 0x2d, 0x55, 0xb5, 0x7a, 0x5e, 0x51, 0xa7, 0x60, 0xdc, 0x7d, 0x5d, 0xae, 0x56, + 0x16, 0xf3, 0x19, 0xf5, 0x04, 0x1c, 0x5b, 0x2a, 0xd4, 0xd6, 0xcb, 0x95, 0x73, 0x85, 0xe5, 0xf2, + 0xfc, 0x7a, 0x71, 0xa9, 0xa0, 0xd5, 0xf2, 0x59, 0xf5, 0x0a, 0x38, 0x51, 0x2f, 0x97, 0xb4, 0xf5, + 0x85, 0x52, 0xa1, 0xbe, 0xa6, 0x95, 0x6a, 0xeb, 0x95, 0xea, 0x7a, 0xa5, 0xb0, 0x52, 0xca, 0xe7, + 0xdc, 0xe6, 0x4f, 0x3e, 0x05, 0x6a, 0x33, 0xb6, 0x5f, 0x19, 0xc7, 0x43, 0x94, 0x71, 0xa2, 0x5b, + 0x19, 0x81, 0x57, 0x2b, 0xad, 0x54, 0x2b, 0x69, 0xe7, 0x4a, 0xf9, 0xc9, 0x5e, 0xba, 0x36, 0xa5, + 0x1e, 0x87, 0xbc, 0xcb, 0xc3, 0x7a, 0xb9, 0xe6, 0xe5, 0x9c, 0xcf, 0x4f, 0xa3, 0x4f, 0xe4, 0xe0, + 0xa4, 0x86, 0x37, 0x8d, 0x8e, 0x83, 0xed, 0x55, 0x7d, 0x6f, 0x1b, 0x9b, 0x8e, 0xd7, 0xc9, 0xff, + 0xaf, 0xd8, 0xca, 0xb8, 0x02, 0xd3, 0x6d, 0x4a, 0x63, 0x05, 0x3b, 0x5b, 0x56, 0x93, 0x8d, 0xc2, + 0x8f, 0x0a, 0xed, 0x39, 0x66, 0x57, 0xf9, 0xec, 0x9a, 0xf8, 0x37, 0xa7, 0xdb, 0x4a, 0x84, 0x6e, + 0x67, 0x06, 0xd1, 0x6d, 0xf5, 0x2a, 0x98, 0xd8, 0xe9, 0x60, 0xbb, 0xb4, 0xad, 0x1b, 0x2d, 0xef, + 0x72, 0x4e, 0x3f, 0x01, 0xbd, 0x3d, 0x23, 0x7b, 0x62, 0x85, 0xab, 0x4b, 0x6f, 0x31, 0x86, 0xf4, + 0xad, 0xa7, 0x01, 0x58, 0x65, 0xd7, 0xec, 0x16, 0x53, 0x56, 0x2e, 0xc5, 0xe5, 0xef, 0x82, 0xd1, + 0x6a, 0x19, 0xe6, 0xa6, 0xbf, 0xef, 0x1f, 0x24, 0xa0, 0x17, 0x29, 0x32, 0x27, 0x58, 0xe2, 0xf2, + 0x16, 0xaf, 0x35, 0xbd, 0x20, 0x3d, 0xe2, 0x7e, 0x77, 0x7f, 0xd3, 0xc9, 0xa9, 0x79, 0x98, 0x22, + 0x69, 0xac, 0x05, 0xe6, 0xc7, 0xdc, 0x3e, 0xd8, 0x23, 0xb7, 0x52, 0xaa, 0x2f, 0x55, 0xe7, 0xfd, + 0x6f, 0xe3, 0x2e, 0x49, 0x97, 0x99, 0x42, 0xe5, 0x5e, 0xd2, 0x1a, 0x27, 0xd4, 0x47, 0xc0, 0x15, + 0x5c, 0x87, 0x5d, 0x58, 0xd6, 0x4a, 0x85, 0xf9, 0x7b, 0xd7, 0x4b, 0x4f, 0x2d, 0xd7, 0xea, 0x35, + 0xb1, 0x71, 0x79, 0xed, 0x68, 0xd2, 0xe5, 0xb7, 0xb4, 0x52, 0x28, 0x2f, 0xb3, 0xfe, 0x7d, 0xa1, + 0xaa, 0xad, 0x14, 0xea, 0xf9, 0x29, 0xf4, 0x72, 0x05, 0xf2, 0x8b, 0xd8, 0x59, 0xb5, 0x6c, 0x47, + 0x6f, 0x2d, 0x1b, 0xe6, 0xc5, 0x35, 0xbb, 0x25, 0x4c, 0x36, 0xa5, 0xc3, 0x74, 0x88, 0x43, 0xa4, + 0x40, 0x30, 0x7c, 0x47, 0xbc, 0x4d, 0xb2, 0x05, 0xca, 0x14, 0x24, 0xa0, 0x67, 0xa6, 0x65, 0x96, + 0xbb, 0xe5, 0x4b, 0x8d, 0xa7, 0x27, 0xcf, 0x1a, 0xf5, 0xf8, 0xdc, 0x03, 0xb5, 0x1c, 0x7a, 0x6e, + 0x06, 0xc6, 0x17, 0x0c, 0x53, 0x6f, 0x19, 0xcf, 0x10, 0xe2, 0x97, 0x06, 0x7d, 0x4c, 0x2a, 0xa2, + 0x8f, 0x49, 0x0f, 0x34, 0x7e, 0xfe, 0x86, 0x22, 0xbb, 0xbc, 0xc0, 0xc9, 0xde, 0x63, 0x32, 0x64, + 0xf0, 0xfc, 0x70, 0x5a, 0x66, 0x79, 0xa1, 0x3f, 0xbd, 0x78, 0x18, 0x7e, 0xea, 0xc7, 0xc3, 0xc6, + 0xea, 0x6a, 0xdf, 0xe3, 0xbd, 0x54, 0x61, 0x02, 0xfd, 0xa5, 0x02, 0x68, 0x11, 0x3b, 0xe7, 0xb0, + 0xed, 0x4f, 0x05, 0x48, 0xaf, 0xcf, 0xec, 0x6d, 0xae, 0xc9, 0xbe, 0x99, 0x07, 0xf0, 0xbc, 0x08, + 0x60, 0x21, 0xa2, 0xf1, 0x84, 0x90, 0x0e, 0x69, 0xbc, 0x65, 0xc8, 0x75, 0xc8, 0x77, 0xa6, 0x66, + 0x8f, 0x0d, 0x1f, 0x2e, 0x09, 0x31, 0x9e, 0x3a, 0x25, 0xac, 0x31, 0x02, 0xe8, 0x87, 0xfe, 0x24, + 0xe8, 0xe7, 0x04, 0xed, 0x58, 0x38, 0x30, 0xb3, 0xf1, 0xf4, 0xc5, 0x4e, 0x56, 0x5d, 0x7a, 0xd9, + 0x37, 0xe8, 0xc3, 0x59, 0x38, 0xde, 0xab, 0x3a, 0xe8, 0x03, 0x29, 0x61, 0x87, 0x1d, 0x93, 0x21, + 0x3f, 0xc5, 0x36, 0x10, 0xdd, 0x17, 0xf5, 0xf1, 0x70, 0xc2, 0x5f, 0x86, 0xab, 0x5b, 0x15, 0x7c, + 0xa9, 0xd3, 0xc2, 0x8e, 0x83, 0x6d, 0x52, 0xb5, 0x71, 0xad, 0xf7, 0x47, 0xf5, 0x89, 0x70, 0xb9, + 0x61, 0x76, 0x8c, 0x26, 0xb6, 0xeb, 0x46, 0xbb, 0x53, 0x30, 0x9b, 0xf5, 0x1d, 0xc7, 0xb2, 0x0d, + 0x9d, 0x5d, 0x25, 0x39, 0xae, 0x85, 0x7d, 0x56, 0x6f, 0x84, 0xbc, 0xd1, 0xa9, 0x9a, 0x17, 0x2c, + 0xdd, 0x6e, 0x1a, 0xe6, 0xe6, 0xb2, 0xd1, 0x71, 0x98, 0x07, 0xf0, 0xbe, 0x74, 0xf4, 0x0f, 0x8a, + 0xec, 0x61, 0xba, 0x3e, 0xb0, 0x86, 0x74, 0x28, 0xcf, 0x53, 0x64, 0x8e, 0xc7, 0xc5, 0xa3, 0x1d, + 0x4f, 0x59, 0x9e, 0x33, 0x6a, 0x43, 0xa2, 0xf7, 0x08, 0x4e, 0xba, 0x16, 0x9a, 0xee, 0x19, 0x02, + 0xe7, 0x4a, 0x5a, 0x79, 0xa1, 0x5c, 0x72, 0xcd, 0x8a, 0x13, 0x70, 0x2c, 0xf8, 0x36, 0x7f, 0xef, + 0x7a, 0xad, 0x54, 0xa9, 0xe7, 0xc7, 0xdd, 0x7e, 0x8a, 0x26, 0x2f, 0x14, 0xca, 0xcb, 0xa5, 0xf9, + 0xf5, 0x7a, 0xd5, 0xfd, 0x32, 0x3f, 0x98, 0x69, 0x81, 0x1e, 0xc8, 0xc0, 0x51, 0x22, 0xdb, 0x3d, + 0x22, 0x55, 0x57, 0x28, 0x5d, 0xbe, 0xb6, 0x3e, 0x40, 0x13, 0x54, 0xbc, 0xe8, 0xb3, 0xd2, 0x37, + 0x65, 0x72, 0x10, 0x76, 0x95, 0x11, 0xa2, 0x19, 0x3f, 0x48, 0xcb, 0x44, 0xa8, 0x90, 0x26, 0x1b, + 0x4f, 0x29, 0xfe, 0x65, 0xd4, 0x23, 0x4e, 0x38, 0xf8, 0xc4, 0xca, 0x2c, 0x92, 0x9f, 0x9f, 0xba, + 0x5a, 0xd6, 0x88, 0x3a, 0xcc, 0x00, 0x90, 0x14, 0xa2, 0x41, 0x54, 0x0f, 0x7a, 0x8e, 0x57, 0x61, + 0x7a, 0x50, 0x28, 0xd6, 0xcb, 0xe7, 0x4a, 0x61, 0x7a, 0xf0, 0x19, 0x05, 0xc6, 0x17, 0xb1, 0xe3, + 0xce, 0xa9, 0x3a, 0xe8, 0x49, 0x12, 0xeb, 0x3f, 0xae, 0x19, 0xd3, 0xb2, 0x1a, 0x7a, 0xcb, 0x5f, + 0x06, 0xa0, 0x6f, 0xe8, 0xd9, 0x83, 0x98, 0x20, 0x5e, 0xd1, 0x21, 0xe3, 0xd5, 0xcf, 0x42, 0xd6, + 0x71, 0x3f, 0xb3, 0x65, 0xe8, 0x9f, 0x0a, 0x1d, 0xae, 0x5c, 0x22, 0xf3, 0xba, 0xa3, 0x6b, 0x34, + 0x3f, 0x37, 0x3a, 0x49, 0xda, 0x2e, 0x21, 0x8c, 0xfc, 0x38, 0xda, 0x9f, 0x7f, 0xa7, 0xc0, 0x09, + 0xda, 0x3e, 0x0a, 0xed, 0x76, 0xcd, 0xb1, 0x6c, 0xac, 0xe1, 0x06, 0x36, 0xda, 0x4e, 0xd7, 0xfa, + 0x9e, 0x4d, 0x53, 0xbd, 0xcd, 0x66, 0xf6, 0x8a, 0xde, 0xa0, 0xc8, 0xc6, 0x60, 0xde, 0xd7, 0x1e, + 0xbb, 0xca, 0x0b, 0x69, 0xec, 0x1f, 0x4f, 0xcb, 0x44, 0x55, 0x8e, 0x49, 0x3c, 0x1e, 0x50, 0x1f, + 0x39, 0x04, 0xa0, 0xbc, 0x95, 0x1b, 0xad, 0x54, 0x2c, 0x95, 0x57, 0xdd, 0x41, 0xe0, 0x6a, 0xb8, + 0x72, 0x75, 0x4d, 0x2b, 0x2e, 0x15, 0x6a, 0xa5, 0x75, 0xad, 0xb4, 0x58, 0xae, 0xd5, 0x99, 0x53, + 0x16, 0xfd, 0x6b, 0x4c, 0xbd, 0x0a, 0x4e, 0xd5, 0xd6, 0xe6, 0x6a, 0x45, 0xad, 0xbc, 0x4a, 0xd2, + 0xb5, 0x52, 0xa5, 0x74, 0x9e, 0x7d, 0x1d, 0x47, 0x1f, 0xcc, 0xc3, 0xa4, 0x3b, 0x01, 0xa8, 0xd1, + 0x79, 0x01, 0xfa, 0x4e, 0x06, 0x26, 0x35, 0xdc, 0xb1, 0x5a, 0xbb, 0x64, 0x8e, 0x30, 0xaa, 0xa9, + 0xc7, 0xf7, 0x15, 0xd9, 0xf3, 0xdb, 0x1c, 0xb3, 0xb3, 0x1c, 0xa3, 0xe1, 0x13, 0x4d, 0x7d, 0x57, + 0x37, 0x5a, 0xfa, 0x05, 0xd6, 0xd5, 0x8c, 0x6b, 0x41, 0x82, 0x3a, 0x0b, 0xaa, 0x75, 0xc9, 0xc4, + 0x76, 0xad, 0x71, 0xa9, 0xe4, 0x6c, 0x15, 0x9a, 0x4d, 0x1b, 0x77, 0x3a, 0x6c, 0xf5, 0xa2, 0xc7, + 0x17, 0xf5, 0x06, 0x38, 0x4a, 0x52, 0xb9, 0xcc, 0xd4, 0x41, 0xa6, 0x3b, 0xd9, 0xcf, 0x59, 0x30, + 0xf7, 0xbc, 0x9c, 0x59, 0x2e, 0x67, 0x90, 0xcc, 0x1f, 0x97, 0xc8, 0x89, 0xa7, 0x74, 0xae, 0x81, + 0x49, 0x53, 0xdf, 0xc6, 0xa5, 0xfb, 0xdb, 0x86, 0x8d, 0x3b, 0xc4, 0x31, 0x46, 0xd1, 0xf8, 0x24, + 0xf4, 0x61, 0xa9, 0xf3, 0xe6, 0x72, 0x12, 0x8b, 0xa7, 0xfb, 0x8b, 0x03, 0xa8, 0x7e, 0x8f, 0x7e, + 0x46, 0x41, 0x1f, 0x54, 0x60, 0x8a, 0x31, 0x55, 0x30, 0xf7, 0xca, 0x4d, 0x74, 0xb5, 0x60, 0xfc, + 0xea, 0x6e, 0x9a, 0x67, 0xfc, 0x92, 0x17, 0xf4, 0xab, 0x8a, 0xac, 0xbb, 0x73, 0x8f, 0x8a, 0x93, + 0x32, 0xc2, 0x1d, 0x47, 0x37, 0xac, 0x1d, 0xe6, 0xa8, 0x3a, 0xae, 0xd1, 0x97, 0x24, 0x17, 0xf5, + 0xd0, 0x1f, 0x4a, 0x39, 0x53, 0x4b, 0x56, 0xe3, 0x90, 0x00, 0xfc, 0xa4, 0x02, 0x33, 0x8c, 0xab, + 0x1a, 0x3b, 0xe7, 0x23, 0x75, 0xe0, 0xed, 0xd7, 0xa4, 0x0d, 0xc1, 0x1e, 0xf5, 0x67, 0x25, 0x3d, + 0x6c, 0x80, 0xfc, 0xa8, 0x54, 0x70, 0x34, 0xe9, 0x8a, 0x1c, 0x12, 0x94, 0xef, 0xc8, 0xc0, 0xe4, + 0x5a, 0x07, 0xdb, 0xcc, 0x6f, 0x1f, 0x3d, 0x98, 0x01, 0x65, 0x11, 0x0b, 0x1b, 0xa9, 0x2f, 0x94, + 0xf6, 0xf0, 0xe5, 0x2b, 0xcb, 0x11, 0x75, 0x6d, 0xa4, 0x10, 0xd8, 0xae, 0x87, 0x19, 0x2a, 0xd2, + 0x82, 0xe3, 0xb8, 0x46, 0xa2, 0xe7, 0x4d, 0xdb, 0x95, 0x3a, 0x8c, 0xad, 0x22, 0x52, 0x96, 0x9b, + 0xa5, 0xe8, 0xf2, 0xb4, 0x8c, 0x37, 0xe8, 0x7c, 0x36, 0xa3, 0x75, 0xa5, 0xaa, 0x37, 0xc3, 0x65, + 0x56, 0x1b, 0xd3, 0xf3, 0x2b, 0x5c, 0xe6, 0x2c, 0xc9, 0xdc, 0xeb, 0x13, 0xfa, 0x8e, 0x94, 0xaf, + 0xae, 0xbc, 0x74, 0xe2, 0xe9, 0x42, 0x7b, 0x38, 0x26, 0xc9, 0x71, 0xc8, 0xbb, 0x39, 0xc8, 0xfe, + 0x8b, 0x56, 0xaa, 0x55, 0x97, 0xcf, 0x95, 0x7a, 0x2f, 0x63, 0x64, 0xd1, 0x73, 0x14, 0x98, 0x98, + 0xb3, 0x2d, 0xbd, 0xd9, 0xd0, 0x3b, 0x0e, 0xfa, 0x61, 0x1a, 0xa6, 0x56, 0xf5, 0xbd, 0x96, 0xa5, + 0x37, 0x89, 0x7f, 0x7f, 0x57, 0x5f, 0xd0, 0xa6, 0x9f, 0xbc, 0xbe, 0x80, 0xbd, 0x8a, 0x07, 0x03, + 0xfd, 0xa3, 0x7b, 0x29, 0x99, 0x0b, 0x35, 0xfd, 0x6d, 0xbe, 0x74, 0xaf, 0x60, 0xa5, 0x1e, 0x5f, + 0xb3, 0x3c, 0x4f, 0x21, 0x16, 0xe5, 0x07, 0xe5, 0xc2, 0x8f, 0xca, 0x90, 0x3c, 0x9c, 0x5d, 0xf9, + 0xe7, 0x8e, 0x43, 0x6e, 0x1e, 0x13, 0x2b, 0xee, 0xbf, 0xa7, 0x61, 0xac, 0x86, 0x1d, 0x62, 0xc1, + 0xdd, 0x2a, 0x78, 0x0a, 0x37, 0x49, 0x86, 0xc0, 0x89, 0xdd, 0x7b, 0x77, 0x27, 0xeb, 0xdc, 0x79, + 0x6b, 0xf2, 0x1c, 0xc3, 0x23, 0x91, 0x96, 0x3b, 0xcb, 0xca, 0x3c, 0x90, 0x47, 0x62, 0x24, 0xa9, + 0xe4, 0x7d, 0xad, 0xde, 0x95, 0x66, 0xae, 0x55, 0x5c, 0xaf, 0xf7, 0x1a, 0x5e, 0x3f, 0x23, 0xbd, + 0xcd, 0x18, 0xf3, 0x11, 0xce, 0x51, 0x8f, 0x83, 0x31, 0x2a, 0x73, 0x6f, 0x3e, 0xda, 0xed, 0xa7, + 0x40, 0x49, 0x90, 0xb3, 0xd7, 0x5e, 0x4e, 0x49, 0x17, 0xb5, 0xf0, 0xc2, 0x47, 0x12, 0x83, 0x60, + 0xaa, 0x82, 0x9d, 0x4b, 0x96, 0x7d, 0xb1, 0xe6, 0xe8, 0x0e, 0x46, 0xff, 0x92, 0x06, 0xa5, 0x86, + 0x1d, 0x3e, 0xfa, 0x49, 0x05, 0x8e, 0xd1, 0x0a, 0xb1, 0x8c, 0xa4, 0xff, 0xa6, 0x15, 0xb9, 0xa6, + 0xa7, 0x10, 0xb8, 0x7c, 0xda, 0xfe, 0x5f, 0xd1, 0x6f, 0xf5, 0x0c, 0xfa, 0x94, 0xee, 0x31, 0x69, + 0x60, 0x92, 0xe1, 0x19, 0x74, 0x15, 0x2c, 0x44, 0x4f, 0x3f, 0x24, 0x65, 0x56, 0xcb, 0xd1, 0x3c, + 0x9c, 0xae, 0xe0, 0xa3, 0x57, 0x40, 0xa6, 0xb8, 0xa5, 0x3b, 0xe8, 0x9d, 0x0a, 0x40, 0xa1, 0xd9, + 0x5c, 0xa1, 0x3e, 0xe0, 0xbc, 0x43, 0xda, 0x19, 0x98, 0x6a, 0x6c, 0xe9, 0xc1, 0xdd, 0x26, 0xb4, + 0x3f, 0x10, 0xd2, 0xd4, 0xc7, 0x07, 0xce, 0xe4, 0x54, 0xaa, 0xa8, 0x0b, 0x26, 0xb7, 0x0c, 0x46, + 0xdb, 0x77, 0x34, 0x17, 0x43, 0x61, 0x46, 0x1e, 0xa1, 0x73, 0x7f, 0x9f, 0x0d, 0xd8, 0x0b, 0x9f, + 0xc3, 0x31, 0xd2, 0xfe, 0x01, 0x9b, 0x20, 0x21, 0xe6, 0x49, 0x6f, 0xb9, 0x80, 0x1e, 0xd1, 0x7c, + 0x8d, 0x24, 0x74, 0xad, 0x5a, 0x6a, 0x1a, 0x9e, 0x68, 0x59, 0xc0, 0x2c, 0xf4, 0x82, 0x54, 0x3c, + 0xf8, 0xa2, 0x05, 0x77, 0x17, 0x4c, 0xe3, 0xa6, 0xe1, 0x60, 0xaf, 0x96, 0x4c, 0x80, 0x51, 0x10, + 0x8b, 0x3f, 0xa0, 0x67, 0x49, 0x07, 0x5d, 0x23, 0x02, 0xdd, 0x5f, 0xa3, 0x90, 0xf6, 0x27, 0x17, + 0x46, 0x4d, 0x8e, 0x66, 0xf2, 0x60, 0x3d, 0x5b, 0x81, 0x13, 0x75, 0x6b, 0x73, 0xb3, 0x85, 0x3d, + 0x31, 0x61, 0xea, 0x9d, 0x89, 0xf4, 0x61, 0xc2, 0x45, 0x76, 0x82, 0xac, 0xfb, 0x0c, 0xff, 0x28, + 0x99, 0xfb, 0x22, 0x9e, 0x98, 0x8a, 0x9c, 0x45, 0x11, 0x71, 0xf5, 0xe4, 0x33, 0x04, 0x05, 0xb9, + 0x80, 0xcf, 0xd2, 0x64, 0x93, 0x07, 0xe2, 0x8b, 0x69, 0x98, 0xa6, 0x37, 0x57, 0x7a, 0x0a, 0x7a, + 0xcf, 0x10, 0x01, 0x40, 0x3f, 0x4c, 0xc9, 0xfa, 0xd9, 0x12, 0x99, 0x08, 0x9c, 0x84, 0x88, 0x58, + 0x2e, 0xa8, 0x4a, 0x5f, 0x72, 0xc9, 0x8b, 0xf6, 0xcf, 0x14, 0x98, 0x5c, 0xc4, 0x5e, 0x4b, 0xeb, + 0xc4, 0xee, 0x89, 0xce, 0xc0, 0x14, 0xb9, 0xbe, 0xad, 0xca, 0x8e, 0x49, 0xd2, 0x55, 0x33, 0x21, + 0x4d, 0xbd, 0x0e, 0xa6, 0x2f, 0xe0, 0x0d, 0xcb, 0xc6, 0x55, 0xe1, 0x2c, 0xa5, 0x98, 0x18, 0x12, + 0x9e, 0x4e, 0x88, 0x83, 0x36, 0x27, 0x62, 0x73, 0xd3, 0x7e, 0x61, 0x72, 0x55, 0x09, 0x19, 0x73, + 0x9e, 0x00, 0xe3, 0x0c, 0x79, 0xcf, 0x4c, 0x8b, 0xea, 0x17, 0xfd, 0xbc, 0xe8, 0xf5, 0x3e, 0xa2, + 0x25, 0x01, 0xd1, 0xc7, 0xc6, 0x61, 0x62, 0x24, 0xf7, 0xbb, 0xe7, 0xb9, 0xf2, 0xe7, 0xf6, 0xca, + 0xcd, 0x0e, 0x5a, 0x89, 0x87, 0xe9, 0x69, 0x00, 0xbf, 0x71, 0x78, 0x61, 0x2d, 0xb8, 0x14, 0x31, + 0x72, 0x7d, 0xe4, 0x41, 0xbd, 0x6e, 0x71, 0x10, 0x76, 0x86, 0x0c, 0x8c, 0xdc, 0x01, 0x3f, 0x19, + 0x4e, 0x92, 0x47, 0xe7, 0xd3, 0x0a, 0x9c, 0xf0, 0xcf, 0x1f, 0x2d, 0xeb, 0x9d, 0xa0, 0xdd, 0x15, + 0xe3, 0x41, 0x24, 0x1c, 0xf8, 0xf0, 0x1b, 0xcb, 0x77, 0xe3, 0x8d, 0x19, 0x3d, 0x39, 0x19, 0x2e, + 0x3a, 0xea, 0x4d, 0x70, 0xcc, 0xdc, 0xd9, 0xf6, 0xa5, 0x4e, 0x5a, 0x3c, 0x6b, 0xe1, 0xfb, 0x3f, + 0xc4, 0x19, 0x99, 0x64, 0x98, 0x1f, 0xc9, 0x9c, 0x52, 0x38, 0xd2, 0xf5, 0x98, 0x58, 0x30, 0xa2, + 0x7f, 0x4e, 0xc5, 0xea, 0xdd, 0xfa, 0x9f, 0xf9, 0x8a, 0xd1, 0x4b, 0x1d, 0xe2, 0x81, 0xaf, 0x33, + 0x63, 0x90, 0x2d, 0x6d, 0xb7, 0x9d, 0xbd, 0x33, 0x8f, 0x84, 0xe9, 0x9a, 0x63, 0x63, 0x7d, 0x9b, + 0xdb, 0x19, 0x70, 0xac, 0x8b, 0xd8, 0xf4, 0x76, 0x06, 0xc8, 0xcb, 0x6d, 0xb7, 0xc2, 0x98, 0x69, + 0xad, 0xeb, 0x3b, 0xce, 0x96, 0x7a, 0xf5, 0xbe, 0x23, 0xf5, 0x0c, 0xfc, 0x2a, 0x8b, 0x61, 0xf4, + 0xb5, 0xdb, 0xc9, 0xda, 0x70, 0xce, 0xb4, 0x0a, 0x3b, 0xce, 0xd6, 0xdc, 0x55, 0x9f, 0xfc, 0xfa, + 0xe9, 0xd4, 0x67, 0xbe, 0x7e, 0x3a, 0xf5, 0xd5, 0xaf, 0x9f, 0x4e, 0xfd, 0xda, 0x37, 0x4e, 0x1f, + 0xf9, 0xcc, 0x37, 0x4e, 0x1f, 0xf9, 0xe2, 0x37, 0x4e, 0x1f, 0xf9, 0xb9, 0x74, 0xfb, 0xc2, 0x85, + 0x1c, 0xa1, 0xf2, 0xb8, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xba, 0xc3, 0xff, 0xbc, 0x42, 0x02, + 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -90355,134 +90123,6 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) MarshalToSiz return len(dAtA) - i, nil } -func (m *RpcObjectTypeRecommendedLayoutSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcObjectTypeRecommendedLayoutSet) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectTypeRecommendedLayoutSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Layout != 0 { - i = encodeVarintCommands(dAtA, i, uint64(m.Layout)) - i-- - dAtA[i] = 0x10 - } - if len(m.TypeObjectId) > 0 { - i -= len(m.TypeObjectId) - copy(dAtA[i:], m.TypeObjectId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.TypeObjectId))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Error != nil { - { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if m.Code != 0 { - i = encodeVarintCommands(dAtA, i, uint64(m.Code)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - func (m *RpcRelation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -124985,60 +124625,6 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Size() (n in return n } -func (m *RpcObjectTypeRecommendedLayoutSet) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *RpcObjectTypeRecommendedLayoutSetRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.TypeObjectId) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - if m.Layout != 0 { - n += 1 + sovCommands(uint64(m.Layout)) - } - return n -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Code != 0 { - n += 1 + sovCommands(uint64(m.Code)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - func (m *RpcRelation) Size() (n int) { if m == nil { return 0 @@ -183601,344 +183187,6 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Unmarshal(dA } return nil } -func (m *RpcObjectTypeRecommendedLayoutSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: LayoutSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: LayoutSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcObjectTypeRecommendedLayoutSetRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TypeObjectId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TypeObjectId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Layout", wireType) - } - m.Layout = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Layout |= model.ObjectTypeLayout(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcObjectTypeRecommendedLayoutSetResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Response: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCommands - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Error == nil { - m.Error = &RpcObjectTypeRecommendedLayoutSetResponseError{} - } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcObjectTypeRecommendedLayoutSetResponseError) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) - } - m.Code = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Code |= RpcObjectTypeRecommendedLayoutSetResponseErrorCode(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *RpcRelation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 172be3cb6..ae669c65a 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3172,30 +3172,6 @@ message Rpc { } } } - - message LayoutSet { - message Request { - string typeObjectId = 1; - anytype.model.ObjectType.Layout layout = 2; - } - - message Response { - Error error = 1; - - message Error { - Code code = 1; - string description = 2; - - enum Code { - NULL = 0; - UNKNOWN_ERROR = 1; - BAD_INPUT = 2; - READONLY_OBJECT_TYPE = 3; - // ... - } - } - } - } } } diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index 8fbd68347..52bd83f1a 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -150,7 +150,6 @@ service ClientCommands { rpc ObjectTypeRelationRemove (anytype.Rpc.ObjectType.Relation.Remove.Request) returns (anytype.Rpc.ObjectType.Relation.Remove.Response); rpc ObjectTypeRecommendedRelationsSet (anytype.Rpc.ObjectType.Recommended.RelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.RelationsSet.Response); rpc ObjectTypeRecommendedFeaturedRelationsSet (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response); - rpc ObjectTypeRecommendedLayoutSet (anytype.Rpc.ObjectType.Recommended.LayoutSet.Request) returns (anytype.Rpc.ObjectType.Recommended.LayoutSet.Response); rpc HistoryShowVersion (anytype.Rpc.History.ShowVersion.Request) returns (anytype.Rpc.History.ShowVersion.Response); rpc HistoryGetVersions (anytype.Rpc.History.GetVersions.Request) returns (anytype.Rpc.History.GetVersions.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 67911e713..3197f06e5 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,343 +26,341 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5361 bytes of a gzipped FileDescriptorProto + // 5340 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0xff, 0x04, 0x12, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe6, 0x7f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xe4, 0xf3, 0x3b, 0xe7, 0xdc, 0xcf, 0x73, 0xcf, 0xbd, 0x75, - 0xab, 0x3a, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x7f, 0x1e, 0xbe, 0x15, 0xe7, 0x2b, 0xb1, 0x2a, 0xd8, 0xfb, 0xef, 0x59, - 0x72, 0xca, 0xe7, 0xf3, 0x38, 0x4f, 0xaa, 0x06, 0x79, 0xff, 0x5d, 0x2b, 0x61, 0x4b, 0x96, 0x0b, - 0xf5, 0xf7, 0xa7, 0xff, 0xf9, 0xbf, 0x83, 0xe8, 0xed, 0x9d, 0x2c, 0x65, 0xb9, 0xd8, 0x51, 0x1a, - 0xc3, 0x2f, 0xa3, 0xef, 0x6c, 0x17, 0xc5, 0x3e, 0x13, 0xaf, 0x58, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, - 0x38, 0x52, 0x0e, 0x46, 0xa7, 0xc5, 0x74, 0xb4, 0x5d, 0x14, 0x23, 0x2b, 0x1c, 0x9d, 0xb2, 0x1f, - 0x2f, 0x58, 0x25, 0xde, 0xbf, 0x17, 0x86, 0xaa, 0x82, 0xe7, 0x15, 0x1b, 0x5e, 0x44, 0xbf, 0xb2, - 0x5d, 0x14, 0x63, 0x26, 0x76, 0x59, 0x5d, 0x81, 0xb1, 0x88, 0x05, 0x1b, 0xae, 0xb5, 0x54, 0x7d, - 0xc0, 0xf8, 0x78, 0xd8, 0x0d, 0x2a, 0x3f, 0x93, 0xe8, 0xdb, 0xb5, 0x9f, 0xcb, 0x85, 0x48, 0xf8, - 0x75, 0x3e, 0xfc, 0xa0, 0xad, 0xa8, 0x44, 0xc6, 0xf6, 0xdd, 0x10, 0xa2, 0xac, 0xbe, 0x8e, 0x7e, - 0xf1, 0x75, 0x9c, 0x65, 0x4c, 0xec, 0x94, 0xac, 0x2e, 0xb8, 0xaf, 0xd3, 0x88, 0x46, 0x8d, 0xcc, - 0xd8, 0xfd, 0x30, 0xc8, 0x28, 0xc3, 0x5f, 0x46, 0xdf, 0x69, 0x24, 0xa7, 0x6c, 0xca, 0x97, 0xac, - 0x1c, 0xa2, 0x5a, 0x4a, 0x48, 0x34, 0x79, 0x0b, 0x82, 0xb6, 0x77, 0x78, 0xbe, 0x64, 0xa5, 0xc0, - 0x6d, 0x2b, 0x61, 0xd8, 0xb6, 0x85, 0x94, 0xed, 0xbf, 0x1e, 0x44, 0xdf, 0xdb, 0x9e, 0x4e, 0xf9, - 0x22, 0x17, 0x87, 0x7c, 0x1a, 0x67, 0x87, 0x69, 0x7e, 0x75, 0xcc, 0xae, 0x77, 0x2e, 0x6b, 0x3e, - 0x9f, 0xb1, 0xe1, 0x33, 0xbf, 0x55, 0x1b, 0x74, 0x64, 0xd8, 0x91, 0x0b, 0x1b, 0xdf, 0x1f, 0xdf, - 0x4c, 0x49, 0x95, 0xe5, 0xef, 0x07, 0xd1, 0x2d, 0x58, 0x96, 0x31, 0xcf, 0x96, 0xcc, 0x96, 0xe6, - 0x93, 0x0e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xe9, 0x4d, 0xd5, 0x54, 0x89, 0xb2, 0xe8, 0x1d, 0x77, - 0xb8, 0x8c, 0x59, 0x25, 0xa7, 0xd3, 0x23, 0x7a, 0x44, 0x28, 0xc4, 0x78, 0x7e, 0xdc, 0x07, 0x55, - 0xde, 0xd2, 0x68, 0xa8, 0xbc, 0x65, 0xbc, 0x32, 0xce, 0x1e, 0xa2, 0x16, 0x1c, 0xc2, 0xf8, 0x7a, - 0xd4, 0x83, 0x54, 0xae, 0xfe, 0x20, 0xfa, 0xa5, 0xd7, 0xbc, 0xbc, 0xaa, 0x8a, 0x78, 0xca, 0xd4, - 0x54, 0xb8, 0xef, 0x6b, 0x6b, 0x29, 0x9c, 0x0d, 0x0f, 0xba, 0x30, 0x67, 0xd0, 0x6a, 0xe1, 0xcb, - 0x82, 0xc1, 0x18, 0x64, 0x15, 0x6b, 0x21, 0x35, 0x68, 0x21, 0xa4, 0x6c, 0x5f, 0x45, 0x43, 0x6b, - 0xfb, 0xfc, 0x0f, 0xd9, 0x54, 0x6c, 0x27, 0x09, 0xec, 0x15, 0xab, 0x2b, 0x89, 0xd1, 0x76, 0x92, - 0x50, 0xbd, 0x82, 0xa3, 0xca, 0xd9, 0x75, 0xf4, 0x2e, 0x70, 0x76, 0x98, 0x56, 0xd2, 0xe1, 0x66, - 0xd8, 0x8a, 0xc2, 0x8c, 0xd3, 0x51, 0x5f, 0x5c, 0x39, 0xfe, 0xd3, 0x41, 0xf4, 0x5d, 0xc4, 0xf3, - 0x29, 0x9b, 0xf3, 0x25, 0x1b, 0x3e, 0xe9, 0xb6, 0xd6, 0x90, 0xc6, 0xff, 0x47, 0x37, 0xd0, 0x40, - 0x86, 0xc9, 0x98, 0x65, 0x6c, 0x2a, 0xc8, 0x61, 0xd2, 0x88, 0x3b, 0x87, 0x89, 0xc1, 0x9c, 0x19, - 0xa6, 0x85, 0xfb, 0x4c, 0xec, 0x2c, 0xca, 0x92, 0xe5, 0x82, 0xec, 0x4b, 0x8b, 0x74, 0xf6, 0xa5, - 0x87, 0x22, 0xf5, 0xd9, 0x67, 0x62, 0x3b, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c, - 0x79, 0x98, 0x46, 0xbf, 0xec, 0xb4, 0x98, 0x38, 0xc8, 0x2f, 0xf8, 0x90, 0x6e, 0x0b, 0x29, 0x37, - 0x3e, 0xd6, 0x3a, 0x39, 0xa4, 0x1a, 0x2f, 0xde, 0x14, 0xbc, 0xa4, 0xbb, 0xa5, 0x11, 0x77, 0x56, - 0xc3, 0x60, 0xca, 0xc3, 0xef, 0x47, 0x6f, 0xab, 0x28, 0xa9, 0xd7, 0xb3, 0x7b, 0x68, 0x08, 0x85, - 0x0b, 0xda, 0xfd, 0x0e, 0xca, 0x06, 0x07, 0x25, 0x53, 0xc1, 0xe7, 0x43, 0x54, 0x0f, 0x84, 0x9e, - 0x7b, 0x61, 0xa8, 0x65, 0x7b, 0x97, 0x65, 0x8c, 0xb4, 0xdd, 0x08, 0x3b, 0x6c, 0x1b, 0x48, 0xd9, - 0x2e, 0xa3, 0x5f, 0x33, 0xcd, 0x52, 0xaf, 0xa3, 0x52, 0x5e, 0x07, 0xe9, 0x75, 0xa2, 0xde, 0x2e, - 0x64, 0x7c, 0x6d, 0xf4, 0x83, 0x5b, 0xf5, 0x51, 0x33, 0x10, 0xaf, 0x0f, 0x98, 0x7f, 0xf7, 0xc2, - 0x90, 0xb2, 0xfd, 0x37, 0x83, 0xe8, 0xfb, 0x4a, 0xf6, 0x22, 0x8f, 0xcf, 0x33, 0x26, 0x97, 0xc4, - 0x63, 0x26, 0xae, 0x79, 0x79, 0x35, 0x5e, 0xe5, 0x53, 0x62, 0xf9, 0xc7, 0xe1, 0x8e, 0xe5, 0x9f, - 0x54, 0x72, 0x32, 0x3e, 0x55, 0x51, 0xc1, 0x0b, 0x98, 0xf1, 0xe9, 0x1a, 0x08, 0x5e, 0x50, 0x19, - 0x9f, 0x8f, 0xb4, 0xac, 0x1e, 0xd5, 0x61, 0x13, 0xb7, 0x7a, 0xe4, 0xc6, 0xc9, 0xbb, 0x21, 0xc4, - 0x86, 0x2d, 0x3d, 0x80, 0x79, 0x7e, 0x91, 0xce, 0xce, 0x8a, 0xa4, 0x1e, 0xc6, 0x8f, 0xf0, 0x11, - 0xea, 0x20, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, 0xef, 0x6c, 0x62, 0xa4, 0xa6, 0xd2, 0x5e, 0xc9, - 0xe7, 0x87, 0x6c, 0x16, 0x4f, 0x57, 0x6a, 0xfe, 0x7f, 0x1c, 0x9a, 0x78, 0x90, 0x36, 0x85, 0xf8, - 0xe4, 0x86, 0x5a, 0xaa, 0x3c, 0xff, 0x36, 0x88, 0xee, 0xe9, 0xea, 0x5f, 0xc6, 0xf9, 0x8c, 0xa9, - 0xfe, 0x6c, 0x4a, 0xbf, 0x9d, 0x27, 0xa7, 0xac, 0x12, 0x71, 0x29, 0x86, 0x3f, 0xc0, 0x2b, 0x19, - 0xd2, 0x31, 0x65, 0xfb, 0xe1, 0x37, 0xd2, 0xb5, 0xbd, 0x3e, 0xae, 0x03, 0x9b, 0x0a, 0x01, 0x7e, - 0xaf, 0x4b, 0x09, 0x0c, 0x00, 0x77, 0x43, 0x88, 0xed, 0x75, 0x29, 0x38, 0xc8, 0x97, 0xa9, 0x60, - 0xfb, 0x2c, 0x67, 0x65, 0xbb, 0xd7, 0x1b, 0x55, 0x1f, 0x21, 0x7a, 0x9d, 0x40, 0x6d, 0xb0, 0xf1, - 0xbc, 0x99, 0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb5, 0x3c, 0x6e, 0xf4, 0x83, 0xed, 0xee, 0xce, 0xf1, - 0x79, 0xca, 0x96, 0xfc, 0x0a, 0xee, 0xee, 0x5c, 0x13, 0x0d, 0x40, 0xec, 0xee, 0x50, 0xd0, 0xae, - 0x60, 0x8e, 0x9f, 0x57, 0x29, 0xbb, 0x06, 0x2b, 0x98, 0xab, 0x5c, 0x8b, 0x89, 0x15, 0x0c, 0xc1, - 0x94, 0x87, 0xe3, 0xe8, 0x17, 0xa4, 0xf0, 0x77, 0x79, 0x9a, 0x0f, 0x6f, 0x23, 0x4a, 0xb5, 0xc0, - 0x58, 0xbd, 0x43, 0x03, 0xa0, 0xc4, 0xf5, 0x5f, 0x77, 0xe2, 0x7c, 0xca, 0x32, 0xb4, 0xc4, 0x56, - 0x1c, 0x2c, 0xb1, 0x87, 0xd9, 0xd4, 0x41, 0x0a, 0xeb, 0xf8, 0x35, 0xbe, 0x8c, 0xcb, 0x34, 0x9f, - 0x0d, 0x31, 0x5d, 0x47, 0x4e, 0xa4, 0x0e, 0x18, 0x07, 0x86, 0xb0, 0x52, 0xdc, 0x2e, 0x8a, 0xb2, - 0x0e, 0x8b, 0xd8, 0x10, 0xf6, 0x91, 0xe0, 0x10, 0x6e, 0xa1, 0xb8, 0xb7, 0x5d, 0x36, 0xcd, 0xd2, - 0x3c, 0xe8, 0x4d, 0x21, 0x7d, 0xbc, 0x59, 0x14, 0x0c, 0xde, 0x43, 0x16, 0x2f, 0x99, 0xae, 0x19, - 0xd6, 0x32, 0x2e, 0x10, 0x1c, 0xbc, 0x00, 0xb4, 0xfb, 0x34, 0x29, 0x3e, 0x8a, 0xaf, 0x58, 0xdd, - 0xc0, 0xac, 0x5e, 0xd7, 0x86, 0x98, 0xbe, 0x47, 0x10, 0xfb, 0x34, 0x9c, 0x54, 0xae, 0x16, 0xd1, - 0xbb, 0x52, 0x7e, 0x12, 0x97, 0x22, 0x9d, 0xa6, 0x45, 0x9c, 0xeb, 0xfc, 0x1f, 0x9b, 0xd7, 0x2d, - 0xca, 0xb8, 0xdc, 0xec, 0x49, 0x2b, 0xb7, 0xff, 0x32, 0x88, 0x3e, 0x80, 0x7e, 0x4f, 0x58, 0x39, - 0x4f, 0xe5, 0x36, 0xb2, 0x6a, 0x82, 0xf0, 0xf0, 0xb3, 0xb0, 0xd1, 0x96, 0x82, 0x29, 0xcd, 0xe7, - 0x37, 0x57, 0xb4, 0xc9, 0xd0, 0x58, 0xa5, 0xd6, 0x2f, 0xcb, 0xa4, 0x75, 0xcc, 0x32, 0xd6, 0xf9, - 0xb2, 0x14, 0x12, 0xc9, 0x50, 0x0b, 0x02, 0x33, 0xfc, 0x2c, 0xaf, 0xb4, 0x75, 0x6c, 0x86, 0x5b, - 0x71, 0x70, 0x86, 0x7b, 0x98, 0xf2, 0xf0, 0x7b, 0x51, 0xd4, 0x6c, 0xb6, 0xe4, 0x86, 0xd8, 0x8f, - 0x39, 0x6a, 0x17, 0xe6, 0xed, 0x86, 0x3f, 0x08, 0x10, 0x76, 0xa1, 0x6b, 0xfe, 0x2e, 0xf7, 0xf9, - 0x43, 0x54, 0x43, 0x8a, 0x88, 0x85, 0x0e, 0x20, 0xb0, 0xa0, 0xe3, 0x4b, 0x7e, 0x8d, 0x17, 0xb4, - 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0xf2, 0xa6, 0x0a, 0x8a, 0x9d, 0xbc, 0xe9, 0x62, 0x84, 0x4e, - 0xde, 0x20, 0xa3, 0x0c, 0xf3, 0xe8, 0x57, 0x5d, 0xc3, 0xcf, 0x39, 0xbf, 0x9a, 0xc7, 0xe5, 0xd5, - 0xf0, 0x31, 0xad, 0xac, 0x19, 0xe3, 0x68, 0xbd, 0x17, 0x6b, 0x83, 0x9a, 0xeb, 0xb0, 0x4e, 0x93, - 0xce, 0xca, 0x0c, 0x04, 0x35, 0xcf, 0x86, 0x42, 0x88, 0xa0, 0x46, 0xa0, 0x76, 0x54, 0xba, 0xde, - 0xc6, 0x0c, 0xee, 0xf5, 0x3c, 0xf5, 0x31, 0xa3, 0xf6, 0x7a, 0x08, 0x06, 0x87, 0xd0, 0x7e, 0x19, - 0x17, 0x97, 0xf8, 0x10, 0x92, 0xa2, 0xf0, 0x10, 0xd2, 0x08, 0xec, 0xef, 0x31, 0x8b, 0xcb, 0xe9, - 0x25, 0xde, 0xdf, 0x8d, 0x2c, 0xdc, 0xdf, 0x86, 0x81, 0xfd, 0xdd, 0x08, 0x5e, 0xa7, 0xe2, 0xf2, - 0x88, 0x89, 0x18, 0xef, 0x6f, 0x9f, 0x09, 0xf7, 0x77, 0x8b, 0xb5, 0x79, 0x98, 0xeb, 0x70, 0xbc, - 0x38, 0xaf, 0xa6, 0x65, 0x7a, 0xce, 0x86, 0x01, 0x2b, 0x06, 0x22, 0xf2, 0x30, 0x12, 0x56, 0x3e, - 0x7f, 0x3a, 0x88, 0x6e, 0xeb, 0x6e, 0xe7, 0x55, 0xa5, 0x62, 0x9e, 0xef, 0xfe, 0x13, 0xbc, 0x7f, - 0x09, 0x9c, 0x38, 0x0b, 0xed, 0xa1, 0xe6, 0xac, 0x09, 0x78, 0x91, 0xce, 0xf2, 0xca, 0x14, 0xea, - 0xb3, 0x3e, 0xd6, 0x1d, 0x05, 0x62, 0x4d, 0xe8, 0xa5, 0x68, 0x97, 0x63, 0xd5, 0x3f, 0x5a, 0x76, - 0x90, 0x54, 0x60, 0x39, 0xd6, 0xed, 0xed, 0x10, 0xc4, 0x72, 0x8c, 0x93, 0x70, 0x28, 0xec, 0x97, - 0x7c, 0x51, 0x54, 0x1d, 0x43, 0x01, 0x40, 0xe1, 0xa1, 0xd0, 0x86, 0x95, 0xcf, 0x37, 0xd1, 0xaf, - 0xbb, 0xc3, 0xcf, 0x6d, 0xec, 0x4d, 0x7a, 0x4c, 0x61, 0x4d, 0x3c, 0xea, 0x8b, 0xdb, 0x84, 0x54, - 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0x1f, 0xe0, 0x36, 0xb4, 0x9c, 0x48, 0x48, 0x31, - 0x0e, 0xc6, 0xb7, 0xdd, 0x45, 0x91, 0xa5, 0xd3, 0xf6, 0x49, 0xb4, 0xd2, 0x35, 0xe2, 0x70, 0x7c, - 0x73, 0x31, 0x18, 0xaf, 0xeb, 0x25, 0x5f, 0xfe, 0x67, 0xb2, 0x2a, 0x18, 0x1e, 0xaf, 0x3d, 0x24, - 0x1c, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x66, 0xe2, 0x30, 0x5e, 0xf1, 0x05, 0x11, 0xaf, 0x8d, 0x38, - 0x5c, 0x1f, 0x17, 0xb3, 0x39, 0xa1, 0xf1, 0x70, 0x90, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, - 0xb3, 0x6a, 0x48, 0xc4, 0x18, 0x9f, 0x22, 0x72, 0x42, 0x9a, 0x46, 0x9a, 0xf1, 0xa0, 0xda, 0x8b, - 0x97, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46, 0x0f, 0x45, 0xbd, 0x6d, 0x97, 0xd3, - 0xcb, 0x74, 0xc9, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6, 0xa0, 0x48, 0xa7, 0x8d, 0xf9, 0xa2, - 0x9c, 0x32, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c, 0x79, 0xf8, 0x8b, 0x41, 0xf4, 0x1b, - 0x8d, 0xd4, 0x3d, 0x1e, 0xde, 0x8d, 0xab, 0xcb, 0x73, 0x1e, 0x97, 0xc9, 0xf0, 0x23, 0xcc, 0x0e, - 0x8a, 0x1a, 0xd7, 0x4f, 0x6f, 0xa2, 0x02, 0x9b, 0xf5, 0x30, 0xad, 0x9c, 0x19, 0x87, 0x36, 0xab, - 0x87, 0x84, 0x9b, 0x15, 0xa2, 0x30, 0x80, 0x48, 0x79, 0x73, 0x14, 0xf3, 0x80, 0xd4, 0xf7, 0xcf, - 0x63, 0xd6, 0x3a, 0x39, 0x18, 0x1f, 0x6b, 0xa1, 0x3f, 0x5a, 0x36, 0x29, 0x1b, 0xf8, 0x88, 0x19, - 0xf5, 0xc5, 0x49, 0xcf, 0x66, 0x56, 0x84, 0x3d, 0xb7, 0x66, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0x76, - 0xc2, 0x5a, 0xc8, 0x33, 0x12, 0xda, 0x46, 0x7d, 0x71, 0x98, 0x7d, 0x29, 0x46, 0xaf, 0x0b, 0x8f, - 0x03, 0x76, 0xe0, 0xda, 0xb0, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x6a, 0x10, 0x7d, 0xcf, 0x7a, 0x3c, - 0xe2, 0x49, 0x7a, 0xb1, 0x6a, 0xa0, 0x57, 0x71, 0xb6, 0x60, 0xd5, 0xf0, 0x29, 0x65, 0xad, 0xcd, - 0x9a, 0x12, 0x3c, 0xbb, 0x91, 0x0e, 0x9c, 0x3b, 0xdb, 0x45, 0x91, 0xad, 0x26, 0x6c, 0x5e, 0x64, - 0xe4, 0xdc, 0xf1, 0x90, 0xf0, 0xdc, 0x81, 0x28, 0xcc, 0xca, 0x27, 0xbc, 0xce, 0xf9, 0xd1, 0xac, - 0x5c, 0x8a, 0xc2, 0x59, 0xb9, 0x46, 0x60, 0xae, 0x34, 0xe1, 0x3b, 0x3c, 0xcb, 0xd8, 0x54, 0xb4, - 0x1f, 0x31, 0x1b, 0x4d, 0x4b, 0x84, 0x73, 0x25, 0x40, 0xda, 0xd3, 0x18, 0xbd, 0x87, 0x8c, 0x4b, - 0xf6, 0x7c, 0x75, 0x98, 0xe6, 0x57, 0x43, 0x3c, 0x2d, 0xb0, 0x00, 0x71, 0x1a, 0x83, 0x82, 0x70, - 0xaf, 0x7a, 0x96, 0x27, 0x1c, 0xdf, 0xab, 0xd6, 0x92, 0xf0, 0x5e, 0x55, 0x11, 0xd0, 0xe4, 0x29, - 0xa3, 0x4c, 0xd6, 0x92, 0xb0, 0x49, 0x45, 0x60, 0xa1, 0x50, 0x9d, 0xd9, 0x93, 0xa1, 0x10, 0x9c, - 0xd2, 0xaf, 0x75, 0x72, 0x70, 0x84, 0xea, 0x4d, 0xeb, 0x1e, 0x13, 0xd3, 0x4b, 0x7c, 0x84, 0x7a, - 0x48, 0x78, 0x84, 0x42, 0x14, 0x56, 0x69, 0xc2, 0xcd, 0xa6, 0xfb, 0x01, 0x3e, 0x3e, 0x5a, 0x1b, - 0xee, 0xb5, 0x4e, 0x0e, 0x6e, 0x23, 0x0f, 0xe6, 0xb2, 0xcd, 0xd0, 0x41, 0xde, 0xc8, 0xc2, 0xdb, - 0x48, 0xc3, 0xc0, 0xd2, 0x37, 0x82, 0xba, 0x39, 0xf1, 0xd2, 0x5b, 0x79, 0xb8, 0xf4, 0x1e, 0xa7, - 0x9c, 0xfc, 0x93, 0xd9, 0xc6, 0x35, 0xd2, 0x63, 0x5e, 0xcf, 0x91, 0x57, 0x71, 0x96, 0x26, 0xb1, - 0x60, 0x13, 0x7e, 0xc5, 0x72, 0x7c, 0xc7, 0xa4, 0x4a, 0xdb, 0xf0, 0x23, 0x4f, 0x21, 0xbc, 0x63, - 0x0a, 0x2b, 0xc2, 0x71, 0xd2, 0xd0, 0x67, 0x15, 0xdb, 0x89, 0x2b, 0x22, 0x92, 0x79, 0x48, 0x78, - 0x9c, 0x40, 0x14, 0xe6, 0xab, 0x8d, 0xfc, 0xc5, 0x9b, 0x82, 0x95, 0x29, 0xcb, 0xa7, 0x0c, 0xcf, - 0x57, 0x21, 0x15, 0xce, 0x57, 0x11, 0x1a, 0xee, 0xd5, 0x76, 0x63, 0xc1, 0x9e, 0xaf, 0x26, 0xe9, - 0x9c, 0x55, 0x22, 0x9e, 0x17, 0xf8, 0x5e, 0x0d, 0x40, 0xe1, 0xbd, 0x5a, 0x1b, 0x6e, 0x1d, 0x0d, - 0x99, 0x80, 0xd8, 0xbe, 0x99, 0x02, 0x89, 0xc0, 0xcd, 0x14, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, - 0x70, 0xb8, 0x65, 0x25, 0x78, 0x38, 0x4c, 0xd3, 0xad, 0x03, 0x37, 0xc3, 0x8c, 0xeb, 0xa9, 0xd9, - 0x51, 0xf4, 0xb1, 0x3b, 0x45, 0xd7, 0x7b, 0xb1, 0xf8, 0x09, 0xdf, 0x29, 0xcb, 0x62, 0xb9, 0x6c, - 0x05, 0x8e, 0xd1, 0x34, 0xd3, 0xe7, 0x84, 0xcf, 0x61, 0x95, 0xc3, 0x3f, 0x1b, 0x44, 0xef, 0x63, - 0x1e, 0x5f, 0x16, 0xd2, 0xef, 0x93, 0x6e, 0x5b, 0x0d, 0x49, 0x5c, 0xbd, 0x09, 0x6b, 0xa8, 0x32, - 0xfc, 0x51, 0xf4, 0x9e, 0x16, 0xd9, 0x9b, 0x39, 0xaa, 0x00, 0x7e, 0xd2, 0x66, 0xca, 0x0f, 0x39, - 0xe3, 0x7e, 0xab, 0x37, 0x6f, 0xf7, 0x43, 0x7e, 0xb9, 0x2a, 0xb0, 0x1f, 0x32, 0x36, 0x94, 0x98, - 0xd8, 0x0f, 0x21, 0x98, 0x9d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa7, 0xe2, 0x52, 0xe6, 0x5b, 0x60, 0x76, - 0x7a, 0x65, 0x35, 0x10, 0x31, 0x3b, 0x49, 0x18, 0x66, 0x24, 0x1a, 0xac, 0xe7, 0x26, 0x16, 0xcb, - 0x8d, 0x21, 0x77, 0x66, 0x3e, 0xec, 0x06, 0xe1, 0x78, 0xd5, 0x62, 0xb5, 0xf5, 0x79, 0x1c, 0xb2, - 0x00, 0xb6, 0x3f, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0x4f, 0xa2, 0xef, 0xb6, 0x2a, 0xb6, 0xc7, 0x62, - 0xb1, 0x28, 0x59, 0x32, 0xdc, 0xea, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0x27, 0xfd, 0x15, 0x5a, 0x39, - 0xba, 0xe6, 0x9a, 0x61, 0x65, 0xca, 0xf0, 0x34, 0x64, 0xd2, 0x67, 0x83, 0x39, 0x3a, 0xad, 0xd3, - 0xda, 0x66, 0xbb, 0xa3, 0x6b, 0x7b, 0x19, 0xa7, 0x99, 0x7c, 0x48, 0xf7, 0x51, 0xc8, 0xa8, 0x87, - 0x06, 0xb7, 0xd9, 0xa4, 0x4a, 0x2b, 0x32, 0xcb, 0x39, 0xee, 0x6c, 0xcf, 0x36, 0xe8, 0x48, 0x80, - 0xec, 0xce, 0x36, 0x7b, 0xd2, 0xca, 0xad, 0xd0, 0x4b, 0x5e, 0xfd, 0x67, 0x77, 0x90, 0x63, 0x5e, - 0x95, 0x2a, 0x32, 0xd2, 0x37, 0x7b, 0xd2, 0xca, 0xeb, 0x1f, 0x47, 0xef, 0xb5, 0xbd, 0xaa, 0x85, - 0x68, 0xab, 0xd3, 0x14, 0x58, 0x8b, 0x9e, 0xf4, 0x57, 0x50, 0xee, 0xff, 0xd5, 0x9c, 0x4b, 0x37, - 0xfe, 0xa7, 0x7c, 0x3e, 0x67, 0x79, 0xc2, 0x12, 0xad, 0x51, 0xd5, 0xfb, 0xa7, 0xcf, 0x69, 0xbb, - 0x46, 0x61, 0xe4, 0x6a, 0x98, 0x12, 0xfd, 0xe6, 0x37, 0xd0, 0x54, 0x45, 0xfb, 0x8f, 0x41, 0xf4, - 0x08, 0x2d, 0x9a, 0x1e, 0xb8, 0x5e, 0x11, 0x7f, 0xa7, 0x8f, 0x23, 0x4c, 0xd3, 0x14, 0x75, 0xfb, - 0xff, 0x61, 0xc1, 0xb9, 0x83, 0x8d, 0x16, 0xb9, 0x39, 0x85, 0xac, 0xcb, 0xf9, 0x49, 0x1f, 0x2f, - 0x06, 0x0f, 0x3e, 0x77, 0x08, 0xaa, 0xd9, 0x2d, 0xeb, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, - 0xf2, 0x6b, 0xfd, 0x46, 0x83, 0x1f, 0x8d, 0x15, 0x30, 0x72, 0x08, 0x62, 0xcb, 0x8a, 0x93, 0x2d, - 0x57, 0xf6, 0xcd, 0x87, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xae, 0x45, 0xba, 0x56, - 0xf6, 0x35, 0x8d, 0x35, 0xbc, 0xa8, 0xed, 0x57, 0x35, 0x1e, 0x76, 0x83, 0x36, 0x23, 0x55, 0xe2, - 0xdd, 0xf4, 0xe2, 0xc2, 0xd4, 0x09, 0x2f, 0xa9, 0x8b, 0x10, 0x19, 0x29, 0x81, 0xda, 0x4d, 0xd5, - 0x5e, 0x9a, 0x31, 0xf9, 0xc4, 0xe6, 0xe5, 0xc5, 0x45, 0xc6, 0xe3, 0x04, 0x6c, 0xaa, 0x6a, 0xf1, - 0xc8, 0x95, 0x13, 0x9b, 0x2a, 0x8c, 0xb3, 0x77, 0x00, 0x6a, 0x69, 0x3d, 0x6c, 0xf2, 0x69, 0x9a, - 0xc1, 0x0b, 0x9e, 0x52, 0xd3, 0x08, 0x89, 0x3b, 0x00, 0x2d, 0xc8, 0x26, 0x3e, 0xb5, 0xa8, 0x0e, - 0xeb, 0xba, 0xfc, 0xf7, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x7c, 0x10, 0xcc, 0x9e, 0x2d, 0xd4, 0xc2, - 0xb3, 0x42, 0x1a, 0xbf, 0xd3, 0xd6, 0x6a, 0x24, 0xc4, 0xd9, 0x82, 0x4f, 0xd8, 0x3d, 0x72, 0xfd, - 0xf7, 0x5d, 0x7e, 0x9d, 0x4b, 0xa3, 0x77, 0xdb, 0x2a, 0x5a, 0x46, 0xec, 0x91, 0x21, 0xa3, 0x0c, - 0xff, 0x28, 0xfa, 0x79, 0x69, 0xb8, 0xe4, 0xc5, 0xf0, 0x16, 0xa2, 0x50, 0x3a, 0x77, 0x31, 0x6f, - 0x93, 0x72, 0x7b, 0xa5, 0xd8, 0x8c, 0x8d, 0xb3, 0x2a, 0x9e, 0xb1, 0xe1, 0x3d, 0xa2, 0xc7, 0xa5, - 0x94, 0xb8, 0x52, 0xdc, 0xa6, 0xfc, 0x51, 0x71, 0xcc, 0x13, 0x65, 0x1d, 0xa9, 0xa1, 0x11, 0x86, - 0x46, 0x85, 0x0b, 0xd9, 0x64, 0xf5, 0x38, 0x5e, 0xa6, 0x33, 0x93, 0x50, 0x34, 0xd1, 0xab, 0x02, - 0xc9, 0xaa, 0x65, 0x46, 0x0e, 0x44, 0x24, 0xab, 0x24, 0xac, 0x7c, 0xfe, 0xe3, 0x20, 0xba, 0x63, - 0x99, 0x7d, 0x7d, 0x1a, 0x7b, 0x90, 0x5f, 0xf0, 0x3a, 0xb5, 0x3d, 0x4c, 0xf3, 0xab, 0x6a, 0xf8, - 0x29, 0x65, 0x12, 0xe7, 0x4d, 0x51, 0x3e, 0xbb, 0xb1, 0x9e, 0xdd, 0x95, 0xe8, 0xa3, 0x4a, 0x7b, - 0x5f, 0xa1, 0xd1, 0x00, 0xbb, 0x12, 0x73, 0xa2, 0x09, 0x39, 0x62, 0x57, 0x12, 0xe2, 0x6d, 0x17, - 0x1b, 0xe7, 0x19, 0xcf, 0x61, 0x17, 0x5b, 0x0b, 0xb5, 0x90, 0xe8, 0xe2, 0x16, 0x64, 0xe3, 0xb1, - 0x16, 0x35, 0xa7, 0x6a, 0xdb, 0x59, 0x06, 0xe2, 0xb1, 0x51, 0x35, 0x00, 0x11, 0x8f, 0x51, 0x50, - 0xf9, 0x39, 0x8d, 0xbe, 0x5d, 0x37, 0xe9, 0x49, 0xc9, 0x96, 0x29, 0x83, 0x57, 0x6b, 0x1c, 0x09, - 0x31, 0xff, 0x7d, 0xc2, 0xce, 0xac, 0xb3, 0xbc, 0x2a, 0xb2, 0xb8, 0xba, 0x54, 0x97, 0x2d, 0xfc, - 0x3a, 0x6b, 0x21, 0xbc, 0x6e, 0x71, 0xbf, 0x83, 0xb2, 0x41, 0x5d, 0xcb, 0x4c, 0x88, 0x79, 0x80, - 0xab, 0xb6, 0xc2, 0xcc, 0x5a, 0x27, 0x67, 0x9f, 0x68, 0xec, 0xc7, 0x59, 0xc6, 0xca, 0x95, 0x96, - 0x1d, 0xc5, 0x79, 0x7a, 0xc1, 0x2a, 0x01, 0x9e, 0x68, 0x28, 0x6a, 0x04, 0x31, 0xe2, 0x89, 0x46, - 0x00, 0xb7, 0xbb, 0x35, 0xe0, 0xf9, 0x20, 0x4f, 0xd8, 0x1b, 0xb0, 0x5b, 0x83, 0x76, 0x24, 0x43, - 0xec, 0xd6, 0x28, 0xd6, 0x9e, 0xec, 0x3f, 0xcf, 0xf8, 0xf4, 0x4a, 0x2d, 0x01, 0x7e, 0x07, 0x4b, - 0x09, 0x5c, 0x03, 0xee, 0x86, 0x10, 0xbb, 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xb2, 0x78, 0x0a, 0xef, - 0x57, 0x35, 0x3a, 0x4a, 0x46, 0x2c, 0x02, 0x90, 0x01, 0xc5, 0x55, 0xf7, 0xb6, 0xb0, 0xe2, 0x82, - 0x6b, 0x5b, 0x77, 0x43, 0x88, 0x5d, 0x06, 0xa5, 0x60, 0x5c, 0x64, 0xa9, 0x00, 0xd3, 0xa0, 0xd1, - 0x90, 0x12, 0x62, 0x1a, 0xf8, 0x04, 0x30, 0x79, 0xc4, 0xca, 0x19, 0x43, 0x4d, 0x4a, 0x49, 0xd0, - 0xa4, 0x26, 0xec, 0x25, 0xe2, 0xa6, 0xee, 0xbc, 0x58, 0x81, 0x4b, 0xc4, 0xaa, 0x5a, 0xbc, 0x58, - 0x11, 0x97, 0x88, 0x3d, 0x00, 0x14, 0xf1, 0x24, 0xae, 0x04, 0x5e, 0x44, 0x29, 0x09, 0x16, 0x51, - 0x13, 0x76, 0x8d, 0x6e, 0x8a, 0xb8, 0x10, 0x60, 0x8d, 0x56, 0x05, 0x70, 0x6e, 0x18, 0xdc, 0x26, - 0xe5, 0x36, 0x92, 0x34, 0xbd, 0xc2, 0xc4, 0x5e, 0xca, 0xb2, 0xa4, 0x02, 0x91, 0x44, 0xb5, 0xbb, - 0x96, 0x12, 0x91, 0xa4, 0x4d, 0x81, 0xa1, 0xa4, 0x9e, 0x7f, 0x60, 0xb5, 0x03, 0x8f, 0x3e, 0xee, - 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, 0xe2, 0xb2, 0x4c, 0xeb, 0xc5, 0xff, 0x01, 0x5e, 0x20, - 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x0c, - 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x11, 0x39, 0xd6, 0x9a, 0xc8, 0x13, 0xf2, 0x07, 0x5d, 0x98, - 0xf3, 0x92, 0x8f, 0x71, 0x71, 0xc4, 0x97, 0x6c, 0xc2, 0x5f, 0xbc, 0x49, 0x2b, 0x91, 0xe6, 0x33, - 0xb5, 0x72, 0x3f, 0x23, 0x2c, 0x61, 0x30, 0xf1, 0x92, 0x4f, 0xa7, 0x92, 0x4d, 0x20, 0x40, 0x59, - 0x8e, 0xd9, 0x35, 0x9a, 0x40, 0x40, 0x8b, 0x86, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xcf, 0xc9, 0x8c, - 0x73, 0xf5, 0x26, 0xf4, 0x84, 0xeb, 0x5c, 0x8e, 0xb2, 0x06, 0x41, 0xe2, 0xa8, 0x22, 0xa8, 0x60, - 0xf7, 0x97, 0xc6, 0xbf, 0x9d, 0x62, 0x0f, 0x09, 0x3b, 0xed, 0x69, 0xf6, 0xa8, 0x07, 0x89, 0xb8, - 0xb2, 0xf7, 0x3c, 0x28, 0x57, 0xed, 0x6b, 0x1e, 0x8f, 0x7a, 0x90, 0xce, 0x99, 0x9b, 0x5b, 0xad, - 0xe7, 0xf1, 0xf4, 0x6a, 0x56, 0xf2, 0x45, 0x9e, 0xec, 0xf0, 0x8c, 0x97, 0xe0, 0xcc, 0xcd, 0x2b, - 0x35, 0x40, 0x89, 0x33, 0xb7, 0x0e, 0x15, 0x9b, 0xc1, 0xb9, 0xa5, 0xd8, 0xce, 0xd2, 0x19, 0xdc, - 0x51, 0x7b, 0x86, 0x24, 0x40, 0x64, 0x70, 0x28, 0x88, 0x0c, 0xa2, 0x66, 0xc7, 0x2d, 0xd2, 0x69, - 0x9c, 0x35, 0xfe, 0xb6, 0x68, 0x33, 0x1e, 0xd8, 0x39, 0x88, 0x10, 0x05, 0xa4, 0x9e, 0x93, 0x45, - 0x99, 0x1f, 0xe4, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67, 0x3d, 0x1d, 0x10, 0x84, 0xd5, 0x09, 0x7b, - 0x53, 0x97, 0xa6, 0xfe, 0x07, 0x0b, 0xab, 0xf5, 0xdf, 0x47, 0x4a, 0x1e, 0x0a, 0xab, 0x80, 0x03, - 0x95, 0x51, 0x4e, 0x9a, 0x01, 0x13, 0xd0, 0xf6, 0x87, 0xc9, 0xc3, 0x6e, 0x10, 0xf7, 0x33, 0x16, - 0xab, 0x8c, 0x85, 0xfc, 0x48, 0xa0, 0x8f, 0x1f, 0x0d, 0xda, 0xe3, 0x16, 0xaf, 0x3e, 0x97, 0x6c, - 0x7a, 0xd5, 0xba, 0xb6, 0xe6, 0x17, 0xb4, 0x41, 0x88, 0xe3, 0x16, 0x02, 0xc5, 0xbb, 0xe8, 0x60, - 0xca, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4, 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x35, 0x32, - 0x9b, 0x6e, 0x5a, 0x27, 0x2c, 0xb8, 0x10, 0xb1, 0xf9, 0x25, 0x61, 0x9b, 0x93, 0x43, 0x9f, 0x47, - 0xed, 0x3b, 0xfd, 0x2d, 0x2b, 0x47, 0xf4, 0x9d, 0x7e, 0x8a, 0xa5, 0x2b, 0xd9, 0x8c, 0x91, 0x0e, - 0x2b, 0xfe, 0x38, 0xd9, 0xe8, 0x07, 0xdb, 0x2d, 0x8f, 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, - 0xdd, 0x0c, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0, 0x20, 0x84, 0x79, 0x9e, 0x77, 0x78, 0x2e, - 0x58, 0x2e, 0xb0, 0x10, 0xe6, 0x1b, 0x53, 0x60, 0x28, 0x84, 0x51, 0x0a, 0x60, 0xdc, 0xca, 0xf3, - 0x20, 0x26, 0x8e, 0xe3, 0x39, 0x9a, 0xb1, 0x35, 0x67, 0x3d, 0x8d, 0x3c, 0x34, 0x6e, 0x01, 0xe7, - 0x3c, 0xc4, 0x75, 0xbd, 0x4c, 0xe2, 0x72, 0x66, 0x4e, 0x37, 0x92, 0xe1, 0x13, 0xda, 0x8e, 0x4f, - 0x12, 0x0f, 0x71, 0xc3, 0x1a, 0x20, 0xec, 0x1c, 0xcc, 0xe3, 0x99, 0xa9, 0x29, 0x52, 0x03, 0x29, - 0x6f, 0x55, 0xf5, 0x61, 0x37, 0x08, 0xfc, 0xbc, 0x4a, 0x13, 0xc6, 0x03, 0x7e, 0xa4, 0xbc, 0x8f, - 0x1f, 0x08, 0x82, 0xec, 0xad, 0xae, 0x77, 0xb3, 0xa3, 0xdb, 0xce, 0x13, 0xb5, 0x8f, 0x1d, 0x11, - 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8e, 0xea, 0x03, 0xda, 0xd0, 0x1c, 0x35, 0xe7, - 0xaf, 0x7d, 0xe6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x51, 0x73, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, - 0xbf, 0x4a, 0xd9, 0xb5, 0xda, 0x08, 0x23, 0xf5, 0xd5, 0xd4, 0x48, 0xbe, 0x8a, 0x0a, 0x76, 0xc5, - 0x5b, 0xbd, 0xf9, 0x80, 0x6f, 0xb5, 0x43, 0xe8, 0xf4, 0x0d, 0xb6, 0x0a, 0x5b, 0xbd, 0xf9, 0x80, - 0x6f, 0xf5, 0x8e, 0x7b, 0xa7, 0x6f, 0xf0, 0xa2, 0xfb, 0x56, 0x6f, 0x5e, 0xf9, 0xfe, 0x73, 0x3d, - 0x71, 0x5d, 0xe7, 0x75, 0x1e, 0x36, 0x15, 0xe9, 0x92, 0x61, 0xe9, 0xa4, 0x6f, 0xcf, 0xa0, 0xa1, - 0x74, 0x92, 0x56, 0x71, 0x3e, 0x8c, 0x84, 0x95, 0xe2, 0x84, 0x57, 0xa9, 0xbc, 0x84, 0xf1, 0xac, - 0x87, 0x51, 0x0d, 0x87, 0x36, 0x4d, 0x21, 0x25, 0xfb, 0x38, 0xd9, 0x43, 0xed, 0x2d, 0xf5, 0x8d, - 0x80, 0xbd, 0xf6, 0x65, 0xf5, 0xcd, 0x9e, 0xb4, 0x7d, 0xb0, 0xeb, 0x31, 0xee, 0x13, 0xe5, 0x50, - 0xaf, 0xa2, 0x0f, 0x95, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0xff, 0x52, 0xef, 0x2b, 0xa0, 0x7f, 0x35, - 0x09, 0x9e, 0xf6, 0xb1, 0x08, 0x26, 0xc2, 0xb3, 0x1b, 0xe9, 0xa8, 0x82, 0xfc, 0xad, 0xde, 0x40, - 0x6b, 0x54, 0xbe, 0xab, 0x23, 0xdf, 0xed, 0x54, 0x73, 0x22, 0xd4, 0xad, 0x16, 0x86, 0x33, 0xe3, - 0x93, 0x1b, 0x6a, 0x39, 0x8f, 0x68, 0x3d, 0x58, 0xbd, 0x53, 0xea, 0x94, 0x27, 0x64, 0xd9, 0xa1, - 0x61, 0x81, 0x3e, 0xbd, 0xa9, 0x1a, 0x35, 0x57, 0x1c, 0x58, 0x7e, 0x75, 0xe3, 0x59, 0x4f, 0xc3, - 0xde, 0x77, 0x38, 0x3e, 0xbe, 0x99, 0x92, 0x2a, 0xcb, 0xbf, 0x0f, 0xa2, 0xfb, 0x1e, 0x6b, 0x9f, - 0x27, 0x80, 0x53, 0x8f, 0x1f, 0x06, 0xec, 0x53, 0x4a, 0xa6, 0x70, 0xbf, 0xf5, 0xcd, 0x94, 0xed, - 0x37, 0xa5, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c, 0x7f, 0x53, 0xca, 0xb7, 0xdb, 0x50, 0x23, - 0xfa, 0x9b, 0x52, 0x01, 0xdc, 0xf9, 0xa6, 0x14, 0xe2, 0x19, 0xfd, 0xa6, 0x14, 0x6a, 0x2d, 0xf8, - 0x4d, 0xa9, 0xb0, 0x06, 0x15, 0xde, 0x75, 0x11, 0x9a, 0x73, 0xeb, 0x5e, 0x16, 0xfd, 0x63, 0xec, - 0xa7, 0x37, 0x51, 0x21, 0x16, 0xb8, 0x86, 0x93, 0xf7, 0x18, 0x7b, 0xb4, 0xa9, 0x77, 0x97, 0x71, - 0xab, 0x37, 0xaf, 0x7c, 0xff, 0x58, 0xed, 0x6e, 0x4c, 0x38, 0xe7, 0xa5, 0xfc, 0x9e, 0xd8, 0x7a, - 0x28, 0x3c, 0xd7, 0x16, 0xdc, 0x9e, 0xdf, 0xe8, 0x07, 0x13, 0xd5, 0xad, 0x09, 0xd5, 0xe9, 0xa3, - 0x2e, 0x43, 0xa0, 0xcb, 0xb7, 0x7a, 0xf3, 0xc4, 0x32, 0xd2, 0xf8, 0x6e, 0x7a, 0xbb, 0x87, 0x31, - 0xbf, 0xaf, 0x9f, 0xf4, 0x57, 0x50, 0xee, 0x97, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xec, - 0x32, 0x35, 0xf6, 0xba, 0x79, 0xd4, 0x17, 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x95, 0x40, 0xa0, - 0xcb, 0xe8, 0xc7, 0x37, 0x53, 0x52, 0x65, 0xf9, 0x87, 0x41, 0x74, 0x9b, 0x2c, 0x8b, 0x1a, 0x07, - 0x9f, 0xf6, 0xb5, 0x0c, 0xc6, 0xc3, 0x67, 0x37, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x41, 0x74, 0x27, - 0x50, 0xa8, 0x66, 0x80, 0xdc, 0xc0, 0xba, 0x3f, 0x50, 0x3e, 0xbf, 0xb9, 0x22, 0xb5, 0xdc, 0xbb, - 0xf8, 0xb8, 0xfd, 0xb1, 0xa5, 0x80, 0xed, 0x31, 0xfd, 0xb1, 0xa5, 0x6e, 0x2d, 0x78, 0xc8, 0x13, - 0x9f, 0xeb, 0x4d, 0x17, 0x7a, 0xc8, 0x23, 0x6f, 0x20, 0x82, 0x3d, 0xc7, 0x5a, 0x27, 0x87, 0x39, - 0x79, 0xf1, 0xa6, 0x88, 0xf3, 0x84, 0x76, 0xd2, 0xc8, 0xbb, 0x9d, 0x18, 0x0e, 0x1e, 0x8e, 0xd5, - 0xd2, 0x53, 0xae, 0x37, 0x52, 0x8f, 0x28, 0x7d, 0x83, 0x04, 0x0f, 0xc7, 0x5a, 0x28, 0xe1, 0x4d, - 0x65, 0x8d, 0x21, 0x6f, 0x20, 0x59, 0x7c, 0xdc, 0x07, 0x05, 0x29, 0xba, 0xf1, 0x66, 0xce, 0xdc, - 0x37, 0x42, 0x56, 0x5a, 0xe7, 0xee, 0x9b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x9c, - 0xb0, 0x32, 0xe8, 0xd6, 0x50, 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0x8b, 0x79, 0xae, - 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xdd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, 0x3e, - 0x0e, 0x9b, 0xf1, 0xb2, 0xca, 0xf5, 0x5e, 0x2c, 0x5d, 0x4f, 0x35, 0x8c, 0x3a, 0xea, 0x09, 0x46, - 0xd2, 0x66, 0x4f, 0x1a, 0x9e, 0xcf, 0x39, 0x6e, 0xcd, 0x78, 0xda, 0xea, 0xb0, 0xd5, 0x1a, 0x52, - 0x4f, 0xfa, 0x2b, 0xc0, 0xd3, 0x50, 0x35, 0xaa, 0x0e, 0xd3, 0x4a, 0xec, 0xa5, 0x59, 0x36, 0x5c, - 0x0f, 0x0c, 0x13, 0x0d, 0x05, 0x4f, 0x43, 0x11, 0x98, 0x18, 0xc9, 0xfa, 0xf4, 0x30, 0x1f, 0x76, - 0xd9, 0x91, 0x54, 0xaf, 0x91, 0xec, 0xd2, 0xe0, 0x44, 0xcb, 0x69, 0x6a, 0x53, 0xdb, 0x51, 0xb8, - 0xe1, 0x5a, 0x15, 0xde, 0xea, 0xcd, 0x83, 0xc7, 0xed, 0x92, 0x92, 0x2b, 0xcb, 0x3d, 0xca, 0x84, - 0xb7, 0x92, 0xdc, 0xef, 0xa0, 0xc0, 0xa9, 0x60, 0x33, 0x8d, 0x5e, 0xa7, 0xc9, 0x8c, 0x09, 0xf4, - 0x49, 0x91, 0x0b, 0x04, 0x9f, 0x14, 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1c, 0x7a, 0x90, - 0x60, 0x5d, 0xa7, 0x94, 0x1d, 0x2a, 0xd4, 0x75, 0x28, 0x0d, 0xa2, 0x81, 0x71, 0xab, 0x3e, 0xb7, - 0xf0, 0x38, 0x64, 0x06, 0x7c, 0x73, 0x61, 0xbd, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x9d, 0xa7, - 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35, 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x38, - 0x48, 0xc2, 0xd5, 0x6b, 0x98, 0x7e, 0xd5, 0x33, 0x6c, 0xeb, 0xc1, 0x66, 0x6e, 0x86, 0x8c, 0xb8, - 0x54, 0x9b, 0x65, 0x64, 0x6c, 0xcb, 0xd7, 0x70, 0x21, 0x18, 0x8a, 0x3a, 0x94, 0x02, 0x3c, 0xb0, - 0xaf, 0x39, 0xfd, 0xec, 0xb5, 0x28, 0x58, 0x5c, 0xc6, 0xf9, 0x14, 0xdd, 0x9c, 0x4a, 0x83, 0x2d, - 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x05, 0x5a, 0x64, 0x2a, 0x98, 0x37, 0x55, - 0xfd, 0xf7, 0x67, 0x1f, 0xf5, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xc6, 0xe9, 0x47, - 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x60, 0x50, 0x9b, 0x04, 0x97, 0x89, 0x1f, 0xb1, - 0x15, 0x36, 0xa8, 0x6d, 0x7e, 0x2a, 0x91, 0xd0, 0xa0, 0x6e, 0xa3, 0x20, 0xcf, 0x74, 0xf7, 0x41, - 0x0f, 0x02, 0xfa, 0xee, 0xd6, 0x67, 0xad, 0x93, 0x03, 0x33, 0x67, 0x37, 0x5d, 0x7a, 0xcf, 0x09, - 0x90, 0x82, 0xee, 0xa6, 0x4b, 0xfc, 0x31, 0xc1, 0x7a, 0x2f, 0x16, 0x3e, 0x92, 0x8f, 0x05, 0x7b, - 0xa3, 0x9f, 0x95, 0x23, 0xc5, 0x95, 0xf2, 0xd6, 0xc3, 0xf2, 0x87, 0xdd, 0xa0, 0xbd, 0x00, 0x7b, - 0x52, 0xf2, 0x29, 0xab, 0x2a, 0xf5, 0x05, 0x4a, 0xff, 0x86, 0x91, 0x92, 0x8d, 0xc0, 0xf7, 0x27, - 0xef, 0x85, 0x21, 0xdb, 0x33, 0x4a, 0x64, 0xbf, 0x6a, 0xf4, 0x00, 0xd5, 0x6c, 0x7f, 0xd0, 0x68, - 0xad, 0x93, 0xb3, 0xd3, 0x4b, 0x49, 0xdd, 0xcf, 0x18, 0x3d, 0x44, 0xd5, 0xb1, 0x2f, 0x18, 0x3d, - 0xea, 0x41, 0x2a, 0x57, 0x5f, 0x44, 0x6f, 0x1d, 0xf2, 0xd9, 0x98, 0xe5, 0xc9, 0xf0, 0xfb, 0xfe, - 0x15, 0x5a, 0x3e, 0x1b, 0xd5, 0x7f, 0x36, 0x46, 0x6f, 0x51, 0x62, 0x7b, 0x09, 0x70, 0x97, 0x9d, - 0x2f, 0x66, 0x63, 0x11, 0x0b, 0x70, 0x09, 0x50, 0xfe, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, - 0x00, 0xec, 0x4d, 0x4a, 0xc6, 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, - 0xea, 0x44, 0x1d, 0x5e, 0xda, 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, - 0xfa, 0xf2, 0xab, 0x32, 0x8b, 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, - 0xb8, 0x51, 0xd0, 0xce, 0x5a, 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, - 0xbf, 0x2c, 0x62, 0x1a, 0xd4, 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, - 0x50, 0x7e, 0x97, 0xba, 0x12, 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, - 0x06, 0x7d, 0x7f, 0x92, 0xe6, 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0xaf, 0xba, 0xde, 0xa1, 0x01, 0x3b, - 0xa1, 0x9a, 0x46, 0x6b, 0x26, 0x80, 0x7a, 0x57, 0x17, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, - 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, - 0x6d, 0x2c, 0x92, 0xf2, 0xd3, 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, - 0xba, 0x23, 0x27, 0x62, 0x11, 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0x5c, 0x7d, 0x52, 0xc6, - 0x53, 0x78, 0xfd, 0xa2, 0xb1, 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, - 0x7c, 0x25, 0xc7, 0x87, 0x7a, 0x57, 0x54, 0x7e, 0xeb, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, - 0x44, 0xa2, 0x13, 0xd6, 0xb0, 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, - 0xb4, 0x90, 0x58, 0x4a, 0x5a, 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, - 0x80, 0xe4, 0x52, 0x36, 0x50, 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, - 0x73, 0x26, 0x58, 0x09, 0x03, 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, - 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, 0x59, 0xae, 0x7e, 0x46, 0xe5, 0x85, 0xfc, 0xfd, 0xa5, 0xe1, 0xbb, - 0xc6, 0xc6, 0x58, 0x94, 0x2c, 0x9e, 0x6b, 0xdb, 0x6f, 0x9b, 0xbf, 0x4b, 0xf0, 0xc9, 0xa0, 0x1e, - 0xcf, 0xc7, 0x5c, 0xa4, 0x17, 0xf5, 0x36, 0x5b, 0xbd, 0x41, 0x04, 0xc6, 0xb3, 0x2b, 0x1e, 0x05, - 0xbe, 0x35, 0x82, 0x71, 0x36, 0x4e, 0xbb, 0xd2, 0x53, 0x56, 0x64, 0x30, 0x4e, 0x7b, 0xda, 0x12, - 0x20, 0xe2, 0x34, 0x0a, 0xda, 0xc9, 0xe9, 0x8a, 0x27, 0x2c, 0x5c, 0x99, 0x09, 0xeb, 0x57, 0x99, - 0x89, 0xf7, 0x52, 0x46, 0x16, 0xbd, 0x73, 0xc4, 0xe6, 0xe7, 0xac, 0xac, 0x2e, 0xd3, 0x62, 0xbf, - 0x4e, 0xb8, 0x62, 0xb1, 0x80, 0xaf, 0x2d, 0x5a, 0x62, 0x64, 0x10, 0x22, 0x2b, 0x25, 0x50, 0xbb, - 0x12, 0x58, 0xe0, 0xa0, 0x3a, 0x8e, 0xe7, 0x4c, 0x7e, 0x39, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, - 0x22, 0x56, 0x02, 0x12, 0x76, 0xde, 0xef, 0xb2, 0xcc, 0x29, 0x9b, 0xd5, 0x23, 0xac, 0x3c, 0x89, - 0x57, 0x73, 0x96, 0x0b, 0x65, 0x12, 0x9c, 0xc9, 0x3b, 0x26, 0x71, 0x9e, 0x38, 0x93, 0xef, 0xa3, - 0xe7, 0x84, 0x26, 0xaf, 0xe1, 0x4f, 0x78, 0x29, 0x9a, 0x1f, 0x49, 0x3a, 0x2b, 0x33, 0x10, 0x9a, - 0xfc, 0x46, 0xf5, 0x48, 0x22, 0x34, 0x85, 0x35, 0x9c, 0x5f, 0x17, 0xf0, 0xca, 0xf0, 0x8a, 0x95, - 0x66, 0x9c, 0xbc, 0x98, 0xc7, 0x69, 0xa6, 0x46, 0xc3, 0x0f, 0x02, 0xb6, 0x09, 0x1d, 0xe2, 0xd7, - 0x05, 0xfa, 0xea, 0x3a, 0xbf, 0xc7, 0x10, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x61, 0x9f, 0x78, 0x44, - 0xd0, 0xad, 0x65, 0x77, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xe7, 0x85, 0x8e, - 0x4d, 0x00, 0x12, 0x3b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, - 0x04, 0xa6, 0xf5, 0x8e, 0x1d, 0x4d, 0x10, 0xa9, 0x01, 0x4e, 0x62, 0xae, 0xf6, 0x99, 0x98, 0xa4, - 0x75, 0xe8, 0x7f, 0x18, 0x68, 0x37, 0x49, 0x74, 0xbb, 0x72, 0x48, 0xe7, 0x1b, 0xbc, 0xb0, 0x59, - 0xb7, 0x8b, 0x62, 0x5c, 0xaf, 0xaa, 0xa7, 0x6c, 0xca, 0xd2, 0x02, 0xbe, 0x0b, 0xdf, 0x6a, 0x2b, - 0x80, 0x13, 0x17, 0x2d, 0x7a, 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0x7e, 0x3d, 0xf0, - 0xac, 0x62, 0xa5, 0x4a, 0x34, 0xf6, 0x99, 0x00, 0xb3, 0xd3, 0xe1, 0x46, 0x0e, 0x58, 0x57, 0x94, - 0x98, 0x9d, 0x61, 0x0d, 0x7b, 0xd8, 0xe7, 0x70, 0xa7, 0xac, 0xe2, 0xd9, 0x92, 0xc9, 0xfb, 0x86, - 0x1b, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xdb, 0xf9, 0xea, - 0x00, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18, 0x5e, 0xf2, 0x38, - 0x99, 0xc6, 0x95, 0x38, 0x89, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3, 0x70, 0xcd, 0x8c, - 0x5c, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0x3f, 0x8a, 0xa8, 0xee, 0x72, 0xc2, 0xec, - 0x4c, 0x96, 0x17, 0xde, 0xe3, 0xbc, 0x17, 0x86, 0xec, 0x3b, 0x68, 0x8d, 0x48, 0xa6, 0x21, 0x77, - 0x30, 0x1d, 0x2f, 0x01, 0xf9, 0x20, 0x40, 0xd8, 0xef, 0x8e, 0x34, 0x7f, 0xd7, 0xbf, 0xeb, 0x23, - 0xd4, 0x97, 0xca, 0x37, 0x30, 0x5d, 0x17, 0x1a, 0xb9, 0x5f, 0x88, 0xd8, 0xec, 0x49, 0xdb, 0x34, - 0x73, 0xe7, 0x32, 0x16, 0xdb, 0x49, 0x72, 0xc4, 0x2a, 0xe4, 0x85, 0xf2, 0x5a, 0x38, 0xb2, 0x52, - 0x22, 0xcd, 0x6c, 0x53, 0x76, 0xa0, 0xd7, 0xb2, 0x17, 0x49, 0x2a, 0x94, 0x4c, 0xdf, 0x90, 0xde, - 0x68, 0x1b, 0x68, 0x53, 0x44, 0xad, 0x68, 0xda, 0xc6, 0xf2, 0x9a, 0x99, 0xf0, 0xd9, 0x2c, 0x63, - 0x0a, 0x3a, 0x65, 0x71, 0xf3, 0xa1, 0xc6, 0xad, 0xb6, 0x2d, 0x14, 0x24, 0x62, 0x79, 0x50, 0xc1, - 0xa6, 0x91, 0x35, 0xd6, 0x3c, 0x92, 0xd2, 0x0d, 0xbb, 0xd6, 0x36, 0xe3, 0x01, 0x44, 0x1a, 0x89, - 0x82, 0xf6, 0xbd, 0xb7, 0x5a, 0xbc, 0xcf, 0x74, 0x4b, 0xc0, 0x4f, 0x4c, 0x49, 0x65, 0x47, 0x4c, - 0xbc, 0xf7, 0x86, 0x60, 0x76, 0x9f, 0x00, 0x3c, 0x3c, 0x5f, 0x1d, 0x24, 0x70, 0x9f, 0x00, 0xf5, - 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x18, 0x57, 0xb6, 0x72, 0x48, - 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49, 0xb1, 0x73, - 0xb5, 0x07, 0x5d, 0x98, 0x8d, 0x4b, 0x66, 0x3f, 0x29, 0xaf, 0x2c, 0xe1, 0xbf, 0xd0, 0xd0, 0x08, - 0x89, 0xb8, 0xd4, 0x82, 0x1a, 0xdb, 0xcf, 0x3f, 0xf8, 0xaf, 0xaf, 0x6e, 0x0d, 0x7e, 0xf6, 0xd5, - 0xad, 0xc1, 0xff, 0x7c, 0x75, 0x6b, 0xf0, 0xd3, 0xaf, 0x6f, 0x7d, 0xeb, 0x67, 0x5f, 0xdf, 0xfa, - 0xd6, 0x7f, 0x7f, 0x7d, 0xeb, 0x5b, 0x5f, 0xbe, 0xa5, 0x7e, 0x2c, 0xf7, 0xfc, 0xe7, 0xe4, 0x4f, - 0xde, 0x3e, 0xfb, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x53, 0x6e, 0xdf, 0x50, 0x77, 0x00, - 0x00, + 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, + 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, + 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, + 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, + 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, + 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, + 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, + 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, + 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, + 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, + 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, + 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, + 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, + 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, + 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, + 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, + 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, + 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, + 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, + 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, + 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, + 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, + 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, + 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, + 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, + 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, + 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, + 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, + 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, + 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, + 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, + 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, + 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, + 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, + 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, + 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, + 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, + 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, + 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, + 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, + 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, + 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, + 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, + 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, + 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, + 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, + 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, + 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, + 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, + 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, + 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, + 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, + 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, + 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, + 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, + 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, + 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, + 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, + 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, + 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, + 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, + 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, + 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, + 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, + 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, + 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, + 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, + 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, + 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, + 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, + 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, + 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, + 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, + 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, + 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, + 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, + 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, + 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, + 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, + 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, + 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, + 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, + 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, + 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, + 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, + 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, + 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, + 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, + 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, + 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, + 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, + 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, + 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, + 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, + 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, + 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, + 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, + 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, + 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, + 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, + 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, + 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, + 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, + 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, + 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, + 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, + 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, + 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, + 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, + 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, + 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, + 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, + 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, + 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, + 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, + 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, + 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, + 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, + 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, + 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, + 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, + 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, + 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, + 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, + 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, + 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, + 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, + 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, + 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, + 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, + 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, + 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, + 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, + 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, + 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, + 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, + 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, + 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, + 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, + 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, + 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, + 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, + 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, + 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, + 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, + 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, + 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, + 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, + 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, + 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, + 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, + 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, + 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, + 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, + 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, + 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, + 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, + 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, + 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, + 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, + 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, + 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, + 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, + 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, + 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, + 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, + 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, + 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, + 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, + 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, + 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, + 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, + 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, + 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, + 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, + 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, + 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, + 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, + 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, + 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, + 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, + 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, + 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, + 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, + 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, + 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, + 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, + 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, + 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, + 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, + 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, + 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, + 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, + 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, + 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, + 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, + 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, + 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, + 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, + 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, + 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, + 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, + 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, + 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, + 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, + 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, + 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, + 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, + 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, + 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, + 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, + 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, + 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, + 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, + 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, + 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, + 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, + 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, + 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, + 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, + 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, + 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, + 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, + 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, + 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, + 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, + 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, + 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, + 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, + 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, + 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, + 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, + 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, + 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, + 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, + 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, + 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, + 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, + 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, + 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, + 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, + 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, + 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, + 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, + 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, + 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, + 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, + 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, + 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, + 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, + 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, + 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, + 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, + 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, + 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, + 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, + 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, + 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, + 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, + 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, + 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, + 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, + 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, + 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, + 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, + 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, + 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, + 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, + 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, + 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, + 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, + 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, + 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, + 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, + 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, + 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, + 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, + 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, + 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, + 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, + 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, + 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, + 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, + 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, + 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, + 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, + 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, + 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, + 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, + 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, + 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, + 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, + 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, + 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, + 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, + 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, + 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, + 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, + 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, + 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, + 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, + 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, + 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, + 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, + 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, + 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, + 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, + 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, + 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, + 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, + 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, + 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, + 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, + 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, + 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, + 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, + 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, + 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, + 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, + 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, + 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, + 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, + 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, + 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, + 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, + 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, + 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, + 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, + 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -511,7 +509,6 @@ type ClientCommandsClient interface { ObjectTypeRelationRemove(ctx context.Context, in *pb.RpcObjectTypeRelationRemoveRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRelationRemoveResponse, error) ObjectTypeRecommendedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedRelationsSetResponse, error) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse, error) - ObjectTypeRecommendedLayoutSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedLayoutSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedLayoutSetResponse, error) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) HistoryGetVersions(ctx context.Context, in *pb.RpcHistoryGetVersionsRequest, opts ...grpc.CallOption) (*pb.RpcHistoryGetVersionsResponse, error) HistorySetVersion(ctx context.Context, in *pb.RpcHistorySetVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistorySetVersionResponse, error) @@ -1729,15 +1726,6 @@ func (c *clientCommandsClient) ObjectTypeRecommendedFeaturedRelationsSet(ctx con return out, nil } -func (c *clientCommandsClient) ObjectTypeRecommendedLayoutSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedLayoutSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedLayoutSetResponse, error) { - out := new(pb.RpcObjectTypeRecommendedLayoutSetResponse) - err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectTypeRecommendedLayoutSet", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *clientCommandsClient) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) { out := new(pb.RpcHistoryShowVersionResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/HistoryShowVersion", in, out, opts...) @@ -3337,7 +3325,6 @@ type ClientCommandsServer interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse - ObjectTypeRecommendedLayoutSet(context.Context, *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -3879,9 +3866,6 @@ func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedRelationsSet(ctx func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { return nil } -func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedLayoutSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedLayoutSetRequest) *pb.RpcObjectTypeRecommendedLayoutSetResponse { - return nil -} func (*UnimplementedClientCommandsServer) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { return nil } @@ -6383,24 +6367,6 @@ func _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler(srv inter return interceptor(ctx, in, info, handler) } -func _ClientCommands_ObjectTypeRecommendedLayoutSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(pb.RpcObjectTypeRecommendedLayoutSetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ClientCommandsServer).ObjectTypeRecommendedLayoutSet(ctx, in), nil - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/anytype.ClientCommands/ObjectTypeRecommendedLayoutSet", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ClientCommandsServer).ObjectTypeRecommendedLayoutSet(ctx, req.(*pb.RpcObjectTypeRecommendedLayoutSetRequest)), nil - } - return interceptor(ctx, in, info, handler) -} - func _ClientCommands_HistoryShowVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcHistoryShowVersionRequest) if err := dec(in); err != nil { @@ -9737,10 +9703,6 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectTypeRecommendedFeaturedRelationsSet", Handler: _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler, }, - { - MethodName: "ObjectTypeRecommendedLayoutSet", - Handler: _ClientCommands_ObjectTypeRecommendedLayoutSet_Handler, - }, { MethodName: "HistoryShowVersion", Handler: _ClientCommands_HistoryShowVersion_Handler, From e01a0752f2984337b5f41314459941abe4903610 Mon Sep 17 00:00:00 2001 From: kirillston Date: Sat, 21 Dec 2024 13:25:32 +0300 Subject: [PATCH 032/176] GO-4588 Replace layout with resolvedLayout --- core/block/delete.go | 2 +- core/block/detailservice/relations.go | 104 ------- core/block/detailservice/relations_test.go | 2 +- .../editor/accountobject/accountobject.go | 2 +- core/block/editor/basic/details.go | 4 +- core/block/editor/basic/details_test.go | 8 +- core/block/editor/basic/extract_objects.go | 4 +- core/block/editor/file/file.go | 2 +- core/block/editor/file/file_test.go | 10 +- core/block/editor/page.go | 2 +- core/block/editor/participant.go | 2 +- core/block/editor/participant_test.go | 2 +- core/block/editor/state/state.go | 4 +- core/block/editor/workspaces.go | 2 +- core/block/export/export.go | 10 +- core/block/export/export_test.go | 182 ++++++------ core/block/import/common/collection.go | 4 +- core/block/import/common/common.go | 2 +- .../common/objectid/deriveobject_test.go | 2 +- .../import/common/objectid/existingobject.go | 4 +- core/block/import/csv/collectionstrategy.go | 6 +- core/block/import/csv/converter_test.go | 4 +- .../import/notion/api/database/database.go | 4 +- core/block/import/notion/api/page/task.go | 6 +- core/block/object/objectcreator/chat.go | 2 +- core/block/object/objectcreator/installer.go | 8 +- .../object/objectcreator/installer_test.go | 18 +- .../block/object/objectcreator/object_type.go | 2 +- core/block/object/objectcreator/relation.go | 2 +- .../object/objectcreator/relation_option.go | 2 +- core/block/object/objectgraph/graph_test.go | 24 +- core/block/source/anytypeprofile.go | 2 +- core/block/source/date.go | 22 +- core/block/source/store.go | 2 +- core/block/template/service.go | 6 +- core/block/template/service_test.go | 12 +- core/converter/dot/dot.go | 2 +- core/converter/graphjson/graphjson.go | 2 +- core/files/file.go | 10 +- core/files/file_test.go | 10 +- core/files/fileobject/fileindex.go | 2 +- core/files/fileobject/fileindex_test.go | 22 +- core/files/fileobject/service.go | 2 +- core/indexer/indexer.go | 2 +- core/indexer/reindex.go | 2 +- core/kanban/group_tag.go | 2 +- core/relationutils/objecttype.go | 2 +- core/relationutils/relation.go | 2 +- .../crossspacesub/service_test.go | 42 +-- .../crossspacesub/spaceviewsub.go | 2 +- core/subscription/service_test.go | 272 +++++++++--------- core/syncstatus/detailsupdater/updater.go | 2 +- .../syncstatus/detailsupdater/updater_test.go | 34 +-- .../spacesyncstatus/spacestatus_test.go | 10 +- .../syncsubscriptions_test.go | 10 +- pkg/lib/database/anystore.go | 2 +- pkg/lib/database/database.go | 2 +- pkg/lib/database/order.go | 2 +- pkg/lib/database/order_test.go | 14 +- pkg/lib/localstore/objectstore/space.go | 2 +- pkg/lib/localstore/objectstore/space_test.go | 14 +- .../objectstore/spaceindex/queries.go | 4 +- .../objectstore/spaceindex/queries_test.go | 78 ++--- .../objectstore/spaceindex/relations.go | 8 +- .../objectstore/spaceindex/store.go | 2 +- .../systemobjectreviser.go | 2 +- .../systemobjectreviser_test.go | 2 +- space/service_test.go | 8 +- tests/integration/import_test.go | 6 +- 69 files changed, 475 insertions(+), 579 deletions(-) diff --git a/core/block/delete.go b/core/block/delete.go index cb2c60416..cc0526914 100644 --- a/core/block/delete.go +++ b/core/block/delete.go @@ -97,7 +97,7 @@ func (s *Service) deleteRelationOptions(spaceId string, relationKey string) erro relationOptions, _, err := s.objectStore.SpaceIndex(spaceId).QueryObjectIds(database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relationOption), }, diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 16254090c..33a682ae5 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -2,27 +2,22 @@ package detailservice import ( "context" - "errors" "fmt" "slices" "sort" "strings" "time" - "github.com/anyproto/any-sync/app/ocache" "go.uber.org/zap" "golang.org/x/exp/maps" "github.com/anyproto/anytype-heart/core/block/cache" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" - "github.com/anyproto/anytype-heart/core/block/editor/state" - "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" - "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider" "github.com/anyproto/anytype-heart/util/dateutil" "github.com/anyproto/anytype-heart/util/slice" @@ -96,105 +91,6 @@ func (s *service) objectTypeSetRelations( }) } -func (s *service) ObjectTypeSetLayout(objectTypeId string, layout int64) error { - if strings.HasPrefix(objectTypeId, bundle.TypePrefix) { - return ErrBundledTypeIsReadonly - } - - // 1. set layout to object type - err := cache.Do(s.objectGetter, objectTypeId, func(b smartblock.SmartBlock) error { - st := b.NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyRecommendedLayout, domain.Int64(layout)) - return b.Apply(st) - }) - if err != nil { - return fmt.Errorf("failed to set recommended layout: %w", err) - } - - spaceId, err := s.resolver.ResolveSpaceID(objectTypeId) - if err != nil { - return fmt.Errorf("failed to resolve space: %w", err) - } - - // object types are not cross-space - index := s.store.SpaceIndex(spaceId) - records, err := index.Query(database.Query{Filters: []database.FilterRequest{ - { - RelationKey: bundle.RelationKeyType, - Condition: model.BlockContentDataviewFilter_Equal, - Value: domain.String(objectTypeId), - }, - }}) - if err != nil { - return fmt.Errorf("failed to get objects of single type: %w", err) - } - - spc, err := s.spaceService.Get(context.Background(), spaceId) - if err != nil { - return fmt.Errorf("failed to get space: %w", err) - } - - var resultErr error - for _, record := range records { - id := record.Details.GetString(bundle.RelationKeyId) - if id == "" { - continue - } - if record.Details.Has(bundle.RelationKeyLayout) { - // we should delete layout from object, that's why we apply changes even if object is not in cache - err = cache.Do(s.objectGetter, id, func(b smartblock.SmartBlock) error { - st := b.NewState() - st.RemoveDetail(bundle.RelationKeyLayout) - st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - return b.Apply(st) - }) - if err != nil { - resultErr = errors.Join(resultErr, err) - } - continue - } - - err = spc.DoLockedIfNotExists(id, func() error { - return index.ModifyObjectDetails(id, func(details *domain.Details) (*domain.Details, bool, error) { - if details == nil { - return nil, false, nil - } - if details.GetInt64(bundle.RelationKeyResolvedLayout) == layout { - return nil, false, nil - } - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - return details, true, nil - }) - }) - - if err == nil { - continue - } - - if !errors.Is(err, ocache.ErrExists) { - resultErr = errors.Join(resultErr, err) - continue - } - - err = spc.Do(id, func(b smartblock.SmartBlock) error { - if cr, ok := b.(source.ChangeReceiver); ok { - return cr.StateAppend(func(d state.Doc) (s *state.State, changes []*pb.ChangeContent, err error) { - st := d.NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - return st, nil, nil - }) - } - // do no Apply. StateAppend sends the event and runs reindex - return nil - }) - if err != nil { - resultErr = errors.Join(resultErr, err) - } - } - - return resultErr -} - func (s *service) ListRelationsWithValue(spaceId string, value domain.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) { var ( countersByKeys = make(map[domain.RelationKey]int64) diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index 3218f8258..28c865c44 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -23,7 +23,7 @@ func relationObject(key domain.RelationKey, format model.RelationFormat) objects return objectstore.TestObject{ bundle.RelationKeyId: domain.String(key.URL()), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyLayout: domain.Float64(float64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Float64(float64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(key.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(format)), } diff --git a/core/block/editor/accountobject/accountobject.go b/core/block/editor/accountobject/accountobject.go index 351633f8a..fec67f4d1 100644 --- a/core/block/editor/accountobject/accountobject.go +++ b/core/block/editor/accountobject/accountobject.go @@ -206,7 +206,7 @@ func (a *accountObject) initState(st *state.State) error { template.InitTemplate(st, template.WithTitle, template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeyProfile}), - template.WithForcedDetail(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_profile)), + template.WithForcedDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_profile)), template.WithDetail(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)), ) blockId := "identity" diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index fbdedb8ef..166ac3b9b 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -293,7 +293,7 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er if detail.Key == bundle.RelationKeyType { return fmt.Errorf("can't change object type directly: %w", domain.ErrValidationFailed) } - if detail.Key == bundle.RelationKeyLayout { + if detail.Key == bundle.RelationKeyResolvedLayout { // special case when client sets the layout detail directly instead of using SetLayoutInState command return bs.SetLayoutInState(st, model.ObjectTypeLayout(detail.Value.Int64()), false) } @@ -414,7 +414,7 @@ func (bs *basic) SetLayoutInState(s *state.State, toLayout model.ObjectTypeLayou } fromLayout, _ := s.Layout() - s.SetDetail(bundle.RelationKeyLayout, domain.Int64(toLayout)) + s.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(toLayout)) if err = bs.layoutConverter.Convert(s, fromLayout, toLayout); err != nil { return fmt.Errorf("convert layout: %w", err) } diff --git a/core/block/editor/basic/details_test.go b/core/block/editor/basic/details_test.go index 7a046b4cc..da662a700 100644 --- a/core/block/editor/basic/details_test.go +++ b/core/block/editor/basic/details_test.go @@ -151,10 +151,10 @@ func TestBasic_SetObjectTypesInState(t *testing.T) { f.lastUsed.EXPECT().UpdateLastUsedDate(mock.Anything, bundle.TypeKeyTask, mock.Anything).Return().Once() f.store.AddObjects(t, []objectstore.TestObject{{ - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyId: domain.String("ot-task"), - bundle.RelationKeyUniqueKey: domain.String("ot-task"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_todo)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("ot-task"), + bundle.RelationKeyUniqueKey: domain.String("ot-task"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_todo)), }}) s := f.sb.NewState() diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 13b9d4bbe..2873cbb94 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -178,7 +178,7 @@ func removeBlocks(state *state.State, descendants []simple.Block) { func createTargetObjectDetails(nameText string, layout model.ObjectTypeLayout) *domain.Details { details := domain.NewDetails() - details.SetInt64(bundle.RelationKeyLayout, int64(layout)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(layout)) // Without this check title will be duplicated in template.WithNameToFirstBlock if layout != model.ObjectType_note { details.SetString(bundle.RelationKeyName, nameText) @@ -252,5 +252,5 @@ func copySubtreeOfBlocks(s *state.State, oldRootId string, oldBlocks []simple.Bl } func hasNoteLayout(s *state.State) bool { - return model.ObjectTypeLayout(s.Details().GetInt64(bundle.RelationKeyLayout)) == model.ObjectType_note + return model.ObjectTypeLayout(s.Details().GetInt64(bundle.RelationKeyResolvedLayout)) == model.ObjectType_note } diff --git a/core/block/editor/file/file.go b/core/block/editor/file/file.go index daf0730fd..390f7fa61 100644 --- a/core/block/editor/file/file.go +++ b/core/block/editor/file/file.go @@ -126,7 +126,7 @@ func (sf *sfile) SetFileTargetObjectId(ctx session.Context, blockId, targetObjec return err } var blockContentFileType model.BlockContentFileType - switch model.ObjectTypeLayout(sb.Details().GetInt64(bundle.RelationKeyLayout)) { + switch model.ObjectTypeLayout(sb.Details().GetInt64(bundle.RelationKeyResolvedLayout)) { case model.ObjectType_image: blockContentFileType = model.BlockContentFile_Image case model.ObjectType_audio: diff --git a/core/block/editor/file/file_test.go b/core/block/editor/file/file_test.go index 270e9ce82..8d3fbe1f2 100644 --- a/core/block/editor/file/file_test.go +++ b/core/block/editor/file/file_test.go @@ -110,7 +110,7 @@ func TestFile(t *testing.T) { fx := newFixture(t) fileSb := smarttest.New("root") fileSb.SetDetails(nil, []domain.Detail{{ - Key: bundle.RelationKeyLayout, + Key: bundle.RelationKeyResolvedLayout, Value: domain.Int64(int64(testCase.typeLayout)), }}, false) @@ -160,7 +160,7 @@ func TestDropFiles(t *testing.T) { fx := newFixture(t) st := fx.sb.Doc.NewState() - st.SetDetail(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_collection))) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_collection))) fx.sb.Doc = st fx.pickerFx.EXPECT().GetObject(context.Background(), "root").Return(fx, nil).Maybe() fx.mockSender.EXPECT().Broadcast(mock.Anything).Return().Maybe() @@ -185,7 +185,7 @@ func TestDropFiles(t *testing.T) { fx := newFixture(t) st := fx.sb.Doc.NewState() - st.SetDetail(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_collection))) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_collection))) fx.sb.Doc = st fx.pickerFx.EXPECT().GetObject(context.Background(), "root").Return(fx, nil).Maybe() fx.mockSender.EXPECT().Broadcast(mock.Anything).Return().Maybe() @@ -210,7 +210,7 @@ func TestDropFiles(t *testing.T) { fx := newFixture(t) st := fx.sb.Doc.NewState() - st.SetDetail(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_collection))) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_collection))) fx.sb.Doc = st fx.pickerFx.EXPECT().GetObject(context.Background(), "root").Return(fx, nil) fx.mockSender.EXPECT().Broadcast(mock.Anything).Return() @@ -245,7 +245,7 @@ func TestDropFiles(t *testing.T) { fx := newFixture(t) st := fx.sb.Doc.NewState() - st.SetDetail(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_collection))) + st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_collection))) fx.sb.Doc = st fx.pickerFx.EXPECT().GetObject(context.Background(), "root").Return(fx, nil) fx.mockSender.EXPECT().Broadcast(mock.Anything).Return() diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 649f9d701..fd7f23470 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -124,7 +124,7 @@ func (p *Page) deleteRelationOptions(spaceID string, relationKey string) error { Value: domain.String(relationKey), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relationOption), }, diff --git a/core/block/editor/participant.go b/core/block/editor/participant.go index e9e7beeeb..d709235eb 100644 --- a/core/block/editor/participant.go +++ b/core/block/editor/participant.go @@ -49,7 +49,7 @@ func (p *participant) Init(ctx *smartblock.InitContext) (err error) { ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsReadonly, domain.Bool(true)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsArchived, domain.Bool(false)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsHidden, domain.Bool(false)) - ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_participant)) + ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_participant)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)) records, err := p.objectStore.QueryByIds([]string{p.Id()}) diff --git a/core/block/editor/participant_test.go b/core/block/editor/participant_test.go index 8fb32ea1e..833d0212a 100644 --- a/core/block/editor/participant_test.go +++ b/core/block/editor/participant_test.go @@ -177,7 +177,7 @@ func newStoreFixture(t *testing.T) *spaceindex.StoreFixture { for _, rel := range []domain.RelationKey{ bundle.RelationKeyFeaturedRelations, bundle.RelationKeyIdentity, bundle.RelationKeyName, bundle.RelationKeyIdentityProfileLink, bundle.RelationKeyIsReadonly, bundle.RelationKeyIsArchived, - bundle.RelationKeyDescription, bundle.RelationKeyIsHidden, bundle.RelationKeyLayout, + bundle.RelationKeyDescription, bundle.RelationKeyIsHidden, bundle.RelationKeyResolvedLayout, bundle.RelationKeyLayoutAlign, bundle.RelationKeyIconImage, bundle.RelationKeyGlobalName, bundle.RelationKeyId, bundle.RelationKeyParticipantPermissions, bundle.RelationKeyLastModifiedBy, bundle.RelationKeySpaceId, bundle.RelationKeyParticipantStatus, bundle.RelationKeyIsHiddenDiscovery, diff --git a/core/block/editor/state/state.go b/core/block/editor/state/state.go index e2a3b4892..c4eb114ed 100644 --- a/core/block/editor/state/state.go +++ b/core/block/editor/state/state.go @@ -1685,8 +1685,8 @@ func (s *State) GetChangedStoreKeys(prefixPath ...string) (paths [][]string) { func (s *State) Layout() (model.ObjectTypeLayout, bool) { if det := s.Details(); det != nil { - if det.Has(bundle.RelationKeyLayout) { - return model.ObjectTypeLayout(det.GetInt64(bundle.RelationKeyLayout)), true + if det.Has(bundle.RelationKeyResolvedLayout) { + return model.ObjectTypeLayout(det.GetInt64(bundle.RelationKeyResolvedLayout)), true } } return 0, false diff --git a/core/block/editor/workspaces.go b/core/block/editor/workspaces.go index d31c7dbdd..2cd389616 100644 --- a/core/block/editor/workspaces.go +++ b/core/block/editor/workspaces.go @@ -80,7 +80,7 @@ func (w *Workspaces) initTemplate(ctx *smartblock.InitContext) { template.WithTitle, template.WithFeaturedRelations, template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), - template.WithForcedDetail(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_space)), + template.WithForcedDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_space)), template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeySpace}), template.WithForcedDetail(bundle.RelationKeyFeaturedRelations, domain.StringList([]string{bundle.RelationKeyType.String(), bundle.RelationKeyCreator.String()})), ) diff --git a/core/block/export/export.go b/core/block/export/export.go index a7d5c4a2d..c0d4b4144 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -515,8 +515,8 @@ func getObjectRelations(state *state.State) []string { } func isObjectWithDataview(details *domain.Details) bool { - return details.GetInt64(bundle.RelationKeyLayout) == int64(model.ObjectType_collection) || - details.GetInt64(bundle.RelationKeyLayout) == int64(model.ObjectType_set) + return details.GetInt64(bundle.RelationKeyResolvedLayout) == int64(model.ObjectType_collection) || + details.GetInt64(bundle.RelationKeyResolvedLayout) == int64(model.ObjectType_set) } func getDataviewRelations(state *state.State) ([]string, error) { @@ -656,7 +656,7 @@ func (e *exportContext) getRelationOptions(relationKey string) ([]database.Recor relationOptionsDetails, err := e.objectStore.SpaceIndex(e.spaceId).Query(database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relationOption), }, @@ -1139,8 +1139,8 @@ func validTypeForNonProtobuf(sbType smartblock.SmartBlockType) bool { } func validLayoutForNonProtobuf(details *domain.Details) bool { - return details.GetInt64(bundle.RelationKeyLayout) != int64(model.ObjectType_collection) && - details.GetInt64(bundle.RelationKeyLayout) != int64(model.ObjectType_set) + return details.GetInt64(bundle.RelationKeyResolvedLayout) != int64(model.ObjectType_collection) && + details.GetInt64(bundle.RelationKeyResolvedLayout) != int64(model.ObjectType_set) } func cleanupFile(wr writer) { diff --git a/core/block/export/export_test.go b/core/block/export/export_test.go index ac3b9bb3e..dc6545f60 100644 --- a/core/block/export/export_test.go +++ b/core/block/export/export_test.go @@ -74,7 +74,7 @@ func TestExport_Export(t *testing.T) { { bundle.RelationKeyId: domain.String(objectTypeId), bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), bundle.RelationKeyRecommendedRelations: domain.StringList([]string{addr.MissingObject}), bundle.RelationKeySpaceId: domain.String(spaceId), }, @@ -575,15 +575,15 @@ func Test_docsForExport(t *testing.T) { bundle.RelationKeyRelationKey: domain.String(relationKey), bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_tag)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeySpaceId: domain.String(spaceId), }, { - bundle.RelationKeyId: domain.String(optionId), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyUniqueKey: domain.String(optionUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(optionId), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyUniqueKey: domain.String(optionUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeySpaceId: domain.String(spaceId), }, }) @@ -671,26 +671,26 @@ func Test_docsForExport(t *testing.T) { bundle.RelationKeySpaceId: domain.String(spaceId), }, { - bundle.RelationKeyId: domain.String(relationKey), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(relationKey), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(objectTypeKey), bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), bundle.RelationKeyRecommendedRelations: domain.StringList([]string{recommendedRelationKey}), bundle.RelationKeySpaceId: domain.String(spaceId), bundle.RelationKeyType: domain.String(objectTypeKey), }, { - bundle.RelationKeyId: domain.String(recommendedRelationKey), - bundle.RelationKeyRelationKey: domain.String(recommendedRelationKey), - bundle.RelationKeyUniqueKey: domain.String(recommendedRelationUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(recommendedRelationKey), + bundle.RelationKeyRelationKey: domain.String(recommendedRelationKey), + bundle.RelationKeyUniqueKey: domain.String(recommendedRelationUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(templateId), @@ -826,7 +826,7 @@ func Test_docsForExport(t *testing.T) { { bundle.RelationKeyId: domain.String(objectTypeId), bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), bundle.RelationKeyRecommendedRelations: domain.StringList([]string{addr.MissingObject}), bundle.RelationKeySpaceId: domain.String(spaceId), }, @@ -905,11 +905,11 @@ func Test_docsForExport(t *testing.T) { bundle.RelationKeyType: domain.String(objectTypeId), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, }) @@ -977,42 +977,42 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - bundle.RelationKeyName: domain.String("name1"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String("id"), + bundle.RelationKeyName: domain.String("name1"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { - bundle.RelationKeyId: domain.String(bundle.RelationKeyTag.String()), - bundle.RelationKeyName: domain.String(bundle.RelationKeyTag.String()), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyTag.String()), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeyUniqueKey: domain.String(bundle.RelationKeyTag.URL()), + bundle.RelationKeyId: domain.String(bundle.RelationKeyTag.String()), + bundle.RelationKeyName: domain.String(bundle.RelationKeyTag.String()), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyTag.String()), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyUniqueKey: domain.String(bundle.RelationKeyTag.URL()), }, { - bundle.RelationKeyId: domain.String(relationKey), - bundle.RelationKeyName: domain.String(relationKey), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeyUniqueKey: domain.String(relationKeyUniqueKey.Marshal()), + bundle.RelationKeyId: domain.String(relationKey), + bundle.RelationKeyName: domain.String(relationKey), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyUniqueKey: domain.String(relationKeyUniqueKey.Marshal()), }, }) smartBlockTest := smarttest.New("id") doc := smartBlockTest.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String("id"), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String("id"), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), })) doc.AddRelationLinks(&model.RelationLink{ Key: bundle.RelationKeyId.String(), @@ -1021,7 +1021,7 @@ func Test_docsForExport(t *testing.T) { Key: bundle.RelationKeyType.String(), Format: model.RelationFormat_longtext, }, &model.RelationLink{ - Key: bundle.RelationKeyLayout.String(), + Key: bundle.RelationKeyResolvedLayout.String(), Format: model.RelationFormat_number, }) doc.Set(simple.New(&model.Block{ @@ -1095,26 +1095,26 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - bundle.RelationKeyName: domain.String("name1"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String("id"), + bundle.RelationKeyName: domain.String("name1"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, }) smartBlockTest := smarttest.New("id") doc := smartBlockTest.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String("id"), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String("id"), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), })) doc.AddRelationLinks(&model.RelationLink{ Key: bundle.RelationKeyId.String(), @@ -1123,7 +1123,7 @@ func Test_docsForExport(t *testing.T) { Key: bundle.RelationKeyType.String(), Format: model.RelationFormat_longtext, }, &model.RelationLink{ - Key: bundle.RelationKeyLayout.String(), + Key: bundle.RelationKeyResolvedLayout.String(), Format: model.RelationFormat_number, }) smartBlockTest.Doc = doc @@ -1175,18 +1175,18 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - bundle.RelationKeyName: domain.String("name1"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String("id"), + bundle.RelationKeyName: domain.String("name1"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, }) @@ -1252,34 +1252,34 @@ func Test_docsForExport(t *testing.T) { bundle.RelationKeySpaceId: domain.String(spaceId), }, { - bundle.RelationKeyId: domain.String(relationKey), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(relationObjectTypeKey), + bundle.RelationKeyId: domain.String(relationKey), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(relationObjectTypeKey), }, { bundle.RelationKeyId: domain.String(objectTypeKey), bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), bundle.RelationKeyRecommendedRelations: domain.StringList([]string{recommendedRelationKey}), bundle.RelationKeySpaceId: domain.String(spaceId), bundle.RelationKeyType: domain.String(objectTypeKey), }, { - bundle.RelationKeyId: domain.String(relationObjectTypeKey), - bundle.RelationKeyUniqueKey: domain.String(relationObjectTypeUK.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeKey), + bundle.RelationKeyId: domain.String(relationObjectTypeKey), + bundle.RelationKeyUniqueKey: domain.String(relationObjectTypeUK.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeKey), }, { - bundle.RelationKeyId: domain.String(recommendedRelationKey), - bundle.RelationKeyRelationKey: domain.String(recommendedRelationKey), - bundle.RelationKeyUniqueKey: domain.String(recommendedRelationUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(recommendedRelationKey), + bundle.RelationKeyRelationKey: domain.String(recommendedRelationKey), + bundle.RelationKeyUniqueKey: domain.String(recommendedRelationUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeySpaceId: domain.String(spaceId), }, }) diff --git a/core/block/import/common/collection.go b/core/block/import/common/collection.go index afa03847a..101601269 100644 --- a/core/block/import/common/collection.go +++ b/core/block/import/common/collection.go @@ -87,7 +87,7 @@ func (r *ImportCollection) getRootCollectionSnapshot( if detailsStruct == nil { detailsStruct = domain.NewDetails() } - detailsStruct.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_collection)) + detailsStruct.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_collection)) return &Snapshot{ Id: uuid.New().String(), FileName: collectionName, @@ -129,7 +129,7 @@ func (r *ImportCollection) getCreateCollectionRequest(collectionName string, ico bundle.RelationKeySourceFilePath: domain.String(collectionName), bundle.RelationKeyName: domain.String(collectionName), bundle.RelationKeyIsFavorite: domain.Bool(shouldBeFavorite), - bundle.RelationKeyLayout: domain.Int64(model.ObjectType_collection), + bundle.RelationKeyResolvedLayout: domain.Int64(model.ObjectType_collection), bundle.RelationKeyIconImage: domain.String(icon), }) } diff --git a/core/block/import/common/common.go b/core/block/import/common/common.go index 9c89ac475..6ab26f96c 100644 --- a/core/block/import/common/common.go +++ b/core/block/import/common/common.go @@ -48,7 +48,7 @@ func GetCommonDetails(sourcePath, name, emoji string, layout model.ObjectTypeLay details.SetString(bundle.RelationKeyIconEmoji, emoji) details.SetInt64(bundle.RelationKeyCreatedDate, creationTime) details.SetInt64(bundle.RelationKeyLastModifiedDate, modTime) - details.SetInt64(bundle.RelationKeyLayout, int64(layout)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(layout)) return details } diff --git a/core/block/import/common/objectid/deriveobject_test.go b/core/block/import/common/objectid/deriveobject_test.go index 142731f16..d391e5ccc 100644 --- a/core/block/import/common/objectid/deriveobject_test.go +++ b/core/block/import/common/objectid/deriveobject_test.go @@ -89,7 +89,7 @@ func TestDerivedObject_GetIDAndPayload(t *testing.T) { bundle.RelationKeyId: domain.String("oldId"), bundle.RelationKeyName: domain.String("name"), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_number)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeySpaceId: domain.String("spaceId"), }, }) diff --git a/core/block/import/common/objectid/existingobject.go b/core/block/import/common/objectid/existingobject.go index 59f2fc3f2..32a2f1cc9 100644 --- a/core/block/import/common/objectid/existingobject.go +++ b/core/block/import/common/objectid/existingobject.go @@ -114,7 +114,7 @@ func (e *existingObject) getExistingRelationOption(snapshot *common.Snapshot, sp }, { Condition: model.BlockContentDataviewFilter_Equal, - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Value: domain.Int64(model.ObjectType_relationOption), }, }, @@ -142,7 +142,7 @@ func (e *existingObject) getExistingRelation(snapshot *common.Snapshot, spaceID }, { Condition: model.BlockContentDataviewFilter_Equal, - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Value: domain.Int64(model.ObjectType_relation), }, }, diff --git a/core/block/import/csv/collectionstrategy.go b/core/block/import/csv/collectionstrategy.go index 5131b8ec8..e1990fa4e 100644 --- a/core/block/import/csv/collectionstrategy.go +++ b/core/block/import/csv/collectionstrategy.go @@ -177,7 +177,7 @@ func getRelationDetails(name, key string, format float64) *domain.Details { details.SetFloat64(bundle.RelationKeyRelationFormat, format) details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { log.Warnf("failed to create unique key for Notion relation: %v", err) @@ -249,7 +249,7 @@ func getDetailsForObject(relationsValues []string, relations []*model.Relation, }) } details.SetString(bundle.RelationKeySourceFilePath, buildSourcePath(path, objectOrderIndex, transpose)) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_basic)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_basic)) return details, relationLinks } @@ -271,7 +271,7 @@ func provideObjectSnapshot(st *state.State, details *domain.Details) *common.Sna func (c *CollectionStrategy) getCollectionSnapshot(details *domain.Details, st *state.State, p string, relations []*model.Relation) *common.Snapshot { details = st.CombinedDetails().Merge(details) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_collection)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_collection)) for _, relation := range relations { err := common.AddRelationsToDataView(st, &model.RelationLink{ diff --git a/core/block/import/csv/converter_test.go b/core/block/import/csv/converter_test.go index cfae75e71..b5bb86307 100644 --- a/core/block/import/csv/converter_test.go +++ b/core/block/import/csv/converter_test.go @@ -315,7 +315,7 @@ func TestCsv_GetSnapshotsUseFirstColumnForRelationsOn(t *testing.T) { func assertSnapshotsHaveDetails(t *testing.T, want []string, objects *common.Snapshot) { for key, value := range objects.Snapshot.Data.Details.Iterate() { - if key == bundle.RelationKeySourceFilePath || key == bundle.RelationKeyLayout { + if key == bundle.RelationKeySourceFilePath || key == bundle.RelationKeyResolvedLayout { continue } assert.Contains(t, want, value.String()) @@ -866,6 +866,6 @@ func TestCSV_GetSnapshots(t *testing.T) { } func getRelationsNumber(keys []domain.RelationKey) int { return lo.CountBy(keys, func(item domain.RelationKey) bool { - return item != bundle.RelationKeySourceFilePath && item != bundle.RelationKeyLayout + return item != bundle.RelationKeySourceFilePath && item != bundle.RelationKeyResolvedLayout }) } diff --git a/core/block/import/notion/api/database/database.go b/core/block/import/notion/api/database/database.go index f23ae9833..4e2cd14bd 100644 --- a/core/block/import/notion/api/database/database.go +++ b/core/block/import/notion/api/database/database.go @@ -258,7 +258,7 @@ func (ds *Service) getRelationDetails(databaseProperty property.DatabaseProperty details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, databaseProperty.GetID()) uniqueKey, err := domain.NewUniqueKey(sb.SmartBlockTypeRelation, key) if err != nil { @@ -294,7 +294,7 @@ func (ds *Service) getCollectionDetails(d Database) (*domain.Details, []*model.R details.SetString(bundle.RelationKeyLastModifiedBy, d.LastEditedBy.Name) details.SetString(bundle.RelationKeyDescription, api.RichTextToDescription(d.Description)) details.SetBool(bundle.RelationKeyIsFavorite, false) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_collection)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_collection)) details.SetInt64(bundle.RelationKeyLastModifiedDate, d.LastEditedTime.Unix()) details.SetInt64(bundle.RelationKeyCreatedDate, d.CreatedTime.Unix()) diff --git a/core/block/import/notion/api/page/task.go b/core/block/import/notion/api/page/task.go index 435366675..762a20cf5 100644 --- a/core/block/import/notion/api/page/task.go +++ b/core/block/import/notion/api/page/task.go @@ -198,7 +198,7 @@ func (pt *Task) prepareDetails() (*domain.Details, []*model.RelationLink) { lastEditedTime := common.ConvertStringToTime(pt.p.LastEditedTime) details.SetInt64(bundle.RelationKeyLastModifiedDate, lastEditedTime) details.SetInt64(bundle.RelationKeyCreatedDate, createdTime) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_basic)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_basic)) return details, relationLinks } @@ -313,7 +313,7 @@ func (pt *Task) getRelationDetails(key string, name string, propObject property. details.SetInt64(bundle.RelationKeyRelationFormat, int64(propObject.GetFormat())) details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, propObject.GetID()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { @@ -562,7 +562,7 @@ func getDetailsForRelationOption(name, rel string) (string, *domain.Details) { details := domain.NewDetails() details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, rel) - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelationOption, id) if err != nil { diff --git a/core/block/object/objectcreator/chat.go b/core/block/object/objectcreator/chat.go index 1d480cf5e..b6557e009 100644 --- a/core/block/object/objectcreator/chat.go +++ b/core/block/object/objectcreator/chat.go @@ -41,7 +41,7 @@ func (s *service) createChatDerived(ctx context.Context, space clientspace.Space } createState := state.NewDocWithUniqueKey("", nil, key).(*state.State) - details.Set(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) createState.SetDetails(details) id, newDetails, err := s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyChatDerived}, createState) diff --git a/core/block/object/objectcreator/installer.go b/core/block/object/objectcreator/installer.go index 7dfd33db5..56cffb402 100644 --- a/core/block/object/objectcreator/installer.go +++ b/core/block/object/objectcreator/installer.go @@ -145,12 +145,12 @@ func (s *service) listInstalledObjects(space clientspace.Space, sourceObjectIds Operator: model.BlockContentDataviewFilter_Or, NestedFilters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_objectType), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relation), }, @@ -300,11 +300,11 @@ func (s *service) queryDeletedObjects(space clientspace.Space, sourceObjectIDs [ return s.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{ database.FiltersOr{ database.FilterEq{ - Key: bundle.RelationKeyLayout, + Key: bundle.RelationKeyResolvedLayout, Value: domain.Int64(model.ObjectType_objectType), }, database.FilterEq{ - Key: bundle.RelationKeyLayout, + Key: bundle.RelationKeyResolvedLayout, Value: domain.Int64(model.ObjectType_relation), }, }, diff --git a/core/block/object/objectcreator/installer_test.go b/core/block/object/objectcreator/installer_test.go index dcbf7176c..c61077f0b 100644 --- a/core/block/object/objectcreator/installer_test.go +++ b/core/block/object/objectcreator/installer_test.go @@ -50,12 +50,12 @@ func TestInstaller_queryDeletedObjects(t *testing.T) { {true, false, "otherSpaceId", bundle.RelationKeyAudioAlbum}, } { store.AddObjects(t, obj.spaceId, []objectstore.TestObject{{ - bundle.RelationKeyId: domain.String(obj.key.URL()), - bundle.RelationKeySpaceId: domain.String(obj.spaceId), - bundle.RelationKeySourceObject: domain.String(obj.key.BundledURL()), - bundle.RelationKeyIsDeleted: domain.Bool(obj.isDeleted), - bundle.RelationKeyIsArchived: domain.Bool(obj.isArchived), - bundle.RelationKeyLayout: domain.Int64(model.ObjectType_relation), + bundle.RelationKeyId: domain.String(obj.key.URL()), + bundle.RelationKeySpaceId: domain.String(obj.spaceId), + bundle.RelationKeySourceObject: domain.String(obj.key.BundledURL()), + bundle.RelationKeyIsDeleted: domain.Bool(obj.isDeleted), + bundle.RelationKeyIsArchived: domain.Bool(obj.isArchived), + bundle.RelationKeyResolvedLayout: domain.Int64(model.ObjectType_relation), }}) sourceObjectIds = append(sourceObjectIds, obj.key.BundledURL()) if obj.spaceId == spaceId && (obj.isDeleted || obj.isArchived) { @@ -83,9 +83,9 @@ func TestInstaller_reinstallObject(t *testing.T) { t.Run("reinstall archived object", func(t *testing.T) { // given sourceDetails := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String(bundle.TypeKeyProject.BundledURL()), - bundle.RelationKeySpaceId: domain.String(addr.AnytypeMarketplaceWorkspace), - bundle.RelationKeyName: domain.String(bundle.TypeKeyProject.String()), + bundle.RelationKeyId: domain.String(bundle.TypeKeyProject.BundledURL()), + bundle.RelationKeySpaceId: domain.String(addr.AnytypeMarketplaceWorkspace), + bundle.RelationKeyName: domain.String(bundle.TypeKeyProject.String()), bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyProject.URL()), }) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 36fcae195..2e2cfc019 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -67,7 +67,7 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, } object.SetString(bundle.RelationKeyId, id) - object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) + object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_objectType)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index 317c84287..addfec523 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -56,7 +56,7 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d } // todo: check the existence of objectTypes in space. InstallBundledObjects should be called same as for recommendedRelations on type creation - object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) + object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/object/objectcreator/relation_option.go b/core/block/object/objectcreator/relation_option.go index 4bc7094fa..9567f888b 100644 --- a/core/block/object/objectcreator/relation_option.go +++ b/core/block/object/objectcreator/relation_option.go @@ -33,7 +33,7 @@ func (s *service) createRelationOption(ctx context.Context, space clientspace.Sp object = details.Copy() object.SetString(bundle.RelationKeyUniqueKey, uniqueKey.Marshal()) - object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) + object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/object/objectgraph/graph_test.go b/core/block/object/objectgraph/graph_test.go index 64ff4abd0..8bda81f00 100644 --- a/core/block/object/objectgraph/graph_test.go +++ b/core/block/object/objectgraph/graph_test.go @@ -52,25 +52,25 @@ func Test(t *testing.T) { fx.objectStoreMock.AddObjects(t, spaceId, []spaceindex.TestObject{ { bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, { bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_shorttext)), }, { bundle.RelationKeyId: domain.String("rel3"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, { bundle.RelationKeyId: domain.String("rel4"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyLinkedProjects.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, @@ -96,34 +96,34 @@ func Test(t *testing.T) { fx.objectStoreMock.AddObjects(t, spaceId, []spaceindex.TestObject{ { bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, { bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_shorttext)), }, { bundle.RelationKeyId: domain.String("rel3"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, { bundle.RelationKeyId: domain.String("rel4"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyLinkedProjects.String()), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, }) fx.objectStoreMock.AddVirtualDetails(dateObject.Id(), domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String(dateObject.Id()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_date)), - bundle.RelationKeyName: domain.String(dateObject.Name()), - bundle.RelationKeyTimestamp: domain.Int64(dateObject.Time().Unix()), + bundle.RelationKeyId: domain.String(dateObject.Id()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_date)), + bundle.RelationKeyName: domain.String(dateObject.Name()), + bundle.RelationKeyTimestamp: domain.Int64(dateObject.Time().Unix()), })) fx.subscriptionServiceMock.EXPECT().Search(mock.Anything).Return(&subscription.SubscribeResponse{ Records: []*domain.Details{ diff --git a/core/block/source/anytypeprofile.go b/core/block/source/anytypeprofile.go index 156cb086c..e703353bb 100644 --- a/core/block/source/anytypeprofile.go +++ b/core/block/source/anytypeprofile.go @@ -53,7 +53,7 @@ func (v *anytypeProfile) getDetails() (p *domain.Details) { det.SetBool(bundle.RelationKeyIsReadonly, true) det.SetBool(bundle.RelationKeyIsArchived, false) det.SetBool(bundle.RelationKeyIsHidden, true) - det.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_profile)) + det.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_profile)) return det } diff --git a/core/block/source/date.go b/core/block/source/date.go index 2e78b39fd..6aea963f9 100644 --- a/core/block/source/date.go +++ b/core/block/source/date.go @@ -61,17 +61,17 @@ func (d *date) getDetails() (*domain.Details, error) { restrictions := restriction.GetRestrictionsBySBType(smartblock.SmartBlockTypeDate) return domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyName: domain.String(dateObject.Name()), - bundle.RelationKeyId: domain.String(d.id), - bundle.RelationKeyType: domain.String(d.typeId), - bundle.RelationKeyIsReadonly: domain.Bool(true), - bundle.RelationKeyIsArchived: domain.Bool(false), - bundle.RelationKeyIsHidden: domain.Bool(false), - bundle.RelationKeyLayout: domain.Float64(float64(model.ObjectType_date)), - bundle.RelationKeyIconEmoji: domain.String("📅"), - bundle.RelationKeySpaceId: domain.String(d.SpaceID()), - bundle.RelationKeyTimestamp: domain.Int64(dateObject.Time().Unix()), - bundle.RelationKeyRestrictions: domain.Int64List(restrictions), + bundle.RelationKeyName: domain.String(dateObject.Name()), + bundle.RelationKeyId: domain.String(d.id), + bundle.RelationKeyType: domain.String(d.typeId), + bundle.RelationKeyIsReadonly: domain.Bool(true), + bundle.RelationKeyIsArchived: domain.Bool(false), + bundle.RelationKeyIsHidden: domain.Bool(false), + bundle.RelationKeyResolvedLayout: domain.Float64(float64(model.ObjectType_date)), + bundle.RelationKeyIconEmoji: domain.String("📅"), + bundle.RelationKeySpaceId: domain.String(d.SpaceID()), + bundle.RelationKeyTimestamp: domain.Int64(dateObject.Time().Unix()), + bundle.RelationKeyRestrictions: domain.Int64List(restrictions), }), nil } diff --git a/core/block/source/store.go b/core/block/source/store.go index ac1874520..80bce921e 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -74,7 +74,7 @@ func (s *store) ReadDoc(ctx context.Context, receiver ChangeReceiver, empty bool st := state.NewDoc(s.id, nil).(*state.State) // Set object type here in order to derive value of Type relation in smartblock.Init st.SetObjectTypeKey(bundle.TypeKeyChatDerived) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) st.SetDetailAndBundledRelation(bundle.RelationKeyIsHidden, domain.Bool(true)) return st, nil } diff --git a/core/block/template/service.go b/core/block/template/service.go index ff51da8fb..1325f7582 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -41,7 +41,7 @@ var ( log = logging.Logger("template") templateIsPreferableRelationKeys = []domain.RelationKey{ - bundle.RelationKeyFeaturedRelations, bundle.RelationKeyLayout, + bundle.RelationKeyFeaturedRelations, bundle.RelationKeyResolvedLayout, bundle.RelationKeyIconEmoji, bundle.RelationKeyCoverId, bundle.RelationKeySourceObject, } @@ -97,7 +97,7 @@ func (s *service) CreateTemplateStateWithDetails( details *domain.Details, ) (targetState *state.State, err error) { if templateId == BlankTemplateId || templateId == "" { - layout := details.GetInt64(bundle.RelationKeyLayout) + layout := details.GetInt64(bundle.RelationKeyResolvedLayout) targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout)) } else { targetState, err = s.createCustomTemplateState(templateId) @@ -115,7 +115,7 @@ func (s *service) CreateTemplateStateWithDetails( func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { st, err := s.buildState(sb) if err != nil { - layout := details.GetInt64(bundle.RelationKeyLayout) + layout := details.GetInt64(bundle.RelationKeyResolvedLayout) st = s.createBlankTemplateState(model.ObjectTypeLayout(layout)) } addDetailsToState(st, details) diff --git a/core/block/template/service_test.go b/core/block/template/service_test.go index 734ad1f24..24f599439 100644 --- a/core/block/template/service_test.go +++ b/core/block/template/service_test.go @@ -210,14 +210,14 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { // given s := service{converter: converter.NewLayoutConverter()} details := domain.NewDetails() - details.Set(bundle.RelationKeyLayout, domain.Int64(int64(layout))) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(layout))) // when st, err := s.CreateTemplateStateWithDetails(BlankTemplateId, details) // then assert.NoError(t, err) - assert.Equal(t, layout, model.ObjectTypeLayout(st.Details().GetInt64(bundle.RelationKeyLayout))) + assert.Equal(t, layout, model.ObjectTypeLayout(st.Details().GetInt64(bundle.RelationKeyResolvedLayout))) assertLayoutBlocks(t, st, layout) }) } @@ -252,7 +252,7 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { // when st := s.CreateTemplateStateFromSmartBlock(nil, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_todo)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_todo)), })) // then @@ -328,9 +328,9 @@ func TestExtractTargetDetails(t *testing.T) { OriginValue, TemplateValue domain.Value OriginLeft bool }{ - {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(0), TemplateValue: domain.Int64(1), OriginLeft: false}, - {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(5), TemplateValue: domain.Int64(0), OriginLeft: false}, - {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(3), TemplateValue: domain.Int64(3), OriginLeft: false}, + {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(0), TemplateValue: domain.Int64(1), OriginLeft: false}, + {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(5), TemplateValue: domain.Int64(0), OriginLeft: false}, + {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(3), TemplateValue: domain.Int64(3), OriginLeft: false}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String(""), TemplateValue: domain.String("s1"), OriginLeft: false}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String("s2"), TemplateValue: domain.String(""), OriginLeft: true}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String("s0"), TemplateValue: domain.String("s3"), OriginLeft: false}, diff --git a/core/converter/dot/dot.go b/core/converter/dot/dot.go index 4cf95b050..05e0f648e 100644 --- a/core/converter/dot/dot.go +++ b/core/converter/dot/dot.go @@ -118,7 +118,7 @@ func (d *dot) Add(space smartblock.Space, st *state.State) error { } n.Set("type", string(st.ObjectTypeKey())) - layout := st.Details().GetInt64(bundle.RelationKeyLayout) + layout := st.Details().GetInt64(bundle.RelationKeyResolvedLayout) n.Set("layout", fmt.Sprintf("%d", layout)) // TODO: add relations diff --git a/core/converter/graphjson/graphjson.go b/core/converter/graphjson/graphjson.go index 604c5d7e0..8a4a1f814 100644 --- a/core/converter/graphjson/graphjson.go +++ b/core/converter/graphjson/graphjson.go @@ -84,7 +84,7 @@ func (g *graphjson) Add(space smartblock.Space, st *state.State) error { IconEmoji: st.Details().GetString(bundle.RelationKeyIconEmoji), Description: st.Details().GetString(bundle.RelationKeyDescription), Type: st.ObjectTypeKey(), - Layout: int(st.Details().GetInt64(bundle.RelationKeyLayout)), + Layout: int(st.Details().GetInt64(bundle.RelationKeyResolvedLayout)), } g.nodes[st.RootId()] = &n diff --git a/core/files/file.go b/core/files/file.go index 6baa47654..580001fc7 100644 --- a/core/files/file.go +++ b/core/files/file.go @@ -88,15 +88,15 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er if meta.Media == "application/pdf" { typeKey = bundle.TypeKeyFile - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_pdf)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_pdf)) } if strings.HasPrefix(meta.Media, "video") { typeKey = bundle.TypeKeyVideo - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_video)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_video)) } if strings.HasPrefix(meta.Media, "audio") { - details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_audio)) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_audio)) if audioDetails, err := f.audioDetails(ctx); err == nil { details = details.Merge(audioDetails) } @@ -104,7 +104,7 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er } if filepath.Ext(meta.Name) == constant.SvgExt { typeKey = bundle.TypeKeyImage - details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_image)) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_image)) } return details, typeKey, nil @@ -140,7 +140,7 @@ func calculateCommonDetails( det := domain.NewDetails() det.SetString(bundle.RelationKeyFileId, fileId.String()) det.SetBool(bundle.RelationKeyIsReadonly, false) - det.SetInt64(bundle.RelationKeyLayout, int64(layout)) + det.SetInt64(bundle.RelationKeyResolvedLayout, int64(layout)) det.SetFloat64(bundle.RelationKeyLastModifiedDate, float64(lastModifiedDate)) return det } diff --git a/core/files/file_test.go b/core/files/file_test.go index 9a140ce69..5a369d9ae 100644 --- a/core/files/file_test.go +++ b/core/files/file_test.go @@ -29,7 +29,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyImage, typeKey) - assert.Equal(t, int64(model.ObjectType_image), details.GetInt64(bundle.RelationKeyLayout)) + assert.Equal(t, int64(model.ObjectType_image), details.GetInt64(bundle.RelationKeyResolvedLayout)) assert.Equal(t, "svg", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "image", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -49,7 +49,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyFile, typeKey) - assert.Equal(t, int64(model.ObjectType_file), details.GetInt64(bundle.RelationKeyLayout)) + assert.Equal(t, int64(model.ObjectType_file), details.GetInt64(bundle.RelationKeyResolvedLayout)) assert.Equal(t, "txt", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -70,7 +70,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyAudio, typeKey) - assert.Equal(t, int64(model.ObjectType_audio), details.GetInt64(bundle.RelationKeyLayout)) + assert.Equal(t, int64(model.ObjectType_audio), details.GetInt64(bundle.RelationKeyResolvedLayout)) assert.Equal(t, "mp3", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -91,7 +91,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyVideo, typeKey) - assert.Equal(t, int64(model.ObjectType_video), details.GetInt64(bundle.RelationKeyLayout)) + assert.Equal(t, int64(model.ObjectType_video), details.GetInt64(bundle.RelationKeyResolvedLayout)) assert.Equal(t, "mp4", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -112,7 +112,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyFile, typeKey) - assert.Equal(t, int64(model.ObjectType_pdf), details.GetInt64(bundle.RelationKeyLayout)) + assert.Equal(t, int64(model.ObjectType_pdf), details.GetInt64(bundle.RelationKeyResolvedLayout)) assert.Equal(t, "pdf", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) diff --git a/core/files/fileobject/fileindex.go b/core/files/fileobject/fileindex.go index 4e9c94250..721ce070f 100644 --- a/core/files/fileobject/fileindex.go +++ b/core/files/fileobject/fileindex.go @@ -98,7 +98,7 @@ func (ind *indexer) initQuery() { ind.query = database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_In, Value: domain.Int64List([]model.ObjectTypeLayout{ model.ObjectType_file, diff --git a/core/files/fileobject/fileindex_test.go b/core/files/fileobject/fileindex_test.go index d187409b5..064bbbe21 100644 --- a/core/files/fileobject/fileindex_test.go +++ b/core/files/fileobject/fileindex_test.go @@ -161,7 +161,7 @@ func TestIndexer_addFromObjectStore(t *testing.T) { bundle.RelationKeyFileId: domain.String(testFileId.String()), bundle.RelationKeySpaceId: domain.String("space1"), bundle.RelationKeyFileIndexingStatus: domain.Int64(int64(model.FileIndexingStatus_NotIndexed)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_file)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_file)), }, }) fx.objectStoreFixture.AddObjects(t, "space2", []objectstore.TestObject{ @@ -170,7 +170,7 @@ func TestIndexer_addFromObjectStore(t *testing.T) { bundle.RelationKeyFileId: domain.String(testFileId.String()), bundle.RelationKeySpaceId: domain.String("space2"), bundle.RelationKeyFileIndexingStatus: domain.Int64(int64(model.FileIndexingStatus_Indexed)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_image)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_image)), }, }) fx.objectStoreFixture.AddObjects(t, "space3", []objectstore.TestObject{ @@ -179,22 +179,22 @@ func TestIndexer_addFromObjectStore(t *testing.T) { bundle.RelationKeyFileId: domain.String(testFileId.String()), bundle.RelationKeySpaceId: domain.String("space3"), bundle.RelationKeyFileIndexingStatus: domain.Int64(int64(model.FileIndexingStatus_NotFound)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_video)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_video)), }, }) fx.objectStoreFixture.AddObjects(t, "space4", []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id4"), - bundle.RelationKeyFileId: domain.String(testFileId.String()), - bundle.RelationKeySpaceId: domain.String("space4"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_audio)), + bundle.RelationKeyId: domain.String("id4"), + bundle.RelationKeyFileId: domain.String(testFileId.String()), + bundle.RelationKeySpaceId: domain.String("space4"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_audio)), }, }) fx.objectStoreFixture.AddObjects(t, "space5", []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id5"), - bundle.RelationKeySpaceId: domain.String("space5"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyId: domain.String("id5"), + bundle.RelationKeySpaceId: domain.String("space5"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), }, }) @@ -221,7 +221,7 @@ func TestIndexer_addFromObjectStore(t *testing.T) { bundle.RelationKeyId: domain.String("id1"), bundle.RelationKeyFileId: domain.String(testFileId.String()), bundle.RelationKeySpaceId: domain.String("space1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_audio)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_audio)), bundle.RelationKeyFileIndexingStatus: domain.Int64(int64(model.FileIndexingStatus_NotIndexed)), }, }) diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index 53848ecec..d73960e69 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -345,7 +345,7 @@ func (s *service) makeInitialDetails(fileId domain.FileId, origin objectorigin.O details := domain.NewDetails() details.SetString(bundle.RelationKeyFileId, fileId.String()) // Use general file layout. It will be changed for proper layout after indexing - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_file)) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_file)) details.SetInt64(bundle.RelationKeyFileIndexingStatus, int64(model.FileIndexingStatus_NotIndexed)) details.SetInt64(bundle.RelationKeySyncStatus, int64(domain.ObjectSyncStatusQueued)) details.SetInt64(bundle.RelationKeySyncError, int64(domain.SyncErrorNull)) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 3de996091..7bfcee487 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -124,7 +124,7 @@ func (i *indexer) RemoveAclIndexes(spaceId string) (err error) { ids, _, err := i.store.SpaceIndex(spaceId).QueryObjectIds(database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_participant), }, diff --git a/core/indexer/reindex.go b/core/indexer/reindex.go index 8d1b7a1d5..a4de3e6dc 100644 --- a/core/indexer/reindex.go +++ b/core/indexer/reindex.go @@ -259,7 +259,7 @@ func (i *indexer) removeOldFiles(spaceId string, flags reindexFlags) error { ids, _, err := store.QueryObjectIds(database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_In, Value: domain.Int64List([]model.ObjectTypeLayout{ model.ObjectType_file, diff --git a/core/kanban/group_tag.go b/core/kanban/group_tag.go index 728c2c1bc..49f80f7ee 100644 --- a/core/kanban/group_tag.go +++ b/core/kanban/group_tag.go @@ -40,7 +40,7 @@ func (t *GroupTag) InitGroups(spaceID string, f *database.Filters) error { Value: domain.String(string(t.Key)), }, database.FilterEq{ - Key: bundle.RelationKeyLayout, + Key: bundle.RelationKeyResolvedLayout, Cond: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relationOption), }, diff --git a/core/relationutils/objecttype.go b/core/relationutils/objecttype.go index 9a07b1d59..c6f5b1a12 100644 --- a/core/relationutils/objecttype.go +++ b/core/relationutils/objecttype.go @@ -37,7 +37,7 @@ func (ot *ObjectType) BundledTypeDetails() *domain.Details { det := domain.NewDetails() det.SetString(bundle.RelationKeyType, bundle.TypeKeyObjectType.BundledURL()) - det.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) + det.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_objectType)) det.SetString(bundle.RelationKeyName, ot.Name) det.SetString(bundle.RelationKeyCreator, addr.AnytypeProfileId) det.SetString(bundle.RelationKeyIconEmoji, ot.IconEmoji) diff --git a/core/relationutils/relation.go b/core/relationutils/relation.go index 86bca6865..9cc959e53 100644 --- a/core/relationutils/relation.go +++ b/core/relationutils/relation.go @@ -48,7 +48,7 @@ func (r *Relation) ToDetails() *domain.Details { bundle.RelationKeyId: domain.String(r.Id), bundle.RelationKeyIsHidden: domain.Bool(r.GetHidden()), bundle.RelationKeyIsReadonly: domain.Bool(r.GetReadOnlyRelation()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyName: domain.String(r.GetName()), bundle.RelationKeyRelationDefaultValue: domain.ValueFromProto(r.GetDefaultValue()), bundle.RelationKeyRelationFormat: domain.Float64(float64(r.GetFormat())), diff --git a/core/subscription/crossspacesub/service_test.go b/core/subscription/crossspacesub/service_test.go index cc6541865..d6085df90 100644 --- a/core/subscription/crossspacesub/service_test.go +++ b/core/subscription/crossspacesub/service_test.go @@ -12,8 +12,8 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/event/mock_event" "github.com/anyproto/anytype-heart/core/kanban/mock_kanban" subscriptionservice "github.com/anyproto/anytype-heart/core/subscription" @@ -106,8 +106,8 @@ func TestSubscribe(t *testing.T) { // Add objects obj1 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj1, @@ -126,9 +126,9 @@ func TestSubscribe(t *testing.T) { t.Run("update object", func(t *testing.T) { obj1 = objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), - bundle.RelationKeyName: domain.String("John Doe"), + bundle.RelationKeyId: domain.String("participant1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyName: domain.String("John Doe"), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj1, @@ -171,8 +171,8 @@ func TestSubscribe(t *testing.T) { // Add objects obj1 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj1, @@ -191,8 +191,8 @@ func TestSubscribe(t *testing.T) { // Add another objects obj2 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant2"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant2"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj2, @@ -218,8 +218,8 @@ func TestSubscribe(t *testing.T) { // Add objects obj1 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant3"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant3"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space2", []objectstore.TestObject{ obj1, @@ -249,12 +249,12 @@ func TestSubscribe(t *testing.T) { givenSpaceViewObject("spaceView1", "space1", model.Account_Active, model.SpaceStatus_Ok), }) obj1 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } obj2 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant2"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant2"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj1, @@ -314,8 +314,8 @@ func TestUnsubscribe(t *testing.T) { // Add objects obj1 := objectstore.TestObject{ - bundle.RelationKeyId: domain.String("participant1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_participant)), + bundle.RelationKeyId: domain.String("participant1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_participant)), } fx.objectStore.AddObjects(t, "space1", []objectstore.TestObject{ obj1, @@ -403,10 +403,10 @@ func (d *dummyCollectionService) UnsubscribeFromCollection(collectionID string, func givenRequest() subscriptionservice.SubscribeRequest { return subscriptionservice.SubscribeRequest{ NoDepSubscription: true, - Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyLayout.String(), bundle.RelationKeyName.String()}, + Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyResolvedLayout.String(), bundle.RelationKeyName.String()}, Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_participant)), }, @@ -418,7 +418,7 @@ func givenSpaceViewObject(id string, targetSpaceId string, accountStatus model.A return objectstore.TestObject{ bundle.RelationKeyId: domain.String(id), bundle.RelationKeyTargetSpaceId: domain.String(targetSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_spaceView)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_spaceView)), bundle.RelationKeySpaceAccountStatus: domain.Int64(int64(accountStatus)), bundle.RelationKeySpaceLocalStatus: domain.Int64(int64(localStatus)), } diff --git a/core/subscription/crossspacesub/spaceviewsub.go b/core/subscription/crossspacesub/spaceviewsub.go index 851eafe4b..9c58ba041 100644 --- a/core/subscription/crossspacesub/spaceviewsub.go +++ b/core/subscription/crossspacesub/spaceviewsub.go @@ -24,7 +24,7 @@ func (s *service) runSpaceViewSub() error { Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyTargetSpaceId.String()}, Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_spaceView)), }, diff --git a/core/subscription/service_test.go b/core/subscription/service_test.go index 1511decf6..ee694945c 100644 --- a/core/subscription/service_test.go +++ b/core/subscription/service_test.go @@ -34,14 +34,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, // dep { @@ -345,14 +345,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAuthor.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, // dep { @@ -403,9 +403,9 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) resp, err := fx.Search(SubscribeRequest{ @@ -471,9 +471,9 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) @@ -576,14 +576,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) var resp, err = fx.Search(SubscribeRequest{ @@ -628,14 +628,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) var resp, err = fx.Search(SubscribeRequest{ @@ -687,14 +687,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) @@ -732,14 +732,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { bundle.RelationKeyId: domain.String("rel2"), bundle.RelationKeyRelationKey: domain.String(testRelationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, }) @@ -784,14 +784,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { bundle.RelationKeyId: domain.String("rel2"), bundle.RelationKeyRelationKey: domain.String(testRelationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), }, // deps @@ -849,14 +849,14 @@ func TestService_Search(t *testing.T) { }, // relations { - bundle.RelationKeyId: domain.String("rel1"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel1"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyName.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String("rel2"), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel2"), + bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyId.String()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, }) @@ -928,25 +928,25 @@ func TestService_Search(t *testing.T) { bundle.RelationKeyUniqueKey: domain.String(relationUniqueKey.Marshal()), bundle.RelationKeySpaceId: domain.String(testSpaceId), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_tag)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String(source), - bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String(source), + bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), }, { - bundle.RelationKeyId: domain.String("1"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String("1"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), }, { - bundle.RelationKeyId: domain.String("2"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String("2"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), }, }) @@ -1003,13 +1003,13 @@ func TestService_Search(t *testing.T) { bundle.RelationKeyUniqueKey: domain.String(relationUniqueKey.Marshal()), bundle.RelationKeySpaceId: domain.String(testSpaceId), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_tag)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String(source), - bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String(source), + bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), }, }) @@ -1053,27 +1053,27 @@ func TestService_Search(t *testing.T) { bundle.RelationKeyUniqueKey: domain.String(relationUniqueKey.Marshal()), bundle.RelationKeySpaceId: domain.String(testSpaceId), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_status)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String(source), - bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String(source), + bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), }, { - bundle.RelationKeyId: domain.String("1"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), - bundle.RelationKeyName: domain.String("Done"), + bundle.RelationKeyId: domain.String("1"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyName: domain.String("Done"), }, { - bundle.RelationKeyId: domain.String("2"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyRelationKey: domain.String(relationKey), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), - bundle.RelationKeyName: domain.String("Not started"), + bundle.RelationKeyId: domain.String("2"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyRelationKey: domain.String(relationKey), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyName: domain.String("Not started"), }, }) @@ -1121,13 +1121,13 @@ func TestService_Search(t *testing.T) { bundle.RelationKeyUniqueKey: domain.String(relationUniqueKey.Marshal()), bundle.RelationKeySpaceId: domain.String(testSpaceId), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_status)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String(source), - bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String(source), + bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), }, }) @@ -1169,13 +1169,13 @@ func TestService_Search(t *testing.T) { bundle.RelationKeyUniqueKey: domain.String(relationUniqueKey.Marshal()), bundle.RelationKeySpaceId: domain.String(testSpaceId), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_checkbox)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }, { - bundle.RelationKeyId: domain.String(source), - bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String(source), + bundle.RelationKeyUniqueKey: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), }, }) @@ -1280,20 +1280,20 @@ func addTestObjects(t *testing.T, source string, relationKey domain.RelationKey, assert.Nil(t, err) fx.store.AddObjects(t, testSpaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("1"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - relationKey: domain.String(option1), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 1"), - bundle.RelationKeyType: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeyId: domain.String("1"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + relationKey: domain.String(option1), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 1"), + bundle.RelationKeyType: domain.String(objectTypeKey.Marshal()), }, { - bundle.RelationKeyId: domain.String("2"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - relationKey: domain.String(option2), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 2"), - bundle.RelationKeyType: domain.String(objectTypeKey.Marshal()), + bundle.RelationKeyId: domain.String("2"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + relationKey: domain.String(option2), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 2"), + bundle.RelationKeyType: domain.String(objectTypeKey.Marshal()), }, }) return err @@ -1302,43 +1302,43 @@ func addTestObjects(t *testing.T, source string, relationKey domain.RelationKey, func addTestObjectsForNestedFilters(t *testing.T, fx *fixtureRealStore, testSpaceId, option1, option2, option3, tag1, tag2 string) { fx.store.AddObjects(t, testSpaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("1"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyStatus: domain.String(option1), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 1"), - bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), - bundle.RelationKeyTag: domain.StringList([]string{tag1}), - bundle.RelationKeyDueDate: domain.Int64(1704070917), + bundle.RelationKeyId: domain.String("1"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyStatus: domain.String(option1), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 1"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), + bundle.RelationKeyTag: domain.StringList([]string{tag1}), + bundle.RelationKeyDueDate: domain.Int64(1704070917), }, { - bundle.RelationKeyId: domain.String("2"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyStatus: domain.String(option3), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 2"), - bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), - bundle.RelationKeyTag: domain.StringList([]string{tag2}), - bundle.RelationKeyDueDate: domain.Int64(1709254917), + bundle.RelationKeyId: domain.String("2"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyStatus: domain.String(option3), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 2"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), + bundle.RelationKeyTag: domain.StringList([]string{tag2}), + bundle.RelationKeyDueDate: domain.Int64(1709254917), }, { - bundle.RelationKeyId: domain.String("3"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyStatus: domain.String(option2), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 3"), - bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), - bundle.RelationKeyTag: domain.StringList([]string{tag1, tag2}), - bundle.RelationKeyDueDate: domain.Int64(1711933317), + bundle.RelationKeyId: domain.String("3"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyStatus: domain.String(option2), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 3"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), + bundle.RelationKeyTag: domain.StringList([]string{tag1, tag2}), + bundle.RelationKeyDueDate: domain.Int64(1711933317), }, { - bundle.RelationKeyId: domain.String("4"), - bundle.RelationKeySpaceId: domain.String(testSpaceId), - bundle.RelationKeyStatus: domain.String(option1), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("Object 4"), - bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), - bundle.RelationKeyDueDate: domain.Int64(1714525317), + bundle.RelationKeyId: domain.String("4"), + bundle.RelationKeySpaceId: domain.String(testSpaceId), + bundle.RelationKeyStatus: domain.String(option1), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("Object 4"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyPage.String()), + bundle.RelationKeyDueDate: domain.Int64(1714525317), }, }) } diff --git a/core/syncstatus/detailsupdater/updater.go b/core/syncstatus/detailsupdater/updater.go index 53daa12bc..88f4483b5 100644 --- a/core/syncstatus/detailsupdater/updater.go +++ b/core/syncstatus/detailsupdater/updater.go @@ -260,7 +260,7 @@ var suitableLayouts = map[model.ObjectTypeLayout]struct{}{ } func (u *syncStatusUpdater) isLayoutSuitableForSyncRelations(details *domain.Details) bool { - layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyLayout)) + layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyResolvedLayout)) _, ok := suitableLayouts[layout] return ok } diff --git a/core/syncstatus/detailsupdater/updater_test.go b/core/syncstatus/detailsupdater/updater_test.go index 5e9f58e56..b136cd026 100644 --- a/core/syncstatus/detailsupdater/updater_test.go +++ b/core/syncstatus/detailsupdater/updater_test.go @@ -90,7 +90,7 @@ func TestSyncStatusUpdater_UpdateDetails(t *testing.T) { space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Run(func(ctx context.Context, objectId string, apply func(smartblock.SmartBlock) error) { sb := smarttest.New(objectId) st := sb.Doc.(*state.State) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_basic))) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) st.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String("spaceId")) err := apply(sb) require.NoError(t, err) @@ -119,9 +119,9 @@ func TestSyncStatusUpdater_UpdateDetails(t *testing.T) { fx.subscriptionService.StoreFixture.AddObjects(t, "space1", []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id1"), - bundle.RelationKeySpaceId: domain.String("space1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyId: domain.String("id1"), + bundle.RelationKeySpaceId: domain.String("space1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), }, }) @@ -159,7 +159,7 @@ func TestSyncStatusUpdater_UpdateDetails(t *testing.T) { sb := smarttest.New(objectId) st := sb.Doc.(*state.State) st.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String("spaceId")) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_file))) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_file))) st.SetDetailAndBundledRelation(bundle.RelationKeyFileBackupStatus, domain.Int64(int64(filesyncstatus.Limited))) err := apply(sb) require.NoError(t, err) @@ -189,7 +189,7 @@ func TestSyncStatusUpdater_UpdateDetails(t *testing.T) { sb := smarttest.New(objectId) st := sb.Doc.(*state.State) st.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String("spaceId")) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_file))) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_file))) st.SetDetailAndBundledRelation(bundle.RelationKeyFileBackupStatus, domain.Int64(int64(filesyncstatus.Synced))) err := apply(sb) require.NoError(t, err) @@ -219,16 +219,16 @@ func TestSyncStatusUpdater_UpdateSpaceDetails(t *testing.T) { fx.subscriptionService.StoreFixture.AddObjects(t, "space1", []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id1"), - bundle.RelationKeySpaceId: domain.String("space1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeySyncStatus: domain.Int64(int64(domain.ObjectSyncStatusSyncing)), + bundle.RelationKeyId: domain.String("id1"), + bundle.RelationKeySpaceId: domain.String("space1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeySyncStatus: domain.Int64(int64(domain.ObjectSyncStatusSyncing)), }, { - bundle.RelationKeyId: domain.String("id4"), - bundle.RelationKeySpaceId: domain.String("space1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeySyncStatus: domain.Int64(int64(domain.ObjectSyncStatusSyncing)), + bundle.RelationKeyId: domain.String("id4"), + bundle.RelationKeySpaceId: domain.String("space1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeySyncStatus: domain.Int64(int64(domain.ObjectSyncStatusSyncing)), }, }) @@ -241,7 +241,7 @@ func TestSyncStatusUpdater_UpdateSpaceDetails(t *testing.T) { sb := smarttest.New(objectId) st := sb.Doc.(*state.State) st.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String("spaceId")) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_basic))) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) err := apply(sb) require.NoError(t, err) @@ -320,7 +320,7 @@ func TestSyncStatusUpdater_isLayoutSuitableForSyncRelations(t *testing.T) { // when details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyLayout: domain.Float64(float64(model.ObjectType_participant)), + bundle.RelationKeyResolvedLayout: domain.Float64(float64(model.ObjectType_participant)), }) isSuitable := fx.isLayoutSuitableForSyncRelations(details) @@ -334,7 +334,7 @@ func TestSyncStatusUpdater_isLayoutSuitableForSyncRelations(t *testing.T) { // when details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyLayout: domain.Float64(float64(model.ObjectType_basic)), + bundle.RelationKeyResolvedLayout: domain.Float64(float64(model.ObjectType_basic)), }) isSuitable := fx.isLayoutSuitableForSyncRelations(details) diff --git a/core/syncstatus/spacesyncstatus/spacestatus_test.go b/core/syncstatus/spacesyncstatus/spacestatus_test.go index 9c4aa2a49..cbacf31d0 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus_test.go +++ b/core/syncstatus/spacesyncstatus/spacestatus_test.go @@ -81,11 +81,11 @@ type fixture struct { func genObject(syncStatus domain.ObjectSyncStatus, spaceId string) objectstore.TestObject { id := fmt.Sprintf("%d", rand.Int()) return objectstore.TestObject{ - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeySyncStatus: domain.Int64(int64(syncStatus)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("name" + id), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeySyncStatus: domain.Int64(int64(syncStatus)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("name" + id), + bundle.RelationKeySpaceId: domain.String(spaceId), } } diff --git a/core/syncstatus/syncsubscriptions/syncsubscriptions_test.go b/core/syncstatus/syncsubscriptions/syncsubscriptions_test.go index ac25f1181..452ab78f5 100644 --- a/core/syncstatus/syncsubscriptions/syncsubscriptions_test.go +++ b/core/syncstatus/syncsubscriptions/syncsubscriptions_test.go @@ -19,11 +19,11 @@ import ( func genObject(syncStatus domain.ObjectSyncStatus, spaceId string) objectstore.TestObject { id := fmt.Sprintf("%d", rand.Int()) return objectstore.TestObject{ - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeySyncStatus: domain.Int64(int64(syncStatus)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), - bundle.RelationKeyName: domain.String("name" + id), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeySyncStatus: domain.Int64(int64(syncStatus)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyName: domain.String("name" + id), + bundle.RelationKeySpaceId: domain.String(spaceId), } } diff --git a/pkg/lib/database/anystore.go b/pkg/lib/database/anystore.go index 6e84c1416..adf34e63f 100644 --- a/pkg/lib/database/anystore.go +++ b/pkg/lib/database/anystore.go @@ -144,7 +144,7 @@ func (s textSort) AppendKey(tuple anyenc.Tuple, v *anyenc.Value) anyenc.Tuple { }() val := v.GetStringBytes(s.relationKey) if s.relationKey == bundle.RelationKeyName.String() && len(val) == 0 { - layout := model.ObjectTypeLayout(v.GetFloat64(bundle.RelationKeyLayout.String())) + layout := model.ObjectTypeLayout(v.GetFloat64(bundle.RelationKeyResolvedLayout.String())) if layout == model.ObjectType_note { val = v.GetStringBytes(bundle.RelationKeySnippet.String()) } diff --git a/pkg/lib/database/database.go b/pkg/lib/database/database.go index 8d2cbe6fa..70fd66c8a 100644 --- a/pkg/lib/database/database.go +++ b/pkg/lib/database/database.go @@ -144,7 +144,7 @@ func hasDefaultFilters(filters []FilterRequest) (bool, bool, bool) { hasArchivedFilter = true } - if filter.RelationKey == bundle.RelationKeyLayout { + if filter.RelationKey == bundle.RelationKeyResolvedLayout { hasTypeFilter = true } diff --git a/pkg/lib/database/order.go b/pkg/lib/database/order.go index ef1744978..459d8d45e 100644 --- a/pkg/lib/database/order.go +++ b/pkg/lib/database/order.go @@ -269,7 +269,7 @@ func (ko *KeyOrder) trySubstituteSnippet(getter *domain.Details, value domain.Va } func getLayout(getter *domain.Details) model.ObjectTypeLayout { - rawLayout := getter.GetInt64(bundle.RelationKeyLayout) + rawLayout := getter.GetInt64(bundle.RelationKeyResolvedLayout) return model.ObjectTypeLayout(int32(rawLayout)) } diff --git a/pkg/lib/database/order_test.go b/pkg/lib/database/order_test.go index e5ef564ab..7f4aa82f5 100644 --- a/pkg/lib/database/order_test.go +++ b/pkg/lib/database/order_test.go @@ -32,9 +32,9 @@ func TestTextSort(t *testing.T) { bundle.RelationKeyName: domain.String("b"), }) b := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyName: domain.String("a"), - bundle.RelationKeySnippet: domain.String("b"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_note)), + bundle.RelationKeyName: domain.String("a"), + bundle.RelationKeySnippet: domain.String("b"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_note)), }) asc := &KeyOrder{arena: arena, Key: bundle.RelationKeyName, Type: model.BlockContentDataviewSort_Asc, relationFormat: model.RelationFormat_shorttext} assertCompare(t, asc, a, b, 1) @@ -47,8 +47,8 @@ func TestTextSort(t *testing.T) { bundle.RelationKeyName: domain.String("a"), }) b := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeySnippet: domain.String("b"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_note)), + bundle.RelationKeySnippet: domain.String("b"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_note)), }) asc := &KeyOrder{arena: arena, Key: bundle.RelationKeyName, Type: model.BlockContentDataviewSort_Asc, relationFormat: model.RelationFormat_shorttext} assertCompare(t, asc, a, b, -1) @@ -60,8 +60,8 @@ func TestTextSort(t *testing.T) { bundle.RelationKeyName: domain.String("a"), }) b := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeySnippet: domain.String("a"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_note)), + bundle.RelationKeySnippet: domain.String("a"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_note)), }) asc := &KeyOrder{arena: arena, Key: bundle.RelationKeyName, Type: model.BlockContentDataviewSort_Asc, relationFormat: model.RelationFormat_shorttext} assertCompare(t, asc, a, b, 0) diff --git a/pkg/lib/localstore/objectstore/space.go b/pkg/lib/localstore/objectstore/space.go index f79771223..e78a5d929 100644 --- a/pkg/lib/localstore/objectstore/space.go +++ b/pkg/lib/localstore/objectstore/space.go @@ -20,7 +20,7 @@ func (d *dsObjectStore) GetSpaceName(spaceId string) string { Value: domain.String(spaceId), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_spaceView)), }, diff --git a/pkg/lib/localstore/objectstore/space_test.go b/pkg/lib/localstore/objectstore/space_test.go index 519591b72..e8e06b5bb 100644 --- a/pkg/lib/localstore/objectstore/space_test.go +++ b/pkg/lib/localstore/objectstore/space_test.go @@ -32,10 +32,10 @@ func TestGetSpaceName(t *testing.T) { s := NewStoreFixture(t) err := s.SpaceIndex(s.techSpaceId).UpdateObjectDetails(context.Background(), spaceViewId, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String(spaceViewId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_spaceView)), - bundle.RelationKeyTargetSpaceId: domain.String(spaceId), - bundle.RelationKeyName: domain.String(spaceName), + bundle.RelationKeyId: domain.String(spaceViewId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_spaceView)), + bundle.RelationKeyTargetSpaceId: domain.String(spaceId), + bundle.RelationKeyName: domain.String(spaceName), })) assert.Nil(t, err) @@ -51,9 +51,9 @@ func TestGetSpaceName(t *testing.T) { s := NewStoreFixture(t) err := s.SpaceIndex(s.techSpaceId).UpdateObjectDetails(context.Background(), spaceViewId, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String(spaceViewId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_spaceView)), - bundle.RelationKeyTargetSpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String(spaceViewId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_spaceView)), + bundle.RelationKeyTargetSpaceId: domain.String(spaceId), })) assert.Nil(t, err) diff --git a/pkg/lib/localstore/objectstore/spaceindex/queries.go b/pkg/lib/localstore/objectstore/spaceindex/queries.go index 6cb0c3ca9..200723549 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/queries.go +++ b/pkg/lib/localstore/objectstore/spaceindex/queries.go @@ -59,7 +59,7 @@ func (s *dsObjectStore) getInjectedResults(details *domain.Details, score float6 return nil } - layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyLayout)) + layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyResolvedLayout)) switch layout { case model.ObjectType_relationOption: relationKey = details.GetString(bundle.RelationKeyRelationKey) @@ -79,7 +79,7 @@ func (s *dsObjectStore) getInjectedResults(details *domain.Details, score float6 bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyType.String(), - bundle.RelationKeyLayout.String(), + bundle.RelationKeyResolvedLayout.String(), bundle.RelationKeyRelationOptionColor.String(), }) metaInj := model.SearchMeta{ diff --git a/pkg/lib/localstore/objectstore/spaceindex/queries_test.go b/pkg/lib/localstore/objectstore/spaceindex/queries_test.go index 350b65abf..93ab84976 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/queries_test.go +++ b/pkg/lib/localstore/objectstore/spaceindex/queries_test.go @@ -257,36 +257,36 @@ func TestQuery(t *testing.T) { } relObj := TestObject{ - bundle.RelationKeyId: domain.String("relid1"), - bundle.RelationKeyRelationKey: domain.String("bsonid1"), - bundle.RelationKeyName: domain.String("relname"), - bundle.RelationKeyDescription: domain.String("this is a relation's description"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String("relid1"), + bundle.RelationKeyRelationKey: domain.String("bsonid1"), + bundle.RelationKeyName: domain.String("relname"), + bundle.RelationKeyDescription: domain.String("this is a relation's description"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), } relObjDeleted := TestObject{ - bundle.RelationKeyId: domain.String("relid2"), - bundle.RelationKeyRelationKey: domain.String("bsonid1"), - bundle.RelationKeyName: domain.String("deletedtag"), - bundle.RelationKeyIsDeleted: domain.Bool(true), - bundle.RelationKeyDescription: domain.String("this is a deleted relation's description"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String("relid2"), + bundle.RelationKeyRelationKey: domain.String("bsonid1"), + bundle.RelationKeyName: domain.String("deletedtag"), + bundle.RelationKeyIsDeleted: domain.Bool(true), + bundle.RelationKeyDescription: domain.String("this is a deleted relation's description"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), } relObjArchived := TestObject{ - bundle.RelationKeyId: domain.String("relid3"), - bundle.RelationKeyRelationKey: domain.String("bsonid1"), - bundle.RelationKeyName: domain.String("archived"), - bundle.RelationKeyIsDeleted: domain.Bool(true), - bundle.RelationKeyDescription: domain.String("this is a archived relation's description"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String("relid3"), + bundle.RelationKeyRelationKey: domain.String("bsonid1"), + bundle.RelationKeyName: domain.String("archived"), + bundle.RelationKeyIsDeleted: domain.Bool(true), + bundle.RelationKeyDescription: domain.String("this is a archived relation's description"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), } typeObj := TestObject{ - bundle.RelationKeyId: domain.String("typeid1"), - bundle.RelationKeyName: domain.String("typename"), - bundle.RelationKeyDescription: domain.String("this is a type's description"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String("typeid1"), + bundle.RelationKeyName: domain.String("typename"), + bundle.RelationKeyDescription: domain.String("this is a type's description"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), } s.AddObjects(t, []TestObject{obj1, obj2, obj3, relObj, relObjDeleted, relObjArchived, typeObj}) @@ -548,7 +548,7 @@ func TestQuery(t *testing.T) { Details: makeDetails(obj1), Meta: model.SearchMeta{ RelationKey: "bsonid1", - RelationDetails: makeDetails(relObj).CopyOnlyKeys(bundle.RelationKeyLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), + RelationDetails: makeDetails(relObj).CopyOnlyKeys(bundle.RelationKeyResolvedLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), }, }}, recs) }) @@ -606,14 +606,14 @@ func TestQuery(t *testing.T) { Details: makeDetails(obj2), Meta: model.SearchMeta{ RelationKey: "type", - RelationDetails: makeDetails(typeObj).CopyOnlyKeys(bundle.RelationKeyLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), + RelationDetails: makeDetails(typeObj).CopyOnlyKeys(bundle.RelationKeyResolvedLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), }, }, { Details: makeDetails(obj3), Meta: model.SearchMeta{ RelationKey: "type", - RelationDetails: makeDetails(typeObj).CopyOnlyKeys(bundle.RelationKeyLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), + RelationDetails: makeDetails(typeObj).CopyOnlyKeys(bundle.RelationKeyResolvedLayout, bundle.RelationKeyId, bundle.RelationKeyName).ToProto(), }, }, }, recs) @@ -984,26 +984,26 @@ func TestQueryRaw(t *testing.T) { t.Run("not equal", func(t *testing.T) { s := NewStoreFixture(t) obj1 := TestObject{ - bundle.RelationKeyId: domain.String("id1"), - bundle.RelationKeyType: domain.String("type1"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyId: domain.String("id1"), + bundle.RelationKeyType: domain.String("type1"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), } obj2 := TestObject{ - bundle.RelationKeyId: domain.String("id2"), - bundle.RelationKeyType: domain.String("type2"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyId: domain.String("id2"), + bundle.RelationKeyType: domain.String("type2"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), } type1 := TestObject{ - bundle.RelationKeyId: domain.String("type1"), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeyUniqueKey: domain.String("ot-template"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String("type1"), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeyUniqueKey: domain.String("ot-template"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), } type2 := TestObject{ - bundle.RelationKeyId: domain.String("type2"), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeyUniqueKey: domain.String("ot-page"), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeyId: domain.String("type2"), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeyUniqueKey: domain.String("ot-page"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), } s.AddObjects(t, []TestObject{obj1, obj2, type1, type2}) @@ -1016,7 +1016,7 @@ func TestQueryRaw(t *testing.T) { Value: domain.String("ot-template"), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_basic)), }, diff --git a/pkg/lib/localstore/objectstore/spaceindex/relations.go b/pkg/lib/localstore/objectstore/spaceindex/relations.go index 1da112d95..11b9a0494 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/relations.go +++ b/pkg/lib/localstore/objectstore/spaceindex/relations.go @@ -120,7 +120,7 @@ func (s *dsObjectStore) GetRelationById(id string) (*model.Relation, error) { func (s *dsObjectStore) ListAllRelations() (relations relationutils.Relations, err error) { filters := []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(model.ObjectType_relation), }, @@ -148,7 +148,7 @@ func (s *dsObjectStore) GetRelationByKey(key string) (*model.Relation, error) { Value: domain.String(key), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_relation)), }, @@ -182,7 +182,7 @@ func (s *dsObjectStore) GetRelationFormatByKey(key domain.RelationKey) (model.Re Value: domain.String(key.String()), }, { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_Equal, Value: domain.Int64(int64(model.ObjectType_relation)), }, @@ -212,7 +212,7 @@ func (s *dsObjectStore) ListRelationOptions(relationKey domain.RelationKey) (opt }, { Condition: model.BlockContentDataviewFilter_Equal, - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Value: domain.Int64(model.ObjectType_relationOption), }, } diff --git a/pkg/lib/localstore/objectstore/spaceindex/store.go b/pkg/lib/localstore/objectstore/spaceindex/store.go index 8407ba54f..1d811c5d6 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/store.go +++ b/pkg/lib/localstore/objectstore/spaceindex/store.go @@ -211,7 +211,7 @@ func (s *dsObjectStore) openDatabase(ctx context.Context, path string) error { }, { Name: "layout", - Fields: []string{bundle.RelationKeyLayout.String()}, + Fields: []string{bundle.RelationKeyResolvedLayout.String()}, }, { Name: "type", diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index 40656cbfc..25d332900 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -67,7 +67,7 @@ func listAllTypesAndRelations(store dependencies.QueryableStore) (map[string]*do records, err := store.Query(database.Query{ Filters: []database.FilterRequest{ { - RelationKey: bundle.RelationKeyLayout, + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_In, Value: domain.Int64List([]model.ObjectTypeLayout{model.ObjectType_objectType, model.ObjectType_relation}), }, diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go index bde2d9209..1991cc9a9 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go @@ -24,7 +24,7 @@ func TestMigration_Run(t *testing.T) { { bundle.RelationKeySpaceId: domain.String("space1"), bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_object)), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyId: domain.String("id1"), bundle.RelationKeyIsHidden: domain.Bool(true), // bundle = false bundle.RelationKeyRevision: domain.Int64(1), // bundle = 3 diff --git a/space/service_test.go b/space/service_test.go index daa8b1826..90cd87d3a 100644 --- a/space/service_test.go +++ b/space/service_test.go @@ -240,10 +240,10 @@ func TestService_UpdateRemoteStatus(t *testing.T) { storeFixture := objectstore.NewStoreFixture(t) storeFixture.AddObjects(t, storeFixture.TechSpaceId(), []objectstore.TestObject{{ - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_spaceView)), - bundle.RelationKeyId: domain.String("spaceViewId"), - bundle.RelationKeyTargetSpaceId: domain.String(spaceID), - bundle.RelationKeyName: domain.String("Test"), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_spaceView)), + bundle.RelationKeyId: domain.String("spaceViewId"), + bundle.RelationKeyTargetSpaceId: domain.String(spaceID), + bundle.RelationKeyName: domain.String("Test"), }}) s := service{ diff --git a/tests/integration/import_test.go b/tests/integration/import_test.go index e46976901..30be72e1c 100644 --- a/tests/integration/import_test.go +++ b/tests/integration/import_test.go @@ -22,7 +22,7 @@ func TestImportFileFromRelation(t *testing.T) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyLayout, model.ObjectType_image), + filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "Saturn"), filterEqualsToString(bundle.RelationKeyFileMimeType, "image/jpeg"), filterNotEmpty(bundle.RelationKeyFileId), @@ -85,7 +85,7 @@ func testImportFileFromMarkdown(t *testing.T, path string) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyLayout, model.ObjectType_image), + filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "saturn"), // Name comes from file's name filterEqualsToString(bundle.RelationKeyFileMimeType, "image/jpeg"), filterNotEmpty(bundle.RelationKeyFileId), @@ -126,7 +126,7 @@ func testImportObjectWithFileBlock(t *testing.T, path string) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyLayout, model.ObjectType_image), + filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "test_image"), filterEqualsToString(bundle.RelationKeyFileMimeType, "image/png"), filterNotEmpty(bundle.RelationKeyFileId), From 1fd2b1b1519b4278638c6de919108fc8c64ef337 Mon Sep 17 00:00:00 2001 From: kirillston Date: Sat, 21 Dec 2024 22:23:50 +0300 Subject: [PATCH 033/176] GO-4588 Inject resolved layout --- core/block/object/objectcreator/creator.go | 41 ++++++++++++++++------ 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 5327757e1..c96662ccf 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -14,6 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -125,19 +126,14 @@ func (s *service) createObjectInSpace( return "", nil, errors.Wrap(restriction.ErrRestricted, "creation of this object type is restricted") } } + + if err = s.injectResolvedLayout(ctx, space, string(req.ObjectTypeKey), details); err != nil { + return "", nil, fmt.Errorf("failed to inject resolved layout: %w", err) + } + switch req.ObjectTypeKey { case bundle.TypeKeyBookmark: return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) - case bundle.TypeKeySet: - // TODO: this logic should be reviewed as: - // - set and collection are not the only types that could have set and collection layout - // - we should exclude layout relation prior to resolvedLayout - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_set)) - case bundle.TypeKeyCollection: - // TODO: this logic should be reviewed as: - // - set and collection are not the only types that could have set and collection layout - // - we should exclude layout relation prior to resolvedLayout - details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_collection)) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) case bundle.TypeKeyRelation: @@ -173,6 +169,31 @@ func (s *service) createObjectFromTemplate( return s.CreateSmartBlockFromStateInSpace(ctx, space, objectTypeKeys, createState) } +func (s *service) injectResolvedLayout( + ctx context.Context, space clientspace.Space, typeKey string, details *domain.Details, +) error { + typeObjectId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(smartblock.SmartBlockTypeObjectType, typeKey)) + if err != nil { + return fmt.Errorf("failed to derive object type id: %w", err) + } + + records, err := s.objectStore.SpaceIndex(space.Id()).QueryByIds([]string{typeObjectId}) + if err != nil { + return fmt.Errorf("failed to query details of object type: %w", err) + } + + if len(records) != 1 { + return fmt.Errorf("expected to get 1 record on querying object type details, got %d", len(records)) + } + + layout := records[0].Details.GetInt64(bundle.RelationKeyRecommendedLayout) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + + // we should remove layout relation from details, if client accidentally add it in request + details.Delete(bundle.RelationKeyLayout) + return nil +} + // buildDateObject does not create real date object. It just builds date object details func buildDateObject(space clientspace.Space, details *domain.Details) (string, *domain.Details, error) { ts := details.GetInt64(bundle.RelationKeyTimestamp) From df1b9953e7c208d4e05ba464f69b8c22bce1f9ca Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 11:48:04 +0300 Subject: [PATCH 034/176] GO-4588 Fix lint --- core/block/editor/basic/details.go | 8 ++++++++ core/block/editor/file/file.go | 1 + core/block/editor/smartblock/detailsinject.go | 2 +- core/block/editor/state/state.go | 1 + pkg/lib/localstore/objectstore/spaceindex/queries.go | 1 + 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 166ac3b9b..3a902af0e 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,6 +3,7 @@ package basic import ( "errors" "fmt" + "slices" "strings" "time" @@ -51,6 +52,13 @@ func (bs *basic) setDetails(ctx session.Context, details []domain.Detail, showEv // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later updates, updatedKeys := bs.collectDetailUpdates(details, s) + + for _, rel := range relationsProhibitedToUpdate { + if slices.Contains(updatedKeys, rel) { + return nil, fmt.Errorf("it is prohibited to update %s detail via ObjectSetDetails", rel.String()) + } + } + newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) diff --git a/core/block/editor/file/file.go b/core/block/editor/file/file.go index 390f7fa61..394174e1a 100644 --- a/core/block/editor/file/file.go +++ b/core/block/editor/file/file.go @@ -126,6 +126,7 @@ func (sf *sfile) SetFileTargetObjectId(ctx session.Context, blockId, targetObjec return err } var blockContentFileType model.BlockContentFileType + //nolint:gosec switch model.ObjectTypeLayout(sb.Details().GetInt64(bundle.RelationKeyResolvedLayout)) { case model.ObjectType_image: blockContentFileType = model.BlockContentFile_Image diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 7d8ac710a..e2ed172a6 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -360,7 +360,7 @@ func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, } if resultErr != nil { - return fmt.Errorf("failed to change layout for objects: %v", resultErr) + return fmt.Errorf("failed to change layout for objects: %w", resultErr) } return nil } diff --git a/core/block/editor/state/state.go b/core/block/editor/state/state.go index c4eb114ed..c92b9d11b 100644 --- a/core/block/editor/state/state.go +++ b/core/block/editor/state/state.go @@ -1686,6 +1686,7 @@ func (s *State) GetChangedStoreKeys(prefixPath ...string) (paths [][]string) { func (s *State) Layout() (model.ObjectTypeLayout, bool) { if det := s.Details(); det != nil { if det.Has(bundle.RelationKeyResolvedLayout) { + //nolint:gosec return model.ObjectTypeLayout(det.GetInt64(bundle.RelationKeyResolvedLayout)), true } } diff --git a/pkg/lib/localstore/objectstore/spaceindex/queries.go b/pkg/lib/localstore/objectstore/spaceindex/queries.go index 200723549..fafea66be 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/queries.go +++ b/pkg/lib/localstore/objectstore/spaceindex/queries.go @@ -59,6 +59,7 @@ func (s *dsObjectStore) getInjectedResults(details *domain.Details, score float6 return nil } + //nolint:gosec layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyResolvedLayout)) switch layout { case model.ObjectType_relationOption: From 838f04dedfc707f01f3b1e09da269a84d1820899 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 12:05:12 +0300 Subject: [PATCH 035/176] GO-4588 Allow to update recLayout via SetDetails --- core/block/editor/basic/details.go | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 3a902af0e..ffc6aedc5 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,7 +3,6 @@ package basic import ( "errors" "fmt" - "slices" "strings" "time" @@ -24,10 +23,6 @@ import ( var log = logging.Logger("anytype-mw-editor-basic") -var relationsProhibitedToUpdate = []domain.RelationKey{ - bundle.RelationKeyRecommendedLayout, -} - func (bs *basic) SetDetails(ctx session.Context, details []domain.Detail, showEvent bool) (err error) { _, err = bs.setDetails(ctx, details, showEvent) return err @@ -52,13 +47,6 @@ func (bs *basic) setDetails(ctx session.Context, details []domain.Detail, showEv // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later updates, updatedKeys := bs.collectDetailUpdates(details, s) - - for _, rel := range relationsProhibitedToUpdate { - if slices.Contains(updatedKeys, rel) { - return nil, fmt.Errorf("it is prohibited to update %s detail via ObjectSetDetails", rel.String()) - } - } - newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) From a39b82d0e89302c1ffb3e3d441ee811035961047 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 12:40:57 +0300 Subject: [PATCH 036/176] GO-4588 Fix lint --- core/block/editor/basic/extract_objects.go | 1 + core/block/editor/template/template.go | 5 ----- core/syncstatus/detailsupdater/updater.go | 1 + 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 2873cbb94..7fb32d266 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -252,5 +252,6 @@ func copySubtreeOfBlocks(s *state.State, oldRootId string, oldBlocks []simple.Bl } func hasNoteLayout(s *state.State) bool { + //nolint:gosec return model.ObjectTypeLayout(s.Details().GetInt64(bundle.RelationKeyResolvedLayout)) == model.ObjectType_note } diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index d0149f377..86b3ae1b9 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -104,11 +104,6 @@ var WithObjectTypesAndLayout = func(otypes []domain.TypeKey, layout model.Object } } -// deprecated? -var WithLayout = func(layout model.ObjectTypeLayout) StateTransformer { - return WithDetail(bundle.RelationKeyLayout, domain.Int64(layout)) -} - var WithDetailName = func(name string) StateTransformer { return WithDetail(bundle.RelationKeyName, domain.String(name)) } diff --git a/core/syncstatus/detailsupdater/updater.go b/core/syncstatus/detailsupdater/updater.go index 88f4483b5..b302da8ad 100644 --- a/core/syncstatus/detailsupdater/updater.go +++ b/core/syncstatus/detailsupdater/updater.go @@ -260,6 +260,7 @@ var suitableLayouts = map[model.ObjectTypeLayout]struct{}{ } func (u *syncStatusUpdater) isLayoutSuitableForSyncRelations(details *domain.Details) bool { + //nolint:gosec layout := model.ObjectTypeLayout(details.GetInt64(bundle.RelationKeyResolvedLayout)) _, ok := suitableLayouts[layout] return ok From 5eb4f3e34a249661cc3419e3d77c2148d7ffb3b5 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 17:18:52 +0300 Subject: [PATCH 037/176] GO-4588 Take layout from local details --- core/block/editor/basic/extract_objects.go | 2 +- core/block/editor/file/file.go | 2 +- .../editor/smartblock/smartblock_test.go | 1 + core/block/editor/state/state.go | 2 +- core/block/editor/template/template.go | 2 +- core/block/object/objectcreator/creator.go | 33 ++++++++++++------ core/block/template/service.go | 2 +- core/block/template/service_test.go | 2 +- core/converter/dot/dot.go | 2 +- core/converter/graphjson/graphjson.go | 2 +- core/indexer/indexer.go | 1 + core/indexer/reindex.go | 1 + core/kanban/service_test.go | 34 +++++++++---------- core/syncstatus/detailsupdater/updater.go | 2 +- .../objectstore/spaceindex/queries_test.go | 4 +-- 15 files changed, 54 insertions(+), 38 deletions(-) diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 7fb32d266..25f3c6349 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -253,5 +253,5 @@ func copySubtreeOfBlocks(s *state.State, oldRootId string, oldBlocks []simple.Bl func hasNoteLayout(s *state.State) bool { //nolint:gosec - return model.ObjectTypeLayout(s.Details().GetInt64(bundle.RelationKeyResolvedLayout)) == model.ObjectType_note + return model.ObjectTypeLayout(s.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) == model.ObjectType_note } diff --git a/core/block/editor/file/file.go b/core/block/editor/file/file.go index 394174e1a..afd06e4f2 100644 --- a/core/block/editor/file/file.go +++ b/core/block/editor/file/file.go @@ -127,7 +127,7 @@ func (sf *sfile) SetFileTargetObjectId(ctx session.Context, blockId, targetObjec } var blockContentFileType model.BlockContentFileType //nolint:gosec - switch model.ObjectTypeLayout(sb.Details().GetInt64(bundle.RelationKeyResolvedLayout)) { + switch model.ObjectTypeLayout(sb.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) { case model.ObjectType_image: blockContentFileType = model.BlockContentFile_Image case model.ObjectType_audio: diff --git a/core/block/editor/smartblock/smartblock_test.go b/core/block/editor/smartblock/smartblock_test.go index 08b89d2b1..52db38a0c 100644 --- a/core/block/editor/smartblock/smartblock_test.go +++ b/core/block/editor/smartblock/smartblock_test.go @@ -17,6 +17,7 @@ import ( _ "github.com/anyproto/anytype-heart/core/block/simple/link" _ "github.com/anyproto/anytype-heart/core/block/simple/text" "github.com/anyproto/anytype-heart/core/block/source" + "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event/mock_event" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pb" diff --git a/core/block/editor/state/state.go b/core/block/editor/state/state.go index c92b9d11b..70f276a6f 100644 --- a/core/block/editor/state/state.go +++ b/core/block/editor/state/state.go @@ -1684,7 +1684,7 @@ func (s *State) GetChangedStoreKeys(prefixPath ...string) (paths [][]string) { } func (s *State) Layout() (model.ObjectTypeLayout, bool) { - if det := s.Details(); det != nil { + if det := s.LocalDetails(); det != nil { if det.Has(bundle.RelationKeyResolvedLayout) { //nolint:gosec return model.ObjectTypeLayout(det.GetInt64(bundle.RelationKeyResolvedLayout)), true diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index 86b3ae1b9..3b3f0c756 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -98,7 +98,7 @@ var WithObjectTypesAndLayout = func(otypes []domain.TypeKey, layout model.Object otypes = s.ObjectTypeKeys() } - if !s.Details().Has(bundle.RelationKeyResolvedLayout) { + if !s.LocalDetails().Has(bundle.RelationKeyResolvedLayout) { s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) } } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index c96662ccf..b55851e0b 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -171,27 +171,40 @@ func (s *service) createObjectFromTemplate( func (s *service) injectResolvedLayout( ctx context.Context, space clientspace.Space, typeKey string, details *domain.Details, -) error { +) (err error) { + var layout int64 + if bundle.IsInternalType(domain.TypeKey(typeKey)) { + ot := bundle.MustGetType(domain.TypeKey(typeKey)) + layout = int64(ot.Layout) + } else { + layout, err = s.getLayoutFromType(ctx, space, typeKey) + if err != nil { + return err + } + } + + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + // we should remove layout relation from details, if client accidentally add it in request + details.Delete(bundle.RelationKeyLayout) + return nil +} + +func (s *service) getLayoutFromType(ctx context.Context, space clientspace.Space, typeKey string) (int64, error) { typeObjectId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(smartblock.SmartBlockTypeObjectType, typeKey)) if err != nil { - return fmt.Errorf("failed to derive object type id: %w", err) + return 0, fmt.Errorf("failed to derive object type id: %w", err) } records, err := s.objectStore.SpaceIndex(space.Id()).QueryByIds([]string{typeObjectId}) if err != nil { - return fmt.Errorf("failed to query details of object type: %w", err) + return 0, fmt.Errorf("failed to query details of object type: %w", err) } if len(records) != 1 { - return fmt.Errorf("expected to get 1 record on querying object type details, got %d", len(records)) + return 0, fmt.Errorf("expected to get 1 record on querying object type details, got %d", len(records)) } - layout := records[0].Details.GetInt64(bundle.RelationKeyRecommendedLayout) - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - - // we should remove layout relation from details, if client accidentally add it in request - details.Delete(bundle.RelationKeyLayout) - return nil + return records[0].Details.GetInt64(bundle.RelationKeyRecommendedLayout), nil } // buildDateObject does not create real date object. It just builds date object details diff --git a/core/block/template/service.go b/core/block/template/service.go index 1325f7582..1e5ba1d73 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -131,7 +131,7 @@ func extractTargetDetails(originDetails *domain.Details, templateDetails *domain templateVal := templateDetails.Get(key) if templateVal.Ok() { inTemplateEmpty := templateVal.IsEmpty() - if key == bundle.RelationKeyLayout { + if key == bundle.RelationKeyResolvedLayout { // layout = 0 is actually basic layout, so it counts inTemplateEmpty = false } diff --git a/core/block/template/service_test.go b/core/block/template/service_test.go index 24f599439..2c104a636 100644 --- a/core/block/template/service_test.go +++ b/core/block/template/service_test.go @@ -217,7 +217,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { // then assert.NoError(t, err) - assert.Equal(t, layout, model.ObjectTypeLayout(st.Details().GetInt64(bundle.RelationKeyResolvedLayout))) + assert.Equal(t, layout, model.ObjectTypeLayout(st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout))) assertLayoutBlocks(t, st, layout) }) } diff --git a/core/converter/dot/dot.go b/core/converter/dot/dot.go index 05e0f648e..2008608fe 100644 --- a/core/converter/dot/dot.go +++ b/core/converter/dot/dot.go @@ -118,7 +118,7 @@ func (d *dot) Add(space smartblock.Space, st *state.State) error { } n.Set("type", string(st.ObjectTypeKey())) - layout := st.Details().GetInt64(bundle.RelationKeyResolvedLayout) + layout := st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout) n.Set("layout", fmt.Sprintf("%d", layout)) // TODO: add relations diff --git a/core/converter/graphjson/graphjson.go b/core/converter/graphjson/graphjson.go index 8a4a1f814..5a52fb038 100644 --- a/core/converter/graphjson/graphjson.go +++ b/core/converter/graphjson/graphjson.go @@ -84,7 +84,7 @@ func (g *graphjson) Add(space smartblock.Space, st *state.State) error { IconEmoji: st.Details().GetString(bundle.RelationKeyIconEmoji), Description: st.Details().GetString(bundle.RelationKeyDescription), Type: st.ObjectTypeKey(), - Layout: int(st.Details().GetInt64(bundle.RelationKeyResolvedLayout)), + Layout: int(st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)), } g.nodes[st.RootId()] = &n diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index 7bfcee487..44a171fae 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -121,6 +121,7 @@ func (i *indexer) Close(ctx context.Context) (err error) { } func (i *indexer) RemoveAclIndexes(spaceId string) (err error) { + // TODO: It seems we should also filter objects by Layout, because participants should be re-indexed to receive resolvedLayout ids, _, err := i.store.SpaceIndex(spaceId).QueryObjectIds(database.Query{ Filters: []database.FilterRequest{ { diff --git a/core/indexer/reindex.go b/core/indexer/reindex.go index a4de3e6dc..e4d0e536b 100644 --- a/core/indexer/reindex.go +++ b/core/indexer/reindex.go @@ -256,6 +256,7 @@ func (i *indexer) removeOldFiles(spaceId string, flags reindexFlags) error { return nil } store := i.store.SpaceIndex(spaceId) + // TODO: It seems we should also filter objects by Layout, because file objects should be re-indexed to receive resolvedLayout ids, _, err := store.QueryObjectIds(database.Query{ Filters: []database.FilterRequest{ { diff --git a/core/kanban/service_test.go b/core/kanban/service_test.go index 75828e9e4..e436ad4f5 100644 --- a/core/kanban/service_test.go +++ b/core/kanban/service_test.go @@ -49,11 +49,11 @@ func Test_GrouperTags(t *testing.T) { store := objectStore.SpaceIndex(spaceId) require.NoError(t, store.UpdateObjectDetails(context.Background(), "rel-tag", domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - "id": domain.String("rel-tag"), - "relationKey": domain.String("tag"), - "relationFormat": domain.Int64(int64(model.RelationFormat_tag)), - "type": domain.String(bundle.TypeKeyRelation.URL()), - "layout": domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyId: domain.String("rel-tag"), + bundle.RelationKeyRelationKey: domain.String("tag"), + bundle.RelationKeyRelationFormat: domain.Int64(int64(model.RelationFormat_tag)), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelation.URL()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), }))) idTag1 := bson.NewObjectId().Hex() @@ -61,23 +61,23 @@ func Test_GrouperTags(t *testing.T) { idTag3 := bson.NewObjectId().Hex() require.NoError(t, store.UpdateObjectDetails(context.Background(), idTag1, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - "id": domain.String(idTag1), - "relationKey": domain.String("tag"), - "type": domain.String(bundle.TypeKeyRelationOption.URL()), - "layout": domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String(idTag1), + bundle.RelationKeyRelationKey: domain.String("tag"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelationOption.URL()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), }))) require.NoError(t, store.UpdateObjectDetails(context.Background(), idTag2, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - "id": domain.String(idTag2), - "relationKey": domain.String("tag"), - "type": domain.String(bundle.TypeKeyRelationOption.URL()), - "layout": domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String(idTag2), + bundle.RelationKeyRelationKey: domain.String("tag"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelationOption.URL()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), }))) require.NoError(t, store.UpdateObjectDetails(context.Background(), idTag3, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - "id": domain.String(idTag3), - "relationKey": domain.String("tag"), - "type": domain.String(bundle.TypeKeyRelationOption.URL()), - "layout": domain.Int64(int64(model.ObjectType_relationOption)), + bundle.RelationKeyId: domain.String(idTag3), + bundle.RelationKeyRelationKey: domain.String("tag"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelationOption.URL()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relationOption)), }))) id1 := bson.NewObjectId().Hex() diff --git a/core/syncstatus/detailsupdater/updater.go b/core/syncstatus/detailsupdater/updater.go index b302da8ad..69717ad1a 100644 --- a/core/syncstatus/detailsupdater/updater.go +++ b/core/syncstatus/detailsupdater/updater.go @@ -226,7 +226,7 @@ func (u *syncStatusUpdater) setSyncDetails(sb smartblock.SmartBlock, status doma return nil } st := sb.NewState() - if !u.isLayoutSuitableForSyncRelations(sb.Details()) { + if !u.isLayoutSuitableForSyncRelations(sb.LocalDetails()) { return nil } if fileStatus, ok := st.Details().TryFloat64(bundle.RelationKeyFileBackupStatus); ok { diff --git a/pkg/lib/localstore/objectstore/spaceindex/queries_test.go b/pkg/lib/localstore/objectstore/spaceindex/queries_test.go index 93ab84976..566a4d8f8 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/queries_test.go +++ b/pkg/lib/localstore/objectstore/spaceindex/queries_test.go @@ -535,7 +535,7 @@ func TestQuery(t *testing.T) { Filters: []database.FilterRequest{ { Operator: 0, - RelationKey: "layout", + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_NotIn, Value: domain.Int64List([]int64{int64(model.ObjectType_relationOption)}), }, @@ -593,7 +593,7 @@ func TestQuery(t *testing.T) { Filters: []database.FilterRequest{ { Operator: 0, - RelationKey: "layout", + RelationKey: bundle.RelationKeyResolvedLayout, Condition: model.BlockContentDataviewFilter_NotIn, Value: domain.Int64List([]int64{int64(model.ObjectType_objectType)}), }, From 3a629d494e0efcb2bcae54b8cbe3a013c2a8f6e4 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 19:02:41 +0300 Subject: [PATCH 038/176] GO-4588 Rm layout inject from creator --- core/block/object/objectcreator/creator.go | 47 ++-------------------- 1 file changed, 4 insertions(+), 43 deletions(-) diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index b55851e0b..e40ba7bdb 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -14,7 +14,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" - "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -127,13 +126,13 @@ func (s *service) createObjectInSpace( } } - if err = s.injectResolvedLayout(ctx, space, string(req.ObjectTypeKey), details); err != nil { - return "", nil, fmt.Errorf("failed to inject resolved layout: %w", err) - } - switch req.ObjectTypeKey { case bundle.TypeKeyBookmark: return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) + case bundle.TypeKeySet: + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_set)) + case bundle.TypeKeyCollection: + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_collection)) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) case bundle.TypeKeyRelation: @@ -169,44 +168,6 @@ func (s *service) createObjectFromTemplate( return s.CreateSmartBlockFromStateInSpace(ctx, space, objectTypeKeys, createState) } -func (s *service) injectResolvedLayout( - ctx context.Context, space clientspace.Space, typeKey string, details *domain.Details, -) (err error) { - var layout int64 - if bundle.IsInternalType(domain.TypeKey(typeKey)) { - ot := bundle.MustGetType(domain.TypeKey(typeKey)) - layout = int64(ot.Layout) - } else { - layout, err = s.getLayoutFromType(ctx, space, typeKey) - if err != nil { - return err - } - } - - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - // we should remove layout relation from details, if client accidentally add it in request - details.Delete(bundle.RelationKeyLayout) - return nil -} - -func (s *service) getLayoutFromType(ctx context.Context, space clientspace.Space, typeKey string) (int64, error) { - typeObjectId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(smartblock.SmartBlockTypeObjectType, typeKey)) - if err != nil { - return 0, fmt.Errorf("failed to derive object type id: %w", err) - } - - records, err := s.objectStore.SpaceIndex(space.Id()).QueryByIds([]string{typeObjectId}) - if err != nil { - return 0, fmt.Errorf("failed to query details of object type: %w", err) - } - - if len(records) != 1 { - return 0, fmt.Errorf("expected to get 1 record on querying object type details, got %d", len(records)) - } - - return records[0].Details.GetInt64(bundle.RelationKeyRecommendedLayout), nil -} - // buildDateObject does not create real date object. It just builds date object details func buildDateObject(space clientspace.Space, details *domain.Details) (string, *domain.Details, error) { ts := details.GetInt64(bundle.RelationKeyTimestamp) From ded79417220bded99fc99bbfbd1e1dfc897d6c6a Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 7 Jan 2025 19:43:55 +0300 Subject: [PATCH 039/176] GO-4588 Add tests on resolvedLayout injection --- core/block/editor/smartblock/detailsinject.go | 4 +- .../editor/smartblock/detailsinject_test.go | 96 +++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index e2ed172a6..ecd6699b8 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -227,7 +227,7 @@ func (sb *smartBlock) deriveChatId(s *state.State) error { } func (sb *smartBlock) injectResolvedLayout(s *state.State) { - if s.Details() == nil { + if s.Details() == nil && s.LocalDetails() == nil { return } rawValue := s.Details().Get(bundle.RelationKeyLayout) @@ -255,7 +255,7 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { rawValue = typeDetails.Get(bundle.RelationKeyRecommendedLayout) } else { records, err := sb.objectStore.SpaceIndex(sb.SpaceID()).QueryByIds([]string{typeObjectId}) - if err != nil || len(records) != 0 { + if err != nil || len(records) != 1 { log.Errorf("failed to query object %s: %v", typeObjectId, err) s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go index 461c66c49..e9d37d930 100644 --- a/core/block/editor/smartblock/detailsinject_test.go +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -14,6 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) @@ -280,3 +281,98 @@ func TestInjectDerivedDetails(t *testing.T) { assert.Len(t, st.LocalDetails().GetStringList(bundle.RelationKeyLinks), 3) }) } + +func TestInjectResolvedLayout(t *testing.T) { + const ( + id = "id" + spaceId = "testSpace" + ) + t.Run("resolved layout is injected from layout detail", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetDetail(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_todo)) + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_todo), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + t.Run("resolved layout is already injected", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_set)) + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_set), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + t.Run("failed to get type object id -> fallback to basic", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_basic), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + t.Run("layout is resolved from sb last deps", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyTask.URL())) + + fx.lastDepDetails = map[string]*domain.Details{ + bundle.TypeKeyTask.URL(): domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_todo), + }), + } + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_todo), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + t.Run("layout is resolved from object store", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyProfile.URL())) + + fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{{ + bundle.RelationKeyId: domain.String(bundle.TypeKeyProfile.URL()), + bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_profile), + }}) + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_profile), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + t.Run("failed to query type object -> fallback to basic", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyNote.URL())) + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_basic), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) +} From 25e6d43ed5e957b9cb61b755bb9e67fc86ec6758 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Tue, 7 Jan 2025 23:37:15 +0100 Subject: [PATCH 040/176] GO-4346: fix template export Signed-off-by: AnastasiaShemyakinskaya --- core/block/export/export.go | 4 + core/block/export/export_test.go | 140 ++++++++++++++++++++++++----- core/block/import/pb/space.go | 2 +- core/block/import/pb/space_test.go | 16 +++- 4 files changed, 138 insertions(+), 24 deletions(-) diff --git a/core/block/export/export.go b/core/block/export/export.go index a7d5c4a2d..487b5c007 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -496,6 +496,10 @@ func (e *exportContext) collectDerivedObjects(objects map[string]*domain.Details objectsTypes = lo.Union(objectsTypes, []string{objectTypeId}) setOfList := details.GetStringList(bundle.RelationKeySetOf) setOf = lo.Union(setOf, setOfList) + targetObjectType := details.GetString(bundle.RelationKeyTargetObjectType) + if targetObjectType != "" { + objectsTypes = lo.Union(objectsTypes, []string{targetObjectType}) + } return nil }) if err != nil { diff --git a/core/block/export/export_test.go b/core/block/export/export_test.go index ac3b9bb3e..ddb9e7744 100644 --- a/core/block/export/export_test.go +++ b/core/block/export/export_test.go @@ -340,10 +340,10 @@ func Test_docsForExport(t *testing.T) { relationKey := domain.RelationKey("key") storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - domain.RelationKey(relationKey): domain.String("value"), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("id"), + relationKey: domain.String("value"), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeySpaceId: domain.String(spaceId), }, }) err := storeFixture.SpaceIndex(spaceId).UpdateObjectLinks(context.Background(), "id", []string{"id1"}) @@ -409,10 +409,10 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - domain.RelationKey(relationKey): domain.String("value"), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("id"), + relationKey: domain.String("value"), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(relationKey), @@ -486,10 +486,10 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - domain.RelationKey(relationKey): domain.String("value"), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("id"), + relationKey: domain.String("value"), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(relationKey), @@ -565,10 +565,10 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - domain.RelationKey(relationKey): domain.String(optionId), - bundle.RelationKeyType: domain.String("objectType"), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("id"), + relationKey: domain.String(optionId), + bundle.RelationKeyType: domain.String("objectType"), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(relationKey), @@ -665,10 +665,10 @@ func Test_docsForExport(t *testing.T) { linkedObjectId := "linkedObjectId" storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("id"), - domain.RelationKey(relationKey): domain.String("test"), - bundle.RelationKeyType: domain.String(objectTypeKey), - bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyId: domain.String("id"), + relationKey: domain.String("test"), + bundle.RelationKeyType: domain.String(objectTypeKey), + bundle.RelationKeySpaceId: domain.String(spaceId), }, { bundle.RelationKeyId: domain.String(relationKey), @@ -1361,6 +1361,106 @@ func Test_docsForExport(t *testing.T) { assert.Nil(t, err) assert.Equal(t, 5, len(expCtx.docs)) }) + t.Run("export template", func(t *testing.T) { + // given + storeFixture := objectstore.NewStoreFixture(t) + objectTypeKey := "customObjectType" + objectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, objectTypeKey) + assert.Nil(t, err) + + templateType := "templateType" + templateObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, templateType) + assert.Nil(t, err) + + objectId := "objectId" + storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ + { + bundle.RelationKeyId: domain.String(objectId), + bundle.RelationKeyName: domain.String("template"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyTargetObjectType: domain.String(objectTypeKey), + bundle.RelationKeyType: domain.String(templateType), + }, + { + bundle.RelationKeyId: domain.String(objectTypeKey), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeKey), + }, + { + bundle.RelationKeyId: domain.String(templateType), + bundle.RelationKeyUniqueKey: domain.String(templateObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeKey), + }, + }) + + smartBlockTest := smarttest.New(objectId) + doc := smartBlockTest.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyId: domain.String(objectId), + bundle.RelationKeyType: domain.String(templateType), + bundle.RelationKeyTargetObjectType: domain.String(objectTypeKey), + })) + doc.AddRelationLinks(&model.RelationLink{ + Key: bundle.RelationKeyId.String(), + Format: model.RelationFormat_longtext, + }) + smartBlockTest.Doc = doc + + objectType := smarttest.New(objectTypeKey) + objectTypeDoc := objectType.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyId: domain.String(objectTypeKey), + bundle.RelationKeyType: domain.String(objectTypeKey), + })) + objectTypeDoc.AddRelationLinks(&model.RelationLink{ + Key: bundle.RelationKeyId.String(), + Format: model.RelationFormat_longtext, + }, &model.RelationLink{ + Key: bundle.RelationKeyType.String(), + Format: model.RelationFormat_longtext, + }) + objectType.Doc = objectTypeDoc + + templateTypeObject := smarttest.New(templateType) + templateTypeObjectDoc := objectType.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyId: domain.String(templateType), + bundle.RelationKeyType: domain.String(templateType), + })) + templateTypeObjectDoc.AddRelationLinks(&model.RelationLink{ + Key: bundle.RelationKeyId.String(), + Format: model.RelationFormat_longtext, + }, &model.RelationLink{ + Key: bundle.RelationKeyType.String(), + Format: model.RelationFormat_longtext, + }) + templateTypeObject.Doc = templateTypeObjectDoc + + objectGetter := mock_cache.NewMockObjectGetter(t) + objectGetter.EXPECT().GetObject(context.Background(), objectId).Return(smartBlockTest, nil) + objectGetter.EXPECT().GetObject(context.Background(), objectTypeKey).Return(objectType, nil) + objectGetter.EXPECT().GetObject(context.Background(), templateType).Return(templateTypeObject, nil) + + e := &export{ + objectStore: storeFixture, + picker: objectGetter, + } + + expCtx := newExportContext(e, pb.RpcObjectListExportRequest{ + SpaceId: spaceId, + ObjectIds: []string{objectId}, + IncludeNested: false, + Format: model.Export_Protobuf, + }) + + // when + err = expCtx.docsForExport() + + // then + assert.Nil(t, err) + assert.Equal(t, 3, len(expCtx.docs)) + }) } func Test_provideFileName(t *testing.T) { diff --git a/core/block/import/pb/space.go b/core/block/import/pb/space.go index 44bf37bd2..73e69e29a 100644 --- a/core/block/import/pb/space.go +++ b/core/block/import/pb/space.go @@ -65,7 +65,7 @@ func (s *SpaceImport) ProvideCollection(snapshots []*common.Snapshot, } func (s *SpaceImport) objectShouldBeSkipped(item *common.Snapshot) bool { - return item.Snapshot.SbType == smartblock.SmartBlockTypeSubObject || item.Snapshot.SbType == smartblock.SmartBlockTypeTemplate || + return item.Snapshot.SbType == smartblock.SmartBlockTypeSubObject || item.Snapshot.SbType == smartblock.SmartBlockTypeRelation || item.Snapshot.SbType == smartblock.SmartBlockTypeObjectType || item.Snapshot.SbType == smartblock.SmartBlockTypeRelationOption } diff --git a/core/block/import/pb/space_test.go b/core/block/import/pb/space_test.go index df0b01877..119fa6cbe 100644 --- a/core/block/import/pb/space_test.go +++ b/core/block/import/pb/space_test.go @@ -44,7 +44,7 @@ func TestSpaceImport_ProvideCollection(t *testing.T) { assert.Nil(t, err) assert.Nil(t, collection) }) - t.Run("no widget object - add all objects (except template and subobjects) in Protobuf Import collection", func(t *testing.T) { + t.Run("no widget object - add all objects (except subobjects) in Protobuf Import collection", func(t *testing.T) { // given p := SpaceImport{} params := &pb.RpcObjectImportRequestPbParams{NoCollection: false} @@ -85,9 +85,10 @@ func TestSpaceImport_ProvideCollection(t *testing.T) { assert.Len(t, collection, 1) rootCollectionState := state.NewDocFromSnapshot("", collection[0].Snapshot.ToProto()).(*state.State) objectsInCollection := rootCollectionState.GetStoreSlice(template.CollectionStoreKey) - assert.Len(t, objectsInCollection, 2) + assert.Len(t, objectsInCollection, 3) assert.Equal(t, objectsInCollection[0], "id1") - assert.Equal(t, objectsInCollection[1], "id4") + assert.Equal(t, objectsInCollection[1], "id3") + assert.Equal(t, objectsInCollection[2], "id4") }) t.Run("widget with sets - add only sets in Protobuf Import collection", func(t *testing.T) { // given @@ -106,6 +107,9 @@ func TestSpaceImport_ProvideCollection(t *testing.T) { Id: "id3", Snapshot: &common.SnapshotModel{ SbType: smartblock2.SmartBlockTypeTemplate, + Data: &common.StateSnapshot{ + ObjectTypes: []string{bundle.TypeKeyTemplate.URL()}, + }, }, }, // page @@ -191,6 +195,9 @@ func TestSpaceImport_ProvideCollection(t *testing.T) { Id: "id3", Snapshot: &common.SnapshotModel{ SbType: smartblock2.SmartBlockTypeTemplate, + Data: &common.StateSnapshot{ + ObjectTypes: []string{bundle.TypeKeyTemplate.URL()}, + }, }, }, // page @@ -277,6 +284,9 @@ func TestSpaceImport_ProvideCollection(t *testing.T) { Id: "id3", Snapshot: &common.SnapshotModel{ SbType: smartblock2.SmartBlockTypeTemplate, + Data: &common.StateSnapshot{ + ObjectTypes: []string{bundle.TypeKeyTemplate.URL()}, + }, }, }, // favorite page From 806151d5029e3e7cc743d8ae4b461aaabf90752b Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 8 Jan 2025 13:32:41 +0300 Subject: [PATCH 041/176] GO-4588 Increase force reindex counter --- core/indexer/reindex.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/indexer/reindex.go b/core/indexer/reindex.go index e4d0e536b..5e0d0096e 100644 --- a/core/indexer/reindex.go +++ b/core/indexer/reindex.go @@ -24,7 +24,7 @@ import ( const ( // ForceObjectsReindexCounter reindex thread-based objects - ForceObjectsReindexCounter int32 = 16 + ForceObjectsReindexCounter int32 = 17 // ForceFilesReindexCounter reindex file objects ForceFilesReindexCounter int32 = 12 // From d24c2063021e99e3a9b083ccfaeabd05fdf6bcfb Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 8 Jan 2025 13:52:05 +0300 Subject: [PATCH 042/176] GO-4588 Make Task, Note, Page editable --- core/block/restriction/object.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index 2574c14f8..fde81a9cc 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -154,6 +154,8 @@ var ( } ) +var editableSystemTypes = []domain.TypeKey{bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote} + func GetRestrictionsBySBType(sbType smartblock.SmartBlockType) []int { restrictions := objectRestrictionsBySBType[sbType] result := make([]int, len(restrictions)) @@ -226,7 +228,7 @@ func getRestrictionsForUniqueKey(uk domain.UniqueKey) (r ObjectRestrictions) { switch uk.SmartblockType() { case smartblock.SmartBlockTypeObjectType: key := uk.InternalKey() - if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) { + if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) && !lo.Contains(editableSystemTypes, domain.TypeKey(key)) { r = sysTypesRestrictions } if t, _ := bundle.GetType(domain.TypeKey(key)); t != nil && t.RestrictObjectCreation { From 116a576818aab990afa22764a989634185d8fd5a Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 8 Jan 2025 17:57:39 +0300 Subject: [PATCH 043/176] GO-4588 Use Apply instead of StateAppend --- core/block/editor/smartblock/detailsinject.go | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index ecd6699b8..10b933aef 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -9,10 +9,8 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/simple" - "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus" - "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" @@ -307,7 +305,7 @@ func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, err = sb.space.Do(id, func(b SmartBlock) error { st := b.NewState() st.RemoveDetail(bundle.RelationKeyLayout) - st.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) return b.Apply(st) }) if err != nil { @@ -344,15 +342,9 @@ func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, } err = sb.space.Do(id, func(b SmartBlock) error { - if cr, ok := b.(source.ChangeReceiver); ok { - return cr.StateAppend(func(d state.Doc) (s *state.State, changes []*pb.ChangeContent, err error) { - st := d.NewState() - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - return st, nil, nil - }) - } - // do not Apply. StateAppend sends the event and runs reindex - return nil + st := b.NewState() + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + return b.Apply(st, KeepInternalFlags, NotPushChanges) }) if err != nil { resultErr = errors.Join(resultErr, err) From 29bd1174f618250cc53f69e3ae163076ba938b13 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 13:51:03 +0300 Subject: [PATCH 044/176] GO-4588 Test on changeResolvedLayout --- core/block/editor/smartblock/mock_Space.go | 535 +++++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 core/block/editor/smartblock/mock_Space.go diff --git a/core/block/editor/smartblock/mock_Space.go b/core/block/editor/smartblock/mock_Space.go new file mode 100644 index 000000000..faaffafc5 --- /dev/null +++ b/core/block/editor/smartblock/mock_Space.go @@ -0,0 +1,535 @@ +// Code generated by mockery. DO NOT EDIT. + +package smartblock + +import ( + context "context" + + domain "github.com/anyproto/anytype-heart/core/domain" + mock "github.com/stretchr/testify/mock" + + objecttreebuilder "github.com/anyproto/any-sync/commonspace/objecttreebuilder" + + threads "github.com/anyproto/anytype-heart/pkg/lib/threads" +) + +// MockSpace is an autogenerated mock type for the Space type +type MockSpace struct { + mock.Mock +} + +type MockSpace_Expecter struct { + mock *mock.Mock +} + +func (_m *MockSpace) EXPECT() *MockSpace_Expecter { + return &MockSpace_Expecter{mock: &_m.Mock} +} + +// DeriveObjectID provides a mock function with given fields: ctx, uniqueKey +func (_m *MockSpace) DeriveObjectID(ctx context.Context, uniqueKey domain.UniqueKey) (string, error) { + ret := _m.Called(ctx, uniqueKey) + + if len(ret) == 0 { + panic("no return value specified for DeriveObjectID") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, domain.UniqueKey) (string, error)); ok { + return rf(ctx, uniqueKey) + } + if rf, ok := ret.Get(0).(func(context.Context, domain.UniqueKey) string); ok { + r0 = rf(ctx, uniqueKey) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, domain.UniqueKey) error); ok { + r1 = rf(ctx, uniqueKey) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockSpace_DeriveObjectID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeriveObjectID' +type MockSpace_DeriveObjectID_Call struct { + *mock.Call +} + +// DeriveObjectID is a helper method to define mock.On call +// - ctx context.Context +// - uniqueKey domain.UniqueKey +func (_e *MockSpace_Expecter) DeriveObjectID(ctx interface{}, uniqueKey interface{}) *MockSpace_DeriveObjectID_Call { + return &MockSpace_DeriveObjectID_Call{Call: _e.mock.On("DeriveObjectID", ctx, uniqueKey)} +} + +func (_c *MockSpace_DeriveObjectID_Call) Run(run func(ctx context.Context, uniqueKey domain.UniqueKey)) *MockSpace_DeriveObjectID_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(domain.UniqueKey)) + }) + return _c +} + +func (_c *MockSpace_DeriveObjectID_Call) Return(id string, err error) *MockSpace_DeriveObjectID_Call { + _c.Call.Return(id, err) + return _c +} + +func (_c *MockSpace_DeriveObjectID_Call) RunAndReturn(run func(context.Context, domain.UniqueKey) (string, error)) *MockSpace_DeriveObjectID_Call { + _c.Call.Return(run) + return _c +} + +// DerivedIDs provides a mock function with given fields: +func (_m *MockSpace) DerivedIDs() threads.DerivedSmartblockIds { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for DerivedIDs") + } + + var r0 threads.DerivedSmartblockIds + if rf, ok := ret.Get(0).(func() threads.DerivedSmartblockIds); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(threads.DerivedSmartblockIds) + } + + return r0 +} + +// MockSpace_DerivedIDs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DerivedIDs' +type MockSpace_DerivedIDs_Call struct { + *mock.Call +} + +// DerivedIDs is a helper method to define mock.On call +func (_e *MockSpace_Expecter) DerivedIDs() *MockSpace_DerivedIDs_Call { + return &MockSpace_DerivedIDs_Call{Call: _e.mock.On("DerivedIDs")} +} + +func (_c *MockSpace_DerivedIDs_Call) Run(run func()) *MockSpace_DerivedIDs_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockSpace_DerivedIDs_Call) Return(_a0 threads.DerivedSmartblockIds) *MockSpace_DerivedIDs_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_DerivedIDs_Call) RunAndReturn(run func() threads.DerivedSmartblockIds) *MockSpace_DerivedIDs_Call { + _c.Call.Return(run) + return _c +} + +// Do provides a mock function with given fields: objectId, apply +func (_m *MockSpace) Do(objectId string, apply func(SmartBlock) error) error { + ret := _m.Called(objectId, apply) + + if len(ret) == 0 { + panic("no return value specified for Do") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, func(SmartBlock) error) error); ok { + r0 = rf(objectId, apply) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockSpace_Do_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Do' +type MockSpace_Do_Call struct { + *mock.Call +} + +// Do is a helper method to define mock.On call +// - objectId string +// - apply func(SmartBlock) error +func (_e *MockSpace_Expecter) Do(objectId interface{}, apply interface{}) *MockSpace_Do_Call { + return &MockSpace_Do_Call{Call: _e.mock.On("Do", objectId, apply)} +} + +func (_c *MockSpace_Do_Call) Run(run func(objectId string, apply func(SmartBlock) error)) *MockSpace_Do_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(func(SmartBlock) error)) + }) + return _c +} + +func (_c *MockSpace_Do_Call) Return(_a0 error) *MockSpace_Do_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_Do_Call) RunAndReturn(run func(string, func(SmartBlock) error) error) *MockSpace_Do_Call { + _c.Call.Return(run) + return _c +} + +// DoLockedIfNotExists provides a mock function with given fields: objectID, proc +func (_m *MockSpace) DoLockedIfNotExists(objectID string, proc func() error) error { + ret := _m.Called(objectID, proc) + + if len(ret) == 0 { + panic("no return value specified for DoLockedIfNotExists") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, func() error) error); ok { + r0 = rf(objectID, proc) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockSpace_DoLockedIfNotExists_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DoLockedIfNotExists' +type MockSpace_DoLockedIfNotExists_Call struct { + *mock.Call +} + +// DoLockedIfNotExists is a helper method to define mock.On call +// - objectID string +// - proc func() error +func (_e *MockSpace_Expecter) DoLockedIfNotExists(objectID interface{}, proc interface{}) *MockSpace_DoLockedIfNotExists_Call { + return &MockSpace_DoLockedIfNotExists_Call{Call: _e.mock.On("DoLockedIfNotExists", objectID, proc)} +} + +func (_c *MockSpace_DoLockedIfNotExists_Call) Run(run func(objectID string, proc func() error)) *MockSpace_DoLockedIfNotExists_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(func() error)) + }) + return _c +} + +func (_c *MockSpace_DoLockedIfNotExists_Call) Return(_a0 error) *MockSpace_DoLockedIfNotExists_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_DoLockedIfNotExists_Call) RunAndReturn(run func(string, func() error) error) *MockSpace_DoLockedIfNotExists_Call { + _c.Call.Return(run) + return _c +} + +// GetRelationIdByKey provides a mock function with given fields: ctx, key +func (_m *MockSpace) GetRelationIdByKey(ctx context.Context, key domain.RelationKey) (string, error) { + ret := _m.Called(ctx, key) + + if len(ret) == 0 { + panic("no return value specified for GetRelationIdByKey") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, domain.RelationKey) (string, error)); ok { + return rf(ctx, key) + } + if rf, ok := ret.Get(0).(func(context.Context, domain.RelationKey) string); ok { + r0 = rf(ctx, key) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, domain.RelationKey) error); ok { + r1 = rf(ctx, key) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockSpace_GetRelationIdByKey_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetRelationIdByKey' +type MockSpace_GetRelationIdByKey_Call struct { + *mock.Call +} + +// GetRelationIdByKey is a helper method to define mock.On call +// - ctx context.Context +// - key domain.RelationKey +func (_e *MockSpace_Expecter) GetRelationIdByKey(ctx interface{}, key interface{}) *MockSpace_GetRelationIdByKey_Call { + return &MockSpace_GetRelationIdByKey_Call{Call: _e.mock.On("GetRelationIdByKey", ctx, key)} +} + +func (_c *MockSpace_GetRelationIdByKey_Call) Run(run func(ctx context.Context, key domain.RelationKey)) *MockSpace_GetRelationIdByKey_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(domain.RelationKey)) + }) + return _c +} + +func (_c *MockSpace_GetRelationIdByKey_Call) Return(id string, err error) *MockSpace_GetRelationIdByKey_Call { + _c.Call.Return(id, err) + return _c +} + +func (_c *MockSpace_GetRelationIdByKey_Call) RunAndReturn(run func(context.Context, domain.RelationKey) (string, error)) *MockSpace_GetRelationIdByKey_Call { + _c.Call.Return(run) + return _c +} + +// GetTypeIdByKey provides a mock function with given fields: ctx, key +func (_m *MockSpace) GetTypeIdByKey(ctx context.Context, key domain.TypeKey) (string, error) { + ret := _m.Called(ctx, key) + + if len(ret) == 0 { + panic("no return value specified for GetTypeIdByKey") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, domain.TypeKey) (string, error)); ok { + return rf(ctx, key) + } + if rf, ok := ret.Get(0).(func(context.Context, domain.TypeKey) string); ok { + r0 = rf(ctx, key) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, domain.TypeKey) error); ok { + r1 = rf(ctx, key) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockSpace_GetTypeIdByKey_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTypeIdByKey' +type MockSpace_GetTypeIdByKey_Call struct { + *mock.Call +} + +// GetTypeIdByKey is a helper method to define mock.On call +// - ctx context.Context +// - key domain.TypeKey +func (_e *MockSpace_Expecter) GetTypeIdByKey(ctx interface{}, key interface{}) *MockSpace_GetTypeIdByKey_Call { + return &MockSpace_GetTypeIdByKey_Call{Call: _e.mock.On("GetTypeIdByKey", ctx, key)} +} + +func (_c *MockSpace_GetTypeIdByKey_Call) Run(run func(ctx context.Context, key domain.TypeKey)) *MockSpace_GetTypeIdByKey_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(domain.TypeKey)) + }) + return _c +} + +func (_c *MockSpace_GetTypeIdByKey_Call) Return(id string, err error) *MockSpace_GetTypeIdByKey_Call { + _c.Call.Return(id, err) + return _c +} + +func (_c *MockSpace_GetTypeIdByKey_Call) RunAndReturn(run func(context.Context, domain.TypeKey) (string, error)) *MockSpace_GetTypeIdByKey_Call { + _c.Call.Return(run) + return _c +} + +// Id provides a mock function with given fields: +func (_m *MockSpace) Id() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Id") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockSpace_Id_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Id' +type MockSpace_Id_Call struct { + *mock.Call +} + +// Id is a helper method to define mock.On call +func (_e *MockSpace_Expecter) Id() *MockSpace_Id_Call { + return &MockSpace_Id_Call{Call: _e.mock.On("Id")} +} + +func (_c *MockSpace_Id_Call) Run(run func()) *MockSpace_Id_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockSpace_Id_Call) Return(_a0 string) *MockSpace_Id_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_Id_Call) RunAndReturn(run func() string) *MockSpace_Id_Call { + _c.Call.Return(run) + return _c +} + +// IsPersonal provides a mock function with given fields: +func (_m *MockSpace) IsPersonal() bool { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for IsPersonal") + } + + var r0 bool + if rf, ok := ret.Get(0).(func() bool); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// MockSpace_IsPersonal_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsPersonal' +type MockSpace_IsPersonal_Call struct { + *mock.Call +} + +// IsPersonal is a helper method to define mock.On call +func (_e *MockSpace_Expecter) IsPersonal() *MockSpace_IsPersonal_Call { + return &MockSpace_IsPersonal_Call{Call: _e.mock.On("IsPersonal")} +} + +func (_c *MockSpace_IsPersonal_Call) Run(run func()) *MockSpace_IsPersonal_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockSpace_IsPersonal_Call) Return(_a0 bool) *MockSpace_IsPersonal_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_IsPersonal_Call) RunAndReturn(run func() bool) *MockSpace_IsPersonal_Call { + _c.Call.Return(run) + return _c +} + +// StoredIds provides a mock function with given fields: +func (_m *MockSpace) StoredIds() []string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for StoredIds") + } + + var r0 []string + if rf, ok := ret.Get(0).(func() []string); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]string) + } + } + + return r0 +} + +// MockSpace_StoredIds_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'StoredIds' +type MockSpace_StoredIds_Call struct { + *mock.Call +} + +// StoredIds is a helper method to define mock.On call +func (_e *MockSpace_Expecter) StoredIds() *MockSpace_StoredIds_Call { + return &MockSpace_StoredIds_Call{Call: _e.mock.On("StoredIds")} +} + +func (_c *MockSpace_StoredIds_Call) Run(run func()) *MockSpace_StoredIds_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockSpace_StoredIds_Call) Return(_a0 []string) *MockSpace_StoredIds_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_StoredIds_Call) RunAndReturn(run func() []string) *MockSpace_StoredIds_Call { + _c.Call.Return(run) + return _c +} + +// TreeBuilder provides a mock function with given fields: +func (_m *MockSpace) TreeBuilder() objecttreebuilder.TreeBuilder { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for TreeBuilder") + } + + var r0 objecttreebuilder.TreeBuilder + if rf, ok := ret.Get(0).(func() objecttreebuilder.TreeBuilder); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(objecttreebuilder.TreeBuilder) + } + } + + return r0 +} + +// MockSpace_TreeBuilder_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TreeBuilder' +type MockSpace_TreeBuilder_Call struct { + *mock.Call +} + +// TreeBuilder is a helper method to define mock.On call +func (_e *MockSpace_Expecter) TreeBuilder() *MockSpace_TreeBuilder_Call { + return &MockSpace_TreeBuilder_Call{Call: _e.mock.On("TreeBuilder")} +} + +func (_c *MockSpace_TreeBuilder_Call) Run(run func()) *MockSpace_TreeBuilder_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockSpace_TreeBuilder_Call) Return(_a0 objecttreebuilder.TreeBuilder) *MockSpace_TreeBuilder_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockSpace_TreeBuilder_Call) RunAndReturn(run func() objecttreebuilder.TreeBuilder) *MockSpace_TreeBuilder_Call { + _c.Call.Return(run) + return _c +} + +// NewMockSpace creates a new instance of MockSpace. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockSpace(t interface { + mock.TestingT + Cleanup(func()) +}) *MockSpace { + mock := &MockSpace{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} From 4f45c74c26e5d1b1011eb87771dd79adccc93b33 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 13:51:18 +0300 Subject: [PATCH 045/176] GO-4588 Test on changeResolvedLayout --- .mockery.yaml | 5 + .../editor/smartblock/detailsinject_test.go | 107 ++++++++++++++++++ .../editor/smartblock/smartblock_test.go | 6 +- 3 files changed, 117 insertions(+), 1 deletion(-) diff --git a/.mockery.yaml b/.mockery.yaml index b401ba835..e2165456c 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -37,6 +37,11 @@ packages: dir: "{{.InterfaceDir}}" outpkg: "{{.PackageName}}" inpackage: true + Space: + config: + dir: "{{.InterfaceDir}}" + outpkg: "{{.PackageName}}" + inpackage: true github.com/anyproto/anytype-heart/core/block/editor/lastused: interfaces: ObjectUsageUpdater: diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go index e9d37d930..7589a1428 100644 --- a/core/block/editor/smartblock/detailsinject_test.go +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -6,12 +6,15 @@ import ( "testing" "time" + "github.com/anyproto/any-sync/app/ocache" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" @@ -376,3 +379,107 @@ func TestInjectResolvedLayout(t *testing.T) { assert.Equal(t, int64(model.ObjectType_basic), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) } + +func TestChangeResolvedLayoutForObjects(t *testing.T) { + typeId := "typeId" + t.Run("change resolvedLayout, do not delete layout", func(t *testing.T) { + // given + fx := newFixture(typeId, t) + fx.source.sbType = smartblock.SmartBlockTypeObjectType + + fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{ + { + bundle.RelationKeyId: domain.String("obj1"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + }, + { + bundle.RelationKeyId: domain.String("obj2"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_todo)), + }, + { + bundle.RelationKeyId: domain.String("obj3"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_profile)), + }, + }) + + fx.space.EXPECT().DoLockedIfNotExists(mock.Anything, mock.Anything).RunAndReturn(func(id string, f func() error) error { + if id == "obj1" { + return f() + } + return ocache.ErrExists + }) + + fx.space.EXPECT().Do(mock.Anything, mock.Anything).RunAndReturn(func(id string, f func(SmartBlock) error) error { + assert.Equal(t, "obj3", id) + return nil + }) + + // when + err := fx.changeResolvedLayoutForObjects(makeLayoutChanges(int64(model.ObjectType_todo)), false) + + // then + assert.NoError(t, err) + }) + + t.Run("change resolvedLayout, do not delete layout", func(t *testing.T) { + // given + fx := newFixture(typeId, t) + fx.source.sbType = smartblock.SmartBlockTypeObjectType + + fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{ + { + bundle.RelationKeyId: domain.String("obj1"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_basic)), + }, + { + bundle.RelationKeyId: domain.String("obj2"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_todo)), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_todo)), + }, + { + bundle.RelationKeyId: domain.String("obj3"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_profile)), + }, + { + bundle.RelationKeyId: domain.String("obj4"), + bundle.RelationKeyType: domain.String(typeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_note)), + }, + }) + + fx.space.EXPECT().DoLockedIfNotExists(mock.Anything, mock.Anything).RunAndReturn(func(id string, f func() error) error { + assert.Equal(t, "obj4", id) + return f() + }) + + counter := 0 + fx.space.EXPECT().Do(mock.Anything, mock.Anything).RunAndReturn(func(id string, f func(SmartBlock) error) error { + counter++ + return nil + }) + + // when + err := fx.changeResolvedLayoutForObjects(makeLayoutChanges(int64(model.ObjectType_todo)), true) + + // then + assert.NoError(t, err) + assert.Equal(t, 3, counter) + }) +} + +func makeLayoutChanges(layout int64) []simple.EventMessage { + return []simple.EventMessage{{ + Msg: &pb.EventMessage{Value: &pb.EventMessageValueOfObjectDetailsAmend{ObjectDetailsAmend: &pb.EventObjectDetailsAmend{ + Details: []*pb.EventObjectDetailsAmendKeyValue{{ + Key: bundle.RelationKeyRecommendedLayout.String(), + Value: domain.Int64(layout).ToProto(), + }, + }}}}, + }} +} diff --git a/core/block/editor/smartblock/smartblock_test.go b/core/block/editor/smartblock/smartblock_test.go index 52db38a0c..a7893aa46 100644 --- a/core/block/editor/smartblock/smartblock_test.go +++ b/core/block/editor/smartblock/smartblock_test.go @@ -187,6 +187,7 @@ type fixture struct { eventSender *mock_event.MockSender source *sourceStub spaceIdResolver *mock_idresolver.MockResolver + space *MockSpace *smartBlock } @@ -199,6 +200,8 @@ func newFixture(id string, t *testing.T) *fixture { spaceIdResolver := mock_idresolver.NewMockResolver(t) + space := NewMockSpace(t) + indexer := NewMockIndexer(t) restrictionService := mock_restriction.NewMockService(t) @@ -206,7 +209,7 @@ func newFixture(id string, t *testing.T) *fixture { sender := mock_event.NewMockSender(t) - sb := New(nil, "", nil, restrictionService, spaceIndex, objectStore, indexer, sender, spaceIdResolver).(*smartBlock) + sb := New(space, "", nil, restrictionService, spaceIndex, objectStore, indexer, sender, spaceIdResolver).(*smartBlock) source := &sourceStub{ id: id, spaceId: "space1", @@ -223,6 +226,7 @@ func newFixture(id string, t *testing.T) *fixture { eventSender: sender, spaceIdResolver: spaceIdResolver, objectStore: objectStore, + space: space, } } From b7c5cf6a7054b84b828cdfb4fd96a2fd0f959b71 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 17:22:38 +0300 Subject: [PATCH 046/176] GO-4677 List conficting rels RPC --- clientlibrary/service/service.pb.go | 707 +++--- core/block/detailservice/relations.go | 63 + core/block/detailservice/relations_test.go | 57 + core/block/detailservice/service.go | 1 + core/relations.go | 15 + docs/proto.md | 78 + pb/commands.pb.go | 2314 +++++++++++++------- pb/protos/commands.proto | 24 + pb/protos/service/service.proto | 1 + pb/service/service.pb.go | 706 +++--- 10 files changed, 2554 insertions(+), 1412 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 54fac1614..d3effb61f 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,341 +25,343 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5340 bytes of a gzipped FileDescriptorProto + // 5370 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, - 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, - 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, - 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, - 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, - 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, - 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, - 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, - 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, - 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, - 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, - 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, - 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, - 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, - 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, - 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, - 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, - 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, - 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, - 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, - 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, - 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, - 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, - 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, - 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, - 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, - 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, - 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, - 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, - 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, - 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, - 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, - 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, - 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, - 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, - 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, - 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, - 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, - 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, - 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, - 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, - 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, - 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, - 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, - 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, - 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, - 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, - 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, - 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, - 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, - 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, - 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, - 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, - 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, - 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, - 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, - 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, - 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, - 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, - 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, - 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, - 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, - 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, - 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, - 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, - 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, - 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, - 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, - 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, - 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, - 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, - 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, - 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, - 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, - 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, - 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, - 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, - 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, - 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, - 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, - 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, - 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, - 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, - 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, - 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, - 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, - 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, - 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, - 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, - 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, - 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, - 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, - 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, - 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, - 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, - 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, - 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, - 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, - 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, - 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, - 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, - 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, - 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, - 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, - 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, - 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, - 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, - 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, - 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, - 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, - 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, - 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, - 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, - 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, - 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, - 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, - 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, - 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, - 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, - 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, - 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, - 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, - 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, - 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, - 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, - 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, - 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, - 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, - 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, - 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, - 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, - 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, - 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, - 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, - 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, - 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, - 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, - 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, - 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, - 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, - 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, - 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, - 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, - 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, - 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, - 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, - 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, - 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, - 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, - 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, - 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, - 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, - 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, - 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, - 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, - 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, - 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, - 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, - 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, - 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, - 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, - 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, - 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, - 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, - 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, - 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, - 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, - 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, - 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, - 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, - 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, - 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, - 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, - 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, - 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, - 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, - 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, - 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, - 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, - 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, - 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, - 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, - 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, - 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, - 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, - 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, - 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, - 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, - 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, - 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, - 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, - 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, - 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, - 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, - 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, - 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, - 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, - 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, - 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, - 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, - 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, - 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, - 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, - 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, - 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, - 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, - 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, - 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, - 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, - 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, - 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, - 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, - 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, - 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, - 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, - 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, - 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, - 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, - 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, - 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, - 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, - 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, - 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, - 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, - 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, - 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, - 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, - 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, - 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, - 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, - 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, - 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, - 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, - 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, - 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, - 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, - 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, - 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, - 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, - 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, - 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, - 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, - 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, - 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, - 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, - 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, - 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, - 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, - 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, - 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, - 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, - 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, - 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, - 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, - 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, - 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, - 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, - 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, - 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, - 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, - 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, - 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, - 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, - 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, - 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, - 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, - 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, - 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, - 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, - 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, - 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, - 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, - 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, - 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, - 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, - 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, - 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, - 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, - 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, - 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, - 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, - 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, - 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, - 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, - 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, - 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, - 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, - 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, - 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, - 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, - 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, - 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, - 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, - 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, - 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, - 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, - 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, - 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, - 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, - 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, - 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, - 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, - 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, - 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, - 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, - 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, - 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, - 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, - 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, - 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, - 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, - 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, - 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, - 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, - 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, - 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, - 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, - 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, - 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, - 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, - 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, - 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, - 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, - 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, - 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, - 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, - 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, - 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, + 0x56, 0xc0, 0xa7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, + 0x24, 0x4e, 0xe2, 0xb8, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xc4, 0x63, 0xd6, 0xf6, + 0x18, 0x77, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0x52, 0x75, 0xdd, 0x2e, 0x5c, 0x5d, 0xb7, 0xb6, 0xea, + 0x76, 0x27, 0xbd, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0x7c, 0x09, 0x9e, 0x90, 0xf8, 0x0b, + 0xf8, 0x33, 0x78, 0x63, 0x1f, 0x79, 0x44, 0x33, 0xcf, 0xfc, 0x0f, 0xa8, 0x6e, 0xdd, 0xcf, 0x53, + 0xe7, 0xdc, 0x2a, 0xcf, 0x3e, 0x25, 0xf2, 0xf9, 0x9d, 0x73, 0xee, 0xe7, 0xb9, 0xe7, 0xde, 0xba, + 0x55, 0x1d, 0x5d, 0x2f, 0x5f, 0x6e, 0x97, 0x15, 0x17, 0xbc, 0xde, 0xae, 0x59, 0xb5, 0xca, 0x12, + 0xa6, 0xff, 0x9d, 0xc8, 0x3f, 0x8f, 0xdf, 0x8c, 0x8b, 0xb5, 0x58, 0x97, 0xec, 0xbd, 0x77, 0x2d, + 0x99, 0xf0, 0xc5, 0x22, 0x2e, 0xd2, 0xba, 0x45, 0xde, 0x7b, 0xc7, 0x4a, 0xd8, 0x8a, 0x15, 0x42, + 0xfd, 0xfd, 0xd1, 0x7f, 0xff, 0xdf, 0x28, 0x7a, 0x6b, 0x37, 0xcf, 0x58, 0x21, 0x76, 0x95, 0xc6, + 0xf8, 0xcb, 0xe8, 0xdb, 0x3b, 0x65, 0xb9, 0xcf, 0xc4, 0x73, 0x56, 0xd5, 0x19, 0x2f, 0xc6, 0x1f, + 0x4c, 0x94, 0x83, 0xc9, 0x69, 0x99, 0x4c, 0x76, 0xca, 0x72, 0x62, 0x85, 0x93, 0x53, 0xf6, 0xa3, + 0x25, 0xab, 0xc5, 0x7b, 0xb7, 0xc2, 0x50, 0x5d, 0xf2, 0xa2, 0x66, 0xe3, 0xf3, 0xe8, 0x57, 0x76, + 0xca, 0x72, 0xca, 0xc4, 0x1e, 0x6b, 0x2a, 0x30, 0x15, 0xb1, 0x60, 0xe3, 0x8d, 0x8e, 0xaa, 0x0f, + 0x18, 0x1f, 0x77, 0xfb, 0x41, 0xe5, 0x67, 0x16, 0x7d, 0xab, 0xf1, 0x73, 0xb1, 0x14, 0x29, 0x7f, + 0x55, 0x8c, 0xdf, 0xef, 0x2a, 0x2a, 0x91, 0xb1, 0x7d, 0x33, 0x84, 0x28, 0xab, 0x2f, 0xa2, 0x5f, + 0x7c, 0x11, 0xe7, 0x39, 0x13, 0xbb, 0x15, 0x6b, 0x0a, 0xee, 0xeb, 0xb4, 0xa2, 0x49, 0x2b, 0x33, + 0x76, 0x3f, 0x08, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0xb7, 0x5b, 0xc9, 0x29, 0x4b, 0xf8, 0x8a, 0x55, + 0x63, 0x54, 0x4b, 0x09, 0x89, 0x26, 0xef, 0x40, 0xd0, 0xf6, 0x2e, 0x2f, 0x56, 0xac, 0x12, 0xb8, + 0x6d, 0x25, 0x0c, 0xdb, 0xb6, 0x90, 0xb2, 0xfd, 0xd7, 0xa3, 0xe8, 0xbb, 0x3b, 0x49, 0xc2, 0x97, + 0x85, 0x38, 0xe4, 0x49, 0x9c, 0x1f, 0x66, 0xc5, 0xe5, 0x31, 0x7b, 0xb5, 0x7b, 0xd1, 0xf0, 0xc5, + 0x9c, 0x8d, 0x1f, 0xfb, 0xad, 0xda, 0xa2, 0x13, 0xc3, 0x4e, 0x5c, 0xd8, 0xf8, 0xfe, 0xe8, 0x6a, + 0x4a, 0xaa, 0x2c, 0x7f, 0x3f, 0x8a, 0xae, 0xc1, 0xb2, 0x4c, 0x79, 0xbe, 0x62, 0xb6, 0x34, 0x1f, + 0xf7, 0x18, 0xf6, 0x71, 0x53, 0x9e, 0x4f, 0xae, 0xaa, 0xa6, 0x4a, 0x94, 0x47, 0x6f, 0xbb, 0xc3, + 0x65, 0xca, 0x6a, 0x39, 0x9d, 0xee, 0xd1, 0x23, 0x42, 0x21, 0xc6, 0xf3, 0xfd, 0x21, 0xa8, 0xf2, + 0x96, 0x45, 0x63, 0xe5, 0x2d, 0xe7, 0xb5, 0x71, 0x76, 0x17, 0xb5, 0xe0, 0x10, 0xc6, 0xd7, 0xbd, + 0x01, 0xa4, 0x72, 0xf5, 0x07, 0xd1, 0x2f, 0xbd, 0xe0, 0xd5, 0x65, 0x5d, 0xc6, 0x09, 0x53, 0x53, + 0xe1, 0xb6, 0xaf, 0xad, 0xa5, 0x70, 0x36, 0xdc, 0xe9, 0xc3, 0x9c, 0x41, 0xab, 0x85, 0x5f, 0x94, + 0x0c, 0xc6, 0x20, 0xab, 0xd8, 0x08, 0xa9, 0x41, 0x0b, 0x21, 0x65, 0xfb, 0x32, 0x1a, 0x5b, 0xdb, + 0x2f, 0xff, 0x90, 0x25, 0x62, 0x27, 0x4d, 0x61, 0xaf, 0x58, 0x5d, 0x49, 0x4c, 0x76, 0xd2, 0x94, + 0xea, 0x15, 0x1c, 0x55, 0xce, 0x5e, 0x45, 0xef, 0x00, 0x67, 0x87, 0x59, 0x2d, 0x1d, 0x6e, 0x85, + 0xad, 0x28, 0xcc, 0x38, 0x9d, 0x0c, 0xc5, 0x95, 0xe3, 0x3f, 0x1d, 0x45, 0xdf, 0x41, 0x3c, 0x9f, + 0xb2, 0x05, 0x5f, 0xb1, 0xf1, 0xc3, 0x7e, 0x6b, 0x2d, 0x69, 0xfc, 0x7f, 0x78, 0x05, 0x0d, 0x64, + 0x98, 0x4c, 0x59, 0xce, 0x12, 0x41, 0x0e, 0x93, 0x56, 0xdc, 0x3b, 0x4c, 0x0c, 0xe6, 0xcc, 0x30, + 0x2d, 0xdc, 0x67, 0x62, 0x77, 0x59, 0x55, 0xac, 0x10, 0x64, 0x5f, 0x5a, 0xa4, 0xb7, 0x2f, 0x3d, + 0x14, 0xa9, 0xcf, 0x3e, 0x13, 0x3b, 0x79, 0x4e, 0xd6, 0xa7, 0x15, 0xf7, 0xd6, 0xc7, 0x60, 0xca, + 0x43, 0x12, 0xfd, 0xb2, 0xd3, 0x62, 0xe2, 0xa0, 0x38, 0xe7, 0x63, 0xba, 0x2d, 0xa4, 0xdc, 0xf8, + 0xd8, 0xe8, 0xe5, 0x90, 0x6a, 0x3c, 0x7d, 0x5d, 0xf2, 0x8a, 0xee, 0x96, 0x56, 0xdc, 0x5b, 0x0d, + 0x83, 0x29, 0x0f, 0xbf, 0x1f, 0xbd, 0xa5, 0xa2, 0xa4, 0x5e, 0xcf, 0x6e, 0xa1, 0x21, 0x14, 0x2e, + 0x68, 0xb7, 0x7b, 0x28, 0x1b, 0x1c, 0x94, 0x4c, 0x05, 0x9f, 0x0f, 0x50, 0x3d, 0x10, 0x7a, 0x6e, + 0x85, 0xa1, 0x8e, 0xed, 0x3d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, 0x65, 0xbb, + 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x13, 0xa4, 0x37, 0x89, 0x7a, 0xbb, 0x90, + 0xf1, 0xf5, 0x60, 0x18, 0xdc, 0xa9, 0x8f, 0x9a, 0x81, 0x78, 0x7d, 0xc0, 0xfc, 0xbb, 0x15, 0x86, + 0x94, 0xed, 0xbf, 0x19, 0x45, 0xdf, 0x53, 0xb2, 0xa7, 0x45, 0xfc, 0x32, 0x67, 0x72, 0x49, 0x3c, + 0x66, 0xe2, 0x15, 0xaf, 0x2e, 0xa7, 0xeb, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, 0xfe, 0x49, + 0x25, 0x27, 0xe3, 0x53, 0x15, 0x15, 0xbc, 0x84, 0x19, 0x9f, 0xae, 0x81, 0xe0, 0x25, 0x95, 0xf1, + 0xf9, 0x48, 0xc7, 0xea, 0x51, 0x13, 0x36, 0x71, 0xab, 0x47, 0x6e, 0x9c, 0xbc, 0x19, 0x42, 0x6c, + 0xd8, 0xd2, 0x03, 0x98, 0x17, 0xe7, 0xd9, 0xfc, 0xac, 0x4c, 0x9b, 0x61, 0x7c, 0x0f, 0x1f, 0xa1, + 0x0e, 0x42, 0x84, 0x2d, 0x02, 0x55, 0xde, 0xfe, 0xce, 0x26, 0x46, 0x6a, 0x2a, 0x3d, 0xab, 0xf8, + 0xe2, 0x90, 0xcd, 0xe3, 0x64, 0xad, 0xe6, 0xff, 0x47, 0xa1, 0x89, 0x07, 0x69, 0x53, 0x88, 0x8f, + 0xaf, 0xa8, 0xa5, 0xca, 0xf3, 0xef, 0xa3, 0xe8, 0x96, 0xae, 0xfe, 0x45, 0x5c, 0xcc, 0x99, 0xea, + 0xcf, 0xb6, 0xf4, 0x3b, 0x45, 0x7a, 0xca, 0x6a, 0x11, 0x57, 0x62, 0xfc, 0x7d, 0xbc, 0x92, 0x21, + 0x1d, 0x53, 0xb6, 0x1f, 0x7c, 0x23, 0x5d, 0xdb, 0xeb, 0xd3, 0x26, 0xb0, 0xa9, 0x10, 0xe0, 0xf7, + 0xba, 0x94, 0xc0, 0x00, 0x70, 0x33, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0x83, 0x62, 0x95, 0x09, 0xb6, + 0xcf, 0x0a, 0x56, 0x75, 0x7b, 0xbd, 0x55, 0xf5, 0x11, 0xa2, 0xd7, 0x09, 0xd4, 0x06, 0x1b, 0xcf, + 0x9b, 0x59, 0x1c, 0x37, 0x03, 0x46, 0x3a, 0xcb, 0xe3, 0x83, 0x61, 0xb0, 0xdd, 0xdd, 0x39, 0x3e, + 0x4f, 0xd9, 0x8a, 0x5f, 0xc2, 0xdd, 0x9d, 0x6b, 0xa2, 0x05, 0x88, 0xdd, 0x1d, 0x0a, 0xda, 0x15, + 0xcc, 0xf1, 0xf3, 0x3c, 0x63, 0xaf, 0xc0, 0x0a, 0xe6, 0x2a, 0x37, 0x62, 0x62, 0x05, 0x43, 0x30, + 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0x15, 0xe3, 0xeb, 0x88, 0x52, 0x23, 0x30, + 0x56, 0x6f, 0xd0, 0x00, 0x28, 0x71, 0xf3, 0xd7, 0xdd, 0xb8, 0x48, 0x58, 0x8e, 0x96, 0xd8, 0x8a, + 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x13, 0xbf, 0xa6, 0x17, 0x71, 0x95, 0x15, 0xf3, + 0x31, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0x3b, 0x65, 0x59, 0x35, + 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc7, 0x92, 0x3c, 0x2b, + 0x82, 0xde, 0x14, 0x32, 0xc4, 0x9b, 0x45, 0xc1, 0xe0, 0x3d, 0x64, 0xf1, 0x8a, 0xe9, 0x9a, 0x61, + 0x2d, 0xe3, 0x02, 0xc1, 0xc1, 0x0b, 0x40, 0xbb, 0x4f, 0x93, 0xe2, 0xa3, 0xf8, 0x92, 0x35, 0x0d, + 0xcc, 0x9a, 0x75, 0x6d, 0x8c, 0xe9, 0x7b, 0x04, 0xb1, 0x4f, 0xc3, 0x49, 0xe5, 0x6a, 0x19, 0xbd, + 0x23, 0xe5, 0x27, 0x71, 0x25, 0xb2, 0x24, 0x2b, 0xe3, 0x42, 0xe7, 0xff, 0xd8, 0xbc, 0xee, 0x50, + 0xc6, 0xe5, 0xd6, 0x40, 0x5a, 0xb9, 0xfd, 0x97, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc2, 0xaa, 0x45, + 0x26, 0xb7, 0x91, 0x75, 0x1b, 0x84, 0xc7, 0x9f, 0x86, 0x8d, 0x76, 0x14, 0x4c, 0x69, 0x3e, 0xbb, + 0xba, 0xa2, 0x4d, 0x86, 0xa6, 0x2a, 0xb5, 0xfe, 0xa2, 0x4a, 0x3b, 0xc7, 0x2c, 0x53, 0x9d, 0x2f, + 0x4b, 0x21, 0x91, 0x0c, 0x75, 0x20, 0x30, 0xc3, 0xcf, 0x8a, 0x5a, 0x5b, 0xc7, 0x66, 0xb8, 0x15, + 0x07, 0x67, 0xb8, 0x87, 0x29, 0x0f, 0xbf, 0x17, 0x45, 0xed, 0x66, 0x4b, 0x6e, 0x88, 0xfd, 0x98, + 0xa3, 0x76, 0x61, 0xde, 0x6e, 0xf8, 0xfd, 0x00, 0x61, 0x17, 0xba, 0xf6, 0xef, 0x72, 0x9f, 0x3f, + 0x46, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbd, 0xe0, 0xaf, 0xf0, 0x82, 0x36, + 0x92, 0x70, 0x41, 0x15, 0x61, 0x4f, 0xde, 0x54, 0x41, 0xb1, 0x93, 0x37, 0x5d, 0x8c, 0xd0, 0xc9, + 0x1b, 0x64, 0x94, 0x61, 0x1e, 0xfd, 0xaa, 0x6b, 0xf8, 0x09, 0xe7, 0x97, 0x8b, 0xb8, 0xba, 0x1c, + 0xdf, 0xa7, 0x95, 0x35, 0x63, 0x1c, 0x6d, 0x0e, 0x62, 0x6d, 0x50, 0x73, 0x1d, 0x36, 0x69, 0xd2, + 0x59, 0x95, 0x83, 0xa0, 0xe6, 0xd9, 0x50, 0x08, 0x11, 0xd4, 0x08, 0xd4, 0x8e, 0x4a, 0xd7, 0xdb, + 0x94, 0xc1, 0xbd, 0x9e, 0xa7, 0x3e, 0x65, 0xd4, 0x5e, 0x0f, 0xc1, 0xe0, 0x10, 0xda, 0xaf, 0xe2, + 0xf2, 0x02, 0x1f, 0x42, 0x52, 0x14, 0x1e, 0x42, 0x1a, 0x81, 0xfd, 0x3d, 0x65, 0x71, 0x95, 0x5c, + 0xe0, 0xfd, 0xdd, 0xca, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0xad, 0xe0, 0x45, 0x26, 0x2e, 0x8e, + 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0x77, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xa7, 0xcb, + 0x97, 0x75, 0x52, 0x65, 0x2f, 0xd9, 0x38, 0x60, 0xc5, 0x40, 0x44, 0x1e, 0x46, 0xc2, 0xca, 0xe7, + 0x4f, 0x46, 0xd1, 0x75, 0xdd, 0xed, 0xbc, 0xae, 0x55, 0xcc, 0xf3, 0xdd, 0x7f, 0x8c, 0xf7, 0x2f, + 0x81, 0x13, 0x67, 0xa1, 0x03, 0xd4, 0x9c, 0x35, 0x01, 0x2f, 0xd2, 0x59, 0x51, 0x9b, 0x42, 0x7d, + 0x3a, 0xc4, 0xba, 0xa3, 0x40, 0xac, 0x09, 0x83, 0x14, 0xed, 0x72, 0xac, 0xfa, 0x47, 0xcb, 0x0e, + 0xd2, 0x1a, 0x2c, 0xc7, 0xba, 0xbd, 0x1d, 0x82, 0x58, 0x8e, 0x71, 0x12, 0x0e, 0x85, 0xfd, 0x8a, + 0x2f, 0xcb, 0xba, 0x67, 0x28, 0x00, 0x28, 0x3c, 0x14, 0xba, 0xb0, 0xf2, 0xf9, 0x3a, 0xfa, 0x75, + 0x77, 0xf8, 0xb9, 0x8d, 0xbd, 0x45, 0x8f, 0x29, 0xac, 0x89, 0x27, 0x43, 0x71, 0x9b, 0x90, 0x6a, + 0xcf, 0x62, 0x8f, 0x89, 0x38, 0xcb, 0xeb, 0xf1, 0x1d, 0xdc, 0x86, 0x96, 0x13, 0x09, 0x29, 0xc6, + 0xc1, 0xf8, 0xb6, 0xb7, 0x2c, 0xf3, 0x2c, 0xe9, 0x9e, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, + 0x17, 0x83, 0xf1, 0xba, 0x59, 0xf2, 0xe5, 0x7f, 0x66, 0xeb, 0x92, 0xe1, 0xf1, 0xda, 0x43, 0xc2, + 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x53, 0x26, 0x0e, 0xe3, 0x35, 0x5f, 0x12, 0xf1, 0xda, 0x88, 0xc3, + 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0x85, 0x60, 0x55, 0x11, 0xe7, 0xcf, 0xf2, 0x78, + 0x5e, 0x8f, 0x89, 0x18, 0xe3, 0x53, 0x44, 0x4e, 0x48, 0xd3, 0x48, 0x33, 0x1e, 0xd4, 0xcf, 0xe2, + 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0x3b, 0x55, 0x72, + 0x91, 0xad, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x29, 0x5f, 0x56, + 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x45, 0xbf, 0xd1, + 0x4a, 0xdd, 0xe3, 0xe1, 0xbd, 0xb8, 0xbe, 0x78, 0xc9, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, + 0x51, 0xe3, 0xfa, 0xd1, 0x55, 0x54, 0x60, 0xb3, 0x1e, 0x66, 0xb5, 0x33, 0xe3, 0xd0, 0x66, 0xf5, + 0x90, 0x70, 0xb3, 0x42, 0x14, 0x06, 0x10, 0x29, 0x6f, 0x8f, 0x62, 0xee, 0x90, 0xfa, 0xfe, 0x79, + 0xcc, 0x46, 0x2f, 0x07, 0xe3, 0x63, 0x23, 0xf4, 0x47, 0xcb, 0x16, 0x65, 0x03, 0x1f, 0x31, 0x93, + 0xa1, 0x38, 0xe9, 0xd9, 0xcc, 0x8a, 0xb0, 0xe7, 0xce, 0xcc, 0x98, 0x0c, 0xc5, 0x09, 0xcf, 0x4e, + 0x58, 0x0b, 0x79, 0x46, 0x42, 0xdb, 0x64, 0x28, 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x7e, + 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x07, 0xb1, 0xca, 0xe1, 0x5f, 0x8d, 0xa2, 0xef, 0x5a, 0x8f, 0x47, + 0x3c, 0xcd, 0xce, 0xd7, 0x2d, 0xf4, 0x3c, 0xce, 0x97, 0xac, 0x1e, 0x3f, 0xa2, 0xac, 0x75, 0x59, + 0x53, 0x82, 0xc7, 0x57, 0xd2, 0x81, 0x73, 0x67, 0xa7, 0x2c, 0xf3, 0xf5, 0x8c, 0x2d, 0xca, 0x9c, + 0x9c, 0x3b, 0x1e, 0x12, 0x9e, 0x3b, 0x10, 0x85, 0x59, 0xf9, 0x8c, 0x37, 0x39, 0x3f, 0x9a, 0x95, + 0x4b, 0x51, 0x38, 0x2b, 0xd7, 0x08, 0xcc, 0x95, 0x66, 0x7c, 0x97, 0xe7, 0x39, 0x4b, 0x44, 0xf7, + 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x62, + 0x4f, 0xd6, 0x87, 0x59, 0x71, 0x39, 0xc6, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, + 0xaa, 0x67, 0x45, 0xca, 0xf1, 0xbd, 0x6a, 0x23, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, + 0xca, 0x64, 0x23, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, + 0xfd, 0x46, 0x2f, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0x3e, 0x63, 0x22, 0xb9, 0xc0, 0x47, 0xa8, 0x87, + 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x66, 0xdc, 0x6c, 0xba, 0xef, 0xe0, 0xe3, 0xa3, 0xb3, 0xe1, + 0xde, 0xe8, 0xe5, 0xe0, 0x36, 0xf2, 0x60, 0x21, 0xdb, 0x0c, 0x1d, 0xe4, 0xad, 0x2c, 0xbc, 0x8d, + 0x34, 0x0c, 0x2c, 0x7d, 0x2b, 0x68, 0x9a, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, + 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x2b, 0x3d, 0xe6, 0xcd, 0x1c, 0x79, 0x1e, 0xe7, 0x59, 0x1a, 0x0b, + 0x36, 0xe3, 0x97, 0xac, 0xc0, 0x77, 0x4c, 0xaa, 0xb4, 0x2d, 0x3f, 0xf1, 0x14, 0xc2, 0x3b, 0xa6, + 0xb0, 0x22, 0x1c, 0x27, 0x2d, 0x7d, 0x56, 0xb3, 0xdd, 0xb8, 0x26, 0x22, 0x99, 0x87, 0x84, 0xc7, + 0x09, 0x44, 0x61, 0xbe, 0xda, 0xca, 0x9f, 0xbe, 0x2e, 0x59, 0x95, 0xb1, 0x22, 0x61, 0x78, 0xbe, + 0x0a, 0xa9, 0x70, 0xbe, 0x8a, 0xd0, 0x70, 0xaf, 0xb6, 0x17, 0x0b, 0xf6, 0x64, 0x3d, 0xcb, 0x16, + 0xac, 0x16, 0xf1, 0xa2, 0xc4, 0xf7, 0x6a, 0x00, 0x0a, 0xef, 0xd5, 0xba, 0x70, 0xe7, 0x68, 0xc8, + 0x04, 0xc4, 0xee, 0xcd, 0x14, 0x48, 0x04, 0x6e, 0xa6, 0x10, 0x28, 0x6c, 0x58, 0x0b, 0xa0, 0x87, + 0xc3, 0x1d, 0x2b, 0xc1, 0xc3, 0x61, 0x9a, 0xee, 0x1c, 0xb8, 0x19, 0x66, 0xda, 0x4c, 0xcd, 0x9e, + 0xa2, 0x4f, 0xdd, 0x29, 0xba, 0x39, 0x88, 0xc5, 0x4f, 0xf8, 0x4e, 0x59, 0x1e, 0xcb, 0x65, 0x2b, + 0x70, 0x8c, 0xa6, 0x99, 0x21, 0x27, 0x7c, 0x0e, 0xab, 0x1c, 0xfe, 0xd9, 0x28, 0x7a, 0x0f, 0xf3, + 0xf8, 0x45, 0x29, 0xfd, 0x3e, 0xec, 0xb7, 0xd5, 0x92, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, + 0x1f, 0x45, 0xef, 0x6a, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, + 0xee, 0xb7, 0x07, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, + 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x45, 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x66, 0xa7, + 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x66, 0x6e, 0x62, 0xb1, 0xdc, + 0x18, 0x72, 0x67, 0xe6, 0xdd, 0x7e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xfb, 0x21, 0x0b, + 0x60, 0xfb, 0xb3, 0x39, 0x88, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x58, 0x2c, + 0x96, 0x15, 0x4b, 0xc7, 0xdb, 0x3d, 0xe5, 0xd6, 0xa0, 0x71, 0xfd, 0x70, 0xb8, 0x42, 0x27, 0x47, + 0xd7, 0x5c, 0x3b, 0xac, 0x4c, 0x19, 0x1e, 0x85, 0x4c, 0xfa, 0x6c, 0x30, 0x47, 0xa7, 0x75, 0x3a, + 0xdb, 0x6c, 0x77, 0x74, 0xed, 0xac, 0xe2, 0x2c, 0x97, 0x0f, 0xe9, 0x3e, 0x0c, 0x19, 0xf5, 0xd0, + 0xe0, 0x36, 0x9b, 0x54, 0xe9, 0x44, 0x66, 0x39, 0xc7, 0x9d, 0xed, 0xd9, 0x03, 0x3a, 0x12, 0x20, + 0xbb, 0xb3, 0xad, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, 0xd7, 0xfc, 0xd9, 0x1d, 0xe4, 0x98, 0x57, + 0xa5, 0x8a, 0x8c, 0xf4, 0xad, 0x81, 0xb4, 0xf2, 0xfa, 0xc7, 0xd1, 0xbb, 0x5d, 0xaf, 0x6a, 0x21, + 0xda, 0xee, 0x35, 0x05, 0xd6, 0xa2, 0x87, 0xc3, 0x15, 0x94, 0xfb, 0x7f, 0x35, 0xe7, 0xd2, 0xad, + 0xff, 0x84, 0x2f, 0x16, 0xac, 0x48, 0x59, 0xaa, 0x35, 0xea, 0x66, 0xff, 0xf4, 0x19, 0x6d, 0xd7, + 0x28, 0x4c, 0x5c, 0x0d, 0x53, 0xa2, 0xdf, 0xfc, 0x06, 0x9a, 0xaa, 0x68, 0xff, 0x39, 0x8a, 0xee, + 0xa1, 0x45, 0xd3, 0x03, 0xd7, 0x2b, 0xe2, 0xef, 0x0c, 0x71, 0x84, 0x69, 0x9a, 0xa2, 0xee, 0xfc, + 0x0c, 0x16, 0x54, 0x91, 0xff, 0x6d, 0x14, 0xdd, 0xb4, 0x8a, 0xcd, 0xf0, 0xde, 0xe5, 0xc5, 0x79, + 0x9e, 0x25, 0x22, 0x2b, 0xe6, 0x46, 0x85, 0x6e, 0x4e, 0x4a, 0xa3, 0xbf, 0x39, 0x03, 0x9a, 0x76, + 0xf3, 0xfa, 0x79, 0x56, 0x0b, 0x5e, 0xad, 0xa7, 0x17, 0xfc, 0x95, 0x7e, 0xb7, 0xc1, 0x8f, 0xcb, + 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, 0x2b, 0xfb, 0x0e, 0x44, 0x4d, 0xb8, 0x72, + 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, 0xfb, 0xc2, 0xc6, 0x06, 0x5e, 0xd4, 0xee, + 0x4b, 0x1b, 0x77, 0xfb, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, 0x5e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, + 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, 0x59, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, + 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, + 0x6f, 0x03, 0x34, 0xd2, 0x66, 0x74, 0x17, 0x49, 0x96, 0xc3, 0xab, 0x9e, 0x52, 0xd3, 0x08, 0x89, + 0xdb, 0x00, 0x1d, 0xc8, 0xa6, 0x40, 0x8d, 0xa8, 0x19, 0x95, 0xba, 0xfc, 0xb7, 0xbb, 0x8a, 0x8e, + 0x98, 0x48, 0x81, 0x10, 0xcc, 0x9e, 0x32, 0x34, 0xc2, 0xb3, 0x52, 0x1a, 0xbf, 0xd1, 0xd5, 0x6a, + 0x25, 0xc4, 0x29, 0x83, 0x4f, 0xd8, 0xdd, 0x72, 0xf3, 0xf7, 0x3d, 0xfe, 0xaa, 0x90, 0x46, 0x6f, + 0x76, 0x55, 0xb4, 0x8c, 0xd8, 0x2d, 0x43, 0x46, 0x19, 0xfe, 0x61, 0xf4, 0xf3, 0xd2, 0x70, 0xc5, + 0xcb, 0xf1, 0x35, 0x44, 0xa1, 0x72, 0x6e, 0x65, 0x5e, 0x27, 0xe5, 0xf6, 0x72, 0xb1, 0x19, 0x1b, + 0x67, 0x75, 0x3c, 0x67, 0xe3, 0x5b, 0x44, 0x8f, 0x4b, 0x29, 0x71, 0xb9, 0xb8, 0x4b, 0xf9, 0xa3, + 0xe2, 0x98, 0xa7, 0xca, 0x3a, 0x52, 0x43, 0x23, 0x0c, 0x8d, 0x0a, 0x17, 0xb2, 0x69, 0xeb, 0x71, + 0xbc, 0xca, 0xe6, 0x26, 0xb5, 0x68, 0x03, 0x58, 0x0d, 0xd2, 0x56, 0xcb, 0x4c, 0x1c, 0x88, 0x48, + 0x5b, 0x49, 0x58, 0xf9, 0xfc, 0xc7, 0x51, 0x74, 0xc3, 0x32, 0xfb, 0xfa, 0x5c, 0xf6, 0xa0, 0x38, + 0xe7, 0x4d, 0x92, 0x7b, 0x98, 0x15, 0x97, 0xf5, 0xf8, 0x13, 0xca, 0x24, 0xce, 0x9b, 0xa2, 0x7c, + 0x7a, 0x65, 0x3d, 0xbb, 0x3f, 0xd1, 0x87, 0x96, 0xf6, 0xe6, 0x42, 0xab, 0x01, 0xf6, 0x27, 0xe6, + 0x6c, 0x13, 0x72, 0xc4, 0xfe, 0x24, 0xc4, 0xdb, 0x2e, 0x36, 0xce, 0x73, 0x5e, 0xc0, 0x2e, 0xb6, + 0x16, 0x1a, 0x21, 0xd1, 0xc5, 0x1d, 0xc8, 0xc6, 0x63, 0x2d, 0x6a, 0xcf, 0xd7, 0x76, 0xf2, 0x1c, + 0xc4, 0x63, 0xa3, 0x6a, 0x00, 0x22, 0x1e, 0xa3, 0xa0, 0xf2, 0x73, 0x1a, 0x7d, 0xab, 0x69, 0xd2, + 0x93, 0x8a, 0xad, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, 0x62, 0xfe, 0xfb, 0x84, 0x9d, 0x59, 0x67, + 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x76, + 0x0f, 0x65, 0x83, 0xba, 0x96, 0x99, 0x10, 0x73, 0x07, 0x57, 0xed, 0x84, 0x99, 0x8d, 0x5e, 0xce, + 0x3e, 0xdb, 0xd8, 0x8f, 0xf3, 0x9c, 0x55, 0x6b, 0x2d, 0x3b, 0x8a, 0x8b, 0xec, 0x9c, 0xd5, 0x02, + 0x3c, 0xdb, 0x50, 0xd4, 0x04, 0x62, 0xc4, 0xb3, 0x8d, 0x00, 0x6e, 0xf7, 0x6d, 0xc0, 0xf3, 0x41, + 0x91, 0xb2, 0xd7, 0x60, 0xdf, 0x06, 0xed, 0x48, 0x86, 0xd8, 0xb7, 0x51, 0xac, 0x3d, 0xe3, 0x7f, + 0x92, 0xf3, 0xe4, 0x52, 0x2d, 0x01, 0x7e, 0x07, 0x4b, 0x09, 0x5c, 0x03, 0x6e, 0x86, 0x10, 0xbb, + 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xf3, 0x38, 0x81, 0x37, 0xad, 0x5a, 0x1d, 0x25, 0x23, 0x16, 0x01, + 0xc8, 0x80, 0xe2, 0xaa, 0x1b, 0x5c, 0x58, 0x71, 0xc1, 0x05, 0xae, 0x9b, 0x21, 0xc4, 0x2e, 0x83, + 0x52, 0x30, 0x2d, 0xf3, 0x4c, 0x80, 0x69, 0xd0, 0x6a, 0x48, 0x09, 0x31, 0x0d, 0x7c, 0x02, 0x98, + 0x3c, 0x62, 0xd5, 0x9c, 0xa1, 0x26, 0xa5, 0x24, 0x68, 0x52, 0x13, 0xf6, 0x3a, 0x71, 0x5b, 0x77, + 0x5e, 0xae, 0xc1, 0x75, 0x62, 0x55, 0x2d, 0x5e, 0xae, 0x89, 0xeb, 0xc4, 0x1e, 0x00, 0x8a, 0x78, + 0x12, 0xd7, 0x02, 0x2f, 0xa2, 0x94, 0x04, 0x8b, 0xa8, 0x09, 0xbb, 0x46, 0xb7, 0x45, 0x5c, 0x0a, + 0xb0, 0x46, 0xab, 0x02, 0x38, 0x77, 0x0d, 0xae, 0x93, 0x72, 0x1b, 0x49, 0xda, 0x5e, 0x61, 0xe2, + 0x59, 0xc6, 0xf2, 0xb4, 0x06, 0x91, 0x44, 0xb5, 0xbb, 0x96, 0x12, 0x91, 0xa4, 0x4b, 0x81, 0xa1, + 0xa4, 0x9e, 0x84, 0x60, 0xb5, 0x03, 0x0f, 0x41, 0x6e, 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, + 0xe3, 0xaa, 0xca, 0x9a, 0xc5, 0xff, 0x0e, 0x5e, 0x20, 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, + 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x08, 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x61, + 0x39, 0xd6, 0x9a, 0xc8, 0xb3, 0xf2, 0x3b, 0x7d, 0x98, 0xf3, 0xba, 0x8f, 0x71, 0x71, 0xc4, 0x57, + 0x6c, 0xc6, 0x9f, 0xbe, 0xce, 0xea, 0x66, 0xbb, 0xa5, 0x56, 0xee, 0xc7, 0x84, 0x25, 0x0c, 0x26, + 0x5e, 0xf7, 0xe9, 0x55, 0xb2, 0x09, 0x04, 0x28, 0xcb, 0x31, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, + 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, 0xe3, 0x5c, 0xbd, 0x13, 0x3d, 0xe3, 0x3a, 0x97, + 0xa3, 0xac, 0x41, 0x90, 0x38, 0xb4, 0x08, 0x2a, 0xd8, 0xfd, 0xa5, 0xf1, 0x6f, 0xa7, 0xd8, 0x5d, + 0xc2, 0x4e, 0x77, 0x9a, 0xdd, 0x1b, 0x40, 0x22, 0xae, 0xec, 0x8d, 0x0f, 0xca, 0x55, 0xf7, 0xc2, + 0xc7, 0xbd, 0x01, 0xa4, 0x73, 0xfa, 0xe6, 0x56, 0xeb, 0x49, 0x9c, 0x5c, 0xce, 0x2b, 0xbe, 0x2c, + 0xd2, 0x5d, 0x9e, 0xf3, 0x0a, 0x9c, 0xbe, 0x79, 0xa5, 0x06, 0x28, 0x71, 0xfa, 0xd6, 0xa3, 0x62, + 0x33, 0x38, 0xb7, 0x14, 0x3b, 0x79, 0x36, 0x87, 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, + 0x05, 0x91, 0x41, 0xd4, 0xee, 0xb8, 0x45, 0x96, 0xc4, 0x79, 0xeb, 0x6f, 0x9b, 0x36, 0xe3, 0x81, + 0xbd, 0x83, 0x08, 0x51, 0x40, 0xea, 0x39, 0x5b, 0x56, 0xc5, 0x41, 0x21, 0x38, 0x59, 0x4f, 0x0d, + 0xf4, 0xd6, 0xd3, 0x01, 0x41, 0x58, 0x9d, 0xb1, 0xd7, 0x4d, 0x69, 0x9a, 0x7f, 0xb0, 0xb0, 0xda, + 0xfc, 0x7d, 0xa2, 0xe4, 0xa1, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xe5, 0xa4, 0x1d, 0x30, 0x01, 0x6d, + 0x7f, 0x98, 0xdc, 0xed, 0x07, 0x71, 0x3f, 0x53, 0xb1, 0xce, 0x59, 0xc8, 0x8f, 0x04, 0x86, 0xf8, + 0xd1, 0xa0, 0x3d, 0x6e, 0xf1, 0xea, 0x73, 0xc1, 0x92, 0xcb, 0xce, 0x05, 0x36, 0xbf, 0xa0, 0x2d, + 0x42, 0x1c, 0xb7, 0x10, 0x28, 0xde, 0x45, 0x07, 0x09, 0x2f, 0x42, 0x5d, 0xd4, 0xc8, 0x87, 0x74, + 0x91, 0xe2, 0xec, 0xe6, 0xd7, 0x48, 0xd5, 0xc8, 0x6c, 0xbb, 0x69, 0x93, 0xb0, 0xe0, 0x42, 0xc4, + 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, 0x75, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd1, 0xb7, + 0xfb, 0x29, 0x96, 0xae, 0x64, 0x3b, 0x46, 0x7a, 0xac, 0xf8, 0xe3, 0xe4, 0xc1, 0x30, 0xd8, 0x6e, + 0x79, 0x3c, 0x9f, 0xbb, 0x39, 0x8b, 0xab, 0xd6, 0xeb, 0x56, 0xc0, 0x90, 0xc5, 0x88, 0x2d, 0x4f, + 0x00, 0x07, 0x21, 0xcc, 0xf3, 0xbc, 0xcb, 0x0b, 0xc1, 0x0a, 0x81, 0x85, 0x30, 0xdf, 0x98, 0x02, + 0x43, 0x21, 0x8c, 0x52, 0x00, 0xe3, 0x56, 0x9e, 0x07, 0x31, 0x71, 0x1c, 0x2f, 0xd0, 0x8c, 0xad, + 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0x71, 0x0b, 0x38, 0xe7, 0x71, 0xae, 0xeb, 0x65, 0x16, 0x57, 0x73, + 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd2, 0x76, 0x7c, 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0x61, 0xe7, + 0x60, 0x11, 0xcf, 0x4d, 0x4d, 0x91, 0x1a, 0x48, 0x79, 0xa7, 0xaa, 0x77, 0xfb, 0x41, 0xe0, 0xe7, + 0x79, 0x96, 0x32, 0x1e, 0xf0, 0x23, 0xe5, 0x43, 0xfc, 0x40, 0x10, 0x64, 0x6f, 0x4d, 0xbd, 0xdb, + 0x1d, 0xdd, 0x4e, 0x91, 0xaa, 0x7d, 0xec, 0x84, 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, + 0x73, 0x54, 0x1f, 0xd0, 0x86, 0xe6, 0xa8, 0x39, 0x7f, 0x1d, 0x32, 0x47, 0x31, 0x58, 0xf9, 0xfc, + 0xb1, 0x9a, 0xa3, 0x7b, 0xb1, 0x88, 0x9b, 0xbc, 0xfd, 0x79, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, + 0x5f, 0x4d, 0x4d, 0xe4, 0x4b, 0xa9, 0x60, 0x57, 0xbc, 0x3d, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, + 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x3d, 0x98, 0x0f, 0xf8, 0x56, 0x6f, 0xbb, 0xf7, 0xfa, 0x06, 0xaf, + 0xbc, 0x6f, 0x0f, 0xe6, 0x95, 0xef, 0x3f, 0xd7, 0x13, 0xd7, 0x75, 0xde, 0xe4, 0x61, 0x89, 0xc8, + 0x56, 0x0c, 0x4b, 0x27, 0x7d, 0x7b, 0x06, 0x0d, 0xa5, 0x93, 0xb4, 0x8a, 0xf3, 0x89, 0x24, 0xac, + 0x14, 0x27, 0xbc, 0xce, 0xe4, 0x75, 0x8c, 0xc7, 0x03, 0x8c, 0x6a, 0x38, 0xb4, 0x69, 0x0a, 0x29, + 0xd9, 0x07, 0xcb, 0x1e, 0x6a, 0xef, 0xab, 0x3f, 0x08, 0xd8, 0xeb, 0x5e, 0x5b, 0xdf, 0x1a, 0x48, + 0xdb, 0x47, 0xbc, 0x1e, 0xe3, 0x3e, 0x5b, 0x0e, 0xf5, 0x2a, 0xfa, 0x78, 0xf9, 0xe1, 0x70, 0x05, + 0xe5, 0xfe, 0x2f, 0xf5, 0xbe, 0x02, 0xfa, 0x57, 0x93, 0xe0, 0xd1, 0x10, 0x8b, 0x60, 0x22, 0x3c, + 0xbe, 0x92, 0x8e, 0x2a, 0xc8, 0xdf, 0xea, 0x0d, 0xb4, 0x46, 0xe5, 0x5b, 0x3b, 0xf2, 0x2d, 0x4f, + 0x35, 0x27, 0x42, 0xdd, 0x6a, 0x61, 0x38, 0x33, 0x3e, 0xbe, 0xa2, 0x96, 0xf3, 0xc1, 0x2c, 0x0f, + 0x56, 0x6f, 0x97, 0x3a, 0xe5, 0x09, 0x59, 0x76, 0x68, 0x58, 0xa0, 0x4f, 0xae, 0xaa, 0x46, 0xcd, + 0x15, 0x07, 0x96, 0xdf, 0xdf, 0x78, 0x3c, 0xd0, 0xb0, 0xf7, 0x45, 0x8e, 0x8f, 0xae, 0xa6, 0xa4, + 0xca, 0xf2, 0x1f, 0xa3, 0xe8, 0xb6, 0xc7, 0xda, 0xe7, 0x09, 0xe0, 0xd4, 0xe3, 0x07, 0x01, 0xfb, + 0x94, 0x92, 0x29, 0xdc, 0x6f, 0x7d, 0x33, 0x65, 0xfb, 0x75, 0x29, 0x4f, 0xe5, 0x59, 0x96, 0x0b, + 0x56, 0x75, 0xbf, 0x2e, 0xe5, 0xdb, 0x6d, 0xa9, 0x09, 0xfd, 0x75, 0xa9, 0x00, 0xee, 0x7c, 0x5d, + 0x0a, 0xf1, 0x8c, 0x7e, 0x5d, 0x0a, 0xb5, 0x16, 0xfc, 0xba, 0x54, 0x58, 0x83, 0x0a, 0xef, 0xba, + 0x08, 0xed, 0xb9, 0xf5, 0x20, 0x8b, 0xfe, 0x31, 0xf6, 0xa3, 0xab, 0xa8, 0x10, 0x0b, 0x5c, 0xcb, + 0xc9, 0x1b, 0x8d, 0x03, 0xda, 0xd4, 0xbb, 0xd5, 0xb8, 0x3d, 0x98, 0x57, 0xbe, 0x7f, 0xa4, 0x76, + 0x37, 0x26, 0x9c, 0xf3, 0x4a, 0x7e, 0x59, 0x6c, 0x33, 0x14, 0x9e, 0x1b, 0x0b, 0x6e, 0xcf, 0x3f, + 0x18, 0x06, 0x13, 0xd5, 0x6d, 0x08, 0xd5, 0xe9, 0x93, 0x3e, 0x43, 0xa0, 0xcb, 0xb7, 0x07, 0xf3, + 0xc4, 0x32, 0xd2, 0xfa, 0x6e, 0x7b, 0x7b, 0x80, 0x31, 0xbf, 0xaf, 0x1f, 0x0e, 0x57, 0x50, 0xee, + 0x57, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xea, 0x33, 0x35, 0xf5, 0xba, 0x79, 0x32, 0x14, + 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x97, 0x40, 0xa0, 0xcb, 0xe8, 0x47, 0x57, 0x53, 0x52, 0x65, + 0xf9, 0x87, 0x51, 0x74, 0x9d, 0x2c, 0x8b, 0x1a, 0x07, 0x9f, 0x0c, 0xb5, 0x0c, 0xc6, 0xc3, 0xa7, + 0x57, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x51, 0x74, 0x23, 0x50, 0xa8, 0x76, 0x80, 0x5c, 0xc1, 0xba, + 0x3f, 0x50, 0x3e, 0xbb, 0xba, 0x22, 0xb5, 0xdc, 0xbb, 0xf8, 0xb4, 0xfb, 0xd9, 0xa5, 0x80, 0xed, + 0x29, 0xfd, 0xd9, 0xa5, 0x7e, 0x2d, 0x78, 0xc8, 0x13, 0xbf, 0xd4, 0x9b, 0x2e, 0xf4, 0x90, 0x47, + 0xde, 0x45, 0x04, 0x7b, 0x8e, 0x8d, 0x5e, 0x0e, 0x73, 0xf2, 0xf4, 0x75, 0x19, 0x17, 0x29, 0xed, + 0xa4, 0x95, 0xf7, 0x3b, 0x31, 0x1c, 0x3c, 0x1c, 0x6b, 0xa4, 0xa7, 0x5c, 0x6f, 0xa4, 0xee, 0x51, + 0xfa, 0x06, 0x09, 0x1e, 0x8e, 0x75, 0x50, 0xc2, 0x9b, 0xca, 0x1a, 0x43, 0xde, 0x40, 0xb2, 0x78, + 0x7f, 0x08, 0x0a, 0x52, 0x74, 0xe3, 0xcd, 0x9c, 0xb9, 0x3f, 0x08, 0x59, 0xe9, 0x9c, 0xbb, 0x6f, + 0x0d, 0xa4, 0x09, 0xb7, 0x53, 0x26, 0x3e, 0x67, 0x71, 0xca, 0xaa, 0xa0, 0x5b, 0x43, 0x0d, 0x72, + 0xeb, 0xd2, 0x98, 0xdb, 0x5d, 0x9e, 0x2f, 0x17, 0x85, 0xea, 0x4c, 0xd2, 0xad, 0x4b, 0xf5, 0xbb, + 0x05, 0x34, 0x3c, 0x16, 0xb4, 0x6e, 0x65, 0x7a, 0x79, 0x3f, 0x6c, 0xc6, 0xcb, 0x2a, 0x37, 0x07, + 0xb1, 0x74, 0x3d, 0xd5, 0x30, 0xea, 0xa9, 0x27, 0x18, 0x49, 0x5b, 0x03, 0x69, 0x78, 0x3e, 0xe7, + 0xb8, 0x35, 0xe3, 0x69, 0xbb, 0xc7, 0x56, 0x67, 0x48, 0x3d, 0x1c, 0xae, 0x00, 0x4f, 0x43, 0xd5, + 0xa8, 0x3a, 0xcc, 0x6a, 0xf1, 0x2c, 0xcb, 0xf3, 0xf1, 0x66, 0x60, 0x98, 0x68, 0x28, 0x78, 0x1a, + 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xc5, 0xb8, 0xcf, 0x8e, 0xa4, 0x06, 0x8d, 0x64, 0x97, + 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x4e, 0xc2, 0x0d, 0xd7, 0xa9, 0xf0, 0xf6, 0x60, 0x1e, + 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0x6e, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x76, 0x0f, 0x05, 0x4e, + 0x05, 0xdb, 0x69, 0xf4, 0x22, 0x4b, 0xe7, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, 0xa4, 0x08, + 0x80, 0xa0, 0xeb, 0xda, 0xbf, 0x9b, 0xe3, 0xd0, 0x83, 0x14, 0xeb, 0x3a, 0xa5, 0xec, 0x50, 0xa1, + 0xae, 0x43, 0x69, 0x10, 0x0d, 0x8c, 0x5b, 0xf5, 0xe1, 0x85, 0xfb, 0x21, 0x33, 0xe0, 0xeb, 0x0b, + 0x9b, 0x83, 0x58, 0xb0, 0xa2, 0x58, 0x87, 0xd9, 0x22, 0x13, 0xd8, 0x8a, 0xe2, 0xd8, 0x68, 0x90, + 0xd0, 0x8a, 0xd2, 0x45, 0xa9, 0xea, 0x35, 0x39, 0xc2, 0x41, 0x1a, 0xae, 0x5e, 0xcb, 0x0c, 0xab, + 0x9e, 0x61, 0x3b, 0x0f, 0x36, 0x0b, 0x33, 0x64, 0xc4, 0x85, 0xda, 0x2c, 0x23, 0x63, 0x5b, 0xbe, + 0x90, 0x0b, 0xc1, 0x50, 0xd4, 0xa1, 0x14, 0xe0, 0x81, 0x7d, 0xc3, 0xe9, 0x67, 0xaf, 0x65, 0xc9, + 0xe2, 0x2a, 0x2e, 0x12, 0x74, 0x73, 0x2a, 0x0d, 0x76, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, 0x00, 0x8f, + 0xcd, 0xfd, 0x57, 0x69, 0x91, 0xa9, 0x60, 0xde, 0x59, 0xf5, 0xdf, 0xa4, 0xbd, 0x37, 0x80, 0x84, + 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x5b, 0xa7, 0x1f, 0x06, 0x4c, 0xf9, 0x68, 0x68, 0x23, 0x4c, + 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc8, 0xd6, 0xd8, 0xa0, 0xb6, 0xf9, 0xa9, 0x44, + 0x42, 0x83, 0xba, 0x8b, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0xdd, 0x09, 0xe8, 0xbb, 0x5b, 0x9f, 0x8d, + 0x5e, 0x0e, 0xcc, 0x9c, 0xbd, 0x6c, 0xe5, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x97, 0xad, 0xf0, 0xc7, + 0x04, 0x9b, 0x83, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0xb5, 0x7e, 0x56, 0x8e, 0x14, 0x57, 0xca, + 0x3b, 0x0f, 0xcb, 0xef, 0xf6, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc5, 0x13, 0x56, 0xd7, 0xea, 0x5b, + 0x94, 0xfe, 0x0d, 0x23, 0x25, 0x9b, 0x80, 0x2f, 0x51, 0xde, 0x0a, 0x43, 0xb6, 0x67, 0x94, 0xc8, + 0x7e, 0xdf, 0xe8, 0x0e, 0xaa, 0xd9, 0xfd, 0xb4, 0xd1, 0x46, 0x2f, 0x67, 0xa7, 0x97, 0x92, 0xba, + 0x1f, 0x34, 0xba, 0x8b, 0xaa, 0x63, 0xdf, 0x32, 0xba, 0x37, 0x80, 0x54, 0xae, 0x3e, 0x8f, 0xde, + 0x3c, 0xe4, 0xf3, 0x29, 0x2b, 0xd2, 0xf1, 0xf7, 0xfc, 0x2b, 0xb4, 0x7c, 0x3e, 0x69, 0xfe, 0x6c, + 0x8c, 0x5e, 0xa3, 0xc4, 0xf6, 0x12, 0xe0, 0x1e, 0x7b, 0xb9, 0x9c, 0x4f, 0x45, 0x2c, 0xc0, 0x25, + 0x40, 0xf9, 0xf7, 0x49, 0x23, 0x20, 0x2e, 0x01, 0x7a, 0x00, 0xb0, 0x37, 0xab, 0x18, 0x43, 0xed, + 0x35, 0x82, 0xa0, 0x3d, 0x05, 0xd8, 0x2c, 0xc2, 0xd8, 0x6b, 0x12, 0x75, 0x78, 0x69, 0xcf, 0xea, + 0x48, 0x29, 0x91, 0x45, 0x74, 0x29, 0x3b, 0xb8, 0xdb, 0xea, 0xcb, 0xef, 0xcb, 0x2c, 0x17, 0x8b, + 0xb8, 0x5a, 0x83, 0xc1, 0xad, 0x6a, 0xe9, 0x00, 0xc4, 0xe0, 0x46, 0x41, 0x3b, 0x6b, 0x75, 0x33, + 0x27, 0x97, 0xfb, 0xbc, 0xe2, 0x4b, 0x91, 0x15, 0x0c, 0x7e, 0x63, 0xc4, 0x34, 0xa8, 0xcb, 0x10, + 0xb3, 0x96, 0x62, 0x6d, 0x96, 0x2b, 0x89, 0xf6, 0x3e, 0xa1, 0xfc, 0x42, 0x75, 0x2d, 0x78, 0x05, + 0x9f, 0x27, 0xb6, 0x56, 0x20, 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xfa, 0xfe, 0x24, 0x2b, 0xe6, 0x68, + 0xdf, 0x9f, 0xb8, 0xdf, 0x77, 0xbd, 0x41, 0x03, 0x76, 0x42, 0xb5, 0x8d, 0xd6, 0x4e, 0x00, 0xf5, + 0xd6, 0x2e, 0xda, 0xe8, 0x2e, 0x41, 0x4c, 0x28, 0x9c, 0x04, 0xae, 0xbe, 0x28, 0x59, 0xc1, 0x52, + 0x7d, 0x6b, 0x0e, 0x73, 0xe5, 0x11, 0x41, 0x57, 0x90, 0xb4, 0xb1, 0x48, 0xca, 0x4f, 0x97, 0xc5, + 0x49, 0xc5, 0xcf, 0xb3, 0x9c, 0x55, 0x20, 0x16, 0xb5, 0xea, 0x8e, 0x9c, 0x88, 0x45, 0x18, 0x67, + 0xaf, 0x5f, 0x48, 0xa9, 0xf7, 0x99, 0xf5, 0x59, 0x15, 0x27, 0xf0, 0xfa, 0x45, 0x6b, 0xa3, 0x8b, + 0x11, 0x27, 0x83, 0x01, 0xdc, 0x49, 0x74, 0x5a, 0xd7, 0xc5, 0x5a, 0x8e, 0x0f, 0xf5, 0xd6, 0xa8, + 0xfc, 0xea, 0x69, 0x0d, 0x12, 0x1d, 0x65, 0x0e, 0x23, 0x89, 0x44, 0x27, 0xac, 0x61, 0x97, 0x12, + 0xc9, 0x1d, 0xab, 0x6b, 0x45, 0x60, 0x29, 0x69, 0x6d, 0x68, 0x21, 0xb1, 0x94, 0x74, 0x20, 0x10, + 0x90, 0xf4, 0x34, 0x98, 0xa3, 0x01, 0xc9, 0x48, 0x83, 0x01, 0xc9, 0xa5, 0x6c, 0xa0, 0x38, 0x28, + 0x32, 0x91, 0xc5, 0xf9, 0x94, 0x89, 0x93, 0xb8, 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x06, 0x0a, 0x85, + 0x4c, 0x3c, 0x86, 0x08, 0x14, 0x14, 0xab, 0x1c, 0xfe, 0x76, 0xf4, 0x76, 0xb3, 0xee, 0xb3, 0x42, + 0xfd, 0xa0, 0xca, 0x53, 0xf9, 0x4b, 0x4c, 0xe3, 0x77, 0x8c, 0x8d, 0xa9, 0xa8, 0x58, 0xbc, 0xd0, + 0xb6, 0xdf, 0x32, 0x7f, 0x97, 0xe0, 0xc3, 0x51, 0x33, 0x9e, 0x8f, 0xb9, 0xc8, 0xce, 0x9b, 0x6d, + 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x09, 0x7c, 0x75, 0x04, 0xe3, 0x6c, 0x9c, 0x76, + 0xa5, 0xa7, 0xac, 0xcc, 0x61, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, 0x93, 0xd3, + 0x15, 0xcf, 0x58, 0xb8, 0x32, 0x33, 0x36, 0xac, 0x32, 0x33, 0xef, 0xa5, 0x8c, 0x3c, 0x7a, 0xfb, + 0x88, 0x2d, 0x5e, 0xb2, 0xaa, 0xbe, 0xc8, 0xca, 0xfd, 0x26, 0xe1, 0x8a, 0xc5, 0x12, 0xbe, 0xb6, + 0x68, 0x89, 0x89, 0x41, 0x88, 0xac, 0x94, 0x40, 0xed, 0x4a, 0x60, 0x81, 0x83, 0xfa, 0x38, 0x5e, + 0x30, 0xf9, 0x0d, 0x15, 0xb0, 0x12, 0x38, 0x46, 0x1c, 0x88, 0x58, 0x09, 0x48, 0xd8, 0x79, 0xbf, + 0xcb, 0x32, 0xa7, 0x6c, 0xde, 0x8c, 0xb0, 0xea, 0x24, 0x5e, 0x2f, 0x58, 0x21, 0x94, 0x49, 0x70, + 0x26, 0xef, 0x98, 0xc4, 0x79, 0xe2, 0x4c, 0x7e, 0x88, 0x9e, 0x13, 0x9a, 0xbc, 0x86, 0x3f, 0xe1, + 0x95, 0x68, 0x7f, 0x2e, 0xe9, 0xac, 0xca, 0x41, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, 0xd0, 0x14, + 0xd6, 0x70, 0x7e, 0x67, 0xc0, 0x2b, 0xc3, 0x73, 0x56, 0x99, 0x71, 0xf2, 0x74, 0x11, 0x67, 0xb9, + 0x1a, 0x0d, 0xdf, 0x0f, 0xd8, 0x26, 0x74, 0x88, 0xdf, 0x19, 0x18, 0xaa, 0xeb, 0xfc, 0x32, 0x43, + 0xb8, 0x84, 0xe0, 0x11, 0x41, 0x8f, 0x7d, 0xe2, 0x11, 0x41, 0xbf, 0x96, 0xdd, 0xb9, 0x5b, 0x56, + 0x72, 0x6b, 0x49, 0xec, 0xf2, 0x14, 0x9e, 0x17, 0x3a, 0x36, 0x01, 0x48, 0xec, 0xdc, 0x83, 0x0a, + 0x36, 0x35, 0xb0, 0xd8, 0xb3, 0xac, 0x88, 0xf3, 0xec, 0xc7, 0x30, 0xad, 0x77, 0xec, 0x68, 0x82, + 0x48, 0x0d, 0x70, 0x12, 0x73, 0xb5, 0xcf, 0xc4, 0x2c, 0x6b, 0x42, 0xff, 0xdd, 0x40, 0xbb, 0x49, + 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0xba, 0x53, 0x96, 0xd3, 0x66, 0x55, 0x3d, + 0x65, 0x09, 0xcb, 0x4a, 0x31, 0xfe, 0x38, 0xdc, 0x56, 0x00, 0x27, 0x2e, 0x5a, 0x0c, 0x50, 0x73, + 0x1e, 0xdf, 0x37, 0xb1, 0x64, 0xda, 0xfe, 0x8e, 0xe0, 0x59, 0xcd, 0x2a, 0x95, 0x68, 0xec, 0x33, + 0x01, 0x66, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, 0xb0, 0xcf, + 0xe1, 0x4e, 0x59, 0xcd, 0xf3, 0x15, 0x93, 0xf7, 0x0d, 0x1f, 0x90, 0xc6, 0x1c, 0x8a, 0x38, 0xec, + 0xa3, 0x69, 0x9b, 0xad, 0x75, 0xdd, 0xee, 0x14, 0xeb, 0x03, 0x78, 0x65, 0x02, 0xb1, 0x24, 0x31, + 0x22, 0x5b, 0x0b, 0xe0, 0xce, 0x61, 0x78, 0xc5, 0xe3, 0x34, 0x89, 0x6b, 0x71, 0x12, 0xaf, 0x73, + 0x1e, 0xa7, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x99, 0xb8, 0x10, 0x75, 0x18, 0x4e, 0xc1, 0x6e, + 0x76, 0x26, 0x7f, 0x1e, 0x51, 0xdd, 0xe5, 0x84, 0xd9, 0x99, 0x2c, 0x2f, 0xbc, 0xc7, 0x79, 0x2b, + 0x0c, 0xd9, 0x77, 0xd0, 0x5a, 0x91, 0x4c, 0x43, 0x6e, 0x60, 0x3a, 0x5e, 0x02, 0xf2, 0x7e, 0x80, + 0xb0, 0x5f, 0x20, 0x69, 0xff, 0xae, 0x7f, 0xe1, 0x47, 0xa8, 0x6f, 0x96, 0x3f, 0xc0, 0x74, 0x5d, + 0x68, 0xe2, 0x7e, 0xc8, 0x62, 0x6b, 0x20, 0x6d, 0xd3, 0xcc, 0xdd, 0x8b, 0x58, 0xec, 0xa4, 0xe9, + 0x11, 0xab, 0x91, 0x17, 0xca, 0x1b, 0xe1, 0xc4, 0x4a, 0x89, 0x34, 0xb3, 0x4b, 0xd9, 0x81, 0xde, + 0xc8, 0x9e, 0xa6, 0x99, 0x50, 0x32, 0x7d, 0x43, 0xfa, 0x41, 0xd7, 0x40, 0x97, 0x22, 0x6a, 0x45, + 0xd3, 0x36, 0x96, 0x37, 0xcc, 0x8c, 0xcf, 0xe7, 0x39, 0x53, 0xd0, 0x29, 0x8b, 0xdb, 0x4f, 0x36, + 0x6e, 0x77, 0x6d, 0xa1, 0x20, 0x11, 0xcb, 0x83, 0x0a, 0x36, 0x8d, 0x6c, 0xb0, 0xf6, 0x91, 0x94, + 0x6e, 0xd8, 0x8d, 0xae, 0x19, 0x0f, 0x20, 0xd2, 0x48, 0x14, 0xb4, 0xef, 0xbd, 0x35, 0xe2, 0x7d, + 0xa6, 0x5b, 0x02, 0x7e, 0x6c, 0x4a, 0x2a, 0x3b, 0x62, 0xe2, 0xbd, 0x37, 0x04, 0xb3, 0xfb, 0x04, + 0xe0, 0xe1, 0xc9, 0xfa, 0x20, 0x85, 0xfb, 0x04, 0xa8, 0x2f, 0x19, 0x62, 0x9f, 0x40, 0xb1, 0x7e, + 0xd7, 0x99, 0x73, 0xaf, 0xc3, 0xb8, 0xb6, 0x95, 0x43, 0xba, 0x0e, 0x05, 0x43, 0x5d, 0x47, 0x29, + 0xf8, 0x4d, 0xea, 0x1e, 0xad, 0x21, 0x4d, 0x8a, 0x9d, 0xab, 0xdd, 0xe9, 0xc3, 0x6c, 0x5c, 0x32, + 0xfb, 0x49, 0x79, 0x65, 0x09, 0xff, 0xad, 0x86, 0x56, 0x48, 0xc4, 0xa5, 0x0e, 0xd4, 0xda, 0x7e, + 0xf2, 0xfe, 0x7f, 0x7d, 0x75, 0x6d, 0xf4, 0xd3, 0xaf, 0xae, 0x8d, 0xfe, 0xf7, 0xab, 0x6b, 0xa3, + 0x9f, 0x7c, 0x7d, 0xed, 0x8d, 0x9f, 0x7e, 0x7d, 0xed, 0x8d, 0xff, 0xf9, 0xfa, 0xda, 0x1b, 0x5f, + 0xbe, 0xa9, 0x7e, 0x36, 0xf7, 0xe5, 0xcf, 0xc9, 0x1f, 0xbf, 0x7d, 0xfc, 0xff, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x45, 0x5f, 0x5b, 0xf3, 0x5a, 0x77, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -503,6 +505,7 @@ type ClientCommandsHandler interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse + ObjectTypeListConflictingRelations(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -2948,6 +2951,26 @@ func ObjectTypeRecommendedFeaturedRelationsSet(b []byte) (resp []byte) { return resp } +func ObjectTypeListConflictingRelations(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectTypeListConflictingRelationsResponse{Error: &pb.RpcObjectTypeListConflictingRelationsResponseError{Code: pb.RpcObjectTypeListConflictingRelationsResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectTypeListConflictingRelationsRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectTypeListConflictingRelationsResponse{Error: &pb.RpcObjectTypeListConflictingRelationsResponseError{Code: pb.RpcObjectTypeListConflictingRelationsResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectTypeListConflictingRelations(context.Background(), in).Marshal() + return resp +} + func HistoryShowVersion(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6358,6 +6381,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectTypeRecommendedRelationsSet(data) case "ObjectTypeRecommendedFeaturedRelationsSet": cd = ObjectTypeRecommendedFeaturedRelationsSet(data) + case "ObjectTypeListConflictingRelations": + cd = ObjectTypeListConflictingRelations(data) case "HistoryShowVersion": cd = HistoryShowVersion(data) case "HistoryGetVersions": @@ -8266,6 +8291,20 @@ func (h *ClientCommandsHandlerProxy) ObjectTypeRecommendedFeaturedRelationsSet(c call, _ := actualCall(ctx, req) return call.(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) } +func (h *ClientCommandsHandlerProxy) ObjectTypeListConflictingRelations(ctx context.Context, req *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.ObjectTypeListConflictingRelations(ctx, req.(*pb.RpcObjectTypeListConflictingRelationsRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "ObjectTypeListConflictingRelations", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcObjectTypeListConflictingRelationsResponse) +} func (h *ClientCommandsHandlerProxy) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.HistoryShowVersion(ctx, req.(*pb.RpcHistoryShowVersionRequest)), nil diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 33a682ae5..f8241081d 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -18,6 +18,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider" "github.com/anyproto/anytype-heart/util/dateutil" "github.com/anyproto/anytype-heart/util/slice" @@ -91,6 +92,68 @@ func (s *service) objectTypeSetRelations( }) } +func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId string) ([]string, error) { + records, err := s.store.SpaceIndex(spaceId).QueryByIds([]string{typeObjectId}) + if err != nil { + return nil, fmt.Errorf("failed to query object type: %w", err) + } + + if len(records) != 1 { + return nil, fmt.Errorf("failed to query object type, expected 1 record, got %d", len(records)) + } + + recommendedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations) + + allRelationKeys := make([]string, 0, len(recommendedRelations)) + err = s.store.SpaceIndex(spaceId).QueryIterate(database.Query{Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(typeObjectId), + }, + }}, func(details *domain.Details) { + for _, key := range details.Keys() { + if !slices.Contains(allRelationKeys, string(key)) { + allRelationKeys = append(allRelationKeys, string(key)) + } + } + }) + if err != nil { + return nil, fmt.Errorf("failed to iterate over all objects to collect their relations: %w", err) + } + + records, err = s.store.SpaceIndex(spaceId).Query(database.Query{ + Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyRelationKey, + Condition: model.BlockContentDataviewFilter_In, + Value: domain.StringList(allRelationKeys), + }, + { + RelationKey: bundle.RelationKeyLayout, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.Int64(int64(model.ObjectType_relation)), + }, + }, + }) + if err != nil { + return nil, fmt.Errorf("failed to fetch relations by keys: %w", err) + } + if len(records) != len(allRelationKeys) { + return nil, fmt.Errorf("failed to query relations from store, expected %d record, got %d", len(allRelationKeys), len(records)) + } + + conflictingRelations := make([]string, 0, len(records)) + for _, record := range records { + id := record.Details.GetString(bundle.RelationKeyId) + if !slices.Contains(recommendedRelations, id) { + conflictingRelations = append(conflictingRelations, id) + } + } + + return conflictingRelations, nil +} + func (s *service) ListRelationsWithValue(spaceId string, value domain.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) { var ( countersByKeys = make(map[domain.RelationKey]int64) diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index 3218f8258..1b167f412 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -306,3 +306,60 @@ func TestService_objectTypeSetRelations(t *testing.T) { assert.ErrorIs(t, ErrBundledTypeIsReadonly, err) }) } + +func TestService_ObjectTypeListConflictingRelations(t *testing.T) { + t.Run("list conflicting relations", func(t *testing.T) { + // given + fx := newFixture(t) + fx.store.AddObjects(t, spaceId, []objectstore.TestObject{ + // object type + { + bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyRecommendedRelations: domain.StringList([]string{ + bundle.RelationKeyAssignee.URL(), + bundle.RelationKeyDone.URL(), + bundle.RelationKeyCreatedDate.URL(), + }), + }, + // objects + { + bundle.RelationKeyId: domain.String("task1"), // 1 + bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), // 2 + bundle.RelationKeyName: domain.String("Invent alphabet"), // 3 + bundle.RelationKeyAssignee: domain.StringList([]string{"Kirill", "Methodius"}), + bundle.RelationKeyDueDate: domain.Int64(863), // 4 + }, + { + bundle.RelationKeyId: domain.String("task2"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyName: domain.String("Fight CO2 pollution"), + bundle.RelationKeyAssignee: domain.StringList([]string{"Humanity"}), + bundle.RelationKeyDone: domain.Bool(false), + bundle.RelationKeyStatus: domain.String("In Progress"), // 5 + }, + // relations + generateRelationTestObject(bundle.RelationKeyId), + generateRelationTestObject(bundle.RelationKeyType), + generateRelationTestObject(bundle.RelationKeyName), + generateRelationTestObject(bundle.RelationKeyAssignee), + generateRelationTestObject(bundle.RelationKeyDueDate), + generateRelationTestObject(bundle.RelationKeyDone), + generateRelationTestObject(bundle.RelationKeyStatus), + }) + + // when + relations, err := fx.ObjectTypeListConflictingRelations(spaceId, bundle.TypeKeyTask.URL()) + + // then + assert.NoError(t, err) + assert.Len(t, relations, 5) + }) +} + +func generateRelationTestObject(key domain.RelationKey) objectstore.TestObject { + return objectstore.TestObject{ + bundle.RelationKeyId: domain.String(key.URL()), + bundle.RelationKeyRelationKey: domain.String(key.String()), + bundle.RelationKeyLayout: domain.Int64(model.ObjectType_relation), + } +} diff --git a/core/block/detailservice/service.go b/core/block/detailservice/service.go index 8350b6871..40db0fe46 100644 --- a/core/block/detailservice/service.go +++ b/core/block/detailservice/service.go @@ -40,6 +40,7 @@ type Service interface { ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error ObjectTypeSetRelations(objectTypeId string, relationObjectIds []string) error ObjectTypeSetFeaturedRelations(objectTypeId string, relationObjectIds []string) error + ObjectTypeListConflictingRelations(spaceId, typeKey string) (relationObjectIds []string, err error) ListRelationsWithValue(spaceId string, value domain.Value) ([]*pb.RpcRelationListWithValueResponseResponseItem, error) diff --git a/core/relations.go b/core/relations.go index 00b652b9f..a9ca7b870 100644 --- a/core/relations.go +++ b/core/relations.go @@ -128,3 +128,18 @@ func (mw *Middleware) RelationListWithValue(_ context.Context, req *pb.RpcRelati list, err := mustService[detailservice.Service](mw).ListRelationsWithValue(req.SpaceId, domain.ValueFromProto(req.Value)) return response(list, err) } + +func (mw *Middleware) ObjectTypeListConflictingRelations(_ context.Context, req *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse { + detailsService := mustService[detailservice.Service](mw) + conflictingRelations, err := detailsService.ObjectTypeListConflictingRelations(req.SpaceId, req.TypeObjectId) + code := mapErrorCode(err, + errToCode(detailservice.ErrBundledTypeIsReadonly, pb.RpcObjectTypeListConflictingRelationsResponseError_READONLY_OBJECT_TYPE), + ) + return &pb.RpcObjectTypeListConflictingRelationsResponse{ + Error: &pb.RpcObjectTypeListConflictingRelationsResponseError{ + Code: code, + Description: getErrorDescription(err), + }, + RelationIds: conflictingRelations, + } +} diff --git a/docs/proto.md b/docs/proto.md index 6072ef38d..4be2cf2e6 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -1063,6 +1063,10 @@ - [Rpc.ObjectRelation.RemoveFeatured.Response](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error) - [Rpc.ObjectType](#anytype-Rpc-ObjectType) + - [Rpc.ObjectType.ListConflictingRelations](#anytype-Rpc-ObjectType-ListConflictingRelations) + - [Rpc.ObjectType.ListConflictingRelations.Request](#anytype-Rpc-ObjectType-ListConflictingRelations-Request) + - [Rpc.ObjectType.ListConflictingRelations.Response](#anytype-Rpc-ObjectType-ListConflictingRelations-Response) + - [Rpc.ObjectType.ListConflictingRelations.Response.Error](#anytype-Rpc-ObjectType-ListConflictingRelations-Response-Error) - [Rpc.ObjectType.Recommended](#anytype-Rpc-ObjectType-Recommended) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) @@ -1510,6 +1514,7 @@ - [Rpc.ObjectRelation.Delete.Response.Error.Code](#anytype-Rpc-ObjectRelation-Delete-Response-Error-Code) - [Rpc.ObjectRelation.ListAvailable.Response.Error.Code](#anytype-Rpc-ObjectRelation-ListAvailable-Response-Error-Code) - [Rpc.ObjectRelation.RemoveFeatured.Response.Error.Code](#anytype-Rpc-ObjectRelation-RemoveFeatured-Response-Error-Code) + - [Rpc.ObjectType.ListConflictingRelations.Response.Error.Code](#anytype-Rpc-ObjectType-ListConflictingRelations-Response-Error-Code) - [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response-Error-Code) - [Rpc.ObjectType.Recommended.RelationsSet.Response.Error.Code](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response-Error-Code) - [Rpc.ObjectType.Relation.Add.Response.Error.Code](#anytype-Rpc-ObjectType-Relation-Add-Response-Error-Code) @@ -2086,6 +2091,7 @@ | ObjectTypeRelationRemove | [Rpc.ObjectType.Relation.Remove.Request](#anytype-Rpc-ObjectType-Relation-Remove-Request) | [Rpc.ObjectType.Relation.Remove.Response](#anytype-Rpc-ObjectType-Relation-Remove-Response) | | | ObjectTypeRecommendedRelationsSet | [Rpc.ObjectType.Recommended.RelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Request) | [Rpc.ObjectType.Recommended.RelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-RelationsSet-Response) | | | ObjectTypeRecommendedFeaturedRelationsSet | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Request) | [Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response](#anytype-Rpc-ObjectType-Recommended-FeaturedRelationsSet-Response) | | +| ObjectTypeListConflictingRelations | [Rpc.ObjectType.ListConflictingRelations.Request](#anytype-Rpc-ObjectType-ListConflictingRelations-Request) | [Rpc.ObjectType.ListConflictingRelations.Response](#anytype-Rpc-ObjectType-ListConflictingRelations-Response) | | | HistoryShowVersion | [Rpc.History.ShowVersion.Request](#anytype-Rpc-History-ShowVersion-Request) | [Rpc.History.ShowVersion.Response](#anytype-Rpc-History-ShowVersion-Response) | | | HistoryGetVersions | [Rpc.History.GetVersions.Request](#anytype-Rpc-History-GetVersions-Request) | [Rpc.History.GetVersions.Response](#anytype-Rpc-History-GetVersions-Response) | | | HistorySetVersion | [Rpc.History.SetVersion.Request](#anytype-Rpc-History-SetVersion-Request) | [Rpc.History.SetVersion.Response](#anytype-Rpc-History-SetVersion-Response) | | @@ -17696,6 +17702,64 @@ Available undo/redo operations + + +### Rpc.ObjectType.ListConflictingRelations + + + + + + + + + +### Rpc.ObjectType.ListConflictingRelations.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| spaceId | [string](#string) | | | +| typeObjectId | [string](#string) | | | + + + + + + + + +### Rpc.ObjectType.ListConflictingRelations.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.ObjectType.ListConflictingRelations.Response.Error](#anytype-Rpc-ObjectType-ListConflictingRelations-Response-Error) | | | +| relationIds | [string](#string) | repeated | | + + + + + + + + +### Rpc.ObjectType.ListConflictingRelations.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.ObjectType.ListConflictingRelations.Response.Error.Code](#anytype-Rpc-ObjectType-ListConflictingRelations-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.ObjectType.Recommended @@ -23888,6 +23952,20 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.ObjectType.ListConflictingRelations.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | +| READONLY_OBJECT_TYPE | 3 | | + + + ### Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 0eec4783d..db9157c86 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -3935,6 +3935,37 @@ func (RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode) EnumDescrip return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 1, 1, 1, 0, 0} } +type RpcObjectTypeListConflictingRelationsResponseErrorCode int32 + +const ( + RpcObjectTypeListConflictingRelationsResponseError_NULL RpcObjectTypeListConflictingRelationsResponseErrorCode = 0 + RpcObjectTypeListConflictingRelationsResponseError_UNKNOWN_ERROR RpcObjectTypeListConflictingRelationsResponseErrorCode = 1 + RpcObjectTypeListConflictingRelationsResponseError_BAD_INPUT RpcObjectTypeListConflictingRelationsResponseErrorCode = 2 + RpcObjectTypeListConflictingRelationsResponseError_READONLY_OBJECT_TYPE RpcObjectTypeListConflictingRelationsResponseErrorCode = 3 +) + +var RpcObjectTypeListConflictingRelationsResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 3: "READONLY_OBJECT_TYPE", +} + +var RpcObjectTypeListConflictingRelationsResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "READONLY_OBJECT_TYPE": 3, +} + +func (x RpcObjectTypeListConflictingRelationsResponseErrorCode) String() string { + return proto.EnumName(RpcObjectTypeListConflictingRelationsResponseErrorCode_name, int32(x)) +} + +func (RpcObjectTypeListConflictingRelationsResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 2, 1, 0, 0} +} + type RpcRelationListRemoveOptionResponseErrorCode int32 const ( @@ -32898,6 +32929,210 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) GetDescripti return "" } +type RpcObjectTypeListConflictingRelations struct { +} + +func (m *RpcObjectTypeListConflictingRelations) Reset() { *m = RpcObjectTypeListConflictingRelations{} } +func (m *RpcObjectTypeListConflictingRelations) String() string { return proto.CompactTextString(m) } +func (*RpcObjectTypeListConflictingRelations) ProtoMessage() {} +func (*RpcObjectTypeListConflictingRelations) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 2} +} +func (m *RpcObjectTypeListConflictingRelations) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeListConflictingRelations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeListConflictingRelations.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeListConflictingRelations) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeListConflictingRelations.Merge(m, src) +} +func (m *RpcObjectTypeListConflictingRelations) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeListConflictingRelations) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeListConflictingRelations.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeListConflictingRelations proto.InternalMessageInfo + +type RpcObjectTypeListConflictingRelationsRequest struct { + SpaceId string `protobuf:"bytes,1,opt,name=spaceId,proto3" json:"spaceId,omitempty"` + TypeObjectId string `protobuf:"bytes,2,opt,name=typeObjectId,proto3" json:"typeObjectId,omitempty"` +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) Reset() { + *m = RpcObjectTypeListConflictingRelationsRequest{} +} +func (m *RpcObjectTypeListConflictingRelationsRequest) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeListConflictingRelationsRequest) ProtoMessage() {} +func (*RpcObjectTypeListConflictingRelationsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 2, 0} +} +func (m *RpcObjectTypeListConflictingRelationsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeListConflictingRelationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeListConflictingRelationsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeListConflictingRelationsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsRequest.Merge(m, src) +} +func (m *RpcObjectTypeListConflictingRelationsRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeListConflictingRelationsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeListConflictingRelationsRequest proto.InternalMessageInfo + +func (m *RpcObjectTypeListConflictingRelationsRequest) GetSpaceId() string { + if m != nil { + return m.SpaceId + } + return "" +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) GetTypeObjectId() string { + if m != nil { + return m.TypeObjectId + } + return "" +} + +type RpcObjectTypeListConflictingRelationsResponse struct { + Error *RpcObjectTypeListConflictingRelationsResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + RelationIds []string `protobuf:"bytes,2,rep,name=relationIds,proto3" json:"relationIds,omitempty"` +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) Reset() { + *m = RpcObjectTypeListConflictingRelationsResponse{} +} +func (m *RpcObjectTypeListConflictingRelationsResponse) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeListConflictingRelationsResponse) ProtoMessage() {} +func (*RpcObjectTypeListConflictingRelationsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 2, 1} +} +func (m *RpcObjectTypeListConflictingRelationsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeListConflictingRelationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeListConflictingRelationsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponse.Merge(m, src) +} +func (m *RpcObjectTypeListConflictingRelationsResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeListConflictingRelationsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponse proto.InternalMessageInfo + +func (m *RpcObjectTypeListConflictingRelationsResponse) GetError() *RpcObjectTypeListConflictingRelationsResponseError { + if m != nil { + return m.Error + } + return nil +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) GetRelationIds() []string { + if m != nil { + return m.RelationIds + } + return nil +} + +type RpcObjectTypeListConflictingRelationsResponseError struct { + Code RpcObjectTypeListConflictingRelationsResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectTypeListConflictingRelationsResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) Reset() { + *m = RpcObjectTypeListConflictingRelationsResponseError{} +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectTypeListConflictingRelationsResponseError) ProtoMessage() {} +func (*RpcObjectTypeListConflictingRelationsResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 8, 2, 1, 0} +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponseError.Merge(m, src) +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectTypeListConflictingRelationsResponseError proto.InternalMessageInfo + +func (m *RpcObjectTypeListConflictingRelationsResponseError) GetCode() RpcObjectTypeListConflictingRelationsResponseErrorCode { + if m != nil { + return m.Code + } + return RpcObjectTypeListConflictingRelationsResponseError_NULL +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcRelation struct { } @@ -69886,6 +70121,7 @@ func init() { proto.RegisterEnum("anytype.RpcObjectTypeRelationRemoveResponseErrorCode", RpcObjectTypeRelationRemoveResponseErrorCode_name, RpcObjectTypeRelationRemoveResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedRelationsSetResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode", RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_name, RpcObjectTypeRecommendedFeaturedRelationsSetResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectTypeListConflictingRelationsResponseErrorCode", RpcObjectTypeListConflictingRelationsResponseErrorCode_name, RpcObjectTypeListConflictingRelationsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListRemoveOptionResponseErrorCode", RpcRelationListRemoveOptionResponseErrorCode_name, RpcRelationListRemoveOptionResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationOptionsResponseErrorCode", RpcRelationOptionsResponseErrorCode_name, RpcRelationOptionsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcRelationListWithValueResponseErrorCode", RpcRelationListWithValueResponseErrorCode_name, RpcRelationListWithValueResponseErrorCode_value) @@ -70539,6 +70775,10 @@ func init() { proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetRequest)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponse)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response") proto.RegisterType((*RpcObjectTypeRecommendedFeaturedRelationsSetResponseError)(nil), "anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response.Error") + proto.RegisterType((*RpcObjectTypeListConflictingRelations)(nil), "anytype.Rpc.ObjectType.ListConflictingRelations") + proto.RegisterType((*RpcObjectTypeListConflictingRelationsRequest)(nil), "anytype.Rpc.ObjectType.ListConflictingRelations.Request") + proto.RegisterType((*RpcObjectTypeListConflictingRelationsResponse)(nil), "anytype.Rpc.ObjectType.ListConflictingRelations.Response") + proto.RegisterType((*RpcObjectTypeListConflictingRelationsResponseError)(nil), "anytype.Rpc.ObjectType.ListConflictingRelations.Response.Error") proto.RegisterType((*RpcRelation)(nil), "anytype.Rpc.Relation") proto.RegisterType((*RpcRelationListRemoveOption)(nil), "anytype.Rpc.Relation.ListRemoveOption") proto.RegisterType((*RpcRelationListRemoveOptionRequest)(nil), "anytype.Rpc.Relation.ListRemoveOption.Request") @@ -71279,24 +71519,24 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 19378 bytes of a gzipped FileDescriptorProto + // 19434 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x78, 0x24, 0x47, 0x79, 0x2f, 0xba, 0x33, 0x3d, 0x33, 0x92, 0x5e, 0x7d, 0xec, 0x6c, 0x7b, 0x77, 0xbd, 0x2e, 0x9b, 0xb5, 0xb3, 0x36, 0xc6, 0x31, 0x46, 0x6b, 0x0c, 0x21, 0xd8, 0xd8, 0xd8, 0xa3, 0xd1, 0x48, 0x1a, 0x5b, 0x9a, 0x11, 0x3d, 0xa3, 0x5d, 0x9c, 0x1c, 0xae, 0xd2, 0x3b, 0x53, 0x92, 0xda, 0x3b, 0xea, 0x1e, 0x7a, 0x5a, 0x5a, 0x8b, 0xfb, 0x9c, 0x7b, 0x42, 0x88, 0xf9, 0x08, 0xe1, 0x10, 0x42, 0x48, - 0xc2, 0x37, 0x18, 0x0c, 0x07, 0x12, 0x20, 0x7c, 0x1f, 0x20, 0x01, 0xc2, 0x47, 0x20, 0x24, 0x21, - 0x04, 0x42, 0xf8, 0x48, 0xb8, 0xe1, 0x2b, 0x84, 0xdc, 0x27, 0x1c, 0x2e, 0xb9, 0x27, 0x70, 0x48, - 0xc2, 0xcd, 0x7d, 0xba, 0xaa, 0xba, 0xbb, 0x6a, 0x34, 0xdd, 0x53, 0x3d, 0x9a, 0x1e, 0x99, 0x70, - 0xff, 0xeb, 0xae, 0xae, 0x7e, 0xeb, 0xad, 0xf7, 0xf7, 0x56, 0xd5, 0x5b, 0x55, 0x6f, 0xbd, 0x05, - 0xa7, 0xda, 0x17, 0xce, 0xb6, 0x6d, 0xcb, 0xb1, 0x3a, 0x67, 0x1b, 0xd6, 0xf6, 0xb6, 0x6e, 0x36, - 0x3b, 0xb3, 0xe4, 0x5d, 0x1d, 0xd3, 0xcd, 0x3d, 0x67, 0xaf, 0x8d, 0xd1, 0x75, 0xed, 0x8b, 0x9b, - 0x67, 0x5b, 0xc6, 0x85, 0xb3, 0xed, 0x0b, 0x67, 0xb7, 0xad, 0x26, 0x6e, 0x79, 0x3f, 0x90, 0x17, - 0x96, 0x1d, 0xdd, 0x10, 0x96, 0xab, 0x65, 0x35, 0xf4, 0x56, 0xc7, 0xb1, 0x6c, 0xcc, 0x72, 0x9e, - 0x0c, 0x8a, 0xc4, 0xbb, 0xd8, 0x74, 0x3c, 0x0a, 0x57, 0x6d, 0x5a, 0xd6, 0x66, 0x0b, 0xd3, 0x6f, - 0x17, 0x76, 0x36, 0xce, 0x76, 0x1c, 0x7b, 0xa7, 0xe1, 0xb0, 0xaf, 0xd7, 0x74, 0x7f, 0x6d, 0xe2, - 0x4e, 0xc3, 0x36, 0xda, 0x8e, 0x65, 0xd3, 0x1c, 0x67, 0xbe, 0xfe, 0xcc, 0x71, 0x50, 0xb4, 0x76, - 0x03, 0x7d, 0x7f, 0x0c, 0x94, 0x42, 0xbb, 0x8d, 0x3e, 0x9e, 0x06, 0x58, 0xc4, 0xce, 0x39, 0x6c, + 0xc2, 0x37, 0x18, 0x0c, 0x07, 0x12, 0x20, 0x7c, 0x1f, 0x20, 0x7c, 0x84, 0x8f, 0x40, 0x48, 0x42, + 0x08, 0x84, 0xf0, 0x91, 0x70, 0x03, 0x81, 0x10, 0x72, 0x9f, 0x70, 0xb8, 0xe4, 0x9e, 0xc0, 0x21, + 0x09, 0x37, 0xf7, 0xe9, 0xaa, 0xea, 0xee, 0xaa, 0xd1, 0x74, 0x4f, 0xf5, 0x68, 0x7a, 0x64, 0xc2, + 0xfd, 0xaf, 0xbb, 0xba, 0xfa, 0xad, 0xb7, 0xde, 0xdf, 0x5b, 0x55, 0x6f, 0x55, 0xbd, 0xf5, 0x16, + 0x9c, 0x6a, 0x5f, 0x38, 0xdb, 0xb6, 0x2d, 0xc7, 0xea, 0x9c, 0x6d, 0x58, 0xdb, 0xdb, 0xba, 0xd9, + 0xec, 0xcc, 0x92, 0x77, 0x75, 0x4c, 0x37, 0xf7, 0x9c, 0xbd, 0x36, 0x46, 0xd7, 0xb5, 0x2f, 0x6e, + 0x9e, 0x6d, 0x19, 0x17, 0xce, 0xb6, 0x2f, 0x9c, 0xdd, 0xb6, 0x9a, 0xb8, 0xe5, 0xfd, 0x40, 0x5e, + 0x58, 0x76, 0x74, 0x43, 0x58, 0xae, 0x96, 0xd5, 0xd0, 0x5b, 0x1d, 0xc7, 0xb2, 0x31, 0xcb, 0x79, + 0x32, 0x28, 0x12, 0xef, 0x62, 0xd3, 0xf1, 0x28, 0x5c, 0xb5, 0x69, 0x59, 0x9b, 0x2d, 0x4c, 0xbf, + 0x5d, 0xd8, 0xd9, 0x38, 0xdb, 0x71, 0xec, 0x9d, 0x86, 0xc3, 0xbe, 0x5e, 0xd3, 0xfd, 0xb5, 0x89, + 0x3b, 0x0d, 0xdb, 0x68, 0x3b, 0x96, 0x4d, 0x73, 0x9c, 0x79, 0xf0, 0x81, 0x71, 0x50, 0xb4, 0x76, + 0x03, 0x7d, 0x7f, 0x0c, 0x94, 0x42, 0xbb, 0x8d, 0x3e, 0x91, 0x06, 0x58, 0xc4, 0xce, 0x39, 0x6c, 0x77, 0x0c, 0xcb, 0x44, 0x47, 0x61, 0x4c, 0xc3, 0x4f, 0xdf, 0xc1, 0x1d, 0xe7, 0xb6, 0xcc, 0x73, 0xbf, 0xa5, 0xa4, 0xd0, 0x43, 0x69, 0x18, 0xd7, 0x70, 0xa7, 0x6d, 0x99, 0x1d, 0xac, 0xde, 0x05, 0x59, 0x6c, 0xdb, 0x96, 0x7d, 0x2a, 0x75, 0x4d, 0xea, 0x86, 0xc9, 0x5b, 0x6e, 0x9c, 0x65, 0xd5, @@ -71317,7 +71557,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xe8, 0x81, 0x34, 0x8c, 0xd7, 0xb6, 0x76, 0x9c, 0xa6, 0x75, 0xc9, 0x44, 0x13, 0x3e, 0x32, 0xe8, 0x3b, 0xbc, 0x4c, 0x9e, 0x2c, 0xca, 0xe4, 0x86, 0xfd, 0x95, 0x60, 0x14, 0x42, 0xa4, 0xf1, 0x1a, 0x5f, 0x1a, 0x05, 0x41, 0x1a, 0x8f, 0x91, 0x25, 0x94, 0xbc, 0x1c, 0x5e, 0xf6, 0x44, 0xc8, 0xd6, - 0xda, 0x7a, 0x03, 0xa3, 0x3f, 0x55, 0x60, 0x6a, 0x19, 0xeb, 0xbb, 0xb8, 0xd0, 0x6e, 0xdb, 0xd6, + 0xda, 0x7a, 0x03, 0xa3, 0x3f, 0x51, 0x60, 0x6a, 0x19, 0xeb, 0xbb, 0xb8, 0xd0, 0x6e, 0xdb, 0xd6, 0x2e, 0x46, 0xc5, 0x40, 0x5f, 0x4f, 0xc1, 0x58, 0xc7, 0xcd, 0x54, 0x6e, 0x92, 0x1a, 0x4c, 0x68, 0xde, 0xab, 0x7a, 0x1a, 0xc0, 0x68, 0x62, 0xd3, 0x31, 0x1c, 0x03, 0x77, 0x4e, 0xa5, 0xaf, 0x51, 0x6e, 0x98, 0xd0, 0xb8, 0x14, 0xf4, 0xfd, 0xb4, 0xac, 0x8e, 0x11, 0x2e, 0x66, 0x79, 0x0e, 0x42, @@ -71329,22 +71569,22 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xf3, 0x5b, 0xea, 0xe5, 0x70, 0x59, 0xa5, 0xba, 0x5e, 0x58, 0x5d, 0xd5, 0xaa, 0xe7, 0x4a, 0xeb, 0xec, 0x8f, 0x5a, 0xde, 0xa0, 0x05, 0xd5, 0xd7, 0x6b, 0x4b, 0x05, 0xad, 0x54, 0x98, 0x5b, 0x2e, 0xe5, 0xef, 0x43, 0xcf, 0x52, 0x60, 0x7a, 0x45, 0xbf, 0x88, 0x6b, 0x5b, 0xba, 0x8d, 0xf5, 0x0b, - 0x2d, 0x8c, 0xae, 0x95, 0xc0, 0x13, 0xfd, 0x29, 0x8f, 0x57, 0x49, 0xc4, 0xeb, 0x6c, 0x0f, 0x01, + 0x2d, 0x8c, 0xae, 0x95, 0xc0, 0x13, 0xfd, 0x09, 0x8f, 0x57, 0x49, 0xc4, 0xeb, 0x6c, 0x0f, 0x01, 0x0b, 0x45, 0x84, 0x00, 0xf6, 0xbf, 0xfc, 0x66, 0xb0, 0x24, 0x00, 0xf6, 0xf8, 0x98, 0xf4, 0xe2, - 0x21, 0xf6, 0x4b, 0x0f, 0x03, 0xc4, 0xd0, 0x57, 0x14, 0x98, 0x29, 0x9b, 0xbb, 0x86, 0x83, 0x17, + 0x21, 0xf6, 0x4b, 0x0f, 0x03, 0xc4, 0xd0, 0x57, 0x15, 0x98, 0x29, 0x9b, 0xbb, 0x86, 0x83, 0x17, 0xb1, 0x89, 0x6d, 0x77, 0x1c, 0x90, 0x82, 0xe1, 0x21, 0x85, 0x83, 0x61, 0x41, 0x84, 0xe1, 0xe6, 0x1e, 0x62, 0x13, 0xcb, 0x08, 0x19, 0x6d, 0xaf, 0x82, 0x09, 0x83, 0xe4, 0x2b, 0x1a, 0x4d, 0x26, 0xb1, 0x20, 0x41, 0xbd, 0x0e, 0xa6, 0xe9, 0xcb, 0x82, 0xd1, 0xc2, 0xf7, 0xe0, 0x3d, 0x36, 0xee, 0x8a, 0x89, 0xe8, 0x57, 0xfd, 0xc6, 0x57, 0x16, 0xb0, 0xfc, 0x99, 0xb8, 0x4c, 0xc5, 0x03, 0xf3, 0x25, 0x0f, 0x87, 0xe6, 0xb7, 0xaf, 0x95, 0x19, 0xe8, 0x47, 0x69, 0x98, 0xac, 0x39, 0x56, 0xdb, - 0x55, 0x59, 0xc3, 0xdc, 0x94, 0x03, 0xf7, 0x93, 0x7c, 0x1b, 0x2b, 0x8a, 0xe0, 0x3e, 0xa6, 0x87, + 0x55, 0x59, 0xc3, 0xdc, 0x94, 0x03, 0xf7, 0x53, 0x7c, 0x1b, 0x2b, 0x8a, 0xe0, 0x3e, 0xa6, 0x87, 0x1c, 0xb9, 0x02, 0x42, 0x5a, 0xd8, 0xf7, 0xfd, 0x16, 0xb6, 0x20, 0xa0, 0x72, 0x4b, 0x2c, 0x6a, 0x3f, 0x86, 0xed, 0xeb, 0x25, 0x0a, 0xe4, 0x3d, 0x35, 0x73, 0x8a, 0x3b, 0xb6, 0x8d, 0x4d, 0x47, - 0x0e, 0x84, 0xbf, 0xe6, 0x41, 0x58, 0x12, 0x41, 0xb8, 0x25, 0x42, 0x99, 0xbd, 0x52, 0x12, 0x6c, - 0x63, 0x1f, 0xf6, 0xd1, 0xbc, 0x47, 0x40, 0xf3, 0x67, 0xe3, 0xb3, 0x15, 0x0f, 0xd2, 0xa5, 0x01, + 0x0e, 0x84, 0xbf, 0xe2, 0x41, 0x58, 0x12, 0x41, 0xb8, 0x25, 0x42, 0x99, 0xbd, 0x52, 0x12, 0x6c, + 0x63, 0x1f, 0xf1, 0xd1, 0xbc, 0x47, 0x40, 0xf3, 0x67, 0xe3, 0xb3, 0x15, 0x0f, 0xd2, 0xa5, 0x01, 0x10, 0x3d, 0x0e, 0x79, 0x77, 0x4c, 0x2a, 0xd6, 0xcb, 0xe7, 0x4a, 0xeb, 0xe5, 0xca, 0xb9, 0x72, 0xbd, 0x94, 0xc7, 0xe8, 0xc5, 0x0a, 0x4c, 0x51, 0xd6, 0x34, 0xbc, 0x6b, 0x5d, 0x94, 0xec, 0xf5, - 0xbe, 0x12, 0xd3, 0x58, 0xe0, 0x4b, 0x08, 0x69, 0x19, 0xbf, 0x12, 0xc3, 0x58, 0x88, 0x20, 0xf7, + 0xbe, 0x1a, 0xd3, 0x58, 0xe0, 0x4b, 0x08, 0x69, 0x19, 0xbf, 0x12, 0xc3, 0x58, 0x88, 0x20, 0xf7, 0x70, 0xea, 0xad, 0xf6, 0x35, 0x83, 0xcd, 0x1e, 0xad, 0xa5, 0x67, 0x6f, 0xf5, 0x92, 0x0c, 0x00, 0xad, 0xe4, 0x39, 0x03, 0x5f, 0x42, 0x2b, 0x01, 0x26, 0x82, 0xda, 0xa6, 0xfa, 0xaa, 0x6d, 0xba, 0x97, 0xda, 0xbe, 0x97, 0x1f, 0xb3, 0xe6, 0x44, 0xf4, 0x6e, 0x0a, 0x15, 0xb7, 0xcb, 0x49, 0xf8, @@ -71356,8 +71596,8 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x16, 0xab, 0x95, 0x7a, 0xa9, 0x52, 0xcf, 0x6f, 0xf4, 0xd4, 0xa8, 0x4d, 0xf4, 0xba, 0x0c, 0x64, 0xee, 0xb6, 0x0c, 0x13, 0x3d, 0x90, 0x12, 0x54, 0xc2, 0xc4, 0xce, 0x25, 0xcb, 0xbe, 0xe8, 0x37, 0xd4, 0x20, 0x21, 0x1a, 0x9b, 0x40, 0x95, 0x94, 0xbe, 0xaa, 0x94, 0xe9, 0xa5, 0x4a, 0xbf, 0xce, - 0xab, 0xd2, 0xed, 0xa2, 0x2a, 0x5d, 0xdf, 0x43, 0xfe, 0x2e, 0xf3, 0x21, 0x1d, 0xc0, 0x27, 0xfc, - 0x0e, 0xe0, 0x4e, 0x01, 0xc6, 0x47, 0xcb, 0x91, 0x89, 0x07, 0xe0, 0x97, 0x13, 0x6d, 0xf8, 0xbd, + 0xab, 0xd2, 0xed, 0xa2, 0x2a, 0x5d, 0xdf, 0x43, 0xfe, 0x2e, 0xf3, 0x21, 0x1d, 0xc0, 0x27, 0xfd, + 0x0e, 0xe0, 0x4e, 0x01, 0xc6, 0x47, 0xcb, 0x91, 0x89, 0x07, 0xe0, 0x57, 0x12, 0x6d, 0xf8, 0xbd, 0xa0, 0xde, 0x0c, 0x81, 0x7a, 0xab, 0x47, 0x9f, 0x60, 0xec, 0xef, 0x3a, 0xee, 0xdb, 0xdf, 0x4d, 0x5c, 0x54, 0x4f, 0xc0, 0xb1, 0xf9, 0xf2, 0xc2, 0x42, 0x49, 0x2b, 0x55, 0xea, 0xeb, 0x95, 0x52, 0xfd, 0x7c, 0x55, 0xbb, 0x27, 0xdf, 0x42, 0x0f, 0x2a, 0x00, 0xae, 0x84, 0x8a, 0xba, 0xd9, 0xc0, @@ -71368,23 +71608,23 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xf6, 0xb6, 0xd1, 0xe9, 0x18, 0x96, 0x49, 0x17, 0xe4, 0x66, 0x6e, 0x79, 0xa4, 0x2f, 0x71, 0xb2, 0x76, 0x39, 0xbb, 0xaa, 0xdb, 0x8e, 0xd1, 0x30, 0xda, 0xba, 0xe9, 0xac, 0x06, 0x99, 0x35, 0xfe, 0x4f, 0xf4, 0xa2, 0x98, 0xd3, 0x1a, 0xb1, 0x26, 0x21, 0x2a, 0xf1, 0xfb, 0x31, 0xa6, 0x24, 0x91, - 0x04, 0xe3, 0xa9, 0xc5, 0xc7, 0x13, 0x55, 0x8b, 0x1e, 0x78, 0x6f, 0xaa, 0x57, 0xc0, 0x89, 0x72, + 0x04, 0xe3, 0xa9, 0xc5, 0x27, 0x12, 0x55, 0x8b, 0x1e, 0x78, 0x6f, 0xaa, 0x57, 0xc0, 0x89, 0x72, 0xa5, 0x58, 0xd5, 0xb4, 0x52, 0xb1, 0xbe, 0xbe, 0x5a, 0xd2, 0x56, 0xca, 0xb5, 0x5a, 0xb9, 0x5a, - 0xa9, 0x1d, 0xa4, 0xb5, 0xa3, 0x4f, 0x29, 0xbe, 0xc6, 0xcc, 0xe3, 0x46, 0xcb, 0x30, 0x31, 0xba, + 0xa9, 0x1d, 0xa4, 0xb5, 0xa3, 0x4f, 0x2b, 0xbe, 0xc6, 0xcc, 0xe3, 0x46, 0xcb, 0x30, 0x31, 0xba, 0xf3, 0x80, 0x0a, 0x23, 0xae, 0xfa, 0xc8, 0xe3, 0xcc, 0xca, 0x0f, 0xc1, 0xf9, 0xb5, 0xf1, 0x71, - 0xee, 0x4d, 0xf0, 0x3f, 0x70, 0xf3, 0xff, 0x8a, 0x02, 0xc7, 0xb8, 0x86, 0xa8, 0xe1, 0xed, 0xa1, + 0xee, 0x4d, 0xf0, 0x3f, 0x70, 0xf3, 0xff, 0xaa, 0x02, 0xc7, 0xb8, 0x86, 0xa8, 0xe1, 0xed, 0xa1, 0xad, 0xe4, 0xfd, 0x12, 0xdf, 0x76, 0xcb, 0x22, 0xa6, 0xbd, 0xac, 0xe9, 0x7d, 0x6c, 0x84, 0xc0, 0xfa, 0x66, 0x1f, 0xd6, 0x65, 0x01, 0xd6, 0x27, 0x0e, 0x40, 0x33, 0x1e, 0xb2, 0xbf, 0x97, 0x28, 0xb2, 0x57, 0xc0, 0x89, 0xd5, 0x82, 0x56, 0x2f, 0x17, 0xcb, 0xab, 0x05, 0x77, 0x1c, 0xe5, 0x86, - 0xec, 0x10, 0x73, 0x5d, 0x04, 0xbd, 0x27, 0xbe, 0x1f, 0xca, 0xc0, 0x55, 0xbd, 0x3b, 0xda, 0xe2, + 0xec, 0x10, 0x73, 0x5d, 0x04, 0xbd, 0x27, 0xbe, 0x1f, 0xce, 0xc0, 0x55, 0xbd, 0x3b, 0xda, 0xe2, 0x96, 0x6e, 0x6e, 0x62, 0x64, 0xc8, 0x40, 0x3d, 0x0f, 0x63, 0x0d, 0x92, 0x9d, 0xe2, 0xcc, 0x6f, 0xdd, 0x44, 0xf4, 0xe5, 0xb4, 0x04, 0xcd, 0xfb, 0x15, 0xbd, 0x93, 0x57, 0x88, 0xba, 0xa8, 0x10, - 0x4f, 0x8e, 0x06, 0x6f, 0x1f, 0xdf, 0x21, 0xba, 0xf1, 0x19, 0x5f, 0x37, 0xce, 0x0b, 0xba, 0x51, - 0x3c, 0x18, 0xf9, 0x78, 0x6a, 0xf2, 0x27, 0x0f, 0x87, 0x0e, 0x20, 0x54, 0x9b, 0x8c, 0xf0, 0x51, + 0x4f, 0x8e, 0x06, 0x6f, 0x1f, 0xdf, 0x21, 0xba, 0xf1, 0x59, 0x5f, 0x37, 0xce, 0x0b, 0xba, 0x51, + 0x3c, 0x18, 0xf9, 0x78, 0x6a, 0xf2, 0xc7, 0x0f, 0x87, 0x0e, 0x20, 0x54, 0x9b, 0x8c, 0xf0, 0x51, 0xa1, 0x67, 0x77, 0xff, 0x6a, 0x05, 0x72, 0xf3, 0xb8, 0x85, 0x65, 0x57, 0x22, 0xbf, 0x9b, 0x96, 0xdd, 0x10, 0xa1, 0x30, 0x50, 0xda, 0xe1, 0xab, 0x23, 0x8e, 0xb1, 0x8d, 0x3b, 0x8e, 0xbe, 0xdd, 0x26, 0xa2, 0x56, 0xb4, 0x20, 0x01, 0xfd, 0x72, 0x5a, 0x66, 0xbb, 0x24, 0xa2, 0x98, 0xff, 0x18, - 0x6b, 0x8a, 0x9f, 0x4b, 0xc3, 0x78, 0x0d, 0x3b, 0x55, 0xbb, 0x89, 0x6d, 0x54, 0x0b, 0x30, 0xba, + 0x6b, 0x8a, 0x9f, 0x4f, 0xc3, 0x78, 0x0d, 0x3b, 0x55, 0xbb, 0x89, 0x6d, 0x54, 0x0b, 0x30, 0xba, 0x06, 0x26, 0x09, 0x28, 0xee, 0x34, 0xd3, 0xc7, 0x89, 0x4f, 0x52, 0xaf, 0x87, 0x19, 0xff, 0x95, 0xfc, 0xce, 0xba, 0xf1, 0xae, 0x54, 0xf4, 0xbd, 0x94, 0xec, 0x2e, 0x2e, 0x5b, 0x32, 0x64, 0xdc, 0x84, 0xb4, 0x52, 0xb9, 0x1d, 0xd9, 0x48, 0x52, 0xc9, 0x6f, 0x74, 0xbd, 0x3d, 0x0d, 0xb0, 0x66, @@ -71393,27 +71633,27 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x6f, 0xb5, 0xb0, 0x83, 0xbe, 0x99, 0x86, 0x5c, 0xd1, 0xc6, 0xba, 0x83, 0x79, 0xd1, 0x21, 0x18, 0xb7, 0x2d, 0xcb, 0x59, 0xd5, 0x9d, 0x2d, 0x26, 0x37, 0xff, 0x9d, 0x39, 0x0c, 0xfc, 0x2e, 0xdf, 0x7d, 0xdc, 0x29, 0x8a, 0xee, 0xa7, 0x85, 0xda, 0xd2, 0x82, 0x66, 0x69, 0x21, 0x21, 0xfd, 0x07, - 0x82, 0xf1, 0x6d, 0x13, 0x6f, 0x5b, 0xa6, 0xd1, 0xf0, 0x6c, 0x4e, 0xef, 0x1d, 0x7d, 0xc4, 0x97, + 0x82, 0xf1, 0x6d, 0x13, 0x6f, 0x5b, 0xa6, 0xd1, 0xf0, 0x6c, 0x4e, 0xef, 0x1d, 0x7d, 0xd4, 0x97, 0xe9, 0x9c, 0x20, 0xd3, 0x59, 0xe9, 0x52, 0xe2, 0x09, 0xb4, 0x36, 0x40, 0xef, 0x71, 0x35, 0x5c, 0x49, 0x3b, 0x83, 0xf5, 0x7a, 0x75, 0xbd, 0xa8, 0x95, 0x0a, 0xf5, 0xd2, 0xfa, 0x72, 0xb5, 0x58, 0x58, 0x5e, 0xd7, 0x4a, 0xab, 0xd5, 0x3c, 0x46, 0x7f, 0x9f, 0x76, 0x85, 0xdb, 0xb0, 0x76, 0xb1, 0x8d, 0x16, 0xa5, 0xe4, 0x1c, 0x25, 0x13, 0x86, 0xc1, 0xaf, 0x4b, 0x3b, 0x6d, 0x30, 0xe9, 0x30, - 0x0e, 0x42, 0x94, 0xf7, 0xa3, 0x52, 0xcd, 0x3d, 0x92, 0xd4, 0xc3, 0x40, 0xd2, 0xff, 0x33, 0x0d, + 0x0e, 0x42, 0x94, 0xf7, 0x63, 0x52, 0xcd, 0x3d, 0x92, 0xd4, 0xc3, 0x40, 0xd2, 0xff, 0x33, 0x0d, 0x63, 0x45, 0xcb, 0xdc, 0xc5, 0xb6, 0xc3, 0xcf, 0x77, 0x78, 0x69, 0xa6, 0x44, 0x69, 0xba, 0x83, 0x24, 0x36, 0x1d, 0xdb, 0x6a, 0x7b, 0x13, 0x1e, 0xef, 0x15, 0xbd, 0x31, 0xae, 0x84, 0x59, 0xc9, 0xe1, 0x0b, 0x9f, 0xbd, 0x0b, 0x12, 0xd8, 0x53, 0xba, 0x1a, 0xc0, 0x83, 0x71, 0x70, 0xe9, 0xcd, - 0x40, 0xf2, 0x5d, 0xca, 0x57, 0x15, 0x98, 0xa6, 0x8d, 0xaf, 0x86, 0x89, 0x85, 0x86, 0xaa, 0xfc, + 0x40, 0xf2, 0x5d, 0xca, 0xd7, 0x14, 0x98, 0xa6, 0x8d, 0xaf, 0x86, 0x89, 0x85, 0x86, 0xaa, 0xfc, 0x92, 0x63, 0x97, 0xf0, 0x97, 0x8e, 0x08, 0xe2, 0xcf, 0xe9, 0xed, 0xb6, 0xbf, 0xfc, 0xbc, 0x74, 0x44, 0x63, 0xef, 0x54, 0xcd, 0xe7, 0x72, 0x90, 0xd1, 0x77, 0x9c, 0x2d, 0xf4, 0x23, 0xe9, 0xc9, 0xa7, 0xd0, 0x19, 0x30, 0x7e, 0x42, 0x20, 0x39, 0x0e, 0x59, 0xc7, 0xba, 0x88, 0x3d, 0x39, 0xd0, 0x17, 0x17, 0x0e, 0xbd, 0xdd, 0xae, 0x93, 0x0f, 0x0c, 0x0e, 0xef, 0xdd, 0xb5, 0x75, 0xf4, 0x46, - 0xc3, 0xda, 0x31, 0x9d, 0xb2, 0xb7, 0x04, 0x1d, 0x24, 0xa0, 0x2f, 0xa6, 0x64, 0x26, 0xb3, 0x12, + 0xc3, 0xda, 0x31, 0x9d, 0xb2, 0xb7, 0x04, 0x1d, 0x24, 0xa0, 0x2f, 0xa5, 0x64, 0x26, 0xb3, 0x12, 0x0c, 0xc6, 0x83, 0xec, 0xc2, 0x00, 0x4d, 0x69, 0x16, 0x6e, 0x2c, 0xac, 0xae, 0xae, 0xd7, 0xab, 0xf7, 0x94, 0x2a, 0x81, 0xe1, 0xb9, 0x5e, 0xae, 0xac, 0xd7, 0x97, 0x4a, 0xeb, 0xc5, 0x35, 0x8d, 0xac, 0x13, 0x16, 0x8a, 0xc5, 0xea, 0x5a, 0xa5, 0x9e, 0xc7, 0xe8, 0x2d, 0x69, 0x98, 0x2a, 0xb6, 0xac, 0x8e, 0x8f, 0xf0, 0xd5, 0x01, 0xc2, 0xbe, 0x18, 0x53, 0x9c, 0x18, 0xd1, 0xbf, 0xa6, 0x64, 0x9d, 0x0e, 0x3c, 0x81, 0x70, 0xe4, 0x43, 0x7a, 0xa9, 0x37, 0x4a, 0x39, 0x1d, 0xf4, 0xa7, 0x97, - 0x7c, 0x93, 0xf8, 0xdc, 0x6d, 0x30, 0x56, 0xa0, 0x8a, 0x81, 0xfe, 0x36, 0x05, 0xb9, 0xa2, 0x65, + 0x7c, 0x93, 0xf8, 0xfc, 0x6d, 0x30, 0x56, 0xa0, 0x8a, 0x81, 0xfe, 0x26, 0x05, 0xb9, 0xa2, 0x65, 0x6e, 0x18, 0x9b, 0xae, 0x31, 0x87, 0x4d, 0xfd, 0x42, 0x0b, 0xcf, 0xeb, 0x8e, 0xbe, 0x6b, 0xe0, 0x4b, 0xa4, 0x02, 0xe3, 0x5a, 0x57, 0xaa, 0xcb, 0x14, 0x4b, 0xc1, 0x17, 0x76, 0x36, 0x09, 0x53, 0xe3, 0x1a, 0x9f, 0xa4, 0x3e, 0x11, 0x2e, 0xa7, 0xaf, 0xab, 0x36, 0xb6, 0x71, 0x0b, 0xeb, 0x1d, @@ -71433,7 +71673,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xc6, 0x3a, 0xca, 0x71, 0xc8, 0x51, 0xf1, 0xa1, 0x17, 0x66, 0xa5, 0xdd, 0x39, 0x59, 0x85, 0x22, 0xcd, 0xb3, 0x9b, 0x61, 0x8c, 0xf5, 0x70, 0x04, 0xa8, 0xc9, 0x5b, 0x4e, 0x76, 0xad, 0x2b, 0x30, 0x2a, 0x9a, 0x97, 0x4d, 0x7d, 0x1c, 0xe4, 0x1a, 0xa4, 0x5a, 0x04, 0xb3, 0xc9, 0x5b, 0xae, 0xec, - 0x5d, 0x28, 0xc9, 0xa2, 0xb1, 0xac, 0xe8, 0x4b, 0x8a, 0x94, 0x07, 0x68, 0x14, 0xc7, 0xf1, 0x5a, + 0x5d, 0x28, 0xc9, 0xa2, 0xb1, 0xac, 0xe8, 0xcb, 0x8a, 0x94, 0x07, 0x68, 0x14, 0xc7, 0xf1, 0x5a, 0xf5, 0xb7, 0xd3, 0x03, 0x74, 0x9b, 0x37, 0xc1, 0x0d, 0xac, 0x4f, 0x64, 0xf6, 0xc7, 0xfc, 0xfa, 0xdc, 0x9a, 0x37, 0x19, 0x74, 0xad, 0x92, 0x5a, 0xbd, 0xa0, 0xb9, 0x33, 0xf9, 0x79, 0x77, 0x12, 0x79, 0x23, 0x5c, 0xdf, 0x27, 0x77, 0xa9, 0xbe, 0x5e, 0x29, 0xac, 0x94, 0xf2, 0x1b, 0xa2, 0x6d, @@ -71441,21 +71681,21 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x64, 0x90, 0xe1, 0xbc, 0x56, 0xae, 0x97, 0xd6, 0x8b, 0xd5, 0xca, 0x42, 0x79, 0x31, 0x6f, 0xf4, 0x33, 0x8c, 0xee, 0x53, 0xaf, 0x81, 0xab, 0x04, 0x4e, 0xca, 0xd5, 0x8a, 0x3b, 0xb3, 0x2d, 0x16, 0x2a, 0xc5, 0x92, 0x3b, 0x8d, 0xbd, 0xa8, 0x22, 0x38, 0x41, 0xc9, 0xad, 0x2f, 0x94, 0x97, 0xf9, - 0xcd, 0xa8, 0x4f, 0xa6, 0xd4, 0x53, 0x70, 0x19, 0xff, 0xad, 0x5c, 0x39, 0x57, 0x58, 0x2e, 0xcf, - 0xe7, 0xff, 0x38, 0xa5, 0x5e, 0x07, 0x57, 0x0b, 0x7f, 0xd1, 0x7d, 0xa5, 0xf5, 0xf2, 0xfc, 0xfa, - 0x4a, 0xb9, 0xb6, 0x52, 0xa8, 0x17, 0x97, 0xf2, 0x9f, 0x22, 0xf3, 0x05, 0xdf, 0x00, 0xe6, 0xdc, - 0x32, 0x5f, 0xc2, 0x8f, 0xe9, 0x05, 0x51, 0x51, 0x1f, 0xdd, 0x13, 0xf6, 0x68, 0x1b, 0xf6, 0xe3, + 0xcd, 0xa8, 0x4f, 0xa5, 0xd4, 0x53, 0x70, 0x19, 0xff, 0xad, 0x5c, 0x39, 0x57, 0x58, 0x2e, 0xcf, + 0xe7, 0xff, 0x28, 0xa5, 0x5e, 0x07, 0x57, 0x0b, 0x7f, 0xd1, 0x7d, 0xa5, 0xf5, 0xf2, 0xfc, 0xfa, + 0x4a, 0xb9, 0xb6, 0x52, 0xa8, 0x17, 0x97, 0xf2, 0x9f, 0x26, 0xf3, 0x05, 0xdf, 0x00, 0xe6, 0xdc, + 0x32, 0x5f, 0xc2, 0x8f, 0xe9, 0x05, 0x51, 0x51, 0x1f, 0xdd, 0x13, 0xf6, 0x68, 0x1b, 0xf6, 0x13, 0xfe, 0xe8, 0x30, 0x2f, 0xa8, 0xd0, 0xcd, 0x31, 0x68, 0xc5, 0xd3, 0xa1, 0xfa, 0x00, 0x2a, 0x74, 0x0d, 0x5c, 0x55, 0x29, 0x51, 0xa4, 0xb4, 0x52, 0xb1, 0x7a, 0xae, 0xa4, 0xad, 0x9f, 0x2f, 0x2c, 0x2f, 0x97, 0xea, 0xeb, 0x0b, 0x65, 0xad, 0x56, 0xcf, 0x6f, 0xa0, 0x7f, 0x4e, 0xfb, 0xab, 0x39, - 0x9c, 0xb4, 0xfe, 0x36, 0x1d, 0xb7, 0x59, 0x47, 0xae, 0xda, 0xfc, 0x0c, 0xe4, 0x3a, 0x8e, 0xee, + 0x9c, 0xb4, 0xfe, 0x26, 0x1d, 0xb7, 0x59, 0x47, 0xae, 0xda, 0xfc, 0x0c, 0xe4, 0x3a, 0x8e, 0xee, 0xec, 0x74, 0x58, 0xab, 0x7e, 0x44, 0xef, 0x56, 0x3d, 0x5b, 0x23, 0x99, 0x34, 0x96, 0x19, 0x7d, - 0x29, 0x15, 0xa7, 0x99, 0x0e, 0x61, 0x41, 0xc7, 0x18, 0x40, 0xc4, 0xa7, 0x01, 0x79, 0xda, 0x5e, + 0x39, 0x15, 0xa7, 0x99, 0x0e, 0x61, 0x41, 0xc7, 0x18, 0x40, 0xc4, 0xa7, 0x01, 0x79, 0xda, 0x5e, 0xae, 0xad, 0x17, 0x96, 0xb5, 0x52, 0x61, 0xfe, 0x5e, 0x7f, 0x19, 0x07, 0xab, 0x27, 0xe0, 0xd8, 0x5a, 0xa5, 0x30, 0xb7, 0x5c, 0x22, 0xcd, 0xa5, 0x5a, 0xa9, 0x94, 0x8a, 0xae, 0xdc, 0x7f, 0x99, 0x6c, 0x9a, 0xb8, 0x16, 0x34, 0xe1, 0xdb, 0xb5, 0x72, 0x38, 0xf9, 0x7f, 0x4b, 0xda, 0xb7, 0x28, - 0xd0, 0x30, 0x9e, 0xd6, 0x70, 0x71, 0xf8, 0xa2, 0x94, 0x3b, 0x91, 0x14, 0x27, 0xf1, 0xf0, 0xf8, - 0x85, 0x01, 0xf0, 0x38, 0x01, 0xc7, 0x78, 0x3c, 0x88, 0x5b, 0x51, 0x38, 0x0c, 0x5f, 0x1b, 0x87, + 0xd0, 0x30, 0x9e, 0xd6, 0x70, 0x71, 0xf8, 0x92, 0x94, 0x3b, 0x91, 0x14, 0x27, 0xf1, 0xf0, 0xf8, + 0x85, 0x01, 0xf0, 0x38, 0x01, 0xc7, 0x78, 0x3c, 0x88, 0x5b, 0x51, 0x38, 0x0c, 0x5f, 0x1f, 0x87, 0x5c, 0x0d, 0xb7, 0x70, 0xc3, 0x41, 0x6f, 0xe3, 0x8c, 0x89, 0x19, 0x48, 0xfb, 0x6e, 0x2c, 0x69, 0xa3, 0x29, 0x4c, 0x9f, 0xd3, 0x5d, 0xd3, 0xe7, 0x08, 0x33, 0x40, 0x89, 0x65, 0x06, 0x64, 0x12, 0x30, 0x03, 0xb2, 0x83, 0x9b, 0x01, 0xb9, 0x7e, 0x66, 0x00, 0x7a, 0x7d, 0x2e, 0x6e, 0x2f, 0x41, @@ -71473,19 +71713,19 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x49, 0xab, 0x95, 0xab, 0x95, 0xbc, 0xe9, 0x56, 0x99, 0x6b, 0xff, 0x5e, 0x3f, 0x6c, 0xa9, 0x57, 0xc1, 0x29, 0x2f, 0x7d, 0xb9, 0xea, 0x0a, 0x9a, 0xb3, 0x48, 0xda, 0x89, 0x5a, 0x24, 0xff, 0x92, 0x86, 0x4c, 0xcd, 0xb1, 0xda, 0xe8, 0xa7, 0x83, 0x0e, 0xe6, 0x34, 0x80, 0x4d, 0xf6, 0x1f, 0xdd, - 0x59, 0x18, 0x9b, 0x97, 0x71, 0x29, 0xe8, 0x8f, 0xa4, 0x37, 0x4d, 0x82, 0x3e, 0xdb, 0x6a, 0x87, + 0x59, 0x18, 0x9b, 0x97, 0x71, 0x29, 0xe8, 0x0f, 0xa5, 0x37, 0x4d, 0x82, 0x3e, 0xdb, 0x6a, 0x87, 0xd8, 0x2a, 0x3f, 0x94, 0x3b, 0x45, 0x12, 0x4e, 0x28, 0x9e, 0xbe, 0xff, 0xca, 0x20, 0xdb, 0x22, 0x08, 0x4e, 0x72, 0xb0, 0xb9, 0xf2, 0xf7, 0x54, 0x02, 0xab, 0x97, 0xc3, 0x65, 0x5d, 0xca, 0x45, 0x74, 0x6a, 0x43, 0xfd, 0x29, 0x78, 0x04, 0xa7, 0xde, 0xa5, 0x95, 0xea, 0xb9, 0x92, 0xaf, 0xc8, - 0xf3, 0x85, 0x7a, 0x21, 0xbf, 0x89, 0x3e, 0xa7, 0x40, 0x66, 0xc5, 0xda, 0xed, 0xde, 0xab, 0x32, + 0xf3, 0x85, 0x7a, 0x21, 0xbf, 0x89, 0x3e, 0xaf, 0x40, 0x66, 0xc5, 0xda, 0xed, 0xde, 0xab, 0x32, 0xf1, 0x25, 0x6e, 0x2d, 0xd4, 0x7b, 0x15, 0xbd, 0xe6, 0xa5, 0xc4, 0xbe, 0x12, 0xbe, 0x2f, 0xfd, - 0xc5, 0x74, 0x1c, 0xb1, 0xaf, 0x1c, 0x74, 0x33, 0xfa, 0x1f, 0x06, 0x11, 0x7b, 0x88, 0x68, 0xb1, + 0xa5, 0x74, 0x1c, 0xb1, 0xaf, 0x1c, 0x74, 0x33, 0xfa, 0x1f, 0x06, 0x11, 0x7b, 0x88, 0x68, 0xb1, 0x7a, 0x06, 0x4e, 0x07, 0x1f, 0xca, 0xf3, 0xa5, 0x4a, 0xbd, 0xbc, 0x70, 0x6f, 0x20, 0xdc, 0xb2, 0x26, 0x25, 0xfe, 0x7e, 0xdd, 0x58, 0xf4, 0x4c, 0xe3, 0x14, 0x1c, 0x0f, 0xbe, 0x2d, 0x96, 0xea, 0xde, 0x97, 0xfb, 0xd0, 0x03, 0x59, 0x98, 0xa2, 0xdd, 0xfa, 0x5a, 0xbb, 0xa9, 0x3b, 0x18, 0x3d, 0x2e, 0x40, 0xf7, 0x06, 0x38, 0x5a, 0x5e, 0x5d, 0xa8, 0xd5, 0x1c, 0xcb, 0xd6, 0x37, 0x71, 0xa1, 0xd9, 0xb4, 0x99, 0xb4, 0xba, 0x93, 0xd1, 0xbb, 0xa5, 0xd7, 0xf9, 0xc4, 0xa1, 0x84, 0x96, 0x19, - 0x82, 0xfa, 0x57, 0xa5, 0xd6, 0xe5, 0x24, 0x08, 0xc6, 0x43, 0xff, 0xbe, 0x21, 0xb7, 0xb9, 0x70, + 0x82, 0xfa, 0xd7, 0xa4, 0xd6, 0xe5, 0x24, 0x08, 0xc6, 0x43, 0xff, 0xbe, 0x21, 0xb7, 0xb9, 0x70, 0x5c, 0x36, 0xce, 0x3c, 0x27, 0x0d, 0x13, 0x75, 0x63, 0x1b, 0x3f, 0xc3, 0x32, 0x71, 0x47, 0x1d, 0x03, 0x65, 0x71, 0xa5, 0x9e, 0x3f, 0xe2, 0x3e, 0xb8, 0x46, 0x55, 0x8a, 0x3c, 0x94, 0xdc, 0x02, 0xdc, 0x87, 0x42, 0x3d, 0xaf, 0xb8, 0x0f, 0x2b, 0xa5, 0x7a, 0x3e, 0xe3, 0x3e, 0x54, 0x4a, 0xf5, @@ -71503,16 +71743,16 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x38, 0xbd, 0xc5, 0x28, 0x25, 0x58, 0x8c, 0x62, 0x16, 0xd9, 0x3f, 0xf1, 0x1a, 0x2d, 0xac, 0x1f, 0xa7, 0xba, 0xd6, 0x8f, 0xdd, 0x66, 0xd2, 0xc6, 0x76, 0xc7, 0x32, 0xf5, 0x56, 0x8d, 0x6d, 0xdc, 0xd3, 0x55, 0xaf, 0xee, 0x64, 0xf5, 0x29, 0x5e, 0xcb, 0xa0, 0x56, 0xd9, 0x93, 0xa2, 0x66, 0xb8, - 0xdd, 0xd5, 0x0c, 0x69, 0x24, 0x9f, 0xf2, 0x1b, 0x49, 0x5d, 0x68, 0x24, 0x77, 0x1d, 0x80, 0x76, - 0xbc, 0xf6, 0x52, 0x1e, 0x6c, 0x6a, 0x11, 0xb8, 0xb5, 0x7a, 0xcb, 0xd5, 0x0a, 0xfa, 0x5c, 0x1a, + 0xdd, 0xd5, 0x0c, 0x69, 0x24, 0x9f, 0xf6, 0x1b, 0x49, 0x5d, 0x68, 0x24, 0x77, 0x1d, 0x80, 0x76, + 0xbc, 0xf6, 0x52, 0x1e, 0x6c, 0x6a, 0x11, 0xb8, 0xb5, 0x7a, 0xcb, 0xd5, 0x0a, 0xfa, 0x7c, 0x1a, 0x4e, 0x96, 0xcc, 0x5e, 0x16, 0x3e, 0xaf, 0x0b, 0x6f, 0xe1, 0xa1, 0x59, 0x15, 0x45, 0x7a, 0x5b, - 0xcf, 0x6a, 0xf7, 0xa6, 0x19, 0x22, 0xd1, 0x4f, 0xfb, 0x12, 0xad, 0x09, 0x12, 0xbd, 0x73, 0x70, + 0xcf, 0x6a, 0xf7, 0xa6, 0x19, 0x22, 0xd1, 0xcf, 0xf8, 0x12, 0xad, 0x09, 0x12, 0xbd, 0x73, 0x70, 0xd2, 0xf1, 0x04, 0x5a, 0x19, 0x6a, 0x07, 0x94, 0x41, 0xdf, 0xce, 0xc0, 0x23, 0xa8, 0xef, 0x0d, 0xe3, 0x90, 0xb6, 0xb2, 0x82, 0xd9, 0xd4, 0x70, 0xc7, 0xd1, 0x6d, 0x47, 0x38, 0x0f, 0xdd, 0x35, 0x95, 0x4a, 0x25, 0x30, 0x95, 0x4a, 0xf7, 0x9d, 0x4a, 0xa1, 0x77, 0xf1, 0xe6, 0xc3, 0x79, 0x11, 0xe3, 0x42, 0xef, 0xfe, 0x3f, 0xaa, 0x86, 0x61, 0x50, 0xfb, 0x76, 0xc5, 0xcf, 0x09, 0x50, 0x2f, - 0x1c, 0xb8, 0x84, 0x78, 0x88, 0xff, 0xd1, 0x70, 0xed, 0xbc, 0x0c, 0xff, 0x4d, 0x34, 0x4a, 0xf2, - 0xcd, 0x44, 0x0d, 0xf4, 0xcf, 0x8c, 0xc1, 0x04, 0x69, 0x0b, 0xcb, 0x86, 0x79, 0x11, 0x3d, 0xa8, + 0x1c, 0xb8, 0x84, 0x78, 0x88, 0xff, 0xe1, 0x70, 0xed, 0xbc, 0x0c, 0xff, 0x4d, 0x34, 0x4a, 0xf2, + 0xcd, 0x44, 0x0d, 0xf4, 0xcf, 0x8e, 0xc1, 0x04, 0x69, 0x0b, 0xcb, 0x86, 0x79, 0x11, 0x3d, 0xa8, 0xc0, 0x54, 0x05, 0x5f, 0x2a, 0x6e, 0xe9, 0xad, 0x16, 0x36, 0x37, 0x31, 0x6f, 0xb6, 0x9f, 0x82, 0x31, 0xbd, 0xdd, 0xae, 0x04, 0xfb, 0x0c, 0xde, 0x2b, 0xeb, 0x7f, 0xbf, 0xd5, 0xb3, 0x91, 0xa7, 0x22, 0x1a, 0xb9, 0x5f, 0xee, 0x2c, 0x5f, 0x66, 0xc8, 0x0c, 0xf9, 0x1a, 0x98, 0x6c, 0x78, 0x59, @@ -71520,7 +71760,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xd9, 0x0e, 0x39, 0x01, 0xc7, 0xea, 0xd5, 0xea, 0xfa, 0x4a, 0xa1, 0x72, 0x6f, 0x70, 0x5e, 0x79, 0x03, 0xbd, 0x32, 0x03, 0x33, 0x35, 0xab, 0xb5, 0x8b, 0x03, 0x98, 0xca, 0x82, 0x43, 0x0e, 0x2f, 0xa7, 0xd4, 0x3e, 0x39, 0xa9, 0x27, 0x21, 0xa7, 0x9b, 0x9d, 0x4b, 0xd8, 0xb3, 0x0d, 0xd9, 0x1b, - 0x83, 0xf1, 0x43, 0x7c, 0x3b, 0xd6, 0x44, 0x18, 0x6f, 0xef, 0x23, 0x49, 0x91, 0xab, 0x10, 0x20, + 0x83, 0xf1, 0xc3, 0x7c, 0x3b, 0xd6, 0x44, 0x18, 0x6f, 0xef, 0x23, 0x49, 0x91, 0xab, 0x10, 0x20, 0xcf, 0xc0, 0x54, 0x87, 0x6e, 0x16, 0xd6, 0xb9, 0x3d, 0x61, 0x21, 0x8d, 0xb0, 0x48, 0x77, 0xab, 0x15, 0xc6, 0x22, 0x79, 0x43, 0x0f, 0xfa, 0xcd, 0x7f, 0x4d, 0x80, 0xb8, 0x70, 0x10, 0xc6, 0xe2, 0x81, 0xfc, 0xea, 0x61, 0xcf, 0xf0, 0x4e, 0xc1, 0x71, 0xd6, 0x6a, 0xd7, 0x8b, 0x4b, 0x85, 0xe5, @@ -71534,7 +71774,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xdc, 0x41, 0x4b, 0xe7, 0x92, 0xd0, 0x7f, 0x93, 0xdb, 0xff, 0xef, 0x5f, 0x64, 0xf2, 0xfb, 0xd3, 0x6f, 0x4b, 0x43, 0x6e, 0x11, 0x3b, 0x85, 0x56, 0x8b, 0x97, 0xdb, 0x4b, 0xa5, 0x4f, 0xf6, 0x08, 0x95, 0x28, 0xb4, 0x5a, 0xe1, 0x8d, 0x8a, 0x13, 0x90, 0xe7, 0x81, 0x2e, 0xa4, 0x49, 0xfa, 0xcd, - 0xf5, 0x29, 0x30, 0x79, 0x89, 0x7d, 0x44, 0xf1, 0xf7, 0xb8, 0x1f, 0xe2, 0xac, 0x9c, 0xc7, 0x06, + 0xf5, 0x29, 0x30, 0x79, 0x89, 0x7d, 0x54, 0xf1, 0xf7, 0xb8, 0x1f, 0xe2, 0xac, 0x9c, 0xc7, 0x06, 0x31, 0x6d, 0x52, 0xd1, 0x7b, 0xe5, 0x5e, 0x3e, 0xf5, 0x1e, 0x18, 0xdb, 0xe9, 0xe0, 0xa2, 0xde, 0xc1, 0x84, 0xb7, 0xee, 0x9a, 0x56, 0x2f, 0xdc, 0x87, 0x1b, 0xce, 0x6c, 0x79, 0xdb, 0x35, 0xa8, 0xd7, 0x68, 0x46, 0x3f, 0x4c, 0x0c, 0x7b, 0xd7, 0x3c, 0x0a, 0xee, 0xa4, 0xe4, 0x92, 0xe1, 0x6c, @@ -71550,10 +71790,10 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x4d, 0x41, 0x06, 0x9b, 0xab, 0x60, 0xc2, 0x13, 0x8d, 0xdb, 0xe5, 0xb9, 0xfd, 0x79, 0x90, 0x80, 0x5e, 0xc7, 0xa3, 0x73, 0xb7, 0x88, 0xce, 0xe3, 0xa3, 0x6b, 0xcf, 0xb8, 0x08, 0x3f, 0x65, 0x10, 0x14, 0x9b, 0xee, 0x2e, 0xf6, 0x77, 0x7d, 0x81, 0xaf, 0x08, 0x02, 0xbf, 0x75, 0x90, 0x22, 0x93, - 0x17, 0xfa, 0xe7, 0xd3, 0x00, 0x6e, 0xd9, 0xec, 0x28, 0xd7, 0xa3, 0x84, 0x03, 0xda, 0x11, 0xd2, + 0x17, 0xfa, 0x17, 0xd2, 0x00, 0x6e, 0xd9, 0xec, 0x28, 0xd7, 0xa3, 0x84, 0x03, 0xda, 0x11, 0xd2, 0x7d, 0x25, 0x2f, 0xdd, 0x15, 0x51, 0xba, 0x3f, 0xdb, 0xbf, 0xaa, 0x51, 0x47, 0xb6, 0xd4, 0x3c, 0x28, 0x86, 0x2f, 0x5a, 0xf7, 0x11, 0xbd, 0xcd, 0x17, 0xea, 0xaa, 0x20, 0xd4, 0xdb, 0x07, 0x2c, - 0x29, 0x79, 0xb9, 0xfe, 0x75, 0x1a, 0xc6, 0x6a, 0xd8, 0x71, 0xbb, 0x49, 0x74, 0x4e, 0xa6, 0x87, + 0x29, 0x79, 0xb9, 0xfe, 0x55, 0x1a, 0xc6, 0x6a, 0xd8, 0x71, 0xbb, 0x49, 0x74, 0x4e, 0xa6, 0x87, 0xe7, 0xda, 0x76, 0x5a, 0xb2, 0x6d, 0xff, 0x20, 0x25, 0x1b, 0xe8, 0x25, 0x90, 0x0c, 0xe3, 0x29, 0x64, 0xf1, 0xe0, 0x21, 0xa9, 0x40, 0x2f, 0xfd, 0xa8, 0x25, 0x2f, 0xdd, 0xb7, 0xa4, 0xfd, 0x8d, 0x79, 0xf1, 0xa4, 0x05, 0x6f, 0x16, 0xa7, 0xf6, 0x9b, 0xc5, 0xf2, 0x27, 0x2d, 0xf8, 0x3a, 0x86, @@ -71561,17 +71801,17 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x2c, 0xdf, 0x19, 0xbd, 0xb2, 0xdc, 0x7f, 0x6a, 0xf1, 0xde, 0x01, 0x4c, 0xb9, 0xa8, 0xe5, 0x5e, 0x9f, 0x8d, 0x34, 0xc7, 0xc6, 0x4d, 0x90, 0x25, 0x91, 0x28, 0xd9, 0x38, 0x17, 0xec, 0xf5, 0x7b, 0x24, 0x4a, 0xee, 0x57, 0x8d, 0x66, 0x8a, 0x8d, 0xc2, 0x10, 0x56, 0x88, 0x07, 0x41, 0xe1, 0x5d, - 0x9f, 0x4b, 0xf9, 0x46, 0xc8, 0x7b, 0x33, 0xcc, 0xfc, 0xfb, 0x84, 0x18, 0x13, 0xa3, 0x61, 0x99, + 0x9f, 0x4f, 0xf9, 0x46, 0xc8, 0x7b, 0x33, 0xcc, 0xfc, 0xfb, 0xa4, 0x18, 0x13, 0xa3, 0x61, 0x99, 0x0e, 0xbe, 0x9f, 0x5b, 0x93, 0xf7, 0x13, 0x22, 0x2d, 0x83, 0x53, 0x30, 0xe6, 0xd8, 0xfc, 0x3a, 0xbd, 0xf7, 0xca, 0xf7, 0x38, 0x59, 0xb1, 0xc7, 0xa9, 0xc0, 0x19, 0xc3, 0x6c, 0xb4, 0x76, 0x9a, 0x58, 0xc3, 0x2d, 0xdd, 0xad, 0x55, 0xa7, 0xd0, 0x99, 0xc7, 0x6d, 0x6c, 0x36, 0xb1, 0xe9, 0x50, 0x3e, 0x3d, 0x9f, 0x5c, 0x89, 0x9c, 0xe8, 0x9b, 0xbc, 0x62, 0xdc, 0x21, 0x2a, 0xc6, 0xa3, 0x7a, 0xcd, 0x2b, 0x22, 0x8c, 0xd0, 0x5b, 0x01, 0x68, 0xdd, 0xce, 0x19, 0xf8, 0x12, 0xeb, 0x10, 0xaf, - 0xe8, 0x32, 0x45, 0xab, 0x7e, 0x06, 0x8d, 0xcb, 0x8c, 0xbe, 0xe2, 0x2b, 0xc3, 0x5d, 0x82, 0x32, + 0xe8, 0x32, 0x45, 0xab, 0x7e, 0x06, 0x8d, 0xcb, 0x8c, 0xbe, 0xea, 0x2b, 0xc3, 0x5d, 0x82, 0x32, 0xdc, 0x24, 0xc9, 0x42, 0x3c, 0x3d, 0x68, 0x0f, 0xb0, 0xd6, 0x31, 0x0d, 0x13, 0xc1, 0x0a, 0xa5, 0xa2, 0x5e, 0x01, 0x27, 0x3c, 0x9f, 0x87, 0x4a, 0xa9, 0x34, 0x5f, 0x5b, 0x5f, 0x5b, 0x5d, 0xd4, 0x0a, 0xf3, 0xa5, 0x3c, 0xa8, 0x2a, 0xcc, 0x54, 0xe7, 0xee, 0x2e, 0x15, 0xeb, 0xbe, 0xab, 0x42, - 0x06, 0xfd, 0x55, 0x1a, 0xb2, 0xc4, 0xa1, 0x1c, 0x3d, 0x6d, 0x48, 0x9a, 0xd3, 0x11, 0x76, 0x78, + 0x06, 0xfd, 0x65, 0x1a, 0xb2, 0xc4, 0xa1, 0x1c, 0x3d, 0x6d, 0x48, 0x9a, 0xd3, 0x11, 0x76, 0x78, 0xfc, 0x89, 0x94, 0x7c, 0xac, 0x4a, 0x26, 0x4c, 0xc2, 0xd5, 0x81, 0x62, 0x55, 0x46, 0x10, 0x4a, 0xbe, 0x79, 0xba, 0x4d, 0xb2, 0xb6, 0x65, 0x5d, 0xfa, 0x49, 0x6e, 0x92, 0x6e, 0xfd, 0x0f, 0xb9, 0x49, 0xf6, 0x60, 0x61, 0xe4, 0x4d, 0xb2, 0x47, 0xbb, 0x8b, 0x68, 0xa6, 0xe8, 0x99, 0x59, 0x7f, @@ -71583,21 +71823,21 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xaf, 0xd5, 0xf7, 0x39, 0x9a, 0xe9, 0xb7, 0x34, 0xa5, 0xab, 0xa5, 0xf9, 0xc6, 0x42, 0x46, 0xc2, 0x58, 0xe0, 0x51, 0xc9, 0x4a, 0x1a, 0xda, 0xaf, 0x95, 0x3a, 0xfb, 0x19, 0x55, 0x8d, 0x11, 0x4c, 0xe4, 0x14, 0x98, 0xa1, 0x45, 0xcf, 0x59, 0xd6, 0xc5, 0x6d, 0xdd, 0xbe, 0x88, 0xec, 0x03, 0xa9, - 0x62, 0xe4, 0x9a, 0x48, 0xe8, 0x42, 0xdf, 0xa7, 0x79, 0xd4, 0x17, 0x45, 0xd4, 0x1f, 0x1b, 0x2e, + 0x62, 0xe4, 0x9a, 0x48, 0xe8, 0x42, 0xdf, 0x67, 0x78, 0xd4, 0x17, 0x45, 0xd4, 0x1f, 0x1b, 0x2e, 0x2e, 0x8f, 0xe7, 0xd1, 0x2c, 0x8a, 0xbc, 0xc9, 0xc7, 0xf3, 0x6e, 0x01, 0xcf, 0x27, 0xc4, 0x66, - 0x30, 0x79, 0x5c, 0xff, 0xc4, 0xc7, 0xd5, 0xeb, 0xe8, 0xf9, 0xf9, 0xe4, 0x30, 0x71, 0x45, 0x5f, - 0x1d, 0x0c, 0x3b, 0x8f, 0xaf, 0x01, 0xb0, 0xcb, 0x83, 0x72, 0xd1, 0xdf, 0xc2, 0x72, 0x1f, 0xf9, + 0x30, 0x79, 0x5c, 0xff, 0xd8, 0xc7, 0xd5, 0xeb, 0xe8, 0xf9, 0xf9, 0xe4, 0x30, 0x71, 0x45, 0x5f, + 0x1b, 0x0c, 0x3b, 0x8f, 0xaf, 0x01, 0xb0, 0xcb, 0x83, 0x72, 0xd1, 0xdf, 0xc2, 0x72, 0x1f, 0xf9, 0x0a, 0x65, 0x92, 0x43, 0x33, 0x84, 0xe5, 0x91, 0xa0, 0x79, 0x5c, 0x64, 0xa1, 0xda, 0x4e, 0x14, - 0xd3, 0x2f, 0x4b, 0xaf, 0xd3, 0xf4, 0x14, 0x10, 0xe5, 0x6e, 0x34, 0xad, 0x52, 0x6e, 0x91, 0x47, + 0xd3, 0xaf, 0x48, 0xaf, 0xd3, 0xf4, 0x14, 0x10, 0xe5, 0x6e, 0x34, 0xad, 0x52, 0x6e, 0x91, 0x47, 0x9e, 0xcd, 0xe4, 0xd1, 0x7c, 0x41, 0x16, 0x26, 0xbc, 0xc3, 0xb3, 0x24, 0xb6, 0xbb, 0x8f, 0xe1, 0x49, 0xc8, 0x75, 0xac, 0x1d, 0xbb, 0x81, 0xd9, 0xca, 0x19, 0x7b, 0x1b, 0x60, 0x95, 0xa7, 0xef, 0x78, 0xbe, 0xcf, 0x64, 0xc8, 0xc4, 0x36, 0x19, 0xc2, 0x0d, 0xd2, 0xa8, 0x01, 0xfe, 0x85, 0xd2, - 0x01, 0x39, 0x05, 0xcc, 0x6a, 0xd8, 0x79, 0x38, 0x8e, 0xf1, 0x7f, 0x28, 0xb5, 0x86, 0xd0, 0xa7, + 0x01, 0x39, 0x05, 0xcc, 0x6a, 0xd8, 0x79, 0x38, 0x8e, 0xf1, 0x7f, 0x20, 0xb5, 0x86, 0xd0, 0xa7, 0x26, 0xf1, 0x54, 0xae, 0x3a, 0x80, 0xa1, 0x7a, 0x25, 0x5c, 0xee, 0xe5, 0x60, 0x16, 0x2a, 0xb1, 0x48, 0xd7, 0xb4, 0xe5, 0xbc, 0x82, 0x9e, 0x95, 0x81, 0x3c, 0x65, 0xad, 0xea, 0x1b, 0x6b, 0xe8, - 0xa5, 0xa9, 0xc3, 0xb6, 0x48, 0xc3, 0xa7, 0x98, 0x9f, 0x4d, 0xcb, 0x06, 0xfd, 0x12, 0x04, 0x1f, + 0xa5, 0xa9, 0xc3, 0xb6, 0x48, 0xc3, 0xa7, 0x98, 0x9f, 0x4b, 0xcb, 0x06, 0xfd, 0x12, 0x04, 0x1f, 0xd4, 0x2e, 0x44, 0x93, 0x06, 0x68, 0x66, 0x11, 0xca, 0x87, 0x7e, 0x27, 0x25, 0x13, 0x43, 0x4c, - 0x8e, 0xc5, 0xe4, 0x7b, 0xa5, 0x2f, 0x64, 0xbc, 0x18, 0x08, 0x0b, 0xb6, 0xb5, 0xbd, 0x66, 0xb7, + 0x8e, 0xc5, 0xe4, 0x7b, 0xa5, 0x2f, 0x66, 0xbc, 0x18, 0x08, 0x0b, 0xb6, 0xb5, 0xbd, 0x66, 0xb7, 0xd0, 0xff, 0x29, 0x15, 0xa2, 0x31, 0xc4, 0xfc, 0x4f, 0x87, 0x9b, 0xff, 0x79, 0x50, 0x76, 0xec, 0x96, 0x37, 0x7c, 0xef, 0xd8, 0xad, 0x01, 0x86, 0x6f, 0xf5, 0x7a, 0x98, 0xd1, 0x9b, 0xcd, 0x55, 0x7d, 0x13, 0x17, 0xdd, 0x79, 0xb5, 0xe9, 0xb0, 0xf3, 0xd1, 0x5d, 0xa9, 0x91, 0x5d, 0xd1, 0x37, @@ -71605,9 +71845,9 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xa2, 0x35, 0xb0, 0x37, 0xc9, 0x1d, 0x3a, 0x09, 0xbe, 0x93, 0xd7, 0xac, 0xdf, 0x4f, 0xc3, 0x98, 0x2b, 0xef, 0x42, 0xb3, 0x89, 0x1e, 0x29, 0x04, 0x35, 0x09, 0xdd, 0x23, 0x7d, 0x9e, 0xf4, 0xe6, 0xb4, 0x57, 0x43, 0x4a, 0x3f, 0x04, 0x93, 0x40, 0x88, 0x69, 0x41, 0x88, 0x72, 0x7b, 0xd0, 0x91, - 0x45, 0x24, 0x2f, 0xbe, 0x4f, 0xa5, 0x61, 0xda, 0x9b, 0x47, 0x2c, 0x60, 0xa7, 0xb1, 0x85, 0x6e, + 0x45, 0x24, 0x2f, 0xbe, 0x4f, 0xa7, 0x61, 0xda, 0x9b, 0x47, 0x2c, 0x60, 0xa7, 0xb1, 0x85, 0x6e, 0x95, 0x5d, 0x68, 0x62, 0x2d, 0x2d, 0xed, 0xb7, 0x34, 0xf4, 0xa3, 0x54, 0x4c, 0x95, 0x17, 0x4a, - 0x0e, 0x59, 0xa5, 0x8b, 0xa5, 0x8b, 0x51, 0x04, 0x93, 0x17, 0xe6, 0x57, 0xd2, 0x00, 0x75, 0xcb, + 0x0e, 0x59, 0xa5, 0x8b, 0xa5, 0x8b, 0x51, 0x04, 0x93, 0x17, 0xe6, 0x57, 0xd3, 0x00, 0x75, 0xcb, 0x9f, 0xeb, 0x1e, 0x40, 0x92, 0x2f, 0x96, 0xbe, 0x2f, 0x81, 0x55, 0x3c, 0x28, 0x36, 0x7e, 0xcf, 0x21, 0xb9, 0xc5, 0xd6, 0xaf, 0xa4, 0x91, 0xb4, 0xf5, 0x89, 0xf9, 0x9d, 0x76, 0xcb, 0x68, 0xe8, 0x4e, 0xf7, 0xbe, 0x70, 0xb8, 0x78, 0xc9, 0xc5, 0x47, 0xb1, 0x8c, 0x42, 0xbf, 0x8c, 0x10, 0x59, @@ -71618,7 +71858,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x25, 0x7e, 0xb3, 0xd4, 0x41, 0x72, 0xa9, 0x7a, 0x8d, 0x64, 0x47, 0x75, 0xa6, 0x86, 0x9d, 0x10, 0x78, 0xaf, 0x83, 0xe9, 0x0b, 0xc1, 0x17, 0x1f, 0x62, 0x31, 0xb1, 0x87, 0x9f, 0xc3, 0x5b, 0xe2, 0xae, 0xc0, 0x88, 0x2c, 0x84, 0xa0, 0xeb, 0x23, 0x98, 0x96, 0xd9, 0x4c, 0x8d, 0xb5, 0x9c, 0x12, - 0x59, 0x7e, 0xf2, 0x28, 0x7c, 0x2c, 0x0d, 0x93, 0xe4, 0x3a, 0xa7, 0xb9, 0x3d, 0xe2, 0x9d, 0x2f, + 0x59, 0x7e, 0xf2, 0x28, 0x7c, 0x3c, 0x0d, 0x93, 0xe4, 0x3a, 0xa7, 0xb9, 0x3d, 0xe2, 0x9d, 0x2f, 0x69, 0x94, 0xbc, 0x80, 0x17, 0xb3, 0x0a, 0x99, 0x96, 0x61, 0x5e, 0xf4, 0x76, 0xc1, 0xdd, 0xe7, 0xe0, 0x72, 0x90, 0x74, 0x8f, 0xcb, 0x41, 0xfc, 0x7d, 0x0a, 0xbf, 0xdc, 0x03, 0xdd, 0x56, 0xd7, 0x97, 0x5c, 0xf2, 0x62, 0xfc, 0xfb, 0x0c, 0xe4, 0x6a, 0x58, 0xb7, 0x1b, 0x5b, 0xe8, 0xbd, 0xe9, @@ -71660,25 +71900,25 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xb6, 0x03, 0x33, 0x91, 0xbd, 0xba, 0x43, 0xe5, 0x05, 0xbc, 0x61, 0xd9, 0xae, 0x58, 0x26, 0xe8, 0x50, 0xe9, 0xbd, 0x73, 0x2d, 0x17, 0x84, 0x1d, 0xb2, 0x9b, 0xe0, 0x98, 0x69, 0xcd, 0xe3, 0x36, 0x93, 0x33, 0x45, 0x71, 0x9a, 0xb4, 0x80, 0xfd, 0x1f, 0xf6, 0x75, 0x25, 0x33, 0xfb, 0xbb, 0x12, - 0xf4, 0x99, 0xb8, 0x73, 0xe6, 0x2e, 0xa0, 0x87, 0x66, 0xa1, 0xa9, 0x4f, 0x82, 0xa9, 0x26, 0x73, + 0xf4, 0xd9, 0xb8, 0x73, 0xe6, 0x2e, 0xa0, 0x87, 0x66, 0xa1, 0xa9, 0x4f, 0x82, 0xa9, 0x26, 0x73, 0xd1, 0x6a, 0x18, 0x7e, 0x2b, 0x09, 0xfd, 0x4f, 0xc8, 0x1c, 0x28, 0x52, 0x86, 0x57, 0xa4, 0x45, 0x18, 0x27, 0x07, 0x72, 0x5c, 0x4d, 0xca, 0x76, 0xc5, 0x2b, 0x24, 0xd3, 0x3a, 0xbf, 0x52, 0x9c, 0xd8, 0x66, 0x8b, 0xec, 0x17, 0xcd, 0xff, 0x39, 0xde, 0xec, 0x3b, 0x5a, 0x42, 0xc9, 0x37, 0xc7, 0xdf, 0xcd, 0xc1, 0x15, 0x45, 0xdb, 0xea, 0x74, 0x48, 0x14, 0x8a, 0xee, 0x86, 0xf9, 0xc6, 0xb4, 0x10, 0x11, 0xf8, 0x61, 0xdd, 0xfc, 0x7a, 0x35, 0xa8, 0xd1, 0x35, 0x8d, 0x6f, 0x4a, 0x1f, 0x65, 0xf6, 0xf7, 0x1f, 0x42, 0x84, 0xfe, 0x93, 0xd1, 0x48, 0xde, 0x95, 0x92, 0x39, 0x5d, 0x1d, 0x53, - 0x56, 0xc9, 0x37, 0x97, 0x2f, 0xa7, 0xe1, 0xca, 0x6e, 0x6e, 0xd6, 0xcc, 0x8e, 0xdf, 0x60, 0xae, + 0x56, 0xc9, 0x37, 0x97, 0xaf, 0xa4, 0xe1, 0xca, 0x6e, 0x6e, 0xd6, 0xcc, 0x8e, 0xdf, 0x60, 0xae, 0xee, 0xd3, 0x5e, 0xc4, 0xd3, 0xb8, 0x91, 0x77, 0xf1, 0x84, 0xd4, 0x9d, 0x2b, 0x2d, 0x64, 0xb1, - 0xe4, 0x3d, 0x29, 0x99, 0xbb, 0x78, 0x62, 0x93, 0x4f, 0x5e, 0xb8, 0x9f, 0xcd, 0xc0, 0xd1, 0x45, - 0xdb, 0xda, 0x69, 0x77, 0x82, 0x1e, 0xe8, 0x6f, 0x7b, 0x6f, 0xb8, 0xe6, 0x64, 0x4c, 0x83, 0x6b, + 0xe4, 0x3d, 0x29, 0x99, 0xbb, 0x78, 0x62, 0x93, 0x4f, 0x5e, 0xb8, 0x9f, 0xcb, 0xc0, 0xd1, 0x45, + 0xdb, 0xda, 0x69, 0x77, 0x82, 0x1e, 0xe8, 0x6f, 0x7a, 0x6f, 0xb8, 0xe6, 0x64, 0x4c, 0x83, 0x6b, 0x60, 0xd2, 0x66, 0xd6, 0x5c, 0xb0, 0xfd, 0xca, 0x27, 0xf1, 0xbd, 0x97, 0x72, 0x90, 0xde, 0x2b, - 0xe8, 0x67, 0x32, 0x42, 0x3f, 0xd3, 0xdd, 0x73, 0x64, 0x7b, 0xf4, 0x1c, 0x7f, 0x93, 0x8e, 0x39, + 0xe8, 0x67, 0x32, 0x42, 0x3f, 0xd3, 0xdd, 0x73, 0x64, 0x7b, 0xf4, 0x1c, 0x7f, 0x9d, 0x8e, 0x39, 0xa8, 0x76, 0x89, 0x28, 0xa4, 0xbf, 0x28, 0x42, 0x6e, 0x93, 0x64, 0x64, 0xdd, 0xc5, 0xa3, 0xe5, 0x6a, 0x46, 0x88, 0x6b, 0xec, 0xd7, 0x40, 0xae, 0x0a, 0xaf, 0xc3, 0xb1, 0x06, 0xb8, 0x68, 0x6e, 0x93, 0x57, 0xaa, 0x07, 0x33, 0x30, 0xe5, 0x97, 0x5e, 0x6e, 0x76, 0xd0, 0x0b, 0x7a, 0x6b, 0xd4, 0xb4, 0x8c, 0x46, 0xed, 0x5b, 0x67, 0xf6, 0x47, 0x1d, 0x85, 0x1b, 0x75, 0x7a, 0x8e, 0x2e, 0x53, 0x21, 0xa3, 0x0b, 0x7a, 0xa6, 0x22, 0x1b, 0x53, 0x5f, 0xec, 0x5a, 0x49, 0x6d, 0x1e, 0xce, 0x83, - 0x85, 0x64, 0x64, 0xff, 0xfe, 0xb5, 0x4a, 0x5e, 0x49, 0x3e, 0x98, 0x86, 0x63, 0xfb, 0x3b, 0xf3, + 0x85, 0x64, 0x64, 0xff, 0xfe, 0xb5, 0x4a, 0x5e, 0x49, 0x3e, 0x94, 0x86, 0x63, 0xfb, 0x3b, 0xf3, 0x9f, 0x12, 0xbd, 0xd0, 0xdc, 0x3a, 0x75, 0x7c, 0x2f, 0x34, 0xf2, 0x26, 0x6e, 0xd2, 0x45, 0x1e, 0x8d, 0x15, 0xec, 0xbd, 0xfe, 0x9d, 0xb8, 0xdc, 0xe1, 0x57, 0x49, 0xa2, 0xc9, 0x0b, 0xf0, 0x37, 0x14, 0x98, 0xa8, 0x61, 0x67, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xa4, 0xcb, 0x6e, 0xcf, 0x3d, 0x11, @@ -71687,12 +71927,12 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x86, 0x15, 0x9d, 0x3c, 0x2c, 0xcf, 0x56, 0x60, 0xba, 0x86, 0x9d, 0x72, 0x67, 0x41, 0xdf, 0xb5, 0x6c, 0xc3, 0xc1, 0xfc, 0x5d, 0x45, 0xd1, 0xd0, 0x9c, 0x06, 0x30, 0xfc, 0xdf, 0x58, 0xa4, 0x04, 0x2e, 0x05, 0xfd, 0x4e, 0x5c, 0x47, 0x21, 0x81, 0x8f, 0xa1, 0x80, 0x10, 0xcb, 0xc7, 0x22, 0xaa, - 0xf8, 0xe4, 0x81, 0xf8, 0x62, 0x9a, 0x01, 0x51, 0xb0, 0x1b, 0x5b, 0xc6, 0x2e, 0x6e, 0xc6, 0x04, + 0xf8, 0xe4, 0x81, 0xf8, 0x52, 0x9a, 0x01, 0x51, 0xb0, 0x1b, 0x5b, 0xc6, 0x2e, 0x6e, 0xc6, 0x04, 0xc2, 0xfb, 0x2d, 0x00, 0xc2, 0x27, 0x14, 0xdb, 0x7d, 0x45, 0xe0, 0x63, 0x18, 0xee, 0x2b, 0x51, 0x04, 0x47, 0x12, 0xec, 0xc0, 0xed, 0x7a, 0xd8, 0x7a, 0xe6, 0x9d, 0xb2, 0x62, 0x0d, 0x4c, 0xb6, 0x34, 0x6f, 0xb2, 0x0d, 0xd4, 0xb1, 0xd0, 0xb2, 0xfb, 0xe9, 0x74, 0x26, 0x89, 0x8e, 0xa5, 0x67, 0xd1, 0xc9, 0x0b, 0xfd, 0x3d, 0x0a, 0x9c, 0xf0, 0x4f, 0x01, 0xd7, 0xb0, 0x33, 0xaf, 0x77, 0xb6, - 0x2e, 0x58, 0xba, 0xdd, 0xe4, 0xaf, 0xb0, 0x1d, 0xf8, 0xc4, 0x1f, 0xfa, 0x02, 0x0f, 0x42, 0x45, + 0x2e, 0x58, 0xba, 0xdd, 0xe4, 0xaf, 0xb0, 0x1d, 0xf8, 0xc4, 0x1f, 0xfa, 0x22, 0x0f, 0x42, 0x45, 0x04, 0xa1, 0xa7, 0xab, 0x68, 0x4f, 0x5e, 0x86, 0xd1, 0xc9, 0x44, 0x7a, 0xb3, 0xfe, 0x9e, 0x0f, 0xd6, 0x53, 0x04, 0xb0, 0xee, 0x18, 0x94, 0xc5, 0xe4, 0x81, 0xfb, 0x6d, 0x3a, 0x22, 0x70, 0x5e, 0xcd, 0xf7, 0xca, 0x02, 0x16, 0xe2, 0xd5, 0xaa, 0x84, 0x7a, 0xb5, 0x0e, 0x34, 0x46, 0xf4, 0xf5, @@ -71713,7 +71953,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xeb, 0xe6, 0x26, 0x66, 0x7b, 0x0a, 0xc7, 0xbb, 0xfa, 0x42, 0xe2, 0xf5, 0xa2, 0xd1, 0x2c, 0xe8, 0xed, 0x71, 0x42, 0x20, 0xf4, 0xa8, 0x7c, 0x3c, 0x7d, 0x98, 0x1f, 0xe0, 0x64, 0x59, 0x1e, 0xa6, 0x8a, 0x05, 0x7a, 0x03, 0xe7, 0x4a, 0xf5, 0x5c, 0x29, 0xaf, 0x10, 0x98, 0x5d, 0x99, 0x24, 0x08, - 0xb3, 0x4b, 0xfe, 0x27, 0x16, 0xe6, 0x1e, 0x95, 0x3f, 0x0c, 0x98, 0x3f, 0x95, 0x86, 0xe9, 0x65, + 0xb3, 0x4b, 0xfe, 0x27, 0x16, 0xe6, 0x1e, 0x95, 0x3f, 0x0c, 0x98, 0x3f, 0x9d, 0x86, 0xe9, 0x65, 0xa3, 0xe3, 0x84, 0x79, 0xfb, 0x47, 0x44, 0x81, 0x7b, 0x61, 0x5c, 0x53, 0x59, 0x28, 0x47, 0x3a, 0xfc, 0x5b, 0x2c, 0x73, 0x38, 0xaa, 0x88, 0xd1, 0x1c, 0x4b, 0x21, 0x1c, 0xd0, 0x5b, 0xf3, 0xa4, 0x25, 0x19, 0xdb, 0x50, 0x0a, 0x0a, 0x19, 0xbd, 0xa1, 0x14, 0x5a, 0x76, 0xf2, 0xf2, 0xfd, 0x66, @@ -71739,9 +71979,9 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x8b, 0xba, 0xe8, 0x3e, 0xaa, 0xd7, 0xc1, 0x34, 0x0b, 0xbe, 0x58, 0xc1, 0x1d, 0x07, 0x37, 0x59, 0xc4, 0x0a, 0x31, 0x51, 0x3d, 0x03, 0x53, 0x2c, 0x61, 0xc1, 0x68, 0xe1, 0x0e, 0x0b, 0x5a, 0x21, 0xa4, 0xa9, 0x27, 0x21, 0x67, 0x74, 0xee, 0xee, 0x58, 0x26, 0xf1, 0xff, 0x1f, 0xd7, 0xd8, 0x9b, - 0x7a, 0x03, 0x1c, 0x65, 0xf9, 0x7c, 0x63, 0x95, 0x1e, 0xd8, 0xe9, 0x4e, 0x46, 0x9f, 0x1b, 0x64, + 0x7a, 0x03, 0x1c, 0x65, 0xf9, 0x7c, 0x63, 0x95, 0x1e, 0xd8, 0xe9, 0x4e, 0x46, 0x9f, 0x1f, 0x64, 0xe2, 0x10, 0x3b, 0x1e, 0xaf, 0x8b, 0xc2, 0x4e, 0xa3, 0x81, 0x71, 0x93, 0x9d, 0x6c, 0xf2, 0x5e, - 0x63, 0x46, 0xea, 0x8d, 0x3d, 0xcd, 0x38, 0xa4, 0x50, 0xbd, 0x1f, 0x39, 0x01, 0x39, 0x7a, 0xed, + 0x63, 0x46, 0xea, 0x8d, 0x3d, 0xcd, 0x38, 0xa4, 0x50, 0xbd, 0x1f, 0x3d, 0x01, 0x39, 0x7a, 0xed, 0x05, 0x7a, 0xc9, 0x4c, 0x4f, 0x65, 0x9c, 0x11, 0x95, 0x71, 0x0d, 0xa6, 0x4c, 0xcb, 0x2d, 0x6e, 0x55, 0xb7, 0xf5, 0xed, 0x4e, 0xd4, 0x2a, 0x22, 0xa5, 0xeb, 0x0f, 0x19, 0x15, 0xee, 0xb7, 0xa5, 0x23, 0x9a, 0x40, 0x46, 0xfd, 0xdf, 0xe0, 0xe8, 0x05, 0x16, 0x01, 0xa0, 0xc3, 0x28, 0xa7, 0xc3, @@ -71763,7 +72003,7 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x8a, 0x6f, 0x64, 0xf4, 0xee, 0x2c, 0x23, 0xb0, 0xbd, 0xd8, 0x1b, 0xba, 0x0e, 0x66, 0x44, 0x9d, 0xe6, 0x86, 0x18, 0xc5, 0xeb, 0x0a, 0xd1, 0xb5, 0x70, 0xb4, 0xab, 0x61, 0x79, 0x31, 0x45, 0x52, 0x41, 0x4c, 0x91, 0x6b, 0x00, 0x02, 0x2d, 0xee, 0x49, 0xe6, 0x6a, 0x98, 0xf0, 0xf5, 0xb2, 0x67, - 0x86, 0xaf, 0xa5, 0x60, 0xdc, 0x53, 0xb6, 0x5e, 0x19, 0xdc, 0xf1, 0xc5, 0xe4, 0x36, 0x10, 0xd8, + 0x86, 0xaf, 0xa7, 0x60, 0xdc, 0x53, 0xb6, 0x5e, 0x19, 0xdc, 0xf1, 0xc5, 0xe4, 0x36, 0x10, 0xd8, 0x34, 0x5b, 0x48, 0x73, 0xc7, 0x91, 0xc0, 0x6d, 0xb7, 0x6e, 0x38, 0x2d, 0xef, 0xe8, 0x5b, 0x77, 0xb2, 0xba, 0x0a, 0x60, 0x10, 0x8c, 0xea, 0xc1, 0x59, 0xb8, 0x9b, 0x63, 0xb4, 0x07, 0xaa, 0x0f, 0x1c, 0x8d, 0x33, 0x3f, 0xc5, 0x0e, 0xaa, 0x4d, 0x40, 0xb6, 0xb6, 0x5a, 0x28, 0x96, 0xf2, 0x47, @@ -71779,10 +72019,10 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x5b, 0xb7, 0x1d, 0xe2, 0x2f, 0xed, 0x11, 0x99, 0xd3, 0x3b, 0x58, 0xf3, 0x7f, 0x3b, 0xf3, 0x18, 0xc6, 0x81, 0x0a, 0x33, 0x85, 0xe5, 0xe5, 0xf5, 0xaa, 0xb6, 0x5e, 0xa9, 0xd6, 0x97, 0xca, 0x95, 0x45, 0x3a, 0x42, 0x96, 0x17, 0x2b, 0x55, 0xad, 0x44, 0x07, 0xc8, 0x5a, 0x3e, 0x45, 0x2f, 0xbf, - 0x9b, 0x1b, 0x87, 0x5c, 0x9b, 0x48, 0x17, 0x7d, 0x59, 0x89, 0x79, 0xde, 0xdd, 0xc7, 0x29, 0xe4, + 0x9b, 0x1b, 0x87, 0x5c, 0x9b, 0x48, 0x17, 0x7d, 0x45, 0x89, 0x79, 0xde, 0xdd, 0xc7, 0x29, 0xe4, 0x7a, 0x2e, 0xc1, 0xe7, 0x3c, 0xdd, 0xe3, 0x4c, 0xe8, 0x19, 0x98, 0xa2, 0xb6, 0x5c, 0x87, 0x2c, - 0xdf, 0xb3, 0x1b, 0x6e, 0x85, 0x34, 0xf4, 0xb1, 0x74, 0x8c, 0x43, 0xf0, 0x3d, 0x39, 0x8a, 0x67, - 0x5c, 0xfc, 0xe5, 0x20, 0x97, 0xdd, 0xa9, 0x30, 0x53, 0xae, 0xd4, 0x4b, 0x5a, 0xa5, 0xb0, 0xcc, + 0xdf, 0xb3, 0x1b, 0x6e, 0x85, 0x34, 0xf4, 0xf1, 0x74, 0x8c, 0x43, 0xf0, 0x3d, 0x39, 0x8a, 0x67, + 0x5c, 0xfc, 0xc5, 0x20, 0x97, 0xdd, 0xa9, 0x30, 0x53, 0xae, 0xd4, 0x4b, 0x5a, 0xa5, 0xb0, 0xcc, 0xb2, 0x28, 0xea, 0x29, 0x38, 0x5e, 0xa9, 0xb2, 0x98, 0x7e, 0x35, 0x72, 0xad, 0xf6, 0xca, 0x6a, 0x55, 0xab, 0xe7, 0xb3, 0xea, 0x49, 0x50, 0xe9, 0xb3, 0x70, 0x2b, 0x7d, 0x4e, 0x7d, 0x14, 0x5c, 0xbb, 0x5c, 0x5e, 0x29, 0xd7, 0xd7, 0xab, 0x0b, 0xeb, 0x5a, 0xf5, 0x7c, 0xcd, 0x45, 0x50, 0x2b, @@ -71796,19 +72036,19 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x5f, 0xaa, 0x6a, 0xe5, 0x9f, 0x23, 0xd1, 0xc6, 0xa7, 0x61, 0x62, 0xa1, 0xaa, 0xcd, 0x95, 0xe7, 0xe7, 0x4b, 0x95, 0x7c, 0x56, 0xbd, 0x1c, 0x2e, 0xab, 0x95, 0xb4, 0x73, 0xe5, 0x62, 0x69, 0x7d, 0xad, 0x52, 0x38, 0x57, 0x28, 0x2f, 0x93, 0x3e, 0x22, 0x17, 0x71, 0x6f, 0xe2, 0x18, 0xfa, 0xc5, - 0x0c, 0x00, 0xad, 0xba, 0x6b, 0x49, 0xf3, 0xb7, 0xeb, 0xfd, 0x55, 0xdc, 0x49, 0x43, 0x40, 0x26, + 0x0c, 0x00, 0xad, 0xba, 0x6b, 0x49, 0xf3, 0xb7, 0xeb, 0xfd, 0x65, 0xdc, 0x49, 0x43, 0x40, 0x26, 0xa4, 0xfd, 0x96, 0x61, 0xdc, 0x66, 0x1f, 0xd8, 0xf2, 0x49, 0x3f, 0x3a, 0xf4, 0xd1, 0xa3, 0xa6, 0xf9, 0xbf, 0xa3, 0xf7, 0xc5, 0x99, 0x23, 0x84, 0x32, 0x16, 0x0f, 0xc9, 0x85, 0xe1, 0x00, 0x89, 0x5e, 0x90, 0x82, 0x19, 0xb1, 0x62, 0x6e, 0x25, 0x88, 0x31, 0x25, 0x57, 0x09, 0xf1, 0x67, 0xce, 0xc8, 0x3a, 0xf3, 0x38, 0x36, 0x9c, 0x82, 0xd7, 0x32, 0xe9, 0xc9, 0x6f, 0xcf, 0x62, 0xc9, 0xa7, - 0x5c, 0xe6, 0x5d, 0xa3, 0x83, 0x5e, 0xad, 0x5e, 0xbf, 0xdf, 0xc9, 0x2b, 0xe8, 0x6b, 0x0a, 0x4c, + 0x5c, 0xe6, 0x5d, 0xa3, 0x83, 0x5e, 0xad, 0x5e, 0xbf, 0xdf, 0xc9, 0x2b, 0xe8, 0xeb, 0x0a, 0x4c, 0x0b, 0xd7, 0xf7, 0xa1, 0xd7, 0xa6, 0x64, 0xae, 0xd6, 0xe2, 0x2e, 0x06, 0x4c, 0x1d, 0xf4, 0x62, 0xc0, 0x33, 0x67, 0x61, 0x8c, 0xa5, 0x11, 0xf9, 0x56, 0x2b, 0xae, 0x29, 0x70, 0x14, 0x26, 0x17, 0x4b, 0xf5, 0xf5, 0x5a, 0xbd, 0xa0, 0xd5, 0x4b, 0xf3, 0xf9, 0x94, 0x3b, 0xf0, 0x95, 0x56, 0x56, 0xeb, 0xf7, 0xe6, 0xd3, 0xf1, 0x3d, 0xf0, 0xba, 0x19, 0x19, 0xb1, 0x07, 0x5e, 0x54, 0xf1, 0xc9, - 0xcf, 0x55, 0x3f, 0xa3, 0x40, 0x9e, 0x72, 0x50, 0xba, 0xbf, 0x8d, 0x6d, 0x03, 0x9b, 0x0d, 0x8c, + 0xcf, 0x55, 0x3f, 0xab, 0x40, 0x9e, 0x72, 0x50, 0xba, 0xbf, 0x8d, 0x6d, 0x03, 0x9b, 0x0d, 0x8c, 0x2e, 0xca, 0x44, 0xfc, 0xdc, 0x17, 0x0b, 0x8f, 0xf4, 0xe7, 0x9c, 0x95, 0x48, 0x5f, 0xba, 0x0c, - 0xec, 0xcc, 0x3e, 0x03, 0xfb, 0xd3, 0x71, 0x5d, 0xf0, 0xba, 0xd9, 0x1d, 0x0a, 0x64, 0x9f, 0x8c, + 0xec, 0xcc, 0x3e, 0x03, 0xfb, 0x33, 0x71, 0x5d, 0xf0, 0xba, 0xd9, 0x1d, 0x0a, 0x64, 0x9f, 0x8a, 0xe3, 0x82, 0xd7, 0x87, 0x83, 0x91, 0x04, 0xf2, 0x0d, 0x19, 0x7f, 0xf3, 0x0a, 0x7a, 0xbe, 0x02, 0x47, 0xe7, 0x75, 0x07, 0xcf, 0xed, 0xd5, 0x8d, 0x6d, 0xdc, 0x71, 0xf4, 0xed, 0x76, 0xc8, 0x95, 0x78, 0xa9, 0x7d, 0x57, 0xe2, 0x39, 0xde, 0x1f, 0x84, 0x53, 0x45, 0x0b, 0x12, 0xd0, 0xbb, 0xe2, @@ -71825,16 +72065,16 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0x27, 0xc4, 0x62, 0x44, 0xe1, 0xc9, 0x23, 0xf2, 0x80, 0x02, 0x39, 0xe6, 0x13, 0x36, 0x54, 0x04, 0xe2, 0xb6, 0x0c, 0x5f, 0x08, 0x72, 0xbe, 0x63, 0xca, 0xb0, 0x5b, 0x46, 0x74, 0xf9, 0xc9, 0xe3, 0xf0, 0xef, 0xcc, 0xd9, 0xb1, 0xb0, 0xab, 0x1b, 0x2d, 0xfd, 0x42, 0x2b, 0x46, 0x68, 0xe3, 0x8f, - 0xc5, 0x3c, 0xde, 0xe5, 0x57, 0x55, 0x28, 0x2f, 0x44, 0xe2, 0x3f, 0x03, 0x13, 0xb6, 0xbf, 0x24, + 0xc7, 0x3c, 0xde, 0xe5, 0x57, 0x55, 0x28, 0x2f, 0x44, 0xe2, 0x3f, 0x03, 0x13, 0xb6, 0xbf, 0x24, 0xe9, 0x9d, 0x7e, 0xef, 0x72, 0x34, 0x65, 0xdf, 0xb5, 0x20, 0x67, 0xac, 0xb3, 0x5c, 0x52, 0xfc, 0x8c, 0xe4, 0xec, 0xc9, 0x64, 0xa1, 0xd9, 0x5c, 0xc0, 0xba, 0xb3, 0x63, 0xe3, 0x66, 0xac, 0x21, 0x42, 0x14, 0xd1, 0x04, 0x2f, 0x09, 0x21, 0xb8, 0xe0, 0xb2, 0x88, 0xce, 0x13, 0xfa, 0xf4, 0x06, 0x1e, 0x2f, 0x43, 0xe9, 0x92, 0xde, 0xea, 0x43, 0x52, 0x15, 0x20, 0x79, 0xd2, 0x60, 0x4c, 0x24, - 0x0f, 0xc8, 0x6f, 0x29, 0x30, 0x43, 0xed, 0x84, 0x61, 0x63, 0xf2, 0x07, 0x31, 0x7d, 0x48, 0xb8, - 0x6b, 0x99, 0x78, 0x76, 0x86, 0x02, 0x4b, 0x1c, 0x8f, 0x13, 0x39, 0x3e, 0x92, 0x47, 0xe6, 0x13, - 0xd3, 0x00, 0x9c, 0x5f, 0xe0, 0xc7, 0x72, 0x41, 0xa0, 0x3f, 0xf4, 0x76, 0x36, 0xff, 0xa8, 0x09, - 0x51, 0xa7, 0x39, 0x9f, 0x3f, 0x7f, 0x43, 0x4a, 0x4c, 0x94, 0x1a, 0x55, 0xfe, 0x32, 0xa6, 0xcd, - 0xcb, 0xbc, 0xf2, 0xfa, 0x0e, 0xee, 0x03, 0xf6, 0x72, 0x1f, 0x8f, 0x61, 0xfc, 0xf6, 0x63, 0x25, + 0x0f, 0xc8, 0x6f, 0x29, 0x30, 0x43, 0xed, 0x84, 0x61, 0x63, 0xf2, 0xc1, 0x98, 0x3e, 0x24, 0xdc, + 0xb5, 0x4c, 0x3c, 0x3b, 0x43, 0x81, 0x25, 0x8e, 0xc7, 0x89, 0x1c, 0x1f, 0xc9, 0x23, 0xf3, 0x9c, + 0x63, 0x00, 0x9c, 0x5f, 0xe0, 0xc7, 0x73, 0x41, 0xa0, 0x3f, 0xf4, 0x76, 0x36, 0xff, 0xa8, 0x09, + 0x51, 0xa7, 0x39, 0x9f, 0x3f, 0x7f, 0x43, 0x4a, 0x4c, 0x94, 0x1a, 0x55, 0xfe, 0x22, 0xa6, 0xcd, + 0xcb, 0xbc, 0xf2, 0xfa, 0x0e, 0xee, 0x03, 0xf6, 0x72, 0x9f, 0x88, 0x61, 0xfc, 0xf6, 0x63, 0x25, 0x1e, 0x6a, 0xcb, 0x03, 0xcc, 0xec, 0x4f, 0xc1, 0x71, 0xad, 0x54, 0x98, 0xaf, 0x56, 0x96, 0xef, 0xe5, 0xef, 0xe8, 0xc9, 0x2b, 0xfc, 0xe4, 0x24, 0x11, 0xd8, 0x5e, 0x17, 0xb3, 0x0f, 0x14, 0x65, 0x15, 0x35, 0x5b, 0xe1, 0x16, 0x57, 0xfa, 0xf7, 0x6a, 0x12, 0x64, 0x0f, 0x13, 0x85, 0xef, 0xe5, @@ -71842,656 +72082,659 @@ var fileDescriptor_8261c968b2e6f45c = []byte{ 0xef, 0xab, 0x61, 0x07, 0xfd, 0x7c, 0x80, 0xcd, 0x19, 0x98, 0x72, 0x2b, 0x57, 0x15, 0x23, 0x89, 0x0b, 0x69, 0xea, 0x4d, 0x70, 0xcc, 0x43, 0xa1, 0xda, 0x35, 0x85, 0xd9, 0xff, 0x01, 0xbd, 0x9b, 0xc7, 0x68, 0x4d, 0xc4, 0xe8, 0xce, 0x70, 0x61, 0xfa, 0xec, 0xce, 0xf2, 0xac, 0x86, 0x80, 0xf5, - 0x17, 0x3e, 0x58, 0x4f, 0x15, 0xc0, 0x9a, 0x3f, 0x20, 0xfd, 0xc3, 0x44, 0xed, 0x03, 0x0a, 0x1c, - 0xf7, 0x3a, 0xe2, 0xd1, 0xa1, 0xf5, 0x71, 0x1e, 0xad, 0xa7, 0x89, 0x68, 0x2d, 0xca, 0x48, 0xb3, - 0x17, 0xcb, 0x21, 0xa8, 0x7d, 0xc9, 0x47, 0xed, 0x17, 0x04, 0xd4, 0x96, 0x87, 0x54, 0xce, 0x61, - 0xa2, 0xf7, 0x00, 0x70, 0x43, 0xd7, 0xf3, 0x14, 0xc8, 0xbb, 0x36, 0x28, 0xed, 0x19, 0xd8, 0x05, - 0x88, 0x55, 0xd1, 0x55, 0xb7, 0x4d, 0xf7, 0x7c, 0x03, 0x57, 0x5d, 0x2f, 0x41, 0xbd, 0x1e, 0x66, - 0x1a, 0x5b, 0xb8, 0x71, 0xb1, 0x6c, 0x7a, 0xbe, 0x2c, 0xd4, 0xf1, 0xa1, 0x2b, 0x55, 0xec, 0x0c, - 0xef, 0x11, 0xa1, 0x13, 0x17, 0xae, 0x04, 0xc3, 0x98, 0x67, 0x2a, 0x04, 0xa8, 0x3f, 0xf6, 0x81, - 0xaa, 0x08, 0x40, 0xdd, 0x36, 0x10, 0xd5, 0x78, 0xb0, 0x54, 0x06, 0x80, 0x05, 0xc1, 0xc9, 0xea, - 0x6a, 0xbd, 0x5c, 0xad, 0xac, 0xaf, 0xd5, 0x4a, 0xf3, 0xeb, 0x73, 0x1e, 0x38, 0xb5, 0xbc, 0x82, - 0xbe, 0x9d, 0x86, 0x31, 0xca, 0x56, 0x07, 0x3d, 0x3a, 0x80, 0xa0, 0xaf, 0x8f, 0x32, 0x7a, 0x9b, - 0x74, 0xc4, 0x11, 0x5f, 0x10, 0xac, 0x9c, 0x10, 0xdb, 0xe0, 0x89, 0x30, 0x46, 0x41, 0xf6, 0x56, - 0x91, 0x4f, 0x87, 0x58, 0x06, 0x8c, 0x8c, 0xe6, 0x65, 0x97, 0x8c, 0x3e, 0xd2, 0x87, 0x8d, 0xe4, - 0xad, 0xb9, 0x67, 0x66, 0xe8, 0xd4, 0xf3, 0xbc, 0xe1, 0x6c, 0x11, 0x17, 0x66, 0xf4, 0x14, 0x99, - 0x25, 0xfd, 0x9b, 0x20, 0xbb, 0xeb, 0xe6, 0xee, 0xe3, 0x0e, 0x4e, 0x33, 0xa1, 0x57, 0x48, 0x07, - 0xbb, 0x15, 0xf4, 0xd3, 0xe7, 0x29, 0x04, 0x9c, 0x15, 0xc8, 0xb4, 0x8c, 0x8e, 0xc3, 0x6c, 0xb6, - 0x5b, 0x63, 0x11, 0xf2, 0x1e, 0xca, 0x0e, 0xde, 0xd6, 0x08, 0x19, 0x74, 0xb7, 0x3b, 0xe2, 0x06, - 0xa9, 0x12, 0x2e, 0xf1, 0xa7, 0x60, 0x8c, 0x1d, 0xd5, 0x64, 0xdb, 0x1a, 0xde, 0xab, 0xe4, 0x56, - 0x82, 0x54, 0x6d, 0x93, 0xd7, 0x81, 0xff, 0xe7, 0x28, 0x8c, 0x2d, 0x19, 0x1d, 0xc7, 0xb2, 0xf7, - 0xd0, 0x43, 0x29, 0x18, 0x3b, 0x87, 0xed, 0x8e, 0x61, 0x99, 0xfb, 0xdc, 0x7b, 0xae, 0x81, 0xc9, - 0xb6, 0x8d, 0x77, 0x0d, 0x6b, 0xa7, 0x13, 0x8c, 0x4f, 0x7c, 0x92, 0x8a, 0x60, 0x5c, 0xdf, 0x71, - 0xb6, 0x2c, 0x3b, 0x88, 0xf0, 0xe2, 0xbd, 0xab, 0xa7, 0x01, 0xe8, 0x73, 0x45, 0xdf, 0xc6, 0xcc, - 0x69, 0x89, 0x4b, 0x51, 0x55, 0xc8, 0x38, 0xc6, 0x36, 0x66, 0x21, 0x9f, 0xc9, 0xb3, 0x2b, 0x60, - 0x12, 0x3e, 0x91, 0x85, 0xa9, 0x54, 0x34, 0xef, 0x15, 0x7d, 0x41, 0x81, 0xc9, 0x45, 0xec, 0x30, - 0x56, 0x3b, 0xe8, 0x85, 0x29, 0xa9, 0x5b, 0x56, 0x5c, 0xbb, 0xb6, 0xa5, 0x77, 0xbc, 0xff, 0xfc, - 0x6d, 0x0f, 0x31, 0x31, 0x88, 0x3f, 0xad, 0xf0, 0xc1, 0xe7, 0x49, 0x30, 0x42, 0xa7, 0x4c, 0x7d, - 0x9d, 0x59, 0x66, 0xb6, 0xf1, 0xb8, 0xff, 0x83, 0x68, 0x53, 0x45, 0x1e, 0xe4, 0x67, 0xb2, 0x9f, - 0xe5, 0xea, 0x13, 0xda, 0x1d, 0x8d, 0xef, 0xb2, 0x1c, 0xfb, 0xee, 0x15, 0xe0, 0x29, 0x31, 0x32, - 0x9a, 0x9f, 0x5b, 0x32, 0x04, 0x40, 0x7f, 0x4e, 0x92, 0xd7, 0xc6, 0x1f, 0x28, 0x30, 0x59, 0xdb, - 0xb2, 0x2e, 0x79, 0x72, 0x7c, 0x9a, 0x1c, 0xb0, 0x57, 0xc1, 0xc4, 0x6e, 0x17, 0xa8, 0x41, 0x02, - 0x7f, 0x79, 0x95, 0x22, 0x5e, 0x5e, 0xf5, 0x5c, 0x25, 0x2e, 0x4c, 0x1c, 0x73, 0x21, 0x30, 0x89, - 0xf7, 0x4d, 0xa5, 0x63, 0xdc, 0x37, 0xa5, 0x3e, 0x01, 0xc6, 0x18, 0xd7, 0x6c, 0x99, 0x33, 0x1a, - 0x60, 0x2f, 0x33, 0x5f, 0xc1, 0x8c, 0x58, 0xc1, 0x78, 0xc8, 0x87, 0x57, 0x2e, 0x79, 0xe4, 0xff, - 0x2c, 0x4d, 0x02, 0xc0, 0x78, 0xc0, 0x17, 0x87, 0x00, 0x3c, 0xfa, 0x61, 0x4a, 0x76, 0x33, 0xc0, - 0x97, 0x80, 0xcf, 0xc1, 0x81, 0x6e, 0x50, 0xea, 0x4b, 0x2e, 0x79, 0x79, 0xbe, 0x3c, 0x03, 0x53, - 0xf3, 0xc6, 0xc6, 0x86, 0xdf, 0x49, 0xbe, 0x48, 0xb2, 0x93, 0x0c, 0x77, 0xc1, 0x71, 0xed, 0xdc, - 0x1d, 0xdb, 0xc6, 0xa6, 0x57, 0x29, 0xd6, 0x9c, 0xba, 0x52, 0xd5, 0x1b, 0xe0, 0xa8, 0x37, 0x2e, - 0xf0, 0x1d, 0xe5, 0x84, 0xd6, 0x9d, 0x8c, 0xbe, 0x2f, 0xbd, 0x93, 0xec, 0x49, 0x94, 0xaf, 0x52, - 0x48, 0x03, 0xbc, 0x1d, 0xa6, 0xb7, 0x68, 0x6e, 0xb2, 0xdc, 0xe6, 0x75, 0x96, 0x27, 0xbb, 0x02, - 0x6c, 0xaf, 0xe0, 0x4e, 0x47, 0xdf, 0xc4, 0x9a, 0x98, 0xb9, 0xab, 0xf9, 0x2a, 0x71, 0xae, 0x8b, - 0x93, 0xdb, 0x94, 0x96, 0xa8, 0xc9, 0x08, 0xb4, 0xe3, 0x0c, 0x64, 0x16, 0x8c, 0x16, 0x46, 0xbf, - 0x92, 0x86, 0x09, 0x77, 0xd6, 0x66, 0x36, 0xdc, 0x37, 0xce, 0x21, 0xef, 0x7b, 0x29, 0xd9, 0x6b, - 0x52, 0x5d, 0x3a, 0xb3, 0x3e, 0x8d, 0x90, 0x76, 0x23, 0x77, 0x1d, 0x6a, 0x24, 0xa9, 0x11, 0x5c, - 0x6a, 0xe3, 0x4e, 0x3d, 0x36, 0x36, 0x5a, 0x96, 0x2e, 0x2c, 0x38, 0x77, 0x9b, 0x42, 0x37, 0x42, - 0xde, 0x3b, 0x57, 0x65, 0x39, 0xab, 0x86, 0x69, 0xfa, 0x07, 0xf7, 0xf7, 0xa5, 0x8b, 0xbe, 0x12, - 0x91, 0xb1, 0x8f, 0x48, 0xdd, 0x59, 0xe9, 0x21, 0x9a, 0x7d, 0x3d, 0xcc, 0x5c, 0xd8, 0x73, 0x70, - 0x87, 0xe5, 0x62, 0xc5, 0x66, 0xb4, 0xae, 0x54, 0x2e, 0x72, 0x79, 0x54, 0x8c, 0xa4, 0x88, 0x02, - 0xe3, 0x89, 0x7a, 0x69, 0x80, 0x19, 0xe0, 0x71, 0xc8, 0x57, 0xaa, 0xf3, 0x25, 0xe2, 0x1f, 0xea, - 0x79, 0xdc, 0x6d, 0xa2, 0x17, 0x2b, 0x30, 0x45, 0x1c, 0xb8, 0x3c, 0x14, 0xae, 0x95, 0x98, 0x8f, - 0xa0, 0xaf, 0x48, 0xfb, 0x8e, 0x92, 0x2a, 0xf3, 0x05, 0x84, 0x0b, 0x7a, 0xc3, 0x68, 0x75, 0x0b, - 0x3a, 0xab, 0x75, 0xa5, 0xf6, 0x00, 0x44, 0xe9, 0x09, 0xc8, 0x07, 0xa4, 0x1c, 0x48, 0xfb, 0x71, - 0x77, 0x58, 0xa8, 0xfc, 0xbe, 0x02, 0x93, 0xee, 0x24, 0xc5, 0x03, 0xa5, 0x2a, 0x80, 0x62, 0x99, - 0xad, 0xbd, 0x60, 0x59, 0xc4, 0x7b, 0x8d, 0xd5, 0x48, 0xfe, 0x5a, 0x7a, 0xe6, 0x4e, 0x44, 0xc4, - 0xf1, 0x32, 0x22, 0xfc, 0xde, 0x2f, 0x35, 0x9f, 0xef, 0xc3, 0xdc, 0x61, 0xc1, 0xf7, 0xcd, 0x2c, - 0xe4, 0xd6, 0xda, 0x04, 0xb9, 0x57, 0x28, 0x32, 0xb7, 0x00, 0xec, 0x3b, 0x3c, 0xe4, 0x9a, 0x59, - 0x2d, 0xab, 0xa1, 0xb7, 0x56, 0x83, 0x53, 0x98, 0x41, 0x82, 0x7a, 0x1b, 0xf3, 0x27, 0xa6, 0x47, - 0x58, 0xaf, 0x8f, 0x0c, 0x90, 0x4f, 0x64, 0xc4, 0x1d, 0xd4, 0xba, 0x09, 0x8e, 0x35, 0x8d, 0x8e, - 0x7e, 0xa1, 0x85, 0x4b, 0x66, 0xc3, 0xde, 0xa3, 0xe2, 0x60, 0xd3, 0xaa, 0x7d, 0x1f, 0xd4, 0x3b, - 0x20, 0xdb, 0x71, 0xf6, 0x5a, 0x74, 0x9e, 0xc8, 0x9f, 0xeb, 0x0a, 0x2d, 0xaa, 0xe6, 0x66, 0xd7, - 0xe8, 0x5f, 0xbc, 0x5b, 0xe0, 0x98, 0xe4, 0x1d, 0xe9, 0x8f, 0x83, 0x9c, 0x65, 0x1b, 0x9b, 0x06, - 0xbd, 0xf3, 0x6a, 0x66, 0x5f, 0x1c, 0x48, 0x6a, 0x0a, 0x54, 0x49, 0x16, 0x8d, 0x65, 0x55, 0x9f, - 0x00, 0x13, 0xc6, 0xb6, 0xbe, 0x89, 0xef, 0x31, 0x4c, 0x7a, 0x4a, 0x76, 0xe6, 0x96, 0x53, 0xfb, - 0x8e, 0xac, 0xb1, 0xef, 0x5a, 0x90, 0x15, 0xbd, 0x3f, 0x2d, 0x1b, 0xac, 0x8a, 0xd4, 0x8d, 0x82, - 0x3a, 0x92, 0xbb, 0xe2, 0xd1, 0xab, 0xa5, 0xc2, 0x48, 0x85, 0xb3, 0x95, 0xfc, 0xe0, 0xfd, 0xf9, - 0x34, 0x8c, 0xcf, 0x5b, 0x97, 0x4c, 0xa2, 0xe8, 0xb7, 0xca, 0xd9, 0xba, 0x3d, 0x0e, 0x16, 0x8b, - 0x57, 0xb1, 0x46, 0x9e, 0x22, 0x22, 0xb5, 0xf5, 0x8a, 0x0c, 0x81, 0x21, 0xb2, 0xe5, 0x48, 0x5e, - 0x90, 0x19, 0x55, 0x4e, 0xf2, 0x72, 0xfd, 0x73, 0x05, 0x32, 0xf3, 0xb6, 0xd5, 0x46, 0x6f, 0x4d, - 0xc5, 0x70, 0x13, 0x6a, 0xda, 0x56, 0xbb, 0x4e, 0x6e, 0xb8, 0x0b, 0x8e, 0x4e, 0xf1, 0x69, 0xea, - 0xad, 0x30, 0xde, 0xb6, 0x3a, 0x86, 0xe3, 0x4d, 0x23, 0x66, 0x6e, 0x79, 0x44, 0xcf, 0xd6, 0xbc, - 0xca, 0x32, 0x69, 0x7e, 0x76, 0xb7, 0xd7, 0x26, 0x22, 0x74, 0xe5, 0xe2, 0x8a, 0xd1, 0xbb, 0xe5, - 0xaf, 0x2b, 0x15, 0xbd, 0x84, 0x47, 0xf2, 0x49, 0x22, 0x92, 0x8f, 0xec, 0x21, 0x61, 0xdb, 0x6a, - 0x0f, 0x65, 0x63, 0xff, 0x95, 0x3e, 0xaa, 0x4f, 0x16, 0x50, 0xbd, 0x51, 0xaa, 0xcc, 0xe4, 0x11, - 0x7d, 0x7f, 0x06, 0x80, 0x98, 0x19, 0x6b, 0xee, 0x04, 0x48, 0xce, 0xc6, 0x7a, 0x76, 0x86, 0x93, - 0x65, 0x41, 0x94, 0xe5, 0xa3, 0x43, 0xac, 0x18, 0x42, 0x3e, 0x44, 0xa2, 0x05, 0xc8, 0xee, 0xb8, - 0x9f, 0x99, 0x44, 0x25, 0x49, 0x90, 0x57, 0x8d, 0xfe, 0x89, 0xfe, 0x2c, 0x05, 0x59, 0x92, 0xa0, - 0x9e, 0x06, 0x20, 0x03, 0x3b, 0x3d, 0x84, 0x97, 0x22, 0x43, 0x38, 0x97, 0x42, 0xb4, 0xd5, 0x68, - 0xb2, 0xcf, 0xd4, 0x64, 0x0e, 0x12, 0xdc, 0xbf, 0xc9, 0x70, 0x4f, 0x68, 0x31, 0x03, 0x80, 0x4b, - 0x71, 0xff, 0x26, 0x6f, 0xcb, 0x78, 0x83, 0x06, 0x1f, 0xcf, 0x68, 0x41, 0x82, 0xff, 0xf7, 0xb2, - 0x7f, 0x65, 0x9d, 0xf7, 0x37, 0x49, 0x71, 0x27, 0xc3, 0x44, 0x2d, 0xe7, 0x82, 0x22, 0x72, 0x24, - 0x53, 0x77, 0x32, 0x7a, 0x9d, 0xaf, 0x36, 0xf3, 0x82, 0xda, 0xdc, 0x1c, 0x43, 0xbc, 0xc9, 0x2b, - 0xcf, 0xd7, 0xb2, 0x30, 0x51, 0xb1, 0x9a, 0x4c, 0x77, 0xb8, 0x09, 0xe3, 0x27, 0xb3, 0xb1, 0x26, - 0x8c, 0x3e, 0x8d, 0x10, 0x05, 0xb9, 0x4b, 0x54, 0x10, 0x39, 0x0a, 0xbc, 0x7e, 0xa8, 0x73, 0x90, - 0x23, 0xda, 0xbb, 0xff, 0x2e, 0xb4, 0x28, 0x12, 0x44, 0xb4, 0x1a, 0xfb, 0xf3, 0x3f, 0x9c, 0x8e, - 0xfd, 0x17, 0xc8, 0x92, 0x0a, 0x46, 0xec, 0xee, 0x88, 0x15, 0x4d, 0x47, 0x57, 0x54, 0x89, 0xae, - 0x68, 0xa6, 0xbb, 0xa2, 0x71, 0xd6, 0x01, 0xc2, 0x34, 0x24, 0x79, 0x1d, 0xff, 0xc7, 0x31, 0x80, - 0x8a, 0xbe, 0x6b, 0x6c, 0xd2, 0xdd, 0xe1, 0x2f, 0x78, 0xf3, 0x1f, 0xb6, 0x8f, 0xfb, 0x5f, 0xb9, - 0x81, 0xf0, 0x56, 0x18, 0x63, 0xe3, 0x1e, 0xab, 0xc8, 0xd5, 0x42, 0x45, 0x02, 0x2a, 0xd4, 0x2c, - 0xbd, 0xdf, 0xd1, 0xbc, 0xfc, 0xc2, 0xb5, 0xcd, 0xe9, 0xae, 0x6b, 0x9b, 0x7b, 0xef, 0x41, 0x84, - 0x5c, 0xe6, 0x8c, 0xde, 0x23, 0x7d, 0x8a, 0x86, 0xe3, 0x87, 0xab, 0x51, 0x48, 0x13, 0x7c, 0x1c, - 0x8c, 0x59, 0xfe, 0x86, 0xb6, 0x12, 0xba, 0x0e, 0x56, 0x36, 0x37, 0x2c, 0xcd, 0xcb, 0x29, 0xb9, - 0xf9, 0x25, 0xc5, 0xc7, 0x48, 0x0e, 0xaa, 0x9d, 0x5c, 0xf4, 0x02, 0xb9, 0xb9, 0xf5, 0x38, 0x6f, - 0x38, 0x5b, 0xcb, 0x86, 0x79, 0xb1, 0x83, 0x7e, 0x41, 0xce, 0x82, 0xe4, 0xf0, 0x4f, 0xc7, 0xc3, - 0x5f, 0x8c, 0x93, 0x53, 0x13, 0x51, 0xbb, 0x23, 0x8c, 0x4a, 0x6f, 0x6e, 0x43, 0x00, 0xbc, 0x0d, - 0x72, 0x94, 0x51, 0xd6, 0x89, 0x9e, 0x09, 0xc5, 0xcf, 0xa7, 0xa4, 0xb1, 0x3f, 0xd0, 0xbb, 0x7d, - 0x1c, 0xcf, 0x09, 0x38, 0xce, 0x1d, 0x88, 0xb3, 0xc4, 0x21, 0x3d, 0xf3, 0x58, 0x18, 0x63, 0x92, - 0x56, 0x67, 0xf8, 0x56, 0x9c, 0x3f, 0xa2, 0x02, 0xe4, 0x56, 0xac, 0x5d, 0x5c, 0xb7, 0xf2, 0x29, - 0xf7, 0xd9, 0xe5, 0xaf, 0x6e, 0xe5, 0xd3, 0xe8, 0x55, 0xe3, 0x30, 0xee, 0x47, 0xd0, 0xfa, 0x7c, - 0x1a, 0xf2, 0x45, 0x1b, 0xeb, 0x0e, 0x5e, 0xb0, 0xad, 0x6d, 0x5a, 0x23, 0x79, 0x8f, 0xec, 0xdf, - 0x92, 0x76, 0xf1, 0xf0, 0x23, 0x5b, 0x75, 0x17, 0x16, 0x82, 0x25, 0x5d, 0x84, 0x4c, 0x7b, 0x8b, - 0x90, 0xe8, 0x2d, 0x52, 0x2e, 0x1f, 0xb2, 0xa5, 0x24, 0xdf, 0xd4, 0x3e, 0x9d, 0x86, 0x6c, 0xb1, - 0x65, 0x99, 0x98, 0x3f, 0x36, 0xd8, 0xf7, 0x7c, 0x5a, 0xef, 0x9d, 0x08, 0xf4, 0xcc, 0xb4, 0xac, - 0xad, 0x11, 0x08, 0xc0, 0x2d, 0x5b, 0x52, 0xb6, 0x72, 0x83, 0x54, 0x24, 0xe9, 0xe4, 0x05, 0xfa, - 0xed, 0x34, 0x4c, 0xd0, 0x58, 0x54, 0x85, 0x56, 0x0b, 0x3d, 0x22, 0x10, 0x6a, 0x8f, 0x28, 0x64, - 0xe8, 0x03, 0xd2, 0xc7, 0x62, 0xfc, 0x5a, 0xf9, 0xb4, 0x63, 0x04, 0xe5, 0x8a, 0x77, 0x4a, 0x43, - 0x6e, 0x2f, 0xad, 0x2f, 0x43, 0xc9, 0x8b, 0xfa, 0xaf, 0xd2, 0xae, 0x01, 0x60, 0x5e, 0x5c, 0xb5, - 0xf1, 0xae, 0x81, 0x2f, 0xa1, 0x2b, 0x03, 0x61, 0xef, 0x0f, 0xb4, 0xf3, 0x26, 0xe9, 0x45, 0x1c, - 0x8e, 0x64, 0xe8, 0x56, 0xd6, 0x64, 0x2b, 0xc8, 0xc4, 0x7a, 0xf1, 0xee, 0xe8, 0x47, 0x1c, 0x19, - 0x8d, 0xcf, 0x2e, 0xb9, 0x66, 0x13, 0xce, 0x45, 0xf2, 0x82, 0xfd, 0xf0, 0x18, 0x8c, 0xaf, 0x99, - 0x9d, 0x76, 0x4b, 0xef, 0x6c, 0xa1, 0x7f, 0x53, 0x20, 0x47, 0x6f, 0xe0, 0x43, 0x3f, 0x23, 0xc4, - 0xf3, 0x78, 0xfa, 0x0e, 0xb6, 0x3d, 0x17, 0x1c, 0xfa, 0x12, 0xd8, 0x47, 0x69, 0xce, 0x3e, 0x42, - 0xef, 0x57, 0x64, 0x27, 0xa9, 0x5e, 0xa1, 0xec, 0xca, 0xbf, 0xf0, 0x10, 0x12, 0x6d, 0xa3, 0xe1, - 0xec, 0xd8, 0xfe, 0x75, 0xf3, 0x8f, 0x91, 0xa3, 0xb2, 0x4a, 0xff, 0xd2, 0xfc, 0xdf, 0x91, 0x0e, - 0x63, 0x2c, 0x71, 0xdf, 0x76, 0xd2, 0xfe, 0x33, 0xef, 0x27, 0x21, 0xa7, 0xdb, 0x8e, 0xd1, 0x71, - 0xd8, 0x06, 0x2b, 0x7b, 0x73, 0xbb, 0x4b, 0xfa, 0xb4, 0x66, 0xb7, 0xbc, 0xc8, 0x3f, 0x7e, 0x02, - 0xfa, 0x7d, 0xa9, 0xf9, 0x63, 0x74, 0xcd, 0xe3, 0x41, 0x7e, 0xcf, 0x00, 0x6b, 0xd4, 0x97, 0xc3, - 0x65, 0x5a, 0xa1, 0x5e, 0x5a, 0xa7, 0x81, 0x62, 0xfc, 0x98, 0x30, 0x4d, 0xf4, 0x2e, 0x85, 0x5b, - 0xbf, 0xdb, 0x13, 0xc6, 0x08, 0x26, 0xc5, 0x60, 0x8c, 0xf0, 0x13, 0x22, 0x76, 0xab, 0x85, 0x45, - 0x58, 0x45, 0x7e, 0x11, 0xf6, 0x77, 0xa5, 0x77, 0x93, 0x7c, 0x51, 0xf6, 0x59, 0x03, 0x8c, 0xba, - 0xa1, 0xeb, 0x83, 0x52, 0x3b, 0x43, 0xfd, 0x4a, 0x3a, 0x44, 0xd8, 0xde, 0x38, 0x06, 0x63, 0x8b, - 0x7a, 0xab, 0x85, 0xed, 0x3d, 0x77, 0x48, 0xca, 0x7b, 0x1c, 0xae, 0xe8, 0xa6, 0xb1, 0x81, 0x3b, - 0x4e, 0x74, 0x67, 0xf9, 0x1e, 0xe9, 0xe8, 0xcf, 0xac, 0x8c, 0xd9, 0x6e, 0xfa, 0x21, 0x32, 0x3f, - 0x0b, 0x19, 0xc3, 0xdc, 0xb0, 0x58, 0x97, 0xd9, 0xbd, 0x6a, 0xef, 0xfd, 0x4c, 0xa6, 0x2e, 0x24, - 0xa3, 0x64, 0x00, 0x68, 0x49, 0x2e, 0x92, 0xef, 0x39, 0x7f, 0x2f, 0x03, 0xd3, 0x1e, 0x13, 0x65, - 0xb3, 0x89, 0xef, 0xe7, 0x97, 0x62, 0x5e, 0x9c, 0x91, 0x3d, 0x82, 0xd9, 0x5d, 0x1f, 0x42, 0x2a, - 0x44, 0xa4, 0x75, 0x80, 0x86, 0xee, 0xe0, 0x4d, 0xcb, 0x36, 0xfc, 0xfe, 0xf0, 0xf1, 0x71, 0xa8, - 0x15, 0xe9, 0xdf, 0x7b, 0x1a, 0x47, 0x47, 0xbd, 0x03, 0x26, 0xb1, 0x1f, 0xf3, 0xc2, 0x5b, 0xaa, - 0x89, 0xc4, 0x8b, 0xcf, 0x8f, 0xfe, 0x4a, 0xea, 0xa4, 0xa7, 0x4c, 0x35, 0xe3, 0x61, 0xb6, 0x3e, - 0x58, 0x1b, 0x5a, 0xab, 0xac, 0x14, 0xb4, 0xda, 0x52, 0x61, 0x79, 0xb9, 0x5c, 0x59, 0xf4, 0x83, - 0x2d, 0xa9, 0x30, 0x33, 0x5f, 0x3d, 0x5f, 0xe1, 0xa2, 0x61, 0x65, 0xd0, 0x2a, 0x8c, 0x7b, 0xf2, - 0xea, 0xe5, 0x8b, 0xc9, 0xcb, 0x8c, 0xf9, 0x62, 0x72, 0x49, 0xae, 0x71, 0x66, 0x34, 0x7c, 0x07, - 0x1d, 0xf2, 0x8c, 0xfe, 0x44, 0x87, 0x2c, 0x59, 0x53, 0x47, 0xef, 0x20, 0xdb, 0x80, 0xed, 0x96, - 0xde, 0xc0, 0x68, 0x3b, 0x86, 0x35, 0xee, 0x5d, 0x47, 0x92, 0xde, 0x77, 0x1d, 0x09, 0x79, 0x64, - 0x56, 0xdf, 0xf1, 0x5e, 0xeb, 0xf8, 0x1a, 0xcd, 0x22, 0x1e, 0x8a, 0x8c, 0xdc, 0x5d, 0xa1, 0xcb, - 0xff, 0x8c, 0xcd, 0x10, 0x95, 0x0c, 0xe7, 0x29, 0x9e, 0x25, 0x2a, 0xb7, 0x0f, 0x13, 0xc5, 0xd1, - 0x08, 0xae, 0xcc, 0xcf, 0x40, 0xb6, 0xd6, 0x6e, 0x19, 0x0e, 0x7a, 0x59, 0x7a, 0x28, 0x98, 0xd1, - 0x2b, 0x64, 0x94, 0xbe, 0x57, 0xc8, 0x04, 0xbb, 0xae, 0x19, 0x89, 0x5d, 0xd7, 0x3a, 0xbe, 0xdf, - 0x11, 0x77, 0x5d, 0x6f, 0x65, 0x01, 0x13, 0xe9, 0x9e, 0xed, 0x23, 0x7b, 0x88, 0x94, 0x54, 0xab, - 0x47, 0x24, 0xce, 0x33, 0x8f, 0x65, 0x01, 0x01, 0x01, 0x72, 0x73, 0xd5, 0x7a, 0xbd, 0xba, 0x92, - 0x3f, 0x42, 0x22, 0x49, 0x55, 0x57, 0x69, 0x78, 0xa6, 0x72, 0xa5, 0x52, 0xd2, 0xf2, 0x69, 0x12, - 0xa2, 0xb0, 0x5c, 0x5f, 0x2e, 0xe5, 0x15, 0xf1, 0x3e, 0x81, 0x48, 0xf3, 0x5b, 0x2c, 0x3b, 0x49, - 0xf5, 0x92, 0x33, 0xc4, 0xc3, 0xf9, 0x49, 0x5e, 0xb9, 0x7e, 0x53, 0x81, 0xec, 0x0a, 0xb6, 0x37, - 0x31, 0x7a, 0x7a, 0x8c, 0x4d, 0xbe, 0x0d, 0xc3, 0xee, 0xd0, 0x80, 0x8e, 0xc1, 0x26, 0x1f, 0x9f, - 0xa6, 0x5e, 0x07, 0xd3, 0x1d, 0xdc, 0xb0, 0xcc, 0xa6, 0x97, 0x89, 0xf6, 0x47, 0x62, 0x22, 0x7a, - 0x69, 0x4c, 0xc8, 0x08, 0xa3, 0x43, 0xd9, 0xa9, 0x8b, 0x03, 0x4c, 0xaf, 0x52, 0x93, 0x07, 0xe6, - 0xfb, 0x8a, 0xfb, 0x53, 0x7b, 0x0f, 0xbd, 0x54, 0x7a, 0xf7, 0xf5, 0x26, 0xc8, 0x11, 0x35, 0xf5, - 0xc6, 0xe8, 0xde, 0xfd, 0x31, 0xcb, 0xa3, 0xce, 0xc1, 0xb1, 0x0e, 0x6e, 0xe1, 0x86, 0x83, 0x9b, - 0x6e, 0xd3, 0xd5, 0xfa, 0x76, 0x0a, 0xfb, 0xb3, 0xa3, 0xbf, 0xe0, 0x01, 0xbc, 0x5d, 0x04, 0xf0, - 0xfa, 0x1e, 0xa2, 0x74, 0x2b, 0x14, 0x6e, 0x2b, 0xbb, 0xd5, 0xa8, 0xb5, 0x2c, 0x7f, 0x51, 0xdc, - 0x7b, 0x77, 0xbf, 0x6d, 0x39, 0xdb, 0x2d, 0xf2, 0x8d, 0x1d, 0x30, 0xf0, 0xde, 0xd5, 0x59, 0x18, - 0xd3, 0xcd, 0x3d, 0xf2, 0x29, 0x13, 0x51, 0x6b, 0x2f, 0x13, 0x7a, 0x95, 0x8f, 0xfc, 0x9d, 0x02, - 0xf2, 0x8f, 0x96, 0x63, 0x37, 0x79, 0xe0, 0x7f, 0x79, 0x0c, 0xb2, 0xab, 0x7a, 0xc7, 0xc1, 0xe8, - 0xff, 0x56, 0x64, 0x91, 0xbf, 0x1e, 0x66, 0x36, 0xac, 0xc6, 0x4e, 0x07, 0x37, 0xc5, 0x46, 0xd9, - 0x95, 0x3a, 0x0c, 0xcc, 0xd5, 0x1b, 0x21, 0xef, 0x25, 0x32, 0xb2, 0xde, 0x36, 0xfc, 0xbe, 0x74, - 0x12, 0x9d, 0xbe, 0xb3, 0xaa, 0xdb, 0x4e, 0x75, 0x83, 0xa4, 0xf9, 0xd1, 0xe9, 0xf9, 0x44, 0x01, - 0xfa, 0x5c, 0x04, 0xf4, 0x63, 0xe1, 0xd0, 0x8f, 0x4b, 0x40, 0xaf, 0x16, 0x60, 0x7c, 0xc3, 0x68, - 0x61, 0xf2, 0xc3, 0x04, 0xf9, 0xa1, 0xd7, 0x98, 0x44, 0x64, 0xef, 0x8f, 0x49, 0x0b, 0x46, 0x0b, - 0x6b, 0xfe, 0x6f, 0xde, 0x44, 0x06, 0x82, 0x89, 0xcc, 0x32, 0xf5, 0xa7, 0x75, 0x0d, 0x2f, 0x53, - 0xdf, 0xc6, 0xde, 0xe2, 0x9b, 0xc9, 0x0e, 0xb7, 0x34, 0x75, 0x47, 0x27, 0x60, 0x4c, 0x69, 0xe4, - 0x59, 0xf4, 0x0b, 0x51, 0xba, 0xfd, 0x42, 0x9e, 0xa3, 0xc4, 0xeb, 0x11, 0x3d, 0x66, 0x43, 0x5a, - 0xd4, 0x05, 0x0f, 0x20, 0x6a, 0x29, 0xfa, 0xef, 0x2e, 0x30, 0x0d, 0xdd, 0xc6, 0xce, 0x2a, 0xef, - 0x89, 0x91, 0xd5, 0xc4, 0x44, 0xe2, 0xca, 0xd7, 0xa9, 0xe9, 0xdb, 0x98, 0x14, 0x56, 0x74, 0xbf, - 0x31, 0x17, 0xad, 0x7d, 0xe9, 0x41, 0xff, 0x9b, 0x1d, 0x76, 0xff, 0xdb, 0xab, 0x8e, 0xc9, 0x37, - 0xc3, 0xd7, 0x66, 0x40, 0x29, 0xee, 0x38, 0x0f, 0xeb, 0xee, 0xf7, 0x47, 0xd2, 0x7e, 0x2e, 0xac, - 0x3f, 0xdb, 0x71, 0x0e, 0xb7, 0xf7, 0x8d, 0xa9, 0x25, 0x72, 0xfe, 0x34, 0x61, 0x75, 0x4b, 0x5e, - 0x47, 0xde, 0xaa, 0xf8, 0x0e, 0x96, 0x0f, 0xa4, 0x0e, 0x6e, 0x9a, 0x23, 0xda, 0x3f, 0x71, 0x3d, - 0x83, 0xff, 0xee, 0x75, 0x3c, 0x19, 0x21, 0x3e, 0x26, 0xd9, 0x5e, 0x27, 0xa2, 0x9c, 0xd2, 0xe8, - 0x0b, 0x7a, 0xb9, 0xb4, 0xdb, 0x39, 0x15, 0x5b, 0xa4, 0x2b, 0x61, 0x3c, 0x9b, 0x4a, 0xee, 0x82, - 0xde, 0x88, 0x62, 0x93, 0x07, 0xec, 0xbb, 0xbc, 0xab, 0x60, 0xe1, 0xc0, 0x88, 0xa1, 0x57, 0x4b, - 0x6f, 0x47, 0xd1, 0x6a, 0xf7, 0x59, 0x2f, 0x8c, 0x27, 0x6f, 0xb9, 0xcd, 0xaa, 0xc8, 0x82, 0x93, - 0x97, 0xf8, 0x77, 0x14, 0xc8, 0xd1, 0x2d, 0x48, 0xf4, 0x66, 0xe9, 0x26, 0xe2, 0xf6, 0x46, 0xa2, - 0x0b, 0xa1, 0xff, 0x1e, 0x67, 0xcd, 0x41, 0x70, 0x35, 0xcc, 0xc4, 0x72, 0x35, 0x14, 0xcf, 0x71, - 0x4a, 0xb4, 0x23, 0x5a, 0xc7, 0x84, 0xa7, 0x93, 0x71, 0x5a, 0x58, 0x4f, 0x86, 0x92, 0xc7, 0xfb, - 0x79, 0x59, 0x98, 0xa2, 0x45, 0x9f, 0x37, 0x9a, 0x9b, 0xd8, 0x41, 0xef, 0x4a, 0xff, 0xf8, 0xa0, - 0xae, 0x56, 0x60, 0xea, 0x12, 0x61, 0x7b, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xb6, 0x72, 0x71, 0x63, - 0xe4, 0xba, 0x07, 0xad, 0xe7, 0x2c, 0xfd, 0x43, 0x13, 0xfe, 0x77, 0x65, 0x4c, 0x17, 0xfc, 0xa9, - 0x03, 0x57, 0x8e, 0x18, 0x59, 0x7c, 0x92, 0x7a, 0x12, 0x72, 0xbb, 0x06, 0xbe, 0x54, 0x6e, 0x32, - 0xeb, 0x96, 0xbd, 0xa1, 0x3f, 0x94, 0xde, 0xb7, 0xe5, 0xe1, 0x66, 0xbc, 0x24, 0xab, 0x85, 0x72, - 0xbb, 0xb7, 0x7d, 0xd9, 0x1a, 0xc1, 0x99, 0x62, 0xf1, 0x02, 0xdc, 0x62, 0x0c, 0x45, 0x0c, 0x33, - 0x9c, 0xc5, 0x50, 0x1e, 0x91, 0x27, 0x56, 0xa8, 0x00, 0x86, 0x7c, 0x37, 0xae, 0x5c, 0x7c, 0x89, - 0x3e, 0x45, 0x27, 0x2f, 0xf9, 0xd7, 0x29, 0x30, 0x51, 0xc3, 0xce, 0x82, 0x81, 0x5b, 0xcd, 0x0e, - 0xb2, 0x0f, 0x6e, 0x1a, 0x9d, 0x85, 0xdc, 0x06, 0x21, 0xd6, 0xef, 0xdc, 0x02, 0xcb, 0x86, 0x5e, - 0x9b, 0x96, 0xdd, 0x11, 0x66, 0xab, 0x6f, 0x1e, 0xb7, 0x43, 0x81, 0x49, 0xce, 0xa3, 0x37, 0xba, - 0xe4, 0x11, 0x04, 0x93, 0x56, 0x60, 0x8a, 0xdd, 0x98, 0x59, 0x68, 0x19, 0x9b, 0x26, 0xda, 0x19, - 0x42, 0x0b, 0x51, 0x6f, 0x86, 0xac, 0xee, 0x52, 0x63, 0x5b, 0xaf, 0xa8, 0x67, 0xe7, 0x49, 0xca, - 0xd3, 0x68, 0xc6, 0x18, 0xa1, 0x5b, 0x03, 0xc5, 0xf6, 0x78, 0x1e, 0x61, 0xe8, 0xd6, 0xbe, 0x85, - 0x27, 0x8f, 0xd8, 0x57, 0x15, 0x38, 0xce, 0x18, 0x38, 0x87, 0x6d, 0xc7, 0x68, 0xe8, 0x2d, 0x8a, - 0xdc, 0x0b, 0x52, 0xc3, 0x80, 0x6e, 0x09, 0xa6, 0x77, 0x79, 0xb2, 0x0c, 0xc2, 0x33, 0x3d, 0x21, - 0x14, 0x18, 0xd0, 0xc4, 0x1f, 0x63, 0x84, 0xc0, 0x14, 0xa4, 0x2a, 0xd0, 0x1c, 0x61, 0x08, 0x4c, - 0x69, 0x26, 0x92, 0x87, 0xf8, 0x25, 0x2c, 0x34, 0x4f, 0xd0, 0x7d, 0x7e, 0x41, 0x1a, 0xdb, 0x35, - 0x98, 0x24, 0x58, 0xd2, 0x1f, 0xd9, 0x32, 0x44, 0x84, 0x12, 0xfb, 0xfd, 0x0e, 0xbb, 0xa4, 0xcf, - 0xff, 0x57, 0xe3, 0xe9, 0xa0, 0xf3, 0x00, 0xc1, 0x27, 0xbe, 0x93, 0x4e, 0x85, 0x75, 0xd2, 0x69, - 0xb9, 0x4e, 0xfa, 0x4d, 0xd2, 0xc1, 0x52, 0x7a, 0xb3, 0x7d, 0x70, 0xf5, 0x90, 0x0b, 0x93, 0xd1, - 0xbf, 0xf4, 0xe4, 0xf5, 0xe2, 0x55, 0x4c, 0x2f, 0xe6, 0x77, 0xda, 0x2d, 0xa3, 0xe1, 0xce, 0xa7, - 0x3e, 0x36, 0x94, 0xf9, 0x14, 0xdf, 0x1f, 0x28, 0x5d, 0xfd, 0xc1, 0x01, 0x2c, 0xe9, 0x1b, 0xe0, - 0x28, 0x2d, 0xa2, 0xe8, 0xb3, 0x95, 0xa5, 0xa1, 0x20, 0xba, 0x92, 0xc5, 0xb8, 0x76, 0x92, 0x4a, - 0xe0, 0x0b, 0x61, 0x80, 0xa5, 0xcf, 0x78, 0xc6, 0x6e, 0x5c, 0x05, 0x09, 0xe3, 0x6c, 0x04, 0x6e, - 0xa1, 0x19, 0x6a, 0xed, 0xae, 0x91, 0x7b, 0x14, 0xd1, 0x97, 0x32, 0xc3, 0x18, 0x11, 0xee, 0x82, - 0x0c, 0x71, 0x71, 0x57, 0x42, 0x97, 0x34, 0x82, 0x22, 0x83, 0x4b, 0x2e, 0xf1, 0xfd, 0xce, 0xd2, - 0x11, 0x8d, 0xfc, 0xa9, 0xde, 0x08, 0x47, 0x2f, 0xe8, 0x8d, 0x8b, 0x9b, 0xb6, 0xb5, 0x43, 0x6e, - 0x9c, 0xb3, 0xd8, 0xd5, 0x75, 0xe4, 0x0a, 0x50, 0xf1, 0x83, 0x7a, 0x8b, 0x67, 0x3a, 0x64, 0xfb, - 0x99, 0x0e, 0x4b, 0x47, 0x98, 0xf1, 0xa0, 0x3e, 0xd6, 0xef, 0x74, 0x72, 0x91, 0x9d, 0xce, 0xd2, - 0x11, 0xaf, 0xdb, 0x51, 0xe7, 0x61, 0xbc, 0x69, 0xec, 0x92, 0xad, 0x6a, 0x32, 0xeb, 0xea, 0x77, - 0x74, 0x79, 0xde, 0xd8, 0xa5, 0x1b, 0xdb, 0x4b, 0x47, 0x34, 0xff, 0x4f, 0x75, 0x11, 0x26, 0xc8, - 0xb6, 0x00, 0x21, 0x33, 0x1e, 0xeb, 0x58, 0xf2, 0xd2, 0x11, 0x2d, 0xf8, 0xd7, 0xb5, 0x3e, 0x32, - 0xe4, 0xec, 0xc7, 0x9d, 0xde, 0x76, 0x7b, 0x2a, 0xd6, 0x76, 0xbb, 0x2b, 0x0b, 0xba, 0xe1, 0x7e, - 0x12, 0xb2, 0x0d, 0x22, 0xe1, 0x34, 0x93, 0x30, 0x7d, 0x55, 0x6f, 0x87, 0xcc, 0xb6, 0x6e, 0x7b, - 0x93, 0xe7, 0xeb, 0xfb, 0xd3, 0x5d, 0xd1, 0xed, 0x8b, 0x2e, 0x82, 0xee, 0x5f, 0x73, 0x63, 0x90, - 0x25, 0x82, 0xf3, 0x1f, 0xd0, 0x5b, 0x33, 0xd4, 0x0c, 0x29, 0x5a, 0xa6, 0x3b, 0xec, 0xd7, 0x2d, - 0xef, 0x80, 0xcc, 0x1f, 0xa6, 0x86, 0x63, 0x41, 0x5e, 0xc6, 0x05, 0x9c, 0x35, 0x8d, 0xa7, 0xef, - 0xe0, 0x7b, 0xf0, 0x1e, 0x5b, 0x12, 0xed, 0xf5, 0xa9, 0xeb, 0x52, 0xeb, 0x4c, 0xf7, 0xa5, 0xd6, - 0xc1, 0xf2, 0x41, 0xb6, 0xbf, 0xa3, 0xca, 0x5f, 0x0c, 0x60, 0xba, 0x74, 0x0b, 0x22, 0x7c, 0x06, - 0xde, 0x32, 0x4c, 0xae, 0xce, 0xde, 0x6b, 0xcc, 0x4e, 0x29, 0xae, 0x51, 0xd3, 0x87, 0xbd, 0xe4, - 0xfb, 0xa6, 0xdf, 0xc9, 0xc0, 0x29, 0x7a, 0x75, 0xfa, 0x2e, 0xae, 0x5b, 0xe2, 0x1d, 0xaf, 0xe8, - 0x4f, 0x87, 0xa2, 0x34, 0x3d, 0x06, 0x1c, 0xa5, 0xe7, 0x80, 0xb3, 0xef, 0x90, 0x72, 0xa6, 0xcf, - 0x21, 0xe5, 0x6c, 0xbc, 0x95, 0xc3, 0x0f, 0xf1, 0xfa, 0xb3, 0x2a, 0xea, 0xcf, 0x6d, 0x21, 0x00, - 0xf5, 0x92, 0xcb, 0x50, 0xec, 0x9b, 0x77, 0xf8, 0x9a, 0x52, 0x13, 0x34, 0xe5, 0xce, 0xc1, 0x19, - 0x49, 0x5e, 0x5b, 0xfe, 0x20, 0x03, 0x97, 0x05, 0xcc, 0x54, 0xf0, 0x25, 0xa6, 0x28, 0x9f, 0x1f, - 0x8a, 0xa2, 0xc4, 0x8f, 0x81, 0x90, 0xb4, 0xc6, 0xfc, 0x99, 0xf4, 0xd9, 0xa1, 0x6e, 0xa0, 0x7c, - 0xd9, 0x84, 0x28, 0xcb, 0x49, 0xc8, 0xd1, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x62, 0x76, 0x37, 0x72, - 0x27, 0x8e, 0x64, 0x79, 0x1b, 0x81, 0xfe, 0xb0, 0x75, 0x8d, 0xfa, 0x8e, 0x6d, 0x96, 0x4d, 0xc7, - 0x42, 0xbf, 0x34, 0x14, 0xc5, 0xf1, 0xbd, 0xe1, 0x94, 0x41, 0xbc, 0xe1, 0x06, 0x5a, 0xe5, 0xf0, - 0x6a, 0x70, 0x28, 0xab, 0x1c, 0x21, 0x85, 0x27, 0x8f, 0xdf, 0xdb, 0x15, 0x38, 0xc9, 0x26, 0x5b, - 0x73, 0xa2, 0x85, 0x88, 0xee, 0x1d, 0x06, 0x90, 0xc7, 0x3d, 0x33, 0x89, 0xdd, 0x2c, 0x48, 0x5e, - 0xc4, 0x93, 0x52, 0x91, 0x77, 0xaa, 0x08, 0xd3, 0xc1, 0x2e, 0x0e, 0x87, 0x82, 0x94, 0xdc, 0x55, - 0x2a, 0x31, 0xd8, 0x48, 0x1e, 0xb3, 0x17, 0x29, 0x90, 0xa3, 0xe7, 0xb4, 0xd0, 0x5a, 0x22, 0x0e, - 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, 0x39, 0xca, 0x4d, 0x62, 0x67, 0xd8, 0xe2, 0xec, 0xc5, 0xf5, - 0x64, 0x65, 0x04, 0x2e, 0x84, 0x69, 0x98, 0xac, 0x61, 0xa7, 0xa8, 0xdb, 0xb6, 0xa1, 0x6f, 0x0e, - 0xcb, 0xe3, 0x5b, 0xd6, 0x7b, 0x18, 0xfd, 0x20, 0x25, 0x7b, 0x9e, 0xc6, 0x5f, 0x08, 0xf7, 0x58, - 0x0d, 0x89, 0x25, 0xf8, 0x90, 0xd4, 0x99, 0x99, 0x7e, 0xd4, 0x46, 0xe0, 0xb1, 0x9d, 0x86, 0x31, - 0xef, 0x2c, 0xde, 0x59, 0xe1, 0x7c, 0xe6, 0x96, 0xb3, 0xed, 0x1d, 0x83, 0x21, 0xcf, 0xfb, 0xcf, - 0x80, 0xa1, 0x57, 0xc6, 0x74, 0x94, 0x8f, 0x3e, 0x48, 0x18, 0xaf, 0x8d, 0xc5, 0x71, 0x87, 0x3f, - 0xac, 0xa3, 0x83, 0x1f, 0x18, 0x63, 0xcb, 0x91, 0xcb, 0xba, 0x83, 0xef, 0x47, 0x5f, 0x50, 0x60, - 0xac, 0x86, 0x1d, 0x77, 0xbc, 0x15, 0x2e, 0x14, 0x1e, 0x54, 0xc3, 0x55, 0x6e, 0xc5, 0x63, 0x82, - 0xad, 0x61, 0xdc, 0x0d, 0x13, 0x6d, 0xdb, 0x6a, 0xe0, 0x4e, 0x87, 0xad, 0x5e, 0xf0, 0x8e, 0x6a, - 0xbd, 0x46, 0x7f, 0xc2, 0xda, 0xec, 0xaa, 0xf7, 0x8f, 0x16, 0xfc, 0x1e, 0xd7, 0x0c, 0xa0, 0x94, - 0x58, 0x05, 0x47, 0x6d, 0x06, 0x44, 0x15, 0x9e, 0x3c, 0xd0, 0x9f, 0x55, 0x60, 0xaa, 0x86, 0x1d, - 0x5f, 0x8a, 0x31, 0x36, 0x39, 0xc2, 0xe1, 0x15, 0xa0, 0x54, 0x0e, 0x06, 0xa5, 0xfc, 0x75, 0x9c, - 0xa2, 0x34, 0x7d, 0x62, 0x23, 0xbc, 0x8e, 0x53, 0x8e, 0x83, 0x11, 0x1c, 0x5f, 0x7b, 0x24, 0x4c, - 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xd5, 0x4c, 0xd0, 0x78, 0xbf, 0x98, 0x50, 0xe3, 0xbd, 0x03, 0xb2, - 0xdb, 0xba, 0x7d, 0xb1, 0x43, 0x1a, 0xee, 0xa4, 0x8c, 0xd9, 0xbe, 0xe2, 0x66, 0xd7, 0xe8, 0x5f, - 0xbd, 0xfd, 0x34, 0xb3, 0xf1, 0xfc, 0x34, 0x1f, 0x4a, 0xc7, 0x1a, 0x09, 0xe9, 0xdc, 0x61, 0x88, - 0x4d, 0x3e, 0xc6, 0xb8, 0x19, 0x51, 0x76, 0xf2, 0xca, 0xf1, 0x02, 0x05, 0xc6, 0xdd, 0x71, 0x9b, - 0xd8, 0xe3, 0xe7, 0x0f, 0xae, 0x0e, 0xbd, 0x0d, 0xfd, 0x98, 0x3d, 0xb0, 0x27, 0x91, 0xe1, 0x99, - 0xf7, 0x31, 0x7a, 0xe0, 0xa8, 0xc2, 0x93, 0xc7, 0xe3, 0x9d, 0x14, 0x0f, 0xd2, 0x1e, 0xd0, 0x1b, - 0x14, 0x50, 0x16, 0xb1, 0x33, 0x6a, 0x2b, 0xf2, 0x6d, 0xd2, 0x21, 0x8e, 0x04, 0x81, 0x11, 0x9e, - 0x67, 0x17, 0xf1, 0x70, 0x1a, 0x90, 0x5c, 0x6c, 0x23, 0x29, 0x06, 0x92, 0x47, 0xed, 0xbd, 0x14, - 0x35, 0xba, 0xb9, 0xf0, 0x8b, 0x43, 0xe8, 0x55, 0x47, 0xbb, 0xf0, 0xe1, 0x09, 0x90, 0xd0, 0x38, - 0xac, 0xf6, 0xd6, 0xab, 0xf0, 0x91, 0x5c, 0x7f, 0x09, 0x6e, 0x63, 0xdf, 0xc2, 0x8d, 0x8b, 0xb8, - 0xc9, 0x5f, 0x27, 0x36, 0x28, 0x74, 0xa7, 0x60, 0xac, 0x41, 0xa9, 0x11, 0xf0, 0xc6, 0x35, 0xef, - 0x35, 0xc6, 0x5d, 0xee, 0x62, 0x47, 0x44, 0x7f, 0x1f, 0xe1, 0x5d, 0xee, 0x12, 0xc5, 0x8f, 0xc0, - 0x6c, 0xa1, 0xb3, 0x8c, 0x72, 0xc3, 0x32, 0xd1, 0x7f, 0x3e, 0x38, 0x2c, 0x57, 0xc1, 0x84, 0xd1, - 0xb0, 0x4c, 0x12, 0x86, 0xc2, 0x3b, 0x04, 0xe4, 0x27, 0x78, 0x5f, 0x4b, 0xdb, 0xd6, 0x7d, 0x06, - 0xdb, 0x35, 0x0f, 0x12, 0x06, 0x35, 0x26, 0x5c, 0xd6, 0x0f, 0xcb, 0x98, 0xe8, 0x51, 0x76, 0xf2, - 0x90, 0x7d, 0x3c, 0xf0, 0x6e, 0xa3, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, 0x90, 0xe1, 0x8c, 0xaf, - 0xc5, 0xa1, 0x0c, 0x67, 0x11, 0x0c, 0x8c, 0xe0, 0xc6, 0x8a, 0x00, 0xc7, 0xc4, 0xd7, 0x80, 0x0f, - 0x80, 0xce, 0xf0, 0xcc, 0xc3, 0x01, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0x83, 0x2c, 0x44, 0x26, 0xb3, - 0x78, 0xd0, 0x7f, 0x19, 0x06, 0x38, 0xb7, 0x0d, 0xe2, 0xaf, 0x40, 0xbd, 0x15, 0x62, 0xdc, 0x42, - 0xbf, 0x4f, 0x82, 0x2e, 0x95, 0xa1, 0x20, 0x28, 0x77, 0x0b, 0xbd, 0x4c, 0xf9, 0xc9, 0x03, 0xf8, - 0x7c, 0x05, 0x66, 0x88, 0x8f, 0x40, 0x0b, 0xeb, 0x36, 0xed, 0x28, 0x87, 0xe2, 0x28, 0xff, 0x4e, - 0xe9, 0x00, 0x3f, 0xa2, 0x1c, 0x02, 0x3e, 0x86, 0x02, 0x85, 0x5c, 0x74, 0x1f, 0x49, 0x16, 0x46, - 0xb2, 0x8d, 0x92, 0xf7, 0x59, 0x60, 0x2a, 0x3e, 0x1c, 0x3c, 0x62, 0x7a, 0xe4, 0x8a, 0xc2, 0xf0, - 0x1a, 0xdb, 0x88, 0x3d, 0x72, 0x65, 0x98, 0x48, 0x1e, 0x93, 0x37, 0xdc, 0xcc, 0x16, 0x9c, 0xeb, - 0xfa, 0x85, 0x16, 0x46, 0xaf, 0xce, 0xf8, 0x27, 0xda, 0x3e, 0x3b, 0x14, 0x0f, 0xcc, 0x03, 0x04, - 0xc4, 0x57, 0x21, 0x63, 0x5b, 0x97, 0xe8, 0xd2, 0xd6, 0xb4, 0x46, 0x9e, 0xe9, 0xf5, 0x94, 0xad, - 0x9d, 0x6d, 0x93, 0x9e, 0x0c, 0x9d, 0xd6, 0xbc, 0x57, 0xf5, 0x3a, 0x98, 0xbe, 0x64, 0x38, 0x5b, - 0x4b, 0x58, 0x6f, 0x62, 0x5b, 0xb3, 0x2e, 0x11, 0x8f, 0xb9, 0x71, 0x4d, 0x4c, 0x14, 0xfd, 0x57, - 0x24, 0xec, 0x4b, 0x57, 0x28, 0xa3, 0x39, 0xfe, 0x16, 0xc7, 0xf2, 0x0c, 0xe7, 0x2a, 0x79, 0x85, - 0x79, 0x9f, 0x02, 0x13, 0x9a, 0x75, 0x89, 0x29, 0xc9, 0xff, 0x71, 0xb8, 0x3a, 0x12, 0x7b, 0xa2, - 0x47, 0x24, 0xe7, 0xb3, 0x3f, 0xf2, 0x89, 0x5e, 0x64, 0xf1, 0x23, 0x39, 0xb9, 0x34, 0xa5, 0x59, - 0x97, 0x6a, 0xd8, 0xa1, 0x2d, 0x02, 0xad, 0x0f, 0xc9, 0xc9, 0xda, 0xe8, 0x50, 0x82, 0x6c, 0x1e, - 0xee, 0xbf, 0xc7, 0xdd, 0x45, 0xf0, 0x05, 0xe4, 0xb3, 0x38, 0xea, 0x5d, 0x84, 0xbe, 0x1c, 0x8c, - 0x20, 0x46, 0x8a, 0x02, 0x93, 0x9a, 0x75, 0xc9, 0x1d, 0x1a, 0x16, 0x8c, 0x56, 0x6b, 0x38, 0x23, - 0x64, 0x5c, 0xe3, 0xdf, 0x13, 0x83, 0xc7, 0xc5, 0xc8, 0x8d, 0xff, 0x3e, 0x0c, 0x24, 0x0f, 0xc3, - 0x73, 0x68, 0x63, 0xf1, 0x46, 0x68, 0x73, 0x38, 0x38, 0x0c, 0xda, 0x20, 0x7c, 0x36, 0x0e, 0xad, - 0x41, 0x84, 0x71, 0x30, 0x92, 0x9d, 0x93, 0x99, 0x22, 0x19, 0xe6, 0x87, 0xdb, 0x26, 0xde, 0x1d, - 0xcf, 0x35, 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x43, 0x41, 0x23, 0x86, 0x0b, 0xa2, 0x04, 0x0f, 0xc9, - 0xe3, 0xf1, 0x11, 0x05, 0xa6, 0x28, 0x0b, 0x0f, 0x13, 0x2b, 0x60, 0xa0, 0x46, 0xc5, 0xd7, 0xe0, - 0x70, 0x1a, 0x55, 0x04, 0x07, 0x23, 0xb9, 0x15, 0xd4, 0xb5, 0xe3, 0x06, 0x38, 0x3e, 0x1e, 0x86, - 0xe0, 0xc0, 0xc6, 0xd8, 0x10, 0x8f, 0x90, 0x0f, 0x62, 0x8c, 0x1d, 0xd2, 0x31, 0xf2, 0xe7, 0xf8, - 0xad, 0x68, 0x98, 0x18, 0x1c, 0xa0, 0x29, 0x0c, 0x11, 0x86, 0x01, 0x9b, 0xc2, 0x21, 0x21, 0xf1, - 0x35, 0x05, 0x80, 0x32, 0xb0, 0x62, 0xed, 0x92, 0xcb, 0x7c, 0x86, 0xd0, 0x9d, 0x75, 0xbb, 0xd5, - 0x2b, 0x7d, 0xdc, 0xea, 0x63, 0x86, 0x70, 0x89, 0xbb, 0x12, 0xc8, 0x49, 0xd9, 0xad, 0xe4, 0xc8, - 0x57, 0x02, 0xa3, 0xcb, 0x4f, 0x1e, 0xe3, 0xaf, 0x50, 0x6b, 0x2e, 0x38, 0x60, 0xfa, 0xdb, 0x43, - 0x41, 0x99, 0x9b, 0xfd, 0x2b, 0xe2, 0xec, 0xff, 0x00, 0xd8, 0x0e, 0x6a, 0x23, 0xf6, 0x3b, 0x38, - 0x9a, 0xbc, 0x8d, 0x78, 0x78, 0x07, 0x44, 0x7f, 0x31, 0x03, 0x47, 0x59, 0x27, 0xf2, 0xe3, 0x00, - 0x71, 0xcc, 0x73, 0x78, 0x42, 0x27, 0xd9, 0x07, 0xe5, 0x61, 0x2d, 0x48, 0xc5, 0x59, 0xca, 0x94, - 0x60, 0x6f, 0x24, 0xab, 0x1b, 0xb9, 0xd2, 0xfd, 0x6d, 0xdd, 0x6c, 0xca, 0x87, 0xfb, 0xed, 0x03, - 0xbc, 0xb7, 0xd6, 0xa8, 0x88, 0x6b, 0x8d, 0x3d, 0x56, 0x26, 0x63, 0xef, 0x5c, 0x13, 0x91, 0x51, - 0x76, 0x47, 0xbe, 0x73, 0x1d, 0x5e, 0x76, 0xf2, 0x28, 0xbd, 0x5b, 0x81, 0x4c, 0xcd, 0xb2, 0x1d, - 0xf4, 0xdc, 0x38, 0xad, 0x93, 0x4a, 0x3e, 0x00, 0xc9, 0x7b, 0x57, 0x8b, 0xc2, 0x2d, 0xcd, 0x67, - 0xa3, 0x8f, 0x3a, 0xeb, 0x8e, 0x4e, 0xbc, 0xba, 0xdd, 0xf2, 0xb9, 0xeb, 0x9a, 0xe3, 0xc6, 0xd3, - 0xa1, 0xf2, 0xab, 0x85, 0x1f, 0xc0, 0x48, 0x2c, 0x9e, 0x4e, 0x68, 0xc9, 0xc9, 0xe3, 0xf6, 0xe0, - 0x51, 0xe6, 0xdb, 0xba, 0x60, 0xb4, 0x30, 0x7a, 0x2e, 0x75, 0x19, 0xa9, 0xe8, 0xdb, 0x58, 0xfe, - 0x48, 0x4c, 0xa4, 0x6b, 0x2b, 0x89, 0x2f, 0xab, 0x04, 0xf1, 0x65, 0xe3, 0x36, 0x28, 0x7a, 0x00, - 0x9d, 0xb2, 0x34, 0xea, 0x06, 0x15, 0x51, 0xf6, 0x48, 0xe2, 0x74, 0x1e, 0xab, 0x61, 0x87, 0x1a, - 0x95, 0x55, 0xef, 0x06, 0x96, 0xa7, 0x0d, 0x25, 0x62, 0xa7, 0x7f, 0xc1, 0x8b, 0xd2, 0x75, 0xc1, - 0xcb, 0xfb, 0x78, 0x70, 0x56, 0x44, 0x70, 0x7e, 0x36, 0x5c, 0x40, 0x22, 0x93, 0x43, 0x81, 0xe9, - 0x6d, 0x3e, 0x4c, 0xab, 0x02, 0x4c, 0xb7, 0x0f, 0xc8, 0x45, 0xf2, 0x80, 0xfd, 0x5a, 0x16, 0x8e, - 0xd2, 0x49, 0x7f, 0xc1, 0x6c, 0xb2, 0x08, 0xab, 0x6f, 0x4e, 0x1f, 0xf2, 0x66, 0xdb, 0xfe, 0x10, - 0xac, 0x42, 0x2c, 0xe7, 0x6c, 0xf7, 0xed, 0xf8, 0x73, 0x34, 0x9c, 0xab, 0xdb, 0x89, 0x92, 0x9d, - 0x36, 0xf9, 0x1b, 0xf2, 0xfd, 0xff, 0xc4, 0xbb, 0x8c, 0xc6, 0xe4, 0xef, 0x32, 0xfa, 0xf3, 0x78, - 0xeb, 0x76, 0xa4, 0xe8, 0x2e, 0x81, 0x27, 0x6c, 0x3b, 0xc5, 0x58, 0xd1, 0x93, 0xe0, 0xee, 0x27, - 0xc3, 0x9d, 0x2c, 0x88, 0x20, 0x32, 0xa0, 0x3b, 0x19, 0x21, 0x70, 0x98, 0xee, 0x64, 0xfd, 0x18, - 0x18, 0xc1, 0xad, 0xf6, 0x59, 0xb6, 0x9b, 0x4f, 0xda, 0x0d, 0xfa, 0x9b, 0x74, 0xe2, 0xa3, 0xf4, - 0x0f, 0x53, 0xb1, 0xfc, 0x9f, 0x09, 0x5f, 0xd1, 0xc3, 0x74, 0x1c, 0x8f, 0xe6, 0x28, 0x72, 0x23, - 0x58, 0x37, 0x4a, 0x13, 0x5f, 0xf4, 0xf3, 0x46, 0xd3, 0xd9, 0x1a, 0xd2, 0x89, 0x8e, 0x4b, 0x2e, - 0x2d, 0xef, 0x7a, 0x64, 0xf2, 0x82, 0xfe, 0x35, 0x15, 0x2b, 0x84, 0x94, 0x2f, 0x12, 0xc2, 0x56, - 0x88, 0x88, 0x63, 0x04, 0x7e, 0x8a, 0xa4, 0x37, 0x42, 0x8d, 0x3e, 0x67, 0x34, 0xb1, 0xf5, 0x30, - 0xd4, 0x68, 0xc2, 0xd7, 0xf0, 0x34, 0x3a, 0x8a, 0xdc, 0x4f, 0xa8, 0x46, 0xfb, 0x22, 0x19, 0x92, - 0x46, 0x47, 0xd2, 0x4b, 0x5e, 0xc6, 0xaf, 0x9c, 0x62, 0x13, 0xa9, 0x65, 0xc3, 0xbc, 0x88, 0xfe, - 0x39, 0xe7, 0x5d, 0xcc, 0x7c, 0xde, 0x70, 0xb6, 0x58, 0x2c, 0x98, 0x3f, 0x90, 0xbe, 0x1b, 0x65, - 0x80, 0x78, 0x2f, 0x62, 0x38, 0xa9, 0xec, 0xbe, 0x70, 0x52, 0x05, 0x98, 0x36, 0x4c, 0x07, 0xdb, - 0xa6, 0xde, 0x5a, 0x68, 0xe9, 0x9b, 0x9d, 0x53, 0x63, 0x3d, 0x2f, 0xaf, 0x2b, 0x73, 0x79, 0x34, - 0xf1, 0x0f, 0xfe, 0xfa, 0xca, 0x71, 0xf1, 0xfa, 0xca, 0x90, 0xe8, 0x57, 0x13, 0xe1, 0xd1, 0xaf, - 0xfc, 0xe8, 0x56, 0xd0, 0x3f, 0x38, 0xb6, 0xac, 0x6d, 0x1c, 0x33, 0xdc, 0xdf, 0x59, 0xc9, 0x28, - 0x6c, 0x7e, 0xe8, 0xc7, 0xd7, 0x28, 0xb1, 0x56, 0xf7, 0x5c, 0x45, 0x98, 0xed, 0x56, 0x82, 0xd8, - 0x16, 0x2a, 0x5f, 0x79, 0xa5, 0xab, 0xf2, 0xbe, 0xc9, 0x93, 0x91, 0x30, 0x79, 0x78, 0xa5, 0xca, - 0xca, 0x29, 0x55, 0x9c, 0xc5, 0x42, 0x99, 0xda, 0x8e, 0xe0, 0x34, 0x52, 0x16, 0x8e, 0x79, 0xd1, - 0x6e, 0xdb, 0x6d, 0xac, 0xdb, 0xba, 0xd9, 0xc0, 0xe8, 0xe3, 0xe9, 0x61, 0x98, 0xbd, 0x0b, 0x30, - 0x6e, 0x34, 0x2c, 0xb3, 0x66, 0x3c, 0xc3, 0xbb, 0x5c, 0x2e, 0x3a, 0xc8, 0x3a, 0x91, 0x48, 0x99, - 0xfd, 0xa1, 0xf9, 0xff, 0xaa, 0x65, 0x98, 0x68, 0xe8, 0x76, 0x93, 0x06, 0xe1, 0xcb, 0x76, 0x5d, - 0xe4, 0x14, 0x4a, 0xa8, 0xe8, 0xfd, 0xa2, 0x05, 0x7f, 0xab, 0x55, 0x51, 0x88, 0xb9, 0xae, 0x68, - 0x1e, 0xa1, 0xc4, 0xe6, 0x83, 0x9f, 0x04, 0x99, 0xbb, 0xd2, 0xb1, 0x71, 0x8b, 0xdc, 0x41, 0x4f, - 0x7b, 0x88, 0x09, 0x2d, 0x48, 0x88, 0xbb, 0x3c, 0x40, 0x8a, 0xda, 0x87, 0xc6, 0xa8, 0x97, 0x07, - 0xa4, 0xb8, 0x48, 0x5e, 0x33, 0xdf, 0x91, 0x83, 0x69, 0xda, 0xab, 0x31, 0x71, 0xa2, 0xe7, 0x93, - 0x2b, 0xa4, 0x9d, 0x7b, 0xf0, 0x1e, 0xaa, 0x1d, 0x7c, 0x4c, 0xce, 0x83, 0x72, 0xd1, 0x0f, 0x38, - 0xe8, 0x3e, 0xc6, 0xdd, 0xb7, 0xf7, 0xf8, 0x9a, 0xa5, 0x3c, 0x8d, 0x7a, 0xdf, 0x3e, 0xba, 0xf8, - 0xe4, 0xf1, 0xf9, 0x75, 0x05, 0x94, 0x42, 0xb3, 0x89, 0x1a, 0x07, 0x87, 0xe2, 0x1a, 0x98, 0xf4, - 0xda, 0x4c, 0x10, 0x03, 0x92, 0x4f, 0x8a, 0xbb, 0x08, 0xea, 0xcb, 0xa6, 0xd0, 0x1c, 0xf9, 0xae, - 0x42, 0x44, 0xd9, 0xc9, 0x83, 0xf2, 0xdb, 0x63, 0xac, 0xd1, 0xcc, 0x59, 0xd6, 0x45, 0x72, 0x54, - 0xe6, 0xb9, 0x0a, 0x64, 0x17, 0xb0, 0xd3, 0xd8, 0x1a, 0x52, 0x9b, 0xd9, 0xb1, 0x5b, 0x5e, 0x9b, - 0xd9, 0x77, 0x1f, 0x7e, 0x7f, 0x1b, 0xd6, 0x63, 0x6b, 0x96, 0xb0, 0x34, 0xea, 0xe8, 0xce, 0x91, - 0xa5, 0x27, 0x0f, 0xce, 0xbf, 0x2a, 0x30, 0xe3, 0xaf, 0x70, 0x51, 0x4c, 0x7e, 0x2d, 0xf5, 0x70, - 0x5b, 0xef, 0x44, 0x9f, 0x8f, 0x17, 0x22, 0xcd, 0x97, 0xa9, 0x58, 0xb3, 0x84, 0x17, 0x16, 0x63, - 0x04, 0x4f, 0x93, 0x63, 0x70, 0x04, 0x33, 0x78, 0x05, 0xc6, 0x09, 0x43, 0xf3, 0xc6, 0x2e, 0x71, - 0x1d, 0x14, 0x16, 0x1a, 0x9f, 0x39, 0x94, 0x85, 0xc6, 0xdb, 0xc5, 0x85, 0x46, 0xc9, 0x88, 0xc7, - 0xde, 0x3a, 0x63, 0x4c, 0x5f, 0x1a, 0xf7, 0xff, 0xa1, 0x2f, 0x33, 0xc6, 0xf0, 0xa5, 0xe9, 0x53, - 0x7e, 0xf2, 0x88, 0xbe, 0xe6, 0x3f, 0xb1, 0xce, 0xd6, 0xdb, 0x50, 0x45, 0xff, 0xd7, 0x31, 0xc8, - 0x9c, 0x73, 0x1f, 0xfe, 0x67, 0x70, 0x23, 0xd6, 0x4b, 0x87, 0x10, 0x9c, 0xe1, 0xc9, 0x90, 0x71, - 0xe9, 0xb3, 0x69, 0xcb, 0x8d, 0x72, 0xbb, 0xbb, 0x2e, 0x23, 0x1a, 0xf9, 0x4f, 0x3d, 0x09, 0xb9, - 0x8e, 0xb5, 0x63, 0x37, 0x5c, 0xf3, 0xd9, 0xd5, 0x18, 0xf6, 0x16, 0x37, 0x28, 0xa9, 0x40, 0x7a, - 0x76, 0x78, 0x2e, 0xa3, 0xdc, 0x05, 0x49, 0x8a, 0x70, 0x41, 0x52, 0x8c, 0xfd, 0x03, 0x09, 0xde, - 0x92, 0xd7, 0x88, 0xbf, 0x21, 0x77, 0x05, 0x36, 0x87, 0x05, 0x7b, 0x88, 0x58, 0x0e, 0xaa, 0x0e, - 0x71, 0x1d, 0xbe, 0x45, 0xd1, 0xfa, 0x71, 0xe0, 0x47, 0xea, 0xf0, 0x2d, 0xc1, 0xc3, 0x48, 0x4e, - 0xa9, 0xe7, 0x98, 0x93, 0xea, 0xbd, 0xc3, 0x44, 0x37, 0x23, 0x28, 0xfd, 0x81, 0xd0, 0x19, 0xa2, - 0xf3, 0xea, 0xc0, 0xe8, 0x1c, 0x92, 0xfb, 0xea, 0x1f, 0x29, 0x24, 0x12, 0xa6, 0x67, 0xe4, 0xc8, - 0x5f, 0x74, 0x14, 0x1b, 0x22, 0x77, 0x0c, 0x16, 0xe2, 0x40, 0x4f, 0x0f, 0x1e, 0x1a, 0x5c, 0x14, - 0x1d, 0xc7, 0xff, 0xa8, 0x43, 0x83, 0xcb, 0x32, 0x92, 0x3c, 0x90, 0xaf, 0xa7, 0x17, 0x8b, 0x15, - 0x1a, 0x8e, 0xb1, 0x3b, 0xe4, 0x96, 0x26, 0x0e, 0x2f, 0x31, 0xa3, 0x01, 0xef, 0x93, 0x10, 0xe5, - 0x70, 0xd4, 0xd1, 0x80, 0xe5, 0xd8, 0x48, 0x1e, 0xa6, 0xbf, 0xcb, 0xb9, 0xd2, 0x63, 0x6b, 0x33, - 0x6f, 0x60, 0xab, 0x01, 0xf8, 0xe0, 0x68, 0x9d, 0x81, 0x29, 0x6e, 0xea, 0xef, 0x5d, 0x58, 0x23, - 0xa4, 0xc5, 0x3d, 0xe8, 0xee, 0x8b, 0x6c, 0xe8, 0x0b, 0x03, 0x31, 0x16, 0x7c, 0x65, 0x98, 0x18, - 0xc9, 0x7d, 0x70, 0xde, 0x18, 0x36, 0x22, 0xac, 0xfe, 0x80, 0xc7, 0xaa, 0x2a, 0x62, 0x75, 0xab, - 0x8c, 0x98, 0xe4, 0xc6, 0x34, 0xa9, 0x79, 0xe3, 0xdb, 0x7d, 0xb8, 0x34, 0x01, 0xae, 0x27, 0x0f, - 0xcc, 0x47, 0xf2, 0x88, 0xbd, 0x8c, 0x76, 0x87, 0x35, 0x6a, 0xb2, 0x0f, 0xa7, 0x3b, 0x64, 0xb3, - 0x01, 0x45, 0x98, 0x0d, 0xc4, 0xf4, 0xb7, 0x0f, 0xdc, 0x48, 0x3d, 0xe6, 0xfa, 0x41, 0x94, 0x19, - 0xb2, 0xbf, 0x7d, 0x5f, 0x0e, 0x92, 0x07, 0xe7, 0x7b, 0x0a, 0xc0, 0xa2, 0x6d, 0xed, 0xb4, 0xab, - 0x76, 0x13, 0xdb, 0xe8, 0xeb, 0xc1, 0x04, 0xe0, 0xc5, 0x43, 0x98, 0x00, 0xac, 0x02, 0x6c, 0xfa, - 0xc4, 0x99, 0x86, 0xdf, 0x2c, 0x67, 0xee, 0x07, 0x4c, 0x69, 0x1c, 0x0d, 0xf1, 0xca, 0xd9, 0xa7, - 0x88, 0x18, 0x47, 0xf5, 0x59, 0x01, 0xb9, 0x61, 0x4e, 0x00, 0xde, 0xe9, 0x63, 0x5d, 0x17, 0xb0, - 0xbe, 0xeb, 0x00, 0x9c, 0x24, 0x8f, 0xf9, 0x3f, 0x8d, 0xc1, 0x24, 0xdd, 0xae, 0xa3, 0x32, 0xfd, - 0x87, 0x00, 0xf4, 0xdf, 0x1e, 0x02, 0xe8, 0x6b, 0x30, 0x65, 0x05, 0xd4, 0x69, 0x9f, 0xca, 0x2f, - 0xc0, 0x44, 0xc2, 0xce, 0xf1, 0xa5, 0x09, 0x64, 0xd0, 0x47, 0x79, 0xe4, 0x35, 0x11, 0xf9, 0xdb, - 0x23, 0xe4, 0xcd, 0x51, 0x1c, 0x26, 0xf4, 0xef, 0xf2, 0xa1, 0x5f, 0x13, 0xa0, 0x2f, 0x1c, 0x84, - 0x95, 0x11, 0x84, 0xdb, 0x57, 0x20, 0x43, 0x4e, 0xc7, 0xfd, 0x4e, 0x82, 0xf3, 0xfb, 0x53, 0x30, - 0x46, 0x9a, 0xac, 0x3f, 0xef, 0xf0, 0x5e, 0xdd, 0x2f, 0xfa, 0x86, 0x83, 0x6d, 0xdf, 0x63, 0xc1, - 0x7b, 0x75, 0x79, 0xf0, 0xbc, 0x92, 0x3b, 0xa7, 0x72, 0x74, 0x23, 0xd2, 0x4f, 0x18, 0x78, 0x52, - 0xc2, 0x4b, 0x7c, 0x68, 0xe7, 0xe5, 0x06, 0x99, 0x94, 0xf4, 0x61, 0x24, 0x79, 0xe0, 0xbf, 0x94, - 0x81, 0x53, 0x74, 0x55, 0x69, 0xc1, 0xb6, 0xb6, 0xbb, 0x6e, 0xb7, 0x32, 0x0e, 0xae, 0x0b, 0xd7, - 0xc3, 0x8c, 0x23, 0xf8, 0x63, 0x33, 0x9d, 0xe8, 0x4a, 0x45, 0x7f, 0xc1, 0xfb, 0x54, 0x3c, 0x55, - 0x44, 0x72, 0x2e, 0x42, 0x80, 0x61, 0xbc, 0xc7, 0x5e, 0xa8, 0x97, 0x64, 0x94, 0x5b, 0xa4, 0x52, - 0x06, 0x5a, 0xb3, 0xf4, 0x75, 0x2a, 0x2b, 0xa3, 0x53, 0xef, 0xf7, 0x75, 0xea, 0xe7, 0x05, 0x9d, - 0x5a, 0x3c, 0xb8, 0x48, 0x92, 0xd7, 0xad, 0x57, 0xfb, 0x1b, 0x43, 0xfe, 0xb6, 0xdd, 0x76, 0x02, - 0x9b, 0x75, 0xbc, 0x3f, 0x52, 0x46, 0xf0, 0x47, 0x12, 0xef, 0xa3, 0x88, 0x31, 0x13, 0x16, 0xb9, - 0x0e, 0xd1, 0xa5, 0x19, 0x48, 0x1b, 0x1e, 0x77, 0x69, 0xa3, 0x39, 0xd0, 0x5c, 0x37, 0xb2, 0xa0, - 0x11, 0xac, 0x2d, 0xcd, 0x40, 0x6e, 0xc1, 0x68, 0x39, 0xd8, 0x46, 0x5f, 0x61, 0x33, 0xdd, 0x57, - 0x27, 0x38, 0x00, 0xcc, 0x43, 0x6e, 0x83, 0x94, 0xc6, 0x4c, 0xe6, 0x9b, 0xe4, 0x5a, 0x0f, 0xe5, - 0x50, 0x63, 0xff, 0xc6, 0x8d, 0xce, 0xd7, 0x45, 0x66, 0x68, 0x53, 0xe4, 0x18, 0xd1, 0xf9, 0xfa, - 0xb3, 0x30, 0x92, 0x8b, 0xa9, 0x72, 0x1a, 0xde, 0x76, 0xc7, 0xf8, 0x8b, 0xc9, 0x21, 0x9c, 0x07, - 0xc5, 0x68, 0x76, 0x48, 0xe7, 0x38, 0xa1, 0xb9, 0x8f, 0x71, 0x7d, 0x85, 0xba, 0x45, 0x45, 0x59, - 0x1e, 0xb5, 0xaf, 0x90, 0x14, 0x17, 0xc9, 0x63, 0xf6, 0x43, 0xe2, 0x28, 0xda, 0x6e, 0xe9, 0x0d, - 0xec, 0x72, 0x9f, 0x18, 0x6a, 0xb4, 0x27, 0xcb, 0x78, 0x3d, 0x19, 0xd7, 0x4e, 0xb3, 0x07, 0x68, - 0xa7, 0x83, 0x2e, 0x43, 0xfa, 0x32, 0x27, 0x15, 0x3f, 0xb4, 0x65, 0xc8, 0x48, 0x36, 0x46, 0x70, - 0xed, 0xa8, 0x77, 0x90, 0x76, 0xa4, 0xad, 0x75, 0xd0, 0x4d, 0x1a, 0x26, 0xac, 0xa1, 0x1d, 0x9a, - 0x1d, 0x64, 0x93, 0x26, 0x9c, 0x87, 0x11, 0xa0, 0x35, 0xc3, 0xd0, 0xfa, 0x1c, 0x1b, 0x46, 0x13, - 0xde, 0x27, 0xed, 0x58, 0xb6, 0x13, 0x6f, 0x9f, 0xd4, 0xe5, 0x4e, 0x23, 0xff, 0xc5, 0x3d, 0x78, - 0x25, 0x9e, 0xab, 0x1e, 0xd6, 0xf0, 0x19, 0xe3, 0xe0, 0x55, 0x3f, 0x06, 0x92, 0x87, 0xf7, 0x2d, - 0x87, 0x34, 0x78, 0x0e, 0xda, 0x1c, 0x59, 0x1b, 0x18, 0xda, 0xd0, 0x39, 0x48, 0x73, 0x0c, 0xe7, - 0x21, 0x79, 0xbc, 0xbe, 0xcb, 0x0d, 0x9c, 0x6f, 0x1a, 0xe1, 0xc0, 0xe9, 0xb5, 0xcc, 0xec, 0x80, - 0x2d, 0x73, 0xd0, 0xfd, 0x1f, 0x26, 0xeb, 0xe1, 0x0d, 0x98, 0x83, 0xec, 0xff, 0x44, 0x30, 0x91, - 0x3c, 0xe2, 0x6f, 0x56, 0x20, 0x5b, 0x1b, 0xfd, 0x78, 0x39, 0xe8, 0x5c, 0x84, 0xc8, 0xaa, 0x36, - 0xb4, 0xe1, 0x72, 0x90, 0xb9, 0x48, 0x28, 0x0b, 0x23, 0x08, 0xbc, 0x7f, 0x14, 0xa6, 0xc8, 0x92, - 0x88, 0xb7, 0xcd, 0xfa, 0x5d, 0x36, 0x6a, 0x3e, 0x94, 0x60, 0x5b, 0xbd, 0x1b, 0xc6, 0xbd, 0xfd, - 0x3b, 0x36, 0x72, 0xce, 0xca, 0xb5, 0x4f, 0x8f, 0x4b, 0xcd, 0xff, 0xff, 0x40, 0xce, 0x10, 0x43, - 0xdf, 0xab, 0x1d, 0xd4, 0x19, 0xe2, 0x50, 0xf7, 0x6b, 0xff, 0x3c, 0x18, 0x51, 0xff, 0x73, 0x72, - 0x98, 0x77, 0xef, 0xe3, 0x66, 0x7a, 0xec, 0xe3, 0x7e, 0x9c, 0xc7, 0xb2, 0x26, 0x62, 0x79, 0x87, - 0xac, 0x08, 0x87, 0x38, 0xd6, 0xbe, 0xdb, 0x87, 0xf3, 0x9c, 0x00, 0xe7, 0xdc, 0x81, 0x78, 0x19, - 0xc1, 0xc1, 0xc7, 0x4c, 0x30, 0xe6, 0x7e, 0x22, 0xc1, 0x76, 0xdc, 0x75, 0xaa, 0x22, 0xb3, 0xef, - 0x54, 0x85, 0xd0, 0xd2, 0xb3, 0x07, 0x6c, 0xe9, 0x9f, 0xe0, 0xb5, 0xa3, 0x2e, 0x6a, 0xc7, 0x93, - 0xe5, 0x11, 0x19, 0xde, 0xc8, 0xfc, 0x1e, 0x5f, 0x3d, 0xce, 0x0b, 0xea, 0x51, 0x3c, 0x18, 0x33, - 0xc9, 0xeb, 0xc7, 0x1f, 0x7b, 0x13, 0xda, 0x43, 0x6e, 0xef, 0x83, 0x6e, 0x15, 0x0b, 0x42, 0x1c, - 0xda, 0xc8, 0x3d, 0xc8, 0x56, 0x71, 0x3f, 0x4e, 0x46, 0x10, 0x8b, 0x6d, 0x1a, 0x26, 0x09, 0x4f, - 0xe7, 0x8d, 0xe6, 0x26, 0x76, 0xd0, 0x6b, 0xa8, 0x8f, 0xa2, 0x17, 0xf9, 0x72, 0x48, 0xe1, 0x89, - 0xc2, 0xce, 0xbb, 0xc6, 0xf5, 0xe8, 0xa0, 0x4c, 0xce, 0x72, 0x0c, 0x8e, 0x3a, 0x82, 0x62, 0x5f, - 0x0e, 0x92, 0x87, 0xec, 0xa3, 0xd4, 0xdd, 0x66, 0x59, 0xdf, 0xb3, 0x76, 0x1c, 0xf4, 0xc0, 0x10, - 0x3a, 0xe8, 0x39, 0xc8, 0xb5, 0x08, 0x35, 0x76, 0x2c, 0x23, 0x7a, 0xba, 0xc3, 0x44, 0x40, 0xcb, - 0xd7, 0xd8, 0x9f, 0x71, 0xcf, 0x66, 0x04, 0x72, 0xa4, 0x74, 0x46, 0x7d, 0x36, 0xa3, 0x4f, 0xf9, - 0x23, 0xb9, 0x63, 0x67, 0xdc, 0x2d, 0xdd, 0xd8, 0x36, 0x9c, 0x21, 0x45, 0x70, 0x68, 0xb9, 0xb4, - 0xbc, 0x08, 0x0e, 0xe4, 0x25, 0xee, 0x89, 0x51, 0x4e, 0x2a, 0xee, 0xef, 0xa3, 0x3e, 0x31, 0x1a, - 0x5d, 0x7c, 0xf2, 0x98, 0xfc, 0x26, 0x6d, 0x59, 0xe7, 0xa8, 0xf3, 0x6d, 0x82, 0x7e, 0xbd, 0x03, - 0x37, 0x16, 0xca, 0xda, 0xe1, 0x35, 0x96, 0x9e, 0xe5, 0x27, 0x0f, 0xcc, 0x7f, 0xfb, 0x69, 0xc8, - 0xce, 0xe3, 0x0b, 0x3b, 0x9b, 0xe8, 0x76, 0x18, 0xaf, 0xdb, 0x18, 0x97, 0xcd, 0x0d, 0xcb, 0x95, - 0xae, 0xe3, 0x3e, 0x7b, 0x90, 0xb0, 0x37, 0x17, 0x8f, 0x2d, 0xac, 0x37, 0x83, 0xf3, 0x67, 0xde, - 0x2b, 0x7a, 0x69, 0x1a, 0x32, 0x35, 0x47, 0x77, 0xd0, 0x84, 0x8f, 0x2d, 0x7a, 0x80, 0xc7, 0xe2, - 0x76, 0x11, 0x8b, 0xeb, 0x05, 0x59, 0x10, 0x0e, 0x66, 0xdd, 0xff, 0x43, 0x00, 0x40, 0x30, 0x7e, - 0x5f, 0xc7, 0x32, 0xdd, 0x1c, 0xde, 0x11, 0x48, 0xef, 0x1d, 0xbd, 0xca, 0x17, 0xf7, 0x9d, 0x82, - 0xb8, 0x1f, 0x2d, 0x57, 0xc4, 0x08, 0x56, 0xda, 0xd2, 0x30, 0xe1, 0x8a, 0x76, 0x09, 0xeb, 0xcd, - 0x0e, 0xfa, 0xa9, 0x40, 0xf9, 0x43, 0xc4, 0x8c, 0x3e, 0x28, 0x1d, 0x8c, 0x93, 0xd6, 0xca, 0x27, - 0x1e, 0xee, 0xd1, 0xe1, 0x6d, 0xfe, 0xa7, 0xc5, 0x60, 0x24, 0x67, 0x21, 0x63, 0x98, 0x1b, 0x16, - 0xf3, 0x2f, 0xbc, 0x32, 0x84, 0xb6, 0xab, 0x13, 0x1a, 0xc9, 0x28, 0x19, 0xa9, 0x33, 0x9a, 0xad, - 0x91, 0x5c, 0x7a, 0x97, 0x71, 0x4b, 0x47, 0xff, 0x7b, 0x5f, 0x61, 0xab, 0x2a, 0x64, 0xda, 0xba, - 0xb3, 0xc5, 0x8a, 0x26, 0xcf, 0xae, 0x8d, 0xbc, 0x63, 0xea, 0xa6, 0x65, 0xee, 0x6d, 0x1b, 0xcf, - 0xf0, 0xef, 0xd6, 0x15, 0xd2, 0x5c, 0xce, 0x37, 0xb1, 0x89, 0x6d, 0xdd, 0xc1, 0xb5, 0xdd, 0x4d, - 0x32, 0xc7, 0x1a, 0xd7, 0xf8, 0xa4, 0xd8, 0xfa, 0xef, 0x72, 0x1c, 0xae, 0xff, 0x1b, 0x46, 0x0b, - 0x93, 0x48, 0x4d, 0x4c, 0xff, 0xbd, 0xf7, 0x58, 0xfa, 0xdf, 0xa3, 0x88, 0xe4, 0xd1, 0xf8, 0xb7, - 0x34, 0x4c, 0xd5, 0x5c, 0x85, 0xab, 0xed, 0x6c, 0x6f, 0xeb, 0xf6, 0x1e, 0xba, 0x36, 0x40, 0x85, - 0x53, 0xcd, 0x94, 0xe8, 0x97, 0xf2, 0x47, 0xd2, 0xd7, 0x4a, 0xb3, 0xa6, 0xcd, 0x95, 0x10, 0xbb, - 0x1d, 0x3c, 0x16, 0xb2, 0xae, 0x7a, 0x7b, 0x1e, 0x97, 0x91, 0x0d, 0x81, 0xe6, 0x94, 0x8c, 0x68, - 0xd5, 0x97, 0xb7, 0x11, 0x44, 0xd3, 0x48, 0xc3, 0xd1, 0x9a, 0xa3, 0x37, 0x2e, 0x2e, 0x5a, 0xb6, - 0xb5, 0xe3, 0x18, 0x26, 0xee, 0xa0, 0x47, 0x04, 0x08, 0x78, 0xfa, 0x9f, 0x0a, 0xf4, 0x1f, 0xfd, - 0x7b, 0x4a, 0x76, 0x14, 0xf5, 0xbb, 0x55, 0x9e, 0x7c, 0x48, 0x80, 0x2a, 0xb9, 0x71, 0x51, 0x86, - 0x62, 0xf2, 0x42, 0x7b, 0x93, 0x02, 0xf9, 0xd2, 0xfd, 0x6d, 0xcb, 0x76, 0x96, 0xad, 0x86, 0xde, - 0xea, 0x38, 0x96, 0x8d, 0x51, 0x35, 0x52, 0x6a, 0x6e, 0x0f, 0xd3, 0xb4, 0x1a, 0xc1, 0xe0, 0xc8, - 0xde, 0x78, 0xb5, 0x53, 0x44, 0x1d, 0xff, 0xa8, 0xf4, 0x2e, 0x23, 0x95, 0x4a, 0x37, 0x47, 0x21, - 0x7a, 0xde, 0xab, 0x4b, 0x8b, 0x77, 0x58, 0x42, 0x6e, 0xe7, 0x51, 0x8a, 0xa9, 0x11, 0x2c, 0x95, - 0xa7, 0x61, 0xba, 0xb6, 0x73, 0xc1, 0x27, 0xd2, 0xe1, 0x8d, 0x90, 0xd7, 0x4a, 0x47, 0xa9, 0x60, - 0x8a, 0xc7, 0x13, 0x0a, 0x91, 0xef, 0x75, 0x30, 0xdd, 0xe1, 0xb3, 0x31, 0xbc, 0xc5, 0x44, 0xc9, - 0xe8, 0x14, 0xfd, 0x4b, 0x4d, 0x5e, 0x80, 0xef, 0x49, 0xc3, 0x74, 0xb5, 0x8d, 0x4d, 0xdc, 0xa4, - 0x5e, 0x90, 0x82, 0x00, 0x5f, 0x1a, 0x53, 0x80, 0x02, 0xa1, 0x10, 0x01, 0x06, 0x1e, 0xcb, 0xf3, - 0x9e, 0xf0, 0x82, 0x84, 0x58, 0x82, 0x8b, 0x2a, 0x2d, 0x79, 0xc1, 0x7d, 0x39, 0x0d, 0x93, 0xda, - 0x8e, 0xb9, 0x6a, 0x5b, 0xee, 0x68, 0x6c, 0xa3, 0x3b, 0x82, 0x0e, 0xe2, 0x26, 0x38, 0xd6, 0xdc, - 0xb1, 0xc9, 0xfa, 0x53, 0xd9, 0xac, 0xe1, 0x86, 0x65, 0x36, 0x3b, 0xa4, 0x1e, 0x59, 0x6d, 0xff, - 0x87, 0xdb, 0x32, 0xcf, 0xfd, 0x96, 0x92, 0x42, 0xcf, 0x97, 0x0e, 0x75, 0x43, 0x2b, 0xcf, 0x15, - 0x2d, 0xdf, 0x13, 0x48, 0x06, 0xb4, 0xe9, 0x57, 0x42, 0xf2, 0xc2, 0xfd, 0x5c, 0x1a, 0xd4, 0x42, - 0xa3, 0x61, 0xed, 0x98, 0x4e, 0x0d, 0xb7, 0x70, 0xc3, 0xa9, 0xdb, 0x7a, 0x03, 0xf3, 0xf6, 0x73, - 0x1e, 0x94, 0xa6, 0x61, 0xb3, 0x3e, 0xd8, 0x7d, 0x64, 0x72, 0x7c, 0xa9, 0xf4, 0x8e, 0x23, 0xad, - 0xe5, 0xfe, 0x52, 0x62, 0x88, 0x53, 0x6e, 0x5f, 0x51, 0xb2, 0xa0, 0xe4, 0xa5, 0xfa, 0x89, 0x34, - 0x4c, 0x78, 0x3d, 0xf6, 0xa6, 0x8c, 0x30, 0x7f, 0x33, 0xe6, 0x64, 0xc4, 0x27, 0x1e, 0x43, 0x86, - 0xef, 0x88, 0x31, 0xab, 0x08, 0xa3, 0x1f, 0x4f, 0x74, 0x85, 0xf8, 0xa2, 0x73, 0x5f, 0x2b, 0xd5, - 0xf5, 0x85, 0xea, 0xf2, 0x7c, 0x49, 0xcb, 0x2b, 0xe8, 0x2b, 0x69, 0xc8, 0xac, 0x1a, 0xe6, 0x26, - 0x1f, 0x5d, 0xe9, 0xb8, 0x6b, 0x47, 0x36, 0xf1, 0xfd, 0xac, 0xa5, 0xd3, 0x17, 0xf5, 0x16, 0x38, - 0x6e, 0xee, 0x6c, 0x5f, 0xc0, 0x76, 0x75, 0x83, 0x8c, 0xb2, 0x9d, 0xba, 0x55, 0xc3, 0x26, 0x35, - 0x42, 0xb3, 0x5a, 0xcf, 0x6f, 0xa2, 0x09, 0x26, 0x31, 0x79, 0x70, 0x39, 0x09, 0x91, 0xb8, 0xcf, - 0x54, 0x9a, 0x63, 0x2a, 0xd6, 0xb4, 0xa1, 0x07, 0xf1, 0xe4, 0x35, 0xf5, 0x4f, 0xb2, 0x70, 0xa2, - 0x60, 0xee, 0x11, 0x9b, 0x82, 0x76, 0xf0, 0xc5, 0x2d, 0xdd, 0xdc, 0xc4, 0x64, 0x80, 0xf0, 0x25, - 0xce, 0x87, 0xe8, 0x4f, 0x89, 0x21, 0xfa, 0x55, 0x0d, 0xc6, 0x2c, 0xbb, 0x89, 0xed, 0xb9, 0x3d, - 0xc2, 0x53, 0xf7, 0xb2, 0x33, 0x6b, 0x93, 0xbd, 0x8a, 0x98, 0x65, 0xe4, 0x67, 0xab, 0xf4, 0x7f, - 0xcd, 0x23, 0x74, 0xe6, 0x26, 0x18, 0x63, 0x69, 0xea, 0x14, 0x8c, 0x57, 0xb5, 0xf9, 0x92, 0xb6, - 0x5e, 0x9e, 0xcf, 0x1f, 0x51, 0x2f, 0x83, 0xa3, 0xe5, 0x7a, 0x49, 0x2b, 0xd4, 0xcb, 0xd5, 0xca, - 0x3a, 0x49, 0xcf, 0xa7, 0xd0, 0x73, 0x32, 0xb2, 0x9e, 0xbd, 0xd1, 0xcc, 0xf4, 0x82, 0x55, 0x83, - 0xb1, 0x06, 0xcd, 0x40, 0x86, 0xd0, 0xc9, 0x58, 0xb5, 0x63, 0x04, 0x69, 0x82, 0xe6, 0x11, 0x52, - 0x4f, 0x03, 0x5c, 0xb2, 0x2d, 0x73, 0x33, 0x38, 0x75, 0x38, 0xae, 0x71, 0x29, 0xe8, 0x81, 0x14, - 0xe4, 0xe8, 0x3f, 0xe4, 0x4a, 0x12, 0xf2, 0x14, 0x08, 0xde, 0x7b, 0x77, 0x2d, 0x5e, 0x22, 0xaf, - 0x60, 0xa2, 0xc5, 0x5e, 0x5d, 0x5d, 0xa4, 0x32, 0xa0, 0x96, 0x30, 0xab, 0xca, 0x59, 0xc8, 0xd1, - 0x7f, 0x99, 0xd7, 0x41, 0x78, 0x78, 0x51, 0x9a, 0x4d, 0xd2, 0x4f, 0x59, 0x5e, 0xa6, 0xc9, 0x6b, - 0xf3, 0x87, 0xd2, 0x30, 0x5e, 0xc1, 0x4e, 0x71, 0x0b, 0x37, 0x2e, 0xa2, 0x47, 0x89, 0x0b, 0xa0, - 0x2d, 0x03, 0x9b, 0xce, 0xbd, 0xdb, 0x2d, 0x7f, 0x01, 0xd4, 0x4b, 0x40, 0xcf, 0xe3, 0x3b, 0xdf, - 0xbb, 0x44, 0xfd, 0xb9, 0xb1, 0x47, 0x5d, 0xbd, 0x12, 0x42, 0x54, 0xe6, 0x24, 0xe4, 0x6c, 0xdc, - 0xd9, 0x69, 0x79, 0x8b, 0x68, 0xec, 0x0d, 0x3d, 0xe8, 0x8b, 0xb3, 0x28, 0x88, 0xf3, 0xac, 0x7c, - 0x11, 0x23, 0x88, 0x57, 0x9a, 0x81, 0xb1, 0xb2, 0x69, 0x38, 0x86, 0xde, 0x42, 0xcf, 0xcf, 0xc0, - 0x74, 0x0d, 0x3b, 0xab, 0xba, 0xad, 0x6f, 0x63, 0x07, 0xdb, 0x1d, 0xf4, 0x03, 0xb1, 0x4f, 0x68, - 0xb7, 0x74, 0x67, 0xc3, 0xb2, 0xb7, 0x3d, 0xd5, 0xf4, 0xde, 0x5d, 0xd5, 0xdc, 0xc5, 0x76, 0x27, - 0xe0, 0xcb, 0x7b, 0x75, 0xbf, 0x5c, 0xb2, 0xec, 0x8b, 0xee, 0x20, 0xc8, 0xa6, 0x69, 0xec, 0xd5, - 0xa5, 0xd7, 0xb2, 0x36, 0x97, 0xf1, 0x2e, 0xf6, 0xc2, 0xa5, 0xf9, 0xef, 0xee, 0x5c, 0xa0, 0x69, - 0x55, 0x2c, 0xc7, 0xed, 0xb4, 0x97, 0xad, 0x4d, 0x1a, 0x2f, 0x76, 0x5c, 0x13, 0x13, 0x83, 0x5c, - 0xfa, 0x2e, 0x26, 0xb9, 0x72, 0x7c, 0x2e, 0x96, 0xa8, 0xce, 0x82, 0xea, 0xff, 0x56, 0xc7, 0x2d, - 0xbc, 0x8d, 0x1d, 0x7b, 0x8f, 0x5c, 0x0b, 0x31, 0xae, 0xf5, 0xf8, 0xc2, 0x06, 0x68, 0xf9, 0xc9, - 0x3a, 0x93, 0xde, 0xac, 0x20, 0xb9, 0x03, 0x4d, 0xd6, 0x65, 0x28, 0x8e, 0xe4, 0xda, 0x2b, 0xc5, - 0xb5, 0x66, 0x5e, 0xae, 0x40, 0x86, 0x0c, 0x9e, 0x6f, 0x4e, 0x09, 0x2b, 0x4c, 0xdb, 0xb8, 0xd3, - 0xd1, 0x37, 0xb1, 0xb7, 0xc2, 0xc4, 0x5e, 0xd5, 0x5b, 0x21, 0xdb, 0x22, 0x98, 0xd2, 0xc1, 0xe1, - 0x5a, 0xa1, 0x66, 0xae, 0x81, 0xe1, 0xd2, 0xf2, 0x47, 0x02, 0x02, 0xb7, 0x46, 0xff, 0x38, 0x73, - 0x37, 0x64, 0x29, 0xfc, 0x13, 0x90, 0x9d, 0x2f, 0xcd, 0xad, 0x2d, 0xe6, 0x8f, 0xb8, 0x8f, 0x1e, - 0x7f, 0x13, 0x90, 0x5d, 0x28, 0xd4, 0x0b, 0xcb, 0xf9, 0xb4, 0x5b, 0x8f, 0x72, 0x65, 0xa1, 0x9a, - 0x57, 0xdc, 0xc4, 0xd5, 0x42, 0xa5, 0x5c, 0xcc, 0x67, 0xd4, 0x49, 0x18, 0x3b, 0x5f, 0xd0, 0x2a, - 0xe5, 0xca, 0x62, 0x3e, 0x8b, 0xfe, 0x8e, 0xc7, 0xef, 0x36, 0x11, 0xbf, 0xeb, 0xc2, 0x78, 0xea, - 0x05, 0xd9, 0x2b, 0x7c, 0xc8, 0xee, 0x10, 0x20, 0xfb, 0x69, 0x19, 0x22, 0x23, 0x70, 0x67, 0xca, - 0xc1, 0xd8, 0xaa, 0x6d, 0x35, 0x70, 0xa7, 0x83, 0x7e, 0x2b, 0x0d, 0xb9, 0xa2, 0x6e, 0x36, 0x70, - 0x0b, 0x5d, 0x11, 0x40, 0x45, 0x5d, 0x45, 0x53, 0xfe, 0x69, 0xb1, 0xef, 0xa5, 0x64, 0x7b, 0x3f, - 0x46, 0x77, 0x96, 0xd2, 0x0c, 0x91, 0x8f, 0x5c, 0x2f, 0x17, 0x49, 0x6a, 0x04, 0x57, 0xe3, 0xa4, - 0x61, 0x82, 0xad, 0x06, 0x5c, 0xc0, 0xfc, 0x3c, 0xfc, 0x07, 0x29, 0xd9, 0xc9, 0xa1, 0x57, 0x03, - 0x9f, 0x4c, 0x88, 0x3c, 0xe4, 0x26, 0x82, 0xfd, 0xa8, 0x8d, 0x60, 0xf3, 0x30, 0x0d, 0x93, 0x6b, - 0x66, 0xa7, 0x97, 0x50, 0xe4, 0xe3, 0xe8, 0x7b, 0xd5, 0xe0, 0x08, 0x1d, 0x28, 0x8e, 0x7e, 0x7f, - 0x7a, 0xc9, 0x0b, 0xe6, 0x07, 0x29, 0x38, 0xbe, 0x88, 0x4d, 0x6c, 0x1b, 0x0d, 0x5a, 0x03, 0x4f, - 0x12, 0x77, 0x88, 0x92, 0x78, 0x94, 0xc0, 0x79, 0xaf, 0x3f, 0x44, 0x09, 0xbc, 0xda, 0x97, 0xc0, - 0x5d, 0x82, 0x04, 0x6e, 0x92, 0xa4, 0x33, 0x82, 0xfb, 0xd0, 0x27, 0x60, 0xaa, 0x62, 0x39, 0xc6, - 0x86, 0xd1, 0xa0, 0x3e, 0x68, 0x2f, 0x53, 0x20, 0xb3, 0x6c, 0x74, 0x1c, 0x54, 0x08, 0xba, 0x93, - 0x6b, 0x60, 0xd2, 0x30, 0x1b, 0xad, 0x9d, 0x26, 0xd6, 0xb0, 0x4e, 0xfb, 0x95, 0x71, 0x8d, 0x4f, - 0x0a, 0xb6, 0xf6, 0x5d, 0xb6, 0x14, 0x6f, 0x6b, 0xff, 0xd3, 0xd2, 0xcb, 0x30, 0x3c, 0x0b, 0x24, - 0x20, 0x65, 0x88, 0xdd, 0x55, 0x80, 0x69, 0x93, 0xcb, 0xea, 0x19, 0xec, 0xdd, 0x17, 0x0a, 0xf0, - 0xe4, 0x34, 0xf1, 0x0f, 0xf4, 0x3e, 0xa9, 0xc6, 0xda, 0x8f, 0xa1, 0x78, 0xc8, 0x2c, 0x0c, 0x30, - 0x49, 0x56, 0x61, 0xa6, 0x5c, 0xa9, 0x97, 0xb4, 0x4a, 0x61, 0x99, 0x65, 0x51, 0xd0, 0xbf, 0xa5, - 0x21, 0xab, 0xe1, 0x76, 0x6b, 0x8f, 0x8f, 0x18, 0xcd, 0x1c, 0xc5, 0x53, 0xbe, 0xa3, 0xb8, 0xba, - 0x00, 0xa0, 0x37, 0xdc, 0x82, 0xc9, 0x95, 0x5a, 0xe9, 0x9e, 0x71, 0x4c, 0x85, 0x0a, 0x16, 0xfc, - 0xdc, 0x1a, 0xf7, 0x27, 0x7a, 0x81, 0xf4, 0xce, 0x91, 0x40, 0x8d, 0x70, 0x18, 0xd2, 0x27, 0xbc, - 0x5f, 0x6a, 0xb3, 0xa7, 0x2f, 0xb9, 0xc3, 0x11, 0xff, 0x57, 0xd3, 0x90, 0xa9, 0xbb, 0xbd, 0x25, - 0xd7, 0x71, 0xfe, 0xe9, 0x60, 0x3a, 0xee, 0x92, 0x09, 0xd1, 0xf1, 0x3b, 0x61, 0x8a, 0xd7, 0x58, - 0xe6, 0x2a, 0x11, 0xa9, 0xe2, 0xc2, 0x0f, 0x83, 0x68, 0x78, 0x0f, 0x76, 0x0e, 0x47, 0xc4, 0x9f, - 0x7c, 0x34, 0xc0, 0x0a, 0xde, 0xbe, 0x80, 0xed, 0xce, 0x96, 0xd1, 0x46, 0x7f, 0xaf, 0xc0, 0xc4, - 0x22, 0x76, 0x6a, 0x8e, 0xee, 0xec, 0x74, 0xba, 0xb6, 0x3b, 0x4d, 0xab, 0xa8, 0x37, 0xb6, 0x30, - 0xeb, 0x8e, 0xbc, 0x57, 0xf4, 0x2e, 0x45, 0xd6, 0x9f, 0x28, 0x28, 0x67, 0xd6, 0x2f, 0x23, 0x04, - 0x93, 0xc7, 0x40, 0xa6, 0xa9, 0x3b, 0x3a, 0xc3, 0xe2, 0x8a, 0x2e, 0x2c, 0x02, 0x42, 0x1a, 0xc9, - 0x86, 0x7e, 0x2f, 0x2d, 0xe3, 0x50, 0x24, 0x51, 0x7e, 0x3c, 0x10, 0xde, 0x97, 0x1a, 0x00, 0x85, - 0x63, 0x30, 0x5d, 0xa9, 0xd6, 0xd7, 0x97, 0xab, 0x8b, 0x8b, 0x25, 0x37, 0x35, 0xaf, 0xa8, 0x27, - 0x41, 0x5d, 0x2d, 0xdc, 0xbb, 0x52, 0xaa, 0xd4, 0xd7, 0x2b, 0xd5, 0xf9, 0x12, 0xfb, 0x33, 0xa3, - 0x1e, 0x85, 0xc9, 0x62, 0xa1, 0xb8, 0xe4, 0x25, 0x64, 0xd5, 0x53, 0x70, 0x7c, 0xa5, 0xb4, 0x32, - 0x57, 0xd2, 0x6a, 0x4b, 0xe5, 0xd5, 0x75, 0x97, 0xcc, 0x42, 0x75, 0xad, 0x32, 0x9f, 0xcf, 0xa9, - 0x08, 0x4e, 0x72, 0x5f, 0xce, 0x6b, 0xd5, 0xca, 0xe2, 0x7a, 0xad, 0x5e, 0xa8, 0x97, 0xf2, 0x63, - 0xea, 0x65, 0x70, 0xb4, 0x58, 0xa8, 0x90, 0xec, 0xc5, 0x6a, 0xa5, 0x52, 0x2a, 0xd6, 0xf3, 0xe3, - 0xe8, 0xdf, 0x33, 0x30, 0x59, 0xee, 0x54, 0xf4, 0x6d, 0x7c, 0x4e, 0x6f, 0x19, 0x4d, 0xf4, 0x7c, - 0x6e, 0xe6, 0x71, 0x1d, 0x4c, 0xdb, 0xf4, 0x11, 0x37, 0xeb, 0x06, 0xa6, 0x68, 0x4e, 0x6b, 0x62, - 0xa2, 0x3b, 0x27, 0x37, 0x09, 0x01, 0x6f, 0x4e, 0x4e, 0xdf, 0xd4, 0x39, 0x00, 0xfa, 0x54, 0x0f, - 0x2e, 0x77, 0x3d, 0xd3, 0xdd, 0x9a, 0xf4, 0x6d, 0xdc, 0xc1, 0xf6, 0xae, 0xd1, 0xc0, 0x5e, 0x4e, - 0x8d, 0xfb, 0x0b, 0x7d, 0x4d, 0x91, 0xdd, 0x5f, 0xe4, 0x40, 0xe5, 0xaa, 0x13, 0xd2, 0x1b, 0xfe, - 0x8a, 0x22, 0xb3, 0x3b, 0x28, 0x45, 0x32, 0x9e, 0xa6, 0xbc, 0x28, 0x3d, 0xd8, 0xb2, 0x6d, 0xbd, - 0x5a, 0x5d, 0xaf, 0x2d, 0x55, 0xb5, 0x7a, 0x5e, 0x51, 0xa7, 0x60, 0xdc, 0x7d, 0x5d, 0xae, 0x56, - 0x16, 0xf3, 0x19, 0xf5, 0x04, 0x1c, 0x5b, 0x2a, 0xd4, 0xd6, 0xcb, 0x95, 0x73, 0x85, 0xe5, 0xf2, - 0xfc, 0x7a, 0x71, 0xa9, 0xa0, 0xd5, 0xf2, 0x59, 0xf5, 0x0a, 0x38, 0x51, 0x2f, 0x97, 0xb4, 0xf5, - 0x85, 0x52, 0xa1, 0xbe, 0xa6, 0x95, 0x6a, 0xeb, 0x95, 0xea, 0x7a, 0xa5, 0xb0, 0x52, 0xca, 0xe7, - 0xdc, 0xe6, 0x4f, 0x3e, 0x05, 0x6a, 0x33, 0xb6, 0x5f, 0x19, 0xc7, 0x43, 0x94, 0x71, 0xa2, 0x5b, - 0x19, 0x81, 0x57, 0x2b, 0xad, 0x54, 0x2b, 0x69, 0xe7, 0x4a, 0xf9, 0xc9, 0x5e, 0xba, 0x36, 0xa5, - 0x1e, 0x87, 0xbc, 0xcb, 0xc3, 0x7a, 0xb9, 0xe6, 0xe5, 0x9c, 0xcf, 0x4f, 0xa3, 0x4f, 0xe4, 0xe0, - 0xa4, 0x86, 0x37, 0x8d, 0x8e, 0x83, 0xed, 0x55, 0x7d, 0x6f, 0x1b, 0x9b, 0x8e, 0xd7, 0xc9, 0xff, - 0xaf, 0xd8, 0xca, 0xb8, 0x02, 0xd3, 0x6d, 0x4a, 0x63, 0x05, 0x3b, 0x5b, 0x56, 0x93, 0x8d, 0xc2, - 0x8f, 0x0a, 0xed, 0x39, 0x66, 0x57, 0xf9, 0xec, 0x9a, 0xf8, 0x37, 0xa7, 0xdb, 0x4a, 0x84, 0x6e, - 0x67, 0x06, 0xd1, 0x6d, 0xf5, 0x2a, 0x98, 0xd8, 0xe9, 0x60, 0xbb, 0xb4, 0xad, 0x1b, 0x2d, 0xef, - 0x72, 0x4e, 0x3f, 0x01, 0xbd, 0x3d, 0x23, 0x7b, 0x62, 0x85, 0xab, 0x4b, 0x6f, 0x31, 0x86, 0xf4, - 0xad, 0xa7, 0x01, 0x58, 0x65, 0xd7, 0xec, 0x16, 0x53, 0x56, 0x2e, 0xc5, 0xe5, 0xef, 0x82, 0xd1, - 0x6a, 0x19, 0xe6, 0xa6, 0xbf, 0xef, 0x1f, 0x24, 0xa0, 0x17, 0x29, 0x32, 0x27, 0x58, 0xe2, 0xf2, - 0x16, 0xaf, 0x35, 0xbd, 0x20, 0x3d, 0xe2, 0x7e, 0x77, 0x7f, 0xd3, 0xc9, 0xa9, 0x79, 0x98, 0x22, - 0x69, 0xac, 0x05, 0xe6, 0xc7, 0xdc, 0x3e, 0xd8, 0x23, 0xb7, 0x52, 0xaa, 0x2f, 0x55, 0xe7, 0xfd, - 0x6f, 0xe3, 0x2e, 0x49, 0x97, 0x99, 0x42, 0xe5, 0x5e, 0xd2, 0x1a, 0x27, 0xd4, 0x47, 0xc0, 0x15, - 0x5c, 0x87, 0x5d, 0x58, 0xd6, 0x4a, 0x85, 0xf9, 0x7b, 0xd7, 0x4b, 0x4f, 0x2d, 0xd7, 0xea, 0x35, - 0xb1, 0x71, 0x79, 0xed, 0x68, 0xd2, 0xe5, 0xb7, 0xb4, 0x52, 0x28, 0x2f, 0xb3, 0xfe, 0x7d, 0xa1, - 0xaa, 0xad, 0x14, 0xea, 0xf9, 0x29, 0xf4, 0x72, 0x05, 0xf2, 0x8b, 0xd8, 0x59, 0xb5, 0x6c, 0x47, - 0x6f, 0x2d, 0x1b, 0xe6, 0xc5, 0x35, 0xbb, 0x25, 0x4c, 0x36, 0xa5, 0xc3, 0x74, 0x88, 0x43, 0xa4, - 0x40, 0x30, 0x7c, 0x47, 0xbc, 0x4d, 0xb2, 0x05, 0xca, 0x14, 0x24, 0xa0, 0x67, 0xa6, 0x65, 0x96, - 0xbb, 0xe5, 0x4b, 0x8d, 0xa7, 0x27, 0xcf, 0x1a, 0xf5, 0xf8, 0xdc, 0x03, 0xb5, 0x1c, 0x7a, 0x6e, - 0x06, 0xc6, 0x17, 0x0c, 0x53, 0x6f, 0x19, 0xcf, 0x10, 0xe2, 0x97, 0x06, 0x7d, 0x4c, 0x2a, 0xa2, - 0x8f, 0x49, 0x0f, 0x34, 0x7e, 0xfe, 0x86, 0x22, 0xbb, 0xbc, 0xc0, 0xc9, 0xde, 0x63, 0x32, 0x64, - 0xf0, 0xfc, 0x70, 0x5a, 0x66, 0x79, 0xa1, 0x3f, 0xbd, 0x78, 0x18, 0x7e, 0xea, 0xc7, 0xc3, 0xc6, - 0xea, 0x6a, 0xdf, 0xe3, 0xbd, 0x54, 0x61, 0x02, 0xfd, 0xa5, 0x02, 0x68, 0x11, 0x3b, 0xe7, 0xb0, - 0xed, 0x4f, 0x05, 0x48, 0xaf, 0xcf, 0xec, 0x6d, 0xae, 0xc9, 0xbe, 0x99, 0x07, 0xf0, 0xbc, 0x08, - 0x60, 0x21, 0xa2, 0xf1, 0x84, 0x90, 0x0e, 0x69, 0xbc, 0x65, 0xc8, 0x75, 0xc8, 0x77, 0xa6, 0x66, - 0x8f, 0x0d, 0x1f, 0x2e, 0x09, 0x31, 0x9e, 0x3a, 0x25, 0xac, 0x31, 0x02, 0xe8, 0x87, 0xfe, 0x24, - 0xe8, 0xe7, 0x04, 0xed, 0x58, 0x38, 0x30, 0xb3, 0xf1, 0xf4, 0xc5, 0x4e, 0x56, 0x5d, 0x7a, 0xd9, - 0x37, 0xe8, 0xc3, 0x59, 0x38, 0xde, 0xab, 0x3a, 0xe8, 0x03, 0x29, 0x61, 0x87, 0x1d, 0x93, 0x21, - 0x3f, 0xc5, 0x36, 0x10, 0xdd, 0x17, 0xf5, 0xf1, 0x70, 0xc2, 0x5f, 0x86, 0xab, 0x5b, 0x15, 0x7c, - 0xa9, 0xd3, 0xc2, 0x8e, 0x83, 0x6d, 0x52, 0xb5, 0x71, 0xad, 0xf7, 0x47, 0xf5, 0x89, 0x70, 0xb9, - 0x61, 0x76, 0x8c, 0x26, 0xb6, 0xeb, 0x46, 0xbb, 0x53, 0x30, 0x9b, 0xf5, 0x1d, 0xc7, 0xb2, 0x0d, - 0x9d, 0x5d, 0x25, 0x39, 0xae, 0x85, 0x7d, 0x56, 0x6f, 0x84, 0xbc, 0xd1, 0xa9, 0x9a, 0x17, 0x2c, - 0xdd, 0x6e, 0x1a, 0xe6, 0xe6, 0xb2, 0xd1, 0x71, 0x98, 0x07, 0xf0, 0xbe, 0x74, 0xf4, 0x0f, 0x8a, - 0xec, 0x61, 0xba, 0x3e, 0xb0, 0x86, 0x74, 0x28, 0xcf, 0x53, 0x64, 0x8e, 0xc7, 0xc5, 0xa3, 0x1d, - 0x4f, 0x59, 0x9e, 0x33, 0x6a, 0x43, 0xa2, 0xf7, 0x08, 0x4e, 0xba, 0x16, 0x9a, 0xee, 0x19, 0x02, - 0xe7, 0x4a, 0x5a, 0x79, 0xa1, 0x5c, 0x72, 0xcd, 0x8a, 0x13, 0x70, 0x2c, 0xf8, 0x36, 0x7f, 0xef, - 0x7a, 0xad, 0x54, 0xa9, 0xe7, 0xc7, 0xdd, 0x7e, 0x8a, 0x26, 0x2f, 0x14, 0xca, 0xcb, 0xa5, 0xf9, - 0xf5, 0x7a, 0xd5, 0xfd, 0x32, 0x3f, 0x98, 0x69, 0x81, 0x1e, 0xc8, 0xc0, 0x51, 0x22, 0xdb, 0x3d, - 0x22, 0x55, 0x57, 0x28, 0x5d, 0xbe, 0xb6, 0x3e, 0x40, 0x13, 0x54, 0xbc, 0xe8, 0xb3, 0xd2, 0x37, - 0x65, 0x72, 0x10, 0x76, 0x95, 0x11, 0xa2, 0x19, 0x3f, 0x48, 0xcb, 0x44, 0xa8, 0x90, 0x26, 0x1b, - 0x4f, 0x29, 0xfe, 0x65, 0xd4, 0x23, 0x4e, 0x38, 0xf8, 0xc4, 0xca, 0x2c, 0x92, 0x9f, 0x9f, 0xba, - 0x5a, 0xd6, 0x88, 0x3a, 0xcc, 0x00, 0x90, 0x14, 0xa2, 0x41, 0x54, 0x0f, 0x7a, 0x8e, 0x57, 0x61, - 0x7a, 0x50, 0x28, 0xd6, 0xcb, 0xe7, 0x4a, 0x61, 0x7a, 0xf0, 0x19, 0x05, 0xc6, 0x17, 0xb1, 0xe3, - 0xce, 0xa9, 0x3a, 0xe8, 0x49, 0x12, 0xeb, 0x3f, 0xae, 0x19, 0xd3, 0xb2, 0x1a, 0x7a, 0xcb, 0x5f, - 0x06, 0xa0, 0x6f, 0xe8, 0xd9, 0x83, 0x98, 0x20, 0x5e, 0xd1, 0x21, 0xe3, 0xd5, 0xcf, 0x42, 0xd6, - 0x71, 0x3f, 0xb3, 0x65, 0xe8, 0x9f, 0x0a, 0x1d, 0xae, 0x5c, 0x22, 0xf3, 0xba, 0xa3, 0x6b, 0x34, - 0x3f, 0x37, 0x3a, 0x49, 0xda, 0x2e, 0x21, 0x8c, 0xfc, 0x38, 0xda, 0x9f, 0x7f, 0xa7, 0xc0, 0x09, - 0xda, 0x3e, 0x0a, 0xed, 0x76, 0xcd, 0xb1, 0x6c, 0xac, 0xe1, 0x06, 0x36, 0xda, 0x4e, 0xd7, 0xfa, - 0x9e, 0x4d, 0x53, 0xbd, 0xcd, 0x66, 0xf6, 0x8a, 0xde, 0xa0, 0xc8, 0xc6, 0x60, 0xde, 0xd7, 0x1e, - 0xbb, 0xca, 0x0b, 0x69, 0xec, 0x1f, 0x4f, 0xcb, 0x44, 0x55, 0x8e, 0x49, 0x3c, 0x1e, 0x50, 0x1f, - 0x39, 0x04, 0xa0, 0xbc, 0x95, 0x1b, 0xad, 0x54, 0x2c, 0x95, 0x57, 0xdd, 0x41, 0xe0, 0x6a, 0xb8, - 0x72, 0x75, 0x4d, 0x2b, 0x2e, 0x15, 0x6a, 0xa5, 0x75, 0xad, 0xb4, 0x58, 0xae, 0xd5, 0x99, 0x53, - 0x16, 0xfd, 0x6b, 0x4c, 0xbd, 0x0a, 0x4e, 0xd5, 0xd6, 0xe6, 0x6a, 0x45, 0xad, 0xbc, 0x4a, 0xd2, - 0xb5, 0x52, 0xa5, 0x74, 0x9e, 0x7d, 0x1d, 0x47, 0x1f, 0xcc, 0xc3, 0xa4, 0x3b, 0x01, 0xa8, 0xd1, - 0x79, 0x01, 0xfa, 0x4e, 0x06, 0x26, 0x35, 0xdc, 0xb1, 0x5a, 0xbb, 0x64, 0x8e, 0x30, 0xaa, 0xa9, - 0xc7, 0xf7, 0x15, 0xd9, 0xf3, 0xdb, 0x1c, 0xb3, 0xb3, 0x1c, 0xa3, 0xe1, 0x13, 0x4d, 0x7d, 0x57, - 0x37, 0x5a, 0xfa, 0x05, 0xd6, 0xd5, 0x8c, 0x6b, 0x41, 0x82, 0x3a, 0x0b, 0xaa, 0x75, 0xc9, 0xc4, - 0x76, 0xad, 0x71, 0xa9, 0xe4, 0x6c, 0x15, 0x9a, 0x4d, 0x1b, 0x77, 0x3a, 0x6c, 0xf5, 0xa2, 0xc7, - 0x17, 0xf5, 0x06, 0x38, 0x4a, 0x52, 0xb9, 0xcc, 0xd4, 0x41, 0xa6, 0x3b, 0xd9, 0xcf, 0x59, 0x30, - 0xf7, 0xbc, 0x9c, 0x59, 0x2e, 0x67, 0x90, 0xcc, 0x1f, 0x97, 0xc8, 0x89, 0xa7, 0x74, 0xae, 0x81, - 0x49, 0x53, 0xdf, 0xc6, 0xa5, 0xfb, 0xdb, 0x86, 0x8d, 0x3b, 0xc4, 0x31, 0x46, 0xd1, 0xf8, 0x24, - 0xf4, 0x61, 0xa9, 0xf3, 0xe6, 0x72, 0x12, 0x8b, 0xa7, 0xfb, 0x8b, 0x03, 0xa8, 0x7e, 0x8f, 0x7e, - 0x46, 0x41, 0x1f, 0x54, 0x60, 0x8a, 0x31, 0x55, 0x30, 0xf7, 0xca, 0x4d, 0x74, 0xb5, 0x60, 0xfc, - 0xea, 0x6e, 0x9a, 0x67, 0xfc, 0x92, 0x17, 0xf4, 0xab, 0x8a, 0xac, 0xbb, 0x73, 0x8f, 0x8a, 0x93, - 0x32, 0xc2, 0x1d, 0x47, 0x37, 0xac, 0x1d, 0xe6, 0xa8, 0x3a, 0xae, 0xd1, 0x97, 0x24, 0x17, 0xf5, - 0xd0, 0x1f, 0x4a, 0x39, 0x53, 0x4b, 0x56, 0xe3, 0x90, 0x00, 0xfc, 0xa4, 0x02, 0x33, 0x8c, 0xab, - 0x1a, 0x3b, 0xe7, 0x23, 0x75, 0xe0, 0xed, 0xd7, 0xa4, 0x0d, 0xc1, 0x1e, 0xf5, 0x67, 0x25, 0x3d, - 0x6c, 0x80, 0xfc, 0xa8, 0x54, 0x70, 0x34, 0xe9, 0x8a, 0x1c, 0x12, 0x94, 0xef, 0xc8, 0xc0, 0xe4, - 0x5a, 0x07, 0xdb, 0xcc, 0x6f, 0x1f, 0x3d, 0x98, 0x01, 0x65, 0x11, 0x0b, 0x1b, 0xa9, 0x2f, 0x94, - 0xf6, 0xf0, 0xe5, 0x2b, 0xcb, 0x11, 0x75, 0x6d, 0xa4, 0x10, 0xd8, 0xae, 0x87, 0x19, 0x2a, 0xd2, - 0x82, 0xe3, 0xb8, 0x46, 0xa2, 0xe7, 0x4d, 0xdb, 0x95, 0x3a, 0x8c, 0xad, 0x22, 0x52, 0x96, 0x9b, - 0xa5, 0xe8, 0xf2, 0xb4, 0x8c, 0x37, 0xe8, 0x7c, 0x36, 0xa3, 0x75, 0xa5, 0xaa, 0x37, 0xc3, 0x65, - 0x56, 0x1b, 0xd3, 0xf3, 0x2b, 0x5c, 0xe6, 0x2c, 0xc9, 0xdc, 0xeb, 0x13, 0xfa, 0x8e, 0x94, 0xaf, - 0xae, 0xbc, 0x74, 0xe2, 0xe9, 0x42, 0x7b, 0x38, 0x26, 0xc9, 0x71, 0xc8, 0xbb, 0x39, 0xc8, 0xfe, - 0x8b, 0x56, 0xaa, 0x55, 0x97, 0xcf, 0x95, 0x7a, 0x2f, 0x63, 0x64, 0xd1, 0x73, 0x14, 0x98, 0x98, - 0xb3, 0x2d, 0xbd, 0xd9, 0xd0, 0x3b, 0x0e, 0xfa, 0x61, 0x1a, 0xa6, 0x56, 0xf5, 0xbd, 0x96, 0xa5, - 0x37, 0x89, 0x7f, 0x7f, 0x57, 0x5f, 0xd0, 0xa6, 0x9f, 0xbc, 0xbe, 0x80, 0xbd, 0x8a, 0x07, 0x03, - 0xfd, 0xa3, 0x7b, 0x29, 0x99, 0x0b, 0x35, 0xfd, 0x6d, 0xbe, 0x74, 0xaf, 0x60, 0xa5, 0x1e, 0x5f, - 0xb3, 0x3c, 0x4f, 0x21, 0x16, 0xe5, 0x07, 0xe5, 0xc2, 0x8f, 0xca, 0x90, 0x3c, 0x9c, 0x5d, 0xf9, - 0xe7, 0x8e, 0x43, 0x6e, 0x1e, 0x13, 0x2b, 0xee, 0xbf, 0xa7, 0x61, 0xac, 0x86, 0x1d, 0x62, 0xc1, - 0xdd, 0x2a, 0x78, 0x0a, 0x37, 0x49, 0x86, 0xc0, 0x89, 0xdd, 0x7b, 0x77, 0x27, 0xeb, 0xdc, 0x79, - 0x6b, 0xf2, 0x1c, 0xc3, 0x23, 0x91, 0x96, 0x3b, 0xcb, 0xca, 0x3c, 0x90, 0x47, 0x62, 0x24, 0xa9, - 0xe4, 0x7d, 0xad, 0xde, 0x95, 0x66, 0xae, 0x55, 0x5c, 0xaf, 0xf7, 0x1a, 0x5e, 0x3f, 0x23, 0xbd, - 0xcd, 0x18, 0xf3, 0x11, 0xce, 0x51, 0x8f, 0x83, 0x31, 0x2a, 0x73, 0x6f, 0x3e, 0xda, 0xed, 0xa7, - 0x40, 0x49, 0x90, 0xb3, 0xd7, 0x5e, 0x4e, 0x49, 0x17, 0xb5, 0xf0, 0xc2, 0x47, 0x12, 0x83, 0x60, - 0xaa, 0x82, 0x9d, 0x4b, 0x96, 0x7d, 0xb1, 0xe6, 0xe8, 0x0e, 0x46, 0xff, 0x92, 0x06, 0xa5, 0x86, - 0x1d, 0x3e, 0xfa, 0x49, 0x05, 0x8e, 0xd1, 0x0a, 0xb1, 0x8c, 0xa4, 0xff, 0xa6, 0x15, 0xb9, 0xa6, - 0xa7, 0x10, 0xb8, 0x7c, 0xda, 0xfe, 0x5f, 0xd1, 0x6f, 0xf5, 0x0c, 0xfa, 0x94, 0xee, 0x31, 0x69, - 0x60, 0x92, 0xe1, 0x19, 0x74, 0x15, 0x2c, 0x44, 0x4f, 0x3f, 0x24, 0x65, 0x56, 0xcb, 0xd1, 0x3c, - 0x9c, 0xae, 0xe0, 0xa3, 0x57, 0x40, 0xa6, 0xb8, 0xa5, 0x3b, 0xe8, 0x9d, 0x0a, 0x40, 0xa1, 0xd9, - 0x5c, 0xa1, 0x3e, 0xe0, 0xbc, 0x43, 0xda, 0x19, 0x98, 0x6a, 0x6c, 0xe9, 0xc1, 0xdd, 0x26, 0xb4, - 0x3f, 0x10, 0xd2, 0xd4, 0xc7, 0x07, 0xce, 0xe4, 0x54, 0xaa, 0xa8, 0x0b, 0x26, 0xb7, 0x0c, 0x46, - 0xdb, 0x77, 0x34, 0x17, 0x43, 0x61, 0x46, 0x1e, 0xa1, 0x73, 0x7f, 0x9f, 0x0d, 0xd8, 0x0b, 0x9f, - 0xc3, 0x31, 0xd2, 0xfe, 0x01, 0x9b, 0x20, 0x21, 0xe6, 0x49, 0x6f, 0xb9, 0x80, 0x1e, 0xd1, 0x7c, - 0x8d, 0x24, 0x74, 0xad, 0x5a, 0x6a, 0x1a, 0x9e, 0x68, 0x59, 0xc0, 0x2c, 0xf4, 0x82, 0x54, 0x3c, - 0xf8, 0xa2, 0x05, 0x77, 0x17, 0x4c, 0xe3, 0xa6, 0xe1, 0x60, 0xaf, 0x96, 0x4c, 0x80, 0x51, 0x10, - 0x8b, 0x3f, 0xa0, 0x67, 0x49, 0x07, 0x5d, 0x23, 0x02, 0xdd, 0x5f, 0xa3, 0x90, 0xf6, 0x27, 0x17, - 0x46, 0x4d, 0x8e, 0x66, 0xf2, 0x60, 0x3d, 0x5b, 0x81, 0x13, 0x75, 0x6b, 0x73, 0xb3, 0x85, 0x3d, - 0x31, 0x61, 0xea, 0x9d, 0x89, 0xf4, 0x61, 0xc2, 0x45, 0x76, 0x82, 0xac, 0xfb, 0x0c, 0xff, 0x28, - 0x99, 0xfb, 0x22, 0x9e, 0x98, 0x8a, 0x9c, 0x45, 0x11, 0x71, 0xf5, 0xe4, 0x33, 0x04, 0x05, 0xb9, - 0x80, 0xcf, 0xd2, 0x64, 0x93, 0x07, 0xe2, 0x8b, 0x69, 0x98, 0xa6, 0x37, 0x57, 0x7a, 0x0a, 0x7a, - 0xcf, 0x10, 0x01, 0x40, 0x3f, 0x4c, 0xc9, 0xfa, 0xd9, 0x12, 0x99, 0x08, 0x9c, 0x84, 0x88, 0x58, - 0x2e, 0xa8, 0x4a, 0x5f, 0x72, 0xc9, 0x8b, 0xf6, 0xcf, 0x14, 0x98, 0x5c, 0xc4, 0x5e, 0x4b, 0xeb, - 0xc4, 0xee, 0x89, 0xce, 0xc0, 0x14, 0xb9, 0xbe, 0xad, 0xca, 0x8e, 0x49, 0xd2, 0x55, 0x33, 0x21, - 0x4d, 0xbd, 0x0e, 0xa6, 0x2f, 0xe0, 0x0d, 0xcb, 0xc6, 0x55, 0xe1, 0x2c, 0xa5, 0x98, 0x18, 0x12, - 0x9e, 0x4e, 0x88, 0x83, 0x36, 0x27, 0x62, 0x73, 0xd3, 0x7e, 0x61, 0x72, 0x55, 0x09, 0x19, 0x73, - 0x9e, 0x00, 0xe3, 0x0c, 0x79, 0xcf, 0x4c, 0x8b, 0xea, 0x17, 0xfd, 0xbc, 0xe8, 0xf5, 0x3e, 0xa2, - 0x25, 0x01, 0xd1, 0xc7, 0xc6, 0x61, 0x62, 0x24, 0xf7, 0xbb, 0xe7, 0xb9, 0xf2, 0xe7, 0xf6, 0xca, - 0xcd, 0x0e, 0x5a, 0x89, 0x87, 0xe9, 0x69, 0x00, 0xbf, 0x71, 0x78, 0x61, 0x2d, 0xb8, 0x14, 0x31, - 0x72, 0x7d, 0xe4, 0x41, 0xbd, 0x6e, 0x71, 0x10, 0x76, 0x86, 0x0c, 0x8c, 0xdc, 0x01, 0x3f, 0x19, - 0x4e, 0x92, 0x47, 0xe7, 0xd3, 0x0a, 0x9c, 0xf0, 0xcf, 0x1f, 0x2d, 0xeb, 0x9d, 0xa0, 0xdd, 0x15, - 0xe3, 0x41, 0x24, 0x1c, 0xf8, 0xf0, 0x1b, 0xcb, 0x77, 0xe3, 0x8d, 0x19, 0x3d, 0x39, 0x19, 0x2e, - 0x3a, 0xea, 0x4d, 0x70, 0xcc, 0xdc, 0xd9, 0xf6, 0xa5, 0x4e, 0x5a, 0x3c, 0x6b, 0xe1, 0xfb, 0x3f, - 0xc4, 0x19, 0x99, 0x64, 0x98, 0x1f, 0xc9, 0x9c, 0x52, 0x38, 0xd2, 0xf5, 0x98, 0x58, 0x30, 0xa2, - 0x7f, 0x4e, 0xc5, 0xea, 0xdd, 0xfa, 0x9f, 0xf9, 0x8a, 0xd1, 0x4b, 0x1d, 0xe2, 0x81, 0xaf, 0x33, - 0x63, 0x90, 0x2d, 0x6d, 0xb7, 0x9d, 0xbd, 0x33, 0x8f, 0x84, 0xe9, 0x9a, 0x63, 0x63, 0x7d, 0x9b, - 0xdb, 0x19, 0x70, 0xac, 0x8b, 0xd8, 0xf4, 0x76, 0x06, 0xc8, 0xcb, 0x6d, 0xb7, 0xc2, 0x98, 0x69, - 0xad, 0xeb, 0x3b, 0xce, 0x96, 0x7a, 0xf5, 0xbe, 0x23, 0xf5, 0x0c, 0xfc, 0x2a, 0x8b, 0x61, 0xf4, - 0xb5, 0xdb, 0xc9, 0xda, 0x70, 0xce, 0xb4, 0x0a, 0x3b, 0xce, 0xd6, 0xdc, 0x55, 0x9f, 0xfc, 0xfa, - 0xe9, 0xd4, 0x67, 0xbe, 0x7e, 0x3a, 0xf5, 0xd5, 0xaf, 0x9f, 0x4e, 0xfd, 0xda, 0x37, 0x4e, 0x1f, - 0xf9, 0xcc, 0x37, 0x4e, 0x1f, 0xf9, 0xe2, 0x37, 0x4e, 0x1f, 0xf9, 0xb9, 0x74, 0xfb, 0xc2, 0x85, - 0x1c, 0xa1, 0xf2, 0xb8, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xba, 0xc3, 0xff, 0xbc, 0x42, 0x02, - 0x02, 0x00, + 0xe7, 0x3e, 0x58, 0x4f, 0x15, 0xc0, 0x9a, 0x3f, 0x20, 0xfd, 0xc3, 0x44, 0xed, 0x03, 0x0a, 0x1c, + 0xf7, 0x3a, 0xe2, 0xd1, 0xa1, 0xf5, 0x09, 0x1e, 0xad, 0xa7, 0x89, 0x68, 0x2d, 0xca, 0x48, 0xb3, + 0x17, 0xcb, 0x21, 0xa8, 0x7d, 0xd9, 0x47, 0xed, 0x17, 0x04, 0xd4, 0x96, 0x87, 0x54, 0xce, 0x61, + 0xa2, 0xf7, 0x41, 0x05, 0x4e, 0xb9, 0x66, 0x67, 0xd1, 0x32, 0x37, 0x5a, 0x46, 0xc3, 0x31, 0xcc, + 0x4d, 0x9f, 0x53, 0xde, 0x8d, 0x32, 0x7c, 0x65, 0xb3, 0x1b, 0xdb, 0xf4, 0x7e, 0x6c, 0xc5, 0x00, + 0x0c, 0xb2, 0x6d, 0x2b, 0x8c, 0xad, 0x90, 0x21, 0x8c, 0xf3, 0xde, 0x0d, 0x34, 0x87, 0x4f, 0x8a, + 0xdf, 0xfa, 0x24, 0x39, 0x38, 0x4c, 0xfc, 0x1e, 0x00, 0xce, 0xf4, 0x78, 0x9e, 0x02, 0x79, 0x97, + 0x67, 0xda, 0xb3, 0xb3, 0x0b, 0x2c, 0xab, 0xa2, 0xab, 0x75, 0xdb, 0x13, 0x90, 0xe7, 0x6a, 0xed, + 0x25, 0xa8, 0xd7, 0xc3, 0x4c, 0x63, 0x0b, 0x37, 0x2e, 0x96, 0x4d, 0xcf, 0x17, 0x89, 0x3a, 0xae, + 0x74, 0xa5, 0x8a, 0x83, 0xd9, 0x3d, 0x22, 0x98, 0xe2, 0xc2, 0xa3, 0x30, 0xb1, 0xe1, 0x99, 0x0a, + 0x69, 0x68, 0x7f, 0xe4, 0x03, 0x54, 0x11, 0x00, 0xba, 0x6d, 0x20, 0xaa, 0xf1, 0x60, 0xa9, 0x0c, + 0x00, 0x0b, 0x82, 0x93, 0xd5, 0xd5, 0x7a, 0xb9, 0x5a, 0x59, 0x5f, 0xab, 0x95, 0xe6, 0xd7, 0xe7, + 0x3c, 0x70, 0x6a, 0x79, 0x05, 0x7d, 0x3b, 0x0d, 0x63, 0x94, 0xad, 0x0e, 0x7a, 0x74, 0x00, 0x41, + 0x5f, 0x1f, 0x73, 0xf4, 0x36, 0xe9, 0x88, 0x31, 0xbe, 0x20, 0x58, 0x39, 0x21, 0x0d, 0xe3, 0x89, + 0x30, 0x46, 0x41, 0xf6, 0x76, 0x01, 0x4e, 0x87, 0x58, 0x76, 0x8c, 0x8c, 0xe6, 0x65, 0x97, 0x8c, + 0x1e, 0xd3, 0x87, 0x8d, 0xe4, 0xad, 0xf1, 0x67, 0x66, 0xe8, 0xd2, 0xc1, 0x79, 0xc3, 0xd9, 0x22, + 0x2e, 0xe8, 0xe8, 0x29, 0x32, 0x1d, 0xd7, 0x4d, 0x90, 0xdd, 0x75, 0x73, 0xf7, 0x71, 0xe7, 0xa7, + 0x99, 0xd0, 0x2b, 0xa4, 0x83, 0x15, 0x0b, 0xfa, 0xe9, 0xf3, 0x14, 0x02, 0xce, 0x0a, 0x64, 0x5a, + 0x46, 0xc7, 0x61, 0x36, 0xf7, 0xad, 0xb1, 0x08, 0x79, 0x0f, 0x65, 0x07, 0x6f, 0x6b, 0x84, 0x0c, + 0xba, 0xdb, 0xb5, 0x98, 0x82, 0x54, 0x89, 0x23, 0x0d, 0xa7, 0x60, 0x8c, 0x1d, 0xb5, 0x65, 0xdb, + 0x52, 0xde, 0xab, 0xe4, 0x56, 0x90, 0x54, 0x6d, 0x93, 0xd7, 0x81, 0xff, 0xe7, 0x28, 0x8c, 0x2d, + 0x19, 0x1d, 0xc7, 0xb2, 0xf7, 0xd0, 0x43, 0x29, 0x18, 0x3b, 0x87, 0xed, 0x8e, 0x61, 0x99, 0xfb, + 0xdc, 0xb3, 0xae, 0x81, 0xc9, 0xb6, 0x8d, 0x77, 0x0d, 0x6b, 0xa7, 0xc3, 0x8d, 0x12, 0x5c, 0x92, + 0x8a, 0x60, 0x5c, 0xdf, 0x71, 0xb6, 0x2c, 0x3b, 0x88, 0xd0, 0xe3, 0xbd, 0xab, 0xa7, 0x01, 0xe8, + 0x73, 0x45, 0xdf, 0xc6, 0xcc, 0xe9, 0x8c, 0x4b, 0x51, 0x55, 0xc8, 0x38, 0xc6, 0x36, 0x66, 0x21, + 0xbb, 0xc9, 0xb3, 0x2b, 0x60, 0x12, 0xfe, 0x92, 0x85, 0x19, 0x55, 0x34, 0xef, 0x15, 0x7d, 0x51, + 0x81, 0xc9, 0x45, 0xec, 0x30, 0x56, 0x3b, 0xe8, 0x85, 0x29, 0xa9, 0x5b, 0x72, 0xdc, 0x79, 0x49, + 0x4b, 0xef, 0x78, 0xff, 0xf9, 0x43, 0xae, 0x98, 0x18, 0xc4, 0x0f, 0x57, 0xf8, 0xcb, 0x03, 0x48, + 0x30, 0x49, 0xa7, 0x4c, 0x7d, 0xd5, 0x59, 0x66, 0xb6, 0x71, 0xbc, 0xff, 0x83, 0x68, 0x13, 0x47, + 0x06, 0x62, 0x60, 0xb2, 0x9f, 0xe5, 0xea, 0x13, 0xda, 0x1d, 0x8d, 0xef, 0xb2, 0x1c, 0xfb, 0xee, + 0x85, 0xe0, 0x29, 0x31, 0x32, 0x9a, 0x9f, 0x5b, 0x32, 0x84, 0x43, 0x7f, 0x4e, 0x92, 0xd7, 0xc6, + 0x1f, 0x28, 0x30, 0x59, 0xdb, 0xb2, 0x2e, 0x79, 0x72, 0x7c, 0x9a, 0x1c, 0xb0, 0x57, 0xc1, 0xc4, + 0x6e, 0x17, 0xa8, 0x41, 0x02, 0x7f, 0xf9, 0x98, 0x22, 0x5e, 0x3e, 0xf6, 0x5c, 0x25, 0x2e, 0x4c, + 0x1c, 0x73, 0x21, 0x30, 0x89, 0xf7, 0x85, 0xa5, 0x63, 0xdc, 0x17, 0xa6, 0x3e, 0x01, 0xc6, 0x18, + 0xd7, 0x6c, 0x99, 0x3a, 0x1a, 0x60, 0x2f, 0x33, 0x5f, 0xc1, 0x8c, 0x58, 0xc1, 0x78, 0xc8, 0x87, + 0x57, 0x2e, 0x79, 0xe4, 0xff, 0x34, 0x4d, 0x02, 0xf8, 0x78, 0xc0, 0x17, 0x87, 0x00, 0x3c, 0xfa, + 0x61, 0x4a, 0x76, 0x33, 0xc7, 0x97, 0x80, 0xcf, 0xc1, 0x81, 0x6e, 0xc0, 0xea, 0x4b, 0x2e, 0x79, + 0x79, 0xbe, 0x3c, 0x03, 0x53, 0xf3, 0xc6, 0xc6, 0x86, 0xdf, 0x49, 0xbe, 0x48, 0xb2, 0x93, 0x0c, + 0x77, 0xa1, 0x72, 0xed, 0xdc, 0x1d, 0xdb, 0xc6, 0xa6, 0x57, 0x29, 0xd6, 0x9c, 0xba, 0x52, 0xd5, + 0x1b, 0xe0, 0xa8, 0x37, 0x2e, 0xf0, 0x1d, 0xe5, 0x84, 0xd6, 0x9d, 0x8c, 0xbe, 0x2f, 0xed, 0x09, + 0xe0, 0x49, 0x94, 0xaf, 0x52, 0x48, 0x03, 0xbc, 0x1d, 0xa6, 0xb7, 0x68, 0x6e, 0xb2, 0x5c, 0xea, + 0x75, 0x96, 0x27, 0xbb, 0x02, 0xa4, 0xaf, 0xe0, 0x4e, 0x47, 0xdf, 0xc4, 0x9a, 0x98, 0xb9, 0xab, + 0xf9, 0x2a, 0x71, 0xae, 0xfb, 0x93, 0x73, 0x2a, 0x90, 0xa8, 0xc9, 0x08, 0xb4, 0xe3, 0x0c, 0x64, + 0x16, 0x8c, 0x16, 0x46, 0xbf, 0x92, 0x86, 0x09, 0x77, 0xd6, 0x6d, 0x36, 0xdc, 0x37, 0xce, 0xa1, + 0xf2, 0x7b, 0x29, 0xd9, 0x6b, 0x6e, 0x5d, 0x3a, 0xb3, 0x3e, 0x8d, 0x90, 0x76, 0x23, 0x77, 0x9d, + 0x6d, 0x24, 0xa9, 0x11, 0x5c, 0x4a, 0xe4, 0x4e, 0x3d, 0x36, 0x36, 0x5a, 0x96, 0x2e, 0x6c, 0x18, + 0x74, 0x9b, 0x42, 0x37, 0x42, 0xde, 0x3b, 0x17, 0x67, 0x39, 0xab, 0x86, 0x69, 0xfa, 0x81, 0x17, + 0xf6, 0xa5, 0x8b, 0xbe, 0x2e, 0x91, 0xb1, 0xab, 0x48, 0xdd, 0x59, 0xe9, 0x21, 0x9a, 0x7d, 0x3d, + 0xcc, 0x5c, 0xd8, 0x73, 0x70, 0x87, 0xe5, 0x62, 0xc5, 0x66, 0xb4, 0xae, 0x54, 0x2e, 0xf2, 0x7c, + 0x54, 0x8c, 0xab, 0x88, 0x02, 0xe3, 0x89, 0x7a, 0x69, 0x80, 0x19, 0xe0, 0x71, 0xc8, 0x57, 0xaa, + 0xf3, 0x25, 0xe2, 0xdf, 0xeb, 0x79, 0x4c, 0x6e, 0xa2, 0x17, 0x2b, 0x30, 0x45, 0x1c, 0xf0, 0x3c, + 0x14, 0xae, 0x95, 0x98, 0x8f, 0xa0, 0xaf, 0x4a, 0xfb, 0xfe, 0x92, 0x2a, 0xf3, 0x05, 0x84, 0x0b, + 0x7a, 0xc3, 0x68, 0x75, 0x0b, 0x3a, 0xab, 0x75, 0xa5, 0xf6, 0x00, 0x44, 0xe9, 0x09, 0xc8, 0x07, + 0xa4, 0x1c, 0x80, 0xfb, 0x71, 0x77, 0x58, 0xa8, 0xfc, 0xbe, 0x02, 0x93, 0xee, 0x24, 0xc5, 0x03, + 0xa5, 0x2a, 0x80, 0x62, 0x99, 0xad, 0xbd, 0x60, 0x59, 0xc4, 0x7b, 0x8d, 0xd5, 0x48, 0xfe, 0x4a, + 0x7a, 0xe6, 0x4e, 0x44, 0xc4, 0xf1, 0x32, 0x22, 0xfc, 0xde, 0x2f, 0x35, 0x9f, 0xef, 0xc3, 0xdc, + 0x61, 0xc1, 0xf7, 0xcd, 0x2c, 0xe4, 0xd6, 0xda, 0x04, 0xb9, 0x57, 0x28, 0x32, 0xb7, 0x38, 0xec, + 0x3b, 0xfc, 0xe5, 0x9a, 0x59, 0x2d, 0xab, 0xa1, 0xb7, 0x56, 0x83, 0x53, 0xb4, 0x41, 0x82, 0x7a, + 0x1b, 0xf3, 0x07, 0xa7, 0x47, 0x90, 0xaf, 0x8f, 0xbc, 0xe0, 0x80, 0xc8, 0x88, 0x3b, 0x68, 0x77, + 0x13, 0x1c, 0x6b, 0x1a, 0x1d, 0xfd, 0x42, 0x0b, 0x97, 0xcc, 0x86, 0xbd, 0x47, 0xc5, 0xc1, 0xa6, + 0x55, 0xfb, 0x3e, 0xa8, 0x77, 0x40, 0xb6, 0xe3, 0xec, 0xb5, 0xe8, 0x3c, 0x91, 0x3f, 0x97, 0x17, + 0x5a, 0x54, 0xcd, 0xcd, 0xae, 0xd1, 0xbf, 0x78, 0xb7, 0xce, 0x31, 0xc9, 0x3b, 0xee, 0x1f, 0x07, + 0x39, 0xcb, 0x36, 0x36, 0x0d, 0x7a, 0x67, 0xd9, 0xcc, 0xbe, 0x38, 0x9e, 0xd4, 0x14, 0xa8, 0x92, + 0x2c, 0x1a, 0xcb, 0xaa, 0x3e, 0x01, 0x26, 0x8c, 0x6d, 0x7d, 0x13, 0xdf, 0x63, 0x98, 0xf4, 0x94, + 0xf3, 0xcc, 0x2d, 0xa7, 0xf6, 0x1d, 0x39, 0x64, 0xdf, 0xb5, 0x20, 0x2b, 0x7a, 0x7f, 0x5a, 0x36, + 0xd8, 0x18, 0xa9, 0x1b, 0x05, 0x75, 0x24, 0x77, 0xfd, 0xa3, 0x57, 0x4b, 0x85, 0x01, 0x0b, 0x67, + 0x2b, 0xf9, 0xc1, 0xfb, 0x0b, 0x69, 0x18, 0x9f, 0xb7, 0x2e, 0x99, 0x44, 0xd1, 0x6f, 0x95, 0xb3, + 0x75, 0x7b, 0x1c, 0x0c, 0x17, 0xaf, 0xd2, 0x8d, 0x3c, 0x05, 0x46, 0x6a, 0xeb, 0x15, 0x19, 0x02, + 0x43, 0x64, 0xcb, 0x91, 0xbc, 0xe0, 0x34, 0xaa, 0x9c, 0xe4, 0xe5, 0xfa, 0x67, 0x0a, 0x64, 0xe6, + 0x6d, 0xab, 0x8d, 0xde, 0x9a, 0x8a, 0xe1, 0xe6, 0xd5, 0xb4, 0xad, 0x76, 0x9d, 0xdc, 0x50, 0x18, + 0xec, 0x6c, 0xf0, 0x69, 0xea, 0xad, 0x30, 0xde, 0xb6, 0x3a, 0x86, 0xe3, 0x4d, 0x23, 0x66, 0x6e, + 0x79, 0x44, 0xcf, 0xd6, 0xbc, 0xca, 0x32, 0x69, 0x7e, 0x76, 0xb7, 0xd7, 0x26, 0x22, 0x74, 0xe5, + 0xe2, 0x8a, 0xd1, 0xbb, 0xa5, 0xb1, 0x2b, 0x15, 0xbd, 0x84, 0x47, 0xf2, 0x49, 0x22, 0x92, 0x8f, + 0xec, 0x21, 0x61, 0xdb, 0x6a, 0x0f, 0xc5, 0x31, 0xe3, 0x95, 0x3e, 0xaa, 0x4f, 0x16, 0x50, 0xbd, + 0x51, 0xaa, 0xcc, 0xe4, 0x11, 0x7d, 0x7f, 0x06, 0x80, 0x98, 0x19, 0x6b, 0xee, 0x04, 0x48, 0xce, + 0xc6, 0x7a, 0x76, 0x86, 0x93, 0x65, 0x41, 0x94, 0xe5, 0xa3, 0x43, 0xac, 0x18, 0x42, 0x3e, 0x44, + 0xa2, 0x05, 0xc8, 0xee, 0xb8, 0x9f, 0x99, 0x44, 0x25, 0x49, 0x90, 0x57, 0x8d, 0xfe, 0x89, 0xfe, + 0x34, 0x05, 0x59, 0x92, 0xa0, 0x9e, 0x06, 0x20, 0x03, 0x3b, 0x3d, 0x44, 0x99, 0x22, 0x43, 0x38, + 0x97, 0x42, 0xb4, 0xd5, 0x68, 0xb2, 0xcf, 0xd4, 0x64, 0x0e, 0x12, 0xdc, 0xbf, 0xc9, 0x70, 0x4f, + 0x68, 0x31, 0x03, 0x80, 0x4b, 0x71, 0xff, 0x26, 0x6f, 0xcb, 0x78, 0x83, 0x06, 0x8f, 0xcf, 0x68, + 0x41, 0x82, 0xff, 0xf7, 0xb2, 0x7f, 0xe5, 0xa0, 0xf7, 0x37, 0x49, 0x71, 0x27, 0xc3, 0x44, 0x2d, + 0xe7, 0x82, 0x22, 0x72, 0x24, 0x53, 0x77, 0x32, 0x7a, 0x9d, 0xaf, 0x36, 0xf3, 0x82, 0xda, 0xdc, + 0x1c, 0x43, 0xbc, 0xc9, 0x2b, 0xcf, 0xd7, 0xb3, 0x30, 0x51, 0xb1, 0x9a, 0x4c, 0x77, 0xb8, 0x09, + 0xe3, 0xa7, 0xb2, 0xb1, 0x26, 0x8c, 0x3e, 0x8d, 0x10, 0x05, 0xb9, 0x4b, 0x54, 0x10, 0x39, 0x0a, + 0xbc, 0x7e, 0xa8, 0x73, 0x90, 0x23, 0xda, 0xbb, 0xff, 0x2e, 0xbb, 0x28, 0x12, 0x44, 0xb4, 0x1a, + 0xfb, 0xf3, 0x3f, 0x9c, 0x8e, 0xfd, 0x17, 0xc8, 0x92, 0x0a, 0x46, 0xec, 0xee, 0x88, 0x15, 0x4d, + 0x47, 0x57, 0x54, 0x89, 0xae, 0x68, 0xa6, 0xbb, 0xa2, 0x71, 0xd6, 0x01, 0xc2, 0x34, 0x24, 0x79, + 0x1d, 0xff, 0xc7, 0x31, 0x80, 0x8a, 0xbe, 0x6b, 0x6c, 0xd2, 0xdd, 0xe1, 0x2f, 0x7a, 0xf3, 0x1f, + 0xb6, 0x8f, 0xfb, 0x5f, 0xb9, 0x81, 0xf0, 0x56, 0x18, 0x63, 0xe3, 0x1e, 0xab, 0xc8, 0xd5, 0x42, + 0x45, 0x02, 0x2a, 0xd4, 0x2c, 0xbd, 0xdf, 0xd1, 0xbc, 0xfc, 0xc2, 0xb5, 0xdb, 0xe9, 0xae, 0x6b, + 0xb7, 0x7b, 0xef, 0x41, 0x84, 0x5c, 0xc6, 0x8d, 0xde, 0x23, 0x7d, 0x0a, 0x8a, 0xe3, 0x87, 0xab, + 0x51, 0x48, 0x13, 0x7c, 0x1c, 0x8c, 0x59, 0xfe, 0x86, 0xb6, 0x12, 0xba, 0x0e, 0x56, 0x36, 0x37, + 0x2c, 0xcd, 0xcb, 0x29, 0xb9, 0xf9, 0x25, 0xc5, 0xc7, 0x48, 0x0e, 0x1a, 0x9e, 0x5c, 0xf4, 0x02, + 0xf1, 0xb9, 0xf5, 0x38, 0x6f, 0x38, 0x5b, 0xcb, 0x86, 0x79, 0xb1, 0x83, 0x7e, 0x41, 0xce, 0x82, + 0xe4, 0xf0, 0x4f, 0xc7, 0xc3, 0x5f, 0x8c, 0x73, 0x54, 0x13, 0x51, 0xbb, 0x23, 0x8c, 0x4a, 0x6f, + 0x6e, 0x43, 0x00, 0xbc, 0x0d, 0x72, 0x94, 0x51, 0xd6, 0x89, 0x9e, 0x09, 0xc5, 0xcf, 0xa7, 0xa4, + 0xb1, 0x3f, 0xd0, 0xbb, 0x7d, 0x1c, 0xcf, 0x09, 0x38, 0xce, 0x1d, 0x88, 0xb3, 0xc4, 0x21, 0x3d, + 0xf3, 0x58, 0x18, 0x63, 0x92, 0x56, 0x67, 0xf8, 0x56, 0x9c, 0x3f, 0xa2, 0x02, 0xe4, 0x56, 0xac, + 0x5d, 0x5c, 0xb7, 0xf2, 0x29, 0xf7, 0xd9, 0xe5, 0xaf, 0x6e, 0xe5, 0xd3, 0xe8, 0x55, 0xe3, 0x30, + 0xee, 0x47, 0x40, 0xfb, 0x42, 0x1a, 0xf2, 0x45, 0x1b, 0xeb, 0x0e, 0x5e, 0xb0, 0xad, 0x6d, 0x5a, + 0x23, 0x79, 0x8f, 0xfa, 0xdf, 0x92, 0x76, 0xf1, 0xf0, 0x23, 0x93, 0x75, 0x17, 0x16, 0x82, 0x25, + 0x5d, 0x84, 0x4c, 0x7b, 0x8b, 0x90, 0xe8, 0x2d, 0x52, 0x2e, 0x1f, 0xb2, 0xa5, 0x24, 0xdf, 0xd4, + 0x3e, 0x93, 0x86, 0x6c, 0xb1, 0x65, 0x99, 0x98, 0x3f, 0xf6, 0xd9, 0xf7, 0x7c, 0x61, 0xef, 0x9d, + 0x08, 0xf4, 0xcc, 0xb4, 0xac, 0xad, 0x11, 0x08, 0xc0, 0x2d, 0x5b, 0x52, 0xb6, 0x72, 0x83, 0x54, + 0x24, 0xe9, 0xe4, 0x05, 0xfa, 0xed, 0x34, 0x4c, 0xd0, 0x58, 0x62, 0x85, 0x56, 0x0b, 0x3d, 0x22, + 0x10, 0x6a, 0x8f, 0x28, 0x72, 0xe8, 0x03, 0xd2, 0xc7, 0x9a, 0xfc, 0x5a, 0xf9, 0xb4, 0x63, 0x04, + 0x55, 0x8b, 0x77, 0xca, 0x46, 0x6e, 0x2f, 0xad, 0x2f, 0x43, 0xc9, 0x8b, 0xfa, 0x2f, 0xd3, 0xae, + 0x01, 0x60, 0x5e, 0x5c, 0xb5, 0xf1, 0xae, 0x81, 0x2f, 0xa1, 0x2b, 0x03, 0x61, 0xef, 0x0f, 0x94, + 0xf4, 0x26, 0xe9, 0x45, 0x1c, 0x8e, 0x64, 0xe8, 0x56, 0xd6, 0x64, 0x2b, 0xc8, 0xc4, 0x7a, 0xf1, + 0xee, 0xe8, 0x55, 0x1c, 0x19, 0x8d, 0xcf, 0x2e, 0xb9, 0x66, 0x13, 0xce, 0x45, 0xf2, 0x82, 0xfd, + 0xc8, 0x18, 0x8c, 0xaf, 0x99, 0x9d, 0x76, 0x4b, 0xef, 0x6c, 0xa1, 0x7f, 0x53, 0x20, 0x47, 0x6f, + 0x50, 0x44, 0x3f, 0x23, 0xc4, 0x63, 0x79, 0xfa, 0x0e, 0xb6, 0x3d, 0x17, 0x1c, 0xfa, 0x12, 0xd8, + 0x47, 0x69, 0xce, 0x3e, 0x42, 0xef, 0x57, 0x64, 0x27, 0xa9, 0x5e, 0xa1, 0xec, 0xca, 0xc6, 0xf0, + 0x10, 0x20, 0x6d, 0xa3, 0xe1, 0xec, 0xd8, 0xb8, 0xd3, 0x33, 0x04, 0x48, 0x28, 0x95, 0x55, 0xfa, + 0x97, 0xe6, 0xff, 0x8e, 0x74, 0x18, 0x63, 0x89, 0xfb, 0xb6, 0x93, 0xf6, 0xc7, 0x2c, 0x38, 0x09, + 0x39, 0xdd, 0x76, 0x8c, 0x8e, 0xc3, 0x36, 0x58, 0xd9, 0x9b, 0xdb, 0x5d, 0xd2, 0xa7, 0x35, 0xbb, + 0xe5, 0x45, 0x6e, 0xf2, 0x13, 0xd0, 0xef, 0x4b, 0xcd, 0x1f, 0xa3, 0x6b, 0x1e, 0x0f, 0xf2, 0x7b, + 0x06, 0x58, 0xa3, 0xbe, 0x1c, 0x2e, 0xd3, 0x0a, 0xf5, 0xd2, 0x3a, 0x0d, 0xf4, 0xe3, 0xc7, 0xf4, + 0x69, 0xa2, 0x77, 0x29, 0xdc, 0xfa, 0xdd, 0x9e, 0x30, 0x46, 0x30, 0x29, 0x06, 0x63, 0x84, 0x9f, + 0x10, 0xb1, 0x5b, 0x2d, 0x2c, 0xc2, 0x2a, 0xf2, 0x8b, 0xb0, 0xbf, 0x2b, 0xbd, 0x9b, 0xe4, 0x8b, + 0xb2, 0xcf, 0x1a, 0x60, 0xd4, 0x0d, 0x6b, 0x1f, 0x92, 0xda, 0x19, 0xea, 0x57, 0xd2, 0x21, 0xc2, + 0xf6, 0xc6, 0x31, 0x18, 0x5b, 0xd4, 0x5b, 0x2d, 0x6c, 0xef, 0xb9, 0x43, 0x52, 0xde, 0xe3, 0x70, + 0x45, 0x37, 0x8d, 0x0d, 0xdc, 0x71, 0xa2, 0x3b, 0xcb, 0xf7, 0x48, 0x47, 0xef, 0x66, 0x65, 0xcc, + 0x76, 0xd3, 0x0f, 0x91, 0xf9, 0x59, 0xc8, 0x18, 0xe6, 0x86, 0xc5, 0xba, 0xcc, 0xee, 0x55, 0x7b, + 0xef, 0x67, 0x32, 0x75, 0x21, 0x19, 0x25, 0x03, 0x78, 0x4b, 0x72, 0x91, 0x7c, 0xcf, 0xf9, 0x7b, + 0x19, 0x98, 0xf6, 0x98, 0x28, 0x9b, 0x4d, 0x7c, 0x3f, 0xbf, 0x14, 0xf3, 0xe2, 0x8c, 0xec, 0x11, + 0xda, 0xee, 0xfa, 0x10, 0x52, 0x21, 0x22, 0xad, 0x03, 0x34, 0x74, 0x07, 0x6f, 0x5a, 0xb6, 0xe1, + 0xf7, 0x87, 0x8f, 0x8f, 0x43, 0xad, 0x48, 0xff, 0xde, 0xd3, 0x38, 0x3a, 0xea, 0x1d, 0x30, 0x89, + 0xfd, 0x98, 0x25, 0xde, 0x52, 0x4d, 0x24, 0x5e, 0x7c, 0x7e, 0xf4, 0x97, 0x52, 0x27, 0x75, 0x65, + 0xaa, 0x19, 0x0f, 0xb3, 0xf5, 0xc1, 0xda, 0xd0, 0x5a, 0x65, 0xa5, 0xa0, 0xd5, 0x96, 0x0a, 0xcb, + 0xcb, 0xe5, 0xca, 0xa2, 0x1f, 0x2c, 0x4b, 0x85, 0x99, 0xf9, 0xea, 0xf9, 0x0a, 0x17, 0xcd, 0x2c, + 0x83, 0x56, 0x61, 0xdc, 0x93, 0x57, 0x2f, 0x5f, 0x4c, 0x5e, 0x66, 0xcc, 0x17, 0x93, 0x4b, 0x72, + 0x8d, 0x33, 0xa3, 0xe1, 0x3b, 0xe8, 0x90, 0x67, 0xf4, 0xc7, 0x3a, 0x64, 0xc9, 0x9a, 0x3a, 0x7a, + 0x07, 0xd9, 0x06, 0x6c, 0xb7, 0xf4, 0x06, 0x46, 0xdb, 0x31, 0xac, 0x71, 0xef, 0x3a, 0x99, 0xf4, + 0xbe, 0xeb, 0x64, 0xc8, 0x23, 0xb3, 0xfa, 0x8e, 0xf7, 0x5a, 0xc7, 0xd7, 0x68, 0x16, 0xf1, 0x50, + 0x6b, 0xe4, 0xee, 0x0a, 0x5d, 0xfe, 0x67, 0x6c, 0x86, 0xa8, 0x64, 0x38, 0x4f, 0xf1, 0x2c, 0x51, + 0xb9, 0x7d, 0x98, 0x28, 0x8e, 0x92, 0x6f, 0xf1, 0x5f, 0xc9, 0x40, 0xb6, 0xd6, 0x6e, 0x19, 0x0e, + 0x7a, 0x59, 0x7a, 0x28, 0x98, 0xd1, 0x2b, 0x80, 0x94, 0xbe, 0x57, 0x00, 0x05, 0xbb, 0xae, 0x19, + 0x89, 0x5d, 0xd7, 0x3a, 0xbe, 0xdf, 0x11, 0x77, 0x5d, 0x6f, 0x65, 0x01, 0x2f, 0xe9, 0x9e, 0xed, + 0x23, 0x7b, 0x88, 0x94, 0x54, 0xab, 0x47, 0x24, 0xd5, 0x33, 0x8f, 0x65, 0x01, 0x1d, 0x01, 0x72, + 0x73, 0xd5, 0x7a, 0xbd, 0xba, 0x92, 0x3f, 0x42, 0x22, 0x81, 0x55, 0x57, 0x69, 0x78, 0xad, 0x72, + 0xa5, 0x52, 0xd2, 0xf2, 0x69, 0x12, 0x62, 0xb2, 0x5c, 0x5f, 0x2e, 0xe5, 0x15, 0xf1, 0x3e, 0x88, + 0x48, 0xf3, 0x5b, 0x2c, 0x3b, 0x49, 0xf5, 0x92, 0x33, 0xc4, 0xc3, 0xf9, 0x49, 0x5e, 0xb9, 0x7e, + 0x53, 0x81, 0xec, 0x0a, 0xb6, 0x37, 0x31, 0x7a, 0x7a, 0x8c, 0x4d, 0xbe, 0x0d, 0xc3, 0xee, 0xd0, + 0x80, 0x9c, 0xc1, 0x26, 0x1f, 0x9f, 0xa6, 0x5e, 0x07, 0xd3, 0x1d, 0xdc, 0xb0, 0xcc, 0xa6, 0x97, + 0x89, 0xf6, 0x47, 0x62, 0x22, 0x7a, 0x69, 0x4c, 0xc8, 0x08, 0xa3, 0x43, 0xd9, 0xa9, 0x8b, 0x03, + 0x4c, 0xaf, 0x52, 0x93, 0x07, 0xe6, 0xfb, 0x8a, 0xfb, 0x53, 0x7b, 0x0f, 0xbd, 0x54, 0x7a, 0xf7, + 0xf5, 0x26, 0xc8, 0x11, 0x35, 0xf5, 0xc6, 0xe8, 0xde, 0xfd, 0x31, 0xcb, 0xa3, 0xce, 0xc1, 0xb1, + 0x0e, 0x6e, 0xe1, 0x86, 0x83, 0x9b, 0x6e, 0xd3, 0xd5, 0xfa, 0x76, 0x0a, 0xfb, 0xb3, 0xa3, 0x3f, + 0xe7, 0x01, 0xbc, 0x5d, 0x04, 0xf0, 0xfa, 0x1e, 0xa2, 0x74, 0x2b, 0x14, 0x6e, 0x2b, 0xbb, 0xd5, + 0xa8, 0xb5, 0x2c, 0x7f, 0x51, 0xdc, 0x7b, 0x77, 0xbf, 0x6d, 0x39, 0xdb, 0x2d, 0xf2, 0x8d, 0x1d, + 0x30, 0xf0, 0xde, 0xd5, 0x59, 0x18, 0xd3, 0xcd, 0x3d, 0xf2, 0x29, 0x13, 0x51, 0x6b, 0x2f, 0x13, + 0x7a, 0x95, 0x8f, 0xfc, 0x9d, 0x02, 0xf2, 0x8f, 0x96, 0x63, 0x37, 0x79, 0xe0, 0x7f, 0x79, 0x0c, + 0xb2, 0xab, 0x7a, 0xc7, 0xc1, 0xe8, 0xff, 0x56, 0x64, 0x91, 0xbf, 0x1e, 0x66, 0x36, 0xac, 0xc6, + 0x4e, 0x07, 0x37, 0xc5, 0x46, 0xd9, 0x95, 0x3a, 0x0c, 0xcc, 0xd5, 0x1b, 0x21, 0xef, 0x25, 0x32, + 0xb2, 0xde, 0x36, 0xfc, 0xbe, 0x74, 0x72, 0xbb, 0x40, 0x67, 0x55, 0xb7, 0x9d, 0xea, 0x06, 0x49, + 0xf3, 0x6f, 0x17, 0xe0, 0x13, 0x05, 0xe8, 0x73, 0x11, 0xd0, 0x8f, 0x85, 0x43, 0x3f, 0x2e, 0x01, + 0xbd, 0x5a, 0x80, 0xf1, 0x0d, 0xa3, 0x85, 0xc9, 0x0f, 0x13, 0xe4, 0x87, 0x5e, 0x63, 0x12, 0x91, + 0xbd, 0x3f, 0x26, 0x2d, 0x18, 0x2d, 0xac, 0xf9, 0xbf, 0x79, 0x13, 0x19, 0x08, 0x26, 0x32, 0xcb, + 0xd4, 0x9f, 0xd6, 0x35, 0xbc, 0x4c, 0x7d, 0x1b, 0x7b, 0x8b, 0x6f, 0x26, 0x3b, 0xdc, 0xd2, 0xd4, + 0x1d, 0x9d, 0x80, 0x31, 0xa5, 0x91, 0x67, 0xd1, 0x2f, 0x44, 0xe9, 0xf6, 0x0b, 0x79, 0x8e, 0x12, + 0xaf, 0x47, 0xf4, 0x98, 0x0d, 0x69, 0x51, 0x17, 0x3c, 0x80, 0xa8, 0xa5, 0xe8, 0xbf, 0xbb, 0xc0, + 0x34, 0x74, 0x1b, 0x3b, 0xab, 0xbc, 0x27, 0x46, 0x56, 0x13, 0x13, 0x89, 0x2b, 0x5f, 0xa7, 0xa6, + 0x6f, 0x63, 0x52, 0x58, 0xd1, 0xfd, 0xc6, 0x5c, 0xb4, 0xf6, 0xa5, 0x07, 0xfd, 0x6f, 0x76, 0xd8, + 0xfd, 0x6f, 0xaf, 0x3a, 0x26, 0xdf, 0x0c, 0x5f, 0x9b, 0x01, 0xa5, 0xb8, 0xe3, 0x3c, 0xac, 0xbb, + 0xdf, 0x1f, 0x49, 0xfb, 0xb9, 0xb0, 0xfe, 0x6c, 0xc7, 0x39, 0xdc, 0xde, 0x37, 0xa6, 0x96, 0xc8, + 0xf9, 0xd3, 0x84, 0xd5, 0x2d, 0x79, 0x1d, 0x79, 0xab, 0xe2, 0x3b, 0x58, 0x3e, 0x90, 0x3a, 0xb8, + 0x69, 0x8e, 0x68, 0xff, 0xc4, 0xf5, 0x0c, 0xfe, 0xbb, 0xd7, 0xf1, 0x64, 0x84, 0xf8, 0xa6, 0x64, + 0x7b, 0x9d, 0x88, 0x72, 0x4a, 0xa3, 0x2f, 0xe8, 0xe5, 0xd2, 0x6e, 0xe7, 0x54, 0x6c, 0x91, 0xae, + 0x84, 0xf1, 0x6c, 0x2a, 0xb9, 0x0b, 0x96, 0x23, 0x8a, 0x4d, 0x1e, 0xb0, 0xef, 0xf2, 0xae, 0x82, + 0x85, 0x03, 0x23, 0x86, 0x5e, 0x2d, 0xbd, 0x1d, 0x45, 0xab, 0xdd, 0x67, 0xbd, 0x30, 0x9e, 0xbc, + 0xe5, 0x36, 0xab, 0x22, 0x0b, 0x4e, 0x5e, 0xe2, 0xdf, 0x51, 0x20, 0x47, 0xb7, 0x20, 0xd1, 0x9b, + 0xa5, 0x9b, 0x88, 0xdb, 0x1b, 0x89, 0x2e, 0x84, 0xfe, 0x7b, 0x9c, 0x35, 0x07, 0xc1, 0xd5, 0x30, + 0x13, 0xcb, 0xd5, 0x50, 0x3c, 0xc7, 0x29, 0xd1, 0x8e, 0x68, 0x1d, 0x13, 0x9e, 0x4e, 0xc6, 0x69, + 0x61, 0x3d, 0x19, 0x4a, 0x1e, 0xef, 0xe7, 0x65, 0x61, 0x8a, 0x16, 0x7d, 0xde, 0x68, 0x6e, 0x62, + 0x07, 0xbd, 0x2b, 0xfd, 0xe3, 0x83, 0xba, 0x5a, 0x81, 0xa9, 0x4b, 0x84, 0xed, 0x65, 0x7d, 0xcf, + 0xda, 0x71, 0xd8, 0xca, 0xc5, 0x8d, 0x91, 0xeb, 0x1e, 0xb4, 0x9e, 0xb3, 0xf4, 0x0f, 0x4d, 0xf8, + 0xdf, 0x95, 0x31, 0x5d, 0xf0, 0xa7, 0x0e, 0x5c, 0x39, 0x62, 0x64, 0xf1, 0x49, 0xea, 0x49, 0xc8, + 0xed, 0x1a, 0xf8, 0x52, 0xb9, 0xc9, 0xac, 0x5b, 0xf6, 0x86, 0xfe, 0x40, 0x7a, 0xdf, 0x96, 0x87, + 0x9b, 0xf1, 0x92, 0xac, 0x16, 0xca, 0xed, 0xde, 0xf6, 0x65, 0x6b, 0x04, 0x67, 0x8a, 0xc5, 0x0b, + 0x8c, 0x8b, 0x31, 0x14, 0x31, 0xcc, 0x70, 0x16, 0x43, 0x79, 0x44, 0x9e, 0x58, 0xa1, 0x02, 0x18, + 0xf2, 0xdd, 0xc6, 0x72, 0xf1, 0x25, 0xfa, 0x14, 0x9d, 0xbc, 0xe4, 0x5f, 0xa7, 0xc0, 0x44, 0x0d, + 0x3b, 0x0b, 0x06, 0x6e, 0x35, 0x3b, 0xc8, 0x3e, 0xb8, 0x69, 0x74, 0x16, 0x72, 0x1b, 0x84, 0x58, + 0xbf, 0x73, 0x0b, 0x2c, 0x1b, 0x7a, 0x6d, 0x5a, 0x76, 0x47, 0x98, 0xad, 0xbe, 0x79, 0xdc, 0x0e, + 0x05, 0x26, 0x39, 0x8f, 0xde, 0xe8, 0x92, 0x47, 0x10, 0x0c, 0x5c, 0x81, 0x29, 0x76, 0xe3, 0x69, + 0xa1, 0x65, 0x6c, 0x9a, 0x68, 0x67, 0x08, 0x2d, 0x44, 0xbd, 0x19, 0xb2, 0xba, 0x4b, 0x8d, 0x6d, + 0xbd, 0xa2, 0x9e, 0x9d, 0x27, 0x29, 0x4f, 0xa3, 0x19, 0x63, 0x84, 0xde, 0x0d, 0x14, 0xdb, 0xe3, + 0x79, 0x84, 0xa1, 0x77, 0xfb, 0x16, 0x9e, 0x3c, 0x62, 0x5f, 0x53, 0xe0, 0x38, 0x63, 0xe0, 0x1c, + 0xb6, 0x1d, 0xa3, 0xa1, 0xb7, 0x28, 0x72, 0x2f, 0x48, 0x0d, 0x03, 0xba, 0x25, 0x98, 0xde, 0xe5, + 0xc9, 0x32, 0x08, 0xcf, 0xf4, 0x84, 0x50, 0x60, 0x40, 0x13, 0x7f, 0x8c, 0x11, 0xc2, 0x54, 0x90, + 0xaa, 0x40, 0x73, 0x84, 0x21, 0x4c, 0xa5, 0x99, 0x48, 0x1e, 0xe2, 0x97, 0xb0, 0xd0, 0x3c, 0x41, + 0xf7, 0xf9, 0x45, 0x69, 0x6c, 0xd7, 0x60, 0x92, 0x60, 0x49, 0x7f, 0x64, 0xcb, 0x10, 0x11, 0x4a, + 0xec, 0xf7, 0x3b, 0xec, 0x92, 0x45, 0xff, 0x5f, 0x8d, 0xa7, 0x83, 0xce, 0x03, 0x04, 0x9f, 0xf8, + 0x4e, 0x3a, 0x15, 0xd6, 0x49, 0xa7, 0xe5, 0x3a, 0xe9, 0x37, 0x49, 0x07, 0x4b, 0xe9, 0xcd, 0xf6, + 0xc1, 0xd5, 0x43, 0x2e, 0x4c, 0x46, 0xff, 0xd2, 0x93, 0xd7, 0x8b, 0x57, 0x31, 0xbd, 0x98, 0xdf, + 0x69, 0xb7, 0x8c, 0x86, 0x3b, 0x9f, 0xfa, 0xf8, 0x50, 0xe6, 0x53, 0x7c, 0x7f, 0xa0, 0x74, 0xf5, + 0x07, 0x07, 0xb0, 0xa4, 0x6f, 0x80, 0xa3, 0xb4, 0x88, 0xa2, 0xcf, 0x56, 0x96, 0x86, 0x82, 0xe8, + 0x4a, 0x16, 0xe3, 0x12, 0x4a, 0x2a, 0x81, 0x2f, 0x84, 0x01, 0x96, 0x3e, 0xe3, 0x19, 0xbb, 0x71, + 0x15, 0x24, 0x8c, 0xb3, 0x11, 0xb8, 0x85, 0x66, 0xa8, 0xb5, 0xbb, 0x46, 0xee, 0xc1, 0x44, 0x5f, + 0xce, 0x0c, 0x63, 0x44, 0xb8, 0x0b, 0x32, 0xc4, 0xc5, 0x5d, 0x09, 0x5d, 0xd2, 0x08, 0x8a, 0x0c, + 0x2e, 0x29, 0xc5, 0xf7, 0x3b, 0x4b, 0x47, 0x34, 0xf2, 0xa7, 0x7a, 0x23, 0x1c, 0xbd, 0xa0, 0x37, + 0x2e, 0x6e, 0xda, 0xd6, 0x0e, 0xb9, 0x31, 0xd0, 0x62, 0x57, 0x0f, 0x92, 0x2b, 0x5c, 0xc5, 0x0f, + 0xea, 0x2d, 0x9e, 0xe9, 0x90, 0xed, 0x67, 0x3a, 0x2c, 0x1d, 0x61, 0xc6, 0x83, 0xfa, 0x58, 0xbf, + 0xd3, 0xc9, 0x45, 0x76, 0x3a, 0x4b, 0x47, 0xbc, 0x6e, 0x47, 0x9d, 0x87, 0xf1, 0xa6, 0xb1, 0x4b, + 0xb6, 0xaa, 0xc9, 0xac, 0xab, 0xdf, 0xd1, 0xe5, 0x79, 0x63, 0x97, 0x6e, 0x6c, 0x2f, 0x1d, 0xd1, + 0xfc, 0x3f, 0xd5, 0x45, 0x98, 0x20, 0xdb, 0x02, 0x84, 0xcc, 0x78, 0xac, 0x63, 0xc9, 0x4b, 0x47, + 0xb4, 0xe0, 0x5f, 0xd7, 0xfa, 0xc8, 0x90, 0xb3, 0x1f, 0x77, 0x7a, 0xdb, 0xed, 0xa9, 0x58, 0xdb, + 0xed, 0xae, 0x2c, 0xe8, 0x86, 0xfb, 0x49, 0xc8, 0x36, 0x88, 0x84, 0xd3, 0x4c, 0xc2, 0xf4, 0x55, + 0xbd, 0x1d, 0x32, 0xdb, 0xba, 0xed, 0x4d, 0x9e, 0xaf, 0xef, 0x4f, 0x77, 0x45, 0xb7, 0x2f, 0xba, + 0x08, 0xba, 0x7f, 0xcd, 0x8d, 0x41, 0x96, 0x08, 0xce, 0x7f, 0x40, 0x6f, 0xcd, 0x50, 0x33, 0xa4, + 0x68, 0x99, 0xee, 0xb0, 0x5f, 0xb7, 0xbc, 0x03, 0x32, 0x7f, 0x90, 0x1a, 0x8e, 0x05, 0x79, 0x19, + 0x17, 0x30, 0xd8, 0x34, 0x9e, 0xbe, 0x83, 0xef, 0xc1, 0x7b, 0x6c, 0x49, 0xb4, 0xd7, 0xa7, 0xae, + 0x4b, 0xc9, 0x33, 0xdd, 0x97, 0x92, 0x07, 0xcb, 0x07, 0xd9, 0xfe, 0x8e, 0x2a, 0x7f, 0x3e, 0x80, + 0xe9, 0xd2, 0x2d, 0x88, 0xf0, 0x19, 0x78, 0xcb, 0x30, 0xb9, 0x3a, 0x7b, 0xaf, 0x31, 0x3b, 0xa5, + 0xb8, 0x46, 0x4d, 0x1f, 0xf6, 0x92, 0xef, 0x9b, 0x7e, 0x27, 0x43, 0x63, 0xa6, 0xd2, 0x53, 0x18, + 0xe2, 0x1d, 0xbd, 0xe8, 0x4f, 0x86, 0xa2, 0x34, 0x3d, 0x06, 0x1c, 0xa5, 0xe7, 0x80, 0xb3, 0xef, + 0x90, 0x72, 0xa6, 0xcf, 0x21, 0xe5, 0x6c, 0xbc, 0x95, 0xc3, 0x0f, 0xf3, 0xfa, 0xb3, 0x2a, 0xea, + 0xcf, 0x6d, 0x21, 0x00, 0xf5, 0x92, 0xcb, 0x50, 0xec, 0x9b, 0x77, 0xf8, 0x9a, 0x52, 0x13, 0x34, + 0xe5, 0xce, 0xc1, 0x19, 0x49, 0x5e, 0x5b, 0x3e, 0x98, 0x81, 0xcb, 0x02, 0x66, 0x2a, 0xf8, 0x12, + 0x53, 0x94, 0x2f, 0x0c, 0x45, 0x51, 0xe2, 0xc7, 0x40, 0x48, 0x5a, 0x63, 0xfe, 0x54, 0xfa, 0xec, + 0x50, 0x37, 0x50, 0xbe, 0x6c, 0x42, 0x94, 0xe5, 0x24, 0xe4, 0x68, 0x0f, 0xc3, 0xa0, 0x61, 0x6f, + 0x31, 0xbb, 0x1b, 0xb9, 0x13, 0x47, 0xb2, 0xbc, 0x8d, 0x40, 0x7f, 0xd8, 0xba, 0x46, 0x7d, 0xc7, + 0x36, 0xcb, 0xa6, 0x63, 0xa1, 0x5f, 0x1a, 0x8a, 0xe2, 0xf8, 0xde, 0x70, 0xca, 0x20, 0xde, 0x70, + 0x03, 0xad, 0x72, 0x78, 0x35, 0x38, 0x94, 0x55, 0x8e, 0x90, 0xc2, 0x93, 0xc7, 0xef, 0xed, 0x0a, + 0x9c, 0x64, 0x93, 0xad, 0x39, 0xd1, 0x42, 0x44, 0xf7, 0x0e, 0x03, 0xc8, 0xe3, 0x9e, 0x99, 0xc4, + 0x6e, 0x86, 0x24, 0x2f, 0xe2, 0x49, 0xa9, 0xc8, 0x3b, 0x71, 0x84, 0xe9, 0x60, 0x17, 0x87, 0x43, + 0x41, 0x4a, 0xee, 0x2a, 0x9c, 0x18, 0x6c, 0x24, 0x8f, 0xd9, 0x8b, 0x14, 0xc8, 0xd1, 0x73, 0x5a, + 0x68, 0x2d, 0x11, 0x87, 0x09, 0x31, 0xca, 0xb3, 0xc4, 0x8e, 0x1c, 0xe5, 0x26, 0xb1, 0x33, 0x6c, + 0x71, 0xf6, 0xe2, 0x7a, 0xb2, 0x32, 0x02, 0x17, 0xc2, 0x34, 0x4c, 0xd6, 0xb0, 0x53, 0xd4, 0x6d, + 0xdb, 0xd0, 0x37, 0x87, 0xe5, 0xf1, 0x2d, 0xeb, 0x3d, 0x8c, 0x7e, 0x90, 0x92, 0x3d, 0x4f, 0xe3, + 0x2f, 0x84, 0x7b, 0xac, 0x86, 0xc4, 0x12, 0x7c, 0x48, 0xea, 0xcc, 0x4c, 0x3f, 0x6a, 0x23, 0xf0, + 0xd8, 0x4e, 0xc3, 0x98, 0x77, 0x16, 0xef, 0xac, 0x70, 0x3e, 0x73, 0xcb, 0xd9, 0xf6, 0x8e, 0xc1, + 0x90, 0xe7, 0xfd, 0x67, 0xc0, 0xd0, 0x2b, 0x63, 0x3a, 0xca, 0x47, 0x1f, 0x24, 0x8c, 0xd7, 0xc6, + 0xe2, 0xb8, 0xc3, 0x1f, 0xd6, 0xd1, 0xc1, 0x0f, 0x8c, 0xb1, 0xe5, 0xc8, 0x65, 0xdd, 0xc1, 0xf7, + 0xa3, 0x2f, 0x2a, 0x30, 0x56, 0xc3, 0x8e, 0x3b, 0xde, 0x0a, 0x17, 0x42, 0x0f, 0xaa, 0xe1, 0x2a, + 0xb7, 0xe2, 0x31, 0xc1, 0xd6, 0x30, 0xee, 0x86, 0x89, 0xb6, 0x6d, 0x35, 0x70, 0xa7, 0xc3, 0x56, + 0x2f, 0x78, 0x47, 0xb5, 0x5e, 0xa3, 0x3f, 0x61, 0x6d, 0x76, 0xd5, 0xfb, 0x47, 0x0b, 0x7e, 0x8f, + 0x6b, 0x06, 0x50, 0x4a, 0xac, 0x82, 0xa3, 0x36, 0x03, 0xa2, 0x0a, 0x4f, 0x1e, 0xe8, 0xcf, 0x29, + 0x30, 0x55, 0xc3, 0x8e, 0x2f, 0xc5, 0x18, 0x9b, 0x1c, 0xe1, 0xf0, 0x0a, 0x50, 0x2a, 0x07, 0x83, + 0x52, 0xfe, 0x3a, 0x55, 0x51, 0x9a, 0x3e, 0xb1, 0x11, 0x5e, 0xa7, 0x2a, 0xc7, 0xc1, 0x08, 0x8e, + 0xaf, 0x3d, 0x12, 0x26, 0x08, 0x2f, 0xa4, 0xc1, 0xfe, 0x6a, 0x26, 0x68, 0xbc, 0x5f, 0x4a, 0xa8, + 0xf1, 0xde, 0x01, 0xd9, 0x6d, 0xdd, 0xbe, 0xd8, 0x21, 0x0d, 0x77, 0x52, 0xc6, 0x6c, 0x5f, 0x71, + 0xb3, 0x6b, 0xf4, 0xaf, 0xde, 0x7e, 0x9a, 0xd9, 0x78, 0x7e, 0x9a, 0x0f, 0xa5, 0x63, 0x8d, 0x84, + 0x74, 0xee, 0x30, 0xc4, 0x26, 0x1f, 0x63, 0xdc, 0x8c, 0x28, 0x3b, 0x79, 0xe5, 0x78, 0x81, 0x02, + 0xe3, 0xee, 0xb8, 0x4d, 0xec, 0xf1, 0xf3, 0x07, 0x57, 0x87, 0xde, 0x86, 0x7e, 0xcc, 0x1e, 0xd8, + 0x93, 0xc8, 0xf0, 0xcc, 0xfb, 0x18, 0x3d, 0x70, 0x54, 0xe1, 0xc9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, + 0x69, 0x0f, 0xe8, 0x0d, 0x0a, 0x28, 0x8b, 0xd8, 0x19, 0xb5, 0x15, 0xf9, 0x36, 0xe9, 0x10, 0x47, + 0x82, 0xc0, 0x08, 0xcf, 0xb3, 0x8b, 0x78, 0x38, 0x0d, 0x48, 0x2e, 0xb6, 0x91, 0x14, 0x03, 0xc9, + 0xa3, 0xf6, 0x5e, 0x8a, 0x1a, 0xdd, 0x5c, 0xf8, 0xc5, 0x21, 0xf4, 0xaa, 0xa3, 0x5d, 0xf8, 0xf0, + 0x04, 0x48, 0x68, 0x1c, 0x56, 0x7b, 0xeb, 0x55, 0xf8, 0x48, 0xae, 0x2f, 0x05, 0xb7, 0xb1, 0x6f, + 0xe1, 0xc6, 0x45, 0xdc, 0xe4, 0xaf, 0x83, 0x1b, 0x14, 0xba, 0x53, 0x30, 0xd6, 0xa0, 0xd4, 0x08, + 0x78, 0xe3, 0x9a, 0xf7, 0x1a, 0xe3, 0x2e, 0x7e, 0xb1, 0x23, 0xa2, 0xbf, 0x8f, 0xf0, 0x2e, 0x7e, + 0x89, 0xe2, 0x47, 0x60, 0xb6, 0xd0, 0x59, 0x46, 0xb9, 0x61, 0x99, 0xe8, 0x3f, 0x1f, 0x1c, 0x96, + 0xab, 0x60, 0xc2, 0x68, 0x58, 0x26, 0x09, 0x43, 0xe1, 0x1d, 0x02, 0xf2, 0x13, 0xbc, 0xaf, 0xa5, + 0x6d, 0xeb, 0x3e, 0x83, 0xed, 0x9a, 0x07, 0x09, 0x83, 0x1a, 0x13, 0x2e, 0xeb, 0x87, 0x65, 0x4c, + 0xf4, 0x28, 0x3b, 0x79, 0xc8, 0x3e, 0x11, 0x78, 0xb7, 0xd1, 0xae, 0xf0, 0x61, 0xb1, 0x0a, 0x3c, + 0xc8, 0x70, 0xc6, 0xd7, 0xe2, 0x50, 0x86, 0xb3, 0x08, 0x06, 0x46, 0x70, 0x63, 0x45, 0x80, 0x63, + 0xe2, 0x6b, 0xc0, 0x07, 0x40, 0x67, 0x78, 0xe6, 0xe1, 0x80, 0xe8, 0x1c, 0x8e, 0x89, 0xf8, 0x21, + 0x16, 0x22, 0x93, 0x59, 0x3c, 0xe8, 0xbf, 0x0c, 0x03, 0x9c, 0xdb, 0x06, 0xf1, 0x57, 0xa0, 0xde, + 0x0a, 0xe8, 0x2d, 0x69, 0xd9, 0x10, 0x28, 0xfb, 0x24, 0xe8, 0x52, 0x19, 0x0a, 0x82, 0x6f, 0x92, + 0x8a, 0x4d, 0x22, 0x53, 0x7e, 0xf2, 0x00, 0x3e, 0x5f, 0x81, 0x19, 0xe2, 0x23, 0xd0, 0xc2, 0xba, + 0x4d, 0x3b, 0xca, 0xa1, 0x38, 0xca, 0xbf, 0x53, 0x3a, 0xc0, 0x8f, 0x28, 0x87, 0x80, 0x8f, 0xa1, + 0x40, 0x21, 0x17, 0xdd, 0x47, 0x92, 0x85, 0x91, 0x6c, 0xa3, 0xe4, 0x7d, 0x16, 0x98, 0x8a, 0x0f, + 0x07, 0x8f, 0x98, 0x1e, 0xb9, 0xa2, 0x30, 0xbc, 0xc6, 0x36, 0x62, 0x8f, 0x5c, 0x19, 0x26, 0x92, + 0xc7, 0xe4, 0x0d, 0x37, 0xb3, 0x05, 0xe7, 0xba, 0x7e, 0xa1, 0x85, 0xd1, 0xab, 0x33, 0xfe, 0x89, + 0xb6, 0xcf, 0x0d, 0xc5, 0x03, 0xf3, 0x00, 0x01, 0xf1, 0x55, 0xc8, 0xd8, 0xd6, 0x25, 0xba, 0xb4, + 0x35, 0xad, 0x91, 0x67, 0x7a, 0x3d, 0x65, 0x6b, 0x67, 0xdb, 0xa4, 0x27, 0x43, 0xa7, 0x35, 0xef, + 0x55, 0xbd, 0x0e, 0xa6, 0x2f, 0x19, 0xce, 0xd6, 0x12, 0xd6, 0x9b, 0xd8, 0xd6, 0xac, 0x4b, 0xc4, + 0x63, 0x6e, 0x5c, 0x13, 0x13, 0x45, 0xff, 0x15, 0x09, 0xfb, 0xd2, 0x15, 0xca, 0x68, 0x8e, 0xbf, + 0xc5, 0xb1, 0x3c, 0xc3, 0xb9, 0x4a, 0x5e, 0x61, 0xde, 0xa7, 0xc0, 0x84, 0x66, 0x5d, 0x62, 0x4a, + 0xf2, 0x7f, 0x1c, 0xae, 0x8e, 0xc4, 0x9e, 0xe8, 0x11, 0xc9, 0xf9, 0xec, 0x8f, 0x7c, 0xa2, 0x17, + 0x59, 0xfc, 0x48, 0x4e, 0x2e, 0x4d, 0x69, 0xd6, 0xa5, 0x1a, 0x76, 0x68, 0x8b, 0x40, 0xeb, 0x43, + 0x72, 0xb2, 0x36, 0x3a, 0x94, 0x20, 0x9b, 0x87, 0xfb, 0xef, 0x71, 0x77, 0x11, 0x7c, 0x01, 0xf9, + 0x2c, 0x8e, 0x7a, 0x17, 0xa1, 0x2f, 0x07, 0x23, 0x88, 0x91, 0xa2, 0xc0, 0xa4, 0x66, 0x5d, 0x72, + 0x87, 0x86, 0x05, 0xa3, 0xd5, 0x1a, 0xce, 0x08, 0x19, 0xd7, 0xf8, 0xf7, 0xc4, 0xe0, 0x71, 0x31, + 0x72, 0xe3, 0xbf, 0x0f, 0x03, 0xc9, 0xc3, 0xf0, 0x1c, 0xda, 0x58, 0xbc, 0x11, 0xda, 0x1c, 0x0e, + 0x0e, 0x83, 0x36, 0x08, 0x9f, 0x8d, 0x43, 0x6b, 0x10, 0x61, 0x1c, 0x8c, 0x64, 0xe7, 0x64, 0xa6, + 0x48, 0x86, 0xf9, 0xe1, 0xb6, 0x89, 0x77, 0xc7, 0x73, 0x4d, 0x64, 0xc3, 0xae, 0xc0, 0xc8, 0x50, + 0xd0, 0x88, 0xe1, 0x82, 0x28, 0xc1, 0x43, 0xf2, 0x78, 0x7c, 0x54, 0x81, 0x29, 0xca, 0xc2, 0xc3, + 0xc4, 0x0a, 0x18, 0xa8, 0x51, 0xf1, 0x35, 0x38, 0x9c, 0x46, 0x15, 0xc1, 0xc1, 0x48, 0x6e, 0x05, + 0x75, 0xed, 0xb8, 0x01, 0x8e, 0x8f, 0x87, 0x21, 0x38, 0xb0, 0x31, 0x36, 0xc4, 0x23, 0xe4, 0x83, + 0x18, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0x39, 0x7e, 0x2b, 0x1a, 0x26, 0x06, 0x07, 0x68, 0x0a, 0x43, + 0x84, 0x61, 0xc0, 0xa6, 0x70, 0x48, 0x48, 0x7c, 0x5d, 0x01, 0xa0, 0x0c, 0xac, 0x58, 0xbb, 0xe4, + 0x32, 0x9f, 0x21, 0x74, 0x67, 0xdd, 0x6e, 0xf5, 0x4a, 0x1f, 0xb7, 0xfa, 0x98, 0x21, 0x5c, 0xe2, + 0xae, 0x04, 0x72, 0x52, 0x76, 0x2b, 0x39, 0xf2, 0x95, 0xc0, 0xe8, 0xf2, 0x93, 0xc7, 0xf8, 0xab, + 0xd4, 0x9a, 0x0b, 0x0e, 0x98, 0xfe, 0xf6, 0x50, 0x50, 0xe6, 0x66, 0xff, 0x8a, 0x38, 0xfb, 0x3f, + 0x00, 0xb6, 0x83, 0xda, 0x88, 0xfd, 0x0e, 0x8e, 0x26, 0x6f, 0x23, 0x1e, 0xde, 0x01, 0xd1, 0x5f, + 0xcc, 0xc0, 0x51, 0xd6, 0x89, 0xfc, 0x38, 0x40, 0x1c, 0xf3, 0x1c, 0x9e, 0xd0, 0x49, 0xf6, 0x41, + 0x79, 0x58, 0x0b, 0x52, 0x71, 0x96, 0x32, 0x25, 0xd8, 0x1b, 0xc9, 0xea, 0x46, 0xae, 0x74, 0x7f, + 0x5b, 0x37, 0x9b, 0xf2, 0xe1, 0x7e, 0xfb, 0x00, 0xef, 0xad, 0x35, 0x2a, 0xe2, 0x5a, 0x63, 0x8f, + 0x95, 0xc9, 0xd8, 0x3b, 0xd7, 0x44, 0x64, 0x94, 0xdd, 0x91, 0xef, 0x5c, 0x87, 0x97, 0x9d, 0x3c, + 0x4a, 0xef, 0x56, 0x20, 0x53, 0xb3, 0x6c, 0x07, 0x3d, 0x37, 0x4e, 0xeb, 0xa4, 0x92, 0x0f, 0x40, + 0xf2, 0xde, 0xd5, 0xa2, 0x70, 0x4b, 0xf3, 0xd9, 0xe8, 0xa3, 0xce, 0xba, 0xa3, 0x13, 0xaf, 0x6e, + 0xb7, 0x7c, 0xee, 0xba, 0xe6, 0xb8, 0xf1, 0x74, 0xa8, 0xfc, 0x6a, 0xe1, 0x07, 0x30, 0x12, 0x8b, + 0xa7, 0x13, 0x5a, 0x72, 0xf2, 0xb8, 0x3d, 0x78, 0x94, 0xf9, 0xb6, 0x2e, 0x18, 0x2d, 0x8c, 0x9e, + 0x4b, 0x5d, 0x46, 0x2a, 0xfa, 0x36, 0x96, 0x3f, 0x12, 0x13, 0xe9, 0xda, 0x4a, 0xe2, 0xcb, 0x2a, + 0x41, 0x7c, 0xd9, 0xb8, 0x0d, 0x8a, 0x1e, 0x40, 0xa7, 0x2c, 0x8d, 0xba, 0x41, 0x45, 0x94, 0x3d, + 0x92, 0x38, 0x9d, 0xc7, 0x6a, 0xd8, 0xa1, 0x46, 0x65, 0xd5, 0xbb, 0x81, 0xe5, 0x69, 0x43, 0x89, + 0xd8, 0xe9, 0x5f, 0xf0, 0xa2, 0x74, 0x5d, 0xf0, 0xf2, 0x3e, 0x1e, 0x9c, 0x15, 0x11, 0x9c, 0x9f, + 0x0d, 0x17, 0x90, 0xc8, 0xe4, 0x50, 0x60, 0x7a, 0x9b, 0x0f, 0xd3, 0xaa, 0x00, 0xd3, 0xed, 0x03, + 0x72, 0x91, 0x3c, 0x60, 0xbf, 0x96, 0x85, 0xa3, 0x74, 0xd2, 0x5f, 0x30, 0x9b, 0x2c, 0xc2, 0xea, + 0x9b, 0xd3, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0xab, 0x10, 0xcb, 0x39, 0xdb, 0x7d, 0x3b, 0xfe, + 0x1c, 0x0d, 0xe7, 0xea, 0x76, 0xa2, 0x64, 0xa7, 0x4d, 0xfe, 0x86, 0x7c, 0xff, 0x3f, 0xf1, 0x2e, + 0xa3, 0x31, 0xf9, 0xbb, 0x8c, 0xfe, 0x2c, 0xde, 0xba, 0x1d, 0x29, 0xba, 0x4b, 0xe0, 0x09, 0xdb, + 0x4e, 0x31, 0x56, 0xf4, 0x24, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0x0b, 0x22, 0x88, 0x0c, 0xe8, 0x4e, + 0x46, 0x08, 0x1c, 0xa6, 0x3b, 0x59, 0x3f, 0x06, 0x46, 0x70, 0xab, 0x7d, 0x96, 0xed, 0xe6, 0x93, + 0x76, 0x83, 0xfe, 0x3a, 0x9d, 0xf8, 0x28, 0xfd, 0xc3, 0x54, 0x2c, 0xff, 0x67, 0xc2, 0x57, 0xf4, + 0x30, 0x1d, 0xc7, 0xa3, 0x39, 0x8a, 0xdc, 0x08, 0xd6, 0x8d, 0xd2, 0xc4, 0x17, 0xfd, 0xbc, 0xd1, + 0x74, 0xb6, 0x86, 0x74, 0xa2, 0xe3, 0x92, 0x4b, 0xcb, 0xbb, 0x1e, 0x99, 0xbc, 0xa0, 0x7f, 0x4d, + 0xc5, 0x0a, 0x21, 0xe5, 0x8b, 0x84, 0xb0, 0x15, 0x22, 0xe2, 0x18, 0x81, 0x9f, 0x22, 0xe9, 0x8d, + 0x50, 0xa3, 0xcf, 0x19, 0x4d, 0x6c, 0x3d, 0x0c, 0x35, 0x9a, 0xf0, 0x35, 0x3c, 0x8d, 0x8e, 0x22, + 0xf7, 0x13, 0xaa, 0xd1, 0xbe, 0x48, 0x86, 0xa4, 0xd1, 0x91, 0xf4, 0x92, 0x97, 0xf1, 0x2b, 0xa7, + 0xd8, 0x44, 0x6a, 0xd9, 0x30, 0x2f, 0xa2, 0x7f, 0xce, 0x79, 0x17, 0x33, 0x9f, 0x37, 0x9c, 0x2d, + 0x16, 0x0b, 0xe6, 0x83, 0xd2, 0x77, 0xa3, 0x0c, 0x10, 0xef, 0x45, 0x0c, 0x27, 0x95, 0xdd, 0x17, + 0x4e, 0xaa, 0x00, 0xd3, 0x86, 0xe9, 0x60, 0xdb, 0xd4, 0x5b, 0x0b, 0x2d, 0x7d, 0xb3, 0x73, 0x6a, + 0xac, 0xe7, 0xe5, 0x75, 0x65, 0x2e, 0x8f, 0x26, 0xfe, 0xc1, 0x5f, 0x5f, 0x39, 0x2e, 0x5e, 0x5f, + 0x19, 0x12, 0xfd, 0x6a, 0x22, 0x3c, 0xfa, 0x95, 0x1f, 0xdd, 0x0a, 0xfa, 0x07, 0xc7, 0x96, 0xb5, + 0x8d, 0x63, 0x86, 0xfb, 0x3b, 0x2b, 0x19, 0x85, 0xcd, 0x0f, 0xfd, 0xf8, 0x1a, 0x25, 0xd6, 0xea, + 0x9e, 0xab, 0x08, 0xb3, 0xdd, 0x4a, 0x10, 0xdb, 0x42, 0xe5, 0x2b, 0xaf, 0x74, 0x55, 0xde, 0x37, + 0x79, 0x32, 0x12, 0x26, 0x0f, 0xaf, 0x54, 0x59, 0x39, 0xa5, 0x8a, 0xb3, 0x58, 0x28, 0x53, 0xdb, + 0x11, 0x9c, 0x46, 0xca, 0xc2, 0x31, 0x2f, 0xda, 0x6d, 0xbb, 0x8d, 0x75, 0x5b, 0x37, 0x1b, 0x18, + 0x7d, 0x22, 0x3d, 0x0c, 0xb3, 0x77, 0x01, 0xc6, 0x8d, 0x86, 0x65, 0xd6, 0x8c, 0x67, 0x78, 0x97, + 0xcb, 0x45, 0x07, 0x59, 0x27, 0x12, 0x29, 0xb3, 0x3f, 0x34, 0xff, 0x5f, 0xb5, 0x0c, 0x13, 0x0d, + 0xdd, 0x6e, 0xd2, 0x20, 0x7c, 0xd9, 0xae, 0x8b, 0x9c, 0x42, 0x09, 0x15, 0xbd, 0x5f, 0xb4, 0xe0, + 0x6f, 0xb5, 0x2a, 0x0a, 0x31, 0xd7, 0x15, 0xcd, 0x23, 0x94, 0xd8, 0x7c, 0xf0, 0x93, 0x20, 0x73, + 0x57, 0x3a, 0x36, 0x6e, 0x91, 0x3b, 0xe8, 0x69, 0x0f, 0x31, 0xa1, 0x05, 0x09, 0x71, 0x97, 0x07, + 0x48, 0x51, 0xfb, 0xd0, 0x18, 0xf5, 0xf2, 0x80, 0x14, 0x17, 0xc9, 0x6b, 0xe6, 0x3b, 0x72, 0x30, + 0x4d, 0x7b, 0x35, 0x26, 0x4e, 0xf4, 0x7c, 0x72, 0x85, 0xb4, 0x73, 0x0f, 0xde, 0x43, 0xb5, 0x83, + 0x8f, 0xc9, 0x79, 0x50, 0x2e, 0xfa, 0x01, 0x07, 0xdd, 0xc7, 0xb8, 0xfb, 0xf6, 0x1e, 0x5f, 0xb3, + 0x94, 0xa7, 0x51, 0xef, 0xdb, 0x47, 0x17, 0x9f, 0x3c, 0x3e, 0xbf, 0xae, 0x80, 0x52, 0x68, 0x36, + 0x51, 0xe3, 0xe0, 0x50, 0x5c, 0x03, 0x93, 0x5e, 0x9b, 0x09, 0x62, 0x40, 0xf2, 0x49, 0x71, 0x17, + 0x41, 0x7d, 0xd9, 0x14, 0x9a, 0x23, 0xdf, 0x55, 0x88, 0x28, 0x3b, 0x79, 0x50, 0x7e, 0x7b, 0x8c, + 0x35, 0x9a, 0x39, 0xcb, 0xba, 0x48, 0x8e, 0xca, 0x3c, 0x57, 0x81, 0xec, 0x02, 0x76, 0x1a, 0x5b, + 0x43, 0x6a, 0x33, 0x3b, 0x76, 0xcb, 0x6b, 0x33, 0xfb, 0xee, 0xc3, 0xef, 0x6f, 0xc3, 0x7a, 0x6c, + 0xcd, 0x12, 0x96, 0x46, 0x1d, 0xdd, 0x39, 0xb2, 0xf4, 0xe4, 0xc1, 0xf9, 0x57, 0x05, 0x66, 0xfc, + 0x15, 0x2e, 0x8a, 0xc9, 0xaf, 0xa5, 0x1e, 0x6e, 0xeb, 0x9d, 0xe8, 0x0b, 0xf1, 0x42, 0xa4, 0xf9, + 0x32, 0x15, 0x6b, 0x96, 0xf0, 0xc2, 0x62, 0x8c, 0xe0, 0x69, 0x72, 0x0c, 0x8e, 0x60, 0x06, 0xaf, + 0xc0, 0x38, 0x61, 0x68, 0xde, 0xd8, 0x25, 0xae, 0x83, 0xc2, 0x42, 0xe3, 0x33, 0x87, 0xb2, 0xd0, + 0x78, 0xbb, 0xb8, 0xd0, 0x28, 0x19, 0xf1, 0xd8, 0x5b, 0x67, 0x8c, 0xe9, 0x4b, 0xe3, 0xfe, 0x3f, + 0xf4, 0x65, 0xc6, 0x18, 0xbe, 0x34, 0x7d, 0xca, 0x4f, 0x1e, 0xd1, 0xd7, 0xfc, 0x27, 0xd6, 0xd9, + 0x7a, 0x1b, 0xaa, 0xe8, 0xff, 0x3a, 0x06, 0x99, 0x73, 0xee, 0xc3, 0xff, 0x0c, 0x6e, 0xc4, 0x7a, + 0xe9, 0x10, 0x82, 0x33, 0x3c, 0x19, 0x32, 0x2e, 0x7d, 0x36, 0x6d, 0xb9, 0x51, 0x6e, 0x77, 0xd7, + 0x65, 0x44, 0x23, 0xff, 0xa9, 0x27, 0x21, 0xd7, 0xb1, 0x76, 0xec, 0x86, 0x6b, 0x3e, 0xbb, 0x1a, + 0xc3, 0xde, 0xe2, 0x06, 0x25, 0x15, 0x48, 0xcf, 0x0e, 0xcf, 0x65, 0x94, 0xbb, 0x20, 0x49, 0x11, + 0x2e, 0x48, 0x8a, 0xb1, 0x7f, 0x20, 0xc1, 0x5b, 0xf2, 0x1a, 0xf1, 0xd7, 0xe4, 0xae, 0xc0, 0xe6, + 0xb0, 0x60, 0x0f, 0x11, 0xcb, 0x41, 0xd5, 0x21, 0xae, 0xc3, 0xb7, 0x28, 0x5a, 0x3f, 0x0e, 0xfc, + 0x48, 0x1d, 0xbe, 0x25, 0x78, 0x18, 0xc9, 0x29, 0xf5, 0x1c, 0x73, 0x52, 0xbd, 0x77, 0x98, 0xe8, + 0x66, 0x04, 0xa5, 0x3f, 0x10, 0x3a, 0x43, 0x74, 0x5e, 0x1d, 0x18, 0x9d, 0x43, 0x72, 0x5f, 0xfd, + 0x43, 0x85, 0x44, 0xc2, 0xf4, 0x8c, 0x1c, 0xf9, 0x8b, 0x8e, 0x62, 0x43, 0xe4, 0x8e, 0xc1, 0x42, + 0x1c, 0xe8, 0xe9, 0xc1, 0x43, 0x83, 0x8b, 0xa2, 0xe3, 0xf8, 0x1f, 0x75, 0x68, 0x70, 0x59, 0x46, + 0x92, 0x07, 0xf2, 0xf5, 0xf4, 0x62, 0xb1, 0x42, 0xc3, 0x31, 0x76, 0x87, 0xdc, 0xd2, 0xc4, 0xe1, + 0x25, 0x66, 0x34, 0xe0, 0x7d, 0x12, 0xa2, 0x1c, 0x8e, 0x3a, 0x1a, 0xb0, 0x1c, 0x1b, 0xc9, 0xc3, + 0xf4, 0x77, 0x39, 0x57, 0x7a, 0x6c, 0x6d, 0xe6, 0x0d, 0x6c, 0x35, 0x00, 0x1f, 0x1c, 0xad, 0x33, + 0x30, 0xc5, 0x4d, 0xfd, 0xbd, 0x0b, 0x6b, 0x84, 0xb4, 0xb8, 0x07, 0xdd, 0x7d, 0x91, 0x0d, 0x7d, + 0x61, 0x20, 0xc6, 0x82, 0xaf, 0x0c, 0x13, 0x23, 0xb9, 0x0f, 0xce, 0x1b, 0xc3, 0x46, 0x84, 0xd5, + 0x07, 0x79, 0xac, 0xaa, 0x22, 0x56, 0xb7, 0xca, 0x88, 0x49, 0x6e, 0x4c, 0x93, 0x9a, 0x37, 0xbe, + 0xdd, 0x87, 0x4b, 0x13, 0xe0, 0x7a, 0xf2, 0xc0, 0x7c, 0x24, 0x8f, 0xd8, 0xcb, 0x68, 0x77, 0x58, + 0xa3, 0x26, 0xfb, 0x70, 0xba, 0x43, 0x36, 0x1b, 0x50, 0x84, 0xd9, 0x40, 0x4c, 0x7f, 0xfb, 0xc0, + 0x8d, 0xd4, 0x63, 0xae, 0x1f, 0x44, 0x99, 0x21, 0xfb, 0xdb, 0xf7, 0xe5, 0x20, 0x79, 0x70, 0xbe, + 0xa7, 0x00, 0x2c, 0xda, 0xd6, 0x4e, 0xbb, 0x6a, 0x37, 0xb1, 0x8d, 0xfe, 0x36, 0x98, 0x00, 0xbc, + 0x78, 0x08, 0x13, 0x80, 0x55, 0x80, 0x4d, 0x9f, 0x38, 0xd3, 0xf0, 0x9b, 0xe5, 0xcc, 0xfd, 0x80, + 0x29, 0x8d, 0xa3, 0x21, 0x5e, 0x39, 0xfb, 0x14, 0x11, 0xe3, 0xa8, 0x3e, 0x2b, 0x20, 0x37, 0xcc, + 0x09, 0xc0, 0x3b, 0x7d, 0xac, 0xeb, 0x02, 0xd6, 0x77, 0x1d, 0x80, 0x93, 0xe4, 0x31, 0xff, 0xa7, + 0x31, 0x98, 0xa4, 0xdb, 0x75, 0x54, 0xa6, 0xff, 0x10, 0x80, 0xfe, 0xdb, 0x43, 0x00, 0x7d, 0x0d, + 0xa6, 0xac, 0x80, 0x3a, 0xed, 0x53, 0xf9, 0x05, 0x98, 0x48, 0xd8, 0x39, 0xbe, 0x34, 0x81, 0x0c, + 0xfa, 0x18, 0x8f, 0xbc, 0x26, 0x22, 0x7f, 0x7b, 0x84, 0xbc, 0x39, 0x8a, 0xc3, 0x84, 0xfe, 0x5d, + 0x3e, 0xf4, 0x6b, 0x02, 0xf4, 0x85, 0x83, 0xb0, 0x32, 0x82, 0x70, 0xfb, 0x0a, 0x64, 0xc8, 0xe9, + 0xb8, 0xdf, 0x49, 0x70, 0x7e, 0x7f, 0x0a, 0xc6, 0x48, 0x93, 0xf5, 0xe7, 0x1d, 0xde, 0xab, 0xfb, + 0x45, 0xdf, 0x70, 0xb0, 0xed, 0x7b, 0x2c, 0x78, 0xaf, 0x2e, 0x0f, 0x9e, 0x57, 0x72, 0xe7, 0x54, + 0x8e, 0x6e, 0x44, 0xfa, 0x09, 0x03, 0x4f, 0x4a, 0x78, 0x89, 0x0f, 0xed, 0xbc, 0xdc, 0x20, 0x93, + 0x92, 0x3e, 0x8c, 0x24, 0x0f, 0xfc, 0x97, 0x33, 0x70, 0x8a, 0xae, 0x2a, 0x2d, 0xd8, 0xd6, 0x76, + 0xd7, 0xed, 0x56, 0xc6, 0xc1, 0x75, 0xe1, 0x7a, 0x98, 0x71, 0x04, 0x7f, 0x6c, 0xa6, 0x13, 0x5d, + 0xa9, 0xe8, 0xcf, 0x79, 0x9f, 0x8a, 0xa7, 0x8a, 0x48, 0xce, 0x45, 0x08, 0x30, 0x8c, 0xf7, 0xd8, + 0x0b, 0xf5, 0x92, 0x8c, 0x72, 0x8b, 0x54, 0xca, 0x40, 0x6b, 0x96, 0xbe, 0x4e, 0x65, 0x65, 0x74, + 0xea, 0xfd, 0xbe, 0x4e, 0xfd, 0xbc, 0xa0, 0x53, 0x8b, 0x07, 0x17, 0x49, 0xf2, 0xba, 0xf5, 0x6a, + 0x7f, 0x63, 0xc8, 0xdf, 0xb6, 0xdb, 0x4e, 0x60, 0xb3, 0x8e, 0xf7, 0x47, 0xca, 0x08, 0xfe, 0x48, + 0xe2, 0x7d, 0x14, 0x31, 0x66, 0xc2, 0x22, 0xd7, 0x21, 0xba, 0x34, 0x03, 0x69, 0xc3, 0xe3, 0x2e, + 0x6d, 0x34, 0x07, 0x9a, 0xeb, 0x46, 0x16, 0x34, 0x82, 0xb5, 0xa5, 0x19, 0xc8, 0x2d, 0x18, 0x2d, + 0x07, 0xdb, 0xe8, 0xab, 0x6c, 0xa6, 0xfb, 0xea, 0x04, 0x07, 0x80, 0x79, 0xc8, 0x6d, 0x90, 0xd2, + 0x98, 0xc9, 0x7c, 0x93, 0x5c, 0xeb, 0xa1, 0x1c, 0x6a, 0xec, 0xdf, 0xb8, 0xd1, 0xf9, 0xba, 0xc8, + 0x0c, 0x6d, 0x8a, 0x1c, 0x23, 0x3a, 0x5f, 0x7f, 0x16, 0x46, 0x72, 0x31, 0x55, 0x4e, 0xc3, 0xdb, + 0xee, 0x18, 0x7f, 0x31, 0x39, 0x84, 0xf3, 0xa0, 0x18, 0xcd, 0x0e, 0xe9, 0x1c, 0x27, 0x34, 0xf7, + 0x31, 0xae, 0xaf, 0x50, 0xb7, 0xa8, 0x28, 0xcb, 0xa3, 0xf6, 0x15, 0x92, 0xe2, 0x22, 0x79, 0xcc, + 0x7e, 0x48, 0x1c, 0x45, 0xdb, 0x2d, 0xbd, 0x81, 0x5d, 0xee, 0x13, 0x43, 0x8d, 0xf6, 0x64, 0x19, + 0xaf, 0x27, 0xe3, 0xda, 0x69, 0xf6, 0x00, 0xed, 0x74, 0xd0, 0x65, 0x48, 0x5f, 0xe6, 0xa4, 0xe2, + 0x87, 0xb6, 0x0c, 0x19, 0xc9, 0xc6, 0x08, 0xae, 0x1d, 0xf5, 0x0e, 0xd2, 0x8e, 0xb4, 0xb5, 0x0e, + 0xba, 0x49, 0xc3, 0x84, 0x35, 0xb4, 0x43, 0xb3, 0x83, 0x6c, 0xd2, 0x84, 0xf3, 0x30, 0x02, 0xb4, + 0x66, 0x18, 0x5a, 0x9f, 0x67, 0xc3, 0x68, 0xc2, 0xfb, 0xa4, 0x1d, 0xcb, 0x76, 0xe2, 0xed, 0x93, + 0xba, 0xdc, 0x69, 0xe4, 0xbf, 0xb8, 0x07, 0xaf, 0xc4, 0x73, 0xd5, 0xc3, 0x1a, 0x3e, 0x63, 0x1c, + 0xbc, 0xea, 0xc7, 0x40, 0xf2, 0xf0, 0xbe, 0xe5, 0x90, 0x06, 0xcf, 0x41, 0x9b, 0x23, 0x6b, 0x03, + 0x43, 0x1b, 0x3a, 0x07, 0x69, 0x8e, 0xe1, 0x3c, 0x24, 0x8f, 0xd7, 0x77, 0xb9, 0x81, 0xf3, 0x4d, + 0x23, 0x1c, 0x38, 0xbd, 0x96, 0x99, 0x1d, 0xb0, 0x65, 0x0e, 0xba, 0xff, 0xc3, 0x64, 0x3d, 0xbc, + 0x01, 0x73, 0x90, 0xfd, 0x9f, 0x08, 0x26, 0x92, 0x47, 0xfc, 0xcd, 0x0a, 0x64, 0x6b, 0xa3, 0x1f, + 0x2f, 0x07, 0x9d, 0x8b, 0x10, 0x59, 0xd5, 0x86, 0x36, 0x5c, 0x0e, 0x32, 0x17, 0x09, 0x65, 0x61, + 0x04, 0x81, 0xf7, 0x8f, 0xc2, 0x14, 0x59, 0x12, 0xf1, 0xb6, 0x59, 0xbf, 0xcb, 0x46, 0xcd, 0x87, + 0x12, 0x6c, 0xab, 0x77, 0xc3, 0xb8, 0xb7, 0x7f, 0xc7, 0x46, 0xce, 0x59, 0xb9, 0xf6, 0xe9, 0x71, + 0xa9, 0xf9, 0xff, 0x1f, 0xc8, 0x19, 0x62, 0xe8, 0x7b, 0xb5, 0x83, 0x3a, 0x43, 0x1c, 0xea, 0x7e, + 0xed, 0x9f, 0x05, 0x23, 0xea, 0x7f, 0x4e, 0x0e, 0xf3, 0xee, 0x7d, 0xdc, 0x4c, 0x8f, 0x7d, 0xdc, + 0x4f, 0xf0, 0x58, 0xd6, 0x44, 0x2c, 0xef, 0x90, 0x15, 0xe1, 0x10, 0xc7, 0xda, 0x77, 0xfb, 0x70, + 0x9e, 0x13, 0xe0, 0x9c, 0x3b, 0x10, 0x2f, 0x23, 0x38, 0xf8, 0x98, 0x09, 0xc6, 0xdc, 0x4f, 0x26, + 0xd8, 0x8e, 0xbb, 0x4e, 0x55, 0x64, 0xf6, 0x9d, 0xaa, 0x10, 0x5a, 0x7a, 0xf6, 0x80, 0x2d, 0xfd, + 0x93, 0xbc, 0x76, 0xd4, 0x45, 0xed, 0x78, 0xb2, 0x3c, 0x22, 0xc3, 0x1b, 0x99, 0xdf, 0xe3, 0xab, + 0xc7, 0x79, 0x41, 0x3d, 0x8a, 0x07, 0x63, 0x26, 0x79, 0xfd, 0xf8, 0x23, 0x6f, 0x42, 0x7b, 0xc8, + 0xed, 0x7d, 0xd0, 0xad, 0x62, 0x41, 0x88, 0x43, 0x1b, 0xb9, 0x07, 0xd9, 0x2a, 0xee, 0xc7, 0xc9, + 0x08, 0x62, 0xb1, 0x4d, 0xc3, 0x24, 0xe1, 0xe9, 0xbc, 0xd1, 0xdc, 0xc4, 0x0e, 0x7a, 0x0d, 0xf5, + 0x51, 0xf4, 0x22, 0x5f, 0x0e, 0x29, 0x3c, 0x51, 0xd8, 0x79, 0xd7, 0xb8, 0x1e, 0x1d, 0x94, 0xc9, + 0x59, 0x8e, 0xc1, 0x51, 0x47, 0x50, 0xec, 0xcb, 0x41, 0xf2, 0x90, 0x7d, 0x8c, 0xba, 0xdb, 0x2c, + 0xeb, 0x7b, 0xd6, 0x8e, 0x83, 0x1e, 0x18, 0x42, 0x07, 0x3d, 0x07, 0xb9, 0x16, 0xa1, 0xc6, 0x8e, + 0x65, 0x44, 0x4f, 0x77, 0x98, 0x08, 0x68, 0xf9, 0x1a, 0xfb, 0x33, 0xee, 0xd9, 0x8c, 0x40, 0x8e, + 0x94, 0xce, 0xa8, 0xcf, 0x66, 0xf4, 0x29, 0x7f, 0x24, 0x77, 0xec, 0x8c, 0xbb, 0xa5, 0x1b, 0xdb, + 0x86, 0x33, 0xa4, 0x08, 0x0e, 0x2d, 0x97, 0x96, 0x17, 0xc1, 0x81, 0xbc, 0xc4, 0x3d, 0x31, 0xca, + 0x49, 0xc5, 0xfd, 0x7d, 0xd4, 0x27, 0x46, 0xa3, 0x8b, 0x4f, 0x1e, 0x93, 0xdf, 0xa4, 0x2d, 0xeb, + 0x1c, 0x75, 0xbe, 0x4d, 0xd0, 0xaf, 0x77, 0xe0, 0xc6, 0x42, 0x59, 0x3b, 0xbc, 0xc6, 0xd2, 0xb3, + 0xfc, 0xe4, 0x81, 0xf9, 0x6f, 0x3f, 0x0d, 0xd9, 0x79, 0x7c, 0x61, 0x67, 0x13, 0xdd, 0x0e, 0xe3, + 0x75, 0x1b, 0xe3, 0xb2, 0xb9, 0x61, 0xb9, 0xd2, 0x75, 0xdc, 0x67, 0x0f, 0x12, 0xf6, 0xe6, 0xe2, + 0xb1, 0x85, 0xf5, 0x66, 0x70, 0xfe, 0xcc, 0x7b, 0x45, 0x2f, 0x4d, 0x43, 0xa6, 0xe6, 0xe8, 0x0e, + 0x9a, 0xf0, 0xb1, 0x45, 0x0f, 0xf0, 0x58, 0xdc, 0x2e, 0x62, 0x71, 0xbd, 0x20, 0x0b, 0xc2, 0xc1, + 0xac, 0xfb, 0x7f, 0x08, 0x00, 0x08, 0xc6, 0xef, 0xeb, 0x58, 0xa6, 0x9b, 0xc3, 0x3b, 0x02, 0xe9, + 0xbd, 0xa3, 0x57, 0xf9, 0xe2, 0xbe, 0x53, 0x10, 0xf7, 0xa3, 0xe5, 0x8a, 0x18, 0xc1, 0x4a, 0x5b, + 0x1a, 0x26, 0x5c, 0xd1, 0x2e, 0x61, 0xbd, 0xd9, 0x41, 0x3f, 0x15, 0x28, 0x7f, 0x88, 0x98, 0xd1, + 0x87, 0xa4, 0x83, 0x71, 0xd2, 0x5a, 0xf9, 0xc4, 0xc3, 0x3d, 0x3a, 0xbc, 0xcd, 0xff, 0xb4, 0x18, + 0x8c, 0xe4, 0x2c, 0x64, 0x0c, 0x73, 0xc3, 0x62, 0xfe, 0x85, 0x57, 0x86, 0xd0, 0x76, 0x75, 0x42, + 0x23, 0x19, 0x25, 0x23, 0x75, 0x46, 0xb3, 0x35, 0x92, 0x4b, 0xef, 0x32, 0x6e, 0xe9, 0xe8, 0x7f, + 0xef, 0x2b, 0x6c, 0x55, 0x85, 0x4c, 0x5b, 0x77, 0xb6, 0x58, 0xd1, 0xe4, 0xd9, 0xb5, 0x91, 0x77, + 0x4c, 0xdd, 0xb4, 0xcc, 0xbd, 0x6d, 0xe3, 0x19, 0xfe, 0xdd, 0xba, 0x42, 0x9a, 0xcb, 0xf9, 0x26, + 0x36, 0xb1, 0xad, 0x3b, 0xb8, 0xb6, 0xbb, 0x49, 0xe6, 0x58, 0xe3, 0x1a, 0x9f, 0x14, 0x5b, 0xff, + 0x5d, 0x8e, 0xc3, 0xf5, 0x7f, 0xc3, 0x68, 0x61, 0x12, 0xa9, 0x89, 0xe9, 0xbf, 0xf7, 0x1e, 0x4b, + 0xff, 0x7b, 0x14, 0x91, 0x3c, 0x1a, 0xff, 0x96, 0x86, 0xa9, 0x9a, 0xab, 0x70, 0xb5, 0x9d, 0xed, + 0x6d, 0xdd, 0xde, 0x43, 0xd7, 0x06, 0xa8, 0x70, 0xaa, 0x99, 0x12, 0xfd, 0x52, 0xfe, 0x50, 0xfa, + 0x5a, 0x69, 0xd6, 0xb4, 0xb9, 0x12, 0x62, 0xb7, 0x83, 0xc7, 0x42, 0xd6, 0x55, 0x6f, 0xcf, 0xe3, + 0x32, 0xb2, 0x21, 0xd0, 0x9c, 0x92, 0x11, 0xad, 0xfa, 0xf2, 0x36, 0x82, 0x68, 0x1a, 0x69, 0x38, + 0x5a, 0x73, 0xf4, 0xc6, 0xc5, 0x45, 0xcb, 0xb6, 0x76, 0x1c, 0xc3, 0xc4, 0x1d, 0xf4, 0x88, 0x00, + 0x01, 0x4f, 0xff, 0x53, 0x81, 0xfe, 0xa3, 0x7f, 0x4f, 0xc9, 0x8e, 0xa2, 0x7e, 0xb7, 0xca, 0x93, + 0x0f, 0x09, 0x50, 0x25, 0x37, 0x2e, 0xca, 0x50, 0x4c, 0x5e, 0x68, 0x6f, 0x52, 0x20, 0x5f, 0xba, + 0xbf, 0x6d, 0xd9, 0xce, 0xb2, 0xd5, 0xd0, 0x5b, 0x1d, 0xc7, 0xb2, 0x31, 0xaa, 0x46, 0x4a, 0xcd, + 0xed, 0x61, 0x9a, 0x56, 0x23, 0x18, 0x1c, 0xd9, 0x1b, 0xaf, 0x76, 0x8a, 0xa8, 0xe3, 0x1f, 0x93, + 0xde, 0x65, 0xa4, 0x52, 0xe9, 0xe6, 0x28, 0x44, 0xcf, 0x7b, 0x75, 0x69, 0xf1, 0x0e, 0x4b, 0xc8, + 0xed, 0x3c, 0x4a, 0x31, 0x35, 0x82, 0xa5, 0xf2, 0x34, 0x4c, 0xd7, 0x76, 0x2e, 0xf8, 0x44, 0x3a, + 0xbc, 0x11, 0xf2, 0x5a, 0xe9, 0x28, 0x15, 0x4c, 0xf1, 0x78, 0x42, 0x21, 0xf2, 0xbd, 0x0e, 0xa6, + 0x3b, 0x7c, 0x36, 0x86, 0xb7, 0x98, 0x28, 0x19, 0x9d, 0xa2, 0x7f, 0xa9, 0xc9, 0x0b, 0xf0, 0x3d, + 0x69, 0x98, 0xae, 0xb6, 0xb1, 0x89, 0x9b, 0xd4, 0x0b, 0x52, 0x10, 0xe0, 0x4b, 0x63, 0x0a, 0x50, + 0x20, 0x14, 0x22, 0xc0, 0xc0, 0x63, 0x79, 0xde, 0x13, 0x5e, 0x90, 0x10, 0x4b, 0x70, 0x51, 0xa5, + 0x25, 0x2f, 0xb8, 0xaf, 0xa4, 0x61, 0x52, 0xdb, 0x31, 0x57, 0x6d, 0xcb, 0x1d, 0x8d, 0x6d, 0x74, + 0x47, 0xd0, 0x41, 0xdc, 0x04, 0xc7, 0x9a, 0x3b, 0x36, 0x59, 0x7f, 0x2a, 0x9b, 0x35, 0xdc, 0xb0, + 0xcc, 0x66, 0x87, 0xd4, 0x23, 0xab, 0xed, 0xff, 0x70, 0x5b, 0xe6, 0xb9, 0xdf, 0x52, 0x52, 0xe8, + 0xf9, 0xd2, 0xa1, 0x6e, 0x68, 0xe5, 0xb9, 0xa2, 0xe5, 0x7b, 0x02, 0xc9, 0x80, 0x36, 0xfd, 0x4a, + 0x48, 0x5e, 0xb8, 0x9f, 0x4f, 0x83, 0x5a, 0x68, 0x34, 0xac, 0x1d, 0xd3, 0xa9, 0xe1, 0x16, 0x6e, + 0x38, 0x75, 0x5b, 0x6f, 0x60, 0xde, 0x7e, 0xce, 0x83, 0xd2, 0x34, 0x6c, 0xd6, 0x07, 0xbb, 0x8f, + 0x4c, 0x8e, 0x2f, 0x95, 0xde, 0x71, 0xa4, 0xb5, 0xdc, 0x5f, 0x4a, 0x0c, 0x71, 0xca, 0xed, 0x2b, + 0x4a, 0x16, 0x94, 0xbc, 0x54, 0x3f, 0x99, 0x86, 0x09, 0xaf, 0xc7, 0xde, 0x94, 0x11, 0xe6, 0x6f, + 0xc6, 0x9c, 0x8c, 0xf8, 0xc4, 0x63, 0xc8, 0xf0, 0x1d, 0x31, 0x66, 0x15, 0x61, 0xf4, 0xe3, 0x89, + 0xae, 0x10, 0x5f, 0x74, 0xee, 0x6b, 0xa5, 0xba, 0xbe, 0x50, 0x5d, 0x9e, 0x2f, 0x69, 0x79, 0x05, + 0x7d, 0x35, 0x0d, 0x99, 0x55, 0xc3, 0xdc, 0xe4, 0xa3, 0x2b, 0x1d, 0x77, 0xed, 0xc8, 0x26, 0xbe, + 0x9f, 0xb5, 0x74, 0xfa, 0xa2, 0xde, 0x02, 0xc7, 0xcd, 0x9d, 0xed, 0x0b, 0xd8, 0xae, 0x6e, 0x90, + 0x51, 0xb6, 0x53, 0xb7, 0x6a, 0xd8, 0xa4, 0x46, 0x68, 0x56, 0xeb, 0xf9, 0x4d, 0x34, 0xc1, 0x24, + 0x26, 0x0f, 0x2e, 0x27, 0x21, 0x12, 0xf7, 0x99, 0x4a, 0x73, 0x4c, 0xc5, 0x9a, 0x36, 0xf4, 0x20, + 0x9e, 0xbc, 0xa6, 0xfe, 0x71, 0x16, 0x4e, 0x14, 0xcc, 0x3d, 0x62, 0x53, 0xd0, 0x0e, 0xbe, 0xb8, + 0xa5, 0x9b, 0x9b, 0x98, 0x0c, 0x10, 0xbe, 0xc4, 0xf9, 0x10, 0xfd, 0x29, 0x31, 0x44, 0xbf, 0xaa, + 0xc1, 0x98, 0x65, 0x37, 0xb1, 0x3d, 0xb7, 0x47, 0x78, 0xea, 0x5e, 0x76, 0x66, 0x6d, 0xb2, 0x57, + 0x11, 0xb3, 0x8c, 0xfc, 0x6c, 0x95, 0xfe, 0xaf, 0x79, 0x84, 0xce, 0xdc, 0x04, 0x63, 0x2c, 0x4d, + 0x9d, 0x82, 0xf1, 0xaa, 0x36, 0x5f, 0xd2, 0xd6, 0xcb, 0xf3, 0xf9, 0x23, 0xea, 0x65, 0x70, 0xb4, + 0x5c, 0x2f, 0x69, 0x85, 0x7a, 0xb9, 0x5a, 0x59, 0x27, 0xe9, 0xf9, 0x14, 0x7a, 0x4e, 0x46, 0xd6, + 0xb3, 0x37, 0x9a, 0x99, 0x5e, 0xb0, 0x6a, 0x30, 0xd6, 0xa0, 0x19, 0xc8, 0x10, 0x3a, 0x19, 0xab, + 0x76, 0x8c, 0x20, 0x4d, 0xd0, 0x3c, 0x42, 0xea, 0x69, 0x80, 0x4b, 0xb6, 0x65, 0x6e, 0x06, 0xa7, + 0x0e, 0xc7, 0x35, 0x2e, 0x05, 0x3d, 0x90, 0x82, 0x1c, 0xfd, 0x87, 0x5c, 0x49, 0x42, 0x9e, 0x02, + 0xc1, 0x7b, 0xef, 0xae, 0xc5, 0x4b, 0xe4, 0x15, 0x4c, 0xb4, 0xd8, 0xab, 0xab, 0x8b, 0x54, 0x06, + 0xd4, 0x12, 0x66, 0x55, 0x39, 0x0b, 0x39, 0xfa, 0x2f, 0xf3, 0x3a, 0x08, 0x0f, 0x2f, 0x4a, 0xb3, + 0x49, 0xfa, 0x29, 0xcb, 0xcb, 0x34, 0x79, 0x6d, 0xfe, 0x70, 0x1a, 0xc6, 0x2b, 0xd8, 0x29, 0x6e, + 0xe1, 0xc6, 0x45, 0xf4, 0x28, 0x71, 0x01, 0xb4, 0x65, 0x60, 0xd3, 0xb9, 0x77, 0xbb, 0xe5, 0x2f, + 0x80, 0x7a, 0x09, 0xe8, 0x79, 0x7c, 0xe7, 0x7b, 0x97, 0xa8, 0x3f, 0x37, 0xf6, 0xa8, 0xab, 0x57, + 0x42, 0x88, 0xca, 0x9c, 0x84, 0x9c, 0x8d, 0x3b, 0x3b, 0x2d, 0x6f, 0x11, 0x8d, 0xbd, 0xa1, 0x07, + 0x7d, 0x71, 0x16, 0x05, 0x71, 0x9e, 0x95, 0x2f, 0x62, 0x04, 0xf1, 0x4a, 0x33, 0x30, 0x56, 0x36, + 0x0d, 0xc7, 0xd0, 0x5b, 0xe8, 0xf9, 0x19, 0x98, 0xae, 0x61, 0x67, 0x55, 0xb7, 0xf5, 0x6d, 0xec, + 0x60, 0xbb, 0x83, 0x7e, 0x20, 0xf6, 0x09, 0xed, 0x96, 0xee, 0x6c, 0x58, 0xf6, 0xb6, 0xa7, 0x9a, + 0xde, 0xbb, 0xab, 0x9a, 0xbb, 0xd8, 0xee, 0x04, 0x7c, 0x79, 0xaf, 0xee, 0x97, 0x4b, 0x96, 0x7d, + 0xd1, 0x1d, 0x04, 0xd9, 0x34, 0x8d, 0xbd, 0xba, 0xf4, 0x5a, 0xd6, 0xe6, 0x32, 0xde, 0xc5, 0x5e, + 0xb8, 0x34, 0xff, 0xdd, 0x9d, 0x0b, 0x34, 0xad, 0x8a, 0xe5, 0xb8, 0x9d, 0xf6, 0xb2, 0xb5, 0x49, + 0xe3, 0xc5, 0x8e, 0x6b, 0x62, 0x62, 0x90, 0x4b, 0xdf, 0xc5, 0x24, 0x57, 0x8e, 0xcf, 0xc5, 0x12, + 0xd5, 0x59, 0x50, 0xfd, 0xdf, 0xea, 0xb8, 0x85, 0xb7, 0xb1, 0x63, 0xef, 0x91, 0x6b, 0x21, 0xc6, + 0xb5, 0x1e, 0x5f, 0xd8, 0x00, 0x2d, 0x3f, 0x59, 0x67, 0xd2, 0x9b, 0x15, 0x24, 0x77, 0xa0, 0xc9, + 0xba, 0x0c, 0xc5, 0x91, 0x5c, 0x7b, 0xa5, 0xb8, 0xd6, 0xcc, 0xcb, 0x15, 0xc8, 0x90, 0xc1, 0xf3, + 0xcd, 0x29, 0x61, 0x85, 0x69, 0x1b, 0x77, 0x3a, 0xfa, 0x26, 0xf6, 0x56, 0x98, 0xd8, 0xab, 0x7a, + 0x2b, 0x64, 0x5b, 0x04, 0x53, 0x3a, 0x38, 0x5c, 0x2b, 0xd4, 0xcc, 0x35, 0x30, 0x5c, 0x5a, 0xfe, + 0x48, 0x40, 0xe0, 0xd6, 0xe8, 0x1f, 0x67, 0xee, 0x86, 0x2c, 0x85, 0x7f, 0x02, 0xb2, 0xf3, 0xa5, + 0xb9, 0xb5, 0xc5, 0xfc, 0x11, 0xf7, 0xd1, 0xe3, 0x6f, 0x02, 0xb2, 0x0b, 0x85, 0x7a, 0x61, 0x39, + 0x9f, 0x76, 0xeb, 0x51, 0xae, 0x2c, 0x54, 0xf3, 0x8a, 0x9b, 0xb8, 0x5a, 0xa8, 0x94, 0x8b, 0xf9, + 0x8c, 0x3a, 0x09, 0x63, 0xe7, 0x0b, 0x5a, 0xa5, 0x5c, 0x59, 0xcc, 0x67, 0xd1, 0xdf, 0xf1, 0xf8, + 0xdd, 0x26, 0xe2, 0x77, 0x5d, 0x18, 0x4f, 0xbd, 0x20, 0x7b, 0x85, 0x0f, 0xd9, 0x1d, 0x02, 0x64, + 0x3f, 0x2d, 0x43, 0x64, 0x04, 0xee, 0x4c, 0x39, 0x18, 0x5b, 0xb5, 0xad, 0x06, 0xee, 0x74, 0xd0, + 0x6f, 0xa5, 0x21, 0x57, 0xd4, 0xcd, 0x06, 0x6e, 0xa1, 0x2b, 0x02, 0xa8, 0xa8, 0xab, 0x68, 0xca, + 0x3f, 0x2d, 0xf6, 0xbd, 0x94, 0x6c, 0xef, 0xc7, 0xe8, 0xce, 0x52, 0x9a, 0x21, 0xf2, 0x91, 0xeb, + 0xe5, 0x22, 0x49, 0x8d, 0xe0, 0x6a, 0x9c, 0x34, 0x4c, 0xb0, 0xd5, 0x80, 0x0b, 0x98, 0x9f, 0x87, + 0xff, 0x20, 0x25, 0x3b, 0x39, 0xf4, 0x6a, 0xe0, 0x93, 0x09, 0x91, 0x87, 0xdc, 0x44, 0xb0, 0x1f, + 0xb5, 0x11, 0x6c, 0x1e, 0xa6, 0x61, 0x72, 0xcd, 0xec, 0xf4, 0x12, 0x8a, 0x7c, 0x1c, 0x7d, 0xaf, + 0x1a, 0x1c, 0xa1, 0x03, 0xc5, 0xd1, 0xef, 0x4f, 0x2f, 0x79, 0xc1, 0xfc, 0x20, 0x05, 0xc7, 0x17, + 0xb1, 0x89, 0x6d, 0xa3, 0x41, 0x6b, 0xe0, 0x49, 0xe2, 0x0e, 0x51, 0x12, 0x8f, 0x12, 0x38, 0xef, + 0xf5, 0x87, 0x28, 0x81, 0x57, 0xfb, 0x12, 0xb8, 0x4b, 0x90, 0xc0, 0x4d, 0x92, 0x74, 0x46, 0x70, + 0x1f, 0xfa, 0x04, 0x4c, 0x55, 0x2c, 0xc7, 0xd8, 0x30, 0x1a, 0xd4, 0x07, 0xed, 0x65, 0x0a, 0x64, + 0x96, 0x8d, 0x8e, 0x83, 0x0a, 0x41, 0x77, 0x72, 0x0d, 0x4c, 0x1a, 0x66, 0xa3, 0xb5, 0xd3, 0xc4, + 0x1a, 0xd6, 0x69, 0xbf, 0x32, 0xae, 0xf1, 0x49, 0xc1, 0xd6, 0xbe, 0xcb, 0x96, 0xe2, 0x6d, 0xed, + 0x7f, 0x46, 0x7a, 0x19, 0x86, 0x67, 0x81, 0x04, 0xa4, 0x0c, 0xb1, 0xbb, 0x0a, 0x30, 0x6d, 0x72, + 0x59, 0x3d, 0x83, 0xbd, 0xfb, 0x42, 0x01, 0x9e, 0x9c, 0x26, 0xfe, 0x81, 0xde, 0x27, 0xd5, 0x58, + 0xfb, 0x31, 0x14, 0x0f, 0x99, 0x85, 0x01, 0x26, 0xc9, 0x2a, 0xcc, 0x94, 0x2b, 0xf5, 0x92, 0x56, + 0x29, 0x2c, 0xb3, 0x2c, 0x0a, 0xfa, 0xb7, 0x34, 0x64, 0x35, 0xdc, 0x6e, 0xed, 0xf1, 0x11, 0xa3, + 0x99, 0xa3, 0x78, 0xca, 0x77, 0x14, 0x57, 0x17, 0x00, 0xf4, 0x86, 0x5b, 0x30, 0xb9, 0x52, 0x2b, + 0xdd, 0x33, 0x8e, 0xa9, 0x50, 0xc1, 0x82, 0x9f, 0x5b, 0xe3, 0xfe, 0x44, 0x2f, 0x90, 0xde, 0x39, + 0x12, 0xa8, 0x11, 0x0e, 0x43, 0xfa, 0x84, 0xf7, 0x4b, 0x6d, 0xf6, 0xf4, 0x25, 0x77, 0x38, 0xe2, + 0xff, 0x5a, 0x1a, 0x32, 0x75, 0xb7, 0xb7, 0xe4, 0x3a, 0xce, 0x3f, 0x19, 0x4c, 0xc7, 0x5d, 0x32, + 0x21, 0x3a, 0x7e, 0x27, 0x4c, 0xf1, 0x1a, 0xcb, 0x5c, 0x25, 0x22, 0x55, 0x5c, 0xf8, 0x61, 0x10, + 0x0d, 0xef, 0xc1, 0xce, 0xe1, 0x88, 0xf8, 0x53, 0x8f, 0x06, 0x58, 0xc1, 0xdb, 0x17, 0xb0, 0xdd, + 0xd9, 0x32, 0xda, 0xe8, 0xef, 0x15, 0x98, 0x58, 0xc4, 0x4e, 0xcd, 0xd1, 0x9d, 0x9d, 0x4e, 0xd7, + 0x76, 0xa7, 0x69, 0x15, 0xf5, 0xc6, 0x16, 0x66, 0xdd, 0x91, 0xf7, 0x8a, 0xde, 0xa5, 0xc8, 0xfa, + 0x13, 0x05, 0xe5, 0xcc, 0xfa, 0x65, 0x84, 0x60, 0xf2, 0x18, 0xc8, 0x34, 0x75, 0x47, 0x67, 0x58, + 0x5c, 0xd1, 0x85, 0x45, 0x40, 0x48, 0x23, 0xd9, 0xd0, 0xef, 0xa5, 0x65, 0x1c, 0x8a, 0x24, 0xca, + 0x8f, 0x07, 0xc2, 0xfb, 0x52, 0x03, 0xa0, 0x70, 0x0c, 0xa6, 0x2b, 0xd5, 0xfa, 0xfa, 0x72, 0x75, + 0x71, 0xb1, 0xe4, 0xa6, 0xe6, 0x15, 0xf5, 0x24, 0xa8, 0xab, 0x85, 0x7b, 0x57, 0x4a, 0x95, 0xfa, + 0x7a, 0xa5, 0x3a, 0x5f, 0x62, 0x7f, 0x66, 0xd4, 0xa3, 0x30, 0x59, 0x2c, 0x14, 0x97, 0xbc, 0x84, + 0xac, 0x7a, 0x0a, 0x8e, 0xaf, 0x94, 0x56, 0xe6, 0x4a, 0x5a, 0x6d, 0xa9, 0xbc, 0xba, 0xee, 0x92, + 0x59, 0xa8, 0xae, 0x55, 0xe6, 0xf3, 0x39, 0x15, 0xc1, 0x49, 0xee, 0xcb, 0x79, 0xad, 0x5a, 0x59, + 0x5c, 0xaf, 0xd5, 0x0b, 0xf5, 0x52, 0x7e, 0x4c, 0xbd, 0x0c, 0x8e, 0x16, 0x0b, 0x15, 0x92, 0xbd, + 0x58, 0xad, 0x54, 0x4a, 0xc5, 0x7a, 0x7e, 0x1c, 0xfd, 0x7b, 0x06, 0x26, 0xcb, 0x9d, 0x8a, 0xbe, + 0x8d, 0xcf, 0xe9, 0x2d, 0xa3, 0x89, 0x9e, 0xcf, 0xcd, 0x3c, 0xae, 0x83, 0x69, 0x9b, 0x3e, 0xe2, + 0x66, 0xdd, 0xc0, 0x14, 0xcd, 0x69, 0x4d, 0x4c, 0x74, 0xe7, 0xe4, 0x26, 0x21, 0xe0, 0xcd, 0xc9, + 0xe9, 0x9b, 0x3a, 0x07, 0x40, 0x9f, 0xea, 0xc1, 0xe5, 0xae, 0x67, 0xba, 0x5b, 0x93, 0xbe, 0x8d, + 0x3b, 0xd8, 0xde, 0x35, 0x1a, 0xd8, 0xcb, 0xa9, 0x71, 0x7f, 0xa1, 0xaf, 0x2b, 0xb2, 0xfb, 0x8b, + 0x1c, 0xa8, 0x5c, 0x75, 0x42, 0x7a, 0xc3, 0x5f, 0x51, 0x64, 0x76, 0x07, 0xa5, 0x48, 0xc6, 0xd3, + 0x94, 0x17, 0xa5, 0x07, 0x5b, 0xb6, 0xad, 0x57, 0xab, 0xeb, 0xb5, 0xa5, 0xaa, 0x56, 0xcf, 0x2b, + 0xea, 0x14, 0x8c, 0xbb, 0xaf, 0xcb, 0xd5, 0xca, 0x62, 0x3e, 0xa3, 0x9e, 0x80, 0x63, 0x4b, 0x85, + 0xda, 0x7a, 0xb9, 0x72, 0xae, 0xb0, 0x5c, 0x9e, 0x5f, 0x2f, 0x2e, 0x15, 0xb4, 0x5a, 0x3e, 0xab, + 0x5e, 0x01, 0x27, 0xea, 0xe5, 0x92, 0xb6, 0xbe, 0x50, 0x2a, 0xd4, 0xd7, 0xb4, 0x52, 0x6d, 0xbd, + 0x52, 0x5d, 0xaf, 0x14, 0x56, 0x4a, 0xf9, 0x9c, 0xdb, 0xfc, 0xc9, 0xa7, 0x40, 0x6d, 0xc6, 0xf6, + 0x2b, 0xe3, 0x78, 0x88, 0x32, 0x4e, 0x74, 0x2b, 0x23, 0xf0, 0x6a, 0xa5, 0x95, 0x6a, 0x25, 0xed, + 0x5c, 0x29, 0x3f, 0xd9, 0x4b, 0xd7, 0xa6, 0xd4, 0xe3, 0x90, 0x77, 0x79, 0x58, 0x2f, 0xd7, 0xbc, + 0x9c, 0xf3, 0xf9, 0x69, 0xf4, 0xc9, 0x1c, 0x9c, 0xd4, 0xf0, 0xa6, 0xd1, 0x71, 0xb0, 0xbd, 0xaa, + 0xef, 0x6d, 0x63, 0xd3, 0xf1, 0x3a, 0xf9, 0xff, 0x15, 0x5b, 0x19, 0x57, 0x60, 0xba, 0x4d, 0x69, + 0xac, 0x60, 0x67, 0xcb, 0x6a, 0xb2, 0x51, 0xf8, 0x51, 0xa1, 0x3d, 0xc7, 0xec, 0x2a, 0x9f, 0x5d, + 0x13, 0xff, 0xe6, 0x74, 0x5b, 0x89, 0xd0, 0xed, 0xcc, 0x20, 0xba, 0xad, 0x5e, 0x05, 0x13, 0x3b, + 0x1d, 0x6c, 0x97, 0xb6, 0x75, 0xa3, 0xe5, 0x5d, 0xce, 0xe9, 0x27, 0xa0, 0xb7, 0x67, 0x64, 0x4f, + 0xac, 0x70, 0x75, 0xe9, 0x2d, 0xc6, 0x90, 0xbe, 0xf5, 0x34, 0x00, 0xab, 0xec, 0x9a, 0xdd, 0x62, + 0xca, 0xca, 0xa5, 0xb8, 0xfc, 0x5d, 0x30, 0x5a, 0x2d, 0xc3, 0xdc, 0xf4, 0xf7, 0xfd, 0x83, 0x04, + 0xf4, 0x22, 0x45, 0xe6, 0x04, 0x4b, 0x5c, 0xde, 0xe2, 0xb5, 0xa6, 0x17, 0xa4, 0x47, 0xdc, 0xef, + 0xee, 0x6f, 0x3a, 0x39, 0x35, 0x0f, 0x53, 0x24, 0x8d, 0xb5, 0xc0, 0xfc, 0x98, 0xdb, 0x07, 0x7b, + 0xe4, 0x56, 0x4a, 0xf5, 0xa5, 0xea, 0xbc, 0xff, 0x6d, 0xdc, 0x25, 0xe9, 0x32, 0x53, 0xa8, 0xdc, + 0x4b, 0x5a, 0xe3, 0x84, 0xfa, 0x08, 0xb8, 0x82, 0xeb, 0xb0, 0x0b, 0xcb, 0x5a, 0xa9, 0x30, 0x7f, + 0xef, 0x7a, 0xe9, 0xa9, 0xe5, 0x5a, 0xbd, 0x26, 0x36, 0x2e, 0xaf, 0x1d, 0x4d, 0xba, 0xfc, 0x96, + 0x56, 0x0a, 0xe5, 0x65, 0xd6, 0xbf, 0x2f, 0x54, 0xb5, 0x95, 0x42, 0x3d, 0x3f, 0x85, 0x5e, 0xae, + 0x40, 0x7e, 0x11, 0x3b, 0xab, 0x96, 0xed, 0xe8, 0xad, 0x65, 0xc3, 0xbc, 0xb8, 0x66, 0xb7, 0x84, + 0xc9, 0xa6, 0x74, 0x98, 0x0e, 0x71, 0x88, 0x14, 0x08, 0x86, 0xef, 0x88, 0xb7, 0x49, 0xb6, 0x40, + 0x99, 0x82, 0x04, 0xf4, 0xcc, 0xb4, 0xcc, 0x72, 0xb7, 0x7c, 0xa9, 0xf1, 0xf4, 0xe4, 0x59, 0xa3, + 0x1e, 0x9f, 0x7b, 0xa0, 0x96, 0x43, 0xcf, 0xcd, 0xc0, 0xf8, 0x82, 0x61, 0xea, 0x2d, 0xe3, 0x19, + 0x42, 0xfc, 0xd2, 0xa0, 0x8f, 0x49, 0x45, 0xf4, 0x31, 0xe9, 0x81, 0xc6, 0xcf, 0xdf, 0x50, 0x64, + 0x97, 0x17, 0x38, 0xd9, 0x7b, 0x4c, 0x86, 0x0c, 0x9e, 0x1f, 0x49, 0xcb, 0x2c, 0x2f, 0xf4, 0xa7, + 0x17, 0x0f, 0xc3, 0x4f, 0xff, 0x78, 0xd8, 0x58, 0x5d, 0xed, 0x7b, 0xbc, 0x97, 0x2a, 0x4c, 0xa0, + 0xbf, 0x50, 0x00, 0x2d, 0x62, 0xe7, 0x1c, 0xb6, 0xfd, 0xa9, 0x00, 0xe9, 0xf5, 0x99, 0xbd, 0xcd, + 0x35, 0xd9, 0x37, 0xf3, 0x00, 0x9e, 0x17, 0x01, 0x2c, 0x44, 0x34, 0x9e, 0x10, 0xd2, 0x21, 0x8d, + 0xb7, 0x0c, 0xb9, 0x0e, 0xf9, 0xce, 0xd4, 0xec, 0xb1, 0xe1, 0xc3, 0x25, 0x21, 0xc6, 0x53, 0xa7, + 0x84, 0x35, 0x46, 0x00, 0xfd, 0xd0, 0x9f, 0x04, 0xfd, 0x9c, 0xa0, 0x1d, 0x0b, 0x07, 0x66, 0x36, + 0x9e, 0xbe, 0xd8, 0xc9, 0xaa, 0x4b, 0x2f, 0xfb, 0x06, 0x7d, 0x24, 0x0b, 0xc7, 0x7b, 0x55, 0x07, + 0x7d, 0x20, 0x25, 0xec, 0xb0, 0x63, 0x32, 0xe4, 0xa7, 0xd8, 0x06, 0xa2, 0xfb, 0xa2, 0x3e, 0x1e, + 0x4e, 0xf8, 0xcb, 0x70, 0x75, 0xab, 0x82, 0x2f, 0x75, 0x5a, 0xd8, 0x71, 0xb0, 0x4d, 0xaa, 0x36, + 0xae, 0xf5, 0xfe, 0xa8, 0x3e, 0x11, 0x2e, 0x37, 0xcc, 0x8e, 0xd1, 0xc4, 0x76, 0xdd, 0x68, 0x77, + 0x0a, 0x66, 0xb3, 0xbe, 0xe3, 0x58, 0xb6, 0xa1, 0xb3, 0xab, 0x24, 0xc7, 0xb5, 0xb0, 0xcf, 0xea, + 0x8d, 0x90, 0x37, 0x3a, 0x55, 0xf3, 0x82, 0xa5, 0xdb, 0x4d, 0xc3, 0xdc, 0x5c, 0x36, 0x3a, 0x0e, + 0xf3, 0x00, 0xde, 0x97, 0x8e, 0xfe, 0x41, 0x91, 0x3d, 0x4c, 0xd7, 0x07, 0xd6, 0x90, 0x0e, 0xe5, + 0x79, 0x8a, 0xcc, 0xf1, 0xb8, 0x78, 0xb4, 0xe3, 0x29, 0xcb, 0x73, 0x46, 0x6d, 0x48, 0xf4, 0x1e, + 0xc1, 0x49, 0xd7, 0x42, 0xd3, 0x3d, 0x43, 0xe0, 0x5c, 0x49, 0x2b, 0x2f, 0x94, 0x4b, 0xae, 0x59, + 0x71, 0x02, 0x8e, 0x05, 0xdf, 0xe6, 0xef, 0x5d, 0xaf, 0x95, 0x2a, 0xf5, 0xfc, 0xb8, 0xdb, 0x4f, + 0xd1, 0xe4, 0x85, 0x42, 0x79, 0xb9, 0x34, 0xbf, 0x5e, 0xaf, 0xba, 0x5f, 0xe6, 0x07, 0x33, 0x2d, + 0xd0, 0x03, 0x19, 0x38, 0x4a, 0x64, 0xbb, 0x47, 0xa4, 0xea, 0x0a, 0xa5, 0xcb, 0xd7, 0xd6, 0x07, + 0x68, 0x82, 0x8a, 0x17, 0x7d, 0x4e, 0xfa, 0xa6, 0x4c, 0x0e, 0xc2, 0xae, 0x32, 0x42, 0x34, 0xe3, + 0x07, 0x69, 0x99, 0x08, 0x15, 0xd2, 0x64, 0xe3, 0x29, 0xc5, 0xbf, 0x8c, 0x7a, 0xc4, 0x09, 0x07, + 0x9f, 0x58, 0x99, 0x45, 0xf2, 0xf3, 0x53, 0x57, 0xcb, 0x1a, 0x51, 0x87, 0x19, 0x00, 0x92, 0x42, + 0x34, 0x88, 0xea, 0x41, 0xcf, 0xf1, 0x2a, 0x4c, 0x0f, 0x0a, 0xc5, 0x7a, 0xf9, 0x5c, 0x29, 0x4c, + 0x0f, 0x3e, 0xab, 0xc0, 0xf8, 0x22, 0x76, 0xdc, 0x39, 0x55, 0x07, 0x3d, 0x49, 0x62, 0xfd, 0xc7, + 0x35, 0x63, 0x5a, 0x56, 0x43, 0x6f, 0xf9, 0xcb, 0x00, 0xf4, 0x0d, 0x3d, 0x7b, 0x10, 0x13, 0xc4, + 0x2b, 0x3a, 0x64, 0xbc, 0xfa, 0x59, 0xc8, 0x3a, 0xee, 0x67, 0xb6, 0x0c, 0xfd, 0x53, 0xa1, 0xc3, + 0x95, 0x4b, 0x64, 0x5e, 0x77, 0x74, 0x8d, 0xe6, 0xe7, 0x46, 0x27, 0x49, 0xdb, 0x25, 0x84, 0x91, + 0x1f, 0x47, 0xfb, 0xf3, 0xef, 0x14, 0x38, 0x41, 0xdb, 0x47, 0xa1, 0xdd, 0xae, 0x39, 0x96, 0x8d, + 0x35, 0xdc, 0xc0, 0x46, 0xdb, 0xe9, 0x5a, 0xdf, 0xb3, 0x69, 0xaa, 0xb7, 0xd9, 0xcc, 0x5e, 0xd1, + 0x1b, 0x14, 0xd9, 0x18, 0xcc, 0xfb, 0xda, 0x63, 0x57, 0x79, 0x21, 0x8d, 0xfd, 0x13, 0x69, 0x99, + 0xa8, 0xca, 0x31, 0x89, 0xc7, 0x03, 0xea, 0xa3, 0x87, 0x00, 0x94, 0xb7, 0x72, 0xa3, 0x95, 0x8a, + 0xa5, 0xf2, 0xaa, 0x3b, 0x08, 0x5c, 0x0d, 0x57, 0xae, 0xae, 0x69, 0xc5, 0xa5, 0x42, 0xad, 0xb4, + 0xae, 0x95, 0x16, 0xcb, 0xb5, 0x3a, 0x73, 0xca, 0xa2, 0x7f, 0x8d, 0xa9, 0x57, 0xc1, 0xa9, 0xda, + 0xda, 0x5c, 0xad, 0xa8, 0x95, 0x57, 0x49, 0xba, 0x56, 0xaa, 0x94, 0xce, 0xb3, 0xaf, 0xe3, 0xe8, + 0x43, 0x79, 0x98, 0x74, 0x27, 0x00, 0x35, 0x3a, 0x2f, 0x40, 0xdf, 0xc9, 0xc0, 0xa4, 0x86, 0x3b, + 0x56, 0x6b, 0x97, 0xcc, 0x11, 0x46, 0x35, 0xf5, 0xf8, 0xbe, 0x22, 0x7b, 0x7e, 0x9b, 0x63, 0x76, + 0x96, 0x63, 0x34, 0x7c, 0xa2, 0xa9, 0xef, 0xea, 0x46, 0x4b, 0xbf, 0xc0, 0xba, 0x9a, 0x71, 0x2d, + 0x48, 0x50, 0x67, 0x41, 0xb5, 0x2e, 0x99, 0xd8, 0xae, 0x35, 0x2e, 0x95, 0x9c, 0xad, 0x42, 0xb3, + 0x69, 0xe3, 0x4e, 0x87, 0xad, 0x5e, 0xf4, 0xf8, 0xa2, 0xde, 0x00, 0x47, 0x49, 0x2a, 0x97, 0x99, + 0x3a, 0xc8, 0x74, 0x27, 0xfb, 0x39, 0x0b, 0xe6, 0x9e, 0x97, 0x33, 0xcb, 0xe5, 0x0c, 0x92, 0xf9, + 0xe3, 0x12, 0x39, 0xf1, 0x94, 0xce, 0x35, 0x30, 0x69, 0xea, 0xdb, 0xb8, 0x74, 0x7f, 0xdb, 0xb0, + 0x71, 0x87, 0x38, 0xc6, 0x28, 0x1a, 0x9f, 0x84, 0x3e, 0x22, 0x75, 0xde, 0x5c, 0x4e, 0x62, 0xf1, + 0x74, 0x7f, 0x71, 0x00, 0xd5, 0xef, 0xd1, 0xcf, 0x28, 0xe8, 0x43, 0x0a, 0x4c, 0x31, 0xa6, 0x0a, + 0xe6, 0x5e, 0xb9, 0x89, 0xae, 0x16, 0x8c, 0x5f, 0xdd, 0x4d, 0xf3, 0x8c, 0x5f, 0xf2, 0x82, 0x7e, + 0x55, 0x91, 0x75, 0x77, 0xee, 0x51, 0x71, 0x52, 0x46, 0xb8, 0xe3, 0xe8, 0x86, 0xb5, 0xc3, 0x1c, + 0x55, 0xc7, 0x35, 0xfa, 0x92, 0xe4, 0xa2, 0x1e, 0xfa, 0x03, 0x29, 0x67, 0x6a, 0xc9, 0x6a, 0x1c, + 0x12, 0x80, 0x9f, 0x52, 0x60, 0x86, 0x71, 0x55, 0x63, 0xe7, 0x7c, 0xa4, 0x0e, 0xbc, 0xfd, 0x9a, + 0xb4, 0x21, 0xd8, 0xa3, 0xfe, 0xac, 0xa4, 0x87, 0x0d, 0x90, 0x1f, 0x93, 0x0a, 0x8e, 0x26, 0x5d, + 0x91, 0x43, 0x82, 0xf2, 0x1d, 0x19, 0x98, 0x5c, 0xeb, 0x60, 0x9b, 0xf9, 0xed, 0xa3, 0x07, 0x33, + 0xa0, 0x2c, 0x62, 0x61, 0x23, 0xf5, 0x85, 0xd2, 0x1e, 0xbe, 0x7c, 0x65, 0x39, 0xa2, 0xae, 0x8d, + 0x14, 0x02, 0xdb, 0xf5, 0x30, 0x43, 0x45, 0x5a, 0x70, 0x1c, 0xd7, 0x48, 0xf4, 0xbc, 0x69, 0xbb, + 0x52, 0x87, 0xb1, 0x55, 0x44, 0xca, 0x72, 0xb3, 0x14, 0x5d, 0x9e, 0x96, 0xf1, 0x06, 0x9d, 0xcf, + 0x66, 0xb4, 0xae, 0x54, 0xf5, 0x66, 0xb8, 0xcc, 0x6a, 0x63, 0x7a, 0x7e, 0x85, 0xcb, 0x9c, 0x25, + 0x99, 0x7b, 0x7d, 0x42, 0xdf, 0x91, 0xf2, 0xd5, 0x95, 0x97, 0x4e, 0x3c, 0x5d, 0x68, 0x0f, 0xc7, + 0x24, 0x39, 0x0e, 0x79, 0x37, 0x07, 0xd9, 0x7f, 0xd1, 0x4a, 0xb5, 0xea, 0xf2, 0xb9, 0x52, 0xef, + 0x65, 0x8c, 0x2c, 0x7a, 0x8e, 0x02, 0x13, 0x73, 0xb6, 0xa5, 0x37, 0x1b, 0x7a, 0xc7, 0x41, 0x3f, + 0x4c, 0xc3, 0xd4, 0xaa, 0xbe, 0xd7, 0xb2, 0xf4, 0x26, 0xf1, 0xef, 0xef, 0xea, 0x0b, 0xda, 0xf4, + 0x93, 0xd7, 0x17, 0xb0, 0x57, 0xf1, 0x60, 0xa0, 0x7f, 0x74, 0x2f, 0x25, 0x73, 0xa1, 0xa6, 0xbf, + 0xcd, 0x97, 0xee, 0x15, 0xac, 0xd4, 0xe3, 0x6b, 0x96, 0xe7, 0x29, 0xc4, 0xa2, 0xfc, 0x90, 0x5c, + 0xf8, 0x51, 0x19, 0x92, 0x87, 0xb3, 0x2b, 0xff, 0xdc, 0x71, 0xc8, 0xcd, 0x63, 0x62, 0xc5, 0xfd, + 0xf7, 0x34, 0x8c, 0xd5, 0xb0, 0x43, 0x2c, 0xb8, 0x5b, 0x05, 0x4f, 0xe1, 0x26, 0xc9, 0x10, 0x38, + 0xb1, 0x7b, 0xef, 0xee, 0x64, 0x9d, 0x3b, 0x6f, 0x4d, 0x9e, 0x63, 0x78, 0x24, 0xd2, 0x72, 0x67, + 0x59, 0x99, 0x07, 0xf2, 0x48, 0x8c, 0x24, 0x95, 0xbc, 0xaf, 0xd5, 0xbb, 0xd2, 0xcc, 0xb5, 0x8a, + 0xeb, 0xf5, 0x5e, 0xc3, 0xeb, 0x67, 0xa4, 0xb7, 0x19, 0x63, 0x3e, 0xc2, 0x39, 0xea, 0x71, 0x30, + 0x46, 0x65, 0xee, 0xcd, 0x47, 0xbb, 0xfd, 0x14, 0x28, 0x09, 0x72, 0xf6, 0xda, 0xcb, 0x29, 0xe9, + 0xa2, 0x16, 0x5e, 0xf8, 0x48, 0x62, 0x10, 0x4c, 0x55, 0xb0, 0x73, 0xc9, 0xb2, 0x2f, 0xd6, 0x1c, + 0xdd, 0xc1, 0xe8, 0x5f, 0xd2, 0xa0, 0xd4, 0xb0, 0xc3, 0x47, 0x3f, 0xa9, 0xc0, 0x31, 0x5a, 0x21, + 0x96, 0x91, 0xf4, 0xdf, 0xb4, 0x22, 0xd7, 0xf4, 0x14, 0x02, 0x97, 0x4f, 0xdb, 0xff, 0x2b, 0xfa, + 0xad, 0x9e, 0x41, 0x9f, 0xd2, 0x3d, 0x26, 0x0d, 0x4c, 0x32, 0x3c, 0x83, 0xae, 0x82, 0x85, 0xe8, + 0xe9, 0x87, 0xa5, 0xcc, 0x6a, 0x39, 0x9a, 0x87, 0xd3, 0x15, 0x7c, 0xec, 0x0a, 0xc8, 0x14, 0xb7, + 0x74, 0x07, 0xbd, 0x53, 0x01, 0x28, 0x34, 0x9b, 0x2b, 0xd4, 0x07, 0x9c, 0x77, 0x48, 0x3b, 0x03, + 0x53, 0x8d, 0x2d, 0x3d, 0xb8, 0xdb, 0x84, 0xf6, 0x07, 0x42, 0x9a, 0xfa, 0xf8, 0xc0, 0x99, 0x9c, + 0x4a, 0x15, 0x75, 0xc1, 0xe4, 0x96, 0xc1, 0x68, 0xfb, 0x8e, 0xe6, 0x62, 0x28, 0xcc, 0xc8, 0x23, + 0x74, 0xee, 0xef, 0xb3, 0x01, 0x7b, 0xe1, 0x73, 0x38, 0x46, 0xda, 0x3f, 0x60, 0x13, 0x24, 0xc4, + 0x3c, 0xe9, 0x2d, 0x17, 0xd0, 0x23, 0x9a, 0xaf, 0x91, 0x84, 0xae, 0x55, 0x4b, 0x4d, 0xc3, 0x13, + 0x2d, 0x0b, 0x98, 0x85, 0x5e, 0x90, 0x8a, 0x07, 0x5f, 0xb4, 0xe0, 0xee, 0x82, 0x69, 0xdc, 0x34, + 0x1c, 0xec, 0xd5, 0x92, 0x09, 0x30, 0x0a, 0x62, 0xf1, 0x07, 0xf4, 0x2c, 0xe9, 0xa0, 0x6b, 0x44, + 0xa0, 0xfb, 0x6b, 0x14, 0xd2, 0xfe, 0xe4, 0xc2, 0xa8, 0xc9, 0xd1, 0x4c, 0x1e, 0xac, 0x67, 0x2b, + 0x70, 0xa2, 0x6e, 0x6d, 0x6e, 0xb6, 0xb0, 0x27, 0x26, 0x4c, 0xbd, 0x33, 0x91, 0x3e, 0x4c, 0xb8, + 0xc8, 0x4e, 0x90, 0x75, 0x9f, 0xe1, 0x1f, 0x25, 0x73, 0x5f, 0xc4, 0x13, 0x53, 0x91, 0xb3, 0x28, + 0x22, 0xae, 0x9e, 0x7c, 0x86, 0xa0, 0x20, 0x17, 0xf0, 0x59, 0x9a, 0x6c, 0xf2, 0x40, 0x7c, 0x29, + 0x0d, 0xd3, 0xf4, 0xe6, 0x4a, 0x4f, 0x41, 0xef, 0x19, 0x22, 0x00, 0xe8, 0x87, 0x29, 0x59, 0x3f, + 0x5b, 0x22, 0x13, 0x81, 0x93, 0x10, 0x11, 0xcb, 0x05, 0x55, 0xe9, 0x4b, 0x2e, 0x79, 0xd1, 0xfe, + 0xa9, 0x02, 0x93, 0x8b, 0xd8, 0x6b, 0x69, 0x9d, 0xd8, 0x3d, 0xd1, 0x19, 0x98, 0x22, 0xd7, 0xb7, + 0x55, 0xd9, 0x31, 0x49, 0xba, 0x6a, 0x26, 0xa4, 0xa9, 0xd7, 0xc1, 0xf4, 0x05, 0xbc, 0x61, 0xd9, + 0xb8, 0x2a, 0x9c, 0xa5, 0x14, 0x13, 0x43, 0xc2, 0xd3, 0x09, 0x71, 0xd0, 0xe6, 0x44, 0x6c, 0x6e, + 0xda, 0x2f, 0x4c, 0xae, 0x2a, 0x21, 0x63, 0xce, 0x13, 0x60, 0x9c, 0x21, 0xef, 0x99, 0x69, 0x51, + 0xfd, 0xa2, 0x9f, 0x17, 0xbd, 0xde, 0x47, 0xb4, 0x24, 0x20, 0xfa, 0xd8, 0x38, 0x4c, 0x8c, 0xe4, + 0x7e, 0xf7, 0x3c, 0x57, 0xfe, 0xdc, 0x5e, 0xb9, 0xd9, 0x41, 0x2b, 0xf1, 0x30, 0x3d, 0x0d, 0xe0, + 0x37, 0x0e, 0x2f, 0xac, 0x05, 0x97, 0x22, 0x46, 0xae, 0x8f, 0x3c, 0xa8, 0xd7, 0x2d, 0x0e, 0xc2, + 0xce, 0x90, 0x81, 0x91, 0x3b, 0xe0, 0x27, 0xc3, 0x49, 0xf2, 0xe8, 0x7c, 0x46, 0x81, 0x13, 0xfe, + 0xf9, 0xa3, 0x65, 0xbd, 0x13, 0xb4, 0xbb, 0x62, 0x3c, 0x88, 0x84, 0x03, 0x1f, 0x7e, 0x63, 0xf9, + 0x6e, 0xbc, 0x31, 0xa3, 0x27, 0x27, 0xc3, 0x45, 0x47, 0xbd, 0x09, 0x8e, 0x99, 0x3b, 0xdb, 0xbe, + 0xd4, 0x49, 0x8b, 0x67, 0x2d, 0x7c, 0xff, 0x87, 0x38, 0x23, 0x93, 0x0c, 0xf3, 0x23, 0x99, 0x53, + 0x0a, 0x47, 0xba, 0x1e, 0x13, 0x0b, 0x46, 0xf4, 0xcf, 0xa9, 0x58, 0xbd, 0x5b, 0xff, 0x33, 0x5f, + 0x31, 0x7a, 0xa9, 0x43, 0x3c, 0xf0, 0x75, 0x66, 0x0c, 0xb2, 0xa5, 0xed, 0xb6, 0xb3, 0x77, 0xe6, + 0x91, 0x30, 0x5d, 0x73, 0x6c, 0xac, 0x6f, 0x73, 0x3b, 0x03, 0x8e, 0x75, 0x11, 0x9b, 0xde, 0xce, + 0x00, 0x79, 0xb9, 0xed, 0x56, 0x18, 0x33, 0xad, 0x75, 0x7d, 0xc7, 0xd9, 0x52, 0xaf, 0xde, 0x77, + 0xa4, 0x9e, 0x81, 0x5f, 0x65, 0x31, 0x8c, 0xbe, 0x7e, 0x3b, 0x59, 0x1b, 0xce, 0x99, 0x56, 0x61, + 0xc7, 0xd9, 0x9a, 0xbb, 0xea, 0x53, 0x7f, 0x7b, 0x3a, 0xf5, 0xd9, 0xbf, 0x3d, 0x9d, 0xfa, 0xda, + 0xdf, 0x9e, 0x4e, 0xfd, 0xda, 0x37, 0x4e, 0x1f, 0xf9, 0xec, 0x37, 0x4e, 0x1f, 0xf9, 0xd2, 0x37, + 0x4e, 0x1f, 0xf9, 0xb9, 0x74, 0xfb, 0xc2, 0x85, 0x1c, 0xa1, 0xf2, 0xb8, 0xff, 0x2f, 0x00, 0x00, + 0xff, 0xff, 0xc4, 0xc4, 0xba, 0x9a, 0x02, 0x04, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -90123,6 +90366,145 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) MarshalToSiz return len(dAtA) - i, nil } +func (m *RpcObjectTypeListConflictingRelations) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeListConflictingRelations) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeListConflictingRelations) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TypeObjectId) > 0 { + i -= len(m.TypeObjectId) + copy(dAtA[i:], m.TypeObjectId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TypeObjectId))) + i-- + dAtA[i] = 0x12 + } + if len(m.SpaceId) > 0 { + i -= len(m.SpaceId) + copy(dAtA[i:], m.SpaceId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.SpaceId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RelationIds) > 0 { + for iNdEx := len(m.RelationIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RelationIds[iNdEx]) + copy(dAtA[i:], m.RelationIds[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationIds[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcRelation) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -124625,6 +125007,67 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Size() (n in return n } +func (m *RpcObjectTypeListConflictingRelations) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectTypeListConflictingRelationsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SpaceId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + l = len(m.TypeObjectId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectTypeListConflictingRelationsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + if len(m.RelationIds) > 0 { + for _, s := range m.RelationIds { + l = len(s) + n += 1 + l + sovCommands(uint64(l)) + } + } + return n +} + +func (m *RpcObjectTypeListConflictingRelationsResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcRelation) Size() (n int) { if m == nil { return 0 @@ -183187,6 +183630,389 @@ func (m *RpcObjectTypeRecommendedFeaturedRelationsSetResponseError) Unmarshal(dA } return nil } +func (m *RpcObjectTypeListConflictingRelations) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListConflictingRelations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListConflictingRelations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeListConflictingRelationsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpaceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpaceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TypeObjectId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TypeObjectId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeListConflictingRelationsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcObjectTypeListConflictingRelationsResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RelationIds = append(m.RelationIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectTypeListConflictingRelationsResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcObjectTypeListConflictingRelationsResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcRelation) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index ae669c65a..841943e6b 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -3173,6 +3173,30 @@ message Rpc { } } } + + message ListConflictingRelations { + message Request { + string spaceId = 1; + string typeObjectId = 2; + } + + message Response { + Error error = 1; + repeated string relationIds = 2; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + READONLY_OBJECT_TYPE = 3; + } + } + } + } } message Relation { diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index 52bd83f1a..a8ca4ce39 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -150,6 +150,7 @@ service ClientCommands { rpc ObjectTypeRelationRemove (anytype.Rpc.ObjectType.Relation.Remove.Request) returns (anytype.Rpc.ObjectType.Relation.Remove.Response); rpc ObjectTypeRecommendedRelationsSet (anytype.Rpc.ObjectType.Recommended.RelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.RelationsSet.Response); rpc ObjectTypeRecommendedFeaturedRelationsSet (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Request) returns (anytype.Rpc.ObjectType.Recommended.FeaturedRelationsSet.Response); + rpc ObjectTypeListConflictingRelations (anytype.Rpc.ObjectType.ListConflictingRelations.Request) returns (anytype.Rpc.ObjectType.ListConflictingRelations.Response); rpc HistoryShowVersion (anytype.Rpc.History.ShowVersion.Request) returns (anytype.Rpc.History.ShowVersion.Response); rpc HistoryGetVersions (anytype.Rpc.History.GetVersions.Request) returns (anytype.Rpc.History.GetVersions.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 3197f06e5..d0e88d2b6 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,341 +26,343 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5340 bytes of a gzipped FileDescriptorProto + // 5370 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x1c, 0x59, - 0x56, 0xc0, 0xb7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, - 0x24, 0x4e, 0x62, 0xbb, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xd8, 0x63, 0xd6, 0x76, - 0x8c, 0xbb, 0x9d, 0x48, 0x23, 0x21, 0x51, 0xee, 0xba, 0x6e, 0x17, 0xae, 0xae, 0x5b, 0x5b, 0x75, - 0xbb, 0x9d, 0x5e, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x2b, 0xbe, 0xc4, 0x1b, 0x12, 0x7f, 0x01, - 0x12, 0xff, 0x04, 0x8f, 0xfb, 0xc8, 0x23, 0x9a, 0x79, 0xe5, 0x8f, 0x40, 0x75, 0xeb, 0x7e, 0x9e, - 0x3a, 0xe7, 0x56, 0x79, 0x78, 0x4a, 0xd4, 0xe7, 0x77, 0xce, 0xb9, 0x9f, 0xe7, 0x9e, 0x7b, 0xeb, - 0x56, 0x39, 0xba, 0x5d, 0x9c, 0x6f, 0x15, 0x25, 0x17, 0xbc, 0xda, 0xaa, 0x58, 0xb9, 0x4c, 0xa7, - 0x4c, 0xff, 0x3b, 0x92, 0x3f, 0x0f, 0xdf, 0x8a, 0xf3, 0x95, 0x58, 0x15, 0xec, 0xfd, 0xf7, 0x2c, - 0x39, 0xe5, 0xf3, 0x79, 0x9c, 0x27, 0x55, 0x83, 0xbc, 0xff, 0xae, 0x95, 0xb0, 0x25, 0xcb, 0x85, - 0xfa, 0xfd, 0xe9, 0x7f, 0xfe, 0xef, 0x20, 0x7a, 0x7b, 0x27, 0x4b, 0x59, 0x2e, 0x76, 0x94, 0xc6, - 0xf0, 0xcb, 0xe8, 0x3b, 0xdb, 0x45, 0xb1, 0xcf, 0xc4, 0x2b, 0x56, 0x56, 0x29, 0xcf, 0x87, 0x1f, - 0x8e, 0x94, 0x83, 0xd1, 0x69, 0x31, 0x1d, 0x6d, 0x17, 0xc5, 0xc8, 0x0a, 0x47, 0xa7, 0xec, 0xc7, - 0x0b, 0x56, 0x89, 0xf7, 0xef, 0x85, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x17, 0xd1, 0xaf, 0x6c, - 0x17, 0xc5, 0x98, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x2c, 0x62, 0xc1, 0x86, 0x6b, 0x2d, 0x55, 0x1f, - 0x30, 0x3e, 0x1e, 0x76, 0x83, 0xca, 0xcf, 0x24, 0xfa, 0x76, 0xed, 0xe7, 0x72, 0x21, 0x12, 0x7e, - 0x9d, 0x0f, 0x3f, 0x68, 0x2b, 0x2a, 0x91, 0xb1, 0x7d, 0x37, 0x84, 0x28, 0xab, 0xaf, 0xa3, 0x5f, - 0x7c, 0x1d, 0x67, 0x19, 0x13, 0x3b, 0x25, 0xab, 0x0b, 0xee, 0xeb, 0x34, 0xa2, 0x51, 0x23, 0x33, - 0x76, 0x3f, 0x0c, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0x77, 0x1a, 0xc9, 0x29, 0x9b, 0xf2, 0x25, 0x2b, - 0x87, 0xa8, 0x96, 0x12, 0x12, 0x4d, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x2f, 0x59, 0x29, 0x70, - 0xdb, 0x4a, 0x18, 0xb6, 0x6d, 0x21, 0x65, 0xfb, 0xaf, 0x07, 0xd1, 0xf7, 0xb6, 0xa7, 0x53, 0xbe, - 0xc8, 0xc5, 0x21, 0x9f, 0xc6, 0xd9, 0x61, 0x9a, 0x5f, 0x1d, 0xb3, 0xeb, 0x9d, 0xcb, 0x9a, 0xcf, - 0x67, 0x6c, 0xf8, 0xcc, 0x6f, 0xd5, 0x06, 0x1d, 0x19, 0x76, 0xe4, 0xc2, 0xc6, 0xf7, 0xc7, 0x37, - 0x53, 0x52, 0x65, 0xf9, 0xfb, 0x41, 0x74, 0x0b, 0x96, 0x65, 0xcc, 0xb3, 0x25, 0xb3, 0xa5, 0xf9, - 0xa4, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7a, 0x53, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xc7, 0x1d, - 0x2e, 0x63, 0x56, 0xc9, 0xe9, 0xf4, 0x88, 0x1e, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0xf7, 0x41, 0x95, - 0xb7, 0x34, 0x1a, 0x2a, 0x6f, 0x19, 0xaf, 0x8c, 0xb3, 0x87, 0xa8, 0x05, 0x87, 0x30, 0xbe, 0x1e, - 0xf5, 0x20, 0x95, 0xab, 0x3f, 0x88, 0x7e, 0xe9, 0x35, 0x2f, 0xaf, 0xaa, 0x22, 0x9e, 0x32, 0x35, - 0x15, 0xee, 0xfb, 0xda, 0x5a, 0x0a, 0x67, 0xc3, 0x83, 0x2e, 0xcc, 0x19, 0xb4, 0x5a, 0xf8, 0xb2, - 0x60, 0x30, 0x06, 0x59, 0xc5, 0x5a, 0x48, 0x0d, 0x5a, 0x08, 0x29, 0xdb, 0x57, 0xd1, 0xd0, 0xda, - 0x3e, 0xff, 0x43, 0x36, 0x15, 0xdb, 0x49, 0x02, 0x7b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x9d, 0x24, - 0x54, 0xaf, 0xe0, 0xa8, 0x72, 0x76, 0x1d, 0xbd, 0x0b, 0x9c, 0x1d, 0xa6, 0x95, 0x74, 0xb8, 0x19, - 0xb6, 0xa2, 0x30, 0xe3, 0x74, 0xd4, 0x17, 0x57, 0x8e, 0xff, 0x74, 0x10, 0x7d, 0x17, 0xf1, 0x7c, - 0xca, 0xe6, 0x7c, 0xc9, 0x86, 0x4f, 0xba, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xd1, 0x0d, 0x34, 0x90, - 0x61, 0x32, 0x66, 0x19, 0x9b, 0x0a, 0x72, 0x98, 0x34, 0xe2, 0xce, 0x61, 0x62, 0x30, 0x67, 0x86, - 0x69, 0xe1, 0x3e, 0x13, 0x3b, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xfb, 0xd2, 0x22, 0x9d, 0x7d, 0xe9, - 0xa1, 0x48, 0x7d, 0xf6, 0x99, 0xd8, 0xce, 0x32, 0xb2, 0x3e, 0x8d, 0xb8, 0xb3, 0x3e, 0x06, 0x53, - 0x1e, 0xa6, 0xd1, 0x2f, 0x3b, 0x2d, 0x26, 0x0e, 0xf2, 0x0b, 0x3e, 0xa4, 0xdb, 0x42, 0xca, 0x8d, - 0x8f, 0xb5, 0x4e, 0x0e, 0xa9, 0xc6, 0x8b, 0x37, 0x05, 0x2f, 0xe9, 0x6e, 0x69, 0xc4, 0x9d, 0xd5, - 0x30, 0x98, 0xf2, 0xf0, 0xfb, 0xd1, 0xdb, 0x2a, 0x4a, 0xea, 0xf5, 0xec, 0x1e, 0x1a, 0x42, 0xe1, - 0x82, 0x76, 0xbf, 0x83, 0xb2, 0xc1, 0x41, 0xc9, 0x54, 0xf0, 0xf9, 0x10, 0xd5, 0x03, 0xa1, 0xe7, - 0x5e, 0x18, 0x6a, 0xd9, 0xde, 0x65, 0x19, 0x23, 0x6d, 0x37, 0xc2, 0x0e, 0xdb, 0x06, 0x52, 0xb6, - 0xcb, 0xe8, 0xd7, 0x4c, 0xb3, 0xd4, 0xeb, 0xa8, 0x94, 0xd7, 0x41, 0x7a, 0x9d, 0xa8, 0xb7, 0x0b, - 0x19, 0x5f, 0x1b, 0xfd, 0xe0, 0x56, 0x7d, 0xd4, 0x0c, 0xc4, 0xeb, 0x03, 0xe6, 0xdf, 0xbd, 0x30, - 0xa4, 0x6c, 0xff, 0xcd, 0x20, 0xfa, 0xbe, 0x92, 0xbd, 0xc8, 0xe3, 0xf3, 0x8c, 0xc9, 0x25, 0xf1, - 0x98, 0x89, 0x6b, 0x5e, 0x5e, 0x8d, 0x57, 0xf9, 0x94, 0x58, 0xfe, 0x71, 0xb8, 0x63, 0xf9, 0x27, - 0x95, 0x9c, 0x8c, 0x4f, 0x55, 0x54, 0xf0, 0x02, 0x66, 0x7c, 0xba, 0x06, 0x82, 0x17, 0x54, 0xc6, - 0xe7, 0x23, 0x2d, 0xab, 0x47, 0x75, 0xd8, 0xc4, 0xad, 0x1e, 0xb9, 0x71, 0xf2, 0x6e, 0x08, 0xb1, - 0x61, 0x4b, 0x0f, 0x60, 0x9e, 0x5f, 0xa4, 0xb3, 0xb3, 0x22, 0xa9, 0x87, 0xf1, 0x23, 0x7c, 0x84, - 0x3a, 0x08, 0x11, 0xb6, 0x08, 0x54, 0x79, 0xfb, 0x3b, 0x9b, 0x18, 0xa9, 0xa9, 0xb4, 0x57, 0xf2, - 0xf9, 0x21, 0x9b, 0xc5, 0xd3, 0x95, 0x9a, 0xff, 0x1f, 0x87, 0x26, 0x1e, 0xa4, 0x4d, 0x21, 0x3e, - 0xb9, 0xa1, 0x96, 0x2a, 0xcf, 0xbf, 0x0d, 0xa2, 0x7b, 0xba, 0xfa, 0x97, 0x71, 0x3e, 0x63, 0xaa, - 0x3f, 0x9b, 0xd2, 0x6f, 0xe7, 0xc9, 0x29, 0xab, 0x44, 0x5c, 0x8a, 0xe1, 0x0f, 0xf0, 0x4a, 0x86, - 0x74, 0x4c, 0xd9, 0x7e, 0xf8, 0x8d, 0x74, 0x6d, 0xaf, 0x8f, 0xeb, 0xc0, 0xa6, 0x42, 0x80, 0xdf, - 0xeb, 0x52, 0x02, 0x03, 0xc0, 0xdd, 0x10, 0x62, 0x7b, 0x5d, 0x0a, 0x0e, 0xf2, 0x65, 0x2a, 0xd8, - 0x3e, 0xcb, 0x59, 0xd9, 0xee, 0xf5, 0x46, 0xd5, 0x47, 0x88, 0x5e, 0x27, 0x50, 0x1b, 0x6c, 0x3c, - 0x6f, 0x66, 0x71, 0x5c, 0x0f, 0x18, 0x69, 0x2d, 0x8f, 0x1b, 0xfd, 0x60, 0xbb, 0xbb, 0x73, 0x7c, - 0x9e, 0xb2, 0x25, 0xbf, 0x82, 0xbb, 0x3b, 0xd7, 0x44, 0x03, 0x10, 0xbb, 0x3b, 0x14, 0xb4, 0x2b, - 0x98, 0xe3, 0xe7, 0x55, 0xca, 0xae, 0xc1, 0x0a, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x05, 0x43, 0x30, - 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0xe6, 0xc3, 0xdb, 0x88, 0x52, 0x2d, 0x30, - 0x56, 0xef, 0xd0, 0x00, 0x28, 0x71, 0xfd, 0xeb, 0x4e, 0x9c, 0x4f, 0x59, 0x86, 0x96, 0xd8, 0x8a, - 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x1d, 0xbf, 0xc6, 0x97, 0x71, 0x99, 0xe6, 0xb3, - 0x21, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0xdb, 0x45, 0x51, 0xd6, - 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x2d, 0x14, 0xf7, 0xb6, 0xcb, 0xa6, 0x59, 0x9a, - 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x8b, 0x82, 0xc1, 0x7b, 0xc8, 0xe2, 0x25, 0xd3, 0x35, 0xc3, - 0x5a, 0xc6, 0x05, 0x82, 0x83, 0x17, 0x80, 0x76, 0x9f, 0x26, 0xc5, 0x47, 0xf1, 0x15, 0xab, 0x1b, - 0x98, 0xd5, 0xeb, 0xda, 0x10, 0xd3, 0xf7, 0x08, 0x62, 0x9f, 0x86, 0x93, 0xca, 0xd5, 0x22, 0x7a, - 0x57, 0xca, 0x4f, 0xe2, 0x52, 0xa4, 0xd3, 0xb4, 0x88, 0x73, 0x9d, 0xff, 0x63, 0xf3, 0xba, 0x45, - 0x19, 0x97, 0x9b, 0x3d, 0x69, 0xe5, 0xf6, 0x5f, 0x06, 0xd1, 0x07, 0xd0, 0xef, 0x09, 0x2b, 0xe7, - 0xa9, 0xdc, 0x46, 0x56, 0x4d, 0x10, 0x1e, 0x7e, 0x16, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xfc, - 0xe6, 0x8a, 0x36, 0x19, 0x1a, 0xab, 0xd4, 0xfa, 0x65, 0x99, 0xb4, 0x8e, 0x59, 0xc6, 0x3a, 0x5f, - 0x96, 0x42, 0x22, 0x19, 0x6a, 0x41, 0x60, 0x86, 0x9f, 0xe5, 0x95, 0xb6, 0x8e, 0xcd, 0x70, 0x2b, - 0x0e, 0xce, 0x70, 0x0f, 0x53, 0x1e, 0x7e, 0x2f, 0x8a, 0x9a, 0xcd, 0x96, 0xdc, 0x10, 0xfb, 0x31, - 0x47, 0xed, 0xc2, 0xbc, 0xdd, 0xf0, 0x07, 0x01, 0xc2, 0x2e, 0x74, 0xcd, 0xef, 0x72, 0x9f, 0x3f, - 0x44, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbe, 0xe4, 0xd7, 0x78, 0x41, 0x6b, - 0x49, 0xb8, 0xa0, 0x8a, 0xb0, 0x27, 0x6f, 0xaa, 0xa0, 0xd8, 0xc9, 0x9b, 0x2e, 0x46, 0xe8, 0xe4, - 0x0d, 0x32, 0xca, 0x30, 0x8f, 0x7e, 0xd5, 0x35, 0xfc, 0x9c, 0xf3, 0xab, 0x79, 0x5c, 0x5e, 0x0d, - 0x1f, 0xd3, 0xca, 0x9a, 0x31, 0x8e, 0xd6, 0x7b, 0xb1, 0x36, 0xa8, 0xb9, 0x0e, 0xeb, 0x34, 0xe9, - 0xac, 0xcc, 0x40, 0x50, 0xf3, 0x6c, 0x28, 0x84, 0x08, 0x6a, 0x04, 0x6a, 0x47, 0xa5, 0xeb, 0x6d, - 0xcc, 0xe0, 0x5e, 0xcf, 0x53, 0x1f, 0x33, 0x6a, 0xaf, 0x87, 0x60, 0x70, 0x08, 0xed, 0x97, 0x71, - 0x71, 0x89, 0x0f, 0x21, 0x29, 0x0a, 0x0f, 0x21, 0x8d, 0xc0, 0xfe, 0x1e, 0xb3, 0xb8, 0x9c, 0x5e, - 0xe2, 0xfd, 0xdd, 0xc8, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0x8d, 0xe0, 0x75, 0x2a, 0x2e, 0x8f, - 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0xb7, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xc7, 0x8b, - 0xf3, 0x6a, 0x5a, 0xa6, 0xe7, 0x6c, 0x18, 0xb0, 0x62, 0x20, 0x22, 0x0f, 0x23, 0x61, 0xe5, 0xf3, - 0xa7, 0x83, 0xe8, 0xb6, 0xee, 0x76, 0x5e, 0x55, 0x2a, 0xe6, 0xf9, 0xee, 0x3f, 0xc1, 0xfb, 0x97, - 0xc0, 0x89, 0xb3, 0xd0, 0x1e, 0x6a, 0xce, 0x9a, 0x80, 0x17, 0xe9, 0x2c, 0xaf, 0x4c, 0xa1, 0x3e, - 0xeb, 0x63, 0xdd, 0x51, 0x20, 0xd6, 0x84, 0x5e, 0x8a, 0x76, 0x39, 0x56, 0xfd, 0xa3, 0x65, 0x07, - 0x49, 0x05, 0x96, 0x63, 0xdd, 0xde, 0x0e, 0x41, 0x2c, 0xc7, 0x38, 0x09, 0x87, 0xc2, 0x7e, 0xc9, - 0x17, 0x45, 0xd5, 0x31, 0x14, 0x00, 0x14, 0x1e, 0x0a, 0x6d, 0x58, 0xf9, 0x7c, 0x13, 0xfd, 0xba, - 0x3b, 0xfc, 0xdc, 0xc6, 0xde, 0xa4, 0xc7, 0x14, 0xd6, 0xc4, 0xa3, 0xbe, 0xb8, 0x4d, 0x48, 0xb5, - 0x67, 0xb1, 0xcb, 0x44, 0x9c, 0x66, 0xd5, 0xf0, 0x01, 0x6e, 0x43, 0xcb, 0x89, 0x84, 0x14, 0xe3, - 0x60, 0x7c, 0xdb, 0x5d, 0x14, 0x59, 0x3a, 0x6d, 0x9f, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, - 0x17, 0x83, 0xf1, 0xba, 0x5e, 0xf2, 0xe5, 0x7f, 0x26, 0xab, 0x82, 0xe1, 0xf1, 0xda, 0x43, 0xc2, - 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x63, 0x26, 0x0e, 0xe3, 0x15, 0x5f, 0x10, 0xf1, 0xda, 0x88, 0xc3, - 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0xb9, 0x60, 0x65, 0x1e, 0x67, 0x7b, 0x59, 0x3c, - 0xab, 0x86, 0x44, 0x8c, 0xf1, 0x29, 0x22, 0x27, 0xa4, 0x69, 0xa4, 0x19, 0x0f, 0xaa, 0xbd, 0x78, - 0xc9, 0xcb, 0x54, 0xd0, 0xcd, 0x68, 0x91, 0xce, 0x66, 0xf4, 0x50, 0xd4, 0xdb, 0x76, 0x39, 0xbd, - 0x4c, 0x97, 0x2c, 0x09, 0x78, 0xd3, 0x48, 0x0f, 0x6f, 0x0e, 0x8a, 0x74, 0xda, 0x98, 0x2f, 0xca, - 0x29, 0x23, 0x3b, 0xad, 0x11, 0x77, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x44, 0xbf, 0xd1, - 0x48, 0xdd, 0xe3, 0xe1, 0xdd, 0xb8, 0xba, 0x3c, 0xe7, 0x71, 0x99, 0x0c, 0x3f, 0xc2, 0xec, 0xa0, - 0xa8, 0x71, 0xfd, 0xf4, 0x26, 0x2a, 0xb0, 0x59, 0x0f, 0xd3, 0xca, 0x99, 0x71, 0x68, 0xb3, 0x7a, - 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x03, 0x88, 0x94, 0x37, 0x47, 0x31, 0x0f, 0x48, 0x7d, 0xff, 0x3c, - 0x66, 0xad, 0x93, 0x83, 0xf1, 0xb1, 0x16, 0xfa, 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x8f, 0x98, 0x51, - 0x5f, 0x9c, 0xf4, 0x6c, 0x66, 0x45, 0xd8, 0x73, 0x6b, 0x66, 0x8c, 0xfa, 0xe2, 0x84, 0x67, 0x27, - 0xac, 0x85, 0x3c, 0x23, 0xa1, 0x6d, 0xd4, 0x17, 0x87, 0xd9, 0x97, 0x62, 0xf4, 0xba, 0xf0, 0x38, - 0x60, 0x07, 0xae, 0x0d, 0xeb, 0xbd, 0x58, 0xe5, 0xf0, 0xaf, 0x06, 0xd1, 0xf7, 0xac, 0xc7, 0x23, - 0x9e, 0xa4, 0x17, 0xab, 0x06, 0x7a, 0x15, 0x67, 0x0b, 0x56, 0x0d, 0x9f, 0x52, 0xd6, 0xda, 0xac, - 0x29, 0xc1, 0xb3, 0x1b, 0xe9, 0xc0, 0xb9, 0xb3, 0x5d, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, - 0xce, 0x1d, 0x0f, 0x09, 0xcf, 0x1d, 0x88, 0xc2, 0xac, 0x7c, 0xc2, 0xeb, 0x9c, 0x1f, 0xcd, 0xca, - 0xa5, 0x28, 0x9c, 0x95, 0x6b, 0x04, 0xe6, 0x4a, 0x13, 0xbe, 0xc3, 0xb3, 0x8c, 0x4d, 0x45, 0xfb, - 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x64, - 0xcf, 0x57, 0x87, 0x69, 0x7e, 0x35, 0xc4, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, - 0xaa, 0x67, 0x79, 0xc2, 0xf1, 0xbd, 0x6a, 0x2d, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, - 0xca, 0x64, 0x2d, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, - 0xfd, 0x5a, 0x27, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0xee, 0x31, 0x31, 0xbd, 0xc4, 0x47, 0xa8, 0x87, - 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x26, 0xdc, 0x6c, 0xba, 0x1f, 0xe0, 0xe3, 0xa3, 0xb5, 0xe1, - 0x5e, 0xeb, 0xe4, 0xe0, 0x36, 0xf2, 0x60, 0x2e, 0xdb, 0x0c, 0x1d, 0xe4, 0x8d, 0x2c, 0xbc, 0x8d, - 0x34, 0x0c, 0x2c, 0x7d, 0x23, 0xa8, 0x9b, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, - 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x23, 0x3d, 0xe6, 0xf5, 0x1c, 0x79, 0x15, 0x67, 0x69, 0x12, 0x0b, - 0x36, 0xe1, 0x57, 0x2c, 0xc7, 0x77, 0x4c, 0xaa, 0xb4, 0x0d, 0x3f, 0xf2, 0x14, 0xc2, 0x3b, 0xa6, - 0xb0, 0x22, 0x1c, 0x27, 0x0d, 0x7d, 0x56, 0xb1, 0x9d, 0xb8, 0x22, 0x22, 0x99, 0x87, 0x84, 0xc7, - 0x09, 0x44, 0x61, 0xbe, 0xda, 0xc8, 0x5f, 0xbc, 0x29, 0x58, 0x99, 0xb2, 0x7c, 0xca, 0xf0, 0x7c, - 0x15, 0x52, 0xe1, 0x7c, 0x15, 0xa1, 0xe1, 0x5e, 0x6d, 0x37, 0x16, 0xec, 0xf9, 0x6a, 0x92, 0xce, - 0x59, 0x25, 0xe2, 0x79, 0x81, 0xef, 0xd5, 0x00, 0x14, 0xde, 0xab, 0xb5, 0xe1, 0xd6, 0xd1, 0x90, - 0x09, 0x88, 0xed, 0x9b, 0x29, 0x90, 0x08, 0xdc, 0x4c, 0x21, 0x50, 0xd8, 0xb0, 0x16, 0x40, 0x0f, - 0x87, 0x5b, 0x56, 0x82, 0x87, 0xc3, 0x34, 0xdd, 0x3a, 0x70, 0x33, 0xcc, 0xb8, 0x9e, 0x9a, 0x1d, - 0x45, 0x1f, 0xbb, 0x53, 0x74, 0xbd, 0x17, 0x8b, 0x9f, 0xf0, 0x9d, 0xb2, 0x2c, 0x96, 0xcb, 0x56, - 0xe0, 0x18, 0x4d, 0x33, 0x7d, 0x4e, 0xf8, 0x1c, 0x56, 0x39, 0xfc, 0xb3, 0x41, 0xf4, 0x3e, 0xe6, - 0xf1, 0x65, 0x21, 0xfd, 0x3e, 0xe9, 0xb6, 0xd5, 0x90, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, - 0x1f, 0x45, 0xef, 0x69, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, - 0xee, 0xb7, 0x7a, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x02, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, - 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x75, 0x2a, 0x2e, 0x65, 0xbe, 0x05, 0x66, 0xa7, - 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x7a, 0x6e, 0x62, 0xb1, 0xdc, - 0x18, 0x72, 0x67, 0xe6, 0xc3, 0x6e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xc7, 0x21, 0x0b, - 0x60, 0xfb, 0xb3, 0xde, 0x8b, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x6e, 0xab, 0x62, 0x7b, 0x2c, 0x16, - 0x8b, 0x92, 0x25, 0xc3, 0xad, 0x8e, 0x72, 0x6b, 0xd0, 0xb8, 0x7e, 0xd2, 0x5f, 0xa1, 0x95, 0xa3, - 0x6b, 0xae, 0x19, 0x56, 0xa6, 0x0c, 0x4f, 0x43, 0x26, 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0xad, - 0x6d, 0xb6, 0x3b, 0xba, 0xb6, 0x97, 0x71, 0x9a, 0xc9, 0x87, 0x74, 0x1f, 0x85, 0x8c, 0x7a, 0x68, - 0x70, 0x9b, 0x4d, 0xaa, 0xb4, 0x22, 0xb3, 0x9c, 0xe3, 0xce, 0xf6, 0x6c, 0x83, 0x8e, 0x04, 0xc8, - 0xee, 0x6c, 0xb3, 0x27, 0xad, 0xdc, 0x0a, 0xbd, 0xe4, 0xd5, 0x3f, 0xbb, 0x83, 0x1c, 0xf3, 0xaa, - 0x54, 0x91, 0x91, 0xbe, 0xd9, 0x93, 0x56, 0x5e, 0xff, 0x38, 0x7a, 0xaf, 0xed, 0x55, 0x2d, 0x44, - 0x5b, 0x9d, 0xa6, 0xc0, 0x5a, 0xf4, 0xa4, 0xbf, 0x82, 0x72, 0xff, 0xaf, 0xe6, 0x5c, 0xba, 0xf1, - 0x3f, 0xe5, 0xf3, 0x39, 0xcb, 0x13, 0x96, 0x68, 0x8d, 0xaa, 0xde, 0x3f, 0x7d, 0x4e, 0xdb, 0x35, - 0x0a, 0x23, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, 0xa6, 0x2a, 0xda, 0x7f, 0x0c, 0xa2, 0x47, - 0x68, 0xd1, 0xf4, 0xc0, 0xf5, 0x8a, 0xf8, 0x3b, 0x7d, 0x1c, 0x61, 0x9a, 0xa6, 0xa8, 0xdb, 0xff, - 0x0f, 0x0b, 0x76, 0x83, 0xf8, 0x45, 0x5a, 0x09, 0x5e, 0xae, 0xc6, 0x97, 0xfc, 0x5a, 0xbf, 0x3f, - 0xe0, 0xc7, 0x3e, 0x05, 0x8c, 0x1c, 0x82, 0xd8, 0x20, 0xe2, 0x64, 0xcb, 0x95, 0x7d, 0xcf, 0xa0, - 0x22, 0x5c, 0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x91, 0x5f, 0xd7, 0xca, 0xbe, 0x14, 0xb1, 0x86, - 0x17, 0xb5, 0xfd, 0x62, 0xc4, 0xc3, 0x6e, 0xd0, 0xe6, 0x7f, 0x4a, 0xbc, 0x9b, 0x5e, 0x5c, 0x98, - 0x3a, 0xe1, 0x25, 0x75, 0x11, 0x22, 0xff, 0x23, 0x50, 0xbb, 0x85, 0xd9, 0x4b, 0x33, 0x26, 0x9f, - 0x8f, 0xbc, 0xbc, 0xb8, 0xc8, 0x78, 0x9c, 0x80, 0x2d, 0x4c, 0x2d, 0x1e, 0xb9, 0x72, 0x62, 0x0b, - 0x83, 0x71, 0xf6, 0x89, 0x7b, 0x2d, 0xad, 0x47, 0x50, 0x3e, 0x4d, 0x33, 0x78, 0x9d, 0x52, 0x6a, - 0x1a, 0x21, 0xf1, 0xc4, 0xbd, 0x05, 0xd9, 0x34, 0xa3, 0x16, 0xd5, 0x41, 0x54, 0x97, 0xff, 0x7e, - 0x5b, 0xd1, 0x11, 0x13, 0x69, 0x06, 0x82, 0xd9, 0x9d, 0x7c, 0x2d, 0x3c, 0x2b, 0xa4, 0xf1, 0x3b, - 0x6d, 0xad, 0x46, 0x42, 0xec, 0xe4, 0x7d, 0xc2, 0xee, 0x48, 0xeb, 0xdf, 0x77, 0xf9, 0x75, 0x2e, - 0x8d, 0xde, 0x6d, 0xab, 0x68, 0x19, 0xb1, 0x23, 0x85, 0x8c, 0x32, 0xfc, 0xa3, 0xe8, 0xe7, 0xa5, - 0xe1, 0x92, 0x17, 0xc3, 0x5b, 0x88, 0x42, 0xe9, 0xdc, 0x7c, 0xbc, 0x4d, 0xca, 0xed, 0x05, 0x5e, - 0x33, 0x36, 0xce, 0xaa, 0x78, 0xc6, 0x86, 0xf7, 0x88, 0x1e, 0x97, 0x52, 0xe2, 0x02, 0x6f, 0x9b, - 0xf2, 0x47, 0xc5, 0x31, 0x4f, 0x94, 0x75, 0xa4, 0x86, 0x46, 0x18, 0x1a, 0x15, 0x2e, 0x64, 0x53, - 0xc3, 0xe3, 0x78, 0x99, 0xce, 0xcc, 0xf2, 0xdd, 0x04, 0xb2, 0x0a, 0xa4, 0x86, 0x96, 0x19, 0x39, - 0x10, 0x91, 0x1a, 0x92, 0xb0, 0xf2, 0xf9, 0x8f, 0x83, 0xe8, 0x8e, 0x65, 0xf6, 0xf5, 0xd9, 0xe7, - 0x41, 0x7e, 0xc1, 0xeb, 0x44, 0xf2, 0x30, 0xcd, 0xaf, 0xaa, 0xe1, 0xa7, 0x94, 0x49, 0x9c, 0x37, - 0x45, 0xf9, 0xec, 0xc6, 0x7a, 0x76, 0x0f, 0xa0, 0x0f, 0x06, 0xed, 0xed, 0x80, 0x46, 0x03, 0xec, - 0x01, 0xcc, 0xf9, 0x21, 0xe4, 0x88, 0x3d, 0x40, 0x88, 0xb7, 0x5d, 0x6c, 0x9c, 0x67, 0x3c, 0x87, - 0x5d, 0x6c, 0x2d, 0xd4, 0x42, 0xa2, 0x8b, 0x5b, 0x90, 0x8d, 0xc7, 0x5a, 0xd4, 0x9c, 0x61, 0x6d, - 0x67, 0x19, 0x88, 0xc7, 0x46, 0xd5, 0x00, 0x44, 0x3c, 0x46, 0x41, 0xe5, 0xe7, 0x34, 0xfa, 0x76, - 0xdd, 0xa4, 0x27, 0x25, 0x5b, 0xa6, 0x0c, 0x5e, 0x64, 0x71, 0x24, 0xc4, 0xfc, 0xf7, 0x09, 0x3b, - 0xb3, 0xce, 0xf2, 0xaa, 0xc8, 0xe2, 0xea, 0x52, 0x5d, 0x6d, 0xf0, 0xeb, 0xac, 0x85, 0xf0, 0x72, - 0xc3, 0xfd, 0x0e, 0xca, 0x06, 0x75, 0x2d, 0x33, 0x21, 0xe6, 0x01, 0xae, 0xda, 0x0a, 0x33, 0x6b, - 0x9d, 0x9c, 0x7d, 0x7e, 0xb0, 0x1f, 0x67, 0x19, 0x2b, 0x57, 0x5a, 0x76, 0x14, 0xe7, 0xe9, 0x05, - 0xab, 0x04, 0x78, 0x7e, 0xa0, 0xa8, 0x11, 0xc4, 0x88, 0xe7, 0x07, 0x01, 0xdc, 0xee, 0x8d, 0x80, - 0xe7, 0x83, 0x3c, 0x61, 0x6f, 0xc0, 0xde, 0x08, 0xda, 0x91, 0x0c, 0xb1, 0x37, 0xa2, 0x58, 0x7b, - 0x8e, 0xfe, 0x3c, 0xe3, 0xd3, 0x2b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, 0x25, 0x70, 0x0d, 0xb8, 0x1b, - 0x42, 0xec, 0x22, 0x20, 0x05, 0xa7, 0xac, 0xc8, 0xe2, 0x29, 0xbc, 0xcd, 0xd4, 0xe8, 0x28, 0x19, - 0xb1, 0x08, 0x40, 0x06, 0x14, 0x57, 0xdd, 0x92, 0xc2, 0x8a, 0x0b, 0x2e, 0x49, 0xdd, 0x0d, 0x21, - 0x76, 0x19, 0x94, 0x82, 0x71, 0x91, 0xa5, 0x02, 0x4c, 0x83, 0x46, 0x43, 0x4a, 0x88, 0x69, 0xe0, - 0x13, 0xc0, 0xe4, 0x11, 0x2b, 0x67, 0x0c, 0x35, 0x29, 0x25, 0x41, 0x93, 0x9a, 0xb0, 0x57, 0x76, - 0x9b, 0xba, 0xf3, 0x62, 0x05, 0xae, 0xec, 0xaa, 0x6a, 0xf1, 0x62, 0x45, 0x5c, 0xd9, 0xf5, 0x00, - 0x50, 0xc4, 0x93, 0xb8, 0x12, 0x78, 0x11, 0xa5, 0x24, 0x58, 0x44, 0x4d, 0xd8, 0x35, 0xba, 0x29, - 0xe2, 0x42, 0x80, 0x35, 0x5a, 0x15, 0xc0, 0x79, 0x9e, 0x7f, 0x9b, 0x94, 0xdb, 0x48, 0xd2, 0xf4, - 0x0a, 0x13, 0x7b, 0x29, 0xcb, 0x92, 0x0a, 0x44, 0x12, 0xd5, 0xee, 0x5a, 0x4a, 0x44, 0x92, 0x36, - 0x05, 0x86, 0x92, 0x7a, 0xda, 0x80, 0xd5, 0x0e, 0x3c, 0x68, 0xb8, 0x1b, 0x42, 0x6c, 0x7c, 0xd2, - 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x17, 0xff, 0x07, 0x78, 0x81, 0xb4, 0x9c, 0x88, 0x4f, 0x18, - 0x07, 0xa6, 0x97, 0x0e, 0xdc, 0x58, 0xc1, 0x60, 0xe8, 0xfe, 0x30, 0xc8, 0xd8, 0x8c, 0x53, 0x4a, - 0x9c, 0x07, 0xd2, 0x58, 0x6b, 0x22, 0xcf, 0xa3, 0x1f, 0x74, 0x61, 0xce, 0x2b, 0x35, 0xc6, 0xc5, - 0x11, 0x5f, 0xb2, 0x09, 0x7f, 0xf1, 0x26, 0xad, 0x44, 0x9a, 0xcf, 0xd4, 0xca, 0xfd, 0x8c, 0xb0, - 0x84, 0xc1, 0xc4, 0x2b, 0x35, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x66, 0xd7, 0x68, 0x02, - 0x01, 0x2d, 0x1a, 0x8e, 0x48, 0x20, 0x42, 0xbc, 0x3d, 0x95, 0x32, 0xce, 0xd5, 0x7b, 0xc7, 0x13, - 0xae, 0x73, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x83, 0x81, 0xa0, 0x82, 0xdd, 0x5f, 0x1a, 0xff, 0x76, - 0x8a, 0x3d, 0x24, 0xec, 0xb4, 0xa7, 0xd9, 0xa3, 0x1e, 0x24, 0xe2, 0xca, 0xde, 0xaa, 0xa0, 0x5c, - 0xb5, 0x2f, 0x55, 0x3c, 0xea, 0x41, 0x3a, 0x27, 0x5c, 0x6e, 0xb5, 0x9e, 0xc7, 0xd3, 0xab, 0x59, - 0xc9, 0x17, 0x79, 0xb2, 0xc3, 0x33, 0x5e, 0x82, 0x13, 0x2e, 0xaf, 0xd4, 0x00, 0x25, 0x4e, 0xb8, - 0x3a, 0x54, 0x6c, 0x06, 0xe7, 0x96, 0x62, 0x3b, 0x4b, 0x67, 0x70, 0x47, 0xed, 0x19, 0x92, 0x00, - 0x91, 0xc1, 0xa1, 0x20, 0x32, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0xa7, 0x71, 0xd6, 0xf8, 0xdb, 0xa2, - 0xcd, 0x78, 0x60, 0xe7, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x4e, 0x16, 0x65, 0x7e, 0x90, 0x0b, 0x4e, - 0xd6, 0x53, 0x03, 0x9d, 0xf5, 0x74, 0x40, 0x10, 0x56, 0x27, 0xec, 0x4d, 0x5d, 0x9a, 0xfa, 0x1f, - 0x2c, 0xac, 0xd6, 0xbf, 0x8f, 0x94, 0x3c, 0x14, 0x56, 0x01, 0x07, 0x2a, 0xa3, 0x9c, 0x34, 0x03, - 0x26, 0xa0, 0xed, 0x0f, 0x93, 0x87, 0xdd, 0x20, 0xee, 0x67, 0x2c, 0x56, 0x19, 0x0b, 0xf9, 0x91, - 0x40, 0x1f, 0x3f, 0x1a, 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd9, 0xf4, 0xaa, 0x75, 0x49, 0xcc, - 0x2f, 0x68, 0x83, 0x10, 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0xc1, 0x94, 0xe7, 0xa1, 0x2e, 0xaa, - 0xe5, 0x7d, 0xba, 0x48, 0x71, 0x76, 0xf3, 0x6b, 0xa4, 0x6a, 0x64, 0x36, 0xdd, 0xb4, 0x4e, 0x58, - 0x70, 0x21, 0x62, 0xf3, 0x4b, 0xc2, 0x36, 0x27, 0x87, 0x3e, 0x8f, 0xda, 0x37, 0xe8, 0x5b, 0x56, - 0x8e, 0xe8, 0x1b, 0xf4, 0x14, 0x4b, 0x57, 0xb2, 0x19, 0x23, 0x1d, 0x56, 0xfc, 0x71, 0xb2, 0xd1, - 0x0f, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x4e, 0xc6, 0xe2, 0xb2, 0xf1, 0xba, 0x19, 0x30, 0x64, 0x31, - 0x62, 0xcb, 0x13, 0xc0, 0x41, 0x08, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x21, 0xcc, - 0x37, 0xa6, 0xc0, 0x50, 0x08, 0xa3, 0x14, 0xc0, 0xb8, 0x95, 0xe7, 0x41, 0x4c, 0x1c, 0xc7, 0x73, - 0x34, 0x63, 0x6b, 0xce, 0x7a, 0x1a, 0x79, 0x68, 0xdc, 0x02, 0xce, 0x79, 0x64, 0xea, 0x7a, 0x99, - 0xc4, 0xe5, 0xcc, 0x9c, 0x6e, 0x24, 0xc3, 0x27, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0x99, 0x86, 0x35, - 0x40, 0xd8, 0x39, 0x98, 0xc7, 0x33, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xc3, 0x6e, - 0x10, 0xf8, 0x79, 0x95, 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, - 0x5d, 0xef, 0x66, 0x47, 0xb7, 0x9d, 0x27, 0x6a, 0x1f, 0x3b, 0x22, 0x9a, 0x07, 0x70, 0xa1, 0xec, - 0x8d, 0xe0, 0xc1, 0x1c, 0xd5, 0x07, 0xb4, 0xa1, 0x39, 0x6a, 0xce, 0x5f, 0xfb, 0xcc, 0x51, 0x0c, - 0x56, 0x3e, 0x7f, 0xa2, 0xe6, 0xe8, 0x6e, 0x2c, 0xe2, 0x3a, 0x6f, 0x7f, 0x95, 0xb2, 0x6b, 0xb5, - 0x11, 0x46, 0xea, 0xab, 0xa9, 0x91, 0x7c, 0xf1, 0x13, 0xec, 0x8a, 0xb7, 0x7a, 0xf3, 0x01, 0xdf, - 0x6a, 0x87, 0xd0, 0xe9, 0x1b, 0x6c, 0x15, 0xb6, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x8d, 0xf2, 0x4e, - 0xdf, 0xe0, 0xb5, 0xf2, 0xad, 0xde, 0xbc, 0xf2, 0xfd, 0xe7, 0x7a, 0xe2, 0xba, 0xce, 0xeb, 0x3c, - 0x6c, 0x2a, 0xd2, 0x25, 0xc3, 0xd2, 0x49, 0xdf, 0x9e, 0x41, 0x43, 0xe9, 0x24, 0xad, 0xe2, 0x7c, - 0x86, 0x08, 0x2b, 0xc5, 0x09, 0xaf, 0x52, 0x79, 0xe5, 0xe1, 0x59, 0x0f, 0xa3, 0x1a, 0x0e, 0x6d, - 0x9a, 0x42, 0x4a, 0xf6, 0xe1, 0xad, 0x87, 0xda, 0x3b, 0xe1, 0x1b, 0x01, 0x7b, 0xed, 0xab, 0xe1, - 0x9b, 0x3d, 0x69, 0xfb, 0x18, 0xd5, 0x63, 0xdc, 0xe7, 0xb7, 0xa1, 0x5e, 0x45, 0x1f, 0xe1, 0x3e, - 0xe9, 0xaf, 0xa0, 0xdc, 0xff, 0xa5, 0xde, 0x57, 0x40, 0xff, 0x6a, 0x12, 0x3c, 0xed, 0x63, 0x11, - 0x4c, 0x84, 0x67, 0x37, 0xd2, 0x51, 0x05, 0xf9, 0x5b, 0xbd, 0x81, 0xd6, 0xa8, 0x7c, 0x33, 0x46, - 0xbe, 0x49, 0xa9, 0xe6, 0x44, 0xa8, 0x5b, 0x2d, 0x0c, 0x67, 0xc6, 0x27, 0x37, 0xd4, 0x72, 0x3e, - 0x4a, 0xe5, 0xc1, 0xea, 0x0d, 0x4e, 0xa7, 0x3c, 0x21, 0xcb, 0x0e, 0x0d, 0x0b, 0xf4, 0xe9, 0x4d, - 0xd5, 0xa8, 0xb9, 0xe2, 0xc0, 0xf2, 0x1b, 0x17, 0xcf, 0x7a, 0x1a, 0xf6, 0xbe, 0x7a, 0xf1, 0xf1, - 0xcd, 0x94, 0x54, 0x59, 0xfe, 0x7d, 0x10, 0xdd, 0xf7, 0x58, 0xfb, 0x3c, 0x01, 0x9c, 0x7a, 0xfc, - 0x30, 0x60, 0x9f, 0x52, 0x32, 0x85, 0xfb, 0xad, 0x6f, 0xa6, 0x6c, 0xbf, 0xe0, 0xe4, 0xa9, 0xec, - 0xa5, 0x99, 0x60, 0x65, 0xfb, 0x0b, 0x4e, 0xbe, 0xdd, 0x86, 0x1a, 0xd1, 0x5f, 0x70, 0x0a, 0xe0, - 0xce, 0x17, 0x9c, 0x10, 0xcf, 0xe8, 0x17, 0x9c, 0x50, 0x6b, 0xc1, 0x2f, 0x38, 0x85, 0x35, 0xa8, - 0xf0, 0xae, 0x8b, 0xd0, 0x9c, 0x5b, 0xf7, 0xb2, 0xe8, 0x1f, 0x63, 0x3f, 0xbd, 0x89, 0x0a, 0xb1, - 0xc0, 0x35, 0x9c, 0xbc, 0x35, 0xd8, 0xa3, 0x4d, 0xbd, 0x9b, 0x83, 0x5b, 0xbd, 0x79, 0xe5, 0xfb, - 0xc7, 0x6a, 0x77, 0x63, 0xc2, 0x39, 0x2f, 0xe5, 0xd7, 0xbb, 0xd6, 0x43, 0xe1, 0xb9, 0xb6, 0xe0, - 0xf6, 0xfc, 0x46, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x75, 0x19, 0x02, 0x5d, 0xbe, - 0xd5, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xa4, 0xbf, - 0x82, 0x72, 0xbf, 0x54, 0x69, 0xa3, 0xeb, 0x5e, 0xf6, 0xf3, 0x66, 0x97, 0xa9, 0xb1, 0xd7, 0xcd, - 0xa3, 0xbe, 0x78, 0x28, 0x81, 0x70, 0x97, 0xd0, 0xae, 0x04, 0x02, 0x5d, 0x46, 0x3f, 0xbe, 0x99, - 0x92, 0x2a, 0xcb, 0x3f, 0x0c, 0xa2, 0xdb, 0x64, 0x59, 0xd4, 0x38, 0xf8, 0xb4, 0xaf, 0x65, 0x30, - 0x1e, 0x3e, 0xbb, 0xb1, 0x9e, 0x2a, 0xd4, 0x3f, 0x0f, 0xa2, 0x3b, 0x81, 0x42, 0x35, 0x03, 0xe4, - 0x06, 0xd6, 0xfd, 0x81, 0xf2, 0xf9, 0xcd, 0x15, 0xa9, 0xe5, 0xde, 0xc5, 0xc7, 0xed, 0x4f, 0x1b, - 0x05, 0x6c, 0x8f, 0xe9, 0x4f, 0x1b, 0x75, 0x6b, 0xc1, 0x43, 0x9e, 0xf8, 0x5c, 0x6f, 0xba, 0xd0, - 0x43, 0x1e, 0x79, 0xdf, 0x0f, 0xec, 0x39, 0xd6, 0x3a, 0x39, 0xcc, 0xc9, 0x8b, 0x37, 0x45, 0x9c, - 0x27, 0xb4, 0x93, 0x46, 0xde, 0xed, 0xc4, 0x70, 0xf0, 0x70, 0xac, 0x96, 0x9e, 0x72, 0xbd, 0x91, - 0x7a, 0x44, 0xe9, 0x1b, 0x24, 0x78, 0x38, 0xd6, 0x42, 0x09, 0x6f, 0x2a, 0x6b, 0x0c, 0x79, 0x03, - 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0x8d, 0x37, 0x73, 0xe6, 0xbe, 0x11, 0xb2, 0xd2, 0x3a, - 0x77, 0xdf, 0xec, 0x49, 0x13, 0x6e, 0xc7, 0x4c, 0x7c, 0xc1, 0xe2, 0x84, 0x95, 0x41, 0xb7, 0x86, - 0xea, 0xe5, 0xd6, 0xa5, 0x31, 0xb7, 0x3b, 0x3c, 0x5b, 0xcc, 0x73, 0xd5, 0x99, 0xa4, 0x5b, 0x97, - 0xea, 0x76, 0x0b, 0x68, 0x78, 0x2c, 0x68, 0xdd, 0xca, 0xf4, 0xf2, 0x71, 0xd8, 0x8c, 0x97, 0x55, - 0xae, 0xf7, 0x62, 0xe9, 0x7a, 0xaa, 0x61, 0xd4, 0x51, 0x4f, 0x30, 0x92, 0x36, 0x7b, 0xd2, 0xf0, - 0x7c, 0xce, 0x71, 0x6b, 0xc6, 0xd3, 0x56, 0x87, 0xad, 0xd6, 0x90, 0x7a, 0xd2, 0x5f, 0x01, 0x9e, - 0x86, 0xaa, 0x51, 0x75, 0x98, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xe1, 0x7a, 0x60, 0x98, 0x68, 0x28, - 0x78, 0x1a, 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xf9, 0xb0, 0xcb, 0x8e, 0xa4, 0x7a, 0x8d, - 0x64, 0x97, 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x8e, 0xc2, 0x0d, 0xd7, 0xaa, 0xf0, 0x56, - 0x6f, 0x1e, 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0xee, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x7e, 0x07, - 0x05, 0x4e, 0x05, 0x9b, 0x69, 0xf4, 0x3a, 0x4d, 0x66, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, - 0xa4, 0x08, 0x80, 0xa0, 0xeb, 0x9a, 0xdf, 0xcd, 0x71, 0xe8, 0x41, 0x82, 0x75, 0x9d, 0x52, 0x76, - 0xa8, 0x50, 0xd7, 0xa1, 0x34, 0x88, 0x06, 0xc6, 0xad, 0xfa, 0xb8, 0xc1, 0xe3, 0x90, 0x19, 0xf0, - 0x85, 0x83, 0xf5, 0x5e, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x74, 0x9e, 0x0a, 0x6c, 0x45, 0x71, 0x6c, - 0xd4, 0x48, 0x68, 0x45, 0x69, 0xa3, 0x54, 0xf5, 0xea, 0x1c, 0xe1, 0x20, 0x09, 0x57, 0xaf, 0x61, - 0xfa, 0x55, 0xcf, 0xb0, 0xad, 0x07, 0x9b, 0xb9, 0x19, 0x32, 0xe2, 0x52, 0x6d, 0x96, 0x91, 0xb1, - 0x2d, 0x5f, 0x7a, 0x85, 0x60, 0x28, 0xea, 0x50, 0x0a, 0xf0, 0xc0, 0xbe, 0xe6, 0xf4, 0xb3, 0xd7, - 0xa2, 0x60, 0x71, 0x19, 0xe7, 0x53, 0x74, 0x73, 0x2a, 0x0d, 0xb6, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, - 0x00, 0x8f, 0xcd, 0xfd, 0xd7, 0x55, 0x91, 0xa9, 0x60, 0xde, 0x0b, 0xf5, 0xdf, 0x56, 0x7d, 0xd4, - 0x83, 0x84, 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x1b, 0xa7, 0x1f, 0x05, 0x4c, 0xf9, 0x68, 0x68, - 0x23, 0x4c, 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc4, 0x56, 0xd8, 0xa0, 0xb6, 0xf9, - 0xa9, 0x44, 0x42, 0x83, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0x3d, 0x08, 0xe8, 0xbb, 0x5b, - 0x9f, 0xb5, 0x4e, 0x0e, 0xcc, 0x9c, 0xdd, 0x74, 0xe9, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x9b, 0x2e, - 0xf1, 0xc7, 0x04, 0xeb, 0xbd, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0x8d, 0x7e, 0x56, 0x8e, 0x14, - 0x57, 0xca, 0x5b, 0x0f, 0xcb, 0x1f, 0x76, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc9, 0xa7, 0xac, 0xaa, - 0xd4, 0xf7, 0x1e, 0xfd, 0x1b, 0x46, 0x4a, 0x36, 0x02, 0x5f, 0x7b, 0xbc, 0x17, 0x86, 0x6c, 0xcf, - 0x28, 0x91, 0xfd, 0x86, 0xd0, 0x03, 0x54, 0xb3, 0xfd, 0xf9, 0xa0, 0xb5, 0x4e, 0xce, 0x4e, 0x2f, - 0x25, 0x75, 0x3f, 0x1a, 0xf4, 0x10, 0x55, 0xc7, 0xbe, 0x17, 0xf4, 0xa8, 0x07, 0xa9, 0x5c, 0x7d, - 0x11, 0xbd, 0x75, 0xc8, 0x67, 0x63, 0x96, 0x27, 0xc3, 0xef, 0xfb, 0x57, 0x68, 0xf9, 0x6c, 0x54, - 0xff, 0x6c, 0x8c, 0xde, 0xa2, 0xc4, 0xf6, 0x12, 0xe0, 0x2e, 0x3b, 0x5f, 0xcc, 0xc6, 0x22, 0x16, - 0xe0, 0x12, 0xa0, 0xfc, 0x7d, 0x54, 0x0b, 0x88, 0x4b, 0x80, 0x1e, 0x00, 0xec, 0x4d, 0x4a, 0xc6, - 0x50, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x36, 0x8b, 0x30, 0xf6, 0xea, 0x44, 0x1d, 0x5e, 0xda, - 0xb3, 0x3a, 0x52, 0x4a, 0x64, 0x11, 0x6d, 0xca, 0x0e, 0xee, 0xa6, 0xfa, 0xf2, 0x1b, 0x2e, 0x8b, - 0xf9, 0x3c, 0x2e, 0x57, 0x60, 0x70, 0xab, 0x5a, 0x3a, 0x00, 0x31, 0xb8, 0x51, 0xd0, 0xce, 0x5a, - 0xdd, 0xcc, 0xd3, 0xab, 0x7d, 0x5e, 0xf2, 0x85, 0x48, 0x73, 0x06, 0xbf, 0xe3, 0x61, 0x1a, 0xd4, - 0x65, 0x88, 0x59, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9f, 0x50, 0x7e, 0x05, 0xba, 0x12, - 0xbc, 0x84, 0xcf, 0x13, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x92, 0xe6, - 0x33, 0xb4, 0xef, 0x4f, 0xdc, 0x6f, 0xa8, 0xde, 0xa1, 0x01, 0x3b, 0xa1, 0x9a, 0x46, 0x6b, 0x26, - 0x80, 0x7a, 0x33, 0x16, 0x6d, 0x74, 0x97, 0x20, 0x26, 0x14, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, - 0xb3, 0x44, 0xdf, 0x9a, 0xc3, 0x5c, 0x79, 0x44, 0xd0, 0x15, 0x24, 0x6d, 0x2c, 0x92, 0xf2, 0xd3, - 0x45, 0x7e, 0x52, 0xf2, 0x8b, 0x34, 0x63, 0x25, 0x88, 0x45, 0x8d, 0xba, 0x23, 0x27, 0x62, 0x11, - 0xc6, 0xd9, 0xeb, 0x17, 0x52, 0xea, 0x7d, 0xca, 0x7c, 0x52, 0xc6, 0x53, 0x78, 0xfd, 0xa2, 0xb1, - 0xd1, 0xc6, 0x88, 0x93, 0xc1, 0x00, 0xee, 0x24, 0x3a, 0x8d, 0xeb, 0x7c, 0x25, 0xc7, 0x87, 0x7a, - 0x33, 0x53, 0x7e, 0x59, 0xb4, 0x02, 0x89, 0x8e, 0x32, 0x87, 0x91, 0x44, 0xa2, 0x13, 0xd6, 0xb0, - 0x4b, 0x89, 0xe4, 0x8e, 0xd5, 0xb5, 0x22, 0xb0, 0x94, 0x34, 0x36, 0xb4, 0x90, 0x58, 0x4a, 0x5a, - 0x10, 0x08, 0x48, 0x7a, 0x1a, 0xcc, 0xd0, 0x80, 0x64, 0xa4, 0xc1, 0x80, 0xe4, 0x52, 0x36, 0x50, - 0x1c, 0xe4, 0xa9, 0x48, 0xe3, 0x6c, 0xcc, 0xc4, 0x49, 0x5c, 0xc6, 0x73, 0x26, 0x58, 0x09, 0x03, - 0x85, 0x42, 0x46, 0x1e, 0x43, 0x04, 0x0a, 0x8a, 0x55, 0x0e, 0x7f, 0x3b, 0x7a, 0xa7, 0x5e, 0xf7, - 0x59, 0xae, 0xfe, 0x68, 0xc9, 0x0b, 0xf9, 0xd7, 0x8e, 0x86, 0xef, 0x1a, 0x1b, 0x63, 0x51, 0xb2, - 0x78, 0xae, 0x6d, 0xbf, 0x6d, 0x7e, 0x97, 0xe0, 0x93, 0x41, 0x3d, 0x9e, 0x8f, 0xb9, 0x48, 0x2f, - 0xea, 0x6d, 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x0a, 0x7c, 0xd9, 0x03, 0xe3, 0x6c, - 0x9c, 0x76, 0xa5, 0xa7, 0xac, 0xc8, 0x60, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, - 0x93, 0xd3, 0x15, 0x4f, 0x58, 0xb8, 0x32, 0x13, 0xd6, 0xaf, 0x32, 0x13, 0xef, 0xa5, 0x8c, 0x2c, - 0x7a, 0xe7, 0x88, 0xcd, 0xcf, 0x59, 0x59, 0x5d, 0xa6, 0xc5, 0x7e, 0x9d, 0x70, 0xc5, 0x62, 0x01, - 0x5f, 0x5b, 0xb4, 0xc4, 0xc8, 0x20, 0x44, 0x56, 0x4a, 0xa0, 0x76, 0x25, 0xb0, 0xc0, 0x41, 0x75, - 0x1c, 0xcf, 0x99, 0xfc, 0x4e, 0x09, 0x58, 0x09, 0x1c, 0x23, 0x0e, 0x44, 0xac, 0x04, 0x24, 0xec, - 0xbc, 0xdf, 0x65, 0x99, 0x53, 0x36, 0xab, 0x47, 0x58, 0x79, 0x12, 0xaf, 0xe6, 0x2c, 0x17, 0xca, - 0x24, 0x38, 0x93, 0x77, 0x4c, 0xe2, 0x3c, 0x71, 0x26, 0xdf, 0x47, 0xcf, 0x09, 0x4d, 0x5e, 0xc3, - 0x9f, 0xf0, 0x52, 0x34, 0x7f, 0x92, 0xe8, 0xac, 0xcc, 0x40, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, - 0xd0, 0x14, 0xd6, 0x70, 0xbe, 0xe5, 0xef, 0x95, 0xe1, 0x15, 0x2b, 0xcd, 0x38, 0x79, 0x31, 0x8f, - 0xd3, 0x4c, 0x8d, 0x86, 0x1f, 0x04, 0x6c, 0x13, 0x3a, 0xc4, 0xb7, 0xfc, 0xfb, 0xea, 0x3a, 0x7f, - 0xfd, 0x20, 0x5c, 0x42, 0xf0, 0x88, 0xa0, 0xc3, 0x3e, 0xf1, 0x88, 0xa0, 0x5b, 0xcb, 0xee, 0xdc, - 0x2d, 0x2b, 0xb9, 0x95, 0x24, 0x76, 0x78, 0x02, 0xcf, 0x0b, 0x1d, 0x9b, 0x00, 0x24, 0x76, 0xee, - 0x41, 0x05, 0x9b, 0x1a, 0x58, 0x6c, 0x2f, 0xcd, 0xe3, 0x2c, 0xfd, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x49, 0xeb, 0xd0, 0xff, 0x30, 0xd0, - 0x6e, 0x92, 0xe8, 0x76, 0xe5, 0x90, 0xce, 0x17, 0x6f, 0x61, 0xb3, 0x6e, 0x17, 0xc5, 0xb8, 0x5e, - 0x55, 0x4f, 0xd9, 0x94, 0xa5, 0x85, 0x18, 0x7e, 0x12, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x7a, - 0xa8, 0x39, 0x8f, 0xef, 0xeb, 0x58, 0x32, 0x6e, 0xfe, 0x56, 0xdf, 0x59, 0xc5, 0x4a, 0x95, 0x68, - 0xec, 0x33, 0x01, 0x66, 0xa7, 0xc3, 0x8d, 0x1c, 0xb0, 0xae, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0x4e, 0x59, 0xc5, 0xb3, 0x25, 0x93, 0xf7, 0x0d, 0x37, 0x48, 0x63, 0x0e, 0x45, - 0x1c, 0xf6, 0xd1, 0xb4, 0xcd, 0xd6, 0xda, 0x6e, 0xb7, 0xf3, 0xd5, 0x01, 0xbc, 0x32, 0x81, 0x58, - 0x92, 0x18, 0x91, 0xad, 0x05, 0x70, 0xe7, 0x30, 0xbc, 0xe4, 0x71, 0x32, 0x8d, 0x2b, 0x71, 0x12, - 0xaf, 0x32, 0x1e, 0x27, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x19, 0xb9, 0x10, 0x75, 0x18, 0x4e, - 0xc1, 0x6e, 0x76, 0x26, 0xff, 0x04, 0xa1, 0xba, 0xcb, 0x09, 0xb3, 0x33, 0x59, 0x5e, 0x78, 0x8f, - 0xf3, 0x5e, 0x18, 0xb2, 0xef, 0xa0, 0x35, 0x22, 0x99, 0x86, 0xdc, 0xc1, 0x74, 0xbc, 0x04, 0xe4, - 0x83, 0x00, 0x61, 0xbf, 0xf2, 0xd1, 0xfc, 0xae, 0xff, 0x8a, 0x8e, 0x50, 0xdf, 0x05, 0xdf, 0xc0, - 0x74, 0x5d, 0x68, 0xe4, 0x7e, 0x2c, 0x62, 0xb3, 0x27, 0x6d, 0xd3, 0xcc, 0x9d, 0xcb, 0x58, 0x6c, - 0x27, 0xc9, 0x11, 0xab, 0x90, 0x17, 0xca, 0x6b, 0xe1, 0xc8, 0x4a, 0x89, 0x34, 0xb3, 0x4d, 0xd9, - 0x81, 0x5e, 0xcb, 0x5e, 0x24, 0xa9, 0x50, 0x32, 0x7d, 0x43, 0x7a, 0xa3, 0x6d, 0xa0, 0x4d, 0x11, - 0xb5, 0xa2, 0x69, 0x1b, 0xcb, 0x6b, 0x66, 0xc2, 0x67, 0xb3, 0x8c, 0x29, 0xe8, 0x94, 0xc5, 0xcd, - 0x67, 0x11, 0xb7, 0xda, 0xb6, 0x50, 0x90, 0x88, 0xe5, 0x41, 0x05, 0x9b, 0x46, 0xd6, 0x58, 0xf3, - 0x48, 0x4a, 0x37, 0xec, 0x5a, 0xdb, 0x8c, 0x07, 0x10, 0x69, 0x24, 0x0a, 0xda, 0xf7, 0xde, 0x6a, - 0xf1, 0x3e, 0xd3, 0x2d, 0x01, 0x3f, 0xe8, 0x24, 0x95, 0x1d, 0x31, 0xf1, 0xde, 0x1b, 0x82, 0xd9, - 0x7d, 0x02, 0xf0, 0xf0, 0x7c, 0x75, 0x90, 0xc0, 0x7d, 0x02, 0xd4, 0x97, 0x0c, 0xb1, 0x4f, 0xa0, - 0x58, 0xbf, 0xeb, 0xcc, 0xb9, 0xd7, 0x61, 0x5c, 0xd9, 0xca, 0x21, 0x5d, 0x87, 0x82, 0xa1, 0xae, - 0xa3, 0x14, 0xfc, 0x26, 0x75, 0x8f, 0xd6, 0x90, 0x26, 0xc5, 0xce, 0xd5, 0x1e, 0x74, 0x61, 0x36, - 0x2e, 0x99, 0xfd, 0xa4, 0xbc, 0xb2, 0x84, 0xff, 0x3d, 0x84, 0x46, 0x48, 0xc4, 0xa5, 0x16, 0xd4, - 0xd8, 0x7e, 0xfe, 0xc1, 0x7f, 0x7d, 0x75, 0x6b, 0xf0, 0xb3, 0xaf, 0x6e, 0x0d, 0xfe, 0xe7, 0xab, - 0x5b, 0x83, 0x9f, 0x7e, 0x7d, 0xeb, 0x5b, 0x3f, 0xfb, 0xfa, 0xd6, 0xb7, 0xfe, 0xfb, 0xeb, 0x5b, - 0xdf, 0xfa, 0xf2, 0x2d, 0xf5, 0xa7, 0x69, 0xcf, 0x7f, 0x4e, 0xfe, 0x81, 0xd9, 0x67, 0xff, 0x17, - 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0x4f, 0x95, 0xbe, 0x76, 0x00, 0x00, + 0x56, 0xc0, 0xa7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99, + 0x24, 0x4e, 0xe2, 0xb8, 0x9d, 0x49, 0xe6, 0x8b, 0x5d, 0x24, 0x70, 0xec, 0xc4, 0x63, 0xd6, 0xf6, + 0x18, 0x77, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0x52, 0x75, 0xdd, 0x2e, 0x5c, 0x5d, 0xb7, 0xb6, 0xea, + 0x76, 0x27, 0xbd, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0x7c, 0x09, 0x9e, 0x90, 0xf8, 0x0b, + 0xf8, 0x33, 0x78, 0x63, 0x1f, 0x79, 0x44, 0x33, 0xcf, 0xfc, 0x0f, 0xa8, 0x6e, 0xdd, 0xcf, 0x53, + 0xe7, 0xdc, 0x2a, 0xcf, 0x3e, 0x25, 0xf2, 0xf9, 0x9d, 0x73, 0xee, 0xe7, 0xb9, 0xe7, 0xde, 0xba, + 0x55, 0x1d, 0x5d, 0x2f, 0x5f, 0x6e, 0x97, 0x15, 0x17, 0xbc, 0xde, 0xae, 0x59, 0xb5, 0xca, 0x12, + 0xa6, 0xff, 0x9d, 0xc8, 0x3f, 0x8f, 0xdf, 0x8c, 0x8b, 0xb5, 0x58, 0x97, 0xec, 0xbd, 0x77, 0x2d, + 0x99, 0xf0, 0xc5, 0x22, 0x2e, 0xd2, 0xba, 0x45, 0xde, 0x7b, 0xc7, 0x4a, 0xd8, 0x8a, 0x15, 0x42, + 0xfd, 0xfd, 0xd1, 0x7f, 0xff, 0xdf, 0x28, 0x7a, 0x6b, 0x37, 0xcf, 0x58, 0x21, 0x76, 0x95, 0xc6, + 0xf8, 0xcb, 0xe8, 0xdb, 0x3b, 0x65, 0xb9, 0xcf, 0xc4, 0x73, 0x56, 0xd5, 0x19, 0x2f, 0xc6, 0x1f, + 0x4c, 0x94, 0x83, 0xc9, 0x69, 0x99, 0x4c, 0x76, 0xca, 0x72, 0x62, 0x85, 0x93, 0x53, 0xf6, 0xa3, + 0x25, 0xab, 0xc5, 0x7b, 0xb7, 0xc2, 0x50, 0x5d, 0xf2, 0xa2, 0x66, 0xe3, 0xf3, 0xe8, 0x57, 0x76, + 0xca, 0x72, 0xca, 0xc4, 0x1e, 0x6b, 0x2a, 0x30, 0x15, 0xb1, 0x60, 0xe3, 0x8d, 0x8e, 0xaa, 0x0f, + 0x18, 0x1f, 0x77, 0xfb, 0x41, 0xe5, 0x67, 0x16, 0x7d, 0xab, 0xf1, 0x73, 0xb1, 0x14, 0x29, 0x7f, + 0x55, 0x8c, 0xdf, 0xef, 0x2a, 0x2a, 0x91, 0xb1, 0x7d, 0x33, 0x84, 0x28, 0xab, 0x2f, 0xa2, 0x5f, + 0x7c, 0x11, 0xe7, 0x39, 0x13, 0xbb, 0x15, 0x6b, 0x0a, 0xee, 0xeb, 0xb4, 0xa2, 0x49, 0x2b, 0x33, + 0x76, 0x3f, 0x08, 0x32, 0xca, 0xf0, 0x97, 0xd1, 0xb7, 0x5b, 0xc9, 0x29, 0x4b, 0xf8, 0x8a, 0x55, + 0x63, 0x54, 0x4b, 0x09, 0x89, 0x26, 0xef, 0x40, 0xd0, 0xf6, 0x2e, 0x2f, 0x56, 0xac, 0x12, 0xb8, + 0x6d, 0x25, 0x0c, 0xdb, 0xb6, 0x90, 0xb2, 0xfd, 0xd7, 0xa3, 0xe8, 0xbb, 0x3b, 0x49, 0xc2, 0x97, + 0x85, 0x38, 0xe4, 0x49, 0x9c, 0x1f, 0x66, 0xc5, 0xe5, 0x31, 0x7b, 0xb5, 0x7b, 0xd1, 0xf0, 0xc5, + 0x9c, 0x8d, 0x1f, 0xfb, 0xad, 0xda, 0xa2, 0x13, 0xc3, 0x4e, 0x5c, 0xd8, 0xf8, 0xfe, 0xe8, 0x6a, + 0x4a, 0xaa, 0x2c, 0x7f, 0x3f, 0x8a, 0xae, 0xc1, 0xb2, 0x4c, 0x79, 0xbe, 0x62, 0xb6, 0x34, 0x1f, + 0xf7, 0x18, 0xf6, 0x71, 0x53, 0x9e, 0x4f, 0xae, 0xaa, 0xa6, 0x4a, 0x94, 0x47, 0x6f, 0xbb, 0xc3, + 0x65, 0xca, 0x6a, 0x39, 0x9d, 0xee, 0xd1, 0x23, 0x42, 0x21, 0xc6, 0xf3, 0xfd, 0x21, 0xa8, 0xf2, + 0x96, 0x45, 0x63, 0xe5, 0x2d, 0xe7, 0xb5, 0x71, 0x76, 0x17, 0xb5, 0xe0, 0x10, 0xc6, 0xd7, 0xbd, + 0x01, 0xa4, 0x72, 0xf5, 0x07, 0xd1, 0x2f, 0xbd, 0xe0, 0xd5, 0x65, 0x5d, 0xc6, 0x09, 0x53, 0x53, + 0xe1, 0xb6, 0xaf, 0xad, 0xa5, 0x70, 0x36, 0xdc, 0xe9, 0xc3, 0x9c, 0x41, 0xab, 0x85, 0x5f, 0x94, + 0x0c, 0xc6, 0x20, 0xab, 0xd8, 0x08, 0xa9, 0x41, 0x0b, 0x21, 0x65, 0xfb, 0x32, 0x1a, 0x5b, 0xdb, + 0x2f, 0xff, 0x90, 0x25, 0x62, 0x27, 0x4d, 0x61, 0xaf, 0x58, 0x5d, 0x49, 0x4c, 0x76, 0xd2, 0x94, + 0xea, 0x15, 0x1c, 0x55, 0xce, 0x5e, 0x45, 0xef, 0x00, 0x67, 0x87, 0x59, 0x2d, 0x1d, 0x6e, 0x85, + 0xad, 0x28, 0xcc, 0x38, 0x9d, 0x0c, 0xc5, 0x95, 0xe3, 0x3f, 0x1d, 0x45, 0xdf, 0x41, 0x3c, 0x9f, + 0xb2, 0x05, 0x5f, 0xb1, 0xf1, 0xc3, 0x7e, 0x6b, 0x2d, 0x69, 0xfc, 0x7f, 0x78, 0x05, 0x0d, 0x64, + 0x98, 0x4c, 0x59, 0xce, 0x12, 0x41, 0x0e, 0x93, 0x56, 0xdc, 0x3b, 0x4c, 0x0c, 0xe6, 0xcc, 0x30, + 0x2d, 0xdc, 0x67, 0x62, 0x77, 0x59, 0x55, 0xac, 0x10, 0x64, 0x5f, 0x5a, 0xa4, 0xb7, 0x2f, 0x3d, + 0x14, 0xa9, 0xcf, 0x3e, 0x13, 0x3b, 0x79, 0x4e, 0xd6, 0xa7, 0x15, 0xf7, 0xd6, 0xc7, 0x60, 0xca, + 0x43, 0x12, 0xfd, 0xb2, 0xd3, 0x62, 0xe2, 0xa0, 0x38, 0xe7, 0x63, 0xba, 0x2d, 0xa4, 0xdc, 0xf8, + 0xd8, 0xe8, 0xe5, 0x90, 0x6a, 0x3c, 0x7d, 0x5d, 0xf2, 0x8a, 0xee, 0x96, 0x56, 0xdc, 0x5b, 0x0d, + 0x83, 0x29, 0x0f, 0xbf, 0x1f, 0xbd, 0xa5, 0xa2, 0xa4, 0x5e, 0xcf, 0x6e, 0xa1, 0x21, 0x14, 0x2e, + 0x68, 0xb7, 0x7b, 0x28, 0x1b, 0x1c, 0x94, 0x4c, 0x05, 0x9f, 0x0f, 0x50, 0x3d, 0x10, 0x7a, 0x6e, + 0x85, 0xa1, 0x8e, 0xed, 0x3d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, 0x65, 0xbb, + 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x13, 0xa4, 0x37, 0x89, 0x7a, 0xbb, 0x90, + 0xf1, 0xf5, 0x60, 0x18, 0xdc, 0xa9, 0x8f, 0x9a, 0x81, 0x78, 0x7d, 0xc0, 0xfc, 0xbb, 0x15, 0x86, + 0x94, 0xed, 0xbf, 0x19, 0x45, 0xdf, 0x53, 0xb2, 0xa7, 0x45, 0xfc, 0x32, 0x67, 0x72, 0x49, 0x3c, + 0x66, 0xe2, 0x15, 0xaf, 0x2e, 0xa7, 0xeb, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, 0xfe, 0x49, + 0x25, 0x27, 0xe3, 0x53, 0x15, 0x15, 0xbc, 0x84, 0x19, 0x9f, 0xae, 0x81, 0xe0, 0x25, 0x95, 0xf1, + 0xf9, 0x48, 0xc7, 0xea, 0x51, 0x13, 0x36, 0x71, 0xab, 0x47, 0x6e, 0x9c, 0xbc, 0x19, 0x42, 0x6c, + 0xd8, 0xd2, 0x03, 0x98, 0x17, 0xe7, 0xd9, 0xfc, 0xac, 0x4c, 0x9b, 0x61, 0x7c, 0x0f, 0x1f, 0xa1, + 0x0e, 0x42, 0x84, 0x2d, 0x02, 0x55, 0xde, 0xfe, 0xce, 0x26, 0x46, 0x6a, 0x2a, 0x3d, 0xab, 0xf8, + 0xe2, 0x90, 0xcd, 0xe3, 0x64, 0xad, 0xe6, 0xff, 0x47, 0xa1, 0x89, 0x07, 0x69, 0x53, 0x88, 0x8f, + 0xaf, 0xa8, 0xa5, 0xca, 0xf3, 0xef, 0xa3, 0xe8, 0x96, 0xae, 0xfe, 0x45, 0x5c, 0xcc, 0x99, 0xea, + 0xcf, 0xb6, 0xf4, 0x3b, 0x45, 0x7a, 0xca, 0x6a, 0x11, 0x57, 0x62, 0xfc, 0x7d, 0xbc, 0x92, 0x21, + 0x1d, 0x53, 0xb6, 0x1f, 0x7c, 0x23, 0x5d, 0xdb, 0xeb, 0xd3, 0x26, 0xb0, 0xa9, 0x10, 0xe0, 0xf7, + 0xba, 0x94, 0xc0, 0x00, 0x70, 0x33, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0x83, 0x62, 0x95, 0x09, 0xb6, + 0xcf, 0x0a, 0x56, 0x75, 0x7b, 0xbd, 0x55, 0xf5, 0x11, 0xa2, 0xd7, 0x09, 0xd4, 0x06, 0x1b, 0xcf, + 0x9b, 0x59, 0x1c, 0x37, 0x03, 0x46, 0x3a, 0xcb, 0xe3, 0x83, 0x61, 0xb0, 0xdd, 0xdd, 0x39, 0x3e, + 0x4f, 0xd9, 0x8a, 0x5f, 0xc2, 0xdd, 0x9d, 0x6b, 0xa2, 0x05, 0x88, 0xdd, 0x1d, 0x0a, 0xda, 0x15, + 0xcc, 0xf1, 0xf3, 0x3c, 0x63, 0xaf, 0xc0, 0x0a, 0xe6, 0x2a, 0x37, 0x62, 0x62, 0x05, 0x43, 0x30, + 0xe5, 0xe1, 0x38, 0xfa, 0x05, 0x29, 0xfc, 0x5d, 0x9e, 0x15, 0xe3, 0xeb, 0x88, 0x52, 0x23, 0x30, + 0x56, 0x6f, 0xd0, 0x00, 0x28, 0x71, 0xf3, 0xd7, 0xdd, 0xb8, 0x48, 0x58, 0x8e, 0x96, 0xd8, 0x8a, + 0x83, 0x25, 0xf6, 0x30, 0x9b, 0x3a, 0x48, 0x61, 0x13, 0xbf, 0xa6, 0x17, 0x71, 0x95, 0x15, 0xf3, + 0x31, 0xa6, 0xeb, 0xc8, 0x89, 0xd4, 0x01, 0xe3, 0xc0, 0x10, 0x56, 0x8a, 0x3b, 0x65, 0x59, 0x35, + 0x61, 0x11, 0x1b, 0xc2, 0x3e, 0x12, 0x1c, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc7, 0x92, 0x3c, 0x2b, + 0x82, 0xde, 0x14, 0x32, 0xc4, 0x9b, 0x45, 0xc1, 0xe0, 0x3d, 0x64, 0xf1, 0x8a, 0xe9, 0x9a, 0x61, + 0x2d, 0xe3, 0x02, 0xc1, 0xc1, 0x0b, 0x40, 0xbb, 0x4f, 0x93, 0xe2, 0xa3, 0xf8, 0x92, 0x35, 0x0d, + 0xcc, 0x9a, 0x75, 0x6d, 0x8c, 0xe9, 0x7b, 0x04, 0xb1, 0x4f, 0xc3, 0x49, 0xe5, 0x6a, 0x19, 0xbd, + 0x23, 0xe5, 0x27, 0x71, 0x25, 0xb2, 0x24, 0x2b, 0xe3, 0x42, 0xe7, 0xff, 0xd8, 0xbc, 0xee, 0x50, + 0xc6, 0xe5, 0xd6, 0x40, 0x5a, 0xb9, 0xfd, 0x97, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc2, 0xaa, 0x45, + 0x26, 0xb7, 0x91, 0x75, 0x1b, 0x84, 0xc7, 0x9f, 0x86, 0x8d, 0x76, 0x14, 0x4c, 0x69, 0x3e, 0xbb, + 0xba, 0xa2, 0x4d, 0x86, 0xa6, 0x2a, 0xb5, 0xfe, 0xa2, 0x4a, 0x3b, 0xc7, 0x2c, 0x53, 0x9d, 0x2f, + 0x4b, 0x21, 0x91, 0x0c, 0x75, 0x20, 0x30, 0xc3, 0xcf, 0x8a, 0x5a, 0x5b, 0xc7, 0x66, 0xb8, 0x15, + 0x07, 0x67, 0xb8, 0x87, 0x29, 0x0f, 0xbf, 0x17, 0x45, 0xed, 0x66, 0x4b, 0x6e, 0x88, 0xfd, 0x98, + 0xa3, 0x76, 0x61, 0xde, 0x6e, 0xf8, 0xfd, 0x00, 0x61, 0x17, 0xba, 0xf6, 0xef, 0x72, 0x9f, 0x3f, + 0x46, 0x35, 0xa4, 0x88, 0x58, 0xe8, 0x00, 0x02, 0x0b, 0x3a, 0xbd, 0xe0, 0xaf, 0xf0, 0x82, 0x36, + 0x92, 0x70, 0x41, 0x15, 0x61, 0x4f, 0xde, 0x54, 0x41, 0xb1, 0x93, 0x37, 0x5d, 0x8c, 0xd0, 0xc9, + 0x1b, 0x64, 0x94, 0x61, 0x1e, 0xfd, 0xaa, 0x6b, 0xf8, 0x09, 0xe7, 0x97, 0x8b, 0xb8, 0xba, 0x1c, + 0xdf, 0xa7, 0x95, 0x35, 0x63, 0x1c, 0x6d, 0x0e, 0x62, 0x6d, 0x50, 0x73, 0x1d, 0x36, 0x69, 0xd2, + 0x59, 0x95, 0x83, 0xa0, 0xe6, 0xd9, 0x50, 0x08, 0x11, 0xd4, 0x08, 0xd4, 0x8e, 0x4a, 0xd7, 0xdb, + 0x94, 0xc1, 0xbd, 0x9e, 0xa7, 0x3e, 0x65, 0xd4, 0x5e, 0x0f, 0xc1, 0xe0, 0x10, 0xda, 0xaf, 0xe2, + 0xf2, 0x02, 0x1f, 0x42, 0x52, 0x14, 0x1e, 0x42, 0x1a, 0x81, 0xfd, 0x3d, 0x65, 0x71, 0x95, 0x5c, + 0xe0, 0xfd, 0xdd, 0xca, 0xc2, 0xfd, 0x6d, 0x18, 0xd8, 0xdf, 0xad, 0xe0, 0x45, 0x26, 0x2e, 0x8e, + 0x98, 0x88, 0xf1, 0xfe, 0xf6, 0x99, 0x70, 0x7f, 0x77, 0x58, 0x9b, 0x87, 0xb9, 0x0e, 0xa7, 0xcb, + 0x97, 0x75, 0x52, 0x65, 0x2f, 0xd9, 0x38, 0x60, 0xc5, 0x40, 0x44, 0x1e, 0x46, 0xc2, 0xca, 0xe7, + 0x4f, 0x46, 0xd1, 0x75, 0xdd, 0xed, 0xbc, 0xae, 0x55, 0xcc, 0xf3, 0xdd, 0x7f, 0x8c, 0xf7, 0x2f, + 0x81, 0x13, 0x67, 0xa1, 0x03, 0xd4, 0x9c, 0x35, 0x01, 0x2f, 0xd2, 0x59, 0x51, 0x9b, 0x42, 0x7d, + 0x3a, 0xc4, 0xba, 0xa3, 0x40, 0xac, 0x09, 0x83, 0x14, 0xed, 0x72, 0xac, 0xfa, 0x47, 0xcb, 0x0e, + 0xd2, 0x1a, 0x2c, 0xc7, 0xba, 0xbd, 0x1d, 0x82, 0x58, 0x8e, 0x71, 0x12, 0x0e, 0x85, 0xfd, 0x8a, + 0x2f, 0xcb, 0xba, 0x67, 0x28, 0x00, 0x28, 0x3c, 0x14, 0xba, 0xb0, 0xf2, 0xf9, 0x3a, 0xfa, 0x75, + 0x77, 0xf8, 0xb9, 0x8d, 0xbd, 0x45, 0x8f, 0x29, 0xac, 0x89, 0x27, 0x43, 0x71, 0x9b, 0x90, 0x6a, + 0xcf, 0x62, 0x8f, 0x89, 0x38, 0xcb, 0xeb, 0xf1, 0x1d, 0xdc, 0x86, 0x96, 0x13, 0x09, 0x29, 0xc6, + 0xc1, 0xf8, 0xb6, 0xb7, 0x2c, 0xf3, 0x2c, 0xe9, 0x9e, 0x44, 0x2b, 0x5d, 0x23, 0x0e, 0xc7, 0x37, + 0x17, 0x83, 0xf1, 0xba, 0x59, 0xf2, 0xe5, 0x7f, 0x66, 0xeb, 0x92, 0xe1, 0xf1, 0xda, 0x43, 0xc2, + 0xf1, 0x1a, 0xa2, 0xb0, 0x3e, 0x53, 0x26, 0x0e, 0xe3, 0x35, 0x5f, 0x12, 0xf1, 0xda, 0x88, 0xc3, + 0xf5, 0x71, 0x31, 0x9b, 0x13, 0x1a, 0x0f, 0x07, 0x85, 0x60, 0x55, 0x11, 0xe7, 0xcf, 0xf2, 0x78, + 0x5e, 0x8f, 0x89, 0x18, 0xe3, 0x53, 0x44, 0x4e, 0x48, 0xd3, 0x48, 0x33, 0x1e, 0xd4, 0xcf, 0xe2, + 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0x3b, 0x55, 0x72, + 0x91, 0xad, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x29, 0x5f, 0x56, + 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, 0xc1, 0x94, 0x87, 0xbf, 0x18, 0x45, 0xbf, 0xd1, + 0x4a, 0xdd, 0xe3, 0xe1, 0xbd, 0xb8, 0xbe, 0x78, 0xc9, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, + 0x51, 0xe3, 0xfa, 0xd1, 0x55, 0x54, 0x60, 0xb3, 0x1e, 0x66, 0xb5, 0x33, 0xe3, 0xd0, 0x66, 0xf5, + 0x90, 0x70, 0xb3, 0x42, 0x14, 0x06, 0x10, 0x29, 0x6f, 0x8f, 0x62, 0xee, 0x90, 0xfa, 0xfe, 0x79, + 0xcc, 0x46, 0x2f, 0x07, 0xe3, 0x63, 0x23, 0xf4, 0x47, 0xcb, 0x16, 0x65, 0x03, 0x1f, 0x31, 0x93, + 0xa1, 0x38, 0xe9, 0xd9, 0xcc, 0x8a, 0xb0, 0xe7, 0xce, 0xcc, 0x98, 0x0c, 0xc5, 0x09, 0xcf, 0x4e, + 0x58, 0x0b, 0x79, 0x46, 0x42, 0xdb, 0x64, 0x28, 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x7e, + 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x07, 0xb1, 0xca, 0xe1, 0x5f, 0x8d, 0xa2, 0xef, 0x5a, 0x8f, 0x47, + 0x3c, 0xcd, 0xce, 0xd7, 0x2d, 0xf4, 0x3c, 0xce, 0x97, 0xac, 0x1e, 0x3f, 0xa2, 0xac, 0x75, 0x59, + 0x53, 0x82, 0xc7, 0x57, 0xd2, 0x81, 0x73, 0x67, 0xa7, 0x2c, 0xf3, 0xf5, 0x8c, 0x2d, 0xca, 0x9c, + 0x9c, 0x3b, 0x1e, 0x12, 0x9e, 0x3b, 0x10, 0x85, 0x59, 0xf9, 0x8c, 0x37, 0x39, 0x3f, 0x9a, 0x95, + 0x4b, 0x51, 0x38, 0x2b, 0xd7, 0x08, 0xcc, 0x95, 0x66, 0x7c, 0x97, 0xe7, 0x39, 0x4b, 0x44, 0xf7, + 0x11, 0xb3, 0xd1, 0xb4, 0x44, 0x38, 0x57, 0x02, 0xa4, 0x3d, 0x8d, 0xd1, 0x7b, 0xc8, 0xb8, 0x62, + 0x4f, 0xd6, 0x87, 0x59, 0x71, 0x39, 0xc6, 0xd3, 0x02, 0x0b, 0x10, 0xa7, 0x31, 0x28, 0x08, 0xf7, + 0xaa, 0x67, 0x45, 0xca, 0xf1, 0xbd, 0x6a, 0x23, 0x09, 0xef, 0x55, 0x15, 0x01, 0x4d, 0x9e, 0x32, + 0xca, 0x64, 0x23, 0x09, 0x9b, 0x54, 0x04, 0x16, 0x0a, 0xd5, 0x99, 0x3d, 0x19, 0x0a, 0xc1, 0x29, + 0xfd, 0x46, 0x2f, 0x07, 0x47, 0xa8, 0xde, 0xb4, 0x3e, 0x63, 0x22, 0xb9, 0xc0, 0x47, 0xa8, 0x87, + 0x84, 0x47, 0x28, 0x44, 0x61, 0x95, 0x66, 0xdc, 0x6c, 0xba, 0xef, 0xe0, 0xe3, 0xa3, 0xb3, 0xe1, + 0xde, 0xe8, 0xe5, 0xe0, 0x36, 0xf2, 0x60, 0x21, 0xdb, 0x0c, 0x1d, 0xe4, 0xad, 0x2c, 0xbc, 0x8d, + 0x34, 0x0c, 0x2c, 0x7d, 0x2b, 0x68, 0x9a, 0x13, 0x2f, 0xbd, 0x95, 0x87, 0x4b, 0xef, 0x71, 0xca, + 0xc9, 0x3f, 0x99, 0x6d, 0x5c, 0x2b, 0x3d, 0xe6, 0xcd, 0x1c, 0x79, 0x1e, 0xe7, 0x59, 0x1a, 0x0b, + 0x36, 0xe3, 0x97, 0xac, 0xc0, 0x77, 0x4c, 0xaa, 0xb4, 0x2d, 0x3f, 0xf1, 0x14, 0xc2, 0x3b, 0xa6, + 0xb0, 0x22, 0x1c, 0x27, 0x2d, 0x7d, 0x56, 0xb3, 0xdd, 0xb8, 0x26, 0x22, 0x99, 0x87, 0x84, 0xc7, + 0x09, 0x44, 0x61, 0xbe, 0xda, 0xca, 0x9f, 0xbe, 0x2e, 0x59, 0x95, 0xb1, 0x22, 0x61, 0x78, 0xbe, + 0x0a, 0xa9, 0x70, 0xbe, 0x8a, 0xd0, 0x70, 0xaf, 0xb6, 0x17, 0x0b, 0xf6, 0x64, 0x3d, 0xcb, 0x16, + 0xac, 0x16, 0xf1, 0xa2, 0xc4, 0xf7, 0x6a, 0x00, 0x0a, 0xef, 0xd5, 0xba, 0x70, 0xe7, 0x68, 0xc8, + 0x04, 0xc4, 0xee, 0xcd, 0x14, 0x48, 0x04, 0x6e, 0xa6, 0x10, 0x28, 0x6c, 0x58, 0x0b, 0xa0, 0x87, + 0xc3, 0x1d, 0x2b, 0xc1, 0xc3, 0x61, 0x9a, 0xee, 0x1c, 0xb8, 0x19, 0x66, 0xda, 0x4c, 0xcd, 0x9e, + 0xa2, 0x4f, 0xdd, 0x29, 0xba, 0x39, 0x88, 0xc5, 0x4f, 0xf8, 0x4e, 0x59, 0x1e, 0xcb, 0x65, 0x2b, + 0x70, 0x8c, 0xa6, 0x99, 0x21, 0x27, 0x7c, 0x0e, 0xab, 0x1c, 0xfe, 0xd9, 0x28, 0x7a, 0x0f, 0xf3, + 0xf8, 0x45, 0x29, 0xfd, 0x3e, 0xec, 0xb7, 0xd5, 0x92, 0xc4, 0xd5, 0x9b, 0xb0, 0x86, 0x2a, 0xc3, + 0x1f, 0x45, 0xef, 0x6a, 0x91, 0xbd, 0x99, 0xa3, 0x0a, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x33, + 0xee, 0xb7, 0x07, 0xf3, 0x76, 0x3f, 0xe4, 0x97, 0xab, 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, + 0xfd, 0x10, 0x82, 0xd9, 0xd9, 0xe9, 0x56, 0xef, 0x45, 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x66, 0xa7, + 0x57, 0x56, 0x03, 0x11, 0xb3, 0x93, 0x84, 0x61, 0x46, 0xa2, 0xc1, 0x66, 0x6e, 0x62, 0xb1, 0xdc, + 0x18, 0x72, 0x67, 0xe6, 0xdd, 0x7e, 0x10, 0x8e, 0x57, 0x2d, 0x56, 0x5b, 0x9f, 0xfb, 0x21, 0x0b, + 0x60, 0xfb, 0xb3, 0x39, 0x88, 0x55, 0x0e, 0xff, 0x24, 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x58, 0x2c, + 0x96, 0x15, 0x4b, 0xc7, 0xdb, 0x3d, 0xe5, 0xd6, 0xa0, 0x71, 0xfd, 0x70, 0xb8, 0x42, 0x27, 0x47, + 0xd7, 0x5c, 0x3b, 0xac, 0x4c, 0x19, 0x1e, 0x85, 0x4c, 0xfa, 0x6c, 0x30, 0x47, 0xa7, 0x75, 0x3a, + 0xdb, 0x6c, 0x77, 0x74, 0xed, 0xac, 0xe2, 0x2c, 0x97, 0x0f, 0xe9, 0x3e, 0x0c, 0x19, 0xf5, 0xd0, + 0xe0, 0x36, 0x9b, 0x54, 0xe9, 0x44, 0x66, 0x39, 0xc7, 0x9d, 0xed, 0xd9, 0x03, 0x3a, 0x12, 0x20, + 0xbb, 0xb3, 0xad, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, 0xd7, 0xfc, 0xd9, 0x1d, 0xe4, 0x98, 0x57, + 0xa5, 0x8a, 0x8c, 0xf4, 0xad, 0x81, 0xb4, 0xf2, 0xfa, 0xc7, 0xd1, 0xbb, 0x5d, 0xaf, 0x6a, 0x21, + 0xda, 0xee, 0x35, 0x05, 0xd6, 0xa2, 0x87, 0xc3, 0x15, 0x94, 0xfb, 0x7f, 0x35, 0xe7, 0xd2, 0xad, + 0xff, 0x84, 0x2f, 0x16, 0xac, 0x48, 0x59, 0xaa, 0x35, 0xea, 0x66, 0xff, 0xf4, 0x19, 0x6d, 0xd7, + 0x28, 0x4c, 0x5c, 0x0d, 0x53, 0xa2, 0xdf, 0xfc, 0x06, 0x9a, 0xaa, 0x68, 0xff, 0x39, 0x8a, 0xee, + 0xa1, 0x45, 0xd3, 0x03, 0xd7, 0x2b, 0xe2, 0xef, 0x0c, 0x71, 0x84, 0x69, 0x9a, 0xa2, 0xee, 0xfc, + 0x0c, 0x16, 0x54, 0x91, 0xff, 0x6d, 0x14, 0xdd, 0xb4, 0x8a, 0xcd, 0xf0, 0xde, 0xe5, 0xc5, 0x79, + 0x9e, 0x25, 0x22, 0x2b, 0xe6, 0x46, 0x85, 0x6e, 0x4e, 0x4a, 0xa3, 0xbf, 0x39, 0x03, 0x9a, 0x76, + 0xf3, 0xfa, 0x79, 0x56, 0x0b, 0x5e, 0xad, 0xa7, 0x17, 0xfc, 0x95, 0x7e, 0xb7, 0xc1, 0x8f, 0xcb, + 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, 0x2b, 0xfb, 0x0e, 0x44, 0x4d, 0xb8, 0x72, + 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, 0xfb, 0xc2, 0xc6, 0x06, 0x5e, 0xd4, 0xee, + 0x4b, 0x1b, 0x77, 0xfb, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, 0x5e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, + 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, 0x59, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, + 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, + 0x6f, 0x03, 0x34, 0xd2, 0x66, 0x74, 0x17, 0x49, 0x96, 0xc3, 0xab, 0x9e, 0x52, 0xd3, 0x08, 0x89, + 0xdb, 0x00, 0x1d, 0xc8, 0xa6, 0x40, 0x8d, 0xa8, 0x19, 0x95, 0xba, 0xfc, 0xb7, 0xbb, 0x8a, 0x8e, + 0x98, 0x48, 0x81, 0x10, 0xcc, 0x9e, 0x32, 0x34, 0xc2, 0xb3, 0x52, 0x1a, 0xbf, 0xd1, 0xd5, 0x6a, + 0x25, 0xc4, 0x29, 0x83, 0x4f, 0xd8, 0xdd, 0x72, 0xf3, 0xf7, 0x3d, 0xfe, 0xaa, 0x90, 0x46, 0x6f, + 0x76, 0x55, 0xb4, 0x8c, 0xd8, 0x2d, 0x43, 0x46, 0x19, 0xfe, 0x61, 0xf4, 0xf3, 0xd2, 0x70, 0xc5, + 0xcb, 0xf1, 0x35, 0x44, 0xa1, 0x72, 0x6e, 0x65, 0x5e, 0x27, 0xe5, 0xf6, 0x72, 0xb1, 0x19, 0x1b, + 0x67, 0x75, 0x3c, 0x67, 0xe3, 0x5b, 0x44, 0x8f, 0x4b, 0x29, 0x71, 0xb9, 0xb8, 0x4b, 0xf9, 0xa3, + 0xe2, 0x98, 0xa7, 0xca, 0x3a, 0x52, 0x43, 0x23, 0x0c, 0x8d, 0x0a, 0x17, 0xb2, 0x69, 0xeb, 0x71, + 0xbc, 0xca, 0xe6, 0x26, 0xb5, 0x68, 0x03, 0x58, 0x0d, 0xd2, 0x56, 0xcb, 0x4c, 0x1c, 0x88, 0x48, + 0x5b, 0x49, 0x58, 0xf9, 0xfc, 0xc7, 0x51, 0x74, 0xc3, 0x32, 0xfb, 0xfa, 0x5c, 0xf6, 0xa0, 0x38, + 0xe7, 0x4d, 0x92, 0x7b, 0x98, 0x15, 0x97, 0xf5, 0xf8, 0x13, 0xca, 0x24, 0xce, 0x9b, 0xa2, 0x7c, + 0x7a, 0x65, 0x3d, 0xbb, 0x3f, 0xd1, 0x87, 0x96, 0xf6, 0xe6, 0x42, 0xab, 0x01, 0xf6, 0x27, 0xe6, + 0x6c, 0x13, 0x72, 0xc4, 0xfe, 0x24, 0xc4, 0xdb, 0x2e, 0x36, 0xce, 0x73, 0x5e, 0xc0, 0x2e, 0xb6, + 0x16, 0x1a, 0x21, 0xd1, 0xc5, 0x1d, 0xc8, 0xc6, 0x63, 0x2d, 0x6a, 0xcf, 0xd7, 0x76, 0xf2, 0x1c, + 0xc4, 0x63, 0xa3, 0x6a, 0x00, 0x22, 0x1e, 0xa3, 0xa0, 0xf2, 0x73, 0x1a, 0x7d, 0xab, 0x69, 0xd2, + 0x93, 0x8a, 0xad, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, 0x62, 0xfe, 0xfb, 0x84, 0x9d, 0x59, 0x67, + 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x76, + 0x0f, 0x65, 0x83, 0xba, 0x96, 0x99, 0x10, 0x73, 0x07, 0x57, 0xed, 0x84, 0x99, 0x8d, 0x5e, 0xce, + 0x3e, 0xdb, 0xd8, 0x8f, 0xf3, 0x9c, 0x55, 0x6b, 0x2d, 0x3b, 0x8a, 0x8b, 0xec, 0x9c, 0xd5, 0x02, + 0x3c, 0xdb, 0x50, 0xd4, 0x04, 0x62, 0xc4, 0xb3, 0x8d, 0x00, 0x6e, 0xf7, 0x6d, 0xc0, 0xf3, 0x41, + 0x91, 0xb2, 0xd7, 0x60, 0xdf, 0x06, 0xed, 0x48, 0x86, 0xd8, 0xb7, 0x51, 0xac, 0x3d, 0xe3, 0x7f, + 0x92, 0xf3, 0xe4, 0x52, 0x2d, 0x01, 0x7e, 0x07, 0x4b, 0x09, 0x5c, 0x03, 0x6e, 0x86, 0x10, 0xbb, + 0x08, 0x48, 0xc1, 0x29, 0x2b, 0xf3, 0x38, 0x81, 0x37, 0xad, 0x5a, 0x1d, 0x25, 0x23, 0x16, 0x01, + 0xc8, 0x80, 0xe2, 0xaa, 0x1b, 0x5c, 0x58, 0x71, 0xc1, 0x05, 0xae, 0x9b, 0x21, 0xc4, 0x2e, 0x83, + 0x52, 0x30, 0x2d, 0xf3, 0x4c, 0x80, 0x69, 0xd0, 0x6a, 0x48, 0x09, 0x31, 0x0d, 0x7c, 0x02, 0x98, + 0x3c, 0x62, 0xd5, 0x9c, 0xa1, 0x26, 0xa5, 0x24, 0x68, 0x52, 0x13, 0xf6, 0x3a, 0x71, 0x5b, 0x77, + 0x5e, 0xae, 0xc1, 0x75, 0x62, 0x55, 0x2d, 0x5e, 0xae, 0x89, 0xeb, 0xc4, 0x1e, 0x00, 0x8a, 0x78, + 0x12, 0xd7, 0x02, 0x2f, 0xa2, 0x94, 0x04, 0x8b, 0xa8, 0x09, 0xbb, 0x46, 0xb7, 0x45, 0x5c, 0x0a, + 0xb0, 0x46, 0xab, 0x02, 0x38, 0x77, 0x0d, 0xae, 0x93, 0x72, 0x1b, 0x49, 0xda, 0x5e, 0x61, 0xe2, + 0x59, 0xc6, 0xf2, 0xb4, 0x06, 0x91, 0x44, 0xb5, 0xbb, 0x96, 0x12, 0x91, 0xa4, 0x4b, 0x81, 0xa1, + 0xa4, 0x9e, 0x84, 0x60, 0xb5, 0x03, 0x0f, 0x41, 0x6e, 0x86, 0x10, 0x1b, 0x9f, 0x74, 0xa1, 0x77, + 0xe3, 0xaa, 0xca, 0x9a, 0xc5, 0xff, 0x0e, 0x5e, 0x20, 0x2d, 0x27, 0xe2, 0x13, 0xc6, 0x81, 0xe9, + 0xa5, 0x03, 0x37, 0x56, 0x30, 0x18, 0xba, 0x3f, 0x08, 0x32, 0x36, 0xe3, 0x94, 0x12, 0xe7, 0x61, + 0x39, 0xd6, 0x9a, 0xc8, 0xb3, 0xf2, 0x3b, 0x7d, 0x98, 0xf3, 0xba, 0x8f, 0x71, 0x71, 0xc4, 0x57, + 0x6c, 0xc6, 0x9f, 0xbe, 0xce, 0xea, 0x66, 0xbb, 0xa5, 0x56, 0xee, 0xc7, 0x84, 0x25, 0x0c, 0x26, + 0x5e, 0xf7, 0xe9, 0x55, 0xb2, 0x09, 0x04, 0x28, 0xcb, 0x31, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, + 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, 0xe3, 0x5c, 0xbd, 0x13, 0x3d, 0xe3, 0x3a, 0x97, + 0xa3, 0xac, 0x41, 0x90, 0x38, 0xb4, 0x08, 0x2a, 0xd8, 0xfd, 0xa5, 0xf1, 0x6f, 0xa7, 0xd8, 0x5d, + 0xc2, 0x4e, 0x77, 0x9a, 0xdd, 0x1b, 0x40, 0x22, 0xae, 0xec, 0x8d, 0x0f, 0xca, 0x55, 0xf7, 0xc2, + 0xc7, 0xbd, 0x01, 0xa4, 0x73, 0xfa, 0xe6, 0x56, 0xeb, 0x49, 0x9c, 0x5c, 0xce, 0x2b, 0xbe, 0x2c, + 0xd2, 0x5d, 0x9e, 0xf3, 0x0a, 0x9c, 0xbe, 0x79, 0xa5, 0x06, 0x28, 0x71, 0xfa, 0xd6, 0xa3, 0x62, + 0x33, 0x38, 0xb7, 0x14, 0x3b, 0x79, 0x36, 0x87, 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, + 0x05, 0x91, 0x41, 0xd4, 0xee, 0xb8, 0x45, 0x96, 0xc4, 0x79, 0xeb, 0x6f, 0x9b, 0x36, 0xe3, 0x81, + 0xbd, 0x83, 0x08, 0x51, 0x40, 0xea, 0x39, 0x5b, 0x56, 0xc5, 0x41, 0x21, 0x38, 0x59, 0x4f, 0x0d, + 0xf4, 0xd6, 0xd3, 0x01, 0x41, 0x58, 0x9d, 0xb1, 0xd7, 0x4d, 0x69, 0x9a, 0x7f, 0xb0, 0xb0, 0xda, + 0xfc, 0x7d, 0xa2, 0xe4, 0xa1, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xe5, 0xa4, 0x1d, 0x30, 0x01, 0x6d, + 0x7f, 0x98, 0xdc, 0xed, 0x07, 0x71, 0x3f, 0x53, 0xb1, 0xce, 0x59, 0xc8, 0x8f, 0x04, 0x86, 0xf8, + 0xd1, 0xa0, 0x3d, 0x6e, 0xf1, 0xea, 0x73, 0xc1, 0x92, 0xcb, 0xce, 0x05, 0x36, 0xbf, 0xa0, 0x2d, + 0x42, 0x1c, 0xb7, 0x10, 0x28, 0xde, 0x45, 0x07, 0x09, 0x2f, 0x42, 0x5d, 0xd4, 0xc8, 0x87, 0x74, + 0x91, 0xe2, 0xec, 0xe6, 0xd7, 0x48, 0xd5, 0xc8, 0x6c, 0xbb, 0x69, 0x93, 0xb0, 0xe0, 0x42, 0xc4, + 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, 0x75, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd1, 0xb7, + 0xfb, 0x29, 0x96, 0xae, 0x64, 0x3b, 0x46, 0x7a, 0xac, 0xf8, 0xe3, 0xe4, 0xc1, 0x30, 0xd8, 0x6e, + 0x79, 0x3c, 0x9f, 0xbb, 0x39, 0x8b, 0xab, 0xd6, 0xeb, 0x56, 0xc0, 0x90, 0xc5, 0x88, 0x2d, 0x4f, + 0x00, 0x07, 0x21, 0xcc, 0xf3, 0xbc, 0xcb, 0x0b, 0xc1, 0x0a, 0x81, 0x85, 0x30, 0xdf, 0x98, 0x02, + 0x43, 0x21, 0x8c, 0x52, 0x00, 0xe3, 0x56, 0x9e, 0x07, 0x31, 0x71, 0x1c, 0x2f, 0xd0, 0x8c, 0xad, + 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0x71, 0x0b, 0x38, 0xe7, 0x71, 0xae, 0xeb, 0x65, 0x16, 0x57, 0x73, + 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd2, 0x76, 0x7c, 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0x61, 0xe7, + 0x60, 0x11, 0xcf, 0x4d, 0x4d, 0x91, 0x1a, 0x48, 0x79, 0xa7, 0xaa, 0x77, 0xfb, 0x41, 0xe0, 0xe7, + 0x79, 0x96, 0x32, 0x1e, 0xf0, 0x23, 0xe5, 0x43, 0xfc, 0x40, 0x10, 0x64, 0x6f, 0x4d, 0xbd, 0xdb, + 0x1d, 0xdd, 0x4e, 0x91, 0xaa, 0x7d, 0xec, 0x84, 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, + 0x73, 0x54, 0x1f, 0xd0, 0x86, 0xe6, 0xa8, 0x39, 0x7f, 0x1d, 0x32, 0x47, 0x31, 0x58, 0xf9, 0xfc, + 0xb1, 0x9a, 0xa3, 0x7b, 0xb1, 0x88, 0x9b, 0xbc, 0xfd, 0x79, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, + 0x5f, 0x4d, 0x4d, 0xe4, 0x4b, 0xa9, 0x60, 0x57, 0xbc, 0x3d, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, + 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x3d, 0x98, 0x0f, 0xf8, 0x56, 0x6f, 0xbb, 0xf7, 0xfa, 0x06, 0xaf, + 0xbc, 0x6f, 0x0f, 0xe6, 0x95, 0xef, 0x3f, 0xd7, 0x13, 0xd7, 0x75, 0xde, 0xe4, 0x61, 0x89, 0xc8, + 0x56, 0x0c, 0x4b, 0x27, 0x7d, 0x7b, 0x06, 0x0d, 0xa5, 0x93, 0xb4, 0x8a, 0xf3, 0x89, 0x24, 0xac, + 0x14, 0x27, 0xbc, 0xce, 0xe4, 0x75, 0x8c, 0xc7, 0x03, 0x8c, 0x6a, 0x38, 0xb4, 0x69, 0x0a, 0x29, + 0xd9, 0x07, 0xcb, 0x1e, 0x6a, 0xef, 0xab, 0x3f, 0x08, 0xd8, 0xeb, 0x5e, 0x5b, 0xdf, 0x1a, 0x48, + 0xdb, 0x47, 0xbc, 0x1e, 0xe3, 0x3e, 0x5b, 0x0e, 0xf5, 0x2a, 0xfa, 0x78, 0xf9, 0xe1, 0x70, 0x05, + 0xe5, 0xfe, 0x2f, 0xf5, 0xbe, 0x02, 0xfa, 0x57, 0x93, 0xe0, 0xd1, 0x10, 0x8b, 0x60, 0x22, 0x3c, + 0xbe, 0x92, 0x8e, 0x2a, 0xc8, 0xdf, 0xea, 0x0d, 0xb4, 0x46, 0xe5, 0x5b, 0x3b, 0xf2, 0x2d, 0x4f, + 0x35, 0x27, 0x42, 0xdd, 0x6a, 0x61, 0x38, 0x33, 0x3e, 0xbe, 0xa2, 0x96, 0xf3, 0xc1, 0x2c, 0x0f, + 0x56, 0x6f, 0x97, 0x3a, 0xe5, 0x09, 0x59, 0x76, 0x68, 0x58, 0xa0, 0x4f, 0xae, 0xaa, 0x46, 0xcd, + 0x15, 0x07, 0x96, 0xdf, 0xdf, 0x78, 0x3c, 0xd0, 0xb0, 0xf7, 0x45, 0x8e, 0x8f, 0xae, 0xa6, 0xa4, + 0xca, 0xf2, 0x1f, 0xa3, 0xe8, 0xb6, 0xc7, 0xda, 0xe7, 0x09, 0xe0, 0xd4, 0xe3, 0x07, 0x01, 0xfb, + 0x94, 0x92, 0x29, 0xdc, 0x6f, 0x7d, 0x33, 0x65, 0xfb, 0x75, 0x29, 0x4f, 0xe5, 0x59, 0x96, 0x0b, + 0x56, 0x75, 0xbf, 0x2e, 0xe5, 0xdb, 0x6d, 0xa9, 0x09, 0xfd, 0x75, 0xa9, 0x00, 0xee, 0x7c, 0x5d, + 0x0a, 0xf1, 0x8c, 0x7e, 0x5d, 0x0a, 0xb5, 0x16, 0xfc, 0xba, 0x54, 0x58, 0x83, 0x0a, 0xef, 0xba, + 0x08, 0xed, 0xb9, 0xf5, 0x20, 0x8b, 0xfe, 0x31, 0xf6, 0xa3, 0xab, 0xa8, 0x10, 0x0b, 0x5c, 0xcb, + 0xc9, 0x1b, 0x8d, 0x03, 0xda, 0xd4, 0xbb, 0xd5, 0xb8, 0x3d, 0x98, 0x57, 0xbe, 0x7f, 0xa4, 0x76, + 0x37, 0x26, 0x9c, 0xf3, 0x4a, 0x7e, 0x59, 0x6c, 0x33, 0x14, 0x9e, 0x1b, 0x0b, 0x6e, 0xcf, 0x3f, + 0x18, 0x06, 0x13, 0xd5, 0x6d, 0x08, 0xd5, 0xe9, 0x93, 0x3e, 0x43, 0xa0, 0xcb, 0xb7, 0x07, 0xf3, + 0xc4, 0x32, 0xd2, 0xfa, 0x6e, 0x7b, 0x7b, 0x80, 0x31, 0xbf, 0xaf, 0x1f, 0x0e, 0x57, 0x50, 0xee, + 0x57, 0x2a, 0x6d, 0x74, 0xdd, 0xcb, 0x7e, 0xde, 0xea, 0x33, 0x35, 0xf5, 0xba, 0x79, 0x32, 0x14, + 0x0f, 0x25, 0x10, 0xee, 0x12, 0xda, 0x97, 0x40, 0xa0, 0xcb, 0xe8, 0x47, 0x57, 0x53, 0x52, 0x65, + 0xf9, 0x87, 0x51, 0x74, 0x9d, 0x2c, 0x8b, 0x1a, 0x07, 0x9f, 0x0c, 0xb5, 0x0c, 0xc6, 0xc3, 0xa7, + 0x57, 0xd6, 0x53, 0x85, 0xfa, 0xe7, 0x51, 0x74, 0x23, 0x50, 0xa8, 0x76, 0x80, 0x5c, 0xc1, 0xba, + 0x3f, 0x50, 0x3e, 0xbb, 0xba, 0x22, 0xb5, 0xdc, 0xbb, 0xf8, 0xb4, 0xfb, 0xd9, 0xa5, 0x80, 0xed, + 0x29, 0xfd, 0xd9, 0xa5, 0x7e, 0x2d, 0x78, 0xc8, 0x13, 0xbf, 0xd4, 0x9b, 0x2e, 0xf4, 0x90, 0x47, + 0xde, 0x45, 0x04, 0x7b, 0x8e, 0x8d, 0x5e, 0x0e, 0x73, 0xf2, 0xf4, 0x75, 0x19, 0x17, 0x29, 0xed, + 0xa4, 0x95, 0xf7, 0x3b, 0x31, 0x1c, 0x3c, 0x1c, 0x6b, 0xa4, 0xa7, 0x5c, 0x6f, 0xa4, 0xee, 0x51, + 0xfa, 0x06, 0x09, 0x1e, 0x8e, 0x75, 0x50, 0xc2, 0x9b, 0xca, 0x1a, 0x43, 0xde, 0x40, 0xb2, 0x78, + 0x7f, 0x08, 0x0a, 0x52, 0x74, 0xe3, 0xcd, 0x9c, 0xb9, 0x3f, 0x08, 0x59, 0xe9, 0x9c, 0xbb, 0x6f, + 0x0d, 0xa4, 0x09, 0xb7, 0x53, 0x26, 0x3e, 0x67, 0x71, 0xca, 0xaa, 0xa0, 0x5b, 0x43, 0x0d, 0x72, + 0xeb, 0xd2, 0x98, 0xdb, 0x5d, 0x9e, 0x2f, 0x17, 0x85, 0xea, 0x4c, 0xd2, 0xad, 0x4b, 0xf5, 0xbb, + 0x05, 0x34, 0x3c, 0x16, 0xb4, 0x6e, 0x65, 0x7a, 0x79, 0x3f, 0x6c, 0xc6, 0xcb, 0x2a, 0x37, 0x07, + 0xb1, 0x74, 0x3d, 0xd5, 0x30, 0xea, 0xa9, 0x27, 0x18, 0x49, 0x5b, 0x03, 0x69, 0x78, 0x3e, 0xe7, + 0xb8, 0x35, 0xe3, 0x69, 0xbb, 0xc7, 0x56, 0x67, 0x48, 0x3d, 0x1c, 0xae, 0x00, 0x4f, 0x43, 0xd5, + 0xa8, 0x3a, 0xcc, 0x6a, 0xf1, 0x2c, 0xcb, 0xf3, 0xf1, 0x66, 0x60, 0x98, 0x68, 0x28, 0x78, 0x1a, + 0x8a, 0xc0, 0xc4, 0x48, 0xd6, 0xa7, 0x87, 0xc5, 0xb8, 0xcf, 0x8e, 0xa4, 0x06, 0x8d, 0x64, 0x97, + 0x06, 0x27, 0x5a, 0x4e, 0x53, 0x9b, 0xda, 0x4e, 0xc2, 0x0d, 0xd7, 0xa9, 0xf0, 0xf6, 0x60, 0x1e, + 0x3c, 0x6e, 0x97, 0x94, 0x5c, 0x59, 0x6e, 0x51, 0x26, 0xbc, 0x95, 0xe4, 0x76, 0x0f, 0x05, 0x4e, + 0x05, 0xdb, 0x69, 0xf4, 0x22, 0x4b, 0xe7, 0x4c, 0xa0, 0x4f, 0x8a, 0x5c, 0x20, 0xf8, 0xa4, 0x08, + 0x80, 0xa0, 0xeb, 0xda, 0xbf, 0x9b, 0xe3, 0xd0, 0x83, 0x14, 0xeb, 0x3a, 0xa5, 0xec, 0x50, 0xa1, + 0xae, 0x43, 0x69, 0x10, 0x0d, 0x8c, 0x5b, 0xf5, 0xe1, 0x85, 0xfb, 0x21, 0x33, 0xe0, 0xeb, 0x0b, + 0x9b, 0x83, 0x58, 0xb0, 0xa2, 0x58, 0x87, 0xd9, 0x22, 0x13, 0xd8, 0x8a, 0xe2, 0xd8, 0x68, 0x90, + 0xd0, 0x8a, 0xd2, 0x45, 0xa9, 0xea, 0x35, 0x39, 0xc2, 0x41, 0x1a, 0xae, 0x5e, 0xcb, 0x0c, 0xab, + 0x9e, 0x61, 0x3b, 0x0f, 0x36, 0x0b, 0x33, 0x64, 0xc4, 0x85, 0xda, 0x2c, 0x23, 0x63, 0x5b, 0xbe, + 0x90, 0x0b, 0xc1, 0x50, 0xd4, 0xa1, 0x14, 0xe0, 0x81, 0x7d, 0xc3, 0xe9, 0x67, 0xaf, 0x65, 0xc9, + 0xe2, 0x2a, 0x2e, 0x12, 0x74, 0x73, 0x2a, 0x0d, 0x76, 0xc8, 0xd0, 0xe6, 0x94, 0xd4, 0x00, 0x8f, + 0xcd, 0xfd, 0x57, 0x69, 0x91, 0xa9, 0x60, 0xde, 0x59, 0xf5, 0xdf, 0xa4, 0xbd, 0x37, 0x80, 0x84, + 0x8f, 0xcd, 0x35, 0x60, 0x0e, 0xbe, 0x5b, 0xa7, 0x1f, 0x06, 0x4c, 0xf9, 0x68, 0x68, 0x23, 0x4c, + 0xab, 0x80, 0x41, 0x6d, 0x12, 0x5c, 0x26, 0x7e, 0xc8, 0xd6, 0xd8, 0xa0, 0xb6, 0xf9, 0xa9, 0x44, + 0x42, 0x83, 0xba, 0x8b, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0xdd, 0x09, 0xe8, 0xbb, 0x5b, 0x9f, 0x8d, + 0x5e, 0x0e, 0xcc, 0x9c, 0xbd, 0x6c, 0xe5, 0x3d, 0x27, 0x40, 0x0a, 0xba, 0x97, 0xad, 0xf0, 0xc7, + 0x04, 0x9b, 0x83, 0x58, 0xf8, 0x48, 0x3e, 0x16, 0xec, 0xb5, 0x7e, 0x56, 0x8e, 0x14, 0x57, 0xca, + 0x3b, 0x0f, 0xcb, 0xef, 0xf6, 0x83, 0xf6, 0x02, 0xec, 0x49, 0xc5, 0x13, 0x56, 0xd7, 0xea, 0x5b, + 0x94, 0xfe, 0x0d, 0x23, 0x25, 0x9b, 0x80, 0x2f, 0x51, 0xde, 0x0a, 0x43, 0xb6, 0x67, 0x94, 0xc8, + 0x7e, 0xdf, 0xe8, 0x0e, 0xaa, 0xd9, 0xfd, 0xb4, 0xd1, 0x46, 0x2f, 0x67, 0xa7, 0x97, 0x92, 0xba, + 0x1f, 0x34, 0xba, 0x8b, 0xaa, 0x63, 0xdf, 0x32, 0xba, 0x37, 0x80, 0x54, 0xae, 0x3e, 0x8f, 0xde, + 0x3c, 0xe4, 0xf3, 0x29, 0x2b, 0xd2, 0xf1, 0xf7, 0xfc, 0x2b, 0xb4, 0x7c, 0x3e, 0x69, 0xfe, 0x6c, + 0x8c, 0x5e, 0xa3, 0xc4, 0xf6, 0x12, 0xe0, 0x1e, 0x7b, 0xb9, 0x9c, 0x4f, 0x45, 0x2c, 0xc0, 0x25, + 0x40, 0xf9, 0xf7, 0x49, 0x23, 0x20, 0x2e, 0x01, 0x7a, 0x00, 0xb0, 0x37, 0xab, 0x18, 0x43, 0xed, + 0x35, 0x82, 0xa0, 0x3d, 0x05, 0xd8, 0x2c, 0xc2, 0xd8, 0x6b, 0x12, 0x75, 0x78, 0x69, 0xcf, 0xea, + 0x48, 0x29, 0x91, 0x45, 0x74, 0x29, 0x3b, 0xb8, 0xdb, 0xea, 0xcb, 0xef, 0xcb, 0x2c, 0x17, 0x8b, + 0xb8, 0x5a, 0x83, 0xc1, 0xad, 0x6a, 0xe9, 0x00, 0xc4, 0xe0, 0x46, 0x41, 0x3b, 0x6b, 0x75, 0x33, + 0x27, 0x97, 0xfb, 0xbc, 0xe2, 0x4b, 0x91, 0x15, 0x0c, 0x7e, 0x63, 0xc4, 0x34, 0xa8, 0xcb, 0x10, + 0xb3, 0x96, 0x62, 0x6d, 0x96, 0x2b, 0x89, 0xf6, 0x3e, 0xa1, 0xfc, 0x42, 0x75, 0x2d, 0x78, 0x05, + 0x9f, 0x27, 0xb6, 0x56, 0x20, 0x44, 0x64, 0xb9, 0x24, 0x0c, 0xfa, 0xfe, 0x24, 0x2b, 0xe6, 0x68, + 0xdf, 0x9f, 0xb8, 0xdf, 0x77, 0xbd, 0x41, 0x03, 0x76, 0x42, 0xb5, 0x8d, 0xd6, 0x4e, 0x00, 0xf5, + 0xd6, 0x2e, 0xda, 0xe8, 0x2e, 0x41, 0x4c, 0x28, 0x9c, 0x04, 0xae, 0xbe, 0x28, 0x59, 0xc1, 0x52, + 0x7d, 0x6b, 0x0e, 0x73, 0xe5, 0x11, 0x41, 0x57, 0x90, 0xb4, 0xb1, 0x48, 0xca, 0x4f, 0x97, 0xc5, + 0x49, 0xc5, 0xcf, 0xb3, 0x9c, 0x55, 0x20, 0x16, 0xb5, 0xea, 0x8e, 0x9c, 0x88, 0x45, 0x18, 0x67, + 0xaf, 0x5f, 0x48, 0xa9, 0xf7, 0x99, 0xf5, 0x59, 0x15, 0x27, 0xf0, 0xfa, 0x45, 0x6b, 0xa3, 0x8b, + 0x11, 0x27, 0x83, 0x01, 0xdc, 0x49, 0x74, 0x5a, 0xd7, 0xc5, 0x5a, 0x8e, 0x0f, 0xf5, 0xd6, 0xa8, + 0xfc, 0xea, 0x69, 0x0d, 0x12, 0x1d, 0x65, 0x0e, 0x23, 0x89, 0x44, 0x27, 0xac, 0x61, 0x97, 0x12, + 0xc9, 0x1d, 0xab, 0x6b, 0x45, 0x60, 0x29, 0x69, 0x6d, 0x68, 0x21, 0xb1, 0x94, 0x74, 0x20, 0x10, + 0x90, 0xf4, 0x34, 0x98, 0xa3, 0x01, 0xc9, 0x48, 0x83, 0x01, 0xc9, 0xa5, 0x6c, 0xa0, 0x38, 0x28, + 0x32, 0x91, 0xc5, 0xf9, 0x94, 0x89, 0x93, 0xb8, 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x06, 0x0a, 0x85, + 0x4c, 0x3c, 0x86, 0x08, 0x14, 0x14, 0xab, 0x1c, 0xfe, 0x76, 0xf4, 0x76, 0xb3, 0xee, 0xb3, 0x42, + 0xfd, 0xa0, 0xca, 0x53, 0xf9, 0x4b, 0x4c, 0xe3, 0x77, 0x8c, 0x8d, 0xa9, 0xa8, 0x58, 0xbc, 0xd0, + 0xb6, 0xdf, 0x32, 0x7f, 0x97, 0xe0, 0xc3, 0x51, 0x33, 0x9e, 0x8f, 0xb9, 0xc8, 0xce, 0x9b, 0x6d, + 0xb6, 0x7a, 0x83, 0x08, 0x8c, 0x67, 0x57, 0x3c, 0x09, 0x7c, 0x75, 0x04, 0xe3, 0x6c, 0x9c, 0x76, + 0xa5, 0xa7, 0xac, 0xcc, 0x61, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0xc4, 0x69, 0x14, 0xb4, 0x93, 0xd3, + 0x15, 0xcf, 0x58, 0xb8, 0x32, 0x33, 0x36, 0xac, 0x32, 0x33, 0xef, 0xa5, 0x8c, 0x3c, 0x7a, 0xfb, + 0x88, 0x2d, 0x5e, 0xb2, 0xaa, 0xbe, 0xc8, 0xca, 0xfd, 0x26, 0xe1, 0x8a, 0xc5, 0x12, 0xbe, 0xb6, + 0x68, 0x89, 0x89, 0x41, 0x88, 0xac, 0x94, 0x40, 0xed, 0x4a, 0x60, 0x81, 0x83, 0xfa, 0x38, 0x5e, + 0x30, 0xf9, 0x0d, 0x15, 0xb0, 0x12, 0x38, 0x46, 0x1c, 0x88, 0x58, 0x09, 0x48, 0xd8, 0x79, 0xbf, + 0xcb, 0x32, 0xa7, 0x6c, 0xde, 0x8c, 0xb0, 0xea, 0x24, 0x5e, 0x2f, 0x58, 0x21, 0x94, 0x49, 0x70, + 0x26, 0xef, 0x98, 0xc4, 0x79, 0xe2, 0x4c, 0x7e, 0x88, 0x9e, 0x13, 0x9a, 0xbc, 0x86, 0x3f, 0xe1, + 0x95, 0x68, 0x7f, 0x2e, 0xe9, 0xac, 0xca, 0x41, 0x68, 0xf2, 0x1b, 0xd5, 0x23, 0x89, 0xd0, 0x14, + 0xd6, 0x70, 0x7e, 0x67, 0xc0, 0x2b, 0xc3, 0x73, 0x56, 0x99, 0x71, 0xf2, 0x74, 0x11, 0x67, 0xb9, + 0x1a, 0x0d, 0xdf, 0x0f, 0xd8, 0x26, 0x74, 0x88, 0xdf, 0x19, 0x18, 0xaa, 0xeb, 0xfc, 0x32, 0x43, + 0xb8, 0x84, 0xe0, 0x11, 0x41, 0x8f, 0x7d, 0xe2, 0x11, 0x41, 0xbf, 0x96, 0xdd, 0xb9, 0x5b, 0x56, + 0x72, 0x6b, 0x49, 0xec, 0xf2, 0x14, 0x9e, 0x17, 0x3a, 0x36, 0x01, 0x48, 0xec, 0xdc, 0x83, 0x0a, + 0x36, 0x35, 0xb0, 0xd8, 0xb3, 0xac, 0x88, 0xf3, 0xec, 0xc7, 0x30, 0xad, 0x77, 0xec, 0x68, 0x82, + 0x48, 0x0d, 0x70, 0x12, 0x73, 0xb5, 0xcf, 0xc4, 0x2c, 0x6b, 0x42, 0xff, 0xdd, 0x40, 0xbb, 0x49, + 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0xba, 0x53, 0x96, 0xd3, 0x66, 0x55, 0x3d, + 0x65, 0x09, 0xcb, 0x4a, 0x31, 0xfe, 0x38, 0xdc, 0x56, 0x00, 0x27, 0x2e, 0x5a, 0x0c, 0x50, 0x73, + 0x1e, 0xdf, 0x37, 0xb1, 0x64, 0xda, 0xfe, 0x8e, 0xe0, 0x59, 0xcd, 0x2a, 0x95, 0x68, 0xec, 0x33, + 0x01, 0x66, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3b, 0xc3, 0x1a, 0xf6, 0xb0, 0xcf, + 0xe1, 0x4e, 0x59, 0xcd, 0xf3, 0x15, 0x93, 0xf7, 0x0d, 0x1f, 0x90, 0xc6, 0x1c, 0x8a, 0x38, 0xec, + 0xa3, 0x69, 0x9b, 0xad, 0x75, 0xdd, 0xee, 0x14, 0xeb, 0x03, 0x78, 0x65, 0x02, 0xb1, 0x24, 0x31, + 0x22, 0x5b, 0x0b, 0xe0, 0xce, 0x61, 0x78, 0xc5, 0xe3, 0x34, 0x89, 0x6b, 0x71, 0x12, 0xaf, 0x73, + 0x1e, 0xa7, 0x72, 0x5d, 0x87, 0x87, 0xe1, 0x9a, 0x99, 0xb8, 0x10, 0x75, 0x18, 0x4e, 0xc1, 0x6e, + 0x76, 0x26, 0x7f, 0x1e, 0x51, 0xdd, 0xe5, 0x84, 0xd9, 0x99, 0x2c, 0x2f, 0xbc, 0xc7, 0x79, 0x2b, + 0x0c, 0xd9, 0x77, 0xd0, 0x5a, 0x91, 0x4c, 0x43, 0x6e, 0x60, 0x3a, 0x5e, 0x02, 0xf2, 0x7e, 0x80, + 0xb0, 0x5f, 0x20, 0x69, 0xff, 0xae, 0x7f, 0xe1, 0x47, 0xa8, 0x6f, 0x96, 0x3f, 0xc0, 0x74, 0x5d, + 0x68, 0xe2, 0x7e, 0xc8, 0x62, 0x6b, 0x20, 0x6d, 0xd3, 0xcc, 0xdd, 0x8b, 0x58, 0xec, 0xa4, 0xe9, + 0x11, 0xab, 0x91, 0x17, 0xca, 0x1b, 0xe1, 0xc4, 0x4a, 0x89, 0x34, 0xb3, 0x4b, 0xd9, 0x81, 0xde, + 0xc8, 0x9e, 0xa6, 0x99, 0x50, 0x32, 0x7d, 0x43, 0xfa, 0x41, 0xd7, 0x40, 0x97, 0x22, 0x6a, 0x45, + 0xd3, 0x36, 0x96, 0x37, 0xcc, 0x8c, 0xcf, 0xe7, 0x39, 0x53, 0xd0, 0x29, 0x8b, 0xdb, 0x4f, 0x36, + 0x6e, 0x77, 0x6d, 0xa1, 0x20, 0x11, 0xcb, 0x83, 0x0a, 0x36, 0x8d, 0x6c, 0xb0, 0xf6, 0x91, 0x94, + 0x6e, 0xd8, 0x8d, 0xae, 0x19, 0x0f, 0x20, 0xd2, 0x48, 0x14, 0xb4, 0xef, 0xbd, 0x35, 0xe2, 0x7d, + 0xa6, 0x5b, 0x02, 0x7e, 0x6c, 0x4a, 0x2a, 0x3b, 0x62, 0xe2, 0xbd, 0x37, 0x04, 0xb3, 0xfb, 0x04, + 0xe0, 0xe1, 0xc9, 0xfa, 0x20, 0x85, 0xfb, 0x04, 0xa8, 0x2f, 0x19, 0x62, 0x9f, 0x40, 0xb1, 0x7e, + 0xd7, 0x99, 0x73, 0xaf, 0xc3, 0xb8, 0xb6, 0x95, 0x43, 0xba, 0x0e, 0x05, 0x43, 0x5d, 0x47, 0x29, + 0xf8, 0x4d, 0xea, 0x1e, 0xad, 0x21, 0x4d, 0x8a, 0x9d, 0xab, 0xdd, 0xe9, 0xc3, 0x6c, 0x5c, 0x32, + 0xfb, 0x49, 0x79, 0x65, 0x09, 0xff, 0xad, 0x86, 0x56, 0x48, 0xc4, 0xa5, 0x0e, 0xd4, 0xda, 0x7e, + 0xf2, 0xfe, 0x7f, 0x7d, 0x75, 0x6d, 0xf4, 0xd3, 0xaf, 0xae, 0x8d, 0xfe, 0xf7, 0xab, 0x6b, 0xa3, + 0x9f, 0x7c, 0x7d, 0xed, 0x8d, 0x9f, 0x7e, 0x7d, 0xed, 0x8d, 0xff, 0xf9, 0xfa, 0xda, 0x1b, 0x5f, + 0xbe, 0xa9, 0x7e, 0x36, 0xf7, 0xe5, 0xcf, 0xc9, 0x1f, 0xbf, 0x7d, 0xfc, 0xff, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x45, 0x5f, 0x5b, 0xf3, 0x5a, 0x77, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -509,6 +511,7 @@ type ClientCommandsClient interface { ObjectTypeRelationRemove(ctx context.Context, in *pb.RpcObjectTypeRelationRemoveRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRelationRemoveResponse, error) ObjectTypeRecommendedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedRelationsSetResponse, error) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, in *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse, error) + ObjectTypeListConflictingRelations(ctx context.Context, in *pb.RpcObjectTypeListConflictingRelationsRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeListConflictingRelationsResponse, error) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) HistoryGetVersions(ctx context.Context, in *pb.RpcHistoryGetVersionsRequest, opts ...grpc.CallOption) (*pb.RpcHistoryGetVersionsResponse, error) HistorySetVersion(ctx context.Context, in *pb.RpcHistorySetVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistorySetVersionResponse, error) @@ -1726,6 +1729,15 @@ func (c *clientCommandsClient) ObjectTypeRecommendedFeaturedRelationsSet(ctx con return out, nil } +func (c *clientCommandsClient) ObjectTypeListConflictingRelations(ctx context.Context, in *pb.RpcObjectTypeListConflictingRelationsRequest, opts ...grpc.CallOption) (*pb.RpcObjectTypeListConflictingRelationsResponse, error) { + out := new(pb.RpcObjectTypeListConflictingRelationsResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectTypeListConflictingRelations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) HistoryShowVersion(ctx context.Context, in *pb.RpcHistoryShowVersionRequest, opts ...grpc.CallOption) (*pb.RpcHistoryShowVersionResponse, error) { out := new(pb.RpcHistoryShowVersionResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/HistoryShowVersion", in, out, opts...) @@ -3325,6 +3337,7 @@ type ClientCommandsServer interface { ObjectTypeRelationRemove(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse ObjectTypeRecommendedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse ObjectTypeRecommendedFeaturedRelationsSet(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse + ObjectTypeListConflictingRelations(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse HistoryShowVersion(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse HistoryGetVersions(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse HistorySetVersion(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse @@ -3866,6 +3879,9 @@ func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedRelationsSet(ctx func (*UnimplementedClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(ctx context.Context, req *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { return nil } +func (*UnimplementedClientCommandsServer) ObjectTypeListConflictingRelations(ctx context.Context, req *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse { + return nil +} func (*UnimplementedClientCommandsServer) HistoryShowVersion(ctx context.Context, req *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse { return nil } @@ -6367,6 +6383,24 @@ func _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler(srv inter return interceptor(ctx, in, info, handler) } +func _ClientCommands_ObjectTypeListConflictingRelations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectTypeListConflictingRelationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectTypeListConflictingRelations(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectTypeListConflictingRelations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectTypeListConflictingRelations(ctx, req.(*pb.RpcObjectTypeListConflictingRelationsRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_HistoryShowVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcHistoryShowVersionRequest) if err := dec(in); err != nil { @@ -9703,6 +9737,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectTypeRecommendedFeaturedRelationsSet", Handler: _ClientCommands_ObjectTypeRecommendedFeaturedRelationsSet_Handler, }, + { + MethodName: "ObjectTypeListConflictingRelations", + Handler: _ClientCommands_ObjectTypeListConflictingRelations_Handler, + }, { MethodName: "HistoryShowVersion", Handler: _ClientCommands_HistoryShowVersion_Handler, From 67ae43f5bd10642f8b8936e07785d6c2650d4cae Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 17:30:50 +0300 Subject: [PATCH 047/176] GO-4677 Include featured relations --- core/block/detailservice/relations.go | 7 +++++-- core/block/detailservice/relations_test.go | 16 ++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index f8241081d..3404b1c1e 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -8,6 +8,7 @@ import ( "strings" "time" + "github.com/samber/lo" "go.uber.org/zap" "golang.org/x/exp/maps" @@ -103,8 +104,10 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin } recommendedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations) + recommendedFeaturedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations) + allRecommendedRelations := lo.Uniq(append(recommendedRelations, recommendedFeaturedRelations...)) - allRelationKeys := make([]string, 0, len(recommendedRelations)) + allRelationKeys := make([]string, 0, len(allRecommendedRelations)) err = s.store.SpaceIndex(spaceId).QueryIterate(database.Query{Filters: []database.FilterRequest{ { RelationKey: bundle.RelationKeyType, @@ -146,7 +149,7 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin conflictingRelations := make([]string, 0, len(records)) for _, record := range records { id := record.Details.GetString(bundle.RelationKeyId) - if !slices.Contains(recommendedRelations, id) { + if !slices.Contains(allRecommendedRelations, id) { conflictingRelations = append(conflictingRelations, id) } } diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index 1b167f412..c4535e3dc 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -315,6 +315,10 @@ func TestService_ObjectTypeListConflictingRelations(t *testing.T) { // object type { bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyRecommendedFeaturedRelations: domain.StringList([]string{ + bundle.RelationKeyType.URL(), + bundle.RelationKeyName.URL(), + }), bundle.RelationKeyRecommendedRelations: domain.StringList([]string{ bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), @@ -323,11 +327,11 @@ func TestService_ObjectTypeListConflictingRelations(t *testing.T) { }, // objects { - bundle.RelationKeyId: domain.String("task1"), // 1 - bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), // 2 - bundle.RelationKeyName: domain.String("Invent alphabet"), // 3 + bundle.RelationKeyId: domain.String("task1"), // 1 + bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyName: domain.String("Invent alphabet"), bundle.RelationKeyAssignee: domain.StringList([]string{"Kirill", "Methodius"}), - bundle.RelationKeyDueDate: domain.Int64(863), // 4 + bundle.RelationKeyDueDate: domain.Int64(863), // 2 }, { bundle.RelationKeyId: domain.String("task2"), @@ -335,7 +339,7 @@ func TestService_ObjectTypeListConflictingRelations(t *testing.T) { bundle.RelationKeyName: domain.String("Fight CO2 pollution"), bundle.RelationKeyAssignee: domain.StringList([]string{"Humanity"}), bundle.RelationKeyDone: domain.Bool(false), - bundle.RelationKeyStatus: domain.String("In Progress"), // 5 + bundle.RelationKeyStatus: domain.String("In Progress"), // 3 }, // relations generateRelationTestObject(bundle.RelationKeyId), @@ -352,7 +356,7 @@ func TestService_ObjectTypeListConflictingRelations(t *testing.T) { // then assert.NoError(t, err) - assert.Len(t, relations, 5) + assert.Len(t, relations, 3) }) } From 467357986673f66ec839761fc8c8fa0249494eec Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 20:39:14 +0300 Subject: [PATCH 048/176] GO-4787 Add relations for default view settings --- core/block/editor/converter/layout.go | 32 +++++++++++++++++++++- core/block/editor/converter/layout_test.go | 10 ++++++- core/block/object/objectcreator/creator.go | 8 ++++++ core/block/template/service.go | 15 +++++++--- pkg/lib/bundle/relation.gen.go | 32 +++++++++++++++++++++- pkg/lib/bundle/relations.json | 20 ++++++++++++++ pkg/lib/bundle/systemRelations.gen.go | 4 ++- pkg/lib/bundle/systemRelations.json | 4 ++- 8 files changed, 116 insertions(+), 9 deletions(-) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index 60de26c3e..11eb4b4bd 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -3,9 +3,12 @@ package converter import ( "fmt" - "github.com/anyproto/any-sync/app" + "go.uber.org/zap" "golang.org/x/exp/slices" + "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/app/logger" + "github.com/anyproto/anytype-heart/core/block/editor/dataview" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/editor/template" @@ -30,6 +33,8 @@ type layoutConverter struct { sbtProvider typeprovider.SmartBlockTypeProvider } +var log = logger.NewNamed("client.space") + func NewLayoutConverter() LayoutConverter { return &layoutConverter{} } @@ -141,6 +146,9 @@ func (c *layoutConverter) fromAnyToSet(st *state.State) error { if err != nil { return err } + if err = c.insertTypeLevelFieldsToDataview(dvBlock, st); err != nil { + log.Error("failed to insert type level fields to dataview block", zap.Error(err)) + } template.InitTemplate(st, template.WithDataview(dvBlock, false)) return nil } @@ -212,6 +220,9 @@ func (c *layoutConverter) fromNoteToCollection(st *state.State) error { func (c *layoutConverter) fromAnyToCollection(st *state.State) error { blockContent := template.MakeDataviewContent(true, nil, nil) + if err := c.insertTypeLevelFieldsToDataview(blockContent, st); err != nil { + log.Error("failed to insert type level fields to dataview block", zap.Error(err)) + } template.InitTemplate(st, template.WithDataview(blockContent, false)) return nil } @@ -311,3 +322,22 @@ func (c *layoutConverter) appendTypesFilter(types []string, filters []database.F } return filters } + +func (c *layoutConverter) insertTypeLevelFieldsToDataview(block *model.BlockContentOfDataview, st *state.State) error { + typeId := st.LocalDetails().GetString(bundle.RelationKeyType) + records, err := c.objectStore.SpaceIndex(st.SpaceID()).QueryByIds([]string{typeId}) + if err != nil { + return fmt.Errorf("failed to get type object from store: %w", err) + } + if len(records) != 1 { + return fmt.Errorf("failed to get type object: expected 1 record, got %d", len(records)) + } + + viewType := records[0].Details.GetInt64(bundle.RelationKeyDefaultViewType) + defaultTypeId := records[0].Details.GetString(bundle.RelationKeyDefaultTypeId) + + block.Dataview.Views[0].Type = model.BlockContentDataviewViewType(viewType) + block.Dataview.Views[0].DefaultObjectTypeId = defaultTypeId + + return nil +} diff --git a/core/block/editor/converter/layout_test.go b/core/block/editor/converter/layout_test.go index bd673019e..4b59ce3c9 100644 --- a/core/block/editor/converter/layout_test.go +++ b/core/block/editor/converter/layout_test.go @@ -28,6 +28,11 @@ func TestLayoutConverter_Convert(t *testing.T) { bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), bundle.RelationKeySpaceId: domain.String(spaceId), bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyTask.URL()), + }, { + bundle.RelationKeyId: domain.String(bundle.TypeKeySet.URL()), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyDefaultTypeId: domain.String(bundle.TypeKeySet.URL()), + bundle.RelationKeyDefaultViewType: domain.Int64(int64(model.BlockContentDataviewView_Gallery)), }}) for _, from := range []model.ObjectTypeLayout{ @@ -45,6 +50,7 @@ func TestLayoutConverter_Convert(t *testing.T) { st.SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ bundle.RelationKeySpaceId: domain.String(spaceId), bundle.RelationKeySetOf: domain.StringList([]string{bundle.TypeKeyTask.URL()}), + bundle.RelationKeyType: domain.String(bundle.TypeKeySet.URL()), })) lc := layoutConverter{objectStore: store} @@ -58,8 +64,10 @@ func TestLayoutConverter_Convert(t *testing.T) { assert.NotNil(t, dvb) dv := dvb.Model().GetDataview() require.NotNil(t, dv) - assert.NotEmpty(t, dv.Views) assert.NotEmpty(t, dv.RelationLinks) + assert.Len(t, dv.Views, 1) + assert.Equal(t, bundle.TypeKeySet.URL(), dv.Views[0].DefaultObjectTypeId) + assert.Equal(t, model.BlockContentDataviewView_Gallery, dv.Views[0].Type) }) } } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 4a91fbdbc..807aa14fc 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -14,6 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -160,6 +161,13 @@ func (s *service) createObjectFromTemplate( details *domain.Details, templateId string, ) (id string, newDetails *domain.Details, err error) { + typeId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, string(objectTypeKeys[0]))) + if err != nil { + return "", nil, fmt.Errorf("failed to derive object type id: %w", err) + } + // we should enrich details with spaceId and type to use type object to form state of new object + details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) + details.Set(bundle.RelationKeyType, domain.String(typeId)) createState, err := s.templateService.CreateTemplateStateWithDetails(templateId, details) if err != nil { return diff --git a/core/block/template/service.go b/core/block/template/service.go index ff51da8fb..fa488f098 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -8,6 +8,7 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/spacestorage" "github.com/samber/lo" + "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/block/cache" "github.com/anyproto/anytype-heart/core/block/editor/converter" @@ -98,7 +99,7 @@ func (s *service) CreateTemplateStateWithDetails( ) (targetState *state.State, err error) { if templateId == BlankTemplateId || templateId == "" { layout := details.GetInt64(bundle.RelationKeyLayout) - targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout)) + targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout), details) } else { targetState, err = s.createCustomTemplateState(templateId) if err != nil { @@ -116,7 +117,7 @@ func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, de st, err := s.buildState(sb) if err != nil { layout := details.GetInt64(bundle.RelationKeyLayout) - st = s.createBlankTemplateState(model.ObjectTypeLayout(layout)) + st = s.createBlankTemplateState(model.ObjectTypeLayout(layout), nil) } addDetailsToState(st, details) return st @@ -158,7 +159,7 @@ func (s *service) createCustomTemplateState(templateId string) (targetState *sta return nil }) if errors.Is(err, spacestorage.ErrTreeStorageAlreadyDeleted) { - return s.createBlankTemplateState(model.ObjectType_basic), nil + return s.createBlankTemplateState(model.ObjectType_basic, nil), nil } return } @@ -335,7 +336,7 @@ func (s *service) TemplateExportAll(ctx context.Context, path string) (string, e return path, err } -func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout) (st *state.State) { +func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout, details *domain.Details) (st *state.State) { st = state.NewDoc(BlankTemplateId, nil).NewState() template.InitTemplate(st, template.WithEmpty, template.WithDefaultFeaturedRelations, @@ -344,6 +345,12 @@ func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout) (st *s template.WithDetail(bundle.RelationKeyTag, domain.StringList(nil)), template.WithTitle, ) + if slices.Contains([]model.ObjectTypeLayout{model.ObjectType_set, model.ObjectType_collection}, layout) && details != nil { + template.InitTemplate(st, + template.WithDetail(bundle.RelationKeySpaceId, details.Get(bundle.RelationKeySpaceId)), + template.WithDetail(bundle.RelationKeyType, details.Get(bundle.RelationKeyType)), + ) + } if err := s.converter.Convert(st, model.ObjectType_basic, layout); err != nil { log.Errorf("failed to set '%s' layout to blank template: %v", layout.String(), err) } diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 8a6091f57..044f494b1 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "988fe0e151919f1331d67f7334d80efa82c85a3655c4cdcc11309d248513c37d" +const RelationChecksum = "edeeae3595f2095e368d8bfe083cccb9b0b1b4ffefb247b3ac7a9bcb39354f02" const ( RelationKeyTag domain.RelationKey = "tag" RelationKeyCamera domain.RelationKey = "camera" @@ -147,6 +147,8 @@ const ( RelationKeyRecommendedFeaturedRelations domain.RelationKey = "recommendedFeaturedRelations" RelationKeyLayoutWidth domain.RelationKey = "layoutWidth" RelationKeySpaceOrder domain.RelationKey = "spaceOrder" + RelationKeyDefaultViewType domain.RelationKey = "defaultViewType" + RelationKeyDefaultTypeId domain.RelationKey = "defaultTypeId" ) var ( @@ -460,6 +462,34 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyDefaultTypeId: { + + DataSource: model.Relation_details, + Description: "Default object type id that will be set to new sets/collections", + Format: model.RelationFormat_object, + Hidden: true, + Id: "_brdefaultTypeId", + Key: "defaultTypeId", + MaxCount: 1, + Name: "Default type id", + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, + RelationKeyDefaultViewType: { + + DataSource: model.Relation_details, + Description: "Default view type that will be used for new sets/collections", + Format: model.RelationFormat_number, + Hidden: true, + Id: "_brdefaultViewType", + Key: "defaultViewType", + MaxCount: 1, + Name: "Default view type", + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyDescription: { DataSource: model.Relation_details, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index 5c45e1120..d6b2faff3 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1399,5 +1399,25 @@ "name": "Space order", "readonly": true, "source": "details" + }, + { + "description": "Default view type that will be used for new sets/collections", + "format": "number", + "hidden": true, + "key": "defaultViewType", + "maxCount": 1, + "name": "Default view type", + "readonly": false, + "source": "details" + }, + { + "description": "Default object type id that will be set to new sets/collections", + "format": "object", + "hidden": true, + "key": "defaultTypeId", + "maxCount": 1, + "name": "Default type id", + "readonly": false, + "source": "details" } ] diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index d5451b10e..26a1740db 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "1e5b0e9052b1eaada03cb90e8703e8bc34b5be7180aa17933afaee74209af65b" +const SystemRelationsChecksum = "b8f59cddcb6220ca5830f84ce73f5d6ec098ea13def849b31fc61881d9fe95a7" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations @@ -84,4 +84,6 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyTimestamp, RelationKeyRecommendedFeaturedRelations, RelationKeyLayoutWidth, + RelationKeyDefaultViewType, + RelationKeyDefaultTypeId, }...) diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index 2ea17f250..d8394875f 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -92,5 +92,7 @@ "hasChat", "timestamp", "recommendedFeaturedRelations", - "layoutWidth" + "layoutWidth", + "defaultViewType", + "defaultTypeId" ] From 42c07e56784b930951e62bad93085f03f5a0041a Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 20:53:13 +0300 Subject: [PATCH 049/176] GO-4677 Fix mocks --- .../mock_detailservice/mock_Service.go | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/core/block/detailservice/mock_detailservice/mock_Service.go b/core/block/detailservice/mock_detailservice/mock_Service.go index f7dcce275..48c6baa64 100644 --- a/core/block/detailservice/mock_detailservice/mock_Service.go +++ b/core/block/detailservice/mock_detailservice/mock_Service.go @@ -320,6 +320,65 @@ func (_c *MockService_ObjectTypeAddRelations_Call) RunAndReturn(run func(context return _c } +// ObjectTypeListConflictingRelations provides a mock function with given fields: spaceId, typeKey +func (_m *MockService) ObjectTypeListConflictingRelations(spaceId string, typeKey string) ([]string, error) { + ret := _m.Called(spaceId, typeKey) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeListConflictingRelations") + } + + var r0 []string + var r1 error + if rf, ok := ret.Get(0).(func(string, string) ([]string, error)); ok { + return rf(spaceId, typeKey) + } + if rf, ok := ret.Get(0).(func(string, string) []string); ok { + r0 = rf(spaceId, typeKey) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]string) + } + } + + if rf, ok := ret.Get(1).(func(string, string) error); ok { + r1 = rf(spaceId, typeKey) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_ObjectTypeListConflictingRelations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeListConflictingRelations' +type MockService_ObjectTypeListConflictingRelations_Call struct { + *mock.Call +} + +// ObjectTypeListConflictingRelations is a helper method to define mock.On call +// - spaceId string +// - typeKey string +func (_e *MockService_Expecter) ObjectTypeListConflictingRelations(spaceId interface{}, typeKey interface{}) *MockService_ObjectTypeListConflictingRelations_Call { + return &MockService_ObjectTypeListConflictingRelations_Call{Call: _e.mock.On("ObjectTypeListConflictingRelations", spaceId, typeKey)} +} + +func (_c *MockService_ObjectTypeListConflictingRelations_Call) Run(run func(spaceId string, typeKey string)) *MockService_ObjectTypeListConflictingRelations_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockService_ObjectTypeListConflictingRelations_Call) Return(relationObjectIds []string, err error) *MockService_ObjectTypeListConflictingRelations_Call { + _c.Call.Return(relationObjectIds, err) + return _c +} + +func (_c *MockService_ObjectTypeListConflictingRelations_Call) RunAndReturn(run func(string, string) ([]string, error)) *MockService_ObjectTypeListConflictingRelations_Call { + _c.Call.Return(run) + return _c +} + // ObjectTypeRemoveRelations provides a mock function with given fields: ctx, objectTypeId, relationKeys func (_m *MockService) ObjectTypeRemoveRelations(ctx context.Context, objectTypeId string, relationKeys []domain.RelationKey) error { ret := _m.Called(ctx, objectTypeId, relationKeys) From 65c78734b2d950e4f4889563d28af9b3605cbdcb Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 20:56:25 +0300 Subject: [PATCH 050/176] GO-4787 Fix lint --- core/block/editor/converter/layout.go | 1 + core/block/template/service.go | 2 ++ 2 files changed, 3 insertions(+) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index 11eb4b4bd..bd6cca37d 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -336,6 +336,7 @@ func (c *layoutConverter) insertTypeLevelFieldsToDataview(block *model.BlockCont viewType := records[0].Details.GetInt64(bundle.RelationKeyDefaultViewType) defaultTypeId := records[0].Details.GetString(bundle.RelationKeyDefaultTypeId) + // nolint:gosec block.Dataview.Views[0].Type = model.BlockContentDataviewViewType(viewType) block.Dataview.Views[0].DefaultObjectTypeId = defaultTypeId diff --git a/core/block/template/service.go b/core/block/template/service.go index fa488f098..5a227724f 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -99,6 +99,7 @@ func (s *service) CreateTemplateStateWithDetails( ) (targetState *state.State, err error) { if templateId == BlankTemplateId || templateId == "" { layout := details.GetInt64(bundle.RelationKeyLayout) + // nolint:gosec targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout), details) } else { targetState, err = s.createCustomTemplateState(templateId) @@ -117,6 +118,7 @@ func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, de st, err := s.buildState(sb) if err != nil { layout := details.GetInt64(bundle.RelationKeyLayout) + // nolint:gosec st = s.createBlankTemplateState(model.ObjectTypeLayout(layout), nil) } addDetailsToState(st, details) From fed4b45beec59e60b17deb8af79113fbf6bd3bf6 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 9 Jan 2025 21:50:10 +0300 Subject: [PATCH 051/176] GO-4787 Fix creator test --- core/block/object/objectcreator/creator_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/block/object/objectcreator/creator_test.go b/core/block/object/objectcreator/creator_test.go index df8a95daf..0c87f11ea 100644 --- a/core/block/object/objectcreator/creator_test.go +++ b/core/block/object/objectcreator/creator_test.go @@ -77,6 +77,7 @@ func TestService_CreateObject(t *testing.T) { f.spaceService.EXPECT().Get(mock.Anything, mock.Anything).Return(f.spc, nil) f.spc.EXPECT().CreateTreeObject(mock.Anything, mock.Anything).Return(sb, nil) f.spc.EXPECT().Id().Return(spaceId) + f.spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).Return(bundle.TypeKeyTask.URL(), nil) f.lastUsedService.EXPECT().UpdateLastUsedDate(spaceId, bundle.TypeKeyTemplate, mock.Anything).Return() // when From 3133291d9df799ce8de61cd54f08c24e13699d5a Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 10 Jan 2025 14:56:46 +0300 Subject: [PATCH 052/176] GO-4787 Fix comments --- core/block/editor/converter/layout.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index bd6cca37d..9432c1d46 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -33,7 +33,7 @@ type layoutConverter struct { sbtProvider typeprovider.SmartBlockTypeProvider } -var log = logger.NewNamed("client.space") +var log = logger.NewNamed("layout.converter") func NewLayoutConverter() LayoutConverter { return &layoutConverter{} @@ -330,7 +330,7 @@ func (c *layoutConverter) insertTypeLevelFieldsToDataview(block *model.BlockCont return fmt.Errorf("failed to get type object from store: %w", err) } if len(records) != 1 { - return fmt.Errorf("failed to get type object: expected 1 record, got %d", len(records)) + return fmt.Errorf("failed to get type object: expected 1 record") } viewType := records[0].Details.GetInt64(bundle.RelationKeyDefaultViewType) From 94b45bb638cdfe4b0b1221996ec0acb6f556fb8b Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 10 Jan 2025 15:00:08 +0300 Subject: [PATCH 053/176] GO-4677 Fix comments --- core/block/detailservice/relations.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 3404b1c1e..48b7341e6 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -100,7 +100,7 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin } if len(records) != 1 { - return nil, fmt.Errorf("failed to query object type, expected 1 record, got %d", len(records)) + return nil, fmt.Errorf("failed to query object type, expected 1 record") } recommendedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations) @@ -143,7 +143,7 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin return nil, fmt.Errorf("failed to fetch relations by keys: %w", err) } if len(records) != len(allRelationKeys) { - return nil, fmt.Errorf("failed to query relations from store, expected %d record, got %d", len(allRelationKeys), len(records)) + return nil, fmt.Errorf("failed to query relations from store, number of records is less than expected") } conflictingRelations := make([]string, 0, len(records)) From 6e8fc33a5bc0e48a6d6c70095e49c41b7b9e6964 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 10 Jan 2025 16:32:56 +0300 Subject: [PATCH 054/176] GO-4222 Remove details restriction for editable types --- core/block/restriction/object.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index 2574c14f8..fde81a9cc 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -154,6 +154,8 @@ var ( } ) +var editableSystemTypes = []domain.TypeKey{bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote} + func GetRestrictionsBySBType(sbType smartblock.SmartBlockType) []int { restrictions := objectRestrictionsBySBType[sbType] result := make([]int, len(restrictions)) @@ -226,7 +228,7 @@ func getRestrictionsForUniqueKey(uk domain.UniqueKey) (r ObjectRestrictions) { switch uk.SmartblockType() { case smartblock.SmartBlockTypeObjectType: key := uk.InternalKey() - if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) { + if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) && !lo.Contains(editableSystemTypes, domain.TypeKey(key)) { r = sysTypesRestrictions } if t, _ := bundle.GetType(domain.TypeKey(key)); t != nil && t.RestrictObjectCreation { From 0770a847596a1272a570e710edb898930c8dba16 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 10 Jan 2025 18:03:59 +0300 Subject: [PATCH 055/176] GO-4588 Change layout for templates --- core/block/editor/smartblock/detailsinject.go | 13 ++++++++++++- core/block/editor/smartblock/detailsinject_test.go | 8 +++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 10b933aef..bc093f32b 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -294,8 +294,19 @@ func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, return fmt.Errorf("failed to get objects of single type: %w", err) } + templates, err := index.Query(database.Query{Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyTargetObjectType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(sb.Id()), + }, + }}) + if err != nil { + return fmt.Errorf("failed to get templates with this target type: %w", err) + } + var resultErr error - for _, record := range records { + for _, record := range append(records, templates...) { id := record.Details.GetString(bundle.RelationKeyId) if id == "" { continue diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go index 7589a1428..a252178f5 100644 --- a/core/block/editor/smartblock/detailsinject_test.go +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -403,10 +403,16 @@ func TestChangeResolvedLayoutForObjects(t *testing.T) { bundle.RelationKeyType: domain.String(typeId), bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_profile)), }, + { + bundle.RelationKeyId: domain.String("tmpl"), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate.URL()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_basic)), + bundle.RelationKeyTargetObjectType: domain.String(typeId), + }, }) fx.space.EXPECT().DoLockedIfNotExists(mock.Anything, mock.Anything).RunAndReturn(func(id string, f func() error) error { - if id == "obj1" { + if id == "obj1" || id == "tmpl" { return f() } return ocache.ErrExists From 05068870217084223b1f8d803abaa202c0572753 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 13 Jan 2025 12:34:09 +0300 Subject: [PATCH 056/176] GO-4588 Set layout for not-pages --- core/block/editor/accountobject/accountobject.go | 3 ++- core/block/editor/dashboard.go | 4 +++- core/block/editor/page.go | 11 +++++++++-- core/block/editor/participant.go | 3 ++- core/block/editor/profile.go | 4 +++- core/block/editor/spaceview.go | 4 +++- core/block/editor/template/template.go | 14 +++++++++++++- core/block/editor/widget.go | 4 +++- core/block/editor/workspaces.go | 3 ++- core/block/import/csv/collectionstrategy.go | 1 + core/block/import/notion/api/database/database.go | 1 + core/block/import/notion/api/page/task.go | 2 ++ core/block/object/objectcreator/chat.go | 1 + core/block/object/objectcreator/object_type.go | 1 + core/block/object/objectcreator/relation.go | 1 + core/block/object/objectcreator/relation_option.go | 1 + core/block/source/date.go | 1 + core/block/source/store.go | 1 + core/files/file.go | 4 ++++ core/files/fileobject/service.go | 1 + core/relationutils/objecttype.go | 1 + core/relationutils/relation.go | 1 + 22 files changed, 57 insertions(+), 10 deletions(-) diff --git a/core/block/editor/accountobject/accountobject.go b/core/block/editor/accountobject/accountobject.go index fec67f4d1..9763e0120 100644 --- a/core/block/editor/accountobject/accountobject.go +++ b/core/block/editor/accountobject/accountobject.go @@ -206,7 +206,8 @@ func (a *accountObject) initState(st *state.State) error { template.InitTemplate(st, template.WithTitle, template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeyProfile}), - template.WithForcedDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_profile)), + template.WithResolvedLayout(model.ObjectType_profile), + template.WithLayout(model.ObjectType_profile), template.WithDetail(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)), ) blockId := "identity" diff --git a/core/block/editor/dashboard.go b/core/block/editor/dashboard.go index 0e1f968d8..ff0d218ee 100644 --- a/core/block/editor/dashboard.go +++ b/core/block/editor/dashboard.go @@ -57,7 +57,9 @@ func (p *Dashboard) CreationStateMigration(ctx *smartblock.InitContext) migratio Version: 2, Proc: func(st *state.State) { template.InitTemplate(st, - template.WithObjectTypesAndLayout([]domain.TypeKey{bundle.TypeKeyDashboard}, model.ObjectType_dashboard), + template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyDashboard}), + template.WithLayout(model.ObjectType_dashboard), + template.WithResolvedLayout(model.ObjectType_dashboard), template.WithEmpty, template.WithDetailName("Home"), template.WithDetailIconEmoji("ðŸ "), diff --git a/core/block/editor/page.go b/core/block/editor/page.go index fd7f23470..e1d13b9ed 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -172,7 +172,8 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig templates := []template.StateTransformer{ template.WithEmpty, - template.WithObjectTypesAndLayout(ctx.State.ObjectTypeKeys(), layout), + template.WithObjectTypes(ctx.State.ObjectTypeKeys()), + template.WithResolvedLayout(layout), template.WithDefaultFeaturedRelations, template.WithFeaturedRelations, template.WithLinkFieldsMigration, @@ -203,27 +204,33 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig templates = append(templates, template.WithTitle, template.WithAddedFeaturedRelation(bundle.RelationKeyType), + template.WithLayout(layout), ) case model.ObjectType_objectType: templates = append(templates, template.WithTitle, template.WithAddedFeaturedRelation(bundle.RelationKeyType), + template.WithLayout(layout), ) case model.ObjectType_chat: templates = append(templates, template.WithTitle, template.WithBlockChat, + template.WithLayout(layout), ) case model.ObjectType_chatDerived: templates = append(templates, template.WithTitle, template.WithBlockChat, + template.WithLayout(layout), ) // TODO case for relationOption? case model.ObjectType_tag: templates = append(templates, template.WithTitle, - template.WithNoDescription) + template.WithNoDescription, + template.WithLayout(layout), + ) default: templates = append(templates, template.WithTitle, diff --git a/core/block/editor/participant.go b/core/block/editor/participant.go index d709235eb..af9d49a31 100644 --- a/core/block/editor/participant.go +++ b/core/block/editor/participant.go @@ -49,7 +49,6 @@ func (p *participant) Init(ctx *smartblock.InitContext) (err error) { ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsReadonly, domain.Bool(true)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsArchived, domain.Bool(false)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyIsHidden, domain.Bool(false)) - ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_participant)) ctx.State.SetDetailAndBundledRelation(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)) records, err := p.objectStore.QueryByIds([]string{p.Id()}) @@ -64,6 +63,8 @@ func (p *participant) Init(ctx *smartblock.InitContext) (err error) { template.WithTitle, template.WithDescription, template.WithFeaturedRelations, + template.WithLayout(model.ObjectType_participant), + template.WithResolvedLayout(model.ObjectType_participant), template.WithAddedFeaturedRelation(bundle.RelationKeyType), template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), ) diff --git a/core/block/editor/profile.go b/core/block/editor/profile.go index 6fc78d754..a2e85eb01 100644 --- a/core/block/editor/profile.go +++ b/core/block/editor/profile.go @@ -80,7 +80,9 @@ func (p *Profile) CreationStateMigration(ctx *smartblock.InitContext) migration. Version: 4, Proc: func(st *state.State) { template.InitTemplate(st, - template.WithObjectTypesAndLayout([]domain.TypeKey{bundle.TypeKeyProfile}, model.ObjectType_profile), + template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyProfile}), + template.WithLayout(model.ObjectType_profile), + template.WithResolvedLayout(model.ObjectType_profile), template.WithDetail(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)), migrationSetHidden, ) diff --git a/core/block/editor/spaceview.go b/core/block/editor/spaceview.go index 1d7eaf657..a736408cb 100644 --- a/core/block/editor/spaceview.go +++ b/core/block/editor/spaceview.go @@ -112,7 +112,9 @@ func (s *SpaceView) StateMigrations() migration.Migrations { func (s *SpaceView) initTemplate(st *state.State) { template.InitTemplate(st, - template.WithObjectTypesAndLayout([]domain.TypeKey{bundle.TypeKeySpaceView}, model.ObjectType_spaceView), + template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeySpaceView}), + template.WithLayout(model.ObjectType_spaceView), + template.WithResolvedLayout(model.ObjectType_spaceView), ) } diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index 3b3f0c756..a706827b5 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -90,20 +90,32 @@ var WithRequiredRelations = func(s *state.State) { WithRelations(bundle.RequiredInternalRelations)(s) } -var WithObjectTypesAndLayout = func(otypes []domain.TypeKey, layout model.ObjectTypeLayout) StateTransformer { +var WithObjectTypes = func(otypes []domain.TypeKey) StateTransformer { return func(s *state.State) { if len(s.ObjectTypeKeys()) == 0 { s.SetObjectTypeKeys(otypes) } else { otypes = s.ObjectTypeKeys() } + } +} +var WithResolvedLayout = func(layout model.ObjectTypeLayout) StateTransformer { + return func(s *state.State) { if !s.LocalDetails().Has(bundle.RelationKeyResolvedLayout) { s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) } } } +var WithLayout = func(layout model.ObjectTypeLayout) StateTransformer { + return func(s *state.State) { + if !s.Details().Has(bundle.RelationKeyLayout) { + s.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(layout)) + } + } +} + var WithDetailName = func(name string) StateTransformer { return WithDetail(bundle.RelationKeyName, domain.String(name)) } diff --git a/core/block/editor/widget.go b/core/block/editor/widget.go index e55f334ad..8a4245390 100644 --- a/core/block/editor/widget.go +++ b/core/block/editor/widget.go @@ -53,7 +53,9 @@ func (w *WidgetObject) CreationStateMigration(ctx *smartblock.InitContext) migra Proc: func(st *state.State) { template.InitTemplate(st, template.WithEmpty, - template.WithObjectTypesAndLayout([]domain.TypeKey{bundle.TypeKeyDashboard}, model.ObjectType_dashboard), + template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyDashboard}), + template.WithLayout(model.ObjectType_dashboard), + template.WithResolvedLayout(model.ObjectType_dashboard), template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), ) }, diff --git a/core/block/editor/workspaces.go b/core/block/editor/workspaces.go index 2cd389616..ce90341f0 100644 --- a/core/block/editor/workspaces.go +++ b/core/block/editor/workspaces.go @@ -80,7 +80,8 @@ func (w *Workspaces) initTemplate(ctx *smartblock.InitContext) { template.WithTitle, template.WithFeaturedRelations, template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), - template.WithForcedDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_space)), + template.WithLayout(model.ObjectType_space), + template.WithResolvedLayout(model.ObjectType_space), template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeySpace}), template.WithForcedDetail(bundle.RelationKeyFeaturedRelations, domain.StringList([]string{bundle.RelationKeyType.String(), bundle.RelationKeyCreator.String()})), ) diff --git a/core/block/import/csv/collectionstrategy.go b/core/block/import/csv/collectionstrategy.go index e1990fa4e..b9de17fc1 100644 --- a/core/block/import/csv/collectionstrategy.go +++ b/core/block/import/csv/collectionstrategy.go @@ -178,6 +178,7 @@ func getRelationDetails(name, key string, format float64) *domain.Details { details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { log.Warnf("failed to create unique key for Notion relation: %v", err) diff --git a/core/block/import/notion/api/database/database.go b/core/block/import/notion/api/database/database.go index 4e2cd14bd..4ea706cdc 100644 --- a/core/block/import/notion/api/database/database.go +++ b/core/block/import/notion/api/database/database.go @@ -259,6 +259,7 @@ func (ds *Service) getRelationDetails(databaseProperty property.DatabaseProperty details.SetString(bundle.RelationKeyRelationKey, key) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, databaseProperty.GetID()) uniqueKey, err := domain.NewUniqueKey(sb.SmartBlockTypeRelation, key) if err != nil { diff --git a/core/block/import/notion/api/page/task.go b/core/block/import/notion/api/page/task.go index 762a20cf5..2afed2cda 100644 --- a/core/block/import/notion/api/page/task.go +++ b/core/block/import/notion/api/page/task.go @@ -314,6 +314,7 @@ func (pt *Task) getRelationDetails(key string, name string, propObject property. details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, propObject.GetID()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { @@ -563,6 +564,7 @@ func getDetailsForRelationOption(name, rel string) (string, *domain.Details) { details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, rel) details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelationOption, id) if err != nil { diff --git a/core/block/object/objectcreator/chat.go b/core/block/object/objectcreator/chat.go index b6557e009..468e7c788 100644 --- a/core/block/object/objectcreator/chat.go +++ b/core/block/object/objectcreator/chat.go @@ -42,6 +42,7 @@ func (s *service) createChatDerived(ctx context.Context, space clientspace.Space createState := state.NewDocWithUniqueKey("", nil, key).(*state.State) details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + details.Set(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) createState.SetDetails(details) id, newDetails, err := s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{bundle.TypeKeyChatDerived}, createState) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 2e2cfc019..643fc42a6 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -68,6 +68,7 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, object.SetString(bundle.RelationKeyId, id) object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_objectType)) + object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index addfec523..f9fa0e183 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -57,6 +57,7 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d // todo: check the existence of objectTypes in space. InstallBundledObjects should be called same as for recommendedRelations on type creation object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) + object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/object/objectcreator/relation_option.go b/core/block/object/objectcreator/relation_option.go index 9567f888b..fd7b1336a 100644 --- a/core/block/object/objectcreator/relation_option.go +++ b/core/block/object/objectcreator/relation_option.go @@ -34,6 +34,7 @@ func (s *service) createRelationOption(ctx context.Context, space clientspace.Sp object = details.Copy() object.SetString(bundle.RelationKeyUniqueKey, uniqueKey.Marshal()) object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) + object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) createState.SetDetails(object) diff --git a/core/block/source/date.go b/core/block/source/date.go index 6aea963f9..896895b35 100644 --- a/core/block/source/date.go +++ b/core/block/source/date.go @@ -68,6 +68,7 @@ func (d *date) getDetails() (*domain.Details, error) { bundle.RelationKeyIsArchived: domain.Bool(false), bundle.RelationKeyIsHidden: domain.Bool(false), bundle.RelationKeyResolvedLayout: domain.Float64(float64(model.ObjectType_date)), + bundle.RelationKeyLayout: domain.Float64(float64(model.ObjectType_date)), bundle.RelationKeyIconEmoji: domain.String("📅"), bundle.RelationKeySpaceId: domain.String(d.SpaceID()), bundle.RelationKeyTimestamp: domain.Int64(dateObject.Time().Unix()), diff --git a/core/block/source/store.go b/core/block/source/store.go index 80bce921e..b0e14afd8 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -75,6 +75,7 @@ func (s *store) ReadDoc(ctx context.Context, receiver ChangeReceiver, empty bool // Set object type here in order to derive value of Type relation in smartblock.Init st.SetObjectTypeKey(bundle.TypeKeyChatDerived) st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) st.SetDetailAndBundledRelation(bundle.RelationKeyIsHidden, domain.Bool(true)) return st, nil } diff --git a/core/files/file.go b/core/files/file.go index 580001fc7..3d987ca4a 100644 --- a/core/files/file.go +++ b/core/files/file.go @@ -89,14 +89,17 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er if meta.Media == "application/pdf" { typeKey = bundle.TypeKeyFile details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_pdf)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_pdf)) } if strings.HasPrefix(meta.Media, "video") { typeKey = bundle.TypeKeyVideo details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_video)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_video)) } if strings.HasPrefix(meta.Media, "audio") { details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_audio)) + details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_audio)) if audioDetails, err := f.audioDetails(ctx); err == nil { details = details.Merge(audioDetails) } @@ -105,6 +108,7 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er if filepath.Ext(meta.Name) == constant.SvgExt { typeKey = bundle.TypeKeyImage details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_image)) + details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_image)) } return details, typeKey, nil diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index d73960e69..5b02efbf5 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -346,6 +346,7 @@ func (s *service) makeInitialDetails(fileId domain.FileId, origin objectorigin.O details.SetString(bundle.RelationKeyFileId, fileId.String()) // Use general file layout. It will be changed for proper layout after indexing details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_file)) + details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_file)) details.SetInt64(bundle.RelationKeyFileIndexingStatus, int64(model.FileIndexingStatus_NotIndexed)) details.SetInt64(bundle.RelationKeySyncStatus, int64(domain.ObjectSyncStatusQueued)) details.SetInt64(bundle.RelationKeySyncError, int64(domain.SyncErrorNull)) diff --git a/core/relationutils/objecttype.go b/core/relationutils/objecttype.go index c6f5b1a12..537d04f9a 100644 --- a/core/relationutils/objecttype.go +++ b/core/relationutils/objecttype.go @@ -38,6 +38,7 @@ func (ot *ObjectType) BundledTypeDetails() *domain.Details { det := domain.NewDetails() det.SetString(bundle.RelationKeyType, bundle.TypeKeyObjectType.BundledURL()) det.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_objectType)) + det.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) det.SetString(bundle.RelationKeyName, ot.Name) det.SetString(bundle.RelationKeyCreator, addr.AnytypeProfileId) det.SetString(bundle.RelationKeyIconEmoji, ot.IconEmoji) diff --git a/core/relationutils/relation.go b/core/relationutils/relation.go index 9cc959e53..7241fdd15 100644 --- a/core/relationutils/relation.go +++ b/core/relationutils/relation.go @@ -49,6 +49,7 @@ func (r *Relation) ToDetails() *domain.Details { bundle.RelationKeyIsHidden: domain.Bool(r.GetHidden()), bundle.RelationKeyIsReadonly: domain.Bool(r.GetReadOnlyRelation()), bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_relation)), bundle.RelationKeyName: domain.String(r.GetName()), bundle.RelationKeyRelationDefaultValue: domain.ValueFromProto(r.GetDefaultValue()), bundle.RelationKeyRelationFormat: domain.Float64(float64(r.GetFormat())), From 3fa373014b7cb43422e8edb73edaa850b9c09edf Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 13 Jan 2025 16:12:53 +0300 Subject: [PATCH 057/176] GO-4823 File and hidden rec rels WIP --- pkg/lib/bundle/relation.gen.go | 32 ++++++++++++++++++++++++++- pkg/lib/bundle/relations.json | 26 ++++++++++++++++++++++ pkg/lib/bundle/systemRelations.gen.go | 4 +++- pkg/lib/bundle/systemRelations.json | 2 ++ 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go index 044f494b1..d34811c88 100644 --- a/pkg/lib/bundle/relation.gen.go +++ b/pkg/lib/bundle/relation.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const RelationChecksum = "edeeae3595f2095e368d8bfe083cccb9b0b1b4ffefb247b3ac7a9bcb39354f02" +const RelationChecksum = "6bc8ce850001905263ba1ac86611612981e5f0b579701ae5713f2999a2607655" const ( RelationKeyTag domain.RelationKey = "tag" RelationKeyCamera domain.RelationKey = "camera" @@ -149,6 +149,8 @@ const ( RelationKeySpaceOrder domain.RelationKey = "spaceOrder" RelationKeyDefaultViewType domain.RelationKey = "defaultViewType" RelationKeyDefaultTypeId domain.RelationKey = "defaultTypeId" + RelationKeyRecommendedHiddenRelations domain.RelationKey = "recommendedHiddenRelations" + RelationKeyRecommendedFileRelations domain.RelationKey = "recommendedFileRelations" ) var ( @@ -1354,6 +1356,34 @@ var ( ReadOnlyRelation: true, Scope: model.Relation_type, }, + RelationKeyRecommendedFileRelations: { + + DataSource: model.Relation_details, + Description: "List of recommended file-specific relations", + Format: model.RelationFormat_object, + Hidden: true, + Id: "_brrecommendedFileRelations", + Key: "recommendedFileRelations", + Name: "Recommended file relations", + ObjectTypes: []string{TypePrefix + "relation"}, + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, + RelationKeyRecommendedHiddenRelations: { + + DataSource: model.Relation_details, + Description: "List of recommended relations that are hidden in layout", + Format: model.RelationFormat_object, + Hidden: true, + Id: "_brrecommendedHiddenRelations", + Key: "recommendedHiddenRelations", + Name: "Recommended hidden relations", + ObjectTypes: []string{TypePrefix + "relation"}, + ReadOnly: false, + ReadOnlyRelation: true, + Scope: model.Relation_type, + }, RelationKeyRecommendedLayout: { DataSource: model.Relation_details, diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json index d6b2faff3..dee7f9400 100644 --- a/pkg/lib/bundle/relations.json +++ b/pkg/lib/bundle/relations.json @@ -1419,5 +1419,31 @@ "name": "Default type id", "readonly": false, "source": "details" + }, + { + "description": "List of recommended relations that are hidden in layout", + "format": "object", + "hidden": true, + "key": "recommendedHiddenRelations", + "maxCount": 0, + "name": "Recommended hidden relations", + "objectTypes": [ + "relation" + ], + "readonly": false, + "source": "details" + }, + { + "description": "List of recommended file-specific relations", + "format": "object", + "hidden": true, + "key": "recommendedFileRelations", + "maxCount": 0, + "name": "Recommended file relations", + "objectTypes": [ + "relation" + ], + "readonly": false, + "source": "details" } ] diff --git a/pkg/lib/bundle/systemRelations.gen.go b/pkg/lib/bundle/systemRelations.gen.go index 26a1740db..db6990afe 100644 --- a/pkg/lib/bundle/systemRelations.gen.go +++ b/pkg/lib/bundle/systemRelations.gen.go @@ -6,7 +6,7 @@ package bundle import domain "github.com/anyproto/anytype-heart/core/domain" -const SystemRelationsChecksum = "b8f59cddcb6220ca5830f84ce73f5d6ec098ea13def849b31fc61881d9fe95a7" +const SystemRelationsChecksum = "f5c89fe0d60b257617b7449f76cb845a01a1703105291f3055e963bef89b3afa" // SystemRelations contains relations that have some special biz logic depends on them in some objects // in case EVERY object depend on the relation please add it to RequiredInternalRelations @@ -83,6 +83,8 @@ var SystemRelations = append(RequiredInternalRelations, []domain.RelationKey{ RelationKeyHasChat, RelationKeyTimestamp, RelationKeyRecommendedFeaturedRelations, + RelationKeyRecommendedHiddenRelations, + RelationKeyRecommendedFileRelations, RelationKeyLayoutWidth, RelationKeyDefaultViewType, RelationKeyDefaultTypeId, diff --git a/pkg/lib/bundle/systemRelations.json b/pkg/lib/bundle/systemRelations.json index d8394875f..07a830463 100644 --- a/pkg/lib/bundle/systemRelations.json +++ b/pkg/lib/bundle/systemRelations.json @@ -92,6 +92,8 @@ "hasChat", "timestamp", "recommendedFeaturedRelations", + "recommendedHiddenRelations", + "recommendedFileRelations", "layoutWidth", "defaultViewType", "defaultTypeId" From f7681627277b19ff3c4710b1d08c626662dcbc21 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 14 Jan 2025 11:59:44 +0300 Subject: [PATCH 058/176] GO-4588 Fix integration test --- tests/integration/import_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/integration/import_test.go b/tests/integration/import_test.go index 30be72e1c..fd2b59b3f 100644 --- a/tests/integration/import_test.go +++ b/tests/integration/import_test.go @@ -22,7 +22,6 @@ func TestImportFileFromRelation(t *testing.T) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "Saturn"), filterEqualsToString(bundle.RelationKeyFileMimeType, "image/jpeg"), filterNotEmpty(bundle.RelationKeyFileId), @@ -85,7 +84,6 @@ func testImportFileFromMarkdown(t *testing.T, path string) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "saturn"), // Name comes from file's name filterEqualsToString(bundle.RelationKeyFileMimeType, "image/jpeg"), filterNotEmpty(bundle.RelationKeyFileId), @@ -126,7 +124,6 @@ func testImportObjectWithFileBlock(t *testing.T, path string) { fileSub := newTestSubscription(t, app, []domain.RelationKey{bundle.RelationKeyId}, []database.FilterRequest{ filterEqualsToInteger(bundle.RelationKeyFileIndexingStatus, model.FileIndexingStatus_Indexed), - filterEqualsToInteger(bundle.RelationKeyResolvedLayout, model.ObjectType_image), filterEqualsToString(bundle.RelationKeyName, "test_image"), filterEqualsToString(bundle.RelationKeyFileMimeType, "image/png"), filterNotEmpty(bundle.RelationKeyFileId), From 326268ca0209c6745fbd39cd06ec76b7eb8b46fa Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 14 Jan 2025 14:41:03 +0300 Subject: [PATCH 059/176] GO-4823 Fill file recommended relations --- core/block/object/objectcreator/installer.go | 3 +- .../block/object/objectcreator/object_type.go | 114 +------------- core/relationutils/recommended.go | 148 ++++++++++++++++++ .../recommended_test.go} | 37 ++++- pkg/lib/bundle/types.gen.go | 18 +-- pkg/lib/bundle/types.json | 60 +++---- .../systemobjectreviser.go | 74 ++++----- .../systemobjectreviser_test.go | 13 +- 8 files changed, 270 insertions(+), 197 deletions(-) create mode 100644 core/relationutils/recommended.go rename core/{block/object/objectcreator/object_type_test.go => relationutils/recommended_test.go} (77%) diff --git a/core/block/object/objectcreator/installer.go b/core/block/object/objectcreator/installer.go index 7dfd33db5..c6575a5d0 100644 --- a/core/block/object/objectcreator/installer.go +++ b/core/block/object/objectcreator/installer.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/lastused" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" @@ -267,7 +268,7 @@ func (s *service) prepareDetailsForInstallingObject( switch uk.SmartblockType() { case coresb.SmartBlockTypeBundledObjectType, coresb.SmartBlockTypeObjectType: - relationKeys, isAlreadyFilled, err := fillRecommendedRelations(ctx, spc, details) + relationKeys, isAlreadyFilled, err := relationutils.FillRecommendedRelations(ctx, spc, details) if err != nil { return nil, fmt.Errorf("fill recommended relations: %w", err) } diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index 36fcae195..43031f74f 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -2,14 +2,11 @@ package objectcreator import ( "context" - "errors" "fmt" - "github.com/samber/lo" - "golang.org/x/exp/slices" - "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" @@ -17,29 +14,6 @@ import ( "github.com/anyproto/anytype-heart/space/clientspace" ) -var ( - defaultRecommendedFeaturedRelationKeys = []domain.RelationKey{ - bundle.RelationKeyType, - bundle.RelationKeyTag, - bundle.RelationKeyBacklinks, - } - - defaultRecommendedRelationKeys = []domain.RelationKey{ - bundle.RelationKeyCreatedDate, - bundle.RelationKeyCreator, - bundle.RelationKeyLastModifiedDate, - bundle.RelationKeyLastModifiedBy, - bundle.RelationKeyLastOpenedDate, - bundle.RelationKeyLinks, - } - - // relationsToExclude = []domain.RelationKey{ - // bundle.RelationKeyDescription, - // } - - errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") -) - func (s *service) createObjectType(ctx context.Context, space clientspace.Space, details *domain.Details) (id string, newDetails *domain.Details, err error) { if details == nil { return "", nil, fmt.Errorf("create object type: no data") @@ -55,7 +29,7 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, object.SetInt64(bundle.RelationKeyRecommendedLayout, int64(model.ObjectType_basic)) } - keys, isAlreadyFilled, err := fillRecommendedRelations(ctx, space, object) + keys, isAlreadyFilled, err := relationutils.FillRecommendedRelations(ctx, space, object) if err != nil { return "", nil, fmt.Errorf("fill recommended relations: %w", err) } @@ -84,90 +58,6 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, return id, newDetails, nil } -// fillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details -// If these relations are already filled with correct ids, isAlreadyFilled = true is returned -func fillRecommendedRelations(ctx context.Context, spc clientspace.Space, details *domain.Details) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { - keys, err = getRelationKeysFromDetails(details) - if err != nil { - if errors.Is(err, errRecommendedRelationsAlreadyFilled) { - return nil, true, nil - } - return nil, false, fmt.Errorf("get recommended relation keys: %w", err) - } - - // we should include default system recommended relations and exclude default recommended featured relations - keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) - keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { - return slices.Contains(defaultRecommendedFeaturedRelationKeys, key) - }) - - relationIds, err := prepareRelationIds(ctx, spc, keys) - if err != nil { - return nil, false, fmt.Errorf("prepare recommended relation ids: %w", err) - } - details.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) - - featuredRelationIds, err := prepareRelationIds(ctx, spc, defaultRecommendedFeaturedRelationKeys) - if err != nil { - return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) - } - details.SetStringList(bundle.RelationKeyRecommendedFeaturedRelations, featuredRelationIds) - - return append(keys, defaultRecommendedFeaturedRelationKeys...), false, nil -} - -func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { - bundledRelationIds := details.GetStringList(bundle.RelationKeyRecommendedRelations) - if len(bundledRelationIds) == 0 { - rawRecommendedLayout := details.GetInt64(bundle.RelationKeyRecommendedLayout) - // nolint: gosec - recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) - if err != nil { - return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) - } - keys := make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) - for _, rel := range recommendedLayout.RequiredRelations { - keys = append(keys, domain.RelationKey(rel.Key)) - } - return keys, nil - } - - keys := make([]domain.RelationKey, 0, len(bundledRelationIds)) - for i, id := range bundledRelationIds { - key, err := bundle.RelationKeyFromID(id) - if err == nil { - // TODO: use Contains when we have more relations to exclude - // if !slices.Contains(relationsToExclude, key) { - if key != bundle.RelationKeyDescription { - keys = append(keys, key) - } - continue - } - if i == 0 { - // if we fail to parse 1st bundled relation id, details are already filled with correct ids - return nil, errRecommendedRelationsAlreadyFilled - } - return nil, fmt.Errorf("relation key from id: %w", err) - } - return keys, nil -} - -func prepareRelationIds(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) ([]string, error) { - relationIds := make([]string, 0, len(relationKeys)) - for _, key := range relationKeys { - uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, key.String()) - if err != nil { - return nil, fmt.Errorf("failed to create unique Key: %w", err) - } - id, err := space.DeriveObjectID(ctx, uk) - if err != nil { - return nil, fmt.Errorf("failed to derive object id: %w", err) - } - relationIds = append(relationIds, id) - } - return relationIds, nil -} - func (s *service) installRecommendedRelations(ctx context.Context, space clientspace.Space, relationKeys []domain.RelationKey) error { bundledRelationIds := make([]string, len(relationKeys)) for i, key := range relationKeys { diff --git a/core/relationutils/recommended.go b/core/relationutils/recommended.go new file mode 100644 index 000000000..78aa80457 --- /dev/null +++ b/core/relationutils/recommended.go @@ -0,0 +1,148 @@ +package relationutils + +import ( + "context" + "errors" + "fmt" + "slices" + + "github.com/samber/lo" + + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" +) + +type ObjectIDDeriver interface { + DeriveObjectID(ctx context.Context, uniqueKey domain.UniqueKey) (id string, err error) +} + +var ( + defaultRecommendedFeaturedRelationKeys = []domain.RelationKey{ + bundle.RelationKeyType, + bundle.RelationKeyTag, + bundle.RelationKeyBacklinks, + } + + defaultRecommendedRelationKeys = []domain.RelationKey{ + bundle.RelationKeyCreatedDate, + bundle.RelationKeyCreator, + bundle.RelationKeyLastModifiedDate, + bundle.RelationKeyLastModifiedBy, + bundle.RelationKeyLastOpenedDate, + bundle.RelationKeyLinks, + } + + nonFileSpecificRelationKeys = []domain.RelationKey{ + bundle.RelationKeyAddedDate, + bundle.RelationKeyOrigin, + } + + errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") +) + +// FillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details +// If these relations are already filled with correct ids, isAlreadyFilled = true is returned +func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, details *domain.Details) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { + keys, err = getRelationKeysFromDetails(details) + if err != nil { + if errors.Is(err, errRecommendedRelationsAlreadyFilled) { + return nil, true, nil + } + return nil, false, fmt.Errorf("get recommended relation keys: %w", err) + } + + if isFileType(details) { + // for file types we need to fill separate relation list with file-specific recommended relations + fileRecommendedRelationKeys := slices.DeleteFunc(keys, func(key domain.RelationKey) bool { + return slices.Contains(nonFileSpecificRelationKeys, key) + }) + fileRelationIds, err := prepareRelationIds(ctx, deriver, fileRecommendedRelationKeys) + if err != nil { + return nil, false, fmt.Errorf("prepare file recommended relation ids: %w", err) + } + details.SetStringList(bundle.RelationKeyRecommendedFileRelations, fileRelationIds) + keys = nonFileSpecificRelationKeys + } + + // we should include default system recommended relations and exclude default recommended featured relations + keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) + keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { + return slices.Contains(defaultRecommendedFeaturedRelationKeys, key) + }) + + relationIds, err := prepareRelationIds(ctx, deriver, keys) + if err != nil { + return nil, false, fmt.Errorf("prepare recommended relation ids: %w", err) + } + details.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) + + featuredRelationIds, err := prepareRelationIds(ctx, deriver, defaultRecommendedFeaturedRelationKeys) + if err != nil { + return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) + } + details.SetStringList(bundle.RelationKeyRecommendedFeaturedRelations, featuredRelationIds) + + return append(keys, defaultRecommendedFeaturedRelationKeys...), false, nil +} + +func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { + bundledRelationIds := details.GetStringList(bundle.RelationKeyRecommendedRelations) + if len(bundledRelationIds) == 0 { + rawRecommendedLayout := details.GetInt64(bundle.RelationKeyRecommendedLayout) + // nolint: gosec + recommendedLayout, err := bundle.GetLayout(model.ObjectTypeLayout(rawRecommendedLayout)) + if err != nil { + return nil, fmt.Errorf("invalid recommended layout %d: %w", rawRecommendedLayout, err) + } + keys := make([]domain.RelationKey, 0, len(recommendedLayout.RequiredRelations)) + for _, rel := range recommendedLayout.RequiredRelations { + keys = append(keys, domain.RelationKey(rel.Key)) + } + return keys, nil + } + + keys := make([]domain.RelationKey, 0, len(bundledRelationIds)) + for i, id := range bundledRelationIds { + key, err := bundle.RelationKeyFromID(id) + if err == nil { + if key != bundle.RelationKeyDescription { + keys = append(keys, key) + } + continue + } + if i == 0 { + // if we fail to parse 1st bundled relation id, details are already filled with correct ids + return nil, errRecommendedRelationsAlreadyFilled + } + return nil, fmt.Errorf("relation key from id: %w", err) + } + return keys, nil +} + +func prepareRelationIds(ctx context.Context, deriver ObjectIDDeriver, relationKeys []domain.RelationKey) ([]string, error) { + relationIds := make([]string, 0, len(relationKeys)) + for _, key := range relationKeys { + uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, key.String()) + if err != nil { + return nil, fmt.Errorf("failed to create unique Key: %w", err) + } + id, err := deriver.DeriveObjectID(ctx, uk) + if err != nil { + return nil, fmt.Errorf("failed to derive object id: %w", err) + } + relationIds = append(relationIds, id) + } + return relationIds, nil +} + +func isFileType(details *domain.Details) bool { + uniqueKey, err := domain.UnmarshalUniqueKey(details.GetString(bundle.RelationKeyUniqueKey)) + if err != nil { + return false + } + return slices.Contains([]domain.TypeKey{ + bundle.TypeKeyFile, bundle.TypeKeyImage, bundle.TypeKeyVideo, bundle.TypeKeyAudio, + }, domain.TypeKey(uniqueKey.InternalKey())) +} diff --git a/core/block/object/objectcreator/object_type_test.go b/core/relationutils/recommended_test.go similarity index 77% rename from core/block/object/objectcreator/object_type_test.go rename to core/relationutils/recommended_test.go index 4bfa5ffa4..111cfd9bb 100644 --- a/core/block/object/objectcreator/object_type_test.go +++ b/core/relationutils/recommended_test.go @@ -1,4 +1,4 @@ -package objectcreator +package relationutils import ( "context" @@ -70,7 +70,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) @@ -90,7 +90,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) @@ -129,7 +129,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := fillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) // then assert.NoError(t, err) @@ -139,6 +139,35 @@ func TestFillRecommendedRelations(t *testing.T) { assert.Len(t, keys, len(tc.expected)+3) }) } + + t.Run("recommendedRelations of file types", func(t *testing.T) { + // given + details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyRecommendedRelations: domain.StringList([]string{ + bundle.RelationKeyOrigin.BundledURL(), + bundle.RelationKeyFileExt.BundledURL(), + bundle.RelationKeyAddedDate.BundledURL(), + bundle.RelationKeyCameraIso.BundledURL(), + bundle.RelationKeyAperture.BundledURL(), + }), + bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyImage.URL()), + }) + + // when + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + + // then + assert.NoError(t, err) + assert.False(t, isAlreadyFilled) + assert.Equal(t, buildRelationIds(append(nonFileSpecificRelationKeys, defaultRecommendedRelationKeys...)), details.GetStringList(bundle.RelationKeyRecommendedRelations)) + assert.Equal(t, defaultRecFeatRelIds, details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) + assert.Equal(t, []string{ + bundle.RelationKeyFileExt.URL(), + bundle.RelationKeyCameraIso.URL(), + bundle.RelationKeyAperture.URL(), + }, details.GetStringList(bundle.RelationKeyRecommendedFileRelations)) + assert.Len(t, keys, 11) + }) } func buildRelationIds(keys []domain.RelationKey) []string { diff --git a/pkg/lib/bundle/types.gen.go b/pkg/lib/bundle/types.gen.go index 06d220a79..48be47d5e 100644 --- a/pkg/lib/bundle/types.gen.go +++ b/pkg/lib/bundle/types.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const TypeChecksum = "5458717a4167a70b8a8e3148147e192263a645484359ec155b6856a8996e8ec8" +const TypeChecksum = "ef6f7320503988b931e7e3dcaff70746c59a7ae2e119aa1d802e185a33def361" const ( TypePrefix = "_ot" ) @@ -54,9 +54,9 @@ var ( Layout: model.ObjectType_file, Name: "Audio", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyArtist), MustGetRelationLink(RelationKeyAudioAlbum), MustGetRelationLink(RelationKeyAudioAlbumTrackNumber), MustGetRelationLink(RelationKeyAudioGenre), MustGetRelationLink(RelationKeyAudioLyrics), MustGetRelationLink(RelationKeyReleasedYear), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeyOrigin)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyArtist), MustGetRelationLink(RelationKeyAudioAlbum), MustGetRelationLink(RelationKeyAudioGenre), MustGetRelationLink(RelationKeyReleasedYear), MustGetRelationLink(RelationKeyAudioAlbumTrackNumber), MustGetRelationLink(RelationKeyAudioLyrics)}, RestrictObjectCreation: true, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "audio", }, @@ -169,9 +169,9 @@ var ( Layout: model.ObjectType_file, Name: "File", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeyOrigin)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType)}, RestrictObjectCreation: true, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "file", }, @@ -193,9 +193,9 @@ var ( Layout: model.ObjectType_image, Name: "Image", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure), MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyFocalRatio), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeyOrigin)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure), MustGetRelationLink(RelationKeyFocalRatio)}, RestrictObjectCreation: true, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "image", }, @@ -379,9 +379,9 @@ var ( Layout: model.ObjectType_file, Name: "Video", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure), MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeyOrigin)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure)}, RestrictObjectCreation: true, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "video", }, diff --git a/pkg/lib/bundle/types.json b/pkg/lib/bundle/types.json index 3a2e3e32e..db87b90c9 100644 --- a/pkg/lib/bundle/types.json +++ b/pkg/lib/bundle/types.json @@ -143,21 +143,21 @@ "hidden": false, "layout": "file", "relations": [ + "addedDate", + "origin", + "fileExt", "sizeInBytes", - "fileMimeType", - "camera", "heightInPixels", "widthInPixels", + "fileMimeType", + "camera", "cameraIso", "aperture", - "exposure", - "addedDate", - "fileExt", - "origin" + "exposure" ], "description": "The recording of moving visual images", "restrictObjectCreation": true, - "revision": 1 + "revision": 2 }, { "id": "dashboard", @@ -346,22 +346,22 @@ "hidden": false, "layout": "image", "relations": [ - "fileMimeType", - "widthInPixels", - "camera", - "heightInPixels", + "addedDate", + "origin", + "fileExt", "sizeInBytes", + "heightInPixels", + "widthInPixels", + "fileMimeType", + "camera", "cameraIso", "aperture", "exposure", - "addedDate", - "focalRatio", - "fileExt", - "origin" + "focalRatio" ], "description": "A representation of the external form of a person or thing in art", "restrictObjectCreation": true, - "revision": 1 + "revision": 2 }, { "id": "profile", @@ -388,21 +388,21 @@ "hidden": false, "layout": "file", "relations": [ - "artist", - "audioAlbum", - "audioAlbumTrackNumber", - "audioGenre", - "audioLyrics", - "releasedYear", + "addedDate", + "origin", + "fileExt", "sizeInBytes", "fileMimeType", - "addedDate", - "fileExt", - "origin" + "artist", + "audioAlbum", + "audioGenre", + "releasedYear", + "audioAlbumTrackNumber", + "audioLyrics" ], "description": "Sound when recorded, with ability to reproduce", "restrictObjectCreation": true, - "revision": 1 + "revision": 2 }, { "id": "goal", @@ -432,15 +432,15 @@ "hidden": false, "layout": "file", "relations": [ - "fileMimeType", - "sizeInBytes", "addedDate", + "origin", "fileExt", - "origin" + "sizeInBytes", + "fileMimeType" ], "description": "Computer resource for recording data in a computer storage device", "restrictObjectCreation": true, - "revision": 1 + "revision": 2 }, { "id": "project", diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index 40656cbfc..09431350c 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -4,10 +4,8 @@ import ( "context" "errors" "fmt" - "strings" "github.com/anyproto/any-sync/app/logger" - "github.com/ethereum/go-ethereum/log" "github.com/samber/lo" "go.uber.org/zap" @@ -18,7 +16,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/internal/components/dependencies" "github.com/anyproto/anytype-heart/util/slice" @@ -103,12 +100,12 @@ func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies. } details := buildDiffDetails(bundleObject, localObject) - recRelsDetail, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) + recRelsDetails, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) if err != nil { log.Error("failed to check recommended relations", zap.Error(err)) } - if recRelsDetail != nil { + for _, recRelsDetail := range recRelsDetails { details.Set(recRelsDetail.Key, recRelsDetail.Value) } @@ -179,43 +176,40 @@ func buildDiffDetails(origin, current *domain.Details) *domain.Details { return details } -func checkRecommendedRelations(ctx context.Context, space dependencies.SpaceWithCtx, origin, current *domain.Details) (newValue *domain.Detail, err error) { - localIds := current.GetStringList(bundle.RelationKeyRecommendedRelations) - bundledIds := origin.GetStringList(bundle.RelationKeyRecommendedRelations) +func checkRecommendedRelations( + ctx context.Context, space dependencies.SpaceWithCtx, origin, current *domain.Details, +) (newValues []*domain.Detail, err error) { + details := origin.CopyOnlyKeys( + bundle.RelationKeyRecommendedRelations, + bundle.RelationKeyRecommendedLayout, + bundle.RelationKeyUniqueKey, + ) - newIds := make([]string, 0, len(bundledIds)) - for _, bundledId := range bundledIds { - if !strings.HasPrefix(bundledId, addr.BundledRelationURLPrefix) { - return nil, fmt.Errorf("invalid recommended bundled relation id: %s. %s prefix is expected", - bundledId, addr.BundledRelationURLPrefix) - } - key := strings.TrimPrefix(bundledId, addr.BundledRelationURLPrefix) - uk, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, key) - if err != nil { - return nil, err - } - - // we should add only system relations to object types, because non-system could be not installed to space yet - if !lo.Contains(bundle.SystemRelations, domain.RelationKey(uk.InternalKey())) { - log.Debug("recommended relation is not system, so we are not adding it to the type object", zap.String("relation key", key)) - continue - } - - id, err := space.DeriveObjectID(ctx, uk) - if err != nil { - return nil, fmt.Errorf("failed to derive recommended relation with key '%s': %w", key, err) - } - - newIds = append(newIds, id) - } - - _, added := slice.DifferenceRemovedAdded(localIds, newIds) - if len(added) == 0 { + _, filled, err := relationutils.FillRecommendedRelations(ctx, space, details) + if filled { return nil, nil } - return &domain.Detail{ - Key: bundle.RelationKeyRecommendedRelations, - Value: domain.StringList(append(localIds, added...)), - }, nil + if err != nil { + return nil, err + } + + for _, key := range []domain.RelationKey{ + bundle.RelationKeyRecommendedRelations, + bundle.RelationKeyRecommendedFeaturedRelations, + bundle.RelationKeyRecommendedFileRelations, + } { + localIds := current.GetStringList(key) + newIds := details.GetStringList(key) + + removed, added := slice.DifferenceRemovedAdded(localIds, newIds) + if len(added) != 0 || len(removed) != 0 { + newValues = append(newValues, &domain.Detail{ + Key: key, + Value: domain.StringList(newIds), + }) + } + } + + return newValues, nil } diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go index bde2d9209..2b01cbb2d 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go @@ -38,8 +38,10 @@ func TestMigration_Run(t *testing.T) { spc := mock_space.NewMockSpace(t) spc.EXPECT().Id().Return("space1").Maybe() - spc.EXPECT().DoCtx(ctx, "id1", mock.Anything).Return(nil).Times(1) + spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return key.Marshal(), nil + }) // when migrated, toMigrate, err := fixer.Run(ctx, log, store.SpaceIndex("space1"), spc) @@ -165,6 +167,9 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return key.Marshal(), nil + }) // when toRevise, err := reviseObject(ctx, log, space, rel) @@ -183,6 +188,9 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return key.Marshal(), nil + }) // when toRevise, err := reviseObject(ctx, log, space, rel) @@ -252,6 +260,9 @@ func TestReviseSystemObject(t *testing.T) { space := mock_space.NewMockSpace(t) space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return key.Marshal(), nil + }) // when toRevise, err := reviseObject(ctx, log, space, rel) From 23e699b90401238d40c1226bcb4e04e18aba155e Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 14 Jan 2025 17:01:26 +0300 Subject: [PATCH 060/176] GO-4234 Layout conversion restrictions WIP --- core/block/editor/basic/details.go | 37 +++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 7b19e244f..eb412e109 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,6 +3,7 @@ package basic import ( "errors" "fmt" + "slices" "strings" "time" @@ -403,13 +404,18 @@ func (bs *basic) getLayoutForType(objectTypeKey domain.TypeKey) (model.ObjectTyp } func (bs *basic) SetLayoutInState(s *state.State, toLayout model.ObjectTypeLayout, ignoreRestriction bool) (err error) { + fromLayout, _ := s.Layout() + if !ignoreRestriction { if err = bs.Restrictions().Object.Check(model.Restrictions_LayoutChange); errors.Is(err, restriction.ErrRestricted) { return fmt.Errorf("layout change is restricted for object '%s': %w", bs.Id(), err) } + + if !isLayoutConversionAllowed(fromLayout, toLayout) { + return fmt.Errorf("layout change from %s to %s is not allowed", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) + } } - fromLayout, _ := s.Layout() s.SetDetail(bundle.RelationKeyLayout, domain.Int64(toLayout)) if err = bs.layoutConverter.Convert(s, fromLayout, toLayout); err != nil { return fmt.Errorf("convert layout: %w", err) @@ -423,3 +429,32 @@ func removeInternalFlags(s *state.State) { flags.Remove(model.InternalFlag_editorDeleteEmpty) flags.AddToState(s) } + +func isLayoutConversionAllowed(from, to model.ObjectTypeLayout) bool { + if from == to { + return true + } + + if isPageLayout(from) && isPageLayout(to) { + return true + } + + if isSetLayout(from) && isSetLayout(to) { + return true + } + + return false +} + +func isPageLayout(layout model.ObjectTypeLayout) bool { + return slices.Contains([]model.ObjectTypeLayout{ + model.ObjectType_basic, + model.ObjectType_todo, + model.ObjectType_note, + model.ObjectType_profile, + }, layout) +} + +func isSetLayout(layout model.ObjectTypeLayout) bool { + return slices.Contains([]model.ObjectTypeLayout{model.ObjectType_collection, model.ObjectType_set}, layout) +} From 5fcfffa35271ecb75a5fd4860dd4b4848e6f58f0 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 14 Jan 2025 17:06:57 +0300 Subject: [PATCH 061/176] GO-4823 Fix tests --- core/relationutils/recommended_test.go | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/core/relationutils/recommended_test.go b/core/relationutils/recommended_test.go index 111cfd9bb..9c965ef22 100644 --- a/core/relationutils/recommended_test.go +++ b/core/relationutils/recommended_test.go @@ -7,20 +7,19 @@ import ( "github.com/samber/lo" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" ) +type mockDeriver struct{} + +func (d *mockDeriver) DeriveObjectID(ctx context.Context, key domain.UniqueKey) (string, error) { + return domain.RelationKey(key.InternalKey()).URL(), nil +} + func TestFillRecommendedRelations(t *testing.T) { - spc := mock_clientspace.NewMockSpace(t) - spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(ctx context.Context, key domain.UniqueKey) (string, error) { - return domain.RelationKey(key.InternalKey()).URL(), nil - }).Maybe() - spc.EXPECT().IsReadOnly().Return(true).Maybe() defaultRecFeatRelIds := buildRelationIds(defaultRecommendedFeaturedRelationKeys) defaultRecRelIds := buildRelationIds(defaultRecommendedRelationKeys) @@ -70,7 +69,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, &mockDeriver{}, details) // then assert.NoError(t, err) @@ -90,7 +89,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, &mockDeriver{}, details) // then assert.NoError(t, err) @@ -129,7 +128,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, &mockDeriver{}, details) // then assert.NoError(t, err) @@ -154,7 +153,7 @@ func TestFillRecommendedRelations(t *testing.T) { }) // when - keys, isAlreadyFilled, err := FillRecommendedRelations(nil, spc, details) + keys, isAlreadyFilled, err := FillRecommendedRelations(nil, &mockDeriver{}, details) // then assert.NoError(t, err) From 874e86d5a955c1951fa19f92fc0b1d8e3e8a8b72 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 16 Jan 2025 15:50:29 +0100 Subject: [PATCH 062/176] GO-4823 Fix tests --- core/block/export/export_test.go | 66 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/core/block/export/export_test.go b/core/block/export/export_test.go index a08edd8d6..51cbc2edf 100644 --- a/core/block/export/export_test.go +++ b/core/block/export/export_test.go @@ -1476,7 +1476,7 @@ func Test_docsForExport(t *testing.T) { assert.Nil(t, err) defaultObjectTypeId := "defaultObjectTypeId" - defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, objectTypeId) + defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, defaultObjectTypeId) assert.Nil(t, err) defaultTemplateId := "defaultTemplateId" @@ -1484,35 +1484,35 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_collection)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_collection)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), }, { bundle.RelationKeyId: domain.String(defaultObjectTypeTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), bundle.RelationKeyTargetObjectType: domain.String(defaultObjectTypeId), }, }) @@ -1650,25 +1650,25 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), From 4092c4a73342f42617d31413349d4425f8f8eb88 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 16 Jan 2025 17:05:04 +0100 Subject: [PATCH 063/176] GO-4234 Add test on setDetail --- core/block/editor/basic/details_test.go | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/core/block/editor/basic/details_test.go b/core/block/editor/basic/details_test.go index da662a700..6e2cd6171 100644 --- a/core/block/editor/basic/details_test.go +++ b/core/block/editor/basic/details_test.go @@ -1,6 +1,7 @@ package basic import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -180,6 +181,45 @@ func TestBasic_SetObjectTypesInState(t *testing.T) { assert.ErrorIs(t, err, restriction.ErrRestricted) }) + typeKey := "type" + for _, tc := range []struct { + from, to model.ObjectTypeLayout + shouldError bool + }{ + {model.ObjectType_basic, model.ObjectType_todo, false}, + {model.ObjectType_profile, model.ObjectType_note, false}, + {model.ObjectType_basic, model.ObjectType_set, true}, + {model.ObjectType_collection, model.ObjectType_todo, true}, + {model.ObjectType_tag, model.ObjectType_note, true}, + {model.ObjectType_dashboard, model.ObjectType_collection, true}, + {model.ObjectType_todo, model.ObjectType_relation, true}, + } { + t.Run(fmt.Sprintf("change to type with other layout group is restricted. From '%s' to '%s'", + model.ObjectTypeLayout_name[int32(tc.from)], model.ObjectTypeLayout_name[int32(tc.to)]), func(t *testing.T) { + // given + f := newBasicFixture(t) + f.lastUsed.EXPECT().UpdateLastUsedDate(mock.Anything, mock.Anything, mock.Anything).Return().Maybe() + f.store.AddObjects(t, []objectstore.TestObject{{ + bundle.RelationKeyId: domain.String(typeKey), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyUniqueKey: domain.String("ot-" + typeKey), + bundle.RelationKeyRecommendedLayout: domain.Int64(int64(tc.to)), + }}) + s := f.sb.NewState() + s.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(int64(tc.from))) + + // when + err := f.basic.SetObjectTypesInState(s, []domain.TypeKey{domain.TypeKey(typeKey)}, false) + + // then + if tc.shouldError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } + t.Run("changing to template type is restricted", func(t *testing.T) { // given f := newBasicFixture(t) From dc5c65cc40ff7e994ce4fe43272bae4bc2cf2405 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 16 Jan 2025 19:16:14 +0100 Subject: [PATCH 064/176] GO-4234 Check recommendedLayout switch --- core/block/editor/basic/details.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 8eab5b43b..670ca6b39 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -45,9 +45,13 @@ func (bs *basic) SetDetailsAndUpdateLastUsed(ctx session.Context, details []doma func (bs *basic) setDetails(ctx session.Context, details []domain.Detail, showEvent bool) (updatedKeys []domain.RelationKey, err error) { s := bs.NewStateCtx(ctx) + var updates []domain.Detail // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later - updates, updatedKeys := bs.collectDetailUpdates(details, s) + updates, updatedKeys, err = bs.collectDetailUpdates(details, s) + if err != nil { + return nil, err + } newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) @@ -107,19 +111,18 @@ func (bs *basic) updateDetails(update func(current *domain.Details) (*domain.Det return oldDetails, newDetails, bs.Apply(s) } -func (bs *basic) collectDetailUpdates(details []domain.Detail, s *state.State) ([]domain.Detail, []domain.RelationKey) { +func (bs *basic) collectDetailUpdates(details []domain.Detail, s *state.State) ([]domain.Detail, []domain.RelationKey, error) { updates := make([]domain.Detail, 0, len(details)) keys := make([]domain.RelationKey, 0, len(details)) for _, detail := range details { update, err := bs.createDetailUpdate(s, detail) - if err == nil { - updates = append(updates, update) - keys = append(keys, update.Key) - } else { - log.Errorf("can't set detail %s: %s", detail.Key, err) + if err != nil { + return nil, nil, err } + updates = append(updates, update) + keys = append(keys, update.Key) } - return updates, keys + return updates, keys, nil } func applyDetailUpdates(oldDetails *domain.Details, updates []domain.Detail) *domain.Details { @@ -294,6 +297,14 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er // special case when client sets the layout detail directly instead of using SetLayoutInState command return bs.SetLayoutInState(st, model.ObjectTypeLayout(detail.Value.Int64()), false) } + if detail.Key == bundle.RelationKeyRecommendedLayout { + fromLayout := model.ObjectTypeLayout(st.Details().GetInt64(bundle.RelationKeyRecommendedLayout)) + toLayout := model.ObjectTypeLayout(detail.Value.Int64()) + if !isLayoutConversionAllowed(fromLayout, toLayout) { + return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", + model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) + } + } return nil } From 69da556b9de5564557bfba6b8eaf3a15544898e6 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 16 Jan 2025 19:49:04 +0100 Subject: [PATCH 065/176] GO-4234 Fix test and lint --- core/block/editor/basic/details.go | 7 ++-- core/block/export/export_test.go | 66 +++++++++++++++--------------- 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 670ca6b39..a0c0d1aa6 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -298,9 +298,10 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er return bs.SetLayoutInState(st, model.ObjectTypeLayout(detail.Value.Int64()), false) } if detail.Key == bundle.RelationKeyRecommendedLayout { - fromLayout := model.ObjectTypeLayout(st.Details().GetInt64(bundle.RelationKeyRecommendedLayout)) - toLayout := model.ObjectTypeLayout(detail.Value.Int64()) - if !isLayoutConversionAllowed(fromLayout, toLayout) { + fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) + toLayout := detail.Value.Int64() + // nolint:gosec + if !isLayoutConversionAllowed(model.ObjectTypeLayout(fromLayout), model.ObjectTypeLayout(toLayout)) { return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) } diff --git a/core/block/export/export_test.go b/core/block/export/export_test.go index a08edd8d6..51cbc2edf 100644 --- a/core/block/export/export_test.go +++ b/core/block/export/export_test.go @@ -1476,7 +1476,7 @@ func Test_docsForExport(t *testing.T) { assert.Nil(t, err) defaultObjectTypeId := "defaultObjectTypeId" - defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, objectTypeId) + defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, defaultObjectTypeId) assert.Nil(t, err) defaultTemplateId := "defaultTemplateId" @@ -1484,35 +1484,35 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_collection)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_collection)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), }, { bundle.RelationKeyId: domain.String(defaultObjectTypeTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), bundle.RelationKeyTargetObjectType: domain.String(defaultObjectTypeId), }, }) @@ -1650,25 +1650,25 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), From 18475b45eaafa5ae3f7c52c3237d6229a2fd29ee Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 17 Jan 2025 15:14:29 +0100 Subject: [PATCH 066/176] GO-4234 Fix comments --- core/block/editor/basic/details.go | 56 ++++------------------ core/block/editor/converter/layout.go | 40 +++++++++++++++- core/block/editor/converter/layout_test.go | 4 +- core/block/template/service.go | 2 +- 4 files changed, 51 insertions(+), 51 deletions(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index a0c0d1aa6..eebd47d2c 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -3,7 +3,6 @@ package basic import ( "errors" "fmt" - "slices" "strings" "time" @@ -48,10 +47,7 @@ func (bs *basic) setDetails(ctx session.Context, details []domain.Detail, showEv var updates []domain.Detail // Collect updates handling special cases. These cases could update details themselves, so we // have to apply changes later - updates, updatedKeys, err = bs.collectDetailUpdates(details, s) - if err != nil { - return nil, err - } + updates, updatedKeys = bs.collectDetailUpdates(details, s) newDetails := applyDetailUpdates(s.CombinedDetails(), updates) s.SetDetails(newDetails) @@ -111,18 +107,19 @@ func (bs *basic) updateDetails(update func(current *domain.Details) (*domain.Det return oldDetails, newDetails, bs.Apply(s) } -func (bs *basic) collectDetailUpdates(details []domain.Detail, s *state.State) ([]domain.Detail, []domain.RelationKey, error) { +func (bs *basic) collectDetailUpdates(details []domain.Detail, s *state.State) ([]domain.Detail, []domain.RelationKey) { updates := make([]domain.Detail, 0, len(details)) keys := make([]domain.RelationKey, 0, len(details)) for _, detail := range details { update, err := bs.createDetailUpdate(s, detail) - if err != nil { - return nil, nil, err + if err == nil { + updates = append(updates, update) + keys = append(keys, update.Key) + } else { + log.Errorf("can't set detail %s: %s", detail.Key, err) } - updates = append(updates, update) - keys = append(keys, update.Key) } - return updates, keys, nil + return updates, keys } func applyDetailUpdates(oldDetails *domain.Details, updates []domain.Detail) *domain.Details { @@ -301,7 +298,7 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) toLayout := detail.Value.Int64() // nolint:gosec - if !isLayoutConversionAllowed(model.ObjectTypeLayout(fromLayout), model.ObjectTypeLayout(toLayout)) { + if !bs.layoutConverter.IsConversionAllowed(model.ObjectTypeLayout(fromLayout), model.ObjectTypeLayout(toLayout)) { return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) } @@ -422,13 +419,9 @@ func (bs *basic) SetLayoutInState(s *state.State, toLayout model.ObjectTypeLayou if err = bs.Restrictions().Object.Check(model.Restrictions_LayoutChange); errors.Is(err, restriction.ErrRestricted) { return fmt.Errorf("layout change is restricted for object '%s': %w", bs.Id(), err) } - - if !isLayoutConversionAllowed(fromLayout, toLayout) { - return fmt.Errorf("layout change from %s to %s is not allowed", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) - } } s.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(toLayout)) - if err = bs.layoutConverter.Convert(s, fromLayout, toLayout); err != nil { + if err = bs.layoutConverter.Convert(s, fromLayout, toLayout, ignoreRestriction); err != nil { return fmt.Errorf("convert layout: %w", err) } return nil @@ -440,32 +433,3 @@ func removeInternalFlags(s *state.State) { flags.Remove(model.InternalFlag_editorDeleteEmpty) flags.AddToState(s) } - -func isLayoutConversionAllowed(from, to model.ObjectTypeLayout) bool { - if from == to { - return true - } - - if isPageLayout(from) && isPageLayout(to) { - return true - } - - if isSetLayout(from) && isSetLayout(to) { - return true - } - - return false -} - -func isPageLayout(layout model.ObjectTypeLayout) bool { - return slices.Contains([]model.ObjectTypeLayout{ - model.ObjectType_basic, - model.ObjectType_todo, - model.ObjectType_note, - model.ObjectType_profile, - }, layout) -} - -func isSetLayout(layout model.ObjectTypeLayout) bool { - return slices.Contains([]model.ObjectTypeLayout{model.ObjectType_collection, model.ObjectType_set}, layout) -} diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index a8db347f5..92ef2d6c1 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -25,7 +25,8 @@ import ( ) type LayoutConverter interface { - Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout) error + Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout, ignoreIntergroupConversion bool) error + IsConversionAllowed(from, to model.ObjectTypeLayout) bool app.Component } @@ -50,11 +51,46 @@ func (c *layoutConverter) Name() string { return "layout-converter" } -func (c *layoutConverter) Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout) error { +// IsConversionAllowed provides more strict check of layout conversion with introduction of primitives. +// Only conversion between page layouts (page/note/task/profile) and list layouts (set/collection) is allowed +func (c *layoutConverter) IsConversionAllowed(from, to model.ObjectTypeLayout) bool { + if from == to { + return true + } + + if isPageLayout(from) && isPageLayout(to) { + return true + } + + if isSetLayout(from) && isSetLayout(to) { + return true + } + + return false +} + +func isPageLayout(layout model.ObjectTypeLayout) bool { + return slices.Contains([]model.ObjectTypeLayout{ + model.ObjectType_basic, + model.ObjectType_todo, + model.ObjectType_note, + model.ObjectType_profile, + }, layout) +} + +func isSetLayout(layout model.ObjectTypeLayout) bool { + return slices.Contains([]model.ObjectTypeLayout{model.ObjectType_collection, model.ObjectType_set}, layout) +} + +func (c *layoutConverter) Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout, ignoreIntergroupConversion bool) error { if fromLayout == toLayout { return nil } + if !ignoreIntergroupConversion && !c.IsConversionAllowed(fromLayout, toLayout) { + return fmt.Errorf("layout conversion from %s to %s is not allowed", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) + } + if fromLayout == model.ObjectType_chat || fromLayout == model.ObjectType_chatDerived { return fmt.Errorf("can't convert from chat") } diff --git a/core/block/editor/converter/layout_test.go b/core/block/editor/converter/layout_test.go index 54da8ab45..170450642 100644 --- a/core/block/editor/converter/layout_test.go +++ b/core/block/editor/converter/layout_test.go @@ -59,7 +59,7 @@ func TestLayoutConverter_Convert(t *testing.T) { lc := layoutConverter{objectStore: store} // when - err := lc.Convert(st, from, model.ObjectType_set) + err := lc.Convert(st, from, model.ObjectType_set, true) // then assert.NoError(t, err) @@ -112,7 +112,7 @@ func TestLayoutConverter_Convert(t *testing.T) { lc := layoutConverter{objectStore: store, sbtProvider: provider} // when - err := lc.Convert(st, model.ObjectType_set, model.ObjectType_collection) + err := lc.Convert(st, model.ObjectType_set, model.ObjectType_collection, true) // then assert.NoError(t, err) diff --git a/core/block/template/service.go b/core/block/template/service.go index 8c9296eb4..e6acafc22 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -353,7 +353,7 @@ func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout, detail template.WithDetail(bundle.RelationKeyType, details.Get(bundle.RelationKeyType)), ) } - if err := s.converter.Convert(st, model.ObjectType_basic, layout); err != nil { + if err := s.converter.Convert(st, model.ObjectType_basic, layout, true); err != nil { log.Errorf("failed to set '%s' layout to blank template: %v", layout.String(), err) } return From 7c5284a79181507050d74199f7ff1d28875226a6 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 17 Jan 2025 16:07:27 +0100 Subject: [PATCH 067/176] GO-4823 Use file-specific relations map --- core/relationutils/recommended.go | 33 ++++++++++++++++++++------ core/relationutils/recommended_test.go | 5 +++- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/core/relationutils/recommended.go b/core/relationutils/recommended.go index 78aa80457..f6c0982e0 100644 --- a/core/relationutils/recommended.go +++ b/core/relationutils/recommended.go @@ -34,9 +34,23 @@ var ( bundle.RelationKeyLinks, } - nonFileSpecificRelationKeys = []domain.RelationKey{ - bundle.RelationKeyAddedDate, - bundle.RelationKeyOrigin, + fileSpecificRelationKeysMap = map[domain.RelationKey]struct{}{ + bundle.RelationKeyFileExt: {}, + bundle.RelationKeySizeInBytes: {}, + bundle.RelationKeyFileMimeType: {}, + bundle.RelationKeyArtist: {}, + bundle.RelationKeyAudioAlbum: {}, + bundle.RelationKeyAudioGenre: {}, + bundle.RelationKeyAudioAlbumTrackNumber: {}, + bundle.RelationKeyAudioLyrics: {}, + bundle.RelationKeyReleasedYear: {}, + bundle.RelationKeyHeightInPixels: {}, + bundle.RelationKeyWidthInPixels: {}, + bundle.RelationKeyCamera: {}, + bundle.RelationKeyCameraIso: {}, + bundle.RelationKeyAperture: {}, + bundle.RelationKeyExposure: {}, + bundle.RelationKeyFocalRatio: {}, } errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") @@ -55,15 +69,20 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta if isFileType(details) { // for file types we need to fill separate relation list with file-specific recommended relations - fileRecommendedRelationKeys := slices.DeleteFunc(keys, func(key domain.RelationKey) bool { - return slices.Contains(nonFileSpecificRelationKeys, key) - }) + var fileRecommendedRelationKeys, other []domain.RelationKey + for _, key := range keys { + if _, found := fileSpecificRelationKeysMap[key]; found { + fileRecommendedRelationKeys = append(fileRecommendedRelationKeys, key) + continue + } + other = append(other, key) + } fileRelationIds, err := prepareRelationIds(ctx, deriver, fileRecommendedRelationKeys) if err != nil { return nil, false, fmt.Errorf("prepare file recommended relation ids: %w", err) } details.SetStringList(bundle.RelationKeyRecommendedFileRelations, fileRelationIds) - keys = nonFileSpecificRelationKeys + keys = other } // we should include default system recommended relations and exclude default recommended featured relations diff --git a/core/relationutils/recommended_test.go b/core/relationutils/recommended_test.go index 9c965ef22..ef1a2c9e4 100644 --- a/core/relationutils/recommended_test.go +++ b/core/relationutils/recommended_test.go @@ -158,7 +158,10 @@ func TestFillRecommendedRelations(t *testing.T) { // then assert.NoError(t, err) assert.False(t, isAlreadyFilled) - assert.Equal(t, buildRelationIds(append(nonFileSpecificRelationKeys, defaultRecommendedRelationKeys...)), details.GetStringList(bundle.RelationKeyRecommendedRelations)) + assert.Equal(t, append([]string{ + bundle.RelationKeyOrigin.URL(), + bundle.RelationKeyAddedDate.URL(), + }, buildRelationIds(defaultRecommendedRelationKeys)...), details.GetStringList(bundle.RelationKeyRecommendedRelations)) assert.Equal(t, defaultRecFeatRelIds, details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) assert.Equal(t, []string{ bundle.RelationKeyFileExt.URL(), From c51911de31edf36b989083faf3564b24d67069d2 Mon Sep 17 00:00:00 2001 From: kirillston Date: Sat, 18 Jan 2025 22:29:14 +0100 Subject: [PATCH 068/176] GO-4234 Introduce check method --- core/block/editor/basic/details.go | 7 +------ core/block/editor/converter/layout.go | 28 ++++++++++++++------------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index eebd47d2c..59ccef1b4 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -295,13 +295,8 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er return bs.SetLayoutInState(st, model.ObjectTypeLayout(detail.Value.Int64()), false) } if detail.Key == bundle.RelationKeyRecommendedLayout { - fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) - toLayout := detail.Value.Int64() // nolint:gosec - if !bs.layoutConverter.IsConversionAllowed(model.ObjectTypeLayout(fromLayout), model.ObjectTypeLayout(toLayout)) { - return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", - model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) - } + return bs.layoutConverter.CheckRecommendedLayoutConversionAllowed(st, model.ObjectTypeLayout(detail.Value.Int64())) } return nil } diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index 92ef2d6c1..e20e96b9f 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -26,7 +26,7 @@ import ( type LayoutConverter interface { Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout, ignoreIntergroupConversion bool) error - IsConversionAllowed(from, to model.ObjectTypeLayout) bool + CheckRecommendedLayoutConversionAllowed(st *state.State, layout model.ObjectTypeLayout) error app.Component } @@ -51,21 +51,27 @@ func (c *layoutConverter) Name() string { return "layout-converter" } -// IsConversionAllowed provides more strict check of layout conversion with introduction of primitives. -// Only conversion between page layouts (page/note/task/profile) and list layouts (set/collection) is allowed -func (c *layoutConverter) IsConversionAllowed(from, to model.ObjectTypeLayout) bool { +func (c *layoutConverter) CheckRecommendedLayoutConversionAllowed(st *state.State, layout model.ObjectTypeLayout) error { + fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) + if !c.isConversionAllowed(model.ObjectTypeLayout(fromLayout), layout) { //nolint:gosec + return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", + model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(layout)]) + } + return nil +} + +// isConversionAllowed provides more strict check of layout conversion with introduction of primitives. +// Only conversion between page layouts (page/note/task/profile) and list layouts (set->collection) is allowed +func (c *layoutConverter) isConversionAllowed(from, to model.ObjectTypeLayout) bool { if from == to { return true } - if isPageLayout(from) && isPageLayout(to) { return true } - - if isSetLayout(from) && isSetLayout(to) { + if from == model.ObjectType_set && to == model.ObjectType_collection { return true } - return false } @@ -78,16 +84,12 @@ func isPageLayout(layout model.ObjectTypeLayout) bool { }, layout) } -func isSetLayout(layout model.ObjectTypeLayout) bool { - return slices.Contains([]model.ObjectTypeLayout{model.ObjectType_collection, model.ObjectType_set}, layout) -} - func (c *layoutConverter) Convert(st *state.State, fromLayout, toLayout model.ObjectTypeLayout, ignoreIntergroupConversion bool) error { if fromLayout == toLayout { return nil } - if !ignoreIntergroupConversion && !c.IsConversionAllowed(fromLayout, toLayout) { + if !ignoreIntergroupConversion && !c.isConversionAllowed(fromLayout, toLayout) { return fmt.Errorf("layout conversion from %s to %s is not allowed", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(toLayout)]) } From 39a6e09b64e067e99a32193d28b8ba5124c30eaf Mon Sep 17 00:00:00 2001 From: kirillston Date: Sat, 18 Jan 2025 23:04:58 +0100 Subject: [PATCH 069/176] GO-4759 Single relation order --- pkg/lib/bundle/types.gen.go | 18 +++++++++--------- pkg/lib/bundle/types.json | 30 ++++++++++++++---------------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/pkg/lib/bundle/types.gen.go b/pkg/lib/bundle/types.gen.go index 06d220a79..a896a1aec 100644 --- a/pkg/lib/bundle/types.gen.go +++ b/pkg/lib/bundle/types.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const TypeChecksum = "5458717a4167a70b8a8e3148147e192263a645484359ec155b6856a8996e8ec8" +const TypeChecksum = "5562fb7821c33e357dd68571563a98a2dc930894f3f7da9868f7a7008843894c" const ( TypePrefix = "_ot" ) @@ -67,7 +67,7 @@ var ( Layout: model.ObjectType_basic, Name: "Book", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAuthor), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyStarred), MustGetRelationLink(RelationKeyUrl)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAuthor), MustGetRelationLink(RelationKeyStarred), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyUrl)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "book", }, @@ -78,7 +78,7 @@ var ( Layout: model.ObjectType_bookmark, Name: "Bookmark", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeySource), MustGetRelationLink(RelationKeyPicture)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyPicture), MustGetRelationLink(RelationKeySource)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "bookmark", }, @@ -90,7 +90,7 @@ var ( Layout: model.ObjectType_chat, Name: "Chat [deprecated]", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyDescription)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, Types: []model.SmartBlockType{model.SmartBlockType_ChatObject}, Url: TypePrefix + "chat", }, @@ -101,7 +101,7 @@ var ( Layout: model.ObjectType_chatDerived, Name: "Chat Derived Object", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyDescription)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_ChatDerivedObject}, Url: TypePrefix + "chatDerived", @@ -124,7 +124,7 @@ var ( Layout: model.ObjectType_profile, Name: "Contact", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyPhone), MustGetRelationLink(RelationKeyEmail), MustGetRelationLink(RelationKeyCompany)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyCompany), MustGetRelationLink(RelationKeyEmail), MustGetRelationLink(RelationKeyPhone)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "contact", }, @@ -182,7 +182,7 @@ var ( Layout: model.ObjectType_todo, Name: "Goal", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyProgress), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyTasks)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyProgress), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyTasks)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "goal", }, @@ -285,7 +285,7 @@ var ( Layout: model.ObjectType_basic, Name: "Recipe", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyTime), MustGetRelationLink(RelationKeyIngredients)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyIngredients), MustGetRelationLink(RelationKeyTime)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "recipe", }, @@ -356,7 +356,7 @@ var ( Layout: model.ObjectType_todo, Name: "Task", Readonly: true, - RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAssignee), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyDone), MustGetRelationLink(RelationKeyPriority), MustGetRelationLink(RelationKeyTasks), MustGetRelationLink(RelationKeyLinkedProjects)}, + RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAssignee), MustGetRelationLink(RelationKeyDone), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyLinkedProjects), MustGetRelationLink(RelationKeyPriority), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyTasks)}, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "task", }, diff --git a/pkg/lib/bundle/types.json b/pkg/lib/bundle/types.json index 3a2e3e32e..a87fa0163 100644 --- a/pkg/lib/bundle/types.json +++ b/pkg/lib/bundle/types.json @@ -10,8 +10,8 @@ "layout": "basic", "relations": [ "tag", - "time", - "ingredients" + "ingredients", + "time" ], "description": "A recipe is a set of instructions that describes how to prepare or make something, especially a dish of prepared food" }, @@ -40,9 +40,9 @@ "layout": "profile", "relations": [ "tag", - "phone", + "company", "email", - "company" + "phone" ], "description": "Information to make action of communicating or meeting with Human or Company" }, @@ -57,8 +57,8 @@ "layout": "bookmark", "relations": [ "tag", - "source", - "picture" + "picture", + "source" ], "description": "URL that is stored as Object and may be categorised and linked with objects" }, @@ -88,12 +88,12 @@ "relations": [ "tag", "assignee", - "dueDate", - "status", "done", + "dueDate", + "linkedProjects", "priority", - "tasks", - "linkedProjects" + "status", + "tasks" ], "description": "A piece of work to be done or undertaken" }, @@ -127,8 +127,8 @@ "relations": [ "tag", "author", - "status", "starred", + "status", "url" ], "description": "A book is a medium for recording information in the form of writing or images, typically composed of many pages bound together and protected by a cover" @@ -415,9 +415,9 @@ "layout": "todo", "relations": [ "tag", + "dueDate", "progress", "status", - "dueDate", "tasks" ], "description": "The object of a person's ambition or effort; an aim or desired result" @@ -467,8 +467,7 @@ "hidden": true, "layout": "chat", "relations": [ - "tag", - "description" + "tag" ], "description": "A chat [deprecated]" }, @@ -482,8 +481,7 @@ "hidden": true, "layout": "chatDerived", "relations": [ - "tag", - "description" + "tag" ], "description": "A chat derived object", "revision": 1 From 7e011c2dd2276df2a84df65961958bfc5482d888 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 10:49:37 +0100 Subject: [PATCH 070/176] GO-4817 Change relation list on set source change --- core/block/editor/dataview/dataview.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/block/editor/dataview/dataview.go b/core/block/editor/dataview/dataview.go index 3a2b34449..2894f9a85 100644 --- a/core/block/editor/dataview/dataview.go +++ b/core/block/editor/dataview/dataview.go @@ -118,10 +118,23 @@ func (d *sdataview) SetSourceInSet(ctx session.Context, source []string) (err er return err } + var viewRelations []*model.BlockContentDataviewRelation + if srcBlock, err := BlockBySource(d.objectStore, source); err != nil { + log.Errorf("failed to build dataview block to modify view relation lists: %v", err) + } else { + for _, relLink := range srcBlock.Dataview.RelationLinks { + _ = dv.AddRelation(relLink) + } + viewRelations = srcBlock.Dataview.Views[0].Relations + } + for _, view := range dv.ListViews() { // TODO: GO-4189 Need to review relation lists modification in each view on source change view.DefaultTemplateId = "" view.DefaultObjectTypeId = "" + if len(viewRelations) != 0 { + view.Relations = viewRelations + } if err = dv.SetView(view.Id, *view); err != nil { return fmt.Errorf("failed to update view '%s' of set '%s': %w", view.Id, s.RootId(), err) } From 8b54d61c83413ea8616cd75eadea5c3ff032f3c5 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 10:56:10 +0100 Subject: [PATCH 071/176] GO-4222 Fix export test --- core/block/export/export_test.go | 66 ++++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/core/block/export/export_test.go b/core/block/export/export_test.go index a08edd8d6..51cbc2edf 100644 --- a/core/block/export/export_test.go +++ b/core/block/export/export_test.go @@ -1476,7 +1476,7 @@ func Test_docsForExport(t *testing.T) { assert.Nil(t, err) defaultObjectTypeId := "defaultObjectTypeId" - defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, objectTypeId) + defaultObjectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, defaultObjectTypeId) assert.Nil(t, err) defaultTemplateId := "defaultTemplateId" @@ -1484,35 +1484,35 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_collection)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_collection)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), }, { bundle.RelationKeyId: domain.String(defaultObjectTypeTemplateId), bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate), bundle.RelationKeyTargetObjectType: domain.String(defaultObjectTypeId), }, }) @@ -1650,25 +1650,25 @@ func Test_docsForExport(t *testing.T) { storeFixture.AddObjects(t, spaceId, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyName: domain.String("name"), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_set)), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyName: domain.String("name"), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_set)), }, { - bundle.RelationKeyId: domain.String(objectTypeId), - bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(objectTypeId), + bundle.RelationKeyUniqueKey: domain.String(objectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { - bundle.RelationKeyId: domain.String(defaultObjectTypeId), - bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), - bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_objectType)), - bundle.RelationKeySpaceId: domain.String(spaceId), - bundle.RelationKeyType: domain.String(objectTypeId), + bundle.RelationKeyId: domain.String(defaultObjectTypeId), + bundle.RelationKeyUniqueKey: domain.String(defaultObjectTypeUniqueKey.Marshal()), + bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_objectType)), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyType: domain.String(objectTypeId), }, { bundle.RelationKeyId: domain.String(defaultTemplateId), From 526666f947356ab623e3bf521c6068c16b22f76d Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 11:47:51 +0100 Subject: [PATCH 072/176] GO-4817 Substitute relation list in dv block --- core/block/editor/dataview/dataview.go | 4 +--- core/block/simple/dataview/dataview.go | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/block/editor/dataview/dataview.go b/core/block/editor/dataview/dataview.go index 2894f9a85..57cf595b6 100644 --- a/core/block/editor/dataview/dataview.go +++ b/core/block/editor/dataview/dataview.go @@ -122,9 +122,7 @@ func (d *sdataview) SetSourceInSet(ctx session.Context, source []string) (err er if srcBlock, err := BlockBySource(d.objectStore, source); err != nil { log.Errorf("failed to build dataview block to modify view relation lists: %v", err) } else { - for _, relLink := range srcBlock.Dataview.RelationLinks { - _ = dv.AddRelation(relLink) - } + dv.SetRelations(srcBlock.Dataview.RelationLinks) viewRelations = srcBlock.Dataview.Views[0].Relations } diff --git a/core/block/simple/dataview/dataview.go b/core/block/simple/dataview/dataview.go index 2dc75b710..5ad59b4ce 100644 --- a/core/block/simple/dataview/dataview.go +++ b/core/block/simple/dataview/dataview.go @@ -53,6 +53,7 @@ type Block interface { AddRelation(relation *model.RelationLink) error DeleteRelation(relationKey string) error + SetRelations(relationLinks []*model.RelationLink) GetSource() []string SetSource(source []string) error @@ -340,6 +341,10 @@ func (d *Dataview) DeleteRelation(relationKey string) error { return nil } +func (d *Dataview) SetRelations(relationLinks []*model.RelationLink) { + d.content.RelationLinks = relationLinks +} + func (td *Dataview) ModelToSave() *model.Block { b := pbtypes.CopyBlock(td.Model()) b.Content.(*model.BlockContentOfDataview).Dataview.Relations = nil From f457d4d6edb1b2d3b75c488a8819f061b01da927 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 12:07:29 +0100 Subject: [PATCH 073/176] GO-4234 Fix lint --- core/block/editor/converter/layout.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index e20e96b9f..75b432e90 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -53,9 +53,9 @@ func (c *layoutConverter) Name() string { func (c *layoutConverter) CheckRecommendedLayoutConversionAllowed(st *state.State, layout model.ObjectTypeLayout) error { fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) - if !c.isConversionAllowed(model.ObjectTypeLayout(fromLayout), layout) { //nolint:gosec + if !c.isConversionAllowed(model.ObjectTypeLayout(fromLayout), layout) { return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", - model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(layout)]) + model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(layout)]) //nolint:gosec } return nil } From f28727ba1b2a95ea1da01d49b512e74bd4c79d6e Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 12:14:27 +0100 Subject: [PATCH 074/176] GO-4234 Fix lint 2 --- core/block/editor/converter/layout.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index 75b432e90..351a95b6b 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -53,7 +53,7 @@ func (c *layoutConverter) Name() string { func (c *layoutConverter) CheckRecommendedLayoutConversionAllowed(st *state.State, layout model.ObjectTypeLayout) error { fromLayout := st.Details().GetInt64(bundle.RelationKeyRecommendedLayout) - if !c.isConversionAllowed(model.ObjectTypeLayout(fromLayout), layout) { + if !c.isConversionAllowed(model.ObjectTypeLayout(fromLayout), layout) { //nolint:gosec return fmt.Errorf("can't change object type recommended layout from '%s' to '%s'", model.ObjectTypeLayout_name[int32(fromLayout)], model.ObjectTypeLayout_name[int32(layout)]) //nolint:gosec } From b6c219ba68ef48cf9e7d5e7e74881e6bd9e4c095 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 20 Jan 2025 12:45:54 +0100 Subject: [PATCH 075/176] GO-4759 Fix test --- core/block/restriction/object_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/block/restriction/object_test.go b/core/block/restriction/object_test.go index c51c357b6..4a4c95b23 100644 --- a/core/block/restriction/object_test.go +++ b/core/block/restriction/object_test.go @@ -21,9 +21,9 @@ func TestService_ObjectRestrictionsById(t *testing.T) { t.Run("sets and collections should have edit restrictions", func(t *testing.T) { collection := givenRestrictionHolder(coresb.SmartBlockTypePage, bundle.TypeKeyCollection) - assert.ErrorIs(t, rs.GetRestrictions(collection).Object.Check(objRestrictEditAndPublish...), ErrRestricted) + assert.ErrorIs(t, rs.GetRestrictions(collection).Object.Check(objRestrictEdit...), ErrRestricted) set := givenRestrictionHolder(coresb.SmartBlockTypePage, bundle.TypeKeySet) - assert.ErrorIs(t, rs.GetRestrictions(set).Object.Check(objRestrictEditAndPublish...), ErrRestricted) + assert.ErrorIs(t, rs.GetRestrictions(set).Object.Check(objRestrictEdit...), ErrRestricted) }) t.Run("plain pages should not have any restrictions", func(t *testing.T) { @@ -95,7 +95,7 @@ func TestService_ObjectRestrictionsById(t *testing.T) { t.Run("chat should have edit and duplication restrictions", func(t *testing.T) { assert.ErrorIs(t, rs.GetRestrictions(givenRestrictionHolder(coresb.SmartBlockTypeChatObject, bundle.TypeKeyChat)).Object.Check( - objRestrictEditPublishAndDuplicate..., + objRestrictEditAndDuplicate..., ), ErrRestricted) }) } From eda8cf138c53c52784e3c6cef8a8e9eec63a1a53 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 21 Jan 2025 13:36:41 +0100 Subject: [PATCH 076/176] GO-4817 Make tests WIP --- core/block/editor/dataview/dataview_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/block/editor/dataview/dataview_test.go b/core/block/editor/dataview/dataview_test.go index 8f89f7960..b4109a1f5 100644 --- a/core/block/editor/dataview/dataview_test.go +++ b/core/block/editor/dataview/dataview_test.go @@ -218,8 +218,15 @@ func TestDataview_SetSourceInSet(t *testing.T) { }}, false) require.NoError(t, err) + fx.store.AddObjects(t, []objectstore.TestObject{map[domain.RelationKey]domain.Value{ + bundle.RelationKeyId: domain.String(bundle.TypeKeyPage.URL()), + bundle.RelationKeySpaceId: domain.String(spcId), + bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyPage.URL()), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType.URL()), + }}) + // when - err = fx.SetSourceInSet(nil, []string{"ot-page"}) + err = fx.SetSourceInSet(nil, []string{bundle.TypeKeyPage.URL()}) // then assert.NoError(t, err) From 29662e13986c569303a3ab672c0b4487247de117 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 21 Jan 2025 14:09:23 +0100 Subject: [PATCH 077/176] GO-4817 Include all rec rels in type model --- core/block/editor/dataview/dataview_test.go | 32 +++++++++-- .../objectstore/spaceindex/object_type.go | 12 +++-- .../spaceindex/object_type_test.go | 53 ++++++++++++------- 3 files changed, 70 insertions(+), 27 deletions(-) diff --git a/core/block/editor/dataview/dataview_test.go b/core/block/editor/dataview/dataview_test.go index b4109a1f5..5b0f5d1d9 100644 --- a/core/block/editor/dataview/dataview_test.go +++ b/core/block/editor/dataview/dataview_test.go @@ -219,11 +219,21 @@ func TestDataview_SetSourceInSet(t *testing.T) { require.NoError(t, err) fx.store.AddObjects(t, []objectstore.TestObject{map[domain.RelationKey]domain.Value{ - bundle.RelationKeyId: domain.String(bundle.TypeKeyPage.URL()), - bundle.RelationKeySpaceId: domain.String(spcId), - bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyPage.URL()), - bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType.URL()), - }}) + bundle.RelationKeyId: domain.String(bundle.TypeKeyPage.URL()), + bundle.RelationKeySpaceId: domain.String(spcId), + bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyPage.URL()), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType.URL()), + bundle.RelationKeyRecommendedRelations: domain.StringList([]string{bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL()}), + bundle.RelationKeyRecommendedFeaturedRelations: domain.StringList([]string{bundle.RelationKeyType.URL(), bundle.RelationKeyBacklinks.URL(), bundle.RelationKeyDone.URL()}), + bundle.RelationKeyRecommendedFileRelations: domain.StringList([]string{bundle.RelationKeyFileExt.URL()}), + bundle.RelationKeyRecommendedHiddenRelations: domain.StringList([]string{bundle.RelationKeyTag.URL()}), + }, generateTestRelationObject(bundle.RelationKeyAssignee, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyDone, model.RelationFormat_checkbox), + generateTestRelationObject(bundle.RelationKeyType, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyBacklinks, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyFileExt, model.RelationFormat_shorttext), + generateTestRelationObject(bundle.RelationKeyTag, model.RelationFormat_tag), + }) // when err = fx.SetSourceInSet(nil, []string{bundle.TypeKeyPage.URL()}) @@ -239,13 +249,25 @@ func TestDataview_SetSourceInSet(t *testing.T) { dv := b.Model().GetDataview() require.NotNil(t, dv) require.Len(t, dv.Views, 2) + assert.Len(t, dv.RelationLinks, 12) // 7 default + 6 recommended - 1 common (backlinks) assert.Empty(t, dv.Views[0].DefaultTemplateId) assert.Empty(t, dv.Views[0].DefaultObjectTypeId) + assert.Len(t, dv.Views[0].Relations, 12) assert.Empty(t, dv.Views[1].DefaultTemplateId) assert.Empty(t, dv.Views[1].DefaultObjectTypeId) + assert.Len(t, dv.Views[1].Relations, 12) assert.Empty(t, fx.sb.NewState().Details().GetInt64List(bundle.RelationKeyInternalFlags)) }) // TODO: GO-4189 Add more tests when more logic on SetSourceToSet will be added } + +func generateTestRelationObject(key domain.RelationKey, format model.RelationFormat) objectstore.TestObject { + return objectstore.TestObject{ + bundle.RelationKeyId: domain.String(key.URL()), + bundle.RelationKeyRelationKey: domain.String(key.String()), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelation.URL()), + bundle.RelationKeyRelationFormat: domain.Int64(format), + } +} diff --git a/pkg/lib/localstore/objectstore/spaceindex/object_type.go b/pkg/lib/localstore/objectstore/spaceindex/object_type.go index ba56a16fd..65f948201 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/object_type.go +++ b/pkg/lib/localstore/objectstore/spaceindex/object_type.go @@ -4,6 +4,8 @@ import ( "fmt" "strings" + "github.com/samber/lo" + "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -53,9 +55,13 @@ func (s *dsObjectStore) extractObjectTypeFromDetails(details *domain.Details, ur } func (s *dsObjectStore) getRelationLinksForRecommendedRelations(details *domain.Details) []*model.RelationLink { - recommendedRelationIDs := details.GetStringList(bundle.RelationKeyRecommendedRelations) - relationLinks := make([]*model.RelationLink, 0, len(recommendedRelationIDs)) - for _, relationID := range recommendedRelationIDs { + recommendedRelationIds := details.GetStringList(bundle.RelationKeyRecommendedRelations) + featuredRelationIds := details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations) + fileRelationIds := details.GetStringList(bundle.RelationKeyRecommendedFileRelations) + hiddenRelationIds := details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations) + allRelationIds := lo.Uniq(append(append(recommendedRelationIds, featuredRelationIds...), append(fileRelationIds, hiddenRelationIds...)...)) + relationLinks := make([]*model.RelationLink, 0, len(allRelationIds)) + for _, relationID := range allRelationIds { relation, err := s.GetRelationById(relationID) if err != nil { log.Errorf("failed to get relation %s: %s", relationID, err) diff --git a/pkg/lib/localstore/objectstore/spaceindex/object_type_test.go b/pkg/lib/localstore/objectstore/spaceindex/object_type_test.go index 0a022309b..84cff01f3 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/object_type_test.go +++ b/pkg/lib/localstore/objectstore/spaceindex/object_type_test.go @@ -43,25 +43,29 @@ func TestGetObjectType(t *testing.T) { s := NewStoreFixture(t) id := "id1" - relationID := "derivedFrom(assignee)" uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, "note") require.NoError(t, err) obj := TestObject{ - bundle.RelationKeyId: domain.String(id), - bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType.URL()), - bundle.RelationKeyName: domain.String("my note"), - bundle.RelationKeyRecommendedRelations: domain.StringList([]string{relationID}), - bundle.RelationKeyRecommendedLayout: domain.Int64(int64(model.ObjectType_note)), - bundle.RelationKeyIconEmoji: domain.String("ðŸ“"), - bundle.RelationKeyIsArchived: domain.Bool(true), - bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), + bundle.RelationKeyId: domain.String(id), + bundle.RelationKeyType: domain.String(bundle.TypeKeyObjectType.URL()), + bundle.RelationKeyName: domain.String("my note"), + bundle.RelationKeyRecommendedRelations: domain.StringList([]string{bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL()}), + bundle.RelationKeyRecommendedFeaturedRelations: domain.StringList([]string{bundle.RelationKeyType.URL(), bundle.RelationKeyBacklinks.URL(), bundle.RelationKeyDone.URL()}), + bundle.RelationKeyRecommendedFileRelations: domain.StringList([]string{bundle.RelationKeyFileExt.URL()}), + bundle.RelationKeyRecommendedHiddenRelations: domain.StringList([]string{bundle.RelationKeyTag.URL()}), + bundle.RelationKeyRecommendedLayout: domain.Int64(int64(model.ObjectType_note)), + bundle.RelationKeyIconEmoji: domain.String("ðŸ“"), + bundle.RelationKeyIsArchived: domain.Bool(true), + bundle.RelationKeyUniqueKey: domain.String(uniqueKey.Marshal()), } - relObj := TestObject{ - bundle.RelationKeyId: domain.String(relationID), - bundle.RelationKeyRelationKey: domain.String(bundle.RelationKeyAssignee.String()), - bundle.RelationKeyType: domain.String(bundle.TypeKeyRelation.URL()), - } - s.AddObjects(t, []TestObject{obj, relObj}) + s.AddObjects(t, []TestObject{obj, + generateTestRelationObject(bundle.RelationKeyAssignee, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyDone, model.RelationFormat_checkbox), + generateTestRelationObject(bundle.RelationKeyType, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyBacklinks, model.RelationFormat_object), + generateTestRelationObject(bundle.RelationKeyFileExt, model.RelationFormat_shorttext), + generateTestRelationObject(bundle.RelationKeyTag, model.RelationFormat_tag), + }) // When got, err := s.GetObjectType(id) @@ -77,13 +81,24 @@ func TestGetObjectType(t *testing.T) { Types: []model.SmartBlockType{model.SmartBlockType_Page}, Key: "note", RelationLinks: []*model.RelationLink{ - { - Key: bundle.RelationKeyAssignee.String(), - Format: model.RelationFormat_longtext, - }, + {Key: bundle.RelationKeyAssignee.String(), Format: model.RelationFormat_object}, + {Key: bundle.RelationKeyDone.String(), Format: model.RelationFormat_checkbox}, + {Key: bundle.RelationKeyType.String(), Format: model.RelationFormat_object}, + {Key: bundle.RelationKeyBacklinks.String(), Format: model.RelationFormat_object}, + {Key: bundle.RelationKeyFileExt.String(), Format: model.RelationFormat_shorttext}, + {Key: bundle.RelationKeyTag.String(), Format: model.RelationFormat_tag}, }, } assert.Equal(t, want, got) }) } + +func generateTestRelationObject(key domain.RelationKey, format model.RelationFormat) TestObject { + return TestObject{ + bundle.RelationKeyId: domain.String(key.URL()), + bundle.RelationKeyRelationKey: domain.String(key.String()), + bundle.RelationKeyType: domain.String(bundle.TypeKeyRelation.URL()), + bundle.RelationKeyRelationFormat: domain.Int64(format), + } +} From af27222ba9996ab5ae8d4e9121b56a1170afe085 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 21 Jan 2025 14:28:42 +0100 Subject: [PATCH 078/176] GO-4881 Remove Details restriction from editable types --- core/block/restriction/object.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index 4649cde0e..4ebf679ea 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -164,7 +164,11 @@ var ( } ) -var editableSystemTypes = []domain.TypeKey{bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote} +var editableSystemTypes = []domain.TypeKey{ + bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote, + bundle.TypeKeySet, bundle.TypeKeyCollection, bundle.TypeKeyFile, + bundle.TypeKeyAudio, bundle.TypeKeyVideo, bundle.TypeKeyImage, +} func GetRestrictionsBySBType(sbType smartblock.SmartBlockType) []int { restrictions := objectRestrictionsBySBType[sbType] From ceca8a09711e1cf8de4b79ac422354ea3d8d5e3a Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 22 Jan 2025 17:12:17 +0100 Subject: [PATCH 079/176] GO-4762 Fix template picker + Layout propagation --- core/block/collection/service.go | 2 +- core/block/editor/smartblock/detailsinject.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/core/block/collection/service.go b/core/block/collection/service.go index 65d19a3ad..f6ec21dc0 100644 --- a/core/block/collection/service.go +++ b/core/block/collection/service.go @@ -160,7 +160,7 @@ func (s *Service) SubscribeForCollection(collectionID string, subscriptionID str initialObjectIDs = st.GetStoreSlice(template.CollectionStoreKey) return nil - }) + }, smartblock.KeepInternalFlags) if err != nil { return nil, nil, err } diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index bc093f32b..da44138f7 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "slices" "github.com/anyproto/any-sync/app/ocache" @@ -282,6 +283,12 @@ func (sb *smartBlock) changeResolvedLayoutForObjects(msgs []simple.EventMessage, return nil } + // nolint:gosec + if !isLayoutChangeApplicable(model.ObjectTypeLayout(layout)) { + // if layout change is not applicable, then it is init of some system type + return nil + } + index := sb.objectStore.SpaceIndex(sb.SpaceID()) records, err := index.Query(database.Query{Filters: []database.FilterRequest{ { @@ -380,3 +387,13 @@ func getLayoutFromMessages(msgs []simple.EventMessage) (layout int64, found bool } return 0, false } + +func isLayoutChangeApplicable(layout model.ObjectTypeLayout) bool { + return slices.Contains([]model.ObjectTypeLayout{ + model.ObjectType_basic, + model.ObjectType_todo, + model.ObjectType_profile, + model.ObjectType_note, + model.ObjectType_collection, + }, layout) +} From 0379baecea37d0d4e0f992bd88f201d120b42d06 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 22 Jan 2025 17:36:06 +0100 Subject: [PATCH 080/176] GO-4817 Fix comments --- core/block/editor/dataview/dataview.go | 3 +-- pkg/lib/localstore/objectstore/spaceindex/object_type.go | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/block/editor/dataview/dataview.go b/core/block/editor/dataview/dataview.go index 57cf595b6..800ceb4f1 100644 --- a/core/block/editor/dataview/dataview.go +++ b/core/block/editor/dataview/dataview.go @@ -127,10 +127,9 @@ func (d *sdataview) SetSourceInSet(ctx session.Context, source []string) (err er } for _, view := range dv.ListViews() { - // TODO: GO-4189 Need to review relation lists modification in each view on source change view.DefaultTemplateId = "" view.DefaultObjectTypeId = "" - if len(viewRelations) != 0 { + if len(viewRelations) > 0 { view.Relations = viewRelations } if err = dv.SetView(view.Id, *view); err != nil { diff --git a/pkg/lib/localstore/objectstore/spaceindex/object_type.go b/pkg/lib/localstore/objectstore/spaceindex/object_type.go index 65f948201..729eb2f56 100644 --- a/pkg/lib/localstore/objectstore/spaceindex/object_type.go +++ b/pkg/lib/localstore/objectstore/spaceindex/object_type.go @@ -2,6 +2,7 @@ package spaceindex import ( "fmt" + "slices" "strings" "github.com/samber/lo" @@ -59,7 +60,7 @@ func (s *dsObjectStore) getRelationLinksForRecommendedRelations(details *domain. featuredRelationIds := details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations) fileRelationIds := details.GetStringList(bundle.RelationKeyRecommendedFileRelations) hiddenRelationIds := details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations) - allRelationIds := lo.Uniq(append(append(recommendedRelationIds, featuredRelationIds...), append(fileRelationIds, hiddenRelationIds...)...)) + allRelationIds := lo.Uniq(slices.Concat(recommendedRelationIds, featuredRelationIds, fileRelationIds, hiddenRelationIds)) relationLinks := make([]*model.RelationLink, 0, len(allRelationIds)) for _, relationID := range allRelationIds { relation, err := s.GetRelationById(relationID) From 99f6ed701de00e43adfe1fc8ba85dd2bb8c63745 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 22 Jan 2025 19:38:16 +0100 Subject: [PATCH 081/176] GO-4929 Fix layout for new set templates --- core/block/object/objectcreator/creator.go | 74 ++++++++++++++++------ 1 file changed, 54 insertions(+), 20 deletions(-) diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index f05f57a94..baa286bf9 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -130,10 +130,6 @@ func (s *service) createObjectInSpace( switch req.ObjectTypeKey { case bundle.TypeKeyBookmark: return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) - case bundle.TypeKeySet: - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_set)) - case bundle.TypeKeyCollection: - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_collection)) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) case bundle.TypeKeyRelation: @@ -145,35 +141,73 @@ func (s *service) createObjectInSpace( case bundle.TypeKeyFile: return "", nil, fmt.Errorf("files must be created via fileobject service") case bundle.TypeKeyTemplate: - if details.GetString(bundle.RelationKeyTargetObjectType) == "" { - return "", nil, fmt.Errorf("cannot create template without target object") - } + return s.createTemplate(ctx, space, details, req) case bundle.TypeKeyDate: return buildDateObject(space, details) + default: + return s.createCommonObject(ctx, space, details, req) } - - return s.createObjectFromTemplate(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, details, req.TemplateId) } -func (s *service) createObjectFromTemplate( - ctx context.Context, - space clientspace.Space, - objectTypeKeys []domain.TypeKey, - details *domain.Details, - templateId string, -) (id string, newDetails *domain.Details, err error) { - typeId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, string(objectTypeKeys[0]))) +func (s *service) createTemplate( + ctx context.Context, space clientspace.Space, details *domain.Details, req CreateObjectRequest, +) (id string, resultDetails *domain.Details, err error) { + target := details.GetString(bundle.RelationKeyTargetObjectType) + if target == "" { + return "", nil, fmt.Errorf("cannot create template without target object type") + } + layout, err := s.getTypeRecommendedLayout(domain.FullID{SpaceID: space.Id(), ObjectID: target}) + if err != nil { + return "", nil, fmt.Errorf("failed to fetch target object type from store: %w", err) + } + details.SetInt64(bundle.RelationKeyResolvedLayout, layout) + + typeId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, req.ObjectTypeKey.String())) if err != nil { return "", nil, fmt.Errorf("failed to derive object type id: %w", err) } - // we should enrich details with spaceId and type to use type object to form state of new object + // we should enrich details with spaceId, type and layout to use type object to form state of new object details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) details.Set(bundle.RelationKeyType, domain.String(typeId)) - createState, err := s.templateService.CreateTemplateStateWithDetails(templateId, details) + + createState, err := s.templateService.CreateTemplateStateWithDetails("", details) if err != nil { return } - return s.CreateSmartBlockFromStateInSpace(ctx, space, objectTypeKeys, createState) + return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, createState) +} + +func (s *service) createCommonObject( + ctx context.Context, space clientspace.Space, details *domain.Details, req CreateObjectRequest, +) (id string, resultDetails *domain.Details, err error) { + typeId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, req.ObjectTypeKey.String())) + if err != nil { + return "", nil, fmt.Errorf("failed to derive object type id: %w", err) + } + + layout, err := s.getTypeRecommendedLayout(domain.FullID{SpaceID: space.Id(), ObjectID: typeId}) + if err != nil { + return "", nil, fmt.Errorf("failed to fetch target object type from store: %w", err) + } + + // we should enrich details with spaceId, type and layout to use type object to form state of new object + details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) + details.Set(bundle.RelationKeyType, domain.String(typeId)) + details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) + + createState, err := s.templateService.CreateTemplateStateWithDetails(req.TemplateId, details) + if err != nil { + return + } + return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, createState) +} + +func (s *service) getTypeRecommendedLayout(typeId domain.FullID) (int64, error) { + ot, err := s.objectStore.SpaceIndex(typeId.SpaceID).GetObjectType(typeId.ObjectID) + if err != nil { + return 0, err + } + return int64(ot.Layout), nil } // buildDateObject does not create real date object. It just builds date object details From 12bb48f6179f390ba978506c219ed3cbb70920f6 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 23 Jan 2025 10:07:47 +0100 Subject: [PATCH 082/176] GO-4929 Fix tests --- .../object/objectcreator/creator_test.go | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/core/block/object/objectcreator/creator_test.go b/core/block/object/objectcreator/creator_test.go index 0c87f11ea..3f2240108 100644 --- a/core/block/object/objectcreator/creator_test.go +++ b/core/block/object/objectcreator/creator_test.go @@ -14,6 +14,8 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/clientspace" "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" "github.com/anyproto/anytype-heart/space/mock_space" @@ -27,6 +29,7 @@ type fixture struct { spc *mock_clientspace.MockSpace templateService *testTemplateService lastUsedService *mock_lastused.MockObjectUsageUpdater + objectStore *objectstore.StoreFixture service Service } @@ -36,11 +39,13 @@ func newFixture(t *testing.T) *fixture { templateSvc := &testTemplateService{} lastUsedSvc := mock_lastused.NewMockObjectUsageUpdater(t) + store := objectstore.NewStoreFixture(t) s := &service{ spaceService: spaceService, templateService: templateSvc, lastUsedUpdater: lastUsedSvc, + objectStore: store, } return &fixture{ @@ -48,6 +53,7 @@ func newFixture(t *testing.T) *fixture { spc: spc, templateService: templateSvc, lastUsedService: lastUsedSvc, + objectStore: store, service: s, } } @@ -62,7 +68,9 @@ func (tts *testTemplateService) CreateTemplateStateWithDetails(templateId string return st, nil } } - return state.NewDoc(templateId, nil).NewState(), nil + st := state.NewDoc(templateId, nil).NewState() + st.SetDetails(details) + return st, nil } func (tts *testTemplateService) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) { @@ -77,9 +85,20 @@ func TestService_CreateObject(t *testing.T) { f.spaceService.EXPECT().Get(mock.Anything, mock.Anything).Return(f.spc, nil) f.spc.EXPECT().CreateTreeObject(mock.Anything, mock.Anything).Return(sb, nil) f.spc.EXPECT().Id().Return(spaceId) - f.spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).Return(bundle.TypeKeyTask.URL(), nil) + f.spc.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return key.Marshal(), nil + }) f.lastUsedService.EXPECT().UpdateLastUsedDate(spaceId, bundle.TypeKeyTemplate, mock.Anything).Return() + f.objectStore.AddObjects(t, spaceId, []objectstore.TestObject{ + { + bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyUniqueKey: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_todo), + }, + }) + // when id, _, err := f.service.CreateObject(context.Background(), spaceId, CreateObjectRequest{ Details: domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ From 5a0594eb5306eeac3fbc20b6ece32ff79a3358a2 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 23 Jan 2025 10:42:41 +0100 Subject: [PATCH 083/176] Fix mocks --- .../mock_service/mock_ClientCommandsServer.go | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/pb/service/mock_service/mock_ClientCommandsServer.go b/pb/service/mock_service/mock_ClientCommandsServer.go index 335613596..439212bb9 100644 --- a/pb/service/mock_service/mock_ClientCommandsServer.go +++ b/pb/service/mock_service/mock_ClientCommandsServer.go @@ -11034,6 +11034,153 @@ func (_c *MockClientCommandsServer_ObjectToSet_Call) RunAndReturn(run func(conte return _c } +// ObjectTypeListConflictingRelations provides a mock function with given fields: _a0, _a1 +func (_m *MockClientCommandsServer) ObjectTypeListConflictingRelations(_a0 context.Context, _a1 *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeListConflictingRelations") + } + + var r0 *pb.RpcObjectTypeListConflictingRelationsResponse + if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pb.RpcObjectTypeListConflictingRelationsResponse) + } + } + + return r0 +} + +// MockClientCommandsServer_ObjectTypeListConflictingRelations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeListConflictingRelations' +type MockClientCommandsServer_ObjectTypeListConflictingRelations_Call struct { + *mock.Call +} + +// ObjectTypeListConflictingRelations is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 *pb.RpcObjectTypeListConflictingRelationsRequest +func (_e *MockClientCommandsServer_Expecter) ObjectTypeListConflictingRelations(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call { + return &MockClientCommandsServer_ObjectTypeListConflictingRelations_Call{Call: _e.mock.On("ObjectTypeListConflictingRelations", _a0, _a1)} +} + +func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeListConflictingRelationsRequest)) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeListConflictingRelationsRequest)) + }) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) Return(_a0 *pb.RpcObjectTypeListConflictingRelationsResponse) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call { + _c.Call.Return(run) + return _c +} + +// ObjectTypeRecommendedFeaturedRelationsSet provides a mock function with given fields: _a0, _a1 +func (_m *MockClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeRecommendedFeaturedRelationsSet") + } + + var r0 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse + if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) + } + } + + return r0 +} + +// MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRecommendedFeaturedRelationsSet' +type MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call struct { + *mock.Call +} + +// ObjectTypeRecommendedFeaturedRelationsSet is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest +func (_e *MockClientCommandsServer_Expecter) ObjectTypeRecommendedFeaturedRelationsSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call { + return &MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call{Call: _e.mock.On("ObjectTypeRecommendedFeaturedRelationsSet", _a0, _a1)} +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest)) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest)) + }) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) Return(_a0 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call { + _c.Call.Return(run) + return _c +} + +// ObjectTypeRecommendedRelationsSet provides a mock function with given fields: _a0, _a1 +func (_m *MockClientCommandsServer) ObjectTypeRecommendedRelationsSet(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for ObjectTypeRecommendedRelationsSet") + } + + var r0 *pb.RpcObjectTypeRecommendedRelationsSetResponse + if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pb.RpcObjectTypeRecommendedRelationsSetResponse) + } + } + + return r0 +} + +// MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRecommendedRelationsSet' +type MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call struct { + *mock.Call +} + +// ObjectTypeRecommendedRelationsSet is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest +func (_e *MockClientCommandsServer_Expecter) ObjectTypeRecommendedRelationsSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call { + return &MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call{Call: _e.mock.On("ObjectTypeRecommendedRelationsSet", _a0, _a1)} +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest)) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRecommendedRelationsSetRequest)) + }) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) Return(_a0 *pb.RpcObjectTypeRecommendedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call { + _c.Call.Return(run) + return _c +} + // ObjectTypeRelationAdd provides a mock function with given fields: _a0, _a1 func (_m *MockClientCommandsServer) ObjectTypeRelationAdd(_a0 context.Context, _a1 *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse { ret := _m.Called(_a0, _a1) From 1a1281ee8568ac7e7b282f9fc9fd1ad482e90edf Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 24 Jan 2025 11:52:30 +0100 Subject: [PATCH 084/176] GO-4673 Apply setOf detail from template --- core/block/template/service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/template/service.go b/core/block/template/service.go index e6acafc22..f69be39c5 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -44,7 +44,7 @@ var ( templateIsPreferableRelationKeys = []domain.RelationKey{ bundle.RelationKeyFeaturedRelations, bundle.RelationKeyResolvedLayout, bundle.RelationKeyIconEmoji, bundle.RelationKeyCoverId, - bundle.RelationKeySourceObject, + bundle.RelationKeySourceObject, bundle.RelationKeySetOf, } ) From c61cf00d9ac86cc14598d0d1b77d209b6a003ff1 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 24 Jan 2025 12:23:16 +0100 Subject: [PATCH 085/176] GO-4947 Fix Account layout --- core/block/source/source.go | 2 +- core/block/source/store.go | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/block/source/source.go b/core/block/source/source.go index 19025d14f..3c76ac19c 100644 --- a/core/block/source/source.go +++ b/core/block/source/source.go @@ -191,7 +191,7 @@ func (s *service) newTreeSource(ctx context.Context, space Space, id string, bui fileObjectMigrator: s.fileObjectMigrator, } if sbt == smartblock.SmartBlockTypeChatDerivedObject || sbt == smartblock.SmartBlockTypeAccountObject { - return &store{source: src}, nil + return &store{source: src, sbType: sbt}, nil } return src, nil diff --git a/core/block/source/store.go b/core/block/source/store.go index b0e14afd8..5133c615d 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -20,6 +20,7 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) @@ -50,6 +51,7 @@ type store struct { store *storestate.StoreState onUpdateHook func() onPushChange PushChangeHook + sbType smartblock.SmartBlockType } func (s *store) GetFileKeysSnapshot() []*pb.ChangeFileKeys { @@ -73,9 +75,19 @@ func (s *store) ReadDoc(ctx context.Context, receiver ChangeReceiver, empty bool st := state.NewDoc(s.id, nil).(*state.State) // Set object type here in order to derive value of Type relation in smartblock.Init - st.SetObjectTypeKey(bundle.TypeKeyChatDerived) - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) - st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + switch s.sbType { + case smartblock.SmartBlockTypeChatDerivedObject: + st.SetObjectTypeKey(bundle.TypeKeyChatDerived) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) + case smartblock.SmartBlockTypeAccountObject: + st.SetObjectTypeKey(bundle.TypeKeyProfile) + st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_profile))) + st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_profile))) + default: + return nil, fmt.Errorf("unsupported smartblock type: %v", s.sbType) + } + st.SetDetailAndBundledRelation(bundle.RelationKeyIsHidden, domain.Bool(true)) return st, nil } From ed89cacf08a0dacbcb5c2915d1d95c3b2401b295 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 27 Jan 2025 12:15:52 +0100 Subject: [PATCH 086/176] GO-4762 Preserve template picker on obj2coll rpc --- core/block/collection/service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/collection/service.go b/core/block/collection/service.go index f6ec21dc0..e8b0468d8 100644 --- a/core/block/collection/service.go +++ b/core/block/collection/service.go @@ -220,7 +220,7 @@ func (s *Service) ObjectToCollection(id string) error { sb := b.(smartblock.SmartBlock) s.setDefaultObjectTypeToViews(sb.SpaceID(), st) return b.SetObjectTypesInState(st, []domain.TypeKey{bundle.TypeKeyCollection}, true) - }) + }, smartblock.KeepInternalFlags) } func (s *Service) setDefaultObjectTypeToViews(spaceId string, st *state.State) { From 9435d178839bca5ceaf074b23160ca926a9abdb2 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 27 Jan 2025 15:34:29 +0100 Subject: [PATCH 087/176] GO-4957 Save relationFormatObjectTypes on relation creation --- core/block/object/objectcreator/relation.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index 4b57c39a5..336e0a66c 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -3,7 +3,6 @@ package objectcreator import ( "context" "fmt" - "strings" "time" "github.com/globalsign/mgo/bson" @@ -74,7 +73,16 @@ func fillRelationFormatObjectTypes(ctx context.Context, spc clientspace.Space, d for i, objectType := range objectTypes { // replace object type url with id - uniqueKey, err := domain.NewUniqueKey(coresb.SmartBlockTypeObjectType, strings.TrimPrefix(objectType, addr.BundledObjectTypeURLPrefix)) + typeKey, err := bundle.TypeKeyFromUrl(objectType) + if err != nil { + if i == 0 { + // relationFormatObjectTypes detail already contains list of types' ids + return nil + } + // should never happen + return err + } + uniqueKey, err := domain.NewUniqueKey(coresb.SmartBlockTypeObjectType, typeKey.String()) if err != nil { // should never happen return err From b625dafce0c9efb2d147722d2ebf645c08634ab3 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Tue, 28 Jan 2025 18:36:28 +0100 Subject: [PATCH 088/176] GO-4346: fix comments Signed-off-by: AnastasiaShemyakinskaya --- core/block/export/export.go | 121 +++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 49 deletions(-) diff --git a/core/block/export/export.go b/core/block/export/export.go index 9a3b96b88..445328d3c 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -162,6 +162,9 @@ type exportContext struct { path string linkStateFilters *state.Filters isLinkProcess bool + relations map[string]struct{} + setOfList map[string]struct{} + objectTypes map[string]struct{} *export } @@ -179,7 +182,11 @@ func newExportContext(e *export, req pb.RpcObjectListExportRequest) *exportConte reqIds: req.ObjectIds, zip: req.Zip, linkStateFilters: pbFiltersToState(req.LinksStateFilters), - export: e, + relations: make(map[string]struct{}), + setOfList: make(map[string]struct{}), + objectTypes: make(map[string]struct{}), + + export: e, } return ec } @@ -197,6 +204,9 @@ func (e *exportContext) copy() *exportContext { export: e.export, isLinkProcess: e.isLinkProcess, linkStateFilters: e.linkStateFilters, + relations: e.relations, + setOfList: e.setOfList, + objectTypes: e.objectTypes, } } @@ -520,74 +530,75 @@ func (e *exportContext) processFiles(ids []string) ([]string, error) { func (e *exportContext) addDerivedObjects() error { processedObjects := make(map[string]struct{}, 0) - allRelations, allTypes, allSetOfList, err := e.getRelationsAndTypes(e.docs, processedObjects) + err := e.getRelationsAndTypes(e.docs, processedObjects) if err != nil { return err } - templateRelations, templateTypes, templateSetOfList, err := e.getTemplatesRelationsAndTypes(lo.Union(allTypes, allSetOfList), processedObjects) + + err = e.getTemplatesRelationsAndTypes(processedObjects) if err != nil { return err } - allRelations = lo.Union(allRelations, templateRelations) - allTypes = lo.Union(allTypes, templateTypes) - allSetOfList = lo.Union(allSetOfList, templateSetOfList) - err = e.addRelationsAndTypes(allTypes, allRelations, allSetOfList) + err = e.addRelationsAndTypes() if err != nil { return err } return nil } -func (e *exportContext) getRelationsAndTypes(notProcessedObjects map[string]*Doc, processedObjects map[string]struct{}) ([]string, []string, []string, error) { - allRelations, allTypes, allSetOfList, err := e.collectDerivedObjects(notProcessedObjects) +func (e *exportContext) getRelationsAndTypes(notProcessedObjects map[string]*Doc, processedObjects map[string]struct{}) error { + err := e.collectDerivedObjects(notProcessedObjects) if err != nil { - return nil, nil, nil, err + return err } // get derived objects only from types, // because relations currently have only system relations and object type - if len(allTypes) > 0 || len(allSetOfList) > 0 { - relations, objectTypes, setOfList, err := e.getDerivedObjectsForTypes(lo.Union(allTypes, allSetOfList), processedObjects) + if len(e.objectTypes) > 0 || len(e.setOfList) > 0 { + err = e.getDerivedObjectsForTypes(processedObjects) if err != nil { - return nil, nil, nil, err + return err } - allRelations = lo.Union(allRelations, relations) - allTypes = lo.Union(allTypes, objectTypes) - allSetOfList = lo.Union(allSetOfList, setOfList) } - return allRelations, allTypes, allSetOfList, nil + return nil } -func (e *exportContext) collectDerivedObjects(objects map[string]*Doc) ([]string, []string, []string, error) { - var relations, objectsTypes, setOf []string +func (e *exportContext) collectDerivedObjects(objects map[string]*Doc) error { for id := range objects { err := cache.Do(e.picker, id, func(b sb.SmartBlock) error { state := b.NewState().Copy().Filter(e.getStateFilters(id)) - relations = lo.Union(relations, getObjectRelations(state)) + objectRelations := getObjectRelations(state) + fillObjectsMap(e.relations, objectRelations) details := state.CombinedDetails() if isObjectWithDataview(details) { dataviewRelations, err := getDataviewRelations(state) if err != nil { return err } - relations = lo.Union(relations, dataviewRelations) + fillObjectsMap(e.relations, dataviewRelations) } + var objectTypes []string if details.Has(bundle.RelationKeyType) { - objectTypeId := details.GetString(bundle.RelationKeyType) - objectsTypes = lo.Union(objectsTypes, []string{objectTypeId}) + objectTypes = append(objectTypes, details.GetString(bundle.RelationKeyType)) } + if details.Has(bundle.RelationKeyTargetObjectType) { + objectTypes = append(objectTypes, details.GetString(bundle.RelationKeyTargetObjectType)) + } + fillObjectsMap(e.objectTypes, objectTypes) setOfList := details.GetStringList(bundle.RelationKeySetOf) - setOf = lo.Union(setOf, setOfList) - targetObjectType := details.GetString(bundle.RelationKeyTargetObjectType) - if targetObjectType != "" { - objectsTypes = lo.Union(objectsTypes, []string{targetObjectType}) - } + fillObjectsMap(e.setOfList, setOfList) return nil }) if err != nil { - return nil, nil, nil, err + return err } } - return relations, objectsTypes, setOf, nil + return nil +} + +func fillObjectsMap(dst map[string]struct{}, objectsToAdd []string) { + for _, objectId := range objectsToAdd { + dst[objectId] = struct{}{} + } } func getObjectRelations(state *state.State) []string { @@ -619,33 +630,41 @@ func getDataviewRelations(state *state.State) ([]string, error) { return relations, err } -func (e *exportContext) getDerivedObjectsForTypes(allTypes []string, processedObjects map[string]struct{}) ([]string, []string, []string, error) { +func (e *exportContext) getDerivedObjectsForTypes(processedObjects map[string]struct{}) error { notProceedTypes := make(map[string]*Doc) - var relations, objectTypes []string - for _, object := range allTypes { - if _, ok := processedObjects[object]; ok { - continue - } - notProceedTypes[object] = nil - processedObjects[object] = struct{}{} + for object := range e.objectTypes { + e.fillNotProcessedTypes(processedObjects, object, notProceedTypes) + } + for object := range e.setOfList { + e.fillNotProcessedTypes(processedObjects, object, notProceedTypes) } if len(notProceedTypes) == 0 { - return relations, objectTypes, nil, nil + return nil } - relations, objectTypes, setOfList, err := e.getRelationsAndTypes(notProceedTypes, processedObjects) + err := e.getRelationsAndTypes(notProceedTypes, processedObjects) if err != nil { - return nil, nil, nil, err + return err } - return relations, objectTypes, setOfList, nil + return nil } -func (e *exportContext) getTemplatesRelationsAndTypes(allTypes []string, processedObjects map[string]struct{}) ([]string, []string, []string, error) { +func (e *exportContext) fillNotProcessedTypes(processedObjects map[string]struct{}, object string, notProceedTypes map[string]*Doc) { + if _, ok := processedObjects[object]; ok { + return + } + notProceedTypes[object] = nil + processedObjects[object] = struct{}{} + return +} + +func (e *exportContext) getTemplatesRelationsAndTypes(processedObjects map[string]struct{}) error { + allTypes := lo.MapToSlice(e.objectTypes, func(key string, value struct{}) string { return key }) templates, err := e.queryAndFilterObjectsByRelation(e.spaceId, allTypes, bundle.RelationKeyTargetObjectType) if err != nil { - return nil, nil, nil, err + return nil } if len(templates) == 0 { - return nil, nil, nil, nil + return nil } templatesToProcess := make(map[string]*Doc, len(templates)) for _, template := range templates { @@ -656,14 +675,18 @@ func (e *exportContext) getTemplatesRelationsAndTypes(allTypes []string, process templatesToProcess[id] = templateDoc } } - templateRelations, templateType, templateSetOfList, err := e.getRelationsAndTypes(templatesToProcess, processedObjects) + err = e.getRelationsAndTypes(templatesToProcess, processedObjects) if err != nil { - return nil, nil, nil, err + return err } - return templateRelations, templateType, templateSetOfList, nil + return nil } -func (e *exportContext) addRelationsAndTypes(types, relations, setOfList []string) error { +func (e *exportContext) addRelationsAndTypes() error { + types := lo.MapToSlice(e.objectTypes, func(key string, value struct{}) string { return key }) + setOfList := lo.MapToSlice(e.setOfList, func(key string, value struct{}) string { return key }) + relations := lo.MapToSlice(e.relations, func(key string, value struct{}) string { return key }) + err := e.addRelations(relations) if err != nil { return err From 4efafb8fd39233094c46cf59a678c402021dc289 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 29 Jan 2025 15:44:55 +0100 Subject: [PATCH 089/176] GO-4971 Add Delete restriction to sys types --- Makefile | 4 ++-- core/block/restriction/object.go | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 7a8f3019f..60f007b51 100644 --- a/Makefile +++ b/Makefile @@ -296,13 +296,13 @@ run-server: build-server @echo 'Running server...' @./dist/server -install-dev-js-addon: setup build-lib build-js-addon protos-js +install-dev-js-addon: build-lib build-js-addon protos-js @echo 'Installing JS-addon (dev-mode) in ${CLIENT_DESKTOP_PATH}...' @rm -rf $(CLIENT_DESKTOP_PATH)/build @cp -r clientlibrary/jsaddon/build $(CLIENT_DESKTOP_PATH)/ @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib -install-dev-js: setup-go build-server protos-js +install-dev-js: build-server protos-js @echo 'Installing JS-server (dev-mode) in $(CLIENT_DESKTOP_PATH)...' @rm -f $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index 4ebf679ea..305c31fc6 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -46,7 +46,7 @@ var ( model.Restrictions_Template, model.Restrictions_Publish, } - sysTypesRestrictions = ObjectRestrictions{ + sysTypesRestrictionsEdit = ObjectRestrictions{ model.Restrictions_Blocks, model.Restrictions_LayoutChange, model.Restrictions_TypeChange, @@ -55,6 +55,14 @@ var ( model.Restrictions_Delete, model.Restrictions_Publish, } + sysTypesRestrictions = ObjectRestrictions{ + model.Restrictions_LayoutChange, + model.Restrictions_TypeChange, + model.Restrictions_Template, + model.Restrictions_Details, + model.Restrictions_Delete, + model.Restrictions_Publish, + } sysRelationsRestrictions = ObjectRestrictions{ model.Restrictions_Blocks, model.Restrictions_LayoutChange, @@ -242,8 +250,12 @@ func getRestrictionsForUniqueKey(uk domain.UniqueKey) (r ObjectRestrictions) { switch uk.SmartblockType() { case smartblock.SmartBlockTypeObjectType: key := uk.InternalKey() - if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) && !lo.Contains(editableSystemTypes, domain.TypeKey(key)) { - r = sysTypesRestrictions + if lo.Contains(bundle.SystemTypes, domain.TypeKey(key)) { + if lo.Contains(editableSystemTypes, domain.TypeKey(key)) { + r = sysTypesRestrictions + } else { + r = sysTypesRestrictionsEdit + } } if t, _ := bundle.GetType(domain.TypeKey(key)); t != nil && t.RestrictObjectCreation { r = append(r, model.Restrictions_CreateObjectOfThisType) From 8a42fc4030ab0f0a54f91048a461b84d93e88167 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 30 Jan 2025 17:29:44 +0100 Subject: [PATCH 090/176] GO-4949 Fix bookmark layout --- .mockery.yaml | 3 + core/block/bookmark/bookmark_service.go | 11 +- core/block/bookmark/bookmark_service_test.go | 37 +- .../template/mock_template/mock_Service.go | 519 ++++++++++++++++++ 4 files changed, 554 insertions(+), 16 deletions(-) create mode 100644 core/block/template/mock_template/mock_Service.go diff --git a/.mockery.yaml b/.mockery.yaml index 9b22bc1c4..6f2234b5b 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -240,3 +240,6 @@ packages: github.com/anyproto/anytype-heart/pb/service: interfaces: ClientCommandsServer: + github.com/anyproto/anytype-heart/core/block/template: + interfaces: + Service: diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index 891edc43f..d00ef32c8 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -18,6 +18,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/import/markdown/anymark" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/files/fileuploader" @@ -66,6 +67,7 @@ type service struct { tempDirService core.TempDirProvider spaceService space.Service fileUploaderFactory fileuploader.Service + templateService template.Service } func New() Service { @@ -74,12 +76,13 @@ func New() Service { func (s *service) Init(a *app.App) (err error) { s.detailsSetter = app.MustComponent[DetailsSetter](a) - s.creator = a.MustComponent("objectCreator").(ObjectCreator) + s.creator = app.MustComponent[ObjectCreator](a) s.store = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) s.linkPreview = a.MustComponent(linkpreview.CName).(linkpreview.LinkPreview) s.spaceService = app.MustComponent[space.Service](a) s.tempDirService = app.MustComponent[core.TempDirProvider](a) s.fileUploaderFactory = app.MustComponent[fileuploader.Service](a) + s.templateService = app.MustComponent[template.Service](a) return nil } @@ -155,7 +158,11 @@ func (s *service) CreateBookmarkObject( objectId = rec.Details.GetString(bundle.RelationKeyId) objectDetails = rec.Details } else { - creationState := state.NewDoc("", nil).(*state.State) + details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_bookmark)) + creationState, err := s.templateService.CreateTemplateStateWithDetails("", details) + if err != nil { + log.Errorf("failed to build state for bookmark: %v", err) + } creationState.SetDetails(details) objectId, objectDetails, err = s.creator.CreateSmartBlockFromState( ctx, diff --git a/core/block/bookmark/bookmark_service_test.go b/core/block/bookmark/bookmark_service_test.go index 4ff969cdc..c7c8b1e0a 100644 --- a/core/block/bookmark/bookmark_service_test.go +++ b/core/block/bookmark/bookmark_service_test.go @@ -10,6 +10,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/object/objectcreator/mock_objectcreator" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/block/template/mock_template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -34,10 +35,11 @@ func (ds *detailsSetter) SetDetails(session.Context, string, []domain.Detail) er type fixture struct { s *service - creator *mock_objectcreator.MockService - space *mock_clientspace.MockSpace - spaceService *mock_space.MockService - store *objectstore.StoreFixture + creator *mock_objectcreator.MockService + space *mock_clientspace.MockSpace + spaceService *mock_space.MockService + store *objectstore.StoreFixture + templateService *mock_template.MockService } func newFixture(t *testing.T) *fixture { @@ -48,20 +50,23 @@ func newFixture(t *testing.T) *fixture { store := objectstore.NewStoreFixture(t) creator := mock_objectcreator.NewMockService(t) + templateService := mock_template.NewMockService(t) s := &service{ - detailsSetter: &detailsSetter{}, - creator: creator, - store: store, - spaceService: spaceSvc, + detailsSetter: &detailsSetter{}, + creator: creator, + store: store, + spaceService: spaceSvc, + templateService: templateService, } return &fixture{ - s: s, - creator: creator, - space: spc, - spaceService: spaceSvc, - store: store, + s: s, + creator: creator, + space: spc, + spaceService: spaceSvc, + store: store, + templateService: templateService, } } @@ -74,11 +79,15 @@ func TestService_CreateBookmarkObject(t *testing.T) { func(_ context.Context, spcId string, keys []domain.TypeKey, state *state.State) (string, *domain.Details, error) { assert.Equal(t, spaceId, spcId) assert.Equal(t, []domain.TypeKey{bundle.TypeKeyBookmark}, keys) - assert.Equal(t, details, state.Details()) return "some_id", nil, nil }, ).Once() + fx.templateService.EXPECT().CreateTemplateStateWithDetails(mock.Anything, mock.Anything).RunAndReturn(func(templateId string, details *domain.Details) (*state.State, error) { + assert.Empty(t, templateId) + assert.Equal(t, int64(model.ObjectType_bookmark), details.GetInt64(bundle.RelationKeyResolvedLayout)) + return state.NewDoc("", nil).NewState(), nil + }) // when _, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { return nil }) diff --git a/core/block/template/mock_template/mock_Service.go b/core/block/template/mock_template/mock_Service.go new file mode 100644 index 000000000..cf47fe5aa --- /dev/null +++ b/core/block/template/mock_template/mock_Service.go @@ -0,0 +1,519 @@ +// Code generated by mockery. DO NOT EDIT. + +package mock_template + +import ( + context "context" + + app "github.com/anyproto/any-sync/app" + clientspace "github.com/anyproto/anytype-heart/space/clientspace" + + domain "github.com/anyproto/anytype-heart/core/domain" + + mock "github.com/stretchr/testify/mock" + + smartblock "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + + state "github.com/anyproto/anytype-heart/core/block/editor/state" +) + +// MockService is an autogenerated mock type for the Service type +type MockService struct { + mock.Mock +} + +type MockService_Expecter struct { + mock *mock.Mock +} + +func (_m *MockService) EXPECT() *MockService_Expecter { + return &MockService_Expecter{mock: &_m.Mock} +} + +// CreateTemplateStateFromSmartBlock provides a mock function with given fields: sb, details +func (_m *MockService) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { + ret := _m.Called(sb, details) + + if len(ret) == 0 { + panic("no return value specified for CreateTemplateStateFromSmartBlock") + } + + var r0 *state.State + if rf, ok := ret.Get(0).(func(smartblock.SmartBlock, *domain.Details) *state.State); ok { + r0 = rf(sb, details) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*state.State) + } + } + + return r0 +} + +// MockService_CreateTemplateStateFromSmartBlock_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateFromSmartBlock' +type MockService_CreateTemplateStateFromSmartBlock_Call struct { + *mock.Call +} + +// CreateTemplateStateFromSmartBlock is a helper method to define mock.On call +// - sb smartblock.SmartBlock +// - details *domain.Details +func (_e *MockService_Expecter) CreateTemplateStateFromSmartBlock(sb interface{}, details interface{}) *MockService_CreateTemplateStateFromSmartBlock_Call { + return &MockService_CreateTemplateStateFromSmartBlock_Call{Call: _e.mock.On("CreateTemplateStateFromSmartBlock", sb, details)} +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Run(run func(sb smartblock.SmartBlock, details *domain.Details)) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(smartblock.SmartBlock), args[1].(*domain.Details)) + }) + return _c +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Return(_a0 *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) RunAndReturn(run func(smartblock.SmartBlock, *domain.Details) *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Return(run) + return _c +} + +// CreateTemplateStateWithDetails provides a mock function with given fields: templateId, details +func (_m *MockService) CreateTemplateStateWithDetails(templateId string, details *domain.Details) (*state.State, error) { + ret := _m.Called(templateId, details) + + if len(ret) == 0 { + panic("no return value specified for CreateTemplateStateWithDetails") + } + + var r0 *state.State + var r1 error + if rf, ok := ret.Get(0).(func(string, *domain.Details) (*state.State, error)); ok { + return rf(templateId, details) + } + if rf, ok := ret.Get(0).(func(string, *domain.Details) *state.State); ok { + r0 = rf(templateId, details) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*state.State) + } + } + + if rf, ok := ret.Get(1).(func(string, *domain.Details) error); ok { + r1 = rf(templateId, details) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_CreateTemplateStateWithDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateWithDetails' +type MockService_CreateTemplateStateWithDetails_Call struct { + *mock.Call +} + +// CreateTemplateStateWithDetails is a helper method to define mock.On call +// - templateId string +// - details *domain.Details +func (_e *MockService_Expecter) CreateTemplateStateWithDetails(templateId interface{}, details interface{}) *MockService_CreateTemplateStateWithDetails_Call { + return &MockService_CreateTemplateStateWithDetails_Call{Call: _e.mock.On("CreateTemplateStateWithDetails", templateId, details)} +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) Run(run func(templateId string, details *domain.Details)) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(*domain.Details)) + }) + return _c +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) Return(st *state.State, err error) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Return(st, err) + return _c +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) RunAndReturn(run func(string, *domain.Details) (*state.State, error)) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Return(run) + return _c +} + +// Init provides a mock function with given fields: a +func (_m *MockService) Init(a *app.App) error { + ret := _m.Called(a) + + if len(ret) == 0 { + panic("no return value specified for Init") + } + + var r0 error + if rf, ok := ret.Get(0).(func(*app.App) error); ok { + r0 = rf(a) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' +type MockService_Init_Call struct { + *mock.Call +} + +// Init is a helper method to define mock.On call +// - a *app.App +func (_e *MockService_Expecter) Init(a interface{}) *MockService_Init_Call { + return &MockService_Init_Call{Call: _e.mock.On("Init", a)} +} + +func (_c *MockService_Init_Call) Run(run func(a *app.App)) *MockService_Init_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*app.App)) + }) + return _c +} + +func (_c *MockService_Init_Call) Return(err error) *MockService_Init_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockService_Init_Call { + _c.Call.Return(run) + return _c +} + +// Name provides a mock function with given fields: +func (_m *MockService) Name() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Name") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockService_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' +type MockService_Name_Call struct { + *mock.Call +} + +// Name is a helper method to define mock.On call +func (_e *MockService_Expecter) Name() *MockService_Name_Call { + return &MockService_Name_Call{Call: _e.mock.On("Name")} +} + +func (_c *MockService_Name_Call) Run(run func()) *MockService_Name_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockService_Name_Call) Return(name string) *MockService_Name_Call { + _c.Call.Return(name) + return _c +} + +func (_c *MockService_Name_Call) RunAndReturn(run func() string) *MockService_Name_Call { + _c.Call.Return(run) + return _c +} + +// ObjectApplyTemplate provides a mock function with given fields: contextId, templateId +func (_m *MockService) ObjectApplyTemplate(contextId string, templateId string) error { + ret := _m.Called(contextId, templateId) + + if len(ret) == 0 { + panic("no return value specified for ObjectApplyTemplate") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, string) error); ok { + r0 = rf(contextId, templateId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_ObjectApplyTemplate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectApplyTemplate' +type MockService_ObjectApplyTemplate_Call struct { + *mock.Call +} + +// ObjectApplyTemplate is a helper method to define mock.On call +// - contextId string +// - templateId string +func (_e *MockService_Expecter) ObjectApplyTemplate(contextId interface{}, templateId interface{}) *MockService_ObjectApplyTemplate_Call { + return &MockService_ObjectApplyTemplate_Call{Call: _e.mock.On("ObjectApplyTemplate", contextId, templateId)} +} + +func (_c *MockService_ObjectApplyTemplate_Call) Run(run func(contextId string, templateId string)) *MockService_ObjectApplyTemplate_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockService_ObjectApplyTemplate_Call) Return(_a0 error) *MockService_ObjectApplyTemplate_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_ObjectApplyTemplate_Call) RunAndReturn(run func(string, string) error) *MockService_ObjectApplyTemplate_Call { + _c.Call.Return(run) + return _c +} + +// TemplateClone provides a mock function with given fields: spaceId, id +func (_m *MockService) TemplateClone(spaceId string, id string) (string, error) { + ret := _m.Called(spaceId, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateClone") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(string, string) (string, error)); ok { + return rf(spaceId, id) + } + if rf, ok := ret.Get(0).(func(string, string) string); ok { + r0 = rf(spaceId, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(string, string) error); ok { + r1 = rf(spaceId, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateClone_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateClone' +type MockService_TemplateClone_Call struct { + *mock.Call +} + +// TemplateClone is a helper method to define mock.On call +// - spaceId string +// - id string +func (_e *MockService_Expecter) TemplateClone(spaceId interface{}, id interface{}) *MockService_TemplateClone_Call { + return &MockService_TemplateClone_Call{Call: _e.mock.On("TemplateClone", spaceId, id)} +} + +func (_c *MockService_TemplateClone_Call) Run(run func(spaceId string, id string)) *MockService_TemplateClone_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateClone_Call) Return(templateId string, err error) *MockService_TemplateClone_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateClone_Call) RunAndReturn(run func(string, string) (string, error)) *MockService_TemplateClone_Call { + _c.Call.Return(run) + return _c +} + +// TemplateCloneInSpace provides a mock function with given fields: space, id +func (_m *MockService) TemplateCloneInSpace(space clientspace.Space, id string) (string, error) { + ret := _m.Called(space, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateCloneInSpace") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(clientspace.Space, string) (string, error)); ok { + return rf(space, id) + } + if rf, ok := ret.Get(0).(func(clientspace.Space, string) string); ok { + r0 = rf(space, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(clientspace.Space, string) error); ok { + r1 = rf(space, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateCloneInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCloneInSpace' +type MockService_TemplateCloneInSpace_Call struct { + *mock.Call +} + +// TemplateCloneInSpace is a helper method to define mock.On call +// - space clientspace.Space +// - id string +func (_e *MockService_Expecter) TemplateCloneInSpace(space interface{}, id interface{}) *MockService_TemplateCloneInSpace_Call { + return &MockService_TemplateCloneInSpace_Call{Call: _e.mock.On("TemplateCloneInSpace", space, id)} +} + +func (_c *MockService_TemplateCloneInSpace_Call) Run(run func(space clientspace.Space, id string)) *MockService_TemplateCloneInSpace_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(clientspace.Space), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateCloneInSpace_Call) Return(templateId string, err error) *MockService_TemplateCloneInSpace_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateCloneInSpace_Call) RunAndReturn(run func(clientspace.Space, string) (string, error)) *MockService_TemplateCloneInSpace_Call { + _c.Call.Return(run) + return _c +} + +// TemplateCreateFromObject provides a mock function with given fields: ctx, id +func (_m *MockService) TemplateCreateFromObject(ctx context.Context, id string) (string, error) { + ret := _m.Called(ctx, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateCreateFromObject") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + return rf(ctx, id) + } + if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { + r0 = rf(ctx, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateCreateFromObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCreateFromObject' +type MockService_TemplateCreateFromObject_Call struct { + *mock.Call +} + +// TemplateCreateFromObject is a helper method to define mock.On call +// - ctx context.Context +// - id string +func (_e *MockService_Expecter) TemplateCreateFromObject(ctx interface{}, id interface{}) *MockService_TemplateCreateFromObject_Call { + return &MockService_TemplateCreateFromObject_Call{Call: _e.mock.On("TemplateCreateFromObject", ctx, id)} +} + +func (_c *MockService_TemplateCreateFromObject_Call) Run(run func(ctx context.Context, id string)) *MockService_TemplateCreateFromObject_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateCreateFromObject_Call) Return(templateId string, err error) *MockService_TemplateCreateFromObject_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateCreateFromObject_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateCreateFromObject_Call { + _c.Call.Return(run) + return _c +} + +// TemplateExportAll provides a mock function with given fields: ctx, path +func (_m *MockService) TemplateExportAll(ctx context.Context, path string) (string, error) { + ret := _m.Called(ctx, path) + + if len(ret) == 0 { + panic("no return value specified for TemplateExportAll") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + return rf(ctx, path) + } + if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { + r0 = rf(ctx, path) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, path) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateExportAll_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateExportAll' +type MockService_TemplateExportAll_Call struct { + *mock.Call +} + +// TemplateExportAll is a helper method to define mock.On call +// - ctx context.Context +// - path string +func (_e *MockService_Expecter) TemplateExportAll(ctx interface{}, path interface{}) *MockService_TemplateExportAll_Call { + return &MockService_TemplateExportAll_Call{Call: _e.mock.On("TemplateExportAll", ctx, path)} +} + +func (_c *MockService_TemplateExportAll_Call) Run(run func(ctx context.Context, path string)) *MockService_TemplateExportAll_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateExportAll_Call) Return(_a0 string, _a1 error) *MockService_TemplateExportAll_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *MockService_TemplateExportAll_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateExportAll_Call { + _c.Call.Return(run) + return _c +} + +// NewMockService creates a new instance of MockService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockService(t interface { + mock.TestingT + Cleanup(func()) +}) *MockService { + mock := &MockService{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} From 4f8f557d486cb1ea8f2d9de30db93d50521da8ac Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 30 Jan 2025 18:09:00 +0100 Subject: [PATCH 091/176] GO-4949 Fix cyclic dependency --- .mockery.yaml | 3 - core/block/bookmark/bookmark_service.go | 23 +- core/block/bookmark/bookmark_service_test.go | 20 +- .../template/mock_template/mock_Service.go | 519 ------------------ 4 files changed, 26 insertions(+), 539 deletions(-) delete mode 100644 core/block/template/mock_template/mock_Service.go diff --git a/.mockery.yaml b/.mockery.yaml index 6f2234b5b..9b22bc1c4 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -240,6 +240,3 @@ packages: github.com/anyproto/anytype-heart/pb/service: interfaces: ClientCommandsServer: - github.com/anyproto/anytype-heart/core/block/template: - interfaces: - Service: diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index d00ef32c8..a6fc9369d 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -18,7 +18,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/import/markdown/anymark" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" - "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/files/fileuploader" @@ -51,13 +50,19 @@ type Service interface { app.Component } -type ObjectCreator interface { - CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *domain.Details, err error) -} +type ( + ObjectCreator interface { + CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *domain.Details, err error) + } -type DetailsSetter interface { - SetDetails(ctx session.Context, objectId string, details []domain.Detail) (err error) -} + DetailsSetter interface { + SetDetails(ctx session.Context, objectId string, details []domain.Detail) (err error) + } + + templateService interface { + CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) + } +) type service struct { detailsSetter DetailsSetter @@ -67,7 +72,7 @@ type service struct { tempDirService core.TempDirProvider spaceService space.Service fileUploaderFactory fileuploader.Service - templateService template.Service + templateService templateService } func New() Service { @@ -82,7 +87,7 @@ func (s *service) Init(a *app.App) (err error) { s.spaceService = app.MustComponent[space.Service](a) s.tempDirService = app.MustComponent[core.TempDirProvider](a) s.fileUploaderFactory = app.MustComponent[fileuploader.Service](a) - s.templateService = app.MustComponent[template.Service](a) + s.templateService = app.MustComponent[templateService](a) return nil } diff --git a/core/block/bookmark/bookmark_service_test.go b/core/block/bookmark/bookmark_service_test.go index c7c8b1e0a..d91aa537e 100644 --- a/core/block/bookmark/bookmark_service_test.go +++ b/core/block/bookmark/bookmark_service_test.go @@ -10,7 +10,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/object/objectcreator/mock_objectcreator" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" - "github.com/anyproto/anytype-heart/core/block/template/mock_template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -39,7 +38,7 @@ type fixture struct { space *mock_clientspace.MockSpace spaceService *mock_space.MockService store *objectstore.StoreFixture - templateService *mock_template.MockService + templateService *templateServiceMock } func newFixture(t *testing.T) *fixture { @@ -50,7 +49,7 @@ func newFixture(t *testing.T) *fixture { store := objectstore.NewStoreFixture(t) creator := mock_objectcreator.NewMockService(t) - templateService := mock_template.NewMockService(t) + templateService := &templateServiceMock{t: t} s := &service{ detailsSetter: &detailsSetter{}, @@ -83,11 +82,6 @@ func TestService_CreateBookmarkObject(t *testing.T) { return "some_id", nil, nil }, ).Once() - fx.templateService.EXPECT().CreateTemplateStateWithDetails(mock.Anything, mock.Anything).RunAndReturn(func(templateId string, details *domain.Details) (*state.State, error) { - assert.Empty(t, templateId) - assert.Equal(t, int64(model.ObjectType_bookmark), details.GetInt64(bundle.RelationKeyResolvedLayout)) - return state.NewDoc("", nil).NewState(), nil - }) // when _, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { return nil }) @@ -175,3 +169,13 @@ Test ` const testHtmlBase64 = "" + +type templateServiceMock struct { + t *testing.T +} + +func (m *templateServiceMock) CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) { + assert.Empty(m.t, templateId) + assert.Equal(m.t, int64(model.ObjectType_bookmark), details.GetInt64(bundle.RelationKeyResolvedLayout)) + return state.NewDoc("", nil).NewState(), nil +} diff --git a/core/block/template/mock_template/mock_Service.go b/core/block/template/mock_template/mock_Service.go deleted file mode 100644 index cf47fe5aa..000000000 --- a/core/block/template/mock_template/mock_Service.go +++ /dev/null @@ -1,519 +0,0 @@ -// Code generated by mockery. DO NOT EDIT. - -package mock_template - -import ( - context "context" - - app "github.com/anyproto/any-sync/app" - clientspace "github.com/anyproto/anytype-heart/space/clientspace" - - domain "github.com/anyproto/anytype-heart/core/domain" - - mock "github.com/stretchr/testify/mock" - - smartblock "github.com/anyproto/anytype-heart/core/block/editor/smartblock" - - state "github.com/anyproto/anytype-heart/core/block/editor/state" -) - -// MockService is an autogenerated mock type for the Service type -type MockService struct { - mock.Mock -} - -type MockService_Expecter struct { - mock *mock.Mock -} - -func (_m *MockService) EXPECT() *MockService_Expecter { - return &MockService_Expecter{mock: &_m.Mock} -} - -// CreateTemplateStateFromSmartBlock provides a mock function with given fields: sb, details -func (_m *MockService) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { - ret := _m.Called(sb, details) - - if len(ret) == 0 { - panic("no return value specified for CreateTemplateStateFromSmartBlock") - } - - var r0 *state.State - if rf, ok := ret.Get(0).(func(smartblock.SmartBlock, *domain.Details) *state.State); ok { - r0 = rf(sb, details) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*state.State) - } - } - - return r0 -} - -// MockService_CreateTemplateStateFromSmartBlock_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateFromSmartBlock' -type MockService_CreateTemplateStateFromSmartBlock_Call struct { - *mock.Call -} - -// CreateTemplateStateFromSmartBlock is a helper method to define mock.On call -// - sb smartblock.SmartBlock -// - details *domain.Details -func (_e *MockService_Expecter) CreateTemplateStateFromSmartBlock(sb interface{}, details interface{}) *MockService_CreateTemplateStateFromSmartBlock_Call { - return &MockService_CreateTemplateStateFromSmartBlock_Call{Call: _e.mock.On("CreateTemplateStateFromSmartBlock", sb, details)} -} - -func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Run(run func(sb smartblock.SmartBlock, details *domain.Details)) *MockService_CreateTemplateStateFromSmartBlock_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(smartblock.SmartBlock), args[1].(*domain.Details)) - }) - return _c -} - -func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Return(_a0 *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) RunAndReturn(run func(smartblock.SmartBlock, *domain.Details) *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { - _c.Call.Return(run) - return _c -} - -// CreateTemplateStateWithDetails provides a mock function with given fields: templateId, details -func (_m *MockService) CreateTemplateStateWithDetails(templateId string, details *domain.Details) (*state.State, error) { - ret := _m.Called(templateId, details) - - if len(ret) == 0 { - panic("no return value specified for CreateTemplateStateWithDetails") - } - - var r0 *state.State - var r1 error - if rf, ok := ret.Get(0).(func(string, *domain.Details) (*state.State, error)); ok { - return rf(templateId, details) - } - if rf, ok := ret.Get(0).(func(string, *domain.Details) *state.State); ok { - r0 = rf(templateId, details) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*state.State) - } - } - - if rf, ok := ret.Get(1).(func(string, *domain.Details) error); ok { - r1 = rf(templateId, details) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockService_CreateTemplateStateWithDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateWithDetails' -type MockService_CreateTemplateStateWithDetails_Call struct { - *mock.Call -} - -// CreateTemplateStateWithDetails is a helper method to define mock.On call -// - templateId string -// - details *domain.Details -func (_e *MockService_Expecter) CreateTemplateStateWithDetails(templateId interface{}, details interface{}) *MockService_CreateTemplateStateWithDetails_Call { - return &MockService_CreateTemplateStateWithDetails_Call{Call: _e.mock.On("CreateTemplateStateWithDetails", templateId, details)} -} - -func (_c *MockService_CreateTemplateStateWithDetails_Call) Run(run func(templateId string, details *domain.Details)) *MockService_CreateTemplateStateWithDetails_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(*domain.Details)) - }) - return _c -} - -func (_c *MockService_CreateTemplateStateWithDetails_Call) Return(st *state.State, err error) *MockService_CreateTemplateStateWithDetails_Call { - _c.Call.Return(st, err) - return _c -} - -func (_c *MockService_CreateTemplateStateWithDetails_Call) RunAndReturn(run func(string, *domain.Details) (*state.State, error)) *MockService_CreateTemplateStateWithDetails_Call { - _c.Call.Return(run) - return _c -} - -// Init provides a mock function with given fields: a -func (_m *MockService) Init(a *app.App) error { - ret := _m.Called(a) - - if len(ret) == 0 { - panic("no return value specified for Init") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*app.App) error); ok { - r0 = rf(a) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockService_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' -type MockService_Init_Call struct { - *mock.Call -} - -// Init is a helper method to define mock.On call -// - a *app.App -func (_e *MockService_Expecter) Init(a interface{}) *MockService_Init_Call { - return &MockService_Init_Call{Call: _e.mock.On("Init", a)} -} - -func (_c *MockService_Init_Call) Run(run func(a *app.App)) *MockService_Init_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*app.App)) - }) - return _c -} - -func (_c *MockService_Init_Call) Return(err error) *MockService_Init_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockService_Init_Call { - _c.Call.Return(run) - return _c -} - -// Name provides a mock function with given fields: -func (_m *MockService) Name() string { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Name") - } - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// MockService_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' -type MockService_Name_Call struct { - *mock.Call -} - -// Name is a helper method to define mock.On call -func (_e *MockService_Expecter) Name() *MockService_Name_Call { - return &MockService_Name_Call{Call: _e.mock.On("Name")} -} - -func (_c *MockService_Name_Call) Run(run func()) *MockService_Name_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockService_Name_Call) Return(name string) *MockService_Name_Call { - _c.Call.Return(name) - return _c -} - -func (_c *MockService_Name_Call) RunAndReturn(run func() string) *MockService_Name_Call { - _c.Call.Return(run) - return _c -} - -// ObjectApplyTemplate provides a mock function with given fields: contextId, templateId -func (_m *MockService) ObjectApplyTemplate(contextId string, templateId string) error { - ret := _m.Called(contextId, templateId) - - if len(ret) == 0 { - panic("no return value specified for ObjectApplyTemplate") - } - - var r0 error - if rf, ok := ret.Get(0).(func(string, string) error); ok { - r0 = rf(contextId, templateId) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockService_ObjectApplyTemplate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectApplyTemplate' -type MockService_ObjectApplyTemplate_Call struct { - *mock.Call -} - -// ObjectApplyTemplate is a helper method to define mock.On call -// - contextId string -// - templateId string -func (_e *MockService_Expecter) ObjectApplyTemplate(contextId interface{}, templateId interface{}) *MockService_ObjectApplyTemplate_Call { - return &MockService_ObjectApplyTemplate_Call{Call: _e.mock.On("ObjectApplyTemplate", contextId, templateId)} -} - -func (_c *MockService_ObjectApplyTemplate_Call) Run(run func(contextId string, templateId string)) *MockService_ObjectApplyTemplate_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(string)) - }) - return _c -} - -func (_c *MockService_ObjectApplyTemplate_Call) Return(_a0 error) *MockService_ObjectApplyTemplate_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockService_ObjectApplyTemplate_Call) RunAndReturn(run func(string, string) error) *MockService_ObjectApplyTemplate_Call { - _c.Call.Return(run) - return _c -} - -// TemplateClone provides a mock function with given fields: spaceId, id -func (_m *MockService) TemplateClone(spaceId string, id string) (string, error) { - ret := _m.Called(spaceId, id) - - if len(ret) == 0 { - panic("no return value specified for TemplateClone") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(string, string) (string, error)); ok { - return rf(spaceId, id) - } - if rf, ok := ret.Get(0).(func(string, string) string); ok { - r0 = rf(spaceId, id) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(string, string) error); ok { - r1 = rf(spaceId, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockService_TemplateClone_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateClone' -type MockService_TemplateClone_Call struct { - *mock.Call -} - -// TemplateClone is a helper method to define mock.On call -// - spaceId string -// - id string -func (_e *MockService_Expecter) TemplateClone(spaceId interface{}, id interface{}) *MockService_TemplateClone_Call { - return &MockService_TemplateClone_Call{Call: _e.mock.On("TemplateClone", spaceId, id)} -} - -func (_c *MockService_TemplateClone_Call) Run(run func(spaceId string, id string)) *MockService_TemplateClone_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(string)) - }) - return _c -} - -func (_c *MockService_TemplateClone_Call) Return(templateId string, err error) *MockService_TemplateClone_Call { - _c.Call.Return(templateId, err) - return _c -} - -func (_c *MockService_TemplateClone_Call) RunAndReturn(run func(string, string) (string, error)) *MockService_TemplateClone_Call { - _c.Call.Return(run) - return _c -} - -// TemplateCloneInSpace provides a mock function with given fields: space, id -func (_m *MockService) TemplateCloneInSpace(space clientspace.Space, id string) (string, error) { - ret := _m.Called(space, id) - - if len(ret) == 0 { - panic("no return value specified for TemplateCloneInSpace") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(clientspace.Space, string) (string, error)); ok { - return rf(space, id) - } - if rf, ok := ret.Get(0).(func(clientspace.Space, string) string); ok { - r0 = rf(space, id) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(clientspace.Space, string) error); ok { - r1 = rf(space, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockService_TemplateCloneInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCloneInSpace' -type MockService_TemplateCloneInSpace_Call struct { - *mock.Call -} - -// TemplateCloneInSpace is a helper method to define mock.On call -// - space clientspace.Space -// - id string -func (_e *MockService_Expecter) TemplateCloneInSpace(space interface{}, id interface{}) *MockService_TemplateCloneInSpace_Call { - return &MockService_TemplateCloneInSpace_Call{Call: _e.mock.On("TemplateCloneInSpace", space, id)} -} - -func (_c *MockService_TemplateCloneInSpace_Call) Run(run func(space clientspace.Space, id string)) *MockService_TemplateCloneInSpace_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(clientspace.Space), args[1].(string)) - }) - return _c -} - -func (_c *MockService_TemplateCloneInSpace_Call) Return(templateId string, err error) *MockService_TemplateCloneInSpace_Call { - _c.Call.Return(templateId, err) - return _c -} - -func (_c *MockService_TemplateCloneInSpace_Call) RunAndReturn(run func(clientspace.Space, string) (string, error)) *MockService_TemplateCloneInSpace_Call { - _c.Call.Return(run) - return _c -} - -// TemplateCreateFromObject provides a mock function with given fields: ctx, id -func (_m *MockService) TemplateCreateFromObject(ctx context.Context, id string) (string, error) { - ret := _m.Called(ctx, id) - - if len(ret) == 0 { - panic("no return value specified for TemplateCreateFromObject") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { - return rf(ctx, id) - } - if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { - r0 = rf(ctx, id) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockService_TemplateCreateFromObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCreateFromObject' -type MockService_TemplateCreateFromObject_Call struct { - *mock.Call -} - -// TemplateCreateFromObject is a helper method to define mock.On call -// - ctx context.Context -// - id string -func (_e *MockService_Expecter) TemplateCreateFromObject(ctx interface{}, id interface{}) *MockService_TemplateCreateFromObject_Call { - return &MockService_TemplateCreateFromObject_Call{Call: _e.mock.On("TemplateCreateFromObject", ctx, id)} -} - -func (_c *MockService_TemplateCreateFromObject_Call) Run(run func(ctx context.Context, id string)) *MockService_TemplateCreateFromObject_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *MockService_TemplateCreateFromObject_Call) Return(templateId string, err error) *MockService_TemplateCreateFromObject_Call { - _c.Call.Return(templateId, err) - return _c -} - -func (_c *MockService_TemplateCreateFromObject_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateCreateFromObject_Call { - _c.Call.Return(run) - return _c -} - -// TemplateExportAll provides a mock function with given fields: ctx, path -func (_m *MockService) TemplateExportAll(ctx context.Context, path string) (string, error) { - ret := _m.Called(ctx, path) - - if len(ret) == 0 { - panic("no return value specified for TemplateExportAll") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { - return rf(ctx, path) - } - if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { - r0 = rf(ctx, path) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, path) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockService_TemplateExportAll_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateExportAll' -type MockService_TemplateExportAll_Call struct { - *mock.Call -} - -// TemplateExportAll is a helper method to define mock.On call -// - ctx context.Context -// - path string -func (_e *MockService_Expecter) TemplateExportAll(ctx interface{}, path interface{}) *MockService_TemplateExportAll_Call { - return &MockService_TemplateExportAll_Call{Call: _e.mock.On("TemplateExportAll", ctx, path)} -} - -func (_c *MockService_TemplateExportAll_Call) Run(run func(ctx context.Context, path string)) *MockService_TemplateExportAll_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *MockService_TemplateExportAll_Call) Return(_a0 string, _a1 error) *MockService_TemplateExportAll_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockService_TemplateExportAll_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateExportAll_Call { - _c.Call.Return(run) - return _c -} - -// NewMockService creates a new instance of MockService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockService(t interface { - mock.TestingT - Cleanup(func()) -}) *MockService { - mock := &MockService{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} From 16d9d7b73eed70af9687602424c1e4c3d3512981 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 31 Jan 2025 11:54:25 +0100 Subject: [PATCH 092/176] Fix Makefile --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 14dd208f1..cffe39487 100644 --- a/Makefile +++ b/Makefile @@ -295,13 +295,13 @@ run-server: build-server @echo 'Running server...' @./dist/server -install-dev-js-addon: build-lib build-js-addon protos-js +install-dev-js-addon: setup build-lib build-js-addon protos-js @echo 'Installing JS-addon (dev-mode) in ${CLIENT_DESKTOP_PATH}...' @rm -rf $(CLIENT_DESKTOP_PATH)/build @cp -r clientlibrary/jsaddon/build $(CLIENT_DESKTOP_PATH)/ @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib -install-dev-js: build-server protos-js +install-dev-js: setup-go build-server protos-js @echo 'Installing JS-server (dev-mode) in $(CLIENT_DESKTOP_PATH)...' @rm -f $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper From 6065cafeb32b68e6305e966372340637ca3fd3bb Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 31 Jan 2025 16:28:22 +0100 Subject: [PATCH 093/176] GO-4985 Fix bookmark-picture-upload --- core/block/restriction/object.go | 8 ++++---- core/files/file.go | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/block/restriction/object.go b/core/block/restriction/object.go index 305c31fc6..c53b648a4 100644 --- a/core/block/restriction/object.go +++ b/core/block/restriction/object.go @@ -59,7 +59,6 @@ var ( model.Restrictions_LayoutChange, model.Restrictions_TypeChange, model.Restrictions_Template, - model.Restrictions_Details, model.Restrictions_Delete, model.Restrictions_Publish, } @@ -173,9 +172,10 @@ var ( ) var editableSystemTypes = []domain.TypeKey{ - bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote, - bundle.TypeKeySet, bundle.TypeKeyCollection, bundle.TypeKeyFile, - bundle.TypeKeyAudio, bundle.TypeKeyVideo, bundle.TypeKeyImage, + bundle.TypeKeyPage, bundle.TypeKeyTask, bundle.TypeKeyNote, // pages + bundle.TypeKeySet, bundle.TypeKeyCollection, // lists + bundle.TypeKeyFile, bundle.TypeKeyAudio, bundle.TypeKeyVideo, bundle.TypeKeyImage, // files + bundle.TypeKeyBookmark, } func GetRestrictionsBySBType(sbType smartblock.SmartBlockType) []int { diff --git a/core/files/file.go b/core/files/file.go index 3d987ca4a..1e1e85ca4 100644 --- a/core/files/file.go +++ b/core/files/file.go @@ -145,6 +145,7 @@ func calculateCommonDetails( det.SetString(bundle.RelationKeyFileId, fileId.String()) det.SetBool(bundle.RelationKeyIsReadonly, false) det.SetInt64(bundle.RelationKeyResolvedLayout, int64(layout)) + det.SetInt64(bundle.RelationKeyLayout, int64(layout)) det.SetFloat64(bundle.RelationKeyLastModifiedDate, float64(lastModifiedDate)) return det } From e79e61d8d0a48286a219a1a8cdbad84abb0e3611 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 3 Feb 2025 17:16:53 +0300 Subject: [PATCH 094/176] GO-4823 Fixes on hidden recommended relations --- cmd/usecasevalidator/customusage.go | 11 +++++-- cmd/usecasevalidator/validators.go | 5 --- core/block/export/export.go | 8 ++++- core/relationutils/recommended.go | 33 ++++++++++++++----- core/relationutils/recommended_test.go | 19 ++++++----- .../systemobjectreviser.go | 1 + 6 files changed, 51 insertions(+), 26 deletions(-) diff --git a/cmd/usecasevalidator/customusage.go b/cmd/usecasevalidator/customusage.go index 57961ed8d..f22e08ab5 100644 --- a/cmd/usecasevalidator/customusage.go +++ b/cmd/usecasevalidator/customusage.go @@ -4,8 +4,10 @@ package main import ( "fmt" + "slices" "strings" + "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" @@ -45,9 +47,12 @@ func collectInfoFromDetails(s *pb.SnapshotWithType, info *useCaseInfo) { cr.isUsed = true info.customTypesAndRelations[k] = cr } - values := pbtypes.GetStringListValue(v) - for _, val := range values { - if k == bundle.RelationKeyRecommendedRelations.String() { + if slices.Contains([]domain.RelationKey{ + bundle.RelationKeyRecommendedRelations, bundle.RelationKeyRecommendedFeaturedRelations, + bundle.RelationKeyRecommendedHiddenRelations, bundle.RelationKeyRecommendedFileRelations, + }, domain.RelationKey(k)) { + values := pbtypes.GetStringListValue(v) + for _, val := range values { if key, found := info.relations[val]; found { if cr, foundToo := info.customTypesAndRelations[string(key)]; foundToo { cr.isUsed = true diff --git a/cmd/usecasevalidator/validators.go b/cmd/usecasevalidator/validators.go index 9e37a7b7f..b05b26c0b 100644 --- a/cmd/usecasevalidator/validators.go +++ b/cmd/usecasevalidator/validators.go @@ -141,11 +141,6 @@ func validateDetails(s *pb.SnapshotWithType, info *useCaseInfo) (err error) { fmt.Println("WARNING: object", id, "is a template with no target type included in the archive, so it will be skipped") return errSkipObject } - if k == bundle.RelationKeyRecommendedRelations.String() { - // TODO: remove this fix as most of users should obtain version with fixed export of derived objects in GO-2821 - delete(s.Snapshot.Data.Details.Fields, bundle.RelationKeyRecommendedRelations.String()) - return nil - } err = multierror.Append(err, fmt.Errorf("failed to find target id for detail '%s: %s' of object %s", k, val, id)) } } diff --git a/core/block/export/export.go b/core/block/export/export.go index f8bc5e391..118c8fc06 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -7,6 +7,7 @@ import ( "math/rand" "os" "path/filepath" + "slices" "strconv" "strings" "sync" @@ -795,7 +796,12 @@ func (e *exportContext) addObjectsAndCollectRecommendedRelations(objectTypes []d if bundle.IsInternalType(key) { continue } - recommendedRelations = append(recommendedRelations, objectTypes[i].Details.GetStringList(bundle.RelationKeyRecommendedRelations)...) + recommendedRelations = lo.Uniq(slices.Concat(recommendedRelations, + objectTypes[i].Details.GetStringList(bundle.RelationKeyRecommendedRelations), + objectTypes[i].Details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations), + objectTypes[i].Details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations), + objectTypes[i].Details.GetStringList(bundle.RelationKeyRecommendedFileRelations), + )) } } return recommendedRelations, nil diff --git a/core/relationutils/recommended.go b/core/relationutils/recommended.go index f6c0982e0..fbae37581 100644 --- a/core/relationutils/recommended.go +++ b/core/relationutils/recommended.go @@ -19,7 +19,7 @@ type ObjectIDDeriver interface { } var ( - defaultRecommendedFeaturedRelationKeys = []domain.RelationKey{ + defaultFeaturedRelationKeys = []domain.RelationKey{ bundle.RelationKeyType, bundle.RelationKeyTag, bundle.RelationKeyBacklinks, @@ -28,10 +28,18 @@ var ( defaultRecommendedRelationKeys = []domain.RelationKey{ bundle.RelationKeyCreatedDate, bundle.RelationKeyCreator, + bundle.RelationKeyLinks, + } + + defaultHiddenRelationKeys = []domain.RelationKey{ bundle.RelationKeyLastModifiedDate, bundle.RelationKeyLastModifiedBy, bundle.RelationKeyLastOpenedDate, - bundle.RelationKeyLinks, + bundle.RelationKeyAddedDate, + bundle.RelationKeySource, + bundle.RelationKeySourceObject, + bundle.RelationKeyImportType, + bundle.RelationKeyOrigin, } fileSpecificRelationKeysMap = map[domain.RelationKey]struct{}{ @@ -56,7 +64,8 @@ var ( errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) -// FillRecommendedRelations fills recommendedRelations and recommendedFeaturedRelations based on object's details +// FillRecommendedRelations fills recommendedRelations, recommendedFeaturedRelations, recommendedFileRelations +// and recommendedHiddenRelations based on object's details. // If these relations are already filled with correct ids, isAlreadyFilled = true is returned func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, details *domain.Details) (keys []domain.RelationKey, isAlreadyFilled bool, err error) { keys, err = getRelationKeysFromDetails(details) @@ -67,9 +76,10 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta return nil, false, fmt.Errorf("get recommended relation keys: %w", err) } + var fileRecommendedRelationKeys []domain.RelationKey if isFileType(details) { // for file types we need to fill separate relation list with file-specific recommended relations - var fileRecommendedRelationKeys, other []domain.RelationKey + var other []domain.RelationKey for _, key := range keys { if _, found := fileSpecificRelationKeysMap[key]; found { fileRecommendedRelationKeys = append(fileRecommendedRelationKeys, key) @@ -85,10 +95,11 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta keys = other } - // we should include default system recommended relations and exclude default recommended featured relations + // we should include default system recommended relations and + // exclude default recommended featured relations and default hidden relations keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { - return slices.Contains(defaultRecommendedFeaturedRelationKeys, key) + return slices.Contains(append(defaultHiddenRelationKeys, defaultFeaturedRelationKeys...), key) }) relationIds, err := prepareRelationIds(ctx, deriver, keys) @@ -97,13 +108,19 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta } details.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) - featuredRelationIds, err := prepareRelationIds(ctx, deriver, defaultRecommendedFeaturedRelationKeys) + featuredRelationIds, err := prepareRelationIds(ctx, deriver, defaultFeaturedRelationKeys) if err != nil { return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) } details.SetStringList(bundle.RelationKeyRecommendedFeaturedRelations, featuredRelationIds) - return append(keys, defaultRecommendedFeaturedRelationKeys...), false, nil + hiddenRelationIds, err := prepareRelationIds(ctx, deriver, defaultHiddenRelationKeys) + if err != nil { + return nil, false, fmt.Errorf("prepare recommended hidden relation ids: %w", err) + } + details.SetStringList(bundle.RelationKeyRecommendedHiddenRelations, hiddenRelationIds) + + return slices.Concat(keys, fileRecommendedRelationKeys, defaultHiddenRelationKeys, defaultFeaturedRelationKeys), false, nil } func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { diff --git a/core/relationutils/recommended_test.go b/core/relationutils/recommended_test.go index ef1a2c9e4..5f67d38cc 100644 --- a/core/relationutils/recommended_test.go +++ b/core/relationutils/recommended_test.go @@ -20,8 +20,9 @@ func (d *mockDeriver) DeriveObjectID(ctx context.Context, key domain.UniqueKey) } func TestFillRecommendedRelations(t *testing.T) { - defaultRecFeatRelIds := buildRelationIds(defaultRecommendedFeaturedRelationKeys) + defaultRecFeatRelIds := buildRelationIds(defaultFeaturedRelationKeys) defaultRecRelIds := buildRelationIds(defaultRecommendedRelationKeys) + defaultRecHiddenRelIds := buildRelationIds(defaultHiddenRelationKeys) for _, tc := range []struct { name string @@ -54,7 +55,7 @@ func TestFillRecommendedRelations(t *testing.T) { { "intersect both with featured and system", []string{bundle.RelationKeyBacklinks.BundledURL(), bundle.RelationKeyAddedDate.BundledURL(), bundle.RelationKeyCreatedDate.BundledURL()}, - lo.Uniq(append([]string{bundle.RelationKeyAddedDate.URL(), bundle.RelationKeyCreatedDate.URL()}, defaultRecRelIds...)), + lo.Uniq(append([]string{bundle.RelationKeyCreatedDate.URL()}, defaultRecRelIds...)), }, { "exclude description", @@ -76,7 +77,8 @@ func TestFillRecommendedRelations(t *testing.T) { assert.False(t, isAlreadyFilled) assert.Equal(t, tc.expected, details.GetStringList(bundle.RelationKeyRecommendedRelations)) assert.Equal(t, defaultRecFeatRelIds, details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) - assert.Len(t, keys, len(tc.expected)+3) + assert.Equal(t, defaultRecHiddenRelIds, details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations)) + assert.Len(t, keys, len(tc.expected)+3+8) // 3 featured and 8 hidden }) } @@ -135,7 +137,8 @@ func TestFillRecommendedRelations(t *testing.T) { assert.False(t, isAlreadyFilled) assert.Equal(t, tc.expected, details.GetStringList(bundle.RelationKeyRecommendedRelations)) assert.Equal(t, defaultRecFeatRelIds, details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) - assert.Len(t, keys, len(tc.expected)+3) + assert.Equal(t, defaultRecHiddenRelIds, details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations)) + assert.Len(t, keys, len(tc.expected)+3+8) // 3 featured and 8 hidden }) } @@ -158,17 +161,15 @@ func TestFillRecommendedRelations(t *testing.T) { // then assert.NoError(t, err) assert.False(t, isAlreadyFilled) - assert.Equal(t, append([]string{ - bundle.RelationKeyOrigin.URL(), - bundle.RelationKeyAddedDate.URL(), - }, buildRelationIds(defaultRecommendedRelationKeys)...), details.GetStringList(bundle.RelationKeyRecommendedRelations)) + assert.Equal(t, buildRelationIds(defaultRecommendedRelationKeys), details.GetStringList(bundle.RelationKeyRecommendedRelations)) assert.Equal(t, defaultRecFeatRelIds, details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) + assert.Equal(t, defaultRecHiddenRelIds, details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations)) assert.Equal(t, []string{ bundle.RelationKeyFileExt.URL(), bundle.RelationKeyCameraIso.URL(), bundle.RelationKeyAperture.URL(), }, details.GetStringList(bundle.RelationKeyRecommendedFileRelations)) - assert.Len(t, keys, 11) + assert.Len(t, keys, 17) }) } diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index f09b664f6..75bff484a 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -193,6 +193,7 @@ func checkRecommendedRelations( bundle.RelationKeyRecommendedRelations, bundle.RelationKeyRecommendedFeaturedRelations, bundle.RelationKeyRecommendedFileRelations, + bundle.RelationKeyRecommendedHiddenRelations, } { localIds := current.GetStringList(key) newIds := details.GetStringList(key) From 4fa0e2de10dd0affadcbb68c9f47aa657842d73e Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 5 Feb 2025 15:45:04 +0300 Subject: [PATCH 095/176] GO-4993 Insert groupRelationKey --- core/block/editor/converter/layout.go | 35 ++++++++- core/block/editor/converter/layout_test.go | 87 ++++++++++++++++++++++ 2 files changed, 120 insertions(+), 2 deletions(-) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index 351a95b6b..f58cce1da 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -1,6 +1,7 @@ package converter import ( + "errors" "fmt" "github.com/anyproto/any-sync/app" @@ -408,12 +409,42 @@ func (c *layoutConverter) insertTypeLevelFieldsToDataview(block *model.BlockCont return fmt.Errorf("failed to get type object: expected 1 record") } - viewType := records[0].Details.GetInt64(bundle.RelationKeyDefaultViewType) + rawViewType := records[0].Details.GetInt64(bundle.RelationKeyDefaultViewType) defaultTypeId := records[0].Details.GetString(bundle.RelationKeyDefaultTypeId) // nolint:gosec - block.Dataview.Views[0].Type = model.BlockContentDataviewViewType(viewType) + viewType := model.BlockContentDataviewViewType(rawViewType) + block.Dataview.Views[0].Type = viewType block.Dataview.Views[0].DefaultObjectTypeId = defaultTypeId + insertGroupRelationKey(block, viewType) return nil } + +func insertGroupRelationKey(block *model.BlockContentOfDataview, viewType model.BlockContentDataviewViewType) { + var formats map[model.RelationFormat]struct{} + switch viewType { + case model.BlockContentDataviewView_Kanban: + formats = map[model.RelationFormat]struct{}{ + model.RelationFormat_status: {}, + model.RelationFormat_tag: {}, + model.RelationFormat_checkbox: {}, + } + case model.BlockContentDataviewView_Calendar: + formats = map[model.RelationFormat]struct{}{model.RelationFormat_date: {}} + default: + return + } + + for _, relLink := range block.Dataview.RelationLinks { + _, found := formats[relLink.Format] + if !found { + continue + } + relation, err := bundle.GetRelation(domain.RelationKey(relLink.Key)) + if errors.Is(err, bundle.ErrNotFound) || (relation != nil && !relation.Hidden) { + block.Dataview.Views[0].GroupRelationKey = relLink.Key + return + } + } +} diff --git a/core/block/editor/converter/layout_test.go b/core/block/editor/converter/layout_test.go index 170450642..e18d8ae8d 100644 --- a/core/block/editor/converter/layout_test.go +++ b/core/block/editor/converter/layout_test.go @@ -131,3 +131,90 @@ func TestLayoutConverter_Convert(t *testing.T) { } }) } + +func TestInsertGroupRelationKey(t *testing.T) { + relationLinksOfAllFormats := []*model.RelationLink{ + {Key: bundle.RelationKeyName.String(), Format: model.RelationFormat_longtext}, + {Key: bundle.RelationKeySnippet.String(), Format: model.RelationFormat_shorttext}, + {Key: bundle.RelationKeyRestrictions.String(), Format: model.RelationFormat_number}, + {Key: bundle.RelationKeyStatus.String(), Format: model.RelationFormat_status}, + {Key: bundle.RelationKeyTag.String(), Format: model.RelationFormat_tag}, + {Key: bundle.RelationKeyCreatedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyPicture.String(), Format: model.RelationFormat_file}, + {Key: bundle.RelationKeyIsHidden.String(), Format: model.RelationFormat_checkbox}, + {Key: bundle.RelationKeyUrl.String(), Format: model.RelationFormat_url}, + {Key: bundle.RelationKeyEmail.String(), Format: model.RelationFormat_email}, + {Key: bundle.RelationKeyPhone.String(), Format: model.RelationFormat_phone}, + {Key: bundle.RelationKeyIconEmoji.String(), Format: model.RelationFormat_emoji}, + {Key: bundle.RelationKeyLinks.String(), Format: model.RelationFormat_object}, + {Key: "?relations?", Format: model.RelationFormat_relations}, + } + for _, tc := range []struct { + name string + viewType model.BlockContentDataviewViewType + relLinks []*model.RelationLink + expectedKey domain.RelationKey + }{ + { + "kanban receives first status relation", model.BlockContentDataviewView_Kanban, + []*model.RelationLink{ + {Key: bundle.RelationKeyName.String(), Format: model.RelationFormat_longtext}, + {Key: bundle.RelationKeyCreatedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyRestrictions.String(), Format: model.RelationFormat_number}, + {Key: bundle.RelationKeyLinks.String(), Format: model.RelationFormat_object}, + {Key: bundle.RelationKeyStatus.String(), Format: model.RelationFormat_status}, + {Key: bundle.RelationKeyTag.String(), Format: model.RelationFormat_tag}, + }, + bundle.RelationKeyStatus, + }, + { + "kanban receives first checkbox relation", model.BlockContentDataviewView_Kanban, + []*model.RelationLink{ + {Key: bundle.RelationKeyName.String(), Format: model.RelationFormat_longtext}, + {Key: "ä¸å¯è­¯çš„", Format: model.RelationFormat_checkbox}, + {Key: bundle.RelationKeyStatus.String(), Format: model.RelationFormat_status}, + }, + domain.RelationKey("ä¸å¯è­¯çš„"), + }, + { + "no suitable relation for kanban", model.BlockContentDataviewView_Kanban, + []*model.RelationLink{ + {Key: bundle.RelationKeyName.String(), Format: model.RelationFormat_longtext}, + {Key: bundle.RelationKeyCreatedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyRestrictions.String(), Format: model.RelationFormat_number}, + }, + domain.RelationKey(""), + }, + { + "calendar receives first unhidden date relation", model.BlockContentDataviewView_Calendar, + []*model.RelationLink{ + {Key: bundle.RelationKeyName.String(), Format: model.RelationFormat_longtext}, + {Key: bundle.RelationKeyLastUsedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyCreatedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyLastModifiedDate.String(), Format: model.RelationFormat_date}, + {Key: bundle.RelationKeyRestrictions.String(), Format: model.RelationFormat_number}, + }, + bundle.RelationKeyCreatedDate, + }, + {"table view", model.BlockContentDataviewView_Table, relationLinksOfAllFormats, domain.RelationKey("")}, + {"list view", model.BlockContentDataviewView_List, relationLinksOfAllFormats, domain.RelationKey("")}, + {"gallery view", model.BlockContentDataviewView_Gallery, relationLinksOfAllFormats, domain.RelationKey("")}, + {"graph view", model.BlockContentDataviewView_Graph, relationLinksOfAllFormats, domain.RelationKey("")}, + } { + t.Run(tc.name, func(t *testing.T) { + // given + block := &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{{ + Type: tc.viewType, + }}, + RelationLinks: tc.relLinks, + }} + + // when + insertGroupRelationKey(block, tc.viewType) + + // then + assert.Equal(t, tc.expectedKey, domain.RelationKey(block.Dataview.Views[0].GroupRelationKey)) + }) + } +} From a025d17162bac33ac41c59caa86d4f486ae37da7 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 13:48:41 -0300 Subject: [PATCH 096/176] refactoring ciRefactoring --- Makefile | 403 +------------------------------------------ makefiles/android.mk | 32 ++++ makefiles/build.mk | 39 +++++ makefiles/install.mk | 21 +++ makefiles/ios.mk | 35 ++++ makefiles/linter.mk | 17 ++ makefiles/protos.mk | 73 ++++++++ makefiles/setup.mk | 44 +++++ makefiles/tantivy.mk | 66 +++++++ makefiles/test.mk | 28 +++ makefiles/tools.mk | 11 ++ makefiles/vars.mk | 23 +++ 12 files changed, 393 insertions(+), 399 deletions(-) create mode 100644 makefiles/android.mk create mode 100644 makefiles/build.mk create mode 100644 makefiles/install.mk create mode 100644 makefiles/ios.mk create mode 100644 makefiles/linter.mk create mode 100644 makefiles/protos.mk create mode 100644 makefiles/setup.mk create mode 100644 makefiles/tantivy.mk create mode 100644 makefiles/test.mk create mode 100644 makefiles/tools.mk create mode 100644 makefiles/vars.mk diff --git a/Makefile b/Makefile index cffe39487..9e874b51a 100644 --- a/Makefile +++ b/Makefile @@ -1,406 +1,11 @@ -CUSTOM_NETWORK_FILE ?= ./core/anytype/config/nodes/custom.yml -CLIENT_DESKTOP_PATH ?= ../anytype-ts -CLIENT_ANDROID_PATH ?= ../anytype-kotlin -CLIENT_IOS_PATH ?= ../anytype-swift -TANTIVY_GO_PATH ?= ../tantivy-go -BUILD_FLAGS ?= -TANTIVY_VERSION := $(shell cat go.mod | grep github.com/anyproto/tantivy-go | cut -d' ' -f2) - -export GOLANGCI_LINT_VERSION=1.58.1 -export CGO_CFLAGS=-Wno-deprecated-non-prototype -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-xor-used-as-pow -Wno-single-bit-bitfield-constant-conversion - -ifndef $(GOPATH) -GOPATH=$(shell go env GOPATH) -export GOPATH -endif - -ifndef $(GOROOT) -GOROOT=$(shell go env GOROOT) -export GOROOT -endif - -DEPS_PATH := $(shell pwd)/deps -export PATH := $(DEPS_PATH):$(PATH) +# include makefiles +include $(wildcard makefiles/*.mk) +# git config $(shell git config core.hooksPath .githooks) -all: - @set -e; -.PHONY : - -setup: setup-go - @echo 'Setting up npm...' - @npm install - -setup-network-config: -ifdef ANYENV - @echo "ANYENV is now deprecated. Use ANY_SYNC_NETWORK instead." - @exit 1; -endif - @if [ -z "$$ANY_SYNC_NETWORK" ]; then \ - echo "Using the default production Any Sync Network"; \ -elif [ ! -e "$$ANY_SYNC_NETWORK" ]; then \ - echo "Network configuration file not found at $$ANY_SYNC_NETWORK"; \ - exit 1; \ -else \ - echo "Using Any Sync Network configuration at $$ANY_SYNC_NETWORK"; \ - cp $$ANY_SYNC_NETWORK $(CUSTOM_NETWORK_FILE); \ -fi - -setup-go: setup-network-config check-tantivy-version - @echo 'Setting up go modules...' - @go mod download - @go install github.com/ahmetb/govvv@v0.2.0 - -fmt: - @echo 'Formatting with prettier...' - @npx prettier --write "./**" 2> /dev/null || true - @echo 'Formatting with goimports...' - @goimports -w -l `find . -type f -name '*.go' -not -path './vendor/*'` - -lint: - @echo 'Linting with prettier...' - @npx prettier --check "./**" 2> /dev/null || true - @echo 'Linting with golint...' - @golint `go list ./... | grep -v /vendor/` - -test: - @echo 'Running tests...' - @ANYTYPE_LOG_NOGELF=1 go test -cover github.com/anyproto/anytype-heart/... - -test-no-cache: - @echo 'Running tests...' - @ANYTYPE_LOG_NOGELF=1 go test -count=1 github.com/anyproto/anytype-heart/... - -test-integration: - @echo 'Running integration tests...' - @go test -run=TestBasic -tags=integration -v -count 1 ./tests - -test-race: - @echo 'Running tests with race-detector...' - @ANYTYPE_LOG_NOGELF=1 go test -count=1 -race github.com/anyproto/anytype-heart/... - -test-deps: - @echo 'Generating test mocks...' - @go build -o deps go.uber.org/mock/mockgen - @go build -o deps github.com/vektra/mockery/v2 - @go generate ./... - @$(DEPS_PATH)/mockery --disable-version-string - @go run ./cmd/testcase generate-json-helpers - -clear-test-deps: - @echo 'Removing test mocks...' - @find . -name "*_mock.go" | xargs -r rm -v - -build-lib: - @echo 'Building library...' - @$(eval FLAGS += $$(shell govvv -flags -pkg github.com/anyproto/anytype-heart/util/vcs)) - @GO111MODULE=on go build -v -o dist/lib.a -tags nogrpcserver -ldflags "$(FLAGS)" -buildmode=c-archive -v ./clientlibrary/clib - -build-js-addon: - @echo 'Building JS-addon...' - @cp dist/lib.a clientlibrary/jsaddon/lib.a - @cp dist/lib.h clientlibrary/jsaddon/lib.h - @cp clientlibrary/clib/bridge.h clientlibrary/jsaddon/bridge.h - # Electron's version. - @export npm_config_target=12.0.4 - @export npm_config_arch=x64 - @export npm_config_target_arch=x64 - # The architecture of Electron, see https://electronjs.org/docs/tutorial/support#supported-platforms - # for supported architectures. - # Download headers for Electron. - @export npm_config_disturl=https://electronjs.org/headers - # Tell node-pre-gyp that we are building for Electron. - @export npm_config_runtime=electron - # Tell node-pre-gyp to build module from source code. - @export npm_config_build_from_source=true - @npm install -C ./clientlibrary/jsaddon - @rm clientlibrary/jsaddon/lib.a clientlibrary/jsaddon/lib.h clientlibrary/jsaddon/bridge.h - - -build-ios: setup-go setup-gomobile - # PATH is not working here, so we need to use absolute path - $(DEPS_PATH)/gomobile init - @echo 'Clear xcframework' - @rm -rf ./dist/ios/Lib.xcframework - @echo 'Building library for iOS...' - @$(eval FLAGS += $$(shell govvv -flags | sed 's/main/github.com\/anyproto\/anytype-heart\/util\/vcs/g')) - @$(eval TAGS := nogrpcserver gomobile nowatchdog nosigar timetzdata rasterizesvg) -ifdef ANY_SYNC_NETWORK - @$(eval TAGS := $(TAGS) envnetworkcustom) -endif - gomobile bind -tags "$(TAGS)" -ldflags "$(FLAGS)" $(BUILD_FLAGS) -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core - @mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ - @mkdir -p dist/ios/json/ - @cp pkg/lib/bundle/system*.json dist/ios/json/ - @cp pkg/lib/bundle/relations.json dist/ios/json/ - @cp pkg/lib/bundle/internal*.json dist/ios/json/ - @go mod tidy - @echo 'Repacking iOS framework...' - chmod -R 755 dist/ios/Lib.xcframework - @go run cmd/iosrepack/main.go - -install-dev-ios: setup-go build-ios protos-swift - @echo 'Installing iOS framework locally at $(CLIENT_IOS_PATH)...' - @chmod -R 755 $(CLIENT_IOS_PATH)/Dependencies/Middleware/Lib.xcframework - @rm -rf $(CLIENT_IOS_PATH)/Dependencies/Middleware/* - @cp -r dist/ios/Lib.xcframework $(CLIENT_IOS_PATH)/Dependencies/Middleware - @rm -rf $(CLIENT_IOS_PATH)/Modules/ProtobufMessages/Sources/Protocol/* - @cp -r dist/ios/protobuf/*.swift $(CLIENT_IOS_PATH)/Modules/ProtobufMessages/Sources/Protocol - @mkdir -p $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos - @cp -r pb/protos/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos - @cp -r pb/protos/service/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos - @cp -r pkg/lib/pb/model/protos/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos - @mkdir -p $(CLIENT_IOS_PATH)/Dependencies/Middleware/json - @cp -r pkg/lib/bundle/*.json $(CLIENT_IOS_PATH)/Dependencies/Middleware/json - -build-android: setup-go setup-gomobile - $(DEPS_PATH)/gomobile init - @echo 'Building library for Android...' - @$(eval FLAGS += $$(shell govvv -flags | sed 's/main/github.com\/anyproto\/anytype-heart\/util\/vcs/g')) - @$(eval TAGS := nogrpcserver gomobile nowatchdog nosigar timetzdata rasterizesvg) -ifdef ANY_SYNC_NETWORK - @$(eval TAGS := $(TAGS) envnetworkcustom) -endif - gomobile bind -tags "$(TAGS)" -ldflags "$(FLAGS)" $(BUILD_FLAGS) -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core - @mkdir -p dist/android/ && mv lib.aar dist/android/ - @go mod tidy - -install-dev-android: setup-go build-android - @echo 'Installing android lib locally in $(CLIENT_ANDROID_PATH)...' - @rm -f $(CLIENT_ANDROID_PATH)/libs/lib.aar - @cp -r dist/android/lib.aar $(CLIENT_ANDROID_PATH)/libs/lib.aar - @cp -r pb/protos/*.proto $(CLIENT_ANDROID_PATH)/protocol/src/main/proto - @cp -r pkg/lib/pb/model/protos/*.proto $(CLIENT_ANDROID_PATH)/protocol/src/main/proto - # Compute the SHA hash of lib.aar - @$(eval hash := $$(shell shasum -b dist/android/lib.aar | cut -d' ' -f1)) - @echo "Version hash: ${hash}" - # Update the gradle file with the new version - @sed -i '' "s/version = '.*'/version = '${hash}'/g" $(CLIENT_ANDROID_PATH)/libs/build.gradle - @cat $(CLIENT_ANDROID_PATH)/libs/build.gradle - - @sed -i '' "s/middlewareVersion = \".*\"/middlewareVersion = \"${hash}\"/" $(CLIENT_ANDROID_PATH)/gradle/libs.versions.toml - @cat $(CLIENT_ANDROID_PATH)/gradle/libs.versions.toml - - # Print the updated gradle file (for verification) - @cd $(CLIENT_ANDROID_PATH) && make setup_local_mw - @cd $(CLIENT_ANDROID_PATH) && make normalize_mw_imports - @cd $(CLIENT_ANDROID_PATH) && make clean_protos - -setup-gomobile: - go build -o deps golang.org/x/mobile/cmd/gomobile - go build -o deps golang.org/x/mobile/cmd/gobind - -setup-protoc-go: - @echo 'Setting up protobuf compiler...' - go build -o deps github.com/gogo/protobuf/protoc-gen-gogofaster - go build -o deps github.com/gogo/protobuf/protoc-gen-gogofast - go build -o deps github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc - -setup-protoc-jsweb: - @echo 'Installing grpc-web plugin...' - @rm -rf deps/grpc-web - @git clone --depth 1 --branch 1.4.2 http://github.com/grpc/grpc-web deps/grpc-web - git apply ./clientlibrary/jsaddon/grpcweb_mac.patch - @[ -d "/opt/homebrew" ] && PREFIX="/opt/homebrew" $(MAKE) -C deps/grpc-web plugin || $(MAKE) -C deps/grpc-web plugin - mv deps/grpc-web/javascript/net/grpc/web/generator/protoc-gen-grpc-web deps/protoc-gen-grpc-web - @rm -rf deps/grpc-web - -setup-protoc: setup-protoc-go setup-protoc-jsweb - -protos-server: - @echo 'Generating protobuf packages for lib-server (Go)...' - @$(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) - @$(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) - @$(eval P_DESCRIPTOR := Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor) - @$(eval P_PROTOS := Mpkg/lib/pb/model/protos/models.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) - @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) - @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) - @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) - @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 GOGO_GRPC_SERVER_METHOD_NO_ERROR=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=grpc:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./pb/service/ - -protos-go: - @echo 'Generating protobuf packages for lib (Go)...' - $(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) - $(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) - @$(eval P_DESCRIPTOR := Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor) - @$(eval P_PROTOS := Mpkg/lib/pb/model/protos/models.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) - @$(eval P_PROTOS2 := Mpkg/lib/pb/model/protos/localstore.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) - - $(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) - GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP):./pkg/lib/pb/ pkg/lib/pb/model/protos/*.proto; mv pkg/lib/pb/pkg/lib/pb/model/*.go pkg/lib/pb/model/; rm -rf pkg/lib/pb/pkg - GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP):./pkg/lib/pb/ pkg/lib/pb/storage/protos/*.proto; mv pkg/lib/pb/pkg/lib/pb/storage/*.go pkg/lib/pb/storage/; rm -rf pkg/lib/pb/pkg - GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP),plugins=grpc:./ pkg/lib/cafe/pb/*.proto - @echo 'Generating protobuf packages for mw (Go)...' - @$(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) - @$(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) - @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) - @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc -I . --gogofaster_out=$(PKGMAP):. ./pb/protos/*.proto; mv ./pb/protos/*.pb.go ./pb/ - @$(eval P_PROTOS4 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) - @$(eval P_PROTOS5 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) - @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_PROTOS4),$$(P_PROTOS5),$$(P_DESCRIPTOR)) - @GOGO_NO_UNDERSCORE=1 GOGO_GOMOBILE_WITH_CONTEXT=1 GOGO_EXPORT_ONEOF_INTERFACE=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=gomobile:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./clientlibrary/service/ - @protoc -I ./ --doc_out=./docs --doc_opt=markdown,proto.md pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - -protos-gomobile: - @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) - @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) - @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3)) - @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 GOGO_GOMOBILE_WITH_CONTEXT=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=gomobile:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./clientlibrary/service/ - -protos-docs: - @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) - @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) - @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3)) - @protoc -I ./ --doc_out=./docs --doc_opt=markdown,proto.md pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - -protos: protos-go protos-server protos-docs - -protos-swift: - @echo 'Clear protobuf files' - @rm -rf ./dist/ios/protobuf/* - @echo 'Generating swift protobuf files' - @protoc -I ./ --swift_opt=FileNaming=DropPath --swift_opt=Visibility=Public --swift_out=./dist/ios/protobuf pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - @echo 'Generated swift protobuf files at ./dist/ios/pb' - -protos-swift-local: protos-swift - @echo 'Clear proto files' - @rm -rf ./dist/ios/protobuf/protos - @echo 'Copying proto files' - @mkdir ./dist/ios/protobuf/protos - @cp ./pb/protos/*.proto ./dist/ios/protobuf/protos - @cp ./pb/protos/service/*.proto ./dist/ios/protobuf/protos - @cp ./pkg/lib/pb/model/protos/*.proto ./dist/ios/protobuf/protos - @open ./dist - -protos-js: - @echo 'Generating protobuf packages (JS)...' - @protoc -I ./ --js_out=import_style=commonjs,binary:./dist/js/pb pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - @protoc -I ./ --grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext:./dist/js/pb pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - -protos-java: - @echo 'Generating protobuf packages (Java)...' - @protoc -I ./ --java_out=./dist/android/pb pb/protos/*.proto pkg/lib/pb/model/protos/*.proto - -build-server: setup-network-config check-tantivy-version - @echo 'Building anytype-heart server...' - @$(eval FLAGS += $$(shell govvv -flags -pkg github.com/anyproto/anytype-heart/util/vcs)) - @$(eval TAGS := $(TAGS) nosigar nowatchdog) -ifdef ANY_SYNC_NETWORK - @$(eval TAGS := $(TAGS) envnetworkcustom) -endif - go build -o dist/server -ldflags "$(FLAGS)" --tags "$(TAGS)" $(BUILD_FLAGS) github.com/anyproto/anytype-heart/cmd/grpcserver +.PHONY: $(MAKECMDGOALS) run-server: build-server @echo 'Running server...' @./dist/server - -install-dev-js-addon: setup build-lib build-js-addon protos-js - @echo 'Installing JS-addon (dev-mode) in ${CLIENT_DESKTOP_PATH}...' - @rm -rf $(CLIENT_DESKTOP_PATH)/build - @cp -r clientlibrary/jsaddon/build $(CLIENT_DESKTOP_PATH)/ - @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib - -install-dev-js: setup-go build-server protos-js - @echo 'Installing JS-server (dev-mode) in $(CLIENT_DESKTOP_PATH)...' - @rm -f $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper - -ifeq ($(OS),Windows_NT) - @cp -r dist/server $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper.exe -else - @cp -r dist/server $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper -endif - - @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib - @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib - @mkdir -p $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated - @cp pkg/lib/bundle/system*.json $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated - @cp pkg/lib/bundle/internal*.json $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated - -build-js: setup-go build-server protos-js - @echo "Run 'make install-dev-js' instead if you want to build & install into $(CLIENT_DESKTOP_PATH)" - -install-linter: - @go install github.com/daixiang0/gci@latest - @go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) - -run-linter: -ifdef GOLANGCI_LINT_BRANCH - @golangci-lint run -v ./... --new-from-rev=$(GOLANGCI_LINT_BRANCH) --timeout 15m --verbose -else - @golangci-lint run -v ./... --new-from-rev=origin/main --timeout 15m --verbose -endif - -run-linter-fix: -ifdef GOLANGCI_LINT_BRANCH - @golangci-lint run -v ./... --new-from-rev=$(GOLANGCI_LINT_BRANCH) --timeout 15m --fix -else - @golangci-lint run -v ./... --new-from-rev=origin/main --timeout 15m --fix -endif - -### Tantivy Section - -REPO := anyproto/tantivy-go -OUTPUT_DIR := deps/libs -SHA_FILE = tantivity_sha256.txt - -TANTIVY_LIBS := android-386.tar.gz \ - android-amd64.tar.gz \ - android-arm.tar.gz \ - android-arm64.tar.gz \ - darwin-amd64.tar.gz \ - darwin-arm64.tar.gz \ - ios-amd64.tar.gz \ - ios-arm64.tar.gz \ - ios-arm64-sim.tar.gz \ - linux-amd64-musl.tar.gz \ - linux-arm64-musl.tar.gz \ - windows-amd64.tar.gz - -define download_tantivy_lib - curl -L -o $(OUTPUT_DIR)/$(1) https://github.com/$(REPO)/releases/download/$(TANTIVY_VERSION)/$(1) -endef - -define remove_arch - rm -f $(OUTPUT_DIR)/$(1) -endef - -remove-libs: - @rm -rf deps/libs/* - -write-tantivy-version: - @echo "$(TANTIVY_VERSION)" > $(OUTPUT_DIR)/.verified - -download-tantivy: remove-libs $(TANTIVY_LIBS) - -$(TANTIVY_LIBS): - @mkdir -p $(OUTPUT_DIR)/$(shell echo $@ | cut -d'.' -f1) - $(call download_tantivy_lib,$@) - @tar -C $(OUTPUT_DIR)/$(shell echo $@ | cut -d'.' -f1) -xvzf $(OUTPUT_DIR)/$@ - -download-tantivy-all-force: download-tantivy - rm -f $(SHA_FILE) - @for file in $(TANTIVY_LIBS); do \ - echo "SHA256 $(OUTPUT_DIR)/$$file" ; \ - shasum -a 256 $(OUTPUT_DIR)/$$file | awk '{print $$1 " " "'$(OUTPUT_DIR)/$$file'" }' >> $(SHA_FILE); \ - done - @rm -rf deps/libs/*.tar.gz - @echo "SHA256 checksums generated." - $(MAKE) write-tantivy-version - -download-tantivy-all: download-tantivy - @echo "Validating SHA256 checksums..." - @shasum -a 256 -c $(SHA_FILE) --status || { echo "Hash mismatch detected. Call make download-tantivy-all-force"; exit 1; } - @echo "All files are valid." - @rm -rf deps/libs/*.tar.gz - $(MAKE) write-tantivy-version - -download-tantivy-local: remove-libs - @mkdir -p $(OUTPUT_DIR) - @cp -r $(TANTIVY_GO_PATH)/libs/* $(OUTPUT_DIR) - -check-tantivy-version: - $(eval OLD_VERSION := $(shell [ -f $(OUTPUT_DIR)/.verified ] && cat $(OUTPUT_DIR)/.verified || echo "")) - @if [ "$(TANTIVY_VERSION)" != "$(OLD_VERSION)" ]; then \ - $(MAKE) download-tantivy-all; \ - fi diff --git a/makefiles/android.mk b/makefiles/android.mk new file mode 100644 index 000000000..c5d9d3550 --- /dev/null +++ b/makefiles/android.mk @@ -0,0 +1,32 @@ +build-android: setup-go setup-gomobile + $(DEPS_PATH)/gomobile init + @echo 'Building library for Android...' + @$(eval FLAGS += $$(shell govvv -flags | sed 's/main/github.com\/anyproto\/anytype-heart\/util\/vcs/g')) + @$(eval TAGS := nogrpcserver gomobile nowatchdog nosigar timetzdata rasterizesvg) +ifdef ANY_SYNC_NETWORK + @$(eval TAGS := $(TAGS) envnetworkcustom) +endif + gomobile bind -tags "$(TAGS)" -ldflags "$(FLAGS)" $(BUILD_FLAGS) -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core + @mkdir -p dist/android/ && mv lib.aar dist/android/ + @go mod tidy + +install-dev-android: setup-go build-android + @echo 'Installing android lib locally in $(CLIENT_ANDROID_PATH)...' + @rm -f $(CLIENT_ANDROID_PATH)/libs/lib.aar + @cp -r dist/android/lib.aar $(CLIENT_ANDROID_PATH)/libs/lib.aar + @cp -r pb/protos/*.proto $(CLIENT_ANDROID_PATH)/protocol/src/main/proto + @cp -r pkg/lib/pb/model/protos/*.proto $(CLIENT_ANDROID_PATH)/protocol/src/main/proto + # Compute the SHA hash of lib.aar + @$(eval hash := $$(shell shasum -b dist/android/lib.aar | cut -d' ' -f1)) + @echo "Version hash: ${hash}" + # Update the gradle file with the new version + @sed -i '' "s/version = '.*'/version = '${hash}'/g" $(CLIENT_ANDROID_PATH)/libs/build.gradle + @cat $(CLIENT_ANDROID_PATH)/libs/build.gradle + + @sed -i '' "s/middlewareVersion = \".*\"/middlewareVersion = \"${hash}\"/" $(CLIENT_ANDROID_PATH)/gradle/libs.versions.toml + @cat $(CLIENT_ANDROID_PATH)/gradle/libs.versions.toml + + # Print the updated gradle file (for verification) + @cd $(CLIENT_ANDROID_PATH) && make setup_local_mw + @cd $(CLIENT_ANDROID_PATH) && make normalize_mw_imports + @cd $(CLIENT_ANDROID_PATH) && make clean_protos diff --git a/makefiles/build.mk b/makefiles/build.mk new file mode 100644 index 000000000..13c1bd557 --- /dev/null +++ b/makefiles/build.mk @@ -0,0 +1,39 @@ +# build + +build-lib: + @echo 'Building library...' + @$(eval FLAGS += $$(shell govvv -flags -pkg github.com/anyproto/anytype-heart/util/vcs)) + @GO111MODULE=on go build -v -o dist/lib.a -tags nogrpcserver -ldflags "$(FLAGS)" -buildmode=c-archive -v ./clientlibrary/clib + +build-js-addon: + @echo 'Building JS-addon...' + @cp dist/lib.a clientlibrary/jsaddon/lib.a + @cp dist/lib.h clientlibrary/jsaddon/lib.h + @cp clientlibrary/clib/bridge.h clientlibrary/jsaddon/bridge.h + # Electron's version. + @export npm_config_target=12.0.4 + @export npm_config_arch=x64 + @export npm_config_target_arch=x64 + # The architecture of Electron, see https://electronjs.org/docs/tutorial/support#supported-platforms + # for supported architectures. + # Download headers for Electron. + @export npm_config_disturl=https://electronjs.org/headers + # Tell node-pre-gyp that we are building for Electron. + @export npm_config_runtime=electron + # Tell node-pre-gyp to build module from source code. + @export npm_config_build_from_source=true + @npm install -C ./clientlibrary/jsaddon + @rm clientlibrary/jsaddon/lib.a clientlibrary/jsaddon/lib.h clientlibrary/jsaddon/bridge.h + + +build-server: setup-network-config check-tantivy-version + @echo 'Building anytype-heart server...' + @$(eval FLAGS += $$(shell govvv -flags -pkg github.com/anyproto/anytype-heart/util/vcs)) + @$(eval TAGS := $(TAGS) nosigar nowatchdog) +ifdef ANY_SYNC_NETWORK + @$(eval TAGS := $(TAGS) envnetworkcustom) +endif + go build -o dist/server -ldflags "$(FLAGS)" --tags "$(TAGS)" $(BUILD_FLAGS) github.com/anyproto/anytype-heart/cmd/grpcserver + +build-js: setup-go build-server protos-js + @echo "Run 'make install-dev-js' instead if you want to build & install into $(CLIENT_DESKTOP_PATH)" diff --git a/makefiles/install.mk b/makefiles/install.mk new file mode 100644 index 000000000..42e38c244 --- /dev/null +++ b/makefiles/install.mk @@ -0,0 +1,21 @@ +install-dev-js-addon: setup build-lib build-js-addon protos-js + @echo 'Installing JS-addon (dev-mode) in ${CLIENT_DESKTOP_PATH}...' + @rm -rf $(CLIENT_DESKTOP_PATH)/build + @cp -r clientlibrary/jsaddon/build $(CLIENT_DESKTOP_PATH)/ + @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib + +install-dev-js: setup-go build-server protos-js + @echo 'Installing JS-server (dev-mode) in $(CLIENT_DESKTOP_PATH)...' + @rm -f $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper + +ifeq ($(OS),Windows_NT) + @cp -r dist/server $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper.exe +else + @cp -r dist/server $(CLIENT_DESKTOP_PATH)/dist/anytypeHelper +endif + + @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib + @cp -r dist/js/pb/* $(CLIENT_DESKTOP_PATH)/dist/lib + @mkdir -p $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated + @cp pkg/lib/bundle/system*.json $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated + @cp pkg/lib/bundle/internal*.json $(CLIENT_DESKTOP_PATH)/dist/lib/json/generated diff --git a/makefiles/ios.mk b/makefiles/ios.mk new file mode 100644 index 000000000..892a84f7e --- /dev/null +++ b/makefiles/ios.mk @@ -0,0 +1,35 @@ +build-ios: setup-go setup-gomobile + # PATH is not working here, so we need to use absolute path + $(DEPS_PATH)/gomobile init + @echo 'Clear xcframework' + @rm -rf ./dist/ios/Lib.xcframework + @echo 'Building library for iOS...' + @$(eval FLAGS += $$(shell govvv -flags | sed 's/main/github.com\/anyproto\/anytype-heart\/util\/vcs/g')) + @$(eval TAGS := nogrpcserver gomobile nowatchdog nosigar timetzdata rasterizesvg) +ifdef ANY_SYNC_NETWORK + @$(eval TAGS := $(TAGS) envnetworkcustom) +endif + gomobile bind -tags "$(TAGS)" -ldflags "$(FLAGS)" $(BUILD_FLAGS) -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core + @mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ + @mkdir -p dist/ios/json/ + @cp pkg/lib/bundle/system*.json dist/ios/json/ + @cp pkg/lib/bundle/relations.json dist/ios/json/ + @cp pkg/lib/bundle/internal*.json dist/ios/json/ + @go mod tidy + @echo 'Repacking iOS framework...' + chmod -R 755 dist/ios/Lib.xcframework + @go run cmd/iosrepack/main.go + +install-dev-ios: setup-go build-ios protos-swift + @echo 'Installing iOS framework locally at $(CLIENT_IOS_PATH)...' + @chmod -R 755 $(CLIENT_IOS_PATH)/Dependencies/Middleware/Lib.xcframework + @rm -rf $(CLIENT_IOS_PATH)/Dependencies/Middleware/* + @cp -r dist/ios/Lib.xcframework $(CLIENT_IOS_PATH)/Dependencies/Middleware + @rm -rf $(CLIENT_IOS_PATH)/Modules/ProtobufMessages/Sources/Protocol/* + @cp -r dist/ios/protobuf/*.swift $(CLIENT_IOS_PATH)/Modules/ProtobufMessages/Sources/Protocol + @mkdir -p $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos + @cp -r pb/protos/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos + @cp -r pb/protos/service/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos + @cp -r pkg/lib/pb/model/protos/*.proto $(CLIENT_IOS_PATH)/Dependencies/Middleware/protobuf/protos + @mkdir -p $(CLIENT_IOS_PATH)/Dependencies/Middleware/json + @cp -r pkg/lib/bundle/*.json $(CLIENT_IOS_PATH)/Dependencies/Middleware/json diff --git a/makefiles/linter.mk b/makefiles/linter.mk new file mode 100644 index 000000000..b58831b5b --- /dev/null +++ b/makefiles/linter.mk @@ -0,0 +1,17 @@ +install-linter: + @go install github.com/daixiang0/gci@latest + @go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) + +run-linter: +ifdef GOLANGCI_LINT_BRANCH + @golangci-lint run -v ./... --new-from-rev=$(GOLANGCI_LINT_BRANCH) --timeout 15m --verbose +else + @golangci-lint run -v ./... --new-from-rev=origin/main --timeout 15m --verbose +endif + +run-linter-fix: +ifdef GOLANGCI_LINT_BRANCH + @golangci-lint run -v ./... --new-from-rev=$(GOLANGCI_LINT_BRANCH) --timeout 15m --fix +else + @golangci-lint run -v ./... --new-from-rev=origin/main --timeout 15m --fix +endif diff --git a/makefiles/protos.mk b/makefiles/protos.mk new file mode 100644 index 000000000..455c3ab3e --- /dev/null +++ b/makefiles/protos.mk @@ -0,0 +1,73 @@ +protos-server: + @echo 'Generating protobuf packages for lib-server (Go)...' + @$(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) + @$(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) + @$(eval P_DESCRIPTOR := Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor) + @$(eval P_PROTOS := Mpkg/lib/pb/model/protos/models.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) + @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) + @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) + @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) + @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 GOGO_GRPC_SERVER_METHOD_NO_ERROR=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=grpc:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./pb/service/ + +protos-go: + @echo 'Generating protobuf packages for lib (Go)...' + $(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) + $(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) + @$(eval P_DESCRIPTOR := Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor) + @$(eval P_PROTOS := Mpkg/lib/pb/model/protos/models.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) + @$(eval P_PROTOS2 := Mpkg/lib/pb/model/protos/localstore.proto=github.com/anyproto/anytype-heart/pkg/lib/pb/model) + + $(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) + GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP):./pkg/lib/pb/ pkg/lib/pb/model/protos/*.proto; mv pkg/lib/pb/pkg/lib/pb/model/*.go pkg/lib/pb/model/; rm -rf pkg/lib/pb/pkg + GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP):./pkg/lib/pb/ pkg/lib/pb/storage/protos/*.proto; mv pkg/lib/pb/pkg/lib/pb/storage/*.go pkg/lib/pb/storage/; rm -rf pkg/lib/pb/pkg + GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc --gogofaster_out=$(PKGMAP),plugins=grpc:./ pkg/lib/cafe/pb/*.proto + @echo 'Generating protobuf packages for mw (Go)...' + @$(eval P_TIMESTAMP := Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types) + @$(eval P_STRUCT := Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types) + @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_DESCRIPTOR)) + @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 protoc -I . --gogofaster_out=$(PKGMAP):. ./pb/protos/*.proto; mv ./pb/protos/*.pb.go ./pb/ + @$(eval P_PROTOS4 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) + @$(eval P_PROTOS5 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) + @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3),$$(P_PROTOS4),$$(P_PROTOS5),$$(P_DESCRIPTOR)) + @GOGO_NO_UNDERSCORE=1 GOGO_GOMOBILE_WITH_CONTEXT=1 GOGO_EXPORT_ONEOF_INTERFACE=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=gomobile:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./clientlibrary/service/ + @protoc -I ./ --doc_out=./docs --doc_opt=markdown,proto.md pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto + +protos-gomobile: + @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) + @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) + @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3)) + @GOGO_NO_UNDERSCORE=1 GOGO_EXPORT_ONEOF_INTERFACE=1 GOGO_GOMOBILE_WITH_CONTEXT=1 PACKAGE_PATH=github.com/anyproto/anytype-heart/pb protoc -I=. --gogofaster_out=$(PKGMAP),plugins=gomobile:. ./pb/protos/service/service.proto; mv ./pb/protos/service/*.pb.go ./clientlibrary/service/ + +protos-docs: + @$(eval P_PROTOS2 := Mpb/protos/commands.proto=github.com/anyproto/anytype-heart/pb) + @$(eval P_PROTOS3 := Mpb/protos/events.proto=github.com/anyproto/anytype-heart/pb) + @$(eval PKGMAP := $$(P_TIMESTAMP),$$(P_STRUCT),$$(P_PROTOS),$$(P_PROTOS2),$$(P_PROTOS3)) + @protoc -I ./ --doc_out=./docs --doc_opt=markdown,proto.md pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto + +protos: protos-go protos-server protos-docs + +protos-swift: + @echo 'Clear protobuf files' + @rm -rf ./dist/ios/protobuf/* + @echo 'Generating swift protobuf files' + @protoc -I ./ --swift_opt=FileNaming=DropPath --swift_opt=Visibility=Public --swift_out=./dist/ios/protobuf pb/protos/*.proto pkg/lib/pb/model/protos/*.proto + @echo 'Generated swift protobuf files at ./dist/ios/pb' + +protos-swift-local: protos-swift + @echo 'Clear proto files' + @rm -rf ./dist/ios/protobuf/protos + @echo 'Copying proto files' + @mkdir ./dist/ios/protobuf/protos + @cp ./pb/protos/*.proto ./dist/ios/protobuf/protos + @cp ./pb/protos/service/*.proto ./dist/ios/protobuf/protos + @cp ./pkg/lib/pb/model/protos/*.proto ./dist/ios/protobuf/protos + @open ./dist + +protos-js: + @echo 'Generating protobuf packages (JS)...' + @protoc -I ./ --js_out=import_style=commonjs,binary:./dist/js/pb pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto + @protoc -I ./ --grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext:./dist/js/pb pb/protos/service/*.proto pb/protos/*.proto pkg/lib/pb/model/protos/*.proto + +protos-java: + @echo 'Generating protobuf packages (Java)...' + @protoc -I ./ --java_out=./dist/android/pb pb/protos/*.proto pkg/lib/pb/model/protos/*.proto diff --git a/makefiles/setup.mk b/makefiles/setup.mk new file mode 100644 index 000000000..14edebe96 --- /dev/null +++ b/makefiles/setup.mk @@ -0,0 +1,44 @@ +setup: setup-go + @echo 'Setting up npm...' + @npm install + +setup-network-config: +ifdef ANYENV + @echo "ANYENV is now deprecated. Use ANY_SYNC_NETWORK instead." + @exit 1; +endif + @if [ -z "$$ANY_SYNC_NETWORK" ]; then \ + echo "Using the default production Any Sync Network"; \ +elif [ ! -e "$$ANY_SYNC_NETWORK" ]; then \ + echo "Network configuration file not found at $$ANY_SYNC_NETWORK"; \ + exit 1; \ +else \ + echo "Using Any Sync Network configuration at $$ANY_SYNC_NETWORK"; \ + cp $$ANY_SYNC_NETWORK $(CUSTOM_NETWORK_FILE); \ +fi + +setup-go: setup-network-config check-tantivy-version + @echo 'Setting up go modules...' + @go mod download + @go install github.com/ahmetb/govvv@v0.2.0 + +setup-gomobile: + go build -o deps golang.org/x/mobile/cmd/gomobile + go build -o deps golang.org/x/mobile/cmd/gobind + +setup-protoc-go: + @echo 'Setting up protobuf compiler...' + go build -o deps github.com/gogo/protobuf/protoc-gen-gogofaster + go build -o deps github.com/gogo/protobuf/protoc-gen-gogofast + go build -o deps github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc + +setup-protoc-jsweb: + @echo 'Installing grpc-web plugin...' + @rm -rf deps/grpc-web + @git clone --depth 1 --branch 1.4.2 http://github.com/grpc/grpc-web deps/grpc-web + git apply ./clientlibrary/jsaddon/grpcweb_mac.patch + @[ -d "/opt/homebrew" ] && PREFIX="/opt/homebrew" $(MAKE) -C deps/grpc-web plugin || $(MAKE) -C deps/grpc-web plugin + mv deps/grpc-web/javascript/net/grpc/web/generator/protoc-gen-grpc-web deps/protoc-gen-grpc-web + @rm -rf deps/grpc-web + +setup-protoc: setup-protoc-go setup-protoc-jsweb diff --git a/makefiles/tantivy.mk b/makefiles/tantivy.mk new file mode 100644 index 000000000..2b342796c --- /dev/null +++ b/makefiles/tantivy.mk @@ -0,0 +1,66 @@ +### Tantivy Section + +REPO := anyproto/tantivy-go +OUTPUT_DIR := deps/libs +SHA_FILE = tantivity_sha256.txt + +TANTIVY_LIBS := android-386.tar.gz \ + android-amd64.tar.gz \ + android-arm.tar.gz \ + android-arm64.tar.gz \ + darwin-amd64.tar.gz \ + darwin-arm64.tar.gz \ + ios-amd64.tar.gz \ + ios-arm64.tar.gz \ + ios-arm64-sim.tar.gz \ + linux-amd64-musl.tar.gz \ + linux-arm64-musl.tar.gz \ + windows-amd64.tar.gz + +define download_tantivy_lib + curl -L -o $(OUTPUT_DIR)/$(1) https://github.com/$(REPO)/releases/download/$(TANTIVY_VERSION)/$(1) +endef + +define remove_arch + rm -f $(OUTPUT_DIR)/$(1) +endef + +remove-libs: + @rm -rf deps/libs/* + +write-tantivy-version: + @echo "$(TANTIVY_VERSION)" > $(OUTPUT_DIR)/.verified + +download-tantivy: remove-libs $(TANTIVY_LIBS) + +$(TANTIVY_LIBS): + @mkdir -p $(OUTPUT_DIR)/$(shell echo $@ | cut -d'.' -f1) + $(call download_tantivy_lib,$@) + @tar -C $(OUTPUT_DIR)/$(shell echo $@ | cut -d'.' -f1) -xvzf $(OUTPUT_DIR)/$@ + +download-tantivy-all-force: download-tantivy + rm -f $(SHA_FILE) + @for file in $(TANTIVY_LIBS); do \ + echo "SHA256 $(OUTPUT_DIR)/$$file" ; \ + shasum -a 256 $(OUTPUT_DIR)/$$file | awk '{print $$1 " " "'$(OUTPUT_DIR)/$$file'" }' >> $(SHA_FILE); \ + done + @rm -rf deps/libs/*.tar.gz + @echo "SHA256 checksums generated." + $(MAKE) write-tantivy-version + +download-tantivy-all: download-tantivy + @echo "Validating SHA256 checksums..." + @shasum -a 256 -c $(SHA_FILE) --status || { echo "Hash mismatch detected. Call make download-tantivy-all-force"; exit 1; } + @echo "All files are valid." + @rm -rf deps/libs/*.tar.gz + $(MAKE) write-tantivy-version + +download-tantivy-local: remove-libs + @mkdir -p $(OUTPUT_DIR) + @cp -r $(TANTIVY_GO_PATH)/libs/* $(OUTPUT_DIR) + +check-tantivy-version: + $(eval OLD_VERSION := $(shell [ -f $(OUTPUT_DIR)/.verified ] && cat $(OUTPUT_DIR)/.verified || echo "")) + @if [ "$(TANTIVY_VERSION)" != "$(OLD_VERSION)" ]; then \ + $(MAKE) download-tantivy-all; \ + fi diff --git a/makefiles/test.mk b/makefiles/test.mk new file mode 100644 index 000000000..1cc6298dc --- /dev/null +++ b/makefiles/test.mk @@ -0,0 +1,28 @@ +# tests +test: + @echo 'Running tests...' + @ANYTYPE_LOG_NOGELF=1 go test -cover github.com/anyproto/anytype-heart/... + +test-no-cache: + @echo 'Running tests...' + @ANYTYPE_LOG_NOGELF=1 go test -count=1 github.com/anyproto/anytype-heart/... + +test-integration: + @echo 'Running integration tests...' + @go test -run=TestBasic -tags=integration -v -count 1 ./tests + +test-race: + @echo 'Running tests with race-detector...' + @ANYTYPE_LOG_NOGELF=1 go test -count=1 -race github.com/anyproto/anytype-heart/... + +test-deps: + @echo 'Generating test mocks...' + @go build -o deps go.uber.org/mock/mockgen + @go build -o deps github.com/vektra/mockery/v2 + @go generate ./... + @$(DEPS_PATH)/mockery --disable-version-string + @go run ./cmd/testcase generate-json-helpers + +clear-test-deps: + @echo 'Removing test mocks...' + @find . -name "*_mock.go" | xargs -r rm -v diff --git a/makefiles/tools.mk b/makefiles/tools.mk new file mode 100644 index 000000000..e0c4c3439 --- /dev/null +++ b/makefiles/tools.mk @@ -0,0 +1,11 @@ +fmt: + @echo 'Formatting with prettier...' + @npx prettier --write "./**" 2> /dev/null || true + @echo 'Formatting with goimports...' + @goimports -w -l `find . -type f -name '*.go' -not -path './vendor/*'` + +lint: + @echo 'Linting with prettier...' + @npx prettier --check "./**" 2> /dev/null || true + @echo 'Linting with golint...' + @golint `go list ./... | grep -v /vendor/` diff --git a/makefiles/vars.mk b/makefiles/vars.mk new file mode 100644 index 000000000..d7183e2c0 --- /dev/null +++ b/makefiles/vars.mk @@ -0,0 +1,23 @@ +CUSTOM_NETWORK_FILE ?= ./core/anytype/config/nodes/custom.yml +CLIENT_DESKTOP_PATH ?= ../anytype-ts +CLIENT_ANDROID_PATH ?= ../anytype-kotlin +CLIENT_IOS_PATH ?= ../anytype-swift +TANTIVY_GO_PATH ?= ../tantivy-go +BUILD_FLAGS ?= +TANTIVY_VERSION := $(shell cat go.mod | grep github.com/anyproto/tantivy-go | cut -d' ' -f2) + +export GOLANGCI_LINT_VERSION=1.58.1 +export CGO_CFLAGS=-Wno-deprecated-non-prototype -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-xor-used-as-pow -Wno-single-bit-bitfield-constant-conversion + +ifndef $(GOPATH) +GOPATH=$(shell go env GOPATH) +export GOPATH +endif + +ifndef $(GOROOT) +GOROOT=$(shell go env GOROOT) +export GOROOT +endif + +DEPS_PATH := $(shell pwd)/deps +export PATH := $(DEPS_PATH):$(PATH) From 5bf45ef2feba7d1fb560610f1903f07fb27f7927 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 14:38:54 -0300 Subject: [PATCH 097/176] .github/workflows/build.yml refactoring --- .github/workflows/build.yml | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2e6e1a80..74b7186e9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,10 +41,10 @@ jobs: exit 1 fi - name: Install Go + if: runner.name != 'mac-mini-org-heart' uses: actions/setup-go@v1 with: go-version: 1.23.2 - if: runner.name != 'mac-mini-org-heart' - name: Setup GO run: | go version @@ -52,6 +52,7 @@ jobs: echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV echo $(go env GOPATH)/bin >> $GITHUB_PATH - name: Install brew and node deps + if: runner.name != 'mac-mini-org-heart' run: | curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb @@ -61,7 +62,6 @@ jobs: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl npm i -g node-gyp - if: runner.name != 'mac-mini-org-heart' - name: Checkout uses: actions/checkout@v3 - uses: actions/cache@v3 @@ -118,6 +118,12 @@ jobs: GOOS="linux" GOARCH="arm64" CGO_ENABLED="1" CC="aarch64-linux-musl-gcc" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver ls -lha . - name: run perf tests + if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' + env: + ANYTYPE_REPORT_MEMORY: 'true' + TEST_MNEMONIC: ${{ secrets.TEST_MNEMONIC }} + PROM_KEY: ${{ secrets.PROMETHEUS_USERNAME }} + PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} run: | echo "Running perf tests" RUN_COUNT=${{ github.event.inputs.perf-test }} @@ -126,29 +132,24 @@ jobs: fi cd cmd/perftester/ CGO_ENABLED="1" go run main.go $RUN_COUNT - env: - ANYTYPE_REPORT_MEMORY: 'true' - TEST_MNEMONIC: ${{ secrets.TEST_MNEMONIC }} - PROM_KEY: ${{ secrets.PROMETHEUS_USERNAME }} - PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - name: Archive perf tests results + if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' uses: actions/upload-artifact@v4 with: name: pprofs path: | *.pprof - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - name: end run perf tests + if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | rm -rf *.pprof echo "End running perf tests" gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - name: Make JS protos + if: github.event_name == 'push' run: | make protos-js mv dist/js/pb protobuf @@ -156,7 +157,6 @@ jobs: cp pb/protos/*.proto ./protobuf/protos cp pb/protos/service/*.proto ./protobuf/protos cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos - if: github.event_name == 'push' - name: Add system relations/types jsons run: | mkdir -p json/ @@ -165,6 +165,7 @@ jobs: cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json - name: Pack server win + if: github.event_name == 'push' run: | declare -a arr=("windows-amd64") for i in "${arr[@]}" @@ -174,8 +175,8 @@ jobs: zip -r js_${VERSION}_${OSARCH}.zip grpc-server.exe protobuf json mv js_${VERSION}_${OSARCH}.zip .release/ done - if: github.event_name == 'push' - name: Pack server osx + if: github.event_name == 'push' run: | declare -a arr=("darwin-amd64" "darwin-arm64") for i in "${arr[@]}" @@ -185,8 +186,8 @@ jobs: tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json mv js_${VERSION}_${OSARCH}.tar.gz .release/ done - if: github.event_name == 'push' - name: Pack server unix amd64 + if: github.event_name == 'push' run: | declare -a arr=("linux-amd64") for i in "${arr[@]}" @@ -196,8 +197,8 @@ jobs: tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json mv js_${VERSION}_${OSARCH}.tar.gz .release/ done - if: github.event_name == 'push' - name: Pack server unix arm64 + if: github.event_name == 'push' run: | declare -a arr=("linux-arm64") for i in "${arr[@]}" @@ -207,7 +208,6 @@ jobs: tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json mv js_${VERSION}_${OSARCH}.tar.gz .release/ done - if: github.event_name == 'push' - name: Make swift protos run: | mkdir -p .release @@ -227,6 +227,11 @@ jobs: cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json - name: Compile ios lib + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_USER: ${{ github.actor }} + MAVEN_ARTIFACT_ID: 'anytype-heart-ios' + MAVEN_ARTIFACT_NAME: 'ios_framework.tar.gz' run: | go install github.com/vektra/mockery/v2@v2.47.0 go install go.uber.org/mock/mockgen@v0.5.0 @@ -238,11 +243,6 @@ jobs: gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json gradle publish mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_USER: ${{ github.actor }} - MAVEN_ARTIFACT_ID: 'anytype-heart-ios' - MAVEN_ARTIFACT_NAME: 'ios_framework.tar.gz' - name: Make java protos run: | make protos-java @@ -265,19 +265,19 @@ jobs: gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf json mv android_lib_${VERSION}.tar.gz .release/ - name: Publish android lib to maven - run: | - gradle publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_USER: ${{ github.actor }} MAVEN_ARTIFACT_ID: 'anytype-heart-android' MAVEN_ARTIFACT_NAME: 'lib.aar' + run: | + gradle publish - name: Release if: github.event_name == 'push' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: softprops/action-gh-release@v1 with: prerelease: ${{ contains(github.ref, '-rc') }} fail_on_unmatched_files: true files: '.release/*' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 81cb5e2136950d9ef0251fb2c6d3b8c13a9d7ca6 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 14:46:11 -0300 Subject: [PATCH 098/176] .github/workflows/golangci-lint.yml,test.yml refactoring --- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/test.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 3efd85138..8727e2c52 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -35,4 +35,4 @@ jobs: skip-cache: true version: latest only-new-issues: true - args: --timeout 25m --verbose \ No newline at end of file + args: --timeout 25m --verbose diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dcbf95f16..f9ecea92a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,4 @@ +name: "Unit test" on: push: branches: From 75323c410dfd359ba5d67b7305f54e742862a36f Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 15:32:44 -0300 Subject: [PATCH 099/176] added makefiles/ci.mk --- .github/workflows/build.yml | 25 +++++--------- .github/workflows/nightly.yml | 21 ++--------- makefiles/ci.mk | 65 +++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 35 deletions(-) create mode 100644 makefiles/ci.mk diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 74b7186e9..a1536002d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,15 +53,7 @@ jobs: echo $(go env GOPATH)/bin >> $GITHUB_PATH - name: Install brew and node deps if: runner.name != 'mac-mini-org-heart' - run: | - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install --ignore-dependencies ./swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install mingw-w64 - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl - npm i -g node-gyp + run: make install_brew_and_node_deps - name: Checkout uses: actions/checkout@v3 - uses: actions/cache@v3 @@ -88,6 +80,7 @@ jobs: VERSION=${GITHUB_REF##*/} fi echo VERSION=${VERSION} >> $GITHUB_ENV + echo BUILD_TAG_NETWORK=envproduction >> $GITHUB_ENV echo MAVEN_ARTIFACT_VERSION=${VERSION} >> $GITHUB_ENV echo GOPRIVATE=github.com/anyproto >> $GITHUB_ENV echo $(pwd)/deps >> $GITHUB_PATH @@ -109,13 +102,13 @@ jobs: echo $FLAGS mkdir -p .release echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="amd64" CGO_ENABLED="1" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="amd64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver export SDKROOT=$(xcrun --sdk macosx --show-sdk-path) echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="arm64" CGO_ENABLED="1" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="windows" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-linux-musl-gcc" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="arm64" CGO_ENABLED="1" CC="aarch64-linux-musl-gcc" go build -tags="envproduction nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="arm64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + GOOS="windows" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + GOOS="linux" GOARCH="arm64" CGO_ENABLED="1" CC="aarch64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver ls -lha . - name: run perf tests if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' @@ -236,7 +229,7 @@ jobs: go install github.com/vektra/mockery/v2@v2.47.0 go install go.uber.org/mock/mockgen@v0.5.0 make test-deps - gomobile bind -tags "envproduction nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ go run cmd/iosrepack/main.go mv dist/ios/Lib.xcframework . @@ -261,7 +254,7 @@ jobs: cp pkg/lib/bundle/internalTypes.json ./json - name: Compile android lib run: | - gomobile bind -tags "envproduction nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf json mv android_lib_${VERSION}.tar.gz .release/ - name: Publish android lib to maven diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 61ceb4908..fe005d401 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -44,15 +44,7 @@ jobs: echo $(go env GOPATH)/bin >> $GITHUB_PATH - name: Install brew and node deps - run: | - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install --ignore-dependencies ./swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install mingw-w64 - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl - npm i -g node-gyp + run: make install_brew_and_node_deps - name: Checkout uses: actions/checkout@v3 @@ -113,16 +105,7 @@ jobs: - name: Cross-compile library mac/win/linux run: | - echo $FLAGS - mkdir -p .release - echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="amd64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - export SDKROOT=$(xcrun --sdk macosx --show-sdk-path) - echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="arm64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="windows" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="arm64" CGO_ENABLED="1" CC="aarch64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + make cross_compile_library ls -lha . - name: Make JS protos diff --git a/makefiles/ci.mk b/makefiles/ci.mk new file mode 100644 index 000000000..35e25f39e --- /dev/null +++ b/makefiles/ci.mk @@ -0,0 +1,65 @@ +install_brew_and_node_deps: + curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb + curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install --ignore-dependencies ./swift-protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install mingw-w64 + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl + npm i -g node-gyp + +BUILD_TAGS ?= $(BUILD_TAG_NETWORK) nographviz nowatchdog nosigar nomutexdeadlockdetector +OUTPUT_DIR ?= .release + +cross_compile_library: + echo $(FLAGS) + $(MAKE) -j \ + cross_compile_library_darwin_amd64 \ + cross_compile_library_darwin_arm64 \ + cross_compile_library_windows_amd64 \ + cross_compile_library_linux_amd64 \ + cross_compile_library_linux_arm64 + +$(OUTPUT_DIR): + mkdir -p $(OUTPUT_DIR) + +cross_compile_library_darwin_amd64: $(OUTPUT_DIR) + echo $(SDKROOT) + GOOS="darwin" \ + CGO_CFLAGS="-mmacosx-version-min=11" \ + MACOSX_DEPLOYMENT_TARGET=11.0 \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross_compile_library_darwin_arm64: $(OUTPUT_DIR) + SDKROOT := $(shell xcrun --sdk macosx --show-sdk-path) + echo $(SDKROOT) + GOOS="darwin" \ + CGO_CFLAGS="-mmacosx-version-min=11" \ + MACOSX_DEPLOYMENT_TARGET=11.0 \ + GOARCH="arm64" \ + CGO_ENABLED="1" \ + go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross_compile_library_windows_amd64: $(OUTPUT_DIR) + GOOS="windows" \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + CC="x86_64-w64-mingw32-gcc" \ + CXX="x86_64-w64-mingw32-g++" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross_compile_library_linux_amd64: $(OUTPUT_DIR) + GOOS="linux" \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + CC="x86_64-linux-musl-gcc" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross_compile_library_linux_arm64: $(OUTPUT_DIR) + GOOS="linux" \ + GOARCH="arm64" \ + CGO_ENABLED="1" \ + CC="aarch64-linux-musl-gcc" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver From 46ff44b89c4c547ed599ec403431116ced69c05f Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 15:45:59 -0300 Subject: [PATCH 100/176] fixed make goals names --- .github/workflows/build.yml | 2 +- .github/workflows/nightly.yml | 4 ++-- makefiles/ci.mk | 24 ++++++++++++------------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a1536002d..f8ad9fb81 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,7 +53,7 @@ jobs: echo $(go env GOPATH)/bin >> $GITHUB_PATH - name: Install brew and node deps if: runner.name != 'mac-mini-org-heart' - run: make install_brew_and_node_deps + run: make install-brew-and-node-deps - name: Checkout uses: actions/checkout@v3 - uses: actions/cache@v3 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index fe005d401..a31697e4f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -44,7 +44,7 @@ jobs: echo $(go env GOPATH)/bin >> $GITHUB_PATH - name: Install brew and node deps - run: make install_brew_and_node_deps + run: make install-brew-and-node-deps - name: Checkout uses: actions/checkout@v3 @@ -105,7 +105,7 @@ jobs: - name: Cross-compile library mac/win/linux run: | - make cross_compile_library + make cross-compile-library ls -lha . - name: Make JS protos diff --git a/makefiles/ci.mk b/makefiles/ci.mk index 35e25f39e..24ec06639 100644 --- a/makefiles/ci.mk +++ b/makefiles/ci.mk @@ -1,4 +1,4 @@ -install_brew_and_node_deps: +install-brew-and-node-deps: curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb @@ -11,19 +11,19 @@ install_brew_and_node_deps: BUILD_TAGS ?= $(BUILD_TAG_NETWORK) nographviz nowatchdog nosigar nomutexdeadlockdetector OUTPUT_DIR ?= .release -cross_compile_library: +cross-compile-library: echo $(FLAGS) $(MAKE) -j \ - cross_compile_library_darwin_amd64 \ - cross_compile_library_darwin_arm64 \ - cross_compile_library_windows_amd64 \ - cross_compile_library_linux_amd64 \ - cross_compile_library_linux_arm64 + cross-compile-library-darwin-amd64 \ + cross-compile-library-darwin-arm64 \ + cross-compile-library-windows-amd64 \ + cross-compile-library-linux-amd64 \ + cross-compile-library-linux-arm64 $(OUTPUT_DIR): mkdir -p $(OUTPUT_DIR) -cross_compile_library_darwin_amd64: $(OUTPUT_DIR) +cross-compile-library-darwin-amd64: $(OUTPUT_DIR) echo $(SDKROOT) GOOS="darwin" \ CGO_CFLAGS="-mmacosx-version-min=11" \ @@ -32,7 +32,7 @@ cross_compile_library_darwin_amd64: $(OUTPUT_DIR) CGO_ENABLED="1" \ go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross_compile_library_darwin_arm64: $(OUTPUT_DIR) +cross-compile-library-darwin-arm64: $(OUTPUT_DIR) SDKROOT := $(shell xcrun --sdk macosx --show-sdk-path) echo $(SDKROOT) GOOS="darwin" \ @@ -42,7 +42,7 @@ cross_compile_library_darwin_arm64: $(OUTPUT_DIR) CGO_ENABLED="1" \ go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross_compile_library_windows_amd64: $(OUTPUT_DIR) +cross-compile-library-windows-amd64: $(OUTPUT_DIR) GOOS="windows" \ GOARCH="amd64" \ CGO_ENABLED="1" \ @@ -50,14 +50,14 @@ cross_compile_library_windows_amd64: $(OUTPUT_DIR) CXX="x86_64-w64-mingw32-g++" \ go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross_compile_library_linux_amd64: $(OUTPUT_DIR) +cross-compile-library-linux-amd64: $(OUTPUT_DIR) GOOS="linux" \ GOARCH="amd64" \ CGO_ENABLED="1" \ CC="x86_64-linux-musl-gcc" \ go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross_compile_library_linux_arm64: $(OUTPUT_DIR) +cross-compile-library-linux-arm64: $(OUTPUT_DIR) GOOS="linux" \ GOARCH="arm64" \ CGO_ENABLED="1" \ From 18452eedd64ee8f4ef1ca482bc41ecdedbd7d299 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 15:53:28 -0300 Subject: [PATCH 101/176] fixed the order of execution for "make install-brew-and-node-deps" --- .github/workflows/build.yml | 6 +++--- .github/workflows/nightly.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8ad9fb81..75325b4ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,9 +51,6 @@ jobs: echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV echo $(go env GOPATH)/bin >> $GITHUB_PATH - - name: Install brew and node deps - if: runner.name != 'mac-mini-org-heart' - run: make install-brew-and-node-deps - name: Checkout uses: actions/checkout@v3 - uses: actions/cache@v3 @@ -63,6 +60,9 @@ jobs: key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.go-version }}- + - name: Install brew and node deps + if: runner.name != 'mac-mini-org-heart' + run: make install-brew-and-node-deps - name: Set env vars env: UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a31697e4f..282552d48 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -43,12 +43,12 @@ jobs: echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV echo $(go env GOPATH)/bin >> $GITHUB_PATH - - name: Install brew and node deps - run: make install-brew-and-node-deps - - name: Checkout uses: actions/checkout@v3 + - name: Install brew and node deps + run: make install-brew-and-node-deps + - name: Nightly mode env settings shell: bash run: | From 33b461901fb02c701fffb6af888238a734d9f223 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 16:16:41 -0300 Subject: [PATCH 102/176] makefiles/ci.mk fixed SDKROOT --- makefiles/ci.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefiles/ci.mk b/makefiles/ci.mk index 24ec06639..010855783 100644 --- a/makefiles/ci.mk +++ b/makefiles/ci.mk @@ -33,7 +33,7 @@ cross-compile-library-darwin-amd64: $(OUTPUT_DIR) go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver cross-compile-library-darwin-arm64: $(OUTPUT_DIR) - SDKROOT := $(shell xcrun --sdk macosx --show-sdk-path) + SDKROOT = $(shell xcrun --sdk macosx --show-sdk-path) echo $(SDKROOT) GOOS="darwin" \ CGO_CFLAGS="-mmacosx-version-min=11" \ From f26e9a78cece228d3707edead22918b9736e4dd0 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 16:26:02 -0300 Subject: [PATCH 103/176] makefiles/ci.mk fixed SDKROOT --- makefiles/ci.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefiles/ci.mk b/makefiles/ci.mk index 010855783..95788dc94 100644 --- a/makefiles/ci.mk +++ b/makefiles/ci.mk @@ -33,7 +33,7 @@ cross-compile-library-darwin-amd64: $(OUTPUT_DIR) go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver cross-compile-library-darwin-arm64: $(OUTPUT_DIR) - SDKROOT = $(shell xcrun --sdk macosx --show-sdk-path) + SDKROOT=$(shell xcrun --sdk macosx --show-sdk-path) echo $(SDKROOT) GOOS="darwin" \ CGO_CFLAGS="-mmacosx-version-min=11" \ From 88956cb41c98b65aa9cb970168304bb9989270ec Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Fri, 7 Feb 2025 16:48:54 -0300 Subject: [PATCH 104/176] fixed .release dir --- .github/workflows/nightly.yml | 3 +++ makefiles/ci.mk | 14 +++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 282552d48..e6ab977e4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -125,6 +125,9 @@ jobs: cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json + - name: create .release/ dir # need for "Pack *" steps + run: mkdir -p .release/ + - name: Pack server win run: | declare -a arr=("windows-amd64") diff --git a/makefiles/ci.mk b/makefiles/ci.mk index 95788dc94..ab90cad86 100644 --- a/makefiles/ci.mk +++ b/makefiles/ci.mk @@ -9,7 +9,6 @@ install-brew-and-node-deps: npm i -g node-gyp BUILD_TAGS ?= $(BUILD_TAG_NETWORK) nographviz nowatchdog nosigar nomutexdeadlockdetector -OUTPUT_DIR ?= .release cross-compile-library: echo $(FLAGS) @@ -20,10 +19,7 @@ cross-compile-library: cross-compile-library-linux-amd64 \ cross-compile-library-linux-arm64 -$(OUTPUT_DIR): - mkdir -p $(OUTPUT_DIR) - -cross-compile-library-darwin-amd64: $(OUTPUT_DIR) +cross-compile-library-darwin-amd64: echo $(SDKROOT) GOOS="darwin" \ CGO_CFLAGS="-mmacosx-version-min=11" \ @@ -32,7 +28,7 @@ cross-compile-library-darwin-amd64: $(OUTPUT_DIR) CGO_ENABLED="1" \ go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross-compile-library-darwin-arm64: $(OUTPUT_DIR) +cross-compile-library-darwin-arm64: SDKROOT=$(shell xcrun --sdk macosx --show-sdk-path) echo $(SDKROOT) GOOS="darwin" \ @@ -42,7 +38,7 @@ cross-compile-library-darwin-arm64: $(OUTPUT_DIR) CGO_ENABLED="1" \ go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross-compile-library-windows-amd64: $(OUTPUT_DIR) +cross-compile-library-windows-amd64: GOOS="windows" \ GOARCH="amd64" \ CGO_ENABLED="1" \ @@ -50,14 +46,14 @@ cross-compile-library-windows-amd64: $(OUTPUT_DIR) CXX="x86_64-w64-mingw32-g++" \ go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross-compile-library-linux-amd64: $(OUTPUT_DIR) +cross-compile-library-linux-amd64: GOOS="linux" \ GOARCH="amd64" \ CGO_ENABLED="1" \ CC="x86_64-linux-musl-gcc" \ go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver -cross-compile-library-linux-arm64: $(OUTPUT_DIR) +cross-compile-library-linux-arm64: GOOS="linux" \ GOARCH="arm64" \ CGO_ENABLED="1" \ From eb46e29ad18a638c1fc60a3da59f1c8375f38f5f Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Sat, 8 Feb 2025 00:08:40 -0300 Subject: [PATCH 105/176] .github/workflows/build.yml moved Cross-compile library in makefile --- .github/workflows/build.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 75325b4ea..b6bf3e52b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -99,16 +99,7 @@ jobs: which gomobile - name: Cross-compile library mac/win/linux run: | - echo $FLAGS - mkdir -p .release - echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="amd64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - export SDKROOT=$(xcrun --sdk macosx --show-sdk-path) - echo $SDKROOT - GOOS="darwin" CGO_CFLAGS="-mmacosx-version-min=11" MACOSX_DEPLOYMENT_TARGET=11.0 GOARCH="arm64" CGO_ENABLED="1" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector" -ldflags="$FLAGS" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="windows" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-w64-mingw32-gcc" CXX="x86_64-w64-mingw32-g++" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" CC="x86_64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - GOOS="linux" GOARCH="arm64" CGO_ENABLED="1" CC="aarch64-linux-musl-gcc" go build -tags="$BUILD_TAG_NETWORK nographviz nowatchdog nosigar nomutexdeadlockdetector noheic" -ldflags="$FLAGS -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + make cross-compile-library ls -lha . - name: run perf tests if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' From b28916010ad9d413dd797b4338072bc04ae86d3c Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Sat, 8 Feb 2025 00:14:03 -0300 Subject: [PATCH 106/176] .github/workflows/build.yml refactoring --- .github/workflows/build.yml | 74 +++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6bf3e52b..0ea6cea3f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,19 +40,23 @@ jobs: echo "Invalid runner" exit 1 fi + - name: Install Go if: runner.name != 'mac-mini-org-heart' uses: actions/setup-go@v1 with: go-version: 1.23.2 + - name: Setup GO run: | go version echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV echo $(go env GOPATH)/bin >> $GITHUB_PATH + - name: Checkout uses: actions/checkout@v3 + - uses: actions/cache@v3 with: path: | @@ -60,9 +64,11 @@ jobs: key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.go-version }}- + - name: Install brew and node deps if: runner.name != 'mac-mini-org-heart' run: make install-brew-and-node-deps + - name: Set env vars env: UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }} @@ -86,21 +92,26 @@ jobs: echo $(pwd)/deps >> $GITHUB_PATH echo "${GOBIN}" >> $GITHUB_PATH git config --global url."https://${{ secrets.ANYTYPE_PAT }}@github.com/".insteadOf "https://github.com/" + - name: Go mod download run: | go mod download + - name: install protoc run: | make setup-protoc + - name: setup go run: | make setup-go make setup-gomobile which gomobile + - name: Cross-compile library mac/win/linux run: | make cross-compile-library ls -lha . + - name: run perf tests if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' env: @@ -116,6 +127,7 @@ jobs: fi cd cmd/perftester/ CGO_ENABLED="1" go run main.go $RUN_COUNT + - name: Archive perf tests results if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' uses: actions/upload-artifact@v4 @@ -123,6 +135,7 @@ jobs: name: pprofs path: | *.pprof + - name: end run perf tests if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' env: @@ -132,6 +145,7 @@ jobs: echo "End running perf tests" gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} + - name: Make JS protos if: github.event_name == 'push' run: | @@ -141,6 +155,7 @@ jobs: cp pb/protos/*.proto ./protobuf/protos cp pb/protos/service/*.proto ./protobuf/protos cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + - name: Add system relations/types jsons run: | mkdir -p json/ @@ -148,50 +163,54 @@ jobs: cp pkg/lib/bundle/systemTypes.json ./json cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json + + - name: create .release/ dir # need for "Pack *" steps + run: mkdir -p .release/ + - name: Pack server win if: github.event_name == 'push' run: | declare -a arr=("windows-amd64") - for i in "${arr[@]}" - do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server.exe - zip -r js_${VERSION}_${OSARCH}.zip grpc-server.exe protobuf json - mv js_${VERSION}_${OSARCH}.zip .release/ + for i in "${arr[@]}"; do + OSARCH=${i%.*} + cp ./${i}* ./grpc-server.exe + zip -r js_${VERSION}_${OSARCH}.zip grpc-server.exe protobuf json + mv js_${VERSION}_${OSARCH}.zip .release/ done + - name: Pack server osx if: github.event_name == 'push' run: | declare -a arr=("darwin-amd64" "darwin-arm64") - for i in "${arr[@]}" - do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ + for i in "${arr[@]}"; do + OSARCH=${i%.*} + cp ./${i}* ./grpc-server + tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json + mv js_${VERSION}_${OSARCH}.tar.gz .release/ done + - name: Pack server unix amd64 if: github.event_name == 'push' run: | declare -a arr=("linux-amd64") - for i in "${arr[@]}" - do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ + for i in "${arr[@]}"; do + OSARCH=${i%.*} + cp ./${i}* ./grpc-server + tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json + mv js_${VERSION}_${OSARCH}.tar.gz .release/ done + - name: Pack server unix arm64 if: github.event_name == 'push' run: | declare -a arr=("linux-arm64") - for i in "${arr[@]}" - do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ + for i in "${arr[@]}"; do + OSARCH=${i%.*} + cp ./${i}* ./grpc-server + tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json + mv js_${VERSION}_${OSARCH}.tar.gz .release/ done + - name: Make swift protos run: | mkdir -p .release @@ -202,6 +221,7 @@ jobs: cp pb/protos/*.proto ./protobuf/protos cp pb/protos/service/*.proto ./protobuf/protos cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + - name: Add system relations/types jsons run: | mkdir -p json/ @@ -210,6 +230,7 @@ jobs: cp pkg/lib/bundle/systemTypes.json ./json cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json + - name: Compile ios lib env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -227,6 +248,7 @@ jobs: gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json gradle publish mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz + - name: Make java protos run: | make protos-java @@ -236,6 +258,7 @@ jobs: cp pb/protos/*.proto ./protobuf/protos cp pb/protos/service/*.proto ./protobuf/protos cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + - name: Add system relations/types jsons run: | mkdir -p json/ @@ -243,11 +266,13 @@ jobs: cp pkg/lib/bundle/systemTypes.json ./json cp pkg/lib/bundle/internalRelations.json ./json cp pkg/lib/bundle/internalTypes.json ./json + - name: Compile android lib run: | gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf json mv android_lib_${VERSION}.tar.gz .release/ + - name: Publish android lib to maven env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -256,6 +281,7 @@ jobs: MAVEN_ARTIFACT_NAME: 'lib.aar' run: | gradle publish + - name: Release if: github.event_name == 'push' env: From 50d34cc80805e4a09e4278788f7b40fd1f37b51b Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Sat, 8 Feb 2025 00:19:49 -0300 Subject: [PATCH 107/176] .github/workflows/build.yml updated actions/setup-go@v4 --- .github/workflows/build.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0ea6cea3f..3d47025e1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,9 +43,10 @@ jobs: - name: Install Go if: runner.name != 'mac-mini-org-heart' - uses: actions/setup-go@v1 + uses: actions/setup-go@v4 with: go-version: 1.23.2 + check-latest: true - name: Setup GO run: | @@ -57,14 +58,6 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - uses: actions/cache@v3 - with: - path: | - ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go-${{ matrix.go-version }}- - - name: Install brew and node deps if: runner.name != 'mac-mini-org-heart' run: make install-brew-and-node-deps From 934ab0bed752f5005fad88c6288983a987c31e60 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 10 Feb 2025 13:10:22 +0300 Subject: [PATCH 108/176] GO-5020 Inject resolvedLayout on HistoryShow --- core/history/history.go | 69 ++++++++++++++++++++++++++++------- core/history/history_test.go | 70 ++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 12 deletions(-) diff --git a/core/history/history.go b/core/history/history.go index 2270ddc3e..45d8b0563 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -18,7 +18,7 @@ import ( "github.com/zeebo/blake3" "github.com/anyproto/anytype-heart/core/block/cache" - smartblock2 "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/state" history2 "github.com/anyproto/anytype-heart/core/block/history" "github.com/anyproto/anytype-heart/core/block/object/idresolver" @@ -28,7 +28,7 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" - "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -92,13 +92,9 @@ func (h *history) Show(id domain.FullID, versionID string) (bs *model.ObjectView return } - s.SetDetailAndBundledRelation(bundle.RelationKeyId, domain.String(id.ObjectID)) - s.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String(id.SpaceID)) - typeId, err := space.GetTypeIdByKey(context.Background(), s.ObjectTypeKey()) - if err != nil { - return nil, nil, fmt.Errorf("get type id by key: %w", err) + if err = h.injectLocalDetails(s, id, space); err != nil { + return nil, nil, fmt.Errorf("failed to inject local details to state: %v", err) } - s.SetDetailAndBundledRelation(bundle.RelationKeyType, domain.String(typeId)) details, err := h.buildDetails(s, space) if err != nil { @@ -521,12 +517,12 @@ func (h *history) SetVersion(id domain.FullID, versionId string) (err error) { if err != nil { return } - return cache.Do(h.picker, id.ObjectID, func(sb smartblock2.SmartBlock) error { + return cache.Do(h.picker, id.ObjectID, func(sb smartblock.SmartBlock) error { return history2.ResetToVersion(sb, s) }) } -func (h *history) treeWithId(id domain.FullID, versionId string, includeBeforeId bool) (ht objecttree.HistoryTree, sbt smartblock.SmartBlockType, err error) { +func (h *history) treeWithId(id domain.FullID, versionId string, includeBeforeId bool) (ht objecttree.HistoryTree, sbt coresb.SmartBlockType, err error) { heads := h.retrieveHeads(versionId) spc, err := h.spaceService.Get(context.Background(), id.SpaceID) if err != nil { @@ -546,11 +542,13 @@ func (h *history) treeWithId(id domain.FullID, versionId string, includeBeforeId return } - sbt = smartblock.SmartBlockType(payload.SmartBlockType) + sbt = coresb.SmartBlockType(payload.SmartBlockType) return } -func (h *history) buildState(id domain.FullID, versionId string) (st *state.State, sbType smartblock.SmartBlockType, ver *pb.RpcHistoryVersion, err error) { +func (h *history) buildState(id domain.FullID, versionId string) ( + st *state.State, sbType coresb.SmartBlockType, ver *pb.RpcHistoryVersion, err error, +) { tree, sbType, err := h.treeWithId(id, versionId, true) if err != nil { return @@ -576,3 +574,50 @@ func (h *history) buildState(id domain.FullID, versionId string) (st *state.Stat } return } + +func (h *history) injectLocalDetails(s *state.State, id domain.FullID, space clientspace.Space) error { + s.SetDetailAndBundledRelation(bundle.RelationKeyId, domain.String(id.ObjectID)) + s.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String(id.SpaceID)) + typeId, err := space.GetTypeIdByKey(context.Background(), s.ObjectTypeKey()) + if err != nil { + return fmt.Errorf("get type id by key: %w", err) + } + s.SetDetailAndBundledRelation(bundle.RelationKeyType, domain.String(typeId)) + + rawValue := s.Details().Get(bundle.RelationKeyLayout) + if rawValue.Ok() { + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) + return nil + } + + typeObjectId := s.LocalDetails().GetString(bundle.RelationKeyType) + if typeObjectId == "" { + if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { + return nil + } + log.Errorf("failed to find id of object type. Falling back to basic layout") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) + return nil + } + + if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { + return nil + } + + records, err := h.objectStore.SpaceIndex(id.SpaceID).QueryByIds([]string{typeObjectId}) + if err != nil || len(records) != 1 { + log.Errorf("failed to query object %s: %v. Fallback to basic layout", typeObjectId, err) + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) + return nil + } + rawValue = records[0].Details.Get(bundle.RelationKeyRecommendedLayout) + + if !rawValue.Ok() { + log.Errorf("failed to get recommended layout from details of type. Fallback to basic layout") + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) + return nil + } + + s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, rawValue) + return nil +} diff --git a/core/history/history_test.go b/core/history/history_test.go index 8e6bdf1af..c3e2b6b1a 100644 --- a/core/history/history_test.go +++ b/core/history/history_test.go @@ -17,6 +17,7 @@ import ( "github.com/stretchr/testify/mock" "go.uber.org/mock/gomock" + "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/object/idresolver/mock_idresolver" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" @@ -1099,6 +1100,75 @@ func TestHistory_Versions(t *testing.T) { }) } +func TestHistory_injectLocalDetails(t *testing.T) { + spaceId := "cosmos" + t.Run("local details are injected to state", func(t *testing.T) { + // given + store := objectstore.NewStoreFixture(t) + store.AddObjects(t, spaceId, []objectstore.TestObject{{ + bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyRecommendedLayout: domain.Int64(int64(model.ObjectType_todo)), + }}) + space := mock_clientspace.NewMockSpace(t) + space.EXPECT().GetTypeIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.TypeKey) (string, error) { + return key.URL(), nil + }) + resolver := mock_idresolver.NewMockResolver(t) + h := &history{ + objectStore: store, + resolver: resolver, + } + id := domain.FullID{SpaceID: spaceId, ObjectID: "object"} + st := state.NewDoc(id.ObjectID, nil).NewState().SetObjectTypeKey(bundle.TypeKeyTask).SetDetails( + domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyLayout: domain.Int64(int64(model.ObjectType_todo)), + }), + ) + + // when + err := h.injectLocalDetails(st, id, space) + + // then + assert.NoError(t, err) + assert.NotNil(t, st.LocalDetails()) + assert.Equal(t, bundle.TypeKeyTask.URL(), st.LocalDetails().GetString(bundle.RelationKeyType)) + assert.Equal(t, spaceId, st.LocalDetails().GetString(bundle.RelationKeySpaceId)) + assert.Equal(t, int64(model.ObjectType_todo), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) + + t.Run("resolved layout should be retrieved from type", func(t *testing.T) { + // given + store := objectstore.NewStoreFixture(t) + store.AddObjects(t, spaceId, []objectstore.TestObject{{ + bundle.RelationKeyId: domain.String(bundle.TypeKeyProject.URL()), + bundle.RelationKeySpaceId: domain.String(spaceId), + bundle.RelationKeyRecommendedLayout: domain.Int64(int64(model.ObjectType_note)), + }}) + space := mock_clientspace.NewMockSpace(t) + space.EXPECT().GetTypeIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.TypeKey) (string, error) { + return key.URL(), nil + }) + resolver := mock_idresolver.NewMockResolver(t) + h := &history{ + objectStore: store, + resolver: resolver, + } + id := domain.FullID{SpaceID: spaceId, ObjectID: "object"} + st := state.NewDoc(id.ObjectID, nil).NewState().SetObjectTypeKey(bundle.TypeKeyProject) + + // when + err := h.injectLocalDetails(st, id, space) + + // then + assert.NoError(t, err) + assert.NotNil(t, st.LocalDetails()) + assert.Equal(t, bundle.TypeKeyProject.URL(), st.LocalDetails().GetString(bundle.RelationKeyType)) + assert.Equal(t, spaceId, st.LocalDetails().GetString(bundle.RelationKeySpaceId)) + assert.Equal(t, int64(model.ObjectType_note), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) +} + type historyFixture struct { *history space *mock_clientspace.MockSpace From 90268c03c5d5d1a9140826e9d580d727cc59db6d Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 10 Feb 2025 23:25:32 +0300 Subject: [PATCH 109/176] GO-5021 Set defaultTemplateId on template creation --- core/block/object/objectcreator/creator.go | 7 +++- .../object/objectcreator/creator_test.go | 4 ++ core/block/template/service.go | 37 ++++++++++++++++++- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index d18f03ff7..34499ffec 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -27,6 +27,7 @@ type ( templateService interface { CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) + SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error } bookmarkService interface { @@ -171,7 +172,11 @@ func (s *service) createTemplate( if err != nil { return } - return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, createState) + id, resultDetails, err = s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, createState) + if e := s.templateService.SetDefaultTemplateInType(ctx, target, id); e != nil { + log.Errorf("failed to set defaultTemplateId to type: %v", e) + } + return } func (s *service) createCommonObject( diff --git a/core/block/object/objectcreator/creator_test.go b/core/block/object/objectcreator/creator_test.go index c21faaa5e..55f0b0285 100644 --- a/core/block/object/objectcreator/creator_test.go +++ b/core/block/object/objectcreator/creator_test.go @@ -72,6 +72,10 @@ func (tts *testTemplateService) TemplateCloneInSpace(space clientspace.Space, id return "", nil } +func (tts *testTemplateService) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error { + return nil +} + func TestService_CreateObject(t *testing.T) { t.Run("template creation", func(t *testing.T) { // given diff --git a/core/block/template/service.go b/core/block/template/service.go index f69be39c5..f3cb45af0 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -11,6 +11,7 @@ import ( "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/block/cache" + "github.com/anyproto/anytype-heart/core/block/editor/basic" "github.com/anyproto/anytype-heart/core/block/editor/converter" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/state" @@ -59,6 +60,8 @@ type Service interface { TemplateExportAll(ctx context.Context, path string) (string, error) + SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error + app.Component } @@ -242,10 +245,25 @@ func (s *service) TemplateCreateFromObject(ctx context.Context, id string) (temp return "", fmt.Errorf("resolve spaceId: %w", err) } - templateId, _, err = s.creator.CreateSmartBlockFromState(ctx, spaceId, objectTypeKeys, st) + spc, err := s.spaceService.Get(ctx, spaceId) + if err != nil { + return "", fmt.Errorf("get space: %w", err) + } + + templateId, _, err = s.creator.CreateSmartBlockFromStateInSpace(ctx, spc, objectTypeKeys, st) if err != nil { return } + + typeId, err2 := spc.GetTypeIdByKey(ctx, objectTypeKeys[0]) + if err2 != nil { + log.Errorf("failed to get typeId: %v", err2) + return + } + + if err2 = s.SetDefaultTemplateInType(ctx, typeId, templateId); err != nil { + log.Errorf("failed to set defaultTemplateId to type: %v", err2) + } return } @@ -338,6 +356,23 @@ func (s *service) TemplateExportAll(ctx context.Context, path string) (string, e return path, err } +// SetDefaultTemplateInType sets defaultTemplateId to type object in case it is empty +func (s *service) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error { + return cache.DoContext(s.picker, ctx, typeId, func(sb smartblock.SmartBlock) error { + if sb.Details().GetString(bundle.RelationKeyDefaultTemplateId) != "" { + return nil + } + ds := sb.(basic.DetailsSettable) + if ds == nil { + return fmt.Errorf("cannot set defaultTemplateId as type object does not support DetailsSettable interface") + } + return ds.SetDetails(nil, []domain.Detail{{ + Key: bundle.RelationKeyDefaultTemplateId, + Value: domain.String(templateId), + }}, false) + }) +} + func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout, details *domain.Details) (st *state.State) { st = state.NewDoc(BlankTemplateId, nil).NewState() template.InitTemplate(st, template.WithEmpty, From 11dac394694f4c1a638f6a23089b5c6e896b6b7b Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 11 Feb 2025 00:46:30 +0300 Subject: [PATCH 110/176] GO-5020 Fix lint --- core/history/history.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/history/history.go b/core/history/history.go index 45d8b0563..d35ed8951 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -93,7 +93,7 @@ func (h *history) Show(id domain.FullID, versionID string) (bs *model.ObjectView } if err = h.injectLocalDetails(s, id, space); err != nil { - return nil, nil, fmt.Errorf("failed to inject local details to state: %v", err) + return nil, nil, fmt.Errorf("failed to inject local details to state: %w", err) } details, err := h.buildDetails(s, space) @@ -542,6 +542,7 @@ func (h *history) treeWithId(id domain.FullID, versionId string, includeBeforeId return } + // nolint:gosec sbt = coresb.SmartBlockType(payload.SmartBlockType) return } From 84531e9fe7370b7f87e706e5634b06f54c80770a Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 11 Feb 2025 17:24:19 +0300 Subject: [PATCH 111/176] GO-5021 Reset defaultTemplateId on template delete --- core/block/delete.go | 78 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 68 insertions(+), 10 deletions(-) diff --git a/core/block/delete.go b/core/block/delete.go index cc0526914..b0e74d9fb 100644 --- a/core/block/delete.go +++ b/core/block/delete.go @@ -40,7 +40,7 @@ func (s *Service) DeleteObjectByFullID(id domain.FullID) error { coresb.SmartBlockTypeRelation, coresb.SmartBlockTypeRelationOption, coresb.SmartBlockTypeTemplate: - err = s.deleteDerivedObject(id, spc) + err = s.deleteDerivedObject(id, sbType, spc) case coresb.SmartBlockTypeSubObject: return fmt.Errorf("subobjects deprecated") case coresb.SmartBlockTypeFileObject: @@ -64,16 +64,16 @@ func (s *Service) DeleteObjectByFullID(id domain.FullID) error { return nil } -func (s *Service) deleteDerivedObject(id domain.FullID, spc clientspace.Space) (err error) { - var ( - relationKey string - sbType coresb.SmartBlockType - ) +func (s *Service) deleteDerivedObject(id domain.FullID, sbType coresb.SmartBlockType, spc clientspace.Space) (err error) { + var relationKey, targetTypeId string err = spc.Do(id.ObjectID, func(b smartblock.SmartBlock) error { st := b.NewState() st.SetDetailAndBundledRelation(bundle.RelationKeyIsUninstalled, domain.Bool(true)) - if sbType == coresb.SmartBlockTypeRelation { + switch sbType { + case coresb.SmartBlockTypeRelation: relationKey = st.Details().GetString(bundle.RelationKeyRelationKey) + case coresb.SmartBlockTypeTemplate: + targetTypeId = st.Details().GetString(bundle.RelationKeyTargetObjectType) } return b.Apply(st) }) @@ -84,11 +84,15 @@ func (s *Service) deleteDerivedObject(id domain.FullID, spc clientspace.Space) ( if err != nil { return fmt.Errorf("on delete: %w", err) } - if sbType == coresb.SmartBlockTypeRelation { - err := s.deleteRelationOptions(id.SpaceID, relationKey) - if err != nil { + switch sbType { + case coresb.SmartBlockTypeRelation: + if err = s.deleteRelationOptions(id.SpaceID, relationKey); err != nil { return fmt.Errorf("failed to delete relation options of deleted relation: %w", err) } + case coresb.SmartBlockTypeTemplate: + if err = s.resetDefaultTemplateId(id, targetTypeId, spc); err != nil { + return fmt.Errorf("failed to reset default template id: %w", err) + } } return nil } @@ -120,6 +124,60 @@ func (s *Service) deleteRelationOptions(spaceId string, relationKey string) erro return nil } +func (s *Service) resetDefaultTemplateId(templateId domain.FullID, typeId string, spc clientspace.Space) error { + spaceId := templateId.SpaceID + records, err := s.objectStore.SpaceIndex(spaceId).QueryByIds([]string{typeId}) + if err != nil { + return fmt.Errorf("failed to query type object: %w", err) + } + if len(records) != 1 { + return fmt.Errorf("failed to query type object: 1 record expected") + } + if records[0].Details.GetString(bundle.RelationKeyDefaultTemplateId) != templateId.ObjectID { + // template that is about to be deleted was not set as default for type, so we do nothing + return nil + } + + ctx := context.Background() + templateTypeId, err := spc.GetTypeIdByKey(ctx, bundle.TypeKeyTemplate) + if err != nil { + return fmt.Errorf("failed to derive template type id from space: %w", err) + } + + if records, err = s.objectStore.SpaceIndex(spaceId).Query(database.Query{ + Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(templateTypeId), + }, + { + RelationKey: bundle.RelationKeyTargetObjectType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(typeId), + }, + }, + Sorts: []database.SortRequest{{ + RelationKey: bundle.RelationKeyLastModifiedDate, + Type: model.BlockContentDataviewSort_Desc, + }}, + }); err != nil { + return fmt.Errorf("failed to query templates: %w", err) + } + + // in case no templates were found we explicitly set empty default template id to type object + newTemplateId := "" + if len(records) != 0 { + newTemplateId = records[0].Details.GetString(bundle.RelationKeyId) + } + + return spc.Do(typeId, func(sb smartblock.SmartBlock) error { + st := sb.NewState() + st.SetDetail(bundle.RelationKeyDefaultTemplateId, domain.String(newTemplateId)) + return sb.Apply(st) + }) +} + func (s *Service) DeleteObject(objectId string) (err error) { spaceId, err := s.resolver.ResolveSpaceID(objectId) if err != nil { From 74205d6a471cbb0cd5f4f865754607810903c2da Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 11 Feb 2025 19:43:41 +0300 Subject: [PATCH 112/176] Include hidden and file relations when calculating conflicts --- core/block/detailservice/relations.go | 9 ++++++--- core/block/detailservice/relations_test.go | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 48b7341e6..4072f1514 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -103,9 +103,12 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin return nil, fmt.Errorf("failed to query object type, expected 1 record") } - recommendedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations) - recommendedFeaturedRelations := records[0].Details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations) - allRecommendedRelations := lo.Uniq(append(recommendedRelations, recommendedFeaturedRelations...)) + allRecommendedRelations := lo.Uniq(slices.Concat( + records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations), + records[0].Details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations), + records[0].Details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations), + records[0].Details.GetStringList(bundle.RelationKeyRecommendedFileRelations), + )) allRelationKeys := make([]string, 0, len(allRecommendedRelations)) err = s.store.SpaceIndex(spaceId).QueryIterate(database.Query{Filters: []database.FilterRequest{ diff --git a/core/block/detailservice/relations_test.go b/core/block/detailservice/relations_test.go index 9502b1e25..e834365f3 100644 --- a/core/block/detailservice/relations_test.go +++ b/core/block/detailservice/relations_test.go @@ -322,6 +322,8 @@ func TestService_ObjectTypeListConflictingRelations(t *testing.T) { bundle.RelationKeyRecommendedRelations: domain.StringList([]string{ bundle.RelationKeyAssignee.URL(), bundle.RelationKeyDone.URL(), + }), + bundle.RelationKeyRecommendedHiddenRelations: domain.StringList([]string{ bundle.RelationKeyCreatedDate.URL(), }), }, From a806346f41b27b0cdc152e1cd321c1287f76f64a Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 11 Feb 2025 19:52:57 +0300 Subject: [PATCH 113/176] Optimize slice usage --- core/block/detailservice/relations.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/block/detailservice/relations.go b/core/block/detailservice/relations.go index 4072f1514..07ec0f8b1 100644 --- a/core/block/detailservice/relations.go +++ b/core/block/detailservice/relations.go @@ -103,11 +103,12 @@ func (s *service) ObjectTypeListConflictingRelations(spaceId, typeObjectId strin return nil, fmt.Errorf("failed to query object type, expected 1 record") } + details := records[0].Details allRecommendedRelations := lo.Uniq(slices.Concat( - records[0].Details.GetStringList(bundle.RelationKeyRecommendedRelations), - records[0].Details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations), - records[0].Details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations), - records[0].Details.GetStringList(bundle.RelationKeyRecommendedFileRelations), + details.GetStringList(bundle.RelationKeyRecommendedRelations), + details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations), + details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations), + details.GetStringList(bundle.RelationKeyRecommendedFileRelations), )) allRelationKeys := make([]string, 0, len(allRecommendedRelations)) From bea6c31f68e459c043d150d722c26ff7ff469f08 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 11 Feb 2025 20:47:19 +0300 Subject: [PATCH 114/176] Fix unit test --- core/indexer/reindex_test.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/core/indexer/reindex_test.go b/core/indexer/reindex_test.go index 31de266f5..f94d2ccb6 100644 --- a/core/indexer/reindex_test.go +++ b/core/indexer/reindex_test.go @@ -153,31 +153,31 @@ func TestIndexer_ReindexSpace_RemoveParticipants(t *testing.T) { fx.objectStore.AddObjects(t, spaceId1, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("_part1"), - bundle.RelationKeyLayout: domain.Int64(model.ObjectType_participant), - bundle.RelationKeySpaceId: domain.String(spaceId1), + bundle.RelationKeyId: domain.String("_part1"), + bundle.RelationKeyResolvedLayout: domain.Int64(model.ObjectType_participant), + bundle.RelationKeySpaceId: domain.String(spaceId1), }, { - bundle.RelationKeyId: domain.String("rand1"), - bundle.RelationKeyLayout: domain.Int64(model.SmartBlockType_Page), - bundle.RelationKeySpaceId: domain.String(spaceId1), + bundle.RelationKeyId: domain.String("rand1"), + bundle.RelationKeyResolvedLayout: domain.Int64(model.SmartBlockType_Page), + bundle.RelationKeySpaceId: domain.String(spaceId1), }, }) fx.objectStore.AddObjects(t, spaceId2, []objectstore.TestObject{ { - bundle.RelationKeyId: domain.String("_part2"), - bundle.RelationKeyLayout: domain.Int64(model.ObjectType_participant), - bundle.RelationKeySpaceId: domain.String(spaceId2), + bundle.RelationKeyId: domain.String("_part2"), + bundle.RelationKeyResolvedLayout: domain.Int64(model.ObjectType_participant), + bundle.RelationKeySpaceId: domain.String(spaceId2), }, { - bundle.RelationKeyId: domain.String("_part21"), - bundle.RelationKeyLayout: domain.Int64(model.ObjectType_participant), - bundle.RelationKeySpaceId: domain.String(spaceId2), + bundle.RelationKeyId: domain.String("_part21"), + bundle.RelationKeyResolvedLayout: domain.Int64(model.ObjectType_participant), + bundle.RelationKeySpaceId: domain.String(spaceId2), }, { - bundle.RelationKeyId: domain.String("rand2"), - bundle.RelationKeyLayout: domain.Int64(model.SmartBlockType_Page), - bundle.RelationKeySpaceId: domain.String(spaceId1), + bundle.RelationKeyId: domain.String("rand2"), + bundle.RelationKeyResolvedLayout: domain.Int64(model.SmartBlockType_Page), + bundle.RelationKeySpaceId: domain.String(spaceId1), }, }) From f7d842755aeb732b6ef3c330ec77e48bf7d3b6d9 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 12 Feb 2025 12:33:27 +0300 Subject: [PATCH 115/176] GO-5021 Resolve valid template on obj create --- core/block/template/service.go | 61 +++++++++++++++++++++++++++++ core/block/template/service_test.go | 18 ++++----- 2 files changed, 70 insertions(+), 9 deletions(-) diff --git a/core/block/template/service.go b/core/block/template/service.go index f3cb45af0..9fd08de6f 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -100,6 +100,11 @@ func (s *service) CreateTemplateStateWithDetails( templateId string, details *domain.Details, ) (targetState *state.State, err error) { + templateId, err = s.resolveValidTemplateId(templateId, details) + if err != nil { + return nil, fmt.Errorf("failed to resolve valid template id: %w", err) + } + if templateId == BlankTemplateId || templateId == "" { layout := details.GetInt64(bundle.RelationKeyResolvedLayout) // nolint:gosec @@ -115,6 +120,62 @@ func (s *service) CreateTemplateStateWithDetails( return targetState, nil } +// resolveValidTemplateId tries to resolve valid template for +func (s *service) resolveValidTemplateId(templateId string, details *domain.Details) (string, error) { + typeId := details.GetString(bundle.RelationKeyType) + spaceId := details.GetString(bundle.RelationKeySpaceId) + ctx := context.Background() + + spc, err := s.spaceService.Get(ctx, spaceId) + if err != nil { + return "", fmt.Errorf("failed to get space: %v", err) + } + templateTypeId, err := spc.GetTypeIdByKey(ctx, bundle.TypeKeyTemplate) + if err != nil { + return "", fmt.Errorf("failed to get template type id from space: %v", err) + } + + records, err := s.store.SpaceIndex(spaceId).Query(database.Query{ + Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(templateTypeId), + }, + { + RelationKey: bundle.RelationKeyTargetObjectType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(typeId), + }, + }, + Sorts: []database.SortRequest{{ + RelationKey: bundle.RelationKeyLastModifiedDate, + Type: model.BlockContentDataviewSort_Desc, + }}, + }) + + if err != nil { + return "", fmt.Errorf("failed to query templates: %v", err) + } + + if len(records) == 0 { + // if no valid templates presented, we shell create new object with blank template + return "", nil + } + + if templateId == "" { + return records[0].Details.GetString(bundle.RelationKeyId), nil + } + + for _, record := range records { + if record.Details.GetString(bundle.RelationKeyId) == templateId { + return templateId, nil + } + } + + return records[0].Details.GetString(bundle.RelationKeyId), nil +} + // CreateTemplateStateFromSmartBlock duplicates the logic of CreateTemplateStateWithDetails but does not take the lock on smartBlock. // if building of state fails, state of blank template is returned func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { diff --git a/core/block/template/service_test.go b/core/block/template/service_test.go index 2c104a636..844f87991 100644 --- a/core/block/template/service_test.go +++ b/core/block/template/service_test.go @@ -25,7 +25,7 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - mock_space "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" + "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" "github.com/anyproto/anytype-heart/util/pbtypes" ) @@ -53,7 +53,7 @@ func (t *testPicker) Init(_ *app.App) error { return nil } func (t *testPicker) Name() string { return "" } -func NewTemplateTest(templateName, typeKey string) smartblock.SmartBlock { +func newTemplateTest(templateName, typeKey string) smartblock.SmartBlock { sb := smarttest.New(templateName) details := []domain.Detail{ { @@ -112,7 +112,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { t.Run("empty page name", func(t *testing.T) { // given - tmpl := NewTemplateTest(templateName, "") + tmpl := newTemplateTest(templateName, "") s := service{picker: &testPicker{sb: tmpl}} // when @@ -132,7 +132,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { t.Run(fmt.Sprintf("custom page name and description - "+ "when template is %s and target detail is %s", templateName, addedDetail), func(t *testing.T) { // given - tmpl := NewTemplateTest(templateName, "") + tmpl := newTemplateTest(templateName, "") s := service{picker: &testPicker{sb: tmpl}, converter: converter.NewLayoutConverter()} details := domain.NewDetails() details.Set(bundle.RelationKeyName, domain.String(addedDetail)) @@ -158,7 +158,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { } { t.Run("create blank template in case "+testCase[0], func(t *testing.T) { // given - tmpl := NewTemplateTest(testCase[1], "") + tmpl := newTemplateTest(testCase[1], "") s := service{picker: &testPicker{sb: tmpl}, converter: converter.NewLayoutConverter()} // when @@ -174,7 +174,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { t.Run("requested smartblock is not a template", func(t *testing.T) { // given - tmpl := NewTemplateTest(templateName, "") + tmpl := newTemplateTest(templateName, "") tmpl.(*smarttest.SmartTest).Doc.(*state.State).SetObjectTypeKey(bundle.TypeKeyBook) s := service{picker: &testPicker{}} @@ -187,7 +187,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { t.Run("template typeKey is removed", func(t *testing.T) { // given - tmpl := NewTemplateTest(templateName, bundle.TypeKeyGoal.String()) + tmpl := newTemplateTest(templateName, bundle.TypeKeyGoal.String()) s := service{picker: &testPicker{sb: tmpl}} // when @@ -263,7 +263,7 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { t.Run("create state from template smartblock", func(t *testing.T) { // given - tmpl := NewTemplateTest("template", bundle.TypeKeyProject.String()) + tmpl := newTemplateTest("template", bundle.TypeKeyProject.String()) s := service{} // when @@ -380,7 +380,7 @@ func TestBuildTemplateStateFromObject(t *testing.T) { obj.SetObjectTypes([]domain.TypeKey{bundle.TypeKeyNote}) - sp := mock_space.NewMockSpace(t) + sp := mock_clientspace.NewMockSpace(t) sp.EXPECT().GetTypeIdByKey(mock.Anything, mock.Anything).Times(1).Return(bundle.TypeKeyNote.String(), nil) obj.SetSpace(sp) From 3afffb425467dd0b57a4dcb1dd76f3ed1d3fcf78 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 12 Feb 2025 13:41:43 +0300 Subject: [PATCH 116/176] GO-5021 Fix tests --- core/block/bookmark/bookmark_service.go | 4 +- core/block/bookmark/bookmark_service_test.go | 2 +- core/block/editor/basic/extract_objects.go | 4 +- .../editor/basic/extract_objects_test.go | 2 +- core/block/object/objectcreator/creator.go | 6 +- .../object/objectcreator/creator_test.go | 2 +- core/block/service.go | 2 +- core/block/template/service.go | 32 ++-- core/block/template/service_test.go | 150 +++++++++++++++++- 9 files changed, 173 insertions(+), 31 deletions(-) diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index 7ff70be61..568118c2d 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -56,7 +56,7 @@ type ( } templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) + CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) } ) @@ -160,7 +160,7 @@ func (s *service) CreateBookmarkObject( objectDetails = rec.Details } else { details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_bookmark)) - creationState, err := s.templateService.CreateTemplateStateWithDetails("", details) + creationState, err := s.templateService.CreateTemplateStateWithDetails("", details, false) if err != nil { log.Errorf("failed to build state for bookmark: %v", err) } diff --git a/core/block/bookmark/bookmark_service_test.go b/core/block/bookmark/bookmark_service_test.go index 718ef7649..1be3f3ce4 100644 --- a/core/block/bookmark/bookmark_service_test.go +++ b/core/block/bookmark/bookmark_service_test.go @@ -238,7 +238,7 @@ type templateServiceMock struct { t *testing.T } -func (m *templateServiceMock) CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) { +func (m *templateServiceMock) CreateTemplateStateWithDetails(templateId string, details *domain.Details, _ bool) (st *state.State, err error) { assert.Empty(m.t, templateId) assert.Equal(m.t, int64(model.ObjectType_bookmark), details.GetInt64(bundle.RelationKeyResolvedLayout)) return state.NewDoc("", nil).NewState(), nil diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 25f3c6349..39f504d1a 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -22,7 +22,7 @@ type ObjectCreator interface { } type TemplateStateCreator interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details) (*state.State, error) + CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State } @@ -86,7 +86,7 @@ func (bs *basic) prepareObjectState( return creator.CreateTemplateStateFromSmartBlock(bs, details), nil } - return creator.CreateTemplateStateWithDetails(req.TemplateId, details) + return creator.CreateTemplateStateWithDetails(req.TemplateId, details, true) } func (bs *basic) prepareTargetObjectDetails( diff --git a/core/block/editor/basic/extract_objects_test.go b/core/block/editor/basic/extract_objects_test.go index 21216aac8..1dc48e6ca 100644 --- a/core/block/editor/basic/extract_objects_test.go +++ b/core/block/editor/basic/extract_objects_test.go @@ -52,7 +52,7 @@ func (tts testTemplateService) AddTemplate(id string, st *state.State) { tts.templates[id] = st } -func (tts testTemplateService) CreateTemplateStateWithDetails(id string, details *domain.Details) (st *state.State, err error) { +func (tts testTemplateService) CreateTemplateStateWithDetails(id string, details *domain.Details, _ bool) (st *state.State, err error) { if id == "" { st = state.NewDoc("", nil).NewState() template.InitTemplate(st, template.WithEmpty, diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 34499ffec..2a968bcf7 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -25,7 +25,7 @@ import ( type ( templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) + CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error } @@ -168,7 +168,7 @@ func (s *service) createTemplate( details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) details.Set(bundle.RelationKeyType, domain.String(typeId)) - createState, err := s.templateService.CreateTemplateStateWithDetails("", details) + createState, err := s.templateService.CreateTemplateStateWithDetails("", details, false) if err != nil { return } @@ -197,7 +197,7 @@ func (s *service) createCommonObject( details.Set(bundle.RelationKeyType, domain.String(typeId)) details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - createState, err := s.templateService.CreateTemplateStateWithDetails(req.TemplateId, details) + createState, err := s.templateService.CreateTemplateStateWithDetails(req.TemplateId, details, true) if err != nil { return } diff --git a/core/block/object/objectcreator/creator_test.go b/core/block/object/objectcreator/creator_test.go index 55f0b0285..0b53da418 100644 --- a/core/block/object/objectcreator/creator_test.go +++ b/core/block/object/objectcreator/creator_test.go @@ -57,7 +57,7 @@ type testTemplateService struct { templates map[string]*state.State } -func (tts *testTemplateService) CreateTemplateStateWithDetails(templateId string, details *domain.Details) (*state.State, error) { +func (tts *testTemplateService) CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) { if tts.templates != nil { if st, found := tts.templates[templateId]; found { return st, nil diff --git a/core/block/service.go b/core/block/service.go index c6f8df027..ba30905c0 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -113,7 +113,7 @@ type builtinObjects interface { } type templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details) (*state.State, error) + CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State } diff --git a/core/block/template/service.go b/core/block/template/service.go index 9fd08de6f..7da33edcd 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -50,7 +50,7 @@ var ( ) type Service interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details) (st *state.State, err error) + CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State ObjectApplyTemplate(contextId string, templateId string) error TemplateCreateFromObject(ctx context.Context, id string) (templateId string, err error) @@ -95,21 +95,25 @@ func (s *service) Init(a *app.App) error { } // CreateTemplateStateWithDetails creates clone of template object state with empty localDetails and updated objectTypes. -// Blank template is created in case template object is deleted or blank/empty templateIв is provided +// If withTemplateValidation=true, templateId is queried in store. If template is empty or not found, last edited template is taken. +// Blank template is created in case template object is deleted or blank/empty templateId is provided func (s *service) CreateTemplateStateWithDetails( templateId string, details *domain.Details, + withTemplateValidation bool, ) (targetState *state.State, err error) { - templateId, err = s.resolveValidTemplateId(templateId, details) - if err != nil { - return nil, fmt.Errorf("failed to resolve valid template id: %w", err) + if withTemplateValidation { + templateId, err = s.resolveValidTemplateId(templateId, details) + if err != nil { + return nil, fmt.Errorf("failed to resolve valid template id: %w", err) + } } - - if templateId == BlankTemplateId || templateId == "" { + switch templateId { + case "", BlankTemplateId: layout := details.GetInt64(bundle.RelationKeyResolvedLayout) // nolint:gosec targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout), details) - } else { + default: targetState, err = s.createCustomTemplateState(templateId) if err != nil { return @@ -120,11 +124,12 @@ func (s *service) CreateTemplateStateWithDetails( return targetState, nil } -// resolveValidTemplateId tries to resolve valid template for func (s *service) resolveValidTemplateId(templateId string, details *domain.Details) (string, error) { - typeId := details.GetString(bundle.RelationKeyType) - spaceId := details.GetString(bundle.RelationKeySpaceId) - ctx := context.Background() + var ( + typeId = details.GetString(bundle.RelationKeyType) + spaceId = details.GetString(bundle.RelationKeySpaceId) + ctx = context.Background() + ) spc, err := s.spaceService.Get(ctx, spaceId) if err != nil { @@ -173,6 +178,7 @@ func (s *service) resolveValidTemplateId(templateId string, details *domain.Deta } } + // if requested templateId was not found in store, we should use last modified template return records[0].Details.GetString(bundle.RelationKeyId), nil } @@ -264,7 +270,7 @@ func (s *service) buildState(sb smartblock.SmartBlock) (st *state.State, err err func (s *service) ObjectApplyTemplate(contextId, templateId string) error { return cache.Do(s.picker, contextId, func(b smartblock.SmartBlock) error { orig := b.NewState().ParentState() - ts, err := s.CreateTemplateStateWithDetails(templateId, orig.Details()) + ts, err := s.CreateTemplateStateWithDetails(templateId, orig.Details(), false) if err != nil { return err } diff --git a/core/block/template/service_test.go b/core/block/template/service_test.go index 844f87991..3f53d87b6 100644 --- a/core/block/template/service_test.go +++ b/core/block/template/service_test.go @@ -24,8 +24,10 @@ import ( "github.com/anyproto/anytype-heart/core/block/simple/text" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" + "github.com/anyproto/anytype-heart/space/mock_space" "github.com/anyproto/anytype-heart/util/pbtypes" ) @@ -116,7 +118,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil) + st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) // then assert.NoError(t, err) @@ -139,7 +141,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { details.Set(bundle.RelationKeyDescription, domain.String(addedDetail)) // when - st, err := s.CreateTemplateStateWithDetails(templateName, details) + st, err := s.CreateTemplateStateWithDetails(templateName, details, false) // then assert.NoError(t, err) @@ -162,7 +164,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}, converter: converter.NewLayoutConverter()} // when - st, err := s.CreateTemplateStateWithDetails(testCase[1], nil) + st, err := s.CreateTemplateStateWithDetails(testCase[1], nil, false) // then assert.NoError(t, err) @@ -179,7 +181,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{}} // when - _, err := s.CreateTemplateStateWithDetails(templateName, nil) + _, err := s.CreateTemplateStateWithDetails(templateName, nil, false) // then assert.Error(t, err) @@ -191,7 +193,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil) + st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) // then assert.NoError(t, err) @@ -213,7 +215,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(layout))) // when - st, err := s.CreateTemplateStateWithDetails(BlankTemplateId, details) + st, err := s.CreateTemplateStateWithDetails(BlankTemplateId, details, false) // then assert.NoError(t, err) @@ -235,7 +237,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil) + st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) // then assert.NoError(t, err) @@ -275,6 +277,140 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { }) } +func TestService_resolveValidTemplateId(t *testing.T) { + var ( + spaceId = "cosmos" + otherSpaceId = "other" + templateId1 = "template1" + templateId2 = "template2" + templateId3 = "template3" + now = time.Now().Unix() + ) + + store := objectstore.NewStoreFixture(t) + store.AddObjects(t, spaceId, []objectstore.TestObject{ + { + bundle.RelationKeyId: domain.String(templateId1), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate.URL()), + bundle.RelationKeyTargetObjectType: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyLastModifiedDate: domain.Int64(now), + }, + { + bundle.RelationKeyId: domain.String(templateId2), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate.URL()), + bundle.RelationKeyTargetObjectType: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyLastModifiedDate: domain.Int64(now - 60), + }, + { + bundle.RelationKeyId: domain.String(templateId3), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTemplate.URL()), + bundle.RelationKeyTargetObjectType: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyLastModifiedDate: domain.Int64(now - 120), + bundle.RelationKeyIsDeleted: domain.Bool(true), + }, + }) + + spaceService := mock_space.NewMockService(t) + spc := mock_clientspace.NewMockSpace(t) + spaceService.EXPECT().Get(mock.Anything, mock.Anything).Return(spc, nil) + spc.EXPECT().GetTypeIdByKey(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.TypeKey) (string, error) { + return key.URL(), nil + }) + + s := &service{ + store: store, + spaceService: spaceService, + } + + for _, tc := range []struct { + name string + spaceId string + requestedTemplateId string + expectedTemplateId string + }{ + {"requested template is valid", spaceId, templateId2, templateId2}, + {"requested template is invalid", spaceId, "invalid", templateId1}, + {"requested template is deleted", spaceId, templateId3, templateId1}, + {"requested template is empty", spaceId, "", templateId1}, + {"no valid template exists", otherSpaceId, "templateId", ""}, + } { + t.Run(tc.name, func(t *testing.T) { + // given + details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeySpaceId: domain.String(tc.spaceId), + bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + }) + + // when + templateId, err := s.resolveValidTemplateId(tc.requestedTemplateId, details) + + // then + assert.NoError(t, err) + assert.Equal(t, tc.expectedTemplateId, templateId) + }) + } + + // t.Run("requested template is valid", func(t *testing.T) { + // // given + // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + // bundle.RelationKeySpaceId: domain.String(spaceId), + // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + // }) + // + // // when + // templateId, err := s.resolveValidTemplateId(templateId2, details) + // + // // then + // assert.NoError(t, err) + // assert.Equal(t, templateId2, templateId) + // }) + // + // t.Run("requested template is invalid", func(t *testing.T) { + // // given + // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + // bundle.RelationKeySpaceId: domain.String(spaceId), + // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + // }) + // + // // when + // templateId, err := s.resolveValidTemplateId("invalid", details) + // + // // then + // assert.NoError(t, err) + // assert.Equal(t, templateId1, templateId) + // }) + // + // t.Run("requested template is empty", func(t *testing.T) { + // // given + // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + // bundle.RelationKeySpaceId: domain.String(spaceId), + // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + // }) + // + // // when + // templateId, err := s.resolveValidTemplateId("", details) + // + // // then + // assert.NoError(t, err) + // assert.Equal(t, templateId1, templateId) + // }) + // + // t.Run("no valid template exists", func(t *testing.T) { + // // given + // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + // bundle.RelationKeySpaceId: domain.String(otherSpaceId), + // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), + // }) + // + // // when + // templateId, err := s.resolveValidTemplateId("template1", details) + // + // // then + // assert.NoError(t, err) + // assert.Empty(t, templateId) + // }) +} + func assertLayoutBlocks(t *testing.T, st *state.State, layout model.ObjectTypeLayout) { switch layout { case model.ObjectType_bookmark: From f91cfd80a3674ecf8e50ace4f44446baedbc41f8 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 12 Feb 2025 14:10:57 +0300 Subject: [PATCH 117/176] GO-5021 Fix lint --- core/block/template/service.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/block/template/service.go b/core/block/template/service.go index 7da33edcd..1069628f2 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -133,11 +133,11 @@ func (s *service) resolveValidTemplateId(templateId string, details *domain.Deta spc, err := s.spaceService.Get(ctx, spaceId) if err != nil { - return "", fmt.Errorf("failed to get space: %v", err) + return "", fmt.Errorf("failed to get space: %w", err) } templateTypeId, err := spc.GetTypeIdByKey(ctx, bundle.TypeKeyTemplate) if err != nil { - return "", fmt.Errorf("failed to get template type id from space: %v", err) + return "", fmt.Errorf("failed to get template type id from space: %w", err) } records, err := s.store.SpaceIndex(spaceId).Query(database.Query{ @@ -160,7 +160,7 @@ func (s *service) resolveValidTemplateId(templateId string, details *domain.Deta }) if err != nil { - return "", fmt.Errorf("failed to query templates: %v", err) + return "", fmt.Errorf("failed to query templates: %w", err) } if len(records) == 0 { From 80402c8d62b60eeb2727e6dd8e0980c378297871 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 13 Feb 2025 22:24:23 +0300 Subject: [PATCH 118/176] GO-4941 Support bookmark defailt template WIP --- core/block/bookmark/bookmark_service.go | 28 +- .../bookmark_importer_decorator.go | 4 +- core/block/editor.go | 2 +- core/block/editor/basic/basic.go | 2 +- core/block/editor/basic/extract_objects.go | 40 +- core/block/editor/bookmark/bookmark.go | 36 +- core/block/object/objectcreator/creator.go | 28 +- core/block/service.go | 6 +- core/block/template/service.go | 47 +- core/create.go | 1 + core/domain/id.go | 4 + docs/proto.md | 3 + pb/commands.pb.go | 2682 +++++++++-------- pb/protos/commands.proto | 5 +- 14 files changed, 1524 insertions(+), 1364 deletions(-) diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index 568118c2d..fe49956ca 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -35,8 +35,13 @@ const CName = "bookmark" type ContentFuture func() *bookmark.ObjectContent type Service interface { - CreateObjectAndFetch(ctx context.Context, spaceId string, details *domain.Details) (objectID string, newDetails *domain.Details, err error) - CreateBookmarkObject(ctx context.Context, spaceId string, details *domain.Details, getContent ContentFuture) (objectId string, newDetails *domain.Details, err error) + CreateObjectAndFetch( + ctx context.Context, spaceId, templateId string, details *domain.Details, + ) (objectID string, newDetails *domain.Details, err error) + CreateBookmarkObject( + ctx context.Context, spaceId, templateId string, details *domain.Details, getContent ContentFuture, + ) (objectId string, newDetails *domain.Details, err error) + UpdateObject(objectId string, getContent *bookmark.ObjectContent) error // TODO Maybe Fetch and FetchBookmarkContent do the same thing differently? FetchAsync(spaceID string, blockID string, params bookmark.FetchParams) @@ -56,7 +61,9 @@ type ( } templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) + CreateTemplateStateWithDetails( + spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, + ) (st *state.State, err error) } ) @@ -94,7 +101,7 @@ func (s *service) Name() (name string) { var log = logging.Logger("anytype-mw-bookmark") func (s *service) CreateObjectAndFetch( - ctx context.Context, spaceId string, details *domain.Details, + ctx context.Context, spaceId, templateId string, details *domain.Details, ) (objectID string, newDetails *domain.Details, err error) { source := details.GetString(bundle.RelationKeySource) var res ContentFuture @@ -109,17 +116,17 @@ func (s *service) CreateObjectAndFetch( return nil } } - return s.CreateBookmarkObject(ctx, spaceId, details, res) + return s.CreateBookmarkObject(ctx, spaceId, templateId, details, res) } func (s *service) CreateBookmarkObject( - ctx context.Context, spaceID string, details *domain.Details, getContent ContentFuture, + ctx context.Context, spaceId, templateId string, details *domain.Details, getContent ContentFuture, ) (objectId string, objectDetails *domain.Details, err error) { if details == nil { return "", nil, fmt.Errorf("empty details") } - spc, err := s.spaceService.Get(ctx, spaceID) + spc, err := s.spaceService.Get(ctx, spaceId) if err != nil { return "", nil, fmt.Errorf("get space: %w", err) } @@ -129,7 +136,7 @@ func (s *service) CreateBookmarkObject( } url := details.GetString(bundle.RelationKeySource) - records, err := s.store.SpaceIndex(spaceID).Query(database.Query{ + records, err := s.store.SpaceIndex(spaceId).Query(database.Query{ Sorts: []database.SortRequest{ { RelationKey: bundle.RelationKeyLastModifiedDate, @@ -159,15 +166,14 @@ func (s *service) CreateBookmarkObject( objectId = rec.Details.GetString(bundle.RelationKeyId) objectDetails = rec.Details } else { - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_bookmark)) - creationState, err := s.templateService.CreateTemplateStateWithDetails("", details, false) + creationState, err := s.templateService.CreateTemplateStateWithDetails(spaceId, templateId, typeId, model.ObjectType_bookmark, details, true) if err != nil { log.Errorf("failed to build state for bookmark: %v", err) } creationState.SetDetails(details) objectId, objectDetails, err = s.creator.CreateSmartBlockFromState( ctx, - spaceID, + spaceId, []domain.TypeKey{bundle.TypeKeyBookmark}, creationState, ) diff --git a/core/block/bookmark/bookmarkimporter/bookmark_importer_decorator.go b/core/block/bookmark/bookmarkimporter/bookmark_importer_decorator.go index ae555ce11..d08866d3c 100644 --- a/core/block/bookmark/bookmarkimporter/bookmark_importer_decorator.go +++ b/core/block/bookmark/bookmarkimporter/bookmark_importer_decorator.go @@ -37,7 +37,7 @@ func (bd *BookmarkImporterDecorator) Init(a *app.App) (err error) { return nil } -func (bd *BookmarkImporterDecorator) CreateBookmarkObject(ctx context.Context, spaceID string, details *domain.Details, getContent bookmarksvc.ContentFuture) (objectId string, newDetails *domain.Details, err error) { +func (bd *BookmarkImporterDecorator) CreateBookmarkObject(ctx context.Context, spaceID, templateId string, details *domain.Details, getContent bookmarksvc.ContentFuture) (objectId string, newDetails *domain.Details, err error) { url := details.GetString(bundle.RelationKeySource) if objectId, newDetails, err = bd.Importer.ImportWeb(nil, &importer.ImportRequest{ RpcObjectImportRequest: &pb.RpcObjectImportRequest{ @@ -49,7 +49,7 @@ func (bd *BookmarkImporterDecorator) CreateBookmarkObject(ctx context.Context, s "function", "BookmarkFetch", "message", "failed to import bookmark", ).Error(err) - return bd.Service.CreateBookmarkObject(ctx, spaceID, details, getContent) + return bd.Service.CreateBookmarkObject(ctx, spaceID, templateId, details, getContent) } err = bd.Service.UpdateObject(objectId, getContent()) if err != nil { diff --git a/core/block/editor.go b/core/block/editor.go index 489674cdc..1d27a7cf7 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -435,7 +435,7 @@ func (s *Service) Redo( func (s *Service) BookmarkFetch(ctx session.Context, req BookmarkFetchRequest) (err error) { return cache.Do(s, req.ContextId, func(b bookmark.Bookmark) error { - return b.Fetch(ctx, req.BlockId, req.Url, req.ObjectOrigin) + return b.Fetch(ctx, req.BlockId, req.Url, req.TemplateId, req.ObjectOrigin) }) } diff --git a/core/block/editor/basic/basic.go b/core/block/editor/basic/basic.go index b2dee8247..41f61a0a7 100644 --- a/core/block/editor/basic/basic.go +++ b/core/block/editor/basic/basic.go @@ -53,7 +53,7 @@ type CommonOperations interface { FeaturedRelationRemove(ctx session.Context, relations ...string) error ReplaceLink(oldId, newId string) error - ExtractBlocksToObjects(ctx session.Context, oc ObjectCreator, tsc TemplateStateCreator, req pb.RpcBlockListConvertToObjectsRequest) (linkIds []string, err error) + ExtractBlocksToObjects(ctx session.Context, oc ObjectCreator, tsc templateStateCreator, req pb.RpcBlockListConvertToObjectsRequest) (linkIds []string, err error) SetObjectTypes(ctx session.Context, objectTypeKeys []domain.TypeKey, ignoreRestrictions bool) (err error) SetObjectTypesInState(s *state.State, objectTypeKeys []domain.TypeKey, ignoreRestrictions bool) (err error) diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 39f504d1a..2a7a62008 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -21,9 +21,11 @@ type ObjectCreator interface { CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *domain.Details, err error) } -type TemplateStateCreator interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State +type templateStateCreator interface { + CreateTemplateStateWithDetails( + spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, + ) (st *state.State, err error) + CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State } // ExtractBlocksToObjects extracts child blocks from the object to separate objects and @@ -31,7 +33,7 @@ type TemplateStateCreator interface { func (bs *basic) ExtractBlocksToObjects( ctx session.Context, objectCreator ObjectCreator, - templateStateCreator TemplateStateCreator, + templateStateCreator templateStateCreator, req pb.RpcBlockListConvertToObjectsRequest, ) (linkIds []string, err error) { typeUniqueKey, err := domain.UnmarshalUniqueKey(req.ObjectTypeUniqueKey) @@ -75,32 +77,24 @@ func (bs *basic) ExtractBlocksToObjects( } func (bs *basic) prepareObjectState( - uk domain.UniqueKey, root simple.Block, creator TemplateStateCreator, req pb.RpcBlockListConvertToObjectsRequest, + uk domain.UniqueKey, root simple.Block, creator templateStateCreator, req pb.RpcBlockListConvertToObjectsRequest, ) (*state.State, error) { - details, err := bs.prepareTargetObjectDetails(bs.SpaceID(), uk, root) + objType, err := bs.objectStore.GetObjectByUniqueKey(uk) if err != nil { - return nil, fmt.Errorf("prepare target details: %w", err) + return nil, fmt.Errorf("failed to get type from store: %w", err) } + var ( + // nolint:gosec + layout = model.ObjectTypeLayout(objType.GetInt64(bundle.RelationKeyRecommendedLayout)) + typeId = objType.GetString(bundle.RelationKeyId) + details = createTargetObjectDetails(root.Model().GetText().GetText(), layout) + ) if req.ContextId == req.TemplateId { - return creator.CreateTemplateStateFromSmartBlock(bs, details), nil + return creator.CreateTemplateStateFromSmartBlock(bs, typeId, layout, details), nil } - return creator.CreateTemplateStateWithDetails(req.TemplateId, details, true) -} - -func (bs *basic) prepareTargetObjectDetails( - spaceID string, - typeUniqueKey domain.UniqueKey, - rootBlock simple.Block, -) (*domain.Details, error) { - objType, err := bs.objectStore.GetObjectByUniqueKey(typeUniqueKey) - if err != nil { - return nil, err - } - rawLayout := objType.GetInt64(bundle.RelationKeyRecommendedLayout) - details := createTargetObjectDetails(rootBlock.Model().GetText().GetText(), model.ObjectTypeLayout(rawLayout)) - return details, nil + return creator.CreateTemplateStateWithDetails(bs.SpaceID(), req.TemplateId, typeId, layout, details, true) } func insertBlocksToState( diff --git a/core/block/editor/bookmark/bookmark.go b/core/block/editor/bookmark/bookmark.go index 8c34567d7..1d80cde11 100644 --- a/core/block/editor/bookmark/bookmark.go +++ b/core/block/editor/bookmark/bookmark.go @@ -35,14 +35,16 @@ func NewBookmark(sb smartblock.SmartBlock, bookmarkSvc BookmarkService) Bookmark } type Bookmark interface { - Fetch(ctx session.Context, id string, url string, origin objectorigin.ObjectOrigin) (err error) + Fetch(ctx session.Context, blockId, url, templateId string, origin objectorigin.ObjectOrigin) (err error) CreateAndFetch(ctx session.Context, req CreateAndFetchRequest) (newID string, err error) - UpdateBookmark(ctx session.Context, id, groupID string, apply func(b bookmark.Block) error, origin objectorigin.ObjectOrigin) (err error) + UpdateBookmark(ctx session.Context, blockId, groupID, templateId string, apply func(b bookmark.Block) error, origin objectorigin.ObjectOrigin) (err error) } type BookmarkService interface { - CreateBookmarkObject(ctx context.Context, spaceID string, details *domain.Details, getContent bookmarksvc.ContentFuture) (objectId string, newDetails *domain.Details, err error) FetchAsync(spaceID string, blockID string, params bookmark.FetchParams) + CreateBookmarkObject( + ctx context.Context, spaceId, templateId string, details *domain.Details, getContent bookmarksvc.ContentFuture, + ) (objectId string, newDetails *domain.Details, err error) } type sbookmark struct { @@ -50,20 +52,16 @@ type sbookmark struct { bookmarkSvc BookmarkService } -type BlockService interface { - DoBookmark(id string, apply func(b Bookmark) error) error -} - -func (b *sbookmark) Fetch(ctx session.Context, id string, url string, origin objectorigin.ObjectOrigin) (err error) { +func (b *sbookmark) Fetch(ctx session.Context, blockId, url, templateId string, origin objectorigin.ObjectOrigin) (err error) { s := b.NewStateCtx(ctx).SetGroupId(bson.NewObjectId().Hex()) - if err = b.fetch(ctx, s, id, url, origin); err != nil { + if err = b.fetch(ctx, s, blockId, url, templateId, origin); err != nil { return } return b.Apply(s) } -func (b *sbookmark) fetch(ctx session.Context, s *state.State, id, url string, origin objectorigin.ObjectOrigin) (err error) { - bb := s.Get(id) +func (b *sbookmark) fetch(ctx session.Context, s *state.State, blockId, url, templateId string, origin objectorigin.ObjectOrigin) (err error) { + bb := s.Get(blockId) if b == nil { return smartblock.ErrSimpleBlockNotFound } @@ -78,7 +76,7 @@ func (b *sbookmark) fetch(ctx session.Context, s *state.State, id, url string, o } bm.SetState(model.BlockContentBookmark_Fetching) - b.bookmarkSvc.FetchAsync(b.SpaceID(), id, bookmark.FetchParams{ + b.bookmarkSvc.FetchAsync(b.SpaceID(), blockId, bookmark.FetchParams{ Url: url, Updater: func(blockID string, apply func(b bookmark.Block) error) (err error) { return b.Space().Do(b.Id(), func(sb smartblock.SmartBlock) error { @@ -87,7 +85,7 @@ func (b *sbookmark) fetch(ctx session.Context, s *state.State, id, url string, o if !ok { return fmt.Errorf("not a bookmark") } - return bm.UpdateBookmark(ctx, blockID, groupId, apply, origin) + return bm.UpdateBookmark(ctx, blockID, groupId, templateId, apply, origin) }) }, }) @@ -108,7 +106,7 @@ func (b *sbookmark) CreateAndFetch(ctx session.Context, req CreateAndFetchReques if err = s.InsertTo(req.TargetId, req.Position, newID); err != nil { return } - if err = b.fetch(ctx, s, newID, req.Url, req.Origin); err != nil { + if err = b.fetch(ctx, s, newID, req.Url, req.TemplateId, req.Origin); err != nil { return } if err = b.Apply(s); err != nil { @@ -117,11 +115,11 @@ func (b *sbookmark) CreateAndFetch(ctx session.Context, req CreateAndFetchReques return } -func (b *sbookmark) UpdateBookmark(ctx session.Context, id, groupID string, apply func(b bookmark.Block) error, origin objectorigin.ObjectOrigin) error { +func (b *sbookmark) UpdateBookmark(ctx session.Context, blockId, groupID, templateId string, apply func(b bookmark.Block) error, origin objectorigin.ObjectOrigin) error { s := b.NewState().SetGroupId(groupID) - if bb := s.Get(id); bb != nil { + if bb := s.Get(blockId); bb != nil { if bm, ok := bb.(bookmark.Block); ok { - if err := b.updateBlock(ctx, bm, apply, origin); err != nil { + if err := b.updateBlock(bm, templateId, apply, origin); err != nil { return fmt.Errorf("update block: %w", err) } } else { @@ -134,13 +132,13 @@ func (b *sbookmark) UpdateBookmark(ctx session.Context, id, groupID string, appl } // updateBlock updates a block and creates associated Bookmark object -func (b *sbookmark) updateBlock(_ session.Context, block bookmark.Block, apply func(bookmark.Block) error, origin objectorigin.ObjectOrigin) error { +func (b *sbookmark) updateBlock(block bookmark.Block, templateId string, apply func(bookmark.Block) error, origin objectorigin.ObjectOrigin) error { if err := apply(block); err != nil { return err } content := block.GetContent() - pageID, _, err := b.bookmarkSvc.CreateBookmarkObject(context.Background(), b.SpaceID(), block.ToDetails(origin), func() *bookmark.ObjectContent { + pageID, _, err := b.bookmarkSvc.CreateBookmarkObject(context.Background(), b.SpaceID(), templateId, block.ToDetails(origin), func() *bookmark.ObjectContent { return &bookmark.ObjectContent{BookmarkContent: content} }) if err != nil { diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 2a968bcf7..e0cd56c6f 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -25,13 +25,17 @@ import ( type ( templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error + CreateTemplateStateWithDetails( + spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, + ) (st *state.State, err error) } bookmarkService interface { - CreateObjectAndFetch(ctx context.Context, spaceId string, details *domain.Details) (objectID string, newDetails *domain.Details, err error) + CreateObjectAndFetch( + ctx context.Context, spaceId, templateId string, details *domain.Details, + ) (objectID string, newDetails *domain.Details, err error) } objectArchiver interface { @@ -127,7 +131,7 @@ func (s *service) createObjectInSpace( switch req.ObjectTypeKey { case bundle.TypeKeyBookmark: - return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) + return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), req.TemplateId, details) case bundle.TypeKeyObjectType: return s.createObjectType(ctx, space, details) case bundle.TypeKeyRelation: @@ -158,17 +162,12 @@ func (s *service) createTemplate( if err != nil { return "", nil, fmt.Errorf("failed to fetch target object type from store: %w", err) } - details.SetInt64(bundle.RelationKeyResolvedLayout, layout) - typeId, err := space.DeriveObjectID(ctx, domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, req.ObjectTypeKey.String())) if err != nil { return "", nil, fmt.Errorf("failed to derive object type id: %w", err) } - // we should enrich details with spaceId, type and layout to use type object to form state of new object - details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) - details.Set(bundle.RelationKeyType, domain.String(typeId)) - createState, err := s.templateService.CreateTemplateStateWithDetails("", details, false) + createState, err := s.templateService.CreateTemplateStateWithDetails(space.Id(), "", typeId, layout, details, false) if err != nil { return } @@ -192,24 +191,19 @@ func (s *service) createCommonObject( return "", nil, fmt.Errorf("failed to fetch target object type from store: %w", err) } - // we should enrich details with spaceId, type and layout to use type object to form state of new object - details.Set(bundle.RelationKeySpaceId, domain.String(space.Id())) - details.Set(bundle.RelationKeyType, domain.String(typeId)) - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - - createState, err := s.templateService.CreateTemplateStateWithDetails(req.TemplateId, details, true) + createState, err := s.templateService.CreateTemplateStateWithDetails(space.Id(), req.TemplateId, typeId, layout, details, true) if err != nil { return } return s.CreateSmartBlockFromStateInSpace(ctx, space, []domain.TypeKey{req.ObjectTypeKey}, createState) } -func (s *service) getTypeRecommendedLayout(typeId domain.FullID) (int64, error) { +func (s *service) getTypeRecommendedLayout(typeId domain.FullID) (model.ObjectTypeLayout, error) { ot, err := s.objectStore.SpaceIndex(typeId.SpaceID).GetObjectType(typeId.ObjectID) if err != nil { return 0, err } - return int64(ot.Layout), nil + return ot.Layout, nil } // buildDateObject does not create real date object. It just builds date object details diff --git a/core/block/service.go b/core/block/service.go index ba30905c0..f0eeb618f 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -113,8 +113,10 @@ type builtinObjects interface { } type templateService interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State + CreateTemplateStateWithDetails( + spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, + ) (st *state.State, err error) + CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State } type openedObjects struct { diff --git a/core/block/template/service.go b/core/block/template/service.go index 1069628f2..0c3bde5d0 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -50,8 +50,10 @@ var ( ) type Service interface { - CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (st *state.State, err error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State + CreateTemplateStateWithDetails( + spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, + ) (st *state.State, err error) + CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State ObjectApplyTemplate(contextId string, templateId string) error TemplateCreateFromObject(ctx context.Context, id string) (templateId string, err error) @@ -98,21 +100,20 @@ func (s *service) Init(a *app.App) error { // If withTemplateValidation=true, templateId is queried in store. If template is empty or not found, last edited template is taken. // Blank template is created in case template object is deleted or blank/empty templateId is provided func (s *service) CreateTemplateStateWithDetails( - templateId string, + spaceId, templateId, typeId string, + layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, ) (targetState *state.State, err error) { if withTemplateValidation { - templateId, err = s.resolveValidTemplateId(templateId, details) + templateId, err = s.resolveValidTemplateId(spaceId, templateId, typeId) if err != nil { return nil, fmt.Errorf("failed to resolve valid template id: %w", err) } } switch templateId { case "", BlankTemplateId: - layout := details.GetInt64(bundle.RelationKeyResolvedLayout) - // nolint:gosec - targetState = s.createBlankTemplateState(model.ObjectTypeLayout(layout), details) + targetState = s.createBlankTemplateState(domain.FullID{SpaceID: spaceId, ObjectID: typeId}, layout, details) default: targetState, err = s.createCustomTemplateState(templateId) if err != nil { @@ -124,12 +125,8 @@ func (s *service) CreateTemplateStateWithDetails( return targetState, nil } -func (s *service) resolveValidTemplateId(templateId string, details *domain.Details) (string, error) { - var ( - typeId = details.GetString(bundle.RelationKeyType) - spaceId = details.GetString(bundle.RelationKeySpaceId) - ctx = context.Background() - ) +func (s *service) resolveValidTemplateId(spaceId, templateId, typeId string) (string, error) { + var ctx = context.Background() spc, err := s.spaceService.Get(ctx, spaceId) if err != nil { @@ -184,12 +181,12 @@ func (s *service) resolveValidTemplateId(templateId string, details *domain.Deta // CreateTemplateStateFromSmartBlock duplicates the logic of CreateTemplateStateWithDetails but does not take the lock on smartBlock. // if building of state fails, state of blank template is returned -func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { +func (s *service) CreateTemplateStateFromSmartBlock( + sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details, +) *state.State { st, err := s.buildState(sb) if err != nil { - layout := details.GetInt64(bundle.RelationKeyResolvedLayout) - // nolint:gosec - st = s.createBlankTemplateState(model.ObjectTypeLayout(layout), nil) + st = s.createBlankTemplateState(domain.FullID{SpaceID: sb.SpaceID(), ObjectID: typeId}, layout, nil) } addDetailsToState(st, details) return st @@ -231,7 +228,7 @@ func (s *service) createCustomTemplateState(templateId string) (targetState *sta return nil }) if errors.Is(err, spacestorage.ErrTreeStorageAlreadyDeleted) { - return s.createBlankTemplateState(model.ObjectType_basic, nil), nil + return s.createBlankTemplateState(domain.FullID{}, model.ObjectType_basic, nil), nil } return } @@ -270,7 +267,11 @@ func (s *service) buildState(sb smartblock.SmartBlock) (st *state.State, err err func (s *service) ObjectApplyTemplate(contextId, templateId string) error { return cache.Do(s.picker, contextId, func(b smartblock.SmartBlock) error { orig := b.NewState().ParentState() - ts, err := s.CreateTemplateStateWithDetails(templateId, orig.Details(), false) + spaceId := orig.LocalDetails().GetString(bundle.RelationKeySpaceId) + typeId := orig.LocalDetails().GetString(bundle.RelationKeyType) + layout := orig.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout) + // nolint:gosec + ts, err := s.CreateTemplateStateWithDetails(spaceId, templateId, typeId, model.ObjectTypeLayout(layout), orig.Details(), false) if err != nil { return err } @@ -440,7 +441,7 @@ func (s *service) SetDefaultTemplateInType(ctx context.Context, typeId, template }) } -func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout, details *domain.Details) (st *state.State) { +func (s *service) createBlankTemplateState(typeId domain.FullID, layout model.ObjectTypeLayout, details *domain.Details) (st *state.State) { st = state.NewDoc(BlankTemplateId, nil).NewState() template.InitTemplate(st, template.WithEmpty, template.WithDefaultFeaturedRelations, @@ -449,10 +450,10 @@ func (s *service) createBlankTemplateState(layout model.ObjectTypeLayout, detail template.WithDetail(bundle.RelationKeyTag, domain.StringList(nil)), template.WithTitle, ) - if slices.Contains([]model.ObjectTypeLayout{model.ObjectType_set, model.ObjectType_collection}, layout) && details != nil { + if slices.Contains([]model.ObjectTypeLayout{model.ObjectType_set, model.ObjectType_collection}, layout) && !typeId.IsEmpty() { template.InitTemplate(st, - template.WithDetail(bundle.RelationKeySpaceId, details.Get(bundle.RelationKeySpaceId)), - template.WithDetail(bundle.RelationKeyType, details.Get(bundle.RelationKeyType)), + template.WithDetail(bundle.RelationKeySpaceId, domain.String(typeId.SpaceID)), + template.WithDetail(bundle.RelationKeyType, domain.String(typeId.ObjectID)), ) } if err := s.converter.Convert(st, model.ObjectType_basic, layout, true); err != nil { diff --git a/core/create.go b/core/create.go index de8a9fa16..5009148a1 100644 --- a/core/create.go +++ b/core/create.go @@ -106,6 +106,7 @@ func (mw *Middleware) ObjectCreateBookmark(cctx context.Context, req *pb.RpcObje createReq := objectcreator.CreateObjectRequest{ ObjectTypeKey: bundle.TypeKeyBookmark, Details: domain.NewDetailsFromProto(req.Details), + TemplateId: req.TemplateId, } id, newDetails, err := creator.CreateObject(cctx, req.SpaceId, createReq) if err != nil { diff --git a/core/domain/id.go b/core/domain/id.go index c6314a35b..1fc515a75 100644 --- a/core/domain/id.go +++ b/core/domain/id.go @@ -10,6 +10,10 @@ type FullID struct { SpaceID string } +func (i FullID) IsEmpty() bool { + return i.ObjectID == "" +} + const ParticipantPrefix = "_participant_" func NewParticipantId(spaceId, identity string) string { diff --git a/docs/proto.md b/docs/proto.md index c462d3ddc..3b003e22f 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -5580,6 +5580,7 @@ Makes blocks copy by given ids and paste it to shown place | targetId | [string](#string) | | | | position | [model.Block.Position](#anytype-model-Block-Position) | | | | url | [string](#string) | | | +| templateId | [string](#string) | | | @@ -5640,6 +5641,7 @@ Makes blocks copy by given ids and paste it to shown place | contextId | [string](#string) | | | | blockId | [string](#string) | | | | url | [string](#string) | | | +| templateId | [string](#string) | | | @@ -14246,6 +14248,7 @@ Get the info for page alongside with info for all inbound and outbound links fro | ----- | ---- | ----- | ----------- | | details | [google.protobuf.Struct](#google-protobuf-Struct) | | | | spaceId | [string](#string) | | | +| templateId | [string](#string) | | | | withChat | [bool](#bool) | | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index cd9e67f38..02454d474 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -21033,9 +21033,10 @@ func (m *RpcObjectCreateBookmark) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectCreateBookmark proto.InternalMessageInfo type RpcObjectCreateBookmarkRequest struct { - Details *types.Struct `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` - SpaceId string `protobuf:"bytes,2,opt,name=spaceId,proto3" json:"spaceId,omitempty"` - WithChat bool `protobuf:"varint,3,opt,name=withChat,proto3" json:"withChat,omitempty"` + Details *types.Struct `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` + SpaceId string `protobuf:"bytes,2,opt,name=spaceId,proto3" json:"spaceId,omitempty"` + TemplateId string `protobuf:"bytes,3,opt,name=templateId,proto3" json:"templateId,omitempty"` + WithChat bool `protobuf:"varint,4,opt,name=withChat,proto3" json:"withChat,omitempty"` } func (m *RpcObjectCreateBookmarkRequest) Reset() { *m = RpcObjectCreateBookmarkRequest{} } @@ -21085,6 +21086,13 @@ func (m *RpcObjectCreateBookmarkRequest) GetSpaceId() string { return "" } +func (m *RpcObjectCreateBookmarkRequest) GetTemplateId() string { + if m != nil { + return m.TemplateId + } + return "" +} + func (m *RpcObjectCreateBookmarkRequest) GetWithChat() bool { if m != nil { return m.WithChat @@ -54593,9 +54601,10 @@ func (m *RpcBlockBookmarkFetch) XXX_DiscardUnknown() { var xxx_messageInfo_RpcBlockBookmarkFetch proto.InternalMessageInfo type RpcBlockBookmarkFetchRequest struct { - ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` - BlockId string `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` - Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` + BlockId string `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + TemplateId string `protobuf:"bytes,4,opt,name=templateId,proto3" json:"templateId,omitempty"` } func (m *RpcBlockBookmarkFetchRequest) Reset() { *m = RpcBlockBookmarkFetchRequest{} } @@ -54652,6 +54661,13 @@ func (m *RpcBlockBookmarkFetchRequest) GetUrl() string { return "" } +func (m *RpcBlockBookmarkFetchRequest) GetTemplateId() string { + if m != nil { + return m.TemplateId + } + return "" +} + type RpcBlockBookmarkFetchResponse struct { Error *RpcBlockBookmarkFetchResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` Event *ResponseEvent `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` @@ -54793,10 +54809,11 @@ func (m *RpcBlockBookmarkCreateAndFetch) XXX_DiscardUnknown() { var xxx_messageInfo_RpcBlockBookmarkCreateAndFetch proto.InternalMessageInfo type RpcBlockBookmarkCreateAndFetchRequest struct { - ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` - TargetId string `protobuf:"bytes,2,opt,name=targetId,proto3" json:"targetId,omitempty"` - Position model.BlockPosition `protobuf:"varint,3,opt,name=position,proto3,enum=anytype.model.BlockPosition" json:"position,omitempty"` - Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` + TargetId string `protobuf:"bytes,2,opt,name=targetId,proto3" json:"targetId,omitempty"` + Position model.BlockPosition `protobuf:"varint,3,opt,name=position,proto3,enum=anytype.model.BlockPosition" json:"position,omitempty"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + TemplateId string `protobuf:"bytes,5,opt,name=templateId,proto3" json:"templateId,omitempty"` } func (m *RpcBlockBookmarkCreateAndFetchRequest) Reset() { *m = RpcBlockBookmarkCreateAndFetchRequest{} } @@ -54860,6 +54877,13 @@ func (m *RpcBlockBookmarkCreateAndFetchRequest) GetUrl() string { return "" } +func (m *RpcBlockBookmarkCreateAndFetchRequest) GetTemplateId() string { + if m != nil { + return m.TemplateId + } + return "" +} + type RpcBlockBookmarkCreateAndFetchResponse struct { Error *RpcBlockBookmarkCreateAndFetchResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` BlockId string `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` @@ -73206,1259 +73230,1260 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 20028 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x2c, 0x49, - 0x55, 0x2f, 0xba, 0x2b, 0xb3, 0xaa, 0xba, 0x7b, 0xf5, 0x63, 0xd7, 0xce, 0xd9, 0x7b, 0xcf, 0x9e, - 0x9c, 0x61, 0xcf, 0xb8, 0x67, 0x18, 0xc6, 0x61, 0xe8, 0x79, 0x80, 0xc8, 0x0c, 0xf3, 0xaa, 0xae, - 0xae, 0xee, 0xae, 0x99, 0xee, 0xaa, 0x36, 0xab, 0x7a, 0x6f, 0x46, 0x8f, 0xb7, 0xcc, 0x5d, 0x15, - 0xdd, 0x9d, 0xb3, 0xab, 0x33, 0xcb, 0xcc, 0xec, 0xde, 0xb3, 0xb9, 0xdf, 0xb9, 0x47, 0xc4, 0x11, - 0x14, 0x39, 0x88, 0x8a, 0x8a, 0x0a, 0x23, 0xe0, 0xe8, 0x01, 0x45, 0xe4, 0x7d, 0x40, 0x79, 0xc8, - 0x43, 0x1e, 0x22, 0x22, 0xc8, 0x53, 0xe7, 0x0a, 0x82, 0x88, 0xe7, 0x93, 0xc3, 0xc5, 0x7b, 0x04, - 0x51, 0xb8, 0xde, 0x2f, 0x23, 0x22, 0x33, 0x23, 0xaa, 0x2b, 0xb3, 0x22, 0xab, 0x2b, 0xab, 0x07, - 0x39, 0xff, 0x65, 0x46, 0x46, 0xae, 0x58, 0xb1, 0x7e, 0x2b, 0x22, 0x56, 0x44, 0xac, 0x58, 0x01, - 0xa7, 0xba, 0xe7, 0x6f, 0xee, 0xda, 0x96, 0x6b, 0x39, 0x37, 0xb7, 0xac, 0x9d, 0x1d, 0xdd, 0x6c, - 0x3b, 0xf3, 0xf8, 0x5d, 0x99, 0xd0, 0xcd, 0x4b, 0xee, 0xa5, 0x2e, 0x52, 0xaf, 0xeb, 0x5e, 0xd8, - 0xba, 0xb9, 0x63, 0x9c, 0xbf, 0xb9, 0x7b, 0xfe, 0xe6, 0x1d, 0xab, 0x8d, 0x3a, 0xfe, 0x0f, 0xf8, - 0x85, 0x66, 0x57, 0x6f, 0x88, 0xca, 0xd5, 0xb1, 0x5a, 0x7a, 0xc7, 0x71, 0x2d, 0x1b, 0xd1, 0x9c, - 0x27, 0xc3, 0x22, 0xd1, 0x1e, 0x32, 0x5d, 0x9f, 0xc2, 0x55, 0x5b, 0x96, 0xb5, 0xd5, 0x41, 0xe4, - 0xdb, 0xf9, 0xdd, 0xcd, 0x9b, 0x1d, 0xd7, 0xde, 0x6d, 0xb9, 0xf4, 0xeb, 0x35, 0xbd, 0x5f, 0xdb, - 0xc8, 0x69, 0xd9, 0x46, 0xd7, 0xb5, 0x6c, 0x92, 0xe3, 0xcc, 0x47, 0x1e, 0x99, 0x04, 0x59, 0xeb, - 0xb6, 0xd4, 0x6f, 0x4c, 0x80, 0x5c, 0xec, 0x76, 0xd5, 0xf7, 0x4b, 0x00, 0xcb, 0xc8, 0x3d, 0x8b, - 0x6c, 0xc7, 0xb0, 0x4c, 0xf5, 0x28, 0x4c, 0x68, 0xe8, 0xc7, 0x77, 0x91, 0xe3, 0xde, 0x91, 0x7d, - 0xfe, 0x97, 0xe5, 0x8c, 0xfa, 0xa8, 0x04, 0x93, 0x1a, 0x72, 0xba, 0x96, 0xe9, 0x20, 0xe5, 0x5e, - 0xc8, 0x21, 0xdb, 0xb6, 0xec, 0x53, 0x99, 0x6b, 0x32, 0x37, 0x4c, 0xdf, 0x76, 0xe3, 0x3c, 0xad, - 0xfe, 0xbc, 0xd6, 0x6d, 0xcd, 0x17, 0xbb, 0xdd, 0xf9, 0x90, 0xd2, 0xbc, 0xff, 0xd3, 0x7c, 0xd9, - 0xfb, 0x43, 0x23, 0x3f, 0x2a, 0xa7, 0x60, 0x62, 0x8f, 0x64, 0x38, 0x25, 0x5d, 0x93, 0xb9, 0x61, - 0x4a, 0xf3, 0x5f, 0xbd, 0x2f, 0x6d, 0xe4, 0xea, 0x46, 0xc7, 0x39, 0x25, 0x93, 0x2f, 0xf4, 0x55, - 0x7d, 0x65, 0x06, 0x72, 0x98, 0x88, 0x52, 0x82, 0x6c, 0xcb, 0x6a, 0x23, 0x5c, 0xfc, 0xdc, 0x6d, - 0x37, 0x8b, 0x17, 0x3f, 0x5f, 0xb2, 0xda, 0x48, 0xc3, 0x3f, 0x2b, 0xd7, 0xc0, 0xb4, 0x2f, 0x96, - 0x90, 0x0d, 0x36, 0xe9, 0xcc, 0x6d, 0x90, 0xf5, 0xf2, 0x2b, 0x93, 0x90, 0xad, 0x6e, 0xac, 0xae, - 0x16, 0x8e, 0x28, 0xc7, 0x60, 0x76, 0xa3, 0x7a, 0x7f, 0xb5, 0x76, 0xae, 0xda, 0x2c, 0x6b, 0x5a, - 0x4d, 0x2b, 0x64, 0x94, 0x59, 0x98, 0x5a, 0x28, 0x2e, 0x36, 0x2b, 0xd5, 0xf5, 0x8d, 0x46, 0x41, - 0x52, 0x5f, 0x2e, 0xc3, 0x5c, 0x1d, 0xb9, 0x8b, 0x68, 0xcf, 0x68, 0xa1, 0xba, 0xab, 0xbb, 0x48, - 0x7d, 0x51, 0x26, 0x10, 0xa6, 0xb2, 0xe1, 0x15, 0x1a, 0x7c, 0xa2, 0x15, 0x78, 0xea, 0xbe, 0x0a, - 0xf0, 0x14, 0xe6, 0xe9, 0xdf, 0xf3, 0x4c, 0x9a, 0xc6, 0xd2, 0x39, 0xf3, 0x14, 0x98, 0x66, 0xbe, - 0x29, 0x73, 0x00, 0x0b, 0xc5, 0xd2, 0xfd, 0xcb, 0x5a, 0x6d, 0xa3, 0xba, 0x58, 0x38, 0xe2, 0xbd, - 0x2f, 0xd5, 0xb4, 0x32, 0x7d, 0xcf, 0xa8, 0xdf, 0xca, 0x30, 0x60, 0x2e, 0xf2, 0x60, 0xce, 0x0f, - 0x66, 0xa6, 0x0f, 0xa0, 0xea, 0x6f, 0x07, 0xe0, 0x2c, 0x73, 0xe0, 0x3c, 0x35, 0x19, 0xb9, 0xf4, - 0x01, 0x7a, 0x58, 0x82, 0xc9, 0xfa, 0xf6, 0xae, 0xdb, 0xb6, 0x2e, 0x9a, 0xea, 0x54, 0x80, 0x8c, - 0xfa, 0x55, 0x56, 0x26, 0x77, 0xf3, 0x32, 0xb9, 0x61, 0x7f, 0x25, 0x28, 0x85, 0x08, 0x69, 0xfc, - 0x66, 0x20, 0x8d, 0x22, 0x27, 0x8d, 0xa7, 0x88, 0x12, 0x4a, 0x5f, 0x0e, 0xbf, 0xf6, 0x0c, 0xc8, - 0xd5, 0xbb, 0x7a, 0x0b, 0xa9, 0x1f, 0x91, 0x61, 0x66, 0x15, 0xe9, 0x7b, 0xa8, 0xd8, 0xed, 0xda, - 0xd6, 0x1e, 0x52, 0x4b, 0xa1, 0xbe, 0x9e, 0x82, 0x09, 0xc7, 0xcb, 0x54, 0x69, 0xe3, 0x1a, 0x4c, - 0x69, 0xfe, 0xab, 0x72, 0x1a, 0xc0, 0x68, 0x23, 0xd3, 0x35, 0x5c, 0x03, 0x39, 0xa7, 0xa4, 0x6b, - 0xe4, 0x1b, 0xa6, 0x34, 0x26, 0x45, 0xfd, 0x86, 0x24, 0xaa, 0x63, 0x98, 0x8b, 0x79, 0x96, 0x83, - 0x08, 0xa9, 0xbe, 0x4a, 0x12, 0xd1, 0xb1, 0x81, 0xe4, 0x92, 0xc9, 0xf6, 0xf7, 0x33, 0xc9, 0x85, - 0xeb, 0xe5, 0xa8, 0xd6, 0x9a, 0xf5, 0x8d, 0xd2, 0x4a, 0xb3, 0xbe, 0x5e, 0x2c, 0x95, 0x0b, 0x48, - 0x39, 0x0e, 0x05, 0xfc, 0xd8, 0xac, 0xd4, 0x9b, 0x8b, 0xe5, 0xd5, 0x72, 0xa3, 0xbc, 0x58, 0xd8, - 0x54, 0x14, 0x98, 0xd3, 0xca, 0x3f, 0xb4, 0x51, 0xae, 0x37, 0x9a, 0x4b, 0xc5, 0xca, 0x6a, 0x79, - 0xb1, 0xb0, 0xe5, 0xfd, 0xbc, 0x5a, 0x59, 0xab, 0x34, 0x9a, 0x5a, 0xb9, 0x58, 0x5a, 0x29, 0x2f, - 0x16, 0xb6, 0x95, 0xcb, 0xe1, 0xb2, 0x6a, 0xad, 0x59, 0x5c, 0x5f, 0xd7, 0x6a, 0x67, 0xcb, 0x4d, - 0xfa, 0x47, 0xbd, 0x60, 0x90, 0x82, 0x1a, 0xcd, 0xfa, 0x4a, 0x51, 0x2b, 0x17, 0x17, 0x56, 0xcb, - 0x85, 0x07, 0xd5, 0xe7, 0xca, 0x30, 0xbb, 0xa6, 0x5f, 0x40, 0xf5, 0x6d, 0xdd, 0x46, 0xfa, 0xf9, - 0x0e, 0x52, 0xaf, 0x15, 0xc0, 0x53, 0xfd, 0x08, 0x8b, 0x57, 0x99, 0xc7, 0xeb, 0xe6, 0x3e, 0x02, - 0xe6, 0x8a, 0x88, 0x00, 0xec, 0x5f, 0x82, 0x66, 0xb0, 0xc2, 0x01, 0xf6, 0xb4, 0x84, 0xf4, 0x92, - 0x21, 0xf6, 0x93, 0x8f, 0x03, 0xc4, 0xd4, 0xc7, 0x64, 0x98, 0xab, 0x98, 0x7b, 0x86, 0x8b, 0x96, - 0x91, 0x89, 0x6c, 0x6f, 0x1c, 0x10, 0x82, 0xe1, 0x51, 0x99, 0x81, 0x61, 0x89, 0x87, 0xe1, 0x96, - 0x3e, 0x62, 0xe3, 0xcb, 0x88, 0x18, 0x6d, 0xaf, 0x82, 0x29, 0x03, 0xe7, 0x2b, 0x19, 0x6d, 0x2a, - 0xb1, 0x30, 0x41, 0xb9, 0x0e, 0x66, 0xc9, 0xcb, 0x92, 0xd1, 0x41, 0xf7, 0xa3, 0x4b, 0x74, 0xdc, - 0xe5, 0x13, 0xd5, 0x9f, 0x0b, 0x1a, 0x5f, 0x85, 0xc3, 0xf2, 0x07, 0x92, 0x32, 0x95, 0x0c, 0xcc, - 0x97, 0x3c, 0x1e, 0x9a, 0xdf, 0xbe, 0x56, 0x66, 0xa8, 0xdf, 0x91, 0x60, 0xba, 0xee, 0x5a, 0x5d, - 0x4f, 0x65, 0x0d, 0x73, 0x4b, 0x0c, 0xdc, 0x0f, 0xb2, 0x6d, 0xac, 0xc4, 0x83, 0xfb, 0x94, 0x3e, - 0x72, 0x64, 0x0a, 0x88, 0x68, 0x61, 0xdf, 0x08, 0x5a, 0xd8, 0x12, 0x87, 0xca, 0x6d, 0x89, 0xa8, - 0x7d, 0x17, 0xb6, 0xaf, 0x97, 0xc8, 0x50, 0xf0, 0xd5, 0xcc, 0x2d, 0xed, 0xda, 0x36, 0x32, 0x5d, - 0x31, 0x10, 0xfe, 0x8a, 0x05, 0x61, 0x85, 0x07, 0xe1, 0xb6, 0x18, 0x65, 0xf6, 0x4b, 0x49, 0xb1, - 0x8d, 0xbd, 0x3b, 0x40, 0xf3, 0x7e, 0x0e, 0xcd, 0x1f, 0x4c, 0xce, 0x56, 0x32, 0x48, 0x57, 0x86, - 0x40, 0xf4, 0x38, 0x14, 0xbc, 0x31, 0xa9, 0xd4, 0xa8, 0x9c, 0x2d, 0x37, 0x2b, 0xd5, 0xb3, 0x95, - 0x46, 0xb9, 0x80, 0xd4, 0x5f, 0x94, 0x61, 0x86, 0xb0, 0xa6, 0xa1, 0x3d, 0xeb, 0x82, 0x60, 0xaf, - 0xf7, 0x58, 0x42, 0x63, 0x81, 0x2d, 0x21, 0xa2, 0x65, 0xfc, 0x6c, 0x02, 0x63, 0x21, 0x86, 0xdc, - 0xe3, 0xa9, 0xb7, 0xda, 0xd7, 0x0c, 0xb6, 0xfa, 0xb4, 0x96, 0xbe, 0xbd, 0xd5, 0x4b, 0xb2, 0x00, - 0xa4, 0x92, 0x67, 0x0d, 0x74, 0x51, 0x5d, 0x0b, 0x31, 0xe1, 0xd4, 0x36, 0x33, 0x50, 0x6d, 0xa5, - 0x7e, 0x6a, 0xfb, 0x56, 0x76, 0xcc, 0x5a, 0xe0, 0xd1, 0xbb, 0x29, 0x52, 0xdc, 0x1e, 0x27, 0xd1, - 0xb3, 0x43, 0x5f, 0x51, 0x24, 0xde, 0xea, 0xbc, 0x0a, 0xa6, 0xf0, 0x63, 0x55, 0xdf, 0x41, 0xb4, - 0x0d, 0x85, 0x09, 0xca, 0x19, 0x98, 0x21, 0x19, 0x5b, 0x96, 0xe9, 0xd5, 0x27, 0x8b, 0x33, 0x70, - 0x69, 0x1e, 0x88, 0x2d, 0x1b, 0xe9, 0xae, 0x65, 0x63, 0x1a, 0x39, 0x02, 0x22, 0x93, 0xa4, 0x7e, - 0x25, 0x68, 0x85, 0x65, 0x4e, 0x73, 0x6e, 0x4d, 0x52, 0x95, 0x64, 0x7a, 0xb3, 0x37, 0x5c, 0xfb, - 0x23, 0xad, 0xae, 0xe9, 0xa1, 0xbd, 0x84, 0xa7, 0x76, 0x48, 0x39, 0x09, 0x0a, 0x4d, 0xf5, 0xf2, - 0x96, 0x6a, 0xd5, 0x46, 0xb9, 0xda, 0x28, 0x6c, 0xf6, 0xd5, 0xa8, 0x2d, 0xf5, 0x55, 0x59, 0xc8, - 0xde, 0x67, 0x19, 0xa6, 0xfa, 0x70, 0x86, 0x53, 0x09, 0x13, 0xb9, 0x17, 0x2d, 0xfb, 0x42, 0xd0, - 0x50, 0xc3, 0x84, 0x78, 0x6c, 0x42, 0x55, 0x92, 0x07, 0xaa, 0x52, 0xb6, 0x9f, 0x2a, 0xfd, 0x02, - 0xab, 0x4a, 0x77, 0xf2, 0xaa, 0x74, 0x7d, 0x1f, 0xf9, 0x7b, 0xcc, 0x47, 0x74, 0x00, 0x1f, 0x08, - 0x3a, 0x80, 0x7b, 0x38, 0x18, 0x9f, 0x2c, 0x46, 0x26, 0x19, 0x80, 0x9f, 0x4b, 0xb5, 0xe1, 0xf7, - 0x83, 0x7a, 0x2b, 0x02, 0xea, 0xed, 0x3e, 0x7d, 0x82, 0xb1, 0xbf, 0xeb, 0x78, 0x70, 0x7f, 0x37, - 0x71, 0x41, 0x39, 0x01, 0xc7, 0x16, 0x2b, 0x4b, 0x4b, 0x65, 0xad, 0x5c, 0x6d, 0x34, 0xab, 0xe5, - 0xc6, 0xb9, 0x9a, 0x76, 0x7f, 0xa1, 0xa3, 0xbe, 0x52, 0x06, 0xf0, 0x24, 0x54, 0xd2, 0xcd, 0x16, - 0xea, 0x88, 0xf5, 0xe8, 0xff, 0x53, 0x4a, 0xd6, 0x27, 0x84, 0xf4, 0x23, 0xe0, 0x7c, 0x99, 0x24, - 0xde, 0x2a, 0x23, 0x89, 0x25, 0x03, 0xf5, 0x35, 0x8f, 0x07, 0xdb, 0xf3, 0x32, 0x38, 0xea, 0xd3, - 0xa3, 0xd9, 0xfb, 0x4f, 0xfb, 0x5e, 0x97, 0x85, 0x39, 0x0a, 0x8b, 0x3f, 0x8f, 0x7f, 0x7e, 0x46, - 0x64, 0x22, 0xaf, 0xc2, 0x24, 0x9d, 0xb6, 0xfb, 0xdd, 0x7b, 0xf0, 0xae, 0x2c, 0xc3, 0x74, 0x17, - 0xd9, 0x3b, 0x86, 0xe3, 0x18, 0x96, 0x49, 0x16, 0xe4, 0xe6, 0x6e, 0x7b, 0x62, 0x20, 0x71, 0xbc, - 0x76, 0x39, 0xbf, 0xae, 0xdb, 0xae, 0xd1, 0x32, 0xba, 0xba, 0xe9, 0xae, 0x87, 0x99, 0x35, 0xf6, - 0x4f, 0xf5, 0xc5, 0x09, 0xa7, 0x35, 0x7c, 0x4d, 0x22, 0x54, 0xe2, 0x8f, 0x12, 0x4c, 0x49, 0x62, - 0x09, 0x26, 0x53, 0x8b, 0xf7, 0xa7, 0xaa, 0x16, 0x7d, 0xf0, 0xde, 0x52, 0xae, 0x80, 0x13, 0x95, - 0x6a, 0xa9, 0xa6, 0x69, 0xe5, 0x52, 0xa3, 0xb9, 0x5e, 0xd6, 0xd6, 0x2a, 0xf5, 0x7a, 0xa5, 0x56, - 0xad, 0x1f, 0xa4, 0xb5, 0xab, 0x1f, 0x96, 0x03, 0x8d, 0x59, 0x44, 0xad, 0x8e, 0x61, 0x22, 0xf5, - 0x9e, 0x03, 0x2a, 0x0c, 0xbf, 0xea, 0x23, 0x8e, 0x33, 0x2d, 0x3f, 0x02, 0xe7, 0x57, 0x24, 0xc7, - 0xb9, 0x3f, 0xc1, 0xff, 0xc0, 0xcd, 0xff, 0x31, 0x19, 0x8e, 0x31, 0x0d, 0x51, 0x43, 0x3b, 0x23, - 0x5b, 0xc9, 0xfb, 0x49, 0xb6, 0xed, 0x56, 0x78, 0x4c, 0xfb, 0x59, 0xd3, 0xfb, 0xd8, 0x88, 0x80, - 0xf5, 0x35, 0x01, 0xac, 0xab, 0x1c, 0xac, 0xcf, 0x18, 0x82, 0x66, 0x32, 0x64, 0xff, 0x20, 0x55, - 0x64, 0xaf, 0x80, 0x13, 0xeb, 0x45, 0xad, 0x51, 0x29, 0x55, 0xd6, 0x8b, 0xde, 0x38, 0xca, 0x0c, - 0xd9, 0x11, 0xe6, 0x3a, 0x0f, 0x7a, 0x5f, 0x7c, 0xdf, 0x95, 0x85, 0xab, 0xfa, 0x77, 0xb4, 0xa5, - 0x6d, 0xdd, 0xdc, 0x42, 0xaa, 0x21, 0x02, 0xf5, 0x22, 0x4c, 0xb4, 0x70, 0x76, 0x82, 0x33, 0xbb, - 0x75, 0x13, 0xd3, 0x97, 0x93, 0x12, 0x34, 0xff, 0x57, 0xf5, 0x8d, 0xac, 0x42, 0x34, 0x78, 0x85, - 0xb8, 0x3b, 0x1e, 0xbc, 0x7d, 0x7c, 0x47, 0xe8, 0xc6, 0xc7, 0x02, 0xdd, 0x38, 0xc7, 0xe9, 0x46, - 0xe9, 0x60, 0xe4, 0x93, 0xa9, 0xc9, 0x9f, 0x3e, 0x1e, 0x3a, 0x80, 0x48, 0x6d, 0x32, 0xa2, 0x47, - 0x85, 0xbe, 0xdd, 0xfd, 0x23, 0x32, 0xe4, 0x17, 0x51, 0x07, 0x89, 0xae, 0x44, 0x7e, 0x4d, 0x12, - 0xdd, 0x10, 0x21, 0x30, 0x10, 0xda, 0xd1, 0xab, 0x23, 0xae, 0xb1, 0x83, 0x1c, 0x57, 0xdf, 0xe9, - 0x62, 0x51, 0xcb, 0x5a, 0x98, 0xa0, 0xfe, 0x94, 0x24, 0xb2, 0x5d, 0x12, 0x53, 0xcc, 0x7f, 0x8c, - 0x35, 0xc5, 0x4f, 0x48, 0x30, 0x59, 0x47, 0x6e, 0xcd, 0x6e, 0x23, 0x5b, 0xad, 0x87, 0x18, 0x5d, - 0x03, 0xd3, 0x18, 0x14, 0x6f, 0x9a, 0x19, 0xe0, 0xc4, 0x26, 0x29, 0xd7, 0xc3, 0x5c, 0xf0, 0x8a, - 0x7f, 0xa7, 0xdd, 0x78, 0x4f, 0xaa, 0xfa, 0xf5, 0x8c, 0xe8, 0x2e, 0x2e, 0x5d, 0x32, 0xa4, 0xdc, - 0x44, 0xb4, 0x52, 0xb1, 0x1d, 0xd9, 0x58, 0x52, 0xe9, 0x6f, 0x74, 0xbd, 0x5e, 0x02, 0xd8, 0x30, - 0x1d, 0x5f, 0xae, 0x4f, 0x4e, 0x20, 0x57, 0xf5, 0x9f, 0x33, 0xc9, 0x66, 0x31, 0x61, 0x39, 0x11, - 0x12, 0xfb, 0xad, 0x04, 0x6b, 0x0b, 0x91, 0xc4, 0xd2, 0x97, 0xd9, 0x17, 0xe7, 0x20, 0x7f, 0x4e, - 0xef, 0x74, 0x90, 0xab, 0x7e, 0x49, 0x82, 0x7c, 0xc9, 0x46, 0xba, 0x8b, 0x58, 0xd1, 0xa9, 0x30, - 0x69, 0x5b, 0x96, 0xbb, 0xae, 0xbb, 0xdb, 0x54, 0x6e, 0xc1, 0x3b, 0x75, 0x18, 0xf8, 0x3d, 0xb6, - 0xfb, 0xb8, 0x87, 0x17, 0xdd, 0xf7, 0x73, 0xb5, 0x25, 0x05, 0xcd, 0x93, 0x42, 0x22, 0xfa, 0x0f, - 0x15, 0x26, 0x77, 0x4c, 0xb4, 0x63, 0x99, 0x46, 0xcb, 0xb7, 0x39, 0xfd, 0x77, 0xf5, 0x3d, 0x81, - 0x4c, 0x17, 0x38, 0x99, 0xce, 0x0b, 0x97, 0x92, 0x4c, 0xa0, 0xf5, 0x21, 0x7a, 0x8f, 0xab, 0xe1, - 0x4a, 0xd2, 0x19, 0x34, 0x1b, 0xb5, 0x66, 0x49, 0x2b, 0x17, 0x1b, 0xe5, 0xe6, 0x6a, 0xad, 0x54, - 0x5c, 0x6d, 0x6a, 0xe5, 0xf5, 0x5a, 0x01, 0xa9, 0x7f, 0x2f, 0x79, 0xc2, 0x6d, 0x59, 0x7b, 0xc8, - 0x56, 0x97, 0x85, 0xe4, 0x1c, 0x27, 0x13, 0x8a, 0xc1, 0x2f, 0x08, 0x3b, 0x6d, 0x50, 0xe9, 0x50, - 0x0e, 0x22, 0x94, 0xf7, 0xbd, 0x42, 0xcd, 0x3d, 0x96, 0xd4, 0xe3, 0x40, 0xd2, 0xff, 0x4b, 0x82, - 0x89, 0x92, 0x65, 0xee, 0x21, 0xdb, 0x65, 0xe7, 0x3b, 0xac, 0x34, 0x33, 0xbc, 0x34, 0xbd, 0x41, - 0x12, 0x99, 0xae, 0x6d, 0x75, 0xfd, 0x09, 0x8f, 0xff, 0xaa, 0xfe, 0x4e, 0x52, 0x09, 0xd3, 0x92, - 0xa3, 0x17, 0x3e, 0xfb, 0x17, 0xc4, 0xb1, 0x27, 0xf7, 0x34, 0x80, 0x57, 0x26, 0xc1, 0xa5, 0x3f, - 0x03, 0xe9, 0x77, 0x29, 0x9f, 0x97, 0x61, 0x96, 0x34, 0xbe, 0x3a, 0xc2, 0x16, 0x9a, 0x5a, 0x63, - 0x97, 0x1c, 0x7b, 0x84, 0xbf, 0x72, 0x84, 0x13, 0x7f, 0x5e, 0xef, 0x76, 0x83, 0xe5, 0xe7, 0x95, - 0x23, 0x1a, 0x7d, 0x27, 0x6a, 0xbe, 0x90, 0x87, 0xac, 0xbe, 0xeb, 0x6e, 0xab, 0xdf, 0x11, 0x9e, - 0x7c, 0x72, 0x9d, 0x01, 0xe5, 0x27, 0x02, 0x92, 0xe3, 0x90, 0x73, 0xad, 0x0b, 0xc8, 0x97, 0x03, - 0x79, 0xf1, 0xe0, 0xd0, 0xbb, 0xdd, 0x06, 0xfe, 0x40, 0xe1, 0xf0, 0xdf, 0x3d, 0x5b, 0x47, 0x6f, - 0xb5, 0xac, 0x5d, 0xd3, 0xad, 0xf8, 0x4b, 0xd0, 0x61, 0x82, 0xfa, 0x99, 0x8c, 0xc8, 0x64, 0x56, - 0x80, 0xc1, 0x64, 0x90, 0x9d, 0x1f, 0xa2, 0x29, 0xcd, 0xc3, 0x8d, 0xc5, 0xf5, 0xf5, 0x66, 0xa3, - 0x76, 0x7f, 0xb9, 0x1a, 0x1a, 0x9e, 0xcd, 0x4a, 0xb5, 0xd9, 0x58, 0x29, 0x37, 0x4b, 0x1b, 0x1a, - 0x5e, 0x27, 0x2c, 0x96, 0x4a, 0xb5, 0x8d, 0x6a, 0xa3, 0x80, 0xd4, 0xd7, 0x4a, 0x30, 0x53, 0xea, - 0x58, 0x4e, 0x80, 0xf0, 0xd5, 0x21, 0xc2, 0x81, 0x18, 0x33, 0x8c, 0x18, 0xd5, 0x7f, 0xcb, 0x88, - 0x3a, 0x1d, 0xf8, 0x02, 0x61, 0xc8, 0x47, 0xf4, 0x52, 0xbf, 0x23, 0xe4, 0x74, 0x30, 0x98, 0x5e, - 0xfa, 0x4d, 0xe2, 0xd3, 0x77, 0xc3, 0x44, 0x91, 0x28, 0x86, 0xfa, 0x37, 0x19, 0xc8, 0x97, 0x2c, - 0x73, 0xd3, 0xd8, 0xf2, 0x8c, 0x39, 0x64, 0xea, 0xe7, 0x3b, 0x68, 0x51, 0x77, 0xf5, 0x3d, 0x03, - 0x5d, 0xc4, 0x15, 0x98, 0xd4, 0x7a, 0x52, 0x3d, 0xa6, 0x68, 0x0a, 0x3a, 0xbf, 0xbb, 0x85, 0x99, - 0x9a, 0xd4, 0xd8, 0x24, 0xe5, 0x19, 0x70, 0x39, 0x79, 0x5d, 0xb7, 0x91, 0x8d, 0x3a, 0x48, 0x77, - 0x90, 0x37, 0x2d, 0x32, 0x51, 0x07, 0x2b, 0xed, 0xa4, 0x16, 0xf5, 0x59, 0x39, 0x03, 0x33, 0xe4, - 0x13, 0x36, 0x45, 0x1c, 0xac, 0xc6, 0x93, 0x1a, 0x97, 0xa6, 0x3c, 0x05, 0x72, 0xe8, 0x21, 0xd7, - 0xd6, 0x4f, 0xb5, 0x31, 0x5e, 0x97, 0xcf, 0x13, 0xaf, 0xc3, 0x79, 0xdf, 0xeb, 0x70, 0xbe, 0x8e, - 0x7d, 0x12, 0x35, 0x92, 0x4b, 0xfd, 0xf0, 0x64, 0x60, 0x48, 0xbc, 0x56, 0x0e, 0x15, 0x43, 0x81, - 0xac, 0xa9, 0xef, 0x20, 0xaa, 0x17, 0xf8, 0x59, 0xb9, 0x11, 0x8e, 0xea, 0x7b, 0xba, 0xab, 0xdb, - 0xab, 0x56, 0x4b, 0xef, 0xe0, 0xc1, 0xcf, 0x6f, 0xf9, 0xbd, 0x1f, 0xf0, 0x8e, 0x90, 0x6b, 0xd9, - 0x08, 0xe7, 0xf2, 0x77, 0x84, 0xfc, 0x04, 0x8f, 0xba, 0xd1, 0xb2, 0x4c, 0xcc, 0xbf, 0xac, 0xe1, - 0x67, 0x4f, 0x2a, 0x6d, 0xc3, 0xf1, 0x2a, 0x82, 0xa9, 0x54, 0xc9, 0xd6, 0x46, 0xfd, 0x92, 0xd9, - 0xc2, 0xbb, 0x41, 0x93, 0x5a, 0xd4, 0x67, 0x65, 0x01, 0xa6, 0xe9, 0x46, 0xc8, 0x9a, 0xa7, 0x57, - 0x79, 0xac, 0x57, 0xd7, 0xf0, 0x3e, 0x5d, 0x04, 0xcf, 0xf9, 0x6a, 0x98, 0x4f, 0x63, 0x7f, 0x52, - 0xee, 0x85, 0x2b, 0xe9, 0x6b, 0x69, 0xd7, 0x71, 0xad, 0x1d, 0x02, 0xfa, 0x92, 0xd1, 0x21, 0x35, - 0x98, 0xc0, 0x35, 0x88, 0xcb, 0xa2, 0xdc, 0x06, 0xc7, 0xbb, 0x36, 0xda, 0x44, 0xf6, 0x03, 0xfa, - 0xce, 0xee, 0x43, 0x0d, 0x5b, 0x37, 0x9d, 0xae, 0x65, 0xbb, 0xa7, 0x26, 0x31, 0xf3, 0x7d, 0xbf, - 0x29, 0x37, 0xc1, 0xb1, 0x07, 0x1d, 0xcb, 0x2c, 0x76, 0x8d, 0x55, 0xc3, 0x71, 0x91, 0x59, 0x6c, - 0xb7, 0xed, 0x53, 0x53, 0xb8, 0xac, 0xfd, 0x1f, 0x68, 0xb7, 0x3a, 0x09, 0x79, 0x22, 0x6c, 0xf5, - 0x45, 0x39, 0x61, 0xe7, 0x4f, 0x5a, 0xfd, 0x58, 0x63, 0xee, 0x16, 0x98, 0xa0, 0xfd, 0x21, 0x86, - 0x75, 0xfa, 0xb6, 0x93, 0x3d, 0xab, 0x10, 0x94, 0x8a, 0xe6, 0x67, 0x53, 0x9e, 0x0a, 0xf9, 0x16, - 0x16, 0x02, 0x46, 0x78, 0xfa, 0xb6, 0x2b, 0xfb, 0x17, 0x8a, 0xb3, 0x68, 0x34, 0xab, 0xfa, 0x59, - 0x59, 0xc8, 0x5f, 0x34, 0x8e, 0xe3, 0x64, 0x7d, 0xc0, 0x57, 0xa4, 0x21, 0x3a, 0xd9, 0x9b, 0xe0, - 0x06, 0xda, 0x83, 0x52, 0x6b, 0x65, 0xb1, 0xb9, 0xb0, 0xe1, 0x4f, 0x1d, 0x3d, 0x1b, 0xa6, 0xde, - 0x28, 0x6a, 0xde, 0xbc, 0x7f, 0xd1, 0x9b, 0x72, 0xde, 0x08, 0xd7, 0x0f, 0xc8, 0x5d, 0x6e, 0x34, - 0xab, 0xc5, 0xb5, 0x72, 0x61, 0x93, 0xb7, 0x84, 0xea, 0x8d, 0xda, 0x7a, 0x53, 0xdb, 0xa8, 0x56, - 0x2b, 0xd5, 0x65, 0x42, 0xcc, 0x33, 0x20, 0x4f, 0x86, 0x19, 0xce, 0x69, 0x95, 0x46, 0xb9, 0x59, - 0xaa, 0x55, 0x97, 0x2a, 0xcb, 0x05, 0x63, 0x90, 0x19, 0xf5, 0xa0, 0x72, 0x0d, 0x5c, 0xc5, 0x71, - 0x52, 0xa9, 0x55, 0xbd, 0x79, 0x70, 0xa9, 0x58, 0x2d, 0x95, 0xbd, 0x49, 0xef, 0x05, 0x45, 0x85, - 0x13, 0x84, 0x5c, 0x73, 0xa9, 0xb2, 0xca, 0x6e, 0x5d, 0x7d, 0x30, 0xa3, 0x9c, 0x82, 0xcb, 0xd8, - 0x6f, 0x95, 0xea, 0xd9, 0xe2, 0x6a, 0x65, 0xb1, 0xf0, 0xa1, 0x8c, 0x72, 0x1d, 0x5c, 0xcd, 0xfd, - 0x45, 0x76, 0xa1, 0x9a, 0x95, 0xc5, 0xe6, 0x5a, 0xa5, 0xbe, 0x56, 0x6c, 0x94, 0x56, 0x0a, 0x1f, - 0xc6, 0xb3, 0x8b, 0xc0, 0x5c, 0x66, 0x9c, 0x38, 0x5f, 0xc2, 0x5a, 0x00, 0x45, 0x5e, 0x51, 0x9f, - 0xdc, 0x17, 0xf6, 0x78, 0x8b, 0xf7, 0xfd, 0xc1, 0x58, 0xb2, 0xc8, 0xa9, 0xd0, 0x2d, 0x09, 0x68, - 0x25, 0xd3, 0xa1, 0xc6, 0x10, 0x2a, 0x74, 0x0d, 0x5c, 0x55, 0x2d, 0x13, 0xa4, 0xb4, 0x72, 0xa9, - 0x76, 0xb6, 0xac, 0x35, 0xcf, 0x15, 0x57, 0x57, 0xcb, 0x8d, 0xe6, 0x52, 0x45, 0xab, 0x37, 0x0a, - 0x9b, 0xea, 0x3f, 0x4b, 0xc1, 0xda, 0x0f, 0x23, 0xad, 0xbf, 0x91, 0x92, 0x36, 0xeb, 0xd8, 0x35, - 0x9e, 0x1f, 0x80, 0xbc, 0xe3, 0xea, 0xee, 0xae, 0x43, 0x5b, 0xf5, 0x13, 0xfa, 0xb7, 0xea, 0xf9, - 0x3a, 0xce, 0xa4, 0xd1, 0xcc, 0xea, 0x67, 0x33, 0x49, 0x9a, 0xe9, 0x08, 0x96, 0x7f, 0x8c, 0x21, - 0x44, 0x7c, 0x1a, 0x54, 0x5f, 0xdb, 0x2b, 0xf5, 0x66, 0x71, 0x55, 0x2b, 0x17, 0x17, 0x1f, 0x08, - 0x16, 0x7d, 0x90, 0x72, 0x02, 0x8e, 0x6d, 0x54, 0x8b, 0x0b, 0xab, 0x65, 0xdc, 0x5c, 0x6a, 0xd5, - 0x6a, 0xb9, 0xe4, 0xc9, 0xfd, 0xa7, 0xf0, 0x16, 0x8b, 0x67, 0x6f, 0x63, 0xbe, 0x3d, 0x9b, 0x88, - 0x91, 0xff, 0x97, 0x85, 0x3d, 0x91, 0x42, 0x0d, 0x63, 0x69, 0x8d, 0x16, 0x87, 0xcf, 0x08, 0x39, - 0x1f, 0x09, 0x71, 0x92, 0x0c, 0x8f, 0x1f, 0x1b, 0x02, 0x8f, 0x13, 0x70, 0x8c, 0xc5, 0x03, 0x3b, - 0x21, 0x45, 0xc3, 0xf0, 0xa2, 0x29, 0xc8, 0xd7, 0x51, 0x07, 0xb5, 0x5c, 0xf5, 0x31, 0x29, 0x34, - 0x3d, 0xe6, 0x40, 0x0a, 0x9c, 0x5e, 0x24, 0xa3, 0xcd, 0x4d, 0xb6, 0xa5, 0x9e, 0xc9, 0x76, 0x8c, - 0xd1, 0x20, 0x27, 0x32, 0x1a, 0xb2, 0x29, 0x18, 0x0d, 0xb9, 0xe1, 0x8d, 0x86, 0x7c, 0x52, 0xa3, - 0x61, 0x22, 0xd6, 0x68, 0x50, 0x7f, 0x2b, 0x9f, 0xb4, 0x4f, 0x21, 0xc0, 0x1c, 0xae, 0xa9, 0xf0, - 0x3f, 0xb3, 0x49, 0xfa, 0xa0, 0xbe, 0x1c, 0x27, 0xd3, 0xf9, 0xef, 0xc8, 0x29, 0x2c, 0x6d, 0x28, - 0xd7, 0xc2, 0xd5, 0xe1, 0x7b, 0xb3, 0xfc, 0xac, 0x4a, 0xbd, 0x51, 0xc7, 0xf6, 0x41, 0xa9, 0xa6, - 0x69, 0x1b, 0xeb, 0x64, 0x7d, 0xfa, 0x24, 0x28, 0x21, 0x15, 0x6d, 0xa3, 0x4a, 0xac, 0x81, 0x2d, - 0x9e, 0xfa, 0x52, 0xa5, 0xba, 0xd8, 0x0c, 0x5a, 0x58, 0x75, 0xa9, 0x56, 0xd8, 0xf6, 0xa6, 0x83, - 0x0c, 0x75, 0x6f, 0x38, 0xa7, 0x25, 0x14, 0xab, 0x8b, 0xcd, 0xb5, 0x6a, 0x79, 0xad, 0x56, 0xad, - 0x94, 0x70, 0x7a, 0xbd, 0xdc, 0x28, 0x18, 0xde, 0xb0, 0xd4, 0x63, 0x7f, 0xd4, 0xcb, 0x45, 0xad, - 0xb4, 0x52, 0xd6, 0x48, 0x91, 0x0f, 0x2a, 0xd7, 0xc3, 0x99, 0x62, 0xb5, 0xd6, 0xf0, 0x52, 0x8a, - 0xd5, 0x07, 0x1a, 0x0f, 0xac, 0x97, 0x9b, 0xeb, 0x5a, 0xad, 0x54, 0xae, 0xd7, 0xbd, 0x56, 0x4d, - 0xad, 0x95, 0x42, 0x47, 0xb9, 0x1b, 0xee, 0x60, 0x58, 0x2b, 0x37, 0xf0, 0x66, 0xe8, 0x5a, 0x0d, - 0xfb, 0xc3, 0x2c, 0x96, 0x9b, 0x2b, 0xc5, 0x7a, 0xb3, 0x52, 0x2d, 0xd5, 0xd6, 0xd6, 0x8b, 0x8d, - 0x8a, 0xd7, 0xf8, 0xd7, 0xb5, 0x5a, 0xa3, 0xd6, 0x3c, 0x5b, 0xd6, 0xea, 0x95, 0x5a, 0xb5, 0x60, - 0x7a, 0x55, 0x66, 0x7a, 0x0b, 0xbf, 0xd7, 0xb6, 0x94, 0xab, 0xe0, 0x94, 0x9f, 0xbe, 0x5a, 0xf3, - 0x04, 0xcd, 0xd8, 0x2f, 0xdd, 0x54, 0xed, 0x97, 0x7f, 0x95, 0x20, 0x5b, 0x77, 0xad, 0xae, 0xfa, - 0xfd, 0x61, 0x77, 0x74, 0x1a, 0xc0, 0xc6, 0x7b, 0x9b, 0xde, 0x0c, 0x8f, 0xce, 0xf9, 0x98, 0x14, - 0xf5, 0x4f, 0x84, 0x37, 0x64, 0xc2, 0x1e, 0xde, 0xea, 0x46, 0x58, 0x36, 0xdf, 0x12, 0x3b, 0xa1, - 0x12, 0x4d, 0x28, 0x99, 0xbe, 0xff, 0xec, 0x30, 0x5b, 0x2e, 0x2a, 0x9c, 0x64, 0x60, 0xf3, 0xe4, - 0xef, 0xab, 0x04, 0x52, 0x2e, 0x87, 0xcb, 0x7a, 0x94, 0x0b, 0xeb, 0xd4, 0xa6, 0xf2, 0x7d, 0xf0, - 0x04, 0x46, 0xbd, 0xcb, 0x6b, 0xb5, 0xb3, 0xe5, 0x40, 0x91, 0x17, 0x8b, 0x8d, 0x62, 0x61, 0x4b, - 0xfd, 0x84, 0x0c, 0xd9, 0x35, 0x6b, 0xaf, 0x77, 0x1f, 0xcc, 0x44, 0x17, 0x99, 0x75, 0x56, 0xff, - 0x95, 0xf7, 0xc8, 0x17, 0x12, 0xfb, 0x5a, 0xf4, 0x9e, 0xf7, 0x67, 0xa4, 0x24, 0x62, 0x5f, 0x3b, - 0xe8, 0x46, 0xf7, 0x3f, 0x0c, 0x23, 0xf6, 0x08, 0xd1, 0x22, 0xe5, 0x0c, 0x9c, 0x0e, 0x3f, 0x54, - 0x16, 0xcb, 0xd5, 0x46, 0x65, 0xe9, 0x81, 0x50, 0xb8, 0x15, 0x4d, 0x48, 0xfc, 0x83, 0xba, 0xb1, - 0xf8, 0x79, 0xc9, 0x29, 0x38, 0x1e, 0x7e, 0x5b, 0x2e, 0x37, 0xfc, 0x2f, 0x0f, 0xaa, 0x0f, 0xe7, - 0x60, 0x86, 0x74, 0xeb, 0x1b, 0xdd, 0xb6, 0xee, 0x22, 0xf5, 0xa9, 0x21, 0xba, 0x37, 0xc0, 0xd1, - 0xca, 0xfa, 0x52, 0xbd, 0xee, 0x5a, 0xb6, 0xbe, 0x85, 0xf0, 0x38, 0x46, 0xa4, 0xd5, 0x9b, 0xac, - 0xbe, 0x59, 0x78, 0x0d, 0x91, 0x1f, 0x4a, 0x48, 0x99, 0x11, 0xa8, 0x7f, 0x5e, 0x68, 0xcd, 0x4f, - 0x80, 0x60, 0x32, 0xf4, 0x1f, 0x1c, 0x71, 0x9b, 0x8b, 0xc6, 0x65, 0xf3, 0xcc, 0xf3, 0x24, 0x98, - 0x6a, 0x18, 0x3b, 0xe8, 0xd9, 0x96, 0x89, 0x1c, 0x65, 0x02, 0xe4, 0xe5, 0xb5, 0x46, 0xe1, 0x88, - 0xf7, 0xe0, 0x99, 0x60, 0x19, 0xfc, 0x50, 0xf6, 0x0a, 0xf0, 0x1e, 0x8a, 0x8d, 0x82, 0xec, 0x3d, - 0xac, 0x95, 0x1b, 0x85, 0xac, 0xf7, 0x50, 0x2d, 0x37, 0x0a, 0x39, 0xef, 0x61, 0x7d, 0xb5, 0x51, - 0xc8, 0x7b, 0x0f, 0x95, 0x7a, 0xa3, 0x30, 0xe1, 0x3d, 0x2c, 0xd4, 0x1b, 0x85, 0x49, 0xef, 0xe1, - 0x6c, 0xbd, 0x51, 0x98, 0xf2, 0x1e, 0x4a, 0x8d, 0x46, 0x01, 0xbc, 0x87, 0xfb, 0xea, 0x8d, 0xc2, - 0xb4, 0xf7, 0x50, 0x2c, 0x35, 0x0a, 0x33, 0xf8, 0xa1, 0xdc, 0x28, 0xcc, 0x7a, 0x0f, 0xf5, 0x7a, - 0xa3, 0x30, 0x87, 0x29, 0xd7, 0x1b, 0x85, 0xa3, 0xb8, 0xac, 0x4a, 0xa3, 0x50, 0xf0, 0x1e, 0x56, - 0xea, 0x8d, 0xc2, 0x31, 0x9c, 0xb9, 0xde, 0x28, 0x28, 0xb8, 0xd0, 0x7a, 0xa3, 0x70, 0x19, 0xce, - 0x53, 0x6f, 0x14, 0x8e, 0xe3, 0x22, 0xea, 0x8d, 0xc2, 0x09, 0xcc, 0x46, 0xb9, 0x51, 0x38, 0x89, - 0xf3, 0x68, 0x8d, 0xc2, 0xe5, 0xf8, 0x53, 0xb5, 0x51, 0x38, 0x85, 0x19, 0x2b, 0x37, 0x0a, 0x57, - 0xe0, 0x07, 0xad, 0x51, 0x50, 0xf1, 0xa7, 0x62, 0xa3, 0x70, 0xa5, 0xfa, 0x04, 0x98, 0x5a, 0x46, - 0x2e, 0x01, 0x51, 0x2d, 0x80, 0xbc, 0x8c, 0x5c, 0xd6, 0xe8, 0xff, 0xa2, 0x0c, 0x97, 0xd3, 0x89, - 0xe2, 0x92, 0x6d, 0xed, 0xac, 0xa2, 0x2d, 0xbd, 0x75, 0xa9, 0xfc, 0x90, 0x67, 0x70, 0xb1, 0x7b, - 0xbe, 0x0a, 0x64, 0xbb, 0x61, 0x67, 0x84, 0x9f, 0x63, 0xed, 0x53, 0x7f, 0xa1, 0x4b, 0x0e, 0x17, - 0xba, 0xa8, 0x45, 0xf6, 0x4f, 0xac, 0x46, 0x73, 0x6b, 0xd3, 0x99, 0x9e, 0xb5, 0x69, 0xaf, 0x99, - 0x74, 0x91, 0xed, 0x58, 0xa6, 0xde, 0xa9, 0x53, 0xa7, 0x00, 0xb2, 0xa2, 0xd6, 0x9b, 0xac, 0xfc, - 0x90, 0xdf, 0x32, 0x88, 0x55, 0xf6, 0xcc, 0xb8, 0xf9, 0x70, 0x6f, 0x35, 0x23, 0x1a, 0xc9, 0x87, - 0x83, 0x46, 0xd2, 0xe0, 0x1a, 0xc9, 0xbd, 0x07, 0xa0, 0x9d, 0xac, 0xbd, 0x54, 0x86, 0x9b, 0x88, - 0x84, 0x2e, 0xb3, 0xfe, 0x52, 0xb8, 0xac, 0x7e, 0x42, 0x82, 0x93, 0x65, 0xb3, 0xdf, 0x7c, 0x80, - 0xd5, 0x85, 0xd7, 0xb2, 0xd0, 0xac, 0xf3, 0x22, 0xbd, 0xa3, 0x6f, 0xb5, 0xfb, 0xd3, 0x8c, 0x90, - 0xe8, 0x47, 0x03, 0x89, 0xd6, 0x39, 0x89, 0xde, 0x33, 0x3c, 0xe9, 0x64, 0x02, 0xad, 0x8e, 0xb4, - 0x03, 0xca, 0xaa, 0x5f, 0x92, 0xe0, 0x18, 0xf1, 0xeb, 0xb9, 0x8f, 0x4c, 0x3f, 0x70, 0x97, 0xcd, - 0x9b, 0x50, 0x9d, 0x70, 0xaa, 0x42, 0xf4, 0x9b, 0x49, 0x51, 0x5f, 0xc5, 0x0a, 0xfc, 0x7e, 0x5e, - 0xe0, 0x11, 0x9d, 0x71, 0x6f, 0x71, 0x11, 0xb2, 0xfe, 0x50, 0x20, 0xeb, 0x2a, 0x27, 0xeb, 0x3b, - 0x86, 0xa2, 0x7a, 0xb8, 0x62, 0xfe, 0x4a, 0x16, 0x9e, 0x40, 0x38, 0xa4, 0x8a, 0x40, 0x3a, 0xb3, - 0xa2, 0xd9, 0xd6, 0x90, 0xe3, 0xea, 0xb6, 0xcb, 0x1d, 0x69, 0xef, 0x99, 0xdf, 0x66, 0x52, 0x98, - 0xdf, 0x4a, 0x03, 0xe7, 0xb7, 0xea, 0x9b, 0x58, 0x2b, 0xed, 0x1c, 0x8f, 0x6c, 0x31, 0x06, 0x83, - 0x88, 0x1a, 0x46, 0xb5, 0xa8, 0xc0, 0x7c, 0xfb, 0x61, 0x0e, 0xe5, 0xa5, 0x03, 0x97, 0x90, 0x0c, - 0xf1, 0x3f, 0x19, 0xad, 0x39, 0x9d, 0x65, 0xbf, 0xf1, 0xb6, 0x5f, 0xa1, 0x9d, 0xea, 0x3c, 0xe8, - 0xc5, 0x93, 0x30, 0x85, 0xbb, 0x9c, 0x55, 0xc3, 0xbc, 0xe0, 0x8d, 0x8d, 0x33, 0x55, 0x74, 0xb1, - 0xb4, 0xad, 0x77, 0x3a, 0xc8, 0xdc, 0x42, 0xea, 0x83, 0x9c, 0x81, 0xae, 0x77, 0xbb, 0xd5, 0x70, - 0xab, 0xc8, 0x7f, 0x55, 0xee, 0x81, 0x9c, 0xd3, 0xb2, 0xba, 0x08, 0x0b, 0x6a, 0x8e, 0x71, 0x2e, - 0xe1, 0x97, 0xbb, 0x8a, 0xbb, 0xee, 0xf6, 0x3c, 0x2e, 0xab, 0xd8, 0x35, 0xea, 0xde, 0x0f, 0x1a, - 0xf9, 0x8f, 0x8e, 0x93, 0x5f, 0xee, 0xdb, 0x19, 0x67, 0x62, 0x3a, 0xe3, 0x80, 0xf1, 0x79, 0x96, - 0xe9, 0x88, 0x95, 0x8c, 0x6b, 0x60, 0xba, 0xe5, 0x67, 0x09, 0xce, 0xce, 0xb0, 0x49, 0xea, 0xdf, - 0x25, 0xea, 0xae, 0x85, 0x0a, 0x4f, 0xa6, 0x55, 0x68, 0xc4, 0xf6, 0xe2, 0x09, 0x38, 0xd6, 0xa8, - 0xd5, 0x9a, 0x6b, 0xc5, 0xea, 0x03, 0xe1, 0x99, 0xf5, 0x4d, 0xf5, 0x65, 0x59, 0x98, 0xab, 0x5b, - 0x9d, 0x3d, 0x14, 0xe2, 0x5c, 0xe1, 0x9c, 0xb2, 0x58, 0x39, 0x65, 0xf6, 0xc9, 0x49, 0x39, 0x09, - 0x79, 0xdd, 0x74, 0x2e, 0x22, 0xdf, 0x86, 0xa7, 0x6f, 0x14, 0xc6, 0x77, 0xb1, 0x1d, 0x81, 0xc6, - 0xc3, 0x78, 0xe7, 0x00, 0x49, 0xf2, 0x5c, 0x45, 0x00, 0x79, 0x06, 0x66, 0x1c, 0xb2, 0x61, 0xdc, - 0x60, 0xfc, 0x02, 0xb8, 0x34, 0xcc, 0x22, 0xf1, 0x58, 0x90, 0x29, 0x8b, 0xf8, 0x4d, 0x7d, 0x65, - 0xd0, 0x7f, 0x6c, 0x70, 0x10, 0x17, 0x0f, 0xc2, 0x58, 0x32, 0x90, 0x1f, 0x19, 0xf5, 0x4c, 0xfc, - 0x14, 0x1c, 0xa7, 0xcd, 0xbe, 0x59, 0x5a, 0x29, 0xae, 0xae, 0x96, 0xab, 0xcb, 0xe5, 0x66, 0x65, - 0x91, 0x6c, 0x40, 0x85, 0x29, 0xc5, 0x46, 0xa3, 0xbc, 0xb6, 0xde, 0xa8, 0x37, 0xcb, 0xcf, 0x2a, - 0x95, 0xcb, 0x8b, 0xd8, 0x2d, 0x12, 0x9f, 0x6b, 0xf2, 0x1d, 0x58, 0x8b, 0xd5, 0xfa, 0xb9, 0xb2, - 0x56, 0xd8, 0x3e, 0x53, 0x84, 0x69, 0x66, 0xa0, 0xf0, 0xb8, 0x5b, 0x44, 0x9b, 0xfa, 0x6e, 0x87, - 0xda, 0xd4, 0x85, 0x23, 0x1e, 0x77, 0x58, 0x36, 0x35, 0xb3, 0x73, 0xa9, 0x90, 0x51, 0x0a, 0x30, - 0xc3, 0x8e, 0x09, 0x05, 0x49, 0x7d, 0xfd, 0x55, 0x30, 0x75, 0xce, 0xb2, 0x2f, 0x60, 0x5f, 0x3e, - 0xf5, 0x6d, 0x24, 0xb6, 0x8d, 0x7f, 0x4a, 0x98, 0x31, 0xc0, 0x1e, 0x11, 0xf7, 0x18, 0xf1, 0xa9, - 0xcd, 0x0f, 0x3c, 0x09, 0x7c, 0x0d, 0x4c, 0x5f, 0xf4, 0x73, 0x87, 0x2d, 0x9d, 0x49, 0x52, 0xff, - 0x9b, 0x98, 0x0f, 0xc8, 0xe0, 0x22, 0xd3, 0xf7, 0x51, 0x78, 0x9d, 0x04, 0xf9, 0x65, 0xe4, 0x16, - 0x3b, 0x1d, 0x56, 0x6e, 0x2f, 0x15, 0x3e, 0xdd, 0xc5, 0x55, 0xa2, 0xd8, 0xe9, 0x44, 0x37, 0x2a, - 0x46, 0x40, 0xfe, 0x29, 0x04, 0x2e, 0x4d, 0xd0, 0x77, 0x72, 0x40, 0x81, 0xe9, 0x4b, 0xec, 0x3d, - 0x72, 0xe0, 0xe7, 0xf0, 0x28, 0x63, 0x26, 0xdd, 0x1a, 0xc6, 0x35, 0xca, 0xc4, 0xfb, 0x4b, 0xf8, - 0xf9, 0x94, 0xfb, 0x61, 0x62, 0xd7, 0x41, 0x25, 0xdd, 0xf1, 0x87, 0x36, 0xbe, 0xa6, 0xb5, 0xf3, - 0x0f, 0xa2, 0x96, 0x3b, 0x5f, 0xd9, 0xf1, 0x26, 0x3e, 0x1b, 0x24, 0x63, 0x10, 0x2a, 0x88, 0xbe, - 0x6b, 0x3e, 0x05, 0x6f, 0xf2, 0x78, 0xd1, 0x70, 0xb7, 0x4b, 0xdb, 0xba, 0x4b, 0x77, 0x2c, 0x82, - 0x77, 0xf5, 0x45, 0x43, 0xc0, 0x19, 0xbb, 0xc3, 0x1f, 0x79, 0x48, 0x34, 0x31, 0x88, 0x23, 0xd8, - 0x96, 0x1f, 0x06, 0xc4, 0x7f, 0x94, 0x20, 0x5b, 0xeb, 0x22, 0x53, 0xf8, 0x44, 0x54, 0x20, 0x5b, - 0xa9, 0x47, 0xb6, 0xaf, 0x14, 0xf7, 0x10, 0x0c, 0x2a, 0xed, 0x95, 0x1c, 0x21, 0xd9, 0x9b, 0x21, - 0x6b, 0x98, 0x9b, 0x16, 0xb5, 0x6c, 0xaf, 0x8c, 0xb0, 0x75, 0x2a, 0xe6, 0xa6, 0xa5, 0xe1, 0x8c, - 0xa2, 0xce, 0x81, 0x71, 0x65, 0xa7, 0x2f, 0xee, 0xaf, 0x4e, 0x42, 0x9e, 0xa8, 0xb3, 0xfa, 0x12, - 0x19, 0xe4, 0x62, 0xbb, 0x1d, 0x21, 0x78, 0x69, 0x9f, 0xe0, 0x2d, 0xfc, 0x5b, 0x80, 0x49, 0xf0, - 0xce, 0x07, 0xb4, 0x11, 0xec, 0xdb, 0x69, 0x93, 0x2a, 0xb6, 0xdb, 0xd1, 0x7e, 0xc8, 0x41, 0x81, - 0x12, 0x5f, 0x20, 0xdb, 0xc2, 0x65, 0xb1, 0x16, 0x9e, 0x78, 0x20, 0x88, 0xe4, 0x2f, 0x7d, 0x88, - 0xfe, 0x49, 0x82, 0x89, 0x55, 0xc3, 0x71, 0x3d, 0x6c, 0x8a, 0x22, 0xd8, 0x5c, 0x05, 0x53, 0xbe, - 0x68, 0xbc, 0x2e, 0xcf, 0xeb, 0xcf, 0xc3, 0x04, 0x7e, 0x26, 0x7e, 0x1f, 0x8f, 0xce, 0xd3, 0xe2, - 0x6b, 0x4f, 0xb9, 0x88, 0x3e, 0x69, 0x12, 0x16, 0x2b, 0xf5, 0x16, 0xfb, 0x7b, 0x81, 0xc0, 0xd7, - 0x38, 0x81, 0xdf, 0x3e, 0x4c, 0x91, 0xe9, 0x0b, 0xfd, 0x93, 0x12, 0x80, 0x57, 0x36, 0x3d, 0xce, - 0xf7, 0x24, 0xee, 0x90, 0x7e, 0x8c, 0x74, 0x5f, 0xc6, 0x4a, 0x77, 0x8d, 0x97, 0xee, 0x0f, 0x0e, - 0xae, 0x6a, 0xdc, 0xb1, 0x3d, 0xa5, 0x00, 0xb2, 0x11, 0x88, 0xd6, 0x7b, 0x54, 0x5f, 0x17, 0x08, - 0x75, 0x9d, 0x13, 0xea, 0x9d, 0x43, 0x96, 0x94, 0xbe, 0x5c, 0xff, 0x4a, 0x82, 0x89, 0x3a, 0x72, - 0xbd, 0x6e, 0x52, 0x3d, 0x2b, 0xd2, 0xc3, 0x33, 0x6d, 0x5b, 0x12, 0x6c, 0xdb, 0xdf, 0xcc, 0x88, - 0x06, 0xfb, 0x09, 0x25, 0x43, 0x79, 0x8a, 0x58, 0x7d, 0x78, 0x54, 0x28, 0xd8, 0xcf, 0x20, 0x6a, - 0xe9, 0x4b, 0xf7, 0xb5, 0x52, 0xe0, 0x6e, 0xc1, 0x9f, 0xb6, 0x61, 0xcd, 0xe2, 0xcc, 0x7e, 0xb3, - 0x58, 0xfc, 0xb4, 0x0d, 0x5b, 0xc7, 0x68, 0xef, 0x81, 0xc4, 0xc6, 0xc6, 0x08, 0x36, 0xf6, 0x87, - 0x91, 0xd7, 0x73, 0x65, 0xc8, 0xd3, 0x1d, 0x80, 0x7b, 0xe2, 0x77, 0x00, 0x06, 0x4f, 0x2d, 0xde, - 0x3a, 0x84, 0x29, 0x17, 0xb7, 0x2c, 0x1f, 0xb0, 0x21, 0x31, 0x6c, 0xdc, 0x04, 0x39, 0x1c, 0x8d, - 0x94, 0x8e, 0x73, 0xa1, 0x4f, 0x86, 0x4f, 0xa2, 0xec, 0x7d, 0xd5, 0x48, 0xa6, 0xc4, 0x28, 0x8c, - 0x60, 0x25, 0x7f, 0x18, 0x14, 0xbe, 0xa2, 0x00, 0xac, 0xef, 0x9e, 0xef, 0x18, 0xce, 0xb6, 0x61, - 0x6e, 0xa9, 0x6f, 0x90, 0x60, 0x86, 0xbe, 0x92, 0xa0, 0x9a, 0xb1, 0xe6, 0x5f, 0xa4, 0x51, 0x50, - 0x00, 0x79, 0xd7, 0x36, 0xe8, 0x32, 0x80, 0xf7, 0xa8, 0xdc, 0x15, 0xb8, 0x67, 0x65, 0x7b, 0xc2, - 0x29, 0x78, 0x62, 0x08, 0x39, 0x98, 0x67, 0x4a, 0x0f, 0xdd, 0xb4, 0xd8, 0xc8, 0xa9, 0x39, 0x3e, - 0x72, 0x2a, 0x77, 0xc6, 0x32, 0xdf, 0x73, 0xc6, 0xd2, 0xc3, 0xd1, 0x31, 0x9e, 0x8d, 0xb0, 0xff, - 0x8e, 0xac, 0xe1, 0x67, 0xef, 0x8f, 0x07, 0x2d, 0xc3, 0xc4, 0x9b, 0x3a, 0xd4, 0x7d, 0x38, 0x4c, - 0x60, 0xfb, 0xbc, 0x29, 0xc1, 0x3e, 0xef, 0xdd, 0xe1, 0xdc, 0xc7, 0x12, 0x34, 0x9c, 0x13, 0x48, - 0x8e, 0x63, 0x37, 0xdb, 0xc3, 0xae, 0xfa, 0x3e, 0xe1, 0xe0, 0x6a, 0x8c, 0x8c, 0x63, 0x67, 0x31, - 0x94, 0x03, 0x29, 0xe0, 0x80, 0xd9, 0xc8, 0x8d, 0xeb, 0x81, 0x07, 0xd1, 0x4f, 0xa6, 0xcb, 0x3b, - 0x43, 0xac, 0xd7, 0x28, 0x30, 0xe7, 0x1f, 0x56, 0xad, 0x2d, 0xdc, 0x57, 0x2e, 0x35, 0x0a, 0x68, - 0xff, 0x01, 0x56, 0x7c, 0x54, 0x95, 0x1c, 0x4b, 0x0d, 0xd7, 0x64, 0xd4, 0xff, 0x21, 0x41, 0x9e, - 0x9a, 0x1b, 0xf7, 0x1c, 0x10, 0x42, 0xf5, 0xe5, 0xc3, 0x40, 0x12, 0x1b, 0x33, 0xe0, 0x23, 0x49, - 0x01, 0x18, 0x81, 0x81, 0xf1, 0x40, 0x6a, 0x00, 0xa8, 0xff, 0x22, 0x41, 0xd6, 0x33, 0x83, 0xc4, - 0x4e, 0x64, 0x7f, 0x58, 0xd8, 0xbb, 0x99, 0x11, 0x80, 0x47, 0x3e, 0x42, 0xbf, 0x17, 0x60, 0xaa, - 0x4b, 0x32, 0x06, 0xf1, 0x00, 0xae, 0x13, 0xe8, 0x8c, 0x90, 0x16, 0xfe, 0xa6, 0xbe, 0x45, 0xc8, - 0x43, 0x3a, 0x9e, 0x9f, 0x64, 0x70, 0x94, 0x47, 0x71, 0x78, 0x7b, 0x53, 0xfd, 0xb6, 0x04, 0xa0, - 0x21, 0xc7, 0xea, 0xec, 0xa1, 0x0d, 0xdb, 0x50, 0xaf, 0x0c, 0x01, 0xa0, 0xcd, 0x3e, 0x13, 0x36, - 0xfb, 0x8f, 0xb1, 0x82, 0x5f, 0xe6, 0x05, 0x7f, 0x6b, 0xb4, 0xe6, 0xf9, 0xc4, 0x23, 0xc4, 0x7f, - 0x37, 0x4c, 0x50, 0x39, 0x52, 0x9b, 0x52, 0x4c, 0xf8, 0xfe, 0x4f, 0xea, 0xdb, 0x03, 0xd1, 0xdf, - 0xc7, 0x89, 0xfe, 0xe9, 0x89, 0x39, 0x4a, 0x06, 0x40, 0x69, 0x08, 0x00, 0x8e, 0xc2, 0xb4, 0x0f, - 0xc0, 0x86, 0x56, 0x29, 0x20, 0xf5, 0x8d, 0x32, 0x76, 0x93, 0x20, 0x83, 0xdb, 0xc1, 0x7b, 0x9a, - 0x2f, 0x09, 0x4f, 0xf6, 0x19, 0x79, 0x04, 0xe5, 0xa7, 0x04, 0xd0, 0x9f, 0x0b, 0xcd, 0xee, 0x05, - 0x18, 0x7a, 0xbc, 0xf4, 0x57, 0x67, 0xca, 0x30, 0xcb, 0x59, 0x25, 0xca, 0x29, 0x38, 0xce, 0x25, - 0x90, 0xf1, 0xae, 0x5d, 0x38, 0xa2, 0xa8, 0x70, 0x92, 0xfb, 0x42, 0x5f, 0x50, 0xbb, 0x90, 0x51, - 0xbf, 0xf6, 0xa9, 0x4c, 0xb0, 0xde, 0xf3, 0xd6, 0x2c, 0x5d, 0x69, 0xfb, 0x00, 0x1f, 0x82, 0xae, - 0x65, 0x99, 0x2e, 0x7a, 0x88, 0x71, 0x53, 0x09, 0x12, 0x62, 0xad, 0x86, 0x53, 0x30, 0xe1, 0xda, - 0xac, 0xeb, 0x8a, 0xff, 0xca, 0x2a, 0x56, 0x8e, 0x57, 0xac, 0x2a, 0x9c, 0x31, 0xcc, 0x56, 0x67, - 0xb7, 0x8d, 0x34, 0xd4, 0xd1, 0x3d, 0x19, 0x3a, 0x45, 0x67, 0x11, 0x75, 0x91, 0xd9, 0x46, 0xa6, - 0x4b, 0xf8, 0xf4, 0x8f, 0xc0, 0x09, 0xe4, 0xe4, 0x95, 0xf1, 0x2e, 0x5e, 0x19, 0x9f, 0xd4, 0x6f, - 0x09, 0x37, 0x66, 0xbd, 0xef, 0x76, 0x00, 0x52, 0xb7, 0xb3, 0x06, 0xba, 0x48, 0xd5, 0xf0, 0x8a, - 0x9e, 0x55, 0xbf, 0x5a, 0x90, 0x41, 0x63, 0x32, 0xab, 0x8f, 0x05, 0xea, 0x77, 0x2f, 0xa7, 0x7e, - 0x37, 0x09, 0xb2, 0x90, 0x4c, 0xeb, 0xba, 0x43, 0x68, 0xdd, 0x2c, 0x4c, 0x85, 0xbb, 0xc9, 0xb2, - 0x72, 0x05, 0x9c, 0xf0, 0xdd, 0x80, 0xab, 0xe5, 0xf2, 0x62, 0xbd, 0xb9, 0xb1, 0xbe, 0xac, 0x15, - 0x17, 0xcb, 0x05, 0xf0, 0xf4, 0x93, 0xe8, 0x65, 0xe0, 0xbd, 0x9b, 0x55, 0x3f, 0x25, 0x41, 0x0e, - 0x9f, 0xdf, 0x54, 0x7f, 0x74, 0x44, 0x9a, 0xe3, 0x70, 0x4e, 0x4f, 0xc1, 0xb8, 0x2b, 0x1e, 0x1a, - 0x9e, 0x0a, 0x13, 0x73, 0x75, 0xa0, 0xd0, 0xf0, 0x31, 0x84, 0xd2, 0x9f, 0x09, 0x79, 0x4d, 0xb2, - 0xbe, 0x6d, 0x5d, 0xfc, 0x5e, 0x6e, 0x92, 0x5e, 0xfd, 0x0f, 0xb9, 0x49, 0xf6, 0x61, 0x61, 0xec, - 0x4d, 0xb2, 0x4f, 0xbb, 0x8b, 0x69, 0xa6, 0xea, 0x73, 0x72, 0xc1, 0xfc, 0xef, 0x79, 0xd2, 0x81, - 0xf6, 0xbe, 0x8a, 0x30, 0x6b, 0x98, 0x2e, 0xb2, 0x4d, 0xbd, 0xb3, 0xd4, 0xd1, 0xb7, 0x7c, 0xfb, - 0xb4, 0x77, 0xc3, 0xa3, 0xc2, 0xe4, 0xd1, 0xf8, 0x3f, 0x94, 0xd3, 0x00, 0x2e, 0xda, 0xe9, 0x76, - 0x74, 0x37, 0x54, 0x3d, 0x26, 0x85, 0xd5, 0xbe, 0x2c, 0xaf, 0x7d, 0xb7, 0xc0, 0x65, 0x04, 0xb4, - 0xc6, 0xa5, 0x2e, 0xda, 0x30, 0x8d, 0x1f, 0xdf, 0xc5, 0x11, 0x4b, 0x89, 0x8e, 0xf6, 0xfb, 0xc4, - 0xed, 0x00, 0xe5, 0x7b, 0x76, 0x80, 0xfe, 0x51, 0x38, 0x12, 0x8a, 0xdf, 0xea, 0x07, 0x44, 0x42, - 0x09, 0x5a, 0x9a, 0xdc, 0xd3, 0xd2, 0x82, 0x75, 0x99, 0xac, 0xc0, 0xba, 0x0c, 0x8b, 0x4a, 0x4e, - 0x70, 0x7e, 0xff, 0x0a, 0xa1, 0x50, 0x2b, 0x71, 0xd5, 0x18, 0xc3, 0x9a, 0xb9, 0x0c, 0x73, 0xa4, - 0xe8, 0x05, 0xcb, 0xba, 0xb0, 0xa3, 0xdb, 0x17, 0x54, 0xfb, 0x40, 0xaa, 0x18, 0xbb, 0xfd, 0x14, - 0xb9, 0xa7, 0xfa, 0x51, 0xe1, 0x39, 0x03, 0x27, 0x2e, 0x9f, 0xe7, 0xf1, 0xec, 0x3f, 0xbd, 0x5a, - 0x68, 0x0a, 0x21, 0xc2, 0x60, 0xfa, 0xb8, 0xfe, 0x69, 0x80, 0xab, 0xdf, 0xd1, 0xb3, 0x4b, 0xf7, - 0xa3, 0xc4, 0x55, 0xfd, 0xfc, 0x70, 0xd8, 0xf9, 0x7c, 0x0d, 0x81, 0x5d, 0x01, 0xe4, 0x0b, 0x81, - 0xb7, 0x90, 0xf7, 0xc8, 0x56, 0x28, 0x9b, 0x1e, 0x9a, 0x11, 0x2c, 0x8f, 0x05, 0xcd, 0xe3, 0x3c, - 0x0b, 0xb5, 0x6e, 0xaa, 0x98, 0x7e, 0x4e, 0x78, 0x4b, 0xac, 0xaf, 0x80, 0x08, 0x77, 0xe3, 0x69, - 0x95, 0x62, 0xfb, 0x69, 0xe2, 0x6c, 0xa6, 0x8f, 0xe6, 0x0b, 0x73, 0x30, 0xe5, 0xc7, 0xaa, 0xc1, - 0x57, 0x29, 0x05, 0x18, 0x9e, 0x84, 0xbc, 0x63, 0xed, 0xda, 0x2d, 0x44, 0x37, 0x29, 0xe9, 0xdb, - 0x10, 0x1b, 0x6a, 0x03, 0xc7, 0xf3, 0x7d, 0x26, 0x43, 0x36, 0xb1, 0xc9, 0x10, 0x6d, 0x90, 0xc6, - 0x0d, 0xf0, 0x2f, 0x12, 0x8e, 0x7f, 0xcf, 0x61, 0x56, 0x47, 0xee, 0xe3, 0x71, 0x8c, 0xff, 0x63, - 0xa1, 0xed, 0x9a, 0x01, 0x35, 0x49, 0xa6, 0x72, 0xb5, 0x21, 0x0c, 0xd5, 0x2b, 0xe1, 0x72, 0x3f, - 0x07, 0xb5, 0x50, 0xb1, 0x45, 0xba, 0xa1, 0xad, 0x16, 0x64, 0xf5, 0xb9, 0x59, 0x28, 0x10, 0xd6, - 0x6a, 0x81, 0xb1, 0xa6, 0xbe, 0x34, 0x73, 0xd8, 0x16, 0x69, 0xf4, 0x14, 0xf3, 0xe3, 0x92, 0x68, - 0x8c, 0x5d, 0x4e, 0xf0, 0x61, 0xed, 0x22, 0x34, 0x69, 0x88, 0x66, 0x16, 0xa3, 0x7c, 0xea, 0xef, - 0x66, 0x44, 0x42, 0xf6, 0x8a, 0xb1, 0x38, 0x86, 0xf8, 0x4a, 0x59, 0x3f, 0xe4, 0xd8, 0x92, 0x6d, - 0xed, 0x6c, 0xd8, 0x1d, 0xf5, 0xff, 0x16, 0x8a, 0x88, 0x1e, 0x61, 0xfe, 0x4b, 0xd1, 0xe6, 0x3f, - 0x5e, 0x32, 0xee, 0x84, 0x7b, 0x55, 0x9d, 0x21, 0x86, 0x6f, 0xe5, 0x7a, 0x98, 0xd3, 0xdb, 0xed, - 0x75, 0x7d, 0x0b, 0x95, 0xbc, 0x79, 0xb5, 0xe9, 0xd2, 0x70, 0x44, 0x3d, 0xa9, 0xb1, 0x5d, 0x91, - 0xf8, 0x3a, 0x28, 0x07, 0x12, 0x95, 0xcf, 0x58, 0x86, 0x37, 0x6f, 0x48, 0x68, 0x6d, 0xeb, 0x61, - 0x70, 0x34, 0xfa, 0x26, 0xe8, 0x0c, 0x25, 0xc0, 0x77, 0xfa, 0x9a, 0xf5, 0x47, 0x12, 0x4c, 0x78, - 0xf2, 0x2e, 0xb6, 0xdb, 0xea, 0x13, 0xb9, 0x18, 0x82, 0x91, 0xee, 0x68, 0x3f, 0x23, 0xec, 0x07, - 0xe8, 0xd7, 0x90, 0xd0, 0x8f, 0xc0, 0x24, 0x14, 0xa2, 0xc4, 0x09, 0x51, 0xcc, 0xdd, 0x2f, 0xb6, - 0x88, 0xf4, 0xc5, 0xf7, 0x61, 0x09, 0x66, 0xfd, 0x79, 0xc4, 0x12, 0x72, 0x5b, 0xdb, 0xea, 0xed, - 0xa2, 0x0b, 0x4d, 0xb4, 0xa5, 0x05, 0x7b, 0xb2, 0x1d, 0xf5, 0x3b, 0x99, 0x84, 0x2a, 0xcf, 0x95, - 0x1c, 0xb1, 0x4a, 0x97, 0x48, 0x17, 0xe3, 0x08, 0xa6, 0x2f, 0xcc, 0xc7, 0x24, 0x80, 0x86, 0x15, - 0xcc, 0x75, 0x0f, 0x20, 0xc9, 0x5f, 0x14, 0xde, 0xae, 0xa5, 0x15, 0x0f, 0x8b, 0x4d, 0xde, 0x73, - 0x08, 0x7a, 0x33, 0x0d, 0x2a, 0x69, 0x2c, 0x6d, 0x7d, 0x6a, 0x71, 0xb7, 0xdb, 0x31, 0x5a, 0xba, - 0xdb, 0xeb, 0x82, 0x17, 0x2d, 0x5e, 0x7c, 0xcf, 0x68, 0x22, 0xa3, 0x30, 0x28, 0x23, 0x42, 0x96, - 0x24, 0x5a, 0x8d, 0xe4, 0x47, 0xab, 0x11, 0x74, 0xab, 0x19, 0x40, 0x7c, 0x0c, 0xea, 0x29, 0xc3, - 0xd1, 0x5a, 0x17, 0x99, 0x0b, 0x36, 0xd2, 0xdb, 0x2d, 0x7b, 0x77, 0xe7, 0xbc, 0xc3, 0xfa, 0x8f, - 0xc6, 0xeb, 0x28, 0xb3, 0x74, 0x2c, 0x71, 0x4b, 0xc7, 0xea, 0x4f, 0xcb, 0xa2, 0xb1, 0x93, 0x98, - 0x0d, 0x0e, 0x86, 0x87, 0x21, 0x86, 0xba, 0x44, 0x5e, 0x4f, 0x3d, 0xab, 0xc4, 0xd9, 0x24, 0xab, - 0xc4, 0xaf, 0x11, 0x8a, 0xc4, 0x24, 0x54, 0xaf, 0xb1, 0x38, 0xaf, 0xcd, 0xd5, 0x91, 0x1b, 0x01, - 0xef, 0x75, 0x30, 0x7b, 0x3e, 0xfc, 0x12, 0x40, 0xcc, 0x27, 0xf6, 0x71, 0x29, 0x7d, 0x6d, 0xd2, - 0x15, 0x18, 0x9e, 0x85, 0x08, 0x74, 0x03, 0x04, 0x25, 0x11, 0xbf, 0xb5, 0x44, 0xcb, 0x29, 0xb1, - 0xe5, 0xa7, 0x8f, 0xc2, 0xfb, 0x24, 0x98, 0xc6, 0xb7, 0xa7, 0x2e, 0x5c, 0xc2, 0x27, 0x29, 0x05, - 0x8d, 0x92, 0x17, 0xb2, 0x62, 0x56, 0x20, 0xdb, 0x31, 0xcc, 0x0b, 0xbe, 0xc3, 0xa1, 0xf7, 0x1c, - 0xde, 0xc5, 0x27, 0xf5, 0xb9, 0x8b, 0x2f, 0xd8, 0xa7, 0x08, 0xca, 0x3d, 0xd0, 0xe5, 0xd0, 0x03, - 0xc9, 0xa5, 0x2f, 0xc6, 0xbf, 0xcf, 0x42, 0xbe, 0x8e, 0x74, 0xbb, 0xb5, 0xad, 0xbe, 0x55, 0xea, - 0x3b, 0x55, 0x98, 0xe4, 0xa7, 0x0a, 0x4b, 0x30, 0xb1, 0x69, 0x74, 0x5c, 0x64, 0x13, 0x27, 0x6c, - 0xb6, 0x6b, 0x27, 0x4d, 0x7c, 0xa1, 0x63, 0xb5, 0x2e, 0xcc, 0x53, 0xd3, 0x7d, 0xde, 0x8f, 0xdd, - 0x3a, 0xbf, 0x84, 0x7f, 0xd2, 0xfc, 0x9f, 0x3d, 0x83, 0xd0, 0xb1, 0x6c, 0x37, 0xea, 0x5a, 0x8e, - 0x08, 0x2a, 0x75, 0xcb, 0x76, 0x35, 0xf2, 0xa3, 0x07, 0xf3, 0xe6, 0x6e, 0xa7, 0xd3, 0x40, 0x0f, - 0xb9, 0xfe, 0xb4, 0xcd, 0x7f, 0xf7, 0x8c, 0x45, 0x6b, 0x73, 0xd3, 0x41, 0x64, 0xd1, 0x20, 0xa7, - 0xd1, 0x37, 0xe5, 0x38, 0xe4, 0x3a, 0xc6, 0x8e, 0x41, 0x26, 0x1a, 0x39, 0x8d, 0xbc, 0x28, 0x37, - 0x42, 0x21, 0x9c, 0xe3, 0x10, 0x46, 0x4f, 0xe5, 0x71, 0xd3, 0xdc, 0x97, 0xee, 0xe9, 0xcc, 0x05, - 0x74, 0xc9, 0x39, 0x35, 0x81, 0xbf, 0xe3, 0x67, 0xfe, 0xc4, 0x8b, 0xc8, 0x7e, 0x07, 0x91, 0x78, - 0xf4, 0x0c, 0xd6, 0x46, 0x2d, 0xcb, 0x6e, 0xfb, 0xb2, 0x89, 0x9e, 0x60, 0xd0, 0x7c, 0xc9, 0x76, - 0x29, 0xfa, 0x16, 0x9e, 0xbe, 0xa6, 0xbd, 0x29, 0xef, 0x75, 0x9b, 0x5e, 0xd1, 0xe7, 0x0c, 0x77, - 0x7b, 0x0d, 0xb9, 0xba, 0xfa, 0xf7, 0x72, 0x5f, 0x8d, 0x9b, 0xfe, 0xdf, 0x1a, 0x37, 0x40, 0xe3, - 0x48, 0xe4, 0x2c, 0x77, 0xd7, 0x36, 0x3d, 0x39, 0x52, 0x47, 0x56, 0x26, 0x45, 0xb9, 0x13, 0xae, - 0x08, 0xdf, 0xfc, 0xa5, 0xd2, 0x45, 0xc6, 0xb7, 0x75, 0x52, 0x8b, 0xce, 0xa0, 0xac, 0xc3, 0xb5, - 0xe4, 0xe3, 0x4a, 0x63, 0x6d, 0x75, 0xc5, 0xd8, 0xda, 0xee, 0x18, 0x5b, 0xdb, 0xae, 0x53, 0x31, - 0x1d, 0x17, 0xe9, 0xed, 0xda, 0xa6, 0x46, 0x2e, 0xd4, 0x01, 0x4c, 0x47, 0x24, 0x2b, 0xef, 0xa4, - 0x2d, 0x36, 0xba, 0xb1, 0x9a, 0x12, 0xd1, 0x52, 0x9e, 0xee, 0xb5, 0x14, 0x67, 0xb7, 0x13, 0x60, - 0x7a, 0x55, 0x0f, 0xa6, 0xa1, 0xaa, 0xef, 0x76, 0x70, 0x73, 0xc1, 0x99, 0x93, 0x8e, 0x73, 0x31, - 0x9c, 0xa4, 0xdf, 0x6c, 0xfe, 0xbf, 0x3c, 0xe4, 0x96, 0x6d, 0xbd, 0xbb, 0xad, 0x3e, 0x97, 0xe9, - 0x9f, 0x47, 0xd5, 0x26, 0x02, 0xed, 0x94, 0x06, 0x69, 0xa7, 0x3c, 0x40, 0x3b, 0xb3, 0x8c, 0x76, - 0x46, 0x2f, 0x2a, 0x9f, 0x81, 0x99, 0x96, 0xd5, 0xe9, 0xa0, 0x96, 0x27, 0x8f, 0x4a, 0x1b, 0xaf, - 0xe6, 0x4c, 0x69, 0x5c, 0x1a, 0x8e, 0x6f, 0x8d, 0xdc, 0x3a, 0x59, 0x43, 0x27, 0x4a, 0x1f, 0x26, - 0xa8, 0x2f, 0x95, 0x20, 0x5b, 0x6e, 0x6f, 0x21, 0x6e, 0x9d, 0x3d, 0xc3, 0xac, 0xb3, 0x9f, 0x84, - 0xbc, 0xab, 0xdb, 0x5b, 0xc8, 0xf5, 0xd7, 0x09, 0xc8, 0x5b, 0x10, 0x76, 0x5b, 0x66, 0xc2, 0x6e, - 0xff, 0x20, 0x64, 0x3d, 0x99, 0x51, 0xbf, 0xf4, 0x6b, 0xfb, 0xc1, 0x8f, 0x65, 0x3f, 0xef, 0x95, - 0x38, 0xef, 0xd5, 0x5a, 0xc3, 0x3f, 0xf4, 0x62, 0x9d, 0xdb, 0x87, 0x35, 0xbe, 0x1b, 0xb4, 0x65, - 0x99, 0x95, 0x1d, 0x7d, 0x0b, 0xd1, 0x6a, 0x86, 0x09, 0xfe, 0xd7, 0xf2, 0x8e, 0xf5, 0xa0, 0x41, - 0x03, 0x4c, 0x86, 0x09, 0x5e, 0x15, 0xb6, 0x8d, 0x76, 0x1b, 0x99, 0xb4, 0x65, 0xd3, 0xb7, 0x33, - 0xa7, 0x21, 0xeb, 0xf1, 0xe0, 0xe9, 0x8f, 0x67, 0x2c, 0x14, 0x8e, 0x28, 0x33, 0x5e, 0xb3, 0x22, - 0x8d, 0xb7, 0x90, 0xe1, 0xd7, 0x54, 0x45, 0xdc, 0x76, 0x48, 0xe5, 0xfa, 0x37, 0xae, 0xa7, 0x40, - 0xce, 0xb4, 0xda, 0x68, 0xe0, 0x20, 0x44, 0x72, 0x29, 0x4f, 0x83, 0x1c, 0x6a, 0x7b, 0xbd, 0x82, - 0x8c, 0xb3, 0x9f, 0x8e, 0x97, 0xa5, 0x46, 0x32, 0x27, 0xf3, 0x0d, 0xea, 0xc7, 0x6d, 0xfa, 0x0d, - 0xf0, 0xe7, 0x26, 0xe0, 0x28, 0xe9, 0x03, 0xea, 0xbb, 0xe7, 0x3d, 0x52, 0xe7, 0x91, 0xfa, 0x68, - 0xff, 0x81, 0xeb, 0x28, 0xaf, 0xec, 0xc7, 0x21, 0xe7, 0xec, 0x9e, 0x0f, 0x8c, 0x50, 0xf2, 0xc2, - 0x36, 0x5d, 0x69, 0x24, 0xc3, 0x99, 0x3c, 0xec, 0x70, 0xc6, 0x0d, 0x4d, 0xb2, 0xdf, 0xf8, 0xc3, - 0x81, 0x8c, 0x9c, 0xa8, 0xf0, 0x07, 0xb2, 0x7e, 0xc3, 0xd0, 0x29, 0x98, 0xd0, 0x37, 0x5d, 0x64, - 0x87, 0x66, 0x22, 0x7d, 0xf5, 0x86, 0xca, 0xf3, 0x68, 0xd3, 0xb2, 0x3d, 0xb1, 0x90, 0xa8, 0xeb, - 0xc1, 0x3b, 0xd3, 0x72, 0x81, 0xdb, 0x21, 0xbb, 0x09, 0x8e, 0x99, 0xd6, 0x22, 0xea, 0x52, 0x39, - 0x13, 0x14, 0x67, 0x71, 0x0b, 0xd8, 0xff, 0x61, 0x5f, 0x57, 0x32, 0xb7, 0xbf, 0x2b, 0x51, 0x3f, - 0x96, 0x74, 0xce, 0xdc, 0x03, 0xf4, 0xc8, 0x2c, 0x34, 0xe5, 0x99, 0x30, 0xd3, 0xa6, 0x2e, 0x5a, - 0x2d, 0x23, 0x68, 0x25, 0x91, 0xff, 0x71, 0x99, 0x43, 0x45, 0xca, 0xb2, 0x8a, 0xb4, 0x0c, 0x93, - 0xf8, 0xec, 0xb3, 0xa7, 0x49, 0xb9, 0x1e, 0x97, 0x78, 0x3c, 0xad, 0x0b, 0x2a, 0xc5, 0x88, 0x6d, - 0xbe, 0x44, 0x7f, 0xd1, 0x82, 0x9f, 0x93, 0xcd, 0xbe, 0xe3, 0x25, 0x94, 0x7e, 0x73, 0xfc, 0xbd, - 0x3c, 0x5c, 0x51, 0xb2, 0x2d, 0xc7, 0xc1, 0x67, 0x60, 0x7a, 0x1b, 0xe6, 0xef, 0x48, 0xdc, 0x05, - 0x1c, 0x8f, 0xeb, 0xe6, 0xd7, 0xaf, 0x41, 0x8d, 0xaf, 0x69, 0x7c, 0x49, 0x38, 0x6a, 0x4c, 0xb0, - 0xff, 0x10, 0x21, 0xf4, 0xef, 0x8d, 0x46, 0xf2, 0xa6, 0x8c, 0x48, 0x20, 0x9b, 0x84, 0xb2, 0x4a, - 0xbf, 0xb9, 0x7c, 0x4e, 0x82, 0x2b, 0x7b, 0xb9, 0xd9, 0x30, 0x9d, 0xa0, 0xc1, 0x5c, 0x3d, 0xa0, - 0xbd, 0xf0, 0x81, 0x4f, 0x62, 0xaf, 0xbe, 0x8c, 0xa8, 0x3b, 0x53, 0x5a, 0xc4, 0x62, 0x49, 0x78, - 0xa2, 0x26, 0xee, 0xea, 0xcb, 0xc4, 0xe4, 0xd3, 0x17, 0xee, 0xc7, 0xb3, 0x70, 0x74, 0xd9, 0xb6, - 0x76, 0xbb, 0x4e, 0xd8, 0x03, 0xfd, 0x4d, 0xff, 0x0d, 0xd7, 0xbc, 0x88, 0x69, 0x70, 0x0d, 0x4c, - 0xdb, 0xd4, 0x9a, 0x0b, 0xb7, 0x5f, 0xd9, 0x24, 0xb6, 0xf7, 0x92, 0x0f, 0xd2, 0x7b, 0x85, 0xfd, - 0x4c, 0x96, 0xeb, 0x67, 0x7a, 0x7b, 0x8e, 0x5c, 0x9f, 0x9e, 0xe3, 0xaf, 0xa5, 0x84, 0x83, 0x6a, - 0x8f, 0x88, 0x22, 0xfa, 0x8b, 0x12, 0xe4, 0xb7, 0x70, 0x46, 0xda, 0x5d, 0x3c, 0x59, 0xac, 0x66, - 0x98, 0xb8, 0x46, 0x7f, 0x0d, 0xe5, 0x2a, 0xb3, 0x3a, 0x9c, 0x68, 0x80, 0x8b, 0xe7, 0x36, 0x7d, - 0xa5, 0x7a, 0x65, 0x16, 0x66, 0x82, 0xd2, 0x2b, 0x6d, 0x47, 0x7d, 0x61, 0x7f, 0x8d, 0x9a, 0x15, - 0xd1, 0xa8, 0x7d, 0xeb, 0xcc, 0xc1, 0xa8, 0x23, 0x33, 0xa3, 0x4e, 0xdf, 0xd1, 0x65, 0x26, 0x62, - 0x74, 0x51, 0x9f, 0x23, 0x8b, 0x5e, 0x61, 0xc5, 0x77, 0xad, 0xb8, 0x36, 0x8f, 0xe7, 0xc1, 0x42, - 0xf0, 0x22, 0xad, 0xc1, 0xb5, 0x4a, 0x5f, 0x49, 0xde, 0x29, 0xc1, 0xb1, 0xfd, 0x9d, 0xf9, 0xf7, - 0xf1, 0x5e, 0x68, 0x5e, 0x9d, 0x9c, 0xc0, 0x0b, 0x0d, 0xbf, 0xf1, 0x9b, 0x74, 0xb1, 0x51, 0x48, - 0x38, 0x7b, 0x6f, 0x70, 0x27, 0x2e, 0x16, 0x67, 0x44, 0x90, 0x68, 0xfa, 0x02, 0xfc, 0x25, 0x19, - 0xa6, 0xea, 0xc8, 0x5d, 0xd5, 0x2f, 0x59, 0xbb, 0xae, 0xaa, 0x8b, 0x6e, 0xcf, 0x3d, 0x03, 0xf2, - 0x1d, 0xfc, 0x0b, 0xee, 0x60, 0xd8, 0xa8, 0x9f, 0xec, 0xfe, 0x16, 0xf6, 0xfd, 0x21, 0xa4, 0x35, - 0x9a, 0x9f, 0x0f, 0xff, 0x22, 0xb2, 0x3b, 0x1a, 0x70, 0x37, 0x92, 0xad, 0x9d, 0x44, 0x7b, 0xa7, - 0x51, 0x45, 0xa7, 0x0f, 0xcb, 0x4f, 0xcb, 0x30, 0x5b, 0x47, 0x6e, 0xc5, 0x59, 0xd2, 0xf7, 0x2c, - 0xdb, 0x70, 0x11, 0x7b, 0x35, 0x68, 0x3c, 0x34, 0xa7, 0x01, 0x8c, 0xe0, 0x37, 0x1a, 0x94, 0x8a, - 0x49, 0x51, 0x7f, 0x37, 0xa9, 0xa3, 0x10, 0xc7, 0xc7, 0x48, 0x40, 0x48, 0xe4, 0x63, 0x11, 0x57, - 0x7c, 0xfa, 0x40, 0x7c, 0x46, 0xa2, 0x40, 0x14, 0xed, 0xd6, 0xb6, 0xb1, 0x87, 0xda, 0x09, 0x81, - 0xf0, 0x7f, 0x0b, 0x81, 0x08, 0x08, 0x25, 0x76, 0x5f, 0xe1, 0xf8, 0x18, 0x85, 0xfb, 0x4a, 0x1c, - 0xc1, 0xb1, 0xc4, 0x95, 0xf2, 0xba, 0x1e, 0xba, 0x9e, 0x79, 0x8f, 0xa8, 0x58, 0x43, 0x93, 0x4d, - 0x62, 0x4d, 0xb6, 0xa1, 0x3a, 0x16, 0x52, 0xf6, 0x20, 0x9d, 0xce, 0xa6, 0xd1, 0xb1, 0xf4, 0x2d, - 0x3a, 0x7d, 0xa1, 0xbf, 0x45, 0x86, 0x13, 0x41, 0xc0, 0x95, 0x3a, 0x72, 0x17, 0x75, 0x67, 0xfb, - 0xbc, 0xa5, 0xdb, 0x6d, 0xb5, 0x34, 0x82, 0x13, 0x7f, 0xea, 0xa7, 0x59, 0x10, 0xaa, 0x3c, 0x08, - 0x7d, 0x5d, 0x45, 0xfb, 0xf2, 0x32, 0x8a, 0x4e, 0x26, 0xd6, 0x9b, 0xf5, 0x0f, 0x02, 0xb0, 0x7e, - 0x88, 0x03, 0xeb, 0xae, 0x61, 0x59, 0x4c, 0x1f, 0xb8, 0x5f, 0x25, 0x23, 0x02, 0xe3, 0xd5, 0xfc, - 0x80, 0x28, 0x60, 0x11, 0x5e, 0xad, 0x72, 0xa4, 0x57, 0xeb, 0x50, 0x63, 0xc4, 0x40, 0x8f, 0xe4, - 0x74, 0xc7, 0x88, 0x43, 0xf4, 0x36, 0x7e, 0x83, 0x0c, 0x05, 0x1c, 0x71, 0x8b, 0xf1, 0xf8, 0x66, - 0x03, 0x58, 0xc7, 0xa3, 0xb3, 0xcf, 0xbb, 0x7c, 0x22, 0xa9, 0x77, 0xb9, 0xfa, 0xfa, 0xa4, 0x3e, - 0xe4, 0xbd, 0xdc, 0x8e, 0x04, 0xb1, 0x44, 0x2e, 0xe2, 0x03, 0x38, 0x48, 0x1f, 0xb4, 0xff, 0x2a, - 0x03, 0x78, 0x0d, 0x9a, 0x9e, 0x7d, 0x78, 0x96, 0x28, 0x5c, 0x37, 0xb3, 0x7e, 0xf5, 0x1e, 0x50, - 0x27, 0x7a, 0x80, 0x22, 0x14, 0xc3, 0x53, 0x15, 0x8f, 0x26, 0xf5, 0xad, 0x0c, 0xb9, 0x1a, 0x09, - 0x2c, 0x89, 0xbc, 0x2d, 0x23, 0xcb, 0x4e, 0x1f, 0x90, 0xff, 0x2e, 0x41, 0xae, 0x61, 0xd5, 0x91, - 0x7b, 0x70, 0x53, 0x20, 0xf1, 0xb1, 0x7d, 0x5c, 0xee, 0x28, 0x8e, 0xed, 0xf7, 0x23, 0x94, 0xbe, - 0xe8, 0xde, 0x2c, 0xc1, 0x4c, 0xc3, 0x2a, 0x05, 0x8b, 0x53, 0xe2, 0xbe, 0xaa, 0xe2, 0xd7, 0x70, - 0x07, 0x15, 0x0c, 0x8b, 0x39, 0xd0, 0x35, 0xdc, 0x83, 0xe9, 0xa5, 0x2f, 0xb7, 0xdb, 0xe1, 0xe8, - 0x86, 0xd9, 0xb6, 0x34, 0xd4, 0xb6, 0xe8, 0x4a, 0xb7, 0xa2, 0x40, 0x76, 0xd7, 0x6c, 0x5b, 0x98, - 0xe5, 0x9c, 0x86, 0x9f, 0xbd, 0x34, 0x1b, 0xb5, 0x2d, 0xea, 0x1b, 0x80, 0x9f, 0xd5, 0x2f, 0xc9, - 0x90, 0xf5, 0xfe, 0x15, 0x17, 0xf5, 0x1b, 0xe4, 0x84, 0x81, 0x08, 0x3c, 0xf2, 0x23, 0xb1, 0x84, - 0xee, 0x61, 0xd6, 0xfe, 0x89, 0x07, 0xeb, 0xb5, 0x51, 0xe5, 0x31, 0xa2, 0x08, 0xd7, 0xfc, 0x95, - 0x53, 0x30, 0x71, 0xbe, 0x63, 0xb5, 0x2e, 0x84, 0xe7, 0xe5, 0xe9, 0xab, 0x72, 0x23, 0xe4, 0x6c, - 0xdd, 0xdc, 0x42, 0x74, 0x4f, 0xe1, 0x78, 0x4f, 0x5f, 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x45, 0x7d, - 0x7d, 0x92, 0x10, 0x08, 0x7d, 0x2a, 0x9f, 0x4c, 0x1f, 0x16, 0x87, 0x38, 0x59, 0x56, 0x80, 0x99, - 0x52, 0x91, 0x5c, 0x78, 0xbf, 0x56, 0x3b, 0x5b, 0x2e, 0xc8, 0x18, 0x66, 0x4f, 0x26, 0x29, 0xc2, - 0xec, 0x91, 0xff, 0x9e, 0x85, 0xb9, 0x4f, 0xe5, 0x0f, 0x03, 0xe6, 0x0f, 0x4b, 0x30, 0xbb, 0x6a, - 0x38, 0x6e, 0x94, 0xb7, 0x7f, 0x4c, 0xc0, 0xdd, 0x17, 0x25, 0x35, 0x95, 0xb9, 0x72, 0x84, 0x23, - 0xed, 0x26, 0x32, 0x87, 0xe3, 0x8a, 0x18, 0xcf, 0xb1, 0x14, 0xcc, 0x01, 0xb9, 0x76, 0x5a, 0x58, - 0x92, 0x89, 0x0d, 0xa5, 0xb0, 0x90, 0xf1, 0x1b, 0x4a, 0x91, 0x65, 0xa7, 0x2f, 0xdf, 0x2f, 0x49, - 0x70, 0xcc, 0x2b, 0x3e, 0x6e, 0x59, 0x2a, 0x5a, 0xcc, 0x03, 0x97, 0xa5, 0x12, 0xaf, 0x8c, 0xef, - 0xe3, 0x65, 0x14, 0x2b, 0xe3, 0x83, 0x88, 0x8e, 0x59, 0xcc, 0x11, 0xcb, 0xb0, 0x83, 0xc4, 0x1c, - 0xb3, 0x0c, 0x3b, 0xbc, 0x98, 0xe3, 0x97, 0x62, 0x87, 0x14, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0x96, - 0x1c, 0x88, 0x39, 0x72, 0x6d, 0x23, 0x46, 0xcc, 0x89, 0x4f, 0xec, 0xaa, 0x6f, 0x1c, 0x52, 0xf0, - 0x23, 0x5e, 0xdf, 0x18, 0x06, 0xa6, 0x43, 0x5c, 0xe3, 0xf8, 0x35, 0x19, 0xe6, 0x28, 0x17, 0xfd, - 0xa7, 0xcc, 0x31, 0x18, 0x25, 0x9e, 0x32, 0x27, 0x3e, 0x03, 0xc4, 0x73, 0x36, 0xfe, 0x33, 0x40, - 0xb1, 0xe5, 0xa7, 0x0f, 0xce, 0x97, 0xb3, 0x70, 0xd2, 0x63, 0x61, 0xcd, 0x6a, 0x1b, 0x9b, 0x97, - 0x08, 0x17, 0x67, 0xf5, 0xce, 0x2e, 0x72, 0xd4, 0xb7, 0x49, 0xa2, 0x28, 0xfd, 0x27, 0x00, 0xab, - 0x8b, 0x6c, 0x12, 0x48, 0x8d, 0x02, 0x75, 0x67, 0x54, 0x65, 0xf7, 0x97, 0x14, 0xdc, 0x3f, 0x53, - 0xf3, 0x89, 0x68, 0x0c, 0x3d, 0xcf, 0x2a, 0x9c, 0x0a, 0xbe, 0xf4, 0x3a, 0x78, 0x64, 0xf6, 0x3b, - 0x78, 0xdc, 0x00, 0xb2, 0xde, 0x6e, 0x07, 0x50, 0xf5, 0x6e, 0x66, 0xe3, 0x32, 0x35, 0x2f, 0x8b, - 0x97, 0xd3, 0x41, 0xe1, 0xd1, 0xbc, 0x88, 0x9c, 0x0e, 0x72, 0x95, 0x79, 0xc8, 0x93, 0x4b, 0xb5, - 0x83, 0x15, 0xfd, 0xfe, 0x99, 0x69, 0x2e, 0xde, 0xb4, 0xab, 0xf1, 0x6a, 0x78, 0x7b, 0x22, 0xc9, - 0xf4, 0xeb, 0xa7, 0x43, 0x3b, 0x59, 0xe3, 0x14, 0xec, 0xee, 0xa1, 0x29, 0x8f, 0x67, 0x37, 0xac, - 0xd8, 0xed, 0x76, 0x2e, 0x35, 0x68, 0xf0, 0x95, 0x44, 0xbb, 0x61, 0x4c, 0x0c, 0x17, 0xa9, 0x37, - 0x86, 0x4b, 0xf2, 0xdd, 0x30, 0x8e, 0x8f, 0x51, 0xec, 0x86, 0xc5, 0x11, 0x4c, 0x5f, 0xb4, 0x1f, - 0x9a, 0x24, 0x56, 0x33, 0xbd, 0x0e, 0xe0, 0x63, 0xfd, 0x3d, 0xab, 0x81, 0x77, 0x76, 0xe9, 0x77, - 0x53, 0x40, 0xec, 0x35, 0x28, 0xca, 0xd3, 0x20, 0xbf, 0x69, 0xd9, 0x3b, 0xba, 0xbf, 0x71, 0xdf, - 0x7b, 0x52, 0x84, 0x86, 0xe0, 0x5f, 0xc2, 0x79, 0x34, 0x9a, 0xd7, 0x9b, 0x8f, 0x3c, 0xdb, 0xe8, - 0xd2, 0xa8, 0x8b, 0xde, 0xa3, 0x72, 0x1d, 0xcc, 0xd2, 0xe0, 0x8b, 0x55, 0xe4, 0xb8, 0xa8, 0x4d, - 0x23, 0x56, 0xf0, 0x89, 0xca, 0x19, 0x98, 0xa1, 0x09, 0x4b, 0x46, 0x07, 0x39, 0x34, 0x68, 0x05, - 0x97, 0xa6, 0x9c, 0x84, 0xbc, 0xe1, 0xdc, 0xe7, 0x58, 0x26, 0xf6, 0xff, 0x9f, 0xd4, 0xe8, 0x9b, - 0x72, 0x03, 0x1c, 0xa5, 0xf9, 0x02, 0x63, 0x95, 0x1c, 0xd8, 0xe9, 0x4d, 0xf6, 0x54, 0xcb, 0xb4, - 0xd6, 0x6d, 0x6b, 0xcb, 0x46, 0x8e, 0x83, 0x4f, 0x4d, 0x4d, 0x6a, 0x4c, 0x8a, 0xf2, 0x00, 0x1c, - 0xeb, 0x18, 0xe6, 0x05, 0x07, 0x07, 0xe9, 0x5d, 0xa2, 0x6e, 0x63, 0x33, 0x7d, 0x82, 0x67, 0x33, - 0x8d, 0x8d, 0xca, 0x81, 0xfd, 0x45, 0xdb, 0x4f, 0x45, 0xb9, 0x11, 0x0a, 0x94, 0x9b, 0x05, 0xbd, - 0x75, 0x01, 0x7f, 0xa7, 0xee, 0xa8, 0xfb, 0xd2, 0xd5, 0x97, 0x64, 0x60, 0x86, 0xfb, 0x59, 0x07, - 0xc5, 0xef, 0xf2, 0x9c, 0x73, 0xdb, 0x86, 0x8b, 0xbc, 0x82, 0xe9, 0x39, 0x96, 0x5b, 0x07, 0x30, - 0xa6, 0xed, 0xfb, 0x51, 0xeb, 0x43, 0xcc, 0x03, 0x80, 0x74, 0x66, 0xd8, 0x6b, 0xcc, 0xa1, 0x76, - 0x28, 0x97, 0xa6, 0x3e, 0x1b, 0x94, 0xfd, 0xd4, 0x18, 0x0f, 0x8f, 0x4c, 0x32, 0x0f, 0x0f, 0x4f, - 0x26, 0x7a, 0xa7, 0x63, 0x5d, 0x44, 0xed, 0x80, 0x2c, 0xd5, 0xc3, 0x7d, 0xe9, 0xea, 0x27, 0x86, - 0x99, 0xf3, 0x25, 0xbe, 0xb5, 0xc2, 0x6b, 0x40, 0xbb, 0xad, 0x16, 0x42, 0x6d, 0x7a, 0x28, 0xcd, - 0x7f, 0x4d, 0x78, 0x9f, 0x45, 0xe2, 0x19, 0xe2, 0x21, 0x5d, 0x68, 0xf1, 0x9e, 0x13, 0x90, 0x27, - 0x97, 0xc3, 0xa9, 0x2f, 0x99, 0xeb, 0xdb, 0x8f, 0xcc, 0xf1, 0xfd, 0xc8, 0x06, 0xcc, 0x98, 0x96, - 0x57, 0xdc, 0xba, 0x6e, 0xeb, 0x3b, 0x4e, 0xdc, 0x02, 0x30, 0xa1, 0x1b, 0x8c, 0xf6, 0x55, 0xe6, - 0xb7, 0x95, 0x23, 0x1a, 0x47, 0x46, 0xf9, 0x3f, 0xe0, 0xe8, 0x79, 0x1a, 0xbc, 0xc1, 0xa1, 0x94, - 0xa5, 0x68, 0xf7, 0xc8, 0x1e, 0xca, 0x0b, 0xfc, 0x9f, 0x2b, 0x47, 0xb4, 0x5e, 0x62, 0xca, 0x8f, - 0xc0, 0x9c, 0xf7, 0xda, 0xb6, 0x2e, 0xfa, 0x8c, 0xcb, 0xd1, 0x36, 0x62, 0x0f, 0xf9, 0x35, 0xee, - 0xc7, 0x95, 0x23, 0x5a, 0x0f, 0x29, 0xa5, 0x06, 0xb0, 0xed, 0xee, 0x74, 0x28, 0xe1, 0x6c, 0xb4, - 0x4a, 0xf6, 0x10, 0x5e, 0x09, 0x7e, 0x5a, 0x39, 0xa2, 0x31, 0x24, 0x94, 0x55, 0x98, 0x72, 0x1f, - 0x72, 0x29, 0xbd, 0x5c, 0xb4, 0x5f, 0x42, 0x0f, 0xbd, 0x86, 0xff, 0xcf, 0xca, 0x11, 0x2d, 0x24, - 0xa0, 0x54, 0x60, 0xb2, 0x7b, 0x9e, 0x12, 0xcb, 0x47, 0xf7, 0x65, 0x3d, 0xc4, 0xd6, 0xcf, 0x07, - 0xb4, 0x82, 0xdf, 0x3d, 0xc6, 0x5a, 0xce, 0x1e, 0xa5, 0x35, 0x21, 0xcc, 0x58, 0xc9, 0xff, 0xc7, - 0x63, 0x2c, 0x20, 0xa0, 0x54, 0x60, 0xca, 0x31, 0xf5, 0xae, 0xb3, 0x6d, 0xb9, 0xce, 0xa9, 0xc9, - 0x1e, 0x17, 0xd6, 0x68, 0x6a, 0x75, 0xfa, 0x8f, 0x16, 0xfe, 0xad, 0x3c, 0x0d, 0x4e, 0xec, 0x76, - 0xdb, 0xba, 0x8b, 0xca, 0x0f, 0x19, 0x8e, 0x6b, 0x98, 0x5b, 0x7e, 0xf8, 0x5f, 0x32, 0x10, 0xf4, - 0xff, 0xa8, 0xcc, 0xd3, 0xc3, 0x6c, 0x80, 0xdb, 0xa6, 0xda, 0xbb, 0x8f, 0x4a, 0x8a, 0x65, 0xce, - 0xb0, 0x3d, 0x13, 0xb2, 0xde, 0x27, 0x3c, 0x70, 0xcc, 0xf5, 0x5f, 0xa3, 0xed, 0xd5, 0x1d, 0xdc, - 0x80, 0xbd, 0x9f, 0x7a, 0xc6, 0x9e, 0x99, 0x7d, 0x63, 0xcf, 0x35, 0x30, 0x6d, 0x38, 0x6b, 0xc6, - 0x16, 0x31, 0x7c, 0xe9, 0xd8, 0xc0, 0x26, 0x91, 0x85, 0x82, 0x2a, 0xba, 0x48, 0x2e, 0x37, 0x39, - 0xea, 0x2f, 0x14, 0xf8, 0x29, 0xea, 0xf5, 0x30, 0xc3, 0x36, 0x32, 0x72, 0xc3, 0xac, 0x11, 0x9a, - 0xcd, 0xf4, 0x4d, 0xbd, 0x0e, 0xe6, 0x78, 0x9d, 0x66, 0xac, 0x03, 0xd9, 0xef, 0x0a, 0xd5, 0x6b, - 0xe1, 0x68, 0x4f, 0xc3, 0xf2, 0xc3, 0xc1, 0x64, 0xc2, 0x70, 0x30, 0xd7, 0x00, 0x84, 0x5a, 0xdc, - 0x97, 0xcc, 0xd5, 0x30, 0x15, 0xe8, 0x65, 0xdf, 0x0c, 0x5f, 0xc8, 0xc0, 0xa4, 0xaf, 0x6c, 0xfd, - 0x32, 0x78, 0x23, 0x93, 0xc9, 0xec, 0xfd, 0xf8, 0x23, 0x13, 0x9b, 0xe6, 0x99, 0x00, 0xa1, 0xc7, - 0x75, 0xc3, 0x70, 0x3b, 0xfe, 0xa9, 0xc5, 0xde, 0x64, 0x65, 0x1d, 0xc0, 0xc0, 0x18, 0x35, 0xc2, - 0x63, 0x8c, 0xb7, 0x24, 0x68, 0x0f, 0x44, 0x1f, 0x18, 0x1a, 0x67, 0xbe, 0x8f, 0x9e, 0x31, 0x9c, - 0x82, 0x1c, 0x89, 0x81, 0x7f, 0x44, 0x99, 0x03, 0x28, 0x3f, 0x6b, 0xbd, 0xac, 0x55, 0xca, 0xd5, - 0x52, 0xb9, 0x90, 0x51, 0x7f, 0x5d, 0x82, 0xa9, 0xa0, 0x11, 0xf4, 0xad, 0x64, 0x99, 0xaa, 0xd6, - 0xc0, 0x4b, 0x3c, 0xf7, 0x37, 0x2a, 0x56, 0xc9, 0x9e, 0x01, 0x97, 0xef, 0x3a, 0x68, 0xc9, 0xb0, - 0x1d, 0x57, 0xb3, 0x2e, 0x2e, 0x59, 0x76, 0x38, 0xb0, 0x92, 0xe0, 0xb3, 0x51, 0x9f, 0x3d, 0x63, - 0xb0, 0x8d, 0xf0, 0x79, 0x36, 0x64, 0xd3, 0x45, 0xfd, 0x30, 0xc1, 0xa3, 0xeb, 0xda, 0xba, 0xe9, - 0x74, 0x2d, 0x07, 0x69, 0xd6, 0x45, 0xa7, 0x68, 0xb6, 0x4b, 0x56, 0x67, 0x77, 0xc7, 0x74, 0xa8, - 0x39, 0x17, 0xf5, 0xd9, 0x93, 0x0e, 0xbe, 0xa2, 0x77, 0x0e, 0xa0, 0x54, 0x5b, 0x5d, 0x2d, 0x97, - 0x1a, 0x95, 0x5a, 0xb5, 0x70, 0xc4, 0x93, 0x56, 0xa3, 0xb8, 0xb0, 0xea, 0x49, 0xe7, 0x47, 0x61, - 0xd2, 0x6f, 0xd3, 0x34, 0x82, 0x4d, 0xc6, 0x8f, 0x60, 0xa3, 0x14, 0x61, 0xd2, 0x6f, 0xe5, 0x74, - 0x44, 0x78, 0x62, 0xef, 0x89, 0xe5, 0x1d, 0xdd, 0x76, 0xb1, 0x81, 0xe2, 0x13, 0x59, 0xd0, 0x1d, - 0xa4, 0x05, 0xbf, 0x9d, 0x79, 0x0a, 0xe5, 0x40, 0x81, 0xb9, 0xe2, 0xea, 0x6a, 0xb3, 0xa6, 0x35, - 0xab, 0xb5, 0xc6, 0x4a, 0xa5, 0xba, 0x4c, 0x46, 0xc8, 0xca, 0x72, 0xb5, 0xa6, 0x95, 0xc9, 0x00, - 0x59, 0x2f, 0x64, 0xc8, 0x15, 0xd1, 0x0b, 0x93, 0x90, 0xef, 0x62, 0xe9, 0xaa, 0x9f, 0x93, 0x13, - 0x86, 0x2a, 0x08, 0x70, 0x8a, 0xb8, 0xc4, 0x96, 0x3b, 0x2e, 0x20, 0xf5, 0x39, 0xce, 0x7b, 0x06, - 0x66, 0x88, 0x19, 0xee, 0xe0, 0x9d, 0x17, 0x8c, 0x9c, 0xac, 0x71, 0x69, 0xea, 0xfb, 0xa4, 0x04, - 0xf1, 0x0b, 0xfa, 0x72, 0x94, 0xcc, 0xb8, 0xf8, 0xcb, 0xcc, 0x70, 0x37, 0x46, 0x54, 0xaa, 0x8d, - 0xb2, 0x56, 0x2d, 0xae, 0xd2, 0x2c, 0xb2, 0x72, 0x0a, 0x8e, 0x57, 0x6b, 0x34, 0x1c, 0x63, 0xbd, - 0xd9, 0xa8, 0x35, 0x2b, 0x6b, 0xeb, 0x35, 0xad, 0x51, 0xc8, 0x29, 0x27, 0x41, 0x21, 0xcf, 0xcd, - 0x4a, 0xbd, 0x59, 0x2a, 0x56, 0x4b, 0xe5, 0xd5, 0xf2, 0x62, 0x21, 0xaf, 0x3c, 0x09, 0xae, 0x25, - 0x37, 0x10, 0xd5, 0x96, 0x9a, 0x5a, 0xed, 0x5c, 0xdd, 0x43, 0x50, 0x2b, 0xaf, 0x16, 0x3d, 0x45, - 0x62, 0xae, 0x8a, 0x9e, 0x50, 0x2e, 0x83, 0xa3, 0xf8, 0x1e, 0xf9, 0xd5, 0x5a, 0x71, 0x91, 0x96, - 0x37, 0xa9, 0x5c, 0x05, 0xa7, 0x2a, 0xd5, 0xfa, 0xc6, 0xd2, 0x52, 0xa5, 0x54, 0x29, 0x57, 0x1b, - 0xcd, 0xf5, 0xb2, 0xb6, 0x56, 0xa9, 0xd7, 0xbd, 0x7f, 0x0b, 0x53, 0xf8, 0x22, 0x5e, 0xd2, 0x67, - 0xaa, 0x6f, 0x95, 0x61, 0xf6, 0xac, 0xde, 0x31, 0xbc, 0x81, 0x02, 0xdf, 0xd0, 0xdd, 0x73, 0xd2, - 0xc7, 0xc5, 0x37, 0x79, 0xd3, 0xb3, 0x02, 0xf8, 0x45, 0xfd, 0x29, 0x39, 0xe1, 0x49, 0x1f, 0x0a, - 0x04, 0x29, 0x71, 0x9e, 0x2b, 0x2d, 0x62, 0x5e, 0xfa, 0x0a, 0x29, 0xc1, 0x49, 0x1f, 0x71, 0xf2, - 0xc9, 0xc0, 0xff, 0x8d, 0x51, 0x81, 0x5f, 0x80, 0x99, 0x8d, 0x6a, 0x71, 0xa3, 0xb1, 0x52, 0xd3, - 0x2a, 0x3f, 0x8c, 0x03, 0xc5, 0xcf, 0xc2, 0xd4, 0x52, 0x4d, 0x5b, 0xa8, 0x2c, 0x2e, 0x96, 0xab, - 0x85, 0x9c, 0x72, 0x39, 0x5c, 0x56, 0x2f, 0x6b, 0x67, 0x2b, 0xa5, 0x72, 0x73, 0xa3, 0x5a, 0x3c, - 0x5b, 0xac, 0xac, 0xe2, 0x3e, 0x22, 0x1f, 0x73, 0xbb, 0xf8, 0x84, 0xfa, 0x13, 0x59, 0x00, 0x52, - 0x75, 0x7c, 0x4f, 0x12, 0x73, 0x07, 0xf5, 0xa7, 0x92, 0x4e, 0x1a, 0x42, 0x32, 0x11, 0xed, 0xb7, - 0x02, 0x93, 0x36, 0xfd, 0x40, 0x57, 0xbe, 0x06, 0xd1, 0x21, 0x8f, 0x3e, 0x35, 0x2d, 0xf8, 0x5d, - 0x7d, 0x5b, 0x92, 0x39, 0x42, 0x24, 0x63, 0xc9, 0x90, 0x5c, 0x1a, 0x0d, 0x90, 0xea, 0x0b, 0x33, - 0x30, 0xc7, 0x57, 0xcc, 0xab, 0x04, 0x36, 0xa6, 0xc4, 0x2a, 0xc1, 0xff, 0xcc, 0x18, 0x59, 0x67, - 0x9e, 0x4a, 0x87, 0x53, 0xf0, 0x5b, 0x26, 0x39, 0xb4, 0xef, 0x5b, 0x2c, 0x85, 0x8c, 0xc7, 0xbc, - 0x67, 0x74, 0x14, 0x24, 0x65, 0x02, 0xe4, 0xc6, 0x43, 0x6e, 0x41, 0x56, 0xbf, 0x20, 0xc3, 0x2c, - 0x77, 0xc9, 0xb5, 0xfa, 0x8a, 0x8c, 0xc8, 0x05, 0xb4, 0xcc, 0xf5, 0xd9, 0x99, 0x83, 0x5e, 0x9f, - 0x7d, 0xe6, 0x66, 0x98, 0xa0, 0x69, 0x58, 0xbe, 0xb5, 0xaa, 0x67, 0x0a, 0x1c, 0x85, 0xe9, 0xe5, - 0x72, 0xa3, 0x59, 0x6f, 0x14, 0xb5, 0x46, 0x79, 0xb1, 0x90, 0xf1, 0x06, 0xbe, 0xf2, 0xda, 0x7a, - 0xe3, 0x81, 0x82, 0x94, 0xdc, 0x79, 0xb2, 0x97, 0x91, 0x31, 0x3b, 0x4f, 0xc6, 0x15, 0x9f, 0xfe, - 0x5c, 0xf5, 0x63, 0x32, 0x14, 0x08, 0x07, 0xe5, 0x87, 0xba, 0xc8, 0x36, 0x90, 0xd9, 0x42, 0xea, - 0x05, 0x91, 0x60, 0xad, 0xfb, 0xc2, 0x18, 0xe2, 0xfe, 0x9c, 0xb1, 0x12, 0xc9, 0x4b, 0x8f, 0x81, - 0x9d, 0xdd, 0x67, 0x60, 0x7f, 0x34, 0xa9, 0xf7, 0x64, 0x2f, 0xbb, 0x23, 0x81, 0xec, 0x83, 0x49, - 0xbc, 0x27, 0x07, 0x70, 0x30, 0x96, 0x18, 0xcc, 0x11, 0xe3, 0x6f, 0x41, 0x56, 0x5f, 0x20, 0xc3, - 0xd1, 0x45, 0xdd, 0x45, 0x0b, 0x97, 0x1a, 0xfe, 0x25, 0x94, 0x11, 0x17, 0x47, 0x67, 0xf6, 0x5d, - 0x1c, 0x1d, 0xde, 0x63, 0x29, 0xf5, 0xdc, 0x63, 0xa9, 0xbe, 0x29, 0xe9, 0x79, 0xcb, 0x1e, 0x1e, - 0x46, 0x16, 0x28, 0x39, 0xd9, 0x39, 0xca, 0x78, 0x2e, 0xd2, 0x6f, 0x60, 0xaf, 0x9b, 0x82, 0x02, - 0x61, 0x85, 0x71, 0x10, 0xfc, 0x25, 0x7a, 0xd7, 0x7a, 0x33, 0x41, 0x3c, 0x46, 0x3f, 0xc2, 0x85, - 0xc4, 0x47, 0xb8, 0xe0, 0xd6, 0x9b, 0xe5, 0x5e, 0xa7, 0x8e, 0xa4, 0x9d, 0x21, 0xe3, 0x0d, 0x18, - 0x1d, 0x02, 0x37, 0xbd, 0xce, 0x30, 0xb6, 0xf8, 0xf1, 0xdc, 0x07, 0x4c, 0xaf, 0xe0, 0x2c, 0x8b, - 0x22, 0x13, 0x7f, 0xed, 0x79, 0x52, 0xd7, 0x70, 0xce, 0x1b, 0x33, 0xe6, 0x2e, 0xf0, 0xf4, 0x5c, - 0xc3, 0x07, 0x71, 0x90, 0x3e, 0x0a, 0xdf, 0x91, 0x20, 0x5b, 0xb7, 0x6c, 0x77, 0x54, 0x18, 0x24, - 0xdd, 0xce, 0x66, 0x24, 0x50, 0x8f, 0x9e, 0x73, 0xa6, 0xb7, 0x9d, 0x1d, 0x5f, 0xfe, 0x18, 0x42, - 0x5a, 0x1e, 0x85, 0x39, 0xc2, 0x49, 0x70, 0xdf, 0xcb, 0xb7, 0x25, 0xd2, 0x5f, 0xdd, 0x2f, 0x8a, - 0x08, 0xde, 0xf8, 0x08, 0xb6, 0x93, 0x7d, 0x50, 0xb8, 0x34, 0xf5, 0x77, 0x58, 0x5c, 0x16, 0x79, - 0x5c, 0xfa, 0xcd, 0xb8, 0x83, 0x2b, 0x53, 0x46, 0xd5, 0x33, 0x25, 0x89, 0x8e, 0x19, 0x53, 0x78, - 0xfa, 0x88, 0x3c, 0x2c, 0x43, 0x9e, 0xba, 0xf3, 0x8d, 0x14, 0x81, 0xa4, 0x2d, 0x23, 0x10, 0x82, - 0x98, 0xdb, 0x9f, 0x3c, 0xea, 0x96, 0x11, 0x5f, 0x7e, 0xfa, 0x38, 0xfc, 0x3b, 0xf5, 0x53, 0x2d, - 0xee, 0xe9, 0x46, 0x47, 0x3f, 0xdf, 0x49, 0x10, 0x95, 0xfa, 0x7d, 0x09, 0x4f, 0xe6, 0x05, 0x55, - 0xe5, 0xca, 0x8b, 0x90, 0xf8, 0x0f, 0xc0, 0x94, 0xcd, 0xed, 0xf5, 0x79, 0x56, 0x54, 0x8f, 0x8f, - 0x30, 0xfd, 0xae, 0x85, 0x39, 0x13, 0x1d, 0xc3, 0x13, 0xe2, 0x67, 0x2c, 0xc7, 0x86, 0xa6, 0x8b, - 0xed, 0xf6, 0x12, 0xd2, 0xdd, 0x5d, 0x1b, 0xb5, 0x13, 0x0d, 0x11, 0x76, 0xcf, 0x76, 0x28, 0x23, - 0x09, 0x2e, 0x2e, 0xe4, 0x2a, 0x8f, 0xce, 0xd3, 0x07, 0xf4, 0x06, 0x3e, 0x2f, 0x23, 0xe9, 0x92, - 0x7e, 0x3f, 0x80, 0xa4, 0xc6, 0x41, 0xf2, 0xcc, 0xe1, 0x98, 0x48, 0x1f, 0x90, 0x5f, 0x91, 0x61, - 0x8e, 0xd8, 0x09, 0xa3, 0xc6, 0xe4, 0x1d, 0x09, 0xdd, 0x7f, 0x98, 0x1b, 0xb5, 0x58, 0x76, 0x46, - 0x02, 0x4b, 0x12, 0x67, 0x21, 0x31, 0x3e, 0xd2, 0x47, 0xe6, 0x79, 0xc7, 0x00, 0x18, 0x97, 0xce, - 0xf7, 0xe5, 0xc3, 0x18, 0x8d, 0xea, 0xeb, 0xe9, 0xfc, 0xa3, 0xce, 0x05, 0x0c, 0x67, 0xdc, 0x35, - 0x83, 0x0d, 0x29, 0x3e, 0x51, 0x68, 0x54, 0xf9, 0xcb, 0x84, 0x36, 0x2f, 0x75, 0xa8, 0x1c, 0x38, - 0xb8, 0x0f, 0xd9, 0xcb, 0xbd, 0x3f, 0x81, 0xf1, 0x3b, 0x88, 0x95, 0x64, 0xa8, 0xad, 0x0e, 0x31, - 0xb3, 0x3f, 0x05, 0xc7, 0xb5, 0x72, 0x71, 0xb1, 0x56, 0x5d, 0x7d, 0x80, 0xbd, 0x5e, 0xa9, 0x20, - 0xb3, 0x93, 0x93, 0x54, 0x60, 0x7b, 0x55, 0xc2, 0x3e, 0x90, 0x97, 0x55, 0xdc, 0x6c, 0x85, 0x59, - 0x5c, 0x19, 0xdc, 0xab, 0x09, 0x90, 0x3d, 0x4c, 0x14, 0xbe, 0x9e, 0x87, 0x69, 0x0d, 0xb5, 0xac, - 0x9d, 0x1d, 0x64, 0xb6, 0x51, 0x5b, 0x7d, 0x95, 0x0c, 0x33, 0xc1, 0x7e, 0x5f, 0x1d, 0xb9, 0xea, - 0x8f, 0x84, 0xd8, 0x9c, 0x81, 0x19, 0xaf, 0x72, 0x35, 0x3e, 0x08, 0x3c, 0x97, 0xa6, 0xdc, 0x04, - 0xc7, 0x7c, 0x14, 0x6a, 0x3d, 0x53, 0x98, 0xfd, 0x1f, 0xd4, 0x37, 0xb3, 0x18, 0x6d, 0xf0, 0x18, - 0xdd, 0x13, 0x2d, 0xcc, 0x80, 0xdd, 0x79, 0x96, 0xd5, 0x08, 0xb0, 0xfe, 0x22, 0x00, 0xeb, 0x59, - 0x1c, 0x58, 0x8b, 0x07, 0xa4, 0x7f, 0x98, 0xa8, 0xfd, 0xa1, 0x0c, 0xc7, 0xfd, 0x8e, 0x78, 0x7c, - 0x68, 0xbd, 0x9f, 0x45, 0xeb, 0x47, 0x79, 0xb4, 0x96, 0x45, 0xa4, 0xd9, 0x8f, 0xe5, 0x08, 0xd4, - 0x3e, 0x1b, 0xa0, 0xf6, 0x63, 0x1c, 0x6a, 0xab, 0x23, 0x2a, 0xe7, 0x30, 0xd1, 0x7b, 0x87, 0x0c, - 0xa7, 0x3c, 0xb3, 0xb3, 0x64, 0x99, 0x9b, 0x1d, 0xa3, 0xe5, 0x1a, 0xe6, 0x56, 0xe8, 0xc2, 0xb6, - 0x2c, 0xb2, 0xb2, 0xd9, 0x8b, 0xad, 0xb4, 0x1f, 0x5b, 0x3e, 0x76, 0x86, 0x68, 0xdb, 0x8a, 0x62, - 0x2b, 0x62, 0x08, 0x63, 0x1c, 0xaf, 0x43, 0xcd, 0x61, 0x93, 0x92, 0xb7, 0x3e, 0x41, 0x0e, 0x0e, - 0x13, 0xbf, 0x87, 0x81, 0x31, 0x3d, 0x7e, 0x46, 0x86, 0x02, 0xf6, 0x97, 0xc4, 0x3d, 0x3b, 0xbd, - 0x7b, 0xb4, 0xc6, 0x7b, 0xc9, 0x77, 0x7d, 0x01, 0xf9, 0x5e, 0xf2, 0x7e, 0x82, 0x72, 0x3d, 0xcc, - 0xb5, 0xb6, 0x51, 0xeb, 0x42, 0xc5, 0xf4, 0x7d, 0x91, 0x88, 0xe3, 0x4a, 0x4f, 0x2a, 0x3f, 0x98, - 0xdd, 0xcf, 0x83, 0xc9, 0x2f, 0x3c, 0x72, 0x13, 0x1b, 0x96, 0xa9, 0x88, 0x86, 0xf6, 0xa1, 0x00, - 0xa0, 0x2a, 0x07, 0xd0, 0x1d, 0x43, 0x51, 0x4d, 0x06, 0x4b, 0x75, 0x08, 0x58, 0x54, 0x38, 0x59, - 0x5b, 0x6f, 0x54, 0x6a, 0xd5, 0xe6, 0x46, 0xbd, 0xbc, 0xd8, 0x5c, 0xf0, 0xc1, 0xa9, 0x17, 0x64, - 0xf5, 0x2b, 0x12, 0x4c, 0x10, 0xb6, 0x1c, 0xf5, 0xc9, 0x21, 0x04, 0x03, 0x8f, 0x07, 0xa8, 0xaf, - 0x13, 0x0e, 0xf6, 0x13, 0x08, 0x82, 0x96, 0x13, 0xd1, 0x30, 0x9e, 0x01, 0x13, 0x04, 0x64, 0x7f, - 0x17, 0xe0, 0x74, 0x84, 0x65, 0x47, 0xc9, 0x68, 0x7e, 0x76, 0xc1, 0xc0, 0x3f, 0x03, 0xd8, 0x48, - 0xdf, 0x1a, 0x7f, 0x4e, 0x96, 0x2c, 0x1d, 0x9c, 0x33, 0xdc, 0x6d, 0x7c, 0x7a, 0x40, 0xfd, 0x21, - 0x91, 0x8e, 0xeb, 0x26, 0xc8, 0xed, 0x79, 0xb9, 0x07, 0x9c, 0xc4, 0x20, 0x99, 0xd4, 0xdf, 0x10, - 0x8e, 0x33, 0xcd, 0xe9, 0x67, 0xc0, 0x53, 0x04, 0x38, 0x6b, 0x90, 0xed, 0x18, 0x8e, 0x4b, 0x6d, - 0xee, 0xdb, 0x13, 0x11, 0xf2, 0x1f, 0x2a, 0x2e, 0xda, 0xd1, 0x30, 0x19, 0xf5, 0x3e, 0xcf, 0x62, - 0x0a, 0x53, 0x05, 0x4e, 0xa3, 0x9c, 0x82, 0x09, 0x7a, 0x4a, 0x9a, 0x6e, 0x4b, 0xf9, 0xaf, 0x82, - 0x5b, 0x41, 0x42, 0xb5, 0x4d, 0x5f, 0x07, 0xfe, 0xdf, 0xa3, 0x30, 0xb1, 0x62, 0x38, 0xae, 0x65, - 0x5f, 0x52, 0x1f, 0xcd, 0xc0, 0xc4, 0x59, 0x64, 0x3b, 0x86, 0x65, 0xee, 0x73, 0xcf, 0xba, 0x06, - 0xa6, 0xbb, 0x36, 0xda, 0x33, 0xac, 0x5d, 0x87, 0x19, 0x25, 0x98, 0x24, 0x45, 0x85, 0x49, 0x7d, - 0xd7, 0xdd, 0xb6, 0xec, 0x30, 0xb8, 0x92, 0xff, 0xae, 0x9c, 0x06, 0x20, 0xcf, 0x55, 0x7d, 0x07, - 0x51, 0xa7, 0x33, 0x26, 0x45, 0x51, 0x20, 0xeb, 0x1a, 0x3b, 0x88, 0x46, 0x5b, 0xc7, 0xcf, 0x9e, - 0x80, 0x71, 0xe4, 0x52, 0x1a, 0x21, 0x56, 0xd6, 0xfc, 0x57, 0xf5, 0xd3, 0x32, 0x4c, 0x2f, 0x23, - 0x97, 0xb2, 0xea, 0xa8, 0x2f, 0xca, 0x08, 0x5d, 0x70, 0xe4, 0xcd, 0x4b, 0x3a, 0xba, 0xe3, 0xff, - 0x17, 0x0c, 0xb9, 0x7c, 0x62, 0x18, 0xfa, 0x5d, 0x66, 0xef, 0x7d, 0xc0, 0x71, 0x40, 0xdd, 0x0a, - 0x71, 0xe0, 0xa7, 0x99, 0xe9, 0xc6, 0xf1, 0xfe, 0x0f, 0xbc, 0x4d, 0x1c, 0x1b, 0x43, 0x83, 0xca, - 0x7e, 0x9e, 0xa9, 0x4f, 0x64, 0x77, 0x34, 0xb9, 0x47, 0x73, 0xec, 0xbb, 0xd2, 0x83, 0xa5, 0x44, - 0xc9, 0x68, 0x41, 0x6e, 0xc1, 0xe8, 0x1b, 0x83, 0x39, 0x49, 0x5f, 0x1b, 0xbf, 0x29, 0xc3, 0x74, - 0x7d, 0xdb, 0xba, 0xe8, 0xcb, 0xf1, 0x47, 0xc5, 0x80, 0xbd, 0x0a, 0xa6, 0xf6, 0x7a, 0x40, 0x0d, - 0x13, 0xd8, 0x7b, 0xe3, 0x64, 0xfe, 0xde, 0xb8, 0xe7, 0xcb, 0x49, 0x61, 0x62, 0x98, 0x8b, 0x80, - 0x89, 0xbf, 0xea, 0x4d, 0x4a, 0x70, 0xd5, 0x9b, 0xf2, 0x74, 0x98, 0xa0, 0x5c, 0xd3, 0x65, 0xea, - 0x78, 0x80, 0xfd, 0xcc, 0x6c, 0x05, 0xb3, 0x7c, 0x05, 0x93, 0x21, 0x1f, 0x5d, 0xb9, 0xf4, 0x91, - 0xff, 0x33, 0x09, 0xc7, 0x5e, 0xf2, 0x81, 0x2f, 0x8d, 0x00, 0x78, 0xf5, 0x5b, 0x19, 0xd1, 0xcd, - 0x9c, 0x40, 0x02, 0x01, 0x07, 0x07, 0xba, 0xbc, 0x6c, 0x20, 0xb9, 0xf4, 0xe5, 0xf9, 0xeb, 0x59, - 0x98, 0x59, 0x34, 0x36, 0x37, 0x83, 0x4e, 0xf2, 0xc5, 0x82, 0x9d, 0x64, 0xb4, 0x0b, 0x95, 0x67, - 0xe7, 0xee, 0xda, 0x36, 0x32, 0xfd, 0x4a, 0xd1, 0xe6, 0xd4, 0x93, 0xaa, 0xdc, 0x00, 0x47, 0xfd, - 0x71, 0x81, 0xed, 0x28, 0xa7, 0xb4, 0xde, 0x64, 0xf5, 0x1b, 0xc2, 0x9e, 0x00, 0xbe, 0x44, 0xd9, - 0x2a, 0x45, 0x34, 0xc0, 0x3b, 0x61, 0x76, 0x9b, 0xe4, 0xc6, 0xcb, 0xa5, 0x7e, 0x67, 0x79, 0xb2, - 0x27, 0xb6, 0xfd, 0x1a, 0x72, 0x1c, 0x7d, 0x0b, 0x69, 0x7c, 0xe6, 0x9e, 0xe6, 0x2b, 0x27, 0xb9, - 0xa9, 0x51, 0xcc, 0xa9, 0x40, 0xa0, 0x26, 0x63, 0xd0, 0x8e, 0x33, 0x90, 0x5d, 0x32, 0x3a, 0x48, - 0xfd, 0x59, 0x09, 0xa6, 0xbc, 0x59, 0xb7, 0xd9, 0xf2, 0xde, 0x18, 0x87, 0xca, 0xaf, 0x67, 0x44, - 0x6f, 0x28, 0xf6, 0xe8, 0xcc, 0x07, 0x34, 0x22, 0xda, 0x8d, 0xd8, 0x4d, 0xc4, 0xb1, 0xa4, 0xc6, - 0x70, 0x9f, 0x94, 0x37, 0xf5, 0xd8, 0xdc, 0xec, 0x58, 0x3a, 0xb7, 0x61, 0xd0, 0x6b, 0x0a, 0x85, - 0x07, 0xfc, 0xaa, 0x96, 0xbb, 0x6e, 0x98, 0x66, 0x10, 0x33, 0x63, 0x5f, 0x3a, 0xef, 0xeb, 0x12, - 0x1b, 0x76, 0x0c, 0xd7, 0x9d, 0x96, 0x1e, 0xa1, 0xd9, 0xd7, 0xc3, 0xdc, 0xf9, 0x4b, 0x2e, 0x72, - 0x68, 0x2e, 0x5a, 0x6c, 0x56, 0xeb, 0x49, 0x65, 0x2e, 0x0d, 0x88, 0x0b, 0x4f, 0x16, 0x53, 0x60, - 0x32, 0x51, 0xaf, 0x0c, 0x31, 0x03, 0x3c, 0x0e, 0x85, 0x6a, 0x6d, 0xb1, 0x8c, 0xfd, 0x7b, 0x7d, - 0x8f, 0xc9, 0x2d, 0xf5, 0x17, 0x65, 0x98, 0xc1, 0x0e, 0x78, 0x3e, 0x0a, 0xd7, 0x0a, 0xcc, 0x47, - 0xd4, 0xc7, 0x84, 0x7d, 0x7f, 0x71, 0x95, 0xd9, 0x02, 0xa2, 0x05, 0xbd, 0x69, 0x74, 0x7a, 0x05, - 0x9d, 0xd3, 0x7a, 0x52, 0xfb, 0x00, 0x22, 0xf7, 0x05, 0xe4, 0x0f, 0x85, 0x1c, 0x80, 0x07, 0x71, - 0x77, 0x58, 0xa8, 0xfc, 0x91, 0x0c, 0xd3, 0xde, 0x24, 0xc5, 0x07, 0xa5, 0xc6, 0x81, 0x62, 0x99, - 0x9d, 0x4b, 0xe1, 0xb2, 0x88, 0xff, 0x9a, 0xa8, 0x91, 0xfc, 0x95, 0xf0, 0xcc, 0x1d, 0x8b, 0x88, - 0xe1, 0x65, 0x4c, 0xf8, 0xbd, 0x5d, 0x68, 0x3e, 0x3f, 0x80, 0xb9, 0xc3, 0x82, 0xef, 0x4b, 0x39, - 0xc8, 0x6f, 0x74, 0x31, 0x72, 0xbf, 0x21, 0x8b, 0x5c, 0xc0, 0xb1, 0xef, 0xf0, 0x97, 0x67, 0x66, - 0x75, 0xac, 0x96, 0xde, 0x59, 0x0f, 0x4f, 0xd1, 0x86, 0x09, 0xca, 0x1d, 0xd4, 0x1f, 0x9c, 0x9c, - 0x1e, 0xbf, 0x3e, 0xf6, 0x6e, 0x0a, 0x2c, 0x23, 0xe6, 0xa0, 0xdd, 0x4d, 0x70, 0xac, 0x6d, 0x38, - 0xfa, 0xf9, 0x0e, 0x2a, 0x9b, 0x2d, 0xfb, 0x12, 0x11, 0x07, 0x9d, 0x56, 0xed, 0xfb, 0xa0, 0xdc, - 0x05, 0x39, 0xc7, 0xbd, 0xd4, 0x21, 0xf3, 0x44, 0xf6, 0x5c, 0x5e, 0x64, 0x51, 0x75, 0x2f, 0xbb, - 0x46, 0xfe, 0x62, 0xdd, 0x3a, 0x27, 0xc4, 0xdc, 0x3a, 0x95, 0xa7, 0x42, 0xde, 0xb2, 0x8d, 0x2d, - 0x83, 0x5c, 0x37, 0x37, 0xb7, 0x2f, 0x04, 0x2b, 0x31, 0x05, 0x6a, 0x38, 0x8b, 0x46, 0xb3, 0x2a, - 0x4f, 0x87, 0x29, 0x63, 0x47, 0xdf, 0x42, 0xf7, 0x1b, 0x26, 0x39, 0xa0, 0x3e, 0x77, 0xdb, 0xa9, - 0x7d, 0x47, 0x0e, 0xe9, 0x77, 0x2d, 0xcc, 0xaa, 0xbe, 0x5d, 0x12, 0x8d, 0x13, 0x87, 0xeb, 0x46, - 0x40, 0x1d, 0xe2, 0xee, 0x6a, 0x46, 0x0e, 0xb2, 0xa0, 0x7b, 0xeb, 0x23, 0x42, 0x11, 0xdc, 0xa2, - 0xd9, 0x4a, 0x7f, 0xf0, 0xfe, 0xa4, 0x04, 0x93, 0x8b, 0xd6, 0x45, 0x13, 0x2b, 0xfa, 0xed, 0x62, - 0xb6, 0x6e, 0x9f, 0x83, 0xe1, 0xfc, 0x2d, 0xc8, 0xb1, 0xa7, 0xc0, 0x70, 0x6d, 0xfd, 0x22, 0x23, - 0x60, 0x88, 0x6d, 0x39, 0x82, 0x77, 0xd3, 0xc6, 0x95, 0x93, 0xbe, 0x5c, 0xff, 0x5c, 0x86, 0xec, - 0xa2, 0x6d, 0x75, 0xd5, 0xdf, 0xcf, 0x24, 0x70, 0xf3, 0x6a, 0xdb, 0x56, 0xb7, 0x81, 0x2f, 0x97, - 0x0c, 0x77, 0x36, 0xd8, 0x34, 0xe5, 0x76, 0x98, 0xec, 0x5a, 0x8e, 0xe1, 0xfa, 0xd3, 0x88, 0xb9, - 0xdb, 0x9e, 0xd0, 0xb7, 0x35, 0xaf, 0xd3, 0x4c, 0x5a, 0x90, 0xdd, 0xeb, 0xb5, 0xb1, 0x08, 0x3d, - 0xb9, 0x78, 0x62, 0xf4, 0x2f, 0xd8, 0xec, 0x49, 0x55, 0x5f, 0xc2, 0x22, 0xf9, 0x4c, 0x1e, 0xc9, - 0x27, 0xf6, 0x91, 0xb0, 0x6d, 0x75, 0x47, 0xe2, 0x98, 0xf1, 0xb2, 0x00, 0xd5, 0xbb, 0x39, 0x54, - 0x6f, 0x14, 0x2a, 0x33, 0x7d, 0x44, 0xdf, 0x9e, 0x05, 0xc0, 0x66, 0xc6, 0x86, 0x37, 0x01, 0x12, - 0xb3, 0xb1, 0x7e, 0x3a, 0xcb, 0xc8, 0xb2, 0xc8, 0xcb, 0xf2, 0xc9, 0x11, 0x56, 0x0c, 0x26, 0x1f, - 0x21, 0xd1, 0x22, 0xe4, 0x76, 0xbd, 0xcf, 0x54, 0xa2, 0x82, 0x24, 0xf0, 0xab, 0x46, 0xfe, 0x54, - 0xff, 0x2c, 0x03, 0x39, 0x9c, 0xa0, 0x9c, 0x06, 0xc0, 0x03, 0x3b, 0x39, 0x44, 0x99, 0xc1, 0x43, - 0x38, 0x93, 0x82, 0xb5, 0xd5, 0x68, 0xd3, 0xcf, 0xc4, 0x64, 0x0e, 0x13, 0xbc, 0xbf, 0xf1, 0x70, - 0x8f, 0x69, 0x51, 0x03, 0x80, 0x49, 0xf1, 0xfe, 0xc6, 0x6f, 0xab, 0x68, 0x93, 0xc4, 0xfd, 0xcf, - 0x6a, 0x61, 0x42, 0xf0, 0xf7, 0x6a, 0x70, 0x5b, 0xa4, 0xff, 0x37, 0x4e, 0xf1, 0x26, 0xc3, 0x58, - 0x2d, 0x17, 0xc2, 0x22, 0xf2, 0x38, 0x53, 0x6f, 0xb2, 0xfa, 0xaa, 0x40, 0x6d, 0x16, 0x39, 0xb5, - 0xb9, 0x25, 0x81, 0x78, 0xd3, 0x57, 0x9e, 0x2f, 0xe4, 0x60, 0xaa, 0x6a, 0xb5, 0xa9, 0xee, 0x30, - 0x13, 0xc6, 0x0f, 0xe6, 0x12, 0x4d, 0x18, 0x03, 0x1a, 0x11, 0x0a, 0x72, 0x2f, 0xaf, 0x20, 0x62, - 0x14, 0x58, 0xfd, 0x50, 0x16, 0x20, 0x8f, 0xb5, 0x77, 0xff, 0x35, 0x84, 0x71, 0x24, 0xb0, 0x68, - 0x35, 0xfa, 0xe7, 0x7f, 0x38, 0x1d, 0xfb, 0x2f, 0x90, 0xc3, 0x15, 0x8c, 0xd9, 0xdd, 0xe1, 0x2b, - 0x2a, 0xc5, 0x57, 0x54, 0x8e, 0xaf, 0x68, 0xb6, 0xb7, 0xa2, 0x49, 0xd6, 0x01, 0xa2, 0x34, 0x24, - 0x7d, 0x1d, 0xff, 0xc7, 0x09, 0x80, 0xaa, 0xbe, 0x67, 0x6c, 0x91, 0xdd, 0xe1, 0x4f, 0xfb, 0xf3, - 0x1f, 0xba, 0x8f, 0xfb, 0x5f, 0x99, 0x81, 0xf0, 0x76, 0x98, 0xa0, 0xe3, 0x1e, 0xad, 0xc8, 0xd5, - 0x5c, 0x45, 0x42, 0x2a, 0xc4, 0x2c, 0x7d, 0xc8, 0xd5, 0xfc, 0xfc, 0xdc, 0x8d, 0xe9, 0x52, 0xcf, - 0x8d, 0xe9, 0xfd, 0xf7, 0x20, 0x22, 0xee, 0x51, 0x57, 0xdf, 0x22, 0x7c, 0x0a, 0x8a, 0xe1, 0x87, - 0xa9, 0x51, 0x44, 0x13, 0x7c, 0x2a, 0x4c, 0x58, 0xc1, 0x86, 0xb6, 0x1c, 0xb9, 0x0e, 0x56, 0x31, - 0x37, 0x2d, 0xcd, 0xcf, 0x29, 0xb8, 0xf9, 0x25, 0xc4, 0xc7, 0x58, 0x0e, 0x1a, 0x9e, 0x5c, 0xf6, - 0x63, 0x28, 0x7a, 0xf5, 0x38, 0x67, 0xb8, 0xdb, 0xab, 0x38, 0x32, 0xd3, 0x8f, 0x89, 0x59, 0x90, - 0x0c, 0xfe, 0x52, 0x32, 0xfc, 0xf9, 0x38, 0x47, 0x75, 0x1e, 0xb5, 0xbb, 0xa2, 0xa8, 0xf4, 0xe7, - 0x36, 0x02, 0xc0, 0x3b, 0x20, 0x4f, 0x18, 0xa5, 0x9d, 0xe8, 0x99, 0x48, 0xfc, 0x02, 0x4a, 0x1a, - 0xfd, 0x43, 0x7d, 0x73, 0x80, 0xe3, 0x59, 0x0e, 0xc7, 0x85, 0x03, 0x71, 0x96, 0x3a, 0xa4, 0x67, - 0x6e, 0x85, 0x09, 0x2a, 0x69, 0x65, 0x8e, 0x6d, 0xc5, 0x85, 0x23, 0x0a, 0x40, 0x7e, 0xcd, 0xda, - 0x43, 0x0d, 0xab, 0x90, 0xf1, 0x9e, 0x3d, 0xfe, 0x1a, 0x56, 0x41, 0x52, 0x5f, 0x3e, 0x09, 0x93, - 0x41, 0xf0, 0xba, 0x4f, 0x4a, 0x50, 0x28, 0xd9, 0x48, 0x77, 0xd1, 0x92, 0x6d, 0xed, 0x90, 0x1a, - 0x89, 0x7b, 0xd4, 0xff, 0x8a, 0xb0, 0x8b, 0x47, 0x10, 0x54, 0xae, 0xb7, 0xb0, 0x08, 0x2c, 0xc9, - 0x22, 0xa4, 0xe4, 0x2f, 0x42, 0xaa, 0xaf, 0x15, 0x72, 0xf9, 0x10, 0x2d, 0x25, 0xfd, 0xa6, 0xf6, - 0x51, 0x09, 0x72, 0xa5, 0x8e, 0x65, 0x22, 0xf6, 0xd8, 0xe7, 0xc0, 0xf3, 0x85, 0xfd, 0x77, 0x22, - 0xd4, 0xe7, 0x48, 0xa2, 0xb6, 0x46, 0x28, 0x00, 0xaf, 0x6c, 0x41, 0xd9, 0x8a, 0x0d, 0x52, 0xb1, - 0xa4, 0xd3, 0x17, 0xe8, 0x57, 0x24, 0x98, 0x22, 0xb1, 0xc4, 0x8a, 0x9d, 0x8e, 0xfa, 0x84, 0x50, - 0xa8, 0x7d, 0x02, 0x00, 0xaa, 0x7f, 0x28, 0x7c, 0xac, 0x29, 0xa8, 0x55, 0x40, 0x3b, 0x41, 0x50, - 0xb5, 0x64, 0xa7, 0x6c, 0xc4, 0xf6, 0xd2, 0x06, 0x32, 0x94, 0xbe, 0xa8, 0x3f, 0x25, 0x79, 0x06, - 0x80, 0x79, 0x61, 0xdd, 0x46, 0x7b, 0x06, 0xba, 0xa8, 0x5e, 0x19, 0x0a, 0x7b, 0x7f, 0xa0, 0xa4, - 0x57, 0x0b, 0x2f, 0xe2, 0x30, 0x24, 0x23, 0xb7, 0xb2, 0xa6, 0x3b, 0x61, 0x26, 0xda, 0x8b, 0xf7, - 0x46, 0xaf, 0x62, 0xc8, 0x68, 0x6c, 0x76, 0xc1, 0x35, 0x9b, 0x68, 0x2e, 0xd2, 0x17, 0xec, 0xbb, - 0x27, 0x60, 0x72, 0xc3, 0x74, 0xba, 0x1d, 0xdd, 0xd9, 0x56, 0xbf, 0x2d, 0x43, 0x9e, 0x5c, 0x7e, - 0xa9, 0xfe, 0x00, 0x17, 0x8f, 0xe5, 0xc7, 0x77, 0x91, 0xed, 0xbb, 0xe0, 0x90, 0x97, 0xd0, 0x3e, - 0x92, 0x18, 0xfb, 0x48, 0x7d, 0xbb, 0x2c, 0x3a, 0x49, 0xf5, 0x0b, 0xa5, 0xb7, 0x6d, 0x46, 0x87, - 0x00, 0xe9, 0x1a, 0x2d, 0x77, 0xd7, 0x46, 0x4e, 0xdf, 0x10, 0x20, 0x91, 0x54, 0xd6, 0xc9, 0x5f, - 0x5a, 0xf0, 0xbb, 0xaa, 0xc3, 0x04, 0x4d, 0xdc, 0xb7, 0x9d, 0xb4, 0x3f, 0x66, 0xc1, 0x49, 0xc8, - 0xeb, 0xb6, 0x6b, 0x38, 0x2e, 0xdd, 0x60, 0xa5, 0x6f, 0x5e, 0x77, 0x49, 0x9e, 0x36, 0xec, 0x8e, - 0x1f, 0xb9, 0x29, 0x48, 0x50, 0xff, 0x48, 0x68, 0xfe, 0x18, 0x5f, 0xf3, 0x64, 0x90, 0xdf, 0x3f, - 0xc4, 0x1a, 0xf5, 0xe5, 0x70, 0x99, 0x56, 0x6c, 0x94, 0x9b, 0x24, 0xd0, 0x4f, 0x10, 0xd3, 0xa7, - 0xad, 0xbe, 0x49, 0x66, 0xd6, 0xef, 0x2e, 0x71, 0x63, 0x04, 0x95, 0x62, 0x38, 0x46, 0x04, 0x09, - 0x31, 0xbb, 0xd5, 0xdc, 0x22, 0xac, 0x2c, 0xbe, 0x08, 0xfb, 0x7b, 0xc2, 0xbb, 0x49, 0x81, 0x28, - 0x07, 0xac, 0x01, 0xc6, 0x5d, 0x8e, 0xf7, 0x4e, 0xa1, 0x9d, 0xa1, 0x41, 0x25, 0x1d, 0x22, 0x6c, - 0xbf, 0x33, 0x01, 0x13, 0xcb, 0x7a, 0xa7, 0x83, 0xec, 0x4b, 0xde, 0x90, 0x54, 0xf0, 0x39, 0x5c, - 0xd3, 0x4d, 0x63, 0x13, 0x39, 0x6e, 0x7c, 0x67, 0xf9, 0x16, 0xe1, 0xc0, 0xeb, 0xb4, 0x8c, 0xf9, - 0x5e, 0xfa, 0x11, 0x32, 0xbf, 0x19, 0xb2, 0x86, 0xb9, 0x69, 0xd1, 0x2e, 0xb3, 0x77, 0xd5, 0xde, - 0xff, 0x19, 0x4f, 0x5d, 0x70, 0x46, 0xc1, 0xd8, 0xeb, 0x82, 0x5c, 0xa4, 0xdf, 0x73, 0xfe, 0x41, - 0x16, 0x66, 0x7d, 0x26, 0x2a, 0x66, 0x1b, 0x3d, 0xc4, 0x2e, 0xc5, 0xfc, 0x62, 0x56, 0xf4, 0x08, - 0x6d, 0x6f, 0x7d, 0x30, 0xa9, 0x08, 0x91, 0x36, 0x00, 0x5a, 0xba, 0x8b, 0xb6, 0x2c, 0xdb, 0x08, - 0xfa, 0xc3, 0xa7, 0x25, 0xa1, 0x56, 0x22, 0x7f, 0x5f, 0xd2, 0x18, 0x3a, 0xca, 0x5d, 0x30, 0x8d, - 0x82, 0x98, 0x25, 0xfe, 0x52, 0x4d, 0x2c, 0x5e, 0x6c, 0x7e, 0xf5, 0x53, 0x42, 0x27, 0x75, 0x45, - 0xaa, 0x99, 0x0c, 0xb3, 0xe6, 0x70, 0x6d, 0x68, 0xa3, 0xba, 0x56, 0xd4, 0xea, 0x2b, 0xc5, 0xd5, - 0xd5, 0x4a, 0x75, 0x39, 0x08, 0x96, 0xa5, 0xc0, 0xdc, 0x62, 0xed, 0x5c, 0x95, 0x89, 0x66, 0x96, - 0x55, 0xd7, 0x61, 0xd2, 0x97, 0x57, 0x3f, 0x5f, 0x4c, 0x56, 0x66, 0xd4, 0x17, 0x93, 0x49, 0xf2, - 0x8c, 0x33, 0xa3, 0x15, 0x38, 0xe8, 0xe0, 0x67, 0xf5, 0x4f, 0x75, 0xc8, 0xe1, 0x35, 0x75, 0xf5, - 0x0d, 0x78, 0x1b, 0xb0, 0xdb, 0xd1, 0x5b, 0x48, 0xdd, 0x49, 0x60, 0x8d, 0xfb, 0x37, 0x01, 0x49, - 0xfb, 0x6e, 0x02, 0xc2, 0x8f, 0xd4, 0xea, 0x3b, 0xde, 0x6f, 0x1d, 0x5f, 0x23, 0x59, 0xf8, 0x43, - 0xad, 0xb1, 0xbb, 0x2b, 0x64, 0xf9, 0x9f, 0xb2, 0x19, 0xa1, 0x92, 0xd1, 0x3c, 0x25, 0xb3, 0x44, - 0xc5, 0xf6, 0x61, 0xe2, 0x38, 0x4a, 0xbf, 0xc5, 0x7f, 0x2e, 0x0b, 0xb9, 0x7a, 0xb7, 0x63, 0xb8, - 0xea, 0xaf, 0x49, 0x23, 0xc1, 0x8c, 0xdc, 0xde, 0x24, 0x0f, 0xbc, 0xbd, 0x29, 0xdc, 0x75, 0xcd, - 0x0a, 0xec, 0xba, 0x36, 0xd0, 0x43, 0x2e, 0xbf, 0xeb, 0x7a, 0x3b, 0x0d, 0x78, 0x49, 0xf6, 0x6c, - 0x9f, 0xd8, 0x47, 0xa4, 0xb8, 0x5a, 0x7d, 0x22, 0xa9, 0x9e, 0xb9, 0x95, 0x06, 0x74, 0x04, 0xc8, - 0x2f, 0xd4, 0x1a, 0x8d, 0xda, 0x5a, 0xe1, 0x08, 0x8e, 0x04, 0x56, 0x5b, 0x27, 0xe1, 0xb5, 0x2a, - 0xd5, 0x6a, 0x59, 0x2b, 0x48, 0x38, 0xc4, 0x64, 0xa5, 0xb1, 0x5a, 0x2e, 0xc8, 0xfc, 0x55, 0x1e, - 0xb1, 0xe6, 0x37, 0x5f, 0x76, 0x9a, 0xea, 0x25, 0x66, 0x88, 0x47, 0xf3, 0x93, 0xbe, 0x72, 0xfd, - 0xb2, 0x0c, 0xb9, 0x35, 0x64, 0x6f, 0x21, 0xf5, 0xc7, 0x13, 0x6c, 0xf2, 0x6d, 0x1a, 0xb6, 0x43, - 0x02, 0x72, 0x86, 0x9b, 0x7c, 0x6c, 0x9a, 0x72, 0x1d, 0xcc, 0x3a, 0xa8, 0x65, 0x99, 0x6d, 0x3f, - 0x13, 0xe9, 0x8f, 0xf8, 0x44, 0xf5, 0xa5, 0x09, 0x21, 0xc3, 0x8c, 0x8e, 0x64, 0xa7, 0x2e, 0x09, - 0x30, 0xfd, 0x4a, 0x4d, 0x1f, 0x98, 0x6f, 0xc8, 0xde, 0x4f, 0xdd, 0x4b, 0xea, 0x4b, 0x85, 0x77, - 0x5f, 0x6f, 0x82, 0xfc, 0x79, 0x3f, 0xb2, 0xbb, 0x1c, 0xd9, 0x1f, 0xd3, 0x3c, 0xca, 0x02, 0x1c, - 0x73, 0x50, 0x07, 0xb5, 0x5c, 0xd4, 0xf6, 0x9a, 0xae, 0x36, 0xb0, 0x53, 0xd8, 0x9f, 0x5d, 0xfd, - 0x0b, 0x16, 0xc0, 0x3b, 0x79, 0x00, 0xaf, 0xef, 0x23, 0x4a, 0xaf, 0x42, 0xd1, 0xb6, 0xb2, 0x57, - 0x8d, 0x7a, 0xc7, 0x0a, 0x16, 0xc5, 0xfd, 0x77, 0xef, 0xdb, 0xb6, 0xbb, 0xd3, 0xc1, 0xdf, 0xe8, - 0x01, 0x03, 0xff, 0x5d, 0x99, 0x87, 0x09, 0xdd, 0xbc, 0x84, 0x3f, 0x65, 0x63, 0x6a, 0xed, 0x67, - 0x52, 0x5f, 0x1e, 0x20, 0x7f, 0x0f, 0x87, 0xfc, 0x93, 0xc5, 0xd8, 0x4d, 0x1f, 0xf8, 0x9f, 0x9a, - 0x80, 0xdc, 0xba, 0xee, 0xb8, 0x48, 0xfd, 0x7f, 0x64, 0x51, 0xe4, 0xaf, 0x87, 0xb9, 0x4d, 0xab, - 0xb5, 0xeb, 0xa0, 0x36, 0xdf, 0x28, 0x7b, 0x52, 0x47, 0x81, 0xb9, 0x72, 0x23, 0x14, 0xfc, 0x44, - 0x4a, 0xd6, 0xdf, 0x86, 0xdf, 0x97, 0x8e, 0x2f, 0x86, 0x70, 0xd6, 0x75, 0xdb, 0xad, 0x6d, 0xe2, - 0xb4, 0xe0, 0x62, 0x08, 0x36, 0x91, 0x83, 0x3e, 0x1f, 0x03, 0xfd, 0x44, 0x34, 0xf4, 0x93, 0x02, - 0xd0, 0x2b, 0x45, 0x98, 0xdc, 0x34, 0x3a, 0x08, 0xff, 0x30, 0x85, 0x7f, 0xe8, 0x37, 0x26, 0x61, - 0xd9, 0x07, 0x63, 0xd2, 0x92, 0xd1, 0x41, 0x5a, 0xf0, 0x9b, 0x3f, 0x91, 0x81, 0x70, 0x22, 0xb3, - 0x4a, 0xfc, 0x69, 0x3d, 0xc3, 0xcb, 0xd4, 0x77, 0x90, 0xbf, 0xf8, 0x66, 0xd2, 0xc3, 0x2d, 0x6d, - 0xdd, 0xd5, 0x31, 0x18, 0x33, 0x1a, 0x7e, 0xe6, 0xfd, 0x42, 0xe4, 0x5e, 0xbf, 0x90, 0xe7, 0xc9, - 0xc9, 0x7a, 0x44, 0x9f, 0xd9, 0x88, 0x16, 0x75, 0xde, 0x07, 0x88, 0x58, 0x8a, 0xc1, 0xbb, 0x07, - 0x4c, 0x4b, 0xb7, 0x91, 0xbb, 0xce, 0x7a, 0x62, 0xe4, 0x34, 0x3e, 0x11, 0xbb, 0xf2, 0x39, 0x75, - 0x7d, 0x87, 0x5c, 0x0e, 0x51, 0xf2, 0xbe, 0x51, 0x17, 0xad, 0x7d, 0xe9, 0x61, 0xff, 0x9b, 0x1b, - 0x75, 0xff, 0xdb, 0xaf, 0x8e, 0xe9, 0x37, 0xc3, 0x57, 0x64, 0x41, 0x2e, 0xed, 0xba, 0x8f, 0xeb, - 0xee, 0xf7, 0x3b, 0xc2, 0x7e, 0x2e, 0xb4, 0x3f, 0xdb, 0x75, 0x0f, 0xb7, 0xf7, 0x4d, 0xa8, 0x25, - 0x62, 0xfe, 0x34, 0x51, 0x75, 0x4b, 0x5f, 0x47, 0x7e, 0x5f, 0x0e, 0x1c, 0x2c, 0x1f, 0xce, 0x1c, - 0xdc, 0x34, 0x57, 0x49, 0xff, 0xc4, 0xf4, 0x0c, 0xc1, 0xbb, 0xdf, 0xf1, 0x64, 0xb9, 0xf8, 0xa6, - 0x78, 0x7b, 0x1d, 0x8b, 0x72, 0x46, 0x23, 0x2f, 0xea, 0xaf, 0x0b, 0xbb, 0x9d, 0x13, 0xb1, 0xc5, - 0xba, 0x12, 0x26, 0xb3, 0xa9, 0xc4, 0xee, 0xc6, 0x8e, 0x29, 0x36, 0x7d, 0xc0, 0xbe, 0xc6, 0xba, - 0x0a, 0x16, 0x0f, 0x8c, 0x98, 0xfa, 0x88, 0xf0, 0x76, 0x14, 0xa9, 0xf6, 0x80, 0xf5, 0xc2, 0x64, - 0xf2, 0x16, 0xdb, 0xac, 0x8a, 0x2d, 0x38, 0x7d, 0x89, 0x7f, 0x55, 0x86, 0x3c, 0xd9, 0x82, 0x54, - 0x5f, 0x23, 0xdc, 0x44, 0xbc, 0xde, 0x88, 0x77, 0x21, 0x0c, 0xde, 0x93, 0xac, 0x39, 0x70, 0xae, - 0x86, 0xd9, 0x44, 0xae, 0x86, 0xfc, 0x39, 0x4e, 0x81, 0x76, 0x44, 0xea, 0x98, 0xf2, 0x74, 0x32, - 0x49, 0x0b, 0xeb, 0xcb, 0x50, 0xfa, 0x78, 0xff, 0x4c, 0x0e, 0x66, 0x48, 0xd1, 0xe7, 0x8c, 0xf6, - 0x16, 0x72, 0xd5, 0x37, 0x49, 0xdf, 0x3d, 0xa8, 0x2b, 0x55, 0x98, 0xb9, 0x88, 0xd9, 0x26, 0xb7, - 0x58, 0xd1, 0x95, 0x8b, 0x1b, 0x63, 0xd7, 0x3d, 0x48, 0x3d, 0xfd, 0x7b, 0xaf, 0xb8, 0xff, 0x3d, - 0x19, 0x93, 0x05, 0x7f, 0xe2, 0xc0, 0x95, 0xc7, 0x46, 0x16, 0x9b, 0xa4, 0x9c, 0x84, 0xfc, 0x9e, - 0x81, 0x2e, 0x56, 0xda, 0xd4, 0xba, 0xa5, 0x6f, 0xea, 0x1f, 0x0b, 0xef, 0xdb, 0xb2, 0x70, 0x53, - 0x5e, 0xd2, 0xd5, 0x42, 0xb1, 0xdd, 0xdb, 0x81, 0x6c, 0x8d, 0xe1, 0x4c, 0x31, 0x7f, 0xf7, 0x74, - 0x29, 0x81, 0x22, 0x46, 0x19, 0xce, 0x7c, 0x28, 0x8f, 0xd8, 0x13, 0x2b, 0x44, 0x00, 0x23, 0xbe, - 0x96, 0x5a, 0x2c, 0xbe, 0xc4, 0x80, 0xa2, 0xd3, 0x97, 0xfc, 0xab, 0x64, 0x98, 0xaa, 0x23, 0x77, - 0xc9, 0x40, 0x9d, 0xb6, 0xa3, 0xda, 0x07, 0x37, 0x8d, 0x6e, 0x86, 0xfc, 0x26, 0x26, 0x36, 0xe8, - 0xdc, 0x02, 0xcd, 0xa6, 0xbe, 0x42, 0x12, 0xdd, 0x11, 0xa6, 0xab, 0x6f, 0x3e, 0xb7, 0x23, 0x81, - 0x49, 0xcc, 0xa3, 0x37, 0xbe, 0xe4, 0x31, 0x04, 0x03, 0x97, 0x61, 0x86, 0x5e, 0x56, 0x5b, 0xec, - 0x18, 0x5b, 0xa6, 0xba, 0x3b, 0x82, 0x16, 0xa2, 0xdc, 0x02, 0x39, 0xdd, 0xa3, 0x46, 0xb7, 0x5e, - 0xd5, 0xbe, 0x9d, 0x27, 0x2e, 0x4f, 0x23, 0x19, 0x13, 0x84, 0xde, 0x0d, 0x15, 0xdb, 0xe7, 0x79, - 0x8c, 0xa1, 0x77, 0x07, 0x16, 0x9e, 0x3e, 0x62, 0x9f, 0x97, 0xe1, 0x38, 0x65, 0xe0, 0x2c, 0xb2, - 0x5d, 0xa3, 0xa5, 0x77, 0x08, 0x72, 0x2f, 0xcc, 0x8c, 0x02, 0xba, 0x15, 0x98, 0xdd, 0x63, 0xc9, - 0x52, 0x08, 0xcf, 0xf4, 0x85, 0x90, 0x63, 0x40, 0xe3, 0x7f, 0x4c, 0x10, 0xc2, 0x94, 0x93, 0x2a, - 0x47, 0x73, 0x8c, 0x21, 0x4c, 0x85, 0x99, 0x48, 0x1f, 0xe2, 0x97, 0xd0, 0xd0, 0x3c, 0x61, 0xf7, - 0xf9, 0x69, 0x61, 0x6c, 0x37, 0x60, 0x1a, 0x63, 0x49, 0x7e, 0xa4, 0xcb, 0x10, 0x31, 0x4a, 0x1c, - 0xf4, 0x3b, 0xf4, 0x92, 0xc5, 0xe0, 0x5f, 0x8d, 0xa5, 0xa3, 0x9e, 0x03, 0x08, 0x3f, 0xb1, 0x9d, - 0x74, 0x26, 0xaa, 0x93, 0x96, 0xc4, 0x3a, 0xe9, 0x57, 0x0b, 0x07, 0x4b, 0xe9, 0xcf, 0xf6, 0xc1, - 0xd5, 0x43, 0x2c, 0x4c, 0xc6, 0xe0, 0xd2, 0xd3, 0xd7, 0x8b, 0x97, 0x53, 0xbd, 0x58, 0xdc, 0xed, - 0x76, 0x8c, 0x96, 0x37, 0x9f, 0x7a, 0xdf, 0x48, 0xe6, 0x53, 0x6c, 0x7f, 0x20, 0xf7, 0xf4, 0x07, - 0x07, 0xb0, 0xa4, 0x6f, 0x80, 0xa3, 0xa4, 0x88, 0x52, 0xc0, 0x56, 0x8e, 0x84, 0x82, 0xe8, 0x49, - 0xe6, 0xe3, 0x12, 0x0a, 0x2a, 0x41, 0x20, 0x84, 0x21, 0x96, 0x3e, 0x93, 0x19, 0xbb, 0x49, 0x15, - 0x24, 0x8a, 0xb3, 0x31, 0xb8, 0x85, 0x66, 0x89, 0xb5, 0xbb, 0x81, 0xef, 0xc1, 0x54, 0x3f, 0x9b, - 0x1d, 0xc5, 0x88, 0x70, 0x2f, 0x64, 0xb1, 0x8b, 0xbb, 0x1c, 0xb9, 0xa4, 0x11, 0x16, 0x19, 0x5e, - 0x52, 0x8a, 0x1e, 0x72, 0x57, 0x8e, 0x68, 0xf8, 0x4f, 0xe5, 0x46, 0x38, 0x7a, 0x5e, 0x6f, 0x5d, - 0xd8, 0xb2, 0xad, 0x5d, 0x7c, 0x63, 0xa0, 0x45, 0xaf, 0x1e, 0xc4, 0x57, 0xb8, 0xf2, 0x1f, 0x94, - 0xdb, 0x7c, 0xd3, 0x21, 0x37, 0xc8, 0x74, 0x58, 0x39, 0x42, 0x8d, 0x07, 0xe5, 0xd6, 0xa0, 0xd3, - 0xc9, 0xc7, 0x76, 0x3a, 0x2b, 0x47, 0xfc, 0x6e, 0x47, 0x59, 0x84, 0xc9, 0xb6, 0xb1, 0x87, 0xb7, - 0xaa, 0xf1, 0xac, 0x6b, 0xd0, 0xd1, 0xe5, 0x45, 0x63, 0x8f, 0x6c, 0x6c, 0xaf, 0x1c, 0xd1, 0x82, - 0x3f, 0x95, 0x65, 0x98, 0xc2, 0xdb, 0x02, 0x98, 0xcc, 0x64, 0xa2, 0x63, 0xc9, 0x2b, 0x47, 0xb4, - 0xf0, 0x5f, 0xcf, 0xfa, 0xc8, 0xe2, 0xb3, 0x1f, 0xf7, 0xf8, 0xdb, 0xed, 0x99, 0x44, 0xdb, 0xed, - 0x9e, 0x2c, 0xc8, 0x86, 0xfb, 0x49, 0xc8, 0xb5, 0xb0, 0x84, 0x25, 0x2a, 0x61, 0xf2, 0xaa, 0xdc, - 0x09, 0xd9, 0x1d, 0xdd, 0xf6, 0x27, 0xcf, 0xd7, 0x0f, 0xa6, 0xbb, 0xa6, 0xdb, 0x17, 0x3c, 0x04, - 0xbd, 0xbf, 0x16, 0x26, 0x20, 0x87, 0x05, 0x17, 0x3c, 0xa8, 0xbf, 0x9f, 0x25, 0x66, 0x48, 0xc9, - 0x32, 0xbd, 0x61, 0xbf, 0x61, 0xf9, 0x07, 0x64, 0xfe, 0x38, 0x33, 0x1a, 0x0b, 0xf2, 0x32, 0x26, - 0x60, 0xb0, 0x69, 0xfc, 0xf8, 0x2e, 0xba, 0x1f, 0x5d, 0xa2, 0x4b, 0xa2, 0xfd, 0x3e, 0xf5, 0xdc, - 0x27, 0x9f, 0xed, 0xbd, 0x4f, 0x3e, 0x5c, 0x3e, 0xc8, 0x0d, 0x76, 0x54, 0xf9, 0x8b, 0x21, 0x4c, - 0x97, 0x5e, 0x41, 0x44, 0xcf, 0xc0, 0x3b, 0x86, 0xc9, 0xd4, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, 0x25, - 0x35, 0x6a, 0x06, 0xb0, 0x97, 0x7e, 0xdf, 0xf4, 0xbb, 0x59, 0x12, 0x33, 0x95, 0x9c, 0xc2, 0xe0, - 0xef, 0xe8, 0x55, 0x3f, 0x32, 0x12, 0xa5, 0xe9, 0x33, 0xe0, 0xc8, 0x7d, 0x07, 0x9c, 0x7d, 0x87, - 0x94, 0xb3, 0x03, 0x0e, 0x29, 0xe7, 0x92, 0xad, 0x1c, 0xbe, 0x8b, 0xd5, 0x9f, 0x75, 0x5e, 0x7f, - 0xee, 0x88, 0x00, 0xa8, 0x9f, 0x5c, 0x46, 0x62, 0xdf, 0xbc, 0x21, 0xd0, 0x94, 0x3a, 0xa7, 0x29, - 0xf7, 0x0c, 0xcf, 0x48, 0xfa, 0xda, 0xf2, 0x8e, 0x2c, 0x5c, 0x16, 0x32, 0x53, 0x45, 0x17, 0xa9, - 0xa2, 0x7c, 0x72, 0x24, 0x8a, 0x92, 0x3c, 0x06, 0x42, 0xda, 0x1a, 0xf3, 0x67, 0xc2, 0x67, 0x87, - 0x7a, 0x81, 0x0a, 0x64, 0x13, 0xa1, 0x2c, 0x27, 0x21, 0x4f, 0x7a, 0x18, 0x0a, 0x0d, 0x7d, 0x4b, - 0xd8, 0xdd, 0x88, 0x9d, 0x38, 0x12, 0xe5, 0x6d, 0x0c, 0xfa, 0x43, 0xd7, 0x35, 0x1a, 0xbb, 0xb6, - 0x59, 0x31, 0x5d, 0x4b, 0xfd, 0xc9, 0x91, 0x28, 0x4e, 0xe0, 0x0d, 0x27, 0x0f, 0xe3, 0x0d, 0x37, - 0xd4, 0x2a, 0x87, 0x5f, 0x83, 0x43, 0x59, 0xe5, 0x88, 0x28, 0x3c, 0x7d, 0xfc, 0x5e, 0x2f, 0xc3, - 0x49, 0x3a, 0xd9, 0x5a, 0xe0, 0x2d, 0x44, 0xf5, 0x81, 0x51, 0x00, 0x79, 0xdc, 0x37, 0x93, 0xe8, - 0xcd, 0x90, 0xf8, 0x85, 0x3f, 0x29, 0x15, 0x7b, 0x27, 0x0e, 0x37, 0x1d, 0xec, 0xe1, 0x70, 0x24, - 0x48, 0x89, 0x5d, 0x85, 0x93, 0x80, 0x8d, 0xf4, 0x31, 0x7b, 0xb1, 0x0c, 0x79, 0x72, 0x4e, 0x4b, - 0xdd, 0x48, 0xc5, 0x61, 0x82, 0x8f, 0xf2, 0x2c, 0xb0, 0x23, 0x47, 0xb8, 0x49, 0xed, 0x0c, 0x5b, - 0x92, 0xbd, 0xb8, 0xbe, 0xac, 0x8c, 0xc1, 0x85, 0x50, 0x82, 0xe9, 0x3a, 0x72, 0x4b, 0xba, 0x6d, - 0x1b, 0xfa, 0xd6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xd5, 0x6f, 0x66, 0x44, 0xcf, 0xd3, 0x04, - 0x0b, 0xe1, 0x3e, 0xab, 0x11, 0xb1, 0x04, 0x1f, 0x15, 0x3a, 0x33, 0x33, 0x88, 0xda, 0x18, 0x3c, - 0xb6, 0x25, 0x98, 0xf0, 0xcf, 0xe2, 0xdd, 0xcc, 0x9d, 0xcf, 0xdc, 0x76, 0x77, 0xfc, 0x63, 0x30, - 0xf8, 0x79, 0xff, 0x19, 0x30, 0xf5, 0x65, 0x09, 0x1d, 0xe5, 0xe3, 0x0f, 0x12, 0x26, 0x6b, 0x63, - 0x49, 0xdc, 0xe1, 0x0f, 0xeb, 0xe8, 0xe0, 0x1f, 0x4e, 0xd0, 0xe5, 0xc8, 0x55, 0xdd, 0x45, 0x0f, - 0xa9, 0x9f, 0x96, 0x61, 0xa2, 0x8e, 0x5c, 0x6f, 0xbc, 0xe5, 0x2e, 0x84, 0x1e, 0x56, 0xc3, 0x15, - 0x66, 0xc5, 0x63, 0x8a, 0xae, 0x61, 0xdc, 0x07, 0x53, 0x5d, 0xdb, 0x6a, 0x21, 0xc7, 0xa1, 0xab, - 0x17, 0xac, 0xa3, 0x5a, 0xbf, 0xd1, 0x1f, 0xb3, 0x36, 0xbf, 0xee, 0xff, 0xa3, 0x85, 0xbf, 0x27, - 0x35, 0x03, 0x08, 0x25, 0x5a, 0xc1, 0x71, 0x9b, 0x01, 0x71, 0x85, 0xa7, 0x0f, 0xf4, 0xc7, 0x65, - 0x98, 0xa9, 0x23, 0x37, 0x90, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x39, 0x28, 0xe5, 0x83, 0x41, - 0x29, 0x7e, 0x9d, 0x2a, 0x2f, 0xcd, 0x80, 0xd8, 0x18, 0xaf, 0x53, 0x15, 0xe3, 0x60, 0x0c, 0xc7, - 0xd7, 0x9e, 0x08, 0x53, 0x98, 0x17, 0xdc, 0x60, 0x7f, 0x2e, 0x1b, 0x36, 0xde, 0xcf, 0xa4, 0xd4, - 0x78, 0xef, 0x82, 0xdc, 0x8e, 0x6e, 0x5f, 0x70, 0x70, 0xc3, 0x9d, 0x16, 0x31, 0xdb, 0xd7, 0xbc, - 0xec, 0x1a, 0xf9, 0xab, 0xbf, 0x9f, 0x66, 0x2e, 0x99, 0x9f, 0xe6, 0xa3, 0x52, 0xa2, 0x91, 0x90, - 0xcc, 0x1d, 0x46, 0xd8, 0xe4, 0x13, 0x8c, 0x9b, 0x31, 0x65, 0xa7, 0xaf, 0x1c, 0x2f, 0x94, 0x61, - 0xd2, 0x1b, 0xb7, 0xb1, 0x3d, 0x7e, 0xee, 0xe0, 0xea, 0xd0, 0xdf, 0xd0, 0x4f, 0xd8, 0x03, 0xfb, - 0x12, 0x19, 0x9d, 0x79, 0x9f, 0xa0, 0x07, 0x8e, 0x2b, 0x3c, 0x7d, 0x3c, 0xde, 0x48, 0xf0, 0xc0, - 0xed, 0x41, 0xfd, 0x6d, 0x19, 0xe4, 0x65, 0xe4, 0x8e, 0xdb, 0x8a, 0x7c, 0x9d, 0x70, 0x88, 0x23, - 0x4e, 0x60, 0x98, 0xe7, 0xf9, 0x65, 0x34, 0x9a, 0x06, 0x24, 0x16, 0xdb, 0x48, 0x88, 0x81, 0xf4, - 0x51, 0x7b, 0x2b, 0x41, 0x8d, 0x6c, 0x2e, 0xfc, 0xc4, 0x08, 0x7a, 0xd5, 0xf1, 0x2e, 0x7c, 0xf8, - 0x02, 0xc4, 0x34, 0x0e, 0xab, 0xbd, 0xf5, 0x2b, 0x7c, 0x2c, 0xd7, 0x97, 0x82, 0xd7, 0xd8, 0xb7, - 0x51, 0xeb, 0x02, 0x6a, 0xb3, 0xd7, 0xc1, 0x0d, 0x0b, 0xdd, 0x29, 0x98, 0x68, 0x11, 0x6a, 0x18, - 0xbc, 0x49, 0xcd, 0x7f, 0x4d, 0x70, 0x17, 0x3f, 0xdf, 0x11, 0x91, 0xdf, 0xc7, 0x78, 0x17, 0xbf, - 0x40, 0xf1, 0x63, 0x30, 0x5b, 0xc8, 0x2c, 0xa3, 0xd2, 0xb2, 0x4c, 0xf5, 0x3f, 0x1f, 0x1c, 0x96, - 0xab, 0x60, 0xca, 0x68, 0x59, 0x26, 0x0e, 0x43, 0xe1, 0x1f, 0x02, 0x0a, 0x12, 0xfc, 0xaf, 0xe5, - 0x1d, 0xeb, 0x41, 0x83, 0xee, 0x9a, 0x87, 0x09, 0xc3, 0x1a, 0x13, 0x1e, 0xeb, 0x87, 0x65, 0x4c, - 0xf4, 0x29, 0x3b, 0x7d, 0xc8, 0xde, 0x1f, 0x7a, 0xb7, 0x91, 0xae, 0xf0, 0x71, 0xb1, 0x0a, 0x3c, - 0xcc, 0x70, 0xc6, 0xd6, 0xe2, 0x50, 0x86, 0xb3, 0x18, 0x06, 0xc6, 0x70, 0x63, 0x45, 0x88, 0x63, - 0xea, 0x6b, 0xc0, 0x07, 0x40, 0x67, 0x74, 0xe6, 0xe1, 0x90, 0xe8, 0x1c, 0x8e, 0x89, 0xf8, 0x4e, - 0x1a, 0x22, 0x93, 0x5a, 0x3c, 0xea, 0x7f, 0x19, 0x05, 0x38, 0x77, 0x0c, 0xe3, 0xaf, 0x40, 0xbc, - 0x15, 0xd4, 0xd7, 0x4a, 0xa2, 0x21, 0x50, 0xf6, 0x49, 0xd0, 0xa3, 0x32, 0x12, 0x04, 0x5f, 0x2d, - 0x14, 0x9b, 0x44, 0xa4, 0xfc, 0xf4, 0x01, 0x7c, 0x81, 0x0c, 0x73, 0xd8, 0x47, 0xa0, 0x83, 0x74, - 0x9b, 0x74, 0x94, 0x23, 0x71, 0x94, 0x7f, 0xa3, 0x70, 0x80, 0x1f, 0x5e, 0x0e, 0x21, 0x1f, 0x23, - 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x63, 0xd9, 0x46, 0x29, 0x04, 0x2c, 0x50, 0x15, 0x1f, - 0x0d, 0x1e, 0x09, 0x3d, 0x72, 0x79, 0x61, 0xf8, 0x8d, 0x6d, 0xcc, 0x1e, 0xb9, 0x22, 0x4c, 0xa4, - 0x8f, 0xc9, 0x6f, 0xdf, 0x42, 0x17, 0x9c, 0x1b, 0xfa, 0xf9, 0x0e, 0x52, 0x1f, 0xc9, 0x06, 0x27, - 0xda, 0x3e, 0x3e, 0x12, 0x0f, 0xcc, 0x03, 0x04, 0xc4, 0x57, 0x20, 0x6b, 0x5b, 0x17, 0xc9, 0xd2, - 0xd6, 0xac, 0x86, 0x9f, 0xc9, 0xf5, 0x94, 0x9d, 0xdd, 0x1d, 0x93, 0x9c, 0x0c, 0x9d, 0xd5, 0xfc, - 0x57, 0xe5, 0x3a, 0x98, 0xbd, 0x68, 0xb8, 0xdb, 0x2b, 0x48, 0x6f, 0x23, 0x5b, 0xb3, 0x2e, 0x62, - 0x8f, 0xb9, 0x49, 0x8d, 0x4f, 0xe4, 0xfd, 0x57, 0x04, 0xec, 0x4b, 0x4f, 0x28, 0xe3, 0x39, 0xfe, - 0x96, 0xc4, 0xf2, 0x8c, 0xe6, 0x2a, 0x7d, 0x85, 0x79, 0x9b, 0x0c, 0x53, 0x9a, 0x75, 0x91, 0x2a, - 0xc9, 0xff, 0x75, 0xb8, 0x3a, 0x92, 0x78, 0xa2, 0x87, 0x25, 0x17, 0xb0, 0x3f, 0xf6, 0x89, 0x5e, - 0x6c, 0xf1, 0x63, 0x39, 0xb9, 0x34, 0xa3, 0x59, 0x17, 0xeb, 0xc8, 0x25, 0x2d, 0x42, 0x6d, 0x8e, - 0xc8, 0xc9, 0xda, 0x70, 0x08, 0x41, 0x3a, 0x0f, 0x0f, 0xde, 0x93, 0xee, 0x22, 0x04, 0x02, 0x0a, - 0x58, 0x1c, 0xf7, 0x2e, 0xc2, 0x40, 0x0e, 0xc6, 0x10, 0x23, 0x45, 0x86, 0x69, 0xcd, 0xba, 0xe8, - 0x0d, 0x0d, 0x4b, 0x46, 0xa7, 0x33, 0x9a, 0x11, 0x32, 0xa9, 0xf1, 0xef, 0x8b, 0xc1, 0xe7, 0x62, - 0xec, 0xc6, 0xff, 0x00, 0x06, 0xd2, 0x87, 0xe1, 0x79, 0xa4, 0xb1, 0xf8, 0x23, 0xb4, 0x39, 0x1a, - 0x1c, 0x86, 0x6d, 0x10, 0x01, 0x1b, 0x87, 0xd6, 0x20, 0xa2, 0x38, 0x18, 0xcb, 0xce, 0xc9, 0x5c, - 0x09, 0x0f, 0xf3, 0xa3, 0x6d, 0x13, 0x6f, 0x4e, 0xe6, 0x9a, 0x48, 0x87, 0x5d, 0x8e, 0x91, 0x91, - 0xa0, 0x91, 0xc0, 0x05, 0x51, 0x80, 0x87, 0xf4, 0xf1, 0x78, 0x8f, 0x0c, 0x33, 0x84, 0x85, 0xc7, - 0x89, 0x15, 0x30, 0x54, 0xa3, 0x62, 0x6b, 0x70, 0x38, 0x8d, 0x2a, 0x86, 0x83, 0xb1, 0xdc, 0x0a, - 0xea, 0xd9, 0x71, 0x43, 0x1c, 0x1f, 0x8f, 0x42, 0x70, 0x68, 0x63, 0x6c, 0x84, 0x47, 0xc8, 0x87, - 0x31, 0xc6, 0x0e, 0xe9, 0x18, 0xf9, 0xf3, 0x82, 0x56, 0x34, 0x4a, 0x0c, 0x0e, 0xd0, 0x14, 0x46, - 0x08, 0xc3, 0x90, 0x4d, 0xe1, 0x90, 0x90, 0xf8, 0x82, 0x0c, 0x40, 0x18, 0x58, 0xb3, 0xf6, 0xf0, - 0x65, 0x3e, 0x23, 0xe8, 0xce, 0x7a, 0xdd, 0xea, 0xe5, 0x01, 0x6e, 0xf5, 0x09, 0x43, 0xb8, 0x24, - 0x5d, 0x09, 0x64, 0xa4, 0xec, 0x55, 0x72, 0xec, 0x2b, 0x81, 0xf1, 0xe5, 0xa7, 0x8f, 0xf1, 0x63, - 0xc4, 0x9a, 0x0b, 0x0f, 0x98, 0xfe, 0xea, 0x48, 0x50, 0x66, 0x66, 0xff, 0x32, 0x3f, 0xfb, 0x3f, - 0x00, 0xb6, 0xc3, 0xda, 0x88, 0x83, 0x0e, 0x8e, 0xa6, 0x6f, 0x23, 0x1e, 0xde, 0x01, 0xd1, 0x9f, - 0xc8, 0xc2, 0x51, 0xda, 0x89, 0x7c, 0x37, 0x40, 0x9c, 0xf0, 0x1c, 0x1e, 0xd7, 0x49, 0x0e, 0x40, - 0x79, 0x54, 0x0b, 0x52, 0x49, 0x96, 0x32, 0x05, 0xd8, 0x1b, 0xcb, 0xea, 0x46, 0xbe, 0xfc, 0x50, - 0x57, 0x37, 0xdb, 0xe2, 0xe1, 0x7e, 0x07, 0x00, 0xef, 0xaf, 0x35, 0xca, 0xfc, 0x5a, 0x63, 0x9f, - 0x95, 0xc9, 0xc4, 0x3b, 0xd7, 0x58, 0x64, 0x84, 0xdd, 0xb1, 0xef, 0x5c, 0x47, 0x97, 0x9d, 0x3e, - 0x4a, 0x6f, 0x96, 0x21, 0x5b, 0xb7, 0x6c, 0x57, 0x7d, 0x7e, 0x92, 0xd6, 0x49, 0x24, 0x1f, 0x82, - 0xe4, 0xbf, 0x2b, 0x25, 0xee, 0x96, 0xe6, 0x9b, 0xe3, 0x8f, 0x3a, 0xeb, 0xae, 0x8e, 0xbd, 0xba, - 0xbd, 0xf2, 0x99, 0xeb, 0x9a, 0x93, 0xc6, 0xd3, 0x21, 0xf2, 0xab, 0x47, 0x1f, 0xc0, 0x48, 0x2d, - 0x9e, 0x4e, 0x64, 0xc9, 0xe9, 0xe3, 0xf6, 0xca, 0xa3, 0xd4, 0xb7, 0x75, 0xc9, 0xe8, 0x20, 0xf5, - 0xf9, 0xc4, 0x65, 0xa4, 0xaa, 0xef, 0x20, 0xf1, 0x23, 0x31, 0xb1, 0xae, 0xad, 0x38, 0xbe, 0xac, - 0x1c, 0xc6, 0x97, 0x4d, 0xda, 0xa0, 0xc8, 0x01, 0x74, 0xc2, 0xd2, 0xb8, 0x1b, 0x54, 0x4c, 0xd9, - 0x63, 0x89, 0xd3, 0x79, 0xac, 0x8e, 0x5c, 0x62, 0x54, 0xd6, 0xfc, 0x1b, 0x58, 0x7e, 0x74, 0x24, - 0x11, 0x3b, 0x83, 0x0b, 0x5e, 0xe4, 0x9e, 0x0b, 0x5e, 0xde, 0xc6, 0x82, 0xb3, 0xc6, 0x83, 0xf3, - 0x83, 0xd1, 0x02, 0xe2, 0x99, 0x1c, 0x09, 0x4c, 0xaf, 0x0b, 0x60, 0x5a, 0xe7, 0x60, 0xba, 0x73, - 0x48, 0x2e, 0xd2, 0x07, 0xec, 0xe7, 0x73, 0x70, 0x94, 0x4c, 0xfa, 0x8b, 0x66, 0x9b, 0x46, 0x58, - 0x7d, 0x8d, 0x74, 0xc8, 0x9b, 0x6d, 0xfb, 0x43, 0xb0, 0x72, 0xb1, 0x9c, 0x73, 0xbd, 0xb7, 0xe3, - 0x2f, 0x90, 0x70, 0xae, 0x5e, 0x27, 0x8a, 0x77, 0xda, 0xc4, 0x6f, 0xc8, 0x0f, 0xfe, 0xe3, 0xef, - 0x32, 0x9a, 0x10, 0xbf, 0xcb, 0xe8, 0xcf, 0x93, 0xad, 0xdb, 0xe1, 0xa2, 0x7b, 0x04, 0x9e, 0xb2, - 0xed, 0x94, 0x60, 0x45, 0x4f, 0x80, 0xbb, 0xef, 0x0d, 0x77, 0xb2, 0x30, 0x82, 0xc8, 0x90, 0xee, - 0x64, 0x98, 0xc0, 0x61, 0xba, 0x93, 0x0d, 0x62, 0x60, 0x0c, 0xb7, 0xda, 0xe7, 0xe8, 0x6e, 0x3e, - 0x6e, 0x37, 0xea, 0x5f, 0x4b, 0xa9, 0x8f, 0xd2, 0xdf, 0xca, 0x24, 0xf2, 0x7f, 0xc6, 0x7c, 0xc5, - 0x0f, 0xd3, 0x49, 0x3c, 0x9a, 0xe3, 0xc8, 0x8d, 0x61, 0xdd, 0x48, 0xc2, 0xbe, 0xe8, 0xe7, 0x8c, - 0xb6, 0xbb, 0x3d, 0xa2, 0x13, 0x1d, 0x17, 0x3d, 0x5a, 0xfe, 0xf5, 0xc8, 0xf8, 0x45, 0xfd, 0xb7, - 0x4c, 0xa2, 0x10, 0x52, 0x81, 0x48, 0x30, 0x5b, 0x11, 0x22, 0x4e, 0x10, 0xf8, 0x29, 0x96, 0xde, - 0x18, 0x35, 0xfa, 0xac, 0xd1, 0x46, 0xd6, 0xe3, 0x50, 0xa3, 0x31, 0x5f, 0xa3, 0xd3, 0xe8, 0x38, - 0x72, 0xdf, 0xa3, 0x1a, 0x1d, 0x88, 0x64, 0x44, 0x1a, 0x1d, 0x4b, 0x2f, 0x7d, 0x19, 0xbf, 0x6c, - 0x86, 0x4e, 0xa4, 0x56, 0x0d, 0xf3, 0x82, 0xfa, 0xcf, 0x79, 0xff, 0x62, 0xe6, 0x73, 0x86, 0xbb, - 0x4d, 0x63, 0xc1, 0xbc, 0x43, 0xf8, 0x6e, 0x94, 0x21, 0xe2, 0xbd, 0xf0, 0xe1, 0xa4, 0x72, 0xfb, - 0xc2, 0x49, 0x15, 0x61, 0xd6, 0x30, 0x5d, 0x64, 0x9b, 0x7a, 0x67, 0xa9, 0xa3, 0x6f, 0x39, 0xa7, - 0x26, 0xfa, 0x5e, 0x5e, 0x57, 0x61, 0xf2, 0x68, 0xfc, 0x1f, 0xec, 0xf5, 0x95, 0x93, 0xfc, 0xf5, - 0x95, 0x11, 0xd1, 0xaf, 0xa6, 0xa2, 0xa3, 0x5f, 0x05, 0xd1, 0xad, 0x60, 0x70, 0x70, 0x6c, 0x51, - 0xdb, 0x38, 0x61, 0xb8, 0xbf, 0x9b, 0x05, 0xa3, 0xb0, 0x05, 0xa1, 0x1f, 0x7f, 0x53, 0x4e, 0xb4, - 0xba, 0xe7, 0x29, 0xc2, 0x7c, 0xaf, 0x12, 0x24, 0xb6, 0x50, 0xd9, 0xca, 0xcb, 0x3d, 0x95, 0x0f, - 0x4c, 0x9e, 0xac, 0x80, 0xc9, 0xc3, 0x2a, 0x55, 0x4e, 0x4c, 0xa9, 0x92, 0x2c, 0x16, 0x8a, 0xd4, - 0x76, 0x0c, 0xa7, 0x91, 0x72, 0x70, 0xcc, 0x8f, 0x76, 0xdb, 0xed, 0x22, 0xdd, 0xd6, 0xcd, 0x16, - 0x52, 0xdf, 0x2f, 0x8d, 0xc2, 0xec, 0x5d, 0x82, 0x49, 0xa3, 0x65, 0x99, 0x75, 0xe3, 0xd9, 0xfe, - 0xe5, 0x72, 0xf1, 0x41, 0xd6, 0xb1, 0x44, 0x2a, 0xf4, 0x0f, 0x2d, 0xf8, 0x57, 0xa9, 0xc0, 0x54, - 0x4b, 0xb7, 0xdb, 0x24, 0x08, 0x5f, 0xae, 0xe7, 0x22, 0xa7, 0x48, 0x42, 0x25, 0xff, 0x17, 0x2d, - 0xfc, 0x5b, 0xa9, 0xf1, 0x42, 0xcc, 0xf7, 0x44, 0xf3, 0x88, 0x24, 0xb6, 0x18, 0xfe, 0xc4, 0xc9, - 0xdc, 0x93, 0x8e, 0x8d, 0x3a, 0xf8, 0x0e, 0x7a, 0xd2, 0x43, 0x4c, 0x69, 0x61, 0x42, 0xd2, 0xe5, - 0x01, 0x5c, 0xd4, 0x3e, 0x34, 0xc6, 0xbd, 0x3c, 0x20, 0xc4, 0x45, 0xfa, 0x9a, 0xf9, 0x86, 0x3c, - 0xcc, 0x92, 0x5e, 0x8d, 0x8a, 0x53, 0x7d, 0x01, 0xbe, 0x42, 0xda, 0xbd, 0x1f, 0x5d, 0x52, 0xeb, - 0x07, 0x1f, 0x93, 0x0b, 0x20, 0x5f, 0x08, 0x02, 0x0e, 0x7a, 0x8f, 0x49, 0xf7, 0xed, 0x7d, 0xbe, - 0xe6, 0x09, 0x4f, 0xe3, 0xde, 0xb7, 0x8f, 0x2f, 0x3e, 0x7d, 0x7c, 0x7e, 0x41, 0x06, 0xb9, 0xd8, - 0x6e, 0xab, 0xad, 0x83, 0x43, 0x71, 0x0d, 0x4c, 0xfb, 0x6d, 0x26, 0x8c, 0x01, 0xc9, 0x26, 0x25, - 0x5d, 0x04, 0x0d, 0x64, 0x53, 0x6c, 0x8f, 0x7d, 0x57, 0x21, 0xa6, 0xec, 0xf4, 0x41, 0xf9, 0xd5, - 0x09, 0xda, 0x68, 0x16, 0x2c, 0xeb, 0x02, 0x3e, 0x2a, 0xf3, 0x7c, 0x19, 0x72, 0x4b, 0xc8, 0x6d, - 0x6d, 0x8f, 0xa8, 0xcd, 0xec, 0xda, 0x1d, 0xbf, 0xcd, 0xec, 0xbb, 0x0f, 0x7f, 0xb0, 0x0d, 0xeb, - 0xb3, 0x35, 0x8f, 0x59, 0x1a, 0x77, 0x74, 0xe7, 0xd8, 0xd2, 0xd3, 0x07, 0xe7, 0xdf, 0x64, 0x98, - 0x0b, 0x56, 0xb8, 0x08, 0x26, 0x3f, 0x9f, 0x79, 0xbc, 0xad, 0x77, 0xaa, 0x9f, 0x4c, 0x16, 0x22, - 0x2d, 0x90, 0x29, 0x5f, 0xb3, 0x94, 0x17, 0x16, 0x13, 0x04, 0x4f, 0x13, 0x63, 0x70, 0x0c, 0x33, - 0x78, 0x19, 0x26, 0x31, 0x43, 0x8b, 0xc6, 0x1e, 0x76, 0x1d, 0xe4, 0x16, 0x1a, 0x9f, 0x33, 0x92, - 0x85, 0xc6, 0x3b, 0xf9, 0x85, 0x46, 0xc1, 0x88, 0xc7, 0xfe, 0x3a, 0x63, 0x42, 0x5f, 0x1a, 0xef, - 0xff, 0x91, 0x2f, 0x33, 0x26, 0xf0, 0xa5, 0x19, 0x50, 0x7e, 0xfa, 0x88, 0xfe, 0xe6, 0x7f, 0xa2, - 0x9d, 0xad, 0xbf, 0xa1, 0xaa, 0xfe, 0x8f, 0x63, 0x90, 0x3d, 0xeb, 0x3d, 0xfc, 0xaf, 0xf0, 0x46, - 0xac, 0x97, 0x8e, 0x20, 0x38, 0xc3, 0xdd, 0x90, 0xf5, 0xe8, 0xd3, 0x69, 0xcb, 0x8d, 0x62, 0xbb, - 0xbb, 0x1e, 0x23, 0x1a, 0xfe, 0x4f, 0x39, 0x09, 0x79, 0xc7, 0xda, 0xb5, 0x5b, 0x9e, 0xf9, 0xec, - 0x69, 0x0c, 0x7d, 0x4b, 0x1a, 0x94, 0x94, 0x23, 0x3d, 0x3f, 0x3a, 0x97, 0x51, 0xe6, 0x82, 0x24, - 0x99, 0xbb, 0x20, 0x29, 0xc1, 0xfe, 0x81, 0x00, 0x6f, 0xe9, 0x6b, 0xc4, 0x5f, 0xe3, 0xbb, 0x02, - 0xdb, 0xa3, 0x82, 0x3d, 0x42, 0x2c, 0x07, 0x55, 0x87, 0xa4, 0x0e, 0xdf, 0xbc, 0x68, 0x83, 0x38, - 0xf0, 0x63, 0x75, 0xf8, 0x16, 0xe0, 0x61, 0x2c, 0xa7, 0xd4, 0xf3, 0xd4, 0x49, 0xf5, 0x81, 0x51, - 0xa2, 0x9b, 0xe5, 0x94, 0xfe, 0x40, 0xe8, 0x8c, 0xd0, 0x79, 0x75, 0x68, 0x74, 0x0e, 0xc9, 0x7d, - 0xf5, 0x4f, 0x64, 0x1c, 0x09, 0xd3, 0x37, 0x72, 0xc4, 0x2f, 0x3a, 0x4a, 0x0c, 0x91, 0x37, 0x06, - 0x73, 0x71, 0xa0, 0x67, 0x87, 0x0f, 0x0d, 0xce, 0x8b, 0x8e, 0xe1, 0x7f, 0xdc, 0xa1, 0xc1, 0x45, - 0x19, 0x49, 0x1f, 0xc8, 0xdf, 0x22, 0x17, 0x8b, 0x15, 0x5b, 0xae, 0xb1, 0x37, 0xe2, 0x96, 0xc6, - 0x0f, 0x2f, 0x09, 0xa3, 0x01, 0xef, 0x93, 0x10, 0xe1, 0x70, 0xdc, 0xd1, 0x80, 0xc5, 0xd8, 0x48, - 0x1f, 0xa6, 0xbf, 0xcb, 0x7b, 0xd2, 0xa3, 0x6b, 0x33, 0xbf, 0x4d, 0x57, 0x03, 0xd0, 0xc1, 0xd1, - 0x3a, 0x03, 0x33, 0xcc, 0xd4, 0xdf, 0xbf, 0xb0, 0x86, 0x4b, 0x4b, 0x7a, 0xd0, 0x3d, 0x10, 0xd9, - 0xc8, 0x17, 0x06, 0x12, 0x2c, 0xf8, 0x8a, 0x30, 0x31, 0x96, 0xfb, 0xe0, 0xfc, 0x31, 0x6c, 0x4c, - 0x58, 0xbd, 0x83, 0xc5, 0xaa, 0xc6, 0x63, 0x75, 0xbb, 0x88, 0x98, 0xc4, 0xc6, 0x34, 0xa1, 0x79, - 0xe3, 0xeb, 0x03, 0xb8, 0x34, 0x0e, 0xae, 0xbb, 0x87, 0xe6, 0x23, 0x7d, 0xc4, 0x7e, 0x8d, 0x74, - 0x87, 0x75, 0x62, 0xb2, 0x8f, 0xa6, 0x3b, 0xa4, 0xb3, 0x01, 0x99, 0x9b, 0x0d, 0x24, 0xf4, 0xb7, - 0x0f, 0xdd, 0x48, 0x7d, 0xe6, 0x06, 0x41, 0x94, 0x1d, 0xb1, 0xbf, 0xfd, 0x40, 0x0e, 0xd2, 0x07, - 0xe7, 0xeb, 0x32, 0xc0, 0xb2, 0x6d, 0xed, 0x76, 0x6b, 0x76, 0x1b, 0xd9, 0xea, 0xdf, 0x86, 0x13, - 0x80, 0x5f, 0x1c, 0xc1, 0x04, 0x60, 0x1d, 0x60, 0x2b, 0x20, 0x4e, 0x35, 0xfc, 0x16, 0x31, 0x73, - 0x3f, 0x64, 0x4a, 0x63, 0x68, 0xf0, 0x57, 0xce, 0xfe, 0x10, 0x8f, 0x71, 0x5c, 0x9f, 0x15, 0x92, - 0x1b, 0xe5, 0x04, 0xe0, 0x8d, 0x01, 0xd6, 0x0d, 0x0e, 0xeb, 0x7b, 0x0f, 0xc0, 0x49, 0xfa, 0x98, - 0xff, 0xd3, 0x04, 0x4c, 0x93, 0xed, 0x3a, 0x22, 0xd3, 0x7f, 0x08, 0x41, 0xff, 0xd5, 0x11, 0x80, - 0xbe, 0x01, 0x33, 0x56, 0x48, 0x9d, 0xf4, 0xa9, 0xec, 0x02, 0x4c, 0x2c, 0xec, 0x0c, 0x5f, 0x1a, - 0x47, 0x46, 0x7d, 0x2f, 0x8b, 0xbc, 0xc6, 0x23, 0x7f, 0x67, 0x8c, 0xbc, 0x19, 0x8a, 0xa3, 0x84, - 0xfe, 0x4d, 0x01, 0xf4, 0x1b, 0x1c, 0xf4, 0xc5, 0x83, 0xb0, 0x32, 0x86, 0x70, 0xfb, 0x32, 0x64, - 0xf1, 0xe9, 0xb8, 0xdf, 0x4d, 0x71, 0x7e, 0x7f, 0x0a, 0x26, 0x70, 0x93, 0x0d, 0xe6, 0x1d, 0xfe, - 0xab, 0xf7, 0x45, 0xdf, 0x74, 0x91, 0x1d, 0x78, 0x2c, 0xf8, 0xaf, 0x1e, 0x0f, 0xbe, 0x57, 0xb2, - 0x73, 0x2a, 0x4f, 0x36, 0x22, 0x83, 0x84, 0xa1, 0x27, 0x25, 0xac, 0xc4, 0x47, 0x76, 0x5e, 0x6e, - 0x98, 0x49, 0xc9, 0x00, 0x46, 0xd2, 0x07, 0xfe, 0xb3, 0x59, 0x38, 0x45, 0x56, 0x95, 0x96, 0x6c, - 0x6b, 0xa7, 0xe7, 0x76, 0x2b, 0xe3, 0xe0, 0xba, 0x70, 0x3d, 0xcc, 0xb9, 0x9c, 0x3f, 0x36, 0xd5, - 0x89, 0x9e, 0x54, 0xf5, 0x2f, 0x58, 0x9f, 0x8a, 0x67, 0xf1, 0x48, 0x2e, 0xc4, 0x08, 0x30, 0x8a, - 0xf7, 0xc4, 0x0b, 0xf5, 0x82, 0x8c, 0x32, 0x8b, 0x54, 0xf2, 0x50, 0x6b, 0x96, 0x81, 0x4e, 0xe5, - 0x44, 0x74, 0xea, 0xed, 0x81, 0x4e, 0xfd, 0x08, 0xa7, 0x53, 0xcb, 0x07, 0x17, 0x49, 0xfa, 0xba, - 0xf5, 0x48, 0xb0, 0x31, 0x14, 0x6c, 0xdb, 0xed, 0xa4, 0xb0, 0x59, 0xc7, 0xfa, 0x23, 0x65, 0x39, - 0x7f, 0x24, 0xfe, 0x3e, 0x8a, 0x04, 0x33, 0x61, 0x9e, 0xeb, 0x08, 0x5d, 0x9a, 0x03, 0xc9, 0xf0, - 0xb9, 0x93, 0x8c, 0xf6, 0x50, 0x73, 0xdd, 0xd8, 0x82, 0xc6, 0xb0, 0xb6, 0x34, 0x07, 0xf9, 0x25, - 0xa3, 0xe3, 0x22, 0x5b, 0x7d, 0x8c, 0xce, 0x74, 0x1f, 0x49, 0x71, 0x00, 0x58, 0x84, 0xfc, 0x26, - 0x2e, 0x8d, 0x9a, 0xcc, 0x37, 0x89, 0xb5, 0x1e, 0xc2, 0xa1, 0x46, 0xff, 0x4d, 0x1a, 0x9d, 0xaf, - 0x87, 0xcc, 0xc8, 0xa6, 0xc8, 0x09, 0xa2, 0xf3, 0x0d, 0x66, 0x61, 0x2c, 0x17, 0x53, 0xe5, 0x35, - 0xb4, 0xe3, 0x8d, 0xf1, 0x17, 0xd2, 0x43, 0xb8, 0x00, 0xb2, 0xd1, 0x76, 0x70, 0xe7, 0x38, 0xa5, - 0x79, 0x8f, 0x49, 0x7d, 0x85, 0x7a, 0x45, 0x45, 0x58, 0x1e, 0xb7, 0xaf, 0x90, 0x10, 0x17, 0xe9, - 0x63, 0xf6, 0x2d, 0xec, 0x28, 0xda, 0xed, 0xe8, 0x2d, 0xe4, 0x71, 0x9f, 0x1a, 0x6a, 0xa4, 0x27, - 0xcb, 0xfa, 0x3d, 0x19, 0xd3, 0x4e, 0x73, 0x07, 0x68, 0xa7, 0xc3, 0x2e, 0x43, 0x06, 0x32, 0xc7, - 0x15, 0x3f, 0xb4, 0x65, 0xc8, 0x58, 0x36, 0xc6, 0x70, 0xed, 0xa8, 0x7f, 0x90, 0x76, 0xac, 0xad, - 0x75, 0xd8, 0x4d, 0x1a, 0x2a, 0xac, 0x91, 0x1d, 0x9a, 0x1d, 0x66, 0x93, 0x26, 0x9a, 0x87, 0x31, - 0xa0, 0x35, 0x47, 0xd1, 0xfa, 0x04, 0x1d, 0x46, 0x53, 0xde, 0x27, 0x75, 0x2c, 0xdb, 0x4d, 0xb6, - 0x4f, 0xea, 0x71, 0xa7, 0xe1, 0xff, 0x92, 0x1e, 0xbc, 0xe2, 0xcf, 0x55, 0x8f, 0x6a, 0xf8, 0x4c, - 0x70, 0xf0, 0x6a, 0x10, 0x03, 0xe9, 0xc3, 0xfb, 0xda, 0x43, 0x1a, 0x3c, 0x87, 0x6d, 0x8e, 0xb4, - 0x0d, 0x8c, 0x6c, 0xe8, 0x1c, 0xa6, 0x39, 0x46, 0xf3, 0x90, 0x3e, 0x5e, 0x5f, 0x63, 0x06, 0xce, - 0x57, 0x8f, 0x71, 0xe0, 0xf4, 0x5b, 0x66, 0x6e, 0xc8, 0x96, 0x39, 0xec, 0xfe, 0x0f, 0x95, 0xf5, - 0xe8, 0x06, 0xcc, 0x61, 0xf6, 0x7f, 0x62, 0x98, 0x48, 0x1f, 0xf1, 0xd7, 0xc8, 0x90, 0xab, 0x8f, - 0x7f, 0xbc, 0x1c, 0x76, 0x2e, 0x82, 0x65, 0x55, 0x1f, 0xd9, 0x70, 0x39, 0xcc, 0x5c, 0x24, 0x92, - 0x85, 0x31, 0x04, 0xde, 0x3f, 0x0a, 0x33, 0x78, 0x49, 0xc4, 0xdf, 0x66, 0xfd, 0x1a, 0x1d, 0x35, - 0x1f, 0x4d, 0xb1, 0xad, 0xde, 0x07, 0x93, 0xfe, 0xfe, 0x1d, 0x1d, 0x39, 0xe7, 0xc5, 0xda, 0xa7, - 0xcf, 0xa5, 0x16, 0xfc, 0x7f, 0x20, 0x67, 0x88, 0x91, 0xef, 0xd5, 0x0e, 0xeb, 0x0c, 0x71, 0xa8, - 0xfb, 0xb5, 0x7f, 0x1e, 0x8e, 0xa8, 0xff, 0x39, 0x3d, 0xcc, 0x7b, 0xf7, 0x71, 0xb3, 0x7d, 0xf6, - 0x71, 0xdf, 0xcf, 0x62, 0x59, 0xe7, 0xb1, 0xbc, 0x4b, 0x54, 0x84, 0x23, 0x1c, 0x6b, 0xdf, 0x1c, - 0xc0, 0x79, 0x96, 0x83, 0x73, 0xe1, 0x40, 0xbc, 0x8c, 0xe1, 0xe0, 0x63, 0x36, 0x1c, 0x73, 0x3f, - 0x90, 0x62, 0x3b, 0xee, 0x39, 0x55, 0x91, 0xdd, 0x77, 0xaa, 0x82, 0x6b, 0xe9, 0xb9, 0x03, 0xb6, - 0xf4, 0x0f, 0xb0, 0xda, 0xd1, 0xe0, 0xb5, 0xe3, 0x6e, 0x71, 0x44, 0x46, 0x37, 0x32, 0xbf, 0x25, - 0x50, 0x8f, 0x73, 0x9c, 0x7a, 0x94, 0x0e, 0xc6, 0x4c, 0xfa, 0xfa, 0xf1, 0x21, 0x7f, 0x42, 0x7b, - 0xc8, 0xed, 0x7d, 0xd8, 0xad, 0x62, 0x4e, 0x88, 0x23, 0x1b, 0xb9, 0x87, 0xd9, 0x2a, 0x1e, 0xc4, - 0xc9, 0x18, 0x62, 0xb1, 0xcd, 0xc2, 0x34, 0xe6, 0xe9, 0x9c, 0xd1, 0xde, 0x42, 0xae, 0xfa, 0x9b, - 0xc4, 0x47, 0xd1, 0x8f, 0x7c, 0x39, 0xa2, 0xf0, 0x44, 0x51, 0xe7, 0x5d, 0x93, 0x7a, 0x74, 0x10, - 0x26, 0xe7, 0x19, 0x06, 0xc7, 0x1d, 0x41, 0x71, 0x20, 0x07, 0xe9, 0x43, 0xf6, 0x5e, 0xe2, 0x6e, - 0xb3, 0xaa, 0x5f, 0xb2, 0x76, 0x5d, 0xf5, 0xe1, 0x11, 0x74, 0xd0, 0x0b, 0x90, 0xef, 0x60, 0x6a, - 0xf4, 0x58, 0x46, 0xfc, 0x74, 0x87, 0x8a, 0x80, 0x94, 0xaf, 0xd1, 0x3f, 0x93, 0x9e, 0xcd, 0x08, - 0xe5, 0x48, 0xe8, 0x8c, 0xfb, 0x6c, 0xc6, 0x80, 0xf2, 0xc7, 0x72, 0xc7, 0xce, 0xa4, 0x57, 0xba, - 0xb1, 0x63, 0xb8, 0x23, 0x8a, 0xe0, 0xd0, 0xf1, 0x68, 0xf9, 0x11, 0x1c, 0xf0, 0x4b, 0xd2, 0x13, - 0xa3, 0x8c, 0x54, 0xbc, 0xdf, 0xc7, 0x7d, 0x62, 0x34, 0xbe, 0xf8, 0xf4, 0x31, 0xf9, 0x65, 0xd2, - 0xb2, 0xce, 0x12, 0xe7, 0xdb, 0x14, 0xfd, 0x7a, 0x87, 0x6e, 0x2c, 0x84, 0xb5, 0xc3, 0x6b, 0x2c, - 0x7d, 0xcb, 0x4f, 0x1f, 0x98, 0xff, 0xf6, 0xfd, 0x90, 0x5b, 0x44, 0xe7, 0x77, 0xb7, 0xd4, 0x3b, - 0x61, 0xb2, 0x61, 0x23, 0x54, 0x31, 0x37, 0x2d, 0x4f, 0xba, 0xae, 0xf7, 0xec, 0x43, 0x42, 0xdf, - 0x3c, 0x3c, 0xb6, 0x91, 0xde, 0x0e, 0xcf, 0x9f, 0xf9, 0xaf, 0xea, 0x4b, 0x25, 0xc8, 0xd6, 0x5d, - 0xdd, 0x55, 0xa7, 0x02, 0x6c, 0xd5, 0x87, 0x59, 0x2c, 0xee, 0xe4, 0xb1, 0xb8, 0x9e, 0x93, 0x05, - 0xe6, 0x60, 0xde, 0xfb, 0x3f, 0x02, 0x00, 0x15, 0x26, 0x1f, 0x74, 0x2c, 0xd3, 0xcb, 0xe1, 0x1f, - 0x81, 0xf4, 0xdf, 0xd5, 0x97, 0x07, 0xe2, 0xbe, 0x87, 0x13, 0xf7, 0x93, 0xc5, 0x8a, 0x18, 0xc3, - 0x4a, 0x9b, 0x04, 0x53, 0x9e, 0x68, 0x57, 0x90, 0xde, 0x76, 0xd4, 0xef, 0x0b, 0x95, 0x3f, 0x42, - 0xcc, 0xea, 0x3b, 0x85, 0x83, 0x71, 0x92, 0x5a, 0x05, 0xc4, 0xa3, 0x3d, 0x3a, 0xfc, 0xcd, 0x7f, - 0x89, 0x0f, 0x46, 0x72, 0x33, 0x64, 0x0d, 0x73, 0xd3, 0xa2, 0xfe, 0x85, 0x57, 0x46, 0xd0, 0xf6, - 0x74, 0x42, 0xc3, 0x19, 0x05, 0x23, 0x75, 0xc6, 0xb3, 0x35, 0x96, 0x4b, 0xef, 0xb2, 0x5e, 0xe9, - 0xea, 0xff, 0x39, 0x50, 0xd8, 0x8a, 0x02, 0xd9, 0xae, 0xee, 0x6e, 0xd3, 0xa2, 0xf1, 0xb3, 0x67, - 0x23, 0xef, 0x9a, 0xba, 0x69, 0x99, 0x97, 0x76, 0x8c, 0x67, 0x07, 0x77, 0xeb, 0x72, 0x69, 0x1e, - 0xe7, 0x5b, 0xc8, 0x44, 0xb6, 0xee, 0xa2, 0xfa, 0xde, 0x16, 0x9e, 0x63, 0x4d, 0x6a, 0x6c, 0x52, - 0x62, 0xfd, 0xf7, 0x38, 0x8e, 0xd6, 0xff, 0x4d, 0xa3, 0x83, 0x70, 0xa4, 0x26, 0xaa, 0xff, 0xfe, - 0x7b, 0x22, 0xfd, 0xef, 0x53, 0x44, 0xfa, 0x68, 0x7c, 0x5b, 0x82, 0x99, 0xba, 0xa7, 0x70, 0xf5, - 0xdd, 0x9d, 0x1d, 0xdd, 0xbe, 0xa4, 0x5e, 0x1b, 0xa2, 0xc2, 0xa8, 0x66, 0x86, 0xf7, 0x4b, 0xf9, - 0x13, 0xe1, 0x6b, 0xa5, 0x69, 0xd3, 0x66, 0x4a, 0x48, 0xdc, 0x0e, 0x6e, 0x85, 0x9c, 0xa7, 0xde, - 0xbe, 0xc7, 0x65, 0x6c, 0x43, 0x20, 0x39, 0x05, 0x23, 0x5a, 0x0d, 0xe4, 0x6d, 0x0c, 0xd1, 0x34, - 0x24, 0x38, 0x5a, 0x77, 0xf5, 0xd6, 0x85, 0x65, 0xcb, 0xb6, 0x76, 0x5d, 0xc3, 0x44, 0x8e, 0xfa, - 0x84, 0x10, 0x01, 0x5f, 0xff, 0x33, 0xa1, 0xfe, 0xab, 0xff, 0x9e, 0x11, 0x1d, 0x45, 0x83, 0x6e, - 0x95, 0x25, 0x1f, 0x11, 0xa0, 0x4a, 0x6c, 0x5c, 0x14, 0xa1, 0x98, 0xbe, 0xd0, 0x5e, 0x2d, 0x43, - 0xa1, 0xfc, 0x50, 0xd7, 0xb2, 0xdd, 0x55, 0xab, 0xa5, 0x77, 0x1c, 0xd7, 0xb2, 0x91, 0x5a, 0x8b, - 0x95, 0x9a, 0xd7, 0xc3, 0xb4, 0xad, 0x56, 0x38, 0x38, 0xd2, 0x37, 0x56, 0xed, 0x64, 0x5e, 0xc7, - 0xdf, 0x2b, 0xbc, 0xcb, 0x48, 0xa4, 0xd2, 0xcb, 0x51, 0x84, 0x9e, 0xf7, 0xeb, 0xd2, 0x92, 0x1d, - 0x96, 0x10, 0xdb, 0x79, 0x14, 0x62, 0x6a, 0x0c, 0x4b, 0xe5, 0x12, 0xcc, 0xd6, 0x77, 0xcf, 0x07, - 0x44, 0x1c, 0xd6, 0x08, 0x79, 0x85, 0x70, 0x94, 0x0a, 0xaa, 0x78, 0x2c, 0xa1, 0x08, 0xf9, 0x5e, - 0x07, 0xb3, 0x0e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, 0x46, 0xa7, 0x18, 0x5c, 0x6a, 0xfa, 0x02, - 0x7c, 0x8b, 0x04, 0xb3, 0xb5, 0x2e, 0x32, 0x51, 0x9b, 0x78, 0x41, 0x72, 0x02, 0x7c, 0x69, 0x42, - 0x01, 0x72, 0x84, 0x22, 0x04, 0x18, 0x7a, 0x2c, 0x2f, 0xfa, 0xc2, 0x0b, 0x13, 0x12, 0x09, 0x2e, - 0xae, 0xb4, 0xf4, 0x05, 0xf7, 0x39, 0x09, 0xa6, 0xb5, 0x5d, 0x73, 0xdd, 0xb6, 0xbc, 0xd1, 0xd8, - 0x56, 0xef, 0x0a, 0x3b, 0x88, 0x9b, 0xe0, 0x58, 0x7b, 0xd7, 0xc6, 0xeb, 0x4f, 0x15, 0xb3, 0x8e, - 0x5a, 0x96, 0xd9, 0x76, 0x70, 0x3d, 0x72, 0xda, 0xfe, 0x0f, 0x77, 0x64, 0x9f, 0xff, 0x65, 0x39, - 0xa3, 0xbe, 0x40, 0x38, 0xd4, 0x0d, 0xa9, 0x3c, 0x53, 0xb4, 0x78, 0x4f, 0x20, 0x18, 0xd0, 0x66, - 0x50, 0x09, 0xe9, 0x0b, 0xf7, 0x13, 0x12, 0x28, 0xc5, 0x56, 0xcb, 0xda, 0x35, 0xdd, 0x3a, 0xea, - 0xa0, 0x96, 0xdb, 0xb0, 0xf5, 0x16, 0x62, 0xed, 0xe7, 0x02, 0xc8, 0x6d, 0xc3, 0xa6, 0x7d, 0xb0, - 0xf7, 0x48, 0xe5, 0xf8, 0x52, 0xe1, 0x1d, 0x47, 0x52, 0xcb, 0xfd, 0xa5, 0x24, 0x10, 0xa7, 0xd8, - 0xbe, 0xa2, 0x60, 0x41, 0xe9, 0x4b, 0xf5, 0x03, 0x12, 0x4c, 0xf9, 0x3d, 0xf6, 0x96, 0x88, 0x30, - 0x7f, 0x39, 0xe1, 0x64, 0x24, 0x20, 0x9e, 0x40, 0x86, 0x6f, 0x48, 0x30, 0xab, 0x88, 0xa2, 0x9f, - 0x4c, 0x74, 0xc5, 0xe4, 0xa2, 0xf3, 0x5e, 0xab, 0xb5, 0xe6, 0x52, 0x6d, 0x75, 0xb1, 0xac, 0x15, - 0x64, 0xf5, 0x31, 0x09, 0xb2, 0xeb, 0x86, 0xb9, 0xc5, 0x46, 0x57, 0x3a, 0xee, 0xd9, 0x91, 0x6d, - 0xf4, 0x10, 0x6d, 0xe9, 0xe4, 0x45, 0xb9, 0x0d, 0x8e, 0x9b, 0xbb, 0x3b, 0xe7, 0x91, 0x5d, 0xdb, - 0xc4, 0xa3, 0xac, 0xd3, 0xb0, 0xea, 0xc8, 0x24, 0x46, 0x68, 0x4e, 0xeb, 0xfb, 0x8d, 0x37, 0xc1, - 0x04, 0x26, 0x0f, 0x1e, 0x27, 0x11, 0x12, 0x0f, 0x98, 0x92, 0x18, 0xa6, 0x12, 0x4d, 0x1b, 0xfa, - 0x10, 0x4f, 0x5f, 0x53, 0xff, 0x34, 0x07, 0x27, 0x8a, 0xe6, 0x25, 0x6c, 0x53, 0x90, 0x0e, 0xbe, - 0xb4, 0xad, 0x9b, 0x5b, 0x08, 0x0f, 0x10, 0x81, 0xc4, 0xd9, 0x10, 0xfd, 0x19, 0x3e, 0x44, 0xbf, - 0xa2, 0xc1, 0x84, 0x65, 0xb7, 0x91, 0xbd, 0x70, 0x09, 0xf3, 0xd4, 0xbb, 0xec, 0x4c, 0xdb, 0x64, - 0xbf, 0x22, 0xe6, 0x29, 0xf9, 0xf9, 0x1a, 0xf9, 0x5f, 0xf3, 0x09, 0x9d, 0xb9, 0x09, 0x26, 0x68, - 0x9a, 0x32, 0x03, 0x93, 0x35, 0x6d, 0xb1, 0xac, 0x35, 0x2b, 0x8b, 0x85, 0x23, 0xca, 0x65, 0x70, - 0xb4, 0xd2, 0x28, 0x6b, 0xc5, 0x46, 0xa5, 0x56, 0x6d, 0xe2, 0xf4, 0x42, 0x46, 0x7d, 0x5e, 0x56, - 0xd4, 0xb3, 0x37, 0x9e, 0x99, 0x7e, 0xb0, 0x6a, 0x30, 0xd1, 0x22, 0x19, 0xf0, 0x10, 0x3a, 0x9d, - 0xa8, 0x76, 0x94, 0x20, 0x49, 0xd0, 0x7c, 0x42, 0xca, 0x69, 0x80, 0x8b, 0xb6, 0x65, 0x6e, 0x85, - 0xa7, 0x0e, 0x27, 0x35, 0x26, 0x45, 0x7d, 0x38, 0x03, 0x79, 0xf2, 0x0f, 0xbe, 0x92, 0x04, 0x3f, - 0x85, 0x82, 0xf7, 0xdf, 0x3d, 0x8b, 0x17, 0xcb, 0x2b, 0x9c, 0x68, 0xd1, 0x57, 0x4f, 0x17, 0x89, - 0x0c, 0x88, 0x25, 0x4c, 0xab, 0x72, 0x33, 0xe4, 0xc9, 0xbf, 0xd4, 0xeb, 0x20, 0x3a, 0xbc, 0x28, - 0xc9, 0x26, 0xe8, 0xa7, 0x2c, 0x2e, 0xd3, 0xf4, 0xb5, 0xf9, 0x5d, 0x12, 0x4c, 0x56, 0x91, 0x5b, - 0xda, 0x46, 0xad, 0x0b, 0xea, 0x93, 0xf8, 0x05, 0xd0, 0x8e, 0x81, 0x4c, 0xf7, 0x81, 0x9d, 0x4e, - 0xb0, 0x00, 0xea, 0x27, 0xa8, 0x3f, 0xc3, 0x76, 0xbe, 0xf7, 0xf2, 0xfa, 0x73, 0x63, 0x9f, 0xba, - 0xfa, 0x25, 0x44, 0xa8, 0xcc, 0x49, 0xc8, 0xdb, 0xc8, 0xd9, 0xed, 0xf8, 0x8b, 0x68, 0xf4, 0x4d, - 0x7d, 0x65, 0x20, 0xce, 0x12, 0x27, 0xce, 0x9b, 0xc5, 0x8b, 0x18, 0x43, 0xbc, 0xd2, 0x2c, 0x4c, - 0x54, 0x4c, 0xc3, 0x35, 0xf4, 0x8e, 0xfa, 0x82, 0x2c, 0xcc, 0xd6, 0x91, 0xbb, 0xae, 0xdb, 0xfa, - 0x0e, 0x72, 0x91, 0xed, 0xa8, 0xdf, 0xe4, 0xfb, 0x84, 0x6e, 0x47, 0x77, 0x37, 0x2d, 0x7b, 0xc7, - 0x57, 0x4d, 0xff, 0xdd, 0x53, 0xcd, 0x3d, 0x64, 0x3b, 0x21, 0x5f, 0xfe, 0xab, 0xf7, 0xe5, 0xa2, - 0x65, 0x5f, 0xf0, 0x06, 0x41, 0x3a, 0x4d, 0xa3, 0xaf, 0x1e, 0xbd, 0x8e, 0xb5, 0xb5, 0x8a, 0xf6, - 0x90, 0x1f, 0x2e, 0x2d, 0x78, 0xf7, 0xe6, 0x02, 0x6d, 0xab, 0x6a, 0xb9, 0x5e, 0xa7, 0xbd, 0x6a, - 0x6d, 0x91, 0x78, 0xb1, 0x93, 0x1a, 0x9f, 0x18, 0xe6, 0xd2, 0xf7, 0x10, 0xce, 0x95, 0x67, 0x73, - 0xd1, 0x44, 0x65, 0x1e, 0x94, 0xe0, 0xb7, 0x06, 0xea, 0xa0, 0x1d, 0xe4, 0xda, 0x97, 0xf0, 0xb5, - 0x10, 0x93, 0x5a, 0x9f, 0x2f, 0x74, 0x80, 0x16, 0x9f, 0xac, 0x53, 0xe9, 0xcd, 0x73, 0x92, 0x3b, - 0xd0, 0x64, 0x5d, 0x84, 0xe2, 0x58, 0xae, 0xbd, 0x92, 0x3d, 0x6b, 0xe6, 0xd7, 0x65, 0xc8, 0xe2, - 0xc1, 0xf3, 0x35, 0x19, 0x6e, 0x85, 0x69, 0x07, 0x39, 0x8e, 0xbe, 0x85, 0xfc, 0x15, 0x26, 0xfa, - 0xaa, 0xdc, 0x0e, 0xb9, 0x0e, 0xc6, 0x94, 0x0c, 0x0e, 0xd7, 0x72, 0x35, 0xf3, 0x0c, 0x0c, 0x8f, - 0x56, 0x30, 0x12, 0x60, 0xb8, 0x35, 0xf2, 0xc7, 0x99, 0xfb, 0x20, 0x47, 0xe0, 0x9f, 0x82, 0xdc, - 0x62, 0x79, 0x61, 0x63, 0xb9, 0x70, 0xc4, 0x7b, 0xf4, 0xf9, 0x9b, 0x82, 0xdc, 0x52, 0xb1, 0x51, - 0x5c, 0x2d, 0x48, 0x5e, 0x3d, 0x2a, 0xd5, 0xa5, 0x5a, 0x41, 0xf6, 0x12, 0xd7, 0x8b, 0xd5, 0x4a, - 0xa9, 0x90, 0x55, 0xa6, 0x61, 0xe2, 0x5c, 0x51, 0xab, 0x56, 0xaa, 0xcb, 0x85, 0x9c, 0xfa, 0x77, - 0x2c, 0x7e, 0x77, 0xf0, 0xf8, 0x5d, 0x17, 0xc5, 0x53, 0x3f, 0xc8, 0x7e, 0x23, 0x80, 0xec, 0x2e, - 0x0e, 0xb2, 0xef, 0x17, 0x21, 0x32, 0x06, 0x77, 0xa6, 0x3c, 0x4c, 0xac, 0xdb, 0x56, 0x0b, 0x39, - 0x8e, 0xfa, 0x2b, 0x12, 0xe4, 0x4b, 0xba, 0xd9, 0x42, 0x1d, 0xf5, 0x8a, 0x10, 0x2a, 0xe2, 0x2a, - 0x9a, 0x09, 0x4e, 0x8b, 0x7d, 0x3d, 0x23, 0xda, 0xfb, 0x51, 0xba, 0xf3, 0x84, 0x66, 0x84, 0x7c, - 0xc4, 0x7a, 0xb9, 0x58, 0x52, 0x63, 0xb8, 0x1a, 0x47, 0x82, 0x29, 0xba, 0x1a, 0x70, 0x1e, 0xb1, - 0xf3, 0xf0, 0x6f, 0x66, 0x44, 0x27, 0x87, 0x7e, 0x0d, 0x02, 0x32, 0x11, 0xf2, 0x10, 0x9b, 0x08, - 0x0e, 0xa2, 0x36, 0x86, 0xcd, 0x43, 0x09, 0xa6, 0x37, 0x4c, 0xa7, 0x9f, 0x50, 0xc4, 0xe3, 0xe8, - 0xfb, 0xd5, 0x60, 0x08, 0x1d, 0x28, 0x8e, 0xfe, 0x60, 0x7a, 0xe9, 0x0b, 0xe6, 0x9b, 0x19, 0x38, - 0xbe, 0x8c, 0x4c, 0x64, 0x1b, 0x2d, 0x52, 0x03, 0x5f, 0x12, 0x77, 0xf1, 0x92, 0x78, 0x12, 0xc7, - 0x79, 0xbf, 0x3f, 0x78, 0x09, 0x3c, 0x12, 0x48, 0xe0, 0x5e, 0x4e, 0x02, 0x37, 0x09, 0xd2, 0x19, - 0xc3, 0x7d, 0xe8, 0x53, 0x30, 0x53, 0xb5, 0x5c, 0x63, 0xd3, 0x68, 0x11, 0x1f, 0xb4, 0x5f, 0x93, - 0x21, 0xbb, 0x6a, 0x38, 0xae, 0x5a, 0x0c, 0xbb, 0x93, 0x6b, 0x60, 0xda, 0x30, 0x5b, 0x9d, 0xdd, - 0x36, 0xd2, 0x90, 0x4e, 0xfa, 0x95, 0x49, 0x8d, 0x4d, 0x0a, 0xb7, 0xf6, 0x3d, 0xb6, 0x64, 0x7f, - 0x6b, 0xff, 0xa3, 0xc2, 0xcb, 0x30, 0x2c, 0x0b, 0x38, 0x20, 0x65, 0x84, 0xdd, 0x55, 0x84, 0x59, - 0x93, 0xc9, 0xea, 0x1b, 0xec, 0xbd, 0x17, 0x0a, 0xb0, 0xe4, 0x34, 0xfe, 0x0f, 0xf5, 0x6d, 0x42, - 0x8d, 0x75, 0x10, 0x43, 0xc9, 0x90, 0x59, 0x1a, 0x62, 0x92, 0xac, 0xc0, 0x5c, 0xa5, 0xda, 0x28, - 0x6b, 0xd5, 0xe2, 0x2a, 0xcd, 0x22, 0xab, 0xdf, 0x96, 0x20, 0xa7, 0xa1, 0x6e, 0xe7, 0x12, 0x1b, - 0x31, 0x9a, 0x3a, 0x8a, 0x67, 0x02, 0x47, 0x71, 0x65, 0x09, 0x40, 0x6f, 0x79, 0x05, 0xe3, 0x2b, - 0xb5, 0xa4, 0xbe, 0x71, 0x4c, 0xb9, 0x0a, 0x16, 0x83, 0xdc, 0x1a, 0xf3, 0xa7, 0xfa, 0x42, 0xe1, - 0x9d, 0x23, 0x8e, 0x1a, 0xe6, 0x30, 0xa2, 0x4f, 0x78, 0xbb, 0xd0, 0x66, 0xcf, 0x40, 0x72, 0x87, - 0x23, 0xfe, 0xcf, 0x4b, 0x90, 0x6d, 0x78, 0xbd, 0x25, 0xd3, 0x71, 0x7e, 0x64, 0x38, 0x1d, 0xf7, - 0xc8, 0x44, 0xe8, 0xf8, 0x3d, 0x30, 0xc3, 0x6a, 0x2c, 0x75, 0x95, 0x88, 0x55, 0x71, 0xee, 0x87, - 0x61, 0x34, 0xbc, 0x0f, 0x3b, 0x87, 0x23, 0xe2, 0x0f, 0x3e, 0x19, 0x60, 0x0d, 0xed, 0x9c, 0x47, - 0xb6, 0xb3, 0x6d, 0x74, 0xd5, 0xbf, 0x97, 0x61, 0x6a, 0x19, 0xb9, 0x75, 0x57, 0x77, 0x77, 0x9d, - 0x9e, 0xed, 0x4e, 0xd3, 0x2a, 0xe9, 0xad, 0x6d, 0x44, 0xbb, 0x23, 0xff, 0x55, 0x7d, 0x93, 0x2c, - 0xea, 0x4f, 0x14, 0x96, 0x33, 0x1f, 0x94, 0x11, 0x81, 0xc9, 0x53, 0x20, 0xdb, 0xd6, 0x5d, 0x9d, - 0x62, 0x71, 0x45, 0x0f, 0x16, 0x21, 0x21, 0x0d, 0x67, 0x53, 0xff, 0x40, 0x12, 0x71, 0x28, 0x12, - 0x28, 0x3f, 0x19, 0x08, 0x6f, 0xcb, 0x0c, 0x81, 0xc2, 0x31, 0x98, 0xad, 0xd6, 0x1a, 0xcd, 0xd5, - 0xda, 0xf2, 0x72, 0xd9, 0x4b, 0x2d, 0xc8, 0xca, 0x49, 0x50, 0xd6, 0x8b, 0x0f, 0xac, 0x95, 0xab, - 0x8d, 0x66, 0xb5, 0xb6, 0x58, 0xa6, 0x7f, 0x66, 0x95, 0xa3, 0x30, 0x5d, 0x2a, 0x96, 0x56, 0xfc, - 0x84, 0x9c, 0x72, 0x0a, 0x8e, 0xaf, 0x95, 0xd7, 0x16, 0xca, 0x5a, 0x7d, 0xa5, 0xb2, 0xde, 0xf4, - 0xc8, 0x2c, 0xd5, 0x36, 0xaa, 0x8b, 0x85, 0xbc, 0xa2, 0xc2, 0x49, 0xe6, 0xcb, 0x39, 0xad, 0x56, - 0x5d, 0x6e, 0xd6, 0x1b, 0xc5, 0x46, 0xb9, 0x30, 0xa1, 0x5c, 0x06, 0x47, 0x4b, 0xc5, 0x2a, 0xce, - 0x5e, 0xaa, 0x55, 0xab, 0xe5, 0x52, 0xa3, 0x30, 0xa9, 0xfe, 0x7b, 0x16, 0xa6, 0x2b, 0x4e, 0x55, - 0xdf, 0x41, 0x67, 0xf5, 0x8e, 0xd1, 0x56, 0x5f, 0xc0, 0xcc, 0x3c, 0xae, 0x83, 0x59, 0x9b, 0x3c, - 0xa2, 0x76, 0xc3, 0x40, 0x04, 0xcd, 0x59, 0x8d, 0x4f, 0xf4, 0xe6, 0xe4, 0x26, 0x26, 0xe0, 0xcf, - 0xc9, 0xc9, 0x9b, 0xb2, 0x00, 0x40, 0x9e, 0x1a, 0xe1, 0xe5, 0xae, 0x67, 0x7a, 0x5b, 0x93, 0xbe, - 0x83, 0x1c, 0x64, 0xef, 0x19, 0x2d, 0xe4, 0xe7, 0xd4, 0x98, 0xbf, 0xd4, 0x2f, 0xc8, 0xa2, 0xfb, - 0x8b, 0x0c, 0xa8, 0x4c, 0x75, 0x22, 0x7a, 0xc3, 0x9f, 0x95, 0x45, 0x76, 0x07, 0x85, 0x48, 0x26, - 0xd3, 0x94, 0x17, 0x4b, 0xc3, 0x2d, 0xdb, 0x36, 0x6a, 0xb5, 0x66, 0x7d, 0xa5, 0xa6, 0x35, 0x0a, - 0xb2, 0x32, 0x03, 0x93, 0xde, 0xeb, 0x6a, 0xad, 0xba, 0x5c, 0xc8, 0x2a, 0x27, 0xe0, 0xd8, 0x4a, - 0xb1, 0xde, 0xac, 0x54, 0xcf, 0x16, 0x57, 0x2b, 0x8b, 0xcd, 0xd2, 0x4a, 0x51, 0xab, 0x17, 0x72, - 0xca, 0x15, 0x70, 0xa2, 0x51, 0x29, 0x6b, 0xcd, 0xa5, 0x72, 0xb1, 0xb1, 0xa1, 0x95, 0xeb, 0xcd, - 0x6a, 0xad, 0x59, 0x2d, 0xae, 0x95, 0x0b, 0x79, 0xaf, 0xf9, 0xe3, 0x4f, 0xa1, 0xda, 0x4c, 0xec, - 0x57, 0xc6, 0xc9, 0x08, 0x65, 0x9c, 0xea, 0x55, 0x46, 0x60, 0xd5, 0x4a, 0x2b, 0xd7, 0xcb, 0xda, - 0xd9, 0x72, 0x61, 0xba, 0x9f, 0xae, 0xcd, 0x28, 0xc7, 0xa1, 0xe0, 0xf1, 0xd0, 0xac, 0xd4, 0xfd, - 0x9c, 0x8b, 0x85, 0x59, 0xf5, 0x03, 0x79, 0x38, 0xa9, 0xa1, 0x2d, 0xc3, 0x71, 0x91, 0xbd, 0xae, - 0x5f, 0xda, 0x41, 0xa6, 0xeb, 0x77, 0xf2, 0xff, 0x92, 0x58, 0x19, 0xd7, 0x60, 0xb6, 0x4b, 0x68, - 0xac, 0x21, 0x77, 0xdb, 0x6a, 0xd3, 0x51, 0xf8, 0x49, 0x91, 0x3d, 0xc7, 0xfc, 0x3a, 0x9b, 0x5d, - 0xe3, 0xff, 0x66, 0x74, 0x5b, 0x8e, 0xd1, 0xed, 0xec, 0x30, 0xba, 0xad, 0x5c, 0x05, 0x53, 0xbb, - 0x0e, 0xb2, 0xcb, 0x3b, 0xba, 0xd1, 0xf1, 0x2f, 0xe7, 0x0c, 0x12, 0xd4, 0xd7, 0x67, 0x45, 0x4f, - 0xac, 0x30, 0x75, 0xe9, 0x2f, 0xc6, 0x88, 0xbe, 0xf5, 0x34, 0x00, 0xad, 0xec, 0x86, 0xdd, 0xa1, - 0xca, 0xca, 0xa4, 0x78, 0xfc, 0x9d, 0x37, 0x3a, 0x1d, 0xc3, 0xdc, 0x0a, 0xf6, 0xfd, 0xc3, 0x04, - 0xf5, 0xc5, 0xb2, 0xc8, 0x09, 0x96, 0xa4, 0xbc, 0x25, 0x6b, 0x4d, 0x2f, 0x94, 0xc6, 0xdc, 0xef, - 0xee, 0x6f, 0x3a, 0x79, 0xa5, 0x00, 0x33, 0x38, 0x8d, 0xb6, 0xc0, 0xc2, 0x84, 0xd7, 0x07, 0xfb, - 0xe4, 0xd6, 0xca, 0x8d, 0x95, 0xda, 0x62, 0xf0, 0x6d, 0xd2, 0x23, 0xe9, 0x31, 0x53, 0xac, 0x3e, - 0x80, 0x5b, 0xe3, 0x94, 0xf2, 0x04, 0xb8, 0x82, 0xe9, 0xb0, 0x8b, 0xab, 0x5a, 0xb9, 0xb8, 0xf8, - 0x40, 0xb3, 0xfc, 0xac, 0x4a, 0xbd, 0x51, 0xe7, 0x1b, 0x97, 0xdf, 0x8e, 0xa6, 0x3d, 0x7e, 0xcb, - 0x6b, 0xc5, 0xca, 0x2a, 0xed, 0xdf, 0x97, 0x6a, 0xda, 0x5a, 0xb1, 0x51, 0x98, 0x51, 0x7f, 0x5d, - 0x86, 0xc2, 0x32, 0x72, 0xd7, 0x2d, 0xdb, 0xd5, 0x3b, 0xab, 0x86, 0x79, 0x61, 0xc3, 0xee, 0x70, - 0x93, 0x4d, 0xe1, 0x30, 0x1d, 0xfc, 0x10, 0xc9, 0x11, 0x8c, 0xde, 0x11, 0xef, 0xe2, 0x6c, 0xa1, - 0x32, 0x85, 0x09, 0xea, 0x73, 0x24, 0x91, 0xe5, 0x6e, 0xf1, 0x52, 0x93, 0xe9, 0xc9, 0x73, 0xc7, - 0x3d, 0x3e, 0xf7, 0x41, 0x2d, 0xaf, 0x3e, 0x3f, 0x0b, 0x93, 0x4b, 0x86, 0xa9, 0x77, 0x8c, 0x67, - 0x73, 0xf1, 0x4b, 0xc3, 0x3e, 0x26, 0x13, 0xd3, 0xc7, 0x48, 0x43, 0x8d, 0x9f, 0xbf, 0x24, 0x8b, - 0x2e, 0x2f, 0x30, 0xb2, 0xf7, 0x99, 0x8c, 0x18, 0x3c, 0xdf, 0x2d, 0x89, 0x2c, 0x2f, 0x0c, 0xa6, - 0x97, 0x0c, 0xc3, 0x0f, 0x7f, 0x77, 0xd8, 0x58, 0x3d, 0xed, 0x7b, 0xb2, 0x9f, 0x2a, 0x4c, 0xa9, - 0x7f, 0x29, 0x83, 0xba, 0x8c, 0xdc, 0xb3, 0xc8, 0x0e, 0xa6, 0x02, 0xb8, 0xd7, 0xa7, 0xf6, 0x36, - 0xd3, 0x64, 0x5f, 0xc3, 0x02, 0x78, 0x8e, 0x07, 0xb0, 0x18, 0xd3, 0x78, 0x22, 0x48, 0x47, 0x34, - 0xde, 0x0a, 0xe4, 0x1d, 0xfc, 0x9d, 0xaa, 0xd9, 0xad, 0xd1, 0xc3, 0x25, 0x26, 0xc6, 0x52, 0x27, - 0x84, 0x35, 0x4a, 0x40, 0xfd, 0x56, 0x30, 0x09, 0xfa, 0x61, 0x4e, 0x3b, 0x96, 0x0e, 0xcc, 0x6c, - 0x32, 0x7d, 0xb1, 0xd3, 0x55, 0x97, 0x7e, 0xf6, 0x8d, 0xfa, 0xee, 0x1c, 0x1c, 0xef, 0x57, 0x1d, - 0xf5, 0x0f, 0x33, 0xdc, 0x0e, 0x3b, 0xc2, 0x43, 0x7e, 0x86, 0x6e, 0x20, 0x7a, 0x2f, 0xca, 0xd3, - 0xe0, 0x44, 0xb0, 0x0c, 0xd7, 0xb0, 0xaa, 0xe8, 0xa2, 0xd3, 0x41, 0xae, 0x8b, 0x6c, 0x5c, 0xb5, - 0x49, 0xad, 0xff, 0x47, 0xe5, 0x19, 0x70, 0xb9, 0x61, 0x3a, 0x46, 0x1b, 0xd9, 0x0d, 0xa3, 0xeb, - 0x14, 0xcd, 0x76, 0x63, 0xd7, 0xb5, 0x6c, 0x43, 0xa7, 0x57, 0x49, 0x4e, 0x6a, 0x51, 0x9f, 0x95, - 0x1b, 0xa1, 0x60, 0x38, 0x35, 0xf3, 0xbc, 0xa5, 0xdb, 0x6d, 0xc3, 0xdc, 0x5a, 0x35, 0x1c, 0x97, - 0x7a, 0x00, 0xef, 0x4b, 0x57, 0xff, 0x41, 0x16, 0x3d, 0x4c, 0x37, 0x00, 0xd6, 0x88, 0x0e, 0xe5, - 0x67, 0x64, 0x91, 0xe3, 0x71, 0xc9, 0x68, 0x27, 0x53, 0x96, 0xe7, 0x8d, 0xdb, 0x90, 0xe8, 0x3f, - 0x82, 0xe3, 0xae, 0x85, 0xa4, 0xfb, 0x86, 0xc0, 0xd9, 0xb2, 0x56, 0x59, 0xaa, 0x94, 0x3d, 0xb3, - 0xe2, 0x04, 0x1c, 0x0b, 0xbf, 0x2d, 0x3e, 0xd0, 0xac, 0x97, 0xab, 0x8d, 0xc2, 0xa4, 0xd7, 0x4f, - 0x91, 0xe4, 0xa5, 0x62, 0x65, 0xb5, 0xbc, 0xd8, 0x6c, 0xd4, 0xbc, 0x2f, 0x8b, 0xc3, 0x99, 0x16, - 0xea, 0xc3, 0x59, 0x38, 0x8a, 0x65, 0x7b, 0x09, 0x4b, 0xd5, 0x13, 0x4a, 0x8f, 0xaf, 0x6d, 0x00, - 0xd0, 0x14, 0x11, 0xaf, 0xfa, 0x71, 0xe1, 0x9b, 0x32, 0x19, 0x08, 0x7b, 0xca, 0x88, 0xd0, 0x8c, - 0x6f, 0x4a, 0x22, 0x11, 0x2a, 0x84, 0xc9, 0x26, 0x53, 0x8a, 0x7f, 0x1d, 0xf7, 0x88, 0x13, 0x0d, - 0x3e, 0xb6, 0x32, 0x4b, 0xf8, 0xe7, 0x67, 0xad, 0x57, 0x34, 0xac, 0x0e, 0x73, 0x00, 0x38, 0x05, - 0x6b, 0x10, 0xd1, 0x83, 0xbe, 0xe3, 0x55, 0x94, 0x1e, 0x14, 0x4b, 0x8d, 0xca, 0xd9, 0x72, 0x94, - 0x1e, 0x7c, 0x4c, 0x86, 0xc9, 0x65, 0xe4, 0x7a, 0x73, 0x2a, 0x47, 0x7d, 0xa6, 0xc0, 0xfa, 0x8f, - 0x67, 0xc6, 0x74, 0xac, 0x96, 0xde, 0x09, 0x96, 0x01, 0xc8, 0x9b, 0xfa, 0xd3, 0xc3, 0x98, 0x20, - 0x7e, 0xd1, 0x11, 0xe3, 0xd5, 0x0f, 0x42, 0xce, 0xf5, 0x3e, 0xd3, 0x65, 0xe8, 0xef, 0x8b, 0x1c, - 0xae, 0x3c, 0x22, 0x8b, 0xba, 0xab, 0x6b, 0x24, 0x3f, 0x33, 0x3a, 0x09, 0xda, 0x2e, 0x11, 0x8c, - 0x7c, 0x37, 0xda, 0x9f, 0x7f, 0x27, 0xc3, 0x09, 0xd2, 0x3e, 0x8a, 0xdd, 0x6e, 0xdd, 0xb5, 0x6c, - 0xa4, 0xa1, 0x16, 0x32, 0xba, 0x6e, 0xcf, 0xfa, 0x9e, 0x4d, 0x52, 0xfd, 0xcd, 0x66, 0xfa, 0xaa, - 0xfe, 0xb6, 0x2c, 0x1a, 0x83, 0x79, 0x5f, 0x7b, 0xec, 0x29, 0x2f, 0xa2, 0xb1, 0xbf, 0x5f, 0x12, - 0x89, 0xaa, 0x9c, 0x90, 0x78, 0x32, 0xa0, 0xde, 0x73, 0x08, 0x40, 0xf9, 0x2b, 0x37, 0x5a, 0xb9, - 0x54, 0xae, 0xac, 0x7b, 0x83, 0xc0, 0xd5, 0x70, 0xe5, 0xfa, 0x86, 0x56, 0x5a, 0x29, 0xd6, 0xcb, - 0x4d, 0xad, 0xbc, 0x5c, 0xa9, 0x37, 0xa8, 0x53, 0x16, 0xf9, 0x6b, 0x42, 0xb9, 0x0a, 0x4e, 0xd5, - 0x37, 0x16, 0xea, 0x25, 0xad, 0xb2, 0x8e, 0xd3, 0xb5, 0x72, 0xb5, 0x7c, 0x8e, 0x7e, 0x9d, 0x54, - 0xdf, 0x59, 0x80, 0x69, 0x6f, 0x02, 0x50, 0x27, 0xf3, 0x02, 0xf5, 0xab, 0x59, 0x98, 0xd6, 0x90, - 0x63, 0x75, 0xf6, 0xf0, 0x1c, 0x61, 0x5c, 0x53, 0x8f, 0x6f, 0xc8, 0xa2, 0xe7, 0xb7, 0x19, 0x66, - 0xe7, 0x19, 0x46, 0xa3, 0x27, 0x9a, 0xfa, 0x9e, 0x6e, 0x74, 0xf4, 0xf3, 0xb4, 0xab, 0x99, 0xd4, - 0xc2, 0x04, 0x65, 0x1e, 0x14, 0xeb, 0xa2, 0x89, 0xec, 0x7a, 0xeb, 0x62, 0xd9, 0xdd, 0x2e, 0xb6, - 0xdb, 0x36, 0x72, 0x1c, 0xba, 0x7a, 0xd1, 0xe7, 0x8b, 0x72, 0x03, 0x1c, 0xc5, 0xa9, 0x4c, 0x66, - 0xe2, 0x20, 0xd3, 0x9b, 0x1c, 0xe4, 0x2c, 0x9a, 0x97, 0xfc, 0x9c, 0x39, 0x26, 0x67, 0x98, 0xcc, - 0x1e, 0x97, 0xc8, 0xf3, 0xa7, 0x74, 0xae, 0x81, 0x69, 0x53, 0xdf, 0x41, 0xe5, 0x87, 0xba, 0x86, - 0x8d, 0x1c, 0xec, 0x18, 0x23, 0x6b, 0x6c, 0x92, 0xfa, 0x6e, 0xa1, 0xf3, 0xe6, 0x62, 0x12, 0x4b, - 0xa6, 0xfb, 0xcb, 0x43, 0xa8, 0x7e, 0x9f, 0x7e, 0x46, 0x56, 0xdf, 0x29, 0xc3, 0x0c, 0x65, 0xaa, - 0x68, 0x5e, 0xaa, 0xb4, 0xd5, 0xab, 0x39, 0xe3, 0x57, 0xf7, 0xd2, 0x7c, 0xe3, 0x17, 0xbf, 0xa8, - 0x3f, 0x27, 0x8b, 0xba, 0x3b, 0xf7, 0xa9, 0x38, 0x2e, 0x23, 0xda, 0x71, 0x74, 0xd3, 0xda, 0xa5, - 0x8e, 0xaa, 0x93, 0x1a, 0x79, 0x49, 0x73, 0x51, 0x4f, 0xfd, 0x63, 0x21, 0x67, 0x6a, 0xc1, 0x6a, - 0x1c, 0x12, 0x80, 0x1f, 0x94, 0x61, 0x8e, 0x72, 0x55, 0xa7, 0xe7, 0x7c, 0x84, 0x0e, 0xbc, 0xfd, - 0xbc, 0xb0, 0x21, 0xd8, 0xa7, 0xfe, 0xb4, 0xa4, 0xc7, 0x0d, 0x90, 0xef, 0x15, 0x0a, 0x8e, 0x26, - 0x5c, 0x91, 0x43, 0x82, 0xf2, 0x0d, 0x59, 0x98, 0xde, 0x70, 0x90, 0x4d, 0xfd, 0xf6, 0xd5, 0x57, - 0x66, 0x41, 0x5e, 0x46, 0xdc, 0x46, 0xea, 0x8b, 0x84, 0x3d, 0x7c, 0xd9, 0xca, 0x32, 0x44, 0x3d, - 0x1b, 0x29, 0x02, 0xb6, 0xeb, 0x61, 0x8e, 0x88, 0xb4, 0xe8, 0xba, 0x9e, 0x91, 0xe8, 0x7b, 0xd3, - 0xf6, 0xa4, 0x8e, 0x62, 0xab, 0x08, 0x97, 0xe5, 0x65, 0x29, 0x79, 0x3c, 0xad, 0xa2, 0x4d, 0x32, - 0x9f, 0xcd, 0x6a, 0x3d, 0xa9, 0xca, 0x2d, 0x70, 0x99, 0xd5, 0x45, 0xe4, 0xfc, 0x0a, 0x93, 0x39, - 0x87, 0x33, 0xf7, 0xfb, 0xa4, 0x7e, 0x55, 0xc8, 0x57, 0x57, 0x5c, 0x3a, 0xc9, 0x74, 0xa1, 0x3b, - 0x1a, 0x93, 0xe4, 0x38, 0x14, 0xbc, 0x1c, 0x78, 0xff, 0x45, 0x2b, 0xd7, 0x6b, 0xab, 0x67, 0xcb, - 0xfd, 0x97, 0x31, 0x72, 0xea, 0xf3, 0x64, 0x98, 0x5a, 0xb0, 0x2d, 0xbd, 0xdd, 0xd2, 0x1d, 0x57, - 0xfd, 0x96, 0x04, 0x33, 0xeb, 0xfa, 0xa5, 0x8e, 0xa5, 0xb7, 0xb1, 0x7f, 0x7f, 0x4f, 0x5f, 0xd0, - 0x25, 0x9f, 0xfc, 0xbe, 0x80, 0xbe, 0xf2, 0x07, 0x03, 0x83, 0xa3, 0x7b, 0x19, 0x91, 0x0b, 0x35, - 0x83, 0x6d, 0x3e, 0xa9, 0x5f, 0xb0, 0x52, 0x9f, 0xaf, 0x79, 0x96, 0xa7, 0x08, 0x8b, 0xf2, 0x9d, - 0x62, 0xe1, 0x47, 0x45, 0x48, 0x1e, 0xce, 0xae, 0xfc, 0xf3, 0x27, 0x21, 0xbf, 0x88, 0xb0, 0x15, - 0xf7, 0xdf, 0x25, 0x98, 0xa8, 0x23, 0x17, 0x5b, 0x70, 0xb7, 0x73, 0x9e, 0xc2, 0x6d, 0x9c, 0x21, - 0x74, 0x62, 0xf7, 0xdf, 0xbd, 0xc9, 0x3a, 0x73, 0xde, 0x1a, 0x3f, 0x27, 0xf0, 0x48, 0x24, 0xe5, - 0xce, 0xd3, 0x32, 0x0f, 0xe4, 0x91, 0x18, 0x4b, 0x2a, 0x7d, 0x5f, 0xab, 0x37, 0x49, 0xd4, 0xb5, - 0x8a, 0xe9, 0xf5, 0x7e, 0x93, 0xd5, 0xcf, 0x58, 0x6f, 0x33, 0xca, 0x7c, 0x8c, 0x73, 0xd4, 0x53, - 0x61, 0x82, 0xc8, 0xdc, 0x9f, 0x8f, 0xf6, 0xfa, 0x29, 0x10, 0x12, 0xf8, 0xec, 0xb5, 0x9f, 0x53, - 0xd0, 0x45, 0x2d, 0xba, 0xf0, 0xb1, 0xc4, 0x20, 0x98, 0xa9, 0x22, 0xf7, 0xa2, 0x65, 0x5f, 0xa8, - 0xbb, 0xba, 0x8b, 0xd4, 0x7f, 0x95, 0x40, 0xae, 0x23, 0x97, 0x8d, 0x7e, 0x52, 0x85, 0x63, 0xa4, - 0x42, 0x34, 0x23, 0xee, 0xbf, 0x49, 0x45, 0xae, 0xe9, 0x2b, 0x04, 0x26, 0x9f, 0xb6, 0xff, 0x57, - 0xf5, 0x57, 0xfa, 0x06, 0x7d, 0x92, 0xfa, 0x4c, 0x1a, 0xa8, 0x64, 0x58, 0x06, 0x3d, 0x05, 0x8b, - 0xd0, 0xd3, 0x77, 0x09, 0x99, 0xd5, 0x62, 0x34, 0x0f, 0xa7, 0x2b, 0x78, 0xef, 0x15, 0x90, 0x2d, - 0x6d, 0xeb, 0xae, 0xfa, 0x46, 0x19, 0xa0, 0xd8, 0x6e, 0xaf, 0x11, 0x1f, 0x70, 0xd6, 0x21, 0xed, - 0x0c, 0xcc, 0xb4, 0xb6, 0xf5, 0xf0, 0x6e, 0x13, 0xd2, 0x1f, 0x70, 0x69, 0xca, 0xd3, 0x42, 0x67, - 0x72, 0x22, 0x55, 0xb5, 0x07, 0x26, 0xaf, 0x0c, 0x4a, 0x3b, 0x70, 0x34, 0xe7, 0x43, 0x61, 0xc6, - 0x1e, 0xa1, 0xf3, 0x7e, 0x9f, 0x0f, 0xd9, 0x8b, 0x9e, 0xc3, 0x51, 0xd2, 0xc1, 0x01, 0x9b, 0x30, - 0x21, 0xe1, 0x49, 0x6f, 0xb1, 0x80, 0x1e, 0xf1, 0x7c, 0x8d, 0x25, 0x74, 0xad, 0x52, 0x6e, 0x1b, - 0xbe, 0x68, 0x69, 0xc0, 0x2c, 0xf5, 0x85, 0x99, 0x64, 0xf0, 0xc5, 0x0b, 0xee, 0x5e, 0x98, 0x45, - 0x6d, 0xc3, 0x45, 0x7e, 0x2d, 0xa9, 0x00, 0xe3, 0x20, 0xe6, 0x7f, 0x50, 0x9f, 0x2b, 0x1c, 0x74, - 0x0d, 0x0b, 0x74, 0x7f, 0x8d, 0x22, 0xda, 0x9f, 0x58, 0x18, 0x35, 0x31, 0x9a, 0xe9, 0x83, 0xf5, - 0xd3, 0x32, 0x9c, 0x68, 0x58, 0x5b, 0x5b, 0x1d, 0xe4, 0x8b, 0x09, 0x11, 0xef, 0x4c, 0x55, 0x1f, - 0x25, 0x5c, 0x78, 0x27, 0xc8, 0x7a, 0xd0, 0x08, 0x8e, 0x92, 0x79, 0x2f, 0xfc, 0x89, 0xa9, 0xd8, - 0x59, 0x14, 0x16, 0x57, 0x5f, 0x3e, 0x23, 0x50, 0x10, 0x0b, 0xf8, 0x2c, 0x4c, 0x36, 0x7d, 0x20, - 0x3e, 0x23, 0xc1, 0x2c, 0xb9, 0xb9, 0xd2, 0x57, 0xd0, 0xfb, 0x47, 0x08, 0x80, 0xfa, 0xad, 0x8c, - 0xa8, 0x9f, 0x2d, 0x96, 0x09, 0xc7, 0x49, 0x84, 0x88, 0xc5, 0x82, 0xaa, 0x0c, 0x24, 0x97, 0xbe, - 0x68, 0xff, 0x4c, 0x86, 0xe9, 0x65, 0xe4, 0xb7, 0x34, 0x27, 0x71, 0x4f, 0x74, 0x06, 0x66, 0xf0, - 0xf5, 0x6d, 0x35, 0x7a, 0x4c, 0x92, 0xac, 0x9a, 0x71, 0x69, 0xca, 0x75, 0x30, 0x7b, 0x1e, 0x6d, - 0x5a, 0x36, 0xaa, 0x71, 0x67, 0x29, 0xf9, 0xc4, 0x88, 0xf0, 0x74, 0x5c, 0x1c, 0xb4, 0x05, 0x1e, - 0x9b, 0x9b, 0xf6, 0x0b, 0x93, 0xa9, 0x4a, 0xc4, 0x98, 0xf3, 0x74, 0x98, 0xa4, 0xc8, 0xfb, 0x66, - 0x5a, 0x5c, 0xbf, 0x18, 0xe4, 0x55, 0x7f, 0x2b, 0x40, 0xb4, 0xcc, 0x21, 0x7a, 0x6b, 0x12, 0x26, - 0xc6, 0x72, 0xbf, 0x7b, 0x81, 0x29, 0x7f, 0xe1, 0x52, 0xa5, 0xed, 0xa8, 0x6b, 0xc9, 0x30, 0x3d, - 0x0d, 0x10, 0x34, 0x0e, 0x3f, 0xac, 0x05, 0x93, 0xc2, 0x47, 0xae, 0x8f, 0x3d, 0xa8, 0xd7, 0x2b, - 0x0e, 0xcc, 0xce, 0x88, 0x81, 0x11, 0x3b, 0xe0, 0x27, 0xc2, 0x49, 0xfa, 0xe8, 0x7c, 0x54, 0x86, - 0x13, 0xc1, 0xf9, 0xa3, 0x55, 0xdd, 0x09, 0xdb, 0x5d, 0x29, 0x19, 0x44, 0xdc, 0x81, 0x8f, 0xa0, - 0xb1, 0x7c, 0x2d, 0xd9, 0x98, 0xd1, 0x97, 0x93, 0xd1, 0xa2, 0xa3, 0xdc, 0x04, 0xc7, 0xcc, 0xdd, - 0x9d, 0x40, 0xea, 0xb8, 0xc5, 0xd3, 0x16, 0xbe, 0xff, 0x43, 0x92, 0x91, 0x49, 0x84, 0xf9, 0xb1, - 0xcc, 0x29, 0xb9, 0x23, 0x5d, 0x4f, 0x49, 0x04, 0xa3, 0xfa, 0xcf, 0x99, 0x44, 0xbd, 0xdb, 0xe0, - 0x33, 0x5f, 0x09, 0x7a, 0xa9, 0x43, 0x3c, 0xf0, 0x75, 0x66, 0x02, 0x72, 0xe5, 0x9d, 0xae, 0x7b, - 0xe9, 0xcc, 0x13, 0x61, 0xb6, 0xee, 0xda, 0x48, 0xdf, 0x61, 0x76, 0x06, 0x5c, 0xeb, 0x02, 0x32, - 0xfd, 0x9d, 0x01, 0xfc, 0x72, 0xc7, 0xed, 0x30, 0x61, 0x5a, 0x4d, 0x7d, 0xd7, 0xdd, 0x56, 0xae, - 0xde, 0x77, 0xa4, 0x9e, 0x82, 0x5f, 0xa3, 0x31, 0x8c, 0xbe, 0x70, 0x27, 0x5e, 0x1b, 0xce, 0x9b, - 0x56, 0x71, 0xd7, 0xdd, 0x5e, 0xb8, 0xea, 0x83, 0x7f, 0x7b, 0x3a, 0xf3, 0xb1, 0xbf, 0x3d, 0x9d, - 0xf9, 0xfc, 0xdf, 0x9e, 0xce, 0xfc, 0xfc, 0x17, 0x4f, 0x1f, 0xf9, 0xd8, 0x17, 0x4f, 0x1f, 0xf9, - 0xcc, 0x17, 0x4f, 0x1f, 0xf9, 0x61, 0xa9, 0x7b, 0xfe, 0x7c, 0x1e, 0x53, 0x79, 0xea, 0xff, 0x1f, - 0x00, 0x00, 0xff, 0xff, 0xe1, 0xeb, 0x40, 0xf9, 0x2c, 0x11, 0x02, 0x00, + // 20042 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7f, 0x9c, 0x24, 0x49, + 0x55, 0x2f, 0x3a, 0x95, 0x59, 0x55, 0xdd, 0x7d, 0xfa, 0xc7, 0xd4, 0xe4, 0xce, 0xcc, 0xce, 0xc6, + 0x2e, 0xcb, 0x3a, 0x2c, 0xcb, 0xba, 0x2c, 0xbd, 0xb0, 0x20, 0xb2, 0xcb, 0x2e, 0x4b, 0x75, 0x75, + 0x75, 0x77, 0xed, 0x76, 0x57, 0xb5, 0x59, 0xd5, 0x33, 0xac, 0x5e, 0x5f, 0x9b, 0x53, 0x15, 0xdd, + 0x9d, 0x3b, 0xd5, 0x99, 0x65, 0x66, 0xf6, 0xcc, 0x0e, 0xef, 0x73, 0xdf, 0x15, 0x11, 0x41, 0x91, + 0x8b, 0xa8, 0xa8, 0xa8, 0xfc, 0x16, 0x15, 0x14, 0x91, 0xdf, 0x17, 0x54, 0x44, 0x01, 0x41, 0x54, + 0x44, 0x51, 0x41, 0x94, 0x27, 0x28, 0x2a, 0xde, 0x8f, 0x5e, 0x9f, 0xbe, 0x2b, 0x88, 0x57, 0x9e, + 0xef, 0x93, 0x11, 0x91, 0x99, 0x11, 0xd5, 0x95, 0x59, 0x91, 0xd5, 0x95, 0xd5, 0xab, 0xde, 0xff, + 0x32, 0x23, 0x23, 0x4f, 0x9c, 0x38, 0xdf, 0x13, 0x11, 0x27, 0x22, 0x4e, 0x9c, 0x80, 0x73, 0xbd, + 0x4b, 0x77, 0xf5, 0x1c, 0xdb, 0xb3, 0xdd, 0xbb, 0xda, 0xf6, 0xfe, 0xbe, 0x61, 0x75, 0xdc, 0x45, + 0xf2, 0xae, 0x4d, 0x19, 0xd6, 0x35, 0xef, 0x5a, 0x0f, 0xa3, 0x5b, 0x7b, 0x97, 0x77, 0xef, 0xea, + 0x9a, 0x97, 0xee, 0xea, 0x5d, 0xba, 0x6b, 0xdf, 0xee, 0xe0, 0x6e, 0xf0, 0x03, 0x79, 0x61, 0xd9, + 0xd1, 0xed, 0x71, 0xb9, 0xba, 0x76, 0xdb, 0xe8, 0xba, 0x9e, 0xed, 0x60, 0x96, 0xf3, 0x6c, 0x54, + 0x24, 0xbe, 0x82, 0x2d, 0x2f, 0xa0, 0x70, 0xd3, 0xae, 0x6d, 0xef, 0x76, 0x31, 0xfd, 0x76, 0xe9, + 0x60, 0xe7, 0x2e, 0xd7, 0x73, 0x0e, 0xda, 0x1e, 0xfb, 0x7a, 0x4b, 0xff, 0xd7, 0x0e, 0x76, 0xdb, + 0x8e, 0xd9, 0xf3, 0x6c, 0x87, 0xe6, 0x38, 0xff, 0xd6, 0xd7, 0x4d, 0x83, 0xaa, 0xf7, 0xda, 0xe8, + 0xcb, 0x53, 0xa0, 0x96, 0x7b, 0x3d, 0xf4, 0x11, 0x05, 0x60, 0x15, 0x7b, 0x17, 0xb0, 0xe3, 0x9a, + 0xb6, 0x85, 0x4e, 0xc2, 0x94, 0x8e, 0xbf, 0xfd, 0x00, 0xbb, 0xde, 0xbd, 0xf9, 0x97, 0xfc, 0xa5, + 0x9a, 0x43, 0x6f, 0x52, 0x60, 0x5a, 0xc7, 0x6e, 0xcf, 0xb6, 0x5c, 0xac, 0x3d, 0x17, 0x0a, 0xd8, + 0x71, 0x6c, 0xe7, 0x5c, 0xee, 0x96, 0xdc, 0xed, 0xb3, 0x77, 0xdf, 0xb1, 0xc8, 0xaa, 0xbf, 0xa8, + 0xf7, 0xda, 0x8b, 0xe5, 0x5e, 0x6f, 0x31, 0xa2, 0xb4, 0x18, 0xfc, 0xb4, 0x58, 0xf5, 0xff, 0xd0, + 0xe9, 0x8f, 0xda, 0x39, 0x98, 0xba, 0x42, 0x33, 0x9c, 0x53, 0x6e, 0xc9, 0xdd, 0x3e, 0xa3, 0x07, + 0xaf, 0xfe, 0x97, 0x0e, 0xf6, 0x0c, 0xb3, 0xeb, 0x9e, 0x53, 0xe9, 0x17, 0xf6, 0x8a, 0xde, 0x90, + 0x83, 0x02, 0x21, 0xa2, 0x55, 0x20, 0xdf, 0xb6, 0x3b, 0x98, 0x14, 0xbf, 0x70, 0xf7, 0x5d, 0xf2, + 0xc5, 0x2f, 0x56, 0xec, 0x0e, 0xd6, 0xc9, 0xcf, 0xda, 0x2d, 0x30, 0x1b, 0x88, 0x25, 0x62, 0x83, + 0x4f, 0x3a, 0x7f, 0x37, 0xe4, 0xfd, 0xfc, 0xda, 0x34, 0xe4, 0xeb, 0x5b, 0xeb, 0xeb, 0xa5, 0x13, + 0xda, 0x29, 0x98, 0xdf, 0xaa, 0x3f, 0x54, 0x6f, 0x5c, 0xac, 0x6f, 0x57, 0x75, 0xbd, 0xa1, 0x97, + 0x72, 0xda, 0x3c, 0xcc, 0x2c, 0x95, 0x97, 0xb7, 0x6b, 0xf5, 0xcd, 0xad, 0x56, 0x49, 0x41, 0xaf, + 0x51, 0x61, 0xa1, 0x89, 0xbd, 0x65, 0x7c, 0xc5, 0x6c, 0xe3, 0xa6, 0x67, 0x78, 0x18, 0xbd, 0x3c, + 0x17, 0x0a, 0x53, 0xdb, 0xf2, 0x0b, 0x0d, 0x3f, 0xb1, 0x0a, 0x3c, 0xfd, 0x50, 0x05, 0x44, 0x0a, + 0x8b, 0xec, 0xef, 0x45, 0x2e, 0x4d, 0xe7, 0xe9, 0x9c, 0x7f, 0x0a, 0xcc, 0x72, 0xdf, 0xb4, 0x05, + 0x80, 0xa5, 0x72, 0xe5, 0xa1, 0x55, 0xbd, 0xb1, 0x55, 0x5f, 0x2e, 0x9d, 0xf0, 0xdf, 0x57, 0x1a, + 0x7a, 0x95, 0xbd, 0xe7, 0xd0, 0x57, 0x73, 0x1c, 0x98, 0xcb, 0x22, 0x98, 0x8b, 0xc3, 0x99, 0x19, + 0x00, 0x28, 0xfa, 0xa9, 0x10, 0x9c, 0x55, 0x01, 0x9c, 0xa7, 0xa7, 0x23, 0x97, 0x3d, 0x40, 0x2f, + 0x52, 0x60, 0xba, 0xb9, 0x77, 0xe0, 0x75, 0xec, 0xab, 0x16, 0x9a, 0x09, 0x91, 0x41, 0x7f, 0xcb, + 0xcb, 0xe4, 0x39, 0xa2, 0x4c, 0x6e, 0x3f, 0x5c, 0x09, 0x46, 0x21, 0x46, 0x1a, 0xaf, 0x0b, 0xa5, + 0x51, 0x16, 0xa4, 0xf1, 0x14, 0x59, 0x42, 0xd9, 0xcb, 0xe1, 0xc7, 0x9e, 0x05, 0x85, 0x66, 0xcf, + 0x68, 0x63, 0xf4, 0x5b, 0x2a, 0xcc, 0xad, 0x63, 0xe3, 0x0a, 0x2e, 0xf7, 0x7a, 0x8e, 0x7d, 0x05, + 0xa3, 0x4a, 0xa4, 0xaf, 0xe7, 0x60, 0xca, 0xf5, 0x33, 0xd5, 0x3a, 0xa4, 0x06, 0x33, 0x7a, 0xf0, + 0xaa, 0xdd, 0x0c, 0x60, 0x76, 0xb0, 0xe5, 0x99, 0x9e, 0x89, 0xdd, 0x73, 0xca, 0x2d, 0xea, 0xed, + 0x33, 0x3a, 0x97, 0x82, 0xbe, 0xac, 0xc8, 0xea, 0x18, 0xe1, 0x62, 0x91, 0xe7, 0x20, 0x46, 0xaa, + 0x6f, 0x54, 0x64, 0x74, 0x6c, 0x28, 0xb9, 0x74, 0xb2, 0xfd, 0xf9, 0x5c, 0x7a, 0xe1, 0xfa, 0x39, + 0xea, 0x8d, 0xed, 0xe6, 0x56, 0x65, 0x6d, 0xbb, 0xb9, 0x59, 0xae, 0x54, 0x4b, 0x58, 0x3b, 0x0d, + 0x25, 0xf2, 0xb8, 0x5d, 0x6b, 0x6e, 0x2f, 0x57, 0xd7, 0xab, 0xad, 0xea, 0x72, 0x69, 0x47, 0xd3, + 0x60, 0x41, 0xaf, 0x7e, 0xd3, 0x56, 0xb5, 0xd9, 0xda, 0x5e, 0x29, 0xd7, 0xd6, 0xab, 0xcb, 0xa5, + 0x5d, 0xff, 0xe7, 0xf5, 0xda, 0x46, 0xad, 0xb5, 0xad, 0x57, 0xcb, 0x95, 0xb5, 0xea, 0x72, 0x69, + 0x4f, 0xbb, 0x1e, 0xae, 0xab, 0x37, 0xb6, 0xcb, 0x9b, 0x9b, 0x7a, 0xe3, 0x42, 0x75, 0x9b, 0xfd, + 0xd1, 0x2c, 0x99, 0xb4, 0xa0, 0xd6, 0x76, 0x73, 0xad, 0xac, 0x57, 0xcb, 0x4b, 0xeb, 0xd5, 0xd2, + 0x23, 0xe8, 0x85, 0x2a, 0xcc, 0x6f, 0x18, 0x97, 0x71, 0x73, 0xcf, 0x70, 0xb0, 0x71, 0xa9, 0x8b, + 0xd1, 0x13, 0x24, 0xf0, 0x44, 0xbf, 0xc5, 0xe3, 0x55, 0x15, 0xf1, 0xba, 0x6b, 0x80, 0x80, 0x85, + 0x22, 0x62, 0x00, 0xfb, 0xa7, 0xb0, 0x19, 0xac, 0x09, 0x80, 0x3d, 0x23, 0x25, 0xbd, 0x74, 0x88, + 0x7d, 0xe7, 0x63, 0x00, 0x31, 0xf4, 0x39, 0x15, 0x16, 0x6a, 0xd6, 0x15, 0xd3, 0xc3, 0xab, 0xd8, + 0xc2, 0x8e, 0x3f, 0x0e, 0x48, 0xc1, 0xf0, 0x26, 0x95, 0x83, 0x61, 0x45, 0x84, 0xe1, 0xa9, 0x03, + 0xc4, 0x26, 0x96, 0x11, 0x33, 0xda, 0xde, 0x04, 0x33, 0x26, 0xc9, 0x57, 0x31, 0x3b, 0x4c, 0x62, + 0x51, 0x82, 0x76, 0x2b, 0xcc, 0xd3, 0x97, 0x15, 0xb3, 0x8b, 0x1f, 0xc2, 0xd7, 0xd8, 0xb8, 0x2b, + 0x26, 0xa2, 0xef, 0x0b, 0x1b, 0x5f, 0x4d, 0xc0, 0xf2, 0x1b, 0xd2, 0x32, 0x95, 0x0e, 0xcc, 0x57, + 0x3e, 0x16, 0x9a, 0xdf, 0xa1, 0x56, 0x66, 0xa2, 0xaf, 0x29, 0x30, 0xdb, 0xf4, 0xec, 0x9e, 0xaf, + 0xb2, 0xa6, 0xb5, 0x2b, 0x07, 0xee, 0xc7, 0xf8, 0x36, 0x56, 0x11, 0xc1, 0x7d, 0xca, 0x00, 0x39, + 0x72, 0x05, 0xc4, 0xb4, 0xb0, 0x2f, 0x87, 0x2d, 0x6c, 0x45, 0x40, 0xe5, 0xee, 0x54, 0xd4, 0xfe, + 0x0d, 0xb6, 0xaf, 0x57, 0xaa, 0x50, 0x0a, 0xd4, 0xcc, 0xab, 0x1c, 0x38, 0x0e, 0xb6, 0x3c, 0x39, + 0x10, 0xfe, 0x98, 0x07, 0x61, 0x4d, 0x04, 0xe1, 0xee, 0x04, 0x65, 0x0e, 0x4a, 0xc9, 0xb0, 0x8d, + 0x7d, 0x30, 0x44, 0xf3, 0x21, 0x01, 0xcd, 0x6f, 0x4c, 0xcf, 0x56, 0x3a, 0x48, 0xd7, 0x46, 0x40, + 0xf4, 0x34, 0x94, 0xfc, 0x31, 0xa9, 0xd2, 0xaa, 0x5d, 0xa8, 0x6e, 0xd7, 0xea, 0x17, 0x6a, 0xad, + 0x6a, 0x09, 0xa3, 0x1f, 0x54, 0x61, 0x8e, 0xb2, 0xa6, 0xe3, 0x2b, 0xf6, 0x65, 0xc9, 0x5e, 0xef, + 0x73, 0x29, 0x8d, 0x05, 0xbe, 0x84, 0x98, 0x96, 0xf1, 0xbd, 0x29, 0x8c, 0x85, 0x04, 0x72, 0x8f, + 0xa5, 0xde, 0xea, 0x50, 0x33, 0xd8, 0x1d, 0xd0, 0x5a, 0x06, 0xf6, 0x56, 0xaf, 0xcc, 0x03, 0xd0, + 0x4a, 0x5e, 0x30, 0xf1, 0x55, 0xb4, 0x11, 0x61, 0x22, 0xa8, 0x6d, 0x6e, 0xa8, 0xda, 0x2a, 0x83, + 0xd4, 0xf6, 0xbd, 0xfc, 0x98, 0xb5, 0x24, 0xa2, 0x77, 0x67, 0xac, 0xb8, 0x7d, 0x4e, 0xe2, 0x67, + 0x87, 0x81, 0xa2, 0x28, 0xa2, 0xd5, 0x79, 0x13, 0xcc, 0x90, 0xc7, 0xba, 0xb1, 0x8f, 0x59, 0x1b, + 0x8a, 0x12, 0xb4, 0xf3, 0x30, 0x47, 0x33, 0xb6, 0x6d, 0xcb, 0xaf, 0x4f, 0x9e, 0x64, 0x10, 0xd2, + 0x7c, 0x10, 0xdb, 0x0e, 0x36, 0x3c, 0xdb, 0x21, 0x34, 0x0a, 0x14, 0x44, 0x2e, 0x09, 0x7d, 0x29, + 0x6c, 0x85, 0x55, 0x41, 0x73, 0x9e, 0x96, 0xa6, 0x2a, 0xe9, 0xf4, 0xe6, 0xca, 0x68, 0xed, 0x8f, + 0xb6, 0xba, 0x6d, 0x1f, 0xed, 0x15, 0x32, 0xb5, 0xc3, 0xda, 0x59, 0xd0, 0x58, 0xaa, 0x9f, 0xb7, + 0xd2, 0xa8, 0xb7, 0xaa, 0xf5, 0x56, 0x69, 0x67, 0xa0, 0x46, 0xed, 0xa2, 0x37, 0xe6, 0x21, 0xff, + 0xa0, 0x6d, 0x5a, 0xe8, 0x45, 0x39, 0x41, 0x25, 0x2c, 0xec, 0x5d, 0xb5, 0x9d, 0xcb, 0x61, 0x43, + 0x8d, 0x12, 0x92, 0xb1, 0x89, 0x54, 0x49, 0x1d, 0xaa, 0x4a, 0xf9, 0x41, 0xaa, 0xf4, 0x03, 0xbc, + 0x2a, 0xdd, 0x27, 0xaa, 0xd2, 0x6d, 0x03, 0xe4, 0xef, 0x33, 0x1f, 0xd3, 0x01, 0x7c, 0x34, 0xec, + 0x00, 0x1e, 0x10, 0x60, 0x7c, 0xb2, 0x1c, 0x99, 0x74, 0x00, 0x7e, 0x36, 0xd3, 0x86, 0x3f, 0x08, + 0xea, 0xdd, 0x18, 0xa8, 0xf7, 0x06, 0xf4, 0x09, 0xe6, 0xe1, 0xae, 0xe3, 0x91, 0xc3, 0xdd, 0xc4, + 0x65, 0xed, 0x0c, 0x9c, 0x5a, 0xae, 0xad, 0xac, 0x54, 0xf5, 0x6a, 0xbd, 0xb5, 0x5d, 0xaf, 0xb6, + 0x2e, 0x36, 0xf4, 0x87, 0x4a, 0x5d, 0xf4, 0x06, 0x15, 0xc0, 0x97, 0x50, 0xc5, 0xb0, 0xda, 0xb8, + 0x2b, 0xd7, 0xa3, 0xff, 0x0f, 0x25, 0x5d, 0x9f, 0x10, 0xd1, 0x8f, 0x81, 0xf3, 0xd5, 0x8a, 0x7c, + 0xab, 0x8c, 0x25, 0x96, 0x0e, 0xd4, 0xb7, 0x3c, 0x16, 0x6c, 0xcf, 0xeb, 0xe0, 0x64, 0x40, 0x8f, + 0x65, 0x1f, 0x3c, 0xed, 0x7b, 0x5b, 0x1e, 0x16, 0x18, 0x2c, 0xc1, 0x3c, 0xfe, 0x25, 0x39, 0x99, + 0x89, 0x3c, 0x82, 0x69, 0x36, 0x6d, 0x0f, 0xba, 0xf7, 0xf0, 0x5d, 0x5b, 0x85, 0xd9, 0x1e, 0x76, + 0xf6, 0x4d, 0xd7, 0x35, 0x6d, 0x8b, 0x2e, 0xc8, 0x2d, 0xdc, 0xfd, 0xc4, 0x50, 0xe2, 0x64, 0xed, + 0x72, 0x71, 0xd3, 0x70, 0x3c, 0xb3, 0x6d, 0xf6, 0x0c, 0xcb, 0xdb, 0x8c, 0x32, 0xeb, 0xfc, 0x9f, + 0xe8, 0x15, 0x29, 0xa7, 0x35, 0x62, 0x4d, 0x62, 0x54, 0xe2, 0x97, 0x52, 0x4c, 0x49, 0x12, 0x09, + 0xa6, 0x53, 0x8b, 0x8f, 0x64, 0xaa, 0x16, 0x03, 0xf0, 0xde, 0xd5, 0x6e, 0x80, 0x33, 0xb5, 0x7a, + 0xa5, 0xa1, 0xeb, 0xd5, 0x4a, 0x6b, 0x7b, 0xb3, 0xaa, 0x6f, 0xd4, 0x9a, 0xcd, 0x5a, 0xa3, 0xde, + 0x3c, 0x4a, 0x6b, 0x47, 0x1f, 0x57, 0x43, 0x8d, 0x59, 0xc6, 0xed, 0xae, 0x69, 0x61, 0xf4, 0xc0, + 0x11, 0x15, 0x46, 0x5c, 0xf5, 0x91, 0xc7, 0x99, 0x95, 0x1f, 0x83, 0xf3, 0xeb, 0xd3, 0xe3, 0x3c, + 0x98, 0xe0, 0xbf, 0xe3, 0xe6, 0xff, 0x39, 0x15, 0x4e, 0x71, 0x0d, 0x51, 0xc7, 0xfb, 0x63, 0x5b, + 0xc9, 0xfb, 0x4e, 0xbe, 0xed, 0xd6, 0x44, 0x4c, 0x07, 0x59, 0xd3, 0x87, 0xd8, 0x88, 0x81, 0xf5, + 0x2d, 0x21, 0xac, 0xeb, 0x02, 0xac, 0xcf, 0x1a, 0x81, 0x66, 0x3a, 0x64, 0x7f, 0x21, 0x53, 0x64, + 0x6f, 0x80, 0x33, 0x9b, 0x65, 0xbd, 0x55, 0xab, 0xd4, 0x36, 0xcb, 0xfe, 0x38, 0xca, 0x0d, 0xd9, + 0x31, 0xe6, 0xba, 0x08, 0xfa, 0x40, 0x7c, 0x7f, 0x25, 0x0f, 0x37, 0x0d, 0xee, 0x68, 0x2b, 0x7b, + 0x86, 0xb5, 0x8b, 0x91, 0x29, 0x03, 0xf5, 0x32, 0x4c, 0xb5, 0x49, 0x76, 0x8a, 0x33, 0xbf, 0x75, + 0x93, 0xd0, 0x97, 0xd3, 0x12, 0xf4, 0xe0, 0x57, 0xf4, 0x4e, 0x5e, 0x21, 0x5a, 0xa2, 0x42, 0x3c, + 0x27, 0x19, 0xbc, 0x43, 0x7c, 0xc7, 0xe8, 0xc6, 0x27, 0x43, 0xdd, 0xb8, 0x28, 0xe8, 0x46, 0xe5, + 0x68, 0xe4, 0xd3, 0xa9, 0xc9, 0x6f, 0x3e, 0x16, 0x3a, 0x80, 0x58, 0x6d, 0x32, 0xe3, 0x47, 0x85, + 0x81, 0xdd, 0xfd, 0x6b, 0x55, 0x28, 0x2e, 0xe3, 0x2e, 0x96, 0x5d, 0x89, 0xfc, 0x3b, 0x45, 0x76, + 0x43, 0x84, 0xc2, 0x40, 0x69, 0xc7, 0xaf, 0x8e, 0x78, 0xe6, 0x3e, 0x76, 0x3d, 0x63, 0xbf, 0x47, + 0x44, 0xad, 0xea, 0x51, 0x02, 0xfa, 0x2e, 0x45, 0x66, 0xbb, 0x24, 0xa1, 0x98, 0x7f, 0x1f, 0x6b, + 0x8a, 0x9f, 0x52, 0x60, 0xba, 0x89, 0xbd, 0x86, 0xd3, 0xc1, 0x0e, 0x6a, 0x46, 0x18, 0xdd, 0x02, + 0xb3, 0x04, 0x14, 0x7f, 0x9a, 0x19, 0xe2, 0xc4, 0x27, 0x69, 0xb7, 0xc1, 0x42, 0xf8, 0x4a, 0x7e, + 0x67, 0xdd, 0x78, 0x5f, 0x2a, 0xfa, 0xfb, 0x9c, 0xec, 0x2e, 0x2e, 0x5b, 0x32, 0x64, 0xdc, 0xc4, + 0xb4, 0x52, 0xb9, 0x1d, 0xd9, 0x44, 0x52, 0xd9, 0x6f, 0x74, 0xbd, 0x5d, 0x01, 0xd8, 0xb2, 0xdc, + 0x40, 0xae, 0x4f, 0x4e, 0x21, 0x57, 0xf4, 0x8f, 0xb9, 0x74, 0xb3, 0x98, 0xa8, 0x9c, 0x18, 0x89, + 0xfd, 0x64, 0x8a, 0xb5, 0x85, 0x58, 0x62, 0xd9, 0xcb, 0xec, 0xcf, 0x17, 0xa0, 0x78, 0xd1, 0xe8, + 0x76, 0xb1, 0x87, 0xbe, 0xa8, 0x40, 0xb1, 0xe2, 0x60, 0xc3, 0xc3, 0xbc, 0xe8, 0x10, 0x4c, 0x3b, + 0xb6, 0xed, 0x6d, 0x1a, 0xde, 0x1e, 0x93, 0x5b, 0xf8, 0xce, 0x1c, 0x06, 0x7e, 0x8e, 0xef, 0x3e, + 0x1e, 0x10, 0x45, 0xf7, 0xf5, 0x42, 0x6d, 0x69, 0x41, 0x8b, 0xb4, 0x90, 0x98, 0xfe, 0x03, 0xc1, + 0xf4, 0xbe, 0x85, 0xf7, 0x6d, 0xcb, 0x6c, 0x07, 0x36, 0x67, 0xf0, 0x8e, 0x7e, 0x2d, 0x94, 0xe9, + 0x92, 0x20, 0xd3, 0x45, 0xe9, 0x52, 0xd2, 0x09, 0xb4, 0x39, 0x42, 0xef, 0xf1, 0x78, 0xb8, 0x91, + 0x76, 0x06, 0xdb, 0xad, 0xc6, 0x76, 0x45, 0xaf, 0x96, 0x5b, 0xd5, 0xed, 0xf5, 0x46, 0xa5, 0xbc, + 0xbe, 0xad, 0x57, 0x37, 0x1b, 0x25, 0x8c, 0xfe, 0x4a, 0xf1, 0x85, 0xdb, 0xb6, 0xaf, 0x60, 0x07, + 0xad, 0x4a, 0xc9, 0x39, 0x49, 0x26, 0x0c, 0x83, 0x1f, 0x90, 0x76, 0xda, 0x60, 0xd2, 0x61, 0x1c, + 0xc4, 0x28, 0xef, 0x87, 0xa4, 0x9a, 0x7b, 0x22, 0xa9, 0xc7, 0x80, 0xa4, 0xff, 0xa7, 0x02, 0x53, + 0x15, 0xdb, 0xba, 0x82, 0x1d, 0x8f, 0x9f, 0xef, 0xf0, 0xd2, 0xcc, 0x89, 0xd2, 0xf4, 0x07, 0x49, + 0x6c, 0x79, 0x8e, 0xdd, 0x0b, 0x26, 0x3c, 0xc1, 0x2b, 0xfa, 0xe9, 0xb4, 0x12, 0x66, 0x25, 0xc7, + 0x2f, 0x7c, 0x0e, 0x2e, 0x48, 0x60, 0x4f, 0xed, 0x6b, 0x00, 0x6f, 0x48, 0x83, 0xcb, 0x60, 0x06, + 0xb2, 0xef, 0x52, 0x3e, 0xaf, 0xc2, 0x3c, 0x6d, 0x7c, 0x4d, 0x4c, 0x2c, 0x34, 0xd4, 0xe0, 0x97, + 0x1c, 0xfb, 0x84, 0xbf, 0x76, 0x42, 0x10, 0x7f, 0xd1, 0xe8, 0xf5, 0xc2, 0xe5, 0xe7, 0xb5, 0x13, + 0x3a, 0x7b, 0xa7, 0x6a, 0xbe, 0x54, 0x84, 0xbc, 0x71, 0xe0, 0xed, 0xa1, 0xaf, 0x49, 0x4f, 0x3e, + 0x85, 0xce, 0x80, 0xf1, 0x13, 0x03, 0xc9, 0x69, 0x28, 0x78, 0xf6, 0x65, 0x1c, 0xc8, 0x81, 0xbe, + 0xf8, 0x70, 0x18, 0xbd, 0x5e, 0x8b, 0x7c, 0x60, 0x70, 0x04, 0xef, 0xbe, 0xad, 0x63, 0xb4, 0xdb, + 0xf6, 0x81, 0xe5, 0xd5, 0x82, 0x25, 0xe8, 0x28, 0x01, 0x7d, 0x26, 0x27, 0x33, 0x99, 0x95, 0x60, + 0x30, 0x1d, 0x64, 0x97, 0x46, 0x68, 0x4a, 0x8b, 0x70, 0x47, 0x79, 0x73, 0x73, 0xbb, 0xd5, 0x78, + 0xa8, 0x5a, 0x8f, 0x0c, 0xcf, 0xed, 0x5a, 0x7d, 0xbb, 0xb5, 0x56, 0xdd, 0xae, 0x6c, 0xe9, 0x64, + 0x9d, 0xb0, 0x5c, 0xa9, 0x34, 0xb6, 0xea, 0xad, 0x12, 0x46, 0x6f, 0x55, 0x60, 0xae, 0xd2, 0xb5, + 0xdd, 0x10, 0xe1, 0xc7, 0x47, 0x08, 0x87, 0x62, 0xcc, 0x71, 0x62, 0x44, 0xff, 0x2b, 0x27, 0xeb, + 0x74, 0x10, 0x08, 0x84, 0x23, 0x1f, 0xd3, 0x4b, 0xfd, 0xb4, 0x94, 0xd3, 0xc1, 0x70, 0x7a, 0xd9, + 0x37, 0x89, 0x4f, 0x3f, 0x07, 0xa6, 0xca, 0x54, 0x31, 0xd0, 0x9f, 0xe6, 0xa0, 0x58, 0xb1, 0xad, + 0x1d, 0x73, 0xd7, 0x37, 0xe6, 0xb0, 0x65, 0x5c, 0xea, 0xe2, 0x65, 0xc3, 0x33, 0xae, 0x98, 0xf8, + 0x2a, 0xa9, 0xc0, 0xb4, 0xde, 0x97, 0xea, 0x33, 0xc5, 0x52, 0xf0, 0xa5, 0x83, 0x5d, 0xc2, 0xd4, + 0xb4, 0xce, 0x27, 0x69, 0xcf, 0x82, 0xeb, 0xe9, 0xeb, 0xa6, 0x83, 0x1d, 0xdc, 0xc5, 0x86, 0x8b, + 0xfd, 0x69, 0x91, 0x85, 0xbb, 0x44, 0x69, 0xa7, 0xf5, 0xb8, 0xcf, 0xda, 0x79, 0x98, 0xa3, 0x9f, + 0x88, 0x29, 0xe2, 0x12, 0x35, 0x9e, 0xd6, 0x85, 0x34, 0xed, 0x29, 0x50, 0xc0, 0x8f, 0x7a, 0x8e, + 0x71, 0xae, 0x43, 0xf0, 0xba, 0x7e, 0x91, 0x7a, 0x1d, 0x2e, 0x06, 0x5e, 0x87, 0x8b, 0x4d, 0xe2, + 0x93, 0xa8, 0xd3, 0x5c, 0xe8, 0xe3, 0xd3, 0xa1, 0x21, 0xf1, 0x56, 0x35, 0x52, 0x0c, 0x0d, 0xf2, + 0x96, 0xb1, 0x8f, 0x99, 0x5e, 0x90, 0x67, 0xed, 0x0e, 0x38, 0x69, 0x5c, 0x31, 0x3c, 0xc3, 0x59, + 0xb7, 0xdb, 0x46, 0x97, 0x0c, 0x7e, 0x41, 0xcb, 0xef, 0xff, 0x40, 0x76, 0x84, 0x3c, 0xdb, 0xc1, + 0x24, 0x57, 0xb0, 0x23, 0x14, 0x24, 0xf8, 0xd4, 0xcd, 0xb6, 0x6d, 0x11, 0xfe, 0x55, 0x9d, 0x3c, + 0xfb, 0x52, 0xe9, 0x98, 0xae, 0x5f, 0x11, 0x42, 0xa5, 0x4e, 0xb7, 0x36, 0x9a, 0xd7, 0xac, 0x36, + 0xd9, 0x0d, 0x9a, 0xd6, 0xe3, 0x3e, 0x6b, 0x4b, 0x30, 0xcb, 0x36, 0x42, 0x36, 0x7c, 0xbd, 0x2a, + 0x12, 0xbd, 0xba, 0x45, 0xf4, 0xe9, 0xa2, 0x78, 0x2e, 0xd6, 0xa3, 0x7c, 0x3a, 0xff, 0x93, 0xf6, + 0x5c, 0xb8, 0x91, 0xbd, 0x56, 0x0e, 0x5c, 0xcf, 0xde, 0xa7, 0xa0, 0xaf, 0x98, 0x5d, 0x5a, 0x83, + 0x29, 0x52, 0x83, 0xa4, 0x2c, 0xda, 0xdd, 0x70, 0xba, 0xe7, 0xe0, 0x1d, 0xec, 0x3c, 0x6c, 0xec, + 0x1f, 0x3c, 0xda, 0x72, 0x0c, 0xcb, 0xed, 0xd9, 0x8e, 0x77, 0x6e, 0x9a, 0x30, 0x3f, 0xf0, 0x9b, + 0x76, 0x27, 0x9c, 0x7a, 0xc4, 0xb5, 0xad, 0x72, 0xcf, 0x5c, 0x37, 0x5d, 0x0f, 0x5b, 0xe5, 0x4e, + 0xc7, 0x39, 0x37, 0x43, 0xca, 0x3a, 0xfc, 0x81, 0x75, 0xab, 0xd3, 0x50, 0xa4, 0xc2, 0x46, 0x2f, + 0x2f, 0x48, 0x3b, 0x7f, 0xb2, 0xea, 0x27, 0x1a, 0x73, 0x4f, 0x85, 0x29, 0xd6, 0x1f, 0x12, 0x58, + 0x67, 0xef, 0x3e, 0xdb, 0xb7, 0x0a, 0xc1, 0xa8, 0xe8, 0x41, 0x36, 0xed, 0xe9, 0x50, 0x6c, 0x13, + 0x21, 0x10, 0x84, 0x67, 0xef, 0xbe, 0x71, 0x70, 0xa1, 0x24, 0x8b, 0xce, 0xb2, 0xa2, 0x3f, 0x52, + 0xa5, 0xfc, 0x45, 0x93, 0x38, 0x4e, 0xd7, 0x07, 0x7c, 0x49, 0x19, 0xa1, 0x93, 0xbd, 0x13, 0x6e, + 0x67, 0x3d, 0x28, 0xb3, 0x56, 0x96, 0xb7, 0x97, 0xb6, 0x82, 0xa9, 0xa3, 0x6f, 0xc3, 0x34, 0x5b, + 0x65, 0xdd, 0x9f, 0xf7, 0x2f, 0xfb, 0x53, 0xce, 0x3b, 0xe0, 0xb6, 0x21, 0xb9, 0xab, 0xad, 0xed, + 0x7a, 0x79, 0xa3, 0x5a, 0xda, 0x11, 0x2d, 0xa1, 0x66, 0xab, 0xb1, 0xb9, 0xad, 0x6f, 0xd5, 0xeb, + 0xb5, 0xfa, 0x2a, 0x25, 0xe6, 0x1b, 0x90, 0x67, 0xa3, 0x0c, 0x17, 0xf5, 0x5a, 0xab, 0xba, 0x5d, + 0x69, 0xd4, 0x57, 0x6a, 0xab, 0x25, 0x73, 0x98, 0x19, 0xf5, 0x88, 0x76, 0x0b, 0xdc, 0x24, 0x70, + 0x52, 0x6b, 0xd4, 0xfd, 0x79, 0x70, 0xa5, 0x5c, 0xaf, 0x54, 0xfd, 0x49, 0xef, 0x65, 0x0d, 0xc1, + 0x19, 0x4a, 0x6e, 0x7b, 0xa5, 0xb6, 0xce, 0x6f, 0x5d, 0x7d, 0x2c, 0xa7, 0x9d, 0x83, 0xeb, 0xf8, + 0x6f, 0xb5, 0xfa, 0x85, 0xf2, 0x7a, 0x6d, 0xb9, 0xf4, 0x1b, 0x39, 0xed, 0x56, 0x78, 0xbc, 0xf0, + 0x17, 0xdd, 0x85, 0xda, 0xae, 0x2d, 0x6f, 0x6f, 0xd4, 0x9a, 0x1b, 0xe5, 0x56, 0x65, 0xad, 0xf4, + 0x71, 0x32, 0xbb, 0x08, 0xcd, 0x65, 0xce, 0x89, 0xf3, 0x95, 0xbc, 0x05, 0x50, 0x16, 0x15, 0xf5, + 0xc9, 0x03, 0x61, 0x4f, 0xb6, 0x78, 0x3f, 0x12, 0x8e, 0x25, 0xcb, 0x82, 0x0a, 0x3d, 0x35, 0x05, + 0xad, 0x74, 0x3a, 0xd4, 0x1a, 0x41, 0x85, 0x6e, 0x81, 0x9b, 0xea, 0x55, 0x8a, 0x94, 0x5e, 0xad, + 0x34, 0x2e, 0x54, 0xf5, 0xed, 0x8b, 0xe5, 0xf5, 0xf5, 0x6a, 0x6b, 0x7b, 0xa5, 0xa6, 0x37, 0x5b, + 0xa5, 0x1d, 0xf4, 0x8f, 0x4a, 0xb8, 0xf6, 0xc3, 0x49, 0xeb, 0x4f, 0x95, 0xb4, 0xcd, 0x3a, 0x71, + 0x8d, 0xe7, 0x1b, 0xa0, 0xe8, 0x7a, 0x86, 0x77, 0xe0, 0xb2, 0x56, 0xfd, 0xb8, 0xc1, 0xad, 0x7a, + 0xb1, 0x49, 0x32, 0xe9, 0x2c, 0x33, 0xfa, 0xa3, 0x5c, 0x9a, 0x66, 0x3a, 0x86, 0xe5, 0x1f, 0x73, + 0x04, 0x11, 0xdf, 0x0c, 0x28, 0xd0, 0xf6, 0x5a, 0x73, 0xbb, 0xbc, 0xae, 0x57, 0xcb, 0xcb, 0x0f, + 0x87, 0x8b, 0x3e, 0x58, 0x3b, 0x03, 0xa7, 0xb6, 0xea, 0xe5, 0xa5, 0xf5, 0x2a, 0x69, 0x2e, 0x8d, + 0x7a, 0xbd, 0x5a, 0xf1, 0xe5, 0xfe, 0x5d, 0x64, 0x8b, 0xc5, 0xb7, 0xb7, 0x09, 0xdf, 0xbe, 0x4d, + 0xc4, 0xc9, 0xff, 0x2f, 0xa5, 0x3d, 0x91, 0x22, 0x0d, 0xe3, 0x69, 0x8d, 0x17, 0x87, 0xcf, 0x48, + 0x39, 0x1f, 0x49, 0x71, 0x92, 0x0e, 0x8f, 0x6f, 0x1b, 0x01, 0x8f, 0x33, 0x70, 0x8a, 0xc7, 0x83, + 0x38, 0x21, 0xc5, 0xc3, 0xf0, 0xf2, 0x19, 0x28, 0x36, 0x71, 0x17, 0xb7, 0x3d, 0xf4, 0x39, 0x25, + 0x32, 0x3d, 0x16, 0x40, 0x09, 0x9d, 0x5e, 0x14, 0xb3, 0x23, 0x4c, 0xb6, 0x95, 0xbe, 0xc9, 0x76, + 0x82, 0xd1, 0xa0, 0xa6, 0x32, 0x1a, 0xf2, 0x19, 0x18, 0x0d, 0x85, 0xd1, 0x8d, 0x86, 0x62, 0x5a, + 0xa3, 0x61, 0x2a, 0xd1, 0x68, 0x40, 0x3f, 0x59, 0x4c, 0xdb, 0xa7, 0x50, 0x60, 0x8e, 0xd7, 0x54, + 0xf8, 0x1f, 0xf9, 0x34, 0x7d, 0xd0, 0x40, 0x8e, 0xd3, 0xe9, 0xfc, 0xd7, 0xd4, 0x0c, 0x96, 0x36, + 0xb4, 0x27, 0xc0, 0xe3, 0xa3, 0xf7, 0xed, 0xea, 0xf3, 0x6a, 0xcd, 0x56, 0x93, 0xd8, 0x07, 0x95, + 0x86, 0xae, 0x6f, 0x6d, 0xd2, 0xf5, 0xe9, 0xb3, 0xa0, 0x45, 0x54, 0xf4, 0xad, 0x3a, 0xb5, 0x06, + 0x76, 0x45, 0xea, 0x2b, 0xb5, 0xfa, 0xf2, 0x76, 0xd8, 0xc2, 0xea, 0x2b, 0x8d, 0xd2, 0x9e, 0x3f, + 0x1d, 0xe4, 0xa8, 0xfb, 0xc3, 0x39, 0x2b, 0xa1, 0x5c, 0x5f, 0xde, 0xde, 0xa8, 0x57, 0x37, 0x1a, + 0xf5, 0x5a, 0x85, 0xa4, 0x37, 0xab, 0xad, 0x92, 0xe9, 0x0f, 0x4b, 0x7d, 0xf6, 0x47, 0xb3, 0x5a, + 0xd6, 0x2b, 0x6b, 0x55, 0x9d, 0x16, 0xf9, 0x88, 0x76, 0x1b, 0x9c, 0x2f, 0xd7, 0x1b, 0x2d, 0x3f, + 0xa5, 0x5c, 0x7f, 0xb8, 0xf5, 0xf0, 0x66, 0x75, 0x7b, 0x53, 0x6f, 0x54, 0xaa, 0xcd, 0xa6, 0xdf, + 0xaa, 0x99, 0xb5, 0x52, 0xea, 0x6a, 0xcf, 0x81, 0x7b, 0x39, 0xd6, 0xaa, 0x2d, 0xb2, 0x19, 0xba, + 0xd1, 0x20, 0xfe, 0x30, 0xcb, 0xd5, 0xed, 0xb5, 0x72, 0x73, 0xbb, 0x56, 0xaf, 0x34, 0x36, 0x36, + 0xcb, 0xad, 0x9a, 0xdf, 0xf8, 0x37, 0xf5, 0x46, 0xab, 0xb1, 0x7d, 0xa1, 0xaa, 0x37, 0x6b, 0x8d, + 0x7a, 0xc9, 0xf2, 0xab, 0xcc, 0xf5, 0x16, 0x41, 0xaf, 0x6d, 0x6b, 0x37, 0xc1, 0xb9, 0x20, 0x7d, + 0xbd, 0xe1, 0x0b, 0x9a, 0xb3, 0x5f, 0x7a, 0x99, 0xda, 0x2f, 0xff, 0xac, 0x40, 0xbe, 0xe9, 0xd9, + 0x3d, 0xf4, 0xf5, 0x51, 0x77, 0x74, 0x33, 0x80, 0x43, 0xf6, 0x36, 0xfd, 0x19, 0x1e, 0x9b, 0xf3, + 0x71, 0x29, 0xe8, 0xd7, 0xa5, 0x37, 0x64, 0xa2, 0x1e, 0xde, 0xee, 0xc5, 0x58, 0x36, 0x5f, 0x95, + 0x3b, 0xa1, 0x12, 0x4f, 0x28, 0x9d, 0xbe, 0x7f, 0xef, 0x28, 0x5b, 0x2e, 0x08, 0xce, 0x72, 0xb0, + 0xf9, 0xf2, 0x0f, 0x54, 0x02, 0x6b, 0xd7, 0xc3, 0x75, 0x7d, 0xca, 0x45, 0x74, 0x6a, 0x47, 0xfb, + 0x3a, 0x78, 0x1c, 0xa7, 0xde, 0xd5, 0x8d, 0xc6, 0x85, 0x6a, 0xa8, 0xc8, 0xcb, 0xe5, 0x56, 0xb9, + 0xb4, 0x8b, 0x3e, 0xa5, 0x42, 0x7e, 0xc3, 0xbe, 0xd2, 0xbf, 0x0f, 0x66, 0xe1, 0xab, 0xdc, 0x3a, + 0x6b, 0xf0, 0x2a, 0x7a, 0xe4, 0x4b, 0x89, 0x7d, 0x23, 0x7e, 0xcf, 0xfb, 0x33, 0x4a, 0x1a, 0xb1, + 0x6f, 0x1c, 0x75, 0xa3, 0xfb, 0xaf, 0x47, 0x11, 0x7b, 0x8c, 0x68, 0xb1, 0x76, 0x1e, 0x6e, 0x8e, + 0x3e, 0xd4, 0x96, 0xab, 0xf5, 0x56, 0x6d, 0xe5, 0xe1, 0x48, 0xb8, 0x35, 0x5d, 0x4a, 0xfc, 0xc3, + 0xba, 0xb1, 0xe4, 0x79, 0xc9, 0x39, 0x38, 0x1d, 0x7d, 0x5b, 0xad, 0xb6, 0x82, 0x2f, 0x8f, 0xa0, + 0x17, 0x15, 0x60, 0x8e, 0x76, 0xeb, 0x5b, 0xbd, 0x8e, 0xe1, 0x61, 0xf4, 0xf4, 0x08, 0xdd, 0xdb, + 0xe1, 0x64, 0x6d, 0x73, 0xa5, 0xd9, 0xf4, 0x6c, 0xc7, 0xd8, 0xc5, 0x64, 0x1c, 0xa3, 0xd2, 0xea, + 0x4f, 0x46, 0xef, 0x96, 0x5e, 0x43, 0x14, 0x87, 0x12, 0x5a, 0x66, 0x0c, 0xea, 0x9f, 0x97, 0x5a, + 0xf3, 0x93, 0x20, 0x98, 0x0e, 0xfd, 0x47, 0xc6, 0xdc, 0xe6, 0xe2, 0x71, 0xd9, 0x39, 0xff, 0x62, + 0x05, 0x66, 0x5a, 0xe6, 0x3e, 0x7e, 0xbe, 0x6d, 0x61, 0x57, 0x9b, 0x02, 0x75, 0x75, 0xa3, 0x55, + 0x3a, 0xe1, 0x3f, 0xf8, 0x26, 0x58, 0x8e, 0x3c, 0x54, 0xfd, 0x02, 0xfc, 0x87, 0x72, 0xab, 0xa4, + 0xfa, 0x0f, 0x1b, 0xd5, 0x56, 0x29, 0xef, 0x3f, 0xd4, 0xab, 0xad, 0x52, 0xc1, 0x7f, 0xd8, 0x5c, + 0x6f, 0x95, 0x8a, 0xfe, 0x43, 0xad, 0xd9, 0x2a, 0x4d, 0xf9, 0x0f, 0x4b, 0xcd, 0x56, 0x69, 0xda, + 0x7f, 0xb8, 0xd0, 0x6c, 0x95, 0x66, 0xfc, 0x87, 0x4a, 0xab, 0x55, 0x02, 0xff, 0xe1, 0xc1, 0x66, + 0xab, 0x34, 0xeb, 0x3f, 0x94, 0x2b, 0xad, 0xd2, 0x1c, 0x79, 0xa8, 0xb6, 0x4a, 0xf3, 0xfe, 0x43, + 0xb3, 0xd9, 0x2a, 0x2d, 0x10, 0xca, 0xcd, 0x56, 0xe9, 0x24, 0x29, 0xab, 0xd6, 0x2a, 0x95, 0xfc, + 0x87, 0xb5, 0x66, 0xab, 0x74, 0x8a, 0x64, 0x6e, 0xb6, 0x4a, 0x1a, 0x29, 0xb4, 0xd9, 0x2a, 0x5d, + 0x47, 0xf2, 0x34, 0x5b, 0xa5, 0xd3, 0xa4, 0x88, 0x66, 0xab, 0x74, 0x86, 0xb0, 0x51, 0x6d, 0x95, + 0xce, 0x92, 0x3c, 0x7a, 0xab, 0x74, 0x3d, 0xf9, 0x54, 0x6f, 0x95, 0xce, 0x11, 0xc6, 0xaa, 0xad, + 0xd2, 0x0d, 0xe4, 0x41, 0x6f, 0x95, 0x10, 0xf9, 0x54, 0x6e, 0x95, 0x6e, 0x44, 0x8f, 0x83, 0x99, + 0x55, 0xec, 0x51, 0x10, 0x51, 0x09, 0xd4, 0x55, 0xec, 0xf1, 0x46, 0xff, 0x9f, 0xab, 0x70, 0x3d, + 0x9b, 0x28, 0xae, 0x38, 0xf6, 0xfe, 0x3a, 0xde, 0x35, 0xda, 0xd7, 0xaa, 0x8f, 0xfa, 0x06, 0x17, + 0xbf, 0xe7, 0xab, 0x41, 0xbe, 0x17, 0x75, 0x46, 0xe4, 0x39, 0xd1, 0x3e, 0x0d, 0x16, 0xba, 0xd4, + 0x68, 0xa1, 0x8b, 0x59, 0x64, 0xff, 0xc0, 0x6b, 0xb4, 0xb0, 0x36, 0x9d, 0xeb, 0x5b, 0x9b, 0xf6, + 0x9b, 0x49, 0x0f, 0x3b, 0xae, 0x6d, 0x19, 0xdd, 0x26, 0x73, 0x0a, 0xa0, 0x2b, 0x6a, 0xfd, 0xc9, + 0xda, 0x37, 0x05, 0x2d, 0x83, 0x5a, 0x65, 0xcf, 0x4e, 0x9a, 0x0f, 0xf7, 0x57, 0x33, 0xa6, 0x91, + 0x7c, 0x3c, 0x6c, 0x24, 0x2d, 0xa1, 0x91, 0x3c, 0xf7, 0x08, 0xb4, 0xd3, 0xb5, 0x97, 0xda, 0x68, + 0x13, 0x91, 0xc8, 0x65, 0x36, 0x58, 0x0a, 0x57, 0xd1, 0xa7, 0x14, 0x38, 0x5b, 0xb5, 0x06, 0xcd, + 0x07, 0x78, 0x5d, 0x78, 0x2b, 0x0f, 0xcd, 0xa6, 0x28, 0xd2, 0x7b, 0x07, 0x56, 0x7b, 0x30, 0xcd, + 0x18, 0x89, 0x7e, 0x22, 0x94, 0x68, 0x53, 0x90, 0xe8, 0x03, 0xa3, 0x93, 0x4e, 0x27, 0xd0, 0xfa, + 0x58, 0x3b, 0xa0, 0x3c, 0xfa, 0xa2, 0x02, 0xa7, 0xa8, 0x5f, 0xcf, 0x83, 0x74, 0xfa, 0x41, 0xba, + 0x6c, 0xd1, 0x84, 0xea, 0x46, 0x53, 0x15, 0xaa, 0xdf, 0x5c, 0x0a, 0x7a, 0x23, 0x2f, 0xf0, 0x87, + 0x44, 0x81, 0xc7, 0x74, 0xc6, 0xfd, 0xc5, 0xc5, 0xc8, 0xfa, 0x37, 0x42, 0x59, 0xd7, 0x05, 0x59, + 0xdf, 0x3b, 0x12, 0xd5, 0xe3, 0x15, 0xf3, 0x97, 0xf2, 0xf0, 0x38, 0xca, 0x21, 0x53, 0x04, 0xda, + 0x99, 0x95, 0xad, 0x8e, 0x8e, 0x5d, 0xcf, 0x70, 0x3c, 0xe1, 0x48, 0x7b, 0xdf, 0xfc, 0x36, 0x97, + 0xc1, 0xfc, 0x56, 0x19, 0x3a, 0xbf, 0x45, 0xef, 0xe2, 0xad, 0xb4, 0x8b, 0x22, 0xb2, 0xe5, 0x04, + 0x0c, 0x62, 0x6a, 0x18, 0xd7, 0xa2, 0x42, 0xf3, 0xed, 0x9b, 0x05, 0x94, 0x57, 0x8e, 0x5c, 0x42, + 0x3a, 0xc4, 0x7f, 0x7d, 0xbc, 0xe6, 0x74, 0x9e, 0xff, 0x26, 0xda, 0x7e, 0xa5, 0x4e, 0xa6, 0xf3, + 0xa0, 0x57, 0x4c, 0xc3, 0x0c, 0xe9, 0x72, 0xd6, 0x4d, 0xeb, 0xb2, 0x3f, 0x36, 0xce, 0xd5, 0xf1, + 0xd5, 0xca, 0x9e, 0xd1, 0xed, 0x62, 0x6b, 0x17, 0xa3, 0x47, 0x04, 0x03, 0xdd, 0xe8, 0xf5, 0xea, + 0xd1, 0x56, 0x51, 0xf0, 0xaa, 0x3d, 0x00, 0x05, 0xb7, 0x6d, 0xf7, 0x30, 0x11, 0xd4, 0x02, 0xe7, + 0x5c, 0x22, 0x2e, 0x77, 0x95, 0x0f, 0xbc, 0xbd, 0x45, 0x52, 0x56, 0xb9, 0x67, 0x36, 0xfd, 0x1f, + 0x74, 0xfa, 0x1f, 0x1b, 0x27, 0xff, 0x72, 0x60, 0x67, 0x9c, 0x4b, 0xe8, 0x8c, 0x43, 0xc6, 0x17, + 0x79, 0xa6, 0x63, 0x56, 0x32, 0x6e, 0x81, 0xd9, 0x76, 0x90, 0x25, 0x3c, 0x3b, 0xc3, 0x27, 0xa1, + 0xbf, 0x48, 0xd5, 0x5d, 0x4b, 0x15, 0x9e, 0x4e, 0xab, 0xf0, 0x98, 0xed, 0xc5, 0x33, 0x70, 0xaa, + 0xd5, 0x68, 0x6c, 0x6f, 0x94, 0xeb, 0x0f, 0x47, 0x67, 0xd6, 0x77, 0xd0, 0xab, 0xf3, 0xb0, 0xd0, + 0xb4, 0xbb, 0x57, 0x70, 0x84, 0x73, 0x4d, 0x70, 0xca, 0xe2, 0xe5, 0x94, 0x3b, 0x24, 0x27, 0xed, + 0x2c, 0x14, 0x0d, 0xcb, 0xbd, 0x8a, 0x03, 0x1b, 0x9e, 0xbd, 0x31, 0x18, 0x7f, 0x85, 0xef, 0x08, + 0x74, 0x11, 0xc6, 0xfb, 0x86, 0x48, 0x52, 0xe4, 0x2a, 0x06, 0xc8, 0xf3, 0x30, 0xe7, 0xd2, 0x0d, + 0xe3, 0x16, 0xe7, 0x17, 0x20, 0xa4, 0x11, 0x16, 0xa9, 0xc7, 0x82, 0xca, 0x58, 0x24, 0x6f, 0xe8, + 0x0d, 0x61, 0xff, 0xb1, 0x25, 0x40, 0x5c, 0x3e, 0x0a, 0x63, 0xe9, 0x40, 0x7e, 0xed, 0xb8, 0x67, + 0xe2, 0xe7, 0xe0, 0x34, 0x6b, 0xf6, 0xdb, 0x95, 0xb5, 0xf2, 0xfa, 0x7a, 0xb5, 0xbe, 0x5a, 0xdd, + 0xae, 0x2d, 0xd3, 0x0d, 0xa8, 0x28, 0xa5, 0xdc, 0x6a, 0x55, 0x37, 0x36, 0x5b, 0xcd, 0xed, 0xea, + 0xf3, 0x2a, 0xd5, 0xea, 0x32, 0x71, 0x8b, 0x24, 0xe7, 0x9a, 0x02, 0x07, 0xd6, 0x72, 0xbd, 0x79, + 0xb1, 0xaa, 0x97, 0xf6, 0xce, 0x97, 0x61, 0x96, 0x1b, 0x28, 0x7c, 0xee, 0x96, 0xf1, 0x8e, 0x71, + 0xd0, 0x65, 0x36, 0x75, 0xe9, 0x84, 0xcf, 0x1d, 0x91, 0x4d, 0xc3, 0xea, 0x5e, 0x2b, 0xe5, 0xb4, + 0x12, 0xcc, 0xf1, 0x63, 0x42, 0x49, 0x41, 0x6f, 0xbf, 0x09, 0x66, 0x2e, 0xda, 0xce, 0x65, 0xe2, + 0xcb, 0x87, 0xde, 0x47, 0x63, 0xdb, 0x04, 0xa7, 0x84, 0x39, 0x03, 0xec, 0xb5, 0xf2, 0x1e, 0x23, + 0x01, 0xb5, 0xc5, 0xa1, 0x27, 0x81, 0x6f, 0x81, 0xd9, 0xab, 0x41, 0xee, 0xa8, 0xa5, 0x73, 0x49, + 0xe8, 0x67, 0xe4, 0x7c, 0x40, 0x86, 0x17, 0x99, 0xbd, 0x8f, 0xc2, 0xdb, 0x14, 0x28, 0xae, 0x62, + 0xaf, 0xdc, 0xed, 0xf2, 0x72, 0x7b, 0x95, 0xf4, 0xe9, 0x2e, 0xa1, 0x12, 0xe5, 0x6e, 0x37, 0xbe, + 0x51, 0x71, 0x02, 0x0a, 0x4e, 0x21, 0x08, 0x69, 0x92, 0xbe, 0x93, 0x43, 0x0a, 0xcc, 0x5e, 0x62, + 0xbf, 0xa6, 0x86, 0x7e, 0x0e, 0x6f, 0xe2, 0xcc, 0xa4, 0xa7, 0x45, 0x71, 0x8d, 0x72, 0xc9, 0xfe, + 0x12, 0x41, 0x3e, 0xed, 0x21, 0x98, 0x3a, 0x70, 0x71, 0xc5, 0x70, 0x83, 0xa1, 0x4d, 0xac, 0x69, + 0xe3, 0xd2, 0x23, 0xb8, 0xed, 0x2d, 0xd6, 0xf6, 0xfd, 0x89, 0xcf, 0x16, 0xcd, 0x18, 0x86, 0x0a, + 0x62, 0xef, 0x7a, 0x40, 0xc1, 0x9f, 0x3c, 0x5e, 0x35, 0xbd, 0xbd, 0xca, 0x9e, 0xe1, 0xb1, 0x1d, + 0x8b, 0xf0, 0x1d, 0xbd, 0x7c, 0x04, 0x38, 0x13, 0x77, 0xf8, 0x63, 0x0f, 0x89, 0xa6, 0x06, 0x71, + 0x0c, 0xdb, 0xf2, 0xa3, 0x80, 0xf8, 0x37, 0x0a, 0xe4, 0x1b, 0x3d, 0x6c, 0x49, 0x9f, 0x88, 0x0a, + 0x65, 0xab, 0xf4, 0xc9, 0xf6, 0x0d, 0xf2, 0x1e, 0x82, 0x61, 0xa5, 0xfd, 0x92, 0x63, 0x24, 0x7b, + 0x17, 0xe4, 0x4d, 0x6b, 0xc7, 0x66, 0x96, 0xed, 0x8d, 0x31, 0xb6, 0x4e, 0xcd, 0xda, 0xb1, 0x75, + 0x92, 0x51, 0xd6, 0x39, 0x30, 0xa9, 0xec, 0xec, 0xc5, 0xfd, 0xb7, 0xd3, 0x50, 0xa4, 0xea, 0x8c, + 0x5e, 0xa9, 0x82, 0x5a, 0xee, 0x74, 0x62, 0x04, 0xaf, 0x1c, 0x12, 0xbc, 0x4d, 0x7e, 0x0b, 0x31, + 0x09, 0xdf, 0xc5, 0x80, 0x36, 0x92, 0x7d, 0x3b, 0x6b, 0x52, 0xe5, 0x4e, 0x27, 0xde, 0x0f, 0x39, + 0x2c, 0x50, 0x11, 0x0b, 0xe4, 0x5b, 0xb8, 0x2a, 0xd7, 0xc2, 0x53, 0x0f, 0x04, 0xb1, 0xfc, 0x65, + 0x0f, 0xd1, 0x3f, 0x28, 0x30, 0xb5, 0x6e, 0xba, 0x9e, 0x8f, 0x4d, 0x59, 0x06, 0x9b, 0x9b, 0x60, + 0x26, 0x10, 0x8d, 0xdf, 0xe5, 0xf9, 0xfd, 0x79, 0x94, 0x20, 0xce, 0xc4, 0x1f, 0x14, 0xd1, 0x79, + 0x46, 0x72, 0xed, 0x19, 0x17, 0xf1, 0x27, 0x4d, 0xa2, 0x62, 0x95, 0xfe, 0x62, 0x7f, 0x2e, 0x14, + 0xf8, 0x86, 0x20, 0xf0, 0x7b, 0x46, 0x29, 0x32, 0x7b, 0xa1, 0xff, 0x81, 0x02, 0xe0, 0x97, 0xcd, + 0x8e, 0xf3, 0x3d, 0x49, 0x38, 0xa4, 0x9f, 0x20, 0xdd, 0x57, 0xf3, 0xd2, 0xdd, 0x10, 0xa5, 0xfb, + 0x8d, 0xc3, 0xab, 0x9a, 0x74, 0x6c, 0x4f, 0x2b, 0x81, 0x6a, 0x86, 0xa2, 0xf5, 0x1f, 0xd1, 0xdb, + 0x42, 0xa1, 0x6e, 0x0a, 0x42, 0xbd, 0x6f, 0xc4, 0x92, 0xb2, 0x97, 0xeb, 0x1f, 0x2b, 0x30, 0xd5, + 0xc4, 0x9e, 0xdf, 0x4d, 0xa2, 0x0b, 0x32, 0x3d, 0x3c, 0xd7, 0xb6, 0x15, 0xc9, 0xb6, 0xfd, 0x95, + 0x9c, 0x6c, 0xb0, 0x9f, 0x48, 0x32, 0x8c, 0xa7, 0x98, 0xd5, 0x87, 0x37, 0x49, 0x05, 0xfb, 0x19, + 0x46, 0x2d, 0x7b, 0xe9, 0xbe, 0x55, 0x09, 0xdd, 0x2d, 0xc4, 0xd3, 0x36, 0xbc, 0x59, 0x9c, 0x3b, + 0x6c, 0x16, 0xcb, 0x9f, 0xb6, 0xe1, 0xeb, 0x18, 0xef, 0x3d, 0x90, 0xda, 0xd8, 0x18, 0xc3, 0xc6, + 0xfe, 0x28, 0xf2, 0x7a, 0xa1, 0x0a, 0x45, 0xb6, 0x03, 0xf0, 0x40, 0xf2, 0x0e, 0xc0, 0xf0, 0xa9, + 0xc5, 0x7b, 0x47, 0x30, 0xe5, 0x92, 0x96, 0xe5, 0x43, 0x36, 0x14, 0x8e, 0x8d, 0x3b, 0xa1, 0x40, + 0xa2, 0x91, 0xb2, 0x71, 0x2e, 0xf2, 0xc9, 0x08, 0x48, 0x54, 0xfd, 0xaf, 0x3a, 0xcd, 0x94, 0x1a, + 0x85, 0x31, 0xac, 0xe4, 0x8f, 0x82, 0xc2, 0x97, 0x34, 0x80, 0xcd, 0x83, 0x4b, 0x5d, 0xd3, 0xdd, + 0x33, 0xad, 0x5d, 0xf4, 0x0e, 0x05, 0xe6, 0xd8, 0x2b, 0x0d, 0xaa, 0x99, 0x68, 0xfe, 0xc5, 0x1a, + 0x05, 0x25, 0x50, 0x0f, 0x1c, 0x93, 0x2d, 0x03, 0xf8, 0x8f, 0xda, 0xfd, 0xa1, 0x7b, 0x56, 0xbe, + 0x2f, 0x9c, 0x82, 0x2f, 0x86, 0x88, 0x83, 0x45, 0xae, 0xf4, 0xc8, 0x4d, 0x8b, 0x8f, 0x9c, 0x5a, + 0x10, 0x23, 0xa7, 0x0a, 0x67, 0x2c, 0x8b, 0x7d, 0x67, 0x2c, 0x7d, 0x1c, 0x5d, 0xf3, 0xf9, 0x98, + 0xf8, 0xef, 0xa8, 0x3a, 0x79, 0xf6, 0xff, 0x78, 0xc4, 0x36, 0x2d, 0xb2, 0xa9, 0xc3, 0xdc, 0x87, + 0xa3, 0x04, 0xbe, 0xcf, 0x9b, 0x91, 0xec, 0xf3, 0x3e, 0x18, 0xcd, 0x7d, 0x6c, 0x49, 0xc3, 0x39, + 0x85, 0xe4, 0x04, 0x76, 0xf3, 0x7d, 0xec, 0xa2, 0x0f, 0x4b, 0x07, 0x57, 0xe3, 0x64, 0x9c, 0x38, + 0x8b, 0x61, 0x1c, 0x28, 0x21, 0x07, 0xdc, 0x46, 0x6e, 0x52, 0x0f, 0x3c, 0x8c, 0x7e, 0x3a, 0x5d, + 0xde, 0x1f, 0x61, 0xbd, 0x46, 0x83, 0x85, 0xe0, 0xb0, 0x6a, 0x63, 0xe9, 0xc1, 0x6a, 0xa5, 0x55, + 0xc2, 0x87, 0x0f, 0xb0, 0x92, 0xa3, 0xaa, 0xf4, 0x58, 0x6a, 0xb4, 0x26, 0x83, 0xfe, 0xbb, 0x02, + 0x45, 0x66, 0x6e, 0x3c, 0x70, 0x44, 0x08, 0xd1, 0x6b, 0x46, 0x81, 0x24, 0x31, 0x66, 0xc0, 0x6f, + 0xa5, 0x05, 0x60, 0x0c, 0x06, 0xc6, 0xc3, 0x99, 0x01, 0x80, 0xfe, 0x49, 0x81, 0xbc, 0x6f, 0x06, + 0xc9, 0x9d, 0xc8, 0xfe, 0xb8, 0xb4, 0x77, 0x33, 0x27, 0x00, 0x9f, 0x7c, 0x8c, 0x7e, 0x2f, 0xc1, + 0x4c, 0x8f, 0x66, 0x0c, 0xe3, 0x01, 0xdc, 0x2a, 0xd1, 0x19, 0x61, 0x3d, 0xfa, 0x0d, 0xbd, 0x47, + 0xca, 0x43, 0x3a, 0x99, 0x9f, 0x74, 0x70, 0x54, 0xc7, 0x71, 0x78, 0x7b, 0x07, 0xfd, 0x8b, 0x02, + 0xa0, 0x63, 0xd7, 0xee, 0x5e, 0xc1, 0x5b, 0x8e, 0x89, 0x6e, 0x8c, 0x00, 0x60, 0xcd, 0x3e, 0x17, + 0x35, 0xfb, 0x4f, 0xf2, 0x82, 0x5f, 0x15, 0x05, 0xff, 0xb4, 0x78, 0xcd, 0x0b, 0x88, 0xc7, 0x88, + 0xff, 0x39, 0x30, 0xc5, 0xe4, 0xc8, 0x6c, 0x4a, 0x39, 0xe1, 0x07, 0x3f, 0xa1, 0xf7, 0x87, 0xa2, + 0x7f, 0x50, 0x10, 0xfd, 0x33, 0x53, 0x73, 0x94, 0x0e, 0x80, 0xca, 0x08, 0x00, 0x9c, 0x84, 0xd9, + 0x00, 0x80, 0x2d, 0xbd, 0x56, 0xc2, 0xe8, 0x9d, 0x2a, 0x71, 0x93, 0xa0, 0x83, 0xdb, 0xd1, 0x7b, + 0x9a, 0x2f, 0x4a, 0x4f, 0xf6, 0x39, 0x79, 0x84, 0xe5, 0x67, 0x04, 0xd0, 0xef, 0x48, 0xcd, 0xee, + 0x25, 0x18, 0x7a, 0xac, 0xf4, 0x57, 0xe7, 0xab, 0x30, 0x2f, 0x58, 0x25, 0xda, 0x39, 0x38, 0x2d, + 0x24, 0xd0, 0xf1, 0xae, 0x53, 0x3a, 0xa1, 0x21, 0x38, 0x2b, 0x7c, 0x61, 0x2f, 0xb8, 0x53, 0xca, + 0xa1, 0xef, 0xff, 0x74, 0x2e, 0x5c, 0xef, 0x79, 0x6f, 0x9e, 0xad, 0xb4, 0x7d, 0x54, 0x0c, 0x41, + 0xd7, 0xb6, 0x2d, 0x0f, 0x3f, 0xca, 0xb9, 0xa9, 0x84, 0x09, 0x89, 0x56, 0xc3, 0x39, 0x98, 0xf2, + 0x1c, 0xde, 0x75, 0x25, 0x78, 0xe5, 0x15, 0xab, 0x20, 0x2a, 0x56, 0x1d, 0xce, 0x9b, 0x56, 0xbb, + 0x7b, 0xd0, 0xc1, 0x3a, 0xee, 0x1a, 0xbe, 0x0c, 0xdd, 0xb2, 0xbb, 0x8c, 0x7b, 0xd8, 0xea, 0x60, + 0xcb, 0xa3, 0x7c, 0x06, 0x47, 0xe0, 0x24, 0x72, 0x8a, 0xca, 0x78, 0xbf, 0xa8, 0x8c, 0x4f, 0x1a, + 0xb4, 0x84, 0x9b, 0xb0, 0xde, 0x77, 0x0f, 0x00, 0xad, 0xdb, 0x05, 0x13, 0x5f, 0x65, 0x6a, 0x78, + 0x43, 0xdf, 0xaa, 0x5f, 0x23, 0xcc, 0xa0, 0x73, 0x99, 0xd1, 0xe7, 0x42, 0xf5, 0x7b, 0xae, 0xa0, + 0x7e, 0x77, 0x4a, 0xb2, 0x90, 0x4e, 0xeb, 0x7a, 0x23, 0x68, 0xdd, 0x3c, 0xcc, 0x44, 0xbb, 0xc9, + 0xaa, 0x76, 0x03, 0x9c, 0x09, 0xdc, 0x80, 0xeb, 0xd5, 0xea, 0x72, 0x73, 0x7b, 0x6b, 0x73, 0x55, + 0x2f, 0x2f, 0x57, 0x4b, 0xe0, 0xeb, 0x27, 0xd5, 0xcb, 0xd0, 0x7b, 0x37, 0x8f, 0xfe, 0x50, 0x81, + 0x02, 0x39, 0xbf, 0x89, 0xbe, 0x75, 0x4c, 0x9a, 0xe3, 0x0a, 0x4e, 0x4f, 0xe1, 0xb8, 0x2b, 0x1f, + 0x1a, 0x9e, 0x09, 0x93, 0x70, 0x75, 0xa4, 0xd0, 0xf0, 0x09, 0x84, 0xb2, 0x9f, 0x09, 0xf9, 0x4d, + 0xb2, 0xb9, 0x67, 0x5f, 0xfd, 0x8f, 0xdc, 0x24, 0xfd, 0xfa, 0x1f, 0x73, 0x93, 0x1c, 0xc0, 0xc2, + 0xc4, 0x9b, 0xe4, 0x80, 0x76, 0x97, 0xd0, 0x4c, 0xd1, 0x0b, 0x0a, 0xe1, 0xfc, 0xef, 0xc5, 0xca, + 0x91, 0xf6, 0xbe, 0xca, 0x30, 0x6f, 0x5a, 0x1e, 0x76, 0x2c, 0xa3, 0xbb, 0xd2, 0x35, 0x76, 0x03, + 0xfb, 0xb4, 0x7f, 0xc3, 0xa3, 0xc6, 0xe5, 0xd1, 0xc5, 0x3f, 0xb4, 0x9b, 0x01, 0x3c, 0xbc, 0xdf, + 0xeb, 0x1a, 0x5e, 0xa4, 0x7a, 0x5c, 0x0a, 0xaf, 0x7d, 0x79, 0x51, 0xfb, 0x9e, 0x0a, 0xd7, 0x51, + 0xd0, 0x5a, 0xd7, 0x7a, 0x78, 0xcb, 0x32, 0xbf, 0xfd, 0x80, 0x44, 0x2c, 0xa5, 0x3a, 0x3a, 0xe8, + 0x93, 0xb0, 0x03, 0x54, 0xec, 0xdb, 0x01, 0xfa, 0x1b, 0xe9, 0x48, 0x28, 0x41, 0xab, 0x1f, 0x12, + 0x09, 0x25, 0x6c, 0x69, 0x6a, 0x5f, 0x4b, 0x0b, 0xd7, 0x65, 0xf2, 0x12, 0xeb, 0x32, 0x3c, 0x2a, + 0x05, 0xc9, 0xf9, 0xfd, 0xeb, 0xa5, 0x42, 0xad, 0x24, 0x55, 0x23, 0xfb, 0xde, 0xeb, 0xcb, 0x2a, + 0x2c, 0xd0, 0xa2, 0x97, 0x6c, 0xfb, 0xf2, 0xbe, 0xe1, 0x5c, 0x46, 0x3f, 0x70, 0xb4, 0x7d, 0xd8, + 0xf8, 0x3d, 0x8e, 0x61, 0x2a, 0xc6, 0xab, 0x45, 0xbe, 0x4f, 0x2d, 0x3e, 0x21, 0x3d, 0xa9, 0x10, + 0xe4, 0x19, 0x54, 0x6a, 0x32, 0x1b, 0x54, 0x6f, 0x96, 0x9a, 0x63, 0xc8, 0x30, 0x98, 0x3d, 0xf0, + 0xbf, 0x19, 0x02, 0x1f, 0x8c, 0x04, 0xfc, 0xda, 0xfe, 0x38, 0x71, 0x47, 0x9f, 0x1f, 0x0d, 0xbb, + 0x80, 0xaf, 0x11, 0xb0, 0x2b, 0x81, 0x7a, 0x39, 0x74, 0x27, 0xf2, 0x1f, 0xf9, 0x0a, 0xe5, 0xb3, + 0x43, 0x33, 0x86, 0xe5, 0x89, 0xa0, 0x79, 0x5a, 0x64, 0xa1, 0xd1, 0xcb, 0x14, 0xd3, 0xcf, 0x4a, + 0xef, 0x99, 0x0d, 0x14, 0x10, 0xe5, 0x6e, 0x32, 0xad, 0x52, 0x6e, 0xc3, 0x4d, 0x9e, 0xcd, 0xec, + 0xd1, 0x7c, 0x59, 0x01, 0x66, 0x82, 0x60, 0x36, 0xe4, 0xae, 0xa5, 0x10, 0xc3, 0xb3, 0x50, 0x74, + 0xed, 0x03, 0xa7, 0x8d, 0xd9, 0x2e, 0x26, 0x7b, 0x1b, 0x61, 0xc7, 0x6d, 0x68, 0x6f, 0x7c, 0xc8, + 0xa6, 0xc8, 0xa7, 0xb6, 0x29, 0xe2, 0x2d, 0xd6, 0x24, 0x0b, 0xe0, 0xe5, 0xd2, 0x01, 0xf2, 0x05, + 0xcc, 0x9a, 0xd8, 0x7b, 0x2c, 0x1a, 0x01, 0xbf, 0x2a, 0xb5, 0x9f, 0x33, 0xa4, 0x26, 0xe9, 0x54, + 0xae, 0x31, 0x82, 0x25, 0x7b, 0x23, 0x5c, 0x1f, 0xe4, 0x60, 0x26, 0x2c, 0x31, 0x59, 0xb7, 0xf4, + 0xf5, 0x92, 0x8a, 0x5e, 0x98, 0x87, 0x12, 0x65, 0xad, 0x11, 0x5a, 0x73, 0xe8, 0x55, 0xb9, 0xe3, + 0x36, 0x59, 0xe3, 0xe7, 0xa0, 0xbf, 0xa7, 0xc8, 0x06, 0xe1, 0x15, 0x04, 0x1f, 0xd5, 0x2e, 0x46, + 0x93, 0x46, 0x68, 0x66, 0x09, 0xca, 0x87, 0x7e, 0x36, 0x27, 0x13, 0xd3, 0x57, 0x8e, 0xc5, 0x09, + 0x04, 0x60, 0xca, 0x07, 0x31, 0xc9, 0x56, 0x1c, 0x7b, 0x7f, 0xcb, 0xe9, 0xa2, 0xff, 0x5b, 0x2a, + 0x64, 0x7a, 0xcc, 0xfc, 0x40, 0x89, 0x9f, 0x1f, 0x90, 0x35, 0xe5, 0x6e, 0xb4, 0x99, 0xd5, 0x1d, + 0x61, 0xf8, 0xd6, 0x6e, 0x83, 0x05, 0xa3, 0xd3, 0xd9, 0x34, 0x76, 0x71, 0xc5, 0x9f, 0x78, 0x5b, + 0x1e, 0x8b, 0x57, 0xd4, 0x97, 0x9a, 0xd8, 0x15, 0xc9, 0x2f, 0x94, 0x0a, 0x20, 0x31, 0xf9, 0x4c, + 0x64, 0x78, 0xf3, 0x87, 0x84, 0xf6, 0x9e, 0x11, 0x45, 0x4f, 0x63, 0x6f, 0x92, 0xde, 0x52, 0x12, + 0x7c, 0x67, 0xaf, 0x59, 0xbf, 0xa4, 0xc0, 0x94, 0x2f, 0xef, 0x72, 0xa7, 0x83, 0x9e, 0x28, 0x04, + 0x19, 0x8c, 0xf5, 0x57, 0xfb, 0x1e, 0x69, 0x47, 0xc1, 0xa0, 0x86, 0x94, 0x7e, 0x0c, 0x26, 0x91, + 0x10, 0x15, 0x41, 0x88, 0x72, 0xfe, 0x80, 0x89, 0x45, 0x64, 0x2f, 0xbe, 0x8f, 0x2b, 0x30, 0x1f, + 0xcc, 0x23, 0x56, 0xb0, 0xd7, 0xde, 0x43, 0xf7, 0xc8, 0xae, 0x44, 0xb1, 0x96, 0x16, 0x6e, 0xda, + 0x76, 0xd1, 0xd7, 0x72, 0x29, 0x55, 0x5e, 0x28, 0x39, 0x66, 0x19, 0x2f, 0x95, 0x2e, 0x26, 0x11, + 0xcc, 0x5e, 0x98, 0x9f, 0x53, 0x00, 0x5a, 0x76, 0x38, 0x19, 0x3e, 0x82, 0x24, 0x7f, 0x50, 0x7a, + 0x3f, 0x97, 0x55, 0x3c, 0x2a, 0x36, 0x7d, 0xcf, 0x21, 0xe9, 0xee, 0x34, 0xac, 0xa4, 0x89, 0xb4, + 0xf5, 0x99, 0xe5, 0x83, 0x5e, 0xd7, 0x6c, 0x1b, 0x5e, 0xbf, 0x8f, 0x5e, 0xbc, 0x78, 0xc9, 0x45, + 0xa4, 0xa9, 0x8c, 0xc2, 0xb0, 0x8c, 0x18, 0x59, 0xd2, 0x70, 0x36, 0x4a, 0x10, 0xce, 0x46, 0xd2, + 0xef, 0x66, 0x08, 0xf1, 0x09, 0xa8, 0xa7, 0x0a, 0x27, 0x1b, 0x3d, 0x6c, 0x2d, 0x39, 0xd8, 0xe8, + 0xb4, 0x9d, 0x83, 0xfd, 0x4b, 0x2e, 0xef, 0x60, 0x9a, 0xac, 0xa3, 0xdc, 0xda, 0xb2, 0x22, 0xac, + 0x2d, 0xa3, 0xef, 0x56, 0x65, 0x83, 0x2b, 0x71, 0x3b, 0x20, 0x1c, 0x0f, 0x23, 0x0c, 0x75, 0xa9, + 0xdc, 0xa2, 0xfa, 0x96, 0x91, 0xf3, 0x69, 0x96, 0x91, 0xdf, 0x22, 0x15, 0xaa, 0x49, 0xaa, 0x5e, + 0x13, 0xf1, 0x6e, 0x5b, 0x68, 0x62, 0x2f, 0x06, 0xde, 0x5b, 0x61, 0xfe, 0x52, 0xf4, 0x25, 0x84, + 0x58, 0x4c, 0x1c, 0xe0, 0x73, 0xfa, 0xd6, 0xb4, 0x2b, 0x30, 0x22, 0x0b, 0x31, 0xe8, 0x86, 0x08, + 0x2a, 0x32, 0x8e, 0x6d, 0xa9, 0x96, 0x53, 0x12, 0xcb, 0xcf, 0x1e, 0x85, 0x0f, 0x2b, 0x30, 0x4b, + 0xae, 0x57, 0x5d, 0xba, 0x46, 0x8e, 0x5a, 0x4a, 0x1a, 0x25, 0x2f, 0xe3, 0xc5, 0xac, 0x41, 0xbe, + 0x6b, 0x5a, 0x97, 0x03, 0x8f, 0x44, 0xff, 0x39, 0xba, 0xac, 0x4f, 0x19, 0x70, 0x59, 0x5f, 0xb8, + 0x91, 0x11, 0x96, 0x7b, 0xa4, 0xdb, 0xa3, 0x87, 0x92, 0xcb, 0x5e, 0x8c, 0x7f, 0x95, 0x87, 0x62, + 0x13, 0x1b, 0x4e, 0x7b, 0x0f, 0xbd, 0x57, 0x19, 0x38, 0x55, 0x98, 0x16, 0xa7, 0x0a, 0x2b, 0x30, + 0xb5, 0x63, 0x76, 0x3d, 0xec, 0x50, 0x2f, 0x6d, 0xbe, 0x6b, 0xa7, 0x4d, 0x7c, 0xa9, 0x6b, 0xb7, + 0x2f, 0x2f, 0x32, 0xd3, 0x7d, 0x31, 0x08, 0xee, 0xba, 0xb8, 0x42, 0x7e, 0xd2, 0x83, 0x9f, 0x7d, + 0x83, 0xd0, 0xb5, 0x1d, 0x2f, 0xee, 0xde, 0x8e, 0x18, 0x2a, 0x4d, 0xdb, 0xf1, 0x74, 0xfa, 0xa3, + 0x0f, 0xf3, 0xce, 0x41, 0xb7, 0xdb, 0xc2, 0x8f, 0x7a, 0xc1, 0xb4, 0x2d, 0x78, 0xf7, 0x8d, 0x45, + 0x7b, 0x67, 0xc7, 0xc5, 0x74, 0xd1, 0xa0, 0xa0, 0xb3, 0x37, 0xed, 0x34, 0x14, 0xba, 0xe6, 0xbe, + 0x49, 0x27, 0x1a, 0x05, 0x9d, 0xbe, 0x68, 0x77, 0x40, 0x29, 0x9a, 0xe3, 0x50, 0x46, 0xcf, 0x15, + 0x49, 0xd3, 0x3c, 0x94, 0xee, 0xeb, 0xcc, 0x65, 0x7c, 0xcd, 0x3d, 0x37, 0x45, 0xbe, 0x93, 0x67, + 0xf1, 0x48, 0x8c, 0xcc, 0x86, 0x08, 0x95, 0x78, 0xfc, 0x0c, 0xd6, 0xc1, 0x6d, 0xdb, 0xe9, 0x04, + 0xb2, 0x89, 0x9f, 0x60, 0xb0, 0x7c, 0xe9, 0xb6, 0x31, 0x06, 0x16, 0x9e, 0xbd, 0xa6, 0xbd, 0xab, + 0xe8, 0x77, 0x9b, 0x7e, 0xd1, 0x17, 0x4d, 0x6f, 0x6f, 0x03, 0x7b, 0x06, 0xfa, 0x2b, 0x75, 0xa0, + 0xc6, 0xcd, 0xfe, 0x6f, 0x8d, 0x1b, 0xa2, 0x71, 0x34, 0xb4, 0x96, 0x77, 0xe0, 0x58, 0xbe, 0x1c, + 0x99, 0xa7, 0x2b, 0x97, 0xa2, 0xdd, 0x07, 0x37, 0x44, 0x6f, 0xc1, 0x52, 0xe9, 0x32, 0xe7, 0xfc, + 0x3a, 0xad, 0xc7, 0x67, 0xd0, 0x36, 0xe1, 0x09, 0xf4, 0xe3, 0x5a, 0x6b, 0x63, 0x7d, 0xcd, 0xdc, + 0xdd, 0xeb, 0x9a, 0xbb, 0x7b, 0x9e, 0x5b, 0xb3, 0x5c, 0x0f, 0x1b, 0x9d, 0xc6, 0x8e, 0x4e, 0x6f, + 0xdc, 0x01, 0x42, 0x47, 0x26, 0xab, 0xe8, 0xc5, 0x2d, 0x37, 0xba, 0xf1, 0x9a, 0x12, 0xd3, 0x52, + 0x9e, 0xe9, 0xb7, 0x14, 0xf7, 0xa0, 0x1b, 0x62, 0x7a, 0x53, 0x1f, 0xa6, 0x91, 0xaa, 0x1f, 0x74, + 0x49, 0x73, 0x21, 0x99, 0xd3, 0x8e, 0x73, 0x09, 0x9c, 0x64, 0xdf, 0x6c, 0xfe, 0xbf, 0x22, 0x14, + 0x56, 0x1d, 0xa3, 0xb7, 0x87, 0x5e, 0xc8, 0xf5, 0xcf, 0xe3, 0x6a, 0x13, 0xa1, 0x76, 0x2a, 0xc3, + 0xb4, 0x53, 0x1d, 0xa2, 0x9d, 0x79, 0x4e, 0x3b, 0xe3, 0x17, 0x95, 0xcf, 0xc3, 0x5c, 0xdb, 0xee, + 0x76, 0x71, 0xdb, 0x97, 0x47, 0xad, 0x43, 0x56, 0x73, 0x66, 0x74, 0x21, 0x8d, 0x04, 0xc0, 0xc6, + 0x5e, 0x93, 0xae, 0xa1, 0x53, 0xa5, 0x8f, 0x12, 0xd0, 0xab, 0x14, 0xc8, 0x57, 0x3b, 0xbb, 0x58, + 0x58, 0x67, 0xcf, 0x71, 0xeb, 0xec, 0x67, 0xa1, 0xe8, 0x19, 0xce, 0x2e, 0xf6, 0x82, 0x75, 0x02, + 0xfa, 0x16, 0xc6, 0xe5, 0x56, 0xb9, 0xb8, 0xdc, 0xdf, 0x08, 0x79, 0x5f, 0x66, 0xcc, 0x71, 0xfd, + 0x09, 0x83, 0xe0, 0x27, 0xb2, 0x5f, 0xf4, 0x4b, 0x5c, 0xf4, 0x6b, 0xad, 0x93, 0x1f, 0xfa, 0xb1, + 0x2e, 0x1c, 0xc2, 0x9a, 0x5c, 0x1e, 0xda, 0xb6, 0xad, 0xda, 0xbe, 0xb1, 0x8b, 0x59, 0x35, 0xa3, + 0x84, 0xe0, 0x6b, 0x75, 0xdf, 0x7e, 0xc4, 0x64, 0x11, 0x28, 0xa3, 0x04, 0xbf, 0x0a, 0x7b, 0x66, + 0xa7, 0x83, 0x2d, 0xd6, 0xb2, 0xd9, 0xdb, 0xf9, 0x9b, 0x21, 0xef, 0xf3, 0xe0, 0xeb, 0x8f, 0x6f, + 0x2c, 0x94, 0x4e, 0x68, 0x73, 0x7e, 0xb3, 0xa2, 0x8d, 0xb7, 0x94, 0x13, 0xd7, 0x54, 0x65, 0xfc, + 0x7a, 0x68, 0xe5, 0x06, 0x37, 0xae, 0xa7, 0x40, 0xc1, 0xb2, 0x3b, 0x78, 0xe8, 0x20, 0x44, 0x73, + 0x69, 0xcf, 0x80, 0x02, 0xee, 0xf8, 0xbd, 0x82, 0x4a, 0xb2, 0xdf, 0x9c, 0x2c, 0x4b, 0x9d, 0x66, + 0x4e, 0xe7, 0x3c, 0x34, 0x88, 0xdb, 0xec, 0x1b, 0xe0, 0xf7, 0x4d, 0xc1, 0x49, 0xda, 0x07, 0x34, + 0x0f, 0x2e, 0xf9, 0xa4, 0x2e, 0x61, 0xf4, 0xa6, 0xc1, 0x03, 0xd7, 0x49, 0x51, 0xd9, 0x4f, 0x43, + 0xc1, 0x3d, 0xb8, 0x14, 0x1a, 0xa1, 0xf4, 0x85, 0x6f, 0xba, 0xca, 0x58, 0x86, 0x33, 0x75, 0xd4, + 0xe1, 0x4c, 0x18, 0x9a, 0xd4, 0xa0, 0xf1, 0x47, 0x03, 0x19, 0x3d, 0x72, 0x11, 0x0c, 0x64, 0x83, + 0x86, 0xa1, 0x73, 0x30, 0x65, 0xec, 0x78, 0xd8, 0x89, 0xcc, 0x44, 0xf6, 0xea, 0x0f, 0x95, 0x97, + 0xf0, 0x8e, 0xed, 0xf8, 0x62, 0xa1, 0x61, 0xd9, 0xc3, 0x77, 0xae, 0xe5, 0x82, 0xb0, 0x43, 0x76, + 0x27, 0x9c, 0xb2, 0xec, 0x65, 0xdc, 0x63, 0x72, 0xa6, 0x28, 0xce, 0x93, 0x16, 0x70, 0xf8, 0xc3, + 0xa1, 0xae, 0x64, 0xe1, 0x70, 0x57, 0x82, 0x3e, 0x99, 0x76, 0xce, 0xdc, 0x07, 0xf4, 0xd8, 0x2c, + 0x34, 0xed, 0xd9, 0x30, 0xd7, 0x61, 0x3e, 0x5c, 0x6d, 0x33, 0x6c, 0x25, 0xb1, 0xff, 0x09, 0x99, + 0x23, 0x45, 0xca, 0xf3, 0x8a, 0xb4, 0x0a, 0xd3, 0xe4, 0x70, 0xb4, 0xaf, 0x49, 0x85, 0x3e, 0x9f, + 0x79, 0x32, 0xad, 0x0b, 0x2b, 0xc5, 0x89, 0x6d, 0xb1, 0xc2, 0x7e, 0xd1, 0xc3, 0x9f, 0xd3, 0xcd, + 0xbe, 0x93, 0x25, 0x94, 0x7d, 0x73, 0xfc, 0xb9, 0x22, 0xdc, 0x50, 0x71, 0x6c, 0xd7, 0x25, 0x87, + 0x64, 0xfa, 0x1b, 0xe6, 0x4f, 0x2b, 0xc2, 0x0d, 0x1d, 0x8f, 0xe9, 0xe6, 0x37, 0xa8, 0x41, 0x4d, + 0xae, 0x69, 0x7c, 0x51, 0x3a, 0xac, 0x4c, 0xb8, 0xff, 0x10, 0x23, 0xf4, 0xff, 0x18, 0x8d, 0xe4, + 0x5d, 0x39, 0x99, 0x48, 0x37, 0x29, 0x65, 0x95, 0x7d, 0x73, 0xf9, 0xac, 0x02, 0x37, 0xf6, 0x73, + 0xb3, 0x65, 0xb9, 0x61, 0x83, 0x79, 0xfc, 0x90, 0xf6, 0x22, 0x46, 0x46, 0x49, 0xbc, 0x1b, 0x33, + 0xa6, 0xee, 0x5c, 0x69, 0x31, 0x8b, 0x25, 0xd1, 0x91, 0x9b, 0xa4, 0xbb, 0x31, 0x53, 0x93, 0xcf, + 0x5e, 0xb8, 0xbf, 0x97, 0x87, 0x93, 0xab, 0x8e, 0x7d, 0xd0, 0x73, 0xa3, 0x1e, 0xe8, 0x4f, 0x07, + 0x6f, 0xb8, 0x16, 0x65, 0x4c, 0x83, 0x5b, 0x60, 0xd6, 0x61, 0xd6, 0x5c, 0xb4, 0xfd, 0xca, 0x27, + 0xf1, 0xbd, 0x97, 0x7a, 0x94, 0xde, 0x2b, 0xea, 0x67, 0xf2, 0x42, 0x3f, 0xd3, 0xdf, 0x73, 0x14, + 0x06, 0xf4, 0x1c, 0x7f, 0xa2, 0xa4, 0x1c, 0x54, 0xfb, 0x44, 0x14, 0xd3, 0x5f, 0x54, 0xa0, 0xb8, + 0x4b, 0x32, 0xb2, 0xee, 0xe2, 0xc9, 0x72, 0x35, 0x23, 0xc4, 0x75, 0xf6, 0x6b, 0x24, 0x57, 0x95, + 0xd7, 0xe1, 0x54, 0x03, 0x5c, 0x32, 0xb7, 0xd9, 0x2b, 0xd5, 0x1b, 0xf2, 0x30, 0x17, 0x96, 0x5e, + 0xeb, 0xb8, 0xe8, 0x65, 0x83, 0x35, 0x6a, 0x5e, 0x46, 0xa3, 0x0e, 0xad, 0x33, 0x87, 0xa3, 0x8e, + 0xca, 0x8d, 0x3a, 0x03, 0x47, 0x97, 0xb9, 0x98, 0xd1, 0x05, 0xbd, 0x40, 0x95, 0xbd, 0xe3, 0x4a, + 0xec, 0x5a, 0x49, 0x6d, 0x1e, 0xcb, 0x83, 0x85, 0xe4, 0x4d, 0x5b, 0xc3, 0x6b, 0x95, 0xbd, 0x92, + 0x7c, 0x40, 0x81, 0x53, 0x87, 0x3b, 0xf3, 0xaf, 0x13, 0xbd, 0xd0, 0xfc, 0x3a, 0xb9, 0xa1, 0x17, + 0x1a, 0x79, 0x13, 0x37, 0xe9, 0x12, 0xc3, 0x94, 0x08, 0xf6, 0xde, 0xf0, 0x4e, 0x5c, 0x2e, 0x10, + 0x89, 0x24, 0xd1, 0xec, 0x05, 0xf8, 0x43, 0x2a, 0xcc, 0x34, 0xb1, 0xb7, 0x6e, 0x5c, 0xb3, 0x0f, + 0x3c, 0x64, 0xc8, 0x6e, 0xcf, 0x3d, 0x0b, 0x8a, 0x5d, 0xf2, 0x0b, 0xe9, 0x60, 0xf8, 0xb0, 0xa0, + 0xfc, 0xfe, 0x16, 0xf1, 0xfd, 0xa1, 0xa4, 0x75, 0x96, 0x5f, 0x8c, 0x0f, 0x23, 0xb3, 0x3b, 0x1a, + 0x72, 0x37, 0x96, 0xad, 0x9d, 0x54, 0x7b, 0xa7, 0x71, 0x45, 0x67, 0x0f, 0xcb, 0x77, 0xab, 0x30, + 0xdf, 0xc4, 0x5e, 0xcd, 0x5d, 0x31, 0xae, 0xd8, 0x8e, 0xe9, 0x61, 0xfe, 0xee, 0xd0, 0x64, 0x68, + 0x6e, 0x06, 0x30, 0xc3, 0xdf, 0x58, 0xd4, 0x2a, 0x2e, 0x05, 0xfd, 0x6c, 0x5a, 0x47, 0x21, 0x81, + 0x8f, 0xb1, 0x80, 0x90, 0xca, 0xc7, 0x22, 0xa9, 0xf8, 0xec, 0x81, 0xf8, 0x8c, 0xc2, 0x80, 0x28, + 0x3b, 0xed, 0x3d, 0xf3, 0x0a, 0xee, 0xa4, 0x04, 0x22, 0xf8, 0x2d, 0x02, 0x22, 0x24, 0x94, 0xda, + 0x7d, 0x45, 0xe0, 0x63, 0x1c, 0xee, 0x2b, 0x49, 0x04, 0x27, 0x12, 0x78, 0xca, 0xef, 0x7a, 0xd8, + 0x7a, 0xe6, 0x03, 0xb2, 0x62, 0x8d, 0x4c, 0x36, 0x85, 0x37, 0xd9, 0x46, 0xea, 0x58, 0x68, 0xd9, + 0xc3, 0x74, 0x3a, 0x9f, 0x45, 0xc7, 0x32, 0xb0, 0xe8, 0xec, 0x85, 0xfe, 0x1e, 0x15, 0xce, 0x84, + 0x11, 0x59, 0x9a, 0xd8, 0x5b, 0x36, 0xdc, 0xbd, 0x4b, 0xb6, 0xe1, 0x74, 0x50, 0x65, 0x0c, 0x47, + 0x02, 0xd1, 0xa7, 0x79, 0x10, 0xea, 0x22, 0x08, 0x03, 0x5d, 0x45, 0x07, 0xf2, 0x32, 0x8e, 0x4e, + 0x26, 0xd1, 0x9b, 0xf5, 0x17, 0x42, 0xb0, 0xbe, 0x49, 0x00, 0xeb, 0xfe, 0x51, 0x59, 0xcc, 0x1e, + 0xb8, 0x1f, 0xa5, 0x23, 0x02, 0xe7, 0xd5, 0xfc, 0xb0, 0x2c, 0x60, 0x31, 0x5e, 0xad, 0x6a, 0xac, + 0x57, 0xeb, 0x48, 0x63, 0xc4, 0x50, 0x8f, 0xe4, 0x6c, 0xc7, 0x88, 0x63, 0xf4, 0x36, 0x7e, 0x87, + 0x0a, 0x25, 0x12, 0x92, 0x8b, 0xf3, 0xf8, 0xe6, 0x23, 0x5c, 0x27, 0xa3, 0x73, 0xc8, 0xbb, 0x7c, + 0x2a, 0xad, 0x77, 0x39, 0x7a, 0x7b, 0x5a, 0x1f, 0xf2, 0x7e, 0x6e, 0xc7, 0x82, 0x58, 0x2a, 0x17, + 0xf1, 0x21, 0x1c, 0x64, 0x0f, 0xda, 0x7f, 0x55, 0x01, 0xfc, 0x06, 0xcd, 0xce, 0x3e, 0x3c, 0x4f, + 0x16, 0xae, 0xbb, 0x78, 0xbf, 0x7a, 0x1f, 0xa8, 0x33, 0x7d, 0x40, 0x51, 0x8a, 0xd1, 0xa9, 0x8a, + 0x37, 0xa5, 0xf5, 0xad, 0x8c, 0xb8, 0x1a, 0x0b, 0x2c, 0xa9, 0xbc, 0x2d, 0x63, 0xcb, 0xce, 0x1e, + 0x90, 0xff, 0xa6, 0x40, 0xa1, 0x65, 0x37, 0xb1, 0x77, 0x74, 0x53, 0x20, 0xf5, 0xb9, 0x7e, 0x52, + 0xee, 0x38, 0xce, 0xf5, 0x0f, 0x22, 0x94, 0xbd, 0xe8, 0xde, 0xad, 0xc0, 0x5c, 0xcb, 0xae, 0x84, + 0x8b, 0x53, 0xf2, 0xbe, 0xaa, 0xf2, 0xf7, 0x74, 0x87, 0x15, 0x8c, 0x8a, 0x39, 0xd2, 0x3d, 0xdd, + 0xc3, 0xe9, 0x65, 0x2f, 0xb7, 0x7b, 0xe0, 0xe4, 0x96, 0xd5, 0xb1, 0x75, 0xdc, 0xb1, 0xd9, 0x4a, + 0xb7, 0xa6, 0x41, 0xfe, 0xc0, 0xea, 0xd8, 0x84, 0xe5, 0x82, 0x4e, 0x9e, 0xfd, 0x34, 0x07, 0x77, + 0x6c, 0xe6, 0x1b, 0x40, 0x9e, 0xd1, 0x17, 0x55, 0xc8, 0xfb, 0xff, 0xca, 0x8b, 0xfa, 0x1d, 0x6a, + 0xca, 0x48, 0x05, 0x3e, 0xf9, 0xb1, 0x58, 0x42, 0x0f, 0x70, 0x6b, 0xff, 0xd4, 0x83, 0xf5, 0x09, + 0x71, 0xe5, 0x71, 0xa2, 0x88, 0xd6, 0xfc, 0xb5, 0x73, 0x30, 0x75, 0xa9, 0x6b, 0xb7, 0x2f, 0x47, + 0x07, 0xea, 0xd9, 0xab, 0x76, 0x07, 0x14, 0x1c, 0xc3, 0xda, 0xc5, 0x6c, 0x4f, 0xe1, 0x74, 0x5f, + 0x5f, 0x48, 0xbc, 0x5e, 0x74, 0x9a, 0x05, 0xbd, 0x3d, 0x4d, 0x8c, 0x84, 0x01, 0x95, 0x4f, 0xa7, + 0x0f, 0xcb, 0x23, 0x9c, 0x2c, 0x2b, 0xc1, 0x5c, 0xa5, 0x4c, 0x6f, 0xc4, 0xdf, 0x68, 0x5c, 0xa8, + 0x96, 0x54, 0x02, 0xb3, 0x2f, 0x93, 0x0c, 0x61, 0xf6, 0xc9, 0xff, 0x87, 0x85, 0x79, 0x40, 0xe5, + 0x8f, 0x03, 0xe6, 0x8f, 0x2b, 0x30, 0xbf, 0x6e, 0xba, 0x5e, 0x9c, 0xb7, 0x7f, 0x42, 0x44, 0xde, + 0x97, 0xa7, 0x35, 0x95, 0x85, 0x72, 0xa4, 0x43, 0xf1, 0xa6, 0x32, 0x87, 0x93, 0x8a, 0x98, 0xcc, + 0xb1, 0x14, 0xc2, 0x01, 0xbd, 0x97, 0x5a, 0x5a, 0x92, 0xa9, 0x0d, 0xa5, 0xa8, 0x90, 0xc9, 0x1b, + 0x4a, 0xb1, 0x65, 0x67, 0x2f, 0xdf, 0x2f, 0x2a, 0x70, 0xca, 0x2f, 0x3e, 0x69, 0x59, 0x2a, 0x5e, + 0xcc, 0x43, 0x97, 0xa5, 0x52, 0xaf, 0x8c, 0x1f, 0xe2, 0x65, 0x1c, 0x2b, 0xe3, 0xc3, 0x88, 0x4e, + 0x58, 0xcc, 0x31, 0xcb, 0xb0, 0xc3, 0xc4, 0x9c, 0xb0, 0x0c, 0x3b, 0xba, 0x98, 0x93, 0x97, 0x62, + 0x47, 0x14, 0xf3, 0xb1, 0x2d, 0xb0, 0xfe, 0xa4, 0x1a, 0x8a, 0x39, 0x76, 0x6d, 0x23, 0x41, 0xcc, + 0xa9, 0x4f, 0xec, 0xa2, 0x77, 0x8e, 0x28, 0xf8, 0x31, 0xaf, 0x6f, 0x8c, 0x02, 0xd3, 0x31, 0xae, + 0x71, 0xfc, 0x98, 0x0a, 0x0b, 0x8c, 0x8b, 0xc1, 0x53, 0xe6, 0x04, 0x8c, 0x52, 0x4f, 0x99, 0x53, + 0x9f, 0x01, 0x12, 0x39, 0x9b, 0xfc, 0x19, 0xa0, 0xc4, 0xf2, 0xb3, 0x07, 0xe7, 0x2f, 0xf3, 0x70, + 0xd6, 0x67, 0x61, 0xc3, 0xee, 0x98, 0x3b, 0xd7, 0x28, 0x17, 0x17, 0x8c, 0xee, 0x01, 0x76, 0xd1, + 0xfb, 0x14, 0x59, 0x94, 0xfe, 0x13, 0x80, 0xdd, 0xc3, 0x0e, 0x8d, 0xb4, 0xc6, 0x80, 0xba, 0x2f, + 0xae, 0xb2, 0x87, 0x4b, 0x0a, 0x2f, 0xa8, 0x69, 0x04, 0x44, 0x74, 0x8e, 0x9e, 0x6f, 0x15, 0xce, + 0x84, 0x5f, 0xfa, 0x1d, 0x3c, 0x72, 0x87, 0x1d, 0x3c, 0x6e, 0x07, 0xd5, 0xe8, 0x74, 0x42, 0xa8, + 0xfa, 0x37, 0xb3, 0x49, 0x99, 0xba, 0x9f, 0xc5, 0xcf, 0xe9, 0xe2, 0xe8, 0x68, 0x5e, 0x4c, 0x4e, + 0x17, 0x7b, 0xda, 0x22, 0x14, 0xe9, 0xad, 0xdb, 0xe1, 0x8a, 0xfe, 0xe0, 0xcc, 0x2c, 0x97, 0x68, + 0xda, 0x35, 0x44, 0x35, 0xbc, 0x27, 0x95, 0x64, 0x06, 0xf5, 0xd3, 0x91, 0x9d, 0xac, 0x0b, 0x0a, + 0xf6, 0x9c, 0x91, 0x29, 0x4f, 0x66, 0x37, 0xac, 0xdc, 0xeb, 0x75, 0xaf, 0xb5, 0x58, 0xf0, 0x95, + 0x54, 0xbb, 0x61, 0x5c, 0x0c, 0x17, 0xa5, 0x3f, 0x86, 0x4b, 0xfa, 0xdd, 0x30, 0x81, 0x8f, 0x71, + 0xec, 0x86, 0x25, 0x11, 0xcc, 0x5e, 0xb4, 0xbf, 0x31, 0x4d, 0xad, 0x66, 0x76, 0x5f, 0xc0, 0x27, + 0x07, 0x7b, 0x56, 0x83, 0xe8, 0xec, 0x32, 0xe8, 0x2a, 0x81, 0xc4, 0x7b, 0x52, 0xb4, 0x67, 0x40, + 0x71, 0xc7, 0x76, 0xf6, 0x8d, 0x60, 0xe3, 0xbe, 0xff, 0xa4, 0x08, 0x8b, 0xd1, 0xbf, 0x42, 0xf2, + 0xe8, 0x2c, 0xaf, 0x3f, 0x1f, 0x79, 0xbe, 0xd9, 0x63, 0x91, 0xce, 0xfc, 0x47, 0xed, 0x56, 0x98, + 0x67, 0xd1, 0x19, 0xeb, 0xd8, 0xf5, 0x70, 0x87, 0x45, 0xac, 0x10, 0x13, 0xb5, 0xf3, 0x30, 0xc7, + 0x12, 0x56, 0xcc, 0x2e, 0x76, 0x59, 0xd0, 0x0a, 0x21, 0x4d, 0x3b, 0x0b, 0x45, 0xd3, 0x7d, 0xd0, + 0xb5, 0x2d, 0xe2, 0xff, 0x3f, 0xad, 0xb3, 0x37, 0xed, 0x76, 0x38, 0xc9, 0xf2, 0x85, 0xc6, 0x2a, + 0x3d, 0xb0, 0xd3, 0x9f, 0xec, 0xab, 0x96, 0x65, 0x6f, 0x3a, 0xf6, 0xae, 0x83, 0x5d, 0x97, 0x9c, + 0x9a, 0x9a, 0xd6, 0xb9, 0x14, 0xed, 0x61, 0x38, 0xd5, 0x35, 0xad, 0xcb, 0x2e, 0x89, 0xe2, 0xbb, + 0xc2, 0xdc, 0xc6, 0xe6, 0x06, 0x44, 0xd7, 0xe6, 0x1a, 0x1b, 0x93, 0x03, 0xff, 0x8b, 0x7e, 0x98, + 0x8a, 0x76, 0x07, 0x94, 0x18, 0x37, 0x4b, 0x46, 0xfb, 0x32, 0xf9, 0xce, 0xdc, 0x51, 0x0f, 0xa5, + 0xa3, 0x57, 0xe6, 0x60, 0x4e, 0xf8, 0xd9, 0x00, 0x2d, 0xe8, 0xf2, 0xdc, 0x8b, 0x7b, 0xa6, 0x87, + 0xfd, 0x82, 0xd9, 0x39, 0x96, 0xa7, 0x0d, 0x61, 0x4c, 0x3f, 0xf4, 0xa3, 0x3e, 0x80, 0x98, 0x0f, + 0x00, 0xed, 0xcc, 0x88, 0xd7, 0x98, 0xcb, 0xec, 0x50, 0x21, 0x0d, 0x3d, 0x1f, 0xb4, 0xc3, 0xd4, + 0x38, 0x0f, 0x8f, 0x5c, 0x3a, 0x0f, 0x0f, 0x5f, 0x26, 0x46, 0xb7, 0x6b, 0x5f, 0xc5, 0x9d, 0x90, + 0x2c, 0xd3, 0xc3, 0x43, 0xe9, 0xe8, 0x53, 0xa3, 0xcc, 0xf9, 0x52, 0x5f, 0x6b, 0xe1, 0x37, 0xa0, + 0x83, 0x76, 0x1b, 0xe3, 0x0e, 0x3b, 0x94, 0x16, 0xbc, 0xa6, 0xbc, 0xf0, 0x22, 0xf5, 0x0c, 0xf1, + 0x98, 0x6e, 0xbc, 0xf8, 0xb5, 0x33, 0x50, 0xa4, 0xb7, 0xc7, 0xa1, 0x57, 0x2e, 0x0c, 0xec, 0x47, + 0x16, 0xc4, 0x7e, 0x64, 0x0b, 0xe6, 0x2c, 0xdb, 0x2f, 0x6e, 0xd3, 0x70, 0x8c, 0x7d, 0x37, 0x69, + 0x01, 0x98, 0xd2, 0x0d, 0x47, 0xfb, 0x3a, 0xf7, 0xdb, 0xda, 0x09, 0x5d, 0x20, 0xa3, 0xfd, 0x1f, + 0x70, 0xf2, 0x12, 0x0b, 0xde, 0xe0, 0x32, 0xca, 0x4a, 0xbc, 0x7b, 0x64, 0x1f, 0xe5, 0x25, 0xf1, + 0xcf, 0xb5, 0x13, 0x7a, 0x3f, 0x31, 0xed, 0x5b, 0x60, 0xc1, 0x7f, 0xed, 0xd8, 0x57, 0x03, 0xc6, + 0xd5, 0x78, 0x1b, 0xb1, 0x8f, 0xfc, 0x86, 0xf0, 0xe3, 0xda, 0x09, 0xbd, 0x8f, 0x94, 0xd6, 0x00, + 0xd8, 0xf3, 0xf6, 0xbb, 0x8c, 0x70, 0x3e, 0x5e, 0x25, 0xfb, 0x08, 0xaf, 0x85, 0x3f, 0xad, 0x9d, + 0xd0, 0x39, 0x12, 0xda, 0x3a, 0xcc, 0x78, 0x8f, 0x7a, 0x8c, 0x5e, 0x21, 0xde, 0x2f, 0xa1, 0x8f, + 0x5e, 0x2b, 0xf8, 0x67, 0xed, 0x84, 0x1e, 0x11, 0xd0, 0x6a, 0x30, 0xdd, 0xbb, 0xc4, 0x88, 0x15, + 0xe3, 0xfb, 0xb2, 0x3e, 0x62, 0x9b, 0x97, 0x42, 0x5a, 0xe1, 0xef, 0x3e, 0x63, 0x6d, 0xf7, 0x0a, + 0xa3, 0x35, 0x25, 0xcd, 0x58, 0x25, 0xf8, 0xc7, 0x67, 0x2c, 0x24, 0xa0, 0xd5, 0x60, 0xc6, 0xb5, + 0x8c, 0x9e, 0xbb, 0x67, 0x7b, 0xee, 0xb9, 0xe9, 0x3e, 0x17, 0xd6, 0x78, 0x6a, 0x4d, 0xf6, 0x8f, + 0x1e, 0xfd, 0xad, 0x3d, 0x03, 0xce, 0x1c, 0xf4, 0x3a, 0x86, 0x87, 0xab, 0x8f, 0x9a, 0xae, 0x67, + 0x5a, 0xbb, 0x41, 0x7c, 0x60, 0x3a, 0x10, 0x0c, 0xfe, 0xa8, 0x2d, 0xb2, 0xc3, 0x6c, 0x40, 0xda, + 0x26, 0xea, 0xdf, 0x47, 0xa5, 0xc5, 0x72, 0x67, 0xd8, 0x9e, 0x0d, 0x79, 0xff, 0x13, 0x19, 0x38, + 0x16, 0x06, 0xaf, 0xd1, 0xf6, 0xeb, 0x0e, 0x69, 0xc0, 0xfe, 0x4f, 0x7d, 0x63, 0xcf, 0xdc, 0xa1, + 0xb1, 0xe7, 0x16, 0x98, 0x35, 0xdd, 0x0d, 0x73, 0x97, 0x1a, 0xbe, 0x6c, 0x6c, 0xe0, 0x93, 0xe8, + 0x42, 0x41, 0x1d, 0x5f, 0xa5, 0xb7, 0x9f, 0x9c, 0x0c, 0x16, 0x0a, 0x82, 0x14, 0x74, 0x1b, 0xcc, + 0xf1, 0x8d, 0x8c, 0x5e, 0x41, 0x6b, 0x46, 0x66, 0x33, 0x7b, 0x43, 0xb7, 0xc2, 0x82, 0xa8, 0xd3, + 0x9c, 0x75, 0xa0, 0x06, 0x5d, 0x21, 0x7a, 0x02, 0x9c, 0xec, 0x6b, 0x58, 0x41, 0x38, 0x98, 0x5c, + 0x14, 0x0e, 0xe6, 0x16, 0x80, 0x48, 0x8b, 0x07, 0x92, 0x79, 0x3c, 0xcc, 0x84, 0x7a, 0x39, 0x30, + 0xc3, 0x17, 0x72, 0x30, 0x1d, 0x28, 0xdb, 0xa0, 0x0c, 0xfe, 0xc8, 0x64, 0x71, 0x7b, 0x3f, 0xc1, + 0xc8, 0xc4, 0xa7, 0xf9, 0x26, 0x40, 0xe4, 0x71, 0xdd, 0x32, 0xbd, 0x6e, 0x70, 0x6a, 0xb1, 0x3f, + 0x59, 0xdb, 0x04, 0x30, 0x09, 0x46, 0xad, 0xe8, 0x18, 0xe3, 0x53, 0x53, 0xb4, 0x07, 0xaa, 0x0f, + 0x1c, 0x8d, 0xf3, 0x5f, 0xc7, 0xce, 0x18, 0xce, 0x40, 0x81, 0x06, 0xc9, 0x3f, 0xa1, 0x2d, 0x00, + 0x54, 0x9f, 0xb7, 0x59, 0xd5, 0x6b, 0xd5, 0x7a, 0xa5, 0x5a, 0xca, 0xa1, 0x1f, 0x57, 0x60, 0x26, + 0x6c, 0x04, 0x03, 0x2b, 0x59, 0x65, 0xaa, 0x35, 0xf4, 0x96, 0xcf, 0xc3, 0x8d, 0x8a, 0x57, 0xb2, + 0x67, 0xc1, 0xf5, 0x07, 0x2e, 0x5e, 0x31, 0x1d, 0xd7, 0xd3, 0xed, 0xab, 0x2b, 0xb6, 0x13, 0x0d, + 0xac, 0xf4, 0xc6, 0xcf, 0xb8, 0xcf, 0xbe, 0x31, 0xd8, 0xc1, 0xe4, 0x3c, 0x1b, 0x76, 0xd8, 0xa2, + 0x7e, 0x94, 0xe0, 0xd3, 0xf5, 0x1c, 0xc3, 0x72, 0x7b, 0xb6, 0x8b, 0x75, 0xfb, 0xaa, 0x5b, 0xb6, + 0x3a, 0x15, 0xbb, 0x7b, 0xb0, 0x6f, 0xb9, 0xcc, 0x9c, 0x8b, 0xfb, 0xec, 0x4b, 0x87, 0xdc, 0xe1, + 0xbb, 0x00, 0x50, 0x69, 0xac, 0xaf, 0x57, 0x2b, 0xad, 0x5a, 0xa3, 0x5e, 0x3a, 0xe1, 0x4b, 0xab, + 0x55, 0x5e, 0x5a, 0xf7, 0xa5, 0xf3, 0xad, 0x30, 0x1d, 0xb4, 0x69, 0x16, 0xc1, 0x26, 0x17, 0x44, + 0xb0, 0xd1, 0xca, 0x30, 0x1d, 0xb4, 0x72, 0x36, 0x22, 0x3c, 0xb1, 0xff, 0xc4, 0xf2, 0xbe, 0xe1, + 0x78, 0xc4, 0x40, 0x09, 0x88, 0x2c, 0x19, 0x2e, 0xd6, 0xc3, 0xdf, 0xce, 0x3f, 0x85, 0x71, 0xa0, + 0xc1, 0x42, 0x79, 0x7d, 0x7d, 0xbb, 0xa1, 0x6f, 0xd7, 0x1b, 0xad, 0xb5, 0x5a, 0x7d, 0x95, 0x8e, + 0x90, 0xb5, 0xd5, 0x7a, 0x43, 0xaf, 0xd2, 0x01, 0xb2, 0x59, 0xca, 0xd1, 0x3b, 0xa4, 0x97, 0xa6, + 0xa1, 0xd8, 0x23, 0xd2, 0x45, 0x9f, 0x55, 0x53, 0x86, 0x2a, 0x08, 0x71, 0x8a, 0xb9, 0xe5, 0x56, + 0x38, 0x2e, 0xa0, 0x0c, 0x38, 0xce, 0x7b, 0x1e, 0xe6, 0xa8, 0x19, 0xee, 0x92, 0x9d, 0x17, 0x82, + 0x9c, 0xaa, 0x0b, 0x69, 0xe8, 0xc3, 0x4a, 0x8a, 0xf8, 0x05, 0x03, 0x39, 0x4a, 0x67, 0x5c, 0xfc, + 0x7e, 0x6e, 0xb4, 0x2b, 0x25, 0x6a, 0xf5, 0x56, 0x55, 0xaf, 0x97, 0xd7, 0x59, 0x16, 0x55, 0x3b, + 0x07, 0xa7, 0xeb, 0x0d, 0x16, 0x8e, 0xb1, 0xb9, 0xdd, 0x6a, 0x6c, 0xd7, 0x36, 0x36, 0x1b, 0x7a, + 0xab, 0x54, 0xd0, 0xce, 0x82, 0x46, 0x9f, 0xb7, 0x6b, 0xcd, 0xed, 0x4a, 0xb9, 0x5e, 0xa9, 0xae, + 0x57, 0x97, 0x4b, 0x45, 0xed, 0x49, 0xf0, 0x04, 0x7a, 0x45, 0x51, 0x63, 0x65, 0x5b, 0x6f, 0x5c, + 0x6c, 0xfa, 0x08, 0xea, 0xd5, 0xf5, 0xb2, 0xaf, 0x48, 0xdc, 0x5d, 0xd2, 0x53, 0xda, 0x75, 0x70, + 0x92, 0x5c, 0x34, 0xbf, 0xde, 0x28, 0x2f, 0xb3, 0xf2, 0xa6, 0xb5, 0x9b, 0xe0, 0x5c, 0xad, 0xde, + 0xdc, 0x5a, 0x59, 0xa9, 0x55, 0x6a, 0xd5, 0x7a, 0x6b, 0x7b, 0xb3, 0xaa, 0x6f, 0xd4, 0x9a, 0x4d, + 0xff, 0xdf, 0xd2, 0x0c, 0xb9, 0xa9, 0x97, 0xf6, 0x99, 0xe8, 0xbd, 0x2a, 0xcc, 0x5f, 0x30, 0xba, + 0xa6, 0x3f, 0x50, 0x90, 0x2b, 0xbc, 0xfb, 0x4e, 0xfa, 0x78, 0xe4, 0xaa, 0x6f, 0x76, 0x56, 0x80, + 0xbc, 0xa0, 0xef, 0x52, 0x53, 0x9e, 0xf4, 0x61, 0x40, 0xd0, 0x12, 0x17, 0x85, 0xd2, 0x62, 0xe6, + 0xa5, 0xaf, 0x57, 0x52, 0x9c, 0xf4, 0x91, 0x27, 0x9f, 0x0e, 0xfc, 0x9f, 0x18, 0x17, 0xf8, 0x25, + 0x98, 0xdb, 0xaa, 0x97, 0xb7, 0x5a, 0x6b, 0x0d, 0xbd, 0xf6, 0xcd, 0x24, 0x92, 0xfc, 0x3c, 0xcc, + 0xac, 0x34, 0xf4, 0xa5, 0xda, 0xf2, 0x72, 0xb5, 0x5e, 0x2a, 0x68, 0xd7, 0xc3, 0x75, 0xcd, 0xaa, + 0x7e, 0xa1, 0x56, 0xa9, 0x6e, 0x6f, 0xd5, 0xcb, 0x17, 0xca, 0xb5, 0x75, 0xd2, 0x47, 0x14, 0x13, + 0xae, 0x1f, 0x9f, 0x42, 0xdf, 0x91, 0x07, 0xa0, 0x55, 0x27, 0x17, 0x29, 0x71, 0x97, 0x54, 0xff, + 0x61, 0xda, 0x49, 0x43, 0x44, 0x26, 0xa6, 0xfd, 0xd6, 0x60, 0xda, 0x61, 0x1f, 0xd8, 0xca, 0xd7, + 0x30, 0x3a, 0xf4, 0x31, 0xa0, 0xa6, 0x87, 0xbf, 0xa3, 0xf7, 0xa5, 0x99, 0x23, 0xc4, 0x32, 0x96, + 0x0e, 0xc9, 0x95, 0xf1, 0x00, 0x89, 0x5e, 0x96, 0x83, 0x05, 0xb1, 0x62, 0x7e, 0x25, 0x88, 0x31, + 0x25, 0x57, 0x09, 0xf1, 0x67, 0xce, 0xc8, 0x3a, 0xff, 0x74, 0x36, 0x9c, 0x42, 0xd0, 0x32, 0xe9, + 0xa1, 0xfd, 0xc0, 0x62, 0x29, 0xe5, 0x7c, 0xe6, 0x7d, 0xa3, 0xa3, 0xa4, 0x68, 0x53, 0xa0, 0xb6, + 0x1e, 0xf5, 0x4a, 0x2a, 0xfa, 0x82, 0x0a, 0xf3, 0xc2, 0x2d, 0xd8, 0xe8, 0xf5, 0x39, 0x99, 0x1b, + 0x6a, 0xb9, 0xfb, 0xb5, 0x73, 0x47, 0xbd, 0x5f, 0xfb, 0xfc, 0x5d, 0x30, 0xc5, 0xd2, 0x88, 0x7c, + 0x1b, 0x75, 0xdf, 0x14, 0x38, 0x09, 0xb3, 0xab, 0xd5, 0xd6, 0x76, 0xb3, 0x55, 0xd6, 0x5b, 0xd5, + 0xe5, 0x52, 0xce, 0x1f, 0xf8, 0xaa, 0x1b, 0x9b, 0xad, 0x87, 0x4b, 0x4a, 0x7a, 0xe7, 0xc9, 0x7e, + 0x46, 0x26, 0xec, 0x3c, 0x99, 0x54, 0x7c, 0xf6, 0x73, 0xd5, 0x4f, 0xaa, 0x50, 0xa2, 0x1c, 0x54, + 0x1f, 0xed, 0x61, 0xc7, 0xc4, 0x56, 0x1b, 0xa3, 0xcb, 0x32, 0xc1, 0x5a, 0x0f, 0x85, 0x31, 0x24, + 0xfd, 0x39, 0x67, 0x25, 0xd2, 0x97, 0x3e, 0x03, 0x3b, 0x7f, 0xc8, 0xc0, 0xfe, 0x44, 0x5a, 0xef, + 0xc9, 0x7e, 0x76, 0xc7, 0x02, 0xd9, 0xc7, 0xd2, 0x78, 0x4f, 0x0e, 0xe1, 0x60, 0x22, 0x31, 0x98, + 0x63, 0xc6, 0xdf, 0x92, 0x8a, 0x5e, 0xaa, 0xc2, 0xc9, 0x65, 0xc3, 0xc3, 0x4b, 0xd7, 0x5a, 0xc1, + 0x2d, 0x95, 0x31, 0x37, 0x4b, 0xe7, 0x0e, 0xdd, 0x2c, 0x1d, 0x5d, 0x74, 0xa9, 0xf4, 0x5d, 0x74, + 0x89, 0xde, 0x95, 0xf6, 0xbc, 0x65, 0x1f, 0x0f, 0x63, 0x0b, 0x94, 0x9c, 0xee, 0x1c, 0x65, 0x32, + 0x17, 0xd9, 0x37, 0xb0, 0xb7, 0xcd, 0x40, 0x89, 0xb2, 0xc2, 0x39, 0x08, 0xfe, 0x10, 0xbb, 0x8c, + 0x7d, 0x3b, 0x45, 0x3c, 0xc6, 0x20, 0xc2, 0x85, 0x22, 0x46, 0xb8, 0x10, 0xd6, 0x9b, 0xd5, 0x7e, + 0xa7, 0x8e, 0xb4, 0x9d, 0x21, 0xe7, 0x0d, 0x18, 0x1f, 0x02, 0x37, 0xbb, 0xce, 0x30, 0xb1, 0xf8, + 0xc9, 0x5c, 0x18, 0xcc, 0xee, 0xe8, 0xac, 0xca, 0x22, 0x93, 0x7c, 0x2f, 0x7a, 0x5a, 0xd7, 0x70, + 0xc1, 0x1b, 0x33, 0xe1, 0xb2, 0xf0, 0xec, 0x5c, 0xc3, 0x87, 0x71, 0x90, 0x3d, 0x0a, 0x5f, 0x53, + 0x20, 0xdf, 0xb4, 0x1d, 0x6f, 0x5c, 0x18, 0xa4, 0xdd, 0xce, 0xe6, 0x24, 0xd0, 0x8c, 0x9f, 0x73, + 0x66, 0xb7, 0x9d, 0x9d, 0x5c, 0xfe, 0x04, 0x42, 0x5a, 0x9e, 0x84, 0x05, 0xca, 0x49, 0x78, 0xdf, + 0xcb, 0xbf, 0x28, 0xb4, 0xbf, 0x7a, 0x48, 0x16, 0x11, 0xb2, 0xf1, 0x11, 0x6e, 0x27, 0x07, 0xa0, + 0x08, 0x69, 0xe8, 0xa7, 0x79, 0x5c, 0x96, 0x45, 0x5c, 0x06, 0xcd, 0xb8, 0xc3, 0x2b, 0x53, 0xc6, + 0xd5, 0x33, 0xa5, 0x89, 0x8e, 0x99, 0x50, 0x78, 0xf6, 0x88, 0xbc, 0x48, 0x85, 0x22, 0x73, 0xe7, + 0x1b, 0x2b, 0x02, 0x69, 0x5b, 0x46, 0x28, 0x04, 0x39, 0xb7, 0x3f, 0x75, 0xdc, 0x2d, 0x23, 0xb9, + 0xfc, 0xec, 0x71, 0xf8, 0x57, 0xe6, 0xa7, 0x5a, 0xbe, 0x62, 0x98, 0x5d, 0xe3, 0x52, 0x37, 0x45, + 0x54, 0xea, 0x0f, 0xa7, 0x3c, 0x99, 0x17, 0x56, 0x55, 0x28, 0x2f, 0x46, 0xe2, 0xdf, 0x00, 0x33, + 0x8e, 0xb0, 0xd7, 0xe7, 0x5b, 0x51, 0x7d, 0x3e, 0xc2, 0xec, 0xbb, 0x1e, 0xe5, 0x4c, 0x75, 0x0c, + 0x4f, 0x8a, 0x9f, 0x89, 0x1c, 0x1b, 0x9a, 0x2d, 0x77, 0x3a, 0x2b, 0xd8, 0xf0, 0x0e, 0x1c, 0xdc, + 0x49, 0x35, 0x44, 0x38, 0x7d, 0xdb, 0xa1, 0x9c, 0x24, 0x84, 0xb8, 0x90, 0xeb, 0x22, 0x3a, 0xcf, + 0x1c, 0xd2, 0x1b, 0x04, 0xbc, 0x8c, 0xa5, 0x4b, 0xfa, 0xf9, 0x10, 0x92, 0x86, 0x00, 0xc9, 0xb3, + 0x47, 0x63, 0x22, 0x7b, 0x40, 0x7e, 0x44, 0x85, 0x05, 0x6a, 0x27, 0x8c, 0x1b, 0x93, 0x5f, 0x4e, + 0xe9, 0xfe, 0xc3, 0xdd, 0xa8, 0xc5, 0xb3, 0x33, 0x16, 0x58, 0xd2, 0x38, 0x0b, 0xc9, 0xf1, 0x91, + 0x3d, 0x32, 0x2f, 0x3e, 0x05, 0xc0, 0xb9, 0x74, 0x7e, 0xb8, 0x18, 0xc5, 0x68, 0x44, 0x6f, 0x67, + 0xf3, 0x8f, 0xa6, 0x10, 0x30, 0x9c, 0x73, 0xd7, 0x0c, 0x37, 0xa4, 0xc4, 0x44, 0xa9, 0x51, 0xe5, + 0xf7, 0x53, 0xda, 0xbc, 0xcc, 0xa1, 0x72, 0xe8, 0xe0, 0x3e, 0x62, 0x2f, 0xf7, 0x91, 0x14, 0xc6, + 0xef, 0x30, 0x56, 0xd2, 0xa1, 0xb6, 0x3e, 0xc2, 0xcc, 0xfe, 0x1c, 0x9c, 0xd6, 0xab, 0xe5, 0xe5, + 0x46, 0x7d, 0xfd, 0x61, 0xfe, 0x7a, 0xa5, 0x92, 0xca, 0x4f, 0x4e, 0x32, 0x81, 0xed, 0x8d, 0x29, + 0xfb, 0x40, 0x51, 0x56, 0x49, 0xb3, 0x15, 0x6e, 0x71, 0x65, 0x78, 0xaf, 0x26, 0x41, 0xf6, 0x38, + 0x51, 0xf8, 0xfb, 0x22, 0xcc, 0xea, 0xb8, 0x6d, 0xef, 0xef, 0x63, 0xab, 0x83, 0x3b, 0xe8, 0x8d, + 0x2a, 0xcc, 0x85, 0xfb, 0x7d, 0x4d, 0xec, 0xa1, 0x6f, 0x89, 0xb0, 0x39, 0x0f, 0x73, 0x7e, 0xe5, + 0x1a, 0x62, 0x10, 0x78, 0x21, 0x4d, 0xbb, 0x13, 0x4e, 0x05, 0x28, 0x34, 0xfa, 0xa6, 0x30, 0x87, + 0x3f, 0xa0, 0x77, 0xf3, 0x18, 0x6d, 0x89, 0x18, 0x3d, 0x10, 0x2f, 0xcc, 0x90, 0xdd, 0x45, 0x9e, + 0xd5, 0x18, 0xb0, 0x7e, 0x37, 0x04, 0xeb, 0x79, 0x02, 0x58, 0xcb, 0x47, 0xa4, 0x7f, 0x9c, 0xa8, + 0xfd, 0xa2, 0x0a, 0xa7, 0x83, 0x8e, 0x78, 0x72, 0x68, 0x7d, 0x84, 0x47, 0xeb, 0x5b, 0x45, 0xb4, + 0x56, 0x65, 0xa4, 0x39, 0x88, 0xe5, 0x18, 0xd4, 0xfe, 0x28, 0x44, 0xed, 0xdb, 0x04, 0xd4, 0xd6, + 0xc7, 0x54, 0xce, 0x71, 0xa2, 0xf7, 0xcb, 0x2a, 0x9c, 0xf3, 0xcd, 0xce, 0x8a, 0x6d, 0xed, 0x74, + 0xcd, 0xb6, 0x67, 0x5a, 0xbb, 0x91, 0x0b, 0xdb, 0xaa, 0xcc, 0xca, 0x66, 0x3f, 0xb6, 0xca, 0x61, + 0x6c, 0xc5, 0xd8, 0x19, 0xb2, 0x6d, 0x2b, 0x8e, 0xad, 0x98, 0x21, 0x8c, 0x73, 0xbc, 0x8e, 0x34, + 0x87, 0x4f, 0x4a, 0xdf, 0xfa, 0x24, 0x39, 0x38, 0x4e, 0xfc, 0x5e, 0x04, 0x9c, 0xe9, 0xf1, 0x3d, + 0x2a, 0x94, 0x88, 0xbf, 0x24, 0xe9, 0xd9, 0xd9, 0xdd, 0xa3, 0x0d, 0xd1, 0x4b, 0xbe, 0x17, 0x08, + 0x28, 0xf0, 0x92, 0x0f, 0x12, 0xb4, 0xdb, 0x60, 0xa1, 0xbd, 0x87, 0xdb, 0x97, 0x6b, 0x56, 0xe0, + 0x8b, 0x44, 0x1d, 0x57, 0xfa, 0x52, 0xc5, 0xc1, 0xec, 0x21, 0x11, 0x4c, 0x71, 0xe1, 0x51, 0x98, + 0xd8, 0xf0, 0x4c, 0xc5, 0x34, 0xb4, 0xdf, 0x08, 0x01, 0xaa, 0x0b, 0x00, 0xdd, 0x3b, 0x12, 0xd5, + 0x74, 0xb0, 0xd4, 0x47, 0x80, 0x05, 0xc1, 0xd9, 0xc6, 0x66, 0xab, 0xd6, 0xa8, 0x6f, 0x6f, 0x35, + 0xab, 0xcb, 0xdb, 0x4b, 0x01, 0x38, 0xcd, 0x92, 0x8a, 0xbe, 0xa4, 0xc0, 0x14, 0x65, 0xcb, 0x45, + 0x4f, 0x8e, 0x20, 0x18, 0x7a, 0x3c, 0x00, 0xbd, 0x4d, 0x3a, 0xd8, 0x4f, 0x28, 0x08, 0x56, 0x4e, + 0x4c, 0xc3, 0x78, 0x16, 0x4c, 0x51, 0x90, 0x83, 0x5d, 0x80, 0x9b, 0x63, 0x2c, 0x3b, 0x46, 0x46, + 0x0f, 0xb2, 0x4b, 0x06, 0xfe, 0x19, 0xc2, 0x46, 0xf6, 0xd6, 0xf8, 0x0b, 0xf2, 0x74, 0xe9, 0xe0, + 0xa2, 0xe9, 0xed, 0x91, 0xd3, 0x03, 0xe8, 0x9b, 0x64, 0x3a, 0xae, 0x3b, 0xa1, 0x70, 0xc5, 0xcf, + 0x3d, 0xe4, 0x24, 0x06, 0xcd, 0x84, 0x7e, 0x42, 0x3a, 0xce, 0xb4, 0xa0, 0x9f, 0x21, 0x4f, 0x31, + 0xe0, 0x6c, 0x40, 0xbe, 0x6b, 0xba, 0x1e, 0xb3, 0xb9, 0xef, 0x49, 0x45, 0x28, 0x78, 0xa8, 0x79, + 0x78, 0x5f, 0x27, 0x64, 0xd0, 0x83, 0xbe, 0xc5, 0x14, 0xa5, 0x4a, 0x9c, 0x46, 0x39, 0x07, 0x53, + 0xec, 0x94, 0x34, 0xdb, 0x96, 0x0a, 0x5e, 0x25, 0xb7, 0x82, 0xa4, 0x6a, 0x9b, 0xbd, 0x0e, 0xfc, + 0xbf, 0x27, 0x61, 0x6a, 0xcd, 0x74, 0x3d, 0xdb, 0xb9, 0x86, 0xde, 0x94, 0x83, 0xa9, 0x0b, 0xd8, + 0x71, 0x4d, 0xdb, 0x3a, 0xe4, 0x9e, 0x75, 0x0b, 0xcc, 0xf6, 0x1c, 0x7c, 0xc5, 0xb4, 0x0f, 0x5c, + 0x6e, 0x94, 0xe0, 0x92, 0x34, 0x04, 0xd3, 0xc6, 0x81, 0xb7, 0x67, 0x3b, 0x51, 0x70, 0xa5, 0xe0, + 0x5d, 0xbb, 0x19, 0x80, 0x3e, 0xd7, 0x8d, 0x7d, 0xcc, 0x9c, 0xce, 0xb8, 0x14, 0x4d, 0x83, 0xbc, + 0x67, 0xee, 0x63, 0x16, 0x6d, 0x9d, 0x3c, 0xfb, 0x02, 0x26, 0x91, 0x4b, 0x59, 0x84, 0x58, 0x55, + 0x0f, 0x5e, 0xd1, 0xa7, 0x55, 0x98, 0x5d, 0xc5, 0x1e, 0x63, 0xd5, 0x45, 0x2f, 0xcf, 0x49, 0x5d, + 0x70, 0xe4, 0xcf, 0x4b, 0xba, 0x86, 0x1b, 0xfc, 0x17, 0x0e, 0xb9, 0x62, 0x62, 0x14, 0xfa, 0x5d, + 0xe5, 0xef, 0x7d, 0x20, 0x71, 0x40, 0xbd, 0x1a, 0x75, 0xe0, 0x67, 0x99, 0xd9, 0xc6, 0xf1, 0xe1, + 0x0f, 0xa2, 0x4d, 0x9c, 0x18, 0x43, 0x83, 0xc9, 0x7e, 0x91, 0xab, 0x4f, 0x6c, 0x77, 0x34, 0x7d, + 0x85, 0xe5, 0x38, 0x74, 0xa5, 0x07, 0x4f, 0x89, 0x91, 0xd1, 0xc3, 0xdc, 0x92, 0xd1, 0x37, 0x86, + 0x73, 0x92, 0xbd, 0x36, 0x7e, 0x45, 0x85, 0xd9, 0xe6, 0x9e, 0x7d, 0x35, 0x90, 0xe3, 0xb7, 0xca, + 0x01, 0x7b, 0x13, 0xcc, 0x5c, 0xe9, 0x03, 0x35, 0x4a, 0xe0, 0xef, 0x8d, 0x53, 0xc5, 0x7b, 0xe3, + 0x5e, 0xa2, 0xa6, 0x85, 0x89, 0x63, 0x2e, 0x06, 0x26, 0xf1, 0xaa, 0x37, 0x25, 0xc5, 0x55, 0x6f, + 0xda, 0x33, 0x61, 0x8a, 0x71, 0xcd, 0x96, 0xa9, 0x93, 0x01, 0x0e, 0x32, 0xf3, 0x15, 0xcc, 0x8b, + 0x15, 0x4c, 0x87, 0x7c, 0x7c, 0xe5, 0xb2, 0x47, 0xfe, 0xb7, 0x15, 0x12, 0x7b, 0x29, 0x00, 0xbe, + 0x32, 0x06, 0xe0, 0xd1, 0x57, 0x73, 0xb2, 0x9b, 0x39, 0xa1, 0x04, 0x42, 0x0e, 0x8e, 0x74, 0x79, + 0xd9, 0x50, 0x72, 0xd9, 0xcb, 0xf3, 0xc7, 0xf3, 0x30, 0xb7, 0x6c, 0xee, 0xec, 0x84, 0x9d, 0xe4, + 0x2b, 0x24, 0x3b, 0xc9, 0x78, 0x17, 0x2a, 0xdf, 0xce, 0x3d, 0x70, 0x1c, 0x6c, 0x05, 0x95, 0x62, + 0xcd, 0xa9, 0x2f, 0x55, 0xbb, 0x1d, 0x4e, 0x06, 0xe3, 0x02, 0xdf, 0x51, 0xce, 0xe8, 0xfd, 0xc9, + 0xe8, 0xcb, 0xd2, 0x9e, 0x00, 0x81, 0x44, 0xf9, 0x2a, 0xc5, 0x34, 0xc0, 0xfb, 0x60, 0x7e, 0x8f, + 0xe6, 0x26, 0xcb, 0xa5, 0x41, 0x67, 0x79, 0xb6, 0x2f, 0xb6, 0xfd, 0x06, 0x76, 0x5d, 0x63, 0x17, + 0xeb, 0x62, 0xe6, 0xbe, 0xe6, 0xab, 0xa6, 0xb9, 0xa9, 0x51, 0xce, 0xa9, 0x40, 0xa2, 0x26, 0x13, + 0xd0, 0x8e, 0xf3, 0x90, 0x5f, 0x31, 0xbb, 0x18, 0x7d, 0xaf, 0x02, 0x33, 0xfe, 0xac, 0xdb, 0x6a, + 0xfb, 0x6f, 0x9c, 0x43, 0xe5, 0xdf, 0xe7, 0x64, 0x6f, 0x28, 0xf6, 0xe9, 0x2c, 0x86, 0x34, 0x62, + 0xda, 0x8d, 0xdc, 0x4d, 0xc4, 0x89, 0xa4, 0x26, 0x70, 0x9f, 0x94, 0x3f, 0xf5, 0xd8, 0xd9, 0xe9, + 0xda, 0x86, 0xb0, 0x61, 0xd0, 0x6f, 0x0a, 0x45, 0x07, 0xfc, 0xea, 0xb6, 0xb7, 0x69, 0x5a, 0x56, + 0x18, 0x33, 0xe3, 0x50, 0xba, 0xe8, 0xeb, 0x92, 0x18, 0x76, 0x8c, 0xd4, 0x9d, 0x95, 0x1e, 0xa3, + 0xd9, 0xb7, 0xc1, 0xc2, 0xa5, 0x6b, 0x1e, 0x76, 0x59, 0x2e, 0x56, 0x6c, 0x5e, 0xef, 0x4b, 0xe5, + 0x2e, 0x0d, 0x48, 0x0a, 0x4f, 0x96, 0x50, 0x60, 0x3a, 0x51, 0xaf, 0x8d, 0x30, 0x03, 0x3c, 0x0d, + 0xa5, 0x7a, 0x63, 0xb9, 0x4a, 0xfc, 0x7b, 0x03, 0x8f, 0xc9, 0x5d, 0xf4, 0x83, 0x2a, 0xcc, 0x11, + 0x07, 0xbc, 0x00, 0x85, 0x27, 0x48, 0xcc, 0x47, 0xd0, 0xe7, 0xa4, 0x7d, 0x7f, 0x49, 0x95, 0xf9, + 0x02, 0xe2, 0x05, 0xbd, 0x63, 0x76, 0xfb, 0x05, 0x5d, 0xd0, 0xfb, 0x52, 0x07, 0x00, 0xa2, 0x0e, + 0x04, 0xe4, 0x17, 0xa5, 0x1c, 0x80, 0x87, 0x71, 0x77, 0x5c, 0xa8, 0xfc, 0x92, 0x0a, 0xb3, 0xfe, + 0x24, 0x25, 0x00, 0xa5, 0x21, 0x80, 0x62, 0x5b, 0xdd, 0x6b, 0xd1, 0xb2, 0x48, 0xf0, 0x9a, 0xaa, + 0x91, 0xfc, 0xb1, 0xf4, 0xcc, 0x9d, 0x88, 0x88, 0xe3, 0x65, 0x42, 0xf8, 0xbd, 0x5f, 0x6a, 0x3e, + 0x3f, 0x84, 0xb9, 0xe3, 0x82, 0xef, 0x8b, 0x05, 0x28, 0x6e, 0xf5, 0x08, 0x72, 0x3f, 0xa1, 0xca, + 0x5c, 0xc0, 0x71, 0xe8, 0xf0, 0x97, 0x6f, 0x66, 0x75, 0xed, 0xb6, 0xd1, 0xdd, 0x8c, 0x4e, 0xd1, + 0x46, 0x09, 0xda, 0xbd, 0xcc, 0x1f, 0x9c, 0x9e, 0x1e, 0xbf, 0x2d, 0xf1, 0x6e, 0x0a, 0x22, 0x23, + 0xee, 0xa0, 0xdd, 0x9d, 0x70, 0xaa, 0x63, 0xba, 0xc6, 0xa5, 0x2e, 0xae, 0x5a, 0x6d, 0xe7, 0x1a, + 0x15, 0x07, 0x9b, 0x56, 0x1d, 0xfa, 0xa0, 0xdd, 0x0f, 0x05, 0xd7, 0xbb, 0xd6, 0xa5, 0xf3, 0x44, + 0xfe, 0x5c, 0x5e, 0x6c, 0x51, 0x4d, 0x3f, 0xbb, 0x4e, 0xff, 0xe2, 0xdd, 0x3a, 0xa7, 0xe4, 0xdc, + 0x3a, 0xb5, 0xa7, 0x43, 0xd1, 0x76, 0xcc, 0x5d, 0x93, 0x5e, 0x37, 0xb7, 0x70, 0x28, 0x04, 0x2b, + 0x35, 0x05, 0x1a, 0x24, 0x8b, 0xce, 0xb2, 0x6a, 0xcf, 0x84, 0x19, 0x73, 0xdf, 0xd8, 0xc5, 0x0f, + 0x99, 0x16, 0x3d, 0xa0, 0xbe, 0x70, 0xf7, 0xb9, 0x43, 0x47, 0x0e, 0xd9, 0x77, 0x3d, 0xca, 0x8a, + 0xde, 0xaf, 0xc8, 0xc6, 0x89, 0x23, 0x75, 0xa3, 0xa0, 0x8e, 0x70, 0x77, 0x35, 0x27, 0x07, 0x55, + 0xd2, 0xbd, 0xf5, 0xb5, 0x52, 0x11, 0xdc, 0xe2, 0xd9, 0xca, 0x7e, 0xf0, 0xfe, 0x03, 0x05, 0xa6, + 0x97, 0xed, 0xab, 0x16, 0x51, 0xf4, 0x7b, 0xe4, 0x6c, 0xdd, 0x01, 0x07, 0xc3, 0xc5, 0x5b, 0x90, + 0x13, 0x4f, 0x81, 0x91, 0xda, 0x06, 0x45, 0xc6, 0xc0, 0x90, 0xd8, 0x72, 0x24, 0xef, 0xa6, 0x4d, + 0x2a, 0x27, 0x7b, 0xb9, 0xfe, 0x8e, 0x0a, 0xf9, 0x65, 0xc7, 0xee, 0xa1, 0x9f, 0xcf, 0xa5, 0x70, + 0xf3, 0xea, 0x38, 0x76, 0xaf, 0x45, 0x2e, 0x97, 0x8c, 0x76, 0x36, 0xf8, 0x34, 0xed, 0x1e, 0x98, + 0xee, 0xd9, 0xae, 0xe9, 0x05, 0xd3, 0x88, 0x85, 0xbb, 0x1f, 0x37, 0xb0, 0x35, 0x6f, 0xb2, 0x4c, + 0x7a, 0x98, 0xdd, 0xef, 0xb5, 0x89, 0x08, 0x7d, 0xb9, 0xf8, 0x62, 0x0c, 0x2e, 0xd8, 0xec, 0x4b, + 0x45, 0xaf, 0xe4, 0x91, 0x7c, 0xb6, 0x88, 0xe4, 0x13, 0x07, 0x48, 0xd8, 0xb1, 0x7b, 0x63, 0x71, + 0xcc, 0x78, 0x75, 0x88, 0xea, 0x73, 0x04, 0x54, 0xef, 0x90, 0x2a, 0x33, 0x7b, 0x44, 0xdf, 0x9f, + 0x07, 0x20, 0x66, 0xc6, 0x96, 0x3f, 0x01, 0x92, 0xb3, 0xb1, 0xbe, 0x3b, 0xcf, 0xc9, 0xb2, 0x2c, + 0xca, 0xf2, 0xc9, 0x31, 0x56, 0x0c, 0x21, 0x1f, 0x23, 0xd1, 0x32, 0x14, 0x0e, 0xfc, 0xcf, 0x4c, + 0xa2, 0x92, 0x24, 0xc8, 0xab, 0x4e, 0xff, 0x44, 0xbf, 0x9d, 0x83, 0x02, 0x49, 0xd0, 0x6e, 0x06, + 0x20, 0x03, 0x3b, 0x3d, 0x44, 0x99, 0x23, 0x43, 0x38, 0x97, 0x42, 0xb4, 0xd5, 0xec, 0xb0, 0xcf, + 0xd4, 0x64, 0x8e, 0x12, 0xfc, 0xbf, 0xc9, 0x70, 0x4f, 0x68, 0x31, 0x03, 0x80, 0x4b, 0xf1, 0xff, + 0x26, 0x6f, 0xeb, 0x78, 0x87, 0xc6, 0xfd, 0xcf, 0xeb, 0x51, 0x42, 0xf8, 0xf7, 0x7a, 0x78, 0x5b, + 0x64, 0xf0, 0x37, 0x49, 0xf1, 0x27, 0xc3, 0x44, 0x2d, 0x97, 0xa2, 0x22, 0x8a, 0x24, 0x53, 0x7f, + 0x32, 0x7a, 0x63, 0xa8, 0x36, 0xcb, 0x82, 0xda, 0x3c, 0x35, 0x85, 0x78, 0xb3, 0x57, 0x9e, 0x2f, + 0x14, 0x60, 0xa6, 0x6e, 0x77, 0x98, 0xee, 0x70, 0x13, 0xc6, 0x8f, 0x15, 0x52, 0x4d, 0x18, 0x43, + 0x1a, 0x31, 0x0a, 0xf2, 0x5c, 0x51, 0x41, 0xe4, 0x28, 0xf0, 0xfa, 0xa1, 0x2d, 0x41, 0x91, 0x68, + 0xef, 0xe1, 0x6b, 0x08, 0x93, 0x48, 0x10, 0xd1, 0xea, 0xec, 0xcf, 0x7f, 0x77, 0x3a, 0xf6, 0x5f, + 0xa0, 0x40, 0x2a, 0x98, 0xb0, 0xbb, 0x23, 0x56, 0x54, 0x49, 0xae, 0xa8, 0x9a, 0x5c, 0xd1, 0x7c, + 0x7f, 0x45, 0xd3, 0xac, 0x03, 0xc4, 0x69, 0x48, 0xf6, 0x3a, 0xfe, 0x37, 0x53, 0x00, 0x75, 0xe3, + 0x8a, 0xb9, 0x4b, 0x77, 0x87, 0x3f, 0x1d, 0xcc, 0x7f, 0xd8, 0x3e, 0xee, 0x7f, 0xe5, 0x06, 0xc2, + 0x7b, 0x60, 0x8a, 0x8d, 0x7b, 0xac, 0x22, 0x8f, 0x17, 0x2a, 0x12, 0x51, 0xa1, 0x66, 0xe9, 0xa3, + 0x9e, 0x1e, 0xe4, 0x17, 0x6e, 0x4c, 0x57, 0xfa, 0x6e, 0x4c, 0x1f, 0xbc, 0x07, 0x11, 0x73, 0x8f, + 0x3a, 0x7a, 0x8f, 0xf4, 0x29, 0x28, 0x8e, 0x1f, 0xae, 0x46, 0x31, 0x4d, 0xf0, 0xe9, 0x30, 0x65, + 0x87, 0x1b, 0xda, 0x6a, 0xec, 0x3a, 0x58, 0xcd, 0xda, 0xb1, 0xf5, 0x20, 0xa7, 0xe4, 0xe6, 0x97, + 0x14, 0x1f, 0x13, 0x39, 0x68, 0x78, 0x76, 0x35, 0x88, 0xa1, 0xe8, 0xd7, 0xe3, 0xa2, 0xe9, 0xed, + 0xad, 0x93, 0xc8, 0x4c, 0xdf, 0x26, 0x67, 0x41, 0x72, 0xf8, 0x2b, 0xe9, 0xf0, 0x17, 0xe3, 0x1c, + 0x35, 0x45, 0xd4, 0xee, 0x8f, 0xa3, 0x32, 0x98, 0xdb, 0x18, 0x00, 0xef, 0x85, 0x22, 0x65, 0x94, + 0x75, 0xa2, 0xe7, 0x63, 0xf1, 0x0b, 0x29, 0xe9, 0xec, 0x0f, 0xf4, 0xee, 0x10, 0xc7, 0x0b, 0x02, + 0x8e, 0x4b, 0x47, 0xe2, 0x2c, 0x73, 0x48, 0xcf, 0x3f, 0x0d, 0xa6, 0x98, 0xa4, 0xb5, 0x05, 0xbe, + 0x15, 0x97, 0x4e, 0x68, 0x00, 0xc5, 0x0d, 0xfb, 0x0a, 0x6e, 0xd9, 0xa5, 0x9c, 0xff, 0xec, 0xf3, + 0xd7, 0xb2, 0x4b, 0x0a, 0x7a, 0xcd, 0x34, 0x4c, 0x87, 0xc1, 0xeb, 0xfe, 0x40, 0x81, 0x52, 0xc5, + 0xc1, 0x86, 0x87, 0x57, 0x1c, 0x7b, 0x9f, 0xd6, 0x48, 0xde, 0xa3, 0xfe, 0x47, 0xa4, 0x5d, 0x3c, + 0xc2, 0xa0, 0x72, 0xfd, 0x85, 0xc5, 0x60, 0x49, 0x17, 0x21, 0x95, 0x60, 0x11, 0x12, 0xbd, 0x55, + 0xca, 0xe5, 0x43, 0xb6, 0x94, 0xec, 0x9b, 0xda, 0x27, 0x14, 0x28, 0x54, 0xba, 0xb6, 0x85, 0xf9, + 0x63, 0x9f, 0x43, 0xcf, 0x17, 0x0e, 0xde, 0x89, 0x40, 0x2f, 0x50, 0x64, 0x6d, 0x8d, 0x48, 0x00, + 0x7e, 0xd9, 0x92, 0xb2, 0x95, 0x1b, 0xa4, 0x12, 0x49, 0x67, 0x2f, 0xd0, 0x2f, 0x29, 0x30, 0x43, + 0x63, 0x89, 0x95, 0xbb, 0x5d, 0xf4, 0xb8, 0x48, 0xa8, 0x03, 0x02, 0x00, 0xa2, 0x5f, 0x94, 0x3e, + 0xd6, 0x14, 0xd6, 0x2a, 0xa4, 0x9d, 0x22, 0xa8, 0x5a, 0xba, 0x53, 0x36, 0x72, 0x7b, 0x69, 0x43, + 0x19, 0xca, 0x5e, 0xd4, 0x7f, 0xa8, 0xf8, 0x06, 0x80, 0x75, 0x79, 0xd3, 0xc1, 0x57, 0x4c, 0x7c, + 0x15, 0xdd, 0x18, 0x09, 0xfb, 0x70, 0xa0, 0xa4, 0x37, 0x4b, 0x2f, 0xe2, 0x70, 0x24, 0x63, 0xb7, + 0xb2, 0x66, 0xbb, 0x51, 0x26, 0xd6, 0x8b, 0xf7, 0x47, 0xaf, 0xe2, 0xc8, 0xe8, 0x7c, 0x76, 0xc9, + 0x35, 0x9b, 0x78, 0x2e, 0xb2, 0x17, 0xec, 0x07, 0xa7, 0x60, 0x7a, 0xcb, 0x72, 0x7b, 0x5d, 0xc3, + 0xdd, 0x43, 0xff, 0xa2, 0x42, 0x91, 0x5e, 0x7e, 0x89, 0xbe, 0x41, 0x88, 0xc7, 0xf2, 0xed, 0x07, + 0xd8, 0x09, 0x5c, 0x70, 0xe8, 0x4b, 0x64, 0x1f, 0x29, 0x9c, 0x7d, 0x84, 0xde, 0xaf, 0xca, 0x4e, + 0x52, 0x83, 0x42, 0xd9, 0x6d, 0x9b, 0xf1, 0x21, 0x40, 0x7a, 0x66, 0xdb, 0x3b, 0x70, 0xb0, 0x3b, + 0x30, 0x04, 0x48, 0x2c, 0x95, 0x4d, 0xfa, 0x97, 0x1e, 0xfe, 0x8e, 0x0c, 0x98, 0x62, 0x89, 0x87, + 0xb6, 0x93, 0x0e, 0xc7, 0x2c, 0x38, 0x0b, 0x45, 0xc3, 0xf1, 0x4c, 0xd7, 0x63, 0x1b, 0xac, 0xec, + 0xcd, 0xef, 0x2e, 0xe9, 0xd3, 0x96, 0xd3, 0x0d, 0x22, 0x37, 0x85, 0x09, 0xe8, 0x97, 0xa4, 0xe6, + 0x8f, 0xc9, 0x35, 0x4f, 0x07, 0xf9, 0x43, 0x23, 0xac, 0x51, 0x5f, 0x0f, 0xd7, 0xe9, 0xe5, 0x56, + 0x75, 0x9b, 0x06, 0xfa, 0x09, 0x63, 0xfa, 0x74, 0xd0, 0xbb, 0x54, 0x6e, 0xfd, 0xee, 0x9a, 0x30, + 0x46, 0x30, 0x29, 0x46, 0x63, 0x44, 0x98, 0x90, 0xb0, 0x5b, 0x2d, 0x2c, 0xc2, 0xaa, 0xf2, 0x8b, + 0xb0, 0x3f, 0x27, 0xbd, 0x9b, 0x14, 0x8a, 0x72, 0xc8, 0x1a, 0x60, 0xd2, 0xe5, 0x78, 0x1f, 0x90, + 0xda, 0x19, 0x1a, 0x56, 0xd2, 0x31, 0xc2, 0xf6, 0xd3, 0x53, 0x30, 0xb5, 0x6a, 0x74, 0xbb, 0xd8, + 0xb9, 0xe6, 0x0f, 0x49, 0xa5, 0x80, 0xc3, 0x0d, 0xc3, 0x32, 0x77, 0xb0, 0xeb, 0x25, 0x77, 0x96, + 0xef, 0x91, 0x0e, 0xbc, 0xce, 0xca, 0x58, 0xec, 0xa7, 0x1f, 0x23, 0xf3, 0xbb, 0x20, 0x6f, 0x5a, + 0x3b, 0x36, 0xeb, 0x32, 0xfb, 0x57, 0xed, 0x83, 0x9f, 0xc9, 0xd4, 0x85, 0x64, 0x94, 0x8c, 0xbd, + 0x2e, 0xc9, 0x45, 0xf6, 0x3d, 0xe7, 0x2f, 0xe4, 0x61, 0x3e, 0x60, 0xa2, 0x66, 0x75, 0xf0, 0xa3, + 0xfc, 0x52, 0xcc, 0x0f, 0xe6, 0x65, 0x8f, 0xd0, 0xf6, 0xd7, 0x87, 0x90, 0x8a, 0x11, 0x69, 0x0b, + 0xa0, 0x6d, 0x78, 0x78, 0xd7, 0x76, 0xcc, 0xb0, 0x3f, 0x7c, 0x46, 0x1a, 0x6a, 0x15, 0xfa, 0xf7, + 0x35, 0x9d, 0xa3, 0xa3, 0xdd, 0x0f, 0xb3, 0x38, 0x8c, 0x59, 0x12, 0x2c, 0xd5, 0x24, 0xe2, 0xc5, + 0xe7, 0x47, 0x7f, 0x28, 0x75, 0x52, 0x57, 0xa6, 0x9a, 0xe9, 0x30, 0xdb, 0x1e, 0xad, 0x0d, 0x6d, + 0xd5, 0x37, 0xca, 0x7a, 0x73, 0xad, 0xbc, 0xbe, 0x5e, 0xab, 0xaf, 0x86, 0xc1, 0xb2, 0x34, 0x58, + 0x58, 0x6e, 0x5c, 0xac, 0x73, 0xd1, 0xcc, 0xf2, 0x68, 0x13, 0xa6, 0x03, 0x79, 0x0d, 0xf2, 0xc5, + 0xe4, 0x65, 0xc6, 0x7c, 0x31, 0xb9, 0x24, 0xdf, 0x38, 0x33, 0xdb, 0xa1, 0x83, 0x0e, 0x79, 0x46, + 0xbf, 0x69, 0x40, 0x81, 0xac, 0xa9, 0xa3, 0x77, 0x90, 0x6d, 0xc0, 0x5e, 0xd7, 0x68, 0x63, 0xb4, + 0x9f, 0xc2, 0x1a, 0x0f, 0x6e, 0x02, 0x52, 0x0e, 0xdd, 0x04, 0x44, 0x1e, 0x99, 0xd5, 0x77, 0x7a, + 0xd0, 0x3a, 0xbe, 0x4e, 0xb3, 0x88, 0x87, 0x5a, 0x13, 0x77, 0x57, 0xe8, 0xf2, 0x3f, 0x63, 0x33, + 0x46, 0x25, 0xe3, 0x79, 0x4a, 0x67, 0x89, 0xca, 0xed, 0xc3, 0x24, 0x71, 0x94, 0x7d, 0x8b, 0xff, + 0x6c, 0x1e, 0x0a, 0xcd, 0x5e, 0xd7, 0xf4, 0xd0, 0x8f, 0x29, 0x63, 0xc1, 0x8c, 0xde, 0xde, 0xa4, + 0x0e, 0xbd, 0xbd, 0x29, 0xda, 0x75, 0xcd, 0x4b, 0xec, 0xba, 0xb6, 0xf0, 0xa3, 0x9e, 0xb8, 0xeb, + 0x7a, 0x0f, 0x0b, 0x78, 0x49, 0xf7, 0x6c, 0x9f, 0x38, 0x40, 0xa4, 0xa4, 0x5a, 0x03, 0x22, 0xa9, + 0x9e, 0x7f, 0x1a, 0x0b, 0xe8, 0x08, 0x50, 0x5c, 0x6a, 0xb4, 0x5a, 0x8d, 0x8d, 0xd2, 0x09, 0x12, + 0x09, 0xac, 0xb1, 0x49, 0xc3, 0x6b, 0xd5, 0xea, 0xf5, 0xaa, 0x5e, 0x52, 0x48, 0x88, 0xc9, 0x5a, + 0x6b, 0xbd, 0x5a, 0x52, 0xc5, 0xab, 0x3c, 0x12, 0xcd, 0x6f, 0xb1, 0xec, 0x2c, 0xd5, 0x4b, 0xce, + 0x10, 0x8f, 0xe7, 0x27, 0x7b, 0xe5, 0xfa, 0x61, 0x15, 0x0a, 0x1b, 0xd8, 0xd9, 0xc5, 0xe8, 0xdb, + 0x53, 0x6c, 0xf2, 0xed, 0x98, 0x8e, 0x4b, 0x03, 0x72, 0x46, 0x9b, 0x7c, 0x7c, 0x9a, 0x76, 0x2b, + 0xcc, 0xbb, 0xb8, 0x6d, 0x5b, 0x9d, 0x20, 0x13, 0xed, 0x8f, 0xc4, 0x44, 0xf4, 0xaa, 0x94, 0x90, + 0x11, 0x46, 0xc7, 0xb2, 0x53, 0x97, 0x06, 0x98, 0x41, 0xa5, 0x66, 0x0f, 0xcc, 0x97, 0x55, 0xff, + 0xa7, 0xde, 0x35, 0xf4, 0x2a, 0xe9, 0xdd, 0xd7, 0x3b, 0xa1, 0x78, 0x29, 0x88, 0xec, 0xae, 0xc6, + 0xf6, 0xc7, 0x2c, 0x8f, 0xb6, 0x04, 0xa7, 0x5c, 0xdc, 0xc5, 0x6d, 0x0f, 0x77, 0xfc, 0xa6, 0xab, + 0x0f, 0xed, 0x14, 0x0e, 0x67, 0x47, 0xbf, 0xcb, 0x03, 0x78, 0x9f, 0x08, 0xe0, 0x6d, 0x03, 0x44, + 0xe9, 0x57, 0x28, 0xde, 0x56, 0xf6, 0xab, 0xd1, 0xec, 0xda, 0xe1, 0xa2, 0x78, 0xf0, 0xee, 0x7f, + 0xdb, 0xf3, 0xf6, 0xbb, 0xe4, 0x1b, 0x3b, 0x60, 0x10, 0xbc, 0x6b, 0x8b, 0x30, 0x65, 0x58, 0xd7, + 0xc8, 0xa7, 0x7c, 0x42, 0xad, 0x83, 0x4c, 0xe8, 0x35, 0x21, 0xf2, 0x0f, 0x08, 0xc8, 0x3f, 0x59, + 0x8e, 0xdd, 0xec, 0x81, 0xff, 0xae, 0x29, 0x28, 0x6c, 0x1a, 0xae, 0x87, 0xd1, 0xff, 0xa3, 0xca, + 0x22, 0x7f, 0x1b, 0x2c, 0xec, 0xd8, 0xed, 0x03, 0x17, 0x77, 0xc4, 0x46, 0xd9, 0x97, 0x3a, 0x0e, + 0xcc, 0xb5, 0x3b, 0xa0, 0x14, 0x24, 0x32, 0xb2, 0xc1, 0x36, 0xfc, 0xa1, 0x74, 0x72, 0x31, 0x84, + 0xbb, 0x69, 0x38, 0x5e, 0x63, 0x87, 0xa4, 0x85, 0x17, 0x43, 0xf0, 0x89, 0x02, 0xf4, 0xc5, 0x04, + 0xe8, 0xa7, 0xe2, 0xa1, 0x9f, 0x96, 0x80, 0x5e, 0x2b, 0xc3, 0xf4, 0x8e, 0xd9, 0xc5, 0xe4, 0x87, + 0x19, 0xf2, 0xc3, 0xa0, 0x31, 0x89, 0xc8, 0x3e, 0x1c, 0x93, 0x56, 0xcc, 0x2e, 0xd6, 0xc3, 0xdf, + 0x82, 0x89, 0x0c, 0x44, 0x13, 0x99, 0x75, 0xea, 0x4f, 0xeb, 0x1b, 0x5e, 0x96, 0xb1, 0x8f, 0x83, + 0xc5, 0x37, 0x8b, 0x1d, 0x6e, 0xe9, 0x18, 0x9e, 0x41, 0xc0, 0x98, 0xd3, 0xc9, 0xb3, 0xe8, 0x17, + 0xa2, 0xf6, 0xfb, 0x85, 0xbc, 0x58, 0x4d, 0xd7, 0x23, 0x06, 0xcc, 0xc6, 0xb4, 0xa8, 0x4b, 0x01, + 0x40, 0xd4, 0x52, 0x0c, 0xdf, 0x7d, 0x60, 0xda, 0x86, 0x83, 0xbd, 0x4d, 0xde, 0x13, 0xa3, 0xa0, + 0x8b, 0x89, 0xc4, 0x95, 0xcf, 0x6d, 0x1a, 0xfb, 0xf4, 0x72, 0x88, 0x8a, 0xff, 0x8d, 0xb9, 0x68, + 0x1d, 0x4a, 0x8f, 0xfa, 0xdf, 0xc2, 0xb8, 0xfb, 0xdf, 0x41, 0x75, 0xcc, 0xbe, 0x19, 0xbe, 0x3e, + 0x0f, 0x6a, 0xe5, 0xc0, 0x7b, 0x4c, 0x77, 0xbf, 0x5f, 0x93, 0xf6, 0x73, 0x61, 0xfd, 0xd9, 0x81, + 0x77, 0xbc, 0xbd, 0x6f, 0x4a, 0x2d, 0x91, 0xf3, 0xa7, 0x89, 0xab, 0x5b, 0xf6, 0x3a, 0xf2, 0xf3, + 0x6a, 0xe8, 0x60, 0xf9, 0xa2, 0xdc, 0xd1, 0x4d, 0x73, 0x44, 0xfb, 0x27, 0xae, 0x67, 0x08, 0xdf, + 0x83, 0x8e, 0x27, 0x2f, 0xc4, 0x37, 0x25, 0xdb, 0xeb, 0x44, 0x94, 0x73, 0x3a, 0x7d, 0x41, 0x3f, + 0x2e, 0xed, 0x76, 0x4e, 0xc5, 0x96, 0xe8, 0x4a, 0x98, 0xce, 0xa6, 0x92, 0xbb, 0x1b, 0x3b, 0xa1, + 0xd8, 0xec, 0x01, 0xfb, 0x3b, 0xde, 0x55, 0xb0, 0x7c, 0x64, 0xc4, 0xd0, 0x6b, 0xa5, 0xb7, 0xa3, + 0x68, 0xb5, 0x87, 0xac, 0x17, 0xa6, 0x93, 0xb7, 0xdc, 0x66, 0x55, 0x62, 0xc1, 0xd9, 0x4b, 0xfc, + 0x6f, 0x55, 0x28, 0xd2, 0x2d, 0x48, 0xf4, 0x16, 0xe9, 0x26, 0xe2, 0xf7, 0x46, 0xa2, 0x0b, 0x61, + 0xf8, 0x9e, 0x66, 0xcd, 0x41, 0x70, 0x35, 0xcc, 0xa7, 0x72, 0x35, 0x14, 0xcf, 0x71, 0x4a, 0xb4, + 0x23, 0x5a, 0xc7, 0x8c, 0xa7, 0x93, 0x69, 0x5a, 0xd8, 0x40, 0x86, 0xb2, 0xc7, 0xfb, 0x7b, 0x0a, + 0x30, 0x47, 0x8b, 0xbe, 0x68, 0x76, 0x76, 0xb1, 0x87, 0xde, 0xa5, 0xfc, 0xdb, 0x41, 0x5d, 0xab, + 0xc3, 0xdc, 0x55, 0xc2, 0x36, 0xbd, 0xc5, 0x8a, 0xad, 0x5c, 0xdc, 0x91, 0xb8, 0xee, 0x41, 0xeb, + 0x19, 0xdc, 0x7b, 0x25, 0xfc, 0xef, 0xcb, 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x22, 0x31, 0xb2, + 0xf8, 0x24, 0xed, 0x2c, 0x14, 0xaf, 0x98, 0xf8, 0x6a, 0xad, 0xc3, 0xac, 0x5b, 0xf6, 0x86, 0x7e, + 0x55, 0x7a, 0xdf, 0x96, 0x87, 0x9b, 0xf1, 0x92, 0xad, 0x16, 0xca, 0xed, 0xde, 0x0e, 0x65, 0x6b, + 0x02, 0x67, 0x8a, 0xc5, 0xbb, 0xa7, 0x2b, 0x29, 0x14, 0x31, 0xce, 0x70, 0x16, 0x43, 0x79, 0x24, + 0x9e, 0x58, 0xa1, 0x02, 0x18, 0xf3, 0xb5, 0xd4, 0x72, 0xf1, 0x25, 0x86, 0x14, 0x9d, 0xbd, 0xe4, + 0xdf, 0xa8, 0xc2, 0x4c, 0x13, 0x7b, 0x2b, 0x26, 0xee, 0x76, 0x5c, 0xe4, 0x1c, 0xdd, 0x34, 0xba, + 0x0b, 0x8a, 0x3b, 0x84, 0xd8, 0xb0, 0x73, 0x0b, 0x2c, 0x1b, 0x7a, 0xbd, 0x22, 0xbb, 0x23, 0xcc, + 0x56, 0xdf, 0x02, 0x6e, 0xc7, 0x02, 0x93, 0x9c, 0x47, 0x6f, 0x72, 0xc9, 0x13, 0x08, 0x06, 0xae, + 0xc2, 0x1c, 0xbb, 0xac, 0xb6, 0xdc, 0x35, 0x77, 0x2d, 0x74, 0x30, 0x86, 0x16, 0xa2, 0x3d, 0x15, + 0x0a, 0x86, 0x4f, 0x8d, 0x6d, 0xbd, 0xa2, 0x81, 0x9d, 0x27, 0x29, 0x4f, 0xa7, 0x19, 0x53, 0x84, + 0xde, 0x8d, 0x14, 0x3b, 0xe0, 0x79, 0x82, 0xa1, 0x77, 0x87, 0x16, 0x9e, 0x3d, 0x62, 0x9f, 0x57, + 0xe1, 0x34, 0x63, 0xe0, 0x02, 0x76, 0x3c, 0xb3, 0x6d, 0x74, 0x29, 0x72, 0x2f, 0xcb, 0x8d, 0x03, + 0xba, 0x35, 0x98, 0xbf, 0xc2, 0x93, 0x65, 0x10, 0x9e, 0x1f, 0x08, 0xa1, 0xc0, 0x80, 0x2e, 0xfe, + 0x98, 0x22, 0x84, 0xa9, 0x20, 0x55, 0x81, 0xe6, 0x04, 0x43, 0x98, 0x4a, 0x33, 0x91, 0x3d, 0xc4, + 0xaf, 0x64, 0xa1, 0x79, 0xa2, 0xee, 0xf3, 0xd3, 0xd2, 0xd8, 0x6e, 0xc1, 0x2c, 0xc1, 0x92, 0xfe, + 0xc8, 0x96, 0x21, 0x12, 0x94, 0x38, 0xec, 0x77, 0xd8, 0x25, 0x8b, 0xe1, 0xbf, 0x3a, 0x4f, 0x07, + 0x5d, 0x04, 0x88, 0x3e, 0xf1, 0x9d, 0x74, 0x2e, 0xae, 0x93, 0x56, 0xe4, 0x3a, 0xe9, 0x37, 0x4b, + 0x07, 0x4b, 0x19, 0xcc, 0xf6, 0xd1, 0xd5, 0x43, 0x2e, 0x4c, 0xc6, 0xf0, 0xd2, 0xb3, 0xd7, 0x8b, + 0xd7, 0x30, 0xbd, 0x58, 0x3e, 0xe8, 0x75, 0xcd, 0xb6, 0x3f, 0x9f, 0xfa, 0xf0, 0x58, 0xe6, 0x53, + 0x7c, 0x7f, 0xa0, 0xf6, 0xf5, 0x07, 0x47, 0xb0, 0xa4, 0x6f, 0x87, 0x93, 0xb4, 0x88, 0x4a, 0xc8, + 0x56, 0x81, 0x86, 0x82, 0xe8, 0x4b, 0x16, 0xe3, 0x12, 0x4a, 0x2a, 0x41, 0x28, 0x84, 0x11, 0x96, + 0x3e, 0xd3, 0x19, 0xbb, 0x69, 0x15, 0x24, 0x8e, 0xb3, 0x09, 0xb8, 0x85, 0xe6, 0xa9, 0xb5, 0xbb, + 0x45, 0xee, 0xc1, 0x44, 0x7f, 0x94, 0x1f, 0xc7, 0x88, 0xf0, 0x5c, 0xc8, 0x13, 0x17, 0x77, 0x35, + 0x76, 0x49, 0x23, 0x2a, 0x32, 0xba, 0xa4, 0x14, 0x3f, 0xea, 0xad, 0x9d, 0xd0, 0xc9, 0x9f, 0xda, + 0x1d, 0x70, 0xf2, 0x92, 0xd1, 0xbe, 0xbc, 0xeb, 0xd8, 0x07, 0xe4, 0xc6, 0x40, 0x9b, 0x5d, 0x3d, + 0x48, 0xae, 0x70, 0x15, 0x3f, 0x68, 0x77, 0x07, 0xa6, 0x43, 0x61, 0x98, 0xe9, 0xb0, 0x76, 0x82, + 0x19, 0x0f, 0xda, 0xd3, 0xc2, 0x4e, 0xa7, 0x98, 0xd8, 0xe9, 0xac, 0x9d, 0x08, 0xba, 0x1d, 0x6d, + 0x19, 0xa6, 0x3b, 0xe6, 0x15, 0xb2, 0x55, 0x4d, 0x66, 0x5d, 0xc3, 0x8e, 0x2e, 0x2f, 0x9b, 0x57, + 0xe8, 0xc6, 0xf6, 0xda, 0x09, 0x3d, 0xfc, 0x53, 0x5b, 0x85, 0x19, 0xb2, 0x2d, 0x40, 0xc8, 0x4c, + 0xa7, 0x3a, 0x96, 0xbc, 0x76, 0x42, 0x8f, 0xfe, 0xf5, 0xad, 0x8f, 0x3c, 0x39, 0xfb, 0xf1, 0x40, + 0xb0, 0xdd, 0x9e, 0x4b, 0xb5, 0xdd, 0xee, 0xcb, 0x82, 0x6e, 0xb8, 0x9f, 0x85, 0x42, 0x9b, 0x48, + 0x58, 0x61, 0x12, 0xa6, 0xaf, 0xda, 0x7d, 0x90, 0xdf, 0x37, 0x9c, 0x60, 0xf2, 0x7c, 0xdb, 0x70, + 0xba, 0x1b, 0x86, 0x73, 0xd9, 0x47, 0xd0, 0xff, 0x6b, 0x69, 0x0a, 0x0a, 0x44, 0x70, 0xe1, 0x03, + 0xfa, 0xf9, 0x3c, 0x35, 0x43, 0x2a, 0xb6, 0xe5, 0x0f, 0xfb, 0x2d, 0x3b, 0x38, 0x20, 0xf3, 0xab, + 0xb9, 0xf1, 0x58, 0x90, 0xd7, 0x71, 0x01, 0x83, 0x2d, 0xf3, 0xdb, 0x0f, 0xf0, 0x43, 0xf8, 0x1a, + 0x5b, 0x12, 0x1d, 0xf4, 0xa9, 0xef, 0x3e, 0xf9, 0x7c, 0xff, 0x7d, 0xf2, 0xd1, 0xf2, 0x41, 0x61, + 0xb8, 0xa3, 0xca, 0xef, 0x8e, 0x60, 0xba, 0xf4, 0x0b, 0x22, 0x7e, 0x06, 0xde, 0x35, 0x2d, 0xae, + 0xce, 0xc1, 0x6b, 0xca, 0x4e, 0x29, 0xad, 0x51, 0x33, 0x84, 0xbd, 0xec, 0xfb, 0xa6, 0x9f, 0xcd, + 0xd3, 0x98, 0xa9, 0xf4, 0x14, 0x86, 0x78, 0x47, 0x2f, 0xfa, 0xad, 0xb1, 0x28, 0xcd, 0x80, 0x01, + 0x47, 0x1d, 0x38, 0xe0, 0x1c, 0x3a, 0xa4, 0x9c, 0x1f, 0x72, 0x48, 0xb9, 0x90, 0x6e, 0xe5, 0xf0, + 0x57, 0x78, 0xfd, 0xd9, 0x14, 0xf5, 0xe7, 0xde, 0x18, 0x80, 0x06, 0xc9, 0x65, 0x2c, 0xf6, 0xcd, + 0x3b, 0x42, 0x4d, 0x69, 0x0a, 0x9a, 0xf2, 0xc0, 0xe8, 0x8c, 0x64, 0xaf, 0x2d, 0xbf, 0x9c, 0x87, + 0xeb, 0x22, 0x66, 0xea, 0xf8, 0x2a, 0x53, 0x94, 0x3f, 0x18, 0x8b, 0xa2, 0xa4, 0x8f, 0x81, 0x90, + 0xb5, 0xc6, 0xfc, 0xb6, 0xf4, 0xd9, 0xa1, 0x7e, 0xa0, 0x42, 0xd9, 0xc4, 0x28, 0xcb, 0x59, 0x28, + 0xd2, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x52, 0x76, 0x37, 0x72, 0x27, 0x8e, 0x64, 0x79, 0x9b, 0x80, + 0xfe, 0xb0, 0x75, 0x8d, 0xd6, 0x81, 0x63, 0xd5, 0x2c, 0xcf, 0x46, 0xdf, 0x39, 0x16, 0xc5, 0x09, + 0xbd, 0xe1, 0xd4, 0x51, 0xbc, 0xe1, 0x46, 0x5a, 0xe5, 0x08, 0x6a, 0x70, 0x2c, 0xab, 0x1c, 0x31, + 0x85, 0x67, 0x8f, 0xdf, 0xdb, 0x55, 0x38, 0xcb, 0x26, 0x5b, 0x4b, 0xa2, 0x85, 0x88, 0x1e, 0x1e, + 0x07, 0x90, 0xa7, 0x03, 0x33, 0x89, 0xdd, 0x0c, 0x49, 0x5e, 0xc4, 0x93, 0x52, 0x89, 0x77, 0xe2, + 0x08, 0xd3, 0xc1, 0x3e, 0x0e, 0xc7, 0x82, 0x94, 0xdc, 0x55, 0x38, 0x29, 0xd8, 0xc8, 0x1e, 0xb3, + 0x57, 0xa8, 0x50, 0xa4, 0xe7, 0xb4, 0xd0, 0x56, 0x26, 0x0e, 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, + 0x39, 0xca, 0x4d, 0x66, 0x67, 0xd8, 0xd2, 0xec, 0xc5, 0x0d, 0x64, 0x65, 0x02, 0x2e, 0x84, 0x0a, + 0xcc, 0x36, 0xb1, 0x57, 0x31, 0x1c, 0xc7, 0x34, 0x76, 0xc7, 0xe5, 0xf1, 0x2d, 0xeb, 0x3d, 0x8c, + 0xbe, 0x92, 0x93, 0x3d, 0x4f, 0x13, 0x2e, 0x84, 0x07, 0xac, 0xc6, 0xc4, 0x12, 0x7c, 0x93, 0xd4, + 0x99, 0x99, 0x61, 0xd4, 0x26, 0xe0, 0xb1, 0xad, 0xc0, 0x54, 0x70, 0x16, 0xef, 0x2e, 0xe1, 0x7c, + 0xe6, 0x9e, 0xb7, 0x1f, 0x1c, 0x83, 0x21, 0xcf, 0x87, 0xcf, 0x80, 0xa1, 0x57, 0xa7, 0x74, 0x94, + 0x4f, 0x3e, 0x48, 0x98, 0xae, 0x8d, 0xa5, 0x71, 0x87, 0x3f, 0xae, 0xa3, 0x83, 0xbf, 0x38, 0xc5, + 0x96, 0x23, 0xd7, 0x0d, 0x0f, 0x3f, 0x8a, 0x3e, 0xad, 0xc2, 0x54, 0x13, 0x7b, 0xfe, 0x78, 0x2b, + 0x5c, 0x08, 0x3d, 0xaa, 0x86, 0x6b, 0xdc, 0x8a, 0xc7, 0x0c, 0x5b, 0xc3, 0x78, 0x10, 0x66, 0x7a, + 0x8e, 0xdd, 0xc6, 0xae, 0xcb, 0x56, 0x2f, 0x78, 0x47, 0xb5, 0x41, 0xa3, 0x3f, 0x61, 0x6d, 0x71, + 0x33, 0xf8, 0x47, 0x8f, 0x7e, 0x4f, 0x6b, 0x06, 0x50, 0x4a, 0xac, 0x82, 0x93, 0x36, 0x03, 0x92, + 0x0a, 0xcf, 0x1e, 0xe8, 0xdf, 0x53, 0x61, 0xae, 0x89, 0xbd, 0x50, 0x8a, 0x29, 0x36, 0x39, 0xe2, + 0xe1, 0x15, 0xa0, 0x54, 0x8f, 0x06, 0xa5, 0xfc, 0x75, 0xaa, 0xa2, 0x34, 0x43, 0x62, 0x13, 0xbc, + 0x4e, 0x55, 0x8e, 0x83, 0x09, 0x1c, 0x5f, 0x7b, 0x22, 0xcc, 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xbe, + 0x7c, 0xd4, 0x78, 0x3f, 0x93, 0x51, 0xe3, 0xbd, 0x1f, 0x0a, 0xfb, 0x86, 0x73, 0xd9, 0x25, 0x0d, + 0x77, 0x56, 0xc6, 0x6c, 0xdf, 0xf0, 0xb3, 0xeb, 0xf4, 0xaf, 0xc1, 0x7e, 0x9a, 0x85, 0x74, 0x7e, + 0x9a, 0x6f, 0x52, 0x52, 0x8d, 0x84, 0x74, 0xee, 0x30, 0xc6, 0x26, 0x9f, 0x62, 0xdc, 0x4c, 0x28, + 0x3b, 0x7b, 0xe5, 0x78, 0x99, 0x0a, 0xd3, 0xfe, 0xb8, 0x4d, 0xec, 0xf1, 0x8b, 0x47, 0x57, 0x87, + 0xc1, 0x86, 0x7e, 0xca, 0x1e, 0x38, 0x90, 0xc8, 0xf8, 0xcc, 0xfb, 0x14, 0x3d, 0x70, 0x52, 0xe1, + 0xd9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, 0x69, 0x0f, 0xe8, 0xa7, 0x54, 0x50, 0x57, 0xb1, 0x37, 0x69, + 0x2b, 0xf2, 0x6d, 0xd2, 0x21, 0x8e, 0x04, 0x81, 0x11, 0x9e, 0x17, 0x57, 0xf1, 0x78, 0x1a, 0x90, + 0x5c, 0x6c, 0x23, 0x29, 0x06, 0xb2, 0x47, 0xed, 0xbd, 0x14, 0x35, 0xba, 0xb9, 0xf0, 0x1d, 0x63, + 0xe8, 0x55, 0x27, 0xbb, 0xf0, 0x11, 0x08, 0x90, 0xd0, 0x38, 0xae, 0xf6, 0x36, 0xa8, 0xf0, 0x89, + 0x5c, 0x5f, 0x0a, 0x7e, 0x63, 0xdf, 0xc3, 0xed, 0xcb, 0xb8, 0xc3, 0x5f, 0x07, 0x37, 0x2a, 0x74, + 0xe7, 0x60, 0xaa, 0x4d, 0xa9, 0x11, 0xf0, 0xa6, 0xf5, 0xe0, 0x35, 0xc5, 0x5d, 0xfc, 0x62, 0x47, + 0x44, 0x7f, 0x9f, 0xe0, 0x5d, 0xfc, 0x12, 0xc5, 0x4f, 0xc0, 0x6c, 0xa1, 0xb3, 0x8c, 0x5a, 0xdb, + 0xb6, 0xd0, 0x7f, 0x3e, 0x3a, 0x2c, 0x37, 0xc1, 0x8c, 0xd9, 0xb6, 0x2d, 0x12, 0x86, 0x22, 0x38, + 0x04, 0x14, 0x26, 0x04, 0x5f, 0xab, 0xfb, 0xf6, 0x23, 0x26, 0xdb, 0x35, 0x8f, 0x12, 0x46, 0x35, + 0x26, 0x7c, 0xd6, 0x8f, 0xcb, 0x98, 0x18, 0x50, 0x76, 0xf6, 0x90, 0x7d, 0x24, 0xf2, 0x6e, 0xa3, + 0x5d, 0xe1, 0x63, 0x62, 0x15, 0x78, 0x94, 0xe1, 0x8c, 0xaf, 0xc5, 0xb1, 0x0c, 0x67, 0x09, 0x0c, + 0x4c, 0xe0, 0xc6, 0x8a, 0x08, 0xc7, 0xcc, 0xd7, 0x80, 0x8f, 0x80, 0xce, 0xf8, 0xcc, 0xc3, 0x11, + 0xd1, 0x39, 0x1e, 0x13, 0xf1, 0x03, 0x2c, 0x44, 0x26, 0xb3, 0x78, 0xd0, 0x7f, 0x19, 0x07, 0x38, + 0xf7, 0x8e, 0xe2, 0xaf, 0x40, 0xbd, 0x15, 0xd0, 0x5b, 0x15, 0xd9, 0x10, 0x28, 0x87, 0x24, 0xe8, + 0x53, 0x19, 0x0b, 0x82, 0x6f, 0x96, 0x8a, 0x4d, 0x22, 0x53, 0x7e, 0xf6, 0x00, 0xbe, 0x54, 0x85, + 0x05, 0xe2, 0x23, 0xd0, 0xc5, 0x86, 0x43, 0x3b, 0xca, 0xb1, 0x38, 0xca, 0xbf, 0x53, 0x3a, 0xc0, + 0x8f, 0x28, 0x87, 0x88, 0x8f, 0xb1, 0x40, 0x21, 0x17, 0xdd, 0x47, 0x92, 0x85, 0x89, 0x6c, 0xa3, + 0x94, 0x42, 0x16, 0x98, 0x8a, 0x8f, 0x07, 0x8f, 0x94, 0x1e, 0xb9, 0xa2, 0x30, 0x82, 0xc6, 0x36, + 0x61, 0x8f, 0x5c, 0x19, 0x26, 0xb2, 0xc7, 0xe4, 0xa7, 0x9e, 0xca, 0x16, 0x9c, 0x5b, 0xc6, 0xa5, + 0x2e, 0x46, 0xaf, 0xcd, 0x87, 0x27, 0xda, 0x7e, 0x6f, 0x2c, 0x1e, 0x98, 0x47, 0x08, 0x88, 0xaf, + 0x41, 0xde, 0xb1, 0xaf, 0xd2, 0xa5, 0xad, 0x79, 0x9d, 0x3c, 0xd3, 0xeb, 0x29, 0xbb, 0x07, 0xfb, + 0x16, 0x3d, 0x19, 0x3a, 0xaf, 0x07, 0xaf, 0xda, 0xad, 0x30, 0x7f, 0xd5, 0xf4, 0xf6, 0xd6, 0xb0, + 0xd1, 0xc1, 0x8e, 0x6e, 0x5f, 0x25, 0x1e, 0x73, 0xd3, 0xba, 0x98, 0x28, 0xfa, 0xaf, 0x48, 0xd8, + 0x97, 0xbe, 0x50, 0x26, 0x73, 0xfc, 0x2d, 0x8d, 0xe5, 0x19, 0xcf, 0x55, 0xf6, 0x0a, 0xf3, 0x3e, + 0x15, 0x66, 0x74, 0xfb, 0x2a, 0x53, 0x92, 0xff, 0xeb, 0x78, 0x75, 0x24, 0xf5, 0x44, 0x8f, 0x48, + 0x2e, 0x64, 0x7f, 0xe2, 0x13, 0xbd, 0xc4, 0xe2, 0x27, 0x72, 0x72, 0x69, 0x4e, 0xb7, 0xaf, 0x36, + 0xb1, 0x47, 0x5b, 0x04, 0xda, 0x1e, 0x93, 0x93, 0xb5, 0xe9, 0x52, 0x82, 0x6c, 0x1e, 0x1e, 0xbe, + 0xa7, 0xdd, 0x45, 0x08, 0x05, 0x14, 0xb2, 0x38, 0xe9, 0x5d, 0x84, 0xa1, 0x1c, 0x4c, 0x20, 0x46, + 0x8a, 0x0a, 0xb3, 0xba, 0x7d, 0xd5, 0x1f, 0x1a, 0x56, 0xcc, 0x6e, 0x77, 0x3c, 0x23, 0x64, 0x5a, + 0xe3, 0x3f, 0x10, 0x43, 0xc0, 0xc5, 0xc4, 0x8d, 0xff, 0x21, 0x0c, 0x64, 0x0f, 0xc3, 0x8b, 0x69, + 0x63, 0x09, 0x46, 0x68, 0x6b, 0x3c, 0x38, 0x8c, 0xda, 0x20, 0x42, 0x36, 0x8e, 0xad, 0x41, 0xc4, + 0x71, 0x30, 0x91, 0x9d, 0x93, 0x85, 0x0a, 0x19, 0xe6, 0xc7, 0xdb, 0x26, 0xde, 0x9d, 0xce, 0x35, + 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x63, 0x41, 0x23, 0x85, 0x0b, 0xa2, 0x04, 0x0f, 0xd9, 0xe3, 0xf1, + 0x6b, 0x2a, 0xcc, 0x51, 0x16, 0x1e, 0x23, 0x56, 0xc0, 0x48, 0x8d, 0x8a, 0xaf, 0xc1, 0xf1, 0x34, + 0xaa, 0x04, 0x0e, 0x26, 0x72, 0x2b, 0xa8, 0x6f, 0xc7, 0x8d, 0x70, 0x7c, 0x3c, 0x0e, 0xc1, 0x91, + 0x8d, 0xb1, 0x31, 0x1e, 0x21, 0x1f, 0xc5, 0x18, 0x3b, 0xa6, 0x63, 0xe4, 0x2f, 0x0e, 0x5b, 0xd1, + 0x38, 0x31, 0x38, 0x42, 0x53, 0x18, 0x23, 0x0c, 0x23, 0x36, 0x85, 0x63, 0x42, 0xe2, 0x0b, 0x2a, + 0x00, 0x65, 0x60, 0xc3, 0xbe, 0x42, 0x2e, 0xf3, 0x19, 0x43, 0x77, 0xd6, 0xef, 0x56, 0xaf, 0x0e, + 0x71, 0xab, 0x4f, 0x19, 0xc2, 0x25, 0xed, 0x4a, 0x20, 0x27, 0x65, 0xbf, 0x92, 0x13, 0x5f, 0x09, + 0x4c, 0x2e, 0x3f, 0x7b, 0x8c, 0x3f, 0x47, 0xad, 0xb9, 0xe8, 0x80, 0xe9, 0x8f, 0x8e, 0x05, 0x65, + 0x6e, 0xf6, 0xaf, 0x8a, 0xb3, 0xff, 0x23, 0x60, 0x3b, 0xaa, 0x8d, 0x38, 0xec, 0xe0, 0x68, 0xf6, + 0x36, 0xe2, 0xf1, 0x1d, 0x10, 0xfd, 0x8e, 0x3c, 0x9c, 0x64, 0x9d, 0xc8, 0xbf, 0x05, 0x88, 0x53, + 0x9e, 0xc3, 0x13, 0x3a, 0xc9, 0x21, 0x28, 0x8f, 0x6b, 0x41, 0x2a, 0xcd, 0x52, 0xa6, 0x04, 0x7b, + 0x13, 0x59, 0xdd, 0x28, 0x56, 0x1f, 0xed, 0x19, 0x56, 0x47, 0x3e, 0xdc, 0xef, 0x10, 0xe0, 0x83, + 0xb5, 0x46, 0x55, 0x5c, 0x6b, 0x1c, 0xb0, 0x32, 0x99, 0x7a, 0xe7, 0x9a, 0x88, 0x8c, 0xb2, 0x3b, + 0xf1, 0x9d, 0xeb, 0xf8, 0xb2, 0xb3, 0x47, 0xe9, 0xdd, 0x2a, 0xe4, 0x9b, 0xb6, 0xe3, 0xa1, 0x97, + 0xa4, 0x69, 0x9d, 0x54, 0xf2, 0x11, 0x48, 0xc1, 0xbb, 0x56, 0x11, 0x6e, 0x69, 0xbe, 0x2b, 0xf9, + 0xa8, 0xb3, 0xe1, 0x19, 0xc4, 0xab, 0xdb, 0x2f, 0x9f, 0xbb, 0xae, 0x39, 0x6d, 0x3c, 0x1d, 0x2a, + 0xbf, 0x66, 0xfc, 0x01, 0x8c, 0xcc, 0xe2, 0xe9, 0xc4, 0x96, 0x9c, 0x3d, 0x6e, 0x6f, 0x38, 0xc9, + 0x7c, 0x5b, 0x57, 0xcc, 0x2e, 0x46, 0x2f, 0xa1, 0x2e, 0x23, 0x75, 0x63, 0x1f, 0xcb, 0x1f, 0x89, + 0x49, 0x74, 0x6d, 0x25, 0xf1, 0x65, 0xd5, 0x28, 0xbe, 0x6c, 0xda, 0x06, 0x45, 0x0f, 0xa0, 0x53, + 0x96, 0x26, 0xdd, 0xa0, 0x12, 0xca, 0x9e, 0x48, 0x9c, 0xce, 0x53, 0x4d, 0xec, 0x51, 0xa3, 0xb2, + 0x11, 0xdc, 0xc0, 0xf2, 0xad, 0x63, 0x89, 0xd8, 0x19, 0x5e, 0xf0, 0xa2, 0xf6, 0x5d, 0xf0, 0xf2, + 0x3e, 0x1e, 0x9c, 0x0d, 0x11, 0x9c, 0x6f, 0x8c, 0x17, 0x90, 0xc8, 0xe4, 0x58, 0x60, 0x7a, 0x5b, + 0x08, 0xd3, 0xa6, 0x00, 0xd3, 0x7d, 0x23, 0x72, 0x91, 0x3d, 0x60, 0xdf, 0x5f, 0x80, 0x93, 0x74, + 0xd2, 0x5f, 0xb6, 0x3a, 0x2c, 0xc2, 0xea, 0x5b, 0x94, 0x63, 0xde, 0x6c, 0x3b, 0x1c, 0x82, 0x55, + 0x88, 0xe5, 0x5c, 0xe8, 0xbf, 0x1d, 0x7f, 0x89, 0x86, 0x73, 0xf5, 0x3b, 0x51, 0xb2, 0xd3, 0x26, + 0x7f, 0x43, 0x7e, 0xf8, 0x9f, 0x78, 0x97, 0xd1, 0x94, 0xfc, 0x5d, 0x46, 0xbf, 0x93, 0x6e, 0xdd, + 0x8e, 0x14, 0xdd, 0x27, 0xf0, 0x8c, 0x6d, 0xa7, 0x14, 0x2b, 0x7a, 0x12, 0xdc, 0xfd, 0xc7, 0x70, + 0x27, 0x8b, 0x22, 0x88, 0x8c, 0xe8, 0x4e, 0x46, 0x08, 0x1c, 0xa7, 0x3b, 0xd9, 0x30, 0x06, 0x26, + 0x70, 0xab, 0x7d, 0x81, 0xed, 0xe6, 0x93, 0x76, 0x83, 0xfe, 0x44, 0xc9, 0x7c, 0x94, 0xfe, 0x6a, + 0x2e, 0x95, 0xff, 0x33, 0xe1, 0x2b, 0x79, 0x98, 0x4e, 0xe3, 0xd1, 0x9c, 0x44, 0x6e, 0x02, 0xeb, + 0x46, 0x0a, 0xf1, 0x45, 0xbf, 0x68, 0x76, 0xbc, 0xbd, 0x31, 0x9d, 0xe8, 0xb8, 0xea, 0xd3, 0x0a, + 0xae, 0x47, 0x26, 0x2f, 0xe8, 0x7f, 0xe5, 0x52, 0x85, 0x90, 0x0a, 0x45, 0x42, 0xd8, 0x8a, 0x11, + 0x71, 0x8a, 0xc0, 0x4f, 0x89, 0xf4, 0x26, 0xa8, 0xd1, 0x17, 0xcc, 0x0e, 0xb6, 0x1f, 0x83, 0x1a, + 0x4d, 0xf8, 0x1a, 0x9f, 0x46, 0x27, 0x91, 0xfb, 0x0f, 0xaa, 0xd1, 0xa1, 0x48, 0xc6, 0xa4, 0xd1, + 0x89, 0xf4, 0xb2, 0x97, 0xf1, 0xab, 0xe7, 0xd8, 0x44, 0x6a, 0xdd, 0xb4, 0x2e, 0xa3, 0x7f, 0x2c, + 0x06, 0x17, 0x33, 0x5f, 0x34, 0xbd, 0x3d, 0x16, 0x0b, 0xe6, 0x97, 0xa5, 0xef, 0x46, 0x19, 0x21, + 0xde, 0x8b, 0x18, 0x4e, 0xaa, 0x70, 0x28, 0x9c, 0x54, 0x19, 0xe6, 0x4d, 0xcb, 0xc3, 0x8e, 0x65, + 0x74, 0x57, 0xba, 0xc6, 0xae, 0x7b, 0x6e, 0x6a, 0xe0, 0xe5, 0x75, 0x35, 0x2e, 0x8f, 0x2e, 0xfe, + 0xc1, 0x5f, 0x5f, 0x39, 0x2d, 0x5e, 0x5f, 0x19, 0x13, 0xfd, 0x6a, 0x26, 0x3e, 0xfa, 0x55, 0x18, + 0xdd, 0x0a, 0x86, 0x07, 0xc7, 0x96, 0xb5, 0x8d, 0x53, 0x86, 0xfb, 0xbb, 0x4b, 0x32, 0x0a, 0x5b, + 0x18, 0xfa, 0xf1, 0x75, 0x6a, 0xaa, 0xd5, 0x3d, 0x5f, 0x11, 0x16, 0xfb, 0x95, 0x20, 0xb5, 0x85, + 0xca, 0x57, 0x5e, 0xed, 0xab, 0x7c, 0x68, 0xf2, 0xe4, 0x25, 0x4c, 0x1e, 0x5e, 0xa9, 0x0a, 0x72, + 0x4a, 0x95, 0x66, 0xb1, 0x50, 0xa6, 0xb6, 0x13, 0x38, 0x8d, 0x54, 0x80, 0x53, 0x41, 0xb4, 0xdb, + 0x5e, 0x0f, 0x1b, 0x8e, 0x61, 0xb5, 0x31, 0xfa, 0x88, 0x32, 0x0e, 0xb3, 0x77, 0x05, 0xa6, 0xcd, + 0xb6, 0x6d, 0x35, 0xcd, 0xe7, 0x07, 0x97, 0xcb, 0x25, 0x07, 0x59, 0x27, 0x12, 0xa9, 0xb1, 0x3f, + 0xf4, 0xf0, 0x5f, 0xad, 0x06, 0x33, 0x6d, 0xc3, 0xe9, 0xd0, 0x20, 0x7c, 0x85, 0xbe, 0x8b, 0x9c, + 0x62, 0x09, 0x55, 0x82, 0x5f, 0xf4, 0xe8, 0x6f, 0xad, 0x21, 0x0a, 0xb1, 0xd8, 0x17, 0xcd, 0x23, + 0x96, 0xd8, 0x72, 0xf4, 0x93, 0x20, 0x73, 0x5f, 0x3a, 0x0e, 0xee, 0x92, 0x3b, 0xe8, 0x69, 0x0f, + 0x31, 0xa3, 0x47, 0x09, 0x69, 0x97, 0x07, 0x48, 0x51, 0x87, 0xd0, 0x98, 0xf4, 0xf2, 0x80, 0x14, + 0x17, 0xd9, 0x6b, 0xe6, 0x3b, 0x8a, 0x30, 0x4f, 0x7b, 0x35, 0x26, 0x4e, 0xf4, 0x52, 0x72, 0x85, + 0xb4, 0xf7, 0x10, 0xbe, 0x86, 0x9a, 0x47, 0x1f, 0x93, 0x4b, 0xa0, 0x5e, 0x0e, 0x03, 0x0e, 0xfa, + 0x8f, 0x69, 0xf7, 0xed, 0x03, 0xbe, 0x16, 0x29, 0x4f, 0x93, 0xde, 0xb7, 0x4f, 0x2e, 0x3e, 0x7b, + 0x7c, 0x7e, 0x40, 0x05, 0xb5, 0xdc, 0xe9, 0xa0, 0xf6, 0xd1, 0xa1, 0xb8, 0x05, 0x66, 0x83, 0x36, + 0x13, 0xc5, 0x80, 0xe4, 0x93, 0xd2, 0x2e, 0x82, 0x86, 0xb2, 0x29, 0x77, 0x26, 0xbe, 0xab, 0x90, + 0x50, 0x76, 0xf6, 0xa0, 0x7c, 0x66, 0x8a, 0x35, 0x9a, 0x25, 0xdb, 0xbe, 0x4c, 0x8e, 0xca, 0xfc, + 0x8c, 0x0a, 0x85, 0x15, 0xec, 0xb5, 0xf7, 0x90, 0x3b, 0x96, 0x36, 0x73, 0xe0, 0x74, 0x83, 0x36, + 0x73, 0xe0, 0x74, 0x87, 0x05, 0xe5, 0x4c, 0x1b, 0xfd, 0x39, 0x60, 0x7b, 0x91, 0xb0, 0x3c, 0xe9, + 0xe8, 0xcf, 0x89, 0xa5, 0x4f, 0xe0, 0x10, 0x5c, 0x1e, 0x16, 0xc2, 0x15, 0x30, 0x8a, 0xd9, 0x2f, + 0xe4, 0x1e, 0x73, 0xeb, 0xa1, 0x43, 0xec, 0x66, 0xf4, 0x07, 0xe9, 0x42, 0xac, 0x85, 0x32, 0x17, + 0x6b, 0x9e, 0xf1, 0xc2, 0x64, 0x8a, 0xe0, 0x6b, 0x72, 0x0c, 0x4e, 0x60, 0x05, 0x40, 0x85, 0x69, + 0xc2, 0xd0, 0xb2, 0x79, 0x85, 0xb8, 0x1e, 0x0a, 0x0b, 0x95, 0x2f, 0x18, 0xcb, 0x42, 0xe5, 0x7d, + 0xe2, 0x42, 0xa5, 0x64, 0xc4, 0xe4, 0x60, 0x9d, 0x32, 0xa5, 0x2f, 0x8e, 0xff, 0xff, 0xd8, 0x97, + 0x29, 0x53, 0xf8, 0xe2, 0x0c, 0x29, 0x3f, 0x7b, 0x44, 0x5f, 0xf7, 0x9f, 0x58, 0x67, 0x1d, 0x6c, + 0xc8, 0xa2, 0xff, 0x7e, 0x0a, 0xf2, 0x17, 0xfc, 0x87, 0xff, 0x19, 0xdd, 0xa8, 0xf5, 0xaa, 0x31, + 0x04, 0x77, 0x78, 0x0e, 0xe4, 0x7d, 0xfa, 0x6c, 0xda, 0x73, 0x87, 0xdc, 0xee, 0xb0, 0xcf, 0x88, + 0x4e, 0xfe, 0xd3, 0xce, 0x42, 0xd1, 0xb5, 0x0f, 0x9c, 0xb6, 0x6f, 0x7e, 0xfb, 0x1a, 0xc3, 0xde, + 0xd2, 0x06, 0x35, 0x15, 0x48, 0x2f, 0x8e, 0xcf, 0xe5, 0x94, 0xbb, 0x60, 0x49, 0x15, 0x2e, 0x58, + 0x4a, 0xb1, 0xff, 0x20, 0xc1, 0x5b, 0xf6, 0x1a, 0xf1, 0x27, 0xe4, 0xae, 0xc1, 0xce, 0xb8, 0x60, + 0x8f, 0x11, 0xcb, 0x51, 0xd5, 0x21, 0xad, 0xc3, 0xb8, 0x28, 0xda, 0x30, 0x8e, 0xfc, 0x44, 0x1d, + 0xc6, 0x25, 0x78, 0x98, 0xc8, 0x29, 0xf7, 0x22, 0x73, 0x72, 0x7d, 0x78, 0x9c, 0xe8, 0xe6, 0x05, + 0xa5, 0x3f, 0x12, 0x3a, 0x63, 0x74, 0x7e, 0x1d, 0x19, 0x9d, 0x63, 0x72, 0x7f, 0xfd, 0x75, 0x95, + 0x44, 0xd2, 0x0c, 0x8c, 0x20, 0xf9, 0x8b, 0x92, 0x52, 0x43, 0xe4, 0x8f, 0xc1, 0x42, 0x1c, 0xe9, + 0xf9, 0xd1, 0x43, 0x8b, 0x8b, 0xa2, 0xe3, 0xf8, 0x9f, 0x74, 0x68, 0x71, 0x59, 0x46, 0xb2, 0x07, + 0xf2, 0x27, 0xe9, 0xc5, 0x64, 0xe5, 0xb6, 0x67, 0x5e, 0x19, 0x73, 0x4b, 0x13, 0x87, 0x97, 0x94, + 0xd1, 0x84, 0x0f, 0x49, 0x88, 0x72, 0x38, 0xe9, 0x68, 0xc2, 0x72, 0x6c, 0x64, 0x0f, 0xd3, 0x5f, + 0x14, 0x7d, 0xe9, 0xb1, 0xb5, 0x9d, 0x9f, 0x62, 0xab, 0x09, 0xf8, 0xe8, 0x68, 0x9d, 0x87, 0x39, + 0x6e, 0xe9, 0x20, 0xb8, 0xf0, 0x46, 0x48, 0x4b, 0x7b, 0x50, 0x3e, 0x14, 0xd9, 0xd8, 0x17, 0x16, + 0x52, 0x2c, 0x18, 0xcb, 0x30, 0x31, 0x91, 0xfb, 0xe4, 0x82, 0x31, 0x6c, 0x42, 0x58, 0xfd, 0x32, + 0x8f, 0x55, 0x43, 0xc4, 0xea, 0x1e, 0x19, 0x31, 0xc9, 0x8d, 0x69, 0x52, 0xf3, 0xc6, 0xb7, 0x87, + 0x70, 0xe9, 0x02, 0x5c, 0xcf, 0x19, 0x99, 0x8f, 0xec, 0x11, 0xfb, 0x31, 0xda, 0x1d, 0x36, 0xa9, + 0xc9, 0x3e, 0x9e, 0xee, 0x90, 0xcd, 0x06, 0x54, 0x61, 0x36, 0x90, 0xd2, 0x5f, 0x3f, 0x72, 0x43, + 0x0d, 0x98, 0x1b, 0x06, 0x51, 0x7e, 0xcc, 0xfe, 0xfa, 0x43, 0x39, 0xc8, 0x1e, 0x9c, 0xbf, 0x57, + 0x01, 0x56, 0x1d, 0xfb, 0xa0, 0xd7, 0x70, 0x3a, 0xd8, 0x41, 0x7f, 0x16, 0x4d, 0x00, 0x7e, 0x70, + 0x0c, 0x13, 0x80, 0x4d, 0x80, 0xdd, 0x90, 0x38, 0xd3, 0xf0, 0xa7, 0xca, 0x99, 0xfb, 0x11, 0x53, + 0x3a, 0x47, 0x43, 0xbc, 0xb2, 0xf6, 0x9b, 0x44, 0x8c, 0x93, 0xfa, 0xac, 0x88, 0xdc, 0x38, 0x27, + 0x00, 0xef, 0x0c, 0xb1, 0x6e, 0x09, 0x58, 0x3f, 0xf7, 0x08, 0x9c, 0x64, 0x8f, 0xf9, 0x3f, 0x4c, + 0xc1, 0x2c, 0xdd, 0xee, 0xa3, 0x32, 0xfd, 0xeb, 0x08, 0xf4, 0x1f, 0x1d, 0x03, 0xe8, 0x5b, 0x30, + 0x67, 0x47, 0xd4, 0x69, 0x9f, 0xca, 0x2f, 0xc0, 0x24, 0xc2, 0xce, 0xf1, 0xa5, 0x0b, 0x64, 0xd0, + 0x87, 0x78, 0xe4, 0x75, 0x11, 0xf9, 0xfb, 0x12, 0xe4, 0xcd, 0x51, 0x1c, 0x27, 0xf4, 0xef, 0x0a, + 0xa1, 0xdf, 0x12, 0xa0, 0x2f, 0x1f, 0x85, 0x95, 0x09, 0x84, 0xeb, 0x57, 0x21, 0x4f, 0x4e, 0xd7, + 0xfd, 0x6c, 0x86, 0xf3, 0xfb, 0x73, 0x30, 0x45, 0x9a, 0x6c, 0x38, 0xef, 0x08, 0x5e, 0xfd, 0x2f, + 0xc6, 0x8e, 0x87, 0x9d, 0x70, 0xe5, 0x36, 0x78, 0xf5, 0x79, 0x08, 0xbc, 0x9a, 0xdd, 0x73, 0x45, + 0xba, 0x91, 0x19, 0x26, 0x8c, 0x3c, 0x29, 0xe1, 0x25, 0x3e, 0xb6, 0xf3, 0x76, 0xa3, 0x4c, 0x4a, + 0x86, 0x30, 0x92, 0x3d, 0xf0, 0x7f, 0x94, 0x87, 0x73, 0x74, 0x55, 0x69, 0xc5, 0xb1, 0xf7, 0xfb, + 0x6e, 0xc7, 0x32, 0x8f, 0xae, 0x0b, 0xb7, 0xc1, 0x82, 0x27, 0xf8, 0x73, 0x33, 0x9d, 0xe8, 0x4b, + 0x45, 0xbf, 0xcb, 0xfb, 0x64, 0x3c, 0x4f, 0x44, 0x72, 0x29, 0x41, 0x80, 0x71, 0xbc, 0xa7, 0x5e, + 0xa8, 0x97, 0x64, 0x94, 0x5b, 0xa4, 0x52, 0x47, 0x5a, 0xb3, 0x0c, 0x75, 0xaa, 0x20, 0xa3, 0x53, + 0xef, 0x0f, 0x75, 0xea, 0x5b, 0x04, 0x9d, 0x5a, 0x3d, 0xba, 0x48, 0xb2, 0xd7, 0xad, 0xd7, 0xaa, + 0xc1, 0xc6, 0x51, 0xb8, 0xed, 0xb7, 0x9f, 0xc5, 0x66, 0x1f, 0xe7, 0xcf, 0x94, 0x17, 0xfc, 0x99, + 0xc4, 0xfb, 0x2c, 0x52, 0xcc, 0x84, 0x45, 0xae, 0x63, 0x74, 0x69, 0x01, 0x14, 0x33, 0xe0, 0x4e, + 0x31, 0x3b, 0x23, 0xcd, 0x75, 0x13, 0x0b, 0x9a, 0xc0, 0xda, 0xd2, 0x02, 0x14, 0x57, 0xcc, 0xae, + 0x87, 0x1d, 0xf4, 0x39, 0x36, 0xd3, 0x7d, 0x6d, 0x86, 0x03, 0xc0, 0x32, 0x14, 0x77, 0x48, 0x69, + 0xcc, 0x64, 0xbe, 0x53, 0xae, 0xf5, 0x50, 0x0e, 0x75, 0xf6, 0x6f, 0xda, 0xe8, 0x7e, 0x7d, 0x64, + 0xc6, 0x36, 0x45, 0x4e, 0x11, 0xdd, 0x6f, 0x38, 0x0b, 0x13, 0xb9, 0xd8, 0xaa, 0xa8, 0xe3, 0x7d, + 0x7f, 0x8c, 0xbf, 0x9c, 0x1d, 0xc2, 0x25, 0x50, 0xcd, 0x8e, 0x4b, 0x3a, 0xc7, 0x19, 0xdd, 0x7f, + 0x4c, 0xeb, 0x6b, 0xd4, 0x2f, 0x2a, 0xca, 0xf2, 0xa4, 0x7d, 0x8d, 0xa4, 0xb8, 0xc8, 0x1e, 0xb3, + 0xaf, 0x12, 0x47, 0xd3, 0x5e, 0xd7, 0x68, 0x63, 0x9f, 0xfb, 0xcc, 0x50, 0xa3, 0x3d, 0x59, 0x3e, + 0xe8, 0xc9, 0xb8, 0x76, 0x5a, 0x38, 0x42, 0x3b, 0x1d, 0x75, 0x19, 0x32, 0x94, 0x39, 0xa9, 0xf8, + 0xb1, 0x2d, 0x43, 0x26, 0xb2, 0x31, 0x81, 0x6b, 0x4b, 0x83, 0x83, 0xb8, 0x13, 0x6d, 0xad, 0xa3, + 0x6e, 0xd2, 0x30, 0x61, 0x8d, 0xed, 0xd0, 0xed, 0x28, 0x9b, 0x34, 0xf1, 0x3c, 0x4c, 0x00, 0xad, + 0x05, 0x86, 0xd6, 0xa7, 0xd8, 0x30, 0x9a, 0xf1, 0x3e, 0xa9, 0x6b, 0x3b, 0x5e, 0xba, 0x7d, 0x52, + 0x9f, 0x3b, 0x9d, 0xfc, 0x97, 0xf6, 0xe0, 0x96, 0x78, 0x2e, 0x7b, 0x5c, 0xc3, 0x67, 0x8a, 0x83, + 0x5b, 0xc3, 0x18, 0xc8, 0x1e, 0xde, 0xb7, 0x1e, 0xd3, 0xe0, 0x39, 0x6a, 0x73, 0x64, 0x6d, 0x60, + 0x6c, 0x43, 0xe7, 0x28, 0xcd, 0x31, 0x9e, 0x87, 0xec, 0xf1, 0xfa, 0x3b, 0x6e, 0xe0, 0x7c, 0xf3, + 0x04, 0x07, 0xce, 0xa0, 0x65, 0x16, 0x46, 0x6c, 0x99, 0xa3, 0xee, 0xff, 0x30, 0x59, 0x8f, 0x6f, + 0xc0, 0x1c, 0x65, 0xff, 0x27, 0x81, 0x89, 0xec, 0x11, 0x7f, 0x8b, 0x0a, 0x85, 0xe6, 0xe4, 0xc7, + 0xcb, 0x51, 0xe7, 0x22, 0x44, 0x56, 0xcd, 0xb1, 0x0d, 0x97, 0xa3, 0xcc, 0x45, 0x62, 0x59, 0x98, + 0x40, 0xe0, 0xfe, 0x93, 0x30, 0x47, 0x96, 0x44, 0x82, 0x6d, 0xd6, 0xbf, 0x63, 0xa3, 0xe6, 0x9b, + 0x32, 0x6c, 0xab, 0x0f, 0xc2, 0x74, 0xb0, 0x7f, 0xc7, 0x46, 0xce, 0x45, 0xb9, 0xf6, 0x19, 0x70, + 0xa9, 0x87, 0xff, 0x1f, 0xc9, 0x19, 0x62, 0xec, 0x7b, 0xb5, 0xa3, 0x3a, 0x43, 0x1c, 0xeb, 0x7e, + 0xed, 0xef, 0x44, 0x23, 0xea, 0x7f, 0xce, 0x0e, 0xf3, 0xfe, 0x7d, 0xdc, 0xfc, 0x80, 0x7d, 0xdc, + 0x8f, 0xf0, 0x58, 0x36, 0x45, 0x2c, 0xef, 0x97, 0x15, 0xe1, 0x18, 0xc7, 0xda, 0x77, 0x87, 0x70, + 0x5e, 0x10, 0xe0, 0x5c, 0x3a, 0x12, 0x2f, 0x13, 0x38, 0x38, 0x99, 0x8f, 0xc6, 0xdc, 0x8f, 0x66, + 0xd8, 0x8e, 0xfb, 0x4e, 0x65, 0xe4, 0x0f, 0x9d, 0xca, 0x10, 0x5a, 0x7a, 0xe1, 0x88, 0x2d, 0xfd, + 0xa3, 0xbc, 0x76, 0xb4, 0x44, 0xed, 0x78, 0x8e, 0x3c, 0x22, 0xe3, 0x1b, 0x99, 0xdf, 0x13, 0xaa, + 0xc7, 0x45, 0x41, 0x3d, 0x2a, 0x47, 0x63, 0x26, 0x7b, 0xfd, 0xf8, 0x8d, 0x60, 0x42, 0x7b, 0xcc, + 0xed, 0x7d, 0xd4, 0xad, 0x62, 0x41, 0x88, 0x63, 0x1b, 0xb9, 0x47, 0xd9, 0x2a, 0x1e, 0xc6, 0xc9, + 0x04, 0x62, 0xb9, 0xcd, 0xc3, 0x2c, 0xe1, 0xe9, 0xa2, 0xd9, 0xd9, 0xc5, 0x1e, 0x7a, 0x1d, 0xf5, + 0x51, 0x0c, 0x22, 0x67, 0x8e, 0x29, 0xbc, 0x51, 0xdc, 0x79, 0xd9, 0xb4, 0x1e, 0x1d, 0x94, 0xc9, + 0x45, 0x8e, 0xc1, 0x49, 0x47, 0x60, 0x1c, 0xca, 0x41, 0xf6, 0x90, 0x7d, 0x88, 0xba, 0xdb, 0xac, + 0x1b, 0xd7, 0xec, 0x03, 0x0f, 0xbd, 0x68, 0x0c, 0x1d, 0xf4, 0x12, 0x14, 0xbb, 0x84, 0x1a, 0x3b, + 0x96, 0x91, 0x3c, 0xdd, 0x61, 0x22, 0xa0, 0xe5, 0xeb, 0xec, 0xcf, 0xb4, 0x67, 0x33, 0x22, 0x39, + 0x52, 0x3a, 0x93, 0x3e, 0x9b, 0x31, 0xa4, 0xfc, 0x89, 0xdc, 0xd1, 0x33, 0xed, 0x97, 0x6e, 0xee, + 0x9b, 0xde, 0x98, 0x22, 0x40, 0x74, 0x7d, 0x5a, 0x41, 0x04, 0x08, 0xf2, 0x92, 0xf6, 0xc4, 0x29, + 0x27, 0x15, 0xff, 0xf7, 0x49, 0x9f, 0x38, 0x4d, 0x2e, 0x3e, 0x7b, 0x4c, 0x7e, 0x98, 0xb6, 0xac, + 0x0b, 0xd4, 0xf9, 0x36, 0x43, 0xbf, 0xde, 0x91, 0x1b, 0x0b, 0x65, 0xed, 0xf8, 0x1a, 0xcb, 0xc0, + 0xf2, 0xb3, 0x07, 0xe6, 0x67, 0xbe, 0x1e, 0x0a, 0xcb, 0xf8, 0xd2, 0xc1, 0x2e, 0xba, 0x0f, 0xa6, + 0x5b, 0x0e, 0xc6, 0x35, 0x6b, 0xc7, 0xf6, 0xa5, 0xeb, 0xf9, 0xcf, 0x01, 0x24, 0xec, 0xcd, 0xc7, + 0x63, 0x0f, 0x1b, 0x9d, 0xe8, 0xfc, 0x59, 0xf0, 0x8a, 0x5e, 0xa5, 0x40, 0xbe, 0xe9, 0x19, 0x1e, + 0x9a, 0x09, 0xb1, 0x45, 0x2f, 0xe2, 0xb1, 0xb8, 0x4f, 0xc4, 0xe2, 0x36, 0x41, 0x16, 0x84, 0x83, + 0x45, 0xff, 0xff, 0x18, 0x00, 0x10, 0x4c, 0x3f, 0xe2, 0xda, 0x96, 0x9f, 0x23, 0x38, 0x22, 0x19, + 0xbc, 0xa3, 0xd7, 0x84, 0xe2, 0x7e, 0x40, 0x10, 0xf7, 0x93, 0xe5, 0x8a, 0x98, 0xc0, 0x4a, 0x9b, + 0x02, 0x33, 0xbe, 0x68, 0xd7, 0xb0, 0xd1, 0x71, 0xd1, 0xd7, 0x45, 0xca, 0x1f, 0x23, 0x66, 0xf4, + 0x01, 0xe9, 0x60, 0x9e, 0xb4, 0x56, 0x21, 0xf1, 0x78, 0x8f, 0x8e, 0x60, 0xf3, 0x5f, 0x11, 0x83, + 0x99, 0xdc, 0x05, 0x79, 0xd3, 0xda, 0xb1, 0x99, 0x7f, 0xe1, 0x8d, 0x31, 0xb4, 0x7d, 0x9d, 0xd0, + 0x49, 0x46, 0xc9, 0x48, 0x9f, 0xc9, 0x6c, 0x4d, 0xe4, 0xd2, 0xbc, 0xbc, 0x5f, 0x3a, 0xfa, 0x3f, + 0x87, 0x0a, 0x5b, 0xd3, 0x20, 0xdf, 0x33, 0xbc, 0x3d, 0x56, 0x34, 0x79, 0xf6, 0x6d, 0xe4, 0x03, + 0xcb, 0xb0, 0x6c, 0xeb, 0xda, 0xbe, 0xf9, 0xfc, 0xf0, 0x6e, 0x5e, 0x21, 0xcd, 0xe7, 0x7c, 0x17, + 0x5b, 0xd8, 0x31, 0x3c, 0xdc, 0xbc, 0xb2, 0x4b, 0xe6, 0x58, 0xd3, 0x3a, 0x9f, 0x94, 0x5a, 0xff, + 0x7d, 0x8e, 0xe3, 0xf5, 0x7f, 0xc7, 0xec, 0x62, 0x12, 0xe9, 0x89, 0xe9, 0x7f, 0xf0, 0x9e, 0x4a, + 0xff, 0x07, 0x14, 0x91, 0x3d, 0x1a, 0xff, 0xa2, 0xc0, 0x5c, 0xd3, 0x57, 0xb8, 0xe6, 0xc1, 0xfe, + 0xbe, 0xe1, 0x5c, 0x43, 0x4f, 0x88, 0x50, 0xe1, 0x54, 0x33, 0x27, 0xfa, 0xa5, 0xfc, 0xba, 0xf4, + 0xb5, 0xd4, 0xac, 0x69, 0x73, 0x25, 0xa4, 0x6e, 0x07, 0x4f, 0x83, 0x82, 0xaf, 0xde, 0x81, 0xc7, + 0x65, 0x62, 0x43, 0xa0, 0x39, 0x25, 0x23, 0x62, 0x0d, 0xe5, 0x6d, 0x02, 0xd1, 0x38, 0x14, 0x38, + 0xd9, 0xf4, 0x8c, 0xf6, 0xe5, 0x55, 0xdb, 0xb1, 0x0f, 0x3c, 0xd3, 0xc2, 0x2e, 0x7a, 0x5c, 0x84, + 0x40, 0xa0, 0xff, 0xb9, 0x48, 0xff, 0xd1, 0xbf, 0xe6, 0x64, 0x47, 0xd1, 0xb0, 0x5b, 0xe5, 0xc9, + 0xc7, 0x04, 0xb8, 0x92, 0x1b, 0x17, 0x65, 0x28, 0x66, 0x2f, 0xb4, 0x37, 0xab, 0x50, 0xaa, 0x3e, + 0xda, 0xb3, 0x1d, 0x6f, 0xdd, 0x6e, 0x1b, 0x5d, 0xd7, 0xb3, 0x1d, 0x8c, 0x1a, 0x89, 0x52, 0xf3, + 0x7b, 0x98, 0x8e, 0xdd, 0x8e, 0x06, 0x47, 0xf6, 0xc6, 0xab, 0x9d, 0x2a, 0xea, 0xf8, 0x87, 0xa4, + 0x77, 0x19, 0xa9, 0x54, 0xfa, 0x39, 0x8a, 0xd1, 0xf3, 0x41, 0x5d, 0x5a, 0xba, 0xc3, 0x12, 0x72, + 0x3b, 0x8f, 0x52, 0x4c, 0x4d, 0x60, 0xa9, 0x5c, 0x81, 0xf9, 0xe6, 0xc1, 0xa5, 0x90, 0x88, 0xcb, + 0x1b, 0x21, 0xaf, 0x97, 0x8e, 0x62, 0xc1, 0x14, 0x8f, 0x27, 0x14, 0x23, 0xdf, 0x5b, 0x61, 0xde, + 0xe5, 0xb3, 0x31, 0xbc, 0xc5, 0x44, 0xc9, 0xe8, 0x15, 0xc3, 0x4b, 0xcd, 0x5e, 0x80, 0xef, 0x51, + 0x60, 0xbe, 0xd1, 0xc3, 0x16, 0xee, 0x50, 0x2f, 0x48, 0x41, 0x80, 0xaf, 0x4a, 0x29, 0x40, 0x81, + 0x50, 0x8c, 0x00, 0x23, 0x8f, 0xe5, 0xe5, 0x40, 0x78, 0x51, 0x42, 0x2a, 0xc1, 0x25, 0x95, 0x96, + 0xbd, 0xe0, 0x3e, 0xab, 0xc0, 0xac, 0x7e, 0x60, 0x6d, 0x3a, 0xb6, 0x3f, 0x1a, 0x3b, 0xe8, 0xfe, + 0xa8, 0x83, 0xb8, 0x13, 0x4e, 0x75, 0x0e, 0x1c, 0xb2, 0xfe, 0x54, 0xb3, 0x9a, 0xb8, 0x6d, 0x5b, + 0x1d, 0x97, 0xd4, 0xa3, 0xa0, 0x1f, 0xfe, 0x70, 0x6f, 0xfe, 0x25, 0x7f, 0xa9, 0xe6, 0xd0, 0x4b, + 0xa5, 0x43, 0xe5, 0xd0, 0xca, 0x73, 0x45, 0xcb, 0xf7, 0x04, 0x92, 0x01, 0x71, 0x86, 0x95, 0x90, + 0xbd, 0x70, 0x3f, 0xa5, 0x80, 0x56, 0x6e, 0xb7, 0xed, 0x03, 0xcb, 0x6b, 0xe2, 0x2e, 0x6e, 0x7b, + 0x2d, 0xc7, 0x68, 0x63, 0xde, 0x7e, 0x2e, 0x81, 0xda, 0x31, 0x1d, 0xd6, 0x07, 0xfb, 0x8f, 0x4c, + 0x8e, 0xaf, 0x92, 0xde, 0x71, 0xa4, 0xb5, 0x3c, 0x5c, 0x4a, 0x0a, 0x71, 0xca, 0xed, 0x2b, 0x4a, + 0x16, 0x94, 0xbd, 0x54, 0x3f, 0xaa, 0xc0, 0x4c, 0xd0, 0x63, 0xef, 0xca, 0x08, 0xf3, 0x87, 0x53, + 0x4e, 0x46, 0x42, 0xe2, 0x29, 0x64, 0xf8, 0x8e, 0x14, 0xb3, 0x8a, 0x38, 0xfa, 0xe9, 0x44, 0x57, + 0x4e, 0x2f, 0x3a, 0xff, 0xb5, 0xde, 0xd8, 0x5e, 0x69, 0xac, 0x2f, 0x57, 0xf5, 0x92, 0x8a, 0x3e, + 0xa7, 0x40, 0x7e, 0xd3, 0xb4, 0x76, 0xf9, 0x88, 0x66, 0xa7, 0x7d, 0x3b, 0xb2, 0x83, 0x1f, 0x65, + 0x2d, 0x9d, 0xbe, 0x68, 0x77, 0xc3, 0x69, 0xeb, 0x60, 0xff, 0x12, 0x76, 0x1a, 0x3b, 0x64, 0x94, + 0x75, 0x5b, 0x76, 0x13, 0x5b, 0xd4, 0x08, 0x2d, 0xe8, 0x03, 0xbf, 0x89, 0x26, 0x98, 0xc4, 0xe4, + 0xc1, 0xe7, 0x24, 0x46, 0xe2, 0x21, 0x53, 0x0a, 0xc7, 0x54, 0xaa, 0x69, 0xc3, 0x00, 0xe2, 0xd9, + 0x6b, 0xea, 0x6f, 0x16, 0xe0, 0x4c, 0xd9, 0xba, 0x46, 0x6c, 0x0a, 0xda, 0xc1, 0x57, 0xf6, 0x0c, + 0x6b, 0x17, 0x93, 0x01, 0x22, 0x94, 0x38, 0x1f, 0xe2, 0x3f, 0x27, 0x86, 0xf8, 0xd7, 0x74, 0x98, + 0xb2, 0x9d, 0x0e, 0x76, 0x96, 0xae, 0x11, 0x9e, 0xfa, 0x97, 0x9d, 0x59, 0x9b, 0x1c, 0x54, 0xc4, + 0x22, 0x23, 0xbf, 0xd8, 0xa0, 0xff, 0xeb, 0x01, 0xa1, 0xf3, 0x77, 0xc2, 0x14, 0x4b, 0xd3, 0xe6, + 0x60, 0xba, 0xa1, 0x2f, 0x57, 0xf5, 0xed, 0xda, 0x72, 0xe9, 0x84, 0x76, 0x1d, 0x9c, 0xac, 0xb5, + 0xaa, 0x7a, 0xb9, 0x55, 0x6b, 0xd4, 0xb7, 0x49, 0x7a, 0x29, 0x87, 0x5e, 0x9c, 0x97, 0xf5, 0xec, + 0x4d, 0x66, 0x66, 0x10, 0xac, 0x3a, 0x4c, 0xb5, 0x69, 0x06, 0x32, 0x84, 0xce, 0xa6, 0xaa, 0x1d, + 0x23, 0x48, 0x13, 0xf4, 0x80, 0x90, 0x76, 0x33, 0xc0, 0x55, 0xc7, 0xb6, 0x76, 0xa3, 0x53, 0x87, + 0xd3, 0x3a, 0x97, 0x82, 0x5e, 0x94, 0x83, 0x22, 0xfd, 0x87, 0x5c, 0x69, 0x42, 0x9e, 0x22, 0xc1, + 0x07, 0xef, 0xbe, 0xc5, 0x4b, 0xe4, 0x15, 0x4d, 0xb4, 0xd8, 0xab, 0xaf, 0x8b, 0x54, 0x06, 0xd4, + 0x12, 0x66, 0x55, 0xb9, 0x0b, 0x8a, 0xf4, 0x5f, 0xe6, 0x75, 0x10, 0x1f, 0x9e, 0x94, 0x66, 0x93, + 0xf4, 0x53, 0x96, 0x97, 0x69, 0xf6, 0xda, 0xfc, 0x2b, 0x0a, 0x4c, 0xd7, 0xb1, 0x57, 0xd9, 0xc3, + 0xed, 0xcb, 0xe8, 0x49, 0xe2, 0x02, 0x68, 0xd7, 0xc4, 0x96, 0xf7, 0xf0, 0x7e, 0x37, 0x5c, 0x00, + 0x0d, 0x12, 0xd0, 0xf7, 0xf0, 0x9d, 0xef, 0x73, 0x45, 0xfd, 0xb9, 0x63, 0x40, 0x5d, 0x83, 0x12, + 0x62, 0x54, 0xe6, 0x2c, 0x14, 0x1d, 0xec, 0x1e, 0x74, 0x83, 0x45, 0x34, 0xf6, 0x86, 0xde, 0x10, + 0x8a, 0xb3, 0x22, 0x88, 0xf3, 0x2e, 0xf9, 0x22, 0x26, 0x10, 0xef, 0x34, 0x0f, 0x53, 0x35, 0xcb, + 0xf4, 0x4c, 0xa3, 0x8b, 0x5e, 0x9a, 0x87, 0xf9, 0x26, 0xf6, 0x36, 0x0d, 0xc7, 0xd8, 0xc7, 0x1e, + 0x76, 0x5c, 0xf4, 0x15, 0xb1, 0x4f, 0xe8, 0x75, 0x0d, 0x6f, 0xc7, 0x76, 0xf6, 0x03, 0xd5, 0x0c, + 0xde, 0x7d, 0xd5, 0xbc, 0x82, 0x1d, 0x37, 0xe2, 0x2b, 0x78, 0xf5, 0xbf, 0x5c, 0xb5, 0x9d, 0xcb, + 0xfe, 0x20, 0xc8, 0xa6, 0x69, 0xec, 0xd5, 0xa7, 0xd7, 0xb5, 0x77, 0xd7, 0xf1, 0x15, 0x1c, 0x84, + 0x53, 0x0b, 0xdf, 0xfd, 0xb9, 0x40, 0xc7, 0xae, 0xdb, 0x9e, 0xdf, 0x69, 0xaf, 0xdb, 0xbb, 0x34, + 0xde, 0xec, 0xb4, 0x2e, 0x26, 0x46, 0xb9, 0x8c, 0x2b, 0x98, 0xe4, 0x2a, 0xf2, 0xb9, 0x58, 0xa2, + 0xb6, 0x08, 0x5a, 0xf8, 0x5b, 0x0b, 0x77, 0xf1, 0x3e, 0xf6, 0x9c, 0x6b, 0xe4, 0x5a, 0x89, 0x69, + 0x7d, 0xc0, 0x17, 0x36, 0x40, 0xcb, 0x4f, 0xd6, 0x99, 0xf4, 0x16, 0x05, 0xc9, 0x1d, 0x69, 0xb2, + 0x2e, 0x43, 0x71, 0x22, 0xd7, 0x66, 0xa9, 0xbe, 0x35, 0xf3, 0xe3, 0x2a, 0xe4, 0xc9, 0xe0, 0xf9, + 0x96, 0x9c, 0xb0, 0xc2, 0xb4, 0x8f, 0x5d, 0xd7, 0xd8, 0xc5, 0xc1, 0x0a, 0x13, 0x7b, 0xd5, 0xee, + 0x81, 0x42, 0x97, 0x60, 0x4a, 0x07, 0x87, 0x27, 0x08, 0x35, 0xf3, 0x0d, 0x0c, 0x9f, 0x56, 0x38, + 0x12, 0x10, 0xb8, 0x75, 0xfa, 0xc7, 0xf9, 0x07, 0xa1, 0x40, 0xe1, 0x9f, 0x81, 0xc2, 0x72, 0x75, + 0x69, 0x6b, 0xb5, 0x74, 0xc2, 0x7f, 0x0c, 0xf8, 0x9b, 0x81, 0xc2, 0x4a, 0xb9, 0x55, 0x5e, 0x2f, + 0x29, 0x7e, 0x3d, 0x6a, 0xf5, 0x95, 0x46, 0x49, 0xf5, 0x13, 0x37, 0xcb, 0xf5, 0x5a, 0xa5, 0x94, + 0xd7, 0x66, 0x61, 0xea, 0x62, 0x59, 0xaf, 0xd7, 0xea, 0xab, 0xa5, 0x02, 0xfa, 0x0b, 0x1e, 0xbf, + 0x7b, 0x45, 0xfc, 0x6e, 0x8d, 0xe3, 0x69, 0x10, 0x64, 0x3f, 0x11, 0x42, 0x76, 0xbf, 0x00, 0xd9, + 0xd7, 0xcb, 0x10, 0x99, 0x80, 0x3b, 0x53, 0x11, 0xa6, 0x36, 0x1d, 0xbb, 0x8d, 0x5d, 0x17, 0xfd, + 0x88, 0x02, 0xc5, 0x8a, 0x61, 0xb5, 0x71, 0x17, 0xdd, 0x10, 0x41, 0x45, 0x5d, 0x45, 0x73, 0xe1, + 0x69, 0xb1, 0xbf, 0xcf, 0xc9, 0xf6, 0x7e, 0x8c, 0xee, 0x22, 0xa5, 0x19, 0x23, 0x1f, 0xb9, 0x5e, + 0x2e, 0x91, 0xd4, 0x04, 0xae, 0xd6, 0x51, 0x60, 0x86, 0xad, 0x06, 0x5c, 0xc2, 0xfc, 0x3c, 0xfc, + 0x2b, 0x39, 0xd9, 0xc9, 0x61, 0x50, 0x83, 0x90, 0x4c, 0x8c, 0x3c, 0xe4, 0x26, 0x82, 0xc3, 0xa8, + 0x4d, 0x60, 0xf3, 0x50, 0x81, 0xd9, 0x2d, 0xcb, 0x1d, 0x24, 0x14, 0xf9, 0x38, 0xfc, 0x41, 0x35, + 0x38, 0x42, 0x47, 0x8a, 0xc3, 0x3f, 0x9c, 0x5e, 0xf6, 0x82, 0xf9, 0x4a, 0x0e, 0x4e, 0xaf, 0x62, + 0x0b, 0x3b, 0x66, 0x9b, 0xd6, 0x20, 0x90, 0xc4, 0xfd, 0xa2, 0x24, 0x9e, 0x24, 0x70, 0x3e, 0xe8, + 0x0f, 0x51, 0x02, 0xaf, 0x0d, 0x25, 0xf0, 0x5c, 0x41, 0x02, 0x77, 0x4a, 0xd2, 0x99, 0xc0, 0x7d, + 0xea, 0x33, 0x30, 0x57, 0xb7, 0x3d, 0x73, 0xc7, 0x6c, 0x53, 0x1f, 0xb4, 0x1f, 0x53, 0x21, 0xbf, + 0x6e, 0xba, 0x1e, 0x2a, 0x47, 0xdd, 0xc9, 0x2d, 0x30, 0x6b, 0x5a, 0xed, 0xee, 0x41, 0x07, 0xeb, + 0xd8, 0xa0, 0xfd, 0xca, 0xb4, 0xce, 0x27, 0x45, 0x5b, 0xfb, 0x3e, 0x5b, 0x6a, 0xb0, 0xb5, 0xff, + 0x09, 0xe9, 0x65, 0x18, 0x9e, 0x05, 0x12, 0x90, 0x32, 0xc6, 0xee, 0x2a, 0xc3, 0xbc, 0xc5, 0x65, + 0x0d, 0x0c, 0xf6, 0xfe, 0x0b, 0x09, 0x78, 0x72, 0xba, 0xf8, 0x07, 0x7a, 0x9f, 0x54, 0x63, 0x1d, + 0xc6, 0x50, 0x3a, 0x64, 0x56, 0x46, 0x98, 0x24, 0x6b, 0xb0, 0x50, 0xab, 0xb7, 0xaa, 0x7a, 0xbd, + 0xbc, 0xce, 0xb2, 0xa8, 0xe8, 0x5f, 0x14, 0x28, 0xe8, 0xb8, 0xd7, 0xbd, 0xc6, 0x47, 0x9c, 0x66, + 0x8e, 0xe2, 0xb9, 0xd0, 0x51, 0x5c, 0x5b, 0x01, 0x30, 0xda, 0x7e, 0xc1, 0xe4, 0x4a, 0x2e, 0x65, + 0x60, 0x1c, 0x53, 0xa1, 0x82, 0xe5, 0x30, 0xb7, 0xce, 0xfd, 0x89, 0x5e, 0x26, 0xbd, 0x73, 0x24, + 0x50, 0x23, 0x1c, 0xc6, 0xf4, 0x09, 0xef, 0x97, 0xda, 0xec, 0x19, 0x4a, 0xee, 0x78, 0xc4, 0xff, + 0x79, 0x05, 0xf2, 0x2d, 0xbf, 0xb7, 0xe4, 0x3a, 0xce, 0xdf, 0x1a, 0x4d, 0xc7, 0x7d, 0x32, 0x31, + 0x3a, 0xfe, 0x00, 0xcc, 0xf1, 0x1a, 0xcb, 0x5c, 0x25, 0x12, 0x55, 0x5c, 0xf8, 0x61, 0x14, 0x0d, + 0x1f, 0xc0, 0xce, 0xf1, 0x88, 0xf8, 0x63, 0x4f, 0x06, 0xd8, 0xc0, 0xfb, 0x97, 0xb0, 0xe3, 0xee, + 0x99, 0x3d, 0xf4, 0x57, 0x2a, 0xcc, 0xac, 0x62, 0xaf, 0xe9, 0x19, 0xde, 0x81, 0xdb, 0xb7, 0xdd, + 0x69, 0xd9, 0x15, 0xa3, 0xbd, 0x87, 0x59, 0x77, 0x14, 0xbc, 0xa2, 0x77, 0xa9, 0xb2, 0xfe, 0x44, + 0x51, 0x39, 0x8b, 0x61, 0x19, 0x31, 0x98, 0x3c, 0x05, 0xf2, 0x1d, 0xc3, 0x33, 0x18, 0x16, 0x37, + 0xf4, 0x61, 0x11, 0x11, 0xd2, 0x49, 0x36, 0xf4, 0x0b, 0x8a, 0x8c, 0x43, 0x91, 0x44, 0xf9, 0xe9, + 0x40, 0x78, 0x5f, 0x6e, 0x04, 0x14, 0x4e, 0xc1, 0x7c, 0xbd, 0xd1, 0xda, 0x5e, 0x6f, 0xac, 0xae, + 0x56, 0xfd, 0xd4, 0x92, 0xaa, 0x9d, 0x05, 0x6d, 0xb3, 0xfc, 0xf0, 0x46, 0xb5, 0xde, 0xda, 0xae, + 0x37, 0x96, 0xab, 0xec, 0xcf, 0xbc, 0x76, 0x12, 0x66, 0x2b, 0xe5, 0xca, 0x5a, 0x90, 0x50, 0xd0, + 0xce, 0xc1, 0xe9, 0x8d, 0xea, 0xc6, 0x52, 0x55, 0x6f, 0xae, 0xd5, 0x36, 0xb7, 0x7d, 0x32, 0x2b, + 0x8d, 0xad, 0xfa, 0x72, 0xa9, 0xa8, 0x21, 0x38, 0xcb, 0x7d, 0xb9, 0xa8, 0x37, 0xea, 0xab, 0xdb, + 0xcd, 0x56, 0xb9, 0x55, 0x2d, 0x4d, 0x69, 0xd7, 0xc1, 0xc9, 0x4a, 0xb9, 0x4e, 0xb2, 0x57, 0x1a, + 0xf5, 0x7a, 0xb5, 0xd2, 0x2a, 0x4d, 0xa3, 0x7f, 0xcd, 0xc3, 0x6c, 0xcd, 0xad, 0x1b, 0xfb, 0xf8, + 0x82, 0xd1, 0x35, 0x3b, 0xe8, 0xa5, 0xdc, 0xcc, 0xe3, 0x56, 0x98, 0x77, 0xe8, 0x23, 0xee, 0xb4, + 0x4c, 0x4c, 0xd1, 0x9c, 0xd7, 0xc5, 0x44, 0x7f, 0x4e, 0x6e, 0x11, 0x02, 0xc1, 0x9c, 0x9c, 0xbe, + 0x69, 0x4b, 0x00, 0xf4, 0xa9, 0x15, 0x5d, 0x0e, 0x7b, 0xbe, 0xbf, 0x35, 0x19, 0xfb, 0xd8, 0xc5, + 0xce, 0x15, 0xb3, 0x8d, 0x83, 0x9c, 0x3a, 0xf7, 0x17, 0xfa, 0x82, 0x2a, 0xbb, 0xbf, 0xc8, 0x81, + 0xca, 0x55, 0x27, 0xa6, 0x37, 0xfc, 0x5e, 0x55, 0x66, 0x77, 0x50, 0x8a, 0x64, 0x3a, 0x4d, 0x79, + 0x85, 0x32, 0xda, 0xb2, 0x6d, 0xab, 0xd1, 0xd8, 0x6e, 0xae, 0x35, 0xf4, 0x56, 0x49, 0xd5, 0xe6, + 0x60, 0xda, 0x7f, 0x5d, 0x6f, 0xd4, 0x57, 0x4b, 0x79, 0xed, 0x0c, 0x9c, 0x5a, 0x2b, 0x37, 0xb7, + 0x6b, 0xf5, 0x0b, 0xe5, 0xf5, 0xda, 0xf2, 0x76, 0x65, 0xad, 0xac, 0x37, 0x4b, 0x05, 0xed, 0x06, + 0x38, 0xd3, 0xaa, 0x55, 0xf5, 0xed, 0x95, 0x6a, 0xb9, 0xb5, 0xa5, 0x57, 0x9b, 0xdb, 0xf5, 0xc6, + 0x76, 0xbd, 0xbc, 0x51, 0x2d, 0x15, 0xfd, 0xe6, 0x4f, 0x3e, 0x45, 0x6a, 0x33, 0x75, 0x58, 0x19, + 0xa7, 0x63, 0x94, 0x71, 0xa6, 0x5f, 0x19, 0x81, 0x57, 0x2b, 0xbd, 0xda, 0xac, 0xea, 0x17, 0xaa, + 0xa5, 0xd9, 0x41, 0xba, 0x36, 0xa7, 0x9d, 0x86, 0x92, 0xcf, 0xc3, 0x76, 0xad, 0x19, 0xe4, 0x5c, + 0x2e, 0xcd, 0xa3, 0x8f, 0x16, 0xe1, 0xac, 0x8e, 0x77, 0x4d, 0xd7, 0xc3, 0xce, 0xa6, 0x71, 0x6d, + 0x1f, 0x5b, 0x5e, 0xd0, 0xc9, 0xff, 0x53, 0x6a, 0x65, 0xdc, 0x80, 0xf9, 0x1e, 0xa5, 0xb1, 0x81, + 0xbd, 0x3d, 0xbb, 0xc3, 0x46, 0xe1, 0x27, 0xc5, 0xf6, 0x1c, 0x8b, 0x9b, 0x7c, 0x76, 0x5d, 0xfc, + 0x9b, 0xd3, 0x6d, 0x35, 0x41, 0xb7, 0xf3, 0xa3, 0xe8, 0xb6, 0x76, 0x13, 0xcc, 0x1c, 0xb8, 0xd8, + 0xa9, 0xee, 0x1b, 0x66, 0x37, 0xb8, 0xdc, 0x33, 0x4c, 0x40, 0x6f, 0xcf, 0xcb, 0x9e, 0x58, 0xe1, + 0xea, 0x32, 0x58, 0x8c, 0x31, 0x7d, 0xeb, 0xcd, 0x00, 0xac, 0xb2, 0x5b, 0x4e, 0x97, 0x29, 0x2b, + 0x97, 0xe2, 0xf3, 0x77, 0xc9, 0xec, 0x76, 0x4d, 0x6b, 0x37, 0xdc, 0xf7, 0x8f, 0x12, 0xd0, 0x2b, + 0x54, 0x99, 0x13, 0x2c, 0x69, 0x79, 0x4b, 0xd7, 0x9a, 0x5e, 0xa6, 0x4c, 0xb8, 0xdf, 0x3d, 0xdc, + 0x74, 0x8a, 0x5a, 0x09, 0xe6, 0x48, 0x1a, 0x6b, 0x81, 0xa5, 0x29, 0xbf, 0x0f, 0x0e, 0xc8, 0x6d, + 0x54, 0x5b, 0x6b, 0x8d, 0xe5, 0xf0, 0xdb, 0xb4, 0x4f, 0xd2, 0x67, 0xa6, 0x5c, 0x7f, 0x98, 0xb4, + 0xc6, 0x19, 0xed, 0x71, 0x70, 0x03, 0xd7, 0x61, 0x97, 0xd7, 0xf5, 0x6a, 0x79, 0xf9, 0xe1, 0xed, + 0xea, 0xf3, 0x6a, 0xcd, 0x56, 0x53, 0x6c, 0x5c, 0x41, 0x3b, 0x9a, 0xf5, 0xf9, 0xad, 0x6e, 0x94, + 0x6b, 0xeb, 0xac, 0x7f, 0x5f, 0x69, 0xe8, 0x1b, 0xe5, 0x56, 0x69, 0x0e, 0xfd, 0xb8, 0x0a, 0xa5, + 0x55, 0xec, 0x6d, 0xda, 0x8e, 0x67, 0x74, 0xd7, 0x4d, 0xeb, 0xf2, 0x96, 0xd3, 0x15, 0x26, 0x9b, + 0xd2, 0x61, 0x3a, 0xc4, 0x21, 0x52, 0x20, 0x18, 0xbf, 0x23, 0xde, 0x23, 0xd9, 0x22, 0x65, 0x8a, + 0x12, 0xd0, 0x0b, 0x14, 0x99, 0xe5, 0x6e, 0xf9, 0x52, 0xd3, 0xe9, 0xc9, 0x0b, 0x27, 0x3d, 0x3e, + 0x0f, 0x40, 0xad, 0x88, 0x5e, 0x92, 0x87, 0xe9, 0x15, 0xd3, 0x32, 0xba, 0xe6, 0xf3, 0x85, 0xf8, + 0xa5, 0x51, 0x1f, 0x93, 0x4b, 0xe8, 0x63, 0x94, 0x91, 0xc6, 0xcf, 0x1f, 0x52, 0x65, 0x97, 0x17, + 0x38, 0xd9, 0x07, 0x4c, 0xc6, 0x0c, 0x9e, 0x1f, 0x54, 0x64, 0x96, 0x17, 0x86, 0xd3, 0x4b, 0x87, + 0xe1, 0xc7, 0xff, 0x6d, 0xd8, 0x58, 0x7d, 0xed, 0x7b, 0x7a, 0x90, 0x2a, 0xcc, 0xa0, 0xdf, 0x57, + 0x01, 0xad, 0x62, 0xef, 0x02, 0x76, 0xc2, 0xa9, 0x00, 0xe9, 0xf5, 0x99, 0xbd, 0xcd, 0x35, 0xd9, + 0xb7, 0xf0, 0x00, 0x5e, 0x14, 0x01, 0x2c, 0x27, 0x34, 0x9e, 0x18, 0xd2, 0x31, 0x8d, 0xb7, 0x06, + 0x45, 0x97, 0x7c, 0x67, 0x6a, 0xf6, 0xb4, 0xf8, 0xe1, 0x92, 0x10, 0xe3, 0xa9, 0x53, 0xc2, 0x3a, + 0x23, 0x80, 0xbe, 0x1a, 0x4e, 0x82, 0xbe, 0x59, 0xd0, 0x8e, 0x95, 0x23, 0x33, 0x9b, 0x4e, 0x5f, + 0x9c, 0x6c, 0xd5, 0x65, 0x90, 0x7d, 0x83, 0x3e, 0x58, 0x80, 0xd3, 0x83, 0xaa, 0x83, 0x7e, 0x31, + 0x27, 0xec, 0xb0, 0x63, 0x32, 0xe4, 0xe7, 0xd8, 0x06, 0xa2, 0xff, 0xa2, 0x3d, 0x03, 0xce, 0x84, + 0xcb, 0x70, 0x2d, 0xbb, 0x8e, 0xaf, 0xba, 0x5d, 0xec, 0x79, 0xd8, 0x21, 0x55, 0x9b, 0xd6, 0x07, + 0x7f, 0xd4, 0x9e, 0x05, 0xd7, 0x9b, 0x96, 0x6b, 0x76, 0xb0, 0xd3, 0x32, 0x7b, 0x6e, 0xd9, 0xea, + 0xb4, 0x0e, 0x3c, 0xdb, 0x31, 0x0d, 0x76, 0x15, 0xe5, 0xb4, 0x1e, 0xf7, 0x59, 0xbb, 0x03, 0x4a, + 0xa6, 0xdb, 0xb0, 0x2e, 0xd9, 0x86, 0xd3, 0x31, 0xad, 0xdd, 0x75, 0xd3, 0xf5, 0x98, 0x07, 0xf0, + 0xa1, 0x74, 0xf4, 0xd7, 0xaa, 0xec, 0x61, 0xba, 0x21, 0xb0, 0xc6, 0x74, 0x28, 0xdf, 0xa3, 0xca, + 0x1c, 0x8f, 0x4b, 0x47, 0x3b, 0x9d, 0xb2, 0xbc, 0x78, 0xd2, 0x86, 0xc4, 0xe0, 0x11, 0x9c, 0x74, + 0x2d, 0x34, 0x3d, 0x30, 0x04, 0x2e, 0x54, 0xf5, 0xda, 0x4a, 0xad, 0xea, 0x9b, 0x15, 0x67, 0xe0, + 0x54, 0xf4, 0x6d, 0xf9, 0xe1, 0xed, 0x66, 0xb5, 0xde, 0x2a, 0x4d, 0xfb, 0xfd, 0x14, 0x4d, 0x5e, + 0x29, 0xd7, 0xd6, 0xab, 0xcb, 0xdb, 0xad, 0x86, 0xff, 0x65, 0x79, 0x34, 0xd3, 0x02, 0xbd, 0x28, + 0x0f, 0x27, 0x89, 0x6c, 0xaf, 0x11, 0xa9, 0xfa, 0x42, 0xe9, 0xf3, 0xb5, 0x0d, 0x01, 0x9a, 0xa1, + 0xe2, 0x45, 0xbf, 0x27, 0x7d, 0xd3, 0x26, 0x07, 0x61, 0x5f, 0x19, 0x31, 0x9a, 0xf1, 0x15, 0x45, + 0x26, 0x42, 0x85, 0x34, 0xd9, 0x74, 0x4a, 0xf1, 0xcf, 0x93, 0x1e, 0x71, 0xe2, 0xc1, 0x27, 0x56, + 0x66, 0x85, 0xfc, 0xfc, 0xbc, 0xcd, 0x9a, 0x4e, 0xd4, 0x61, 0x01, 0x80, 0xa4, 0x10, 0x0d, 0xa2, + 0x7a, 0x30, 0x70, 0xbc, 0x8a, 0xd3, 0x83, 0x72, 0xa5, 0x55, 0xbb, 0x50, 0x8d, 0xd3, 0x83, 0x4f, + 0xaa, 0x30, 0xbd, 0x8a, 0x3d, 0x7f, 0x4e, 0xe5, 0xa2, 0x67, 0x4b, 0xac, 0xff, 0xf8, 0x66, 0x4c, + 0xd7, 0x6e, 0x1b, 0xdd, 0x70, 0x19, 0x80, 0xbe, 0xa1, 0xef, 0x1e, 0xc5, 0x04, 0x09, 0x8a, 0x8e, + 0x19, 0xaf, 0xbe, 0x11, 0x0a, 0x9e, 0xff, 0x99, 0x2d, 0x43, 0x7f, 0x5d, 0xec, 0x70, 0xe5, 0x13, + 0x59, 0x36, 0x3c, 0x43, 0xa7, 0xf9, 0xb9, 0xd1, 0x49, 0xd2, 0x76, 0x89, 0x61, 0xe4, 0xdf, 0xa2, + 0xfd, 0xf9, 0x17, 0x2a, 0x9c, 0xa1, 0xed, 0xa3, 0xdc, 0xeb, 0x35, 0x3d, 0xdb, 0xc1, 0x3a, 0x6e, + 0x63, 0xb3, 0xe7, 0xf5, 0xad, 0xef, 0x39, 0x34, 0x35, 0xd8, 0x6c, 0x66, 0xaf, 0xe8, 0xa7, 0x54, + 0xd9, 0x18, 0xcc, 0x87, 0xda, 0x63, 0x5f, 0x79, 0x31, 0x8d, 0xfd, 0x23, 0x8a, 0x4c, 0x54, 0xe5, + 0x94, 0xc4, 0xd3, 0x01, 0xf5, 0x6b, 0xc7, 0x00, 0x54, 0xb0, 0x72, 0xa3, 0x57, 0x2b, 0xd5, 0xda, + 0xa6, 0x3f, 0x08, 0x3c, 0x1e, 0x6e, 0xdc, 0xdc, 0xd2, 0x2b, 0x6b, 0xe5, 0x66, 0x75, 0x5b, 0xaf, + 0xae, 0xd6, 0x9a, 0x2d, 0xe6, 0x94, 0x45, 0xff, 0x9a, 0xd2, 0x6e, 0x82, 0x73, 0xcd, 0xad, 0xa5, + 0x66, 0x45, 0xaf, 0x6d, 0x92, 0x74, 0xbd, 0x5a, 0xaf, 0x5e, 0x64, 0x5f, 0xa7, 0xd1, 0x07, 0x4a, + 0x30, 0xeb, 0x4f, 0x00, 0x9a, 0x74, 0x5e, 0x80, 0xfe, 0x36, 0x0f, 0xb3, 0x3a, 0x76, 0xed, 0xee, + 0x15, 0x32, 0x47, 0x98, 0xd4, 0xd4, 0xe3, 0xcb, 0xaa, 0xec, 0xf9, 0x6d, 0x8e, 0xd9, 0x45, 0x8e, + 0xd1, 0xf8, 0x89, 0xa6, 0x71, 0xc5, 0x30, 0xbb, 0xc6, 0x25, 0xd6, 0xd5, 0x4c, 0xeb, 0x51, 0x82, + 0xb6, 0x08, 0x9a, 0x7d, 0xd5, 0xc2, 0x4e, 0xb3, 0x7d, 0xb5, 0xea, 0xed, 0x95, 0x3b, 0x1d, 0x07, + 0xbb, 0x2e, 0x5b, 0xbd, 0x18, 0xf0, 0x45, 0xbb, 0x1d, 0x4e, 0x92, 0x54, 0x2e, 0x33, 0x75, 0x90, + 0xe9, 0x4f, 0x0e, 0x73, 0x96, 0xad, 0x6b, 0x41, 0xce, 0x02, 0x97, 0x33, 0x4a, 0xe6, 0x8f, 0x4b, + 0x14, 0xc5, 0x53, 0x3a, 0xb7, 0xc0, 0xac, 0x65, 0xec, 0xe3, 0xea, 0xa3, 0x3d, 0xd3, 0xc1, 0x2e, + 0x71, 0x8c, 0x51, 0x75, 0x3e, 0x09, 0x7d, 0x50, 0xea, 0xbc, 0xb9, 0x9c, 0xc4, 0xd2, 0xe9, 0xfe, + 0xea, 0x08, 0xaa, 0x3f, 0xa0, 0x9f, 0x51, 0xd1, 0x07, 0x54, 0x98, 0x63, 0x4c, 0x95, 0xad, 0x6b, + 0xb5, 0x0e, 0x7a, 0xbc, 0x60, 0xfc, 0x1a, 0x7e, 0x5a, 0x60, 0xfc, 0x92, 0x17, 0xf4, 0x7d, 0xaa, + 0xac, 0xbb, 0xf3, 0x80, 0x8a, 0x93, 0x32, 0xe2, 0x1d, 0x47, 0x77, 0xec, 0x03, 0xe6, 0xa8, 0x3a, + 0xad, 0xd3, 0x97, 0x2c, 0x17, 0xf5, 0xd0, 0xaf, 0x4a, 0x39, 0x53, 0x4b, 0x56, 0xe3, 0x98, 0x00, + 0xfc, 0x98, 0x0a, 0x0b, 0x8c, 0xab, 0x26, 0x3b, 0xe7, 0x23, 0x75, 0xe0, 0xed, 0xfb, 0xa5, 0x0d, + 0xc1, 0x01, 0xf5, 0x67, 0x25, 0x3d, 0x66, 0x80, 0xfc, 0x90, 0x54, 0x70, 0x34, 0xe9, 0x8a, 0x1c, + 0x13, 0x94, 0xef, 0xc8, 0xc3, 0xec, 0x96, 0x8b, 0x1d, 0xe6, 0xb7, 0x8f, 0xde, 0x90, 0x07, 0x75, + 0x15, 0x0b, 0x1b, 0xa9, 0x2f, 0x97, 0xf6, 0xf0, 0xe5, 0x2b, 0xcb, 0x11, 0xf5, 0x6d, 0xa4, 0x18, + 0xd8, 0x6e, 0x83, 0x05, 0x2a, 0xd2, 0xb2, 0xe7, 0xf9, 0x46, 0x62, 0xe0, 0x4d, 0xdb, 0x97, 0x3a, + 0x8e, 0xad, 0x22, 0x52, 0x96, 0x9f, 0xa5, 0xe2, 0xf3, 0xb4, 0x8e, 0x77, 0xe8, 0x7c, 0x36, 0xaf, + 0xf7, 0xa5, 0x6a, 0x4f, 0x85, 0xeb, 0xec, 0x1e, 0xa6, 0xe7, 0x57, 0xb8, 0xcc, 0x05, 0x92, 0x79, + 0xd0, 0x27, 0xf4, 0xb7, 0x52, 0xbe, 0xba, 0xf2, 0xd2, 0x49, 0xa7, 0x0b, 0xbd, 0xf1, 0x98, 0x24, + 0xa7, 0xa1, 0xe4, 0xe7, 0x20, 0xfb, 0x2f, 0x7a, 0xb5, 0xd9, 0x58, 0xbf, 0x50, 0x1d, 0xbc, 0x8c, + 0x51, 0x40, 0x2f, 0x56, 0x61, 0x66, 0xc9, 0xb1, 0x8d, 0x4e, 0xdb, 0x70, 0x3d, 0xf4, 0x55, 0x05, + 0xe6, 0x36, 0x8d, 0x6b, 0x5d, 0xdb, 0xe8, 0x10, 0xff, 0xfe, 0xbe, 0xbe, 0xa0, 0x47, 0x3f, 0x05, + 0x7d, 0x01, 0x7b, 0x15, 0x0f, 0x06, 0x86, 0x47, 0xf7, 0x72, 0x32, 0x17, 0x6a, 0x86, 0xdb, 0x7c, + 0xca, 0xa0, 0x60, 0xa5, 0x01, 0x5f, 0x8b, 0x3c, 0x4f, 0x31, 0x16, 0xe5, 0x07, 0xe4, 0xc2, 0x8f, + 0xca, 0x90, 0x3c, 0x9e, 0x5d, 0xf9, 0x97, 0x4c, 0x43, 0x71, 0x19, 0x13, 0x2b, 0xee, 0xbf, 0x29, + 0x30, 0xd5, 0xc4, 0x1e, 0xb1, 0xe0, 0xee, 0x11, 0x3c, 0x85, 0x3b, 0x24, 0x43, 0xe4, 0xc4, 0x1e, + 0xbc, 0xfb, 0x93, 0x75, 0xee, 0xbc, 0x35, 0x79, 0x4e, 0xe1, 0x91, 0x48, 0xcb, 0x5d, 0x64, 0x65, + 0x1e, 0xc9, 0x23, 0x31, 0x91, 0x54, 0xf6, 0xbe, 0x56, 0xef, 0x52, 0x98, 0x6b, 0x15, 0xd7, 0xeb, + 0xbd, 0x8e, 0xd7, 0xcf, 0x44, 0x6f, 0x33, 0xc6, 0x7c, 0x82, 0x73, 0xd4, 0xd3, 0x61, 0x8a, 0xca, + 0x3c, 0x98, 0x8f, 0xf6, 0xfb, 0x29, 0x50, 0x12, 0xe4, 0xec, 0x75, 0x90, 0x53, 0xd2, 0x45, 0x2d, + 0xbe, 0xf0, 0x89, 0xc4, 0x20, 0x98, 0xab, 0x63, 0xef, 0xaa, 0xed, 0x5c, 0x6e, 0x7a, 0x86, 0x87, + 0xd1, 0x3f, 0x2b, 0xa0, 0x36, 0xb1, 0xc7, 0x47, 0x3f, 0xa9, 0xc3, 0x29, 0x5a, 0x21, 0x96, 0x91, + 0xf4, 0xdf, 0xb4, 0x22, 0xb7, 0x0c, 0x14, 0x02, 0x97, 0x4f, 0x3f, 0xfc, 0x2b, 0xfa, 0x91, 0x81, + 0x41, 0x9f, 0x94, 0x01, 0x93, 0x06, 0x26, 0x19, 0x9e, 0x41, 0x5f, 0xc1, 0x62, 0xf4, 0xf4, 0x57, + 0xa4, 0xcc, 0x6a, 0x39, 0x9a, 0xc7, 0xd3, 0x15, 0x7c, 0xe8, 0x06, 0xc8, 0x57, 0xf6, 0x0c, 0x0f, + 0xbd, 0x53, 0x05, 0x28, 0x77, 0x3a, 0x1b, 0xd4, 0x07, 0x9c, 0x77, 0x48, 0x3b, 0x0f, 0x73, 0xed, + 0x3d, 0x23, 0xba, 0xdb, 0x84, 0xf6, 0x07, 0x42, 0x9a, 0xf6, 0x8c, 0xc8, 0x99, 0x9c, 0x4a, 0x15, + 0xf5, 0xc1, 0xe4, 0x97, 0xc1, 0x68, 0x87, 0x8e, 0xe6, 0x62, 0x28, 0xcc, 0xc4, 0x23, 0x74, 0xfe, + 0xef, 0x8b, 0x11, 0x7b, 0xf1, 0x73, 0x38, 0x46, 0x3a, 0x3c, 0x60, 0x13, 0x25, 0xa4, 0x3c, 0xe9, + 0x2d, 0x17, 0xd0, 0x23, 0x99, 0xaf, 0x89, 0x84, 0xae, 0xd5, 0xaa, 0x1d, 0x33, 0x10, 0x2d, 0x0b, + 0x98, 0x85, 0x5e, 0x96, 0x4b, 0x07, 0x5f, 0xb2, 0xe0, 0x9e, 0x0b, 0xf3, 0xb8, 0x63, 0x7a, 0x38, + 0xa8, 0x25, 0x13, 0x60, 0x12, 0xc4, 0xe2, 0x0f, 0xe8, 0x85, 0xd2, 0x41, 0xd7, 0x88, 0x40, 0x0f, + 0xd7, 0x28, 0xa6, 0xfd, 0xc9, 0x85, 0x51, 0x93, 0xa3, 0x99, 0x3d, 0x58, 0xdf, 0xad, 0xc2, 0x99, + 0x96, 0xbd, 0xbb, 0xdb, 0xc5, 0x81, 0x98, 0x30, 0xf5, 0xce, 0x44, 0xc6, 0x38, 0xe1, 0x22, 0x3b, + 0x41, 0xf6, 0x23, 0x66, 0x78, 0x94, 0xcc, 0x7f, 0x11, 0x4f, 0x4c, 0x25, 0xce, 0xa2, 0x88, 0xb8, + 0x06, 0xf2, 0x19, 0x83, 0x82, 0x5c, 0xc0, 0x67, 0x69, 0xb2, 0xd9, 0x03, 0xf1, 0x19, 0x05, 0xe6, + 0xe9, 0xcd, 0x95, 0x81, 0x82, 0x3e, 0x34, 0x46, 0x00, 0xd0, 0x57, 0x73, 0xb2, 0x7e, 0xb6, 0x44, + 0x26, 0x02, 0x27, 0x31, 0x22, 0x96, 0x0b, 0xaa, 0x32, 0x94, 0x5c, 0xf6, 0xa2, 0xfd, 0x6d, 0x15, + 0x66, 0x57, 0x71, 0xd0, 0xd2, 0xdc, 0xd4, 0x3d, 0xd1, 0x79, 0x98, 0x23, 0xd7, 0xb7, 0x35, 0xd8, + 0x31, 0x49, 0xba, 0x6a, 0x26, 0xa4, 0x69, 0xb7, 0xc2, 0xfc, 0x25, 0xbc, 0x63, 0x3b, 0xb8, 0x21, + 0x9c, 0xa5, 0x14, 0x13, 0x63, 0xc2, 0xd3, 0x09, 0x71, 0xd0, 0x96, 0x44, 0x6c, 0xee, 0x3c, 0x2c, + 0x4c, 0xae, 0x2a, 0x31, 0x63, 0xce, 0x33, 0x61, 0x9a, 0x21, 0x1f, 0x98, 0x69, 0x49, 0xfd, 0x62, + 0x98, 0x17, 0xfd, 0x64, 0x88, 0x68, 0x55, 0x40, 0xf4, 0x69, 0x69, 0x98, 0x98, 0xc8, 0xfd, 0xee, + 0x25, 0xae, 0xfc, 0xa5, 0x6b, 0xb5, 0x8e, 0x8b, 0x36, 0xd2, 0x61, 0x7a, 0x33, 0x40, 0xd8, 0x38, + 0x82, 0xb0, 0x16, 0x5c, 0x8a, 0x18, 0xb9, 0x3e, 0xf1, 0xa0, 0x5e, 0xbf, 0x38, 0x08, 0x3b, 0x63, + 0x06, 0x46, 0xee, 0x80, 0x9f, 0x0c, 0x27, 0xd9, 0xa3, 0xf3, 0x09, 0x15, 0xce, 0x84, 0xe7, 0x8f, + 0xd6, 0x0d, 0x37, 0x6a, 0x77, 0x95, 0x74, 0x10, 0x09, 0x07, 0x3e, 0xc2, 0xc6, 0xf2, 0x77, 0xe9, + 0xc6, 0x8c, 0x81, 0x9c, 0x8c, 0x17, 0x1d, 0xed, 0x4e, 0x38, 0x65, 0x1d, 0xec, 0x87, 0x52, 0x27, + 0x2d, 0x9e, 0xb5, 0xf0, 0xc3, 0x1f, 0xd2, 0x8c, 0x4c, 0x32, 0xcc, 0x4f, 0x64, 0x4e, 0x29, 0x1c, + 0xe9, 0x7a, 0x4a, 0x2a, 0x18, 0xd1, 0x3f, 0xe6, 0x52, 0xf5, 0x6e, 0xc3, 0xcf, 0x7c, 0xa5, 0xe8, + 0xa5, 0x8e, 0xf1, 0xc0, 0xd7, 0xf9, 0x29, 0x28, 0x54, 0xf7, 0x7b, 0xde, 0xb5, 0xf3, 0x4f, 0x84, + 0xf9, 0xa6, 0xe7, 0x60, 0x63, 0x9f, 0xdb, 0x19, 0xf0, 0xec, 0xcb, 0xd8, 0x0a, 0x76, 0x06, 0xc8, + 0xcb, 0xbd, 0xf7, 0xc0, 0x94, 0x65, 0x6f, 0x1b, 0x07, 0xde, 0x9e, 0xf6, 0xf8, 0x43, 0x47, 0xea, + 0x19, 0xf8, 0x0d, 0x16, 0xc3, 0xe8, 0x0b, 0xf7, 0x91, 0xb5, 0xe1, 0xa2, 0x65, 0x97, 0x0f, 0xbc, + 0xbd, 0xa5, 0x9b, 0x3e, 0xf6, 0x67, 0x37, 0xe7, 0x3e, 0xf9, 0x67, 0x37, 0xe7, 0x3e, 0xff, 0x67, + 0x37, 0xe7, 0xbe, 0xff, 0xcf, 0x6f, 0x3e, 0xf1, 0xc9, 0x3f, 0xbf, 0xf9, 0xc4, 0x67, 0xfe, 0xfc, + 0xe6, 0x13, 0xdf, 0xac, 0xf4, 0x2e, 0x5d, 0x2a, 0x12, 0x2a, 0x4f, 0xff, 0xff, 0x03, 0x00, 0x00, + 0xff, 0xff, 0x52, 0x00, 0x46, 0xbc, 0x8d, 0x11, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -82859,7 +82884,14 @@ func (m *RpcObjectCreateBookmarkRequest) MarshalToSizedBuffer(dAtA []byte) (int, dAtA[i] = 0 } i-- - dAtA[i] = 0x18 + dAtA[i] = 0x20 + } + if len(m.TemplateId) > 0 { + i -= len(m.TemplateId) + copy(dAtA[i:], m.TemplateId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) + i-- + dAtA[i] = 0x1a } if len(m.SpaceId) > 0 { i -= len(m.SpaceId) @@ -108054,6 +108086,13 @@ func (m *RpcBlockBookmarkFetchRequest) MarshalToSizedBuffer(dAtA []byte) (int, e _ = i var l int _ = l + if len(m.TemplateId) > 0 { + i -= len(m.TemplateId) + copy(dAtA[i:], m.TemplateId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) + i-- + dAtA[i] = 0x22 + } if len(m.Url) > 0 { i -= len(m.Url) copy(dAtA[i:], m.Url) @@ -108203,6 +108242,13 @@ func (m *RpcBlockBookmarkCreateAndFetchRequest) MarshalToSizedBuffer(dAtA []byte _ = i var l int _ = l + if len(m.TemplateId) > 0 { + i -= len(m.TemplateId) + copy(dAtA[i:], m.TemplateId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) + i-- + dAtA[i] = 0x2a + } if len(m.Url) > 0 { i -= len(m.Url) copy(dAtA[i:], m.Url) @@ -123868,6 +123914,10 @@ func (m *RpcObjectCreateBookmarkRequest) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } + l = len(m.TemplateId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } if m.WithChat { n += 2 } @@ -134628,6 +134678,10 @@ func (m *RpcBlockBookmarkFetchRequest) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } + l = len(m.TemplateId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } return n } @@ -134694,6 +134748,10 @@ func (m *RpcBlockBookmarkCreateAndFetchRequest) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } + l = len(m.TemplateId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } return n } @@ -162222,6 +162280,38 @@ func (m *RpcObjectCreateBookmarkRequest) Unmarshal(dAtA []byte) error { m.SpaceId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field WithChat", wireType) } @@ -230781,6 +230871,38 @@ func (m *RpcBlockBookmarkFetchRequest) Unmarshal(dAtA []byte) error { } m.Url = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) @@ -231219,6 +231341,38 @@ func (m *RpcBlockBookmarkCreateAndFetchRequest) Unmarshal(dAtA []byte) error { } m.Url = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 4bd663644..bd81047ba 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -1636,7 +1636,8 @@ message Rpc { message Request { google.protobuf.Struct details = 1; string spaceId = 2; - bool withChat = 3; + string templateId = 3; + bool withChat = 4; } message Response { @@ -5784,6 +5785,7 @@ message Rpc { string contextId = 1; string blockId = 2; string url = 3; + string templateId = 4; } message Response { @@ -5809,6 +5811,7 @@ message Rpc { string targetId = 2; anytype.model.Block.Position position = 3; string url = 4; + string templateId = 5; } message Response { From 968fe75a75d5a96eecdfae853da214bbdc7e00a5 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 14 Feb 2025 11:43:55 +0100 Subject: [PATCH 119/176] GO-4227 Make gateway port stable (#2125) --- pkg/lib/gateway/gateway.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkg/lib/gateway/gateway.go b/pkg/lib/gateway/gateway.go index 779e2bf46..b1ba13762 100644 --- a/pkg/lib/gateway/gateway.go +++ b/pkg/lib/gateway/gateway.go @@ -24,7 +24,6 @@ import ( "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/util/constant" - "github.com/anyproto/anytype-heart/util/netutil" "github.com/anyproto/anytype-heart/util/svg" ) @@ -66,10 +65,14 @@ func GatewayAddr() string { return addr } - port, err := netutil.GetRandomPort() - if err != nil { - log.Errorf("failed to get random port for gateway, go with the default %d", defaultPort) - port = defaultPort + port := defaultPort + for range 100 { + ln, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", port)) + if err == nil { + _ = ln.Close() + break + } + port++ } return fmt.Sprintf("127.0.0.1:%d", port) From 03c30d14bfbe2eec8f340acb61dc4853cb4e8047 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:44:26 +0100 Subject: [PATCH 120/176] Bump github.com/PuerkitoBio/goquery from 1.10.1 to 1.10.2 (#2127) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 80da857d4..6f72f0894 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.23.2 require ( github.com/JohannesKaufmann/html-to-markdown v1.4.0 - github.com/PuerkitoBio/goquery v1.10.1 + github.com/PuerkitoBio/goquery v1.10.2 github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.1.7 diff --git a/go.sum b/go.sum index 8d6a60de3..dc3e1f007 100644 --- a/go.sum +++ b/go.sum @@ -54,8 +54,8 @@ github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuN github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ= -github.com/PuerkitoBio/goquery v1.10.1 h1:Y8JGYUkXWTGRB6Ars3+j3kN0xg1YqqlwvdTV8WTFQcU= -github.com/PuerkitoBio/goquery v1.10.1/go.mod h1:IYiHrOMps66ag56LEH7QYDDupKXyo5A8qrjIx3ZtujY= +github.com/PuerkitoBio/goquery v1.10.2 h1:7fh2BdHcG6VFZsK7toXBT/Bh1z5Wmy8Q9MV9HqT2AM8= +github.com/PuerkitoBio/goquery v1.10.2/go.mod h1:0guWGjcLu9AYC7C1GHnpysHy056u9aEkUHwhdnePMCU= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= From 621383b1277f11e131a67aa3135d7b14f44cbbca Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 17 Feb 2025 12:07:35 +0100 Subject: [PATCH 121/176] GO-2852 Fix exif stripper (#2057) --- go.mod | 2 ++ go.sum | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 6f72f0894..96c28da04 100644 --- a/go.mod +++ b/go.mod @@ -321,3 +321,5 @@ replace github.com/gogo/protobuf => github.com/anyproto/protobuf v1.3.3-0.202402 replace google.golang.org/genproto/googleapis/rpc => google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 replace github.com/btcsuite/btcutil => github.com/btcsuite/btcd/btcutil v1.1.5 + +replace github.com/dsoprea/go-jpeg-image-structure/v2 => github.com/dchesterton/go-jpeg-image-structure/v2 v2.0.0-20240318203529-c3eea088bd38 diff --git a/go.sum b/go.sum index dc3e1f007..61f3c6384 100644 --- a/go.sum +++ b/go.sum @@ -224,6 +224,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= +github.com/dchesterton/go-jpeg-image-structure/v2 v2.0.0-20240318203529-c3eea088bd38 h1:GDvo0S+xL3iMJYofhBVQVM6EuAcTCoEV1096iN1pedI= +github.com/dchesterton/go-jpeg-image-structure/v2 v2.0.0-20240318203529-c3eea088bd38/go.mod h1:WaARaUjQuSuDCDFAiU/GwzfxMTJBulfEhqEA2Tx6B4Y= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= @@ -254,8 +256,6 @@ github.com/dsoprea/go-exif/v3 v3.0.1 h1:/IE4iW7gvY7BablV1XY0unqhMv26EYpOquVMwoBo github.com/dsoprea/go-exif/v3 v3.0.1/go.mod h1:10HkA1Wz3h398cDP66L+Is9kKDmlqlIJGPv8pk4EWvc= github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb h1:gwjJjUr6FY7zAWVEueFPrcRHhd9+IK81TcItbqw2du4= github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb/go.mod h1:kYIdx9N9NaOyD7U6D+YtExN7QhRm+5kq7//yOsRXQtM= -github.com/dsoprea/go-jpeg-image-structure/v2 v2.0.0-20221012074422-4f3f7e934102 h1:gmTXQdSuuuORRFPTS2uaYpAXU5oUNkXdeYSlZe5NvsE= -github.com/dsoprea/go-jpeg-image-structure/v2 v2.0.0-20221012074422-4f3f7e934102/go.mod h1:WaARaUjQuSuDCDFAiU/GwzfxMTJBulfEhqEA2Tx6B4Y= github.com/dsoprea/go-logging v0.0.0-20190624164917-c4f10aab7696/go.mod h1:Nm/x2ZUNRW6Fe5C3LxdY1PyZY5wmDv/s5dkPJ/VB3iA= github.com/dsoprea/go-logging v0.0.0-20200517223158-a10564966e9d/go.mod h1:7I+3Pe2o/YSU88W0hWlm9S22W7XI1JFNJ86U0zPKMf8= github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd h1:l+vLbuxptsC6VQyQsfD7NnEC8BZuFpz45PgY+pH8YTg= From cea4b0998b07b60d5de3e3f7321c888829cec107 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 17 Feb 2025 13:26:25 +0100 Subject: [PATCH 122/176] Don't try to upload file that you don't own --- core/block/editor/files.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/block/editor/files.go b/core/block/editor/files.go index d7777c40b..84675db7a 100644 --- a/core/block/editor/files.go +++ b/core/block/editor/files.go @@ -36,6 +36,7 @@ func (f *ObjectFactory) newFile(spaceId string, sb smartblock.SmartBlock) *File Text: stext.NewText(sb, store, f.eventSender), fileObjectService: f.fileObjectService, reconciler: f.fileReconciler, + accountService: f.accountService, } } @@ -46,6 +47,7 @@ type File struct { stext.Text fileObjectService fileobject.Service reconciler reconciler.Reconciler + accountService accountService } func (f *File) CreationStateMigration(ctx *smartblock.InitContext) migration.Migration { @@ -88,7 +90,10 @@ func (f *File) Init(ctx *smartblock.InitContext) error { f.SmartBlock.AddHook(f.reconciler.FileObjectHook(domain.FullID{SpaceID: f.SpaceID(), ObjectID: f.Id()}), smartblock.HookBeforeApply) - if !ctx.IsNewObject { + creator := ctx.State.LocalDetails().GetString(bundle.RelationKeyCreator) + myParticipantId := f.accountService.MyParticipantId(f.SpaceID()) + + if !ctx.IsNewObject && creator == myParticipantId { fullId := domain.FullID{ObjectID: f.Id(), SpaceID: f.SpaceID()} err = f.fileObjectService.EnsureFileAddedToSyncQueue(fullId, ctx.State.Details()) if err != nil { From 997fedad9b12b1890e5174571cacad9eba0f363d Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 17 Feb 2025 16:51:42 +0300 Subject: [PATCH 123/176] GO-4941 Add template service implementation --- .mockery.yaml | 3 + core/anytype/bootstrap.go | 4 +- core/block/bookmark/bookmark_service.go | 21 +- core/block/bookmark/bookmark_service_test.go | 25 +- core/block/editor/basic/basic.go | 3 +- core/block/editor/basic/extract_objects.go | 28 +- .../editor/basic/extract_objects_test.go | 92 +- core/block/object/objectcreator/creator.go | 31 +- .../object/objectcreator/creator_test.go | 41 +- core/block/service.go | 16 +- .../template/mock_template/mock_Service.go | 566 +++ core/block/template/service.go | 495 +-- core/block/template/templateimpl/impl.go | 496 +++ .../impl_test.go} | 94 +- docs/proto.md | 81 +- pb/commands.pb.go | 3689 +++++++---------- pb/protos/commands.proto | 30 +- 17 files changed, 2661 insertions(+), 3054 deletions(-) create mode 100644 core/block/template/mock_template/mock_Service.go create mode 100644 core/block/template/templateimpl/impl.go rename core/block/template/{service_test.go => templateimpl/impl_test.go} (83%) diff --git a/.mockery.yaml b/.mockery.yaml index 2711c2226..12e4ea8f5 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -240,3 +240,6 @@ packages: github.com/anyproto/anytype-heart/pb/service: interfaces: ClientCommandsServer: + github.com/anyproto/anytype-heart/core/block/template: + interfaces: + Service: diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 6bc02fac8..6659d0fd3 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -56,7 +56,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" - templateservice "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/block/template/templateimpl" "github.com/anyproto/anytype-heart/core/configfetcher" "github.com/anyproto/anytype-heart/core/debug" "github.com/anyproto/anytype-heart/core/debug/profiler" @@ -325,7 +325,7 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(account.New()). Register(profiler.New()). Register(identity.New(30*time.Second, 10*time.Second)). - Register(templateservice.New()). + Register(templateimpl.New()). Register(notifications.New(time.Second * 10)). Register(paymentserviceclient.New()). Register(nameservice.New()). diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index fe49956ca..35692aed3 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -14,6 +14,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/import/markdown/anymark" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/files/fileuploader" @@ -59,12 +60,6 @@ type ( DetailsSetter interface { SetDetails(ctx session.Context, objectId string, details []domain.Detail) (err error) } - - templateService interface { - CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, - ) (st *state.State, err error) - } ) type service struct { @@ -75,7 +70,7 @@ type service struct { tempDirService core.TempDirProvider spaceService space.Service fileUploaderFactory fileuploader.Service - templateService templateService + templateService template.Service } func New() Service { @@ -90,7 +85,7 @@ func (s *service) Init(a *app.App) (err error) { s.spaceService = app.MustComponent[space.Service](a) s.tempDirService = app.MustComponent[core.TempDirProvider](a) s.fileUploaderFactory = app.MustComponent[fileuploader.Service](a) - s.templateService = app.MustComponent[templateService](a) + s.templateService = app.MustComponent[template.Service](a) return nil } @@ -166,11 +161,17 @@ func (s *service) CreateBookmarkObject( objectId = rec.Details.GetString(bundle.RelationKeyId) objectDetails = rec.Details } else { - creationState, err := s.templateService.CreateTemplateStateWithDetails(spaceId, templateId, typeId, model.ObjectType_bookmark, details, true) + creationState, err := s.templateService.CreateTemplateStateWithDetails(template.CreateTemplateRequest{ + SpaceId: spaceId, + TemplateId: templateId, + TypeId: typeId, + Layout: model.ObjectType_bookmark, + Details: details, + WithTemplateValidation: true, + }) if err != nil { log.Errorf("failed to build state for bookmark: %v", err) } - creationState.SetDetails(details) objectId, objectDetails, err = s.creator.CreateSmartBlockFromState( ctx, spaceId, diff --git a/core/block/bookmark/bookmark_service_test.go b/core/block/bookmark/bookmark_service_test.go index 1be3f3ce4..737de49f6 100644 --- a/core/block/bookmark/bookmark_service_test.go +++ b/core/block/bookmark/bookmark_service_test.go @@ -10,6 +10,8 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/object/objectcreator/mock_objectcreator" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/block/template/mock_template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -38,7 +40,7 @@ type fixture struct { space *mock_clientspace.MockSpace spaceService *mock_space.MockService store *objectstore.StoreFixture - templateService *templateServiceMock + templateService *mock_template.MockService } func newFixture(t *testing.T) *fixture { @@ -49,7 +51,7 @@ func newFixture(t *testing.T) *fixture { store := objectstore.NewStoreFixture(t) creator := mock_objectcreator.NewMockService(t) - templateService := &templateServiceMock{t: t} + templateService := mock_template.NewMockService(t) s := &service{ detailsSetter: &detailsSetter{}, @@ -82,9 +84,14 @@ func TestService_CreateBookmarkObject(t *testing.T) { return "some_id", nil, nil }, ).Once() + fx.templateService.EXPECT().CreateTemplateStateWithDetails(mock.Anything).RunAndReturn(func(req template.CreateTemplateRequest) (*state.State, error) { + assert.Empty(t, req.TemplateId) + assert.Equal(t, model.ObjectType_bookmark, req.Layout) + return state.NewDoc("", nil).NewState(), nil + }) // when - _, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { return nil }) + _, _, err := fx.s.CreateBookmarkObject(nil, spaceId, "", details, func() *bookmark.ObjectContent { return nil }) // then assert.NoError(t, err) @@ -104,7 +111,7 @@ func TestService_CreateBookmarkObject(t *testing.T) { }}) // when - id, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { + id, _, err := fx.s.CreateBookmarkObject(nil, spaceId, "", details, func() *bookmark.ObjectContent { return &bookmark.ObjectContent{BookmarkContent: &model.BlockContentBookmark{}} }) @@ -233,13 +240,3 @@ Test ` const testHtmlBase64 = "" - -type templateServiceMock struct { - t *testing.T -} - -func (m *templateServiceMock) CreateTemplateStateWithDetails(templateId string, details *domain.Details, _ bool) (st *state.State, err error) { - assert.Empty(m.t, templateId) - assert.Equal(m.t, int64(model.ObjectType_bookmark), details.GetInt64(bundle.RelationKeyResolvedLayout)) - return state.NewDoc("", nil).NewState(), nil -} diff --git a/core/block/editor/basic/basic.go b/core/block/editor/basic/basic.go index 41f61a0a7..5e47cb004 100644 --- a/core/block/editor/basic/basic.go +++ b/core/block/editor/basic/basic.go @@ -17,6 +17,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/simple/link" relationblock "github.com/anyproto/anytype-heart/core/block/simple/relation" "github.com/anyproto/anytype-heart/core/block/simple/text" + templateSvc "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/files/fileobject" @@ -53,7 +54,7 @@ type CommonOperations interface { FeaturedRelationRemove(ctx session.Context, relations ...string) error ReplaceLink(oldId, newId string) error - ExtractBlocksToObjects(ctx session.Context, oc ObjectCreator, tsc templateStateCreator, req pb.RpcBlockListConvertToObjectsRequest) (linkIds []string, err error) + ExtractBlocksToObjects(ctx session.Context, oc ObjectCreator, tsc templateSvc.Service, req pb.RpcBlockListConvertToObjectsRequest) (linkIds []string, err error) SetObjectTypes(ctx session.Context, objectTypeKeys []domain.TypeKey, ignoreRestrictions bool) (err error) SetObjectTypesInState(s *state.State, objectTypeKeys []domain.TypeKey, ignoreRestrictions bool) (err error) diff --git a/core/block/editor/basic/extract_objects.go b/core/block/editor/basic/extract_objects.go index 2a7a62008..e9e45b368 100644 --- a/core/block/editor/basic/extract_objects.go +++ b/core/block/editor/basic/extract_objects.go @@ -6,9 +6,9 @@ import ( "github.com/globalsign/mgo/bson" - "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/simple" + templateSvc "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pb" @@ -21,19 +21,12 @@ type ObjectCreator interface { CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (id string, newDetails *domain.Details, err error) } -type templateStateCreator interface { - CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, - ) (st *state.State, err error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State -} - // ExtractBlocksToObjects extracts child blocks from the object to separate objects and // replaces these blocks to the links to these objects func (bs *basic) ExtractBlocksToObjects( ctx session.Context, objectCreator ObjectCreator, - templateStateCreator templateStateCreator, + templateStateCreator templateSvc.Service, req pb.RpcBlockListConvertToObjectsRequest, ) (linkIds []string, err error) { typeUniqueKey, err := domain.UnmarshalUniqueKey(req.ObjectTypeUniqueKey) @@ -77,7 +70,7 @@ func (bs *basic) ExtractBlocksToObjects( } func (bs *basic) prepareObjectState( - uk domain.UniqueKey, root simple.Block, creator templateStateCreator, req pb.RpcBlockListConvertToObjectsRequest, + uk domain.UniqueKey, root simple.Block, templateService templateSvc.Service, req pb.RpcBlockListConvertToObjectsRequest, ) (*state.State, error) { objType, err := bs.objectStore.GetObjectByUniqueKey(uk) if err != nil { @@ -90,11 +83,20 @@ func (bs *basic) prepareObjectState( details = createTargetObjectDetails(root.Model().GetText().GetText(), layout) ) - if req.ContextId == req.TemplateId { - return creator.CreateTemplateStateFromSmartBlock(bs, typeId, layout, details), nil + ctr := templateSvc.CreateTemplateRequest{ + SpaceId: bs.SpaceID(), + TemplateId: req.TemplateId, + TypeId: typeId, + Layout: layout, + Details: details, + WithTemplateValidation: true, } - return creator.CreateTemplateStateWithDetails(bs.SpaceID(), req.TemplateId, typeId, layout, details, true) + if req.ContextId == req.TemplateId { + return templateService.CreateTemplateStateFromSmartBlock(bs, ctr), nil + } + + return templateService.CreateTemplateStateWithDetails(ctr) } func insertBlocksToState( diff --git a/core/block/editor/basic/extract_objects_test.go b/core/block/editor/basic/extract_objects_test.go index 1dc48e6ca..67c5af6ff 100644 --- a/core/block/editor/basic/extract_objects_test.go +++ b/core/block/editor/basic/extract_objects_test.go @@ -6,6 +6,7 @@ import ( "github.com/globalsign/mgo/bson" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/anyproto/anytype-heart/core/block/editor/converter" @@ -15,6 +16,8 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/table" "github.com/anyproto/anytype-heart/core/block/editor/template" "github.com/anyproto/anytype-heart/core/block/simple" + templateSvc "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/block/template/mock_template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pb" @@ -44,6 +47,17 @@ func (tc testCreator) CreateSmartBlockFromState(_ context.Context, _ string, _ [ return id, nil, nil } +func blankTemplate() *state.State { + st := state.NewDoc("", nil).NewState() + template.InitTemplate(st, template.WithEmpty, + template.WithDefaultFeaturedRelations, + template.WithFeaturedRelations, + template.WithRequiredRelations, + template.WithTitle, + ) + return st +} + type testTemplateService struct { templates map[string]*state.State } @@ -52,8 +66,10 @@ func (tts testTemplateService) AddTemplate(id string, st *state.State) { tts.templates[id] = st } -func (tts testTemplateService) CreateTemplateStateWithDetails(id string, details *domain.Details, _ bool) (st *state.State, err error) { - if id == "" { +func (tts testTemplateService) CreateTemplateStateWithDetails( + _, templateId, _ string, _ model.ObjectTypeLayout, details *domain.Details, _ bool, +) (st *state.State, err error) { + if templateId == "" { st = state.NewDoc("", nil).NewState() template.InitTemplate(st, template.WithEmpty, template.WithDefaultFeaturedRelations, @@ -62,7 +78,7 @@ func (tts testTemplateService) CreateTemplateStateWithDetails(id string, details template.WithTitle, ) } else { - st = tts.templates[id] + st = tts.templates[templateId] } templateDetails := st.Details() newDetails := templateDetails.Merge(details) @@ -70,7 +86,9 @@ func (tts testTemplateService) CreateTemplateStateWithDetails(id string, details return st, nil } -func (tts testTemplateService) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, details *domain.Details) *state.State { +func (tts testTemplateService) CreateTemplateStateFromSmartBlock( + sb smartblock.SmartBlock, _ string, _ model.ObjectTypeLayout, _ *domain.Details, +) *state.State { return tts.templates[sb.Id()] } @@ -299,14 +317,27 @@ func TestExtractObjects(t *testing.T) { sb := makeTestObject() creator.Add(sb) - ts := testTemplateService{templates: map[string]*state.State{}} - var tmpl *state.State - if tc.templateId == objectId { - tmpl = sb.NewState() - } else { - tmpl = makeTemplateState(tc.templateId) - } - ts.AddTemplate(tc.templateId, tmpl) + fixture.ts.EXPECT().CreateTemplateStateWithDetails(mock.Anything).RunAndReturn(func(req templateSvc.CreateTemplateRequest) (tmpl *state.State, err error) { + assert.Equal(t, tc.templateId, req.TemplateId) + switch tc.templateId { + case objectId: + tmpl = sb.NewState() + default: + tmpl = makeTemplateState(tc.templateId) + } + // templateDetails := tmpl.Details() + // newDetails := templateDetails.Merge(req.Details) + // tmpl.SetDetails(newDetails) + return tmpl, nil + }).Maybe() + fixture.ts.EXPECT().CreateTemplateStateFromSmartBlock(mock.Anything, mock.Anything).RunAndReturn(func(_ smartblock.SmartBlock, _ templateSvc.CreateTemplateRequest) *state.State { + switch tc.templateId { + case objectId: + return sb.NewState() + default: + return makeTemplateState(tc.templateId) + } + }).Maybe() if tc.typeKey == "" { tc.typeKey = bundle.TypeKeyNote.String() @@ -319,7 +350,7 @@ func TestExtractObjects(t *testing.T) { ObjectTypeUniqueKey: domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, tc.typeKey).Marshal(), } ctx := session.NewContext() - linkIds, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, ts, req) + linkIds, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, fixture.ts, req) assert.NoError(t, err) gotBlockIds := []string{} @@ -359,12 +390,21 @@ func TestExtractObjects(t *testing.T) { sb := makeTestObject() creator.Add(sb) - ts := testTemplateService{templates: map[string]*state.State{}} tmpl := makeTemplateState("template") - ts.AddTemplate("template", tmpl) + fixture.ts.EXPECT().CreateTemplateStateWithDetails(mock.Anything).RunAndReturn(func(req templateSvc.CreateTemplateRequest) (*state.State, error) { + assert.Equal(t, "template", req.TemplateId) + templateDetails := tmpl.Details() + newDetails := templateDetails.Merge(req.Details) + tmpl.SetDetails(newDetails) + return tmpl, nil + }) + fixture.ts.EXPECT().CreateTemplateStateFromSmartBlock(mock.Anything, mock.Anything).RunAndReturn(func(_ smartblock.SmartBlock, _ templateSvc.CreateTemplateRequest) *state.State { + return tmpl + }).Maybe() req := pb.RpcBlockListConvertToObjectsRequest{ ContextId: "test", + TemplateId: "template", BlockIds: []string{"1"}, ObjectTypeUniqueKey: domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, bundle.TypeKeyNote.String()).Marshal(), Block: &model.Block{Id: "newId", Content: &model.BlockContentOfLink{ @@ -374,7 +414,7 @@ func TestExtractObjects(t *testing.T) { }}, } ctx := session.NewContext() - _, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, ts, req) + _, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, fixture.ts, req) assert.NoError(t, err) var block *model.Block for _, block = range sb.Blocks() { @@ -392,12 +432,21 @@ func TestExtractObjects(t *testing.T) { sb := makeTestObject() creator.Add(sb) - ts := testTemplateService{templates: map[string]*state.State{}} tmpl := makeTemplateState("template") - ts.AddTemplate("template", tmpl) + fixture.ts.EXPECT().CreateTemplateStateWithDetails(mock.Anything).RunAndReturn(func(req templateSvc.CreateTemplateRequest) (*state.State, error) { + assert.Equal(t, "template", req.TemplateId) + templateDetails := tmpl.Details() + newDetails := templateDetails.Merge(req.Details) + tmpl.SetDetails(newDetails) + return tmpl, nil + }) + fixture.ts.EXPECT().CreateTemplateStateFromSmartBlock(mock.Anything, mock.Anything).RunAndReturn(func(_ smartblock.SmartBlock, _ templateSvc.CreateTemplateRequest) *state.State { + return tmpl + }).Maybe() req := pb.RpcBlockListConvertToObjectsRequest{ ContextId: "test", + TemplateId: "template", BlockIds: []string{"1", "2"}, ObjectTypeUniqueKey: domain.MustUniqueKey(coresb.SmartBlockTypeObjectType, bundle.TypeKeyNote.String()).Marshal(), Block: &model.Block{Id: "newId", Content: &model.BlockContentOfLink{ @@ -407,7 +456,7 @@ func TestExtractObjects(t *testing.T) { }}, } ctx := session.NewContext() - _, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, ts, req) + _, err := NewBasic(sb, fixture.store, converter.NewLayoutConverter(), nil).ExtractBlocksToObjects(ctx, creator, fixture.ts, req) assert.NoError(t, err) var addedBlocks []*model.Block for _, message := range sb.Results.Events { @@ -612,11 +661,11 @@ func generateState(root string, blocks []simple.Block) *state.State { type fixture struct { t *testing.T store *spaceindex.StoreFixture + ts *mock_template.MockService } func newFixture(t *testing.T) *fixture { objectStore := spaceindex.NewStoreFixture(t) - objectStore.AddObjects(t, []spaceindex.TestObject{ { bundle.RelationKeyId: domain.String("id1"), @@ -630,8 +679,11 @@ func newFixture(t *testing.T) *fixture { }, }) + ts := mock_template.NewMockService(t) + return &fixture{ t: t, store: objectStore, + ts: ts, } } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index e0cd56c6f..24043e684 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" + "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" @@ -24,14 +25,6 @@ import ( ) type ( - templateService interface { - TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) - SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error - CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, - ) (st *state.State, err error) - } - bookmarkService interface { CreateObjectAndFetch( ctx context.Context, spaceId, templateId string, details *domain.Details, @@ -63,7 +56,7 @@ type service struct { objectStore objectstore.ObjectStore bookmarkService bookmarkService spaceService space.Service - templateService templateService + templateService template.Service archiver objectArchiver } @@ -75,7 +68,7 @@ func (s *service) Init(a *app.App) (err error) { s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) s.bookmarkService = app.MustComponent[bookmarkService](a) s.spaceService = app.MustComponent[space.Service](a) - s.templateService = app.MustComponent[templateService](a) + s.templateService = app.MustComponent[template.Service](a) s.archiver = app.MustComponent[objectArchiver](a) return nil } @@ -167,7 +160,14 @@ func (s *service) createTemplate( return "", nil, fmt.Errorf("failed to derive object type id: %w", err) } - createState, err := s.templateService.CreateTemplateStateWithDetails(space.Id(), "", typeId, layout, details, false) + createState, err := s.templateService.CreateTemplateStateWithDetails(template.CreateTemplateRequest{ + SpaceId: space.Id(), + TemplateId: "", + TypeId: typeId, + Layout: layout, + Details: details, + WithTemplateValidation: false, + }) if err != nil { return } @@ -191,7 +191,14 @@ func (s *service) createCommonObject( return "", nil, fmt.Errorf("failed to fetch target object type from store: %w", err) } - createState, err := s.templateService.CreateTemplateStateWithDetails(space.Id(), req.TemplateId, typeId, layout, details, true) + createState, err := s.templateService.CreateTemplateStateWithDetails(template.CreateTemplateRequest{ + SpaceId: space.Id(), + TemplateId: req.TemplateId, + TypeId: typeId, + Layout: layout, + Details: details, + WithTemplateValidation: true, + }) if err != nil { return } diff --git a/core/block/object/objectcreator/creator_test.go b/core/block/object/objectcreator/creator_test.go index 0b53da418..5d7350a7f 100644 --- a/core/block/object/objectcreator/creator_test.go +++ b/core/block/object/objectcreator/creator_test.go @@ -11,11 +11,12 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/block/template/mock_template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/space/clientspace" "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" "github.com/anyproto/anytype-heart/space/mock_space" "github.com/anyproto/anytype-heart/util/dateutil" @@ -26,7 +27,7 @@ const spaceId = "spc1" type fixture struct { spaceService *mock_space.MockService spc *mock_clientspace.MockSpace - templateService *testTemplateService + templateService *mock_template.MockService objectStore *objectstore.StoreFixture service Service } @@ -35,7 +36,7 @@ func newFixture(t *testing.T) *fixture { spaceService := mock_space.NewMockService(t) spc := mock_clientspace.NewMockSpace(t) - templateSvc := &testTemplateService{} + templateSvc := mock_template.NewMockService(t) store := objectstore.NewStoreFixture(t) s := &service{ @@ -53,29 +54,6 @@ func newFixture(t *testing.T) *fixture { } } -type testTemplateService struct { - templates map[string]*state.State -} - -func (tts *testTemplateService) CreateTemplateStateWithDetails(templateId string, details *domain.Details, withTemplateValidation bool) (*state.State, error) { - if tts.templates != nil { - if st, found := tts.templates[templateId]; found { - return st, nil - } - } - st := state.NewDoc(templateId, nil).NewState() - st.SetDetails(details) - return st, nil -} - -func (tts *testTemplateService) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) { - return "", nil -} - -func (tts *testTemplateService) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error { - return nil -} - func TestService_CreateObject(t *testing.T) { t.Run("template creation", func(t *testing.T) { // given @@ -88,6 +66,17 @@ func TestService_CreateObject(t *testing.T) { return key.Marshal(), nil }) + f.templateService.EXPECT().CreateTemplateStateWithDetails(mock.Anything).RunAndReturn(func(req template.CreateTemplateRequest) (*state.State, error) { + st := state.NewDoc(req.TemplateId, nil).NewState() + st.SetDetails(req.Details) + return st, nil + }) + f.templateService.EXPECT().SetDefaultTemplateInType(mock.Anything, mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, typeId string, templateId string) error { + assert.Equal(t, "test", templateId) + assert.Equal(t, bundle.TypeKeyTask.URL(), typeId) + return nil + }) + f.objectStore.AddObjects(t, spaceId, []objectstore.TestObject{ { bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), diff --git a/core/block/service.go b/core/block/service.go index 64b1a66e0..accb05ac8 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -28,6 +28,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/process" "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/event" @@ -93,7 +94,7 @@ type Service struct { restriction restriction.Service bookmark bookmarksvc.Service objectCreator objectcreator.Service - templateService templateService + templateService template.Service resolver idresolver.Resolver spaceService space.Service tempDirProvider core.TempDirProvider @@ -112,13 +113,6 @@ type builtinObjects interface { CreateObjectsForUseCase(ctx session.Context, spaceID string, req pb.RpcObjectImportUseCaseRequestUseCase) (code pb.RpcObjectImportUseCaseResponseErrorCode, err error) } -type templateService interface { - CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, - ) (st *state.State, err error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State -} - type openedObjects struct { objects map[string]bool lock *sync.Mutex @@ -135,7 +129,7 @@ func (s *Service) Init(a *app.App) (err error) { s.restriction = a.MustComponent(restriction.CName).(restriction.Service) s.bookmark = a.MustComponent("bookmark-importer").(bookmarksvc.Service) s.objectCreator = app.MustComponent[objectcreator.Service](a) - s.templateService = app.MustComponent[templateService](a) + s.templateService = app.MustComponent[template.Service](a) s.spaceService = a.MustComponent(space.CName).(space.Service) s.fileService = app.MustComponent[files.Service](a) s.resolver = a.MustComponent(idresolver.CName).(idresolver.Resolver) @@ -609,7 +603,8 @@ func (s *Service) ObjectToBookmark(ctx context.Context, id string, url string) ( return } -func (s *Service) CreateObjectFromUrl(ctx context.Context, req *pb.RpcObjectCreateFromUrlRequest, +func (s *Service) CreateObjectFromUrl( + ctx context.Context, req *pb.RpcObjectCreateFromUrlRequest, ) (id string, objectDetails *domain.Details, err error) { url, err := uri.NormalizeURI(req.Url) if err != nil { @@ -624,6 +619,7 @@ func (s *Service) CreateObjectFromUrl(ctx context.Context, req *pb.RpcObjectCrea createReq := objectcreator.CreateObjectRequest{ ObjectTypeKey: objectTypeKey, Details: details, + TemplateId: req.TemplateId, } id, objectDetails, err = s.objectCreator.CreateObject(ctx, req.SpaceId, createReq) if err != nil { diff --git a/core/block/template/mock_template/mock_Service.go b/core/block/template/mock_template/mock_Service.go new file mode 100644 index 000000000..c470a6087 --- /dev/null +++ b/core/block/template/mock_template/mock_Service.go @@ -0,0 +1,566 @@ +// Code generated by mockery. DO NOT EDIT. + +package mock_template + +import ( + context "context" + + app "github.com/anyproto/any-sync/app" + clientspace "github.com/anyproto/anytype-heart/space/clientspace" + + mock "github.com/stretchr/testify/mock" + + smartblock "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + + state "github.com/anyproto/anytype-heart/core/block/editor/state" + + template "github.com/anyproto/anytype-heart/core/block/template" +) + +// MockService is an autogenerated mock type for the Service type +type MockService struct { + mock.Mock +} + +type MockService_Expecter struct { + mock *mock.Mock +} + +func (_m *MockService) EXPECT() *MockService_Expecter { + return &MockService_Expecter{mock: &_m.Mock} +} + +// CreateTemplateStateFromSmartBlock provides a mock function with given fields: sb, req +func (_m *MockService) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, req template.CreateTemplateRequest) *state.State { + ret := _m.Called(sb, req) + + if len(ret) == 0 { + panic("no return value specified for CreateTemplateStateFromSmartBlock") + } + + var r0 *state.State + if rf, ok := ret.Get(0).(func(smartblock.SmartBlock, template.CreateTemplateRequest) *state.State); ok { + r0 = rf(sb, req) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*state.State) + } + } + + return r0 +} + +// MockService_CreateTemplateStateFromSmartBlock_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateFromSmartBlock' +type MockService_CreateTemplateStateFromSmartBlock_Call struct { + *mock.Call +} + +// CreateTemplateStateFromSmartBlock is a helper method to define mock.On call +// - sb smartblock.SmartBlock +// - req template.CreateTemplateRequest +func (_e *MockService_Expecter) CreateTemplateStateFromSmartBlock(sb interface{}, req interface{}) *MockService_CreateTemplateStateFromSmartBlock_Call { + return &MockService_CreateTemplateStateFromSmartBlock_Call{Call: _e.mock.On("CreateTemplateStateFromSmartBlock", sb, req)} +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Run(run func(sb smartblock.SmartBlock, req template.CreateTemplateRequest)) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(smartblock.SmartBlock), args[1].(template.CreateTemplateRequest)) + }) + return _c +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) Return(_a0 *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_CreateTemplateStateFromSmartBlock_Call) RunAndReturn(run func(smartblock.SmartBlock, template.CreateTemplateRequest) *state.State) *MockService_CreateTemplateStateFromSmartBlock_Call { + _c.Call.Return(run) + return _c +} + +// CreateTemplateStateWithDetails provides a mock function with given fields: req +func (_m *MockService) CreateTemplateStateWithDetails(req template.CreateTemplateRequest) (*state.State, error) { + ret := _m.Called(req) + + if len(ret) == 0 { + panic("no return value specified for CreateTemplateStateWithDetails") + } + + var r0 *state.State + var r1 error + if rf, ok := ret.Get(0).(func(template.CreateTemplateRequest) (*state.State, error)); ok { + return rf(req) + } + if rf, ok := ret.Get(0).(func(template.CreateTemplateRequest) *state.State); ok { + r0 = rf(req) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*state.State) + } + } + + if rf, ok := ret.Get(1).(func(template.CreateTemplateRequest) error); ok { + r1 = rf(req) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_CreateTemplateStateWithDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTemplateStateWithDetails' +type MockService_CreateTemplateStateWithDetails_Call struct { + *mock.Call +} + +// CreateTemplateStateWithDetails is a helper method to define mock.On call +// - req template.CreateTemplateRequest +func (_e *MockService_Expecter) CreateTemplateStateWithDetails(req interface{}) *MockService_CreateTemplateStateWithDetails_Call { + return &MockService_CreateTemplateStateWithDetails_Call{Call: _e.mock.On("CreateTemplateStateWithDetails", req)} +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) Run(run func(req template.CreateTemplateRequest)) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(template.CreateTemplateRequest)) + }) + return _c +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) Return(st *state.State, err error) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Return(st, err) + return _c +} + +func (_c *MockService_CreateTemplateStateWithDetails_Call) RunAndReturn(run func(template.CreateTemplateRequest) (*state.State, error)) *MockService_CreateTemplateStateWithDetails_Call { + _c.Call.Return(run) + return _c +} + +// Init provides a mock function with given fields: a +func (_m *MockService) Init(a *app.App) error { + ret := _m.Called(a) + + if len(ret) == 0 { + panic("no return value specified for Init") + } + + var r0 error + if rf, ok := ret.Get(0).(func(*app.App) error); ok { + r0 = rf(a) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' +type MockService_Init_Call struct { + *mock.Call +} + +// Init is a helper method to define mock.On call +// - a *app.App +func (_e *MockService_Expecter) Init(a interface{}) *MockService_Init_Call { + return &MockService_Init_Call{Call: _e.mock.On("Init", a)} +} + +func (_c *MockService_Init_Call) Run(run func(a *app.App)) *MockService_Init_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*app.App)) + }) + return _c +} + +func (_c *MockService_Init_Call) Return(err error) *MockService_Init_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockService_Init_Call { + _c.Call.Return(run) + return _c +} + +// Name provides a mock function with given fields: +func (_m *MockService) Name() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Name") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockService_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' +type MockService_Name_Call struct { + *mock.Call +} + +// Name is a helper method to define mock.On call +func (_e *MockService_Expecter) Name() *MockService_Name_Call { + return &MockService_Name_Call{Call: _e.mock.On("Name")} +} + +func (_c *MockService_Name_Call) Run(run func()) *MockService_Name_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockService_Name_Call) Return(name string) *MockService_Name_Call { + _c.Call.Return(name) + return _c +} + +func (_c *MockService_Name_Call) RunAndReturn(run func() string) *MockService_Name_Call { + _c.Call.Return(run) + return _c +} + +// ObjectApplyTemplate provides a mock function with given fields: contextId, templateId +func (_m *MockService) ObjectApplyTemplate(contextId string, templateId string) error { + ret := _m.Called(contextId, templateId) + + if len(ret) == 0 { + panic("no return value specified for ObjectApplyTemplate") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, string) error); ok { + r0 = rf(contextId, templateId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_ObjectApplyTemplate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectApplyTemplate' +type MockService_ObjectApplyTemplate_Call struct { + *mock.Call +} + +// ObjectApplyTemplate is a helper method to define mock.On call +// - contextId string +// - templateId string +func (_e *MockService_Expecter) ObjectApplyTemplate(contextId interface{}, templateId interface{}) *MockService_ObjectApplyTemplate_Call { + return &MockService_ObjectApplyTemplate_Call{Call: _e.mock.On("ObjectApplyTemplate", contextId, templateId)} +} + +func (_c *MockService_ObjectApplyTemplate_Call) Run(run func(contextId string, templateId string)) *MockService_ObjectApplyTemplate_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockService_ObjectApplyTemplate_Call) Return(_a0 error) *MockService_ObjectApplyTemplate_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_ObjectApplyTemplate_Call) RunAndReturn(run func(string, string) error) *MockService_ObjectApplyTemplate_Call { + _c.Call.Return(run) + return _c +} + +// SetDefaultTemplateInType provides a mock function with given fields: ctx, typeId, templateId +func (_m *MockService) SetDefaultTemplateInType(ctx context.Context, typeId string, templateId string) error { + ret := _m.Called(ctx, typeId, templateId) + + if len(ret) == 0 { + panic("no return value specified for SetDefaultTemplateInType") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok { + r0 = rf(ctx, typeId, templateId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_SetDefaultTemplateInType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SetDefaultTemplateInType' +type MockService_SetDefaultTemplateInType_Call struct { + *mock.Call +} + +// SetDefaultTemplateInType is a helper method to define mock.On call +// - ctx context.Context +// - typeId string +// - templateId string +func (_e *MockService_Expecter) SetDefaultTemplateInType(ctx interface{}, typeId interface{}, templateId interface{}) *MockService_SetDefaultTemplateInType_Call { + return &MockService_SetDefaultTemplateInType_Call{Call: _e.mock.On("SetDefaultTemplateInType", ctx, typeId, templateId)} +} + +func (_c *MockService_SetDefaultTemplateInType_Call) Run(run func(ctx context.Context, typeId string, templateId string)) *MockService_SetDefaultTemplateInType_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string), args[2].(string)) + }) + return _c +} + +func (_c *MockService_SetDefaultTemplateInType_Call) Return(_a0 error) *MockService_SetDefaultTemplateInType_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockService_SetDefaultTemplateInType_Call) RunAndReturn(run func(context.Context, string, string) error) *MockService_SetDefaultTemplateInType_Call { + _c.Call.Return(run) + return _c +} + +// TemplateClone provides a mock function with given fields: spaceId, id +func (_m *MockService) TemplateClone(spaceId string, id string) (string, error) { + ret := _m.Called(spaceId, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateClone") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(string, string) (string, error)); ok { + return rf(spaceId, id) + } + if rf, ok := ret.Get(0).(func(string, string) string); ok { + r0 = rf(spaceId, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(string, string) error); ok { + r1 = rf(spaceId, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateClone_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateClone' +type MockService_TemplateClone_Call struct { + *mock.Call +} + +// TemplateClone is a helper method to define mock.On call +// - spaceId string +// - id string +func (_e *MockService_Expecter) TemplateClone(spaceId interface{}, id interface{}) *MockService_TemplateClone_Call { + return &MockService_TemplateClone_Call{Call: _e.mock.On("TemplateClone", spaceId, id)} +} + +func (_c *MockService_TemplateClone_Call) Run(run func(spaceId string, id string)) *MockService_TemplateClone_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateClone_Call) Return(templateId string, err error) *MockService_TemplateClone_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateClone_Call) RunAndReturn(run func(string, string) (string, error)) *MockService_TemplateClone_Call { + _c.Call.Return(run) + return _c +} + +// TemplateCloneInSpace provides a mock function with given fields: space, id +func (_m *MockService) TemplateCloneInSpace(space clientspace.Space, id string) (string, error) { + ret := _m.Called(space, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateCloneInSpace") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(clientspace.Space, string) (string, error)); ok { + return rf(space, id) + } + if rf, ok := ret.Get(0).(func(clientspace.Space, string) string); ok { + r0 = rf(space, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(clientspace.Space, string) error); ok { + r1 = rf(space, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateCloneInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCloneInSpace' +type MockService_TemplateCloneInSpace_Call struct { + *mock.Call +} + +// TemplateCloneInSpace is a helper method to define mock.On call +// - space clientspace.Space +// - id string +func (_e *MockService_Expecter) TemplateCloneInSpace(space interface{}, id interface{}) *MockService_TemplateCloneInSpace_Call { + return &MockService_TemplateCloneInSpace_Call{Call: _e.mock.On("TemplateCloneInSpace", space, id)} +} + +func (_c *MockService_TemplateCloneInSpace_Call) Run(run func(space clientspace.Space, id string)) *MockService_TemplateCloneInSpace_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(clientspace.Space), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateCloneInSpace_Call) Return(templateId string, err error) *MockService_TemplateCloneInSpace_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateCloneInSpace_Call) RunAndReturn(run func(clientspace.Space, string) (string, error)) *MockService_TemplateCloneInSpace_Call { + _c.Call.Return(run) + return _c +} + +// TemplateCreateFromObject provides a mock function with given fields: ctx, id +func (_m *MockService) TemplateCreateFromObject(ctx context.Context, id string) (string, error) { + ret := _m.Called(ctx, id) + + if len(ret) == 0 { + panic("no return value specified for TemplateCreateFromObject") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + return rf(ctx, id) + } + if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { + r0 = rf(ctx, id) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateCreateFromObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCreateFromObject' +type MockService_TemplateCreateFromObject_Call struct { + *mock.Call +} + +// TemplateCreateFromObject is a helper method to define mock.On call +// - ctx context.Context +// - id string +func (_e *MockService_Expecter) TemplateCreateFromObject(ctx interface{}, id interface{}) *MockService_TemplateCreateFromObject_Call { + return &MockService_TemplateCreateFromObject_Call{Call: _e.mock.On("TemplateCreateFromObject", ctx, id)} +} + +func (_c *MockService_TemplateCreateFromObject_Call) Run(run func(ctx context.Context, id string)) *MockService_TemplateCreateFromObject_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateCreateFromObject_Call) Return(templateId string, err error) *MockService_TemplateCreateFromObject_Call { + _c.Call.Return(templateId, err) + return _c +} + +func (_c *MockService_TemplateCreateFromObject_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateCreateFromObject_Call { + _c.Call.Return(run) + return _c +} + +// TemplateExportAll provides a mock function with given fields: ctx, path +func (_m *MockService) TemplateExportAll(ctx context.Context, path string) (string, error) { + ret := _m.Called(ctx, path) + + if len(ret) == 0 { + panic("no return value specified for TemplateExportAll") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, string) (string, error)); ok { + return rf(ctx, path) + } + if rf, ok := ret.Get(0).(func(context.Context, string) string); ok { + r0 = rf(ctx, path) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(ctx, path) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockService_TemplateExportAll_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateExportAll' +type MockService_TemplateExportAll_Call struct { + *mock.Call +} + +// TemplateExportAll is a helper method to define mock.On call +// - ctx context.Context +// - path string +func (_e *MockService_Expecter) TemplateExportAll(ctx interface{}, path interface{}) *MockService_TemplateExportAll_Call { + return &MockService_TemplateExportAll_Call{Call: _e.mock.On("TemplateExportAll", ctx, path)} +} + +func (_c *MockService_TemplateExportAll_Call) Run(run func(ctx context.Context, path string)) *MockService_TemplateExportAll_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *MockService_TemplateExportAll_Call) Return(_a0 string, _a1 error) *MockService_TemplateExportAll_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *MockService_TemplateExportAll_Call) RunAndReturn(run func(context.Context, string) (string, error)) *MockService_TemplateExportAll_Call { + _c.Call.Return(run) + return _c +} + +// NewMockService creates a new instance of MockService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockService(t interface { + mock.TestingT + Cleanup(func()) +}) *MockService { + mock := &MockService{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/core/block/template/service.go b/core/block/template/service.go index 0c3bde5d0..1f9354b26 100644 --- a/core/block/template/service.go +++ b/core/block/template/service.go @@ -3,57 +3,33 @@ package template import ( "context" "errors" - "fmt" "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/samber/lo" - "golang.org/x/exp/slices" - "github.com/anyproto/anytype-heart/core/block/cache" - "github.com/anyproto/anytype-heart/core/block/editor/basic" - "github.com/anyproto/anytype-heart/core/block/editor/converter" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/state" - "github.com/anyproto/anytype-heart/core/block/editor/template" - "github.com/anyproto/anytype-heart/core/block/export" - "github.com/anyproto/anytype-heart/core/block/object/idresolver" - "github.com/anyproto/anytype-heart/core/block/object/objectcreator" "github.com/anyproto/anytype-heart/core/domain" - "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/pkg/lib/bundle" - coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" - "github.com/anyproto/anytype-heart/pkg/lib/database" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" - "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" - "github.com/anyproto/anytype-heart/space" "github.com/anyproto/anytype-heart/space/clientspace" - "github.com/anyproto/anytype-heart/util/internalflag" - "github.com/anyproto/anytype-heart/util/slice" ) -const ( - CName = "template" - BlankTemplateId = "blank" -) +type CreateTemplateRequest struct { + SpaceId, TemplateId, TypeId string + Layout model.ObjectTypeLayout + Details *domain.Details + WithTemplateValidation bool +} -var ( - log = logging.Logger("template") - - templateIsPreferableRelationKeys = []domain.RelationKey{ - bundle.RelationKeyFeaturedRelations, bundle.RelationKeyResolvedLayout, - bundle.RelationKeyIconEmoji, bundle.RelationKeyCoverId, - bundle.RelationKeySourceObject, bundle.RelationKeySetOf, +func (r CreateTemplateRequest) IsValid() error { + if r.WithTemplateValidation && (r.SpaceId == "" || r.TypeId == "") { + return errors.New("spaceId and typeId are expected to resolve valid templateId") } -) + return nil +} type Service interface { - CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, layout model.ObjectTypeLayout, details *domain.Details, withTemplateValidation bool, - ) (st *state.State, err error) - CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details) *state.State + CreateTemplateStateWithDetails(req CreateTemplateRequest) (st *state.State, err error) + CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, req CreateTemplateRequest) *state.State ObjectApplyTemplate(contextId string, templateId string) error TemplateCreateFromObject(ctx context.Context, id string) (templateId string, err error) @@ -66,448 +42,3 @@ type Service interface { app.Component } - -type service struct { - picker cache.ObjectGetter - store objectstore.ObjectStore - spaceService space.Service - creator objectcreator.Service - resolver idresolver.Resolver - exporter export.Export - converter converter.LayoutConverter -} - -func New() Service { - return &service{} -} - -func (s *service) Name() (name string) { - return CName -} - -func (s *service) Init(a *app.App) error { - s.picker = app.MustComponent[cache.ObjectGetter](a) - s.store = app.MustComponent[objectstore.ObjectStore](a) - s.spaceService = app.MustComponent[space.Service](a) - s.creator = app.MustComponent[objectcreator.Service](a) - s.resolver = a.MustComponent(idresolver.CName).(idresolver.Resolver) - s.exporter = a.MustComponent(export.CName).(export.Export) - s.converter = app.MustComponent[converter.LayoutConverter](a) - return nil -} - -// CreateTemplateStateWithDetails creates clone of template object state with empty localDetails and updated objectTypes. -// If withTemplateValidation=true, templateId is queried in store. If template is empty or not found, last edited template is taken. -// Blank template is created in case template object is deleted or blank/empty templateId is provided -func (s *service) CreateTemplateStateWithDetails( - spaceId, templateId, typeId string, - layout model.ObjectTypeLayout, - details *domain.Details, - withTemplateValidation bool, -) (targetState *state.State, err error) { - if withTemplateValidation { - templateId, err = s.resolveValidTemplateId(spaceId, templateId, typeId) - if err != nil { - return nil, fmt.Errorf("failed to resolve valid template id: %w", err) - } - } - switch templateId { - case "", BlankTemplateId: - targetState = s.createBlankTemplateState(domain.FullID{SpaceID: spaceId, ObjectID: typeId}, layout, details) - default: - targetState, err = s.createCustomTemplateState(templateId) - if err != nil { - return - } - } - - addDetailsToState(targetState, details) - return targetState, nil -} - -func (s *service) resolveValidTemplateId(spaceId, templateId, typeId string) (string, error) { - var ctx = context.Background() - - spc, err := s.spaceService.Get(ctx, spaceId) - if err != nil { - return "", fmt.Errorf("failed to get space: %w", err) - } - templateTypeId, err := spc.GetTypeIdByKey(ctx, bundle.TypeKeyTemplate) - if err != nil { - return "", fmt.Errorf("failed to get template type id from space: %w", err) - } - - records, err := s.store.SpaceIndex(spaceId).Query(database.Query{ - Filters: []database.FilterRequest{ - { - RelationKey: bundle.RelationKeyType, - Condition: model.BlockContentDataviewFilter_Equal, - Value: domain.String(templateTypeId), - }, - { - RelationKey: bundle.RelationKeyTargetObjectType, - Condition: model.BlockContentDataviewFilter_Equal, - Value: domain.String(typeId), - }, - }, - Sorts: []database.SortRequest{{ - RelationKey: bundle.RelationKeyLastModifiedDate, - Type: model.BlockContentDataviewSort_Desc, - }}, - }) - - if err != nil { - return "", fmt.Errorf("failed to query templates: %w", err) - } - - if len(records) == 0 { - // if no valid templates presented, we shell create new object with blank template - return "", nil - } - - if templateId == "" { - return records[0].Details.GetString(bundle.RelationKeyId), nil - } - - for _, record := range records { - if record.Details.GetString(bundle.RelationKeyId) == templateId { - return templateId, nil - } - } - - // if requested templateId was not found in store, we should use last modified template - return records[0].Details.GetString(bundle.RelationKeyId), nil -} - -// CreateTemplateStateFromSmartBlock duplicates the logic of CreateTemplateStateWithDetails but does not take the lock on smartBlock. -// if building of state fails, state of blank template is returned -func (s *service) CreateTemplateStateFromSmartBlock( - sb smartblock.SmartBlock, typeId string, layout model.ObjectTypeLayout, details *domain.Details, -) *state.State { - st, err := s.buildState(sb) - if err != nil { - st = s.createBlankTemplateState(domain.FullID{SpaceID: sb.SpaceID(), ObjectID: typeId}, layout, nil) - } - addDetailsToState(st, details) - return st -} - -func extractTargetDetails(originDetails *domain.Details, templateDetails *domain.Details) *domain.Details { - targetDetails := originDetails.Copy() - if templateDetails == nil { - return targetDetails - } - for key, originalVal := range originDetails.Iterate() { - templateVal := templateDetails.Get(key) - if templateVal.Ok() { - inTemplateEmpty := templateVal.IsEmpty() - if key == bundle.RelationKeyResolvedLayout { - // layout = 0 is actually basic layout, so it counts - inTemplateEmpty = false - } - inOriginEmpty := originalVal.IsEmpty() - templateValueShouldBePreferred := lo.Contains(templateIsPreferableRelationKeys, key) - if !inTemplateEmpty && (inOriginEmpty || templateValueShouldBePreferred) { - targetDetails.Delete(key) - } - } - } - return targetDetails -} - -func (s *service) createCustomTemplateState(templateId string) (targetState *state.State, err error) { - err = cache.Do(s.picker, templateId, func(sb smartblock.SmartBlock) (innerErr error) { - targetState, innerErr = s.buildState(sb) - if innerErr != nil { - return innerErr - } - details := targetState.Details() - if details.GetBool(bundle.RelationKeyIsDeleted) || details.GetBool(bundle.RelationKeyIsUninstalled) { - return spacestorage.ErrTreeStorageAlreadyDeleted - } - return nil - }) - if errors.Is(err, spacestorage.ErrTreeStorageAlreadyDeleted) { - return s.createBlankTemplateState(domain.FullID{}, model.ObjectType_basic, nil), nil - } - return -} - -func (s *service) buildState(sb smartblock.SmartBlock) (st *state.State, err error) { - if sb == nil { - return nil, fmt.Errorf("smartblock is nil") - } - if !lo.Contains(sb.ObjectTypeKeys(), bundle.TypeKeyTemplate) { - return nil, fmt.Errorf("object '%s' is not a template", sb.Id()) - } - st = sb.NewState().Copy() - - if st.LocalDetails().GetBool(bundle.RelationKeyIsArchived) { - return nil, spacestorage.ErrTreeStorageAlreadyDeleted - } - - err = s.updateTypeKey(sb.SpaceID(), st) - if err != nil { - return - } - - st.RemoveDetail( - bundle.RelationKeyTargetObjectType, - bundle.RelationKeyTemplateIsBundled, - bundle.RelationKeyOrigin, - bundle.RelationKeyAddedDate, - ) - st.SetDetailAndBundledRelation(bundle.RelationKeySourceObject, domain.String(sb.Id())) - // original created timestamp is used to set creationDate for imported objects, not for template-based objects - st.SetOriginalCreatedTimestamp(0) - st.SetLocalDetails(nil) - return -} - -func (s *service) ObjectApplyTemplate(contextId, templateId string) error { - return cache.Do(s.picker, contextId, func(b smartblock.SmartBlock) error { - orig := b.NewState().ParentState() - spaceId := orig.LocalDetails().GetString(bundle.RelationKeySpaceId) - typeId := orig.LocalDetails().GetString(bundle.RelationKeyType) - layout := orig.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout) - // nolint:gosec - ts, err := s.CreateTemplateStateWithDetails(spaceId, templateId, typeId, model.ObjectTypeLayout(layout), orig.Details(), false) - if err != nil { - return err - } - ts.SetRootId(contextId) - ts.SetParent(orig) - - ts.BlocksInit(ts) - - objType := orig.ObjectTypeKey() - ts.SetObjectTypeKey(objType) - - flags := internalflag.NewFromState(orig) - flags.AddToState(ts) - - // we provide KeepInternalFlags to allow further template applying and object type change - return b.Apply(ts, smartblock.NoRestrictions, smartblock.KeepInternalFlags) - }) -} - -func (s *service) TemplateCreateFromObject(ctx context.Context, id string) (templateId string, err error) { - var ( - st *state.State - objectTypeKeys []domain.TypeKey - ) - - if err = cache.Do(s.picker, id, func(b smartblock.SmartBlock) error { - if b.Type() != coresb.SmartBlockTypePage { - return fmt.Errorf("can't make template from this object type: %s", model.SmartBlockType_name[int32(b.Type())]) - } - st, err = buildTemplateStateFromObject(b) - objectTypeKeys = st.ObjectTypeKeys() - return err - }); err != nil { - return - } - - spaceId, err := s.resolver.ResolveSpaceID(id) - if err != nil { - return "", fmt.Errorf("resolve spaceId: %w", err) - } - - spc, err := s.spaceService.Get(ctx, spaceId) - if err != nil { - return "", fmt.Errorf("get space: %w", err) - } - - templateId, _, err = s.creator.CreateSmartBlockFromStateInSpace(ctx, spc, objectTypeKeys, st) - if err != nil { - return - } - - typeId, err2 := spc.GetTypeIdByKey(ctx, objectTypeKeys[0]) - if err2 != nil { - log.Errorf("failed to get typeId: %v", err2) - return - } - - if err2 = s.SetDefaultTemplateInType(ctx, typeId, templateId); err != nil { - log.Errorf("failed to set defaultTemplateId to type: %v", err2) - } - return -} - -func (s *service) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) { - var ( - st *state.State - objectTypeKeys []domain.TypeKey - ) - marketplaceSpace, err := s.spaceService.Get(context.Background(), addr.AnytypeMarketplaceWorkspace) - if err != nil { - return "", fmt.Errorf("get marketplace space: %w", err) - } - if err = marketplaceSpace.Do(id, func(b smartblock.SmartBlock) error { - if b.Type() != coresb.SmartBlockTypeBundledTemplate { - return fmt.Errorf("can clone bundled templates only") - } - objectTypeKeys = b.ObjectTypeKeys() - st = b.NewState().Copy() - st.RemoveDetail(bundle.RelationKeyTemplateIsBundled) - st.SetLocalDetails(nil) - st.SetDetailAndBundledRelation(bundle.RelationKeySourceObject, domain.String(id)) - - targetObjectTypeBundledId := st.Details().GetString(bundle.RelationKeyTargetObjectType) - targetObjectTypeKey, err := bundle.TypeKeyFromUrl(targetObjectTypeBundledId) - if err != nil { - return fmt.Errorf("get target object type key: %w", err) - } - targetObjectTypeId, err := space.GetTypeIdByKey(context.Background(), targetObjectTypeKey) - if err != nil { - return fmt.Errorf("get target object type id: %w", err) - } - st.SetDetailAndBundledRelation(bundle.RelationKeyTargetObjectType, domain.String(targetObjectTypeId)) - return nil - }); err != nil { - return - } - templateId, _, err = s.creator.CreateSmartBlockFromStateInSpace(context.Background(), space, objectTypeKeys, st) - if err != nil { - return - } - return -} - -func (s *service) TemplateClone(spaceId string, id string) (templateId string, err error) { - var spaceObject clientspace.Space - spaceObject, err = s.spaceService.Get(context.Background(), spaceId) - if err != nil { - return "", fmt.Errorf("get space: %w", err) - } - return s.TemplateCloneInSpace(spaceObject, id) -} - -func (s *service) TemplateExportAll(ctx context.Context, path string) (string, error) { - records, err := s.store.QueryCrossSpace(database.Query{ - Filters: []database.FilterRequest{ - { - RelationKey: bundle.RelationKeyIsArchived, - Condition: model.BlockContentDataviewFilter_Equal, - Value: domain.Bool(false), - }, - { - RelationKey: database.NestedRelationKey(bundle.RelationKeyType, bundle.RelationKeyUniqueKey), - Condition: model.BlockContentDataviewFilter_Equal, - Value: domain.String(bundle.TypeKeyTemplate.URL()), - }, - // We don't want templates from marketplace - { - RelationKey: bundle.RelationKeySpaceId, - Condition: model.BlockContentDataviewFilter_NotEqual, - Value: domain.String(addr.AnytypeMarketplaceWorkspace), - }, - }, - }) - if err != nil { - return "", err - } - if len(records) == 0 { - return "", fmt.Errorf("no templates") - } - ids := make([]string, 0, len(records)) - for _, rec := range records { - ids = append(ids, rec.Details.GetString(bundle.RelationKeyId)) - } - path, _, err = s.exporter.Export(ctx, pb.RpcObjectListExportRequest{ - Path: path, - ObjectIds: ids, - Format: model.Export_Protobuf, - Zip: true, - }) - return path, err -} - -// SetDefaultTemplateInType sets defaultTemplateId to type object in case it is empty -func (s *service) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error { - return cache.DoContext(s.picker, ctx, typeId, func(sb smartblock.SmartBlock) error { - if sb.Details().GetString(bundle.RelationKeyDefaultTemplateId) != "" { - return nil - } - ds := sb.(basic.DetailsSettable) - if ds == nil { - return fmt.Errorf("cannot set defaultTemplateId as type object does not support DetailsSettable interface") - } - return ds.SetDetails(nil, []domain.Detail{{ - Key: bundle.RelationKeyDefaultTemplateId, - Value: domain.String(templateId), - }}, false) - }) -} - -func (s *service) createBlankTemplateState(typeId domain.FullID, layout model.ObjectTypeLayout, details *domain.Details) (st *state.State) { - st = state.NewDoc(BlankTemplateId, nil).NewState() - template.InitTemplate(st, template.WithEmpty, - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, - template.WithAddedFeaturedRelation(bundle.RelationKeyTag), - template.WithDetail(bundle.RelationKeyTag, domain.StringList(nil)), - template.WithTitle, - ) - if slices.Contains([]model.ObjectTypeLayout{model.ObjectType_set, model.ObjectType_collection}, layout) && !typeId.IsEmpty() { - template.InitTemplate(st, - template.WithDetail(bundle.RelationKeySpaceId, domain.String(typeId.SpaceID)), - template.WithDetail(bundle.RelationKeyType, domain.String(typeId.ObjectID)), - ) - } - if err := s.converter.Convert(st, model.ObjectType_basic, layout, true); err != nil { - log.Errorf("failed to set '%s' layout to blank template: %v", layout.String(), err) - } - return -} - -func (s *service) updateTypeKey(spaceId string, st *state.State) (err error) { - objectTypeId := st.Details().GetString(bundle.RelationKeyTargetObjectType) - if objectTypeId != "" { - var uniqueKey domain.UniqueKey - uniqueKey, err = s.store.SpaceIndex(spaceId).GetUniqueKeyById(objectTypeId) - if err != nil { - err = fmt.Errorf("get target object type %s: %w", objectTypeId, err) - } else if uniqueKey.SmartblockType() != coresb.SmartBlockTypeObjectType { - err = fmt.Errorf("unique key %s does not belong to object type", uniqueKey.InternalKey()) - } - if err == nil { - st.SetObjectTypeKey(domain.TypeKey(uniqueKey.InternalKey())) - return nil - } - log.Errorf(err.Error()) - } - updatedTypeKeys := slice.Remove(st.ObjectTypeKeys(), bundle.TypeKeyTemplate) - if len(updatedTypeKeys) != 1 { - return fmt.Errorf("failed to gather type key from template's ObjectTypeKeys (%v) and from object store: %w", st.ObjectTypeKeys(), err) - } - st.SetObjectTypeKey(updatedTypeKeys[0]) - return nil -} - -func buildTemplateStateFromObject(sb smartblock.SmartBlock) (*state.State, error) { - st := sb.NewState().Copy() - st.SetLocalDetails(nil) - targetObjectTypeId, err := sb.Space().GetTypeIdByKey(context.Background(), st.ObjectTypeKey()) - if err != nil { - return nil, fmt.Errorf("get type id by key: %w", err) - } - st.SetDetail(bundle.RelationKeyTargetObjectType, domain.String(targetObjectTypeId)) - st.SetObjectTypeKeys([]domain.TypeKey{bundle.TypeKeyTemplate, st.ObjectTypeKey()}) - for _, rel := range sb.Relations(st) { - if rel.DataSource == model.Relation_details && !rel.Hidden { - st.RemoveDetail(domain.RelationKey(rel.Key)) - } - } - flags := internalflag.NewFromState(st) - flags.Remove(model.InternalFlag_editorDeleteEmpty) - flags.AddToState(st) - return st, nil -} - -func addDetailsToState(s *state.State, details *domain.Details) { - targetDetails := extractTargetDetails(details, s.Details()) - s.AddDetails(targetDetails) - s.BlocksInit(s) -} diff --git a/core/block/template/templateimpl/impl.go b/core/block/template/templateimpl/impl.go new file mode 100644 index 000000000..4ef52fd9a --- /dev/null +++ b/core/block/template/templateimpl/impl.go @@ -0,0 +1,496 @@ +package templateimpl + +import ( + "context" + "errors" + "fmt" + + "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/commonspace/spacestorage" + "github.com/samber/lo" + "golang.org/x/exp/slices" + + "github.com/anyproto/anytype-heart/core/block/cache" + "github.com/anyproto/anytype-heart/core/block/editor/basic" + "github.com/anyproto/anytype-heart/core/block/editor/converter" + "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/editor/template" + "github.com/anyproto/anytype-heart/core/block/export" + "github.com/anyproto/anytype-heart/core/block/object/idresolver" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator" + templateSvc "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/pb" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" + "github.com/anyproto/anytype-heart/pkg/lib/database" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" + "github.com/anyproto/anytype-heart/pkg/lib/logging" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/space" + "github.com/anyproto/anytype-heart/space/clientspace" + "github.com/anyproto/anytype-heart/util/internalflag" + "github.com/anyproto/anytype-heart/util/slice" +) + +const ( + CName = "template" + BlankTemplateId = "blank" +) + +var ( + log = logging.Logger("template") + + templateIsPreferableRelationKeys = []domain.RelationKey{ + bundle.RelationKeyFeaturedRelations, bundle.RelationKeyResolvedLayout, + bundle.RelationKeyIconEmoji, bundle.RelationKeyCoverId, + bundle.RelationKeySourceObject, bundle.RelationKeySetOf, + } +) + +type service struct { + picker cache.ObjectGetter + store objectstore.ObjectStore + spaceService space.Service + creator objectcreator.Service + resolver idresolver.Resolver + exporter export.Export + converter converter.LayoutConverter +} + +func New() templateSvc.Service { + return &service{} +} + +func (s *service) Name() (name string) { + return CName +} + +func (s *service) Init(a *app.App) error { + s.picker = app.MustComponent[cache.ObjectGetter](a) + s.store = app.MustComponent[objectstore.ObjectStore](a) + s.spaceService = app.MustComponent[space.Service](a) + s.creator = app.MustComponent[objectcreator.Service](a) + s.resolver = a.MustComponent(idresolver.CName).(idresolver.Resolver) + s.exporter = a.MustComponent(export.CName).(export.Export) + s.converter = app.MustComponent[converter.LayoutConverter](a) + return nil +} + +// CreateTemplateStateWithDetails creates clone of template object state with empty localDetails and updated objectTypes. +// If withTemplateValidation=true, templateId is queried in store. If template is empty or not found, last edited template is taken. +// Blank template is created in case template object is deleted or blank/empty templateId is provided +func (s *service) CreateTemplateStateWithDetails(req templateSvc.CreateTemplateRequest) (targetState *state.State, err error) { + if validationErr := req.IsValid(); validationErr != nil { + return nil, fmt.Errorf("create template request validation error: %s", validationErr.Error()) + } + + if req.WithTemplateValidation { + req.TemplateId, err = s.resolveValidTemplateId(req.SpaceId, req.TemplateId, req.TypeId) + if err != nil { + return nil, fmt.Errorf("failed to resolve valid template id: %w", err) + } + } + switch req.TemplateId { + case "", BlankTemplateId: + targetState = s.createBlankTemplateState(domain.FullID{SpaceID: req.SpaceId, ObjectID: req.TypeId}, req.Layout) + default: + targetState, err = s.createCustomTemplateState(req.TemplateId) + if err != nil { + return + } + } + + addDetailsToState(targetState, req.Details) + return targetState, nil +} + +func (s *service) resolveValidTemplateId(spaceId, templateId, typeId string) (string, error) { + var ctx = context.Background() + + spc, err := s.spaceService.Get(ctx, spaceId) + if err != nil { + return "", fmt.Errorf("failed to get space: %w", err) + } + templateTypeId, err := spc.GetTypeIdByKey(ctx, bundle.TypeKeyTemplate) + if err != nil { + return "", fmt.Errorf("failed to get template type id from space: %w", err) + } + + records, err := s.store.SpaceIndex(spaceId).Query(database.Query{ + Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(templateTypeId), + }, + { + RelationKey: bundle.RelationKeyTargetObjectType, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(typeId), + }, + }, + Sorts: []database.SortRequest{{ + RelationKey: bundle.RelationKeyLastModifiedDate, + Type: model.BlockContentDataviewSort_Desc, + }}, + }) + + if err != nil { + return "", fmt.Errorf("failed to query templates: %w", err) + } + + if len(records) == 0 { + // if no valid templates presented, we shell create new object with blank template + return "", nil + } + + if templateId == "" { + return records[0].Details.GetString(bundle.RelationKeyId), nil + } + + for _, record := range records { + if record.Details.GetString(bundle.RelationKeyId) == templateId { + return templateId, nil + } + } + + // if requested templateId was not found in store, we should use last modified template + return records[0].Details.GetString(bundle.RelationKeyId), nil +} + +// CreateTemplateStateFromSmartBlock duplicates the logic of CreateTemplateStateWithDetails but does not take the lock on smartBlock. +// if building of state fails, state of blank template is returned +func (s *service) CreateTemplateStateFromSmartBlock(sb smartblock.SmartBlock, req templateSvc.CreateTemplateRequest) *state.State { + st, err := s.buildState(sb) + if err != nil { + st = s.createBlankTemplateState(domain.FullID{SpaceID: req.SpaceId, ObjectID: req.TypeId}, req.Layout) + } + addDetailsToState(st, req.Details) + return st +} + +func extractTargetDetails(originDetails *domain.Details, templateDetails *domain.Details) *domain.Details { + targetDetails := originDetails.Copy() + if templateDetails == nil { + return targetDetails + } + for key, originalVal := range originDetails.Iterate() { + templateVal := templateDetails.Get(key) + if templateVal.Ok() { + inTemplateEmpty := templateVal.IsEmpty() + if key == bundle.RelationKeyResolvedLayout { + // layout = 0 is actually basic layout, so it counts + inTemplateEmpty = false + } + inOriginEmpty := originalVal.IsEmpty() + templateValueShouldBePreferred := lo.Contains(templateIsPreferableRelationKeys, key) + if !inTemplateEmpty && (inOriginEmpty || templateValueShouldBePreferred) { + targetDetails.Delete(key) + } + } + } + return targetDetails +} + +func (s *service) createCustomTemplateState(templateId string) (targetState *state.State, err error) { + err = cache.Do(s.picker, templateId, func(sb smartblock.SmartBlock) (innerErr error) { + targetState, innerErr = s.buildState(sb) + if innerErr != nil { + return innerErr + } + details := targetState.Details() + if details.GetBool(bundle.RelationKeyIsDeleted) || details.GetBool(bundle.RelationKeyIsUninstalled) { + return spacestorage.ErrTreeStorageAlreadyDeleted + } + return nil + }) + if errors.Is(err, spacestorage.ErrTreeStorageAlreadyDeleted) { + return s.createBlankTemplateState(domain.FullID{}, model.ObjectType_basic), nil + } + return +} + +func (s *service) buildState(sb smartblock.SmartBlock) (st *state.State, err error) { + if sb == nil { + return nil, fmt.Errorf("smartblock is nil") + } + if !lo.Contains(sb.ObjectTypeKeys(), bundle.TypeKeyTemplate) { + return nil, fmt.Errorf("object '%s' is not a template", sb.Id()) + } + st = sb.NewState().Copy() + + if st.LocalDetails().GetBool(bundle.RelationKeyIsArchived) { + return nil, spacestorage.ErrTreeStorageAlreadyDeleted + } + + err = s.updateTypeKey(sb.SpaceID(), st) + if err != nil { + return + } + + st.RemoveDetail( + bundle.RelationKeyTargetObjectType, + bundle.RelationKeyTemplateIsBundled, + bundle.RelationKeyOrigin, + bundle.RelationKeyAddedDate, + ) + st.SetDetailAndBundledRelation(bundle.RelationKeySourceObject, domain.String(sb.Id())) + // original created timestamp is used to set creationDate for imported objects, not for template-based objects + st.SetOriginalCreatedTimestamp(0) + st.SetLocalDetails(nil) + return +} + +func (s *service) ObjectApplyTemplate(contextId, templateId string) error { + return cache.Do(s.picker, contextId, func(b smartblock.SmartBlock) error { + orig := b.NewState().ParentState() + ts, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{ + SpaceId: orig.LocalDetails().GetString(bundle.RelationKeySpaceId), + TemplateId: templateId, + TypeId: orig.LocalDetails().GetString(bundle.RelationKeyType), + Layout: model.ObjectTypeLayout(orig.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)), // nolint:gosec + Details: orig.Details(), + WithTemplateValidation: false, + }) + if err != nil { + return err + } + ts.SetRootId(contextId) + ts.SetParent(orig) + + ts.BlocksInit(ts) + + objType := orig.ObjectTypeKey() + ts.SetObjectTypeKey(objType) + + flags := internalflag.NewFromState(orig) + flags.AddToState(ts) + + // we provide KeepInternalFlags to allow further template applying and object type change + return b.Apply(ts, smartblock.NoRestrictions, smartblock.KeepInternalFlags) + }) +} + +func (s *service) TemplateCreateFromObject(ctx context.Context, id string) (templateId string, err error) { + var ( + st *state.State + objectTypeKeys []domain.TypeKey + ) + + if err = cache.Do(s.picker, id, func(b smartblock.SmartBlock) error { + if b.Type() != coresb.SmartBlockTypePage { + return fmt.Errorf("can't make template from this object type: %s", model.SmartBlockType_name[int32(b.Type())]) + } + st, err = buildTemplateStateFromObject(b) + objectTypeKeys = st.ObjectTypeKeys() + return err + }); err != nil { + return + } + + spaceId, err := s.resolver.ResolveSpaceID(id) + if err != nil { + return "", fmt.Errorf("resolve spaceId: %w", err) + } + + spc, err := s.spaceService.Get(ctx, spaceId) + if err != nil { + return "", fmt.Errorf("get space: %w", err) + } + + templateId, _, err = s.creator.CreateSmartBlockFromStateInSpace(ctx, spc, objectTypeKeys, st) + if err != nil { + return + } + + typeId, err2 := spc.GetTypeIdByKey(ctx, objectTypeKeys[0]) + if err2 != nil { + log.Errorf("failed to get typeId: %v", err2) + return + } + + if err2 = s.SetDefaultTemplateInType(ctx, typeId, templateId); err != nil { + log.Errorf("failed to set defaultTemplateId to type: %v", err2) + } + return +} + +func (s *service) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) { + var ( + st *state.State + objectTypeKeys []domain.TypeKey + ) + marketplaceSpace, err := s.spaceService.Get(context.Background(), addr.AnytypeMarketplaceWorkspace) + if err != nil { + return "", fmt.Errorf("get marketplace space: %w", err) + } + if err = marketplaceSpace.Do(id, func(b smartblock.SmartBlock) error { + if b.Type() != coresb.SmartBlockTypeBundledTemplate { + return fmt.Errorf("can clone bundled templates only") + } + objectTypeKeys = b.ObjectTypeKeys() + st = b.NewState().Copy() + st.RemoveDetail(bundle.RelationKeyTemplateIsBundled) + st.SetLocalDetails(nil) + st.SetDetailAndBundledRelation(bundle.RelationKeySourceObject, domain.String(id)) + + targetObjectTypeBundledId := st.Details().GetString(bundle.RelationKeyTargetObjectType) + targetObjectTypeKey, err := bundle.TypeKeyFromUrl(targetObjectTypeBundledId) + if err != nil { + return fmt.Errorf("get target object type key: %w", err) + } + targetObjectTypeId, err := space.GetTypeIdByKey(context.Background(), targetObjectTypeKey) + if err != nil { + return fmt.Errorf("get target object type id: %w", err) + } + st.SetDetailAndBundledRelation(bundle.RelationKeyTargetObjectType, domain.String(targetObjectTypeId)) + return nil + }); err != nil { + return + } + templateId, _, err = s.creator.CreateSmartBlockFromStateInSpace(context.Background(), space, objectTypeKeys, st) + if err != nil { + return + } + return +} + +func (s *service) TemplateClone(spaceId string, id string) (templateId string, err error) { + var spaceObject clientspace.Space + spaceObject, err = s.spaceService.Get(context.Background(), spaceId) + if err != nil { + return "", fmt.Errorf("get space: %w", err) + } + return s.TemplateCloneInSpace(spaceObject, id) +} + +func (s *service) TemplateExportAll(ctx context.Context, path string) (string, error) { + records, err := s.store.QueryCrossSpace(database.Query{ + Filters: []database.FilterRequest{ + { + RelationKey: bundle.RelationKeyIsArchived, + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.Bool(false), + }, + { + RelationKey: database.NestedRelationKey(bundle.RelationKeyType, bundle.RelationKeyUniqueKey), + Condition: model.BlockContentDataviewFilter_Equal, + Value: domain.String(bundle.TypeKeyTemplate.URL()), + }, + // We don't want templates from marketplace + { + RelationKey: bundle.RelationKeySpaceId, + Condition: model.BlockContentDataviewFilter_NotEqual, + Value: domain.String(addr.AnytypeMarketplaceWorkspace), + }, + }, + }) + if err != nil { + return "", err + } + if len(records) == 0 { + return "", fmt.Errorf("no templates") + } + ids := make([]string, 0, len(records)) + for _, rec := range records { + ids = append(ids, rec.Details.GetString(bundle.RelationKeyId)) + } + path, _, err = s.exporter.Export(ctx, pb.RpcObjectListExportRequest{ + Path: path, + ObjectIds: ids, + Format: model.Export_Protobuf, + Zip: true, + }) + return path, err +} + +// SetDefaultTemplateInType sets defaultTemplateId to type object in case it is empty +func (s *service) SetDefaultTemplateInType(ctx context.Context, typeId, templateId string) error { + return cache.DoContext(s.picker, ctx, typeId, func(sb smartblock.SmartBlock) error { + if sb.Details().GetString(bundle.RelationKeyDefaultTemplateId) != "" { + return nil + } + ds := sb.(basic.DetailsSettable) + if ds == nil { + return fmt.Errorf("cannot set defaultTemplateId as type object does not support DetailsSettable interface") + } + return ds.SetDetails(nil, []domain.Detail{{ + Key: bundle.RelationKeyDefaultTemplateId, + Value: domain.String(templateId), + }}, false) + }) +} + +func (s *service) createBlankTemplateState(typeId domain.FullID, layout model.ObjectTypeLayout) (st *state.State) { + st = state.NewDoc(BlankTemplateId, nil).NewState() + template.InitTemplate(st, template.WithEmpty, + template.WithDefaultFeaturedRelations, + template.WithFeaturedRelations, + template.WithAddedFeaturedRelation(bundle.RelationKeyTag), + template.WithDetail(bundle.RelationKeyTag, domain.StringList(nil)), + template.WithTitle, + ) + if slices.Contains([]model.ObjectTypeLayout{model.ObjectType_set, model.ObjectType_collection}, layout) && !typeId.IsEmpty() { + template.InitTemplate(st, + template.WithDetail(bundle.RelationKeySpaceId, domain.String(typeId.SpaceID)), + template.WithDetail(bundle.RelationKeyType, domain.String(typeId.ObjectID)), + ) + } + if err := s.converter.Convert(st, model.ObjectType_basic, layout, true); err != nil { + log.Errorf("failed to set '%s' layout to blank template: %v", layout.String(), err) + } + return +} + +func (s *service) updateTypeKey(spaceId string, st *state.State) (err error) { + objectTypeId := st.Details().GetString(bundle.RelationKeyTargetObjectType) + if objectTypeId != "" { + var uniqueKey domain.UniqueKey + uniqueKey, err = s.store.SpaceIndex(spaceId).GetUniqueKeyById(objectTypeId) + if err != nil { + err = fmt.Errorf("get target object type %s: %w", objectTypeId, err) + } else if uniqueKey.SmartblockType() != coresb.SmartBlockTypeObjectType { + err = fmt.Errorf("unique key %s does not belong to object type", uniqueKey.InternalKey()) + } + if err == nil { + st.SetObjectTypeKey(domain.TypeKey(uniqueKey.InternalKey())) + return nil + } + log.Errorf(err.Error()) + } + updatedTypeKeys := slice.Remove(st.ObjectTypeKeys(), bundle.TypeKeyTemplate) + if len(updatedTypeKeys) != 1 { + return fmt.Errorf("failed to gather type key from template's ObjectTypeKeys (%v) and from object store: %w", st.ObjectTypeKeys(), err) + } + st.SetObjectTypeKey(updatedTypeKeys[0]) + return nil +} + +func buildTemplateStateFromObject(sb smartblock.SmartBlock) (*state.State, error) { + st := sb.NewState().Copy() + st.SetLocalDetails(nil) + targetObjectTypeId, err := sb.Space().GetTypeIdByKey(context.Background(), st.ObjectTypeKey()) + if err != nil { + return nil, fmt.Errorf("get type id by key: %w", err) + } + st.SetDetail(bundle.RelationKeyTargetObjectType, domain.String(targetObjectTypeId)) + st.SetObjectTypeKeys([]domain.TypeKey{bundle.TypeKeyTemplate, st.ObjectTypeKey()}) + for _, rel := range sb.Relations(st) { + if rel.DataSource == model.Relation_details && !rel.Hidden { + st.RemoveDetail(domain.RelationKey(rel.Key)) + } + } + flags := internalflag.NewFromState(st) + flags.Remove(model.InternalFlag_editorDeleteEmpty) + flags.AddToState(st) + return st, nil +} + +func addDetailsToState(s *state.State, details *domain.Details) { + targetDetails := extractTargetDetails(details, s.Details()) + s.AddDetails(targetDetails) + s.BlocksInit(s) +} diff --git a/core/block/template/service_test.go b/core/block/template/templateimpl/impl_test.go similarity index 83% rename from core/block/template/service_test.go rename to core/block/template/templateimpl/impl_test.go index 3f53d87b6..2e844d967 100644 --- a/core/block/template/service_test.go +++ b/core/block/template/templateimpl/impl_test.go @@ -1,4 +1,4 @@ -package template +package templateimpl import ( "context" @@ -22,6 +22,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/template" "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/core/block/simple/text" + templateSvc "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" @@ -118,7 +119,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: templateName}) // then assert.NoError(t, err) @@ -141,7 +142,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { details.Set(bundle.RelationKeyDescription, domain.String(addedDetail)) // when - st, err := s.CreateTemplateStateWithDetails(templateName, details, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: templateName, Details: details}) // then assert.NoError(t, err) @@ -164,7 +165,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}, converter: converter.NewLayoutConverter()} // when - st, err := s.CreateTemplateStateWithDetails(testCase[1], nil, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: testCase[1]}) // then assert.NoError(t, err) @@ -181,7 +182,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{}} // when - _, err := s.CreateTemplateStateWithDetails(templateName, nil, false) + _, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: templateName}) // then assert.Error(t, err) @@ -193,7 +194,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{sb: tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: templateName}) // then assert.NoError(t, err) @@ -211,15 +212,12 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { t.Run("blank template should correspond "+model.ObjectTypeLayout_name[int32(layout)]+" layout", func(t *testing.T) { // given s := service{converter: converter.NewLayoutConverter()} - details := domain.NewDetails() - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(layout))) // when - st, err := s.CreateTemplateStateWithDetails(BlankTemplateId, details, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: BlankTemplateId, Layout: layout}) // then assert.NoError(t, err) - assert.Equal(t, layout, model.ObjectTypeLayout(st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout))) assertLayoutBlocks(t, st, layout) }) } @@ -237,7 +235,7 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { s := service{picker: &testPicker{tmpl}} // when - st, err := s.CreateTemplateStateWithDetails(templateName, nil, false) + st, err := s.CreateTemplateStateWithDetails(templateSvc.CreateTemplateRequest{TemplateId: templateName}) // then assert.NoError(t, err) @@ -253,9 +251,7 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { s := service{converter: converter.NewLayoutConverter()} // when - st := s.CreateTemplateStateFromSmartBlock(nil, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeyResolvedLayout: domain.Int64(int64(model.ObjectType_todo)), - })) + st := s.CreateTemplateStateFromSmartBlock(nil, templateSvc.CreateTemplateRequest{Layout: model.ObjectType_todo}) // then assert.Equal(t, BlankTemplateId, st.RootId()) @@ -269,7 +265,7 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { s := service{} // when - st := s.CreateTemplateStateFromSmartBlock(tmpl, nil) + st := s.CreateTemplateStateFromSmartBlock(tmpl, templateSvc.CreateTemplateRequest{}) // then assert.Equal(t, "template", st.Details().GetString(bundle.RelationKeyName)) @@ -335,80 +331,14 @@ func TestService_resolveValidTemplateId(t *testing.T) { {"no valid template exists", otherSpaceId, "templateId", ""}, } { t.Run(tc.name, func(t *testing.T) { - // given - details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - bundle.RelationKeySpaceId: domain.String(tc.spaceId), - bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), - }) - // when - templateId, err := s.resolveValidTemplateId(tc.requestedTemplateId, details) + templateId, err := s.resolveValidTemplateId(tc.spaceId, tc.requestedTemplateId, bundle.TypeKeyTask.URL()) // then assert.NoError(t, err) assert.Equal(t, tc.expectedTemplateId, templateId) }) } - - // t.Run("requested template is valid", func(t *testing.T) { - // // given - // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - // bundle.RelationKeySpaceId: domain.String(spaceId), - // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), - // }) - // - // // when - // templateId, err := s.resolveValidTemplateId(templateId2, details) - // - // // then - // assert.NoError(t, err) - // assert.Equal(t, templateId2, templateId) - // }) - // - // t.Run("requested template is invalid", func(t *testing.T) { - // // given - // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - // bundle.RelationKeySpaceId: domain.String(spaceId), - // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), - // }) - // - // // when - // templateId, err := s.resolveValidTemplateId("invalid", details) - // - // // then - // assert.NoError(t, err) - // assert.Equal(t, templateId1, templateId) - // }) - // - // t.Run("requested template is empty", func(t *testing.T) { - // // given - // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - // bundle.RelationKeySpaceId: domain.String(spaceId), - // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), - // }) - // - // // when - // templateId, err := s.resolveValidTemplateId("", details) - // - // // then - // assert.NoError(t, err) - // assert.Equal(t, templateId1, templateId) - // }) - // - // t.Run("no valid template exists", func(t *testing.T) { - // // given - // details := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ - // bundle.RelationKeySpaceId: domain.String(otherSpaceId), - // bundle.RelationKeyType: domain.String(bundle.TypeKeyTask.URL()), - // }) - // - // // when - // templateId, err := s.resolveValidTemplateId("template1", details) - // - // // then - // assert.NoError(t, err) - // assert.Empty(t, templateId) - // }) } func assertLayoutBlocks(t *testing.T, st *state.State, layout model.ObjectTypeLayout) { diff --git a/docs/proto.md b/docs/proto.md index 4aa52bd48..cff68dfe0 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -244,10 +244,6 @@ - [Rpc.BlockBookmark.Fetch.Response](#anytype-Rpc-BlockBookmark-Fetch-Response) - [Rpc.BlockBookmark.Fetch.Response.Error](#anytype-Rpc-BlockBookmark-Fetch-Response-Error) - [Rpc.BlockDataview](#anytype-Rpc-BlockDataview) - - [Rpc.BlockDataview.CreateBookmark](#anytype-Rpc-BlockDataview-CreateBookmark) - - [Rpc.BlockDataview.CreateBookmark.Request](#anytype-Rpc-BlockDataview-CreateBookmark-Request) - - [Rpc.BlockDataview.CreateBookmark.Response](#anytype-Rpc-BlockDataview-CreateBookmark-Response) - - [Rpc.BlockDataview.CreateBookmark.Response.Error](#anytype-Rpc-BlockDataview-CreateBookmark-Response-Error) - [Rpc.BlockDataview.CreateFromExistingObject](#anytype-Rpc-BlockDataview-CreateFromExistingObject) - [Rpc.BlockDataview.CreateFromExistingObject.Request](#anytype-Rpc-BlockDataview-CreateFromExistingObject-Request) - [Rpc.BlockDataview.CreateFromExistingObject.Response](#anytype-Rpc-BlockDataview-CreateFromExistingObject-Response) @@ -1350,7 +1346,6 @@ - [Rpc.Block.Upload.Response.Error.Code](#anytype-Rpc-Block-Upload-Response-Error-Code) - [Rpc.BlockBookmark.CreateAndFetch.Response.Error.Code](#anytype-Rpc-BlockBookmark-CreateAndFetch-Response-Error-Code) - [Rpc.BlockBookmark.Fetch.Response.Error.Code](#anytype-Rpc-BlockBookmark-Fetch-Response-Error-Code) - - [Rpc.BlockDataview.CreateBookmark.Response.Error.Code](#anytype-Rpc-BlockDataview-CreateBookmark-Response-Error-Code) - [Rpc.BlockDataview.CreateFromExistingObject.Response.Error.Code](#anytype-Rpc-BlockDataview-CreateFromExistingObject-Response-Error-Code) - [Rpc.BlockDataview.Filter.Add.Response.Error.Code](#anytype-Rpc-BlockDataview-Filter-Add-Response-Error-Code) - [Rpc.BlockDataview.Filter.Remove.Response.Error.Code](#anytype-Rpc-BlockDataview-Filter-Remove-Response-Error-Code) @@ -5815,66 +5810,6 @@ Makes blocks copy by given ids and paste it to shown place - - -### Rpc.BlockDataview.CreateBookmark - - - - - - - - - -### Rpc.BlockDataview.CreateBookmark.Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| contextId | [string](#string) | | | -| blockId | [string](#string) | | | -| url | [string](#string) | | | -| spaceId | [string](#string) | | | - - - - - - - - -### Rpc.BlockDataview.CreateBookmark.Response - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| error | [Rpc.BlockDataview.CreateBookmark.Response.Error](#anytype-Rpc-BlockDataview-CreateBookmark-Response-Error) | | | -| id | [string](#string) | | | - - - - - - - - -### Rpc.BlockDataview.CreateBookmark.Response.Error - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| code | [Rpc.BlockDataview.CreateBookmark.Response.Error.Code](#anytype-Rpc-BlockDataview-CreateBookmark-Response-Error-Code) | | | -| description | [string](#string) | | | - - - - - - ### Rpc.BlockDataview.CreateFromExistingObject @@ -14373,8 +14308,8 @@ Get the info for page alongside with info for all inbound and outbound links fro | ----- | ---- | ----- | ----------- | | details | [google.protobuf.Struct](#google-protobuf-Struct) | | | | spaceId | [string](#string) | | | -| templateId | [string](#string) | | | | withChat | [bool](#bool) | | | +| templateId | [string](#string) | | | @@ -14438,6 +14373,7 @@ Get the info for page alongside with info for all inbound and outbound links fro | details | [google.protobuf.Struct](#google-protobuf-Struct) | | | | addPageContent | [bool](#bool) | | | | withChat | [bool](#bool) | | | +| templateId | [string](#string) | | | @@ -21838,19 +21774,6 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er - - -### Rpc.BlockDataview.CreateBookmark.Response.Error.Code - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NULL | 0 | | -| UNKNOWN_ERROR | 1 | | -| BAD_INPUT | 2 | ... | - - - ### Rpc.BlockDataview.CreateFromExistingObject.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 4659e7618..eab79f6c2 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -7261,34 +7261,6 @@ func (RpcBlockDataviewCreateFromExistingObjectResponseErrorCode) EnumDescriptor( return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 5, 1, 0, 0} } -type RpcBlockDataviewCreateBookmarkResponseErrorCode int32 - -const ( - RpcBlockDataviewCreateBookmarkResponseError_NULL RpcBlockDataviewCreateBookmarkResponseErrorCode = 0 - RpcBlockDataviewCreateBookmarkResponseError_UNKNOWN_ERROR RpcBlockDataviewCreateBookmarkResponseErrorCode = 1 - RpcBlockDataviewCreateBookmarkResponseError_BAD_INPUT RpcBlockDataviewCreateBookmarkResponseErrorCode = 2 -) - -var RpcBlockDataviewCreateBookmarkResponseErrorCode_name = map[int32]string{ - 0: "NULL", - 1: "UNKNOWN_ERROR", - 2: "BAD_INPUT", -} - -var RpcBlockDataviewCreateBookmarkResponseErrorCode_value = map[string]int32{ - "NULL": 0, - "UNKNOWN_ERROR": 1, - "BAD_INPUT": 2, -} - -func (x RpcBlockDataviewCreateBookmarkResponseErrorCode) String() string { - return proto.EnumName(RpcBlockDataviewCreateBookmarkResponseErrorCode_name, int32(x)) -} - -func (RpcBlockDataviewCreateBookmarkResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 0, 0} -} - type RpcBlockDataviewFilterAddResponseErrorCode int32 const ( @@ -7314,7 +7286,7 @@ func (x RpcBlockDataviewFilterAddResponseErrorCode) String() string { } func (RpcBlockDataviewFilterAddResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0, 1, 0, 0} } type RpcBlockDataviewFilterRemoveResponseErrorCode int32 @@ -7342,7 +7314,7 @@ func (x RpcBlockDataviewFilterRemoveResponseErrorCode) String() string { } func (RpcBlockDataviewFilterRemoveResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 1, 0, 0} } type RpcBlockDataviewFilterReplaceResponseErrorCode int32 @@ -7370,7 +7342,7 @@ func (x RpcBlockDataviewFilterReplaceResponseErrorCode) String() string { } func (RpcBlockDataviewFilterReplaceResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 2, 1, 0, 0} } type RpcBlockDataviewFilterSortResponseErrorCode int32 @@ -7398,7 +7370,7 @@ func (x RpcBlockDataviewFilterSortResponseErrorCode) String() string { } func (RpcBlockDataviewFilterSortResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 3, 1, 0, 0} } type RpcBlockDataviewSortAddResponseErrorCode int32 @@ -7426,7 +7398,7 @@ func (x RpcBlockDataviewSortAddResponseErrorCode) String() string { } func (RpcBlockDataviewSortAddResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1, 0, 0} } type RpcBlockDataviewSortRemoveResponseErrorCode int32 @@ -7454,7 +7426,7 @@ func (x RpcBlockDataviewSortRemoveResponseErrorCode) String() string { } func (RpcBlockDataviewSortRemoveResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1, 0, 0} } type RpcBlockDataviewSortReplaceResponseErrorCode int32 @@ -7482,7 +7454,7 @@ func (x RpcBlockDataviewSortReplaceResponseErrorCode) String() string { } func (RpcBlockDataviewSortReplaceResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1, 0, 0} } type RpcBlockDataviewSortSSortResponseErrorCode int32 @@ -7510,7 +7482,7 @@ func (x RpcBlockDataviewSortSSortResponseErrorCode) String() string { } func (RpcBlockDataviewSortSSortResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1, 0, 0} } type RpcBlockDataviewViewRelationAddResponseErrorCode int32 @@ -7538,7 +7510,7 @@ func (x RpcBlockDataviewViewRelationAddResponseErrorCode) String() string { } func (RpcBlockDataviewViewRelationAddResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1, 0, 0} } type RpcBlockDataviewViewRelationRemoveResponseErrorCode int32 @@ -7566,7 +7538,7 @@ func (x RpcBlockDataviewViewRelationRemoveResponseErrorCode) String() string { } func (RpcBlockDataviewViewRelationRemoveResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 1, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1, 0, 0} } type RpcBlockDataviewViewRelationReplaceResponseErrorCode int32 @@ -7594,7 +7566,7 @@ func (x RpcBlockDataviewViewRelationReplaceResponseErrorCode) String() string { } func (RpcBlockDataviewViewRelationReplaceResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 2, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1, 0, 0} } type RpcBlockDataviewViewRelationSortResponseErrorCode int32 @@ -7622,7 +7594,7 @@ func (x RpcBlockDataviewViewRelationSortResponseErrorCode) String() string { } func (RpcBlockDataviewViewRelationSortResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 3, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1, 0, 0} } type RpcBlockWidgetSetTargetIdResponseErrorCode int32 @@ -21463,8 +21435,8 @@ var xxx_messageInfo_RpcObjectCreateBookmark proto.InternalMessageInfo type RpcObjectCreateBookmarkRequest struct { Details *types.Struct `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` SpaceId string `protobuf:"bytes,2,opt,name=spaceId,proto3" json:"spaceId,omitempty"` - TemplateId string `protobuf:"bytes,3,opt,name=templateId,proto3" json:"templateId,omitempty"` - WithChat bool `protobuf:"varint,4,opt,name=withChat,proto3" json:"withChat,omitempty"` + WithChat bool `protobuf:"varint,3,opt,name=withChat,proto3" json:"withChat,omitempty"` + TemplateId string `protobuf:"bytes,4,opt,name=templateId,proto3" json:"templateId,omitempty"` } func (m *RpcObjectCreateBookmarkRequest) Reset() { *m = RpcObjectCreateBookmarkRequest{} } @@ -21514,13 +21486,6 @@ func (m *RpcObjectCreateBookmarkRequest) GetSpaceId() string { return "" } -func (m *RpcObjectCreateBookmarkRequest) GetTemplateId() string { - if m != nil { - return m.TemplateId - } - return "" -} - func (m *RpcObjectCreateBookmarkRequest) GetWithChat() bool { if m != nil { return m.WithChat @@ -21528,6 +21493,13 @@ func (m *RpcObjectCreateBookmarkRequest) GetWithChat() bool { return false } +func (m *RpcObjectCreateBookmarkRequest) GetTemplateId() string { + if m != nil { + return m.TemplateId + } + return "" +} + type RpcObjectCreateBookmarkResponse struct { Error *RpcObjectCreateBookmarkResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` ObjectId string `protobuf:"bytes,2,opt,name=objectId,proto3" json:"objectId,omitempty"` @@ -22545,6 +22517,7 @@ type RpcObjectCreateFromUrlRequest struct { Details *types.Struct `protobuf:"bytes,4,opt,name=details,proto3" json:"details,omitempty"` AddPageContent bool `protobuf:"varint,5,opt,name=addPageContent,proto3" json:"addPageContent,omitempty"` WithChat bool `protobuf:"varint,6,opt,name=withChat,proto3" json:"withChat,omitempty"` + TemplateId string `protobuf:"bytes,7,opt,name=templateId,proto3" json:"templateId,omitempty"` } func (m *RpcObjectCreateFromUrlRequest) Reset() { *m = RpcObjectCreateFromUrlRequest{} } @@ -22622,6 +22595,13 @@ func (m *RpcObjectCreateFromUrlRequest) GetWithChat() bool { return false } +func (m *RpcObjectCreateFromUrlRequest) GetTemplateId() string { + if m != nil { + return m.TemplateId + } + return "" +} + type RpcObjectCreateFromUrlResponse struct { Error *RpcObjectCreateFromUrlResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` ObjectId string `protobuf:"bytes,2,opt,name=objectId,proto3" json:"objectId,omitempty"` @@ -58395,220 +58375,6 @@ func (m *RpcBlockDataviewCreateFromExistingObjectResponseError) GetDescription() return "" } -type RpcBlockDataviewCreateBookmark struct { -} - -func (m *RpcBlockDataviewCreateBookmark) Reset() { *m = RpcBlockDataviewCreateBookmark{} } -func (m *RpcBlockDataviewCreateBookmark) String() string { return proto.CompactTextString(m) } -func (*RpcBlockDataviewCreateBookmark) ProtoMessage() {} -func (*RpcBlockDataviewCreateBookmark) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6} -} -func (m *RpcBlockDataviewCreateBookmark) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcBlockDataviewCreateBookmark) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcBlockDataviewCreateBookmark.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcBlockDataviewCreateBookmark) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcBlockDataviewCreateBookmark.Merge(m, src) -} -func (m *RpcBlockDataviewCreateBookmark) XXX_Size() int { - return m.Size() -} -func (m *RpcBlockDataviewCreateBookmark) XXX_DiscardUnknown() { - xxx_messageInfo_RpcBlockDataviewCreateBookmark.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcBlockDataviewCreateBookmark proto.InternalMessageInfo - -type RpcBlockDataviewCreateBookmarkRequest struct { - ContextId string `protobuf:"bytes,1,opt,name=contextId,proto3" json:"contextId,omitempty"` - BlockId string `protobuf:"bytes,2,opt,name=blockId,proto3" json:"blockId,omitempty"` - Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` - SpaceId string `protobuf:"bytes,4,opt,name=spaceId,proto3" json:"spaceId,omitempty"` -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) Reset() { *m = RpcBlockDataviewCreateBookmarkRequest{} } -func (m *RpcBlockDataviewCreateBookmarkRequest) String() string { return proto.CompactTextString(m) } -func (*RpcBlockDataviewCreateBookmarkRequest) ProtoMessage() {} -func (*RpcBlockDataviewCreateBookmarkRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0} -} -func (m *RpcBlockDataviewCreateBookmarkRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcBlockDataviewCreateBookmarkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcBlockDataviewCreateBookmarkRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcBlockDataviewCreateBookmarkRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkRequest.Merge(m, src) -} -func (m *RpcBlockDataviewCreateBookmarkRequest) XXX_Size() int { - return m.Size() -} -func (m *RpcBlockDataviewCreateBookmarkRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcBlockDataviewCreateBookmarkRequest proto.InternalMessageInfo - -func (m *RpcBlockDataviewCreateBookmarkRequest) GetContextId() string { - if m != nil { - return m.ContextId - } - return "" -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) GetBlockId() string { - if m != nil { - return m.BlockId - } - return "" -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) GetUrl() string { - if m != nil { - return m.Url - } - return "" -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) GetSpaceId() string { - if m != nil { - return m.SpaceId - } - return "" -} - -type RpcBlockDataviewCreateBookmarkResponse struct { - Error *RpcBlockDataviewCreateBookmarkResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) Reset() { - *m = RpcBlockDataviewCreateBookmarkResponse{} -} -func (m *RpcBlockDataviewCreateBookmarkResponse) String() string { return proto.CompactTextString(m) } -func (*RpcBlockDataviewCreateBookmarkResponse) ProtoMessage() {} -func (*RpcBlockDataviewCreateBookmarkResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1} -} -func (m *RpcBlockDataviewCreateBookmarkResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcBlockDataviewCreateBookmarkResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcBlockDataviewCreateBookmarkResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponse.Merge(m, src) -} -func (m *RpcBlockDataviewCreateBookmarkResponse) XXX_Size() int { - return m.Size() -} -func (m *RpcBlockDataviewCreateBookmarkResponse) XXX_DiscardUnknown() { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponse proto.InternalMessageInfo - -func (m *RpcBlockDataviewCreateBookmarkResponse) GetError() *RpcBlockDataviewCreateBookmarkResponseError { - if m != nil { - return m.Error - } - return nil -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type RpcBlockDataviewCreateBookmarkResponseError struct { - Code RpcBlockDataviewCreateBookmarkResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcBlockDataviewCreateBookmarkResponseErrorCode" json:"code,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) Reset() { - *m = RpcBlockDataviewCreateBookmarkResponseError{} -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) String() string { - return proto.CompactTextString(m) -} -func (*RpcBlockDataviewCreateBookmarkResponseError) ProtoMessage() {} -func (*RpcBlockDataviewCreateBookmarkResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 0} -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponseError.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponseError.Merge(m, src) -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) XXX_Size() int { - return m.Size() -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponseError.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcBlockDataviewCreateBookmarkResponseError proto.InternalMessageInfo - -func (m *RpcBlockDataviewCreateBookmarkResponseError) GetCode() RpcBlockDataviewCreateBookmarkResponseErrorCode { - if m != nil { - return m.Code - } - return RpcBlockDataviewCreateBookmarkResponseError_NULL -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - type RpcBlockDataviewFilter struct { } @@ -58616,7 +58382,7 @@ func (m *RpcBlockDataviewFilter) Reset() { *m = RpcBlockDataviewFilter{} func (m *RpcBlockDataviewFilter) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilter) ProtoMessage() {} func (*RpcBlockDataviewFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6} } func (m *RpcBlockDataviewFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58652,7 +58418,7 @@ func (m *RpcBlockDataviewFilterAdd) Reset() { *m = RpcBlockDataviewFilte func (m *RpcBlockDataviewFilterAdd) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterAdd) ProtoMessage() {} func (*RpcBlockDataviewFilterAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0} } func (m *RpcBlockDataviewFilterAdd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58692,7 +58458,7 @@ func (m *RpcBlockDataviewFilterAddRequest) Reset() { *m = RpcBlockDatavi func (m *RpcBlockDataviewFilterAddRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterAddRequest) ProtoMessage() {} func (*RpcBlockDataviewFilterAddRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0, 0} } func (m *RpcBlockDataviewFilterAddRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58758,7 +58524,7 @@ func (m *RpcBlockDataviewFilterAddResponse) Reset() { *m = RpcBlockDatav func (m *RpcBlockDataviewFilterAddResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterAddResponse) ProtoMessage() {} func (*RpcBlockDataviewFilterAddResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0, 1} } func (m *RpcBlockDataviewFilterAddResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58812,7 +58578,7 @@ func (m *RpcBlockDataviewFilterAddResponseError) Reset() { func (m *RpcBlockDataviewFilterAddResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterAddResponseError) ProtoMessage() {} func (*RpcBlockDataviewFilterAddResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 0, 1, 0} } func (m *RpcBlockDataviewFilterAddResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58862,7 +58628,7 @@ func (m *RpcBlockDataviewFilterRemove) Reset() { *m = RpcBlockDataviewFi func (m *RpcBlockDataviewFilterRemove) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterRemove) ProtoMessage() {} func (*RpcBlockDataviewFilterRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1} } func (m *RpcBlockDataviewFilterRemove) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58902,7 +58668,7 @@ func (m *RpcBlockDataviewFilterRemoveRequest) Reset() { *m = RpcBlockDat func (m *RpcBlockDataviewFilterRemoveRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterRemoveRequest) ProtoMessage() {} func (*RpcBlockDataviewFilterRemoveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 0} } func (m *RpcBlockDataviewFilterRemoveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -58968,7 +58734,7 @@ func (m *RpcBlockDataviewFilterRemoveResponse) Reset() { *m = RpcBlockDa func (m *RpcBlockDataviewFilterRemoveResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterRemoveResponse) ProtoMessage() {} func (*RpcBlockDataviewFilterRemoveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 1} } func (m *RpcBlockDataviewFilterRemoveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59024,7 +58790,7 @@ func (m *RpcBlockDataviewFilterRemoveResponseError) String() string { } func (*RpcBlockDataviewFilterRemoveResponseError) ProtoMessage() {} func (*RpcBlockDataviewFilterRemoveResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 1, 1, 0} } func (m *RpcBlockDataviewFilterRemoveResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59074,7 +58840,7 @@ func (m *RpcBlockDataviewFilterReplace) Reset() { *m = RpcBlockDataviewF func (m *RpcBlockDataviewFilterReplace) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterReplace) ProtoMessage() {} func (*RpcBlockDataviewFilterReplace) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 2} } func (m *RpcBlockDataviewFilterReplace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59115,7 +58881,7 @@ func (m *RpcBlockDataviewFilterReplaceRequest) Reset() { *m = RpcBlockDa func (m *RpcBlockDataviewFilterReplaceRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterReplaceRequest) ProtoMessage() {} func (*RpcBlockDataviewFilterReplaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 2, 0} } func (m *RpcBlockDataviewFilterReplaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59188,7 +58954,7 @@ func (m *RpcBlockDataviewFilterReplaceResponse) Reset() { *m = RpcBlockD func (m *RpcBlockDataviewFilterReplaceResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterReplaceResponse) ProtoMessage() {} func (*RpcBlockDataviewFilterReplaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 2, 1} } func (m *RpcBlockDataviewFilterReplaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59244,7 +59010,7 @@ func (m *RpcBlockDataviewFilterReplaceResponseError) String() string { } func (*RpcBlockDataviewFilterReplaceResponseError) ProtoMessage() {} func (*RpcBlockDataviewFilterReplaceResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 2, 1, 0} } func (m *RpcBlockDataviewFilterReplaceResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59294,7 +59060,7 @@ func (m *RpcBlockDataviewFilterSort) Reset() { *m = RpcBlockDataviewFilt func (m *RpcBlockDataviewFilterSort) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterSort) ProtoMessage() {} func (*RpcBlockDataviewFilterSort) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 3} } func (m *RpcBlockDataviewFilterSort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59334,7 +59100,7 @@ func (m *RpcBlockDataviewFilterSortRequest) Reset() { *m = RpcBlockDatav func (m *RpcBlockDataviewFilterSortRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterSortRequest) ProtoMessage() {} func (*RpcBlockDataviewFilterSortRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 3, 0} } func (m *RpcBlockDataviewFilterSortRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59400,7 +59166,7 @@ func (m *RpcBlockDataviewFilterSortResponse) Reset() { *m = RpcBlockData func (m *RpcBlockDataviewFilterSortResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterSortResponse) ProtoMessage() {} func (*RpcBlockDataviewFilterSortResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 3, 1} } func (m *RpcBlockDataviewFilterSortResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59454,7 +59220,7 @@ func (m *RpcBlockDataviewFilterSortResponseError) Reset() { func (m *RpcBlockDataviewFilterSortResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewFilterSortResponseError) ProtoMessage() {} func (*RpcBlockDataviewFilterSortResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 6, 3, 1, 0} } func (m *RpcBlockDataviewFilterSortResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59504,7 +59270,7 @@ func (m *RpcBlockDataviewSort) Reset() { *m = RpcBlockDataviewSort{} } func (m *RpcBlockDataviewSort) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSort) ProtoMessage() {} func (*RpcBlockDataviewSort) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7} } func (m *RpcBlockDataviewSort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59540,7 +59306,7 @@ func (m *RpcBlockDataviewSortAdd) Reset() { *m = RpcBlockDataviewSortAdd func (m *RpcBlockDataviewSortAdd) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortAdd) ProtoMessage() {} func (*RpcBlockDataviewSortAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0} } func (m *RpcBlockDataviewSortAdd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59580,7 +59346,7 @@ func (m *RpcBlockDataviewSortAddRequest) Reset() { *m = RpcBlockDataview func (m *RpcBlockDataviewSortAddRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortAddRequest) ProtoMessage() {} func (*RpcBlockDataviewSortAddRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 0} } func (m *RpcBlockDataviewSortAddRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59646,7 +59412,7 @@ func (m *RpcBlockDataviewSortAddResponse) Reset() { *m = RpcBlockDatavie func (m *RpcBlockDataviewSortAddResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortAddResponse) ProtoMessage() {} func (*RpcBlockDataviewSortAddResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1} } func (m *RpcBlockDataviewSortAddResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59698,7 +59464,7 @@ func (m *RpcBlockDataviewSortAddResponseError) Reset() { *m = RpcBlockDa func (m *RpcBlockDataviewSortAddResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortAddResponseError) ProtoMessage() {} func (*RpcBlockDataviewSortAddResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 0, 1, 0} } func (m *RpcBlockDataviewSortAddResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59748,7 +59514,7 @@ func (m *RpcBlockDataviewSortRemove) Reset() { *m = RpcBlockDataviewSort func (m *RpcBlockDataviewSortRemove) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortRemove) ProtoMessage() {} func (*RpcBlockDataviewSortRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1} } func (m *RpcBlockDataviewSortRemove) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59788,7 +59554,7 @@ func (m *RpcBlockDataviewSortRemoveRequest) Reset() { *m = RpcBlockDatav func (m *RpcBlockDataviewSortRemoveRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortRemoveRequest) ProtoMessage() {} func (*RpcBlockDataviewSortRemoveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 0} } func (m *RpcBlockDataviewSortRemoveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59854,7 +59620,7 @@ func (m *RpcBlockDataviewSortRemoveResponse) Reset() { *m = RpcBlockData func (m *RpcBlockDataviewSortRemoveResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortRemoveResponse) ProtoMessage() {} func (*RpcBlockDataviewSortRemoveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1} } func (m *RpcBlockDataviewSortRemoveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59908,7 +59674,7 @@ func (m *RpcBlockDataviewSortRemoveResponseError) Reset() { func (m *RpcBlockDataviewSortRemoveResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortRemoveResponseError) ProtoMessage() {} func (*RpcBlockDataviewSortRemoveResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 1, 1, 0} } func (m *RpcBlockDataviewSortRemoveResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59958,7 +59724,7 @@ func (m *RpcBlockDataviewSortReplace) Reset() { *m = RpcBlockDataviewSor func (m *RpcBlockDataviewSortReplace) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortReplace) ProtoMessage() {} func (*RpcBlockDataviewSortReplace) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2} } func (m *RpcBlockDataviewSortReplace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -59999,7 +59765,7 @@ func (m *RpcBlockDataviewSortReplaceRequest) Reset() { *m = RpcBlockData func (m *RpcBlockDataviewSortReplaceRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortReplaceRequest) ProtoMessage() {} func (*RpcBlockDataviewSortReplaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 0} } func (m *RpcBlockDataviewSortReplaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60072,7 +59838,7 @@ func (m *RpcBlockDataviewSortReplaceResponse) Reset() { *m = RpcBlockDat func (m *RpcBlockDataviewSortReplaceResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortReplaceResponse) ProtoMessage() {} func (*RpcBlockDataviewSortReplaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1} } func (m *RpcBlockDataviewSortReplaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60126,7 +59892,7 @@ func (m *RpcBlockDataviewSortReplaceResponseError) Reset() { func (m *RpcBlockDataviewSortReplaceResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortReplaceResponseError) ProtoMessage() {} func (*RpcBlockDataviewSortReplaceResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 2, 1, 0} } func (m *RpcBlockDataviewSortReplaceResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60176,7 +59942,7 @@ func (m *RpcBlockDataviewSortSSort) Reset() { *m = RpcBlockDataviewSortS func (m *RpcBlockDataviewSortSSort) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortSSort) ProtoMessage() {} func (*RpcBlockDataviewSortSSort) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3} } func (m *RpcBlockDataviewSortSSort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60216,7 +59982,7 @@ func (m *RpcBlockDataviewSortSSortRequest) Reset() { *m = RpcBlockDatavi func (m *RpcBlockDataviewSortSSortRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortSSortRequest) ProtoMessage() {} func (*RpcBlockDataviewSortSSortRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 0} } func (m *RpcBlockDataviewSortSSortRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60282,7 +60048,7 @@ func (m *RpcBlockDataviewSortSSortResponse) Reset() { *m = RpcBlockDatav func (m *RpcBlockDataviewSortSSortResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortSSortResponse) ProtoMessage() {} func (*RpcBlockDataviewSortSSortResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1} } func (m *RpcBlockDataviewSortSSortResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60336,7 +60102,7 @@ func (m *RpcBlockDataviewSortSSortResponseError) Reset() { func (m *RpcBlockDataviewSortSSortResponseError) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewSortSSortResponseError) ProtoMessage() {} func (*RpcBlockDataviewSortSSortResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 7, 3, 1, 0} } func (m *RpcBlockDataviewSortSSortResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60386,7 +60152,7 @@ func (m *RpcBlockDataviewViewRelation) Reset() { *m = RpcBlockDataviewVi func (m *RpcBlockDataviewViewRelation) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelation) ProtoMessage() {} func (*RpcBlockDataviewViewRelation) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8} } func (m *RpcBlockDataviewViewRelation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60422,7 +60188,7 @@ func (m *RpcBlockDataviewViewRelationAdd) Reset() { *m = RpcBlockDatavie func (m *RpcBlockDataviewViewRelationAdd) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationAdd) ProtoMessage() {} func (*RpcBlockDataviewViewRelationAdd) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0} } func (m *RpcBlockDataviewViewRelationAdd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60464,7 +60230,7 @@ func (m *RpcBlockDataviewViewRelationAddRequest) Reset() { func (m *RpcBlockDataviewViewRelationAddRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationAddRequest) ProtoMessage() {} func (*RpcBlockDataviewViewRelationAddRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 0} } func (m *RpcBlockDataviewViewRelationAddRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60532,7 +60298,7 @@ func (m *RpcBlockDataviewViewRelationAddResponse) Reset() { func (m *RpcBlockDataviewViewRelationAddResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationAddResponse) ProtoMessage() {} func (*RpcBlockDataviewViewRelationAddResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1} } func (m *RpcBlockDataviewViewRelationAddResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60588,7 +60354,7 @@ func (m *RpcBlockDataviewViewRelationAddResponseError) String() string { } func (*RpcBlockDataviewViewRelationAddResponseError) ProtoMessage() {} func (*RpcBlockDataviewViewRelationAddResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 0, 1, 0} } func (m *RpcBlockDataviewViewRelationAddResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60638,7 +60404,7 @@ func (m *RpcBlockDataviewViewRelationRemove) Reset() { *m = RpcBlockData func (m *RpcBlockDataviewViewRelationRemove) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationRemove) ProtoMessage() {} func (*RpcBlockDataviewViewRelationRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1} } func (m *RpcBlockDataviewViewRelationRemove) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60682,7 +60448,7 @@ func (m *RpcBlockDataviewViewRelationRemoveRequest) String() string { } func (*RpcBlockDataviewViewRelationRemoveRequest) ProtoMessage() {} func (*RpcBlockDataviewViewRelationRemoveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 0} } func (m *RpcBlockDataviewViewRelationRemoveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60752,7 +60518,7 @@ func (m *RpcBlockDataviewViewRelationRemoveResponse) String() string { } func (*RpcBlockDataviewViewRelationRemoveResponse) ProtoMessage() {} func (*RpcBlockDataviewViewRelationRemoveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 1, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1} } func (m *RpcBlockDataviewViewRelationRemoveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60808,7 +60574,7 @@ func (m *RpcBlockDataviewViewRelationRemoveResponseError) String() string { } func (*RpcBlockDataviewViewRelationRemoveResponseError) ProtoMessage() {} func (*RpcBlockDataviewViewRelationRemoveResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 1, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 1, 1, 0} } func (m *RpcBlockDataviewViewRelationRemoveResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60858,7 +60624,7 @@ func (m *RpcBlockDataviewViewRelationReplace) Reset() { *m = RpcBlockDat func (m *RpcBlockDataviewViewRelationReplace) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationReplace) ProtoMessage() {} func (*RpcBlockDataviewViewRelationReplace) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2} } func (m *RpcBlockDataviewViewRelationReplace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60903,7 +60669,7 @@ func (m *RpcBlockDataviewViewRelationReplaceRequest) String() string { } func (*RpcBlockDataviewViewRelationReplaceRequest) ProtoMessage() {} func (*RpcBlockDataviewViewRelationReplaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 2, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 0} } func (m *RpcBlockDataviewViewRelationReplaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -60980,7 +60746,7 @@ func (m *RpcBlockDataviewViewRelationReplaceResponse) String() string { } func (*RpcBlockDataviewViewRelationReplaceResponse) ProtoMessage() {} func (*RpcBlockDataviewViewRelationReplaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 2, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1} } func (m *RpcBlockDataviewViewRelationReplaceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -61036,7 +60802,7 @@ func (m *RpcBlockDataviewViewRelationReplaceResponseError) String() string { } func (*RpcBlockDataviewViewRelationReplaceResponseError) ProtoMessage() {} func (*RpcBlockDataviewViewRelationReplaceResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 2, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 2, 1, 0} } func (m *RpcBlockDataviewViewRelationReplaceResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -61086,7 +60852,7 @@ func (m *RpcBlockDataviewViewRelationSort) Reset() { *m = RpcBlockDatavi func (m *RpcBlockDataviewViewRelationSort) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationSort) ProtoMessage() {} func (*RpcBlockDataviewViewRelationSort) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 3} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3} } func (m *RpcBlockDataviewViewRelationSort) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -61128,7 +60894,7 @@ func (m *RpcBlockDataviewViewRelationSortRequest) Reset() { func (m *RpcBlockDataviewViewRelationSortRequest) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationSortRequest) ProtoMessage() {} func (*RpcBlockDataviewViewRelationSortRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 3, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 0} } func (m *RpcBlockDataviewViewRelationSortRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -61196,7 +60962,7 @@ func (m *RpcBlockDataviewViewRelationSortResponse) Reset() { func (m *RpcBlockDataviewViewRelationSortResponse) String() string { return proto.CompactTextString(m) } func (*RpcBlockDataviewViewRelationSortResponse) ProtoMessage() {} func (*RpcBlockDataviewViewRelationSortResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 3, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1} } func (m *RpcBlockDataviewViewRelationSortResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -61252,7 +61018,7 @@ func (m *RpcBlockDataviewViewRelationSortResponseError) String() string { } func (*RpcBlockDataviewViewRelationSortResponseError) ProtoMessage() {} func (*RpcBlockDataviewViewRelationSortResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 9, 3, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 29, 8, 3, 1, 0} } func (m *RpcBlockDataviewViewRelationSortResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -72341,7 +72107,6 @@ func init() { proto.RegisterEnum("anytype.RpcBlockDataviewObjectOrderUpdateResponseErrorCode", RpcBlockDataviewObjectOrderUpdateResponseErrorCode_name, RpcBlockDataviewObjectOrderUpdateResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockDataviewObjectOrderMoveResponseErrorCode", RpcBlockDataviewObjectOrderMoveResponseErrorCode_name, RpcBlockDataviewObjectOrderMoveResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockDataviewCreateFromExistingObjectResponseErrorCode", RpcBlockDataviewCreateFromExistingObjectResponseErrorCode_name, RpcBlockDataviewCreateFromExistingObjectResponseErrorCode_value) - proto.RegisterEnum("anytype.RpcBlockDataviewCreateBookmarkResponseErrorCode", RpcBlockDataviewCreateBookmarkResponseErrorCode_name, RpcBlockDataviewCreateBookmarkResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockDataviewFilterAddResponseErrorCode", RpcBlockDataviewFilterAddResponseErrorCode_name, RpcBlockDataviewFilterAddResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockDataviewFilterRemoveResponseErrorCode", RpcBlockDataviewFilterRemoveResponseErrorCode_name, RpcBlockDataviewFilterRemoveResponseErrorCode_value) proto.RegisterEnum("anytype.RpcBlockDataviewFilterReplaceResponseErrorCode", RpcBlockDataviewFilterReplaceResponseErrorCode_name, RpcBlockDataviewFilterReplaceResponseErrorCode_value) @@ -73380,10 +73145,6 @@ func init() { proto.RegisterType((*RpcBlockDataviewCreateFromExistingObjectRequest)(nil), "anytype.Rpc.BlockDataview.CreateFromExistingObject.Request") proto.RegisterType((*RpcBlockDataviewCreateFromExistingObjectResponse)(nil), "anytype.Rpc.BlockDataview.CreateFromExistingObject.Response") proto.RegisterType((*RpcBlockDataviewCreateFromExistingObjectResponseError)(nil), "anytype.Rpc.BlockDataview.CreateFromExistingObject.Response.Error") - proto.RegisterType((*RpcBlockDataviewCreateBookmark)(nil), "anytype.Rpc.BlockDataview.CreateBookmark") - proto.RegisterType((*RpcBlockDataviewCreateBookmarkRequest)(nil), "anytype.Rpc.BlockDataview.CreateBookmark.Request") - proto.RegisterType((*RpcBlockDataviewCreateBookmarkResponse)(nil), "anytype.Rpc.BlockDataview.CreateBookmark.Response") - proto.RegisterType((*RpcBlockDataviewCreateBookmarkResponseError)(nil), "anytype.Rpc.BlockDataview.CreateBookmark.Response.Error") proto.RegisterType((*RpcBlockDataviewFilter)(nil), "anytype.Rpc.BlockDataview.Filter") proto.RegisterType((*RpcBlockDataviewFilterAdd)(nil), "anytype.Rpc.BlockDataview.Filter.Add") proto.RegisterType((*RpcBlockDataviewFilterAddRequest)(nil), "anytype.Rpc.BlockDataview.Filter.Add.Request") @@ -73668,1267 +73429,1265 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 20155 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x24, 0x49, - 0x59, 0x37, 0x3a, 0x95, 0x59, 0x55, 0xdd, 0xfd, 0xf6, 0x65, 0x6a, 0x72, 0x67, 0x66, 0x67, 0x73, - 0x97, 0xd9, 0x75, 0x76, 0x59, 0xd6, 0x65, 0xe9, 0xbd, 0x80, 0xc8, 0x2e, 0xbb, 0xec, 0x56, 0x57, - 0x57, 0x77, 0xd7, 0x6e, 0x77, 0x55, 0x9b, 0x55, 0x3d, 0xc3, 0xea, 0xe7, 0x29, 0x73, 0xaa, 0xa2, - 0xbb, 0x73, 0xa7, 0x3a, 0xb3, 0xc8, 0xcc, 0xee, 0xd9, 0xe1, 0x3c, 0xdf, 0xf9, 0x44, 0x5c, 0x41, - 0x11, 0x11, 0x15, 0x15, 0x15, 0x10, 0x70, 0x51, 0x50, 0xee, 0xb7, 0x0f, 0x90, 0x8b, 0x5c, 0xe4, - 0x22, 0x22, 0x82, 0xc8, 0x45, 0xf7, 0x08, 0x82, 0x88, 0xdf, 0x23, 0x87, 0x83, 0xe7, 0x13, 0xc4, - 0x0f, 0x8e, 0xe7, 0xc9, 0x88, 0xc8, 0xcc, 0x88, 0xea, 0xca, 0xac, 0xc8, 0xea, 0xca, 0xea, 0x45, - 0xce, 0x7f, 0x99, 0x91, 0x91, 0x6f, 0xbc, 0xf1, 0xfe, 0xde, 0x88, 0x78, 0x23, 0xe2, 0x8d, 0x37, - 0xe0, 0x54, 0xf7, 0xfc, 0xcd, 0x5d, 0xdb, 0x72, 0x2d, 0xe7, 0xe6, 0x96, 0xb5, 0xb3, 0xa3, 0x9b, - 0x6d, 0x67, 0x1e, 0xbf, 0x2b, 0x13, 0xba, 0x79, 0xc9, 0xbd, 0xd4, 0x45, 0xea, 0x75, 0xdd, 0x0b, - 0x5b, 0x37, 0x77, 0x8c, 0xf3, 0x37, 0x77, 0xcf, 0xdf, 0xbc, 0x63, 0xb5, 0x51, 0xc7, 0xff, 0x01, - 0xbf, 0xd0, 0xec, 0xea, 0x0d, 0x51, 0xb9, 0x3a, 0x56, 0x4b, 0xef, 0x38, 0xae, 0x65, 0x23, 0x9a, - 0xf3, 0x64, 0x58, 0x24, 0xda, 0x43, 0xa6, 0xeb, 0x53, 0xb8, 0x6a, 0xcb, 0xb2, 0xb6, 0x3a, 0x88, - 0x7c, 0x3b, 0xbf, 0xbb, 0x79, 0xb3, 0xe3, 0xda, 0xbb, 0x2d, 0x97, 0x7e, 0xbd, 0xa6, 0xf7, 0x6b, - 0x1b, 0x39, 0x2d, 0xdb, 0xe8, 0xba, 0x96, 0x4d, 0x72, 0x9c, 0x79, 0xd6, 0xab, 0x26, 0x41, 0xd6, - 0xba, 0x2d, 0xf5, 0x5b, 0x13, 0x20, 0x17, 0xbb, 0x5d, 0xf5, 0x43, 0x12, 0xc0, 0x32, 0x72, 0xcf, - 0x22, 0xdb, 0x31, 0x2c, 0x53, 0x3d, 0x0a, 0x13, 0x1a, 0x7a, 0xc6, 0x2e, 0x72, 0xdc, 0x3b, 0xb2, - 0xcf, 0xfd, 0xaa, 0x9c, 0x51, 0x1f, 0x96, 0x60, 0x52, 0x43, 0x4e, 0xd7, 0x32, 0x1d, 0xa4, 0xdc, - 0x03, 0x39, 0x64, 0xdb, 0x96, 0x7d, 0x2a, 0x73, 0x4d, 0xe6, 0x86, 0xe9, 0xdb, 0x6e, 0x9c, 0xa7, - 0xd5, 0x9f, 0xd7, 0xba, 0xad, 0xf9, 0x62, 0xb7, 0x3b, 0x1f, 0x52, 0x9a, 0xf7, 0x7f, 0x9a, 0x2f, - 0x7b, 0x7f, 0x68, 0xe4, 0x47, 0xe5, 0x14, 0x4c, 0xec, 0x91, 0x0c, 0xa7, 0xa4, 0x6b, 0x32, 0x37, - 0x4c, 0x69, 0xfe, 0xab, 0xf7, 0xa5, 0x8d, 0x5c, 0xdd, 0xe8, 0x38, 0xa7, 0x64, 0xf2, 0x85, 0xbe, - 0xaa, 0xaf, 0xc8, 0x40, 0x0e, 0x13, 0x51, 0x4a, 0x90, 0x6d, 0x59, 0x6d, 0x84, 0x8b, 0x9f, 0xbb, - 0xed, 0x66, 0xf1, 0xe2, 0xe7, 0x4b, 0x56, 0x1b, 0x69, 0xf8, 0x67, 0xe5, 0x1a, 0x98, 0xf6, 0xc5, - 0x12, 0xb2, 0xc1, 0x26, 0x9d, 0xb9, 0x0d, 0xb2, 0x5e, 0x7e, 0x65, 0x12, 0xb2, 0xd5, 0x8d, 0xd5, - 0xd5, 0xc2, 0x11, 0xe5, 0x18, 0xcc, 0x6e, 0x54, 0xef, 0xab, 0xd6, 0xce, 0x55, 0x9b, 0x65, 0x4d, - 0xab, 0x69, 0x85, 0x8c, 0x32, 0x0b, 0x53, 0x0b, 0xc5, 0xc5, 0x66, 0xa5, 0xba, 0xbe, 0xd1, 0x28, - 0x48, 0xea, 0x4b, 0x65, 0x98, 0xab, 0x23, 0x77, 0x11, 0xed, 0x19, 0x2d, 0x54, 0x77, 0x75, 0x17, - 0xa9, 0x2f, 0xc8, 0x04, 0xc2, 0x54, 0x36, 0xbc, 0x42, 0x83, 0x4f, 0xb4, 0x02, 0x4f, 0xdc, 0x57, - 0x01, 0x9e, 0xc2, 0x3c, 0xfd, 0x7b, 0x9e, 0x49, 0xd3, 0x58, 0x3a, 0x67, 0x9e, 0x00, 0xd3, 0xcc, - 0x37, 0x65, 0x0e, 0x60, 0xa1, 0x58, 0xba, 0x6f, 0x59, 0xab, 0x6d, 0x54, 0x17, 0x0b, 0x47, 0xbc, - 0xf7, 0xa5, 0x9a, 0x56, 0xa6, 0xef, 0x19, 0xf5, 0x3b, 0x19, 0x06, 0xcc, 0x45, 0x1e, 0xcc, 0xf9, - 0xc1, 0xcc, 0xf4, 0x01, 0x54, 0x7d, 0x55, 0x00, 0xce, 0x32, 0x07, 0xce, 0x13, 0x93, 0x91, 0x4b, - 0x1f, 0xa0, 0x87, 0x24, 0x98, 0xac, 0x6f, 0xef, 0xba, 0x6d, 0xeb, 0xa2, 0xa9, 0x4e, 0x05, 0xc8, - 0xa8, 0x5f, 0x67, 0x65, 0xf2, 0x34, 0x5e, 0x26, 0x37, 0xec, 0xaf, 0x04, 0xa5, 0x10, 0x21, 0x8d, - 0xdf, 0x0d, 0xa4, 0x51, 0xe4, 0xa4, 0xf1, 0x04, 0x51, 0x42, 0xe9, 0xcb, 0xe1, 0xb7, 0x9e, 0x02, - 0xb9, 0x7a, 0x57, 0x6f, 0x21, 0xf5, 0xe3, 0x32, 0xcc, 0xac, 0x22, 0x7d, 0x0f, 0x15, 0xbb, 0x5d, - 0xdb, 0xda, 0x43, 0x6a, 0x29, 0xd4, 0xd7, 0x53, 0x30, 0xe1, 0x78, 0x99, 0x2a, 0x6d, 0x5c, 0x83, - 0x29, 0xcd, 0x7f, 0x55, 0x4e, 0x03, 0x18, 0x6d, 0x64, 0xba, 0x86, 0x6b, 0x20, 0xe7, 0x94, 0x74, - 0x8d, 0x7c, 0xc3, 0x94, 0xc6, 0xa4, 0xa8, 0xdf, 0x92, 0x44, 0x75, 0x0c, 0x73, 0x31, 0xcf, 0x72, - 0x10, 0x21, 0xd5, 0x57, 0x4a, 0x22, 0x3a, 0x36, 0x90, 0x5c, 0x32, 0xd9, 0xbe, 0x2e, 0x93, 0x5c, - 0xb8, 0x5e, 0x8e, 0x6a, 0xad, 0x59, 0xdf, 0x28, 0xad, 0x34, 0xeb, 0xeb, 0xc5, 0x52, 0xb9, 0x80, - 0x94, 0xe3, 0x50, 0xc0, 0x8f, 0xcd, 0x4a, 0xbd, 0xb9, 0x58, 0x5e, 0x2d, 0x37, 0xca, 0x8b, 0x85, - 0x4d, 0x45, 0x81, 0x39, 0xad, 0xfc, 0x63, 0x1b, 0xe5, 0x7a, 0xa3, 0xb9, 0x54, 0xac, 0xac, 0x96, - 0x17, 0x0b, 0x5b, 0xde, 0xcf, 0xab, 0x95, 0xb5, 0x4a, 0xa3, 0xa9, 0x95, 0x8b, 0xa5, 0x95, 0xf2, - 0x62, 0x61, 0x5b, 0xb9, 0x1c, 0x2e, 0xab, 0xd6, 0x9a, 0xc5, 0xf5, 0x75, 0xad, 0x76, 0xb6, 0xdc, - 0xa4, 0x7f, 0xd4, 0x0b, 0x06, 0x29, 0xa8, 0xd1, 0xac, 0xaf, 0x14, 0xb5, 0x72, 0x71, 0x61, 0xb5, - 0x5c, 0x78, 0x40, 0x7d, 0xb6, 0x0c, 0xb3, 0x6b, 0xfa, 0x05, 0x54, 0xdf, 0xd6, 0x6d, 0xa4, 0x9f, - 0xef, 0x20, 0xf5, 0x5a, 0x01, 0x3c, 0xd5, 0x8f, 0xb3, 0x78, 0x95, 0x79, 0xbc, 0x6e, 0xee, 0x23, - 0x60, 0xae, 0x88, 0x08, 0xc0, 0xfe, 0x2d, 0x68, 0x06, 0x2b, 0x1c, 0x60, 0x4f, 0x4a, 0x48, 0x2f, - 0x19, 0x62, 0x3f, 0xf3, 0x28, 0x40, 0x4c, 0x7d, 0x44, 0x86, 0xb9, 0x8a, 0xb9, 0x67, 0xb8, 0x68, - 0x19, 0x99, 0xc8, 0xf6, 0xc6, 0x01, 0x21, 0x18, 0x1e, 0x96, 0x19, 0x18, 0x96, 0x78, 0x18, 0x6e, - 0xe9, 0x23, 0x36, 0xbe, 0x8c, 0x88, 0xd1, 0xf6, 0x2a, 0x98, 0x32, 0x70, 0xbe, 0x92, 0xd1, 0xa6, - 0x12, 0x0b, 0x13, 0x94, 0xeb, 0x60, 0x96, 0xbc, 0x2c, 0x19, 0x1d, 0x74, 0x1f, 0xba, 0x44, 0xc7, - 0x5d, 0x3e, 0x51, 0xfd, 0xc5, 0xa0, 0xf1, 0x55, 0x38, 0x2c, 0x7f, 0x24, 0x29, 0x53, 0xc9, 0xc0, - 0x7c, 0xd1, 0xa3, 0xa1, 0xf9, 0xed, 0x6b, 0x65, 0x86, 0xfa, 0x3d, 0x09, 0xa6, 0xeb, 0xae, 0xd5, - 0xf5, 0x54, 0xd6, 0x30, 0xb7, 0xc4, 0xc0, 0xfd, 0x08, 0xdb, 0xc6, 0x4a, 0x3c, 0xb8, 0x4f, 0xe8, - 0x23, 0x47, 0xa6, 0x80, 0x88, 0x16, 0xf6, 0xad, 0xa0, 0x85, 0x2d, 0x71, 0xa8, 0xdc, 0x96, 0x88, - 0xda, 0xf7, 0x61, 0xfb, 0x7a, 0x91, 0x0c, 0x05, 0x5f, 0xcd, 0xdc, 0xd2, 0xae, 0x6d, 0x23, 0xd3, - 0x15, 0x03, 0xe1, 0x6f, 0x58, 0x10, 0x56, 0x78, 0x10, 0x6e, 0x8b, 0x51, 0x66, 0xbf, 0x94, 0x14, - 0xdb, 0xd8, 0xfb, 0x02, 0x34, 0xef, 0xe3, 0xd0, 0xfc, 0xd1, 0xe4, 0x6c, 0x25, 0x83, 0x74, 0x65, - 0x08, 0x44, 0x8f, 0x43, 0xc1, 0x1b, 0x93, 0x4a, 0x8d, 0xca, 0xd9, 0x72, 0xb3, 0x52, 0x3d, 0x5b, - 0x69, 0x94, 0x0b, 0x48, 0xfd, 0x55, 0x19, 0x66, 0x08, 0x6b, 0x1a, 0xda, 0xb3, 0x2e, 0x08, 0xf6, - 0x7a, 0x8f, 0x24, 0x34, 0x16, 0xd8, 0x12, 0x22, 0x5a, 0xc6, 0x2f, 0x24, 0x30, 0x16, 0x62, 0xc8, - 0x3d, 0x9a, 0x7a, 0xab, 0x7d, 0xcd, 0x60, 0xab, 0x4f, 0x6b, 0xe9, 0xdb, 0x5b, 0xbd, 0x28, 0x0b, - 0x40, 0x2a, 0x79, 0xd6, 0x40, 0x17, 0xd5, 0xb5, 0x10, 0x13, 0x4e, 0x6d, 0x33, 0x03, 0xd5, 0x56, - 0xea, 0xa7, 0xb6, 0x6f, 0x67, 0xc7, 0xac, 0x05, 0x1e, 0xbd, 0x9b, 0x22, 0xc5, 0xed, 0x71, 0x12, - 0x3d, 0x3b, 0xf4, 0x15, 0x45, 0xe2, 0xad, 0xce, 0xab, 0x60, 0x0a, 0x3f, 0x56, 0xf5, 0x1d, 0x44, - 0xdb, 0x50, 0x98, 0xa0, 0x9c, 0x81, 0x19, 0x92, 0xb1, 0x65, 0x99, 0x5e, 0x7d, 0xb2, 0x38, 0x03, - 0x97, 0xe6, 0x81, 0xd8, 0xb2, 0x91, 0xee, 0x5a, 0x36, 0xa6, 0x91, 0x23, 0x20, 0x32, 0x49, 0xea, - 0xd7, 0x82, 0x56, 0x58, 0xe6, 0x34, 0xe7, 0xd6, 0x24, 0x55, 0x49, 0xa6, 0x37, 0x7b, 0xc3, 0xb5, - 0x3f, 0xd2, 0xea, 0x9a, 0x1e, 0xda, 0x4b, 0x78, 0x6a, 0x87, 0x94, 0x93, 0xa0, 0xd0, 0x54, 0x2f, - 0x6f, 0xa9, 0x56, 0x6d, 0x94, 0xab, 0x8d, 0xc2, 0x66, 0x5f, 0x8d, 0xda, 0x52, 0x5f, 0x99, 0x85, - 0xec, 0xbd, 0x96, 0x61, 0xaa, 0x0f, 0x65, 0x38, 0x95, 0x30, 0x91, 0x7b, 0xd1, 0xb2, 0x2f, 0x04, - 0x0d, 0x35, 0x4c, 0x88, 0xc7, 0x26, 0x54, 0x25, 0x79, 0xa0, 0x2a, 0x65, 0xfb, 0xa9, 0xd2, 0xaf, - 0xb0, 0xaa, 0x74, 0x27, 0xaf, 0x4a, 0xd7, 0xf7, 0x91, 0xbf, 0xc7, 0x7c, 0x44, 0x07, 0xf0, 0xe1, - 0xa0, 0x03, 0xb8, 0x9b, 0x83, 0xf1, 0xf1, 0x62, 0x64, 0x92, 0x01, 0xf8, 0x85, 0x54, 0x1b, 0x7e, - 0x3f, 0xa8, 0xb7, 0x22, 0xa0, 0xde, 0xee, 0xd3, 0x27, 0x18, 0xfb, 0xbb, 0x8e, 0x07, 0xf6, 0x77, - 0x13, 0x17, 0x94, 0x13, 0x70, 0x6c, 0xb1, 0xb2, 0xb4, 0x54, 0xd6, 0xca, 0xd5, 0x46, 0xb3, 0x5a, - 0x6e, 0x9c, 0xab, 0x69, 0xf7, 0x15, 0x3a, 0xea, 0x2b, 0x64, 0x00, 0x4f, 0x42, 0x25, 0xdd, 0x6c, - 0xa1, 0x8e, 0x58, 0x8f, 0xfe, 0x7f, 0x49, 0xc9, 0xfa, 0x84, 0x90, 0x7e, 0x04, 0x9c, 0x2f, 0x91, - 0xc4, 0x5b, 0x65, 0x24, 0xb1, 0x64, 0xa0, 0xbe, 0xe6, 0xd1, 0x60, 0x7b, 0x5e, 0x06, 0x47, 0x7d, - 0x7a, 0x34, 0x7b, 0xff, 0x69, 0xdf, 0xeb, 0xb3, 0x30, 0x47, 0x61, 0xf1, 0xe7, 0xf1, 0xcf, 0xcd, - 0x88, 0x4c, 0xe4, 0x55, 0x98, 0xa4, 0xd3, 0x76, 0xbf, 0x7b, 0x0f, 0xde, 0x95, 0x65, 0x98, 0xee, - 0x22, 0x7b, 0xc7, 0x70, 0x1c, 0xc3, 0x32, 0xc9, 0x82, 0xdc, 0xdc, 0x6d, 0x8f, 0x0d, 0x24, 0x8e, - 0xd7, 0x2e, 0xe7, 0xd7, 0x75, 0xdb, 0x35, 0x5a, 0x46, 0x57, 0x37, 0xdd, 0xf5, 0x30, 0xb3, 0xc6, - 0xfe, 0xa9, 0xbe, 0x30, 0xe1, 0xb4, 0x86, 0xaf, 0x49, 0x84, 0x4a, 0xfc, 0x71, 0x82, 0x29, 0x49, - 0x2c, 0xc1, 0x64, 0x6a, 0xf1, 0xa1, 0x54, 0xd5, 0xa2, 0x0f, 0xde, 0x5b, 0xca, 0x15, 0x70, 0xa2, - 0x52, 0x2d, 0xd5, 0x34, 0xad, 0x5c, 0x6a, 0x34, 0xd7, 0xcb, 0xda, 0x5a, 0xa5, 0x5e, 0xaf, 0xd4, - 0xaa, 0xf5, 0x83, 0xb4, 0x76, 0xf5, 0x63, 0x72, 0xa0, 0x31, 0x8b, 0xa8, 0xd5, 0x31, 0x4c, 0xa4, - 0xde, 0x7d, 0x40, 0x85, 0xe1, 0x57, 0x7d, 0xc4, 0x71, 0xa6, 0xe5, 0x47, 0xe0, 0xfc, 0xf2, 0xe4, - 0x38, 0xf7, 0x27, 0xf8, 0x9f, 0xb8, 0xf9, 0x3f, 0x22, 0xc3, 0x31, 0xa6, 0x21, 0x6a, 0x68, 0x67, - 0x64, 0x2b, 0x79, 0x3f, 0xc3, 0xb6, 0xdd, 0x0a, 0x8f, 0x69, 0x3f, 0x6b, 0x7a, 0x1f, 0x1b, 0x11, - 0xb0, 0xbe, 0x26, 0x80, 0x75, 0x95, 0x83, 0xf5, 0x29, 0x43, 0xd0, 0x4c, 0x86, 0xec, 0x1b, 0x52, - 0x45, 0xf6, 0x0a, 0x38, 0xb1, 0x5e, 0xd4, 0x1a, 0x95, 0x52, 0x65, 0xbd, 0xe8, 0x8d, 0xa3, 0xcc, - 0x90, 0x1d, 0x61, 0xae, 0xf3, 0xa0, 0xf7, 0xc5, 0xf7, 0xbd, 0x59, 0xb8, 0xaa, 0x7f, 0x47, 0x5b, - 0xda, 0xd6, 0xcd, 0x2d, 0xa4, 0x1a, 0x22, 0x50, 0x2f, 0xc2, 0x44, 0x0b, 0x67, 0x27, 0x38, 0xb3, - 0x5b, 0x37, 0x31, 0x7d, 0x39, 0x29, 0x41, 0xf3, 0x7f, 0x55, 0xdf, 0xcc, 0x2a, 0x44, 0x83, 0x57, - 0x88, 0xa7, 0xc5, 0x83, 0xb7, 0x8f, 0xef, 0x08, 0xdd, 0xf8, 0x64, 0xa0, 0x1b, 0xe7, 0x38, 0xdd, - 0x28, 0x1d, 0x8c, 0x7c, 0x32, 0x35, 0xf9, 0xb3, 0x47, 0x43, 0x07, 0x10, 0xa9, 0x4d, 0x46, 0xf4, - 0xa8, 0xd0, 0xb7, 0xbb, 0x7f, 0x99, 0x0c, 0xf9, 0x45, 0xd4, 0x41, 0xa2, 0x2b, 0x91, 0xdf, 0x90, - 0x44, 0x37, 0x44, 0x08, 0x0c, 0x84, 0x76, 0xf4, 0xea, 0x88, 0x6b, 0xec, 0x20, 0xc7, 0xd5, 0x77, - 0xba, 0x58, 0xd4, 0xb2, 0x16, 0x26, 0xa8, 0x3f, 0x2b, 0x89, 0x6c, 0x97, 0xc4, 0x14, 0xf3, 0x9f, - 0x63, 0x4d, 0xf1, 0xd3, 0x12, 0x4c, 0xd6, 0x91, 0x5b, 0xb3, 0xdb, 0xc8, 0x56, 0xeb, 0x21, 0x46, - 0xd7, 0xc0, 0x34, 0x06, 0xc5, 0x9b, 0x66, 0x06, 0x38, 0xb1, 0x49, 0xca, 0xf5, 0x30, 0x17, 0xbc, - 0xe2, 0xdf, 0x69, 0x37, 0xde, 0x93, 0xaa, 0x7e, 0x33, 0x23, 0xba, 0x8b, 0x4b, 0x97, 0x0c, 0x29, - 0x37, 0x11, 0xad, 0x54, 0x6c, 0x47, 0x36, 0x96, 0x54, 0xfa, 0x1b, 0x5d, 0x6f, 0x94, 0x00, 0x36, - 0x4c, 0xc7, 0x97, 0xeb, 0xe3, 0x13, 0xc8, 0x55, 0xfd, 0xd7, 0x4c, 0xb2, 0x59, 0x4c, 0x58, 0x4e, - 0x84, 0xc4, 0x7e, 0x2f, 0xc1, 0xda, 0x42, 0x24, 0xb1, 0xf4, 0x65, 0xf6, 0xe5, 0x39, 0xc8, 0x9f, - 0xd3, 0x3b, 0x1d, 0xe4, 0xaa, 0x5f, 0x91, 0x20, 0x5f, 0xb2, 0x91, 0xee, 0x22, 0x56, 0x74, 0x2a, - 0x4c, 0xda, 0x96, 0xe5, 0xae, 0xeb, 0xee, 0x36, 0x95, 0x5b, 0xf0, 0x4e, 0x1d, 0x06, 0xfe, 0x88, - 0xed, 0x3e, 0xee, 0xe6, 0x45, 0xf7, 0xc3, 0x5c, 0x6d, 0x49, 0x41, 0xf3, 0xa4, 0x90, 0x88, 0xfe, - 0x43, 0x85, 0xc9, 0x1d, 0x13, 0xed, 0x58, 0xa6, 0xd1, 0xf2, 0x6d, 0x4e, 0xff, 0x5d, 0x7d, 0x7f, - 0x20, 0xd3, 0x05, 0x4e, 0xa6, 0xf3, 0xc2, 0xa5, 0x24, 0x13, 0x68, 0x7d, 0x88, 0xde, 0xe3, 0x6a, - 0xb8, 0x92, 0x74, 0x06, 0xcd, 0x46, 0xad, 0x59, 0xd2, 0xca, 0xc5, 0x46, 0xb9, 0xb9, 0x5a, 0x2b, - 0x15, 0x57, 0x9b, 0x5a, 0x79, 0xbd, 0x56, 0x40, 0xea, 0x3f, 0x4a, 0x9e, 0x70, 0x5b, 0xd6, 0x1e, - 0xb2, 0xd5, 0x65, 0x21, 0x39, 0xc7, 0xc9, 0x84, 0x62, 0xf0, 0x2b, 0xc2, 0x4e, 0x1b, 0x54, 0x3a, - 0x94, 0x83, 0x08, 0xe5, 0xfd, 0x80, 0x50, 0x73, 0x8f, 0x25, 0xf5, 0x28, 0x90, 0xf4, 0xff, 0x94, - 0x60, 0xa2, 0x64, 0x99, 0x7b, 0xc8, 0x76, 0xd9, 0xf9, 0x0e, 0x2b, 0xcd, 0x0c, 0x2f, 0x4d, 0x6f, - 0x90, 0x44, 0xa6, 0x6b, 0x5b, 0x5d, 0x7f, 0xc2, 0xe3, 0xbf, 0xaa, 0xbf, 0x9f, 0x54, 0xc2, 0xb4, - 0xe4, 0xe8, 0x85, 0xcf, 0xfe, 0x05, 0x71, 0xec, 0xc9, 0x3d, 0x0d, 0xe0, 0x15, 0x49, 0x70, 0xe9, - 0xcf, 0x40, 0xfa, 0x5d, 0xca, 0x17, 0x65, 0x98, 0x25, 0x8d, 0xaf, 0x8e, 0xb0, 0x85, 0xa6, 0xd6, - 0xd8, 0x25, 0xc7, 0x1e, 0xe1, 0xaf, 0x1c, 0xe1, 0xc4, 0x9f, 0xd7, 0xbb, 0xdd, 0x60, 0xf9, 0x79, - 0xe5, 0x88, 0x46, 0xdf, 0x89, 0x9a, 0x2f, 0xe4, 0x21, 0xab, 0xef, 0xba, 0xdb, 0xea, 0xf7, 0x84, - 0x27, 0x9f, 0x5c, 0x67, 0x40, 0xf9, 0x89, 0x80, 0xe4, 0x38, 0xe4, 0x5c, 0xeb, 0x02, 0xf2, 0xe5, - 0x40, 0x5e, 0x3c, 0x38, 0xf4, 0x6e, 0xb7, 0x81, 0x3f, 0x50, 0x38, 0xfc, 0x77, 0xcf, 0xd6, 0xd1, - 0x5b, 0x2d, 0x6b, 0xd7, 0x74, 0x2b, 0xfe, 0x12, 0x74, 0x98, 0xa0, 0x7e, 0x2e, 0x23, 0x32, 0x99, - 0x15, 0x60, 0x30, 0x19, 0x64, 0xe7, 0x87, 0x68, 0x4a, 0xf3, 0x70, 0x63, 0x71, 0x7d, 0xbd, 0xd9, - 0xa8, 0xdd, 0x57, 0xae, 0x86, 0x86, 0x67, 0xb3, 0x52, 0x6d, 0x36, 0x56, 0xca, 0xcd, 0xd2, 0x86, - 0x86, 0xd7, 0x09, 0x8b, 0xa5, 0x52, 0x6d, 0xa3, 0xda, 0x28, 0x20, 0xf5, 0xb5, 0x12, 0xcc, 0x94, - 0x3a, 0x96, 0x13, 0x20, 0x7c, 0x75, 0x88, 0x70, 0x20, 0xc6, 0x0c, 0x23, 0x46, 0xf5, 0x7f, 0x65, - 0x44, 0x9d, 0x0e, 0x7c, 0x81, 0x30, 0xe4, 0x23, 0x7a, 0xa9, 0xdf, 0x17, 0x72, 0x3a, 0x18, 0x4c, - 0x2f, 0xfd, 0x26, 0xf1, 0x87, 0x8b, 0x30, 0x51, 0x24, 0x8a, 0xa1, 0xfe, 0x5d, 0x06, 0xf2, 0x25, - 0xcb, 0xdc, 0x34, 0xb6, 0x3c, 0x63, 0x0e, 0x99, 0xfa, 0xf9, 0x0e, 0x5a, 0xd4, 0x5d, 0x7d, 0xcf, - 0x40, 0x17, 0x71, 0x05, 0x26, 0xb5, 0x9e, 0x54, 0x8f, 0x29, 0x9a, 0x82, 0xce, 0xef, 0x6e, 0x61, - 0xa6, 0x26, 0x35, 0x36, 0x49, 0x79, 0x0a, 0x5c, 0x4e, 0x5e, 0xd7, 0x6d, 0x64, 0xa3, 0x0e, 0xd2, - 0x1d, 0xe4, 0x4d, 0x8b, 0x4c, 0xd4, 0xc1, 0x4a, 0x3b, 0xa9, 0x45, 0x7d, 0x56, 0xce, 0xc0, 0x0c, - 0xf9, 0x84, 0x4d, 0x11, 0x07, 0xab, 0xf1, 0xa4, 0xc6, 0xa5, 0x29, 0x4f, 0x80, 0x1c, 0x7a, 0xd0, - 0xb5, 0xf5, 0x53, 0x6d, 0x8c, 0xd7, 0xe5, 0xf3, 0xc4, 0xeb, 0x70, 0xde, 0xf7, 0x3a, 0x9c, 0xaf, - 0x63, 0x9f, 0x44, 0x8d, 0xe4, 0x52, 0x3f, 0x36, 0x19, 0x18, 0x12, 0xaf, 0x95, 0x43, 0xc5, 0x50, - 0x20, 0x6b, 0xea, 0x3b, 0x88, 0xea, 0x05, 0x7e, 0x56, 0x6e, 0x84, 0xa3, 0xfa, 0x9e, 0xee, 0xea, - 0xf6, 0xaa, 0xd5, 0xd2, 0x3b, 0x78, 0xf0, 0xf3, 0x5b, 0x7e, 0xef, 0x07, 0xbc, 0x23, 0xe4, 0x5a, - 0x36, 0xc2, 0xb9, 0xfc, 0x1d, 0x21, 0x3f, 0xc1, 0xa3, 0x6e, 0xb4, 0x2c, 0x13, 0xf3, 0x2f, 0x6b, - 0xf8, 0xd9, 0x93, 0x4a, 0xdb, 0x70, 0xbc, 0x8a, 0x60, 0x2a, 0x55, 0xb2, 0xb5, 0x51, 0xbf, 0x64, - 0xb6, 0xf0, 0x6e, 0xd0, 0xa4, 0x16, 0xf5, 0x59, 0x59, 0x80, 0x69, 0xba, 0x11, 0xb2, 0xe6, 0xe9, - 0x55, 0x1e, 0xeb, 0xd5, 0x35, 0xbc, 0x4f, 0x17, 0xc1, 0x73, 0xbe, 0x1a, 0xe6, 0xd3, 0xd8, 0x9f, - 0x94, 0x7b, 0xe0, 0x4a, 0xfa, 0x5a, 0xda, 0x75, 0x5c, 0x6b, 0x87, 0x80, 0xbe, 0x64, 0x74, 0x48, - 0x0d, 0x26, 0x70, 0x0d, 0xe2, 0xb2, 0x28, 0xb7, 0xc1, 0xf1, 0xae, 0x8d, 0x36, 0x91, 0x7d, 0xbf, - 0xbe, 0xb3, 0xfb, 0x60, 0xc3, 0xd6, 0x4d, 0xa7, 0x6b, 0xd9, 0xee, 0xa9, 0x49, 0xcc, 0x7c, 0xdf, - 0x6f, 0xca, 0x4d, 0x70, 0xec, 0x01, 0xc7, 0x32, 0x8b, 0x5d, 0x63, 0xd5, 0x70, 0x5c, 0x64, 0x16, - 0xdb, 0x6d, 0xfb, 0xd4, 0x14, 0x2e, 0x6b, 0xff, 0x07, 0xda, 0xad, 0x4e, 0x42, 0x9e, 0x08, 0x5b, - 0x7d, 0x41, 0x4e, 0xd8, 0xf9, 0x93, 0x56, 0x3f, 0xd6, 0x98, 0xbb, 0x05, 0x26, 0x68, 0x7f, 0x88, - 0x61, 0x9d, 0xbe, 0xed, 0x64, 0xcf, 0x2a, 0x04, 0xa5, 0xa2, 0xf9, 0xd9, 0x94, 0x27, 0x42, 0xbe, - 0x85, 0x85, 0x80, 0x11, 0x9e, 0xbe, 0xed, 0xca, 0xfe, 0x85, 0xe2, 0x2c, 0x1a, 0xcd, 0xaa, 0x7e, - 0x5e, 0x16, 0xf2, 0x17, 0x8d, 0xe3, 0x38, 0x59, 0x1f, 0xf0, 0x35, 0x69, 0x88, 0x4e, 0xf6, 0x26, - 0xb8, 0x81, 0xf6, 0xa0, 0xd4, 0x5a, 0x59, 0x6c, 0x2e, 0x6c, 0xf8, 0x53, 0x47, 0xcf, 0x86, 0xa9, - 0x37, 0x8a, 0x9a, 0x37, 0xef, 0x5f, 0xf4, 0xa6, 0x9c, 0x37, 0xc2, 0xf5, 0x03, 0x72, 0x97, 0x1b, - 0xcd, 0x6a, 0x71, 0xad, 0x5c, 0xd8, 0xe4, 0x2d, 0xa1, 0x7a, 0xa3, 0xb6, 0xde, 0xd4, 0x36, 0xaa, - 0xd5, 0x4a, 0x75, 0x99, 0x10, 0xf3, 0x0c, 0xc8, 0x93, 0x61, 0x86, 0x73, 0x5a, 0xa5, 0x51, 0x6e, - 0x96, 0x6a, 0xd5, 0xa5, 0xca, 0x72, 0xc1, 0x18, 0x64, 0x46, 0x3d, 0xa0, 0x5c, 0x03, 0x57, 0x71, - 0x9c, 0x54, 0x6a, 0x55, 0x6f, 0x1e, 0x5c, 0x2a, 0x56, 0x4b, 0x65, 0x6f, 0xd2, 0x7b, 0x41, 0x51, - 0xe1, 0x04, 0x21, 0xd7, 0x5c, 0xaa, 0xac, 0xb2, 0x5b, 0x57, 0x1f, 0xc9, 0x28, 0xa7, 0xe0, 0x32, - 0xf6, 0x5b, 0xa5, 0x7a, 0xb6, 0xb8, 0x5a, 0x59, 0x2c, 0x7c, 0x34, 0xa3, 0x5c, 0x07, 0x57, 0x73, - 0x7f, 0x91, 0x5d, 0xa8, 0x66, 0x65, 0xb1, 0xb9, 0x56, 0xa9, 0xaf, 0x15, 0x1b, 0xa5, 0x95, 0xc2, - 0xc7, 0xf0, 0xec, 0x22, 0x30, 0x97, 0x19, 0x27, 0xce, 0x17, 0xb1, 0x16, 0x40, 0x91, 0x57, 0xd4, - 0xc7, 0xf7, 0x85, 0x3d, 0xde, 0xe2, 0xfd, 0x50, 0x30, 0x96, 0x2c, 0x72, 0x2a, 0x74, 0x4b, 0x02, - 0x5a, 0xc9, 0x74, 0xa8, 0x31, 0x84, 0x0a, 0x5d, 0x03, 0x57, 0x55, 0xcb, 0x04, 0x29, 0xad, 0x5c, - 0xaa, 0x9d, 0x2d, 0x6b, 0xcd, 0x73, 0xc5, 0xd5, 0xd5, 0x72, 0xa3, 0xb9, 0x54, 0xd1, 0xea, 0x8d, - 0xc2, 0xa6, 0xfa, 0xaf, 0x52, 0xb0, 0xf6, 0xc3, 0x48, 0xeb, 0xef, 0xa4, 0xa4, 0xcd, 0x3a, 0x76, - 0x8d, 0xe7, 0x47, 0x20, 0xef, 0xb8, 0xba, 0xbb, 0xeb, 0xd0, 0x56, 0xfd, 0x98, 0xfe, 0xad, 0x7a, - 0xbe, 0x8e, 0x33, 0x69, 0x34, 0xb3, 0xfa, 0xf9, 0x4c, 0x92, 0x66, 0x3a, 0x82, 0xe5, 0x1f, 0x63, - 0x08, 0x11, 0x9f, 0x06, 0xd5, 0xd7, 0xf6, 0x4a, 0xbd, 0x59, 0x5c, 0xd5, 0xca, 0xc5, 0xc5, 0xfb, - 0x83, 0x45, 0x1f, 0xa4, 0x9c, 0x80, 0x63, 0x1b, 0xd5, 0xe2, 0xc2, 0x6a, 0x19, 0x37, 0x97, 0x5a, - 0xb5, 0x5a, 0x2e, 0x79, 0x72, 0xff, 0x59, 0xbc, 0xc5, 0xe2, 0xd9, 0xdb, 0x98, 0x6f, 0xcf, 0x26, - 0x62, 0xe4, 0xff, 0x55, 0x61, 0x4f, 0xa4, 0x50, 0xc3, 0x58, 0x5a, 0xa3, 0xc5, 0xe1, 0x73, 0x42, - 0xce, 0x47, 0x42, 0x9c, 0x24, 0xc3, 0xe3, 0xa7, 0x86, 0xc0, 0xe3, 0x04, 0x1c, 0x63, 0xf1, 0xc0, - 0x4e, 0x48, 0xd1, 0x30, 0x7c, 0x57, 0x82, 0x89, 0x35, 0x63, 0x0b, 0x7b, 0x61, 0x3e, 0x35, 0x34, - 0x3d, 0xe6, 0x40, 0x0a, 0x9c, 0x5e, 0x24, 0xa3, 0xcd, 0x4d, 0xb6, 0xa5, 0xbe, 0x8b, 0x1a, 0x6f, - 0x4e, 0xdc, 0xbf, 0xd0, 0x62, 0x23, 0xfa, 0x97, 0x2f, 0x27, 0xea, 0x5f, 0xfa, 0xd3, 0x4a, 0x26, - 0x6c, 0xfb, 0x60, 0xc2, 0x66, 0x5d, 0x4d, 0x66, 0x60, 0x32, 0xe8, 0xed, 0xf1, 0xae, 0x87, 0xf7, - 0xb1, 0x5c, 0xad, 0x6d, 0x2c, 0xaf, 0x34, 0x97, 0xb4, 0x72, 0x99, 0xae, 0x93, 0x6e, 0xa9, 0x6f, - 0x92, 0x60, 0x96, 0xf2, 0x4e, 0x5d, 0x08, 0xae, 0x8e, 0x04, 0x81, 0x0a, 0xfa, 0x3f, 0xd8, 0x89, - 0xc1, 0x32, 0x2f, 0xe8, 0x5b, 0xe3, 0x84, 0x13, 0xeb, 0x43, 0xf0, 0xea, 0x40, 0xdc, 0xf7, 0x72, - 0xe2, 0x7e, 0x72, 0x62, 0x8a, 0xe9, 0x4f, 0x0e, 0x5e, 0x3f, 0x05, 0xf9, 0x3a, 0xea, 0xa0, 0x96, - 0xab, 0x3e, 0x22, 0x0d, 0xa5, 0xb3, 0x71, 0x86, 0xae, 0x9c, 0xc8, 0xd0, 0xcd, 0xa6, 0x60, 0xe8, - 0xe6, 0x86, 0x37, 0x74, 0xf3, 0x49, 0x0d, 0xdd, 0x89, 0x58, 0x43, 0x57, 0xfd, 0x60, 0x3e, 0xe9, - 0x38, 0x48, 0x80, 0x39, 0x5c, 0xf3, 0xf6, 0x97, 0x72, 0x49, 0xc6, 0xcd, 0xbe, 0x1c, 0x27, 0xd3, - 0xe2, 0x97, 0x64, 0x53, 0x58, 0x8e, 0x53, 0xae, 0x85, 0xab, 0xc3, 0xf7, 0x66, 0xf9, 0xe9, 0x95, - 0x7a, 0xa3, 0x8e, 0x6d, 0xda, 0x52, 0x4d, 0xd3, 0x36, 0xd6, 0xc9, 0x9e, 0xca, 0x49, 0x50, 0x42, - 0x2a, 0xda, 0x46, 0x95, 0x58, 0xb0, 0x5b, 0x3c, 0xf5, 0xa5, 0x4a, 0x75, 0xb1, 0x19, 0x8c, 0x0a, - 0xd5, 0xa5, 0x5a, 0x61, 0x5b, 0x99, 0x87, 0x1b, 0x19, 0xea, 0xb8, 0x83, 0x22, 0x25, 0x14, 0xab, - 0x8b, 0xcd, 0xb5, 0x6a, 0x79, 0xad, 0x56, 0xad, 0x94, 0x70, 0x7a, 0xbd, 0xdc, 0x28, 0x18, 0x9e, - 0x29, 0xd5, 0x63, 0x33, 0xd7, 0xcb, 0x45, 0xad, 0xb4, 0x52, 0xd6, 0x48, 0x91, 0x0f, 0x28, 0xd7, - 0xc3, 0x99, 0x62, 0xb5, 0xd6, 0xf0, 0x52, 0x8a, 0xd5, 0xfb, 0x1b, 0xf7, 0xaf, 0x97, 0x9b, 0xeb, - 0x5a, 0xad, 0x54, 0xae, 0xd7, 0xbd, 0x91, 0x88, 0x5a, 0xd8, 0x85, 0x8e, 0xf2, 0x34, 0xb8, 0x83, - 0x61, 0xad, 0xdc, 0xc0, 0x1b, 0xf8, 0x6b, 0x35, 0xec, 0xc3, 0xb5, 0x58, 0x6e, 0xae, 0x14, 0xeb, - 0xcd, 0x4a, 0xb5, 0x54, 0x5b, 0x5b, 0x2f, 0x36, 0x2a, 0xde, 0x80, 0xb5, 0xae, 0xd5, 0x1a, 0xb5, - 0xe6, 0xd9, 0xb2, 0x56, 0xaf, 0xd4, 0xaa, 0x05, 0xd3, 0xab, 0x32, 0x33, 0xc2, 0xf9, 0x96, 0x86, - 0xa5, 0x5c, 0x05, 0xa7, 0xfc, 0xf4, 0xd5, 0x9a, 0x27, 0x68, 0xc6, 0xe6, 0xee, 0xb2, 0x76, 0x4a, - 0xbd, 0x51, 0xd3, 0x88, 0xd5, 0xbd, 0x56, 0x59, 0xd6, 0xbc, 0xa9, 0x42, 0xe1, 0x19, 0xa9, 0xda, - 0xe4, 0xff, 0x2e, 0x41, 0xb6, 0xee, 0x5a, 0x5d, 0xf5, 0x87, 0xc3, 0xee, 0xea, 0x34, 0x80, 0x8d, - 0xf7, 0xeb, 0x17, 0x75, 0x57, 0xa7, 0xeb, 0x18, 0x4c, 0x8a, 0xfa, 0xa7, 0xc2, 0x9b, 0x8c, 0xa1, - 0xd5, 0x62, 0x75, 0x23, 0xba, 0xf7, 0xef, 0x88, 0x9d, 0xba, 0x8a, 0x26, 0x94, 0xac, 0x3d, 0xfc, - 0xc2, 0x30, 0xdb, 0x88, 0x2a, 0x9c, 0x64, 0x60, 0xf5, 0xe4, 0xef, 0xab, 0x0c, 0x52, 0x2e, 0x87, - 0xcb, 0x7a, 0x94, 0x0f, 0xeb, 0xdc, 0xa6, 0xf2, 0x43, 0xf0, 0x18, 0x46, 0xfd, 0xcb, 0x6b, 0xb5, - 0xb3, 0xe5, 0x40, 0xd1, 0x17, 0x8b, 0x8d, 0x62, 0x61, 0x4b, 0xfd, 0xb4, 0x0c, 0xd9, 0x35, 0x6b, - 0xaf, 0x77, 0x6f, 0xd7, 0x44, 0x17, 0x99, 0xbd, 0x03, 0xff, 0x95, 0x3f, 0x65, 0x22, 0x24, 0xf6, - 0xb5, 0x68, 0x3f, 0x8e, 0xcf, 0x49, 0x49, 0xc4, 0xbe, 0x76, 0x50, 0xe7, 0x8d, 0x7f, 0x1a, 0x46, - 0xec, 0x11, 0xa2, 0x45, 0xca, 0x19, 0x38, 0x1d, 0x7e, 0xa8, 0x2c, 0x96, 0xab, 0x8d, 0xca, 0xd2, - 0xfd, 0xa1, 0x70, 0x2b, 0x9a, 0x90, 0xf8, 0x07, 0x75, 0x73, 0xf1, 0x73, 0xed, 0x53, 0x70, 0x3c, - 0xfc, 0xb6, 0x5c, 0x6e, 0xf8, 0x5f, 0x1e, 0x50, 0x1f, 0xca, 0xc1, 0x0c, 0xe9, 0xf6, 0x37, 0xba, - 0x6d, 0xcf, 0x7a, 0x7d, 0x62, 0x88, 0xee, 0x0d, 0x70, 0xb4, 0xb2, 0xbe, 0x54, 0xaf, 0xbb, 0x96, - 0xad, 0x6f, 0x21, 0x3c, 0xce, 0x11, 0x69, 0xf5, 0x26, 0xab, 0x6f, 0x15, 0x5e, 0x17, 0xe7, 0x87, - 0x1a, 0x52, 0x66, 0x04, 0xea, 0x5f, 0x14, 0x5a, 0xc7, 0x16, 0x20, 0x98, 0x0c, 0xfd, 0x07, 0x46, - 0xdc, 0xe6, 0xa2, 0x71, 0xd9, 0x3c, 0xf3, 0x1c, 0x09, 0xa6, 0x1a, 0xc6, 0x0e, 0x7a, 0xa6, 0x65, - 0x22, 0x47, 0x99, 0x00, 0x79, 0x79, 0xad, 0x51, 0x38, 0xe2, 0x3d, 0x78, 0xd3, 0x8a, 0x0c, 0x7e, - 0x28, 0x7b, 0x05, 0x78, 0x0f, 0xc5, 0x46, 0x41, 0xf6, 0x1e, 0xd6, 0xca, 0x8d, 0x42, 0xd6, 0x7b, - 0xa8, 0x96, 0x1b, 0x85, 0x9c, 0xf7, 0xb0, 0xbe, 0xda, 0x28, 0xe4, 0xbd, 0x87, 0x4a, 0xbd, 0x51, - 0x98, 0xf0, 0x1e, 0x16, 0xea, 0x8d, 0xc2, 0xa4, 0xf7, 0x70, 0xb6, 0xde, 0x28, 0x4c, 0x79, 0x0f, - 0xa5, 0x46, 0xa3, 0x00, 0xde, 0xc3, 0xbd, 0xf5, 0x46, 0x61, 0xda, 0x7b, 0x28, 0x96, 0x1a, 0x85, - 0x19, 0xfc, 0x50, 0x6e, 0x14, 0x66, 0xbd, 0x87, 0x7a, 0xbd, 0x51, 0x98, 0xc3, 0x94, 0xeb, 0x8d, - 0xc2, 0x51, 0x5c, 0x56, 0xa5, 0x51, 0x28, 0x78, 0x0f, 0x2b, 0xf5, 0x46, 0xe1, 0x18, 0xce, 0x5c, - 0x6f, 0x14, 0x14, 0x5c, 0x68, 0xbd, 0x51, 0xb8, 0x0c, 0xe7, 0xa9, 0x37, 0x0a, 0xc7, 0x71, 0x11, - 0xf5, 0x46, 0xe1, 0x04, 0x66, 0xa3, 0xdc, 0x28, 0x9c, 0xc4, 0x79, 0xb4, 0x46, 0xe1, 0x72, 0xfc, - 0xa9, 0xda, 0x28, 0x9c, 0xc2, 0x8c, 0x95, 0x1b, 0x85, 0x2b, 0xf0, 0x83, 0xd6, 0x28, 0xa8, 0xf8, - 0x53, 0xb1, 0x51, 0xb8, 0x52, 0x7d, 0x0c, 0x4c, 0x2d, 0x23, 0x97, 0x80, 0xa8, 0x16, 0x40, 0x5e, - 0x46, 0x2e, 0x3b, 0x91, 0xfd, 0xb2, 0x0c, 0x97, 0xd3, 0xc5, 0x8f, 0x25, 0xdb, 0xda, 0x59, 0x45, - 0x5b, 0x7a, 0xeb, 0x52, 0xf9, 0x41, 0xcf, 0x20, 0x63, 0xfd, 0x18, 0x14, 0xc8, 0x76, 0xc3, 0xce, - 0x08, 0x3f, 0xc7, 0xda, 0xaf, 0xfe, 0xe2, 0xad, 0x1c, 0x2e, 0xde, 0x52, 0x8b, 0xed, 0x5f, 0x58, - 0x8d, 0xe6, 0xf6, 0x5b, 0x32, 0x3d, 0xfb, 0x2d, 0x5e, 0x33, 0xe9, 0x22, 0xdb, 0xb1, 0x4c, 0xbd, - 0x53, 0xa7, 0x8e, 0x2e, 0x64, 0x95, 0xb8, 0x37, 0x59, 0xf9, 0x31, 0xbf, 0x65, 0x10, 0xab, 0xed, - 0xa9, 0x71, 0x6b, 0x3c, 0xbd, 0xd5, 0x8c, 0x68, 0x24, 0x1f, 0x0b, 0x1a, 0x49, 0x83, 0x6b, 0x24, - 0xf7, 0x1c, 0x80, 0x76, 0xb2, 0xf6, 0x52, 0x19, 0x6e, 0xbe, 0x17, 0xba, 0x81, 0xfb, 0xdb, 0x3b, - 0xb2, 0xfa, 0x69, 0x09, 0x4e, 0x96, 0xcd, 0x7e, 0xf3, 0x05, 0x56, 0x17, 0x5e, 0xcb, 0x42, 0xb3, - 0xce, 0x8b, 0xf4, 0x8e, 0xbe, 0xd5, 0xee, 0x4f, 0x33, 0x42, 0xa2, 0x9f, 0x08, 0x24, 0x5a, 0xe7, - 0x24, 0x7a, 0xf7, 0xf0, 0xa4, 0x93, 0x09, 0xb4, 0x3a, 0xd2, 0x0e, 0x28, 0xab, 0x7e, 0x45, 0x82, - 0x63, 0xc4, 0x57, 0xed, 0x5e, 0x32, 0x3d, 0xc1, 0x5d, 0x36, 0x6f, 0x42, 0x75, 0xc2, 0xa9, 0x0c, - 0xd1, 0x6f, 0x26, 0x45, 0x7d, 0x25, 0x2b, 0xf0, 0xfb, 0x78, 0x81, 0x47, 0x74, 0xc6, 0xbd, 0xc5, - 0x45, 0xc8, 0xfa, 0xa3, 0x81, 0xac, 0xab, 0x9c, 0xac, 0xef, 0x18, 0x8a, 0xea, 0xe1, 0x8a, 0xf9, - 0x6b, 0x59, 0x78, 0x0c, 0xe1, 0x90, 0x2a, 0x02, 0xe9, 0xcc, 0x8a, 0x66, 0x5b, 0x43, 0x8e, 0xab, - 0xdb, 0x2e, 0x17, 0xa6, 0xa1, 0x67, 0xfe, 0x9b, 0x49, 0x61, 0xfe, 0x2b, 0x0d, 0x9c, 0xff, 0xaa, - 0x6f, 0x61, 0xad, 0xb4, 0x73, 0x3c, 0xb2, 0xc5, 0x18, 0x0c, 0x22, 0x6a, 0x18, 0xd5, 0xa2, 0x02, - 0xf3, 0xed, 0xc7, 0x39, 0x94, 0x97, 0x0e, 0x5c, 0x42, 0x32, 0xc4, 0xff, 0x74, 0xb4, 0xe6, 0x74, - 0x96, 0xfd, 0xc6, 0xdb, 0x7e, 0x85, 0x76, 0xaa, 0xf3, 0xa0, 0x17, 0x4e, 0xc2, 0x14, 0xee, 0x72, - 0x56, 0x0d, 0xf3, 0x82, 0x37, 0x36, 0xce, 0x54, 0xd1, 0xc5, 0xd2, 0xb6, 0xde, 0xe9, 0x20, 0x73, - 0x0b, 0xa9, 0x0f, 0x70, 0x06, 0xba, 0xde, 0xed, 0x56, 0xc3, 0xed, 0x4f, 0xff, 0x55, 0xb9, 0x1b, - 0x72, 0x4e, 0xcb, 0xea, 0x22, 0x2c, 0xa8, 0x39, 0xc6, 0x61, 0x8a, 0x5f, 0xc2, 0x2d, 0xee, 0xba, - 0xdb, 0xf3, 0xb8, 0xac, 0x62, 0xd7, 0xa8, 0x7b, 0x3f, 0x68, 0xe4, 0x3f, 0x3a, 0x4e, 0x7e, 0xb5, - 0x6f, 0x67, 0x9c, 0x89, 0xe9, 0x8c, 0x03, 0xc6, 0xe7, 0x59, 0xa6, 0x23, 0x56, 0x3a, 0xae, 0x81, - 0xe9, 0x96, 0x9f, 0x25, 0x38, 0x0f, 0xc6, 0x26, 0xa9, 0xff, 0x90, 0xa8, 0xbb, 0x16, 0x2a, 0x3c, - 0x99, 0x56, 0xa1, 0x11, 0xdb, 0x8b, 0x27, 0xe0, 0x58, 0xa3, 0x56, 0x6b, 0xae, 0x15, 0xab, 0xf7, - 0x87, 0x71, 0x18, 0x36, 0xd5, 0x97, 0x64, 0x61, 0xae, 0x6e, 0x75, 0xf6, 0x50, 0x88, 0x73, 0x85, - 0x73, 0x34, 0x64, 0xe5, 0x94, 0xd9, 0x27, 0x27, 0xe5, 0x24, 0xe4, 0x75, 0xd3, 0xb9, 0x88, 0x7c, - 0x1b, 0x9e, 0xbe, 0x51, 0x18, 0xdf, 0xcb, 0x76, 0x04, 0x1a, 0x0f, 0xe3, 0x9d, 0x03, 0x24, 0xc9, - 0x73, 0x15, 0x01, 0xe4, 0x19, 0x98, 0x71, 0x88, 0x13, 0x44, 0x83, 0xf1, 0x75, 0xe1, 0xd2, 0x30, - 0x8b, 0xc4, 0x0b, 0x47, 0xa6, 0x2c, 0xe2, 0x37, 0xf5, 0x15, 0x41, 0xff, 0xb1, 0xc1, 0x41, 0x5c, - 0x3c, 0x08, 0x63, 0xc9, 0x40, 0x7e, 0xd9, 0xa8, 0x67, 0xe2, 0xa7, 0xe0, 0x38, 0x6d, 0xf6, 0xcd, - 0xd2, 0x4a, 0x71, 0x75, 0xb5, 0x5c, 0x5d, 0x2e, 0x37, 0x2b, 0x8b, 0x64, 0x53, 0x35, 0x4c, 0x29, - 0x36, 0x1a, 0xe5, 0xb5, 0xf5, 0x46, 0xbd, 0x59, 0x7e, 0x7a, 0xa9, 0x5c, 0x5e, 0xc4, 0xae, 0xbe, - 0xf8, 0xac, 0x9e, 0xef, 0x94, 0x5d, 0xac, 0xd6, 0xcf, 0x95, 0xb5, 0xc2, 0xf6, 0x99, 0x22, 0x4c, - 0x33, 0x03, 0x85, 0xc7, 0xdd, 0x22, 0xda, 0xd4, 0x77, 0x3b, 0xd4, 0xa6, 0x2e, 0x1c, 0xf1, 0xb8, - 0xc3, 0xb2, 0xa9, 0x99, 0x9d, 0x4b, 0x85, 0x8c, 0x52, 0x80, 0x19, 0x76, 0x4c, 0x28, 0x48, 0xea, - 0x1b, 0xaf, 0x82, 0xa9, 0x73, 0x96, 0x7d, 0x01, 0xfb, 0xa7, 0xaa, 0xef, 0x20, 0xf1, 0x9a, 0xfc, - 0x93, 0xef, 0x8c, 0x01, 0xf6, 0x32, 0x71, 0x2f, 0x28, 0x9f, 0xda, 0xfc, 0xc0, 0xd3, 0xed, 0xd7, - 0xc0, 0xf4, 0x45, 0x3f, 0x77, 0xd8, 0xd2, 0x99, 0x24, 0xf5, 0x0f, 0xc4, 0xfc, 0x9a, 0x06, 0x17, - 0x39, 0x86, 0xa5, 0x75, 0x09, 0xf2, 0xcb, 0xc8, 0x2d, 0x76, 0x3a, 0xac, 0xdc, 0x5e, 0x2c, 0x7c, - 0x62, 0x91, 0xab, 0x44, 0xb1, 0xd3, 0x89, 0x6e, 0x54, 0x8c, 0x80, 0xfc, 0x93, 0x35, 0x5c, 0x9a, - 0xa0, 0x3f, 0xf0, 0x80, 0x02, 0xd3, 0x97, 0xd8, 0xfb, 0xe5, 0xc0, 0x77, 0xe7, 0x61, 0xc6, 0x4c, - 0xba, 0x35, 0x8c, 0xd5, 0x95, 0x89, 0xf7, 0x01, 0xf2, 0xf3, 0x29, 0xf7, 0xc1, 0xc4, 0xae, 0x83, - 0x4a, 0xba, 0xe3, 0x0f, 0x6d, 0x7c, 0x4d, 0x6b, 0xe7, 0x1f, 0x40, 0x2d, 0x77, 0xbe, 0xb2, 0xe3, - 0x4d, 0x7c, 0x36, 0x48, 0xc6, 0x20, 0xfc, 0x15, 0x7d, 0xd7, 0x7c, 0x0a, 0xde, 0xe4, 0xf1, 0xa2, - 0xe1, 0x6e, 0x97, 0xb6, 0x75, 0x97, 0xee, 0x68, 0x04, 0xef, 0xea, 0x0b, 0x86, 0x80, 0x33, 0xd6, - 0x6b, 0x25, 0xf2, 0xe0, 0x73, 0x62, 0x10, 0x47, 0xe0, 0x6a, 0x32, 0x0c, 0x88, 0xff, 0x2c, 0x41, - 0xb6, 0xd6, 0x45, 0xa6, 0xf0, 0x29, 0xbf, 0x40, 0xb6, 0x52, 0x8f, 0x6c, 0x5f, 0x21, 0xee, 0xf5, - 0x1a, 0x54, 0xda, 0x2b, 0x39, 0x42, 0xb2, 0x37, 0x43, 0xd6, 0x30, 0x37, 0x2d, 0x6a, 0xd9, 0x5e, - 0x19, 0x61, 0xeb, 0x54, 0xcc, 0x4d, 0x4b, 0xc3, 0x19, 0x45, 0x1d, 0x5e, 0xe3, 0xca, 0x4e, 0x5f, - 0xdc, 0x5f, 0x9f, 0x84, 0x3c, 0x51, 0x67, 0xf5, 0x45, 0x32, 0xc8, 0xc5, 0x76, 0x3b, 0x42, 0xf0, - 0xd2, 0x3e, 0xc1, 0x5b, 0xf8, 0xb7, 0x00, 0x93, 0xe0, 0x9d, 0x0f, 0xd2, 0x24, 0xd8, 0xb7, 0xd3, - 0x26, 0x55, 0x6c, 0xb7, 0xa3, 0x7d, 0xeb, 0x83, 0x02, 0x25, 0xbe, 0x40, 0xb6, 0x85, 0xcb, 0x62, - 0x2d, 0x3c, 0xf1, 0x40, 0x10, 0xc9, 0x5f, 0xfa, 0x10, 0xfd, 0x8b, 0x04, 0x13, 0xab, 0x86, 0xe3, - 0x7a, 0xd8, 0x14, 0x45, 0xb0, 0xb9, 0x0a, 0xa6, 0x7c, 0xd1, 0x78, 0x5d, 0x9e, 0xd7, 0x9f, 0x87, - 0x09, 0xfc, 0x4c, 0xfc, 0x5e, 0x1e, 0x9d, 0x27, 0xc5, 0xd7, 0x9e, 0x72, 0x11, 0x7d, 0x7a, 0x2a, - 0x2c, 0x56, 0xea, 0x2d, 0xf6, 0x8f, 0x02, 0x81, 0xaf, 0x71, 0x02, 0xbf, 0x7d, 0x98, 0x22, 0xd3, - 0x17, 0xfa, 0x67, 0x24, 0x00, 0xaf, 0x6c, 0x7a, 0x44, 0xf5, 0x71, 0x5c, 0xe0, 0x89, 0x18, 0xe9, - 0xbe, 0x84, 0x95, 0xee, 0x1a, 0x2f, 0xdd, 0x1f, 0x1d, 0x5c, 0xd5, 0xb8, 0xa3, 0xa8, 0x4a, 0x01, - 0x64, 0x23, 0x10, 0xad, 0xf7, 0xa8, 0xbe, 0x3e, 0x10, 0xea, 0x3a, 0x27, 0xd4, 0x3b, 0x87, 0x2c, - 0x29, 0x7d, 0xb9, 0xfe, 0x8d, 0x04, 0x13, 0x75, 0xe4, 0x7a, 0xdd, 0xa4, 0x7a, 0x56, 0xa4, 0x87, - 0x67, 0xda, 0xb6, 0x24, 0xd8, 0xb6, 0xbf, 0x9d, 0x11, 0x0d, 0x60, 0x15, 0x4a, 0x86, 0xf2, 0x14, - 0xb1, 0xfa, 0xf0, 0xb0, 0x50, 0x00, 0xab, 0x41, 0xd4, 0xd2, 0x97, 0xee, 0x6b, 0xa5, 0xc0, 0x1d, - 0x83, 0x3f, 0x41, 0xc6, 0x9a, 0xc5, 0x99, 0xfd, 0x66, 0xb1, 0xf8, 0x09, 0x32, 0xb6, 0x8e, 0xd1, - 0xde, 0x05, 0x89, 0x8d, 0x8d, 0x11, 0x6c, 0xfc, 0x0f, 0x23, 0xaf, 0x67, 0xcb, 0x90, 0xa7, 0x3b, - 0x00, 0x77, 0xc7, 0xef, 0x00, 0x0c, 0x9e, 0x5a, 0xbc, 0x7d, 0x08, 0x53, 0x2e, 0x6e, 0x59, 0x3e, - 0x60, 0x43, 0x62, 0xd8, 0xb8, 0x09, 0x72, 0x38, 0xc2, 0x2e, 0x1d, 0xe7, 0x42, 0x9f, 0x0d, 0x9f, - 0x44, 0xd9, 0xfb, 0xaa, 0x91, 0x4c, 0x89, 0x51, 0x18, 0xc1, 0x4a, 0xfe, 0x30, 0x28, 0x7c, 0x4d, - 0x01, 0x58, 0xdf, 0x3d, 0xdf, 0x31, 0x9c, 0x6d, 0xc3, 0xc4, 0x8e, 0x58, 0x33, 0xf4, 0x95, 0x04, - 0x8a, 0x8d, 0x35, 0xff, 0x22, 0x8d, 0x82, 0x02, 0xc8, 0xbb, 0xb6, 0x41, 0x97, 0x01, 0xbc, 0x47, - 0xe5, 0xae, 0xc0, 0xe5, 0x30, 0xdb, 0x13, 0x22, 0xc4, 0x13, 0x43, 0xc8, 0xc1, 0x3c, 0x53, 0x7a, - 0xe8, 0x7a, 0xc8, 0x46, 0x03, 0xce, 0xf1, 0xd1, 0x80, 0xb9, 0x73, 0xc3, 0xf9, 0x9e, 0x73, 0xc3, - 0x1e, 0x8e, 0x8e, 0xf1, 0x4c, 0x84, 0xfd, 0x7b, 0x64, 0x0d, 0x3f, 0x7b, 0x7f, 0x3c, 0x60, 0x19, - 0x26, 0xde, 0xd4, 0xa1, 0x2e, 0xf1, 0x61, 0x02, 0xdb, 0xe7, 0x4d, 0x09, 0xf6, 0x79, 0xef, 0x0b, - 0xe7, 0x3e, 0x96, 0xa0, 0xe1, 0x9c, 0x40, 0x72, 0x1c, 0xbb, 0xd9, 0x1e, 0x76, 0xd5, 0x0f, 0x0a, - 0x07, 0x0c, 0x64, 0x64, 0x1c, 0x3b, 0x8b, 0xa1, 0x1c, 0x48, 0x01, 0x07, 0xcc, 0x46, 0x6e, 0x5c, - 0x0f, 0x3c, 0x88, 0x7e, 0x32, 0x5d, 0xde, 0x19, 0x62, 0xbd, 0x46, 0x81, 0x39, 0xff, 0x00, 0x76, - 0x6d, 0xe1, 0xde, 0x72, 0xa9, 0x51, 0x40, 0xfb, 0x0f, 0x65, 0xe3, 0xe3, 0xd7, 0xe4, 0xa8, 0x75, - 0xb8, 0x26, 0xa3, 0xfe, 0x0f, 0x09, 0xf2, 0xd4, 0xdc, 0xb8, 0xfb, 0x80, 0x10, 0xaa, 0x2f, 0x1d, - 0x06, 0x92, 0xd8, 0x38, 0x18, 0x1f, 0x4f, 0x0a, 0xc0, 0x08, 0x0c, 0x8c, 0xfb, 0x53, 0x03, 0x40, - 0xfd, 0x37, 0x09, 0xb2, 0x9e, 0x19, 0x24, 0x16, 0x65, 0xe0, 0x63, 0xc2, 0x1e, 0xb5, 0x8c, 0x00, - 0x3c, 0xf2, 0x11, 0xfa, 0xbd, 0x00, 0x53, 0x5d, 0x92, 0x31, 0x88, 0x71, 0x71, 0x9d, 0x40, 0x67, - 0x84, 0xb4, 0xf0, 0x37, 0xf5, 0x6d, 0x42, 0x5e, 0xb9, 0xf1, 0xfc, 0x24, 0x83, 0xa3, 0x3c, 0x8a, - 0x80, 0x04, 0xd8, 0xcf, 0x19, 0x34, 0xe4, 0x58, 0x9d, 0x3d, 0xb4, 0x61, 0x1b, 0xea, 0x95, 0x21, - 0x00, 0xb4, 0xd9, 0x67, 0xc2, 0x66, 0xff, 0x49, 0x49, 0xd4, 0xc3, 0x96, 0xd3, 0x3c, 0x9f, 0x78, - 0x84, 0xf8, 0x9f, 0x06, 0x13, 0x54, 0x8e, 0xd4, 0xa6, 0x14, 0x13, 0xbe, 0xff, 0x93, 0xfa, 0x4e, - 0x21, 0x0f, 0x5d, 0x11, 0x8e, 0x92, 0x01, 0x50, 0x1a, 0x02, 0x80, 0xa3, 0x30, 0xed, 0x03, 0xb0, - 0xa1, 0x55, 0x0a, 0x48, 0x7d, 0xb3, 0x8c, 0xdd, 0x24, 0xc8, 0xe0, 0x76, 0xf0, 0x9e, 0xe6, 0x2b, - 0xc2, 0x93, 0x7d, 0x46, 0x1e, 0x41, 0xf9, 0x29, 0x01, 0xf4, 0x17, 0x42, 0xb3, 0x7b, 0x01, 0x86, - 0x1e, 0x2d, 0xfd, 0xd5, 0x99, 0x32, 0xcc, 0x72, 0x56, 0x89, 0x72, 0x0a, 0x8e, 0x73, 0x09, 0x64, - 0xbc, 0x6b, 0x17, 0x8e, 0x28, 0x2a, 0x9c, 0xe4, 0xbe, 0xd0, 0x17, 0xd4, 0x2e, 0x64, 0xd4, 0x5f, - 0xfe, 0x6c, 0x26, 0x58, 0xef, 0x79, 0x7b, 0x96, 0xae, 0xb4, 0x7d, 0x98, 0x0f, 0xab, 0xd8, 0xb2, - 0x4c, 0x17, 0x3d, 0xc8, 0xb8, 0xa9, 0x04, 0x09, 0xb1, 0x56, 0xc3, 0x29, 0x98, 0x70, 0x6d, 0xd6, - 0x75, 0xc5, 0x7f, 0x65, 0x15, 0x2b, 0xc7, 0x2b, 0x56, 0x15, 0xce, 0x18, 0x66, 0xab, 0xb3, 0xdb, - 0x46, 0x1a, 0xea, 0xe8, 0x9e, 0x0c, 0x9d, 0xa2, 0xb3, 0x88, 0xba, 0xc8, 0x6c, 0x23, 0xd3, 0x25, - 0x7c, 0xfa, 0xc7, 0x3a, 0x05, 0x72, 0xf2, 0xca, 0x78, 0x17, 0xaf, 0x8c, 0x8f, 0xeb, 0xb7, 0x84, - 0x1b, 0xb3, 0xde, 0x77, 0x3b, 0x00, 0xa9, 0xdb, 0x59, 0x03, 0x5d, 0xa4, 0x6a, 0x78, 0x45, 0xcf, - 0xaa, 0x5f, 0x2d, 0xc8, 0xa0, 0x31, 0x99, 0xd5, 0x47, 0x02, 0xf5, 0xbb, 0x87, 0x53, 0xbf, 0x9b, - 0x04, 0x59, 0x48, 0xa6, 0x75, 0xdd, 0x21, 0xb4, 0x6e, 0x16, 0xa6, 0xc2, 0xdd, 0x64, 0x59, 0xb9, - 0x02, 0x4e, 0xf8, 0x6e, 0xc2, 0xd5, 0x72, 0x79, 0xb1, 0xde, 0xdc, 0x58, 0x5f, 0xd6, 0x8a, 0x8b, - 0xe5, 0x02, 0x78, 0xfa, 0x49, 0xf4, 0x32, 0xf0, 0xee, 0xcd, 0xaa, 0x7f, 0x2d, 0x41, 0x0e, 0x9f, - 0x49, 0x56, 0x7f, 0x72, 0x44, 0x9a, 0xe3, 0x70, 0x4e, 0x4f, 0xc1, 0xb8, 0x2b, 0x7e, 0xdd, 0x01, - 0x15, 0x26, 0xe6, 0xea, 0x40, 0xd7, 0x1d, 0xc4, 0x10, 0x4a, 0x7f, 0x26, 0xe4, 0x35, 0xc9, 0xfa, - 0xb6, 0x75, 0xf1, 0x07, 0xb9, 0x49, 0x7a, 0xf5, 0x3f, 0xe4, 0x26, 0xd9, 0x87, 0x85, 0xb1, 0x37, - 0xc9, 0x3e, 0xed, 0x2e, 0xa6, 0x99, 0xaa, 0xcf, 0xca, 0x05, 0xf3, 0xbf, 0xe7, 0x48, 0x07, 0xda, - 0xfb, 0x2a, 0xc2, 0xac, 0x61, 0xba, 0xc8, 0x36, 0xf5, 0xce, 0x52, 0x47, 0xdf, 0xf2, 0xed, 0xd3, - 0xde, 0x0d, 0x8f, 0x0a, 0x93, 0x47, 0xe3, 0xff, 0x50, 0x4e, 0x03, 0xb8, 0x68, 0xa7, 0xdb, 0xd1, - 0xdd, 0x50, 0xf5, 0x98, 0x14, 0x56, 0xfb, 0xb2, 0xbc, 0xf6, 0xdd, 0x02, 0x97, 0x11, 0xd0, 0x1a, - 0x97, 0xba, 0x68, 0xc3, 0x34, 0x9e, 0xb1, 0x8b, 0xa3, 0xf0, 0x12, 0x1d, 0xed, 0xf7, 0x89, 0xdb, - 0x01, 0xca, 0xf7, 0xec, 0x00, 0xfd, 0xb3, 0x70, 0x74, 0x1f, 0xbf, 0xd5, 0x0f, 0x88, 0xee, 0x13, - 0xb4, 0x34, 0xb9, 0xa7, 0xa5, 0x05, 0xeb, 0x32, 0x59, 0x81, 0x75, 0x19, 0x16, 0x95, 0x9c, 0xe0, - 0xfc, 0xfe, 0xe5, 0x42, 0xe1, 0x83, 0xe2, 0xaa, 0x91, 0x7e, 0xef, 0xf5, 0x2d, 0x19, 0xe6, 0x48, - 0xd1, 0x0b, 0x96, 0x75, 0x61, 0x47, 0xb7, 0x2f, 0xa8, 0xbf, 0x72, 0xb0, 0x7d, 0xd8, 0xe8, 0x3d, - 0x8e, 0x41, 0x2a, 0xc6, 0xaa, 0x45, 0xb6, 0x47, 0x2d, 0x3e, 0x21, 0x3c, 0xa9, 0xe0, 0xe4, 0xe9, - 0x57, 0x6a, 0x3c, 0x1b, 0x54, 0x62, 0xa7, 0x00, 0x45, 0x18, 0x4c, 0x1f, 0xf8, 0x3f, 0x0b, 0x80, - 0xf7, 0x47, 0x02, 0x76, 0x6d, 0x7f, 0x94, 0xb8, 0xab, 0x5f, 0x1c, 0x0e, 0x3b, 0x9f, 0xaf, 0x21, - 0xb0, 0x2b, 0x80, 0x7c, 0x21, 0x70, 0x27, 0xf2, 0x1e, 0xd9, 0x0a, 0x65, 0xd3, 0x43, 0x33, 0x82, - 0xe5, 0xb1, 0xa0, 0x79, 0x9c, 0x67, 0xa1, 0xd6, 0x4d, 0x15, 0xd3, 0x2f, 0x08, 0xef, 0x99, 0xf5, - 0x15, 0x10, 0xe1, 0x6e, 0x3c, 0xad, 0x52, 0x6c, 0xc3, 0x4d, 0x9c, 0xcd, 0xf4, 0xd1, 0x7c, 0x7e, - 0x0e, 0xa6, 0xfc, 0x00, 0x4d, 0xf8, 0xfe, 0xb0, 0x00, 0xc3, 0x93, 0x90, 0x77, 0xac, 0x5d, 0xbb, - 0x85, 0xe8, 0x2e, 0x26, 0x7d, 0x1b, 0x62, 0xc7, 0x6d, 0x60, 0x6f, 0xbc, 0xcf, 0xa6, 0xc8, 0x26, - 0xb6, 0x29, 0xa2, 0x2d, 0xd6, 0x38, 0x0b, 0xe0, 0x05, 0xc2, 0x97, 0x3e, 0x70, 0x98, 0xd5, 0x91, - 0xfb, 0x68, 0x34, 0x02, 0xfe, 0x44, 0x68, 0x3f, 0x67, 0x40, 0x4d, 0x92, 0xa9, 0x5c, 0x6d, 0x08, - 0x4b, 0xf6, 0x4a, 0xb8, 0xdc, 0xcf, 0x41, 0x4d, 0x58, 0x6c, 0xb2, 0x6e, 0x68, 0xab, 0x05, 0x59, - 0x7d, 0x76, 0x16, 0x0a, 0x84, 0xb5, 0x5a, 0x60, 0xcd, 0xa9, 0x2f, 0xce, 0x1c, 0xb6, 0xc9, 0x1a, - 0x3d, 0x07, 0xfd, 0x94, 0x24, 0x1a, 0x58, 0x9a, 0x13, 0x7c, 0x58, 0xbb, 0x08, 0x4d, 0x1a, 0xa2, - 0x99, 0xc5, 0x28, 0x9f, 0xfa, 0x87, 0x19, 0x91, 0x38, 0xd5, 0x62, 0x2c, 0xa6, 0xdf, 0x2b, 0x7d, - 0x36, 0xeb, 0xc7, 0xd9, 0x5b, 0xb2, 0xad, 0x9d, 0x0d, 0xbb, 0xa3, 0xfe, 0x9f, 0x42, 0xd7, 0x00, - 0x44, 0xcc, 0x0f, 0xa4, 0xe8, 0xf9, 0x01, 0x5e, 0x53, 0xee, 0x84, 0x9b, 0x59, 0x9d, 0x21, 0x86, - 0x6f, 0xe5, 0x7a, 0x98, 0xd3, 0xdb, 0xed, 0x75, 0x7d, 0x0b, 0x95, 0xbc, 0x89, 0xb7, 0xe9, 0xd2, - 0x18, 0x5c, 0x3d, 0xa9, 0xb1, 0x5d, 0x91, 0xf8, 0x42, 0x29, 0x07, 0x12, 0x95, 0xcf, 0x58, 0x86, - 0x37, 0x6f, 0x48, 0x68, 0x6d, 0xeb, 0x61, 0x44, 0x40, 0xfa, 0x26, 0xe8, 0x2d, 0x25, 0xc0, 0x77, - 0xfa, 0x9a, 0xf5, 0xc7, 0x12, 0x4c, 0x78, 0xf2, 0x2e, 0xb6, 0xdb, 0xea, 0x63, 0xb9, 0xc0, 0x99, - 0x91, 0xfe, 0x6a, 0x3f, 0x2f, 0xec, 0x28, 0xe8, 0xd7, 0x90, 0xd0, 0x8f, 0xc0, 0x24, 0x14, 0xa2, - 0xc4, 0x09, 0x51, 0xcc, 0x1f, 0x30, 0xb6, 0x88, 0xf4, 0xc5, 0xf7, 0x31, 0x09, 0x66, 0xfd, 0x79, - 0xc4, 0x12, 0x72, 0x5b, 0xdb, 0xea, 0xed, 0xa2, 0x2b, 0x51, 0xb4, 0xa5, 0x05, 0x9b, 0xb6, 0x1d, - 0xf5, 0x7b, 0x99, 0x84, 0x2a, 0xcf, 0x95, 0x1c, 0xb1, 0x8c, 0x97, 0x48, 0x17, 0xe3, 0x08, 0xa6, - 0x2f, 0xcc, 0x47, 0x24, 0x80, 0x86, 0x15, 0x4c, 0x86, 0x0f, 0x20, 0xc9, 0x5f, 0x15, 0xde, 0xcf, - 0xa5, 0x15, 0x0f, 0x8b, 0x4d, 0xde, 0x73, 0x08, 0xba, 0x3b, 0x0d, 0x2a, 0x69, 0x2c, 0x6d, 0x7d, - 0x6a, 0x71, 0xb7, 0xdb, 0x31, 0x5a, 0xba, 0xdb, 0xeb, 0xa3, 0x17, 0x2d, 0x5e, 0x7c, 0xb9, 0x6e, - 0x22, 0xa3, 0x30, 0x28, 0x23, 0x42, 0x96, 0x24, 0xdc, 0x8d, 0xe4, 0x87, 0xbb, 0x11, 0xf4, 0xbb, - 0x19, 0x40, 0x7c, 0x0c, 0xea, 0x29, 0xc3, 0xd1, 0x5a, 0x17, 0x99, 0x0b, 0x36, 0xd2, 0xdb, 0x2d, - 0x7b, 0x77, 0xe7, 0xbc, 0xc3, 0x3a, 0x98, 0xc6, 0xeb, 0x28, 0xb3, 0xb6, 0x2c, 0x71, 0x6b, 0xcb, - 0xea, 0xcf, 0xc9, 0xa2, 0x01, 0xc3, 0x98, 0x1d, 0x10, 0x86, 0x87, 0x21, 0x86, 0xba, 0x44, 0x6e, - 0x51, 0x3d, 0xcb, 0xc8, 0xd9, 0x24, 0xcb, 0xc8, 0xaf, 0x11, 0x0a, 0x3f, 0x26, 0x54, 0xaf, 0xb1, - 0x78, 0xb7, 0xcd, 0xd5, 0x91, 0x1b, 0x01, 0xef, 0x75, 0x30, 0x7b, 0x3e, 0xfc, 0x12, 0x40, 0xcc, - 0x27, 0xf6, 0xf1, 0x39, 0x7d, 0x6d, 0xd2, 0x15, 0x18, 0x9e, 0x85, 0x08, 0x74, 0x03, 0x04, 0x25, - 0x11, 0xc7, 0xb6, 0x44, 0xcb, 0x29, 0xb1, 0xe5, 0xa7, 0x8f, 0xc2, 0x07, 0x25, 0x98, 0xc6, 0x57, - 0x06, 0x2f, 0x5c, 0xc2, 0x47, 0x2d, 0x05, 0x8d, 0x92, 0xe7, 0xb3, 0x62, 0x56, 0x20, 0xdb, 0x31, - 0xcc, 0x0b, 0xbe, 0x47, 0xa2, 0xf7, 0x1c, 0x5e, 0x40, 0x29, 0xf5, 0xb9, 0x80, 0x32, 0xd8, 0xc8, - 0x08, 0xca, 0x3d, 0xd0, 0x8d, 0xe8, 0x03, 0xc9, 0xa5, 0x2f, 0xc6, 0x7f, 0xcc, 0x42, 0xbe, 0x8e, - 0x74, 0xbb, 0xb5, 0xad, 0xbe, 0x5d, 0xea, 0x3b, 0x55, 0x98, 0xe4, 0xa7, 0x0a, 0x4b, 0x30, 0xb1, - 0x69, 0x74, 0x5c, 0x64, 0x13, 0x2f, 0x6d, 0xb6, 0x6b, 0x27, 0x4d, 0x7c, 0xa1, 0x63, 0xb5, 0x2e, - 0xcc, 0x53, 0xd3, 0x7d, 0xde, 0x0f, 0x58, 0x3c, 0xbf, 0x84, 0x7f, 0xd2, 0xfc, 0x9f, 0x3d, 0x83, - 0xd0, 0xb1, 0x6c, 0x37, 0xea, 0x2e, 0x9a, 0x08, 0x2a, 0x75, 0xcb, 0x76, 0x35, 0xf2, 0xa3, 0x07, - 0xf3, 0xe6, 0x6e, 0xa7, 0xd3, 0x40, 0x0f, 0xba, 0xfe, 0xb4, 0xcd, 0x7f, 0xf7, 0x8c, 0x45, 0x6b, - 0x73, 0xd3, 0x41, 0x64, 0xd1, 0x20, 0xa7, 0xd1, 0x37, 0xe5, 0x38, 0xe4, 0x3a, 0xc6, 0x8e, 0x41, - 0x26, 0x1a, 0x39, 0x8d, 0xbc, 0x28, 0x37, 0x42, 0x21, 0x9c, 0xe3, 0x10, 0x46, 0x4f, 0xe5, 0x71, - 0xd3, 0xdc, 0x97, 0xee, 0xe9, 0xcc, 0x05, 0x74, 0xc9, 0x39, 0x35, 0x81, 0xbf, 0xe3, 0x67, 0xfe, - 0x48, 0x8c, 0xc8, 0x86, 0x08, 0x91, 0x78, 0xf4, 0x0c, 0xd6, 0x46, 0x2d, 0xcb, 0x6e, 0xfb, 0xb2, - 0x89, 0x9e, 0x60, 0xd0, 0x7c, 0xc9, 0xb6, 0x31, 0xfa, 0x16, 0x9e, 0xbe, 0xa6, 0xbd, 0x25, 0xef, - 0x75, 0x9b, 0x5e, 0xd1, 0xe7, 0x0c, 0x77, 0x7b, 0x0d, 0xb9, 0xba, 0xfa, 0x8f, 0x72, 0x5f, 0x8d, - 0x9b, 0xfe, 0xff, 0x35, 0x6e, 0x80, 0xc6, 0x91, 0xd0, 0x5a, 0xee, 0xae, 0x6d, 0x7a, 0x72, 0xa4, - 0x9e, 0xae, 0x4c, 0x8a, 0x72, 0x27, 0x5c, 0x11, 0xbe, 0xf9, 0x4b, 0xa5, 0x8b, 0x8c, 0xf3, 0xeb, - 0xa4, 0x16, 0x9d, 0x41, 0x59, 0x87, 0x6b, 0xc9, 0xc7, 0x95, 0xc6, 0xda, 0xea, 0x8a, 0xb1, 0xb5, - 0xdd, 0x31, 0xb6, 0xb6, 0x5d, 0xa7, 0x62, 0x3a, 0x2e, 0xd2, 0xdb, 0xb5, 0x4d, 0x8d, 0xdc, 0x22, - 0x05, 0x98, 0x8e, 0x48, 0x56, 0xde, 0x8b, 0x5b, 0x6c, 0x74, 0x63, 0x35, 0x25, 0xa2, 0xa5, 0x3c, - 0xd9, 0x6b, 0x29, 0xce, 0x6e, 0x27, 0xc0, 0xf4, 0xaa, 0x1e, 0x4c, 0x43, 0x55, 0xdf, 0xed, 0xe0, - 0xe6, 0x82, 0x33, 0x27, 0x1d, 0xe7, 0x62, 0x38, 0x49, 0xbf, 0xd9, 0xfc, 0xbf, 0x79, 0xc8, 0x2d, - 0xdb, 0x7a, 0x77, 0x5b, 0x7d, 0x36, 0xd3, 0x3f, 0x8f, 0xaa, 0x4d, 0x04, 0xda, 0x29, 0x0d, 0xd2, - 0x4e, 0x79, 0x80, 0x76, 0x66, 0x19, 0xed, 0x8c, 0x5e, 0x54, 0x3e, 0x03, 0x33, 0x2d, 0xab, 0xd3, - 0x41, 0x2d, 0x4f, 0x1e, 0x95, 0x36, 0x5e, 0xcd, 0x99, 0xd2, 0xb8, 0x34, 0x1c, 0xd4, 0x1d, 0xb9, - 0x75, 0xb2, 0x86, 0x4e, 0x94, 0x3e, 0x4c, 0x50, 0x5f, 0x2c, 0x41, 0xb6, 0xdc, 0xde, 0x42, 0xdc, - 0x3a, 0x7b, 0x86, 0x59, 0x67, 0x3f, 0x09, 0x79, 0x57, 0xb7, 0xb7, 0x90, 0xeb, 0xaf, 0x13, 0x90, - 0xb7, 0x20, 0xd6, 0xbc, 0xcc, 0xc4, 0x9a, 0xff, 0x51, 0xc8, 0x7a, 0x32, 0xa3, 0x8e, 0xeb, 0xd7, - 0xf6, 0x83, 0x1f, 0xcb, 0x7e, 0xde, 0x2b, 0x71, 0xde, 0xab, 0xb5, 0x86, 0x7f, 0xe8, 0xc5, 0x3a, - 0xb7, 0x0f, 0x6b, 0x7c, 0x21, 0x6e, 0xcb, 0x32, 0x2b, 0x3b, 0xfa, 0x16, 0xa2, 0xd5, 0x0c, 0x13, - 0xfc, 0xaf, 0xe5, 0x1d, 0xeb, 0x01, 0x83, 0x46, 0xa8, 0x0c, 0x13, 0xbc, 0x2a, 0x6c, 0x1b, 0xed, - 0x36, 0x32, 0x69, 0xcb, 0xa6, 0x6f, 0x67, 0x4e, 0x43, 0xd6, 0xe3, 0xc1, 0xd3, 0x1f, 0xcf, 0x58, - 0x28, 0x1c, 0x51, 0x66, 0xbc, 0x66, 0x45, 0x1a, 0x6f, 0x21, 0xc3, 0xaf, 0xa9, 0x8a, 0xf8, 0xf5, - 0x90, 0xca, 0xf5, 0x6f, 0x5c, 0x4f, 0x80, 0x9c, 0x69, 0xb5, 0xd1, 0xc0, 0x41, 0x88, 0xe4, 0x52, - 0x9e, 0x04, 0x39, 0xd4, 0xf6, 0x7a, 0x05, 0x19, 0x67, 0x3f, 0x1d, 0x2f, 0x4b, 0x8d, 0x64, 0x4e, - 0xe6, 0x3c, 0xd4, 0x8f, 0xdb, 0xf4, 0x1b, 0xe0, 0x2f, 0x4e, 0xc0, 0x51, 0xd2, 0x07, 0xd4, 0x77, - 0xcf, 0x7b, 0xa4, 0xce, 0x23, 0xf5, 0xe1, 0xfe, 0x03, 0xd7, 0x51, 0x5e, 0xd9, 0x8f, 0x43, 0xce, - 0xd9, 0x3d, 0x1f, 0x18, 0xa1, 0xe4, 0x85, 0x6d, 0xba, 0xd2, 0x48, 0x86, 0x33, 0x79, 0xd8, 0xe1, - 0x8c, 0x1b, 0x9a, 0x64, 0xbf, 0xf1, 0x87, 0x03, 0x19, 0x39, 0x72, 0xe1, 0x0f, 0x64, 0xfd, 0x86, - 0xa1, 0x53, 0x30, 0xa1, 0x6f, 0xba, 0xc8, 0x0e, 0xcd, 0x44, 0xfa, 0xea, 0x0d, 0x95, 0xe7, 0xd1, - 0xa6, 0x65, 0x7b, 0x62, 0x21, 0x57, 0x0d, 0x04, 0xef, 0x4c, 0xcb, 0x05, 0x6e, 0x87, 0xec, 0x26, - 0x38, 0x66, 0x5a, 0x8b, 0xa8, 0x4b, 0xe5, 0x4c, 0x50, 0x9c, 0xc5, 0x2d, 0x60, 0xff, 0x87, 0x7d, - 0x5d, 0xc9, 0xdc, 0xfe, 0xae, 0x44, 0xfd, 0x64, 0xd2, 0x39, 0x73, 0x0f, 0xd0, 0x23, 0xb3, 0xd0, - 0x94, 0xa7, 0xc2, 0x4c, 0x9b, 0xfa, 0x70, 0xb5, 0x8c, 0xa0, 0x95, 0x44, 0xfe, 0xc7, 0x65, 0x0e, - 0x15, 0x29, 0xcb, 0x2a, 0xd2, 0x32, 0x4c, 0xe2, 0xc3, 0xd1, 0x9e, 0x26, 0xe5, 0x7a, 0x7c, 0xe6, - 0xf1, 0xb4, 0x2e, 0xa8, 0x14, 0x23, 0xb6, 0xf9, 0x12, 0xfd, 0x45, 0x0b, 0x7e, 0x4e, 0x36, 0xfb, - 0x8e, 0x97, 0x50, 0xfa, 0xcd, 0xf1, 0x8f, 0xf2, 0x70, 0x45, 0xc9, 0xb6, 0x1c, 0x07, 0x1f, 0x92, - 0xe9, 0x6d, 0x98, 0xbf, 0x2f, 0x71, 0xb7, 0xce, 0x3c, 0xaa, 0x9b, 0x5f, 0xbf, 0x06, 0x35, 0xbe, - 0xa6, 0xf1, 0x15, 0xe1, 0xb0, 0x32, 0xc1, 0xfe, 0x43, 0x84, 0xd0, 0x7f, 0x30, 0x1a, 0xc9, 0x5b, - 0x32, 0x22, 0x91, 0x6e, 0x12, 0xca, 0x2a, 0xfd, 0xe6, 0xf2, 0x05, 0x09, 0xae, 0xec, 0xe5, 0x66, - 0xc3, 0x74, 0x82, 0x06, 0x73, 0xf5, 0x80, 0xf6, 0xc2, 0x47, 0x46, 0x89, 0xbd, 0xef, 0x35, 0xa2, - 0xee, 0x4c, 0x69, 0x11, 0x8b, 0x25, 0xe1, 0x91, 0x9b, 0xb8, 0xfb, 0x5e, 0x13, 0x93, 0x4f, 0x5f, - 0xb8, 0x9f, 0xca, 0xc2, 0xd1, 0x65, 0xdb, 0xda, 0xed, 0x3a, 0x61, 0x0f, 0xf4, 0x77, 0xfd, 0x37, - 0x5c, 0xf3, 0x22, 0xa6, 0xc1, 0x35, 0x30, 0x6d, 0x53, 0x6b, 0x2e, 0xdc, 0x7e, 0x65, 0x93, 0xd8, - 0xde, 0x4b, 0x3e, 0x48, 0xef, 0x15, 0xf6, 0x33, 0x59, 0xae, 0x9f, 0xe9, 0xed, 0x39, 0x72, 0x7d, - 0x7a, 0x8e, 0xbf, 0x95, 0x12, 0x0e, 0xaa, 0x3d, 0x22, 0x8a, 0xe8, 0x2f, 0x4a, 0x90, 0xdf, 0xc2, - 0x19, 0x69, 0x77, 0xf1, 0x78, 0xb1, 0x9a, 0x61, 0xe2, 0x1a, 0xfd, 0x35, 0x94, 0xab, 0xcc, 0xea, - 0x70, 0xa2, 0x01, 0x2e, 0x9e, 0xdb, 0xf4, 0x95, 0xea, 0x15, 0x59, 0x98, 0x09, 0x4a, 0xaf, 0xb4, - 0x1d, 0xf5, 0xf9, 0xfd, 0x35, 0x6a, 0x56, 0x44, 0xa3, 0xf6, 0xad, 0x33, 0x07, 0xa3, 0x8e, 0xcc, - 0x8c, 0x3a, 0x7d, 0x47, 0x97, 0x99, 0x88, 0xd1, 0x45, 0x7d, 0x96, 0x2c, 0x7a, 0x6f, 0x1b, 0xdf, - 0xb5, 0xe2, 0xda, 0x3c, 0x9a, 0x07, 0x0b, 0xc1, 0xdb, 0xe3, 0x06, 0xd7, 0x2a, 0x7d, 0x25, 0x79, - 0x8f, 0x04, 0xc7, 0xf6, 0x77, 0xe6, 0x3f, 0xc4, 0x7b, 0xa1, 0x79, 0x75, 0x72, 0x02, 0x2f, 0x34, - 0xfc, 0xc6, 0x6f, 0xd2, 0xc5, 0x86, 0x29, 0xe1, 0xec, 0xbd, 0xc1, 0x9d, 0xb8, 0x58, 0x20, 0x12, - 0x41, 0xa2, 0xe9, 0x0b, 0xf0, 0xd7, 0x64, 0x98, 0xaa, 0x23, 0x77, 0x55, 0xbf, 0x64, 0xed, 0xba, - 0xaa, 0x2e, 0xba, 0x3d, 0xf7, 0x14, 0xc8, 0x77, 0xf0, 0x2f, 0xb8, 0x83, 0x61, 0xc3, 0x82, 0xb2, - 0xfb, 0x5b, 0xd8, 0xf7, 0x87, 0x90, 0xd6, 0x68, 0x7e, 0x3e, 0x3e, 0x8c, 0xc8, 0xee, 0x68, 0xc0, - 0xdd, 0x48, 0xb6, 0x76, 0x12, 0xed, 0x9d, 0x46, 0x15, 0x9d, 0x3e, 0x2c, 0x3f, 0x27, 0xc3, 0x6c, - 0x1d, 0xb9, 0x15, 0x67, 0x49, 0xdf, 0xb3, 0x6c, 0xc3, 0x45, 0xec, 0x7d, 0xb8, 0xf1, 0xd0, 0x9c, - 0x06, 0x30, 0x82, 0xdf, 0x68, 0xd4, 0x2a, 0x26, 0x45, 0xfd, 0xc3, 0xa4, 0x8e, 0x42, 0x1c, 0x1f, - 0x23, 0x01, 0x21, 0x91, 0x8f, 0x45, 0x5c, 0xf1, 0xe9, 0x03, 0xf1, 0x39, 0x89, 0x02, 0x51, 0xb4, - 0x5b, 0xdb, 0xc6, 0x1e, 0x6a, 0x27, 0x04, 0xc2, 0xff, 0x2d, 0x04, 0x22, 0x20, 0x94, 0xd8, 0x7d, - 0x85, 0xe3, 0x63, 0x14, 0xee, 0x2b, 0x71, 0x04, 0xc7, 0x12, 0x78, 0xca, 0xeb, 0x7a, 0xe8, 0x7a, - 0xe6, 0xdd, 0xa2, 0x62, 0x0d, 0x4d, 0x36, 0x89, 0x35, 0xd9, 0x86, 0xea, 0x58, 0x48, 0xd9, 0x83, - 0x74, 0x3a, 0x9b, 0x46, 0xc7, 0xd2, 0xb7, 0xe8, 0xf4, 0x85, 0xfe, 0x36, 0x19, 0x4e, 0x04, 0x11, - 0x59, 0xea, 0xc8, 0x5d, 0xd4, 0x9d, 0xed, 0xf3, 0x96, 0x6e, 0xb7, 0xd5, 0xd2, 0x08, 0x8e, 0x04, - 0xaa, 0x9f, 0x65, 0x41, 0xa8, 0xf2, 0x20, 0xf4, 0x75, 0x15, 0xed, 0xcb, 0xcb, 0x28, 0x3a, 0x99, - 0x58, 0x6f, 0xd6, 0x37, 0x04, 0x60, 0xfd, 0x18, 0x07, 0xd6, 0x5d, 0xc3, 0xb2, 0x98, 0x3e, 0x70, - 0xbf, 0x49, 0x46, 0x04, 0xc6, 0xab, 0xf9, 0x7e, 0x51, 0xc0, 0x22, 0xbc, 0x5a, 0xe5, 0x48, 0xaf, - 0xd6, 0xa1, 0xc6, 0x88, 0x81, 0x1e, 0xc9, 0xe9, 0x8e, 0x11, 0x87, 0xe8, 0x6d, 0xfc, 0x26, 0x19, - 0x0a, 0x38, 0x24, 0x17, 0xe3, 0xf1, 0xcd, 0x46, 0xb8, 0x8e, 0x47, 0x67, 0x9f, 0x77, 0xf9, 0x44, - 0x52, 0xef, 0x72, 0xf5, 0x8d, 0x49, 0x7d, 0xc8, 0x7b, 0xb9, 0x1d, 0x09, 0x62, 0x89, 0x5c, 0xc4, - 0x07, 0x70, 0x90, 0x3e, 0x68, 0xbf, 0x24, 0x03, 0x78, 0x0d, 0x9a, 0x9e, 0x7d, 0x78, 0xba, 0x28, - 0x5c, 0x37, 0xb3, 0x7e, 0xf5, 0x1e, 0x50, 0x27, 0x7a, 0x80, 0x22, 0x14, 0xc3, 0x53, 0x15, 0x0f, - 0x27, 0xf5, 0xad, 0x0c, 0xb9, 0x1a, 0x09, 0x2c, 0x89, 0xbc, 0x2d, 0x23, 0xcb, 0x4e, 0x1f, 0x90, - 0xff, 0x2e, 0x41, 0xae, 0x61, 0xd5, 0x91, 0x7b, 0x70, 0x53, 0x20, 0xf1, 0xb9, 0x7e, 0x5c, 0xee, - 0x28, 0xce, 0xf5, 0xf7, 0x23, 0x94, 0xbe, 0xe8, 0xde, 0x2a, 0xc1, 0x4c, 0xc3, 0x2a, 0x05, 0x8b, - 0x53, 0xe2, 0xbe, 0xaa, 0xe2, 0x77, 0xcf, 0x07, 0x15, 0x0c, 0x8b, 0x39, 0xd0, 0xdd, 0xf3, 0x83, - 0xe9, 0xa5, 0x2f, 0xb7, 0xdb, 0xe1, 0xe8, 0x86, 0xd9, 0xb6, 0x34, 0xd4, 0xb6, 0xe8, 0x4a, 0xb7, - 0xa2, 0x40, 0x76, 0xd7, 0x6c, 0x5b, 0x98, 0xe5, 0x9c, 0x86, 0x9f, 0xbd, 0x34, 0x1b, 0xb5, 0x2d, - 0xea, 0x1b, 0x80, 0x9f, 0xd5, 0xaf, 0xc8, 0x90, 0xf5, 0xfe, 0x15, 0x17, 0xf5, 0x9b, 0xe4, 0x84, - 0x91, 0x0a, 0x3c, 0xf2, 0x23, 0xb1, 0x84, 0xee, 0x66, 0xd6, 0xfe, 0x89, 0x07, 0xeb, 0xb5, 0x51, - 0xe5, 0x31, 0xa2, 0x08, 0xd7, 0xfc, 0x95, 0x53, 0x30, 0x71, 0xbe, 0x63, 0xb5, 0x2e, 0x84, 0x07, - 0xea, 0xe9, 0xab, 0x72, 0x23, 0xe4, 0x6c, 0xdd, 0xdc, 0x42, 0x74, 0x4f, 0xe1, 0x78, 0x4f, 0x5f, - 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x45, 0x7d, 0x63, 0x92, 0x18, 0x09, 0x7d, 0x2a, 0x9f, 0x4c, 0x1f, - 0x16, 0x87, 0x38, 0x59, 0x56, 0x80, 0x99, 0x52, 0xb1, 0x4a, 0xae, 0x0b, 0xac, 0x9d, 0x2d, 0x17, - 0x64, 0x0c, 0xb3, 0x27, 0x93, 0x14, 0x61, 0xf6, 0xc8, 0xff, 0xc0, 0xc2, 0xdc, 0xa7, 0xf2, 0x87, - 0x01, 0xf3, 0xc7, 0x24, 0x98, 0x5d, 0x35, 0x1c, 0x37, 0xca, 0xdb, 0x3f, 0x26, 0x22, 0xef, 0x0b, - 0x92, 0x9a, 0xca, 0x5c, 0x39, 0xc2, 0xa1, 0x78, 0x13, 0x99, 0xc3, 0x71, 0x45, 0x8c, 0xe7, 0x58, - 0x0a, 0xe6, 0x80, 0xdc, 0xb5, 0x2e, 0x2c, 0xc9, 0xc4, 0x86, 0x52, 0x58, 0xc8, 0xf8, 0x0d, 0xa5, - 0xc8, 0xb2, 0xd3, 0x97, 0xef, 0x57, 0x24, 0x38, 0xe6, 0x15, 0x1f, 0xb7, 0x2c, 0x15, 0x2d, 0xe6, - 0x81, 0xcb, 0x52, 0x89, 0x57, 0xc6, 0xf7, 0xf1, 0x32, 0x8a, 0x95, 0xf1, 0x41, 0x44, 0xc7, 0x2c, - 0xe6, 0x88, 0x65, 0xd8, 0x41, 0x62, 0x8e, 0x59, 0x86, 0x1d, 0x5e, 0xcc, 0xf1, 0x4b, 0xb1, 0x43, - 0x8a, 0xf9, 0xd0, 0x16, 0x58, 0x7f, 0x4f, 0x0e, 0xc4, 0x1c, 0xb9, 0xb6, 0x11, 0x23, 0xe6, 0xc4, - 0x27, 0x76, 0xf9, 0xeb, 0xeb, 0x13, 0x08, 0x7e, 0xc4, 0xeb, 0x1b, 0xc3, 0xc0, 0x74, 0x88, 0x6b, - 0x1c, 0xbf, 0x25, 0xc3, 0x1c, 0xe5, 0xa2, 0xff, 0x94, 0x39, 0x06, 0xa3, 0xc4, 0x53, 0xe6, 0xc4, - 0x67, 0x80, 0x78, 0xce, 0xc6, 0x7f, 0x06, 0x28, 0xb6, 0xfc, 0xf4, 0xc1, 0xf9, 0x6a, 0x16, 0x4e, - 0x7a, 0x2c, 0xac, 0x59, 0x6d, 0x63, 0xf3, 0x12, 0xe1, 0xe2, 0xac, 0xde, 0xd9, 0x45, 0x8e, 0xfa, - 0x0e, 0x49, 0x14, 0xa5, 0xff, 0x02, 0x60, 0x75, 0x91, 0x4d, 0x22, 0xad, 0x51, 0xa0, 0xee, 0x8c, - 0xaa, 0xec, 0xfe, 0x92, 0x82, 0x0b, 0x6a, 0x6a, 0x3e, 0x11, 0x8d, 0xa1, 0xe7, 0x59, 0x85, 0x53, - 0xc1, 0x97, 0x5e, 0x07, 0x8f, 0xcc, 0x7e, 0x07, 0x8f, 0x1b, 0x40, 0xd6, 0xdb, 0xed, 0x00, 0xaa, - 0xde, 0xcd, 0x6c, 0x5c, 0xa6, 0xe6, 0x65, 0xf1, 0x72, 0x3a, 0x28, 0x3c, 0x9a, 0x17, 0x91, 0xd3, - 0x41, 0xae, 0x32, 0x0f, 0x79, 0x72, 0xeb, 0x76, 0xb0, 0xa2, 0xdf, 0x3f, 0x33, 0xcd, 0xc5, 0x9b, - 0x76, 0x35, 0x5e, 0x0d, 0x6f, 0x4f, 0x24, 0x99, 0x7e, 0xfd, 0x74, 0x68, 0x27, 0x6b, 0x9c, 0x82, - 0x3d, 0x6d, 0x68, 0xca, 0xe3, 0xd9, 0x0d, 0x2b, 0x76, 0xbb, 0x9d, 0x4b, 0x0d, 0x1a, 0x7c, 0x25, - 0xd1, 0x6e, 0x18, 0x13, 0xc3, 0x45, 0xea, 0x8d, 0xe1, 0x92, 0x7c, 0x37, 0x8c, 0xe3, 0x63, 0x14, - 0xbb, 0x61, 0x71, 0x04, 0xd3, 0x17, 0xed, 0x47, 0x27, 0x89, 0xd5, 0x4c, 0xef, 0x0b, 0xf8, 0x64, - 0x7f, 0xcf, 0x6a, 0xe0, 0x9d, 0x5d, 0xfa, 0x5d, 0x25, 0x10, 0x7b, 0x4f, 0x8a, 0xf2, 0x24, 0xc8, - 0x6f, 0x5a, 0xf6, 0x8e, 0xee, 0x6f, 0xdc, 0xf7, 0x9e, 0x14, 0xa1, 0x31, 0xfa, 0x97, 0x70, 0x1e, - 0x8d, 0xe6, 0xf5, 0xe6, 0x23, 0xcf, 0x34, 0xba, 0x34, 0xd2, 0x99, 0xf7, 0xa8, 0x5c, 0x07, 0xb3, - 0x34, 0x3a, 0x63, 0x15, 0x39, 0x2e, 0x6a, 0xd3, 0x88, 0x15, 0x7c, 0xa2, 0x72, 0x06, 0x66, 0x68, - 0xc2, 0x92, 0xd1, 0x41, 0x0e, 0x0d, 0x5a, 0xc1, 0xa5, 0x29, 0x27, 0x21, 0x6f, 0x38, 0xf7, 0x3a, - 0x96, 0x89, 0xfd, 0xff, 0x27, 0x35, 0xfa, 0xa6, 0xdc, 0x00, 0x47, 0x69, 0xbe, 0xc0, 0x58, 0x25, - 0x07, 0x76, 0x7a, 0x93, 0x3d, 0xd5, 0x32, 0xad, 0x75, 0xdb, 0xda, 0xb2, 0x91, 0xe3, 0xe0, 0x53, - 0x53, 0x93, 0x1a, 0x93, 0xa2, 0xdc, 0x0f, 0xc7, 0x3a, 0x86, 0x79, 0xc1, 0xc1, 0x51, 0x7c, 0x97, - 0xa8, 0xdb, 0xd8, 0x4c, 0x9f, 0xe8, 0xda, 0x4c, 0x63, 0xa3, 0x72, 0x60, 0x7f, 0xd1, 0xf6, 0x53, - 0x51, 0x6e, 0x84, 0x02, 0xe5, 0x66, 0x41, 0x6f, 0x5d, 0xc0, 0xdf, 0xa9, 0x3b, 0xea, 0xbe, 0x74, - 0xf5, 0x45, 0x19, 0x98, 0xe1, 0x7e, 0xd6, 0x41, 0xf1, 0xbb, 0x3c, 0xe7, 0xdc, 0xb6, 0xe1, 0x22, - 0xaf, 0x60, 0x7a, 0x8e, 0xe5, 0xd6, 0x01, 0x8c, 0x69, 0xfb, 0x7e, 0xd4, 0xfa, 0x10, 0xf3, 0x00, - 0x20, 0x9d, 0x19, 0xf6, 0x1a, 0x73, 0xa8, 0x1d, 0xca, 0xa5, 0xa9, 0xcf, 0x04, 0x65, 0x3f, 0x35, - 0xc6, 0xc3, 0x23, 0x93, 0xcc, 0xc3, 0xc3, 0x93, 0x89, 0xde, 0xe9, 0x58, 0x17, 0x51, 0x3b, 0x20, - 0x4b, 0xf5, 0x70, 0x5f, 0xba, 0xfa, 0xe9, 0x61, 0xe6, 0x7c, 0x89, 0xaf, 0xb5, 0xf0, 0x1a, 0xd0, - 0x6e, 0xab, 0x85, 0x50, 0x9b, 0x1e, 0x4a, 0xf3, 0x5f, 0x13, 0x5e, 0x78, 0x91, 0x78, 0x86, 0x78, - 0x48, 0x37, 0x5e, 0xbc, 0xff, 0x04, 0xe4, 0xc9, 0xed, 0x71, 0xea, 0x8b, 0xe6, 0xfa, 0xf6, 0x23, - 0x73, 0x7c, 0x3f, 0xb2, 0x01, 0x33, 0xa6, 0xe5, 0x15, 0xb7, 0xae, 0xdb, 0xfa, 0x8e, 0x13, 0xb7, - 0x00, 0x4c, 0xe8, 0x06, 0xa3, 0x7d, 0x95, 0xf9, 0x6d, 0xe5, 0x88, 0xc6, 0x91, 0x51, 0xfe, 0x37, - 0x38, 0x7a, 0x9e, 0x06, 0x6f, 0x70, 0x28, 0x65, 0x29, 0xda, 0x3d, 0xb2, 0x87, 0xf2, 0x02, 0xff, - 0xe7, 0xca, 0x11, 0xad, 0x97, 0x98, 0xf2, 0x13, 0x30, 0xe7, 0xbd, 0xb6, 0xad, 0x8b, 0x3e, 0xe3, - 0x72, 0xb4, 0x8d, 0xd8, 0x43, 0x7e, 0x8d, 0xfb, 0x71, 0xe5, 0x88, 0xd6, 0x43, 0x4a, 0xa9, 0x01, - 0x6c, 0xbb, 0x3b, 0x1d, 0x4a, 0x38, 0x1b, 0xad, 0x92, 0x3d, 0x84, 0x57, 0x82, 0x9f, 0x56, 0x8e, - 0x68, 0x0c, 0x09, 0x65, 0x15, 0xa6, 0xdc, 0x07, 0x5d, 0x4a, 0x2f, 0x17, 0xed, 0x97, 0xd0, 0x43, - 0xaf, 0xe1, 0xff, 0xb3, 0x72, 0x44, 0x0b, 0x09, 0x28, 0x15, 0x98, 0xec, 0x9e, 0xa7, 0xc4, 0xf2, - 0xd1, 0x7d, 0x59, 0x0f, 0xb1, 0xf5, 0xf3, 0x01, 0xad, 0xe0, 0x77, 0x8f, 0xb1, 0x96, 0xb3, 0x47, - 0x69, 0x4d, 0x08, 0x33, 0x56, 0xf2, 0xff, 0xf1, 0x18, 0x0b, 0x08, 0x28, 0x15, 0x98, 0x72, 0x4c, - 0xbd, 0xeb, 0x6c, 0x5b, 0xae, 0x73, 0x6a, 0xb2, 0xc7, 0x85, 0x35, 0x9a, 0x5a, 0x9d, 0xfe, 0xa3, - 0x85, 0x7f, 0x2b, 0x4f, 0x82, 0x13, 0xbb, 0xdd, 0xb6, 0xee, 0xa2, 0xf2, 0x83, 0x86, 0xe3, 0x1a, - 0xe6, 0x96, 0x1f, 0x1f, 0x98, 0x0c, 0x04, 0xfd, 0x3f, 0x2a, 0xf3, 0xf4, 0x30, 0x1b, 0xe0, 0xb6, - 0xa9, 0xf6, 0xee, 0xa3, 0x92, 0x62, 0x99, 0x33, 0x6c, 0x4f, 0x85, 0xac, 0xf7, 0x09, 0x0f, 0x1c, - 0x73, 0xfd, 0xd7, 0x68, 0x7b, 0x75, 0x07, 0x37, 0x60, 0xef, 0xa7, 0x9e, 0xb1, 0x67, 0x66, 0xdf, - 0xd8, 0x73, 0x0d, 0x4c, 0x1b, 0xce, 0x9a, 0xb1, 0x45, 0x0c, 0x5f, 0x3a, 0x36, 0xb0, 0x49, 0x64, - 0xa1, 0xa0, 0x8a, 0x2e, 0x92, 0xdb, 0x4f, 0x8e, 0xfa, 0x0b, 0x05, 0x7e, 0x8a, 0x7a, 0x3d, 0xcc, - 0xb0, 0x8d, 0x8c, 0x5c, 0x41, 0x6b, 0x84, 0x66, 0x33, 0x7d, 0x53, 0xaf, 0x83, 0x39, 0x5e, 0xa7, - 0x19, 0xeb, 0x40, 0xf6, 0xbb, 0x42, 0xf5, 0x5a, 0x38, 0xda, 0xd3, 0xb0, 0xfc, 0x70, 0x30, 0x99, - 0x30, 0x1c, 0xcc, 0x35, 0x00, 0xa1, 0x16, 0xf7, 0x25, 0x73, 0x35, 0x4c, 0x05, 0x7a, 0xd9, 0x37, - 0xc3, 0x97, 0x32, 0x30, 0xe9, 0x2b, 0x5b, 0xbf, 0x0c, 0xde, 0xc8, 0x64, 0x32, 0x7b, 0x3f, 0xfe, - 0xc8, 0xc4, 0xa6, 0x79, 0x26, 0x40, 0xe8, 0x71, 0xdd, 0x30, 0xdc, 0x8e, 0x7f, 0x6a, 0xb1, 0x37, - 0x59, 0x59, 0x07, 0x30, 0x30, 0x46, 0x8d, 0xf0, 0x18, 0xe3, 0x2d, 0x09, 0xda, 0x03, 0xd1, 0x07, - 0x86, 0xc6, 0x99, 0x1f, 0xa2, 0x67, 0x0c, 0xa7, 0x20, 0x47, 0x82, 0xe4, 0x1f, 0x51, 0xe6, 0x00, - 0xca, 0x4f, 0x5f, 0x2f, 0x6b, 0x95, 0x72, 0xb5, 0x54, 0x2e, 0x64, 0xd4, 0xdf, 0x96, 0x60, 0x2a, - 0x68, 0x04, 0x7d, 0x2b, 0x59, 0xa6, 0xaa, 0x35, 0xf0, 0x96, 0xcf, 0xfd, 0x8d, 0x8a, 0x55, 0xb2, - 0xa7, 0xc0, 0xe5, 0xbb, 0x0e, 0x5a, 0x32, 0x6c, 0xc7, 0xd5, 0xac, 0x8b, 0x4b, 0x96, 0x1d, 0x0e, - 0xac, 0xe4, 0xc6, 0xcf, 0xa8, 0xcf, 0x9e, 0x31, 0xd8, 0x46, 0xf8, 0x3c, 0x1b, 0xb2, 0xe9, 0xa2, - 0x7e, 0x98, 0xe0, 0xd1, 0x75, 0x6d, 0xdd, 0x74, 0xba, 0x96, 0x83, 0x34, 0xeb, 0xa2, 0x53, 0x34, - 0xdb, 0x25, 0xab, 0xb3, 0xbb, 0x63, 0x3a, 0xd4, 0x9c, 0x8b, 0xfa, 0xec, 0x49, 0x07, 0xdf, 0xe1, - 0x3b, 0x07, 0x50, 0xaa, 0xad, 0xae, 0x96, 0x4b, 0x8d, 0x4a, 0xad, 0x5a, 0x38, 0xe2, 0x49, 0xab, - 0x51, 0x5c, 0x58, 0xf5, 0xa4, 0xf3, 0x93, 0x30, 0xe9, 0xb7, 0x69, 0x1a, 0xc1, 0x26, 0xe3, 0x47, - 0xb0, 0x51, 0x8a, 0x30, 0xe9, 0xb7, 0x72, 0x3a, 0x22, 0x3c, 0xb6, 0xf7, 0xc4, 0xf2, 0x8e, 0x6e, - 0xbb, 0xd8, 0x40, 0xf1, 0x89, 0x2c, 0xe8, 0x0e, 0xd2, 0x82, 0xdf, 0xce, 0x3c, 0x81, 0x72, 0xa0, - 0xc0, 0x5c, 0x71, 0x75, 0xb5, 0x59, 0xd3, 0x9a, 0xd5, 0x5a, 0x63, 0xa5, 0x52, 0x5d, 0x26, 0x23, - 0x64, 0x65, 0xb9, 0x5a, 0xd3, 0xca, 0x64, 0x80, 0xac, 0x17, 0x32, 0xe4, 0x0e, 0xe9, 0x85, 0x49, - 0xc8, 0x77, 0xb1, 0x74, 0xd5, 0x2f, 0xc8, 0x09, 0x43, 0x15, 0x04, 0x38, 0x45, 0xdc, 0x72, 0xcb, - 0x1d, 0x17, 0x90, 0xfa, 0x1c, 0xe7, 0x3d, 0x03, 0x33, 0xc4, 0x0c, 0x77, 0xf0, 0xce, 0x0b, 0x46, - 0x4e, 0xd6, 0xb8, 0x34, 0xf5, 0x83, 0x52, 0x82, 0xf8, 0x05, 0x7d, 0x39, 0x4a, 0x66, 0x5c, 0xfc, - 0x55, 0x66, 0xb8, 0x2b, 0x25, 0x2a, 0xd5, 0x46, 0x59, 0xab, 0x16, 0x57, 0x69, 0x16, 0x59, 0x39, - 0x05, 0xc7, 0xab, 0x35, 0x1a, 0x8e, 0xb1, 0xde, 0x6c, 0xd4, 0x9a, 0x95, 0xb5, 0xf5, 0x9a, 0xd6, - 0x28, 0xe4, 0x94, 0x93, 0xa0, 0x90, 0xe7, 0x66, 0xa5, 0xde, 0x2c, 0x15, 0xab, 0xa5, 0xf2, 0x6a, - 0x79, 0xb1, 0x90, 0x57, 0x1e, 0x07, 0xd7, 0x92, 0x2b, 0x8a, 0x6a, 0x4b, 0x4d, 0xad, 0x76, 0xae, - 0xee, 0x21, 0xa8, 0x95, 0x57, 0x8b, 0x9e, 0x22, 0x31, 0x77, 0x49, 0x4f, 0x28, 0x97, 0xc1, 0x51, - 0x7c, 0xd1, 0xfc, 0x6a, 0xad, 0xb8, 0x48, 0xcb, 0x9b, 0x54, 0xae, 0x82, 0x53, 0x95, 0x6a, 0x7d, - 0x63, 0x69, 0xa9, 0x52, 0xaa, 0x94, 0xab, 0x8d, 0xe6, 0x7a, 0x59, 0x5b, 0xab, 0xd4, 0xeb, 0xde, - 0xbf, 0x85, 0x29, 0x7c, 0x53, 0x2f, 0xe9, 0x33, 0xd5, 0xb7, 0xcb, 0x30, 0x7b, 0x56, 0xef, 0x18, - 0xde, 0x40, 0x81, 0xaf, 0xf0, 0xee, 0x39, 0xe9, 0xe3, 0xe2, 0xab, 0xbe, 0xe9, 0x59, 0x01, 0xfc, - 0xa2, 0xfe, 0xac, 0x9c, 0xf0, 0xa4, 0x0f, 0x05, 0x82, 0x94, 0x38, 0xcf, 0x95, 0x16, 0x31, 0x2f, - 0x7d, 0xb9, 0x94, 0xe0, 0xa4, 0x8f, 0x38, 0xf9, 0x64, 0xe0, 0xff, 0xce, 0xa8, 0xc0, 0x2f, 0xc0, - 0xcc, 0x46, 0xb5, 0xb8, 0xd1, 0x58, 0xa9, 0x69, 0x95, 0x1f, 0xc7, 0x91, 0xe4, 0x67, 0x61, 0x6a, - 0xa9, 0xa6, 0x2d, 0x54, 0x16, 0x17, 0xcb, 0xd5, 0x42, 0x4e, 0xb9, 0x1c, 0x2e, 0xab, 0x97, 0xb5, - 0xb3, 0x95, 0x52, 0xb9, 0xb9, 0x51, 0x2d, 0x9e, 0x2d, 0x56, 0x56, 0x71, 0x1f, 0x91, 0x8f, 0xb9, - 0x7e, 0x7c, 0x42, 0xfd, 0xe9, 0x2c, 0x00, 0xa9, 0x3a, 0xbe, 0x48, 0x89, 0xb9, 0xa4, 0xfa, 0xaf, - 0x93, 0x4e, 0x1a, 0x42, 0x32, 0x11, 0xed, 0xb7, 0x02, 0x93, 0x36, 0xfd, 0x40, 0x57, 0xbe, 0x06, - 0xd1, 0x21, 0x8f, 0x3e, 0x35, 0x2d, 0xf8, 0x5d, 0x7d, 0x47, 0x92, 0x39, 0x42, 0x24, 0x63, 0xc9, - 0x90, 0x5c, 0x1a, 0x0d, 0x90, 0xea, 0xf3, 0x33, 0x30, 0xc7, 0x57, 0xcc, 0xab, 0x04, 0x36, 0xa6, - 0xc4, 0x2a, 0xc1, 0xff, 0xcc, 0x18, 0x59, 0x67, 0x9e, 0x48, 0x87, 0x53, 0xf0, 0x5b, 0x26, 0x39, - 0xb4, 0xef, 0x5b, 0x2c, 0x85, 0x8c, 0xc7, 0xbc, 0x67, 0x74, 0x14, 0x24, 0x65, 0x02, 0xe4, 0xc6, - 0x83, 0x6e, 0x41, 0x56, 0xbf, 0x24, 0xc3, 0x2c, 0x77, 0x0b, 0xb6, 0xfa, 0xf2, 0x8c, 0xc8, 0x0d, - 0xb5, 0xcc, 0xfd, 0xda, 0x99, 0x83, 0xde, 0xaf, 0x7d, 0xe6, 0x66, 0x98, 0xa0, 0x69, 0x58, 0xbe, - 0xb5, 0xaa, 0x67, 0x0a, 0x1c, 0x85, 0xe9, 0xe5, 0x72, 0xa3, 0x59, 0x6f, 0x14, 0xb5, 0x46, 0x79, - 0xb1, 0x90, 0xf1, 0x06, 0xbe, 0xf2, 0xda, 0x7a, 0xe3, 0xfe, 0x82, 0x94, 0xdc, 0x79, 0xb2, 0x97, - 0x91, 0x31, 0x3b, 0x4f, 0xc6, 0x15, 0x9f, 0xfe, 0x5c, 0xf5, 0x93, 0x32, 0x14, 0x08, 0x07, 0xe5, - 0x07, 0xbb, 0xc8, 0x36, 0x90, 0xd9, 0x42, 0xea, 0x05, 0x91, 0x60, 0xad, 0xfb, 0xc2, 0x18, 0xe2, - 0xfe, 0x9c, 0xb1, 0x12, 0xc9, 0x4b, 0x8f, 0x81, 0x9d, 0xdd, 0x67, 0x60, 0x7f, 0x22, 0xa9, 0xf7, - 0x64, 0x2f, 0xbb, 0x23, 0x81, 0xec, 0x23, 0x49, 0xbc, 0x27, 0x07, 0x70, 0x30, 0x96, 0x18, 0xcc, - 0x11, 0xe3, 0x6f, 0x41, 0x56, 0x9f, 0x27, 0xc3, 0xd1, 0x45, 0xdd, 0x45, 0x0b, 0x97, 0x1a, 0xfe, - 0x2d, 0x95, 0x11, 0x37, 0x4b, 0x67, 0xf6, 0xdd, 0x2c, 0x1d, 0x5e, 0x74, 0x29, 0xf5, 0x5c, 0x74, - 0xa9, 0xbe, 0x25, 0xe9, 0x79, 0xcb, 0x1e, 0x1e, 0x46, 0x16, 0x28, 0x39, 0xd9, 0x39, 0xca, 0x78, - 0x2e, 0xd2, 0x6f, 0x60, 0xaf, 0x9f, 0x82, 0x02, 0x61, 0x85, 0x71, 0x10, 0xfc, 0x35, 0x7a, 0x19, - 0x7b, 0x33, 0x41, 0x3c, 0x46, 0x3f, 0xc2, 0x85, 0xc4, 0x47, 0xb8, 0xe0, 0xd6, 0x9b, 0xe5, 0x5e, - 0xa7, 0x8e, 0xa4, 0x9d, 0x21, 0xe3, 0x0d, 0x18, 0x1d, 0x02, 0x37, 0xbd, 0xce, 0x30, 0xb6, 0xf8, - 0xf1, 0x5c, 0x18, 0x4c, 0xef, 0xe8, 0x2c, 0x8b, 0x22, 0x13, 0x7f, 0x2f, 0x7a, 0x52, 0xd7, 0x70, - 0xce, 0x1b, 0x33, 0xe6, 0xb2, 0xf0, 0xf4, 0x5c, 0xc3, 0x07, 0x71, 0x90, 0x3e, 0x0a, 0xdf, 0x93, - 0x20, 0x5b, 0xb7, 0x6c, 0x77, 0x54, 0x18, 0x24, 0xdd, 0xce, 0x66, 0x24, 0x50, 0x8f, 0x9e, 0x73, - 0xa6, 0xb7, 0x9d, 0x1d, 0x5f, 0xfe, 0x18, 0x42, 0x5a, 0x1e, 0x85, 0x39, 0xc2, 0x49, 0x70, 0xdf, - 0xcb, 0x77, 0x25, 0xd2, 0x5f, 0xdd, 0x27, 0x8a, 0x08, 0xde, 0xf8, 0x08, 0xb6, 0x93, 0x7d, 0x50, - 0xb8, 0x34, 0xf5, 0xf7, 0x59, 0x5c, 0x16, 0x79, 0x5c, 0xfa, 0xcd, 0xb8, 0x83, 0x2b, 0x53, 0x46, - 0xd5, 0x33, 0x25, 0x89, 0x8e, 0x19, 0x53, 0x78, 0xfa, 0x88, 0x3c, 0x24, 0x43, 0x9e, 0xba, 0xf3, - 0x8d, 0x14, 0x81, 0xa4, 0x2d, 0x23, 0x10, 0x82, 0x98, 0xdb, 0x9f, 0x3c, 0xea, 0x96, 0x11, 0x5f, - 0x7e, 0xfa, 0x38, 0xfc, 0x07, 0xf5, 0x53, 0x2d, 0xee, 0xe9, 0x46, 0x47, 0x3f, 0xdf, 0x49, 0x10, - 0x95, 0xfa, 0x83, 0x09, 0x4f, 0xe6, 0x05, 0x55, 0xe5, 0xca, 0x8b, 0x90, 0xf8, 0x8f, 0xc0, 0x94, - 0xcd, 0xed, 0xf5, 0x79, 0x56, 0x54, 0x8f, 0x8f, 0x30, 0xfd, 0xae, 0x85, 0x39, 0x13, 0x1d, 0xc3, - 0x13, 0xe2, 0x67, 0x2c, 0xc7, 0x86, 0xa6, 0x8b, 0xed, 0xf6, 0x12, 0xd2, 0xdd, 0x5d, 0x1b, 0xb5, - 0x13, 0x0d, 0x11, 0x76, 0xcf, 0x76, 0x28, 0x23, 0x09, 0x2e, 0x2e, 0xe4, 0x2a, 0x8f, 0xce, 0x93, - 0x07, 0xf4, 0x06, 0x3e, 0x2f, 0x23, 0xe9, 0x92, 0x5e, 0x17, 0x40, 0x52, 0xe3, 0x20, 0x79, 0xea, - 0x70, 0x4c, 0xa4, 0x0f, 0xc8, 0x6f, 0xc8, 0x30, 0x47, 0xec, 0x84, 0x51, 0x63, 0xf2, 0xee, 0x84, - 0xee, 0x3f, 0xcc, 0x8d, 0x5a, 0x2c, 0x3b, 0x23, 0x81, 0x25, 0x89, 0xb3, 0x90, 0x18, 0x1f, 0xe9, - 0x23, 0xf3, 0x9c, 0x63, 0x00, 0x8c, 0x4b, 0xe7, 0x07, 0xf3, 0x61, 0x8c, 0x46, 0xf5, 0x8d, 0x74, - 0xfe, 0x51, 0xe7, 0x02, 0x86, 0x33, 0xee, 0x9a, 0xc1, 0x86, 0x14, 0x9f, 0x28, 0x34, 0xaa, 0xfc, - 0x55, 0x42, 0x9b, 0x97, 0x3a, 0x54, 0x0e, 0x1c, 0xdc, 0x87, 0xec, 0xe5, 0x3e, 0x94, 0xc0, 0xf8, - 0x1d, 0xc4, 0x4a, 0x32, 0xd4, 0x56, 0x87, 0x98, 0xd9, 0x9f, 0x82, 0xe3, 0x5a, 0xb9, 0xb8, 0x58, - 0xab, 0xae, 0xde, 0xcf, 0x5e, 0xaf, 0x54, 0x90, 0xd9, 0xc9, 0x49, 0x2a, 0xb0, 0xbd, 0x32, 0x61, - 0x1f, 0xc8, 0xcb, 0x2a, 0x6e, 0xb6, 0xc2, 0x2c, 0xae, 0x0c, 0xee, 0xd5, 0x04, 0xc8, 0x1e, 0x26, - 0x0a, 0xdf, 0xcc, 0xc3, 0xb4, 0x86, 0x5a, 0xd6, 0xce, 0x0e, 0x32, 0xdb, 0xa8, 0xad, 0xbe, 0x52, - 0x86, 0x99, 0x60, 0xbf, 0xaf, 0x8e, 0x5c, 0xf5, 0x27, 0x42, 0x6c, 0xce, 0xc0, 0x8c, 0x57, 0xb9, - 0x1a, 0x1f, 0x04, 0x9e, 0x4b, 0x53, 0x6e, 0x82, 0x63, 0x3e, 0x0a, 0xb5, 0x9e, 0x29, 0xcc, 0xfe, - 0x0f, 0xea, 0x5b, 0x59, 0x8c, 0x36, 0x78, 0x8c, 0xee, 0x8e, 0x16, 0x66, 0xc0, 0xee, 0x3c, 0xcb, - 0x6a, 0x04, 0x58, 0x7f, 0x19, 0x80, 0xf5, 0x74, 0x0e, 0xac, 0xc5, 0x03, 0xd2, 0x3f, 0x4c, 0xd4, - 0xde, 0x25, 0xc3, 0x71, 0xbf, 0x23, 0x1e, 0x1f, 0x5a, 0x1f, 0x62, 0xd1, 0xfa, 0x49, 0x1e, 0xad, - 0x65, 0x11, 0x69, 0xf6, 0x63, 0x39, 0x02, 0xb5, 0xcf, 0x07, 0xa8, 0xfd, 0x14, 0x87, 0xda, 0xea, - 0x88, 0xca, 0x39, 0x4c, 0xf4, 0xde, 0x2d, 0xc3, 0x29, 0xcf, 0xec, 0x2c, 0x59, 0xe6, 0x66, 0xc7, - 0x68, 0xb9, 0x86, 0xb9, 0x15, 0xba, 0xb0, 0x2d, 0x8b, 0xac, 0x6c, 0xf6, 0x62, 0x2b, 0xed, 0xc7, - 0x96, 0x8f, 0x9d, 0x21, 0xda, 0xb6, 0xa2, 0xd8, 0x8a, 0x18, 0xc2, 0x18, 0xc7, 0xeb, 0x50, 0x73, - 0xd8, 0xa4, 0xe4, 0xad, 0x4f, 0x90, 0x83, 0xc3, 0xc4, 0xef, 0x21, 0x60, 0x4c, 0x8f, 0x9f, 0x97, - 0xa1, 0x80, 0xfd, 0x25, 0x71, 0xcf, 0x4e, 0xef, 0x1e, 0xad, 0xf1, 0x5e, 0xf2, 0x5d, 0x5f, 0x40, - 0xbe, 0x97, 0xbc, 0x9f, 0xa0, 0x5c, 0x0f, 0x73, 0xad, 0x6d, 0xd4, 0xba, 0x50, 0x31, 0x7d, 0x5f, - 0x24, 0xe2, 0xb8, 0xd2, 0x93, 0xca, 0x0f, 0x66, 0xf7, 0xf1, 0x60, 0xf2, 0x0b, 0x8f, 0xdc, 0xc4, - 0x86, 0x65, 0x2a, 0xa2, 0xa1, 0x7d, 0x34, 0x00, 0xa8, 0xca, 0x01, 0x74, 0xc7, 0x50, 0x54, 0x93, - 0xc1, 0x52, 0x1d, 0x02, 0x16, 0x15, 0x4e, 0xd6, 0xd6, 0x1b, 0x95, 0x5a, 0xb5, 0xb9, 0x51, 0x2f, - 0x2f, 0x36, 0x17, 0x7c, 0x70, 0xea, 0x05, 0x59, 0xfd, 0x9a, 0x04, 0x13, 0x84, 0x2d, 0x47, 0x7d, - 0x7c, 0x08, 0xc1, 0xc0, 0xe3, 0x01, 0xea, 0xeb, 0x85, 0x83, 0xfd, 0x04, 0x82, 0xa0, 0xe5, 0x44, - 0x34, 0x8c, 0xa7, 0xc0, 0x04, 0x01, 0xd9, 0xdf, 0x05, 0x38, 0x1d, 0x61, 0xd9, 0x51, 0x32, 0x9a, - 0x9f, 0x5d, 0x30, 0xf0, 0xcf, 0x00, 0x36, 0xd2, 0xb7, 0xc6, 0x9f, 0x95, 0x25, 0x4b, 0x07, 0xe7, - 0x0c, 0x77, 0x1b, 0x9f, 0x1e, 0x50, 0x7f, 0x4c, 0xa4, 0xe3, 0xba, 0x09, 0x72, 0x7b, 0x5e, 0xee, - 0x01, 0x27, 0x31, 0x48, 0x26, 0xf5, 0x77, 0x84, 0xe3, 0x4c, 0x73, 0xfa, 0x19, 0xf0, 0x14, 0x01, - 0xce, 0x1a, 0x64, 0x3b, 0x86, 0xe3, 0x52, 0x9b, 0xfb, 0xf6, 0x44, 0x84, 0xfc, 0x87, 0x8a, 0x8b, - 0x76, 0x34, 0x4c, 0x46, 0xbd, 0xd7, 0xb3, 0x98, 0xc2, 0x54, 0x81, 0xd3, 0x28, 0xa7, 0x60, 0x82, - 0x9e, 0x92, 0xa6, 0xdb, 0x52, 0xfe, 0xab, 0xe0, 0x56, 0x90, 0x50, 0x6d, 0xd3, 0xd7, 0x81, 0xff, - 0xe7, 0x28, 0x4c, 0xac, 0x18, 0x8e, 0x6b, 0xd9, 0x97, 0xd4, 0x87, 0x33, 0x30, 0x71, 0x16, 0xd9, - 0x8e, 0x61, 0x99, 0xfb, 0xdc, 0xb3, 0xae, 0x81, 0xe9, 0xae, 0x8d, 0xf6, 0x0c, 0x6b, 0xd7, 0x61, - 0x46, 0x09, 0x26, 0x49, 0x51, 0x61, 0x52, 0xdf, 0x75, 0xb7, 0x2d, 0x3b, 0x0c, 0xae, 0xe4, 0xbf, - 0x2b, 0xa7, 0x01, 0xc8, 0x73, 0x55, 0xdf, 0x41, 0xd4, 0xe9, 0x8c, 0x49, 0x51, 0x14, 0xc8, 0xba, - 0xc6, 0x0e, 0xa2, 0xd1, 0xd6, 0xf1, 0xb3, 0x27, 0x60, 0x1c, 0xb9, 0x94, 0x46, 0x88, 0x95, 0x35, - 0xff, 0x55, 0xfd, 0xac, 0x0c, 0xd3, 0xcb, 0xc8, 0xa5, 0xac, 0x3a, 0xea, 0x0b, 0x32, 0x42, 0x17, - 0x1c, 0x79, 0xf3, 0x92, 0x8e, 0xee, 0xf8, 0xff, 0x05, 0x43, 0x2e, 0x9f, 0x18, 0x86, 0x7e, 0x97, - 0xd9, 0x7b, 0x1f, 0x70, 0x1c, 0x50, 0xb7, 0x42, 0x1c, 0xf8, 0x69, 0x66, 0xba, 0x71, 0xbc, 0xff, - 0x03, 0x6f, 0x13, 0xc7, 0xc6, 0xd0, 0xa0, 0xb2, 0x9f, 0x67, 0xea, 0x13, 0xd9, 0x1d, 0x4d, 0xee, - 0xd1, 0x1c, 0xfb, 0xae, 0xf4, 0x60, 0x29, 0x51, 0x32, 0x5a, 0x90, 0x5b, 0x30, 0xfa, 0xc6, 0x60, - 0x4e, 0xd2, 0xd7, 0xc6, 0x6f, 0xcb, 0x30, 0x5d, 0xdf, 0xb6, 0x2e, 0xfa, 0x72, 0xfc, 0x49, 0x31, - 0x60, 0xaf, 0x82, 0xa9, 0xbd, 0x1e, 0x50, 0xc3, 0x04, 0xf6, 0xde, 0x38, 0x99, 0xbf, 0x37, 0xee, - 0xb9, 0x72, 0x52, 0x98, 0x18, 0xe6, 0x22, 0x60, 0xe2, 0xaf, 0x7a, 0x93, 0x12, 0x5c, 0xf5, 0xa6, - 0x3c, 0x19, 0x26, 0x28, 0xd7, 0x74, 0x99, 0x3a, 0x1e, 0x60, 0x3f, 0x33, 0x5b, 0xc1, 0x2c, 0x5f, - 0xc1, 0x64, 0xc8, 0x47, 0x57, 0x2e, 0x7d, 0xe4, 0xff, 0x5c, 0xc2, 0xb1, 0x97, 0x7c, 0xe0, 0x4b, - 0x23, 0x00, 0x5e, 0xfd, 0x4e, 0x46, 0x74, 0x33, 0x27, 0x90, 0x40, 0xc0, 0xc1, 0x81, 0x2e, 0x2f, - 0x1b, 0x48, 0x2e, 0x7d, 0x79, 0xfe, 0x76, 0x16, 0x66, 0x16, 0x8d, 0xcd, 0xcd, 0xa0, 0x93, 0x7c, - 0xa1, 0x60, 0x27, 0x19, 0xed, 0x42, 0xe5, 0xd9, 0xb9, 0xbb, 0xb6, 0x8d, 0x4c, 0xbf, 0x52, 0xb4, - 0x39, 0xf5, 0xa4, 0x2a, 0x37, 0xc0, 0x51, 0x7f, 0x5c, 0x60, 0x3b, 0xca, 0x29, 0xad, 0x37, 0x59, - 0xfd, 0x96, 0xb0, 0x27, 0x80, 0x2f, 0x51, 0xb6, 0x4a, 0x11, 0x0d, 0xf0, 0x4e, 0x98, 0xdd, 0x26, - 0xb9, 0xf1, 0x72, 0xa9, 0xdf, 0x59, 0x9e, 0xec, 0x89, 0x6d, 0xbf, 0x86, 0x1c, 0x47, 0xdf, 0x42, - 0x1a, 0x9f, 0xb9, 0xa7, 0xf9, 0xca, 0x49, 0x6e, 0x6a, 0x14, 0x73, 0x2a, 0x10, 0xa8, 0xc9, 0x18, - 0xb4, 0xe3, 0x0c, 0x64, 0x97, 0x8c, 0x0e, 0x52, 0x7f, 0x41, 0x82, 0x29, 0x6f, 0xd6, 0x6d, 0xb6, - 0xbc, 0x37, 0xc6, 0xa1, 0xf2, 0x9b, 0x19, 0xd1, 0x1b, 0x8a, 0x3d, 0x3a, 0xf3, 0x01, 0x8d, 0x88, - 0x76, 0x23, 0x76, 0x13, 0x71, 0x2c, 0xa9, 0x31, 0xdc, 0x27, 0xe5, 0x4d, 0x3d, 0x36, 0x37, 0x3b, - 0x96, 0xce, 0x6d, 0x18, 0xf4, 0x9a, 0x42, 0xe1, 0x01, 0xbf, 0xaa, 0xe5, 0xae, 0x1b, 0xa6, 0x19, - 0xc4, 0xcc, 0xd8, 0x97, 0xce, 0xfb, 0xba, 0xc4, 0x86, 0x1d, 0xc3, 0x75, 0xa7, 0xa5, 0x47, 0x68, - 0xf6, 0xf5, 0x30, 0x77, 0xfe, 0x92, 0x8b, 0x1c, 0x9a, 0x8b, 0x16, 0x9b, 0xd5, 0x7a, 0x52, 0x99, - 0x4b, 0x03, 0xe2, 0xc2, 0x93, 0xc5, 0x14, 0x98, 0x4c, 0xd4, 0x2b, 0x43, 0xcc, 0x00, 0x8f, 0x43, - 0xa1, 0x5a, 0x5b, 0x2c, 0x63, 0xff, 0x5e, 0xdf, 0x63, 0x72, 0x4b, 0xfd, 0x55, 0x19, 0x66, 0xb0, - 0x03, 0x9e, 0x8f, 0xc2, 0xb5, 0x02, 0xf3, 0x11, 0xf5, 0x11, 0x61, 0xdf, 0x5f, 0x5c, 0x65, 0xb6, - 0x80, 0x68, 0x41, 0x6f, 0x1a, 0x9d, 0x5e, 0x41, 0xe7, 0xb4, 0x9e, 0xd4, 0x3e, 0x80, 0xc8, 0x7d, - 0x01, 0x79, 0x97, 0x90, 0x03, 0xf0, 0x20, 0xee, 0x0e, 0x0b, 0x95, 0x3f, 0x96, 0x61, 0xda, 0x9b, - 0xa4, 0xf8, 0xa0, 0xd4, 0x38, 0x50, 0x2c, 0xb3, 0x73, 0x29, 0x5c, 0x16, 0xf1, 0x5f, 0x13, 0x35, - 0x92, 0xbf, 0x11, 0x9e, 0xb9, 0x63, 0x11, 0x31, 0xbc, 0x8c, 0x09, 0xbf, 0x77, 0x0a, 0xcd, 0xe7, - 0x07, 0x30, 0x77, 0x58, 0xf0, 0x7d, 0x25, 0x07, 0xf9, 0x8d, 0x2e, 0x46, 0xee, 0x77, 0x64, 0x91, - 0x0b, 0x38, 0xf6, 0x1d, 0xfe, 0xf2, 0xcc, 0xac, 0x8e, 0xd5, 0xd2, 0x3b, 0xeb, 0xe1, 0x29, 0xda, - 0x30, 0x41, 0xb9, 0x83, 0xfa, 0x83, 0x93, 0xd3, 0xe3, 0xd7, 0xc7, 0xde, 0x4d, 0x81, 0x65, 0xc4, - 0x1c, 0xb4, 0xbb, 0x09, 0x8e, 0xb5, 0x0d, 0x47, 0x3f, 0xdf, 0x41, 0x65, 0xb3, 0x65, 0x5f, 0x22, - 0xe2, 0xa0, 0xd3, 0xaa, 0x7d, 0x1f, 0x94, 0xbb, 0x20, 0xe7, 0xb8, 0x97, 0x3a, 0x64, 0x9e, 0xc8, - 0x9e, 0xcb, 0x8b, 0x2c, 0xaa, 0xee, 0x65, 0xd7, 0xc8, 0x5f, 0xac, 0x5b, 0xe7, 0x84, 0x98, 0x5b, - 0xa7, 0xf2, 0x44, 0xc8, 0x5b, 0xb6, 0xb1, 0x65, 0x90, 0xeb, 0xe6, 0xe6, 0xf6, 0x85, 0x60, 0x25, - 0xa6, 0x40, 0x0d, 0x67, 0xd1, 0x68, 0x56, 0xe5, 0xc9, 0x30, 0x65, 0xec, 0xe8, 0x5b, 0xe8, 0x3e, - 0xc3, 0x24, 0x07, 0xd4, 0xe7, 0x6e, 0x3b, 0xb5, 0xef, 0xc8, 0x21, 0xfd, 0xae, 0x85, 0x59, 0xd5, - 0x77, 0x4a, 0xa2, 0x71, 0xe2, 0x70, 0xdd, 0x08, 0xa8, 0x43, 0xdc, 0x5d, 0xcd, 0xc8, 0x41, 0x16, - 0x74, 0x6f, 0x7d, 0x99, 0x50, 0x04, 0xb7, 0x68, 0xb6, 0xd2, 0x1f, 0xbc, 0x3f, 0x23, 0xc1, 0xe4, - 0xa2, 0x75, 0xd1, 0xc4, 0x8a, 0x7e, 0xbb, 0x98, 0xad, 0xdb, 0xe7, 0x60, 0x38, 0x7f, 0x0b, 0x72, - 0xec, 0x29, 0x30, 0x5c, 0x5b, 0xbf, 0xc8, 0x08, 0x18, 0x62, 0x5b, 0x8e, 0xe0, 0xdd, 0xb4, 0x71, - 0xe5, 0xa4, 0x2f, 0xd7, 0xbf, 0x90, 0x21, 0xbb, 0x68, 0x5b, 0x5d, 0xf5, 0x75, 0x99, 0x04, 0x6e, - 0x5e, 0x6d, 0xdb, 0xea, 0x36, 0xf0, 0xe5, 0x92, 0xe1, 0xce, 0x06, 0x9b, 0xa6, 0xdc, 0x0e, 0x93, - 0x5d, 0xcb, 0x31, 0x5c, 0x7f, 0x1a, 0x31, 0x77, 0xdb, 0x63, 0xfa, 0xb6, 0xe6, 0x75, 0x9a, 0x49, - 0x0b, 0xb2, 0x7b, 0xbd, 0x36, 0x16, 0xa1, 0x27, 0x17, 0x4f, 0x8c, 0xfe, 0x05, 0x9b, 0x3d, 0xa9, - 0xea, 0x8b, 0x58, 0x24, 0x9f, 0xca, 0x23, 0xf9, 0xd8, 0x3e, 0x12, 0xb6, 0xad, 0xee, 0x48, 0x1c, - 0x33, 0x5e, 0x12, 0xa0, 0xfa, 0x34, 0x0e, 0xd5, 0x1b, 0x85, 0xca, 0x4c, 0x1f, 0xd1, 0x77, 0x66, - 0x01, 0xb0, 0x99, 0xb1, 0xe1, 0x4d, 0x80, 0xc4, 0x6c, 0xac, 0x9f, 0xcb, 0x32, 0xb2, 0x2c, 0xf2, - 0xb2, 0x7c, 0x7c, 0x84, 0x15, 0x83, 0xc9, 0x47, 0x48, 0xb4, 0x08, 0xb9, 0x5d, 0xef, 0x33, 0x95, - 0xa8, 0x20, 0x09, 0xfc, 0xaa, 0x91, 0x3f, 0xd5, 0x3f, 0xcf, 0x40, 0x0e, 0x27, 0x28, 0xa7, 0x01, - 0xf0, 0xc0, 0x4e, 0x0e, 0x51, 0x66, 0xf0, 0x10, 0xce, 0xa4, 0x60, 0x6d, 0x35, 0xda, 0xf4, 0x33, - 0x31, 0x99, 0xc3, 0x04, 0xef, 0x6f, 0x3c, 0xdc, 0x63, 0x5a, 0xd4, 0x00, 0x60, 0x52, 0xbc, 0xbf, - 0xf1, 0xdb, 0x2a, 0xda, 0x24, 0x71, 0xff, 0xb3, 0x5a, 0x98, 0x10, 0xfc, 0xbd, 0x1a, 0xdc, 0x16, - 0xe9, 0xff, 0x8d, 0x53, 0xbc, 0xc9, 0x30, 0x56, 0xcb, 0x85, 0xb0, 0x88, 0x3c, 0xce, 0xd4, 0x9b, - 0xac, 0xbe, 0x32, 0x50, 0x9b, 0x45, 0x4e, 0x6d, 0x6e, 0x49, 0x20, 0xde, 0xf4, 0x95, 0xe7, 0x4b, - 0x39, 0x98, 0xaa, 0x5a, 0x6d, 0xaa, 0x3b, 0xcc, 0x84, 0xf1, 0x23, 0xb9, 0x44, 0x13, 0xc6, 0x80, - 0x46, 0x84, 0x82, 0xdc, 0xc3, 0x2b, 0x88, 0x18, 0x05, 0x56, 0x3f, 0x94, 0x05, 0xc8, 0x63, 0xed, - 0xdd, 0x7f, 0x0d, 0x61, 0x1c, 0x09, 0x2c, 0x5a, 0x8d, 0xfe, 0xf9, 0x9f, 0x4e, 0xc7, 0xfe, 0x1b, - 0xe4, 0x70, 0x05, 0x63, 0x76, 0x77, 0xf8, 0x8a, 0x4a, 0xf1, 0x15, 0x95, 0xe3, 0x2b, 0x9a, 0xed, - 0xad, 0x68, 0x92, 0x75, 0x80, 0x28, 0x0d, 0x49, 0x5f, 0xc7, 0xff, 0x79, 0x02, 0xa0, 0xaa, 0xef, - 0x19, 0x5b, 0x64, 0x77, 0xf8, 0xb3, 0xfe, 0xfc, 0x87, 0xee, 0xe3, 0xfe, 0x12, 0x33, 0x10, 0xde, - 0x0e, 0x13, 0x74, 0xdc, 0xa3, 0x15, 0xb9, 0x9a, 0xab, 0x48, 0x48, 0x85, 0x98, 0xa5, 0x0f, 0xba, - 0x9a, 0x9f, 0x9f, 0xbb, 0x31, 0x5d, 0xea, 0xb9, 0x31, 0xbd, 0xff, 0x1e, 0x44, 0xc4, 0x3d, 0xea, - 0xea, 0xdb, 0x84, 0x4f, 0x41, 0x31, 0xfc, 0x30, 0x35, 0x8a, 0x68, 0x82, 0x4f, 0x84, 0x09, 0x2b, - 0xd8, 0xd0, 0x96, 0x23, 0xd7, 0xc1, 0x2a, 0xe6, 0xa6, 0xa5, 0xf9, 0x39, 0x05, 0x37, 0xbf, 0x84, - 0xf8, 0x18, 0xcb, 0x41, 0xc3, 0x93, 0xcb, 0x7e, 0x0c, 0x45, 0xaf, 0x1e, 0xe7, 0x0c, 0x77, 0x7b, - 0x15, 0x47, 0x66, 0xfa, 0x29, 0x31, 0x0b, 0x92, 0xc1, 0x5f, 0x4a, 0x86, 0x3f, 0x1f, 0xe7, 0xa8, - 0xce, 0xa3, 0x76, 0x57, 0x14, 0x95, 0xfe, 0xdc, 0x46, 0x00, 0x78, 0x07, 0xe4, 0x09, 0xa3, 0xb4, - 0x13, 0x3d, 0x13, 0x89, 0x5f, 0x40, 0x49, 0xa3, 0x7f, 0xa8, 0x6f, 0x0d, 0x70, 0x3c, 0xcb, 0xe1, - 0xb8, 0x70, 0x20, 0xce, 0x52, 0x87, 0xf4, 0xcc, 0xad, 0x30, 0x41, 0x25, 0xad, 0xcc, 0xb1, 0xad, - 0xb8, 0x70, 0x44, 0x01, 0xc8, 0xaf, 0x59, 0x7b, 0xa8, 0x61, 0x15, 0x32, 0xde, 0xb3, 0xc7, 0x5f, - 0xc3, 0x2a, 0x48, 0xea, 0x4b, 0x27, 0x61, 0x32, 0x08, 0x5e, 0xf7, 0x19, 0x09, 0x0a, 0x25, 0x1b, - 0xe9, 0x2e, 0x5a, 0xb2, 0xad, 0x1d, 0x52, 0x23, 0x71, 0x8f, 0xfa, 0xdf, 0x10, 0x76, 0xf1, 0x08, - 0x82, 0xca, 0xf5, 0x16, 0x16, 0x81, 0x25, 0x59, 0x84, 0x94, 0xfc, 0x45, 0x48, 0xf5, 0xb5, 0x42, - 0x2e, 0x1f, 0xa2, 0xa5, 0xa4, 0xdf, 0xd4, 0x3e, 0x21, 0x41, 0xae, 0xd4, 0xb1, 0x4c, 0xc4, 0x1e, - 0xfb, 0x1c, 0x78, 0xbe, 0xb0, 0xff, 0x4e, 0x84, 0xfa, 0x2c, 0x49, 0xd4, 0xd6, 0x08, 0x05, 0xe0, - 0x95, 0x2d, 0x28, 0x5b, 0xb1, 0x41, 0x2a, 0x96, 0x74, 0xfa, 0x02, 0xfd, 0x9a, 0x04, 0x53, 0x24, - 0x96, 0x58, 0xb1, 0xd3, 0x51, 0x1f, 0x13, 0x0a, 0xb5, 0x4f, 0x00, 0x40, 0xf5, 0x5d, 0xc2, 0xc7, - 0x9a, 0x82, 0x5a, 0x05, 0xb4, 0x13, 0x04, 0x55, 0x4b, 0x76, 0xca, 0x46, 0x6c, 0x2f, 0x6d, 0x20, - 0x43, 0xe9, 0x8b, 0xfa, 0xaf, 0x25, 0xcf, 0x00, 0x30, 0x2f, 0xac, 0xdb, 0x68, 0xcf, 0x40, 0x17, - 0xd5, 0x2b, 0x43, 0x61, 0xef, 0x0f, 0x94, 0xf4, 0x6a, 0xe1, 0x45, 0x1c, 0x86, 0x64, 0xe4, 0x56, - 0xd6, 0x74, 0x27, 0xcc, 0x44, 0x7b, 0xf1, 0xde, 0xe8, 0x55, 0x0c, 0x19, 0x8d, 0xcd, 0x2e, 0xb8, - 0x66, 0x13, 0xcd, 0x45, 0xfa, 0x82, 0x7d, 0xdf, 0x04, 0x4c, 0x6e, 0x98, 0x4e, 0xb7, 0xa3, 0x3b, - 0xdb, 0xea, 0x77, 0x65, 0xc8, 0x93, 0xcb, 0x2f, 0xd5, 0x1f, 0xe1, 0xe2, 0xb1, 0x3c, 0x63, 0x17, - 0xd9, 0xbe, 0x0b, 0x0e, 0x79, 0x09, 0xed, 0x23, 0x89, 0xb1, 0x8f, 0xd4, 0x77, 0xca, 0xa2, 0x93, - 0x54, 0xbf, 0x50, 0x7a, 0xdb, 0x66, 0x74, 0x08, 0x90, 0xae, 0xd1, 0x72, 0x77, 0x6d, 0xe4, 0xf4, - 0x0d, 0x01, 0x12, 0x49, 0x65, 0x9d, 0xfc, 0xa5, 0x05, 0xbf, 0xab, 0x3a, 0x4c, 0xd0, 0xc4, 0x7d, - 0xdb, 0x49, 0xfb, 0x63, 0x16, 0x9c, 0x84, 0xbc, 0x6e, 0xbb, 0x86, 0xe3, 0xd2, 0x0d, 0x56, 0xfa, - 0xe6, 0x75, 0x97, 0xe4, 0x69, 0xc3, 0xee, 0xf8, 0x91, 0x9b, 0x82, 0x04, 0xf5, 0x8f, 0x85, 0xe6, - 0x8f, 0xf1, 0x35, 0x4f, 0x06, 0xf9, 0x7d, 0x43, 0xac, 0x51, 0x5f, 0x0e, 0x97, 0x69, 0xc5, 0x46, - 0xb9, 0x49, 0x02, 0xfd, 0x04, 0x31, 0x7d, 0xda, 0xea, 0x5b, 0x64, 0x66, 0xfd, 0xee, 0x12, 0x37, - 0x46, 0x50, 0x29, 0x86, 0x63, 0x44, 0x90, 0x10, 0xb3, 0x5b, 0xcd, 0x2d, 0xc2, 0xca, 0xe2, 0x8b, - 0xb0, 0x7f, 0x24, 0xbc, 0x9b, 0x14, 0x88, 0x72, 0xc0, 0x1a, 0x60, 0xdc, 0xe5, 0x78, 0xef, 0x11, - 0xda, 0x19, 0x1a, 0x54, 0xd2, 0x21, 0xc2, 0xf6, 0xfb, 0x13, 0x30, 0xb1, 0xac, 0x77, 0x3a, 0xc8, - 0xbe, 0xe4, 0x0d, 0x49, 0x05, 0x9f, 0xc3, 0x35, 0xdd, 0x34, 0x36, 0x91, 0xe3, 0xc6, 0x77, 0x96, - 0x6f, 0x13, 0x0e, 0xbc, 0x4e, 0xcb, 0x98, 0xef, 0xa5, 0x1f, 0x21, 0xf3, 0x9b, 0x21, 0x6b, 0x98, - 0x9b, 0x16, 0xed, 0x32, 0x7b, 0x57, 0xed, 0xfd, 0x9f, 0xf1, 0xd4, 0x05, 0x67, 0x14, 0x8c, 0xbd, - 0x2e, 0xc8, 0x45, 0xfa, 0x3d, 0xe7, 0x1b, 0xb2, 0x30, 0xeb, 0x33, 0x51, 0x31, 0xdb, 0xe8, 0x41, - 0x76, 0x29, 0xe6, 0x57, 0xb3, 0xa2, 0x47, 0x68, 0x7b, 0xeb, 0x83, 0x49, 0x45, 0x88, 0xb4, 0x01, - 0xd0, 0xd2, 0x5d, 0xb4, 0x65, 0xd9, 0x46, 0xd0, 0x1f, 0x3e, 0x29, 0x09, 0xb5, 0x12, 0xf9, 0xfb, - 0x92, 0xc6, 0xd0, 0x51, 0xee, 0x82, 0x69, 0x14, 0xc4, 0x2c, 0xf1, 0x97, 0x6a, 0x62, 0xf1, 0x62, - 0xf3, 0xab, 0x7f, 0x2d, 0x74, 0x52, 0x57, 0xa4, 0x9a, 0xc9, 0x30, 0x6b, 0x0e, 0xd7, 0x86, 0x36, - 0xaa, 0x6b, 0x45, 0xad, 0xbe, 0x52, 0x5c, 0x5d, 0xad, 0x54, 0x97, 0x83, 0x60, 0x59, 0x0a, 0xcc, - 0x2d, 0xd6, 0xce, 0x55, 0x99, 0x68, 0x66, 0x59, 0x75, 0x1d, 0x26, 0x7d, 0x79, 0xf5, 0xf3, 0xc5, - 0x64, 0x65, 0x46, 0x7d, 0x31, 0x99, 0x24, 0xcf, 0x38, 0x33, 0x5a, 0x81, 0x83, 0x0e, 0x7e, 0x56, - 0xff, 0x4c, 0x87, 0x1c, 0x5e, 0x53, 0x57, 0xdf, 0x84, 0xb7, 0x01, 0xbb, 0x1d, 0xbd, 0x85, 0xd4, - 0x9d, 0x04, 0xd6, 0xb8, 0x7f, 0x13, 0x90, 0xb4, 0xef, 0x26, 0x20, 0xfc, 0x48, 0xad, 0xbe, 0xe3, - 0xfd, 0xd6, 0xf1, 0x35, 0x92, 0x85, 0x3f, 0xd4, 0x1a, 0xbb, 0xbb, 0x42, 0x96, 0xff, 0x29, 0x9b, - 0x11, 0x2a, 0x19, 0xcd, 0x53, 0x32, 0x4b, 0x54, 0x6c, 0x1f, 0x26, 0x8e, 0xa3, 0xf4, 0x5b, 0xfc, - 0x17, 0xb2, 0x90, 0xab, 0x77, 0x3b, 0x86, 0xab, 0xfe, 0x96, 0x34, 0x12, 0xcc, 0xc8, 0xed, 0x4d, - 0xf2, 0xc0, 0xdb, 0x9b, 0xc2, 0x5d, 0xd7, 0xac, 0xc0, 0xae, 0x6b, 0x03, 0x3d, 0xe8, 0xf2, 0xbb, - 0xae, 0xb7, 0xd3, 0x80, 0x97, 0x64, 0xcf, 0xf6, 0xb1, 0x7d, 0x44, 0x8a, 0xab, 0xd5, 0x27, 0x92, - 0xea, 0x99, 0x5b, 0x69, 0x40, 0x47, 0x80, 0xfc, 0x42, 0xad, 0xd1, 0xa8, 0xad, 0x15, 0x8e, 0xe0, - 0x48, 0x60, 0xb5, 0x75, 0x12, 0x5e, 0xab, 0x52, 0xad, 0x96, 0xb5, 0x82, 0x84, 0x43, 0x4c, 0x56, - 0x1a, 0xab, 0xe5, 0x82, 0xcc, 0x5f, 0xe5, 0x11, 0x6b, 0x7e, 0xf3, 0x65, 0xa7, 0xa9, 0x5e, 0x62, - 0x86, 0x78, 0x34, 0x3f, 0xe9, 0x2b, 0xd7, 0xaf, 0xcb, 0x90, 0x5b, 0x43, 0xf6, 0x16, 0x52, 0x9f, - 0x91, 0x60, 0x93, 0x6f, 0xd3, 0xb0, 0x1d, 0x12, 0x90, 0x33, 0xdc, 0xe4, 0x63, 0xd3, 0x94, 0xeb, - 0x60, 0xd6, 0x41, 0x2d, 0xcb, 0x6c, 0xfb, 0x99, 0x48, 0x7f, 0xc4, 0x27, 0xaa, 0x2f, 0x4e, 0x08, - 0x19, 0x66, 0x74, 0x24, 0x3b, 0x75, 0x49, 0x80, 0xe9, 0x57, 0x6a, 0xfa, 0xc0, 0x7c, 0x4b, 0xf6, - 0x7e, 0xea, 0x5e, 0x52, 0x5f, 0x2c, 0xbc, 0xfb, 0x7a, 0x13, 0xe4, 0xcf, 0xfb, 0x91, 0xdd, 0xe5, - 0xc8, 0xfe, 0x98, 0xe6, 0x51, 0x16, 0xe0, 0x98, 0x83, 0x3a, 0xa8, 0xe5, 0xa2, 0xb6, 0xd7, 0x74, - 0xb5, 0x81, 0x9d, 0xc2, 0xfe, 0xec, 0xea, 0x5f, 0xb2, 0x00, 0xde, 0xc9, 0x03, 0x78, 0x7d, 0x1f, - 0x51, 0x7a, 0x15, 0x8a, 0xb6, 0x95, 0xbd, 0x6a, 0xd4, 0x3b, 0x56, 0xb0, 0x28, 0xee, 0xbf, 0x7b, - 0xdf, 0xb6, 0xdd, 0x9d, 0x0e, 0xfe, 0x46, 0x0f, 0x18, 0xf8, 0xef, 0xca, 0x3c, 0x4c, 0xe8, 0xe6, - 0x25, 0xfc, 0x29, 0x1b, 0x53, 0x6b, 0x3f, 0x93, 0xfa, 0xd2, 0x00, 0xf9, 0xbb, 0x39, 0xe4, 0x1f, - 0x2f, 0xc6, 0x6e, 0xfa, 0xc0, 0xff, 0xec, 0x04, 0xe4, 0xd6, 0x75, 0xc7, 0x45, 0xea, 0xff, 0x2d, - 0x8b, 0x22, 0x7f, 0x3d, 0xcc, 0x6d, 0x5a, 0xad, 0x5d, 0x07, 0xb5, 0xf9, 0x46, 0xd9, 0x93, 0x3a, - 0x0a, 0xcc, 0x95, 0x1b, 0xa1, 0xe0, 0x27, 0x52, 0xb2, 0xfe, 0x36, 0xfc, 0xbe, 0x74, 0x7c, 0x31, - 0x84, 0xb3, 0xae, 0xdb, 0x6e, 0x6d, 0x13, 0xa7, 0x05, 0x17, 0x43, 0xb0, 0x89, 0x1c, 0xf4, 0xf9, - 0x18, 0xe8, 0x27, 0xa2, 0xa1, 0x9f, 0x14, 0x80, 0x5e, 0x29, 0xc2, 0xe4, 0xa6, 0xd1, 0x41, 0xf8, - 0x87, 0x29, 0xfc, 0x43, 0xbf, 0x31, 0x09, 0xcb, 0x3e, 0x18, 0x93, 0x96, 0x8c, 0x0e, 0xd2, 0x82, - 0xdf, 0xfc, 0x89, 0x0c, 0x84, 0x13, 0x99, 0x55, 0xe2, 0x4f, 0xeb, 0x19, 0x5e, 0xa6, 0xbe, 0x83, - 0xfc, 0xc5, 0x37, 0x93, 0x1e, 0x6e, 0x69, 0xeb, 0xae, 0x8e, 0xc1, 0x98, 0xd1, 0xf0, 0x33, 0xef, - 0x17, 0x22, 0xf7, 0xfa, 0x85, 0x3c, 0x47, 0x4e, 0xd6, 0x23, 0xfa, 0xcc, 0x46, 0xb4, 0xa8, 0xf3, - 0x3e, 0x40, 0xc4, 0x52, 0x0c, 0xde, 0x3d, 0x60, 0x5a, 0xba, 0x8d, 0xdc, 0x75, 0xd6, 0x13, 0x23, - 0xa7, 0xf1, 0x89, 0xd8, 0x95, 0xcf, 0xa9, 0xeb, 0x3b, 0xe4, 0x72, 0x88, 0x92, 0xf7, 0x8d, 0xba, - 0x68, 0xed, 0x4b, 0x0f, 0xfb, 0xdf, 0xdc, 0xa8, 0xfb, 0xdf, 0x7e, 0x75, 0x4c, 0xbf, 0x19, 0xbe, - 0x3c, 0x0b, 0x72, 0x69, 0xd7, 0x7d, 0x54, 0x77, 0xbf, 0xdf, 0x13, 0xf6, 0x73, 0xa1, 0xfd, 0xd9, - 0xae, 0x7b, 0xb8, 0xbd, 0x6f, 0x42, 0x2d, 0x11, 0xf3, 0xa7, 0x89, 0xaa, 0x5b, 0xfa, 0x3a, 0xf2, - 0x3a, 0x39, 0x70, 0xb0, 0x7c, 0x28, 0x73, 0x70, 0xd3, 0x5c, 0x25, 0xfd, 0x13, 0xd3, 0x33, 0x04, - 0xef, 0x7e, 0xc7, 0x93, 0xe5, 0xe2, 0x9b, 0xe2, 0xed, 0x75, 0x2c, 0xca, 0x19, 0x8d, 0xbc, 0xa8, - 0xbf, 0x2d, 0xec, 0x76, 0x4e, 0xc4, 0x16, 0xeb, 0x4a, 0x98, 0xcc, 0xa6, 0x12, 0xbb, 0x1b, 0x3b, - 0xa6, 0xd8, 0xf4, 0x01, 0xfb, 0x06, 0xeb, 0x2a, 0x58, 0x3c, 0x30, 0x62, 0xea, 0xcb, 0x84, 0xb7, - 0xa3, 0x48, 0xb5, 0x07, 0xac, 0x17, 0x26, 0x93, 0xb7, 0xd8, 0x66, 0x55, 0x6c, 0xc1, 0xe9, 0x4b, - 0xfc, 0xeb, 0x32, 0xe4, 0xc9, 0x16, 0xa4, 0xfa, 0x1a, 0xe1, 0x26, 0xe2, 0xf5, 0x46, 0xbc, 0x0b, - 0x61, 0xf0, 0x9e, 0x64, 0xcd, 0x81, 0x73, 0x35, 0xcc, 0x26, 0x72, 0x35, 0xe4, 0xcf, 0x71, 0x0a, - 0xb4, 0x23, 0x52, 0xc7, 0x94, 0xa7, 0x93, 0x49, 0x5a, 0x58, 0x5f, 0x86, 0xd2, 0xc7, 0xfb, 0xe7, - 0x73, 0x30, 0x43, 0x8a, 0x3e, 0x67, 0xb4, 0xb7, 0x90, 0xab, 0xbe, 0x45, 0xfa, 0xfe, 0x41, 0x5d, - 0xa9, 0xc2, 0xcc, 0x45, 0xcc, 0x36, 0xb9, 0xc5, 0x8a, 0xae, 0x5c, 0xdc, 0x18, 0xbb, 0xee, 0x41, - 0xea, 0xe9, 0xdf, 0x7b, 0xc5, 0xfd, 0xef, 0xc9, 0x98, 0x2c, 0xf8, 0x13, 0x07, 0xae, 0x3c, 0x36, - 0xb2, 0xd8, 0x24, 0xe5, 0x24, 0xe4, 0xf7, 0x0c, 0x74, 0xb1, 0xd2, 0xa6, 0xd6, 0x2d, 0x7d, 0x53, - 0xff, 0x44, 0x78, 0xdf, 0x96, 0x85, 0x9b, 0xf2, 0x92, 0xae, 0x16, 0x8a, 0xed, 0xde, 0x0e, 0x64, - 0x6b, 0x0c, 0x67, 0x8a, 0xf9, 0xbb, 0xa7, 0x4b, 0x09, 0x14, 0x31, 0xca, 0x70, 0xe6, 0x43, 0x79, - 0xc4, 0x9e, 0x58, 0x21, 0x02, 0x18, 0xf1, 0xb5, 0xd4, 0x62, 0xf1, 0x25, 0x06, 0x14, 0x9d, 0xbe, - 0xe4, 0x5f, 0x29, 0xc3, 0x54, 0x1d, 0xb9, 0x4b, 0x06, 0xea, 0xb4, 0x1d, 0xd5, 0x3e, 0xb8, 0x69, - 0x74, 0x33, 0xe4, 0x37, 0x31, 0xb1, 0x41, 0xe7, 0x16, 0x68, 0x36, 0xf5, 0xe5, 0x92, 0xe8, 0x8e, - 0x30, 0x5d, 0x7d, 0xf3, 0xb9, 0x1d, 0x09, 0x4c, 0x62, 0x1e, 0xbd, 0xf1, 0x25, 0x8f, 0x21, 0x18, - 0xb8, 0x0c, 0x33, 0xf4, 0xb2, 0xda, 0x62, 0xc7, 0xd8, 0x32, 0xd5, 0xdd, 0x11, 0xb4, 0x10, 0xe5, - 0x16, 0xc8, 0xe9, 0x1e, 0x35, 0xba, 0xf5, 0xaa, 0xf6, 0xed, 0x3c, 0x71, 0x79, 0x1a, 0xc9, 0x98, - 0x20, 0xf4, 0x6e, 0xa8, 0xd8, 0x3e, 0xcf, 0x63, 0x0c, 0xbd, 0x3b, 0xb0, 0xf0, 0xf4, 0x11, 0xfb, - 0xa2, 0x0c, 0xc7, 0x29, 0x03, 0x67, 0x91, 0xed, 0x1a, 0x2d, 0xbd, 0x43, 0x90, 0x7b, 0x7e, 0x66, - 0x14, 0xd0, 0xad, 0xc0, 0xec, 0x1e, 0x4b, 0x96, 0x42, 0x78, 0xa6, 0x2f, 0x84, 0x1c, 0x03, 0x1a, - 0xff, 0x63, 0x82, 0x10, 0xa6, 0x9c, 0x54, 0x39, 0x9a, 0x63, 0x0c, 0x61, 0x2a, 0xcc, 0x44, 0xfa, - 0x10, 0xbf, 0x88, 0x86, 0xe6, 0x09, 0xbb, 0xcf, 0xcf, 0x0a, 0x63, 0xbb, 0x01, 0xd3, 0x18, 0x4b, - 0xf2, 0x23, 0x5d, 0x86, 0x88, 0x51, 0xe2, 0xa0, 0xdf, 0xa1, 0x97, 0x2c, 0x06, 0xff, 0x6a, 0x2c, - 0x1d, 0xf5, 0x1c, 0x40, 0xf8, 0x89, 0xed, 0xa4, 0x33, 0x51, 0x9d, 0xb4, 0x24, 0xd6, 0x49, 0xbf, - 0x5a, 0x38, 0x58, 0x4a, 0x7f, 0xb6, 0x0f, 0xae, 0x1e, 0x62, 0x61, 0x32, 0x06, 0x97, 0x9e, 0xbe, - 0x5e, 0xbc, 0x94, 0xea, 0xc5, 0xe2, 0x6e, 0xb7, 0x63, 0xb4, 0xbc, 0xf9, 0xd4, 0x07, 0x47, 0x32, - 0x9f, 0x62, 0xfb, 0x03, 0xb9, 0xa7, 0x3f, 0x38, 0x80, 0x25, 0x7d, 0x03, 0x1c, 0x25, 0x45, 0x94, - 0x02, 0xb6, 0x72, 0x24, 0x14, 0x44, 0x4f, 0x32, 0x1f, 0x97, 0x50, 0x50, 0x09, 0x02, 0x21, 0x0c, - 0xb1, 0xf4, 0x99, 0xcc, 0xd8, 0x4d, 0xaa, 0x20, 0x51, 0x9c, 0x8d, 0xc1, 0x2d, 0x34, 0x4b, 0xac, - 0xdd, 0x0d, 0x7c, 0x0f, 0xa6, 0xfa, 0xf9, 0xec, 0x28, 0x46, 0x84, 0x7b, 0x20, 0x8b, 0x5d, 0xdc, - 0xe5, 0xc8, 0x25, 0x8d, 0xb0, 0xc8, 0xf0, 0x92, 0x52, 0xf4, 0xa0, 0xbb, 0x72, 0x44, 0xc3, 0x7f, - 0x2a, 0x37, 0xc2, 0xd1, 0xf3, 0x7a, 0xeb, 0xc2, 0x96, 0x6d, 0xed, 0xe2, 0x1b, 0x03, 0x2d, 0x7a, - 0xf5, 0x20, 0xbe, 0xc2, 0x95, 0xff, 0xa0, 0xdc, 0xe6, 0x9b, 0x0e, 0xb9, 0x41, 0xa6, 0xc3, 0xca, - 0x11, 0x6a, 0x3c, 0x28, 0xb7, 0x06, 0x9d, 0x4e, 0x3e, 0xb6, 0xd3, 0x59, 0x39, 0xe2, 0x77, 0x3b, - 0xca, 0x22, 0x4c, 0xb6, 0x8d, 0x3d, 0xbc, 0x55, 0x8d, 0x67, 0x5d, 0x83, 0x8e, 0x2e, 0x2f, 0x1a, - 0x7b, 0x64, 0x63, 0x7b, 0xe5, 0x88, 0x16, 0xfc, 0xa9, 0x2c, 0xc3, 0x14, 0xde, 0x16, 0xc0, 0x64, - 0x26, 0x13, 0x1d, 0x4b, 0x5e, 0x39, 0xa2, 0x85, 0xff, 0x7a, 0xd6, 0x47, 0x16, 0x9f, 0xfd, 0xb8, - 0xdb, 0xdf, 0x6e, 0xcf, 0x24, 0xda, 0x6e, 0xf7, 0x64, 0x41, 0x36, 0xdc, 0x4f, 0x42, 0xae, 0x85, - 0x25, 0x2c, 0x51, 0x09, 0x93, 0x57, 0xe5, 0x4e, 0xc8, 0xee, 0xe8, 0xb6, 0x3f, 0x79, 0xbe, 0x7e, - 0x30, 0xdd, 0x35, 0xdd, 0xbe, 0xe0, 0x21, 0xe8, 0xfd, 0xb5, 0x30, 0x01, 0x39, 0x2c, 0xb8, 0xe0, - 0x41, 0x7d, 0x5d, 0x96, 0x98, 0x21, 0x25, 0xcb, 0xf4, 0x86, 0xfd, 0x86, 0xe5, 0x1f, 0x90, 0xf9, - 0x93, 0xcc, 0x68, 0x2c, 0xc8, 0xcb, 0x98, 0x80, 0xc1, 0xa6, 0xf1, 0x8c, 0x5d, 0x74, 0x1f, 0xba, - 0x44, 0x97, 0x44, 0xfb, 0x7d, 0xea, 0xb9, 0x4f, 0x3e, 0xdb, 0x7b, 0x9f, 0x7c, 0xb8, 0x7c, 0x90, - 0x1b, 0xec, 0xa8, 0xf2, 0x97, 0x43, 0x98, 0x2e, 0xbd, 0x82, 0x88, 0x9e, 0x81, 0x77, 0x0c, 0x93, - 0xa9, 0xb3, 0xff, 0x9a, 0xb0, 0x53, 0x4a, 0x6a, 0xd4, 0x0c, 0x60, 0x2f, 0xfd, 0xbe, 0xe9, 0x0f, - 0xb3, 0x24, 0x66, 0x2a, 0x39, 0x85, 0xc1, 0xdf, 0xd1, 0xab, 0x7e, 0x7c, 0x24, 0x4a, 0xd3, 0x67, - 0xc0, 0x91, 0xfb, 0x0e, 0x38, 0xfb, 0x0e, 0x29, 0x67, 0x07, 0x1c, 0x52, 0xce, 0x25, 0x5b, 0x39, - 0x7c, 0x2f, 0xab, 0x3f, 0xeb, 0xbc, 0xfe, 0xdc, 0x11, 0x01, 0x50, 0x3f, 0xb9, 0x8c, 0xc4, 0xbe, - 0x79, 0x53, 0xa0, 0x29, 0x75, 0x4e, 0x53, 0xee, 0x1e, 0x9e, 0x91, 0xf4, 0xb5, 0xe5, 0xdd, 0x59, - 0xb8, 0x2c, 0x64, 0xa6, 0x8a, 0x2e, 0x52, 0x45, 0xf9, 0xcc, 0x48, 0x14, 0x25, 0x79, 0x0c, 0x84, - 0xb4, 0x35, 0xe6, 0xcf, 0x85, 0xcf, 0x0e, 0xf5, 0x02, 0x15, 0xc8, 0x26, 0x42, 0x59, 0x4e, 0x42, - 0x9e, 0xf4, 0x30, 0x14, 0x1a, 0xfa, 0x96, 0xb0, 0xbb, 0x11, 0x3b, 0x71, 0x24, 0xca, 0xdb, 0x18, - 0xf4, 0x87, 0xae, 0x6b, 0x34, 0x76, 0x6d, 0xb3, 0x62, 0xba, 0x96, 0xfa, 0x33, 0x23, 0x51, 0x9c, - 0xc0, 0x1b, 0x4e, 0x1e, 0xc6, 0x1b, 0x6e, 0xa8, 0x55, 0x0e, 0xbf, 0x06, 0x87, 0xb2, 0xca, 0x11, - 0x51, 0x78, 0xfa, 0xf8, 0xbd, 0x51, 0x86, 0x93, 0x74, 0xb2, 0xb5, 0xc0, 0x5b, 0x88, 0xea, 0xfd, - 0xa3, 0x00, 0xf2, 0xb8, 0x6f, 0x26, 0xd1, 0x9b, 0x21, 0xf1, 0x0b, 0x7f, 0x52, 0x2a, 0xf6, 0x4e, - 0x1c, 0x6e, 0x3a, 0xd8, 0xc3, 0xe1, 0x48, 0x90, 0x12, 0xbb, 0x0a, 0x27, 0x01, 0x1b, 0xe9, 0x63, - 0xf6, 0x42, 0x19, 0xf2, 0xe4, 0x9c, 0x96, 0xba, 0x91, 0x8a, 0xc3, 0x04, 0x1f, 0xe5, 0x59, 0x60, - 0x47, 0x8e, 0x70, 0x93, 0xda, 0x19, 0xb6, 0x24, 0x7b, 0x71, 0x7d, 0x59, 0x19, 0x83, 0x0b, 0xa1, - 0x04, 0xd3, 0x75, 0xe4, 0x96, 0x74, 0xdb, 0x36, 0xf4, 0xad, 0x51, 0x79, 0x7c, 0x8b, 0x7a, 0x0f, - 0xab, 0xdf, 0xce, 0x88, 0x9e, 0xa7, 0x09, 0x16, 0xc2, 0x7d, 0x56, 0x23, 0x62, 0x09, 0x3e, 0x2c, - 0x74, 0x66, 0x66, 0x10, 0xb5, 0x31, 0x78, 0x6c, 0x4b, 0x30, 0xe1, 0x9f, 0xc5, 0xbb, 0x99, 0x3b, - 0x9f, 0xb9, 0xed, 0xee, 0xf8, 0xc7, 0x60, 0xf0, 0xf3, 0xfe, 0x33, 0x60, 0xea, 0x4b, 0x12, 0x3a, - 0xca, 0xc7, 0x1f, 0x24, 0x4c, 0xd6, 0xc6, 0x92, 0xb8, 0xc3, 0x1f, 0xd6, 0xd1, 0xc1, 0x77, 0x4d, - 0xd0, 0xe5, 0xc8, 0x55, 0xdd, 0x45, 0x0f, 0xaa, 0x9f, 0x95, 0x61, 0xa2, 0x8e, 0x5c, 0x6f, 0xbc, - 0xe5, 0x2e, 0x84, 0x1e, 0x56, 0xc3, 0x15, 0x66, 0xc5, 0x63, 0x8a, 0xae, 0x61, 0xdc, 0x0b, 0x53, - 0x5d, 0xdb, 0x6a, 0x21, 0xc7, 0xa1, 0xab, 0x17, 0xac, 0xa3, 0x5a, 0xbf, 0xd1, 0x1f, 0xb3, 0x36, - 0xbf, 0xee, 0xff, 0xa3, 0x85, 0xbf, 0x27, 0x35, 0x03, 0x08, 0x25, 0x5a, 0xc1, 0x71, 0x9b, 0x01, - 0x71, 0x85, 0xa7, 0x0f, 0xf4, 0xa7, 0x64, 0x98, 0xa9, 0x23, 0x37, 0x90, 0x62, 0x82, 0x4d, 0x8e, - 0x68, 0x78, 0x39, 0x28, 0xe5, 0x83, 0x41, 0x29, 0x7e, 0x9d, 0x2a, 0x2f, 0xcd, 0x80, 0xd8, 0x18, - 0xaf, 0x53, 0x15, 0xe3, 0x60, 0x0c, 0xc7, 0xd7, 0x1e, 0x0b, 0x53, 0x98, 0x17, 0xdc, 0x60, 0x7f, - 0x31, 0x1b, 0x36, 0xde, 0xcf, 0xa5, 0xd4, 0x78, 0xef, 0x82, 0xdc, 0x8e, 0x6e, 0x5f, 0x70, 0x70, - 0xc3, 0x9d, 0x16, 0x31, 0xdb, 0xd7, 0xbc, 0xec, 0x1a, 0xf9, 0xab, 0xbf, 0x9f, 0x66, 0x2e, 0x99, - 0x9f, 0xe6, 0xc3, 0x52, 0xa2, 0x91, 0x90, 0xcc, 0x1d, 0x46, 0xd8, 0xe4, 0x13, 0x8c, 0x9b, 0x31, - 0x65, 0xa7, 0xaf, 0x1c, 0xcf, 0x97, 0x61, 0xd2, 0x1b, 0xb7, 0xb1, 0x3d, 0x7e, 0xee, 0xe0, 0xea, - 0xd0, 0xdf, 0xd0, 0x4f, 0xd8, 0x03, 0xfb, 0x12, 0x19, 0x9d, 0x79, 0x9f, 0xa0, 0x07, 0x8e, 0x2b, - 0x3c, 0x7d, 0x3c, 0xde, 0x4c, 0xf0, 0xc0, 0xed, 0x41, 0x7d, 0x95, 0x0c, 0xf2, 0x32, 0x72, 0xc7, - 0x6d, 0x45, 0xbe, 0x5e, 0x38, 0xc4, 0x11, 0x27, 0x30, 0xcc, 0xf3, 0xfc, 0x32, 0x1a, 0x4d, 0x03, - 0x12, 0x8b, 0x6d, 0x24, 0xc4, 0x40, 0xfa, 0xa8, 0xbd, 0x9d, 0xa0, 0x46, 0x36, 0x17, 0x7e, 0x7a, - 0x04, 0xbd, 0xea, 0x78, 0x17, 0x3e, 0x7c, 0x01, 0x62, 0x1a, 0x87, 0xd5, 0xde, 0xfa, 0x15, 0x3e, - 0x96, 0xeb, 0x4b, 0xc1, 0x6b, 0xec, 0xdb, 0xa8, 0x75, 0x01, 0xb5, 0xd9, 0xeb, 0xe0, 0x86, 0x85, - 0xee, 0x14, 0x4c, 0xb4, 0x08, 0x35, 0x0c, 0xde, 0xa4, 0xe6, 0xbf, 0x26, 0xb8, 0x8b, 0x9f, 0xef, - 0x88, 0xc8, 0xef, 0x63, 0xbc, 0x8b, 0x5f, 0xa0, 0xf8, 0x31, 0x98, 0x2d, 0x64, 0x96, 0x51, 0x69, - 0x59, 0xa6, 0xfa, 0x5f, 0x0f, 0x0e, 0xcb, 0x55, 0x30, 0x65, 0xb4, 0x2c, 0x13, 0x87, 0xa1, 0xf0, - 0x0f, 0x01, 0x05, 0x09, 0xfe, 0xd7, 0xf2, 0x8e, 0xf5, 0x80, 0x41, 0x77, 0xcd, 0xc3, 0x84, 0x61, - 0x8d, 0x09, 0x8f, 0xf5, 0xc3, 0x32, 0x26, 0xfa, 0x94, 0x9d, 0x3e, 0x64, 0x1f, 0x0a, 0xbd, 0xdb, - 0x48, 0x57, 0xf8, 0xa8, 0x58, 0x05, 0x1e, 0x66, 0x38, 0x63, 0x6b, 0x71, 0x28, 0xc3, 0x59, 0x0c, - 0x03, 0x63, 0xb8, 0xb1, 0x22, 0xc4, 0x31, 0xf5, 0x35, 0xe0, 0x03, 0xa0, 0x33, 0x3a, 0xf3, 0x70, - 0x48, 0x74, 0x0e, 0xc7, 0x44, 0x7c, 0x0f, 0x0d, 0x91, 0x49, 0x2d, 0x1e, 0xf5, 0xbf, 0x8d, 0x02, - 0x9c, 0x3b, 0x86, 0xf1, 0x57, 0x20, 0xde, 0x0a, 0xea, 0x6b, 0x25, 0xd1, 0x10, 0x28, 0xfb, 0x24, - 0xe8, 0x51, 0x19, 0x09, 0x82, 0xaf, 0x16, 0x8a, 0x4d, 0x22, 0x52, 0x7e, 0xfa, 0x00, 0x3e, 0x4f, - 0x86, 0x39, 0xec, 0x23, 0xd0, 0x41, 0xba, 0x4d, 0x3a, 0xca, 0x91, 0x38, 0xca, 0xbf, 0x59, 0x38, - 0xc0, 0x0f, 0x2f, 0x87, 0x90, 0x8f, 0x91, 0x40, 0x21, 0x16, 0xdd, 0x47, 0x90, 0x85, 0xb1, 0x6c, - 0xa3, 0x14, 0x02, 0x16, 0xa8, 0x8a, 0x8f, 0x06, 0x8f, 0x84, 0x1e, 0xb9, 0xbc, 0x30, 0xfc, 0xc6, - 0x36, 0x66, 0x8f, 0x5c, 0x11, 0x26, 0xd2, 0xc7, 0xe4, 0x55, 0xb7, 0xd0, 0x05, 0xe7, 0x86, 0x7e, - 0xbe, 0x83, 0xd4, 0x97, 0x65, 0x83, 0x13, 0x6d, 0x9f, 0x1a, 0x89, 0x07, 0xe6, 0x01, 0x02, 0xe2, - 0x2b, 0x90, 0xb5, 0xad, 0x8b, 0x64, 0x69, 0x6b, 0x56, 0xc3, 0xcf, 0xe4, 0x7a, 0xca, 0xce, 0xee, - 0x8e, 0x49, 0x4e, 0x86, 0xce, 0x6a, 0xfe, 0xab, 0x72, 0x1d, 0xcc, 0x5e, 0x34, 0xdc, 0xed, 0x15, - 0xa4, 0xb7, 0x91, 0xad, 0x59, 0x17, 0xb1, 0xc7, 0xdc, 0xa4, 0xc6, 0x27, 0xf2, 0xfe, 0x2b, 0x02, - 0xf6, 0xa5, 0x27, 0x94, 0xf1, 0x1c, 0x7f, 0x4b, 0x62, 0x79, 0x46, 0x73, 0x95, 0xbe, 0xc2, 0xbc, - 0x43, 0x86, 0x29, 0xcd, 0xba, 0x48, 0x95, 0xe4, 0xff, 0x38, 0x5c, 0x1d, 0x49, 0x3c, 0xd1, 0xc3, - 0x92, 0x0b, 0xd8, 0x1f, 0xfb, 0x44, 0x2f, 0xb6, 0xf8, 0xb1, 0x9c, 0x5c, 0x9a, 0xd1, 0xac, 0x8b, - 0x75, 0xe4, 0x92, 0x16, 0xa1, 0x36, 0x47, 0xe4, 0x64, 0x6d, 0x38, 0x84, 0x20, 0x9d, 0x87, 0x07, - 0xef, 0x49, 0x77, 0x11, 0x02, 0x01, 0x05, 0x2c, 0x8e, 0x7b, 0x17, 0x61, 0x20, 0x07, 0x63, 0x88, - 0x91, 0x22, 0xc3, 0xb4, 0x66, 0x5d, 0xf4, 0x86, 0x86, 0x25, 0xa3, 0xd3, 0x19, 0xcd, 0x08, 0x99, - 0xd4, 0xf8, 0xf7, 0xc5, 0xe0, 0x73, 0x31, 0x76, 0xe3, 0x7f, 0x00, 0x03, 0xe9, 0xc3, 0xf0, 0x1c, - 0xd2, 0x58, 0xfc, 0x11, 0xda, 0x1c, 0x0d, 0x0e, 0xc3, 0x36, 0x88, 0x80, 0x8d, 0x43, 0x6b, 0x10, - 0x51, 0x1c, 0x8c, 0x65, 0xe7, 0x64, 0xae, 0x84, 0x87, 0xf9, 0xd1, 0xb6, 0x89, 0xb7, 0x26, 0x73, - 0x4d, 0xa4, 0xc3, 0x2e, 0xc7, 0xc8, 0x48, 0xd0, 0x48, 0xe0, 0x82, 0x28, 0xc0, 0x43, 0xfa, 0x78, - 0xbc, 0x5f, 0x86, 0x19, 0xc2, 0xc2, 0xa3, 0xc4, 0x0a, 0x18, 0xaa, 0x51, 0xb1, 0x35, 0x38, 0x9c, - 0x46, 0x15, 0xc3, 0xc1, 0x58, 0x6e, 0x05, 0xf5, 0xec, 0xb8, 0x21, 0x8e, 0x8f, 0x47, 0x21, 0x38, - 0xb4, 0x31, 0x36, 0xc2, 0x23, 0xe4, 0xc3, 0x18, 0x63, 0x87, 0x74, 0x8c, 0xfc, 0x39, 0x41, 0x2b, - 0x1a, 0x25, 0x06, 0x07, 0x68, 0x0a, 0x23, 0x84, 0x61, 0xc8, 0xa6, 0x70, 0x48, 0x48, 0x7c, 0x49, - 0x06, 0x20, 0x0c, 0xac, 0x59, 0x7b, 0xf8, 0x32, 0x9f, 0x11, 0x74, 0x67, 0xbd, 0x6e, 0xf5, 0xf2, - 0x00, 0xb7, 0xfa, 0x84, 0x21, 0x5c, 0x92, 0xae, 0x04, 0x32, 0x52, 0xf6, 0x2a, 0x39, 0xf6, 0x95, - 0xc0, 0xf8, 0xf2, 0xd3, 0xc7, 0xf8, 0x11, 0x62, 0xcd, 0x85, 0x07, 0x4c, 0x7f, 0x73, 0x24, 0x28, - 0x33, 0xb3, 0x7f, 0x99, 0x9f, 0xfd, 0x1f, 0x00, 0xdb, 0x61, 0x6d, 0xc4, 0x41, 0x07, 0x47, 0xd3, - 0xb7, 0x11, 0x0f, 0xef, 0x80, 0xe8, 0x4f, 0x67, 0xe1, 0x28, 0xed, 0x44, 0xbe, 0x1f, 0x20, 0x4e, - 0x78, 0x0e, 0x8f, 0xeb, 0x24, 0x07, 0xa0, 0x3c, 0xaa, 0x05, 0xa9, 0x24, 0x4b, 0x99, 0x02, 0xec, - 0x8d, 0x65, 0x75, 0x23, 0x5f, 0x7e, 0xb0, 0xab, 0x9b, 0x6d, 0xf1, 0x70, 0xbf, 0x03, 0x80, 0xf7, - 0xd7, 0x1a, 0x65, 0x7e, 0xad, 0xb1, 0xcf, 0xca, 0x64, 0xe2, 0x9d, 0x6b, 0x2c, 0x32, 0xc2, 0xee, - 0xd8, 0x77, 0xae, 0xa3, 0xcb, 0x4e, 0x1f, 0xa5, 0xb7, 0xca, 0x90, 0xad, 0x5b, 0xb6, 0xab, 0x3e, - 0x37, 0x49, 0xeb, 0x24, 0x92, 0x0f, 0x41, 0xf2, 0xdf, 0x95, 0x12, 0x77, 0x4b, 0xf3, 0xcd, 0xf1, - 0x47, 0x9d, 0x75, 0x57, 0xc7, 0x5e, 0xdd, 0x5e, 0xf9, 0xcc, 0x75, 0xcd, 0x49, 0xe3, 0xe9, 0x10, - 0xf9, 0xd5, 0xa3, 0x0f, 0x60, 0xa4, 0x16, 0x4f, 0x27, 0xb2, 0xe4, 0xf4, 0x71, 0x7b, 0xc5, 0x51, - 0xea, 0xdb, 0xba, 0x64, 0x74, 0x90, 0xfa, 0x5c, 0xe2, 0x32, 0x52, 0xd5, 0x77, 0x90, 0xf8, 0x91, - 0x98, 0x58, 0xd7, 0x56, 0x1c, 0x5f, 0x56, 0x0e, 0xe3, 0xcb, 0x26, 0x6d, 0x50, 0xe4, 0x00, 0x3a, - 0x61, 0x69, 0xdc, 0x0d, 0x2a, 0xa6, 0xec, 0xb1, 0xc4, 0xe9, 0x3c, 0x56, 0x47, 0x2e, 0x31, 0x2a, - 0x6b, 0xfe, 0x0d, 0x2c, 0x3f, 0x39, 0x92, 0x88, 0x9d, 0xc1, 0x05, 0x2f, 0x72, 0xcf, 0x05, 0x2f, - 0xef, 0x60, 0xc1, 0x59, 0xe3, 0xc1, 0xf9, 0xd1, 0x68, 0x01, 0xf1, 0x4c, 0x8e, 0x04, 0xa6, 0xd7, - 0x07, 0x30, 0xad, 0x73, 0x30, 0xdd, 0x39, 0x24, 0x17, 0xe9, 0x03, 0xf6, 0xcb, 0x39, 0x38, 0x4a, - 0x26, 0xfd, 0x45, 0xb3, 0x4d, 0x23, 0xac, 0xbe, 0x46, 0x3a, 0xe4, 0xcd, 0xb6, 0xfd, 0x21, 0x58, - 0xb9, 0x58, 0xce, 0xb9, 0xde, 0xdb, 0xf1, 0x17, 0x48, 0x38, 0x57, 0xaf, 0x13, 0xc5, 0x3b, 0x6d, - 0xe2, 0x37, 0xe4, 0x07, 0xff, 0xf1, 0x77, 0x19, 0x4d, 0x88, 0xdf, 0x65, 0xf4, 0x17, 0xc9, 0xd6, - 0xed, 0x70, 0xd1, 0x3d, 0x02, 0x4f, 0xd9, 0x76, 0x4a, 0xb0, 0xa2, 0x27, 0xc0, 0xdd, 0x0f, 0x86, - 0x3b, 0x59, 0x18, 0x41, 0x64, 0x48, 0x77, 0x32, 0x4c, 0xe0, 0x30, 0xdd, 0xc9, 0x06, 0x31, 0x30, - 0x86, 0x5b, 0xed, 0x73, 0x74, 0x37, 0x1f, 0xb7, 0x1b, 0xf5, 0x6f, 0xa5, 0xd4, 0x47, 0xe9, 0xef, - 0x64, 0x12, 0xf9, 0x3f, 0x63, 0xbe, 0xe2, 0x87, 0xe9, 0x24, 0x1e, 0xcd, 0x71, 0xe4, 0xc6, 0xb0, - 0x6e, 0x24, 0x61, 0x5f, 0xf4, 0x73, 0x46, 0xdb, 0xdd, 0x1e, 0xd1, 0x89, 0x8e, 0x8b, 0x1e, 0x2d, - 0xff, 0x7a, 0x64, 0xfc, 0xa2, 0xfe, 0xaf, 0x4c, 0xa2, 0x10, 0x52, 0x81, 0x48, 0x30, 0x5b, 0x11, - 0x22, 0x4e, 0x10, 0xf8, 0x29, 0x96, 0xde, 0x18, 0x35, 0xfa, 0xac, 0xd1, 0x46, 0xd6, 0xa3, 0x50, - 0xa3, 0x31, 0x5f, 0xa3, 0xd3, 0xe8, 0x38, 0x72, 0x3f, 0xa0, 0x1a, 0x1d, 0x88, 0x64, 0x44, 0x1a, - 0x1d, 0x4b, 0x2f, 0x7d, 0x19, 0xbf, 0x64, 0x86, 0x4e, 0xa4, 0x56, 0x0d, 0xf3, 0x82, 0xfa, 0xaf, - 0x79, 0xff, 0x62, 0xe6, 0x73, 0x86, 0xbb, 0x4d, 0x63, 0xc1, 0xbc, 0x5b, 0xf8, 0x6e, 0x94, 0x21, - 0xe2, 0xbd, 0xf0, 0xe1, 0xa4, 0x72, 0xfb, 0xc2, 0x49, 0x15, 0x61, 0xd6, 0x30, 0x5d, 0x64, 0x9b, - 0x7a, 0x67, 0xa9, 0xa3, 0x6f, 0x39, 0xa7, 0x26, 0xfa, 0x5e, 0x5e, 0x57, 0x61, 0xf2, 0x68, 0xfc, - 0x1f, 0xec, 0xf5, 0x95, 0x93, 0xfc, 0xf5, 0x95, 0x11, 0xd1, 0xaf, 0xa6, 0xa2, 0xa3, 0x5f, 0x05, - 0xd1, 0xad, 0x60, 0x70, 0x70, 0x6c, 0x51, 0xdb, 0x38, 0x61, 0xb8, 0xbf, 0x9b, 0x05, 0xa3, 0xb0, - 0x05, 0xa1, 0x1f, 0x7f, 0x57, 0x4e, 0xb4, 0xba, 0xe7, 0x29, 0xc2, 0x7c, 0xaf, 0x12, 0x24, 0xb6, - 0x50, 0xd9, 0xca, 0xcb, 0x3d, 0x95, 0x0f, 0x4c, 0x9e, 0xac, 0x80, 0xc9, 0xc3, 0x2a, 0x55, 0x4e, - 0x4c, 0xa9, 0x92, 0x2c, 0x16, 0x8a, 0xd4, 0x76, 0x0c, 0xa7, 0x91, 0x72, 0x70, 0xcc, 0x8f, 0x76, - 0xdb, 0xed, 0x22, 0xdd, 0xd6, 0xcd, 0x16, 0x52, 0x3f, 0x24, 0x8d, 0xc2, 0xec, 0x5d, 0x82, 0x49, - 0xa3, 0x65, 0x99, 0x75, 0xe3, 0x99, 0xfe, 0xe5, 0x72, 0xf1, 0x41, 0xd6, 0xb1, 0x44, 0x2a, 0xf4, - 0x0f, 0x2d, 0xf8, 0x57, 0xa9, 0xc0, 0x54, 0x4b, 0xb7, 0xdb, 0x24, 0x08, 0x5f, 0xae, 0xe7, 0x22, - 0xa7, 0x48, 0x42, 0x25, 0xff, 0x17, 0x2d, 0xfc, 0x5b, 0xa9, 0xf1, 0x42, 0xcc, 0xf7, 0x44, 0xf3, - 0x88, 0x24, 0xb6, 0x18, 0xfe, 0xc4, 0xc9, 0xdc, 0x93, 0x8e, 0x8d, 0x3a, 0xf8, 0x0e, 0x7a, 0xd2, - 0x43, 0x4c, 0x69, 0x61, 0x42, 0xd2, 0xe5, 0x01, 0x5c, 0xd4, 0x3e, 0x34, 0xc6, 0xbd, 0x3c, 0x20, - 0xc4, 0x45, 0xfa, 0x9a, 0xf9, 0xa6, 0x3c, 0xcc, 0x92, 0x5e, 0x8d, 0x8a, 0x53, 0x7d, 0x1e, 0xbe, - 0x42, 0xda, 0xbd, 0x0f, 0x5d, 0x52, 0xeb, 0x07, 0x1f, 0x93, 0x0b, 0x20, 0x5f, 0x08, 0x02, 0x0e, - 0x7a, 0x8f, 0x49, 0xf7, 0xed, 0x7d, 0xbe, 0xe6, 0x09, 0x4f, 0xe3, 0xde, 0xb7, 0x8f, 0x2f, 0x3e, - 0x7d, 0x7c, 0x7e, 0x45, 0x06, 0xb9, 0xd8, 0x6e, 0xab, 0xad, 0x83, 0x43, 0x71, 0x0d, 0x4c, 0xfb, - 0x6d, 0x26, 0x8c, 0x01, 0xc9, 0x26, 0x25, 0x5d, 0x04, 0x0d, 0x64, 0x53, 0x6c, 0x8f, 0x7d, 0x57, - 0x21, 0xa6, 0xec, 0xf4, 0x41, 0xf9, 0xdc, 0x04, 0x6d, 0x34, 0x0b, 0x96, 0x75, 0x01, 0x1f, 0x95, - 0xf9, 0x03, 0x19, 0x72, 0x4b, 0xc8, 0x6d, 0x6d, 0xab, 0xce, 0x48, 0xda, 0xcc, 0xae, 0xdd, 0xf1, - 0xdb, 0xcc, 0xae, 0xdd, 0x19, 0x14, 0x94, 0x33, 0x69, 0xf4, 0x67, 0x9f, 0xed, 0x79, 0xcc, 0xf2, - 0xb8, 0xa3, 0x3f, 0xc7, 0x96, 0x3e, 0x86, 0x43, 0x70, 0x59, 0x98, 0x0b, 0x56, 0xc0, 0x08, 0x66, - 0x6f, 0xc8, 0x3c, 0xea, 0xd6, 0x43, 0x07, 0xd8, 0xcd, 0xea, 0x67, 0x92, 0x85, 0x58, 0x0b, 0x64, - 0xce, 0xd7, 0x3c, 0xe5, 0x85, 0xc9, 0x04, 0xc1, 0xd7, 0xc4, 0x18, 0x1c, 0xc3, 0x0a, 0x80, 0x0c, - 0x93, 0x98, 0xa1, 0x45, 0x63, 0x0f, 0xbb, 0x1e, 0x72, 0x0b, 0x95, 0xcf, 0x1a, 0xc9, 0x42, 0xe5, - 0x9d, 0xfc, 0x42, 0xa5, 0x60, 0xc4, 0x64, 0x7f, 0x9d, 0x32, 0xa1, 0x2f, 0x8e, 0xf7, 0xff, 0xc8, - 0x97, 0x29, 0x13, 0xf8, 0xe2, 0x0c, 0x28, 0x3f, 0x7d, 0x44, 0x7f, 0xf7, 0xbf, 0xd0, 0xce, 0xda, - 0xdf, 0x90, 0x55, 0xff, 0xc7, 0x31, 0xc8, 0x9e, 0xf5, 0x1e, 0xfe, 0x67, 0x78, 0xa3, 0xd6, 0x8b, - 0x47, 0x10, 0xdc, 0xe1, 0x69, 0x90, 0xf5, 0xe8, 0xd3, 0x69, 0xcf, 0x8d, 0x62, 0xbb, 0xc3, 0x1e, - 0x23, 0x1a, 0xfe, 0x4f, 0x39, 0x09, 0x79, 0xc7, 0xda, 0xb5, 0x5b, 0x9e, 0xf9, 0xed, 0x69, 0x0c, - 0x7d, 0x4b, 0x1a, 0xd4, 0x94, 0x23, 0x3d, 0x3f, 0x3a, 0x97, 0x53, 0xe6, 0x82, 0x25, 0x99, 0xbb, - 0x60, 0x29, 0xc1, 0xfe, 0x83, 0x00, 0x6f, 0xe9, 0x6b, 0xc4, 0xdf, 0xe2, 0xbb, 0x06, 0xdb, 0xa3, - 0x82, 0x3d, 0x42, 0x2c, 0x07, 0x55, 0x87, 0xa4, 0x0e, 0xe3, 0xbc, 0x68, 0x83, 0x38, 0xf2, 0x63, - 0x75, 0x18, 0x17, 0xe0, 0x61, 0x2c, 0xa7, 0xdc, 0xf3, 0xd4, 0xc9, 0xf5, 0xfe, 0x51, 0xa2, 0x9b, - 0xe5, 0x94, 0xfe, 0x40, 0xe8, 0x8c, 0xd0, 0xf9, 0x75, 0x68, 0x74, 0x0e, 0xc9, 0xfd, 0xf5, 0x4f, - 0x65, 0x1c, 0x49, 0xd3, 0x37, 0x82, 0xc4, 0x2f, 0x4a, 0x4a, 0x0c, 0x91, 0x37, 0x06, 0x73, 0x71, - 0xa4, 0x67, 0x87, 0x0f, 0x2d, 0xce, 0x8b, 0x8e, 0xe1, 0x7f, 0xdc, 0xa1, 0xc5, 0x45, 0x19, 0x49, - 0x1f, 0xc8, 0xdf, 0x23, 0x17, 0x93, 0x15, 0x5b, 0xae, 0xb1, 0x37, 0xe2, 0x96, 0xc6, 0x0f, 0x2f, - 0x09, 0xa3, 0x09, 0xef, 0x93, 0x10, 0xe1, 0x70, 0xdc, 0xd1, 0x84, 0xc5, 0xd8, 0x48, 0x1f, 0xa6, - 0x7f, 0xc8, 0x7b, 0xd2, 0xa3, 0x6b, 0x3b, 0xaf, 0xa2, 0xab, 0x09, 0xe8, 0xe0, 0x68, 0x9d, 0x81, - 0x19, 0x66, 0xe9, 0xc0, 0xbf, 0xf0, 0x86, 0x4b, 0x4b, 0x7a, 0x50, 0x3e, 0x10, 0xd9, 0xc8, 0x17, - 0x16, 0x12, 0x2c, 0x18, 0x8b, 0x30, 0x31, 0x96, 0xfb, 0xe4, 0xfc, 0x31, 0x6c, 0x4c, 0x58, 0xbd, - 0x9b, 0xc5, 0xaa, 0xc6, 0x63, 0x75, 0xbb, 0x88, 0x98, 0xc4, 0xc6, 0x34, 0xa1, 0x79, 0xe3, 0x1b, - 0x03, 0xb8, 0x34, 0x0e, 0xae, 0xa7, 0x0d, 0xcd, 0x47, 0xfa, 0x88, 0xfd, 0x16, 0xe9, 0x0e, 0xeb, - 0xc4, 0x64, 0x1f, 0x4d, 0x77, 0x48, 0x67, 0x03, 0x32, 0x37, 0x1b, 0x48, 0xe8, 0xaf, 0x1f, 0xba, - 0xa1, 0xfa, 0xcc, 0x0d, 0x82, 0x28, 0x3b, 0x62, 0x7f, 0xfd, 0x81, 0x1c, 0xa4, 0x0f, 0xce, 0x37, - 0x65, 0x80, 0x65, 0xdb, 0xda, 0xed, 0xd6, 0xec, 0x36, 0xb2, 0xd5, 0xbf, 0x0f, 0x27, 0x00, 0xbf, - 0x3a, 0x82, 0x09, 0xc0, 0x3a, 0xc0, 0x56, 0x40, 0x9c, 0x6a, 0xf8, 0x2d, 0x62, 0xe6, 0x7e, 0xc8, - 0x94, 0xc6, 0xd0, 0xe0, 0xaf, 0xac, 0xfd, 0x31, 0x1e, 0xe3, 0xb8, 0x3e, 0x2b, 0x24, 0x37, 0xca, - 0x09, 0xc0, 0x9b, 0x03, 0xac, 0x1b, 0x1c, 0xd6, 0xf7, 0x1c, 0x80, 0x93, 0xf4, 0x31, 0xff, 0x97, - 0x09, 0x98, 0x26, 0xdb, 0x7d, 0x44, 0xa6, 0xff, 0x14, 0x82, 0xfe, 0x9b, 0x23, 0x00, 0x7d, 0x03, - 0x66, 0xac, 0x90, 0x3a, 0xe9, 0x53, 0xd9, 0x05, 0x98, 0x58, 0xd8, 0x19, 0xbe, 0x34, 0x8e, 0x8c, - 0xfa, 0x01, 0x16, 0x79, 0x8d, 0x47, 0xfe, 0xce, 0x18, 0x79, 0x33, 0x14, 0x47, 0x09, 0xfd, 0x5b, - 0x02, 0xe8, 0x37, 0x38, 0xe8, 0x8b, 0x07, 0x61, 0x65, 0x0c, 0xe1, 0xfa, 0x65, 0xc8, 0xe2, 0xd3, - 0x75, 0x7f, 0x98, 0xe2, 0xfc, 0xfe, 0x14, 0x4c, 0xe0, 0x26, 0x1b, 0xcc, 0x3b, 0xfc, 0x57, 0xef, - 0x8b, 0xbe, 0xe9, 0x22, 0x3b, 0x58, 0xb9, 0xf5, 0x5f, 0x3d, 0x1e, 0x7c, 0xaf, 0x66, 0xe7, 0x54, - 0x9e, 0x6c, 0x64, 0x06, 0x09, 0x43, 0x4f, 0x4a, 0x58, 0x89, 0x8f, 0xec, 0xbc, 0xdd, 0x30, 0x93, - 0x92, 0x01, 0x8c, 0xa4, 0x0f, 0xfc, 0xe7, 0xb3, 0x70, 0x8a, 0xac, 0x2a, 0x2d, 0xd9, 0xd6, 0x4e, - 0xcf, 0xed, 0x58, 0xc6, 0xc1, 0x75, 0xe1, 0x7a, 0x98, 0x73, 0x39, 0x7f, 0x6e, 0xaa, 0x13, 0x3d, - 0xa9, 0xea, 0x5f, 0xb2, 0x3e, 0x19, 0x4f, 0xe7, 0x91, 0x5c, 0x88, 0x11, 0x60, 0x14, 0xef, 0x89, - 0x17, 0xea, 0x05, 0x19, 0x65, 0x16, 0xa9, 0xe4, 0xa1, 0xd6, 0x2c, 0x03, 0x9d, 0xca, 0x89, 0xe8, - 0xd4, 0x3b, 0x03, 0x9d, 0xfa, 0x09, 0x4e, 0xa7, 0x96, 0x0f, 0x2e, 0x92, 0xf4, 0x75, 0xeb, 0x65, - 0xb2, 0xbf, 0x71, 0x14, 0x6c, 0xfb, 0xed, 0xa4, 0xb1, 0xd9, 0xc7, 0xf8, 0x33, 0x65, 0x39, 0x7f, - 0x26, 0xfe, 0x3e, 0x8b, 0x04, 0x33, 0x61, 0x9e, 0xeb, 0x08, 0x5d, 0x9a, 0x03, 0xc9, 0xf0, 0xb9, - 0x93, 0x8c, 0xf6, 0x50, 0x73, 0xdd, 0xd8, 0x82, 0xc6, 0xb0, 0xb6, 0x34, 0x07, 0xf9, 0x25, 0xa3, - 0xe3, 0x22, 0x5b, 0x7d, 0x84, 0xce, 0x74, 0x5f, 0x96, 0xe2, 0x00, 0xb0, 0x08, 0xf9, 0x4d, 0x5c, - 0x1a, 0x35, 0x99, 0x6f, 0x12, 0x6b, 0x3d, 0x84, 0x43, 0x8d, 0xfe, 0x9b, 0x34, 0xba, 0x5f, 0x0f, - 0x99, 0x91, 0x4d, 0x91, 0x13, 0x44, 0xf7, 0x1b, 0xcc, 0xc2, 0x58, 0x2e, 0xb6, 0xca, 0x6b, 0x68, - 0xc7, 0x1b, 0xe3, 0x2f, 0xa4, 0x87, 0x70, 0x01, 0x64, 0xa3, 0xed, 0xe0, 0xce, 0x71, 0x4a, 0xf3, - 0x1e, 0x93, 0xfa, 0x1a, 0xf5, 0x8a, 0x8a, 0xb0, 0x3c, 0x6e, 0x5f, 0x23, 0x21, 0x2e, 0xd2, 0xc7, - 0xec, 0x3b, 0xd8, 0xd1, 0xb4, 0xdb, 0xd1, 0x5b, 0xc8, 0xe3, 0x3e, 0x35, 0xd4, 0x48, 0x4f, 0x96, - 0xf5, 0x7b, 0x32, 0xa6, 0x9d, 0xe6, 0x0e, 0xd0, 0x4e, 0x87, 0x5d, 0x86, 0x0c, 0x64, 0x8e, 0x2b, - 0x7e, 0x68, 0xcb, 0x90, 0xb1, 0x6c, 0x8c, 0xe1, 0xda, 0x52, 0xff, 0x20, 0xee, 0x58, 0x5b, 0xeb, - 0xb0, 0x9b, 0x34, 0x54, 0x58, 0x23, 0x3b, 0x74, 0x3b, 0xcc, 0x26, 0x4d, 0x34, 0x0f, 0x63, 0x40, - 0x6b, 0x8e, 0xa2, 0xf5, 0x69, 0x3a, 0x8c, 0xa6, 0xbc, 0x4f, 0xea, 0x58, 0xb6, 0x9b, 0x6c, 0x9f, - 0xd4, 0xe3, 0x4e, 0xc3, 0xff, 0x25, 0x3d, 0xb8, 0xc5, 0x9f, 0xcb, 0x1e, 0xd5, 0xf0, 0x99, 0xe0, - 0xe0, 0xd6, 0x20, 0x06, 0xd2, 0x87, 0xf7, 0xb5, 0x87, 0x34, 0x78, 0x0e, 0xdb, 0x1c, 0x69, 0x1b, - 0x18, 0xd9, 0xd0, 0x39, 0x4c, 0x73, 0x8c, 0xe6, 0x21, 0x7d, 0xbc, 0xbe, 0xc1, 0x0c, 0x9c, 0xaf, - 0x1e, 0xe3, 0xc0, 0xe9, 0xb7, 0xcc, 0xdc, 0x90, 0x2d, 0x73, 0xd8, 0xfd, 0x1f, 0x2a, 0xeb, 0xd1, - 0x0d, 0x98, 0xc3, 0xec, 0xff, 0xc4, 0x30, 0x91, 0x3e, 0xe2, 0xaf, 0x91, 0x21, 0x57, 0x1f, 0xff, - 0x78, 0x39, 0xec, 0x5c, 0x04, 0xcb, 0xaa, 0x3e, 0xb2, 0xe1, 0x72, 0x98, 0xb9, 0x48, 0x24, 0x0b, - 0x63, 0x08, 0xdc, 0x7f, 0x14, 0x66, 0xf0, 0x92, 0x88, 0xbf, 0xcd, 0xfa, 0x0d, 0x3a, 0x6a, 0x3e, - 0x9c, 0x62, 0x5b, 0xbd, 0x17, 0x26, 0xfd, 0xfd, 0x3b, 0x3a, 0x72, 0xce, 0x8b, 0xb5, 0x4f, 0x9f, - 0x4b, 0x2d, 0xf8, 0xff, 0x40, 0xce, 0x10, 0x23, 0xdf, 0xab, 0x1d, 0xd6, 0x19, 0xe2, 0x50, 0xf7, - 0x6b, 0xff, 0x22, 0x1c, 0x51, 0xff, 0x6b, 0x7a, 0x98, 0xf7, 0xee, 0xe3, 0x66, 0xfb, 0xec, 0xe3, - 0x7e, 0x88, 0xc5, 0xb2, 0xce, 0x63, 0x79, 0x97, 0xa8, 0x08, 0x47, 0x38, 0xd6, 0xbe, 0x35, 0x80, - 0xf3, 0x2c, 0x07, 0xe7, 0xc2, 0x81, 0x78, 0x19, 0xc3, 0xc1, 0xc9, 0x6c, 0x38, 0xe6, 0x7e, 0x38, - 0xc5, 0x76, 0xdc, 0x73, 0x2a, 0x23, 0xbb, 0xef, 0x54, 0x06, 0xd7, 0xd2, 0x73, 0x07, 0x6c, 0xe9, - 0x1f, 0x66, 0xb5, 0xa3, 0xc1, 0x6b, 0xc7, 0xd3, 0xc4, 0x11, 0x19, 0xdd, 0xc8, 0xfc, 0xb6, 0x40, - 0x3d, 0xce, 0x71, 0xea, 0x51, 0x3a, 0x18, 0x33, 0xe9, 0xeb, 0xc7, 0x47, 0xfd, 0x09, 0xed, 0x21, - 0xb7, 0xf7, 0x61, 0xb7, 0x8a, 0x39, 0x21, 0x8e, 0x6c, 0xe4, 0x1e, 0x66, 0xab, 0x78, 0x10, 0x27, - 0x63, 0x88, 0xe5, 0x36, 0x0b, 0xd3, 0x98, 0xa7, 0x73, 0x46, 0x7b, 0x0b, 0xb9, 0xea, 0xef, 0x12, - 0x1f, 0x45, 0x3f, 0x72, 0xe6, 0x88, 0xc2, 0x1b, 0x45, 0x9d, 0x97, 0x4d, 0xea, 0xd1, 0x41, 0x98, - 0x9c, 0x67, 0x18, 0x1c, 0x77, 0x04, 0xc6, 0x81, 0x1c, 0xa4, 0x0f, 0xd9, 0x07, 0x88, 0xbb, 0xcd, - 0xaa, 0x7e, 0xc9, 0xda, 0x75, 0xd5, 0x87, 0x46, 0xd0, 0x41, 0x2f, 0x40, 0xbe, 0x83, 0xa9, 0xd1, - 0x63, 0x19, 0xf1, 0xd3, 0x1d, 0x2a, 0x02, 0x52, 0xbe, 0x46, 0xff, 0x4c, 0x7a, 0x36, 0x23, 0x94, - 0x23, 0xa1, 0x33, 0xee, 0xb3, 0x19, 0x03, 0xca, 0x1f, 0xcb, 0x1d, 0x3d, 0x93, 0x5e, 0xe9, 0xc6, - 0x8e, 0xe1, 0x8e, 0x28, 0x02, 0x44, 0xc7, 0xa3, 0xe5, 0x47, 0x80, 0xc0, 0x2f, 0x49, 0x4f, 0x9c, - 0x32, 0x52, 0xf1, 0x7e, 0x1f, 0xf7, 0x89, 0xd3, 0xf8, 0xe2, 0xd3, 0xc7, 0xe4, 0xd7, 0x49, 0xcb, - 0x3a, 0x4b, 0x9c, 0x6f, 0x53, 0xf4, 0xeb, 0x1d, 0xba, 0xb1, 0x10, 0xd6, 0x0e, 0xaf, 0xb1, 0xf4, - 0x2d, 0x3f, 0x7d, 0x60, 0xfe, 0xe0, 0x87, 0x21, 0xb7, 0x88, 0xce, 0xef, 0x6e, 0xa9, 0x77, 0xc2, - 0x64, 0xc3, 0x46, 0xa8, 0x62, 0x6e, 0x5a, 0x9e, 0x74, 0x5d, 0xef, 0xd9, 0x87, 0x84, 0xbe, 0x79, - 0x78, 0x6c, 0x23, 0xbd, 0x1d, 0x9e, 0x3f, 0xf3, 0x5f, 0xd5, 0x17, 0x4b, 0x90, 0xad, 0xbb, 0xba, - 0xab, 0x4e, 0x05, 0xd8, 0xaa, 0x0f, 0xb1, 0x58, 0xdc, 0xc9, 0x63, 0x71, 0x3d, 0x27, 0x0b, 0xcc, - 0xc1, 0xbc, 0xf7, 0x7f, 0x04, 0x00, 0x2a, 0x4c, 0x3e, 0xe0, 0x58, 0xa6, 0x97, 0xc3, 0x3f, 0x22, - 0xe9, 0xbf, 0xab, 0x2f, 0x0d, 0xc4, 0x7d, 0x37, 0x27, 0xee, 0xc7, 0x8b, 0x15, 0x31, 0x86, 0x95, - 0x36, 0x09, 0xa6, 0x3c, 0xd1, 0xae, 0x20, 0xbd, 0xed, 0xa8, 0x3f, 0x14, 0x2a, 0x7f, 0x84, 0x98, - 0xd5, 0xf7, 0x08, 0x07, 0xf3, 0x24, 0xb5, 0x0a, 0x88, 0x47, 0x7b, 0x74, 0xf8, 0x9b, 0xff, 0x12, - 0x1f, 0xcc, 0xe4, 0x66, 0xc8, 0x1a, 0xe6, 0xa6, 0x45, 0xfd, 0x0b, 0xaf, 0x8c, 0xa0, 0xed, 0xe9, - 0x84, 0x86, 0x33, 0x0a, 0x46, 0xfa, 0x8c, 0x67, 0x6b, 0x2c, 0x97, 0xe6, 0x65, 0xbd, 0xd2, 0xd5, - 0xff, 0x7d, 0xa0, 0xb0, 0x15, 0x05, 0xb2, 0x5d, 0xdd, 0xdd, 0xa6, 0x45, 0xe3, 0x67, 0xcf, 0x46, - 0xde, 0x35, 0x75, 0xd3, 0x32, 0x2f, 0xed, 0x18, 0xcf, 0x0c, 0xee, 0xe6, 0xe5, 0xd2, 0x3c, 0xce, - 0xb7, 0x90, 0x89, 0x6c, 0xdd, 0x45, 0xf5, 0xbd, 0x2d, 0x3c, 0xc7, 0x9a, 0xd4, 0xd8, 0xa4, 0xc4, - 0xfa, 0xef, 0x71, 0x1c, 0xad, 0xff, 0x9b, 0x46, 0x07, 0xe1, 0x48, 0x4f, 0x54, 0xff, 0xfd, 0xf7, - 0x44, 0xfa, 0xdf, 0xa7, 0x88, 0xf4, 0xd1, 0xf8, 0xae, 0x04, 0x33, 0x75, 0x4f, 0xe1, 0xea, 0xbb, - 0x3b, 0x3b, 0xba, 0x7d, 0x49, 0xbd, 0x36, 0x44, 0x85, 0x51, 0xcd, 0x0c, 0xef, 0x97, 0xf2, 0xa7, - 0xc2, 0xd7, 0x52, 0xd3, 0xa6, 0xcd, 0x94, 0x90, 0xb8, 0x1d, 0xdc, 0x0a, 0x39, 0x4f, 0xbd, 0x7d, - 0x8f, 0xcb, 0xd8, 0x86, 0x40, 0x72, 0x0a, 0x46, 0xc4, 0x1a, 0xc8, 0xdb, 0x18, 0xa2, 0x71, 0x48, - 0x70, 0xb4, 0xee, 0xea, 0xad, 0x0b, 0xcb, 0x96, 0x6d, 0xed, 0xba, 0x86, 0x89, 0x1c, 0xf5, 0x31, - 0x21, 0x02, 0xbe, 0xfe, 0x67, 0x42, 0xfd, 0x57, 0xff, 0x23, 0x23, 0x3a, 0x8a, 0x06, 0xdd, 0x2a, - 0x4b, 0x3e, 0x22, 0xc0, 0x95, 0xd8, 0xb8, 0x28, 0x42, 0x31, 0x7d, 0xa1, 0xbd, 0x5a, 0x86, 0x42, - 0xf9, 0xc1, 0xae, 0x65, 0xbb, 0xab, 0x56, 0x4b, 0xef, 0x38, 0xae, 0x65, 0x23, 0xb5, 0x16, 0x2b, - 0x35, 0xaf, 0x87, 0x69, 0x5b, 0xad, 0x70, 0x70, 0xa4, 0x6f, 0xac, 0xda, 0xc9, 0xbc, 0x8e, 0x7f, - 0x40, 0x78, 0x97, 0x91, 0x48, 0xa5, 0x97, 0xa3, 0x08, 0x3d, 0xef, 0xd7, 0xa5, 0x25, 0x3b, 0x2c, - 0x21, 0xb6, 0xf3, 0x28, 0xc4, 0xd4, 0x18, 0x96, 0xca, 0x25, 0x98, 0xad, 0xef, 0x9e, 0x0f, 0x88, - 0x38, 0xac, 0x11, 0xf2, 0x72, 0xe1, 0x28, 0x16, 0x54, 0xf1, 0x58, 0x42, 0x11, 0xf2, 0xbd, 0x0e, - 0x66, 0x1d, 0x36, 0x1b, 0xc5, 0x9b, 0x4f, 0x14, 0x8c, 0x5e, 0x31, 0xb8, 0xd4, 0xf4, 0x05, 0xf8, - 0x36, 0x09, 0x66, 0x6b, 0x5d, 0x64, 0xa2, 0x36, 0xf1, 0x82, 0xe4, 0x04, 0xf8, 0xe2, 0x84, 0x02, - 0xe4, 0x08, 0x45, 0x08, 0x30, 0xf4, 0x58, 0x5e, 0xf4, 0x85, 0x17, 0x26, 0x24, 0x12, 0x5c, 0x5c, - 0x69, 0xe9, 0x0b, 0xee, 0x0b, 0x12, 0x4c, 0x6b, 0xbb, 0xe6, 0xba, 0x6d, 0x79, 0xa3, 0xb1, 0xad, - 0xde, 0x15, 0x76, 0x10, 0x37, 0xc1, 0xb1, 0xf6, 0xae, 0x8d, 0xd7, 0x9f, 0x2a, 0x66, 0x1d, 0xb5, - 0x2c, 0xb3, 0xed, 0xe0, 0x7a, 0xe4, 0xb4, 0xfd, 0x1f, 0xee, 0xc8, 0x3e, 0xf7, 0xab, 0x72, 0x46, - 0x7d, 0x9e, 0x70, 0xa8, 0x1c, 0x52, 0x79, 0xa6, 0x68, 0xf1, 0x9e, 0x40, 0x30, 0x20, 0xce, 0xa0, - 0x12, 0xd2, 0x17, 0xee, 0xa7, 0x25, 0x50, 0x8a, 0xad, 0x96, 0xb5, 0x6b, 0xba, 0x75, 0xd4, 0x41, - 0x2d, 0xb7, 0x61, 0xeb, 0x2d, 0xc4, 0xda, 0xcf, 0x05, 0x90, 0xdb, 0x86, 0x4d, 0xfb, 0x60, 0xef, - 0x91, 0xca, 0xf1, 0xc5, 0xc2, 0x3b, 0x8e, 0xa4, 0x96, 0xfb, 0x4b, 0x49, 0x20, 0x4e, 0xb1, 0x7d, - 0x45, 0xc1, 0x82, 0xd2, 0x97, 0xea, 0x87, 0x25, 0x98, 0xf2, 0x7b, 0xec, 0x2d, 0x11, 0x61, 0xfe, - 0x7a, 0xc2, 0xc9, 0x48, 0x40, 0x3c, 0x81, 0x0c, 0xdf, 0x94, 0x60, 0x56, 0x11, 0x45, 0x3f, 0x99, - 0xe8, 0x8a, 0xc9, 0x45, 0xe7, 0xbd, 0x56, 0x6b, 0xcd, 0xa5, 0xda, 0xea, 0x62, 0x59, 0x2b, 0xc8, - 0xea, 0x23, 0x12, 0x64, 0xd7, 0x0d, 0x73, 0x8b, 0x8d, 0x68, 0x76, 0xdc, 0xb3, 0x23, 0xdb, 0xe8, - 0x41, 0xda, 0xd2, 0xc9, 0x8b, 0x72, 0x1b, 0x1c, 0x37, 0x77, 0x77, 0xce, 0x23, 0xbb, 0xb6, 0x89, - 0x47, 0x59, 0xa7, 0x61, 0xd5, 0x91, 0x49, 0x8c, 0xd0, 0x9c, 0xd6, 0xf7, 0x1b, 0x6f, 0x82, 0x09, - 0x4c, 0x1e, 0x3c, 0x4e, 0x22, 0x24, 0x1e, 0x30, 0x25, 0x31, 0x4c, 0x25, 0x9a, 0x36, 0xf4, 0x21, - 0x9e, 0xbe, 0xa6, 0xfe, 0x59, 0x0e, 0x4e, 0x14, 0xcd, 0x4b, 0xd8, 0xa6, 0x20, 0x1d, 0x7c, 0x69, - 0x5b, 0x37, 0xb7, 0x10, 0x1e, 0x20, 0x02, 0x89, 0xb3, 0x21, 0xfe, 0x33, 0x7c, 0x88, 0x7f, 0x45, - 0x83, 0x09, 0xcb, 0x6e, 0x23, 0x7b, 0xe1, 0x12, 0xe6, 0xa9, 0x77, 0xd9, 0x99, 0xb6, 0xc9, 0x7e, - 0x45, 0xcc, 0x53, 0xf2, 0xf3, 0x35, 0xf2, 0xbf, 0xe6, 0x13, 0x3a, 0x73, 0x13, 0x4c, 0xd0, 0x34, - 0x65, 0x06, 0x26, 0x6b, 0xda, 0x62, 0x59, 0x6b, 0x56, 0x16, 0x0b, 0x47, 0x94, 0xcb, 0xe0, 0x68, - 0xa5, 0x51, 0xd6, 0x8a, 0x8d, 0x4a, 0xad, 0xda, 0xc4, 0xe9, 0x85, 0x8c, 0xfa, 0x9c, 0xac, 0xa8, - 0x67, 0x6f, 0x3c, 0x33, 0xfd, 0x60, 0xd5, 0x60, 0xa2, 0x45, 0x32, 0xe0, 0x21, 0x74, 0x3a, 0x51, - 0xed, 0x28, 0x41, 0x92, 0xa0, 0xf9, 0x84, 0x94, 0xd3, 0x00, 0x17, 0x6d, 0xcb, 0xdc, 0x0a, 0x4f, - 0x1d, 0x4e, 0x6a, 0x4c, 0x8a, 0xfa, 0x50, 0x06, 0xf2, 0xe4, 0x1f, 0x7c, 0xa5, 0x09, 0x7e, 0x0a, - 0x05, 0xef, 0xbf, 0x7b, 0x16, 0x2f, 0x96, 0x57, 0x38, 0xd1, 0xa2, 0xaf, 0x9e, 0x2e, 0x12, 0x19, - 0x10, 0x4b, 0x98, 0x56, 0xe5, 0x66, 0xc8, 0x93, 0x7f, 0xa9, 0xd7, 0x41, 0x74, 0x78, 0x52, 0x92, - 0x4d, 0xd0, 0x4f, 0x59, 0x5c, 0xa6, 0xe9, 0x6b, 0xf3, 0x7b, 0x25, 0x98, 0xac, 0x22, 0xb7, 0xb4, - 0x8d, 0x5a, 0x17, 0xd4, 0xc7, 0xf1, 0x0b, 0xa0, 0x1d, 0x03, 0x99, 0xee, 0xfd, 0x3b, 0x9d, 0x60, - 0x01, 0xd4, 0x4f, 0x50, 0x7f, 0x9e, 0xed, 0x7c, 0xef, 0xe1, 0xf5, 0xe7, 0xc6, 0x3e, 0x75, 0xf5, - 0x4b, 0x88, 0x50, 0x99, 0x93, 0x90, 0xb7, 0x91, 0xb3, 0xdb, 0xf1, 0x17, 0xd1, 0xe8, 0x9b, 0xfa, - 0x8a, 0x40, 0x9c, 0x25, 0x4e, 0x9c, 0x37, 0x8b, 0x17, 0x31, 0x86, 0x78, 0xa7, 0x59, 0x98, 0xa8, - 0x98, 0x86, 0x6b, 0xe8, 0x1d, 0xf5, 0x79, 0x59, 0x98, 0xad, 0x23, 0x77, 0x5d, 0xb7, 0xf5, 0x1d, - 0xe4, 0x22, 0xdb, 0x51, 0xbf, 0xcd, 0xf7, 0x09, 0xdd, 0x8e, 0xee, 0x6e, 0x5a, 0xf6, 0x8e, 0xaf, - 0x9a, 0xfe, 0xbb, 0xa7, 0x9a, 0x7b, 0xc8, 0x76, 0x42, 0xbe, 0xfc, 0x57, 0xef, 0xcb, 0x45, 0xcb, - 0xbe, 0xe0, 0x0d, 0x82, 0x74, 0x9a, 0x46, 0x5f, 0x3d, 0x7a, 0x1d, 0x6b, 0x6b, 0x15, 0xed, 0x21, - 0x3f, 0x9c, 0x5a, 0xf0, 0xee, 0xcd, 0x05, 0xda, 0x56, 0xd5, 0x72, 0xbd, 0x4e, 0x7b, 0xd5, 0xda, - 0x22, 0xf1, 0x66, 0x27, 0x35, 0x3e, 0x31, 0xcc, 0xa5, 0xef, 0x21, 0x9c, 0x2b, 0xcf, 0xe6, 0xa2, - 0x89, 0xca, 0x3c, 0x28, 0xc1, 0x6f, 0x0d, 0xd4, 0x41, 0x3b, 0xc8, 0xb5, 0x2f, 0xe1, 0x6b, 0x25, - 0x26, 0xb5, 0x3e, 0x5f, 0xe8, 0x00, 0x2d, 0x3e, 0x59, 0xa7, 0xd2, 0x9b, 0xe7, 0x24, 0x77, 0xa0, - 0xc9, 0xba, 0x08, 0xc5, 0xb1, 0x5c, 0x9b, 0x25, 0x7b, 0xd6, 0xcc, 0x6f, 0xcb, 0x90, 0xc5, 0x83, - 0xe7, 0x6b, 0x32, 0xdc, 0x0a, 0xd3, 0x0e, 0x72, 0x1c, 0x7d, 0x0b, 0xf9, 0x2b, 0x4c, 0xf4, 0x55, - 0xb9, 0x1d, 0x72, 0x1d, 0x8c, 0x29, 0x19, 0x1c, 0xae, 0xe5, 0x6a, 0xe6, 0x19, 0x18, 0x1e, 0xad, - 0x60, 0x24, 0xc0, 0x70, 0x6b, 0xe4, 0x8f, 0x33, 0xf7, 0x42, 0x8e, 0xc0, 0x3f, 0x05, 0xb9, 0xc5, - 0xf2, 0xc2, 0xc6, 0x72, 0xe1, 0x88, 0xf7, 0xe8, 0xf3, 0x37, 0x05, 0xb9, 0xa5, 0x62, 0xa3, 0xb8, - 0x5a, 0x90, 0xbc, 0x7a, 0x54, 0xaa, 0x4b, 0xb5, 0x82, 0xec, 0x25, 0xae, 0x17, 0xab, 0x95, 0x52, - 0x21, 0xab, 0x4c, 0xc3, 0xc4, 0xb9, 0xa2, 0x56, 0xad, 0x54, 0x97, 0x0b, 0x39, 0xf5, 0x1f, 0x58, - 0xfc, 0xee, 0xe0, 0xf1, 0xbb, 0x2e, 0x8a, 0xa7, 0x7e, 0x90, 0xfd, 0x4e, 0x00, 0xd9, 0x5d, 0x1c, - 0x64, 0x3f, 0x2c, 0x42, 0x64, 0x0c, 0xee, 0x4c, 0x79, 0x98, 0x58, 0xb7, 0xad, 0x16, 0x72, 0x1c, - 0xf5, 0x37, 0x24, 0xc8, 0x97, 0x74, 0xb3, 0x85, 0x3a, 0xea, 0x15, 0x21, 0x54, 0xc4, 0x55, 0x34, - 0x13, 0x9c, 0x16, 0xfb, 0x66, 0x46, 0xb4, 0xf7, 0xa3, 0x74, 0xe7, 0x09, 0xcd, 0x08, 0xf9, 0x88, - 0xf5, 0x72, 0xb1, 0xa4, 0xc6, 0x70, 0xb5, 0x8e, 0x04, 0x53, 0x74, 0x35, 0xe0, 0x3c, 0x62, 0xe7, - 0xe1, 0xdf, 0xce, 0x88, 0x4e, 0x0e, 0xfd, 0x1a, 0x04, 0x64, 0x22, 0xe4, 0x21, 0x36, 0x11, 0x1c, - 0x44, 0x6d, 0x0c, 0x9b, 0x87, 0x12, 0x4c, 0x6f, 0x98, 0x4e, 0x3f, 0xa1, 0x88, 0xc7, 0xe1, 0xf7, - 0xab, 0xc1, 0x10, 0x3a, 0x50, 0x1c, 0xfe, 0xc1, 0xf4, 0xd2, 0x17, 0xcc, 0xb7, 0x33, 0x70, 0x7c, - 0x19, 0x99, 0xc8, 0x36, 0x5a, 0xa4, 0x06, 0xbe, 0x24, 0xee, 0xe2, 0x25, 0xf1, 0x38, 0x8e, 0xf3, - 0x7e, 0x7f, 0xf0, 0x12, 0x78, 0x59, 0x20, 0x81, 0x7b, 0x38, 0x09, 0xdc, 0x24, 0x48, 0x67, 0x0c, - 0xf7, 0xa9, 0x4f, 0xc1, 0x4c, 0xd5, 0x72, 0x8d, 0x4d, 0xa3, 0x45, 0x7c, 0xd0, 0x7e, 0x4b, 0x86, - 0xec, 0xaa, 0xe1, 0xb8, 0x6a, 0x31, 0xec, 0x4e, 0xae, 0x81, 0x69, 0xc3, 0x6c, 0x75, 0x76, 0xdb, - 0x48, 0x43, 0x3a, 0xe9, 0x57, 0x26, 0x35, 0x36, 0x29, 0xdc, 0xda, 0xf7, 0xd8, 0x92, 0xfd, 0xad, - 0xfd, 0x4f, 0x08, 0x2f, 0xc3, 0xb0, 0x2c, 0xe0, 0x80, 0x94, 0x11, 0x76, 0x57, 0x11, 0x66, 0x4d, - 0x26, 0xab, 0x6f, 0xb0, 0xf7, 0x5e, 0x48, 0xc0, 0x92, 0xd3, 0xf8, 0x3f, 0xd4, 0x77, 0x08, 0x35, - 0xd6, 0x41, 0x0c, 0x25, 0x43, 0x66, 0x69, 0x88, 0x49, 0xb2, 0x02, 0x73, 0x95, 0x6a, 0xa3, 0xac, - 0x55, 0x8b, 0xab, 0x34, 0x8b, 0xac, 0x7e, 0x57, 0x82, 0x9c, 0x86, 0xba, 0x9d, 0x4b, 0x6c, 0xc4, - 0x69, 0xea, 0x28, 0x9e, 0x09, 0x1c, 0xc5, 0x95, 0x25, 0x00, 0xbd, 0xe5, 0x15, 0x8c, 0xaf, 0xe4, - 0x92, 0xfa, 0xc6, 0x31, 0xe5, 0x2a, 0x58, 0x0c, 0x72, 0x6b, 0xcc, 0x9f, 0xea, 0xf3, 0x85, 0x77, - 0x8e, 0x38, 0x6a, 0x98, 0xc3, 0x88, 0x3e, 0xe1, 0x9d, 0x42, 0x9b, 0x3d, 0x03, 0xc9, 0x1d, 0x8e, - 0xf8, 0xbf, 0x28, 0x41, 0xb6, 0xe1, 0xf5, 0x96, 0x4c, 0xc7, 0xf9, 0xf1, 0xe1, 0x74, 0xdc, 0x23, - 0x13, 0xa1, 0xe3, 0x77, 0xc3, 0x0c, 0xab, 0xb1, 0xd4, 0x55, 0x22, 0x56, 0xc5, 0xb9, 0x1f, 0x86, - 0xd1, 0xf0, 0x3e, 0xec, 0x1c, 0x8e, 0x88, 0x3f, 0xf2, 0x78, 0x80, 0x35, 0xb4, 0x73, 0x1e, 0xd9, - 0xce, 0xb6, 0xd1, 0x55, 0xff, 0x51, 0x86, 0xa9, 0x65, 0xe4, 0xd6, 0x5d, 0xdd, 0xdd, 0x75, 0x7a, - 0xb6, 0x3b, 0x4d, 0xab, 0xa4, 0xb7, 0xb6, 0x11, 0xed, 0x8e, 0xfc, 0x57, 0xf5, 0x2d, 0xb2, 0xa8, - 0x3f, 0x51, 0x58, 0xce, 0x7c, 0x50, 0x46, 0x04, 0x26, 0x4f, 0x80, 0x6c, 0x5b, 0x77, 0x75, 0x8a, - 0xc5, 0x15, 0x3d, 0x58, 0x84, 0x84, 0x34, 0x9c, 0x4d, 0x7d, 0x83, 0x24, 0xe2, 0x50, 0x24, 0x50, - 0x7e, 0x32, 0x10, 0xde, 0x91, 0x19, 0x02, 0x85, 0x63, 0x30, 0x5b, 0xad, 0x35, 0x9a, 0xab, 0xb5, - 0xe5, 0xe5, 0xb2, 0x97, 0x5a, 0x90, 0x95, 0x93, 0xa0, 0xac, 0x17, 0xef, 0x5f, 0x2b, 0x57, 0x1b, - 0xcd, 0x6a, 0x6d, 0xb1, 0x4c, 0xff, 0xcc, 0x2a, 0x47, 0x61, 0xba, 0x54, 0x2c, 0xad, 0xf8, 0x09, - 0x39, 0xe5, 0x14, 0x1c, 0x5f, 0x2b, 0xaf, 0x2d, 0x94, 0xb5, 0xfa, 0x4a, 0x65, 0xbd, 0xe9, 0x91, - 0x59, 0xaa, 0x6d, 0x54, 0x17, 0x0b, 0x79, 0x45, 0x85, 0x93, 0xcc, 0x97, 0x73, 0x5a, 0xad, 0xba, - 0xdc, 0xac, 0x37, 0x8a, 0x8d, 0x72, 0x61, 0x42, 0xb9, 0x0c, 0x8e, 0x96, 0x8a, 0x55, 0x9c, 0xbd, - 0x54, 0xab, 0x56, 0xcb, 0xa5, 0x46, 0x61, 0x52, 0xfd, 0x8f, 0x2c, 0x4c, 0x57, 0x9c, 0xaa, 0xbe, - 0x83, 0xce, 0xea, 0x1d, 0xa3, 0xad, 0x3e, 0x8f, 0x99, 0x79, 0x5c, 0x07, 0xb3, 0x36, 0x79, 0x44, - 0xed, 0x86, 0x81, 0x08, 0x9a, 0xb3, 0x1a, 0x9f, 0xe8, 0xcd, 0xc9, 0x4d, 0x4c, 0xc0, 0x9f, 0x93, - 0x93, 0x37, 0x65, 0x01, 0x80, 0x3c, 0x35, 0xc2, 0xcb, 0x61, 0xcf, 0xf4, 0xb6, 0x26, 0x7d, 0x07, - 0x39, 0xc8, 0xde, 0x33, 0x5a, 0xc8, 0xcf, 0xa9, 0x31, 0x7f, 0xa9, 0x5f, 0x92, 0x45, 0xf7, 0x17, - 0x19, 0x50, 0x99, 0xea, 0x44, 0xf4, 0x86, 0xbf, 0x20, 0x8b, 0xec, 0x0e, 0x0a, 0x91, 0x4c, 0xa6, - 0x29, 0x2f, 0x94, 0x86, 0x5b, 0xb6, 0x6d, 0xd4, 0x6a, 0xcd, 0xfa, 0x4a, 0x4d, 0x6b, 0x14, 0x64, - 0x65, 0x06, 0x26, 0xbd, 0xd7, 0xd5, 0x5a, 0x75, 0xb9, 0x90, 0x55, 0x4e, 0xc0, 0xb1, 0x95, 0x62, - 0xbd, 0x59, 0xa9, 0x9e, 0x2d, 0xae, 0x56, 0x16, 0x9b, 0xa5, 0x95, 0xa2, 0x56, 0x2f, 0xe4, 0x94, - 0x2b, 0xe0, 0x44, 0xa3, 0x52, 0xd6, 0x9a, 0x4b, 0xe5, 0x62, 0x63, 0x43, 0x2b, 0xd7, 0x9b, 0xd5, - 0x5a, 0xb3, 0x5a, 0x5c, 0x2b, 0x17, 0xf2, 0x5e, 0xf3, 0xc7, 0x9f, 0x42, 0xb5, 0x99, 0xd8, 0xaf, - 0x8c, 0x93, 0x11, 0xca, 0x38, 0xd5, 0xab, 0x8c, 0xc0, 0xaa, 0x95, 0x56, 0xae, 0x97, 0xb5, 0xb3, - 0xe5, 0xc2, 0x74, 0x3f, 0x5d, 0x9b, 0x51, 0x8e, 0x43, 0xc1, 0xe3, 0xa1, 0x59, 0xa9, 0xfb, 0x39, - 0x17, 0x0b, 0xb3, 0xea, 0x87, 0xf3, 0x70, 0x52, 0x43, 0x5b, 0x86, 0xe3, 0x22, 0x7b, 0x5d, 0xbf, - 0xb4, 0x83, 0x4c, 0xd7, 0xef, 0xe4, 0xff, 0x2d, 0xb1, 0x32, 0xae, 0xc1, 0x6c, 0x97, 0xd0, 0x58, - 0x43, 0xee, 0xb6, 0xd5, 0xa6, 0xa3, 0xf0, 0xe3, 0x22, 0x7b, 0x8e, 0xf9, 0x75, 0x36, 0xbb, 0xc6, - 0xff, 0xcd, 0xe8, 0xb6, 0x1c, 0xa3, 0xdb, 0xd9, 0x61, 0x74, 0x5b, 0xb9, 0x0a, 0xa6, 0x76, 0x1d, - 0x64, 0x97, 0x77, 0x74, 0xa3, 0xe3, 0x5f, 0xee, 0x19, 0x24, 0xa8, 0x6f, 0xcc, 0x8a, 0x9e, 0x58, - 0x61, 0xea, 0xd2, 0x5f, 0x8c, 0x11, 0x7d, 0xeb, 0x69, 0x00, 0x5a, 0xd9, 0x0d, 0xbb, 0x43, 0x95, - 0x95, 0x49, 0xf1, 0xf8, 0x3b, 0x6f, 0x74, 0x3a, 0x86, 0xb9, 0x15, 0xec, 0xfb, 0x87, 0x09, 0xea, - 0x0b, 0x65, 0x91, 0x13, 0x2c, 0x49, 0x79, 0x4b, 0xd6, 0x9a, 0x9e, 0x2f, 0x8d, 0xb9, 0xdf, 0xdd, - 0xdf, 0x74, 0xf2, 0x4a, 0x01, 0x66, 0x70, 0x1a, 0x6d, 0x81, 0x85, 0x09, 0xaf, 0x0f, 0xf6, 0xc9, - 0xad, 0x95, 0x1b, 0x2b, 0xb5, 0xc5, 0xe0, 0xdb, 0xa4, 0x47, 0xd2, 0x63, 0xa6, 0x58, 0xbd, 0x1f, - 0xb7, 0xc6, 0x29, 0xe5, 0x31, 0x70, 0x05, 0xd3, 0x61, 0x17, 0x57, 0xb5, 0x72, 0x71, 0xf1, 0xfe, - 0x66, 0xf9, 0xe9, 0x95, 0x7a, 0xa3, 0xce, 0x37, 0x2e, 0xbf, 0x1d, 0x4d, 0x7b, 0xfc, 0x96, 0xd7, - 0x8a, 0x95, 0x55, 0xda, 0xbf, 0x2f, 0xd5, 0xb4, 0xb5, 0x62, 0xa3, 0x30, 0xa3, 0xfe, 0xb6, 0x0c, - 0x85, 0x65, 0xe4, 0xae, 0x5b, 0xb6, 0xab, 0x77, 0x56, 0x0d, 0xf3, 0xc2, 0x86, 0xdd, 0xe1, 0x26, - 0x9b, 0xc2, 0x61, 0x3a, 0xf8, 0x21, 0x92, 0x23, 0x18, 0xbd, 0x23, 0xde, 0xc5, 0xd9, 0x42, 0x65, - 0x0a, 0x13, 0xd4, 0x67, 0x49, 0x22, 0xcb, 0xdd, 0xe2, 0xa5, 0x26, 0xd3, 0x93, 0x67, 0x8f, 0x7b, - 0x7c, 0xee, 0x83, 0x5a, 0x5e, 0x7d, 0x6e, 0x16, 0x26, 0x97, 0x0c, 0x53, 0xef, 0x18, 0xcf, 0xe4, - 0xe2, 0x97, 0x86, 0x7d, 0x4c, 0x26, 0xa6, 0x8f, 0x91, 0x86, 0x1a, 0x3f, 0x7f, 0x4d, 0x16, 0x5d, - 0x5e, 0x60, 0x64, 0xef, 0x33, 0x19, 0x31, 0x78, 0xbe, 0x4f, 0x12, 0x59, 0x5e, 0x18, 0x4c, 0x2f, - 0x19, 0x86, 0x1f, 0xfb, 0xfe, 0xb0, 0xb1, 0x7a, 0xda, 0xf7, 0x64, 0x3f, 0x55, 0x98, 0x52, 0xff, - 0x4a, 0x06, 0x75, 0x19, 0xb9, 0x67, 0x91, 0x1d, 0x4c, 0x05, 0x70, 0xaf, 0x4f, 0xed, 0x6d, 0xa6, - 0xc9, 0xbe, 0x86, 0x05, 0xf0, 0x1c, 0x0f, 0x60, 0x31, 0xa6, 0xf1, 0x44, 0x90, 0x8e, 0x68, 0xbc, - 0x15, 0xc8, 0x3b, 0xf8, 0x3b, 0x55, 0xb3, 0x5b, 0xa3, 0x87, 0x4b, 0x4c, 0x8c, 0xa5, 0x4e, 0x08, - 0x6b, 0x94, 0x80, 0xfa, 0x9d, 0x60, 0x12, 0xf4, 0xe3, 0x9c, 0x76, 0x2c, 0x1d, 0x98, 0xd9, 0x64, - 0xfa, 0x62, 0xa7, 0xab, 0x2e, 0xfd, 0xec, 0x1b, 0xf5, 0x7d, 0x39, 0x38, 0xde, 0xaf, 0x3a, 0xea, - 0xbb, 0x32, 0xdc, 0x0e, 0x3b, 0xc2, 0x43, 0x7e, 0x86, 0x6e, 0x20, 0x7a, 0x2f, 0xca, 0x93, 0xe0, - 0x44, 0xb0, 0x0c, 0xd7, 0xb0, 0xaa, 0xe8, 0xa2, 0xd3, 0x41, 0xae, 0x8b, 0x6c, 0x5c, 0xb5, 0x49, - 0xad, 0xff, 0x47, 0xe5, 0x29, 0x70, 0xb9, 0x61, 0x3a, 0x46, 0x1b, 0xd9, 0x0d, 0xa3, 0xeb, 0x14, - 0xcd, 0x76, 0x63, 0xd7, 0xb5, 0x6c, 0x43, 0xa7, 0x57, 0x51, 0x4e, 0x6a, 0x51, 0x9f, 0x95, 0x1b, - 0xa1, 0x60, 0x38, 0x35, 0xf3, 0xbc, 0xa5, 0xdb, 0x6d, 0xc3, 0xdc, 0x5a, 0x35, 0x1c, 0x97, 0x7a, - 0x00, 0xef, 0x4b, 0x57, 0xff, 0x49, 0x16, 0x3d, 0x4c, 0x37, 0x00, 0xd6, 0x88, 0x0e, 0xe5, 0xe7, - 0x65, 0x91, 0xe3, 0x71, 0xc9, 0x68, 0x27, 0x53, 0x96, 0xe7, 0x8c, 0xdb, 0x90, 0xe8, 0x3f, 0x82, - 0xe3, 0xae, 0x85, 0xa4, 0xfb, 0x86, 0xc0, 0xd9, 0xb2, 0x56, 0x59, 0xaa, 0x94, 0x3d, 0xb3, 0xe2, - 0x04, 0x1c, 0x0b, 0xbf, 0x2d, 0xde, 0xdf, 0xac, 0x97, 0xab, 0x8d, 0xc2, 0xa4, 0xd7, 0x4f, 0x91, - 0xe4, 0xa5, 0x62, 0x65, 0xb5, 0xbc, 0xd8, 0x6c, 0xd4, 0xbc, 0x2f, 0x8b, 0xc3, 0x99, 0x16, 0xea, - 0x43, 0x59, 0x38, 0x8a, 0x65, 0x7b, 0x09, 0x4b, 0xd5, 0x13, 0x4a, 0x8f, 0xaf, 0x6d, 0x00, 0xd0, - 0x14, 0x11, 0xaf, 0xfa, 0x29, 0xe1, 0x9b, 0x36, 0x19, 0x08, 0x7b, 0xca, 0x88, 0xd0, 0x8c, 0x6f, - 0x4b, 0x22, 0x11, 0x2a, 0x84, 0xc9, 0x26, 0x53, 0x8a, 0x7f, 0x1f, 0xf7, 0x88, 0x13, 0x0d, 0x3e, - 0xb6, 0x32, 0x4b, 0xf8, 0xe7, 0xa7, 0xaf, 0x57, 0x34, 0xac, 0x0e, 0x73, 0x00, 0x38, 0x05, 0x6b, - 0x10, 0xd1, 0x83, 0xbe, 0xe3, 0x55, 0x94, 0x1e, 0x14, 0x4b, 0x8d, 0xca, 0xd9, 0x72, 0x94, 0x1e, - 0x7c, 0x52, 0x86, 0xc9, 0x65, 0xe4, 0x7a, 0x73, 0x2a, 0x47, 0x7d, 0xaa, 0xc0, 0xfa, 0x8f, 0x67, - 0xc6, 0x74, 0xac, 0x96, 0xde, 0x09, 0x96, 0x01, 0xc8, 0x9b, 0xfa, 0x73, 0xc3, 0x98, 0x20, 0x7e, - 0xd1, 0x11, 0xe3, 0xd5, 0x8f, 0x42, 0xce, 0xf5, 0x3e, 0xd3, 0x65, 0xe8, 0x1f, 0x8a, 0x1c, 0xae, - 0x3c, 0x22, 0x8b, 0xba, 0xab, 0x6b, 0x24, 0x3f, 0x33, 0x3a, 0x09, 0xda, 0x2e, 0x11, 0x8c, 0x7c, - 0x3f, 0xda, 0x9f, 0xff, 0x20, 0xc3, 0x09, 0xd2, 0x3e, 0x8a, 0xdd, 0x6e, 0xdd, 0xb5, 0x6c, 0xa4, - 0xa1, 0x16, 0x32, 0xba, 0x6e, 0xcf, 0xfa, 0x9e, 0x4d, 0x52, 0xfd, 0xcd, 0x66, 0xfa, 0xaa, 0xbe, - 0x4a, 0x16, 0x8d, 0xc1, 0xbc, 0xaf, 0x3d, 0xf6, 0x94, 0x17, 0xd1, 0xd8, 0x3f, 0x24, 0x89, 0x44, - 0x55, 0x4e, 0x48, 0x3c, 0x19, 0x50, 0xef, 0x3f, 0x04, 0xa0, 0xfc, 0x95, 0x1b, 0xad, 0x5c, 0x2a, - 0x57, 0xd6, 0xbd, 0x41, 0xe0, 0x6a, 0xb8, 0x72, 0x7d, 0x43, 0x2b, 0xad, 0x14, 0xeb, 0xe5, 0xa6, - 0x56, 0x5e, 0xae, 0xd4, 0x1b, 0xd4, 0x29, 0x8b, 0xfc, 0x35, 0xa1, 0x5c, 0x05, 0xa7, 0xea, 0x1b, - 0x0b, 0xf5, 0x92, 0x56, 0x59, 0xc7, 0xe9, 0x5a, 0xb9, 0x5a, 0x3e, 0x47, 0xbf, 0x4e, 0xaa, 0xef, - 0x29, 0xc0, 0xb4, 0x37, 0x01, 0xa8, 0x93, 0x79, 0x81, 0xfa, 0xf5, 0x2c, 0x4c, 0x6b, 0xc8, 0xb1, - 0x3a, 0x7b, 0x78, 0x8e, 0x30, 0xae, 0xa9, 0xc7, 0xb7, 0x64, 0xd1, 0xf3, 0xdb, 0x0c, 0xb3, 0xf3, - 0x0c, 0xa3, 0xd1, 0x13, 0x4d, 0x7d, 0x4f, 0x37, 0x3a, 0xfa, 0x79, 0xda, 0xd5, 0x4c, 0x6a, 0x61, - 0x82, 0x32, 0x0f, 0x8a, 0x75, 0xd1, 0x44, 0x76, 0xbd, 0x75, 0xb1, 0xec, 0x6e, 0x17, 0xdb, 0x6d, - 0x1b, 0x39, 0x0e, 0x5d, 0xbd, 0xe8, 0xf3, 0x45, 0xb9, 0x01, 0x8e, 0xe2, 0x54, 0x26, 0x33, 0x71, - 0x90, 0xe9, 0x4d, 0x0e, 0x72, 0x16, 0xcd, 0x4b, 0x7e, 0xce, 0x1c, 0x93, 0x33, 0x4c, 0x66, 0x8f, - 0x4b, 0xe4, 0xf9, 0x53, 0x3a, 0xd7, 0xc0, 0xb4, 0xa9, 0xef, 0xa0, 0xf2, 0x83, 0x5d, 0xc3, 0x46, - 0x0e, 0x76, 0x8c, 0x91, 0x35, 0x36, 0x49, 0x7d, 0x9f, 0xd0, 0x79, 0x73, 0x31, 0x89, 0x25, 0xd3, - 0xfd, 0xe5, 0x21, 0x54, 0xbf, 0x4f, 0x3f, 0x23, 0xab, 0xef, 0x91, 0x61, 0x86, 0x32, 0x55, 0x34, - 0x2f, 0x55, 0xda, 0xea, 0xd5, 0x9c, 0xf1, 0xab, 0x7b, 0x69, 0xbe, 0xf1, 0x8b, 0x5f, 0xd4, 0x5f, - 0x94, 0x45, 0xdd, 0x9d, 0xfb, 0x54, 0x1c, 0x97, 0x11, 0xed, 0x38, 0xba, 0x69, 0xed, 0x52, 0x47, - 0xd5, 0x49, 0x8d, 0xbc, 0xa4, 0xb9, 0xa8, 0xa7, 0xfe, 0x89, 0x90, 0x33, 0xb5, 0x60, 0x35, 0x0e, - 0x09, 0xc0, 0x8f, 0xc8, 0x30, 0x47, 0xb9, 0xaa, 0xd3, 0x73, 0x3e, 0x42, 0x07, 0xde, 0x7e, 0x59, - 0xd8, 0x10, 0xec, 0x53, 0x7f, 0x5a, 0xd2, 0xa3, 0x06, 0xc8, 0x0f, 0x08, 0x05, 0x47, 0x13, 0xae, - 0xc8, 0x21, 0x41, 0xf9, 0xa6, 0x2c, 0x4c, 0x6f, 0x38, 0xc8, 0xa6, 0x7e, 0xfb, 0xea, 0x2b, 0xb2, - 0x20, 0x2f, 0x23, 0x6e, 0x23, 0xf5, 0x05, 0xc2, 0x1e, 0xbe, 0x6c, 0x65, 0x19, 0xa2, 0x9e, 0x8d, - 0x14, 0x01, 0xdb, 0xf5, 0x30, 0x47, 0x44, 0x5a, 0x74, 0x5d, 0xcf, 0x48, 0xf4, 0xbd, 0x69, 0x7b, - 0x52, 0x47, 0xb1, 0x55, 0x84, 0xcb, 0xf2, 0xb2, 0x94, 0x3c, 0x9e, 0x56, 0xd1, 0x26, 0x99, 0xcf, - 0x66, 0xb5, 0x9e, 0x54, 0xe5, 0x16, 0xb8, 0xcc, 0xea, 0x22, 0x72, 0x7e, 0x85, 0xc9, 0x9c, 0xc3, - 0x99, 0xfb, 0x7d, 0x52, 0xbf, 0x2e, 0xe4, 0xab, 0x2b, 0x2e, 0x9d, 0x64, 0xba, 0xd0, 0x1d, 0x8d, - 0x49, 0x72, 0x1c, 0x0a, 0x5e, 0x0e, 0xbc, 0xff, 0xa2, 0x95, 0xeb, 0xb5, 0xd5, 0xb3, 0xe5, 0xfe, - 0xcb, 0x18, 0x39, 0xf5, 0x39, 0x32, 0x4c, 0x2d, 0xd8, 0x96, 0xde, 0x6e, 0xe9, 0x8e, 0xab, 0x7e, - 0x47, 0x82, 0x99, 0x75, 0xfd, 0x52, 0xc7, 0xd2, 0xdb, 0xd8, 0xbf, 0xbf, 0xa7, 0x2f, 0xe8, 0x92, - 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0xf9, 0x83, 0x81, 0xc1, 0xd1, 0xbd, 0x8c, 0xc8, 0x85, 0x9a, 0xc1, - 0x36, 0x9f, 0xd4, 0x2f, 0x58, 0xa9, 0xcf, 0xd7, 0x3c, 0xcb, 0x53, 0x84, 0x45, 0xf9, 0x1e, 0xb1, - 0xf0, 0xa3, 0x22, 0x24, 0x0f, 0x67, 0x57, 0xfe, 0xb9, 0x93, 0x90, 0x5f, 0x44, 0xd8, 0x8a, 0xfb, - 0xef, 0x12, 0x4c, 0xd4, 0x91, 0x8b, 0x2d, 0xb8, 0xdb, 0x39, 0x4f, 0xe1, 0x36, 0xce, 0x10, 0x3a, - 0xb1, 0xfb, 0xef, 0xde, 0x64, 0x9d, 0x39, 0x6f, 0x8d, 0x9f, 0x13, 0x78, 0x24, 0x92, 0x72, 0xe7, - 0x69, 0x99, 0x07, 0xf2, 0x48, 0x8c, 0x25, 0x95, 0xbe, 0xaf, 0xd5, 0x5b, 0x24, 0xea, 0x5a, 0xc5, - 0xf4, 0x7a, 0xbf, 0xcb, 0xea, 0x67, 0xac, 0xb7, 0x19, 0x65, 0x3e, 0xc6, 0x39, 0xea, 0x89, 0x30, - 0x41, 0x64, 0xee, 0xcf, 0x47, 0x7b, 0xfd, 0x14, 0x08, 0x09, 0x7c, 0xf6, 0xda, 0xcf, 0x29, 0xe8, - 0xa2, 0x16, 0x5d, 0xf8, 0x58, 0x62, 0x10, 0xcc, 0x54, 0x91, 0x7b, 0xd1, 0xb2, 0x2f, 0xd4, 0x5d, - 0xdd, 0x45, 0xea, 0xbf, 0x4b, 0x20, 0xd7, 0x91, 0xcb, 0x46, 0x3f, 0xa9, 0xc2, 0x31, 0x52, 0x21, - 0x9a, 0x11, 0xf7, 0xdf, 0xa4, 0x22, 0xd7, 0xf4, 0x15, 0x02, 0x93, 0x4f, 0xdb, 0xff, 0xab, 0xfa, - 0x1b, 0x7d, 0x83, 0x3e, 0x49, 0x7d, 0x26, 0x0d, 0x54, 0x32, 0x2c, 0x83, 0x9e, 0x82, 0x45, 0xe8, - 0xe9, 0x7b, 0x85, 0xcc, 0x6a, 0x31, 0x9a, 0x87, 0xd3, 0x15, 0x7c, 0xe0, 0x0a, 0xc8, 0x96, 0xb6, - 0x75, 0x57, 0x7d, 0xb3, 0x0c, 0x50, 0x6c, 0xb7, 0xd7, 0x88, 0x0f, 0x38, 0xeb, 0x90, 0x76, 0x06, - 0x66, 0x5a, 0xdb, 0x7a, 0x78, 0xb7, 0x09, 0xe9, 0x0f, 0xb8, 0x34, 0xe5, 0x49, 0xa1, 0x33, 0x39, - 0x91, 0xaa, 0xda, 0x03, 0x93, 0x57, 0x06, 0xa5, 0x1d, 0x38, 0x9a, 0xf3, 0xa1, 0x30, 0x63, 0x8f, - 0xd0, 0x79, 0xbf, 0xcf, 0x87, 0xec, 0x45, 0xcf, 0xe1, 0x28, 0xe9, 0xe0, 0x80, 0x4d, 0x98, 0x90, - 0xf0, 0xa4, 0xb7, 0x58, 0x40, 0x8f, 0x78, 0xbe, 0xc6, 0x12, 0xba, 0x56, 0x29, 0xb7, 0x0d, 0x5f, - 0xb4, 0x34, 0x60, 0x96, 0xfa, 0xfc, 0x4c, 0x32, 0xf8, 0xe2, 0x05, 0x77, 0x0f, 0xcc, 0xa2, 0xb6, - 0xe1, 0x22, 0xbf, 0x96, 0x54, 0x80, 0x71, 0x10, 0xf3, 0x3f, 0xa8, 0xcf, 0x16, 0x0e, 0xba, 0x86, - 0x05, 0xba, 0xbf, 0x46, 0x11, 0xed, 0x4f, 0x2c, 0x8c, 0x9a, 0x18, 0xcd, 0xf4, 0xc1, 0xfa, 0x39, - 0x19, 0x4e, 0x34, 0xac, 0xad, 0xad, 0x0e, 0xf2, 0xc5, 0x84, 0x88, 0x77, 0xa6, 0xaa, 0x8f, 0x12, - 0x2e, 0xbc, 0x13, 0x64, 0x3d, 0x60, 0x04, 0x47, 0xc9, 0xbc, 0x17, 0xfe, 0xc4, 0x54, 0xec, 0x2c, - 0x0a, 0x8b, 0xab, 0x2f, 0x9f, 0x11, 0x28, 0x88, 0x05, 0x7c, 0x16, 0x26, 0x9b, 0x3e, 0x10, 0x9f, - 0x93, 0x60, 0x96, 0xdc, 0x5c, 0xe9, 0x2b, 0xe8, 0x7d, 0x23, 0x04, 0x40, 0xfd, 0x4e, 0x46, 0xd4, - 0xcf, 0x16, 0xcb, 0x84, 0xe3, 0x24, 0x42, 0xc4, 0x62, 0x41, 0x55, 0x06, 0x92, 0x4b, 0x5f, 0xb4, - 0x7f, 0x2e, 0xc3, 0xf4, 0x32, 0xf2, 0x5b, 0x9a, 0x93, 0xb8, 0x27, 0x3a, 0x03, 0x33, 0xf8, 0xfa, - 0xb6, 0x1a, 0x3d, 0x26, 0x49, 0x56, 0xcd, 0xb8, 0x34, 0xe5, 0x3a, 0x98, 0x3d, 0x8f, 0x36, 0x2d, - 0x1b, 0xd5, 0xb8, 0xb3, 0x94, 0x7c, 0x62, 0x44, 0x78, 0x3a, 0x2e, 0x0e, 0xda, 0x02, 0x8f, 0xcd, - 0x4d, 0xfb, 0x85, 0xc9, 0x54, 0x25, 0x62, 0xcc, 0x79, 0x32, 0x4c, 0x52, 0xe4, 0x7d, 0x33, 0x2d, - 0xae, 0x5f, 0x0c, 0xf2, 0xaa, 0xbf, 0x17, 0x20, 0x5a, 0xe6, 0x10, 0xbd, 0x35, 0x09, 0x13, 0x63, - 0xb9, 0xdf, 0xbd, 0xc0, 0x94, 0xbf, 0x70, 0xa9, 0xd2, 0x76, 0xd4, 0xb5, 0x64, 0x98, 0x9e, 0x06, - 0x08, 0x1a, 0x87, 0x1f, 0xd6, 0x82, 0x49, 0xe1, 0x23, 0xd7, 0xc7, 0x1e, 0xd4, 0xeb, 0x15, 0x07, - 0x66, 0x67, 0xc4, 0xc0, 0x88, 0x1d, 0xf0, 0x13, 0xe1, 0x24, 0x7d, 0x74, 0x3e, 0x21, 0xc3, 0x89, - 0xe0, 0xfc, 0xd1, 0xaa, 0xee, 0x84, 0xed, 0xae, 0x94, 0x0c, 0x22, 0xee, 0xc0, 0x47, 0xd0, 0x58, - 0xbe, 0x91, 0x6c, 0xcc, 0xe8, 0xcb, 0xc9, 0x68, 0xd1, 0x51, 0x6e, 0x82, 0x63, 0xe6, 0xee, 0x4e, - 0x20, 0x75, 0xdc, 0xe2, 0x69, 0x0b, 0xdf, 0xff, 0x21, 0xc9, 0xc8, 0x24, 0xc2, 0xfc, 0x58, 0xe6, - 0x94, 0xdc, 0x91, 0xae, 0x27, 0x24, 0x82, 0x51, 0xfd, 0xd7, 0x4c, 0xa2, 0xde, 0x6d, 0xf0, 0x99, - 0xaf, 0x04, 0xbd, 0xd4, 0x21, 0x1e, 0xf8, 0x3a, 0x33, 0x01, 0xb9, 0xf2, 0x4e, 0xd7, 0xbd, 0x74, - 0xe6, 0xb1, 0x30, 0x5b, 0x77, 0x6d, 0xa4, 0xef, 0x30, 0x3b, 0x03, 0xae, 0x75, 0x01, 0x99, 0xfe, - 0xce, 0x00, 0x7e, 0xb9, 0xe3, 0x76, 0x98, 0x30, 0xad, 0xa6, 0xbe, 0xeb, 0x6e, 0x2b, 0x57, 0xef, - 0x3b, 0x52, 0x4f, 0xc1, 0xaf, 0xd1, 0x18, 0x46, 0x5f, 0xba, 0x13, 0xaf, 0x0d, 0xe7, 0x4d, 0xab, - 0xb8, 0xeb, 0x6e, 0x2f, 0x5c, 0xf5, 0x91, 0xbf, 0x3f, 0x9d, 0xf9, 0xe4, 0xdf, 0x9f, 0xce, 0x7c, - 0xf1, 0xef, 0x4f, 0x67, 0x7e, 0xf9, 0xcb, 0xa7, 0x8f, 0x7c, 0xf2, 0xcb, 0xa7, 0x8f, 0x7c, 0xee, - 0xcb, 0xa7, 0x8f, 0xfc, 0xb8, 0xd4, 0x3d, 0x7f, 0x3e, 0x8f, 0xa9, 0x3c, 0xf1, 0xff, 0x0b, 0x00, - 0x00, 0xff, 0xff, 0x84, 0xed, 0xd9, 0x53, 0x61, 0x14, 0x02, 0x00, + // 20115 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x2b, 0x47, + 0x75, 0x2f, 0xba, 0xd5, 0x2d, 0x69, 0x34, 0x35, 0x8f, 0xad, 0xdd, 0xde, 0x7b, 0x7b, 0xbb, 0x6c, + 0xb6, 0x9d, 0x6d, 0x63, 0x1c, 0x63, 0xc6, 0xd8, 0x10, 0x82, 0x8d, 0x8d, 0xad, 0xd1, 0xf4, 0xcc, + 0xc8, 0x9e, 0x91, 0x26, 0x2d, 0xcd, 0xde, 0x38, 0xb9, 0xb9, 0x4a, 0x6f, 0xa9, 0x66, 0xa6, 0xbd, + 0x35, 0xdd, 0xa2, 0xbb, 0x67, 0xb6, 0x87, 0xfb, 0x9d, 0x7b, 0x42, 0x88, 0x79, 0x84, 0x10, 0x42, + 0x08, 0x49, 0x80, 0x00, 0xc1, 0xc4, 0x10, 0x20, 0xbc, 0x5f, 0x07, 0x08, 0x8f, 0xf0, 0x08, 0x8f, + 0x10, 0x42, 0x20, 0x84, 0x47, 0xe2, 0x2f, 0x10, 0x08, 0x21, 0xe7, 0x0b, 0x97, 0x4b, 0xee, 0x09, + 0x84, 0x1c, 0x38, 0xdc, 0xaf, 0xab, 0xaa, 0xbb, 0xab, 0x34, 0xea, 0x56, 0xb5, 0x46, 0xad, 0x31, + 0xe1, 0xfc, 0xd7, 0x5d, 0x5d, 0xbd, 0x6a, 0xd5, 0xfa, 0xad, 0xaa, 0x5a, 0x55, 0xb5, 0x6a, 0x15, + 0x38, 0xd5, 0x3d, 0x7f, 0x63, 0xd7, 0xb6, 0x5c, 0xcb, 0xb9, 0xb1, 0x65, 0x6d, 0x6f, 0xeb, 0x66, + 0xdb, 0x99, 0xc3, 0xef, 0xca, 0x84, 0x6e, 0xee, 0xb9, 0x7b, 0x5d, 0x04, 0xaf, 0xe9, 0x5e, 0xd8, + 0xbc, 0xb1, 0x63, 0x9c, 0xbf, 0xb1, 0x7b, 0xfe, 0xc6, 0x6d, 0xab, 0x8d, 0x3a, 0xfe, 0x0f, 0xf8, + 0x85, 0x66, 0x87, 0xd7, 0x45, 0xe5, 0xea, 0x58, 0x2d, 0xbd, 0xe3, 0xb8, 0x96, 0x8d, 0x68, 0xce, + 0x93, 0x61, 0x91, 0x68, 0x17, 0x99, 0xae, 0x4f, 0xe1, 0x8a, 0x4d, 0xcb, 0xda, 0xec, 0x20, 0xf2, + 0xed, 0xfc, 0xce, 0xc6, 0x8d, 0x8e, 0x6b, 0xef, 0xb4, 0x5c, 0xfa, 0xf5, 0xaa, 0xde, 0xaf, 0x6d, + 0xe4, 0xb4, 0x6c, 0xa3, 0xeb, 0x5a, 0x36, 0xc9, 0x71, 0xe6, 0x47, 0x0f, 0x14, 0x80, 0xac, 0x75, + 0x5b, 0xf0, 0xbb, 0x13, 0x40, 0x2e, 0x75, 0xbb, 0xf0, 0xa3, 0x12, 0x00, 0x4b, 0xc8, 0x3d, 0x8b, + 0x6c, 0xc7, 0xb0, 0x4c, 0x78, 0x14, 0x4c, 0x68, 0xe8, 0xa9, 0x3b, 0xc8, 0x71, 0x6f, 0xcd, 0x3e, + 0xfb, 0x1b, 0x72, 0x06, 0x3e, 0x28, 0x81, 0x82, 0x86, 0x9c, 0xae, 0x65, 0x3a, 0x48, 0xb9, 0x13, + 0xe4, 0x90, 0x6d, 0x5b, 0xf6, 0xa9, 0xcc, 0x55, 0x99, 0xeb, 0xa6, 0x6e, 0xbe, 0x7e, 0x8e, 0x56, + 0x7f, 0x4e, 0xeb, 0xb6, 0xe6, 0x4a, 0xdd, 0xee, 0x5c, 0x48, 0x69, 0xce, 0xff, 0x69, 0x4e, 0xf5, + 0xfe, 0xd0, 0xc8, 0x8f, 0xca, 0x29, 0x30, 0xb1, 0x4b, 0x32, 0x9c, 0x92, 0xae, 0xca, 0x5c, 0x37, + 0xa9, 0xf9, 0xaf, 0xde, 0x97, 0x36, 0x72, 0x75, 0xa3, 0xe3, 0x9c, 0x92, 0xc9, 0x17, 0xfa, 0x0a, + 0x1f, 0xc8, 0x80, 0x1c, 0x26, 0xa2, 0x94, 0x41, 0xb6, 0x65, 0xb5, 0x11, 0x2e, 0x7e, 0xf6, 0xe6, + 0x1b, 0xc5, 0x8b, 0x9f, 0x2b, 0x5b, 0x6d, 0xa4, 0xe1, 0x9f, 0x95, 0xab, 0xc0, 0x94, 0x2f, 0x96, + 0x90, 0x0d, 0x36, 0xe9, 0xcc, 0xcd, 0x20, 0xeb, 0xe5, 0x57, 0x0a, 0x20, 0x5b, 0x5d, 0x5f, 0x59, + 0x29, 0x1e, 0x51, 0x8e, 0x81, 0x99, 0xf5, 0xea, 0xdd, 0xd5, 0xda, 0xb9, 0x6a, 0x53, 0xd5, 0xb4, + 0x9a, 0x56, 0xcc, 0x28, 0x33, 0x60, 0x72, 0xbe, 0xb4, 0xd0, 0xac, 0x54, 0xd7, 0xd6, 0x1b, 0x45, + 0x09, 0xbe, 0x5c, 0x06, 0xb3, 0x75, 0xe4, 0x2e, 0xa0, 0x5d, 0xa3, 0x85, 0xea, 0xae, 0xee, 0x22, + 0xf8, 0xfc, 0x4c, 0x20, 0x4c, 0x65, 0xdd, 0x2b, 0x34, 0xf8, 0x44, 0x2b, 0xf0, 0xb8, 0x7d, 0x15, + 0xe0, 0x29, 0xcc, 0xd1, 0xbf, 0xe7, 0x98, 0x34, 0x8d, 0xa5, 0x73, 0xe6, 0x31, 0x60, 0x8a, 0xf9, + 0xa6, 0xcc, 0x02, 0x30, 0x5f, 0x2a, 0xdf, 0xbd, 0xa4, 0xd5, 0xd6, 0xab, 0x0b, 0xc5, 0x23, 0xde, + 0xfb, 0x62, 0x4d, 0x53, 0xe9, 0x7b, 0x06, 0x7e, 0x3f, 0xc3, 0x80, 0xb9, 0xc0, 0x83, 0x39, 0x37, + 0x98, 0x99, 0x3e, 0x80, 0xc2, 0x57, 0x07, 0xe0, 0x2c, 0x71, 0xe0, 0x3c, 0x2e, 0x19, 0xb9, 0xf4, + 0x01, 0xba, 0x5f, 0x02, 0x85, 0xfa, 0xd6, 0x8e, 0xdb, 0xb6, 0x2e, 0x9a, 0x70, 0x32, 0x40, 0x06, + 0x7e, 0x8b, 0x95, 0xc9, 0x93, 0x79, 0x99, 0x5c, 0xb7, 0xbf, 0x12, 0x94, 0x42, 0x84, 0x34, 0xfe, + 0x20, 0x90, 0x46, 0x89, 0x93, 0xc6, 0x63, 0x44, 0x09, 0xa5, 0x2f, 0x87, 0x97, 0x3c, 0x11, 0xe4, + 0xea, 0x5d, 0xbd, 0x85, 0xe0, 0xa7, 0x64, 0x30, 0xbd, 0x82, 0xf4, 0x5d, 0x54, 0xea, 0x76, 0x6d, + 0x6b, 0x17, 0xc1, 0x72, 0xa8, 0xaf, 0xa7, 0xc0, 0x84, 0xe3, 0x65, 0xaa, 0xb4, 0x71, 0x0d, 0x26, + 0x35, 0xff, 0x55, 0x39, 0x0d, 0x80, 0xd1, 0x46, 0xa6, 0x6b, 0xb8, 0x06, 0x72, 0x4e, 0x49, 0x57, + 0xc9, 0xd7, 0x4d, 0x6a, 0x4c, 0x0a, 0xfc, 0xae, 0x24, 0xaa, 0x63, 0x98, 0x8b, 0x39, 0x96, 0x83, + 0x08, 0xa9, 0xbe, 0x4a, 0x12, 0xd1, 0xb1, 0x81, 0xe4, 0x92, 0xc9, 0xf6, 0x8d, 0x99, 0xe4, 0xc2, + 0xf5, 0x72, 0x54, 0x6b, 0xcd, 0xfa, 0x7a, 0x79, 0xb9, 0x59, 0x5f, 0x2b, 0x95, 0xd5, 0x22, 0x52, + 0x8e, 0x83, 0x22, 0x7e, 0x6c, 0x56, 0xea, 0xcd, 0x05, 0x75, 0x45, 0x6d, 0xa8, 0x0b, 0xc5, 0x0d, + 0x45, 0x01, 0xb3, 0x9a, 0xfa, 0x73, 0xeb, 0x6a, 0xbd, 0xd1, 0x5c, 0x2c, 0x55, 0x56, 0xd4, 0x85, + 0xe2, 0xa6, 0xf7, 0xf3, 0x4a, 0x65, 0xb5, 0xd2, 0x68, 0x6a, 0x6a, 0xa9, 0xbc, 0xac, 0x2e, 0x14, + 0xb7, 0x94, 0x4b, 0xc1, 0x25, 0xd5, 0x5a, 0xb3, 0xb4, 0xb6, 0xa6, 0xd5, 0xce, 0xaa, 0x4d, 0xfa, + 0x47, 0xbd, 0x68, 0x90, 0x82, 0x1a, 0xcd, 0xfa, 0x72, 0x49, 0x53, 0x4b, 0xf3, 0x2b, 0x6a, 0xf1, + 0x5e, 0xf8, 0x0c, 0x19, 0xcc, 0xac, 0xea, 0x17, 0x50, 0x7d, 0x4b, 0xb7, 0x91, 0x7e, 0xbe, 0x83, + 0xe0, 0xd5, 0x02, 0x78, 0xc2, 0x4f, 0xb1, 0x78, 0xa9, 0x3c, 0x5e, 0x37, 0xf6, 0x11, 0x30, 0x57, + 0x44, 0x04, 0x60, 0xff, 0x1e, 0x34, 0x83, 0x65, 0x0e, 0xb0, 0xc7, 0x27, 0xa4, 0x97, 0x0c, 0xb1, + 0x5f, 0x79, 0x18, 0x20, 0x06, 0x1f, 0x92, 0xc1, 0x6c, 0xc5, 0xdc, 0x35, 0x5c, 0xb4, 0x84, 0x4c, + 0x64, 0x7b, 0xe3, 0x80, 0x10, 0x0c, 0x0f, 0xca, 0x0c, 0x0c, 0x8b, 0x3c, 0x0c, 0x8f, 0xed, 0x23, + 0x36, 0xbe, 0x8c, 0x88, 0xd1, 0xf6, 0x0a, 0x30, 0x69, 0xe0, 0x7c, 0x65, 0xa3, 0x4d, 0x25, 0x16, + 0x26, 0x28, 0xd7, 0x80, 0x19, 0xf2, 0xb2, 0x68, 0x74, 0xd0, 0xdd, 0x68, 0x8f, 0x8e, 0xbb, 0x7c, + 0x22, 0xfc, 0xf5, 0xa0, 0xf1, 0x55, 0x38, 0x2c, 0x7f, 0x26, 0x29, 0x53, 0xc9, 0xc0, 0x7c, 0xd1, + 0xc3, 0xa1, 0xf9, 0xed, 0x6b, 0x65, 0x06, 0xfc, 0xa1, 0x04, 0xa6, 0xea, 0xae, 0xd5, 0xf5, 0x54, + 0xd6, 0x30, 0x37, 0xc5, 0xc0, 0xfd, 0x38, 0xdb, 0xc6, 0xca, 0x3c, 0xb8, 0x8f, 0xe9, 0x23, 0x47, + 0xa6, 0x80, 0x88, 0x16, 0xf6, 0xdd, 0xa0, 0x85, 0x2d, 0x72, 0xa8, 0xdc, 0x9c, 0x88, 0xda, 0x8f, + 0x61, 0xfb, 0x7a, 0x91, 0x0c, 0x8a, 0xbe, 0x9a, 0xb9, 0xe5, 0x1d, 0xdb, 0x46, 0xa6, 0x2b, 0x06, + 0xc2, 0xdf, 0xb2, 0x20, 0x2c, 0xf3, 0x20, 0xdc, 0x1c, 0xa3, 0xcc, 0x7e, 0x29, 0x29, 0xb6, 0xb1, + 0x0f, 0x06, 0x68, 0xde, 0xcd, 0xa1, 0xf9, 0xb3, 0xc9, 0xd9, 0x4a, 0x06, 0xe9, 0xf2, 0x10, 0x88, + 0x1e, 0x07, 0x45, 0x6f, 0x4c, 0x2a, 0x37, 0x2a, 0x67, 0xd5, 0x66, 0xa5, 0x7a, 0xb6, 0xd2, 0x50, + 0x8b, 0x08, 0xbe, 0x50, 0x06, 0xd3, 0x84, 0x35, 0x0d, 0xed, 0x5a, 0x17, 0x04, 0x7b, 0xbd, 0x87, + 0x12, 0x1a, 0x0b, 0x6c, 0x09, 0x11, 0x2d, 0xe3, 0xd7, 0x12, 0x18, 0x0b, 0x31, 0xe4, 0x1e, 0x4e, + 0xbd, 0xd5, 0xbe, 0x66, 0xb0, 0xd9, 0xa7, 0xb5, 0xf4, 0xed, 0xad, 0x5e, 0x94, 0x05, 0x80, 0x54, + 0xf2, 0xac, 0x81, 0x2e, 0xc2, 0xd5, 0x10, 0x13, 0x4e, 0x6d, 0x33, 0x03, 0xd5, 0x56, 0xea, 0xa7, + 0xb6, 0xef, 0x62, 0xc7, 0xac, 0x79, 0x1e, 0xbd, 0x1b, 0x22, 0xc5, 0xed, 0x71, 0x12, 0x3d, 0x3b, + 0xf4, 0x15, 0x45, 0xe2, 0xad, 0xce, 0x2b, 0xc0, 0x24, 0x7e, 0xac, 0xea, 0xdb, 0x88, 0xb6, 0xa1, + 0x30, 0x41, 0x39, 0x03, 0xa6, 0x49, 0xc6, 0x96, 0x65, 0x7a, 0xf5, 0xc9, 0xe2, 0x0c, 0x5c, 0x9a, + 0x07, 0x62, 0xcb, 0x46, 0xba, 0x6b, 0xd9, 0x98, 0x46, 0x8e, 0x80, 0xc8, 0x24, 0xc1, 0x6f, 0x06, + 0xad, 0x50, 0xe5, 0x34, 0xe7, 0xa6, 0x24, 0x55, 0x49, 0xa6, 0x37, 0xbb, 0xc3, 0xb5, 0x3f, 0xd2, + 0xea, 0x9a, 0x1e, 0xda, 0x8b, 0x78, 0x6a, 0x87, 0x94, 0x93, 0x40, 0xa1, 0xa9, 0x5e, 0xde, 0x72, + 0xad, 0xda, 0x50, 0xab, 0x8d, 0xe2, 0x46, 0x5f, 0x8d, 0xda, 0x84, 0xaf, 0xca, 0x82, 0xec, 0x5d, + 0x96, 0x61, 0xc2, 0xfb, 0x33, 0x9c, 0x4a, 0x98, 0xc8, 0xbd, 0x68, 0xd9, 0x17, 0x82, 0x86, 0x1a, + 0x26, 0xc4, 0x63, 0x13, 0xaa, 0x92, 0x3c, 0x50, 0x95, 0xb2, 0xfd, 0x54, 0xe9, 0xb7, 0x58, 0x55, + 0xba, 0x8d, 0x57, 0xa5, 0x6b, 0xfb, 0xc8, 0xdf, 0x63, 0x3e, 0xa2, 0x03, 0xf8, 0x58, 0xd0, 0x01, + 0xdc, 0xc1, 0xc1, 0xf8, 0x68, 0x31, 0x32, 0xc9, 0x00, 0xfc, 0x72, 0xaa, 0x0d, 0xbf, 0x1f, 0xd4, + 0x9b, 0x11, 0x50, 0x6f, 0xf5, 0xe9, 0x13, 0x8c, 0xfd, 0x5d, 0xc7, 0xbd, 0xfb, 0xbb, 0x89, 0x0b, + 0xca, 0x09, 0x70, 0x6c, 0xa1, 0xb2, 0xb8, 0xa8, 0x6a, 0x6a, 0xb5, 0xd1, 0xac, 0xaa, 0x8d, 0x73, + 0x35, 0xed, 0xee, 0x62, 0x07, 0x3e, 0x20, 0x03, 0xe0, 0x49, 0xa8, 0xac, 0x9b, 0x2d, 0xd4, 0x11, + 0xeb, 0xd1, 0xff, 0x1f, 0x29, 0x59, 0x9f, 0x10, 0xd2, 0x8f, 0x80, 0xf3, 0x65, 0x92, 0x78, 0xab, + 0x8c, 0x24, 0x96, 0x0c, 0xd4, 0xd7, 0x3d, 0x1c, 0x6c, 0xcf, 0x4b, 0xc0, 0x51, 0x9f, 0x1e, 0xcd, + 0xde, 0x7f, 0xda, 0xf7, 0xa6, 0x2c, 0x98, 0xa5, 0xb0, 0xf8, 0xf3, 0xf8, 0x67, 0x67, 0x44, 0x26, + 0xf2, 0x10, 0x14, 0xe8, 0xb4, 0xdd, 0xef, 0xde, 0x83, 0x77, 0x65, 0x09, 0x4c, 0x75, 0x91, 0xbd, + 0x6d, 0x38, 0x8e, 0x61, 0x99, 0x64, 0x41, 0x6e, 0xf6, 0xe6, 0x47, 0x06, 0x12, 0xc7, 0x6b, 0x97, + 0x73, 0x6b, 0xba, 0xed, 0x1a, 0x2d, 0xa3, 0xab, 0x9b, 0xee, 0x5a, 0x98, 0x59, 0x63, 0xff, 0x84, + 0x2f, 0x48, 0x38, 0xad, 0xe1, 0x6b, 0x12, 0xa1, 0x12, 0x7f, 0x92, 0x60, 0x4a, 0x12, 0x4b, 0x30, + 0x99, 0x5a, 0x7c, 0x34, 0x55, 0xb5, 0xe8, 0x83, 0xf7, 0xa6, 0x72, 0x19, 0x38, 0x51, 0xa9, 0x96, + 0x6b, 0x9a, 0xa6, 0x96, 0x1b, 0xcd, 0x35, 0x55, 0x5b, 0xad, 0xd4, 0xeb, 0x95, 0x5a, 0xb5, 0x7e, + 0x90, 0xd6, 0x0e, 0x3f, 0x29, 0x07, 0x1a, 0xb3, 0x80, 0x5a, 0x1d, 0xc3, 0x44, 0xf0, 0x8e, 0x03, + 0x2a, 0x0c, 0xbf, 0xea, 0x23, 0x8e, 0x33, 0x2d, 0x3f, 0x02, 0xe7, 0x57, 0x26, 0xc7, 0xb9, 0x3f, + 0xc1, 0xff, 0xc4, 0xcd, 0xff, 0x21, 0x19, 0x1c, 0x63, 0x1a, 0xa2, 0x86, 0xb6, 0x47, 0xb6, 0x92, + 0xf7, 0x2b, 0x6c, 0xdb, 0xad, 0xf0, 0x98, 0xf6, 0xb3, 0xa6, 0xf7, 0xb1, 0x11, 0x01, 0xeb, 0xeb, + 0x02, 0x58, 0x57, 0x38, 0x58, 0x9f, 0x38, 0x04, 0xcd, 0x64, 0xc8, 0xbe, 0x39, 0x55, 0x64, 0x2f, + 0x03, 0x27, 0xd6, 0x4a, 0x5a, 0xa3, 0x52, 0xae, 0xac, 0x95, 0xbc, 0x71, 0x94, 0x19, 0xb2, 0x23, + 0xcc, 0x75, 0x1e, 0xf4, 0xbe, 0xf8, 0x7e, 0x20, 0x0b, 0xae, 0xe8, 0xdf, 0xd1, 0x96, 0xb7, 0x74, + 0x73, 0x13, 0x41, 0x43, 0x04, 0xea, 0x05, 0x30, 0xd1, 0xc2, 0xd9, 0x09, 0xce, 0xec, 0xd6, 0x4d, + 0x4c, 0x5f, 0x4e, 0x4a, 0xd0, 0xfc, 0x5f, 0xe1, 0xdb, 0x58, 0x85, 0x68, 0xf0, 0x0a, 0xf1, 0xe4, + 0x78, 0xf0, 0xf6, 0xf1, 0x1d, 0xa1, 0x1b, 0x9f, 0x09, 0x74, 0xe3, 0x1c, 0xa7, 0x1b, 0xe5, 0x83, + 0x91, 0x4f, 0xa6, 0x26, 0x7f, 0xfe, 0x70, 0xe8, 0x00, 0x22, 0xb5, 0xc9, 0x88, 0x1e, 0x15, 0xfa, + 0x76, 0xf7, 0xaf, 0x90, 0x41, 0x7e, 0x01, 0x75, 0x90, 0xe8, 0x4a, 0xe4, 0xb7, 0x25, 0xd1, 0x0d, + 0x11, 0x02, 0x03, 0xa1, 0x1d, 0xbd, 0x3a, 0xe2, 0x1a, 0xdb, 0xc8, 0x71, 0xf5, 0xed, 0x2e, 0x16, + 0xb5, 0xac, 0x85, 0x09, 0xf0, 0x57, 0x25, 0x91, 0xed, 0x92, 0x98, 0x62, 0xfe, 0x73, 0xac, 0x29, + 0x7e, 0x4e, 0x02, 0x85, 0x3a, 0x72, 0x6b, 0x76, 0x1b, 0xd9, 0xb0, 0x1e, 0x62, 0x74, 0x15, 0x98, + 0xc2, 0xa0, 0x78, 0xd3, 0xcc, 0x00, 0x27, 0x36, 0x49, 0xb9, 0x16, 0xcc, 0x06, 0xaf, 0xf8, 0x77, + 0xda, 0x8d, 0xf7, 0xa4, 0xc2, 0xef, 0x64, 0x44, 0x77, 0x71, 0xe9, 0x92, 0x21, 0xe5, 0x26, 0xa2, + 0x95, 0x8a, 0xed, 0xc8, 0xc6, 0x92, 0x4a, 0x7f, 0xa3, 0xeb, 0x2d, 0x12, 0x00, 0xeb, 0xa6, 0xe3, + 0xcb, 0xf5, 0xd1, 0x09, 0xe4, 0x0a, 0xff, 0x2d, 0x93, 0x6c, 0x16, 0x13, 0x96, 0x13, 0x21, 0xb1, + 0x3f, 0x4c, 0xb0, 0xb6, 0x10, 0x49, 0x2c, 0x7d, 0x99, 0x7d, 0x6d, 0x16, 0xe4, 0xcf, 0xe9, 0x9d, + 0x0e, 0x72, 0xe1, 0xd7, 0x25, 0x90, 0x2f, 0xdb, 0x48, 0x77, 0x11, 0x2b, 0x3a, 0x08, 0x0a, 0xb6, + 0x65, 0xb9, 0x6b, 0xba, 0xbb, 0x45, 0xe5, 0x16, 0xbc, 0x53, 0x87, 0x81, 0x3f, 0x66, 0xbb, 0x8f, + 0x3b, 0x78, 0xd1, 0xfd, 0x34, 0x57, 0x5b, 0x52, 0xd0, 0x1c, 0x29, 0x24, 0xa2, 0xff, 0x80, 0xa0, + 0xb0, 0x6d, 0xa2, 0x6d, 0xcb, 0x34, 0x5a, 0xbe, 0xcd, 0xe9, 0xbf, 0xc3, 0x0f, 0x05, 0x32, 0x9d, + 0xe7, 0x64, 0x3a, 0x27, 0x5c, 0x4a, 0x32, 0x81, 0xd6, 0x87, 0xe8, 0x3d, 0xae, 0x04, 0x97, 0x93, + 0xce, 0xa0, 0xd9, 0xa8, 0x35, 0xcb, 0x9a, 0x5a, 0x6a, 0xa8, 0xcd, 0x95, 0x5a, 0xb9, 0xb4, 0xd2, + 0xd4, 0xd4, 0xb5, 0x5a, 0x11, 0xc1, 0x7f, 0x92, 0x3c, 0xe1, 0xb6, 0xac, 0x5d, 0x64, 0xc3, 0x25, + 0x21, 0x39, 0xc7, 0xc9, 0x84, 0x62, 0xf0, 0x5b, 0xc2, 0x4e, 0x1b, 0x54, 0x3a, 0x94, 0x83, 0x08, + 0xe5, 0xfd, 0xb0, 0x50, 0x73, 0x8f, 0x25, 0xf5, 0x30, 0x90, 0xf4, 0xff, 0x90, 0xc0, 0x44, 0xd9, + 0x32, 0x77, 0x91, 0xed, 0xb2, 0xf3, 0x1d, 0x56, 0x9a, 0x19, 0x5e, 0x9a, 0xde, 0x20, 0x89, 0x4c, + 0xd7, 0xb6, 0xba, 0xfe, 0x84, 0xc7, 0x7f, 0x85, 0xaf, 0x49, 0x2a, 0x61, 0x5a, 0x72, 0xf4, 0xc2, + 0x67, 0xff, 0x82, 0x38, 0xf6, 0xe4, 0x9e, 0x06, 0xf0, 0x40, 0x12, 0x5c, 0xfa, 0x33, 0x90, 0x7e, + 0x97, 0xf2, 0x15, 0x19, 0xcc, 0x90, 0xc6, 0x57, 0x47, 0xd8, 0x42, 0x83, 0x35, 0x76, 0xc9, 0xb1, + 0x47, 0xf8, 0xcb, 0x47, 0x38, 0xf1, 0xe7, 0xf5, 0x6e, 0x37, 0x58, 0x7e, 0x5e, 0x3e, 0xa2, 0xd1, + 0x77, 0xa2, 0xe6, 0xf3, 0x79, 0x90, 0xd5, 0x77, 0xdc, 0x2d, 0xf8, 0x43, 0xe1, 0xc9, 0x27, 0xd7, + 0x19, 0x50, 0x7e, 0x22, 0x20, 0x39, 0x0e, 0x72, 0xae, 0x75, 0x01, 0xf9, 0x72, 0x20, 0x2f, 0x1e, + 0x1c, 0x7a, 0xb7, 0xdb, 0xc0, 0x1f, 0x28, 0x1c, 0xfe, 0xbb, 0x67, 0xeb, 0xe8, 0xad, 0x96, 0xb5, + 0x63, 0xba, 0x15, 0x7f, 0x09, 0x3a, 0x4c, 0x80, 0x5f, 0xcc, 0x88, 0x4c, 0x66, 0x05, 0x18, 0x4c, + 0x06, 0xd9, 0xf9, 0x21, 0x9a, 0xd2, 0x1c, 0xb8, 0xbe, 0xb4, 0xb6, 0xd6, 0x6c, 0xd4, 0xee, 0x56, + 0xab, 0xa1, 0xe1, 0xd9, 0xac, 0x54, 0x9b, 0x8d, 0x65, 0xb5, 0x59, 0x5e, 0xd7, 0xf0, 0x3a, 0x61, + 0xa9, 0x5c, 0xae, 0xad, 0x57, 0x1b, 0x45, 0x04, 0xdf, 0x20, 0x81, 0xe9, 0x72, 0xc7, 0x72, 0x02, + 0x84, 0xaf, 0x0c, 0x11, 0x0e, 0xc4, 0x98, 0x61, 0xc4, 0x08, 0xff, 0x67, 0x46, 0xd4, 0xe9, 0xc0, + 0x17, 0x08, 0x43, 0x3e, 0xa2, 0x97, 0x7a, 0x8d, 0x90, 0xd3, 0xc1, 0x60, 0x7a, 0xe9, 0x37, 0x89, + 0xd7, 0x2f, 0x80, 0x89, 0x12, 0x51, 0x0c, 0xf8, 0xf7, 0x19, 0x90, 0x2f, 0x5b, 0xe6, 0x86, 0xb1, + 0xe9, 0x19, 0x73, 0xc8, 0xd4, 0xcf, 0x77, 0xd0, 0x82, 0xee, 0xea, 0xbb, 0x06, 0xba, 0x88, 0x2b, + 0x50, 0xd0, 0x7a, 0x52, 0x3d, 0xa6, 0x68, 0x0a, 0x3a, 0xbf, 0xb3, 0x89, 0x99, 0x2a, 0x68, 0x6c, + 0x92, 0xf2, 0x44, 0x70, 0x29, 0x79, 0x5d, 0xb3, 0x91, 0x8d, 0x3a, 0x48, 0x77, 0x90, 0x37, 0x2d, + 0x32, 0x51, 0x07, 0x2b, 0x6d, 0x41, 0x8b, 0xfa, 0xac, 0x9c, 0x01, 0xd3, 0xe4, 0x13, 0x36, 0x45, + 0x1c, 0xac, 0xc6, 0x05, 0x8d, 0x4b, 0x53, 0x1e, 0x03, 0x72, 0xe8, 0x3e, 0xd7, 0xd6, 0x4f, 0xb5, + 0x31, 0x5e, 0x97, 0xce, 0x11, 0xaf, 0xc3, 0x39, 0xdf, 0xeb, 0x70, 0xae, 0x8e, 0x7d, 0x12, 0x35, + 0x92, 0x0b, 0x7e, 0xb2, 0x10, 0x18, 0x12, 0x6f, 0x90, 0x43, 0xc5, 0x50, 0x40, 0xd6, 0xd4, 0xb7, + 0x11, 0xd5, 0x0b, 0xfc, 0xac, 0x5c, 0x0f, 0x8e, 0xea, 0xbb, 0xba, 0xab, 0xdb, 0x2b, 0x56, 0x4b, + 0xef, 0xe0, 0xc1, 0xcf, 0x6f, 0xf9, 0xbd, 0x1f, 0xf0, 0x8e, 0x90, 0x6b, 0xd9, 0x08, 0xe7, 0xf2, + 0x77, 0x84, 0xfc, 0x04, 0x8f, 0xba, 0xd1, 0xb2, 0x4c, 0xcc, 0xbf, 0xac, 0xe1, 0x67, 0x4f, 0x2a, + 0x6d, 0xc3, 0xf1, 0x2a, 0x82, 0xa9, 0x54, 0xc9, 0xd6, 0x46, 0x7d, 0xcf, 0x6c, 0xe1, 0xdd, 0xa0, + 0x82, 0x16, 0xf5, 0x59, 0x99, 0x07, 0x53, 0x74, 0x23, 0x64, 0xd5, 0xd3, 0xab, 0x3c, 0xd6, 0xab, + 0xab, 0x78, 0x9f, 0x2e, 0x82, 0xe7, 0x5c, 0x35, 0xcc, 0xa7, 0xb1, 0x3f, 0x29, 0x77, 0x82, 0xcb, + 0xe9, 0x6b, 0x79, 0xc7, 0x71, 0xad, 0x6d, 0x02, 0xfa, 0xa2, 0xd1, 0x21, 0x35, 0x98, 0xc0, 0x35, + 0x88, 0xcb, 0xa2, 0xdc, 0x0c, 0x8e, 0x77, 0x6d, 0xb4, 0x81, 0xec, 0x7b, 0xf4, 0xed, 0x9d, 0xfb, + 0x1a, 0xb6, 0x6e, 0x3a, 0x5d, 0xcb, 0x76, 0x4f, 0x15, 0x30, 0xf3, 0x7d, 0xbf, 0x29, 0x37, 0x80, + 0x63, 0xf7, 0x3a, 0x96, 0x59, 0xea, 0x1a, 0x2b, 0x86, 0xe3, 0x22, 0xb3, 0xd4, 0x6e, 0xdb, 0xa7, + 0x26, 0x71, 0x59, 0xfb, 0x3f, 0xd0, 0x6e, 0xb5, 0x00, 0xf2, 0x44, 0xd8, 0xf0, 0xf9, 0x39, 0x61, + 0xe7, 0x4f, 0x5a, 0xfd, 0x58, 0x63, 0xee, 0xb1, 0x60, 0x82, 0xf6, 0x87, 0x18, 0xd6, 0xa9, 0x9b, + 0x4f, 0xf6, 0xac, 0x42, 0x50, 0x2a, 0x9a, 0x9f, 0x4d, 0x79, 0x1c, 0xc8, 0xb7, 0xb0, 0x10, 0x30, + 0xc2, 0x53, 0x37, 0x5f, 0xde, 0xbf, 0x50, 0x9c, 0x45, 0xa3, 0x59, 0xe1, 0x97, 0x64, 0x21, 0x7f, + 0xd1, 0x38, 0x8e, 0x93, 0xf5, 0x01, 0xdf, 0x94, 0x86, 0xe8, 0x64, 0x6f, 0x00, 0xd7, 0xd1, 0x1e, + 0x94, 0x5a, 0x2b, 0x0b, 0xcd, 0xf9, 0x75, 0x7f, 0xea, 0xe8, 0xd9, 0x30, 0xf5, 0x46, 0x49, 0xf3, + 0xe6, 0xfd, 0x0b, 0xde, 0x94, 0xf3, 0x7a, 0x70, 0xed, 0x80, 0xdc, 0x6a, 0xa3, 0x59, 0x2d, 0xad, + 0xaa, 0xc5, 0x0d, 0xde, 0x12, 0xaa, 0x37, 0x6a, 0x6b, 0x4d, 0x6d, 0xbd, 0x5a, 0xad, 0x54, 0x97, + 0x08, 0x31, 0xcf, 0x80, 0x3c, 0x19, 0x66, 0x38, 0xa7, 0x55, 0x1a, 0x6a, 0xb3, 0x5c, 0xab, 0x2e, + 0x56, 0x96, 0x8a, 0xc6, 0x20, 0x33, 0xea, 0x5e, 0xe5, 0x2a, 0x70, 0x05, 0xc7, 0x49, 0xa5, 0x56, + 0xf5, 0xe6, 0xc1, 0xe5, 0x52, 0xb5, 0xac, 0x7a, 0x93, 0xde, 0x0b, 0x0a, 0x04, 0x27, 0x08, 0xb9, + 0xe6, 0x62, 0x65, 0x85, 0xdd, 0xba, 0xfa, 0x78, 0x46, 0x39, 0x05, 0x2e, 0x61, 0xbf, 0x55, 0xaa, + 0x67, 0x4b, 0x2b, 0x95, 0x85, 0xe2, 0x27, 0x32, 0xca, 0x35, 0xe0, 0x4a, 0xee, 0x2f, 0xb2, 0x0b, + 0xd5, 0xac, 0x2c, 0x34, 0x57, 0x2b, 0xf5, 0xd5, 0x52, 0xa3, 0xbc, 0x5c, 0xfc, 0x24, 0x9e, 0x5d, + 0x04, 0xe6, 0x32, 0xe3, 0xc4, 0xf9, 0x22, 0xd6, 0x02, 0x28, 0xf1, 0x8a, 0xfa, 0xe8, 0xbe, 0xb0, + 0xc7, 0x5b, 0xbc, 0x1f, 0x0d, 0xc6, 0x92, 0x05, 0x4e, 0x85, 0x1e, 0x9b, 0x80, 0x56, 0x32, 0x1d, + 0x6a, 0x0c, 0xa1, 0x42, 0x57, 0x81, 0x2b, 0xaa, 0x2a, 0x41, 0x4a, 0x53, 0xcb, 0xb5, 0xb3, 0xaa, + 0xd6, 0x3c, 0x57, 0x5a, 0x59, 0x51, 0x1b, 0xcd, 0xc5, 0x8a, 0x56, 0x6f, 0x14, 0x37, 0xe0, 0xbf, + 0x49, 0xc1, 0xda, 0x0f, 0x23, 0xad, 0xbf, 0x97, 0x92, 0x36, 0xeb, 0xd8, 0x35, 0x9e, 0x9f, 0x01, + 0x79, 0xc7, 0xd5, 0xdd, 0x1d, 0x87, 0xb6, 0xea, 0x47, 0xf4, 0x6f, 0xd5, 0x73, 0x75, 0x9c, 0x49, + 0xa3, 0x99, 0xe1, 0x97, 0x32, 0x49, 0x9a, 0xe9, 0x08, 0x96, 0x7f, 0x8c, 0x21, 0x44, 0x7c, 0x1a, + 0x40, 0x5f, 0xdb, 0x2b, 0xf5, 0x66, 0x69, 0x45, 0x53, 0x4b, 0x0b, 0xf7, 0x04, 0x8b, 0x3e, 0x48, + 0x39, 0x01, 0x8e, 0xad, 0x57, 0x4b, 0xf3, 0x2b, 0x2a, 0x6e, 0x2e, 0xb5, 0x6a, 0x55, 0x2d, 0x7b, + 0x72, 0xff, 0x55, 0xbc, 0xc5, 0xe2, 0xd9, 0xdb, 0x98, 0x6f, 0xcf, 0x26, 0x62, 0xe4, 0xff, 0x0d, + 0x61, 0x4f, 0xa4, 0x50, 0xc3, 0x58, 0x5a, 0xa3, 0xc5, 0xe1, 0x8b, 0x42, 0xce, 0x47, 0x42, 0x9c, + 0x24, 0xc3, 0xe3, 0x97, 0x86, 0xc0, 0xe3, 0x04, 0x38, 0xc6, 0xe2, 0x81, 0x9d, 0x90, 0xa2, 0x61, + 0xf8, 0x81, 0x04, 0x26, 0x56, 0x8d, 0x4d, 0xec, 0x85, 0xf9, 0xa4, 0xd0, 0xf4, 0x98, 0x05, 0x52, + 0xe0, 0xf4, 0x22, 0x19, 0x6d, 0x6e, 0xb2, 0x2d, 0xf5, 0x5d, 0xd4, 0x78, 0x5b, 0xe2, 0xfe, 0x85, + 0x16, 0x1b, 0xd1, 0xbf, 0x7c, 0x2d, 0x51, 0xff, 0xd2, 0x9f, 0x56, 0x32, 0x61, 0xdb, 0x07, 0x13, + 0x36, 0xeb, 0x6a, 0x32, 0x0d, 0x0a, 0x41, 0x6f, 0x8f, 0x77, 0x3d, 0xbc, 0x8f, 0x6a, 0xb5, 0xb6, + 0xbe, 0xb4, 0xdc, 0x5c, 0xd4, 0x54, 0x95, 0xae, 0x93, 0x6e, 0xc2, 0xb7, 0x4a, 0x60, 0x86, 0xf2, + 0x4e, 0x5d, 0x08, 0xae, 0x8c, 0x04, 0x81, 0x0a, 0xfa, 0x47, 0xec, 0xc4, 0x60, 0x89, 0x17, 0xf4, + 0x4d, 0x71, 0xc2, 0x89, 0xf5, 0x21, 0x78, 0x6d, 0x20, 0xee, 0xbb, 0x38, 0x71, 0x3f, 0x21, 0x31, + 0xc5, 0xf4, 0x27, 0x07, 0x6f, 0x9a, 0x04, 0xf9, 0x3a, 0xea, 0xa0, 0x96, 0x0b, 0x1f, 0x92, 0x86, + 0xd2, 0xd9, 0x38, 0x43, 0x57, 0x4e, 0x64, 0xe8, 0x66, 0x53, 0x30, 0x74, 0x73, 0xc3, 0x1b, 0xba, + 0xf9, 0xa4, 0x86, 0xee, 0x44, 0xac, 0xa1, 0x0b, 0x3f, 0x92, 0x4f, 0x3a, 0x0e, 0x12, 0x60, 0x0e, + 0xd7, 0xbc, 0xfd, 0x8d, 0x5c, 0x92, 0x71, 0xb3, 0x2f, 0xc7, 0xc9, 0xb4, 0xf8, 0x65, 0xd9, 0x14, + 0x96, 0xe3, 0x94, 0xab, 0xc1, 0x95, 0xe1, 0x7b, 0x53, 0x7d, 0x4a, 0xa5, 0xde, 0xa8, 0x63, 0x9b, + 0xb6, 0x5c, 0xd3, 0xb4, 0xf5, 0x35, 0xb2, 0xa7, 0x72, 0x12, 0x28, 0x21, 0x15, 0x6d, 0xbd, 0x4a, + 0x2c, 0xd8, 0x4d, 0x9e, 0xfa, 0x62, 0xa5, 0xba, 0xd0, 0x0c, 0x46, 0x85, 0xea, 0x62, 0xad, 0xb8, + 0xa5, 0xcc, 0x81, 0xeb, 0x19, 0xea, 0xb8, 0x83, 0x22, 0x25, 0x94, 0xaa, 0x0b, 0xcd, 0xd5, 0xaa, + 0xba, 0x5a, 0xab, 0x56, 0xca, 0x38, 0xbd, 0xae, 0x36, 0x8a, 0x86, 0x67, 0x4a, 0xf5, 0xd8, 0xcc, + 0x75, 0xb5, 0xa4, 0x95, 0x97, 0x55, 0x8d, 0x14, 0x79, 0xaf, 0x72, 0x2d, 0x38, 0x53, 0xaa, 0xd6, + 0x1a, 0x5e, 0x4a, 0xa9, 0x7a, 0x4f, 0xe3, 0x9e, 0x35, 0xb5, 0xb9, 0xa6, 0xd5, 0xca, 0x6a, 0xbd, + 0xee, 0x8d, 0x44, 0xd4, 0xc2, 0x2e, 0x76, 0x94, 0x27, 0x83, 0x5b, 0x19, 0xd6, 0xd4, 0x06, 0xde, + 0xc0, 0x5f, 0xad, 0x61, 0x1f, 0xae, 0x05, 0xb5, 0xb9, 0x5c, 0xaa, 0x37, 0x2b, 0xd5, 0x72, 0x6d, + 0x75, 0xad, 0xd4, 0xa8, 0x78, 0x03, 0xd6, 0x9a, 0x56, 0x6b, 0xd4, 0x9a, 0x67, 0x55, 0xad, 0x5e, + 0xa9, 0x55, 0x8b, 0xa6, 0x57, 0x65, 0x66, 0x84, 0xf3, 0x2d, 0x0d, 0x4b, 0xb9, 0x02, 0x9c, 0xf2, + 0xd3, 0x57, 0x6a, 0x9e, 0xa0, 0x19, 0x9b, 0xbb, 0xcb, 0xda, 0x29, 0xf5, 0x46, 0x4d, 0x23, 0x56, + 0xf7, 0x6a, 0x65, 0x49, 0xf3, 0xa6, 0x0a, 0xc5, 0xa7, 0xa6, 0x6a, 0x93, 0xff, 0x87, 0x04, 0xb2, + 0x75, 0xd7, 0xea, 0xc2, 0x9f, 0x0e, 0xbb, 0xab, 0xd3, 0x00, 0xd8, 0x78, 0xbf, 0x7e, 0x41, 0x77, + 0x75, 0xba, 0x8e, 0xc1, 0xa4, 0xc0, 0x3f, 0x13, 0xde, 0x64, 0x0c, 0xad, 0x16, 0xab, 0x1b, 0xd1, + 0xbd, 0x7f, 0x5f, 0xec, 0xd4, 0x55, 0x34, 0xa1, 0x64, 0xed, 0xe1, 0xd7, 0x86, 0xd9, 0x46, 0x84, + 0xe0, 0x24, 0x03, 0xab, 0x27, 0x7f, 0x5f, 0x65, 0x90, 0x72, 0x29, 0xb8, 0xa4, 0x47, 0xf9, 0xb0, + 0xce, 0x6d, 0x28, 0x3f, 0x05, 0x1e, 0xc1, 0xa8, 0xbf, 0xba, 0x5a, 0x3b, 0xab, 0x06, 0x8a, 0xbe, + 0x50, 0x6a, 0x94, 0x8a, 0x9b, 0xf0, 0x73, 0x32, 0xc8, 0xae, 0x5a, 0xbb, 0xbd, 0x7b, 0xbb, 0x26, + 0xba, 0xc8, 0xec, 0x1d, 0xf8, 0xaf, 0xfc, 0x29, 0x13, 0x21, 0xb1, 0xaf, 0x46, 0xfb, 0x71, 0x7c, + 0x51, 0x4a, 0x22, 0xf6, 0xd5, 0x83, 0x3a, 0x6f, 0xfc, 0xf3, 0x30, 0x62, 0x8f, 0x10, 0x2d, 0x52, + 0xce, 0x80, 0xd3, 0xe1, 0x87, 0xca, 0x82, 0x5a, 0x6d, 0x54, 0x16, 0xef, 0x09, 0x85, 0x5b, 0xd1, + 0x84, 0xc4, 0x3f, 0xa8, 0x9b, 0x8b, 0x9f, 0x6b, 0x9f, 0x02, 0xc7, 0xc3, 0x6f, 0x4b, 0x6a, 0xc3, + 0xff, 0x72, 0x2f, 0xbc, 0x3f, 0x07, 0xa6, 0x49, 0xb7, 0xbf, 0xde, 0x6d, 0x7b, 0xd6, 0xeb, 0xe3, + 0x42, 0x74, 0xaf, 0x03, 0x47, 0x2b, 0x6b, 0x8b, 0xf5, 0xba, 0x6b, 0xd9, 0xfa, 0x26, 0xc2, 0xe3, + 0x1c, 0x91, 0x56, 0x6f, 0x32, 0x7c, 0x87, 0xf0, 0xba, 0x38, 0x3f, 0xd4, 0x90, 0x32, 0x23, 0x50, + 0xff, 0x8a, 0xd0, 0x3a, 0xb6, 0x00, 0xc1, 0x64, 0xe8, 0xdf, 0x3b, 0xe2, 0x36, 0x17, 0x8d, 0xcb, + 0xc6, 0x99, 0x67, 0x49, 0x60, 0xb2, 0x61, 0x6c, 0xa3, 0xa7, 0x59, 0x26, 0x72, 0x94, 0x09, 0x20, + 0x2f, 0xad, 0x36, 0x8a, 0x47, 0xbc, 0x07, 0x6f, 0x5a, 0x91, 0xc1, 0x0f, 0xaa, 0x57, 0x80, 0xf7, + 0x50, 0x6a, 0x14, 0x65, 0xef, 0x61, 0x55, 0x6d, 0x14, 0xb3, 0xde, 0x43, 0x55, 0x6d, 0x14, 0x73, + 0xde, 0xc3, 0xda, 0x4a, 0xa3, 0x98, 0xf7, 0x1e, 0x2a, 0xf5, 0x46, 0x71, 0xc2, 0x7b, 0x98, 0xaf, + 0x37, 0x8a, 0x05, 0xef, 0xe1, 0x6c, 0xbd, 0x51, 0x9c, 0xf4, 0x1e, 0xca, 0x8d, 0x46, 0x11, 0x78, + 0x0f, 0x77, 0xd5, 0x1b, 0xc5, 0x29, 0xef, 0xa1, 0x54, 0x6e, 0x14, 0xa7, 0xf1, 0x83, 0xda, 0x28, + 0xce, 0x78, 0x0f, 0xf5, 0x7a, 0xa3, 0x38, 0x8b, 0x29, 0xd7, 0x1b, 0xc5, 0xa3, 0xb8, 0xac, 0x4a, + 0xa3, 0x58, 0xf4, 0x1e, 0x96, 0xeb, 0x8d, 0xe2, 0x31, 0x9c, 0xb9, 0xde, 0x28, 0x2a, 0xb8, 0xd0, + 0x7a, 0xa3, 0x78, 0x09, 0xce, 0x53, 0x6f, 0x14, 0x8f, 0xe3, 0x22, 0xea, 0x8d, 0xe2, 0x09, 0xcc, + 0x86, 0xda, 0x28, 0x9e, 0xc4, 0x79, 0xb4, 0x46, 0xf1, 0x52, 0xfc, 0xa9, 0xda, 0x28, 0x9e, 0xc2, + 0x8c, 0xa9, 0x8d, 0xe2, 0x65, 0xf8, 0x41, 0x6b, 0x14, 0x21, 0xfe, 0x54, 0x6a, 0x14, 0x2f, 0x87, + 0x8f, 0x00, 0x93, 0x4b, 0xc8, 0x25, 0x20, 0xc2, 0x22, 0x90, 0x97, 0x90, 0xcb, 0x4e, 0x64, 0xbf, + 0x26, 0x83, 0x4b, 0xe9, 0xe2, 0xc7, 0xa2, 0x6d, 0x6d, 0xaf, 0xa0, 0x4d, 0xbd, 0xb5, 0xa7, 0xde, + 0xe7, 0x19, 0x64, 0xac, 0x1f, 0x83, 0x02, 0xb2, 0xdd, 0xb0, 0x33, 0xc2, 0xcf, 0xb1, 0xf6, 0xab, + 0xbf, 0x78, 0x2b, 0x87, 0x8b, 0xb7, 0xd4, 0x62, 0xfb, 0x57, 0x56, 0xa3, 0xb9, 0xfd, 0x96, 0x4c, + 0xcf, 0x7e, 0x8b, 0xd7, 0x4c, 0xba, 0xc8, 0x76, 0x2c, 0x53, 0xef, 0xd4, 0xa9, 0xa3, 0x0b, 0x59, + 0x25, 0xee, 0x4d, 0x56, 0x7e, 0xce, 0x6f, 0x19, 0xc4, 0x6a, 0x7b, 0x52, 0xdc, 0x1a, 0x4f, 0x6f, + 0x35, 0x23, 0x1a, 0xc9, 0x27, 0x83, 0x46, 0xd2, 0xe0, 0x1a, 0xc9, 0x9d, 0x07, 0xa0, 0x9d, 0xac, + 0xbd, 0x54, 0x86, 0x9b, 0xef, 0x85, 0x6e, 0xe0, 0xfe, 0xf6, 0x8e, 0x0c, 0x3f, 0x27, 0x81, 0x93, + 0xaa, 0xd9, 0x6f, 0xbe, 0xc0, 0xea, 0xc2, 0x1b, 0x58, 0x68, 0xd6, 0x78, 0x91, 0xde, 0xda, 0xb7, + 0xda, 0xfd, 0x69, 0x46, 0x48, 0xf4, 0xd3, 0x81, 0x44, 0xeb, 0x9c, 0x44, 0xef, 0x18, 0x9e, 0x74, + 0x32, 0x81, 0x56, 0x47, 0xda, 0x01, 0x65, 0xe1, 0xd7, 0x25, 0x70, 0x8c, 0xf8, 0xaa, 0xdd, 0x45, + 0xa6, 0x27, 0xb8, 0xcb, 0xe6, 0x4d, 0xa8, 0x4e, 0x38, 0x95, 0x21, 0xfa, 0xcd, 0xa4, 0xc0, 0x57, + 0xb1, 0x02, 0xbf, 0x9b, 0x17, 0x78, 0x44, 0x67, 0xdc, 0x5b, 0x5c, 0x84, 0xac, 0x3f, 0x11, 0xc8, + 0xba, 0xca, 0xc9, 0xfa, 0xd6, 0xa1, 0xa8, 0x1e, 0xae, 0x98, 0xbf, 0x99, 0x05, 0x8f, 0x20, 0x1c, + 0x52, 0x45, 0x20, 0x9d, 0x59, 0xc9, 0x6c, 0x6b, 0xc8, 0x71, 0x75, 0xdb, 0xe5, 0xc2, 0x34, 0xf4, + 0xcc, 0x7f, 0x33, 0x29, 0xcc, 0x7f, 0xa5, 0x81, 0xf3, 0x5f, 0xf8, 0x76, 0xd6, 0x4a, 0x3b, 0xc7, + 0x23, 0x5b, 0x8a, 0xc1, 0x20, 0xa2, 0x86, 0x51, 0x2d, 0x2a, 0x30, 0xdf, 0x7e, 0x9e, 0x43, 0x79, + 0xf1, 0xc0, 0x25, 0x24, 0x43, 0xfc, 0xcf, 0x46, 0x6b, 0x4e, 0x67, 0xd9, 0x6f, 0xbc, 0xed, 0x57, + 0x6c, 0xa7, 0x3a, 0x0f, 0x7a, 0x41, 0x01, 0x4c, 0xe2, 0x2e, 0x67, 0xc5, 0x30, 0x2f, 0x78, 0x63, + 0xe3, 0x74, 0x15, 0x5d, 0x2c, 0x6f, 0xe9, 0x9d, 0x0e, 0x32, 0x37, 0x11, 0xbc, 0x97, 0x33, 0xd0, + 0xf5, 0x6e, 0xb7, 0x1a, 0x6e, 0x7f, 0xfa, 0xaf, 0xca, 0x1d, 0x20, 0xe7, 0xb4, 0xac, 0x2e, 0xc2, + 0x82, 0x9a, 0x65, 0x1c, 0xa6, 0xf8, 0x25, 0xdc, 0xd2, 0x8e, 0xbb, 0x35, 0x87, 0xcb, 0x2a, 0x75, + 0x8d, 0xba, 0xf7, 0x83, 0x46, 0xfe, 0xa3, 0xe3, 0xe4, 0x37, 0xfa, 0x76, 0xc6, 0x99, 0x98, 0xce, + 0x38, 0x60, 0x7c, 0x8e, 0x65, 0x3a, 0x62, 0xa5, 0xe3, 0x2a, 0x30, 0xd5, 0xf2, 0xb3, 0x04, 0xe7, + 0xc1, 0xd8, 0x24, 0xf8, 0x8f, 0x89, 0xba, 0x6b, 0xa1, 0xc2, 0x93, 0x69, 0x15, 0x1a, 0xb1, 0xbd, + 0x78, 0x02, 0x1c, 0x6b, 0xd4, 0x6a, 0xcd, 0xd5, 0x52, 0xf5, 0x9e, 0x30, 0x0e, 0xc3, 0x06, 0x7c, + 0x59, 0x16, 0xcc, 0xd6, 0xad, 0xce, 0x2e, 0x0a, 0x71, 0xae, 0x70, 0x8e, 0x86, 0xac, 0x9c, 0x32, + 0xfb, 0xe4, 0xa4, 0x9c, 0x04, 0x79, 0xdd, 0x74, 0x2e, 0x22, 0xdf, 0x86, 0xa7, 0x6f, 0x14, 0xc6, + 0x0f, 0xb0, 0x1d, 0x81, 0xc6, 0xc3, 0x78, 0xdb, 0x00, 0x49, 0xf2, 0x5c, 0x45, 0x00, 0x79, 0x06, + 0x4c, 0x3b, 0xc4, 0x09, 0xa2, 0xc1, 0xf8, 0xba, 0x70, 0x69, 0x98, 0x45, 0xe2, 0x85, 0x23, 0x53, + 0x16, 0xf1, 0x1b, 0x7c, 0x20, 0xe8, 0x3f, 0xd6, 0x39, 0x88, 0x4b, 0x07, 0x61, 0x2c, 0x19, 0xc8, + 0xaf, 0x18, 0xf5, 0x4c, 0xfc, 0x14, 0x38, 0x4e, 0x9b, 0x7d, 0xb3, 0xbc, 0x5c, 0x5a, 0x59, 0x51, + 0xab, 0x4b, 0x6a, 0xb3, 0xb2, 0x40, 0x36, 0x55, 0xc3, 0x94, 0x52, 0xa3, 0xa1, 0xae, 0xae, 0x35, + 0xea, 0x4d, 0xf5, 0x29, 0x65, 0x55, 0x5d, 0xc0, 0xae, 0xbe, 0xf8, 0xac, 0x9e, 0xef, 0x94, 0x5d, + 0xaa, 0xd6, 0xcf, 0xa9, 0x5a, 0x71, 0xeb, 0x4c, 0x09, 0x4c, 0x31, 0x03, 0x85, 0xc7, 0xdd, 0x02, + 0xda, 0xd0, 0x77, 0x3a, 0xd4, 0xa6, 0x2e, 0x1e, 0xf1, 0xb8, 0xc3, 0xb2, 0xa9, 0x99, 0x9d, 0xbd, + 0x62, 0x46, 0x29, 0x82, 0x69, 0x76, 0x4c, 0x28, 0x4a, 0xf0, 0x2d, 0x57, 0x80, 0xc9, 0x73, 0x96, + 0x7d, 0x01, 0xfb, 0xa7, 0xc2, 0x77, 0x93, 0x78, 0x4d, 0xfe, 0xc9, 0x77, 0xc6, 0x00, 0x7b, 0x85, + 0xb8, 0x17, 0x94, 0x4f, 0x6d, 0x6e, 0xe0, 0xe9, 0xf6, 0xab, 0xc0, 0xd4, 0x45, 0x3f, 0x77, 0xd8, + 0xd2, 0x99, 0x24, 0xf8, 0x47, 0x62, 0x7e, 0x4d, 0x83, 0x8b, 0x1c, 0xc3, 0xd2, 0xba, 0x04, 0xf2, + 0x4b, 0xc8, 0x2d, 0x75, 0x3a, 0xac, 0xdc, 0x5e, 0x2c, 0x7c, 0x62, 0x91, 0xab, 0x44, 0xa9, 0xd3, + 0x89, 0x6e, 0x54, 0x8c, 0x80, 0xfc, 0x93, 0x35, 0x5c, 0x9a, 0xa0, 0x3f, 0xf0, 0x80, 0x02, 0xd3, + 0x97, 0xd8, 0x87, 0xe4, 0xc0, 0x77, 0xe7, 0x41, 0xc6, 0x4c, 0xba, 0x29, 0x8c, 0xd5, 0x95, 0x89, + 0xf7, 0x01, 0xf2, 0xf3, 0x29, 0x77, 0x83, 0x89, 0x1d, 0x07, 0x95, 0x75, 0xc7, 0x1f, 0xda, 0xf8, + 0x9a, 0xd6, 0xce, 0xdf, 0x8b, 0x5a, 0xee, 0x5c, 0x65, 0xdb, 0x9b, 0xf8, 0xac, 0x93, 0x8c, 0x41, + 0xf8, 0x2b, 0xfa, 0xae, 0xf9, 0x14, 0xbc, 0xc9, 0xe3, 0x45, 0xc3, 0xdd, 0x2a, 0x6f, 0xe9, 0x2e, + 0xdd, 0xd1, 0x08, 0xde, 0xe1, 0xf3, 0x87, 0x80, 0x33, 0xd6, 0x6b, 0x25, 0xf2, 0xe0, 0x73, 0x62, + 0x10, 0x47, 0xe0, 0x6a, 0x32, 0x0c, 0x88, 0xff, 0x22, 0x81, 0x6c, 0xad, 0x8b, 0x4c, 0xe1, 0x53, + 0x7e, 0x81, 0x6c, 0xa5, 0x1e, 0xd9, 0x3e, 0x20, 0xee, 0xf5, 0x1a, 0x54, 0xda, 0x2b, 0x39, 0x42, + 0xb2, 0x37, 0x82, 0xac, 0x61, 0x6e, 0x58, 0xd4, 0xb2, 0xbd, 0x3c, 0xc2, 0xd6, 0xa9, 0x98, 0x1b, + 0x96, 0x86, 0x33, 0x8a, 0x3a, 0xbc, 0xc6, 0x95, 0x9d, 0xbe, 0xb8, 0xbf, 0x55, 0x00, 0x79, 0xa2, + 0xce, 0xf0, 0x45, 0x32, 0x90, 0x4b, 0xed, 0x76, 0x84, 0xe0, 0xa5, 0x7d, 0x82, 0xb7, 0xf0, 0x6f, + 0x01, 0x26, 0xc1, 0x3b, 0x1f, 0xa4, 0x49, 0xb0, 0x6f, 0xa7, 0x4d, 0xaa, 0xd4, 0x6e, 0x47, 0xfb, + 0xd6, 0x07, 0x05, 0x4a, 0x7c, 0x81, 0x6c, 0x0b, 0x97, 0xc5, 0x5a, 0x78, 0xe2, 0x81, 0x20, 0x92, + 0xbf, 0xf4, 0x21, 0xfa, 0x57, 0x09, 0x4c, 0xac, 0x18, 0x8e, 0xeb, 0x61, 0x53, 0x12, 0xc1, 0xe6, + 0x0a, 0x30, 0xe9, 0x8b, 0xc6, 0xeb, 0xf2, 0xbc, 0xfe, 0x3c, 0x4c, 0xe0, 0x67, 0xe2, 0x77, 0xf1, + 0xe8, 0x3c, 0x3e, 0xbe, 0xf6, 0x94, 0x8b, 0xe8, 0xd3, 0x53, 0x61, 0xb1, 0x52, 0x6f, 0xb1, 0x7f, + 0x1c, 0x08, 0x7c, 0x95, 0x13, 0xf8, 0x2d, 0xc3, 0x14, 0x99, 0xbe, 0xd0, 0x3f, 0x2f, 0x01, 0xe0, + 0x95, 0x4d, 0x8f, 0xa8, 0x3e, 0x8a, 0x0b, 0x3c, 0x11, 0x23, 0xdd, 0x97, 0xb1, 0xd2, 0x5d, 0xe5, + 0xa5, 0xfb, 0xb3, 0x83, 0xab, 0x1a, 0x77, 0x14, 0x55, 0x29, 0x02, 0xd9, 0x08, 0x44, 0xeb, 0x3d, + 0xc2, 0x37, 0x05, 0x42, 0x5d, 0xe3, 0x84, 0x7a, 0xdb, 0x90, 0x25, 0xa5, 0x2f, 0xd7, 0xbf, 0x95, + 0xc0, 0x44, 0x1d, 0xb9, 0x5e, 0x37, 0x09, 0xcf, 0x8a, 0xf4, 0xf0, 0x4c, 0xdb, 0x96, 0x04, 0xdb, + 0xf6, 0xf7, 0x32, 0xa2, 0x01, 0xac, 0x42, 0xc9, 0x50, 0x9e, 0x22, 0x56, 0x1f, 0x1e, 0x14, 0x0a, + 0x60, 0x35, 0x88, 0x5a, 0xfa, 0xd2, 0x7d, 0x83, 0x14, 0xb8, 0x63, 0xf0, 0x27, 0xc8, 0x58, 0xb3, + 0x38, 0xb3, 0xdf, 0x2c, 0x16, 0x3f, 0x41, 0xc6, 0xd6, 0x31, 0xda, 0xbb, 0x20, 0xb1, 0xb1, 0x31, + 0x82, 0x8d, 0xff, 0x61, 0xe4, 0xf5, 0x0c, 0x19, 0xe4, 0xe9, 0x0e, 0xc0, 0x1d, 0xf1, 0x3b, 0x00, + 0x83, 0xa7, 0x16, 0xef, 0x1a, 0xc2, 0x94, 0x8b, 0x5b, 0x96, 0x0f, 0xd8, 0x90, 0x18, 0x36, 0x6e, + 0x00, 0x39, 0x1c, 0x61, 0x97, 0x8e, 0x73, 0xa1, 0xcf, 0x86, 0x4f, 0x42, 0xf5, 0xbe, 0x6a, 0x24, + 0x53, 0x62, 0x14, 0x46, 0xb0, 0x92, 0x3f, 0x0c, 0x0a, 0xdf, 0x54, 0x00, 0x58, 0xdb, 0x39, 0xdf, + 0x31, 0x9c, 0x2d, 0xc3, 0xc4, 0x8e, 0x58, 0xd3, 0xf4, 0x95, 0x04, 0x8a, 0x8d, 0x35, 0xff, 0x22, + 0x8d, 0x82, 0x22, 0x90, 0x77, 0x6c, 0x83, 0x2e, 0x03, 0x78, 0x8f, 0xca, 0xed, 0x81, 0xcb, 0x61, + 0xb6, 0x27, 0x44, 0x88, 0x27, 0x86, 0x90, 0x83, 0x39, 0xa6, 0xf4, 0xd0, 0xf5, 0x90, 0x8d, 0x06, + 0x9c, 0xe3, 0xa3, 0x01, 0x73, 0xe7, 0x86, 0xf3, 0x3d, 0xe7, 0x86, 0x3d, 0x1c, 0x1d, 0xe3, 0x69, + 0x08, 0xfb, 0xf7, 0xc8, 0x1a, 0x7e, 0xf6, 0xfe, 0xb8, 0xd7, 0x32, 0x4c, 0xbc, 0xa9, 0x43, 0x5d, + 0xe2, 0xc3, 0x04, 0xb6, 0xcf, 0x9b, 0x14, 0xec, 0xf3, 0x3e, 0x18, 0xce, 0x7d, 0x2c, 0x41, 0xc3, + 0x39, 0x81, 0xe4, 0x38, 0x76, 0xb3, 0x3d, 0xec, 0xc2, 0x8f, 0x08, 0x07, 0x0c, 0x64, 0x64, 0x1c, + 0x3b, 0x8b, 0xa1, 0x1c, 0x48, 0x01, 0x07, 0xcc, 0x46, 0x6e, 0x5c, 0x0f, 0x3c, 0x88, 0x7e, 0x32, + 0x5d, 0xde, 0x1e, 0x62, 0xbd, 0x46, 0x01, 0xb3, 0xfe, 0x01, 0xec, 0xda, 0xfc, 0x5d, 0x6a, 0xb9, + 0x51, 0x44, 0xfb, 0x0f, 0x65, 0xe3, 0xe3, 0xd7, 0xe4, 0xa8, 0x75, 0xb8, 0x26, 0x03, 0xff, 0xbb, + 0x04, 0xf2, 0xd4, 0xdc, 0xb8, 0xe3, 0x80, 0x10, 0xc2, 0x97, 0x0f, 0x03, 0x49, 0x6c, 0x1c, 0x8c, + 0x4f, 0x25, 0x05, 0x60, 0x04, 0x06, 0xc6, 0x3d, 0xa9, 0x01, 0x00, 0xff, 0x5d, 0x02, 0x59, 0xcf, + 0x0c, 0x12, 0x8b, 0x32, 0xf0, 0x49, 0x61, 0x8f, 0x5a, 0x46, 0x00, 0x1e, 0xf9, 0x08, 0xfd, 0x9e, + 0x07, 0x93, 0x5d, 0x92, 0x31, 0x88, 0x71, 0x71, 0x8d, 0x40, 0x67, 0x84, 0xb4, 0xf0, 0x37, 0xf8, + 0x4e, 0x21, 0xaf, 0xdc, 0x78, 0x7e, 0x92, 0xc1, 0xa1, 0x8e, 0x22, 0x20, 0x01, 0xf6, 0x73, 0x06, + 0x1a, 0x72, 0xac, 0xce, 0x2e, 0x5a, 0xb7, 0x0d, 0x78, 0x79, 0x08, 0x00, 0x6d, 0xf6, 0x99, 0xb0, + 0xd9, 0x7f, 0x46, 0x12, 0xf5, 0xb0, 0xe5, 0x34, 0xcf, 0x27, 0x1e, 0x21, 0xfe, 0x27, 0x83, 0x09, + 0x2a, 0x47, 0x6a, 0x53, 0x8a, 0x09, 0xdf, 0xff, 0x09, 0xbe, 0x47, 0xc8, 0x43, 0x57, 0x84, 0xa3, + 0x64, 0x00, 0x94, 0x87, 0x00, 0xe0, 0x28, 0x98, 0xf2, 0x01, 0x58, 0xd7, 0x2a, 0x45, 0x04, 0xdf, + 0x26, 0x63, 0x37, 0x09, 0x32, 0xb8, 0x1d, 0xbc, 0xa7, 0xf9, 0xba, 0xf0, 0x64, 0x9f, 0x91, 0x47, + 0x50, 0x7e, 0x4a, 0x00, 0xfd, 0xa5, 0xd0, 0xec, 0x5e, 0x80, 0xa1, 0x87, 0x4b, 0x7f, 0x75, 0x46, + 0x05, 0x33, 0x9c, 0x55, 0xa2, 0x9c, 0x02, 0xc7, 0xb9, 0x04, 0x32, 0xde, 0xb5, 0x8b, 0x47, 0x14, + 0x08, 0x4e, 0x72, 0x5f, 0xe8, 0x0b, 0x6a, 0x17, 0x33, 0xf0, 0xcd, 0x5f, 0xc8, 0x04, 0xeb, 0x3d, + 0xef, 0xca, 0xd2, 0x95, 0xb6, 0x8f, 0xf1, 0x61, 0x15, 0x5b, 0x96, 0xe9, 0xa2, 0xfb, 0x18, 0x37, + 0x95, 0x20, 0x21, 0xd6, 0x6a, 0x38, 0x05, 0x26, 0x5c, 0x9b, 0x75, 0x5d, 0xf1, 0x5f, 0x59, 0xc5, + 0xca, 0xf1, 0x8a, 0x55, 0x05, 0x67, 0x0c, 0xb3, 0xd5, 0xd9, 0x69, 0x23, 0x0d, 0x75, 0x74, 0x4f, + 0x86, 0x4e, 0xc9, 0x59, 0x40, 0x5d, 0x64, 0xb6, 0x91, 0xe9, 0x12, 0x3e, 0xfd, 0x63, 0x9d, 0x02, + 0x39, 0x79, 0x65, 0xbc, 0x9d, 0x57, 0xc6, 0x47, 0xf5, 0x5b, 0xc2, 0x8d, 0x59, 0xef, 0xbb, 0x05, + 0x00, 0x52, 0xb7, 0xb3, 0x06, 0xba, 0x48, 0xd5, 0xf0, 0xb2, 0x9e, 0x55, 0xbf, 0x5a, 0x90, 0x41, + 0x63, 0x32, 0xc3, 0x87, 0x02, 0xf5, 0xbb, 0x93, 0x53, 0xbf, 0x1b, 0x04, 0x59, 0x48, 0xa6, 0x75, + 0xdd, 0x21, 0xb4, 0x6e, 0x06, 0x4c, 0x86, 0xbb, 0xc9, 0xb2, 0x72, 0x19, 0x38, 0xe1, 0xbb, 0x09, + 0x57, 0x55, 0x75, 0xa1, 0xde, 0x5c, 0x5f, 0x5b, 0xd2, 0x4a, 0x0b, 0x6a, 0x11, 0x78, 0xfa, 0x49, + 0xf4, 0x32, 0xf0, 0xee, 0xcd, 0xc2, 0xbf, 0x91, 0x40, 0x0e, 0x9f, 0x49, 0x86, 0xbf, 0x38, 0x22, + 0xcd, 0x71, 0x38, 0xa7, 0xa7, 0x60, 0xdc, 0x15, 0xbf, 0xee, 0x80, 0x0a, 0x13, 0x73, 0x75, 0xa0, + 0xeb, 0x0e, 0x62, 0x08, 0xa5, 0x3f, 0x13, 0xf2, 0x9a, 0x64, 0x7d, 0xcb, 0xba, 0xf8, 0x93, 0xdc, + 0x24, 0xbd, 0xfa, 0x1f, 0x72, 0x93, 0xec, 0xc3, 0xc2, 0xd8, 0x9b, 0x64, 0x9f, 0x76, 0x17, 0xd3, + 0x4c, 0xe1, 0xd3, 0x73, 0xc1, 0xfc, 0xef, 0x59, 0xd2, 0x81, 0xf6, 0xbe, 0x4a, 0x60, 0xc6, 0x30, + 0x5d, 0x64, 0x9b, 0x7a, 0x67, 0xb1, 0xa3, 0x6f, 0xfa, 0xf6, 0x69, 0xef, 0x86, 0x47, 0x85, 0xc9, + 0xa3, 0xf1, 0x7f, 0x28, 0xa7, 0x01, 0x70, 0xd1, 0x76, 0xb7, 0xa3, 0xbb, 0xa1, 0xea, 0x31, 0x29, + 0xac, 0xf6, 0x65, 0x79, 0xed, 0x7b, 0x2c, 0xb8, 0x84, 0x80, 0xd6, 0xd8, 0xeb, 0xa2, 0x75, 0xd3, + 0x78, 0xea, 0x0e, 0x8e, 0xc2, 0x4b, 0x74, 0xb4, 0xdf, 0x27, 0x6e, 0x07, 0x28, 0xdf, 0xb3, 0x03, + 0xf4, 0x2f, 0xc2, 0xd1, 0x7d, 0xfc, 0x56, 0x3f, 0x20, 0xba, 0x4f, 0xd0, 0xd2, 0xe4, 0x9e, 0x96, + 0x16, 0xac, 0xcb, 0x64, 0x05, 0xd6, 0x65, 0x58, 0x54, 0x72, 0x82, 0xf3, 0xfb, 0x57, 0x0a, 0x85, + 0x0f, 0x8a, 0xab, 0x46, 0xfa, 0xbd, 0xd7, 0x77, 0x65, 0x30, 0x4b, 0x8a, 0x9e, 0xb7, 0xac, 0x0b, + 0xdb, 0xba, 0x7d, 0x01, 0xfe, 0xd6, 0xc1, 0xf6, 0x61, 0x63, 0xf7, 0x9f, 0xa2, 0x36, 0x55, 0x7b, + 0xd4, 0x2f, 0xdb, 0xab, 0x7e, 0xf0, 0xd3, 0xc2, 0x93, 0x0a, 0x4e, 0x9e, 0x7e, 0xa5, 0xc6, 0xb3, + 0x41, 0x25, 0x76, 0x0a, 0x50, 0x84, 0xc1, 0xf4, 0x81, 0xff, 0xf3, 0x00, 0x78, 0x7f, 0x24, 0x60, + 0xd7, 0xf6, 0x47, 0x89, 0x3b, 0xfc, 0xca, 0x70, 0xd8, 0xf9, 0x7c, 0x0d, 0x81, 0x5d, 0x11, 0xc8, + 0x17, 0x02, 0x77, 0x22, 0xef, 0x91, 0xad, 0x50, 0x36, 0x3d, 0x34, 0x23, 0x58, 0x1e, 0x0b, 0x9a, + 0xc7, 0x79, 0x16, 0x6a, 0xdd, 0x54, 0x31, 0xfd, 0xb2, 0xf0, 0x9e, 0x59, 0x5f, 0x01, 0x11, 0xee, + 0xc6, 0xd3, 0x2a, 0xc5, 0x36, 0xdc, 0xc4, 0xd9, 0x4c, 0x1f, 0xcd, 0xe7, 0xe5, 0xc0, 0xa4, 0x1f, + 0xa0, 0x09, 0xdf, 0x1f, 0x16, 0x60, 0x78, 0x12, 0xe4, 0x1d, 0x6b, 0xc7, 0x6e, 0x21, 0xba, 0x8b, + 0x49, 0xdf, 0x86, 0xd8, 0x71, 0x1b, 0x38, 0xe0, 0xef, 0xb3, 0x29, 0xb2, 0x89, 0x6d, 0x8a, 0x68, + 0x8b, 0x35, 0xce, 0x02, 0x78, 0xbe, 0xf0, 0xa5, 0x0f, 0x1c, 0x66, 0x75, 0xe4, 0x3e, 0x1c, 0x8d, + 0x80, 0x3f, 0x15, 0xda, 0xcf, 0x19, 0x50, 0x93, 0x64, 0x2a, 0x57, 0x1b, 0xc2, 0x92, 0xbd, 0x1c, + 0x5c, 0xea, 0xe7, 0xa0, 0x26, 0x2c, 0x36, 0x59, 0xd7, 0xb5, 0x95, 0xa2, 0x0c, 0x9f, 0x91, 0x05, + 0x45, 0xc2, 0x5a, 0x2d, 0xb0, 0xe6, 0xe0, 0x8b, 0x33, 0x87, 0x6d, 0xb2, 0x46, 0xcf, 0x41, 0x3f, + 0x2b, 0x89, 0x06, 0x96, 0xe6, 0x04, 0x1f, 0xd6, 0x2e, 0x42, 0x93, 0x86, 0x68, 0x66, 0x31, 0xca, + 0x07, 0x5f, 0x9f, 0x11, 0x89, 0x53, 0x2d, 0xc6, 0x62, 0xfa, 0xbd, 0xd2, 0xf7, 0xb2, 0x7e, 0x9c, + 0xbd, 0x45, 0xdb, 0xda, 0x5e, 0xb7, 0x3b, 0xf0, 0x7f, 0x09, 0x5d, 0x03, 0x10, 0x31, 0x3f, 0x90, + 0xa2, 0xe7, 0x07, 0x78, 0x4d, 0xb9, 0x13, 0x6e, 0x66, 0x75, 0x86, 0x18, 0xbe, 0x95, 0x6b, 0xc1, + 0xac, 0xde, 0x6e, 0xaf, 0xe9, 0x9b, 0xa8, 0xec, 0x4d, 0xbc, 0x4d, 0x97, 0xc6, 0xe0, 0xea, 0x49, + 0x8d, 0xeb, 0x8a, 0x7a, 0xfa, 0xc8, 0x89, 0x7d, 0x56, 0xa9, 0xf8, 0x42, 0x2a, 0x07, 0x22, 0x95, + 0xdf, 0x58, 0x86, 0x3f, 0x6f, 0xc8, 0x68, 0x6d, 0xe9, 0x61, 0xc4, 0x40, 0xfa, 0x26, 0xe8, 0x4d, + 0x25, 0xc0, 0x77, 0xfa, 0x9a, 0xf7, 0x27, 0x12, 0x98, 0xf0, 0xf0, 0x28, 0xb5, 0xdb, 0xf0, 0x91, + 0x5c, 0x60, 0xcd, 0x48, 0x7f, 0xb6, 0xe7, 0x08, 0x3b, 0x12, 0xfa, 0x35, 0x24, 0xf4, 0x23, 0x30, + 0x09, 0x85, 0x28, 0x71, 0x42, 0x14, 0xf3, 0x17, 0x8c, 0x2d, 0x22, 0x7d, 0xf1, 0x7d, 0x52, 0x02, + 0x33, 0xfe, 0x3c, 0x63, 0x11, 0xb9, 0xad, 0x2d, 0x78, 0x8b, 0xe8, 0x4a, 0x15, 0x6d, 0x89, 0xc1, + 0xa6, 0x6e, 0x07, 0xfe, 0x30, 0x93, 0x50, 0xe5, 0xb9, 0x92, 0x23, 0x96, 0xf9, 0x12, 0xe9, 0x62, + 0x1c, 0xc1, 0xf4, 0x85, 0xf9, 0x90, 0x04, 0x40, 0xc3, 0x0a, 0x26, 0xcb, 0x07, 0x90, 0xe4, 0x0b, + 0x85, 0xf7, 0x7b, 0x69, 0xc5, 0xc3, 0x62, 0x93, 0xf7, 0x1c, 0x82, 0xee, 0x50, 0x83, 0x4a, 0x1a, + 0x4b, 0x5b, 0x9f, 0x5c, 0xd8, 0xe9, 0x76, 0x8c, 0x96, 0xee, 0xf6, 0xfa, 0xf0, 0x45, 0x8b, 0x17, + 0x5f, 0xbe, 0x9b, 0xc8, 0x68, 0x0c, 0xca, 0x88, 0x90, 0x25, 0x09, 0x87, 0x23, 0xf9, 0xe1, 0x70, + 0x04, 0xfd, 0x72, 0x06, 0x10, 0x1f, 0x83, 0x7a, 0xca, 0xe0, 0x68, 0xad, 0x8b, 0xcc, 0x79, 0x1b, + 0xe9, 0xed, 0x96, 0xbd, 0xb3, 0x7d, 0xde, 0x61, 0x1d, 0x50, 0xe3, 0x75, 0x94, 0x59, 0x7b, 0x96, + 0xb8, 0xb5, 0x67, 0xf8, 0x4c, 0x59, 0x34, 0xa0, 0x18, 0xb3, 0x43, 0xc2, 0xf0, 0x30, 0xc4, 0x50, + 0x97, 0xc8, 0x6d, 0xaa, 0x67, 0x99, 0x39, 0x9b, 0x64, 0x99, 0xf9, 0x75, 0x42, 0xe1, 0xc9, 0x84, + 0xea, 0x35, 0x16, 0xef, 0xb7, 0xd9, 0x3a, 0x72, 0x23, 0xe0, 0xbd, 0x06, 0xcc, 0x9c, 0x0f, 0xbf, + 0x04, 0x10, 0xf3, 0x89, 0x7d, 0x7c, 0x52, 0xdf, 0x90, 0x74, 0x85, 0x86, 0x67, 0x21, 0x02, 0xdd, + 0x00, 0x41, 0x49, 0xc4, 0xf1, 0x2d, 0xd1, 0x72, 0x4b, 0x6c, 0xf9, 0xe9, 0xa3, 0xf0, 0x11, 0x09, + 0x4c, 0xe1, 0x2b, 0x85, 0xe7, 0xf7, 0xf0, 0x51, 0x4c, 0x41, 0xa3, 0xe4, 0x79, 0xac, 0x98, 0x15, + 0x90, 0xed, 0x18, 0xe6, 0x05, 0xdf, 0x63, 0xd1, 0x7b, 0x0e, 0x2f, 0xa8, 0x94, 0xfa, 0x5c, 0x50, + 0x19, 0x6c, 0x74, 0x04, 0xe5, 0x1e, 0xe8, 0xc6, 0xf4, 0x81, 0xe4, 0xd2, 0x17, 0xe3, 0x3f, 0x65, + 0x41, 0xbe, 0x8e, 0x74, 0xbb, 0xb5, 0x05, 0xdf, 0x25, 0xf5, 0x9d, 0x4a, 0x14, 0xf8, 0xa9, 0xc4, + 0x22, 0x98, 0xd8, 0x30, 0x3a, 0x2e, 0xb2, 0x89, 0x17, 0x37, 0xdb, 0xb5, 0x93, 0x26, 0x3e, 0xdf, + 0xb1, 0x5a, 0x17, 0xe6, 0xa8, 0x69, 0x3f, 0xe7, 0x07, 0x34, 0x9e, 0x5b, 0xc4, 0x3f, 0x69, 0xfe, + 0xcf, 0x9e, 0x41, 0xe8, 0x58, 0xb6, 0x1b, 0x75, 0x57, 0x4d, 0x04, 0x95, 0xba, 0x65, 0xbb, 0x1a, + 0xf9, 0xd1, 0x83, 0x79, 0x63, 0xa7, 0xd3, 0x69, 0xa0, 0xfb, 0x5c, 0x7f, 0x5a, 0xe7, 0xbf, 0x7b, + 0xc6, 0xa2, 0xb5, 0xb1, 0xe1, 0x20, 0xb2, 0xa8, 0x90, 0xd3, 0xe8, 0x9b, 0x72, 0x1c, 0xe4, 0x3a, + 0xc6, 0xb6, 0x41, 0x26, 0x22, 0x39, 0x8d, 0xbc, 0x28, 0xd7, 0x83, 0x62, 0x38, 0x07, 0x22, 0x8c, + 0x9e, 0xca, 0xe3, 0xa6, 0xb9, 0x2f, 0xdd, 0xd3, 0x99, 0x0b, 0x68, 0xcf, 0x39, 0x35, 0x81, 0xbf, + 0xe3, 0x67, 0xfe, 0xc8, 0x8c, 0xc8, 0x86, 0x09, 0x91, 0x78, 0xf4, 0x0c, 0xd7, 0x46, 0x2d, 0xcb, + 0x6e, 0xfb, 0xb2, 0x89, 0x9e, 0x60, 0xd0, 0x7c, 0xc9, 0xb6, 0x39, 0xfa, 0x16, 0x9e, 0xbe, 0xa6, + 0xbd, 0x3d, 0xef, 0x75, 0x9b, 0x5e, 0xd1, 0xe7, 0x0c, 0x77, 0x6b, 0x15, 0xb9, 0x3a, 0xfc, 0x27, + 0xb9, 0xaf, 0xc6, 0x4d, 0xfd, 0x6f, 0x8d, 0x1b, 0xa0, 0x71, 0x24, 0xf4, 0x96, 0xbb, 0x63, 0x9b, + 0x9e, 0x1c, 0xa9, 0x27, 0x2c, 0x93, 0xa2, 0xdc, 0x06, 0x2e, 0x0b, 0xdf, 0xfc, 0xa5, 0xd4, 0x05, + 0xc6, 0x39, 0xb6, 0xa0, 0x45, 0x67, 0x50, 0xd6, 0xc0, 0xd5, 0xe4, 0xe3, 0x72, 0x63, 0x75, 0x65, + 0xd9, 0xd8, 0xdc, 0xea, 0x18, 0x9b, 0x5b, 0xae, 0x53, 0x31, 0x1d, 0x17, 0xe9, 0xed, 0xda, 0x86, + 0x46, 0x6e, 0x99, 0x02, 0x98, 0x8e, 0x48, 0x56, 0xde, 0xcb, 0x5b, 0x6c, 0x74, 0x63, 0x35, 0x25, + 0xa2, 0xa5, 0x3c, 0xc1, 0x6b, 0x29, 0xce, 0x4e, 0x27, 0xc0, 0xf4, 0x8a, 0x1e, 0x4c, 0x43, 0x55, + 0xdf, 0xe9, 0xe0, 0xe6, 0x82, 0x33, 0x27, 0x1d, 0xe7, 0x62, 0x38, 0x49, 0xbf, 0xd9, 0xfc, 0xaf, + 0x3c, 0xc8, 0x2d, 0xd9, 0x7a, 0x77, 0x0b, 0x3e, 0x83, 0xe9, 0x9f, 0x47, 0xd5, 0x26, 0x02, 0xed, + 0x94, 0x06, 0x69, 0xa7, 0x3c, 0x40, 0x3b, 0xb3, 0x8c, 0x76, 0x46, 0x2f, 0x3a, 0x9f, 0x01, 0xd3, + 0x2d, 0xab, 0xd3, 0x41, 0x2d, 0x4f, 0x1e, 0x95, 0x36, 0x5e, 0xed, 0x99, 0xd4, 0xb8, 0x34, 0x1c, + 0xf4, 0x1d, 0xb9, 0x75, 0xb2, 0xc6, 0x4e, 0x94, 0x3e, 0x4c, 0x80, 0x2f, 0x96, 0x40, 0x56, 0x6d, + 0x6f, 0x22, 0x6e, 0x1d, 0x3e, 0xc3, 0xac, 0xc3, 0x9f, 0x04, 0x79, 0x57, 0xb7, 0x37, 0x91, 0xeb, + 0xaf, 0x13, 0x90, 0xb7, 0x20, 0x16, 0xbd, 0xcc, 0xc4, 0xa2, 0xff, 0x59, 0x90, 0xf5, 0x64, 0x46, + 0x1d, 0xdb, 0xaf, 0xee, 0x07, 0x3f, 0x96, 0xfd, 0x9c, 0x57, 0xe2, 0x9c, 0x57, 0x6b, 0x0d, 0xff, + 0xd0, 0x8b, 0x75, 0x6e, 0x1f, 0xd6, 0xf8, 0xc2, 0xdc, 0x96, 0x65, 0x56, 0xb6, 0xf5, 0x4d, 0x44, + 0xab, 0x19, 0x26, 0xf8, 0x5f, 0xd5, 0x6d, 0xeb, 0x5e, 0x83, 0x2e, 0x6a, 0x85, 0x09, 0x5e, 0x15, + 0xb6, 0x8c, 0x76, 0x1b, 0x99, 0xb4, 0x65, 0xd3, 0xb7, 0x33, 0xa7, 0x41, 0xd6, 0xe3, 0xc1, 0xd3, + 0x1f, 0xcf, 0x58, 0x28, 0x1e, 0x51, 0xa6, 0xbd, 0x66, 0x45, 0x1a, 0x6f, 0x31, 0xc3, 0xaf, 0xb9, + 0x8a, 0xf8, 0xfd, 0x90, 0xca, 0xf5, 0x6f, 0x5c, 0x8f, 0x01, 0x39, 0xd3, 0x6a, 0xa3, 0x81, 0x83, + 0x10, 0xc9, 0xa5, 0x3c, 0x1e, 0xe4, 0x50, 0xdb, 0xeb, 0x15, 0x64, 0x9c, 0xfd, 0x74, 0xbc, 0x2c, + 0x35, 0x92, 0x39, 0x99, 0x73, 0x51, 0x3f, 0x6e, 0xd3, 0x6f, 0x80, 0xbf, 0x3e, 0x01, 0x8e, 0x92, + 0x3e, 0xa0, 0xbe, 0x73, 0xde, 0x23, 0x75, 0x1e, 0xc1, 0x07, 0xfb, 0x0f, 0x5c, 0x47, 0x79, 0x65, + 0x3f, 0x0e, 0x72, 0xce, 0xce, 0xf9, 0xc0, 0x08, 0x25, 0x2f, 0x6c, 0xd3, 0x95, 0x46, 0x32, 0x9c, + 0xc9, 0xc3, 0x0e, 0x67, 0xdc, 0xd0, 0x24, 0xfb, 0x8d, 0x3f, 0x1c, 0xc8, 0xc8, 0x91, 0x0c, 0x7f, + 0x20, 0xeb, 0x37, 0x0c, 0x9d, 0x02, 0x13, 0xfa, 0x86, 0x8b, 0xec, 0xd0, 0x4c, 0xa4, 0xaf, 0xde, + 0x50, 0x79, 0x1e, 0x6d, 0x58, 0xb6, 0x27, 0x16, 0x72, 0x15, 0x41, 0xf0, 0xce, 0xb4, 0x5c, 0xc0, + 0xed, 0xa0, 0xdd, 0x00, 0x8e, 0x99, 0xd6, 0x02, 0xea, 0x52, 0x39, 0x13, 0x14, 0x67, 0x70, 0x0b, + 0xd8, 0xff, 0x61, 0x5f, 0x57, 0x32, 0xbb, 0xbf, 0x2b, 0x81, 0x9f, 0x49, 0x3a, 0x67, 0xee, 0x01, + 0x7a, 0x64, 0x16, 0x9a, 0xf2, 0x24, 0x30, 0xdd, 0xa6, 0x3e, 0x5e, 0x2d, 0x23, 0x68, 0x25, 0x91, + 0xff, 0x71, 0x99, 0x43, 0x45, 0xca, 0xb2, 0x8a, 0xb4, 0x04, 0x0a, 0xf8, 0xf0, 0xb4, 0xa7, 0x49, + 0xb9, 0x1e, 0x9f, 0x7a, 0x3c, 0xad, 0x0b, 0x2a, 0xc5, 0x88, 0x6d, 0xae, 0x4c, 0x7f, 0xd1, 0x82, + 0x9f, 0x93, 0xcd, 0xbe, 0xe3, 0x25, 0x94, 0x7e, 0x73, 0xfc, 0xe3, 0x3c, 0xb8, 0xac, 0x6c, 0x5b, + 0x8e, 0x83, 0x0f, 0xd1, 0xf4, 0x36, 0xcc, 0xd7, 0x48, 0xdc, 0xad, 0x34, 0x0f, 0xeb, 0xe6, 0xd7, + 0xaf, 0x41, 0x8d, 0xaf, 0x69, 0x7c, 0x5d, 0x38, 0xec, 0x4c, 0xb0, 0xff, 0x10, 0x21, 0xf4, 0x9f, + 0x8c, 0x46, 0xf2, 0xf6, 0x8c, 0x48, 0x24, 0x9c, 0x84, 0xb2, 0x4a, 0xbf, 0xb9, 0x7c, 0x59, 0x02, + 0x97, 0xf7, 0x72, 0xb3, 0x6e, 0x3a, 0x41, 0x83, 0xb9, 0x72, 0x40, 0x7b, 0xe1, 0x23, 0xa7, 0xc4, + 0xde, 0x07, 0x1b, 0x51, 0x77, 0xa6, 0xb4, 0x88, 0xc5, 0x92, 0xf0, 0x48, 0x4e, 0xdc, 0x7d, 0xb0, + 0x89, 0xc9, 0xa7, 0x2f, 0xdc, 0xcf, 0x66, 0xc1, 0xd1, 0x25, 0xdb, 0xda, 0xe9, 0x3a, 0x61, 0x0f, + 0xf4, 0xf7, 0xfd, 0x37, 0x64, 0xf3, 0x22, 0xa6, 0xc1, 0x55, 0x60, 0xca, 0xa6, 0xd6, 0x5c, 0xb8, + 0x3d, 0xcb, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x90, 0xde, 0x2b, 0xec, 0x67, 0xb2, 0x5c, 0x3f, 0xd3, + 0xdb, 0x73, 0xe4, 0xfa, 0xf4, 0x1c, 0x7f, 0x27, 0x25, 0x1c, 0x54, 0x7b, 0x44, 0x14, 0xd1, 0x5f, + 0x94, 0x41, 0x7e, 0x13, 0x67, 0xa4, 0xdd, 0xc5, 0xa3, 0xc5, 0x6a, 0x86, 0x89, 0x6b, 0xf4, 0xd7, + 0x50, 0xae, 0x32, 0xab, 0xc3, 0x89, 0x06, 0xb8, 0x78, 0x6e, 0xd3, 0x57, 0xaa, 0x07, 0xb2, 0x60, + 0x3a, 0x28, 0xbd, 0xd2, 0x76, 0xe0, 0xf3, 0xfa, 0x6b, 0xd4, 0x8c, 0x88, 0x46, 0xed, 0x5b, 0x67, + 0x0e, 0x46, 0x1d, 0x99, 0x19, 0x75, 0xfa, 0x8e, 0x2e, 0xd3, 0x11, 0xa3, 0x0b, 0x7c, 0xba, 0x2c, + 0x7a, 0xaf, 0x1b, 0xdf, 0xb5, 0xe2, 0xda, 0x3c, 0x9c, 0x07, 0x0b, 0xc1, 0xdb, 0xe5, 0x06, 0xd7, + 0x2a, 0x7d, 0x25, 0x79, 0xbf, 0x04, 0x8e, 0xed, 0xef, 0xcc, 0x7f, 0x8a, 0xf7, 0x52, 0xf3, 0xea, + 0xe4, 0x04, 0x5e, 0x6a, 0xf8, 0x8d, 0xdf, 0xa4, 0x8b, 0x0d, 0x63, 0xc2, 0xd9, 0x7b, 0x83, 0x3b, + 0x71, 0xb1, 0x40, 0x25, 0x82, 0x44, 0xd3, 0x17, 0xe0, 0x6f, 0xcb, 0x60, 0xb2, 0x8e, 0xdc, 0x15, + 0x7d, 0xcf, 0xda, 0x71, 0xa1, 0x2e, 0xba, 0x3d, 0xf7, 0x44, 0x90, 0xef, 0xe0, 0x5f, 0x70, 0x07, + 0xc3, 0x86, 0x0d, 0x65, 0xf7, 0xb7, 0xb0, 0x6f, 0x10, 0x21, 0xad, 0xd1, 0xfc, 0x7c, 0xfc, 0x18, + 0x91, 0xdd, 0xd1, 0x80, 0xbb, 0x91, 0x6c, 0xed, 0x24, 0xda, 0x3b, 0x8d, 0x2a, 0x3a, 0x7d, 0x58, + 0x9e, 0x29, 0x83, 0x99, 0x3a, 0x72, 0x2b, 0xce, 0xa2, 0xbe, 0x6b, 0xd9, 0x86, 0x8b, 0xd8, 0xfb, + 0x72, 0xe3, 0xa1, 0x39, 0x0d, 0x80, 0x11, 0xfc, 0x46, 0xa3, 0x5a, 0x31, 0x29, 0xf0, 0xf5, 0x49, + 0x1d, 0x85, 0x38, 0x3e, 0x46, 0x02, 0x42, 0x22, 0x1f, 0x8b, 0xb8, 0xe2, 0xd3, 0x07, 0xe2, 0x8b, + 0x12, 0x05, 0xa2, 0x64, 0xb7, 0xb6, 0x8c, 0x5d, 0xd4, 0x4e, 0x08, 0x84, 0xff, 0x5b, 0x08, 0x44, + 0x40, 0x28, 0xb1, 0xfb, 0x0a, 0xc7, 0xc7, 0x28, 0xdc, 0x57, 0xe2, 0x08, 0x8e, 0x25, 0x30, 0x95, + 0xd7, 0xf5, 0xd0, 0xf5, 0xcc, 0x3b, 0x44, 0xc5, 0x1a, 0x9a, 0x6c, 0x12, 0x6b, 0xb2, 0x0d, 0xd5, + 0xb1, 0x90, 0xb2, 0x07, 0xe9, 0x74, 0x36, 0x8d, 0x8e, 0xa5, 0x6f, 0xd1, 0xe9, 0x0b, 0xfd, 0x9d, + 0x32, 0x38, 0x11, 0x44, 0x6c, 0xa9, 0x23, 0x77, 0x41, 0x77, 0xb6, 0xce, 0x5b, 0xba, 0xdd, 0x86, + 0xe5, 0x11, 0x1c, 0x19, 0x84, 0x5f, 0x60, 0x41, 0xa8, 0xf2, 0x20, 0xf4, 0x75, 0x25, 0xed, 0xcb, + 0xcb, 0x28, 0x3a, 0x99, 0x58, 0x6f, 0xd7, 0x37, 0x07, 0x60, 0xfd, 0x1c, 0x07, 0xd6, 0xed, 0xc3, + 0xb2, 0x98, 0x3e, 0x70, 0xbf, 0x47, 0x46, 0x04, 0xc6, 0xeb, 0xf9, 0x1e, 0x51, 0xc0, 0x22, 0xbc, + 0x5e, 0xe5, 0x48, 0xaf, 0xd7, 0xa1, 0xc6, 0x88, 0x81, 0x1e, 0xcb, 0xe9, 0x8e, 0x11, 0x87, 0xe8, + 0x8d, 0xfc, 0x56, 0x19, 0x14, 0x71, 0xc8, 0x2e, 0xc6, 0x23, 0x9c, 0x8d, 0x80, 0x1d, 0x8f, 0xce, + 0x3e, 0xef, 0xf3, 0x89, 0xa4, 0xde, 0xe7, 0xf0, 0x2d, 0x49, 0x7d, 0xcc, 0x7b, 0xb9, 0x1d, 0x09, + 0x62, 0x89, 0x5c, 0xc8, 0x07, 0x70, 0x90, 0x3e, 0x68, 0xbf, 0x21, 0x03, 0xe0, 0x35, 0x68, 0x7a, + 0x36, 0xe2, 0x29, 0xa2, 0x70, 0xdd, 0xc8, 0xfa, 0xdd, 0x7b, 0x40, 0x9d, 0xe8, 0x01, 0x8a, 0x50, + 0x0c, 0x4f, 0x5d, 0x3c, 0x98, 0xd4, 0xb7, 0x32, 0xe4, 0x6a, 0x24, 0xb0, 0x24, 0xf2, 0xb6, 0x8c, + 0x2c, 0x3b, 0x7d, 0x40, 0xfe, 0x9b, 0x04, 0x72, 0x0d, 0xab, 0x8e, 0xdc, 0x83, 0x9b, 0x02, 0x89, + 0xcf, 0xfd, 0xe3, 0x72, 0x47, 0x71, 0xee, 0xbf, 0x1f, 0xa1, 0xf4, 0x45, 0xf7, 0x0e, 0x09, 0x4c, + 0x37, 0xac, 0x72, 0xb0, 0x38, 0x25, 0xee, 0xab, 0x2a, 0x7e, 0x37, 0x7d, 0x50, 0xc1, 0xb0, 0x98, + 0x03, 0xdd, 0x4d, 0x3f, 0x98, 0x5e, 0xfa, 0x72, 0xbb, 0x05, 0x1c, 0x5d, 0x37, 0xdb, 0x96, 0x86, + 0xda, 0x16, 0x5d, 0xe9, 0x56, 0x14, 0x90, 0xdd, 0x31, 0xdb, 0x16, 0x66, 0x39, 0xa7, 0xe1, 0x67, + 0x2f, 0xcd, 0x46, 0x6d, 0x8b, 0xfa, 0x06, 0xe0, 0x67, 0xf8, 0x75, 0x19, 0x64, 0xbd, 0x7f, 0xc5, + 0x45, 0xfd, 0x56, 0x39, 0x61, 0x24, 0x03, 0x8f, 0xfc, 0x48, 0x2c, 0xa1, 0x3b, 0x98, 0xb5, 0x7f, + 0xe2, 0xc1, 0x7a, 0x75, 0x54, 0x79, 0x8c, 0x28, 0xc2, 0x35, 0x7f, 0xe5, 0x14, 0x98, 0x38, 0xdf, + 0xb1, 0x5a, 0x17, 0xc2, 0x03, 0xf7, 0xf4, 0x55, 0xb9, 0x1e, 0xe4, 0x6c, 0xdd, 0xdc, 0x44, 0x74, + 0x4f, 0xe1, 0x78, 0x4f, 0x5f, 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x05, 0xbe, 0x25, 0x49, 0x0c, 0x85, + 0x3e, 0x95, 0x4f, 0xa6, 0x0f, 0x0b, 0x43, 0x9c, 0x3c, 0x2b, 0x82, 0xe9, 0x72, 0xa9, 0x4a, 0xae, + 0x13, 0xac, 0x9d, 0x55, 0x8b, 0x32, 0x86, 0xd9, 0x93, 0x49, 0x8a, 0x30, 0x7b, 0xe4, 0x7f, 0x62, + 0x61, 0xee, 0x53, 0xf9, 0xc3, 0x80, 0xf9, 0x93, 0x12, 0x98, 0x59, 0x31, 0x1c, 0x37, 0xca, 0xdb, + 0x3f, 0x26, 0x62, 0xef, 0xf3, 0x93, 0x9a, 0xca, 0x5c, 0x39, 0xc2, 0xa1, 0x7a, 0x13, 0x99, 0xc3, + 0x71, 0x45, 0x8c, 0xe7, 0x58, 0x0a, 0xe6, 0x80, 0xdc, 0xc5, 0x2e, 0x2c, 0xc9, 0xc4, 0x86, 0x52, + 0x58, 0xc8, 0xf8, 0x0d, 0xa5, 0xc8, 0xb2, 0xd3, 0x97, 0xef, 0xd7, 0x25, 0x70, 0xcc, 0x2b, 0x3e, + 0x6e, 0x59, 0x2a, 0x5a, 0xcc, 0x03, 0x97, 0xa5, 0x12, 0xaf, 0x8c, 0xef, 0xe3, 0x65, 0x14, 0x2b, + 0xe3, 0x83, 0x88, 0x8e, 0x59, 0xcc, 0x11, 0xcb, 0xb0, 0x83, 0xc4, 0x1c, 0xb3, 0x0c, 0x3b, 0xbc, + 0x98, 0xe3, 0x97, 0x62, 0x87, 0x14, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0xa1, 0x1c, 0x88, 0x39, 0x72, + 0x6d, 0x23, 0x46, 0xcc, 0x89, 0x4f, 0xf4, 0xf2, 0xd7, 0xdb, 0x27, 0x10, 0xfc, 0x88, 0xd7, 0x37, + 0x86, 0x81, 0xe9, 0x10, 0xd7, 0x38, 0x5e, 0x22, 0x83, 0x59, 0xca, 0x45, 0xff, 0x29, 0x73, 0x0c, + 0x46, 0x89, 0xa7, 0xcc, 0x89, 0xcf, 0x00, 0xf1, 0x9c, 0x8d, 0xff, 0x0c, 0x50, 0x6c, 0xf9, 0xe9, + 0x83, 0xf3, 0x8d, 0x2c, 0x38, 0xe9, 0xb1, 0xb0, 0x6a, 0xb5, 0x8d, 0x8d, 0x3d, 0xc2, 0xc5, 0x59, + 0xbd, 0xb3, 0x83, 0x1c, 0xf8, 0x6e, 0x49, 0x14, 0xa5, 0xff, 0x03, 0x00, 0xab, 0x8b, 0x6c, 0x12, + 0x89, 0x8d, 0x02, 0x75, 0x5b, 0x54, 0x65, 0xf7, 0x97, 0x14, 0x5c, 0x60, 0x53, 0xf3, 0x89, 0x68, + 0x0c, 0x3d, 0xcf, 0x2a, 0x9c, 0x0c, 0xbe, 0xf4, 0x3a, 0x78, 0x64, 0xf6, 0x3b, 0x78, 0x5c, 0x07, + 0x64, 0xbd, 0xdd, 0x0e, 0xa0, 0xea, 0xdd, 0xcc, 0xc6, 0x65, 0x6a, 0x5e, 0x16, 0x2f, 0xa7, 0x83, + 0xc2, 0xa3, 0x79, 0x11, 0x39, 0x1d, 0xe4, 0x2a, 0x73, 0x20, 0x4f, 0x6e, 0xe5, 0x0e, 0x56, 0xf4, + 0xfb, 0x67, 0xa6, 0xb9, 0x78, 0xd3, 0xae, 0xc6, 0xab, 0xe1, 0x2d, 0x89, 0x24, 0xd3, 0xaf, 0x9f, + 0x0e, 0xed, 0x64, 0x8d, 0x53, 0xb0, 0x27, 0x0f, 0x4d, 0x79, 0x3c, 0xbb, 0x61, 0xa5, 0x6e, 0xb7, + 0xb3, 0xd7, 0xa0, 0x81, 0x07, 0x12, 0xed, 0x86, 0x31, 0xf1, 0x0b, 0xa4, 0x7d, 0xf1, 0x0b, 0x12, + 0xef, 0x86, 0x71, 0x7c, 0x8c, 0x62, 0x37, 0x2c, 0x8e, 0x60, 0xfa, 0xa2, 0xfd, 0x44, 0x81, 0x58, + 0xcd, 0xf4, 0x3e, 0x81, 0xcf, 0xf4, 0xf7, 0xac, 0x06, 0xbc, 0xb3, 0x4b, 0xbf, 0xab, 0x06, 0x62, + 0xef, 0x51, 0x51, 0x1e, 0x0f, 0xf2, 0x1b, 0x96, 0xbd, 0xad, 0xfb, 0x1b, 0xf7, 0xbd, 0x27, 0x45, + 0x68, 0x0c, 0xff, 0x45, 0x9c, 0x47, 0xa3, 0x79, 0xbd, 0xf9, 0xc8, 0xd3, 0x8c, 0x2e, 0x0d, 0xdb, + 0xe8, 0x3d, 0x2a, 0xd7, 0x80, 0x19, 0x1a, 0xbd, 0xb1, 0x8a, 0x1c, 0x17, 0xb5, 0x69, 0x44, 0x0b, + 0x3e, 0x51, 0x39, 0x03, 0xa6, 0x69, 0xc2, 0xa2, 0xd1, 0x41, 0x0e, 0x0d, 0x6a, 0xc1, 0xa5, 0x29, + 0x27, 0x41, 0xde, 0x70, 0xee, 0x72, 0x2c, 0x13, 0xfb, 0xff, 0x17, 0x34, 0xfa, 0xa6, 0x5c, 0x07, + 0x8e, 0xd2, 0x7c, 0x81, 0xb1, 0x4a, 0x0e, 0xec, 0xf4, 0x26, 0x7b, 0xaa, 0x65, 0x5a, 0x6b, 0xb6, + 0xb5, 0x69, 0x23, 0xc7, 0xc1, 0xa7, 0xa6, 0x0a, 0x1a, 0x93, 0xa2, 0xdc, 0x03, 0x8e, 0x75, 0x0c, + 0xf3, 0x82, 0x83, 0xa3, 0xfc, 0x2e, 0x52, 0xb7, 0xb1, 0xe9, 0x3e, 0xd1, 0xb7, 0x99, 0xc6, 0x46, + 0xe5, 0xc0, 0xfe, 0xa2, 0xed, 0xa7, 0xa2, 0x5c, 0x0f, 0x8a, 0x94, 0x9b, 0x79, 0xbd, 0x75, 0x01, + 0x7f, 0xa7, 0xee, 0xa8, 0xfb, 0xd2, 0xe1, 0x8b, 0x32, 0x60, 0x9a, 0xfb, 0x59, 0x07, 0x8a, 0xdf, + 0xe5, 0x39, 0xe7, 0xb6, 0x0c, 0x17, 0x79, 0x05, 0xd3, 0x73, 0x2c, 0x37, 0x0d, 0x60, 0x4c, 0xdb, + 0xf7, 0xa3, 0xd6, 0x87, 0x98, 0x07, 0x00, 0xe9, 0xcc, 0xb0, 0xd7, 0x98, 0x43, 0xed, 0x50, 0x2e, + 0x0d, 0x3e, 0x0d, 0x28, 0xfb, 0xa9, 0x31, 0x1e, 0x1e, 0x99, 0x64, 0x1e, 0x1e, 0x9e, 0x4c, 0xf4, + 0x4e, 0xc7, 0xba, 0x88, 0xda, 0x01, 0x59, 0xaa, 0x87, 0xfb, 0xd2, 0xe1, 0xe7, 0x86, 0x99, 0xf3, + 0x25, 0xbe, 0xf6, 0xc2, 0x6b, 0x40, 0x3b, 0xad, 0x16, 0x42, 0x6d, 0x7a, 0x28, 0xcd, 0x7f, 0x4d, + 0x78, 0x21, 0x46, 0xe2, 0x19, 0xe2, 0x21, 0xdd, 0x88, 0xf1, 0xa1, 0x13, 0x20, 0x4f, 0x6e, 0x97, + 0x83, 0x2f, 0x9a, 0xed, 0xdb, 0x8f, 0xcc, 0xf2, 0xfd, 0xc8, 0x3a, 0x98, 0x36, 0x2d, 0xaf, 0xb8, + 0x35, 0xdd, 0xd6, 0xb7, 0x9d, 0xb8, 0x05, 0x60, 0x42, 0x37, 0x18, 0xed, 0xab, 0xcc, 0x6f, 0xcb, + 0x47, 0x34, 0x8e, 0x8c, 0xf2, 0x7f, 0x82, 0xa3, 0xe7, 0x69, 0xf0, 0x06, 0x87, 0x52, 0x96, 0xa2, + 0xdd, 0x23, 0x7b, 0x28, 0xcf, 0xf3, 0x7f, 0x2e, 0x1f, 0xd1, 0x7a, 0x89, 0x29, 0xbf, 0x00, 0x66, + 0xbd, 0xd7, 0xb6, 0x75, 0xd1, 0x67, 0x5c, 0x8e, 0xb6, 0x11, 0x7b, 0xc8, 0xaf, 0x72, 0x3f, 0x2e, + 0x1f, 0xd1, 0x7a, 0x48, 0x29, 0x35, 0x00, 0xb6, 0xdc, 0xed, 0x0e, 0x25, 0x9c, 0x8d, 0x56, 0xc9, + 0x1e, 0xc2, 0xcb, 0xc1, 0x4f, 0xcb, 0x47, 0x34, 0x86, 0x84, 0xb2, 0x02, 0x26, 0xdd, 0xfb, 0x5c, + 0x4a, 0x2f, 0x17, 0xed, 0x97, 0xd0, 0x43, 0xaf, 0xe1, 0xff, 0xb3, 0x7c, 0x44, 0x0b, 0x09, 0x28, + 0x15, 0x50, 0xe8, 0x9e, 0xa7, 0xc4, 0xf2, 0xd1, 0x7d, 0x59, 0x0f, 0xb1, 0xb5, 0xf3, 0x01, 0xad, + 0xe0, 0x77, 0x8f, 0xb1, 0x96, 0xb3, 0x4b, 0x69, 0x4d, 0x08, 0x33, 0x56, 0xf6, 0xff, 0xf1, 0x18, + 0x0b, 0x08, 0x28, 0x15, 0x30, 0xe9, 0x98, 0x7a, 0xd7, 0xd9, 0xb2, 0x5c, 0xe7, 0x54, 0xa1, 0xc7, + 0x85, 0x35, 0x9a, 0x5a, 0x9d, 0xfe, 0xa3, 0x85, 0x7f, 0x2b, 0x8f, 0x07, 0x27, 0x76, 0xba, 0x6d, + 0xdd, 0x45, 0xea, 0x7d, 0x86, 0xe3, 0x1a, 0xe6, 0xa6, 0x1f, 0x3f, 0x98, 0x0c, 0x04, 0xfd, 0x3f, + 0x2a, 0x73, 0xf4, 0x30, 0x1b, 0xc0, 0x6d, 0x13, 0xf6, 0xee, 0xa3, 0x92, 0x62, 0x99, 0x33, 0x6c, + 0x4f, 0x02, 0x59, 0xef, 0x13, 0x1e, 0x38, 0x66, 0xfb, 0xaf, 0xd1, 0xf6, 0xea, 0x0e, 0x6e, 0xc0, + 0xde, 0x4f, 0x3d, 0x63, 0xcf, 0xf4, 0xbe, 0xb1, 0xe7, 0x2a, 0x30, 0x65, 0x38, 0xab, 0xc6, 0x26, + 0x31, 0x7c, 0xe9, 0xd8, 0xc0, 0x26, 0x91, 0x85, 0x82, 0x2a, 0xba, 0x48, 0x6e, 0x47, 0x39, 0xea, + 0x2f, 0x14, 0xf8, 0x29, 0xf0, 0x5a, 0x30, 0xcd, 0x36, 0x32, 0x72, 0x45, 0xad, 0x11, 0x9a, 0xcd, + 0xf4, 0x0d, 0x5e, 0x03, 0x66, 0x79, 0x9d, 0x66, 0xac, 0x03, 0xd9, 0xef, 0x0a, 0xe1, 0xd5, 0xe0, + 0x68, 0x4f, 0xc3, 0xf2, 0xc3, 0xc1, 0x64, 0xc2, 0x70, 0x30, 0x57, 0x01, 0x10, 0x6a, 0x71, 0x5f, + 0x32, 0x57, 0x82, 0xc9, 0x40, 0x2f, 0xfb, 0x66, 0xf8, 0x6a, 0x06, 0x14, 0x7c, 0x65, 0xeb, 0x97, + 0xc1, 0x1b, 0x99, 0x4c, 0x66, 0xef, 0xc7, 0x1f, 0x99, 0xd8, 0x34, 0xcf, 0x04, 0x08, 0x3d, 0xae, + 0x1b, 0x86, 0xdb, 0xf1, 0x4f, 0x2d, 0xf6, 0x26, 0x2b, 0x6b, 0x00, 0x18, 0x18, 0xa3, 0x46, 0x78, + 0x8c, 0xf1, 0xb1, 0x09, 0xda, 0x03, 0xd1, 0x07, 0x86, 0xc6, 0x99, 0x9f, 0xa2, 0x67, 0x0c, 0x27, + 0x41, 0x8e, 0x04, 0xd1, 0x3f, 0xa2, 0xcc, 0x02, 0xa0, 0x3e, 0x65, 0x4d, 0xd5, 0x2a, 0x6a, 0xb5, + 0xac, 0x16, 0x33, 0xf0, 0xa5, 0x12, 0x98, 0x0c, 0x1a, 0x41, 0xdf, 0x4a, 0xaa, 0x54, 0xb5, 0x06, + 0xde, 0x02, 0xba, 0xbf, 0x51, 0xb1, 0x4a, 0xf6, 0x44, 0x70, 0xe9, 0x8e, 0x83, 0x16, 0x0d, 0xdb, + 0x71, 0x35, 0xeb, 0xe2, 0xa2, 0x65, 0x87, 0x03, 0x2b, 0x09, 0x5e, 0x1b, 0xf5, 0xd9, 0x33, 0x06, + 0xdb, 0x08, 0x9f, 0x67, 0x43, 0x36, 0x5d, 0xd4, 0x0f, 0x13, 0x3c, 0xba, 0xae, 0xad, 0x9b, 0x4e, + 0xd7, 0x72, 0x90, 0x66, 0x5d, 0x74, 0x4a, 0x66, 0xbb, 0x6c, 0x75, 0x76, 0xb6, 0x4d, 0x87, 0x9a, + 0x73, 0x51, 0x9f, 0x3d, 0xe9, 0xe0, 0x3b, 0x7e, 0x67, 0x01, 0x28, 0xd7, 0x56, 0x56, 0xd4, 0x72, + 0xa3, 0x52, 0xab, 0x16, 0x8f, 0x78, 0xd2, 0x6a, 0x94, 0xe6, 0x57, 0x3c, 0xe9, 0xfc, 0x22, 0x28, + 0xf8, 0x6d, 0x9a, 0x46, 0xb0, 0xc9, 0xf8, 0x11, 0x6c, 0x94, 0x12, 0x28, 0xf8, 0xad, 0x9c, 0x8e, + 0x08, 0x8f, 0xec, 0x3d, 0xb1, 0xbc, 0xad, 0xdb, 0x2e, 0x36, 0x50, 0x7c, 0x22, 0xf3, 0xba, 0x83, + 0xb4, 0xe0, 0xb7, 0x33, 0x8f, 0xa1, 0x1c, 0x28, 0x60, 0xb6, 0xb4, 0xb2, 0xd2, 0xac, 0x69, 0xcd, + 0x6a, 0xad, 0xb1, 0x5c, 0xa9, 0x2e, 0x91, 0x11, 0xb2, 0xb2, 0x54, 0xad, 0x69, 0x2a, 0x19, 0x20, + 0xeb, 0xc5, 0x0c, 0xb9, 0x63, 0x7a, 0xbe, 0x00, 0xf2, 0x5d, 0x2c, 0x5d, 0xf8, 0x65, 0x39, 0x61, + 0xa8, 0x82, 0x00, 0xa7, 0x88, 0x5b, 0x70, 0xb9, 0xe3, 0x02, 0x52, 0x9f, 0xe3, 0xbc, 0x67, 0xc0, + 0x34, 0x31, 0xc3, 0x1d, 0xbc, 0xf3, 0x82, 0x91, 0x93, 0x35, 0x2e, 0x0d, 0x7e, 0x44, 0x4a, 0x10, + 0xbf, 0xa0, 0x2f, 0x47, 0xc9, 0x8c, 0x8b, 0xbf, 0xce, 0x0c, 0x77, 0xe5, 0x44, 0xa5, 0xda, 0x50, + 0xb5, 0x6a, 0x69, 0x85, 0x66, 0x91, 0x95, 0x53, 0xe0, 0x78, 0xb5, 0x46, 0xc3, 0x35, 0xd6, 0x9b, + 0x8d, 0x5a, 0xb3, 0xb2, 0xba, 0x56, 0xd3, 0x1a, 0xc5, 0x9c, 0x72, 0x12, 0x28, 0xe4, 0xb9, 0x59, + 0xa9, 0x37, 0xcb, 0xa5, 0x6a, 0x59, 0x5d, 0x51, 0x17, 0x8a, 0x79, 0xe5, 0x51, 0xe0, 0x6a, 0x72, + 0x85, 0x51, 0x6d, 0xb1, 0xa9, 0xd5, 0xce, 0xd5, 0x3d, 0x04, 0x35, 0x75, 0xa5, 0xe4, 0x29, 0x12, + 0x73, 0xd7, 0xf4, 0x84, 0x72, 0x09, 0x38, 0x8a, 0x2f, 0xa2, 0x5f, 0xa9, 0x95, 0x16, 0x68, 0x79, + 0x05, 0xe5, 0x0a, 0x70, 0xaa, 0x52, 0xad, 0xaf, 0x2f, 0x2e, 0x56, 0xca, 0x15, 0xb5, 0xda, 0x68, + 0xae, 0xa9, 0xda, 0x6a, 0xa5, 0x5e, 0xf7, 0xfe, 0x2d, 0x4e, 0xe2, 0x9b, 0x7c, 0x49, 0x9f, 0x09, + 0xdf, 0x25, 0x83, 0x99, 0xb3, 0x7a, 0xc7, 0xf0, 0x06, 0x0a, 0x7c, 0xc5, 0x77, 0xcf, 0x49, 0x1f, + 0x17, 0x5f, 0x05, 0x4e, 0xcf, 0x0a, 0xe0, 0x17, 0xf8, 0xab, 0x72, 0xc2, 0x93, 0x3e, 0x14, 0x08, + 0x52, 0xe2, 0x1c, 0x57, 0x5a, 0xc4, 0xbc, 0xf4, 0x95, 0x52, 0x82, 0x93, 0x3e, 0xe2, 0xe4, 0x93, + 0x81, 0xff, 0xfb, 0xa3, 0x02, 0xbf, 0x08, 0xa6, 0xd7, 0xab, 0xa5, 0xf5, 0xc6, 0x72, 0x4d, 0xab, + 0xfc, 0x3c, 0x8e, 0x34, 0x3f, 0x03, 0x26, 0x17, 0x6b, 0xda, 0x7c, 0x65, 0x61, 0x41, 0xad, 0x16, + 0x73, 0xca, 0xa5, 0xe0, 0x92, 0xba, 0xaa, 0x9d, 0xad, 0x94, 0xd5, 0xe6, 0x7a, 0xb5, 0x74, 0xb6, + 0x54, 0x59, 0xc1, 0x7d, 0x44, 0x3e, 0xe6, 0x7a, 0xf2, 0x09, 0xf8, 0xcb, 0x59, 0x00, 0x48, 0xd5, + 0xf1, 0x45, 0x4b, 0xcc, 0x25, 0xd6, 0x7f, 0x93, 0x74, 0xd2, 0x10, 0x92, 0x89, 0x68, 0xbf, 0x15, + 0x50, 0xb0, 0xe9, 0x07, 0xba, 0xf2, 0x35, 0x88, 0x0e, 0x79, 0xf4, 0xa9, 0x69, 0xc1, 0xef, 0xf0, + 0xdd, 0x49, 0xe6, 0x08, 0x91, 0x8c, 0x25, 0x43, 0x72, 0x71, 0x34, 0x40, 0xc2, 0xe7, 0x65, 0xc0, + 0x2c, 0x5f, 0x31, 0xaf, 0x12, 0xd8, 0x98, 0x12, 0xab, 0x04, 0xff, 0x33, 0x63, 0x64, 0x9d, 0x79, + 0x1c, 0x1d, 0x4e, 0x81, 0xdf, 0x32, 0xc9, 0xa1, 0x7d, 0xdf, 0x62, 0x29, 0x66, 0x3c, 0xe6, 0x3d, + 0xa3, 0xa3, 0x28, 0x29, 0x13, 0x40, 0x6e, 0xdc, 0xe7, 0x16, 0x65, 0xf8, 0x55, 0x19, 0xcc, 0x70, + 0xb7, 0x64, 0xc3, 0x57, 0x66, 0x44, 0x6e, 0xb0, 0x65, 0xee, 0xdf, 0xce, 0x1c, 0xf4, 0xfe, 0xed, + 0x33, 0x37, 0x82, 0x09, 0x9a, 0x86, 0xe5, 0x5b, 0xab, 0x7a, 0xa6, 0xc0, 0x51, 0x30, 0xb5, 0xa4, + 0x36, 0x9a, 0xf5, 0x46, 0x49, 0x6b, 0xa8, 0x0b, 0xc5, 0x8c, 0x37, 0xf0, 0xa9, 0xab, 0x6b, 0x8d, + 0x7b, 0x8a, 0x52, 0x72, 0xe7, 0xc9, 0x5e, 0x46, 0xc6, 0xec, 0x3c, 0x19, 0x57, 0x7c, 0xfa, 0x73, + 0xd5, 0xcf, 0xc8, 0xa0, 0x48, 0x38, 0x50, 0xef, 0xeb, 0x22, 0xdb, 0x40, 0x66, 0x0b, 0xc1, 0x0b, + 0x22, 0xc1, 0x5c, 0xf7, 0x85, 0x31, 0xc4, 0xfd, 0x39, 0x63, 0x25, 0x92, 0x97, 0x1e, 0x03, 0x3b, + 0xbb, 0xcf, 0xc0, 0xfe, 0x74, 0x52, 0xef, 0xc9, 0x5e, 0x76, 0x47, 0x02, 0xd9, 0xc7, 0x93, 0x78, + 0x4f, 0x0e, 0xe0, 0x60, 0x2c, 0x31, 0x9a, 0x23, 0xc6, 0xdf, 0xa2, 0x0c, 0x9f, 0x2b, 0x83, 0xa3, + 0x0b, 0xba, 0x8b, 0xe6, 0xf7, 0x1a, 0xfe, 0x2d, 0x96, 0x11, 0x37, 0x4f, 0x67, 0xf6, 0xdd, 0x3c, + 0x1d, 0x5e, 0x84, 0x29, 0xf5, 0x5c, 0x84, 0x09, 0xdf, 0x9e, 0xf4, 0xbc, 0x65, 0x0f, 0x0f, 0x23, + 0x0b, 0xa4, 0x9c, 0xec, 0x1c, 0x65, 0x3c, 0x17, 0xe9, 0x37, 0xb0, 0x37, 0x4d, 0x82, 0x22, 0x61, + 0x85, 0x71, 0x10, 0xfc, 0x6d, 0x7a, 0x59, 0x7b, 0x33, 0x41, 0x3c, 0x46, 0x3f, 0xc2, 0x85, 0xc4, + 0x47, 0xb8, 0xe0, 0xd6, 0x9b, 0xe5, 0x5e, 0xa7, 0x8e, 0xa4, 0x9d, 0x21, 0xe3, 0x0d, 0x18, 0x1d, + 0x02, 0x37, 0xbd, 0xce, 0x30, 0xb6, 0xf8, 0xf1, 0x5c, 0x28, 0x4c, 0xef, 0xf0, 0x54, 0x45, 0x91, + 0x89, 0xbf, 0x37, 0x3d, 0xa9, 0x6b, 0x38, 0xe7, 0x8d, 0x19, 0x73, 0x99, 0x78, 0x7a, 0xae, 0xe1, + 0x83, 0x38, 0x48, 0x1f, 0x85, 0x1f, 0x4a, 0x20, 0x5b, 0xb7, 0x6c, 0x77, 0x54, 0x18, 0x24, 0xdd, + 0xce, 0x66, 0x24, 0x50, 0x8f, 0x9e, 0x73, 0xa6, 0xb7, 0x9d, 0x1d, 0x5f, 0xfe, 0x18, 0x42, 0x5a, + 0x1e, 0x05, 0xb3, 0x84, 0x93, 0xe0, 0x3e, 0x98, 0x1f, 0x48, 0xa4, 0xbf, 0xba, 0x5b, 0x14, 0x11, + 0xbc, 0xf1, 0x11, 0x6c, 0x27, 0xfb, 0xa0, 0x70, 0x69, 0xf0, 0x35, 0x2c, 0x2e, 0x0b, 0x3c, 0x2e, + 0xfd, 0x66, 0xdc, 0xc1, 0x95, 0x2a, 0xa3, 0xea, 0x99, 0x92, 0x44, 0xc7, 0x8c, 0x29, 0x3c, 0x7d, + 0x44, 0xee, 0x97, 0x41, 0x9e, 0xba, 0xf3, 0x8d, 0x14, 0x81, 0xa4, 0x2d, 0x23, 0x10, 0x82, 0x98, + 0xdb, 0x9f, 0x3c, 0xea, 0x96, 0x11, 0x5f, 0x7e, 0xfa, 0x38, 0xfc, 0x88, 0xfa, 0xa9, 0x96, 0x76, + 0x75, 0xa3, 0xa3, 0x9f, 0xef, 0x24, 0x88, 0x4a, 0xfd, 0x91, 0x84, 0x27, 0xf3, 0x82, 0xaa, 0x72, + 0xe5, 0x45, 0x48, 0xfc, 0x67, 0xc0, 0xa4, 0xcd, 0xed, 0xf5, 0x79, 0x56, 0x54, 0x8f, 0x8f, 0x30, + 0xfd, 0xae, 0x85, 0x39, 0x13, 0x1d, 0xc3, 0x13, 0xe2, 0x67, 0x2c, 0xc7, 0x86, 0xa6, 0x4a, 0xed, + 0xf6, 0x22, 0xd2, 0xdd, 0x1d, 0x1b, 0xb5, 0x13, 0x0d, 0x11, 0x76, 0xcf, 0x76, 0x28, 0x23, 0x09, + 0x2e, 0x2e, 0xe4, 0x0a, 0x8f, 0xce, 0x13, 0x06, 0xf4, 0x06, 0x3e, 0x2f, 0x23, 0xe9, 0x92, 0xde, + 0x18, 0x40, 0x52, 0xe3, 0x20, 0x79, 0xd2, 0x70, 0x4c, 0xa4, 0x0f, 0xc8, 0xef, 0xca, 0x60, 0x96, + 0xd8, 0x09, 0xa3, 0xc6, 0xe4, 0x7d, 0x09, 0xdd, 0x7f, 0x98, 0x1b, 0xb7, 0x58, 0x76, 0x46, 0x02, + 0x4b, 0x12, 0x67, 0x21, 0x31, 0x3e, 0xd2, 0x47, 0xe6, 0x59, 0xc7, 0x00, 0x60, 0x5c, 0x3a, 0x3f, + 0x92, 0x0f, 0x63, 0x34, 0xc2, 0xb7, 0xd0, 0xf9, 0x47, 0x9d, 0x0b, 0x18, 0xce, 0xb8, 0x6b, 0x06, + 0x1b, 0x52, 0x7c, 0xa2, 0xd0, 0xa8, 0xf2, 0xd7, 0x09, 0x6d, 0x5e, 0xea, 0x50, 0x39, 0x70, 0x70, + 0x1f, 0xb2, 0x97, 0xfb, 0x68, 0x02, 0xe3, 0x77, 0x10, 0x2b, 0xc9, 0x50, 0x5b, 0x19, 0x62, 0x66, + 0x7f, 0x0a, 0x1c, 0xd7, 0xd4, 0xd2, 0x42, 0xad, 0xba, 0x72, 0x0f, 0x7b, 0xfd, 0x52, 0x51, 0x66, + 0x27, 0x27, 0xa9, 0xc0, 0xf6, 0xaa, 0x84, 0x7d, 0x20, 0x2f, 0xab, 0xb8, 0xd9, 0x0a, 0xb3, 0xb8, + 0x32, 0xb8, 0x57, 0x13, 0x20, 0x7b, 0x98, 0x28, 0x7c, 0x27, 0x0f, 0xa6, 0x34, 0xd4, 0xb2, 0xb6, + 0xb7, 0x91, 0xd9, 0x46, 0x6d, 0xf8, 0x2a, 0x19, 0x4c, 0x07, 0xfb, 0x7d, 0x75, 0xe4, 0xc2, 0x5f, + 0x08, 0xb1, 0x39, 0x03, 0xa6, 0xbd, 0xca, 0xd5, 0xf8, 0x20, 0xf0, 0x5c, 0x9a, 0x72, 0x03, 0x38, + 0xe6, 0xa3, 0x50, 0xeb, 0x99, 0xc2, 0xec, 0xff, 0x00, 0xdf, 0xc1, 0x62, 0xb4, 0xce, 0x63, 0x74, + 0x47, 0xb4, 0x30, 0x03, 0x76, 0xe7, 0x58, 0x56, 0x23, 0xc0, 0xfa, 0xab, 0x00, 0xac, 0xa7, 0x70, + 0x60, 0x2d, 0x1c, 0x90, 0xfe, 0x61, 0xa2, 0xf6, 0x5e, 0x19, 0x1c, 0xf7, 0x3b, 0xe2, 0xf1, 0xa1, + 0xf5, 0x51, 0x16, 0xad, 0x5f, 0xe4, 0xd1, 0x5a, 0x12, 0x91, 0x66, 0x3f, 0x96, 0x23, 0x50, 0xfb, + 0x52, 0x80, 0xda, 0x2f, 0x71, 0xa8, 0xad, 0x8c, 0xa8, 0x9c, 0xc3, 0x44, 0xef, 0x7d, 0x32, 0x38, + 0xe5, 0x99, 0x9d, 0x65, 0xcb, 0xdc, 0xe8, 0x18, 0x2d, 0xd7, 0x30, 0x37, 0x43, 0x17, 0xb6, 0x25, + 0x91, 0x95, 0xcd, 0x5e, 0x6c, 0xa5, 0xfd, 0xd8, 0xf2, 0xb1, 0x33, 0x44, 0xdb, 0x56, 0x14, 0x5b, + 0x11, 0x43, 0x18, 0xe3, 0x78, 0x1d, 0x6a, 0x0e, 0x9b, 0x94, 0xbc, 0xf5, 0x09, 0x72, 0x70, 0x98, + 0xf8, 0xdd, 0x0f, 0x18, 0xd3, 0xe3, 0x39, 0x32, 0x28, 0x62, 0x7f, 0x49, 0xdc, 0xb3, 0xd3, 0xbb, + 0x49, 0x6b, 0xbc, 0x97, 0x7c, 0xd7, 0x17, 0x90, 0xef, 0x25, 0xef, 0x27, 0x28, 0xd7, 0x82, 0xd9, + 0xd6, 0x16, 0x6a, 0x5d, 0xa8, 0x98, 0xbe, 0x2f, 0x12, 0x71, 0x5c, 0xe9, 0x49, 0xe5, 0x07, 0xb3, + 0xbb, 0x79, 0x30, 0xf9, 0x85, 0x47, 0x6e, 0x62, 0xc3, 0x32, 0x15, 0xd1, 0xd0, 0x3e, 0x11, 0x00, + 0x54, 0xe5, 0x00, 0xba, 0x75, 0x28, 0xaa, 0xc9, 0x60, 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, + 0x6b, 0x8d, 0x4a, 0xad, 0xda, 0x5c, 0xaf, 0xab, 0x0b, 0xcd, 0x79, 0x1f, 0x9c, 0x7a, 0x51, 0x86, + 0xdf, 0x94, 0xc0, 0x04, 0x61, 0xcb, 0x81, 0x8f, 0x0e, 0x21, 0x18, 0x78, 0x3c, 0x00, 0xbe, 0x49, + 0x38, 0xd8, 0x4f, 0x20, 0x08, 0x5a, 0x4e, 0x44, 0xc3, 0x78, 0x22, 0x98, 0x20, 0x20, 0xfb, 0xbb, + 0x00, 0xa7, 0x23, 0x2c, 0x3b, 0x4a, 0x46, 0xf3, 0xb3, 0x0b, 0x06, 0xfe, 0x19, 0xc0, 0x46, 0xfa, + 0xd6, 0xf8, 0xd3, 0xb3, 0x64, 0xe9, 0xe0, 0x9c, 0xe1, 0x6e, 0xe1, 0xd3, 0x03, 0xf0, 0xe7, 0x44, + 0x3a, 0xae, 0x1b, 0x40, 0x6e, 0xd7, 0xcb, 0x3d, 0xe0, 0x24, 0x06, 0xc9, 0x04, 0x7f, 0x5f, 0x38, + 0xce, 0x34, 0xa7, 0x9f, 0x01, 0x4f, 0x11, 0xe0, 0xac, 0x82, 0x6c, 0xc7, 0x70, 0x5c, 0x6a, 0x73, + 0xdf, 0x92, 0x88, 0x90, 0xff, 0x50, 0x71, 0xd1, 0xb6, 0x86, 0xc9, 0xc0, 0xbb, 0x3c, 0x8b, 0x29, + 0x4c, 0x15, 0x38, 0x8d, 0x72, 0x0a, 0x4c, 0xd0, 0x53, 0xd2, 0x74, 0x5b, 0xca, 0x7f, 0x15, 0xdc, + 0x0a, 0x12, 0xaa, 0x6d, 0xfa, 0x3a, 0xf0, 0xff, 0x1d, 0x05, 0x13, 0xcb, 0x86, 0xe3, 0x5a, 0xf6, + 0x1e, 0x7c, 0x30, 0x03, 0x26, 0xce, 0x22, 0xdb, 0x31, 0x2c, 0x73, 0x9f, 0x7b, 0xd6, 0x55, 0x60, + 0xaa, 0x6b, 0xa3, 0x5d, 0xc3, 0xda, 0x71, 0x98, 0x51, 0x82, 0x49, 0x52, 0x20, 0x28, 0xe8, 0x3b, + 0xee, 0x96, 0x65, 0x87, 0xc1, 0x95, 0xfc, 0x77, 0xe5, 0x34, 0x00, 0xe4, 0xb9, 0xaa, 0x6f, 0x23, + 0xff, 0xfe, 0xf4, 0x30, 0x45, 0x51, 0x40, 0xd6, 0x35, 0xb6, 0x11, 0x8d, 0xb6, 0x8e, 0x9f, 0x3d, + 0x01, 0xe3, 0xc8, 0xa5, 0x34, 0x42, 0xac, 0xac, 0xf9, 0xaf, 0xf0, 0x0b, 0x32, 0x98, 0x5a, 0x42, + 0x2e, 0x65, 0xd5, 0x81, 0xcf, 0xcf, 0x08, 0x5d, 0x70, 0xe4, 0xcd, 0x4b, 0x3a, 0xba, 0xe3, 0xff, + 0x17, 0x0c, 0xb9, 0x7c, 0x62, 0x18, 0xfa, 0x5d, 0x66, 0xef, 0x7d, 0xc0, 0x71, 0x40, 0xdd, 0x0a, + 0x71, 0xe0, 0xa7, 0x99, 0xe9, 0xc6, 0xf1, 0xfe, 0x0f, 0xbc, 0x4d, 0x1c, 0x1b, 0x43, 0x83, 0xca, + 0x7e, 0x8e, 0xa9, 0x4f, 0x64, 0x77, 0x54, 0xd8, 0xa5, 0x39, 0xf6, 0x5d, 0xe9, 0xc1, 0x52, 0xa2, + 0x64, 0xb4, 0x20, 0xb7, 0x60, 0xf4, 0x8d, 0xc1, 0x9c, 0x8c, 0xe1, 0x12, 0x57, 0x19, 0x4c, 0xd5, + 0xb7, 0xac, 0x8b, 0xbe, 0x1c, 0x7f, 0x51, 0x0c, 0xd8, 0x2b, 0xc0, 0xe4, 0x6e, 0x0f, 0xa8, 0x61, + 0x02, 0x7b, 0x6f, 0x9c, 0xcc, 0xdf, 0x1b, 0xf7, 0x6c, 0x39, 0x29, 0x4c, 0x0c, 0x73, 0x11, 0x30, + 0xf1, 0x57, 0xbd, 0x49, 0x09, 0xae, 0x7a, 0x53, 0x9e, 0x00, 0x26, 0x28, 0xd7, 0x74, 0x99, 0x3a, + 0x1e, 0x60, 0x3f, 0x33, 0x5b, 0xc1, 0x2c, 0x5f, 0xc1, 0x64, 0xc8, 0x47, 0x57, 0x2e, 0x7d, 0xe4, + 0xff, 0x42, 0xc2, 0xb1, 0x97, 0x7c, 0xe0, 0xcb, 0x23, 0x00, 0x1e, 0x7e, 0x3f, 0x23, 0xba, 0x99, + 0x13, 0x48, 0x20, 0xe0, 0xe0, 0x40, 0x97, 0x97, 0x0d, 0x24, 0x97, 0xbe, 0x3c, 0x5f, 0x9a, 0x05, + 0xd3, 0x0b, 0xc6, 0xc6, 0x46, 0xd0, 0x49, 0xbe, 0x40, 0xb0, 0x93, 0x8c, 0x76, 0xa1, 0xf2, 0xec, + 0xdc, 0x1d, 0xdb, 0x46, 0xa6, 0x5f, 0x29, 0xda, 0x9c, 0x7a, 0x52, 0x95, 0xeb, 0xc0, 0x51, 0x7f, + 0x5c, 0x60, 0x3b, 0xca, 0x49, 0xad, 0x37, 0x19, 0x7e, 0x57, 0xd8, 0x13, 0xc0, 0x97, 0x28, 0x5b, + 0xa5, 0x88, 0x06, 0x78, 0x1b, 0x98, 0xd9, 0x22, 0xb9, 0xf1, 0x72, 0xa9, 0xdf, 0x59, 0x9e, 0xec, + 0x89, 0x6d, 0xbf, 0x8a, 0x1c, 0x47, 0xdf, 0x44, 0x1a, 0x9f, 0xb9, 0xa7, 0xf9, 0xca, 0x49, 0x6e, + 0x6a, 0x14, 0x73, 0x2a, 0x10, 0xa8, 0xc9, 0x18, 0xb4, 0xe3, 0x0c, 0xc8, 0x2e, 0x1a, 0x1d, 0x04, + 0x7f, 0x4d, 0x02, 0x93, 0xde, 0xac, 0xdb, 0x6c, 0x79, 0x6f, 0x8c, 0x43, 0xe5, 0x77, 0x32, 0xa2, + 0x37, 0x14, 0x7b, 0x74, 0xe6, 0x02, 0x1a, 0x11, 0xed, 0x46, 0xec, 0x26, 0xe2, 0x58, 0x52, 0x63, + 0xb8, 0x4f, 0xca, 0x9b, 0x7a, 0x6c, 0x6c, 0x74, 0x2c, 0x9d, 0xdb, 0x30, 0xe8, 0x35, 0x85, 0xc2, + 0x03, 0x7e, 0x55, 0xcb, 0x5d, 0x33, 0x4c, 0x33, 0x88, 0x99, 0xb1, 0x2f, 0x9d, 0xf7, 0x75, 0x89, + 0x0d, 0x3b, 0x86, 0xeb, 0x4e, 0x4b, 0x8f, 0xd0, 0xec, 0x6b, 0xc1, 0xec, 0xf9, 0x3d, 0x17, 0x39, + 0x34, 0x17, 0x2d, 0x36, 0xab, 0xf5, 0xa4, 0x32, 0x97, 0x06, 0xc4, 0x85, 0x27, 0x8b, 0x29, 0x30, + 0x99, 0xa8, 0x97, 0x87, 0x98, 0x01, 0x1e, 0x07, 0xc5, 0x6a, 0x6d, 0x41, 0xc5, 0xfe, 0xbd, 0xbe, + 0xc7, 0xe4, 0x26, 0x7c, 0xa1, 0x0c, 0xa6, 0xb1, 0x03, 0x9e, 0x8f, 0xc2, 0xd5, 0x02, 0xf3, 0x11, + 0xf8, 0x90, 0xb0, 0xef, 0x2f, 0xae, 0x32, 0x5b, 0x40, 0xb4, 0xa0, 0x37, 0x8c, 0x4e, 0xaf, 0xa0, + 0x73, 0x5a, 0x4f, 0x6a, 0x1f, 0x40, 0xe4, 0xbe, 0x80, 0xbc, 0x57, 0xc8, 0x01, 0x78, 0x10, 0x77, + 0x87, 0x85, 0xca, 0x9f, 0xc8, 0x60, 0xca, 0x9b, 0xa4, 0xf8, 0xa0, 0xd4, 0x38, 0x50, 0x2c, 0xb3, + 0xb3, 0x17, 0x2e, 0x8b, 0xf8, 0xaf, 0x89, 0x1a, 0xc9, 0xdf, 0x0a, 0xcf, 0xdc, 0xb1, 0x88, 0x18, + 0x5e, 0xc6, 0x84, 0xdf, 0x7b, 0x84, 0xe6, 0xf3, 0x03, 0x98, 0x3b, 0x2c, 0xf8, 0xbe, 0x9e, 0x03, + 0xf9, 0xf5, 0x2e, 0x46, 0xee, 0xf7, 0x65, 0x91, 0x0b, 0x38, 0xf6, 0x1d, 0xfe, 0xf2, 0xcc, 0xac, + 0x8e, 0xd5, 0xd2, 0x3b, 0x6b, 0xe1, 0x29, 0xda, 0x30, 0x41, 0xb9, 0x95, 0xfa, 0x83, 0x93, 0xd3, + 0xe3, 0xd7, 0xc6, 0xde, 0x4d, 0x81, 0x65, 0xc4, 0x1c, 0xb4, 0xbb, 0x01, 0x1c, 0x6b, 0x1b, 0x8e, + 0x7e, 0xbe, 0x83, 0x54, 0xb3, 0x65, 0xef, 0x11, 0x71, 0xd0, 0x69, 0xd5, 0xbe, 0x0f, 0xca, 0xed, + 0x20, 0xe7, 0xb8, 0x7b, 0x1d, 0x32, 0x4f, 0x64, 0xcf, 0xe5, 0x45, 0x16, 0x55, 0xf7, 0xb2, 0x6b, + 0xe4, 0x2f, 0xd6, 0xad, 0x73, 0x42, 0xcc, 0xad, 0x53, 0x79, 0x1c, 0xc8, 0x5b, 0xb6, 0xb1, 0x69, + 0x90, 0xeb, 0xe6, 0x66, 0xf7, 0x85, 0x60, 0x25, 0xa6, 0x40, 0x0d, 0x67, 0xd1, 0x68, 0x56, 0xe5, + 0x09, 0x60, 0xd2, 0xd8, 0xd6, 0x37, 0xd1, 0xdd, 0x86, 0x49, 0x0e, 0xa8, 0xcf, 0xde, 0x7c, 0x6a, + 0xdf, 0x91, 0x43, 0xfa, 0x5d, 0x0b, 0xb3, 0xc2, 0xf7, 0x48, 0xa2, 0x71, 0xe2, 0x70, 0xdd, 0x08, + 0xa8, 0x43, 0xdc, 0x5d, 0xcd, 0xc8, 0x41, 0x16, 0x74, 0x6f, 0x7d, 0x85, 0x50, 0x04, 0xb7, 0x68, + 0xb6, 0xd2, 0x1f, 0xbc, 0x3f, 0x2f, 0x81, 0xc2, 0x82, 0x75, 0xd1, 0xc4, 0x8a, 0x7e, 0x8b, 0x98, + 0xad, 0xdb, 0xe7, 0x60, 0x38, 0x7f, 0x0b, 0x72, 0xec, 0x29, 0x30, 0x5c, 0x5b, 0xbf, 0xc8, 0x08, + 0x18, 0x62, 0x5b, 0x8e, 0xe0, 0xdd, 0xb4, 0x71, 0xe5, 0xa4, 0x2f, 0xd7, 0xbf, 0x94, 0x41, 0x76, + 0xc1, 0xb6, 0xba, 0xf0, 0x8d, 0x99, 0x04, 0x6e, 0x5e, 0x6d, 0xdb, 0xea, 0x36, 0xf0, 0xe5, 0x92, + 0xe1, 0xce, 0x06, 0x9b, 0xa6, 0xdc, 0x02, 0x0a, 0x5d, 0xcb, 0x31, 0x5c, 0x7f, 0x1a, 0x31, 0x7b, + 0xf3, 0x23, 0xfa, 0xb6, 0xe6, 0x35, 0x9a, 0x49, 0x0b, 0xb2, 0x7b, 0xbd, 0x36, 0x16, 0xa1, 0x27, + 0x17, 0x4f, 0x8c, 0xfe, 0x05, 0x9b, 0x3d, 0xa9, 0xf0, 0x45, 0x2c, 0x92, 0x4f, 0xe2, 0x91, 0x7c, + 0x64, 0x1f, 0x09, 0xdb, 0x56, 0x77, 0x24, 0x8e, 0x19, 0x2f, 0x0b, 0x50, 0x7d, 0x32, 0x87, 0xea, + 0xf5, 0x42, 0x65, 0xa6, 0x8f, 0xe8, 0x7b, 0xb2, 0x00, 0x60, 0x33, 0x63, 0xdd, 0x9b, 0x00, 0x89, + 0xd9, 0x58, 0xcf, 0xcc, 0x32, 0xb2, 0x2c, 0xf1, 0xb2, 0x7c, 0x74, 0x84, 0x15, 0x83, 0xc9, 0x47, + 0x48, 0xb4, 0x04, 0x72, 0x3b, 0xde, 0x67, 0x2a, 0x51, 0x41, 0x12, 0xf8, 0x55, 0x23, 0x7f, 0xc2, + 0xbf, 0xc8, 0x80, 0x1c, 0x4e, 0x50, 0x4e, 0x03, 0x80, 0x07, 0x76, 0x72, 0x88, 0x32, 0x83, 0x87, + 0x70, 0x26, 0x05, 0x6b, 0xab, 0xd1, 0xa6, 0x9f, 0x89, 0xc9, 0x1c, 0x26, 0x78, 0x7f, 0xe3, 0xe1, + 0x1e, 0xd3, 0xa2, 0x06, 0x00, 0x93, 0xe2, 0xfd, 0x8d, 0xdf, 0x56, 0xd0, 0x06, 0x89, 0xfb, 0x9f, + 0xd5, 0xc2, 0x84, 0xe0, 0xef, 0x95, 0xe0, 0xb6, 0x48, 0xff, 0x6f, 0x9c, 0xe2, 0x4d, 0x86, 0xb1, + 0x5a, 0xce, 0x87, 0x45, 0xe4, 0x71, 0xa6, 0xde, 0x64, 0xf8, 0xaa, 0x40, 0x6d, 0x16, 0x38, 0xb5, + 0x79, 0x6c, 0x02, 0xf1, 0xa6, 0xaf, 0x3c, 0x5f, 0xcd, 0x81, 0xc9, 0xaa, 0xd5, 0xa6, 0xba, 0xc3, + 0x4c, 0x18, 0x3f, 0x9e, 0x4b, 0x34, 0x61, 0x0c, 0x68, 0x44, 0x28, 0xc8, 0x9d, 0xbc, 0x82, 0x88, + 0x51, 0x60, 0xf5, 0x43, 0x99, 0x07, 0x79, 0xac, 0xbd, 0xfb, 0xaf, 0x21, 0x8c, 0x23, 0x81, 0x45, + 0xab, 0xd1, 0x3f, 0xff, 0xd3, 0xe9, 0xd8, 0x7f, 0x05, 0x39, 0x5c, 0xc1, 0x98, 0xdd, 0x1d, 0xbe, + 0xa2, 0x52, 0x7c, 0x45, 0xe5, 0xf8, 0x8a, 0x66, 0x7b, 0x2b, 0x9a, 0x64, 0x1d, 0x20, 0x4a, 0x43, + 0xd2, 0xd7, 0xf1, 0x7f, 0x99, 0x00, 0xa0, 0xaa, 0xef, 0x1a, 0x9b, 0x64, 0x77, 0xf8, 0x0b, 0xfe, + 0xfc, 0x87, 0xee, 0xe3, 0xfe, 0x06, 0x33, 0x10, 0xde, 0x02, 0x26, 0xe8, 0xb8, 0x47, 0x2b, 0x72, + 0x25, 0x57, 0x91, 0x90, 0x0a, 0x31, 0x4b, 0xef, 0x73, 0x35, 0x3f, 0x3f, 0x77, 0x63, 0xba, 0xd4, + 0x73, 0x63, 0x7a, 0xff, 0x3d, 0x88, 0x88, 0x7b, 0xd4, 0xe1, 0x3b, 0x85, 0x4f, 0x41, 0x31, 0xfc, + 0x30, 0x35, 0x8a, 0x68, 0x82, 0x8f, 0x03, 0x13, 0x56, 0xb0, 0xa1, 0x2d, 0x47, 0xae, 0x83, 0x55, + 0xcc, 0x0d, 0x4b, 0xf3, 0x73, 0x0a, 0x6e, 0x7e, 0x09, 0xf1, 0x31, 0x96, 0x83, 0x86, 0x27, 0x97, + 0xfc, 0x18, 0x8a, 0x5e, 0x3d, 0xce, 0x19, 0xee, 0xd6, 0x0a, 0x8e, 0xcc, 0xf4, 0x4b, 0x62, 0x16, + 0x24, 0x83, 0xbf, 0x94, 0x0c, 0x7f, 0x3e, 0xce, 0x51, 0x9d, 0x47, 0xed, 0xf6, 0x28, 0x2a, 0xfd, + 0xb9, 0x8d, 0x00, 0xf0, 0x56, 0x90, 0x27, 0x8c, 0xd2, 0x4e, 0xf4, 0x4c, 0x24, 0x7e, 0x01, 0x25, + 0x8d, 0xfe, 0x01, 0xdf, 0x11, 0xe0, 0x78, 0x96, 0xc3, 0x71, 0xfe, 0x40, 0x9c, 0xa5, 0x0e, 0xe9, + 0x99, 0x9b, 0xc0, 0x04, 0x95, 0xb4, 0x32, 0xcb, 0xb6, 0xe2, 0xe2, 0x11, 0x05, 0x80, 0xfc, 0xaa, + 0xb5, 0x8b, 0x1a, 0x56, 0x31, 0xe3, 0x3d, 0x7b, 0xfc, 0x35, 0xac, 0xa2, 0x04, 0x5f, 0x5e, 0x00, + 0x85, 0x20, 0x78, 0xdd, 0xe7, 0x25, 0x50, 0x2c, 0xdb, 0x48, 0x77, 0xd1, 0xa2, 0x6d, 0x6d, 0x93, + 0x1a, 0x89, 0x7b, 0xd4, 0xff, 0xae, 0xb0, 0x8b, 0x47, 0x10, 0x54, 0xae, 0xb7, 0xb0, 0x08, 0x2c, + 0xc9, 0x22, 0xa4, 0xe4, 0x2f, 0x42, 0xc2, 0x37, 0x08, 0xb9, 0x7c, 0x88, 0x96, 0x92, 0x7e, 0x53, + 0xfb, 0xb4, 0x04, 0x72, 0xe5, 0x8e, 0x65, 0x22, 0xf6, 0xd8, 0xe7, 0xc0, 0xf3, 0x85, 0xfd, 0x77, + 0x22, 0xe0, 0xd3, 0x25, 0x51, 0x5b, 0x23, 0x14, 0x80, 0x57, 0xb6, 0xa0, 0x6c, 0xc5, 0x06, 0xa9, + 0x58, 0xd2, 0xe9, 0x0b, 0xf4, 0x9b, 0x12, 0x98, 0x24, 0xb1, 0xc4, 0x4a, 0x9d, 0x0e, 0x7c, 0x44, + 0x28, 0xd4, 0x3e, 0x01, 0x00, 0xe1, 0x7b, 0x85, 0x8f, 0x35, 0x05, 0xb5, 0x0a, 0x68, 0x27, 0x08, + 0xaa, 0x96, 0xec, 0x94, 0x8d, 0xd8, 0x5e, 0xda, 0x40, 0x86, 0xd2, 0x17, 0xf5, 0xdf, 0x48, 0x9e, + 0x01, 0x60, 0x5e, 0x58, 0xb3, 0xd1, 0xae, 0x81, 0x2e, 0xc2, 0xcb, 0x43, 0x61, 0xef, 0x0f, 0x94, + 0xf4, 0x5a, 0xe1, 0x45, 0x1c, 0x86, 0x64, 0xe4, 0x56, 0xd6, 0x54, 0x27, 0xcc, 0x44, 0x7b, 0xf1, + 0xde, 0xe8, 0x55, 0x0c, 0x19, 0x8d, 0xcd, 0x2e, 0xb8, 0x66, 0x13, 0xcd, 0x45, 0xfa, 0x82, 0xfd, + 0xe0, 0x04, 0x28, 0xac, 0x9b, 0x4e, 0xb7, 0xa3, 0x3b, 0x5b, 0xf0, 0x07, 0x32, 0xc8, 0x93, 0xcb, + 0x2f, 0xe1, 0xcf, 0x70, 0xf1, 0x58, 0x9e, 0xba, 0x83, 0x6c, 0xdf, 0x05, 0x87, 0xbc, 0x84, 0xf6, + 0x91, 0xc4, 0xd8, 0x47, 0xf0, 0x3d, 0xb2, 0xe8, 0x24, 0xd5, 0x2f, 0x94, 0xde, 0xb6, 0x19, 0x1d, + 0x02, 0xa4, 0x6b, 0xb4, 0xdc, 0x1d, 0x1b, 0x39, 0x7d, 0x43, 0x80, 0x44, 0x52, 0x59, 0x23, 0x7f, + 0x69, 0xc1, 0xef, 0x50, 0x07, 0x13, 0x34, 0x71, 0xdf, 0x76, 0xd2, 0xfe, 0x98, 0x05, 0x27, 0x41, + 0x5e, 0xb7, 0x5d, 0xc3, 0x71, 0xe9, 0x06, 0x2b, 0x7d, 0xf3, 0xba, 0x4b, 0xf2, 0xb4, 0x6e, 0x77, + 0xfc, 0xc8, 0x4d, 0x41, 0x02, 0xfc, 0x13, 0xa1, 0xf9, 0x63, 0x7c, 0xcd, 0x93, 0x41, 0x7e, 0xf7, + 0x10, 0x6b, 0xd4, 0x97, 0x82, 0x4b, 0xb4, 0x52, 0x43, 0x6d, 0x92, 0x40, 0x3f, 0x41, 0x4c, 0x9f, + 0x36, 0x7c, 0xbb, 0xcc, 0xac, 0xdf, 0xed, 0x71, 0x63, 0x04, 0x95, 0x62, 0x38, 0x46, 0x04, 0x09, + 0x31, 0xbb, 0xd5, 0xdc, 0x22, 0xac, 0x2c, 0xbe, 0x08, 0xfb, 0xc7, 0xc2, 0xbb, 0x49, 0x81, 0x28, + 0x07, 0xac, 0x01, 0xc6, 0x5d, 0x8e, 0xf7, 0x7e, 0xa1, 0x9d, 0xa1, 0x41, 0x25, 0x1d, 0x22, 0x6c, + 0xaf, 0x99, 0x00, 0x13, 0x4b, 0x7a, 0xa7, 0x83, 0xec, 0x3d, 0x6f, 0x48, 0x2a, 0xfa, 0x1c, 0xae, + 0xea, 0xa6, 0xb1, 0x81, 0x1c, 0x37, 0xbe, 0xb3, 0x7c, 0xa7, 0x70, 0xe0, 0x75, 0x5a, 0xc6, 0x5c, + 0x2f, 0xfd, 0x08, 0x99, 0xdf, 0x08, 0xb2, 0x86, 0xb9, 0x61, 0xd1, 0x2e, 0xb3, 0x77, 0xd5, 0xde, + 0xff, 0x19, 0x4f, 0x5d, 0x70, 0x46, 0xc1, 0xd8, 0xeb, 0x82, 0x5c, 0xa4, 0xdf, 0x73, 0xbe, 0x39, + 0x0b, 0x66, 0x7c, 0x26, 0x2a, 0x66, 0x1b, 0xdd, 0xc7, 0x2e, 0xc5, 0xbc, 0x30, 0x2b, 0x7a, 0x84, + 0xb6, 0xb7, 0x3e, 0x98, 0x54, 0x84, 0x48, 0x1b, 0x00, 0xb4, 0x74, 0x17, 0x6d, 0x5a, 0xb6, 0x11, + 0xf4, 0x87, 0x8f, 0x4f, 0x42, 0xad, 0x4c, 0xfe, 0xde, 0xd3, 0x18, 0x3a, 0xca, 0xed, 0x60, 0x0a, + 0x05, 0x31, 0x4b, 0xfc, 0xa5, 0x9a, 0x58, 0xbc, 0xd8, 0xfc, 0xf0, 0x6f, 0x84, 0x4e, 0xea, 0x8a, + 0x54, 0x33, 0x19, 0x66, 0xcd, 0xe1, 0xda, 0xd0, 0x7a, 0x75, 0xb5, 0xa4, 0xd5, 0x97, 0x4b, 0x2b, + 0x2b, 0x95, 0xea, 0x52, 0x10, 0x2c, 0x4b, 0x01, 0xb3, 0x0b, 0xb5, 0x73, 0x55, 0x26, 0x9a, 0x59, + 0x16, 0xae, 0x81, 0x82, 0x2f, 0xaf, 0x7e, 0xbe, 0x98, 0xac, 0xcc, 0xa8, 0x2f, 0x26, 0x93, 0xe4, + 0x19, 0x67, 0x46, 0x2b, 0x70, 0xd0, 0xc1, 0xcf, 0xf0, 0xcf, 0x75, 0x90, 0xc3, 0x6b, 0xea, 0xf0, + 0xad, 0x78, 0x1b, 0xb0, 0xdb, 0xd1, 0x5b, 0x08, 0x6e, 0x27, 0xb0, 0xc6, 0xfd, 0x9b, 0x80, 0xa4, + 0x7d, 0x37, 0x01, 0xe1, 0x47, 0x6a, 0xf5, 0x1d, 0xef, 0xb7, 0x8e, 0xaf, 0x91, 0x2c, 0xfc, 0xa1, + 0xd6, 0xd8, 0xdd, 0x15, 0xb2, 0xfc, 0x4f, 0xd9, 0x8c, 0x50, 0xc9, 0x68, 0x9e, 0x92, 0x59, 0xa2, + 0x62, 0xfb, 0x30, 0x71, 0x1c, 0xa5, 0xdf, 0xe2, 0xbf, 0x9c, 0x05, 0xb9, 0x7a, 0xb7, 0x63, 0xb8, + 0xf0, 0x25, 0xd2, 0x48, 0x30, 0x23, 0xb7, 0x37, 0xc9, 0x03, 0x6f, 0x6f, 0x0a, 0x77, 0x5d, 0xb3, + 0x02, 0xbb, 0xae, 0x0d, 0x74, 0x9f, 0xcb, 0xef, 0xba, 0xde, 0x42, 0x03, 0x5e, 0x92, 0x3d, 0xdb, + 0x47, 0xf6, 0x11, 0x29, 0xae, 0x56, 0x9f, 0x48, 0xaa, 0x67, 0x6e, 0xa2, 0x01, 0x1d, 0x01, 0xc8, + 0xcf, 0xd7, 0x1a, 0x8d, 0xda, 0x6a, 0xf1, 0x08, 0x8e, 0x04, 0x56, 0x5b, 0x23, 0xe1, 0xb5, 0x2a, + 0xd5, 0xaa, 0xaa, 0x15, 0x25, 0x1c, 0x62, 0xb2, 0xd2, 0x58, 0x51, 0x8b, 0x32, 0x7f, 0x95, 0x47, + 0xac, 0xf9, 0xcd, 0x97, 0x9d, 0xa6, 0x7a, 0x89, 0x19, 0xe2, 0xd1, 0xfc, 0xa4, 0xaf, 0x5c, 0xbf, + 0x23, 0x83, 0xdc, 0x2a, 0xb2, 0x37, 0x11, 0x7c, 0x6a, 0x82, 0x4d, 0xbe, 0x0d, 0xc3, 0x76, 0x48, + 0x40, 0xce, 0x70, 0x93, 0x8f, 0x4d, 0x53, 0xae, 0x01, 0x33, 0x0e, 0x6a, 0x59, 0x66, 0xdb, 0xcf, + 0x44, 0xfa, 0x23, 0x3e, 0x11, 0xbe, 0x38, 0x21, 0x64, 0x98, 0xd1, 0x91, 0xec, 0xd4, 0x25, 0x01, + 0xa6, 0x5f, 0xa9, 0xe9, 0x03, 0xf3, 0x5d, 0xd9, 0xfb, 0xa9, 0xbb, 0x07, 0x5f, 0x2c, 0xbc, 0xfb, + 0x7a, 0x03, 0xc8, 0x9f, 0xf7, 0x23, 0xbb, 0xcb, 0x91, 0xfd, 0x31, 0xcd, 0xa3, 0xcc, 0x83, 0x63, + 0x0e, 0xea, 0xa0, 0x96, 0x8b, 0xda, 0x5e, 0xd3, 0xd5, 0x06, 0x76, 0x0a, 0xfb, 0xb3, 0xc3, 0xbf, + 0x62, 0x01, 0xbc, 0x8d, 0x07, 0xf0, 0xda, 0x3e, 0xa2, 0xf4, 0x2a, 0x14, 0x6d, 0x2b, 0x7b, 0xd5, + 0xa8, 0x77, 0xac, 0x60, 0x51, 0xdc, 0x7f, 0xf7, 0xbe, 0x6d, 0xb9, 0xdb, 0x1d, 0xfc, 0x8d, 0x1e, + 0x30, 0xf0, 0xdf, 0x95, 0x39, 0x30, 0xa1, 0x9b, 0x7b, 0xf8, 0x53, 0x36, 0xa6, 0xd6, 0x7e, 0x26, + 0xf8, 0xf2, 0x00, 0xf9, 0x3b, 0x38, 0xe4, 0x1f, 0x2d, 0xc6, 0x6e, 0xfa, 0xc0, 0xff, 0xea, 0x04, + 0xc8, 0xad, 0xe9, 0x8e, 0x8b, 0xe0, 0xff, 0x2b, 0x8b, 0x22, 0x7f, 0x2d, 0x98, 0xdd, 0xb0, 0x5a, + 0x3b, 0x0e, 0x6a, 0xf3, 0x8d, 0xb2, 0x27, 0x75, 0x14, 0x98, 0x2b, 0xd7, 0x83, 0xa2, 0x9f, 0x48, + 0xc9, 0xfa, 0xdb, 0xf0, 0xfb, 0xd2, 0xf1, 0xc5, 0x10, 0xce, 0x9a, 0x6e, 0xbb, 0xb5, 0x0d, 0x9c, + 0x16, 0x5c, 0x0c, 0xc1, 0x26, 0x72, 0xd0, 0xe7, 0x63, 0xa0, 0x9f, 0x88, 0x86, 0xbe, 0x20, 0x00, + 0xbd, 0x52, 0x02, 0x85, 0x0d, 0xa3, 0x83, 0xf0, 0x0f, 0x93, 0xf8, 0x87, 0x7e, 0x63, 0x12, 0x96, + 0x7d, 0x30, 0x26, 0x2d, 0x1a, 0x1d, 0xa4, 0x05, 0xbf, 0xf9, 0x13, 0x19, 0x10, 0x4e, 0x64, 0x56, + 0x88, 0x3f, 0xad, 0x67, 0x78, 0x99, 0xfa, 0x36, 0xf2, 0x17, 0xdf, 0x4c, 0x7a, 0xb8, 0xa5, 0xad, + 0xbb, 0x3a, 0x06, 0x63, 0x5a, 0xc3, 0xcf, 0xbc, 0x5f, 0x88, 0xdc, 0xeb, 0x17, 0xf2, 0x2c, 0x39, + 0x59, 0x8f, 0xe8, 0x33, 0x1b, 0xd1, 0xa2, 0xce, 0xfb, 0x00, 0x11, 0x4b, 0x31, 0x78, 0xf7, 0x80, + 0x69, 0xe9, 0x36, 0x72, 0xd7, 0x58, 0x4f, 0x8c, 0x9c, 0xc6, 0x27, 0x62, 0x57, 0x3e, 0xa7, 0xae, + 0x6f, 0x93, 0xcb, 0x21, 0xca, 0xde, 0x37, 0xea, 0xa2, 0xb5, 0x2f, 0x3d, 0xec, 0x7f, 0x73, 0xa3, + 0xee, 0x7f, 0xfb, 0xd5, 0x31, 0xfd, 0x66, 0xf8, 0xca, 0x2c, 0x90, 0xcb, 0x3b, 0xee, 0xc3, 0xba, + 0xfb, 0xfd, 0xa1, 0xb0, 0x9f, 0x0b, 0xed, 0xcf, 0x76, 0xdc, 0xc3, 0xed, 0x7d, 0x13, 0x6a, 0x89, + 0x98, 0x3f, 0x4d, 0x54, 0xdd, 0xd2, 0xd7, 0x91, 0x37, 0xca, 0x81, 0x83, 0xe5, 0xfd, 0x99, 0x83, + 0x9b, 0xe6, 0x90, 0xf4, 0x4f, 0x4c, 0xcf, 0x10, 0xbc, 0xfb, 0x1d, 0x4f, 0x96, 0x8b, 0x6f, 0x8a, + 0xb7, 0xd7, 0xb1, 0x28, 0xa7, 0x35, 0xf2, 0x02, 0x5f, 0x2a, 0xec, 0x76, 0x4e, 0xc4, 0x16, 0xeb, + 0x4a, 0x98, 0xcc, 0xa6, 0x12, 0xbb, 0x1b, 0x3b, 0xa6, 0xd8, 0xf4, 0x01, 0xfb, 0x36, 0xeb, 0x2a, + 0x58, 0x3a, 0x30, 0x62, 0xf0, 0x15, 0xc2, 0xdb, 0x51, 0xa4, 0xda, 0x03, 0xd6, 0x0b, 0x93, 0xc9, + 0x5b, 0x6c, 0xb3, 0x2a, 0xb6, 0xe0, 0xf4, 0x25, 0xfe, 0x2d, 0x19, 0xe4, 0xc9, 0x16, 0x24, 0x7c, + 0x9d, 0x70, 0x13, 0xf1, 0x7a, 0x23, 0xde, 0x85, 0x30, 0x78, 0x4f, 0xb2, 0xe6, 0xc0, 0xb9, 0x1a, + 0x66, 0x13, 0xb9, 0x1a, 0xf2, 0xe7, 0x38, 0x05, 0xda, 0x11, 0xa9, 0x63, 0xca, 0xd3, 0xc9, 0x24, + 0x2d, 0xac, 0x2f, 0x43, 0xe9, 0xe3, 0xfd, 0x9c, 0x1c, 0x98, 0x26, 0x45, 0x9f, 0x33, 0xda, 0x9b, + 0xc8, 0x85, 0x6f, 0x97, 0x7e, 0x7c, 0x50, 0x57, 0xaa, 0x60, 0xfa, 0x22, 0x66, 0x9b, 0xdc, 0x62, + 0x45, 0x57, 0x2e, 0xae, 0x8f, 0x5d, 0xf7, 0x20, 0xf5, 0xf4, 0xef, 0xbd, 0xe2, 0xfe, 0xf7, 0x64, + 0x4c, 0x16, 0xfc, 0x89, 0x03, 0x57, 0x1e, 0x1b, 0x59, 0x6c, 0x92, 0x72, 0x12, 0xe4, 0x77, 0x0d, + 0x74, 0xb1, 0xd2, 0xa6, 0xd6, 0x2d, 0x7d, 0x83, 0x7f, 0x2a, 0xbc, 0x6f, 0xcb, 0xc2, 0x4d, 0x79, + 0x49, 0x57, 0x0b, 0xc5, 0x76, 0x6f, 0x07, 0xb2, 0x35, 0x86, 0x33, 0xc5, 0xfc, 0xdd, 0xd3, 0xe5, + 0x04, 0x8a, 0x18, 0x65, 0x38, 0xf3, 0xa1, 0x3c, 0x62, 0x4f, 0xac, 0x10, 0x01, 0x8c, 0xf8, 0x5a, + 0x6a, 0xb1, 0xf8, 0x12, 0x03, 0x8a, 0x4e, 0x5f, 0xf2, 0xaf, 0x92, 0xc1, 0x64, 0x1d, 0xb9, 0x8b, + 0x06, 0xea, 0xb4, 0x1d, 0x68, 0x1f, 0xdc, 0x34, 0xba, 0x11, 0xe4, 0x37, 0x30, 0xb1, 0x41, 0xe7, + 0x16, 0x68, 0x36, 0xf8, 0x4a, 0x49, 0x74, 0x47, 0x98, 0xae, 0xbe, 0xf9, 0xdc, 0x8e, 0x04, 0x26, + 0x31, 0x8f, 0xde, 0xf8, 0x92, 0xc7, 0x10, 0x0c, 0x5c, 0x06, 0xd3, 0xf4, 0xb2, 0xda, 0x52, 0xc7, + 0xd8, 0x34, 0xe1, 0xce, 0x08, 0x5a, 0x88, 0xf2, 0x58, 0x90, 0xd3, 0x3d, 0x6a, 0x74, 0xeb, 0x15, + 0xf6, 0xed, 0x3c, 0x71, 0x79, 0x1a, 0xc9, 0x98, 0x20, 0xf4, 0x6e, 0xa8, 0xd8, 0x3e, 0xcf, 0x63, + 0x0c, 0xbd, 0x3b, 0xb0, 0xf0, 0xf4, 0x11, 0xfb, 0x8a, 0x0c, 0x8e, 0x53, 0x06, 0xce, 0x22, 0xdb, + 0x35, 0x5a, 0x7a, 0x87, 0x20, 0xf7, 0xbc, 0xcc, 0x28, 0xa0, 0x5b, 0x06, 0x33, 0xbb, 0x2c, 0x59, + 0x0a, 0xe1, 0x99, 0xbe, 0x10, 0x72, 0x0c, 0x68, 0xfc, 0x8f, 0x09, 0x42, 0x98, 0x72, 0x52, 0xe5, + 0x68, 0x8e, 0x31, 0x84, 0xa9, 0x30, 0x13, 0xe9, 0x43, 0xfc, 0x22, 0x1a, 0x9a, 0x27, 0xec, 0x3e, + 0xbf, 0x20, 0x8c, 0xed, 0x3a, 0x98, 0xc2, 0x58, 0x92, 0x1f, 0xe9, 0x32, 0x44, 0x8c, 0x12, 0x07, + 0xfd, 0x0e, 0xbd, 0x64, 0x31, 0xf8, 0x57, 0x63, 0xe9, 0xc0, 0x73, 0x00, 0x84, 0x9f, 0xd8, 0x4e, + 0x3a, 0x13, 0xd5, 0x49, 0x4b, 0x62, 0x9d, 0xf4, 0x6b, 0x85, 0x83, 0xa5, 0xf4, 0x67, 0xfb, 0xe0, + 0xea, 0x21, 0x16, 0x26, 0x63, 0x70, 0xe9, 0xe9, 0xeb, 0xc5, 0xcb, 0xa9, 0x5e, 0x2c, 0xec, 0x74, + 0x3b, 0x46, 0xcb, 0x9b, 0x4f, 0x7d, 0x64, 0x24, 0xf3, 0x29, 0xb6, 0x3f, 0x90, 0x7b, 0xfa, 0x83, + 0x03, 0x58, 0xd2, 0xd7, 0x81, 0xa3, 0xa4, 0x88, 0x72, 0xc0, 0x56, 0x8e, 0x84, 0x82, 0xe8, 0x49, + 0xe6, 0xe3, 0x12, 0x0a, 0x2a, 0x41, 0x20, 0x84, 0x21, 0x96, 0x3e, 0x93, 0x19, 0xbb, 0x49, 0x15, + 0x24, 0x8a, 0xb3, 0x31, 0xb8, 0x85, 0x66, 0x89, 0xb5, 0xbb, 0x8e, 0xef, 0xc1, 0x84, 0x5f, 0xca, + 0x8e, 0x62, 0x44, 0xb8, 0x13, 0x64, 0xb1, 0x8b, 0xbb, 0x1c, 0xb9, 0xa4, 0x11, 0x16, 0x19, 0x5e, + 0x52, 0x8a, 0xee, 0x73, 0x97, 0x8f, 0x68, 0xf8, 0x4f, 0xe5, 0x7a, 0x70, 0xf4, 0xbc, 0xde, 0xba, + 0xb0, 0x69, 0x5b, 0x3b, 0xf8, 0xc6, 0x40, 0x8b, 0x5e, 0x3d, 0x88, 0xaf, 0x70, 0xe5, 0x3f, 0x28, + 0x37, 0xfb, 0xa6, 0x43, 0x6e, 0x90, 0xe9, 0xb0, 0x7c, 0x84, 0x1a, 0x0f, 0xca, 0x4d, 0x41, 0xa7, + 0x93, 0x8f, 0xed, 0x74, 0x96, 0x8f, 0xf8, 0xdd, 0x8e, 0xb2, 0x00, 0x0a, 0x6d, 0x63, 0x17, 0x6f, + 0x55, 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xcb, 0x0b, 0xc6, 0x2e, 0xd9, 0xd8, 0x5e, 0x3e, 0xa2, 0x05, + 0x7f, 0x2a, 0x4b, 0x60, 0x12, 0x6f, 0x0b, 0x60, 0x32, 0x85, 0x44, 0xc7, 0x92, 0x97, 0x8f, 0x68, + 0xe1, 0xbf, 0x9e, 0xf5, 0x91, 0xc5, 0x67, 0x3f, 0xee, 0xf0, 0xb7, 0xdb, 0x33, 0x89, 0xb6, 0xdb, + 0x3d, 0x59, 0x90, 0x0d, 0xf7, 0x93, 0x20, 0xd7, 0xc2, 0x12, 0x96, 0xa8, 0x84, 0xc9, 0xab, 0x72, + 0x1b, 0xc8, 0x6e, 0xeb, 0xb6, 0x3f, 0x79, 0xbe, 0x76, 0x30, 0xdd, 0x55, 0xdd, 0xbe, 0xe0, 0x21, + 0xe8, 0xfd, 0x35, 0x3f, 0x01, 0x72, 0x58, 0x70, 0xc1, 0x03, 0x7c, 0x63, 0x96, 0x98, 0x21, 0x65, + 0xcb, 0xf4, 0x86, 0xfd, 0x86, 0xe5, 0x1f, 0x90, 0xf9, 0xd3, 0xcc, 0x68, 0x2c, 0xc8, 0x4b, 0x98, + 0x80, 0xc1, 0xa6, 0xf1, 0xd4, 0x1d, 0x74, 0x37, 0xda, 0xa3, 0x4b, 0xa2, 0xfd, 0x3e, 0xf5, 0xdc, + 0x27, 0x9f, 0xed, 0xbd, 0x4f, 0x3e, 0x5c, 0x3e, 0xc8, 0x0d, 0x76, 0x54, 0xf9, 0xab, 0x21, 0x4c, + 0x97, 0x5e, 0x41, 0x44, 0xcf, 0xc0, 0x3b, 0x86, 0xc9, 0xd4, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, 0x25, + 0x35, 0x6a, 0x06, 0xb0, 0x97, 0x7e, 0xdf, 0xf4, 0xfa, 0x2c, 0x89, 0x99, 0x4a, 0x4e, 0x61, 0xf0, + 0x77, 0xf4, 0xc2, 0x4f, 0x8d, 0x44, 0x69, 0xfa, 0x0c, 0x38, 0x72, 0xdf, 0x01, 0x67, 0xdf, 0x21, + 0xe5, 0xec, 0x80, 0x43, 0xca, 0xb9, 0x64, 0x2b, 0x87, 0x1f, 0x60, 0xf5, 0x67, 0x8d, 0xd7, 0x9f, + 0x5b, 0x23, 0x00, 0xea, 0x27, 0x97, 0x91, 0xd8, 0x37, 0x6f, 0x0d, 0x34, 0xa5, 0xce, 0x69, 0xca, + 0x1d, 0xc3, 0x33, 0x92, 0xbe, 0xb6, 0xbc, 0x2f, 0x0b, 0x2e, 0x09, 0x99, 0xa9, 0xa2, 0x8b, 0x54, + 0x51, 0x3e, 0x3f, 0x12, 0x45, 0x49, 0x1e, 0x03, 0x21, 0x6d, 0x8d, 0xf9, 0x0b, 0xe1, 0xb3, 0x43, + 0xbd, 0x40, 0x05, 0xb2, 0x89, 0x50, 0x96, 0x93, 0x20, 0x4f, 0x7a, 0x18, 0x0a, 0x0d, 0x7d, 0x4b, + 0xd8, 0xdd, 0x88, 0x9d, 0x38, 0x12, 0xe5, 0x6d, 0x0c, 0xfa, 0x43, 0xd7, 0x35, 0x1a, 0x3b, 0xb6, + 0x59, 0x31, 0x5d, 0x0b, 0xfe, 0xca, 0x48, 0x14, 0x27, 0xf0, 0x86, 0x93, 0x87, 0xf1, 0x86, 0x1b, + 0x6a, 0x95, 0xc3, 0xaf, 0xc1, 0xa1, 0xac, 0x72, 0x44, 0x14, 0x9e, 0x3e, 0x7e, 0x6f, 0x91, 0xc1, + 0x49, 0x3a, 0xd9, 0x9a, 0xe7, 0x2d, 0x44, 0x78, 0xcf, 0x28, 0x80, 0x3c, 0xee, 0x9b, 0x49, 0xf4, + 0x66, 0x48, 0xfc, 0xc2, 0x9f, 0x94, 0x8a, 0xbd, 0x13, 0x87, 0x9b, 0x0e, 0xf6, 0x70, 0x38, 0x12, + 0xa4, 0xc4, 0xae, 0xc2, 0x49, 0xc0, 0x46, 0xfa, 0x98, 0xbd, 0x40, 0x06, 0x79, 0x72, 0x4e, 0x0b, + 0xae, 0xa7, 0xe2, 0x30, 0xc1, 0x47, 0x79, 0x16, 0xd8, 0x91, 0x23, 0xdc, 0xa4, 0x76, 0x86, 0x2d, + 0xc9, 0x5e, 0x5c, 0x5f, 0x56, 0xc6, 0xe0, 0x42, 0x28, 0x81, 0xa9, 0x3a, 0x72, 0xcb, 0xba, 0x6d, + 0x1b, 0xfa, 0xe6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, 0xf7, 0x32, 0xa2, 0xe7, 0x69, 0x82, + 0x85, 0x70, 0x9f, 0xd5, 0x88, 0x58, 0x82, 0x0f, 0x0a, 0x9d, 0x99, 0x19, 0x44, 0x6d, 0x0c, 0x1e, + 0xdb, 0x12, 0x98, 0xf0, 0xcf, 0xe2, 0xdd, 0xc8, 0x9d, 0xcf, 0xdc, 0x72, 0xb7, 0xfd, 0x63, 0x30, + 0xf8, 0x79, 0xff, 0x19, 0x30, 0xf8, 0xb2, 0x84, 0x8e, 0xf2, 0xf1, 0x07, 0x09, 0x93, 0xb5, 0xb1, + 0x24, 0xee, 0xf0, 0x87, 0x75, 0x74, 0xf0, 0xbd, 0x13, 0x74, 0x39, 0x72, 0x45, 0x77, 0xd1, 0x7d, + 0xf0, 0x0b, 0x32, 0x98, 0xa8, 0x23, 0xd7, 0x1b, 0x6f, 0xb9, 0x0b, 0xa1, 0x87, 0xd5, 0x70, 0x85, + 0x59, 0xf1, 0x98, 0xa4, 0x6b, 0x18, 0x77, 0x81, 0xc9, 0xae, 0x6d, 0xb5, 0x90, 0xe3, 0xd0, 0xd5, + 0x0b, 0xd6, 0x51, 0xad, 0xdf, 0xe8, 0x8f, 0x59, 0x9b, 0x5b, 0xf3, 0xff, 0xd1, 0xc2, 0xdf, 0x93, + 0x9a, 0x01, 0x84, 0x12, 0xad, 0xe0, 0xb8, 0xcd, 0x80, 0xb8, 0xc2, 0xd3, 0x07, 0xfa, 0xb3, 0x32, + 0x98, 0xae, 0x23, 0x37, 0x90, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x39, 0x28, 0xe5, 0x83, 0x41, + 0x29, 0x7e, 0x9d, 0x2a, 0x2f, 0xcd, 0x80, 0xd8, 0x18, 0xaf, 0x53, 0x15, 0xe3, 0x60, 0x0c, 0xc7, + 0xd7, 0x1e, 0x09, 0x26, 0x31, 0x2f, 0xb8, 0xc1, 0xfe, 0x7a, 0x36, 0x6c, 0xbc, 0x5f, 0x4c, 0xa9, + 0xf1, 0xde, 0x0e, 0x72, 0xdb, 0xba, 0x7d, 0xc1, 0xc1, 0x0d, 0x77, 0x4a, 0xc4, 0x6c, 0x5f, 0xf5, + 0xb2, 0x6b, 0xe4, 0xaf, 0xfe, 0x7e, 0x9a, 0xb9, 0x64, 0x7e, 0x9a, 0x0f, 0x4a, 0x89, 0x46, 0x42, + 0x32, 0x77, 0x18, 0x61, 0x93, 0x4f, 0x30, 0x6e, 0xc6, 0x94, 0x9d, 0xbe, 0x72, 0x3c, 0x4f, 0x06, + 0x05, 0x6f, 0xdc, 0xc6, 0xf6, 0xf8, 0xb9, 0x83, 0xab, 0x43, 0x7f, 0x43, 0x3f, 0x61, 0x0f, 0xec, + 0x4b, 0x64, 0x74, 0xe6, 0x7d, 0x82, 0x1e, 0x38, 0xae, 0xf0, 0xf4, 0xf1, 0x78, 0x1b, 0xc1, 0x03, + 0xb7, 0x07, 0xf8, 0x6a, 0x19, 0xc8, 0x4b, 0xc8, 0x1d, 0xb7, 0x15, 0xf9, 0x26, 0xe1, 0x10, 0x47, + 0x9c, 0xc0, 0x30, 0xcf, 0x73, 0x4b, 0x68, 0x34, 0x0d, 0x48, 0x2c, 0xb6, 0x91, 0x10, 0x03, 0xe9, + 0xa3, 0xf6, 0x2e, 0x82, 0x1a, 0xd9, 0x5c, 0xf8, 0xe5, 0x11, 0xf4, 0xaa, 0xe3, 0x5d, 0xf8, 0xf0, + 0x05, 0x88, 0x69, 0x1c, 0x56, 0x7b, 0xeb, 0x57, 0xf8, 0x58, 0xae, 0x2f, 0x05, 0x5e, 0x63, 0xdf, + 0x42, 0xad, 0x0b, 0xa8, 0xcd, 0x5e, 0x07, 0x37, 0x2c, 0x74, 0xa7, 0xc0, 0x44, 0x8b, 0x50, 0xc3, + 0xe0, 0x15, 0x34, 0xff, 0x35, 0xc1, 0x5d, 0xfc, 0x7c, 0x47, 0x44, 0x7e, 0x1f, 0xe3, 0x5d, 0xfc, + 0x02, 0xc5, 0x8f, 0xc1, 0x6c, 0x21, 0xb3, 0x8c, 0x4a, 0xcb, 0x32, 0xe1, 0x7f, 0x39, 0x38, 0x2c, + 0x57, 0x80, 0x49, 0xa3, 0x65, 0x99, 0x38, 0x0c, 0x85, 0x7f, 0x08, 0x28, 0x48, 0xf0, 0xbf, 0xaa, + 0xdb, 0xd6, 0xbd, 0x06, 0xdd, 0x35, 0x0f, 0x13, 0x86, 0x35, 0x26, 0x3c, 0xd6, 0x0f, 0xcb, 0x98, + 0xe8, 0x53, 0x76, 0xfa, 0x90, 0x7d, 0x34, 0xf4, 0x6e, 0x23, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, + 0x98, 0xe1, 0x8c, 0xad, 0xc5, 0xa1, 0x0c, 0x67, 0x31, 0x0c, 0x8c, 0xe1, 0xc6, 0x8a, 0x10, 0xc7, + 0xd4, 0xd7, 0x80, 0x0f, 0x80, 0xce, 0xe8, 0xcc, 0xc3, 0x21, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0xfd, + 0x34, 0x44, 0x26, 0xb5, 0x78, 0xe0, 0x7f, 0x1d, 0x05, 0x38, 0xb7, 0x0e, 0xe3, 0xaf, 0x40, 0xbc, + 0x15, 0xe0, 0x1b, 0x24, 0xd1, 0x10, 0x28, 0xfb, 0x24, 0xe8, 0x51, 0x19, 0x09, 0x82, 0xaf, 0x15, + 0x8a, 0x4d, 0x22, 0x52, 0x7e, 0xfa, 0x00, 0x3e, 0x57, 0x06, 0xb3, 0xd8, 0x47, 0xa0, 0x83, 0x74, + 0x9b, 0x74, 0x94, 0x23, 0x71, 0x94, 0x7f, 0x9b, 0x70, 0x80, 0x1f, 0x5e, 0x0e, 0x21, 0x1f, 0x23, + 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x63, 0xd9, 0x46, 0x29, 0x06, 0x2c, 0x50, 0x15, 0x1f, + 0x0d, 0x1e, 0x09, 0x3d, 0x72, 0x79, 0x61, 0xf8, 0x8d, 0x6d, 0xcc, 0x1e, 0xb9, 0x22, 0x4c, 0xa4, + 0x8f, 0xc9, 0xab, 0x1f, 0x4b, 0x17, 0x9c, 0x1b, 0xfa, 0xf9, 0x0e, 0x82, 0xaf, 0xc8, 0x06, 0x27, + 0xda, 0x3e, 0x3b, 0x12, 0x0f, 0xcc, 0x03, 0x04, 0xc4, 0x57, 0x40, 0xd6, 0xb6, 0x2e, 0x92, 0xa5, + 0xad, 0x19, 0x0d, 0x3f, 0x93, 0xeb, 0x29, 0x3b, 0x3b, 0xdb, 0x26, 0x39, 0x19, 0x3a, 0xa3, 0xf9, + 0xaf, 0xca, 0x35, 0x60, 0xe6, 0xa2, 0xe1, 0x6e, 0x2d, 0x23, 0xbd, 0x8d, 0x6c, 0xcd, 0xba, 0x88, + 0x3d, 0xe6, 0x0a, 0x1a, 0x9f, 0xc8, 0xfb, 0xaf, 0x08, 0xd8, 0x97, 0x9e, 0x50, 0xc6, 0x73, 0xfc, + 0x2d, 0x89, 0xe5, 0x19, 0xcd, 0x55, 0xfa, 0x0a, 0xf3, 0x6e, 0x19, 0x4c, 0x6a, 0xd6, 0x45, 0xaa, + 0x24, 0xff, 0xf7, 0xe1, 0xea, 0x48, 0xe2, 0x89, 0x1e, 0x96, 0x5c, 0xc0, 0xfe, 0xd8, 0x27, 0x7a, + 0xb1, 0xc5, 0x8f, 0xe5, 0xe4, 0xd2, 0xb4, 0x66, 0x5d, 0xac, 0x23, 0x97, 0xb4, 0x08, 0xd8, 0x1c, + 0x91, 0x93, 0xb5, 0xe1, 0x10, 0x82, 0x74, 0x1e, 0x1e, 0xbc, 0x27, 0xdd, 0x45, 0x08, 0x04, 0x14, + 0xb0, 0x38, 0xee, 0x5d, 0x84, 0x81, 0x1c, 0x8c, 0x21, 0x46, 0x8a, 0x0c, 0xa6, 0x34, 0xeb, 0xa2, + 0x37, 0x34, 0x2c, 0x1a, 0x9d, 0xce, 0x68, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0x2f, 0x06, 0x9f, 0x8b, + 0xb1, 0x1b, 0xff, 0x03, 0x18, 0x48, 0x1f, 0x86, 0x67, 0x91, 0xc6, 0xe2, 0x8f, 0xd0, 0xe6, 0x68, + 0x70, 0x18, 0xb6, 0x41, 0x04, 0x6c, 0x1c, 0x5a, 0x83, 0x88, 0xe2, 0x60, 0x2c, 0x3b, 0x27, 0xb3, + 0x65, 0x3c, 0xcc, 0x8f, 0xb6, 0x4d, 0xbc, 0x23, 0x99, 0x6b, 0x22, 0x1d, 0x76, 0x39, 0x46, 0x46, + 0x82, 0x46, 0x02, 0x17, 0x44, 0x01, 0x1e, 0xd2, 0xc7, 0xe3, 0x43, 0x32, 0x98, 0x26, 0x2c, 0x3c, + 0x4c, 0xac, 0x80, 0xa1, 0x1a, 0x15, 0x5b, 0x83, 0xc3, 0x69, 0x54, 0x31, 0x1c, 0x8c, 0xe5, 0x56, + 0x50, 0xcf, 0x8e, 0x1b, 0xe2, 0xf8, 0x78, 0x14, 0x82, 0x43, 0x1b, 0x63, 0x23, 0x3c, 0x42, 0x3e, + 0x8c, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x9f, 0x15, 0xb4, 0xa2, 0x51, 0x62, 0x70, 0x80, 0xa6, 0x30, + 0x42, 0x18, 0x86, 0x6c, 0x0a, 0x87, 0x84, 0xc4, 0x57, 0x65, 0x00, 0x08, 0x03, 0xab, 0xd6, 0x2e, + 0xbe, 0xcc, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x3c, 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97, + 0xa4, 0x2b, 0x81, 0x8c, 0x94, 0xbd, 0x4a, 0x8e, 0x7d, 0x25, 0x30, 0xbe, 0xfc, 0xf4, 0x31, 0x7e, + 0x88, 0x58, 0x73, 0xe1, 0x01, 0xd3, 0xdf, 0x1b, 0x09, 0xca, 0xcc, 0xec, 0x5f, 0xe6, 0x67, 0xff, + 0x07, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, 0x6d, 0xc4, 0xc3, 0x3b, 0x20, 0xfa, + 0xcb, 0x59, 0x70, 0x94, 0x76, 0x22, 0x3f, 0x0e, 0x10, 0x27, 0x3c, 0x87, 0xc7, 0x75, 0x92, 0x03, + 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x01, 0xf6, 0xc6, 0xb2, 0xba, 0x91, 0x57, 0xef, + 0xeb, 0xea, 0x66, 0x5b, 0x3c, 0xdc, 0xef, 0x00, 0xe0, 0xfd, 0xb5, 0x46, 0x99, 0x5f, 0x6b, 0xec, + 0xb3, 0x32, 0x99, 0x78, 0xe7, 0x1a, 0x8b, 0x8c, 0xb0, 0x3b, 0xf6, 0x9d, 0xeb, 0xe8, 0xb2, 0xd3, + 0x47, 0xe9, 0x1d, 0x32, 0xc8, 0xd6, 0x2d, 0xdb, 0x85, 0xcf, 0x4e, 0xd2, 0x3a, 0x89, 0xe4, 0x43, + 0x90, 0xfc, 0x77, 0xa5, 0xcc, 0xdd, 0xd2, 0x7c, 0x63, 0xfc, 0x51, 0x67, 0xdd, 0xd5, 0xb1, 0x57, + 0xb7, 0x57, 0x3e, 0x73, 0x5d, 0x73, 0xd2, 0x78, 0x3a, 0x44, 0x7e, 0xf5, 0xe8, 0x03, 0x18, 0xa9, + 0xc5, 0xd3, 0x89, 0x2c, 0x39, 0x7d, 0xdc, 0x1e, 0x38, 0x4a, 0x7d, 0x5b, 0x17, 0x8d, 0x0e, 0x82, + 0xcf, 0x26, 0x2e, 0x23, 0x55, 0x7d, 0x1b, 0x89, 0x1f, 0x89, 0x89, 0x75, 0x6d, 0xc5, 0xf1, 0x65, + 0xe5, 0x30, 0xbe, 0x6c, 0xd2, 0x06, 0x45, 0x0e, 0xa0, 0x13, 0x96, 0xc6, 0xdd, 0xa0, 0x62, 0xca, + 0x1e, 0x4b, 0x9c, 0xce, 0x63, 0x75, 0xe4, 0x12, 0xa3, 0xb2, 0xe6, 0xdf, 0xc0, 0xf2, 0x8b, 0x23, + 0x89, 0xd8, 0x19, 0x5c, 0xf0, 0x22, 0xf7, 0x5c, 0xf0, 0xf2, 0x6e, 0x16, 0x9c, 0x55, 0x1e, 0x9c, + 0x9f, 0x8d, 0x16, 0x10, 0xcf, 0xe4, 0x48, 0x60, 0x7a, 0x53, 0x00, 0xd3, 0x1a, 0x07, 0xd3, 0x6d, + 0x43, 0x72, 0x91, 0x3e, 0x60, 0xbf, 0x99, 0x03, 0x47, 0xc9, 0xa4, 0xbf, 0x64, 0xb6, 0x69, 0x84, + 0xd5, 0xd7, 0x49, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, 0xd7, 0x7b, 0x3b, + 0xfe, 0x3c, 0x09, 0xe7, 0xea, 0x75, 0xa2, 0x78, 0xa7, 0x4d, 0xfc, 0x86, 0xfc, 0xe0, 0x3f, 0xfe, + 0x2e, 0xa3, 0x09, 0xf1, 0xbb, 0x8c, 0xfe, 0x32, 0xd9, 0xba, 0x1d, 0x2e, 0xba, 0x47, 0xe0, 0x29, + 0xdb, 0x4e, 0x09, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0x0b, 0x23, 0x88, 0x0c, 0xe9, + 0x4e, 0x86, 0x09, 0x1c, 0xa6, 0x3b, 0xd9, 0x20, 0x06, 0xc6, 0x70, 0xab, 0x7d, 0x8e, 0xee, 0xe6, + 0xe3, 0x76, 0x03, 0xff, 0x4e, 0x4a, 0x7d, 0x94, 0xfe, 0x7e, 0x26, 0x91, 0xff, 0x33, 0xe6, 0x2b, + 0x7e, 0x98, 0x4e, 0xe2, 0xd1, 0x1c, 0x47, 0x6e, 0x0c, 0xeb, 0x46, 0x12, 0xf6, 0x45, 0x3f, 0x67, + 0xb4, 0xdd, 0xad, 0x11, 0x9d, 0xe8, 0xb8, 0xe8, 0xd1, 0xf2, 0xaf, 0x47, 0xc6, 0x2f, 0xf0, 0x7f, + 0x66, 0x12, 0x85, 0x90, 0x0a, 0x44, 0x82, 0xd9, 0x8a, 0x10, 0x71, 0x82, 0xc0, 0x4f, 0xb1, 0xf4, + 0xc6, 0xa8, 0xd1, 0x67, 0x8d, 0x36, 0xb2, 0x1e, 0x86, 0x1a, 0x8d, 0xf9, 0x1a, 0x9d, 0x46, 0xc7, + 0x91, 0xfb, 0x09, 0xd5, 0xe8, 0x40, 0x24, 0x23, 0xd2, 0xe8, 0x58, 0x7a, 0xe9, 0xcb, 0xf8, 0x65, + 0xd3, 0x74, 0x22, 0xb5, 0x62, 0x98, 0x17, 0xe0, 0xbf, 0xe5, 0xfd, 0x8b, 0x99, 0xcf, 0x19, 0xee, + 0x16, 0x8d, 0x05, 0xf3, 0x3e, 0xe1, 0xbb, 0x51, 0x86, 0x88, 0xf7, 0xc2, 0x87, 0x93, 0xca, 0xed, + 0x0b, 0x27, 0x55, 0x02, 0x33, 0x86, 0xe9, 0x22, 0xdb, 0xd4, 0x3b, 0x8b, 0x1d, 0x7d, 0xd3, 0x39, + 0x35, 0xd1, 0xf7, 0xf2, 0xba, 0x0a, 0x93, 0x47, 0xe3, 0xff, 0x60, 0xaf, 0xaf, 0x2c, 0xf0, 0xd7, + 0x57, 0x46, 0x44, 0xbf, 0x9a, 0x8c, 0x8e, 0x7e, 0x15, 0x44, 0xb7, 0x02, 0x83, 0x83, 0x63, 0x8b, + 0xda, 0xc6, 0x09, 0xc3, 0xfd, 0xdd, 0x28, 0x18, 0x85, 0x2d, 0x08, 0xfd, 0xf8, 0x07, 0x72, 0xa2, + 0xd5, 0x3d, 0x4f, 0x11, 0xe6, 0x7a, 0x95, 0x20, 0xb1, 0x85, 0xca, 0x56, 0x5e, 0xee, 0xa9, 0x7c, + 0x60, 0xf2, 0x64, 0x05, 0x4c, 0x1e, 0x56, 0xa9, 0x72, 0x62, 0x4a, 0x95, 0x64, 0xb1, 0x50, 0xa4, + 0xb6, 0x63, 0x38, 0x8d, 0x94, 0x03, 0xc7, 0xfc, 0x68, 0xb7, 0xdd, 0x2e, 0xd2, 0x6d, 0xdd, 0x6c, + 0x21, 0xf8, 0x51, 0x69, 0x14, 0x66, 0xef, 0x22, 0x28, 0x18, 0x2d, 0xcb, 0xac, 0x1b, 0x4f, 0xf3, + 0x2f, 0x97, 0x8b, 0x0f, 0xb2, 0x8e, 0x25, 0x52, 0xa1, 0x7f, 0x68, 0xc1, 0xbf, 0x4a, 0x05, 0x4c, + 0xb6, 0x74, 0xbb, 0x4d, 0x82, 0xf0, 0xe5, 0x7a, 0x2e, 0x72, 0x8a, 0x24, 0x54, 0xf6, 0x7f, 0xd1, + 0xc2, 0xbf, 0x95, 0x1a, 0x2f, 0xc4, 0x7c, 0x4f, 0x34, 0x8f, 0x48, 0x62, 0x0b, 0xe1, 0x4f, 0x9c, + 0xcc, 0x3d, 0xe9, 0xd8, 0xa8, 0x83, 0xef, 0xa0, 0x27, 0x3d, 0xc4, 0xa4, 0x16, 0x26, 0x24, 0x5d, + 0x1e, 0xc0, 0x45, 0xed, 0x43, 0x63, 0xdc, 0xcb, 0x03, 0x42, 0x5c, 0xa4, 0xaf, 0x99, 0x6f, 0xcd, + 0x83, 0x19, 0xd2, 0xab, 0x51, 0x71, 0xc2, 0xe7, 0xe2, 0x2b, 0xa4, 0xdd, 0xbb, 0xd1, 0x1e, 0xac, + 0x1f, 0x7c, 0x4c, 0x2e, 0x02, 0xf9, 0x42, 0x10, 0x70, 0xd0, 0x7b, 0x4c, 0xba, 0x6f, 0xef, 0xf3, + 0x35, 0x47, 0x78, 0x1a, 0xf7, 0xbe, 0x7d, 0x7c, 0xf1, 0xe9, 0xe3, 0xf3, 0x5b, 0x32, 0x90, 0x4b, + 0xed, 0x36, 0x6c, 0x1d, 0x1c, 0x8a, 0xab, 0xc0, 0x94, 0xdf, 0x66, 0xc2, 0x18, 0x90, 0x6c, 0x52, + 0xd2, 0x45, 0xd0, 0x40, 0x36, 0xa5, 0xf6, 0xd8, 0x77, 0x15, 0x62, 0xca, 0x4e, 0x1f, 0x94, 0x2f, + 0x4e, 0xd0, 0x46, 0x33, 0x6f, 0x59, 0x17, 0xf0, 0x51, 0x99, 0x3f, 0x92, 0x41, 0x6e, 0x11, 0xb9, + 0xad, 0x2d, 0xe8, 0x8c, 0xa4, 0xcd, 0xec, 0xd8, 0x1d, 0xbf, 0xcd, 0xec, 0xd8, 0x9d, 0x41, 0x41, + 0x39, 0x93, 0x46, 0x7f, 0xf6, 0xd9, 0x9e, 0xc3, 0x2c, 0x8f, 0x3b, 0xfa, 0x73, 0x6c, 0xe9, 0x63, + 0x38, 0x04, 0x97, 0x05, 0xb3, 0xc1, 0x0a, 0x18, 0xc1, 0xec, 0xcd, 0x99, 0x87, 0xdd, 0x7a, 0xe8, + 0x00, 0xbb, 0x19, 0x7e, 0x3e, 0x59, 0x88, 0xb5, 0x40, 0xe6, 0x7c, 0xcd, 0x53, 0x5e, 0x98, 0x4c, + 0x10, 0x7c, 0x4d, 0x8c, 0xc1, 0x31, 0xac, 0x00, 0xc8, 0xa0, 0x80, 0x19, 0x5a, 0x30, 0x76, 0xb1, + 0xeb, 0x21, 0xb7, 0x50, 0xf9, 0xf4, 0x91, 0x2c, 0x54, 0xde, 0xc6, 0x2f, 0x54, 0x0a, 0x46, 0x4c, + 0xf6, 0xd7, 0x29, 0x13, 0xfa, 0xe2, 0x78, 0xff, 0x8f, 0x7c, 0x99, 0x32, 0x81, 0x2f, 0xce, 0x80, + 0xf2, 0xc7, 0xe0, 0x7a, 0xf8, 0x14, 0xda, 0x59, 0xfb, 0x1b, 0xb2, 0xf0, 0xbf, 0x1f, 0x03, 0xd9, + 0xb3, 0xde, 0xc3, 0xff, 0x08, 0x6f, 0xd4, 0x7a, 0xf1, 0x08, 0x82, 0x3b, 0x3c, 0x19, 0x64, 0x3d, + 0xfa, 0x74, 0xda, 0x73, 0xbd, 0xd8, 0xee, 0xb0, 0xc7, 0x88, 0x86, 0xff, 0x53, 0x4e, 0x82, 0xbc, + 0x63, 0xed, 0xd8, 0x2d, 0xcf, 0xfc, 0xf6, 0x34, 0x86, 0xbe, 0x25, 0x0d, 0x6a, 0xca, 0x91, 0x9e, + 0x1b, 0x9d, 0xcb, 0x29, 0x73, 0xc1, 0x92, 0xcc, 0x5d, 0xb0, 0x94, 0x60, 0xff, 0x41, 0x80, 0xb7, + 0xf4, 0x35, 0xe2, 0xef, 0xf0, 0x5d, 0x83, 0xed, 0x51, 0xc1, 0x1e, 0x21, 0x96, 0x83, 0xaa, 0x43, + 0x52, 0x87, 0x71, 0x5e, 0xb4, 0x41, 0x1c, 0xf9, 0xb1, 0x3a, 0x8c, 0x0b, 0xf0, 0x30, 0x96, 0x53, + 0xee, 0x79, 0xea, 0xe4, 0x7a, 0xcf, 0x28, 0xd1, 0xcd, 0x72, 0x4a, 0x7f, 0x20, 0x74, 0x46, 0xe8, + 0xfc, 0x3a, 0x34, 0x3a, 0x87, 0xe4, 0xfe, 0xfa, 0x67, 0x32, 0x8e, 0xa4, 0xe9, 0x1b, 0x41, 0xe2, + 0x17, 0x25, 0x25, 0x86, 0xc8, 0x1b, 0x83, 0xb9, 0x38, 0xd2, 0x33, 0xc3, 0x87, 0x16, 0xe7, 0x45, + 0xc7, 0xf0, 0x3f, 0xee, 0xd0, 0xe2, 0xa2, 0x8c, 0xa4, 0x0f, 0xe4, 0x1f, 0x92, 0x8b, 0xc9, 0x4a, + 0x2d, 0xd7, 0xd8, 0x1d, 0x71, 0x4b, 0xe3, 0x87, 0x97, 0x84, 0xd1, 0x84, 0xf7, 0x49, 0x88, 0x70, + 0x38, 0xee, 0x68, 0xc2, 0x62, 0x6c, 0xa4, 0x0f, 0xd3, 0x3f, 0xe6, 0x3d, 0xe9, 0xd1, 0xb5, 0x9d, + 0x57, 0xd3, 0xd5, 0x04, 0x74, 0x70, 0xb4, 0xce, 0x80, 0x69, 0x66, 0xe9, 0xc0, 0xbf, 0xf0, 0x86, + 0x4b, 0x4b, 0x7a, 0x50, 0x3e, 0x10, 0xd9, 0xc8, 0x17, 0x16, 0x12, 0x2c, 0x18, 0x8b, 0x30, 0x31, + 0x96, 0xfb, 0xe4, 0xfc, 0x31, 0x6c, 0x4c, 0x58, 0xbd, 0x8f, 0xc5, 0xaa, 0xc6, 0x63, 0x75, 0x8b, + 0x88, 0x98, 0xc4, 0xc6, 0x34, 0xa1, 0x79, 0xe3, 0x5b, 0x02, 0xb8, 0x34, 0x0e, 0xae, 0x27, 0x0f, + 0xcd, 0x47, 0xfa, 0x88, 0xbd, 0x84, 0x74, 0x87, 0x75, 0x62, 0xb2, 0x8f, 0xa6, 0x3b, 0xa4, 0xb3, + 0x01, 0x99, 0x9b, 0x0d, 0x24, 0xf4, 0xd7, 0x0f, 0xdd, 0x50, 0x7d, 0xe6, 0x06, 0x41, 0x94, 0x1d, + 0xb1, 0xbf, 0xfe, 0x40, 0x0e, 0xd2, 0x07, 0xe7, 0x3b, 0x32, 0x00, 0x4b, 0xb6, 0xb5, 0xd3, 0xad, + 0xd9, 0x6d, 0x64, 0xc3, 0x7f, 0x08, 0x27, 0x00, 0x2f, 0x1c, 0xc1, 0x04, 0x60, 0x0d, 0x80, 0xcd, + 0x80, 0x38, 0xd5, 0xf0, 0xc7, 0x8a, 0x99, 0xfb, 0x21, 0x53, 0x1a, 0x43, 0x83, 0xbf, 0xb2, 0xf6, + 0xe7, 0x78, 0x8c, 0xe3, 0xfa, 0xac, 0x90, 0xdc, 0x28, 0x27, 0x00, 0x6f, 0x0b, 0xb0, 0x6e, 0x70, + 0x58, 0xdf, 0x79, 0x00, 0x4e, 0xd2, 0xc7, 0xfc, 0x5f, 0x27, 0xc0, 0x14, 0xd9, 0xee, 0x23, 0x32, + 0xfd, 0xe7, 0x10, 0xf4, 0xdf, 0x1b, 0x01, 0xe8, 0xeb, 0x60, 0xda, 0x0a, 0xa9, 0x93, 0x3e, 0x95, + 0x5d, 0x80, 0x89, 0x85, 0x9d, 0xe1, 0x4b, 0xe3, 0xc8, 0xc0, 0x0f, 0xb3, 0xc8, 0x6b, 0x3c, 0xf2, + 0xb7, 0xc5, 0xc8, 0x9b, 0xa1, 0x38, 0x4a, 0xe8, 0xdf, 0x1e, 0x40, 0xbf, 0xce, 0x41, 0x5f, 0x3a, + 0x08, 0x2b, 0x63, 0x08, 0xd7, 0x2f, 0x83, 0x2c, 0x3e, 0x5d, 0xf7, 0xfa, 0x14, 0xe7, 0xf7, 0xa7, + 0xc0, 0x04, 0x6e, 0xb2, 0xc1, 0xbc, 0xc3, 0x7f, 0xf5, 0xbe, 0xe8, 0x1b, 0x2e, 0xb2, 0x83, 0x95, + 0x5b, 0xff, 0xd5, 0xe3, 0xc1, 0xf7, 0x6a, 0x76, 0x4e, 0xe5, 0xc9, 0x46, 0x66, 0x90, 0x30, 0xf4, + 0xa4, 0x84, 0x95, 0xf8, 0xc8, 0xce, 0xdb, 0x0d, 0x33, 0x29, 0x19, 0xc0, 0x48, 0xfa, 0xc0, 0x7f, + 0x29, 0x0b, 0x4e, 0x91, 0x55, 0xa5, 0x45, 0xdb, 0xda, 0xee, 0xb9, 0x1d, 0xcb, 0x38, 0xb8, 0x2e, + 0x5c, 0x0b, 0x66, 0x5d, 0xce, 0x9f, 0x9b, 0xea, 0x44, 0x4f, 0x2a, 0xfc, 0x2b, 0xd6, 0x27, 0xe3, + 0x29, 0x3c, 0x92, 0xf3, 0x31, 0x02, 0x8c, 0xe2, 0x3d, 0xf1, 0x42, 0xbd, 0x20, 0xa3, 0xcc, 0x22, + 0x95, 0x3c, 0xd4, 0x9a, 0x65, 0xa0, 0x53, 0x39, 0x11, 0x9d, 0x7a, 0x4f, 0xa0, 0x53, 0xbf, 0xc0, + 0xe9, 0xd4, 0xd2, 0xc1, 0x45, 0x32, 0x86, 0x95, 0x8b, 0x59, 0x90, 0x5f, 0x34, 0x3a, 0x2e, 0xb2, + 0xe1, 0x43, 0x74, 0x1e, 0xf5, 0x8a, 0x14, 0xbb, 0x97, 0x05, 0x90, 0xdf, 0xc0, 0xa5, 0x51, 0x83, + 0xec, 0x06, 0x31, 0x6c, 0x08, 0x87, 0x1a, 0xfd, 0x37, 0x69, 0xec, 0xb8, 0x1e, 0x32, 0x23, 0x9b, + 0x80, 0x25, 0x88, 0x1d, 0x37, 0x98, 0x85, 0xb1, 0x5c, 0x9b, 0x94, 0xd7, 0xd0, 0xb6, 0x37, 0x82, + 0x5c, 0x48, 0x0f, 0xe1, 0x22, 0x90, 0x8d, 0xb6, 0x83, 0x9b, 0xde, 0xa4, 0xe6, 0x3d, 0x26, 0xf5, + 0x64, 0xe9, 0x15, 0x15, 0x61, 0x79, 0xdc, 0x9e, 0x2c, 0x42, 0x5c, 0xa4, 0x8f, 0xd9, 0xf7, 0xb1, + 0x1b, 0x63, 0xb7, 0xa3, 0xb7, 0x90, 0xc7, 0x7d, 0x6a, 0xa8, 0xcd, 0x02, 0xc9, 0xf0, 0x47, 0x7c, + 0xc9, 0x60, 0xdb, 0x69, 0xee, 0x00, 0xed, 0x74, 0xd8, 0x45, 0xae, 0x40, 0xe6, 0xb8, 0xe2, 0x87, + 0xb6, 0xc8, 0x15, 0xcb, 0xc6, 0x18, 0x2e, 0xc5, 0xf4, 0x8f, 0x79, 0x8e, 0xb5, 0xb5, 0x0e, 0xbb, + 0x05, 0x40, 0x85, 0x35, 0xb2, 0x23, 0x9d, 0xc3, 0x6c, 0x01, 0x44, 0xf3, 0x30, 0x06, 0xb4, 0x66, + 0x29, 0x5a, 0x9f, 0xa3, 0xc3, 0x68, 0xca, 0xbb, 0x70, 0x8e, 0x65, 0xbb, 0xc9, 0x76, 0xe1, 0x3c, + 0xee, 0x34, 0xfc, 0x5f, 0xd2, 0x63, 0x41, 0xfc, 0xa9, 0xdf, 0x51, 0x0d, 0x9f, 0x09, 0x8e, 0x05, + 0x0d, 0x62, 0x20, 0x7d, 0x78, 0xdf, 0x70, 0x48, 0x83, 0xe7, 0xb0, 0xcd, 0x91, 0xb6, 0x81, 0x91, + 0x0d, 0x9d, 0xc3, 0x34, 0xc7, 0x68, 0x1e, 0xd2, 0xc7, 0xeb, 0xdb, 0xcc, 0xc0, 0xf9, 0xda, 0x31, + 0x0e, 0x9c, 0x7e, 0xcb, 0xcc, 0x0d, 0xd9, 0x32, 0x87, 0xdd, 0x5d, 0xa0, 0xb2, 0x1e, 0xdd, 0x80, + 0x39, 0xcc, 0xee, 0x42, 0x0c, 0x13, 0xe9, 0x23, 0xfe, 0x3a, 0x19, 0xe4, 0xea, 0xe3, 0x1f, 0x2f, + 0x87, 0x9d, 0x8b, 0x60, 0x59, 0xd5, 0x47, 0x36, 0x5c, 0x0e, 0x33, 0x17, 0x89, 0x64, 0x61, 0x0c, + 0x61, 0xe1, 0x8f, 0x82, 0x69, 0x3c, 0xe1, 0xf6, 0x37, 0xf1, 0xbe, 0x4d, 0x47, 0xcd, 0x07, 0x53, + 0x6c, 0xab, 0x77, 0x81, 0x82, 0xbf, 0x3b, 0x44, 0x47, 0xce, 0x39, 0xb1, 0xf6, 0xe9, 0x73, 0xa9, + 0x05, 0xff, 0x1f, 0x68, 0xab, 0x7d, 0xe4, 0x3b, 0x81, 0xc3, 0x6e, 0xb5, 0x1f, 0xea, 0x6e, 0xe0, + 0x5f, 0x86, 0x23, 0xea, 0x7f, 0x49, 0x0f, 0xf3, 0xde, 0x5d, 0xc2, 0x6c, 0x9f, 0x5d, 0xc2, 0x8f, + 0xb2, 0x58, 0xd6, 0x79, 0x2c, 0x6f, 0x17, 0x15, 0xe1, 0x08, 0xc7, 0xda, 0x77, 0x04, 0x70, 0x9e, + 0xe5, 0xe0, 0x9c, 0x3f, 0x10, 0x2f, 0x63, 0x38, 0x96, 0x97, 0x0d, 0xc7, 0xdc, 0x8f, 0xa5, 0xd8, + 0x8e, 0x7b, 0x7c, 0xfe, 0xb3, 0xfb, 0x7c, 0xfe, 0xb9, 0x96, 0x9e, 0x3b, 0x60, 0x4b, 0xff, 0x18, + 0xab, 0x1d, 0x0d, 0x5e, 0x3b, 0x9e, 0x2c, 0x8e, 0xc8, 0xe8, 0x46, 0xe6, 0x77, 0x06, 0xea, 0x71, + 0x8e, 0x53, 0x8f, 0xf2, 0xc1, 0x98, 0x49, 0x5f, 0x3f, 0x3e, 0xe1, 0x4f, 0x68, 0x0f, 0xb9, 0xbd, + 0x0f, 0xbb, 0x11, 0xc9, 0x09, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x1b, 0x91, 0x83, 0x38, 0x19, 0x43, + 0xa4, 0xb0, 0x19, 0x30, 0x85, 0x79, 0x3a, 0x67, 0xb4, 0x37, 0x91, 0x0b, 0xff, 0x80, 0x78, 0xc0, + 0xf9, 0x71, 0x19, 0x47, 0x14, 0x3c, 0x27, 0xea, 0x34, 0x66, 0x52, 0x7f, 0x01, 0xc2, 0xe4, 0x1c, + 0xc3, 0xe0, 0xb8, 0xe3, 0xfb, 0x0d, 0xe4, 0x20, 0x7d, 0xc8, 0x3e, 0x4c, 0x9c, 0x39, 0x56, 0xf4, + 0x3d, 0x6b, 0xc7, 0x85, 0xf7, 0x8f, 0xa0, 0x83, 0x9e, 0x07, 0xf9, 0x0e, 0xa6, 0x46, 0x9d, 0xfe, + 0xe3, 0xa7, 0x3b, 0x54, 0x04, 0xa4, 0x7c, 0x8d, 0xfe, 0x99, 0xd4, 0xf3, 0x3f, 0x94, 0x23, 0xa1, + 0x33, 0x6e, 0xcf, 0xff, 0x01, 0xe5, 0x8f, 0xe5, 0x06, 0x98, 0x82, 0x57, 0xba, 0xb1, 0x6d, 0xb8, + 0x23, 0x8a, 0x2f, 0xd0, 0xf1, 0x68, 0xf9, 0xf1, 0x05, 0xf0, 0x4b, 0xd2, 0xf3, 0x8c, 0x8c, 0x54, + 0xbc, 0xdf, 0xc7, 0x7d, 0x9e, 0x31, 0xbe, 0xf8, 0xf4, 0x31, 0xf9, 0x1d, 0xd2, 0xb2, 0xce, 0x12, + 0xd7, 0xce, 0x14, 0xbd, 0x46, 0x87, 0x6e, 0x2c, 0x84, 0xb5, 0xc3, 0x6b, 0x2c, 0x7d, 0xcb, 0x4f, + 0x1f, 0x98, 0x3f, 0xfa, 0x69, 0x90, 0x5b, 0x40, 0xe7, 0x77, 0x36, 0xe1, 0x6d, 0xa0, 0xd0, 0xb0, + 0x11, 0xaa, 0x98, 0x1b, 0x96, 0x27, 0x5d, 0xd7, 0x7b, 0xf6, 0x21, 0xa1, 0x6f, 0x1e, 0x1e, 0x5b, + 0x48, 0x6f, 0x87, 0xa7, 0x9b, 0xfc, 0x57, 0xf8, 0x62, 0x09, 0x64, 0xeb, 0xae, 0xee, 0xc2, 0xc9, + 0x00, 0x5b, 0x78, 0x3f, 0x8b, 0xc5, 0x6d, 0x3c, 0x16, 0xd7, 0x72, 0xb2, 0xc0, 0x1c, 0xcc, 0x79, + 0xff, 0x47, 0x00, 0x00, 0x41, 0xe1, 0x5e, 0xc7, 0x32, 0xbd, 0x1c, 0xfe, 0x01, 0x3c, 0xff, 0x1d, + 0xbe, 0x3c, 0x10, 0xf7, 0x1d, 0x9c, 0xb8, 0x1f, 0x2d, 0x56, 0xc4, 0x18, 0x56, 0xda, 0x24, 0x30, + 0xe9, 0x89, 0x76, 0x19, 0xe9, 0x6d, 0x07, 0xfe, 0x54, 0xa8, 0xfc, 0x11, 0x62, 0x86, 0xef, 0x17, + 0x0e, 0x15, 0x49, 0x6a, 0x15, 0x10, 0x8f, 0xf6, 0x17, 0xf0, 0x43, 0x65, 0x48, 0x7c, 0xa8, 0x8c, + 0x1b, 0x41, 0xd6, 0x30, 0x37, 0x2c, 0xea, 0xbd, 0x76, 0x79, 0x04, 0x6d, 0x4f, 0x27, 0x34, 0x9c, + 0x51, 0x30, 0x8e, 0x64, 0x3c, 0x5b, 0x63, 0xb9, 0x92, 0x2d, 0xeb, 0x95, 0x0e, 0xff, 0xaf, 0x81, + 0xc2, 0x56, 0x14, 0x90, 0xed, 0xea, 0xee, 0x16, 0x2d, 0x1a, 0x3f, 0x7b, 0x36, 0xf2, 0x8e, 0xa9, + 0x9b, 0x96, 0xb9, 0xb7, 0x6d, 0x3c, 0x2d, 0xb8, 0xf9, 0x95, 0x4b, 0xf3, 0x38, 0xdf, 0x44, 0x26, + 0xb2, 0x75, 0x17, 0xd5, 0x77, 0x37, 0xf1, 0x1c, 0xab, 0xa0, 0xb1, 0x49, 0x89, 0xf5, 0xdf, 0xe3, + 0x38, 0x5a, 0xff, 0x37, 0x8c, 0x0e, 0xc2, 0x71, 0x84, 0xa8, 0xfe, 0xfb, 0xef, 0x89, 0xf4, 0xbf, + 0x4f, 0x11, 0xe9, 0xa3, 0xf1, 0x03, 0x09, 0x4c, 0xd7, 0x3d, 0x85, 0xab, 0xef, 0x6c, 0x6f, 0xeb, + 0xf6, 0x1e, 0xbc, 0x3a, 0x44, 0x85, 0x51, 0xcd, 0x0c, 0xa7, 0x9a, 0xf0, 0xcf, 0x84, 0x2f, 0x3d, + 0xa6, 0x4d, 0x9b, 0x29, 0x21, 0x71, 0x3b, 0xb8, 0x09, 0xe4, 0x3c, 0xf5, 0xf6, 0xfd, 0xf9, 0x62, + 0x1b, 0x02, 0xc9, 0x29, 0x18, 0x6f, 0x69, 0x20, 0x6f, 0x63, 0x88, 0xf5, 0x20, 0x81, 0xa3, 0x75, + 0x57, 0x6f, 0x5d, 0x58, 0xb2, 0x6c, 0x6b, 0xc7, 0x35, 0x4c, 0xe4, 0xc0, 0x47, 0x84, 0x08, 0xf8, + 0xfa, 0x9f, 0x09, 0xf5, 0x1f, 0xfe, 0x28, 0x23, 0x3a, 0x8a, 0x06, 0xdd, 0x2a, 0x4b, 0x3e, 0x22, + 0x7c, 0x92, 0xd8, 0xb8, 0x28, 0x42, 0x31, 0x7d, 0xa1, 0xbd, 0x56, 0x06, 0x45, 0xf5, 0xbe, 0xae, + 0x65, 0xbb, 0x2b, 0x56, 0x4b, 0xef, 0x38, 0xae, 0x65, 0x23, 0x58, 0x8b, 0x95, 0x9a, 0xd7, 0xc3, + 0xb4, 0xad, 0x56, 0x38, 0x38, 0xd2, 0x37, 0x56, 0xed, 0x64, 0x5e, 0xc7, 0x3f, 0x2c, 0xbc, 0xcb, + 0x48, 0xa4, 0xd2, 0xcb, 0x51, 0x84, 0x9e, 0xf7, 0xeb, 0xd2, 0x92, 0xb9, 0xe2, 0x8b, 0xed, 0x3c, + 0x0a, 0x31, 0x35, 0x86, 0xa5, 0x72, 0x09, 0xcc, 0xd4, 0x77, 0xce, 0x07, 0x44, 0x1c, 0xd6, 0x08, + 0x79, 0xa5, 0x70, 0x8c, 0x04, 0xaa, 0x78, 0x2c, 0xa1, 0x08, 0xf9, 0x5e, 0x03, 0x66, 0x1c, 0x36, + 0x1b, 0xc5, 0x9b, 0x4f, 0x14, 0x8c, 0x8d, 0x30, 0xb8, 0xd4, 0xf4, 0x05, 0xf8, 0x4e, 0x09, 0xcc, + 0xd4, 0xba, 0xc8, 0x44, 0x6d, 0xe2, 0x63, 0xc7, 0x09, 0xf0, 0xc5, 0x09, 0x05, 0xc8, 0x11, 0x8a, + 0x10, 0x60, 0xe8, 0x0f, 0xbb, 0xe0, 0x0b, 0x2f, 0x4c, 0x48, 0x24, 0xb8, 0xb8, 0xd2, 0xd2, 0x17, + 0xdc, 0x97, 0x25, 0x30, 0xa5, 0xed, 0x98, 0x6b, 0xb6, 0xe5, 0x8d, 0xc6, 0x36, 0xbc, 0x3d, 0xec, + 0x20, 0x6e, 0x00, 0xc7, 0xda, 0x3b, 0x36, 0x5e, 0x7f, 0xaa, 0x98, 0x75, 0xd4, 0xb2, 0xcc, 0xb6, + 0x83, 0xeb, 0x91, 0xd3, 0xf6, 0x7f, 0xb8, 0x35, 0xfb, 0xec, 0x6f, 0xc8, 0x19, 0xf8, 0x5c, 0xe1, + 0x40, 0x2c, 0xa4, 0xf2, 0x4c, 0xd1, 0xe2, 0x3d, 0x81, 0x60, 0xb8, 0x95, 0x41, 0x25, 0xa4, 0x2f, + 0xdc, 0xcf, 0x49, 0x40, 0x29, 0xb5, 0x5a, 0xd6, 0x8e, 0xe9, 0xd6, 0x51, 0x07, 0xb5, 0xdc, 0x86, + 0xad, 0xb7, 0x10, 0x6b, 0x3f, 0x17, 0x81, 0xdc, 0x36, 0x6c, 0xda, 0x07, 0x7b, 0x8f, 0x54, 0x8e, + 0x2f, 0x16, 0xde, 0x71, 0x24, 0xb5, 0xdc, 0x5f, 0x4a, 0x02, 0x71, 0x8a, 0xed, 0x2b, 0x0a, 0x16, + 0x94, 0xbe, 0x54, 0x3f, 0x26, 0x81, 0x49, 0xbf, 0xc7, 0xde, 0x14, 0x11, 0xe6, 0xef, 0x24, 0x9c, + 0x8c, 0x04, 0xc4, 0x13, 0xc8, 0xf0, 0xad, 0x09, 0x66, 0x15, 0x51, 0xf4, 0x93, 0x89, 0xae, 0x94, + 0x5c, 0x74, 0xde, 0x6b, 0xb5, 0xd6, 0x5c, 0xac, 0xad, 0x2c, 0xa8, 0x5a, 0x51, 0x86, 0x0f, 0x49, + 0x20, 0xbb, 0x66, 0x98, 0x9b, 0x6c, 0xbc, 0xac, 0xe3, 0x9e, 0x1d, 0xd9, 0x46, 0xf7, 0xd1, 0x96, + 0x4e, 0x5e, 0x94, 0x9b, 0xc1, 0x71, 0x73, 0x67, 0xfb, 0x3c, 0xb2, 0x6b, 0x1b, 0x78, 0x94, 0x75, + 0x1a, 0x56, 0x1d, 0x99, 0xc4, 0x08, 0xcd, 0x69, 0x7d, 0xbf, 0xf1, 0x26, 0x98, 0xc0, 0xe4, 0xc1, + 0xe3, 0x24, 0x42, 0xe2, 0x01, 0x53, 0x12, 0xc3, 0x54, 0xa2, 0x69, 0x43, 0x1f, 0xe2, 0xe9, 0x6b, + 0xea, 0x9f, 0xe7, 0xc0, 0x89, 0x92, 0xb9, 0x87, 0x6d, 0x0a, 0xd2, 0xc1, 0x97, 0xb7, 0x74, 0x73, + 0x13, 0xe1, 0x01, 0x22, 0x90, 0x38, 0x1b, 0x40, 0x3e, 0xc3, 0x07, 0x90, 0x57, 0x34, 0x30, 0x61, + 0xd9, 0x6d, 0x64, 0xcf, 0xef, 0x61, 0x9e, 0x7a, 0x97, 0x9d, 0x69, 0x9b, 0xec, 0x57, 0xc4, 0x1c, + 0x25, 0x3f, 0x57, 0x23, 0xff, 0x6b, 0x3e, 0xa1, 0x33, 0x37, 0x80, 0x09, 0x9a, 0xa6, 0x4c, 0x83, + 0x42, 0x4d, 0x5b, 0x50, 0xb5, 0x66, 0x65, 0xa1, 0x78, 0x44, 0xb9, 0x04, 0x1c, 0xad, 0x34, 0x54, + 0xad, 0xd4, 0xa8, 0xd4, 0xaa, 0x4d, 0x9c, 0x5e, 0xcc, 0xc0, 0x67, 0x65, 0x45, 0x3d, 0x7b, 0xe3, + 0x99, 0xe9, 0x07, 0xab, 0x06, 0x26, 0x5a, 0x24, 0x03, 0x1e, 0x42, 0xa7, 0x12, 0xd5, 0x8e, 0x12, + 0x24, 0x09, 0x9a, 0x4f, 0x48, 0x39, 0x0d, 0xc0, 0x45, 0xdb, 0x32, 0x37, 0xc3, 0x33, 0x6d, 0x05, + 0x8d, 0x49, 0x81, 0xf7, 0x67, 0x40, 0x9e, 0xfc, 0x83, 0x2f, 0xcc, 0xc0, 0x4f, 0xa1, 0xe0, 0xfd, + 0x77, 0xcf, 0xe2, 0xc5, 0xf2, 0x0a, 0x27, 0x5a, 0xf4, 0xd5, 0xd3, 0x45, 0x22, 0x03, 0x62, 0x09, + 0xd3, 0xaa, 0xdc, 0x08, 0xf2, 0xe4, 0x5f, 0xea, 0x75, 0x10, 0x1d, 0xfc, 0x92, 0x64, 0x13, 0xf4, + 0x53, 0x16, 0x97, 0x69, 0xfa, 0xda, 0xfc, 0x01, 0x09, 0x14, 0xaa, 0xc8, 0x2d, 0x6f, 0xa1, 0xd6, + 0x05, 0xf8, 0x28, 0x7e, 0x01, 0xb4, 0x63, 0x20, 0xd3, 0xbd, 0x67, 0xbb, 0x13, 0x2c, 0x80, 0xfa, + 0x09, 0xf0, 0x39, 0x6c, 0xe7, 0x7b, 0x27, 0xaf, 0x3f, 0xd7, 0xf7, 0xa9, 0xab, 0x5f, 0x42, 0x84, + 0xca, 0x9c, 0x04, 0x79, 0x1b, 0x39, 0x3b, 0x1d, 0x7f, 0x11, 0x8d, 0xbe, 0xc1, 0x07, 0x02, 0x71, + 0x96, 0x39, 0x71, 0xde, 0x28, 0x5e, 0xc4, 0x18, 0xa2, 0x69, 0x66, 0xc1, 0x44, 0xc5, 0x34, 0x5c, + 0x43, 0xef, 0xc0, 0xe7, 0x66, 0xc1, 0x4c, 0x1d, 0xb9, 0x6b, 0xba, 0xad, 0x6f, 0x23, 0x17, 0xd9, + 0x0e, 0xfc, 0x1e, 0xdf, 0x27, 0x74, 0x3b, 0xba, 0xbb, 0x61, 0xd9, 0xdb, 0xbe, 0x6a, 0xfa, 0xef, + 0x9e, 0x6a, 0xee, 0x22, 0xdb, 0x09, 0xf9, 0xf2, 0x5f, 0xbd, 0x2f, 0x17, 0x2d, 0xfb, 0x82, 0x37, + 0x08, 0xd2, 0x69, 0x1a, 0x7d, 0xf5, 0xe8, 0x75, 0xac, 0xcd, 0x15, 0xb4, 0x8b, 0xfc, 0x60, 0x5d, + 0xc1, 0xbb, 0x37, 0x17, 0x68, 0x5b, 0x55, 0xcb, 0xf5, 0x3a, 0xed, 0x15, 0x6b, 0x93, 0x44, 0x33, + 0x2d, 0x68, 0x7c, 0x62, 0x98, 0x4b, 0xdf, 0x45, 0x38, 0x57, 0x9e, 0xcd, 0x45, 0x13, 0x95, 0x39, + 0xa0, 0x04, 0xbf, 0x35, 0x50, 0x07, 0x6d, 0x23, 0xd7, 0xde, 0xc3, 0x97, 0x16, 0x14, 0xb4, 0x3e, + 0x5f, 0xe8, 0x00, 0x2d, 0x3e, 0x59, 0xa7, 0xd2, 0x9b, 0xe3, 0x24, 0x77, 0xa0, 0xc9, 0xba, 0x08, + 0xc5, 0xb1, 0x5c, 0xca, 0x24, 0x7b, 0xd6, 0xcc, 0x4b, 0x65, 0x90, 0xc5, 0x83, 0xe7, 0xeb, 0x32, + 0xdc, 0x0a, 0xd3, 0x36, 0x72, 0x1c, 0x7d, 0x13, 0xf9, 0x2b, 0x4c, 0xf4, 0x55, 0xb9, 0x05, 0xe4, + 0x3a, 0x18, 0x53, 0x32, 0x38, 0x5c, 0xcd, 0xd5, 0xcc, 0x33, 0x30, 0x3c, 0x5a, 0xc1, 0x48, 0x80, + 0xe1, 0xd6, 0xc8, 0x1f, 0x67, 0xee, 0x02, 0x39, 0x02, 0xff, 0x24, 0xc8, 0x2d, 0xa8, 0xf3, 0xeb, + 0x4b, 0xc5, 0x23, 0xde, 0xa3, 0xcf, 0xdf, 0x24, 0xc8, 0x2d, 0x96, 0x1a, 0xa5, 0x95, 0xa2, 0xe4, + 0xd5, 0xa3, 0x52, 0x5d, 0xac, 0x15, 0x65, 0x2f, 0x71, 0xad, 0x54, 0xad, 0x94, 0x8b, 0x59, 0x65, + 0x0a, 0x4c, 0x9c, 0x2b, 0x69, 0xd5, 0x4a, 0x75, 0xa9, 0x98, 0x83, 0xff, 0xc8, 0xe2, 0x77, 0x2b, + 0x8f, 0xdf, 0x35, 0x51, 0x3c, 0xf5, 0x83, 0xec, 0xf7, 0x03, 0xc8, 0x6e, 0xe7, 0x20, 0xfb, 0x69, + 0x11, 0x22, 0x63, 0x70, 0x67, 0xca, 0x83, 0x89, 0x35, 0xdb, 0x6a, 0x21, 0xc7, 0x81, 0xbf, 0x2b, + 0x81, 0x7c, 0x59, 0x37, 0x5b, 0xa8, 0x03, 0x2f, 0x0b, 0xa1, 0x22, 0xae, 0xa2, 0x19, 0xdf, 0x55, + 0x14, 0x7e, 0x27, 0x23, 0xda, 0xfb, 0x51, 0xba, 0x73, 0x84, 0x66, 0x84, 0x7c, 0xc4, 0x7a, 0xb9, + 0x58, 0x52, 0x63, 0xb8, 0xb8, 0x45, 0x02, 0x93, 0x74, 0x35, 0xe0, 0x3c, 0x62, 0xe7, 0xe1, 0xdf, + 0xcb, 0x88, 0x4e, 0x0e, 0xfd, 0x1a, 0x04, 0x64, 0x22, 0xe4, 0x21, 0x36, 0x11, 0x1c, 0x44, 0x6d, + 0x0c, 0x9b, 0x87, 0x12, 0x98, 0x5a, 0x37, 0x9d, 0x7e, 0x42, 0x11, 0x8f, 0xf2, 0xee, 0x57, 0x83, + 0x21, 0x74, 0xa0, 0x28, 0xef, 0x83, 0xe9, 0xa5, 0x2f, 0x98, 0xef, 0x65, 0xc0, 0xf1, 0x25, 0x64, + 0x22, 0xdb, 0x68, 0x91, 0x1a, 0xf8, 0x92, 0xb8, 0x9d, 0x97, 0xc4, 0xa3, 0x38, 0xce, 0xfb, 0xfd, + 0xc1, 0x4b, 0xe0, 0x15, 0x81, 0x04, 0xee, 0xe4, 0x24, 0x70, 0x83, 0x20, 0x9d, 0x31, 0xdc, 0xd6, + 0x3d, 0x09, 0xa6, 0xab, 0x96, 0x6b, 0x6c, 0x18, 0x2d, 0xe2, 0x83, 0xf6, 0x12, 0x19, 0x64, 0x57, + 0x0c, 0xc7, 0x85, 0xa5, 0xb0, 0x3b, 0xb9, 0x0a, 0x4c, 0x19, 0x66, 0xab, 0xb3, 0xd3, 0x46, 0x1a, + 0xd2, 0x49, 0xbf, 0x52, 0xd0, 0xd8, 0xa4, 0x70, 0x6b, 0xdf, 0x63, 0x4b, 0xf6, 0xb7, 0xf6, 0x3f, + 0x2d, 0xbc, 0x0c, 0xc3, 0xb2, 0x80, 0xc3, 0x1d, 0x46, 0xd8, 0x5d, 0x25, 0x30, 0x63, 0x32, 0x59, + 0x7d, 0x83, 0xbd, 0x37, 0xdc, 0x3d, 0x4b, 0x4e, 0xe3, 0xff, 0x80, 0xef, 0x16, 0x6a, 0xac, 0x83, + 0x18, 0x4a, 0x86, 0xcc, 0xe2, 0x10, 0x93, 0x64, 0x05, 0xcc, 0x56, 0xaa, 0x0d, 0x55, 0xab, 0x96, + 0x56, 0x68, 0x16, 0x19, 0xfe, 0x40, 0x02, 0x39, 0x0d, 0x75, 0x3b, 0x7b, 0x6c, 0x3c, 0x63, 0xea, + 0x28, 0x9e, 0x09, 0x1c, 0xc5, 0x95, 0x45, 0x00, 0xf4, 0x96, 0x57, 0x30, 0xbe, 0xf0, 0x49, 0xea, + 0x1b, 0x25, 0x93, 0xab, 0x60, 0x29, 0xc8, 0xad, 0x31, 0x7f, 0xc2, 0xe7, 0x09, 0xef, 0x1c, 0x71, + 0xd4, 0x30, 0x87, 0x11, 0x7d, 0xc2, 0x7b, 0x84, 0x36, 0x7b, 0x06, 0x92, 0x3b, 0x1c, 0xf1, 0x7f, + 0x45, 0x02, 0xd9, 0x86, 0xd7, 0x5b, 0x32, 0x1d, 0xe7, 0xa7, 0x86, 0xd3, 0x71, 0x8f, 0x4c, 0x84, + 0x8e, 0xdf, 0x01, 0xa6, 0x59, 0x8d, 0xa5, 0xae, 0x12, 0xb1, 0x2a, 0xce, 0xfd, 0x30, 0x8c, 0x86, + 0xf7, 0x61, 0xe7, 0x70, 0x44, 0xfc, 0xf1, 0x47, 0x03, 0xb0, 0x8a, 0xb6, 0xcf, 0x23, 0xdb, 0xd9, + 0x32, 0xba, 0xf0, 0x9f, 0x64, 0x30, 0xb9, 0x84, 0xdc, 0xba, 0xab, 0xbb, 0x3b, 0x4e, 0xcf, 0x76, + 0xa7, 0x69, 0x95, 0xf5, 0xd6, 0x16, 0xa2, 0xdd, 0x91, 0xff, 0x0a, 0xdf, 0x2e, 0x8b, 0xfa, 0x13, + 0x85, 0xe5, 0xcc, 0x05, 0x65, 0x44, 0x60, 0xf2, 0x18, 0x90, 0x6d, 0xeb, 0xae, 0x4e, 0xb1, 0xb8, + 0xac, 0x07, 0x8b, 0x90, 0x90, 0x86, 0xb3, 0xc1, 0x37, 0x4b, 0x22, 0x0e, 0x45, 0x02, 0xe5, 0x27, + 0x03, 0xe1, 0xdd, 0x99, 0x21, 0x50, 0x38, 0x06, 0x66, 0xaa, 0xb5, 0x46, 0x73, 0xa5, 0xb6, 0xb4, + 0xa4, 0x7a, 0xa9, 0x45, 0x59, 0x39, 0x09, 0x94, 0xb5, 0xd2, 0x3d, 0xab, 0x6a, 0xb5, 0xd1, 0xac, + 0xd6, 0x16, 0x54, 0xfa, 0x67, 0x56, 0x39, 0x0a, 0xa6, 0xca, 0xa5, 0xf2, 0xb2, 0x9f, 0x90, 0x53, + 0x4e, 0x81, 0xe3, 0xab, 0xea, 0xea, 0xbc, 0xaa, 0xd5, 0x97, 0x2b, 0x6b, 0x4d, 0x8f, 0xcc, 0x62, + 0x6d, 0xbd, 0xba, 0x50, 0xcc, 0x2b, 0x10, 0x9c, 0x64, 0xbe, 0x9c, 0xd3, 0x6a, 0xd5, 0xa5, 0x66, + 0xbd, 0x51, 0x6a, 0xa8, 0xc5, 0x09, 0xe5, 0x12, 0x70, 0xb4, 0x5c, 0xaa, 0xe2, 0xec, 0xe5, 0x5a, + 0xb5, 0xaa, 0x96, 0x1b, 0xc5, 0x02, 0xfc, 0x51, 0x16, 0x4c, 0x55, 0x9c, 0xaa, 0xbe, 0x8d, 0xce, + 0xea, 0x1d, 0xa3, 0x0d, 0x9f, 0xcb, 0xcc, 0x3c, 0xae, 0x01, 0x33, 0x36, 0x79, 0x44, 0xed, 0x86, + 0x81, 0x08, 0x9a, 0x33, 0x1a, 0x9f, 0xe8, 0xcd, 0xc9, 0x4d, 0x4c, 0xc0, 0x9f, 0x93, 0x93, 0x37, + 0x65, 0x1e, 0x00, 0xf2, 0xd4, 0x08, 0xaf, 0x1e, 0x3d, 0xd3, 0xdb, 0x9a, 0xf4, 0x6d, 0xe4, 0x20, + 0x7b, 0xd7, 0x68, 0x21, 0x3f, 0xa7, 0xc6, 0xfc, 0x05, 0xbf, 0x2a, 0x8b, 0xee, 0x2f, 0x32, 0xa0, + 0x32, 0xd5, 0x89, 0xe8, 0x0d, 0x7f, 0x4d, 0x16, 0xd9, 0x1d, 0x14, 0x22, 0x99, 0x4c, 0x53, 0x5e, + 0x20, 0x0d, 0xb7, 0x6c, 0xdb, 0xa8, 0xd5, 0x9a, 0xf5, 0xe5, 0x9a, 0xd6, 0x28, 0xca, 0xca, 0x34, + 0x28, 0x78, 0xaf, 0x2b, 0xb5, 0xea, 0x52, 0x31, 0xab, 0x9c, 0x00, 0xc7, 0x96, 0x4b, 0xf5, 0x66, + 0xa5, 0x7a, 0xb6, 0xb4, 0x52, 0x59, 0x68, 0x96, 0x97, 0x4b, 0x5a, 0xbd, 0x98, 0x53, 0x2e, 0x03, + 0x27, 0x1a, 0x15, 0x55, 0x6b, 0x2e, 0xaa, 0xa5, 0xc6, 0xba, 0xa6, 0xd6, 0x9b, 0xd5, 0x5a, 0xb3, + 0x5a, 0x5a, 0x55, 0x8b, 0x79, 0xaf, 0xf9, 0xe3, 0x4f, 0xa1, 0xda, 0x4c, 0xec, 0x57, 0xc6, 0x42, + 0x84, 0x32, 0x4e, 0xf6, 0x2a, 0x23, 0x60, 0xd5, 0x4a, 0x53, 0xeb, 0xaa, 0x76, 0x56, 0x2d, 0x4e, + 0xf5, 0xd3, 0xb5, 0x69, 0xe5, 0x38, 0x28, 0x7a, 0x3c, 0x34, 0x2b, 0x75, 0x3f, 0xe7, 0x42, 0x71, + 0x06, 0x7e, 0x2c, 0x0f, 0x4e, 0x6a, 0x68, 0xd3, 0x70, 0x5c, 0x64, 0xaf, 0xe9, 0x7b, 0xdb, 0xc8, + 0x74, 0xfd, 0x4e, 0xfe, 0xdf, 0x13, 0x2b, 0xe3, 0x2a, 0x98, 0xe9, 0x12, 0x1a, 0xab, 0xc8, 0xdd, + 0xb2, 0xda, 0x74, 0x14, 0x7e, 0x54, 0x64, 0xcf, 0x31, 0xb7, 0xc6, 0x66, 0xd7, 0xf8, 0xbf, 0x19, + 0xdd, 0x96, 0x63, 0x74, 0x3b, 0x3b, 0x8c, 0x6e, 0x2b, 0x57, 0x80, 0xc9, 0x1d, 0x07, 0xd9, 0xea, + 0xb6, 0x6e, 0x74, 0xfc, 0xab, 0x23, 0x83, 0x04, 0xf8, 0x96, 0xac, 0xe8, 0x89, 0x15, 0xa6, 0x2e, + 0xfd, 0xc5, 0x18, 0xd1, 0xb7, 0x9e, 0x06, 0x80, 0x56, 0x76, 0xdd, 0xee, 0x50, 0x65, 0x65, 0x52, + 0x3c, 0xfe, 0xce, 0x1b, 0x9d, 0x8e, 0x61, 0x6e, 0x06, 0xfb, 0xfe, 0x61, 0x02, 0x7c, 0x81, 0x2c, + 0x72, 0x82, 0x25, 0x29, 0x6f, 0xc9, 0x5a, 0xd3, 0xf3, 0xa4, 0x31, 0xf7, 0xbb, 0xfb, 0x9b, 0x4e, + 0x5e, 0x29, 0x82, 0x69, 0x9c, 0x46, 0x5b, 0x60, 0x71, 0xc2, 0xeb, 0x83, 0x7d, 0x72, 0xab, 0x6a, + 0x63, 0xb9, 0xb6, 0x10, 0x7c, 0x2b, 0x78, 0x24, 0x3d, 0x66, 0x4a, 0xd5, 0x7b, 0x70, 0x6b, 0x9c, + 0x54, 0x1e, 0x01, 0x2e, 0x63, 0x3a, 0xec, 0xd2, 0x8a, 0xa6, 0x96, 0x16, 0xee, 0x69, 0xaa, 0x4f, + 0xa9, 0xd4, 0x1b, 0x75, 0xbe, 0x71, 0xf9, 0xed, 0x68, 0xca, 0xe3, 0x57, 0x5d, 0x2d, 0x55, 0x56, + 0x68, 0xff, 0xbe, 0x58, 0xd3, 0x56, 0x4b, 0x8d, 0xe2, 0x34, 0x7c, 0xa9, 0x0c, 0x8a, 0x4b, 0xc8, + 0x5d, 0xb3, 0x6c, 0x57, 0xef, 0xac, 0x18, 0xe6, 0x85, 0x75, 0xbb, 0xc3, 0x4d, 0x36, 0x85, 0xc3, + 0x74, 0xf0, 0x43, 0x24, 0x47, 0x30, 0x7a, 0x47, 0xbc, 0x8b, 0xb3, 0x85, 0xca, 0x14, 0x26, 0xc0, + 0xa7, 0x4b, 0x22, 0xcb, 0xdd, 0xe2, 0xa5, 0x26, 0xd3, 0x93, 0x67, 0x8c, 0x7b, 0x7c, 0xee, 0x83, + 0x5a, 0x1e, 0x3e, 0x3b, 0x0b, 0x0a, 0x8b, 0x86, 0xa9, 0x77, 0x8c, 0xa7, 0x71, 0xd1, 0x31, 0xc3, + 0x3e, 0x26, 0x13, 0xd3, 0xc7, 0x48, 0x43, 0x8d, 0x9f, 0xbf, 0x2d, 0x8b, 0x2e, 0x2f, 0x30, 0xb2, + 0xf7, 0x99, 0x8c, 0x18, 0x3c, 0x3f, 0x28, 0x89, 0x2c, 0x2f, 0x0c, 0xa6, 0x97, 0x0c, 0xc3, 0x4f, + 0xfe, 0x78, 0xd8, 0x58, 0x3d, 0xed, 0xbb, 0xd0, 0x4f, 0x15, 0x26, 0xe1, 0x5f, 0xcb, 0x00, 0x2e, + 0x21, 0xf7, 0x2c, 0xb2, 0x83, 0xa9, 0x00, 0xee, 0xf5, 0xa9, 0xbd, 0xcd, 0x34, 0xd9, 0xd7, 0xb1, + 0x00, 0x9e, 0xe3, 0x01, 0x2c, 0xc5, 0x34, 0x9e, 0x08, 0xd2, 0x11, 0x8d, 0xb7, 0x02, 0xf2, 0x0e, + 0xfe, 0x4e, 0xd5, 0xec, 0xa6, 0xe8, 0xe1, 0x12, 0x13, 0x63, 0xa9, 0x13, 0xc2, 0x1a, 0x25, 0x00, + 0xbf, 0x1f, 0x4c, 0x82, 0x7e, 0x9e, 0xd3, 0x8e, 0xc5, 0x03, 0x33, 0x9b, 0x4c, 0x5f, 0xec, 0x74, + 0xd5, 0xa5, 0x9f, 0x7d, 0x03, 0x3f, 0x98, 0x03, 0xc7, 0xfb, 0x55, 0x07, 0xbe, 0x37, 0xc3, 0xed, + 0xb0, 0x23, 0x3c, 0xe4, 0x67, 0xe8, 0x06, 0xa2, 0xf7, 0xa2, 0x3c, 0x1e, 0x9c, 0x08, 0x96, 0xe1, + 0x1a, 0x56, 0x15, 0x5d, 0x74, 0x3a, 0xc8, 0x75, 0x91, 0x8d, 0xab, 0x56, 0xd0, 0xfa, 0x7f, 0x54, + 0x9e, 0x08, 0x2e, 0x35, 0x4c, 0xc7, 0x68, 0x23, 0xbb, 0x61, 0x74, 0x9d, 0x92, 0xd9, 0x6e, 0xec, + 0xb8, 0x96, 0x6d, 0xe8, 0xf4, 0xa2, 0xc3, 0x82, 0x16, 0xf5, 0x59, 0xb9, 0x1e, 0x14, 0x0d, 0xa7, + 0x66, 0x9e, 0xb7, 0x74, 0xbb, 0x6d, 0x98, 0x9b, 0x2b, 0x86, 0xe3, 0x52, 0x0f, 0xe0, 0x7d, 0xe9, + 0xf0, 0x9f, 0x65, 0xd1, 0xc3, 0x74, 0x03, 0x60, 0x8d, 0xe8, 0x50, 0x9e, 0x23, 0x8b, 0x1c, 0x8f, + 0x4b, 0x46, 0x3b, 0x99, 0xb2, 0x3c, 0x6b, 0xdc, 0x86, 0x44, 0xff, 0x11, 0x1c, 0x77, 0x2d, 0x24, + 0xdd, 0x37, 0x04, 0xce, 0xaa, 0x5a, 0x65, 0xb1, 0xa2, 0x7a, 0x66, 0xc5, 0x09, 0x70, 0x2c, 0xfc, + 0xb6, 0x70, 0x4f, 0xb3, 0xae, 0x56, 0x1b, 0xc5, 0x82, 0xd7, 0x4f, 0x91, 0xe4, 0xc5, 0x52, 0x65, + 0x45, 0x5d, 0x68, 0x36, 0x6a, 0xde, 0x97, 0x85, 0xe1, 0x4c, 0x0b, 0x78, 0x7f, 0x16, 0x1c, 0xc5, + 0xb2, 0xdd, 0xc3, 0x52, 0xf5, 0x84, 0xd2, 0xe3, 0x6b, 0x1b, 0x00, 0x34, 0x49, 0xc4, 0x0b, 0x3f, + 0x2b, 0x7c, 0x8f, 0x23, 0x03, 0x61, 0x4f, 0x19, 0x11, 0x9a, 0xf1, 0x3d, 0x49, 0x24, 0x42, 0x85, + 0x30, 0xd9, 0x64, 0x4a, 0xf1, 0x1f, 0xe3, 0x1e, 0x71, 0xa2, 0xc1, 0xc7, 0x56, 0x66, 0x19, 0xff, + 0xfc, 0x94, 0xb5, 0x8a, 0x86, 0xd5, 0x61, 0x16, 0x00, 0x9c, 0x82, 0x35, 0x88, 0xe8, 0x41, 0xdf, + 0xf1, 0x2a, 0x4a, 0x0f, 0x4a, 0xe5, 0x46, 0xe5, 0xac, 0x1a, 0xa5, 0x07, 0x9f, 0x91, 0x41, 0x61, + 0x09, 0xb9, 0xde, 0x9c, 0xca, 0x81, 0x4f, 0x12, 0x58, 0xff, 0xf1, 0xcc, 0x18, 0x7c, 0xf1, 0x7d, + 0xb0, 0x0c, 0x40, 0xde, 0xe0, 0x33, 0x87, 0x31, 0x41, 0xfc, 0xa2, 0x23, 0xc6, 0xab, 0x9f, 0x05, + 0x39, 0xd7, 0xfb, 0x4c, 0x97, 0xa1, 0x7f, 0x2a, 0x72, 0xb8, 0xf2, 0x88, 0x2c, 0xe8, 0xae, 0xae, + 0x91, 0xfc, 0xcc, 0xe8, 0x24, 0x68, 0xbb, 0x44, 0x30, 0xf2, 0xe3, 0x68, 0x7f, 0xfe, 0xa3, 0x0c, + 0x4e, 0x90, 0xf6, 0x51, 0xea, 0x76, 0xeb, 0xae, 0x65, 0x23, 0x0d, 0xb5, 0x90, 0xd1, 0x75, 0x7b, + 0xd6, 0xf7, 0x6c, 0x92, 0xea, 0x6f, 0x36, 0xd3, 0x57, 0xf8, 0x6a, 0x59, 0x34, 0xc2, 0xef, 0xbe, + 0xf6, 0xd8, 0x53, 0x5e, 0x44, 0x63, 0xff, 0xa8, 0x24, 0x12, 0xb3, 0x37, 0x21, 0xf1, 0x64, 0x40, + 0x7d, 0xe8, 0x10, 0x80, 0xf2, 0x57, 0x6e, 0x34, 0xb5, 0xac, 0x56, 0xd6, 0xbc, 0x41, 0xe0, 0x4a, + 0x70, 0xf9, 0xda, 0xba, 0x56, 0x5e, 0x2e, 0xd5, 0xd5, 0xa6, 0xa6, 0x2e, 0x55, 0xea, 0x0d, 0xea, + 0x94, 0x45, 0xfe, 0x9a, 0x50, 0xae, 0x00, 0xa7, 0xea, 0xeb, 0xf3, 0xf5, 0xb2, 0x56, 0x59, 0xc3, + 0xe9, 0x9a, 0x5a, 0x55, 0xcf, 0xd1, 0xaf, 0x05, 0xf8, 0xfe, 0x22, 0x98, 0xf2, 0x26, 0x00, 0x75, + 0x32, 0x2f, 0x80, 0xdf, 0xca, 0x82, 0x29, 0x0d, 0x39, 0x56, 0x67, 0x17, 0xcf, 0x11, 0xc6, 0x35, + 0xf5, 0xf8, 0xae, 0x2c, 0x7a, 0x7e, 0x9b, 0x61, 0x76, 0x8e, 0x61, 0x34, 0x7a, 0xa2, 0xa9, 0xef, + 0xea, 0x46, 0x47, 0x3f, 0x4f, 0xbb, 0x9a, 0x82, 0x16, 0x26, 0x28, 0x73, 0x40, 0xb1, 0x2e, 0x9a, + 0xc8, 0xae, 0xb7, 0x2e, 0xaa, 0xee, 0x56, 0xa9, 0xdd, 0xb6, 0x91, 0xe3, 0xd0, 0xd5, 0x8b, 0x3e, + 0x5f, 0x94, 0xeb, 0xc0, 0x51, 0x9c, 0xca, 0x64, 0x26, 0x0e, 0x32, 0xbd, 0xc9, 0x41, 0xce, 0x92, + 0xb9, 0xe7, 0xe7, 0xcc, 0x31, 0x39, 0xc3, 0x64, 0xf6, 0xb8, 0x44, 0x9e, 0x3f, 0xa5, 0x73, 0x15, + 0x98, 0x32, 0xf5, 0x6d, 0xa4, 0xde, 0xd7, 0x35, 0x6c, 0xe4, 0x60, 0xc7, 0x18, 0x59, 0x63, 0x93, + 0xe0, 0x07, 0x85, 0xce, 0x9b, 0x8b, 0x49, 0x2c, 0x99, 0xee, 0x2f, 0x0d, 0xa1, 0xfa, 0x7d, 0xfa, + 0x19, 0x19, 0xbe, 0x5f, 0x06, 0xd3, 0x94, 0xa9, 0x92, 0xb9, 0x57, 0x69, 0xc3, 0x2b, 0x39, 0xe3, + 0x57, 0xf7, 0xd2, 0x7c, 0xe3, 0x17, 0xbf, 0xc0, 0x5f, 0x97, 0x45, 0xdd, 0x9d, 0xfb, 0x54, 0x1c, + 0x97, 0x11, 0xed, 0x38, 0xba, 0x61, 0xed, 0x50, 0x47, 0xd5, 0x82, 0x46, 0x5e, 0xd2, 0x5c, 0xd4, + 0x83, 0x7f, 0x2a, 0xe4, 0x4c, 0x2d, 0x58, 0x8d, 0x43, 0x02, 0xf0, 0xe3, 0x32, 0x98, 0xa5, 0x5c, + 0xd5, 0xe9, 0x39, 0x1f, 0xa1, 0x03, 0x6f, 0xbf, 0x29, 0x6c, 0x08, 0xf6, 0xa9, 0x3f, 0x2d, 0xe9, + 0x61, 0x03, 0xe4, 0x87, 0x85, 0x82, 0xa3, 0x09, 0x57, 0xe4, 0x90, 0xa0, 0x7c, 0x6b, 0x16, 0x4c, + 0xad, 0x3b, 0xc8, 0xa6, 0x7e, 0xfb, 0xf0, 0x81, 0x2c, 0x90, 0x97, 0x10, 0xb7, 0x91, 0xfa, 0x7c, + 0x61, 0x0f, 0x5f, 0xb6, 0xb2, 0x0c, 0x51, 0xcf, 0x46, 0x8a, 0x80, 0xed, 0x5a, 0x30, 0x4b, 0x44, + 0x5a, 0x72, 0x5d, 0xcf, 0x48, 0xf4, 0xbd, 0x69, 0x7b, 0x52, 0x47, 0xb1, 0x55, 0x84, 0xcb, 0xf2, + 0xb2, 0x94, 0x3d, 0x9e, 0x56, 0xd0, 0x06, 0x99, 0xcf, 0x66, 0xb5, 0x9e, 0x54, 0x7c, 0xb9, 0x7e, + 0x17, 0x91, 0xf3, 0x2b, 0x4c, 0xe6, 0x1c, 0xce, 0xdc, 0xef, 0x13, 0xfc, 0x96, 0x90, 0xaf, 0xae, + 0xb8, 0x74, 0x92, 0xe9, 0x42, 0x77, 0x34, 0x26, 0xc9, 0x71, 0x50, 0xf4, 0x72, 0xe0, 0xfd, 0x17, + 0x4d, 0xad, 0xd7, 0x56, 0xce, 0xaa, 0xfd, 0x97, 0x31, 0x72, 0xf0, 0x59, 0x32, 0x98, 0x9c, 0xb7, + 0x2d, 0xbd, 0xdd, 0xd2, 0x1d, 0x17, 0x7e, 0x5f, 0x02, 0xd3, 0x6b, 0xfa, 0x5e, 0xc7, 0xd2, 0xdb, + 0xd8, 0xbf, 0xbf, 0xa7, 0x2f, 0xe8, 0x92, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0xf9, 0x83, 0x81, 0xc1, + 0xd1, 0xbd, 0x8c, 0xc8, 0x75, 0x8d, 0xc1, 0x36, 0x9f, 0xd4, 0x2f, 0x58, 0xa9, 0xcf, 0xd7, 0x1c, + 0xcb, 0x53, 0x84, 0x45, 0xf9, 0x7e, 0xb1, 0xf0, 0xa3, 0x22, 0x24, 0x0f, 0x67, 0x57, 0xfe, 0xd9, + 0x05, 0x90, 0x5f, 0x40, 0xd8, 0x8a, 0xfb, 0x6f, 0x12, 0x98, 0xa8, 0x23, 0x17, 0x5b, 0x70, 0xb7, + 0x70, 0x9e, 0xc2, 0x6d, 0x9c, 0x21, 0x74, 0x62, 0xf7, 0xdf, 0xbd, 0xc9, 0x3a, 0x73, 0xde, 0x1a, + 0x3f, 0x27, 0xf0, 0x48, 0x24, 0xe5, 0xce, 0xd1, 0x32, 0x0f, 0xe4, 0x91, 0x18, 0x4b, 0x2a, 0x7d, + 0x5f, 0xab, 0xb7, 0x4b, 0xd4, 0xb5, 0x8a, 0xe9, 0xf5, 0xfe, 0x80, 0xd5, 0xcf, 0x58, 0x6f, 0x33, + 0xca, 0x7c, 0x8c, 0x73, 0xd4, 0xe3, 0xc0, 0x04, 0x91, 0xb9, 0x3f, 0x1f, 0xed, 0xf5, 0x53, 0x20, + 0x24, 0xf0, 0xd9, 0x6b, 0x3f, 0xa7, 0xa0, 0x8b, 0x5a, 0x74, 0xe1, 0x63, 0x89, 0x41, 0x30, 0x5d, + 0x45, 0xee, 0x45, 0xcb, 0xbe, 0x50, 0x77, 0x75, 0x17, 0xc1, 0xff, 0x90, 0x80, 0x5c, 0x47, 0x2e, + 0x1b, 0xfd, 0xa4, 0x0a, 0x8e, 0x91, 0x0a, 0xd1, 0x8c, 0xb8, 0xff, 0x26, 0x15, 0xb9, 0xaa, 0xaf, + 0x10, 0x98, 0x7c, 0xda, 0xfe, 0x5f, 0xe1, 0xef, 0xf6, 0x0d, 0xfa, 0x24, 0xf5, 0x99, 0x34, 0x50, + 0xc9, 0xb0, 0x0c, 0x7a, 0x0a, 0x16, 0xa1, 0xa7, 0x1f, 0x10, 0x32, 0xab, 0xc5, 0x68, 0x1e, 0x4e, + 0x57, 0xf0, 0xe1, 0xcb, 0x40, 0xb6, 0xbc, 0xa5, 0xbb, 0xf0, 0x6d, 0x32, 0x00, 0xa5, 0x76, 0x7b, + 0x95, 0xf8, 0x80, 0xb3, 0x0e, 0x69, 0x67, 0xc0, 0x74, 0x6b, 0x4b, 0x0f, 0x6f, 0xce, 0x20, 0xfd, + 0x01, 0x97, 0xa6, 0x3c, 0x3e, 0x74, 0x26, 0x27, 0x52, 0x85, 0x3d, 0x30, 0x79, 0x65, 0x50, 0xda, + 0x81, 0xa3, 0x39, 0x1f, 0x0a, 0x33, 0xf6, 0x08, 0x9d, 0xf7, 0xfb, 0x5c, 0xc8, 0x5e, 0xf4, 0x1c, + 0x8e, 0x92, 0x0e, 0x0e, 0xd8, 0x84, 0x09, 0x09, 0x4f, 0x7a, 0x8b, 0x05, 0xf4, 0x88, 0xe7, 0x6b, + 0x2c, 0xa1, 0x6b, 0x15, 0xb5, 0x6d, 0xf8, 0xa2, 0xa5, 0x01, 0xb3, 0xe0, 0xf3, 0x32, 0xc9, 0xe0, + 0x8b, 0x17, 0xdc, 0x9d, 0x60, 0x06, 0xb5, 0x0d, 0x17, 0xf9, 0xb5, 0xa4, 0x02, 0x8c, 0x83, 0x98, + 0xff, 0x01, 0x3e, 0x43, 0x38, 0xe8, 0x1a, 0x16, 0xe8, 0xfe, 0x1a, 0x45, 0xb4, 0x3f, 0xb1, 0x30, + 0x6a, 0x62, 0x34, 0xd3, 0x07, 0xeb, 0x99, 0x32, 0x38, 0xd1, 0xb0, 0x36, 0x37, 0x3b, 0xc8, 0x17, + 0x13, 0x22, 0xde, 0x99, 0x50, 0x1f, 0x25, 0x5c, 0x78, 0x27, 0xc8, 0xba, 0xd7, 0x08, 0x8e, 0x92, + 0x79, 0x2f, 0xfc, 0x89, 0xa9, 0xd8, 0x59, 0x14, 0x16, 0x57, 0x5f, 0x3e, 0x23, 0x50, 0x10, 0x0b, + 0xf8, 0x2c, 0x4c, 0x36, 0x7d, 0x20, 0xbe, 0x28, 0x81, 0x19, 0x72, 0x2f, 0xa2, 0xaf, 0xa0, 0x77, + 0x8f, 0x10, 0x00, 0xf8, 0xfd, 0x8c, 0xa8, 0x9f, 0x2d, 0x96, 0x09, 0xc7, 0x49, 0x84, 0x88, 0xc5, + 0x82, 0xaa, 0x0c, 0x24, 0x97, 0xbe, 0x68, 0xff, 0x42, 0x06, 0x53, 0x4b, 0xc8, 0x6f, 0x69, 0x4e, + 0xe2, 0x9e, 0xe8, 0x0c, 0x98, 0xc6, 0x97, 0x83, 0xd5, 0xe8, 0x31, 0x49, 0xb2, 0x6a, 0xc6, 0xa5, + 0x29, 0xd7, 0x80, 0x99, 0xf3, 0x68, 0xc3, 0xb2, 0x51, 0x8d, 0x3b, 0x4b, 0xc9, 0x27, 0x46, 0x84, + 0xa7, 0xe3, 0xe2, 0xa0, 0xcd, 0xf3, 0xd8, 0xdc, 0xb0, 0x5f, 0x98, 0x4c, 0x55, 0x22, 0xc6, 0x9c, + 0x27, 0x80, 0x02, 0x45, 0xde, 0x37, 0xd3, 0xe2, 0xfa, 0xc5, 0x20, 0x2f, 0xfc, 0xc3, 0x00, 0x51, + 0x95, 0x43, 0xf4, 0xa6, 0x24, 0x4c, 0x8c, 0xe5, 0xf6, 0xf0, 0x22, 0x53, 0xfe, 0xfc, 0x5e, 0xa5, + 0xed, 0xc0, 0xd5, 0x64, 0x98, 0x9e, 0x06, 0x20, 0x68, 0x1c, 0x7e, 0x58, 0x0b, 0x26, 0x85, 0x8f, + 0x5c, 0x1f, 0x7b, 0x50, 0xaf, 0x57, 0x1c, 0x98, 0x9d, 0x11, 0x03, 0x23, 0x76, 0xc0, 0x4f, 0x84, + 0x93, 0xf4, 0xd1, 0xf9, 0xb4, 0x0c, 0x4e, 0x04, 0xe7, 0x8f, 0x56, 0x74, 0x27, 0x6c, 0x77, 0xe5, + 0x64, 0x10, 0x71, 0x07, 0x3e, 0x82, 0xc6, 0xf2, 0xed, 0x64, 0x63, 0x46, 0x5f, 0x4e, 0x46, 0x8b, + 0x8e, 0x72, 0x03, 0x38, 0x66, 0xee, 0x6c, 0x07, 0x52, 0xc7, 0x2d, 0x9e, 0xb6, 0xf0, 0xfd, 0x1f, + 0x92, 0x8c, 0x4c, 0x22, 0xcc, 0x8f, 0x65, 0x4e, 0xc9, 0x1d, 0xe9, 0x7a, 0x4c, 0x22, 0x18, 0xe1, + 0xbf, 0x65, 0x12, 0xf5, 0x6e, 0x83, 0xcf, 0x7c, 0x25, 0xe8, 0xa5, 0x0e, 0xf1, 0xc0, 0xd7, 0x99, + 0x09, 0x90, 0x53, 0xb7, 0xbb, 0xee, 0xde, 0x99, 0x47, 0x82, 0x99, 0xba, 0x6b, 0x23, 0x7d, 0x9b, + 0xd9, 0x19, 0x70, 0xad, 0x0b, 0xc8, 0xf4, 0x77, 0x06, 0xf0, 0xcb, 0xad, 0xb7, 0x80, 0x09, 0xd3, + 0x6a, 0xea, 0x3b, 0xee, 0x96, 0x72, 0xe5, 0xbe, 0x23, 0xf5, 0x14, 0xfc, 0x1a, 0x8d, 0x61, 0xf4, + 0xd5, 0xdb, 0xf0, 0xda, 0x70, 0xde, 0xb4, 0x4a, 0x3b, 0xee, 0xd6, 0xfc, 0x15, 0x1f, 0xff, 0x87, + 0xd3, 0x99, 0xcf, 0xfc, 0xc3, 0xe9, 0xcc, 0x57, 0xfe, 0xe1, 0x74, 0xe6, 0x37, 0xbf, 0x76, 0xfa, + 0xc8, 0x67, 0xbe, 0x76, 0xfa, 0xc8, 0x17, 0xbf, 0x76, 0xfa, 0xc8, 0xcf, 0x4b, 0xdd, 0xf3, 0xe7, + 0xf3, 0x98, 0xca, 0xe3, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0x59, 0x3f, 0x33, 0xdf, + 0x12, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -83574,6 +83333,13 @@ func (m *RpcObjectCreateBookmarkRequest) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if len(m.TemplateId) > 0 { + i -= len(m.TemplateId) + copy(dAtA[i:], m.TemplateId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) + i-- + dAtA[i] = 0x22 + } if m.WithChat { i-- if m.WithChat { @@ -83582,14 +83348,7 @@ func (m *RpcObjectCreateBookmarkRequest) MarshalToSizedBuffer(dAtA []byte) (int, dAtA[i] = 0 } i-- - dAtA[i] = 0x20 - } - if len(m.TemplateId) > 0 { - i -= len(m.TemplateId) - copy(dAtA[i:], m.TemplateId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) - i-- - dAtA[i] = 0x1a + dAtA[i] = 0x18 } if len(m.SpaceId) > 0 { i -= len(m.SpaceId) @@ -84434,6 +84193,13 @@ func (m *RpcObjectCreateFromUrlRequest) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if len(m.TemplateId) > 0 { + i -= len(m.TemplateId) + copy(dAtA[i:], m.TemplateId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.TemplateId))) + i-- + dAtA[i] = 0x3a + } if m.WithChat { i-- if m.WithChat { @@ -111247,157 +111013,6 @@ func (m *RpcBlockDataviewCreateFromExistingObjectResponseError) MarshalToSizedBu return len(dAtA) - i, nil } -func (m *RpcBlockDataviewCreateBookmark) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcBlockDataviewCreateBookmark) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcBlockDataviewCreateBookmark) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.SpaceId) > 0 { - i -= len(m.SpaceId) - copy(dAtA[i:], m.SpaceId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.SpaceId))) - i-- - dAtA[i] = 0x22 - } - if len(m.Url) > 0 { - i -= len(m.Url) - copy(dAtA[i:], m.Url) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Url))) - i-- - dAtA[i] = 0x1a - } - if len(m.BlockId) > 0 { - i -= len(m.BlockId) - copy(dAtA[i:], m.BlockId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.BlockId))) - i-- - dAtA[i] = 0x12 - } - if len(m.ContextId) > 0 { - i -= len(m.ContextId) - copy(dAtA[i:], m.ContextId) - i = encodeVarintCommands(dAtA, i, uint64(len(m.ContextId))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0x12 - } - if m.Error != nil { - { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if m.Code != 0 { - i = encodeVarintCommands(dAtA, i, uint64(m.Code)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - func (m *RpcBlockDataviewFilter) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -124718,13 +124333,13 @@ func (m *RpcObjectCreateBookmarkRequest) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } + if m.WithChat { + n += 2 + } l = len(m.TemplateId) if l > 0 { n += 1 + l + sovCommands(uint64(l)) } - if m.WithChat { - n += 2 - } return n } @@ -125087,6 +124702,10 @@ func (m *RpcObjectCreateFromUrlRequest) Size() (n int) { if m.WithChat { n += 2 } + l = len(m.TemplateId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } return n } @@ -136523,73 +136142,6 @@ func (m *RpcBlockDataviewCreateFromExistingObjectResponseError) Size() (n int) { return n } -func (m *RpcBlockDataviewCreateBookmark) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *RpcBlockDataviewCreateBookmarkRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ContextId) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - l = len(m.BlockId) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - l = len(m.Url) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - l = len(m.SpaceId) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcBlockDataviewCreateBookmarkResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovCommands(uint64(l)) - } - l = len(m.Id) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcBlockDataviewCreateBookmarkResponseError) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Code != 0 { - n += 1 + sovCommands(uint64(m.Code)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - func (m *RpcBlockDataviewFilter) Size() (n int) { if m == nil { return 0 @@ -163754,6 +163306,26 @@ func (m *RpcObjectCreateBookmarkRequest) Unmarshal(dAtA []byte) error { m.SpaceId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WithChat", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.WithChat = bool(v != 0) + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TemplateId", wireType) } @@ -163785,26 +163357,6 @@ func (m *RpcObjectCreateBookmarkRequest) Unmarshal(dAtA []byte) error { } m.TemplateId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field WithChat", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.WithChat = bool(v != 0) default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) @@ -166244,6 +165796,38 @@ func (m *RpcObjectCreateFromUrlRequest) Unmarshal(dAtA []byte) error { } } m.WithChat = bool(v != 0) + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) @@ -239180,453 +238764,6 @@ func (m *RpcBlockDataviewCreateFromExistingObjectResponseError) Unmarshal(dAtA [ } return nil } -func (m *RpcBlockDataviewCreateBookmark) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CreateBookmark: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CreateBookmark: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcBlockDataviewCreateBookmarkRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContextId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlockId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Url = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpaceId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SpaceId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcBlockDataviewCreateBookmarkResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Response: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCommands - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Error == nil { - m.Error = &RpcBlockDataviewCreateBookmarkResponseError{} - } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Id = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcBlockDataviewCreateBookmarkResponseError) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) - } - m.Code = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Code |= RpcBlockDataviewCreateBookmarkResponseErrorCode(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *RpcBlockDataviewFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index c879d2ea7..1146832b7 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -1685,8 +1685,8 @@ message Rpc { message Request { google.protobuf.Struct details = 1; string spaceId = 2; - string templateId = 3; - bool withChat = 4; + bool withChat = 3; + string templateId = 4; } message Response { @@ -1821,6 +1821,7 @@ message Rpc { google.protobuf.Struct details = 4; bool addPageContent = 5; bool withChat = 6; + string templateId = 7; } message Response { @@ -6212,31 +6213,6 @@ message Rpc { } } - message CreateBookmark { - message Request { - string contextId = 1; - string blockId = 2; - string url = 3; - string spaceId = 4; - } - message Response { - Error error = 1; - string id = 2; - - message Error { - Code code = 1; - string description = 2; - - enum Code { - NULL = 0; - UNKNOWN_ERROR = 1; - BAD_INPUT = 2; - // ... - } - } - } - } - message Filter { message Add { message Request { From 25b15f45a25f3e9765de05156f7c82b67ae7e0ee Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 17 Feb 2025 17:50:16 +0300 Subject: [PATCH 124/176] GO-4941 Fix extract tests --- .../editor/basic/extract_objects_test.go | 60 ++----------------- 1 file changed, 5 insertions(+), 55 deletions(-) diff --git a/core/block/editor/basic/extract_objects_test.go b/core/block/editor/basic/extract_objects_test.go index 67c5af6ff..7712e2a58 100644 --- a/core/block/editor/basic/extract_objects_test.go +++ b/core/block/editor/basic/extract_objects_test.go @@ -14,7 +14,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/editor/table" - "github.com/anyproto/anytype-heart/core/block/editor/template" "github.com/anyproto/anytype-heart/core/block/simple" templateSvc "github.com/anyproto/anytype-heart/core/block/template" "github.com/anyproto/anytype-heart/core/block/template/mock_template" @@ -47,51 +46,6 @@ func (tc testCreator) CreateSmartBlockFromState(_ context.Context, _ string, _ [ return id, nil, nil } -func blankTemplate() *state.State { - st := state.NewDoc("", nil).NewState() - template.InitTemplate(st, template.WithEmpty, - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, - template.WithRequiredRelations, - template.WithTitle, - ) - return st -} - -type testTemplateService struct { - templates map[string]*state.State -} - -func (tts testTemplateService) AddTemplate(id string, st *state.State) { - tts.templates[id] = st -} - -func (tts testTemplateService) CreateTemplateStateWithDetails( - _, templateId, _ string, _ model.ObjectTypeLayout, details *domain.Details, _ bool, -) (st *state.State, err error) { - if templateId == "" { - st = state.NewDoc("", nil).NewState() - template.InitTemplate(st, template.WithEmpty, - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, - template.WithRequiredRelations, - template.WithTitle, - ) - } else { - st = tts.templates[templateId] - } - templateDetails := st.Details() - newDetails := templateDetails.Merge(details) - st.SetDetails(newDetails) - return st, nil -} - -func (tts testTemplateService) CreateTemplateStateFromSmartBlock( - sb smartblock.SmartBlock, _ string, _ model.ObjectTypeLayout, _ *domain.Details, -) *state.State { - return tts.templates[sb.Id()] -} - func assertNoCommonElements(t *testing.T, a, b []string) { got := slice.Difference(a, b) @@ -261,7 +215,7 @@ func TestExtractObjects(t *testing.T) { wantObjectsWithTexts: [][]string{ { "text A", "text B", "text B.1", - "text 3", "text 3.1", "text 3.1.1", + "text 3.1", "text 3.1.1", }, }, wantDetails: domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ @@ -279,12 +233,12 @@ func TestExtractObjects(t *testing.T) { // first object { "text A", "text B", "text B.1", - "text 2", "text 2.1", + "text 2.1", }, // second object { "text A", "text B", "text B.1", - "text 3", "text 3.1", "text 3.1.1", + "text 3.1", "text 3.1.1", }, }, wantDetails: domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ @@ -321,14 +275,10 @@ func TestExtractObjects(t *testing.T) { assert.Equal(t, tc.templateId, req.TemplateId) switch tc.templateId { case objectId: - tmpl = sb.NewState() + return sb.NewState(), nil default: - tmpl = makeTemplateState(tc.templateId) + return makeTemplateState(tc.templateId), nil } - // templateDetails := tmpl.Details() - // newDetails := templateDetails.Merge(req.Details) - // tmpl.SetDetails(newDetails) - return tmpl, nil }).Maybe() fixture.ts.EXPECT().CreateTemplateStateFromSmartBlock(mock.Anything, mock.Anything).RunAndReturn(func(_ smartblock.SmartBlock, _ templateSvc.CreateTemplateRequest) *state.State { switch tc.templateId { From f1ceda0a1457dbf982d8b3fd8479ccdcb95df6d3 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 17 Feb 2025 16:22:27 +0100 Subject: [PATCH 125/176] FileSync: Prevent status flickering --- core/block/editor/files.go | 3 --- core/files/fileobject/fileindex.go | 25 +++++++++++++++++++------ core/files/fileobject/service.go | 3 +++ core/syncstatus/service.go | 2 +- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/core/block/editor/files.go b/core/block/editor/files.go index 84675db7a..fd36e9451 100644 --- a/core/block/editor/files.go +++ b/core/block/editor/files.go @@ -99,9 +99,6 @@ func (f *File) Init(ctx *smartblock.InitContext) error { if err != nil { log.Errorf("failed to ensure file added to sync queue: %v", err) } - f.AddHook(func(applyInfo smartblock.ApplyInfo) error { - return f.fileObjectService.EnsureFileAddedToSyncQueue(fullId, applyInfo.State.Details()) - }, smartblock.HookOnStateRebuild) } return nil } diff --git a/core/files/fileobject/fileindex.go b/core/files/fileobject/fileindex.go index 929f6ead7..76eb511cb 100644 --- a/core/files/fileobject/fileindex.go +++ b/core/files/fileobject/fileindex.go @@ -25,10 +25,15 @@ import ( "github.com/anyproto/anytype-heart/space" ) +type accountService interface { + MyParticipantId(string) string +} + type indexer struct { - fileService files.Service - spaceService space.Service - objectStore objectstore.ObjectStore + fileService files.Service + spaceService space.Service + objectStore objectstore.ObjectStore + accountService accountService query database.Query indexCtx context.Context @@ -42,9 +47,10 @@ type indexer struct { func (s *service) newIndexer() *indexer { ind := &indexer{ - fileService: s.fileService, - spaceService: s.spaceService, - objectStore: s.objectStore, + fileService: s.fileService, + spaceService: s.spaceService, + objectStore: s.objectStore, + accountService: s.accountService, indexQueue: mb.New[indexRequest](0), isQueued: make(map[domain.FullID]struct{}), @@ -128,6 +134,13 @@ func (ind *indexer) addToQueueFromObjectStore(ctx context.Context) error { } for _, rec := range recs { spaceId := rec.Details.GetString(bundle.RelationKeySpaceId) + + // There is no point to index file if the current user is not an owner of the file + myParticipantId := ind.accountService.MyParticipantId(spaceId) + if rec.Details.GetString(bundle.RelationKeyCreator) != myParticipantId { + continue + } + id := domain.FullID{ SpaceID: spaceId, ObjectID: rec.Details.GetString(bundle.RelationKeyId), diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index 53848ecec..73bed0e04 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -76,6 +76,7 @@ type service struct { objectStore objectstore.ObjectStore spaceIdResolver idresolver.Resolver migrationQueue *persistentqueue.Queue[*migrationItem] + accountService accountService objectArchiver objectArchiver indexer *indexer @@ -117,6 +118,8 @@ func (s *service) Init(a *app.App) error { s.spaceIdResolver = app.MustComponent[idresolver.Resolver](a) s.fileOffloader = app.MustComponent[fileoffloader.Service](a) s.objectArchiver = app.MustComponent[objectArchiver](a) + s.accountService = app.MustComponent[accountService](a) + cfg := app.MustComponent[configProvider](a) s.indexer = s.newIndexer() diff --git a/core/syncstatus/service.go b/core/syncstatus/service.go index 67cc2638e..c77d3530c 100644 --- a/core/syncstatus/service.go +++ b/core/syncstatus/service.go @@ -68,7 +68,7 @@ func (s *service) indexFileSyncStatus(fileObjectId string, status filesyncstatus err := cache.Do(s.objectGetter, fileObjectId, func(sb smartblock.SmartBlock) (err error) { prevStatus := sb.Details().GetInt64(bundle.RelationKeyFileBackupStatus) newStatus := int64(status) - if prevStatus == newStatus { + if prevStatus == newStatus || prevStatus == int64(filesyncstatus.Synced) { return nil } st := sb.NewState() From e1aecd502a911a4cd0446d187f62c339078f589b Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 17 Feb 2025 18:20:29 +0100 Subject: [PATCH 126/176] Fix tests --- core/files/fileobject/fileindex_test.go | 16 ++++++++++++++-- core/files/fileobject/service_test.go | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/core/files/fileobject/fileindex_test.go b/core/files/fileobject/fileindex_test.go index d187409b5..829f8cd07 100644 --- a/core/files/fileobject/fileindex_test.go +++ b/core/files/fileobject/fileindex_test.go @@ -5,6 +5,7 @@ import ( "fmt" "testing" + "github.com/anyproto/any-sync/app" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -23,13 +24,24 @@ type indexerFixture struct { objectStoreFixture *objectstore.StoreFixture } +type dummyAccountService struct{} + +func (s dummyAccountService) MyParticipantId(spaceId string) string { + return "" +} + +func (s dummyAccountService) Init(_ *app.App) error { return nil } + +func (s dummyAccountService) Name() string { return "dummyAccountService" } + func newIndexerFixture(t *testing.T) *indexerFixture { objectStore := objectstore.NewStoreFixture(t) fileService := mock_files.NewMockService(t) svc := &service{ - objectStore: objectStore, - fileService: fileService, + objectStore: objectStore, + fileService: fileService, + accountService: &dummyAccountService{}, } ind := svc.newIndexer() diff --git a/core/files/fileobject/service_test.go b/core/files/fileobject/service_test.go index 591c1747e..041e62ffa 100644 --- a/core/files/fileobject/service_test.go +++ b/core/files/fileobject/service_test.go @@ -126,6 +126,7 @@ func newFixture(t *testing.T) *fixture { a.Register(testutil.PrepareMock(ctx, a, wallet)) a.Register(&config.Config{DisableFileConfig: true, NetworkMode: pb.RpcAccount_DefaultConfig, PeferYamuxTransport: true}) a.Register(&dummyObjectArchiver{}) + a.Register(&dummyAccountService{}) err = a.Start(ctx) require.NoError(t, err) From f9bbac66a6b3dbf92398acc950ce64ff35650f5b Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 17 Feb 2025 18:16:51 -0300 Subject: [PATCH 127/176] refactoring .github/workflows/{build,nightly}.yml --- .github/workflows/build.yml | 115 ++-------------------------- .github/workflows/nightly.yml | 91 +++------------------- makefiles/ci-compile-android-lib.mk | 4 + makefiles/ci-compile-ios-lib.mk | 15 ++++ makefiles/ci-java-protos.mk | 15 ++++ makefiles/ci-js-protos.mk | 13 ++++ makefiles/ci-pack-server.mk | 16 ++++ makefiles/ci-swift-protos.mk | 17 ++++ 8 files changed, 97 insertions(+), 189 deletions(-) create mode 100644 makefiles/ci-compile-android-lib.mk create mode 100644 makefiles/ci-compile-ios-lib.mk create mode 100644 makefiles/ci-java-protos.mk create mode 100644 makefiles/ci-js-protos.mk create mode 100644 makefiles/ci-pack-server.mk create mode 100644 makefiles/ci-swift-protos.mk diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3d47025e1..8eb7d2ea0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -143,86 +143,14 @@ jobs: if: github.event_name == 'push' run: | make protos-js - mv dist/js/pb protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + make ci-js-protos - - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json - - - name: create .release/ dir # need for "Pack *" steps - run: mkdir -p .release/ - - - name: Pack server win + - name: Pack servers if: github.event_name == 'push' - run: | - declare -a arr=("windows-amd64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server.exe - zip -r js_${VERSION}_${OSARCH}.zip grpc-server.exe protobuf json - mv js_${VERSION}_${OSARCH}.zip .release/ - done - - - name: Pack server osx - if: github.event_name == 'push' - run: | - declare -a arr=("darwin-amd64" "darwin-arm64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ - done - - - name: Pack server unix amd64 - if: github.event_name == 'push' - run: | - declare -a arr=("linux-amd64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ - done - - - name: Pack server unix arm64 - if: github.event_name == 'push' - run: | - declare -a arr=("linux-arm64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ - done + run: make pack-server - name: Make swift protos - run: | - mkdir -p .release - make protos-swift - rm -rf protobuf - mv dist/ios/protobuf protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos - - - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/relations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json + run: make swift-protos - name: Compile ios lib env: @@ -230,41 +158,14 @@ jobs: GITHUB_USER: ${{ github.actor }} MAVEN_ARTIFACT_ID: 'anytype-heart-ios' MAVEN_ARTIFACT_NAME: 'ios_framework.tar.gz' - run: | - go install github.com/vektra/mockery/v2@v2.47.0 - go install go.uber.org/mock/mockgen@v0.5.0 - make test-deps - gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true - mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ - go run cmd/iosrepack/main.go - mv dist/ios/Lib.xcframework . - gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json - gradle publish - mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz + PUBLISH_GRADLE: 1 + run: make compile-ios-lib - name: Make java protos - run: | - make protos-java - rm -rf protobuf - mv dist/android/pb protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos - - - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json + run: make ci-java-protos - name: Compile android lib - run: | - gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true - gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf json - mv android_lib_${VERSION}.tar.gz .release/ + run: make compile-android-lib - name: Publish android lib to maven env: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e6ab977e4..def51c133 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -111,102 +111,29 @@ jobs: - name: Make JS protos run: | make protos-js - mv dist/js/pb protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + make ci-js-protos - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json + run: make ci-add-system-relations-types-jsons - - name: create .release/ dir # need for "Pack *" steps - run: mkdir -p .release/ - - - name: Pack server win - run: | - declare -a arr=("windows-amd64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server.exe - zip -r js_${VERSION}_${OSARCH}.zip grpc-server.exe protobuf json - mv js_${VERSION}_${OSARCH}.zip .release/ - done - - - name: Pack server unix - run: | - declare -a arr=("darwin-amd64" "darwin-arm64" "linux-amd64") - for i in "${arr[@]}"; do - OSARCH=${i%.*} - cp ./${i}* ./grpc-server - tar -czf js_${VERSION}_${OSARCH}.tar.gz grpc-server protobuf json - mv js_${VERSION}_${OSARCH}.tar.gz .release/ - done + - name: Pack servers + run: make pack-server - name: Make swift protos - run: | - mkdir -p .release - make protos-swift - rm -rf protobuf - mv dist/ios/protobuf protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos - - - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/relations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json + run: make swift-protos - name: Compile ios lib - run: | - go install github.com/vektra/mockery/v2@v2.47.0 - go install go.uber.org/mock/mockgen@v0.5.0 - make test-deps - gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true - mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ - go run cmd/iosrepack/main.go - mv dist/ios/Lib.xcframework . - gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json - #gradle publish - mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_USER: ${{ github.actor }} + PUBLISH_GRADLE: 0 + run: make compile-ios-lib - name: Make java protos - run: | - make protos-java - rm -rf protobuf - mv dist/android/pb protobuf - mkdir -p protobuf/protos - cp pb/protos/*.proto ./protobuf/protos - cp pb/protos/service/*.proto ./protobuf/protos - cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos - - - name: Add system relations/types jsons - run: | - mkdir -p json/ - cp pkg/lib/bundle/systemRelations.json ./json - cp pkg/lib/bundle/systemTypes.json ./json - cp pkg/lib/bundle/internalRelations.json ./json - cp pkg/lib/bundle/internalTypes.json ./json + run: make ci-java-protos - name: Compile android lib - run: | - gomobile bind -tags "$BUILD_TAG_NETWORK nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$FLAGS" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true - gtar --exclude ".*" -czvf android_lib_${VERSION}.tar.gz lib.aar protobuf json - mv android_lib_${VERSION}.tar.gz .release/ + run: make compile-android-lib # upload release artifacts to s3 {{ - name: Install AWS CLI diff --git a/makefiles/ci-compile-android-lib.mk b/makefiles/ci-compile-android-lib.mk new file mode 100644 index 000000000..3c41a281e --- /dev/null +++ b/makefiles/ci-compile-android-lib.mk @@ -0,0 +1,4 @@ +compile-android-lib: + gomobile bind -tags "$(BUILD_TAG_NETWORK) nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$(FLAGS)" -v -target=android -androidapi 26 -o lib.aar github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + gtar --exclude ".*" -czvf android_lib_$(VERSION).tar.gz lib.aar protobuf json + mv android_lib_$(VERSION).tar.gz .release/ diff --git a/makefiles/ci-compile-ios-lib.mk b/makefiles/ci-compile-ios-lib.mk new file mode 100644 index 000000000..da5e90714 --- /dev/null +++ b/makefiles/ci-compile-ios-lib.mk @@ -0,0 +1,15 @@ +PUBLISH_GRADLE ?= 0 +compile-ios-lib: + go install github.com/vektra/mockery/v2@v2.47.0 + go install go.uber.org/mock/mockgen@v0.5.0 + make test-deps + gomobile bind -tags "$(BUILD_TAG_NETWORK) nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata rasterizesvg" -ldflags "$(FLAGS)" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + mkdir -p dist/ios/ + mv Lib.xcframework dist/ios/ + go run cmd/iosrepack/main.go + mv dist/ios/Lib.xcframework . + gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json + @if [ "$(PUBLISH_GRADLE)" -eq 1 ]; then \ + gradle publish; \ + fi + mv ios_framework.tar.gz .release/ios_framework_$(VERSION).tar.gz diff --git a/makefiles/ci-java-protos.mk b/makefiles/ci-java-protos.mk new file mode 100644 index 000000000..3d99391e4 --- /dev/null +++ b/makefiles/ci-java-protos.mk @@ -0,0 +1,15 @@ +ci-java-protos: + make protos-java + rm -rf protobuf + mv dist/android/pb protobuf + mkdir -p protobuf/protos + cp pb/protos/*.proto ./protobuf/protos + cp pb/protos/service/*.proto ./protobuf/protos + cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + + # Add system relations/types jsons + mkdir -p json/ + cp pkg/lib/bundle/systemRelations.json ./json + cp pkg/lib/bundle/systemTypes.json ./json + cp pkg/lib/bundle/internalRelations.json ./json + cp pkg/lib/bundle/internalTypes.json ./json diff --git a/makefiles/ci-js-protos.mk b/makefiles/ci-js-protos.mk new file mode 100644 index 000000000..5a89b0c63 --- /dev/null +++ b/makefiles/ci-js-protos.mk @@ -0,0 +1,13 @@ +ci-js-protos: + mv dist/js/pb protobuf + mkdir -p protobuf/protos + cp pb/protos/*.proto ./protobuf/protos + cp pb/protos/service/*.proto ./protobuf/protos + cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + + # Add system relations/types jsons + mkdir -p json/ + cp pkg/lib/bundle/systemRelations.json ./json + cp pkg/lib/bundle/systemTypes.json ./json + cp pkg/lib/bundle/internalRelations.json ./json + cp pkg/lib/bundle/internalTypes.json ./json diff --git a/makefiles/ci-pack-server.mk b/makefiles/ci-pack-server.mk new file mode 100644 index 000000000..db764b133 --- /dev/null +++ b/makefiles/ci-pack-server.mk @@ -0,0 +1,16 @@ +PACK_SERVER_OS_ARCHS = windows-amd64 darwin-amd64 darwin-arm64 linux-amd64 +prepare-pack-server: + mkdir -p .release/ + +pack-server-%: + @OSARCH=$*; \ + if [ "$$OSARCH" = "windows-amd64" ]; then \ + BINARY_NAME=grpc-server.exe; \ + else \ + BINARY_NAME=grpc-server; \ + fi; \ + cp ./$$OSARCH* ./$$BINARY_NAME; \ + tar -czf js_$(VERSION)_$$OSARCH.tar.gz $$BINARY_NAME protobuf json; \ + mv js_$(VERSION)_$$OSARCH.tar.gz .release/ + +pack-server: prepare-pack-server $(addprefix pack-server-,$(PACK_SERVER_OS_ARCHS)) diff --git a/makefiles/ci-swift-protos.mk b/makefiles/ci-swift-protos.mk new file mode 100644 index 000000000..f9ebde0f1 --- /dev/null +++ b/makefiles/ci-swift-protos.mk @@ -0,0 +1,17 @@ +swift-protos: + mkdir -p .release + make protos-swift + rm -rf protobuf + mv dist/ios/protobuf protobuf + mkdir -p protobuf/protos + cp pb/protos/*.proto ./protobuf/protos + cp pb/protos/service/*.proto ./protobuf/protos + cp pkg/lib/pb/model/protos/*.proto ./protobuf/protos + + # Add system relations/types jsons + mkdir -p json/ + cp pkg/lib/bundle/systemRelations.json ./json + cp pkg/lib/bundle/relations.json ./json + cp pkg/lib/bundle/systemTypes.json ./json + cp pkg/lib/bundle/internalRelations.json ./json + cp pkg/lib/bundle/internalTypes.json ./json From 91715f36de441611312944f98b5cdbc40b8a7a51 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 18 Feb 2025 18:20:41 +0300 Subject: [PATCH 128/176] GO-5126 Migrate types icons --- core/block/editor/page.go | 2 + core/relationutils/objecttype.go | 3 +- docs/proto.md | 2 + pkg/lib/bundle/generator/main.go | 11 +- pkg/lib/bundle/types.gen.go | 110 +- pkg/lib/bundle/types.json | 129 +- pkg/lib/pb/model/models.pb.go | 1207 +++++++++-------- pkg/lib/pb/model/protos/models.proto | 2 + .../systemobjectreviser.go | 2 + 9 files changed, 824 insertions(+), 644 deletions(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 93951401f..77d9e4f81 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -52,6 +52,8 @@ var typeRequiredRelations = append(typeAndRelationRequiredRelations, bundle.RelationKeyRecommendedFileRelations, bundle.RelationKeyRecommendedLayout, bundle.RelationKeySmartblockTypes, + bundle.RelationKeyIconOption, + bundle.RelationKeyIconName, ) var relationRequiredRelations = append(typeAndRelationRequiredRelations, diff --git a/core/relationutils/objecttype.go b/core/relationutils/objecttype.go index 537d04f9a..93a2b7584 100644 --- a/core/relationutils/objecttype.go +++ b/core/relationutils/objecttype.go @@ -41,7 +41,6 @@ func (ot *ObjectType) BundledTypeDetails() *domain.Details { det.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) det.SetString(bundle.RelationKeyName, ot.Name) det.SetString(bundle.RelationKeyCreator, addr.AnytypeProfileId) - det.SetString(bundle.RelationKeyIconEmoji, ot.IconEmoji) det.SetString(bundle.RelationKeyUniqueKey, uk.Marshal()) det.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) det.SetInt64(bundle.RelationKeyRecommendedLayout, int64(ot.Layout)) @@ -54,5 +53,7 @@ func (ot *ObjectType) BundledTypeDetails() *domain.Details { det.SetString(bundle.RelationKeySpaceId, addr.AnytypeMarketplaceWorkspace) det.SetInt64(bundle.RelationKeyOrigin, int64(model.ObjectOrigin_builtin)) det.SetInt64(bundle.RelationKeyRevision, ot.Revision) + det.SetInt64(bundle.RelationKeyIconOption, ot.IconColor) + det.SetString(bundle.RelationKeyIconName, ot.IconName) return det } diff --git a/docs/proto.md b/docs/proto.md index 54bbeeddd..38901f932 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -30387,6 +30387,8 @@ Used to decode block meta only, without the content itself | key | [string](#string) | | name of objectType (can be localized for bundled types) | | revision | [int64](#int64) | | revision of system objectType. Used to check if we should change type content or not | | restrictObjectCreation | [bool](#bool) | | restricts creating objects of this type for users | +| iconColor | [int64](#int64) | | color of object type icon | +| iconName | [string](#string) | | name of object type icon | diff --git a/pkg/lib/bundle/generator/main.go b/pkg/lib/bundle/generator/main.go index 376d3f1cb..fcbc9fb8f 100644 --- a/pkg/lib/bundle/generator/main.go +++ b/pkg/lib/bundle/generator/main.go @@ -62,6 +62,8 @@ type ObjectType struct { Description string `json:"description"` Revision int `json:"revision"` RestrictObjectCreation bool `json:"restrictObjectCreation"` + IconColor int `json:"iconColor"` + IconName string `json:"iconName"` } type Layout struct { @@ -277,9 +279,6 @@ func generateTypes() error { if ot.Hidden { dictS[Id("Hidden")] = Lit(ot.Hidden) } - if ot.Emoji != "" { - dictS[Id("IconEmoji")] = Lit(ot.Emoji) - } dictS[Id("Readonly")] = Lit(true) @@ -310,6 +309,12 @@ func generateTypes() error { dictS[Id("RestrictObjectCreation")] = Lit(ot.RestrictObjectCreation) } + dictS[Id("IconColor")] = Lit(ot.IconColor) + + if ot.IconName != "" { + dictS[Id("IconName")] = Lit(ot.IconName) + } + dict[Id(typeConst(ot.ID))] = Block(dictS) } g.Id("types").Op("=").Map(Qual(domainPkg, "TypeKey")).Op("*").Qual(relPbPkg, "ObjectType").Values(Dict(dict)) diff --git a/pkg/lib/bundle/types.gen.go b/pkg/lib/bundle/types.gen.go index d659e035c..7a7904c8c 100644 --- a/pkg/lib/bundle/types.gen.go +++ b/pkg/lib/bundle/types.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const TypeChecksum = "66c7946afe19193a627e58a96698229c85b015794dd2864c21e411910960a511" +const TypeChecksum = "55b112c49ecef2287e6a8a0b17d70955608139e1805dcb3fb742dc7eb43236be" const ( TypePrefix = "_ot" ) @@ -50,20 +50,22 @@ var ( TypeKeyAudio: { Description: "Sound when recorded, with ability to reproduce", - IconEmoji: "🎵", + IconColor: 5, + IconName: "musical-notes", Layout: model.ObjectType_file, Name: "Audio", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyArtist), MustGetRelationLink(RelationKeyAudioAlbum), MustGetRelationLink(RelationKeyAudioGenre), MustGetRelationLink(RelationKeyReleasedYear), MustGetRelationLink(RelationKeyAudioAlbumTrackNumber), MustGetRelationLink(RelationKeyAudioLyrics)}, RestrictObjectCreation: true, - Revision: 2, + Revision: 3, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "audio", }, TypeKeyBook: { Description: "A book is a medium for recording information in the form of writing or images, typically composed of many pages bound together and protected by a cover", - IconEmoji: "📘", + IconColor: 3, + IconName: "book", Layout: model.ObjectType_basic, Name: "Book", Readonly: true, @@ -74,11 +76,13 @@ var ( TypeKeyBookmark: { Description: "URL that is stored as Object and may be categorised and linked with objects", - IconEmoji: "🔖", + IconColor: 4, + IconName: "bookmark", Layout: model.ObjectType_bookmark, Name: "Bookmark", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyPicture), MustGetRelationLink(RelationKeySource)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "bookmark", }, @@ -86,11 +90,13 @@ var ( Description: "A chat [deprecated]", Hidden: true, - IconEmoji: "💬", + IconColor: 7, + IconName: "chatbubble", Layout: model.ObjectType_chat, Name: "Chat [deprecated]", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_ChatObject}, Url: TypePrefix + "chat", }, @@ -98,29 +104,34 @@ var ( Description: "A chat derived object", Hidden: true, + IconColor: 7, + IconName: "chatbubble", Layout: model.ObjectType_chatDerived, Name: "Chat Derived Object", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_ChatDerivedObject}, Url: TypePrefix + "chatDerived", }, TypeKeyCollection: { Description: "Collect objects in one place, use different views to organize them", - IconEmoji: "🗂ï¸", + IconColor: 7, + IconName: "layers", Layout: model.ObjectType_collection, Name: "Collection", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "collection", }, TypeKeyContact: { Description: "Information to make action of communicating or meeting with Human or Company", - IconEmoji: "📇", + IconColor: 8, + IconName: "id-card", Layout: model.ObjectType_profile, Name: "Contact", Readonly: true, @@ -132,6 +143,7 @@ var ( Description: "Internal home dashboard with favourite objects", Hidden: true, + IconColor: 0, Layout: model.ObjectType_dashboard, Name: "Dashboard", Readonly: true, @@ -143,7 +155,8 @@ var ( Description: "Gregorian calendar date", Hidden: true, - IconEmoji: "📅", + IconColor: 9, + IconName: "calendar", Layout: model.ObjectType_date, Name: "Date", Readonly: true, @@ -154,7 +167,8 @@ var ( TypeKeyDiaryEntry: { Description: "Record of events and experiences", - IconEmoji: "✨", + IconColor: 2, + IconName: "reader", Layout: model.ObjectType_basic, Name: "Diary Entry", Readonly: true, @@ -165,20 +179,22 @@ var ( TypeKeyFile: { Description: "Computer resource for recording data in a computer storage device", - IconEmoji: "📎", + IconColor: 7, + IconName: "attach", Layout: model.ObjectType_file, Name: "File", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyFileMimeType)}, RestrictObjectCreation: true, - Revision: 2, + Revision: 3, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "file", }, TypeKeyGoal: { Description: "The object of a person's ambition or effort; an aim or desired result", - IconEmoji: "🎯", + IconColor: 4, + IconName: "flag", Layout: model.ObjectType_todo, Name: "Goal", Readonly: true, @@ -189,20 +205,22 @@ var ( TypeKeyImage: { Description: "A representation of the external form of a person or thing in art", - IconEmoji: "ðŸž", + IconColor: 10, + IconName: "image", Layout: model.ObjectType_image, Name: "Image", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure), MustGetRelationLink(RelationKeyFocalRatio)}, RestrictObjectCreation: true, - Revision: 2, + Revision: 3, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "image", }, TypeKeyMovie: { Description: "Motion picture or Moving picture, is a work of visual art used to simulate experiences that communicate ideas, stories, perceptions, feelings, beauty, or atmosphere through the use of moving images", - IconEmoji: "ðŸ¿", + IconColor: 5, + IconName: "film", Layout: model.ObjectType_basic, Name: "Movie", Readonly: true, @@ -213,64 +231,74 @@ var ( TypeKeyNote: { Description: "Blank canvas with no Title. A brief record of points written down as an aid to memory", - IconEmoji: "ðŸ“", + IconColor: 2, + IconName: "create", Layout: model.ObjectType_note, Name: "Note", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "note", }, TypeKeyObjectType: { Description: "Object that contains a definition of some object type", - IconEmoji: "🥚", + IconColor: 9, + IconName: "extension-puzzle", Layout: model.ObjectType_objectType, Name: "Type", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyRecommendedRelations), MustGetRelationLink(RelationKeyRecommendedLayout)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_SubObject, model.SmartBlockType_BundledObjectType}, Url: TypePrefix + "objectType", }, TypeKeyPage: { Description: "Blank canvas with Title", - IconEmoji: "📄", + IconColor: 8, + IconName: "document", Layout: model.ObjectType_basic, Name: "Page", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "page", }, TypeKeyParticipant: { Description: "Anytype identity as a space participant", - IconEmoji: "🧑", + IconColor: 3, + IconName: "person", Layout: model.ObjectType_participant, Name: "Space member", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, RestrictObjectCreation: true, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_Participant}, Url: TypePrefix + "participant", }, TypeKeyProfile: { Description: "Homo sapiens", - IconEmoji: "ðŸ§", + IconColor: 3, + IconName: "man", Layout: model.ObjectType_profile, Name: "Human", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page, model.SmartBlockType_ProfilePage}, Url: TypePrefix + "profile", }, TypeKeyProject: { Description: "An individual or collaborative enterprise that is carefully planned to achieve a particular aim", - IconEmoji: "🔨", + IconColor: 3, + IconName: "hammer", Layout: model.ObjectType_basic, Name: "Project", Readonly: true, @@ -281,7 +309,8 @@ var ( TypeKeyRecipe: { Description: "A recipe is a set of instructions that describes how to prepare or make something, especially a dish of prepared food", - IconEmoji: "ðŸ²", + IconColor: 4, + IconName: "pizza", Layout: model.ObjectType_basic, Name: "Recipe", Readonly: true, @@ -293,11 +322,13 @@ var ( Description: "Meaningful connection between objects", Hidden: true, - IconEmoji: "🔗", + IconColor: 7, + IconName: "share-social", Layout: model.ObjectType_relation, Name: "Relation", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyRelationFormat), MustGetRelationLink(RelationKeyRelationMaxCount), MustGetRelationLink(RelationKeyRelationDefaultValue), MustGetRelationLink(RelationKeyRelationFormatObjectTypes)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_SubObject, model.SmartBlockType_BundledRelation}, Url: TypePrefix + "relation", }, @@ -305,7 +336,7 @@ var ( Description: "Object that contains a relation option", Hidden: true, - IconEmoji: "🥚", + IconColor: 0, Layout: model.ObjectType_relationOption, Name: "Relation option", Readonly: true, @@ -315,11 +346,13 @@ var ( TypeKeySet: { Description: "Query all objects in your space based on types and relations", - IconEmoji: "🔎", + IconColor: 6, + IconName: "search", Layout: model.ObjectType_set, Name: "Set", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeySetOf)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "set", }, @@ -327,12 +360,14 @@ var ( Description: "Workspace", Hidden: true, - IconEmoji: "🌎", + IconColor: 10, + IconName: "folder", Layout: model.ObjectType_space, Name: "Space", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag)}, RestrictObjectCreation: true, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Workspace}, Url: TypePrefix + "space", }, @@ -340,7 +375,8 @@ var ( Description: "Space", Hidden: true, - IconEmoji: "🌎", + IconColor: 10, + IconName: "folder", Layout: model.ObjectType_spaceView, Name: "Space", Readonly: true, @@ -352,36 +388,40 @@ var ( TypeKeyTask: { Description: "A piece of work to be done or undertaken", - IconEmoji: "✅", + IconColor: 10, + IconName: "checkbox", Layout: model.ObjectType_todo, Name: "Task", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAssignee), MustGetRelationLink(RelationKeyDone), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyLinkedProjects), MustGetRelationLink(RelationKeyPriority), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyTasks)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "task", }, TypeKeyTemplate: { Description: "Sample object that has already some details in place and used to create objects from", - IconEmoji: "🧩", + IconColor: 8, + IconName: "copy", Layout: model.ObjectType_basic, Name: "Template", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTargetObjectType), MustGetRelationLink(RelationKeyTemplateIsBundled)}, - Revision: 1, + Revision: 2, Types: []model.SmartBlockType{model.SmartBlockType_Template}, Url: TypePrefix + "template", }, TypeKeyVideo: { Description: "The recording of moving visual images", - IconEmoji: "📽", + IconColor: 6, + IconName: "videocam", Layout: model.ObjectType_file, Name: "Video", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyAddedDate), MustGetRelationLink(RelationKeyOrigin), MustGetRelationLink(RelationKeyFileExt), MustGetRelationLink(RelationKeySizeInBytes), MustGetRelationLink(RelationKeyHeightInPixels), MustGetRelationLink(RelationKeyWidthInPixels), MustGetRelationLink(RelationKeyFileMimeType), MustGetRelationLink(RelationKeyCamera), MustGetRelationLink(RelationKeyCameraIso), MustGetRelationLink(RelationKeyAperture), MustGetRelationLink(RelationKeyExposure)}, RestrictObjectCreation: true, - Revision: 2, + Revision: 3, Types: []model.SmartBlockType{model.SmartBlockType_File}, Url: TypePrefix + "video", }, diff --git a/pkg/lib/bundle/types.json b/pkg/lib/bundle/types.json index 7a063db69..50ad891d6 100644 --- a/pkg/lib/bundle/types.json +++ b/pkg/lib/bundle/types.json @@ -5,7 +5,8 @@ "types": [ "Page" ], - "emoji": "ðŸ²", + "iconColor": 4, + "iconName": "pizza", "hidden": false, "layout": "basic", "relations": [ @@ -21,13 +22,15 @@ "types": [ "Page" ], - "emoji": "ðŸ“", + "iconColor": 2, + "iconName": "create", "hidden": false, "layout": "note", "relations": [ "tag" ], - "description": "Blank canvas with no Title. A brief record of points written down as an aid to memory" + "description": "Blank canvas with no Title. A brief record of points written down as an aid to memory", + "revision": 1 }, { "id": "contact", @@ -35,7 +38,8 @@ "types": [ "Page" ], - "emoji": "📇", + "iconColor": 8, + "iconName": "id-card", "hidden": false, "layout": "profile", "relations": [ @@ -52,7 +56,8 @@ "types": [ "Page" ], - "emoji": "🔖", + "iconColor": 4, + "iconName": "bookmark", "hidden": false, "layout": "bookmark", "relations": [ @@ -60,7 +65,8 @@ "picture", "source" ], - "description": "URL that is stored as Object and may be categorised and linked with objects" + "description": "URL that is stored as Object and may be categorised and linked with objects", + "revision": 1 }, { "id": "date", @@ -68,7 +74,8 @@ "types": [ "Date" ], - "emoji": "📅", + "iconColor": 9, + "iconName": "calendar", "hidden": true, "layout": "date", "relations": [ @@ -82,7 +89,8 @@ "types": [ "Page" ], - "emoji": "✅", + "iconColor": 10, + "iconName": "checkbox", "hidden": false, "layout": "todo", "relations": [ @@ -95,7 +103,8 @@ "status", "tasks" ], - "description": "A piece of work to be done or undertaken" + "description": "A piece of work to be done or undertaken", + "revision": 1 }, { "id": "relation", @@ -104,7 +113,8 @@ "SubObject", "BundledRelation" ], - "emoji": "🔗", + "iconColor": 7, + "iconName": "share-social", "hidden": true, "layout": "relation", "relations": [ @@ -113,7 +123,8 @@ "relationDefaultValue", "relationFormatObjectTypes" ], - "description": "Meaningful connection between objects" + "description": "Meaningful connection between objects", + "revision": 1 }, { "id": "book", @@ -121,7 +132,8 @@ "types": [ "Page" ], - "emoji": "📘", + "iconColor": 3, + "iconName": "book", "hidden": false, "layout": "basic", "relations": [ @@ -139,7 +151,8 @@ "types": [ "File" ], - "emoji": "📽", + "iconColor": 6, + "iconName": "videocam", "hidden": false, "layout": "file", "relations": [ @@ -157,7 +170,7 @@ ], "description": "The recording of moving visual images", "restrictObjectCreation": true, - "revision": 2 + "revision": 3 }, { "id": "dashboard", @@ -178,7 +191,8 @@ "types": [ "Page" ], - "emoji": "ðŸ¿", + "iconColor": 5, + "iconName": "film", "hidden": false, "layout": "basic", "relations": [ @@ -195,14 +209,16 @@ "SubObject", "BundledObjectType" ], - "emoji": "🥚", + "iconColor": 9, + "iconName": "extension-puzzle", "hidden": false, "layout": "objectType", "relations": [ "recommendedRelations", "recommendedLayout" ], - "description": "Object that contains a definition of some object type" + "description": "Object that contains a definition of some object type", + "revision": 1 }, { "id": "relationOption", @@ -210,7 +226,6 @@ "types": [ "SubObject" ], - "emoji": "🥚", "hidden": true, "layout": "relationOption", "relations": [], @@ -222,14 +237,16 @@ "types": [ "Workspace" ], - "emoji": "🌎", + "iconColor": 10, + "iconName": "folder", "hidden": true, "layout": "space", "relations": [ "tag" ], "description": "Workspace", - "restrictObjectCreation": true + "restrictObjectCreation": true, + "revision": 1 }, { "id": "spaceView", @@ -237,7 +254,8 @@ "types": [ "SpaceView" ], - "emoji": "🌎", + "iconColor": 10, + "iconName": "folder", "hidden": true, "layout": "spaceView", "relations": [ @@ -252,7 +270,8 @@ "types": [ "Participant" ], - "emoji": "\uD83E\uDDD1", + "iconColor": 3, + "iconName": "person", "hidden": false, "layout": "participant", "relations": [ @@ -260,7 +279,7 @@ ], "description": "Anytype identity as a space participant", "restrictObjectCreation": true, - "revision": 1 + "revision": 2 }, { "id": "template", @@ -268,7 +287,8 @@ "types": [ "Template" ], - "emoji": "\uD83E\uDDE9", + "iconColor": 8, + "iconName": "copy", "hidden": false, "layout": "basic", "relations": [ @@ -276,7 +296,7 @@ "templateIsBundled" ], "description": "Sample object that has already some details in place and used to create objects from", - "revision": 1 + "revision": 2 }, { "id": "set", @@ -284,14 +304,16 @@ "types": [ "Page" ], - "emoji": "🔎", + "iconColor": 6, + "iconName": "search", "hidden": false, "layout": "set", "relations": [ "tag", "setOf" ], - "description": "Query all objects in your space based on types and relations" + "description": "Query all objects in your space based on types and relations", + "revision": 1 }, { "id": "collection", @@ -299,13 +321,15 @@ "types": [ "Page" ], - "emoji": "🗂ï¸", + "iconColor": 7, + "iconName": "layers", "hidden": false, "layout": "collection", "relations": [ "tag" ], - "description": "Collect objects in one place, use different views to organize them" + "description": "Collect objects in one place, use different views to organize them", + "revision": 1 }, { "id": "diaryEntry", @@ -313,7 +337,8 @@ "types": [ "Page" ], - "emoji": "✨", + "iconColor": 2, + "iconName":"reader", "hidden": false, "layout": "basic", "relations": [ @@ -328,13 +353,15 @@ "types": [ "Page" ], - "emoji": "📄", + "iconColor": 8, + "iconName": "document", "hidden": false, "layout": "basic", "relations": [ "tag" ], - "description": "Blank canvas with Title" + "description": "Blank canvas with Title", + "revision": 1 }, { "id": "image", @@ -342,7 +369,8 @@ "types": [ "File" ], - "emoji": "ðŸž", + "iconColor": 10, + "iconName": "image", "hidden": false, "layout": "image", "relations": [ @@ -361,7 +389,7 @@ ], "description": "A representation of the external form of a person or thing in art", "restrictObjectCreation": true, - "revision": 2 + "revision": 3 }, { "id": "profile", @@ -370,13 +398,15 @@ "Page", "ProfilePage" ], - "emoji": "ðŸ§", + "iconColor": 3, + "iconName": "man", "hidden": false, "layout": "profile", "relations": [ "tag" ], - "description": "Homo sapiens" + "description": "Homo sapiens", + "revision": 1 }, { "id": "audio", @@ -384,7 +414,8 @@ "types": [ "File" ], - "emoji": "🎵", + "iconColor": 5, + "iconName": "musical-notes", "hidden": false, "layout": "file", "relations": [ @@ -402,7 +433,7 @@ ], "description": "Sound when recorded, with ability to reproduce", "restrictObjectCreation": true, - "revision": 2 + "revision": 3 }, { "id": "goal", @@ -410,7 +441,8 @@ "types": [ "Page" ], - "emoji": "🎯", + "iconColor": 4, + "iconName": "flag", "hidden": false, "layout": "todo", "relations": [ @@ -428,7 +460,8 @@ "types": [ "File" ], - "emoji": "📎", + "iconColor": 7, + "iconName": "attach", "hidden": false, "layout": "file", "relations": [ @@ -440,7 +473,7 @@ ], "description": "Computer resource for recording data in a computer storage device", "restrictObjectCreation": true, - "revision": 2 + "revision": 3 }, { "id": "project", @@ -448,7 +481,8 @@ "types": [ "Page" ], - "emoji": "🔨", + "iconColor": 3, + "iconName": "hammer", "hidden": false, "layout": "basic", "relations": [ @@ -463,13 +497,15 @@ "types": [ "ChatObject" ], - "emoji": "💬", + "iconColor": 7, + "iconName": "chatbubble", "hidden": true, "layout": "chat", "relations": [ "tag" ], - "description": "A chat [deprecated]" + "description": "A chat [deprecated]", + "revision": 1 }, { "id": "chatDerived", @@ -477,13 +513,14 @@ "types": [ "ChatDerivedObject" ], - "emoji": "", + "iconColor": 7, + "iconName": "chatbubble", "hidden": true, "layout": "chatDerived", "relations": [ "tag" ], "description": "A chat derived object", - "revision": 1 + "revision": 2 } ] diff --git a/pkg/lib/pb/model/models.pb.go b/pkg/lib/pb/model/models.pb.go index fdab917ab..a15c222a7 100644 --- a/pkg/lib/pb/model/models.pb.go +++ b/pkg/lib/pb/model/models.pb.go @@ -6047,6 +6047,8 @@ type ObjectType struct { Key string `protobuf:"bytes,12,opt,name=key,proto3" json:"key,omitempty"` Revision int64 `protobuf:"varint,13,opt,name=revision,proto3" json:"revision,omitempty"` RestrictObjectCreation bool `protobuf:"varint,14,opt,name=restrictObjectCreation,proto3" json:"restrictObjectCreation,omitempty"` + IconColor int64 `protobuf:"varint,15,opt,name=iconColor,proto3" json:"iconColor,omitempty"` + IconName string `protobuf:"bytes,16,opt,name=iconName,proto3" json:"iconName,omitempty"` } func (m *ObjectType) Reset() { *m = ObjectType{} } @@ -6180,6 +6182,20 @@ func (m *ObjectType) GetRestrictObjectCreation() bool { return false } +func (m *ObjectType) GetIconColor() int64 { + if m != nil { + return m.IconColor + } + return 0 +} + +func (m *ObjectType) GetIconName() string { + if m != nil { + return m.IconName + } + return "" +} + type Layout struct { Id ObjectTypeLayout `protobuf:"varint,1,opt,name=id,proto3,enum=anytype.model.ObjectTypeLayout" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` @@ -9588,569 +9604,570 @@ func init() { } var fileDescriptor_98a910b73321e591 = []byte{ - // 8986 bytes of a gzipped FileDescriptorProto + // 9007 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7d, 0x5b, 0x8c, 0x64, 0xd9, 0x91, 0x50, 0xe5, 0x3b, 0x33, 0xb2, 0xb2, 0xea, 0xd4, 0xe9, 0x57, 0x3a, 0xdd, 0x6e, 0xda, 0xe9, 0xf1, 0x4c, 0xbb, 0x3d, 0xae, 0x9e, 0xe9, 0x99, 0xf1, 0x8c, 0xc7, 0x9e, 0xb1, 0xb3, 0xb2, 0xb2, 0xba, 0x72, 0xba, 0xaa, 0xb2, 0x7c, 0x33, 0xbb, 0xdb, 0x33, 0xda, 0xa5, 0xb8, 0x95, 0xf7, 0x54, - 0xe6, 0x75, 0xdd, 0xbc, 0x37, 0x7d, 0xef, 0xc9, 0xea, 0x2a, 0x0b, 0xd0, 0xf2, 0xda, 0x65, 0xff, - 0x0c, 0x62, 0x81, 0x15, 0x42, 0x6b, 0x7f, 0x20, 0x21, 0x76, 0x25, 0x04, 0x92, 0x05, 0x0b, 0xac, - 0x04, 0x2b, 0x21, 0x90, 0x90, 0x90, 0x81, 0x1f, 0xfe, 0x40, 0x63, 0x89, 0x1f, 0x04, 0xab, 0xe5, - 0xcb, 0x42, 0x7c, 0xa0, 0x88, 0x73, 0xee, 0x23, 0x1f, 0x55, 0x9d, 0x3d, 0xbb, 0x8b, 0xf8, 0xaa, - 0x7b, 0xe2, 0x46, 0xc4, 0x3d, 0x8f, 0x38, 0x71, 0x22, 0xe2, 0x44, 0x64, 0xc1, 0x2b, 0xe3, 0xd3, - 0xc1, 0x03, 0xc7, 0x3e, 0x7e, 0x30, 0x3e, 0x7e, 0x30, 0xf2, 0x2c, 0xe1, 0x3c, 0x18, 0xfb, 0x9e, - 0xf4, 0x02, 0xd5, 0x08, 0x36, 0xa9, 0xc5, 0x2b, 0xa6, 0x7b, 0x21, 0x2f, 0xc6, 0x62, 0x93, 0xa0, - 0xb5, 0xdb, 0x03, 0xcf, 0x1b, 0x38, 0x42, 0xa1, 0x1e, 0x4f, 0x4e, 0x1e, 0x04, 0xd2, 0x9f, 0xf4, - 0xa5, 0x42, 0xae, 0xff, 0x2c, 0x0b, 0x37, 0xbb, 0x23, 0xd3, 0x97, 0x5b, 0x8e, 0xd7, 0x3f, 0xed, - 0xba, 0xe6, 0x38, 0x18, 0x7a, 0x72, 0xcb, 0x0c, 0x04, 0x7f, 0x1d, 0xf2, 0xc7, 0x08, 0x0c, 0xaa, - 0xa9, 0xbb, 0x99, 0x7b, 0xe5, 0x87, 0xd7, 0x37, 0xa7, 0x18, 0x6f, 0x12, 0x85, 0xa1, 0x71, 0xf8, - 0x9b, 0x50, 0xb0, 0x84, 0x34, 0x6d, 0x27, 0xa8, 0xa6, 0xef, 0xa6, 0xee, 0x95, 0x1f, 0xde, 0xda, - 0x54, 0x1f, 0xde, 0x0c, 0x3f, 0xbc, 0xd9, 0xa5, 0x0f, 0x1b, 0x21, 0x1e, 0x7f, 0x17, 0x8a, 0x27, - 0xb6, 0x23, 0x1e, 0x8b, 0x8b, 0xa0, 0x9a, 0xb9, 0x92, 0x66, 0x2b, 0x5d, 0x4d, 0x19, 0x11, 0x32, - 0x6f, 0xc2, 0x9a, 0x38, 0x97, 0xbe, 0x69, 0x08, 0xc7, 0x94, 0xb6, 0xe7, 0x06, 0xd5, 0x2c, 0xf5, - 0xf0, 0xd6, 0x4c, 0x0f, 0xc3, 0xf7, 0x44, 0x3e, 0x43, 0xc2, 0xef, 0x42, 0xd9, 0x3b, 0xfe, 0xbe, - 0xe8, 0xcb, 0xde, 0xc5, 0x58, 0x04, 0xd5, 0xdc, 0xdd, 0xcc, 0xbd, 0x92, 0x91, 0x04, 0xf1, 0x6f, - 0x40, 0xb9, 0xef, 0x39, 0x8e, 0xe8, 0xab, 0x6f, 0xe4, 0xaf, 0x1e, 0x56, 0x12, 0x97, 0xbf, 0x0d, - 0x37, 0x7c, 0x31, 0xf2, 0xce, 0x84, 0xd5, 0x8c, 0xa0, 0x34, 0xce, 0x22, 0x7d, 0x66, 0xf1, 0x4b, - 0xde, 0x80, 0x8a, 0xaf, 0xfb, 0xb7, 0x67, 0xbb, 0xa7, 0x41, 0xb5, 0x40, 0xc3, 0xfa, 0xfc, 0x25, - 0xc3, 0x42, 0x1c, 0x63, 0x9a, 0x82, 0x33, 0xc8, 0x9c, 0x8a, 0x8b, 0x6a, 0xe9, 0x6e, 0xea, 0x5e, - 0xc9, 0xc0, 0x47, 0xfe, 0x3e, 0x54, 0x3d, 0xdf, 0x1e, 0xd8, 0xae, 0xe9, 0x34, 0x7d, 0x61, 0x4a, - 0x61, 0xf5, 0xec, 0x91, 0x08, 0xa4, 0x39, 0x1a, 0x57, 0xe1, 0x6e, 0xea, 0x5e, 0xc6, 0xb8, 0xf4, - 0x3d, 0x7f, 0x4b, 0xad, 0x50, 0xdb, 0x3d, 0xf1, 0xaa, 0x65, 0x3d, 0xfc, 0xe9, 0xbe, 0xec, 0xe8, - 0xd7, 0x46, 0x84, 0x58, 0xff, 0x45, 0x1a, 0xf2, 0x5d, 0x61, 0xfa, 0xfd, 0x61, 0xed, 0xd7, 0x52, - 0x90, 0x37, 0x44, 0x30, 0x71, 0x24, 0xaf, 0x41, 0x51, 0xcd, 0x6d, 0xdb, 0xaa, 0xa6, 0xa8, 0x77, - 0x51, 0xfb, 0xb3, 0xc8, 0xce, 0x26, 0x64, 0x47, 0x42, 0x9a, 0xd5, 0x0c, 0xcd, 0x50, 0x6d, 0xa6, - 0x57, 0xea, 0xf3, 0x9b, 0xfb, 0x42, 0x9a, 0x06, 0xe1, 0xd5, 0x7e, 0x9e, 0x82, 0x2c, 0x36, 0xf9, - 0x6d, 0x28, 0x0d, 0xed, 0xc1, 0xd0, 0xb1, 0x07, 0x43, 0xa9, 0x3b, 0x12, 0x03, 0xf8, 0x87, 0xb0, - 0x1e, 0x35, 0x0c, 0xd3, 0x1d, 0x08, 0xec, 0xd1, 0x22, 0xe1, 0xa7, 0x97, 0xc6, 0x2c, 0x32, 0xaf, - 0x42, 0x81, 0xf6, 0x43, 0xdb, 0x22, 0x89, 0x2e, 0x19, 0x61, 0x13, 0xc5, 0x2d, 0x5c, 0xa9, 0xc7, - 0xe2, 0xa2, 0x9a, 0xa5, 0xb7, 0x49, 0x10, 0x6f, 0xc0, 0x7a, 0xd8, 0xdc, 0xd6, 0xb3, 0x91, 0xbb, - 0x7a, 0x36, 0x66, 0xf1, 0xeb, 0x9f, 0xee, 0x41, 0x8e, 0xb6, 0x25, 0x5f, 0x83, 0xb4, 0x1d, 0x4e, - 0x74, 0xda, 0xb6, 0xf8, 0x03, 0xc8, 0x9f, 0xd8, 0xc2, 0xb1, 0x5e, 0x38, 0xc3, 0x1a, 0x8d, 0xb7, - 0x60, 0xd5, 0x17, 0x81, 0xf4, 0x6d, 0x2d, 0xfd, 0x6a, 0x83, 0x7e, 0x71, 0x91, 0x0e, 0xd8, 0x34, - 0x12, 0x88, 0xc6, 0x14, 0x19, 0x0e, 0xbb, 0x3f, 0xb4, 0x1d, 0xcb, 0x17, 0x6e, 0xdb, 0x52, 0xfb, - 0xb4, 0x64, 0x24, 0x41, 0xfc, 0x1e, 0xac, 0x1f, 0x9b, 0xfd, 0xd3, 0x81, 0xef, 0x4d, 0x5c, 0xdc, - 0x10, 0x9e, 0x4f, 0xc3, 0x2e, 0x19, 0xb3, 0x60, 0xfe, 0x06, 0xe4, 0x4c, 0xc7, 0x1e, 0xb8, 0xb4, - 0x13, 0xd7, 0xe6, 0x16, 0x5d, 0xf5, 0xa5, 0x81, 0x18, 0x86, 0x42, 0xe4, 0xbb, 0x50, 0x39, 0x13, - 0xbe, 0xb4, 0xfb, 0xa6, 0x43, 0xf0, 0x6a, 0x81, 0x28, 0xeb, 0x0b, 0x29, 0x9f, 0x26, 0x31, 0x8d, - 0x69, 0x42, 0xde, 0x06, 0x08, 0x50, 0x4d, 0xd2, 0x72, 0xea, 0xbd, 0xf0, 0xda, 0x42, 0x36, 0x4d, - 0xcf, 0x95, 0xc2, 0x95, 0x9b, 0xdd, 0x08, 0x7d, 0x77, 0xc5, 0x48, 0x10, 0xf3, 0x77, 0x21, 0x2b, - 0xc5, 0xb9, 0xac, 0xae, 0x5d, 0x31, 0xa3, 0x21, 0x93, 0x9e, 0x38, 0x97, 0xbb, 0x2b, 0x06, 0x11, - 0x20, 0x21, 0x6e, 0xb2, 0xea, 0xfa, 0x12, 0x84, 0xb8, 0x2f, 0x91, 0x10, 0x09, 0xf8, 0x07, 0x90, - 0x77, 0xcc, 0x0b, 0x6f, 0x22, 0xab, 0x8c, 0x48, 0xbf, 0x74, 0x25, 0xe9, 0x1e, 0xa1, 0xee, 0xae, - 0x18, 0x9a, 0x88, 0xbf, 0x0d, 0x19, 0xcb, 0x3e, 0xab, 0x6e, 0x10, 0xed, 0xdd, 0x2b, 0x69, 0xb7, - 0xed, 0xb3, 0xdd, 0x15, 0x03, 0xd1, 0x79, 0x13, 0x8a, 0xc7, 0x9e, 0x77, 0x3a, 0x32, 0xfd, 0xd3, - 0x2a, 0x27, 0xd2, 0x2f, 0x5f, 0x49, 0xba, 0xa5, 0x91, 0x77, 0x57, 0x8c, 0x88, 0x10, 0x87, 0x6c, - 0xf7, 0x3d, 0xb7, 0x7a, 0x6d, 0x89, 0x21, 0xb7, 0xfb, 0x9e, 0x8b, 0x43, 0x46, 0x02, 0x24, 0x74, - 0x6c, 0xf7, 0xb4, 0x7a, 0x7d, 0x09, 0x42, 0xd4, 0x9c, 0x48, 0x88, 0x04, 0xd8, 0x6d, 0xcb, 0x94, - 0xe6, 0x99, 0x2d, 0x9e, 0x57, 0x6f, 0x2c, 0xd1, 0xed, 0x6d, 0x8d, 0x8c, 0xdd, 0x0e, 0x09, 0x91, - 0x49, 0xb8, 0x35, 0xab, 0x37, 0x97, 0x60, 0x12, 0x6a, 0x74, 0x64, 0x12, 0x12, 0xf2, 0x3f, 0x0d, - 0x1b, 0x27, 0xc2, 0x94, 0x13, 0x5f, 0x58, 0xf1, 0x41, 0x77, 0x8b, 0xb8, 0x6d, 0x5e, 0xbd, 0xf6, - 0xb3, 0x54, 0xbb, 0x2b, 0xc6, 0x3c, 0x2b, 0xfe, 0x3e, 0xe4, 0x1c, 0x53, 0x8a, 0xf3, 0x6a, 0x95, - 0x78, 0xd6, 0x5f, 0x20, 0x14, 0x52, 0x9c, 0xef, 0xae, 0x18, 0x8a, 0x84, 0x7f, 0x0f, 0xd6, 0xa5, - 0x79, 0xec, 0x88, 0xce, 0x89, 0x46, 0x08, 0xaa, 0x9f, 0x23, 0x2e, 0xaf, 0x5f, 0x2d, 0xce, 0xd3, - 0x34, 0xbb, 0x2b, 0xc6, 0x2c, 0x1b, 0xec, 0x15, 0x81, 0xaa, 0xb5, 0x25, 0x7a, 0x45, 0xfc, 0xb0, - 0x57, 0x44, 0xc2, 0xf7, 0xa0, 0x4c, 0x0f, 0x4d, 0xcf, 0x99, 0x8c, 0xdc, 0xea, 0xe7, 0x89, 0xc3, - 0xbd, 0x17, 0x73, 0x50, 0xf8, 0xbb, 0x2b, 0x46, 0x92, 0x1c, 0x17, 0x91, 0x9a, 0x86, 0xf7, 0xbc, - 0x7a, 0x7b, 0x89, 0x45, 0xec, 0x69, 0x64, 0x5c, 0xc4, 0x90, 0x10, 0xb7, 0xde, 0x73, 0xdb, 0x1a, - 0x08, 0x59, 0xfd, 0xc2, 0x12, 0x5b, 0xef, 0x19, 0xa1, 0xe2, 0xd6, 0x53, 0x44, 0x28, 0xc6, 0xfd, - 0xa1, 0x29, 0xab, 0x77, 0x96, 0x10, 0xe3, 0xe6, 0xd0, 0x24, 0x5d, 0x81, 0x04, 0xb5, 0x1f, 0xc2, - 0x6a, 0x52, 0x2b, 0x73, 0x0e, 0x59, 0x5f, 0x98, 0xea, 0x44, 0x28, 0x1a, 0xf4, 0x8c, 0x30, 0x61, - 0xd9, 0x92, 0x4e, 0x84, 0xa2, 0x41, 0xcf, 0xfc, 0x26, 0xe4, 0x95, 0x6d, 0x42, 0x0a, 0xbf, 0x68, - 0xe8, 0x16, 0xe2, 0x5a, 0xbe, 0x39, 0xa0, 0x73, 0xab, 0x68, 0xd0, 0x33, 0xe2, 0x5a, 0xbe, 0x37, - 0xee, 0xb8, 0xa4, 0xb0, 0x8b, 0x86, 0x6e, 0xd5, 0xfe, 0xf5, 0x07, 0x50, 0xd0, 0x9d, 0xaa, 0xfd, - 0xdd, 0x14, 0xe4, 0x95, 0x42, 0xe1, 0xdf, 0x86, 0x5c, 0x20, 0x2f, 0x1c, 0x41, 0x7d, 0x58, 0x7b, - 0xf8, 0x95, 0x25, 0x94, 0xd0, 0x66, 0x17, 0x09, 0x0c, 0x45, 0x57, 0x37, 0x20, 0x47, 0x6d, 0x5e, - 0x80, 0x8c, 0xe1, 0x3d, 0x67, 0x2b, 0x1c, 0x20, 0xaf, 0x16, 0x8b, 0xa5, 0x10, 0xb8, 0x6d, 0x9f, - 0xb1, 0x34, 0x02, 0x77, 0x85, 0x69, 0x09, 0x9f, 0x65, 0x78, 0x05, 0x4a, 0xe1, 0xb2, 0x04, 0x2c, - 0xcb, 0x19, 0xac, 0x26, 0x16, 0x3c, 0x60, 0xb9, 0xda, 0xff, 0xca, 0x42, 0x16, 0xf7, 0x3f, 0x7f, - 0x05, 0x2a, 0xd2, 0xf4, 0x07, 0x42, 0x19, 0xc2, 0x91, 0x91, 0x32, 0x0d, 0xe4, 0x1f, 0x84, 0x63, - 0x48, 0xd3, 0x18, 0x5e, 0x7b, 0xa1, 0x5e, 0x99, 0x1a, 0x41, 0xe2, 0x14, 0xce, 0x2c, 0x77, 0x0a, - 0xef, 0x40, 0x11, 0xd5, 0x59, 0xd7, 0xfe, 0xa1, 0xa0, 0xa9, 0x5f, 0x7b, 0x78, 0xff, 0xc5, 0x9f, - 0x6c, 0x6b, 0x0a, 0x23, 0xa2, 0xe5, 0x6d, 0x28, 0xf5, 0x4d, 0xdf, 0xa2, 0xce, 0xd0, 0x6a, 0xad, - 0x3d, 0xfc, 0xea, 0x8b, 0x19, 0x35, 0x43, 0x12, 0x23, 0xa6, 0xe6, 0x1d, 0x28, 0x5b, 0x22, 0xe8, - 0xfb, 0xf6, 0x98, 0xd4, 0x9b, 0x3a, 0x8b, 0xbf, 0xf6, 0x62, 0x66, 0xdb, 0x31, 0x91, 0x91, 0xe4, - 0x80, 0x16, 0x99, 0x1f, 0xe9, 0xb7, 0x02, 0x19, 0x08, 0x31, 0xa0, 0xfe, 0x2e, 0x14, 0xc3, 0xf1, - 0xf0, 0x55, 0x28, 0xe2, 0xdf, 0x03, 0xcf, 0x15, 0x6c, 0x05, 0xd7, 0x16, 0x5b, 0xdd, 0x91, 0xe9, - 0x38, 0x2c, 0xc5, 0xd7, 0x00, 0xb0, 0xb9, 0x2f, 0x2c, 0x7b, 0x32, 0x62, 0xe9, 0xfa, 0x37, 0x43, - 0x69, 0x29, 0x42, 0xf6, 0xd0, 0x1c, 0x20, 0xc5, 0x2a, 0x14, 0x43, 0x75, 0xcd, 0x52, 0x48, 0xbf, - 0x6d, 0x06, 0xc3, 0x63, 0xcf, 0xf4, 0x2d, 0x96, 0xe6, 0x65, 0x28, 0x34, 0xfc, 0xfe, 0xd0, 0x3e, - 0x13, 0x2c, 0x53, 0x7f, 0x00, 0xe5, 0x44, 0x7f, 0x91, 0x85, 0xfe, 0x68, 0x09, 0x72, 0x0d, 0xcb, - 0x12, 0x16, 0x4b, 0x21, 0x81, 0x1e, 0x20, 0x4b, 0xd7, 0xbf, 0x0a, 0xa5, 0x68, 0xb6, 0x10, 0x1d, - 0x0f, 0x6e, 0xb6, 0x82, 0x4f, 0x08, 0x66, 0x29, 0x94, 0xca, 0xb6, 0xeb, 0xd8, 0xae, 0x60, 0xe9, - 0xda, 0x9f, 0x21, 0x51, 0xe5, 0xdf, 0x9a, 0xde, 0x10, 0xaf, 0xbe, 0xe8, 0x64, 0x9d, 0xde, 0x0d, - 0x9f, 0x4f, 0x8c, 0x6f, 0xcf, 0xa6, 0xce, 0x15, 0x21, 0xbb, 0xed, 0xc9, 0x80, 0xa5, 0x6a, 0xff, - 0x3d, 0x0d, 0xc5, 0xf0, 0x40, 0x45, 0x9f, 0x60, 0xe2, 0x3b, 0x5a, 0xa0, 0xf1, 0x91, 0x5f, 0x87, - 0x9c, 0xb4, 0xa5, 0x16, 0xe3, 0x92, 0xa1, 0x1a, 0x68, 0xab, 0x25, 0x57, 0x56, 0x19, 0xb0, 0xb3, - 0x4b, 0x65, 0x8f, 0xcc, 0x81, 0xd8, 0x35, 0x83, 0xa1, 0x36, 0x61, 0x63, 0x00, 0xd2, 0x9f, 0x98, - 0x67, 0x28, 0x73, 0xf4, 0x5e, 0x59, 0x71, 0x49, 0x10, 0x7f, 0x0b, 0xb2, 0x38, 0x40, 0x2d, 0x34, - 0x7f, 0x6a, 0x66, 0xc0, 0x28, 0x26, 0x87, 0xbe, 0xc0, 0xe5, 0xd9, 0x44, 0x0f, 0xcc, 0x20, 0x64, - 0xfe, 0x2a, 0xac, 0xa9, 0x4d, 0xd8, 0x09, 0xfd, 0x87, 0x02, 0x71, 0x9e, 0x81, 0xf2, 0x06, 0x4e, - 0xa7, 0x29, 0x45, 0xb5, 0xb8, 0x84, 0x7c, 0x87, 0x93, 0xb3, 0xd9, 0x45, 0x12, 0x43, 0x51, 0xd6, - 0xdf, 0xc1, 0x39, 0x35, 0xa5, 0xc0, 0x65, 0x6e, 0x8d, 0xc6, 0xf2, 0x42, 0x09, 0xcd, 0x8e, 0x90, - 0xfd, 0xa1, 0xed, 0x0e, 0x58, 0x4a, 0x4d, 0x31, 0x2e, 0x22, 0xa1, 0xf8, 0xbe, 0xe7, 0xb3, 0x4c, - 0xad, 0x06, 0x59, 0x94, 0x51, 0x54, 0x92, 0xae, 0x39, 0x12, 0x7a, 0xa6, 0xe9, 0xb9, 0x76, 0x0d, - 0x36, 0xe6, 0xce, 0xe3, 0xda, 0xef, 0xe6, 0x95, 0x84, 0x20, 0x05, 0xd9, 0x82, 0x9a, 0x82, 0xcc, - 0xbc, 0x97, 0xd2, 0x31, 0xc8, 0x65, 0x5a, 0xc7, 0x7c, 0x00, 0x39, 0x1c, 0x58, 0xa8, 0x62, 0x96, - 0x20, 0xdf, 0x47, 0x74, 0x43, 0x51, 0xa1, 0x07, 0xd3, 0x1f, 0x8a, 0xfe, 0xa9, 0xb0, 0xb4, 0xae, - 0x0f, 0x9b, 0x28, 0x34, 0xfd, 0x84, 0x79, 0xae, 0x1a, 0x24, 0x12, 0x7d, 0xcf, 0x6d, 0x8d, 0xbc, - 0xef, 0xdb, 0xb4, 0xae, 0x28, 0x12, 0x21, 0x20, 0x7c, 0xdb, 0x46, 0x19, 0xd1, 0xcb, 0x16, 0x03, - 0x6a, 0x2d, 0xc8, 0xd1, 0xb7, 0x71, 0x27, 0xa8, 0x3e, 0xab, 0x48, 0xc3, 0xab, 0xcb, 0xf5, 0x59, - 0x77, 0xb9, 0xf6, 0x3b, 0x69, 0xc8, 0x62, 0x9b, 0xdf, 0x87, 0x9c, 0x8f, 0x7e, 0x18, 0x4d, 0xe7, - 0x65, 0x3e, 0x9b, 0x42, 0xe1, 0xdf, 0xd6, 0xa2, 0x98, 0x5e, 0x42, 0x58, 0xa2, 0x2f, 0x26, 0xc5, - 0xf2, 0x3a, 0xe4, 0xc6, 0xa6, 0x6f, 0x8e, 0xf4, 0x3e, 0x51, 0x8d, 0xfa, 0x8f, 0x53, 0x90, 0x45, - 0x24, 0xbe, 0x01, 0x95, 0xae, 0xf4, 0xed, 0x53, 0x21, 0x87, 0xbe, 0x37, 0x19, 0x0c, 0x95, 0x24, - 0x3d, 0x16, 0x17, 0x4a, 0xdf, 0x28, 0x85, 0x20, 0x4d, 0xc7, 0xee, 0xb3, 0x34, 0x4a, 0xd5, 0x96, - 0xe7, 0x58, 0x2c, 0xc3, 0xd7, 0xa1, 0xfc, 0xc4, 0xb5, 0x84, 0x1f, 0xf4, 0x3d, 0x5f, 0x58, 0x2c, - 0xab, 0x77, 0xf7, 0x29, 0xcb, 0xd1, 0x59, 0x26, 0xce, 0x25, 0xf9, 0x42, 0x2c, 0xcf, 0xaf, 0xc1, - 0xfa, 0xd6, 0xb4, 0x83, 0xc4, 0x0a, 0xa8, 0x93, 0xf6, 0x85, 0x8b, 0x42, 0xc6, 0x8a, 0x4a, 0x88, - 0xbd, 0xef, 0xdb, 0xac, 0x84, 0x1f, 0x53, 0xfb, 0x84, 0x41, 0xfd, 0x5f, 0xa4, 0x42, 0xcd, 0x51, - 0x81, 0xd2, 0xa1, 0xe9, 0x9b, 0x03, 0xdf, 0x1c, 0x63, 0xff, 0xca, 0x50, 0x50, 0x07, 0xe7, 0x9b, - 0x4a, 0xbb, 0xa9, 0xc6, 0x43, 0xa5, 0x1b, 0x55, 0xe3, 0x2d, 0x96, 0x89, 0x1b, 0x6f, 0xb3, 0x2c, - 0x7e, 0xe3, 0xbb, 0x13, 0x4f, 0x0a, 0x96, 0x23, 0x5d, 0xe7, 0x59, 0x82, 0xe5, 0x11, 0xd8, 0x43, - 0x8d, 0xc2, 0x0a, 0x38, 0xe6, 0x26, 0xca, 0xcf, 0xb1, 0x77, 0xce, 0x8a, 0xd8, 0x0d, 0x9c, 0x46, - 0x61, 0xb1, 0x12, 0xbe, 0x39, 0x98, 0x8c, 0x8e, 0x05, 0x0e, 0x13, 0xf0, 0x4d, 0xcf, 0x1b, 0x0c, - 0x1c, 0xc1, 0xca, 0x38, 0x07, 0x09, 0xe5, 0xcb, 0x56, 0x49, 0xd3, 0x9a, 0x8e, 0xe3, 0x4d, 0x24, - 0xab, 0xd4, 0x7e, 0x91, 0x81, 0x2c, 0x7a, 0x37, 0xb8, 0x77, 0x86, 0xa8, 0x67, 0xf4, 0xde, 0xc1, - 0xe7, 0x68, 0x07, 0xa6, 0xe3, 0x1d, 0xc8, 0xdf, 0xd7, 0x2b, 0x9d, 0x59, 0x42, 0xcb, 0x22, 0xe3, - 0xe4, 0x22, 0x73, 0xc8, 0x8e, 0xec, 0x91, 0xd0, 0xba, 0x8e, 0x9e, 0x11, 0x16, 0xe0, 0x79, 0x9c, - 0xa3, 0xe0, 0x09, 0x3d, 0xe3, 0xae, 0x31, 0xf1, 0x58, 0x68, 0x48, 0xda, 0x03, 0x19, 0x23, 0x6c, - 0x2e, 0xd0, 0x5e, 0xa5, 0x85, 0xda, 0xeb, 0x83, 0x50, 0x7b, 0x15, 0x96, 0xd8, 0xf5, 0xd4, 0xcd, - 0xa4, 0xe6, 0x8a, 0x95, 0x46, 0x71, 0x79, 0xf2, 0xc4, 0x61, 0xb2, 0xad, 0xa5, 0x36, 0x3e, 0xe8, - 0x8a, 0x6a, 0x96, 0x59, 0x0a, 0x57, 0x93, 0xb6, 0xab, 0xd2, 0x79, 0x4f, 0x6d, 0x4b, 0x78, 0x2c, - 0x43, 0x07, 0xe1, 0xc4, 0xb2, 0x3d, 0x96, 0x45, 0xcb, 0xeb, 0x70, 0x7b, 0x87, 0xe5, 0xea, 0xaf, - 0x26, 0x8e, 0xa4, 0xc6, 0x44, 0x7a, 0x8a, 0x0d, 0x89, 0x6f, 0x4a, 0x49, 0xe3, 0xb1, 0xb0, 0x58, - 0xba, 0xfe, 0xf5, 0x05, 0x6a, 0xb6, 0x02, 0xa5, 0x27, 0x63, 0xc7, 0x33, 0xad, 0x2b, 0xf4, 0xec, - 0x2a, 0x40, 0xec, 0x55, 0xd7, 0x7e, 0x51, 0x8f, 0x8f, 0x73, 0xb4, 0x45, 0x03, 0x6f, 0xe2, 0xf7, - 0x05, 0xa9, 0x90, 0x92, 0xa1, 0x5b, 0xfc, 0x3b, 0x90, 0xc3, 0xf7, 0x61, 0x18, 0xe7, 0xfe, 0x52, - 0xbe, 0xdc, 0xe6, 0x53, 0x5b, 0x3c, 0x37, 0x14, 0x21, 0xbf, 0x03, 0x60, 0xf6, 0xa5, 0x7d, 0x26, - 0x10, 0xa8, 0x37, 0x7b, 0x02, 0xc2, 0xdf, 0x49, 0x9a, 0x2f, 0x57, 0xc7, 0x21, 0x13, 0x76, 0x0d, - 0x37, 0xa0, 0x8c, 0x5b, 0x77, 0xdc, 0xf1, 0x71, 0xb7, 0x57, 0x57, 0x89, 0xf0, 0x8d, 0xe5, 0xba, - 0xf7, 0x28, 0x22, 0x34, 0x92, 0x4c, 0xf8, 0x13, 0x58, 0x55, 0x31, 0x35, 0xcd, 0xb4, 0x42, 0x4c, - 0xdf, 0x5c, 0x8e, 0x69, 0x27, 0xa6, 0x34, 0xa6, 0xd8, 0xcc, 0x87, 0x25, 0x73, 0x2f, 0x1d, 0x96, - 0x7c, 0x15, 0xd6, 0x7a, 0xd3, 0xbb, 0x40, 0x1d, 0x15, 0x33, 0x50, 0x5e, 0x87, 0x55, 0x3b, 0x88, - 0xa3, 0xa2, 0x14, 0x23, 0x29, 0x1a, 0x53, 0xb0, 0xda, 0x7f, 0xc8, 0x43, 0x96, 0x66, 0x7e, 0x36, - 0xc6, 0xd5, 0x9c, 0x52, 0xe9, 0x0f, 0x96, 0x5f, 0xea, 0x99, 0x1d, 0x4f, 0x1a, 0x24, 0x93, 0xd0, - 0x20, 0xdf, 0x81, 0x5c, 0xe0, 0xf9, 0x32, 0x5c, 0xde, 0x25, 0x85, 0xa8, 0xeb, 0xf9, 0xd2, 0x50, - 0x84, 0x7c, 0x07, 0x0a, 0x27, 0xb6, 0x23, 0x71, 0x51, 0xd4, 0xe4, 0xbd, 0xbe, 0x1c, 0x8f, 0x1d, - 0x22, 0x32, 0x42, 0x62, 0xbe, 0x97, 0x14, 0xb6, 0x3c, 0x71, 0xda, 0x5c, 0x8e, 0xd3, 0x22, 0x19, - 0xbc, 0x0f, 0xac, 0xef, 0x9d, 0x09, 0xdf, 0x48, 0x04, 0x26, 0xd5, 0x21, 0x3d, 0x07, 0xe7, 0x35, - 0x28, 0x0e, 0x6d, 0x4b, 0xa0, 0x9d, 0x43, 0x3a, 0xa6, 0x68, 0x44, 0x6d, 0xfe, 0x18, 0x8a, 0xe4, - 0x1f, 0xa0, 0x56, 0x2c, 0xbd, 0xf4, 0xe4, 0x2b, 0x57, 0x25, 0x64, 0x80, 0x1f, 0xa2, 0x8f, 0xef, - 0xd8, 0x92, 0xe2, 0xd3, 0x45, 0x23, 0x6a, 0x63, 0x87, 0x49, 0xde, 0x93, 0x1d, 0x2e, 0xab, 0x0e, - 0xcf, 0xc2, 0xf9, 0xdb, 0x70, 0x83, 0x60, 0x33, 0x87, 0x24, 0x6e, 0x35, 0x64, 0xba, 0xf8, 0x25, - 0x1a, 0x2c, 0x63, 0x73, 0x20, 0xf6, 0xec, 0x91, 0x2d, 0xab, 0x95, 0xbb, 0xa9, 0x7b, 0x39, 0x23, - 0x06, 0xf0, 0xd7, 0x61, 0xc3, 0x12, 0x27, 0xe6, 0xc4, 0x91, 0x3d, 0x31, 0x1a, 0x3b, 0xa6, 0x14, - 0x6d, 0x8b, 0x64, 0xb4, 0x64, 0xcc, 0xbf, 0xe0, 0x6f, 0xc0, 0x35, 0x0d, 0xec, 0x44, 0xb7, 0x0a, - 0x6d, 0x8b, 0xc2, 0x77, 0x25, 0x63, 0xd1, 0xab, 0xfa, 0xbe, 0x56, 0xc3, 0x78, 0x80, 0xa2, 0x9f, - 0x1a, 0x2a, 0xd0, 0x40, 0xaa, 0x13, 0xf9, 0x91, 0xe9, 0x38, 0xc2, 0xbf, 0x50, 0x4e, 0xee, 0x63, - 0xd3, 0x3d, 0x36, 0x5d, 0x96, 0xa1, 0x33, 0xd6, 0x74, 0x84, 0x6b, 0x99, 0xbe, 0x3a, 0x91, 0x1f, - 0xd1, 0x81, 0x9e, 0xab, 0xdf, 0x83, 0x2c, 0x4d, 0x69, 0x09, 0x72, 0xca, 0x4b, 0x22, 0x8f, 0x59, - 0x7b, 0x48, 0xa4, 0x91, 0xf7, 0x70, 0xfb, 0xb1, 0x74, 0xed, 0xef, 0xe5, 0xa1, 0x18, 0x4e, 0x5e, - 0x78, 0x87, 0x90, 0x8a, 0xef, 0x10, 0xd0, 0x8c, 0x0b, 0x9e, 0xda, 0x81, 0x7d, 0xac, 0xcd, 0xd2, - 0xa2, 0x11, 0x03, 0xd0, 0x12, 0x7a, 0x6e, 0x5b, 0x72, 0x48, 0x7b, 0x26, 0x67, 0xa8, 0x06, 0xbf, - 0x07, 0xeb, 0x16, 0xce, 0x83, 0xdb, 0x77, 0x26, 0x96, 0xe8, 0xe1, 0x29, 0xaa, 0xc2, 0x04, 0xb3, - 0x60, 0xfe, 0x31, 0x80, 0xb4, 0x47, 0x62, 0xc7, 0xf3, 0x47, 0xa6, 0xd4, 0xbe, 0xc1, 0x37, 0x5e, - 0x4e, 0xaa, 0x37, 0x7b, 0x11, 0x03, 0x23, 0xc1, 0x0c, 0x59, 0xe3, 0xd7, 0x34, 0xeb, 0xc2, 0x67, - 0x62, 0xbd, 0x1d, 0x31, 0x30, 0x12, 0xcc, 0x78, 0x0f, 0x0a, 0x27, 0x9e, 0x3f, 0x9a, 0x38, 0xa6, - 0x3e, 0x73, 0xdf, 0x7f, 0x49, 0xbe, 0x3b, 0x8a, 0x9a, 0x74, 0x4f, 0xc8, 0x2a, 0x8e, 0x71, 0x97, - 0x96, 0x8c, 0x71, 0xd7, 0x7f, 0x09, 0x20, 0xee, 0x21, 0xbf, 0x09, 0x7c, 0xdf, 0x73, 0xe5, 0xb0, - 0x71, 0x7c, 0xec, 0x6f, 0x89, 0x13, 0xcf, 0x17, 0xdb, 0x26, 0x1e, 0xaf, 0x37, 0x60, 0x23, 0x82, - 0x37, 0x4e, 0xa4, 0xf0, 0x11, 0x4c, 0x22, 0xd0, 0x1d, 0x7a, 0xbe, 0x54, 0x36, 0x1e, 0x3d, 0x3e, - 0xe9, 0xb2, 0x0c, 0x1e, 0xe9, 0xed, 0x6e, 0x87, 0x65, 0xeb, 0xf7, 0x00, 0xe2, 0xa9, 0x25, 0x5f, - 0x88, 0x9e, 0xde, 0x7c, 0xa8, 0x3d, 0x23, 0x6a, 0x3d, 0x7c, 0x9b, 0xa5, 0xea, 0x9f, 0xa6, 0xa0, - 0x9c, 0x18, 0xd2, 0xb4, 0xcf, 0xdc, 0xf4, 0x26, 0xae, 0x54, 0x4e, 0x3a, 0x3d, 0x3e, 0x35, 0x9d, - 0x09, 0x1e, 0xee, 0x1b, 0x50, 0xa1, 0xf6, 0xb6, 0x1d, 0x48, 0xdb, 0xed, 0x4b, 0x96, 0x89, 0x50, - 0x94, 0x61, 0x90, 0x8d, 0x50, 0x0e, 0x3c, 0x0d, 0xca, 0x71, 0x06, 0xab, 0x87, 0xc2, 0xef, 0x8b, - 0x10, 0x89, 0x8c, 0x61, 0x0d, 0x89, 0xd0, 0x94, 0x31, 0x6c, 0xca, 0x61, 0x77, 0x32, 0x62, 0x45, - 0x34, 0x2a, 0xb1, 0xd1, 0x38, 0x13, 0x3e, 0xda, 0x32, 0x25, 0xfc, 0x0e, 0x02, 0x70, 0x37, 0x98, - 0x2e, 0x83, 0x10, 0x7b, 0xdf, 0x76, 0x59, 0x39, 0x6a, 0x98, 0xe7, 0x6c, 0x15, 0xfb, 0x4f, 0xae, - 0x03, 0xab, 0xd4, 0xfe, 0x5b, 0x06, 0xb2, 0xa8, 0xd7, 0xd1, 0xd7, 0x4d, 0x2a, 0x21, 0xb5, 0x57, - 0x92, 0xa0, 0xcf, 0x76, 0x1a, 0x21, 0xef, 0xe4, 0x69, 0xf4, 0x1e, 0x94, 0xfb, 0x93, 0x40, 0x7a, - 0x23, 0x3a, 0x8a, 0xf5, 0x6d, 0xd7, 0xcd, 0xb9, 0xa8, 0x11, 0x4d, 0xa7, 0x91, 0x44, 0xe5, 0xef, - 0x40, 0xfe, 0x44, 0x49, 0xbd, 0x8a, 0x1b, 0x7d, 0xe1, 0x92, 0xd3, 0x5a, 0x4b, 0xb6, 0x46, 0xc6, - 0x71, 0xd9, 0x73, 0x3b, 0x36, 0x09, 0xd2, 0xa7, 0x6e, 0x3e, 0x3a, 0x75, 0x7f, 0x09, 0xd6, 0x04, - 0x4e, 0xf8, 0xa1, 0x63, 0xf6, 0xc5, 0x48, 0xb8, 0xe1, 0x36, 0x7b, 0xfb, 0x25, 0x46, 0x4c, 0x2b, - 0x46, 0xc3, 0x9e, 0xe1, 0x85, 0x9a, 0xc7, 0xf5, 0xf0, 0xf0, 0x0f, 0x1d, 0xfb, 0xa2, 0x11, 0x03, - 0xea, 0x5f, 0xd6, 0xfa, 0xb2, 0x00, 0x99, 0x46, 0xd0, 0xd7, 0x11, 0x10, 0x11, 0xf4, 0x95, 0x7b, - 0xd5, 0xa4, 0xe9, 0x60, 0xe9, 0xfa, 0x9b, 0x50, 0x8a, 0xbe, 0x80, 0xc2, 0x73, 0xe0, 0xc9, 0xee, - 0x58, 0xf4, 0xed, 0x13, 0x5b, 0x58, 0x4a, 0x3e, 0xbb, 0xd2, 0xf4, 0xa5, 0x0a, 0x22, 0xb6, 0x5c, - 0x8b, 0xa5, 0x6b, 0xbf, 0x5d, 0x84, 0xbc, 0x3a, 0x7c, 0xf5, 0x80, 0x4b, 0xd1, 0x80, 0xbf, 0x0b, - 0x45, 0x6f, 0x2c, 0x7c, 0x53, 0x7a, 0xbe, 0x8e, 0xdc, 0xbc, 0xf3, 0x32, 0x87, 0xf9, 0x66, 0x47, - 0x13, 0x1b, 0x11, 0x9b, 0x59, 0x69, 0x4a, 0xcf, 0x4b, 0xd3, 0x7d, 0x60, 0xe1, 0xb9, 0x7d, 0xe8, - 0x23, 0x9d, 0xbc, 0xd0, 0x7e, 0xf8, 0x1c, 0x9c, 0xf7, 0xa0, 0xd4, 0xf7, 0x5c, 0xcb, 0x8e, 0xa2, - 0x38, 0x6b, 0x0f, 0xbf, 0xfe, 0x52, 0x3d, 0x6c, 0x86, 0xd4, 0x46, 0xcc, 0x88, 0xbf, 0x0e, 0xb9, - 0x33, 0x14, 0x33, 0x92, 0xa7, 0xcb, 0x85, 0x50, 0x21, 0xf1, 0x4f, 0xa0, 0xfc, 0x83, 0x89, 0xdd, - 0x3f, 0xed, 0x24, 0xa3, 0x84, 0xef, 0xbd, 0x54, 0x2f, 0xbe, 0x1b, 0xd3, 0x1b, 0x49, 0x66, 0x09, - 0xd1, 0x2e, 0xfc, 0x11, 0x44, 0xbb, 0x38, 0x2f, 0xda, 0x06, 0x54, 0x5c, 0x11, 0x48, 0x61, 0xed, - 0x68, 0x5b, 0x0d, 0x3e, 0x83, 0xad, 0x36, 0xcd, 0xa2, 0xfe, 0x25, 0x28, 0x86, 0x0b, 0xce, 0xf3, - 0x90, 0x3e, 0x40, 0xa7, 0x28, 0x0f, 0xe9, 0x8e, 0xaf, 0xa4, 0xad, 0x81, 0xd2, 0x56, 0xff, 0x83, - 0x14, 0x94, 0xa2, 0x49, 0x9f, 0xd6, 0x9c, 0xad, 0x1f, 0x4c, 0x4c, 0x87, 0xa5, 0xc8, 0x5d, 0xf6, - 0xa4, 0x6a, 0x91, 0xb2, 0x7e, 0x44, 0x97, 0xf5, 0x3e, 0xcb, 0x90, 0x89, 0x20, 0x82, 0x80, 0x65, - 0x39, 0x87, 0x35, 0x0d, 0xee, 0xf8, 0x0a, 0x35, 0x87, 0x8a, 0x0f, 0xdf, 0x86, 0x80, 0xbc, 0xb2, - 0x28, 0x4e, 0x85, 0x52, 0x90, 0x07, 0x9e, 0xa4, 0x46, 0x11, 0x3b, 0xd5, 0x76, 0x59, 0x09, 0xbf, - 0x79, 0xe0, 0xc9, 0x36, 0xaa, 0xc4, 0xc8, 0x3d, 0x2b, 0x87, 0x9f, 0xa7, 0x16, 0x69, 0xc4, 0x86, - 0xe3, 0xb4, 0x5d, 0x56, 0xd1, 0x2f, 0x54, 0x6b, 0x0d, 0x39, 0xb6, 0xce, 0xcd, 0x3e, 0x92, 0xaf, - 0xa3, 0x86, 0x45, 0x1a, 0xdd, 0x66, 0xb8, 0x25, 0x5b, 0xe7, 0x76, 0x20, 0x03, 0xb6, 0x51, 0xff, - 0x77, 0x29, 0x28, 0x27, 0x16, 0x18, 0xdd, 0x3f, 0x42, 0xc4, 0xa3, 0x4c, 0x79, 0x83, 0x1f, 0xe3, - 0x34, 0xfa, 0x56, 0x78, 0x4c, 0xf5, 0x3c, 0x7c, 0x4c, 0xe3, 0xf7, 0x7a, 0xde, 0xc8, 0xf3, 0x7d, - 0xef, 0xb9, 0x32, 0x7d, 0xf6, 0xcc, 0x40, 0x3e, 0x13, 0xe2, 0x94, 0x65, 0x71, 0xa8, 0xcd, 0x89, - 0xef, 0x0b, 0x57, 0x01, 0x72, 0xd4, 0x39, 0x71, 0xae, 0x5a, 0x79, 0x64, 0x8a, 0xc8, 0x74, 0x0e, - 0xb2, 0x02, 0x2a, 0x02, 0x8d, 0xad, 0x20, 0x45, 0x44, 0x40, 0x74, 0xd5, 0x2c, 0xe1, 0xa1, 0xa2, - 0x22, 0x14, 0x9d, 0x93, 0x6d, 0xf3, 0x22, 0x68, 0x0c, 0x3c, 0x06, 0xb3, 0xc0, 0x03, 0xef, 0x39, - 0x2b, 0xd7, 0x26, 0x00, 0xb1, 0x4f, 0x86, 0xbe, 0x28, 0x0a, 0x44, 0x74, 0x87, 0xa0, 0x5b, 0xbc, - 0x03, 0x80, 0x4f, 0x84, 0x19, 0x3a, 0xa4, 0x2f, 0x61, 0x28, 0x13, 0x9d, 0x91, 0x60, 0x51, 0xfb, - 0x73, 0x50, 0x8a, 0x5e, 0xf0, 0x2a, 0x14, 0xc8, 0xa4, 0x8d, 0x3e, 0x1b, 0x36, 0xd1, 0x3e, 0xb3, - 0x5d, 0x4b, 0x9c, 0x93, 0x5e, 0xc9, 0x19, 0xaa, 0x81, 0xbd, 0x1c, 0xda, 0x96, 0x25, 0xdc, 0xf0, - 0xa6, 0x47, 0xb5, 0x16, 0xdd, 0xc7, 0x67, 0x17, 0xde, 0xc7, 0xd7, 0x7e, 0x19, 0xca, 0x09, 0xa7, - 0xf1, 0xd2, 0x61, 0x27, 0x3a, 0x96, 0x9e, 0xee, 0xd8, 0x6d, 0x28, 0x85, 0x39, 0x20, 0x01, 0x9d, - 0x6d, 0x25, 0x23, 0x06, 0xd4, 0xfe, 0x49, 0x1a, 0x2d, 0x59, 0x1c, 0xda, 0xac, 0xa3, 0xb7, 0x03, - 0xf9, 0x40, 0x9a, 0x72, 0x12, 0x26, 0x33, 0x2c, 0xb9, 0x41, 0xbb, 0x44, 0xb3, 0xbb, 0x62, 0x68, - 0x6a, 0xfe, 0x01, 0x64, 0xa4, 0x39, 0xd0, 0x81, 0xd2, 0xaf, 0x2c, 0xc7, 0xa4, 0x67, 0x0e, 0x76, - 0x57, 0x0c, 0xa4, 0xe3, 0x7b, 0x50, 0xec, 0xeb, 0xd8, 0x96, 0x56, 0x8a, 0x4b, 0xfa, 0x62, 0x61, - 0x44, 0x6c, 0x77, 0xc5, 0x88, 0x38, 0xf0, 0xef, 0x40, 0x16, 0xad, 0x4b, 0x9d, 0xf3, 0xb1, 0xa4, - 0x8f, 0x89, 0xdb, 0x65, 0x77, 0xc5, 0x20, 0xca, 0xad, 0x02, 0xe4, 0x48, 0x07, 0xd7, 0xaa, 0x90, - 0x57, 0x63, 0x9d, 0x9d, 0xb9, 0xda, 0x2d, 0xc8, 0xf4, 0xcc, 0x01, 0x5a, 0xf8, 0xb6, 0x15, 0xe8, - 0x50, 0x09, 0x3e, 0xd6, 0x5e, 0x89, 0xe3, 0x74, 0xc9, 0x10, 0x70, 0x6a, 0x2a, 0x04, 0x5c, 0xcb, - 0x43, 0x16, 0xbf, 0x58, 0xbb, 0x7d, 0x95, 0xb7, 0x50, 0xfb, 0x07, 0x19, 0x74, 0x2c, 0xa4, 0x38, - 0x5f, 0x18, 0xde, 0xfe, 0x08, 0x4a, 0x63, 0xdf, 0xeb, 0x8b, 0x20, 0xf0, 0x7c, 0x6d, 0x1c, 0xbd, - 0xfe, 0xe2, 0xab, 0xe7, 0xcd, 0xc3, 0x90, 0xc6, 0x88, 0xc9, 0xeb, 0xff, 0x32, 0x0d, 0xa5, 0xe8, - 0x85, 0xf2, 0x67, 0xa4, 0x38, 0x57, 0xa1, 0xcc, 0x7d, 0xe1, 0x8f, 0x4c, 0xdb, 0x52, 0xda, 0xa3, - 0x39, 0x34, 0x43, 0x23, 0xf7, 0x63, 0x6f, 0x22, 0x27, 0xc7, 0x42, 0x85, 0xb0, 0x9e, 0xda, 0x23, - 0xe1, 0xb1, 0x2c, 0x5d, 0x1e, 0xa1, 0x60, 0xf7, 0x1d, 0x6f, 0x62, 0xb1, 0x1c, 0xb6, 0x1f, 0xd1, - 0xf1, 0xb6, 0x6f, 0x8e, 0x03, 0xa5, 0x33, 0xf7, 0x6d, 0xdf, 0x63, 0x05, 0x24, 0xda, 0xb1, 0x07, - 0x23, 0x93, 0x15, 0x91, 0x59, 0xef, 0xb9, 0x2d, 0x51, 0x09, 0x97, 0xd0, 0x4c, 0xed, 0x8c, 0x85, - 0xdb, 0x95, 0xbe, 0x10, 0x72, 0xdf, 0x1c, 0xab, 0x98, 0xa6, 0x21, 0x2c, 0xcb, 0x96, 0x4a, 0x7f, - 0xee, 0x98, 0x7d, 0x71, 0xec, 0x79, 0xa7, 0x6c, 0x15, 0x15, 0x4d, 0xdb, 0x0d, 0xa4, 0x39, 0xf0, - 0xcd, 0x91, 0xd2, 0xa1, 0x3d, 0xe1, 0x08, 0x6a, 0xad, 0xd1, 0xb7, 0x6d, 0x39, 0x9c, 0x1c, 0x3f, - 0x42, 0xbf, 0x6f, 0x5d, 0xdd, 0x33, 0x59, 0x62, 0x2c, 0x50, 0x87, 0xae, 0x42, 0x71, 0xcb, 0x76, - 0xec, 0x63, 0xdb, 0xb1, 0xd9, 0x06, 0xa2, 0xb6, 0xce, 0xfb, 0xa6, 0x63, 0x5b, 0xbe, 0xf9, 0x9c, - 0x71, 0xec, 0xdc, 0x63, 0xdf, 0x3b, 0xb5, 0xd9, 0x35, 0x44, 0x24, 0x37, 0xf0, 0xcc, 0xfe, 0x21, - 0xbb, 0x4e, 0x77, 0x65, 0xa7, 0x42, 0xf6, 0x87, 0x27, 0xe6, 0x31, 0xbb, 0x11, 0x87, 0xf4, 0x6e, - 0xd6, 0x36, 0x60, 0x7d, 0xe6, 0x56, 0xbe, 0x56, 0xd0, 0xde, 0x67, 0xad, 0x02, 0xe5, 0xc4, 0x75, - 0x69, 0xed, 0x55, 0x28, 0x86, 0x97, 0xa9, 0xe8, 0xa5, 0xdb, 0x81, 0x0a, 0x03, 0x6b, 0x21, 0x89, - 0xda, 0xb5, 0xdf, 0x4b, 0x41, 0x5e, 0xdd, 0x64, 0xf3, 0xad, 0x28, 0xf3, 0x24, 0xb5, 0xc4, 0xed, - 0xa5, 0x22, 0xd2, 0x77, 0xbf, 0x51, 0xfa, 0xc9, 0x75, 0xc8, 0x39, 0xe4, 0x8e, 0x6b, 0xf5, 0x45, - 0x8d, 0x84, 0xb6, 0xc9, 0x24, 0xb5, 0x4d, 0xbd, 0x11, 0xdd, 0x37, 0x87, 0xa1, 0x47, 0xb2, 0x0a, - 0x7b, 0xbe, 0x10, 0x2a, 0xac, 0x48, 0xde, 0x74, 0x9a, 0xce, 0x0a, 0x6f, 0x34, 0x36, 0xfb, 0x92, - 0x00, 0x74, 0x8a, 0xa2, 0x32, 0x65, 0x59, 0x94, 0xf2, 0xe6, 0xd0, 0x94, 0xf5, 0x13, 0x28, 0x1e, - 0x7a, 0xc1, 0xec, 0x99, 0x5c, 0x80, 0x4c, 0xcf, 0x1b, 0x2b, 0x0b, 0x73, 0xcb, 0x93, 0x64, 0x61, - 0xaa, 0x23, 0xf8, 0x44, 0x2a, 0xa1, 0x32, 0xec, 0xc1, 0x50, 0x2a, 0x4f, 0xbc, 0xed, 0xba, 0xc2, - 0x67, 0x39, 0x5c, 0x43, 0x43, 0x8c, 0xd1, 0xaa, 0x65, 0x79, 0x5c, 0x35, 0x82, 0xef, 0xd8, 0x7e, - 0x20, 0x59, 0xa1, 0xde, 0xc6, 0xd3, 0xd4, 0x1e, 0xd0, 0x21, 0x48, 0x0f, 0xc4, 0x6a, 0x05, 0xbb, - 0x48, 0xcd, 0xa6, 0x70, 0x51, 0xc6, 0xc8, 0x7b, 0x52, 0xae, 0x1f, 0x7d, 0x20, 0x8d, 0x27, 0x18, - 0xb5, 0x3f, 0x9a, 0x04, 0xd2, 0x3e, 0xb9, 0x60, 0x99, 0xfa, 0x33, 0xa8, 0x4c, 0xa5, 0x31, 0xf1, - 0xeb, 0xc0, 0xa6, 0x00, 0xd8, 0xf5, 0x15, 0x7e, 0x0b, 0xae, 0x4d, 0x41, 0xf7, 0x6d, 0xcb, 0xa2, - 0x58, 0xef, 0xec, 0x8b, 0x70, 0x80, 0x5b, 0x25, 0x28, 0xf4, 0xd5, 0x2a, 0xd5, 0x0f, 0xa1, 0x42, - 0xcb, 0xb6, 0x2f, 0xa4, 0xd9, 0x71, 0x9d, 0x8b, 0x3f, 0x72, 0xae, 0x59, 0xfd, 0xab, 0xda, 0xc1, - 0x42, 0x7d, 0x71, 0xe2, 0x7b, 0x23, 0xe2, 0x95, 0x33, 0xe8, 0x19, 0xb9, 0x4b, 0x4f, 0xaf, 0x7d, - 0x5a, 0x7a, 0xf5, 0x7f, 0x5f, 0x82, 0x42, 0xa3, 0xdf, 0x47, 0x97, 0x70, 0xee, 0xcb, 0xef, 0x40, - 0xbe, 0xef, 0xb9, 0x27, 0xf6, 0x40, 0xeb, 0xe3, 0x59, 0xcb, 0x50, 0xd3, 0xa1, 0xc0, 0x9d, 0xd8, - 0x03, 0x43, 0x23, 0x23, 0x99, 0x3e, 0x4f, 0x72, 0x57, 0x92, 0x29, 0xa5, 0x1a, 0x1d, 0x1f, 0x0f, - 0x20, 0x6b, 0xbb, 0x27, 0x9e, 0x4e, 0x0c, 0xfd, 0xfc, 0x25, 0x44, 0x94, 0x1d, 0x49, 0x88, 0xb5, - 0xff, 0x92, 0x82, 0xbc, 0xfa, 0x34, 0x7f, 0x15, 0xd6, 0x84, 0x8b, 0x9b, 0x29, 0x54, 0xe5, 0x7a, - 0x17, 0xcd, 0x40, 0xd1, 0x68, 0xd5, 0x10, 0x71, 0x3c, 0x19, 0xe8, 0xd8, 0x4b, 0x12, 0xc4, 0xdf, - 0x83, 0x5b, 0xaa, 0x79, 0xe8, 0x0b, 0x5f, 0x38, 0xc2, 0x0c, 0x44, 0x73, 0x68, 0xba, 0xae, 0x70, - 0xf4, 0xc1, 0x7e, 0xd9, 0x6b, 0x5e, 0x87, 0x55, 0xf5, 0xaa, 0x3b, 0x36, 0xfb, 0x22, 0xd0, 0xf7, - 0x7d, 0x53, 0x30, 0xfe, 0x35, 0xc8, 0x51, 0xde, 0x6c, 0xd5, 0xba, 0x7a, 0x29, 0x15, 0x56, 0xcd, - 0x8b, 0x4e, 0x9e, 0x06, 0x80, 0x9a, 0x26, 0x74, 0xba, 0xf4, 0xee, 0xff, 0xe2, 0x95, 0xf3, 0x4a, - 0xfe, 0x5f, 0x82, 0x08, 0xfb, 0x67, 0x09, 0x47, 0x50, 0x82, 0x23, 0x9e, 0x8c, 0x69, 0xba, 0x59, - 0x99, 0x82, 0xd5, 0xfe, 0x71, 0x16, 0xb2, 0x38, 0xc3, 0x88, 0x3c, 0xf4, 0x46, 0x22, 0x8a, 0x2f, - 0x2b, 0x53, 0x63, 0x0a, 0x86, 0xa6, 0x8d, 0xa9, 0xae, 0xf8, 0x23, 0x34, 0xa5, 0x3c, 0x66, 0xc1, - 0x88, 0x39, 0xf6, 0xbd, 0x13, 0xdb, 0x89, 0x31, 0xb5, 0x11, 0x34, 0x03, 0xe6, 0x5f, 0x87, 0x9b, - 0x23, 0xd3, 0x3f, 0x15, 0x92, 0x76, 0xf7, 0x33, 0xcf, 0x3f, 0x0d, 0x70, 0xe6, 0xda, 0x96, 0x0e, - 0x4c, 0x5e, 0xf2, 0x96, 0xbf, 0x0e, 0x1b, 0xcf, 0xc3, 0x66, 0xf4, 0x0d, 0x15, 0x1a, 0x9c, 0x7f, - 0x81, 0xea, 0xd6, 0x12, 0x67, 0x36, 0xf1, 0x2d, 0xaa, 0xec, 0xd9, 0xb0, 0x8d, 0xa2, 0x64, 0xaa, - 0x89, 0xec, 0xea, 0x2f, 0xeb, 0x1b, 0xa6, 0x69, 0x28, 0x5a, 0x5b, 0x2a, 0xab, 0x28, 0x68, 0x5b, - 0x14, 0x59, 0x2d, 0x19, 0x31, 0x00, 0x05, 0x8d, 0x3e, 0xf9, 0x54, 0x29, 0xd5, 0x8a, 0x72, 0x41, - 0x13, 0x20, 0xc4, 0x90, 0xa2, 0x3f, 0x0c, 0x3f, 0xa2, 0xc2, 0x9e, 0x49, 0x10, 0xbf, 0x03, 0x30, - 0x30, 0xa5, 0x78, 0x6e, 0x5e, 0x3c, 0xf1, 0x9d, 0xaa, 0x50, 0x57, 0x25, 0x31, 0x04, 0x9d, 0x58, - 0xc7, 0xeb, 0x9b, 0x4e, 0x57, 0x7a, 0xbe, 0x39, 0x10, 0x87, 0xa6, 0x1c, 0x56, 0x07, 0xca, 0x89, - 0x9d, 0x85, 0xe3, 0x88, 0xa5, 0x3d, 0x12, 0x9f, 0x78, 0xae, 0xa8, 0x0e, 0xd5, 0x88, 0xc3, 0x36, - 0xf6, 0xc4, 0x74, 0x4d, 0xe7, 0x42, 0xda, 0x7d, 0x1c, 0x8b, 0xad, 0x7a, 0x92, 0x00, 0x51, 0xd8, - 0x40, 0x48, 0x9c, 0xc7, 0xb6, 0x55, 0xfd, 0xbe, 0x1a, 0x6b, 0x04, 0xa8, 0x7d, 0x93, 0xae, 0xa7, - 0x86, 0xf5, 0xb7, 0xa0, 0xb2, 0x87, 0xdf, 0x6d, 0x8c, 0xed, 0x6e, 0xdf, 0x1b, 0x0b, 0x54, 0xd3, - 0x14, 0xe8, 0xa5, 0xb0, 0x40, 0x19, 0x0a, 0x1f, 0x05, 0x9e, 0xdb, 0x38, 0x6c, 0xab, 0x83, 0x63, - 0x67, 0xe2, 0x38, 0x2c, 0x5d, 0xef, 0x00, 0xc4, 0xf2, 0x8a, 0x87, 0x40, 0x83, 0xee, 0x82, 0xd8, - 0x8a, 0x0a, 0x42, 0xb9, 0x96, 0xed, 0x0e, 0xb6, 0xb5, 0x88, 0xb2, 0x14, 0x02, 0x29, 0xb8, 0x20, - 0xac, 0x08, 0x48, 0x66, 0x08, 0xb5, 0x84, 0xc5, 0x32, 0xf5, 0xff, 0x93, 0x82, 0x72, 0x22, 0xf5, - 0xe1, 0x8f, 0x31, 0x5d, 0x03, 0x0f, 0x69, 0x3c, 0xe6, 0x71, 0x35, 0x94, 0xf8, 0x46, 0x6d, 0x5c, - 0x2b, 0x9d, 0x99, 0x81, 0x6f, 0x55, 0x28, 0x21, 0x01, 0xf9, 0x4c, 0xa9, 0x1a, 0xf5, 0x87, 0x3a, - 0x1e, 0x53, 0x86, 0xc2, 0x13, 0xf7, 0xd4, 0xf5, 0x9e, 0xbb, 0xea, 0xf4, 0xa5, 0xfc, 0x9b, 0xa9, - 0x9b, 0xc4, 0x30, 0x45, 0x26, 0x53, 0xff, 0xe7, 0xd9, 0x99, 0x54, 0xb5, 0x16, 0xe4, 0x95, 0x13, - 0x40, 0xf6, 0xe9, 0x7c, 0x6e, 0x51, 0x12, 0x59, 0xdf, 0x5a, 0x25, 0x40, 0x86, 0x26, 0x46, 0xeb, - 0x3c, 0x4a, 0xe4, 0x4c, 0x2f, 0xbc, 0x5d, 0x9b, 0x62, 0x14, 0x6a, 0xdc, 0xa9, 0x5c, 0xe6, 0x88, - 0x43, 0xed, 0xaf, 0xa4, 0xe0, 0xfa, 0x22, 0x94, 0x64, 0xc6, 0x77, 0x6a, 0x3a, 0xe3, 0xbb, 0x3b, - 0x93, 0x41, 0x9d, 0xa6, 0xd1, 0x3c, 0x78, 0xc9, 0x4e, 0x4c, 0xe7, 0x53, 0xd7, 0x7f, 0x37, 0x05, - 0x1b, 0x73, 0x63, 0x4e, 0x58, 0x27, 0x00, 0x79, 0x25, 0x59, 0x2a, 0xc1, 0x29, 0x4a, 0x39, 0x51, - 0x57, 0x06, 0x74, 0x6e, 0x07, 0xea, 0x0e, 0x5f, 0xe7, 0x8c, 0x2b, 0xe3, 0x17, 0x57, 0x0d, 0x8f, - 0x85, 0x81, 0x50, 0xe1, 0x55, 0x65, 0x42, 0x69, 0x48, 0x5e, 0x19, 0xa8, 0xea, 0x5e, 0x83, 0x15, - 0x28, 0x71, 0x6a, 0x32, 0x76, 0xec, 0x3e, 0x36, 0x8b, 0xbc, 0x06, 0x37, 0x55, 0xe1, 0x80, 0x76, - 0x06, 0x4f, 0x7a, 0x43, 0x9b, 0x36, 0x07, 0x2b, 0xe1, 0x77, 0x0e, 0x27, 0xc7, 0x8e, 0x1d, 0x0c, - 0x19, 0xd4, 0x0d, 0xb8, 0xb6, 0x60, 0x80, 0xd4, 0xe5, 0xa7, 0xba, 0xfb, 0x6b, 0x00, 0xdb, 0x4f, - 0xc3, 0x4e, 0xb3, 0x14, 0xe7, 0xb0, 0xb6, 0xfd, 0x34, 0xc9, 0x5d, 0x6f, 0x9e, 0xa7, 0xa8, 0x93, - 0x02, 0x96, 0xa9, 0xff, 0x6a, 0x2a, 0xcc, 0x6c, 0xa8, 0xfd, 0x59, 0xa8, 0xa8, 0x0e, 0x1f, 0x9a, - 0x17, 0x8e, 0x67, 0x5a, 0xbc, 0x05, 0x6b, 0x41, 0x54, 0xda, 0x92, 0x38, 0x86, 0x66, 0x8f, 0xf7, - 0xee, 0x14, 0x92, 0x31, 0x43, 0x14, 0x3a, 0x38, 0xe9, 0xf8, 0x3a, 0x84, 0x93, 0xab, 0x66, 0xd2, - 0x96, 0x5b, 0x25, 0xe7, 0xcb, 0xac, 0x7f, 0x0d, 0x36, 0xba, 0xb1, 0xca, 0x56, 0x96, 0x30, 0x0a, - 0x87, 0xd2, 0xf7, 0xdb, 0xa1, 0x70, 0xe8, 0x66, 0xfd, 0x3f, 0xe5, 0x01, 0xe2, 0xab, 0x9f, 0x05, - 0x7b, 0x7e, 0x51, 0x26, 0xc3, 0xdc, 0x45, 0x6c, 0xe6, 0xa5, 0x2f, 0x62, 0xdf, 0x8b, 0x0c, 0x72, - 0x15, 0x16, 0x9e, 0x4d, 0xe7, 0x8e, 0xfb, 0x34, 0x6b, 0x86, 0x4f, 0x25, 0xfa, 0xe4, 0x66, 0x13, - 0x7d, 0xee, 0xce, 0x67, 0x05, 0xce, 0x28, 0xa3, 0x38, 0xde, 0x50, 0x98, 0x8a, 0x37, 0xd4, 0xa0, - 0xe8, 0x0b, 0xd3, 0xf2, 0x5c, 0xe7, 0x22, 0xbc, 0xef, 0x0b, 0xdb, 0xfc, 0x2d, 0xc8, 0x49, 0xaa, - 0xce, 0x29, 0xd2, 0xde, 0x79, 0xc1, 0xc2, 0x29, 0x5c, 0xd4, 0x6c, 0x76, 0xa0, 0x53, 0xf9, 0xd4, - 0x59, 0x58, 0x34, 0x12, 0x10, 0xbe, 0x09, 0xdc, 0x46, 0xe7, 0xcb, 0x71, 0x84, 0xb5, 0x75, 0xb1, - 0xad, 0xae, 0xe1, 0xe8, 0xb4, 0x2e, 0x1a, 0x0b, 0xde, 0x84, 0xeb, 0xbf, 0x1a, 0xaf, 0x3f, 0x75, - 0xf9, 0xcc, 0x0e, 0x70, 0xa4, 0x15, 0x32, 0x4a, 0xa2, 0x36, 0xda, 0x03, 0xe1, 0x86, 0x55, 0x73, - 0x49, 0xd2, 0x1b, 0xdf, 0x65, 0x5f, 0xf2, 0xb6, 0xfe, 0xfb, 0xe9, 0xc8, 0x71, 0x29, 0x41, 0xee, - 0xd8, 0x0c, 0xec, 0xbe, 0x3a, 0x83, 0xb4, 0xc1, 0xa1, 0xce, 0x20, 0xe9, 0x59, 0x1e, 0x4b, 0xa3, - 0x0f, 0x12, 0x08, 0x7d, 0x59, 0x12, 0x57, 0x2c, 0xb1, 0x2c, 0x6e, 0xd4, 0x70, 0xbd, 0x55, 0x46, - 0x0e, 0x91, 0x52, 0xe8, 0xcb, 0x8a, 0x72, 0x1d, 0xc9, 0x89, 0xa5, 0x83, 0x80, 0x15, 0x11, 0xc7, - 0xf5, 0xa4, 0x50, 0x81, 0x3f, 0x92, 0x4e, 0x06, 0xc8, 0x26, 0x4c, 0xc1, 0x67, 0x65, 0x74, 0x0a, - 0x42, 0xa6, 0x2a, 0x5a, 0x17, 0x90, 0xcb, 0xb4, 0x8a, 0xbb, 0x73, 0xfa, 0x05, 0xab, 0x60, 0x8f, - 0xe2, 0x42, 0x28, 0xb6, 0x86, 0x5c, 0x4d, 0xca, 0x13, 0x59, 0xc7, 0xc7, 0x33, 0xca, 0x1e, 0x61, - 0xf8, 0x55, 0x0b, 0xb5, 0xc7, 0x06, 0xf6, 0x2c, 0x32, 0x32, 0x18, 0x47, 0x9f, 0x67, 0x6c, 0xa2, - 0x03, 0x62, 0x8f, 0x4d, 0x57, 0xb2, 0x6b, 0x38, 0xd4, 0xb1, 0x75, 0xc2, 0xae, 0x23, 0x49, 0x7f, - 0x68, 0x4a, 0x76, 0x03, 0x71, 0xf0, 0x69, 0x5b, 0xf8, 0xb8, 0x9e, 0xec, 0x26, 0xe2, 0x48, 0x73, - 0xc0, 0x6e, 0xd5, 0x7f, 0x23, 0xce, 0x36, 0x7e, 0x23, 0x72, 0x0d, 0x96, 0x11, 0x72, 0x74, 0x1e, - 0x16, 0xed, 0xb8, 0x16, 0x6c, 0xf8, 0xe2, 0x07, 0x13, 0x7b, 0x2a, 0x07, 0x3f, 0x73, 0x75, 0x92, - 0xc7, 0x3c, 0x45, 0xfd, 0x0c, 0x36, 0xc2, 0xc6, 0x33, 0x5b, 0x0e, 0x29, 0x4a, 0xc3, 0xdf, 0x4a, - 0x14, 0x09, 0xa4, 0x16, 0x16, 0x57, 0x45, 0x2c, 0xe3, 0xa2, 0x80, 0x28, 0x0a, 0x9f, 0x5e, 0x22, - 0x0a, 0x5f, 0xff, 0xdf, 0xc9, 0x6b, 0x5d, 0xe5, 0x2c, 0x59, 0x91, 0xb3, 0x34, 0x7f, 0xcd, 0x1b, - 0x07, 0xd6, 0xd3, 0x2f, 0x13, 0x58, 0x5f, 0x94, 0x32, 0xf1, 0x3e, 0xda, 0xee, 0xb4, 0x7f, 0x9e, - 0x2e, 0x71, 0x69, 0x30, 0x85, 0xcb, 0xb7, 0xe8, 0xd2, 0xd6, 0xec, 0xaa, 0x7c, 0x9e, 0xdc, 0xc2, - 0x92, 0x9d, 0xe4, 0xed, 0xac, 0xc6, 0x34, 0x12, 0x54, 0x09, 0x6d, 0x93, 0x5f, 0xa4, 0x6d, 0xd0, - 0x6f, 0xd5, 0x7a, 0x28, 0x6a, 0xab, 0x3b, 0x16, 0xf5, 0x1c, 0xb2, 0x27, 0x8b, 0xbc, 0x68, 0xcc, - 0xc1, 0xd1, 0x24, 0x1b, 0x4d, 0x1c, 0x69, 0xeb, 0x6b, 0x04, 0xd5, 0x98, 0xad, 0x29, 0x2c, 0xcd, - 0xd7, 0x14, 0x7e, 0x08, 0x10, 0x08, 0xdc, 0x1d, 0xdb, 0x76, 0x5f, 0xea, 0xac, 0x9f, 0x3b, 0x97, - 0x8d, 0x4d, 0x5f, 0x7e, 0x24, 0x28, 0xb0, 0xff, 0x23, 0xf3, 0x9c, 0x2e, 0x44, 0x75, 0x7a, 0x42, - 0xd4, 0x9e, 0xd5, 0xc1, 0x6b, 0xf3, 0x3a, 0xf8, 0x2d, 0xc8, 0x05, 0x68, 0xe8, 0x52, 0x59, 0xcc, - 0xe5, 0xeb, 0xbb, 0x49, 0xd6, 0xb0, 0xa1, 0x70, 0x29, 0x1c, 0x88, 0x5a, 0xca, 0xf3, 0xa9, 0x20, - 0xa6, 0x64, 0x84, 0xcd, 0x29, 0x3d, 0x78, 0x73, 0x5a, 0x0f, 0xd6, 0x2c, 0xc8, 0xeb, 0xd0, 0xfe, - 0xac, 0x93, 0x1e, 0x06, 0x05, 0xd3, 0x89, 0xa0, 0x60, 0x94, 0x5b, 0x9a, 0x49, 0xe6, 0x96, 0xce, - 0xd4, 0xcc, 0xe5, 0xe6, 0x6a, 0xe6, 0xea, 0x9f, 0x40, 0x4e, 0x59, 0xee, 0x10, 0x1a, 0x8d, 0xca, - 0xe0, 0xc4, 0x41, 0xb1, 0x14, 0xbf, 0x0e, 0x2c, 0x10, 0x64, 0x91, 0x88, 0xae, 0x39, 0x12, 0xa4, - 0x24, 0xd3, 0xbc, 0x0a, 0xd7, 0x15, 0x6e, 0x30, 0xfd, 0x86, 0xcc, 0x22, 0xc7, 0x3e, 0xf6, 0x4d, - 0xff, 0x82, 0x65, 0xeb, 0x1f, 0xd2, 0xc5, 0x7a, 0x28, 0x50, 0xe5, 0xa8, 0x46, 0x51, 0xa9, 0x65, - 0x4b, 0x6b, 0x1f, 0xca, 0xcb, 0xd0, 0x9e, 0x96, 0xca, 0x56, 0x23, 0x57, 0x86, 0x62, 0x31, 0xab, - 0xc9, 0x93, 0xf8, 0x8f, 0x6d, 0xbf, 0xd5, 0xb7, 0x12, 0x76, 0xdd, 0x74, 0xfa, 0x59, 0x6a, 0xd9, - 0xf4, 0xb3, 0xfa, 0x63, 0x58, 0x37, 0xa6, 0x75, 0x3a, 0x7f, 0x0f, 0x0a, 0xde, 0x38, 0xc9, 0xe7, - 0x45, 0x72, 0x19, 0xa2, 0xd7, 0x7f, 0x9a, 0x82, 0xd5, 0xb6, 0x2b, 0x85, 0xef, 0x9a, 0xce, 0x8e, - 0x63, 0x0e, 0xf8, 0xbb, 0xa1, 0x96, 0x5a, 0xec, 0xf7, 0x27, 0x71, 0xa7, 0x15, 0x96, 0xa3, 0x43, - 0xd8, 0xfc, 0x06, 0x6c, 0x08, 0xcb, 0x96, 0x9e, 0xaf, 0xac, 0xd9, 0x30, 0x4b, 0xf0, 0x3a, 0x30, - 0x05, 0xee, 0xd2, 0x96, 0xe8, 0xa9, 0x65, 0xae, 0xc2, 0xf5, 0x29, 0x68, 0x68, 0xaa, 0xa6, 0xf9, - 0x6d, 0xa8, 0xc6, 0xa7, 0xd1, 0xb6, 0xe7, 0xca, 0xb6, 0x6b, 0x89, 0x73, 0x32, 0x85, 0x58, 0xa6, - 0xfe, 0xeb, 0x85, 0xd0, 0x08, 0x7b, 0xaa, 0x73, 0x08, 0x7d, 0xcf, 0x8b, 0x0b, 0x54, 0x75, 0x2b, - 0x51, 0x08, 0x9d, 0x5e, 0xa2, 0x10, 0xfa, 0xc3, 0xb8, 0x98, 0x55, 0x1d, 0x14, 0xaf, 0x2c, 0x3c, - 0x7d, 0x28, 0xf5, 0x49, 0xdb, 0xe0, 0x5d, 0x91, 0xa8, 0x6c, 0x7d, 0x53, 0x3b, 0x5e, 0xd9, 0x65, - 0x6c, 0x55, 0x95, 0x25, 0xf0, 0xce, 0x6c, 0x05, 0xc5, 0x72, 0x29, 0x88, 0x73, 0xe6, 0x24, 0xbc, - 0xb4, 0x39, 0xf9, 0xed, 0x19, 0x1f, 0xa7, 0xb8, 0x30, 0x14, 0x76, 0x45, 0x7d, 0xe8, 0xb7, 0xa1, - 0x30, 0xb4, 0x03, 0xe9, 0xf9, 0xaa, 0x66, 0x79, 0xbe, 0xc6, 0x2a, 0x31, 0x5b, 0xbb, 0x0a, 0x91, - 0xf2, 0xc5, 0x42, 0x2a, 0xfe, 0x3d, 0xd8, 0xa0, 0x89, 0x3f, 0x8c, 0xad, 0x86, 0xa0, 0x5a, 0x5e, - 0x98, 0xa7, 0x97, 0x60, 0xb5, 0x35, 0x43, 0x62, 0xcc, 0x33, 0xa9, 0x0d, 0x00, 0xe2, 0xf5, 0x99, - 0xd3, 0x62, 0x9f, 0xa1, 0x66, 0xf9, 0x26, 0xe4, 0x83, 0xc9, 0x71, 0x7c, 0xd7, 0xa5, 0x5b, 0xb5, - 0x73, 0xa8, 0xcd, 0x59, 0x07, 0x87, 0xc2, 0x57, 0xdd, 0xbd, 0xb2, 0x70, 0xfa, 0xc3, 0xe4, 0xc2, - 0x2b, 0xe1, 0xbc, 0x7b, 0xc9, 0xea, 0x45, 0x9c, 0x13, 0x12, 0x50, 0x7b, 0x07, 0xca, 0x89, 0x49, - 0x45, 0xcd, 0x3c, 0x71, 0x2d, 0x2f, 0x0c, 0xbf, 0xe2, 0xb3, 0x2a, 0x1c, 0xb3, 0xc2, 0x00, 0x2c, - 0x3d, 0xd7, 0x0c, 0x60, 0xb3, 0x13, 0x78, 0x85, 0x1f, 0xfc, 0x0a, 0x54, 0x12, 0x26, 0x5d, 0x14, - 0x9a, 0x9b, 0x06, 0xd6, 0xcf, 0xe0, 0xf3, 0x09, 0x76, 0x87, 0xc2, 0x1f, 0xd9, 0x01, 0x1e, 0x24, - 0xca, 0xa5, 0xa3, 0x50, 0x86, 0x25, 0x5c, 0x69, 0xcb, 0x50, 0x83, 0x46, 0x6d, 0xfe, 0x4d, 0xc8, - 0x8d, 0x85, 0x3f, 0x0a, 0xb4, 0x16, 0x9d, 0x95, 0xa0, 0x85, 0x6c, 0x03, 0x43, 0xd1, 0xd4, 0xff, - 0x7e, 0x0a, 0x8a, 0xfb, 0x42, 0x9a, 0x68, 0x3b, 0xf0, 0xfd, 0x99, 0xaf, 0xcc, 0xdf, 0xcf, 0x86, - 0xa8, 0x9b, 0xda, 0xc9, 0xdc, 0x6c, 0x6b, 0x7c, 0xdd, 0xde, 0x5d, 0x89, 0x3b, 0x56, 0xdb, 0x82, - 0x82, 0x06, 0xd7, 0xde, 0x85, 0xf5, 0x19, 0x4c, 0x9a, 0x17, 0x65, 0xdb, 0x77, 0x2f, 0x46, 0x61, - 0x12, 0xd1, 0xaa, 0x31, 0x0d, 0xdc, 0x2a, 0x41, 0x61, 0xac, 0x08, 0xea, 0xbf, 0x7f, 0x83, 0x52, - 0x57, 0xec, 0x13, 0xf4, 0xbc, 0x17, 0x9d, 0xac, 0x77, 0x00, 0xe8, 0x68, 0x56, 0x09, 0x0e, 0x2a, - 0x5c, 0x9a, 0x80, 0xf0, 0xf7, 0xa3, 0x38, 0x77, 0x76, 0xa1, 0x51, 0x95, 0x64, 0x3e, 0x1b, 0xec, - 0xae, 0x42, 0xc1, 0x0e, 0x28, 0x5a, 0xa6, 0x93, 0x82, 0xc2, 0x26, 0xff, 0x16, 0xe4, 0xed, 0xd1, - 0xd8, 0xf3, 0xa5, 0x0e, 0x84, 0x5f, 0xc9, 0xb5, 0x4d, 0x98, 0xbb, 0x2b, 0x86, 0xa6, 0x41, 0x6a, - 0x71, 0x4e, 0xd4, 0xc5, 0x17, 0x53, 0xb7, 0xce, 0x43, 0x6a, 0x45, 0xc3, 0xbf, 0x0b, 0x95, 0x81, - 0xca, 0x89, 0x54, 0x8c, 0xb5, 0x12, 0xf9, 0xca, 0x55, 0x4c, 0x1e, 0x25, 0x09, 0x76, 0x57, 0x8c, - 0x69, 0x0e, 0xc8, 0x12, 0x0d, 0x78, 0x11, 0xc8, 0x9e, 0xf7, 0x91, 0x67, 0xbb, 0xe4, 0x94, 0xbe, - 0x80, 0xa5, 0x91, 0x24, 0x40, 0x96, 0x53, 0x1c, 0xf8, 0xd7, 0xd1, 0xe2, 0x09, 0xa4, 0x2e, 0x1b, - 0xbf, 0x7b, 0x15, 0xa7, 0x9e, 0x08, 0x74, 0xc1, 0x77, 0x20, 0xf9, 0x39, 0xd4, 0x12, 0x9b, 0x44, - 0x7f, 0xa4, 0x31, 0x1e, 0xfb, 0x1e, 0x7a, 0xb6, 0x15, 0xe2, 0xf6, 0xf5, 0xab, 0xb8, 0x1d, 0x5e, - 0x4a, 0xbd, 0xbb, 0x62, 0x5c, 0xc1, 0x9b, 0xf7, 0xd0, 0xb3, 0xd3, 0x43, 0xd8, 0x13, 0xe6, 0x59, - 0x58, 0x74, 0x7e, 0x7f, 0xa9, 0x59, 0x20, 0x8a, 0xdd, 0x15, 0x63, 0x86, 0x07, 0xff, 0x65, 0xd8, - 0x98, 0xfa, 0x26, 0xd5, 0x99, 0xaa, 0x92, 0xf4, 0xaf, 0x2d, 0x3d, 0x0c, 0x24, 0xda, 0x5d, 0x31, - 0xe6, 0x39, 0xf1, 0x09, 0x7c, 0x6e, 0x7e, 0x48, 0xdb, 0xa2, 0xef, 0xd8, 0xae, 0xd0, 0xd5, 0xeb, - 0xef, 0xbc, 0xdc, 0x6c, 0x69, 0xe2, 0xdd, 0x15, 0xe3, 0x72, 0xce, 0xfc, 0xcf, 0xc3, 0xed, 0xf1, - 0x42, 0x15, 0xa3, 0x54, 0x97, 0x2e, 0x7e, 0x7f, 0x6f, 0xc9, 0x2f, 0xcf, 0xd1, 0xef, 0xae, 0x18, - 0x57, 0xf2, 0x47, 0xdb, 0x99, 0x3c, 0x68, 0x9d, 0xba, 0xad, 0x1a, 0xfc, 0x36, 0x94, 0xcc, 0xbe, - 0xb3, 0x2b, 0x4c, 0x2b, 0x8a, 0xd5, 0xc7, 0x80, 0xda, 0xff, 0x48, 0x41, 0x5e, 0xcb, 0xfb, 0xed, - 0xe8, 0x3e, 0x3e, 0x52, 0xdd, 0x31, 0x80, 0x7f, 0x00, 0x25, 0xe1, 0xfb, 0x9e, 0xdf, 0xf4, 0xac, - 0x30, 0x95, 0x71, 0x36, 0x16, 0xac, 0xf8, 0x6c, 0xb6, 0x42, 0x34, 0x23, 0xa6, 0xe0, 0xef, 0x03, - 0xa8, 0x7d, 0xde, 0x8b, 0x2b, 0x70, 0x6a, 0x8b, 0xe9, 0xd5, 0xf5, 0x4f, 0x8c, 0x1d, 0x07, 0xcf, - 0xc2, 0xbb, 0x97, 0xb0, 0x19, 0x39, 0x9c, 0xb9, 0x84, 0xc3, 0x79, 0x5b, 0xc7, 0x11, 0x0e, 0xf0, - 0x85, 0xae, 0x43, 0x8b, 0x00, 0xb5, 0x7f, 0x95, 0x82, 0xbc, 0x52, 0x1e, 0xbc, 0x35, 0x3f, 0xa2, - 0xd7, 0x5e, 0xac, 0x73, 0x36, 0x67, 0x47, 0xf6, 0x2d, 0x00, 0xa5, 0x83, 0x12, 0x23, 0xbb, 0x3d, - 0xc3, 0x47, 0x93, 0x86, 0xc9, 0xc3, 0x31, 0x7e, 0xfd, 0xa1, 0xaa, 0x95, 0xa2, 0xc0, 0xed, 0x93, - 0xbd, 0x3d, 0xb6, 0xc2, 0x37, 0xa0, 0xf2, 0xe4, 0xe0, 0xf1, 0x41, 0xe7, 0xd9, 0xc1, 0x51, 0xcb, - 0x30, 0x3a, 0x86, 0x8a, 0xdf, 0x6e, 0x35, 0xb6, 0x8f, 0xda, 0x07, 0x87, 0x4f, 0x7a, 0x2c, 0x5d, - 0xfb, 0xa7, 0x29, 0xa8, 0x4c, 0xe9, 0xae, 0x3f, 0xd9, 0xa5, 0x4b, 0x4c, 0x7f, 0x66, 0xf1, 0xf4, - 0x67, 0x2f, 0x9b, 0xfe, 0xdc, 0xec, 0xf4, 0xff, 0x76, 0x0a, 0x2a, 0x53, 0x3a, 0x32, 0xc9, 0x3d, - 0x35, 0xcd, 0x3d, 0x79, 0xd2, 0xa7, 0x67, 0x4e, 0xfa, 0x3a, 0xac, 0x86, 0xcf, 0x07, 0x71, 0xc4, - 0x61, 0x0a, 0x96, 0xc4, 0xa1, 0x62, 0x85, 0xec, 0x34, 0x0e, 0x15, 0x2c, 0x5c, 0xdd, 0x5b, 0x2a, - 0xce, 0x0c, 0xa8, 0x76, 0xbd, 0x76, 0xb9, 0x06, 0xbd, 0x62, 0x08, 0x8f, 0xa0, 0x3c, 0x8e, 0xb7, - 0xe9, 0xcb, 0x99, 0x25, 0x49, 0xca, 0x17, 0xf4, 0xf3, 0x77, 0x52, 0xb0, 0x36, 0xad, 0x73, 0xff, - 0xbf, 0x9e, 0xd6, 0x7f, 0x98, 0x82, 0x8d, 0x39, 0x4d, 0x7e, 0xa5, 0x61, 0x37, 0xdb, 0xaf, 0xf4, - 0x12, 0xfd, 0xca, 0x2c, 0xe8, 0xd7, 0xe5, 0x9a, 0xe4, 0xea, 0x1e, 0x77, 0xe1, 0x73, 0x97, 0x9e, - 0x09, 0x57, 0x4c, 0xf5, 0x14, 0xd3, 0xcc, 0x2c, 0xd3, 0xdf, 0x4a, 0xc1, 0xed, 0xab, 0xf4, 0xfd, - 0xff, 0x73, 0xb9, 0x9a, 0xed, 0x61, 0xfd, 0xdd, 0xe8, 0x12, 0xbf, 0x0c, 0x05, 0xfd, 0x9b, 0x50, - 0x3a, 0x4d, 0x7a, 0xe8, 0x3d, 0x77, 0x55, 0x24, 0xda, 0x10, 0xa6, 0xae, 0x9a, 0x37, 0xc4, 0xd8, - 0xb1, 0xe9, 0x26, 0xf3, 0x16, 0x40, 0x83, 0xfc, 0xba, 0xb0, 0x88, 0xa5, 0xb9, 0xd7, 0xe9, 0xb6, - 0xd8, 0x4a, 0xd2, 0x88, 0xfd, 0x24, 0x54, 0xc4, 0xf5, 0x43, 0xc8, 0xc7, 0x65, 0x05, 0xfb, 0xa6, - 0x7f, 0x6a, 0xa9, 0xfb, 0xc2, 0x55, 0x28, 0x1e, 0x6a, 0x17, 0x4a, 0x7d, 0xea, 0xa3, 0x6e, 0xe7, - 0x40, 0x05, 0xbd, 0xb7, 0x3b, 0x3d, 0x55, 0x9c, 0xd0, 0x7d, 0xfa, 0x48, 0x5d, 0x5c, 0x3d, 0x32, - 0x1a, 0x87, 0xbb, 0x47, 0x84, 0x91, 0xab, 0xff, 0x66, 0x36, 0x3c, 0xd5, 0xea, 0x86, 0xbe, 0x89, - 0x04, 0xc8, 0xa3, 0x36, 0xf7, 0x34, 0xe3, 0xe8, 0x33, 0x94, 0x50, 0xdb, 0x3a, 0x57, 0x71, 0x08, - 0x96, 0xe6, 0x79, 0x48, 0x1f, 0x1e, 0xab, 0x2c, 0xa0, 0x5d, 0x39, 0x72, 0x54, 0x55, 0x63, 0xef, - 0x5c, 0xb2, 0x1c, 0x3e, 0x34, 0x83, 0x33, 0x96, 0xaf, 0xff, 0xb3, 0x0c, 0x94, 0x22, 0x55, 0xf9, - 0x32, 0xaa, 0x9b, 0x73, 0x58, 0x6b, 0x1f, 0xf4, 0x5a, 0xc6, 0x41, 0x63, 0x4f, 0xa3, 0x64, 0xf8, - 0x35, 0x58, 0xdf, 0x69, 0xef, 0xb5, 0x8e, 0xf6, 0x3a, 0x8d, 0x6d, 0x0d, 0x2c, 0xf2, 0x9b, 0xc0, - 0xdb, 0xfb, 0x87, 0x1d, 0xa3, 0x77, 0xd4, 0xee, 0x1e, 0x35, 0x1b, 0x07, 0xcd, 0xd6, 0x5e, 0x6b, - 0x9b, 0xe5, 0xf9, 0x2b, 0x70, 0xf7, 0xa0, 0xd3, 0x6b, 0x77, 0x0e, 0x8e, 0x0e, 0x3a, 0x47, 0x9d, - 0xad, 0x8f, 0x5a, 0xcd, 0x5e, 0xf7, 0xa8, 0x7d, 0x70, 0x84, 0x5c, 0x1f, 0x19, 0x0d, 0x7c, 0xc3, - 0x72, 0xfc, 0x2e, 0xdc, 0xd6, 0x58, 0xdd, 0x96, 0xf1, 0xb4, 0x65, 0x20, 0x93, 0x27, 0x07, 0x8d, - 0xa7, 0x8d, 0xf6, 0x5e, 0x63, 0x6b, 0xaf, 0xc5, 0x56, 0xf9, 0x1d, 0xa8, 0x69, 0x0c, 0xa3, 0xd1, - 0x6b, 0x1d, 0xed, 0xb5, 0xf7, 0xdb, 0xbd, 0xa3, 0xd6, 0xf7, 0x9a, 0xad, 0xd6, 0x76, 0x6b, 0x9b, - 0x55, 0xf8, 0x57, 0xe0, 0xcb, 0xd4, 0x29, 0xdd, 0x89, 0xe9, 0x8f, 0x7d, 0xd2, 0x3e, 0x3c, 0x6a, - 0x18, 0xcd, 0xdd, 0xf6, 0xd3, 0x16, 0x5b, 0xe3, 0xaf, 0xc1, 0x97, 0x2e, 0x47, 0xdd, 0x6e, 0x1b, - 0xad, 0x66, 0xaf, 0x63, 0x7c, 0xcc, 0x36, 0xf8, 0x17, 0xe0, 0x73, 0xbb, 0xbd, 0xfd, 0xbd, 0xa3, - 0x67, 0x46, 0xe7, 0xe0, 0xd1, 0x11, 0x3d, 0x76, 0x7b, 0xc6, 0x93, 0x66, 0xef, 0x89, 0xd1, 0x62, - 0xc0, 0x6b, 0x70, 0xf3, 0x70, 0xeb, 0xe8, 0xa0, 0xd3, 0x3b, 0x6a, 0x1c, 0x7c, 0xbc, 0xb5, 0xd7, - 0x69, 0x3e, 0x3e, 0xda, 0xe9, 0x18, 0xfb, 0x8d, 0x1e, 0x2b, 0xf3, 0xaf, 0xc2, 0x6b, 0xcd, 0xee, - 0x53, 0xdd, 0xcd, 0xce, 0xce, 0x91, 0xd1, 0x79, 0xd6, 0x3d, 0xea, 0x18, 0x47, 0x46, 0x6b, 0x8f, - 0xc6, 0xdc, 0x8d, 0xfb, 0x5e, 0xe0, 0xb7, 0xa1, 0xda, 0x3e, 0xe8, 0x3e, 0xd9, 0xd9, 0x69, 0x37, - 0xdb, 0xad, 0x83, 0xde, 0xd1, 0x61, 0xcb, 0xd8, 0x6f, 0x77, 0xbb, 0x88, 0xc6, 0x4a, 0xf5, 0xef, - 0x40, 0xbe, 0xed, 0x9e, 0xd9, 0x92, 0xf6, 0x97, 0x16, 0x46, 0xed, 0x71, 0x85, 0x4d, 0xda, 0x16, - 0xf6, 0xc0, 0xa5, 0x6a, 0x7d, 0xda, 0x5d, 0xab, 0x46, 0x0c, 0xa8, 0xff, 0xa3, 0x34, 0x54, 0x14, - 0x8b, 0xd0, 0x83, 0xbb, 0x07, 0xeb, 0x3a, 0x14, 0xda, 0x9e, 0x56, 0x61, 0xb3, 0x60, 0xfa, 0x19, - 0x2c, 0x05, 0x4a, 0x28, 0xb2, 0x24, 0x88, 0xae, 0xd7, 0x88, 0x39, 0x7a, 0x82, 0xea, 0x62, 0x31, - 0x06, 0x7c, 0x56, 0x0d, 0x86, 0xda, 0x51, 0x21, 0xf6, 0x3d, 0xb7, 0x19, 0x95, 0x6d, 0x4c, 0xc1, - 0xf8, 0x27, 0x70, 0x2b, 0x6a, 0xb7, 0xdc, 0xbe, 0x7f, 0x31, 0x8e, 0x7e, 0xad, 0xae, 0xb0, 0x30, - 0xa4, 0xb0, 0x63, 0x3b, 0x62, 0x0a, 0xd1, 0xb8, 0x8c, 0x41, 0xfd, 0x0f, 0x52, 0x09, 0xbf, 0x57, - 0xf9, 0xb5, 0x57, 0x6a, 0xfc, 0x45, 0x77, 0x30, 0xe8, 0x79, 0xea, 0xee, 0x6b, 0x43, 0x44, 0x37, - 0xf9, 0x21, 0x70, 0x7b, 0xbe, 0xd3, 0xd9, 0x25, 0x3b, 0xbd, 0x80, 0x76, 0x36, 0x84, 0x9e, 0x9b, - 0x0f, 0xa1, 0xdf, 0x01, 0x18, 0x38, 0xde, 0xb1, 0xe9, 0x24, 0x0c, 0xcd, 0x04, 0xa4, 0xee, 0x40, - 0x31, 0xfc, 0x4d, 0x3c, 0x7e, 0x13, 0xf2, 0xf4, 0xab, 0x78, 0x51, 0x40, 0x51, 0xb5, 0xf8, 0x2e, - 0xac, 0x89, 0xe9, 0x3e, 0xa7, 0x97, 0xec, 0xf3, 0x0c, 0x5d, 0xfd, 0x1b, 0xb0, 0x31, 0x87, 0x84, - 0x93, 0x38, 0x36, 0x65, 0x54, 0x18, 0x8f, 0xcf, 0xf3, 0x97, 0xd8, 0xf5, 0xff, 0x98, 0x86, 0xd5, - 0x7d, 0xd3, 0xb5, 0x4f, 0x44, 0x20, 0xc3, 0xde, 0x06, 0xfd, 0xa1, 0x18, 0x99, 0x61, 0x6f, 0x55, - 0x4b, 0x47, 0x19, 0xd2, 0xc9, 0xf8, 0xfd, 0xdc, 0x75, 0xcf, 0x4d, 0xc8, 0x9b, 0x13, 0x39, 0x8c, - 0x72, 0xc5, 0x75, 0x0b, 0xd7, 0xce, 0xb1, 0xfb, 0xc2, 0x0d, 0x42, 0xd9, 0x0c, 0x9b, 0x71, 0x4e, - 0x4b, 0xfe, 0x8a, 0x9c, 0x96, 0xc2, 0xfc, 0xfc, 0xdf, 0x85, 0x72, 0xd0, 0xf7, 0x85, 0x70, 0x83, - 0xa1, 0x27, 0xc3, 0xdf, 0x53, 0x4c, 0x82, 0x28, 0x6d, 0xcc, 0x7b, 0xee, 0xe2, 0x0e, 0xdd, 0xb3, - 0xdd, 0x53, 0x9d, 0x0d, 0x35, 0x05, 0x43, 0x19, 0xa4, 0x18, 0x8b, 0xfd, 0x43, 0x41, 0xfe, 0x7d, - 0xce, 0x88, 0xda, 0x14, 0x45, 0x31, 0xa5, 0x18, 0x78, 0xbe, 0x2d, 0x54, 0x28, 0xb1, 0x64, 0x24, - 0x20, 0x48, 0xeb, 0x98, 0xee, 0x60, 0x62, 0x0e, 0x84, 0xbe, 0x14, 0x8e, 0xda, 0xf5, 0xff, 0x99, - 0x03, 0xd8, 0x17, 0xa3, 0x63, 0xe1, 0x07, 0x43, 0x7b, 0x4c, 0x57, 0x1d, 0xb6, 0xce, 0x90, 0xad, - 0x18, 0xf4, 0xcc, 0xdf, 0x9b, 0x4a, 0x5e, 0x9f, 0xbf, 0x9c, 0x8c, 0xc9, 0x67, 0x43, 0x30, 0x38, - 0x39, 0xa6, 0x14, 0x3a, 0x9d, 0x88, 0xe6, 0x3f, 0x6b, 0x24, 0x41, 0x94, 0x26, 0x66, 0x4a, 0xd1, - 0x72, 0x2d, 0x15, 0xe2, 0xc9, 0x1a, 0x51, 0x9b, 0xca, 0x5f, 0x82, 0xc6, 0x44, 0x7a, 0x86, 0x70, - 0xc5, 0xf3, 0xa8, 0xb2, 0x2b, 0x06, 0xf1, 0x7d, 0xa8, 0x8c, 0xcd, 0x8b, 0x91, 0x70, 0xe5, 0xbe, - 0x90, 0x43, 0xcf, 0xd2, 0xb9, 0x3f, 0xaf, 0x5d, 0xde, 0xc1, 0xc3, 0x24, 0xba, 0x31, 0x4d, 0x8d, - 0x32, 0xe1, 0x06, 0xb4, 0x4b, 0xd4, 0x32, 0xea, 0x16, 0xdf, 0x02, 0x50, 0x4f, 0xe4, 0x39, 0x15, - 0x17, 0x47, 0xa2, 0xcc, 0x91, 0x08, 0x84, 0x7f, 0x66, 0x2b, 0x3d, 0xa6, 0x7c, 0xc3, 0x98, 0x0a, - 0xb5, 0xde, 0x24, 0x10, 0x7e, 0x6b, 0x64, 0xda, 0x8e, 0x5e, 0xe0, 0x18, 0xc0, 0xdf, 0x86, 0x1b, - 0xc1, 0xe4, 0x18, 0x65, 0xe6, 0x58, 0xf4, 0xbc, 0x03, 0xf1, 0x3c, 0x70, 0x84, 0x94, 0xc2, 0xd7, - 0xf9, 0x05, 0x8b, 0x5f, 0xd6, 0x07, 0x91, 0xd9, 0x43, 0xbf, 0xdd, 0x81, 0x4f, 0x71, 0x12, 0x53, - 0x04, 0xd2, 0x19, 0x5e, 0x2c, 0xc5, 0x19, 0xac, 0x2a, 0x90, 0x4e, 0x00, 0x4b, 0xf3, 0x2f, 0xc3, - 0x17, 0xa7, 0x90, 0x0c, 0x75, 0x11, 0x1c, 0xec, 0xd8, 0xae, 0xe9, 0xd8, 0x3f, 0x54, 0xd7, 0xf2, - 0x99, 0xfa, 0x18, 0x2a, 0x53, 0x13, 0x47, 0xa5, 0x88, 0xf4, 0xa4, 0xb3, 0x60, 0x18, 0xac, 0xaa, - 0x76, 0x57, 0xfa, 0x36, 0xdd, 0x70, 0x44, 0x90, 0x26, 0xee, 0x73, 0x8f, 0xa5, 0xf9, 0x75, 0x60, - 0x0a, 0xd2, 0x76, 0xcd, 0xf1, 0xb8, 0x31, 0x1e, 0x3b, 0x82, 0x65, 0xa8, 0xcc, 0x33, 0x86, 0xaa, - 0x14, 0x76, 0x96, 0xad, 0x7f, 0x0f, 0x6e, 0xd1, 0xcc, 0x3c, 0x15, 0x7e, 0xe4, 0xd8, 0xea, 0xb1, - 0xde, 0x80, 0x0d, 0xf5, 0x74, 0xe0, 0x49, 0xf5, 0x9a, 0x8c, 0x3d, 0x0e, 0x6b, 0x0a, 0x8c, 0xb6, - 0x4e, 0x57, 0x50, 0xf1, 0x66, 0x04, 0x8b, 0xf0, 0xd2, 0xf5, 0x9f, 0xe6, 0x81, 0xc7, 0x02, 0xd1, - 0xb3, 0x85, 0xbf, 0x6d, 0x4a, 0x33, 0x11, 0x99, 0xac, 0x5c, 0x7a, 0xb7, 0xfe, 0xe2, 0xfc, 0xb5, - 0x9b, 0x90, 0xb7, 0x03, 0x74, 0xc5, 0x74, 0x6a, 0xaa, 0x6e, 0xf1, 0x3d, 0x80, 0xb1, 0xf0, 0x6d, - 0xcf, 0x22, 0x09, 0xca, 0x2d, 0xac, 0x21, 0x98, 0xef, 0xd4, 0xe6, 0x61, 0x44, 0x63, 0x24, 0xe8, - 0xb1, 0x1f, 0xaa, 0xa5, 0x6e, 0xaa, 0xf3, 0xd4, 0xe9, 0x24, 0x88, 0xbf, 0x01, 0xd7, 0xc6, 0xbe, - 0xdd, 0x17, 0x6a, 0x39, 0x9e, 0x04, 0x56, 0x93, 0x7e, 0xf1, 0xae, 0x40, 0x98, 0x8b, 0x5e, 0xa1, - 0x04, 0x9a, 0x2e, 0x39, 0x28, 0x01, 0xdd, 0xcd, 0xea, 0x72, 0x67, 0x95, 0xbc, 0x59, 0x31, 0x16, - 0xbf, 0xe4, 0xf7, 0x81, 0xe9, 0x17, 0xfb, 0xb6, 0xbb, 0x27, 0xdc, 0x81, 0x1c, 0x92, 0x70, 0x57, - 0x8c, 0x39, 0x38, 0x69, 0x30, 0xf5, 0xbb, 0x42, 0xea, 0xde, 0xa6, 0x64, 0x44, 0x6d, 0x55, 0x42, - 0xef, 0x78, 0x7e, 0x57, 0xfa, 0x3a, 0x0b, 0x35, 0x6a, 0xa3, 0xcd, 0x12, 0x50, 0x5f, 0x0f, 0x7d, - 0xcf, 0x9a, 0xd0, 0xad, 0x82, 0x52, 0x62, 0xb3, 0xe0, 0x18, 0x73, 0xdf, 0x74, 0x75, 0x12, 0x61, - 0x25, 0x89, 0x19, 0x81, 0xc9, 0x07, 0xf3, 0x82, 0x98, 0xe1, 0xba, 0xf6, 0xc1, 0x12, 0x30, 0x8d, - 0x13, 0xb3, 0x62, 0x11, 0x4e, 0xcc, 0x87, 0xc6, 0x6f, 0xf9, 0x9e, 0x6d, 0xc5, 0xbc, 0x36, 0x54, - 0x7e, 0xe8, 0x2c, 0x3c, 0x81, 0x1b, 0xf3, 0xe4, 0x53, 0xb8, 0x11, 0xbc, 0xfe, 0xa3, 0x14, 0x40, - 0xbc, 0xf8, 0x28, 0xf2, 0x71, 0x2b, 0xde, 0xe2, 0xb7, 0xe0, 0x5a, 0x12, 0xec, 0xe8, 0x44, 0x50, - 0x92, 0xfb, 0xf8, 0xc5, 0xb6, 0x79, 0x11, 0xb0, 0xb4, 0x2e, 0x38, 0xd6, 0xb0, 0x67, 0x42, 0x50, - 0x56, 0xdd, 0x75, 0x60, 0x31, 0x90, 0xaa, 0xc8, 0x02, 0x96, 0x9d, 0x46, 0xfd, 0x58, 0x98, 0x7e, - 0xc0, 0x72, 0xf5, 0x5d, 0xc8, 0xab, 0xcb, 0xa5, 0x05, 0xd7, 0xc2, 0x2f, 0x97, 0xe3, 0xf1, 0x57, - 0x53, 0x00, 0xdb, 0x2a, 0x17, 0x18, 0x4f, 0xf1, 0x05, 0xb7, 0xed, 0x8b, 0x2c, 0x2a, 0xd3, 0xb2, - 0x28, 0xa7, 0x3a, 0x13, 0xfd, 0x5a, 0x0d, 0x36, 0x51, 0x72, 0xcc, 0x30, 0x73, 0x4a, 0xed, 0xb9, - 0xa8, 0xad, 0x0e, 0x90, 0xa6, 0xe7, 0xba, 0xa2, 0x8f, 0xc7, 0x4f, 0x74, 0x80, 0x44, 0xa0, 0xfa, - 0xbf, 0x29, 0x40, 0xb9, 0x39, 0x34, 0xe5, 0xbe, 0x08, 0x02, 0x73, 0x20, 0xe6, 0xfa, 0x52, 0x85, - 0x82, 0xe7, 0x5b, 0xc2, 0x8f, 0x2b, 0xc1, 0x74, 0x33, 0x99, 0x63, 0x90, 0x99, 0xce, 0x31, 0xb8, - 0x0d, 0x25, 0x75, 0x83, 0x61, 0x35, 0x94, 0x1a, 0xc8, 0x18, 0x31, 0x00, 0xcf, 0xea, 0x91, 0x67, - 0x91, 0x32, 0x6a, 0xa8, 0xe0, 0x7f, 0xc6, 0x48, 0x40, 0x54, 0x4a, 0xc7, 0xd8, 0xb9, 0xe8, 0x79, - 0xba, 0x4f, 0x6d, 0x2b, 0x2e, 0x9b, 0x9d, 0x86, 0xf3, 0x26, 0x14, 0x46, 0xaa, 0xa1, 0x2f, 0x32, - 0x66, 0x43, 0xfe, 0x89, 0xa1, 0x6d, 0xea, 0xbf, 0xba, 0x72, 0xc5, 0x08, 0x29, 0xd1, 0x45, 0x37, - 0xa5, 0x34, 0xfb, 0xc3, 0x91, 0x56, 0x11, 0x99, 0x05, 0x77, 0x9a, 0x49, 0x46, 0x8d, 0x08, 0xdb, - 0x48, 0x52, 0xf2, 0x2d, 0x28, 0xf9, 0xc2, 0x9c, 0xba, 0x56, 0x7d, 0xe5, 0x0a, 0x36, 0x46, 0x88, - 0x6b, 0xc4, 0x64, 0xb5, 0x9f, 0xa4, 0x60, 0x6d, 0xba, 0xa3, 0x7f, 0x12, 0x3f, 0x38, 0xf6, 0xad, - 0xf8, 0x07, 0xc7, 0x3e, 0xc3, 0x8f, 0x77, 0xfd, 0x56, 0x0a, 0x20, 0x9e, 0x03, 0x54, 0xf9, 0xea, - 0x87, 0x91, 0x42, 0x23, 0x54, 0xb5, 0xf8, 0xee, 0x54, 0x35, 0xfd, 0xdb, 0x4b, 0x4d, 0x68, 0xe2, - 0x31, 0x91, 0xa3, 0xfc, 0x00, 0xd6, 0xa6, 0xe1, 0x94, 0xdb, 0xdd, 0xde, 0x6b, 0xa9, 0x10, 0x47, - 0x7b, 0xbf, 0xf1, 0xa8, 0xa5, 0x2b, 0x85, 0xda, 0x07, 0x8f, 0x59, 0xba, 0xf6, 0x87, 0x29, 0x28, - 0x45, 0xd3, 0xcb, 0xbf, 0x9b, 0x5c, 0x17, 0x95, 0x27, 0xf1, 0xd6, 0x32, 0xeb, 0x12, 0x3f, 0xb5, - 0x5c, 0xe9, 0x5f, 0x24, 0x97, 0xc9, 0x83, 0xb5, 0xe9, 0x97, 0x0b, 0x74, 0xc2, 0xa3, 0x69, 0x9d, - 0xf0, 0xe6, 0x52, 0x9f, 0x0c, 0x3d, 0xaf, 0x3d, 0x3b, 0x90, 0x5a, 0x5d, 0xbc, 0x9f, 0x7e, 0x2f, - 0x55, 0xbb, 0x0b, 0xab, 0xc9, 0x57, 0xf3, 0xe5, 0x80, 0xf7, 0xff, 0x30, 0x03, 0x6b, 0xd3, 0xa9, - 0x06, 0x54, 0x7c, 0xa4, 0xd2, 0x5c, 0x3a, 0x8e, 0x95, 0x48, 0xeb, 0x66, 0x7c, 0x1d, 0xca, 0xda, - 0xb7, 0x23, 0xc0, 0x06, 0x05, 0x51, 0xbc, 0x91, 0x60, 0x77, 0x93, 0x3f, 0xaa, 0xf8, 0x06, 0x87, - 0xb0, 0x2c, 0x8c, 0x8d, 0x79, 0x49, 0xff, 0xbc, 0xd4, 0xaf, 0xa4, 0x79, 0x25, 0x91, 0x5c, 0xfc, - 0x63, 0x34, 0x6c, 0xd6, 0xb7, 0x26, 0xae, 0xe5, 0x08, 0x2b, 0x82, 0xfe, 0x24, 0x09, 0x8d, 0xb2, - 0x83, 0x7f, 0x25, 0xcb, 0xd7, 0xa0, 0xd4, 0x9d, 0x1c, 0xeb, 0xcc, 0xe0, 0xbf, 0x90, 0xe5, 0x37, - 0x61, 0x43, 0x63, 0xc5, 0x29, 0x7e, 0xec, 0x2f, 0xa2, 0x0a, 0x5e, 0x6b, 0xa8, 0xf9, 0xd2, 0x1d, - 0x65, 0x7f, 0x29, 0x8b, 0x5d, 0xa0, 0x6a, 0xe3, 0xbf, 0x4c, 0x7c, 0xa2, 0xda, 0x0c, 0xf6, 0xab, - 0x59, 0xbe, 0x0e, 0xd0, 0xed, 0x45, 0x1f, 0xfa, 0xf5, 0x2c, 0x2f, 0x43, 0xbe, 0xdb, 0x23, 0x6e, - 0x3f, 0xca, 0xf2, 0x1b, 0xc0, 0xe2, 0xb7, 0x3a, 0xf1, 0xf1, 0xaf, 0xa9, 0xce, 0x44, 0x99, 0x8c, - 0x7f, 0x3d, 0x8b, 0xe3, 0x0a, 0x67, 0x99, 0xfd, 0x8d, 0x2c, 0x67, 0x50, 0x4e, 0x84, 0xe6, 0xd8, - 0xdf, 0xcc, 0x72, 0x0e, 0x95, 0x7d, 0x3b, 0x08, 0x6c, 0x77, 0xa0, 0x47, 0xf0, 0x6b, 0xf4, 0xe5, - 0x9d, 0xa8, 0xbc, 0x84, 0xfd, 0x46, 0x96, 0xdf, 0x02, 0x9e, 0xbc, 0x8e, 0xd0, 0x2f, 0xfe, 0x16, - 0x51, 0x2b, 0xb5, 0x1f, 0x68, 0xd8, 0xdf, 0x26, 0x6a, 0x94, 0x04, 0x0d, 0xf8, 0x4d, 0x9a, 0x90, - 0x66, 0x9c, 0x2a, 0xa9, 0xe1, 0x3f, 0x26, 0xe2, 0x70, 0x31, 0x15, 0xec, 0x27, 0xd9, 0xfb, 0x3f, - 0xa5, 0x70, 0x72, 0x32, 0xe3, 0x88, 0xaf, 0x42, 0xd1, 0xf1, 0xdc, 0x81, 0x54, 0x3f, 0x66, 0x59, - 0x81, 0x52, 0x30, 0xf4, 0x7c, 0x49, 0x4d, 0xaa, 0x7f, 0x73, 0xa9, 0x12, 0x5a, 0xe5, 0x96, 0x2b, - 0x27, 0x45, 0x85, 0xe7, 0xa4, 0x39, 0x60, 0xe5, 0x28, 0xc9, 0x33, 0x1b, 0x25, 0xa2, 0x52, 0x45, - 0x76, 0x58, 0xf1, 0xca, 0xf2, 0x88, 0x3a, 0xf1, 0x1d, 0x95, 0x90, 0x2a, 0xd0, 0x40, 0x55, 0xbf, - 0x5a, 0x37, 0x1e, 0xa2, 0x1d, 0x5c, 0x52, 0x50, 0xef, 0xfb, 0xb6, 0xaa, 0xa5, 0xd4, 0xf9, 0x5d, - 0x16, 0xf6, 0x23, 0x4a, 0x61, 0x60, 0xe2, 0xfe, 0xdf, 0x49, 0xc1, 0x6a, 0x58, 0x87, 0x6c, 0x0f, - 0x6c, 0x57, 0xa5, 0xb4, 0x86, 0x3f, 0x11, 0xda, 0x77, 0xec, 0x71, 0xf8, 0x93, 0x7b, 0xeb, 0x50, - 0xb6, 0x7c, 0x73, 0xd0, 0x70, 0xad, 0x6d, 0xdf, 0x1b, 0xab, 0x6e, 0xab, 0x0b, 0x27, 0x95, 0x4a, - 0xfb, 0x5c, 0x1c, 0x23, 0xfa, 0x58, 0xf8, 0x2c, 0x4b, 0xb9, 0x63, 0x43, 0xd3, 0xb7, 0xdd, 0x41, - 0xeb, 0x5c, 0x0a, 0x37, 0x50, 0x29, 0xb5, 0x65, 0x28, 0x4c, 0x02, 0xd1, 0x37, 0x03, 0xc1, 0xf2, - 0xd8, 0x38, 0x9e, 0xd8, 0x8e, 0xb4, 0x5d, 0xf5, 0x4b, 0x77, 0x51, 0xce, 0x6c, 0x11, 0x47, 0x66, - 0x8e, 0x6d, 0x56, 0xba, 0xff, 0x7b, 0x29, 0x28, 0x93, 0x58, 0xc4, 0x21, 0xd5, 0xd8, 0xe4, 0x28, - 0x43, 0x61, 0x2f, 0xfa, 0xc9, 0xb3, 0x3c, 0xa4, 0x3b, 0xa7, 0x2a, 0xa4, 0xaa, 0xc5, 0x42, 0x95, - 0x13, 0xaa, 0x5f, 0x3f, 0xcb, 0xf2, 0xcf, 0xc1, 0x0d, 0x43, 0x8c, 0x3c, 0x29, 0x9e, 0x99, 0xb6, - 0x4c, 0x16, 0x99, 0xe4, 0xd0, 0x3b, 0x51, 0xaf, 0xc2, 0xaa, 0x92, 0x3c, 0x79, 0x27, 0xf8, 0xd9, - 0x10, 0x52, 0xc0, 0xd1, 0x13, 0x44, 0xbb, 0x2b, 0xc5, 0x08, 0xe5, 0x23, 0xcf, 0x76, 0xf1, 0x6b, - 0x54, 0xc4, 0x4a, 0x10, 0x8a, 0xcd, 0x23, 0x08, 0xee, 0x1f, 0xc0, 0xcd, 0xc5, 0x11, 0x65, 0x55, - 0xde, 0x4a, 0xbf, 0xb3, 0x4b, 0x65, 0x07, 0xcf, 0x7c, 0x5b, 0x55, 0x29, 0x96, 0x20, 0xd7, 0x79, - 0xee, 0x92, 0x58, 0x6c, 0x40, 0xe5, 0xc0, 0x4b, 0xd0, 0xb0, 0xcc, 0xfd, 0xfe, 0xd4, 0x25, 0x40, - 0x3c, 0x29, 0x61, 0x27, 0x56, 0x12, 0x25, 0x35, 0x29, 0x15, 0x5e, 0xa6, 0x7f, 0x95, 0xa0, 0x4a, - 0xff, 0x75, 0xf0, 0xdd, 0x52, 0xa5, 0xff, 0x51, 0x37, 0xb3, 0xea, 0x37, 0x90, 0xdc, 0xbe, 0x70, - 0x84, 0xc5, 0x72, 0xf7, 0xdf, 0x83, 0x75, 0x3d, 0xd4, 0xbe, 0x08, 0x82, 0xb0, 0x24, 0xe5, 0xd0, - 0xb7, 0xcf, 0xd4, 0xcf, 0x0b, 0xac, 0x42, 0xf1, 0x50, 0xf8, 0x81, 0xe7, 0xd2, 0x4f, 0x2b, 0x00, - 0xe4, 0xbb, 0x43, 0xd3, 0xc7, 0x6f, 0xdc, 0x6f, 0x42, 0x89, 0x4a, 0x54, 0x1e, 0xdb, 0xae, 0x85, - 0x23, 0xd9, 0xd2, 0x89, 0xd8, 0xf4, 0x1b, 0x36, 0x67, 0x34, 0xbe, 0xa2, 0xfa, 0xb5, 0x4f, 0x96, - 0xe6, 0x37, 0x81, 0xa3, 0xf7, 0x3c, 0x32, 0xa9, 0x60, 0xd2, 0xb9, 0x50, 0xbf, 0x0c, 0x9b, 0xb9, - 0xff, 0x6d, 0xe0, 0x2a, 0x06, 0x64, 0x89, 0x73, 0xdb, 0x1d, 0x44, 0xb5, 0xd8, 0x40, 0x3f, 0xac, - 0x60, 0x89, 0xf3, 0xb0, 0xbe, 0x28, 0x6c, 0x84, 0x3f, 0xef, 0xb0, 0xe3, 0x4d, 0x5c, 0xec, 0xc5, - 0x53, 0xb8, 0xae, 0x64, 0x06, 0xbb, 0x45, 0xd5, 0x78, 0x97, 0x3a, 0xa6, 0xaa, 0xbe, 0x48, 0x4e, - 0x82, 0x08, 0x97, 0xa5, 0xb0, 0x63, 0x91, 0x53, 0x17, 0xc3, 0xd3, 0xf7, 0xeb, 0x70, 0x6d, 0x81, - 0x67, 0x4d, 0x5a, 0x5a, 0xf9, 0x17, 0x6c, 0xe5, 0xfe, 0x87, 0xb0, 0xa1, 0xf4, 0xca, 0x81, 0xaa, - 0x97, 0x0a, 0x8f, 0xc8, 0x67, 0xed, 0x9d, 0xb6, 0x9a, 0xba, 0x66, 0x6b, 0x6f, 0xef, 0xc9, 0x5e, - 0xc3, 0x60, 0x29, 0x5a, 0xe0, 0x4e, 0xef, 0xa8, 0xd9, 0x39, 0x38, 0x68, 0x35, 0x7b, 0xad, 0x6d, - 0x96, 0xde, 0xba, 0xff, 0x6f, 0x3f, 0xbd, 0x93, 0xfa, 0xd9, 0xa7, 0x77, 0x52, 0xff, 0xf5, 0xd3, - 0x3b, 0xa9, 0x1f, 0xfd, 0xfc, 0xce, 0xca, 0xcf, 0x7e, 0x7e, 0x67, 0xe5, 0x3f, 0xff, 0xfc, 0xce, - 0xca, 0x27, 0x6c, 0xf6, 0xdf, 0x97, 0x1c, 0xe7, 0xc9, 0xa4, 0x7d, 0xeb, 0xff, 0x06, 0x00, 0x00, - 0xff, 0xff, 0xb5, 0x87, 0x64, 0x2b, 0xd9, 0x64, 0x00, 0x00, + 0xe6, 0x75, 0xdd, 0xbc, 0x37, 0x7d, 0xef, 0xc9, 0xea, 0x2a, 0x0b, 0xd0, 0xf2, 0xda, 0x65, 0x3f, + 0x90, 0x0c, 0x62, 0x81, 0x15, 0x42, 0x6b, 0x7f, 0x20, 0x21, 0x76, 0x25, 0x04, 0x92, 0x05, 0x0b, + 0xac, 0x04, 0x2b, 0x21, 0x90, 0x90, 0x90, 0xe1, 0x8b, 0x3f, 0xd0, 0x58, 0xe2, 0x07, 0xc1, 0x6a, + 0xf9, 0xb2, 0x10, 0x1f, 0x28, 0xe2, 0x9c, 0xfb, 0xc8, 0x47, 0x55, 0x67, 0xcf, 0xee, 0x22, 0xbe, + 0xea, 0x46, 0xdc, 0x88, 0xb8, 0xe7, 0x11, 0x27, 0x4e, 0x44, 0x9c, 0x38, 0x59, 0xf0, 0xca, 0xf8, + 0x74, 0xf0, 0xc0, 0xb1, 0x8f, 0x1f, 0x8c, 0x8f, 0x1f, 0x8c, 0x3c, 0x4b, 0x38, 0x0f, 0xc6, 0xbe, + 0x27, 0xbd, 0x40, 0x01, 0xc1, 0x26, 0x41, 0xbc, 0x62, 0xba, 0x17, 0xf2, 0x62, 0x2c, 0x36, 0x09, + 0x5b, 0xbb, 0x3d, 0xf0, 0xbc, 0x81, 0x23, 0x14, 0xe9, 0xf1, 0xe4, 0xe4, 0x41, 0x20, 0xfd, 0x49, + 0x5f, 0x2a, 0xe2, 0xfa, 0xcf, 0xb2, 0x70, 0xb3, 0x3b, 0x32, 0x7d, 0xb9, 0xe5, 0x78, 0xfd, 0xd3, + 0xae, 0x6b, 0x8e, 0x83, 0xa1, 0x27, 0xb7, 0xcc, 0x40, 0xf0, 0xd7, 0x21, 0x7f, 0x8c, 0xc8, 0xa0, + 0x9a, 0xba, 0x9b, 0xb9, 0x57, 0x7e, 0x78, 0x7d, 0x73, 0x4a, 0xf0, 0x26, 0x71, 0x18, 0x9a, 0x86, + 0xbf, 0x09, 0x05, 0x4b, 0x48, 0xd3, 0x76, 0x82, 0x6a, 0xfa, 0x6e, 0xea, 0x5e, 0xf9, 0xe1, 0xad, + 0x4d, 0xf5, 0xe1, 0xcd, 0xf0, 0xc3, 0x9b, 0x5d, 0xfa, 0xb0, 0x11, 0xd2, 0xf1, 0x77, 0xa1, 0x78, + 0x62, 0x3b, 0xe2, 0xb1, 0xb8, 0x08, 0xaa, 0x99, 0x2b, 0x79, 0xb6, 0xd2, 0xd5, 0x94, 0x11, 0x11, + 0xf3, 0x26, 0xac, 0x89, 0x73, 0xe9, 0x9b, 0x86, 0x70, 0x4c, 0x69, 0x7b, 0x6e, 0x50, 0xcd, 0x52, + 0x0b, 0x6f, 0xcd, 0xb4, 0x30, 0x7c, 0x4f, 0xec, 0x33, 0x2c, 0xfc, 0x2e, 0x94, 0xbd, 0xe3, 0xef, + 0x8b, 0xbe, 0xec, 0x5d, 0x8c, 0x45, 0x50, 0xcd, 0xdd, 0xcd, 0xdc, 0x2b, 0x19, 0x49, 0x14, 0xff, + 0x06, 0x94, 0xfb, 0x9e, 0xe3, 0x88, 0xbe, 0xfa, 0x46, 0xfe, 0xea, 0x6e, 0x25, 0x69, 0xf9, 0xdb, + 0x70, 0xc3, 0x17, 0x23, 0xef, 0x4c, 0x58, 0xcd, 0x08, 0x4b, 0xfd, 0x2c, 0xd2, 0x67, 0x16, 0xbf, + 0xe4, 0x0d, 0xa8, 0xf8, 0xba, 0x7d, 0x7b, 0xb6, 0x7b, 0x1a, 0x54, 0x0b, 0xd4, 0xad, 0xcf, 0x5f, + 0xd2, 0x2d, 0xa4, 0x31, 0xa6, 0x39, 0x38, 0x83, 0xcc, 0xa9, 0xb8, 0xa8, 0x96, 0xee, 0xa6, 0xee, + 0x95, 0x0c, 0x7c, 0xe4, 0xef, 0x43, 0xd5, 0xf3, 0xed, 0x81, 0xed, 0x9a, 0x4e, 0xd3, 0x17, 0xa6, + 0x14, 0x56, 0xcf, 0x1e, 0x89, 0x40, 0x9a, 0xa3, 0x71, 0x15, 0xee, 0xa6, 0xee, 0x65, 0x8c, 0x4b, + 0xdf, 0xf3, 0xb7, 0xd4, 0x0c, 0xb5, 0xdd, 0x13, 0xaf, 0x5a, 0xd6, 0xdd, 0x9f, 0x6e, 0xcb, 0x8e, + 0x7e, 0x6d, 0x44, 0x84, 0xf5, 0x5f, 0xa4, 0x21, 0xdf, 0x15, 0xa6, 0xdf, 0x1f, 0xd6, 0x7e, 0x2d, + 0x05, 0x79, 0x43, 0x04, 0x13, 0x47, 0xf2, 0x1a, 0x14, 0xd5, 0xd8, 0xb6, 0xad, 0x6a, 0x8a, 0x5a, + 0x17, 0xc1, 0x9f, 0x45, 0x77, 0x36, 0x21, 0x3b, 0x12, 0xd2, 0xac, 0x66, 0x68, 0x84, 0x6a, 0x33, + 0xad, 0x52, 0x9f, 0xdf, 0xdc, 0x17, 0xd2, 0x34, 0x88, 0xae, 0xf6, 0xf3, 0x14, 0x64, 0x11, 0xe4, + 0xb7, 0xa1, 0x34, 0xb4, 0x07, 0x43, 0xc7, 0x1e, 0x0c, 0xa5, 0x6e, 0x48, 0x8c, 0xe0, 0x1f, 0xc2, + 0x7a, 0x04, 0x18, 0xa6, 0x3b, 0x10, 0xd8, 0xa2, 0x45, 0xca, 0x4f, 0x2f, 0x8d, 0x59, 0x62, 0x5e, + 0x85, 0x02, 0xad, 0x87, 0xb6, 0x45, 0x1a, 0x5d, 0x32, 0x42, 0x10, 0xd5, 0x2d, 0x9c, 0xa9, 0xc7, + 0xe2, 0xa2, 0x9a, 0xa5, 0xb7, 0x49, 0x14, 0x6f, 0xc0, 0x7a, 0x08, 0x6e, 0xeb, 0xd1, 0xc8, 0x5d, + 0x3d, 0x1a, 0xb3, 0xf4, 0xf5, 0x4f, 0xf7, 0x20, 0x47, 0xcb, 0x92, 0xaf, 0x41, 0xda, 0x0e, 0x07, + 0x3a, 0x6d, 0x5b, 0xfc, 0x01, 0xe4, 0x4f, 0x6c, 0xe1, 0x58, 0x2f, 0x1c, 0x61, 0x4d, 0xc6, 0x5b, + 0xb0, 0xea, 0x8b, 0x40, 0xfa, 0xb6, 0xd6, 0x7e, 0xb5, 0x40, 0xbf, 0xb8, 0xc8, 0x06, 0x6c, 0x1a, + 0x09, 0x42, 0x63, 0x8a, 0x0d, 0xbb, 0xdd, 0x1f, 0xda, 0x8e, 0xe5, 0x0b, 0xb7, 0x6d, 0xa9, 0x75, + 0x5a, 0x32, 0x92, 0x28, 0x7e, 0x0f, 0xd6, 0x8f, 0xcd, 0xfe, 0xe9, 0xc0, 0xf7, 0x26, 0x2e, 0x2e, + 0x08, 0xcf, 0xa7, 0x6e, 0x97, 0x8c, 0x59, 0x34, 0x7f, 0x03, 0x72, 0xa6, 0x63, 0x0f, 0x5c, 0x5a, + 0x89, 0x6b, 0x73, 0x93, 0xae, 0xda, 0xd2, 0x40, 0x0a, 0x43, 0x11, 0xf2, 0x5d, 0xa8, 0x9c, 0x09, + 0x5f, 0xda, 0x7d, 0xd3, 0x21, 0x7c, 0xb5, 0x40, 0x9c, 0xf5, 0x85, 0x9c, 0x4f, 0x93, 0x94, 0xc6, + 0x34, 0x23, 0x6f, 0x03, 0x04, 0x68, 0x26, 0x69, 0x3a, 0xf5, 0x5a, 0x78, 0x6d, 0xa1, 0x98, 0xa6, + 0xe7, 0x4a, 0xe1, 0xca, 0xcd, 0x6e, 0x44, 0xbe, 0xbb, 0x62, 0x24, 0x98, 0xf9, 0xbb, 0x90, 0x95, + 0xe2, 0x5c, 0x56, 0xd7, 0xae, 0x18, 0xd1, 0x50, 0x48, 0x4f, 0x9c, 0xcb, 0xdd, 0x15, 0x83, 0x18, + 0x90, 0x11, 0x17, 0x59, 0x75, 0x7d, 0x09, 0x46, 0x5c, 0x97, 0xc8, 0x88, 0x0c, 0xfc, 0x03, 0xc8, + 0x3b, 0xe6, 0x85, 0x37, 0x91, 0x55, 0x46, 0xac, 0x5f, 0xba, 0x92, 0x75, 0x8f, 0x48, 0x77, 0x57, + 0x0c, 0xcd, 0xc4, 0xdf, 0x86, 0x8c, 0x65, 0x9f, 0x55, 0x37, 0x88, 0xf7, 0xee, 0x95, 0xbc, 0xdb, + 0xf6, 0xd9, 0xee, 0x8a, 0x81, 0xe4, 0xbc, 0x09, 0xc5, 0x63, 0xcf, 0x3b, 0x1d, 0x99, 0xfe, 0x69, + 0x95, 0x13, 0xeb, 0x97, 0xaf, 0x64, 0xdd, 0xd2, 0xc4, 0xbb, 0x2b, 0x46, 0xc4, 0x88, 0x5d, 0xb6, + 0xfb, 0x9e, 0x5b, 0xbd, 0xb6, 0x44, 0x97, 0xdb, 0x7d, 0xcf, 0xc5, 0x2e, 0x23, 0x03, 0x32, 0x3a, + 0xb6, 0x7b, 0x5a, 0xbd, 0xbe, 0x04, 0x23, 0x5a, 0x4e, 0x64, 0x44, 0x06, 0x6c, 0xb6, 0x65, 0x4a, + 0xf3, 0xcc, 0x16, 0xcf, 0xab, 0x37, 0x96, 0x68, 0xf6, 0xb6, 0x26, 0xc6, 0x66, 0x87, 0x8c, 0x28, + 0x24, 0x5c, 0x9a, 0xd5, 0x9b, 0x4b, 0x08, 0x09, 0x2d, 0x3a, 0x0a, 0x09, 0x19, 0xf9, 0x9f, 0x86, + 0x8d, 0x13, 0x61, 0xca, 0x89, 0x2f, 0xac, 0x78, 0xa3, 0xbb, 0x45, 0xd2, 0x36, 0xaf, 0x9e, 0xfb, + 0x59, 0xae, 0xdd, 0x15, 0x63, 0x5e, 0x14, 0x7f, 0x1f, 0x72, 0x8e, 0x29, 0xc5, 0x79, 0xb5, 0x4a, + 0x32, 0xeb, 0x2f, 0x50, 0x0a, 0x29, 0xce, 0x77, 0x57, 0x0c, 0xc5, 0xc2, 0xbf, 0x07, 0xeb, 0xd2, + 0x3c, 0x76, 0x44, 0xe7, 0x44, 0x13, 0x04, 0xd5, 0xcf, 0x91, 0x94, 0xd7, 0xaf, 0x56, 0xe7, 0x69, + 0x9e, 0xdd, 0x15, 0x63, 0x56, 0x0c, 0xb6, 0x8a, 0x50, 0xd5, 0xda, 0x12, 0xad, 0x22, 0x79, 0xd8, + 0x2a, 0x62, 0xe1, 0x7b, 0x50, 0xa6, 0x87, 0xa6, 0xe7, 0x4c, 0x46, 0x6e, 0xf5, 0xf3, 0x24, 0xe1, + 0xde, 0x8b, 0x25, 0x28, 0xfa, 0xdd, 0x15, 0x23, 0xc9, 0x8e, 0x93, 0x48, 0xa0, 0xe1, 0x3d, 0xaf, + 0xde, 0x5e, 0x62, 0x12, 0x7b, 0x9a, 0x18, 0x27, 0x31, 0x64, 0xc4, 0xa5, 0xf7, 0xdc, 0xb6, 0x06, + 0x42, 0x56, 0xbf, 0xb0, 0xc4, 0xd2, 0x7b, 0x46, 0xa4, 0xb8, 0xf4, 0x14, 0x13, 0xaa, 0x71, 0x7f, + 0x68, 0xca, 0xea, 0x9d, 0x25, 0xd4, 0xb8, 0x39, 0x34, 0xc9, 0x56, 0x20, 0x43, 0xed, 0x87, 0xb0, + 0x9a, 0xb4, 0xca, 0x9c, 0x43, 0xd6, 0x17, 0xa6, 0xda, 0x11, 0x8a, 0x06, 0x3d, 0x23, 0x4e, 0x58, + 0xb6, 0xa4, 0x1d, 0xa1, 0x68, 0xd0, 0x33, 0xbf, 0x09, 0x79, 0xe5, 0x9b, 0x90, 0xc1, 0x2f, 0x1a, + 0x1a, 0x42, 0x5a, 0xcb, 0x37, 0x07, 0xb4, 0x6f, 0x15, 0x0d, 0x7a, 0x46, 0x5a, 0xcb, 0xf7, 0xc6, + 0x1d, 0x97, 0x0c, 0x76, 0xd1, 0xd0, 0x50, 0xed, 0xdf, 0x7c, 0x00, 0x05, 0xdd, 0xa8, 0xda, 0xdf, + 0x4b, 0x41, 0x5e, 0x19, 0x14, 0xfe, 0x6d, 0xc8, 0x05, 0xf2, 0xc2, 0x11, 0xd4, 0x86, 0xb5, 0x87, + 0x5f, 0x59, 0xc2, 0x08, 0x6d, 0x76, 0x91, 0xc1, 0x50, 0x7c, 0x75, 0x03, 0x72, 0x04, 0xf3, 0x02, + 0x64, 0x0c, 0xef, 0x39, 0x5b, 0xe1, 0x00, 0x79, 0x35, 0x59, 0x2c, 0x85, 0xc8, 0x6d, 0xfb, 0x8c, + 0xa5, 0x11, 0xb9, 0x2b, 0x4c, 0x4b, 0xf8, 0x2c, 0xc3, 0x2b, 0x50, 0x0a, 0xa7, 0x25, 0x60, 0x59, + 0xce, 0x60, 0x35, 0x31, 0xe1, 0x01, 0xcb, 0xd5, 0xfe, 0x57, 0x16, 0xb2, 0xb8, 0xfe, 0xf9, 0x2b, + 0x50, 0x91, 0xa6, 0x3f, 0x10, 0xca, 0x11, 0x8e, 0x9c, 0x94, 0x69, 0x24, 0xff, 0x20, 0xec, 0x43, + 0x9a, 0xfa, 0xf0, 0xda, 0x0b, 0xed, 0xca, 0x54, 0x0f, 0x12, 0xbb, 0x70, 0x66, 0xb9, 0x5d, 0x78, + 0x07, 0x8a, 0x68, 0xce, 0xba, 0xf6, 0x0f, 0x05, 0x0d, 0xfd, 0xda, 0xc3, 0xfb, 0x2f, 0xfe, 0x64, + 0x5b, 0x73, 0x18, 0x11, 0x2f, 0x6f, 0x43, 0xa9, 0x6f, 0xfa, 0x16, 0x35, 0x86, 0x66, 0x6b, 0xed, + 0xe1, 0x57, 0x5f, 0x2c, 0xa8, 0x19, 0xb2, 0x18, 0x31, 0x37, 0xef, 0x40, 0xd9, 0x12, 0x41, 0xdf, + 0xb7, 0xc7, 0x64, 0xde, 0xd4, 0x5e, 0xfc, 0xb5, 0x17, 0x0b, 0xdb, 0x8e, 0x99, 0x8c, 0xa4, 0x04, + 0xf4, 0xc8, 0xfc, 0xc8, 0xbe, 0x15, 0xc8, 0x41, 0x88, 0x11, 0xf5, 0x77, 0xa1, 0x18, 0xf6, 0x87, + 0xaf, 0x42, 0x11, 0xff, 0x1e, 0x78, 0xae, 0x60, 0x2b, 0x38, 0xb7, 0x08, 0x75, 0x47, 0xa6, 0xe3, + 0xb0, 0x14, 0x5f, 0x03, 0x40, 0x70, 0x5f, 0x58, 0xf6, 0x64, 0xc4, 0xd2, 0xf5, 0x6f, 0x86, 0xda, + 0x52, 0x84, 0xec, 0xa1, 0x39, 0x40, 0x8e, 0x55, 0x28, 0x86, 0xe6, 0x9a, 0xa5, 0x90, 0x7f, 0xdb, + 0x0c, 0x86, 0xc7, 0x9e, 0xe9, 0x5b, 0x2c, 0xcd, 0xcb, 0x50, 0x68, 0xf8, 0xfd, 0xa1, 0x7d, 0x26, + 0x58, 0xa6, 0xfe, 0x00, 0xca, 0x89, 0xf6, 0xa2, 0x08, 0xfd, 0xd1, 0x12, 0xe4, 0x1a, 0x96, 0x25, + 0x2c, 0x96, 0x42, 0x06, 0xdd, 0x41, 0x96, 0xae, 0x7f, 0x15, 0x4a, 0xd1, 0x68, 0x21, 0x39, 0x6e, + 0xdc, 0x6c, 0x05, 0x9f, 0x10, 0xcd, 0x52, 0xa8, 0x95, 0x6d, 0xd7, 0xb1, 0x5d, 0xc1, 0xd2, 0xb5, + 0x3f, 0x43, 0xaa, 0xca, 0xbf, 0x35, 0xbd, 0x20, 0x5e, 0x7d, 0xd1, 0xce, 0x3a, 0xbd, 0x1a, 0x3e, + 0x9f, 0xe8, 0xdf, 0x9e, 0x4d, 0x8d, 0x2b, 0x42, 0x76, 0xdb, 0x93, 0x01, 0x4b, 0xd5, 0xfe, 0x7b, + 0x1a, 0x8a, 0xe1, 0x86, 0x8a, 0x31, 0xc1, 0xc4, 0x77, 0xb4, 0x42, 0xe3, 0x23, 0xbf, 0x0e, 0x39, + 0x69, 0x4b, 0xad, 0xc6, 0x25, 0x43, 0x01, 0xe8, 0xab, 0x25, 0x67, 0x56, 0x39, 0xb0, 0xb3, 0x53, + 0x65, 0x8f, 0xcc, 0x81, 0xd8, 0x35, 0x83, 0xa1, 0x76, 0x61, 0x63, 0x04, 0xf2, 0x9f, 0x98, 0x67, + 0xa8, 0x73, 0xf4, 0x5e, 0x79, 0x71, 0x49, 0x14, 0x7f, 0x0b, 0xb2, 0xd8, 0x41, 0xad, 0x34, 0x7f, + 0x6a, 0xa6, 0xc3, 0xa8, 0x26, 0x87, 0xbe, 0xc0, 0xe9, 0xd9, 0xc4, 0x08, 0xcc, 0x20, 0x62, 0xfe, + 0x2a, 0xac, 0xa9, 0x45, 0xd8, 0x09, 0xe3, 0x87, 0x02, 0x49, 0x9e, 0xc1, 0xf2, 0x06, 0x0e, 0xa7, + 0x29, 0x45, 0xb5, 0xb8, 0x84, 0x7e, 0x87, 0x83, 0xb3, 0xd9, 0x45, 0x16, 0x43, 0x71, 0xd6, 0xdf, + 0xc1, 0x31, 0x35, 0xa5, 0xc0, 0x69, 0x6e, 0x8d, 0xc6, 0xf2, 0x42, 0x29, 0xcd, 0x8e, 0x90, 0xfd, + 0xa1, 0xed, 0x0e, 0x58, 0x4a, 0x0d, 0x31, 0x4e, 0x22, 0x91, 0xf8, 0xbe, 0xe7, 0xb3, 0x4c, 0xad, + 0x06, 0x59, 0xd4, 0x51, 0x34, 0x92, 0xae, 0x39, 0x12, 0x7a, 0xa4, 0xe9, 0xb9, 0x76, 0x0d, 0x36, + 0xe6, 0xf6, 0xe3, 0xda, 0xef, 0xe6, 0x95, 0x86, 0x20, 0x07, 0xf9, 0x82, 0x9a, 0x83, 0xdc, 0xbc, + 0x97, 0xb2, 0x31, 0x28, 0x65, 0xda, 0xc6, 0x7c, 0x00, 0x39, 0xec, 0x58, 0x68, 0x62, 0x96, 0x60, + 0xdf, 0x47, 0x72, 0x43, 0x71, 0x61, 0x04, 0xd3, 0x1f, 0x8a, 0xfe, 0xa9, 0xb0, 0xb4, 0xad, 0x0f, + 0x41, 0x54, 0x9a, 0x7e, 0xc2, 0x3d, 0x57, 0x00, 0xa9, 0x44, 0xdf, 0x73, 0x5b, 0x23, 0xef, 0xfb, + 0x36, 0xcd, 0x2b, 0xaa, 0x44, 0x88, 0x08, 0xdf, 0xb6, 0x51, 0x47, 0xf4, 0xb4, 0xc5, 0x88, 0x5a, + 0x0b, 0x72, 0xf4, 0x6d, 0x5c, 0x09, 0xaa, 0xcd, 0x2a, 0xd3, 0xf0, 0xea, 0x72, 0x6d, 0xd6, 0x4d, + 0xae, 0xfd, 0x4e, 0x1a, 0xb2, 0x08, 0xf3, 0xfb, 0x90, 0xf3, 0x31, 0x0e, 0xa3, 0xe1, 0xbc, 0x2c, + 0x66, 0x53, 0x24, 0xfc, 0xdb, 0x5a, 0x15, 0xd3, 0x4b, 0x28, 0x4b, 0xf4, 0xc5, 0xa4, 0x5a, 0x5e, + 0x87, 0xdc, 0xd8, 0xf4, 0xcd, 0x91, 0x5e, 0x27, 0x0a, 0xa8, 0xff, 0x38, 0x05, 0x59, 0x24, 0xe2, + 0x1b, 0x50, 0xe9, 0x4a, 0xdf, 0x3e, 0x15, 0x72, 0xe8, 0x7b, 0x93, 0xc1, 0x50, 0x69, 0xd2, 0x63, + 0x71, 0xa1, 0xec, 0x8d, 0x32, 0x08, 0xd2, 0x74, 0xec, 0x3e, 0x4b, 0xa3, 0x56, 0x6d, 0x79, 0x8e, + 0xc5, 0x32, 0x7c, 0x1d, 0xca, 0x4f, 0x5c, 0x4b, 0xf8, 0x41, 0xdf, 0xf3, 0x85, 0xc5, 0xb2, 0x7a, + 0x75, 0x9f, 0xb2, 0x1c, 0xed, 0x65, 0xe2, 0x5c, 0x52, 0x2c, 0xc4, 0xf2, 0xfc, 0x1a, 0xac, 0x6f, + 0x4d, 0x07, 0x48, 0xac, 0x80, 0x36, 0x69, 0x5f, 0xb8, 0xa8, 0x64, 0xac, 0xa8, 0x94, 0xd8, 0xfb, + 0xbe, 0xcd, 0x4a, 0xf8, 0x31, 0xb5, 0x4e, 0x18, 0xd4, 0xff, 0x65, 0x2a, 0xb4, 0x1c, 0x15, 0x28, + 0x1d, 0x9a, 0xbe, 0x39, 0xf0, 0xcd, 0x31, 0xb6, 0xaf, 0x0c, 0x05, 0xb5, 0x71, 0xbe, 0xa9, 0xac, + 0x9b, 0x02, 0x1e, 0x2a, 0xdb, 0xa8, 0x80, 0xb7, 0x58, 0x26, 0x06, 0xde, 0x66, 0x59, 0xfc, 0xc6, + 0x77, 0x27, 0x9e, 0x14, 0x2c, 0x47, 0xb6, 0xce, 0xb3, 0x04, 0xcb, 0x23, 0xb2, 0x87, 0x16, 0x85, + 0x15, 0xb0, 0xcf, 0x4d, 0xd4, 0x9f, 0x63, 0xef, 0x9c, 0x15, 0xb1, 0x19, 0x38, 0x8c, 0xc2, 0x62, + 0x25, 0x7c, 0x73, 0x30, 0x19, 0x1d, 0x0b, 0xec, 0x26, 0xe0, 0x9b, 0x9e, 0x37, 0x18, 0x38, 0x82, + 0x95, 0x71, 0x0c, 0x12, 0xc6, 0x97, 0xad, 0x92, 0xa5, 0x35, 0x1d, 0xc7, 0x9b, 0x48, 0x56, 0xa9, + 0xfd, 0x22, 0x03, 0x59, 0x8c, 0x6e, 0x70, 0xed, 0x0c, 0xd1, 0xce, 0xe8, 0xb5, 0x83, 0xcf, 0xd1, + 0x0a, 0x4c, 0xc7, 0x2b, 0x90, 0xbf, 0xaf, 0x67, 0x3a, 0xb3, 0x84, 0x95, 0x45, 0xc1, 0xc9, 0x49, + 0xe6, 0x90, 0x1d, 0xd9, 0x23, 0xa1, 0x6d, 0x1d, 0x3d, 0x23, 0x2e, 0xc0, 0xfd, 0x38, 0x47, 0xc9, + 0x13, 0x7a, 0xc6, 0x55, 0x63, 0xe2, 0xb6, 0xd0, 0x90, 0xb4, 0x06, 0x32, 0x46, 0x08, 0x2e, 0xb0, + 0x5e, 0xa5, 0x85, 0xd6, 0xeb, 0x83, 0xd0, 0x7a, 0x15, 0x96, 0x58, 0xf5, 0xd4, 0xcc, 0xa4, 0xe5, + 0x8a, 0x8d, 0x46, 0x71, 0x79, 0xf6, 0xc4, 0x66, 0xb2, 0xad, 0xb5, 0x36, 0xde, 0xe8, 0x8a, 0x6a, + 0x94, 0x59, 0x0a, 0x67, 0x93, 0x96, 0xab, 0xb2, 0x79, 0x4f, 0x6d, 0x4b, 0x78, 0x2c, 0x43, 0x1b, + 0xe1, 0xc4, 0xb2, 0x3d, 0x96, 0x45, 0xcf, 0xeb, 0x70, 0x7b, 0x87, 0xe5, 0xea, 0xaf, 0x26, 0xb6, + 0xa4, 0xc6, 0x44, 0x7a, 0x4a, 0x0c, 0xa9, 0x6f, 0x4a, 0x69, 0xe3, 0xb1, 0xb0, 0x58, 0xba, 0xfe, + 0xf5, 0x05, 0x66, 0xb6, 0x02, 0xa5, 0x27, 0x63, 0xc7, 0x33, 0xad, 0x2b, 0xec, 0xec, 0x2a, 0x40, + 0x1c, 0x55, 0xd7, 0x7e, 0x51, 0x8f, 0xb7, 0x73, 0xf4, 0x45, 0x03, 0x6f, 0xe2, 0xf7, 0x05, 0x99, + 0x90, 0x92, 0xa1, 0x21, 0xfe, 0x1d, 0xc8, 0xe1, 0xfb, 0x30, 0x8d, 0x73, 0x7f, 0xa9, 0x58, 0x6e, + 0xf3, 0xa9, 0x2d, 0x9e, 0x1b, 0x8a, 0x91, 0xdf, 0x01, 0x30, 0xfb, 0xd2, 0x3e, 0x13, 0x88, 0xd4, + 0x8b, 0x3d, 0x81, 0xe1, 0xef, 0x24, 0xdd, 0x97, 0xab, 0xf3, 0x90, 0x09, 0xbf, 0x86, 0x1b, 0x50, + 0xc6, 0xa5, 0x3b, 0xee, 0xf8, 0xb8, 0xda, 0xab, 0xab, 0xc4, 0xf8, 0xc6, 0x72, 0xcd, 0x7b, 0x14, + 0x31, 0x1a, 0x49, 0x21, 0xfc, 0x09, 0xac, 0xaa, 0x9c, 0x9a, 0x16, 0x5a, 0x21, 0xa1, 0x6f, 0x2e, + 0x27, 0xb4, 0x13, 0x73, 0x1a, 0x53, 0x62, 0xe6, 0xd3, 0x92, 0xb9, 0x97, 0x4e, 0x4b, 0xbe, 0x0a, + 0x6b, 0xbd, 0xe9, 0x55, 0xa0, 0xb6, 0x8a, 0x19, 0x2c, 0xaf, 0xc3, 0xaa, 0x1d, 0xc4, 0x59, 0x51, + 0xca, 0x91, 0x14, 0x8d, 0x29, 0x5c, 0xed, 0x3f, 0xe6, 0x21, 0x4b, 0x23, 0x3f, 0x9b, 0xe3, 0x6a, + 0x4e, 0x99, 0xf4, 0x07, 0xcb, 0x4f, 0xf5, 0xcc, 0x8a, 0x27, 0x0b, 0x92, 0x49, 0x58, 0x90, 0xef, + 0x40, 0x2e, 0xf0, 0x7c, 0x19, 0x4e, 0xef, 0x92, 0x4a, 0xd4, 0xf5, 0x7c, 0x69, 0x28, 0x46, 0xbe, + 0x03, 0x85, 0x13, 0xdb, 0x91, 0x38, 0x29, 0x6a, 0xf0, 0x5e, 0x5f, 0x4e, 0xc6, 0x0e, 0x31, 0x19, + 0x21, 0x33, 0xdf, 0x4b, 0x2a, 0x5b, 0x9e, 0x24, 0x6d, 0x2e, 0x27, 0x69, 0x91, 0x0e, 0xde, 0x07, + 0xd6, 0xf7, 0xce, 0x84, 0x6f, 0x24, 0x12, 0x93, 0x6a, 0x93, 0x9e, 0xc3, 0xf3, 0x1a, 0x14, 0x87, + 0xb6, 0x25, 0xd0, 0xcf, 0x21, 0x1b, 0x53, 0x34, 0x22, 0x98, 0x3f, 0x86, 0x22, 0xc5, 0x07, 0x68, + 0x15, 0x4b, 0x2f, 0x3d, 0xf8, 0x2a, 0x54, 0x09, 0x05, 0xe0, 0x87, 0xe8, 0xe3, 0x3b, 0xb6, 0xa4, + 0xfc, 0x74, 0xd1, 0x88, 0x60, 0x6c, 0x30, 0xe9, 0x7b, 0xb2, 0xc1, 0x65, 0xd5, 0xe0, 0x59, 0x3c, + 0x7f, 0x1b, 0x6e, 0x10, 0x6e, 0x66, 0x93, 0xc4, 0xa5, 0x86, 0x42, 0x17, 0xbf, 0x44, 0x87, 0x65, + 0x6c, 0x0e, 0xc4, 0x9e, 0x3d, 0xb2, 0x65, 0xb5, 0x72, 0x37, 0x75, 0x2f, 0x67, 0xc4, 0x08, 0xfe, + 0x3a, 0x6c, 0x58, 0xe2, 0xc4, 0x9c, 0x38, 0xb2, 0x27, 0x46, 0x63, 0xc7, 0x94, 0xa2, 0x6d, 0x91, + 0x8e, 0x96, 0x8c, 0xf9, 0x17, 0xfc, 0x0d, 0xb8, 0xa6, 0x91, 0x9d, 0xe8, 0x54, 0xa1, 0x6d, 0x51, + 0xfa, 0xae, 0x64, 0x2c, 0x7a, 0x55, 0xdf, 0xd7, 0x66, 0x18, 0x37, 0x50, 0x8c, 0x53, 0x43, 0x03, + 0x1a, 0x48, 0xb5, 0x23, 0x3f, 0x32, 0x1d, 0x47, 0xf8, 0x17, 0x2a, 0xc8, 0x7d, 0x6c, 0xba, 0xc7, + 0xa6, 0xcb, 0x32, 0xb4, 0xc7, 0x9a, 0x8e, 0x70, 0x2d, 0xd3, 0x57, 0x3b, 0xf2, 0x23, 0xda, 0xd0, + 0x73, 0xf5, 0x7b, 0x90, 0xa5, 0x21, 0x2d, 0x41, 0x4e, 0x45, 0x49, 0x14, 0x31, 0xeb, 0x08, 0x89, + 0x2c, 0xf2, 0x1e, 0x2e, 0x3f, 0x96, 0xae, 0xfd, 0xfd, 0x3c, 0x14, 0xc3, 0xc1, 0x0b, 0xcf, 0x10, + 0x52, 0xf1, 0x19, 0x02, 0xba, 0x71, 0xc1, 0x53, 0x3b, 0xb0, 0x8f, 0xb5, 0x5b, 0x5a, 0x34, 0x62, + 0x04, 0x7a, 0x42, 0xcf, 0x6d, 0x4b, 0x0e, 0x69, 0xcd, 0xe4, 0x0c, 0x05, 0xf0, 0x7b, 0xb0, 0x6e, + 0xe1, 0x38, 0xb8, 0x7d, 0x67, 0x62, 0x89, 0x1e, 0xee, 0xa2, 0x2a, 0x4d, 0x30, 0x8b, 0xe6, 0x1f, + 0x03, 0x48, 0x7b, 0x24, 0x76, 0x3c, 0x7f, 0x64, 0x4a, 0x1d, 0x1b, 0x7c, 0xe3, 0xe5, 0xb4, 0x7a, + 0xb3, 0x17, 0x09, 0x30, 0x12, 0xc2, 0x50, 0x34, 0x7e, 0x4d, 0x8b, 0x2e, 0x7c, 0x26, 0xd1, 0xdb, + 0x91, 0x00, 0x23, 0x21, 0x8c, 0xf7, 0xa0, 0x70, 0xe2, 0xf9, 0xa3, 0x89, 0x63, 0xea, 0x3d, 0xf7, + 0xfd, 0x97, 0x94, 0xbb, 0xa3, 0xb8, 0xc9, 0xf6, 0x84, 0xa2, 0xe2, 0x1c, 0x77, 0x69, 0xc9, 0x1c, + 0x77, 0xfd, 0x97, 0x00, 0xe2, 0x16, 0xf2, 0x9b, 0xc0, 0xf7, 0x3d, 0x57, 0x0e, 0x1b, 0xc7, 0xc7, + 0xfe, 0x96, 0x38, 0xf1, 0x7c, 0xb1, 0x6d, 0xe2, 0xf6, 0x7a, 0x03, 0x36, 0x22, 0x7c, 0xe3, 0x44, + 0x0a, 0x1f, 0xd1, 0xa4, 0x02, 0xdd, 0xa1, 0xe7, 0x4b, 0xe5, 0xe3, 0xd1, 0xe3, 0x93, 0x2e, 0xcb, + 0xe0, 0x96, 0xde, 0xee, 0x76, 0x58, 0xb6, 0x7e, 0x0f, 0x20, 0x1e, 0x5a, 0x8a, 0x85, 0xe8, 0xe9, + 0xcd, 0x87, 0x3a, 0x32, 0x22, 0xe8, 0xe1, 0xdb, 0x2c, 0x55, 0xff, 0x34, 0x05, 0xe5, 0x44, 0x97, + 0xa6, 0x63, 0xe6, 0xa6, 0x37, 0x71, 0xa5, 0x0a, 0xd2, 0xe9, 0xf1, 0xa9, 0xe9, 0x4c, 0x70, 0x73, + 0xdf, 0x80, 0x0a, 0xc1, 0xdb, 0x76, 0x20, 0x6d, 0xb7, 0x2f, 0x59, 0x26, 0x22, 0x51, 0x8e, 0x41, + 0x36, 0x22, 0x39, 0xf0, 0x34, 0x2a, 0xc7, 0x19, 0xac, 0x1e, 0x0a, 0xbf, 0x2f, 0x42, 0x22, 0x72, + 0x86, 0x35, 0x26, 0x22, 0x53, 0xce, 0xb0, 0x29, 0x87, 0xdd, 0xc9, 0x88, 0x15, 0xd1, 0xa9, 0x44, + 0xa0, 0x71, 0x26, 0x7c, 0xf4, 0x65, 0x4a, 0xf8, 0x1d, 0x44, 0xe0, 0x6a, 0x30, 0x5d, 0x06, 0x21, + 0xf5, 0xbe, 0xed, 0xb2, 0x72, 0x04, 0x98, 0xe7, 0x6c, 0x15, 0xdb, 0x4f, 0xa1, 0x03, 0xab, 0xd4, + 0xfe, 0x5b, 0x06, 0xb2, 0x68, 0xd7, 0x31, 0xd6, 0x4d, 0x1a, 0x21, 0xb5, 0x56, 0x92, 0xa8, 0xcf, + 0xb6, 0x1b, 0xa1, 0xec, 0xe4, 0x6e, 0xf4, 0x1e, 0x94, 0xfb, 0x93, 0x40, 0x7a, 0x23, 0xda, 0x8a, + 0xf5, 0x69, 0xd7, 0xcd, 0xb9, 0xac, 0x11, 0x0d, 0xa7, 0x91, 0x24, 0xe5, 0xef, 0x40, 0xfe, 0x44, + 0x69, 0xbd, 0xca, 0x1b, 0x7d, 0xe1, 0x92, 0xdd, 0x5a, 0x6b, 0xb6, 0x26, 0xc6, 0x7e, 0xd9, 0x73, + 0x2b, 0x36, 0x89, 0xd2, 0xbb, 0x6e, 0x3e, 0xda, 0x75, 0x7f, 0x09, 0xd6, 0x04, 0x0e, 0xf8, 0xa1, + 0x63, 0xf6, 0xc5, 0x48, 0xb8, 0xe1, 0x32, 0x7b, 0xfb, 0x25, 0x7a, 0x4c, 0x33, 0x46, 0xdd, 0x9e, + 0x91, 0x85, 0x96, 0xc7, 0xf5, 0x70, 0xf3, 0x0f, 0x03, 0xfb, 0xa2, 0x11, 0x23, 0xea, 0x5f, 0xd6, + 0xf6, 0xb2, 0x00, 0x99, 0x46, 0xd0, 0xd7, 0x19, 0x10, 0x11, 0xf4, 0x55, 0x78, 0xd5, 0xa4, 0xe1, + 0x60, 0xe9, 0xfa, 0x9b, 0x50, 0x8a, 0xbe, 0x80, 0xca, 0x73, 0xe0, 0xc9, 0xee, 0x58, 0xf4, 0xed, + 0x13, 0x5b, 0x58, 0x4a, 0x3f, 0xbb, 0xd2, 0xf4, 0xa5, 0x4a, 0x22, 0xb6, 0x5c, 0x8b, 0xa5, 0x6b, + 0xbf, 0x5d, 0x84, 0xbc, 0xda, 0x7c, 0x75, 0x87, 0x4b, 0x51, 0x87, 0xbf, 0x0b, 0x45, 0x6f, 0x2c, + 0x7c, 0x53, 0x7a, 0xbe, 0xce, 0xdc, 0xbc, 0xf3, 0x32, 0x9b, 0xf9, 0x66, 0x47, 0x33, 0x1b, 0x91, + 0x98, 0x59, 0x6d, 0x4a, 0xcf, 0x6b, 0xd3, 0x7d, 0x60, 0xe1, 0xbe, 0x7d, 0xe8, 0x23, 0x9f, 0xbc, + 0xd0, 0x71, 0xf8, 0x1c, 0x9e, 0xf7, 0xa0, 0xd4, 0xf7, 0x5c, 0xcb, 0x8e, 0xb2, 0x38, 0x6b, 0x0f, + 0xbf, 0xfe, 0x52, 0x2d, 0x6c, 0x86, 0xdc, 0x46, 0x2c, 0x88, 0xbf, 0x0e, 0xb9, 0x33, 0x54, 0x33, + 0xd2, 0xa7, 0xcb, 0x95, 0x50, 0x11, 0xf1, 0x4f, 0xa0, 0xfc, 0x83, 0x89, 0xdd, 0x3f, 0xed, 0x24, + 0xb3, 0x84, 0xef, 0xbd, 0x54, 0x2b, 0xbe, 0x1b, 0xf3, 0x1b, 0x49, 0x61, 0x09, 0xd5, 0x2e, 0xfc, + 0x11, 0x54, 0xbb, 0x38, 0xaf, 0xda, 0x06, 0x54, 0x5c, 0x11, 0x48, 0x61, 0xed, 0x68, 0x5f, 0x0d, + 0x3e, 0x83, 0xaf, 0x36, 0x2d, 0xa2, 0xfe, 0x25, 0x28, 0x86, 0x13, 0xce, 0xf3, 0x90, 0x3e, 0xc0, + 0xa0, 0x28, 0x0f, 0xe9, 0x8e, 0xaf, 0xb4, 0xad, 0x81, 0xda, 0x56, 0xff, 0x83, 0x14, 0x94, 0xa2, + 0x41, 0x9f, 0xb6, 0x9c, 0xad, 0x1f, 0x4c, 0x4c, 0x87, 0xa5, 0x28, 0x5c, 0xf6, 0xa4, 0x82, 0xc8, + 0x58, 0x3f, 0xa2, 0xc3, 0x7a, 0x9f, 0x65, 0xc8, 0x45, 0x10, 0x41, 0xc0, 0xb2, 0x9c, 0xc3, 0x9a, + 0x46, 0x77, 0x7c, 0x45, 0x9a, 0x43, 0xc3, 0x87, 0x6f, 0x43, 0x44, 0x5e, 0x79, 0x14, 0xa7, 0x42, + 0x19, 0xc8, 0x03, 0x4f, 0x12, 0x50, 0xc4, 0x46, 0xb5, 0x5d, 0x56, 0xc2, 0x6f, 0x1e, 0x78, 0xb2, + 0x8d, 0x26, 0x31, 0x0a, 0xcf, 0xca, 0xe1, 0xe7, 0x09, 0x22, 0x8b, 0xd8, 0x70, 0x9c, 0xb6, 0xcb, + 0x2a, 0xfa, 0x85, 0x82, 0xd6, 0x50, 0x62, 0xeb, 0xdc, 0xec, 0x23, 0xfb, 0x3a, 0x5a, 0x58, 0xe4, + 0xd1, 0x30, 0xc3, 0x25, 0xd9, 0x3a, 0xb7, 0x03, 0x19, 0xb0, 0x8d, 0xfa, 0xbf, 0x4f, 0x41, 0x39, + 0x31, 0xc1, 0x18, 0xfe, 0x11, 0x21, 0x6e, 0x65, 0x2a, 0x1a, 0xfc, 0x18, 0x87, 0xd1, 0xb7, 0xc2, + 0x6d, 0xaa, 0xe7, 0xe1, 0x63, 0x1a, 0xbf, 0xd7, 0xf3, 0x46, 0x9e, 0xef, 0x7b, 0xcf, 0x95, 0xeb, + 0xb3, 0x67, 0x06, 0xf2, 0x99, 0x10, 0xa7, 0x2c, 0x8b, 0x5d, 0x6d, 0x4e, 0x7c, 0x5f, 0xb8, 0x0a, + 0x91, 0xa3, 0xc6, 0x89, 0x73, 0x05, 0xe5, 0x51, 0x28, 0x12, 0xd3, 0x3e, 0xc8, 0x0a, 0x68, 0x08, + 0x34, 0xb5, 0xc2, 0x14, 0x91, 0x00, 0xc9, 0x15, 0x58, 0xc2, 0x4d, 0x45, 0x65, 0x28, 0x3a, 0x27, + 0xdb, 0xe6, 0x45, 0xd0, 0x18, 0x78, 0x0c, 0x66, 0x91, 0x07, 0xde, 0x73, 0x56, 0xae, 0x4d, 0x00, + 0xe2, 0x98, 0x0c, 0x63, 0x51, 0x54, 0x88, 0xe8, 0x0c, 0x41, 0x43, 0xbc, 0x03, 0x80, 0x4f, 0x44, + 0x19, 0x06, 0xa4, 0x2f, 0xe1, 0x28, 0x13, 0x9f, 0x91, 0x10, 0x51, 0xfb, 0x73, 0x50, 0x8a, 0x5e, + 0xf0, 0x2a, 0x14, 0xc8, 0xa5, 0x8d, 0x3e, 0x1b, 0x82, 0xe8, 0x9f, 0xd9, 0xae, 0x25, 0xce, 0xc9, + 0xae, 0xe4, 0x0c, 0x05, 0x60, 0x2b, 0x87, 0xb6, 0x65, 0x09, 0x37, 0x3c, 0xe9, 0x51, 0xd0, 0xa2, + 0xf3, 0xf8, 0xec, 0xc2, 0xf3, 0xf8, 0xda, 0x2f, 0x43, 0x39, 0x11, 0x34, 0x5e, 0xda, 0xed, 0x44, + 0xc3, 0xd2, 0xd3, 0x0d, 0xbb, 0x0d, 0xa5, 0xb0, 0x06, 0x24, 0xa0, 0xbd, 0xad, 0x64, 0xc4, 0x88, + 0xda, 0x3f, 0x4d, 0xa3, 0x27, 0x8b, 0x5d, 0x9b, 0x0d, 0xf4, 0x76, 0x20, 0x1f, 0x48, 0x53, 0x4e, + 0xc2, 0x62, 0x86, 0x25, 0x17, 0x68, 0x97, 0x78, 0x76, 0x57, 0x0c, 0xcd, 0xcd, 0x3f, 0x80, 0x8c, + 0x34, 0x07, 0x3a, 0x51, 0xfa, 0x95, 0xe5, 0x84, 0xf4, 0xcc, 0xc1, 0xee, 0x8a, 0x81, 0x7c, 0x7c, + 0x0f, 0x8a, 0x7d, 0x9d, 0xdb, 0xd2, 0x46, 0x71, 0xc9, 0x58, 0x2c, 0xcc, 0x88, 0xed, 0xae, 0x18, + 0x91, 0x04, 0xfe, 0x1d, 0xc8, 0xa2, 0x77, 0xa9, 0x6b, 0x3e, 0x96, 0x8c, 0x31, 0x71, 0xb9, 0xec, + 0xae, 0x18, 0xc4, 0xb9, 0x55, 0x80, 0x1c, 0xd9, 0xe0, 0x5a, 0x15, 0xf2, 0xaa, 0xaf, 0xb3, 0x23, + 0x57, 0xbb, 0x05, 0x99, 0x9e, 0x39, 0x40, 0x0f, 0xdf, 0xb6, 0x02, 0x9d, 0x2a, 0xc1, 0xc7, 0xda, + 0x2b, 0x71, 0x9e, 0x2e, 0x99, 0x02, 0x4e, 0x4d, 0xa5, 0x80, 0x6b, 0x79, 0xc8, 0xe2, 0x17, 0x6b, + 0xb7, 0xaf, 0x8a, 0x16, 0x6a, 0xff, 0x30, 0x83, 0x81, 0x85, 0x14, 0xe7, 0x0b, 0xd3, 0xdb, 0x1f, + 0x41, 0x69, 0xec, 0x7b, 0x7d, 0x11, 0x04, 0x9e, 0xaf, 0x9d, 0xa3, 0xd7, 0x5f, 0x7c, 0xf4, 0xbc, + 0x79, 0x18, 0xf2, 0x18, 0x31, 0x7b, 0xfd, 0x5f, 0xa5, 0xa1, 0x14, 0xbd, 0x50, 0xf1, 0x8c, 0x14, + 0xe7, 0x2a, 0x95, 0xb9, 0x2f, 0xfc, 0x91, 0x69, 0x5b, 0xca, 0x7a, 0x34, 0x87, 0x66, 0xe8, 0xe4, + 0x7e, 0xec, 0x4d, 0xe4, 0xe4, 0x58, 0xa8, 0x14, 0xd6, 0x53, 0x7b, 0x24, 0x3c, 0x96, 0xa5, 0xc3, + 0x23, 0x54, 0xec, 0xbe, 0xe3, 0x4d, 0x2c, 0x96, 0x43, 0xf8, 0x11, 0x6d, 0x6f, 0xfb, 0xe6, 0x38, + 0x50, 0x36, 0x73, 0xdf, 0xf6, 0x3d, 0x56, 0x40, 0xa6, 0x1d, 0x7b, 0x30, 0x32, 0x59, 0x11, 0x85, + 0xf5, 0x9e, 0xdb, 0x12, 0x8d, 0x70, 0x09, 0xdd, 0xd4, 0xce, 0x58, 0xb8, 0x5d, 0xe9, 0x0b, 0x21, + 0xf7, 0xcd, 0xb1, 0xca, 0x69, 0x1a, 0xc2, 0xb2, 0x6c, 0xa9, 0xec, 0xe7, 0x8e, 0xd9, 0x17, 0xc7, + 0x9e, 0x77, 0xca, 0x56, 0xd1, 0xd0, 0xb4, 0xdd, 0x40, 0x9a, 0x03, 0xdf, 0x1c, 0x29, 0x1b, 0xda, + 0x13, 0x8e, 0x20, 0x68, 0x8d, 0xbe, 0x6d, 0xcb, 0xe1, 0xe4, 0xf8, 0x11, 0xc6, 0x7d, 0xeb, 0xea, + 0x9c, 0xc9, 0x12, 0x63, 0x81, 0x36, 0x74, 0x15, 0x8a, 0x5b, 0xb6, 0x63, 0x1f, 0xdb, 0x8e, 0xcd, + 0x36, 0x90, 0xb4, 0x75, 0xde, 0x37, 0x1d, 0xdb, 0xf2, 0xcd, 0xe7, 0x8c, 0x63, 0xe3, 0x1e, 0xfb, + 0xde, 0xa9, 0xcd, 0xae, 0x21, 0x21, 0x85, 0x81, 0x67, 0xf6, 0x0f, 0xd9, 0x75, 0x3a, 0x2b, 0x3b, + 0x15, 0xb2, 0x3f, 0x3c, 0x31, 0x8f, 0xd9, 0x8d, 0x38, 0xa5, 0x77, 0xb3, 0xb6, 0x01, 0xeb, 0x33, + 0xa7, 0xf2, 0xb5, 0x82, 0x8e, 0x3e, 0x6b, 0x15, 0x28, 0x27, 0x8e, 0x4b, 0x6b, 0xaf, 0x42, 0x31, + 0x3c, 0x4c, 0xc5, 0x28, 0xdd, 0x0e, 0x54, 0x1a, 0x58, 0x2b, 0x49, 0x04, 0xd7, 0x7e, 0x2f, 0x05, + 0x79, 0x75, 0x92, 0xcd, 0xb7, 0xa2, 0xca, 0x93, 0xd4, 0x12, 0xa7, 0x97, 0x8a, 0x49, 0x9f, 0xfd, + 0x46, 0xe5, 0x27, 0xd7, 0x21, 0xe7, 0x50, 0x38, 0xae, 0xcd, 0x17, 0x01, 0x09, 0x6b, 0x93, 0x49, + 0x5a, 0x9b, 0x7a, 0x23, 0x3a, 0x6f, 0x0e, 0x53, 0x8f, 0xe4, 0x15, 0xf6, 0x7c, 0x21, 0x54, 0x5a, + 0x91, 0xa2, 0xe9, 0x34, 0xed, 0x15, 0xde, 0x68, 0x6c, 0xf6, 0x25, 0x21, 0x68, 0x17, 0x45, 0x63, + 0xca, 0xb2, 0xa8, 0xe5, 0xcd, 0xa1, 0x29, 0xeb, 0x27, 0x50, 0x3c, 0xf4, 0x82, 0xd9, 0x3d, 0xb9, + 0x00, 0x99, 0x9e, 0x37, 0x56, 0x1e, 0xe6, 0x96, 0x27, 0xc9, 0xc3, 0x54, 0x5b, 0xf0, 0x89, 0x54, + 0x4a, 0x65, 0xd8, 0x83, 0xa1, 0x54, 0x91, 0x78, 0xdb, 0x75, 0x85, 0xcf, 0x72, 0x38, 0x87, 0x86, + 0x18, 0xa3, 0x57, 0xcb, 0xf2, 0x38, 0x6b, 0x84, 0xdf, 0xb1, 0xfd, 0x40, 0xb2, 0x42, 0xbd, 0x8d, + 0xbb, 0xa9, 0x3d, 0xa0, 0x4d, 0x90, 0x1e, 0x48, 0xd4, 0x0a, 0x36, 0x91, 0xc0, 0xa6, 0x70, 0x51, + 0xc7, 0x28, 0x7a, 0x52, 0xa1, 0x1f, 0x7d, 0x20, 0x8d, 0x3b, 0x18, 0xc1, 0x1f, 0x4d, 0x02, 0x69, + 0x9f, 0x5c, 0xb0, 0x4c, 0xfd, 0x19, 0x54, 0xa6, 0xca, 0x98, 0xf8, 0x75, 0x60, 0x53, 0x08, 0x6c, + 0xfa, 0x0a, 0xbf, 0x05, 0xd7, 0xa6, 0xb0, 0xfb, 0xb6, 0x65, 0x51, 0xae, 0x77, 0xf6, 0x45, 0xd8, + 0xc1, 0xad, 0x12, 0x14, 0xfa, 0x6a, 0x96, 0xea, 0x87, 0x50, 0xa1, 0x69, 0xdb, 0x17, 0xd2, 0xec, + 0xb8, 0xce, 0xc5, 0x1f, 0xb9, 0xd6, 0xac, 0xfe, 0x55, 0x1d, 0x60, 0xa1, 0xbd, 0x38, 0xf1, 0xbd, + 0x11, 0xc9, 0xca, 0x19, 0xf4, 0x8c, 0xd2, 0xa5, 0xa7, 0xe7, 0x3e, 0x2d, 0xbd, 0xfa, 0x7f, 0x28, + 0x41, 0xa1, 0xd1, 0xef, 0x63, 0x48, 0x38, 0xf7, 0xe5, 0x77, 0x20, 0xdf, 0xf7, 0xdc, 0x13, 0x7b, + 0xa0, 0xed, 0xf1, 0xac, 0x67, 0xa8, 0xf9, 0x50, 0xe1, 0x4e, 0xec, 0x81, 0xa1, 0x89, 0x91, 0x4d, + 0xef, 0x27, 0xb9, 0x2b, 0xd9, 0x94, 0x51, 0x8d, 0xb6, 0x8f, 0x07, 0x90, 0xb5, 0xdd, 0x13, 0x4f, + 0x17, 0x86, 0x7e, 0xfe, 0x12, 0x26, 0xaa, 0x8e, 0x24, 0xc2, 0xda, 0x7f, 0x49, 0x41, 0x5e, 0x7d, + 0x9a, 0xbf, 0x0a, 0x6b, 0xc2, 0xc5, 0xc5, 0x14, 0x9a, 0x72, 0xbd, 0x8a, 0x66, 0xb0, 0xe8, 0xb4, + 0x6a, 0x8c, 0x38, 0x9e, 0x0c, 0x74, 0xee, 0x25, 0x89, 0xe2, 0xef, 0xc1, 0x2d, 0x05, 0x1e, 0xfa, + 0xc2, 0x17, 0x8e, 0x30, 0x03, 0xd1, 0x1c, 0x9a, 0xae, 0x2b, 0x1c, 0xbd, 0xb1, 0x5f, 0xf6, 0x9a, + 0xd7, 0x61, 0x55, 0xbd, 0xea, 0x8e, 0xcd, 0xbe, 0x08, 0xf4, 0x79, 0xdf, 0x14, 0x8e, 0x7f, 0x0d, + 0x72, 0x54, 0x37, 0x5b, 0xb5, 0xae, 0x9e, 0x4a, 0x45, 0x55, 0xf3, 0xa2, 0x9d, 0xa7, 0x01, 0xa0, + 0x86, 0x09, 0x83, 0x2e, 0xbd, 0xfa, 0xbf, 0x78, 0xe5, 0xb8, 0x52, 0xfc, 0x97, 0x60, 0xc2, 0xf6, + 0x59, 0xc2, 0x11, 0x54, 0xe0, 0x88, 0x3b, 0x63, 0x9a, 0x4e, 0x56, 0xa6, 0x70, 0xb5, 0x7f, 0x92, + 0x85, 0x2c, 0x8e, 0x30, 0x12, 0x0f, 0xbd, 0x91, 0x88, 0xf2, 0xcb, 0xca, 0xd5, 0x98, 0xc2, 0xa1, + 0x6b, 0x63, 0xaa, 0x23, 0xfe, 0x88, 0x4c, 0x19, 0x8f, 0x59, 0x34, 0x52, 0x8e, 0x7d, 0xef, 0xc4, + 0x76, 0x62, 0x4a, 0xed, 0x04, 0xcd, 0xa0, 0xf9, 0xd7, 0xe1, 0xe6, 0xc8, 0xf4, 0x4f, 0x85, 0xa4, + 0xd5, 0xfd, 0xcc, 0xf3, 0x4f, 0x03, 0x1c, 0xb9, 0xb6, 0xa5, 0x13, 0x93, 0x97, 0xbc, 0xe5, 0xaf, + 0xc3, 0xc6, 0xf3, 0x10, 0x8c, 0xbe, 0xa1, 0x52, 0x83, 0xf3, 0x2f, 0xd0, 0xdc, 0x5a, 0xe2, 0xcc, + 0x26, 0xb9, 0x45, 0x55, 0x3d, 0x1b, 0xc2, 0xa8, 0x4a, 0xa6, 0x1a, 0xc8, 0xae, 0xfe, 0xb2, 0x3e, + 0x61, 0x9a, 0xc6, 0xa2, 0xb7, 0xa5, 0xaa, 0x8a, 0x82, 0xb6, 0x45, 0x99, 0xd5, 0x92, 0x11, 0x23, + 0x50, 0xd1, 0xe8, 0x93, 0x4f, 0x95, 0x51, 0xad, 0xa8, 0x10, 0x34, 0x81, 0x42, 0x0a, 0x29, 0xfa, + 0xc3, 0xf0, 0x23, 0x2a, 0xed, 0x99, 0x44, 0xf1, 0x3b, 0x00, 0x03, 0x53, 0x8a, 0xe7, 0xe6, 0xc5, + 0x13, 0xdf, 0xa9, 0x0a, 0x75, 0x54, 0x12, 0x63, 0x30, 0x88, 0x75, 0xbc, 0xbe, 0xe9, 0x74, 0xa5, + 0xe7, 0x9b, 0x03, 0x71, 0x68, 0xca, 0x61, 0x75, 0xa0, 0x82, 0xd8, 0x59, 0x3c, 0xf6, 0x58, 0xda, + 0x23, 0xf1, 0x89, 0xe7, 0x8a, 0xea, 0x50, 0xf5, 0x38, 0x84, 0xb1, 0x25, 0xa6, 0x6b, 0x3a, 0x17, + 0xd2, 0xee, 0x63, 0x5f, 0x6c, 0xd5, 0x92, 0x04, 0x8a, 0xd2, 0x06, 0x42, 0xe2, 0x38, 0xb6, 0xad, + 0xea, 0xf7, 0x55, 0x5f, 0x23, 0x44, 0xed, 0x9b, 0x74, 0x3c, 0x35, 0xac, 0xbf, 0x05, 0x95, 0x3d, + 0xfc, 0x6e, 0x63, 0x6c, 0x77, 0xfb, 0xde, 0x58, 0xa0, 0x99, 0xa6, 0x44, 0x2f, 0xa5, 0x05, 0xca, + 0x50, 0xf8, 0x28, 0xf0, 0xdc, 0xc6, 0x61, 0x5b, 0x6d, 0x1c, 0x3b, 0x13, 0xc7, 0x61, 0xe9, 0x7a, + 0x07, 0x20, 0xd6, 0x57, 0xdc, 0x04, 0x1a, 0x74, 0x16, 0xc4, 0x56, 0x54, 0x12, 0xca, 0xb5, 0x6c, + 0x77, 0xb0, 0xad, 0x55, 0x94, 0xa5, 0x10, 0x49, 0xc9, 0x05, 0x61, 0x45, 0x48, 0x72, 0x43, 0x08, + 0x12, 0x16, 0xcb, 0xd4, 0xff, 0x4f, 0x0a, 0xca, 0x89, 0xd2, 0x87, 0x3f, 0xc6, 0x72, 0x0d, 0xdc, + 0xa4, 0x71, 0x9b, 0xc7, 0xd9, 0x50, 0xea, 0x1b, 0xc1, 0x38, 0x57, 0xba, 0x32, 0x03, 0xdf, 0xaa, + 0x54, 0x42, 0x02, 0xf3, 0x99, 0x4a, 0x35, 0xea, 0x0f, 0x75, 0x3e, 0xa6, 0x0c, 0x85, 0x27, 0xee, + 0xa9, 0xeb, 0x3d, 0x77, 0xd5, 0xee, 0x4b, 0xf5, 0x37, 0x53, 0x27, 0x89, 0x61, 0x89, 0x4c, 0xa6, + 0xfe, 0x2f, 0xb2, 0x33, 0xa5, 0x6a, 0x2d, 0xc8, 0xab, 0x20, 0x80, 0xfc, 0xd3, 0xf9, 0xda, 0xa2, + 0x24, 0xb1, 0x3e, 0xb5, 0x4a, 0xa0, 0x0c, 0xcd, 0x8c, 0xde, 0x79, 0x54, 0xc8, 0x99, 0x5e, 0x78, + 0xba, 0x36, 0x25, 0x28, 0xb4, 0xb8, 0x53, 0xb5, 0xcc, 0x91, 0x84, 0xda, 0x5f, 0x49, 0xc1, 0xf5, + 0x45, 0x24, 0xc9, 0x8a, 0xef, 0xd4, 0x74, 0xc5, 0x77, 0x77, 0xa6, 0x82, 0x3a, 0x4d, 0xbd, 0x79, + 0xf0, 0x92, 0x8d, 0x98, 0xae, 0xa7, 0xae, 0xff, 0x6e, 0x0a, 0x36, 0xe6, 0xfa, 0x9c, 0xf0, 0x4e, + 0x00, 0xf2, 0x4a, 0xb3, 0x54, 0x81, 0x53, 0x54, 0x72, 0xa2, 0x8e, 0x0c, 0x68, 0xdf, 0x0e, 0xd4, + 0x19, 0xbe, 0xae, 0x19, 0x57, 0xce, 0x2f, 0xce, 0x1a, 0x6e, 0x0b, 0x03, 0xa1, 0xd2, 0xab, 0xca, + 0x85, 0xd2, 0x98, 0xbc, 0x72, 0x50, 0xd5, 0xb9, 0x06, 0x2b, 0x50, 0xe1, 0xd4, 0x64, 0xec, 0xd8, + 0x7d, 0x04, 0x8b, 0xbc, 0x06, 0x37, 0xd5, 0xc5, 0x01, 0x1d, 0x0c, 0x9e, 0xf4, 0x86, 0x36, 0x2d, + 0x0e, 0x56, 0xc2, 0xef, 0x1c, 0x4e, 0x8e, 0x1d, 0x3b, 0x18, 0x32, 0xa8, 0x1b, 0x70, 0x6d, 0x41, + 0x07, 0xa9, 0xc9, 0x4f, 0x75, 0xf3, 0xd7, 0x00, 0xb6, 0x9f, 0x86, 0x8d, 0x66, 0x29, 0xce, 0x61, + 0x6d, 0xfb, 0x69, 0x52, 0xba, 0x5e, 0x3c, 0x4f, 0xd1, 0x26, 0x05, 0x2c, 0x53, 0xff, 0xd5, 0x54, + 0x58, 0xd9, 0x50, 0xfb, 0xb3, 0x50, 0x51, 0x0d, 0x3e, 0x34, 0x2f, 0x1c, 0xcf, 0xb4, 0x78, 0x0b, + 0xd6, 0x82, 0xe8, 0x6a, 0x4b, 0x62, 0x1b, 0x9a, 0xdd, 0xde, 0xbb, 0x53, 0x44, 0xc6, 0x0c, 0x53, + 0x18, 0xe0, 0xa4, 0xe3, 0xe3, 0x10, 0x4e, 0xa1, 0x9a, 0x49, 0x4b, 0x6e, 0x95, 0x82, 0x2f, 0xb3, + 0xfe, 0x35, 0xd8, 0xe8, 0xc6, 0x26, 0x5b, 0x79, 0xc2, 0xa8, 0x1c, 0xca, 0xde, 0x6f, 0x87, 0xca, + 0xa1, 0xc1, 0xfa, 0x5f, 0x2b, 0x00, 0xc4, 0x47, 0x3f, 0x0b, 0xd6, 0xfc, 0xa2, 0x4a, 0x86, 0xb9, + 0x83, 0xd8, 0xcc, 0x4b, 0x1f, 0xc4, 0xbe, 0x17, 0x39, 0xe4, 0x2a, 0x2d, 0x3c, 0x5b, 0xce, 0x1d, + 0xb7, 0x69, 0xd6, 0x0d, 0x9f, 0x2a, 0xf4, 0xc9, 0xcd, 0x16, 0xfa, 0xdc, 0x9d, 0xaf, 0x0a, 0x9c, + 0x31, 0x46, 0x71, 0xbe, 0xa1, 0x30, 0x95, 0x6f, 0xa8, 0x41, 0xd1, 0x17, 0xa6, 0xe5, 0xb9, 0xce, + 0x45, 0x78, 0xde, 0x17, 0xc2, 0xfc, 0x2d, 0xc8, 0x49, 0xba, 0x9d, 0x53, 0xa4, 0xb5, 0xf3, 0x82, + 0x89, 0x53, 0xb4, 0x68, 0xd9, 0xec, 0x40, 0x97, 0xf2, 0xa9, 0xbd, 0xb0, 0x68, 0x24, 0x30, 0x7c, + 0x13, 0xb8, 0x8d, 0xc1, 0x97, 0xe3, 0x08, 0x6b, 0xeb, 0x62, 0x5b, 0x1d, 0xc3, 0xd1, 0x6e, 0x5d, + 0x34, 0x16, 0xbc, 0x09, 0xe7, 0x7f, 0x35, 0x9e, 0x7f, 0x6a, 0xf2, 0x99, 0x1d, 0x60, 0x4f, 0x2b, + 0xe4, 0x94, 0x44, 0x30, 0xfa, 0x03, 0xe1, 0x82, 0x55, 0x63, 0x49, 0xda, 0x1b, 0x9f, 0x65, 0x5f, + 0xf2, 0x36, 0x1c, 0x5e, 0x95, 0x70, 0x59, 0x27, 0xa1, 0x31, 0x82, 0x2c, 0x79, 0xdf, 0x73, 0x0f, + 0x50, 0x23, 0x98, 0xb6, 0xe4, 0x1a, 0xae, 0xff, 0x7e, 0x3a, 0x0a, 0x79, 0x4a, 0x90, 0x3b, 0x36, + 0x03, 0xbb, 0xaf, 0x76, 0x2f, 0xed, 0xaa, 0xa8, 0xdd, 0x4b, 0x7a, 0x96, 0xc7, 0xd2, 0x18, 0xbd, + 0x04, 0x42, 0x1f, 0xb3, 0xc4, 0x77, 0x9d, 0x58, 0x16, 0x97, 0x78, 0xa8, 0x29, 0xaa, 0x96, 0x87, + 0x58, 0x29, 0x69, 0x66, 0x45, 0x55, 0x92, 0x14, 0xfe, 0xd2, 0x16, 0xc2, 0x8a, 0x48, 0xe3, 0x7a, + 0x52, 0xa8, 0x94, 0x21, 0xe9, 0x35, 0x03, 0x14, 0x13, 0x16, 0xef, 0xb3, 0x32, 0x86, 0x13, 0xa1, + 0x50, 0x95, 0xe7, 0x0b, 0x28, 0xd8, 0x5a, 0xc5, 0x75, 0x3d, 0xfd, 0x82, 0x55, 0xb0, 0x45, 0xf1, + 0x15, 0x2a, 0xb6, 0x86, 0x52, 0x4d, 0xaa, 0x30, 0x59, 0xc7, 0xc7, 0x33, 0xaa, 0x3b, 0x61, 0xf8, + 0x55, 0x0b, 0xed, 0xce, 0x06, 0xb6, 0x2c, 0x72, 0x4f, 0x18, 0xc7, 0x68, 0x69, 0x6c, 0x62, 0xe8, + 0x62, 0x8f, 0x4d, 0x57, 0xb2, 0x6b, 0xd8, 0xd5, 0xb1, 0x75, 0xc2, 0xae, 0x23, 0x4b, 0x7f, 0x68, + 0x4a, 0x76, 0x03, 0x69, 0xf0, 0x69, 0x5b, 0xf8, 0xa8, 0x09, 0xec, 0x26, 0xd2, 0x48, 0x73, 0xc0, + 0x6e, 0xd5, 0x7f, 0x23, 0xae, 0x53, 0x7e, 0x23, 0x0a, 0x2a, 0x96, 0x59, 0x1e, 0x18, 0x76, 0x2c, + 0x5a, 0xab, 0x2d, 0xd8, 0xf0, 0xc5, 0x0f, 0x26, 0xf6, 0x54, 0xf5, 0x7e, 0xe6, 0xea, 0xf2, 0x90, + 0x79, 0x8e, 0xfa, 0x19, 0x6c, 0x84, 0xc0, 0x33, 0x5b, 0x0e, 0x29, 0xbf, 0xc3, 0xdf, 0x4a, 0x5c, + 0x2f, 0x48, 0x2d, 0xbc, 0x96, 0x15, 0x89, 0x8c, 0xaf, 0x13, 0x44, 0xf9, 0xfb, 0xf4, 0x12, 0xf9, + 0xfb, 0xfa, 0xff, 0x4e, 0x1e, 0x08, 0xab, 0x30, 0xcb, 0x8a, 0xc2, 0xac, 0xf9, 0x03, 0xe2, 0x38, + 0x25, 0x9f, 0x7e, 0x99, 0x94, 0xfc, 0xa2, 0x62, 0x8b, 0xf7, 0xd1, 0xeb, 0xa7, 0x95, 0xf7, 0x74, + 0x89, 0xe3, 0x86, 0x29, 0x5a, 0xbe, 0x45, 0xc7, 0xbd, 0x66, 0x57, 0x55, 0x02, 0xe5, 0x16, 0x5e, + 0xf6, 0x49, 0x9e, 0xeb, 0x6a, 0x4a, 0x23, 0xc1, 0x95, 0xb0, 0x53, 0xf9, 0x45, 0x76, 0x0a, 0x23, + 0x5e, 0x6d, 0xc1, 0x22, 0x58, 0x9d, 0xce, 0xa8, 0xe7, 0x50, 0x3c, 0xad, 0xe1, 0xa2, 0x31, 0x87, + 0x47, 0x67, 0x6e, 0x34, 0x71, 0xa4, 0xad, 0x0f, 0x20, 0x14, 0x30, 0x7b, 0x1b, 0xb1, 0x34, 0x7f, + 0x1b, 0xf1, 0x43, 0x80, 0x40, 0xe0, 0xea, 0xd8, 0xb6, 0xfb, 0x52, 0xd7, 0x0b, 0xdd, 0xb9, 0xac, + 0x6f, 0xfa, 0xd8, 0x24, 0xc1, 0x81, 0xed, 0x1f, 0x99, 0xe7, 0x74, 0x94, 0xaa, 0x0b, 0x1b, 0x22, + 0x78, 0xd6, 0x7a, 0xaf, 0xcd, 0x5b, 0xef, 0xb7, 0x20, 0x17, 0xa0, 0x8b, 0x4c, 0x17, 0x6a, 0x2e, + 0x9f, 0xdf, 0x4d, 0xf2, 0xa3, 0x0d, 0x45, 0x4b, 0x89, 0x44, 0xb4, 0x6f, 0x9e, 0x4f, 0x57, 0x69, + 0x4a, 0x46, 0x08, 0x4e, 0x59, 0xd0, 0x9b, 0xd3, 0x16, 0xb4, 0x66, 0x41, 0x5e, 0x1f, 0x0a, 0xcc, + 0x86, 0xf7, 0x61, 0x3a, 0x31, 0x9d, 0x48, 0x27, 0x46, 0x55, 0xa9, 0x99, 0x64, 0x55, 0xea, 0xcc, + 0x6d, 0xbb, 0xdc, 0xdc, 0x6d, 0xbb, 0xfa, 0x27, 0x90, 0x53, 0x3e, 0x3f, 0x84, 0xee, 0xa6, 0x72, + 0x55, 0xb1, 0x53, 0x2c, 0xc5, 0xaf, 0x03, 0x0b, 0x04, 0xf9, 0x32, 0xa2, 0x6b, 0x8e, 0x04, 0x19, + 0xc9, 0x34, 0xaf, 0xc2, 0x75, 0x45, 0x1b, 0x4c, 0xbf, 0x21, 0x87, 0xca, 0xb1, 0x8f, 0x7d, 0xd3, + 0xbf, 0x60, 0xd9, 0xfa, 0x87, 0x74, 0x24, 0x1f, 0x2a, 0x54, 0x39, 0xba, 0xdd, 0xa8, 0xcc, 0xb2, + 0xa5, 0xad, 0x0f, 0x55, 0x74, 0xe8, 0x18, 0x4d, 0xd5, 0xb9, 0x51, 0x10, 0x44, 0x59, 0x9c, 0xd5, + 0xe4, 0x1e, 0xfe, 0xc7, 0xb6, 0xde, 0xea, 0x5b, 0x09, 0x8f, 0x70, 0xba, 0x70, 0x2d, 0xb5, 0x6c, + 0xe1, 0x5a, 0xfd, 0x31, 0xac, 0x1b, 0xd3, 0x36, 0x9d, 0xbf, 0x07, 0x05, 0x6f, 0x9c, 0x94, 0xf3, + 0x22, 0xbd, 0x0c, 0xc9, 0xeb, 0x3f, 0x4d, 0xc1, 0x6a, 0xdb, 0x95, 0xc2, 0x77, 0x4d, 0x67, 0xc7, + 0x31, 0x07, 0xfc, 0xdd, 0xd0, 0x4a, 0x2d, 0xce, 0x18, 0x24, 0x69, 0xa7, 0x0d, 0x96, 0xa3, 0x93, + 0xdf, 0xfc, 0x06, 0x6c, 0x08, 0xcb, 0x96, 0x9e, 0xaf, 0xfc, 0xe0, 0xb0, 0xbe, 0xf0, 0x3a, 0x30, + 0x85, 0xee, 0xd2, 0x92, 0xe8, 0xa9, 0x69, 0xae, 0xc2, 0xf5, 0x29, 0x6c, 0xe8, 0xe4, 0xa6, 0xf9, + 0x6d, 0xa8, 0xc6, 0xbb, 0xd1, 0xb6, 0xe7, 0xca, 0xb6, 0x6b, 0x89, 0x73, 0x72, 0xa2, 0x58, 0xa6, + 0xfe, 0xeb, 0x91, 0xfb, 0xf6, 0x54, 0x57, 0x1f, 0xfa, 0x9e, 0x17, 0x5f, 0x6d, 0xd5, 0x50, 0xe2, + 0x0a, 0x75, 0x7a, 0x89, 0x2b, 0xd4, 0x1f, 0xc6, 0xd7, 0x60, 0xd5, 0x46, 0xf1, 0xca, 0xc2, 0xdd, + 0x87, 0x8a, 0xa6, 0xb4, 0xf7, 0xde, 0x15, 0x89, 0x3b, 0xb1, 0x6f, 0xea, 0x90, 0x2d, 0xbb, 0x8c, + 0x97, 0xab, 0xea, 0x0b, 0xde, 0x99, 0xbd, 0x7b, 0xb1, 0x5c, 0xf1, 0xe2, 0x9c, 0x23, 0x0a, 0x2f, + 0xed, 0x88, 0x7e, 0x7b, 0x26, 0x3a, 0x2a, 0x2e, 0x4c, 0xa2, 0x5d, 0x71, 0xb3, 0xf4, 0xdb, 0x50, + 0x18, 0xda, 0x81, 0xf4, 0x7c, 0x75, 0xdb, 0x79, 0xfe, 0x76, 0x56, 0x62, 0xb4, 0x76, 0x15, 0x21, + 0x55, 0x9a, 0x85, 0x5c, 0xfc, 0x7b, 0xb0, 0x41, 0x03, 0x7f, 0x18, 0x7b, 0x0d, 0x41, 0xb5, 0xbc, + 0xb0, 0xc2, 0x2f, 0x21, 0x6a, 0x6b, 0x86, 0xc5, 0x98, 0x17, 0x52, 0x1b, 0x00, 0xc4, 0xf3, 0x33, + 0x67, 0xc5, 0x3e, 0xc3, 0x6d, 0xe7, 0x9b, 0x90, 0x0f, 0x26, 0xc7, 0xf1, 0x29, 0x99, 0x86, 0x6a, + 0xe7, 0x50, 0x9b, 0xf3, 0x0e, 0x0e, 0x85, 0xaf, 0x9a, 0x7b, 0xe5, 0x95, 0xeb, 0x0f, 0x93, 0x13, + 0xaf, 0x94, 0xf3, 0xee, 0x25, 0xb3, 0x17, 0x49, 0x4e, 0x68, 0x40, 0xed, 0x1d, 0x28, 0x27, 0x06, + 0x15, 0x2d, 0xf3, 0xc4, 0xb5, 0xbc, 0x30, 0x71, 0x8b, 0xcf, 0xea, 0xca, 0x99, 0x15, 0xa6, 0x6e, + 0xe9, 0xb9, 0x66, 0x00, 0x9b, 0x1d, 0xc0, 0x2b, 0x22, 0xe8, 0x57, 0xa0, 0x92, 0x70, 0xe9, 0xa2, + 0xa4, 0xde, 0x34, 0xb2, 0x7e, 0x06, 0x9f, 0x4f, 0x88, 0x3b, 0x14, 0xfe, 0xc8, 0x0e, 0x70, 0x23, + 0x51, 0xc1, 0x20, 0xb9, 0xce, 0x96, 0x70, 0xa5, 0x2d, 0x43, 0x0b, 0x1a, 0xc1, 0xfc, 0x9b, 0x90, + 0x1b, 0x0b, 0x7f, 0x14, 0x68, 0x2b, 0x3a, 0xab, 0x41, 0x0b, 0xc5, 0x06, 0x86, 0xe2, 0xa9, 0xff, + 0x83, 0x14, 0x14, 0xf7, 0x85, 0x34, 0xd1, 0x77, 0xe0, 0xfb, 0x33, 0x5f, 0x99, 0x3f, 0xd9, 0x0d, + 0x49, 0x37, 0x75, 0x78, 0xba, 0xd9, 0xd6, 0xf4, 0x1a, 0xde, 0x5d, 0x89, 0x1b, 0x56, 0xdb, 0x82, + 0x82, 0x46, 0xd7, 0xde, 0x85, 0xf5, 0x19, 0x4a, 0x1a, 0x17, 0xe5, 0xdb, 0x77, 0x2f, 0x46, 0x61, + 0xf9, 0xd1, 0xaa, 0x31, 0x8d, 0xdc, 0x2a, 0x41, 0x61, 0xac, 0x18, 0xea, 0xbf, 0x7f, 0x83, 0x8a, + 0x5e, 0xec, 0x13, 0x8c, 0xd9, 0x17, 0xed, 0xac, 0x77, 0x00, 0x68, 0x6b, 0x56, 0xa5, 0x11, 0x2a, + 0xd1, 0x9a, 0xc0, 0xf0, 0xf7, 0xa3, 0x0c, 0x79, 0x76, 0xa1, 0x53, 0x95, 0x14, 0x3e, 0x9b, 0x26, + 0xaf, 0x42, 0xc1, 0x0e, 0x28, 0xcf, 0xa6, 0xcb, 0x89, 0x42, 0x90, 0x7f, 0x0b, 0xf2, 0xf6, 0x68, + 0xec, 0xf9, 0x52, 0xa7, 0xd0, 0xaf, 0x94, 0xda, 0x26, 0xca, 0xdd, 0x15, 0x43, 0xf3, 0x20, 0xb7, + 0x38, 0x27, 0xee, 0xe2, 0x8b, 0xb9, 0x5b, 0xe7, 0x21, 0xb7, 0xe2, 0xe1, 0xdf, 0x85, 0xca, 0x40, + 0x55, 0x53, 0x2a, 0xc1, 0xda, 0x88, 0x7c, 0xe5, 0x2a, 0x21, 0x8f, 0x92, 0x0c, 0xbb, 0x2b, 0xc6, + 0xb4, 0x04, 0x14, 0x89, 0x0e, 0xbc, 0x08, 0x64, 0xcf, 0xfb, 0xc8, 0xb3, 0x5d, 0x0a, 0x67, 0x5f, + 0x20, 0xd2, 0x48, 0x32, 0xa0, 0xc8, 0x29, 0x09, 0xfc, 0xeb, 0xe8, 0xf1, 0x04, 0x52, 0x5f, 0x38, + 0xbf, 0x7b, 0x95, 0xa4, 0x9e, 0x08, 0xf4, 0x55, 0xf1, 0x40, 0xf2, 0x73, 0xa8, 0x25, 0x16, 0x89, + 0xfe, 0x48, 0x63, 0x3c, 0xf6, 0x3d, 0x8c, 0x89, 0x2b, 0x24, 0xed, 0xeb, 0x57, 0x49, 0x3b, 0xbc, + 0x94, 0x7b, 0x77, 0xc5, 0xb8, 0x42, 0x36, 0xef, 0x61, 0x64, 0xa7, 0xbb, 0xb0, 0x27, 0xcc, 0xb3, + 0xf0, 0xba, 0xfa, 0xfd, 0xa5, 0x46, 0x81, 0x38, 0x76, 0x57, 0x8c, 0x19, 0x19, 0xfc, 0x97, 0x61, + 0x63, 0xea, 0x9b, 0x74, 0x43, 0x55, 0x5d, 0x66, 0xff, 0xda, 0xd2, 0xdd, 0x40, 0xa6, 0xdd, 0x15, + 0x63, 0x5e, 0x12, 0x9f, 0xc0, 0xe7, 0xe6, 0xbb, 0xb4, 0x2d, 0xfa, 0x8e, 0xed, 0x0a, 0x7d, 0xef, + 0xfd, 0x9d, 0x97, 0x1b, 0x2d, 0xcd, 0xbc, 0xbb, 0x62, 0x5c, 0x2e, 0x99, 0xff, 0x79, 0xb8, 0x3d, + 0x5e, 0x68, 0x62, 0x94, 0xe9, 0xd2, 0xd7, 0xe6, 0xdf, 0x5b, 0xf2, 0xcb, 0x73, 0xfc, 0xbb, 0x2b, + 0xc6, 0x95, 0xf2, 0xd1, 0x77, 0xa6, 0x08, 0x5a, 0x17, 0x7d, 0x2b, 0x80, 0xdf, 0x86, 0x92, 0xd9, + 0x77, 0x76, 0x85, 0x69, 0x45, 0x59, 0xfe, 0x18, 0x51, 0xfb, 0x1f, 0x29, 0xc8, 0x6b, 0x7d, 0xbf, + 0x1d, 0x9d, 0xe4, 0x47, 0xa6, 0x3b, 0x46, 0xf0, 0x0f, 0xa0, 0x24, 0x7c, 0xdf, 0xf3, 0x9b, 0x9e, + 0x15, 0x16, 0x41, 0xce, 0x66, 0x91, 0x95, 0x9c, 0xcd, 0x56, 0x48, 0x66, 0xc4, 0x1c, 0xfc, 0x7d, + 0x00, 0xb5, 0xce, 0x7b, 0xf1, 0xdd, 0x9d, 0xda, 0x62, 0x7e, 0x75, 0x70, 0x14, 0x53, 0xc7, 0x69, + 0xb7, 0xf0, 0xd4, 0x26, 0x04, 0xa3, 0x80, 0x33, 0x97, 0x08, 0x38, 0x6f, 0xeb, 0x3c, 0x02, 0x25, + 0x57, 0xf4, 0x0d, 0xb6, 0x08, 0x51, 0xfb, 0xd7, 0x29, 0xc8, 0x2b, 0xe3, 0xc1, 0x5b, 0xf3, 0x3d, + 0x7a, 0xed, 0xc5, 0x36, 0x67, 0x73, 0xb6, 0x67, 0xdf, 0x02, 0x50, 0x36, 0x28, 0xd1, 0xb3, 0xdb, + 0x33, 0x72, 0x34, 0x6b, 0x58, 0x76, 0x1c, 0xd3, 0xd7, 0x1f, 0xaa, 0x5b, 0x56, 0x94, 0xf2, 0x7d, + 0xb2, 0xb7, 0xc7, 0x56, 0xf8, 0x06, 0x54, 0x9e, 0x1c, 0x3c, 0x3e, 0xe8, 0x3c, 0x3b, 0x38, 0x6a, + 0x19, 0x46, 0xc7, 0x50, 0x99, 0xdf, 0xad, 0xc6, 0xf6, 0x51, 0xfb, 0xe0, 0xf0, 0x49, 0x8f, 0xa5, + 0x6b, 0xff, 0x2c, 0x05, 0x95, 0x29, 0xdb, 0xf5, 0x27, 0x3b, 0x75, 0x89, 0xe1, 0xcf, 0x2c, 0x1e, + 0xfe, 0xec, 0x65, 0xc3, 0x9f, 0x9b, 0x1d, 0xfe, 0xdf, 0x4e, 0x41, 0x65, 0xca, 0x46, 0x26, 0xa5, + 0xa7, 0xa6, 0xa5, 0x27, 0x77, 0xfa, 0xf4, 0xcc, 0x4e, 0x5f, 0x87, 0xd5, 0xf0, 0xf9, 0x20, 0xce, + 0x38, 0x4c, 0xe1, 0x92, 0x34, 0x74, 0xcd, 0x21, 0x3b, 0x4d, 0x43, 0x57, 0x1d, 0xae, 0x6e, 0x2d, + 0x5d, 0xeb, 0x0c, 0xe8, 0xd6, 0x7b, 0xed, 0x72, 0x0b, 0x7a, 0x45, 0x17, 0x1e, 0x41, 0x79, 0x1c, + 0x2f, 0xd3, 0x97, 0x73, 0x4b, 0x92, 0x9c, 0x2f, 0x68, 0xe7, 0xef, 0xa4, 0x60, 0x6d, 0xda, 0xe6, + 0xfe, 0x7f, 0x3d, 0xac, 0xff, 0x28, 0x05, 0x1b, 0x73, 0x96, 0xfc, 0x4a, 0xc7, 0x6e, 0xb6, 0x5d, + 0xe9, 0x25, 0xda, 0x95, 0x59, 0xd0, 0xae, 0xcb, 0x2d, 0xc9, 0xd5, 0x2d, 0xee, 0xc2, 0xe7, 0x2e, + 0xdd, 0x13, 0xae, 0x18, 0xea, 0x29, 0xa1, 0x99, 0x59, 0xa1, 0xbf, 0x95, 0x82, 0xdb, 0x57, 0xd9, + 0xfb, 0xff, 0xe7, 0x7a, 0x35, 0xdb, 0xc2, 0xfa, 0xbb, 0xd1, 0xf1, 0x7f, 0x19, 0x0a, 0xfa, 0xd7, + 0xa4, 0x74, 0x81, 0xf5, 0xd0, 0x7b, 0xee, 0xaa, 0x4c, 0xb4, 0x21, 0x4c, 0x7d, 0xdf, 0xde, 0x10, + 0x63, 0xc7, 0xa6, 0x33, 0xd0, 0x5b, 0x00, 0x0d, 0x8a, 0xeb, 0xc2, 0xeb, 0x2f, 0xcd, 0xbd, 0x4e, + 0xb7, 0xc5, 0x56, 0x92, 0x4e, 0xec, 0x27, 0xa1, 0x21, 0xae, 0x1f, 0x42, 0x3e, 0xbe, 0x90, 0xb0, + 0x6f, 0xfa, 0xa7, 0x96, 0x3a, 0x69, 0x5c, 0x85, 0xe2, 0xa1, 0x0e, 0xa1, 0xd4, 0xa7, 0x3e, 0xea, + 0x76, 0x0e, 0x54, 0xd2, 0x7b, 0xbb, 0xd3, 0x53, 0xd7, 0x1a, 0xba, 0x4f, 0x1f, 0xa9, 0x23, 0xaf, + 0x47, 0x46, 0xe3, 0x70, 0xf7, 0x88, 0x28, 0x72, 0xf5, 0xdf, 0xcc, 0x86, 0xbb, 0x5a, 0xdd, 0xd0, + 0x67, 0x98, 0x00, 0x79, 0xb4, 0xe6, 0x9e, 0x16, 0x1c, 0x7d, 0x86, 0x4a, 0x71, 0x5b, 0xe7, 0x2a, + 0x0f, 0xc1, 0xd2, 0x3c, 0x0f, 0xe9, 0xc3, 0x63, 0x55, 0x3f, 0xb4, 0x2b, 0x47, 0x8e, 0xba, 0x0f, + 0xd9, 0x3b, 0x97, 0x2c, 0x87, 0x0f, 0xcd, 0xe0, 0x8c, 0xe5, 0xeb, 0xff, 0x3c, 0x03, 0xa5, 0xc8, + 0x54, 0xbe, 0x8c, 0xe9, 0xe6, 0x1c, 0xd6, 0xda, 0x07, 0xbd, 0x96, 0x71, 0xd0, 0xd8, 0xd3, 0x24, + 0x19, 0x7e, 0x0d, 0xd6, 0x77, 0xda, 0x7b, 0xad, 0xa3, 0xbd, 0x4e, 0x63, 0x5b, 0x23, 0x8b, 0xfc, + 0x26, 0xf0, 0xf6, 0xfe, 0x61, 0xc7, 0xe8, 0x1d, 0xb5, 0xbb, 0x47, 0xcd, 0xc6, 0x41, 0xb3, 0xb5, + 0xd7, 0xda, 0x66, 0x79, 0xfe, 0x0a, 0xdc, 0x3d, 0xe8, 0xf4, 0xda, 0x9d, 0x83, 0xa3, 0x83, 0xce, + 0x51, 0x67, 0xeb, 0xa3, 0x56, 0xb3, 0xd7, 0x3d, 0x6a, 0x1f, 0x1c, 0xa1, 0xd4, 0x47, 0x46, 0x03, + 0xdf, 0xb0, 0x1c, 0xbf, 0x0b, 0xb7, 0x35, 0x55, 0xb7, 0x65, 0x3c, 0x6d, 0x19, 0x28, 0xe4, 0xc9, + 0x41, 0xe3, 0x69, 0xa3, 0xbd, 0xd7, 0xd8, 0xda, 0x6b, 0xb1, 0x55, 0x7e, 0x07, 0x6a, 0x9a, 0xc2, + 0x68, 0xf4, 0x5a, 0x47, 0x7b, 0xed, 0xfd, 0x76, 0xef, 0xa8, 0xf5, 0xbd, 0x66, 0xab, 0xb5, 0xdd, + 0xda, 0x66, 0x15, 0xfe, 0x15, 0xf8, 0x32, 0x35, 0x4a, 0x37, 0x62, 0xfa, 0x63, 0x9f, 0xb4, 0x0f, + 0x8f, 0x1a, 0x46, 0x73, 0xb7, 0xfd, 0xb4, 0xc5, 0xd6, 0xf8, 0x6b, 0xf0, 0xa5, 0xcb, 0x49, 0xb7, + 0xdb, 0x46, 0xab, 0xd9, 0xeb, 0x18, 0x1f, 0xb3, 0x0d, 0xfe, 0x05, 0xf8, 0xdc, 0x6e, 0x6f, 0x7f, + 0xef, 0xe8, 0x99, 0xd1, 0x39, 0x78, 0x74, 0x44, 0x8f, 0xdd, 0x9e, 0xf1, 0xa4, 0xd9, 0x7b, 0x62, + 0xb4, 0x18, 0xf0, 0x1a, 0xdc, 0x3c, 0xdc, 0x3a, 0x3a, 0xe8, 0xf4, 0x8e, 0x1a, 0x07, 0x1f, 0x6f, + 0xed, 0x75, 0x9a, 0x8f, 0x8f, 0x76, 0x3a, 0xc6, 0x7e, 0xa3, 0xc7, 0xca, 0xfc, 0xab, 0xf0, 0x5a, + 0xb3, 0xfb, 0x54, 0x37, 0xb3, 0xb3, 0x73, 0x64, 0x74, 0x9e, 0x75, 0x8f, 0x3a, 0xc6, 0x91, 0xd1, + 0xda, 0xa3, 0x3e, 0x77, 0xe3, 0xb6, 0x17, 0xf8, 0x6d, 0xa8, 0xb6, 0x0f, 0xba, 0x4f, 0x76, 0x76, + 0xda, 0xcd, 0x76, 0xeb, 0xa0, 0x77, 0x74, 0xd8, 0x32, 0xf6, 0xdb, 0xdd, 0x2e, 0x92, 0xb1, 0x52, + 0xfd, 0x3b, 0x90, 0x6f, 0xbb, 0x67, 0xb6, 0xa4, 0xf5, 0xa5, 0x95, 0x51, 0x47, 0x5c, 0x21, 0x48, + 0xcb, 0xc2, 0x1e, 0xb8, 0x74, 0xcf, 0x9f, 0x56, 0xd7, 0xaa, 0x11, 0x23, 0xea, 0xff, 0x38, 0x0d, + 0x15, 0x25, 0x22, 0x8c, 0xe0, 0xee, 0xc1, 0xba, 0x4e, 0x85, 0xb6, 0xa7, 0x4d, 0xd8, 0x2c, 0x9a, + 0x7e, 0x40, 0x4b, 0xa1, 0x12, 0x86, 0x2c, 0x89, 0xa2, 0x93, 0x23, 0x12, 0x8e, 0x91, 0xa0, 0x3a, + 0x92, 0x8c, 0x11, 0x9f, 0xd5, 0x82, 0xa1, 0x75, 0x54, 0x84, 0x7d, 0xcf, 0x6d, 0x46, 0x17, 0x3e, + 0xa6, 0x70, 0xfc, 0x13, 0xb8, 0x15, 0xc1, 0x2d, 0xb7, 0xef, 0x5f, 0x8c, 0xa3, 0xdf, 0xb9, 0x2b, + 0x2c, 0x4c, 0x29, 0xec, 0xd8, 0x8e, 0x98, 0x22, 0x34, 0x2e, 0x13, 0x50, 0xff, 0x83, 0x54, 0x22, + 0xee, 0x55, 0x71, 0xed, 0x95, 0x16, 0x7f, 0xd1, 0x19, 0x0c, 0x46, 0x9e, 0xba, 0xf9, 0xda, 0x11, + 0xd1, 0x20, 0x3f, 0x04, 0x6e, 0xcf, 0x37, 0x3a, 0xbb, 0x64, 0xa3, 0x17, 0xf0, 0xce, 0xa6, 0xd0, + 0x73, 0xf3, 0x29, 0xf4, 0x3b, 0x00, 0x03, 0xc7, 0x3b, 0x36, 0x9d, 0x84, 0xa3, 0x99, 0xc0, 0xd4, + 0x1d, 0x28, 0x86, 0xbf, 0xa6, 0xc7, 0x6f, 0x42, 0x9e, 0x7e, 0x4f, 0x2f, 0x4a, 0x28, 0x2a, 0x88, + 0xef, 0xc2, 0x9a, 0x98, 0x6e, 0x73, 0x7a, 0xc9, 0x36, 0xcf, 0xf0, 0xd5, 0xbf, 0x01, 0x1b, 0x73, + 0x44, 0x38, 0x88, 0x63, 0x53, 0x46, 0x57, 0xea, 0xf1, 0x79, 0xfe, 0xf8, 0xbb, 0xfe, 0x9f, 0xd2, + 0xb0, 0xba, 0x6f, 0xba, 0xf6, 0x89, 0x08, 0x64, 0xd8, 0xda, 0xa0, 0x3f, 0x14, 0x23, 0x33, 0x6c, + 0xad, 0x82, 0x74, 0x96, 0x21, 0x9d, 0xcc, 0xdf, 0xcf, 0x1d, 0xf7, 0xdc, 0x84, 0xbc, 0x39, 0x91, + 0xc3, 0xa8, 0xca, 0x5c, 0x43, 0x38, 0x77, 0x8e, 0xdd, 0x17, 0x6e, 0x10, 0xea, 0x66, 0x08, 0xc6, + 0xd5, 0x30, 0xf9, 0x2b, 0xaa, 0x61, 0x0a, 0xf3, 0xe3, 0x7f, 0x17, 0xca, 0x41, 0xdf, 0x17, 0xc2, + 0x0d, 0x86, 0x9e, 0x0c, 0x7f, 0x89, 0x31, 0x89, 0xa2, 0x82, 0x33, 0xef, 0xb9, 0x8b, 0x2b, 0x74, + 0xcf, 0x76, 0x4f, 0x75, 0x1d, 0xd5, 0x14, 0x0e, 0x75, 0x90, 0x72, 0x2c, 0xf6, 0x0f, 0x05, 0xc5, + 0xf7, 0x39, 0x23, 0x82, 0x29, 0x8b, 0x62, 0x4a, 0x31, 0xf0, 0x7c, 0x5b, 0xa8, 0x54, 0x62, 0xc9, + 0x48, 0x60, 0x90, 0xd7, 0x31, 0xdd, 0xc1, 0xc4, 0x1c, 0x08, 0x7d, 0x9c, 0x1c, 0xc1, 0xf5, 0xff, + 0x99, 0x03, 0xd8, 0x17, 0xa3, 0x63, 0xe1, 0x07, 0x43, 0x7b, 0x4c, 0x47, 0x1d, 0xb6, 0xae, 0xad, + 0xad, 0x18, 0xf4, 0xcc, 0xdf, 0x9b, 0x2a, 0x7b, 0x9f, 0x3f, 0x9c, 0x8c, 0xd9, 0x67, 0x53, 0x30, + 0x38, 0x38, 0xa6, 0x14, 0xba, 0x10, 0x89, 0xc6, 0x3f, 0x6b, 0x24, 0x51, 0x54, 0x60, 0x66, 0x4a, + 0xd1, 0x72, 0x2d, 0x95, 0xe2, 0xc9, 0x1a, 0x11, 0x4c, 0x17, 0x67, 0x82, 0xc6, 0x44, 0x7a, 0x86, + 0x70, 0xc5, 0xf3, 0xe8, 0x4e, 0x58, 0x8c, 0xe2, 0xfb, 0x50, 0x19, 0x9b, 0x17, 0x23, 0xe1, 0xca, + 0x7d, 0x21, 0x87, 0x9e, 0xa5, 0xab, 0x86, 0x5e, 0xbb, 0xbc, 0x81, 0x87, 0x49, 0x72, 0x63, 0x9a, + 0x1b, 0x75, 0xc2, 0x0d, 0x68, 0x95, 0xa8, 0x69, 0xd4, 0x10, 0xdf, 0x02, 0x50, 0x4f, 0x14, 0x39, + 0x15, 0x17, 0x67, 0xa2, 0xcc, 0x91, 0x08, 0x84, 0x7f, 0x66, 0x2b, 0x3b, 0xa6, 0x62, 0xc3, 0x98, + 0x0b, 0xad, 0xde, 0x24, 0x10, 0x7e, 0x6b, 0x64, 0xda, 0x8e, 0x9e, 0xe0, 0x18, 0xc1, 0xdf, 0x86, + 0x1b, 0xc1, 0xe4, 0x18, 0x75, 0xe6, 0x58, 0xf4, 0xbc, 0x03, 0xf1, 0x3c, 0x70, 0x84, 0x94, 0xc2, + 0xd7, 0x95, 0x09, 0x8b, 0x5f, 0xd6, 0x07, 0x91, 0xdb, 0x43, 0xbf, 0xfa, 0x81, 0x4f, 0x71, 0xf9, + 0x53, 0x84, 0xd2, 0xb5, 0x61, 0x2c, 0xc5, 0x19, 0xac, 0x2a, 0x94, 0x2e, 0x1d, 0x4b, 0xf3, 0x2f, + 0xc3, 0x17, 0xa7, 0x88, 0x0c, 0x75, 0x10, 0x1c, 0xec, 0xd8, 0xae, 0xe9, 0xd8, 0x3f, 0x54, 0xc7, + 0xf2, 0x99, 0xfa, 0x18, 0x2a, 0x53, 0x03, 0x47, 0x97, 0x18, 0xe9, 0x49, 0xd7, 0xcf, 0x30, 0x58, + 0x55, 0x70, 0x57, 0xfa, 0x36, 0x9d, 0x70, 0x44, 0x98, 0x26, 0xae, 0x73, 0x8f, 0xa5, 0xf9, 0x75, + 0x60, 0x0a, 0xd3, 0x76, 0xcd, 0xf1, 0xb8, 0x31, 0x1e, 0x3b, 0x82, 0x65, 0xe8, 0x82, 0x68, 0x8c, + 0x55, 0xc5, 0xef, 0x2c, 0x5b, 0xff, 0x1e, 0xdc, 0xa2, 0x91, 0x79, 0x2a, 0xfc, 0x28, 0xb0, 0xd5, + 0x7d, 0xbd, 0x01, 0x1b, 0xea, 0xe9, 0xc0, 0x93, 0xea, 0x35, 0x39, 0x7b, 0x1c, 0xd6, 0x14, 0x1a, + 0x7d, 0x9d, 0xae, 0xa0, 0x6b, 0x9f, 0x11, 0x2e, 0xa2, 0x4b, 0xd7, 0x7f, 0x9a, 0x07, 0x1e, 0x2b, + 0x44, 0xcf, 0x16, 0xfe, 0xb6, 0x29, 0xcd, 0x44, 0x66, 0xb2, 0x72, 0xe9, 0xd9, 0xfa, 0x8b, 0x2b, + 0xdf, 0x6e, 0x42, 0xde, 0x0e, 0x30, 0x14, 0xd3, 0x45, 0xad, 0x1a, 0xe2, 0x7b, 0x00, 0x63, 0xe1, + 0xdb, 0x9e, 0x45, 0x1a, 0x94, 0x5b, 0x78, 0xfb, 0x60, 0xbe, 0x51, 0x9b, 0x87, 0x11, 0x8f, 0x91, + 0xe0, 0xc7, 0x76, 0x28, 0x48, 0x9d, 0x54, 0xe7, 0xa9, 0xd1, 0x49, 0x14, 0x7f, 0x03, 0xae, 0x8d, + 0x7d, 0xbb, 0x2f, 0xd4, 0x74, 0x3c, 0x09, 0xac, 0x26, 0xfd, 0x56, 0x5e, 0x81, 0x28, 0x17, 0xbd, + 0x42, 0x0d, 0x34, 0x5d, 0x0a, 0x50, 0x02, 0x3a, 0x9b, 0xd5, 0x17, 0xa5, 0x55, 0xd9, 0x67, 0xc5, + 0x58, 0xfc, 0x92, 0xdf, 0x07, 0xa6, 0x5f, 0xec, 0xdb, 0xee, 0x9e, 0x70, 0x07, 0x72, 0x48, 0xca, + 0x5d, 0x31, 0xe6, 0xf0, 0x64, 0xc1, 0xd4, 0x2f, 0x12, 0xa9, 0x73, 0x9b, 0x92, 0x11, 0xc1, 0xea, + 0xf2, 0xbd, 0xe3, 0xf9, 0x5d, 0xe9, 0xeb, 0xfa, 0xd5, 0x08, 0x46, 0x9f, 0x25, 0xa0, 0xb6, 0x1e, + 0xfa, 0x9e, 0x35, 0xa1, 0x53, 0x05, 0x65, 0xc4, 0x66, 0xd1, 0x31, 0xe5, 0xbe, 0xe9, 0xea, 0xf2, + 0xc3, 0x4a, 0x92, 0x32, 0x42, 0x53, 0x0c, 0xe6, 0x05, 0xb1, 0xc0, 0x75, 0x1d, 0x83, 0x25, 0x70, + 0x9a, 0x26, 0x16, 0xc5, 0x22, 0x9a, 0x58, 0x0e, 0xf5, 0xdf, 0xf2, 0x3d, 0xdb, 0x8a, 0x65, 0x6d, + 0xa8, 0xca, 0xd2, 0x59, 0x7c, 0x82, 0x36, 0x96, 0xc9, 0xa7, 0x68, 0x23, 0x7c, 0xfd, 0x47, 0x29, + 0x80, 0x78, 0xf2, 0x51, 0xe5, 0x63, 0x28, 0x5e, 0xe2, 0xb7, 0xe0, 0x5a, 0x12, 0xed, 0xe8, 0x12, + 0x52, 0xd2, 0xfb, 0xf8, 0xc5, 0xb6, 0x79, 0x11, 0xb0, 0xb4, 0xbe, 0xaa, 0xac, 0x71, 0xcf, 0x84, + 0xa0, 0x7a, 0xbc, 0xeb, 0xc0, 0x62, 0x24, 0xdd, 0x3f, 0x0b, 0x58, 0x76, 0x9a, 0xf4, 0x63, 0x61, + 0xfa, 0x01, 0xcb, 0xd5, 0x77, 0x21, 0xaf, 0x0e, 0x97, 0x16, 0x1c, 0x0b, 0xbf, 0x5c, 0x8d, 0xc7, + 0x5f, 0x4d, 0x01, 0x6c, 0xab, 0x2a, 0x62, 0xdc, 0xc5, 0x17, 0x9c, 0xb6, 0x2f, 0xf2, 0xa8, 0x4c, + 0xcb, 0xa2, 0x6a, 0xec, 0x4c, 0xf4, 0x3b, 0x37, 0x08, 0xa2, 0xe6, 0x98, 0x61, 0xcd, 0x95, 0x5a, + 0x73, 0x11, 0xac, 0x36, 0x90, 0xa6, 0xe7, 0xba, 0xa2, 0x8f, 0xdb, 0x4f, 0xb4, 0x81, 0x44, 0xa8, + 0xfa, 0xbf, 0x2d, 0x40, 0xb9, 0x39, 0x34, 0xe5, 0xbe, 0x08, 0x02, 0x73, 0x20, 0xe6, 0xda, 0x52, + 0x85, 0x82, 0xe7, 0x5b, 0xc2, 0x8f, 0xef, 0x90, 0x69, 0x30, 0x59, 0x63, 0x90, 0x99, 0xae, 0x31, + 0xb8, 0x0d, 0x25, 0x75, 0x82, 0x61, 0x35, 0x94, 0x19, 0xc8, 0x18, 0x31, 0x02, 0xf7, 0xea, 0x91, + 0x67, 0x91, 0x31, 0x6a, 0xa8, 0xe4, 0x7f, 0xc6, 0x48, 0x60, 0x54, 0x49, 0xc7, 0xd8, 0xb9, 0xe8, + 0x79, 0xba, 0x4d, 0x6d, 0x2b, 0xbe, 0x70, 0x3b, 0x8d, 0xe7, 0x4d, 0x28, 0x8c, 0x14, 0xa0, 0x0f, + 0x32, 0x66, 0x53, 0xfe, 0x89, 0xae, 0x6d, 0xea, 0xbf, 0xfa, 0xce, 0x8b, 0x11, 0x72, 0x62, 0x88, + 0x6e, 0x4a, 0x69, 0xf6, 0x87, 0x23, 0x6d, 0x22, 0x32, 0x0b, 0xce, 0x34, 0x93, 0x82, 0x1a, 0x11, + 0xb5, 0x91, 0xe4, 0xe4, 0x5b, 0x50, 0xf2, 0x85, 0x39, 0x75, 0xac, 0xfa, 0xca, 0x15, 0x62, 0x8c, + 0x90, 0xd6, 0x88, 0xd9, 0x6a, 0x3f, 0x49, 0xc1, 0xda, 0x74, 0x43, 0xff, 0x24, 0x7e, 0xaa, 0xec, + 0x5b, 0xf1, 0x4f, 0x95, 0x7d, 0x86, 0x9f, 0xfd, 0xfa, 0xad, 0x14, 0x40, 0x3c, 0x06, 0x68, 0xf2, + 0xd5, 0x4f, 0x2a, 0x85, 0x4e, 0xa8, 0x82, 0xf8, 0xee, 0xd4, 0x3d, 0xfc, 0xb7, 0x97, 0x1a, 0xd0, + 0xc4, 0x63, 0xa2, 0xba, 0xf9, 0x01, 0xac, 0x4d, 0xe3, 0xa9, 0x2a, 0xbc, 0xbd, 0xd7, 0x52, 0x29, + 0x8e, 0xf6, 0x7e, 0xe3, 0x51, 0x4b, 0xdf, 0x31, 0x6a, 0x1f, 0x3c, 0x66, 0xe9, 0xda, 0x1f, 0xa6, + 0xa0, 0x14, 0x0d, 0x2f, 0xff, 0x6e, 0x72, 0x5e, 0x54, 0x9d, 0xc4, 0x5b, 0xcb, 0xcc, 0x4b, 0xfc, + 0xd4, 0x72, 0xa5, 0x7f, 0x91, 0x9c, 0x26, 0x0f, 0xd6, 0xa6, 0x5f, 0x2e, 0xb0, 0x09, 0x8f, 0xa6, + 0x6d, 0xc2, 0x9b, 0x4b, 0x7d, 0x32, 0x8c, 0xbc, 0xf6, 0xec, 0x40, 0x6a, 0x73, 0xf1, 0x7e, 0xfa, + 0xbd, 0x54, 0xed, 0x2e, 0xac, 0x26, 0x5f, 0xcd, 0x5f, 0x24, 0xbc, 0xff, 0x87, 0x19, 0x58, 0x9b, + 0x2e, 0x35, 0xa0, 0x6b, 0x4b, 0xaa, 0xcc, 0xa5, 0xe3, 0x58, 0x89, 0x82, 0x70, 0xc6, 0xd7, 0xa1, + 0xac, 0x63, 0x3b, 0x42, 0x6c, 0x50, 0x12, 0xc5, 0x1b, 0x09, 0x76, 0x37, 0xf9, 0x73, 0x8c, 0x6f, + 0x70, 0x08, 0x2f, 0x94, 0xb1, 0x31, 0x2f, 0xe9, 0x1f, 0xa6, 0xfa, 0x95, 0x34, 0xaf, 0x24, 0xca, + 0x92, 0x7f, 0x8c, 0x8e, 0xcd, 0xfa, 0xd6, 0xc4, 0xb5, 0x1c, 0x61, 0x45, 0xd8, 0x9f, 0x24, 0xb1, + 0x51, 0x5d, 0xf1, 0xaf, 0x64, 0xf9, 0x1a, 0x94, 0xba, 0x93, 0x63, 0x5d, 0x53, 0xfc, 0x17, 0xb2, + 0xfc, 0x26, 0x6c, 0x68, 0xaa, 0xb8, 0xc4, 0x8f, 0xfd, 0x45, 0x34, 0xc1, 0x6b, 0x0d, 0x35, 0x5e, + 0xba, 0xa1, 0xec, 0x2f, 0x65, 0xb1, 0x09, 0x74, 0x4f, 0xf9, 0x2f, 0x93, 0x9c, 0xe8, 0x56, 0x07, + 0xfb, 0xd5, 0x2c, 0x5f, 0x07, 0xe8, 0xf6, 0xa2, 0x0f, 0xfd, 0x7a, 0x96, 0x97, 0x21, 0xdf, 0xed, + 0x91, 0xb4, 0x1f, 0x65, 0xf9, 0x0d, 0x60, 0xf1, 0x5b, 0x5d, 0xf8, 0xf8, 0xd7, 0x55, 0x63, 0xa2, + 0x4a, 0xc6, 0xbf, 0x91, 0xc5, 0x7e, 0x85, 0xa3, 0xcc, 0xfe, 0x66, 0x96, 0x33, 0x28, 0x27, 0x52, + 0x73, 0xec, 0x6f, 0x65, 0x39, 0x87, 0xca, 0xbe, 0x1d, 0x04, 0xb6, 0x3b, 0xd0, 0x3d, 0xf8, 0x35, + 0xfa, 0xf2, 0x4e, 0x74, 0x31, 0x85, 0xfd, 0x46, 0x96, 0xdf, 0x02, 0x9e, 0x3c, 0x8e, 0xd0, 0x2f, + 0xfe, 0x36, 0x71, 0x2b, 0xb3, 0x1f, 0x68, 0xdc, 0xdf, 0x21, 0x6e, 0xd4, 0x04, 0x8d, 0xf8, 0x4d, + 0x1a, 0x90, 0x66, 0x5c, 0x2a, 0xa9, 0xf1, 0x3f, 0x26, 0xe6, 0x70, 0x32, 0x15, 0xee, 0x27, 0xd9, + 0xfb, 0x3f, 0xa5, 0x74, 0x72, 0xb2, 0xe2, 0x88, 0xaf, 0x42, 0xd1, 0xf1, 0xdc, 0x81, 0x54, 0x3f, + 0x83, 0x59, 0x81, 0x52, 0x30, 0xf4, 0x7c, 0x49, 0x20, 0xdd, 0x9c, 0x73, 0xe9, 0x0e, 0xb5, 0xaa, + 0x4a, 0x57, 0x41, 0x8a, 0x4a, 0xcf, 0x49, 0x73, 0xc0, 0xca, 0x51, 0x91, 0x67, 0x36, 0x2a, 0x44, + 0xa5, 0xbb, 0xdc, 0xe1, 0x5d, 0x59, 0x96, 0x47, 0xd2, 0x89, 0xef, 0xa8, 0x82, 0x54, 0x81, 0x0e, + 0xaa, 0xfa, 0xbd, 0xbb, 0xf1, 0x10, 0xfd, 0xe0, 0x92, 0xc2, 0x7a, 0xdf, 0xb7, 0xd5, 0x2d, 0x4c, + 0x5d, 0xdf, 0x65, 0x61, 0x3b, 0xa2, 0x12, 0x06, 0x26, 0xee, 0xff, 0xdd, 0x14, 0xac, 0x86, 0x37, + 0x98, 0xed, 0x81, 0xed, 0xaa, 0x92, 0xd6, 0xf0, 0xc7, 0x45, 0xfb, 0x8e, 0x3d, 0x0e, 0x7f, 0xac, + 0x6f, 0x1d, 0xca, 0x96, 0x6f, 0x0e, 0x1a, 0xae, 0xb5, 0xed, 0x7b, 0x63, 0xd5, 0x6c, 0x75, 0xe0, + 0xa4, 0x4a, 0x69, 0x9f, 0x8b, 0x63, 0x24, 0x1f, 0x0b, 0x9f, 0x65, 0xa9, 0x76, 0x6c, 0x68, 0xfa, + 0xb6, 0x3b, 0x68, 0x9d, 0x4b, 0xe1, 0x06, 0xaa, 0xa4, 0xb6, 0x0c, 0x85, 0x49, 0x20, 0xfa, 0x66, + 0x20, 0x58, 0x1e, 0x81, 0xe3, 0x89, 0xed, 0x48, 0xdb, 0x55, 0xbf, 0x91, 0x17, 0xd5, 0xcc, 0x16, + 0xb1, 0x67, 0xe6, 0xd8, 0x66, 0xa5, 0xfb, 0xbf, 0x97, 0x82, 0x32, 0xa9, 0x45, 0x9c, 0x52, 0x8d, + 0x5d, 0x8e, 0x32, 0x14, 0xf6, 0xa2, 0x1f, 0x4b, 0xcb, 0x43, 0xba, 0x73, 0xaa, 0x52, 0xaa, 0x5a, + 0x2d, 0xd4, 0x45, 0x44, 0xf5, 0xbb, 0x69, 0x59, 0xfe, 0x39, 0xb8, 0x61, 0x88, 0x91, 0x27, 0xc5, + 0x33, 0xd3, 0x96, 0xc9, 0xeb, 0x29, 0x39, 0x8c, 0x4e, 0xd4, 0xab, 0xf0, 0x3e, 0x4a, 0x9e, 0xa2, + 0x13, 0xfc, 0x6c, 0x88, 0x29, 0x60, 0xef, 0x09, 0xa3, 0xc3, 0x95, 0x62, 0x44, 0xf2, 0x91, 0x67, + 0xbb, 0xf8, 0x35, 0xba, 0xfe, 0x4a, 0x18, 0xca, 0xcd, 0x23, 0x0a, 0xee, 0x1f, 0xc0, 0xcd, 0xc5, + 0x19, 0x65, 0x75, 0x31, 0x96, 0x7e, 0xa1, 0x97, 0x2e, 0x2c, 0x3c, 0xf3, 0x6d, 0x75, 0xbf, 0xb1, + 0x04, 0xb9, 0xce, 0x73, 0x97, 0xd4, 0x62, 0x03, 0x2a, 0x07, 0x5e, 0x82, 0x87, 0x65, 0xee, 0xf7, + 0xa7, 0x0e, 0x01, 0xe2, 0x41, 0x09, 0x1b, 0xb1, 0x92, 0xb8, 0x8c, 0x93, 0x52, 0xe9, 0x65, 0xfa, + 0x27, 0x0b, 0xea, 0x47, 0x03, 0x74, 0xf2, 0xdd, 0x52, 0x3f, 0x1a, 0x10, 0x35, 0x33, 0xab, 0x7e, + 0x3d, 0xc9, 0xed, 0x0b, 0x47, 0x58, 0x2c, 0x77, 0xff, 0x3d, 0x58, 0xd7, 0x5d, 0xed, 0x8b, 0x20, + 0x08, 0x2f, 0xb3, 0x1c, 0xfa, 0xf6, 0x99, 0xfa, 0x61, 0x82, 0x55, 0x28, 0x1e, 0x0a, 0x3f, 0xf0, + 0x5c, 0xfa, 0x51, 0x06, 0x80, 0x7c, 0x77, 0x68, 0xfa, 0xf8, 0x8d, 0xfb, 0x4d, 0x28, 0xd1, 0xe5, + 0x96, 0xc7, 0xb6, 0x6b, 0x61, 0x4f, 0xb6, 0x74, 0x21, 0x36, 0xfd, 0xfa, 0xcd, 0x19, 0xf5, 0xaf, + 0xa8, 0x7e, 0x27, 0x94, 0xa5, 0xf9, 0x4d, 0xe0, 0x18, 0x3d, 0x8f, 0x4c, 0xba, 0x6a, 0xe9, 0x5c, + 0xa8, 0xdf, 0x94, 0xcd, 0xdc, 0xff, 0x36, 0x70, 0x95, 0x03, 0xb2, 0xc4, 0xb9, 0xed, 0x0e, 0xa2, + 0x5b, 0xdc, 0x40, 0x3f, 0xc9, 0x60, 0x89, 0xf3, 0xf0, 0x66, 0x52, 0x08, 0x84, 0x3f, 0x0c, 0xb1, + 0xe3, 0x4d, 0x5c, 0x6c, 0xc5, 0x53, 0xb8, 0xae, 0x74, 0x06, 0x9b, 0x45, 0xf7, 0xf8, 0x2e, 0x0d, + 0x4c, 0xd5, 0xcd, 0x24, 0x39, 0x09, 0x22, 0x5a, 0x96, 0xc2, 0x86, 0x45, 0x41, 0x5d, 0x8c, 0x4f, + 0xdf, 0xaf, 0xc3, 0xb5, 0x05, 0x91, 0x35, 0x59, 0x69, 0x15, 0x5f, 0xb0, 0x95, 0xfb, 0x1f, 0xc2, + 0x86, 0xb2, 0x2b, 0x07, 0xea, 0xa6, 0x55, 0xb8, 0x45, 0x3e, 0x6b, 0xef, 0xb4, 0xd5, 0xd0, 0x35, + 0x5b, 0x7b, 0x7b, 0x4f, 0xf6, 0x1a, 0x06, 0x4b, 0xd1, 0x04, 0x77, 0x7a, 0x47, 0xcd, 0xce, 0xc1, + 0x41, 0xab, 0xd9, 0x6b, 0x6d, 0xb3, 0xf4, 0xd6, 0xfd, 0x7f, 0xf7, 0xe9, 0x9d, 0xd4, 0xcf, 0x3e, + 0xbd, 0x93, 0xfa, 0xaf, 0x9f, 0xde, 0x49, 0xfd, 0xe8, 0xe7, 0x77, 0x56, 0x7e, 0xf6, 0xf3, 0x3b, + 0x2b, 0xff, 0xf9, 0xe7, 0x77, 0x56, 0x3e, 0x61, 0xb3, 0xff, 0xf8, 0xe4, 0x38, 0x4f, 0x2e, 0xed, + 0x5b, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x05, 0xcd, 0x01, 0xec, 0x13, 0x65, 0x00, 0x00, } func (m *SmartBlockSnapshotBase) Marshal() (dAtA []byte, err error) { @@ -13399,6 +13416,20 @@ func (m *ObjectType) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.IconName) > 0 { + i -= len(m.IconName) + copy(dAtA[i:], m.IconName) + i = encodeVarintModels(dAtA, i, uint64(len(m.IconName))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if m.IconColor != 0 { + i = encodeVarintModels(dAtA, i, uint64(m.IconColor)) + i-- + dAtA[i] = 0x78 + } if m.RestrictObjectCreation { i-- if m.RestrictObjectCreation { @@ -17723,6 +17754,13 @@ func (m *ObjectType) Size() (n int) { if m.RestrictObjectCreation { n += 2 } + if m.IconColor != 0 { + n += 1 + sovModels(uint64(m.IconColor)) + } + l = len(m.IconName) + if l > 0 { + n += 2 + l + sovModels(uint64(l)) + } return n } @@ -27990,6 +28028,57 @@ func (m *ObjectType) Unmarshal(dAtA []byte) error { } } m.RestrictObjectCreation = bool(v != 0) + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IconColor", wireType) + } + m.IconColor = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowModels + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.IconColor |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IconName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowModels + } + 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 ErrInvalidLengthModels + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthModels + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IconName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipModels(dAtA[iNdEx:]) diff --git a/pkg/lib/pb/model/protos/models.proto b/pkg/lib/pb/model/protos/models.proto index 955f6546b..a59cef584 100644 --- a/pkg/lib/pb/model/protos/models.proto +++ b/pkg/lib/pb/model/protos/models.proto @@ -769,6 +769,8 @@ message ObjectType { string key = 12; // name of objectType (can be localized for bundled types) int64 revision = 13; // revision of system objectType. Used to check if we should change type content or not bool restrictObjectCreation = 14; // restricts creating objects of this type for users + int64 iconColor = 15; // color of object type icon + string iconName = 16; // name of object type icon enum Layout { basic = 0; diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index ecdc93f81..e32f1d818 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -165,6 +165,8 @@ func buildDiffDetails(origin, current *domain.Details) *domain.Details { bundle.RelationKeyRelationReadonlyValue, bundle.RelationKeyRelationMaxCount, bundle.RelationKeyIconEmoji, + bundle.RelationKeyIconOption, + bundle.RelationKeyIconName, ) details := domain.NewDetails() From 3e5e869054da0d380bc62ca443e2f5b23790e79b Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Tue, 18 Feb 2025 15:32:13 -0300 Subject: [PATCH 129/176] moved perftests-grafana in separate file --- .github/workflows/build.yml | 47 +--------- .github/workflows/perftests-grafana.yml | 120 ++++++++++++++++++++++++ 2 files changed, 122 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/perftests-grafana.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8eb7d2ea0..26b7b98c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,3 +1,5 @@ +name: Build + on: push: tags: @@ -11,16 +13,6 @@ on: description: 'Specify the runner to use' required: true default: 'arm64' - perf-test: - description: 'Run perf test times' - required: true - default: '0' - schedule: - - cron: '0 0 * * *' # every day at midnight - filters: - branches: - include: - - 'main' permissions: @@ -29,7 +21,6 @@ permissions: contents: 'write' -name: Build jobs: build: runs-on: ${{ github.event_name == 'push' && 'arm64' || (github.event.inputs.run-on-runner || 'arm64') }} @@ -105,40 +96,6 @@ jobs: make cross-compile-library ls -lha . - - name: run perf tests - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - env: - ANYTYPE_REPORT_MEMORY: 'true' - TEST_MNEMONIC: ${{ secrets.TEST_MNEMONIC }} - PROM_KEY: ${{ secrets.PROMETHEUS_USERNAME }} - PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} - run: | - echo "Running perf tests" - RUN_COUNT=${{ github.event.inputs.perf-test }} - if [[ "${{ github.event_name }}" == "schedule" ]]; then - RUN_COUNT=10 - fi - cd cmd/perftester/ - CGO_ENABLED="1" go run main.go $RUN_COUNT - - - name: Archive perf tests results - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - uses: actions/upload-artifact@v4 - with: - name: pprofs - path: | - *.pprof - - - name: end run perf tests - if: github.event.inputs.perf-test != '0' || github.event_name == 'schedule' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - rm -rf *.pprof - echo "End running perf tests" - gh run cancel ${{ github.run_id }} - gh run watch ${{ github.run_id }} - - name: Make JS protos if: github.event_name == 'push' run: | diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml new file mode 100644 index 000000000..ca787658b --- /dev/null +++ b/.github/workflows/perftests-grafana.yml @@ -0,0 +1,120 @@ +name: Perftests grafana + +on: + workflow_dispatch: + inputs: + run-on-runner: + description: 'Specify the runner to use' + required: true + default: 'arm64' + perf-test: + description: 'Run perf test times' + required: true + default: '0' + schedule: + - cron: '0 0 * * *' # every day at midnight + filters: + branches: + include: + - 'main' + + +permissions: + actions: 'write' + packages: 'write' + contents: 'write' + + +jobs: + build: + runs-on: ${{ github.event.inputs.run-on-runner }} + steps: + - name: Install Go + if: runner.name != 'mac-mini-org-heart' + uses: actions/setup-go@v4 + with: + go-version: 1.23.2 + check-latest: true + + - name: Setup GO + run: | + go version + echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV + echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV + echo $(go env GOPATH)/bin >> $GITHUB_PATH + + - name: Checkout + uses: actions/checkout@v3 + + - name: Install brew and node deps + if: runner.name != 'mac-mini-org-heart' + run: make install-brew-and-node-deps + + - name: Set env vars + env: + UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }} + INHOUSE_KEY: ${{ secrets.INHOUSE_KEY }} + run: | + GIT_SUMMARY=$(git describe --tags --always) + echo "FLAGS=-X github.com/anyproto/anytype-heart/util/vcs.GitSummary=${GIT_SUMMARY} -X github.com/anyproto/anytype-heart/metrics.DefaultInHouseKey=${INHOUSE_KEY} -X github.com/anyproto/anytype-heart/util/unsplash.DefaultToken=${UNSPLASH_KEY}" >> $GITHUB_ENV + VERSION=$(git rev-parse --short HEAD) + if [ -z "$VERSION" ]; then + VERSION=${GITHUB_REF##*/} + fi + echo VERSION=${VERSION} >> $GITHUB_ENV + echo BUILD_TAG_NETWORK=envproduction >> $GITHUB_ENV + echo MAVEN_ARTIFACT_VERSION=${VERSION} >> $GITHUB_ENV + echo GOPRIVATE=github.com/anyproto >> $GITHUB_ENV + echo $(pwd)/deps >> $GITHUB_PATH + echo "${GOBIN}" >> $GITHUB_PATH + git config --global url."https://${{ secrets.ANYTYPE_PAT }}@github.com/".insteadOf "https://github.com/" + + - name: Go mod download + run: | + go mod download + + - name: install protoc + run: | + make setup-protoc + + - name: setup go + run: | + make setup-go + make setup-gomobile + which gomobile + + - name: Cross-compile library mac/win/linux + run: | + make cross-compile-library + ls -lha . + + - name: run perf tests + env: + ANYTYPE_REPORT_MEMORY: 'true' + TEST_MNEMONIC: ${{ secrets.TEST_MNEMONIC }} + PROM_KEY: ${{ secrets.PROMETHEUS_USERNAME }} + PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} + run: | + echo "Running perf tests" + RUN_COUNT=${{ github.event.inputs.perf-test }} + if [[ "${{ github.event_name }}" == "schedule" ]]; then + RUN_COUNT=10 + fi + cd cmd/perftester/ + CGO_ENABLED="1" go run main.go $RUN_COUNT + + - name: Archive perf tests results + uses: actions/upload-artifact@v4 + with: + name: pprofs + path: | + *.pprof + + - name: end run perf tests + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + rm -rf *.pprof + echo "End running perf tests" + gh run cancel ${{ github.run_id }} + gh run watch ${{ github.run_id }} From 3efcebe1a9b5b8393021f3274bc4947ce60bdc2e Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Tue, 18 Feb 2025 15:37:39 -0300 Subject: [PATCH 130/176] refactoring makefiles/ --- makefiles/ci-cross-compile-library.mk | 51 ++++++++++++++++++ makefiles/ci-install-brew-and-node-deps.mk | 9 ++++ makefiles/ci.mk | 61 ---------------------- 3 files changed, 60 insertions(+), 61 deletions(-) create mode 100644 makefiles/ci-cross-compile-library.mk create mode 100644 makefiles/ci-install-brew-and-node-deps.mk diff --git a/makefiles/ci-cross-compile-library.mk b/makefiles/ci-cross-compile-library.mk new file mode 100644 index 000000000..6d8dc5232 --- /dev/null +++ b/makefiles/ci-cross-compile-library.mk @@ -0,0 +1,51 @@ +BUILD_TAGS ?= $(BUILD_TAG_NETWORK) nographviz nowatchdog nosigar nomutexdeadlockdetector + +cross-compile-library: + echo $(FLAGS) + $(MAKE) -j \ + cross-compile-library-darwin-amd64 \ + cross-compile-library-darwin-arm64 \ + cross-compile-library-windows-amd64 \ + cross-compile-library-linux-amd64 \ + cross-compile-library-linux-arm64 + +cross-compile-library-darwin-amd64: + echo $(SDKROOT) + GOOS="darwin" \ + CGO_CFLAGS="-mmacosx-version-min=11" \ + MACOSX_DEPLOYMENT_TARGET=11.0 \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross-compile-library-darwin-arm64: + SDKROOT=$(shell xcrun --sdk macosx --show-sdk-path) + echo $(SDKROOT) + GOOS="darwin" \ + CGO_CFLAGS="-mmacosx-version-min=11" \ + MACOSX_DEPLOYMENT_TARGET=11.0 \ + GOARCH="arm64" \ + CGO_ENABLED="1" \ + go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross-compile-library-windows-amd64: + GOOS="windows" \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + CC="x86_64-w64-mingw32-gcc" \ + CXX="x86_64-w64-mingw32-g++" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross-compile-library-linux-amd64: + GOOS="linux" \ + GOARCH="amd64" \ + CGO_ENABLED="1" \ + CC="x86_64-linux-musl-gcc" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver + +cross-compile-library-linux-arm64: + GOOS="linux" \ + GOARCH="arm64" \ + CGO_ENABLED="1" \ + CC="aarch64-linux-musl-gcc" \ + go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver diff --git a/makefiles/ci-install-brew-and-node-deps.mk b/makefiles/ci-install-brew-and-node-deps.mk new file mode 100644 index 000000000..e92f6efd3 --- /dev/null +++ b/makefiles/ci-install-brew-and-node-deps.mk @@ -0,0 +1,9 @@ +install-brew-and-node-deps: + curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb + curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install --ignore-dependencies ./swift-protobuf.rb + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install mingw-w64 + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl + npm i -g node-gyp diff --git a/makefiles/ci.mk b/makefiles/ci.mk index ab90cad86..e69de29bb 100644 --- a/makefiles/ci.mk +++ b/makefiles/ci.mk @@ -1,61 +0,0 @@ -install-brew-and-node-deps: - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/31b24d65a7210ea0a5689d5ad00dd8d1bf5211db/Formula/protobuf.rb --output protobuf.rb - curl https://raw.githubusercontent.com/Homebrew/homebrew-core/d600b1f7119f6e6a4e97fb83233b313b0468b7e4/Formula/s/swift-protobuf.rb --output swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install ./protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install --ignore-dependencies ./swift-protobuf.rb - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install mingw-w64 - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew install grpcurl - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 brew tap messense/macos-cross-toolchains && brew install x86_64-unknown-linux-musl && brew install aarch64-unknown-linux-musl - npm i -g node-gyp - -BUILD_TAGS ?= $(BUILD_TAG_NETWORK) nographviz nowatchdog nosigar nomutexdeadlockdetector - -cross-compile-library: - echo $(FLAGS) - $(MAKE) -j \ - cross-compile-library-darwin-amd64 \ - cross-compile-library-darwin-arm64 \ - cross-compile-library-windows-amd64 \ - cross-compile-library-linux-amd64 \ - cross-compile-library-linux-arm64 - -cross-compile-library-darwin-amd64: - echo $(SDKROOT) - GOOS="darwin" \ - CGO_CFLAGS="-mmacosx-version-min=11" \ - MACOSX_DEPLOYMENT_TARGET=11.0 \ - GOARCH="amd64" \ - CGO_ENABLED="1" \ - go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - -cross-compile-library-darwin-arm64: - SDKROOT=$(shell xcrun --sdk macosx --show-sdk-path) - echo $(SDKROOT) - GOOS="darwin" \ - CGO_CFLAGS="-mmacosx-version-min=11" \ - MACOSX_DEPLOYMENT_TARGET=11.0 \ - GOARCH="arm64" \ - CGO_ENABLED="1" \ - go build -tags="$(BUILD_TAGS)" -ldflags="$(FLAGS)" -o darwin-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver - -cross-compile-library-windows-amd64: - GOOS="windows" \ - GOARCH="amd64" \ - CGO_ENABLED="1" \ - CC="x86_64-w64-mingw32-gcc" \ - CXX="x86_64-w64-mingw32-g++" \ - go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags=-static" -o windows-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - -cross-compile-library-linux-amd64: - GOOS="linux" \ - GOARCH="amd64" \ - CGO_ENABLED="1" \ - CC="x86_64-linux-musl-gcc" \ - go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external -extldflags '-static -Wl,-z stack-size=1000000'" -o linux-amd64 github.com/anyproto/anytype-heart/cmd/grpcserver - -cross-compile-library-linux-arm64: - GOOS="linux" \ - GOARCH="arm64" \ - CGO_ENABLED="1" \ - CC="aarch64-linux-musl-gcc" \ - go build -tags="$(BUILD_TAGS) noheic" -ldflags="$(FLAGS) -linkmode external" -o linux-arm64 github.com/anyproto/anytype-heart/cmd/grpcserver From 9ef6db6ebdd3d668f6e405a42dc305c590abff79 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Tue, 18 Feb 2025 15:38:22 -0300 Subject: [PATCH 131/176] removed makefiles/ci.mk --- makefiles/ci.mk | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 makefiles/ci.mk diff --git a/makefiles/ci.mk b/makefiles/ci.mk deleted file mode 100644 index e69de29bb..000000000 From a7172886e9ea9f591057ab716f8cb39543ed3ad4 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 19 Feb 2025 20:31:58 +0300 Subject: [PATCH 132/176] GO-5126 Migrate icons for bundled non system types --- pkg/lib/bundle/types.gen.go | 9 ++- pkg/lib/bundle/types.json | 21 ++++--- .../systemobjectreviser.go | 57 ++++++++++--------- .../systemobjectreviser_test.go | 11 +++- 4 files changed, 61 insertions(+), 37 deletions(-) diff --git a/pkg/lib/bundle/types.gen.go b/pkg/lib/bundle/types.gen.go index 7a7904c8c..d7bf61a5a 100644 --- a/pkg/lib/bundle/types.gen.go +++ b/pkg/lib/bundle/types.gen.go @@ -9,7 +9,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) -const TypeChecksum = "55b112c49ecef2287e6a8a0b17d70955608139e1805dcb3fb742dc7eb43236be" +const TypeChecksum = "c4f1cd92b533a4b5f533c01185049b8c7c170401c2f0bf09d6d888cad6a61669" const ( TypePrefix = "_ot" ) @@ -70,6 +70,7 @@ var ( Name: "Book", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAuthor), MustGetRelationLink(RelationKeyStarred), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyUrl)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "book", }, @@ -136,6 +137,7 @@ var ( Name: "Contact", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyCompany), MustGetRelationLink(RelationKeyEmail), MustGetRelationLink(RelationKeyPhone)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "contact", }, @@ -173,6 +175,7 @@ var ( Name: "Diary Entry", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyMood)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "diaryEntry", }, @@ -199,6 +202,7 @@ var ( Name: "Goal", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyProgress), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyTasks)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "goal", }, @@ -225,6 +229,7 @@ var ( Name: "Movie", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyGenre), MustGetRelationLink(RelationKeyStatus)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "movie", }, @@ -303,6 +308,7 @@ var ( Name: "Project", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyTasks)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "project", }, @@ -315,6 +321,7 @@ var ( Name: "Recipe", Readonly: true, RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyIngredients), MustGetRelationLink(RelationKeyTime)}, + Revision: 1, Types: []model.SmartBlockType{model.SmartBlockType_Page}, Url: TypePrefix + "recipe", }, diff --git a/pkg/lib/bundle/types.json b/pkg/lib/bundle/types.json index 50ad891d6..383883f81 100644 --- a/pkg/lib/bundle/types.json +++ b/pkg/lib/bundle/types.json @@ -14,7 +14,8 @@ "ingredients", "time" ], - "description": "A recipe is a set of instructions that describes how to prepare or make something, especially a dish of prepared food" + "description": "A recipe is a set of instructions that describes how to prepare or make something, especially a dish of prepared food", + "revision": 1 }, { "id": "note", @@ -48,7 +49,8 @@ "email", "phone" ], - "description": "Information to make action of communicating or meeting with Human or Company" + "description": "Information to make action of communicating or meeting with Human or Company", + "revision": 1 }, { "id": "bookmark", @@ -143,7 +145,8 @@ "status", "url" ], - "description": "A book is a medium for recording information in the form of writing or images, typically composed of many pages bound together and protected by a cover" + "description": "A book is a medium for recording information in the form of writing or images, typically composed of many pages bound together and protected by a cover", + "revision": 1 }, { "id": "video", @@ -200,7 +203,8 @@ "genre", "status" ], - "description": "Motion picture or Moving picture, is a work of visual art used to simulate experiences that communicate ideas, stories, perceptions, feelings, beauty, or atmosphere through the use of moving images" + "description": "Motion picture or Moving picture, is a work of visual art used to simulate experiences that communicate ideas, stories, perceptions, feelings, beauty, or atmosphere through the use of moving images", + "revision": 1 }, { "id": "objectType", @@ -345,7 +349,8 @@ "tag", "mood" ], - "description": "Record of events and experiences" + "description": "Record of events and experiences", + "revision": 1 }, { "id": "page", @@ -452,7 +457,8 @@ "status", "tasks" ], - "description": "The object of a person's ambition or effort; an aim or desired result" + "description": "The object of a person's ambition or effort; an aim or desired result", + "revision": 1 }, { "id": "file", @@ -489,7 +495,8 @@ "tag", "tasks" ], - "description": "An individual or collaborative enterprise that is carefully planned to achieve a particular aim" + "description": "An individual or collaborative enterprise that is carefully planned to achieve a particular aim", + "revision": 1 }, { "id": "chat", diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index e32f1d818..6bd2a9afc 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -87,7 +87,7 @@ func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies. return false, fmt.Errorf("failed to unmarshal unique key '%s': %w", uniqueKeyRaw, err) } - bundleObject := getBundleSystemObjectDetails(uk) + bundleObject, isSystem := getBundleObjectDetails(uk) if bundleObject == nil { return false, nil } @@ -95,7 +95,7 @@ func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies. if bundleObject.GetInt64(revisionKey) <= localObject.GetInt64(revisionKey) { return false, nil } - details := buildDiffDetails(bundleObject, localObject) + details := buildDiffDetails(bundleObject, localObject, isSystem) recRelsDetails, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) if err != nil { @@ -130,44 +130,49 @@ func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies. return true, nil } -// getBundleSystemObjectDetails returns nil if the object with provided unique key is not either system relation or system type -func getBundleSystemObjectDetails(uk domain.UniqueKey) *domain.Details { +// getBundleObjectDetails returns nil if the object with provided unique key is not either system relation or bundled type +func getBundleObjectDetails(uk domain.UniqueKey) (details *domain.Details, isSystem bool) { switch uk.SmartblockType() { case coresb.SmartBlockTypeObjectType: - if !isSystemType(uk) { - // non system object type, no need to revise - return nil - } typeKey := domain.TypeKey(uk.InternalKey()) - objectType := bundle.MustGetType(typeKey) - return (&relationutils.ObjectType{ObjectType: objectType}).BundledTypeDetails() + objectType, err := bundle.GetType(typeKey) + if err != nil { + // not bundled type, no need to revise + return nil, false + } + return (&relationutils.ObjectType{ObjectType: objectType}).BundledTypeDetails(), isSystemType(uk) case coresb.SmartBlockTypeRelation: if !isSystemRelation(uk) { // non system relation, no need to revise - return nil + return nil, false } relationKey := domain.RelationKey(uk.InternalKey()) relation := bundle.MustGetRelation(relationKey) - return (&relationutils.Relation{Relation: relation}).ToDetails() + return (&relationutils.Relation{Relation: relation}).ToDetails(), true default: - return nil + return nil, false } } -func buildDiffDetails(origin, current *domain.Details) *domain.Details { +func buildDiffDetails(origin, current *domain.Details, isSystem bool) *domain.Details { + // non-system bundled types are going to update only icons for now + filterKeys := []domain.RelationKey{bundle.RelationKeyIconOption, bundle.RelationKeyIconName} + if isSystem { + filterKeys = []domain.RelationKey{ + bundle.RelationKeyName, + bundle.RelationKeyDescription, + bundle.RelationKeyIsReadonly, + bundle.RelationKeyIsHidden, + bundle.RelationKeyRevision, + bundle.RelationKeyRelationReadonlyValue, + bundle.RelationKeyRelationMaxCount, + bundle.RelationKeyIconEmoji, + bundle.RelationKeyIconOption, + bundle.RelationKeyIconName, + } + } diff, _ := domain.StructDiff(current, origin) - diff = diff.CopyOnlyKeys( - bundle.RelationKeyName, - bundle.RelationKeyDescription, - bundle.RelationKeyIsReadonly, - bundle.RelationKeyIsHidden, - bundle.RelationKeyRevision, - bundle.RelationKeyRelationReadonlyValue, - bundle.RelationKeyRelationMaxCount, - bundle.RelationKeyIconEmoji, - bundle.RelationKeyIconOption, - bundle.RelationKeyIconName, - ) + diff = diff.CopyOnlyKeys(filterKeys...) details := domain.NewDetails() for key, value := range diff.Iterate() { diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go index ace7d7f05..e9be0378f 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser_test.go @@ -124,20 +124,25 @@ func TestReviseSystemObject(t *testing.T) { assert.False(t, toRevise) }) - t.Run("non system object type is not updated", func(t *testing.T) { + t.Run("non system bundled object type is updated", func(t *testing.T) { // given objectType := domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ bundle.RelationKeySourceObject: domain.String("_otcontact"), bundle.RelationKeyUniqueKey: domain.String("ot-contact"), }) - space := mock_space.NewMockSpace(t) // if unexpected space.Do will be called, test will fail + space := mock_space.NewMockSpace(t) + space.EXPECT().DoCtx(mock.Anything, mock.Anything, mock.Anything).Times(1).Return(nil) + space.EXPECT().Id().Times(1).Return("") + space.EXPECT().DeriveObjectID(mock.Anything, mock.Anything).RunAndReturn(func(_ context.Context, key domain.UniqueKey) (string, error) { + return addr.ObjectTypeKeyToIdPrefix + key.InternalKey(), nil + }).Maybe() // when toRevise, err := reviseObject(ctx, log, space, objectType) // then assert.NoError(t, err) - assert.False(t, toRevise) + assert.True(t, toRevise) }) t.Run("system object type with same revision is not updated", func(t *testing.T) { From 2acdcdc78e095717e3ec314463f2f24db28453a9 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 19 Feb 2025 20:34:58 +0300 Subject: [PATCH 133/176] GO-5126 Do not migrate recommended relations --- .../systemobjectreviser.go | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go index 6bd2a9afc..3f17938f8 100644 --- a/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go +++ b/space/internal/components/migration/systemobjectreviser/systemobjectreviser.go @@ -97,22 +97,24 @@ func reviseObject(ctx context.Context, log logger.CtxLogger, space dependencies. } details := buildDiffDetails(bundleObject, localObject, isSystem) - recRelsDetails, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) - if err != nil { - log.Error("failed to check recommended relations", zap.Error(err)) - } + if isSystem { + recRelsDetails, err := checkRecommendedRelations(ctx, space, bundleObject, localObject) + if err != nil { + log.Error("failed to check recommended relations", zap.Error(err)) + } - for _, recRelsDetail := range recRelsDetails { - details.Set(recRelsDetail.Key, recRelsDetail.Value) - } + for _, recRelsDetail := range recRelsDetails { + details.Set(recRelsDetail.Key, recRelsDetail.Value) + } - relFormatOTDetail, err := checkRelationFormatObjectTypes(ctx, space, bundleObject, localObject) - if err != nil { - log.Error("failed to check relation format object types", zap.Error(err)) - } + relFormatOTDetail, err := checkRelationFormatObjectTypes(ctx, space, bundleObject, localObject) + if err != nil { + log.Error("failed to check relation format object types", zap.Error(err)) + } - if relFormatOTDetail != nil { - details.Set(relFormatOTDetail.Key, relFormatOTDetail.Value) + if relFormatOTDetail != nil { + details.Set(relFormatOTDetail.Key, relFormatOTDetail.Value) + } } if details.Len() > 0 { From cd5f0429a62e728ecd2c0c3174529af77033daa2 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 19 Feb 2025 21:13:56 +0300 Subject: [PATCH 134/176] Fix resolvedLayout update on conflict resolution --- core/block/editor/smartblock/detailsinject.go | 9 +++++++- .../editor/smartblock/detailsinject_test.go | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index da44138f7..820d4a513 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -245,7 +245,14 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { return } - if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { + var parentLayoutValue domain.Value + parent := s.ParentState() + if parent != nil { + parentLayoutValue = parent.Details().Get(bundle.RelationKeyLayout) + } + + if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() && !parentLayoutValue.Ok() { + // we can leave current value as is, if layout is not being unset right now return } diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go index a252178f5..6e6e1b30d 100644 --- a/core/block/editor/smartblock/detailsinject_test.go +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -378,6 +378,27 @@ func TestInjectResolvedLayout(t *testing.T) { // then assert.Equal(t, int64(model.ObjectType_basic), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) + t.Run("layout is resolved from object store, because layout relation is deleted", func(t *testing.T) { + // given + fx := newFixture(id, t) + + st := state.NewDoc("id", nil).NewState() + st.SetDetail(bundle.RelationKeyCoverId, domain.String("red")) + st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyProfile.URL())) + st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_todo)) + st.ParentState().SetDetail(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_todo)) + + fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{{ + bundle.RelationKeyId: domain.String(bundle.TypeKeyProfile.URL()), + bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_profile), + }}) + + // when + fx.injectResolvedLayout(st) + + // then + assert.Equal(t, int64(model.ObjectType_profile), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + }) } func TestChangeResolvedLayoutForObjects(t *testing.T) { From 05ffb5e6dace26a7fd22248426d9ec0741945316 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Thu, 20 Feb 2025 13:53:20 -0300 Subject: [PATCH 135/176] GO-0000 fixed golangci-lint: 1. updated go version 2. removed unsupported params from .golangci.yml --- .github/workflows/golangci-lint.yml | 4 ++-- .golangci.yml | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 3efd85138..6f6e85306 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/setup-go@v5 with: - go-version: 1.22 + go-version: 1.23 cache: false env: GOPRIVATE: "github.com/anyproto" @@ -35,4 +35,4 @@ jobs: skip-cache: true version: latest only-new-issues: true - args: --timeout 25m --verbose \ No newline at end of file + args: --timeout 25m --verbose diff --git a/.golangci.yml b/.golangci.yml index e1ae4a969..842ae7eec 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,10 +1,10 @@ run: - deadline: 15m + #deadline: 15m timeout: 15m # didn't run linter on tests tests: false # don't check generated protobuf files - go: '1.22' + go: '1.23' issues: exclude-generated: disable @@ -26,8 +26,8 @@ linters-settings: report-no-exported: true goimports: local-prefixes: github.com/anyproto/anytype-heart - govet: - check-shadowing: false +# govet: +# check-shadowing: false funlen: lines: 120 statements: 100 @@ -73,8 +73,8 @@ linters: - govet - unconvert - errorlint - max-issues-per-linter: 0 - max-same-issues: 0 + #max-issues-per-linter: 0 + #max-same-issues: 0 severity: default-severity: error From 8e59a9f41cdf235b9225b7f536e440f31e6256f6 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Thu, 20 Feb 2025 14:09:18 -0300 Subject: [PATCH 136/176] GO-0000 .golangci.yml removed the commented-out parameters --- .golangci.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 842ae7eec..cf941da80 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,4 @@ run: - #deadline: 15m timeout: 15m # didn't run linter on tests tests: false @@ -26,8 +25,6 @@ linters-settings: report-no-exported: true goimports: local-prefixes: github.com/anyproto/anytype-heart -# govet: -# check-shadowing: false funlen: lines: 120 statements: 100 @@ -73,8 +70,6 @@ linters: - govet - unconvert - errorlint - #max-issues-per-linter: 0 - #max-same-issues: 0 severity: default-severity: error From 422387008675d4232c3a7c844609ae7f4c1f078c Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 20 Feb 2025 21:37:44 +0300 Subject: [PATCH 137/176] GO-5134 Set description to space view --- core/block/editor/spaceview.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/block/editor/spaceview.go b/core/block/editor/spaceview.go index 3d8f0de21..d8b89a466 100644 --- a/core/block/editor/spaceview.go +++ b/core/block/editor/spaceview.go @@ -257,6 +257,7 @@ var workspaceKeysToCopy = []domain.RelationKey{ bundle.RelationKeySpaceDashboardId, bundle.RelationKeyCreatedDate, bundle.RelationKeyChatId, + bundle.RelationKeyDescription, } func (s *SpaceView) GetSpaceDescription() (data spaceinfo.SpaceDescription) { From 0fa865794aec1c04213da2fbec2f06d45b3e0074 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Thu, 20 Feb 2025 17:47:16 -0300 Subject: [PATCH 138/176] .github/workflows/perftests*.yml small naming refactoring --- .github/workflows/perftests-grafana.yml | 4 ++-- .github/workflows/perftests.yml | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index ca787658b..bb07d8b4b 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -1,4 +1,4 @@ -name: Perftests grafana +name: Perf tests grafana on: workflow_dispatch: @@ -26,7 +26,7 @@ permissions: jobs: - build: + perftests-grafana: runs-on: ${{ github.event.inputs.run-on-runner }} steps: - name: Install Go diff --git a/.github/workflows/perftests.yml b/.github/workflows/perftests.yml index 302046e51..02b74c084 100644 --- a/.github/workflows/perftests.yml +++ b/.github/workflows/perftests.yml @@ -1,4 +1,7 @@ #https://linear.app/anytype/issue/GO-3985/make-performance-report-on-the-stand +name: Perf tests + + on: workflow_dispatch: inputs: @@ -21,12 +24,12 @@ on: include: - 'main' + permissions: actions: 'write' contents: 'write' -name: Perf tests jobs: perftests-macos: timeout-minutes: 60 From 5190096ac8028445d6d159d02431550e1208ac80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 13:20:49 +0100 Subject: [PATCH 139/176] Bump github.com/klauspost/compress from 1.17.11 to 1.18.0 (#2144) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 96c28da04..cc67df062 100644 --- a/go.mod +++ b/go.mod @@ -61,7 +61,7 @@ require ( github.com/joho/godotenv v1.5.1 github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 github.com/kelseyhightower/envconfig v1.4.0 - github.com/klauspost/compress v1.17.11 + github.com/klauspost/compress v1.18.0 github.com/kovidgoyal/imaging v1.6.4 github.com/libp2p/zeroconf/v2 v2.2.0 github.com/logrusorgru/aurora v2.0.3+incompatible diff --git a/go.sum b/go.sum index 61f3c6384..2d16707d9 100644 --- a/go.sum +++ b/go.sum @@ -666,8 +666,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= From 9f644ff6e6b74429c404de23f8e58a9b7b05d6d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 13:21:05 +0100 Subject: [PATCH 140/176] Bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 (#2142) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index cc67df062..af6407466 100644 --- a/go.mod +++ b/go.mod @@ -81,7 +81,7 @@ require ( github.com/otiai10/copy v1.14.1 github.com/otiai10/opengraph/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/client_golang v1.21.0 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.49.1 @@ -246,7 +246,7 @@ require ( github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/pseudomuto/protokit v0.2.1 // indirect github.com/quic-go/quic-go v0.49.0 // indirect diff --git a/go.sum b/go.sum index 2d16707d9..b491a755b 100644 --- a/go.sum +++ b/go.sum @@ -923,8 +923,8 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= +github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -938,8 +938,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= -github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 885bbf1f31752e0debdbd45c8f596d91b3b7e1cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 13:45:11 +0100 Subject: [PATCH 141/176] Bump github.com/ipfs/go-datastore from 0.6.0 to 0.7.0 (#2143) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index af6407466..59ad49171 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( github.com/ipfs/boxo v0.27.4 github.com/ipfs/go-block-format v0.2.0 github.com/ipfs/go-cid v0.5.0 - github.com/ipfs/go-datastore v0.6.0 + github.com/ipfs/go-datastore v0.7.0 github.com/ipfs/go-ds-flatfs v0.5.1 github.com/ipfs/go-ipld-format v0.6.0 github.com/ipfs/go-log v1.0.5 diff --git a/go.sum b/go.sum index b491a755b..b4abb83e7 100644 --- a/go.sum +++ b/go.sum @@ -591,9 +591,8 @@ github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArf github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg= github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= -github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= -github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= -github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-datastore v0.7.0 h1:a6JMuRFKYhw6XXmIVoTthF8ZFm4QQXvLDXFhXRVv8Go= +github.com/ipfs/go-datastore v0.7.0/go.mod h1:ucOWMfbOPI6ZEyaIB1q/+78RPLBPERfuUVYX1EPnNpQ= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4= github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4= From 42faa9204a867de1fb27c9cb3c158a6296d8d668 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 11:58:38 -0300 Subject: [PATCH 142/176] .github/workflows/perftests-grafana.yml fixed runs-on --- .github/workflows/perftests-grafana.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index bb07d8b4b..7c644a688 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -27,7 +27,7 @@ permissions: jobs: perftests-grafana: - runs-on: ${{ github.event.inputs.run-on-runner }} + runs-on: ${{ github.event.inputs.run-on-runner || 'arm64' }} steps: - name: Install Go if: runner.name != 'mac-mini-org-heart' From 5458d827550a874ba74a817a1bb9b342d4a5989b Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 12:47:55 -0300 Subject: [PATCH 143/176] .github/workflows/perftests-grafana.yml fixed "perf tests results" step --- .github/workflows/perftests-grafana.yml | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index 7c644a688..43ded7b38 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -107,14 +107,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: pprofs - path: | - *.pprof + path: *.pprof - - name: end run perf tests - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - rm -rf *.pprof - echo "End running perf tests" - gh run cancel ${{ github.run_id }} - gh run watch ${{ github.run_id }} + - name: Clean perf tests results + run: rm -rf *.pprof From ada4423e11762b8426895b3184defeafff25c922 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 12:54:10 -0300 Subject: [PATCH 144/176] .github/workflows/perftests-grafana.yml fixed "path: *.pprof" --- .github/workflows/perftests-grafana.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index 43ded7b38..303e71e9b 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -107,7 +107,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: pprofs - path: *.pprof + path: | + *.pprof - name: Clean perf tests results run: rm -rf *.pprof From 94d37dd11a8e69118fc4b44a4ca9fd1f8b0b0f73 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 13:08:26 -0300 Subject: [PATCH 145/176] .github/workflows/perftests-grafana.yml removed param "perf-test" --- .github/workflows/perftests-grafana.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index 303e71e9b..fdedcff6b 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -7,10 +7,6 @@ on: description: 'Specify the runner to use' required: true default: 'arm64' - perf-test: - description: 'Run perf test times' - required: true - default: '0' schedule: - cron: '0 0 * * *' # every day at midnight filters: @@ -96,12 +92,8 @@ jobs: PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} run: | echo "Running perf tests" - RUN_COUNT=${{ github.event.inputs.perf-test }} - if [[ "${{ github.event_name }}" == "schedule" ]]; then - RUN_COUNT=10 - fi cd cmd/perftester/ - CGO_ENABLED="1" go run main.go $RUN_COUNT + CGO_ENABLED="1" go run main.go 10 - name: Archive perf tests results uses: actions/upload-artifact@v4 From 5222f44f8301bbba73d47f10da1afa15ff24d464 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Wed, 19 Feb 2025 12:14:33 +0100 Subject: [PATCH 146/176] GO-5171 Revert "Merge pull request #2052 from anyproto/GO-4146-new-spacestore" This reverts commit 862fd01621f4164c45a4586eda1caed18d63340f, reversing changes made to ea41c4784dd8f7957226012b155585cd8138dbae. # Conflicts: # clientlibrary/service/service.pb.go # core/block/source/store.go # go.mod # go.sum # pb/commands.pb.go # pb/service/service.pb.go # Conflicts: # clientlibrary/service/service.pb.go # go.mod # go.sum # pb/commands.pb.go # pb/service/service.pb.go --- .mockery.yaml | 3 - clientlibrary/service/service.pb.go | 764 ++- cmd/debugtree/debugtree.go | 46 +- cmd/grpcserver/performance.go | 2 +- core/account.go | 31 - core/acl/aclservice.go | 3 +- core/acl/aclservice_test.go | 7 +- core/anytype/bootstrap.go | 15 - core/anytype/config/config.go | 23 +- core/application/account_select.go | 14 +- core/application/account_store_migrate.go | 222 - core/application/application.go | 6 +- core/block/debug.go | 40 - core/block/editor/chatobject/chatobject.go | 5 - .../block/editor/state/test/buildfast_test.go | 128 +- core/block/editor/storestate/tx.go | 4 + core/block/object/idresolver/resolver.go | 9 +- core/block/object/objectcache/payload_test.go | 2 +- core/block/object/treesyncer/treesyncer.go | 2 +- .../object/treesyncer/treesyncer_test.go | 7 +- core/block/service.go | 2 +- core/block/source/mock_source/mock_Store.go | 33 - core/block/source/service.go | 7 +- core/block/source/store.go | 40 +- core/block/source/store_apply.go | 111 +- core/block/source/store_apply_test.go | 162 +- core/configfetcher/configfetcher.go | 6 +- core/debug/exporter/exporter.go | 111 - core/debug/exporter/importer.go | 96 - core/debug/treearchive/archivewriter.go | 99 + core/debug/treearchive/treearchive.go | 91 + .../{exporter => treearchive}/treeimporter.go | 36 +- .../zipaclstorage/aclreadstorage.go | 77 + .../zipaclstorage/aclwritestorage.go | 59 + .../ziptreestorage/treereadstorage.go | 116 + .../ziptreestorage/treewritestorage.go | 110 + core/debug/treeexporter.go | 80 +- core/indexer/fulltext_test.go | 1 + core/indexer/indexer.go | 2 +- core/indexer/indexer_test.go | 4 + core/indexer/reindex.go | 46 +- core/indexer/reindex_test.go | 32 +- core/indexer/spaceindexer.go | 23 +- core/publish/service.go | 8 +- core/publish/service_test.go | 68 +- .../syncstatus/objectsyncstatus/syncstatus.go | 2 +- .../objectsyncstatus/syncstatus_test.go | 5 +- core/util.go | 19 +- core/util_test.go | 20 +- docs/proto.md | 155 - go.mod | 17 +- go.sum | 66 +- pb/commands.pb.go | 4088 ++++++----------- pb/protos/commands.proto | 49 - pb/protos/events.proto | 2 +- pb/protos/service/service.proto | 2 - .../mock_service/mock_ClientCommandsServer.go | 98 - pb/service/service.pb.go | 762 ++- pkg/lib/datastore/clientds/clientds.go | 7 +- pkg/lib/localstore/objectstore/fixture.go | 6 +- pkg/lib/localstore/objectstore/service.go | 46 +- .../objectstore/spaceresolverstore/store.go | 71 - .../mock_clientspace/mock_Space.go | 18 +- space/clientspace/space.go | 32 +- space/clientspace/virtualspace.go | 6 +- .../aclobjectmananger_test.go | 4 + space/spacecore/oldstorage/storage.go | 65 - space/spacecore/rpchandler.go | 2 +- .../storage/anystorage/clientstorage.go | 132 - .../mock_ClientSpaceStorage.go | 917 ---- .../storage/anystorage/storageservice.go | 134 - space/spacecore/storage/badgerstorage/keys.go | 4 - .../storage/badgerstorage/liststorage.go | 13 +- .../storage/badgerstorage/liststorage_test.go | 6 +- .../storage/badgerstorage/spacestorage.go | 16 +- .../badgerstorage/spacestorage_test.go | 60 +- .../storage/badgerstorage/storageservice.go | 45 +- .../storage/badgerstorage/treestorage.go | 77 +- .../storage/badgerstorage/treestorage_test.go | 59 +- space/spacecore/storage/migrator/migrator.go | 247 - .../storage/migrator/migrator_test.go | 203 - .../testdata/badger_spacestore/000001.sst | Bin 1031871 -> 0 bytes .../testdata/badger_spacestore/000001.vlog | Bin 20 -> 0 bytes .../testdata/badger_spacestore/DISCARD | Bin 1048576 -> 0 bytes .../testdata/badger_spacestore/KEYREGISTRY | 1 - .../testdata/badger_spacestore/MANIFEST | Bin 28 -> 0 bytes .../storage/migrator/testdata/spaceStore.db | Bin 1572864 -> 0 bytes space/spacecore/storage/migrator/verifier.go | 224 - .../storage/migratorfinisher/finisher.go | 96 - .../mock_storage/mock_ClientStorage.go | 270 +- space/spacecore/storage/sqlitestorage/list.go | 10 +- .../storage/sqlitestorage/list_test.go | 4 +- .../storage/sqlitestorage/service.go | 41 +- .../storage/sqlitestorage/service_test.go | 30 +- .../spacecore/storage/sqlitestorage/space.go | 16 +- .../storage/sqlitestorage/space_test.go | 17 +- space/spacecore/storage/sqlitestorage/sql.go | 11 +- space/spacecore/storage/sqlitestorage/tree.go | 56 +- .../storage/sqlitestorage/tree_test.go | 68 +- space/spacecore/storage/storage.go | 24 +- space/spacecore/typeprovider/typeprovider.go | 9 +- space/spacefactory/spacefactory.go | 9 +- util/freespace/freespace_unix.go | 16 - util/freespace/freespace_windows.go | 15 - util/ziputil/ziputil.go | 89 - util/ziputil/ziputil_test.go | 92 - 106 files changed, 3515 insertions(+), 7791 deletions(-) delete mode 100644 core/application/account_store_migrate.go delete mode 100644 core/debug/exporter/exporter.go delete mode 100644 core/debug/exporter/importer.go create mode 100644 core/debug/treearchive/archivewriter.go create mode 100644 core/debug/treearchive/treearchive.go rename core/debug/{exporter => treearchive}/treeimporter.go (69%) create mode 100644 core/debug/treearchive/zipaclstorage/aclreadstorage.go create mode 100644 core/debug/treearchive/zipaclstorage/aclwritestorage.go create mode 100644 core/debug/treearchive/ziptreestorage/treereadstorage.go create mode 100644 core/debug/treearchive/ziptreestorage/treewritestorage.go delete mode 100644 pkg/lib/localstore/objectstore/spaceresolverstore/store.go delete mode 100644 space/spacecore/oldstorage/storage.go delete mode 100644 space/spacecore/storage/anystorage/clientstorage.go delete mode 100644 space/spacecore/storage/anystorage/mock_anystorage/mock_ClientSpaceStorage.go delete mode 100644 space/spacecore/storage/anystorage/storageservice.go delete mode 100644 space/spacecore/storage/migrator/migrator.go delete mode 100644 space/spacecore/storage/migrator/migrator_test.go delete mode 100644 space/spacecore/storage/migrator/testdata/badger_spacestore/000001.sst delete mode 100644 space/spacecore/storage/migrator/testdata/badger_spacestore/000001.vlog delete mode 100644 space/spacecore/storage/migrator/testdata/badger_spacestore/DISCARD delete mode 100644 space/spacecore/storage/migrator/testdata/badger_spacestore/KEYREGISTRY delete mode 100644 space/spacecore/storage/migrator/testdata/badger_spacestore/MANIFEST delete mode 100644 space/spacecore/storage/migrator/testdata/spaceStore.db delete mode 100644 space/spacecore/storage/migrator/verifier.go delete mode 100644 space/spacecore/storage/migratorfinisher/finisher.go delete mode 100644 util/freespace/freespace_unix.go delete mode 100644 util/freespace/freespace_windows.go delete mode 100644 util/ziputil/ziputil.go delete mode 100644 util/ziputil/ziputil_test.go diff --git a/.mockery.yaml b/.mockery.yaml index 12e4ea8f5..55cad2d23 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -97,9 +97,6 @@ packages: github.com/anyproto/anytype-heart/space/spacecore/storage: interfaces: ClientStorage: - github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage: - interfaces: - ClientSpaceStorage: github.com/anyproto/anytype-heart/space/techspace: interfaces: TechSpace: diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 1395d7884..2ff9d1f71 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,352 +25,350 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5514 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, - 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, - 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x82, 0x1e, 0x7b, 0xec, 0xf5, - 0x9d, 0xed, 0x35, 0xee, 0xf6, 0x8c, 0xb4, 0x12, 0x12, 0xe5, 0xaa, 0x74, 0xbb, 0x70, 0x75, 0x65, - 0x5d, 0x55, 0x76, 0x7b, 0xfa, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x9c, 0xf8, 0x27, 0x78, 0x42, - 0x42, 0x7c, 0x00, 0x3e, 0x06, 0x8f, 0xf7, 0xc8, 0x23, 0xda, 0xfd, 0x0a, 0x7c, 0x00, 0x54, 0xf9, - 0x3f, 0xa3, 0x32, 0xb2, 0xca, 0xcb, 0xd3, 0x8c, 0x1c, 0xbf, 0x88, 0xc8, 0xac, 0x8c, 0xcc, 0x8c, - 0xcc, 0xca, 0xca, 0x8e, 0xee, 0x96, 0x17, 0x3b, 0x65, 0x45, 0x19, 0xad, 0x77, 0x6a, 0x52, 0x2d, - 0xb3, 0x84, 0xa8, 0x7f, 0x47, 0xfc, 0xcf, 0xc3, 0x37, 0xe3, 0x62, 0xc5, 0x56, 0x25, 0x79, 0xef, - 0x5d, 0x43, 0x26, 0x74, 0x3e, 0x8f, 0x8b, 0xb4, 0x16, 0xc8, 0x7b, 0xef, 0x18, 0x09, 0x59, 0x92, - 0x82, 0xc9, 0xbf, 0x3f, 0xfd, 0x8f, 0xff, 0x1d, 0x44, 0x6f, 0xed, 0xe6, 0x19, 0x29, 0xd8, 0xae, - 0xd4, 0x18, 0x7e, 0x19, 0x7d, 0x7b, 0x5c, 0x96, 0x07, 0x84, 0xbd, 0x24, 0x55, 0x9d, 0xd1, 0x62, - 0xf8, 0xc1, 0x48, 0x3a, 0x18, 0x9d, 0x95, 0xc9, 0x68, 0x5c, 0x96, 0x23, 0x23, 0x1c, 0x9d, 0x91, - 0x1f, 0x2f, 0x48, 0xcd, 0xde, 0x7b, 0x10, 0x86, 0xea, 0x92, 0x16, 0x35, 0x19, 0x5e, 0x46, 0xbf, - 0x32, 0x2e, 0xcb, 0x09, 0x61, 0x7b, 0xa4, 0xa9, 0xc0, 0x84, 0xc5, 0x8c, 0x0c, 0xd7, 0x5b, 0xaa, - 0x2e, 0xa0, 0x7d, 0x6c, 0x74, 0x83, 0xd2, 0xcf, 0x34, 0xfa, 0x56, 0xe3, 0xe7, 0x6a, 0xc1, 0x52, - 0x7a, 0x53, 0x0c, 0xdf, 0x6f, 0x2b, 0x4a, 0x91, 0xb6, 0x7d, 0x3f, 0x84, 0x48, 0xab, 0xaf, 0xa2, - 0x5f, 0x7c, 0x15, 0xe7, 0x39, 0x61, 0xbb, 0x15, 0x69, 0x0a, 0xee, 0xea, 0x08, 0xd1, 0x48, 0xc8, - 0xb4, 0xdd, 0x0f, 0x82, 0x8c, 0x34, 0xfc, 0x65, 0xf4, 0x6d, 0x21, 0x39, 0x23, 0x09, 0x5d, 0x92, - 0x6a, 0xe8, 0xd5, 0x92, 0x42, 0xe4, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x97, 0x16, 0x4b, 0x52, 0x31, - 0xbf, 0x6d, 0x29, 0x0c, 0xdb, 0x36, 0x90, 0xb4, 0xfd, 0x57, 0x83, 0xe8, 0xbb, 0xe3, 0x24, 0xa1, - 0x8b, 0x82, 0x1d, 0xd1, 0x24, 0xce, 0x8f, 0xb2, 0xe2, 0xfa, 0x84, 0xdc, 0xec, 0x5e, 0x35, 0x7c, - 0x31, 0x23, 0xc3, 0x67, 0xee, 0x53, 0x15, 0xe8, 0x48, 0xb3, 0x23, 0x1b, 0xd6, 0xbe, 0x3f, 0xba, - 0x9d, 0x92, 0x2c, 0xcb, 0xdf, 0x0d, 0xa2, 0x3b, 0xb0, 0x2c, 0x13, 0x9a, 0x2f, 0x89, 0x29, 0xcd, - 0xc7, 0x1d, 0x86, 0x5d, 0x5c, 0x97, 0xe7, 0x93, 0xdb, 0xaa, 0xc9, 0x12, 0xe5, 0xd1, 0xdb, 0x76, - 0xb8, 0x4c, 0x48, 0xcd, 0xbb, 0xd3, 0x23, 0x3c, 0x22, 0x24, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x4a, - 0x6f, 0x59, 0x34, 0x94, 0xde, 0x72, 0x5a, 0x6b, 0x67, 0x1b, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, - 0xea, 0x41, 0x4a, 0x57, 0xbf, 0x1f, 0xfd, 0xd2, 0x2b, 0x5a, 0x5d, 0xd7, 0x65, 0x9c, 0x10, 0xd9, - 0x15, 0x1e, 0xba, 0xda, 0x4a, 0x0a, 0x7b, 0xc3, 0x5a, 0x17, 0x66, 0x05, 0xad, 0x12, 0x7e, 0x51, - 0x12, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x88, 0x05, 0x2d, 0x84, 0xa4, 0xed, 0xeb, 0x68, 0x68, 0x6c, - 0x5f, 0xfc, 0x01, 0x49, 0xd8, 0x38, 0x4d, 0x61, 0xab, 0x18, 0x5d, 0x4e, 0x8c, 0xc6, 0x69, 0x8a, - 0xb5, 0x8a, 0x1f, 0x95, 0xce, 0x6e, 0xa2, 0x77, 0x80, 0xb3, 0xa3, 0xac, 0xe6, 0x0e, 0xb7, 0xc3, - 0x56, 0x24, 0xa6, 0x9d, 0x8e, 0xfa, 0xe2, 0xd2, 0xf1, 0x9f, 0x0c, 0xa2, 0xef, 0x78, 0x3c, 0x9f, - 0x91, 0x39, 0x5d, 0x92, 0xe1, 0x93, 0x6e, 0x6b, 0x82, 0xd4, 0xfe, 0x3f, 0xbc, 0x85, 0x86, 0x27, - 0x4c, 0x26, 0x24, 0x27, 0x09, 0x43, 0xc3, 0x44, 0x88, 0x3b, 0xc3, 0x44, 0x63, 0x56, 0x0f, 0x53, - 0xc2, 0x03, 0xc2, 0x76, 0x17, 0x55, 0x45, 0x0a, 0x86, 0xb6, 0xa5, 0x41, 0x3a, 0xdb, 0xd2, 0x41, - 0x3d, 0xf5, 0x39, 0x20, 0x6c, 0x9c, 0xe7, 0x68, 0x7d, 0x84, 0xb8, 0xb3, 0x3e, 0x1a, 0x93, 0x1e, - 0x92, 0xe8, 0x97, 0xad, 0x27, 0xc6, 0x0e, 0x8b, 0x4b, 0x3a, 0xc4, 0x9f, 0x05, 0x97, 0x6b, 0x1f, - 0xeb, 0x9d, 0x9c, 0xa7, 0x1a, 0x2f, 0x5e, 0x97, 0xb4, 0xc2, 0x9b, 0x45, 0x88, 0x3b, 0xab, 0xa1, - 0x31, 0xe9, 0xe1, 0xf7, 0xa2, 0xb7, 0xe4, 0x28, 0xa9, 0xe6, 0xb3, 0x07, 0xde, 0x21, 0x14, 0x4e, - 0x68, 0x0f, 0x3b, 0xa8, 0x96, 0xf9, 0xe3, 0x6c, 0x56, 0x35, 0xa3, 0x8f, 0xdf, 0xbc, 0x94, 0x76, - 0x98, 0x37, 0x94, 0x34, 0x4f, 0xa3, 0x5f, 0x75, 0xcd, 0xef, 0xc6, 0x45, 0x42, 0xf2, 0xe1, 0xe3, - 0x90, 0xba, 0x60, 0xb4, 0xab, 0xcd, 0x5e, 0xac, 0x19, 0xec, 0x24, 0x21, 0x07, 0xd3, 0x0f, 0xbc, - 0xda, 0x60, 0x28, 0x7d, 0x10, 0x86, 0x5a, 0xb6, 0xf7, 0x48, 0x4e, 0x50, 0xdb, 0x42, 0xd8, 0x61, - 0x5b, 0x43, 0xd2, 0x76, 0x15, 0xfd, 0x9a, 0x6e, 0xe6, 0x26, 0x2f, 0xe0, 0xf2, 0x66, 0xd2, 0xd9, - 0x44, 0xda, 0xd1, 0x86, 0xb4, 0xaf, 0xad, 0x7e, 0x70, 0xab, 0x3e, 0x72, 0x44, 0xf1, 0xd7, 0x07, - 0x8c, 0x27, 0x0f, 0xc2, 0x90, 0xb4, 0xfd, 0xd7, 0x83, 0xe8, 0x7b, 0x52, 0xf6, 0xa2, 0x88, 0x2f, - 0x72, 0xc2, 0xa7, 0xf8, 0x13, 0xc2, 0x6e, 0x68, 0x75, 0x3d, 0x59, 0x15, 0x09, 0x92, 0xce, 0xf8, - 0xe1, 0x8e, 0x74, 0x06, 0x55, 0x92, 0x85, 0xf9, 0xc3, 0xe8, 0x5d, 0x15, 0x14, 0x57, 0x71, 0x31, - 0x23, 0x3f, 0xac, 0x69, 0x31, 0x2e, 0xb3, 0x71, 0x9a, 0x56, 0xc3, 0x91, 0xbf, 0xe9, 0x21, 0xa7, - 0x4b, 0xb0, 0xd3, 0x9b, 0xb7, 0xd2, 0x67, 0xf9, 0x94, 0x19, 0x2d, 0x61, 0xfa, 0xac, 0x1e, 0x1f, - 0xa3, 0x25, 0x96, 0x3e, 0xbb, 0x48, 0xcb, 0xea, 0x71, 0x33, 0x07, 0xf9, 0xad, 0x1e, 0xdb, 0x93, - 0xce, 0xfd, 0x10, 0x62, 0xe6, 0x00, 0xf5, 0xa0, 0x68, 0x71, 0x99, 0xcd, 0xce, 0xcb, 0xb4, 0xe9, - 0x43, 0x8f, 0xfc, 0x75, 0xb6, 0x10, 0x64, 0x0e, 0x40, 0x50, 0xe9, 0xed, 0x6f, 0x4d, 0x96, 0x29, - 0xc7, 0xa5, 0xfd, 0x8a, 0xce, 0x8f, 0xc8, 0x2c, 0x4e, 0x56, 0x72, 0x30, 0xfd, 0x28, 0x34, 0x8a, - 0x41, 0x5a, 0x17, 0xe2, 0xe3, 0x5b, 0x6a, 0xc9, 0xf2, 0xfc, 0xdb, 0x20, 0x7a, 0xe0, 0xc4, 0x89, - 0x0c, 0x26, 0x51, 0xfa, 0x71, 0x91, 0x9e, 0x91, 0x9a, 0xc5, 0x15, 0x1b, 0x7e, 0x3f, 0x10, 0x03, - 0x88, 0x8e, 0x2e, 0xdb, 0x0f, 0xbe, 0x91, 0xae, 0x69, 0xf5, 0x49, 0x33, 0x4b, 0xc8, 0xf1, 0xc7, - 0x6d, 0x75, 0x2e, 0x81, 0xa3, 0xcf, 0xfd, 0x10, 0x62, 0x5a, 0x9d, 0x0b, 0x0e, 0x8b, 0x65, 0xc6, - 0xc8, 0x01, 0x29, 0x48, 0xd5, 0x6e, 0x75, 0xa1, 0xea, 0x22, 0x48, 0xab, 0x23, 0xa8, 0x19, 0xe9, - 0x1c, 0x6f, 0x3a, 0xd3, 0xd8, 0x0c, 0x18, 0x69, 0xe5, 0x1a, 0x5b, 0xfd, 0x60, 0xb3, 0x54, 0xb6, - 0x7c, 0x9e, 0x91, 0x25, 0xbd, 0x86, 0x4b, 0x65, 0xdb, 0x84, 0x00, 0x90, 0xa5, 0xb2, 0x17, 0x34, - 0xe9, 0x80, 0xe5, 0xe7, 0x65, 0x46, 0x6e, 0x40, 0x3a, 0x60, 0x2b, 0x37, 0x62, 0x24, 0x1d, 0xf0, - 0x60, 0xd2, 0xc3, 0x49, 0xf4, 0x0b, 0x5c, 0xf8, 0x43, 0x9a, 0x15, 0xc3, 0xbb, 0x1e, 0xa5, 0x46, - 0xa0, 0xad, 0xde, 0xc3, 0x01, 0x50, 0xe2, 0xe6, 0xaf, 0x72, 0x6e, 0x7e, 0x88, 0x28, 0x81, 0x69, - 0x79, 0xad, 0x0b, 0x33, 0x79, 0x18, 0x17, 0x36, 0xe3, 0xd7, 0xe4, 0x2a, 0xae, 0xb2, 0x62, 0x36, - 0xf4, 0xe9, 0x5a, 0x72, 0x24, 0x0f, 0xf3, 0x71, 0x20, 0x84, 0xa5, 0xe2, 0xb8, 0x2c, 0xab, 0x66, - 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04, 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x91, 0x24, 0xcf, 0x8a, - 0xa0, 0x37, 0x89, 0xf4, 0xf1, 0x66, 0x50, 0x10, 0xbc, 0x47, 0x24, 0x5e, 0x12, 0x55, 0x33, 0xdf, - 0x93, 0xb1, 0x81, 0x60, 0xf0, 0x02, 0xd0, 0x2c, 0x7a, 0xb9, 0xf8, 0x38, 0xbe, 0x26, 0xcd, 0x03, - 0x26, 0xcd, 0xa4, 0x3a, 0xf4, 0xe9, 0x3b, 0x04, 0xb2, 0xe8, 0xf5, 0x93, 0xd2, 0xd5, 0x22, 0x7a, - 0x87, 0xcb, 0x4f, 0xe3, 0x8a, 0x65, 0x49, 0x56, 0xc6, 0x85, 0x5a, 0x4c, 0xf9, 0xfa, 0x75, 0x8b, - 0xd2, 0x2e, 0xb7, 0x7b, 0xd2, 0xd2, 0xed, 0x3f, 0x0f, 0xa2, 0xf7, 0xa1, 0xdf, 0x53, 0x52, 0xcd, - 0x33, 0xbe, 0x26, 0xaf, 0xc5, 0x20, 0x3c, 0xfc, 0x34, 0x6c, 0xb4, 0xa5, 0xa0, 0x4b, 0xf3, 0xd9, - 0xed, 0x15, 0x4d, 0x26, 0x36, 0x91, 0xeb, 0x94, 0x2f, 0xaa, 0xb4, 0xb5, 0x67, 0x35, 0x51, 0x8b, - 0x0f, 0x2e, 0x44, 0x32, 0xb1, 0x16, 0x04, 0x7a, 0xf8, 0x79, 0x51, 0x2b, 0xeb, 0xbe, 0x1e, 0x6e, - 0xc4, 0xc1, 0x1e, 0xee, 0x60, 0xa6, 0x87, 0x9f, 0x2e, 0x2e, 0xf2, 0xac, 0xbe, 0xca, 0x8a, 0x99, - 0x4c, 0xbb, 0x5d, 0x5d, 0x23, 0x86, 0x99, 0xf7, 0x7a, 0x27, 0xe7, 0x73, 0x22, 0x83, 0x05, 0x75, - 0x02, 0xc2, 0x64, 0xbd, 0x93, 0x33, 0xab, 0x21, 0x23, 0x6d, 0x96, 0xe1, 0x60, 0x35, 0x64, 0xa9, - 0x36, 0x52, 0x64, 0x35, 0xd4, 0xa6, 0xcc, 0x6a, 0xc8, 0xae, 0x43, 0x4d, 0xf3, 0x25, 0x39, 0xaf, - 0x32, 0xb0, 0x1a, 0x72, 0xca, 0xa7, 0x18, 0x64, 0x35, 0x84, 0xb1, 0x66, 0xa0, 0x32, 0xc4, 0x01, - 0x61, 0x13, 0x16, 0xb3, 0x45, 0x0d, 0x06, 0x2a, 0xcb, 0x86, 0x46, 0x90, 0x81, 0x0a, 0x41, 0xa5, - 0xb7, 0xdf, 0x8d, 0x22, 0xb1, 0x83, 0xc1, 0x77, 0x99, 0xdc, 0xb9, 0x47, 0x6e, 0x6d, 0x38, 0x5b, - 0x4c, 0xef, 0x07, 0x08, 0x93, 0xf0, 0x88, 0xbf, 0xf3, 0xcd, 0xb3, 0xa1, 0x57, 0x83, 0x8b, 0x90, - 0x84, 0x07, 0x20, 0xb0, 0xa0, 0x93, 0x2b, 0x7a, 0xe3, 0x2f, 0x68, 0x23, 0x09, 0x17, 0x54, 0x12, - 0x66, 0x3b, 0x5b, 0x16, 0xd4, 0xb7, 0x9d, 0xad, 0x8a, 0x11, 0xda, 0xce, 0x86, 0x8c, 0x89, 0x19, - 0xdb, 0xf0, 0x73, 0x4a, 0xaf, 0xe7, 0x71, 0x75, 0x0d, 0x62, 0xc6, 0x51, 0x56, 0x0c, 0x12, 0x33, - 0x18, 0x6b, 0x62, 0xc6, 0x76, 0xd8, 0xa4, 0xcb, 0xe7, 0x55, 0x0e, 0x62, 0xc6, 0xb1, 0x21, 0x11, - 0x24, 0x66, 0x10, 0xd4, 0x8c, 0x4e, 0xb6, 0xb7, 0x09, 0x81, 0x1b, 0x28, 0x8e, 0xfa, 0x84, 0x60, - 0x1b, 0x28, 0x1e, 0x0c, 0x86, 0xd0, 0x41, 0x15, 0x97, 0x57, 0xfe, 0x10, 0xe2, 0xa2, 0x70, 0x08, - 0x29, 0x04, 0xb6, 0xf7, 0x84, 0xc4, 0x55, 0x72, 0xe5, 0x6f, 0x6f, 0x21, 0x0b, 0xb7, 0xb7, 0x66, - 0x60, 0x7b, 0x0b, 0xc1, 0xab, 0x8c, 0x5d, 0x1d, 0x13, 0x16, 0xfb, 0xdb, 0xdb, 0x65, 0xc2, 0xed, - 0xdd, 0x62, 0x4d, 0x3e, 0x6e, 0x3b, 0x9c, 0x2c, 0x2e, 0xea, 0xa4, 0xca, 0x2e, 0xc8, 0x30, 0x60, - 0x45, 0x43, 0x48, 0x3e, 0x8e, 0xc2, 0xd2, 0xe7, 0x4f, 0x07, 0xd1, 0x5d, 0xd5, 0xec, 0xb4, 0xae, - 0xe5, 0xdc, 0xe7, 0xba, 0xff, 0xd8, 0xdf, 0xbe, 0x08, 0x8e, 0xbc, 0x60, 0xe8, 0xa1, 0x66, 0xe5, - 0x06, 0xfe, 0x22, 0x9d, 0x17, 0xb5, 0x2e, 0xd4, 0xa7, 0x7d, 0xac, 0x5b, 0x0a, 0x48, 0x6e, 0xd0, - 0x4b, 0xd1, 0xa4, 0x65, 0xb2, 0x7d, 0x94, 0xec, 0x30, 0xad, 0x41, 0x5a, 0xa6, 0x9e, 0xb7, 0x45, - 0x20, 0x69, 0x99, 0x9f, 0x84, 0xa1, 0x70, 0x50, 0xd1, 0x45, 0x59, 0x77, 0x84, 0x02, 0x80, 0xc2, - 0xa1, 0xd0, 0x86, 0xa5, 0xcf, 0xd7, 0xd1, 0xaf, 0xdb, 0xe1, 0x67, 0x3f, 0xec, 0x6d, 0x3c, 0xa6, - 0x7c, 0x8f, 0x78, 0xd4, 0x17, 0x37, 0x19, 0x85, 0xf2, 0xcc, 0xf6, 0x08, 0x8b, 0xb3, 0xbc, 0x1e, - 0xae, 0xf9, 0x6d, 0x28, 0x39, 0x92, 0x51, 0xf8, 0x38, 0x38, 0xbe, 0xed, 0x2d, 0xca, 0x3c, 0x4b, - 0xda, 0xaf, 0x77, 0xa4, 0xae, 0x16, 0x87, 0xc7, 0x37, 0x1b, 0x83, 0xe3, 0x75, 0x93, 0xfa, 0xf1, - 0xff, 0x4c, 0x57, 0x25, 0xf1, 0x8f, 0xd7, 0x0e, 0x12, 0x1e, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x21, - 0xec, 0x28, 0x5e, 0xd1, 0x05, 0x32, 0x5e, 0x6b, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0xd6, 0x06, 0xda, - 0xc3, 0x61, 0xc1, 0x48, 0x55, 0xc4, 0xf9, 0x7e, 0x1e, 0xcf, 0xea, 0x21, 0x32, 0xc6, 0xb8, 0x14, - 0xb2, 0x36, 0xc0, 0x69, 0xcf, 0x63, 0x3c, 0xac, 0xf7, 0xe3, 0x25, 0xad, 0x32, 0x86, 0x3f, 0x46, - 0x83, 0x74, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0x1b, 0x57, 0xc9, 0x55, 0xb6, 0x24, 0x69, 0xc0, 0x9b, - 0x42, 0x7a, 0x78, 0xb3, 0x50, 0x4f, 0xa3, 0x4d, 0xe8, 0xa2, 0x4a, 0x08, 0xda, 0x68, 0x42, 0xdc, - 0xd9, 0x68, 0x1a, 0x93, 0x1e, 0xfe, 0x7c, 0x10, 0xfd, 0x86, 0x90, 0xda, 0xef, 0x5c, 0xf6, 0xe2, - 0xfa, 0xea, 0x82, 0xc6, 0x55, 0x3a, 0xfc, 0xd0, 0x67, 0xc7, 0x8b, 0x6a, 0xd7, 0x4f, 0x6f, 0xa3, - 0x02, 0x1f, 0x6b, 0x93, 0x77, 0x9b, 0x1e, 0xe7, 0x7d, 0xac, 0x0e, 0x12, 0x7e, 0xac, 0x10, 0x85, - 0x03, 0x08, 0x97, 0x8b, 0x2d, 0xb9, 0x35, 0x54, 0xdf, 0xdd, 0x97, 0x5b, 0xef, 0xe4, 0xe0, 0xf8, - 0xd8, 0x08, 0xdd, 0x68, 0xd9, 0xc6, 0x6c, 0xf8, 0x23, 0x66, 0xd4, 0x17, 0x47, 0x3d, 0xeb, 0x5e, - 0x11, 0xf6, 0xdc, 0xea, 0x19, 0xa3, 0xbe, 0x38, 0xe2, 0xd9, 0x1a, 0xd6, 0x42, 0x9e, 0x3d, 0x43, - 0xdb, 0xa8, 0x2f, 0x0e, 0xb3, 0x2f, 0xc9, 0xa8, 0x79, 0xe1, 0x71, 0xc0, 0x0e, 0x9c, 0x1b, 0x36, - 0x7b, 0xb1, 0xd2, 0xe1, 0x5f, 0x0e, 0xa2, 0xef, 0x1a, 0x8f, 0xc7, 0x34, 0xcd, 0x2e, 0x57, 0x02, - 0x7a, 0x19, 0xe7, 0x0b, 0x52, 0x0f, 0x9f, 0x62, 0xd6, 0xda, 0xac, 0x2e, 0xc1, 0xb3, 0x5b, 0xe9, - 0xc0, 0xbe, 0x33, 0x2e, 0xcb, 0x7c, 0x35, 0x25, 0xf3, 0x32, 0x47, 0xfb, 0x8e, 0x83, 0x84, 0xfb, - 0x0e, 0x44, 0x61, 0x56, 0x3e, 0xa5, 0x4d, 0xce, 0xef, 0xcd, 0xca, 0xb9, 0x28, 0x9c, 0x95, 0x2b, - 0x04, 0xe6, 0x4a, 0x53, 0xba, 0x4b, 0xf3, 0x9c, 0x24, 0xac, 0x7d, 0x6e, 0x43, 0x6b, 0x1a, 0x22, - 0x9c, 0x2b, 0x01, 0xd2, 0xec, 0xca, 0xa9, 0x35, 0x64, 0x5c, 0x91, 0xe7, 0xab, 0xa3, 0xac, 0xb8, - 0x1e, 0xfa, 0xd3, 0x02, 0x03, 0x20, 0xbb, 0x72, 0x5e, 0x10, 0xae, 0x55, 0xcf, 0x8b, 0x94, 0xfa, - 0xd7, 0xaa, 0x8d, 0x24, 0xbc, 0x56, 0x95, 0x04, 0x34, 0x79, 0x46, 0x30, 0x93, 0x8d, 0x24, 0x6c, - 0x52, 0x12, 0xbe, 0xa1, 0x50, 0xbe, 0xbb, 0x41, 0x87, 0x42, 0xf0, 0xb6, 0x66, 0xbd, 0x93, 0x83, - 0x11, 0xaa, 0x16, 0xad, 0xfb, 0x84, 0x25, 0x57, 0xfe, 0x08, 0x75, 0x90, 0x70, 0x84, 0x42, 0x14, - 0x56, 0x69, 0x4a, 0xf5, 0xa2, 0x7b, 0xcd, 0x1f, 0x1f, 0xad, 0x05, 0xf7, 0x7a, 0x27, 0x07, 0x97, - 0x91, 0x87, 0x73, 0xfe, 0xcc, 0xbc, 0x41, 0x2e, 0x64, 0xe1, 0x65, 0xa4, 0x66, 0x60, 0xe9, 0x85, - 0x80, 0xef, 0x65, 0xad, 0xe1, 0x8a, 0xce, 0x6e, 0xd6, 0x7a, 0x27, 0x27, 0x9d, 0xfc, 0xa3, 0x5e, - 0xc6, 0x09, 0xe9, 0x09, 0x6d, 0xfa, 0xc8, 0xcb, 0x38, 0xcf, 0xd2, 0x98, 0x91, 0x29, 0xbd, 0x26, - 0x85, 0x7f, 0xc5, 0x24, 0x4b, 0x2b, 0xf8, 0x91, 0xa3, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, - 0x08, 0xfa, 0xbc, 0x26, 0xbb, 0x71, 0x8d, 0x8c, 0x64, 0x0e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, - 0x55, 0xc8, 0x5f, 0xbc, 0x2e, 0x49, 0x95, 0x91, 0x22, 0x21, 0xfe, 0x7c, 0x15, 0x52, 0xe1, 0x7c, - 0xd5, 0x43, 0xc3, 0xb5, 0xda, 0x5e, 0xcc, 0xc8, 0xf3, 0xd5, 0x34, 0x9b, 0x93, 0x9a, 0xc5, 0xf3, - 0xd2, 0xbf, 0x56, 0x03, 0x50, 0x78, 0xad, 0xd6, 0x86, 0x5b, 0x5b, 0x43, 0x7a, 0x40, 0x6c, 0x1f, - 0xf7, 0x82, 0x44, 0xe0, 0xb8, 0x17, 0x82, 0xc2, 0x07, 0x6b, 0x00, 0xef, 0x4b, 0x82, 0x96, 0x95, - 0xe0, 0x4b, 0x02, 0x9c, 0x6e, 0x6d, 0xb8, 0x69, 0x66, 0xd2, 0x74, 0xcd, 0x8e, 0xa2, 0x4f, 0xec, - 0x2e, 0xba, 0xd9, 0x8b, 0xf5, 0xef, 0xf0, 0x9d, 0x91, 0x3c, 0xe6, 0xd3, 0x56, 0x60, 0x1b, 0x4d, - 0x31, 0x7d, 0x76, 0xf8, 0x2c, 0x56, 0x3a, 0xfc, 0xd3, 0x41, 0xf4, 0x9e, 0xcf, 0xe3, 0x17, 0x25, - 0xf7, 0xfb, 0xa4, 0xdb, 0x96, 0x20, 0x91, 0xf3, 0x6c, 0x61, 0x0d, 0x73, 0x24, 0x43, 0x89, 0xcc, - 0x71, 0x37, 0x59, 0x00, 0x37, 0x69, 0xd3, 0xe5, 0x87, 0x1c, 0x72, 0x24, 0x23, 0xc4, 0x9b, 0xf5, - 0x90, 0x5b, 0xae, 0x1a, 0xac, 0x87, 0xb4, 0x0d, 0x29, 0x46, 0xd6, 0x43, 0x1e, 0xcc, 0xf4, 0x4e, - 0xbb, 0x7a, 0xaf, 0x32, 0x76, 0xc5, 0xf3, 0x2d, 0xd0, 0x3b, 0x9d, 0xb2, 0x6a, 0x08, 0xe9, 0x9d, - 0x28, 0x0c, 0x33, 0x12, 0x05, 0x36, 0x7d, 0xd3, 0x37, 0x96, 0x6b, 0x43, 0x76, 0xcf, 0xdc, 0xe8, - 0x06, 0x61, 0xbc, 0x2a, 0xb1, 0x5c, 0xfa, 0x3c, 0x0e, 0x59, 0x00, 0xcb, 0x9f, 0xcd, 0x5e, 0xac, - 0x74, 0xf8, 0xc7, 0xd1, 0x77, 0x5a, 0x15, 0xdb, 0x27, 0x31, 0x5b, 0x54, 0x24, 0x1d, 0xee, 0x74, - 0x94, 0x5b, 0x81, 0xda, 0xf5, 0x93, 0xfe, 0x0a, 0xad, 0x1c, 0x5d, 0x71, 0x22, 0xac, 0x74, 0x19, - 0x9e, 0x86, 0x4c, 0xba, 0x6c, 0x30, 0x47, 0xc7, 0x75, 0x5a, 0xcb, 0x6c, 0x3b, 0xba, 0xc6, 0xcb, - 0x38, 0xcb, 0xf9, 0xcb, 0xda, 0x0f, 0x43, 0x46, 0x1d, 0x34, 0xb8, 0xcc, 0x46, 0x55, 0x5a, 0x23, - 0x33, 0xef, 0xe3, 0xd6, 0xf2, 0x6c, 0x0b, 0x1f, 0x09, 0x3c, 0xab, 0xb3, 0xed, 0x9e, 0xb4, 0x74, - 0xcb, 0xd4, 0x94, 0xd7, 0xfc, 0xd9, 0x0e, 0x72, 0x9f, 0x57, 0xa9, 0xea, 0x89, 0xf4, 0xed, 0x9e, - 0xb4, 0xf4, 0xfa, 0x47, 0xd1, 0xbb, 0x6d, 0xaf, 0x72, 0x22, 0xda, 0xe9, 0x34, 0x05, 0xe6, 0xa2, - 0x27, 0xfd, 0x15, 0xa4, 0xfb, 0x7f, 0xd1, 0xfb, 0xd2, 0xc2, 0x7f, 0x42, 0xe7, 0x73, 0x52, 0xa4, - 0x24, 0x55, 0x1a, 0x75, 0xb3, 0x7e, 0xfa, 0x0c, 0xb7, 0xab, 0x15, 0x46, 0xb6, 0x86, 0x2e, 0xd1, - 0x6f, 0x7e, 0x03, 0x4d, 0x59, 0xb4, 0xff, 0x1c, 0x44, 0x8f, 0xbc, 0x45, 0x53, 0x81, 0xeb, 0x14, - 0xf1, 0x77, 0xfa, 0x38, 0xf2, 0x69, 0xea, 0xa2, 0x8e, 0xff, 0x1f, 0x16, 0x64, 0x91, 0xff, 0x75, - 0x10, 0xdd, 0x37, 0x8a, 0x4d, 0x78, 0xef, 0xd2, 0xe2, 0x32, 0xcf, 0x12, 0xc6, 0xdf, 0xc8, 0x4a, - 0x15, 0xfc, 0x71, 0x62, 0x1a, 0xdd, 0x8f, 0x33, 0xa0, 0x69, 0x16, 0xaf, 0x9f, 0x67, 0x35, 0xa3, - 0xd5, 0x6a, 0x72, 0x45, 0x6f, 0xd4, 0x07, 0x43, 0xee, 0xb8, 0x2c, 0x81, 0x91, 0x45, 0x20, 0x8b, - 0x57, 0x3f, 0xd9, 0x72, 0x65, 0x3e, 0x2c, 0xaa, 0x11, 0x57, 0x16, 0xd1, 0xe1, 0xca, 0x25, 0xcd, - 0xac, 0xa4, 0x6a, 0x65, 0xbe, 0x82, 0x5a, 0xf7, 0x17, 0xb5, 0xfd, 0x25, 0xd4, 0x46, 0x37, 0x68, - 0x72, 0x53, 0x29, 0xde, 0xcb, 0x2e, 0x2f, 0x75, 0x9d, 0xfc, 0x25, 0xb5, 0x11, 0x24, 0x37, 0x45, - 0x50, 0xb3, 0xbc, 0xda, 0xcf, 0x72, 0xc2, 0xdf, 0xdd, 0x7c, 0x71, 0x79, 0x99, 0xd3, 0x38, 0x05, - 0xcb, 0xab, 0x46, 0x3c, 0xb2, 0xe5, 0xc8, 0xf2, 0xca, 0xc7, 0x99, 0x53, 0x21, 0x8d, 0xb4, 0x89, - 0xee, 0x22, 0xc9, 0x72, 0x78, 0xde, 0x98, 0x6b, 0x6a, 0x21, 0x72, 0x2a, 0xa4, 0x05, 0x99, 0x14, - 0xa8, 0x11, 0x35, 0x51, 0xa9, 0xca, 0xff, 0xb0, 0xad, 0x68, 0x89, 0x91, 0x14, 0xc8, 0x83, 0x99, - 0x5d, 0x86, 0x46, 0x78, 0x5e, 0x72, 0xe3, 0xf7, 0xda, 0x5a, 0x42, 0x82, 0xec, 0x32, 0xb8, 0x84, - 0x59, 0x2d, 0x37, 0x7f, 0xdf, 0xa3, 0x37, 0x05, 0x37, 0x7a, 0xbf, 0xad, 0xa2, 0x64, 0xc8, 0x6a, - 0x19, 0x32, 0xd2, 0xf0, 0x8f, 0xa2, 0x9f, 0xe7, 0x86, 0x2b, 0x5a, 0x0e, 0xef, 0x78, 0x14, 0x2a, - 0xeb, 0x74, 0xee, 0x5d, 0x54, 0x6e, 0x0e, 0x91, 0xe8, 0xd8, 0x38, 0xaf, 0xe3, 0x19, 0x3c, 0x52, - 0x6f, 0x5a, 0x9c, 0x4b, 0x91, 0x43, 0x24, 0x6d, 0xca, 0x8d, 0x8a, 0x13, 0x9a, 0x4a, 0xeb, 0x9e, - 0x1a, 0x6a, 0x61, 0x28, 0x2a, 0x6c, 0xc8, 0xa4, 0xad, 0x27, 0xf1, 0x32, 0x9b, 0xe9, 0xd4, 0x42, - 0x0c, 0x60, 0x35, 0x48, 0x5b, 0x0d, 0x33, 0xb2, 0x20, 0x24, 0x6d, 0x45, 0x61, 0xe9, 0xf3, 0x1f, - 0x06, 0xd1, 0x3d, 0xc3, 0x1c, 0xa8, 0x7d, 0xd9, 0xc3, 0xe2, 0x92, 0x36, 0x49, 0xee, 0x51, 0x56, - 0x5c, 0xd7, 0xc3, 0x4f, 0x30, 0x93, 0x7e, 0x5e, 0x17, 0xe5, 0xd3, 0x5b, 0xeb, 0x99, 0xf5, 0x89, - 0xda, 0xb4, 0x34, 0x27, 0x17, 0x84, 0x06, 0x58, 0x9f, 0xe8, 0xbd, 0x4d, 0xc8, 0x21, 0xeb, 0x93, - 0x10, 0x6f, 0x9a, 0x58, 0x3b, 0xcf, 0x69, 0x01, 0x9b, 0xd8, 0x58, 0x68, 0x84, 0x48, 0x13, 0xb7, - 0x20, 0x33, 0x1e, 0x2b, 0x91, 0xd8, 0x5f, 0x1b, 0xe7, 0x39, 0x18, 0x8f, 0xb5, 0xaa, 0x06, 0x90, - 0xf1, 0xd8, 0x0b, 0x4a, 0x3f, 0x67, 0xd1, 0xb7, 0x9a, 0x47, 0x7a, 0x5a, 0x91, 0x65, 0x46, 0xe0, - 0x21, 0x1b, 0x4b, 0x82, 0xf4, 0x7f, 0x97, 0x30, 0x3d, 0xeb, 0xbc, 0xa8, 0xcb, 0x3c, 0xae, 0xaf, - 0xe4, 0xb1, 0x0b, 0xb7, 0xce, 0x4a, 0x08, 0x0f, 0x5e, 0x3c, 0xec, 0xa0, 0xcc, 0xa0, 0xae, 0x64, - 0x7a, 0x88, 0x59, 0xf3, 0xab, 0xb6, 0x86, 0x99, 0xf5, 0x4e, 0xce, 0xbc, 0xdb, 0x38, 0x88, 0xf3, - 0x9c, 0x54, 0x2b, 0x25, 0x3b, 0x8e, 0x8b, 0xec, 0x92, 0xd4, 0x0c, 0xbc, 0xdb, 0x90, 0xd4, 0x08, - 0x62, 0xc8, 0xbb, 0x8d, 0x00, 0x6e, 0xd6, 0x6d, 0xc0, 0xf3, 0x61, 0x91, 0x92, 0xd7, 0x60, 0xdd, - 0x06, 0xed, 0x70, 0x06, 0x59, 0xb7, 0x61, 0xac, 0xd9, 0xe3, 0x7f, 0x9e, 0xd3, 0xe4, 0x5a, 0x4e, - 0x01, 0x6e, 0x03, 0x73, 0x09, 0x9c, 0x03, 0xee, 0x87, 0x10, 0x33, 0x09, 0x70, 0xc1, 0x19, 0x29, - 0xf3, 0x38, 0x81, 0x27, 0xad, 0x84, 0x8e, 0x94, 0x21, 0x93, 0x00, 0x64, 0x40, 0x71, 0xe5, 0x09, - 0x2e, 0x5f, 0x71, 0xc1, 0x01, 0xae, 0xfb, 0x21, 0xc4, 0x4c, 0x83, 0x5c, 0x30, 0x29, 0xf3, 0x8c, - 0x81, 0x6e, 0x20, 0x34, 0xb8, 0x04, 0xe9, 0x06, 0x2e, 0x01, 0x4c, 0x1e, 0x93, 0x6a, 0x46, 0xbc, - 0x26, 0xb9, 0x24, 0x68, 0x52, 0x11, 0xe6, 0x58, 0xb9, 0xa8, 0x3b, 0x2d, 0x57, 0xe0, 0x58, 0xb9, - 0xac, 0x16, 0x2d, 0x57, 0xc8, 0xb1, 0x72, 0x07, 0x00, 0x45, 0x3c, 0x8d, 0x6b, 0xe6, 0x2f, 0x22, - 0x97, 0x04, 0x8b, 0xa8, 0x08, 0x33, 0x47, 0x8b, 0x22, 0x2e, 0x18, 0x98, 0xa3, 0x65, 0x01, 0xac, - 0xb3, 0x06, 0x77, 0x51, 0xb9, 0x19, 0x49, 0x44, 0xab, 0x10, 0xb6, 0x9f, 0x91, 0x3c, 0xad, 0xc1, - 0x48, 0x22, 0x9f, 0xbb, 0x92, 0x22, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0x24, 0xdf, 0x84, 0xf8, 0x6a, - 0x07, 0x5e, 0x82, 0xdc, 0x0f, 0x21, 0x66, 0x7c, 0x52, 0x85, 0xde, 0x8d, 0xab, 0x2a, 0x6b, 0x26, - 0xff, 0x35, 0x7f, 0x81, 0x94, 0x1c, 0x19, 0x9f, 0x7c, 0x1c, 0xe8, 0x5e, 0x6a, 0xe0, 0xf6, 0x15, - 0x0c, 0x0e, 0xdd, 0x1f, 0x04, 0x19, 0x93, 0x71, 0x72, 0x89, 0xf5, 0xb2, 0xdc, 0xf7, 0x34, 0x3d, - 0xef, 0xca, 0xd7, 0xba, 0x30, 0xeb, 0x9b, 0x33, 0xed, 0xe2, 0x98, 0x2e, 0xc9, 0x94, 0xbe, 0x78, - 0x9d, 0xd5, 0xcd, 0x72, 0x4b, 0xce, 0xdc, 0xcf, 0x10, 0x4b, 0x3e, 0x18, 0xf9, 0xe6, 0xac, 0x53, - 0xc9, 0x24, 0x10, 0xa0, 0x2c, 0x27, 0xe4, 0xc6, 0x9b, 0x40, 0x40, 0x8b, 0x9a, 0x43, 0x12, 0x88, - 0x10, 0x6f, 0x76, 0xcc, 0xb4, 0x73, 0x79, 0xd1, 0xc0, 0x94, 0xaa, 0x5c, 0x0e, 0xb3, 0x06, 0x41, - 0x64, 0xd3, 0x22, 0xa8, 0x60, 0xd6, 0x97, 0xda, 0xbf, 0xe9, 0x62, 0x1b, 0x88, 0x9d, 0x76, 0x37, - 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32, 0x27, 0x3e, 0x30, 0x57, 0xed, 0x03, 0x1f, 0x8f, 0x7a, 0x90, - 0xd6, 0xee, 0x9b, 0x5d, 0xad, 0xe7, 0x71, 0x72, 0x3d, 0xab, 0xe8, 0xa2, 0x48, 0x77, 0x69, 0x4e, - 0x2b, 0xb0, 0xfb, 0xe6, 0x94, 0x1a, 0xa0, 0xc8, 0xee, 0x5b, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, - 0x8c, 0xf3, 0x6c, 0x06, 0x57, 0xd4, 0x8e, 0x21, 0x0e, 0x20, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, - 0x58, 0x71, 0xb3, 0x2c, 0x89, 0x73, 0xe1, 0x6f, 0x07, 0x37, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, - 0xf0, 0xd4, 0x73, 0xba, 0xa8, 0x8a, 0xc3, 0x82, 0x51, 0xb4, 0x9e, 0x0a, 0xe8, 0xac, 0xa7, 0x05, - 0x82, 0x61, 0x75, 0x4a, 0x5e, 0x37, 0xa5, 0x69, 0xfe, 0xf1, 0x0d, 0xab, 0xcd, 0xdf, 0x47, 0x52, - 0x1e, 0x1a, 0x56, 0x01, 0x07, 0x2a, 0x23, 0x9d, 0x88, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xb2, 0xd1, - 0x0d, 0xfa, 0xfd, 0x4c, 0xd8, 0x2a, 0x27, 0x21, 0x3f, 0x1c, 0xe8, 0xe3, 0x47, 0x81, 0x66, 0xbb, - 0xc5, 0xa9, 0xcf, 0x15, 0x49, 0xae, 0x5b, 0x07, 0xd8, 0xdc, 0x82, 0x0a, 0x04, 0xd9, 0x6e, 0x41, - 0x50, 0x7f, 0x13, 0x1d, 0x26, 0xb4, 0x08, 0x35, 0x51, 0x23, 0xef, 0xd3, 0x44, 0x92, 0x33, 0x8b, - 0x5f, 0x2d, 0x95, 0x91, 0x29, 0x9a, 0x69, 0x13, 0xb1, 0x60, 0x43, 0xc8, 0xe2, 0x17, 0x85, 0x4d, - 0x4e, 0x0e, 0x7d, 0x1e, 0xb7, 0x4f, 0xf7, 0xb7, 0xac, 0x1c, 0xe3, 0xa7, 0xfb, 0x31, 0x16, 0xaf, - 0xa4, 0x88, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, 0x6c, 0xf5, 0x83, 0xcd, 0x92, 0xc7, 0xf1, 0xb9, 0x9b, - 0x93, 0xb8, 0x12, 0x5e, 0xb7, 0x03, 0x86, 0x0c, 0x86, 0x2c, 0x79, 0x02, 0x38, 0x18, 0xc2, 0x1c, - 0xcf, 0xbb, 0xb4, 0x60, 0xa4, 0x60, 0xbe, 0x21, 0xcc, 0x35, 0x26, 0xc1, 0xd0, 0x10, 0x86, 0x29, - 0x80, 0xb8, 0xe5, 0xfb, 0x41, 0x84, 0x9d, 0xc4, 0x73, 0x6f, 0xc6, 0x26, 0xf6, 0x7a, 0x84, 0x3c, - 0x14, 0xb7, 0x80, 0xb3, 0x5e, 0xe7, 0xda, 0x5e, 0xa6, 0x71, 0x35, 0xd3, 0xbb, 0x1b, 0xe9, 0xf0, - 0x09, 0x6e, 0xc7, 0x25, 0x91, 0xd7, 0xb9, 0x61, 0x0d, 0x30, 0xec, 0x1c, 0xce, 0xe3, 0x99, 0xae, - 0xa9, 0xa7, 0x06, 0x5c, 0xde, 0xaa, 0xea, 0x46, 0x37, 0x08, 0xfc, 0xbc, 0xcc, 0x52, 0x42, 0x03, - 0x7e, 0xb8, 0xbc, 0x8f, 0x1f, 0x08, 0x82, 0xec, 0xad, 0xa9, 0xb7, 0x58, 0xd1, 0x8d, 0x8b, 0x54, - 0xae, 0x63, 0x47, 0xc8, 0xe3, 0x01, 0x5c, 0x28, 0x7b, 0x43, 0x78, 0xd0, 0x47, 0xd5, 0x06, 0x6d, - 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, 0xd4, 0x07, 0x4b, 0x9f, 0x3f, 0x91, 0x7d, 0x74, 0x2f, - 0x66, 0x71, 0x93, 0xb7, 0xbf, 0xcc, 0xc8, 0x8d, 0x5c, 0x08, 0x7b, 0xea, 0xab, 0xa8, 0x11, 0xff, - 0x38, 0x19, 0xac, 0x8a, 0x77, 0x7a, 0xf3, 0x01, 0xdf, 0x72, 0x85, 0xd0, 0xe9, 0x1b, 0x2c, 0x15, - 0x76, 0x7a, 0xf3, 0x01, 0xdf, 0xf2, 0xd6, 0x83, 0x4e, 0xdf, 0xe0, 0xea, 0x83, 0x9d, 0xde, 0xbc, - 0xf4, 0xfd, 0x67, 0xaa, 0xe3, 0xda, 0xce, 0x9b, 0x3c, 0x2c, 0x61, 0xd9, 0x92, 0xf8, 0xd2, 0x49, - 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xae, 0x62, 0xdd, 0x3b, 0xe6, 0x2b, 0xc5, 0x29, 0xad, 0x33, - 0x7e, 0x1c, 0xe3, 0x59, 0x0f, 0xa3, 0x0a, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xc5, 0xb2, 0x83, - 0x9a, 0xf3, 0xea, 0x5b, 0x01, 0x7b, 0xed, 0x63, 0xeb, 0xdb, 0x3d, 0x69, 0xf3, 0x8a, 0xd7, 0x61, - 0xec, 0x77, 0xcb, 0xa1, 0x56, 0xf5, 0xbe, 0x5e, 0x7e, 0xd2, 0x5f, 0x41, 0xba, 0xff, 0x0b, 0xb5, - 0xae, 0x80, 0xfe, 0x65, 0x27, 0x78, 0xda, 0xc7, 0x22, 0xe8, 0x08, 0xcf, 0x6e, 0xa5, 0x23, 0x0b, - 0xf2, 0x37, 0x6a, 0x01, 0xad, 0x50, 0xfe, 0xd5, 0x0e, 0xff, 0xda, 0x57, 0xf6, 0x89, 0x50, 0xb3, - 0x1a, 0x18, 0xf6, 0x8c, 0x8f, 0x6f, 0xa9, 0x65, 0xdd, 0x42, 0xe7, 0xc0, 0xf2, 0xeb, 0x52, 0xab, - 0x3c, 0x21, 0xcb, 0x16, 0x0d, 0x0b, 0xf4, 0xc9, 0x6d, 0xd5, 0xb0, 0xbe, 0x62, 0xc1, 0xfc, 0x1e, - 0x96, 0x67, 0x3d, 0x0d, 0x3b, 0x37, 0xb3, 0x7c, 0x74, 0x3b, 0x25, 0x59, 0x96, 0x7f, 0x1f, 0x44, - 0x0f, 0x1d, 0xd6, 0xbc, 0x4f, 0x00, 0xbb, 0x1e, 0x3f, 0x08, 0xd8, 0xc7, 0x94, 0x74, 0xe1, 0x7e, - 0xeb, 0x9b, 0x29, 0x9b, 0x2b, 0xdb, 0x1c, 0x95, 0xfd, 0x2c, 0x67, 0xa4, 0x6a, 0x5f, 0xd9, 0xe6, - 0xda, 0x15, 0xd4, 0x08, 0xbf, 0xb2, 0x2d, 0x80, 0x5b, 0x57, 0xb6, 0x79, 0x3c, 0x7b, 0xaf, 0x6c, - 0xf3, 0x5a, 0x0b, 0x5e, 0xd9, 0x16, 0xd6, 0xc0, 0x86, 0x77, 0x55, 0x04, 0xb1, 0x6f, 0xdd, 0xcb, - 0xa2, 0xbb, 0x8d, 0xfd, 0xf4, 0x36, 0x2a, 0xc8, 0x04, 0x27, 0x38, 0x7e, 0xa2, 0xb1, 0xc7, 0x33, - 0x75, 0x4e, 0x35, 0xee, 0xf4, 0xe6, 0xa5, 0xef, 0x1f, 0xcb, 0xd5, 0x8d, 0x1e, 0xce, 0x69, 0xc5, - 0xaf, 0xeb, 0xdb, 0x0c, 0x0d, 0xcf, 0x8d, 0x05, 0xbb, 0xe5, 0xb7, 0xfa, 0xc1, 0x48, 0x75, 0x1b, - 0x42, 0x36, 0xfa, 0xa8, 0xcb, 0x10, 0x68, 0xf2, 0x9d, 0xde, 0x3c, 0x32, 0x8d, 0x08, 0xdf, 0xa2, - 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe9, 0x7e, 0x29, 0xd3, 0x46, 0xdb, 0x3d, - 0x6f, 0xe7, 0xed, 0x2e, 0x53, 0x13, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x02, 0x61, 0x4f, 0xa1, - 0x5d, 0x09, 0x84, 0x77, 0x1a, 0xfd, 0xe8, 0x76, 0x4a, 0xb2, 0x2c, 0x7f, 0x3f, 0x88, 0xee, 0xa2, - 0x65, 0x91, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb5, 0x9e, 0x2c, 0xd4, 0x3f, - 0x0d, 0xa2, 0x7b, 0x81, 0x42, 0x89, 0x00, 0xb9, 0x85, 0x75, 0x37, 0x50, 0x3e, 0xbb, 0xbd, 0x22, - 0x36, 0xdd, 0xdb, 0xf8, 0xa4, 0x7d, 0xfd, 0x56, 0xc0, 0xf6, 0x04, 0xbf, 0x7e, 0xab, 0x5b, 0x0b, - 0x6e, 0xf2, 0xc4, 0x17, 0x6a, 0xd1, 0xe5, 0xdd, 0xe4, 0xe1, 0x67, 0x11, 0x83, 0xd7, 0x88, 0xf8, - 0x38, 0x9f, 0x93, 0x17, 0xaf, 0xcb, 0xb8, 0x48, 0x71, 0x27, 0x42, 0xde, 0xed, 0x44, 0x73, 0x70, - 0x73, 0xac, 0x91, 0x9e, 0x51, 0xb5, 0x90, 0x7a, 0x84, 0xe9, 0x6b, 0x24, 0xb8, 0x39, 0xd6, 0x42, - 0x11, 0x6f, 0x32, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0xb5, 0x37, - 0xbd, 0xe7, 0xbe, 0x15, 0xb2, 0xd2, 0xda, 0x77, 0xdf, 0xee, 0x49, 0x23, 0x6e, 0x27, 0x84, 0x7d, - 0x4e, 0xe2, 0x94, 0x54, 0x41, 0xb7, 0x9a, 0xea, 0xe5, 0xd6, 0xa6, 0x7d, 0x6e, 0x77, 0x69, 0xbe, - 0x98, 0x17, 0xb2, 0x31, 0x51, 0xb7, 0x36, 0xd5, 0xed, 0x16, 0xd0, 0x70, 0x5b, 0xd0, 0xb8, 0xe5, - 0xe9, 0xe5, 0xe3, 0xb0, 0x19, 0x27, 0xab, 0xdc, 0xec, 0xc5, 0xe2, 0xf5, 0x94, 0x61, 0xd4, 0x51, - 0x4f, 0x10, 0x49, 0xdb, 0x3d, 0x69, 0xb8, 0x3f, 0x67, 0xb9, 0xd5, 0xf1, 0xb4, 0xd3, 0x61, 0xab, - 0x15, 0x52, 0x4f, 0xfa, 0x2b, 0xc0, 0xdd, 0x50, 0x19, 0x55, 0x47, 0x59, 0xcd, 0xf6, 0xb3, 0x3c, - 0x1f, 0x6e, 0x06, 0xc2, 0x44, 0x41, 0xc1, 0xdd, 0x50, 0x0f, 0x8c, 0x44, 0xb2, 0xda, 0x3d, 0x2c, - 0x86, 0x5d, 0x76, 0x38, 0xd5, 0x2b, 0x92, 0x6d, 0x1a, 0xec, 0x68, 0x59, 0x8f, 0x5a, 0xd7, 0x76, - 0x14, 0x7e, 0x70, 0xad, 0x0a, 0xef, 0xf4, 0xe6, 0xc1, 0xeb, 0x76, 0x4e, 0xf1, 0x99, 0xe5, 0x01, - 0x66, 0xc2, 0x99, 0x49, 0x1e, 0x76, 0x50, 0x60, 0x57, 0x50, 0x74, 0xa3, 0x57, 0x59, 0x3a, 0x23, - 0xcc, 0xfb, 0xa6, 0xc8, 0x06, 0x82, 0x6f, 0x8a, 0x00, 0x08, 0x9a, 0x4e, 0xfc, 0x5d, 0x6f, 0x87, - 0x1e, 0xa6, 0xbe, 0xa6, 0x93, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x0d, 0x46, 0x03, 0xed, 0x56, - 0x5e, 0xbc, 0xf0, 0x38, 0x64, 0x06, 0xdc, 0xbe, 0xb0, 0xd9, 0x8b, 0x05, 0x33, 0x8a, 0x71, 0x98, - 0xcd, 0x33, 0xe6, 0x9b, 0x51, 0x2c, 0x1b, 0x0d, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x56, 0xbd, 0x26, - 0x47, 0x38, 0x4c, 0xc3, 0xd5, 0x13, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0xf5, 0x62, 0xb3, 0xd0, 0x21, - 0xc3, 0xae, 0xe4, 0x62, 0xd9, 0x13, 0xdb, 0xfc, 0x83, 0x5c, 0x08, 0x86, 0x46, 0x1d, 0x4c, 0x01, - 0x6e, 0xd8, 0x37, 0x9c, 0x7a, 0xf7, 0x5a, 0x96, 0x24, 0xae, 0xe2, 0x22, 0xf1, 0x2e, 0x4e, 0xb9, - 0xc1, 0x16, 0x19, 0x5a, 0x9c, 0xa2, 0x1a, 0xe0, 0xb5, 0xb9, 0xfb, 0x29, 0xad, 0xa7, 0x2b, 0xe8, - 0x6f, 0x56, 0xdd, 0x2f, 0x69, 0x1f, 0xf5, 0x20, 0xe1, 0x6b, 0x73, 0x05, 0xe8, 0x8d, 0x6f, 0xe1, - 0xf4, 0xc3, 0x80, 0x29, 0x17, 0x0d, 0x2d, 0x84, 0x71, 0x15, 0x10, 0xd4, 0x3a, 0xc1, 0x25, 0xec, - 0x47, 0x64, 0xe5, 0x0b, 0x6a, 0x93, 0x9f, 0x72, 0x24, 0x14, 0xd4, 0x6d, 0x14, 0xe4, 0x99, 0xf6, - 0x3a, 0x68, 0x2d, 0xa0, 0x6f, 0x2f, 0x7d, 0xd6, 0x3b, 0x39, 0xd0, 0x73, 0xf6, 0xb2, 0xa5, 0xf3, - 0x9e, 0xc0, 0x53, 0xd0, 0xbd, 0x6c, 0xe9, 0x7f, 0x4d, 0xb0, 0xd9, 0x8b, 0x85, 0xaf, 0xe4, 0x63, - 0x46, 0x5e, 0xab, 0x77, 0xe5, 0x9e, 0xe2, 0x72, 0x79, 0xeb, 0x65, 0xf9, 0x46, 0x37, 0x68, 0x0e, - 0xc0, 0x9e, 0x56, 0x34, 0x21, 0x75, 0x2d, 0xef, 0x24, 0x75, 0x4f, 0x18, 0x49, 0xd9, 0x08, 0xdc, - 0x48, 0xfa, 0x20, 0x0c, 0x59, 0x17, 0x09, 0x0a, 0x91, 0xb9, 0xdf, 0x68, 0xcd, 0xab, 0xd9, 0xbe, - 0xda, 0x68, 0xbd, 0x93, 0x33, 0xdd, 0x4b, 0x4a, 0xed, 0x0b, 0x8d, 0x36, 0xbc, 0xea, 0xbe, 0xbb, - 0x8c, 0x1e, 0xf5, 0x20, 0xa5, 0xab, 0xcf, 0xa3, 0x37, 0x8f, 0xe8, 0x6c, 0x42, 0x8a, 0x74, 0xf8, - 0x3d, 0xf7, 0x08, 0x2d, 0x9d, 0x8d, 0x9a, 0x3f, 0x6b, 0xa3, 0x77, 0x30, 0xb1, 0x39, 0x04, 0xb8, - 0x47, 0x2e, 0x16, 0xb3, 0x09, 0x8b, 0x19, 0x38, 0x04, 0xc8, 0xff, 0x3e, 0x6a, 0x04, 0xc8, 0x21, - 0x40, 0x07, 0x00, 0xf6, 0xa6, 0x15, 0x21, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x02, 0x26, 0x8b, - 0xd0, 0xf6, 0x9a, 0x44, 0x1d, 0x1e, 0xda, 0x33, 0x3a, 0x5c, 0x8a, 0x64, 0x11, 0x6d, 0xca, 0x04, - 0xb7, 0xa8, 0x3e, 0xbf, 0x5f, 0x66, 0x31, 0x9f, 0xc7, 0xd5, 0x0a, 0x04, 0xb7, 0xac, 0xa5, 0x05, - 0x20, 0xc1, 0xed, 0x05, 0x4d, 0xaf, 0x55, 0x8f, 0x39, 0xb9, 0x3e, 0xa0, 0x15, 0x5d, 0xb0, 0xac, - 0x20, 0xf0, 0x8e, 0x11, 0xfd, 0x40, 0x6d, 0x06, 0xe9, 0xb5, 0x18, 0x6b, 0xb2, 0x5c, 0x4e, 0x88, - 0xf3, 0x84, 0xfc, 0x9a, 0xf4, 0x9a, 0xd1, 0x0a, 0xbe, 0x4f, 0x14, 0x56, 0x20, 0x84, 0x64, 0xb9, - 0x28, 0x0c, 0xda, 0xfe, 0x34, 0x2b, 0x66, 0xde, 0xb6, 0x3f, 0xb5, 0xef, 0xf9, 0xbd, 0x87, 0x03, - 0xa6, 0x43, 0x89, 0x87, 0x26, 0x3a, 0x80, 0xfc, 0x6a, 0xd7, 0xfb, 0xd0, 0x6d, 0x02, 0xe9, 0x50, - 0x7e, 0x12, 0xb8, 0xfa, 0xa2, 0x24, 0x05, 0x49, 0xd5, 0xa9, 0x39, 0x9f, 0x2b, 0x87, 0x08, 0xba, - 0x82, 0xa4, 0x19, 0x8b, 0xb8, 0xfc, 0x6c, 0x51, 0x9c, 0x56, 0xf4, 0x32, 0xcb, 0x49, 0x05, 0xc6, - 0x22, 0xa1, 0x6e, 0xc9, 0x91, 0xb1, 0xc8, 0xc7, 0x99, 0xe3, 0x17, 0x5c, 0xea, 0xdc, 0xf5, 0x3f, - 0xad, 0xe2, 0x04, 0x1e, 0xbf, 0x10, 0x36, 0xda, 0x18, 0xb2, 0x33, 0x18, 0xc0, 0xad, 0x44, 0x47, - 0xb8, 0x2e, 0x56, 0x3c, 0x3e, 0xe4, 0x57, 0xa3, 0xfc, 0xf6, 0xdb, 0x1a, 0x24, 0x3a, 0xd2, 0x9c, - 0x8f, 0x44, 0x12, 0x9d, 0xb0, 0x86, 0x99, 0x4a, 0x38, 0x77, 0x22, 0x8f, 0x15, 0x81, 0xa9, 0x44, - 0xd8, 0x50, 0x42, 0x64, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x52, 0xdd, 0x60, 0xe6, 0x1d, 0x90, 0xb4, - 0x34, 0x38, 0x20, 0xd9, 0x94, 0x19, 0x28, 0x0e, 0x8b, 0x8c, 0x65, 0x71, 0x3e, 0x21, 0xec, 0x34, - 0xae, 0xe2, 0x39, 0x61, 0xa4, 0x82, 0x03, 0x85, 0x44, 0x46, 0x0e, 0x83, 0x0c, 0x14, 0x18, 0x2b, - 0x1d, 0xfe, 0x76, 0xf4, 0x76, 0x33, 0xef, 0x93, 0x42, 0xfe, 0x4a, 0xd1, 0x0b, 0xfe, 0xf3, 0x66, - 0xc3, 0x77, 0xb4, 0x8d, 0x09, 0xab, 0x48, 0x3c, 0x57, 0xb6, 0xdf, 0xd2, 0x7f, 0xe7, 0xe0, 0x93, - 0x41, 0x13, 0xcf, 0x27, 0x94, 0x65, 0x97, 0xcd, 0x32, 0x5b, 0x7e, 0x41, 0x04, 0xe2, 0xd9, 0x16, - 0x8f, 0x02, 0xb7, 0x8e, 0xf8, 0x38, 0x33, 0x4e, 0xdb, 0xd2, 0x33, 0x52, 0xe6, 0x70, 0x9c, 0x76, - 0xb4, 0x39, 0x80, 0x8c, 0xd3, 0x5e, 0xd0, 0x74, 0x4e, 0x5b, 0x3c, 0x25, 0xe1, 0xca, 0x4c, 0x49, - 0xbf, 0xca, 0x4c, 0x9d, 0x8f, 0x32, 0xf2, 0xe8, 0xed, 0x63, 0x32, 0xbf, 0x20, 0x55, 0x7d, 0x95, - 0x95, 0xd8, 0x0d, 0xbd, 0x86, 0xe8, 0xbc, 0xa1, 0x17, 0x41, 0xcd, 0x4c, 0x60, 0x80, 0xc3, 0xfa, - 0x24, 0x9e, 0x13, 0x7e, 0x87, 0x0a, 0x98, 0x09, 0x2c, 0x23, 0x16, 0x84, 0xcc, 0x04, 0x28, 0x6c, - 0x7d, 0xdf, 0x65, 0x98, 0x33, 0x32, 0x6b, 0x22, 0xac, 0x3a, 0x8d, 0x57, 0x73, 0x52, 0x30, 0x69, - 0x12, 0xec, 0xc9, 0x5b, 0x26, 0xfd, 0x3c, 0xb2, 0x27, 0xdf, 0x47, 0xcf, 0x1a, 0x9a, 0x9c, 0x07, - 0x7f, 0x4a, 0x2b, 0x26, 0x7e, 0x83, 0xec, 0xbc, 0xca, 0xc1, 0xd0, 0xe4, 0x3e, 0x54, 0x87, 0x44, - 0x86, 0xa6, 0xb0, 0x86, 0xf5, 0x7b, 0x13, 0x4e, 0x19, 0x5e, 0x92, 0x4a, 0xc7, 0xc9, 0x8b, 0x79, - 0x9c, 0xe5, 0x32, 0x1a, 0xbe, 0x1f, 0xb0, 0x8d, 0xe8, 0x20, 0xbf, 0x37, 0xd1, 0x57, 0xd7, 0xfa, - 0x85, 0x8e, 0x70, 0x09, 0xc1, 0x2b, 0x82, 0x0e, 0xfb, 0xc8, 0x2b, 0x82, 0x6e, 0x2d, 0xb3, 0x72, - 0x37, 0x2c, 0xe7, 0x56, 0x9c, 0xd8, 0xa5, 0x29, 0xdc, 0x2f, 0xb4, 0x6c, 0x02, 0x10, 0x59, 0xb9, - 0x07, 0x15, 0x4c, 0x6a, 0x60, 0xb0, 0xfd, 0xac, 0x88, 0xf3, 0xec, 0x27, 0x30, 0xad, 0xb7, 0xec, - 0x28, 0x02, 0x49, 0x0d, 0xfc, 0xa4, 0xcf, 0xd5, 0x01, 0x61, 0xd3, 0xac, 0x19, 0xfa, 0x37, 0x02, - 0xcf, 0x8d, 0x13, 0xdd, 0xae, 0x2c, 0xd2, 0xba, 0x8d, 0x17, 0x3e, 0xd6, 0x71, 0x59, 0x4e, 0x9a, - 0x59, 0xf5, 0x8c, 0x24, 0x24, 0x2b, 0xd9, 0xf0, 0xe3, 0xf0, 0xb3, 0x02, 0x38, 0x72, 0xd0, 0xa2, - 0x87, 0x9a, 0xf5, 0xfa, 0xbe, 0x19, 0x4b, 0x26, 0xe2, 0xc7, 0x39, 0xcf, 0x6b, 0x52, 0xc9, 0x44, - 0xe3, 0x80, 0x30, 0xd0, 0x3b, 0x2d, 0x6e, 0x64, 0x81, 0x4d, 0x45, 0x91, 0xde, 0x19, 0xd6, 0x30, - 0x9b, 0x7d, 0x16, 0x27, 0x6f, 0x57, 0xe7, 0xe7, 0x0d, 0xb7, 0x50, 0x63, 0x16, 0x85, 0x6c, 0xf6, - 0xe1, 0xb4, 0xc9, 0xd6, 0xda, 0x6e, 0xc7, 0xc5, 0xea, 0x10, 0x1e, 0x99, 0xf0, 0x58, 0xe2, 0x18, - 0x92, 0xad, 0x05, 0x70, 0x6b, 0x33, 0xbc, 0xa2, 0x71, 0x9a, 0xc4, 0x35, 0x3b, 0x8d, 0x57, 0x39, - 0x8d, 0x53, 0x3e, 0xaf, 0xc3, 0xcd, 0x70, 0xc5, 0x8c, 0x6c, 0x08, 0xdb, 0x0c, 0xc7, 0x60, 0x3b, - 0x3b, 0xe3, 0xbf, 0x39, 0x2a, 0xcf, 0x72, 0xc2, 0xec, 0x8c, 0x97, 0x17, 0x9e, 0xe3, 0x7c, 0x10, - 0x86, 0xcc, 0x37, 0x68, 0x42, 0xc4, 0xd3, 0x90, 0x7b, 0x3e, 0x1d, 0x27, 0x01, 0x79, 0x3f, 0x40, - 0x98, 0x1b, 0x48, 0xc4, 0xdf, 0xd5, 0xcf, 0x4c, 0x31, 0x79, 0x67, 0xf9, 0x96, 0x4f, 0xd7, 0x86, - 0x46, 0xf6, 0x45, 0x16, 0xdb, 0x3d, 0x69, 0x93, 0x66, 0xee, 0x5e, 0xc5, 0x6c, 0x9c, 0xa6, 0xc7, - 0xa4, 0xf6, 0x7c, 0x50, 0xde, 0x08, 0x47, 0x46, 0x8a, 0xa4, 0x99, 0x6d, 0xca, 0x04, 0x7a, 0x23, - 0x7b, 0x91, 0x66, 0x4c, 0xca, 0xd4, 0x09, 0xe9, 0xad, 0xb6, 0x81, 0x36, 0x85, 0xd4, 0x0a, 0xa7, - 0xcd, 0x58, 0xde, 0x30, 0x53, 0x3a, 0x9b, 0xe5, 0x44, 0x42, 0x67, 0x24, 0x16, 0x57, 0x36, 0xee, - 0xb4, 0x6d, 0x79, 0x41, 0x64, 0x2c, 0x0f, 0x2a, 0x98, 0x34, 0xb2, 0xc1, 0xc4, 0x2b, 0x29, 0xf5, - 0x60, 0xd7, 0xdb, 0x66, 0x1c, 0x00, 0x49, 0x23, 0xbd, 0xa0, 0xf9, 0xee, 0xad, 0x11, 0x1f, 0x10, - 0xf5, 0x24, 0xe0, 0x65, 0x53, 0x5c, 0xd9, 0x12, 0x23, 0xdf, 0xbd, 0x79, 0x30, 0xb3, 0x4e, 0x00, - 0x1e, 0x9e, 0xaf, 0x0e, 0x53, 0xb8, 0x4e, 0x80, 0xfa, 0x9c, 0x41, 0xd6, 0x09, 0x18, 0xeb, 0x36, - 0x9d, 0xde, 0xf7, 0x3a, 0x8a, 0x6b, 0x53, 0x39, 0x4f, 0xd3, 0x79, 0xc1, 0x50, 0xd3, 0x61, 0x0a, - 0xee, 0x23, 0xb5, 0xb7, 0xd6, 0x3c, 0x8f, 0xd4, 0xb7, 0xaf, 0xb6, 0xd6, 0x85, 0x99, 0x71, 0x49, - 0xaf, 0x27, 0xf9, 0x91, 0x25, 0xff, 0x6f, 0x35, 0x08, 0x21, 0x32, 0x2e, 0xb5, 0x20, 0x61, 0xfb, - 0xf9, 0xfb, 0xff, 0xf5, 0xd5, 0x9d, 0xc1, 0xcf, 0xbe, 0xba, 0x33, 0xf8, 0x9f, 0xaf, 0xee, 0x0c, - 0x7e, 0xfa, 0xf5, 0x9d, 0x37, 0x7e, 0xf6, 0xf5, 0x9d, 0x37, 0xfe, 0xfb, 0xeb, 0x3b, 0x6f, 0x7c, - 0xf9, 0xa6, 0xfc, 0x2d, 0xea, 0x8b, 0x9f, 0xe3, 0xbf, 0x28, 0xfd, 0xec, 0xff, 0x02, 0x00, 0x00, - 0xff, 0xff, 0xc9, 0x60, 0xbd, 0x6d, 0xaf, 0x7a, 0x00, 0x00, + // 5482 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49, + 0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x07, 0x86, 0xd9, 0x61, 0x37, 0xc9, 0x64, + 0x12, 0x3b, 0x89, 0xe3, 0xeb, 0x4c, 0x32, 0xff, 0xd8, 0x45, 0x82, 0x1b, 0x3b, 0xf1, 0x78, 0xd7, + 0xf6, 0x18, 0x5f, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0xdd, 0x5d, 0xbe, 0x6e, 0xdc, 0xb7, 0xab, 0xb7, + 0xbb, 0xae, 0x93, 0xbb, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0xfc, 0x13, 0x3c, 0x21, 0xf1, + 0x09, 0xf8, 0x18, 0x3c, 0xee, 0x03, 0x0f, 0x3c, 0xa2, 0x99, 0x6f, 0xc0, 0x27, 0x40, 0x5d, 0x5d, + 0x7f, 0x4f, 0x9f, 0x53, 0xdd, 0x1e, 0x9e, 0x12, 0xf9, 0xfc, 0xce, 0x39, 0xf5, 0xe7, 0x54, 0xd5, + 0xa9, 0xea, 0xea, 0xbe, 0xd1, 0xcd, 0xf2, 0x6c, 0xab, 0xac, 0xb8, 0xe0, 0xf5, 0x56, 0xcd, 0xaa, + 0xab, 0x2c, 0x61, 0xfa, 0xdf, 0x89, 0xfc, 0xf3, 0xf8, 0xcd, 0xb8, 0x58, 0x89, 0x55, 0xc9, 0xde, + 0x7b, 0xd7, 0x92, 0x09, 0x5f, 0x2c, 0xe2, 0x22, 0xad, 0x5b, 0xe4, 0xbd, 0x77, 0xac, 0x84, 0x5d, + 0xb1, 0x42, 0xa8, 0xbf, 0x3f, 0xfe, 0xaf, 0xff, 0x1d, 0x45, 0x6f, 0x6d, 0xe7, 0x19, 0x2b, 0xc4, + 0xb6, 0xd2, 0x18, 0x7f, 0x19, 0x7d, 0x7b, 0x5a, 0x96, 0xbb, 0x4c, 0xbc, 0x60, 0x55, 0x9d, 0xf1, + 0x62, 0xfc, 0xc1, 0x44, 0x39, 0x98, 0x1c, 0x97, 0xc9, 0x64, 0x5a, 0x96, 0x13, 0x2b, 0x9c, 0x1c, + 0xb3, 0x1f, 0x2f, 0x59, 0x2d, 0xde, 0xbb, 0x13, 0x86, 0xea, 0x92, 0x17, 0x35, 0x1b, 0x9f, 0x47, + 0xbf, 0x32, 0x2d, 0xcb, 0x19, 0x13, 0x3b, 0xac, 0xa9, 0xc0, 0x4c, 0xc4, 0x82, 0x8d, 0xd7, 0x3b, + 0xaa, 0x3e, 0x60, 0x7c, 0xdc, 0xeb, 0x07, 0x95, 0x9f, 0x93, 0xe8, 0x5b, 0x8d, 0x9f, 0x8b, 0xa5, + 0x48, 0xf9, 0xab, 0x62, 0xfc, 0x7e, 0x57, 0x51, 0x89, 0x8c, 0xed, 0xdb, 0x21, 0x44, 0x59, 0x7d, + 0x19, 0xfd, 0xe2, 0xcb, 0x38, 0xcf, 0x99, 0xd8, 0xae, 0x58, 0x53, 0x70, 0x5f, 0xa7, 0x15, 0x4d, + 0x5a, 0x99, 0xb1, 0xfb, 0x41, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x4a, 0x8e, 0x59, 0xc2, + 0xaf, 0x58, 0x35, 0x46, 0xb5, 0x94, 0x90, 0x68, 0xf2, 0x0e, 0x04, 0x6d, 0x6f, 0xf3, 0xe2, 0x8a, + 0x55, 0x02, 0xb7, 0xad, 0x84, 0x61, 0xdb, 0x16, 0x52, 0xb6, 0xff, 0x6a, 0x14, 0x7d, 0x77, 0x9a, + 0x24, 0x7c, 0x59, 0x88, 0x7d, 0x9e, 0xc4, 0xf9, 0x7e, 0x56, 0x5c, 0x1e, 0xb2, 0x57, 0xdb, 0x17, + 0x0d, 0x5f, 0xcc, 0xd9, 0xf8, 0x89, 0xdf, 0xaa, 0x2d, 0x3a, 0x31, 0xec, 0xc4, 0x85, 0x8d, 0xef, + 0x8f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x77, 0xa3, 0xe8, 0x06, 0x2c, 0xcb, 0x8c, 0xe7, 0x57, 0xcc, + 0x96, 0xe6, 0xe3, 0x1e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xc9, 0x75, 0xd5, 0x54, 0x89, 0xf2, 0xe8, + 0x6d, 0x37, 0x5c, 0x66, 0xac, 0x96, 0xc3, 0xe9, 0x3e, 0x1d, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0x0c, + 0x41, 0x95, 0xb7, 0x2c, 0x1a, 0x2b, 0x6f, 0x39, 0xaf, 0x8d, 0xb3, 0x7b, 0xa8, 0x05, 0x87, 0x30, + 0xbe, 0xee, 0x0f, 0x20, 0x95, 0xab, 0xdf, 0x8f, 0x7e, 0xe9, 0x25, 0xaf, 0x2e, 0xeb, 0x32, 0x4e, + 0x98, 0x1a, 0x0a, 0x77, 0x7d, 0x6d, 0x2d, 0x85, 0xa3, 0x61, 0xad, 0x0f, 0x73, 0x82, 0x56, 0x0b, + 0xbf, 0x28, 0x19, 0x9c, 0x83, 0xac, 0x62, 0x23, 0xa4, 0x82, 0x16, 0x42, 0xca, 0xf6, 0x65, 0x34, + 0xb6, 0xb6, 0xcf, 0xfe, 0x80, 0x25, 0x62, 0x9a, 0xa6, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x26, 0xd3, + 0x34, 0xa5, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x7e, 0x56, 0x4b, 0x87, + 0x9b, 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x27, 0x43, 0x71, 0xe5, 0xf8, 0x4f, 0x46, 0xd1, 0x77, 0x10, + 0xcf, 0xc7, 0x6c, 0xc1, 0xaf, 0xd8, 0xf8, 0x51, 0xbf, 0xb5, 0x96, 0x34, 0xfe, 0x3f, 0xbc, 0x86, + 0x06, 0x12, 0x26, 0x33, 0x96, 0xb3, 0x44, 0x90, 0x61, 0xd2, 0x8a, 0x7b, 0xc3, 0xc4, 0x60, 0xce, + 0x08, 0xd3, 0xc2, 0x5d, 0x26, 0xb6, 0x97, 0x55, 0xc5, 0x0a, 0x41, 0xf6, 0xa5, 0x45, 0x7a, 0xfb, + 0xd2, 0x43, 0x91, 0xfa, 0xec, 0x32, 0x31, 0xcd, 0x73, 0xb2, 0x3e, 0xad, 0xb8, 0xb7, 0x3e, 0x06, + 0x53, 0x1e, 0x92, 0xe8, 0x97, 0x9d, 0x16, 0x13, 0x7b, 0xc5, 0x39, 0x1f, 0xd3, 0x6d, 0x21, 0xe5, + 0xc6, 0xc7, 0x7a, 0x2f, 0x87, 0x54, 0xe3, 0xd9, 0xeb, 0x92, 0x57, 0x74, 0xb7, 0xb4, 0xe2, 0xde, + 0x6a, 0x18, 0x4c, 0x79, 0xf8, 0xbd, 0xe8, 0x2d, 0x35, 0x4b, 0xea, 0xf5, 0xec, 0x0e, 0x3a, 0x85, + 0xc2, 0x05, 0xed, 0x6e, 0x0f, 0x65, 0x27, 0x07, 0x25, 0x53, 0x93, 0xcf, 0x07, 0xa8, 0x1e, 0x98, + 0x7a, 0xee, 0x84, 0xa1, 0x8e, 0xed, 0x1d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, + 0x65, 0xbb, 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x33, 0x49, 0x6f, 0x10, 0xf5, + 0x76, 0x21, 0xe3, 0xeb, 0xe1, 0x30, 0xb8, 0x53, 0x1f, 0x35, 0x02, 0xf1, 0xfa, 0x80, 0xf1, 0x77, + 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3d, 0x8a, 0xbe, 0xa7, 0x64, 0xcf, 0x8a, 0xf8, 0x2c, 0x67, 0x72, + 0x49, 0x3c, 0x64, 0xe2, 0x15, 0xaf, 0x2e, 0x67, 0xab, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, + 0xfe, 0x49, 0x25, 0x55, 0x98, 0x3f, 0x8c, 0xde, 0xd5, 0x41, 0x71, 0x11, 0x17, 0x73, 0xf6, 0xc3, + 0x9a, 0x17, 0xd3, 0x32, 0x9b, 0xa6, 0x69, 0x35, 0x9e, 0xe0, 0x5d, 0x0f, 0x39, 0x53, 0x82, 0xad, + 0xc1, 0xbc, 0x93, 0x6e, 0xaa, 0x56, 0x16, 0xbc, 0x84, 0xe9, 0xa6, 0x6e, 0x3e, 0xc1, 0x4b, 0x2a, + 0xdd, 0xf4, 0x91, 0x8e, 0xd5, 0x83, 0x66, 0xce, 0xc6, 0xad, 0x1e, 0xb8, 0x93, 0xf4, 0xed, 0x10, + 0x62, 0xe7, 0x4c, 0xdd, 0x50, 0xbc, 0x38, 0xcf, 0xe6, 0xa7, 0x65, 0xda, 0x8c, 0xa1, 0xfb, 0x78, + 0x9d, 0x1d, 0x84, 0x98, 0x33, 0x09, 0x54, 0x79, 0xfb, 0x5b, 0x9b, 0x95, 0xa9, 0x71, 0xfc, 0xbc, + 0xe2, 0x8b, 0x7d, 0x36, 0x8f, 0x93, 0x95, 0x9a, 0x7c, 0x3e, 0x0a, 0x8d, 0x7a, 0x48, 0x9b, 0x42, + 0x7c, 0x7c, 0x4d, 0x2d, 0x55, 0x9e, 0x7f, 0x1b, 0x45, 0x77, 0xbc, 0x38, 0x51, 0xc1, 0xd4, 0x96, + 0x7e, 0x5a, 0xa4, 0xc7, 0xac, 0x16, 0x71, 0x25, 0xc6, 0xdf, 0x0f, 0xc4, 0x00, 0xa1, 0x63, 0xca, + 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0xd6, 0xcc, 0xaa, 0x6a, 0xfe, 0xf1, 0x7b, 0x5d, 0x4a, + 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xbd, 0xe2, 0x2a, 0x13, 0x6c, 0x97, 0x15, + 0xac, 0xea, 0xf6, 0x7a, 0xab, 0xea, 0x23, 0x44, 0xaf, 0x13, 0xa8, 0x9d, 0xe9, 0x3c, 0x6f, 0x66, + 0x65, 0xde, 0x08, 0x18, 0xe9, 0xac, 0xcd, 0x0f, 0x87, 0xc1, 0x76, 0x6b, 0xe9, 0xf8, 0x3c, 0x66, + 0x57, 0xfc, 0x12, 0x6e, 0x2d, 0x5d, 0x13, 0x2d, 0x40, 0x6c, 0x2d, 0x51, 0xd0, 0x2e, 0x9f, 0x8e, + 0x9f, 0x17, 0x19, 0x7b, 0x05, 0x96, 0x4f, 0x57, 0xb9, 0x11, 0x13, 0xcb, 0x27, 0x82, 0x29, 0x0f, + 0x87, 0xd1, 0x2f, 0x48, 0xe1, 0x0f, 0x79, 0x56, 0x8c, 0x6f, 0x22, 0x4a, 0x8d, 0xc0, 0x58, 0xbd, + 0x45, 0x03, 0xa0, 0xc4, 0xcd, 0x5f, 0xb7, 0xe3, 0x22, 0x61, 0x39, 0x5a, 0x62, 0x2b, 0x0e, 0x96, + 0xd8, 0xc3, 0x6c, 0xde, 0x22, 0x85, 0xcd, 0xfc, 0x35, 0xbb, 0x88, 0xab, 0xac, 0x98, 0x8f, 0x31, + 0x5d, 0x47, 0x4e, 0xe4, 0x2d, 0x18, 0x07, 0x42, 0x58, 0x29, 0x4e, 0xcb, 0xb2, 0x6a, 0xa6, 0x45, + 0x2c, 0x84, 0x7d, 0x24, 0x18, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc3, 0x92, 0x3c, 0x2b, 0x82, 0xde, + 0x14, 0x32, 0xc4, 0x9b, 0x45, 0x41, 0xf0, 0xee, 0xb3, 0xf8, 0x8a, 0xe9, 0x9a, 0x61, 0x2d, 0xe3, + 0x02, 0xc1, 0xe0, 0x05, 0xa0, 0xdd, 0x24, 0x4a, 0xf1, 0x41, 0x7c, 0xc9, 0x9a, 0x06, 0x66, 0xcd, + 0xa2, 0x3a, 0xc6, 0xf4, 0x3d, 0x82, 0xd8, 0x24, 0xe2, 0xa4, 0x72, 0xb5, 0x8c, 0xde, 0x91, 0xf2, + 0xa3, 0xb8, 0x12, 0x59, 0x92, 0x95, 0x71, 0xa1, 0x37, 0x1f, 0xd8, 0xb8, 0xee, 0x50, 0xc6, 0xe5, + 0xe6, 0x40, 0x5a, 0xb9, 0xfd, 0xe7, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc4, 0xaa, 0x45, 0x26, 0xf7, + 0xb0, 0x75, 0x3b, 0x09, 0x8f, 0x3f, 0x0d, 0x1b, 0xed, 0x28, 0x98, 0xd2, 0x7c, 0x76, 0x7d, 0x45, + 0x9b, 0x89, 0xcd, 0x54, 0x5e, 0xff, 0x45, 0x95, 0x76, 0xce, 0x78, 0x66, 0x3a, 0x59, 0x97, 0x42, + 0x22, 0x13, 0xeb, 0x40, 0x60, 0x84, 0x9f, 0x16, 0xb5, 0xb6, 0x8e, 0x8d, 0x70, 0x2b, 0x0e, 0x8e, + 0x70, 0x0f, 0xb3, 0x23, 0xfc, 0x68, 0x79, 0x96, 0x67, 0xf5, 0x45, 0x56, 0xcc, 0x55, 0xda, 0xed, + 0xeb, 0x5a, 0x31, 0xcc, 0xbc, 0xd7, 0x7b, 0x39, 0xcc, 0x89, 0x0a, 0x16, 0xd2, 0x09, 0x08, 0x93, + 0xf5, 0x5e, 0xce, 0x6e, 0x4e, 0xac, 0xb4, 0xd9, 0xb6, 0x82, 0xcd, 0x89, 0xa3, 0xda, 0x48, 0x89, + 0xcd, 0x49, 0x97, 0x52, 0xe6, 0x79, 0xf4, 0xab, 0x6e, 0x1d, 0x6a, 0x9e, 0x5f, 0xb1, 0xd3, 0x2a, + 0x1b, 0x3f, 0xa0, 0xcb, 0xa7, 0x19, 0xe3, 0x6a, 0x63, 0x10, 0x6b, 0x27, 0x2a, 0x4b, 0xec, 0x32, + 0x31, 0x13, 0xb1, 0x58, 0xd6, 0x60, 0xa2, 0x72, 0x6c, 0x18, 0x84, 0x98, 0xa8, 0x08, 0x54, 0x79, + 0xfb, 0xdd, 0x28, 0x6a, 0x77, 0xfc, 0xf2, 0x54, 0xc6, 0x5f, 0x7b, 0xd4, 0x51, 0x80, 0x77, 0x24, + 0xf3, 0x7e, 0x80, 0xb0, 0x09, 0x4f, 0xfb, 0x77, 0x79, 0xd8, 0x34, 0x46, 0x35, 0xa4, 0x88, 0x48, + 0x78, 0x00, 0x02, 0x0b, 0x3a, 0xbb, 0xe0, 0xaf, 0xf0, 0x82, 0x36, 0x92, 0x70, 0x41, 0x15, 0x61, + 0x8f, 0x7f, 0x55, 0x41, 0xb1, 0xe3, 0x5f, 0x5d, 0x8c, 0xd0, 0xf1, 0x2f, 0x64, 0x6c, 0xcc, 0xb8, + 0x86, 0x9f, 0x72, 0x7e, 0xb9, 0x88, 0xab, 0x4b, 0x10, 0x33, 0x9e, 0xb2, 0x66, 0x88, 0x98, 0xa1, + 0x58, 0x1b, 0x33, 0xae, 0xc3, 0x26, 0x5d, 0x3e, 0xad, 0x72, 0x10, 0x33, 0x9e, 0x0d, 0x85, 0x10, + 0x31, 0x43, 0xa0, 0x76, 0x76, 0x72, 0xbd, 0xcd, 0x18, 0x3c, 0x70, 0xf0, 0xd4, 0x67, 0x8c, 0x3a, + 0x70, 0x40, 0x30, 0x18, 0x42, 0xbb, 0x55, 0x5c, 0x5e, 0xe0, 0x21, 0x24, 0x45, 0xe1, 0x10, 0xd2, + 0x08, 0xec, 0xef, 0x19, 0x8b, 0xab, 0xe4, 0x02, 0xef, 0xef, 0x56, 0x16, 0xee, 0x6f, 0xc3, 0xc0, + 0xfe, 0x6e, 0x05, 0x2f, 0x33, 0x71, 0x71, 0xc0, 0x44, 0x8c, 0xf7, 0xb7, 0xcf, 0x84, 0xfb, 0xbb, + 0xc3, 0xda, 0x7c, 0xdc, 0x75, 0x38, 0x5b, 0x9e, 0xd5, 0x49, 0x95, 0x9d, 0xb1, 0x71, 0xc0, 0x8a, + 0x81, 0x88, 0x7c, 0x9c, 0x84, 0x95, 0xcf, 0x9f, 0x8e, 0xa2, 0x9b, 0xba, 0xdb, 0x79, 0x5d, 0xab, + 0xb5, 0xcf, 0x77, 0xff, 0x31, 0xde, 0xbf, 0x04, 0x4e, 0x1c, 0xc8, 0x0f, 0x50, 0x73, 0x72, 0x03, + 0xbc, 0x48, 0xa7, 0x45, 0x6d, 0x0a, 0xf5, 0xe9, 0x10, 0xeb, 0x8e, 0x02, 0x91, 0x1b, 0x0c, 0x52, + 0xb4, 0x69, 0x99, 0xea, 0x1f, 0x2d, 0xdb, 0x4b, 0x6b, 0x90, 0x96, 0xe9, 0xf6, 0x76, 0x08, 0x22, + 0x2d, 0xc3, 0x49, 0x18, 0x0a, 0xbb, 0x15, 0x5f, 0x96, 0x75, 0x4f, 0x28, 0x00, 0x28, 0x1c, 0x0a, + 0x5d, 0x58, 0xf9, 0x7c, 0x1d, 0xfd, 0xba, 0x1b, 0x7e, 0x6e, 0x63, 0x6f, 0xd2, 0x31, 0x85, 0x35, + 0xf1, 0x64, 0x28, 0x6e, 0x33, 0x0a, 0xed, 0x59, 0xec, 0x30, 0x11, 0x67, 0x79, 0x3d, 0x5e, 0xc3, + 0x6d, 0x68, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x9c, 0xdf, 0x76, 0x96, 0x65, 0x9e, 0x25, 0xdd, 0xc7, + 0x21, 0x4a, 0xd7, 0x88, 0xc3, 0xf3, 0x9b, 0x8b, 0xc1, 0xf9, 0xba, 0x49, 0xfd, 0xe4, 0x7f, 0x4e, + 0x56, 0x25, 0xc3, 0xe7, 0x6b, 0x0f, 0x09, 0xcf, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x31, 0xb1, 0x1f, + 0xaf, 0xf8, 0x92, 0x98, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x7b, 0x03, 0xe3, 0x61, 0xaf, + 0x10, 0xac, 0x2a, 0xe2, 0xfc, 0x79, 0x1e, 0xcf, 0xeb, 0x31, 0x31, 0xc7, 0xf8, 0x14, 0xb1, 0x37, + 0xa0, 0x69, 0xa4, 0x19, 0xf7, 0xea, 0xe7, 0xf1, 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, + 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0xd3, 0x2a, 0xb9, 0xc8, 0xae, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, + 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x19, 0x5f, 0x56, 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, + 0xc1, 0x94, 0x87, 0x3f, 0x1f, 0x45, 0xbf, 0xd1, 0x4a, 0xdd, 0x67, 0x14, 0x3b, 0x71, 0x7d, 0x71, + 0xc6, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, 0x51, 0xe3, 0xfa, 0xf1, 0x75, 0x54, 0x60, 0xb3, + 0x36, 0x79, 0xb7, 0x1d, 0x71, 0x68, 0xb3, 0x7a, 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x27, 0x10, 0x29, + 0x6f, 0x8f, 0xe4, 0xd6, 0x48, 0x7d, 0xff, 0x5c, 0x6e, 0xbd, 0x97, 0x83, 0xf3, 0x63, 0x23, 0xf4, + 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x47, 0xcc, 0x64, 0x28, 0x4e, 0x7a, 0x36, 0xa3, 0x22, 0xec, 0xb9, + 0x33, 0x32, 0x26, 0x43, 0x71, 0xc2, 0xb3, 0x33, 0xad, 0x85, 0x3c, 0x23, 0x53, 0xdb, 0x64, 0x28, + 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x41, 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x06, 0xb1, 0xca, + 0xe1, 0x5f, 0x8e, 0xa2, 0xef, 0x5a, 0x8f, 0x07, 0x3c, 0xcd, 0xce, 0x57, 0x2d, 0xf4, 0x22, 0xce, + 0x97, 0xac, 0x1e, 0x3f, 0xa6, 0xac, 0x75, 0x59, 0x53, 0x82, 0x27, 0xd7, 0xd2, 0x81, 0x63, 0x67, + 0x5a, 0x96, 0xf9, 0xea, 0x84, 0x2d, 0xca, 0x9c, 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, + 0x59, 0xf9, 0x09, 0x6f, 0x72, 0x7e, 0x34, 0x2b, 0x97, 0xa2, 0x70, 0x56, 0xae, 0x11, 0x98, 0x2b, + 0x9d, 0xf0, 0x6d, 0x9e, 0xe7, 0x2c, 0x11, 0xdd, 0x7b, 0x0e, 0x46, 0xd3, 0x12, 0xe1, 0x5c, 0x09, + 0x90, 0xf6, 0x54, 0x4e, 0xef, 0x21, 0xe3, 0x8a, 0x3d, 0x5d, 0xed, 0x67, 0xc5, 0xe5, 0x18, 0x4f, + 0x0b, 0x2c, 0x40, 0x9c, 0xca, 0xa1, 0x20, 0xdc, 0xab, 0x9e, 0x16, 0x29, 0xc7, 0xf7, 0xaa, 0x8d, + 0x24, 0xbc, 0x57, 0x55, 0x04, 0x34, 0x79, 0xcc, 0x28, 0x93, 0x8d, 0x24, 0x6c, 0x52, 0x11, 0xd8, + 0x54, 0xa8, 0x9e, 0xdd, 0x90, 0x53, 0x21, 0x78, 0x5a, 0xb3, 0xde, 0xcb, 0xc1, 0x08, 0xd5, 0x9b, + 0xd6, 0xe7, 0x4c, 0x24, 0x17, 0x78, 0x84, 0x7a, 0x48, 0x38, 0x42, 0x21, 0x0a, 0xab, 0x74, 0xc2, + 0xcd, 0xa6, 0x7b, 0x0d, 0x8f, 0x8f, 0xce, 0x86, 0x7b, 0xbd, 0x97, 0x83, 0xdb, 0xc8, 0xbd, 0x85, + 0x6c, 0x33, 0x34, 0xc8, 0x5b, 0x59, 0x78, 0x1b, 0x69, 0x18, 0x58, 0xfa, 0x56, 0x20, 0xcf, 0xb2, + 0xd6, 0x68, 0x45, 0xef, 0x34, 0x6b, 0xbd, 0x97, 0x53, 0x4e, 0xfe, 0xd1, 0x6c, 0xe3, 0x5a, 0xe9, + 0x21, 0x6f, 0xc6, 0xc8, 0x8b, 0x38, 0xcf, 0xd2, 0x58, 0xb0, 0x13, 0x7e, 0xc9, 0x0a, 0x7c, 0xc7, + 0xa4, 0x4a, 0xdb, 0xf2, 0x13, 0x4f, 0x21, 0xbc, 0x63, 0x0a, 0x2b, 0xc2, 0x38, 0x69, 0xe9, 0xd3, + 0x9a, 0x6d, 0xc7, 0x35, 0x31, 0x93, 0x79, 0x48, 0x38, 0x4e, 0x20, 0x0a, 0xf3, 0xd5, 0x56, 0xfe, + 0xec, 0x75, 0xc9, 0xaa, 0x8c, 0x15, 0x09, 0xc3, 0xf3, 0x55, 0x48, 0x85, 0xf3, 0x55, 0x84, 0x86, + 0x7b, 0xb5, 0x9d, 0x58, 0xb0, 0xa7, 0xab, 0x93, 0x6c, 0xc1, 0x6a, 0x11, 0x2f, 0x4a, 0x7c, 0xaf, + 0x06, 0xa0, 0xf0, 0x5e, 0xad, 0x0b, 0x77, 0x8e, 0x86, 0xcc, 0x84, 0xd8, 0xbd, 0x1e, 0x05, 0x89, + 0xc0, 0xf5, 0x28, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, 0x21, 0x41, 0xc7, 0x4a, 0xf0, 0x21, 0x01, + 0x4d, 0x77, 0x0e, 0xdc, 0x0c, 0x33, 0x6b, 0x86, 0x66, 0x4f, 0xd1, 0x67, 0xee, 0x10, 0xdd, 0x18, + 0xc4, 0xe2, 0x27, 0x7c, 0xc7, 0x2c, 0x8f, 0xe5, 0xb2, 0x15, 0x38, 0x46, 0xd3, 0xcc, 0x90, 0x13, + 0x3e, 0x87, 0x55, 0x0e, 0xff, 0x74, 0x14, 0xbd, 0x87, 0x79, 0xfc, 0xa2, 0x94, 0x7e, 0x1f, 0xf5, + 0xdb, 0x6a, 0x49, 0xe2, 0xfe, 0x57, 0x58, 0xc3, 0x5e, 0xc9, 0xd0, 0x22, 0x7b, 0x3d, 0x4c, 0x15, + 0xc0, 0x4f, 0xda, 0x4c, 0xf9, 0x21, 0x47, 0x5c, 0xc9, 0x08, 0xf1, 0x76, 0x3f, 0xe4, 0x97, 0xab, + 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, 0xfd, 0x10, 0x82, 0xd9, 0xd1, 0xe9, 0x56, 0xef, 0x65, + 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x46, 0xa7, 0x57, 0x56, 0x03, 0x11, 0xa3, 0x93, 0x84, 0x61, 0x46, + 0xa2, 0xc1, 0x66, 0x6c, 0x62, 0x73, 0xb9, 0x31, 0xe4, 0x8e, 0xcc, 0x7b, 0xfd, 0x20, 0x8c, 0x57, + 0x2d, 0x56, 0x5b, 0x9f, 0x07, 0x21, 0x0b, 0x60, 0xfb, 0xb3, 0x31, 0x88, 0x55, 0x0e, 0xff, 0x38, + 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x59, 0x2c, 0x96, 0x15, 0x4b, 0xc7, 0x5b, 0x3d, 0xe5, 0xd6, 0xa0, + 0x71, 0xfd, 0x68, 0xb8, 0x42, 0x27, 0x47, 0xd7, 0x5c, 0x1b, 0x56, 0xa6, 0x0c, 0x8f, 0x43, 0x26, + 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0x9d, 0x6d, 0xb6, 0x1b, 0x5d, 0xd3, 0xab, 0x38, 0xcb, 0xe5, + 0xc3, 0xda, 0x0f, 0x43, 0x46, 0x3d, 0x34, 0xb8, 0xcd, 0x26, 0x55, 0x3a, 0x33, 0xb3, 0x1c, 0xe3, + 0xce, 0xf6, 0xec, 0x21, 0x3d, 0x13, 0x20, 0xbb, 0xb3, 0xcd, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, + 0xd7, 0xfc, 0xd9, 0x0d, 0x72, 0xcc, 0xab, 0x52, 0x45, 0x22, 0x7d, 0x73, 0x20, 0xad, 0xbc, 0xfe, + 0x51, 0xf4, 0x6e, 0xd7, 0xab, 0x5a, 0x88, 0xb6, 0x7a, 0x4d, 0x81, 0xb5, 0xe8, 0xd1, 0x70, 0x05, + 0xe5, 0xfe, 0x5f, 0xcc, 0xb9, 0x74, 0xeb, 0x3f, 0xe1, 0x8b, 0x05, 0x2b, 0x52, 0x96, 0x6a, 0x8d, + 0xba, 0xd9, 0x3f, 0x7d, 0x46, 0xdb, 0x35, 0x0a, 0x13, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, + 0xa6, 0x2a, 0xda, 0x7f, 0x8c, 0xa2, 0xfb, 0x68, 0xd1, 0x74, 0xe0, 0x7a, 0x45, 0xfc, 0x9d, 0x21, + 0x8e, 0x30, 0x4d, 0x53, 0xd4, 0xe9, 0xff, 0xc3, 0x82, 0x2a, 0xf2, 0xbf, 0x8e, 0xa2, 0xdb, 0x56, + 0xb1, 0x09, 0xef, 0x6d, 0x5e, 0x9c, 0xe7, 0x59, 0x22, 0xe4, 0x13, 0x59, 0xa5, 0x42, 0x37, 0x27, + 0xa5, 0xd1, 0xdf, 0x9c, 0x01, 0x4d, 0xbb, 0x79, 0xfd, 0x3c, 0xab, 0x05, 0xaf, 0x56, 0xb3, 0x0b, + 0xfe, 0x4a, 0xbf, 0x60, 0xe3, 0xcf, 0xcb, 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, + 0x2b, 0xfb, 0x22, 0x4e, 0x4d, 0xb8, 0x72, 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, + 0xfb, 0xd6, 0xd0, 0x3a, 0x5e, 0xd4, 0xee, 0x9b, 0x43, 0xf7, 0xfa, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, + 0x4e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, + 0x79, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, + 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, 0x6f, 0x85, 0x34, 0xd2, 0x26, 0xba, 0x8b, 0x24, 0xcb, + 0xe1, 0x7d, 0x63, 0xa9, 0x69, 0x84, 0xc4, 0xad, 0x90, 0x0e, 0x64, 0x53, 0xa0, 0x46, 0xd4, 0x44, + 0xa5, 0x2e, 0xff, 0xdd, 0xae, 0xa2, 0x23, 0x26, 0x52, 0x20, 0x04, 0xb3, 0xa7, 0x0c, 0x8d, 0xf0, + 0xb4, 0x94, 0xc6, 0x6f, 0x75, 0xb5, 0x5a, 0x09, 0x71, 0xca, 0xe0, 0x13, 0x76, 0xb7, 0xdc, 0xfc, + 0x7d, 0x87, 0xbf, 0x2a, 0xa4, 0xd1, 0xdb, 0x5d, 0x15, 0x2d, 0x23, 0x76, 0xcb, 0x90, 0x51, 0x86, + 0x7f, 0x14, 0xfd, 0xbc, 0x34, 0x5c, 0xf1, 0x72, 0x7c, 0x03, 0x51, 0xa8, 0x9c, 0xdb, 0xb9, 0x37, + 0x49, 0xb9, 0xbd, 0x44, 0x62, 0x62, 0xe3, 0xb4, 0x8e, 0xe7, 0x6c, 0x7c, 0x87, 0xe8, 0x71, 0x29, + 0x25, 0x2e, 0x91, 0x74, 0x29, 0x3f, 0x2a, 0x0e, 0x79, 0xaa, 0xac, 0x23, 0x35, 0x34, 0xc2, 0x50, + 0x54, 0xb8, 0x90, 0x4d, 0x5b, 0x0f, 0xe3, 0xab, 0x6c, 0x6e, 0x52, 0x8b, 0x76, 0x02, 0xab, 0x41, + 0xda, 0x6a, 0x99, 0x89, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x2b, 0x9f, 0xff, 0x30, 0x8a, 0x6e, 0x59, + 0x66, 0x57, 0x9f, 0xcb, 0xee, 0x15, 0xe7, 0xbc, 0x49, 0x72, 0xf7, 0xb3, 0xe2, 0xb2, 0x1e, 0x7f, + 0x42, 0x99, 0xc4, 0x79, 0x53, 0x94, 0x4f, 0xaf, 0xad, 0x67, 0xf7, 0x27, 0xfa, 0xd0, 0xd2, 0xde, + 0x5c, 0x68, 0x35, 0xc0, 0xfe, 0xc4, 0x9c, 0x6d, 0x42, 0x8e, 0xd8, 0x9f, 0x84, 0x78, 0xdb, 0xc5, + 0xc6, 0x79, 0xce, 0x0b, 0xd8, 0xc5, 0xd6, 0x42, 0x23, 0x24, 0xba, 0xb8, 0x03, 0xd9, 0xf9, 0x58, + 0x8b, 0xda, 0xf3, 0xb5, 0x69, 0x9e, 0x83, 0xf9, 0xd8, 0xa8, 0x1a, 0x80, 0x98, 0x8f, 0x51, 0x50, + 0xf9, 0x39, 0x8e, 0xbe, 0xd5, 0x34, 0xe9, 0x51, 0xc5, 0xae, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, + 0x62, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xa7, 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, + 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x6e, 0x0f, 0x65, 0x27, 0x75, 0x2d, 0x33, 0x53, 0xcc, 0x1a, + 0xae, 0xda, 0x99, 0x66, 0xd6, 0x7b, 0x39, 0xfb, 0x6c, 0x63, 0x37, 0xce, 0x73, 0x56, 0xad, 0xb4, + 0xec, 0x20, 0x2e, 0xb2, 0x73, 0x56, 0x0b, 0xf0, 0x6c, 0x43, 0x51, 0x13, 0x88, 0x11, 0xcf, 0x36, + 0x02, 0xb8, 0xdd, 0xb7, 0x01, 0xcf, 0x7b, 0x45, 0xca, 0x5e, 0x83, 0x7d, 0x1b, 0xb4, 0x23, 0x19, + 0x62, 0xdf, 0x46, 0xb1, 0xf6, 0x8c, 0xff, 0x69, 0xce, 0x93, 0x4b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, + 0x25, 0x70, 0x0d, 0xb8, 0x1d, 0x42, 0xec, 0x22, 0x20, 0x05, 0xc7, 0xac, 0xcc, 0xe3, 0x04, 0xde, + 0xb4, 0x6a, 0x75, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03, 0x8a, 0xab, 0x6e, 0x70, 0x61, 0xc5, 0x05, + 0x17, 0xb8, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1, 0xac, 0xcc, 0x33, 0x01, 0x86, 0x41, 0xab, + 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x80, 0x55, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, + 0x49, 0x4d, 0xd8, 0x6b, 0xe5, 0x6d, 0xdd, 0x79, 0xb9, 0x02, 0xd7, 0xca, 0x55, 0xb5, 0x78, 0xb9, + 0x22, 0xae, 0x95, 0x7b, 0x00, 0x28, 0xe2, 0x51, 0x5c, 0x0b, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, + 0x26, 0xec, 0x1a, 0xdd, 0x16, 0x71, 0x29, 0xc0, 0x1a, 0xad, 0x0a, 0xe0, 0xdc, 0x35, 0xb8, 0x49, + 0xca, 0xed, 0x4c, 0xd2, 0xf6, 0x0a, 0x13, 0xcf, 0x33, 0x96, 0xa7, 0x35, 0x98, 0x49, 0x54, 0xbb, + 0x6b, 0x29, 0x31, 0x93, 0x74, 0x29, 0x10, 0x4a, 0xea, 0x49, 0x08, 0x56, 0x3b, 0xf0, 0x10, 0xe4, + 0x76, 0x08, 0xb1, 0xf3, 0x93, 0x2e, 0xf4, 0x76, 0x5c, 0x55, 0x59, 0xb3, 0xf8, 0xaf, 0xe1, 0x05, + 0xd2, 0x72, 0x62, 0x7e, 0xc2, 0x38, 0x30, 0xbc, 0xf4, 0xc4, 0x8d, 0x15, 0x0c, 0x4e, 0xdd, 0x1f, + 0x04, 0x19, 0x9b, 0x71, 0x4a, 0x89, 0xf3, 0xb0, 0x1c, 0x6b, 0x4d, 0xe4, 0x59, 0xf9, 0x5a, 0x1f, + 0xe6, 0xbc, 0x73, 0x66, 0x5c, 0x1c, 0xf0, 0x2b, 0x76, 0xc2, 0x9f, 0xbd, 0xce, 0xea, 0x66, 0xbb, + 0xa5, 0x56, 0xee, 0x27, 0x84, 0x25, 0x0c, 0x26, 0xde, 0x39, 0xeb, 0x55, 0xb2, 0x09, 0x04, 0x28, + 0xcb, 0x21, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, + 0xe3, 0x5c, 0xbd, 0x98, 0x7f, 0xc2, 0x75, 0x2e, 0x47, 0x59, 0x83, 0x20, 0x71, 0x68, 0x11, 0x54, + 0xb0, 0xfb, 0x4b, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x84, 0x9d, 0xee, 0x30, 0xbb, 0x3f, 0x80, 0x44, + 0x5c, 0xd9, 0x1b, 0x1f, 0x94, 0xab, 0xee, 0x85, 0x8f, 0xfb, 0x03, 0x48, 0xe7, 0xf4, 0xcd, 0xad, + 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x57, 0x7c, 0x59, 0xa4, 0xdb, 0x3c, 0xe7, 0x15, 0x38, 0x7d, 0xf3, + 0x4a, 0x0d, 0x50, 0xe2, 0xf4, 0xad, 0x47, 0xc5, 0x66, 0x70, 0x6e, 0x29, 0xa6, 0x79, 0x36, 0x87, + 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x6a, 0x77, 0xdc, 0x22, 0x4b, + 0xe2, 0xbc, 0xf5, 0xb7, 0x45, 0x9b, 0xf1, 0xc0, 0xde, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x9e, 0x2c, + 0xab, 0x62, 0xaf, 0x10, 0x9c, 0xac, 0xa7, 0x06, 0x7a, 0xeb, 0xe9, 0x80, 0x60, 0x5a, 0x3d, 0x61, + 0xaf, 0x9b, 0xd2, 0x34, 0xff, 0x60, 0xd3, 0x6a, 0xf3, 0xf7, 0x89, 0x92, 0x87, 0xa6, 0x55, 0xc0, + 0x81, 0xca, 0x28, 0x27, 0x6d, 0xc0, 0x04, 0xb4, 0xfd, 0x30, 0xb9, 0xd7, 0x0f, 0xe2, 0x7e, 0x66, + 0x62, 0x95, 0xb3, 0x90, 0x1f, 0x09, 0x0c, 0xf1, 0xa3, 0x41, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x82, + 0x25, 0x97, 0x9d, 0x0b, 0x6c, 0x7e, 0x41, 0x5b, 0x84, 0x38, 0x6e, 0x21, 0x50, 0xbc, 0x8b, 0xf6, + 0x12, 0x5e, 0x84, 0xba, 0xa8, 0x91, 0x0f, 0xe9, 0x22, 0xc5, 0xd9, 0xcd, 0xaf, 0x91, 0xaa, 0xc8, + 0x6c, 0xbb, 0x69, 0x83, 0xb0, 0xe0, 0x42, 0xc4, 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, + 0x74, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd0, 0xb7, 0xfb, 0x29, 0x96, 0xae, 0x64, 0x1b, 0x23, 0x3d, + 0x56, 0xfc, 0x38, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0xce, 0xe2, 0xaa, 0xf5, + 0xba, 0x19, 0x30, 0x64, 0x31, 0x62, 0xcb, 0x13, 0xc0, 0xc1, 0x14, 0xe6, 0x79, 0xde, 0xe6, 0x85, + 0x60, 0x85, 0xc0, 0xa6, 0x30, 0xdf, 0x98, 0x02, 0x43, 0x53, 0x18, 0xa5, 0x00, 0xe2, 0x56, 0x9e, + 0x07, 0x31, 0x71, 0x18, 0x2f, 0xd0, 0x8c, 0xad, 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0xb8, 0x05, 0x9c, + 0xf3, 0x38, 0xd7, 0xf5, 0x72, 0x12, 0x57, 0x73, 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd1, 0x76, 0x7c, + 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0xd3, 0xce, 0xde, 0x22, 0x9e, 0x9b, 0x9a, 0x22, 0x35, 0x90, + 0xf2, 0x4e, 0x55, 0xef, 0xf5, 0x83, 0xc0, 0xcf, 0x8b, 0x2c, 0x65, 0x3c, 0xe0, 0x47, 0xca, 0x87, + 0xf8, 0x81, 0x20, 0xc8, 0xde, 0x9a, 0x7a, 0xb7, 0x3b, 0xba, 0x69, 0x91, 0xaa, 0x7d, 0xec, 0x84, + 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, 0x63, 0x54, 0x1f, 0xd0, 0x86, 0xc6, 0xa8, 0x39, + 0x7f, 0x1d, 0x32, 0x46, 0x31, 0x58, 0xf9, 0xfc, 0x89, 0x1a, 0xa3, 0x3b, 0xb1, 0x88, 0x9b, 0xbc, + 0xfd, 0x45, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, 0x5f, 0x4d, 0x4d, 0xe4, 0xcb, 0xc9, 0x60, 0x57, + 0xbc, 0x35, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x35, 0x98, 0x0f, + 0xf8, 0x56, 0x5f, 0x3d, 0xe8, 0xf5, 0x0d, 0x3e, 0x7d, 0xb0, 0x35, 0x98, 0x57, 0xbe, 0xff, 0x4c, + 0x0f, 0x5c, 0xd7, 0x79, 0x93, 0x87, 0x25, 0x22, 0xbb, 0x62, 0x58, 0x3a, 0xe9, 0xdb, 0x33, 0x68, + 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0xef, 0x74, 0x61, 0xa5, 0x38, 0xe2, 0x75, 0x26, 0xaf, 0x63, 0x3c, + 0x19, 0x60, 0x54, 0xc3, 0xa1, 0x4d, 0x53, 0x48, 0xc9, 0x3e, 0x58, 0xf6, 0x50, 0x7b, 0x5f, 0xfd, + 0x61, 0xc0, 0x5e, 0xf7, 0xda, 0xfa, 0xe6, 0x40, 0xda, 0x3e, 0xe2, 0xf5, 0x18, 0xf7, 0xd9, 0x72, + 0xa8, 0x57, 0xd1, 0xc7, 0xcb, 0x8f, 0x86, 0x2b, 0x28, 0xf7, 0x7f, 0xa1, 0xf7, 0x15, 0xd0, 0xbf, + 0x1a, 0x04, 0x8f, 0x87, 0x58, 0x04, 0x03, 0xe1, 0xc9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x46, 0x6f, + 0xa0, 0x35, 0x2a, 0xdf, 0xda, 0x91, 0x6f, 0xfb, 0xaa, 0x31, 0x11, 0xea, 0x56, 0x0b, 0xc3, 0x91, + 0xf1, 0xf1, 0x35, 0xb5, 0x9c, 0xaf, 0xb6, 0x79, 0xb0, 0x7a, 0xbb, 0xd4, 0x29, 0x4f, 0xc8, 0xb2, + 0x43, 0xc3, 0x02, 0x7d, 0x72, 0x5d, 0x35, 0x6a, 0xac, 0x38, 0xb0, 0xfc, 0x0e, 0xcb, 0x93, 0x81, + 0x86, 0xbd, 0x2f, 0xb3, 0x7c, 0x74, 0x3d, 0x25, 0x55, 0x96, 0x7f, 0x1f, 0x45, 0x77, 0x3d, 0xd6, + 0x3e, 0x4f, 0x00, 0xa7, 0x1e, 0x3f, 0x08, 0xd8, 0xa7, 0x94, 0x4c, 0xe1, 0x7e, 0xeb, 0x9b, 0x29, + 0xdb, 0x4f, 0x9c, 0x79, 0x2a, 0xcf, 0xb3, 0x5c, 0xb0, 0xaa, 0xfb, 0x89, 0x33, 0xdf, 0x6e, 0x4b, + 0x4d, 0xe8, 0x4f, 0x9c, 0x05, 0x70, 0xe7, 0x13, 0x67, 0x88, 0x67, 0xf4, 0x13, 0x67, 0xa8, 0xb5, + 0xe0, 0x27, 0xce, 0xc2, 0x1a, 0xd4, 0xf4, 0xae, 0x8b, 0xd0, 0x9e, 0x5b, 0x0f, 0xb2, 0xe8, 0x1f, + 0x63, 0x3f, 0xbe, 0x8e, 0x0a, 0xb1, 0xc0, 0xb5, 0x9c, 0xbc, 0xd1, 0x38, 0xa0, 0x4d, 0xbd, 0x5b, + 0x8d, 0x5b, 0x83, 0x79, 0xe5, 0xfb, 0xc7, 0x6a, 0x77, 0x63, 0xa6, 0x73, 0x5e, 0xc9, 0xcf, 0xdb, + 0x6d, 0x84, 0xa6, 0xe7, 0xc6, 0x82, 0xdb, 0xf3, 0x0f, 0x87, 0xc1, 0x44, 0x75, 0x1b, 0x42, 0x75, + 0xfa, 0xa4, 0xcf, 0x10, 0xe8, 0xf2, 0xad, 0xc1, 0x3c, 0xb1, 0x8c, 0xb4, 0xbe, 0xdb, 0xde, 0x1e, + 0x60, 0xcc, 0xef, 0xeb, 0x47, 0xc3, 0x15, 0x94, 0xfb, 0x2b, 0x95, 0x36, 0xba, 0xee, 0x65, 0x3f, + 0x6f, 0xf6, 0x99, 0x9a, 0x79, 0xdd, 0x3c, 0x19, 0x8a, 0x87, 0x12, 0x08, 0x77, 0x09, 0xed, 0x4b, + 0x20, 0xd0, 0x65, 0xf4, 0xa3, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xfd, 0x28, 0xba, 0x49, 0x96, 0x45, + 0xc5, 0xc1, 0x27, 0x43, 0x2d, 0x83, 0x78, 0xf8, 0xf4, 0xda, 0x7a, 0xaa, 0x50, 0xff, 0x34, 0x8a, + 0x6e, 0x05, 0x0a, 0xd5, 0x06, 0xc8, 0x35, 0xac, 0xfb, 0x81, 0xf2, 0xd9, 0xf5, 0x15, 0xa9, 0xe5, + 0xde, 0xc5, 0x67, 0xdd, 0xcf, 0x6f, 0x05, 0x6c, 0xcf, 0xe8, 0xcf, 0x6f, 0xf5, 0x6b, 0xc1, 0x43, + 0x9e, 0xf8, 0x4c, 0x6f, 0xba, 0xd0, 0x43, 0x1e, 0x79, 0x17, 0x31, 0xf8, 0x19, 0x11, 0x8c, 0xc3, + 0x9c, 0x3c, 0x7b, 0x5d, 0xc6, 0x45, 0x4a, 0x3b, 0x69, 0xe5, 0xfd, 0x4e, 0x0c, 0x07, 0x0f, 0xc7, + 0x1a, 0xe9, 0x31, 0xd7, 0x1b, 0xa9, 0xfb, 0x94, 0xbe, 0x41, 0x82, 0x87, 0x63, 0x1d, 0x94, 0xf0, + 0xa6, 0xb2, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0x18, 0x82, 0x82, 0x14, 0xdd, 0x78, 0x33, 0x67, + 0xee, 0x0f, 0x43, 0x56, 0x3a, 0xe7, 0xee, 0x9b, 0x03, 0x69, 0xc2, 0xed, 0x8c, 0x89, 0xcf, 0x59, + 0x9c, 0xb2, 0x2a, 0xe8, 0xd6, 0x50, 0x83, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x9b, 0xe7, 0xcb, 0x45, + 0xa1, 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xfd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, + 0x3e, 0x08, 0x9b, 0xf1, 0xb2, 0xca, 0x8d, 0x41, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x3d, 0xf5, 0x04, + 0x91, 0xb4, 0x39, 0x90, 0x86, 0xe7, 0x73, 0x8e, 0x5b, 0x13, 0x4f, 0x5b, 0x3d, 0xb6, 0x3a, 0x21, + 0xf5, 0x68, 0xb8, 0x02, 0x3c, 0x0d, 0x55, 0x51, 0xb5, 0x9f, 0xd5, 0xe2, 0x79, 0x96, 0xe7, 0xe3, + 0x8d, 0x40, 0x98, 0x68, 0x28, 0x78, 0x1a, 0x8a, 0xc0, 0x44, 0x24, 0xeb, 0xd3, 0xc3, 0x62, 0xdc, + 0x67, 0x47, 0x52, 0x83, 0x22, 0xd9, 0xa5, 0xc1, 0x89, 0x96, 0xd3, 0xd4, 0xa6, 0xb6, 0x93, 0x70, + 0xc3, 0x75, 0x2a, 0xbc, 0x35, 0x98, 0x07, 0x8f, 0xdb, 0x25, 0x25, 0x57, 0x96, 0x3b, 0x94, 0x09, + 0x6f, 0x25, 0xb9, 0xdb, 0x43, 0x81, 0x53, 0xc1, 0x76, 0x18, 0xbd, 0xcc, 0xd2, 0x39, 0x13, 0xe8, + 0x93, 0x22, 0x17, 0x08, 0x3e, 0x29, 0x02, 0x20, 0xe8, 0xba, 0xf6, 0xef, 0xe6, 0x38, 0x74, 0x2f, + 0xc5, 0xba, 0x4e, 0x29, 0x3b, 0x54, 0xa8, 0xeb, 0x50, 0x1a, 0xcc, 0x06, 0xc6, 0xad, 0xfa, 0xf0, + 0xc2, 0x83, 0x90, 0x19, 0xf0, 0xf5, 0x85, 0x8d, 0x41, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x6c, 0x91, + 0x09, 0x6c, 0x45, 0x71, 0x6c, 0x34, 0x48, 0x68, 0x45, 0xe9, 0xa2, 0x54, 0xf5, 0x9a, 0x1c, 0x61, + 0x2f, 0x0d, 0x57, 0xaf, 0x65, 0x86, 0x55, 0xcf, 0xb0, 0x9d, 0x07, 0x9b, 0x85, 0x09, 0x19, 0x71, + 0xa1, 0x36, 0xcb, 0x48, 0x6c, 0xcb, 0x17, 0x72, 0x21, 0x18, 0x9a, 0x75, 0x28, 0x05, 0x78, 0x60, + 0xdf, 0x70, 0xfa, 0xd9, 0x6b, 0x59, 0xb2, 0xb8, 0x8a, 0x8b, 0x04, 0xdd, 0x9c, 0x4a, 0x83, 0x1d, + 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x55, 0x5a, 0x64, 0x28, 0x98, 0x77, 0x56, + 0xfd, 0x37, 0x69, 0xef, 0x0f, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xd6, 0xe9, 0x87, + 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x20, 0xa8, 0x4d, 0x82, 0xcb, 0xc4, 0x8f, 0xd8, + 0x0a, 0x0b, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0x14, 0xd4, 0x5d, 0x14, 0xe4, 0x99, 0xee, 0x3e, 0x68, + 0x2d, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7b, 0x39, 0x30, 0x72, 0x76, 0xb2, 0x2b, 0xef, 0x39, 0x01, + 0x52, 0xd0, 0x9d, 0xec, 0x0a, 0x7f, 0x4c, 0xb0, 0x31, 0x88, 0x85, 0x8f, 0xe4, 0x63, 0xc1, 0x5e, + 0xeb, 0x67, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf3, 0xb0, 0xfc, 0x5e, 0x3f, 0x68, 0x2f, 0xc0, 0x1e, + 0x55, 0x3c, 0x61, 0x75, 0xad, 0xbe, 0x49, 0xea, 0xdf, 0x30, 0x52, 0xb2, 0x09, 0xf8, 0x22, 0xe9, + 0x9d, 0x30, 0xe4, 0x7c, 0x48, 0xb0, 0x15, 0xd9, 0xef, 0x1b, 0xad, 0xa1, 0x9a, 0xdd, 0x4f, 0x1b, + 0xad, 0xf7, 0x72, 0x76, 0x78, 0x29, 0xa9, 0xfb, 0x41, 0xa3, 0x7b, 0xa8, 0x3a, 0xf6, 0x2d, 0xa3, + 0xfb, 0x03, 0x48, 0xe5, 0xea, 0xf3, 0xe8, 0xcd, 0x7d, 0x3e, 0x9f, 0xb1, 0x22, 0x1d, 0x7f, 0xcf, + 0xbf, 0x42, 0xcb, 0xe7, 0x93, 0xe6, 0xcf, 0xc6, 0xe8, 0x0d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb0, + 0xb3, 0xe5, 0x7c, 0x26, 0x62, 0x01, 0x2e, 0x01, 0xca, 0xbf, 0x4f, 0x1a, 0x01, 0x71, 0x09, 0xd0, + 0x03, 0x80, 0xbd, 0x93, 0x8a, 0x31, 0xd4, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0xcd, 0x22, 0x8c, + 0xbd, 0x26, 0x51, 0x87, 0x97, 0xf6, 0xac, 0x8e, 0x94, 0x12, 0x59, 0x44, 0x97, 0xb2, 0xc1, 0xdd, + 0x56, 0x5f, 0x7e, 0x5f, 0x66, 0xb9, 0x58, 0xc4, 0xd5, 0x0a, 0x04, 0xb7, 0xaa, 0xa5, 0x03, 0x10, + 0xc1, 0x8d, 0x82, 0x76, 0xd4, 0xea, 0x66, 0x4e, 0x2e, 0x77, 0x79, 0xc5, 0x97, 0x22, 0x2b, 0x18, + 0xfc, 0xc6, 0x88, 0x69, 0x50, 0x97, 0x21, 0x46, 0x2d, 0xc5, 0xda, 0x2c, 0x57, 0x12, 0xed, 0x7d, + 0x42, 0xf9, 0x99, 0xf4, 0x5a, 0xf0, 0x0a, 0x3e, 0x4f, 0x6c, 0xad, 0x40, 0x88, 0xc8, 0x72, 0x49, + 0x18, 0xf4, 0xfd, 0x51, 0x56, 0xcc, 0xd1, 0xbe, 0x3f, 0x72, 0xbf, 0xf3, 0x7b, 0x8b, 0x06, 0xec, + 0x80, 0x6a, 0x1b, 0xad, 0x1d, 0x00, 0xea, 0xad, 0x5d, 0xb4, 0xd1, 0x5d, 0x82, 0x18, 0x50, 0x38, + 0x09, 0x5c, 0x7d, 0x51, 0xb2, 0x82, 0xa5, 0xfa, 0xd6, 0x1c, 0xe6, 0xca, 0x23, 0x82, 0xae, 0x20, + 0x69, 0xe7, 0x22, 0x29, 0x3f, 0x5e, 0x16, 0x47, 0x15, 0x3f, 0xcf, 0x72, 0x56, 0x81, 0xb9, 0xa8, + 0x55, 0x77, 0xe4, 0xc4, 0x5c, 0x84, 0x71, 0xf6, 0xfa, 0x85, 0x94, 0x7a, 0xdf, 0xfa, 0x3f, 0xa9, + 0xe2, 0x04, 0x5e, 0xbf, 0x68, 0x6d, 0x74, 0x31, 0xe2, 0x64, 0x30, 0x80, 0x3b, 0x89, 0x4e, 0xeb, + 0xba, 0x58, 0xc9, 0xf8, 0x50, 0x6f, 0x8d, 0xca, 0xaf, 0xdf, 0xd6, 0x20, 0xd1, 0x51, 0xe6, 0x30, + 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, 0xa1, 0xba, 0x56, 0x04, 0x96, 0x92, 0xd6, + 0x86, 0x16, 0x12, 0x4b, 0x49, 0x07, 0x02, 0x13, 0x92, 0x1e, 0x06, 0x73, 0x74, 0x42, 0x32, 0xd2, + 0xe0, 0x84, 0xe4, 0x52, 0x76, 0xa2, 0xd8, 0x2b, 0x32, 0x91, 0xc5, 0xf9, 0x8c, 0x89, 0xa3, 0xb8, + 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x4e, 0x14, 0x0a, 0x99, 0x78, 0x0c, 0x31, 0x51, 0x50, 0xac, 0x72, + 0xf8, 0xdb, 0xd1, 0xdb, 0xcd, 0xba, 0xcf, 0x0a, 0xf5, 0xab, 0x3e, 0xcf, 0xe4, 0xcf, 0x81, 0x8d, + 0xdf, 0x31, 0x36, 0x66, 0xa2, 0x62, 0xf1, 0x42, 0xdb, 0x7e, 0xcb, 0xfc, 0x5d, 0x82, 0x8f, 0x46, + 0x4d, 0x3c, 0x1f, 0x72, 0x91, 0x9d, 0x37, 0xdb, 0x6c, 0xf5, 0x06, 0x11, 0x88, 0x67, 0x57, 0x3c, + 0x09, 0x7c, 0x75, 0x04, 0xe3, 0xec, 0x3c, 0xed, 0x4a, 0x8f, 0x59, 0x99, 0xc3, 0x79, 0xda, 0xd3, + 0x96, 0x00, 0x31, 0x4f, 0xa3, 0xa0, 0x1d, 0x9c, 0xae, 0xf8, 0x84, 0x85, 0x2b, 0x73, 0xc2, 0x86, + 0x55, 0xe6, 0xc4, 0x7b, 0x29, 0x23, 0x8f, 0xde, 0x3e, 0x60, 0x8b, 0x33, 0x56, 0xd5, 0x17, 0x59, + 0x49, 0x7d, 0xa1, 0xd7, 0x12, 0xbd, 0x5f, 0xe8, 0x25, 0x50, 0xbb, 0x12, 0x58, 0x60, 0xaf, 0x3e, + 0x8c, 0x17, 0x4c, 0x7e, 0x43, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, 0x22, 0x56, 0x02, 0x12, 0x76, + 0xde, 0xef, 0xb2, 0xcc, 0x31, 0x9b, 0x37, 0x11, 0x56, 0x1d, 0xc5, 0xab, 0x05, 0x2b, 0x84, 0x32, + 0x09, 0xce, 0xe4, 0x1d, 0x93, 0x38, 0x4f, 0x9c, 0xc9, 0x0f, 0xd1, 0x73, 0xa6, 0x26, 0xaf, 0xe1, + 0x8f, 0x78, 0x25, 0xda, 0xdf, 0xec, 0x3a, 0xad, 0x72, 0x30, 0x35, 0xf9, 0x8d, 0xea, 0x91, 0xc4, + 0xd4, 0x14, 0xd6, 0x70, 0x7e, 0x6f, 0xc2, 0x2b, 0xc3, 0x0b, 0x56, 0x99, 0x38, 0x79, 0xb6, 0x88, + 0xb3, 0x5c, 0x45, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xf7, 0x26, 0x86, 0xea, 0x3a, 0xbf, + 0xd0, 0x11, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x63, 0x9f, 0x78, 0x44, 0xd0, 0xaf, 0x65, 0x77, 0xee, + 0x96, 0x95, 0xdc, 0x4a, 0x12, 0xdb, 0x3c, 0x85, 0xe7, 0x85, 0x8e, 0x4d, 0x00, 0x12, 0x3b, 0xf7, + 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xf6, 0x3c, 0x2b, 0xe2, 0x3c, 0xfb, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, + 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x32, 0x71, 0x92, 0x35, 0x53, 0xff, 0xbd, 0x40, + 0xbb, 0x49, 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0x3a, 0x2d, 0xcb, 0x59, 0xb3, + 0xaa, 0x1e, 0xb3, 0x84, 0x65, 0xa5, 0x18, 0x7f, 0x1c, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x06, + 0xa8, 0x39, 0x8f, 0xef, 0x9b, 0xb9, 0x64, 0xd6, 0xfe, 0x98, 0xe5, 0x69, 0xcd, 0x2a, 0x95, 0x68, + 0xec, 0x32, 0x01, 0x46, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3a, 0xc3, 0x1a, 0xf6, + 0xb0, 0xcf, 0xe1, 0xd4, 0xd7, 0xd5, 0xe5, 0x7d, 0xc3, 0x87, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, + 0x68, 0xda, 0x66, 0x6b, 0x5d, 0xb7, 0xd3, 0x62, 0xb5, 0x07, 0xaf, 0x4c, 0x20, 0x96, 0x24, 0x46, + 0x64, 0x6b, 0x01, 0xdc, 0x39, 0x0c, 0xaf, 0x78, 0x9c, 0x26, 0x71, 0x2d, 0x8e, 0xe2, 0x55, 0xce, + 0xe3, 0x54, 0xae, 0xeb, 0xf0, 0x30, 0x5c, 0x33, 0x13, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, + 0xce, 0xe4, 0x6f, 0x74, 0xaa, 0xbb, 0x9c, 0x30, 0x3b, 0x93, 0xe5, 0x85, 0xf7, 0x38, 0xef, 0x84, + 0x21, 0xfb, 0x0e, 0x5a, 0x2b, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40, 0xde, 0x0f, 0x10, + 0xf6, 0x0b, 0x24, 0xed, 0xdf, 0xf5, 0xcf, 0x4c, 0x09, 0xf5, 0xcd, 0xf2, 0x87, 0x98, 0xae, 0x0b, + 0x4d, 0xdc, 0x0f, 0x59, 0x6c, 0x0e, 0xa4, 0x6d, 0x9a, 0xb9, 0x7d, 0x11, 0x8b, 0x69, 0x9a, 0x1e, + 0xb0, 0x1a, 0x79, 0xa1, 0xbc, 0x11, 0x4e, 0xac, 0x94, 0x48, 0x33, 0xbb, 0x94, 0x0d, 0xf4, 0x46, + 0xf6, 0x2c, 0xcd, 0x84, 0x92, 0xe9, 0x1b, 0xd2, 0x0f, 0xbb, 0x06, 0xba, 0x14, 0x51, 0x2b, 0x9a, + 0xb6, 0x73, 0x79, 0xc3, 0x9c, 0xf0, 0xf9, 0x3c, 0x67, 0x0a, 0x3a, 0x66, 0x71, 0xfb, 0xc9, 0xc6, + 0xad, 0xae, 0x2d, 0x14, 0x24, 0xe6, 0xf2, 0xa0, 0x82, 0x4d, 0x23, 0x1b, 0xac, 0x7d, 0x24, 0xa5, + 0x1b, 0x76, 0xbd, 0x6b, 0xc6, 0x03, 0x88, 0x34, 0x12, 0x05, 0xed, 0x7b, 0x6f, 0x8d, 0x78, 0x97, + 0xe9, 0x96, 0x80, 0x1f, 0x9b, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, + 0x78, 0x78, 0xba, 0xda, 0x4b, 0xe1, 0x3e, 0x01, 0xea, 0x4b, 0x86, 0xd8, 0x27, 0x50, 0xac, 0xdf, + 0x75, 0xe6, 0xdc, 0x6b, 0x3f, 0xae, 0x6d, 0xe5, 0x90, 0xae, 0x43, 0xc1, 0x50, 0xd7, 0x51, 0x0a, + 0x7e, 0x93, 0xba, 0x47, 0x6b, 0x48, 0x93, 0x62, 0xe7, 0x6a, 0x6b, 0x7d, 0x98, 0x9d, 0x97, 0xcc, + 0x7e, 0x52, 0x5e, 0x59, 0xc2, 0x7f, 0xab, 0xa1, 0x15, 0x12, 0xf3, 0x52, 0x07, 0x6a, 0x6d, 0x3f, + 0x7d, 0xff, 0x3f, 0xbf, 0xba, 0x31, 0xfa, 0xd9, 0x57, 0x37, 0x46, 0xff, 0xf3, 0xd5, 0x8d, 0xd1, + 0x4f, 0xbf, 0xbe, 0xf1, 0xc6, 0xcf, 0xbe, 0xbe, 0xf1, 0xc6, 0x7f, 0x7f, 0x7d, 0xe3, 0x8d, 0x2f, + 0xdf, 0x54, 0xbf, 0xdd, 0x7c, 0xf6, 0x73, 0xf2, 0x17, 0x98, 0x9f, 0xfc, 0x5f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x95, 0x51, 0xdf, 0xf9, 0xdf, 0x79, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -407,8 +405,6 @@ type ClientCommandsHandler interface { // Account // *** AccountRecover(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse - AccountMigrate(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse - AccountMigrateCancel(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse AccountCreate(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse AccountDelete(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse AccountRevertDeletion(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse @@ -1150,46 +1146,6 @@ func AccountRecover(b []byte) (resp []byte) { return resp } -func AccountMigrate(b []byte) (resp []byte) { - defer func() { - if PanicHandler != nil { - if r := recover(); r != nil { - resp, _ = (&pb.RpcAccountMigrateResponse{Error: &pb.RpcAccountMigrateResponseError{Code: pb.RpcAccountMigrateResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() - PanicHandler(r) - } - } - }() - - in := new(pb.RpcAccountMigrateRequest) - if err := in.Unmarshal(b); err != nil { - resp, _ = (&pb.RpcAccountMigrateResponse{Error: &pb.RpcAccountMigrateResponseError{Code: pb.RpcAccountMigrateResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() - return resp - } - - resp, _ = clientCommandsHandler.AccountMigrate(context.Background(), in).Marshal() - return resp -} - -func AccountMigrateCancel(b []byte) (resp []byte) { - defer func() { - if PanicHandler != nil { - if r := recover(); r != nil { - resp, _ = (&pb.RpcAccountMigrateCancelResponse{Error: &pb.RpcAccountMigrateCancelResponseError{Code: pb.RpcAccountMigrateCancelResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() - PanicHandler(r) - } - } - }() - - in := new(pb.RpcAccountMigrateCancelRequest) - if err := in.Unmarshal(b); err != nil { - resp, _ = (&pb.RpcAccountMigrateCancelResponse{Error: &pb.RpcAccountMigrateCancelResponseError{Code: pb.RpcAccountMigrateCancelResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() - return resp - } - - resp, _ = clientCommandsHandler.AccountMigrateCancel(context.Background(), in).Marshal() - return resp -} - func AccountCreate(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6378,10 +6334,6 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = WorkspaceExport(data) case "AccountRecover": cd = AccountRecover(data) - case "AccountMigrate": - cd = AccountMigrate(data) - case "AccountMigrateCancel": - cd = AccountMigrateCancel(data) case "AccountCreate": cd = AccountCreate(data) case "AccountDelete": @@ -7212,34 +7164,6 @@ func (h *ClientCommandsHandlerProxy) AccountRecover(ctx context.Context, req *pb call, _ := actualCall(ctx, req) return call.(*pb.RpcAccountRecoverResponse) } -func (h *ClientCommandsHandlerProxy) AccountMigrate(ctx context.Context, req *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { - actualCall := func(ctx context.Context, req any) (any, error) { - return h.client.AccountMigrate(ctx, req.(*pb.RpcAccountMigrateRequest)), nil - } - for _, interceptor := range h.interceptors { - toCall := actualCall - currentInterceptor := interceptor - actualCall = func(ctx context.Context, req any) (any, error) { - return currentInterceptor(ctx, req, "AccountMigrate", toCall) - } - } - call, _ := actualCall(ctx, req) - return call.(*pb.RpcAccountMigrateResponse) -} -func (h *ClientCommandsHandlerProxy) AccountMigrateCancel(ctx context.Context, req *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { - actualCall := func(ctx context.Context, req any) (any, error) { - return h.client.AccountMigrateCancel(ctx, req.(*pb.RpcAccountMigrateCancelRequest)), nil - } - for _, interceptor := range h.interceptors { - toCall := actualCall - currentInterceptor := interceptor - actualCall = func(ctx context.Context, req any) (any, error) { - return currentInterceptor(ctx, req, "AccountMigrateCancel", toCall) - } - } - call, _ := actualCall(ctx, req) - return call.(*pb.RpcAccountMigrateCancelResponse) -} func (h *ClientCommandsHandlerProxy) AccountCreate(ctx context.Context, req *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.AccountCreate(ctx, req.(*pb.RpcAccountCreateRequest)), nil diff --git a/cmd/debugtree/debugtree.go b/cmd/debugtree/debugtree.go index 9ac3b88f1..43135ad7e 100644 --- a/cmd/debugtree/debugtree.go +++ b/cmd/debugtree/debugtree.go @@ -9,19 +9,16 @@ import ( "fmt" "io/ioutil" "log" - "os" "os/exec" - "path/filepath" "runtime" "strings" "time" "github.com/goccy/go-graphviz" - "github.com/gogo/protobuf/jsonpb" "github.com/gogo/protobuf/proto" "github.com/anyproto/anytype-heart/core/block/editor/state" - "github.com/anyproto/anytype-heart/core/debug/exporter" + "github.com/anyproto/anytype-heart/core/debug/treearchive" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/util/pbtypes" @@ -45,20 +42,22 @@ func main() { return } fmt.Println("opening file...") - var ( - st = time.Now() - ctx = context.Background() - ) - res, err := exporter.ImportStorage(ctx, *file) + st := time.Now() + archive, err := treearchive.Open(*file) if err != nil { - log.Fatal("can't import the tree:", err) - } - objectTree, err := res.CreateReadableTree(*fromRoot, "") - if err != nil { - log.Fatal("can't create readable tree:", err) + log.Fatal("can't open debug file:", err) } + defer archive.Close() fmt.Printf("open archive done in %.1fs\n", time.Since(st).Seconds()) - importer := exporter.NewTreeImporter(objectTree) + + importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) + st = time.Now() + err = importer.Import(*fromRoot, "") + if err != nil { + log.Fatal("can't import the tree", err) + } + fmt.Printf("import tree done in %.1fs\n", time.Since(st).Seconds()) + if *makeJson { treeJson, err := importer.Json() if err != nil { @@ -84,11 +83,10 @@ func main() { } fmt.Println("Change:") fmt.Println(pbtypes.Sprint(ch.Model)) - objectTree, err = res.CreateReadableTree(*fromRoot, ch.Id) + err = importer.Import(*fromRoot, ch.Id) if err != nil { - log.Fatal("can't create readable tree:", err) + log.Fatal("can't import the tree before", ch.Id, err) } - importer = exporter.NewTreeImporter(objectTree) } ot := importer.ObjectTree() di, err := ot.Debug(state.ChangeParser{}) @@ -128,16 +126,12 @@ func main() { if *objectStore { fmt.Println("fetch object store info..") - f, err := os.Open(filepath.Join(res.FolderPath, "localstore.json")) + ls, err := archive.LocalStore() if err != nil { - log.Fatal("can't open objectStore info:", err) + fmt.Println("can't open objectStore info:", err) + } else { + fmt.Println(pbtypes.Sprint(ls)) } - info := &model.ObjectInfo{} - if err = jsonpb.Unmarshal(f, info); err != nil { - log.Fatal("can't unmarshal objectStore info:", err) - } - defer f.Close() - fmt.Println(pbtypes.Sprint(info)) } if *makeTree { diff --git a/cmd/grpcserver/performance.go b/cmd/grpcserver/performance.go index 1fc730c3d..4dfe878fd 100644 --- a/cmd/grpcserver/performance.go +++ b/cmd/grpcserver/performance.go @@ -306,7 +306,7 @@ func getTableSizes(mw *core.Middleware) (tables map[string]uint64) { tables = make(map[string]uint64) cfg := mw.GetApp().MustComponent(config.CName).(*config.Config) - db, err := sql.Open("sqlite3", cfg.GetSqliteStorePath()) + db, err := sql.Open("sqlite3", cfg.GetSpaceStorePath()) if err != nil { fmt.Println("Error opening database:", err) return diff --git a/core/account.go b/core/account.go index cd7a6c1c5..52b2f275a 100644 --- a/core/account.go +++ b/core/account.go @@ -10,7 +10,6 @@ import ( "github.com/anyproto/anytype-heart/core/application" "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/space/spacecore/storage/migrator" ) func (mw *Middleware) AccountCreate(cctx context.Context, req *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse { @@ -50,35 +49,6 @@ func (mw *Middleware) AccountRecover(cctx context.Context, _ *pb.RpcAccountRecov } } -func (mw *Middleware) AccountMigrate(cctx context.Context, req *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { - err := mw.applicationService.AccountMigrate(cctx, req) - code := mapErrorCode(err, - errToCode(application.ErrBadInput, pb.RpcAccountMigrateResponseError_BAD_INPUT), - errToCode(application.ErrAccountNotFound, pb.RpcAccountMigrateResponseError_ACCOUNT_NOT_FOUND), - errToCode(context.Canceled, pb.RpcAccountMigrateResponseError_CANCELED), - errTypeToCode(&migrator.NotEnoughFreeSpaceError{}, pb.RpcAccountMigrateResponseError_NOT_ENOUGH_FREE_SPACE), - ) - return &pb.RpcAccountMigrateResponse{ - Error: &pb.RpcAccountMigrateResponseError{ - Code: code, - Description: getErrorDescription(err), - }, - } -} - -func (mw *Middleware) AccountMigrateCancel(cctx context.Context, req *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { - err := mw.applicationService.AccountMigrateCancel(cctx, req) - code := mapErrorCode(err, - errToCode(application.ErrBadInput, pb.RpcAccountMigrateCancelResponseError_BAD_INPUT), - ) - return &pb.RpcAccountMigrateCancelResponse{ - Error: &pb.RpcAccountMigrateCancelResponseError{ - Code: code, - Description: getErrorDescription(err), - }, - } -} - func (mw *Middleware) AccountSelect(cctx context.Context, req *pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse { account, err := mw.applicationService.AccountSelect(cctx, req) code := mapErrorCode(err, @@ -94,7 +64,6 @@ func (mw *Middleware) AccountSelect(cctx context.Context, req *pb.RpcAccountSele errToCode(application.ErrAnotherProcessIsRunning, pb.RpcAccountSelectResponseError_ANOTHER_ANYTYPE_PROCESS_IS_RUNNING), errToCode(application.ErrIncompatibleVersion, pb.RpcAccountSelectResponseError_FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION), errToCode(application.ErrFailedToStartApplication, pb.RpcAccountSelectResponseError_FAILED_TO_RUN_NODE), - errToCode(application.ErrAccountStoreIsNotMigrated, pb.RpcAccountSelectResponseError_ACCOUNT_STORE_NOT_MIGRATED), ) return &pb.RpcAccountSelectResponse{ Config: nil, diff --git a/core/acl/aclservice.go b/core/acl/aclservice.go index d2e2c54eb..50b7ac0e5 100644 --- a/core/acl/aclservice.go +++ b/core/acl/aclservice.go @@ -10,6 +10,7 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/acl/aclclient" "github.com/anyproto/any-sync/commonspace/object/acl/list" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/coordinator/coordinatorclient" "github.com/anyproto/any-sync/coordinator/coordinatorproto" "github.com/anyproto/any-sync/nodeconf" @@ -391,7 +392,7 @@ func (a *aclService) ViewInvite(ctx context.Context, inviteCid cid.Cid, inviteFi if len(recs) == 0 { return domain.InviteView{}, fmt.Errorf("no acl records found for space: %s, %w", res.SpaceId, ErrAclRequestFailed) } - store, err := list.NewInMemoryStorage(recs[0].Id, recs) + store, err := liststorage.NewInMemoryAclListStorage(recs[0].Id, recs) if err != nil { return domain.InviteView{}, convertedOrAclRequestError(err) } diff --git a/core/acl/aclservice_test.go b/core/acl/aclservice_test.go index ea14c4fbd..f4e1c2d53 100644 --- a/core/acl/aclservice_test.go +++ b/core/acl/aclservice_test.go @@ -143,6 +143,9 @@ func (m mockSyncAcl) HandleRequest(ctx context.Context, senderId string, request return nil, nil } +func (m mockSyncAcl) SetHeadUpdater(updater headupdater.HeadUpdater) { +} + func (m mockSyncAcl) SetAclUpdater(updater headupdater.AclUpdater) { } @@ -323,7 +326,7 @@ func TestService_ViewInvite(t *testing.T) { keys, err := accountdata.NewRandom() require.NoError(t, err) fx.mockAccountService.EXPECT().Keys().Return(keys) - aclList, err := list.NewInMemoryDerivedAcl("spaceId", keys) + aclList, err := list.NewTestDerivedAcl("spaceId", keys) require.NoError(t, err) inv, err := aclList.RecordBuilder().BuildInvite() require.NoError(t, err) @@ -354,7 +357,7 @@ func TestService_ViewInvite(t *testing.T) { keys, err := accountdata.NewRandom() require.NoError(t, err) fx.mockAccountService.EXPECT().Keys().Return(keys) - aclList, err := list.NewInMemoryDerivedAcl("spaceId", keys) + aclList, err := list.NewTestDerivedAcl("spaceId", keys) require.NoError(t, err) inv, err := aclList.RecordBuilder().BuildInvite() require.NoError(t, err) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 6659d0fd3..76911ac1d 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -108,12 +108,9 @@ import ( "github.com/anyproto/anytype-heart/space/spacecore/clientserver" "github.com/anyproto/anytype-heart/space/spacecore/credentialprovider" "github.com/anyproto/anytype-heart/space/spacecore/localdiscovery" - "github.com/anyproto/anytype-heart/space/spacecore/oldstorage" "github.com/anyproto/anytype-heart/space/spacecore/peermanager" "github.com/anyproto/anytype-heart/space/spacecore/peerstore" "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/migrator" - "github.com/anyproto/anytype-heart/space/spacecore/storage/migratorfinisher" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider" "github.com/anyproto/anytype-heart/space/spacefactory" "github.com/anyproto/anytype-heart/space/virtualspaceservice" @@ -209,18 +206,6 @@ func appVersion(a *app.App, clientWithVersion string) string { return clientWithVersion + "/middle:" + middleVersion + "/any-sync:" + anySyncVersion } -func BootstrapMigration(a *app.App, components ...app.Component) { - for _, c := range components { - a.Register(c) - } - a.Register(migratorfinisher.New()). - Register(clientds.New()). - Register(oldstorage.New()). - Register(storage.New()). - Register(process.New()). - Register(migrator.New()) -} - func Bootstrap(a *app.App, components ...app.Component) { for _, c := range components { a.Register(c) diff --git a/core/anytype/config/config.go b/core/anytype/config/config.go index 9ad4aa23f..be9c1d1a5 100644 --- a/core/anytype/config/config.go +++ b/core/anytype/config/config.go @@ -43,7 +43,6 @@ const ( const ( SpaceStoreBadgerPath = "spacestore" SpaceStoreSqlitePath = "spaceStore.db" - SpaceStoreNewPath = "spaceStoreNew" ) var ( @@ -70,7 +69,6 @@ type Config struct { DisableThreadsSyncEvents bool DontStartLocalNetworkSyncAutomatically bool PeferYamuxTransport bool - DisableNetworkIdCheck bool SpaceStorageMode storage.SpaceStorageMode NetworkMode pb.RpcAccountNetworkMode NetworkCustomConfigFilePath string `json:",omitempty"` // not saved to config @@ -295,27 +293,12 @@ func (c *Config) FSConfig() (FSConfig, error) { return FSConfig{IPFSStorageAddr: res.CustomFileStorePath}, nil } -func (c *Config) GetRepoPath() string { - return c.RepoPath -} - func (c *Config) GetConfigPath() string { return filepath.Join(c.RepoPath, ConfigFileName) } -func (c *Config) GetSqliteStorePath() string { - return filepath.Join(c.RepoPath, SpaceStoreSqlitePath) -} - -func (c *Config) GetOldSpaceStorePath() string { - if c.GetSpaceStorageMode() == storage.SpaceStorageModeBadger { - return filepath.Join(c.RepoPath, SpaceStoreBadgerPath) - } - return c.GetSqliteStorePath() -} - -func (c *Config) GetNewSpaceStorePath() string { - return filepath.Join(c.RepoPath, SpaceStoreNewPath) +func (c *Config) GetSpaceStorePath() string { + return filepath.Join(c.RepoPath, "spaceStore.db") } func (c *Config) GetTempDirPath() string { @@ -408,7 +391,7 @@ func (c *Config) GetNodeConfWithError() (conf nodeconf.Configuration, err error) if err := yaml.Unmarshal(confBytes, &conf); err != nil { return nodeconf.Configuration{}, errors.Join(ErrNetworkFileFailedToRead, err) } - if !c.DisableNetworkIdCheck && c.NetworkId != "" && c.NetworkId != conf.NetworkId { + if c.NetworkId != "" && c.NetworkId != conf.NetworkId { log.Warnf("Network id mismatch: %s != %s", c.NetworkId, conf.NetworkId) return nodeconf.Configuration{}, errors.Join(ErrNetworkIdMismatch, fmt.Errorf("network id mismatch: %s != %s", c.NetworkId, conf.NetworkId)) } diff --git a/core/application/account_select.go b/core/application/account_select.go index 303a3b915..6f22b7f86 100644 --- a/core/application/account_select.go +++ b/core/application/account_select.go @@ -31,23 +31,15 @@ var ( ErrNoMnemonicProvided = errors.New("no mnemonic provided") ErrIncompatibleVersion = errors.New("can't fetch account's data because remote nodes have incompatible protocol version. Please update anytype to the latest version") - ErrAnotherProcessIsRunning = errors.New("another anytype process is running") - ErrFailedToFindAccountInfo = errors.New("failed to find account info") - ErrAccountIsDeleted = errors.New("account is deleted") - ErrAccountStoreIsNotMigrated = errors.New("account store is not migrated") + ErrAnotherProcessIsRunning = errors.New("another anytype process is running") + ErrFailedToFindAccountInfo = errors.New("failed to find account info") + ErrAccountIsDeleted = errors.New("account is deleted") ) func (s *Service) AccountSelect(ctx context.Context, req *pb.RpcAccountSelectRequest) (*model.Account, error) { if req.Id == "" { return nil, ErrEmptyAccountID } - curMigration := s.migrationManager.getOrCreateMigration(req.RootPath, req.Id) - if !curMigration.successful() { - return nil, ErrAccountStoreIsNotMigrated - } - if s.migrationManager.isRunning() { - return nil, ErrMigrationRunning - } if runtime.GOOS != "android" && runtime.GOOS != "ios" { s.traceRecorder.start() diff --git a/core/application/account_store_migrate.go b/core/application/account_store_migrate.go deleted file mode 100644 index 838c98987..000000000 --- a/core/application/account_store_migrate.go +++ /dev/null @@ -1,222 +0,0 @@ -package application - -import ( - "context" - "errors" - "os" - "path/filepath" - "sync" - - "github.com/anyproto/any-sync/app" - "go.uber.org/zap" - - "github.com/anyproto/anytype-heart/core/anytype" - "github.com/anyproto/anytype-heart/core/anytype/config" - "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/pkg/lib/core" -) - -var ( - ErrAccountNotFound = errors.New("account not found") - ErrMigrationRunning = errors.New("migration is running") -) - -func (s *Service) AccountMigrate(ctx context.Context, req *pb.RpcAccountMigrateRequest) error { - if s.rootPath == "" { - s.rootPath = req.RootPath - } - return s.migrationManager.getOrCreateMigration(req.RootPath, req.Id).wait() -} - -func (s *Service) AccountMigrateCancel(ctx context.Context, req *pb.RpcAccountMigrateCancelRequest) error { - m := s.migrationManager.getMigration(req.Id) - if m == nil { - return nil - } - m.cancelMigration() - return nil -} - -func (s *Service) migrate(ctx context.Context, id string) error { - res, err := core.WalletAccountAt(s.mnemonic, 0) - if err != nil { - return err - } - if _, err := os.Stat(filepath.Join(s.rootPath, id)); err != nil { - if os.IsNotExist(err) { - return ErrAccountNotFound - } - return err - } - cfg := anytype.BootstrapConfig(false, os.Getenv("ANYTYPE_STAGING") == "1") - cfg.PeferYamuxTransport = true - cfg.DisableNetworkIdCheck = true - comps := []app.Component{ - cfg, - anytype.BootstrapWallet(s.rootPath, res), - s.eventSender, - } - a := &app.App{} - anytype.BootstrapMigration(a, comps...) - err = a.Start(ctx) - if err != nil { - return err - } - return a.Close(ctx) -} - -type migration struct { - mx sync.Mutex - isStarted bool - isFinished bool - ctx context.Context - cancel context.CancelFunc - manager *migrationManager - err error - id string - done chan struct{} -} - -func newMigration(m *migrationManager, id string) *migration { - ctx, cancel := context.WithCancel(context.Background()) - return &migration{ - ctx: ctx, - cancel: cancel, - done: make(chan struct{}), - id: id, - manager: m, - } -} - -func newSuccessfulMigration(manager *migrationManager, id string) *migration { - m := newMigration(manager, id) - m.setFinished(nil, false) - return m -} - -func (m *migration) setFinished(err error, notify bool) { - m.mx.Lock() - defer m.mx.Unlock() - m.isFinished = true - m.err = err - close(m.done) - if notify { - m.manager.setMigrationRunning(m.id, false) - } -} - -func (m *migration) cancelMigration() { - m.cancel() - err := m.wait() - if err != nil { - log.Warn("failed to wait for migration to finish", zap.Error(err)) - } -} - -func (m *migration) wait() error { - m.mx.Lock() - if !m.manager.setMigrationRunning(m.id, true) { - m.mx.Unlock() - return ErrMigrationRunning - } - if !m.isStarted { - m.isStarted = true - } else { - m.mx.Unlock() - <-m.done - return m.err - } - m.mx.Unlock() - err := m.manager.service.migrate(m.ctx, m.id) - if err != nil { - m.setFinished(err, true) - return err - } - m.setFinished(nil, true) - return nil -} - -func (m *migration) successful() bool { - m.mx.Lock() - defer m.mx.Unlock() - return m.isFinished && m.err == nil -} - -func (m *migration) finished() bool { - m.mx.Lock() - defer m.mx.Unlock() - return m.isFinished -} - -type migrationManager struct { - migrations map[string]*migration - service *Service - runningMigration string - sync.Mutex -} - -func newMigrationManager(s *Service) *migrationManager { - return &migrationManager{ - service: s, - } -} - -func (m *migrationManager) setMigrationRunning(id string, isRunning bool) bool { - m.Lock() - defer m.Unlock() - if (m.runningMigration != "" && m.runningMigration != id) && isRunning { - return false - } - if m.runningMigration == "" && !isRunning { - panic("migration is not running") - } - if isRunning { - m.runningMigration = id - } else { - m.runningMigration = "" - } - return true -} - -func (m *migrationManager) isRunning() bool { - m.Lock() - defer m.Unlock() - return m.runningMigration != "" -} - -func (m *migrationManager) getOrCreateMigration(rootPath, id string) *migration { - m.Lock() - defer m.Unlock() - if m.migrations == nil { - m.migrations = make(map[string]*migration) - } - if m.migrations[id] == nil { - sqlitePath := filepath.Join(rootPath, id, config.SpaceStoreSqlitePath) - baderPath := filepath.Join(rootPath, id, config.SpaceStoreBadgerPath) - if anyPathExists([]string{sqlitePath, baderPath}) { - m.migrations[id] = newMigration(m, id) - } else { - m.migrations[id] = newSuccessfulMigration(m, id) - } - } - if m.migrations[id].finished() && !m.migrations[id].successful() { - // resetting migration - m.migrations[id] = newMigration(m, id) - } - return m.migrations[id] -} - -func (m *migrationManager) getMigration(id string) *migration { - m.Lock() - defer m.Unlock() - return m.migrations[id] -} - -func anyPathExists(paths []string) bool { - for _, path := range paths { - if _, err := os.Stat(path); err == nil { - return true - } - } - return false -} diff --git a/core/application/application.go b/core/application/application.go index ceabeb78d..f934d194c 100644 --- a/core/application/application.go +++ b/core/application/application.go @@ -30,20 +30,16 @@ type Service struct { eventSender event.Sender sessions session.Service traceRecorder *traceRecorder - migrationManager *migrationManager appAccountStartInProcessCancel context.CancelFunc appAccountStartInProcessCancelMutex sync.Mutex } func New() *Service { - s := &Service{ + return &Service{ sessions: session.New(), traceRecorder: &traceRecorder{}, } - m := newMigrationManager(s) - s.migrationManager = m - return s } func (s *Service) GetApp() *app.App { diff --git a/core/block/debug.go b/core/block/debug.go index 2b4d44db9..138cbd7a7 100644 --- a/core/block/debug.go +++ b/core/block/debug.go @@ -1,7 +1,6 @@ package block import ( - "context" "encoding/json" "fmt" "net/http" @@ -23,7 +22,6 @@ import ( func (s *Service) DebugRouter(r chi.Router) { r.Get("/objects", debug.JSONHandler(s.debugListObjects)) r.Get("/tree/{id}", debug.JSONHandler(s.debugTree)) - r.Get("/tree_in_space/{spaceId}/{id}", debug.JSONHandler(s.debugTreeInSpace)) r.Get("/objects_per_space/{spaceId}", debug.JSONHandler(s.debugListObjectsPerSpace)) r.Get("/objects/{id}", debug.JSONHandler(s.debugGetObject)) } @@ -124,44 +122,6 @@ func (s *Service) debugTree(req *http.Request) (debugTree, error) { return result, err } -// TODO Refactor -func (s *Service) debugTreeInSpace(req *http.Request) (debugTree, error) { - spaceId := chi.URLParam(req, "spaceId") - id := chi.URLParam(req, "id") - - result := debugTree{ - Id: id, - } - - spc, err := s.spaceService.Get(context.Background(), spaceId) - if err != nil { - return result, fmt.Errorf("get space: %w", err) - } - - err = spc.Do(id, func(sb smartblock.SmartBlock) error { - ot := sb.Tree() - return ot.IterateRoot(source.UnmarshalChange, func(change *objecttree.Change) bool { - change.Next = nil - raw, err := json.Marshal(change) - if err != nil { - log.Error("debug tree: marshal change", zap.Error(err)) - return false - } - ts := time.Unix(change.Timestamp, 0) - ch := debugChange{ - Change: raw, - Timestamp: ts.Format(time.RFC3339), - } - if change.Identity != nil { - ch.Identity = change.Identity.Account() - } - result.Changes = append(result.Changes, ch) - return true - }) - }) - return result, err -} - func (s *Service) getDebugObject(id string) (debugObject, error) { var obj debugObject err := cache.Do(s, id, func(sb smartblock.SmartBlock) error { diff --git a/core/block/editor/chatobject/chatobject.go b/core/block/editor/chatobject/chatobject.go index 2f303dcc4..0023a591e 100644 --- a/core/block/editor/chatobject/chatobject.go +++ b/core/block/editor/chatobject/chatobject.go @@ -39,7 +39,6 @@ type StoreObject interface { ToggleMessageReaction(ctx context.Context, messageId string, emoji string) error DeleteMessage(ctx context.Context, messageId string) error SubscribeLastMessages(ctx context.Context, limit int) ([]*model.ChatMessage, int, error) - MarkSeenHeads(heads []string) Unsubscribe() error } @@ -113,10 +112,6 @@ func (s *storeObject) onUpdate() { s.subscription.flush() } -func (s *storeObject) MarkSeenHeads(heads []string) { - s.storeSource.MarkSeenHeads(heads) -} - func (s *storeObject) GetMessagesByIds(ctx context.Context, messageIds []string) ([]*model.ChatMessage, error) { coll, err := s.store.Collection(ctx, collectionName) if err != nil { diff --git a/core/block/editor/state/test/buildfast_test.go b/core/block/editor/state/test/buildfast_test.go index 79b277e7c..6b0846932 100644 --- a/core/block/editor/state/test/buildfast_test.go +++ b/core/block/editor/state/test/buildfast_test.go @@ -1,60 +1,72 @@ package debug -// TODO: revive at some point -// func TestBuildFast(t *testing.T) { -// // Specify the directory you want to iterate -// dir := "./testdata" -// -// // Read the directory -// files, err := ioutil.ReadDir(dir) -// if err != nil { -// t.Fatalf("Failed to read dir: %s", err) -// } -// -// // Iterate over the files -// for _, file := range files { -// t.Run(file.Name(), func(t *testing.T) { -// filePath := filepath.Join(dir, file.Name()) -// -// // open the file -// f, err := os.Open(filePath) -// if err != nil { -// t.Fatalf("Failed to open file: %s", err) -// } -// defer f.Close() -// -// testBuildFast(t, filePath) -// }) -// } -// } -// -// func testBuildFast(b *testing.T, filepath string) { -// // todo: replace with less heavy tree -// archive, err := treearchive.Open(filepath) -// if err != nil { -// require.NoError(b, err) -// } -// defer archive.Close() -// -// importer := exporter.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) -// -// err = importer.Import(false, "") -// if err != nil { -// log.Fatal("can't import the tree", err) -// } -// -// start := time.Now() -// _, err = importer.State() -// if err != nil { -// log.Fatal("can't build state:", err) -// } -// b.Logf("fast build took %s", time.Since(start)) -// -// importer2 := exporter.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) -// -// err = importer2.Import(false, "") -// if err != nil { -// log.Fatal("can't import the tree", err) -// } -// -// } +import ( + "io/ioutil" + "log" + "os" + "path/filepath" + "testing" + "time" + + "github.com/stretchr/testify/require" + + "github.com/anyproto/anytype-heart/core/debug/treearchive" +) + +func TestBuildFast(t *testing.T) { + // Specify the directory you want to iterate + dir := "./testdata" + + // Read the directory + files, err := ioutil.ReadDir(dir) + if err != nil { + t.Fatalf("Failed to read dir: %s", err) + } + + // Iterate over the files + for _, file := range files { + t.Run(file.Name(), func(t *testing.T) { + filePath := filepath.Join(dir, file.Name()) + + // open the file + f, err := os.Open(filePath) + if err != nil { + t.Fatalf("Failed to open file: %s", err) + } + defer f.Close() + + testBuildFast(t, filePath) + }) + } +} + +func testBuildFast(b *testing.T, filepath string) { + // todo: replace with less heavy tree + archive, err := treearchive.Open(filepath) + if err != nil { + require.NoError(b, err) + } + defer archive.Close() + + importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) + + err = importer.Import(false, "") + if err != nil { + log.Fatal("can't import the tree", err) + } + + start := time.Now() + _, err = importer.State() + if err != nil { + log.Fatal("can't build state:", err) + } + b.Logf("fast build took %s", time.Since(start)) + + importer2 := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) + + err = importer2.Import(false, "") + if err != nil { + log.Fatal("can't import the tree", err) + } + +} diff --git a/core/block/editor/storestate/tx.go b/core/block/editor/storestate/tx.go index 223e7d011..daa5e750d 100644 --- a/core/block/editor/storestate/tx.go +++ b/core/block/editor/storestate/tx.go @@ -47,6 +47,10 @@ func (stx *StoreStateTx) NextOrder(prev string) string { return lexId.Next(prev) } +func (stx *StoreStateTx) NextBeforeOrder(prev string, before string) (string, error) { + return lexId.NextBefore(prev, before) +} + func (stx *StoreStateTx) SetOrder(changeId, order string) (err error) { stx.arena.Reset() obj := stx.arena.NewObject() diff --git a/core/block/object/idresolver/resolver.go b/core/block/object/idresolver/resolver.go index ec007155e..544b455c3 100644 --- a/core/block/object/idresolver/resolver.go +++ b/core/block/object/idresolver/resolver.go @@ -4,8 +4,9 @@ import ( "sync" "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" + "github.com/anyproto/anytype-heart/space/spacecore/storage" ) const CName = "block.object.resolver" @@ -20,12 +21,12 @@ func New() Resolver { } type resolver struct { - objectStore objectstore.ObjectStore + storage storage.ClientStorage sync.Mutex } func (r *resolver) Init(a *app.App) (err error) { - r.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) + r.storage = a.MustComponent(spacestorage.CName).(storage.ClientStorage) return } @@ -34,5 +35,5 @@ func (r *resolver) Name() (name string) { } func (r *resolver) ResolveSpaceID(objectID string) (string, error) { - return r.objectStore.GetSpaceId(objectID) + return r.storage.GetSpaceID(objectID) } diff --git a/core/block/object/objectcache/payload_test.go b/core/block/object/objectcache/payload_test.go index ff9311b29..e1b990794 100644 --- a/core/block/object/objectcache/payload_test.go +++ b/core/block/object/objectcache/payload_test.go @@ -20,7 +20,7 @@ func Test_Payloads(t *testing.T) { changePayload := []byte("some") keys, err := accountdata.NewRandom() require.NoError(t, err) - aclList, err := list.NewInMemoryDerivedAcl("spaceId", keys) + aclList, err := list.NewTestDerivedAcl("spaceId", keys) require.NoError(t, err) timestamp := time.Now().Add(time.Hour).Unix() diff --git a/core/block/object/treesyncer/treesyncer.go b/core/block/object/treesyncer/treesyncer.go index 84e7e6880..f8cd2e3e6 100644 --- a/core/block/object/treesyncer/treesyncer.go +++ b/core/block/object/treesyncer/treesyncer.go @@ -102,7 +102,7 @@ func NewTreeSyncer(spaceId string) treesyncer.TreeSyncer { func (t *treeSyncer) Init(a *app.App) (err error) { t.isSyncing = true spaceStorage := app.MustComponent[spacestorage.SpaceStorage](a) - t.spaceSettingsId = spaceStorage.StateStorage().SettingsId() + t.spaceSettingsId = spaceStorage.SpaceSettingsId() t.treeManager = app.MustComponent[treemanager.TreeManager](a) t.nodeConf = app.MustComponent[nodeconf.NodeConf](a) t.syncedTreeRemover = app.MustComponent[SyncedTreeRemover](a) diff --git a/core/block/object/treesyncer/treesyncer_test.go b/core/block/object/treesyncer/treesyncer_test.go index 9ae3d31b9..0dda4da16 100644 --- a/core/block/object/treesyncer/treesyncer_test.go +++ b/core/block/object/treesyncer/treesyncer_test.go @@ -8,7 +8,6 @@ import ( "time" "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/headsync/statestorage/mock_statestorage" "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" "github.com/anyproto/any-sync/commonspace/object/tree/synctree/mock_synctree" "github.com/anyproto/any-sync/commonspace/object/treemanager/mock_treemanager" @@ -33,7 +32,6 @@ type fixture struct { nodeConf *mock_nodeconf.MockService syncStatus *mock_treesyncer.MockSyncedTreeRemover syncDetailsUpdater *mock_treesyncer.MockSyncDetailsUpdater - stateStorage *mock_statestorage.MockStateStorage } func newFixture(t *testing.T, spaceId string) *fixture { @@ -46,9 +44,7 @@ func newFixture(t *testing.T, spaceId string) *fixture { syncStatus := mock_treesyncer.NewMockSyncedTreeRemover(t) syncDetailsUpdater := mock_treesyncer.NewMockSyncDetailsUpdater(t) spaceStorage := mock_spacestorage.NewMockSpaceStorage(ctrl) - stateStorage := mock_statestorage.NewMockStateStorage(ctrl) - spaceStorage.EXPECT().StateStorage().AnyTimes().Return(stateStorage) - stateStorage.EXPECT().SettingsId().AnyTimes().Return("settingsId") + spaceStorage.EXPECT().SpaceSettingsId().Return("spaceSettingsId").AnyTimes() a := new(app.App) a.Register(testutil.PrepareMock(context.Background(), a, treeManager)). @@ -68,7 +64,6 @@ func newFixture(t *testing.T, spaceId string) *fixture { nodeConf: nodeConf, syncStatus: syncStatus, syncDetailsUpdater: syncDetailsUpdater, - stateStorage: stateStorage, } } diff --git a/core/block/service.go b/core/block/service.go index accb05ac8..33faf3392 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -358,7 +358,7 @@ func (s *Service) SpaceInitChat(ctx context.Context, spaceId string) error { return err } - if spaceChatExists, err := spc.Storage().HasTree(ctx, chatId); err != nil { + if spaceChatExists, err := spc.Storage().HasTree(chatId); err != nil { return err } else if !spaceChatExists { _, err = s.objectCreator.AddChatDerivedObject(ctx, spc, workspaceId) diff --git a/core/block/source/mock_source/mock_Store.go b/core/block/source/mock_source/mock_Store.go index 89a6ef2a4..cdc4dd559 100644 --- a/core/block/source/mock_source/mock_Store.go +++ b/core/block/source/mock_source/mock_Store.go @@ -276,39 +276,6 @@ func (_c *MockStore_Id_Call) RunAndReturn(run func() string) *MockStore_Id_Call return _c } -// MarkSeenHeads provides a mock function with given fields: heads -func (_m *MockStore) MarkSeenHeads(heads []string) { - _m.Called(heads) -} - -// MockStore_MarkSeenHeads_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MarkSeenHeads' -type MockStore_MarkSeenHeads_Call struct { - *mock.Call -} - -// MarkSeenHeads is a helper method to define mock.On call -// - heads []string -func (_e *MockStore_Expecter) MarkSeenHeads(heads interface{}) *MockStore_MarkSeenHeads_Call { - return &MockStore_MarkSeenHeads_Call{Call: _e.mock.On("MarkSeenHeads", heads)} -} - -func (_c *MockStore_MarkSeenHeads_Call) Run(run func(heads []string)) *MockStore_MarkSeenHeads_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].([]string)) - }) - return _c -} - -func (_c *MockStore_MarkSeenHeads_Call) Return() *MockStore_MarkSeenHeads_Call { - _c.Call.Return() - return _c -} - -func (_c *MockStore_MarkSeenHeads_Call) RunAndReturn(run func([]string)) *MockStore_MarkSeenHeads_Call { - _c.Call.Return(run) - return _c -} - // PushChange provides a mock function with given fields: params func (_m *MockStore) PushChange(params source.PushChangeParams) (string, error) { ret := _m.Called(params) diff --git a/core/block/source/service.go b/core/block/source/service.go index a7b1dfe4b..ada447b39 100644 --- a/core/block/source/service.go +++ b/core/block/source/service.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/commonspace/object/acl/list" "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" "github.com/anyproto/any-sync/commonspace/object/tree/synctree/updatelistener" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/any-sync/commonspace/objecttreebuilder" "github.com/anyproto/any-sync/commonspace/spacestorage" @@ -99,7 +100,7 @@ type BuildOptions struct { func (b *BuildOptions) BuildTreeOpts() objecttreebuilder.BuildTreeOpts { return objecttreebuilder.BuildTreeOpts{ Listener: b.Listener, - TreeBuilder: func(treeStorage objecttree.Storage, aclList list.AclList) (objecttree.ObjectTree, error) { + TreeBuilder: func(treeStorage treestorage.TreeStorage, aclList list.AclList) (objecttree.ObjectTree, error) { ot, err := objecttree.BuildKeyFilterableObjectTree(treeStorage, aclList) if err != nil { return nil, err @@ -122,7 +123,7 @@ func (s *service) NewSource(ctx context.Context, space Space, id string, buildOp if err != nil { return nil, err } - err = s.objectStore.BindSpaceId(src.SpaceID(), src.Id()) + err = s.storageService.BindSpaceID(src.SpaceID(), src.Id()) if err != nil { return nil, fmt.Errorf("store space id for object: %w", err) } @@ -245,7 +246,7 @@ func (s *service) RegisterStaticSource(src Source) error { s.mu.Lock() defer s.mu.Unlock() s.staticIds[src.Id()] = src - err := s.objectStore.BindSpaceId(src.SpaceID(), src.Id()) + err := s.storageService.BindSpaceID(src.SpaceID(), src.Id()) if err != nil { return fmt.Errorf("store space id for object: %w", err) } diff --git a/core/block/source/store.go b/core/block/source/store.go index 938c5cad0..c61275b0a 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -11,7 +11,7 @@ import ( "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" "github.com/anyproto/any-sync/commonspace/object/tree/synctree" "github.com/anyproto/any-sync/commonspace/object/tree/synctree/updatelistener" - "github.com/anyproto/any-sync/commonspace/objecttreebuilder" + "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/gogo/protobuf/proto" "github.com/golang/snappy" @@ -33,7 +33,6 @@ type Store interface { ReadStoreDoc(ctx context.Context, stateStore *storestate.StoreState, onUpdateHook func()) (err error) PushStoreChange(ctx context.Context, params PushStoreChangeParams) (changeId string, err error) SetPushChangeHook(onPushChange PushChangeHook) - MarkSeenHeads(heads []string) } type PushStoreChangeParams struct { @@ -52,8 +51,6 @@ type store struct { store *storestate.StoreState onUpdateHook func() onPushChange PushChangeHook - diffManager *objecttree.DiffManager - sbType smartblock.SmartBlockType } func (s *store) GetFileKeysSnapshot() []*pb.ChangeFileKeys { @@ -64,17 +61,6 @@ func (s *store) SetPushChangeHook(onPushChange PushChangeHook) { s.onPushChange = onPushChange } -func (s *store) createDiffManager(ctx context.Context, curTreeHeads, seenHeads []string) (err error) { - buildTree := func(heads []string) (objecttree.ReadableObjectTree, error) { - return s.space.TreeBuilder().BuildHistoryTree(ctx, s.Id(), objecttreebuilder.HistoryTreeOpts{ - Heads: heads, - Include: true, - }) - } - s.diffManager, err = objecttree.NewDiffManager(seenHeads, curTreeHeads, buildTree, func(ids []string) {}) - return -} - func (s *store) ReadDoc(ctx context.Context, receiver ChangeReceiver, empty bool) (doc state.Doc, err error) { s.receiver = receiver setter, ok := s.ObjectTree.(synctree.ListenerSetter) @@ -115,10 +101,7 @@ func (s *store) PushChange(params PushChangeParams) (id string, err error) { func (s *store) ReadStoreDoc(ctx context.Context, storeState *storestate.StoreState, onUpdateHook func()) (err error) { s.onUpdateHook = onUpdateHook s.store = storeState - err = s.createDiffManager(ctx, s.source.Tree().Heads(), nil) - if err != nil { - return err - } + tx, err := s.store.NewTx(ctx) if err != nil { return @@ -161,11 +144,11 @@ func (s *store) PushStoreChange(ctx context.Context, params PushStoreChangeParam IsEncrypted: true, DataType: dataType, Timestamp: params.Time.Unix(), - }, func(change objecttree.StorageChange) error { - // TODO: get order here + }, func(change *treechangeproto.RawTreeChangeWithId) error { + order := tx.NextOrder(tx.GetMaxOrder()) err = tx.ApplyChangeSet(storestate.ChangeSet{ Id: change.Id, - Order: change.OrderId, + Order: order, Changes: params.Changes, Creator: s.accountService.AccountID(), Timestamp: params.Time.Unix(), @@ -187,14 +170,6 @@ func (s *store) PushStoreChange(ctx context.Context, params PushStoreChangeParam if err == nil { s.onUpdateHook() } - ch, err := s.ObjectTree.GetChange(changeId) - if err != nil { - return "", err - } - s.diffManager.Add(&objecttree.Change{ - Id: changeId, - PreviousIds: ch.PreviousIds, - }) return changeId, err } @@ -211,17 +186,12 @@ func (s *store) update(ctx context.Context, tree objecttree.ObjectTree) error { return errors.Join(tx.Rollback(), err) } err = tx.Commit() - s.diffManager.Update(tree) if err == nil { s.onUpdateHook() } return err } -func (s *store) MarkSeenHeads(heads []string) { - s.diffManager.Remove(heads) -} - func (s *store) Update(tree objecttree.ObjectTree) error { err := s.update(context.Background(), tree) if err != nil { diff --git a/core/block/source/store_apply.go b/core/block/source/store_apply.go index b8ef83e84..94bacd243 100644 --- a/core/block/source/store_apply.go +++ b/core/block/source/store_apply.go @@ -24,14 +24,62 @@ type storeApply struct { } func (a *storeApply) Apply() (err error) { + maxOrder := a.tx.GetMaxOrder() + isEmpty := maxOrder == "" iterErr := a.ot.IterateRoot(UnmarshalStoreChange, func(change *objecttree.Change) bool { // not a new change - remember and continue - if !a.allIsNew && !change.IsNew { + if !a.allIsNew && !change.IsNew && !isEmpty { + a.prevChange = change + a.prevOrder = "" return true } - if err = a.applyChange(change); err != nil { + currOrder, curOrdErr := a.tx.GetOrder(change.Id) + if curOrdErr != nil { + if !errors.Is(curOrdErr, storestate.ErrOrderNotFound) { + err = curOrdErr + return false + } + } else { + // change has been handled before + a.prevChange = change + a.prevOrder = currOrder + return true + } + + prevOrder, prevOrdErr := a.getPrevOrder() + if prevOrdErr != nil { + if !errors.Is(prevOrdErr, storestate.ErrOrderNotFound) { + err = prevOrdErr + return false + } + if !isEmpty { + // it should not happen, consistency with tree and store broken + err = fmt.Errorf("unable to find previous order") + return false + } + } + + if prevOrder == a.tx.GetMaxOrder() { + // insert on top - just create next id + currOrder = a.tx.NextOrder(prevOrder) + } else { + // insert in the middle - find next order and create id between + nextOrder, nextOrdErr := a.findNextOrder(change.Id) + if nextOrdErr != nil { + // it should not happen, consistency with tree and store broken + err = errors.Join(nextOrdErr, fmt.Errorf("unable to find next order")) + return false + } + if currOrder, err = a.tx.NextBeforeOrder(prevOrder, nextOrder); err != nil { + return false + } + } + + if err = a.applyChange(change, currOrder); err != nil { return false } + a.prevOrder = currOrder + a.prevChange = change return true }) if err == nil && iterErr != nil { @@ -40,18 +88,18 @@ func (a *storeApply) Apply() (err error) { return } -func (a *storeApply) applyChange(change *objecttree.Change) (err error) { +func (a *storeApply) applyChange(change *objecttree.Change, order string) (err error) { storeChange, ok := change.Model.(*pb.StoreChange) if !ok { // if it is root if _, ok := change.Model.(*treechangeproto.TreeChangeInfo); ok { - return a.tx.SetOrder(change.Id, change.OrderId) + return a.tx.SetOrder(change.Id, order) } return fmt.Errorf("unexpected change content type: %T", change.Model) } set := storestate.ChangeSet{ Id: change.Id, - Order: change.OrderId, + Order: order, Changes: storeChange.ChangeSet, Creator: change.Identity.Account(), Timestamp: change.Timestamp, @@ -63,3 +111,56 @@ func (a *storeApply) applyChange(change *objecttree.Change) (err error) { } return err } + +func (a *storeApply) getPrevOrder() (order string, err error) { + if a.prevOrder != "" { + return a.prevOrder, nil + } + if a.prevChange == nil { + return "", nil + } + if order, err = a.tx.GetOrder(a.prevChange.Id); err != nil { + return + } + a.prevOrder = order + return +} + +func (a *storeApply) findNextOrder(changeId string) (order string, err error) { + if order = a.findNextInCache(changeId); order != "" { + return + } + + a.nextCacheChange = map[string]struct{}{} + iterErr := a.ot.IterateFrom(changeId, UnmarshalStoreChange, func(change *objecttree.Change) bool { + order, err = a.tx.GetOrder(change.Id) + if err != nil { + if errors.Is(err, storestate.ErrOrderNotFound) { + // no order - remember id and move forward + a.nextCacheChange[change.Id] = struct{}{} + return true + } else { + return false + } + } + // order found + a.nextCachedOrder = order + return false + }) + if err == nil && iterErr != nil { + return "", iterErr + } + return +} + +func (a *storeApply) findNextInCache(changeId string) (order string) { + if a.nextCacheChange == nil { + return "" + } + if _, ok := a.nextCacheChange[changeId]; ok { + return a.nextCachedOrder + } + a.nextCachedOrder = "" + a.nextCacheChange = nil + return "" +} diff --git a/core/block/source/store_apply_test.go b/core/block/source/store_apply_test.go index e5121fced..f373e3d41 100644 --- a/core/block/source/store_apply_test.go +++ b/core/block/source/store_apply_test.go @@ -2,10 +2,12 @@ package source import ( "context" + "fmt" "os" "path/filepath" "sort" "testing" + "time" anystore "github.com/anyproto/any-store" "github.com/anyproto/any-sync/commonspace/object/accountdata" @@ -17,7 +19,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" - "golang.org/x/sys/unix" "github.com/anyproto/anytype-heart/core/block/editor/storestate" "github.com/anyproto/anytype-heart/pb" @@ -97,6 +98,90 @@ func TestStoreApply_RealTree(t *testing.T) { }) } +func TestStoreApply_Apply(t *testing.T) { + t.Run("new tree", func(t *testing.T) { + fx := newMockTreeStoreFx(t) + tx := fx.RequireTx(t) + changes := []*objecttree.Change{ + testChange("1", false), + testChange("2", false), + testChange("3", false), + } + fx.ApplyChanges(t, tx, changes...) + require.NoError(t, tx.Commit()) + }) + t.Run("insert middle", func(t *testing.T) { + fx := newMockTreeStoreFx(t) + tx := fx.RequireTx(t) + changes := []*objecttree.Change{ + testChange("1", false), + testChange("2", false), + testChange("3", false), + } + fx.ApplyChanges(t, tx, changes...) + require.NoError(t, tx.Commit()) + + tx = fx.RequireTx(t) + changes = []*objecttree.Change{ + testChange("1", false), + testChange("1.1", true), + testChange("1.2", true), + testChange("1.3", true), + testChange("2", false), + testChange("2.2", true), + testChange("3", false), + } + fx.ExpectTreeFrom("1.1", changes[1:]...) + fx.ExpectTreeFrom("2.2", changes[6:]...) + fx.ApplyChanges(t, tx, changes...) + require.NoError(t, tx.Commit()) + }) + t.Run("append", func(t *testing.T) { + fx := newMockTreeStoreFx(t) + tx := fx.RequireTx(t) + changes := []*objecttree.Change{ + testChange("1", false), + testChange("2", false), + testChange("3", false), + } + fx.ApplyChanges(t, tx, changes...) + require.NoError(t, tx.Commit()) + + tx = fx.RequireTx(t) + changes = []*objecttree.Change{ + testChange("1", false), + testChange("2", false), + testChange("3", false), + testChange("4", true), + testChange("5", true), + testChange("6", true), + } + fx.ApplyChanges(t, tx, changes...) + require.NoError(t, tx.Commit()) + }) +} + +func TestStoreApply_Apply10000(t *testing.T) { + fx := newMockTreeStoreFx(t) + tx := fx.RequireTx(t) + changes := make([]*objecttree.Change, 100000) + for i := range changes { + changes[i] = testChange(fmt.Sprint(i), false) + } + st := time.Now() + applier := &storeApply{ + tx: tx, + ot: fx.mockTree, + } + fx.ExpectTree(changes...) + require.NoError(t, applier.Apply()) + t.Logf("apply dur: %v;", time.Since(st)) + st = time.Now() + require.NoError(t, tx.Commit()) + t.Logf("commit dur: %v;", time.Since(st)) + +} + type storeFx struct { state *storestate.StoreState mockTree *mock_objecttree.MockObjectTree @@ -158,6 +243,37 @@ func (fx *storeFx) ApplyChanges(t *testing.T, tx *storestate.StoreStateTx, chang fx.AssertOrder(t, tx, changes...) } +func newMockTreeStoreFx(t testing.TB) *storeFx { + tmpDir, err := os.MkdirTemp("", "source_store_*") + require.NoError(t, err) + + db, err := anystore.Open(ctx, filepath.Join(tmpDir, "test.db"), nil) + require.NoError(t, err) + + ctrl := gomock.NewController(t) + t.Cleanup(func() { + if db != nil { + _ = db.Close() + } + ctrl.Finish() + if tmpDir != "" { + _ = os.RemoveAll(tmpDir) + } + }) + + state, err := storestate.New(ctx, "source_test", db, storestate.DefaultHandler{Name: "default"}) + require.NoError(t, err) + + tree := mock_objecttree.NewMockObjectTree(ctrl) + tree.EXPECT().Id().Return("root").AnyTimes() + + return &storeFx{ + state: state, + mockTree: tree, + db: db, + } +} + func newRealTreeStoreFx(t testing.TB) *storeFx { tmpDir, err := os.MkdirTemp("", "source_store_*") require.NoError(t, err) @@ -179,16 +295,14 @@ func newRealTreeStoreFx(t testing.TB) *storeFx { state, err := storestate.New(ctx, "source_test", db, storestate.DefaultHandler{Name: "default"}) require.NoError(t, err) aclList, _ := prepareAclList(t) - objTree, err := buildTree(t, aclList) + objTree, err := buildTree(aclList) require.NoError(t, err) fx := &storeFx{ - state: state, - realTree: objTree, - aclList: aclList, - changeCreator: objecttree.NewMockChangeCreator(func() anystore.DB { - return createStore(ctx, t) - }), - db: db, + state: state, + realTree: objTree, + aclList: aclList, + changeCreator: objecttree.NewMockChangeCreator(), + db: db, } tx := fx.RequireTx(t) defer tx.Rollback() @@ -207,7 +321,6 @@ func testChange(id string, isNew bool) *objecttree.Change { return &objecttree.Change{ Id: id, - OrderId: id, IsNew: isNew, Model: &pb.StoreChange{}, Identity: pub, @@ -217,17 +330,15 @@ func testChange(id string, isNew bool) *objecttree.Change { func prepareAclList(t testing.TB) (list.AclList, *accountdata.AccountKeys) { randKeys, err := accountdata.NewRandom() require.NoError(t, err) - aclList, err := list.NewInMemoryDerivedAcl("spaceId", randKeys) + aclList, err := list.NewTestDerivedAcl("spaceId", randKeys) require.NoError(t, err, "building acl list should be without error") return aclList, randKeys } -func buildTree(t testing.TB, aclList list.AclList) (objecttree.ObjectTree, error) { - changeCreator := objecttree.NewMockChangeCreator(func() anystore.DB { - return createStore(ctx, t) - }) - treeStorage := changeCreator.CreateNewTreeStorage(t.(*testing.T), "0", aclList.Head().Id, false) +func buildTree(aclList list.AclList) (objecttree.ObjectTree, error) { + changeCreator := objecttree.NewMockChangeCreator() + treeStorage := changeCreator.CreateNewTreeStorage("0", aclList.Head().Id, false) tree, err := objecttree.BuildTestableTree(treeStorage, aclList) if err != nil { return nil, err @@ -235,22 +346,3 @@ func buildTree(t testing.TB, aclList list.AclList) (objecttree.ObjectTree, error tree.SetFlusher(objecttree.MarkNewChangeFlusher()) return tree, nil } - -func createStore(ctx context.Context, t testing.TB) anystore.DB { - return createNamedStore(ctx, t, "changes.db") -} - -func createNamedStore(ctx context.Context, t testing.TB, name string) anystore.DB { - path := filepath.Join(t.TempDir(), name) - db, err := anystore.Open(ctx, path, nil) - require.NoError(t, err) - t.Cleanup(func() { - err := db.Close() - require.NoError(t, err) - unix.Rmdir(path) - }) - return objecttree.TestStore{ - DB: db, - Path: path, - } -} diff --git a/core/configfetcher/configfetcher.go b/core/configfetcher/configfetcher.go index f7a7b4bac..591b046f9 100644 --- a/core/configfetcher/configfetcher.go +++ b/core/configfetcher/configfetcher.go @@ -83,13 +83,13 @@ func (c *configFetcher) updateStatus(ctx context.Context) (err error) { techSpace := c.getter.TechSpace() res, err := c.client.StatusCheck(ctx, techSpace.Id()) if errors.Is(err, coordinatorproto.ErrSpaceNotExists) { - state, sErr := techSpace.Storage().StateStorage().GetState(ctx) + header, sErr := techSpace.Storage().SpaceHeader() if sErr != nil { return sErr } payload := coordinatorclient.SpaceSignPayload{ - SpaceId: techSpace.Id(), - SpaceHeader: state.SpaceHeader, + SpaceId: header.Id, + SpaceHeader: header.RawHeader, OldAccount: c.wallet.GetOldAccountKey(), Identity: c.wallet.GetAccountPrivkey(), } diff --git a/core/debug/exporter/exporter.go b/core/debug/exporter/exporter.go deleted file mode 100644 index f0d99d9d8..000000000 --- a/core/debug/exporter/exporter.go +++ /dev/null @@ -1,111 +0,0 @@ -package exporter - -import ( - "context" - "fmt" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage" - "github.com/anyproto/any-sync/commonspace/object/accountdata" - "github.com/anyproto/any-sync/commonspace/object/acl/list" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" - "github.com/anyproto/any-sync/util/crypto" - "golang.org/x/exp/slices" -) - -type DataConverter interface { - Unmarshall(dataType string, decrypted []byte) (any, error) - Marshall(model any) (data []byte, dataType string, err error) -} - -func prepareExport(ctx context.Context, readable objecttree.ReadableObjectTree, store anystore.DB) (objecttree.ObjectTree, error) { - headStorage, err := headstorage.New(ctx, store) - if err != nil { - return nil, err - } - acl := readable.AclList() - root := acl.Root() - listStorage, err := list.CreateStorage(ctx, root, headStorage, store) - if err != nil { - return nil, err - } - keys, err := accountdata.NewRandom() - if err != nil { - return nil, err - } - newAcl, err := list.BuildAclListWithIdentity(keys, listStorage, list.NoOpAcceptorVerifier{}) - if err != nil { - return nil, err - } - treeStorage, err := objecttree.CreateStorage(ctx, readable.Header(), headStorage, store) - if err != nil { - return nil, err - } - writeTree, err := objecttree.BuildTestableTree(treeStorage, newAcl) - if err != nil { - return nil, err - } - return writeTree, nil -} - -type ExportParams struct { - Readable objecttree.ReadableObjectTree - Store anystore.DB - Converter DataConverter -} - -func ExportTree(ctx context.Context, params ExportParams) error { - writeTree, err := prepareExport(ctx, params.Readable, params.Store) - if err != nil { - return err - } - var ( - changeBuilder = objecttree.NewChangeBuilder(crypto.NewKeyStorage(), writeTree.Header()) - converter = params.Converter - changes []*treechangeproto.RawTreeChangeWithId - ) - err = writeTree.IterateRoot( - func(change *objecttree.Change, decrypted []byte) (any, error) { - return converter.Unmarshall(change.DataType, decrypted) - }, - func(change *objecttree.Change) bool { - if change.Id == writeTree.Id() { - return true - } - var ( - data []byte - dataType string - ) - data, dataType, err = converter.Marshall(change.Model) - if err != nil { - return false - } - // that means that change is unencrypted - change.ReadKeyId = "" - change.Data = data - change.DataType = dataType - var raw *treechangeproto.RawTreeChangeWithId - raw, err = changeBuilder.Marshall(change) - if err != nil { - return false - } - changes = append(changes, raw) - return true - }) - if err != nil { - return err - } - payload := objecttree.RawChangesPayload{ - NewHeads: writeTree.Heads(), - RawChanges: changes, - } - res, err := writeTree.AddRawChanges(ctx, payload) - if err != nil { - return err - } - if !slices.Equal(res.Heads, writeTree.Heads()) { - return fmt.Errorf("heads mismatch: %v != %v", res.Heads, writeTree.Heads()) - } - return nil -} diff --git a/core/debug/exporter/importer.go b/core/debug/exporter/importer.go deleted file mode 100644 index f60a3334f..000000000 --- a/core/debug/exporter/importer.go +++ /dev/null @@ -1,96 +0,0 @@ -package exporter - -import ( - "context" - "os" - "path/filepath" - "strings" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage" - "github.com/anyproto/any-sync/commonspace/object/accountdata" - "github.com/anyproto/any-sync/commonspace/object/acl/list" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - - "github.com/anyproto/anytype-heart/util/ziputil" -) - -type ImportResult struct { - List list.AclList - Storage objecttree.Storage - FolderPath string -} - -func (i ImportResult) CreateReadableTree(fullTree bool, beforeId string) (objecttree.ReadableObjectTree, error) { - return objecttree.BuildNonVerifiableHistoryTree(objecttree.HistoryTreeParams{ - Storage: i.Storage, - AclList: i.List, - Heads: i.Heads(fullTree, beforeId), - IncludeBeforeId: true, - }) -} - -func (i ImportResult) Heads(fullTree bool, beforeId string) []string { - if fullTree { - return nil - } - return []string{beforeId} -} - -func ImportStorage(ctx context.Context, path string) (res ImportResult, err error) { - targetDir := strings.TrimSuffix(path, filepath.Ext(path)) - if _, err = os.Stat(targetDir); err == nil { - err = os.RemoveAll(targetDir) - if err != nil { - return - } - } - if err = ziputil.UnzipFolder(path, targetDir); err != nil { - return - } - anyStore, err := anystore.Open(ctx, targetDir, nil) - if err != nil { - return - } - defer anyStore.Close() - var ( - aclId string - treeId string - ) - headStorage, err := headstorage.New(ctx, anyStore) - if err != nil { - return - } - err = headStorage.IterateEntries(ctx, headstorage.IterOpts{}, func(entry headstorage.HeadsEntry) (bool, error) { - if entry.CommonSnapshot == "" { - aclId = entry.Id - return true, nil - } - treeId = entry.Id - return true, nil - }) - if err != nil { - return - } - listStorage, err := list.NewStorage(ctx, aclId, headStorage, anyStore) - if err != nil { - return - } - randomKeys, err := accountdata.NewRandom() - if err != nil { - return - } - acl, err := list.BuildAclListWithIdentity(randomKeys, listStorage, list.NoOpAcceptorVerifier{}) - if err != nil { - return - } - treeStorage, err := objecttree.NewStorage(ctx, treeId, headStorage, anyStore) - if err != nil { - return - } - return ImportResult{ - List: acl, - Storage: treeStorage, - FolderPath: targetDir, - }, nil -} diff --git a/core/debug/treearchive/archivewriter.go b/core/debug/treearchive/archivewriter.go new file mode 100644 index 000000000..d5bea2f97 --- /dev/null +++ b/core/debug/treearchive/archivewriter.go @@ -0,0 +1,99 @@ +package treearchive + +import ( + "archive/zip" + "encoding/json" + "io/fs" + "os" + + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" + "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" + "github.com/anyproto/any-sync/consensus/consensusproto" + + "github.com/anyproto/anytype-heart/core/debug/treearchive/zipaclstorage" + "github.com/anyproto/anytype-heart/core/debug/treearchive/ziptreestorage" +) + +type ExportedObjectsJson struct { + AclId string `json:"aclId"` + TreeId string `json:"treeId"` +} + +type ArchiveWriter struct { + zw *zip.Writer + zf fs.File + treeId string + aclId string + storages []flushableStorage +} + +type flushableStorage interface { + FlushStorage() error +} + +func NewArchiveWriter(path string) (*ArchiveWriter, error) { + zf, err := os.Create(path) + if err != nil { + return nil, err + } + zw := zip.NewWriter(zf) + return &ArchiveWriter{ + zw: zw, + zf: zf, + }, nil +} + +func (e *ArchiveWriter) ZipWriter() *zip.Writer { + return e.zw +} + +func (e *ArchiveWriter) TreeStorage(root *treechangeproto.RawTreeChangeWithId) (treestorage.TreeStorage, error) { + e.treeId = root.Id + st, err := ziptreestorage.NewZipTreeWriteStorage(root, e.zw) + if err != nil { + return nil, err + } + e.storages = append(e.storages, st.(flushableStorage)) + return st, nil +} + +func (e *ArchiveWriter) ListStorage(root *consensusproto.RawRecordWithId) (liststorage.ListStorage, error) { + e.aclId = root.Id + st, err := zipaclstorage.NewACLWriteStorage(root, e.zw) + if err != nil { + return nil, err + } + e.storages = append(e.storages, st.(flushableStorage)) + return st, nil +} + +func (e *ArchiveWriter) Close() (err error) { + for _, st := range e.storages { + err = st.FlushStorage() + if err != nil { + return + } + } + exportedHeader, err := e.zw.CreateHeader(&zip.FileHeader{ + Name: "exported.json", + Method: zip.Deflate, + }) + if err != nil { + return + } + enc := json.NewEncoder(exportedHeader) + enc.SetIndent("", "\t") + err = enc.Encode(ExportedObjectsJson{ + TreeId: e.treeId, + AclId: e.aclId, + }) + if err != nil { + return + } + err = e.zw.Close() + if err != nil { + return + } + return e.zf.Close() +} diff --git a/core/debug/treearchive/treearchive.go b/core/debug/treearchive/treearchive.go new file mode 100644 index 000000000..951c23299 --- /dev/null +++ b/core/debug/treearchive/treearchive.go @@ -0,0 +1,91 @@ +package treearchive + +import ( + "archive/zip" + "encoding/json" + "fmt" + + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" + "github.com/gogo/protobuf/jsonpb" + + "github.com/anyproto/anytype-heart/core/debug/treearchive/zipaclstorage" + "github.com/anyproto/anytype-heart/core/debug/treearchive/ziptreestorage" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" +) + +type TreeArchive interface { + ListStorage() liststorage.ListStorage + TreeStorage() treestorage.TreeStorage + LocalStore() (*model.ObjectInfo, error) + Close() error +} + +type treeArchive struct { + listStorage liststorage.ListStorage + treeStorage treestorage.TreeStorage + zr *zip.ReadCloser +} + +// Open expects debug tree zip file +// returns TreeArchive that has ListStorage and TreeStorage +func Open(filename string) (tr TreeArchive, err error) { + zr, err := zip.OpenReader(filename) + if err != nil { + return nil, err + } + exported, err := zr.Open("exported.json") + if err != nil { + return + } + defer exported.Close() + expJson := &ExportedObjectsJson{} + if err = json.NewDecoder(exported).Decode(expJson); err != nil { + return + } + + listStorage, err := zipaclstorage.NewZipAclReadStorage(expJson.AclId, zr) + if err != nil { + return + } + treeStorage, err := ziptreestorage.NewZipTreeReadStorage(expJson.TreeId, zr) + if err != nil { + return + } + + return &treeArchive{ + listStorage: listStorage, + treeStorage: treeStorage, + zr: zr, + }, nil +} + +func (a *treeArchive) ListStorage() liststorage.ListStorage { + return a.listStorage +} + +func (a *treeArchive) TreeStorage() treestorage.TreeStorage { + return a.treeStorage +} + +func (a *treeArchive) LocalStore() (*model.ObjectInfo, error) { + for _, f := range a.zr.File { + if f.Name == "localstore.json" { + rd, err := f.Open() + if err != nil { + return nil, err + } + defer rd.Close() + var oi = &model.ObjectInfo{} + if err = jsonpb.Unmarshal(rd, oi); err != nil { + return nil, err + } + return oi, nil + } + } + return nil, fmt.Errorf("block logs file not found") +} + +func (a *treeArchive) Close() (err error) { + return a.zr.Close() +} diff --git a/core/debug/exporter/treeimporter.go b/core/debug/treearchive/treeimporter.go similarity index 69% rename from core/debug/exporter/treeimporter.go rename to core/debug/treearchive/treeimporter.go index 4603dcca7..bc4171e1d 100644 --- a/core/debug/exporter/treeimporter.go +++ b/core/debug/treearchive/treeimporter.go @@ -1,10 +1,13 @@ -package exporter +package treearchive import ( "errors" "fmt" + "github.com/anyproto/any-sync/commonspace/object/acl/list" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/source" @@ -40,18 +43,22 @@ func (m MarshalledJsonChange) MarshalJSON() ([]byte, error) { type TreeImporter interface { ObjectTree() objecttree.ReadableObjectTree - State() (*state.State, error) + State() (*state.State, error) // set fullStateChain to true to get full state chain, otherwise only the last state will be returned + Import(fromRoot bool, beforeId string) error Json() (TreeJson, error) ChangeAt(idx int) (IdChange, error) } type treeImporter struct { - objectTree objecttree.ReadableObjectTree + listStorage liststorage.ListStorage + treeStorage treestorage.TreeStorage + objectTree objecttree.ReadableObjectTree } -func NewTreeImporter(objectTree objecttree.ReadableObjectTree) TreeImporter { +func NewTreeImporter(listStorage liststorage.ListStorage, treeStorage treestorage.TreeStorage) TreeImporter { return &treeImporter{ - objectTree: objectTree, + listStorage: listStorage, + treeStorage: treeStorage, } } @@ -76,6 +83,25 @@ func (t *treeImporter) State() (*state.State, error) { return st, nil } +func (t *treeImporter) Import(fullTree bool, beforeId string) (err error) { + aclList, err := list.BuildAclList(t.listStorage, list.NoOpAcceptorVerifier{}) + if err != nil { + return + } + var heads []string + if !fullTree { + heads = []string{beforeId} + } + t.objectTree, err = objecttree.BuildNonVerifiableHistoryTree(objecttree.HistoryTreeParams{ + TreeStorage: t.treeStorage, + AclList: aclList, + Heads: heads, + IncludeBeforeId: true, + }) + + return +} + func (t *treeImporter) Json() (treeJson TreeJson, err error) { treeJson = TreeJson{ Id: t.objectTree.Id(), diff --git a/core/debug/treearchive/zipaclstorage/aclreadstorage.go b/core/debug/treearchive/zipaclstorage/aclreadstorage.go new file mode 100644 index 000000000..9b3c7272b --- /dev/null +++ b/core/debug/treearchive/zipaclstorage/aclreadstorage.go @@ -0,0 +1,77 @@ +package zipaclstorage + +import ( + "archive/zip" + "context" + "fmt" + "io" + "strings" + + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" + "github.com/anyproto/any-sync/consensus/consensusproto" +) + +type zipAclReadStorage struct { + id string + files map[string]*zip.File +} + +func NewZipAclReadStorage(id string, zr *zip.ReadCloser) (ls liststorage.ListStorage, err error) { + aclStorage := &zipAclReadStorage{ + id: id, + files: map[string]*zip.File{}, + } + for _, f := range zr.Reader.File { + if len(f.Name) > len(id) && strings.Contains(f.Name, id) { + split := strings.SplitAfter(id, "/") + last := split[len(split)-1] + aclStorage.files[last] = f + } + } + ls = aclStorage + return +} + +func (z *zipAclReadStorage) Id() string { + return z.id +} + +func (z *zipAclReadStorage) Root() (*consensusproto.RawRecordWithId, error) { + return z.readRecord(z.id) +} + +func (z *zipAclReadStorage) Head() (string, error) { + return z.id, nil +} + +func (z *zipAclReadStorage) SetHead(headId string) error { + panic("should not be called") +} + +func (z *zipAclReadStorage) GetRawRecord(_ context.Context, id string) (*consensusproto.RawRecordWithId, error) { + return z.readRecord(id) +} + +func (z *zipAclReadStorage) AddRawRecord(_ context.Context, _ *consensusproto.RawRecordWithId) (err error) { + panic("should not be called") +} + +func (z *zipAclReadStorage) readRecord(id string) (rec *consensusproto.RawRecordWithId, err error) { + file, ok := z.files[id] + if !ok { + err = fmt.Errorf("object not found in storage") + return + } + opened, err := file.Open() + if err != nil { + return + } + defer opened.Close() + + buf, err := io.ReadAll(opened) + if err != nil { + return + } + rec = &consensusproto.RawRecordWithId{Payload: buf, Id: id} + return +} diff --git a/core/debug/treearchive/zipaclstorage/aclwritestorage.go b/core/debug/treearchive/zipaclstorage/aclwritestorage.go new file mode 100644 index 000000000..e49fc0812 --- /dev/null +++ b/core/debug/treearchive/zipaclstorage/aclwritestorage.go @@ -0,0 +1,59 @@ +package zipaclstorage + +import ( + "archive/zip" + "context" + "strings" + + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" + "github.com/anyproto/any-sync/consensus/consensusproto" +) + +type zipACLWriteStorage struct { + id string + zw *zip.Writer +} + +func NewACLWriteStorage(root *consensusproto.RawRecordWithId, zw *zip.Writer) (ls liststorage.ListStorage, err error) { + ls = &zipACLWriteStorage{ + id: root.Id, + zw: zw, + } + err = ls.AddRawRecord(context.Background(), root) + return +} + +// nolint:revive +func (z *zipACLWriteStorage) Id() string { + return z.id +} + +func (z *zipACLWriteStorage) Root() (*consensusproto.RawRecordWithId, error) { + panic("should not be called") +} + +func (z *zipACLWriteStorage) Head() (string, error) { + return z.id, nil +} + +func (z *zipACLWriteStorage) SetHead(_ string) error { + // TODO: As soon as our acls are writeable, this should be implemented + panic("should not be called") +} + +func (z *zipACLWriteStorage) GetRawRecord(_ context.Context, _ string) (*consensusproto.RawRecordWithId, error) { + panic("should not be called") +} + +func (z *zipACLWriteStorage) AddRawRecord(_ context.Context, rec *consensusproto.RawRecordWithId) (err error) { + wr, err := z.zw.Create(strings.Join([]string{z.id, rec.Id}, "/")) + if err != nil { + return + } + _, err = wr.Write(rec.Payload) + return +} + +func (z *zipACLWriteStorage) FlushStorage() error { + return nil +} diff --git a/core/debug/treearchive/ziptreestorage/treereadstorage.go b/core/debug/treearchive/ziptreestorage/treereadstorage.go new file mode 100644 index 000000000..604e08cef --- /dev/null +++ b/core/debug/treearchive/ziptreestorage/treereadstorage.go @@ -0,0 +1,116 @@ +package ziptreestorage + +import ( + "archive/zip" + "context" + "encoding/json" + "fmt" + "io" + "strings" + + "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" +) + +type zipTreeReadStorage struct { + id string + heads []string + files map[string]*zip.File +} + +func NewZipTreeReadStorage(id string, zr *zip.ReadCloser) (st treestorage.TreeStorage, err error) { + zrs := &zipTreeReadStorage{ + id: id, + heads: nil, + files: map[string]*zip.File{}, + } + for _, f := range zr.Reader.File { + if len(f.Name) > len(id) && strings.Contains(f.Name, id) { + split := strings.Split(f.Name, "/") + last := split[len(split)-1] + zrs.files[last] = f + } + } + data, ok := zrs.files["data.json"] + if !ok { + err = fmt.Errorf("no data.json in archive") + return + } + dataOpened, err := data.Open() + if err != nil { + return + } + defer dataOpened.Close() + headsEntry := &HeadsJsonEntry{} + if err = json.NewDecoder(dataOpened).Decode(headsEntry); err != nil { + return + } + zrs.heads = headsEntry.Heads + st = zrs + return +} + +func (t *zipTreeReadStorage) GetAllChangeIds() (chs []string, err error) { + return nil, fmt.Errorf("get all change ids should not be called") +} + +func (z *zipTreeReadStorage) Id() string { + return z.id +} + +func (z *zipTreeReadStorage) Root() (root *treechangeproto.RawTreeChangeWithId, err error) { + return z.readChange(z.id) +} + +func (z *zipTreeReadStorage) Heads() ([]string, error) { + return z.heads, nil +} + +func (z *zipTreeReadStorage) SetHeads(heads []string) (err error) { + panic("should not be called") +} + +func (z *zipTreeReadStorage) AddRawChange(change *treechangeproto.RawTreeChangeWithId) (err error) { + panic("should not be called") +} + +func (z *zipTreeReadStorage) AddRawChangesSetHeads(changes []*treechangeproto.RawTreeChangeWithId, heads []string) (err error) { + panic("should not be called") +} + +func (z *zipTreeReadStorage) GetRawChange(ctx context.Context, id string) (*treechangeproto.RawTreeChangeWithId, error) { + return z.readChange(id) +} + +func (z *zipTreeReadStorage) GetAppendRawChange(ctx context.Context, buf []byte, id string) (*treechangeproto.RawTreeChangeWithId, error) { + return z.readChange(id) +} + +func (z *zipTreeReadStorage) HasChange(ctx context.Context, id string) (ok bool, err error) { + _, ok = z.files[id] + return +} + +func (z *zipTreeReadStorage) Delete() error { + panic("should not be called") +} + +func (z *zipTreeReadStorage) readChange(id string) (change *treechangeproto.RawTreeChangeWithId, err error) { + file, ok := z.files[id] + if !ok { + err = fmt.Errorf("object not found in storage") + return + } + opened, err := file.Open() + if err != nil { + return + } + defer opened.Close() + + buf, err := io.ReadAll(opened) + if err != nil { + return + } + change = &treechangeproto.RawTreeChangeWithId{RawChange: buf, Id: id} + return +} diff --git a/core/debug/treearchive/ziptreestorage/treewritestorage.go b/core/debug/treearchive/ziptreestorage/treewritestorage.go new file mode 100644 index 000000000..c80d87e3f --- /dev/null +++ b/core/debug/treearchive/ziptreestorage/treewritestorage.go @@ -0,0 +1,110 @@ +package ziptreestorage + +import ( + "archive/zip" + "context" + "encoding/json" + "fmt" + "strings" + + "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" +) + +type HeadsJsonEntry struct { + Heads []string `json:"heads"` + RootId string `json:"rootId"` +} + +type zipTreeWriteStorage struct { + id string + heads []string + zw *zip.Writer +} + +func NewZipTreeWriteStorage(root *treechangeproto.RawTreeChangeWithId, zw *zip.Writer) (st treestorage.TreeStorage, err error) { + z := &zipTreeWriteStorage{ + id: root.Id, + zw: zw, + } + err = z.SetHeads([]string{root.Id}) + if err != nil { + return + } + err = z.AddRawChange(root) + if err != nil { + return + } + st = z + return +} + +func (z *zipTreeWriteStorage) Id() string { + return z.id +} + +func (t *zipTreeWriteStorage) GetAllChangeIds() (chs []string, err error) { + return nil, fmt.Errorf("get all change ids should not be called") +} + +func (z *zipTreeWriteStorage) Root() (*treechangeproto.RawTreeChangeWithId, error) { + panic("should not be implemented") +} + +func (z *zipTreeWriteStorage) Heads() ([]string, error) { + return z.heads, nil +} + +func (z *zipTreeWriteStorage) SetHeads(heads []string) (err error) { + z.heads = heads + return +} + +func (z *zipTreeWriteStorage) AddRawChange(change *treechangeproto.RawTreeChangeWithId) (err error) { + wr, err := z.zw.Create(strings.Join([]string{z.id, change.Id}, "/")) + if err != nil { + return + } + _, err = wr.Write(change.RawChange) + return +} + +func (z *zipTreeWriteStorage) AddRawChangesSetHeads(changes []*treechangeproto.RawTreeChangeWithId, heads []string) (err error) { + for _, ch := range changes { + err = z.AddRawChange(ch) + if err != nil { + return + } + } + return z.SetHeads(heads) +} + +func (z *zipTreeWriteStorage) GetRawChange(ctx context.Context, id string) (*treechangeproto.RawTreeChangeWithId, error) { + panic("should not be called") +} + +func (z *zipTreeWriteStorage) GetAppendRawChange(ctx context.Context, buf []byte, id string) (*treechangeproto.RawTreeChangeWithId, error) { + panic("should not be called") +} + +func (z *zipTreeWriteStorage) HasChange(ctx context.Context, id string) (ok bool, err error) { + panic("should not be called") +} + +func (z *zipTreeWriteStorage) Delete() error { + panic("should not be called") +} + +func (z *zipTreeWriteStorage) FlushStorage() (err error) { + chw, err := z.zw.CreateHeader(&zip.FileHeader{ + Name: strings.Join([]string{z.id, "data.json"}, "/"), + Method: zip.Deflate, + }) + enc := json.NewEncoder(chw) + enc.SetIndent("", "\t") + err = enc.Encode(HeadsJsonEntry{ + Heads: z.heads, + RootId: z.id, + }) + return +} diff --git a/core/debug/treeexporter.go b/core/debug/treeexporter.go index ba23643e5..f8781c0b2 100644 --- a/core/debug/treeexporter.go +++ b/core/debug/treeexporter.go @@ -1,6 +1,7 @@ package debug import ( + "archive/zip" "bytes" "context" "fmt" @@ -10,15 +11,14 @@ import ( "path/filepath" "time" - anystore "github.com/anyproto/any-store" + "github.com/anyproto/any-sync/commonspace/object/tree/exporter" "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - "github.com/anyproto/anytype-heart/core/debug/exporter" + "github.com/anyproto/anytype-heart/core/debug/treearchive" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/util/anonymize" "github.com/anyproto/anytype-heart/util/pbtypes" - "github.com/anyproto/anytype-heart/util/ziputil" ) type treeExporter struct { @@ -26,78 +26,66 @@ type treeExporter struct { s objectstore.ObjectStore anonymized bool id domain.FullID + zw *zip.Writer } func (e *treeExporter) Export(ctx context.Context, path string, tree objecttree.ReadableObjectTree) (filename string, err error) { - var ( - exportDirPath = filepath.Join(path, fmt.Sprintf("at.dbg.%s.%s", e.id, time.Now().Format("20060102.150405.99"))) - dbPath = filepath.Join(exportDirPath, "db") - localStorePath = filepath.Join(exportDirPath, "localstore.json") - logPath = filepath.Join(exportDirPath, "creation.log") - ) - filename = exportDirPath + ".zip" - err = os.MkdirAll(exportDirPath, 0755) + filename = filepath.Join(path, fmt.Sprintf("at.dbg.%s.%s.zip", e.id, time.Now().Format("20060102.150405.99"))) + archiveWriter, err := treearchive.NewArchiveWriter(filename) if err != nil { return } - defer func() { - _ = os.RemoveAll(exportDirPath) - }() - err = os.Mkdir(dbPath, 0755) - if err != nil { - return - } - anyStore, err := anystore.Open(ctx, dbPath, nil) - if err != nil { - return - } - defer func() { - _ = anyStore.Close() - }() - exportParams := exporter.ExportParams{ - Readable: tree, - Store: anyStore, - Converter: &changeDataConverter{anonymize: e.anonymized}, - } - st := time.Now() - err = exporter.ExportTree(ctx, exportParams) - if err != nil { - return - } - err = anyStore.Checkpoint(ctx, true) - if err != nil { - return + defer archiveWriter.Close() + + e.zw = archiveWriter.ZipWriter() + params := exporter.TreeExporterParams{ + ListStorageExporter: archiveWriter, + TreeStorageExporter: archiveWriter, + DataConverter: &changeDataConverter{anonymize: e.anonymized}, } + anySyncExporter := exporter.NewTreeExporter(params) logBuf := bytes.NewBuffer(nil) + e.log = stdlog.New(io.MultiWriter(logBuf, os.Stderr), "", stdlog.LstdFlags) + e.log.Printf("exporting tree and acl") + st := time.Now() + err = anySyncExporter.ExportUnencrypted(tree) + if err != nil { + e.log.Printf("export tree in zip error: %v", err) + return + } + e.log.Printf("exported tree for a %v", time.Since(st)) data, err := e.s.SpaceIndex(e.id.SpaceID).GetInfosByIds([]string{e.id.ObjectID}) if err != nil { e.log.Printf("can't fetch localstore info: %v", err) } else { if len(data) > 0 { - // TODO: [storage] fix details, take from main - // data[0].Details = transform(data[0].Details, e.anonymized, anonymize.Struct) + data[0].Details = transform(data[0].Details, e.anonymized, anonymize.Details) data[0].Snippet = transform(data[0].Snippet, e.anonymized, anonymize.Text) for i, r := range data[0].Relations { data[0].Relations[i] = transform(r, e.anonymized, anonymize.Relation) } osData := pbtypes.Sprint(data[0].ToProto()) - er := os.WriteFile(localStorePath, []byte(osData), 0600) + lsWr, er := e.zw.Create("localstore.json") if er != nil { - e.log.Printf("localstore.json write error: %v", err) + e.log.Printf("create file in zip error: %v", er) } else { - e.log.Printf("localstore.json wrote") + if _, err := lsWr.Write([]byte(osData)); err != nil { + e.log.Printf("localstore.json write error: %v", err) + } else { + e.log.Printf("localstore.json wrote") + } } } else { - e.log.Printf("no data in objectstore") + e.log.Printf("not data in objectstore") } } - err = os.WriteFile(logPath, logBuf.Bytes(), 0600) + logW, err := e.zw.Create("creation.log") if err != nil { return } - err = ziputil.ZipFolder(exportDirPath, filename) + io.Copy(logW, logBuf) return } diff --git a/core/indexer/fulltext_test.go b/core/indexer/fulltext_test.go index a2685036e..4f456028c 100644 --- a/core/indexer/fulltext_test.go +++ b/core/indexer/fulltext_test.go @@ -45,6 +45,7 @@ func NewIndexerFixture(t *testing.T) *IndexerFixture { walletService := mock_wallet.NewMockWallet(t) walletService.EXPECT().Name().Return(wallet.CName) + objectStore := objectstore.NewStoreFixture(t) clientStorage := mock_storage.NewMockClientStorage(t) diff --git a/core/indexer/indexer.go b/core/indexer/indexer.go index dd5f17e75..d12e9d26d 100644 --- a/core/indexer/indexer.go +++ b/core/indexer/indexer.go @@ -143,7 +143,7 @@ func (i *indexer) Index(info smartblock.DocInfo, options ...smartblock.IndexOpti i.lock.Lock() spaceInd, ok := i.spaceIndexers[info.Space.Id()] if !ok { - spaceInd = newSpaceIndexer(i.runCtx, i.store.SpaceIndex(info.Space.Id()), i.store) + spaceInd = newSpaceIndexer(i.runCtx, i.store.SpaceIndex(info.Space.Id()), i.store, i.storageService) i.spaceIndexers[info.Space.Id()] = spaceInd } i.lock.Unlock() diff --git a/core/indexer/indexer_test.go b/core/indexer/indexer_test.go index ee9310fb8..29b8bb53a 100644 --- a/core/indexer/indexer_test.go +++ b/core/indexer/indexer_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" @@ -49,6 +50,7 @@ func TestIndexer(t *testing.T) { ))) smartTest.SetType(coresb.SmartBlockTypePage) + indexerFx.storageServiceFx.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) indexerFx.store.SpaceIndex("spaceId1").SaveLastIndexedHeadsHash(ctx, "objectId1", "7f40bc2814f5297818461f889780a870ea033fe64c5a261117f2b662515a3dba") // when @@ -76,6 +78,7 @@ func TestIndexer(t *testing.T) { ))) smartTest.SetType(coresb.SmartBlockTypePage) + indexerFx.storageServiceFx.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) indexerFx.store.SpaceIndex("spaceId1").SaveLastIndexedHeadsHash(ctx, "objectId1", "randomHash") // when @@ -104,6 +107,7 @@ func TestIndexer(t *testing.T) { ))) smartTest.SetType(coresb.SmartBlockTypePage) + indexerFx.storageServiceFx.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) indexerFx.store.SpaceIndex("spaceId1").SaveLastIndexedHeadsHash(ctx, "objectId1", "7f40bc2814f5297818461f889780a870ea033fe64c5a261117f2b662515a3dba") // when diff --git a/core/indexer/reindex.go b/core/indexer/reindex.go index 056090e21..120d00a80 100644 --- a/core/indexer/reindex.go +++ b/core/indexer/reindex.go @@ -7,7 +7,6 @@ import ( "time" anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage" "go.uber.org/zap" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" @@ -52,7 +51,7 @@ const ( ) type allDeletedIdsProvider interface { - AllDeletedTreeIds(ctx context.Context) (ids []string, err error) + AllDeletedTreeIds() (ids []string, err error) } func (i *indexer) buildFlags(spaceID string) (reindexFlags, error) { @@ -248,7 +247,11 @@ func (i *indexer) addSyncDetails(space clientspace.Space) { func (i *indexer) reindexDeletedObjects(space clientspace.Space) error { store := i.store.SpaceIndex(space.Id()) - allIds, err := space.Storage().AllDeletedTreeIds(i.runCtx) + storage, ok := space.Storage().(allDeletedIdsProvider) + if !ok { + return fmt.Errorf("space storage doesn't implement allDeletedIdsProvider") + } + allIds, err := storage.AllDeletedTreeIds() if err != nil { return fmt.Errorf("get deleted tree ids: %w", err) } @@ -437,34 +440,35 @@ func (i *indexer) reindexIDs(ctx context.Context, space smartblock.Space, reinde func (i *indexer) reindexOutdatedObjects(ctx context.Context, space clientspace.Space) (toReindex, success int, err error) { store := i.store.SpaceIndex(space.Id()) - var entries []headstorage.HeadsEntry - err = space.Storage().HeadStorage().IterateEntries(ctx, headstorage.IterOpts{}, func(entry headstorage.HeadsEntry) (bool, error) { - // skipping Acl - if entry.CommonSnapshot != "" { - entries = append(entries, entry) - } - return true, nil - }) - if err != nil { - return - } + tids := space.StoredIds() var idsToReindex []string - for _, entry := range entries { - id := entry.Id + for _, tid := range tids { logErr := func(err error) { - log.With("tree", entry.Id).Errorf("reindexOutdatedObjects failed to get tree to reindex: %s", err) + log.With("tree", tid).Errorf("reindexOutdatedObjects failed to get tree to reindex: %s", err) } - lastHash, err := store.GetLastIndexedHeadsHash(ctx, id) + + lastHash, err := store.GetLastIndexedHeadsHash(ctx, tid) if err != nil { logErr(err) continue } - hh := headsHash(entry.Heads) + info, err := space.Storage().TreeStorage(tid) + if err != nil { + logErr(err) + continue + } + heads, err := info.Heads() + if err != nil { + logErr(err) + continue + } + + hh := headsHash(heads) if lastHash != hh { if lastHash != "" { - log.With("tree", id).Warnf("not equal indexed heads hash: %s!=%s (%d logs)", lastHash, hh, len(entry.Heads)) + log.With("tree", tid).Warnf("not equal indexed heads hash: %s!=%s (%d logs)", lastHash, hh, len(heads)) } - idsToReindex = append(idsToReindex, id) + idsToReindex = append(idsToReindex, tid) } } diff --git a/core/indexer/reindex_test.go b/core/indexer/reindex_test.go index dcd4750d5..f94d2ccb6 100644 --- a/core/indexer/reindex_test.go +++ b/core/indexer/reindex_test.go @@ -4,12 +4,9 @@ import ( "context" "testing" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage/mock_headstorage" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "go.uber.org/mock/gomock" "github.com/anyproto/anytype-heart/core/block/editor" "github.com/anyproto/anytype-heart/core/block/editor/smartblock/smarttest" @@ -25,7 +22,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/clientspace" mock_space "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage/mock_anystorage" "github.com/anyproto/anytype-heart/space/spacecore/storage/mock_storage" ) @@ -58,6 +54,7 @@ func TestReindexMarketplaceSpace(t *testing.T) { virtualSpace := getMockSpace(indexerFx) storage := mock_storage.NewMockClientStorage(t) + storage.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) indexerFx.storageService = storage // when @@ -95,6 +92,7 @@ func TestReindexMarketplaceSpace(t *testing.T) { require.NoError(t, err) storage := mock_storage.NewMockClientStorage(t) + storage.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) fx.storageService = storage // when @@ -130,6 +128,7 @@ func TestReindexMarketplaceSpace(t *testing.T) { require.NoError(t, err) storage := mock_storage.NewMockClientStorage(t) + storage.EXPECT().BindSpaceID(mock.Anything, mock.Anything).Return(nil) fx.storageService = storage fx.sourceFx.EXPECT().IDsListerBySmartblockType(mock.Anything, mock.Anything).Return(idsLister{Ids: []string{}}, nil).Maybe() @@ -190,15 +189,6 @@ func TestIndexer_ReindexSpace_RemoveParticipants(t *testing.T) { err = fx.objectStore.SaveChecksums(spaceId2, &checksums) require.NoError(t, err) - ctrl := gomock.NewController(t) - headStorage := mock_headstorage.NewMockHeadStorage(ctrl) - storage := mock_anystorage.NewMockClientSpaceStorage(t) - storage.EXPECT().HeadStorage().Return(headStorage) - headStorage.EXPECT().IterateEntries(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes(). - DoAndReturn(func(ctx context.Context, opts headstorage.IterOpts, entryIter headstorage.EntryIterator) error { - return nil - }) - for _, space := range []string{spaceId1, spaceId2} { t.Run("reindex - participants deleted - when flag doesn't match", func(t *testing.T) { // given @@ -206,7 +196,7 @@ func TestIndexer_ReindexSpace_RemoveParticipants(t *testing.T) { spc := mock_space.NewMockSpace(t) spc.EXPECT().Id().Return(space) - spc.EXPECT().Storage().Return(storage) + spc.EXPECT().StoredIds().Return([]string{}).Maybe() fx.sourceFx.EXPECT().IDsListerBySmartblockType(mock.Anything, mock.Anything).Return(idsLister{Ids: []string{}}, nil).Maybe() // when @@ -285,21 +275,12 @@ func TestIndexer_ReindexSpace_EraseLinks(t *testing.T) { require.NoError(t, err) err = fx.objectStore.SaveChecksums(spaceId2, &checksums) require.NoError(t, err) - ctrl := gomock.NewController(t) - headStorage := mock_headstorage.NewMockHeadStorage(ctrl) - storage := mock_anystorage.NewMockClientSpaceStorage(t) - storage.EXPECT().HeadStorage().Return(headStorage) - headStorage.EXPECT().IterateEntries(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes(). - DoAndReturn(func(ctx context.Context, opts headstorage.IterOpts, entryIter headstorage.EntryIterator) error { - return nil - }) t.Run("links from archive and home are deleted", func(t *testing.T) { // given favs := []string{"fav1", "fav2"} trash := []string{"trash1", "trash2"} store := fx.store.SpaceIndex("space1") - err = store.UpdateObjectLinks(ctx, "home", favs) require.NoError(t, err) err = store.UpdateObjectLinks(ctx, "bin", trash) @@ -313,7 +294,7 @@ func TestIndexer_ReindexSpace_EraseLinks(t *testing.T) { space1 := mock_space.NewMockSpace(t) space1.EXPECT().Id().Return(spaceId1) - space1.EXPECT().Storage().Return(storage) + space1.EXPECT().StoredIds().Return([]string{}).Maybe() // when err = fx.ReindexSpace(space1) @@ -354,7 +335,8 @@ func TestIndexer_ReindexSpace_EraseLinks(t *testing.T) { space1 := mock_space.NewMockSpace(t) space1.EXPECT().Id().Return(spaceId2) - space1.EXPECT().Storage().Return(storage) + space1.EXPECT().StoredIds().Return([]string{}).Maybe() + // when err = fx.ReindexSpace(space1) assert.NoError(t, err) diff --git a/core/indexer/spaceindexer.go b/core/indexer/spaceindexer.go index 4a6ddb2e2..6bfe56678 100644 --- a/core/indexer/spaceindexer.go +++ b/core/indexer/spaceindexer.go @@ -15,21 +15,24 @@ import ( "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceindex" + "github.com/anyproto/anytype-heart/space/spacecore/storage" ) type spaceIndexer struct { - runCtx context.Context - spaceIndex spaceindex.Store - objectStore objectstore.ObjectStore - batcher *mb.MB[indexTask] + runCtx context.Context + spaceIndex spaceindex.Store + objectStore objectstore.ObjectStore + storageService storage.ClientStorage + batcher *mb.MB[indexTask] } -func newSpaceIndexer(runCtx context.Context, spaceIndex spaceindex.Store, objectStore objectstore.ObjectStore) *spaceIndexer { +func newSpaceIndexer(runCtx context.Context, spaceIndex spaceindex.Store, objectStore objectstore.ObjectStore, storageService storage.ClientStorage) *spaceIndexer { ind := &spaceIndexer{ - runCtx: runCtx, - spaceIndex: spaceIndex, - objectStore: objectStore, - batcher: mb.New[indexTask](100), + runCtx: runCtx, + spaceIndex: spaceIndex, + objectStore: objectStore, + storageService: storageService, + batcher: mb.New[indexTask](100), } go ind.indexBatchLoop() return ind @@ -122,7 +125,7 @@ func (i *spaceIndexer) index(ctx context.Context, info smartblock.DocInfo, optio for _, o := range options { o(opts) } - err := i.objectStore.BindSpaceId(info.Space.Id(), info.Id) + err := i.storageService.BindSpaceID(info.Space.Id(), info.Id) if err != nil { log.Error("failed to bind space id", zap.Error(err), zap.String("id", info.Id)) return err diff --git a/core/publish/service.go b/core/publish/service.go index c9939db09..21dc2f50b 100644 --- a/core/publish/service.go +++ b/core/publish/service.go @@ -189,7 +189,7 @@ func (s *service) publishToPublishServer(ctx context.Context, spaceId, pageId, u return err } - version, err := s.evaluateDocumentVersion(ctx, spc, pageId, joinSpace) + version, err := s.evaluateDocumentVersion(spc, pageId, joinSpace) if err != nil { return err } @@ -380,12 +380,12 @@ func (s *service) extractInviteLink(ctx context.Context, spaceId string, joinSpa return inviteLink, nil } -func (s *service) evaluateDocumentVersion(ctx context.Context, spc clientspace.Space, pageId string, joinSpace bool) (string, error) { - treeStorage, err := spc.Storage().TreeStorage(ctx, pageId) +func (s *service) evaluateDocumentVersion(spc clientspace.Space, pageId string, joinSpace bool) (string, error) { + treeStorage, err := spc.Storage().TreeStorage(pageId) if err != nil { return "", err } - heads, err := treeStorage.Heads(ctx) + heads, err := treeStorage.Heads() if err != nil { return "", err } diff --git a/core/publish/service_test.go b/core/publish/service_test.go index 660b68118..a9aacf522 100644 --- a/core/publish/service_test.go +++ b/core/publish/service_test.go @@ -11,17 +11,15 @@ import ( "path/filepath" "testing" - anystore "github.com/anyproto/any-store" "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree/mock_objecttree" + "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" + "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" + "github.com/anyproto/any-sync/commonspace/spacestorage" + "github.com/anyproto/any-sync/commonspace/spacesyncproto" + "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/anyproto/anytype-publish-server/publishclient/publishapi" "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "go.uber.org/mock/gomock" - "golang.org/x/sys/unix" "github.com/anyproto/anytype-heart/core/anytype/account/mock_account" "github.com/anyproto/anytype-heart/core/block/cache/mock_cache" @@ -48,7 +46,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/threads" "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" "github.com/anyproto/anytype-heart/space/mock_space" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage/mock_anystorage" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider/mock_typeprovider" "github.com/anyproto/anytype-heart/tests/testutil" "github.com/anyproto/anytype-heart/util/pbtypes" @@ -138,7 +135,7 @@ func TestPublish(t *testing.T) { t.Run("success", func(t *testing.T) { // given isPersonal := true - spaceService, err := prepareSpaceService(t, isPersonal) + spaceService, err := prepaeSpaceService(t, isPersonal) objectTypeId := "customObjectType" expectedUri := "test" @@ -181,7 +178,7 @@ func TestPublish(t *testing.T) { t.Run("success with space sharing", func(t *testing.T) { // given isPersonal := false - spaceService, err := prepareSpaceService(t, isPersonal) + spaceService, err := prepaeSpaceService(t, isPersonal) objectTypeId := "customObjectType" expectedUri := "test" @@ -234,7 +231,7 @@ func TestPublish(t *testing.T) { }) t.Run("success with space sharing - invite not exists", func(t *testing.T) { isPersonal := false - spaceService, err := prepareSpaceService(t, isPersonal) + spaceService, err := prepaeSpaceService(t, isPersonal) objectTypeId := "customObjectType" expectedUri := "test" @@ -282,7 +279,7 @@ func TestPublish(t *testing.T) { t.Run("success for member", func(t *testing.T) { // given isPersonal := false - spaceService, err := prepareSpaceService(t, isPersonal) + spaceService, err := prepaeSpaceService(t, isPersonal) objectTypeId := "customObjectType" expectedUri := "test" @@ -340,7 +337,7 @@ func TestPublish(t *testing.T) { t.Run("internal error", func(t *testing.T) { // given isPersonal := true - spaceService, err := prepareSpaceService(t, isPersonal) + spaceService, err := prepaeSpaceService(t, isPersonal) objectTypeId := "customObjectType" expectedUri := "test" @@ -663,22 +660,28 @@ func TestService_PublishingList(t *testing.T) { }) } -var ctx = context.Background() - -func prepareSpaceService(t *testing.T, isPersonal bool) (*mock_space.MockService, error) { +func prepaeSpaceService(t *testing.T, isPersonal bool) (*mock_space.MockService, error) { spaceService := mock_space.NewMockService(t) space := mock_clientspace.NewMockSpace(t) - ctrl := gomock.NewController(t) space.EXPECT().IsPersonal().Return(isPersonal) space.EXPECT().Id().Return(spaceId) - st := mock_anystorage.NewMockClientSpaceStorage(t) - mockSt := mock_objecttree.NewMockStorage(ctrl) - st.EXPECT().TreeStorage(mock.Anything, mock.Anything).Return(mockSt, nil) - mockSt.EXPECT().Heads(gomock.Any()).Return([]string{"heads"}, nil) - space.EXPECT().Storage().Return(st) + storage, err := spacestorage.NewInMemorySpaceStorage(spacestorage.SpaceStorageCreatePayload{ + AclWithId: &consensusproto.RawRecordWithId{Id: "aclId"}, + SpaceHeaderWithId: &spacesyncproto.RawSpaceHeaderWithId{Id: spaceId}, + SpaceSettingsWithId: &treechangeproto.RawTreeChangeWithId{Id: "settingsId"}, + }, + ) + assert.NoError(t, err) + objectHeads := []string{"heads"} + _, err = storage.CreateTreeStorage(treestorage.TreeStorageCreatePayload{ + RootRawChange: &treechangeproto.RawTreeChangeWithId{Id: objectId}, + Heads: objectHeads, + }) + assert.NoError(t, err) + space.EXPECT().Storage().Return(storage) spaceService.EXPECT().Get(context.Background(), spaceId).Return(space, nil) - return spaceService, nil + return spaceService, err } func prepareExporter(t *testing.T, objectTypeId string, spaceService *mock_space.MockService) export.Export { @@ -892,22 +895,3 @@ func createTestFile(fileName string, size int64) error { file.Close() return nil } - -func createStore(ctx context.Context, t testing.TB) anystore.DB { - return createNamedStore(ctx, t, "changes.db") -} - -func createNamedStore(ctx context.Context, t testing.TB, name string) anystore.DB { - path := filepath.Join(t.TempDir(), name) - db, err := anystore.Open(ctx, path, nil) - require.NoError(t, err) - t.Cleanup(func() { - err := db.Close() - require.NoError(t, err) - unix.Rmdir(path) - }) - return objecttree.TestStore{ - DB: db, - Path: path, - } -} diff --git a/core/syncstatus/objectsyncstatus/syncstatus.go b/core/syncstatus/objectsyncstatus/syncstatus.go index f896cb035..a05873e80 100644 --- a/core/syncstatus/objectsyncstatus/syncstatus.go +++ b/core/syncstatus/objectsyncstatus/syncstatus.go @@ -94,7 +94,7 @@ func (s *syncStatusService) Init(a *app.App) (err error) { s.updateIntervalSecs = syncUpdateInterval s.updateTimeout = syncTimeout s.spaceId = sharedState.SpaceId - s.spaceSettingsId = spaceStorage.StateStorage().SettingsId() + s.spaceSettingsId = spaceStorage.SpaceSettingsId() s.periodicSync = periodicsync.NewPeriodicSync( s.updateIntervalSecs, s.updateTimeout, diff --git a/core/syncstatus/objectsyncstatus/syncstatus_test.go b/core/syncstatus/objectsyncstatus/syncstatus_test.go index c9dea692c..24307b6cd 100644 --- a/core/syncstatus/objectsyncstatus/syncstatus_test.go +++ b/core/syncstatus/objectsyncstatus/syncstatus_test.go @@ -5,7 +5,6 @@ import ( "testing" "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/headsync/statestorage/mock_statestorage" "github.com/anyproto/any-sync/commonspace/spacestate" "github.com/anyproto/any-sync/commonspace/spacestorage/mock_spacestorage" "github.com/anyproto/any-sync/nodeconf/mock_nodeconf" @@ -175,9 +174,7 @@ func newFixture(t *testing.T, spaceId string) *fixture { ctrl := gomock.NewController(t) service := mock_nodeconf.NewMockService(ctrl) storage := mock_spacestorage.NewMockSpaceStorage(ctrl) - stateStorage := mock_statestorage.NewMockStateStorage(ctrl) - storage.EXPECT().StateStorage().AnyTimes().Return(stateStorage) - stateStorage.EXPECT().SettingsId().AnyTimes().Return(testSpaceSettingsId) + storage.EXPECT().SpaceSettingsId().Return(testSpaceSettingsId) spaceState := &spacestate.SpaceState{SpaceId: spaceId} config := &config.Config{} diff --git a/core/util.go b/core/util.go index 78e4c747d..fe897d981 100644 --- a/core/util.go +++ b/core/util.go @@ -24,16 +24,10 @@ func (mw *Middleware) getResponseEvent(ctx session.Context) *pb.ResponseEvent { type errToCodeTuple[T ~int32] struct { err error code T - - checkErrorType any } func errToCode[T ~int32](err error, code T) errToCodeTuple[T] { - return errToCodeTuple[T]{err: err, code: code} -} - -func errTypeToCode[T ~int32](errTypeProto any, code T) errToCodeTuple[T] { - return errToCodeTuple[T]{code: code, checkErrorType: errTypeProto} + return errToCodeTuple[T]{err, code} } func mapErrorCode[T ~int32](err error, mappings ...errToCodeTuple[T]) T { @@ -41,15 +35,8 @@ func mapErrorCode[T ~int32](err error, mappings ...errToCodeTuple[T]) T { return 0 } for _, m := range mappings { - if m.err != nil { - if errors.Is(err, m.err) { - return m.code - } - } - if m.checkErrorType != nil { - if errors.As(err, m.checkErrorType) { - return m.code - } + if errors.Is(err, m.err) { + return m.code } } // Unknown error diff --git a/core/util_test.go b/core/util_test.go index 8034bec12..15e347107 100644 --- a/core/util_test.go +++ b/core/util_test.go @@ -8,20 +8,12 @@ import ( "github.com/stretchr/testify/assert" ) -type testErrorType struct { -} - -func (t testErrorType) Error() string { - return "error type!" -} - type testCode int32 func TestErrorCodeMapping(t *testing.T) { err1 := errors.New("err1") err2 := errors.New("err2") err3 := errors.New("err3") - err4 := testErrorType{} wrapped1 := errors.Join(err1, fmt.Errorf("description of error")) wrapped2 := fmt.Errorf("description of error: %w", err2) @@ -31,14 +23,12 @@ func TestErrorCodeMapping(t *testing.T) { errToCode(err1, testCode(2)), errToCode(err2, testCode(3)), errToCode(err3, testCode(4)), - errTypeToCode(&testErrorType{}, testCode(5)), ) } - assert.Equal(t, testCode(0), mapper(nil)) - assert.Equal(t, testCode(1), mapper(errors.New("unknown error"))) - assert.Equal(t, testCode(2), mapper(wrapped1)) - assert.Equal(t, testCode(3), mapper(wrapped2)) - assert.Equal(t, testCode(4), mapper(err3)) - assert.Equal(t, testCode(5), mapper(err4)) + assert.True(t, 0 == mapper(nil)) + assert.True(t, 1 == mapper(errors.New("unknown error"))) + assert.True(t, 2 == mapper(wrapped1)) + assert.True(t, 3 == mapper(wrapped2)) + assert.True(t, 4 == mapper(err3)) } diff --git a/docs/proto.md b/docs/proto.md index c556d8092..0b06c1d5b 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -87,14 +87,6 @@ - [Rpc.Account.LocalLink.SolveChallenge.Request](#anytype-Rpc-Account-LocalLink-SolveChallenge-Request) - [Rpc.Account.LocalLink.SolveChallenge.Response](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response) - [Rpc.Account.LocalLink.SolveChallenge.Response.Error](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response-Error) - - [Rpc.Account.Migrate](#anytype-Rpc-Account-Migrate) - - [Rpc.Account.Migrate.Request](#anytype-Rpc-Account-Migrate-Request) - - [Rpc.Account.Migrate.Response](#anytype-Rpc-Account-Migrate-Response) - - [Rpc.Account.Migrate.Response.Error](#anytype-Rpc-Account-Migrate-Response-Error) - - [Rpc.Account.MigrateCancel](#anytype-Rpc-Account-MigrateCancel) - - [Rpc.Account.MigrateCancel.Request](#anytype-Rpc-Account-MigrateCancel-Request) - - [Rpc.Account.MigrateCancel.Response](#anytype-Rpc-Account-MigrateCancel-Response) - - [Rpc.Account.MigrateCancel.Response.Error](#anytype-Rpc-Account-MigrateCancel-Response-Error) - [Rpc.Account.Move](#anytype-Rpc-Account-Move) - [Rpc.Account.Move.Request](#anytype-Rpc-Account-Move-Request) - [Rpc.Account.Move.Response](#anytype-Rpc-Account-Move-Response) @@ -1306,8 +1298,6 @@ - [Rpc.Account.EnableLocalNetworkSync.Response.Error.Code](#anytype-Rpc-Account-EnableLocalNetworkSync-Response-Error-Code) - [Rpc.Account.LocalLink.NewChallenge.Response.Error.Code](#anytype-Rpc-Account-LocalLink-NewChallenge-Response-Error-Code) - [Rpc.Account.LocalLink.SolveChallenge.Response.Error.Code](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response-Error-Code) - - [Rpc.Account.Migrate.Response.Error.Code](#anytype-Rpc-Account-Migrate-Response-Error-Code) - - [Rpc.Account.MigrateCancel.Response.Error.Code](#anytype-Rpc-Account-MigrateCancel-Response-Error-Code) - [Rpc.Account.Move.Response.Error.Code](#anytype-Rpc-Account-Move-Response-Error-Code) - [Rpc.Account.NetworkMode](#anytype-Rpc-Account-NetworkMode) - [Rpc.Account.Recover.Response.Error.Code](#anytype-Rpc-Account-Recover-Response-Error-Code) @@ -2043,8 +2033,6 @@ | WorkspaceSetInfo | [Rpc.Workspace.SetInfo.Request](#anytype-Rpc-Workspace-SetInfo-Request) | [Rpc.Workspace.SetInfo.Response](#anytype-Rpc-Workspace-SetInfo-Response) | | | WorkspaceExport | [Rpc.Workspace.Export.Request](#anytype-Rpc-Workspace-Export-Request) | [Rpc.Workspace.Export.Response](#anytype-Rpc-Workspace-Export-Response) | | | AccountRecover | [Rpc.Account.Recover.Request](#anytype-Rpc-Account-Recover-Request) | [Rpc.Account.Recover.Response](#anytype-Rpc-Account-Recover-Response) | Account *** | -| AccountMigrate | [Rpc.Account.Migrate.Request](#anytype-Rpc-Account-Migrate-Request) | [Rpc.Account.Migrate.Response](#anytype-Rpc-Account-Migrate-Response) | | -| AccountMigrateCancel | [Rpc.Account.MigrateCancel.Request](#anytype-Rpc-Account-MigrateCancel-Request) | [Rpc.Account.MigrateCancel.Response](#anytype-Rpc-Account-MigrateCancel-Response) | | | AccountCreate | [Rpc.Account.Create.Request](#anytype-Rpc-Account-Create-Request) | [Rpc.Account.Create.Response](#anytype-Rpc-Account-Create-Response) | | | AccountDelete | [Rpc.Account.Delete.Request](#anytype-Rpc-Account-Delete-Request) | [Rpc.Account.Delete.Response](#anytype-Rpc-Account-Delete-Response) | | | AccountRevertDeletion | [Rpc.Account.RevertDeletion.Request](#anytype-Rpc-Account-RevertDeletion-Request) | [Rpc.Account.RevertDeletion.Response](#anytype-Rpc-Account-RevertDeletion-Response) | | @@ -3490,119 +3478,6 @@ TODO: Remove this request if we do not need it, GO-1926 - - -### Rpc.Account.Migrate - - - - - - - - - -### Rpc.Account.Migrate.Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | Id of a selected account | -| rootPath | [string](#string) | | | - - - - - - - - -### Rpc.Account.Migrate.Response - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| error | [Rpc.Account.Migrate.Response.Error](#anytype-Rpc-Account-Migrate-Response-Error) | | | - - - - - - - - -### Rpc.Account.Migrate.Response.Error - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| code | [Rpc.Account.Migrate.Response.Error.Code](#anytype-Rpc-Account-Migrate-Response-Error-Code) | | | -| description | [string](#string) | | | - - - - - - - - -### Rpc.Account.MigrateCancel - - - - - - - - - -### Rpc.Account.MigrateCancel.Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [string](#string) | | Id of a selected account | - - - - - - - - -### Rpc.Account.MigrateCancel.Response - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| error | [Rpc.Account.MigrateCancel.Response.Error](#anytype-Rpc-Account-MigrateCancel-Response-Error) | | | - - - - - - - - -### Rpc.Account.MigrateCancel.Response.Error - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| code | [Rpc.Account.MigrateCancel.Response.Error.Code](#anytype-Rpc-Account-MigrateCancel-Response-Error-Code) | | | -| description | [string](#string) | | | - - - - - - ### Rpc.Account.Move @@ -21224,35 +21099,6 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er - - -### Rpc.Account.Migrate.Response.Error.Code - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NULL | 0 | No error | -| UNKNOWN_ERROR | 1 | Any other errors | -| BAD_INPUT | 2 | Id or root path is wrong | -| ACCOUNT_NOT_FOUND | 101 | | -| CANCELED | 102 | | -| NOT_ENOUGH_FREE_SPACE | 103 | TODO: [storage] Add specific error codes for migration problems | - - - - - -### Rpc.Account.MigrateCancel.Response.Error.Code - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NULL | 0 | No error | -| UNKNOWN_ERROR | 1 | Any other errors | -| BAD_INPUT | 2 | Id or root path is wrong | - - - ### Rpc.Account.Move.Response.Error.Code @@ -21348,7 +21194,6 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er | FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION | 110 | | | ACCOUNT_IS_DELETED | 111 | | | ACCOUNT_LOAD_IS_CANCELED | 112 | | -| ACCOUNT_STORE_NOT_MIGRATED | 113 | | | CONFIG_FILE_NOT_FOUND | 200 | | | CONFIG_FILE_INVALID | 201 | | | CONFIG_FILE_NETWORK_ID_MISMATCH | 202 | | diff --git a/go.mod b/go.mod index 59ad49171..4d5d80aa9 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.1.7 - github.com/anyproto/any-sync v0.6.0 + github.com/anyproto/any-sync v0.5.26 github.com/anyproto/anytype-publish-server/publishclient v0.0.0-20250131145601-de288583ff2a github.com/anyproto/go-chash v0.1.0 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 @@ -103,12 +103,11 @@ require ( go.uber.org/mock v0.5.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 + golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c golang.org/x/image v0.24.0 golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f golang.org/x/net v0.35.0 golang.org/x/oauth2 v0.26.0 - golang.org/x/sys v0.30.0 golang.org/x/text v0.22.0 google.golang.org/grpc v1.70.0 gopkg.in/Graylog2/go-gelf.v2 v2.0.0-20180125164251-1832d8546a9f @@ -116,6 +115,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 storj.io/drpc v0.0.34 zombiezen.com/go/sqlite v1.4.0 + ) require ( @@ -189,7 +189,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect + github.com/google/pprof v0.0.0-20250202011525-fc3143867406 // indirect github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c // indirect github.com/gorilla/css v1.0.1 // indirect github.com/gosimple/unidecode v1.0.1 // indirect @@ -217,12 +217,12 @@ require ( github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/libp2p/go-libp2p v0.38.2 // indirect + github.com/libp2p/go-libp2p v0.39.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/mailru/easyjson v0.7.6 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/miekg/dns v1.1.62 // indirect + github.com/miekg/dns v1.1.63 // indirect github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -282,14 +282,15 @@ require ( go.opentelemetry.io/otel/trace v1.32.0 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.33.0 // indirect - golang.org/x/mod v0.22.0 // indirect + golang.org/x/mod v0.23.0 // indirect golang.org/x/sync v0.11.0 // indirect + golang.org/x/sys v0.30.0 // indirect golang.org/x/term v0.29.0 // indirect golang.org/x/time v0.10.0 // indirect golang.org/x/tools v0.29.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect - google.golang.org/protobuf v1.36.2 // indirect + google.golang.org/protobuf v1.36.4 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect lukechampine.com/blake3 v1.3.0 // indirect diff --git a/go.sum b/go.sum index b4abb83e7..deb986d49 100644 --- a/go.sum +++ b/go.sum @@ -84,8 +84,8 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= github.com/anyproto/any-store v0.1.7 h1:E3DntI+JXo3h7v0WTUJWH+nm7G4MV0PNOXZ6SFzQ2OU= github.com/anyproto/any-store v0.1.7/go.mod h1:nbyRoJYOlvSWU1xDOrmgPP96UeoTf4eYZ9k+qqLK9k8= -github.com/anyproto/any-sync v0.6.0 h1:JDxOTUuzGCHaeyid64tVIahYySCuonOK8Gwpf8s8lJ0= -github.com/anyproto/any-sync v0.6.0/go.mod h1:GrVtVp1VWqWRyYErJVsJVUhb6yzcvelQ+HWOXZ4f0tc= +github.com/anyproto/any-sync v0.5.26 h1:JWcR/RFGQ22CYWrdh2Ain6uEWNePtYHCLs+LXsm8hhU= +github.com/anyproto/any-sync v0.5.26/go.mod h1:Ljftoz6/mCM/2wP2tK9H1/jtVAxfgqzYplBA4MbiUs0= github.com/anyproto/anytype-publish-server/publishclient v0.0.0-20250131145601-de288583ff2a h1:ZZM+0OUCQMWSLSflpkf0ZMVo3V76qEDDIXPpQOClNs0= github.com/anyproto/anytype-publish-server/publishclient v0.0.0-20250131145601-de288583ff2a/go.mod h1:4fkueCZcGniSMXkrwESO8zzERrh/L7WHimRNWecfGM0= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= @@ -483,8 +483,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= -github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250202011525-fc3143867406 h1:wlQI2cYY0BsWmmPPAnxfQ8SDW0S3Jasn+4B8kXFxprg= +github.com/google/pprof v0.0.0-20250202011525-fc3143867406/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -673,8 +673,8 @@ github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= -github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= +github.com/koron/go-ssdp v0.0.5 h1:E1iSMxIs4WqxTbIBLtmNBeOOC+1sCIXQeqTWVnpmwhk= +github.com/koron/go-ssdp v0.0.5/go.mod h1:Qm59B7hpKpDqfyRNWRNr00jGwLdXjDyZh6y7rH6VS0w= github.com/kovidgoyal/imaging v1.6.4 h1:K0idhRPXnRrJBKnBYcTfI1HTWSNDeAn7hYDvf9I0dCk= github.com/kovidgoyal/imaging v1.6.4/go.mod h1:bEIgsaZmXlvFfkv/CUxr9rJook6AQkJnpB5EPosRfRY= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -696,8 +696,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-flow-metrics v0.2.0 h1:EIZzjmeOE6c8Dav0sNv35vhZxATIXWZg6j/C08XmmDw= github.com/libp2p/go-flow-metrics v0.2.0/go.mod h1:st3qqfu8+pMfh+9Mzqb2GTiwrAGjIPszEjZmtksN8Jc= -github.com/libp2p/go-libp2p v0.38.2 h1:9SZQDOCi82A25An4kx30lEtr6kGTxrtoaDkbs5xrK5k= -github.com/libp2p/go-libp2p v0.38.2/go.mod h1:QWV4zGL3O9nXKdHirIC59DoRcZ446dfkjbOJ55NEWFo= +github.com/libp2p/go-libp2p v0.39.0 h1:LmrhDRud4eDkQCSB4l5NfoIFDqvDwAyANmfeYkgnKgs= +github.com/libp2p/go-libp2p v0.39.0/go.mod h1:3zicI8Lp7Isun+Afo/JOACUbbJqqR2owK6RQWFsVAbI= github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8= github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0= @@ -710,8 +710,8 @@ github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk= github.com/libp2p/go-nat v0.2.0/go.mod h1:3MJr+GRpRkyT65EpVPBstXLvOlAPzUVlG6Pwg9ohLJk= github.com/libp2p/go-netroute v0.2.2 h1:Dejd8cQ47Qx2kRABg6lPwknU7+nBnFRpko45/fFPuZ8= github.com/libp2p/go-netroute v0.2.2/go.mod h1:Rntq6jUAH0l9Gg17w5bFGhcC9a+vk4KNXs6s7IljKYE= -github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= -github.com/libp2p/go-yamux/v4 v4.0.1/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= +github.com/libp2p/go-yamux/v4 v4.0.2 h1:nrLh89LN/LEiqcFiqdKDRHjGstN300C1269K/EX0CPU= +github.com/libp2p/go-yamux/v4 v4.0.2/go.mod h1:C808cCRgOs1iBwY4S71T5oxgMxgLmqUw56qh4AeBW2o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8= @@ -751,8 +751,8 @@ github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwX github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= -github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= +github.com/miekg/dns v1.1.63 h1:8M5aAw6OMZfFXTT7K5V0Eu5YiiL8l7nUAkyN6C9YwaY= +github.com/miekg/dns v1.1.63/go.mod h1:6NGHfjhpmr5lt3XPLuyfDJi5AXbNIPM9PY6H6sF1Nfs= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/miolini/datacounter v1.0.3 h1:tanOZPVblGXQl7/bSZWoEM8l4KK83q24qwQLMrO/HOA= @@ -874,36 +874,46 @@ github.com/pion/datachannel v1.5.10 h1:ly0Q26K1i6ZkGf42W7D4hQYR90pZwzFOjTq5AuCKk github.com/pion/datachannel v1.5.10/go.mod h1:p/jJfC9arb29W7WrxyKbepTU20CFgyx5oLo8Rs4Py/M= github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk= github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE= +github.com/pion/dtls/v3 v3.0.4 h1:44CZekewMzfrn9pmGrj5BNnTMDCFwr+6sLH+cCuLM7U= +github.com/pion/dtls/v3 v3.0.4/go.mod h1:R373CsjxWqNPf6MEkfdy3aSe9niZvL/JaKlGeFphtMg= github.com/pion/ice/v2 v2.3.37 h1:ObIdaNDu1rCo7hObhs34YSBcO7fjslJMZV0ux+uZWh0= github.com/pion/ice/v2 v2.3.37/go.mod h1:mBF7lnigdqgtB+YHkaY/Y6s6tsyRyo4u4rPGRuOjUBQ= +github.com/pion/ice/v4 v4.0.6 h1:jmM9HwI9lfetQV/39uD0nY4y++XZNPhvzIPCb8EwxUM= +github.com/pion/ice/v4 v4.0.6/go.mod h1:y3M18aPhIxLlcO/4dn9X8LzLLSma84cx6emMSu14FGw= github.com/pion/interceptor v0.1.37 h1:aRA8Zpab/wE7/c0O3fh1PqY0AJI3fCSEM5lRWJVorwI= github.com/pion/interceptor v0.1.37/go.mod h1:JzxbJ4umVTlZAf+/utHzNesY8tmRkM2lVmkS82TTj8Y= -github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= -github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/logging v0.2.3 h1:gHuf0zpoh1GW67Nr6Gj4cv5Z9ZscU7g/EaoC/Ke/igI= +github.com/pion/logging v0.2.3/go.mod h1:z8YfknkquMe1csOrxK5kc+5/ZPAzMxbKLX5aXpbpC90= github.com/pion/mdns v0.0.12 h1:CiMYlY+O0azojWDmxdNr7ADGrnZ+V6Ilfner+6mSVK8= github.com/pion/mdns v0.0.12/go.mod h1:VExJjv8to/6Wqm1FXK+Ii/Z9tsVk/F5sD/N70cnYFbk= +github.com/pion/mdns/v2 v2.0.7 h1:c9kM8ewCgjslaAmicYMFQIde2H9/lrZpjBkN8VwoVtM= +github.com/pion/mdns/v2 v2.0.7/go.mod h1:vAdSYNAT0Jy3Ru0zl2YiW3Rm/fJCwIeM0nToenfOJKA= github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= github.com/pion/rtcp v1.2.15 h1:LZQi2JbdipLOj4eBjK4wlVoQWfrZbh3Q6eHtWtJBZBo= github.com/pion/rtcp v1.2.15/go.mod h1:jlGuAjHMEXwMUHK78RgX0UmEJFV4zUKOFHR7OP+D3D0= -github.com/pion/rtp v1.8.10 h1:puphjdbjPB+L+NFaVuZ5h6bt1g5q4kFIoI+r5q/g0CU= -github.com/pion/rtp v1.8.10/go.mod h1:8uMBJj32Pa1wwx8Fuv/AsFhn8jsgw+3rUC2PfoBZ8p4= +github.com/pion/rtp v1.8.11 h1:17xjnY5WO5hgO6SD3/NTIUPvSFw/PbLsIJyz1r1yNIk= +github.com/pion/rtp v1.8.11/go.mod h1:8uMBJj32Pa1wwx8Fuv/AsFhn8jsgw+3rUC2PfoBZ8p4= github.com/pion/sctp v1.8.35 h1:qwtKvNK1Wc5tHMIYgTDJhfZk7vATGVHhXbUDfHbYwzA= github.com/pion/sctp v1.8.35/go.mod h1:EcXP8zCYVTRy3W9xtOF7wJm1L1aXfKRQzaM33SjQlzg= -github.com/pion/sdp/v3 v3.0.9 h1:pX++dCHoHUwq43kuwf3PyJfHlwIj4hXA7Vrifiq0IJY= -github.com/pion/sdp/v3 v3.0.9/go.mod h1:B5xmvENq5IXJimIO4zfp6LAe1fD9N+kFv+V/1lOdz8M= -github.com/pion/srtp/v2 v2.0.20 h1:HNNny4s+OUmG280ETrCdgFndp4ufx3/uy85EawYEhTk= -github.com/pion/srtp/v2 v2.0.20/go.mod h1:0KJQjA99A6/a0DOVTu1PhDSw0CXF2jTkqOoMg3ODqdA= +github.com/pion/sdp/v3 v3.0.10 h1:6MChLE/1xYB+CjumMw+gZ9ufp2DPApuVSnDT8t5MIgA= +github.com/pion/sdp/v3 v3.0.10/go.mod h1:88GMahN5xnScv1hIMTqLdu/cOcUkj6a9ytbncwMCq2E= +github.com/pion/srtp/v3 v3.0.4 h1:2Z6vDVxzrX3UHEgrUyIGM4rRouoC7v+NiF1IHtp9B5M= +github.com/pion/srtp/v3 v3.0.4/go.mod h1:1Jx3FwDoxpRaTh1oRV8A/6G1BnFL+QI82eK4ms8EEJQ= github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= +github.com/pion/stun/v3 v3.0.0 h1:4h1gwhWLWuZWOJIJR9s2ferRO+W3zA/b6ijOI6mKzUw= +github.com/pion/stun/v3 v3.0.0/go.mod h1:HvCN8txt8mwi4FBvS3EmDghW6aQJ24T+y+1TKjB5jyU= github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q= github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E= github.com/pion/transport/v3 v3.0.7 h1:iRbMH05BzSNwhILHoBoAPxoB9xQgOaJk+591KC9P1o0= github.com/pion/transport/v3 v3.0.7/go.mod h1:YleKiTZ4vqNxVwh77Z0zytYi7rXHl7j6uPLGhhz9rwo= github.com/pion/turn/v2 v2.1.6 h1:Xr2niVsiPTB0FPtt+yAWKFUkU1eotQbGgpTIld4x1Gc= github.com/pion/turn/v2 v2.1.6/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= -github.com/pion/webrtc/v3 v3.3.5 h1:ZsSzaMz/i9nblPdiAkZoP+E6Kmjw+jnyq3bEmU3EtRg= -github.com/pion/webrtc/v3 v3.3.5/go.mod h1:liNa+E1iwyzyXqNUwvoMRNQ10x8h8FOeJKL8RkIbamE= +github.com/pion/turn/v4 v4.0.0 h1:qxplo3Rxa9Yg1xXDxxH8xaqcyGUtbHYw4QSCvmFWvhM= +github.com/pion/turn/v4 v4.0.0/go.mod h1:MuPDkm15nYSklKpN8vWJ9W2M0PlyQZqYt1McGuxG7mA= +github.com/pion/webrtc/v4 v4.0.8 h1:T1ZmnT9qxIJIt4d8XoiMOBrTClGHDDXNg9e/fh018Qc= +github.com/pion/webrtc/v4 v4.0.8/go.mod h1:HHBeUVBAC+j4ZFnYhovEFStF02Arb1EyD4G7e7HBTJw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -1207,8 +1217,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc= +golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1244,8 +1254,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1641,8 +1651,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= -google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM= +google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pb/commands.pb.go b/pb/commands.pb.go index eab79f6c2..fcb424199 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -1132,71 +1132,6 @@ func (RpcAccountRevertDeletionResponseErrorCode) EnumDescriptor() ([]byte, []int return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 4, 1, 0, 0} } -type RpcAccountMigrateResponseErrorCode int32 - -const ( - RpcAccountMigrateResponseError_NULL RpcAccountMigrateResponseErrorCode = 0 - RpcAccountMigrateResponseError_UNKNOWN_ERROR RpcAccountMigrateResponseErrorCode = 1 - RpcAccountMigrateResponseError_BAD_INPUT RpcAccountMigrateResponseErrorCode = 2 - RpcAccountMigrateResponseError_ACCOUNT_NOT_FOUND RpcAccountMigrateResponseErrorCode = 101 - RpcAccountMigrateResponseError_CANCELED RpcAccountMigrateResponseErrorCode = 102 - RpcAccountMigrateResponseError_NOT_ENOUGH_FREE_SPACE RpcAccountMigrateResponseErrorCode = 103 -) - -var RpcAccountMigrateResponseErrorCode_name = map[int32]string{ - 0: "NULL", - 1: "UNKNOWN_ERROR", - 2: "BAD_INPUT", - 101: "ACCOUNT_NOT_FOUND", - 102: "CANCELED", - 103: "NOT_ENOUGH_FREE_SPACE", -} - -var RpcAccountMigrateResponseErrorCode_value = map[string]int32{ - "NULL": 0, - "UNKNOWN_ERROR": 1, - "BAD_INPUT": 2, - "ACCOUNT_NOT_FOUND": 101, - "CANCELED": 102, - "NOT_ENOUGH_FREE_SPACE": 103, -} - -func (x RpcAccountMigrateResponseErrorCode) String() string { - return proto.EnumName(RpcAccountMigrateResponseErrorCode_name, int32(x)) -} - -func (RpcAccountMigrateResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0, 0} -} - -type RpcAccountMigrateCancelResponseErrorCode int32 - -const ( - RpcAccountMigrateCancelResponseError_NULL RpcAccountMigrateCancelResponseErrorCode = 0 - RpcAccountMigrateCancelResponseError_UNKNOWN_ERROR RpcAccountMigrateCancelResponseErrorCode = 1 - RpcAccountMigrateCancelResponseError_BAD_INPUT RpcAccountMigrateCancelResponseErrorCode = 2 -) - -var RpcAccountMigrateCancelResponseErrorCode_name = map[int32]string{ - 0: "NULL", - 1: "UNKNOWN_ERROR", - 2: "BAD_INPUT", -} - -var RpcAccountMigrateCancelResponseErrorCode_value = map[string]int32{ - "NULL": 0, - "UNKNOWN_ERROR": 1, - "BAD_INPUT": 2, -} - -func (x RpcAccountMigrateCancelResponseErrorCode) String() string { - return proto.EnumName(RpcAccountMigrateCancelResponseErrorCode_name, int32(x)) -} - -func (RpcAccountMigrateCancelResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0, 0} -} - type RpcAccountSelectResponseErrorCode int32 const ( @@ -1213,7 +1148,6 @@ const ( RpcAccountSelectResponseError_FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION RpcAccountSelectResponseErrorCode = 110 RpcAccountSelectResponseError_ACCOUNT_IS_DELETED RpcAccountSelectResponseErrorCode = 111 RpcAccountSelectResponseError_ACCOUNT_LOAD_IS_CANCELED RpcAccountSelectResponseErrorCode = 112 - RpcAccountSelectResponseError_ACCOUNT_STORE_NOT_MIGRATED RpcAccountSelectResponseErrorCode = 113 RpcAccountSelectResponseError_CONFIG_FILE_NOT_FOUND RpcAccountSelectResponseErrorCode = 200 RpcAccountSelectResponseError_CONFIG_FILE_INVALID RpcAccountSelectResponseErrorCode = 201 RpcAccountSelectResponseError_CONFIG_FILE_NETWORK_ID_MISMATCH RpcAccountSelectResponseErrorCode = 202 @@ -1233,7 +1167,6 @@ var RpcAccountSelectResponseErrorCode_name = map[int32]string{ 110: "FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION", 111: "ACCOUNT_IS_DELETED", 112: "ACCOUNT_LOAD_IS_CANCELED", - 113: "ACCOUNT_STORE_NOT_MIGRATED", 200: "CONFIG_FILE_NOT_FOUND", 201: "CONFIG_FILE_INVALID", 202: "CONFIG_FILE_NETWORK_ID_MISMATCH", @@ -1253,7 +1186,6 @@ var RpcAccountSelectResponseErrorCode_value = map[string]int32{ "FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION": 110, "ACCOUNT_IS_DELETED": 111, "ACCOUNT_LOAD_IS_CANCELED": 112, - "ACCOUNT_STORE_NOT_MIGRATED": 113, "CONFIG_FILE_NOT_FOUND": 200, "CONFIG_FILE_INVALID": 201, "CONFIG_FILE_NETWORK_ID_MISMATCH": 202, @@ -1264,7 +1196,7 @@ func (x RpcAccountSelectResponseErrorCode) String() string { } func (RpcAccountSelectResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0, 0} } type RpcAccountStopResponseErrorCode int32 @@ -1301,7 +1233,7 @@ func (x RpcAccountStopResponseErrorCode) String() string { } func (RpcAccountStopResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0, 0} } type RpcAccountMoveResponseErrorCode int32 @@ -1347,7 +1279,7 @@ func (x RpcAccountMoveResponseErrorCode) String() string { } func (RpcAccountMoveResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0, 0} } type RpcAccountConfigUpdateTimezones int32 @@ -1450,7 +1382,7 @@ func (x RpcAccountConfigUpdateTimezones) String() string { } func (RpcAccountConfigUpdateTimezones) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} } type RpcAccountConfigUpdateResponseErrorCode int32 @@ -1484,7 +1416,7 @@ func (x RpcAccountConfigUpdateResponseErrorCode) String() string { } func (RpcAccountConfigUpdateResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0, 0} } type RpcAccountRecoverFromLegacyExportResponseErrorCode int32 @@ -1515,7 +1447,7 @@ func (x RpcAccountRecoverFromLegacyExportResponseErrorCode) String() string { } func (RpcAccountRecoverFromLegacyExportResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0, 0} } type RpcAccountEnableLocalNetworkSyncResponseErrorCode int32 @@ -1546,7 +1478,7 @@ func (x RpcAccountEnableLocalNetworkSyncResponseErrorCode) String() string { } func (RpcAccountEnableLocalNetworkSyncResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1, 0, 0} } type RpcAccountChangeJsonApiAddrResponseErrorCode int32 @@ -1577,7 +1509,7 @@ func (x RpcAccountChangeJsonApiAddrResponseErrorCode) String() string { } func (RpcAccountChangeJsonApiAddrResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0, 0} } type RpcAccountChangeNetworkConfigAndRestartResponseErrorCode int32 @@ -1620,7 +1552,7 @@ func (x RpcAccountChangeNetworkConfigAndRestartResponseErrorCode) String() strin } func (RpcAccountChangeNetworkConfigAndRestartResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0, 0} } type RpcAccountLocalLinkNewChallengeResponseErrorCode int32 @@ -1654,7 +1586,7 @@ func (x RpcAccountLocalLinkNewChallengeResponseErrorCode) String() string { } func (RpcAccountLocalLinkNewChallengeResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1, 0, 0} } type RpcAccountLocalLinkSolveChallengeResponseErrorCode int32 @@ -1694,7 +1626,7 @@ func (x RpcAccountLocalLinkSolveChallengeResponseErrorCode) String() string { } func (RpcAccountLocalLinkSolveChallengeResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1, 0, 0} } type RpcWorkspaceGetCurrentResponseErrorCode int32 @@ -14978,366 +14910,6 @@ func (m *RpcAccountRevertDeletionResponseError) GetDescription() string { return "" } -type RpcAccountMigrate struct { -} - -func (m *RpcAccountMigrate) Reset() { *m = RpcAccountMigrate{} } -func (m *RpcAccountMigrate) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrate) ProtoMessage() {} -func (*RpcAccountMigrate) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5} -} -func (m *RpcAccountMigrate) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrate.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrate) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrate.Merge(m, src) -} -func (m *RpcAccountMigrate) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrate) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrate.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrate proto.InternalMessageInfo - -type RpcAccountMigrateRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - RootPath string `protobuf:"bytes,2,opt,name=rootPath,proto3" json:"rootPath,omitempty"` -} - -func (m *RpcAccountMigrateRequest) Reset() { *m = RpcAccountMigrateRequest{} } -func (m *RpcAccountMigrateRequest) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateRequest) ProtoMessage() {} -func (*RpcAccountMigrateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 0} -} -func (m *RpcAccountMigrateRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateRequest.Merge(m, src) -} -func (m *RpcAccountMigrateRequest) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateRequest proto.InternalMessageInfo - -func (m *RpcAccountMigrateRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *RpcAccountMigrateRequest) GetRootPath() string { - if m != nil { - return m.RootPath - } - return "" -} - -type RpcAccountMigrateResponse struct { - Error *RpcAccountMigrateResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` -} - -func (m *RpcAccountMigrateResponse) Reset() { *m = RpcAccountMigrateResponse{} } -func (m *RpcAccountMigrateResponse) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateResponse) ProtoMessage() {} -func (*RpcAccountMigrateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1} -} -func (m *RpcAccountMigrateResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateResponse.Merge(m, src) -} -func (m *RpcAccountMigrateResponse) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateResponse) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateResponse proto.InternalMessageInfo - -func (m *RpcAccountMigrateResponse) GetError() *RpcAccountMigrateResponseError { - if m != nil { - return m.Error - } - return nil -} - -type RpcAccountMigrateResponseError struct { - Code RpcAccountMigrateResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcAccountMigrateResponseErrorCode" json:"code,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` -} - -func (m *RpcAccountMigrateResponseError) Reset() { *m = RpcAccountMigrateResponseError{} } -func (m *RpcAccountMigrateResponseError) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateResponseError) ProtoMessage() {} -func (*RpcAccountMigrateResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0} -} -func (m *RpcAccountMigrateResponseError) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateResponseError.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateResponseError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateResponseError.Merge(m, src) -} -func (m *RpcAccountMigrateResponseError) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateResponseError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateResponseError.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateResponseError proto.InternalMessageInfo - -func (m *RpcAccountMigrateResponseError) GetCode() RpcAccountMigrateResponseErrorCode { - if m != nil { - return m.Code - } - return RpcAccountMigrateResponseError_NULL -} - -func (m *RpcAccountMigrateResponseError) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -type RpcAccountMigrateCancel struct { -} - -func (m *RpcAccountMigrateCancel) Reset() { *m = RpcAccountMigrateCancel{} } -func (m *RpcAccountMigrateCancel) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateCancel) ProtoMessage() {} -func (*RpcAccountMigrateCancel) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6} -} -func (m *RpcAccountMigrateCancel) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateCancel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateCancel.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateCancel) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateCancel.Merge(m, src) -} -func (m *RpcAccountMigrateCancel) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateCancel) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateCancel.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateCancel proto.InternalMessageInfo - -type RpcAccountMigrateCancelRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (m *RpcAccountMigrateCancelRequest) Reset() { *m = RpcAccountMigrateCancelRequest{} } -func (m *RpcAccountMigrateCancelRequest) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateCancelRequest) ProtoMessage() {} -func (*RpcAccountMigrateCancelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 0} -} -func (m *RpcAccountMigrateCancelRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateCancelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateCancelRequest.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateCancelRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateCancelRequest.Merge(m, src) -} -func (m *RpcAccountMigrateCancelRequest) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateCancelRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateCancelRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateCancelRequest proto.InternalMessageInfo - -func (m *RpcAccountMigrateCancelRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type RpcAccountMigrateCancelResponse struct { - Error *RpcAccountMigrateCancelResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` -} - -func (m *RpcAccountMigrateCancelResponse) Reset() { *m = RpcAccountMigrateCancelResponse{} } -func (m *RpcAccountMigrateCancelResponse) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateCancelResponse) ProtoMessage() {} -func (*RpcAccountMigrateCancelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1} -} -func (m *RpcAccountMigrateCancelResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateCancelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateCancelResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateCancelResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateCancelResponse.Merge(m, src) -} -func (m *RpcAccountMigrateCancelResponse) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateCancelResponse) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateCancelResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateCancelResponse proto.InternalMessageInfo - -func (m *RpcAccountMigrateCancelResponse) GetError() *RpcAccountMigrateCancelResponseError { - if m != nil { - return m.Error - } - return nil -} - -type RpcAccountMigrateCancelResponseError struct { - Code RpcAccountMigrateCancelResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcAccountMigrateCancelResponseErrorCode" json:"code,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` -} - -func (m *RpcAccountMigrateCancelResponseError) Reset() { *m = RpcAccountMigrateCancelResponseError{} } -func (m *RpcAccountMigrateCancelResponseError) String() string { return proto.CompactTextString(m) } -func (*RpcAccountMigrateCancelResponseError) ProtoMessage() {} -func (*RpcAccountMigrateCancelResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0} -} -func (m *RpcAccountMigrateCancelResponseError) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RpcAccountMigrateCancelResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_RpcAccountMigrateCancelResponseError.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *RpcAccountMigrateCancelResponseError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcAccountMigrateCancelResponseError.Merge(m, src) -} -func (m *RpcAccountMigrateCancelResponseError) XXX_Size() int { - return m.Size() -} -func (m *RpcAccountMigrateCancelResponseError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcAccountMigrateCancelResponseError.DiscardUnknown(m) -} - -var xxx_messageInfo_RpcAccountMigrateCancelResponseError proto.InternalMessageInfo - -func (m *RpcAccountMigrateCancelResponseError) GetCode() RpcAccountMigrateCancelResponseErrorCode { - if m != nil { - return m.Code - } - return RpcAccountMigrateCancelResponseError_NULL -} - -func (m *RpcAccountMigrateCancelResponseError) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - type RpcAccountSelect struct { } @@ -15345,7 +14917,7 @@ func (m *RpcAccountSelect) Reset() { *m = RpcAccountSelect{} } func (m *RpcAccountSelect) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelect) ProtoMessage() {} func (*RpcAccountSelect) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5} } func (m *RpcAccountSelect) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15391,7 +14963,7 @@ func (m *RpcAccountSelectRequest) Reset() { *m = RpcAccountSelectRequest func (m *RpcAccountSelectRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectRequest) ProtoMessage() {} func (*RpcAccountSelectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 0} } func (m *RpcAccountSelectRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15481,7 +15053,7 @@ func (m *RpcAccountSelectResponse) Reset() { *m = RpcAccountSelectRespon func (m *RpcAccountSelectResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectResponse) ProtoMessage() {} func (*RpcAccountSelectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1} } func (m *RpcAccountSelectResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15540,7 +15112,7 @@ func (m *RpcAccountSelectResponseError) Reset() { *m = RpcAccountSelectR func (m *RpcAccountSelectResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectResponseError) ProtoMessage() {} func (*RpcAccountSelectResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0} } func (m *RpcAccountSelectResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15590,7 +15162,7 @@ func (m *RpcAccountStop) Reset() { *m = RpcAccountStop{} } func (m *RpcAccountStop) String() string { return proto.CompactTextString(m) } func (*RpcAccountStop) ProtoMessage() {} func (*RpcAccountStop) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6} } func (m *RpcAccountStop) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15629,7 +15201,7 @@ func (m *RpcAccountStopRequest) Reset() { *m = RpcAccountStopRequest{} } func (m *RpcAccountStopRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopRequest) ProtoMessage() {} func (*RpcAccountStopRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 0} } func (m *RpcAccountStopRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15675,7 +15247,7 @@ func (m *RpcAccountStopResponse) Reset() { *m = RpcAccountStopResponse{} func (m *RpcAccountStopResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopResponse) ProtoMessage() {} func (*RpcAccountStopResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1} } func (m *RpcAccountStopResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15720,7 +15292,7 @@ func (m *RpcAccountStopResponseError) Reset() { *m = RpcAccountStopRespo func (m *RpcAccountStopResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopResponseError) ProtoMessage() {} func (*RpcAccountStopResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0} } func (m *RpcAccountStopResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15770,7 +15342,7 @@ func (m *RpcAccountMove) Reset() { *m = RpcAccountMove{} } func (m *RpcAccountMove) String() string { return proto.CompactTextString(m) } func (*RpcAccountMove) ProtoMessage() {} func (*RpcAccountMove) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7} } func (m *RpcAccountMove) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15809,7 +15381,7 @@ func (m *RpcAccountMoveRequest) Reset() { *m = RpcAccountMoveRequest{} } func (m *RpcAccountMoveRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveRequest) ProtoMessage() {} func (*RpcAccountMoveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 0} } func (m *RpcAccountMoveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15853,7 +15425,7 @@ func (m *RpcAccountMoveResponse) Reset() { *m = RpcAccountMoveResponse{} func (m *RpcAccountMoveResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveResponse) ProtoMessage() {} func (*RpcAccountMoveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1} } func (m *RpcAccountMoveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15898,7 +15470,7 @@ func (m *RpcAccountMoveResponseError) Reset() { *m = RpcAccountMoveRespo func (m *RpcAccountMoveResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveResponseError) ProtoMessage() {} func (*RpcAccountMoveResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0} } func (m *RpcAccountMoveResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15948,7 +15520,7 @@ func (m *RpcAccountConfigUpdate) Reset() { *m = RpcAccountConfigUpdate{} func (m *RpcAccountConfigUpdate) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdate) ProtoMessage() {} func (*RpcAccountConfigUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8} } func (m *RpcAccountConfigUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15985,7 +15557,7 @@ func (m *RpcAccountConfigUpdateRequest) Reset() { *m = RpcAccountConfigU func (m *RpcAccountConfigUpdateRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateRequest) ProtoMessage() {} func (*RpcAccountConfigUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} } func (m *RpcAccountConfigUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16029,7 +15601,7 @@ func (m *RpcAccountConfigUpdateResponse) Reset() { *m = RpcAccountConfig func (m *RpcAccountConfigUpdateResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateResponse) ProtoMessage() {} func (*RpcAccountConfigUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1} } func (m *RpcAccountConfigUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16074,7 +15646,7 @@ func (m *RpcAccountConfigUpdateResponseError) Reset() { *m = RpcAccountC func (m *RpcAccountConfigUpdateResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateResponseError) ProtoMessage() {} func (*RpcAccountConfigUpdateResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0} } func (m *RpcAccountConfigUpdateResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16124,7 +15696,7 @@ func (m *RpcAccountGetConfig) Reset() { *m = RpcAccountGetConfig{} } func (m *RpcAccountGetConfig) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfig) ProtoMessage() {} func (*RpcAccountGetConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9} } func (m *RpcAccountGetConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16160,7 +15732,7 @@ func (m *RpcAccountGetConfigGet) Reset() { *m = RpcAccountGetConfigGet{} func (m *RpcAccountGetConfigGet) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfigGet) ProtoMessage() {} func (*RpcAccountGetConfigGet) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0} } func (m *RpcAccountGetConfigGet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16196,7 +15768,7 @@ func (m *RpcAccountGetConfigGetRequest) Reset() { *m = RpcAccountGetConf func (m *RpcAccountGetConfigGetRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfigGetRequest) ProtoMessage() {} func (*RpcAccountGetConfigGetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0, 0} } func (m *RpcAccountGetConfigGetRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16232,7 +15804,7 @@ func (m *RpcAccountRecoverFromLegacyExport) Reset() { *m = RpcAccountRec func (m *RpcAccountRecoverFromLegacyExport) String() string { return proto.CompactTextString(m) } func (*RpcAccountRecoverFromLegacyExport) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExport) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10} } func (m *RpcAccountRecoverFromLegacyExport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16273,7 +15845,7 @@ func (m *RpcAccountRecoverFromLegacyExportRequest) Reset() { func (m *RpcAccountRecoverFromLegacyExportRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountRecoverFromLegacyExportRequest) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} } func (m *RpcAccountRecoverFromLegacyExportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16337,7 +15909,7 @@ func (m *RpcAccountRecoverFromLegacyExportResponse) String() string { } func (*RpcAccountRecoverFromLegacyExportResponse) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1} } func (m *RpcAccountRecoverFromLegacyExportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16400,7 +15972,7 @@ func (m *RpcAccountRecoverFromLegacyExportResponseError) String() string { } func (*RpcAccountRecoverFromLegacyExportResponseError) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0} } func (m *RpcAccountRecoverFromLegacyExportResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16450,7 +16022,7 @@ func (m *RpcAccountEnableLocalNetworkSync) Reset() { *m = RpcAccountEnab func (m *RpcAccountEnableLocalNetworkSync) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSync) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSync) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11} } func (m *RpcAccountEnableLocalNetworkSync) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16488,7 +16060,7 @@ func (m *RpcAccountEnableLocalNetworkSyncRequest) Reset() { func (m *RpcAccountEnableLocalNetworkSyncRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSyncRequest) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0} } func (m *RpcAccountEnableLocalNetworkSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16527,7 +16099,7 @@ func (m *RpcAccountEnableLocalNetworkSyncResponse) Reset() { func (m *RpcAccountEnableLocalNetworkSyncResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSyncResponse) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1} } func (m *RpcAccountEnableLocalNetworkSyncResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16576,7 +16148,7 @@ func (m *RpcAccountEnableLocalNetworkSyncResponseError) String() string { } func (*RpcAccountEnableLocalNetworkSyncResponseError) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1, 0} } func (m *RpcAccountEnableLocalNetworkSyncResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16626,7 +16198,7 @@ func (m *RpcAccountChangeJsonApiAddr) Reset() { *m = RpcAccountChangeJso func (m *RpcAccountChangeJsonApiAddr) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddr) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddr) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12} } func (m *RpcAccountChangeJsonApiAddr) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16663,7 +16235,7 @@ func (m *RpcAccountChangeJsonApiAddrRequest) Reset() { *m = RpcAccountCh func (m *RpcAccountChangeJsonApiAddrRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrRequest) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 0} } func (m *RpcAccountChangeJsonApiAddrRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16707,7 +16279,7 @@ func (m *RpcAccountChangeJsonApiAddrResponse) Reset() { *m = RpcAccountC func (m *RpcAccountChangeJsonApiAddrResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrResponse) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1} } func (m *RpcAccountChangeJsonApiAddrResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16754,7 +16326,7 @@ func (m *RpcAccountChangeJsonApiAddrResponseError) Reset() { func (m *RpcAccountChangeJsonApiAddrResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrResponseError) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0} } func (m *RpcAccountChangeJsonApiAddrResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16806,7 +16378,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestart) Reset() { func (m *RpcAccountChangeNetworkConfigAndRestart) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeNetworkConfigAndRestart) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestart) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13} } func (m *RpcAccountChangeNetworkConfigAndRestart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16848,7 +16420,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartRequest) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartRequest) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 0} } func (m *RpcAccountChangeNetworkConfigAndRestartRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16903,7 +16475,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartResponse) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartResponse) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1} } func (m *RpcAccountChangeNetworkConfigAndRestartResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16952,7 +16524,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartResponseError) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartResponseError) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0} } func (m *RpcAccountChangeNetworkConfigAndRestartResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17002,7 +16574,7 @@ func (m *RpcAccountLocalLink) Reset() { *m = RpcAccountLocalLink{} } func (m *RpcAccountLocalLink) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLink) ProtoMessage() {} func (*RpcAccountLocalLink) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14} } func (m *RpcAccountLocalLink) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17038,7 +16610,7 @@ func (m *RpcAccountLocalLinkNewChallenge) Reset() { *m = RpcAccountLocal func (m *RpcAccountLocalLinkNewChallenge) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallenge) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0} } func (m *RpcAccountLocalLinkNewChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17078,7 +16650,7 @@ func (m *RpcAccountLocalLinkNewChallengeRequest) Reset() { func (m *RpcAccountLocalLinkNewChallengeRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallengeRequest) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 0} } func (m *RpcAccountLocalLinkNewChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17132,7 +16704,7 @@ func (m *RpcAccountLocalLinkNewChallengeResponse) Reset() { func (m *RpcAccountLocalLinkNewChallengeResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallengeResponse) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1} } func (m *RpcAccountLocalLinkNewChallengeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17188,7 +16760,7 @@ func (m *RpcAccountLocalLinkNewChallengeResponseError) String() string { } func (*RpcAccountLocalLinkNewChallengeResponseError) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1, 0} } func (m *RpcAccountLocalLinkNewChallengeResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17238,7 +16810,7 @@ func (m *RpcAccountLocalLinkSolveChallenge) Reset() { *m = RpcAccountLoc func (m *RpcAccountLocalLinkSolveChallenge) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkSolveChallenge) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1} } func (m *RpcAccountLocalLinkSolveChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17278,7 +16850,7 @@ func (m *RpcAccountLocalLinkSolveChallengeRequest) Reset() { func (m *RpcAccountLocalLinkSolveChallengeRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkSolveChallengeRequest) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0} } func (m *RpcAccountLocalLinkSolveChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17335,7 +16907,7 @@ func (m *RpcAccountLocalLinkSolveChallengeResponse) String() string { } func (*RpcAccountLocalLinkSolveChallengeResponse) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1} } func (m *RpcAccountLocalLinkSolveChallengeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -17398,7 +16970,7 @@ func (m *RpcAccountLocalLinkSolveChallengeResponseError) String() string { } func (*RpcAccountLocalLinkSolveChallengeResponseError) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1, 0} } func (m *RpcAccountLocalLinkSolveChallengeResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -71900,8 +71472,6 @@ func init() { proto.RegisterEnum("anytype.RpcAccountRecoverResponseErrorCode", RpcAccountRecoverResponseErrorCode_name, RpcAccountRecoverResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountDeleteResponseErrorCode", RpcAccountDeleteResponseErrorCode_name, RpcAccountDeleteResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountRevertDeletionResponseErrorCode", RpcAccountRevertDeletionResponseErrorCode_name, RpcAccountRevertDeletionResponseErrorCode_value) - proto.RegisterEnum("anytype.RpcAccountMigrateResponseErrorCode", RpcAccountMigrateResponseErrorCode_name, RpcAccountMigrateResponseErrorCode_value) - proto.RegisterEnum("anytype.RpcAccountMigrateCancelResponseErrorCode", RpcAccountMigrateCancelResponseErrorCode_name, RpcAccountMigrateCancelResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountSelectResponseErrorCode", RpcAccountSelectResponseErrorCode_name, RpcAccountSelectResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountStopResponseErrorCode", RpcAccountStopResponseErrorCode_name, RpcAccountStopResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountMoveResponseErrorCode", RpcAccountMoveResponseErrorCode_name, RpcAccountMoveResponseErrorCode_value) @@ -72292,14 +71862,6 @@ func init() { proto.RegisterType((*RpcAccountRevertDeletionRequest)(nil), "anytype.Rpc.Account.RevertDeletion.Request") proto.RegisterType((*RpcAccountRevertDeletionResponse)(nil), "anytype.Rpc.Account.RevertDeletion.Response") proto.RegisterType((*RpcAccountRevertDeletionResponseError)(nil), "anytype.Rpc.Account.RevertDeletion.Response.Error") - proto.RegisterType((*RpcAccountMigrate)(nil), "anytype.Rpc.Account.Migrate") - proto.RegisterType((*RpcAccountMigrateRequest)(nil), "anytype.Rpc.Account.Migrate.Request") - proto.RegisterType((*RpcAccountMigrateResponse)(nil), "anytype.Rpc.Account.Migrate.Response") - proto.RegisterType((*RpcAccountMigrateResponseError)(nil), "anytype.Rpc.Account.Migrate.Response.Error") - proto.RegisterType((*RpcAccountMigrateCancel)(nil), "anytype.Rpc.Account.MigrateCancel") - proto.RegisterType((*RpcAccountMigrateCancelRequest)(nil), "anytype.Rpc.Account.MigrateCancel.Request") - proto.RegisterType((*RpcAccountMigrateCancelResponse)(nil), "anytype.Rpc.Account.MigrateCancel.Response") - proto.RegisterType((*RpcAccountMigrateCancelResponseError)(nil), "anytype.Rpc.Account.MigrateCancel.Response.Error") proto.RegisterType((*RpcAccountSelect)(nil), "anytype.Rpc.Account.Select") proto.RegisterType((*RpcAccountSelectRequest)(nil), "anytype.Rpc.Account.Select.Request") proto.RegisterType((*RpcAccountSelectResponse)(nil), "anytype.Rpc.Account.Select.Response") @@ -73429,1265 +72991,1258 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 20115 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x2b, 0x47, - 0x75, 0x2f, 0xba, 0xd5, 0x2d, 0x69, 0x34, 0x35, 0x8f, 0xad, 0xdd, 0xde, 0x7b, 0x7b, 0xbb, 0x6c, - 0xb6, 0x9d, 0x6d, 0x63, 0x1c, 0x63, 0xc6, 0xd8, 0x10, 0x82, 0x8d, 0x8d, 0xad, 0xd1, 0xf4, 0xcc, - 0xc8, 0x9e, 0x91, 0x26, 0x2d, 0xcd, 0xde, 0x38, 0xb9, 0xb9, 0x4a, 0x6f, 0xa9, 0x66, 0xa6, 0xbd, - 0x35, 0xdd, 0xa2, 0xbb, 0x67, 0xb6, 0x87, 0xfb, 0x9d, 0x7b, 0x42, 0x88, 0x79, 0x84, 0x10, 0x42, - 0x08, 0x49, 0x80, 0x00, 0xc1, 0xc4, 0x10, 0x20, 0xbc, 0x5f, 0x07, 0x08, 0x8f, 0xf0, 0x08, 0x8f, - 0x10, 0x42, 0x20, 0x84, 0x47, 0xe2, 0x2f, 0x10, 0x08, 0x21, 0xe7, 0x0b, 0x97, 0x4b, 0xee, 0x09, - 0x84, 0x1c, 0x38, 0xdc, 0xaf, 0xab, 0xaa, 0xbb, 0xab, 0x34, 0xea, 0x56, 0xb5, 0x46, 0xad, 0x31, - 0xe1, 0xfc, 0xd7, 0x5d, 0x5d, 0xbd, 0x6a, 0xd5, 0xfa, 0xad, 0xaa, 0x5a, 0x55, 0xb5, 0x6a, 0x15, - 0x38, 0xd5, 0x3d, 0x7f, 0x63, 0xd7, 0xb6, 0x5c, 0xcb, 0xb9, 0xb1, 0x65, 0x6d, 0x6f, 0xeb, 0x66, - 0xdb, 0x99, 0xc3, 0xef, 0xca, 0x84, 0x6e, 0xee, 0xb9, 0x7b, 0x5d, 0x04, 0xaf, 0xe9, 0x5e, 0xd8, - 0xbc, 0xb1, 0x63, 0x9c, 0xbf, 0xb1, 0x7b, 0xfe, 0xc6, 0x6d, 0xab, 0x8d, 0x3a, 0xfe, 0x0f, 0xf8, - 0x85, 0x66, 0x87, 0xd7, 0x45, 0xe5, 0xea, 0x58, 0x2d, 0xbd, 0xe3, 0xb8, 0x96, 0x8d, 0x68, 0xce, - 0x93, 0x61, 0x91, 0x68, 0x17, 0x99, 0xae, 0x4f, 0xe1, 0x8a, 0x4d, 0xcb, 0xda, 0xec, 0x20, 0xf2, - 0xed, 0xfc, 0xce, 0xc6, 0x8d, 0x8e, 0x6b, 0xef, 0xb4, 0x5c, 0xfa, 0xf5, 0xaa, 0xde, 0xaf, 0x6d, - 0xe4, 0xb4, 0x6c, 0xa3, 0xeb, 0x5a, 0x36, 0xc9, 0x71, 0xe6, 0x47, 0x0f, 0x14, 0x80, 0xac, 0x75, - 0x5b, 0xf0, 0xbb, 0x13, 0x40, 0x2e, 0x75, 0xbb, 0xf0, 0xa3, 0x12, 0x00, 0x4b, 0xc8, 0x3d, 0x8b, - 0x6c, 0xc7, 0xb0, 0x4c, 0x78, 0x14, 0x4c, 0x68, 0xe8, 0xa9, 0x3b, 0xc8, 0x71, 0x6f, 0xcd, 0x3e, - 0xfb, 0x1b, 0x72, 0x06, 0x3e, 0x28, 0x81, 0x82, 0x86, 0x9c, 0xae, 0x65, 0x3a, 0x48, 0xb9, 0x13, - 0xe4, 0x90, 0x6d, 0x5b, 0xf6, 0xa9, 0xcc, 0x55, 0x99, 0xeb, 0xa6, 0x6e, 0xbe, 0x7e, 0x8e, 0x56, - 0x7f, 0x4e, 0xeb, 0xb6, 0xe6, 0x4a, 0xdd, 0xee, 0x5c, 0x48, 0x69, 0xce, 0xff, 0x69, 0x4e, 0xf5, - 0xfe, 0xd0, 0xc8, 0x8f, 0xca, 0x29, 0x30, 0xb1, 0x4b, 0x32, 0x9c, 0x92, 0xae, 0xca, 0x5c, 0x37, - 0xa9, 0xf9, 0xaf, 0xde, 0x97, 0x36, 0x72, 0x75, 0xa3, 0xe3, 0x9c, 0x92, 0xc9, 0x17, 0xfa, 0x0a, - 0x1f, 0xc8, 0x80, 0x1c, 0x26, 0xa2, 0x94, 0x41, 0xb6, 0x65, 0xb5, 0x11, 0x2e, 0x7e, 0xf6, 0xe6, - 0x1b, 0xc5, 0x8b, 0x9f, 0x2b, 0x5b, 0x6d, 0xa4, 0xe1, 0x9f, 0x95, 0xab, 0xc0, 0x94, 0x2f, 0x96, - 0x90, 0x0d, 0x36, 0xe9, 0xcc, 0xcd, 0x20, 0xeb, 0xe5, 0x57, 0x0a, 0x20, 0x5b, 0x5d, 0x5f, 0x59, - 0x29, 0x1e, 0x51, 0x8e, 0x81, 0x99, 0xf5, 0xea, 0xdd, 0xd5, 0xda, 0xb9, 0x6a, 0x53, 0xd5, 0xb4, - 0x9a, 0x56, 0xcc, 0x28, 0x33, 0x60, 0x72, 0xbe, 0xb4, 0xd0, 0xac, 0x54, 0xd7, 0xd6, 0x1b, 0x45, - 0x09, 0xbe, 0x5c, 0x06, 0xb3, 0x75, 0xe4, 0x2e, 0xa0, 0x5d, 0xa3, 0x85, 0xea, 0xae, 0xee, 0x22, - 0xf8, 0xfc, 0x4c, 0x20, 0x4c, 0x65, 0xdd, 0x2b, 0x34, 0xf8, 0x44, 0x2b, 0xf0, 0xb8, 0x7d, 0x15, - 0xe0, 0x29, 0xcc, 0xd1, 0xbf, 0xe7, 0x98, 0x34, 0x8d, 0xa5, 0x73, 0xe6, 0x31, 0x60, 0x8a, 0xf9, - 0xa6, 0xcc, 0x02, 0x30, 0x5f, 0x2a, 0xdf, 0xbd, 0xa4, 0xd5, 0xd6, 0xab, 0x0b, 0xc5, 0x23, 0xde, - 0xfb, 0x62, 0x4d, 0x53, 0xe9, 0x7b, 0x06, 0x7e, 0x3f, 0xc3, 0x80, 0xb9, 0xc0, 0x83, 0x39, 0x37, - 0x98, 0x99, 0x3e, 0x80, 0xc2, 0x57, 0x07, 0xe0, 0x2c, 0x71, 0xe0, 0x3c, 0x2e, 0x19, 0xb9, 0xf4, - 0x01, 0xba, 0x5f, 0x02, 0x85, 0xfa, 0xd6, 0x8e, 0xdb, 0xb6, 0x2e, 0x9a, 0x70, 0x32, 0x40, 0x06, - 0x7e, 0x8b, 0x95, 0xc9, 0x93, 0x79, 0x99, 0x5c, 0xb7, 0xbf, 0x12, 0x94, 0x42, 0x84, 0x34, 0xfe, - 0x20, 0x90, 0x46, 0x89, 0x93, 0xc6, 0x63, 0x44, 0x09, 0xa5, 0x2f, 0x87, 0x97, 0x3c, 0x11, 0xe4, - 0xea, 0x5d, 0xbd, 0x85, 0xe0, 0xa7, 0x64, 0x30, 0xbd, 0x82, 0xf4, 0x5d, 0x54, 0xea, 0x76, 0x6d, - 0x6b, 0x17, 0xc1, 0x72, 0xa8, 0xaf, 0xa7, 0xc0, 0x84, 0xe3, 0x65, 0xaa, 0xb4, 0x71, 0x0d, 0x26, - 0x35, 0xff, 0x55, 0x39, 0x0d, 0x80, 0xd1, 0x46, 0xa6, 0x6b, 0xb8, 0x06, 0x72, 0x4e, 0x49, 0x57, - 0xc9, 0xd7, 0x4d, 0x6a, 0x4c, 0x0a, 0xfc, 0xae, 0x24, 0xaa, 0x63, 0x98, 0x8b, 0x39, 0x96, 0x83, - 0x08, 0xa9, 0xbe, 0x4a, 0x12, 0xd1, 0xb1, 0x81, 0xe4, 0x92, 0xc9, 0xf6, 0x8d, 0x99, 0xe4, 0xc2, - 0xf5, 0x72, 0x54, 0x6b, 0xcd, 0xfa, 0x7a, 0x79, 0xb9, 0x59, 0x5f, 0x2b, 0x95, 0xd5, 0x22, 0x52, - 0x8e, 0x83, 0x22, 0x7e, 0x6c, 0x56, 0xea, 0xcd, 0x05, 0x75, 0x45, 0x6d, 0xa8, 0x0b, 0xc5, 0x0d, - 0x45, 0x01, 0xb3, 0x9a, 0xfa, 0x73, 0xeb, 0x6a, 0xbd, 0xd1, 0x5c, 0x2c, 0x55, 0x56, 0xd4, 0x85, - 0xe2, 0xa6, 0xf7, 0xf3, 0x4a, 0x65, 0xb5, 0xd2, 0x68, 0x6a, 0x6a, 0xa9, 0xbc, 0xac, 0x2e, 0x14, - 0xb7, 0x94, 0x4b, 0xc1, 0x25, 0xd5, 0x5a, 0xb3, 0xb4, 0xb6, 0xa6, 0xd5, 0xce, 0xaa, 0x4d, 0xfa, - 0x47, 0xbd, 0x68, 0x90, 0x82, 0x1a, 0xcd, 0xfa, 0x72, 0x49, 0x53, 0x4b, 0xf3, 0x2b, 0x6a, 0xf1, - 0x5e, 0xf8, 0x0c, 0x19, 0xcc, 0xac, 0xea, 0x17, 0x50, 0x7d, 0x4b, 0xb7, 0x91, 0x7e, 0xbe, 0x83, - 0xe0, 0xd5, 0x02, 0x78, 0xc2, 0x4f, 0xb1, 0x78, 0xa9, 0x3c, 0x5e, 0x37, 0xf6, 0x11, 0x30, 0x57, - 0x44, 0x04, 0x60, 0xff, 0x1e, 0x34, 0x83, 0x65, 0x0e, 0xb0, 0xc7, 0x27, 0xa4, 0x97, 0x0c, 0xb1, - 0x5f, 0x79, 0x18, 0x20, 0x06, 0x1f, 0x92, 0xc1, 0x6c, 0xc5, 0xdc, 0x35, 0x5c, 0xb4, 0x84, 0x4c, - 0x64, 0x7b, 0xe3, 0x80, 0x10, 0x0c, 0x0f, 0xca, 0x0c, 0x0c, 0x8b, 0x3c, 0x0c, 0x8f, 0xed, 0x23, - 0x36, 0xbe, 0x8c, 0x88, 0xd1, 0xf6, 0x0a, 0x30, 0x69, 0xe0, 0x7c, 0x65, 0xa3, 0x4d, 0x25, 0x16, - 0x26, 0x28, 0xd7, 0x80, 0x19, 0xf2, 0xb2, 0x68, 0x74, 0xd0, 0xdd, 0x68, 0x8f, 0x8e, 0xbb, 0x7c, - 0x22, 0xfc, 0xf5, 0xa0, 0xf1, 0x55, 0x38, 0x2c, 0x7f, 0x26, 0x29, 0x53, 0xc9, 0xc0, 0x7c, 0xd1, - 0xc3, 0xa1, 0xf9, 0xed, 0x6b, 0x65, 0x06, 0xfc, 0xa1, 0x04, 0xa6, 0xea, 0xae, 0xd5, 0xf5, 0x54, - 0xd6, 0x30, 0x37, 0xc5, 0xc0, 0xfd, 0x38, 0xdb, 0xc6, 0xca, 0x3c, 0xb8, 0x8f, 0xe9, 0x23, 0x47, - 0xa6, 0x80, 0x88, 0x16, 0xf6, 0xdd, 0xa0, 0x85, 0x2d, 0x72, 0xa8, 0xdc, 0x9c, 0x88, 0xda, 0x8f, - 0x61, 0xfb, 0x7a, 0x91, 0x0c, 0x8a, 0xbe, 0x9a, 0xb9, 0xe5, 0x1d, 0xdb, 0x46, 0xa6, 0x2b, 0x06, - 0xc2, 0xdf, 0xb2, 0x20, 0x2c, 0xf3, 0x20, 0xdc, 0x1c, 0xa3, 0xcc, 0x7e, 0x29, 0x29, 0xb6, 0xb1, - 0x0f, 0x06, 0x68, 0xde, 0xcd, 0xa1, 0xf9, 0xb3, 0xc9, 0xd9, 0x4a, 0x06, 0xe9, 0xf2, 0x10, 0x88, - 0x1e, 0x07, 0x45, 0x6f, 0x4c, 0x2a, 0x37, 0x2a, 0x67, 0xd5, 0x66, 0xa5, 0x7a, 0xb6, 0xd2, 0x50, - 0x8b, 0x08, 0xbe, 0x50, 0x06, 0xd3, 0x84, 0x35, 0x0d, 0xed, 0x5a, 0x17, 0x04, 0x7b, 0xbd, 0x87, - 0x12, 0x1a, 0x0b, 0x6c, 0x09, 0x11, 0x2d, 0xe3, 0xd7, 0x12, 0x18, 0x0b, 0x31, 0xe4, 0x1e, 0x4e, - 0xbd, 0xd5, 0xbe, 0x66, 0xb0, 0xd9, 0xa7, 0xb5, 0xf4, 0xed, 0xad, 0x5e, 0x94, 0x05, 0x80, 0x54, - 0xf2, 0xac, 0x81, 0x2e, 0xc2, 0xd5, 0x10, 0x13, 0x4e, 0x6d, 0x33, 0x03, 0xd5, 0x56, 0xea, 0xa7, - 0xb6, 0xef, 0x62, 0xc7, 0xac, 0x79, 0x1e, 0xbd, 0x1b, 0x22, 0xc5, 0xed, 0x71, 0x12, 0x3d, 0x3b, - 0xf4, 0x15, 0x45, 0xe2, 0xad, 0xce, 0x2b, 0xc0, 0x24, 0x7e, 0xac, 0xea, 0xdb, 0x88, 0xb6, 0xa1, - 0x30, 0x41, 0x39, 0x03, 0xa6, 0x49, 0xc6, 0x96, 0x65, 0x7a, 0xf5, 0xc9, 0xe2, 0x0c, 0x5c, 0x9a, - 0x07, 0x62, 0xcb, 0x46, 0xba, 0x6b, 0xd9, 0x98, 0x46, 0x8e, 0x80, 0xc8, 0x24, 0xc1, 0x6f, 0x06, - 0xad, 0x50, 0xe5, 0x34, 0xe7, 0xa6, 0x24, 0x55, 0x49, 0xa6, 0x37, 0xbb, 0xc3, 0xb5, 0x3f, 0xd2, - 0xea, 0x9a, 0x1e, 0xda, 0x8b, 0x78, 0x6a, 0x87, 0x94, 0x93, 0x40, 0xa1, 0xa9, 0x5e, 0xde, 0x72, - 0xad, 0xda, 0x50, 0xab, 0x8d, 0xe2, 0x46, 0x5f, 0x8d, 0xda, 0x84, 0xaf, 0xca, 0x82, 0xec, 0x5d, - 0x96, 0x61, 0xc2, 0xfb, 0x33, 0x9c, 0x4a, 0x98, 0xc8, 0xbd, 0x68, 0xd9, 0x17, 0x82, 0x86, 0x1a, - 0x26, 0xc4, 0x63, 0x13, 0xaa, 0x92, 0x3c, 0x50, 0x95, 0xb2, 0xfd, 0x54, 0xe9, 0xb7, 0x58, 0x55, - 0xba, 0x8d, 0x57, 0xa5, 0x6b, 0xfb, 0xc8, 0xdf, 0x63, 0x3e, 0xa2, 0x03, 0xf8, 0x58, 0xd0, 0x01, - 0xdc, 0xc1, 0xc1, 0xf8, 0x68, 0x31, 0x32, 0xc9, 0x00, 0xfc, 0x72, 0xaa, 0x0d, 0xbf, 0x1f, 0xd4, - 0x9b, 0x11, 0x50, 0x6f, 0xf5, 0xe9, 0x13, 0x8c, 0xfd, 0x5d, 0xc7, 0xbd, 0xfb, 0xbb, 0x89, 0x0b, - 0xca, 0x09, 0x70, 0x6c, 0xa1, 0xb2, 0xb8, 0xa8, 0x6a, 0x6a, 0xb5, 0xd1, 0xac, 0xaa, 0x8d, 0x73, - 0x35, 0xed, 0xee, 0x62, 0x07, 0x3e, 0x20, 0x03, 0xe0, 0x49, 0xa8, 0xac, 0x9b, 0x2d, 0xd4, 0x11, - 0xeb, 0xd1, 0xff, 0x1f, 0x29, 0x59, 0x9f, 0x10, 0xd2, 0x8f, 0x80, 0xf3, 0x65, 0x92, 0x78, 0xab, - 0x8c, 0x24, 0x96, 0x0c, 0xd4, 0xd7, 0x3d, 0x1c, 0x6c, 0xcf, 0x4b, 0xc0, 0x51, 0x9f, 0x1e, 0xcd, - 0xde, 0x7f, 0xda, 0xf7, 0xa6, 0x2c, 0x98, 0xa5, 0xb0, 0xf8, 0xf3, 0xf8, 0x67, 0x67, 0x44, 0x26, - 0xf2, 0x10, 0x14, 0xe8, 0xb4, 0xdd, 0xef, 0xde, 0x83, 0x77, 0x65, 0x09, 0x4c, 0x75, 0x91, 0xbd, - 0x6d, 0x38, 0x8e, 0x61, 0x99, 0x64, 0x41, 0x6e, 0xf6, 0xe6, 0x47, 0x06, 0x12, 0xc7, 0x6b, 0x97, - 0x73, 0x6b, 0xba, 0xed, 0x1a, 0x2d, 0xa3, 0xab, 0x9b, 0xee, 0x5a, 0x98, 0x59, 0x63, 0xff, 0x84, - 0x2f, 0x48, 0x38, 0xad, 0xe1, 0x6b, 0x12, 0xa1, 0x12, 0x7f, 0x92, 0x60, 0x4a, 0x12, 0x4b, 0x30, - 0x99, 0x5a, 0x7c, 0x34, 0x55, 0xb5, 0xe8, 0x83, 0xf7, 0xa6, 0x72, 0x19, 0x38, 0x51, 0xa9, 0x96, - 0x6b, 0x9a, 0xa6, 0x96, 0x1b, 0xcd, 0x35, 0x55, 0x5b, 0xad, 0xd4, 0xeb, 0x95, 0x5a, 0xb5, 0x7e, - 0x90, 0xd6, 0x0e, 0x3f, 0x29, 0x07, 0x1a, 0xb3, 0x80, 0x5a, 0x1d, 0xc3, 0x44, 0xf0, 0x8e, 0x03, - 0x2a, 0x0c, 0xbf, 0xea, 0x23, 0x8e, 0x33, 0x2d, 0x3f, 0x02, 0xe7, 0x57, 0x26, 0xc7, 0xb9, 0x3f, - 0xc1, 0xff, 0xc4, 0xcd, 0xff, 0x21, 0x19, 0x1c, 0x63, 0x1a, 0xa2, 0x86, 0xb6, 0x47, 0xb6, 0x92, - 0xf7, 0x2b, 0x6c, 0xdb, 0xad, 0xf0, 0x98, 0xf6, 0xb3, 0xa6, 0xf7, 0xb1, 0x11, 0x01, 0xeb, 0xeb, - 0x02, 0x58, 0x57, 0x38, 0x58, 0x9f, 0x38, 0x04, 0xcd, 0x64, 0xc8, 0xbe, 0x39, 0x55, 0x64, 0x2f, - 0x03, 0x27, 0xd6, 0x4a, 0x5a, 0xa3, 0x52, 0xae, 0xac, 0x95, 0xbc, 0x71, 0x94, 0x19, 0xb2, 0x23, - 0xcc, 0x75, 0x1e, 0xf4, 0xbe, 0xf8, 0x7e, 0x20, 0x0b, 0xae, 0xe8, 0xdf, 0xd1, 0x96, 0xb7, 0x74, - 0x73, 0x13, 0x41, 0x43, 0x04, 0xea, 0x05, 0x30, 0xd1, 0xc2, 0xd9, 0x09, 0xce, 0xec, 0xd6, 0x4d, - 0x4c, 0x5f, 0x4e, 0x4a, 0xd0, 0xfc, 0x5f, 0xe1, 0xdb, 0x58, 0x85, 0x68, 0xf0, 0x0a, 0xf1, 0xe4, - 0x78, 0xf0, 0xf6, 0xf1, 0x1d, 0xa1, 0x1b, 0x9f, 0x09, 0x74, 0xe3, 0x1c, 0xa7, 0x1b, 0xe5, 0x83, - 0x91, 0x4f, 0xa6, 0x26, 0x7f, 0xfe, 0x70, 0xe8, 0x00, 0x22, 0xb5, 0xc9, 0x88, 0x1e, 0x15, 0xfa, - 0x76, 0xf7, 0xaf, 0x90, 0x41, 0x7e, 0x01, 0x75, 0x90, 0xe8, 0x4a, 0xe4, 0xb7, 0x25, 0xd1, 0x0d, - 0x11, 0x02, 0x03, 0xa1, 0x1d, 0xbd, 0x3a, 0xe2, 0x1a, 0xdb, 0xc8, 0x71, 0xf5, 0xed, 0x2e, 0x16, - 0xb5, 0xac, 0x85, 0x09, 0xf0, 0x57, 0x25, 0x91, 0xed, 0x92, 0x98, 0x62, 0xfe, 0x73, 0xac, 0x29, - 0x7e, 0x4e, 0x02, 0x85, 0x3a, 0x72, 0x6b, 0x76, 0x1b, 0xd9, 0xb0, 0x1e, 0x62, 0x74, 0x15, 0x98, - 0xc2, 0xa0, 0x78, 0xd3, 0xcc, 0x00, 0x27, 0x36, 0x49, 0xb9, 0x16, 0xcc, 0x06, 0xaf, 0xf8, 0x77, - 0xda, 0x8d, 0xf7, 0xa4, 0xc2, 0xef, 0x64, 0x44, 0x77, 0x71, 0xe9, 0x92, 0x21, 0xe5, 0x26, 0xa2, - 0x95, 0x8a, 0xed, 0xc8, 0xc6, 0x92, 0x4a, 0x7f, 0xa3, 0xeb, 0x2d, 0x12, 0x00, 0xeb, 0xa6, 0xe3, - 0xcb, 0xf5, 0xd1, 0x09, 0xe4, 0x0a, 0xff, 0x2d, 0x93, 0x6c, 0x16, 0x13, 0x96, 0x13, 0x21, 0xb1, - 0x3f, 0x4c, 0xb0, 0xb6, 0x10, 0x49, 0x2c, 0x7d, 0x99, 0x7d, 0x6d, 0x16, 0xe4, 0xcf, 0xe9, 0x9d, - 0x0e, 0x72, 0xe1, 0xd7, 0x25, 0x90, 0x2f, 0xdb, 0x48, 0x77, 0x11, 0x2b, 0x3a, 0x08, 0x0a, 0xb6, - 0x65, 0xb9, 0x6b, 0xba, 0xbb, 0x45, 0xe5, 0x16, 0xbc, 0x53, 0x87, 0x81, 0x3f, 0x66, 0xbb, 0x8f, - 0x3b, 0x78, 0xd1, 0xfd, 0x34, 0x57, 0x5b, 0x52, 0xd0, 0x1c, 0x29, 0x24, 0xa2, 0xff, 0x80, 0xa0, - 0xb0, 0x6d, 0xa2, 0x6d, 0xcb, 0x34, 0x5a, 0xbe, 0xcd, 0xe9, 0xbf, 0xc3, 0x0f, 0x05, 0x32, 0x9d, - 0xe7, 0x64, 0x3a, 0x27, 0x5c, 0x4a, 0x32, 0x81, 0xd6, 0x87, 0xe8, 0x3d, 0xae, 0x04, 0x97, 0x93, - 0xce, 0xa0, 0xd9, 0xa8, 0x35, 0xcb, 0x9a, 0x5a, 0x6a, 0xa8, 0xcd, 0x95, 0x5a, 0xb9, 0xb4, 0xd2, - 0xd4, 0xd4, 0xb5, 0x5a, 0x11, 0xc1, 0x7f, 0x92, 0x3c, 0xe1, 0xb6, 0xac, 0x5d, 0x64, 0xc3, 0x25, - 0x21, 0x39, 0xc7, 0xc9, 0x84, 0x62, 0xf0, 0x5b, 0xc2, 0x4e, 0x1b, 0x54, 0x3a, 0x94, 0x83, 0x08, - 0xe5, 0xfd, 0xb0, 0x50, 0x73, 0x8f, 0x25, 0xf5, 0x30, 0x90, 0xf4, 0xff, 0x90, 0xc0, 0x44, 0xd9, - 0x32, 0x77, 0x91, 0xed, 0xb2, 0xf3, 0x1d, 0x56, 0x9a, 0x19, 0x5e, 0x9a, 0xde, 0x20, 0x89, 0x4c, - 0xd7, 0xb6, 0xba, 0xfe, 0x84, 0xc7, 0x7f, 0x85, 0xaf, 0x49, 0x2a, 0x61, 0x5a, 0x72, 0xf4, 0xc2, - 0x67, 0xff, 0x82, 0x38, 0xf6, 0xe4, 0x9e, 0x06, 0xf0, 0x40, 0x12, 0x5c, 0xfa, 0x33, 0x90, 0x7e, - 0x97, 0xf2, 0x15, 0x19, 0xcc, 0x90, 0xc6, 0x57, 0x47, 0xd8, 0x42, 0x83, 0x35, 0x76, 0xc9, 0xb1, - 0x47, 0xf8, 0xcb, 0x47, 0x38, 0xf1, 0xe7, 0xf5, 0x6e, 0x37, 0x58, 0x7e, 0x5e, 0x3e, 0xa2, 0xd1, - 0x77, 0xa2, 0xe6, 0xf3, 0x79, 0x90, 0xd5, 0x77, 0xdc, 0x2d, 0xf8, 0x43, 0xe1, 0xc9, 0x27, 0xd7, - 0x19, 0x50, 0x7e, 0x22, 0x20, 0x39, 0x0e, 0x72, 0xae, 0x75, 0x01, 0xf9, 0x72, 0x20, 0x2f, 0x1e, - 0x1c, 0x7a, 0xb7, 0xdb, 0xc0, 0x1f, 0x28, 0x1c, 0xfe, 0xbb, 0x67, 0xeb, 0xe8, 0xad, 0x96, 0xb5, - 0x63, 0xba, 0x15, 0x7f, 0x09, 0x3a, 0x4c, 0x80, 0x5f, 0xcc, 0x88, 0x4c, 0x66, 0x05, 0x18, 0x4c, - 0x06, 0xd9, 0xf9, 0x21, 0x9a, 0xd2, 0x1c, 0xb8, 0xbe, 0xb4, 0xb6, 0xd6, 0x6c, 0xd4, 0xee, 0x56, - 0xab, 0xa1, 0xe1, 0xd9, 0xac, 0x54, 0x9b, 0x8d, 0x65, 0xb5, 0x59, 0x5e, 0xd7, 0xf0, 0x3a, 0x61, - 0xa9, 0x5c, 0xae, 0xad, 0x57, 0x1b, 0x45, 0x04, 0xdf, 0x20, 0x81, 0xe9, 0x72, 0xc7, 0x72, 0x02, - 0x84, 0xaf, 0x0c, 0x11, 0x0e, 0xc4, 0x98, 0x61, 0xc4, 0x08, 0xff, 0x67, 0x46, 0xd4, 0xe9, 0xc0, - 0x17, 0x08, 0x43, 0x3e, 0xa2, 0x97, 0x7a, 0x8d, 0x90, 0xd3, 0xc1, 0x60, 0x7a, 0xe9, 0x37, 0x89, - 0xd7, 0x2f, 0x80, 0x89, 0x12, 0x51, 0x0c, 0xf8, 0xf7, 0x19, 0x90, 0x2f, 0x5b, 0xe6, 0x86, 0xb1, - 0xe9, 0x19, 0x73, 0xc8, 0xd4, 0xcf, 0x77, 0xd0, 0x82, 0xee, 0xea, 0xbb, 0x06, 0xba, 0x88, 0x2b, - 0x50, 0xd0, 0x7a, 0x52, 0x3d, 0xa6, 0x68, 0x0a, 0x3a, 0xbf, 0xb3, 0x89, 0x99, 0x2a, 0x68, 0x6c, - 0x92, 0xf2, 0x44, 0x70, 0x29, 0x79, 0x5d, 0xb3, 0x91, 0x8d, 0x3a, 0x48, 0x77, 0x90, 0x37, 0x2d, - 0x32, 0x51, 0x07, 0x2b, 0x6d, 0x41, 0x8b, 0xfa, 0xac, 0x9c, 0x01, 0xd3, 0xe4, 0x13, 0x36, 0x45, - 0x1c, 0xac, 0xc6, 0x05, 0x8d, 0x4b, 0x53, 0x1e, 0x03, 0x72, 0xe8, 0x3e, 0xd7, 0xd6, 0x4f, 0xb5, - 0x31, 0x5e, 0x97, 0xce, 0x11, 0xaf, 0xc3, 0x39, 0xdf, 0xeb, 0x70, 0xae, 0x8e, 0x7d, 0x12, 0x35, - 0x92, 0x0b, 0x7e, 0xb2, 0x10, 0x18, 0x12, 0x6f, 0x90, 0x43, 0xc5, 0x50, 0x40, 0xd6, 0xd4, 0xb7, - 0x11, 0xd5, 0x0b, 0xfc, 0xac, 0x5c, 0x0f, 0x8e, 0xea, 0xbb, 0xba, 0xab, 0xdb, 0x2b, 0x56, 0x4b, - 0xef, 0xe0, 0xc1, 0xcf, 0x6f, 0xf9, 0xbd, 0x1f, 0xf0, 0x8e, 0x90, 0x6b, 0xd9, 0x08, 0xe7, 0xf2, - 0x77, 0x84, 0xfc, 0x04, 0x8f, 0xba, 0xd1, 0xb2, 0x4c, 0xcc, 0xbf, 0xac, 0xe1, 0x67, 0x4f, 0x2a, - 0x6d, 0xc3, 0xf1, 0x2a, 0x82, 0xa9, 0x54, 0xc9, 0xd6, 0x46, 0x7d, 0xcf, 0x6c, 0xe1, 0xdd, 0xa0, - 0x82, 0x16, 0xf5, 0x59, 0x99, 0x07, 0x53, 0x74, 0x23, 0x64, 0xd5, 0xd3, 0xab, 0x3c, 0xd6, 0xab, - 0xab, 0x78, 0x9f, 0x2e, 0x82, 0xe7, 0x5c, 0x35, 0xcc, 0xa7, 0xb1, 0x3f, 0x29, 0x77, 0x82, 0xcb, - 0xe9, 0x6b, 0x79, 0xc7, 0x71, 0xad, 0x6d, 0x02, 0xfa, 0xa2, 0xd1, 0x21, 0x35, 0x98, 0xc0, 0x35, - 0x88, 0xcb, 0xa2, 0xdc, 0x0c, 0x8e, 0x77, 0x6d, 0xb4, 0x81, 0xec, 0x7b, 0xf4, 0xed, 0x9d, 0xfb, - 0x1a, 0xb6, 0x6e, 0x3a, 0x5d, 0xcb, 0x76, 0x4f, 0x15, 0x30, 0xf3, 0x7d, 0xbf, 0x29, 0x37, 0x80, - 0x63, 0xf7, 0x3a, 0x96, 0x59, 0xea, 0x1a, 0x2b, 0x86, 0xe3, 0x22, 0xb3, 0xd4, 0x6e, 0xdb, 0xa7, - 0x26, 0x71, 0x59, 0xfb, 0x3f, 0xd0, 0x6e, 0xb5, 0x00, 0xf2, 0x44, 0xd8, 0xf0, 0xf9, 0x39, 0x61, - 0xe7, 0x4f, 0x5a, 0xfd, 0x58, 0x63, 0xee, 0xb1, 0x60, 0x82, 0xf6, 0x87, 0x18, 0xd6, 0xa9, 0x9b, - 0x4f, 0xf6, 0xac, 0x42, 0x50, 0x2a, 0x9a, 0x9f, 0x4d, 0x79, 0x1c, 0xc8, 0xb7, 0xb0, 0x10, 0x30, - 0xc2, 0x53, 0x37, 0x5f, 0xde, 0xbf, 0x50, 0x9c, 0x45, 0xa3, 0x59, 0xe1, 0x97, 0x64, 0x21, 0x7f, - 0xd1, 0x38, 0x8e, 0x93, 0xf5, 0x01, 0xdf, 0x94, 0x86, 0xe8, 0x64, 0x6f, 0x00, 0xd7, 0xd1, 0x1e, - 0x94, 0x5a, 0x2b, 0x0b, 0xcd, 0xf9, 0x75, 0x7f, 0xea, 0xe8, 0xd9, 0x30, 0xf5, 0x46, 0x49, 0xf3, - 0xe6, 0xfd, 0x0b, 0xde, 0x94, 0xf3, 0x7a, 0x70, 0xed, 0x80, 0xdc, 0x6a, 0xa3, 0x59, 0x2d, 0xad, - 0xaa, 0xc5, 0x0d, 0xde, 0x12, 0xaa, 0x37, 0x6a, 0x6b, 0x4d, 0x6d, 0xbd, 0x5a, 0xad, 0x54, 0x97, - 0x08, 0x31, 0xcf, 0x80, 0x3c, 0x19, 0x66, 0x38, 0xa7, 0x55, 0x1a, 0x6a, 0xb3, 0x5c, 0xab, 0x2e, - 0x56, 0x96, 0x8a, 0xc6, 0x20, 0x33, 0xea, 0x5e, 0xe5, 0x2a, 0x70, 0x05, 0xc7, 0x49, 0xa5, 0x56, - 0xf5, 0xe6, 0xc1, 0xe5, 0x52, 0xb5, 0xac, 0x7a, 0x93, 0xde, 0x0b, 0x0a, 0x04, 0x27, 0x08, 0xb9, - 0xe6, 0x62, 0x65, 0x85, 0xdd, 0xba, 0xfa, 0x78, 0x46, 0x39, 0x05, 0x2e, 0x61, 0xbf, 0x55, 0xaa, - 0x67, 0x4b, 0x2b, 0x95, 0x85, 0xe2, 0x27, 0x32, 0xca, 0x35, 0xe0, 0x4a, 0xee, 0x2f, 0xb2, 0x0b, - 0xd5, 0xac, 0x2c, 0x34, 0x57, 0x2b, 0xf5, 0xd5, 0x52, 0xa3, 0xbc, 0x5c, 0xfc, 0x24, 0x9e, 0x5d, - 0x04, 0xe6, 0x32, 0xe3, 0xc4, 0xf9, 0x22, 0xd6, 0x02, 0x28, 0xf1, 0x8a, 0xfa, 0xe8, 0xbe, 0xb0, - 0xc7, 0x5b, 0xbc, 0x1f, 0x0d, 0xc6, 0x92, 0x05, 0x4e, 0x85, 0x1e, 0x9b, 0x80, 0x56, 0x32, 0x1d, - 0x6a, 0x0c, 0xa1, 0x42, 0x57, 0x81, 0x2b, 0xaa, 0x2a, 0x41, 0x4a, 0x53, 0xcb, 0xb5, 0xb3, 0xaa, - 0xd6, 0x3c, 0x57, 0x5a, 0x59, 0x51, 0x1b, 0xcd, 0xc5, 0x8a, 0x56, 0x6f, 0x14, 0x37, 0xe0, 0xbf, - 0x49, 0xc1, 0xda, 0x0f, 0x23, 0xad, 0xbf, 0x97, 0x92, 0x36, 0xeb, 0xd8, 0x35, 0x9e, 0x9f, 0x01, - 0x79, 0xc7, 0xd5, 0xdd, 0x1d, 0x87, 0xb6, 0xea, 0x47, 0xf4, 0x6f, 0xd5, 0x73, 0x75, 0x9c, 0x49, - 0xa3, 0x99, 0xe1, 0x97, 0x32, 0x49, 0x9a, 0xe9, 0x08, 0x96, 0x7f, 0x8c, 0x21, 0x44, 0x7c, 0x1a, - 0x40, 0x5f, 0xdb, 0x2b, 0xf5, 0x66, 0x69, 0x45, 0x53, 0x4b, 0x0b, 0xf7, 0x04, 0x8b, 0x3e, 0x48, - 0x39, 0x01, 0x8e, 0xad, 0x57, 0x4b, 0xf3, 0x2b, 0x2a, 0x6e, 0x2e, 0xb5, 0x6a, 0x55, 0x2d, 0x7b, - 0x72, 0xff, 0x55, 0xbc, 0xc5, 0xe2, 0xd9, 0xdb, 0x98, 0x6f, 0xcf, 0x26, 0x62, 0xe4, 0xff, 0x0d, - 0x61, 0x4f, 0xa4, 0x50, 0xc3, 0x58, 0x5a, 0xa3, 0xc5, 0xe1, 0x8b, 0x42, 0xce, 0x47, 0x42, 0x9c, - 0x24, 0xc3, 0xe3, 0x97, 0x86, 0xc0, 0xe3, 0x04, 0x38, 0xc6, 0xe2, 0x81, 0x9d, 0x90, 0xa2, 0x61, - 0xf8, 0x81, 0x04, 0x26, 0x56, 0x8d, 0x4d, 0xec, 0x85, 0xf9, 0xa4, 0xd0, 0xf4, 0x98, 0x05, 0x52, - 0xe0, 0xf4, 0x22, 0x19, 0x6d, 0x6e, 0xb2, 0x2d, 0xf5, 0x5d, 0xd4, 0x78, 0x5b, 0xe2, 0xfe, 0x85, - 0x16, 0x1b, 0xd1, 0xbf, 0x7c, 0x2d, 0x51, 0xff, 0xd2, 0x9f, 0x56, 0x32, 0x61, 0xdb, 0x07, 0x13, - 0x36, 0xeb, 0x6a, 0x32, 0x0d, 0x0a, 0x41, 0x6f, 0x8f, 0x77, 0x3d, 0xbc, 0x8f, 0x6a, 0xb5, 0xb6, - 0xbe, 0xb4, 0xdc, 0x5c, 0xd4, 0x54, 0x95, 0xae, 0x93, 0x6e, 0xc2, 0xb7, 0x4a, 0x60, 0x86, 0xf2, - 0x4e, 0x5d, 0x08, 0xae, 0x8c, 0x04, 0x81, 0x0a, 0xfa, 0x47, 0xec, 0xc4, 0x60, 0x89, 0x17, 0xf4, - 0x4d, 0x71, 0xc2, 0x89, 0xf5, 0x21, 0x78, 0x6d, 0x20, 0xee, 0xbb, 0x38, 0x71, 0x3f, 0x21, 0x31, - 0xc5, 0xf4, 0x27, 0x07, 0x6f, 0x9a, 0x04, 0xf9, 0x3a, 0xea, 0xa0, 0x96, 0x0b, 0x1f, 0x92, 0x86, - 0xd2, 0xd9, 0x38, 0x43, 0x57, 0x4e, 0x64, 0xe8, 0x66, 0x53, 0x30, 0x74, 0x73, 0xc3, 0x1b, 0xba, - 0xf9, 0xa4, 0x86, 0xee, 0x44, 0xac, 0xa1, 0x0b, 0x3f, 0x92, 0x4f, 0x3a, 0x0e, 0x12, 0x60, 0x0e, - 0xd7, 0xbc, 0xfd, 0x8d, 0x5c, 0x92, 0x71, 0xb3, 0x2f, 0xc7, 0xc9, 0xb4, 0xf8, 0x65, 0xd9, 0x14, - 0x96, 0xe3, 0x94, 0xab, 0xc1, 0x95, 0xe1, 0x7b, 0x53, 0x7d, 0x4a, 0xa5, 0xde, 0xa8, 0x63, 0x9b, - 0xb6, 0x5c, 0xd3, 0xb4, 0xf5, 0x35, 0xb2, 0xa7, 0x72, 0x12, 0x28, 0x21, 0x15, 0x6d, 0xbd, 0x4a, - 0x2c, 0xd8, 0x4d, 0x9e, 0xfa, 0x62, 0xa5, 0xba, 0xd0, 0x0c, 0x46, 0x85, 0xea, 0x62, 0xad, 0xb8, - 0xa5, 0xcc, 0x81, 0xeb, 0x19, 0xea, 0xb8, 0x83, 0x22, 0x25, 0x94, 0xaa, 0x0b, 0xcd, 0xd5, 0xaa, - 0xba, 0x5a, 0xab, 0x56, 0xca, 0x38, 0xbd, 0xae, 0x36, 0x8a, 0x86, 0x67, 0x4a, 0xf5, 0xd8, 0xcc, - 0x75, 0xb5, 0xa4, 0x95, 0x97, 0x55, 0x8d, 0x14, 0x79, 0xaf, 0x72, 0x2d, 0x38, 0x53, 0xaa, 0xd6, - 0x1a, 0x5e, 0x4a, 0xa9, 0x7a, 0x4f, 0xe3, 0x9e, 0x35, 0xb5, 0xb9, 0xa6, 0xd5, 0xca, 0x6a, 0xbd, - 0xee, 0x8d, 0x44, 0xd4, 0xc2, 0x2e, 0x76, 0x94, 0x27, 0x83, 0x5b, 0x19, 0xd6, 0xd4, 0x06, 0xde, - 0xc0, 0x5f, 0xad, 0x61, 0x1f, 0xae, 0x05, 0xb5, 0xb9, 0x5c, 0xaa, 0x37, 0x2b, 0xd5, 0x72, 0x6d, - 0x75, 0xad, 0xd4, 0xa8, 0x78, 0x03, 0xd6, 0x9a, 0x56, 0x6b, 0xd4, 0x9a, 0x67, 0x55, 0xad, 0x5e, - 0xa9, 0x55, 0x8b, 0xa6, 0x57, 0x65, 0x66, 0x84, 0xf3, 0x2d, 0x0d, 0x4b, 0xb9, 0x02, 0x9c, 0xf2, - 0xd3, 0x57, 0x6a, 0x9e, 0xa0, 0x19, 0x9b, 0xbb, 0xcb, 0xda, 0x29, 0xf5, 0x46, 0x4d, 0x23, 0x56, - 0xf7, 0x6a, 0x65, 0x49, 0xf3, 0xa6, 0x0a, 0xc5, 0xa7, 0xa6, 0x6a, 0x93, 0xff, 0x87, 0x04, 0xb2, - 0x75, 0xd7, 0xea, 0xc2, 0x9f, 0x0e, 0xbb, 0xab, 0xd3, 0x00, 0xd8, 0x78, 0xbf, 0x7e, 0x41, 0x77, - 0x75, 0xba, 0x8e, 0xc1, 0xa4, 0xc0, 0x3f, 0x13, 0xde, 0x64, 0x0c, 0xad, 0x16, 0xab, 0x1b, 0xd1, - 0xbd, 0x7f, 0x5f, 0xec, 0xd4, 0x55, 0x34, 0xa1, 0x64, 0xed, 0xe1, 0xd7, 0x86, 0xd9, 0x46, 0x84, - 0xe0, 0x24, 0x03, 0xab, 0x27, 0x7f, 0x5f, 0x65, 0x90, 0x72, 0x29, 0xb8, 0xa4, 0x47, 0xf9, 0xb0, - 0xce, 0x6d, 0x28, 0x3f, 0x05, 0x1e, 0xc1, 0xa8, 0xbf, 0xba, 0x5a, 0x3b, 0xab, 0x06, 0x8a, 0xbe, - 0x50, 0x6a, 0x94, 0x8a, 0x9b, 0xf0, 0x73, 0x32, 0xc8, 0xae, 0x5a, 0xbb, 0xbd, 0x7b, 0xbb, 0x26, - 0xba, 0xc8, 0xec, 0x1d, 0xf8, 0xaf, 0xfc, 0x29, 0x13, 0x21, 0xb1, 0xaf, 0x46, 0xfb, 0x71, 0x7c, - 0x51, 0x4a, 0x22, 0xf6, 0xd5, 0x83, 0x3a, 0x6f, 0xfc, 0xf3, 0x30, 0x62, 0x8f, 0x10, 0x2d, 0x52, - 0xce, 0x80, 0xd3, 0xe1, 0x87, 0xca, 0x82, 0x5a, 0x6d, 0x54, 0x16, 0xef, 0x09, 0x85, 0x5b, 0xd1, - 0x84, 0xc4, 0x3f, 0xa8, 0x9b, 0x8b, 0x9f, 0x6b, 0x9f, 0x02, 0xc7, 0xc3, 0x6f, 0x4b, 0x6a, 0xc3, - 0xff, 0x72, 0x2f, 0xbc, 0x3f, 0x07, 0xa6, 0x49, 0xb7, 0xbf, 0xde, 0x6d, 0x7b, 0xd6, 0xeb, 0xe3, - 0x42, 0x74, 0xaf, 0x03, 0x47, 0x2b, 0x6b, 0x8b, 0xf5, 0xba, 0x6b, 0xd9, 0xfa, 0x26, 0xc2, 0xe3, - 0x1c, 0x91, 0x56, 0x6f, 0x32, 0x7c, 0x87, 0xf0, 0xba, 0x38, 0x3f, 0xd4, 0x90, 0x32, 0x23, 0x50, - 0xff, 0x8a, 0xd0, 0x3a, 0xb6, 0x00, 0xc1, 0x64, 0xe8, 0xdf, 0x3b, 0xe2, 0x36, 0x17, 0x8d, 0xcb, - 0xc6, 0x99, 0x67, 0x49, 0x60, 0xb2, 0x61, 0x6c, 0xa3, 0xa7, 0x59, 0x26, 0x72, 0x94, 0x09, 0x20, - 0x2f, 0xad, 0x36, 0x8a, 0x47, 0xbc, 0x07, 0x6f, 0x5a, 0x91, 0xc1, 0x0f, 0xaa, 0x57, 0x80, 0xf7, - 0x50, 0x6a, 0x14, 0x65, 0xef, 0x61, 0x55, 0x6d, 0x14, 0xb3, 0xde, 0x43, 0x55, 0x6d, 0x14, 0x73, - 0xde, 0xc3, 0xda, 0x4a, 0xa3, 0x98, 0xf7, 0x1e, 0x2a, 0xf5, 0x46, 0x71, 0xc2, 0x7b, 0x98, 0xaf, - 0x37, 0x8a, 0x05, 0xef, 0xe1, 0x6c, 0xbd, 0x51, 0x9c, 0xf4, 0x1e, 0xca, 0x8d, 0x46, 0x11, 0x78, - 0x0f, 0x77, 0xd5, 0x1b, 0xc5, 0x29, 0xef, 0xa1, 0x54, 0x6e, 0x14, 0xa7, 0xf1, 0x83, 0xda, 0x28, - 0xce, 0x78, 0x0f, 0xf5, 0x7a, 0xa3, 0x38, 0x8b, 0x29, 0xd7, 0x1b, 0xc5, 0xa3, 0xb8, 0xac, 0x4a, - 0xa3, 0x58, 0xf4, 0x1e, 0x96, 0xeb, 0x8d, 0xe2, 0x31, 0x9c, 0xb9, 0xde, 0x28, 0x2a, 0xb8, 0xd0, - 0x7a, 0xa3, 0x78, 0x09, 0xce, 0x53, 0x6f, 0x14, 0x8f, 0xe3, 0x22, 0xea, 0x8d, 0xe2, 0x09, 0xcc, - 0x86, 0xda, 0x28, 0x9e, 0xc4, 0x79, 0xb4, 0x46, 0xf1, 0x52, 0xfc, 0xa9, 0xda, 0x28, 0x9e, 0xc2, - 0x8c, 0xa9, 0x8d, 0xe2, 0x65, 0xf8, 0x41, 0x6b, 0x14, 0x21, 0xfe, 0x54, 0x6a, 0x14, 0x2f, 0x87, - 0x8f, 0x00, 0x93, 0x4b, 0xc8, 0x25, 0x20, 0xc2, 0x22, 0x90, 0x97, 0x90, 0xcb, 0x4e, 0x64, 0xbf, - 0x26, 0x83, 0x4b, 0xe9, 0xe2, 0xc7, 0xa2, 0x6d, 0x6d, 0xaf, 0xa0, 0x4d, 0xbd, 0xb5, 0xa7, 0xde, - 0xe7, 0x19, 0x64, 0xac, 0x1f, 0x83, 0x02, 0xb2, 0xdd, 0xb0, 0x33, 0xc2, 0xcf, 0xb1, 0xf6, 0xab, - 0xbf, 0x78, 0x2b, 0x87, 0x8b, 0xb7, 0xd4, 0x62, 0xfb, 0x57, 0x56, 0xa3, 0xb9, 0xfd, 0x96, 0x4c, - 0xcf, 0x7e, 0x8b, 0xd7, 0x4c, 0xba, 0xc8, 0x76, 0x2c, 0x53, 0xef, 0xd4, 0xa9, 0xa3, 0x0b, 0x59, - 0x25, 0xee, 0x4d, 0x56, 0x7e, 0xce, 0x6f, 0x19, 0xc4, 0x6a, 0x7b, 0x52, 0xdc, 0x1a, 0x4f, 0x6f, - 0x35, 0x23, 0x1a, 0xc9, 0x27, 0x83, 0x46, 0xd2, 0xe0, 0x1a, 0xc9, 0x9d, 0x07, 0xa0, 0x9d, 0xac, - 0xbd, 0x54, 0x86, 0x9b, 0xef, 0x85, 0x6e, 0xe0, 0xfe, 0xf6, 0x8e, 0x0c, 0x3f, 0x27, 0x81, 0x93, - 0xaa, 0xd9, 0x6f, 0xbe, 0xc0, 0xea, 0xc2, 0x1b, 0x58, 0x68, 0xd6, 0x78, 0x91, 0xde, 0xda, 0xb7, - 0xda, 0xfd, 0x69, 0x46, 0x48, 0xf4, 0xd3, 0x81, 0x44, 0xeb, 0x9c, 0x44, 0xef, 0x18, 0x9e, 0x74, - 0x32, 0x81, 0x56, 0x47, 0xda, 0x01, 0x65, 0xe1, 0xd7, 0x25, 0x70, 0x8c, 0xf8, 0xaa, 0xdd, 0x45, - 0xa6, 0x27, 0xb8, 0xcb, 0xe6, 0x4d, 0xa8, 0x4e, 0x38, 0x95, 0x21, 0xfa, 0xcd, 0xa4, 0xc0, 0x57, - 0xb1, 0x02, 0xbf, 0x9b, 0x17, 0x78, 0x44, 0x67, 0xdc, 0x5b, 0x5c, 0x84, 0xac, 0x3f, 0x11, 0xc8, - 0xba, 0xca, 0xc9, 0xfa, 0xd6, 0xa1, 0xa8, 0x1e, 0xae, 0x98, 0xbf, 0x99, 0x05, 0x8f, 0x20, 0x1c, - 0x52, 0x45, 0x20, 0x9d, 0x59, 0xc9, 0x6c, 0x6b, 0xc8, 0x71, 0x75, 0xdb, 0xe5, 0xc2, 0x34, 0xf4, - 0xcc, 0x7f, 0x33, 0x29, 0xcc, 0x7f, 0xa5, 0x81, 0xf3, 0x5f, 0xf8, 0x76, 0xd6, 0x4a, 0x3b, 0xc7, - 0x23, 0x5b, 0x8a, 0xc1, 0x20, 0xa2, 0x86, 0x51, 0x2d, 0x2a, 0x30, 0xdf, 0x7e, 0x9e, 0x43, 0x79, - 0xf1, 0xc0, 0x25, 0x24, 0x43, 0xfc, 0xcf, 0x46, 0x6b, 0x4e, 0x67, 0xd9, 0x6f, 0xbc, 0xed, 0x57, - 0x6c, 0xa7, 0x3a, 0x0f, 0x7a, 0x41, 0x01, 0x4c, 0xe2, 0x2e, 0x67, 0xc5, 0x30, 0x2f, 0x78, 0x63, - 0xe3, 0x74, 0x15, 0x5d, 0x2c, 0x6f, 0xe9, 0x9d, 0x0e, 0x32, 0x37, 0x11, 0xbc, 0x97, 0x33, 0xd0, - 0xf5, 0x6e, 0xb7, 0x1a, 0x6e, 0x7f, 0xfa, 0xaf, 0xca, 0x1d, 0x20, 0xe7, 0xb4, 0xac, 0x2e, 0xc2, - 0x82, 0x9a, 0x65, 0x1c, 0xa6, 0xf8, 0x25, 0xdc, 0xd2, 0x8e, 0xbb, 0x35, 0x87, 0xcb, 0x2a, 0x75, - 0x8d, 0xba, 0xf7, 0x83, 0x46, 0xfe, 0xa3, 0xe3, 0xe4, 0x37, 0xfa, 0x76, 0xc6, 0x99, 0x98, 0xce, - 0x38, 0x60, 0x7c, 0x8e, 0x65, 0x3a, 0x62, 0xa5, 0xe3, 0x2a, 0x30, 0xd5, 0xf2, 0xb3, 0x04, 0xe7, - 0xc1, 0xd8, 0x24, 0xf8, 0x8f, 0x89, 0xba, 0x6b, 0xa1, 0xc2, 0x93, 0x69, 0x15, 0x1a, 0xb1, 0xbd, - 0x78, 0x02, 0x1c, 0x6b, 0xd4, 0x6a, 0xcd, 0xd5, 0x52, 0xf5, 0x9e, 0x30, 0x0e, 0xc3, 0x06, 0x7c, - 0x59, 0x16, 0xcc, 0xd6, 0xad, 0xce, 0x2e, 0x0a, 0x71, 0xae, 0x70, 0x8e, 0x86, 0xac, 0x9c, 0x32, - 0xfb, 0xe4, 0xa4, 0x9c, 0x04, 0x79, 0xdd, 0x74, 0x2e, 0x22, 0xdf, 0x86, 0xa7, 0x6f, 0x14, 0xc6, - 0x0f, 0xb0, 0x1d, 0x81, 0xc6, 0xc3, 0x78, 0xdb, 0x00, 0x49, 0xf2, 0x5c, 0x45, 0x00, 0x79, 0x06, - 0x4c, 0x3b, 0xc4, 0x09, 0xa2, 0xc1, 0xf8, 0xba, 0x70, 0x69, 0x98, 0x45, 0xe2, 0x85, 0x23, 0x53, - 0x16, 0xf1, 0x1b, 0x7c, 0x20, 0xe8, 0x3f, 0xd6, 0x39, 0x88, 0x4b, 0x07, 0x61, 0x2c, 0x19, 0xc8, - 0xaf, 0x18, 0xf5, 0x4c, 0xfc, 0x14, 0x38, 0x4e, 0x9b, 0x7d, 0xb3, 0xbc, 0x5c, 0x5a, 0x59, 0x51, - 0xab, 0x4b, 0x6a, 0xb3, 0xb2, 0x40, 0x36, 0x55, 0xc3, 0x94, 0x52, 0xa3, 0xa1, 0xae, 0xae, 0x35, - 0xea, 0x4d, 0xf5, 0x29, 0x65, 0x55, 0x5d, 0xc0, 0xae, 0xbe, 0xf8, 0xac, 0x9e, 0xef, 0x94, 0x5d, - 0xaa, 0xd6, 0xcf, 0xa9, 0x5a, 0x71, 0xeb, 0x4c, 0x09, 0x4c, 0x31, 0x03, 0x85, 0xc7, 0xdd, 0x02, - 0xda, 0xd0, 0x77, 0x3a, 0xd4, 0xa6, 0x2e, 0x1e, 0xf1, 0xb8, 0xc3, 0xb2, 0xa9, 0x99, 0x9d, 0xbd, - 0x62, 0x46, 0x29, 0x82, 0x69, 0x76, 0x4c, 0x28, 0x4a, 0xf0, 0x2d, 0x57, 0x80, 0xc9, 0x73, 0x96, - 0x7d, 0x01, 0xfb, 0xa7, 0xc2, 0x77, 0x93, 0x78, 0x4d, 0xfe, 0xc9, 0x77, 0xc6, 0x00, 0x7b, 0x85, - 0xb8, 0x17, 0x94, 0x4f, 0x6d, 0x6e, 0xe0, 0xe9, 0xf6, 0xab, 0xc0, 0xd4, 0x45, 0x3f, 0x77, 0xd8, - 0xd2, 0x99, 0x24, 0xf8, 0x47, 0x62, 0x7e, 0x4d, 0x83, 0x8b, 0x1c, 0xc3, 0xd2, 0xba, 0x04, 0xf2, - 0x4b, 0xc8, 0x2d, 0x75, 0x3a, 0xac, 0xdc, 0x5e, 0x2c, 0x7c, 0x62, 0x91, 0xab, 0x44, 0xa9, 0xd3, - 0x89, 0x6e, 0x54, 0x8c, 0x80, 0xfc, 0x93, 0x35, 0x5c, 0x9a, 0xa0, 0x3f, 0xf0, 0x80, 0x02, 0xd3, - 0x97, 0xd8, 0x87, 0xe4, 0xc0, 0x77, 0xe7, 0x41, 0xc6, 0x4c, 0xba, 0x29, 0x8c, 0xd5, 0x95, 0x89, - 0xf7, 0x01, 0xf2, 0xf3, 0x29, 0x77, 0x83, 0x89, 0x1d, 0x07, 0x95, 0x75, 0xc7, 0x1f, 0xda, 0xf8, - 0x9a, 0xd6, 0xce, 0xdf, 0x8b, 0x5a, 0xee, 0x5c, 0x65, 0xdb, 0x9b, 0xf8, 0xac, 0x93, 0x8c, 0x41, - 0xf8, 0x2b, 0xfa, 0xae, 0xf9, 0x14, 0xbc, 0xc9, 0xe3, 0x45, 0xc3, 0xdd, 0x2a, 0x6f, 0xe9, 0x2e, - 0xdd, 0xd1, 0x08, 0xde, 0xe1, 0xf3, 0x87, 0x80, 0x33, 0xd6, 0x6b, 0x25, 0xf2, 0xe0, 0x73, 0x62, - 0x10, 0x47, 0xe0, 0x6a, 0x32, 0x0c, 0x88, 0xff, 0x22, 0x81, 0x6c, 0xad, 0x8b, 0x4c, 0xe1, 0x53, - 0x7e, 0x81, 0x6c, 0xa5, 0x1e, 0xd9, 0x3e, 0x20, 0xee, 0xf5, 0x1a, 0x54, 0xda, 0x2b, 0x39, 0x42, - 0xb2, 0x37, 0x82, 0xac, 0x61, 0x6e, 0x58, 0xd4, 0xb2, 0xbd, 0x3c, 0xc2, 0xd6, 0xa9, 0x98, 0x1b, - 0x96, 0x86, 0x33, 0x8a, 0x3a, 0xbc, 0xc6, 0x95, 0x9d, 0xbe, 0xb8, 0xbf, 0x55, 0x00, 0x79, 0xa2, - 0xce, 0xf0, 0x45, 0x32, 0x90, 0x4b, 0xed, 0x76, 0x84, 0xe0, 0xa5, 0x7d, 0x82, 0xb7, 0xf0, 0x6f, - 0x01, 0x26, 0xc1, 0x3b, 0x1f, 0xa4, 0x49, 0xb0, 0x6f, 0xa7, 0x4d, 0xaa, 0xd4, 0x6e, 0x47, 0xfb, - 0xd6, 0x07, 0x05, 0x4a, 0x7c, 0x81, 0x6c, 0x0b, 0x97, 0xc5, 0x5a, 0x78, 0xe2, 0x81, 0x20, 0x92, - 0xbf, 0xf4, 0x21, 0xfa, 0x57, 0x09, 0x4c, 0xac, 0x18, 0x8e, 0xeb, 0x61, 0x53, 0x12, 0xc1, 0xe6, - 0x0a, 0x30, 0xe9, 0x8b, 0xc6, 0xeb, 0xf2, 0xbc, 0xfe, 0x3c, 0x4c, 0xe0, 0x67, 0xe2, 0x77, 0xf1, - 0xe8, 0x3c, 0x3e, 0xbe, 0xf6, 0x94, 0x8b, 0xe8, 0xd3, 0x53, 0x61, 0xb1, 0x52, 0x6f, 0xb1, 0x7f, - 0x1c, 0x08, 0x7c, 0x95, 0x13, 0xf8, 0x2d, 0xc3, 0x14, 0x99, 0xbe, 0xd0, 0x3f, 0x2f, 0x01, 0xe0, - 0x95, 0x4d, 0x8f, 0xa8, 0x3e, 0x8a, 0x0b, 0x3c, 0x11, 0x23, 0xdd, 0x97, 0xb1, 0xd2, 0x5d, 0xe5, - 0xa5, 0xfb, 0xb3, 0x83, 0xab, 0x1a, 0x77, 0x14, 0x55, 0x29, 0x02, 0xd9, 0x08, 0x44, 0xeb, 0x3d, - 0xc2, 0x37, 0x05, 0x42, 0x5d, 0xe3, 0x84, 0x7a, 0xdb, 0x90, 0x25, 0xa5, 0x2f, 0xd7, 0xbf, 0x95, - 0xc0, 0x44, 0x1d, 0xb9, 0x5e, 0x37, 0x09, 0xcf, 0x8a, 0xf4, 0xf0, 0x4c, 0xdb, 0x96, 0x04, 0xdb, - 0xf6, 0xf7, 0x32, 0xa2, 0x01, 0xac, 0x42, 0xc9, 0x50, 0x9e, 0x22, 0x56, 0x1f, 0x1e, 0x14, 0x0a, - 0x60, 0x35, 0x88, 0x5a, 0xfa, 0xd2, 0x7d, 0x83, 0x14, 0xb8, 0x63, 0xf0, 0x27, 0xc8, 0x58, 0xb3, - 0x38, 0xb3, 0xdf, 0x2c, 0x16, 0x3f, 0x41, 0xc6, 0xd6, 0x31, 0xda, 0xbb, 0x20, 0xb1, 0xb1, 0x31, - 0x82, 0x8d, 0xff, 0x61, 0xe4, 0xf5, 0x0c, 0x19, 0xe4, 0xe9, 0x0e, 0xc0, 0x1d, 0xf1, 0x3b, 0x00, - 0x83, 0xa7, 0x16, 0xef, 0x1a, 0xc2, 0x94, 0x8b, 0x5b, 0x96, 0x0f, 0xd8, 0x90, 0x18, 0x36, 0x6e, - 0x00, 0x39, 0x1c, 0x61, 0x97, 0x8e, 0x73, 0xa1, 0xcf, 0x86, 0x4f, 0x42, 0xf5, 0xbe, 0x6a, 0x24, - 0x53, 0x62, 0x14, 0x46, 0xb0, 0x92, 0x3f, 0x0c, 0x0a, 0xdf, 0x54, 0x00, 0x58, 0xdb, 0x39, 0xdf, - 0x31, 0x9c, 0x2d, 0xc3, 0xc4, 0x8e, 0x58, 0xd3, 0xf4, 0x95, 0x04, 0x8a, 0x8d, 0x35, 0xff, 0x22, - 0x8d, 0x82, 0x22, 0x90, 0x77, 0x6c, 0x83, 0x2e, 0x03, 0x78, 0x8f, 0xca, 0xed, 0x81, 0xcb, 0x61, - 0xb6, 0x27, 0x44, 0x88, 0x27, 0x86, 0x90, 0x83, 0x39, 0xa6, 0xf4, 0xd0, 0xf5, 0x90, 0x8d, 0x06, - 0x9c, 0xe3, 0xa3, 0x01, 0x73, 0xe7, 0x86, 0xf3, 0x3d, 0xe7, 0x86, 0x3d, 0x1c, 0x1d, 0xe3, 0x69, - 0x08, 0xfb, 0xf7, 0xc8, 0x1a, 0x7e, 0xf6, 0xfe, 0xb8, 0xd7, 0x32, 0x4c, 0xbc, 0xa9, 0x43, 0x5d, - 0xe2, 0xc3, 0x04, 0xb6, 0xcf, 0x9b, 0x14, 0xec, 0xf3, 0x3e, 0x18, 0xce, 0x7d, 0x2c, 0x41, 0xc3, - 0x39, 0x81, 0xe4, 0x38, 0x76, 0xb3, 0x3d, 0xec, 0xc2, 0x8f, 0x08, 0x07, 0x0c, 0x64, 0x64, 0x1c, - 0x3b, 0x8b, 0xa1, 0x1c, 0x48, 0x01, 0x07, 0xcc, 0x46, 0x6e, 0x5c, 0x0f, 0x3c, 0x88, 0x7e, 0x32, - 0x5d, 0xde, 0x1e, 0x62, 0xbd, 0x46, 0x01, 0xb3, 0xfe, 0x01, 0xec, 0xda, 0xfc, 0x5d, 0x6a, 0xb9, - 0x51, 0x44, 0xfb, 0x0f, 0x65, 0xe3, 0xe3, 0xd7, 0xe4, 0xa8, 0x75, 0xb8, 0x26, 0x03, 0xff, 0xbb, - 0x04, 0xf2, 0xd4, 0xdc, 0xb8, 0xe3, 0x80, 0x10, 0xc2, 0x97, 0x0f, 0x03, 0x49, 0x6c, 0x1c, 0x8c, - 0x4f, 0x25, 0x05, 0x60, 0x04, 0x06, 0xc6, 0x3d, 0xa9, 0x01, 0x00, 0xff, 0x5d, 0x02, 0x59, 0xcf, - 0x0c, 0x12, 0x8b, 0x32, 0xf0, 0x49, 0x61, 0x8f, 0x5a, 0x46, 0x00, 0x1e, 0xf9, 0x08, 0xfd, 0x9e, - 0x07, 0x93, 0x5d, 0x92, 0x31, 0x88, 0x71, 0x71, 0x8d, 0x40, 0x67, 0x84, 0xb4, 0xf0, 0x37, 0xf8, - 0x4e, 0x21, 0xaf, 0xdc, 0x78, 0x7e, 0x92, 0xc1, 0xa1, 0x8e, 0x22, 0x20, 0x01, 0xf6, 0x73, 0x06, - 0x1a, 0x72, 0xac, 0xce, 0x2e, 0x5a, 0xb7, 0x0d, 0x78, 0x79, 0x08, 0x00, 0x6d, 0xf6, 0x99, 0xb0, - 0xd9, 0x7f, 0x46, 0x12, 0xf5, 0xb0, 0xe5, 0x34, 0xcf, 0x27, 0x1e, 0x21, 0xfe, 0x27, 0x83, 0x09, - 0x2a, 0x47, 0x6a, 0x53, 0x8a, 0x09, 0xdf, 0xff, 0x09, 0xbe, 0x47, 0xc8, 0x43, 0x57, 0x84, 0xa3, - 0x64, 0x00, 0x94, 0x87, 0x00, 0xe0, 0x28, 0x98, 0xf2, 0x01, 0x58, 0xd7, 0x2a, 0x45, 0x04, 0xdf, - 0x26, 0x63, 0x37, 0x09, 0x32, 0xb8, 0x1d, 0xbc, 0xa7, 0xf9, 0xba, 0xf0, 0x64, 0x9f, 0x91, 0x47, - 0x50, 0x7e, 0x4a, 0x00, 0xfd, 0xa5, 0xd0, 0xec, 0x5e, 0x80, 0xa1, 0x87, 0x4b, 0x7f, 0x75, 0x46, - 0x05, 0x33, 0x9c, 0x55, 0xa2, 0x9c, 0x02, 0xc7, 0xb9, 0x04, 0x32, 0xde, 0xb5, 0x8b, 0x47, 0x14, - 0x08, 0x4e, 0x72, 0x5f, 0xe8, 0x0b, 0x6a, 0x17, 0x33, 0xf0, 0xcd, 0x5f, 0xc8, 0x04, 0xeb, 0x3d, - 0xef, 0xca, 0xd2, 0x95, 0xb6, 0x8f, 0xf1, 0x61, 0x15, 0x5b, 0x96, 0xe9, 0xa2, 0xfb, 0x18, 0x37, - 0x95, 0x20, 0x21, 0xd6, 0x6a, 0x38, 0x05, 0x26, 0x5c, 0x9b, 0x75, 0x5d, 0xf1, 0x5f, 0x59, 0xc5, - 0xca, 0xf1, 0x8a, 0x55, 0x05, 0x67, 0x0c, 0xb3, 0xd5, 0xd9, 0x69, 0x23, 0x0d, 0x75, 0x74, 0x4f, - 0x86, 0x4e, 0xc9, 0x59, 0x40, 0x5d, 0x64, 0xb6, 0x91, 0xe9, 0x12, 0x3e, 0xfd, 0x63, 0x9d, 0x02, - 0x39, 0x79, 0x65, 0xbc, 0x9d, 0x57, 0xc6, 0x47, 0xf5, 0x5b, 0xc2, 0x8d, 0x59, 0xef, 0xbb, 0x05, - 0x00, 0x52, 0xb7, 0xb3, 0x06, 0xba, 0x48, 0xd5, 0xf0, 0xb2, 0x9e, 0x55, 0xbf, 0x5a, 0x90, 0x41, - 0x63, 0x32, 0xc3, 0x87, 0x02, 0xf5, 0xbb, 0x93, 0x53, 0xbf, 0x1b, 0x04, 0x59, 0x48, 0xa6, 0x75, - 0xdd, 0x21, 0xb4, 0x6e, 0x06, 0x4c, 0x86, 0xbb, 0xc9, 0xb2, 0x72, 0x19, 0x38, 0xe1, 0xbb, 0x09, - 0x57, 0x55, 0x75, 0xa1, 0xde, 0x5c, 0x5f, 0x5b, 0xd2, 0x4a, 0x0b, 0x6a, 0x11, 0x78, 0xfa, 0x49, - 0xf4, 0x32, 0xf0, 0xee, 0xcd, 0xc2, 0xbf, 0x91, 0x40, 0x0e, 0x9f, 0x49, 0x86, 0xbf, 0x38, 0x22, - 0xcd, 0x71, 0x38, 0xa7, 0xa7, 0x60, 0xdc, 0x15, 0xbf, 0xee, 0x80, 0x0a, 0x13, 0x73, 0x75, 0xa0, - 0xeb, 0x0e, 0x62, 0x08, 0xa5, 0x3f, 0x13, 0xf2, 0x9a, 0x64, 0x7d, 0xcb, 0xba, 0xf8, 0x93, 0xdc, - 0x24, 0xbd, 0xfa, 0x1f, 0x72, 0x93, 0xec, 0xc3, 0xc2, 0xd8, 0x9b, 0x64, 0x9f, 0x76, 0x17, 0xd3, - 0x4c, 0xe1, 0xd3, 0x73, 0xc1, 0xfc, 0xef, 0x59, 0xd2, 0x81, 0xf6, 0xbe, 0x4a, 0x60, 0xc6, 0x30, - 0x5d, 0x64, 0x9b, 0x7a, 0x67, 0xb1, 0xa3, 0x6f, 0xfa, 0xf6, 0x69, 0xef, 0x86, 0x47, 0x85, 0xc9, - 0xa3, 0xf1, 0x7f, 0x28, 0xa7, 0x01, 0x70, 0xd1, 0x76, 0xb7, 0xa3, 0xbb, 0xa1, 0xea, 0x31, 0x29, - 0xac, 0xf6, 0x65, 0x79, 0xed, 0x7b, 0x2c, 0xb8, 0x84, 0x80, 0xd6, 0xd8, 0xeb, 0xa2, 0x75, 0xd3, - 0x78, 0xea, 0x0e, 0x8e, 0xc2, 0x4b, 0x74, 0xb4, 0xdf, 0x27, 0x6e, 0x07, 0x28, 0xdf, 0xb3, 0x03, - 0xf4, 0x2f, 0xc2, 0xd1, 0x7d, 0xfc, 0x56, 0x3f, 0x20, 0xba, 0x4f, 0xd0, 0xd2, 0xe4, 0x9e, 0x96, - 0x16, 0xac, 0xcb, 0x64, 0x05, 0xd6, 0x65, 0x58, 0x54, 0x72, 0x82, 0xf3, 0xfb, 0x57, 0x0a, 0x85, - 0x0f, 0x8a, 0xab, 0x46, 0xfa, 0xbd, 0xd7, 0x77, 0x65, 0x30, 0x4b, 0x8a, 0x9e, 0xb7, 0xac, 0x0b, - 0xdb, 0xba, 0x7d, 0x01, 0xfe, 0xd6, 0xc1, 0xf6, 0x61, 0x63, 0xf7, 0x9f, 0xa2, 0x36, 0x55, 0x7b, - 0xd4, 0x2f, 0xdb, 0xab, 0x7e, 0xf0, 0xd3, 0xc2, 0x93, 0x0a, 0x4e, 0x9e, 0x7e, 0xa5, 0xc6, 0xb3, - 0x41, 0x25, 0x76, 0x0a, 0x50, 0x84, 0xc1, 0xf4, 0x81, 0xff, 0xf3, 0x00, 0x78, 0x7f, 0x24, 0x60, - 0xd7, 0xf6, 0x47, 0x89, 0x3b, 0xfc, 0xca, 0x70, 0xd8, 0xf9, 0x7c, 0x0d, 0x81, 0x5d, 0x11, 0xc8, - 0x17, 0x02, 0x77, 0x22, 0xef, 0x91, 0xad, 0x50, 0x36, 0x3d, 0x34, 0x23, 0x58, 0x1e, 0x0b, 0x9a, - 0xc7, 0x79, 0x16, 0x6a, 0xdd, 0x54, 0x31, 0xfd, 0xb2, 0xf0, 0x9e, 0x59, 0x5f, 0x01, 0x11, 0xee, - 0xc6, 0xd3, 0x2a, 0xc5, 0x36, 0xdc, 0xc4, 0xd9, 0x4c, 0x1f, 0xcd, 0xe7, 0xe5, 0xc0, 0xa4, 0x1f, - 0xa0, 0x09, 0xdf, 0x1f, 0x16, 0x60, 0x78, 0x12, 0xe4, 0x1d, 0x6b, 0xc7, 0x6e, 0x21, 0xba, 0x8b, - 0x49, 0xdf, 0x86, 0xd8, 0x71, 0x1b, 0x38, 0xe0, 0xef, 0xb3, 0x29, 0xb2, 0x89, 0x6d, 0x8a, 0x68, - 0x8b, 0x35, 0xce, 0x02, 0x78, 0xbe, 0xf0, 0xa5, 0x0f, 0x1c, 0x66, 0x75, 0xe4, 0x3e, 0x1c, 0x8d, - 0x80, 0x3f, 0x15, 0xda, 0xcf, 0x19, 0x50, 0x93, 0x64, 0x2a, 0x57, 0x1b, 0xc2, 0x92, 0xbd, 0x1c, - 0x5c, 0xea, 0xe7, 0xa0, 0x26, 0x2c, 0x36, 0x59, 0xd7, 0xb5, 0x95, 0xa2, 0x0c, 0x9f, 0x91, 0x05, - 0x45, 0xc2, 0x5a, 0x2d, 0xb0, 0xe6, 0xe0, 0x8b, 0x33, 0x87, 0x6d, 0xb2, 0x46, 0xcf, 0x41, 0x3f, - 0x2b, 0x89, 0x06, 0x96, 0xe6, 0x04, 0x1f, 0xd6, 0x2e, 0x42, 0x93, 0x86, 0x68, 0x66, 0x31, 0xca, - 0x07, 0x5f, 0x9f, 0x11, 0x89, 0x53, 0x2d, 0xc6, 0x62, 0xfa, 0xbd, 0xd2, 0xf7, 0xb2, 0x7e, 0x9c, - 0xbd, 0x45, 0xdb, 0xda, 0x5e, 0xb7, 0x3b, 0xf0, 0x7f, 0x09, 0x5d, 0x03, 0x10, 0x31, 0x3f, 0x90, - 0xa2, 0xe7, 0x07, 0x78, 0x4d, 0xb9, 0x13, 0x6e, 0x66, 0x75, 0x86, 0x18, 0xbe, 0x95, 0x6b, 0xc1, - 0xac, 0xde, 0x6e, 0xaf, 0xe9, 0x9b, 0xa8, 0xec, 0x4d, 0xbc, 0x4d, 0x97, 0xc6, 0xe0, 0xea, 0x49, - 0x8d, 0xeb, 0x8a, 0x7a, 0xfa, 0xc8, 0x89, 0x7d, 0x56, 0xa9, 0xf8, 0x42, 0x2a, 0x07, 0x22, 0x95, - 0xdf, 0x58, 0x86, 0x3f, 0x6f, 0xc8, 0x68, 0x6d, 0xe9, 0x61, 0xc4, 0x40, 0xfa, 0x26, 0xe8, 0x4d, - 0x25, 0xc0, 0x77, 0xfa, 0x9a, 0xf7, 0x27, 0x12, 0x98, 0xf0, 0xf0, 0x28, 0xb5, 0xdb, 0xf0, 0x91, - 0x5c, 0x60, 0xcd, 0x48, 0x7f, 0xb6, 0xe7, 0x08, 0x3b, 0x12, 0xfa, 0x35, 0x24, 0xf4, 0x23, 0x30, - 0x09, 0x85, 0x28, 0x71, 0x42, 0x14, 0xf3, 0x17, 0x8c, 0x2d, 0x22, 0x7d, 0xf1, 0x7d, 0x52, 0x02, - 0x33, 0xfe, 0x3c, 0x63, 0x11, 0xb9, 0xad, 0x2d, 0x78, 0x8b, 0xe8, 0x4a, 0x15, 0x6d, 0x89, 0xc1, - 0xa6, 0x6e, 0x07, 0xfe, 0x30, 0x93, 0x50, 0xe5, 0xb9, 0x92, 0x23, 0x96, 0xf9, 0x12, 0xe9, 0x62, - 0x1c, 0xc1, 0xf4, 0x85, 0xf9, 0x90, 0x04, 0x40, 0xc3, 0x0a, 0x26, 0xcb, 0x07, 0x90, 0xe4, 0x0b, - 0x85, 0xf7, 0x7b, 0x69, 0xc5, 0xc3, 0x62, 0x93, 0xf7, 0x1c, 0x82, 0xee, 0x50, 0x83, 0x4a, 0x1a, - 0x4b, 0x5b, 0x9f, 0x5c, 0xd8, 0xe9, 0x76, 0x8c, 0x96, 0xee, 0xf6, 0xfa, 0xf0, 0x45, 0x8b, 0x17, - 0x5f, 0xbe, 0x9b, 0xc8, 0x68, 0x0c, 0xca, 0x88, 0x90, 0x25, 0x09, 0x87, 0x23, 0xf9, 0xe1, 0x70, - 0x04, 0xfd, 0x72, 0x06, 0x10, 0x1f, 0x83, 0x7a, 0xca, 0xe0, 0x68, 0xad, 0x8b, 0xcc, 0x79, 0x1b, - 0xe9, 0xed, 0x96, 0xbd, 0xb3, 0x7d, 0xde, 0x61, 0x1d, 0x50, 0xe3, 0x75, 0x94, 0x59, 0x7b, 0x96, - 0xb8, 0xb5, 0x67, 0xf8, 0x4c, 0x59, 0x34, 0xa0, 0x18, 0xb3, 0x43, 0xc2, 0xf0, 0x30, 0xc4, 0x50, - 0x97, 0xc8, 0x6d, 0xaa, 0x67, 0x99, 0x39, 0x9b, 0x64, 0x99, 0xf9, 0x75, 0x42, 0xe1, 0xc9, 0x84, - 0xea, 0x35, 0x16, 0xef, 0xb7, 0xd9, 0x3a, 0x72, 0x23, 0xe0, 0xbd, 0x06, 0xcc, 0x9c, 0x0f, 0xbf, - 0x04, 0x10, 0xf3, 0x89, 0x7d, 0x7c, 0x52, 0xdf, 0x90, 0x74, 0x85, 0x86, 0x67, 0x21, 0x02, 0xdd, - 0x00, 0x41, 0x49, 0xc4, 0xf1, 0x2d, 0xd1, 0x72, 0x4b, 0x6c, 0xf9, 0xe9, 0xa3, 0xf0, 0x11, 0x09, - 0x4c, 0xe1, 0x2b, 0x85, 0xe7, 0xf7, 0xf0, 0x51, 0x4c, 0x41, 0xa3, 0xe4, 0x79, 0xac, 0x98, 0x15, - 0x90, 0xed, 0x18, 0xe6, 0x05, 0xdf, 0x63, 0xd1, 0x7b, 0x0e, 0x2f, 0xa8, 0x94, 0xfa, 0x5c, 0x50, - 0x19, 0x6c, 0x74, 0x04, 0xe5, 0x1e, 0xe8, 0xc6, 0xf4, 0x81, 0xe4, 0xd2, 0x17, 0xe3, 0x3f, 0x65, - 0x41, 0xbe, 0x8e, 0x74, 0xbb, 0xb5, 0x05, 0xdf, 0x25, 0xf5, 0x9d, 0x4a, 0x14, 0xf8, 0xa9, 0xc4, - 0x22, 0x98, 0xd8, 0x30, 0x3a, 0x2e, 0xb2, 0x89, 0x17, 0x37, 0xdb, 0xb5, 0x93, 0x26, 0x3e, 0xdf, - 0xb1, 0x5a, 0x17, 0xe6, 0xa8, 0x69, 0x3f, 0xe7, 0x07, 0x34, 0x9e, 0x5b, 0xc4, 0x3f, 0x69, 0xfe, - 0xcf, 0x9e, 0x41, 0xe8, 0x58, 0xb6, 0x1b, 0x75, 0x57, 0x4d, 0x04, 0x95, 0xba, 0x65, 0xbb, 0x1a, - 0xf9, 0xd1, 0x83, 0x79, 0x63, 0xa7, 0xd3, 0x69, 0xa0, 0xfb, 0x5c, 0x7f, 0x5a, 0xe7, 0xbf, 0x7b, - 0xc6, 0xa2, 0xb5, 0xb1, 0xe1, 0x20, 0xb2, 0xa8, 0x90, 0xd3, 0xe8, 0x9b, 0x72, 0x1c, 0xe4, 0x3a, - 0xc6, 0xb6, 0x41, 0x26, 0x22, 0x39, 0x8d, 0xbc, 0x28, 0xd7, 0x83, 0x62, 0x38, 0x07, 0x22, 0x8c, - 0x9e, 0xca, 0xe3, 0xa6, 0xb9, 0x2f, 0xdd, 0xd3, 0x99, 0x0b, 0x68, 0xcf, 0x39, 0x35, 0x81, 0xbf, - 0xe3, 0x67, 0xfe, 0xc8, 0x8c, 0xc8, 0x86, 0x09, 0x91, 0x78, 0xf4, 0x0c, 0xd7, 0x46, 0x2d, 0xcb, - 0x6e, 0xfb, 0xb2, 0x89, 0x9e, 0x60, 0xd0, 0x7c, 0xc9, 0xb6, 0x39, 0xfa, 0x16, 0x9e, 0xbe, 0xa6, - 0xbd, 0x3d, 0xef, 0x75, 0x9b, 0x5e, 0xd1, 0xe7, 0x0c, 0x77, 0x6b, 0x15, 0xb9, 0x3a, 0xfc, 0x27, - 0xb9, 0xaf, 0xc6, 0x4d, 0xfd, 0x6f, 0x8d, 0x1b, 0xa0, 0x71, 0x24, 0xf4, 0x96, 0xbb, 0x63, 0x9b, - 0x9e, 0x1c, 0xa9, 0x27, 0x2c, 0x93, 0xa2, 0xdc, 0x06, 0x2e, 0x0b, 0xdf, 0xfc, 0xa5, 0xd4, 0x05, - 0xc6, 0x39, 0xb6, 0xa0, 0x45, 0x67, 0x50, 0xd6, 0xc0, 0xd5, 0xe4, 0xe3, 0x72, 0x63, 0x75, 0x65, - 0xd9, 0xd8, 0xdc, 0xea, 0x18, 0x9b, 0x5b, 0xae, 0x53, 0x31, 0x1d, 0x17, 0xe9, 0xed, 0xda, 0x86, - 0x46, 0x6e, 0x99, 0x02, 0x98, 0x8e, 0x48, 0x56, 0xde, 0xcb, 0x5b, 0x6c, 0x74, 0x63, 0x35, 0x25, - 0xa2, 0xa5, 0x3c, 0xc1, 0x6b, 0x29, 0xce, 0x4e, 0x27, 0xc0, 0xf4, 0x8a, 0x1e, 0x4c, 0x43, 0x55, - 0xdf, 0xe9, 0xe0, 0xe6, 0x82, 0x33, 0x27, 0x1d, 0xe7, 0x62, 0x38, 0x49, 0xbf, 0xd9, 0xfc, 0xaf, - 0x3c, 0xc8, 0x2d, 0xd9, 0x7a, 0x77, 0x0b, 0x3e, 0x83, 0xe9, 0x9f, 0x47, 0xd5, 0x26, 0x02, 0xed, - 0x94, 0x06, 0x69, 0xa7, 0x3c, 0x40, 0x3b, 0xb3, 0x8c, 0x76, 0x46, 0x2f, 0x3a, 0x9f, 0x01, 0xd3, - 0x2d, 0xab, 0xd3, 0x41, 0x2d, 0x4f, 0x1e, 0x95, 0x36, 0x5e, 0xed, 0x99, 0xd4, 0xb8, 0x34, 0x1c, - 0xf4, 0x1d, 0xb9, 0x75, 0xb2, 0xc6, 0x4e, 0x94, 0x3e, 0x4c, 0x80, 0x2f, 0x96, 0x40, 0x56, 0x6d, - 0x6f, 0x22, 0x6e, 0x1d, 0x3e, 0xc3, 0xac, 0xc3, 0x9f, 0x04, 0x79, 0x57, 0xb7, 0x37, 0x91, 0xeb, - 0xaf, 0x13, 0x90, 0xb7, 0x20, 0x16, 0xbd, 0xcc, 0xc4, 0xa2, 0xff, 0x59, 0x90, 0xf5, 0x64, 0x46, - 0x1d, 0xdb, 0xaf, 0xee, 0x07, 0x3f, 0x96, 0xfd, 0x9c, 0x57, 0xe2, 0x9c, 0x57, 0x6b, 0x0d, 0xff, - 0xd0, 0x8b, 0x75, 0x6e, 0x1f, 0xd6, 0xf8, 0xc2, 0xdc, 0x96, 0x65, 0x56, 0xb6, 0xf5, 0x4d, 0x44, - 0xab, 0x19, 0x26, 0xf8, 0x5f, 0xd5, 0x6d, 0xeb, 0x5e, 0x83, 0x2e, 0x6a, 0x85, 0x09, 0x5e, 0x15, - 0xb6, 0x8c, 0x76, 0x1b, 0x99, 0xb4, 0x65, 0xd3, 0xb7, 0x33, 0xa7, 0x41, 0xd6, 0xe3, 0xc1, 0xd3, - 0x1f, 0xcf, 0x58, 0x28, 0x1e, 0x51, 0xa6, 0xbd, 0x66, 0x45, 0x1a, 0x6f, 0x31, 0xc3, 0xaf, 0xb9, - 0x8a, 0xf8, 0xfd, 0x90, 0xca, 0xf5, 0x6f, 0x5c, 0x8f, 0x01, 0x39, 0xd3, 0x6a, 0xa3, 0x81, 0x83, - 0x10, 0xc9, 0xa5, 0x3c, 0x1e, 0xe4, 0x50, 0xdb, 0xeb, 0x15, 0x64, 0x9c, 0xfd, 0x74, 0xbc, 0x2c, - 0x35, 0x92, 0x39, 0x99, 0x73, 0x51, 0x3f, 0x6e, 0xd3, 0x6f, 0x80, 0xbf, 0x3e, 0x01, 0x8e, 0x92, - 0x3e, 0xa0, 0xbe, 0x73, 0xde, 0x23, 0x75, 0x1e, 0xc1, 0x07, 0xfb, 0x0f, 0x5c, 0x47, 0x79, 0x65, - 0x3f, 0x0e, 0x72, 0xce, 0xce, 0xf9, 0xc0, 0x08, 0x25, 0x2f, 0x6c, 0xd3, 0x95, 0x46, 0x32, 0x9c, - 0xc9, 0xc3, 0x0e, 0x67, 0xdc, 0xd0, 0x24, 0xfb, 0x8d, 0x3f, 0x1c, 0xc8, 0xc8, 0x91, 0x0c, 0x7f, - 0x20, 0xeb, 0x37, 0x0c, 0x9d, 0x02, 0x13, 0xfa, 0x86, 0x8b, 0xec, 0xd0, 0x4c, 0xa4, 0xaf, 0xde, - 0x50, 0x79, 0x1e, 0x6d, 0x58, 0xb6, 0x27, 0x16, 0x72, 0x15, 0x41, 0xf0, 0xce, 0xb4, 0x5c, 0xc0, - 0xed, 0xa0, 0xdd, 0x00, 0x8e, 0x99, 0xd6, 0x02, 0xea, 0x52, 0x39, 0x13, 0x14, 0x67, 0x70, 0x0b, - 0xd8, 0xff, 0x61, 0x5f, 0x57, 0x32, 0xbb, 0xbf, 0x2b, 0x81, 0x9f, 0x49, 0x3a, 0x67, 0xee, 0x01, - 0x7a, 0x64, 0x16, 0x9a, 0xf2, 0x24, 0x30, 0xdd, 0xa6, 0x3e, 0x5e, 0x2d, 0x23, 0x68, 0x25, 0x91, - 0xff, 0x71, 0x99, 0x43, 0x45, 0xca, 0xb2, 0x8a, 0xb4, 0x04, 0x0a, 0xf8, 0xf0, 0xb4, 0xa7, 0x49, - 0xb9, 0x1e, 0x9f, 0x7a, 0x3c, 0xad, 0x0b, 0x2a, 0xc5, 0x88, 0x6d, 0xae, 0x4c, 0x7f, 0xd1, 0x82, - 0x9f, 0x93, 0xcd, 0xbe, 0xe3, 0x25, 0x94, 0x7e, 0x73, 0xfc, 0xe3, 0x3c, 0xb8, 0xac, 0x6c, 0x5b, - 0x8e, 0x83, 0x0f, 0xd1, 0xf4, 0x36, 0xcc, 0xd7, 0x48, 0xdc, 0xad, 0x34, 0x0f, 0xeb, 0xe6, 0xd7, - 0xaf, 0x41, 0x8d, 0xaf, 0x69, 0x7c, 0x5d, 0x38, 0xec, 0x4c, 0xb0, 0xff, 0x10, 0x21, 0xf4, 0x9f, - 0x8c, 0x46, 0xf2, 0xf6, 0x8c, 0x48, 0x24, 0x9c, 0x84, 0xb2, 0x4a, 0xbf, 0xb9, 0x7c, 0x59, 0x02, - 0x97, 0xf7, 0x72, 0xb3, 0x6e, 0x3a, 0x41, 0x83, 0xb9, 0x72, 0x40, 0x7b, 0xe1, 0x23, 0xa7, 0xc4, - 0xde, 0x07, 0x1b, 0x51, 0x77, 0xa6, 0xb4, 0x88, 0xc5, 0x92, 0xf0, 0x48, 0x4e, 0xdc, 0x7d, 0xb0, - 0x89, 0xc9, 0xa7, 0x2f, 0xdc, 0xcf, 0x66, 0xc1, 0xd1, 0x25, 0xdb, 0xda, 0xe9, 0x3a, 0x61, 0x0f, - 0xf4, 0xf7, 0xfd, 0x37, 0x64, 0xf3, 0x22, 0xa6, 0xc1, 0x55, 0x60, 0xca, 0xa6, 0xd6, 0x5c, 0xb8, - 0x3d, 0xcb, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x90, 0xde, 0x2b, 0xec, 0x67, 0xb2, 0x5c, 0x3f, 0xd3, - 0xdb, 0x73, 0xe4, 0xfa, 0xf4, 0x1c, 0x7f, 0x27, 0x25, 0x1c, 0x54, 0x7b, 0x44, 0x14, 0xd1, 0x5f, - 0x94, 0x41, 0x7e, 0x13, 0x67, 0xa4, 0xdd, 0xc5, 0xa3, 0xc5, 0x6a, 0x86, 0x89, 0x6b, 0xf4, 0xd7, - 0x50, 0xae, 0x32, 0xab, 0xc3, 0x89, 0x06, 0xb8, 0x78, 0x6e, 0xd3, 0x57, 0xaa, 0x07, 0xb2, 0x60, - 0x3a, 0x28, 0xbd, 0xd2, 0x76, 0xe0, 0xf3, 0xfa, 0x6b, 0xd4, 0x8c, 0x88, 0x46, 0xed, 0x5b, 0x67, - 0x0e, 0x46, 0x1d, 0x99, 0x19, 0x75, 0xfa, 0x8e, 0x2e, 0xd3, 0x11, 0xa3, 0x0b, 0x7c, 0xba, 0x2c, - 0x7a, 0xaf, 0x1b, 0xdf, 0xb5, 0xe2, 0xda, 0x3c, 0x9c, 0x07, 0x0b, 0xc1, 0xdb, 0xe5, 0x06, 0xd7, - 0x2a, 0x7d, 0x25, 0x79, 0xbf, 0x04, 0x8e, 0xed, 0xef, 0xcc, 0x7f, 0x8a, 0xf7, 0x52, 0xf3, 0xea, - 0xe4, 0x04, 0x5e, 0x6a, 0xf8, 0x8d, 0xdf, 0xa4, 0x8b, 0x0d, 0x63, 0xc2, 0xd9, 0x7b, 0x83, 0x3b, - 0x71, 0xb1, 0x40, 0x25, 0x82, 0x44, 0xd3, 0x17, 0xe0, 0x6f, 0xcb, 0x60, 0xb2, 0x8e, 0xdc, 0x15, - 0x7d, 0xcf, 0xda, 0x71, 0xa1, 0x2e, 0xba, 0x3d, 0xf7, 0x44, 0x90, 0xef, 0xe0, 0x5f, 0x70, 0x07, - 0xc3, 0x86, 0x0d, 0x65, 0xf7, 0xb7, 0xb0, 0x6f, 0x10, 0x21, 0xad, 0xd1, 0xfc, 0x7c, 0xfc, 0x18, - 0x91, 0xdd, 0xd1, 0x80, 0xbb, 0x91, 0x6c, 0xed, 0x24, 0xda, 0x3b, 0x8d, 0x2a, 0x3a, 0x7d, 0x58, - 0x9e, 0x29, 0x83, 0x99, 0x3a, 0x72, 0x2b, 0xce, 0xa2, 0xbe, 0x6b, 0xd9, 0x86, 0x8b, 0xd8, 0xfb, - 0x72, 0xe3, 0xa1, 0x39, 0x0d, 0x80, 0x11, 0xfc, 0x46, 0xa3, 0x5a, 0x31, 0x29, 0xf0, 0xf5, 0x49, - 0x1d, 0x85, 0x38, 0x3e, 0x46, 0x02, 0x42, 0x22, 0x1f, 0x8b, 0xb8, 0xe2, 0xd3, 0x07, 0xe2, 0x8b, - 0x12, 0x05, 0xa2, 0x64, 0xb7, 0xb6, 0x8c, 0x5d, 0xd4, 0x4e, 0x08, 0x84, 0xff, 0x5b, 0x08, 0x44, - 0x40, 0x28, 0xb1, 0xfb, 0x0a, 0xc7, 0xc7, 0x28, 0xdc, 0x57, 0xe2, 0x08, 0x8e, 0x25, 0x30, 0x95, - 0xd7, 0xf5, 0xd0, 0xf5, 0xcc, 0x3b, 0x44, 0xc5, 0x1a, 0x9a, 0x6c, 0x12, 0x6b, 0xb2, 0x0d, 0xd5, - 0xb1, 0x90, 0xb2, 0x07, 0xe9, 0x74, 0x36, 0x8d, 0x8e, 0xa5, 0x6f, 0xd1, 0xe9, 0x0b, 0xfd, 0x9d, - 0x32, 0x38, 0x11, 0x44, 0x6c, 0xa9, 0x23, 0x77, 0x41, 0x77, 0xb6, 0xce, 0x5b, 0xba, 0xdd, 0x86, - 0xe5, 0x11, 0x1c, 0x19, 0x84, 0x5f, 0x60, 0x41, 0xa8, 0xf2, 0x20, 0xf4, 0x75, 0x25, 0xed, 0xcb, - 0xcb, 0x28, 0x3a, 0x99, 0x58, 0x6f, 0xd7, 0x37, 0x07, 0x60, 0xfd, 0x1c, 0x07, 0xd6, 0xed, 0xc3, - 0xb2, 0x98, 0x3e, 0x70, 0xbf, 0x47, 0x46, 0x04, 0xc6, 0xeb, 0xf9, 0x1e, 0x51, 0xc0, 0x22, 0xbc, - 0x5e, 0xe5, 0x48, 0xaf, 0xd7, 0xa1, 0xc6, 0x88, 0x81, 0x1e, 0xcb, 0xe9, 0x8e, 0x11, 0x87, 0xe8, - 0x8d, 0xfc, 0x56, 0x19, 0x14, 0x71, 0xc8, 0x2e, 0xc6, 0x23, 0x9c, 0x8d, 0x80, 0x1d, 0x8f, 0xce, - 0x3e, 0xef, 0xf3, 0x89, 0xa4, 0xde, 0xe7, 0xf0, 0x2d, 0x49, 0x7d, 0xcc, 0x7b, 0xb9, 0x1d, 0x09, - 0x62, 0x89, 0x5c, 0xc8, 0x07, 0x70, 0x90, 0x3e, 0x68, 0xbf, 0x21, 0x03, 0xe0, 0x35, 0x68, 0x7a, - 0x36, 0xe2, 0x29, 0xa2, 0x70, 0xdd, 0xc8, 0xfa, 0xdd, 0x7b, 0x40, 0x9d, 0xe8, 0x01, 0x8a, 0x50, - 0x0c, 0x4f, 0x5d, 0x3c, 0x98, 0xd4, 0xb7, 0x32, 0xe4, 0x6a, 0x24, 0xb0, 0x24, 0xf2, 0xb6, 0x8c, - 0x2c, 0x3b, 0x7d, 0x40, 0xfe, 0x9b, 0x04, 0x72, 0x0d, 0xab, 0x8e, 0xdc, 0x83, 0x9b, 0x02, 0x89, - 0xcf, 0xfd, 0xe3, 0x72, 0x47, 0x71, 0xee, 0xbf, 0x1f, 0xa1, 0xf4, 0x45, 0xf7, 0x0e, 0x09, 0x4c, - 0x37, 0xac, 0x72, 0xb0, 0x38, 0x25, 0xee, 0xab, 0x2a, 0x7e, 0x37, 0x7d, 0x50, 0xc1, 0xb0, 0x98, - 0x03, 0xdd, 0x4d, 0x3f, 0x98, 0x5e, 0xfa, 0x72, 0xbb, 0x05, 0x1c, 0x5d, 0x37, 0xdb, 0x96, 0x86, - 0xda, 0x16, 0x5d, 0xe9, 0x56, 0x14, 0x90, 0xdd, 0x31, 0xdb, 0x16, 0x66, 0x39, 0xa7, 0xe1, 0x67, - 0x2f, 0xcd, 0x46, 0x6d, 0x8b, 0xfa, 0x06, 0xe0, 0x67, 0xf8, 0x75, 0x19, 0x64, 0xbd, 0x7f, 0xc5, - 0x45, 0xfd, 0x56, 0x39, 0x61, 0x24, 0x03, 0x8f, 0xfc, 0x48, 0x2c, 0xa1, 0x3b, 0x98, 0xb5, 0x7f, - 0xe2, 0xc1, 0x7a, 0x75, 0x54, 0x79, 0x8c, 0x28, 0xc2, 0x35, 0x7f, 0xe5, 0x14, 0x98, 0x38, 0xdf, - 0xb1, 0x5a, 0x17, 0xc2, 0x03, 0xf7, 0xf4, 0x55, 0xb9, 0x1e, 0xe4, 0x6c, 0xdd, 0xdc, 0x44, 0x74, - 0x4f, 0xe1, 0x78, 0x4f, 0x5f, 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x05, 0xbe, 0x25, 0x49, 0x0c, 0x85, - 0x3e, 0x95, 0x4f, 0xa6, 0x0f, 0x0b, 0x43, 0x9c, 0x3c, 0x2b, 0x82, 0xe9, 0x72, 0xa9, 0x4a, 0xae, - 0x13, 0xac, 0x9d, 0x55, 0x8b, 0x32, 0x86, 0xd9, 0x93, 0x49, 0x8a, 0x30, 0x7b, 0xe4, 0x7f, 0x62, - 0x61, 0xee, 0x53, 0xf9, 0xc3, 0x80, 0xf9, 0x93, 0x12, 0x98, 0x59, 0x31, 0x1c, 0x37, 0xca, 0xdb, - 0x3f, 0x26, 0x62, 0xef, 0xf3, 0x93, 0x9a, 0xca, 0x5c, 0x39, 0xc2, 0xa1, 0x7a, 0x13, 0x99, 0xc3, - 0x71, 0x45, 0x8c, 0xe7, 0x58, 0x0a, 0xe6, 0x80, 0xdc, 0xc5, 0x2e, 0x2c, 0xc9, 0xc4, 0x86, 0x52, - 0x58, 0xc8, 0xf8, 0x0d, 0xa5, 0xc8, 0xb2, 0xd3, 0x97, 0xef, 0xd7, 0x25, 0x70, 0xcc, 0x2b, 0x3e, - 0x6e, 0x59, 0x2a, 0x5a, 0xcc, 0x03, 0x97, 0xa5, 0x12, 0xaf, 0x8c, 0xef, 0xe3, 0x65, 0x14, 0x2b, - 0xe3, 0x83, 0x88, 0x8e, 0x59, 0xcc, 0x11, 0xcb, 0xb0, 0x83, 0xc4, 0x1c, 0xb3, 0x0c, 0x3b, 0xbc, - 0x98, 0xe3, 0x97, 0x62, 0x87, 0x14, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0xa1, 0x1c, 0x88, 0x39, 0x72, - 0x6d, 0x23, 0x46, 0xcc, 0x89, 0x4f, 0xf4, 0xf2, 0xd7, 0xdb, 0x27, 0x10, 0xfc, 0x88, 0xd7, 0x37, - 0x86, 0x81, 0xe9, 0x10, 0xd7, 0x38, 0x5e, 0x22, 0x83, 0x59, 0xca, 0x45, 0xff, 0x29, 0x73, 0x0c, - 0x46, 0x89, 0xa7, 0xcc, 0x89, 0xcf, 0x00, 0xf1, 0x9c, 0x8d, 0xff, 0x0c, 0x50, 0x6c, 0xf9, 0xe9, - 0x83, 0xf3, 0x8d, 0x2c, 0x38, 0xe9, 0xb1, 0xb0, 0x6a, 0xb5, 0x8d, 0x8d, 0x3d, 0xc2, 0xc5, 0x59, - 0xbd, 0xb3, 0x83, 0x1c, 0xf8, 0x6e, 0x49, 0x14, 0xa5, 0xff, 0x03, 0x00, 0xab, 0x8b, 0x6c, 0x12, - 0x89, 0x8d, 0x02, 0x75, 0x5b, 0x54, 0x65, 0xf7, 0x97, 0x14, 0x5c, 0x60, 0x53, 0xf3, 0x89, 0x68, - 0x0c, 0x3d, 0xcf, 0x2a, 0x9c, 0x0c, 0xbe, 0xf4, 0x3a, 0x78, 0x64, 0xf6, 0x3b, 0x78, 0x5c, 0x07, - 0x64, 0xbd, 0xdd, 0x0e, 0xa0, 0xea, 0xdd, 0xcc, 0xc6, 0x65, 0x6a, 0x5e, 0x16, 0x2f, 0xa7, 0x83, - 0xc2, 0xa3, 0x79, 0x11, 0x39, 0x1d, 0xe4, 0x2a, 0x73, 0x20, 0x4f, 0x6e, 0xe5, 0x0e, 0x56, 0xf4, - 0xfb, 0x67, 0xa6, 0xb9, 0x78, 0xd3, 0xae, 0xc6, 0xab, 0xe1, 0x2d, 0x89, 0x24, 0xd3, 0xaf, 0x9f, - 0x0e, 0xed, 0x64, 0x8d, 0x53, 0xb0, 0x27, 0x0f, 0x4d, 0x79, 0x3c, 0xbb, 0x61, 0xa5, 0x6e, 0xb7, - 0xb3, 0xd7, 0xa0, 0x81, 0x07, 0x12, 0xed, 0x86, 0x31, 0xf1, 0x0b, 0xa4, 0x7d, 0xf1, 0x0b, 0x12, - 0xef, 0x86, 0x71, 0x7c, 0x8c, 0x62, 0x37, 0x2c, 0x8e, 0x60, 0xfa, 0xa2, 0xfd, 0x44, 0x81, 0x58, - 0xcd, 0xf4, 0x3e, 0x81, 0xcf, 0xf4, 0xf7, 0xac, 0x06, 0xbc, 0xb3, 0x4b, 0xbf, 0xab, 0x06, 0x62, - 0xef, 0x51, 0x51, 0x1e, 0x0f, 0xf2, 0x1b, 0x96, 0xbd, 0xad, 0xfb, 0x1b, 0xf7, 0xbd, 0x27, 0x45, - 0x68, 0x0c, 0xff, 0x45, 0x9c, 0x47, 0xa3, 0x79, 0xbd, 0xf9, 0xc8, 0xd3, 0x8c, 0x2e, 0x0d, 0xdb, - 0xe8, 0x3d, 0x2a, 0xd7, 0x80, 0x19, 0x1a, 0xbd, 0xb1, 0x8a, 0x1c, 0x17, 0xb5, 0x69, 0x44, 0x0b, - 0x3e, 0x51, 0x39, 0x03, 0xa6, 0x69, 0xc2, 0xa2, 0xd1, 0x41, 0x0e, 0x0d, 0x6a, 0xc1, 0xa5, 0x29, - 0x27, 0x41, 0xde, 0x70, 0xee, 0x72, 0x2c, 0x13, 0xfb, 0xff, 0x17, 0x34, 0xfa, 0xa6, 0x5c, 0x07, - 0x8e, 0xd2, 0x7c, 0x81, 0xb1, 0x4a, 0x0e, 0xec, 0xf4, 0x26, 0x7b, 0xaa, 0x65, 0x5a, 0x6b, 0xb6, - 0xb5, 0x69, 0x23, 0xc7, 0xc1, 0xa7, 0xa6, 0x0a, 0x1a, 0x93, 0xa2, 0xdc, 0x03, 0x8e, 0x75, 0x0c, - 0xf3, 0x82, 0x83, 0xa3, 0xfc, 0x2e, 0x52, 0xb7, 0xb1, 0xe9, 0x3e, 0xd1, 0xb7, 0x99, 0xc6, 0x46, - 0xe5, 0xc0, 0xfe, 0xa2, 0xed, 0xa7, 0xa2, 0x5c, 0x0f, 0x8a, 0x94, 0x9b, 0x79, 0xbd, 0x75, 0x01, - 0x7f, 0xa7, 0xee, 0xa8, 0xfb, 0xd2, 0xe1, 0x8b, 0x32, 0x60, 0x9a, 0xfb, 0x59, 0x07, 0x8a, 0xdf, - 0xe5, 0x39, 0xe7, 0xb6, 0x0c, 0x17, 0x79, 0x05, 0xd3, 0x73, 0x2c, 0x37, 0x0d, 0x60, 0x4c, 0xdb, - 0xf7, 0xa3, 0xd6, 0x87, 0x98, 0x07, 0x00, 0xe9, 0xcc, 0xb0, 0xd7, 0x98, 0x43, 0xed, 0x50, 0x2e, - 0x0d, 0x3e, 0x0d, 0x28, 0xfb, 0xa9, 0x31, 0x1e, 0x1e, 0x99, 0x64, 0x1e, 0x1e, 0x9e, 0x4c, 0xf4, - 0x4e, 0xc7, 0xba, 0x88, 0xda, 0x01, 0x59, 0xaa, 0x87, 0xfb, 0xd2, 0xe1, 0xe7, 0x86, 0x99, 0xf3, - 0x25, 0xbe, 0xf6, 0xc2, 0x6b, 0x40, 0x3b, 0xad, 0x16, 0x42, 0x6d, 0x7a, 0x28, 0xcd, 0x7f, 0x4d, - 0x78, 0x21, 0x46, 0xe2, 0x19, 0xe2, 0x21, 0xdd, 0x88, 0xf1, 0xa1, 0x13, 0x20, 0x4f, 0x6e, 0x97, - 0x83, 0x2f, 0x9a, 0xed, 0xdb, 0x8f, 0xcc, 0xf2, 0xfd, 0xc8, 0x3a, 0x98, 0x36, 0x2d, 0xaf, 0xb8, - 0x35, 0xdd, 0xd6, 0xb7, 0x9d, 0xb8, 0x05, 0x60, 0x42, 0x37, 0x18, 0xed, 0xab, 0xcc, 0x6f, 0xcb, - 0x47, 0x34, 0x8e, 0x8c, 0xf2, 0x7f, 0x82, 0xa3, 0xe7, 0x69, 0xf0, 0x06, 0x87, 0x52, 0x96, 0xa2, - 0xdd, 0x23, 0x7b, 0x28, 0xcf, 0xf3, 0x7f, 0x2e, 0x1f, 0xd1, 0x7a, 0x89, 0x29, 0xbf, 0x00, 0x66, - 0xbd, 0xd7, 0xb6, 0x75, 0xd1, 0x67, 0x5c, 0x8e, 0xb6, 0x11, 0x7b, 0xc8, 0xaf, 0x72, 0x3f, 0x2e, - 0x1f, 0xd1, 0x7a, 0x48, 0x29, 0x35, 0x00, 0xb6, 0xdc, 0xed, 0x0e, 0x25, 0x9c, 0x8d, 0x56, 0xc9, - 0x1e, 0xc2, 0xcb, 0xc1, 0x4f, 0xcb, 0x47, 0x34, 0x86, 0x84, 0xb2, 0x02, 0x26, 0xdd, 0xfb, 0x5c, - 0x4a, 0x2f, 0x17, 0xed, 0x97, 0xd0, 0x43, 0xaf, 0xe1, 0xff, 0xb3, 0x7c, 0x44, 0x0b, 0x09, 0x28, - 0x15, 0x50, 0xe8, 0x9e, 0xa7, 0xc4, 0xf2, 0xd1, 0x7d, 0x59, 0x0f, 0xb1, 0xb5, 0xf3, 0x01, 0xad, - 0xe0, 0x77, 0x8f, 0xb1, 0x96, 0xb3, 0x4b, 0x69, 0x4d, 0x08, 0x33, 0x56, 0xf6, 0xff, 0xf1, 0x18, - 0x0b, 0x08, 0x28, 0x15, 0x30, 0xe9, 0x98, 0x7a, 0xd7, 0xd9, 0xb2, 0x5c, 0xe7, 0x54, 0xa1, 0xc7, - 0x85, 0x35, 0x9a, 0x5a, 0x9d, 0xfe, 0xa3, 0x85, 0x7f, 0x2b, 0x8f, 0x07, 0x27, 0x76, 0xba, 0x6d, - 0xdd, 0x45, 0xea, 0x7d, 0x86, 0xe3, 0x1a, 0xe6, 0xa6, 0x1f, 0x3f, 0x98, 0x0c, 0x04, 0xfd, 0x3f, - 0x2a, 0x73, 0xf4, 0x30, 0x1b, 0xc0, 0x6d, 0x13, 0xf6, 0xee, 0xa3, 0x92, 0x62, 0x99, 0x33, 0x6c, - 0x4f, 0x02, 0x59, 0xef, 0x13, 0x1e, 0x38, 0x66, 0xfb, 0xaf, 0xd1, 0xf6, 0xea, 0x0e, 0x6e, 0xc0, - 0xde, 0x4f, 0x3d, 0x63, 0xcf, 0xf4, 0xbe, 0xb1, 0xe7, 0x2a, 0x30, 0x65, 0x38, 0xab, 0xc6, 0x26, - 0x31, 0x7c, 0xe9, 0xd8, 0xc0, 0x26, 0x91, 0x85, 0x82, 0x2a, 0xba, 0x48, 0x6e, 0x47, 0x39, 0xea, - 0x2f, 0x14, 0xf8, 0x29, 0xf0, 0x5a, 0x30, 0xcd, 0x36, 0x32, 0x72, 0x45, 0xad, 0x11, 0x9a, 0xcd, - 0xf4, 0x0d, 0x5e, 0x03, 0x66, 0x79, 0x9d, 0x66, 0xac, 0x03, 0xd9, 0xef, 0x0a, 0xe1, 0xd5, 0xe0, - 0x68, 0x4f, 0xc3, 0xf2, 0xc3, 0xc1, 0x64, 0xc2, 0x70, 0x30, 0x57, 0x01, 0x10, 0x6a, 0x71, 0x5f, - 0x32, 0x57, 0x82, 0xc9, 0x40, 0x2f, 0xfb, 0x66, 0xf8, 0x6a, 0x06, 0x14, 0x7c, 0x65, 0xeb, 0x97, - 0xc1, 0x1b, 0x99, 0x4c, 0x66, 0xef, 0xc7, 0x1f, 0x99, 0xd8, 0x34, 0xcf, 0x04, 0x08, 0x3d, 0xae, - 0x1b, 0x86, 0xdb, 0xf1, 0x4f, 0x2d, 0xf6, 0x26, 0x2b, 0x6b, 0x00, 0x18, 0x18, 0xa3, 0x46, 0x78, - 0x8c, 0xf1, 0xb1, 0x09, 0xda, 0x03, 0xd1, 0x07, 0x86, 0xc6, 0x99, 0x9f, 0xa2, 0x67, 0x0c, 0x27, - 0x41, 0x8e, 0x04, 0xd1, 0x3f, 0xa2, 0xcc, 0x02, 0xa0, 0x3e, 0x65, 0x4d, 0xd5, 0x2a, 0x6a, 0xb5, - 0xac, 0x16, 0x33, 0xf0, 0xa5, 0x12, 0x98, 0x0c, 0x1a, 0x41, 0xdf, 0x4a, 0xaa, 0x54, 0xb5, 0x06, - 0xde, 0x02, 0xba, 0xbf, 0x51, 0xb1, 0x4a, 0xf6, 0x44, 0x70, 0xe9, 0x8e, 0x83, 0x16, 0x0d, 0xdb, - 0x71, 0x35, 0xeb, 0xe2, 0xa2, 0x65, 0x87, 0x03, 0x2b, 0x09, 0x5e, 0x1b, 0xf5, 0xd9, 0x33, 0x06, - 0xdb, 0x08, 0x9f, 0x67, 0x43, 0x36, 0x5d, 0xd4, 0x0f, 0x13, 0x3c, 0xba, 0xae, 0xad, 0x9b, 0x4e, - 0xd7, 0x72, 0x90, 0x66, 0x5d, 0x74, 0x4a, 0x66, 0xbb, 0x6c, 0x75, 0x76, 0xb6, 0x4d, 0x87, 0x9a, - 0x73, 0x51, 0x9f, 0x3d, 0xe9, 0xe0, 0x3b, 0x7e, 0x67, 0x01, 0x28, 0xd7, 0x56, 0x56, 0xd4, 0x72, - 0xa3, 0x52, 0xab, 0x16, 0x8f, 0x78, 0xd2, 0x6a, 0x94, 0xe6, 0x57, 0x3c, 0xe9, 0xfc, 0x22, 0x28, - 0xf8, 0x6d, 0x9a, 0x46, 0xb0, 0xc9, 0xf8, 0x11, 0x6c, 0x94, 0x12, 0x28, 0xf8, 0xad, 0x9c, 0x8e, - 0x08, 0x8f, 0xec, 0x3d, 0xb1, 0xbc, 0xad, 0xdb, 0x2e, 0x36, 0x50, 0x7c, 0x22, 0xf3, 0xba, 0x83, - 0xb4, 0xe0, 0xb7, 0x33, 0x8f, 0xa1, 0x1c, 0x28, 0x60, 0xb6, 0xb4, 0xb2, 0xd2, 0xac, 0x69, 0xcd, - 0x6a, 0xad, 0xb1, 0x5c, 0xa9, 0x2e, 0x91, 0x11, 0xb2, 0xb2, 0x54, 0xad, 0x69, 0x2a, 0x19, 0x20, - 0xeb, 0xc5, 0x0c, 0xb9, 0x63, 0x7a, 0xbe, 0x00, 0xf2, 0x5d, 0x2c, 0x5d, 0xf8, 0x65, 0x39, 0x61, - 0xa8, 0x82, 0x00, 0xa7, 0x88, 0x5b, 0x70, 0xb9, 0xe3, 0x02, 0x52, 0x9f, 0xe3, 0xbc, 0x67, 0xc0, - 0x34, 0x31, 0xc3, 0x1d, 0xbc, 0xf3, 0x82, 0x91, 0x93, 0x35, 0x2e, 0x0d, 0x7e, 0x44, 0x4a, 0x10, - 0xbf, 0xa0, 0x2f, 0x47, 0xc9, 0x8c, 0x8b, 0xbf, 0xce, 0x0c, 0x77, 0xe5, 0x44, 0xa5, 0xda, 0x50, - 0xb5, 0x6a, 0x69, 0x85, 0x66, 0x91, 0x95, 0x53, 0xe0, 0x78, 0xb5, 0x46, 0xc3, 0x35, 0xd6, 0x9b, - 0x8d, 0x5a, 0xb3, 0xb2, 0xba, 0x56, 0xd3, 0x1a, 0xc5, 0x9c, 0x72, 0x12, 0x28, 0xe4, 0xb9, 0x59, - 0xa9, 0x37, 0xcb, 0xa5, 0x6a, 0x59, 0x5d, 0x51, 0x17, 0x8a, 0x79, 0xe5, 0x51, 0xe0, 0x6a, 0x72, - 0x85, 0x51, 0x6d, 0xb1, 0xa9, 0xd5, 0xce, 0xd5, 0x3d, 0x04, 0x35, 0x75, 0xa5, 0xe4, 0x29, 0x12, - 0x73, 0xd7, 0xf4, 0x84, 0x72, 0x09, 0x38, 0x8a, 0x2f, 0xa2, 0x5f, 0xa9, 0x95, 0x16, 0x68, 0x79, - 0x05, 0xe5, 0x0a, 0x70, 0xaa, 0x52, 0xad, 0xaf, 0x2f, 0x2e, 0x56, 0xca, 0x15, 0xb5, 0xda, 0x68, - 0xae, 0xa9, 0xda, 0x6a, 0xa5, 0x5e, 0xf7, 0xfe, 0x2d, 0x4e, 0xe2, 0x9b, 0x7c, 0x49, 0x9f, 0x09, - 0xdf, 0x25, 0x83, 0x99, 0xb3, 0x7a, 0xc7, 0xf0, 0x06, 0x0a, 0x7c, 0xc5, 0x77, 0xcf, 0x49, 0x1f, - 0x17, 0x5f, 0x05, 0x4e, 0xcf, 0x0a, 0xe0, 0x17, 0xf8, 0xab, 0x72, 0xc2, 0x93, 0x3e, 0x14, 0x08, - 0x52, 0xe2, 0x1c, 0x57, 0x5a, 0xc4, 0xbc, 0xf4, 0x95, 0x52, 0x82, 0x93, 0x3e, 0xe2, 0xe4, 0x93, - 0x81, 0xff, 0xfb, 0xa3, 0x02, 0xbf, 0x08, 0xa6, 0xd7, 0xab, 0xa5, 0xf5, 0xc6, 0x72, 0x4d, 0xab, - 0xfc, 0x3c, 0x8e, 0x34, 0x3f, 0x03, 0x26, 0x17, 0x6b, 0xda, 0x7c, 0x65, 0x61, 0x41, 0xad, 0x16, - 0x73, 0xca, 0xa5, 0xe0, 0x92, 0xba, 0xaa, 0x9d, 0xad, 0x94, 0xd5, 0xe6, 0x7a, 0xb5, 0x74, 0xb6, - 0x54, 0x59, 0xc1, 0x7d, 0x44, 0x3e, 0xe6, 0x7a, 0xf2, 0x09, 0xf8, 0xcb, 0x59, 0x00, 0x48, 0xd5, - 0xf1, 0x45, 0x4b, 0xcc, 0x25, 0xd6, 0x7f, 0x93, 0x74, 0xd2, 0x10, 0x92, 0x89, 0x68, 0xbf, 0x15, - 0x50, 0xb0, 0xe9, 0x07, 0xba, 0xf2, 0x35, 0x88, 0x0e, 0x79, 0xf4, 0xa9, 0x69, 0xc1, 0xef, 0xf0, - 0xdd, 0x49, 0xe6, 0x08, 0x91, 0x8c, 0x25, 0x43, 0x72, 0x71, 0x34, 0x40, 0xc2, 0xe7, 0x65, 0xc0, - 0x2c, 0x5f, 0x31, 0xaf, 0x12, 0xd8, 0x98, 0x12, 0xab, 0x04, 0xff, 0x33, 0x63, 0x64, 0x9d, 0x79, - 0x1c, 0x1d, 0x4e, 0x81, 0xdf, 0x32, 0xc9, 0xa1, 0x7d, 0xdf, 0x62, 0x29, 0x66, 0x3c, 0xe6, 0x3d, - 0xa3, 0xa3, 0x28, 0x29, 0x13, 0x40, 0x6e, 0xdc, 0xe7, 0x16, 0x65, 0xf8, 0x55, 0x19, 0xcc, 0x70, - 0xb7, 0x64, 0xc3, 0x57, 0x66, 0x44, 0x6e, 0xb0, 0x65, 0xee, 0xdf, 0xce, 0x1c, 0xf4, 0xfe, 0xed, - 0x33, 0x37, 0x82, 0x09, 0x9a, 0x86, 0xe5, 0x5b, 0xab, 0x7a, 0xa6, 0xc0, 0x51, 0x30, 0xb5, 0xa4, - 0x36, 0x9a, 0xf5, 0x46, 0x49, 0x6b, 0xa8, 0x0b, 0xc5, 0x8c, 0x37, 0xf0, 0xa9, 0xab, 0x6b, 0x8d, - 0x7b, 0x8a, 0x52, 0x72, 0xe7, 0xc9, 0x5e, 0x46, 0xc6, 0xec, 0x3c, 0x19, 0x57, 0x7c, 0xfa, 0x73, - 0xd5, 0xcf, 0xc8, 0xa0, 0x48, 0x38, 0x50, 0xef, 0xeb, 0x22, 0xdb, 0x40, 0x66, 0x0b, 0xc1, 0x0b, - 0x22, 0xc1, 0x5c, 0xf7, 0x85, 0x31, 0xc4, 0xfd, 0x39, 0x63, 0x25, 0x92, 0x97, 0x1e, 0x03, 0x3b, - 0xbb, 0xcf, 0xc0, 0xfe, 0x74, 0x52, 0xef, 0xc9, 0x5e, 0x76, 0x47, 0x02, 0xd9, 0xc7, 0x93, 0x78, - 0x4f, 0x0e, 0xe0, 0x60, 0x2c, 0x31, 0x9a, 0x23, 0xc6, 0xdf, 0xa2, 0x0c, 0x9f, 0x2b, 0x83, 0xa3, - 0x0b, 0xba, 0x8b, 0xe6, 0xf7, 0x1a, 0xfe, 0x2d, 0x96, 0x11, 0x37, 0x4f, 0x67, 0xf6, 0xdd, 0x3c, - 0x1d, 0x5e, 0x84, 0x29, 0xf5, 0x5c, 0x84, 0x09, 0xdf, 0x9e, 0xf4, 0xbc, 0x65, 0x0f, 0x0f, 0x23, - 0x0b, 0xa4, 0x9c, 0xec, 0x1c, 0x65, 0x3c, 0x17, 0xe9, 0x37, 0xb0, 0x37, 0x4d, 0x82, 0x22, 0x61, - 0x85, 0x71, 0x10, 0xfc, 0x6d, 0x7a, 0x59, 0x7b, 0x33, 0x41, 0x3c, 0x46, 0x3f, 0xc2, 0x85, 0xc4, - 0x47, 0xb8, 0xe0, 0xd6, 0x9b, 0xe5, 0x5e, 0xa7, 0x8e, 0xa4, 0x9d, 0x21, 0xe3, 0x0d, 0x18, 0x1d, - 0x02, 0x37, 0xbd, 0xce, 0x30, 0xb6, 0xf8, 0xf1, 0x5c, 0x28, 0x4c, 0xef, 0xf0, 0x54, 0x45, 0x91, - 0x89, 0xbf, 0x37, 0x3d, 0xa9, 0x6b, 0x38, 0xe7, 0x8d, 0x19, 0x73, 0x99, 0x78, 0x7a, 0xae, 0xe1, - 0x83, 0x38, 0x48, 0x1f, 0x85, 0x1f, 0x4a, 0x20, 0x5b, 0xb7, 0x6c, 0x77, 0x54, 0x18, 0x24, 0xdd, - 0xce, 0x66, 0x24, 0x50, 0x8f, 0x9e, 0x73, 0xa6, 0xb7, 0x9d, 0x1d, 0x5f, 0xfe, 0x18, 0x42, 0x5a, - 0x1e, 0x05, 0xb3, 0x84, 0x93, 0xe0, 0x3e, 0x98, 0x1f, 0x48, 0xa4, 0xbf, 0xba, 0x5b, 0x14, 0x11, - 0xbc, 0xf1, 0x11, 0x6c, 0x27, 0xfb, 0xa0, 0x70, 0x69, 0xf0, 0x35, 0x2c, 0x2e, 0x0b, 0x3c, 0x2e, - 0xfd, 0x66, 0xdc, 0xc1, 0x95, 0x2a, 0xa3, 0xea, 0x99, 0x92, 0x44, 0xc7, 0x8c, 0x29, 0x3c, 0x7d, - 0x44, 0xee, 0x97, 0x41, 0x9e, 0xba, 0xf3, 0x8d, 0x14, 0x81, 0xa4, 0x2d, 0x23, 0x10, 0x82, 0x98, - 0xdb, 0x9f, 0x3c, 0xea, 0x96, 0x11, 0x5f, 0x7e, 0xfa, 0x38, 0xfc, 0x88, 0xfa, 0xa9, 0x96, 0x76, - 0x75, 0xa3, 0xa3, 0x9f, 0xef, 0x24, 0x88, 0x4a, 0xfd, 0x91, 0x84, 0x27, 0xf3, 0x82, 0xaa, 0x72, - 0xe5, 0x45, 0x48, 0xfc, 0x67, 0xc0, 0xa4, 0xcd, 0xed, 0xf5, 0x79, 0x56, 0x54, 0x8f, 0x8f, 0x30, - 0xfd, 0xae, 0x85, 0x39, 0x13, 0x1d, 0xc3, 0x13, 0xe2, 0x67, 0x2c, 0xc7, 0x86, 0xa6, 0x4a, 0xed, - 0xf6, 0x22, 0xd2, 0xdd, 0x1d, 0x1b, 0xb5, 0x13, 0x0d, 0x11, 0x76, 0xcf, 0x76, 0x28, 0x23, 0x09, - 0x2e, 0x2e, 0xe4, 0x0a, 0x8f, 0xce, 0x13, 0x06, 0xf4, 0x06, 0x3e, 0x2f, 0x23, 0xe9, 0x92, 0xde, - 0x18, 0x40, 0x52, 0xe3, 0x20, 0x79, 0xd2, 0x70, 0x4c, 0xa4, 0x0f, 0xc8, 0xef, 0xca, 0x60, 0x96, - 0xd8, 0x09, 0xa3, 0xc6, 0xe4, 0x7d, 0x09, 0xdd, 0x7f, 0x98, 0x1b, 0xb7, 0x58, 0x76, 0x46, 0x02, - 0x4b, 0x12, 0x67, 0x21, 0x31, 0x3e, 0xd2, 0x47, 0xe6, 0x59, 0xc7, 0x00, 0x60, 0x5c, 0x3a, 0x3f, - 0x92, 0x0f, 0x63, 0x34, 0xc2, 0xb7, 0xd0, 0xf9, 0x47, 0x9d, 0x0b, 0x18, 0xce, 0xb8, 0x6b, 0x06, - 0x1b, 0x52, 0x7c, 0xa2, 0xd0, 0xa8, 0xf2, 0xd7, 0x09, 0x6d, 0x5e, 0xea, 0x50, 0x39, 0x70, 0x70, - 0x1f, 0xb2, 0x97, 0xfb, 0x68, 0x02, 0xe3, 0x77, 0x10, 0x2b, 0xc9, 0x50, 0x5b, 0x19, 0x62, 0x66, - 0x7f, 0x0a, 0x1c, 0xd7, 0xd4, 0xd2, 0x42, 0xad, 0xba, 0x72, 0x0f, 0x7b, 0xfd, 0x52, 0x51, 0x66, - 0x27, 0x27, 0xa9, 0xc0, 0xf6, 0xaa, 0x84, 0x7d, 0x20, 0x2f, 0xab, 0xb8, 0xd9, 0x0a, 0xb3, 0xb8, - 0x32, 0xb8, 0x57, 0x13, 0x20, 0x7b, 0x98, 0x28, 0x7c, 0x27, 0x0f, 0xa6, 0x34, 0xd4, 0xb2, 0xb6, - 0xb7, 0x91, 0xd9, 0x46, 0x6d, 0xf8, 0x2a, 0x19, 0x4c, 0x07, 0xfb, 0x7d, 0x75, 0xe4, 0xc2, 0x5f, - 0x08, 0xb1, 0x39, 0x03, 0xa6, 0xbd, 0xca, 0xd5, 0xf8, 0x20, 0xf0, 0x5c, 0x9a, 0x72, 0x03, 0x38, - 0xe6, 0xa3, 0x50, 0xeb, 0x99, 0xc2, 0xec, 0xff, 0x00, 0xdf, 0xc1, 0x62, 0xb4, 0xce, 0x63, 0x74, - 0x47, 0xb4, 0x30, 0x03, 0x76, 0xe7, 0x58, 0x56, 0x23, 0xc0, 0xfa, 0xab, 0x00, 0xac, 0xa7, 0x70, - 0x60, 0x2d, 0x1c, 0x90, 0xfe, 0x61, 0xa2, 0xf6, 0x5e, 0x19, 0x1c, 0xf7, 0x3b, 0xe2, 0xf1, 0xa1, - 0xf5, 0x51, 0x16, 0xad, 0x5f, 0xe4, 0xd1, 0x5a, 0x12, 0x91, 0x66, 0x3f, 0x96, 0x23, 0x50, 0xfb, - 0x52, 0x80, 0xda, 0x2f, 0x71, 0xa8, 0xad, 0x8c, 0xa8, 0x9c, 0xc3, 0x44, 0xef, 0x7d, 0x32, 0x38, - 0xe5, 0x99, 0x9d, 0x65, 0xcb, 0xdc, 0xe8, 0x18, 0x2d, 0xd7, 0x30, 0x37, 0x43, 0x17, 0xb6, 0x25, - 0x91, 0x95, 0xcd, 0x5e, 0x6c, 0xa5, 0xfd, 0xd8, 0xf2, 0xb1, 0x33, 0x44, 0xdb, 0x56, 0x14, 0x5b, - 0x11, 0x43, 0x18, 0xe3, 0x78, 0x1d, 0x6a, 0x0e, 0x9b, 0x94, 0xbc, 0xf5, 0x09, 0x72, 0x70, 0x98, - 0xf8, 0xdd, 0x0f, 0x18, 0xd3, 0xe3, 0x39, 0x32, 0x28, 0x62, 0x7f, 0x49, 0xdc, 0xb3, 0xd3, 0xbb, - 0x49, 0x6b, 0xbc, 0x97, 0x7c, 0xd7, 0x17, 0x90, 0xef, 0x25, 0xef, 0x27, 0x28, 0xd7, 0x82, 0xd9, - 0xd6, 0x16, 0x6a, 0x5d, 0xa8, 0x98, 0xbe, 0x2f, 0x12, 0x71, 0x5c, 0xe9, 0x49, 0xe5, 0x07, 0xb3, - 0xbb, 0x79, 0x30, 0xf9, 0x85, 0x47, 0x6e, 0x62, 0xc3, 0x32, 0x15, 0xd1, 0xd0, 0x3e, 0x11, 0x00, - 0x54, 0xe5, 0x00, 0xba, 0x75, 0x28, 0xaa, 0xc9, 0x60, 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, - 0x6b, 0x8d, 0x4a, 0xad, 0xda, 0x5c, 0xaf, 0xab, 0x0b, 0xcd, 0x79, 0x1f, 0x9c, 0x7a, 0x51, 0x86, - 0xdf, 0x94, 0xc0, 0x04, 0x61, 0xcb, 0x81, 0x8f, 0x0e, 0x21, 0x18, 0x78, 0x3c, 0x00, 0xbe, 0x49, - 0x38, 0xd8, 0x4f, 0x20, 0x08, 0x5a, 0x4e, 0x44, 0xc3, 0x78, 0x22, 0x98, 0x20, 0x20, 0xfb, 0xbb, - 0x00, 0xa7, 0x23, 0x2c, 0x3b, 0x4a, 0x46, 0xf3, 0xb3, 0x0b, 0x06, 0xfe, 0x19, 0xc0, 0x46, 0xfa, - 0xd6, 0xf8, 0xd3, 0xb3, 0x64, 0xe9, 0xe0, 0x9c, 0xe1, 0x6e, 0xe1, 0xd3, 0x03, 0xf0, 0xe7, 0x44, - 0x3a, 0xae, 0x1b, 0x40, 0x6e, 0xd7, 0xcb, 0x3d, 0xe0, 0x24, 0x06, 0xc9, 0x04, 0x7f, 0x5f, 0x38, - 0xce, 0x34, 0xa7, 0x9f, 0x01, 0x4f, 0x11, 0xe0, 0xac, 0x82, 0x6c, 0xc7, 0x70, 0x5c, 0x6a, 0x73, - 0xdf, 0x92, 0x88, 0x90, 0xff, 0x50, 0x71, 0xd1, 0xb6, 0x86, 0xc9, 0xc0, 0xbb, 0x3c, 0x8b, 0x29, - 0x4c, 0x15, 0x38, 0x8d, 0x72, 0x0a, 0x4c, 0xd0, 0x53, 0xd2, 0x74, 0x5b, 0xca, 0x7f, 0x15, 0xdc, - 0x0a, 0x12, 0xaa, 0x6d, 0xfa, 0x3a, 0xf0, 0xff, 0x1d, 0x05, 0x13, 0xcb, 0x86, 0xe3, 0x5a, 0xf6, - 0x1e, 0x7c, 0x30, 0x03, 0x26, 0xce, 0x22, 0xdb, 0x31, 0x2c, 0x73, 0x9f, 0x7b, 0xd6, 0x55, 0x60, - 0xaa, 0x6b, 0xa3, 0x5d, 0xc3, 0xda, 0x71, 0x98, 0x51, 0x82, 0x49, 0x52, 0x20, 0x28, 0xe8, 0x3b, - 0xee, 0x96, 0x65, 0x87, 0xc1, 0x95, 0xfc, 0x77, 0xe5, 0x34, 0x00, 0xe4, 0xb9, 0xaa, 0x6f, 0x23, - 0xff, 0xfe, 0xf4, 0x30, 0x45, 0x51, 0x40, 0xd6, 0x35, 0xb6, 0x11, 0x8d, 0xb6, 0x8e, 0x9f, 0x3d, - 0x01, 0xe3, 0xc8, 0xa5, 0x34, 0x42, 0xac, 0xac, 0xf9, 0xaf, 0xf0, 0x0b, 0x32, 0x98, 0x5a, 0x42, - 0x2e, 0x65, 0xd5, 0x81, 0xcf, 0xcf, 0x08, 0x5d, 0x70, 0xe4, 0xcd, 0x4b, 0x3a, 0xba, 0xe3, 0xff, - 0x17, 0x0c, 0xb9, 0x7c, 0x62, 0x18, 0xfa, 0x5d, 0x66, 0xef, 0x7d, 0xc0, 0x71, 0x40, 0xdd, 0x0a, - 0x71, 0xe0, 0xa7, 0x99, 0xe9, 0xc6, 0xf1, 0xfe, 0x0f, 0xbc, 0x4d, 0x1c, 0x1b, 0x43, 0x83, 0xca, - 0x7e, 0x8e, 0xa9, 0x4f, 0x64, 0x77, 0x54, 0xd8, 0xa5, 0x39, 0xf6, 0x5d, 0xe9, 0xc1, 0x52, 0xa2, - 0x64, 0xb4, 0x20, 0xb7, 0x60, 0xf4, 0x8d, 0xc1, 0x9c, 0x8c, 0xe1, 0x12, 0x57, 0x19, 0x4c, 0xd5, - 0xb7, 0xac, 0x8b, 0xbe, 0x1c, 0x7f, 0x51, 0x0c, 0xd8, 0x2b, 0xc0, 0xe4, 0x6e, 0x0f, 0xa8, 0x61, - 0x02, 0x7b, 0x6f, 0x9c, 0xcc, 0xdf, 0x1b, 0xf7, 0x6c, 0x39, 0x29, 0x4c, 0x0c, 0x73, 0x11, 0x30, - 0xf1, 0x57, 0xbd, 0x49, 0x09, 0xae, 0x7a, 0x53, 0x9e, 0x00, 0x26, 0x28, 0xd7, 0x74, 0x99, 0x3a, - 0x1e, 0x60, 0x3f, 0x33, 0x5b, 0xc1, 0x2c, 0x5f, 0xc1, 0x64, 0xc8, 0x47, 0x57, 0x2e, 0x7d, 0xe4, - 0xff, 0x42, 0xc2, 0xb1, 0x97, 0x7c, 0xe0, 0xcb, 0x23, 0x00, 0x1e, 0x7e, 0x3f, 0x23, 0xba, 0x99, - 0x13, 0x48, 0x20, 0xe0, 0xe0, 0x40, 0x97, 0x97, 0x0d, 0x24, 0x97, 0xbe, 0x3c, 0x5f, 0x9a, 0x05, - 0xd3, 0x0b, 0xc6, 0xc6, 0x46, 0xd0, 0x49, 0xbe, 0x40, 0xb0, 0x93, 0x8c, 0x76, 0xa1, 0xf2, 0xec, - 0xdc, 0x1d, 0xdb, 0x46, 0xa6, 0x5f, 0x29, 0xda, 0x9c, 0x7a, 0x52, 0x95, 0xeb, 0xc0, 0x51, 0x7f, - 0x5c, 0x60, 0x3b, 0xca, 0x49, 0xad, 0x37, 0x19, 0x7e, 0x57, 0xd8, 0x13, 0xc0, 0x97, 0x28, 0x5b, - 0xa5, 0x88, 0x06, 0x78, 0x1b, 0x98, 0xd9, 0x22, 0xb9, 0xf1, 0x72, 0xa9, 0xdf, 0x59, 0x9e, 0xec, - 0x89, 0x6d, 0xbf, 0x8a, 0x1c, 0x47, 0xdf, 0x44, 0x1a, 0x9f, 0xb9, 0xa7, 0xf9, 0xca, 0x49, 0x6e, - 0x6a, 0x14, 0x73, 0x2a, 0x10, 0xa8, 0xc9, 0x18, 0xb4, 0xe3, 0x0c, 0xc8, 0x2e, 0x1a, 0x1d, 0x04, - 0x7f, 0x4d, 0x02, 0x93, 0xde, 0xac, 0xdb, 0x6c, 0x79, 0x6f, 0x8c, 0x43, 0xe5, 0x77, 0x32, 0xa2, - 0x37, 0x14, 0x7b, 0x74, 0xe6, 0x02, 0x1a, 0x11, 0xed, 0x46, 0xec, 0x26, 0xe2, 0x58, 0x52, 0x63, - 0xb8, 0x4f, 0xca, 0x9b, 0x7a, 0x6c, 0x6c, 0x74, 0x2c, 0x9d, 0xdb, 0x30, 0xe8, 0x35, 0x85, 0xc2, - 0x03, 0x7e, 0x55, 0xcb, 0x5d, 0x33, 0x4c, 0x33, 0x88, 0x99, 0xb1, 0x2f, 0x9d, 0xf7, 0x75, 0x89, - 0x0d, 0x3b, 0x86, 0xeb, 0x4e, 0x4b, 0x8f, 0xd0, 0xec, 0x6b, 0xc1, 0xec, 0xf9, 0x3d, 0x17, 0x39, - 0x34, 0x17, 0x2d, 0x36, 0xab, 0xf5, 0xa4, 0x32, 0x97, 0x06, 0xc4, 0x85, 0x27, 0x8b, 0x29, 0x30, - 0x99, 0xa8, 0x97, 0x87, 0x98, 0x01, 0x1e, 0x07, 0xc5, 0x6a, 0x6d, 0x41, 0xc5, 0xfe, 0xbd, 0xbe, - 0xc7, 0xe4, 0x26, 0x7c, 0xa1, 0x0c, 0xa6, 0xb1, 0x03, 0x9e, 0x8f, 0xc2, 0xd5, 0x02, 0xf3, 0x11, - 0xf8, 0x90, 0xb0, 0xef, 0x2f, 0xae, 0x32, 0x5b, 0x40, 0xb4, 0xa0, 0x37, 0x8c, 0x4e, 0xaf, 0xa0, - 0x73, 0x5a, 0x4f, 0x6a, 0x1f, 0x40, 0xe4, 0xbe, 0x80, 0xbc, 0x57, 0xc8, 0x01, 0x78, 0x10, 0x77, - 0x87, 0x85, 0xca, 0x9f, 0xc8, 0x60, 0xca, 0x9b, 0xa4, 0xf8, 0xa0, 0xd4, 0x38, 0x50, 0x2c, 0xb3, - 0xb3, 0x17, 0x2e, 0x8b, 0xf8, 0xaf, 0x89, 0x1a, 0xc9, 0xdf, 0x0a, 0xcf, 0xdc, 0xb1, 0x88, 0x18, - 0x5e, 0xc6, 0x84, 0xdf, 0x7b, 0x84, 0xe6, 0xf3, 0x03, 0x98, 0x3b, 0x2c, 0xf8, 0xbe, 0x9e, 0x03, - 0xf9, 0xf5, 0x2e, 0x46, 0xee, 0xf7, 0x65, 0x91, 0x0b, 0x38, 0xf6, 0x1d, 0xfe, 0xf2, 0xcc, 0xac, - 0x8e, 0xd5, 0xd2, 0x3b, 0x6b, 0xe1, 0x29, 0xda, 0x30, 0x41, 0xb9, 0x95, 0xfa, 0x83, 0x93, 0xd3, - 0xe3, 0xd7, 0xc6, 0xde, 0x4d, 0x81, 0x65, 0xc4, 0x1c, 0xb4, 0xbb, 0x01, 0x1c, 0x6b, 0x1b, 0x8e, - 0x7e, 0xbe, 0x83, 0x54, 0xb3, 0x65, 0xef, 0x11, 0x71, 0xd0, 0x69, 0xd5, 0xbe, 0x0f, 0xca, 0xed, - 0x20, 0xe7, 0xb8, 0x7b, 0x1d, 0x32, 0x4f, 0x64, 0xcf, 0xe5, 0x45, 0x16, 0x55, 0xf7, 0xb2, 0x6b, - 0xe4, 0x2f, 0xd6, 0xad, 0x73, 0x42, 0xcc, 0xad, 0x53, 0x79, 0x1c, 0xc8, 0x5b, 0xb6, 0xb1, 0x69, - 0x90, 0xeb, 0xe6, 0x66, 0xf7, 0x85, 0x60, 0x25, 0xa6, 0x40, 0x0d, 0x67, 0xd1, 0x68, 0x56, 0xe5, - 0x09, 0x60, 0xd2, 0xd8, 0xd6, 0x37, 0xd1, 0xdd, 0x86, 0x49, 0x0e, 0xa8, 0xcf, 0xde, 0x7c, 0x6a, - 0xdf, 0x91, 0x43, 0xfa, 0x5d, 0x0b, 0xb3, 0xc2, 0xf7, 0x48, 0xa2, 0x71, 0xe2, 0x70, 0xdd, 0x08, - 0xa8, 0x43, 0xdc, 0x5d, 0xcd, 0xc8, 0x41, 0x16, 0x74, 0x6f, 0x7d, 0x85, 0x50, 0x04, 0xb7, 0x68, - 0xb6, 0xd2, 0x1f, 0xbc, 0x3f, 0x2f, 0x81, 0xc2, 0x82, 0x75, 0xd1, 0xc4, 0x8a, 0x7e, 0x8b, 0x98, - 0xad, 0xdb, 0xe7, 0x60, 0x38, 0x7f, 0x0b, 0x72, 0xec, 0x29, 0x30, 0x5c, 0x5b, 0xbf, 0xc8, 0x08, - 0x18, 0x62, 0x5b, 0x8e, 0xe0, 0xdd, 0xb4, 0x71, 0xe5, 0xa4, 0x2f, 0xd7, 0xbf, 0x94, 0x41, 0x76, - 0xc1, 0xb6, 0xba, 0xf0, 0x8d, 0x99, 0x04, 0x6e, 0x5e, 0x6d, 0xdb, 0xea, 0x36, 0xf0, 0xe5, 0x92, - 0xe1, 0xce, 0x06, 0x9b, 0xa6, 0xdc, 0x02, 0x0a, 0x5d, 0xcb, 0x31, 0x5c, 0x7f, 0x1a, 0x31, 0x7b, - 0xf3, 0x23, 0xfa, 0xb6, 0xe6, 0x35, 0x9a, 0x49, 0x0b, 0xb2, 0x7b, 0xbd, 0x36, 0x16, 0xa1, 0x27, - 0x17, 0x4f, 0x8c, 0xfe, 0x05, 0x9b, 0x3d, 0xa9, 0xf0, 0x45, 0x2c, 0x92, 0x4f, 0xe2, 0x91, 0x7c, - 0x64, 0x1f, 0x09, 0xdb, 0x56, 0x77, 0x24, 0x8e, 0x19, 0x2f, 0x0b, 0x50, 0x7d, 0x32, 0x87, 0xea, - 0xf5, 0x42, 0x65, 0xa6, 0x8f, 0xe8, 0x7b, 0xb2, 0x00, 0x60, 0x33, 0x63, 0xdd, 0x9b, 0x00, 0x89, - 0xd9, 0x58, 0xcf, 0xcc, 0x32, 0xb2, 0x2c, 0xf1, 0xb2, 0x7c, 0x74, 0x84, 0x15, 0x83, 0xc9, 0x47, - 0x48, 0xb4, 0x04, 0x72, 0x3b, 0xde, 0x67, 0x2a, 0x51, 0x41, 0x12, 0xf8, 0x55, 0x23, 0x7f, 0xc2, - 0xbf, 0xc8, 0x80, 0x1c, 0x4e, 0x50, 0x4e, 0x03, 0x80, 0x07, 0x76, 0x72, 0x88, 0x32, 0x83, 0x87, - 0x70, 0x26, 0x05, 0x6b, 0xab, 0xd1, 0xa6, 0x9f, 0x89, 0xc9, 0x1c, 0x26, 0x78, 0x7f, 0xe3, 0xe1, - 0x1e, 0xd3, 0xa2, 0x06, 0x00, 0x93, 0xe2, 0xfd, 0x8d, 0xdf, 0x56, 0xd0, 0x06, 0x89, 0xfb, 0x9f, - 0xd5, 0xc2, 0x84, 0xe0, 0xef, 0x95, 0xe0, 0xb6, 0x48, 0xff, 0x6f, 0x9c, 0xe2, 0x4d, 0x86, 0xb1, - 0x5a, 0xce, 0x87, 0x45, 0xe4, 0x71, 0xa6, 0xde, 0x64, 0xf8, 0xaa, 0x40, 0x6d, 0x16, 0x38, 0xb5, - 0x79, 0x6c, 0x02, 0xf1, 0xa6, 0xaf, 0x3c, 0x5f, 0xcd, 0x81, 0xc9, 0xaa, 0xd5, 0xa6, 0xba, 0xc3, - 0x4c, 0x18, 0x3f, 0x9e, 0x4b, 0x34, 0x61, 0x0c, 0x68, 0x44, 0x28, 0xc8, 0x9d, 0xbc, 0x82, 0x88, - 0x51, 0x60, 0xf5, 0x43, 0x99, 0x07, 0x79, 0xac, 0xbd, 0xfb, 0xaf, 0x21, 0x8c, 0x23, 0x81, 0x45, - 0xab, 0xd1, 0x3f, 0xff, 0xd3, 0xe9, 0xd8, 0x7f, 0x05, 0x39, 0x5c, 0xc1, 0x98, 0xdd, 0x1d, 0xbe, - 0xa2, 0x52, 0x7c, 0x45, 0xe5, 0xf8, 0x8a, 0x66, 0x7b, 0x2b, 0x9a, 0x64, 0x1d, 0x20, 0x4a, 0x43, - 0xd2, 0xd7, 0xf1, 0x7f, 0x99, 0x00, 0xa0, 0xaa, 0xef, 0x1a, 0x9b, 0x64, 0x77, 0xf8, 0x0b, 0xfe, - 0xfc, 0x87, 0xee, 0xe3, 0xfe, 0x06, 0x33, 0x10, 0xde, 0x02, 0x26, 0xe8, 0xb8, 0x47, 0x2b, 0x72, - 0x25, 0x57, 0x91, 0x90, 0x0a, 0x31, 0x4b, 0xef, 0x73, 0x35, 0x3f, 0x3f, 0x77, 0x63, 0xba, 0xd4, - 0x73, 0x63, 0x7a, 0xff, 0x3d, 0x88, 0x88, 0x7b, 0xd4, 0xe1, 0x3b, 0x85, 0x4f, 0x41, 0x31, 0xfc, - 0x30, 0x35, 0x8a, 0x68, 0x82, 0x8f, 0x03, 0x13, 0x56, 0xb0, 0xa1, 0x2d, 0x47, 0xae, 0x83, 0x55, - 0xcc, 0x0d, 0x4b, 0xf3, 0x73, 0x0a, 0x6e, 0x7e, 0x09, 0xf1, 0x31, 0x96, 0x83, 0x86, 0x27, 0x97, - 0xfc, 0x18, 0x8a, 0x5e, 0x3d, 0xce, 0x19, 0xee, 0xd6, 0x0a, 0x8e, 0xcc, 0xf4, 0x4b, 0x62, 0x16, - 0x24, 0x83, 0xbf, 0x94, 0x0c, 0x7f, 0x3e, 0xce, 0x51, 0x9d, 0x47, 0xed, 0xf6, 0x28, 0x2a, 0xfd, - 0xb9, 0x8d, 0x00, 0xf0, 0x56, 0x90, 0x27, 0x8c, 0xd2, 0x4e, 0xf4, 0x4c, 0x24, 0x7e, 0x01, 0x25, - 0x8d, 0xfe, 0x01, 0xdf, 0x11, 0xe0, 0x78, 0x96, 0xc3, 0x71, 0xfe, 0x40, 0x9c, 0xa5, 0x0e, 0xe9, - 0x99, 0x9b, 0xc0, 0x04, 0x95, 0xb4, 0x32, 0xcb, 0xb6, 0xe2, 0xe2, 0x11, 0x05, 0x80, 0xfc, 0xaa, - 0xb5, 0x8b, 0x1a, 0x56, 0x31, 0xe3, 0x3d, 0x7b, 0xfc, 0x35, 0xac, 0xa2, 0x04, 0x5f, 0x5e, 0x00, - 0x85, 0x20, 0x78, 0xdd, 0xe7, 0x25, 0x50, 0x2c, 0xdb, 0x48, 0x77, 0xd1, 0xa2, 0x6d, 0x6d, 0x93, - 0x1a, 0x89, 0x7b, 0xd4, 0xff, 0xae, 0xb0, 0x8b, 0x47, 0x10, 0x54, 0xae, 0xb7, 0xb0, 0x08, 0x2c, - 0xc9, 0x22, 0xa4, 0xe4, 0x2f, 0x42, 0xc2, 0x37, 0x08, 0xb9, 0x7c, 0x88, 0x96, 0x92, 0x7e, 0x53, - 0xfb, 0xb4, 0x04, 0x72, 0xe5, 0x8e, 0x65, 0x22, 0xf6, 0xd8, 0xe7, 0xc0, 0xf3, 0x85, 0xfd, 0x77, - 0x22, 0xe0, 0xd3, 0x25, 0x51, 0x5b, 0x23, 0x14, 0x80, 0x57, 0xb6, 0xa0, 0x6c, 0xc5, 0x06, 0xa9, - 0x58, 0xd2, 0xe9, 0x0b, 0xf4, 0x9b, 0x12, 0x98, 0x24, 0xb1, 0xc4, 0x4a, 0x9d, 0x0e, 0x7c, 0x44, - 0x28, 0xd4, 0x3e, 0x01, 0x00, 0xe1, 0x7b, 0x85, 0x8f, 0x35, 0x05, 0xb5, 0x0a, 0x68, 0x27, 0x08, - 0xaa, 0x96, 0xec, 0x94, 0x8d, 0xd8, 0x5e, 0xda, 0x40, 0x86, 0xd2, 0x17, 0xf5, 0xdf, 0x48, 0x9e, - 0x01, 0x60, 0x5e, 0x58, 0xb3, 0xd1, 0xae, 0x81, 0x2e, 0xc2, 0xcb, 0x43, 0x61, 0xef, 0x0f, 0x94, - 0xf4, 0x5a, 0xe1, 0x45, 0x1c, 0x86, 0x64, 0xe4, 0x56, 0xd6, 0x54, 0x27, 0xcc, 0x44, 0x7b, 0xf1, - 0xde, 0xe8, 0x55, 0x0c, 0x19, 0x8d, 0xcd, 0x2e, 0xb8, 0x66, 0x13, 0xcd, 0x45, 0xfa, 0x82, 0xfd, - 0xe0, 0x04, 0x28, 0xac, 0x9b, 0x4e, 0xb7, 0xa3, 0x3b, 0x5b, 0xf0, 0x07, 0x32, 0xc8, 0x93, 0xcb, - 0x2f, 0xe1, 0xcf, 0x70, 0xf1, 0x58, 0x9e, 0xba, 0x83, 0x6c, 0xdf, 0x05, 0x87, 0xbc, 0x84, 0xf6, - 0x91, 0xc4, 0xd8, 0x47, 0xf0, 0x3d, 0xb2, 0xe8, 0x24, 0xd5, 0x2f, 0x94, 0xde, 0xb6, 0x19, 0x1d, - 0x02, 0xa4, 0x6b, 0xb4, 0xdc, 0x1d, 0x1b, 0x39, 0x7d, 0x43, 0x80, 0x44, 0x52, 0x59, 0x23, 0x7f, - 0x69, 0xc1, 0xef, 0x50, 0x07, 0x13, 0x34, 0x71, 0xdf, 0x76, 0xd2, 0xfe, 0x98, 0x05, 0x27, 0x41, - 0x5e, 0xb7, 0x5d, 0xc3, 0x71, 0xe9, 0x06, 0x2b, 0x7d, 0xf3, 0xba, 0x4b, 0xf2, 0xb4, 0x6e, 0x77, - 0xfc, 0xc8, 0x4d, 0x41, 0x02, 0xfc, 0x13, 0xa1, 0xf9, 0x63, 0x7c, 0xcd, 0x93, 0x41, 0x7e, 0xf7, - 0x10, 0x6b, 0xd4, 0x97, 0x82, 0x4b, 0xb4, 0x52, 0x43, 0x6d, 0x92, 0x40, 0x3f, 0x41, 0x4c, 0x9f, - 0x36, 0x7c, 0xbb, 0xcc, 0xac, 0xdf, 0xed, 0x71, 0x63, 0x04, 0x95, 0x62, 0x38, 0x46, 0x04, 0x09, - 0x31, 0xbb, 0xd5, 0xdc, 0x22, 0xac, 0x2c, 0xbe, 0x08, 0xfb, 0xc7, 0xc2, 0xbb, 0x49, 0x81, 0x28, - 0x07, 0xac, 0x01, 0xc6, 0x5d, 0x8e, 0xf7, 0x7e, 0xa1, 0x9d, 0xa1, 0x41, 0x25, 0x1d, 0x22, 0x6c, - 0xaf, 0x99, 0x00, 0x13, 0x4b, 0x7a, 0xa7, 0x83, 0xec, 0x3d, 0x6f, 0x48, 0x2a, 0xfa, 0x1c, 0xae, - 0xea, 0xa6, 0xb1, 0x81, 0x1c, 0x37, 0xbe, 0xb3, 0x7c, 0xa7, 0x70, 0xe0, 0x75, 0x5a, 0xc6, 0x5c, - 0x2f, 0xfd, 0x08, 0x99, 0xdf, 0x08, 0xb2, 0x86, 0xb9, 0x61, 0xd1, 0x2e, 0xb3, 0x77, 0xd5, 0xde, - 0xff, 0x19, 0x4f, 0x5d, 0x70, 0x46, 0xc1, 0xd8, 0xeb, 0x82, 0x5c, 0xa4, 0xdf, 0x73, 0xbe, 0x39, - 0x0b, 0x66, 0x7c, 0x26, 0x2a, 0x66, 0x1b, 0xdd, 0xc7, 0x2e, 0xc5, 0xbc, 0x30, 0x2b, 0x7a, 0x84, - 0xb6, 0xb7, 0x3e, 0x98, 0x54, 0x84, 0x48, 0x1b, 0x00, 0xb4, 0x74, 0x17, 0x6d, 0x5a, 0xb6, 0x11, - 0xf4, 0x87, 0x8f, 0x4f, 0x42, 0xad, 0x4c, 0xfe, 0xde, 0xd3, 0x18, 0x3a, 0xca, 0xed, 0x60, 0x0a, - 0x05, 0x31, 0x4b, 0xfc, 0xa5, 0x9a, 0x58, 0xbc, 0xd8, 0xfc, 0xf0, 0x6f, 0x84, 0x4e, 0xea, 0x8a, - 0x54, 0x33, 0x19, 0x66, 0xcd, 0xe1, 0xda, 0xd0, 0x7a, 0x75, 0xb5, 0xa4, 0xd5, 0x97, 0x4b, 0x2b, - 0x2b, 0x95, 0xea, 0x52, 0x10, 0x2c, 0x4b, 0x01, 0xb3, 0x0b, 0xb5, 0x73, 0x55, 0x26, 0x9a, 0x59, - 0x16, 0xae, 0x81, 0x82, 0x2f, 0xaf, 0x7e, 0xbe, 0x98, 0xac, 0xcc, 0xa8, 0x2f, 0x26, 0x93, 0xe4, - 0x19, 0x67, 0x46, 0x2b, 0x70, 0xd0, 0xc1, 0xcf, 0xf0, 0xcf, 0x75, 0x90, 0xc3, 0x6b, 0xea, 0xf0, - 0xad, 0x78, 0x1b, 0xb0, 0xdb, 0xd1, 0x5b, 0x08, 0x6e, 0x27, 0xb0, 0xc6, 0xfd, 0x9b, 0x80, 0xa4, - 0x7d, 0x37, 0x01, 0xe1, 0x47, 0x6a, 0xf5, 0x1d, 0xef, 0xb7, 0x8e, 0xaf, 0x91, 0x2c, 0xfc, 0xa1, - 0xd6, 0xd8, 0xdd, 0x15, 0xb2, 0xfc, 0x4f, 0xd9, 0x8c, 0x50, 0xc9, 0x68, 0x9e, 0x92, 0x59, 0xa2, - 0x62, 0xfb, 0x30, 0x71, 0x1c, 0xa5, 0xdf, 0xe2, 0xbf, 0x9c, 0x05, 0xb9, 0x7a, 0xb7, 0x63, 0xb8, - 0xf0, 0x25, 0xd2, 0x48, 0x30, 0x23, 0xb7, 0x37, 0xc9, 0x03, 0x6f, 0x6f, 0x0a, 0x77, 0x5d, 0xb3, - 0x02, 0xbb, 0xae, 0x0d, 0x74, 0x9f, 0xcb, 0xef, 0xba, 0xde, 0x42, 0x03, 0x5e, 0x92, 0x3d, 0xdb, - 0x47, 0xf6, 0x11, 0x29, 0xae, 0x56, 0x9f, 0x48, 0xaa, 0x67, 0x6e, 0xa2, 0x01, 0x1d, 0x01, 0xc8, - 0xcf, 0xd7, 0x1a, 0x8d, 0xda, 0x6a, 0xf1, 0x08, 0x8e, 0x04, 0x56, 0x5b, 0x23, 0xe1, 0xb5, 0x2a, - 0xd5, 0xaa, 0xaa, 0x15, 0x25, 0x1c, 0x62, 0xb2, 0xd2, 0x58, 0x51, 0x8b, 0x32, 0x7f, 0x95, 0x47, - 0xac, 0xf9, 0xcd, 0x97, 0x9d, 0xa6, 0x7a, 0x89, 0x19, 0xe2, 0xd1, 0xfc, 0xa4, 0xaf, 0x5c, 0xbf, - 0x23, 0x83, 0xdc, 0x2a, 0xb2, 0x37, 0x11, 0x7c, 0x6a, 0x82, 0x4d, 0xbe, 0x0d, 0xc3, 0x76, 0x48, - 0x40, 0xce, 0x70, 0x93, 0x8f, 0x4d, 0x53, 0xae, 0x01, 0x33, 0x0e, 0x6a, 0x59, 0x66, 0xdb, 0xcf, - 0x44, 0xfa, 0x23, 0x3e, 0x11, 0xbe, 0x38, 0x21, 0x64, 0x98, 0xd1, 0x91, 0xec, 0xd4, 0x25, 0x01, - 0xa6, 0x5f, 0xa9, 0xe9, 0x03, 0xf3, 0x5d, 0xd9, 0xfb, 0xa9, 0xbb, 0x07, 0x5f, 0x2c, 0xbc, 0xfb, - 0x7a, 0x03, 0xc8, 0x9f, 0xf7, 0x23, 0xbb, 0xcb, 0x91, 0xfd, 0x31, 0xcd, 0xa3, 0xcc, 0x83, 0x63, - 0x0e, 0xea, 0xa0, 0x96, 0x8b, 0xda, 0x5e, 0xd3, 0xd5, 0x06, 0x76, 0x0a, 0xfb, 0xb3, 0xc3, 0xbf, - 0x62, 0x01, 0xbc, 0x8d, 0x07, 0xf0, 0xda, 0x3e, 0xa2, 0xf4, 0x2a, 0x14, 0x6d, 0x2b, 0x7b, 0xd5, - 0xa8, 0x77, 0xac, 0x60, 0x51, 0xdc, 0x7f, 0xf7, 0xbe, 0x6d, 0xb9, 0xdb, 0x1d, 0xfc, 0x8d, 0x1e, - 0x30, 0xf0, 0xdf, 0x95, 0x39, 0x30, 0xa1, 0x9b, 0x7b, 0xf8, 0x53, 0x36, 0xa6, 0xd6, 0x7e, 0x26, - 0xf8, 0xf2, 0x00, 0xf9, 0x3b, 0x38, 0xe4, 0x1f, 0x2d, 0xc6, 0x6e, 0xfa, 0xc0, 0xff, 0xea, 0x04, - 0xc8, 0xad, 0xe9, 0x8e, 0x8b, 0xe0, 0xff, 0x2b, 0x8b, 0x22, 0x7f, 0x2d, 0x98, 0xdd, 0xb0, 0x5a, - 0x3b, 0x0e, 0x6a, 0xf3, 0x8d, 0xb2, 0x27, 0x75, 0x14, 0x98, 0x2b, 0xd7, 0x83, 0xa2, 0x9f, 0x48, - 0xc9, 0xfa, 0xdb, 0xf0, 0xfb, 0xd2, 0xf1, 0xc5, 0x10, 0xce, 0x9a, 0x6e, 0xbb, 0xb5, 0x0d, 0x9c, - 0x16, 0x5c, 0x0c, 0xc1, 0x26, 0x72, 0xd0, 0xe7, 0x63, 0xa0, 0x9f, 0x88, 0x86, 0xbe, 0x20, 0x00, - 0xbd, 0x52, 0x02, 0x85, 0x0d, 0xa3, 0x83, 0xf0, 0x0f, 0x93, 0xf8, 0x87, 0x7e, 0x63, 0x12, 0x96, - 0x7d, 0x30, 0x26, 0x2d, 0x1a, 0x1d, 0xa4, 0x05, 0xbf, 0xf9, 0x13, 0x19, 0x10, 0x4e, 0x64, 0x56, - 0x88, 0x3f, 0xad, 0x67, 0x78, 0x99, 0xfa, 0x36, 0xf2, 0x17, 0xdf, 0x4c, 0x7a, 0xb8, 0xa5, 0xad, - 0xbb, 0x3a, 0x06, 0x63, 0x5a, 0xc3, 0xcf, 0xbc, 0x5f, 0x88, 0xdc, 0xeb, 0x17, 0xf2, 0x2c, 0x39, - 0x59, 0x8f, 0xe8, 0x33, 0x1b, 0xd1, 0xa2, 0xce, 0xfb, 0x00, 0x11, 0x4b, 0x31, 0x78, 0xf7, 0x80, - 0x69, 0xe9, 0x36, 0x72, 0xd7, 0x58, 0x4f, 0x8c, 0x9c, 0xc6, 0x27, 0x62, 0x57, 0x3e, 0xa7, 0xae, - 0x6f, 0x93, 0xcb, 0x21, 0xca, 0xde, 0x37, 0xea, 0xa2, 0xb5, 0x2f, 0x3d, 0xec, 0x7f, 0x73, 0xa3, - 0xee, 0x7f, 0xfb, 0xd5, 0x31, 0xfd, 0x66, 0xf8, 0xca, 0x2c, 0x90, 0xcb, 0x3b, 0xee, 0xc3, 0xba, - 0xfb, 0xfd, 0xa1, 0xb0, 0x9f, 0x0b, 0xed, 0xcf, 0x76, 0xdc, 0xc3, 0xed, 0x7d, 0x13, 0x6a, 0x89, - 0x98, 0x3f, 0x4d, 0x54, 0xdd, 0xd2, 0xd7, 0x91, 0x37, 0xca, 0x81, 0x83, 0xe5, 0xfd, 0x99, 0x83, - 0x9b, 0xe6, 0x90, 0xf4, 0x4f, 0x4c, 0xcf, 0x10, 0xbc, 0xfb, 0x1d, 0x4f, 0x96, 0x8b, 0x6f, 0x8a, - 0xb7, 0xd7, 0xb1, 0x28, 0xa7, 0x35, 0xf2, 0x02, 0x5f, 0x2a, 0xec, 0x76, 0x4e, 0xc4, 0x16, 0xeb, - 0x4a, 0x98, 0xcc, 0xa6, 0x12, 0xbb, 0x1b, 0x3b, 0xa6, 0xd8, 0xf4, 0x01, 0xfb, 0x36, 0xeb, 0x2a, - 0x58, 0x3a, 0x30, 0x62, 0xf0, 0x15, 0xc2, 0xdb, 0x51, 0xa4, 0xda, 0x03, 0xd6, 0x0b, 0x93, 0xc9, - 0x5b, 0x6c, 0xb3, 0x2a, 0xb6, 0xe0, 0xf4, 0x25, 0xfe, 0x2d, 0x19, 0xe4, 0xc9, 0x16, 0x24, 0x7c, - 0x9d, 0x70, 0x13, 0xf1, 0x7a, 0x23, 0xde, 0x85, 0x30, 0x78, 0x4f, 0xb2, 0xe6, 0xc0, 0xb9, 0x1a, - 0x66, 0x13, 0xb9, 0x1a, 0xf2, 0xe7, 0x38, 0x05, 0xda, 0x11, 0xa9, 0x63, 0xca, 0xd3, 0xc9, 0x24, - 0x2d, 0xac, 0x2f, 0x43, 0xe9, 0xe3, 0xfd, 0x9c, 0x1c, 0x98, 0x26, 0x45, 0x9f, 0x33, 0xda, 0x9b, - 0xc8, 0x85, 0x6f, 0x97, 0x7e, 0x7c, 0x50, 0x57, 0xaa, 0x60, 0xfa, 0x22, 0x66, 0x9b, 0xdc, 0x62, - 0x45, 0x57, 0x2e, 0xae, 0x8f, 0x5d, 0xf7, 0x20, 0xf5, 0xf4, 0xef, 0xbd, 0xe2, 0xfe, 0xf7, 0x64, - 0x4c, 0x16, 0xfc, 0x89, 0x03, 0x57, 0x1e, 0x1b, 0x59, 0x6c, 0x92, 0x72, 0x12, 0xe4, 0x77, 0x0d, - 0x74, 0xb1, 0xd2, 0xa6, 0xd6, 0x2d, 0x7d, 0x83, 0x7f, 0x2a, 0xbc, 0x6f, 0xcb, 0xc2, 0x4d, 0x79, - 0x49, 0x57, 0x0b, 0xc5, 0x76, 0x6f, 0x07, 0xb2, 0x35, 0x86, 0x33, 0xc5, 0xfc, 0xdd, 0xd3, 0xe5, - 0x04, 0x8a, 0x18, 0x65, 0x38, 0xf3, 0xa1, 0x3c, 0x62, 0x4f, 0xac, 0x10, 0x01, 0x8c, 0xf8, 0x5a, - 0x6a, 0xb1, 0xf8, 0x12, 0x03, 0x8a, 0x4e, 0x5f, 0xf2, 0xaf, 0x92, 0xc1, 0x64, 0x1d, 0xb9, 0x8b, - 0x06, 0xea, 0xb4, 0x1d, 0x68, 0x1f, 0xdc, 0x34, 0xba, 0x11, 0xe4, 0x37, 0x30, 0xb1, 0x41, 0xe7, - 0x16, 0x68, 0x36, 0xf8, 0x4a, 0x49, 0x74, 0x47, 0x98, 0xae, 0xbe, 0xf9, 0xdc, 0x8e, 0x04, 0x26, - 0x31, 0x8f, 0xde, 0xf8, 0x92, 0xc7, 0x10, 0x0c, 0x5c, 0x06, 0xd3, 0xf4, 0xb2, 0xda, 0x52, 0xc7, - 0xd8, 0x34, 0xe1, 0xce, 0x08, 0x5a, 0x88, 0xf2, 0x58, 0x90, 0xd3, 0x3d, 0x6a, 0x74, 0xeb, 0x15, - 0xf6, 0xed, 0x3c, 0x71, 0x79, 0x1a, 0xc9, 0x98, 0x20, 0xf4, 0x6e, 0xa8, 0xd8, 0x3e, 0xcf, 0x63, - 0x0c, 0xbd, 0x3b, 0xb0, 0xf0, 0xf4, 0x11, 0xfb, 0x8a, 0x0c, 0x8e, 0x53, 0x06, 0xce, 0x22, 0xdb, - 0x35, 0x5a, 0x7a, 0x87, 0x20, 0xf7, 0xbc, 0xcc, 0x28, 0xa0, 0x5b, 0x06, 0x33, 0xbb, 0x2c, 0x59, - 0x0a, 0xe1, 0x99, 0xbe, 0x10, 0x72, 0x0c, 0x68, 0xfc, 0x8f, 0x09, 0x42, 0x98, 0x72, 0x52, 0xe5, - 0x68, 0x8e, 0x31, 0x84, 0xa9, 0x30, 0x13, 0xe9, 0x43, 0xfc, 0x22, 0x1a, 0x9a, 0x27, 0xec, 0x3e, - 0xbf, 0x20, 0x8c, 0xed, 0x3a, 0x98, 0xc2, 0x58, 0x92, 0x1f, 0xe9, 0x32, 0x44, 0x8c, 0x12, 0x07, - 0xfd, 0x0e, 0xbd, 0x64, 0x31, 0xf8, 0x57, 0x63, 0xe9, 0xc0, 0x73, 0x00, 0x84, 0x9f, 0xd8, 0x4e, - 0x3a, 0x13, 0xd5, 0x49, 0x4b, 0x62, 0x9d, 0xf4, 0x6b, 0x85, 0x83, 0xa5, 0xf4, 0x67, 0xfb, 0xe0, - 0xea, 0x21, 0x16, 0x26, 0x63, 0x70, 0xe9, 0xe9, 0xeb, 0xc5, 0xcb, 0xa9, 0x5e, 0x2c, 0xec, 0x74, - 0x3b, 0x46, 0xcb, 0x9b, 0x4f, 0x7d, 0x64, 0x24, 0xf3, 0x29, 0xb6, 0x3f, 0x90, 0x7b, 0xfa, 0x83, - 0x03, 0x58, 0xd2, 0xd7, 0x81, 0xa3, 0xa4, 0x88, 0x72, 0xc0, 0x56, 0x8e, 0x84, 0x82, 0xe8, 0x49, - 0xe6, 0xe3, 0x12, 0x0a, 0x2a, 0x41, 0x20, 0x84, 0x21, 0x96, 0x3e, 0x93, 0x19, 0xbb, 0x49, 0x15, - 0x24, 0x8a, 0xb3, 0x31, 0xb8, 0x85, 0x66, 0x89, 0xb5, 0xbb, 0x8e, 0xef, 0xc1, 0x84, 0x5f, 0xca, - 0x8e, 0x62, 0x44, 0xb8, 0x13, 0x64, 0xb1, 0x8b, 0xbb, 0x1c, 0xb9, 0xa4, 0x11, 0x16, 0x19, 0x5e, - 0x52, 0x8a, 0xee, 0x73, 0x97, 0x8f, 0x68, 0xf8, 0x4f, 0xe5, 0x7a, 0x70, 0xf4, 0xbc, 0xde, 0xba, - 0xb0, 0x69, 0x5b, 0x3b, 0xf8, 0xc6, 0x40, 0x8b, 0x5e, 0x3d, 0x88, 0xaf, 0x70, 0xe5, 0x3f, 0x28, - 0x37, 0xfb, 0xa6, 0x43, 0x6e, 0x90, 0xe9, 0xb0, 0x7c, 0x84, 0x1a, 0x0f, 0xca, 0x4d, 0x41, 0xa7, - 0x93, 0x8f, 0xed, 0x74, 0x96, 0x8f, 0xf8, 0xdd, 0x8e, 0xb2, 0x00, 0x0a, 0x6d, 0x63, 0x17, 0x6f, - 0x55, 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xcb, 0x0b, 0xc6, 0x2e, 0xd9, 0xd8, 0x5e, 0x3e, 0xa2, 0x05, - 0x7f, 0x2a, 0x4b, 0x60, 0x12, 0x6f, 0x0b, 0x60, 0x32, 0x85, 0x44, 0xc7, 0x92, 0x97, 0x8f, 0x68, - 0xe1, 0xbf, 0x9e, 0xf5, 0x91, 0xc5, 0x67, 0x3f, 0xee, 0xf0, 0xb7, 0xdb, 0x33, 0x89, 0xb6, 0xdb, - 0x3d, 0x59, 0x90, 0x0d, 0xf7, 0x93, 0x20, 0xd7, 0xc2, 0x12, 0x96, 0xa8, 0x84, 0xc9, 0xab, 0x72, - 0x1b, 0xc8, 0x6e, 0xeb, 0xb6, 0x3f, 0x79, 0xbe, 0x76, 0x30, 0xdd, 0x55, 0xdd, 0xbe, 0xe0, 0x21, - 0xe8, 0xfd, 0x35, 0x3f, 0x01, 0x72, 0x58, 0x70, 0xc1, 0x03, 0x7c, 0x63, 0x96, 0x98, 0x21, 0x65, - 0xcb, 0xf4, 0x86, 0xfd, 0x86, 0xe5, 0x1f, 0x90, 0xf9, 0xd3, 0xcc, 0x68, 0x2c, 0xc8, 0x4b, 0x98, - 0x80, 0xc1, 0xa6, 0xf1, 0xd4, 0x1d, 0x74, 0x37, 0xda, 0xa3, 0x4b, 0xa2, 0xfd, 0x3e, 0xf5, 0xdc, - 0x27, 0x9f, 0xed, 0xbd, 0x4f, 0x3e, 0x5c, 0x3e, 0xc8, 0x0d, 0x76, 0x54, 0xf9, 0xab, 0x21, 0x4c, - 0x97, 0x5e, 0x41, 0x44, 0xcf, 0xc0, 0x3b, 0x86, 0xc9, 0xd4, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, 0x25, - 0x35, 0x6a, 0x06, 0xb0, 0x97, 0x7e, 0xdf, 0xf4, 0xfa, 0x2c, 0x89, 0x99, 0x4a, 0x4e, 0x61, 0xf0, - 0x77, 0xf4, 0xc2, 0x4f, 0x8d, 0x44, 0x69, 0xfa, 0x0c, 0x38, 0x72, 0xdf, 0x01, 0x67, 0xdf, 0x21, - 0xe5, 0xec, 0x80, 0x43, 0xca, 0xb9, 0x64, 0x2b, 0x87, 0x1f, 0x60, 0xf5, 0x67, 0x8d, 0xd7, 0x9f, - 0x5b, 0x23, 0x00, 0xea, 0x27, 0x97, 0x91, 0xd8, 0x37, 0x6f, 0x0d, 0x34, 0xa5, 0xce, 0x69, 0xca, - 0x1d, 0xc3, 0x33, 0x92, 0xbe, 0xb6, 0xbc, 0x2f, 0x0b, 0x2e, 0x09, 0x99, 0xa9, 0xa2, 0x8b, 0x54, - 0x51, 0x3e, 0x3f, 0x12, 0x45, 0x49, 0x1e, 0x03, 0x21, 0x6d, 0x8d, 0xf9, 0x0b, 0xe1, 0xb3, 0x43, - 0xbd, 0x40, 0x05, 0xb2, 0x89, 0x50, 0x96, 0x93, 0x20, 0x4f, 0x7a, 0x18, 0x0a, 0x0d, 0x7d, 0x4b, - 0xd8, 0xdd, 0x88, 0x9d, 0x38, 0x12, 0xe5, 0x6d, 0x0c, 0xfa, 0x43, 0xd7, 0x35, 0x1a, 0x3b, 0xb6, - 0x59, 0x31, 0x5d, 0x0b, 0xfe, 0xca, 0x48, 0x14, 0x27, 0xf0, 0x86, 0x93, 0x87, 0xf1, 0x86, 0x1b, - 0x6a, 0x95, 0xc3, 0xaf, 0xc1, 0xa1, 0xac, 0x72, 0x44, 0x14, 0x9e, 0x3e, 0x7e, 0x6f, 0x91, 0xc1, - 0x49, 0x3a, 0xd9, 0x9a, 0xe7, 0x2d, 0x44, 0x78, 0xcf, 0x28, 0x80, 0x3c, 0xee, 0x9b, 0x49, 0xf4, - 0x66, 0x48, 0xfc, 0xc2, 0x9f, 0x94, 0x8a, 0xbd, 0x13, 0x87, 0x9b, 0x0e, 0xf6, 0x70, 0x38, 0x12, - 0xa4, 0xc4, 0xae, 0xc2, 0x49, 0xc0, 0x46, 0xfa, 0x98, 0xbd, 0x40, 0x06, 0x79, 0x72, 0x4e, 0x0b, - 0xae, 0xa7, 0xe2, 0x30, 0xc1, 0x47, 0x79, 0x16, 0xd8, 0x91, 0x23, 0xdc, 0xa4, 0x76, 0x86, 0x2d, - 0xc9, 0x5e, 0x5c, 0x5f, 0x56, 0xc6, 0xe0, 0x42, 0x28, 0x81, 0xa9, 0x3a, 0x72, 0xcb, 0xba, 0x6d, - 0x1b, 0xfa, 0xe6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, 0xf7, 0x32, 0xa2, 0xe7, 0x69, 0x82, - 0x85, 0x70, 0x9f, 0xd5, 0x88, 0x58, 0x82, 0x0f, 0x0a, 0x9d, 0x99, 0x19, 0x44, 0x6d, 0x0c, 0x1e, - 0xdb, 0x12, 0x98, 0xf0, 0xcf, 0xe2, 0xdd, 0xc8, 0x9d, 0xcf, 0xdc, 0x72, 0xb7, 0xfd, 0x63, 0x30, - 0xf8, 0x79, 0xff, 0x19, 0x30, 0xf8, 0xb2, 0x84, 0x8e, 0xf2, 0xf1, 0x07, 0x09, 0x93, 0xb5, 0xb1, - 0x24, 0xee, 0xf0, 0x87, 0x75, 0x74, 0xf0, 0xbd, 0x13, 0x74, 0x39, 0x72, 0x45, 0x77, 0xd1, 0x7d, - 0xf0, 0x0b, 0x32, 0x98, 0xa8, 0x23, 0xd7, 0x1b, 0x6f, 0xb9, 0x0b, 0xa1, 0x87, 0xd5, 0x70, 0x85, - 0x59, 0xf1, 0x98, 0xa4, 0x6b, 0x18, 0x77, 0x81, 0xc9, 0xae, 0x6d, 0xb5, 0x90, 0xe3, 0xd0, 0xd5, - 0x0b, 0xd6, 0x51, 0xad, 0xdf, 0xe8, 0x8f, 0x59, 0x9b, 0x5b, 0xf3, 0xff, 0xd1, 0xc2, 0xdf, 0x93, - 0x9a, 0x01, 0x84, 0x12, 0xad, 0xe0, 0xb8, 0xcd, 0x80, 0xb8, 0xc2, 0xd3, 0x07, 0xfa, 0xb3, 0x32, - 0x98, 0xae, 0x23, 0x37, 0x90, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x39, 0x28, 0xe5, 0x83, 0x41, - 0x29, 0x7e, 0x9d, 0x2a, 0x2f, 0xcd, 0x80, 0xd8, 0x18, 0xaf, 0x53, 0x15, 0xe3, 0x60, 0x0c, 0xc7, - 0xd7, 0x1e, 0x09, 0x26, 0x31, 0x2f, 0xb8, 0xc1, 0xfe, 0x7a, 0x36, 0x6c, 0xbc, 0x5f, 0x4c, 0xa9, - 0xf1, 0xde, 0x0e, 0x72, 0xdb, 0xba, 0x7d, 0xc1, 0xc1, 0x0d, 0x77, 0x4a, 0xc4, 0x6c, 0x5f, 0xf5, - 0xb2, 0x6b, 0xe4, 0xaf, 0xfe, 0x7e, 0x9a, 0xb9, 0x64, 0x7e, 0x9a, 0x0f, 0x4a, 0x89, 0x46, 0x42, - 0x32, 0x77, 0x18, 0x61, 0x93, 0x4f, 0x30, 0x6e, 0xc6, 0x94, 0x9d, 0xbe, 0x72, 0x3c, 0x4f, 0x06, - 0x05, 0x6f, 0xdc, 0xc6, 0xf6, 0xf8, 0xb9, 0x83, 0xab, 0x43, 0x7f, 0x43, 0x3f, 0x61, 0x0f, 0xec, - 0x4b, 0x64, 0x74, 0xe6, 0x7d, 0x82, 0x1e, 0x38, 0xae, 0xf0, 0xf4, 0xf1, 0x78, 0x1b, 0xc1, 0x03, - 0xb7, 0x07, 0xf8, 0x6a, 0x19, 0xc8, 0x4b, 0xc8, 0x1d, 0xb7, 0x15, 0xf9, 0x26, 0xe1, 0x10, 0x47, - 0x9c, 0xc0, 0x30, 0xcf, 0x73, 0x4b, 0x68, 0x34, 0x0d, 0x48, 0x2c, 0xb6, 0x91, 0x10, 0x03, 0xe9, - 0xa3, 0xf6, 0x2e, 0x82, 0x1a, 0xd9, 0x5c, 0xf8, 0xe5, 0x11, 0xf4, 0xaa, 0xe3, 0x5d, 0xf8, 0xf0, - 0x05, 0x88, 0x69, 0x1c, 0x56, 0x7b, 0xeb, 0x57, 0xf8, 0x58, 0xae, 0x2f, 0x05, 0x5e, 0x63, 0xdf, - 0x42, 0xad, 0x0b, 0xa8, 0xcd, 0x5e, 0x07, 0x37, 0x2c, 0x74, 0xa7, 0xc0, 0x44, 0x8b, 0x50, 0xc3, - 0xe0, 0x15, 0x34, 0xff, 0x35, 0xc1, 0x5d, 0xfc, 0x7c, 0x47, 0x44, 0x7e, 0x1f, 0xe3, 0x5d, 0xfc, - 0x02, 0xc5, 0x8f, 0xc1, 0x6c, 0x21, 0xb3, 0x8c, 0x4a, 0xcb, 0x32, 0xe1, 0x7f, 0x39, 0x38, 0x2c, - 0x57, 0x80, 0x49, 0xa3, 0x65, 0x99, 0x38, 0x0c, 0x85, 0x7f, 0x08, 0x28, 0x48, 0xf0, 0xbf, 0xaa, - 0xdb, 0xd6, 0xbd, 0x06, 0xdd, 0x35, 0x0f, 0x13, 0x86, 0x35, 0x26, 0x3c, 0xd6, 0x0f, 0xcb, 0x98, - 0xe8, 0x53, 0x76, 0xfa, 0x90, 0x7d, 0x34, 0xf4, 0x6e, 0x23, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, - 0x98, 0xe1, 0x8c, 0xad, 0xc5, 0xa1, 0x0c, 0x67, 0x31, 0x0c, 0x8c, 0xe1, 0xc6, 0x8a, 0x10, 0xc7, - 0xd4, 0xd7, 0x80, 0x0f, 0x80, 0xce, 0xe8, 0xcc, 0xc3, 0x21, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0xfd, - 0x34, 0x44, 0x26, 0xb5, 0x78, 0xe0, 0x7f, 0x1d, 0x05, 0x38, 0xb7, 0x0e, 0xe3, 0xaf, 0x40, 0xbc, - 0x15, 0xe0, 0x1b, 0x24, 0xd1, 0x10, 0x28, 0xfb, 0x24, 0xe8, 0x51, 0x19, 0x09, 0x82, 0xaf, 0x15, - 0x8a, 0x4d, 0x22, 0x52, 0x7e, 0xfa, 0x00, 0x3e, 0x57, 0x06, 0xb3, 0xd8, 0x47, 0xa0, 0x83, 0x74, - 0x9b, 0x74, 0x94, 0x23, 0x71, 0x94, 0x7f, 0x9b, 0x70, 0x80, 0x1f, 0x5e, 0x0e, 0x21, 0x1f, 0x23, - 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x63, 0xd9, 0x46, 0x29, 0x06, 0x2c, 0x50, 0x15, 0x1f, - 0x0d, 0x1e, 0x09, 0x3d, 0x72, 0x79, 0x61, 0xf8, 0x8d, 0x6d, 0xcc, 0x1e, 0xb9, 0x22, 0x4c, 0xa4, - 0x8f, 0xc9, 0xab, 0x1f, 0x4b, 0x17, 0x9c, 0x1b, 0xfa, 0xf9, 0x0e, 0x82, 0xaf, 0xc8, 0x06, 0x27, - 0xda, 0x3e, 0x3b, 0x12, 0x0f, 0xcc, 0x03, 0x04, 0xc4, 0x57, 0x40, 0xd6, 0xb6, 0x2e, 0x92, 0xa5, - 0xad, 0x19, 0x0d, 0x3f, 0x93, 0xeb, 0x29, 0x3b, 0x3b, 0xdb, 0x26, 0x39, 0x19, 0x3a, 0xa3, 0xf9, - 0xaf, 0xca, 0x35, 0x60, 0xe6, 0xa2, 0xe1, 0x6e, 0x2d, 0x23, 0xbd, 0x8d, 0x6c, 0xcd, 0xba, 0x88, - 0x3d, 0xe6, 0x0a, 0x1a, 0x9f, 0xc8, 0xfb, 0xaf, 0x08, 0xd8, 0x97, 0x9e, 0x50, 0xc6, 0x73, 0xfc, - 0x2d, 0x89, 0xe5, 0x19, 0xcd, 0x55, 0xfa, 0x0a, 0xf3, 0x6e, 0x19, 0x4c, 0x6a, 0xd6, 0x45, 0xaa, - 0x24, 0xff, 0xf7, 0xe1, 0xea, 0x48, 0xe2, 0x89, 0x1e, 0x96, 0x5c, 0xc0, 0xfe, 0xd8, 0x27, 0x7a, - 0xb1, 0xc5, 0x8f, 0xe5, 0xe4, 0xd2, 0xb4, 0x66, 0x5d, 0xac, 0x23, 0x97, 0xb4, 0x08, 0xd8, 0x1c, - 0x91, 0x93, 0xb5, 0xe1, 0x10, 0x82, 0x74, 0x1e, 0x1e, 0xbc, 0x27, 0xdd, 0x45, 0x08, 0x04, 0x14, - 0xb0, 0x38, 0xee, 0x5d, 0x84, 0x81, 0x1c, 0x8c, 0x21, 0x46, 0x8a, 0x0c, 0xa6, 0x34, 0xeb, 0xa2, - 0x37, 0x34, 0x2c, 0x1a, 0x9d, 0xce, 0x68, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0x2f, 0x06, 0x9f, 0x8b, - 0xb1, 0x1b, 0xff, 0x03, 0x18, 0x48, 0x1f, 0x86, 0x67, 0x91, 0xc6, 0xe2, 0x8f, 0xd0, 0xe6, 0x68, - 0x70, 0x18, 0xb6, 0x41, 0x04, 0x6c, 0x1c, 0x5a, 0x83, 0x88, 0xe2, 0x60, 0x2c, 0x3b, 0x27, 0xb3, - 0x65, 0x3c, 0xcc, 0x8f, 0xb6, 0x4d, 0xbc, 0x23, 0x99, 0x6b, 0x22, 0x1d, 0x76, 0x39, 0x46, 0x46, - 0x82, 0x46, 0x02, 0x17, 0x44, 0x01, 0x1e, 0xd2, 0xc7, 0xe3, 0x43, 0x32, 0x98, 0x26, 0x2c, 0x3c, - 0x4c, 0xac, 0x80, 0xa1, 0x1a, 0x15, 0x5b, 0x83, 0xc3, 0x69, 0x54, 0x31, 0x1c, 0x8c, 0xe5, 0x56, - 0x50, 0xcf, 0x8e, 0x1b, 0xe2, 0xf8, 0x78, 0x14, 0x82, 0x43, 0x1b, 0x63, 0x23, 0x3c, 0x42, 0x3e, - 0x8c, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x9f, 0x15, 0xb4, 0xa2, 0x51, 0x62, 0x70, 0x80, 0xa6, 0x30, - 0x42, 0x18, 0x86, 0x6c, 0x0a, 0x87, 0x84, 0xc4, 0x57, 0x65, 0x00, 0x08, 0x03, 0xab, 0xd6, 0x2e, - 0xbe, 0xcc, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x3c, 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97, - 0xa4, 0x2b, 0x81, 0x8c, 0x94, 0xbd, 0x4a, 0x8e, 0x7d, 0x25, 0x30, 0xbe, 0xfc, 0xf4, 0x31, 0x7e, - 0x88, 0x58, 0x73, 0xe1, 0x01, 0xd3, 0xdf, 0x1b, 0x09, 0xca, 0xcc, 0xec, 0x5f, 0xe6, 0x67, 0xff, - 0x07, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, 0x6d, 0xc4, 0xc3, 0x3b, 0x20, 0xfa, - 0xcb, 0x59, 0x70, 0x94, 0x76, 0x22, 0x3f, 0x0e, 0x10, 0x27, 0x3c, 0x87, 0xc7, 0x75, 0x92, 0x03, - 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x01, 0xf6, 0xc6, 0xb2, 0xba, 0x91, 0x57, 0xef, - 0xeb, 0xea, 0x66, 0x5b, 0x3c, 0xdc, 0xef, 0x00, 0xe0, 0xfd, 0xb5, 0x46, 0x99, 0x5f, 0x6b, 0xec, - 0xb3, 0x32, 0x99, 0x78, 0xe7, 0x1a, 0x8b, 0x8c, 0xb0, 0x3b, 0xf6, 0x9d, 0xeb, 0xe8, 0xb2, 0xd3, - 0x47, 0xe9, 0x1d, 0x32, 0xc8, 0xd6, 0x2d, 0xdb, 0x85, 0xcf, 0x4e, 0xd2, 0x3a, 0x89, 0xe4, 0x43, - 0x90, 0xfc, 0x77, 0xa5, 0xcc, 0xdd, 0xd2, 0x7c, 0x63, 0xfc, 0x51, 0x67, 0xdd, 0xd5, 0xb1, 0x57, - 0xb7, 0x57, 0x3e, 0x73, 0x5d, 0x73, 0xd2, 0x78, 0x3a, 0x44, 0x7e, 0xf5, 0xe8, 0x03, 0x18, 0xa9, - 0xc5, 0xd3, 0x89, 0x2c, 0x39, 0x7d, 0xdc, 0x1e, 0x38, 0x4a, 0x7d, 0x5b, 0x17, 0x8d, 0x0e, 0x82, - 0xcf, 0x26, 0x2e, 0x23, 0x55, 0x7d, 0x1b, 0x89, 0x1f, 0x89, 0x89, 0x75, 0x6d, 0xc5, 0xf1, 0x65, - 0xe5, 0x30, 0xbe, 0x6c, 0xd2, 0x06, 0x45, 0x0e, 0xa0, 0x13, 0x96, 0xc6, 0xdd, 0xa0, 0x62, 0xca, - 0x1e, 0x4b, 0x9c, 0xce, 0x63, 0x75, 0xe4, 0x12, 0xa3, 0xb2, 0xe6, 0xdf, 0xc0, 0xf2, 0x8b, 0x23, - 0x89, 0xd8, 0x19, 0x5c, 0xf0, 0x22, 0xf7, 0x5c, 0xf0, 0xf2, 0x6e, 0x16, 0x9c, 0x55, 0x1e, 0x9c, - 0x9f, 0x8d, 0x16, 0x10, 0xcf, 0xe4, 0x48, 0x60, 0x7a, 0x53, 0x00, 0xd3, 0x1a, 0x07, 0xd3, 0x6d, - 0x43, 0x72, 0x91, 0x3e, 0x60, 0xbf, 0x99, 0x03, 0x47, 0xc9, 0xa4, 0xbf, 0x64, 0xb6, 0x69, 0x84, - 0xd5, 0xd7, 0x49, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, 0xd7, 0x7b, 0x3b, - 0xfe, 0x3c, 0x09, 0xe7, 0xea, 0x75, 0xa2, 0x78, 0xa7, 0x4d, 0xfc, 0x86, 0xfc, 0xe0, 0x3f, 0xfe, - 0x2e, 0xa3, 0x09, 0xf1, 0xbb, 0x8c, 0xfe, 0x32, 0xd9, 0xba, 0x1d, 0x2e, 0xba, 0x47, 0xe0, 0x29, - 0xdb, 0x4e, 0x09, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0x0b, 0x23, 0x88, 0x0c, 0xe9, - 0x4e, 0x86, 0x09, 0x1c, 0xa6, 0x3b, 0xd9, 0x20, 0x06, 0xc6, 0x70, 0xab, 0x7d, 0x8e, 0xee, 0xe6, - 0xe3, 0x76, 0x03, 0xff, 0x4e, 0x4a, 0x7d, 0x94, 0xfe, 0x7e, 0x26, 0x91, 0xff, 0x33, 0xe6, 0x2b, - 0x7e, 0x98, 0x4e, 0xe2, 0xd1, 0x1c, 0x47, 0x6e, 0x0c, 0xeb, 0x46, 0x12, 0xf6, 0x45, 0x3f, 0x67, - 0xb4, 0xdd, 0xad, 0x11, 0x9d, 0xe8, 0xb8, 0xe8, 0xd1, 0xf2, 0xaf, 0x47, 0xc6, 0x2f, 0xf0, 0x7f, - 0x66, 0x12, 0x85, 0x90, 0x0a, 0x44, 0x82, 0xd9, 0x8a, 0x10, 0x71, 0x82, 0xc0, 0x4f, 0xb1, 0xf4, - 0xc6, 0xa8, 0xd1, 0x67, 0x8d, 0x36, 0xb2, 0x1e, 0x86, 0x1a, 0x8d, 0xf9, 0x1a, 0x9d, 0x46, 0xc7, - 0x91, 0xfb, 0x09, 0xd5, 0xe8, 0x40, 0x24, 0x23, 0xd2, 0xe8, 0x58, 0x7a, 0xe9, 0xcb, 0xf8, 0x65, - 0xd3, 0x74, 0x22, 0xb5, 0x62, 0x98, 0x17, 0xe0, 0xbf, 0xe5, 0xfd, 0x8b, 0x99, 0xcf, 0x19, 0xee, - 0x16, 0x8d, 0x05, 0xf3, 0x3e, 0xe1, 0xbb, 0x51, 0x86, 0x88, 0xf7, 0xc2, 0x87, 0x93, 0xca, 0xed, - 0x0b, 0x27, 0x55, 0x02, 0x33, 0x86, 0xe9, 0x22, 0xdb, 0xd4, 0x3b, 0x8b, 0x1d, 0x7d, 0xd3, 0x39, - 0x35, 0xd1, 0xf7, 0xf2, 0xba, 0x0a, 0x93, 0x47, 0xe3, 0xff, 0x60, 0xaf, 0xaf, 0x2c, 0xf0, 0xd7, - 0x57, 0x46, 0x44, 0xbf, 0x9a, 0x8c, 0x8e, 0x7e, 0x15, 0x44, 0xb7, 0x02, 0x83, 0x83, 0x63, 0x8b, - 0xda, 0xc6, 0x09, 0xc3, 0xfd, 0xdd, 0x28, 0x18, 0x85, 0x2d, 0x08, 0xfd, 0xf8, 0x07, 0x72, 0xa2, - 0xd5, 0x3d, 0x4f, 0x11, 0xe6, 0x7a, 0x95, 0x20, 0xb1, 0x85, 0xca, 0x56, 0x5e, 0xee, 0xa9, 0x7c, - 0x60, 0xf2, 0x64, 0x05, 0x4c, 0x1e, 0x56, 0xa9, 0x72, 0x62, 0x4a, 0x95, 0x64, 0xb1, 0x50, 0xa4, - 0xb6, 0x63, 0x38, 0x8d, 0x94, 0x03, 0xc7, 0xfc, 0x68, 0xb7, 0xdd, 0x2e, 0xd2, 0x6d, 0xdd, 0x6c, - 0x21, 0xf8, 0x51, 0x69, 0x14, 0x66, 0xef, 0x22, 0x28, 0x18, 0x2d, 0xcb, 0xac, 0x1b, 0x4f, 0xf3, - 0x2f, 0x97, 0x8b, 0x0f, 0xb2, 0x8e, 0x25, 0x52, 0xa1, 0x7f, 0x68, 0xc1, 0xbf, 0x4a, 0x05, 0x4c, - 0xb6, 0x74, 0xbb, 0x4d, 0x82, 0xf0, 0xe5, 0x7a, 0x2e, 0x72, 0x8a, 0x24, 0x54, 0xf6, 0x7f, 0xd1, - 0xc2, 0xbf, 0x95, 0x1a, 0x2f, 0xc4, 0x7c, 0x4f, 0x34, 0x8f, 0x48, 0x62, 0x0b, 0xe1, 0x4f, 0x9c, - 0xcc, 0x3d, 0xe9, 0xd8, 0xa8, 0x83, 0xef, 0xa0, 0x27, 0x3d, 0xc4, 0xa4, 0x16, 0x26, 0x24, 0x5d, - 0x1e, 0xc0, 0x45, 0xed, 0x43, 0x63, 0xdc, 0xcb, 0x03, 0x42, 0x5c, 0xa4, 0xaf, 0x99, 0x6f, 0xcd, - 0x83, 0x19, 0xd2, 0xab, 0x51, 0x71, 0xc2, 0xe7, 0xe2, 0x2b, 0xa4, 0xdd, 0xbb, 0xd1, 0x1e, 0xac, - 0x1f, 0x7c, 0x4c, 0x2e, 0x02, 0xf9, 0x42, 0x10, 0x70, 0xd0, 0x7b, 0x4c, 0xba, 0x6f, 0xef, 0xf3, - 0x35, 0x47, 0x78, 0x1a, 0xf7, 0xbe, 0x7d, 0x7c, 0xf1, 0xe9, 0xe3, 0xf3, 0x5b, 0x32, 0x90, 0x4b, - 0xed, 0x36, 0x6c, 0x1d, 0x1c, 0x8a, 0xab, 0xc0, 0x94, 0xdf, 0x66, 0xc2, 0x18, 0x90, 0x6c, 0x52, - 0xd2, 0x45, 0xd0, 0x40, 0x36, 0xa5, 0xf6, 0xd8, 0x77, 0x15, 0x62, 0xca, 0x4e, 0x1f, 0x94, 0x2f, - 0x4e, 0xd0, 0x46, 0x33, 0x6f, 0x59, 0x17, 0xf0, 0x51, 0x99, 0x3f, 0x92, 0x41, 0x6e, 0x11, 0xb9, - 0xad, 0x2d, 0xe8, 0x8c, 0xa4, 0xcd, 0xec, 0xd8, 0x1d, 0xbf, 0xcd, 0xec, 0xd8, 0x9d, 0x41, 0x41, - 0x39, 0x93, 0x46, 0x7f, 0xf6, 0xd9, 0x9e, 0xc3, 0x2c, 0x8f, 0x3b, 0xfa, 0x73, 0x6c, 0xe9, 0x63, - 0x38, 0x04, 0x97, 0x05, 0xb3, 0xc1, 0x0a, 0x18, 0xc1, 0xec, 0xcd, 0x99, 0x87, 0xdd, 0x7a, 0xe8, - 0x00, 0xbb, 0x19, 0x7e, 0x3e, 0x59, 0x88, 0xb5, 0x40, 0xe6, 0x7c, 0xcd, 0x53, 0x5e, 0x98, 0x4c, - 0x10, 0x7c, 0x4d, 0x8c, 0xc1, 0x31, 0xac, 0x00, 0xc8, 0xa0, 0x80, 0x19, 0x5a, 0x30, 0x76, 0xb1, - 0xeb, 0x21, 0xb7, 0x50, 0xf9, 0xf4, 0x91, 0x2c, 0x54, 0xde, 0xc6, 0x2f, 0x54, 0x0a, 0x46, 0x4c, - 0xf6, 0xd7, 0x29, 0x13, 0xfa, 0xe2, 0x78, 0xff, 0x8f, 0x7c, 0x99, 0x32, 0x81, 0x2f, 0xce, 0x80, - 0xf2, 0xc7, 0xe0, 0x7a, 0xf8, 0x14, 0xda, 0x59, 0xfb, 0x1b, 0xb2, 0xf0, 0xbf, 0x1f, 0x03, 0xd9, - 0xb3, 0xde, 0xc3, 0xff, 0x08, 0x6f, 0xd4, 0x7a, 0xf1, 0x08, 0x82, 0x3b, 0x3c, 0x19, 0x64, 0x3d, - 0xfa, 0x74, 0xda, 0x73, 0xbd, 0xd8, 0xee, 0xb0, 0xc7, 0x88, 0x86, 0xff, 0x53, 0x4e, 0x82, 0xbc, - 0x63, 0xed, 0xd8, 0x2d, 0xcf, 0xfc, 0xf6, 0x34, 0x86, 0xbe, 0x25, 0x0d, 0x6a, 0xca, 0x91, 0x9e, - 0x1b, 0x9d, 0xcb, 0x29, 0x73, 0xc1, 0x92, 0xcc, 0x5d, 0xb0, 0x94, 0x60, 0xff, 0x41, 0x80, 0xb7, - 0xf4, 0x35, 0xe2, 0xef, 0xf0, 0x5d, 0x83, 0xed, 0x51, 0xc1, 0x1e, 0x21, 0x96, 0x83, 0xaa, 0x43, - 0x52, 0x87, 0x71, 0x5e, 0xb4, 0x41, 0x1c, 0xf9, 0xb1, 0x3a, 0x8c, 0x0b, 0xf0, 0x30, 0x96, 0x53, - 0xee, 0x79, 0xea, 0xe4, 0x7a, 0xcf, 0x28, 0xd1, 0xcd, 0x72, 0x4a, 0x7f, 0x20, 0x74, 0x46, 0xe8, - 0xfc, 0x3a, 0x34, 0x3a, 0x87, 0xe4, 0xfe, 0xfa, 0x67, 0x32, 0x8e, 0xa4, 0xe9, 0x1b, 0x41, 0xe2, - 0x17, 0x25, 0x25, 0x86, 0xc8, 0x1b, 0x83, 0xb9, 0x38, 0xd2, 0x33, 0xc3, 0x87, 0x16, 0xe7, 0x45, - 0xc7, 0xf0, 0x3f, 0xee, 0xd0, 0xe2, 0xa2, 0x8c, 0xa4, 0x0f, 0xe4, 0x1f, 0x92, 0x8b, 0xc9, 0x4a, - 0x2d, 0xd7, 0xd8, 0x1d, 0x71, 0x4b, 0xe3, 0x87, 0x97, 0x84, 0xd1, 0x84, 0xf7, 0x49, 0x88, 0x70, - 0x38, 0xee, 0x68, 0xc2, 0x62, 0x6c, 0xa4, 0x0f, 0xd3, 0x3f, 0xe6, 0x3d, 0xe9, 0xd1, 0xb5, 0x9d, - 0x57, 0xd3, 0xd5, 0x04, 0x74, 0x70, 0xb4, 0xce, 0x80, 0x69, 0x66, 0xe9, 0xc0, 0xbf, 0xf0, 0x86, - 0x4b, 0x4b, 0x7a, 0x50, 0x3e, 0x10, 0xd9, 0xc8, 0x17, 0x16, 0x12, 0x2c, 0x18, 0x8b, 0x30, 0x31, - 0x96, 0xfb, 0xe4, 0xfc, 0x31, 0x6c, 0x4c, 0x58, 0xbd, 0x8f, 0xc5, 0xaa, 0xc6, 0x63, 0x75, 0x8b, - 0x88, 0x98, 0xc4, 0xc6, 0x34, 0xa1, 0x79, 0xe3, 0x5b, 0x02, 0xb8, 0x34, 0x0e, 0xae, 0x27, 0x0f, - 0xcd, 0x47, 0xfa, 0x88, 0xbd, 0x84, 0x74, 0x87, 0x75, 0x62, 0xb2, 0x8f, 0xa6, 0x3b, 0xa4, 0xb3, - 0x01, 0x99, 0x9b, 0x0d, 0x24, 0xf4, 0xd7, 0x0f, 0xdd, 0x50, 0x7d, 0xe6, 0x06, 0x41, 0x94, 0x1d, - 0xb1, 0xbf, 0xfe, 0x40, 0x0e, 0xd2, 0x07, 0xe7, 0x3b, 0x32, 0x00, 0x4b, 0xb6, 0xb5, 0xd3, 0xad, - 0xd9, 0x6d, 0x64, 0xc3, 0x7f, 0x08, 0x27, 0x00, 0x2f, 0x1c, 0xc1, 0x04, 0x60, 0x0d, 0x80, 0xcd, - 0x80, 0x38, 0xd5, 0xf0, 0xc7, 0x8a, 0x99, 0xfb, 0x21, 0x53, 0x1a, 0x43, 0x83, 0xbf, 0xb2, 0xf6, - 0xe7, 0x78, 0x8c, 0xe3, 0xfa, 0xac, 0x90, 0xdc, 0x28, 0x27, 0x00, 0x6f, 0x0b, 0xb0, 0x6e, 0x70, - 0x58, 0xdf, 0x79, 0x00, 0x4e, 0xd2, 0xc7, 0xfc, 0x5f, 0x27, 0xc0, 0x14, 0xd9, 0xee, 0x23, 0x32, - 0xfd, 0xe7, 0x10, 0xf4, 0xdf, 0x1b, 0x01, 0xe8, 0xeb, 0x60, 0xda, 0x0a, 0xa9, 0x93, 0x3e, 0x95, - 0x5d, 0x80, 0x89, 0x85, 0x9d, 0xe1, 0x4b, 0xe3, 0xc8, 0xc0, 0x0f, 0xb3, 0xc8, 0x6b, 0x3c, 0xf2, - 0xb7, 0xc5, 0xc8, 0x9b, 0xa1, 0x38, 0x4a, 0xe8, 0xdf, 0x1e, 0x40, 0xbf, 0xce, 0x41, 0x5f, 0x3a, - 0x08, 0x2b, 0x63, 0x08, 0xd7, 0x2f, 0x83, 0x2c, 0x3e, 0x5d, 0xf7, 0xfa, 0x14, 0xe7, 0xf7, 0xa7, - 0xc0, 0x04, 0x6e, 0xb2, 0xc1, 0xbc, 0xc3, 0x7f, 0xf5, 0xbe, 0xe8, 0x1b, 0x2e, 0xb2, 0x83, 0x95, - 0x5b, 0xff, 0xd5, 0xe3, 0xc1, 0xf7, 0x6a, 0x76, 0x4e, 0xe5, 0xc9, 0x46, 0x66, 0x90, 0x30, 0xf4, - 0xa4, 0x84, 0x95, 0xf8, 0xc8, 0xce, 0xdb, 0x0d, 0x33, 0x29, 0x19, 0xc0, 0x48, 0xfa, 0xc0, 0x7f, - 0x29, 0x0b, 0x4e, 0x91, 0x55, 0xa5, 0x45, 0xdb, 0xda, 0xee, 0xb9, 0x1d, 0xcb, 0x38, 0xb8, 0x2e, - 0x5c, 0x0b, 0x66, 0x5d, 0xce, 0x9f, 0x9b, 0xea, 0x44, 0x4f, 0x2a, 0xfc, 0x2b, 0xd6, 0x27, 0xe3, - 0x29, 0x3c, 0x92, 0xf3, 0x31, 0x02, 0x8c, 0xe2, 0x3d, 0xf1, 0x42, 0xbd, 0x20, 0xa3, 0xcc, 0x22, - 0x95, 0x3c, 0xd4, 0x9a, 0x65, 0xa0, 0x53, 0x39, 0x11, 0x9d, 0x7a, 0x4f, 0xa0, 0x53, 0xbf, 0xc0, - 0xe9, 0xd4, 0xd2, 0xc1, 0x45, 0x32, 0x86, 0x95, 0x8b, 0x59, 0x90, 0x5f, 0x34, 0x3a, 0x2e, 0xb2, - 0xe1, 0x43, 0x74, 0x1e, 0xf5, 0x8a, 0x14, 0xbb, 0x97, 0x05, 0x90, 0xdf, 0xc0, 0xa5, 0x51, 0x83, - 0xec, 0x06, 0x31, 0x6c, 0x08, 0x87, 0x1a, 0xfd, 0x37, 0x69, 0xec, 0xb8, 0x1e, 0x32, 0x23, 0x9b, - 0x80, 0x25, 0x88, 0x1d, 0x37, 0x98, 0x85, 0xb1, 0x5c, 0x9b, 0x94, 0xd7, 0xd0, 0xb6, 0x37, 0x82, - 0x5c, 0x48, 0x0f, 0xe1, 0x22, 0x90, 0x8d, 0xb6, 0x83, 0x9b, 0xde, 0xa4, 0xe6, 0x3d, 0x26, 0xf5, - 0x64, 0xe9, 0x15, 0x15, 0x61, 0x79, 0xdc, 0x9e, 0x2c, 0x42, 0x5c, 0xa4, 0x8f, 0xd9, 0xf7, 0xb1, - 0x1b, 0x63, 0xb7, 0xa3, 0xb7, 0x90, 0xc7, 0x7d, 0x6a, 0xa8, 0xcd, 0x02, 0xc9, 0xf0, 0x47, 0x7c, - 0xc9, 0x60, 0xdb, 0x69, 0xee, 0x00, 0xed, 0x74, 0xd8, 0x45, 0xae, 0x40, 0xe6, 0xb8, 0xe2, 0x87, - 0xb6, 0xc8, 0x15, 0xcb, 0xc6, 0x18, 0x2e, 0xc5, 0xf4, 0x8f, 0x79, 0x8e, 0xb5, 0xb5, 0x0e, 0xbb, - 0x05, 0x40, 0x85, 0x35, 0xb2, 0x23, 0x9d, 0xc3, 0x6c, 0x01, 0x44, 0xf3, 0x30, 0x06, 0xb4, 0x66, - 0x29, 0x5a, 0x9f, 0xa3, 0xc3, 0x68, 0xca, 0xbb, 0x70, 0x8e, 0x65, 0xbb, 0xc9, 0x76, 0xe1, 0x3c, - 0xee, 0x34, 0xfc, 0x5f, 0xd2, 0x63, 0x41, 0xfc, 0xa9, 0xdf, 0x51, 0x0d, 0x9f, 0x09, 0x8e, 0x05, - 0x0d, 0x62, 0x20, 0x7d, 0x78, 0xdf, 0x70, 0x48, 0x83, 0xe7, 0xb0, 0xcd, 0x91, 0xb6, 0x81, 0x91, - 0x0d, 0x9d, 0xc3, 0x34, 0xc7, 0x68, 0x1e, 0xd2, 0xc7, 0xeb, 0xdb, 0xcc, 0xc0, 0xf9, 0xda, 0x31, - 0x0e, 0x9c, 0x7e, 0xcb, 0xcc, 0x0d, 0xd9, 0x32, 0x87, 0xdd, 0x5d, 0xa0, 0xb2, 0x1e, 0xdd, 0x80, - 0x39, 0xcc, 0xee, 0x42, 0x0c, 0x13, 0xe9, 0x23, 0xfe, 0x3a, 0x19, 0xe4, 0xea, 0xe3, 0x1f, 0x2f, - 0x87, 0x9d, 0x8b, 0x60, 0x59, 0xd5, 0x47, 0x36, 0x5c, 0x0e, 0x33, 0x17, 0x89, 0x64, 0x61, 0x0c, - 0x61, 0xe1, 0x8f, 0x82, 0x69, 0x3c, 0xe1, 0xf6, 0x37, 0xf1, 0xbe, 0x4d, 0x47, 0xcd, 0x07, 0x53, - 0x6c, 0xab, 0x77, 0x81, 0x82, 0xbf, 0x3b, 0x44, 0x47, 0xce, 0x39, 0xb1, 0xf6, 0xe9, 0x73, 0xa9, - 0x05, 0xff, 0x1f, 0x68, 0xab, 0x7d, 0xe4, 0x3b, 0x81, 0xc3, 0x6e, 0xb5, 0x1f, 0xea, 0x6e, 0xe0, - 0x5f, 0x86, 0x23, 0xea, 0x7f, 0x49, 0x0f, 0xf3, 0xde, 0x5d, 0xc2, 0x6c, 0x9f, 0x5d, 0xc2, 0x8f, - 0xb2, 0x58, 0xd6, 0x79, 0x2c, 0x6f, 0x17, 0x15, 0xe1, 0x08, 0xc7, 0xda, 0x77, 0x04, 0x70, 0x9e, - 0xe5, 0xe0, 0x9c, 0x3f, 0x10, 0x2f, 0x63, 0x38, 0x96, 0x97, 0x0d, 0xc7, 0xdc, 0x8f, 0xa5, 0xd8, - 0x8e, 0x7b, 0x7c, 0xfe, 0xb3, 0xfb, 0x7c, 0xfe, 0xb9, 0x96, 0x9e, 0x3b, 0x60, 0x4b, 0xff, 0x18, - 0xab, 0x1d, 0x0d, 0x5e, 0x3b, 0x9e, 0x2c, 0x8e, 0xc8, 0xe8, 0x46, 0xe6, 0x77, 0x06, 0xea, 0x71, - 0x8e, 0x53, 0x8f, 0xf2, 0xc1, 0x98, 0x49, 0x5f, 0x3f, 0x3e, 0xe1, 0x4f, 0x68, 0x0f, 0xb9, 0xbd, - 0x0f, 0xbb, 0x11, 0xc9, 0x09, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x1b, 0x91, 0x83, 0x38, 0x19, 0x43, - 0xa4, 0xb0, 0x19, 0x30, 0x85, 0x79, 0x3a, 0x67, 0xb4, 0x37, 0x91, 0x0b, 0xff, 0x80, 0x78, 0xc0, - 0xf9, 0x71, 0x19, 0x47, 0x14, 0x3c, 0x27, 0xea, 0x34, 0x66, 0x52, 0x7f, 0x01, 0xc2, 0xe4, 0x1c, - 0xc3, 0xe0, 0xb8, 0xe3, 0xfb, 0x0d, 0xe4, 0x20, 0x7d, 0xc8, 0x3e, 0x4c, 0x9c, 0x39, 0x56, 0xf4, - 0x3d, 0x6b, 0xc7, 0x85, 0xf7, 0x8f, 0xa0, 0x83, 0x9e, 0x07, 0xf9, 0x0e, 0xa6, 0x46, 0x9d, 0xfe, - 0xe3, 0xa7, 0x3b, 0x54, 0x04, 0xa4, 0x7c, 0x8d, 0xfe, 0x99, 0xd4, 0xf3, 0x3f, 0x94, 0x23, 0xa1, - 0x33, 0x6e, 0xcf, 0xff, 0x01, 0xe5, 0x8f, 0xe5, 0x06, 0x98, 0x82, 0x57, 0xba, 0xb1, 0x6d, 0xb8, - 0x23, 0x8a, 0x2f, 0xd0, 0xf1, 0x68, 0xf9, 0xf1, 0x05, 0xf0, 0x4b, 0xd2, 0xf3, 0x8c, 0x8c, 0x54, - 0xbc, 0xdf, 0xc7, 0x7d, 0x9e, 0x31, 0xbe, 0xf8, 0xf4, 0x31, 0xf9, 0x1d, 0xd2, 0xb2, 0xce, 0x12, - 0xd7, 0xce, 0x14, 0xbd, 0x46, 0x87, 0x6e, 0x2c, 0x84, 0xb5, 0xc3, 0x6b, 0x2c, 0x7d, 0xcb, 0x4f, - 0x1f, 0x98, 0x3f, 0xfa, 0x69, 0x90, 0x5b, 0x40, 0xe7, 0x77, 0x36, 0xe1, 0x6d, 0xa0, 0xd0, 0xb0, - 0x11, 0xaa, 0x98, 0x1b, 0x96, 0x27, 0x5d, 0xd7, 0x7b, 0xf6, 0x21, 0xa1, 0x6f, 0x1e, 0x1e, 0x5b, - 0x48, 0x6f, 0x87, 0xa7, 0x9b, 0xfc, 0x57, 0xf8, 0x62, 0x09, 0x64, 0xeb, 0xae, 0xee, 0xc2, 0xc9, - 0x00, 0x5b, 0x78, 0x3f, 0x8b, 0xc5, 0x6d, 0x3c, 0x16, 0xd7, 0x72, 0xb2, 0xc0, 0x1c, 0xcc, 0x79, - 0xff, 0x47, 0x00, 0x00, 0x41, 0xe1, 0x5e, 0xc7, 0x32, 0xbd, 0x1c, 0xfe, 0x01, 0x3c, 0xff, 0x1d, - 0xbe, 0x3c, 0x10, 0xf7, 0x1d, 0x9c, 0xb8, 0x1f, 0x2d, 0x56, 0xc4, 0x18, 0x56, 0xda, 0x24, 0x30, - 0xe9, 0x89, 0x76, 0x19, 0xe9, 0x6d, 0x07, 0xfe, 0x54, 0xa8, 0xfc, 0x11, 0x62, 0x86, 0xef, 0x17, - 0x0e, 0x15, 0x49, 0x6a, 0x15, 0x10, 0x8f, 0xf6, 0x17, 0xf0, 0x43, 0x65, 0x48, 0x7c, 0xa8, 0x8c, - 0x1b, 0x41, 0xd6, 0x30, 0x37, 0x2c, 0xea, 0xbd, 0x76, 0x79, 0x04, 0x6d, 0x4f, 0x27, 0x34, 0x9c, - 0x51, 0x30, 0x8e, 0x64, 0x3c, 0x5b, 0x63, 0xb9, 0x92, 0x2d, 0xeb, 0x95, 0x0e, 0xff, 0xaf, 0x81, - 0xc2, 0x56, 0x14, 0x90, 0xed, 0xea, 0xee, 0x16, 0x2d, 0x1a, 0x3f, 0x7b, 0x36, 0xf2, 0x8e, 0xa9, - 0x9b, 0x96, 0xb9, 0xb7, 0x6d, 0x3c, 0x2d, 0xb8, 0xf9, 0x95, 0x4b, 0xf3, 0x38, 0xdf, 0x44, 0x26, - 0xb2, 0x75, 0x17, 0xd5, 0x77, 0x37, 0xf1, 0x1c, 0xab, 0xa0, 0xb1, 0x49, 0x89, 0xf5, 0xdf, 0xe3, - 0x38, 0x5a, 0xff, 0x37, 0x8c, 0x0e, 0xc2, 0x71, 0x84, 0xa8, 0xfe, 0xfb, 0xef, 0x89, 0xf4, 0xbf, - 0x4f, 0x11, 0xe9, 0xa3, 0xf1, 0x03, 0x09, 0x4c, 0xd7, 0x3d, 0x85, 0xab, 0xef, 0x6c, 0x6f, 0xeb, - 0xf6, 0x1e, 0xbc, 0x3a, 0x44, 0x85, 0x51, 0xcd, 0x0c, 0xa7, 0x9a, 0xf0, 0xcf, 0x84, 0x2f, 0x3d, - 0xa6, 0x4d, 0x9b, 0x29, 0x21, 0x71, 0x3b, 0xb8, 0x09, 0xe4, 0x3c, 0xf5, 0xf6, 0xfd, 0xf9, 0x62, - 0x1b, 0x02, 0xc9, 0x29, 0x18, 0x6f, 0x69, 0x20, 0x6f, 0x63, 0x88, 0xf5, 0x20, 0x81, 0xa3, 0x75, - 0x57, 0x6f, 0x5d, 0x58, 0xb2, 0x6c, 0x6b, 0xc7, 0x35, 0x4c, 0xe4, 0xc0, 0x47, 0x84, 0x08, 0xf8, - 0xfa, 0x9f, 0x09, 0xf5, 0x1f, 0xfe, 0x28, 0x23, 0x3a, 0x8a, 0x06, 0xdd, 0x2a, 0x4b, 0x3e, 0x22, - 0x7c, 0x92, 0xd8, 0xb8, 0x28, 0x42, 0x31, 0x7d, 0xa1, 0xbd, 0x56, 0x06, 0x45, 0xf5, 0xbe, 0xae, - 0x65, 0xbb, 0x2b, 0x56, 0x4b, 0xef, 0x38, 0xae, 0x65, 0x23, 0x58, 0x8b, 0x95, 0x9a, 0xd7, 0xc3, - 0xb4, 0xad, 0x56, 0x38, 0x38, 0xd2, 0x37, 0x56, 0xed, 0x64, 0x5e, 0xc7, 0x3f, 0x2c, 0xbc, 0xcb, - 0x48, 0xa4, 0xd2, 0xcb, 0x51, 0x84, 0x9e, 0xf7, 0xeb, 0xd2, 0x92, 0xb9, 0xe2, 0x8b, 0xed, 0x3c, - 0x0a, 0x31, 0x35, 0x86, 0xa5, 0x72, 0x09, 0xcc, 0xd4, 0x77, 0xce, 0x07, 0x44, 0x1c, 0xd6, 0x08, - 0x79, 0xa5, 0x70, 0x8c, 0x04, 0xaa, 0x78, 0x2c, 0xa1, 0x08, 0xf9, 0x5e, 0x03, 0x66, 0x1c, 0x36, - 0x1b, 0xc5, 0x9b, 0x4f, 0x14, 0x8c, 0x8d, 0x30, 0xb8, 0xd4, 0xf4, 0x05, 0xf8, 0x4e, 0x09, 0xcc, - 0xd4, 0xba, 0xc8, 0x44, 0x6d, 0xe2, 0x63, 0xc7, 0x09, 0xf0, 0xc5, 0x09, 0x05, 0xc8, 0x11, 0x8a, - 0x10, 0x60, 0xe8, 0x0f, 0xbb, 0xe0, 0x0b, 0x2f, 0x4c, 0x48, 0x24, 0xb8, 0xb8, 0xd2, 0xd2, 0x17, - 0xdc, 0x97, 0x25, 0x30, 0xa5, 0xed, 0x98, 0x6b, 0xb6, 0xe5, 0x8d, 0xc6, 0x36, 0xbc, 0x3d, 0xec, - 0x20, 0x6e, 0x00, 0xc7, 0xda, 0x3b, 0x36, 0x5e, 0x7f, 0xaa, 0x98, 0x75, 0xd4, 0xb2, 0xcc, 0xb6, - 0x83, 0xeb, 0x91, 0xd3, 0xf6, 0x7f, 0xb8, 0x35, 0xfb, 0xec, 0x6f, 0xc8, 0x19, 0xf8, 0x5c, 0xe1, - 0x40, 0x2c, 0xa4, 0xf2, 0x4c, 0xd1, 0xe2, 0x3d, 0x81, 0x60, 0xb8, 0x95, 0x41, 0x25, 0xa4, 0x2f, - 0xdc, 0xcf, 0x49, 0x40, 0x29, 0xb5, 0x5a, 0xd6, 0x8e, 0xe9, 0xd6, 0x51, 0x07, 0xb5, 0xdc, 0x86, - 0xad, 0xb7, 0x10, 0x6b, 0x3f, 0x17, 0x81, 0xdc, 0x36, 0x6c, 0xda, 0x07, 0x7b, 0x8f, 0x54, 0x8e, - 0x2f, 0x16, 0xde, 0x71, 0x24, 0xb5, 0xdc, 0x5f, 0x4a, 0x02, 0x71, 0x8a, 0xed, 0x2b, 0x0a, 0x16, - 0x94, 0xbe, 0x54, 0x3f, 0x26, 0x81, 0x49, 0xbf, 0xc7, 0xde, 0x14, 0x11, 0xe6, 0xef, 0x24, 0x9c, - 0x8c, 0x04, 0xc4, 0x13, 0xc8, 0xf0, 0xad, 0x09, 0x66, 0x15, 0x51, 0xf4, 0x93, 0x89, 0xae, 0x94, - 0x5c, 0x74, 0xde, 0x6b, 0xb5, 0xd6, 0x5c, 0xac, 0xad, 0x2c, 0xa8, 0x5a, 0x51, 0x86, 0x0f, 0x49, - 0x20, 0xbb, 0x66, 0x98, 0x9b, 0x6c, 0xbc, 0xac, 0xe3, 0x9e, 0x1d, 0xd9, 0x46, 0xf7, 0xd1, 0x96, - 0x4e, 0x5e, 0x94, 0x9b, 0xc1, 0x71, 0x73, 0x67, 0xfb, 0x3c, 0xb2, 0x6b, 0x1b, 0x78, 0x94, 0x75, - 0x1a, 0x56, 0x1d, 0x99, 0xc4, 0x08, 0xcd, 0x69, 0x7d, 0xbf, 0xf1, 0x26, 0x98, 0xc0, 0xe4, 0xc1, - 0xe3, 0x24, 0x42, 0xe2, 0x01, 0x53, 0x12, 0xc3, 0x54, 0xa2, 0x69, 0x43, 0x1f, 0xe2, 0xe9, 0x6b, - 0xea, 0x9f, 0xe7, 0xc0, 0x89, 0x92, 0xb9, 0x87, 0x6d, 0x0a, 0xd2, 0xc1, 0x97, 0xb7, 0x74, 0x73, - 0x13, 0xe1, 0x01, 0x22, 0x90, 0x38, 0x1b, 0x40, 0x3e, 0xc3, 0x07, 0x90, 0x57, 0x34, 0x30, 0x61, - 0xd9, 0x6d, 0x64, 0xcf, 0xef, 0x61, 0x9e, 0x7a, 0x97, 0x9d, 0x69, 0x9b, 0xec, 0x57, 0xc4, 0x1c, - 0x25, 0x3f, 0x57, 0x23, 0xff, 0x6b, 0x3e, 0xa1, 0x33, 0x37, 0x80, 0x09, 0x9a, 0xa6, 0x4c, 0x83, - 0x42, 0x4d, 0x5b, 0x50, 0xb5, 0x66, 0x65, 0xa1, 0x78, 0x44, 0xb9, 0x04, 0x1c, 0xad, 0x34, 0x54, - 0xad, 0xd4, 0xa8, 0xd4, 0xaa, 0x4d, 0x9c, 0x5e, 0xcc, 0xc0, 0x67, 0x65, 0x45, 0x3d, 0x7b, 0xe3, - 0x99, 0xe9, 0x07, 0xab, 0x06, 0x26, 0x5a, 0x24, 0x03, 0x1e, 0x42, 0xa7, 0x12, 0xd5, 0x8e, 0x12, - 0x24, 0x09, 0x9a, 0x4f, 0x48, 0x39, 0x0d, 0xc0, 0x45, 0xdb, 0x32, 0x37, 0xc3, 0x33, 0x6d, 0x05, - 0x8d, 0x49, 0x81, 0xf7, 0x67, 0x40, 0x9e, 0xfc, 0x83, 0x2f, 0xcc, 0xc0, 0x4f, 0xa1, 0xe0, 0xfd, - 0x77, 0xcf, 0xe2, 0xc5, 0xf2, 0x0a, 0x27, 0x5a, 0xf4, 0xd5, 0xd3, 0x45, 0x22, 0x03, 0x62, 0x09, - 0xd3, 0xaa, 0xdc, 0x08, 0xf2, 0xe4, 0x5f, 0xea, 0x75, 0x10, 0x1d, 0xfc, 0x92, 0x64, 0x13, 0xf4, - 0x53, 0x16, 0x97, 0x69, 0xfa, 0xda, 0xfc, 0x01, 0x09, 0x14, 0xaa, 0xc8, 0x2d, 0x6f, 0xa1, 0xd6, - 0x05, 0xf8, 0x28, 0x7e, 0x01, 0xb4, 0x63, 0x20, 0xd3, 0xbd, 0x67, 0xbb, 0x13, 0x2c, 0x80, 0xfa, - 0x09, 0xf0, 0x39, 0x6c, 0xe7, 0x7b, 0x27, 0xaf, 0x3f, 0xd7, 0xf7, 0xa9, 0xab, 0x5f, 0x42, 0x84, - 0xca, 0x9c, 0x04, 0x79, 0x1b, 0x39, 0x3b, 0x1d, 0x7f, 0x11, 0x8d, 0xbe, 0xc1, 0x07, 0x02, 0x71, - 0x96, 0x39, 0x71, 0xde, 0x28, 0x5e, 0xc4, 0x18, 0xa2, 0x69, 0x66, 0xc1, 0x44, 0xc5, 0x34, 0x5c, - 0x43, 0xef, 0xc0, 0xe7, 0x66, 0xc1, 0x4c, 0x1d, 0xb9, 0x6b, 0xba, 0xad, 0x6f, 0x23, 0x17, 0xd9, - 0x0e, 0xfc, 0x1e, 0xdf, 0x27, 0x74, 0x3b, 0xba, 0xbb, 0x61, 0xd9, 0xdb, 0xbe, 0x6a, 0xfa, 0xef, - 0x9e, 0x6a, 0xee, 0x22, 0xdb, 0x09, 0xf9, 0xf2, 0x5f, 0xbd, 0x2f, 0x17, 0x2d, 0xfb, 0x82, 0x37, - 0x08, 0xd2, 0x69, 0x1a, 0x7d, 0xf5, 0xe8, 0x75, 0xac, 0xcd, 0x15, 0xb4, 0x8b, 0xfc, 0x60, 0x5d, - 0xc1, 0xbb, 0x37, 0x17, 0x68, 0x5b, 0x55, 0xcb, 0xf5, 0x3a, 0xed, 0x15, 0x6b, 0x93, 0x44, 0x33, - 0x2d, 0x68, 0x7c, 0x62, 0x98, 0x4b, 0xdf, 0x45, 0x38, 0x57, 0x9e, 0xcd, 0x45, 0x13, 0x95, 0x39, - 0xa0, 0x04, 0xbf, 0x35, 0x50, 0x07, 0x6d, 0x23, 0xd7, 0xde, 0xc3, 0x97, 0x16, 0x14, 0xb4, 0x3e, - 0x5f, 0xe8, 0x00, 0x2d, 0x3e, 0x59, 0xa7, 0xd2, 0x9b, 0xe3, 0x24, 0x77, 0xa0, 0xc9, 0xba, 0x08, - 0xc5, 0xb1, 0x5c, 0xca, 0x24, 0x7b, 0xd6, 0xcc, 0x4b, 0x65, 0x90, 0xc5, 0x83, 0xe7, 0xeb, 0x32, - 0xdc, 0x0a, 0xd3, 0x36, 0x72, 0x1c, 0x7d, 0x13, 0xf9, 0x2b, 0x4c, 0xf4, 0x55, 0xb9, 0x05, 0xe4, - 0x3a, 0x18, 0x53, 0x32, 0x38, 0x5c, 0xcd, 0xd5, 0xcc, 0x33, 0x30, 0x3c, 0x5a, 0xc1, 0x48, 0x80, - 0xe1, 0xd6, 0xc8, 0x1f, 0x67, 0xee, 0x02, 0x39, 0x02, 0xff, 0x24, 0xc8, 0x2d, 0xa8, 0xf3, 0xeb, - 0x4b, 0xc5, 0x23, 0xde, 0xa3, 0xcf, 0xdf, 0x24, 0xc8, 0x2d, 0x96, 0x1a, 0xa5, 0x95, 0xa2, 0xe4, - 0xd5, 0xa3, 0x52, 0x5d, 0xac, 0x15, 0x65, 0x2f, 0x71, 0xad, 0x54, 0xad, 0x94, 0x8b, 0x59, 0x65, - 0x0a, 0x4c, 0x9c, 0x2b, 0x69, 0xd5, 0x4a, 0x75, 0xa9, 0x98, 0x83, 0xff, 0xc8, 0xe2, 0x77, 0x2b, - 0x8f, 0xdf, 0x35, 0x51, 0x3c, 0xf5, 0x83, 0xec, 0xf7, 0x03, 0xc8, 0x6e, 0xe7, 0x20, 0xfb, 0x69, - 0x11, 0x22, 0x63, 0x70, 0x67, 0xca, 0x83, 0x89, 0x35, 0xdb, 0x6a, 0x21, 0xc7, 0x81, 0xbf, 0x2b, - 0x81, 0x7c, 0x59, 0x37, 0x5b, 0xa8, 0x03, 0x2f, 0x0b, 0xa1, 0x22, 0xae, 0xa2, 0x19, 0xdf, 0x55, - 0x14, 0x7e, 0x27, 0x23, 0xda, 0xfb, 0x51, 0xba, 0x73, 0x84, 0x66, 0x84, 0x7c, 0xc4, 0x7a, 0xb9, - 0x58, 0x52, 0x63, 0xb8, 0xb8, 0x45, 0x02, 0x93, 0x74, 0x35, 0xe0, 0x3c, 0x62, 0xe7, 0xe1, 0xdf, - 0xcb, 0x88, 0x4e, 0x0e, 0xfd, 0x1a, 0x04, 0x64, 0x22, 0xe4, 0x21, 0x36, 0x11, 0x1c, 0x44, 0x6d, - 0x0c, 0x9b, 0x87, 0x12, 0x98, 0x5a, 0x37, 0x9d, 0x7e, 0x42, 0x11, 0x8f, 0xf2, 0xee, 0x57, 0x83, - 0x21, 0x74, 0xa0, 0x28, 0xef, 0x83, 0xe9, 0xa5, 0x2f, 0x98, 0xef, 0x65, 0xc0, 0xf1, 0x25, 0x64, - 0x22, 0xdb, 0x68, 0x91, 0x1a, 0xf8, 0x92, 0xb8, 0x9d, 0x97, 0xc4, 0xa3, 0x38, 0xce, 0xfb, 0xfd, - 0xc1, 0x4b, 0xe0, 0x15, 0x81, 0x04, 0xee, 0xe4, 0x24, 0x70, 0x83, 0x20, 0x9d, 0x31, 0xdc, 0xd6, - 0x3d, 0x09, 0xa6, 0xab, 0x96, 0x6b, 0x6c, 0x18, 0x2d, 0xe2, 0x83, 0xf6, 0x12, 0x19, 0x64, 0x57, - 0x0c, 0xc7, 0x85, 0xa5, 0xb0, 0x3b, 0xb9, 0x0a, 0x4c, 0x19, 0x66, 0xab, 0xb3, 0xd3, 0x46, 0x1a, - 0xd2, 0x49, 0xbf, 0x52, 0xd0, 0xd8, 0xa4, 0x70, 0x6b, 0xdf, 0x63, 0x4b, 0xf6, 0xb7, 0xf6, 0x3f, - 0x2d, 0xbc, 0x0c, 0xc3, 0xb2, 0x80, 0xc3, 0x1d, 0x46, 0xd8, 0x5d, 0x25, 0x30, 0x63, 0x32, 0x59, - 0x7d, 0x83, 0xbd, 0x37, 0xdc, 0x3d, 0x4b, 0x4e, 0xe3, 0xff, 0x80, 0xef, 0x16, 0x6a, 0xac, 0x83, - 0x18, 0x4a, 0x86, 0xcc, 0xe2, 0x10, 0x93, 0x64, 0x05, 0xcc, 0x56, 0xaa, 0x0d, 0x55, 0xab, 0x96, - 0x56, 0x68, 0x16, 0x19, 0xfe, 0x40, 0x02, 0x39, 0x0d, 0x75, 0x3b, 0x7b, 0x6c, 0x3c, 0x63, 0xea, - 0x28, 0x9e, 0x09, 0x1c, 0xc5, 0x95, 0x45, 0x00, 0xf4, 0x96, 0x57, 0x30, 0xbe, 0xf0, 0x49, 0xea, - 0x1b, 0x25, 0x93, 0xab, 0x60, 0x29, 0xc8, 0xad, 0x31, 0x7f, 0xc2, 0xe7, 0x09, 0xef, 0x1c, 0x71, - 0xd4, 0x30, 0x87, 0x11, 0x7d, 0xc2, 0x7b, 0x84, 0x36, 0x7b, 0x06, 0x92, 0x3b, 0x1c, 0xf1, 0x7f, - 0x45, 0x02, 0xd9, 0x86, 0xd7, 0x5b, 0x32, 0x1d, 0xe7, 0xa7, 0x86, 0xd3, 0x71, 0x8f, 0x4c, 0x84, - 0x8e, 0xdf, 0x01, 0xa6, 0x59, 0x8d, 0xa5, 0xae, 0x12, 0xb1, 0x2a, 0xce, 0xfd, 0x30, 0x8c, 0x86, - 0xf7, 0x61, 0xe7, 0x70, 0x44, 0xfc, 0xf1, 0x47, 0x03, 0xb0, 0x8a, 0xb6, 0xcf, 0x23, 0xdb, 0xd9, - 0x32, 0xba, 0xf0, 0x9f, 0x64, 0x30, 0xb9, 0x84, 0xdc, 0xba, 0xab, 0xbb, 0x3b, 0x4e, 0xcf, 0x76, - 0xa7, 0x69, 0x95, 0xf5, 0xd6, 0x16, 0xa2, 0xdd, 0x91, 0xff, 0x0a, 0xdf, 0x2e, 0x8b, 0xfa, 0x13, - 0x85, 0xe5, 0xcc, 0x05, 0x65, 0x44, 0x60, 0xf2, 0x18, 0x90, 0x6d, 0xeb, 0xae, 0x4e, 0xb1, 0xb8, - 0xac, 0x07, 0x8b, 0x90, 0x90, 0x86, 0xb3, 0xc1, 0x37, 0x4b, 0x22, 0x0e, 0x45, 0x02, 0xe5, 0x27, - 0x03, 0xe1, 0xdd, 0x99, 0x21, 0x50, 0x38, 0x06, 0x66, 0xaa, 0xb5, 0x46, 0x73, 0xa5, 0xb6, 0xb4, - 0xa4, 0x7a, 0xa9, 0x45, 0x59, 0x39, 0x09, 0x94, 0xb5, 0xd2, 0x3d, 0xab, 0x6a, 0xb5, 0xd1, 0xac, - 0xd6, 0x16, 0x54, 0xfa, 0x67, 0x56, 0x39, 0x0a, 0xa6, 0xca, 0xa5, 0xf2, 0xb2, 0x9f, 0x90, 0x53, - 0x4e, 0x81, 0xe3, 0xab, 0xea, 0xea, 0xbc, 0xaa, 0xd5, 0x97, 0x2b, 0x6b, 0x4d, 0x8f, 0xcc, 0x62, - 0x6d, 0xbd, 0xba, 0x50, 0xcc, 0x2b, 0x10, 0x9c, 0x64, 0xbe, 0x9c, 0xd3, 0x6a, 0xd5, 0xa5, 0x66, - 0xbd, 0x51, 0x6a, 0xa8, 0xc5, 0x09, 0xe5, 0x12, 0x70, 0xb4, 0x5c, 0xaa, 0xe2, 0xec, 0xe5, 0x5a, - 0xb5, 0xaa, 0x96, 0x1b, 0xc5, 0x02, 0xfc, 0x51, 0x16, 0x4c, 0x55, 0x9c, 0xaa, 0xbe, 0x8d, 0xce, - 0xea, 0x1d, 0xa3, 0x0d, 0x9f, 0xcb, 0xcc, 0x3c, 0xae, 0x01, 0x33, 0x36, 0x79, 0x44, 0xed, 0x86, - 0x81, 0x08, 0x9a, 0x33, 0x1a, 0x9f, 0xe8, 0xcd, 0xc9, 0x4d, 0x4c, 0xc0, 0x9f, 0x93, 0x93, 0x37, - 0x65, 0x1e, 0x00, 0xf2, 0xd4, 0x08, 0xaf, 0x1e, 0x3d, 0xd3, 0xdb, 0x9a, 0xf4, 0x6d, 0xe4, 0x20, - 0x7b, 0xd7, 0x68, 0x21, 0x3f, 0xa7, 0xc6, 0xfc, 0x05, 0xbf, 0x2a, 0x8b, 0xee, 0x2f, 0x32, 0xa0, - 0x32, 0xd5, 0x89, 0xe8, 0x0d, 0x7f, 0x4d, 0x16, 0xd9, 0x1d, 0x14, 0x22, 0x99, 0x4c, 0x53, 0x5e, - 0x20, 0x0d, 0xb7, 0x6c, 0xdb, 0xa8, 0xd5, 0x9a, 0xf5, 0xe5, 0x9a, 0xd6, 0x28, 0xca, 0xca, 0x34, - 0x28, 0x78, 0xaf, 0x2b, 0xb5, 0xea, 0x52, 0x31, 0xab, 0x9c, 0x00, 0xc7, 0x96, 0x4b, 0xf5, 0x66, - 0xa5, 0x7a, 0xb6, 0xb4, 0x52, 0x59, 0x68, 0x96, 0x97, 0x4b, 0x5a, 0xbd, 0x98, 0x53, 0x2e, 0x03, - 0x27, 0x1a, 0x15, 0x55, 0x6b, 0x2e, 0xaa, 0xa5, 0xc6, 0xba, 0xa6, 0xd6, 0x9b, 0xd5, 0x5a, 0xb3, - 0x5a, 0x5a, 0x55, 0x8b, 0x79, 0xaf, 0xf9, 0xe3, 0x4f, 0xa1, 0xda, 0x4c, 0xec, 0x57, 0xc6, 0x42, - 0x84, 0x32, 0x4e, 0xf6, 0x2a, 0x23, 0x60, 0xd5, 0x4a, 0x53, 0xeb, 0xaa, 0x76, 0x56, 0x2d, 0x4e, - 0xf5, 0xd3, 0xb5, 0x69, 0xe5, 0x38, 0x28, 0x7a, 0x3c, 0x34, 0x2b, 0x75, 0x3f, 0xe7, 0x42, 0x71, - 0x06, 0x7e, 0x2c, 0x0f, 0x4e, 0x6a, 0x68, 0xd3, 0x70, 0x5c, 0x64, 0xaf, 0xe9, 0x7b, 0xdb, 0xc8, - 0x74, 0xfd, 0x4e, 0xfe, 0xdf, 0x13, 0x2b, 0xe3, 0x2a, 0x98, 0xe9, 0x12, 0x1a, 0xab, 0xc8, 0xdd, - 0xb2, 0xda, 0x74, 0x14, 0x7e, 0x54, 0x64, 0xcf, 0x31, 0xb7, 0xc6, 0x66, 0xd7, 0xf8, 0xbf, 0x19, - 0xdd, 0x96, 0x63, 0x74, 0x3b, 0x3b, 0x8c, 0x6e, 0x2b, 0x57, 0x80, 0xc9, 0x1d, 0x07, 0xd9, 0xea, - 0xb6, 0x6e, 0x74, 0xfc, 0xab, 0x23, 0x83, 0x04, 0xf8, 0x96, 0xac, 0xe8, 0x89, 0x15, 0xa6, 0x2e, - 0xfd, 0xc5, 0x18, 0xd1, 0xb7, 0x9e, 0x06, 0x80, 0x56, 0x76, 0xdd, 0xee, 0x50, 0x65, 0x65, 0x52, - 0x3c, 0xfe, 0xce, 0x1b, 0x9d, 0x8e, 0x61, 0x6e, 0x06, 0xfb, 0xfe, 0x61, 0x02, 0x7c, 0x81, 0x2c, - 0x72, 0x82, 0x25, 0x29, 0x6f, 0xc9, 0x5a, 0xd3, 0xf3, 0xa4, 0x31, 0xf7, 0xbb, 0xfb, 0x9b, 0x4e, - 0x5e, 0x29, 0x82, 0x69, 0x9c, 0x46, 0x5b, 0x60, 0x71, 0xc2, 0xeb, 0x83, 0x7d, 0x72, 0xab, 0x6a, - 0x63, 0xb9, 0xb6, 0x10, 0x7c, 0x2b, 0x78, 0x24, 0x3d, 0x66, 0x4a, 0xd5, 0x7b, 0x70, 0x6b, 0x9c, - 0x54, 0x1e, 0x01, 0x2e, 0x63, 0x3a, 0xec, 0xd2, 0x8a, 0xa6, 0x96, 0x16, 0xee, 0x69, 0xaa, 0x4f, - 0xa9, 0xd4, 0x1b, 0x75, 0xbe, 0x71, 0xf9, 0xed, 0x68, 0xca, 0xe3, 0x57, 0x5d, 0x2d, 0x55, 0x56, - 0x68, 0xff, 0xbe, 0x58, 0xd3, 0x56, 0x4b, 0x8d, 0xe2, 0x34, 0x7c, 0xa9, 0x0c, 0x8a, 0x4b, 0xc8, - 0x5d, 0xb3, 0x6c, 0x57, 0xef, 0xac, 0x18, 0xe6, 0x85, 0x75, 0xbb, 0xc3, 0x4d, 0x36, 0x85, 0xc3, - 0x74, 0xf0, 0x43, 0x24, 0x47, 0x30, 0x7a, 0x47, 0xbc, 0x8b, 0xb3, 0x85, 0xca, 0x14, 0x26, 0xc0, - 0xa7, 0x4b, 0x22, 0xcb, 0xdd, 0xe2, 0xa5, 0x26, 0xd3, 0x93, 0x67, 0x8c, 0x7b, 0x7c, 0xee, 0x83, - 0x5a, 0x1e, 0x3e, 0x3b, 0x0b, 0x0a, 0x8b, 0x86, 0xa9, 0x77, 0x8c, 0xa7, 0x71, 0xd1, 0x31, 0xc3, - 0x3e, 0x26, 0x13, 0xd3, 0xc7, 0x48, 0x43, 0x8d, 0x9f, 0xbf, 0x2d, 0x8b, 0x2e, 0x2f, 0x30, 0xb2, - 0xf7, 0x99, 0x8c, 0x18, 0x3c, 0x3f, 0x28, 0x89, 0x2c, 0x2f, 0x0c, 0xa6, 0x97, 0x0c, 0xc3, 0x4f, - 0xfe, 0x78, 0xd8, 0x58, 0x3d, 0xed, 0xbb, 0xd0, 0x4f, 0x15, 0x26, 0xe1, 0x5f, 0xcb, 0x00, 0x2e, - 0x21, 0xf7, 0x2c, 0xb2, 0x83, 0xa9, 0x00, 0xee, 0xf5, 0xa9, 0xbd, 0xcd, 0x34, 0xd9, 0xd7, 0xb1, - 0x00, 0x9e, 0xe3, 0x01, 0x2c, 0xc5, 0x34, 0x9e, 0x08, 0xd2, 0x11, 0x8d, 0xb7, 0x02, 0xf2, 0x0e, - 0xfe, 0x4e, 0xd5, 0xec, 0xa6, 0xe8, 0xe1, 0x12, 0x13, 0x63, 0xa9, 0x13, 0xc2, 0x1a, 0x25, 0x00, - 0xbf, 0x1f, 0x4c, 0x82, 0x7e, 0x9e, 0xd3, 0x8e, 0xc5, 0x03, 0x33, 0x9b, 0x4c, 0x5f, 0xec, 0x74, - 0xd5, 0xa5, 0x9f, 0x7d, 0x03, 0x3f, 0x98, 0x03, 0xc7, 0xfb, 0x55, 0x07, 0xbe, 0x37, 0xc3, 0xed, - 0xb0, 0x23, 0x3c, 0xe4, 0x67, 0xe8, 0x06, 0xa2, 0xf7, 0xa2, 0x3c, 0x1e, 0x9c, 0x08, 0x96, 0xe1, - 0x1a, 0x56, 0x15, 0x5d, 0x74, 0x3a, 0xc8, 0x75, 0x91, 0x8d, 0xab, 0x56, 0xd0, 0xfa, 0x7f, 0x54, - 0x9e, 0x08, 0x2e, 0x35, 0x4c, 0xc7, 0x68, 0x23, 0xbb, 0x61, 0x74, 0x9d, 0x92, 0xd9, 0x6e, 0xec, - 0xb8, 0x96, 0x6d, 0xe8, 0xf4, 0xa2, 0xc3, 0x82, 0x16, 0xf5, 0x59, 0xb9, 0x1e, 0x14, 0x0d, 0xa7, - 0x66, 0x9e, 0xb7, 0x74, 0xbb, 0x6d, 0x98, 0x9b, 0x2b, 0x86, 0xe3, 0x52, 0x0f, 0xe0, 0x7d, 0xe9, - 0xf0, 0x9f, 0x65, 0xd1, 0xc3, 0x74, 0x03, 0x60, 0x8d, 0xe8, 0x50, 0x9e, 0x23, 0x8b, 0x1c, 0x8f, - 0x4b, 0x46, 0x3b, 0x99, 0xb2, 0x3c, 0x6b, 0xdc, 0x86, 0x44, 0xff, 0x11, 0x1c, 0x77, 0x2d, 0x24, - 0xdd, 0x37, 0x04, 0xce, 0xaa, 0x5a, 0x65, 0xb1, 0xa2, 0x7a, 0x66, 0xc5, 0x09, 0x70, 0x2c, 0xfc, - 0xb6, 0x70, 0x4f, 0xb3, 0xae, 0x56, 0x1b, 0xc5, 0x82, 0xd7, 0x4f, 0x91, 0xe4, 0xc5, 0x52, 0x65, - 0x45, 0x5d, 0x68, 0x36, 0x6a, 0xde, 0x97, 0x85, 0xe1, 0x4c, 0x0b, 0x78, 0x7f, 0x16, 0x1c, 0xc5, - 0xb2, 0xdd, 0xc3, 0x52, 0xf5, 0x84, 0xd2, 0xe3, 0x6b, 0x1b, 0x00, 0x34, 0x49, 0xc4, 0x0b, 0x3f, - 0x2b, 0x7c, 0x8f, 0x23, 0x03, 0x61, 0x4f, 0x19, 0x11, 0x9a, 0xf1, 0x3d, 0x49, 0x24, 0x42, 0x85, - 0x30, 0xd9, 0x64, 0x4a, 0xf1, 0x1f, 0xe3, 0x1e, 0x71, 0xa2, 0xc1, 0xc7, 0x56, 0x66, 0x19, 0xff, - 0xfc, 0x94, 0xb5, 0x8a, 0x86, 0xd5, 0x61, 0x16, 0x00, 0x9c, 0x82, 0x35, 0x88, 0xe8, 0x41, 0xdf, - 0xf1, 0x2a, 0x4a, 0x0f, 0x4a, 0xe5, 0x46, 0xe5, 0xac, 0x1a, 0xa5, 0x07, 0x9f, 0x91, 0x41, 0x61, - 0x09, 0xb9, 0xde, 0x9c, 0xca, 0x81, 0x4f, 0x12, 0x58, 0xff, 0xf1, 0xcc, 0x18, 0x7c, 0xf1, 0x7d, - 0xb0, 0x0c, 0x40, 0xde, 0xe0, 0x33, 0x87, 0x31, 0x41, 0xfc, 0xa2, 0x23, 0xc6, 0xab, 0x9f, 0x05, - 0x39, 0xd7, 0xfb, 0x4c, 0x97, 0xa1, 0x7f, 0x2a, 0x72, 0xb8, 0xf2, 0x88, 0x2c, 0xe8, 0xae, 0xae, - 0x91, 0xfc, 0xcc, 0xe8, 0x24, 0x68, 0xbb, 0x44, 0x30, 0xf2, 0xe3, 0x68, 0x7f, 0xfe, 0xa3, 0x0c, - 0x4e, 0x90, 0xf6, 0x51, 0xea, 0x76, 0xeb, 0xae, 0x65, 0x23, 0x0d, 0xb5, 0x90, 0xd1, 0x75, 0x7b, - 0xd6, 0xf7, 0x6c, 0x92, 0xea, 0x6f, 0x36, 0xd3, 0x57, 0xf8, 0x6a, 0x59, 0x34, 0xc2, 0xef, 0xbe, - 0xf6, 0xd8, 0x53, 0x5e, 0x44, 0x63, 0xff, 0xa8, 0x24, 0x12, 0xb3, 0x37, 0x21, 0xf1, 0x64, 0x40, - 0x7d, 0xe8, 0x10, 0x80, 0xf2, 0x57, 0x6e, 0x34, 0xb5, 0xac, 0x56, 0xd6, 0xbc, 0x41, 0xe0, 0x4a, - 0x70, 0xf9, 0xda, 0xba, 0x56, 0x5e, 0x2e, 0xd5, 0xd5, 0xa6, 0xa6, 0x2e, 0x55, 0xea, 0x0d, 0xea, - 0x94, 0x45, 0xfe, 0x9a, 0x50, 0xae, 0x00, 0xa7, 0xea, 0xeb, 0xf3, 0xf5, 0xb2, 0x56, 0x59, 0xc3, - 0xe9, 0x9a, 0x5a, 0x55, 0xcf, 0xd1, 0xaf, 0x05, 0xf8, 0xfe, 0x22, 0x98, 0xf2, 0x26, 0x00, 0x75, - 0x32, 0x2f, 0x80, 0xdf, 0xca, 0x82, 0x29, 0x0d, 0x39, 0x56, 0x67, 0x17, 0xcf, 0x11, 0xc6, 0x35, - 0xf5, 0xf8, 0xae, 0x2c, 0x7a, 0x7e, 0x9b, 0x61, 0x76, 0x8e, 0x61, 0x34, 0x7a, 0xa2, 0xa9, 0xef, - 0xea, 0x46, 0x47, 0x3f, 0x4f, 0xbb, 0x9a, 0x82, 0x16, 0x26, 0x28, 0x73, 0x40, 0xb1, 0x2e, 0x9a, - 0xc8, 0xae, 0xb7, 0x2e, 0xaa, 0xee, 0x56, 0xa9, 0xdd, 0xb6, 0x91, 0xe3, 0xd0, 0xd5, 0x8b, 0x3e, - 0x5f, 0x94, 0xeb, 0xc0, 0x51, 0x9c, 0xca, 0x64, 0x26, 0x0e, 0x32, 0xbd, 0xc9, 0x41, 0xce, 0x92, - 0xb9, 0xe7, 0xe7, 0xcc, 0x31, 0x39, 0xc3, 0x64, 0xf6, 0xb8, 0x44, 0x9e, 0x3f, 0xa5, 0x73, 0x15, - 0x98, 0x32, 0xf5, 0x6d, 0xa4, 0xde, 0xd7, 0x35, 0x6c, 0xe4, 0x60, 0xc7, 0x18, 0x59, 0x63, 0x93, - 0xe0, 0x07, 0x85, 0xce, 0x9b, 0x8b, 0x49, 0x2c, 0x99, 0xee, 0x2f, 0x0d, 0xa1, 0xfa, 0x7d, 0xfa, - 0x19, 0x19, 0xbe, 0x5f, 0x06, 0xd3, 0x94, 0xa9, 0x92, 0xb9, 0x57, 0x69, 0xc3, 0x2b, 0x39, 0xe3, - 0x57, 0xf7, 0xd2, 0x7c, 0xe3, 0x17, 0xbf, 0xc0, 0x5f, 0x97, 0x45, 0xdd, 0x9d, 0xfb, 0x54, 0x1c, - 0x97, 0x11, 0xed, 0x38, 0xba, 0x61, 0xed, 0x50, 0x47, 0xd5, 0x82, 0x46, 0x5e, 0xd2, 0x5c, 0xd4, - 0x83, 0x7f, 0x2a, 0xe4, 0x4c, 0x2d, 0x58, 0x8d, 0x43, 0x02, 0xf0, 0xe3, 0x32, 0x98, 0xa5, 0x5c, - 0xd5, 0xe9, 0x39, 0x1f, 0xa1, 0x03, 0x6f, 0xbf, 0x29, 0x6c, 0x08, 0xf6, 0xa9, 0x3f, 0x2d, 0xe9, - 0x61, 0x03, 0xe4, 0x87, 0x85, 0x82, 0xa3, 0x09, 0x57, 0xe4, 0x90, 0xa0, 0x7c, 0x6b, 0x16, 0x4c, - 0xad, 0x3b, 0xc8, 0xa6, 0x7e, 0xfb, 0xf0, 0x81, 0x2c, 0x90, 0x97, 0x10, 0xb7, 0x91, 0xfa, 0x7c, - 0x61, 0x0f, 0x5f, 0xb6, 0xb2, 0x0c, 0x51, 0xcf, 0x46, 0x8a, 0x80, 0xed, 0x5a, 0x30, 0x4b, 0x44, - 0x5a, 0x72, 0x5d, 0xcf, 0x48, 0xf4, 0xbd, 0x69, 0x7b, 0x52, 0x47, 0xb1, 0x55, 0x84, 0xcb, 0xf2, - 0xb2, 0x94, 0x3d, 0x9e, 0x56, 0xd0, 0x06, 0x99, 0xcf, 0x66, 0xb5, 0x9e, 0x54, 0x7c, 0xb9, 0x7e, - 0x17, 0x91, 0xf3, 0x2b, 0x4c, 0xe6, 0x1c, 0xce, 0xdc, 0xef, 0x13, 0xfc, 0x96, 0x90, 0xaf, 0xae, - 0xb8, 0x74, 0x92, 0xe9, 0x42, 0x77, 0x34, 0x26, 0xc9, 0x71, 0x50, 0xf4, 0x72, 0xe0, 0xfd, 0x17, - 0x4d, 0xad, 0xd7, 0x56, 0xce, 0xaa, 0xfd, 0x97, 0x31, 0x72, 0xf0, 0x59, 0x32, 0x98, 0x9c, 0xb7, - 0x2d, 0xbd, 0xdd, 0xd2, 0x1d, 0x17, 0x7e, 0x5f, 0x02, 0xd3, 0x6b, 0xfa, 0x5e, 0xc7, 0xd2, 0xdb, - 0xd8, 0xbf, 0xbf, 0xa7, 0x2f, 0xe8, 0x92, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0xf9, 0x83, 0x81, 0xc1, - 0xd1, 0xbd, 0x8c, 0xc8, 0x75, 0x8d, 0xc1, 0x36, 0x9f, 0xd4, 0x2f, 0x58, 0xa9, 0xcf, 0xd7, 0x1c, - 0xcb, 0x53, 0x84, 0x45, 0xf9, 0x7e, 0xb1, 0xf0, 0xa3, 0x22, 0x24, 0x0f, 0x67, 0x57, 0xfe, 0xd9, - 0x05, 0x90, 0x5f, 0x40, 0xd8, 0x8a, 0xfb, 0x6f, 0x12, 0x98, 0xa8, 0x23, 0x17, 0x5b, 0x70, 0xb7, - 0x70, 0x9e, 0xc2, 0x6d, 0x9c, 0x21, 0x74, 0x62, 0xf7, 0xdf, 0xbd, 0xc9, 0x3a, 0x73, 0xde, 0x1a, - 0x3f, 0x27, 0xf0, 0x48, 0x24, 0xe5, 0xce, 0xd1, 0x32, 0x0f, 0xe4, 0x91, 0x18, 0x4b, 0x2a, 0x7d, - 0x5f, 0xab, 0xb7, 0x4b, 0xd4, 0xb5, 0x8a, 0xe9, 0xf5, 0xfe, 0x80, 0xd5, 0xcf, 0x58, 0x6f, 0x33, - 0xca, 0x7c, 0x8c, 0x73, 0xd4, 0xe3, 0xc0, 0x04, 0x91, 0xb9, 0x3f, 0x1f, 0xed, 0xf5, 0x53, 0x20, - 0x24, 0xf0, 0xd9, 0x6b, 0x3f, 0xa7, 0xa0, 0x8b, 0x5a, 0x74, 0xe1, 0x63, 0x89, 0x41, 0x30, 0x5d, - 0x45, 0xee, 0x45, 0xcb, 0xbe, 0x50, 0x77, 0x75, 0x17, 0xc1, 0xff, 0x90, 0x80, 0x5c, 0x47, 0x2e, - 0x1b, 0xfd, 0xa4, 0x0a, 0x8e, 0x91, 0x0a, 0xd1, 0x8c, 0xb8, 0xff, 0x26, 0x15, 0xb9, 0xaa, 0xaf, - 0x10, 0x98, 0x7c, 0xda, 0xfe, 0x5f, 0xe1, 0xef, 0xf6, 0x0d, 0xfa, 0x24, 0xf5, 0x99, 0x34, 0x50, - 0xc9, 0xb0, 0x0c, 0x7a, 0x0a, 0x16, 0xa1, 0xa7, 0x1f, 0x10, 0x32, 0xab, 0xc5, 0x68, 0x1e, 0x4e, - 0x57, 0xf0, 0xe1, 0xcb, 0x40, 0xb6, 0xbc, 0xa5, 0xbb, 0xf0, 0x6d, 0x32, 0x00, 0xa5, 0x76, 0x7b, - 0x95, 0xf8, 0x80, 0xb3, 0x0e, 0x69, 0x67, 0xc0, 0x74, 0x6b, 0x4b, 0x0f, 0x6f, 0xce, 0x20, 0xfd, - 0x01, 0x97, 0xa6, 0x3c, 0x3e, 0x74, 0x26, 0x27, 0x52, 0x85, 0x3d, 0x30, 0x79, 0x65, 0x50, 0xda, - 0x81, 0xa3, 0x39, 0x1f, 0x0a, 0x33, 0xf6, 0x08, 0x9d, 0xf7, 0xfb, 0x5c, 0xc8, 0x5e, 0xf4, 0x1c, - 0x8e, 0x92, 0x0e, 0x0e, 0xd8, 0x84, 0x09, 0x09, 0x4f, 0x7a, 0x8b, 0x05, 0xf4, 0x88, 0xe7, 0x6b, - 0x2c, 0xa1, 0x6b, 0x15, 0xb5, 0x6d, 0xf8, 0xa2, 0xa5, 0x01, 0xb3, 0xe0, 0xf3, 0x32, 0xc9, 0xe0, - 0x8b, 0x17, 0xdc, 0x9d, 0x60, 0x06, 0xb5, 0x0d, 0x17, 0xf9, 0xb5, 0xa4, 0x02, 0x8c, 0x83, 0x98, - 0xff, 0x01, 0x3e, 0x43, 0x38, 0xe8, 0x1a, 0x16, 0xe8, 0xfe, 0x1a, 0x45, 0xb4, 0x3f, 0xb1, 0x30, - 0x6a, 0x62, 0x34, 0xd3, 0x07, 0xeb, 0x99, 0x32, 0x38, 0xd1, 0xb0, 0x36, 0x37, 0x3b, 0xc8, 0x17, - 0x13, 0x22, 0xde, 0x99, 0x50, 0x1f, 0x25, 0x5c, 0x78, 0x27, 0xc8, 0xba, 0xd7, 0x08, 0x8e, 0x92, - 0x79, 0x2f, 0xfc, 0x89, 0xa9, 0xd8, 0x59, 0x14, 0x16, 0x57, 0x5f, 0x3e, 0x23, 0x50, 0x10, 0x0b, - 0xf8, 0x2c, 0x4c, 0x36, 0x7d, 0x20, 0xbe, 0x28, 0x81, 0x19, 0x72, 0x2f, 0xa2, 0xaf, 0xa0, 0x77, - 0x8f, 0x10, 0x00, 0xf8, 0xfd, 0x8c, 0xa8, 0x9f, 0x2d, 0x96, 0x09, 0xc7, 0x49, 0x84, 0x88, 0xc5, - 0x82, 0xaa, 0x0c, 0x24, 0x97, 0xbe, 0x68, 0xff, 0x42, 0x06, 0x53, 0x4b, 0xc8, 0x6f, 0x69, 0x4e, - 0xe2, 0x9e, 0xe8, 0x0c, 0x98, 0xc6, 0x97, 0x83, 0xd5, 0xe8, 0x31, 0x49, 0xb2, 0x6a, 0xc6, 0xa5, - 0x29, 0xd7, 0x80, 0x99, 0xf3, 0x68, 0xc3, 0xb2, 0x51, 0x8d, 0x3b, 0x4b, 0xc9, 0x27, 0x46, 0x84, - 0xa7, 0xe3, 0xe2, 0xa0, 0xcd, 0xf3, 0xd8, 0xdc, 0xb0, 0x5f, 0x98, 0x4c, 0x55, 0x22, 0xc6, 0x9c, - 0x27, 0x80, 0x02, 0x45, 0xde, 0x37, 0xd3, 0xe2, 0xfa, 0xc5, 0x20, 0x2f, 0xfc, 0xc3, 0x00, 0x51, - 0x95, 0x43, 0xf4, 0xa6, 0x24, 0x4c, 0x8c, 0xe5, 0xf6, 0xf0, 0x22, 0x53, 0xfe, 0xfc, 0x5e, 0xa5, - 0xed, 0xc0, 0xd5, 0x64, 0x98, 0x9e, 0x06, 0x20, 0x68, 0x1c, 0x7e, 0x58, 0x0b, 0x26, 0x85, 0x8f, - 0x5c, 0x1f, 0x7b, 0x50, 0xaf, 0x57, 0x1c, 0x98, 0x9d, 0x11, 0x03, 0x23, 0x76, 0xc0, 0x4f, 0x84, - 0x93, 0xf4, 0xd1, 0xf9, 0xb4, 0x0c, 0x4e, 0x04, 0xe7, 0x8f, 0x56, 0x74, 0x27, 0x6c, 0x77, 0xe5, - 0x64, 0x10, 0x71, 0x07, 0x3e, 0x82, 0xc6, 0xf2, 0xed, 0x64, 0x63, 0x46, 0x5f, 0x4e, 0x46, 0x8b, - 0x8e, 0x72, 0x03, 0x38, 0x66, 0xee, 0x6c, 0x07, 0x52, 0xc7, 0x2d, 0x9e, 0xb6, 0xf0, 0xfd, 0x1f, - 0x92, 0x8c, 0x4c, 0x22, 0xcc, 0x8f, 0x65, 0x4e, 0xc9, 0x1d, 0xe9, 0x7a, 0x4c, 0x22, 0x18, 0xe1, - 0xbf, 0x65, 0x12, 0xf5, 0x6e, 0x83, 0xcf, 0x7c, 0x25, 0xe8, 0xa5, 0x0e, 0xf1, 0xc0, 0xd7, 0x99, - 0x09, 0x90, 0x53, 0xb7, 0xbb, 0xee, 0xde, 0x99, 0x47, 0x82, 0x99, 0xba, 0x6b, 0x23, 0x7d, 0x9b, - 0xd9, 0x19, 0x70, 0xad, 0x0b, 0xc8, 0xf4, 0x77, 0x06, 0xf0, 0xcb, 0xad, 0xb7, 0x80, 0x09, 0xd3, - 0x6a, 0xea, 0x3b, 0xee, 0x96, 0x72, 0xe5, 0xbe, 0x23, 0xf5, 0x14, 0xfc, 0x1a, 0x8d, 0x61, 0xf4, - 0xd5, 0xdb, 0xf0, 0xda, 0x70, 0xde, 0xb4, 0x4a, 0x3b, 0xee, 0xd6, 0xfc, 0x15, 0x1f, 0xff, 0x87, - 0xd3, 0x99, 0xcf, 0xfc, 0xc3, 0xe9, 0xcc, 0x57, 0xfe, 0xe1, 0x74, 0xe6, 0x37, 0xbf, 0x76, 0xfa, - 0xc8, 0x67, 0xbe, 0x76, 0xfa, 0xc8, 0x17, 0xbf, 0x76, 0xfa, 0xc8, 0xcf, 0x4b, 0xdd, 0xf3, 0xe7, - 0xf3, 0x98, 0xca, 0xe3, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0x59, 0x3f, 0x33, 0xdf, - 0x12, 0x02, 0x00, + // 20003 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7f, 0x9c, 0x24, 0x49, + 0x55, 0x2f, 0x3a, 0x95, 0x59, 0x55, 0xdd, 0x7d, 0xfa, 0xc7, 0xd4, 0xe4, 0xce, 0xcc, 0xce, 0xc6, + 0x2e, 0xcb, 0x3a, 0x2c, 0xcb, 0xba, 0x2c, 0xbd, 0xb0, 0x20, 0xb2, 0xcb, 0x2e, 0x4b, 0x75, 0x75, + 0x75, 0x77, 0xed, 0x76, 0x57, 0xb5, 0x59, 0xd5, 0x33, 0xac, 0xf7, 0xf9, 0xda, 0x9c, 0xaa, 0xe8, + 0xee, 0xdc, 0xa9, 0xce, 0x2c, 0x33, 0xb3, 0x67, 0x76, 0x78, 0x9f, 0xfb, 0xae, 0x88, 0x08, 0x8a, + 0x5c, 0x44, 0x45, 0x45, 0x05, 0x04, 0x44, 0x05, 0x45, 0x7e, 0xc3, 0x05, 0x15, 0x51, 0x40, 0x10, + 0x15, 0x51, 0x54, 0x10, 0xe5, 0x23, 0x28, 0x2a, 0xde, 0x8f, 0x5e, 0x9f, 0xbe, 0x2b, 0x88, 0x57, + 0xae, 0xef, 0x93, 0x11, 0x91, 0x99, 0x11, 0xd5, 0x95, 0x59, 0x91, 0xd5, 0x95, 0xd5, 0xab, 0xbc, + 0xff, 0x32, 0x23, 0x23, 0x4f, 0x9c, 0x38, 0xdf, 0x13, 0x11, 0x27, 0x22, 0x4e, 0x9c, 0x80, 0x73, + 0xbd, 0x4b, 0x77, 0xf5, 0x1c, 0xdb, 0xb3, 0xdd, 0xbb, 0xda, 0xf6, 0xfe, 0xbe, 0x61, 0x75, 0xdc, + 0x45, 0xf2, 0xae, 0x4d, 0x19, 0xd6, 0x35, 0xef, 0x5a, 0x0f, 0xa3, 0x5b, 0x7b, 0x97, 0x77, 0xef, + 0xea, 0x9a, 0x97, 0xee, 0xea, 0x5d, 0xba, 0x6b, 0xdf, 0xee, 0xe0, 0x6e, 0xf0, 0x03, 0x79, 0x61, + 0xd9, 0xd1, 0xed, 0x71, 0xb9, 0xba, 0x76, 0xdb, 0xe8, 0xba, 0x9e, 0xed, 0x60, 0x96, 0xf3, 0x6c, + 0x54, 0x24, 0xbe, 0x82, 0x2d, 0x2f, 0xa0, 0x70, 0xd3, 0xae, 0x6d, 0xef, 0x76, 0x31, 0xfd, 0x76, + 0xe9, 0x60, 0xe7, 0x2e, 0xd7, 0x73, 0x0e, 0xda, 0x1e, 0xfb, 0x7a, 0x4b, 0xff, 0xd7, 0x0e, 0x76, + 0xdb, 0x8e, 0xd9, 0xf3, 0x6c, 0x87, 0xe6, 0x38, 0xff, 0xf3, 0xaf, 0x9e, 0x06, 0x55, 0xef, 0xb5, + 0xd1, 0x97, 0xa7, 0x40, 0x2d, 0xf7, 0x7a, 0xe8, 0x23, 0x0a, 0xc0, 0x2a, 0xf6, 0x2e, 0x60, 0xc7, + 0x35, 0x6d, 0x0b, 0x9d, 0x84, 0x29, 0x1d, 0x7f, 0xc7, 0x01, 0x76, 0xbd, 0x7b, 0xf3, 0x2f, 0xf9, + 0x2b, 0x35, 0x87, 0xde, 0xa8, 0xc0, 0xb4, 0x8e, 0xdd, 0x9e, 0x6d, 0xb9, 0x58, 0x7b, 0x2e, 0x14, + 0xb0, 0xe3, 0xd8, 0xce, 0xb9, 0xdc, 0x2d, 0xb9, 0xdb, 0x67, 0xef, 0xbe, 0x63, 0x91, 0x55, 0x7f, + 0x51, 0xef, 0xb5, 0x17, 0xcb, 0xbd, 0xde, 0x62, 0x44, 0x69, 0x31, 0xf8, 0x69, 0xb1, 0xea, 0xff, + 0xa1, 0xd3, 0x1f, 0xb5, 0x73, 0x30, 0x75, 0x85, 0x66, 0x38, 0xa7, 0xdc, 0x92, 0xbb, 0x7d, 0x46, + 0x0f, 0x5e, 0xfd, 0x2f, 0x1d, 0xec, 0x19, 0x66, 0xd7, 0x3d, 0xa7, 0xd2, 0x2f, 0xec, 0x15, 0xbd, + 0x3e, 0x07, 0x05, 0x42, 0x44, 0xab, 0x40, 0xbe, 0x6d, 0x77, 0x30, 0x29, 0x7e, 0xe1, 0xee, 0xbb, + 0xe4, 0x8b, 0x5f, 0xac, 0xd8, 0x1d, 0xac, 0x93, 0x9f, 0xb5, 0x5b, 0x60, 0x36, 0x10, 0x4b, 0xc4, + 0x06, 0x9f, 0x74, 0xfe, 0x6e, 0xc8, 0xfb, 0xf9, 0xb5, 0x69, 0xc8, 0xd7, 0xb7, 0xd6, 0xd7, 0x4b, + 0x27, 0xb4, 0x53, 0x30, 0xbf, 0x55, 0x7f, 0xa8, 0xde, 0xb8, 0x58, 0xdf, 0xae, 0xea, 0x7a, 0x43, + 0x2f, 0xe5, 0xb4, 0x79, 0x98, 0x59, 0x2a, 0x2f, 0x6f, 0xd7, 0xea, 0x9b, 0x5b, 0xad, 0x92, 0x82, + 0x5e, 0xa3, 0xc2, 0x42, 0x13, 0x7b, 0xcb, 0xf8, 0x8a, 0xd9, 0xc6, 0x4d, 0xcf, 0xf0, 0x30, 0x7a, + 0x79, 0x2e, 0x14, 0xa6, 0xb6, 0xe5, 0x17, 0x1a, 0x7e, 0x62, 0x15, 0x78, 0xfa, 0xa1, 0x0a, 0x88, + 0x14, 0x16, 0xd9, 0xdf, 0x8b, 0x5c, 0x9a, 0xce, 0xd3, 0x39, 0xff, 0x14, 0x98, 0xe5, 0xbe, 0x69, + 0x0b, 0x00, 0x4b, 0xe5, 0xca, 0x43, 0xab, 0x7a, 0x63, 0xab, 0xbe, 0x5c, 0x3a, 0xe1, 0xbf, 0xaf, + 0x34, 0xf4, 0x2a, 0x7b, 0xcf, 0xa1, 0xaf, 0xe6, 0x38, 0x30, 0x97, 0x45, 0x30, 0x17, 0x87, 0x33, + 0x33, 0x00, 0x50, 0xf4, 0x33, 0x21, 0x38, 0xab, 0x02, 0x38, 0x4f, 0x4f, 0x47, 0x2e, 0x7b, 0x80, + 0x5e, 0xa4, 0xc0, 0x74, 0x73, 0xef, 0xc0, 0xeb, 0xd8, 0x57, 0x2d, 0x34, 0x13, 0x22, 0x83, 0xfe, + 0x8e, 0x97, 0xc9, 0x73, 0x44, 0x99, 0xdc, 0x7e, 0xb8, 0x12, 0x8c, 0x42, 0x8c, 0x34, 0x7e, 0x2a, + 0x94, 0x46, 0x59, 0x90, 0xc6, 0x53, 0x64, 0x09, 0x65, 0x2f, 0x87, 0x1f, 0x7f, 0x16, 0x14, 0x9a, + 0x3d, 0xa3, 0x8d, 0xd1, 0x6f, 0xab, 0x30, 0xb7, 0x8e, 0x8d, 0x2b, 0xb8, 0xdc, 0xeb, 0x39, 0xf6, + 0x15, 0x8c, 0x2a, 0x91, 0xbe, 0x9e, 0x83, 0x29, 0xd7, 0xcf, 0x54, 0xeb, 0x90, 0x1a, 0xcc, 0xe8, + 0xc1, 0xab, 0x76, 0x33, 0x80, 0xd9, 0xc1, 0x96, 0x67, 0x7a, 0x26, 0x76, 0xcf, 0x29, 0xb7, 0xa8, + 0xb7, 0xcf, 0xe8, 0x5c, 0x0a, 0xfa, 0xb2, 0x22, 0xab, 0x63, 0x84, 0x8b, 0x45, 0x9e, 0x83, 0x18, + 0xa9, 0xbe, 0x41, 0x91, 0xd1, 0xb1, 0xa1, 0xe4, 0xd2, 0xc9, 0xf6, 0x17, 0x73, 0xe9, 0x85, 0xeb, + 0xe7, 0xa8, 0x37, 0xb6, 0x9b, 0x5b, 0x95, 0xb5, 0xed, 0xe6, 0x66, 0xb9, 0x52, 0x2d, 0x61, 0xed, + 0x34, 0x94, 0xc8, 0xe3, 0x76, 0xad, 0xb9, 0xbd, 0x5c, 0x5d, 0xaf, 0xb6, 0xaa, 0xcb, 0xa5, 0x1d, + 0x4d, 0x83, 0x05, 0xbd, 0xfa, 0x2d, 0x5b, 0xd5, 0x66, 0x6b, 0x7b, 0xa5, 0x5c, 0x5b, 0xaf, 0x2e, + 0x97, 0x76, 0xfd, 0x9f, 0xd7, 0x6b, 0x1b, 0xb5, 0xd6, 0xb6, 0x5e, 0x2d, 0x57, 0xd6, 0xaa, 0xcb, + 0xa5, 0x3d, 0xed, 0x7a, 0xb8, 0xae, 0xde, 0xd8, 0x2e, 0x6f, 0x6e, 0xea, 0x8d, 0x0b, 0xd5, 0x6d, + 0xf6, 0x47, 0xb3, 0x64, 0xd2, 0x82, 0x5a, 0xdb, 0xcd, 0xb5, 0xb2, 0x5e, 0x2d, 0x2f, 0xad, 0x57, + 0x4b, 0x8f, 0xa0, 0x17, 0xaa, 0x30, 0xbf, 0x61, 0x5c, 0xc6, 0xcd, 0x3d, 0xc3, 0xc1, 0xc6, 0xa5, + 0x2e, 0x46, 0x4f, 0x90, 0xc0, 0x13, 0xfd, 0x36, 0x8f, 0x57, 0x55, 0xc4, 0xeb, 0xae, 0x01, 0x02, + 0x16, 0x8a, 0x88, 0x01, 0xec, 0x9f, 0xc3, 0x66, 0xb0, 0x26, 0x00, 0xf6, 0x8c, 0x94, 0xf4, 0xd2, + 0x21, 0xf6, 0x5d, 0x8f, 0x01, 0xc4, 0xd0, 0xe7, 0x54, 0x58, 0xa8, 0x59, 0x57, 0x4c, 0x0f, 0xaf, + 0x62, 0x0b, 0x3b, 0xfe, 0x38, 0x20, 0x05, 0xc3, 0x1b, 0x55, 0x0e, 0x86, 0x15, 0x11, 0x86, 0xa7, + 0x0e, 0x10, 0x9b, 0x58, 0x46, 0xcc, 0x68, 0x7b, 0x13, 0xcc, 0x98, 0x24, 0x5f, 0xc5, 0xec, 0x30, + 0x89, 0x45, 0x09, 0xda, 0xad, 0x30, 0x4f, 0x5f, 0x56, 0xcc, 0x2e, 0x7e, 0x08, 0x5f, 0x63, 0xe3, + 0xae, 0x98, 0x88, 0xbe, 0x3f, 0x6c, 0x7c, 0x35, 0x01, 0xcb, 0x6f, 0x4a, 0xcb, 0x54, 0x3a, 0x30, + 0x5f, 0xf9, 0x58, 0x68, 0x7e, 0x87, 0x5a, 0x99, 0x89, 0xbe, 0xa6, 0xc0, 0x6c, 0xd3, 0xb3, 0x7b, + 0xbe, 0xca, 0x9a, 0xd6, 0xae, 0x1c, 0xb8, 0x1f, 0xe3, 0xdb, 0x58, 0x45, 0x04, 0xf7, 0x29, 0x03, + 0xe4, 0xc8, 0x15, 0x10, 0xd3, 0xc2, 0xbe, 0x1c, 0xb6, 0xb0, 0x15, 0x01, 0x95, 0xbb, 0x53, 0x51, + 0xfb, 0x77, 0xd8, 0xbe, 0x5e, 0xa9, 0x42, 0x29, 0x50, 0x33, 0xaf, 0x72, 0xe0, 0x38, 0xd8, 0xf2, + 0xe4, 0x40, 0xf8, 0x13, 0x1e, 0x84, 0x35, 0x11, 0x84, 0xbb, 0x13, 0x94, 0x39, 0x28, 0x25, 0xc3, + 0x36, 0xf6, 0xc1, 0x10, 0xcd, 0x87, 0x04, 0x34, 0xbf, 0x39, 0x3d, 0x5b, 0xe9, 0x20, 0x5d, 0x1b, + 0x01, 0xd1, 0xd3, 0x50, 0xf2, 0xc7, 0xa4, 0x4a, 0xab, 0x76, 0xa1, 0xba, 0x5d, 0xab, 0x5f, 0xa8, + 0xb5, 0xaa, 0x25, 0x8c, 0x7e, 0x48, 0x85, 0x39, 0xca, 0x9a, 0x8e, 0xaf, 0xd8, 0x97, 0x25, 0x7b, + 0xbd, 0xcf, 0xa5, 0x34, 0x16, 0xf8, 0x12, 0x62, 0x5a, 0xc6, 0xf7, 0xa5, 0x30, 0x16, 0x12, 0xc8, + 0x3d, 0x96, 0x7a, 0xab, 0x43, 0xcd, 0x60, 0x77, 0x40, 0x6b, 0x19, 0xd8, 0x5b, 0xbd, 0x32, 0x0f, + 0x40, 0x2b, 0x79, 0xc1, 0xc4, 0x57, 0xd1, 0x46, 0x84, 0x89, 0xa0, 0xb6, 0xb9, 0xa1, 0x6a, 0xab, + 0x0c, 0x52, 0xdb, 0xf7, 0xf2, 0x63, 0xd6, 0x92, 0x88, 0xde, 0x9d, 0xb1, 0xe2, 0xf6, 0x39, 0x89, + 0x9f, 0x1d, 0x06, 0x8a, 0xa2, 0x88, 0x56, 0xe7, 0x4d, 0x30, 0x43, 0x1e, 0xeb, 0xc6, 0x3e, 0x66, + 0x6d, 0x28, 0x4a, 0xd0, 0xce, 0xc3, 0x1c, 0xcd, 0xd8, 0xb6, 0x2d, 0xbf, 0x3e, 0x79, 0x92, 0x41, + 0x48, 0xf3, 0x41, 0x6c, 0x3b, 0xd8, 0xf0, 0x6c, 0x87, 0xd0, 0x28, 0x50, 0x10, 0xb9, 0x24, 0xf4, + 0xa5, 0xb0, 0x15, 0x56, 0x05, 0xcd, 0x79, 0x5a, 0x9a, 0xaa, 0xa4, 0xd3, 0x9b, 0x2b, 0xa3, 0xb5, + 0x3f, 0xda, 0xea, 0xb6, 0x7d, 0xb4, 0x57, 0xc8, 0xd4, 0x0e, 0x6b, 0x67, 0x41, 0x63, 0xa9, 0x7e, + 0xde, 0x4a, 0xa3, 0xde, 0xaa, 0xd6, 0x5b, 0xa5, 0x9d, 0x81, 0x1a, 0xb5, 0x8b, 0xde, 0x90, 0x87, + 0xfc, 0x83, 0xb6, 0x69, 0xa1, 0x17, 0xe5, 0x04, 0x95, 0xb0, 0xb0, 0x77, 0xd5, 0x76, 0x2e, 0x87, + 0x0d, 0x35, 0x4a, 0x48, 0xc6, 0x26, 0x52, 0x25, 0x75, 0xa8, 0x2a, 0xe5, 0x07, 0xa9, 0xd2, 0x0f, + 0xf2, 0xaa, 0x74, 0x9f, 0xa8, 0x4a, 0xb7, 0x0d, 0x90, 0xbf, 0xcf, 0x7c, 0x4c, 0x07, 0xf0, 0xd1, + 0xb0, 0x03, 0x78, 0x40, 0x80, 0xf1, 0xc9, 0x72, 0x64, 0xd2, 0x01, 0xf8, 0xd9, 0x4c, 0x1b, 0xfe, + 0x20, 0xa8, 0x77, 0x63, 0xa0, 0xde, 0x1b, 0xd0, 0x27, 0x98, 0x87, 0xbb, 0x8e, 0x47, 0x0e, 0x77, + 0x13, 0x97, 0xb5, 0x33, 0x70, 0x6a, 0xb9, 0xb6, 0xb2, 0x52, 0xd5, 0xab, 0xf5, 0xd6, 0x76, 0xbd, + 0xda, 0xba, 0xd8, 0xd0, 0x1f, 0x2a, 0x75, 0xd1, 0xeb, 0x55, 0x00, 0x5f, 0x42, 0x15, 0xc3, 0x6a, + 0xe3, 0xae, 0x5c, 0x8f, 0xfe, 0x3f, 0x94, 0x74, 0x7d, 0x42, 0x44, 0x3f, 0x06, 0xce, 0x57, 0x2b, + 0xf2, 0xad, 0x32, 0x96, 0x58, 0x3a, 0x50, 0xdf, 0xfc, 0x58, 0xb0, 0x3d, 0xaf, 0x83, 0x93, 0x01, + 0x3d, 0x96, 0x7d, 0xf0, 0xb4, 0xef, 0xad, 0x79, 0x58, 0x60, 0xb0, 0x04, 0xf3, 0xf8, 0x97, 0xe4, + 0x64, 0x26, 0xf2, 0x08, 0xa6, 0xd9, 0xb4, 0x3d, 0xe8, 0xde, 0xc3, 0x77, 0x6d, 0x15, 0x66, 0x7b, + 0xd8, 0xd9, 0x37, 0x5d, 0xd7, 0xb4, 0x2d, 0xba, 0x20, 0xb7, 0x70, 0xf7, 0x13, 0x43, 0x89, 0x93, + 0xb5, 0xcb, 0xc5, 0x4d, 0xc3, 0xf1, 0xcc, 0xb6, 0xd9, 0x33, 0x2c, 0x6f, 0x33, 0xca, 0xac, 0xf3, + 0x7f, 0xa2, 0x57, 0xa4, 0x9c, 0xd6, 0x88, 0x35, 0x89, 0x51, 0x89, 0x5f, 0x4e, 0x31, 0x25, 0x49, + 0x24, 0x98, 0x4e, 0x2d, 0x3e, 0x92, 0xa9, 0x5a, 0x0c, 0xc0, 0x7b, 0x57, 0xbb, 0x01, 0xce, 0xd4, + 0xea, 0x95, 0x86, 0xae, 0x57, 0x2b, 0xad, 0xed, 0xcd, 0xaa, 0xbe, 0x51, 0x6b, 0x36, 0x6b, 0x8d, + 0x7a, 0xf3, 0x28, 0xad, 0x1d, 0x7d, 0x5c, 0x0d, 0x35, 0x66, 0x19, 0xb7, 0xbb, 0xa6, 0x85, 0xd1, + 0x03, 0x47, 0x54, 0x18, 0x71, 0xd5, 0x47, 0x1e, 0x67, 0x56, 0x7e, 0x0c, 0xce, 0xaf, 0x4b, 0x8f, + 0xf3, 0x60, 0x82, 0xff, 0x81, 0x9b, 0xff, 0xe7, 0x54, 0x38, 0xc5, 0x35, 0x44, 0x1d, 0xef, 0x8f, + 0x6d, 0x25, 0xef, 0xbb, 0xf8, 0xb6, 0x5b, 0x13, 0x31, 0x1d, 0x64, 0x4d, 0x1f, 0x62, 0x23, 0x06, + 0xd6, 0x37, 0x87, 0xb0, 0xae, 0x0b, 0xb0, 0x3e, 0x6b, 0x04, 0x9a, 0xe9, 0x90, 0x7d, 0x5b, 0xa6, + 0xc8, 0xde, 0x00, 0x67, 0x36, 0xcb, 0x7a, 0xab, 0x56, 0xa9, 0x6d, 0x96, 0xfd, 0x71, 0x94, 0x1b, + 0xb2, 0x63, 0xcc, 0x75, 0x11, 0xf4, 0x81, 0xf8, 0xfe, 0x6a, 0x1e, 0x6e, 0x1a, 0xdc, 0xd1, 0x56, + 0xf6, 0x0c, 0x6b, 0x17, 0x23, 0x53, 0x06, 0xea, 0x65, 0x98, 0x6a, 0x93, 0xec, 0x14, 0x67, 0x7e, + 0xeb, 0x26, 0xa1, 0x2f, 0xa7, 0x25, 0xe8, 0xc1, 0xaf, 0xe8, 0x9d, 0xbc, 0x42, 0xb4, 0x44, 0x85, + 0x78, 0x4e, 0x32, 0x78, 0x87, 0xf8, 0x8e, 0xd1, 0x8d, 0x4f, 0x86, 0xba, 0x71, 0x51, 0xd0, 0x8d, + 0xca, 0xd1, 0xc8, 0xa7, 0x53, 0x93, 0xdf, 0x7a, 0x2c, 0x74, 0x00, 0xb1, 0xda, 0x64, 0xc6, 0x8f, + 0x0a, 0x03, 0xbb, 0xfb, 0xd7, 0xaa, 0x50, 0x5c, 0xc6, 0x5d, 0x2c, 0xbb, 0x12, 0xf9, 0xf7, 0x8a, + 0xec, 0x86, 0x08, 0x85, 0x81, 0xd2, 0x8e, 0x5f, 0x1d, 0xf1, 0xcc, 0x7d, 0xec, 0x7a, 0xc6, 0x7e, + 0x8f, 0x88, 0x5a, 0xd5, 0xa3, 0x04, 0xf4, 0xdd, 0x8a, 0xcc, 0x76, 0x49, 0x42, 0x31, 0xff, 0x31, + 0xd6, 0x14, 0x3f, 0xa5, 0xc0, 0x74, 0x13, 0x7b, 0x0d, 0xa7, 0x83, 0x1d, 0xd4, 0x8c, 0x30, 0xba, + 0x05, 0x66, 0x09, 0x28, 0xfe, 0x34, 0x33, 0xc4, 0x89, 0x4f, 0xd2, 0x6e, 0x83, 0x85, 0xf0, 0x95, + 0xfc, 0xce, 0xba, 0xf1, 0xbe, 0x54, 0xf4, 0x0f, 0x39, 0xd9, 0x5d, 0x5c, 0xb6, 0x64, 0xc8, 0xb8, + 0x89, 0x69, 0xa5, 0x72, 0x3b, 0xb2, 0x89, 0xa4, 0xb2, 0xdf, 0xe8, 0x7a, 0xbb, 0x02, 0xb0, 0x65, + 0xb9, 0x81, 0x5c, 0x9f, 0x9c, 0x42, 0xae, 0xe8, 0x9f, 0x72, 0xe9, 0x66, 0x31, 0x51, 0x39, 0x31, + 0x12, 0xfb, 0xe9, 0x14, 0x6b, 0x0b, 0xb1, 0xc4, 0xb2, 0x97, 0xd9, 0x5f, 0x2c, 0x40, 0xf1, 0xa2, + 0xd1, 0xed, 0x62, 0x0f, 0x7d, 0x51, 0x81, 0x62, 0xc5, 0xc1, 0x86, 0x87, 0x79, 0xd1, 0x21, 0x98, + 0x76, 0x6c, 0xdb, 0xdb, 0x34, 0xbc, 0x3d, 0x26, 0xb7, 0xf0, 0x9d, 0x39, 0x0c, 0xfc, 0x02, 0xdf, + 0x7d, 0x3c, 0x20, 0x8a, 0xee, 0x1b, 0x85, 0xda, 0xd2, 0x82, 0x16, 0x69, 0x21, 0x31, 0xfd, 0x07, + 0x82, 0xe9, 0x7d, 0x0b, 0xef, 0xdb, 0x96, 0xd9, 0x0e, 0x6c, 0xce, 0xe0, 0x1d, 0xfd, 0x7a, 0x28, + 0xd3, 0x25, 0x41, 0xa6, 0x8b, 0xd2, 0xa5, 0xa4, 0x13, 0x68, 0x73, 0x84, 0xde, 0xe3, 0xf1, 0x70, + 0x23, 0xed, 0x0c, 0xb6, 0x5b, 0x8d, 0xed, 0x8a, 0x5e, 0x2d, 0xb7, 0xaa, 0xdb, 0xeb, 0x8d, 0x4a, + 0x79, 0x7d, 0x5b, 0xaf, 0x6e, 0x36, 0x4a, 0x18, 0xfd, 0xb5, 0xe2, 0x0b, 0xb7, 0x6d, 0x5f, 0xc1, + 0x0e, 0x5a, 0x95, 0x92, 0x73, 0x92, 0x4c, 0x18, 0x06, 0x3f, 0x28, 0xed, 0xb4, 0xc1, 0xa4, 0xc3, + 0x38, 0x88, 0x51, 0xde, 0x0f, 0x49, 0x35, 0xf7, 0x44, 0x52, 0x8f, 0x01, 0x49, 0xff, 0x4f, 0x05, + 0xa6, 0x2a, 0xb6, 0x75, 0x05, 0x3b, 0x1e, 0x3f, 0xdf, 0xe1, 0xa5, 0x99, 0x13, 0xa5, 0xe9, 0x0f, + 0x92, 0xd8, 0xf2, 0x1c, 0xbb, 0x17, 0x4c, 0x78, 0x82, 0x57, 0xf4, 0xb3, 0x69, 0x25, 0xcc, 0x4a, + 0x8e, 0x5f, 0xf8, 0x1c, 0x5c, 0x90, 0xc0, 0x9e, 0xda, 0xd7, 0x00, 0x5e, 0x9f, 0x06, 0x97, 0xc1, + 0x0c, 0x64, 0xdf, 0xa5, 0x7c, 0x5e, 0x85, 0x79, 0xda, 0xf8, 0x9a, 0x98, 0x58, 0x68, 0xa8, 0xc1, + 0x2f, 0x39, 0xf6, 0x09, 0x7f, 0xed, 0x84, 0x20, 0xfe, 0xa2, 0xd1, 0xeb, 0x85, 0xcb, 0xcf, 0x6b, + 0x27, 0x74, 0xf6, 0x4e, 0xd5, 0x7c, 0xa9, 0x08, 0x79, 0xe3, 0xc0, 0xdb, 0x43, 0x5f, 0x93, 0x9e, + 0x7c, 0x0a, 0x9d, 0x01, 0xe3, 0x27, 0x06, 0x92, 0xd3, 0x50, 0xf0, 0xec, 0xcb, 0x38, 0x90, 0x03, + 0x7d, 0xf1, 0xe1, 0x30, 0x7a, 0xbd, 0x16, 0xf9, 0xc0, 0xe0, 0x08, 0xde, 0x7d, 0x5b, 0xc7, 0x68, + 0xb7, 0xed, 0x03, 0xcb, 0xab, 0x05, 0x4b, 0xd0, 0x51, 0x02, 0xfa, 0x4c, 0x4e, 0x66, 0x32, 0x2b, + 0xc1, 0x60, 0x3a, 0xc8, 0x2e, 0x8d, 0xd0, 0x94, 0x16, 0xe1, 0x8e, 0xf2, 0xe6, 0xe6, 0x76, 0xab, + 0xf1, 0x50, 0xb5, 0x1e, 0x19, 0x9e, 0xdb, 0xb5, 0xfa, 0x76, 0x6b, 0xad, 0xba, 0x5d, 0xd9, 0xd2, + 0xc9, 0x3a, 0x61, 0xb9, 0x52, 0x69, 0x6c, 0xd5, 0x5b, 0x25, 0x8c, 0xde, 0xa2, 0xc0, 0x5c, 0xa5, + 0x6b, 0xbb, 0x21, 0xc2, 0x8f, 0x8f, 0x10, 0x0e, 0xc5, 0x98, 0xe3, 0xc4, 0x88, 0xfe, 0x57, 0x4e, + 0xd6, 0xe9, 0x20, 0x10, 0x08, 0x47, 0x3e, 0xa6, 0x97, 0xfa, 0x59, 0x29, 0xa7, 0x83, 0xe1, 0xf4, + 0xb2, 0x6f, 0x12, 0x9f, 0x7e, 0x0e, 0x4c, 0x95, 0xa9, 0x62, 0xa0, 0x3f, 0xcb, 0x41, 0xb1, 0x62, + 0x5b, 0x3b, 0xe6, 0xae, 0x6f, 0xcc, 0x61, 0xcb, 0xb8, 0xd4, 0xc5, 0xcb, 0x86, 0x67, 0x5c, 0x31, + 0xf1, 0x55, 0x52, 0x81, 0x69, 0xbd, 0x2f, 0xd5, 0x67, 0x8a, 0xa5, 0xe0, 0x4b, 0x07, 0xbb, 0x84, + 0xa9, 0x69, 0x9d, 0x4f, 0xd2, 0x9e, 0x05, 0xd7, 0xd3, 0xd7, 0x4d, 0x07, 0x3b, 0xb8, 0x8b, 0x0d, + 0x17, 0xfb, 0xd3, 0x22, 0x0b, 0x77, 0x89, 0xd2, 0x4e, 0xeb, 0x71, 0x9f, 0xb5, 0xf3, 0x30, 0x47, + 0x3f, 0x11, 0x53, 0xc4, 0x25, 0x6a, 0x3c, 0xad, 0x0b, 0x69, 0xda, 0x53, 0xa0, 0x80, 0x1f, 0xf5, + 0x1c, 0xe3, 0x5c, 0x87, 0xe0, 0x75, 0xfd, 0x22, 0xf5, 0x3a, 0x5c, 0x0c, 0xbc, 0x0e, 0x17, 0x9b, + 0xc4, 0x27, 0x51, 0xa7, 0xb9, 0xd0, 0xc7, 0xa7, 0x43, 0x43, 0xe2, 0x2d, 0x6a, 0xa4, 0x18, 0x1a, + 0xe4, 0x2d, 0x63, 0x1f, 0x33, 0xbd, 0x20, 0xcf, 0xda, 0x1d, 0x70, 0xd2, 0xb8, 0x62, 0x78, 0x86, + 0xb3, 0x6e, 0xb7, 0x8d, 0x2e, 0x19, 0xfc, 0x82, 0x96, 0xdf, 0xff, 0x81, 0xec, 0x08, 0x79, 0xb6, + 0x83, 0x49, 0xae, 0x60, 0x47, 0x28, 0x48, 0xf0, 0xa9, 0x9b, 0x6d, 0xdb, 0x22, 0xfc, 0xab, 0x3a, + 0x79, 0xf6, 0xa5, 0xd2, 0x31, 0x5d, 0xbf, 0x22, 0x84, 0x4a, 0x9d, 0x6e, 0x6d, 0x34, 0xaf, 0x59, + 0x6d, 0xb2, 0x1b, 0x34, 0xad, 0xc7, 0x7d, 0xd6, 0x96, 0x60, 0x96, 0x6d, 0x84, 0x6c, 0xf8, 0x7a, + 0x55, 0x24, 0x7a, 0x75, 0x8b, 0xe8, 0xd3, 0x45, 0xf1, 0x5c, 0xac, 0x47, 0xf9, 0x74, 0xfe, 0x27, + 0xed, 0xb9, 0x70, 0x23, 0x7b, 0xad, 0x1c, 0xb8, 0x9e, 0xbd, 0x4f, 0x41, 0x5f, 0x31, 0xbb, 0xb4, + 0x06, 0x53, 0xa4, 0x06, 0x49, 0x59, 0xb4, 0xbb, 0xe1, 0x74, 0xcf, 0xc1, 0x3b, 0xd8, 0x79, 0xd8, + 0xd8, 0x3f, 0x78, 0xb4, 0xe5, 0x18, 0x96, 0xdb, 0xb3, 0x1d, 0xef, 0xdc, 0x34, 0x61, 0x7e, 0xe0, + 0x37, 0xed, 0x4e, 0x38, 0xf5, 0x88, 0x6b, 0x5b, 0xe5, 0x9e, 0xb9, 0x6e, 0xba, 0x1e, 0xb6, 0xca, + 0x9d, 0x8e, 0x73, 0x6e, 0x86, 0x94, 0x75, 0xf8, 0x03, 0xeb, 0x56, 0xa7, 0xa1, 0x48, 0x85, 0x8d, + 0x5e, 0x5e, 0x90, 0x76, 0xfe, 0x64, 0xd5, 0x4f, 0x34, 0xe6, 0x9e, 0x0a, 0x53, 0xac, 0x3f, 0x24, + 0xb0, 0xce, 0xde, 0x7d, 0xb6, 0x6f, 0x15, 0x82, 0x51, 0xd1, 0x83, 0x6c, 0xda, 0xd3, 0xa1, 0xd8, + 0x26, 0x42, 0x20, 0x08, 0xcf, 0xde, 0x7d, 0xe3, 0xe0, 0x42, 0x49, 0x16, 0x9d, 0x65, 0x45, 0x7f, + 0xac, 0x4a, 0xf9, 0x8b, 0x26, 0x71, 0x9c, 0xae, 0x0f, 0xf8, 0x92, 0x32, 0x42, 0x27, 0x7b, 0x27, + 0xdc, 0xce, 0x7a, 0x50, 0x66, 0xad, 0x2c, 0x6f, 0x2f, 0x6d, 0x05, 0x53, 0x47, 0xdf, 0x86, 0x69, + 0xb6, 0xca, 0xba, 0x3f, 0xef, 0x5f, 0xf6, 0xa7, 0x9c, 0x77, 0xc0, 0x6d, 0x43, 0x72, 0x57, 0x5b, + 0xdb, 0xf5, 0xf2, 0x46, 0xb5, 0xb4, 0x23, 0x5a, 0x42, 0xcd, 0x56, 0x63, 0x73, 0x5b, 0xdf, 0xaa, + 0xd7, 0x6b, 0xf5, 0x55, 0x4a, 0xcc, 0x37, 0x20, 0xcf, 0x46, 0x19, 0x2e, 0xea, 0xb5, 0x56, 0x75, + 0xbb, 0xd2, 0xa8, 0xaf, 0xd4, 0x56, 0x4b, 0xe6, 0x30, 0x33, 0xea, 0x11, 0xed, 0x16, 0xb8, 0x49, + 0xe0, 0xa4, 0xd6, 0xa8, 0xfb, 0xf3, 0xe0, 0x4a, 0xb9, 0x5e, 0xa9, 0xfa, 0x93, 0xde, 0xcb, 0x1a, + 0x82, 0x33, 0x94, 0xdc, 0xf6, 0x4a, 0x6d, 0x9d, 0xdf, 0xba, 0xfa, 0x58, 0x4e, 0x3b, 0x07, 0xd7, + 0xf1, 0xdf, 0x6a, 0xf5, 0x0b, 0xe5, 0xf5, 0xda, 0x72, 0xe9, 0x37, 0x73, 0xda, 0xad, 0xf0, 0x78, + 0xe1, 0x2f, 0xba, 0x0b, 0xb5, 0x5d, 0x5b, 0xde, 0xde, 0xa8, 0x35, 0x37, 0xca, 0xad, 0xca, 0x5a, + 0xe9, 0xe3, 0x64, 0x76, 0x11, 0x9a, 0xcb, 0x9c, 0x13, 0xe7, 0x2b, 0x79, 0x0b, 0xa0, 0x2c, 0x2a, + 0xea, 0x93, 0x07, 0xc2, 0x9e, 0x6c, 0xf1, 0x7e, 0x24, 0x1c, 0x4b, 0x96, 0x05, 0x15, 0x7a, 0x6a, + 0x0a, 0x5a, 0xe9, 0x74, 0xa8, 0x35, 0x82, 0x0a, 0xdd, 0x02, 0x37, 0xd5, 0xab, 0x14, 0x29, 0xbd, + 0x5a, 0x69, 0x5c, 0xa8, 0xea, 0xdb, 0x17, 0xcb, 0xeb, 0xeb, 0xd5, 0xd6, 0xf6, 0x4a, 0x4d, 0x6f, + 0xb6, 0x4a, 0x3b, 0xe8, 0x9f, 0x94, 0x70, 0xed, 0x87, 0x93, 0xd6, 0x9f, 0x29, 0x69, 0x9b, 0x75, + 0xe2, 0x1a, 0xcf, 0x37, 0x41, 0xd1, 0xf5, 0x0c, 0xef, 0xc0, 0x65, 0xad, 0xfa, 0x71, 0x83, 0x5b, + 0xf5, 0x62, 0x93, 0x64, 0xd2, 0x59, 0x66, 0xf4, 0xc7, 0xb9, 0x34, 0xcd, 0x74, 0x0c, 0xcb, 0x3f, + 0xe6, 0x08, 0x22, 0xbe, 0x19, 0x50, 0xa0, 0xed, 0xb5, 0xe6, 0x76, 0x79, 0x5d, 0xaf, 0x96, 0x97, + 0x1f, 0x0e, 0x17, 0x7d, 0xb0, 0x76, 0x06, 0x4e, 0x6d, 0xd5, 0xcb, 0x4b, 0xeb, 0x55, 0xd2, 0x5c, + 0x1a, 0xf5, 0x7a, 0xb5, 0xe2, 0xcb, 0xfd, 0xbb, 0xc9, 0x16, 0x8b, 0x6f, 0x6f, 0x13, 0xbe, 0x7d, + 0x9b, 0x88, 0x93, 0xff, 0x5f, 0x49, 0x7b, 0x22, 0x45, 0x1a, 0xc6, 0xd3, 0x1a, 0x2f, 0x0e, 0x9f, + 0x91, 0x72, 0x3e, 0x92, 0xe2, 0x24, 0x1d, 0x1e, 0xdf, 0x3e, 0x02, 0x1e, 0x67, 0xe0, 0x14, 0x8f, + 0x07, 0x71, 0x42, 0x8a, 0x87, 0xe1, 0xe5, 0x33, 0x50, 0x6c, 0xe2, 0x2e, 0x6e, 0x7b, 0xe8, 0x73, + 0x4a, 0x64, 0x7a, 0x2c, 0x80, 0x12, 0x3a, 0xbd, 0x28, 0x66, 0x47, 0x98, 0x6c, 0x2b, 0x7d, 0x93, + 0xed, 0x04, 0xa3, 0x41, 0x4d, 0x65, 0x34, 0xe4, 0x33, 0x30, 0x1a, 0x0a, 0xa3, 0x1b, 0x0d, 0xc5, + 0xb4, 0x46, 0xc3, 0x54, 0xa2, 0xd1, 0x80, 0x7e, 0xba, 0x98, 0xb6, 0x4f, 0xa1, 0xc0, 0x1c, 0xaf, + 0xa9, 0xf0, 0x3f, 0xf2, 0x69, 0xfa, 0xa0, 0x81, 0x1c, 0xa7, 0xd3, 0xf9, 0xaf, 0xa9, 0x19, 0x2c, + 0x6d, 0x68, 0x4f, 0x80, 0xc7, 0x47, 0xef, 0xdb, 0xd5, 0xe7, 0xd5, 0x9a, 0xad, 0x26, 0xb1, 0x0f, + 0x2a, 0x0d, 0x5d, 0xdf, 0xda, 0xa4, 0xeb, 0xd3, 0x67, 0x41, 0x8b, 0xa8, 0xe8, 0x5b, 0x75, 0x6a, + 0x0d, 0xec, 0x8a, 0xd4, 0x57, 0x6a, 0xf5, 0xe5, 0xed, 0xb0, 0x85, 0xd5, 0x57, 0x1a, 0xa5, 0x3d, + 0x7f, 0x3a, 0xc8, 0x51, 0xf7, 0x87, 0x73, 0x56, 0x42, 0xb9, 0xbe, 0xbc, 0xbd, 0x51, 0xaf, 0x6e, + 0x34, 0xea, 0xb5, 0x0a, 0x49, 0x6f, 0x56, 0x5b, 0x25, 0xd3, 0x1f, 0x96, 0xfa, 0xec, 0x8f, 0x66, + 0xb5, 0xac, 0x57, 0xd6, 0xaa, 0x3a, 0x2d, 0xf2, 0x11, 0xed, 0x36, 0x38, 0x5f, 0xae, 0x37, 0x5a, + 0x7e, 0x4a, 0xb9, 0xfe, 0x70, 0xeb, 0xe1, 0xcd, 0xea, 0xf6, 0xa6, 0xde, 0xa8, 0x54, 0x9b, 0x4d, + 0xbf, 0x55, 0x33, 0x6b, 0xa5, 0xd4, 0xd5, 0x9e, 0x03, 0xf7, 0x72, 0xac, 0x55, 0x5b, 0x64, 0x33, + 0x74, 0xa3, 0x41, 0xfc, 0x61, 0x96, 0xab, 0xdb, 0x6b, 0xe5, 0xe6, 0x76, 0xad, 0x5e, 0x69, 0x6c, + 0x6c, 0x96, 0x5b, 0x35, 0xbf, 0xf1, 0x6f, 0xea, 0x8d, 0x56, 0x63, 0xfb, 0x42, 0x55, 0x6f, 0xd6, + 0x1a, 0xf5, 0x92, 0xe5, 0x57, 0x99, 0xeb, 0x2d, 0x82, 0x5e, 0xdb, 0xd6, 0x6e, 0x82, 0x73, 0x41, + 0xfa, 0x7a, 0xc3, 0x17, 0x34, 0x67, 0xbf, 0xf4, 0x32, 0xb5, 0x5f, 0xfe, 0x45, 0x81, 0x7c, 0xd3, + 0xb3, 0x7b, 0xe8, 0x1b, 0xa3, 0xee, 0xe8, 0x66, 0x00, 0x87, 0xec, 0x6d, 0xfa, 0x33, 0x3c, 0x36, + 0xe7, 0xe3, 0x52, 0xd0, 0x6f, 0x48, 0x6f, 0xc8, 0x44, 0x3d, 0xbc, 0xdd, 0x8b, 0xb1, 0x6c, 0xbe, + 0x2a, 0x77, 0x42, 0x25, 0x9e, 0x50, 0x3a, 0x7d, 0xff, 0xbe, 0x51, 0xb6, 0x5c, 0x10, 0x9c, 0xe5, + 0x60, 0xf3, 0xe5, 0x1f, 0xa8, 0x04, 0xd6, 0xae, 0x87, 0xeb, 0xfa, 0x94, 0x8b, 0xe8, 0xd4, 0x8e, + 0xf6, 0x0d, 0xf0, 0x38, 0x4e, 0xbd, 0xab, 0x1b, 0x8d, 0x0b, 0xd5, 0x50, 0x91, 0x97, 0xcb, 0xad, + 0x72, 0x69, 0x17, 0x7d, 0x4a, 0x85, 0xfc, 0x86, 0x7d, 0xa5, 0x7f, 0x1f, 0xcc, 0xc2, 0x57, 0xb9, + 0x75, 0xd6, 0xe0, 0x55, 0xf4, 0xc8, 0x97, 0x12, 0xfb, 0x46, 0xfc, 0x9e, 0xf7, 0x67, 0x94, 0x34, + 0x62, 0xdf, 0x38, 0xea, 0x46, 0xf7, 0xdf, 0x8c, 0x22, 0xf6, 0x18, 0xd1, 0x62, 0xed, 0x3c, 0xdc, + 0x1c, 0x7d, 0xa8, 0x2d, 0x57, 0xeb, 0xad, 0xda, 0xca, 0xc3, 0x91, 0x70, 0x6b, 0xba, 0x94, 0xf8, + 0x87, 0x75, 0x63, 0xc9, 0xf3, 0x92, 0x73, 0x70, 0x3a, 0xfa, 0xb6, 0x5a, 0x6d, 0x05, 0x5f, 0x1e, + 0x41, 0x2f, 0x2a, 0xc0, 0x1c, 0xed, 0xd6, 0xb7, 0x7a, 0x1d, 0xc3, 0xc3, 0xe8, 0xe9, 0x11, 0xba, + 0xb7, 0xc3, 0xc9, 0xda, 0xe6, 0x4a, 0xb3, 0xe9, 0xd9, 0x8e, 0xb1, 0x8b, 0xc9, 0x38, 0x46, 0xa5, + 0xd5, 0x9f, 0x8c, 0xde, 0x2d, 0xbd, 0x86, 0x28, 0x0e, 0x25, 0xb4, 0xcc, 0x18, 0xd4, 0x3f, 0x2f, + 0xb5, 0xe6, 0x27, 0x41, 0x30, 0x1d, 0xfa, 0x8f, 0x8c, 0xb9, 0xcd, 0xc5, 0xe3, 0xb2, 0x73, 0xfe, + 0xc5, 0x0a, 0xcc, 0xb4, 0xcc, 0x7d, 0xfc, 0x7c, 0xdb, 0xc2, 0xae, 0x36, 0x05, 0xea, 0xea, 0x46, + 0xab, 0x74, 0xc2, 0x7f, 0xf0, 0x4d, 0xb0, 0x1c, 0x79, 0xa8, 0xfa, 0x05, 0xf8, 0x0f, 0xe5, 0x56, + 0x49, 0xf5, 0x1f, 0x36, 0xaa, 0xad, 0x52, 0xde, 0x7f, 0xa8, 0x57, 0x5b, 0xa5, 0x82, 0xff, 0xb0, + 0xb9, 0xde, 0x2a, 0x15, 0xfd, 0x87, 0x5a, 0xb3, 0x55, 0x9a, 0xf2, 0x1f, 0x96, 0x9a, 0xad, 0xd2, + 0xb4, 0xff, 0x70, 0xa1, 0xd9, 0x2a, 0xcd, 0xf8, 0x0f, 0x95, 0x56, 0xab, 0x04, 0xfe, 0xc3, 0x83, + 0xcd, 0x56, 0x69, 0xd6, 0x7f, 0x28, 0x57, 0x5a, 0xa5, 0x39, 0xf2, 0x50, 0x6d, 0x95, 0xe6, 0xfd, + 0x87, 0x66, 0xb3, 0x55, 0x5a, 0x20, 0x94, 0x9b, 0xad, 0xd2, 0x49, 0x52, 0x56, 0xad, 0x55, 0x2a, + 0xf9, 0x0f, 0x6b, 0xcd, 0x56, 0xe9, 0x14, 0xc9, 0xdc, 0x6c, 0x95, 0x34, 0x52, 0x68, 0xb3, 0x55, + 0xba, 0x8e, 0xe4, 0x69, 0xb6, 0x4a, 0xa7, 0x49, 0x11, 0xcd, 0x56, 0xe9, 0x0c, 0x61, 0xa3, 0xda, + 0x2a, 0x9d, 0x25, 0x79, 0xf4, 0x56, 0xe9, 0x7a, 0xf2, 0xa9, 0xde, 0x2a, 0x9d, 0x23, 0x8c, 0x55, + 0x5b, 0xa5, 0x1b, 0xc8, 0x83, 0xde, 0x2a, 0x21, 0xf2, 0xa9, 0xdc, 0x2a, 0xdd, 0x88, 0x1e, 0x07, + 0x33, 0xab, 0xd8, 0xa3, 0x20, 0xa2, 0x12, 0xa8, 0xab, 0xd8, 0xe3, 0x8d, 0xfe, 0xbf, 0x50, 0xe1, + 0x7a, 0x36, 0x51, 0x5c, 0x71, 0xec, 0xfd, 0x75, 0xbc, 0x6b, 0xb4, 0xaf, 0x55, 0x1f, 0xf5, 0x0d, + 0x2e, 0x7e, 0xcf, 0x57, 0x83, 0x7c, 0x2f, 0xea, 0x8c, 0xc8, 0x73, 0xa2, 0x7d, 0x1a, 0x2c, 0x74, + 0xa9, 0xd1, 0x42, 0x17, 0xb3, 0xc8, 0xfe, 0x91, 0xd7, 0x68, 0x61, 0x6d, 0x3a, 0xd7, 0xb7, 0x36, + 0xed, 0x37, 0x93, 0x1e, 0x76, 0x5c, 0xdb, 0x32, 0xba, 0x4d, 0xe6, 0x14, 0x40, 0x57, 0xd4, 0xfa, + 0x93, 0xb5, 0x6f, 0x09, 0x5a, 0x06, 0xb5, 0xca, 0x9e, 0x9d, 0x34, 0x1f, 0xee, 0xaf, 0x66, 0x4c, + 0x23, 0xf9, 0x78, 0xd8, 0x48, 0x5a, 0x42, 0x23, 0x79, 0xee, 0x11, 0x68, 0xa7, 0x6b, 0x2f, 0xb5, + 0xd1, 0x26, 0x22, 0x91, 0xcb, 0x6c, 0xb0, 0x14, 0xae, 0xa2, 0x4f, 0x29, 0x70, 0xb6, 0x6a, 0x0d, + 0x9a, 0x0f, 0xf0, 0xba, 0xf0, 0x16, 0x1e, 0x9a, 0x4d, 0x51, 0xa4, 0xf7, 0x0e, 0xac, 0xf6, 0x60, + 0x9a, 0x31, 0x12, 0xfd, 0x44, 0x28, 0xd1, 0xa6, 0x20, 0xd1, 0x07, 0x46, 0x27, 0x9d, 0x4e, 0xa0, + 0xf5, 0xb1, 0x76, 0x40, 0x79, 0xf4, 0x45, 0x05, 0x4e, 0x51, 0xbf, 0x9e, 0x07, 0xe9, 0xf4, 0x83, + 0x74, 0xd9, 0xa2, 0x09, 0xd5, 0x8d, 0xa6, 0x2a, 0x54, 0xbf, 0xb9, 0x14, 0xf4, 0x06, 0x5e, 0xe0, + 0x0f, 0x89, 0x02, 0x8f, 0xe9, 0x8c, 0xfb, 0x8b, 0x8b, 0x91, 0xf5, 0x6f, 0x86, 0xb2, 0xae, 0x0b, + 0xb2, 0xbe, 0x77, 0x24, 0xaa, 0xc7, 0x2b, 0xe6, 0x2f, 0xe5, 0xe1, 0x71, 0x94, 0x43, 0xa6, 0x08, + 0xb4, 0x33, 0x2b, 0x5b, 0x1d, 0x1d, 0xbb, 0x9e, 0xe1, 0x78, 0xc2, 0x91, 0xf6, 0xbe, 0xf9, 0x6d, + 0x2e, 0x83, 0xf9, 0xad, 0x32, 0x74, 0x7e, 0x8b, 0xde, 0xc5, 0x5b, 0x69, 0x17, 0x45, 0x64, 0xcb, + 0x09, 0x18, 0xc4, 0xd4, 0x30, 0xae, 0x45, 0x85, 0xe6, 0xdb, 0xb7, 0x0a, 0x28, 0xaf, 0x1c, 0xb9, + 0x84, 0x74, 0x88, 0xff, 0xc6, 0x78, 0xcd, 0xe9, 0x3c, 0xff, 0x4d, 0xb4, 0xfd, 0x4a, 0x9d, 0x4c, + 0xe7, 0x41, 0xaf, 0x98, 0x86, 0x19, 0xd2, 0xe5, 0xac, 0x9b, 0xd6, 0x65, 0x7f, 0x6c, 0x9c, 0xab, + 0xe3, 0xab, 0x95, 0x3d, 0xa3, 0xdb, 0xc5, 0xd6, 0x2e, 0x46, 0x8f, 0x08, 0x06, 0xba, 0xd1, 0xeb, + 0xd5, 0xa3, 0xad, 0xa2, 0xe0, 0x55, 0x7b, 0x00, 0x0a, 0x6e, 0xdb, 0xee, 0x61, 0x22, 0xa8, 0x05, + 0xce, 0xb9, 0x44, 0x5c, 0xee, 0x2a, 0x1f, 0x78, 0x7b, 0x8b, 0xa4, 0xac, 0x72, 0xcf, 0x6c, 0xfa, + 0x3f, 0xe8, 0xf4, 0x3f, 0x36, 0x4e, 0xfe, 0xd5, 0xc0, 0xce, 0x38, 0x97, 0xd0, 0x19, 0x87, 0x8c, + 0x2f, 0xf2, 0x4c, 0xc7, 0xac, 0x64, 0xdc, 0x02, 0xb3, 0xed, 0x20, 0x4b, 0x78, 0x76, 0x86, 0x4f, + 0x42, 0x7f, 0x99, 0xaa, 0xbb, 0x96, 0x2a, 0x3c, 0x9d, 0x56, 0xe1, 0x31, 0xdb, 0x8b, 0x67, 0xe0, + 0x54, 0xab, 0xd1, 0xd8, 0xde, 0x28, 0xd7, 0x1f, 0x8e, 0xce, 0xac, 0xef, 0xa0, 0x57, 0xe7, 0x61, + 0xa1, 0x69, 0x77, 0xaf, 0xe0, 0x08, 0xe7, 0x9a, 0xe0, 0x94, 0xc5, 0xcb, 0x29, 0x77, 0x48, 0x4e, + 0xda, 0x59, 0x28, 0x1a, 0x96, 0x7b, 0x15, 0x07, 0x36, 0x3c, 0x7b, 0x63, 0x30, 0xfe, 0x2a, 0xdf, + 0x11, 0xe8, 0x22, 0x8c, 0xf7, 0x0d, 0x91, 0xa4, 0xc8, 0x55, 0x0c, 0x90, 0xe7, 0x61, 0xce, 0xa5, + 0x1b, 0xc6, 0x2d, 0xce, 0x2f, 0x40, 0x48, 0x23, 0x2c, 0x52, 0x8f, 0x05, 0x95, 0xb1, 0x48, 0xde, + 0xd0, 0xeb, 0xc3, 0xfe, 0x63, 0x4b, 0x80, 0xb8, 0x7c, 0x14, 0xc6, 0xd2, 0x81, 0xfc, 0xda, 0x71, + 0xcf, 0xc4, 0xcf, 0xc1, 0x69, 0xd6, 0xec, 0xb7, 0x2b, 0x6b, 0xe5, 0xf5, 0xf5, 0x6a, 0x7d, 0xb5, + 0xba, 0x5d, 0x5b, 0xa6, 0x1b, 0x50, 0x51, 0x4a, 0xb9, 0xd5, 0xaa, 0x6e, 0x6c, 0xb6, 0x9a, 0xdb, + 0xd5, 0xe7, 0x55, 0xaa, 0xd5, 0x65, 0xe2, 0x16, 0x49, 0xce, 0x35, 0x05, 0x0e, 0xac, 0xe5, 0x7a, + 0xf3, 0x62, 0x55, 0x2f, 0xed, 0x9d, 0x2f, 0xc3, 0x2c, 0x37, 0x50, 0xf8, 0xdc, 0x2d, 0xe3, 0x1d, + 0xe3, 0xa0, 0xcb, 0x6c, 0xea, 0xd2, 0x09, 0x9f, 0x3b, 0x22, 0x9b, 0x86, 0xd5, 0xbd, 0x56, 0xca, + 0x69, 0x25, 0x98, 0xe3, 0xc7, 0x84, 0x92, 0x82, 0xde, 0x7e, 0x13, 0xcc, 0x5c, 0xb4, 0x9d, 0xcb, + 0xc4, 0x97, 0x0f, 0xbd, 0x8f, 0xc6, 0xb6, 0x09, 0x4e, 0x09, 0x73, 0x06, 0xd8, 0x6b, 0xe5, 0x3d, + 0x46, 0x02, 0x6a, 0x8b, 0x43, 0x4f, 0x02, 0xdf, 0x02, 0xb3, 0x57, 0x83, 0xdc, 0x51, 0x4b, 0xe7, + 0x92, 0xd0, 0xcf, 0xc9, 0xf9, 0x80, 0x0c, 0x2f, 0x32, 0x7b, 0x1f, 0x85, 0xb7, 0x2a, 0x50, 0x5c, + 0xc5, 0x5e, 0xb9, 0xdb, 0xe5, 0xe5, 0xf6, 0x2a, 0xe9, 0xd3, 0x5d, 0x42, 0x25, 0xca, 0xdd, 0x6e, + 0x7c, 0xa3, 0xe2, 0x04, 0x14, 0x9c, 0x42, 0x10, 0xd2, 0x24, 0x7d, 0x27, 0x87, 0x14, 0x98, 0xbd, + 0xc4, 0x7e, 0x5d, 0x0d, 0xfd, 0x1c, 0xde, 0xc8, 0x99, 0x49, 0x4f, 0x8b, 0xe2, 0x1a, 0xe5, 0x92, + 0xfd, 0x25, 0x82, 0x7c, 0xda, 0x43, 0x30, 0x75, 0xe0, 0xe2, 0x8a, 0xe1, 0x06, 0x43, 0x9b, 0x58, + 0xd3, 0xc6, 0xa5, 0x47, 0x70, 0xdb, 0x5b, 0xac, 0xed, 0xfb, 0x13, 0x9f, 0x2d, 0x9a, 0x31, 0x0c, + 0x15, 0xc4, 0xde, 0xf5, 0x80, 0x82, 0x3f, 0x79, 0xbc, 0x6a, 0x7a, 0x7b, 0x95, 0x3d, 0xc3, 0x63, + 0x3b, 0x16, 0xe1, 0x3b, 0x7a, 0xf9, 0x08, 0x70, 0x26, 0xee, 0xf0, 0xc7, 0x1e, 0x12, 0x4d, 0x0d, + 0xe2, 0x18, 0xb6, 0xe5, 0x47, 0x01, 0xf1, 0x6f, 0x15, 0xc8, 0x37, 0x7a, 0xd8, 0x92, 0x3e, 0x11, + 0x15, 0xca, 0x56, 0xe9, 0x93, 0xed, 0xeb, 0xe5, 0x3d, 0x04, 0xc3, 0x4a, 0xfb, 0x25, 0xc7, 0x48, + 0xf6, 0x2e, 0xc8, 0x9b, 0xd6, 0x8e, 0xcd, 0x2c, 0xdb, 0x1b, 0x63, 0x6c, 0x9d, 0x9a, 0xb5, 0x63, + 0xeb, 0x24, 0xa3, 0xac, 0x73, 0x60, 0x52, 0xd9, 0xd9, 0x8b, 0xfb, 0xef, 0xa6, 0xa1, 0x48, 0xd5, + 0x19, 0xbd, 0x52, 0x05, 0xb5, 0xdc, 0xe9, 0xc4, 0x08, 0x5e, 0x39, 0x24, 0x78, 0x9b, 0xfc, 0x16, + 0x62, 0x12, 0xbe, 0x8b, 0x01, 0x6d, 0x24, 0xfb, 0x76, 0xd6, 0xa4, 0xca, 0x9d, 0x4e, 0xbc, 0x1f, + 0x72, 0x58, 0xa0, 0x22, 0x16, 0xc8, 0xb7, 0x70, 0x55, 0xae, 0x85, 0xa7, 0x1e, 0x08, 0x62, 0xf9, + 0xcb, 0x1e, 0xa2, 0x7f, 0x54, 0x60, 0x6a, 0xdd, 0x74, 0x3d, 0x1f, 0x9b, 0xb2, 0x0c, 0x36, 0x37, + 0xc1, 0x4c, 0x20, 0x1a, 0xbf, 0xcb, 0xf3, 0xfb, 0xf3, 0x28, 0x41, 0x9c, 0x89, 0x3f, 0x28, 0xa2, + 0xf3, 0x8c, 0xe4, 0xda, 0x33, 0x2e, 0xe2, 0x4f, 0x9a, 0x44, 0xc5, 0x2a, 0xfd, 0xc5, 0xfe, 0x42, + 0x28, 0xf0, 0x0d, 0x41, 0xe0, 0xf7, 0x8c, 0x52, 0x64, 0xf6, 0x42, 0xff, 0x43, 0x05, 0xc0, 0x2f, + 0x9b, 0x1d, 0xe7, 0x7b, 0x92, 0x70, 0x48, 0x3f, 0x41, 0xba, 0xaf, 0xe6, 0xa5, 0xbb, 0x21, 0x4a, + 0xf7, 0x9b, 0x87, 0x57, 0x35, 0xe9, 0xd8, 0x9e, 0x56, 0x02, 0xd5, 0x0c, 0x45, 0xeb, 0x3f, 0xa2, + 0xb7, 0x86, 0x42, 0xdd, 0x14, 0x84, 0x7a, 0xdf, 0x88, 0x25, 0x65, 0x2f, 0xd7, 0x3f, 0x51, 0x60, + 0xaa, 0x89, 0x3d, 0xbf, 0x9b, 0x44, 0x17, 0x64, 0x7a, 0x78, 0xae, 0x6d, 0x2b, 0x92, 0x6d, 0xfb, + 0x2b, 0x39, 0xd9, 0x60, 0x3f, 0x91, 0x64, 0x18, 0x4f, 0x31, 0xab, 0x0f, 0x6f, 0x94, 0x0a, 0xf6, + 0x33, 0x8c, 0x5a, 0xf6, 0xd2, 0x7d, 0x8b, 0x12, 0xba, 0x5b, 0x88, 0xa7, 0x6d, 0x78, 0xb3, 0x38, + 0x77, 0xd8, 0x2c, 0x96, 0x3f, 0x6d, 0xc3, 0xd7, 0x31, 0xde, 0x7b, 0x20, 0xb5, 0xb1, 0x31, 0x86, + 0x8d, 0xfd, 0x51, 0xe4, 0xf5, 0x42, 0x15, 0x8a, 0x6c, 0x07, 0xe0, 0x81, 0xe4, 0x1d, 0x80, 0xe1, + 0x53, 0x8b, 0xf7, 0x8e, 0x60, 0xca, 0x25, 0x2d, 0xcb, 0x87, 0x6c, 0x28, 0x1c, 0x1b, 0x77, 0x42, + 0x81, 0x44, 0x23, 0x65, 0xe3, 0x5c, 0xe4, 0x93, 0x11, 0x90, 0xa8, 0xfa, 0x5f, 0x75, 0x9a, 0x29, + 0x35, 0x0a, 0x63, 0x58, 0xc9, 0x1f, 0x05, 0x85, 0x2f, 0x69, 0x00, 0x9b, 0x07, 0x97, 0xba, 0xa6, + 0xbb, 0x67, 0x5a, 0xbb, 0xe8, 0x1d, 0x0a, 0xcc, 0xb1, 0x57, 0x1a, 0x54, 0x33, 0xd1, 0xfc, 0x8b, + 0x35, 0x0a, 0x4a, 0xa0, 0x1e, 0x38, 0x26, 0x5b, 0x06, 0xf0, 0x1f, 0xb5, 0xfb, 0x43, 0xf7, 0xac, + 0x7c, 0x5f, 0x38, 0x05, 0x5f, 0x0c, 0x11, 0x07, 0x8b, 0x5c, 0xe9, 0x91, 0x9b, 0x16, 0x1f, 0x39, + 0xb5, 0x20, 0x46, 0x4e, 0x15, 0xce, 0x58, 0x16, 0xfb, 0xce, 0x58, 0xfa, 0x38, 0xba, 0xe6, 0xf3, + 0x31, 0xf1, 0xdf, 0x51, 0x75, 0xf2, 0xec, 0xff, 0xf1, 0x88, 0x6d, 0x5a, 0x64, 0x53, 0x87, 0xb9, + 0x0f, 0x47, 0x09, 0x7c, 0x9f, 0x37, 0x23, 0xd9, 0xe7, 0x7d, 0x30, 0x9a, 0xfb, 0xd8, 0x92, 0x86, + 0x73, 0x0a, 0xc9, 0x09, 0xec, 0xe6, 0xfb, 0xd8, 0x45, 0x1f, 0x96, 0x0e, 0xae, 0xc6, 0xc9, 0x38, + 0x71, 0x16, 0xc3, 0x38, 0x50, 0x42, 0x0e, 0xb8, 0x8d, 0xdc, 0xa4, 0x1e, 0x78, 0x18, 0xfd, 0x74, + 0xba, 0xbc, 0x3f, 0xc2, 0x7a, 0x8d, 0x06, 0x0b, 0xc1, 0x61, 0xd5, 0xc6, 0xd2, 0x83, 0xd5, 0x4a, + 0xab, 0x84, 0x0f, 0x1f, 0x60, 0x25, 0x47, 0x55, 0xe9, 0xb1, 0xd4, 0x68, 0x4d, 0x06, 0xfd, 0x77, + 0x05, 0x8a, 0xcc, 0xdc, 0x78, 0xe0, 0x88, 0x10, 0xa2, 0xd7, 0x8c, 0x02, 0x49, 0x62, 0xcc, 0x80, + 0xdf, 0x4e, 0x0b, 0xc0, 0x18, 0x0c, 0x8c, 0x87, 0x33, 0x03, 0x00, 0xfd, 0xb3, 0x02, 0x79, 0xdf, + 0x0c, 0x92, 0x3b, 0x91, 0xfd, 0x71, 0x69, 0xef, 0x66, 0x4e, 0x00, 0x3e, 0xf9, 0x18, 0xfd, 0x5e, + 0x82, 0x99, 0x1e, 0xcd, 0x18, 0xc6, 0x03, 0xb8, 0x55, 0xa2, 0x33, 0xc2, 0x7a, 0xf4, 0x1b, 0x7a, + 0x8f, 0x94, 0x87, 0x74, 0x32, 0x3f, 0xe9, 0xe0, 0xa8, 0x8e, 0xe3, 0xf0, 0xf6, 0x0e, 0xfa, 0x57, + 0x05, 0x40, 0xc7, 0xae, 0xdd, 0xbd, 0x82, 0xb7, 0x1c, 0x13, 0xdd, 0x18, 0x01, 0xc0, 0x9a, 0x7d, + 0x2e, 0x6a, 0xf6, 0x9f, 0xe4, 0x05, 0xbf, 0x2a, 0x0a, 0xfe, 0x69, 0xf1, 0x9a, 0x17, 0x10, 0x8f, + 0x11, 0xff, 0x73, 0x60, 0x8a, 0xc9, 0x91, 0xd9, 0x94, 0x72, 0xc2, 0x0f, 0x7e, 0x42, 0xef, 0x0f, + 0x45, 0xff, 0xa0, 0x20, 0xfa, 0x67, 0xa6, 0xe6, 0x28, 0x1d, 0x00, 0x95, 0x11, 0x00, 0x38, 0x09, + 0xb3, 0x01, 0x00, 0x5b, 0x7a, 0xad, 0x84, 0xd1, 0x3b, 0x55, 0xe2, 0x26, 0x41, 0x07, 0xb7, 0xa3, + 0xf7, 0x34, 0x5f, 0x94, 0x9e, 0xec, 0x73, 0xf2, 0x08, 0xcb, 0xcf, 0x08, 0xa0, 0xdf, 0x95, 0x9a, + 0xdd, 0x4b, 0x30, 0xf4, 0x58, 0xe9, 0xaf, 0xce, 0x57, 0x61, 0x5e, 0xb0, 0x4a, 0xb4, 0x73, 0x70, + 0x5a, 0x48, 0xa0, 0xe3, 0x5d, 0xa7, 0x74, 0x42, 0x43, 0x70, 0x56, 0xf8, 0xc2, 0x5e, 0x70, 0xa7, + 0x94, 0x43, 0x6f, 0xfb, 0x74, 0x2e, 0x5c, 0xef, 0x79, 0x6f, 0x9e, 0xad, 0xb4, 0x7d, 0x54, 0x0c, + 0x41, 0xd7, 0xb6, 0x2d, 0x0f, 0x3f, 0xca, 0xb9, 0xa9, 0x84, 0x09, 0x89, 0x56, 0xc3, 0x39, 0x98, + 0xf2, 0x1c, 0xde, 0x75, 0x25, 0x78, 0xe5, 0x15, 0xab, 0x20, 0x2a, 0x56, 0x1d, 0xce, 0x9b, 0x56, + 0xbb, 0x7b, 0xd0, 0xc1, 0x3a, 0xee, 0x1a, 0xbe, 0x0c, 0xdd, 0xb2, 0xbb, 0x8c, 0x7b, 0xd8, 0xea, + 0x60, 0xcb, 0xa3, 0x7c, 0x06, 0x47, 0xe0, 0x24, 0x72, 0x8a, 0xca, 0x78, 0xbf, 0xa8, 0x8c, 0x4f, + 0x1a, 0xb4, 0x84, 0x9b, 0xb0, 0xde, 0x77, 0x0f, 0x00, 0xad, 0xdb, 0x05, 0x13, 0x5f, 0x65, 0x6a, + 0x78, 0x43, 0xdf, 0xaa, 0x5f, 0x23, 0xcc, 0xa0, 0x73, 0x99, 0xd1, 0xe7, 0x42, 0xf5, 0x7b, 0xae, + 0xa0, 0x7e, 0x77, 0x4a, 0xb2, 0x90, 0x4e, 0xeb, 0x7a, 0x23, 0x68, 0xdd, 0x3c, 0xcc, 0x44, 0xbb, + 0xc9, 0xaa, 0x76, 0x03, 0x9c, 0x09, 0xdc, 0x80, 0xeb, 0xd5, 0xea, 0x72, 0x73, 0x7b, 0x6b, 0x73, + 0x55, 0x2f, 0x2f, 0x57, 0x4b, 0xe0, 0xeb, 0x27, 0xd5, 0xcb, 0xd0, 0x7b, 0x37, 0x8f, 0xfe, 0x48, + 0x81, 0x02, 0x39, 0xbf, 0x89, 0xbe, 0x6d, 0x4c, 0x9a, 0xe3, 0x0a, 0x4e, 0x4f, 0xe1, 0xb8, 0x2b, + 0x1f, 0x1a, 0x9e, 0x09, 0x93, 0x70, 0x75, 0xa4, 0xd0, 0xf0, 0x09, 0x84, 0xb2, 0x9f, 0x09, 0xf9, + 0x4d, 0xb2, 0xb9, 0x67, 0x5f, 0xfd, 0x7a, 0x6e, 0x92, 0x7e, 0xfd, 0x8f, 0xb9, 0x49, 0x0e, 0x60, + 0x61, 0xe2, 0x4d, 0x72, 0x40, 0xbb, 0x4b, 0x68, 0xa6, 0xe8, 0x05, 0x85, 0x70, 0xfe, 0xf7, 0x62, + 0xe5, 0x48, 0x7b, 0x5f, 0x65, 0x98, 0x37, 0x2d, 0x0f, 0x3b, 0x96, 0xd1, 0x5d, 0xe9, 0x1a, 0xbb, + 0x81, 0x7d, 0xda, 0xbf, 0xe1, 0x51, 0xe3, 0xf2, 0xe8, 0xe2, 0x1f, 0xda, 0xcd, 0x00, 0x1e, 0xde, + 0xef, 0x75, 0x0d, 0x2f, 0x52, 0x3d, 0x2e, 0x85, 0xd7, 0xbe, 0xbc, 0xa8, 0x7d, 0x4f, 0x85, 0xeb, + 0x28, 0x68, 0xad, 0x6b, 0x3d, 0xbc, 0x65, 0x99, 0xdf, 0x71, 0x40, 0x22, 0x96, 0x52, 0x1d, 0x1d, + 0xf4, 0x49, 0xd8, 0x01, 0x2a, 0xf6, 0xed, 0x00, 0xfd, 0xad, 0x74, 0x24, 0x94, 0xa0, 0xd5, 0x0f, + 0x89, 0x84, 0x12, 0xb6, 0x34, 0xb5, 0xaf, 0xa5, 0x85, 0xeb, 0x32, 0x79, 0x89, 0x75, 0x19, 0x1e, + 0x95, 0x82, 0xe4, 0xfc, 0xfe, 0x75, 0x52, 0xa1, 0x56, 0x92, 0xaa, 0x91, 0x7d, 0xef, 0xf5, 0x65, + 0x15, 0x16, 0x68, 0xd1, 0x4b, 0xb6, 0x7d, 0x79, 0xdf, 0x70, 0x2e, 0xa3, 0x1f, 0x3c, 0xda, 0x3e, + 0x6c, 0xe2, 0xfe, 0x53, 0xdc, 0xa6, 0x6a, 0x9f, 0xfa, 0xe5, 0xfb, 0xd5, 0x0f, 0x7d, 0x42, 0x7a, + 0x52, 0x21, 0xc8, 0x33, 0xa8, 0xd4, 0x64, 0x36, 0xa8, 0xde, 0x24, 0x35, 0xc7, 0x90, 0x61, 0x30, + 0x7b, 0xe0, 0x7f, 0x2b, 0x04, 0x3e, 0x18, 0x09, 0xf8, 0xb5, 0xfd, 0x71, 0xe2, 0x8e, 0x3e, 0x3f, + 0x1a, 0x76, 0x01, 0x5f, 0x23, 0x60, 0x57, 0x02, 0xf5, 0x72, 0xe8, 0x4e, 0xe4, 0x3f, 0xf2, 0x15, + 0xca, 0x67, 0x87, 0x66, 0x0c, 0xcb, 0x13, 0x41, 0xf3, 0xb4, 0xc8, 0x42, 0xa3, 0x97, 0x29, 0xa6, + 0x9f, 0x95, 0xde, 0x33, 0x1b, 0x28, 0x20, 0xca, 0xdd, 0x64, 0x5a, 0xa5, 0xdc, 0x86, 0x9b, 0x3c, + 0x9b, 0xd9, 0xa3, 0xf9, 0xb2, 0x02, 0xcc, 0x04, 0xc1, 0x6c, 0xc8, 0x5d, 0x4b, 0x21, 0x86, 0x67, + 0xa1, 0xe8, 0xda, 0x07, 0x4e, 0x1b, 0xb3, 0x5d, 0x4c, 0xf6, 0x36, 0xc2, 0x8e, 0xdb, 0xd0, 0x01, + 0xff, 0x90, 0x4d, 0x91, 0x4f, 0x6d, 0x53, 0xc4, 0x5b, 0xac, 0x49, 0x16, 0xc0, 0xcb, 0xa5, 0x03, + 0xe4, 0x0b, 0x98, 0x35, 0xb1, 0xf7, 0x58, 0x34, 0x02, 0x7e, 0x4d, 0x6a, 0x3f, 0x67, 0x48, 0x4d, + 0xd2, 0xa9, 0x5c, 0x63, 0x04, 0x4b, 0xf6, 0x46, 0xb8, 0x3e, 0xc8, 0xc1, 0x4c, 0x58, 0x62, 0xb2, + 0x6e, 0xe9, 0xeb, 0x25, 0x15, 0xbd, 0x30, 0x0f, 0x25, 0xca, 0x5a, 0x23, 0xb4, 0xe6, 0xd0, 0xab, + 0x72, 0xc7, 0x6d, 0xb2, 0xc6, 0xcf, 0x41, 0x7f, 0x5f, 0x91, 0x0d, 0xc2, 0x2b, 0x08, 0x3e, 0xaa, + 0x5d, 0x8c, 0x26, 0x8d, 0xd0, 0xcc, 0x12, 0x94, 0x0f, 0xfd, 0x7c, 0x4e, 0x26, 0xa6, 0xaf, 0x1c, + 0x8b, 0xd9, 0xf7, 0x4a, 0x5f, 0xc9, 0x07, 0x31, 0xc9, 0x56, 0x1c, 0x7b, 0x7f, 0xcb, 0xe9, 0xa2, + 0xff, 0x2d, 0x15, 0x32, 0x3d, 0x66, 0x7e, 0xa0, 0xc4, 0xcf, 0x0f, 0xc8, 0x9a, 0x72, 0x37, 0xda, + 0xcc, 0xea, 0x8e, 0x30, 0x7c, 0x6b, 0xb7, 0xc1, 0x82, 0xd1, 0xe9, 0x6c, 0x1a, 0xbb, 0xb8, 0xe2, + 0x4f, 0xbc, 0x2d, 0x8f, 0xc5, 0x2b, 0xea, 0x4b, 0x4d, 0xea, 0x8a, 0xfa, 0xfa, 0xc8, 0xa9, 0x43, + 0x56, 0xa9, 0xfc, 0x42, 0xaa, 0x00, 0x22, 0x93, 0xdf, 0x44, 0x86, 0x3f, 0x7f, 0xc8, 0x68, 0xef, + 0x19, 0x51, 0x74, 0x35, 0xf6, 0x26, 0xe9, 0x4d, 0x25, 0xc1, 0x77, 0xf6, 0x9a, 0xf7, 0xcb, 0x0a, + 0x4c, 0xf9, 0x78, 0x94, 0x3b, 0x1d, 0xf4, 0x44, 0x21, 0x08, 0x61, 0xac, 0x3f, 0xdb, 0xf7, 0x4a, + 0x3b, 0x12, 0x06, 0x35, 0xa4, 0xf4, 0x63, 0x30, 0x89, 0x84, 0xa8, 0x08, 0x42, 0x94, 0xf3, 0x17, + 0x4c, 0x2c, 0x22, 0x7b, 0xf1, 0x7d, 0x5c, 0x81, 0xf9, 0x60, 0x9e, 0xb1, 0x82, 0xbd, 0xf6, 0x1e, + 0xba, 0x47, 0x76, 0xa5, 0x8a, 0xb5, 0xc4, 0x70, 0x53, 0xb7, 0x8b, 0xbe, 0x96, 0x4b, 0xa9, 0xf2, + 0x42, 0xc9, 0x31, 0xcb, 0x7c, 0xa9, 0x74, 0x31, 0x89, 0x60, 0xf6, 0xc2, 0xfc, 0x9c, 0x02, 0xd0, + 0xb2, 0xc3, 0xc9, 0xf2, 0x11, 0x24, 0xf9, 0x43, 0xd2, 0xfb, 0xbd, 0xac, 0xe2, 0x51, 0xb1, 0xe9, + 0x7b, 0x0e, 0x49, 0x77, 0xa8, 0x61, 0x25, 0x4d, 0xa4, 0xad, 0xcf, 0x2c, 0x1f, 0xf4, 0xba, 0x66, + 0xdb, 0xf0, 0xfa, 0x7d, 0xf8, 0xe2, 0xc5, 0x4b, 0x2e, 0x2a, 0x4d, 0x65, 0x34, 0x86, 0x65, 0xc4, + 0xc8, 0x92, 0x86, 0xbb, 0x51, 0x82, 0x70, 0x37, 0x92, 0x7e, 0x39, 0x43, 0x88, 0x4f, 0x40, 0x3d, + 0x55, 0x38, 0xd9, 0xe8, 0x61, 0x6b, 0xc9, 0xc1, 0x46, 0xa7, 0xed, 0x1c, 0xec, 0x5f, 0x72, 0x79, + 0x07, 0xd4, 0x64, 0x1d, 0xe5, 0xd6, 0x9e, 0x15, 0x61, 0xed, 0x19, 0x7d, 0x8f, 0x2a, 0x1b, 0x7c, + 0x89, 0xdb, 0x21, 0xe1, 0x78, 0x18, 0x61, 0xa8, 0x4b, 0xe5, 0x36, 0xd5, 0xb7, 0xcc, 0x9c, 0x4f, + 0xb3, 0xcc, 0xfc, 0x66, 0xa9, 0x50, 0x4e, 0x52, 0xf5, 0x9a, 0x88, 0xf7, 0xdb, 0x42, 0x13, 0x7b, + 0x31, 0xf0, 0xde, 0x0a, 0xf3, 0x97, 0xa2, 0x2f, 0x21, 0xc4, 0x62, 0xe2, 0x00, 0x9f, 0xd4, 0xb7, + 0xa4, 0x5d, 0xa1, 0x11, 0x59, 0x88, 0x41, 0x37, 0x44, 0x50, 0x91, 0x71, 0x7c, 0x4b, 0xb5, 0xdc, + 0x92, 0x58, 0x7e, 0xf6, 0x28, 0x7c, 0x58, 0x81, 0x59, 0x72, 0xfd, 0xea, 0xd2, 0x35, 0x72, 0x14, + 0x53, 0xd2, 0x28, 0x79, 0x19, 0x2f, 0x66, 0x0d, 0xf2, 0x5d, 0xd3, 0xba, 0x1c, 0x78, 0x2c, 0xfa, + 0xcf, 0xd1, 0x65, 0x7e, 0xca, 0x80, 0xcb, 0xfc, 0xc2, 0x8d, 0x8e, 0xb0, 0xdc, 0x23, 0xdd, 0x2e, + 0x3d, 0x94, 0x5c, 0xf6, 0x62, 0xfc, 0xeb, 0x3c, 0x14, 0x9b, 0xd8, 0x70, 0xda, 0x7b, 0xe8, 0xbd, + 0xca, 0xc0, 0xa9, 0xc4, 0xb4, 0x38, 0x95, 0x58, 0x81, 0xa9, 0x1d, 0xb3, 0xeb, 0x61, 0x87, 0x7a, + 0x71, 0xf3, 0x5d, 0x3b, 0x6d, 0xe2, 0x4b, 0x5d, 0xbb, 0x7d, 0x79, 0x91, 0x99, 0xf6, 0x8b, 0x41, + 0xf0, 0xd7, 0xc5, 0x15, 0xf2, 0x93, 0x1e, 0xfc, 0xec, 0x1b, 0x84, 0xae, 0xed, 0x78, 0x71, 0xf7, + 0x7a, 0xc4, 0x50, 0x69, 0xda, 0x8e, 0xa7, 0xd3, 0x1f, 0x7d, 0x98, 0x77, 0x0e, 0xba, 0xdd, 0x16, + 0x7e, 0xd4, 0x0b, 0xa6, 0x75, 0xc1, 0xbb, 0x6f, 0x2c, 0xda, 0x3b, 0x3b, 0x2e, 0xa6, 0x8b, 0x0a, + 0x05, 0x9d, 0xbd, 0x69, 0xa7, 0xa1, 0xd0, 0x35, 0xf7, 0x4d, 0x3a, 0x11, 0x29, 0xe8, 0xf4, 0x45, + 0xbb, 0x03, 0x4a, 0xd1, 0x1c, 0x88, 0x32, 0x7a, 0xae, 0x48, 0x9a, 0xe6, 0xa1, 0x74, 0x5f, 0x67, + 0x2e, 0xe3, 0x6b, 0xee, 0xb9, 0x29, 0xf2, 0x9d, 0x3c, 0x8b, 0x47, 0x66, 0x64, 0x36, 0x4c, 0xa8, + 0xc4, 0xe3, 0x67, 0xb8, 0x0e, 0x6e, 0xdb, 0x4e, 0x27, 0x90, 0x4d, 0xfc, 0x04, 0x83, 0xe5, 0x4b, + 0xb7, 0xcd, 0x31, 0xb0, 0xf0, 0xec, 0x35, 0xed, 0x5d, 0x45, 0xbf, 0xdb, 0xf4, 0x8b, 0xbe, 0x68, + 0x7a, 0x7b, 0x1b, 0xd8, 0x33, 0xd0, 0x5f, 0xab, 0x03, 0x35, 0x6e, 0xf6, 0xff, 0xd7, 0xb8, 0x21, + 0x1a, 0x47, 0x43, 0x6f, 0x79, 0x07, 0x8e, 0xe5, 0xcb, 0x91, 0x79, 0xc2, 0x72, 0x29, 0xda, 0x7d, + 0x70, 0x43, 0xf4, 0x16, 0x2c, 0xa5, 0x2e, 0x73, 0xce, 0xb1, 0xd3, 0x7a, 0x7c, 0x06, 0x6d, 0x13, + 0x9e, 0x40, 0x3f, 0xae, 0xb5, 0x36, 0xd6, 0xd7, 0xcc, 0xdd, 0xbd, 0xae, 0xb9, 0xbb, 0xe7, 0xb9, + 0x35, 0xcb, 0xf5, 0xb0, 0xd1, 0x69, 0xec, 0xe8, 0xf4, 0x46, 0x1e, 0x20, 0x74, 0x64, 0xb2, 0x8a, + 0x5e, 0xde, 0x72, 0xa3, 0x1b, 0xaf, 0x29, 0x31, 0x2d, 0xe5, 0x99, 0x7e, 0x4b, 0x71, 0x0f, 0xba, + 0x21, 0xa6, 0x37, 0xf5, 0x61, 0x1a, 0xa9, 0xfa, 0x41, 0x97, 0x34, 0x17, 0x92, 0x39, 0xed, 0x38, + 0x97, 0xc0, 0x49, 0xf6, 0xcd, 0xe6, 0x7f, 0x17, 0xa1, 0xb0, 0xea, 0x18, 0xbd, 0x3d, 0xf4, 0x42, + 0xae, 0x7f, 0x1e, 0x57, 0x9b, 0x08, 0xb5, 0x53, 0x19, 0xa6, 0x9d, 0xea, 0x10, 0xed, 0xcc, 0x73, + 0xda, 0x19, 0xbf, 0xe8, 0x7c, 0x1e, 0xe6, 0xda, 0x76, 0xb7, 0x8b, 0xdb, 0xbe, 0x3c, 0x6a, 0x1d, + 0xb2, 0xda, 0x33, 0xa3, 0x0b, 0x69, 0x24, 0x40, 0x36, 0xf6, 0x9a, 0x74, 0x8d, 0x9d, 0x2a, 0x7d, + 0x94, 0x80, 0x5e, 0xa5, 0x40, 0xbe, 0xda, 0xd9, 0xc5, 0xc2, 0x3a, 0x7c, 0x8e, 0x5b, 0x87, 0x3f, + 0x0b, 0x45, 0xcf, 0x70, 0x76, 0xb1, 0x17, 0xac, 0x13, 0xd0, 0xb7, 0x30, 0x6e, 0xb7, 0xca, 0xc5, + 0xed, 0xfe, 0x66, 0xc8, 0xfb, 0x32, 0x63, 0x8e, 0xed, 0x4f, 0x18, 0x04, 0x3f, 0x91, 0xfd, 0xa2, + 0x5f, 0xe2, 0xa2, 0x5f, 0x6b, 0x9d, 0xfc, 0xd0, 0x8f, 0x75, 0xe1, 0x10, 0xd6, 0xe4, 0x72, 0xd1, + 0xb6, 0x6d, 0xd5, 0xf6, 0x8d, 0x5d, 0xcc, 0xaa, 0x19, 0x25, 0x04, 0x5f, 0xab, 0xfb, 0xf6, 0x23, + 0x26, 0x5b, 0xd4, 0x8a, 0x12, 0xfc, 0x2a, 0xec, 0x99, 0x9d, 0x0e, 0xb6, 0x58, 0xcb, 0x66, 0x6f, + 0xe7, 0x6f, 0x86, 0xbc, 0xcf, 0x83, 0xaf, 0x3f, 0xbe, 0xb1, 0x50, 0x3a, 0xa1, 0xcd, 0xf9, 0xcd, + 0x8a, 0x36, 0xde, 0x52, 0x4e, 0x5c, 0x73, 0x95, 0xf1, 0xfb, 0xa1, 0x95, 0x1b, 0xdc, 0xb8, 0x9e, + 0x02, 0x05, 0xcb, 0xee, 0xe0, 0xa1, 0x83, 0x10, 0xcd, 0xa5, 0x3d, 0x03, 0x0a, 0xb8, 0xe3, 0xf7, + 0x0a, 0x2a, 0xc9, 0x7e, 0x73, 0xb2, 0x2c, 0x75, 0x9a, 0x39, 0x9d, 0x73, 0xd1, 0x20, 0x6e, 0xb3, + 0x6f, 0x80, 0xdf, 0x3f, 0x05, 0x27, 0x69, 0x1f, 0xd0, 0x3c, 0xb8, 0xe4, 0x93, 0xba, 0x84, 0xd1, + 0x1b, 0x07, 0x0f, 0x5c, 0x27, 0x45, 0x65, 0x3f, 0x0d, 0x05, 0xf7, 0xe0, 0x52, 0x68, 0x84, 0xd2, + 0x17, 0xbe, 0xe9, 0x2a, 0x63, 0x19, 0xce, 0xd4, 0x51, 0x87, 0x33, 0x61, 0x68, 0x52, 0x83, 0xc6, + 0x1f, 0x0d, 0x64, 0xf4, 0x48, 0x46, 0x30, 0x90, 0x0d, 0x1a, 0x86, 0xce, 0xc1, 0x94, 0xb1, 0xe3, + 0x61, 0x27, 0x32, 0x13, 0xd9, 0xab, 0x3f, 0x54, 0x5e, 0xc2, 0x3b, 0xb6, 0xe3, 0x8b, 0x85, 0x86, + 0x6d, 0x0f, 0xdf, 0xb9, 0x96, 0x0b, 0xc2, 0x0e, 0xda, 0x9d, 0x70, 0xca, 0xb2, 0x97, 0x71, 0x8f, + 0xc9, 0x99, 0xa2, 0x38, 0x4f, 0x5a, 0xc0, 0xe1, 0x0f, 0x87, 0xba, 0x92, 0x85, 0xc3, 0x5d, 0x09, + 0xfa, 0x64, 0xda, 0x39, 0x73, 0x1f, 0xd0, 0x63, 0xb3, 0xd0, 0xb4, 0x67, 0xc3, 0x5c, 0x87, 0xf9, + 0x78, 0xb5, 0xcd, 0xb0, 0x95, 0xc4, 0xfe, 0x27, 0x64, 0x8e, 0x14, 0x29, 0xcf, 0x2b, 0xd2, 0x2a, + 0x4c, 0x93, 0xc3, 0xd3, 0xbe, 0x26, 0x15, 0xfa, 0x7c, 0xea, 0xc9, 0xb4, 0x2e, 0xac, 0x14, 0x27, + 0xb6, 0xc5, 0x0a, 0xfb, 0x45, 0x0f, 0x7f, 0x4e, 0x37, 0xfb, 0x4e, 0x96, 0x50, 0xf6, 0xcd, 0xf1, + 0x17, 0x8a, 0x70, 0x43, 0xc5, 0xb1, 0x5d, 0x97, 0x1c, 0xa2, 0xe9, 0x6f, 0x98, 0x3f, 0xab, 0x08, + 0x37, 0x78, 0x3c, 0xa6, 0x9b, 0xdf, 0xa0, 0x06, 0x35, 0xb9, 0xa6, 0xf1, 0x45, 0xe9, 0xb0, 0x33, + 0xe1, 0xfe, 0x43, 0x8c, 0xd0, 0xbf, 0x3e, 0x1a, 0xc9, 0xbb, 0x72, 0x32, 0x91, 0x70, 0x52, 0xca, + 0x2a, 0xfb, 0xe6, 0xf2, 0x59, 0x05, 0x6e, 0xec, 0xe7, 0x66, 0xcb, 0x72, 0xc3, 0x06, 0xf3, 0xf8, + 0x21, 0xed, 0x45, 0x8c, 0x9c, 0x92, 0x78, 0x77, 0x66, 0x4c, 0xdd, 0xb9, 0xd2, 0x62, 0x16, 0x4b, + 0xa2, 0x23, 0x39, 0x49, 0x77, 0x67, 0xa6, 0x26, 0x9f, 0xbd, 0x70, 0x7f, 0x3f, 0x0f, 0x27, 0x57, + 0x1d, 0xfb, 0xa0, 0xe7, 0x46, 0x3d, 0xd0, 0x9f, 0x0d, 0xde, 0x90, 0x2d, 0xca, 0x98, 0x06, 0xb7, + 0xc0, 0xac, 0xc3, 0xac, 0xb9, 0x68, 0x7b, 0x96, 0x4f, 0xe2, 0x7b, 0x2f, 0xf5, 0x28, 0xbd, 0x57, + 0xd4, 0xcf, 0xe4, 0x85, 0x7e, 0xa6, 0xbf, 0xe7, 0x28, 0x0c, 0xe8, 0x39, 0xfe, 0x54, 0x49, 0x39, + 0xa8, 0xf6, 0x89, 0x28, 0xa6, 0xbf, 0xa8, 0x40, 0x71, 0x97, 0x64, 0x64, 0xdd, 0xc5, 0x93, 0xe5, + 0x6a, 0x46, 0x88, 0xeb, 0xec, 0xd7, 0x48, 0xae, 0x2a, 0xaf, 0xc3, 0xa9, 0x06, 0xb8, 0x64, 0x6e, + 0xb3, 0x57, 0xaa, 0xd7, 0xe7, 0x61, 0x2e, 0x2c, 0xbd, 0xd6, 0x71, 0xd1, 0xcb, 0x06, 0x6b, 0xd4, + 0xbc, 0x8c, 0x46, 0x1d, 0x5a, 0x67, 0x0e, 0x47, 0x1d, 0x95, 0x1b, 0x75, 0x06, 0x8e, 0x2e, 0x73, + 0x31, 0xa3, 0x0b, 0x7a, 0x81, 0x2a, 0x7b, 0x07, 0x96, 0xd8, 0xb5, 0x92, 0xda, 0x3c, 0x96, 0x07, + 0x0b, 0xc9, 0x9b, 0xb8, 0x86, 0xd7, 0x2a, 0x7b, 0x25, 0xf9, 0x80, 0x02, 0xa7, 0x0e, 0x77, 0xe6, + 0xdf, 0x20, 0x7a, 0xa9, 0xf9, 0x75, 0x72, 0x43, 0x2f, 0x35, 0xf2, 0x26, 0x6e, 0xd2, 0x25, 0x86, + 0x31, 0x11, 0xec, 0xbd, 0xe1, 0x9d, 0xb8, 0x5c, 0xa0, 0x12, 0x49, 0xa2, 0xd9, 0x0b, 0xf0, 0x87, + 0x55, 0x98, 0x69, 0x62, 0x6f, 0xdd, 0xb8, 0x66, 0x1f, 0x78, 0xc8, 0x90, 0xdd, 0x9e, 0x7b, 0x16, + 0x14, 0xbb, 0xe4, 0x17, 0xd2, 0xc1, 0xf0, 0x61, 0x43, 0xf9, 0xfd, 0x2d, 0xe2, 0x1b, 0x44, 0x49, + 0xeb, 0x2c, 0xbf, 0x18, 0x3f, 0x46, 0x66, 0x77, 0x34, 0xe4, 0x6e, 0x2c, 0x5b, 0x3b, 0xa9, 0xf6, + 0x4e, 0xe3, 0x8a, 0xce, 0x1e, 0x96, 0xef, 0x51, 0x61, 0xbe, 0x89, 0xbd, 0x9a, 0xbb, 0x62, 0x5c, + 0xb1, 0x1d, 0xd3, 0xc3, 0xfc, 0xdd, 0xa2, 0xc9, 0xd0, 0xdc, 0x0c, 0x60, 0x86, 0xbf, 0xb1, 0xa8, + 0x56, 0x5c, 0x0a, 0xfa, 0xf9, 0xb4, 0x8e, 0x42, 0x02, 0x1f, 0x63, 0x01, 0x21, 0x95, 0x8f, 0x45, + 0x52, 0xf1, 0xd9, 0x03, 0xf1, 0x19, 0x85, 0x01, 0x51, 0x76, 0xda, 0x7b, 0xe6, 0x15, 0xdc, 0x49, + 0x09, 0x44, 0xf0, 0x5b, 0x04, 0x44, 0x48, 0x28, 0xb5, 0xfb, 0x8a, 0xc0, 0xc7, 0x38, 0xdc, 0x57, + 0x92, 0x08, 0x4e, 0x24, 0x30, 0x95, 0xdf, 0xf5, 0xb0, 0xf5, 0xcc, 0x07, 0x64, 0xc5, 0x1a, 0x99, + 0x6c, 0x0a, 0x6f, 0xb2, 0x8d, 0xd4, 0xb1, 0xd0, 0xb2, 0x87, 0xe9, 0x74, 0x3e, 0x8b, 0x8e, 0x65, + 0x60, 0xd1, 0xd9, 0x0b, 0xfd, 0x3d, 0x2a, 0x9c, 0x09, 0x23, 0xb6, 0x34, 0xb1, 0xb7, 0x6c, 0xb8, + 0x7b, 0x97, 0x6c, 0xc3, 0xe9, 0xa0, 0xca, 0x18, 0x8e, 0x0c, 0xa2, 0x4f, 0xf3, 0x20, 0xd4, 0x45, + 0x10, 0x06, 0xba, 0x92, 0x0e, 0xe4, 0x65, 0x1c, 0x9d, 0x4c, 0xa2, 0xb7, 0xeb, 0xdb, 0x42, 0xb0, + 0xbe, 0x45, 0x00, 0xeb, 0xfe, 0x51, 0x59, 0xcc, 0x1e, 0xb8, 0x1f, 0xa3, 0x23, 0x02, 0xe7, 0xf5, + 0xfc, 0xb0, 0x2c, 0x60, 0x31, 0x5e, 0xaf, 0x6a, 0xac, 0xd7, 0xeb, 0x48, 0x63, 0xc4, 0x50, 0x8f, + 0xe5, 0x6c, 0xc7, 0x88, 0x63, 0xf4, 0x46, 0x7e, 0x87, 0x0a, 0x25, 0x12, 0xb2, 0x8b, 0xf3, 0x08, + 0xe7, 0x23, 0x60, 0x27, 0xa3, 0x73, 0xc8, 0xfb, 0x7c, 0x2a, 0xad, 0xf7, 0x39, 0x7a, 0x7b, 0x5a, + 0x1f, 0xf3, 0x7e, 0x6e, 0xc7, 0x82, 0x58, 0x2a, 0x17, 0xf2, 0x21, 0x1c, 0x64, 0x0f, 0xda, 0x7f, + 0x55, 0x01, 0xfc, 0x06, 0xcd, 0xce, 0x46, 0x3c, 0x4f, 0x16, 0xae, 0xbb, 0x78, 0xbf, 0x7b, 0x1f, + 0xa8, 0x33, 0x7d, 0x40, 0x51, 0x8a, 0xd1, 0xa9, 0x8b, 0x37, 0xa6, 0xf5, 0xad, 0x8c, 0xb8, 0x1a, + 0x0b, 0x2c, 0xa9, 0xbc, 0x2d, 0x63, 0xcb, 0xce, 0x1e, 0x90, 0xff, 0xa6, 0x40, 0xa1, 0x65, 0x37, + 0xb1, 0x77, 0x74, 0x53, 0x20, 0xf5, 0xb9, 0x7f, 0x52, 0xee, 0x38, 0xce, 0xfd, 0x0f, 0x22, 0x94, + 0xbd, 0xe8, 0xde, 0xad, 0xc0, 0x5c, 0xcb, 0xae, 0x84, 0x8b, 0x53, 0xf2, 0xbe, 0xaa, 0xf2, 0xf7, + 0x78, 0x87, 0x15, 0x8c, 0x8a, 0x39, 0xd2, 0x3d, 0xde, 0xc3, 0xe9, 0x65, 0x2f, 0xb7, 0x7b, 0xe0, + 0xe4, 0x96, 0xd5, 0xb1, 0x75, 0xdc, 0xb1, 0xd9, 0x4a, 0xb7, 0xa6, 0x41, 0xfe, 0xc0, 0xea, 0xd8, + 0x84, 0xe5, 0x82, 0x4e, 0x9e, 0xfd, 0x34, 0x07, 0x77, 0x6c, 0xe6, 0x1b, 0x40, 0x9e, 0xd1, 0x17, + 0x55, 0xc8, 0xfb, 0xff, 0xca, 0x8b, 0xfa, 0x1d, 0x6a, 0xca, 0x48, 0x06, 0x3e, 0xf9, 0xb1, 0x58, + 0x42, 0x0f, 0x70, 0x6b, 0xff, 0xd4, 0x83, 0xf5, 0x09, 0x71, 0xe5, 0x71, 0xa2, 0x88, 0xd6, 0xfc, + 0xb5, 0x73, 0x30, 0x75, 0xa9, 0x6b, 0xb7, 0x2f, 0x47, 0x07, 0xee, 0xd9, 0xab, 0x76, 0x07, 0x14, + 0x1c, 0xc3, 0xda, 0xc5, 0x6c, 0x4f, 0xe1, 0x74, 0x5f, 0x5f, 0x48, 0xbc, 0x5e, 0x74, 0x9a, 0x05, + 0xbd, 0x3d, 0x4d, 0x0c, 0x85, 0x01, 0x95, 0x4f, 0xa7, 0x0f, 0xcb, 0x23, 0x9c, 0x3c, 0x2b, 0xc1, + 0x5c, 0xa5, 0x4c, 0x6f, 0xcc, 0xdf, 0x68, 0x5c, 0xa8, 0x96, 0x54, 0x02, 0xb3, 0x2f, 0x93, 0x0c, + 0x61, 0xf6, 0xc9, 0x7f, 0xdd, 0xc2, 0x3c, 0xa0, 0xf2, 0xc7, 0x01, 0xf3, 0xc7, 0x15, 0x98, 0x5f, + 0x37, 0x5d, 0x2f, 0xce, 0xdb, 0x3f, 0x21, 0x62, 0xef, 0xcb, 0xd3, 0x9a, 0xca, 0x42, 0x39, 0xd2, + 0xa1, 0x7a, 0x53, 0x99, 0xc3, 0x49, 0x45, 0x4c, 0xe6, 0x58, 0x0a, 0xe1, 0x80, 0xde, 0x5b, 0x2d, + 0x2d, 0xc9, 0xd4, 0x86, 0x52, 0x54, 0xc8, 0xe4, 0x0d, 0xa5, 0xd8, 0xb2, 0xb3, 0x97, 0xef, 0x17, + 0x15, 0x38, 0xe5, 0x17, 0x9f, 0xb4, 0x2c, 0x15, 0x2f, 0xe6, 0xa1, 0xcb, 0x52, 0xa9, 0x57, 0xc6, + 0x0f, 0xf1, 0x32, 0x8e, 0x95, 0xf1, 0x61, 0x44, 0x27, 0x2c, 0xe6, 0x98, 0x65, 0xd8, 0x61, 0x62, + 0x4e, 0x58, 0x86, 0x1d, 0x5d, 0xcc, 0xc9, 0x4b, 0xb1, 0x23, 0x8a, 0xf9, 0xd8, 0x16, 0x58, 0x7f, + 0x5a, 0x0d, 0xc5, 0x1c, 0xbb, 0xb6, 0x91, 0x20, 0xe6, 0xd4, 0x27, 0x7a, 0xd1, 0x3b, 0x47, 0x14, + 0xfc, 0x98, 0xd7, 0x37, 0x46, 0x81, 0xe9, 0x18, 0xd7, 0x38, 0x7e, 0x5c, 0x85, 0x05, 0xc6, 0xc5, + 0xe0, 0x29, 0x73, 0x02, 0x46, 0xa9, 0xa7, 0xcc, 0xa9, 0xcf, 0x00, 0x89, 0x9c, 0x4d, 0xfe, 0x0c, + 0x50, 0x62, 0xf9, 0xd9, 0x83, 0xf3, 0x57, 0x79, 0x38, 0xeb, 0xb3, 0xb0, 0x61, 0x77, 0xcc, 0x9d, + 0x6b, 0x94, 0x8b, 0x0b, 0x46, 0xf7, 0x00, 0xbb, 0xe8, 0x7d, 0x8a, 0x2c, 0x4a, 0xff, 0x07, 0x80, + 0xdd, 0xc3, 0x0e, 0x8d, 0xc4, 0xc6, 0x80, 0xba, 0x2f, 0xae, 0xb2, 0x87, 0x4b, 0x0a, 0x2f, 0xb0, + 0x69, 0x04, 0x44, 0x74, 0x8e, 0x9e, 0x6f, 0x15, 0xce, 0x84, 0x5f, 0xfa, 0x1d, 0x3c, 0x72, 0x87, + 0x1d, 0x3c, 0x6e, 0x07, 0xd5, 0xe8, 0x74, 0x42, 0xa8, 0xfa, 0x37, 0xb3, 0x49, 0x99, 0xba, 0x9f, + 0xc5, 0xcf, 0xe9, 0xe2, 0xe8, 0x68, 0x5e, 0x4c, 0x4e, 0x17, 0x7b, 0xda, 0x22, 0x14, 0xe9, 0xad, + 0xdc, 0xe1, 0x8a, 0xfe, 0xe0, 0xcc, 0x2c, 0x97, 0x68, 0xda, 0x35, 0x44, 0x35, 0xbc, 0x27, 0x95, + 0x64, 0x06, 0xf5, 0xd3, 0x91, 0x9d, 0xac, 0x0b, 0x0a, 0xf6, 0x9c, 0x91, 0x29, 0x4f, 0x66, 0x37, + 0xac, 0xdc, 0xeb, 0x75, 0xaf, 0xb5, 0x58, 0xe0, 0x81, 0x54, 0xbb, 0x61, 0x5c, 0xfc, 0x02, 0xe5, + 0x50, 0xfc, 0x82, 0xd4, 0xbb, 0x61, 0x02, 0x1f, 0xe3, 0xd8, 0x0d, 0x4b, 0x22, 0x98, 0xbd, 0x68, + 0x7f, 0x73, 0x9a, 0x5a, 0xcd, 0xec, 0x3e, 0x81, 0x4f, 0x0e, 0xf6, 0xac, 0x06, 0xd1, 0xd9, 0x65, + 0xd0, 0x55, 0x03, 0x89, 0xf7, 0xa8, 0x68, 0xcf, 0x80, 0xe2, 0x8e, 0xed, 0xec, 0x1b, 0xc1, 0xc6, + 0x7d, 0xff, 0x49, 0x11, 0x16, 0xc3, 0x7f, 0x85, 0xe4, 0xd1, 0x59, 0x5e, 0x7f, 0x3e, 0xf2, 0x7c, + 0xb3, 0xc7, 0xc2, 0x36, 0xfa, 0x8f, 0xda, 0xad, 0x30, 0xcf, 0xa2, 0x37, 0xd6, 0xb1, 0xeb, 0xe1, + 0x0e, 0x8b, 0x68, 0x21, 0x26, 0x6a, 0xe7, 0x61, 0x8e, 0x25, 0xac, 0x98, 0x5d, 0xec, 0xb2, 0xa0, + 0x16, 0x42, 0x9a, 0x76, 0x16, 0x8a, 0xa6, 0xfb, 0xa0, 0x6b, 0x5b, 0xc4, 0xff, 0x7f, 0x5a, 0x67, + 0x6f, 0xda, 0xed, 0x70, 0x92, 0xe5, 0x0b, 0x8d, 0x55, 0x7a, 0x60, 0xa7, 0x3f, 0xd9, 0x57, 0x2d, + 0xcb, 0xde, 0x74, 0xec, 0x5d, 0x07, 0xbb, 0x2e, 0x39, 0x35, 0x35, 0xad, 0x73, 0x29, 0xda, 0xc3, + 0x70, 0xaa, 0x6b, 0x5a, 0x97, 0x5d, 0x12, 0xe5, 0x77, 0x85, 0xb9, 0x8d, 0xcd, 0x0d, 0x88, 0xbe, + 0xcd, 0x35, 0x36, 0x26, 0x07, 0xfe, 0x17, 0xfd, 0x30, 0x15, 0xed, 0x0e, 0x28, 0x31, 0x6e, 0x96, + 0x8c, 0xf6, 0x65, 0xf2, 0x9d, 0xb9, 0xa3, 0x1e, 0x4a, 0x47, 0xaf, 0xcc, 0xc1, 0x9c, 0xf0, 0xb3, + 0x01, 0x5a, 0xd0, 0xe5, 0xb9, 0x17, 0xf7, 0x4c, 0x0f, 0xfb, 0x05, 0xb3, 0x73, 0x2c, 0x4f, 0x1b, + 0xc2, 0x98, 0x7e, 0xe8, 0x47, 0x7d, 0x00, 0x31, 0x1f, 0x00, 0xda, 0x99, 0x11, 0xaf, 0x31, 0x97, + 0xd9, 0xa1, 0x42, 0x1a, 0x7a, 0x3e, 0x68, 0x87, 0xa9, 0x71, 0x1e, 0x1e, 0xb9, 0x74, 0x1e, 0x1e, + 0xbe, 0x4c, 0x8c, 0x6e, 0xd7, 0xbe, 0x8a, 0x3b, 0x21, 0x59, 0xa6, 0x87, 0x87, 0xd2, 0xd1, 0xa7, + 0x46, 0x99, 0xf3, 0xa5, 0xbe, 0xf6, 0xc2, 0x6f, 0x40, 0x07, 0xed, 0x36, 0xc6, 0x1d, 0x76, 0x28, + 0x2d, 0x78, 0x4d, 0x79, 0x21, 0x46, 0xea, 0x19, 0xe2, 0x31, 0xdd, 0x88, 0xf1, 0xeb, 0x67, 0xa0, + 0x48, 0x6f, 0x97, 0x43, 0xaf, 0x5c, 0x18, 0xd8, 0x8f, 0x2c, 0x88, 0xfd, 0xc8, 0x16, 0xcc, 0x59, + 0xb6, 0x5f, 0xdc, 0xa6, 0xe1, 0x18, 0xfb, 0x6e, 0xd2, 0x02, 0x30, 0xa5, 0x1b, 0x8e, 0xf6, 0x75, + 0xee, 0xb7, 0xb5, 0x13, 0xba, 0x40, 0x46, 0xfb, 0x3f, 0xe1, 0xe4, 0x25, 0x16, 0xbc, 0xc1, 0x65, + 0x94, 0x95, 0x78, 0xf7, 0xc8, 0x3e, 0xca, 0x4b, 0xe2, 0x9f, 0x6b, 0x27, 0xf4, 0x7e, 0x62, 0xda, + 0x7f, 0x82, 0x05, 0xff, 0xb5, 0x63, 0x5f, 0x0d, 0x18, 0x57, 0xe3, 0x6d, 0xc4, 0x3e, 0xf2, 0x1b, + 0xc2, 0x8f, 0x6b, 0x27, 0xf4, 0x3e, 0x52, 0x5a, 0x03, 0x60, 0xcf, 0xdb, 0xef, 0x32, 0xc2, 0xf9, + 0x78, 0x95, 0xec, 0x23, 0xbc, 0x16, 0xfe, 0xb4, 0x76, 0x42, 0xe7, 0x48, 0x68, 0xeb, 0x30, 0xe3, + 0x3d, 0xea, 0x31, 0x7a, 0x85, 0x78, 0xbf, 0x84, 0x3e, 0x7a, 0xad, 0xe0, 0x9f, 0xb5, 0x13, 0x7a, + 0x44, 0x40, 0xab, 0xc1, 0x74, 0xef, 0x12, 0x23, 0x56, 0x8c, 0xef, 0xcb, 0xfa, 0x88, 0x6d, 0x5e, + 0x0a, 0x69, 0x85, 0xbf, 0xfb, 0x8c, 0xb5, 0xdd, 0x2b, 0x8c, 0xd6, 0x94, 0x34, 0x63, 0x95, 0xe0, + 0x1f, 0x9f, 0xb1, 0x90, 0x80, 0x56, 0x83, 0x19, 0xd7, 0x32, 0x7a, 0xee, 0x9e, 0xed, 0xb9, 0xe7, + 0xa6, 0xfb, 0x5c, 0x58, 0xe3, 0xa9, 0x35, 0xd9, 0x3f, 0x7a, 0xf4, 0xb7, 0xf6, 0x0c, 0x38, 0x73, + 0xd0, 0xeb, 0x18, 0x1e, 0xae, 0x3e, 0x6a, 0xba, 0x9e, 0x69, 0xed, 0x06, 0xf1, 0x83, 0xe9, 0x40, + 0x30, 0xf8, 0xa3, 0xb6, 0xc8, 0x0e, 0xb3, 0x01, 0x69, 0x9b, 0xa8, 0x7f, 0x1f, 0x95, 0x16, 0xcb, + 0x9d, 0x61, 0x7b, 0x36, 0xe4, 0xfd, 0x4f, 0x64, 0xe0, 0x58, 0x18, 0xbc, 0x46, 0xdb, 0xaf, 0x3b, + 0xa4, 0x01, 0xfb, 0x3f, 0xf5, 0x8d, 0x3d, 0x73, 0x87, 0xc6, 0x9e, 0x5b, 0x60, 0xd6, 0x74, 0x37, + 0xcc, 0x5d, 0x6a, 0xf8, 0xb2, 0xb1, 0x81, 0x4f, 0xa2, 0x0b, 0x05, 0x75, 0x7c, 0x95, 0xde, 0x8e, + 0x72, 0x32, 0x58, 0x28, 0x08, 0x52, 0xd0, 0x6d, 0x30, 0xc7, 0x37, 0x32, 0x7a, 0x45, 0xad, 0x19, + 0x99, 0xcd, 0xec, 0x0d, 0xdd, 0x0a, 0x0b, 0xa2, 0x4e, 0x73, 0xd6, 0x81, 0x1a, 0x74, 0x85, 0xe8, + 0x09, 0x70, 0xb2, 0xaf, 0x61, 0x05, 0xe1, 0x60, 0x72, 0x51, 0x38, 0x98, 0x5b, 0x00, 0x22, 0x2d, + 0x1e, 0x48, 0xe6, 0xf1, 0x30, 0x13, 0xea, 0xe5, 0xc0, 0x0c, 0x5f, 0xc8, 0xc1, 0x74, 0xa0, 0x6c, + 0x83, 0x32, 0xf8, 0x23, 0x93, 0xc5, 0xed, 0xfd, 0x04, 0x23, 0x13, 0x9f, 0xe6, 0x9b, 0x00, 0x91, + 0xc7, 0x75, 0xcb, 0xf4, 0xba, 0xc1, 0xa9, 0xc5, 0xfe, 0x64, 0x6d, 0x13, 0xc0, 0x24, 0x18, 0xb5, + 0xa2, 0x63, 0x8c, 0x4f, 0x4d, 0xd1, 0x1e, 0xa8, 0x3e, 0x70, 0x34, 0xce, 0x7f, 0x03, 0x3b, 0x63, + 0x38, 0x03, 0x05, 0x1a, 0x44, 0xff, 0x84, 0xb6, 0x00, 0x50, 0x7d, 0xde, 0x66, 0x55, 0xaf, 0x55, + 0xeb, 0x95, 0x6a, 0x29, 0x87, 0x7e, 0x42, 0x81, 0x99, 0xb0, 0x11, 0x0c, 0xac, 0x64, 0x95, 0xa9, + 0xd6, 0xd0, 0x5b, 0x40, 0x0f, 0x37, 0x2a, 0x5e, 0xc9, 0x9e, 0x05, 0xd7, 0x1f, 0xb8, 0x78, 0xc5, + 0x74, 0x5c, 0x4f, 0xb7, 0xaf, 0xae, 0xd8, 0x4e, 0x34, 0xb0, 0xd2, 0xe0, 0xb5, 0x71, 0x9f, 0x7d, + 0x63, 0xb0, 0x83, 0xc9, 0x79, 0x36, 0xec, 0xb0, 0x45, 0xfd, 0x28, 0xc1, 0xa7, 0xeb, 0x39, 0x86, + 0xe5, 0xf6, 0x6c, 0x17, 0xeb, 0xf6, 0x55, 0xb7, 0x6c, 0x75, 0x2a, 0x76, 0xf7, 0x60, 0xdf, 0x72, + 0x99, 0x39, 0x17, 0xf7, 0xd9, 0x97, 0x0e, 0xb9, 0xe3, 0x77, 0x01, 0xa0, 0xd2, 0x58, 0x5f, 0xaf, + 0x56, 0x5a, 0xb5, 0x46, 0xbd, 0x74, 0xc2, 0x97, 0x56, 0xab, 0xbc, 0xb4, 0xee, 0x4b, 0xe7, 0xdb, + 0x60, 0x3a, 0x68, 0xd3, 0x2c, 0x82, 0x4d, 0x2e, 0x88, 0x60, 0xa3, 0x95, 0x61, 0x3a, 0x68, 0xe5, + 0x6c, 0x44, 0x78, 0x62, 0xff, 0x89, 0xe5, 0x7d, 0xc3, 0xf1, 0x88, 0x81, 0x12, 0x10, 0x59, 0x32, + 0x5c, 0xac, 0x87, 0xbf, 0x9d, 0x7f, 0x0a, 0xe3, 0x40, 0x83, 0x85, 0xf2, 0xfa, 0xfa, 0x76, 0x43, + 0xdf, 0xae, 0x37, 0x5a, 0x6b, 0xb5, 0xfa, 0x2a, 0x1d, 0x21, 0x6b, 0xab, 0xf5, 0x86, 0x5e, 0xa5, + 0x03, 0x64, 0xb3, 0x94, 0xa3, 0x77, 0x4c, 0x2f, 0x4d, 0x43, 0xb1, 0x47, 0xa4, 0x8b, 0x3e, 0xab, + 0xa6, 0x0c, 0x55, 0x10, 0xe2, 0x14, 0x73, 0x0b, 0xae, 0x70, 0x5c, 0x40, 0x19, 0x70, 0x9c, 0xf7, + 0x3c, 0xcc, 0x51, 0x33, 0xdc, 0x25, 0x3b, 0x2f, 0x04, 0x39, 0x55, 0x17, 0xd2, 0xd0, 0x87, 0x95, + 0x14, 0xf1, 0x0b, 0x06, 0x72, 0x94, 0xce, 0xb8, 0xf8, 0x83, 0xdc, 0x68, 0x57, 0x4e, 0xd4, 0xea, + 0xad, 0xaa, 0x5e, 0x2f, 0xaf, 0xb3, 0x2c, 0xaa, 0x76, 0x0e, 0x4e, 0xd7, 0x1b, 0x2c, 0x5c, 0x63, + 0x73, 0xbb, 0xd5, 0xd8, 0xae, 0x6d, 0x6c, 0x36, 0xf4, 0x56, 0xa9, 0xa0, 0x9d, 0x05, 0x8d, 0x3e, + 0x6f, 0xd7, 0x9a, 0xdb, 0x95, 0x72, 0xbd, 0x52, 0x5d, 0xaf, 0x2e, 0x97, 0x8a, 0xda, 0x93, 0xe0, + 0x09, 0xf4, 0x0a, 0xa3, 0xc6, 0xca, 0xb6, 0xde, 0xb8, 0xd8, 0xf4, 0x11, 0xd4, 0xab, 0xeb, 0x65, + 0x5f, 0x91, 0xb8, 0xbb, 0xa6, 0xa7, 0xb4, 0xeb, 0xe0, 0x24, 0xb9, 0x88, 0x7e, 0xbd, 0x51, 0x5e, + 0x66, 0xe5, 0x4d, 0x6b, 0x37, 0xc1, 0xb9, 0x5a, 0xbd, 0xb9, 0xb5, 0xb2, 0x52, 0xab, 0xd4, 0xaa, + 0xf5, 0xd6, 0xf6, 0x66, 0x55, 0xdf, 0xa8, 0x35, 0x9b, 0xfe, 0xbf, 0xa5, 0x19, 0x72, 0x93, 0x2f, + 0xed, 0x33, 0xd1, 0x7b, 0x55, 0x98, 0xbf, 0x60, 0x74, 0x4d, 0x7f, 0xa0, 0x20, 0x57, 0x7c, 0xf7, + 0x9d, 0xf4, 0xf1, 0xc8, 0x55, 0xe0, 0xec, 0xac, 0x00, 0x79, 0x41, 0xdf, 0xad, 0xa6, 0x3c, 0xe9, + 0xc3, 0x80, 0xa0, 0x25, 0x2e, 0x0a, 0xa5, 0xc5, 0xcc, 0x4b, 0x5f, 0xa7, 0xa4, 0x38, 0xe9, 0x23, + 0x4f, 0x3e, 0x1d, 0xf8, 0x3f, 0x39, 0x2e, 0xf0, 0x4b, 0x30, 0xb7, 0x55, 0x2f, 0x6f, 0xb5, 0xd6, + 0x1a, 0x7a, 0xed, 0x5b, 0x49, 0xa4, 0xf9, 0x79, 0x98, 0x59, 0x69, 0xe8, 0x4b, 0xb5, 0xe5, 0xe5, + 0x6a, 0xbd, 0x54, 0xd0, 0xae, 0x87, 0xeb, 0x9a, 0x55, 0xfd, 0x42, 0xad, 0x52, 0xdd, 0xde, 0xaa, + 0x97, 0x2f, 0x94, 0x6b, 0xeb, 0xa4, 0x8f, 0x28, 0x26, 0x5c, 0x4f, 0x3e, 0x85, 0xbe, 0x33, 0x0f, + 0x40, 0xab, 0x4e, 0x2e, 0x5a, 0xe2, 0x2e, 0xb1, 0xfe, 0xa3, 0xb4, 0x93, 0x86, 0x88, 0x4c, 0x4c, + 0xfb, 0xad, 0xc1, 0xb4, 0xc3, 0x3e, 0xb0, 0x95, 0xaf, 0x61, 0x74, 0xe8, 0x63, 0x40, 0x4d, 0x0f, + 0x7f, 0x47, 0xef, 0x4b, 0x33, 0x47, 0x88, 0x65, 0x2c, 0x1d, 0x92, 0x2b, 0xe3, 0x01, 0x12, 0xbd, + 0x2c, 0x07, 0x0b, 0x62, 0xc5, 0xfc, 0x4a, 0x10, 0x63, 0x4a, 0xae, 0x12, 0xe2, 0xcf, 0x9c, 0x91, + 0x75, 0xfe, 0xe9, 0x6c, 0x38, 0x85, 0xa0, 0x65, 0xd2, 0x43, 0xfb, 0x81, 0xc5, 0x52, 0xca, 0xf9, + 0xcc, 0xfb, 0x46, 0x47, 0x49, 0xd1, 0xa6, 0x40, 0x6d, 0x3d, 0xea, 0x95, 0x54, 0xf4, 0x05, 0x15, + 0xe6, 0x85, 0x5b, 0xb2, 0xd1, 0xeb, 0x72, 0x32, 0x37, 0xd8, 0x72, 0xf7, 0x6f, 0xe7, 0x8e, 0x7a, + 0xff, 0xf6, 0xf9, 0xbb, 0x60, 0x8a, 0xa5, 0x11, 0xf9, 0x36, 0xea, 0xbe, 0x29, 0x70, 0x12, 0x66, + 0x57, 0xab, 0xad, 0xed, 0x66, 0xab, 0xac, 0xb7, 0xaa, 0xcb, 0xa5, 0x9c, 0x3f, 0xf0, 0x55, 0x37, + 0x36, 0x5b, 0x0f, 0x97, 0x94, 0xf4, 0xce, 0x93, 0xfd, 0x8c, 0x4c, 0xd8, 0x79, 0x32, 0xa9, 0xf8, + 0xec, 0xe7, 0xaa, 0x9f, 0x54, 0xa1, 0x44, 0x39, 0xa8, 0x3e, 0xda, 0xc3, 0x8e, 0x89, 0xad, 0x36, + 0x46, 0x97, 0x65, 0x82, 0xb9, 0x1e, 0x0a, 0x63, 0x48, 0xfa, 0x73, 0xce, 0x4a, 0xa4, 0x2f, 0x7d, + 0x06, 0x76, 0xfe, 0x90, 0x81, 0xfd, 0x89, 0xb4, 0xde, 0x93, 0xfd, 0xec, 0x8e, 0x05, 0xb2, 0x8f, + 0xa5, 0xf1, 0x9e, 0x1c, 0xc2, 0xc1, 0x44, 0x62, 0x34, 0xc7, 0x8c, 0xbf, 0x25, 0x15, 0xbd, 0x54, + 0x85, 0x93, 0xcb, 0x86, 0x87, 0x97, 0xae, 0xb5, 0x82, 0x5b, 0x2c, 0x63, 0x6e, 0x9e, 0xce, 0x1d, + 0xba, 0x79, 0x3a, 0xba, 0x08, 0x53, 0xe9, 0xbb, 0x08, 0x13, 0xbd, 0x2b, 0xed, 0x79, 0xcb, 0x3e, + 0x1e, 0xc6, 0x16, 0x48, 0x39, 0xdd, 0x39, 0xca, 0x64, 0x2e, 0xb2, 0x6f, 0x60, 0x6f, 0x9d, 0x81, + 0x12, 0x65, 0x85, 0x73, 0x10, 0xfc, 0x61, 0x76, 0x59, 0xfb, 0x76, 0x8a, 0x78, 0x8c, 0x41, 0x84, + 0x0b, 0x45, 0x8c, 0x70, 0x21, 0xac, 0x37, 0xab, 0xfd, 0x4e, 0x1d, 0x69, 0x3b, 0x43, 0xce, 0x1b, + 0x30, 0x3e, 0x04, 0x6e, 0x76, 0x9d, 0x61, 0x62, 0xf1, 0x93, 0xb9, 0x50, 0x98, 0xdd, 0xe1, 0x59, + 0x95, 0x45, 0x26, 0xf9, 0xde, 0xf4, 0xb4, 0xae, 0xe1, 0x82, 0x37, 0x66, 0xc2, 0x65, 0xe2, 0xd9, + 0xb9, 0x86, 0x0f, 0xe3, 0x20, 0x7b, 0x14, 0xbe, 0xa6, 0x40, 0xbe, 0x69, 0x3b, 0xde, 0xb8, 0x30, + 0x48, 0xbb, 0x9d, 0xcd, 0x49, 0xa0, 0x19, 0x3f, 0xe7, 0xcc, 0x6e, 0x3b, 0x3b, 0xb9, 0xfc, 0x09, + 0x84, 0xb4, 0x3c, 0x09, 0x0b, 0x94, 0x93, 0xf0, 0x3e, 0x98, 0x7f, 0x55, 0x68, 0x7f, 0xf5, 0x90, + 0x2c, 0x22, 0x64, 0xe3, 0x23, 0xdc, 0x4e, 0x0e, 0x40, 0x11, 0xd2, 0xd0, 0xcf, 0xf2, 0xb8, 0x2c, + 0x8b, 0xb8, 0x0c, 0x9a, 0x71, 0x87, 0x57, 0xaa, 0x8c, 0xab, 0x67, 0x4a, 0x13, 0x1d, 0x33, 0xa1, + 0xf0, 0xec, 0x11, 0x79, 0x91, 0x0a, 0x45, 0xe6, 0xce, 0x37, 0x56, 0x04, 0xd2, 0xb6, 0x8c, 0x50, + 0x08, 0x72, 0x6e, 0x7f, 0xea, 0xb8, 0x5b, 0x46, 0x72, 0xf9, 0xd9, 0xe3, 0xf0, 0x6f, 0xcc, 0x4f, + 0xb5, 0x7c, 0xc5, 0x30, 0xbb, 0xc6, 0xa5, 0x6e, 0x8a, 0xa8, 0xd4, 0x1f, 0x4e, 0x79, 0x32, 0x2f, + 0xac, 0xaa, 0x50, 0x5e, 0x8c, 0xc4, 0xbf, 0x09, 0x66, 0x1c, 0x61, 0xaf, 0xcf, 0xb7, 0xa2, 0xfa, + 0x7c, 0x84, 0xd9, 0x77, 0x3d, 0xca, 0x99, 0xea, 0x18, 0x9e, 0x14, 0x3f, 0x13, 0x39, 0x36, 0x34, + 0x5b, 0xee, 0x74, 0x56, 0xb0, 0xe1, 0x1d, 0x38, 0xb8, 0x93, 0x6a, 0x88, 0x70, 0xfa, 0xb6, 0x43, + 0x39, 0x49, 0x08, 0x71, 0x21, 0xd7, 0x45, 0x74, 0x9e, 0x39, 0xa4, 0x37, 0x08, 0x78, 0x19, 0x4b, + 0x97, 0xf4, 0x8b, 0x21, 0x24, 0x0d, 0x01, 0x92, 0x67, 0x8f, 0xc6, 0x44, 0xf6, 0x80, 0xfc, 0xa8, + 0x0a, 0x0b, 0xd4, 0x4e, 0x18, 0x37, 0x26, 0xbf, 0x92, 0xd2, 0xfd, 0x87, 0xbb, 0x71, 0x8b, 0x67, + 0x67, 0x2c, 0xb0, 0xa4, 0x71, 0x16, 0x92, 0xe3, 0x23, 0x7b, 0x64, 0x5e, 0x7c, 0x0a, 0x80, 0x73, + 0xe9, 0xfc, 0x70, 0x31, 0x8a, 0xd1, 0x88, 0xde, 0xce, 0xe6, 0x1f, 0x4d, 0x21, 0x60, 0x38, 0xe7, + 0xae, 0x19, 0x6e, 0x48, 0x89, 0x89, 0x52, 0xa3, 0xca, 0x1f, 0xa4, 0xb4, 0x79, 0x99, 0x43, 0xe5, + 0xd0, 0xc1, 0x7d, 0xc4, 0x5e, 0xee, 0x23, 0x29, 0x8c, 0xdf, 0x61, 0xac, 0xa4, 0x43, 0x6d, 0x7d, + 0x84, 0x99, 0xfd, 0x39, 0x38, 0xad, 0x57, 0xcb, 0xcb, 0x8d, 0xfa, 0xfa, 0xc3, 0xfc, 0xf5, 0x4b, + 0x25, 0x95, 0x9f, 0x9c, 0x64, 0x02, 0xdb, 0x1b, 0x52, 0xf6, 0x81, 0xa2, 0xac, 0x92, 0x66, 0x2b, + 0xdc, 0xe2, 0xca, 0xf0, 0x5e, 0x4d, 0x82, 0xec, 0x71, 0xa2, 0xf0, 0x0f, 0x45, 0x98, 0xd5, 0x71, + 0xdb, 0xde, 0xdf, 0xc7, 0x56, 0x07, 0x77, 0xd0, 0x1b, 0x54, 0x98, 0x0b, 0xf7, 0xfb, 0x9a, 0xd8, + 0x43, 0xff, 0x29, 0xc2, 0xe6, 0x3c, 0xcc, 0xf9, 0x95, 0x6b, 0x88, 0x41, 0xe0, 0x85, 0x34, 0xed, + 0x4e, 0x38, 0x15, 0xa0, 0xd0, 0xe8, 0x9b, 0xc2, 0x1c, 0xfe, 0x80, 0xde, 0xcd, 0x63, 0xb4, 0x25, + 0x62, 0xf4, 0x40, 0xbc, 0x30, 0x43, 0x76, 0x17, 0x79, 0x56, 0x63, 0xc0, 0xfa, 0xbd, 0x10, 0xac, + 0xe7, 0x09, 0x60, 0x2d, 0x1f, 0x91, 0xfe, 0x71, 0xa2, 0xf6, 0x4b, 0x2a, 0x9c, 0x0e, 0x3a, 0xe2, + 0xc9, 0xa1, 0xf5, 0x11, 0x1e, 0xad, 0x6f, 0x13, 0xd1, 0x5a, 0x95, 0x91, 0xe6, 0x20, 0x96, 0x63, + 0x50, 0xfb, 0xe3, 0x10, 0xb5, 0x6f, 0x17, 0x50, 0x5b, 0x1f, 0x53, 0x39, 0xc7, 0x89, 0xde, 0xaf, + 0xa8, 0x70, 0xce, 0x37, 0x3b, 0x2b, 0xb6, 0xb5, 0xd3, 0x35, 0xdb, 0x9e, 0x69, 0xed, 0x46, 0x2e, + 0x6c, 0xab, 0x32, 0x2b, 0x9b, 0xfd, 0xd8, 0x2a, 0x87, 0xb1, 0x15, 0x63, 0x67, 0xc8, 0xb6, 0xad, + 0x38, 0xb6, 0x62, 0x86, 0x30, 0xce, 0xf1, 0x3a, 0xd2, 0x1c, 0x3e, 0x29, 0x7d, 0xeb, 0x93, 0xe4, + 0xe0, 0x38, 0xf1, 0x7b, 0x11, 0x70, 0xa6, 0xc7, 0xf7, 0xaa, 0x50, 0x22, 0xfe, 0x92, 0xa4, 0x67, + 0x67, 0x77, 0x93, 0x36, 0x44, 0x2f, 0xf9, 0x5e, 0x20, 0xa0, 0xc0, 0x4b, 0x3e, 0x48, 0xd0, 0x6e, + 0x83, 0x85, 0xf6, 0x1e, 0x6e, 0x5f, 0xae, 0x59, 0x81, 0x2f, 0x12, 0x75, 0x5c, 0xe9, 0x4b, 0x15, + 0x07, 0xb3, 0x87, 0x44, 0x30, 0xc5, 0x85, 0x47, 0x61, 0x62, 0xc3, 0x33, 0x15, 0xd3, 0xd0, 0x7e, + 0x33, 0x04, 0xa8, 0x2e, 0x00, 0x74, 0xef, 0x48, 0x54, 0xd3, 0xc1, 0x52, 0x1f, 0x01, 0x16, 0x04, + 0x67, 0x1b, 0x9b, 0xad, 0x5a, 0xa3, 0xbe, 0xbd, 0xd5, 0xac, 0x2e, 0x6f, 0x2f, 0x05, 0xe0, 0x34, + 0x4b, 0x2a, 0xfa, 0x92, 0x02, 0x53, 0x94, 0x2d, 0x17, 0x3d, 0x39, 0x82, 0x60, 0xe8, 0xf1, 0x00, + 0xf4, 0x56, 0xe9, 0x60, 0x3f, 0xa1, 0x20, 0x58, 0x39, 0x31, 0x0d, 0xe3, 0x59, 0x30, 0x45, 0x41, + 0x0e, 0x76, 0x01, 0x6e, 0x8e, 0xb1, 0xec, 0x18, 0x19, 0x3d, 0xc8, 0x2e, 0x19, 0xf8, 0x67, 0x08, + 0x1b, 0xd9, 0x5b, 0xe3, 0x2f, 0xc8, 0xd3, 0xa5, 0x83, 0x8b, 0xa6, 0xb7, 0x47, 0x4e, 0x0f, 0xa0, + 0x6f, 0x91, 0xe9, 0xb8, 0xee, 0x84, 0xc2, 0x15, 0x3f, 0xf7, 0x90, 0x93, 0x18, 0x34, 0x13, 0xfa, + 0x49, 0xe9, 0x38, 0xd3, 0x82, 0x7e, 0x86, 0x3c, 0xc5, 0x80, 0xb3, 0x01, 0xf9, 0xae, 0xe9, 0x7a, + 0xcc, 0xe6, 0xbe, 0x27, 0x15, 0xa1, 0xe0, 0xa1, 0xe6, 0xe1, 0x7d, 0x9d, 0x90, 0x41, 0x0f, 0xfa, + 0x16, 0x53, 0x94, 0x2a, 0x71, 0x1a, 0xe5, 0x1c, 0x4c, 0xb1, 0x53, 0xd2, 0x6c, 0x5b, 0x2a, 0x78, + 0x95, 0xdc, 0x0a, 0x92, 0xaa, 0x6d, 0xf6, 0x3a, 0xf0, 0xff, 0x9e, 0x84, 0xa9, 0x35, 0xd3, 0xf5, + 0x6c, 0xe7, 0x1a, 0x7a, 0x63, 0x0e, 0xa6, 0x2e, 0x60, 0xc7, 0x35, 0x6d, 0xeb, 0x90, 0x7b, 0xd6, + 0x2d, 0x30, 0xdb, 0x73, 0xf0, 0x15, 0xd3, 0x3e, 0x70, 0xb9, 0x51, 0x82, 0x4b, 0xd2, 0x10, 0x4c, + 0x1b, 0x07, 0xde, 0x9e, 0xed, 0x44, 0xc1, 0x95, 0x82, 0x77, 0xed, 0x66, 0x00, 0xfa, 0x5c, 0x37, + 0xf6, 0x71, 0x70, 0x7f, 0x7a, 0x94, 0xa2, 0x69, 0x90, 0xf7, 0xcc, 0x7d, 0xcc, 0xa2, 0xad, 0x93, + 0x67, 0x5f, 0xc0, 0x24, 0x72, 0x29, 0x8b, 0x10, 0xab, 0xea, 0xc1, 0x2b, 0xfa, 0xb4, 0x0a, 0xb3, + 0xab, 0xd8, 0x63, 0xac, 0xba, 0xe8, 0xe5, 0x39, 0xa9, 0x0b, 0x8e, 0xfc, 0x79, 0x49, 0xd7, 0x70, + 0x83, 0xff, 0xc2, 0x21, 0x57, 0x4c, 0x8c, 0x42, 0xbf, 0xab, 0xfc, 0xbd, 0x0f, 0x24, 0x0e, 0xa8, + 0x57, 0xa3, 0x0e, 0xfc, 0x2c, 0x33, 0xdb, 0x38, 0x3e, 0xfc, 0x41, 0xb4, 0x89, 0x13, 0x63, 0x68, + 0x30, 0xd9, 0x2f, 0x72, 0xf5, 0x89, 0xed, 0x8e, 0xa6, 0xaf, 0xb0, 0x1c, 0x87, 0xae, 0xf4, 0xe0, + 0x29, 0x31, 0x32, 0x7a, 0x98, 0x5b, 0x32, 0xfa, 0xc6, 0x70, 0x4e, 0x26, 0x70, 0x89, 0xab, 0x0a, + 0xb3, 0xcd, 0x3d, 0xfb, 0x6a, 0x20, 0xc7, 0x6f, 0x93, 0x03, 0xf6, 0x26, 0x98, 0xb9, 0xd2, 0x07, + 0x6a, 0x94, 0xc0, 0xdf, 0x1b, 0xa7, 0x8a, 0xf7, 0xc6, 0xbd, 0x44, 0x4d, 0x0b, 0x13, 0xc7, 0x5c, + 0x0c, 0x4c, 0xe2, 0x55, 0x6f, 0x4a, 0x8a, 0xab, 0xde, 0xb4, 0x67, 0xc2, 0x14, 0xe3, 0x9a, 0x2d, + 0x53, 0x27, 0x03, 0x1c, 0x64, 0xe6, 0x2b, 0x98, 0x17, 0x2b, 0x98, 0x0e, 0xf9, 0xf8, 0xca, 0x65, + 0x8f, 0xfc, 0xef, 0x28, 0x24, 0xf6, 0x52, 0x00, 0x7c, 0x65, 0x0c, 0xc0, 0xa3, 0xaf, 0xe6, 0x64, + 0x37, 0x73, 0x42, 0x09, 0x84, 0x1c, 0x1c, 0xe9, 0xf2, 0xb2, 0xa1, 0xe4, 0xb2, 0x97, 0xe7, 0x4f, + 0xe4, 0x61, 0x6e, 0xd9, 0xdc, 0xd9, 0x09, 0x3b, 0xc9, 0x57, 0x48, 0x76, 0x92, 0xf1, 0x2e, 0x54, + 0xbe, 0x9d, 0x7b, 0xe0, 0x38, 0xd8, 0x0a, 0x2a, 0xc5, 0x9a, 0x53, 0x5f, 0xaa, 0x76, 0x3b, 0x9c, + 0x0c, 0xc6, 0x05, 0xbe, 0xa3, 0x9c, 0xd1, 0xfb, 0x93, 0xd1, 0x97, 0xa5, 0x3d, 0x01, 0x02, 0x89, + 0xf2, 0x55, 0x8a, 0x69, 0x80, 0xf7, 0xc1, 0xfc, 0x1e, 0xcd, 0x4d, 0x96, 0x4b, 0x83, 0xce, 0xf2, + 0x6c, 0x5f, 0x6c, 0xfb, 0x0d, 0xec, 0xba, 0xc6, 0x2e, 0xd6, 0xc5, 0xcc, 0x7d, 0xcd, 0x57, 0x4d, + 0x73, 0x53, 0xa3, 0x9c, 0x53, 0x81, 0x44, 0x4d, 0x26, 0xa0, 0x1d, 0xe7, 0x21, 0xbf, 0x62, 0x76, + 0x31, 0xfa, 0x3e, 0x05, 0x66, 0xfc, 0x59, 0xb7, 0xd5, 0xf6, 0xdf, 0x38, 0x87, 0xca, 0x7f, 0xc8, + 0xc9, 0xde, 0x50, 0xec, 0xd3, 0x59, 0x0c, 0x69, 0xc4, 0xb4, 0x1b, 0xb9, 0x9b, 0x88, 0x13, 0x49, + 0x4d, 0xe0, 0x3e, 0x29, 0x7f, 0xea, 0xb1, 0xb3, 0xd3, 0xb5, 0x0d, 0x61, 0xc3, 0xa0, 0xdf, 0x14, + 0x8a, 0x0e, 0xf8, 0xd5, 0x6d, 0x6f, 0xd3, 0xb4, 0xac, 0x30, 0x66, 0xc6, 0xa1, 0x74, 0xd1, 0xd7, + 0x25, 0x31, 0xec, 0x18, 0xa9, 0x3b, 0x2b, 0x3d, 0x46, 0xb3, 0x6f, 0x83, 0x85, 0x4b, 0xd7, 0x3c, + 0xec, 0xb2, 0x5c, 0xac, 0xd8, 0xbc, 0xde, 0x97, 0xca, 0x5d, 0x1a, 0x90, 0x14, 0x9e, 0x2c, 0xa1, + 0xc0, 0x74, 0xa2, 0x5e, 0x1b, 0x61, 0x06, 0x78, 0x1a, 0x4a, 0xf5, 0xc6, 0x72, 0x95, 0xf8, 0xf7, + 0x06, 0x1e, 0x93, 0xbb, 0xe8, 0x87, 0x54, 0x98, 0x23, 0x0e, 0x78, 0x01, 0x0a, 0x4f, 0x90, 0x98, + 0x8f, 0xa0, 0xcf, 0x49, 0xfb, 0xfe, 0x92, 0x2a, 0xf3, 0x05, 0xc4, 0x0b, 0x7a, 0xc7, 0xec, 0xf6, + 0x0b, 0xba, 0xa0, 0xf7, 0xa5, 0x0e, 0x00, 0x44, 0x1d, 0x08, 0xc8, 0x2f, 0x49, 0x39, 0x00, 0x0f, + 0xe3, 0xee, 0xb8, 0x50, 0xf9, 0x65, 0x15, 0x66, 0xfd, 0x49, 0x4a, 0x00, 0x4a, 0x43, 0x00, 0xc5, + 0xb6, 0xba, 0xd7, 0xa2, 0x65, 0x91, 0xe0, 0x35, 0x55, 0x23, 0xf9, 0x13, 0xe9, 0x99, 0x3b, 0x11, + 0x11, 0xc7, 0xcb, 0x84, 0xf0, 0x7b, 0xbf, 0xd4, 0x7c, 0x7e, 0x08, 0x73, 0xc7, 0x05, 0xdf, 0x17, + 0x0b, 0x50, 0xdc, 0xea, 0x11, 0xe4, 0x7e, 0x52, 0x95, 0xb9, 0x80, 0xe3, 0xd0, 0xe1, 0x2f, 0xdf, + 0xcc, 0xea, 0xda, 0x6d, 0xa3, 0xbb, 0x19, 0x9d, 0xa2, 0x8d, 0x12, 0xb4, 0x7b, 0x99, 0x3f, 0x38, + 0x3d, 0x3d, 0x7e, 0x5b, 0xe2, 0xdd, 0x14, 0x44, 0x46, 0xdc, 0x41, 0xbb, 0x3b, 0xe1, 0x54, 0xc7, + 0x74, 0x8d, 0x4b, 0x5d, 0x5c, 0xb5, 0xda, 0xce, 0x35, 0x2a, 0x0e, 0x36, 0xad, 0x3a, 0xf4, 0x41, + 0xbb, 0x1f, 0x0a, 0xae, 0x77, 0xad, 0x4b, 0xe7, 0x89, 0xfc, 0xb9, 0xbc, 0xd8, 0xa2, 0x9a, 0x7e, + 0x76, 0x9d, 0xfe, 0xc5, 0xbb, 0x75, 0x4e, 0xc9, 0xb9, 0x75, 0x6a, 0x4f, 0x87, 0xa2, 0xed, 0x98, + 0xbb, 0x26, 0xbd, 0x6e, 0x6e, 0xe1, 0x50, 0x08, 0x56, 0x6a, 0x0a, 0x34, 0x48, 0x16, 0x9d, 0x65, + 0xd5, 0x9e, 0x09, 0x33, 0xe6, 0xbe, 0xb1, 0x8b, 0x1f, 0x32, 0x2d, 0x7a, 0x40, 0x7d, 0xe1, 0xee, + 0x73, 0x87, 0x8e, 0x1c, 0xb2, 0xef, 0x7a, 0x94, 0x15, 0xbd, 0x5f, 0x91, 0x8d, 0x13, 0x47, 0xea, + 0x46, 0x41, 0x1d, 0xe1, 0xee, 0x6a, 0x4e, 0x0e, 0xaa, 0xa4, 0x7b, 0xeb, 0x6b, 0xa5, 0x22, 0xb8, + 0xc5, 0xb3, 0x95, 0xfd, 0xe0, 0xfd, 0x87, 0x0a, 0x4c, 0x2f, 0xdb, 0x57, 0x2d, 0xa2, 0xe8, 0xf7, + 0xc8, 0xd9, 0xba, 0x03, 0x0e, 0x86, 0x8b, 0xb7, 0x20, 0x27, 0x9e, 0x02, 0x23, 0xb5, 0x0d, 0x8a, + 0x8c, 0x81, 0x21, 0xb1, 0xe5, 0x48, 0xde, 0x4d, 0x9b, 0x54, 0x4e, 0xf6, 0x72, 0xfd, 0x5d, 0x15, + 0xf2, 0xcb, 0x8e, 0xdd, 0x43, 0xbf, 0x98, 0x4b, 0xe1, 0xe6, 0xd5, 0x71, 0xec, 0x5e, 0x8b, 0x5c, + 0x2e, 0x19, 0xed, 0x6c, 0xf0, 0x69, 0xda, 0x3d, 0x30, 0xdd, 0xb3, 0x5d, 0xd3, 0x0b, 0xa6, 0x11, + 0x0b, 0x77, 0x3f, 0x6e, 0x60, 0x6b, 0xde, 0x64, 0x99, 0xf4, 0x30, 0xbb, 0xdf, 0x6b, 0x13, 0x11, + 0xfa, 0x72, 0xf1, 0xc5, 0x18, 0x5c, 0xb0, 0xd9, 0x97, 0x8a, 0x5e, 0xc9, 0x23, 0xf9, 0x6c, 0x11, + 0xc9, 0x27, 0x0e, 0x90, 0xb0, 0x63, 0xf7, 0xc6, 0xe2, 0x98, 0xf1, 0xea, 0x10, 0xd5, 0xe7, 0x08, + 0xa8, 0xde, 0x21, 0x55, 0x66, 0xf6, 0x88, 0xbe, 0x3f, 0x0f, 0x40, 0xcc, 0x8c, 0x2d, 0x7f, 0x02, + 0x24, 0x67, 0x63, 0x7d, 0x4f, 0x9e, 0x93, 0x65, 0x59, 0x94, 0xe5, 0x93, 0x63, 0xac, 0x18, 0x42, + 0x3e, 0x46, 0xa2, 0x65, 0x28, 0x1c, 0xf8, 0x9f, 0x99, 0x44, 0x25, 0x49, 0x90, 0x57, 0x9d, 0xfe, + 0x89, 0x7e, 0x27, 0x07, 0x05, 0x92, 0xa0, 0xdd, 0x0c, 0x40, 0x06, 0x76, 0x7a, 0x88, 0x32, 0x47, + 0x86, 0x70, 0x2e, 0x85, 0x68, 0xab, 0xd9, 0x61, 0x9f, 0xa9, 0xc9, 0x1c, 0x25, 0xf8, 0x7f, 0x93, + 0xe1, 0x9e, 0xd0, 0x62, 0x06, 0x00, 0x97, 0xe2, 0xff, 0x4d, 0xde, 0xd6, 0xf1, 0x0e, 0x8d, 0xfb, + 0x9f, 0xd7, 0xa3, 0x84, 0xf0, 0xef, 0xf5, 0xf0, 0xb6, 0xc8, 0xe0, 0x6f, 0x92, 0xe2, 0x4f, 0x86, + 0x89, 0x5a, 0x2e, 0x45, 0x45, 0x14, 0x49, 0xa6, 0xfe, 0x64, 0xf4, 0x86, 0x50, 0x6d, 0x96, 0x05, + 0xb5, 0x79, 0x6a, 0x0a, 0xf1, 0x66, 0xaf, 0x3c, 0x5f, 0x28, 0xc0, 0x4c, 0xdd, 0xee, 0x30, 0xdd, + 0xe1, 0x26, 0x8c, 0x1f, 0x2b, 0xa4, 0x9a, 0x30, 0x86, 0x34, 0x62, 0x14, 0xe4, 0xb9, 0xa2, 0x82, + 0xc8, 0x51, 0xe0, 0xf5, 0x43, 0x5b, 0x82, 0x22, 0xd1, 0xde, 0xc3, 0xd7, 0x10, 0x26, 0x91, 0x20, + 0xa2, 0xd5, 0xd9, 0x9f, 0xff, 0xe1, 0x74, 0xec, 0xbf, 0x40, 0x81, 0x54, 0x30, 0x61, 0x77, 0x47, + 0xac, 0xa8, 0x92, 0x5c, 0x51, 0x35, 0xb9, 0xa2, 0xf9, 0xfe, 0x8a, 0xa6, 0x59, 0x07, 0x88, 0xd3, + 0x90, 0xec, 0x75, 0xfc, 0x6f, 0xa7, 0x00, 0xea, 0xc6, 0x15, 0x73, 0x97, 0xee, 0x0e, 0x7f, 0x3a, + 0x98, 0xff, 0xb0, 0x7d, 0xdc, 0xff, 0xca, 0x0d, 0x84, 0xf7, 0xc0, 0x14, 0x1b, 0xf7, 0x58, 0x45, + 0x1e, 0x2f, 0x54, 0x24, 0xa2, 0x42, 0xcd, 0xd2, 0x47, 0x3d, 0x3d, 0xc8, 0x2f, 0xdc, 0x98, 0xae, + 0xf4, 0xdd, 0x98, 0x3e, 0x78, 0x0f, 0x22, 0xe6, 0x1e, 0x75, 0xf4, 0x1e, 0xe9, 0x53, 0x50, 0x1c, + 0x3f, 0x5c, 0x8d, 0x62, 0x9a, 0xe0, 0xd3, 0x61, 0xca, 0x0e, 0x37, 0xb4, 0xd5, 0xd8, 0x75, 0xb0, + 0x9a, 0xb5, 0x63, 0xeb, 0x41, 0x4e, 0xc9, 0xcd, 0x2f, 0x29, 0x3e, 0x26, 0x72, 0xd0, 0xf0, 0xec, + 0x6a, 0x10, 0x43, 0xd1, 0xaf, 0xc7, 0x45, 0xd3, 0xdb, 0x5b, 0x27, 0x91, 0x99, 0xbe, 0x5d, 0xce, + 0x82, 0xe4, 0xf0, 0x57, 0xd2, 0xe1, 0x2f, 0xc6, 0x39, 0x6a, 0x8a, 0xa8, 0xdd, 0x1f, 0x47, 0x65, + 0x30, 0xb7, 0x31, 0x00, 0xde, 0x0b, 0x45, 0xca, 0x28, 0xeb, 0x44, 0xcf, 0xc7, 0xe2, 0x17, 0x52, + 0xd2, 0xd9, 0x1f, 0xe8, 0xdd, 0x21, 0x8e, 0x17, 0x04, 0x1c, 0x97, 0x8e, 0xc4, 0x59, 0xe6, 0x90, + 0x9e, 0x7f, 0x1a, 0x4c, 0x31, 0x49, 0x6b, 0x0b, 0x7c, 0x2b, 0x2e, 0x9d, 0xd0, 0x00, 0x8a, 0x1b, + 0xf6, 0x15, 0xdc, 0xb2, 0x4b, 0x39, 0xff, 0xd9, 0xe7, 0xaf, 0x65, 0x97, 0x14, 0xf4, 0x9a, 0x69, + 0x98, 0x0e, 0x83, 0xd7, 0xfd, 0xa1, 0x02, 0xa5, 0x8a, 0x83, 0x0d, 0x0f, 0xaf, 0x38, 0xf6, 0x3e, + 0xad, 0x91, 0xbc, 0x47, 0xfd, 0x8f, 0x4a, 0xbb, 0x78, 0x84, 0x41, 0xe5, 0xfa, 0x0b, 0x8b, 0xc1, + 0x92, 0x2e, 0x42, 0x2a, 0xc1, 0x22, 0x24, 0x7a, 0x8b, 0x94, 0xcb, 0x87, 0x6c, 0x29, 0xd9, 0x37, + 0xb5, 0x4f, 0x28, 0x50, 0xa8, 0x74, 0x6d, 0x0b, 0xf3, 0xc7, 0x3e, 0x87, 0x9e, 0x2f, 0x1c, 0xbc, + 0x13, 0x81, 0x5e, 0xa0, 0xc8, 0xda, 0x1a, 0x91, 0x00, 0xfc, 0xb2, 0x25, 0x65, 0x2b, 0x37, 0x48, + 0x25, 0x92, 0xce, 0x5e, 0xa0, 0x5f, 0x52, 0x60, 0x86, 0xc6, 0x12, 0x2b, 0x77, 0xbb, 0xe8, 0x71, + 0x91, 0x50, 0x07, 0x04, 0x00, 0x44, 0xbf, 0x24, 0x7d, 0xac, 0x29, 0xac, 0x55, 0x48, 0x3b, 0x45, + 0x50, 0xb5, 0x74, 0xa7, 0x6c, 0xe4, 0xf6, 0xd2, 0x86, 0x32, 0x94, 0xbd, 0xa8, 0xff, 0x48, 0xf1, + 0x0d, 0x00, 0xeb, 0xf2, 0xa6, 0x83, 0xaf, 0x98, 0xf8, 0x2a, 0xba, 0x31, 0x12, 0xf6, 0xe1, 0x40, + 0x49, 0x6f, 0x92, 0x5e, 0xc4, 0xe1, 0x48, 0xc6, 0x6e, 0x65, 0xcd, 0x76, 0xa3, 0x4c, 0xac, 0x17, + 0xef, 0x8f, 0x5e, 0xc5, 0x91, 0xd1, 0xf9, 0xec, 0x92, 0x6b, 0x36, 0xf1, 0x5c, 0x64, 0x2f, 0xd8, + 0x0f, 0x4e, 0xc1, 0xf4, 0x96, 0xe5, 0xf6, 0xba, 0x86, 0xbb, 0x87, 0xfe, 0x55, 0x85, 0x22, 0xbd, + 0xfc, 0x12, 0x7d, 0x93, 0x10, 0x8f, 0xe5, 0x3b, 0x0e, 0xb0, 0x13, 0xb8, 0xe0, 0xd0, 0x97, 0xc8, + 0x3e, 0x52, 0x38, 0xfb, 0x08, 0xbd, 0x5f, 0x95, 0x9d, 0xa4, 0x06, 0x85, 0xb2, 0xdb, 0x36, 0xe3, + 0x43, 0x80, 0xf4, 0xcc, 0xb6, 0x77, 0xe0, 0x60, 0x77, 0x60, 0x08, 0x90, 0x58, 0x2a, 0x9b, 0xf4, + 0x2f, 0x3d, 0xfc, 0x1d, 0x19, 0x30, 0xc5, 0x12, 0x0f, 0x6d, 0x27, 0x1d, 0x8e, 0x59, 0x70, 0x16, + 0x8a, 0x86, 0xe3, 0x99, 0xae, 0xc7, 0x36, 0x58, 0xd9, 0x9b, 0xdf, 0x5d, 0xd2, 0xa7, 0x2d, 0xa7, + 0x1b, 0x44, 0x6e, 0x0a, 0x13, 0xd0, 0x2f, 0x4b, 0xcd, 0x1f, 0x93, 0x6b, 0x9e, 0x0e, 0xf2, 0x87, + 0x46, 0x58, 0xa3, 0xbe, 0x1e, 0xae, 0xd3, 0xcb, 0xad, 0xea, 0x36, 0x0d, 0xf4, 0x13, 0xc6, 0xf4, + 0xe9, 0xa0, 0x77, 0xa9, 0xdc, 0xfa, 0xdd, 0x35, 0x61, 0x8c, 0x60, 0x52, 0x8c, 0xc6, 0x88, 0x30, + 0x21, 0x61, 0xb7, 0x5a, 0x58, 0x84, 0x55, 0xe5, 0x17, 0x61, 0x7f, 0x41, 0x7a, 0x37, 0x29, 0x14, + 0xe5, 0x90, 0x35, 0xc0, 0xa4, 0xcb, 0xf1, 0x3e, 0x20, 0xb5, 0x33, 0x34, 0xac, 0xa4, 0x63, 0x84, + 0xed, 0x67, 0xa7, 0x60, 0x6a, 0xd5, 0xe8, 0x76, 0xb1, 0x73, 0xcd, 0x1f, 0x92, 0x4a, 0x01, 0x87, + 0x1b, 0x86, 0x65, 0xee, 0x60, 0xd7, 0x4b, 0xee, 0x2c, 0xdf, 0x23, 0x1d, 0x78, 0x9d, 0x95, 0xb1, + 0xd8, 0x4f, 0x3f, 0x46, 0xe6, 0x77, 0x41, 0xde, 0xb4, 0x76, 0x6c, 0xd6, 0x65, 0xf6, 0xaf, 0xda, + 0x07, 0x3f, 0x93, 0xa9, 0x0b, 0xc9, 0x28, 0x19, 0x7b, 0x5d, 0x92, 0x8b, 0xec, 0x7b, 0xce, 0xb7, + 0xe5, 0x61, 0x3e, 0x60, 0xa2, 0x66, 0x75, 0xf0, 0xa3, 0xfc, 0x52, 0xcc, 0x0f, 0xe5, 0x65, 0x8f, + 0xd0, 0xf6, 0xd7, 0x87, 0x90, 0x8a, 0x11, 0x69, 0x0b, 0xa0, 0x6d, 0x78, 0x78, 0xd7, 0x76, 0xcc, + 0xb0, 0x3f, 0x7c, 0x46, 0x1a, 0x6a, 0x15, 0xfa, 0xf7, 0x35, 0x9d, 0xa3, 0xa3, 0xdd, 0x0f, 0xb3, + 0x38, 0x8c, 0x59, 0x12, 0x2c, 0xd5, 0x24, 0xe2, 0xc5, 0xe7, 0x47, 0x7f, 0x24, 0x75, 0x52, 0x57, + 0xa6, 0x9a, 0xe9, 0x30, 0xdb, 0x1e, 0xad, 0x0d, 0x6d, 0xd5, 0x37, 0xca, 0x7a, 0x73, 0xad, 0xbc, + 0xbe, 0x5e, 0xab, 0xaf, 0x86, 0xc1, 0xb2, 0x34, 0x58, 0x58, 0x6e, 0x5c, 0xac, 0x73, 0xd1, 0xcc, + 0xf2, 0x68, 0x13, 0xa6, 0x03, 0x79, 0x0d, 0xf2, 0xc5, 0xe4, 0x65, 0xc6, 0x7c, 0x31, 0xb9, 0x24, + 0xdf, 0x38, 0x33, 0xdb, 0xa1, 0x83, 0x0e, 0x79, 0x46, 0xbf, 0x65, 0x40, 0x81, 0xac, 0xa9, 0xa3, + 0x77, 0x90, 0x6d, 0xc0, 0x5e, 0xd7, 0x68, 0x63, 0xb4, 0x9f, 0xc2, 0x1a, 0x0f, 0x6e, 0x02, 0x52, + 0x0e, 0xdd, 0x04, 0x44, 0x1e, 0x99, 0xd5, 0x77, 0x7a, 0xd0, 0x3a, 0xbe, 0x4e, 0xb3, 0x88, 0x87, + 0x5a, 0x13, 0x77, 0x57, 0xe8, 0xf2, 0x3f, 0x63, 0x33, 0x46, 0x25, 0xe3, 0x79, 0x4a, 0x67, 0x89, + 0xca, 0xed, 0xc3, 0x24, 0x71, 0x94, 0x7d, 0x8b, 0xff, 0x6c, 0x1e, 0x0a, 0xcd, 0x5e, 0xd7, 0xf4, + 0xd0, 0x8f, 0x2b, 0x63, 0xc1, 0x8c, 0xde, 0xde, 0xa4, 0x0e, 0xbd, 0xbd, 0x29, 0xda, 0x75, 0xcd, + 0x4b, 0xec, 0xba, 0xb6, 0xf0, 0xa3, 0x9e, 0xb8, 0xeb, 0x7a, 0x0f, 0x0b, 0x78, 0x49, 0xf7, 0x6c, + 0x9f, 0x38, 0x40, 0xa4, 0xa4, 0x5a, 0x03, 0x22, 0xa9, 0x9e, 0x7f, 0x1a, 0x0b, 0xe8, 0x08, 0x50, + 0x5c, 0x6a, 0xb4, 0x5a, 0x8d, 0x8d, 0xd2, 0x09, 0x12, 0x09, 0xac, 0xb1, 0x49, 0xc3, 0x6b, 0xd5, + 0xea, 0xf5, 0xaa, 0x5e, 0x52, 0x48, 0x88, 0xc9, 0x5a, 0x6b, 0xbd, 0x5a, 0x52, 0xc5, 0xab, 0x3c, + 0x12, 0xcd, 0x6f, 0xb1, 0xec, 0x2c, 0xd5, 0x4b, 0xce, 0x10, 0x8f, 0xe7, 0x27, 0x7b, 0xe5, 0xfa, + 0x11, 0x15, 0x0a, 0x1b, 0xd8, 0xd9, 0xc5, 0xe8, 0x3b, 0x52, 0x6c, 0xf2, 0xed, 0x98, 0x8e, 0x4b, + 0x03, 0x72, 0x46, 0x9b, 0x7c, 0x7c, 0x9a, 0x76, 0x2b, 0xcc, 0xbb, 0xb8, 0x6d, 0x5b, 0x9d, 0x20, + 0x13, 0xed, 0x8f, 0xc4, 0x44, 0xf4, 0xaa, 0x94, 0x90, 0x11, 0x46, 0xc7, 0xb2, 0x53, 0x97, 0x06, + 0x98, 0x41, 0xa5, 0x66, 0x0f, 0xcc, 0x97, 0x55, 0xff, 0xa7, 0xde, 0x35, 0xf4, 0x2a, 0xe9, 0xdd, + 0xd7, 0x3b, 0xa1, 0x78, 0x29, 0x88, 0xec, 0xae, 0xc6, 0xf6, 0xc7, 0x2c, 0x8f, 0xb6, 0x04, 0xa7, + 0x5c, 0xdc, 0xc5, 0x6d, 0x0f, 0x77, 0xfc, 0xa6, 0xab, 0x0f, 0xed, 0x14, 0x0e, 0x67, 0x47, 0xbf, + 0xc7, 0x03, 0x78, 0x9f, 0x08, 0xe0, 0x6d, 0x03, 0x44, 0xe9, 0x57, 0x28, 0xde, 0x56, 0xf6, 0xab, + 0xd1, 0xec, 0xda, 0xe1, 0xa2, 0x78, 0xf0, 0xee, 0x7f, 0xdb, 0xf3, 0xf6, 0xbb, 0xe4, 0x1b, 0x3b, + 0x60, 0x10, 0xbc, 0x6b, 0x8b, 0x30, 0x65, 0x58, 0xd7, 0xc8, 0xa7, 0x7c, 0x42, 0xad, 0x83, 0x4c, + 0xe8, 0x35, 0x21, 0xf2, 0x0f, 0x08, 0xc8, 0x3f, 0x59, 0x8e, 0xdd, 0xec, 0x81, 0xff, 0xee, 0x29, + 0x28, 0x6c, 0x1a, 0xae, 0x87, 0xd1, 0xff, 0xa3, 0xca, 0x22, 0x7f, 0x1b, 0x2c, 0xec, 0xd8, 0xed, + 0x03, 0x17, 0x77, 0xc4, 0x46, 0xd9, 0x97, 0x3a, 0x0e, 0xcc, 0xb5, 0x3b, 0xa0, 0x14, 0x24, 0x32, + 0xb2, 0xc1, 0x36, 0xfc, 0xa1, 0x74, 0x72, 0x31, 0x84, 0xbb, 0x69, 0x38, 0x5e, 0x63, 0x87, 0xa4, + 0x85, 0x17, 0x43, 0xf0, 0x89, 0x02, 0xf4, 0xc5, 0x04, 0xe8, 0xa7, 0xe2, 0xa1, 0x9f, 0x96, 0x80, + 0x5e, 0x2b, 0xc3, 0xf4, 0x8e, 0xd9, 0xc5, 0xe4, 0x87, 0x19, 0xf2, 0xc3, 0xa0, 0x31, 0x89, 0xc8, + 0x3e, 0x1c, 0x93, 0x56, 0xcc, 0x2e, 0xd6, 0xc3, 0xdf, 0x82, 0x89, 0x0c, 0x44, 0x13, 0x99, 0x75, + 0xea, 0x4f, 0xeb, 0x1b, 0x5e, 0x96, 0xb1, 0x8f, 0x83, 0xc5, 0x37, 0x8b, 0x1d, 0x6e, 0xe9, 0x18, + 0x9e, 0x41, 0xc0, 0x98, 0xd3, 0xc9, 0xb3, 0xe8, 0x17, 0xa2, 0xf6, 0xfb, 0x85, 0xbc, 0x58, 0x4d, + 0xd7, 0x23, 0x06, 0xcc, 0xc6, 0xb4, 0xa8, 0x4b, 0x01, 0x40, 0xd4, 0x52, 0x0c, 0xdf, 0x7d, 0x60, + 0xda, 0x86, 0x83, 0xbd, 0x4d, 0xde, 0x13, 0xa3, 0xa0, 0x8b, 0x89, 0xc4, 0x95, 0xcf, 0x6d, 0x1a, + 0xfb, 0xf4, 0x72, 0x88, 0x8a, 0xff, 0x8d, 0xb9, 0x68, 0x1d, 0x4a, 0x8f, 0xfa, 0xdf, 0xc2, 0xb8, + 0xfb, 0xdf, 0x41, 0x75, 0xcc, 0xbe, 0x19, 0xbe, 0x2e, 0x0f, 0x6a, 0xe5, 0xc0, 0x7b, 0x4c, 0x77, + 0xbf, 0x5f, 0x93, 0xf6, 0x73, 0x61, 0xfd, 0xd9, 0x81, 0x77, 0xbc, 0xbd, 0x6f, 0x4a, 0x2d, 0x91, + 0xf3, 0xa7, 0x89, 0xab, 0x5b, 0xf6, 0x3a, 0xf2, 0x8b, 0x6a, 0xe8, 0x60, 0xf9, 0xa2, 0xdc, 0xd1, + 0x4d, 0x73, 0x44, 0xfb, 0x27, 0xae, 0x67, 0x08, 0xdf, 0x83, 0x8e, 0x27, 0x2f, 0xc4, 0x37, 0x25, + 0xdb, 0xeb, 0x44, 0x94, 0x73, 0x3a, 0x7d, 0x41, 0x3f, 0x21, 0xed, 0x76, 0x4e, 0xc5, 0x96, 0xe8, + 0x4a, 0x98, 0xce, 0xa6, 0x92, 0xbb, 0x1b, 0x3b, 0xa1, 0xd8, 0xec, 0x01, 0xfb, 0x7b, 0xde, 0x55, + 0xb0, 0x7c, 0x64, 0xc4, 0xd0, 0x6b, 0xa5, 0xb7, 0xa3, 0x68, 0xb5, 0x87, 0xac, 0x17, 0xa6, 0x93, + 0xb7, 0xdc, 0x66, 0x55, 0x62, 0xc1, 0xd9, 0x4b, 0xfc, 0xef, 0x54, 0x28, 0xd2, 0x2d, 0x48, 0xf4, + 0x66, 0xe9, 0x26, 0xe2, 0xf7, 0x46, 0xa2, 0x0b, 0x61, 0xf8, 0x9e, 0x66, 0xcd, 0x41, 0x70, 0x35, + 0xcc, 0xa7, 0x72, 0x35, 0x14, 0xcf, 0x71, 0x4a, 0xb4, 0x23, 0x5a, 0xc7, 0x8c, 0xa7, 0x93, 0x69, + 0x5a, 0xd8, 0x40, 0x86, 0xb2, 0xc7, 0xfb, 0x7b, 0x0b, 0x30, 0x47, 0x8b, 0xbe, 0x68, 0x76, 0x76, + 0xb1, 0x87, 0xde, 0xa5, 0xfc, 0xfb, 0x41, 0x5d, 0xab, 0xc3, 0xdc, 0x55, 0xc2, 0x36, 0xbd, 0xc5, + 0x8a, 0xad, 0x5c, 0xdc, 0x91, 0xb8, 0xee, 0x41, 0xeb, 0x19, 0xdc, 0x7b, 0x25, 0xfc, 0xef, 0xcb, + 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x22, 0x31, 0xb2, 0xf8, 0x24, 0xed, 0x2c, 0x14, 0xaf, 0x98, + 0xf8, 0x6a, 0xad, 0xc3, 0xac, 0x5b, 0xf6, 0x86, 0x7e, 0x4d, 0x7a, 0xdf, 0x96, 0x87, 0x9b, 0xf1, + 0x92, 0xad, 0x16, 0xca, 0xed, 0xde, 0x0e, 0x65, 0x6b, 0x02, 0x67, 0x8a, 0xc5, 0xbb, 0xa7, 0x2b, + 0x29, 0x14, 0x31, 0xce, 0x70, 0x16, 0x43, 0x79, 0x24, 0x9e, 0x58, 0xa1, 0x02, 0x18, 0xf3, 0xb5, + 0xd4, 0x72, 0xf1, 0x25, 0x86, 0x14, 0x9d, 0xbd, 0xe4, 0xdf, 0xa0, 0xc2, 0x4c, 0x13, 0x7b, 0x2b, + 0x26, 0xee, 0x76, 0x5c, 0xe4, 0x1c, 0xdd, 0x34, 0xba, 0x0b, 0x8a, 0x3b, 0x84, 0xd8, 0xb0, 0x73, + 0x0b, 0x2c, 0x1b, 0x7a, 0x9d, 0x22, 0xbb, 0x23, 0xcc, 0x56, 0xdf, 0x02, 0x6e, 0xc7, 0x02, 0x93, + 0x9c, 0x47, 0x6f, 0x72, 0xc9, 0x13, 0x08, 0x06, 0xae, 0xc2, 0x1c, 0xbb, 0xac, 0xb6, 0xdc, 0x35, + 0x77, 0x2d, 0x74, 0x30, 0x86, 0x16, 0xa2, 0x3d, 0x15, 0x0a, 0x86, 0x4f, 0x8d, 0x6d, 0xbd, 0xa2, + 0x81, 0x9d, 0x27, 0x29, 0x4f, 0xa7, 0x19, 0x53, 0x84, 0xde, 0x8d, 0x14, 0x3b, 0xe0, 0x79, 0x82, + 0xa1, 0x77, 0x87, 0x16, 0x9e, 0x3d, 0x62, 0x9f, 0x57, 0xe1, 0x34, 0x63, 0xe0, 0x02, 0x76, 0x3c, + 0xb3, 0x6d, 0x74, 0x29, 0x72, 0x2f, 0xcb, 0x8d, 0x03, 0xba, 0x35, 0x98, 0xbf, 0xc2, 0x93, 0x65, + 0x10, 0x9e, 0x1f, 0x08, 0xa1, 0xc0, 0x80, 0x2e, 0xfe, 0x98, 0x22, 0x84, 0xa9, 0x20, 0x55, 0x81, + 0xe6, 0x04, 0x43, 0x98, 0x4a, 0x33, 0x91, 0x3d, 0xc4, 0xaf, 0x64, 0xa1, 0x79, 0xa2, 0xee, 0xf3, + 0xd3, 0xd2, 0xd8, 0x6e, 0xc1, 0x2c, 0xc1, 0x92, 0xfe, 0xc8, 0x96, 0x21, 0x12, 0x94, 0x38, 0xec, + 0x77, 0xd8, 0x25, 0x8b, 0xe1, 0xbf, 0x3a, 0x4f, 0x07, 0x5d, 0x04, 0x88, 0x3e, 0xf1, 0x9d, 0x74, + 0x2e, 0xae, 0x93, 0x56, 0xe4, 0x3a, 0xe9, 0x37, 0x49, 0x07, 0x4b, 0x19, 0xcc, 0xf6, 0xd1, 0xd5, + 0x43, 0x2e, 0x4c, 0xc6, 0xf0, 0xd2, 0xb3, 0xd7, 0x8b, 0xd7, 0x30, 0xbd, 0x58, 0x3e, 0xe8, 0x75, + 0xcd, 0xb6, 0x3f, 0x9f, 0xfa, 0xf0, 0x58, 0xe6, 0x53, 0x7c, 0x7f, 0xa0, 0xf6, 0xf5, 0x07, 0x47, + 0xb0, 0xa4, 0x6f, 0x87, 0x93, 0xb4, 0x88, 0x4a, 0xc8, 0x56, 0x81, 0x86, 0x82, 0xe8, 0x4b, 0x16, + 0xe3, 0x12, 0x4a, 0x2a, 0x41, 0x28, 0x84, 0x11, 0x96, 0x3e, 0xd3, 0x19, 0xbb, 0x69, 0x15, 0x24, + 0x8e, 0xb3, 0x09, 0xb8, 0x85, 0xe6, 0xa9, 0xb5, 0xbb, 0x45, 0xee, 0xc1, 0x44, 0x7f, 0x9c, 0x1f, + 0xc7, 0x88, 0xf0, 0x5c, 0xc8, 0x13, 0x17, 0x77, 0x35, 0x76, 0x49, 0x23, 0x2a, 0x32, 0xba, 0xa4, + 0x14, 0x3f, 0xea, 0xad, 0x9d, 0xd0, 0xc9, 0x9f, 0xda, 0x1d, 0x70, 0xf2, 0x92, 0xd1, 0xbe, 0xbc, + 0xeb, 0xd8, 0x07, 0xe4, 0xc6, 0x40, 0x9b, 0x5d, 0x3d, 0x48, 0xae, 0x70, 0x15, 0x3f, 0x68, 0x77, + 0x07, 0xa6, 0x43, 0x61, 0x98, 0xe9, 0xb0, 0x76, 0x82, 0x19, 0x0f, 0xda, 0xd3, 0xc2, 0x4e, 0xa7, + 0x98, 0xd8, 0xe9, 0xac, 0x9d, 0x08, 0xba, 0x1d, 0x6d, 0x19, 0xa6, 0x3b, 0xe6, 0x15, 0xb2, 0x55, + 0x4d, 0x66, 0x5d, 0xc3, 0x8e, 0x2e, 0x2f, 0x9b, 0x57, 0xe8, 0xc6, 0xf6, 0xda, 0x09, 0x3d, 0xfc, + 0x53, 0x5b, 0x85, 0x19, 0xb2, 0x2d, 0x40, 0xc8, 0x4c, 0xa7, 0x3a, 0x96, 0xbc, 0x76, 0x42, 0x8f, + 0xfe, 0xf5, 0xad, 0x8f, 0x3c, 0x39, 0xfb, 0xf1, 0x40, 0xb0, 0xdd, 0x9e, 0x4b, 0xb5, 0xdd, 0xee, + 0xcb, 0x82, 0x6e, 0xb8, 0x9f, 0x85, 0x42, 0x9b, 0x48, 0x58, 0x61, 0x12, 0xa6, 0xaf, 0xda, 0x7d, + 0x90, 0xdf, 0x37, 0x9c, 0x60, 0xf2, 0x7c, 0xdb, 0x70, 0xba, 0x1b, 0x86, 0x73, 0xd9, 0x47, 0xd0, + 0xff, 0x6b, 0x69, 0x0a, 0x0a, 0x44, 0x70, 0xe1, 0x03, 0xfa, 0xc5, 0x3c, 0x35, 0x43, 0x2a, 0xb6, + 0xe5, 0x0f, 0xfb, 0x2d, 0x3b, 0x38, 0x20, 0xf3, 0x6b, 0xb9, 0xf1, 0x58, 0x90, 0xd7, 0x71, 0x01, + 0x83, 0x2d, 0xf3, 0x3b, 0x0e, 0xf0, 0x43, 0xf8, 0x1a, 0x5b, 0x12, 0x1d, 0xf4, 0xa9, 0xef, 0x3e, + 0xf9, 0x7c, 0xff, 0x7d, 0xf2, 0xd1, 0xf2, 0x41, 0x61, 0xb8, 0xa3, 0xca, 0xef, 0x8d, 0x60, 0xba, + 0xf4, 0x0b, 0x22, 0x7e, 0x06, 0xde, 0x35, 0x2d, 0xae, 0xce, 0xc1, 0x6b, 0xca, 0x4e, 0x29, 0xad, + 0x51, 0x33, 0x84, 0xbd, 0xec, 0xfb, 0xa6, 0x9f, 0xcf, 0xd3, 0x98, 0xa9, 0xf4, 0x14, 0x86, 0x78, + 0x47, 0x2f, 0xfa, 0xed, 0xb1, 0x28, 0xcd, 0x80, 0x01, 0x47, 0x1d, 0x38, 0xe0, 0x1c, 0x3a, 0xa4, + 0x9c, 0x1f, 0x72, 0x48, 0xb9, 0x90, 0x6e, 0xe5, 0xf0, 0x57, 0x79, 0xfd, 0xd9, 0x14, 0xf5, 0xe7, + 0xde, 0x18, 0x80, 0x06, 0xc9, 0x65, 0x2c, 0xf6, 0xcd, 0x3b, 0x42, 0x4d, 0x69, 0x0a, 0x9a, 0xf2, + 0xc0, 0xe8, 0x8c, 0x64, 0xaf, 0x2d, 0xbf, 0x92, 0x87, 0xeb, 0x22, 0x66, 0xea, 0xf8, 0x2a, 0x53, + 0x94, 0x3f, 0x1c, 0x8b, 0xa2, 0xa4, 0x8f, 0x81, 0x90, 0xb5, 0xc6, 0xfc, 0x8e, 0xf4, 0xd9, 0xa1, + 0x7e, 0xa0, 0x42, 0xd9, 0xc4, 0x28, 0xcb, 0x59, 0x28, 0xd2, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x52, + 0x76, 0x37, 0x72, 0x27, 0x8e, 0x64, 0x79, 0x9b, 0x80, 0xfe, 0xb0, 0x75, 0x8d, 0xd6, 0x81, 0x63, + 0xd5, 0x2c, 0xcf, 0x46, 0xdf, 0x35, 0x16, 0xc5, 0x09, 0xbd, 0xe1, 0xd4, 0x51, 0xbc, 0xe1, 0x46, + 0x5a, 0xe5, 0x08, 0x6a, 0x70, 0x2c, 0xab, 0x1c, 0x31, 0x85, 0x67, 0x8f, 0xdf, 0xdb, 0x55, 0x38, + 0xcb, 0x26, 0x5b, 0x4b, 0xa2, 0x85, 0x88, 0x1e, 0x1e, 0x07, 0x90, 0xa7, 0x03, 0x33, 0x89, 0xdd, + 0x0c, 0x49, 0x5e, 0xc4, 0x93, 0x52, 0x89, 0x77, 0xe2, 0x08, 0xd3, 0xc1, 0x3e, 0x0e, 0xc7, 0x82, + 0x94, 0xdc, 0x55, 0x38, 0x29, 0xd8, 0xc8, 0x1e, 0xb3, 0x57, 0xa8, 0x50, 0xa4, 0xe7, 0xb4, 0xd0, + 0x56, 0x26, 0x0e, 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, 0x39, 0xca, 0x4d, 0x66, 0x67, 0xd8, 0xd2, + 0xec, 0xc5, 0x0d, 0x64, 0x65, 0x02, 0x2e, 0x84, 0x0a, 0xcc, 0x36, 0xb1, 0x57, 0x31, 0x1c, 0xc7, + 0x34, 0x76, 0xc7, 0xe5, 0xf1, 0x2d, 0xeb, 0x3d, 0x8c, 0xbe, 0x92, 0x93, 0x3d, 0x4f, 0x13, 0x2e, + 0x84, 0x07, 0xac, 0xc6, 0xc4, 0x12, 0x7c, 0xa3, 0xd4, 0x99, 0x99, 0x61, 0xd4, 0x26, 0xe0, 0xb1, + 0xad, 0xc0, 0x54, 0x70, 0x16, 0xef, 0x2e, 0xe1, 0x7c, 0xe6, 0x9e, 0xb7, 0x1f, 0x1c, 0x83, 0x21, + 0xcf, 0x87, 0xcf, 0x80, 0xa1, 0x57, 0xa7, 0x74, 0x94, 0x4f, 0x3e, 0x48, 0x98, 0xae, 0x8d, 0xa5, + 0x71, 0x87, 0x3f, 0xae, 0xa3, 0x83, 0xbf, 0x34, 0xc5, 0x96, 0x23, 0xd7, 0x0d, 0x0f, 0x3f, 0x8a, + 0x3e, 0xad, 0xc2, 0x54, 0x13, 0x7b, 0xfe, 0x78, 0x2b, 0x5c, 0x08, 0x3d, 0xaa, 0x86, 0x6b, 0xdc, + 0x8a, 0xc7, 0x0c, 0x5b, 0xc3, 0x78, 0x10, 0x66, 0x7a, 0x8e, 0xdd, 0xc6, 0xae, 0xcb, 0x56, 0x2f, + 0x78, 0x47, 0xb5, 0x41, 0xa3, 0x3f, 0x61, 0x6d, 0x71, 0x33, 0xf8, 0x47, 0x8f, 0x7e, 0x4f, 0x6b, + 0x06, 0x50, 0x4a, 0xac, 0x82, 0x93, 0x36, 0x03, 0x92, 0x0a, 0xcf, 0x1e, 0xe8, 0xdf, 0x57, 0x61, + 0xae, 0x89, 0xbd, 0x50, 0x8a, 0x29, 0x36, 0x39, 0xe2, 0xe1, 0x15, 0xa0, 0x54, 0x8f, 0x06, 0xa5, + 0xfc, 0x75, 0xaa, 0xa2, 0x34, 0x43, 0x62, 0x13, 0xbc, 0x4e, 0x55, 0x8e, 0x83, 0x09, 0x1c, 0x5f, + 0x7b, 0x22, 0xcc, 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xfe, 0x7c, 0xd4, 0x78, 0x3f, 0x93, 0x51, 0xe3, + 0xbd, 0x1f, 0x0a, 0xfb, 0x86, 0x73, 0xd9, 0x25, 0x0d, 0x77, 0x56, 0xc6, 0x6c, 0xdf, 0xf0, 0xb3, + 0xeb, 0xf4, 0xaf, 0xc1, 0x7e, 0x9a, 0x85, 0x74, 0x7e, 0x9a, 0x6f, 0x54, 0x52, 0x8d, 0x84, 0x74, + 0xee, 0x30, 0xc6, 0x26, 0x9f, 0x62, 0xdc, 0x4c, 0x28, 0x3b, 0x7b, 0xe5, 0x78, 0x99, 0x0a, 0xd3, + 0xfe, 0xb8, 0x4d, 0xec, 0xf1, 0x8b, 0x47, 0x57, 0x87, 0xc1, 0x86, 0x7e, 0xca, 0x1e, 0x38, 0x90, + 0xc8, 0xf8, 0xcc, 0xfb, 0x14, 0x3d, 0x70, 0x52, 0xe1, 0xd9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, 0x69, + 0x0f, 0xe8, 0x67, 0x54, 0x50, 0x57, 0xb1, 0x37, 0x69, 0x2b, 0xf2, 0xad, 0xd2, 0x21, 0x8e, 0x04, + 0x81, 0x11, 0x9e, 0x17, 0x57, 0xf1, 0x78, 0x1a, 0x90, 0x5c, 0x6c, 0x23, 0x29, 0x06, 0xb2, 0x47, + 0xed, 0xbd, 0x14, 0x35, 0xba, 0xb9, 0xf0, 0x9d, 0x63, 0xe8, 0x55, 0x27, 0xbb, 0xf0, 0x11, 0x08, + 0x90, 0xd0, 0x38, 0xae, 0xf6, 0x36, 0xa8, 0xf0, 0x89, 0x5c, 0x5f, 0x0a, 0x7e, 0x63, 0xdf, 0xc3, + 0xed, 0xcb, 0xb8, 0xc3, 0x5f, 0x07, 0x37, 0x2a, 0x74, 0xe7, 0x60, 0xaa, 0x4d, 0xa9, 0x11, 0xf0, + 0xa6, 0xf5, 0xe0, 0x35, 0xc5, 0x5d, 0xfc, 0x62, 0x47, 0x44, 0x7f, 0x9f, 0xe0, 0x5d, 0xfc, 0x12, + 0xc5, 0x4f, 0xc0, 0x6c, 0xa1, 0xb3, 0x8c, 0x5a, 0xdb, 0xb6, 0xd0, 0x7f, 0x3e, 0x3a, 0x2c, 0x37, + 0xc1, 0x8c, 0xd9, 0xb6, 0x2d, 0x12, 0x86, 0x22, 0x38, 0x04, 0x14, 0x26, 0x04, 0x5f, 0xab, 0xfb, + 0xf6, 0x23, 0x26, 0xdb, 0x35, 0x8f, 0x12, 0x46, 0x35, 0x26, 0x7c, 0xd6, 0x8f, 0xcb, 0x98, 0x18, + 0x50, 0x76, 0xf6, 0x90, 0x7d, 0x24, 0xf2, 0x6e, 0xa3, 0x5d, 0xe1, 0x63, 0x62, 0x15, 0x78, 0x94, + 0xe1, 0x8c, 0xaf, 0xc5, 0xb1, 0x0c, 0x67, 0x09, 0x0c, 0x4c, 0xe0, 0xc6, 0x8a, 0x08, 0xc7, 0xcc, + 0xd7, 0x80, 0x8f, 0x80, 0xce, 0xf8, 0xcc, 0xc3, 0x11, 0xd1, 0x39, 0x1e, 0x13, 0xf1, 0x03, 0x2c, + 0x44, 0x26, 0xb3, 0x78, 0xd0, 0x7f, 0x19, 0x07, 0x38, 0xf7, 0x8e, 0xe2, 0xaf, 0x40, 0xbd, 0x15, + 0xd0, 0x5b, 0x14, 0xd9, 0x10, 0x28, 0x87, 0x24, 0xe8, 0x53, 0x19, 0x0b, 0x82, 0x6f, 0x92, 0x8a, + 0x4d, 0x22, 0x53, 0x7e, 0xf6, 0x00, 0xbe, 0x54, 0x85, 0x05, 0xe2, 0x23, 0xd0, 0xc5, 0x86, 0x43, + 0x3b, 0xca, 0xb1, 0x38, 0xca, 0xbf, 0x53, 0x3a, 0xc0, 0x8f, 0x28, 0x87, 0x88, 0x8f, 0xb1, 0x40, + 0x21, 0x17, 0xdd, 0x47, 0x92, 0x85, 0x89, 0x6c, 0xa3, 0x94, 0x42, 0x16, 0x98, 0x8a, 0x8f, 0x07, + 0x8f, 0x94, 0x1e, 0xb9, 0xa2, 0x30, 0x82, 0xc6, 0x36, 0x61, 0x8f, 0x5c, 0x19, 0x26, 0xb2, 0xc7, + 0xe4, 0x67, 0x9e, 0xca, 0x16, 0x9c, 0x5b, 0xc6, 0xa5, 0x2e, 0x46, 0xaf, 0xcd, 0x87, 0x27, 0xda, + 0x7e, 0x7f, 0x2c, 0x1e, 0x98, 0x47, 0x08, 0x88, 0xaf, 0x41, 0xde, 0xb1, 0xaf, 0xd2, 0xa5, 0xad, + 0x79, 0x9d, 0x3c, 0xd3, 0xeb, 0x29, 0xbb, 0x07, 0xfb, 0x16, 0x3d, 0x19, 0x3a, 0xaf, 0x07, 0xaf, + 0xda, 0xad, 0x30, 0x7f, 0xd5, 0xf4, 0xf6, 0xd6, 0xb0, 0xd1, 0xc1, 0x8e, 0x6e, 0x5f, 0x25, 0x1e, + 0x73, 0xd3, 0xba, 0x98, 0x28, 0xfa, 0xaf, 0x48, 0xd8, 0x97, 0xbe, 0x50, 0x26, 0x73, 0xfc, 0x2d, + 0x8d, 0xe5, 0x19, 0xcf, 0x55, 0xf6, 0x0a, 0xf3, 0x3e, 0x15, 0x66, 0x74, 0xfb, 0x2a, 0x53, 0x92, + 0xff, 0xfb, 0x78, 0x75, 0x24, 0xf5, 0x44, 0x8f, 0x48, 0x2e, 0x64, 0x7f, 0xe2, 0x13, 0xbd, 0xc4, + 0xe2, 0x27, 0x72, 0x72, 0x69, 0x4e, 0xb7, 0xaf, 0x36, 0xb1, 0x47, 0x5b, 0x04, 0xda, 0x1e, 0x93, + 0x93, 0xb5, 0xe9, 0x52, 0x82, 0x6c, 0x1e, 0x1e, 0xbe, 0xa7, 0xdd, 0x45, 0x08, 0x05, 0x14, 0xb2, + 0x38, 0xe9, 0x5d, 0x84, 0xa1, 0x1c, 0x4c, 0x20, 0x46, 0x8a, 0x0a, 0xb3, 0xba, 0x7d, 0xd5, 0x1f, + 0x1a, 0x56, 0xcc, 0x6e, 0x77, 0x3c, 0x23, 0x64, 0x5a, 0xe3, 0x3f, 0x10, 0x43, 0xc0, 0xc5, 0xc4, + 0x8d, 0xff, 0x21, 0x0c, 0x64, 0x0f, 0xc3, 0x8b, 0x69, 0x63, 0x09, 0x46, 0x68, 0x6b, 0x3c, 0x38, + 0x8c, 0xda, 0x20, 0x42, 0x36, 0x8e, 0xad, 0x41, 0xc4, 0x71, 0x30, 0x91, 0x9d, 0x93, 0x85, 0x0a, + 0x19, 0xe6, 0xc7, 0xdb, 0x26, 0xde, 0x9d, 0xce, 0x35, 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x63, 0x41, + 0x23, 0x85, 0x0b, 0xa2, 0x04, 0x0f, 0xd9, 0xe3, 0xf1, 0xeb, 0x2a, 0xcc, 0x51, 0x16, 0x1e, 0x23, + 0x56, 0xc0, 0x48, 0x8d, 0x8a, 0xaf, 0xc1, 0xf1, 0x34, 0xaa, 0x04, 0x0e, 0x26, 0x72, 0x2b, 0xa8, + 0x6f, 0xc7, 0x8d, 0x70, 0x7c, 0x3c, 0x0e, 0xc1, 0x91, 0x8d, 0xb1, 0x31, 0x1e, 0x21, 0x1f, 0xc5, + 0x18, 0x3b, 0xa6, 0x63, 0xe4, 0x2f, 0x0e, 0x5b, 0xd1, 0x38, 0x31, 0x38, 0x42, 0x53, 0x18, 0x23, + 0x0c, 0x23, 0x36, 0x85, 0x63, 0x42, 0xe2, 0x0b, 0x2a, 0x00, 0x65, 0x60, 0xc3, 0xbe, 0x42, 0x2e, + 0xf3, 0x19, 0x43, 0x77, 0xd6, 0xef, 0x56, 0xaf, 0x0e, 0x71, 0xab, 0x4f, 0x19, 0xc2, 0x25, 0xed, + 0x4a, 0x20, 0x27, 0x65, 0xbf, 0x92, 0x13, 0x5f, 0x09, 0x4c, 0x2e, 0x3f, 0x7b, 0x8c, 0x3f, 0x47, + 0xad, 0xb9, 0xe8, 0x80, 0xe9, 0x8f, 0x8d, 0x05, 0x65, 0x6e, 0xf6, 0xaf, 0x8a, 0xb3, 0xff, 0x23, + 0x60, 0x3b, 0xaa, 0x8d, 0x38, 0xec, 0xe0, 0x68, 0xf6, 0x36, 0xe2, 0xf1, 0x1d, 0x10, 0xfd, 0xce, + 0x3c, 0x9c, 0x64, 0x9d, 0xc8, 0xbf, 0x07, 0x88, 0x53, 0x9e, 0xc3, 0x13, 0x3a, 0xc9, 0x21, 0x28, + 0x8f, 0x6b, 0x41, 0x2a, 0xcd, 0x52, 0xa6, 0x04, 0x7b, 0x13, 0x59, 0xdd, 0x28, 0x56, 0x1f, 0xed, + 0x19, 0x56, 0x47, 0x3e, 0xdc, 0xef, 0x10, 0xe0, 0x83, 0xb5, 0x46, 0x55, 0x5c, 0x6b, 0x1c, 0xb0, + 0x32, 0x99, 0x7a, 0xe7, 0x9a, 0x88, 0x8c, 0xb2, 0x3b, 0xf1, 0x9d, 0xeb, 0xf8, 0xb2, 0xb3, 0x47, + 0xe9, 0xdd, 0x2a, 0xe4, 0x9b, 0xb6, 0xe3, 0xa1, 0x97, 0xa4, 0x69, 0x9d, 0x54, 0xf2, 0x11, 0x48, + 0xc1, 0xbb, 0x56, 0x11, 0x6e, 0x69, 0xbe, 0x2b, 0xf9, 0xa8, 0xb3, 0xe1, 0x19, 0xc4, 0xab, 0xdb, + 0x2f, 0x9f, 0xbb, 0xae, 0x39, 0x6d, 0x3c, 0x1d, 0x2a, 0xbf, 0x66, 0xfc, 0x01, 0x8c, 0xcc, 0xe2, + 0xe9, 0xc4, 0x96, 0x9c, 0x3d, 0x6e, 0xaf, 0x3f, 0xc9, 0x7c, 0x5b, 0x57, 0xcc, 0x2e, 0x46, 0x2f, + 0xa1, 0x2e, 0x23, 0x75, 0x63, 0x1f, 0xcb, 0x1f, 0x89, 0x49, 0x74, 0x6d, 0x25, 0xf1, 0x65, 0xd5, + 0x28, 0xbe, 0x6c, 0xda, 0x06, 0x45, 0x0f, 0xa0, 0x53, 0x96, 0x26, 0xdd, 0xa0, 0x12, 0xca, 0x9e, + 0x48, 0x9c, 0xce, 0x53, 0x4d, 0xec, 0x51, 0xa3, 0xb2, 0x11, 0xdc, 0xc0, 0xf2, 0x6d, 0x63, 0x89, + 0xd8, 0x19, 0x5e, 0xf0, 0xa2, 0xf6, 0x5d, 0xf0, 0xf2, 0x3e, 0x1e, 0x9c, 0x0d, 0x11, 0x9c, 0x6f, + 0x8e, 0x17, 0x90, 0xc8, 0xe4, 0x58, 0x60, 0x7a, 0x6b, 0x08, 0xd3, 0xa6, 0x00, 0xd3, 0x7d, 0x23, + 0x72, 0x91, 0x3d, 0x60, 0x3f, 0x50, 0x80, 0x93, 0x74, 0xd2, 0x5f, 0xb6, 0x3a, 0x2c, 0xc2, 0xea, + 0x9b, 0x95, 0x63, 0xde, 0x6c, 0x3b, 0x1c, 0x82, 0x55, 0x88, 0xe5, 0x5c, 0xe8, 0xbf, 0x1d, 0x7f, + 0x89, 0x86, 0x73, 0xf5, 0x3b, 0x51, 0xb2, 0xd3, 0x26, 0x7f, 0x43, 0x7e, 0xf8, 0x9f, 0x78, 0x97, + 0xd1, 0x94, 0xfc, 0x5d, 0x46, 0xbf, 0x9b, 0x6e, 0xdd, 0x8e, 0x14, 0xdd, 0x27, 0xf0, 0x8c, 0x6d, + 0xa7, 0x14, 0x2b, 0x7a, 0x12, 0xdc, 0x7d, 0x7d, 0xb8, 0x93, 0x45, 0x11, 0x44, 0x46, 0x74, 0x27, + 0x23, 0x04, 0x8e, 0xd3, 0x9d, 0x6c, 0x18, 0x03, 0x13, 0xb8, 0xd5, 0xbe, 0xc0, 0x76, 0xf3, 0x49, + 0xbb, 0x41, 0x7f, 0xaa, 0x64, 0x3e, 0x4a, 0x7f, 0x35, 0x97, 0xca, 0xff, 0x99, 0xf0, 0x95, 0x3c, + 0x4c, 0xa7, 0xf1, 0x68, 0x4e, 0x22, 0x37, 0x81, 0x75, 0x23, 0x85, 0xf8, 0xa2, 0x5f, 0x34, 0x3b, + 0xde, 0xde, 0x98, 0x4e, 0x74, 0x5c, 0xf5, 0x69, 0x05, 0xd7, 0x23, 0x93, 0x17, 0xf4, 0xbf, 0x72, + 0xa9, 0x42, 0x48, 0x85, 0x22, 0x21, 0x6c, 0xc5, 0x88, 0x38, 0x45, 0xe0, 0xa7, 0x44, 0x7a, 0x13, + 0xd4, 0xe8, 0x0b, 0x66, 0x07, 0xdb, 0x8f, 0x41, 0x8d, 0x26, 0x7c, 0x8d, 0x4f, 0xa3, 0x93, 0xc8, + 0x7d, 0x9d, 0x6a, 0x74, 0x28, 0x92, 0x31, 0x69, 0x74, 0x22, 0xbd, 0xec, 0x65, 0xfc, 0xea, 0x39, + 0x36, 0x91, 0x5a, 0x37, 0xad, 0xcb, 0xe8, 0x9f, 0x8a, 0xc1, 0xc5, 0xcc, 0x17, 0x4d, 0x6f, 0x8f, + 0xc5, 0x82, 0xf9, 0x15, 0xe9, 0xbb, 0x51, 0x46, 0x88, 0xf7, 0x22, 0x86, 0x93, 0x2a, 0x1c, 0x0a, + 0x27, 0x55, 0x86, 0x79, 0xd3, 0xf2, 0xb0, 0x63, 0x19, 0xdd, 0x95, 0xae, 0xb1, 0xeb, 0x9e, 0x9b, + 0x1a, 0x78, 0x79, 0x5d, 0x8d, 0xcb, 0xa3, 0x8b, 0x7f, 0xf0, 0xd7, 0x57, 0x4e, 0x8b, 0xd7, 0x57, + 0xc6, 0x44, 0xbf, 0x9a, 0x89, 0x8f, 0x7e, 0x15, 0x46, 0xb7, 0x82, 0xe1, 0xc1, 0xb1, 0x65, 0x6d, + 0xe3, 0x94, 0xe1, 0xfe, 0xee, 0x92, 0x8c, 0xc2, 0x16, 0x86, 0x7e, 0xfc, 0x29, 0x35, 0xd5, 0xea, + 0x9e, 0xaf, 0x08, 0x8b, 0xfd, 0x4a, 0x90, 0xda, 0x42, 0xe5, 0x2b, 0xaf, 0xf6, 0x55, 0x3e, 0x34, + 0x79, 0xf2, 0x12, 0x26, 0x0f, 0xaf, 0x54, 0x05, 0x39, 0xa5, 0x4a, 0xb3, 0x58, 0x28, 0x53, 0xdb, + 0x09, 0x9c, 0x46, 0x2a, 0xc0, 0xa9, 0x20, 0xda, 0x6d, 0xaf, 0x87, 0x0d, 0xc7, 0xb0, 0xda, 0x18, + 0x7d, 0x44, 0x19, 0x87, 0xd9, 0xbb, 0x02, 0xd3, 0x66, 0xdb, 0xb6, 0x9a, 0xe6, 0xf3, 0x83, 0xcb, + 0xe5, 0x92, 0x83, 0xac, 0x13, 0x89, 0xd4, 0xd8, 0x1f, 0x7a, 0xf8, 0xaf, 0x56, 0x83, 0x99, 0xb6, + 0xe1, 0x74, 0x68, 0x10, 0xbe, 0x42, 0xdf, 0x45, 0x4e, 0xb1, 0x84, 0x2a, 0xc1, 0x2f, 0x7a, 0xf4, + 0xb7, 0xd6, 0x10, 0x85, 0x58, 0xec, 0x8b, 0xe6, 0x11, 0x4b, 0x6c, 0x39, 0xfa, 0x49, 0x90, 0xb9, + 0x2f, 0x1d, 0x07, 0x77, 0xc9, 0x1d, 0xf4, 0xb4, 0x87, 0x98, 0xd1, 0xa3, 0x84, 0xb4, 0xcb, 0x03, + 0xa4, 0xa8, 0x43, 0x68, 0x4c, 0x7a, 0x79, 0x40, 0x8a, 0x8b, 0xec, 0x35, 0xf3, 0x1d, 0x45, 0x98, + 0xa7, 0xbd, 0x1a, 0x13, 0x27, 0x7a, 0x29, 0xb9, 0x42, 0xda, 0x7b, 0x08, 0x5f, 0x43, 0xcd, 0xa3, + 0x8f, 0xc9, 0x25, 0x50, 0x2f, 0x87, 0x01, 0x07, 0xfd, 0xc7, 0xb4, 0xfb, 0xf6, 0x01, 0x5f, 0x8b, + 0x94, 0xa7, 0x49, 0xef, 0xdb, 0x27, 0x17, 0x9f, 0x3d, 0x3e, 0x3f, 0xa8, 0x82, 0x5a, 0xee, 0x74, + 0x50, 0xfb, 0xe8, 0x50, 0xdc, 0x02, 0xb3, 0x41, 0x9b, 0x89, 0x62, 0x40, 0xf2, 0x49, 0x69, 0x17, + 0x41, 0x43, 0xd9, 0x94, 0x3b, 0x13, 0xdf, 0x55, 0x48, 0x28, 0x3b, 0x7b, 0x50, 0x3e, 0x33, 0xc5, + 0x1a, 0xcd, 0x92, 0x6d, 0x5f, 0x26, 0x47, 0x65, 0x7e, 0x4e, 0x85, 0xc2, 0x0a, 0xf6, 0xda, 0x7b, + 0xc8, 0x1d, 0x4b, 0x9b, 0x39, 0x70, 0xba, 0x41, 0x9b, 0x39, 0x70, 0xba, 0xc3, 0x82, 0x72, 0xa6, + 0x8d, 0xfe, 0x1c, 0xb0, 0xbd, 0x48, 0x58, 0x9e, 0x74, 0xf4, 0xe7, 0xc4, 0xd2, 0x27, 0x70, 0x08, + 0x2e, 0x0f, 0x0b, 0xe1, 0x0a, 0x18, 0xc5, 0xec, 0x6d, 0xb9, 0xc7, 0xdc, 0x7a, 0xe8, 0x10, 0xbb, + 0x19, 0xfd, 0x61, 0xba, 0x10, 0x6b, 0xa1, 0xcc, 0xc5, 0x9a, 0x67, 0xbc, 0x30, 0x99, 0x22, 0xf8, + 0x9a, 0x1c, 0x83, 0x13, 0x58, 0x01, 0x50, 0x61, 0x9a, 0x30, 0xb4, 0x6c, 0x5e, 0x21, 0xae, 0x87, + 0xc2, 0x42, 0xe5, 0x0b, 0xc6, 0xb2, 0x50, 0x79, 0x9f, 0xb8, 0x50, 0x29, 0x19, 0x31, 0x39, 0x58, + 0xa7, 0x4c, 0xe9, 0x8b, 0xe3, 0xff, 0x3f, 0xf6, 0x65, 0xca, 0x14, 0xbe, 0x38, 0x43, 0xca, 0x9f, + 0x80, 0xeb, 0xe1, 0xf3, 0x58, 0x67, 0x1d, 0x6c, 0xc8, 0xa2, 0xff, 0x7e, 0x0a, 0xf2, 0x17, 0xfc, + 0x87, 0xff, 0x19, 0xdd, 0xa8, 0xf5, 0xaa, 0x31, 0x04, 0x77, 0x78, 0x0e, 0xe4, 0x7d, 0xfa, 0x6c, + 0xda, 0x73, 0x87, 0xdc, 0xee, 0xb0, 0xcf, 0x88, 0x4e, 0xfe, 0xd3, 0xce, 0x42, 0xd1, 0xb5, 0x0f, + 0x9c, 0xb6, 0x6f, 0x7e, 0xfb, 0x1a, 0xc3, 0xde, 0xd2, 0x06, 0x35, 0x15, 0x48, 0x2f, 0x8e, 0xcf, + 0xe5, 0x94, 0xbb, 0x60, 0x49, 0x15, 0x2e, 0x58, 0x4a, 0xb1, 0xff, 0x20, 0xc1, 0x5b, 0xf6, 0x1a, + 0xf1, 0xa7, 0xe4, 0xae, 0xc1, 0xce, 0xb8, 0x60, 0x8f, 0x11, 0xcb, 0x51, 0xd5, 0x21, 0xad, 0xc3, + 0xb8, 0x28, 0xda, 0x30, 0x8e, 0xfc, 0x44, 0x1d, 0xc6, 0x25, 0x78, 0x98, 0xc8, 0x29, 0xf7, 0x22, + 0x73, 0x72, 0x7d, 0x78, 0x9c, 0xe8, 0xe6, 0x05, 0xa5, 0x3f, 0x12, 0x3a, 0x63, 0x74, 0x7e, 0x1d, + 0x19, 0x9d, 0x63, 0x72, 0x7f, 0xfd, 0x0d, 0x95, 0x44, 0xd2, 0x0c, 0x8c, 0x20, 0xf9, 0x8b, 0x92, + 0x52, 0x43, 0xe4, 0x8f, 0xc1, 0x42, 0x1c, 0xe9, 0xf9, 0xd1, 0x43, 0x8b, 0x8b, 0xa2, 0xe3, 0xf8, + 0x9f, 0x74, 0x68, 0x71, 0x59, 0x46, 0xb2, 0x07, 0xf2, 0xa7, 0xe9, 0xc5, 0x64, 0xe5, 0xb6, 0x67, + 0x5e, 0x19, 0x73, 0x4b, 0x13, 0x87, 0x97, 0x94, 0xd1, 0x84, 0x0f, 0x49, 0x88, 0x72, 0x38, 0xe9, + 0x68, 0xc2, 0x72, 0x6c, 0x64, 0x0f, 0xd3, 0x5f, 0x16, 0x7d, 0xe9, 0xb1, 0xb5, 0x9d, 0x9f, 0x61, + 0xab, 0x09, 0xf8, 0xe8, 0x68, 0x9d, 0x87, 0x39, 0x6e, 0xe9, 0x20, 0xb8, 0xf0, 0x46, 0x48, 0x4b, + 0x7b, 0x50, 0x3e, 0x14, 0xd9, 0xd8, 0x17, 0x16, 0x52, 0x2c, 0x18, 0xcb, 0x30, 0x31, 0x91, 0xfb, + 0xe4, 0x82, 0x31, 0x6c, 0x42, 0x58, 0xfd, 0x0a, 0x8f, 0x55, 0x43, 0xc4, 0xea, 0x1e, 0x19, 0x31, + 0xc9, 0x8d, 0x69, 0x52, 0xf3, 0xc6, 0xb7, 0x87, 0x70, 0xe9, 0x02, 0x5c, 0xcf, 0x19, 0x99, 0x8f, + 0xec, 0x11, 0xfb, 0x71, 0xda, 0x1d, 0x36, 0xa9, 0xc9, 0x3e, 0x9e, 0xee, 0x90, 0xcd, 0x06, 0x54, + 0x61, 0x36, 0x90, 0xd2, 0x5f, 0x3f, 0x72, 0x43, 0x0d, 0x98, 0x1b, 0x06, 0x51, 0x7e, 0xcc, 0xfe, + 0xfa, 0x43, 0x39, 0xc8, 0x1e, 0x9c, 0x7f, 0x50, 0x01, 0x56, 0x1d, 0xfb, 0xa0, 0xd7, 0x70, 0x3a, + 0xd8, 0x41, 0x7f, 0x1e, 0x4d, 0x00, 0x7e, 0x68, 0x0c, 0x13, 0x80, 0x4d, 0x80, 0xdd, 0x90, 0x38, + 0xd3, 0xf0, 0xa7, 0xca, 0x99, 0xfb, 0x11, 0x53, 0x3a, 0x47, 0x43, 0xbc, 0xb2, 0xf6, 0x5b, 0x44, + 0x8c, 0x93, 0xfa, 0xac, 0x88, 0xdc, 0x38, 0x27, 0x00, 0xef, 0x0c, 0xb1, 0x6e, 0x09, 0x58, 0x3f, + 0xf7, 0x08, 0x9c, 0x64, 0x8f, 0xf9, 0x3f, 0x4e, 0xc1, 0x2c, 0xdd, 0xee, 0xa3, 0x32, 0xfd, 0x9b, + 0x08, 0xf4, 0x1f, 0x1b, 0x03, 0xe8, 0x5b, 0x30, 0x67, 0x47, 0xd4, 0x69, 0x9f, 0xca, 0x2f, 0xc0, + 0x24, 0xc2, 0xce, 0xf1, 0xa5, 0x0b, 0x64, 0xd0, 0x87, 0x78, 0xe4, 0x75, 0x11, 0xf9, 0xfb, 0x12, + 0xe4, 0xcd, 0x51, 0x1c, 0x27, 0xf4, 0xef, 0x0a, 0xa1, 0xdf, 0x12, 0xa0, 0x2f, 0x1f, 0x85, 0x95, + 0x09, 0x84, 0xeb, 0x57, 0x21, 0x4f, 0x4e, 0xd7, 0xfd, 0x7c, 0x86, 0xf3, 0xfb, 0x73, 0x30, 0x45, + 0x9a, 0x6c, 0x38, 0xef, 0x08, 0x5e, 0xfd, 0x2f, 0xc6, 0x8e, 0x87, 0x9d, 0x70, 0xe5, 0x36, 0x78, + 0xf5, 0x79, 0x08, 0xbc, 0x9a, 0xdd, 0x73, 0x45, 0xba, 0x91, 0x19, 0x26, 0x8c, 0x3c, 0x29, 0xe1, + 0x25, 0x3e, 0xb6, 0xf3, 0x76, 0xa3, 0x4c, 0x4a, 0x86, 0x30, 0x92, 0x3d, 0xf0, 0x7f, 0x9c, 0x87, + 0x73, 0x74, 0x55, 0x69, 0xc5, 0xb1, 0xf7, 0xfb, 0x6e, 0xc7, 0x32, 0x8f, 0xae, 0x0b, 0xb7, 0xc1, + 0x82, 0x27, 0xf8, 0x73, 0x33, 0x9d, 0xe8, 0x4b, 0x45, 0xbf, 0xc7, 0xfb, 0x64, 0x3c, 0x4f, 0x44, + 0x72, 0x29, 0x41, 0x80, 0x71, 0xbc, 0xa7, 0x5e, 0xa8, 0x97, 0x64, 0x94, 0x5b, 0xa4, 0x52, 0x47, + 0x5a, 0xb3, 0x0c, 0x75, 0xaa, 0x20, 0xa3, 0x53, 0xef, 0x0f, 0x75, 0xea, 0x3f, 0x09, 0x3a, 0xb5, + 0x7a, 0x74, 0x91, 0x4c, 0x60, 0xe5, 0x62, 0x01, 0x8a, 0x2b, 0x66, 0xd7, 0xc3, 0x0e, 0xfa, 0x1c, + 0x9b, 0x47, 0xbd, 0x36, 0xc3, 0xee, 0x65, 0x19, 0x8a, 0x3b, 0xa4, 0x34, 0x66, 0x90, 0xdd, 0x29, + 0x87, 0x0d, 0xe5, 0x50, 0x67, 0xff, 0xa6, 0x8d, 0x1d, 0xd7, 0x47, 0x66, 0x6c, 0x13, 0xb0, 0x14, + 0xb1, 0xe3, 0x86, 0xb3, 0x30, 0x91, 0x6b, 0x93, 0x8a, 0x3a, 0xde, 0xf7, 0x47, 0x90, 0xcb, 0xd9, + 0x21, 0x5c, 0x02, 0xd5, 0xec, 0xb8, 0xa4, 0xe9, 0xcd, 0xe8, 0xfe, 0x63, 0x5a, 0x4f, 0x96, 0x7e, + 0x51, 0x51, 0x96, 0x27, 0xed, 0xc9, 0x22, 0xc5, 0x45, 0xf6, 0x98, 0x7d, 0x95, 0xb8, 0x31, 0xf6, + 0xba, 0x46, 0x1b, 0xfb, 0xdc, 0x67, 0x86, 0xda, 0x02, 0x28, 0x66, 0x30, 0xe2, 0x2b, 0x26, 0xdf, + 0x4e, 0x0b, 0x47, 0x68, 0xa7, 0xa3, 0x2e, 0x72, 0x85, 0x32, 0x27, 0x15, 0x3f, 0xb6, 0x45, 0xae, + 0x44, 0x36, 0x26, 0x70, 0x29, 0x66, 0x70, 0xcc, 0x73, 0xa2, 0xad, 0x75, 0xd4, 0x2d, 0x00, 0x26, + 0xac, 0xb1, 0x1d, 0xe9, 0x1c, 0x65, 0x0b, 0x20, 0x9e, 0x87, 0x09, 0xa0, 0xb5, 0xc0, 0xd0, 0xfa, + 0x14, 0x1b, 0x46, 0x33, 0xde, 0x85, 0x73, 0x6d, 0xc7, 0x4b, 0xb7, 0x0b, 0xe7, 0x73, 0xa7, 0x93, + 0xff, 0xd2, 0x1e, 0x0b, 0x12, 0x4f, 0xfd, 0x8e, 0x6b, 0xf8, 0x4c, 0x71, 0x2c, 0x68, 0x18, 0x03, + 0xd9, 0xc3, 0xfb, 0x96, 0x63, 0x1a, 0x3c, 0x47, 0x6d, 0x8e, 0xac, 0x0d, 0x8c, 0x6d, 0xe8, 0x1c, + 0xa5, 0x39, 0xc6, 0xf3, 0x90, 0x3d, 0x5e, 0x7f, 0xcf, 0x0d, 0x9c, 0x6f, 0x9a, 0xe0, 0xc0, 0x19, + 0xb4, 0xcc, 0xc2, 0x88, 0x2d, 0x73, 0xd4, 0xdd, 0x05, 0x26, 0xeb, 0xf1, 0x0d, 0x98, 0xa3, 0xec, + 0x2e, 0x24, 0x30, 0x91, 0x3d, 0xe2, 0x6f, 0x56, 0xa1, 0xd0, 0x9c, 0xfc, 0x78, 0x39, 0xea, 0x5c, + 0x84, 0xc8, 0xaa, 0x39, 0xb6, 0xe1, 0x72, 0x94, 0xb9, 0x48, 0x2c, 0x0b, 0x13, 0x08, 0x0b, 0x7f, + 0x12, 0xe6, 0xc8, 0x84, 0x3b, 0xd8, 0xc4, 0xfb, 0x7b, 0x36, 0x6a, 0xbe, 0x31, 0xc3, 0xb6, 0xfa, + 0x20, 0x4c, 0x07, 0xbb, 0x43, 0x6c, 0xe4, 0x5c, 0x94, 0x6b, 0x9f, 0x01, 0x97, 0x7a, 0xf8, 0xff, + 0x91, 0xb6, 0xda, 0xc7, 0xbe, 0x13, 0x38, 0xea, 0x56, 0xfb, 0xb1, 0xee, 0x06, 0xfe, 0x6e, 0x34, + 0xa2, 0xfe, 0xe7, 0xec, 0x30, 0xef, 0xdf, 0x25, 0xcc, 0x0f, 0xd8, 0x25, 0xfc, 0x08, 0x8f, 0x65, + 0x53, 0xc4, 0xf2, 0x7e, 0x59, 0x11, 0x8e, 0x71, 0xac, 0x7d, 0x77, 0x08, 0xe7, 0x05, 0x01, 0xce, + 0xa5, 0x23, 0xf1, 0x32, 0x81, 0x63, 0x79, 0xf9, 0x68, 0xcc, 0xfd, 0x68, 0x86, 0xed, 0xb8, 0xcf, + 0xe7, 0x3f, 0x7f, 0xc8, 0xe7, 0x5f, 0x68, 0xe9, 0x85, 0x23, 0xb6, 0xf4, 0x8f, 0xf2, 0xda, 0xd1, + 0x12, 0xb5, 0xe3, 0x39, 0xf2, 0x88, 0x8c, 0x6f, 0x64, 0x7e, 0x4f, 0xa8, 0x1e, 0x17, 0x05, 0xf5, + 0xa8, 0x1c, 0x8d, 0x99, 0xec, 0xf5, 0xe3, 0x37, 0x83, 0x09, 0xed, 0x31, 0xb7, 0xf7, 0x51, 0x37, + 0x22, 0x05, 0x21, 0x8e, 0x6d, 0xe4, 0x1e, 0x65, 0x23, 0x72, 0x18, 0x27, 0x13, 0x88, 0x14, 0x36, + 0x0f, 0xb3, 0x84, 0xa7, 0x8b, 0x66, 0x67, 0x17, 0x7b, 0xe8, 0xa7, 0xa8, 0x07, 0x5c, 0x10, 0x97, + 0x71, 0x4c, 0xc1, 0x73, 0xe2, 0x4e, 0x63, 0xa6, 0xf5, 0x17, 0xa0, 0x4c, 0x2e, 0x72, 0x0c, 0x4e, + 0x3a, 0xbe, 0xdf, 0x50, 0x0e, 0xb2, 0x87, 0xec, 0x43, 0xd4, 0x99, 0x63, 0xdd, 0xb8, 0x66, 0x1f, + 0x78, 0xe8, 0x45, 0x63, 0xe8, 0xa0, 0x97, 0xa0, 0xd8, 0x25, 0xd4, 0x98, 0xd3, 0x7f, 0xf2, 0x74, + 0x87, 0x89, 0x80, 0x96, 0xaf, 0xb3, 0x3f, 0xd3, 0x7a, 0xfe, 0x47, 0x72, 0xa4, 0x74, 0x26, 0xed, + 0xf9, 0x3f, 0xa4, 0xfc, 0x89, 0xdc, 0x00, 0x33, 0xed, 0x97, 0x6e, 0xee, 0x9b, 0xde, 0x98, 0xe2, + 0x0b, 0x74, 0x7d, 0x5a, 0x41, 0x7c, 0x01, 0xf2, 0x92, 0xf6, 0x3c, 0x23, 0x27, 0x15, 0xff, 0xf7, + 0x49, 0x9f, 0x67, 0x4c, 0x2e, 0x3e, 0x7b, 0x4c, 0x7e, 0x84, 0xb6, 0xac, 0x0b, 0xd4, 0xb5, 0x33, + 0x43, 0xaf, 0xd1, 0x91, 0x1b, 0x0b, 0x65, 0xed, 0xf8, 0x1a, 0xcb, 0xc0, 0xf2, 0xb3, 0x07, 0xe6, + 0xe7, 0xbe, 0x11, 0x0a, 0xcb, 0xf8, 0xd2, 0xc1, 0x2e, 0xba, 0x0f, 0xa6, 0x5b, 0x0e, 0xc6, 0x35, + 0x6b, 0xc7, 0xf6, 0xa5, 0xeb, 0xf9, 0xcf, 0x01, 0x24, 0xec, 0xcd, 0xc7, 0x63, 0x0f, 0x1b, 0x9d, + 0xe8, 0x74, 0x53, 0xf0, 0x8a, 0x5e, 0xa5, 0x40, 0xbe, 0xe9, 0x19, 0x1e, 0x9a, 0x09, 0xb1, 0x45, + 0x2f, 0xe2, 0xb1, 0xb8, 0x4f, 0xc4, 0xe2, 0x36, 0x41, 0x16, 0x84, 0x83, 0x45, 0xff, 0xff, 0x18, + 0x00, 0x10, 0x4c, 0x3f, 0xe2, 0xda, 0x96, 0x9f, 0x23, 0x38, 0x80, 0x17, 0xbc, 0xa3, 0xd7, 0x84, + 0xe2, 0x7e, 0x40, 0x10, 0xf7, 0x93, 0xe5, 0x8a, 0x98, 0xc0, 0x4a, 0x9b, 0x02, 0x33, 0xbe, 0x68, + 0xd7, 0xb0, 0xd1, 0x71, 0xd1, 0x37, 0x44, 0xca, 0x1f, 0x23, 0x66, 0xf4, 0x01, 0xe9, 0x50, 0x91, + 0xb4, 0x56, 0x21, 0xf1, 0x78, 0x7f, 0x81, 0x20, 0x54, 0x86, 0x22, 0x86, 0xca, 0xb8, 0x0b, 0xf2, + 0xa6, 0xb5, 0x63, 0x33, 0xef, 0xb5, 0x1b, 0x63, 0x68, 0xfb, 0x3a, 0xa1, 0x93, 0x8c, 0x92, 0x71, + 0x24, 0x93, 0xd9, 0x9a, 0xc8, 0x95, 0x6c, 0x79, 0xbf, 0x74, 0xf4, 0x7f, 0x0d, 0x15, 0xb6, 0xa6, + 0x41, 0xbe, 0x67, 0x78, 0x7b, 0xac, 0x68, 0xf2, 0xec, 0xdb, 0xc8, 0x07, 0x96, 0x61, 0xd9, 0xd6, + 0xb5, 0x7d, 0xf3, 0xf9, 0xe1, 0xcd, 0xaf, 0x42, 0x9a, 0xcf, 0xf9, 0x2e, 0xb6, 0xb0, 0x63, 0x78, + 0xb8, 0x79, 0x65, 0x97, 0xcc, 0xb1, 0xa6, 0x75, 0x3e, 0x29, 0xb5, 0xfe, 0xfb, 0x1c, 0xc7, 0xeb, + 0xff, 0x8e, 0xd9, 0xc5, 0x24, 0x8e, 0x10, 0xd3, 0xff, 0xe0, 0x3d, 0x95, 0xfe, 0x0f, 0x28, 0x22, + 0x7b, 0x34, 0xfe, 0x55, 0x81, 0xb9, 0xa6, 0xaf, 0x70, 0xcd, 0x83, 0xfd, 0x7d, 0xc3, 0xb9, 0x86, + 0x9e, 0x10, 0xa1, 0xc2, 0xa9, 0x66, 0x4e, 0x50, 0x4d, 0xf4, 0x1b, 0xd2, 0x97, 0x1e, 0xb3, 0xa6, + 0xcd, 0x95, 0x90, 0xba, 0x1d, 0x3c, 0x0d, 0x0a, 0xbe, 0x7a, 0x07, 0xfe, 0x7c, 0x89, 0x0d, 0x81, + 0xe6, 0x94, 0x8c, 0xb7, 0x34, 0x94, 0xb7, 0x09, 0xc4, 0x7a, 0x50, 0xe0, 0x64, 0xd3, 0x33, 0xda, + 0x97, 0x57, 0x6d, 0xc7, 0x3e, 0xf0, 0x4c, 0x0b, 0xbb, 0xe8, 0x71, 0x11, 0x02, 0x81, 0xfe, 0xe7, + 0x22, 0xfd, 0x47, 0xff, 0x96, 0x93, 0x1d, 0x45, 0xc3, 0x6e, 0x95, 0x27, 0x1f, 0x13, 0x3e, 0x49, + 0x6e, 0x5c, 0x94, 0xa1, 0x98, 0xbd, 0xd0, 0xde, 0xa4, 0x42, 0xa9, 0xfa, 0x68, 0xcf, 0x76, 0xbc, + 0x75, 0xbb, 0x6d, 0x74, 0x5d, 0xcf, 0x76, 0x30, 0x6a, 0x24, 0x4a, 0xcd, 0xef, 0x61, 0x3a, 0x76, + 0x3b, 0x1a, 0x1c, 0xd9, 0x1b, 0xaf, 0x76, 0xaa, 0xa8, 0xe3, 0x1f, 0x92, 0xde, 0x65, 0xa4, 0x52, + 0xe9, 0xe7, 0x28, 0x46, 0xcf, 0x07, 0x75, 0x69, 0xe9, 0x5c, 0xf1, 0xe5, 0x76, 0x1e, 0xa5, 0x98, + 0x9a, 0xc0, 0x52, 0xb9, 0x02, 0xf3, 0xcd, 0x83, 0x4b, 0x21, 0x11, 0x97, 0x37, 0x42, 0x5e, 0x27, + 0x1d, 0x23, 0x81, 0x29, 0x1e, 0x4f, 0x28, 0x46, 0xbe, 0xb7, 0xc2, 0xbc, 0xcb, 0x67, 0x63, 0x78, + 0x8b, 0x89, 0x92, 0xb1, 0x11, 0x86, 0x97, 0x9a, 0xbd, 0x00, 0xdf, 0xa3, 0xc0, 0x7c, 0xa3, 0x87, + 0x2d, 0xdc, 0xa1, 0x3e, 0x76, 0x82, 0x00, 0x5f, 0x95, 0x52, 0x80, 0x02, 0xa1, 0x18, 0x01, 0x46, + 0xfe, 0xb0, 0xcb, 0x81, 0xf0, 0xa2, 0x84, 0x54, 0x82, 0x4b, 0x2a, 0x2d, 0x7b, 0xc1, 0x7d, 0x56, + 0x81, 0x59, 0xfd, 0xc0, 0xda, 0x74, 0x6c, 0x7f, 0x34, 0x76, 0xd0, 0xfd, 0x51, 0x07, 0x71, 0x27, + 0x9c, 0xea, 0x1c, 0x38, 0x64, 0xfd, 0xa9, 0x66, 0x35, 0x71, 0xdb, 0xb6, 0x3a, 0x2e, 0xa9, 0x47, + 0x41, 0x3f, 0xfc, 0xe1, 0xde, 0xfc, 0x4b, 0xfe, 0x4a, 0xcd, 0xa1, 0x97, 0x4a, 0x07, 0x62, 0xa1, + 0x95, 0xe7, 0x8a, 0x96, 0xef, 0x09, 0x24, 0xc3, 0xad, 0x0c, 0x2b, 0x21, 0x7b, 0xe1, 0x7e, 0x4a, + 0x01, 0xad, 0xdc, 0x6e, 0xdb, 0x07, 0x96, 0xd7, 0xc4, 0x5d, 0xdc, 0xf6, 0x5a, 0x8e, 0xd1, 0xc6, + 0xbc, 0xfd, 0x5c, 0x02, 0xb5, 0x63, 0x3a, 0xac, 0x0f, 0xf6, 0x1f, 0x99, 0x1c, 0x5f, 0x25, 0xbd, + 0xe3, 0x48, 0x6b, 0x79, 0xb8, 0x94, 0x14, 0xe2, 0x94, 0xdb, 0x57, 0x94, 0x2c, 0x28, 0x7b, 0xa9, + 0x7e, 0x54, 0x81, 0x99, 0xa0, 0xc7, 0xde, 0x95, 0x11, 0xe6, 0x8f, 0xa4, 0x9c, 0x8c, 0x84, 0xc4, + 0x53, 0xc8, 0xf0, 0x1d, 0x29, 0x66, 0x15, 0x71, 0xf4, 0xd3, 0x89, 0xae, 0x9c, 0x5e, 0x74, 0xfe, + 0x6b, 0xbd, 0xb1, 0xbd, 0xd2, 0x58, 0x5f, 0xae, 0xea, 0x25, 0x15, 0x7d, 0x4e, 0x81, 0xfc, 0xa6, + 0x69, 0xed, 0xf2, 0xf1, 0xb2, 0x4e, 0xfb, 0x76, 0x64, 0x07, 0x3f, 0xca, 0x5a, 0x3a, 0x7d, 0xd1, + 0xee, 0x86, 0xd3, 0xd6, 0xc1, 0xfe, 0x25, 0xec, 0x34, 0x76, 0xc8, 0x28, 0xeb, 0xb6, 0xec, 0x26, + 0xb6, 0xa8, 0x11, 0x5a, 0xd0, 0x07, 0x7e, 0x13, 0x4d, 0x30, 0x89, 0xc9, 0x83, 0xcf, 0x49, 0x8c, + 0xc4, 0x43, 0xa6, 0x14, 0x8e, 0xa9, 0x54, 0xd3, 0x86, 0x01, 0xc4, 0xb3, 0xd7, 0xd4, 0xdf, 0x2a, + 0xc0, 0x99, 0xb2, 0x75, 0x8d, 0xd8, 0x14, 0xb4, 0x83, 0xaf, 0xec, 0x19, 0xd6, 0x2e, 0x26, 0x03, + 0x44, 0x28, 0x71, 0x3e, 0x80, 0x7c, 0x4e, 0x0c, 0x20, 0xaf, 0xe9, 0x30, 0x65, 0x3b, 0x1d, 0xec, + 0x2c, 0x5d, 0x23, 0x3c, 0xf5, 0x2f, 0x3b, 0xb3, 0x36, 0x39, 0xa8, 0x88, 0x45, 0x46, 0x7e, 0xb1, + 0x41, 0xff, 0xd7, 0x03, 0x42, 0xe7, 0xef, 0x84, 0x29, 0x96, 0xa6, 0xcd, 0xc1, 0x74, 0x43, 0x5f, + 0xae, 0xea, 0xdb, 0xb5, 0xe5, 0xd2, 0x09, 0xed, 0x3a, 0x38, 0x59, 0x6b, 0x55, 0xf5, 0x72, 0xab, + 0xd6, 0xa8, 0x6f, 0x93, 0xf4, 0x52, 0x0e, 0xbd, 0x38, 0x2f, 0xeb, 0xd9, 0x9b, 0xcc, 0xcc, 0x20, + 0x58, 0x75, 0x98, 0x6a, 0xd3, 0x0c, 0x64, 0x08, 0x9d, 0x4d, 0x55, 0x3b, 0x46, 0x90, 0x26, 0xe8, + 0x01, 0x21, 0xed, 0x66, 0x80, 0xab, 0x8e, 0x6d, 0xed, 0x46, 0x67, 0xda, 0xa6, 0x75, 0x2e, 0x05, + 0xbd, 0x28, 0x07, 0x45, 0xfa, 0x0f, 0xb9, 0x30, 0x83, 0x3c, 0x45, 0x82, 0x0f, 0xde, 0x7d, 0x8b, + 0x97, 0xc8, 0x2b, 0x9a, 0x68, 0xb1, 0x57, 0x5f, 0x17, 0xa9, 0x0c, 0xa8, 0x25, 0xcc, 0xaa, 0x72, + 0x17, 0x14, 0xe9, 0xbf, 0xcc, 0xeb, 0x20, 0x3e, 0xf8, 0x25, 0xcd, 0x26, 0xe9, 0xa7, 0x2c, 0x2f, + 0xd3, 0xec, 0xb5, 0xf9, 0x57, 0x15, 0x98, 0xae, 0x63, 0xaf, 0xb2, 0x87, 0xdb, 0x97, 0xd1, 0x93, + 0xc4, 0x05, 0xd0, 0xae, 0x89, 0x2d, 0xef, 0xe1, 0xfd, 0x6e, 0xb8, 0x00, 0x1a, 0x24, 0xa0, 0xef, + 0xe5, 0x3b, 0xdf, 0xe7, 0x8a, 0xfa, 0x73, 0xc7, 0x80, 0xba, 0x06, 0x25, 0xc4, 0xa8, 0xcc, 0x59, + 0x28, 0x3a, 0xd8, 0x3d, 0xe8, 0x06, 0x8b, 0x68, 0xec, 0x0d, 0xbd, 0x3e, 0x14, 0x67, 0x45, 0x10, + 0xe7, 0x5d, 0xf2, 0x45, 0x4c, 0x20, 0x9a, 0x66, 0x1e, 0xa6, 0x6a, 0x96, 0xe9, 0x99, 0x46, 0x17, + 0xbd, 0x34, 0x0f, 0xf3, 0x4d, 0xec, 0x6d, 0x1a, 0x8e, 0xb1, 0x8f, 0x3d, 0xec, 0xb8, 0xe8, 0x2b, + 0x62, 0x9f, 0xd0, 0xeb, 0x1a, 0xde, 0x8e, 0xed, 0xec, 0x07, 0xaa, 0x19, 0xbc, 0xfb, 0xaa, 0x79, + 0x05, 0x3b, 0x6e, 0xc4, 0x57, 0xf0, 0xea, 0x7f, 0xb9, 0x6a, 0x3b, 0x97, 0xfd, 0x41, 0x90, 0x4d, + 0xd3, 0xd8, 0xab, 0x4f, 0xaf, 0x6b, 0xef, 0xae, 0xe3, 0x2b, 0x38, 0x08, 0xd6, 0x15, 0xbe, 0xfb, + 0x73, 0x81, 0x8e, 0x5d, 0xb7, 0x3d, 0xbf, 0xd3, 0x5e, 0xb7, 0x77, 0x69, 0x34, 0xd3, 0x69, 0x5d, + 0x4c, 0x8c, 0x72, 0x19, 0x57, 0x30, 0xc9, 0x55, 0xe4, 0x73, 0xb1, 0x44, 0x6d, 0x11, 0xb4, 0xf0, + 0xb7, 0x16, 0xee, 0xe2, 0x7d, 0xec, 0x39, 0xd7, 0xc8, 0xa5, 0x05, 0xd3, 0xfa, 0x80, 0x2f, 0x6c, + 0x80, 0x96, 0x9f, 0xac, 0x33, 0xe9, 0x2d, 0x0a, 0x92, 0x3b, 0xd2, 0x64, 0x5d, 0x86, 0xe2, 0x44, + 0x2e, 0x65, 0x52, 0x7d, 0x6b, 0xe6, 0x27, 0x54, 0xc8, 0x93, 0xc1, 0xf3, 0xcd, 0x39, 0x61, 0x85, + 0x69, 0x1f, 0xbb, 0xae, 0xb1, 0x8b, 0x83, 0x15, 0x26, 0xf6, 0xaa, 0xdd, 0x03, 0x85, 0x2e, 0xc1, + 0x94, 0x0e, 0x0e, 0x4f, 0x10, 0x6a, 0xe6, 0x1b, 0x18, 0x3e, 0xad, 0x70, 0x24, 0x20, 0x70, 0xeb, + 0xf4, 0x8f, 0xf3, 0x0f, 0x42, 0x81, 0xc2, 0x3f, 0x03, 0x85, 0xe5, 0xea, 0xd2, 0xd6, 0x6a, 0xe9, + 0x84, 0xff, 0x18, 0xf0, 0x37, 0x03, 0x85, 0x95, 0x72, 0xab, 0xbc, 0x5e, 0x52, 0xfc, 0x7a, 0xd4, + 0xea, 0x2b, 0x8d, 0x92, 0xea, 0x27, 0x6e, 0x96, 0xeb, 0xb5, 0x4a, 0x29, 0xaf, 0xcd, 0xc2, 0xd4, + 0xc5, 0xb2, 0x5e, 0xaf, 0xd5, 0x57, 0x4b, 0x05, 0xf4, 0x97, 0x3c, 0x7e, 0xf7, 0x8a, 0xf8, 0xdd, + 0x1a, 0xc7, 0xd3, 0x20, 0xc8, 0x7e, 0x32, 0x84, 0xec, 0x7e, 0x01, 0xb2, 0x6f, 0x94, 0x21, 0x32, + 0x01, 0x77, 0xa6, 0x22, 0x4c, 0x6d, 0x3a, 0x76, 0x1b, 0xbb, 0x2e, 0xfa, 0x51, 0x05, 0x8a, 0x15, + 0xc3, 0x6a, 0xe3, 0x2e, 0xba, 0x21, 0x82, 0x8a, 0xba, 0x8a, 0xe6, 0x02, 0x57, 0x51, 0xf4, 0x0f, + 0x39, 0xd9, 0xde, 0x8f, 0xd1, 0x5d, 0xa4, 0x34, 0x63, 0xe4, 0x23, 0xd7, 0xcb, 0x25, 0x92, 0x9a, + 0xc0, 0xc5, 0x2d, 0x0a, 0xcc, 0xb0, 0xd5, 0x80, 0x4b, 0x98, 0x9f, 0x87, 0x7f, 0x25, 0x27, 0x3b, + 0x39, 0x0c, 0x6a, 0x10, 0x92, 0x89, 0x91, 0x87, 0xdc, 0x44, 0x70, 0x18, 0xb5, 0x09, 0x6c, 0x1e, + 0x2a, 0x30, 0xbb, 0x65, 0xb9, 0x83, 0x84, 0x22, 0x1f, 0xe5, 0x3d, 0xa8, 0x06, 0x47, 0xe8, 0x48, + 0x51, 0xde, 0x87, 0xd3, 0xcb, 0x5e, 0x30, 0x5f, 0xc9, 0xc1, 0xe9, 0x55, 0x6c, 0x61, 0xc7, 0x6c, + 0xd3, 0x1a, 0x04, 0x92, 0xb8, 0x5f, 0x94, 0xc4, 0x93, 0x04, 0xce, 0x07, 0xfd, 0x21, 0x4a, 0xe0, + 0xb5, 0xa1, 0x04, 0x9e, 0x2b, 0x48, 0xe0, 0x4e, 0x49, 0x3a, 0x13, 0xb8, 0xad, 0x7b, 0x06, 0xe6, + 0xea, 0xb6, 0x67, 0xee, 0x98, 0x6d, 0xea, 0x83, 0xf6, 0xe3, 0x2a, 0xe4, 0xd7, 0x4d, 0xd7, 0x43, + 0xe5, 0xa8, 0x3b, 0xb9, 0x05, 0x66, 0x4d, 0xab, 0xdd, 0x3d, 0xe8, 0x60, 0x1d, 0x1b, 0xb4, 0x5f, + 0x99, 0xd6, 0xf9, 0xa4, 0x68, 0x6b, 0xdf, 0x67, 0x4b, 0x0d, 0xb6, 0xf6, 0x3f, 0x21, 0xbd, 0x0c, + 0xc3, 0xb3, 0x40, 0xc2, 0x1d, 0xc6, 0xd8, 0x5d, 0x65, 0x98, 0xb7, 0xb8, 0xac, 0x81, 0xc1, 0xde, + 0x1f, 0xee, 0x9e, 0x27, 0xa7, 0x8b, 0x7f, 0xa0, 0xf7, 0x49, 0x35, 0xd6, 0x61, 0x0c, 0xa5, 0x43, + 0x66, 0x65, 0x84, 0x49, 0xb2, 0x06, 0x0b, 0xb5, 0x7a, 0xab, 0xaa, 0xd7, 0xcb, 0xeb, 0x2c, 0x8b, + 0x8a, 0xfe, 0x55, 0x81, 0x82, 0x8e, 0x7b, 0xdd, 0x6b, 0x7c, 0x3c, 0x63, 0xe6, 0x28, 0x9e, 0x0b, + 0x1d, 0xc5, 0xb5, 0x15, 0x00, 0xa3, 0xed, 0x17, 0x4c, 0x2e, 0x7c, 0x52, 0x06, 0x46, 0xc9, 0x14, + 0x2a, 0x58, 0x0e, 0x73, 0xeb, 0xdc, 0x9f, 0xe8, 0x65, 0xd2, 0x3b, 0x47, 0x02, 0x35, 0xc2, 0x61, + 0x4c, 0x9f, 0xf0, 0x7e, 0xa9, 0xcd, 0x9e, 0xa1, 0xe4, 0x8e, 0x47, 0xfc, 0x9f, 0x57, 0x20, 0xdf, + 0xf2, 0x7b, 0x4b, 0xae, 0xe3, 0xfc, 0xed, 0xd1, 0x74, 0xdc, 0x27, 0x13, 0xa3, 0xe3, 0x0f, 0xc0, + 0x1c, 0xaf, 0xb1, 0xcc, 0x55, 0x22, 0x51, 0xc5, 0x85, 0x1f, 0x46, 0xd1, 0xf0, 0x01, 0xec, 0x1c, + 0x8f, 0x88, 0x3f, 0xf6, 0x64, 0x80, 0x0d, 0xbc, 0x7f, 0x09, 0x3b, 0xee, 0x9e, 0xd9, 0x43, 0x7f, + 0xad, 0xc2, 0xcc, 0x2a, 0xf6, 0x9a, 0x9e, 0xe1, 0x1d, 0xb8, 0x7d, 0xdb, 0x9d, 0x96, 0x5d, 0x31, + 0xda, 0x7b, 0x98, 0x75, 0x47, 0xc1, 0x2b, 0x7a, 0x97, 0x2a, 0xeb, 0x4f, 0x14, 0x95, 0xb3, 0x18, + 0x96, 0x11, 0x83, 0xc9, 0x53, 0x20, 0xdf, 0x31, 0x3c, 0x83, 0x61, 0x71, 0x43, 0x1f, 0x16, 0x11, + 0x21, 0x9d, 0x64, 0x43, 0x6f, 0x53, 0x64, 0x1c, 0x8a, 0x24, 0xca, 0x4f, 0x07, 0xc2, 0xfb, 0x72, + 0x23, 0xa0, 0x70, 0x0a, 0xe6, 0xeb, 0x8d, 0xd6, 0xf6, 0x7a, 0x63, 0x75, 0xb5, 0xea, 0xa7, 0x96, + 0x54, 0xed, 0x2c, 0x68, 0x9b, 0xe5, 0x87, 0x37, 0xaa, 0xf5, 0xd6, 0x76, 0xbd, 0xb1, 0x5c, 0x65, + 0x7f, 0xe6, 0xb5, 0x93, 0x30, 0x5b, 0x29, 0x57, 0xd6, 0x82, 0x84, 0x82, 0x76, 0x0e, 0x4e, 0x6f, + 0x54, 0x37, 0x96, 0xaa, 0x7a, 0x73, 0xad, 0xb6, 0xb9, 0xed, 0x93, 0x59, 0x69, 0x6c, 0xd5, 0x97, + 0x4b, 0x45, 0x0d, 0xc1, 0x59, 0xee, 0xcb, 0x45, 0xbd, 0x51, 0x5f, 0xdd, 0x6e, 0xb6, 0xca, 0xad, + 0x6a, 0x69, 0x4a, 0xbb, 0x0e, 0x4e, 0x56, 0xca, 0x75, 0x92, 0xbd, 0xd2, 0xa8, 0xd7, 0xab, 0x95, + 0x56, 0x69, 0x1a, 0xfd, 0x5b, 0x1e, 0x66, 0x6b, 0x6e, 0xdd, 0xd8, 0xc7, 0x17, 0x8c, 0xae, 0xd9, + 0x41, 0x2f, 0xe5, 0x66, 0x1e, 0xb7, 0xc2, 0xbc, 0x43, 0x1f, 0x71, 0xa7, 0x65, 0x62, 0x8a, 0xe6, + 0xbc, 0x2e, 0x26, 0xfa, 0x73, 0x72, 0x8b, 0x10, 0x08, 0xe6, 0xe4, 0xf4, 0x4d, 0x5b, 0x02, 0xa0, + 0x4f, 0xad, 0xe8, 0xea, 0xd1, 0xf3, 0xfd, 0xad, 0xc9, 0xd8, 0xc7, 0x2e, 0x76, 0xae, 0x98, 0x6d, + 0x1c, 0xe4, 0xd4, 0xb9, 0xbf, 0xd0, 0x17, 0x54, 0xd9, 0xfd, 0x45, 0x0e, 0x54, 0xae, 0x3a, 0x31, + 0xbd, 0xe1, 0xf7, 0xa9, 0x32, 0xbb, 0x83, 0x52, 0x24, 0xd3, 0x69, 0xca, 0x2b, 0x94, 0xd1, 0x96, + 0x6d, 0x5b, 0x8d, 0xc6, 0x76, 0x73, 0xad, 0xa1, 0xb7, 0x4a, 0xaa, 0x36, 0x07, 0xd3, 0xfe, 0xeb, + 0x7a, 0xa3, 0xbe, 0x5a, 0xca, 0x6b, 0x67, 0xe0, 0xd4, 0x5a, 0xb9, 0xb9, 0x5d, 0xab, 0x5f, 0x28, + 0xaf, 0xd7, 0x96, 0xb7, 0x2b, 0x6b, 0x65, 0xbd, 0x59, 0x2a, 0x68, 0x37, 0xc0, 0x99, 0x56, 0xad, + 0xaa, 0x6f, 0xaf, 0x54, 0xcb, 0xad, 0x2d, 0xbd, 0xda, 0xdc, 0xae, 0x37, 0xb6, 0xeb, 0xe5, 0x8d, + 0x6a, 0xa9, 0xe8, 0x37, 0x7f, 0xf2, 0x29, 0x52, 0x9b, 0xa9, 0xc3, 0xca, 0x38, 0x1d, 0xa3, 0x8c, + 0x33, 0xfd, 0xca, 0x08, 0xbc, 0x5a, 0xe9, 0xd5, 0x66, 0x55, 0xbf, 0x50, 0x2d, 0xcd, 0x0e, 0xd2, + 0xb5, 0x39, 0xed, 0x34, 0x94, 0x7c, 0x1e, 0xb6, 0x6b, 0xcd, 0x20, 0xe7, 0x72, 0x69, 0x1e, 0x7d, + 0xb4, 0x08, 0x67, 0x75, 0xbc, 0x6b, 0xba, 0x1e, 0x76, 0x36, 0x8d, 0x6b, 0xfb, 0xd8, 0xf2, 0x82, + 0x4e, 0xfe, 0x9f, 0x53, 0x2b, 0xe3, 0x06, 0xcc, 0xf7, 0x28, 0x8d, 0x0d, 0xec, 0xed, 0xd9, 0x1d, + 0x36, 0x0a, 0x3f, 0x29, 0xb6, 0xe7, 0x58, 0xdc, 0xe4, 0xb3, 0xeb, 0xe2, 0xdf, 0x9c, 0x6e, 0xab, + 0x09, 0xba, 0x9d, 0x1f, 0x45, 0xb7, 0xb5, 0x9b, 0x60, 0xe6, 0xc0, 0xc5, 0x4e, 0x75, 0xdf, 0x30, + 0xbb, 0xc1, 0xd5, 0x91, 0x61, 0x02, 0x7a, 0x7b, 0x5e, 0xf6, 0xc4, 0x0a, 0x57, 0x97, 0xc1, 0x62, + 0x8c, 0xe9, 0x5b, 0x6f, 0x06, 0x60, 0x95, 0xdd, 0x72, 0xba, 0x4c, 0x59, 0xb9, 0x14, 0x9f, 0xbf, + 0x4b, 0x66, 0xb7, 0x6b, 0x5a, 0xbb, 0xe1, 0xbe, 0x7f, 0x94, 0x80, 0x5e, 0xa1, 0xca, 0x9c, 0x60, + 0x49, 0xcb, 0x5b, 0xba, 0xd6, 0xf4, 0x32, 0x65, 0xc2, 0xfd, 0xee, 0xe1, 0xa6, 0x53, 0xd4, 0x4a, + 0x30, 0x47, 0xd2, 0x58, 0x0b, 0x2c, 0x4d, 0xf9, 0x7d, 0x70, 0x40, 0x6e, 0xa3, 0xda, 0x5a, 0x6b, + 0x2c, 0x87, 0xdf, 0xa6, 0x7d, 0x92, 0x3e, 0x33, 0xe5, 0xfa, 0xc3, 0xa4, 0x35, 0xce, 0x68, 0x8f, + 0x83, 0x1b, 0xb8, 0x0e, 0xbb, 0xbc, 0xae, 0x57, 0xcb, 0xcb, 0x0f, 0x6f, 0x57, 0x9f, 0x57, 0x6b, + 0xb6, 0x9a, 0x62, 0xe3, 0x0a, 0xda, 0xd1, 0xac, 0xcf, 0x6f, 0x75, 0xa3, 0x5c, 0x5b, 0x67, 0xfd, + 0xfb, 0x4a, 0x43, 0xdf, 0x28, 0xb7, 0x4a, 0x73, 0xe8, 0x27, 0x54, 0x28, 0xad, 0x62, 0x6f, 0xd3, + 0x76, 0x3c, 0xa3, 0xbb, 0x6e, 0x5a, 0x97, 0xb7, 0x9c, 0xae, 0x30, 0xd9, 0x94, 0x0e, 0xd3, 0x21, + 0x0e, 0x91, 0x02, 0xc1, 0xf8, 0x1d, 0xf1, 0x1e, 0xc9, 0x16, 0x29, 0x53, 0x94, 0x80, 0x5e, 0xa0, + 0xc8, 0x2c, 0x77, 0xcb, 0x97, 0x9a, 0x4e, 0x4f, 0x5e, 0x38, 0xe9, 0xf1, 0x79, 0x00, 0x6a, 0x45, + 0xf4, 0x92, 0x3c, 0x4c, 0xaf, 0x98, 0x96, 0xd1, 0x35, 0x9f, 0x2f, 0x44, 0xc7, 0x8c, 0xfa, 0x98, + 0x5c, 0x42, 0x1f, 0xa3, 0x8c, 0x34, 0x7e, 0xfe, 0xb0, 0x2a, 0xbb, 0xbc, 0xc0, 0xc9, 0x3e, 0x60, + 0x32, 0x66, 0xf0, 0xfc, 0xa0, 0x22, 0xb3, 0xbc, 0x30, 0x9c, 0x5e, 0x3a, 0x0c, 0x3f, 0xfe, 0xef, + 0xc3, 0xc6, 0xea, 0x6b, 0xdf, 0xd3, 0x83, 0x54, 0x61, 0x06, 0xfd, 0x81, 0x0a, 0x68, 0x15, 0x7b, + 0x17, 0xb0, 0x13, 0x4e, 0x05, 0x48, 0xaf, 0xcf, 0xec, 0x6d, 0xae, 0xc9, 0xbe, 0x99, 0x07, 0xf0, + 0xa2, 0x08, 0x60, 0x39, 0xa1, 0xf1, 0xc4, 0x90, 0x8e, 0x69, 0xbc, 0x35, 0x28, 0xba, 0xe4, 0x3b, + 0x53, 0xb3, 0xa7, 0xc5, 0x0f, 0x97, 0x84, 0x18, 0x4f, 0x9d, 0x12, 0xd6, 0x19, 0x01, 0xf4, 0xd5, + 0x70, 0x12, 0xf4, 0xad, 0x82, 0x76, 0xac, 0x1c, 0x99, 0xd9, 0x74, 0xfa, 0xe2, 0x64, 0xab, 0x2e, + 0x83, 0xec, 0x1b, 0xf4, 0xc1, 0x02, 0x9c, 0x1e, 0x54, 0x1d, 0xf4, 0x4b, 0x39, 0x61, 0x87, 0x1d, + 0x93, 0x21, 0x3f, 0xc7, 0x36, 0x10, 0xfd, 0x17, 0xed, 0x19, 0x70, 0x26, 0x5c, 0x86, 0x6b, 0xd9, + 0x75, 0x7c, 0xd5, 0xed, 0x62, 0xcf, 0xc3, 0x0e, 0xa9, 0xda, 0xb4, 0x3e, 0xf8, 0xa3, 0xf6, 0x2c, + 0xb8, 0xde, 0xb4, 0x5c, 0xb3, 0x83, 0x9d, 0x96, 0xd9, 0x73, 0xcb, 0x56, 0xa7, 0x75, 0xe0, 0xd9, + 0x8e, 0x69, 0xb0, 0x8b, 0x0e, 0xa7, 0xf5, 0xb8, 0xcf, 0xda, 0x1d, 0x50, 0x32, 0xdd, 0x86, 0x75, + 0xc9, 0x36, 0x9c, 0x8e, 0x69, 0xed, 0xae, 0x9b, 0xae, 0xc7, 0x3c, 0x80, 0x0f, 0xa5, 0xa3, 0xbf, + 0x51, 0x65, 0x0f, 0xd3, 0x0d, 0x81, 0x35, 0xa6, 0x43, 0xf9, 0x5e, 0x55, 0xe6, 0x78, 0x5c, 0x3a, + 0xda, 0xe9, 0x94, 0xe5, 0xc5, 0x93, 0x36, 0x24, 0x06, 0x8f, 0xe0, 0xa4, 0x6b, 0xa1, 0xe9, 0x81, + 0x21, 0x70, 0xa1, 0xaa, 0xd7, 0x56, 0x6a, 0x55, 0xdf, 0xac, 0x38, 0x03, 0xa7, 0xa2, 0x6f, 0xcb, + 0x0f, 0x6f, 0x37, 0xab, 0xf5, 0x56, 0x69, 0xda, 0xef, 0xa7, 0x68, 0xf2, 0x4a, 0xb9, 0xb6, 0x5e, + 0x5d, 0xde, 0x6e, 0x35, 0xfc, 0x2f, 0xcb, 0xa3, 0x99, 0x16, 0xe8, 0x45, 0x79, 0x38, 0x49, 0x64, + 0x7b, 0x8d, 0x48, 0xd5, 0x17, 0x4a, 0x9f, 0xaf, 0x6d, 0x08, 0xd0, 0x0c, 0x15, 0x2f, 0xfa, 0x7d, + 0xe9, 0x7b, 0x1c, 0x39, 0x08, 0xfb, 0xca, 0x88, 0xd1, 0x8c, 0xaf, 0x28, 0x32, 0x11, 0x2a, 0xa4, + 0xc9, 0xa6, 0x53, 0x8a, 0x7f, 0x99, 0xf4, 0x88, 0x13, 0x0f, 0x3e, 0xb1, 0x32, 0x2b, 0xe4, 0xe7, + 0xe7, 0x6d, 0xd6, 0x74, 0xa2, 0x0e, 0x0b, 0x00, 0x24, 0x85, 0x68, 0x10, 0xd5, 0x83, 0x81, 0xe3, + 0x55, 0x9c, 0x1e, 0x94, 0x2b, 0xad, 0xda, 0x85, 0x6a, 0x9c, 0x1e, 0x7c, 0x52, 0x85, 0xe9, 0x55, + 0xec, 0xf9, 0x73, 0x2a, 0x17, 0x3d, 0x5b, 0x62, 0xfd, 0xc7, 0x37, 0x63, 0xc8, 0xc5, 0xf7, 0xe1, + 0x32, 0x00, 0x7d, 0x43, 0xdf, 0x33, 0x8a, 0x09, 0x12, 0x14, 0x1d, 0x33, 0x5e, 0x7d, 0x33, 0x14, + 0x3c, 0xff, 0x33, 0x5b, 0x86, 0xfe, 0x86, 0xd8, 0xe1, 0xca, 0x27, 0xb2, 0x6c, 0x78, 0x86, 0x4e, + 0xf3, 0x73, 0xa3, 0x93, 0xa4, 0xed, 0x12, 0xc3, 0xc8, 0xbf, 0x47, 0xfb, 0xf3, 0x2f, 0x55, 0x38, + 0x43, 0xdb, 0x47, 0xb9, 0xd7, 0x6b, 0x7a, 0xb6, 0x83, 0x75, 0xdc, 0xc6, 0x66, 0xcf, 0xeb, 0x5b, + 0xdf, 0x73, 0x68, 0x6a, 0xb0, 0xd9, 0xcc, 0x5e, 0xd1, 0xcf, 0xa8, 0xb2, 0x11, 0x7e, 0x0f, 0xb5, + 0xc7, 0xbe, 0xf2, 0x62, 0x1a, 0xfb, 0x47, 0x14, 0x99, 0x98, 0xbd, 0x29, 0x89, 0xa7, 0x03, 0xea, + 0xd7, 0x8f, 0x01, 0xa8, 0x60, 0xe5, 0x46, 0xaf, 0x56, 0xaa, 0xb5, 0x4d, 0x7f, 0x10, 0x78, 0x3c, + 0xdc, 0xb8, 0xb9, 0xa5, 0x57, 0xd6, 0xca, 0xcd, 0xea, 0xb6, 0x5e, 0x5d, 0xad, 0x35, 0x5b, 0xcc, + 0x29, 0x8b, 0xfe, 0x35, 0xa5, 0xdd, 0x04, 0xe7, 0x9a, 0x5b, 0x4b, 0xcd, 0x8a, 0x5e, 0xdb, 0x24, + 0xe9, 0x7a, 0xb5, 0x5e, 0xbd, 0xc8, 0xbe, 0x4e, 0xa3, 0x0f, 0x94, 0x60, 0xd6, 0x9f, 0x00, 0x34, + 0xe9, 0xbc, 0x00, 0xfd, 0x5d, 0x1e, 0x66, 0x75, 0xec, 0xda, 0xdd, 0x2b, 0x64, 0x8e, 0x30, 0xa9, + 0xa9, 0xc7, 0x97, 0x55, 0xd9, 0xf3, 0xdb, 0x1c, 0xb3, 0x8b, 0x1c, 0xa3, 0xf1, 0x13, 0x4d, 0xe3, + 0x8a, 0x61, 0x76, 0x8d, 0x4b, 0xac, 0xab, 0x99, 0xd6, 0xa3, 0x04, 0x6d, 0x11, 0x34, 0xfb, 0xaa, + 0x85, 0x9d, 0x66, 0xfb, 0x6a, 0xd5, 0xdb, 0x2b, 0x77, 0x3a, 0x0e, 0x76, 0x5d, 0xb6, 0x7a, 0x31, + 0xe0, 0x8b, 0x76, 0x3b, 0x9c, 0x24, 0xa9, 0x5c, 0x66, 0xea, 0x20, 0xd3, 0x9f, 0x1c, 0xe6, 0x2c, + 0x5b, 0xd7, 0x82, 0x9c, 0x05, 0x2e, 0x67, 0x94, 0xcc, 0x1f, 0x97, 0x28, 0x8a, 0xa7, 0x74, 0x6e, + 0x81, 0x59, 0xcb, 0xd8, 0xc7, 0xd5, 0x47, 0x7b, 0xa6, 0x83, 0x5d, 0xe2, 0x18, 0xa3, 0xea, 0x7c, + 0x12, 0xfa, 0xa0, 0xd4, 0x79, 0x73, 0x39, 0x89, 0xa5, 0xd3, 0xfd, 0xd5, 0x11, 0x54, 0x7f, 0x40, + 0x3f, 0xa3, 0xa2, 0x0f, 0xa8, 0x30, 0xc7, 0x98, 0x2a, 0x5b, 0xd7, 0x6a, 0x1d, 0xf4, 0x78, 0xc1, + 0xf8, 0x35, 0xfc, 0xb4, 0xc0, 0xf8, 0x25, 0x2f, 0xe8, 0xfb, 0x55, 0x59, 0x77, 0xe7, 0x01, 0x15, + 0x27, 0x65, 0xc4, 0x3b, 0x8e, 0xee, 0xd8, 0x07, 0xcc, 0x51, 0x75, 0x5a, 0xa7, 0x2f, 0x59, 0x2e, + 0xea, 0xa1, 0x5f, 0x93, 0x72, 0xa6, 0x96, 0xac, 0xc6, 0x31, 0x01, 0xf8, 0x31, 0x15, 0x16, 0x18, + 0x57, 0x4d, 0x76, 0xce, 0x47, 0xea, 0xc0, 0xdb, 0x0f, 0x48, 0x1b, 0x82, 0x03, 0xea, 0xcf, 0x4a, + 0x7a, 0xcc, 0x00, 0xf9, 0x21, 0xa9, 0xe0, 0x68, 0xd2, 0x15, 0x39, 0x26, 0x28, 0xdf, 0x91, 0x87, + 0xd9, 0x2d, 0x17, 0x3b, 0xcc, 0x6f, 0x1f, 0xbd, 0x3e, 0x0f, 0xea, 0x2a, 0x16, 0x36, 0x52, 0x5f, + 0x2e, 0xed, 0xe1, 0xcb, 0x57, 0x96, 0x23, 0xea, 0xdb, 0x48, 0x31, 0xb0, 0xdd, 0x06, 0x0b, 0x54, + 0xa4, 0x65, 0xcf, 0xf3, 0x8d, 0xc4, 0xc0, 0x9b, 0xb6, 0x2f, 0x75, 0x1c, 0x5b, 0x45, 0xa4, 0x2c, + 0x3f, 0x4b, 0xc5, 0xe7, 0x69, 0x1d, 0xef, 0xd0, 0xf9, 0x6c, 0x5e, 0xef, 0x4b, 0x25, 0x97, 0xeb, + 0xf7, 0x30, 0x3d, 0xbf, 0xc2, 0x65, 0x2e, 0x90, 0xcc, 0x83, 0x3e, 0xa1, 0xbf, 0x93, 0xf2, 0xd5, + 0x95, 0x97, 0x4e, 0x3a, 0x5d, 0xe8, 0x8d, 0xc7, 0x24, 0x39, 0x0d, 0x25, 0x3f, 0x07, 0xd9, 0x7f, + 0xd1, 0xab, 0xcd, 0xc6, 0xfa, 0x85, 0xea, 0xe0, 0x65, 0x8c, 0x02, 0x7a, 0xb1, 0x0a, 0x33, 0x4b, + 0x8e, 0x6d, 0x74, 0xda, 0x86, 0xeb, 0xa1, 0xaf, 0x2a, 0x30, 0xb7, 0x69, 0x5c, 0xeb, 0xda, 0x46, + 0x87, 0xf8, 0xf7, 0xf7, 0xf5, 0x05, 0x3d, 0xfa, 0x29, 0xe8, 0x0b, 0xd8, 0xab, 0x78, 0x30, 0x30, + 0x3c, 0xba, 0x97, 0x93, 0xb9, 0xae, 0x31, 0xdc, 0xe6, 0x53, 0x06, 0x05, 0x2b, 0x0d, 0xf8, 0x5a, + 0xe4, 0x79, 0x8a, 0xb1, 0x28, 0x3f, 0x20, 0x17, 0x7e, 0x54, 0x86, 0xe4, 0xf1, 0xec, 0xca, 0xbf, + 0x64, 0x1a, 0x8a, 0xcb, 0x98, 0x58, 0x71, 0xff, 0x4d, 0x81, 0xa9, 0x26, 0xf6, 0x88, 0x05, 0x77, + 0x8f, 0xe0, 0x29, 0xdc, 0x21, 0x19, 0x22, 0x27, 0xf6, 0xe0, 0xdd, 0x9f, 0xac, 0x73, 0xe7, 0xad, + 0xc9, 0x73, 0x0a, 0x8f, 0x44, 0x5a, 0xee, 0x22, 0x2b, 0xf3, 0x48, 0x1e, 0x89, 0x89, 0xa4, 0xb2, + 0xf7, 0xb5, 0x7a, 0x97, 0xc2, 0x5c, 0xab, 0xb8, 0x5e, 0xef, 0xa7, 0x78, 0xfd, 0x4c, 0xf4, 0x36, + 0x63, 0xcc, 0x27, 0x38, 0x47, 0x3d, 0x1d, 0xa6, 0xa8, 0xcc, 0x83, 0xf9, 0x68, 0xbf, 0x9f, 0x02, + 0x25, 0x41, 0xce, 0x5e, 0x07, 0x39, 0x25, 0x5d, 0xd4, 0xe2, 0x0b, 0x9f, 0x48, 0x0c, 0x82, 0xb9, + 0x3a, 0xf6, 0xae, 0xda, 0xce, 0xe5, 0xa6, 0x67, 0x78, 0x18, 0xfd, 0x8b, 0x02, 0x6a, 0x13, 0x7b, + 0x7c, 0xf4, 0x93, 0x3a, 0x9c, 0xa2, 0x15, 0x62, 0x19, 0x49, 0xff, 0x4d, 0x2b, 0x72, 0xcb, 0x40, + 0x21, 0x70, 0xf9, 0xf4, 0xc3, 0xbf, 0xa2, 0x1f, 0x1d, 0x18, 0xf4, 0x49, 0x19, 0x30, 0x69, 0x60, + 0x92, 0xe1, 0x19, 0xf4, 0x15, 0x2c, 0x46, 0x4f, 0x7f, 0x55, 0xca, 0xac, 0x96, 0xa3, 0x79, 0x3c, + 0x5d, 0xc1, 0x87, 0x6e, 0x80, 0x7c, 0x65, 0xcf, 0xf0, 0xd0, 0x3b, 0x55, 0x80, 0x72, 0xa7, 0xb3, + 0x41, 0x7d, 0xc0, 0x79, 0x87, 0xb4, 0xf3, 0x30, 0xd7, 0xde, 0x33, 0xa2, 0x9b, 0x33, 0x68, 0x7f, + 0x20, 0xa4, 0x69, 0xcf, 0x88, 0x9c, 0xc9, 0xa9, 0x54, 0x51, 0x1f, 0x4c, 0x7e, 0x19, 0x8c, 0x76, + 0xe8, 0x68, 0x2e, 0x86, 0xc2, 0x4c, 0x3c, 0x42, 0xe7, 0xff, 0xbe, 0x18, 0xb1, 0x17, 0x3f, 0x87, + 0x63, 0xa4, 0xc3, 0x03, 0x36, 0x51, 0x42, 0xca, 0x93, 0xde, 0x72, 0x01, 0x3d, 0x92, 0xf9, 0x9a, + 0x48, 0xe8, 0x5a, 0xad, 0xda, 0x31, 0x03, 0xd1, 0xb2, 0x80, 0x59, 0xe8, 0x65, 0xb9, 0x74, 0xf0, + 0x25, 0x0b, 0xee, 0xb9, 0x30, 0x8f, 0x3b, 0xa6, 0x87, 0x83, 0x5a, 0x32, 0x01, 0x26, 0x41, 0x2c, + 0xfe, 0x80, 0x5e, 0x28, 0x1d, 0x74, 0x8d, 0x08, 0xf4, 0x70, 0x8d, 0x62, 0xda, 0x9f, 0x5c, 0x18, + 0x35, 0x39, 0x9a, 0xd9, 0x83, 0xf5, 0x3d, 0x2a, 0x9c, 0x69, 0xd9, 0xbb, 0xbb, 0x5d, 0x1c, 0x88, + 0x09, 0x53, 0xef, 0x4c, 0x64, 0x8c, 0x13, 0x2e, 0xb2, 0x13, 0x64, 0x3f, 0x62, 0x86, 0x47, 0xc9, + 0xfc, 0x17, 0xf1, 0xc4, 0x54, 0xe2, 0x2c, 0x8a, 0x88, 0x6b, 0x20, 0x9f, 0x31, 0x28, 0xc8, 0x05, + 0x7c, 0x96, 0x26, 0x9b, 0x3d, 0x10, 0x9f, 0x51, 0x60, 0x9e, 0xde, 0x8b, 0x18, 0x28, 0xe8, 0x43, + 0x63, 0x04, 0x00, 0x7d, 0x35, 0x27, 0xeb, 0x67, 0x4b, 0x64, 0x22, 0x70, 0x12, 0x23, 0x62, 0xb9, + 0xa0, 0x2a, 0x43, 0xc9, 0x65, 0x2f, 0xda, 0xdf, 0x51, 0x61, 0x76, 0x15, 0x07, 0x2d, 0xcd, 0x4d, + 0xdd, 0x13, 0x9d, 0x87, 0x39, 0x72, 0x39, 0x58, 0x83, 0x1d, 0x93, 0xa4, 0xab, 0x66, 0x42, 0x9a, + 0x76, 0x2b, 0xcc, 0x5f, 0xc2, 0x3b, 0xb6, 0x83, 0x1b, 0xc2, 0x59, 0x4a, 0x31, 0x31, 0x26, 0x3c, + 0x9d, 0x10, 0x07, 0x6d, 0x49, 0xc4, 0xe6, 0xce, 0xc3, 0xc2, 0xe4, 0xaa, 0x12, 0x33, 0xe6, 0x3c, + 0x13, 0xa6, 0x19, 0xf2, 0x81, 0x99, 0x96, 0xd4, 0x2f, 0x86, 0x79, 0xd1, 0x4f, 0x87, 0x88, 0x56, + 0x05, 0x44, 0x9f, 0x96, 0x86, 0x89, 0x89, 0xdc, 0x1e, 0x5e, 0xe2, 0xca, 0x5f, 0xba, 0x56, 0xeb, + 0xb8, 0x68, 0x23, 0x1d, 0xa6, 0x37, 0x03, 0x84, 0x8d, 0x23, 0x08, 0x6b, 0xc1, 0xa5, 0x88, 0x91, + 0xeb, 0x13, 0x0f, 0xea, 0xf5, 0x8b, 0x83, 0xb0, 0x33, 0x66, 0x60, 0xe4, 0x0e, 0xf8, 0xc9, 0x70, + 0x92, 0x3d, 0x3a, 0x9f, 0x50, 0xe1, 0x4c, 0x78, 0xfe, 0x68, 0xdd, 0x70, 0xa3, 0x76, 0x57, 0x49, + 0x07, 0x91, 0x70, 0xe0, 0x23, 0x6c, 0x2c, 0x7f, 0x9f, 0x6e, 0xcc, 0x18, 0xc8, 0xc9, 0x78, 0xd1, + 0xd1, 0xee, 0x84, 0x53, 0xd6, 0xc1, 0x7e, 0x28, 0x75, 0xd2, 0xe2, 0x59, 0x0b, 0x3f, 0xfc, 0x21, + 0xcd, 0xc8, 0x24, 0xc3, 0xfc, 0x44, 0xe6, 0x94, 0xc2, 0x91, 0xae, 0xa7, 0xa4, 0x82, 0x11, 0xfd, + 0x53, 0x2e, 0x55, 0xef, 0x36, 0xfc, 0xcc, 0x57, 0x8a, 0x5e, 0xea, 0x18, 0x0f, 0x7c, 0x9d, 0x9f, + 0x82, 0x42, 0x75, 0xbf, 0xe7, 0x5d, 0x3b, 0xff, 0x44, 0x98, 0x6f, 0x7a, 0x0e, 0x36, 0xf6, 0xb9, + 0x9d, 0x01, 0xcf, 0xbe, 0x8c, 0xad, 0x60, 0x67, 0x80, 0xbc, 0xdc, 0x7b, 0x0f, 0x4c, 0x59, 0xf6, + 0xb6, 0x71, 0xe0, 0xed, 0x69, 0x8f, 0x3f, 0x74, 0xa4, 0x9e, 0x81, 0xdf, 0x60, 0x31, 0x8c, 0xbe, + 0x70, 0x1f, 0x59, 0x1b, 0x2e, 0x5a, 0x76, 0xf9, 0xc0, 0xdb, 0x5b, 0xba, 0xe9, 0x63, 0x7f, 0x7e, + 0x73, 0xee, 0x93, 0x7f, 0x7e, 0x73, 0xee, 0xf3, 0x7f, 0x7e, 0x73, 0xee, 0x07, 0xfe, 0xe2, 0xe6, + 0x13, 0x9f, 0xfc, 0x8b, 0x9b, 0x4f, 0x7c, 0xe6, 0x2f, 0x6e, 0x3e, 0xf1, 0xad, 0x4a, 0xef, 0xd2, + 0xa5, 0x22, 0xa1, 0xf2, 0xf4, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xcc, 0xbe, 0x1b, 0x0d, 0x0b, + 0x10, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -78660,259 +78215,6 @@ func (m *RpcAccountRevertDeletionResponseError) MarshalToSizedBuffer(dAtA []byte return len(dAtA) - i, nil } -func (m *RpcAccountMigrate) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrate) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrate) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.RootPath) > 0 { - i -= len(m.RootPath) - copy(dAtA[i:], m.RootPath) - i = encodeVarintCommands(dAtA, i, uint64(len(m.RootPath))) - i-- - dAtA[i] = 0x12 - } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Error != nil { - { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateResponseError) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateResponseError) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if m.Code != 0 { - i = encodeVarintCommands(dAtA, i, uint64(m.Code)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateCancel) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateCancel) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateCancel) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateCancelRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateCancelRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateCancelRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateCancelResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateCancelResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateCancelResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Error != nil { - { - size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcAccountMigrateCancelResponseError) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RpcAccountMigrateCancelResponseError) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcAccountMigrateCancelResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Description) > 0 { - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x12 - } - if m.Code != 0 { - i = encodeVarintCommands(dAtA, i, uint64(m.Code)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - func (m *RpcAccountSelect) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -122368,112 +121670,6 @@ func (m *RpcAccountRevertDeletionResponseError) Size() (n int) { return n } -func (m *RpcAccountMigrate) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *RpcAccountMigrateRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Id) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - l = len(m.RootPath) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcAccountMigrateResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcAccountMigrateResponseError) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Code != 0 { - n += 1 + sovCommands(uint64(m.Code)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcAccountMigrateCancel) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *RpcAccountMigrateCancelRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Id) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcAccountMigrateCancelResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Error != nil { - l = m.Error.Size() - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - -func (m *RpcAccountMigrateCancelResponseError) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Code != 0 { - n += 1 + sovCommands(uint64(m.Code)) - } - l = len(m.Description) - if l > 0 { - n += 1 + l + sovCommands(uint64(l)) - } - return n -} - func (m *RpcAccountSelect) Size() (n int) { if m == nil { return 0 @@ -150707,676 +149903,6 @@ func (m *RpcAccountRevertDeletionResponseError) Unmarshal(dAtA []byte) error { } return nil } -func (m *RpcAccountMigrate) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Migrate: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Migrate: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Id = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RootPath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RootPath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Response: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCommands - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Error == nil { - m.Error = &RpcAccountMigrateResponseError{} - } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateResponseError) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) - } - m.Code = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Code |= RpcAccountMigrateResponseErrorCode(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateCancel) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MigrateCancel: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MigrateCancel: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateCancelRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Request: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Id = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateCancelResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Response: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthCommands - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Error == nil { - m.Error = &RpcAccountMigrateCancelResponseError{} - } - if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RpcAccountMigrateCancelResponseError) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Error: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) - } - m.Code = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Code |= RpcAccountMigrateCancelResponseErrorCode(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowCommands - } - 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 ErrInvalidLengthCommands - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthCommands - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipCommands(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthCommands - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *RpcAccountSelect) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 1146832b7..e1dbc6f4e 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -812,54 +812,6 @@ message Rpc { } } - message Migrate { - message Request { - option (no_auth) = true; - string id = 1; // Id of a selected account - string rootPath = 2; - } - - message Response { - Error error = 1; - message Error { - Code code = 1; - string description = 2; - - enum Code { - NULL = 0; // No error - UNKNOWN_ERROR = 1; // Any other errors - BAD_INPUT = 2; // Id or root path is wrong - - ACCOUNT_NOT_FOUND = 101; - CANCELED = 102; - NOT_ENOUGH_FREE_SPACE = 103; - // TODO: [storage] Add specific error codes for migration problems - } - } - } - } - - message MigrateCancel { - message Request { - option (no_auth) = true; - string id = 1; // Id of a selected account - } - - message Response { - Error error = 1; - message Error { - Code code = 1; - string description = 2; - - enum Code { - NULL = 0; // No error - UNKNOWN_ERROR = 1; // Any other errors - BAD_INPUT = 2; // Id or root path is wrong - } - } - } - } - message Select { /** * Front end to middleware request-to-launch-a specific account using account id and a root path @@ -902,7 +854,6 @@ message Rpc { FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION = 110; ACCOUNT_IS_DELETED = 111; ACCOUNT_LOAD_IS_CANCELED = 112; - ACCOUNT_STORE_NOT_MIGRATED = 113; CONFIG_FILE_NOT_FOUND = 200; CONFIG_FILE_INVALID = 201; diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 53348c00f..821eb694c 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -732,7 +732,7 @@ message Event { FaviconHash faviconHash = 6; Type type = 7; TargetObjectId targetObjectId = 8; - + message Url { string value = 1; diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index b058062f7..d902dbfc8 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -36,8 +36,6 @@ service ClientCommands { // Account // *** rpc AccountRecover (anytype.Rpc.Account.Recover.Request) returns (anytype.Rpc.Account.Recover.Response); - rpc AccountMigrate (anytype.Rpc.Account.Migrate.Request) returns (anytype.Rpc.Account.Migrate.Response); - rpc AccountMigrateCancel (anytype.Rpc.Account.MigrateCancel.Request) returns (anytype.Rpc.Account.MigrateCancel.Response); rpc AccountCreate (anytype.Rpc.Account.Create.Request) returns (anytype.Rpc.Account.Create.Response); rpc AccountDelete (anytype.Rpc.Account.Delete.Request) returns (anytype.Rpc.Account.Delete.Response); rpc AccountRevertDeletion (anytype.Rpc.Account.RevertDeletion.Request) returns (anytype.Rpc.Account.RevertDeletion.Response); diff --git a/pb/service/mock_service/mock_ClientCommandsServer.go b/pb/service/mock_service/mock_ClientCommandsServer.go index b4ecaa973..439212bb9 100644 --- a/pb/service/mock_service/mock_ClientCommandsServer.go +++ b/pb/service/mock_service/mock_ClientCommandsServer.go @@ -416,104 +416,6 @@ func (_c *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call) RunAndRe return _c } -// AccountMigrate provides a mock function with given fields: _a0, _a1 -func (_m *MockClientCommandsServer) AccountMigrate(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { - ret := _m.Called(_a0, _a1) - - if len(ret) == 0 { - panic("no return value specified for AccountMigrate") - } - - var r0 *pb.RpcAccountMigrateResponse - if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse); ok { - r0 = rf(_a0, _a1) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*pb.RpcAccountMigrateResponse) - } - } - - return r0 -} - -// MockClientCommandsServer_AccountMigrate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrate' -type MockClientCommandsServer_AccountMigrate_Call struct { - *mock.Call -} - -// AccountMigrate is a helper method to define mock.On call -// - _a0 context.Context -// - _a1 *pb.RpcAccountMigrateRequest -func (_e *MockClientCommandsServer_Expecter) AccountMigrate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrate_Call { - return &MockClientCommandsServer_AccountMigrate_Call{Call: _e.mock.On("AccountMigrate", _a0, _a1)} -} - -func (_c *MockClientCommandsServer_AccountMigrate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest)) *MockClientCommandsServer_AccountMigrate_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateRequest)) - }) - return _c -} - -func (_c *MockClientCommandsServer_AccountMigrate_Call) Return(_a0 *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientCommandsServer_AccountMigrate_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call { - _c.Call.Return(run) - return _c -} - -// AccountMigrateCancel provides a mock function with given fields: _a0, _a1 -func (_m *MockClientCommandsServer) AccountMigrateCancel(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { - ret := _m.Called(_a0, _a1) - - if len(ret) == 0 { - panic("no return value specified for AccountMigrateCancel") - } - - var r0 *pb.RpcAccountMigrateCancelResponse - if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse); ok { - r0 = rf(_a0, _a1) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*pb.RpcAccountMigrateCancelResponse) - } - } - - return r0 -} - -// MockClientCommandsServer_AccountMigrateCancel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrateCancel' -type MockClientCommandsServer_AccountMigrateCancel_Call struct { - *mock.Call -} - -// AccountMigrateCancel is a helper method to define mock.On call -// - _a0 context.Context -// - _a1 *pb.RpcAccountMigrateCancelRequest -func (_e *MockClientCommandsServer_Expecter) AccountMigrateCancel(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrateCancel_Call { - return &MockClientCommandsServer_AccountMigrateCancel_Call{Call: _e.mock.On("AccountMigrateCancel", _a0, _a1)} -} - -func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest)) *MockClientCommandsServer_AccountMigrateCancel_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateCancelRequest)) - }) - return _c -} - -func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Return(_a0 *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call { - _c.Call.Return(run) - return _c -} - // AccountMove provides a mock function with given fields: _a0, _a1 func (_m *MockClientCommandsServer) AccountMove(_a0 context.Context, _a1 *pb.RpcAccountMoveRequest) *pb.RpcAccountMoveResponse { ret := _m.Called(_a0, _a1) diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 9d3774271..1f06d85ab 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,352 +26,350 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5514 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, - 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, - 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x82, 0x1e, 0x7b, 0xec, 0xf5, - 0x9d, 0xed, 0x35, 0xee, 0xf6, 0x8c, 0xb4, 0x12, 0x12, 0xe5, 0xaa, 0x74, 0xbb, 0x70, 0x75, 0x65, - 0x5d, 0x55, 0x76, 0x7b, 0xfa, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x9c, 0xf8, 0x27, 0x78, 0x42, - 0x42, 0x7c, 0x00, 0x3e, 0x06, 0x8f, 0xf7, 0xc8, 0x23, 0xda, 0xfd, 0x0a, 0x7c, 0x00, 0x54, 0xf9, - 0x3f, 0xa3, 0x32, 0xb2, 0xca, 0xcb, 0xd3, 0x8c, 0x1c, 0xbf, 0x88, 0xc8, 0xac, 0x8c, 0xcc, 0x8c, - 0xcc, 0xca, 0xca, 0x8e, 0xee, 0x96, 0x17, 0x3b, 0x65, 0x45, 0x19, 0xad, 0x77, 0x6a, 0x52, 0x2d, - 0xb3, 0x84, 0xa8, 0x7f, 0x47, 0xfc, 0xcf, 0xc3, 0x37, 0xe3, 0x62, 0xc5, 0x56, 0x25, 0x79, 0xef, - 0x5d, 0x43, 0x26, 0x74, 0x3e, 0x8f, 0x8b, 0xb4, 0x16, 0xc8, 0x7b, 0xef, 0x18, 0x09, 0x59, 0x92, - 0x82, 0xc9, 0xbf, 0x3f, 0xfd, 0x8f, 0xff, 0x1d, 0x44, 0x6f, 0xed, 0xe6, 0x19, 0x29, 0xd8, 0xae, - 0xd4, 0x18, 0x7e, 0x19, 0x7d, 0x7b, 0x5c, 0x96, 0x07, 0x84, 0xbd, 0x24, 0x55, 0x9d, 0xd1, 0x62, - 0xf8, 0xc1, 0x48, 0x3a, 0x18, 0x9d, 0x95, 0xc9, 0x68, 0x5c, 0x96, 0x23, 0x23, 0x1c, 0x9d, 0x91, - 0x1f, 0x2f, 0x48, 0xcd, 0xde, 0x7b, 0x10, 0x86, 0xea, 0x92, 0x16, 0x35, 0x19, 0x5e, 0x46, 0xbf, - 0x32, 0x2e, 0xcb, 0x09, 0x61, 0x7b, 0xa4, 0xa9, 0xc0, 0x84, 0xc5, 0x8c, 0x0c, 0xd7, 0x5b, 0xaa, - 0x2e, 0xa0, 0x7d, 0x6c, 0x74, 0x83, 0xd2, 0xcf, 0x34, 0xfa, 0x56, 0xe3, 0xe7, 0x6a, 0xc1, 0x52, - 0x7a, 0x53, 0x0c, 0xdf, 0x6f, 0x2b, 0x4a, 0x91, 0xb6, 0x7d, 0x3f, 0x84, 0x48, 0xab, 0xaf, 0xa2, - 0x5f, 0x7c, 0x15, 0xe7, 0x39, 0x61, 0xbb, 0x15, 0x69, 0x0a, 0xee, 0xea, 0x08, 0xd1, 0x48, 0xc8, - 0xb4, 0xdd, 0x0f, 0x82, 0x8c, 0x34, 0xfc, 0x65, 0xf4, 0x6d, 0x21, 0x39, 0x23, 0x09, 0x5d, 0x92, - 0x6a, 0xe8, 0xd5, 0x92, 0x42, 0xe4, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x97, 0x16, 0x4b, 0x52, 0x31, - 0xbf, 0x6d, 0x29, 0x0c, 0xdb, 0x36, 0x90, 0xb4, 0xfd, 0x57, 0x83, 0xe8, 0xbb, 0xe3, 0x24, 0xa1, - 0x8b, 0x82, 0x1d, 0xd1, 0x24, 0xce, 0x8f, 0xb2, 0xe2, 0xfa, 0x84, 0xdc, 0xec, 0x5e, 0x35, 0x7c, - 0x31, 0x23, 0xc3, 0x67, 0xee, 0x53, 0x15, 0xe8, 0x48, 0xb3, 0x23, 0x1b, 0xd6, 0xbe, 0x3f, 0xba, - 0x9d, 0x92, 0x2c, 0xcb, 0xdf, 0x0d, 0xa2, 0x3b, 0xb0, 0x2c, 0x13, 0x9a, 0x2f, 0x89, 0x29, 0xcd, - 0xc7, 0x1d, 0x86, 0x5d, 0x5c, 0x97, 0xe7, 0x93, 0xdb, 0xaa, 0xc9, 0x12, 0xe5, 0xd1, 0xdb, 0x76, - 0xb8, 0x4c, 0x48, 0xcd, 0xbb, 0xd3, 0x23, 0x3c, 0x22, 0x24, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x4a, - 0x6f, 0x59, 0x34, 0x94, 0xde, 0x72, 0x5a, 0x6b, 0x67, 0x1b, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, - 0xea, 0x41, 0x4a, 0x57, 0xbf, 0x1f, 0xfd, 0xd2, 0x2b, 0x5a, 0x5d, 0xd7, 0x65, 0x9c, 0x10, 0xd9, - 0x15, 0x1e, 0xba, 0xda, 0x4a, 0x0a, 0x7b, 0xc3, 0x5a, 0x17, 0x66, 0x05, 0xad, 0x12, 0x7e, 0x51, - 0x12, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x88, 0x05, 0x2d, 0x84, 0xa4, 0xed, 0xeb, 0x68, 0x68, 0x6c, - 0x5f, 0xfc, 0x01, 0x49, 0xd8, 0x38, 0x4d, 0x61, 0xab, 0x18, 0x5d, 0x4e, 0x8c, 0xc6, 0x69, 0x8a, - 0xb5, 0x8a, 0x1f, 0x95, 0xce, 0x6e, 0xa2, 0x77, 0x80, 0xb3, 0xa3, 0xac, 0xe6, 0x0e, 0xb7, 0xc3, - 0x56, 0x24, 0xa6, 0x9d, 0x8e, 0xfa, 0xe2, 0xd2, 0xf1, 0x9f, 0x0c, 0xa2, 0xef, 0x78, 0x3c, 0x9f, - 0x91, 0x39, 0x5d, 0x92, 0xe1, 0x93, 0x6e, 0x6b, 0x82, 0xd4, 0xfe, 0x3f, 0xbc, 0x85, 0x86, 0x27, - 0x4c, 0x26, 0x24, 0x27, 0x09, 0x43, 0xc3, 0x44, 0x88, 0x3b, 0xc3, 0x44, 0x63, 0x56, 0x0f, 0x53, - 0xc2, 0x03, 0xc2, 0x76, 0x17, 0x55, 0x45, 0x0a, 0x86, 0xb6, 0xa5, 0x41, 0x3a, 0xdb, 0xd2, 0x41, - 0x3d, 0xf5, 0x39, 0x20, 0x6c, 0x9c, 0xe7, 0x68, 0x7d, 0x84, 0xb8, 0xb3, 0x3e, 0x1a, 0x93, 0x1e, - 0x92, 0xe8, 0x97, 0xad, 0x27, 0xc6, 0x0e, 0x8b, 0x4b, 0x3a, 0xc4, 0x9f, 0x05, 0x97, 0x6b, 0x1f, - 0xeb, 0x9d, 0x9c, 0xa7, 0x1a, 0x2f, 0x5e, 0x97, 0xb4, 0xc2, 0x9b, 0x45, 0x88, 0x3b, 0xab, 0xa1, - 0x31, 0xe9, 0xe1, 0xf7, 0xa2, 0xb7, 0xe4, 0x28, 0xa9, 0xe6, 0xb3, 0x07, 0xde, 0x21, 0x14, 0x4e, - 0x68, 0x0f, 0x3b, 0xa8, 0x96, 0xf9, 0xe3, 0x6c, 0x56, 0x35, 0xa3, 0x8f, 0xdf, 0xbc, 0x94, 0x76, - 0x98, 0x37, 0x94, 0x34, 0x4f, 0xa3, 0x5f, 0x75, 0xcd, 0xef, 0xc6, 0x45, 0x42, 0xf2, 0xe1, 0xe3, - 0x90, 0xba, 0x60, 0xb4, 0xab, 0xcd, 0x5e, 0xac, 0x19, 0xec, 0x24, 0x21, 0x07, 0xd3, 0x0f, 0xbc, - 0xda, 0x60, 0x28, 0x7d, 0x10, 0x86, 0x5a, 0xb6, 0xf7, 0x48, 0x4e, 0x50, 0xdb, 0x42, 0xd8, 0x61, - 0x5b, 0x43, 0xd2, 0x76, 0x15, 0xfd, 0x9a, 0x6e, 0xe6, 0x26, 0x2f, 0xe0, 0xf2, 0x66, 0xd2, 0xd9, - 0x44, 0xda, 0xd1, 0x86, 0xb4, 0xaf, 0xad, 0x7e, 0x70, 0xab, 0x3e, 0x72, 0x44, 0xf1, 0xd7, 0x07, - 0x8c, 0x27, 0x0f, 0xc2, 0x90, 0xb4, 0xfd, 0xd7, 0x83, 0xe8, 0x7b, 0x52, 0xf6, 0xa2, 0x88, 0x2f, - 0x72, 0xc2, 0xa7, 0xf8, 0x13, 0xc2, 0x6e, 0x68, 0x75, 0x3d, 0x59, 0x15, 0x09, 0x92, 0xce, 0xf8, - 0xe1, 0x8e, 0x74, 0x06, 0x55, 0x92, 0x85, 0xf9, 0xc3, 0xe8, 0x5d, 0x15, 0x14, 0x57, 0x71, 0x31, - 0x23, 0x3f, 0xac, 0x69, 0x31, 0x2e, 0xb3, 0x71, 0x9a, 0x56, 0xc3, 0x91, 0xbf, 0xe9, 0x21, 0xa7, - 0x4b, 0xb0, 0xd3, 0x9b, 0xb7, 0xd2, 0x67, 0xf9, 0x94, 0x19, 0x2d, 0x61, 0xfa, 0xac, 0x1e, 0x1f, - 0xa3, 0x25, 0x96, 0x3e, 0xbb, 0x48, 0xcb, 0xea, 0x71, 0x33, 0x07, 0xf9, 0xad, 0x1e, 0xdb, 0x93, - 0xce, 0xfd, 0x10, 0x62, 0xe6, 0x00, 0xf5, 0xa0, 0x68, 0x71, 0x99, 0xcd, 0xce, 0xcb, 0xb4, 0xe9, - 0x43, 0x8f, 0xfc, 0x75, 0xb6, 0x10, 0x64, 0x0e, 0x40, 0x50, 0xe9, 0xed, 0x6f, 0x4d, 0x96, 0x29, - 0xc7, 0xa5, 0xfd, 0x8a, 0xce, 0x8f, 0xc8, 0x2c, 0x4e, 0x56, 0x72, 0x30, 0xfd, 0x28, 0x34, 0x8a, - 0x41, 0x5a, 0x17, 0xe2, 0xe3, 0x5b, 0x6a, 0xc9, 0xf2, 0xfc, 0xdb, 0x20, 0x7a, 0xe0, 0xc4, 0x89, - 0x0c, 0x26, 0x51, 0xfa, 0x71, 0x91, 0x9e, 0x91, 0x9a, 0xc5, 0x15, 0x1b, 0x7e, 0x3f, 0x10, 0x03, - 0x88, 0x8e, 0x2e, 0xdb, 0x0f, 0xbe, 0x91, 0xae, 0x69, 0xf5, 0x49, 0x33, 0x4b, 0xc8, 0xf1, 0xc7, - 0x6d, 0x75, 0x2e, 0x81, 0xa3, 0xcf, 0xfd, 0x10, 0x62, 0x5a, 0x9d, 0x0b, 0x0e, 0x8b, 0x65, 0xc6, - 0xc8, 0x01, 0x29, 0x48, 0xd5, 0x6e, 0x75, 0xa1, 0xea, 0x22, 0x48, 0xab, 0x23, 0xa8, 0x19, 0xe9, - 0x1c, 0x6f, 0x3a, 0xd3, 0xd8, 0x0c, 0x18, 0x69, 0xe5, 0x1a, 0x5b, 0xfd, 0x60, 0xb3, 0x54, 0xb6, - 0x7c, 0x9e, 0x91, 0x25, 0xbd, 0x86, 0x4b, 0x65, 0xdb, 0x84, 0x00, 0x90, 0xa5, 0xb2, 0x17, 0x34, - 0xe9, 0x80, 0xe5, 0xe7, 0x65, 0x46, 0x6e, 0x40, 0x3a, 0x60, 0x2b, 0x37, 0x62, 0x24, 0x1d, 0xf0, - 0x60, 0xd2, 0xc3, 0x49, 0xf4, 0x0b, 0x5c, 0xf8, 0x43, 0x9a, 0x15, 0xc3, 0xbb, 0x1e, 0xa5, 0x46, - 0xa0, 0xad, 0xde, 0xc3, 0x01, 0x50, 0xe2, 0xe6, 0xaf, 0x72, 0x6e, 0x7e, 0x88, 0x28, 0x81, 0x69, - 0x79, 0xad, 0x0b, 0x33, 0x79, 0x18, 0x17, 0x36, 0xe3, 0xd7, 0xe4, 0x2a, 0xae, 0xb2, 0x62, 0x36, - 0xf4, 0xe9, 0x5a, 0x72, 0x24, 0x0f, 0xf3, 0x71, 0x20, 0x84, 0xa5, 0xe2, 0xb8, 0x2c, 0xab, 0x66, - 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04, 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x91, 0x24, 0xcf, 0x8a, - 0xa0, 0x37, 0x89, 0xf4, 0xf1, 0x66, 0x50, 0x10, 0xbc, 0x47, 0x24, 0x5e, 0x12, 0x55, 0x33, 0xdf, - 0x93, 0xb1, 0x81, 0x60, 0xf0, 0x02, 0xd0, 0x2c, 0x7a, 0xb9, 0xf8, 0x38, 0xbe, 0x26, 0xcd, 0x03, - 0x26, 0xcd, 0xa4, 0x3a, 0xf4, 0xe9, 0x3b, 0x04, 0xb2, 0xe8, 0xf5, 0x93, 0xd2, 0xd5, 0x22, 0x7a, - 0x87, 0xcb, 0x4f, 0xe3, 0x8a, 0x65, 0x49, 0x56, 0xc6, 0x85, 0x5a, 0x4c, 0xf9, 0xfa, 0x75, 0x8b, - 0xd2, 0x2e, 0xb7, 0x7b, 0xd2, 0xd2, 0xed, 0x3f, 0x0f, 0xa2, 0xf7, 0xa1, 0xdf, 0x53, 0x52, 0xcd, - 0x33, 0xbe, 0x26, 0xaf, 0xc5, 0x20, 0x3c, 0xfc, 0x34, 0x6c, 0xb4, 0xa5, 0xa0, 0x4b, 0xf3, 0xd9, - 0xed, 0x15, 0x4d, 0x26, 0x36, 0x91, 0xeb, 0x94, 0x2f, 0xaa, 0xb4, 0xb5, 0x67, 0x35, 0x51, 0x8b, - 0x0f, 0x2e, 0x44, 0x32, 0xb1, 0x16, 0x04, 0x7a, 0xf8, 0x79, 0x51, 0x2b, 0xeb, 0xbe, 0x1e, 0x6e, - 0xc4, 0xc1, 0x1e, 0xee, 0x60, 0xa6, 0x87, 0x9f, 0x2e, 0x2e, 0xf2, 0xac, 0xbe, 0xca, 0x8a, 0x99, - 0x4c, 0xbb, 0x5d, 0x5d, 0x23, 0x86, 0x99, 0xf7, 0x7a, 0x27, 0xe7, 0x73, 0x22, 0x83, 0x05, 0x75, - 0x02, 0xc2, 0x64, 0xbd, 0x93, 0x33, 0xab, 0x21, 0x23, 0x6d, 0x96, 0xe1, 0x60, 0x35, 0x64, 0xa9, - 0x36, 0x52, 0x64, 0x35, 0xd4, 0xa6, 0xcc, 0x6a, 0xc8, 0xae, 0x43, 0x4d, 0xf3, 0x25, 0x39, 0xaf, - 0x32, 0xb0, 0x1a, 0x72, 0xca, 0xa7, 0x18, 0x64, 0x35, 0x84, 0xb1, 0x66, 0xa0, 0x32, 0xc4, 0x01, - 0x61, 0x13, 0x16, 0xb3, 0x45, 0x0d, 0x06, 0x2a, 0xcb, 0x86, 0x46, 0x90, 0x81, 0x0a, 0x41, 0xa5, - 0xb7, 0xdf, 0x8d, 0x22, 0xb1, 0x83, 0xc1, 0x77, 0x99, 0xdc, 0xb9, 0x47, 0x6e, 0x6d, 0x38, 0x5b, - 0x4c, 0xef, 0x07, 0x08, 0x93, 0xf0, 0x88, 0xbf, 0xf3, 0xcd, 0xb3, 0xa1, 0x57, 0x83, 0x8b, 0x90, - 0x84, 0x07, 0x20, 0xb0, 0xa0, 0x93, 0x2b, 0x7a, 0xe3, 0x2f, 0x68, 0x23, 0x09, 0x17, 0x54, 0x12, - 0x66, 0x3b, 0x5b, 0x16, 0xd4, 0xb7, 0x9d, 0xad, 0x8a, 0x11, 0xda, 0xce, 0x86, 0x8c, 0x89, 0x19, - 0xdb, 0xf0, 0x73, 0x4a, 0xaf, 0xe7, 0x71, 0x75, 0x0d, 0x62, 0xc6, 0x51, 0x56, 0x0c, 0x12, 0x33, - 0x18, 0x6b, 0x62, 0xc6, 0x76, 0xd8, 0xa4, 0xcb, 0xe7, 0x55, 0x0e, 0x62, 0xc6, 0xb1, 0x21, 0x11, - 0x24, 0x66, 0x10, 0xd4, 0x8c, 0x4e, 0xb6, 0xb7, 0x09, 0x81, 0x1b, 0x28, 0x8e, 0xfa, 0x84, 0x60, - 0x1b, 0x28, 0x1e, 0x0c, 0x86, 0xd0, 0x41, 0x15, 0x97, 0x57, 0xfe, 0x10, 0xe2, 0xa2, 0x70, 0x08, - 0x29, 0x04, 0xb6, 0xf7, 0x84, 0xc4, 0x55, 0x72, 0xe5, 0x6f, 0x6f, 0x21, 0x0b, 0xb7, 0xb7, 0x66, - 0x60, 0x7b, 0x0b, 0xc1, 0xab, 0x8c, 0x5d, 0x1d, 0x13, 0x16, 0xfb, 0xdb, 0xdb, 0x65, 0xc2, 0xed, - 0xdd, 0x62, 0x4d, 0x3e, 0x6e, 0x3b, 0x9c, 0x2c, 0x2e, 0xea, 0xa4, 0xca, 0x2e, 0xc8, 0x30, 0x60, - 0x45, 0x43, 0x48, 0x3e, 0x8e, 0xc2, 0xd2, 0xe7, 0x4f, 0x07, 0xd1, 0x5d, 0xd5, 0xec, 0xb4, 0xae, - 0xe5, 0xdc, 0xe7, 0xba, 0xff, 0xd8, 0xdf, 0xbe, 0x08, 0x8e, 0xbc, 0x60, 0xe8, 0xa1, 0x66, 0xe5, - 0x06, 0xfe, 0x22, 0x9d, 0x17, 0xb5, 0x2e, 0xd4, 0xa7, 0x7d, 0xac, 0x5b, 0x0a, 0x48, 0x6e, 0xd0, - 0x4b, 0xd1, 0xa4, 0x65, 0xb2, 0x7d, 0x94, 0xec, 0x30, 0xad, 0x41, 0x5a, 0xa6, 0x9e, 0xb7, 0x45, - 0x20, 0x69, 0x99, 0x9f, 0x84, 0xa1, 0x70, 0x50, 0xd1, 0x45, 0x59, 0x77, 0x84, 0x02, 0x80, 0xc2, - 0xa1, 0xd0, 0x86, 0xa5, 0xcf, 0xd7, 0xd1, 0xaf, 0xdb, 0xe1, 0x67, 0x3f, 0xec, 0x6d, 0x3c, 0xa6, - 0x7c, 0x8f, 0x78, 0xd4, 0x17, 0x37, 0x19, 0x85, 0xf2, 0xcc, 0xf6, 0x08, 0x8b, 0xb3, 0xbc, 0x1e, - 0xae, 0xf9, 0x6d, 0x28, 0x39, 0x92, 0x51, 0xf8, 0x38, 0x38, 0xbe, 0xed, 0x2d, 0xca, 0x3c, 0x4b, - 0xda, 0xaf, 0x77, 0xa4, 0xae, 0x16, 0x87, 0xc7, 0x37, 0x1b, 0x83, 0xe3, 0x75, 0x93, 0xfa, 0xf1, - 0xff, 0x4c, 0x57, 0x25, 0xf1, 0x8f, 0xd7, 0x0e, 0x12, 0x1e, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x21, - 0xec, 0x28, 0x5e, 0xd1, 0x05, 0x32, 0x5e, 0x6b, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0xd6, 0x06, 0xda, - 0xc3, 0x61, 0xc1, 0x48, 0x55, 0xc4, 0xf9, 0x7e, 0x1e, 0xcf, 0xea, 0x21, 0x32, 0xc6, 0xb8, 0x14, - 0xb2, 0x36, 0xc0, 0x69, 0xcf, 0x63, 0x3c, 0xac, 0xf7, 0xe3, 0x25, 0xad, 0x32, 0x86, 0x3f, 0x46, - 0x83, 0x74, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0x1b, 0x57, 0xc9, 0x55, 0xb6, 0x24, 0x69, 0xc0, 0x9b, - 0x42, 0x7a, 0x78, 0xb3, 0x50, 0x4f, 0xa3, 0x4d, 0xe8, 0xa2, 0x4a, 0x08, 0xda, 0x68, 0x42, 0xdc, - 0xd9, 0x68, 0x1a, 0x93, 0x1e, 0xfe, 0x7c, 0x10, 0xfd, 0x86, 0x90, 0xda, 0xef, 0x5c, 0xf6, 0xe2, - 0xfa, 0xea, 0x82, 0xc6, 0x55, 0x3a, 0xfc, 0xd0, 0x67, 0xc7, 0x8b, 0x6a, 0xd7, 0x4f, 0x6f, 0xa3, - 0x02, 0x1f, 0x6b, 0x93, 0x77, 0x9b, 0x1e, 0xe7, 0x7d, 0xac, 0x0e, 0x12, 0x7e, 0xac, 0x10, 0x85, - 0x03, 0x08, 0x97, 0x8b, 0x2d, 0xb9, 0x35, 0x54, 0xdf, 0xdd, 0x97, 0x5b, 0xef, 0xe4, 0xe0, 0xf8, - 0xd8, 0x08, 0xdd, 0x68, 0xd9, 0xc6, 0x6c, 0xf8, 0x23, 0x66, 0xd4, 0x17, 0x47, 0x3d, 0xeb, 0x5e, - 0x11, 0xf6, 0xdc, 0xea, 0x19, 0xa3, 0xbe, 0x38, 0xe2, 0xd9, 0x1a, 0xd6, 0x42, 0x9e, 0x3d, 0x43, - 0xdb, 0xa8, 0x2f, 0x0e, 0xb3, 0x2f, 0xc9, 0xa8, 0x79, 0xe1, 0x71, 0xc0, 0x0e, 0x9c, 0x1b, 0x36, - 0x7b, 0xb1, 0xd2, 0xe1, 0x5f, 0x0e, 0xa2, 0xef, 0x1a, 0x8f, 0xc7, 0x34, 0xcd, 0x2e, 0x57, 0x02, - 0x7a, 0x19, 0xe7, 0x0b, 0x52, 0x0f, 0x9f, 0x62, 0xd6, 0xda, 0xac, 0x2e, 0xc1, 0xb3, 0x5b, 0xe9, - 0xc0, 0xbe, 0x33, 0x2e, 0xcb, 0x7c, 0x35, 0x25, 0xf3, 0x32, 0x47, 0xfb, 0x8e, 0x83, 0x84, 0xfb, - 0x0e, 0x44, 0x61, 0x56, 0x3e, 0xa5, 0x4d, 0xce, 0xef, 0xcd, 0xca, 0xb9, 0x28, 0x9c, 0x95, 0x2b, - 0x04, 0xe6, 0x4a, 0x53, 0xba, 0x4b, 0xf3, 0x9c, 0x24, 0xac, 0x7d, 0x6e, 0x43, 0x6b, 0x1a, 0x22, - 0x9c, 0x2b, 0x01, 0xd2, 0xec, 0xca, 0xa9, 0x35, 0x64, 0x5c, 0x91, 0xe7, 0xab, 0xa3, 0xac, 0xb8, - 0x1e, 0xfa, 0xd3, 0x02, 0x03, 0x20, 0xbb, 0x72, 0x5e, 0x10, 0xae, 0x55, 0xcf, 0x8b, 0x94, 0xfa, - 0xd7, 0xaa, 0x8d, 0x24, 0xbc, 0x56, 0x95, 0x04, 0x34, 0x79, 0x46, 0x30, 0x93, 0x8d, 0x24, 0x6c, - 0x52, 0x12, 0xbe, 0xa1, 0x50, 0xbe, 0xbb, 0x41, 0x87, 0x42, 0xf0, 0xb6, 0x66, 0xbd, 0x93, 0x83, - 0x11, 0xaa, 0x16, 0xad, 0xfb, 0x84, 0x25, 0x57, 0xfe, 0x08, 0x75, 0x90, 0x70, 0x84, 0x42, 0x14, - 0x56, 0x69, 0x4a, 0xf5, 0xa2, 0x7b, 0xcd, 0x1f, 0x1f, 0xad, 0x05, 0xf7, 0x7a, 0x27, 0x07, 0x97, - 0x91, 0x87, 0x73, 0xfe, 0xcc, 0xbc, 0x41, 0x2e, 0x64, 0xe1, 0x65, 0xa4, 0x66, 0x60, 0xe9, 0x85, - 0x80, 0xef, 0x65, 0xad, 0xe1, 0x8a, 0xce, 0x6e, 0xd6, 0x7a, 0x27, 0x27, 0x9d, 0xfc, 0xa3, 0x5e, - 0xc6, 0x09, 0xe9, 0x09, 0x6d, 0xfa, 0xc8, 0xcb, 0x38, 0xcf, 0xd2, 0x98, 0x91, 0x29, 0xbd, 0x26, - 0x85, 0x7f, 0xc5, 0x24, 0x4b, 0x2b, 0xf8, 0x91, 0xa3, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, - 0x08, 0xfa, 0xbc, 0x26, 0xbb, 0x71, 0x8d, 0x8c, 0x64, 0x0e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, - 0x55, 0xc8, 0x5f, 0xbc, 0x2e, 0x49, 0x95, 0x91, 0x22, 0x21, 0xfe, 0x7c, 0x15, 0x52, 0xe1, 0x7c, - 0xd5, 0x43, 0xc3, 0xb5, 0xda, 0x5e, 0xcc, 0xc8, 0xf3, 0xd5, 0x34, 0x9b, 0x93, 0x9a, 0xc5, 0xf3, - 0xd2, 0xbf, 0x56, 0x03, 0x50, 0x78, 0xad, 0xd6, 0x86, 0x5b, 0x5b, 0x43, 0x7a, 0x40, 0x6c, 0x1f, - 0xf7, 0x82, 0x44, 0xe0, 0xb8, 0x17, 0x82, 0xc2, 0x07, 0x6b, 0x00, 0xef, 0x4b, 0x82, 0x96, 0x95, - 0xe0, 0x4b, 0x02, 0x9c, 0x6e, 0x6d, 0xb8, 0x69, 0x66, 0xd2, 0x74, 0xcd, 0x8e, 0xa2, 0x4f, 0xec, - 0x2e, 0xba, 0xd9, 0x8b, 0xf5, 0xef, 0xf0, 0x9d, 0x91, 0x3c, 0xe6, 0xd3, 0x56, 0x60, 0x1b, 0x4d, - 0x31, 0x7d, 0x76, 0xf8, 0x2c, 0x56, 0x3a, 0xfc, 0xd3, 0x41, 0xf4, 0x9e, 0xcf, 0xe3, 0x17, 0x25, - 0xf7, 0xfb, 0xa4, 0xdb, 0x96, 0x20, 0x91, 0xf3, 0x6c, 0x61, 0x0d, 0x73, 0x24, 0x43, 0x89, 0xcc, - 0x71, 0x37, 0x59, 0x00, 0x37, 0x69, 0xd3, 0xe5, 0x87, 0x1c, 0x72, 0x24, 0x23, 0xc4, 0x9b, 0xf5, - 0x90, 0x5b, 0xae, 0x1a, 0xac, 0x87, 0xb4, 0x0d, 0x29, 0x46, 0xd6, 0x43, 0x1e, 0xcc, 0xf4, 0x4e, - 0xbb, 0x7a, 0xaf, 0x32, 0x76, 0xc5, 0xf3, 0x2d, 0xd0, 0x3b, 0x9d, 0xb2, 0x6a, 0x08, 0xe9, 0x9d, - 0x28, 0x0c, 0x33, 0x12, 0x05, 0x36, 0x7d, 0xd3, 0x37, 0x96, 0x6b, 0x43, 0x76, 0xcf, 0xdc, 0xe8, - 0x06, 0x61, 0xbc, 0x2a, 0xb1, 0x5c, 0xfa, 0x3c, 0x0e, 0x59, 0x00, 0xcb, 0x9f, 0xcd, 0x5e, 0xac, - 0x74, 0xf8, 0xc7, 0xd1, 0x77, 0x5a, 0x15, 0xdb, 0x27, 0x31, 0x5b, 0x54, 0x24, 0x1d, 0xee, 0x74, - 0x94, 0x5b, 0x81, 0xda, 0xf5, 0x93, 0xfe, 0x0a, 0xad, 0x1c, 0x5d, 0x71, 0x22, 0xac, 0x74, 0x19, - 0x9e, 0x86, 0x4c, 0xba, 0x6c, 0x30, 0x47, 0xc7, 0x75, 0x5a, 0xcb, 0x6c, 0x3b, 0xba, 0xc6, 0xcb, - 0x38, 0xcb, 0xf9, 0xcb, 0xda, 0x0f, 0x43, 0x46, 0x1d, 0x34, 0xb8, 0xcc, 0x46, 0x55, 0x5a, 0x23, - 0x33, 0xef, 0xe3, 0xd6, 0xf2, 0x6c, 0x0b, 0x1f, 0x09, 0x3c, 0xab, 0xb3, 0xed, 0x9e, 0xb4, 0x74, - 0xcb, 0xd4, 0x94, 0xd7, 0xfc, 0xd9, 0x0e, 0x72, 0x9f, 0x57, 0xa9, 0xea, 0x89, 0xf4, 0xed, 0x9e, - 0xb4, 0xf4, 0xfa, 0x47, 0xd1, 0xbb, 0x6d, 0xaf, 0x72, 0x22, 0xda, 0xe9, 0x34, 0x05, 0xe6, 0xa2, - 0x27, 0xfd, 0x15, 0xa4, 0xfb, 0x7f, 0xd1, 0xfb, 0xd2, 0xc2, 0x7f, 0x42, 0xe7, 0x73, 0x52, 0xa4, - 0x24, 0x55, 0x1a, 0x75, 0xb3, 0x7e, 0xfa, 0x0c, 0xb7, 0xab, 0x15, 0x46, 0xb6, 0x86, 0x2e, 0xd1, - 0x6f, 0x7e, 0x03, 0x4d, 0x59, 0xb4, 0xff, 0x1c, 0x44, 0x8f, 0xbc, 0x45, 0x53, 0x81, 0xeb, 0x14, - 0xf1, 0x77, 0xfa, 0x38, 0xf2, 0x69, 0xea, 0xa2, 0x8e, 0xff, 0x1f, 0x16, 0x64, 0x91, 0xff, 0x75, - 0x10, 0xdd, 0x37, 0x8a, 0x4d, 0x78, 0xef, 0xd2, 0xe2, 0x32, 0xcf, 0x12, 0xc6, 0xdf, 0xc8, 0x4a, - 0x15, 0xfc, 0x71, 0x62, 0x1a, 0xdd, 0x8f, 0x33, 0xa0, 0x69, 0x16, 0xaf, 0x9f, 0x67, 0x35, 0xa3, - 0xd5, 0x6a, 0x72, 0x45, 0x6f, 0xd4, 0x07, 0x43, 0xee, 0xb8, 0x2c, 0x81, 0x91, 0x45, 0x20, 0x8b, - 0x57, 0x3f, 0xd9, 0x72, 0x65, 0x3e, 0x2c, 0xaa, 0x11, 0x57, 0x16, 0xd1, 0xe1, 0xca, 0x25, 0xcd, - 0xac, 0xa4, 0x6a, 0x65, 0xbe, 0x82, 0x5a, 0xf7, 0x17, 0xb5, 0xfd, 0x25, 0xd4, 0x46, 0x37, 0x68, - 0x72, 0x53, 0x29, 0xde, 0xcb, 0x2e, 0x2f, 0x75, 0x9d, 0xfc, 0x25, 0xb5, 0x11, 0x24, 0x37, 0x45, - 0x50, 0xb3, 0xbc, 0xda, 0xcf, 0x72, 0xc2, 0xdf, 0xdd, 0x7c, 0x71, 0x79, 0x99, 0xd3, 0x38, 0x05, - 0xcb, 0xab, 0x46, 0x3c, 0xb2, 0xe5, 0xc8, 0xf2, 0xca, 0xc7, 0x99, 0x53, 0x21, 0x8d, 0xb4, 0x89, - 0xee, 0x22, 0xc9, 0x72, 0x78, 0xde, 0x98, 0x6b, 0x6a, 0x21, 0x72, 0x2a, 0xa4, 0x05, 0x99, 0x14, - 0xa8, 0x11, 0x35, 0x51, 0xa9, 0xca, 0xff, 0xb0, 0xad, 0x68, 0x89, 0x91, 0x14, 0xc8, 0x83, 0x99, - 0x5d, 0x86, 0x46, 0x78, 0x5e, 0x72, 0xe3, 0xf7, 0xda, 0x5a, 0x42, 0x82, 0xec, 0x32, 0xb8, 0x84, - 0x59, 0x2d, 0x37, 0x7f, 0xdf, 0xa3, 0x37, 0x05, 0x37, 0x7a, 0xbf, 0xad, 0xa2, 0x64, 0xc8, 0x6a, - 0x19, 0x32, 0xd2, 0xf0, 0x8f, 0xa2, 0x9f, 0xe7, 0x86, 0x2b, 0x5a, 0x0e, 0xef, 0x78, 0x14, 0x2a, - 0xeb, 0x74, 0xee, 0x5d, 0x54, 0x6e, 0x0e, 0x91, 0xe8, 0xd8, 0x38, 0xaf, 0xe3, 0x19, 0x3c, 0x52, - 0x6f, 0x5a, 0x9c, 0x4b, 0x91, 0x43, 0x24, 0x6d, 0xca, 0x8d, 0x8a, 0x13, 0x9a, 0x4a, 0xeb, 0x9e, - 0x1a, 0x6a, 0x61, 0x28, 0x2a, 0x6c, 0xc8, 0xa4, 0xad, 0x27, 0xf1, 0x32, 0x9b, 0xe9, 0xd4, 0x42, - 0x0c, 0x60, 0x35, 0x48, 0x5b, 0x0d, 0x33, 0xb2, 0x20, 0x24, 0x6d, 0x45, 0x61, 0xe9, 0xf3, 0x1f, - 0x06, 0xd1, 0x3d, 0xc3, 0x1c, 0xa8, 0x7d, 0xd9, 0xc3, 0xe2, 0x92, 0x36, 0x49, 0xee, 0x51, 0x56, - 0x5c, 0xd7, 0xc3, 0x4f, 0x30, 0x93, 0x7e, 0x5e, 0x17, 0xe5, 0xd3, 0x5b, 0xeb, 0x99, 0xf5, 0x89, - 0xda, 0xb4, 0x34, 0x27, 0x17, 0x84, 0x06, 0x58, 0x9f, 0xe8, 0xbd, 0x4d, 0xc8, 0x21, 0xeb, 0x93, - 0x10, 0x6f, 0x9a, 0x58, 0x3b, 0xcf, 0x69, 0x01, 0x9b, 0xd8, 0x58, 0x68, 0x84, 0x48, 0x13, 0xb7, - 0x20, 0x33, 0x1e, 0x2b, 0x91, 0xd8, 0x5f, 0x1b, 0xe7, 0x39, 0x18, 0x8f, 0xb5, 0xaa, 0x06, 0x90, - 0xf1, 0xd8, 0x0b, 0x4a, 0x3f, 0x67, 0xd1, 0xb7, 0x9a, 0x47, 0x7a, 0x5a, 0x91, 0x65, 0x46, 0xe0, - 0x21, 0x1b, 0x4b, 0x82, 0xf4, 0x7f, 0x97, 0x30, 0x3d, 0xeb, 0xbc, 0xa8, 0xcb, 0x3c, 0xae, 0xaf, - 0xe4, 0xb1, 0x0b, 0xb7, 0xce, 0x4a, 0x08, 0x0f, 0x5e, 0x3c, 0xec, 0xa0, 0xcc, 0xa0, 0xae, 0x64, - 0x7a, 0x88, 0x59, 0xf3, 0xab, 0xb6, 0x86, 0x99, 0xf5, 0x4e, 0xce, 0xbc, 0xdb, 0x38, 0x88, 0xf3, - 0x9c, 0x54, 0x2b, 0x25, 0x3b, 0x8e, 0x8b, 0xec, 0x92, 0xd4, 0x0c, 0xbc, 0xdb, 0x90, 0xd4, 0x08, - 0x62, 0xc8, 0xbb, 0x8d, 0x00, 0x6e, 0xd6, 0x6d, 0xc0, 0xf3, 0x61, 0x91, 0x92, 0xd7, 0x60, 0xdd, - 0x06, 0xed, 0x70, 0x06, 0x59, 0xb7, 0x61, 0xac, 0xd9, 0xe3, 0x7f, 0x9e, 0xd3, 0xe4, 0x5a, 0x4e, - 0x01, 0x6e, 0x03, 0x73, 0x09, 0x9c, 0x03, 0xee, 0x87, 0x10, 0x33, 0x09, 0x70, 0xc1, 0x19, 0x29, - 0xf3, 0x38, 0x81, 0x27, 0xad, 0x84, 0x8e, 0x94, 0x21, 0x93, 0x00, 0x64, 0x40, 0x71, 0xe5, 0x09, - 0x2e, 0x5f, 0x71, 0xc1, 0x01, 0xae, 0xfb, 0x21, 0xc4, 0x4c, 0x83, 0x5c, 0x30, 0x29, 0xf3, 0x8c, - 0x81, 0x6e, 0x20, 0x34, 0xb8, 0x04, 0xe9, 0x06, 0x2e, 0x01, 0x4c, 0x1e, 0x93, 0x6a, 0x46, 0xbc, - 0x26, 0xb9, 0x24, 0x68, 0x52, 0x11, 0xe6, 0x58, 0xb9, 0xa8, 0x3b, 0x2d, 0x57, 0xe0, 0x58, 0xb9, - 0xac, 0x16, 0x2d, 0x57, 0xc8, 0xb1, 0x72, 0x07, 0x00, 0x45, 0x3c, 0x8d, 0x6b, 0xe6, 0x2f, 0x22, - 0x97, 0x04, 0x8b, 0xa8, 0x08, 0x33, 0x47, 0x8b, 0x22, 0x2e, 0x18, 0x98, 0xa3, 0x65, 0x01, 0xac, - 0xb3, 0x06, 0x77, 0x51, 0xb9, 0x19, 0x49, 0x44, 0xab, 0x10, 0xb6, 0x9f, 0x91, 0x3c, 0xad, 0xc1, - 0x48, 0x22, 0x9f, 0xbb, 0x92, 0x22, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0x24, 0xdf, 0x84, 0xf8, 0x6a, - 0x07, 0x5e, 0x82, 0xdc, 0x0f, 0x21, 0x66, 0x7c, 0x52, 0x85, 0xde, 0x8d, 0xab, 0x2a, 0x6b, 0x26, - 0xff, 0x35, 0x7f, 0x81, 0x94, 0x1c, 0x19, 0x9f, 0x7c, 0x1c, 0xe8, 0x5e, 0x6a, 0xe0, 0xf6, 0x15, - 0x0c, 0x0e, 0xdd, 0x1f, 0x04, 0x19, 0x93, 0x71, 0x72, 0x89, 0xf5, 0xb2, 0xdc, 0xf7, 0x34, 0x3d, - 0xef, 0xca, 0xd7, 0xba, 0x30, 0xeb, 0x9b, 0x33, 0xed, 0xe2, 0x98, 0x2e, 0xc9, 0x94, 0xbe, 0x78, - 0x9d, 0xd5, 0xcd, 0x72, 0x4b, 0xce, 0xdc, 0xcf, 0x10, 0x4b, 0x3e, 0x18, 0xf9, 0xe6, 0xac, 0x53, - 0xc9, 0x24, 0x10, 0xa0, 0x2c, 0x27, 0xe4, 0xc6, 0x9b, 0x40, 0x40, 0x8b, 0x9a, 0x43, 0x12, 0x88, - 0x10, 0x6f, 0x76, 0xcc, 0xb4, 0x73, 0x79, 0xd1, 0xc0, 0x94, 0xaa, 0x5c, 0x0e, 0xb3, 0x06, 0x41, - 0x64, 0xd3, 0x22, 0xa8, 0x60, 0xd6, 0x97, 0xda, 0xbf, 0xe9, 0x62, 0x1b, 0x88, 0x9d, 0x76, 0x37, - 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32, 0x27, 0x3e, 0x30, 0x57, 0xed, 0x03, 0x1f, 0x8f, 0x7a, 0x90, - 0xd6, 0xee, 0x9b, 0x5d, 0xad, 0xe7, 0x71, 0x72, 0x3d, 0xab, 0xe8, 0xa2, 0x48, 0x77, 0x69, 0x4e, - 0x2b, 0xb0, 0xfb, 0xe6, 0x94, 0x1a, 0xa0, 0xc8, 0xee, 0x5b, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, - 0x8c, 0xf3, 0x6c, 0x06, 0x57, 0xd4, 0x8e, 0x21, 0x0e, 0x20, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, - 0x58, 0x71, 0xb3, 0x2c, 0x89, 0x73, 0xe1, 0x6f, 0x07, 0x37, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, - 0xf0, 0xd4, 0x73, 0xba, 0xa8, 0x8a, 0xc3, 0x82, 0x51, 0xb4, 0x9e, 0x0a, 0xe8, 0xac, 0xa7, 0x05, - 0x82, 0x61, 0x75, 0x4a, 0x5e, 0x37, 0xa5, 0x69, 0xfe, 0xf1, 0x0d, 0xab, 0xcd, 0xdf, 0x47, 0x52, - 0x1e, 0x1a, 0x56, 0x01, 0x07, 0x2a, 0x23, 0x9d, 0x88, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xb2, 0xd1, - 0x0d, 0xfa, 0xfd, 0x4c, 0xd8, 0x2a, 0x27, 0x21, 0x3f, 0x1c, 0xe8, 0xe3, 0x47, 0x81, 0x66, 0xbb, - 0xc5, 0xa9, 0xcf, 0x15, 0x49, 0xae, 0x5b, 0x07, 0xd8, 0xdc, 0x82, 0x0a, 0x04, 0xd9, 0x6e, 0x41, - 0x50, 0x7f, 0x13, 0x1d, 0x26, 0xb4, 0x08, 0x35, 0x51, 0x23, 0xef, 0xd3, 0x44, 0x92, 0x33, 0x8b, - 0x5f, 0x2d, 0x95, 0x91, 0x29, 0x9a, 0x69, 0x13, 0xb1, 0x60, 0x43, 0xc8, 0xe2, 0x17, 0x85, 0x4d, - 0x4e, 0x0e, 0x7d, 0x1e, 0xb7, 0x4f, 0xf7, 0xb7, 0xac, 0x1c, 0xe3, 0xa7, 0xfb, 0x31, 0x16, 0xaf, - 0xa4, 0x88, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, 0x6c, 0xf5, 0x83, 0xcd, 0x92, 0xc7, 0xf1, 0xb9, 0x9b, - 0x93, 0xb8, 0x12, 0x5e, 0xb7, 0x03, 0x86, 0x0c, 0x86, 0x2c, 0x79, 0x02, 0x38, 0x18, 0xc2, 0x1c, - 0xcf, 0xbb, 0xb4, 0x60, 0xa4, 0x60, 0xbe, 0x21, 0xcc, 0x35, 0x26, 0xc1, 0xd0, 0x10, 0x86, 0x29, - 0x80, 0xb8, 0xe5, 0xfb, 0x41, 0x84, 0x9d, 0xc4, 0x73, 0x6f, 0xc6, 0x26, 0xf6, 0x7a, 0x84, 0x3c, - 0x14, 0xb7, 0x80, 0xb3, 0x5e, 0xe7, 0xda, 0x5e, 0xa6, 0x71, 0x35, 0xd3, 0xbb, 0x1b, 0xe9, 0xf0, - 0x09, 0x6e, 0xc7, 0x25, 0x91, 0xd7, 0xb9, 0x61, 0x0d, 0x30, 0xec, 0x1c, 0xce, 0xe3, 0x99, 0xae, - 0xa9, 0xa7, 0x06, 0x5c, 0xde, 0xaa, 0xea, 0x46, 0x37, 0x08, 0xfc, 0xbc, 0xcc, 0x52, 0x42, 0x03, - 0x7e, 0xb8, 0xbc, 0x8f, 0x1f, 0x08, 0x82, 0xec, 0xad, 0xa9, 0xb7, 0x58, 0xd1, 0x8d, 0x8b, 0x54, - 0xae, 0x63, 0x47, 0xc8, 0xe3, 0x01, 0x5c, 0x28, 0x7b, 0x43, 0x78, 0xd0, 0x47, 0xd5, 0x06, 0x6d, - 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, 0xd4, 0x07, 0x4b, 0x9f, 0x3f, 0x91, 0x7d, 0x74, 0x2f, - 0x66, 0x71, 0x93, 0xb7, 0xbf, 0xcc, 0xc8, 0x8d, 0x5c, 0x08, 0x7b, 0xea, 0xab, 0xa8, 0x11, 0xff, - 0x38, 0x19, 0xac, 0x8a, 0x77, 0x7a, 0xf3, 0x01, 0xdf, 0x72, 0x85, 0xd0, 0xe9, 0x1b, 0x2c, 0x15, - 0x76, 0x7a, 0xf3, 0x01, 0xdf, 0xf2, 0xd6, 0x83, 0x4e, 0xdf, 0xe0, 0xea, 0x83, 0x9d, 0xde, 0xbc, - 0xf4, 0xfd, 0x67, 0xaa, 0xe3, 0xda, 0xce, 0x9b, 0x3c, 0x2c, 0x61, 0xd9, 0x92, 0xf8, 0xd2, 0x49, - 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xae, 0x62, 0xdd, 0x3b, 0xe6, 0x2b, 0xc5, 0x29, 0xad, 0x33, - 0x7e, 0x1c, 0xe3, 0x59, 0x0f, 0xa3, 0x0a, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xc5, 0xb2, 0x83, - 0x9a, 0xf3, 0xea, 0x5b, 0x01, 0x7b, 0xed, 0x63, 0xeb, 0xdb, 0x3d, 0x69, 0xf3, 0x8a, 0xd7, 0x61, - 0xec, 0x77, 0xcb, 0xa1, 0x56, 0xf5, 0xbe, 0x5e, 0x7e, 0xd2, 0x5f, 0x41, 0xba, 0xff, 0x0b, 0xb5, - 0xae, 0x80, 0xfe, 0x65, 0x27, 0x78, 0xda, 0xc7, 0x22, 0xe8, 0x08, 0xcf, 0x6e, 0xa5, 0x23, 0x0b, - 0xf2, 0x37, 0x6a, 0x01, 0xad, 0x50, 0xfe, 0xd5, 0x0e, 0xff, 0xda, 0x57, 0xf6, 0x89, 0x50, 0xb3, - 0x1a, 0x18, 0xf6, 0x8c, 0x8f, 0x6f, 0xa9, 0x65, 0xdd, 0x42, 0xe7, 0xc0, 0xf2, 0xeb, 0x52, 0xab, - 0x3c, 0x21, 0xcb, 0x16, 0x0d, 0x0b, 0xf4, 0xc9, 0x6d, 0xd5, 0xb0, 0xbe, 0x62, 0xc1, 0xfc, 0x1e, - 0x96, 0x67, 0x3d, 0x0d, 0x3b, 0x37, 0xb3, 0x7c, 0x74, 0x3b, 0x25, 0x59, 0x96, 0x7f, 0x1f, 0x44, - 0x0f, 0x1d, 0xd6, 0xbc, 0x4f, 0x00, 0xbb, 0x1e, 0x3f, 0x08, 0xd8, 0xc7, 0x94, 0x74, 0xe1, 0x7e, - 0xeb, 0x9b, 0x29, 0x9b, 0x2b, 0xdb, 0x1c, 0x95, 0xfd, 0x2c, 0x67, 0xa4, 0x6a, 0x5f, 0xd9, 0xe6, - 0xda, 0x15, 0xd4, 0x08, 0xbf, 0xb2, 0x2d, 0x80, 0x5b, 0x57, 0xb6, 0x79, 0x3c, 0x7b, 0xaf, 0x6c, - 0xf3, 0x5a, 0x0b, 0x5e, 0xd9, 0x16, 0xd6, 0xc0, 0x86, 0x77, 0x55, 0x04, 0xb1, 0x6f, 0xdd, 0xcb, - 0xa2, 0xbb, 0x8d, 0xfd, 0xf4, 0x36, 0x2a, 0xc8, 0x04, 0x27, 0x38, 0x7e, 0xa2, 0xb1, 0xc7, 0x33, - 0x75, 0x4e, 0x35, 0xee, 0xf4, 0xe6, 0xa5, 0xef, 0x1f, 0xcb, 0xd5, 0x8d, 0x1e, 0xce, 0x69, 0xc5, - 0xaf, 0xeb, 0xdb, 0x0c, 0x0d, 0xcf, 0x8d, 0x05, 0xbb, 0xe5, 0xb7, 0xfa, 0xc1, 0x48, 0x75, 0x1b, - 0x42, 0x36, 0xfa, 0xa8, 0xcb, 0x10, 0x68, 0xf2, 0x9d, 0xde, 0x3c, 0x32, 0x8d, 0x08, 0xdf, 0xa2, - 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe9, 0x7e, 0x29, 0xd3, 0x46, 0xdb, 0x3d, - 0x6f, 0xe7, 0xed, 0x2e, 0x53, 0x13, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x02, 0x61, 0x4f, 0xa1, - 0x5d, 0x09, 0x84, 0x77, 0x1a, 0xfd, 0xe8, 0x76, 0x4a, 0xb2, 0x2c, 0x7f, 0x3f, 0x88, 0xee, 0xa2, - 0x65, 0x91, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb5, 0x9e, 0x2c, 0xd4, 0x3f, - 0x0d, 0xa2, 0x7b, 0x81, 0x42, 0x89, 0x00, 0xb9, 0x85, 0x75, 0x37, 0x50, 0x3e, 0xbb, 0xbd, 0x22, - 0x36, 0xdd, 0xdb, 0xf8, 0xa4, 0x7d, 0xfd, 0x56, 0xc0, 0xf6, 0x04, 0xbf, 0x7e, 0xab, 0x5b, 0x0b, - 0x6e, 0xf2, 0xc4, 0x17, 0x6a, 0xd1, 0xe5, 0xdd, 0xe4, 0xe1, 0x67, 0x11, 0x83, 0xd7, 0x88, 0xf8, - 0x38, 0x9f, 0x93, 0x17, 0xaf, 0xcb, 0xb8, 0x48, 0x71, 0x27, 0x42, 0xde, 0xed, 0x44, 0x73, 0x70, - 0x73, 0xac, 0x91, 0x9e, 0x51, 0xb5, 0x90, 0x7a, 0x84, 0xe9, 0x6b, 0x24, 0xb8, 0x39, 0xd6, 0x42, - 0x11, 0x6f, 0x32, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0xb5, 0x37, - 0xbd, 0xe7, 0xbe, 0x15, 0xb2, 0xd2, 0xda, 0x77, 0xdf, 0xee, 0x49, 0x23, 0x6e, 0x27, 0x84, 0x7d, - 0x4e, 0xe2, 0x94, 0x54, 0x41, 0xb7, 0x9a, 0xea, 0xe5, 0xd6, 0xa6, 0x7d, 0x6e, 0x77, 0x69, 0xbe, - 0x98, 0x17, 0xb2, 0x31, 0x51, 0xb7, 0x36, 0xd5, 0xed, 0x16, 0xd0, 0x70, 0x5b, 0xd0, 0xb8, 0xe5, - 0xe9, 0xe5, 0xe3, 0xb0, 0x19, 0x27, 0xab, 0xdc, 0xec, 0xc5, 0xe2, 0xf5, 0x94, 0x61, 0xd4, 0x51, - 0x4f, 0x10, 0x49, 0xdb, 0x3d, 0x69, 0xb8, 0x3f, 0x67, 0xb9, 0xd5, 0xf1, 0xb4, 0xd3, 0x61, 0xab, - 0x15, 0x52, 0x4f, 0xfa, 0x2b, 0xc0, 0xdd, 0x50, 0x19, 0x55, 0x47, 0x59, 0xcd, 0xf6, 0xb3, 0x3c, - 0x1f, 0x6e, 0x06, 0xc2, 0x44, 0x41, 0xc1, 0xdd, 0x50, 0x0f, 0x8c, 0x44, 0xb2, 0xda, 0x3d, 0x2c, - 0x86, 0x5d, 0x76, 0x38, 0xd5, 0x2b, 0x92, 0x6d, 0x1a, 0xec, 0x68, 0x59, 0x8f, 0x5a, 0xd7, 0x76, - 0x14, 0x7e, 0x70, 0xad, 0x0a, 0xef, 0xf4, 0xe6, 0xc1, 0xeb, 0x76, 0x4e, 0xf1, 0x99, 0xe5, 0x01, - 0x66, 0xc2, 0x99, 0x49, 0x1e, 0x76, 0x50, 0x60, 0x57, 0x50, 0x74, 0xa3, 0x57, 0x59, 0x3a, 0x23, - 0xcc, 0xfb, 0xa6, 0xc8, 0x06, 0x82, 0x6f, 0x8a, 0x00, 0x08, 0x9a, 0x4e, 0xfc, 0x5d, 0x6f, 0x87, - 0x1e, 0xa6, 0xbe, 0xa6, 0x93, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x0d, 0x46, 0x03, 0xed, 0x56, - 0x5e, 0xbc, 0xf0, 0x38, 0x64, 0x06, 0xdc, 0xbe, 0xb0, 0xd9, 0x8b, 0x05, 0x33, 0x8a, 0x71, 0x98, - 0xcd, 0x33, 0xe6, 0x9b, 0x51, 0x2c, 0x1b, 0x0d, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x56, 0xbd, 0x26, - 0x47, 0x38, 0x4c, 0xc3, 0xd5, 0x13, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0xf5, 0x62, 0xb3, 0xd0, 0x21, - 0xc3, 0xae, 0xe4, 0x62, 0xd9, 0x13, 0xdb, 0xfc, 0x83, 0x5c, 0x08, 0x86, 0x46, 0x1d, 0x4c, 0x01, - 0x6e, 0xd8, 0x37, 0x9c, 0x7a, 0xf7, 0x5a, 0x96, 0x24, 0xae, 0xe2, 0x22, 0xf1, 0x2e, 0x4e, 0xb9, - 0xc1, 0x16, 0x19, 0x5a, 0x9c, 0xa2, 0x1a, 0xe0, 0xb5, 0xb9, 0xfb, 0x29, 0xad, 0xa7, 0x2b, 0xe8, - 0x6f, 0x56, 0xdd, 0x2f, 0x69, 0x1f, 0xf5, 0x20, 0xe1, 0x6b, 0x73, 0x05, 0xe8, 0x8d, 0x6f, 0xe1, - 0xf4, 0xc3, 0x80, 0x29, 0x17, 0x0d, 0x2d, 0x84, 0x71, 0x15, 0x10, 0xd4, 0x3a, 0xc1, 0x25, 0xec, - 0x47, 0x64, 0xe5, 0x0b, 0x6a, 0x93, 0x9f, 0x72, 0x24, 0x14, 0xd4, 0x6d, 0x14, 0xe4, 0x99, 0xf6, - 0x3a, 0x68, 0x2d, 0xa0, 0x6f, 0x2f, 0x7d, 0xd6, 0x3b, 0x39, 0xd0, 0x73, 0xf6, 0xb2, 0xa5, 0xf3, - 0x9e, 0xc0, 0x53, 0xd0, 0xbd, 0x6c, 0xe9, 0x7f, 0x4d, 0xb0, 0xd9, 0x8b, 0x85, 0xaf, 0xe4, 0x63, - 0x46, 0x5e, 0xab, 0x77, 0xe5, 0x9e, 0xe2, 0x72, 0x79, 0xeb, 0x65, 0xf9, 0x46, 0x37, 0x68, 0x0e, - 0xc0, 0x9e, 0x56, 0x34, 0x21, 0x75, 0x2d, 0xef, 0x24, 0x75, 0x4f, 0x18, 0x49, 0xd9, 0x08, 0xdc, - 0x48, 0xfa, 0x20, 0x0c, 0x59, 0x17, 0x09, 0x0a, 0x91, 0xb9, 0xdf, 0x68, 0xcd, 0xab, 0xd9, 0xbe, - 0xda, 0x68, 0xbd, 0x93, 0x33, 0xdd, 0x4b, 0x4a, 0xed, 0x0b, 0x8d, 0x36, 0xbc, 0xea, 0xbe, 0xbb, - 0x8c, 0x1e, 0xf5, 0x20, 0xa5, 0xab, 0xcf, 0xa3, 0x37, 0x8f, 0xe8, 0x6c, 0x42, 0x8a, 0x74, 0xf8, - 0x3d, 0xf7, 0x08, 0x2d, 0x9d, 0x8d, 0x9a, 0x3f, 0x6b, 0xa3, 0x77, 0x30, 0xb1, 0x39, 0x04, 0xb8, - 0x47, 0x2e, 0x16, 0xb3, 0x09, 0x8b, 0x19, 0x38, 0x04, 0xc8, 0xff, 0x3e, 0x6a, 0x04, 0xc8, 0x21, - 0x40, 0x07, 0x00, 0xf6, 0xa6, 0x15, 0x21, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x02, 0x26, 0x8b, - 0xd0, 0xf6, 0x9a, 0x44, 0x1d, 0x1e, 0xda, 0x33, 0x3a, 0x5c, 0x8a, 0x64, 0x11, 0x6d, 0xca, 0x04, - 0xb7, 0xa8, 0x3e, 0xbf, 0x5f, 0x66, 0x31, 0x9f, 0xc7, 0xd5, 0x0a, 0x04, 0xb7, 0xac, 0xa5, 0x05, - 0x20, 0xc1, 0xed, 0x05, 0x4d, 0xaf, 0x55, 0x8f, 0x39, 0xb9, 0x3e, 0xa0, 0x15, 0x5d, 0xb0, 0xac, - 0x20, 0xf0, 0x8e, 0x11, 0xfd, 0x40, 0x6d, 0x06, 0xe9, 0xb5, 0x18, 0x6b, 0xb2, 0x5c, 0x4e, 0x88, - 0xf3, 0x84, 0xfc, 0x9a, 0xf4, 0x9a, 0xd1, 0x0a, 0xbe, 0x4f, 0x14, 0x56, 0x20, 0x84, 0x64, 0xb9, - 0x28, 0x0c, 0xda, 0xfe, 0x34, 0x2b, 0x66, 0xde, 0xb6, 0x3f, 0xb5, 0xef, 0xf9, 0xbd, 0x87, 0x03, - 0xa6, 0x43, 0x89, 0x87, 0x26, 0x3a, 0x80, 0xfc, 0x6a, 0xd7, 0xfb, 0xd0, 0x6d, 0x02, 0xe9, 0x50, - 0x7e, 0x12, 0xb8, 0xfa, 0xa2, 0x24, 0x05, 0x49, 0xd5, 0xa9, 0x39, 0x9f, 0x2b, 0x87, 0x08, 0xba, - 0x82, 0xa4, 0x19, 0x8b, 0xb8, 0xfc, 0x6c, 0x51, 0x9c, 0x56, 0xf4, 0x32, 0xcb, 0x49, 0x05, 0xc6, - 0x22, 0xa1, 0x6e, 0xc9, 0x91, 0xb1, 0xc8, 0xc7, 0x99, 0xe3, 0x17, 0x5c, 0xea, 0xdc, 0xf5, 0x3f, - 0xad, 0xe2, 0x04, 0x1e, 0xbf, 0x10, 0x36, 0xda, 0x18, 0xb2, 0x33, 0x18, 0xc0, 0xad, 0x44, 0x47, - 0xb8, 0x2e, 0x56, 0x3c, 0x3e, 0xe4, 0x57, 0xa3, 0xfc, 0xf6, 0xdb, 0x1a, 0x24, 0x3a, 0xd2, 0x9c, - 0x8f, 0x44, 0x12, 0x9d, 0xb0, 0x86, 0x99, 0x4a, 0x38, 0x77, 0x22, 0x8f, 0x15, 0x81, 0xa9, 0x44, - 0xd8, 0x50, 0x42, 0x64, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x52, 0xdd, 0x60, 0xe6, 0x1d, 0x90, 0xb4, - 0x34, 0x38, 0x20, 0xd9, 0x94, 0x19, 0x28, 0x0e, 0x8b, 0x8c, 0x65, 0x71, 0x3e, 0x21, 0xec, 0x34, - 0xae, 0xe2, 0x39, 0x61, 0xa4, 0x82, 0x03, 0x85, 0x44, 0x46, 0x0e, 0x83, 0x0c, 0x14, 0x18, 0x2b, - 0x1d, 0xfe, 0x76, 0xf4, 0x76, 0x33, 0xef, 0x93, 0x42, 0xfe, 0x4a, 0xd1, 0x0b, 0xfe, 0xf3, 0x66, - 0xc3, 0x77, 0xb4, 0x8d, 0x09, 0xab, 0x48, 0x3c, 0x57, 0xb6, 0xdf, 0xd2, 0x7f, 0xe7, 0xe0, 0x93, - 0x41, 0x13, 0xcf, 0x27, 0x94, 0x65, 0x97, 0xcd, 0x32, 0x5b, 0x7e, 0x41, 0x04, 0xe2, 0xd9, 0x16, - 0x8f, 0x02, 0xb7, 0x8e, 0xf8, 0x38, 0x33, 0x4e, 0xdb, 0xd2, 0x33, 0x52, 0xe6, 0x70, 0x9c, 0x76, - 0xb4, 0x39, 0x80, 0x8c, 0xd3, 0x5e, 0xd0, 0x74, 0x4e, 0x5b, 0x3c, 0x25, 0xe1, 0xca, 0x4c, 0x49, - 0xbf, 0xca, 0x4c, 0x9d, 0x8f, 0x32, 0xf2, 0xe8, 0xed, 0x63, 0x32, 0xbf, 0x20, 0x55, 0x7d, 0x95, - 0x95, 0xd8, 0x0d, 0xbd, 0x86, 0xe8, 0xbc, 0xa1, 0x17, 0x41, 0xcd, 0x4c, 0x60, 0x80, 0xc3, 0xfa, - 0x24, 0x9e, 0x13, 0x7e, 0x87, 0x0a, 0x98, 0x09, 0x2c, 0x23, 0x16, 0x84, 0xcc, 0x04, 0x28, 0x6c, - 0x7d, 0xdf, 0x65, 0x98, 0x33, 0x32, 0x6b, 0x22, 0xac, 0x3a, 0x8d, 0x57, 0x73, 0x52, 0x30, 0x69, - 0x12, 0xec, 0xc9, 0x5b, 0x26, 0xfd, 0x3c, 0xb2, 0x27, 0xdf, 0x47, 0xcf, 0x1a, 0x9a, 0x9c, 0x07, - 0x7f, 0x4a, 0x2b, 0x26, 0x7e, 0x83, 0xec, 0xbc, 0xca, 0xc1, 0xd0, 0xe4, 0x3e, 0x54, 0x87, 0x44, - 0x86, 0xa6, 0xb0, 0x86, 0xf5, 0x7b, 0x13, 0x4e, 0x19, 0x5e, 0x92, 0x4a, 0xc7, 0xc9, 0x8b, 0x79, - 0x9c, 0xe5, 0x32, 0x1a, 0xbe, 0x1f, 0xb0, 0x8d, 0xe8, 0x20, 0xbf, 0x37, 0xd1, 0x57, 0xd7, 0xfa, - 0x85, 0x8e, 0x70, 0x09, 0xc1, 0x2b, 0x82, 0x0e, 0xfb, 0xc8, 0x2b, 0x82, 0x6e, 0x2d, 0xb3, 0x72, - 0x37, 0x2c, 0xe7, 0x56, 0x9c, 0xd8, 0xa5, 0x29, 0xdc, 0x2f, 0xb4, 0x6c, 0x02, 0x10, 0x59, 0xb9, - 0x07, 0x15, 0x4c, 0x6a, 0x60, 0xb0, 0xfd, 0xac, 0x88, 0xf3, 0xec, 0x27, 0x30, 0xad, 0xb7, 0xec, - 0x28, 0x02, 0x49, 0x0d, 0xfc, 0xa4, 0xcf, 0xd5, 0x01, 0x61, 0xd3, 0xac, 0x19, 0xfa, 0x37, 0x02, - 0xcf, 0x8d, 0x13, 0xdd, 0xae, 0x2c, 0xd2, 0xba, 0x8d, 0x17, 0x3e, 0xd6, 0x71, 0x59, 0x4e, 0x9a, - 0x59, 0xf5, 0x8c, 0x24, 0x24, 0x2b, 0xd9, 0xf0, 0xe3, 0xf0, 0xb3, 0x02, 0x38, 0x72, 0xd0, 0xa2, - 0x87, 0x9a, 0xf5, 0xfa, 0xbe, 0x19, 0x4b, 0x26, 0xe2, 0xc7, 0x39, 0xcf, 0x6b, 0x52, 0xc9, 0x44, - 0xe3, 0x80, 0x30, 0xd0, 0x3b, 0x2d, 0x6e, 0x64, 0x81, 0x4d, 0x45, 0x91, 0xde, 0x19, 0xd6, 0x30, - 0x9b, 0x7d, 0x16, 0x27, 0x6f, 0x57, 0xe7, 0xe7, 0x0d, 0xb7, 0x50, 0x63, 0x16, 0x85, 0x6c, 0xf6, - 0xe1, 0xb4, 0xc9, 0xd6, 0xda, 0x6e, 0xc7, 0xc5, 0xea, 0x10, 0x1e, 0x99, 0xf0, 0x58, 0xe2, 0x18, - 0x92, 0xad, 0x05, 0x70, 0x6b, 0x33, 0xbc, 0xa2, 0x71, 0x9a, 0xc4, 0x35, 0x3b, 0x8d, 0x57, 0x39, - 0x8d, 0x53, 0x3e, 0xaf, 0xc3, 0xcd, 0x70, 0xc5, 0x8c, 0x6c, 0x08, 0xdb, 0x0c, 0xc7, 0x60, 0x3b, - 0x3b, 0xe3, 0xbf, 0x39, 0x2a, 0xcf, 0x72, 0xc2, 0xec, 0x8c, 0x97, 0x17, 0x9e, 0xe3, 0x7c, 0x10, - 0x86, 0xcc, 0x37, 0x68, 0x42, 0xc4, 0xd3, 0x90, 0x7b, 0x3e, 0x1d, 0x27, 0x01, 0x79, 0x3f, 0x40, - 0x98, 0x1b, 0x48, 0xc4, 0xdf, 0xd5, 0xcf, 0x4c, 0x31, 0x79, 0x67, 0xf9, 0x96, 0x4f, 0xd7, 0x86, - 0x46, 0xf6, 0x45, 0x16, 0xdb, 0x3d, 0x69, 0x93, 0x66, 0xee, 0x5e, 0xc5, 0x6c, 0x9c, 0xa6, 0xc7, - 0xa4, 0xf6, 0x7c, 0x50, 0xde, 0x08, 0x47, 0x46, 0x8a, 0xa4, 0x99, 0x6d, 0xca, 0x04, 0x7a, 0x23, - 0x7b, 0x91, 0x66, 0x4c, 0xca, 0xd4, 0x09, 0xe9, 0xad, 0xb6, 0x81, 0x36, 0x85, 0xd4, 0x0a, 0xa7, - 0xcd, 0x58, 0xde, 0x30, 0x53, 0x3a, 0x9b, 0xe5, 0x44, 0x42, 0x67, 0x24, 0x16, 0x57, 0x36, 0xee, - 0xb4, 0x6d, 0x79, 0x41, 0x64, 0x2c, 0x0f, 0x2a, 0x98, 0x34, 0xb2, 0xc1, 0xc4, 0x2b, 0x29, 0xf5, - 0x60, 0xd7, 0xdb, 0x66, 0x1c, 0x00, 0x49, 0x23, 0xbd, 0xa0, 0xf9, 0xee, 0xad, 0x11, 0x1f, 0x10, - 0xf5, 0x24, 0xe0, 0x65, 0x53, 0x5c, 0xd9, 0x12, 0x23, 0xdf, 0xbd, 0x79, 0x30, 0xb3, 0x4e, 0x00, - 0x1e, 0x9e, 0xaf, 0x0e, 0x53, 0xb8, 0x4e, 0x80, 0xfa, 0x9c, 0x41, 0xd6, 0x09, 0x18, 0xeb, 0x36, - 0x9d, 0xde, 0xf7, 0x3a, 0x8a, 0x6b, 0x53, 0x39, 0x4f, 0xd3, 0x79, 0xc1, 0x50, 0xd3, 0x61, 0x0a, - 0xee, 0x23, 0xb5, 0xb7, 0xd6, 0x3c, 0x8f, 0xd4, 0xb7, 0xaf, 0xb6, 0xd6, 0x85, 0x99, 0x71, 0x49, - 0xaf, 0x27, 0xf9, 0x91, 0x25, 0xff, 0x6f, 0x35, 0x08, 0x21, 0x32, 0x2e, 0xb5, 0x20, 0x61, 0xfb, - 0xf9, 0xfb, 0xff, 0xf5, 0xd5, 0x9d, 0xc1, 0xcf, 0xbe, 0xba, 0x33, 0xf8, 0x9f, 0xaf, 0xee, 0x0c, - 0x7e, 0xfa, 0xf5, 0x9d, 0x37, 0x7e, 0xf6, 0xf5, 0x9d, 0x37, 0xfe, 0xfb, 0xeb, 0x3b, 0x6f, 0x7c, - 0xf9, 0xa6, 0xfc, 0x2d, 0xea, 0x8b, 0x9f, 0xe3, 0xbf, 0x28, 0xfd, 0xec, 0xff, 0x02, 0x00, 0x00, - 0xff, 0xff, 0xc9, 0x60, 0xbd, 0x6d, 0xaf, 0x7a, 0x00, 0x00, + // 5482 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49, + 0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x07, 0x86, 0xd9, 0x61, 0x37, 0xc9, 0x64, + 0x12, 0x3b, 0x89, 0xe3, 0xeb, 0x4c, 0x32, 0xff, 0xd8, 0x45, 0x82, 0x1b, 0x3b, 0xf1, 0x78, 0xd7, + 0xf6, 0x18, 0x5f, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0xdd, 0x5d, 0xbe, 0x6e, 0xdc, 0xb7, 0xab, 0xb7, + 0xbb, 0xae, 0x93, 0xbb, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0xfc, 0x13, 0x3c, 0x21, 0xf1, + 0x09, 0xf8, 0x18, 0x3c, 0xee, 0x03, 0x0f, 0x3c, 0xa2, 0x99, 0x6f, 0xc0, 0x27, 0x40, 0x5d, 0x5d, + 0x7f, 0x4f, 0x9f, 0x53, 0xdd, 0x1e, 0x9e, 0x12, 0xf9, 0xfc, 0xce, 0x39, 0xf5, 0xe7, 0x54, 0xd5, + 0xa9, 0xea, 0xea, 0xbe, 0xd1, 0xcd, 0xf2, 0x6c, 0xab, 0xac, 0xb8, 0xe0, 0xf5, 0x56, 0xcd, 0xaa, + 0xab, 0x2c, 0x61, 0xfa, 0xdf, 0x89, 0xfc, 0xf3, 0xf8, 0xcd, 0xb8, 0x58, 0x89, 0x55, 0xc9, 0xde, + 0x7b, 0xd7, 0x92, 0x09, 0x5f, 0x2c, 0xe2, 0x22, 0xad, 0x5b, 0xe4, 0xbd, 0x77, 0xac, 0x84, 0x5d, + 0xb1, 0x42, 0xa8, 0xbf, 0x3f, 0xfe, 0xaf, 0xff, 0x1d, 0x45, 0x6f, 0x6d, 0xe7, 0x19, 0x2b, 0xc4, + 0xb6, 0xd2, 0x18, 0x7f, 0x19, 0x7d, 0x7b, 0x5a, 0x96, 0xbb, 0x4c, 0xbc, 0x60, 0x55, 0x9d, 0xf1, + 0x62, 0xfc, 0xc1, 0x44, 0x39, 0x98, 0x1c, 0x97, 0xc9, 0x64, 0x5a, 0x96, 0x13, 0x2b, 0x9c, 0x1c, + 0xb3, 0x1f, 0x2f, 0x59, 0x2d, 0xde, 0xbb, 0x13, 0x86, 0xea, 0x92, 0x17, 0x35, 0x1b, 0x9f, 0x47, + 0xbf, 0x32, 0x2d, 0xcb, 0x19, 0x13, 0x3b, 0xac, 0xa9, 0xc0, 0x4c, 0xc4, 0x82, 0x8d, 0xd7, 0x3b, + 0xaa, 0x3e, 0x60, 0x7c, 0xdc, 0xeb, 0x07, 0x95, 0x9f, 0x93, 0xe8, 0x5b, 0x8d, 0x9f, 0x8b, 0xa5, + 0x48, 0xf9, 0xab, 0x62, 0xfc, 0x7e, 0x57, 0x51, 0x89, 0x8c, 0xed, 0xdb, 0x21, 0x44, 0x59, 0x7d, + 0x19, 0xfd, 0xe2, 0xcb, 0x38, 0xcf, 0x99, 0xd8, 0xae, 0x58, 0x53, 0x70, 0x5f, 0xa7, 0x15, 0x4d, + 0x5a, 0x99, 0xb1, 0xfb, 0x41, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x4a, 0x8e, 0x59, 0xc2, + 0xaf, 0x58, 0x35, 0x46, 0xb5, 0x94, 0x90, 0x68, 0xf2, 0x0e, 0x04, 0x6d, 0x6f, 0xf3, 0xe2, 0x8a, + 0x55, 0x02, 0xb7, 0xad, 0x84, 0x61, 0xdb, 0x16, 0x52, 0xb6, 0xff, 0x6a, 0x14, 0x7d, 0x77, 0x9a, + 0x24, 0x7c, 0x59, 0x88, 0x7d, 0x9e, 0xc4, 0xf9, 0x7e, 0x56, 0x5c, 0x1e, 0xb2, 0x57, 0xdb, 0x17, + 0x0d, 0x5f, 0xcc, 0xd9, 0xf8, 0x89, 0xdf, 0xaa, 0x2d, 0x3a, 0x31, 0xec, 0xc4, 0x85, 0x8d, 0xef, + 0x8f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x77, 0xa3, 0xe8, 0x06, 0x2c, 0xcb, 0x8c, 0xe7, 0x57, 0xcc, + 0x96, 0xe6, 0xe3, 0x1e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xc9, 0x75, 0xd5, 0x54, 0x89, 0xf2, 0xe8, + 0x6d, 0x37, 0x5c, 0x66, 0xac, 0x96, 0xc3, 0xe9, 0x3e, 0x1d, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0x0c, + 0x41, 0x95, 0xb7, 0x2c, 0x1a, 0x2b, 0x6f, 0x39, 0xaf, 0x8d, 0xb3, 0x7b, 0xa8, 0x05, 0x87, 0x30, + 0xbe, 0xee, 0x0f, 0x20, 0x95, 0xab, 0xdf, 0x8f, 0x7e, 0xe9, 0x25, 0xaf, 0x2e, 0xeb, 0x32, 0x4e, + 0x98, 0x1a, 0x0a, 0x77, 0x7d, 0x6d, 0x2d, 0x85, 0xa3, 0x61, 0xad, 0x0f, 0x73, 0x82, 0x56, 0x0b, + 0xbf, 0x28, 0x19, 0x9c, 0x83, 0xac, 0x62, 0x23, 0xa4, 0x82, 0x16, 0x42, 0xca, 0xf6, 0x65, 0x34, + 0xb6, 0xb6, 0xcf, 0xfe, 0x80, 0x25, 0x62, 0x9a, 0xa6, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x26, 0xd3, + 0x34, 0xa5, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x7e, 0x56, 0x4b, 0x87, + 0x9b, 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x27, 0x43, 0x71, 0xe5, 0xf8, 0x4f, 0x46, 0xd1, 0x77, 0x10, + 0xcf, 0xc7, 0x6c, 0xc1, 0xaf, 0xd8, 0xf8, 0x51, 0xbf, 0xb5, 0x96, 0x34, 0xfe, 0x3f, 0xbc, 0x86, + 0x06, 0x12, 0x26, 0x33, 0x96, 0xb3, 0x44, 0x90, 0x61, 0xd2, 0x8a, 0x7b, 0xc3, 0xc4, 0x60, 0xce, + 0x08, 0xd3, 0xc2, 0x5d, 0x26, 0xb6, 0x97, 0x55, 0xc5, 0x0a, 0x41, 0xf6, 0xa5, 0x45, 0x7a, 0xfb, + 0xd2, 0x43, 0x91, 0xfa, 0xec, 0x32, 0x31, 0xcd, 0x73, 0xb2, 0x3e, 0xad, 0xb8, 0xb7, 0x3e, 0x06, + 0x53, 0x1e, 0x92, 0xe8, 0x97, 0x9d, 0x16, 0x13, 0x7b, 0xc5, 0x39, 0x1f, 0xd3, 0x6d, 0x21, 0xe5, + 0xc6, 0xc7, 0x7a, 0x2f, 0x87, 0x54, 0xe3, 0xd9, 0xeb, 0x92, 0x57, 0x74, 0xb7, 0xb4, 0xe2, 0xde, + 0x6a, 0x18, 0x4c, 0x79, 0xf8, 0xbd, 0xe8, 0x2d, 0x35, 0x4b, 0xea, 0xf5, 0xec, 0x0e, 0x3a, 0x85, + 0xc2, 0x05, 0xed, 0x6e, 0x0f, 0x65, 0x27, 0x07, 0x25, 0x53, 0x93, 0xcf, 0x07, 0xa8, 0x1e, 0x98, + 0x7a, 0xee, 0x84, 0xa1, 0x8e, 0xed, 0x1d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, + 0x65, 0xbb, 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x33, 0x49, 0x6f, 0x10, 0xf5, + 0x76, 0x21, 0xe3, 0xeb, 0xe1, 0x30, 0xb8, 0x53, 0x1f, 0x35, 0x02, 0xf1, 0xfa, 0x80, 0xf1, 0x77, + 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3d, 0x8a, 0xbe, 0xa7, 0x64, 0xcf, 0x8a, 0xf8, 0x2c, 0x67, 0x72, + 0x49, 0x3c, 0x64, 0xe2, 0x15, 0xaf, 0x2e, 0x67, 0xab, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, + 0xfe, 0x49, 0x25, 0x55, 0x98, 0x3f, 0x8c, 0xde, 0xd5, 0x41, 0x71, 0x11, 0x17, 0x73, 0xf6, 0xc3, + 0x9a, 0x17, 0xd3, 0x32, 0x9b, 0xa6, 0x69, 0x35, 0x9e, 0xe0, 0x5d, 0x0f, 0x39, 0x53, 0x82, 0xad, + 0xc1, 0xbc, 0x93, 0x6e, 0xaa, 0x56, 0x16, 0xbc, 0x84, 0xe9, 0xa6, 0x6e, 0x3e, 0xc1, 0x4b, 0x2a, + 0xdd, 0xf4, 0x91, 0x8e, 0xd5, 0x83, 0x66, 0xce, 0xc6, 0xad, 0x1e, 0xb8, 0x93, 0xf4, 0xed, 0x10, + 0x62, 0xe7, 0x4c, 0xdd, 0x50, 0xbc, 0x38, 0xcf, 0xe6, 0xa7, 0x65, 0xda, 0x8c, 0xa1, 0xfb, 0x78, + 0x9d, 0x1d, 0x84, 0x98, 0x33, 0x09, 0x54, 0x79, 0xfb, 0x5b, 0x9b, 0x95, 0xa9, 0x71, 0xfc, 0xbc, + 0xe2, 0x8b, 0x7d, 0x36, 0x8f, 0x93, 0x95, 0x9a, 0x7c, 0x3e, 0x0a, 0x8d, 0x7a, 0x48, 0x9b, 0x42, + 0x7c, 0x7c, 0x4d, 0x2d, 0x55, 0x9e, 0x7f, 0x1b, 0x45, 0x77, 0xbc, 0x38, 0x51, 0xc1, 0xd4, 0x96, + 0x7e, 0x5a, 0xa4, 0xc7, 0xac, 0x16, 0x71, 0x25, 0xc6, 0xdf, 0x0f, 0xc4, 0x00, 0xa1, 0x63, 0xca, + 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0xd6, 0xcc, 0xaa, 0x6a, 0xfe, 0xf1, 0x7b, 0x5d, 0x4a, + 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xbd, 0xe2, 0x2a, 0x13, 0x6c, 0x97, 0x15, + 0xac, 0xea, 0xf6, 0x7a, 0xab, 0xea, 0x23, 0x44, 0xaf, 0x13, 0xa8, 0x9d, 0xe9, 0x3c, 0x6f, 0x66, + 0x65, 0xde, 0x08, 0x18, 0xe9, 0xac, 0xcd, 0x0f, 0x87, 0xc1, 0x76, 0x6b, 0xe9, 0xf8, 0x3c, 0x66, + 0x57, 0xfc, 0x12, 0x6e, 0x2d, 0x5d, 0x13, 0x2d, 0x40, 0x6c, 0x2d, 0x51, 0xd0, 0x2e, 0x9f, 0x8e, + 0x9f, 0x17, 0x19, 0x7b, 0x05, 0x96, 0x4f, 0x57, 0xb9, 0x11, 0x13, 0xcb, 0x27, 0x82, 0x29, 0x0f, + 0x87, 0xd1, 0x2f, 0x48, 0xe1, 0x0f, 0x79, 0x56, 0x8c, 0x6f, 0x22, 0x4a, 0x8d, 0xc0, 0x58, 0xbd, + 0x45, 0x03, 0xa0, 0xc4, 0xcd, 0x5f, 0xb7, 0xe3, 0x22, 0x61, 0x39, 0x5a, 0x62, 0x2b, 0x0e, 0x96, + 0xd8, 0xc3, 0x6c, 0xde, 0x22, 0x85, 0xcd, 0xfc, 0x35, 0xbb, 0x88, 0xab, 0xac, 0x98, 0x8f, 0x31, + 0x5d, 0x47, 0x4e, 0xe4, 0x2d, 0x18, 0x07, 0x42, 0x58, 0x29, 0x4e, 0xcb, 0xb2, 0x6a, 0xa6, 0x45, + 0x2c, 0x84, 0x7d, 0x24, 0x18, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc3, 0x92, 0x3c, 0x2b, 0x82, 0xde, + 0x14, 0x32, 0xc4, 0x9b, 0x45, 0x41, 0xf0, 0xee, 0xb3, 0xf8, 0x8a, 0xe9, 0x9a, 0x61, 0x2d, 0xe3, + 0x02, 0xc1, 0xe0, 0x05, 0xa0, 0xdd, 0x24, 0x4a, 0xf1, 0x41, 0x7c, 0xc9, 0x9a, 0x06, 0x66, 0xcd, + 0xa2, 0x3a, 0xc6, 0xf4, 0x3d, 0x82, 0xd8, 0x24, 0xe2, 0xa4, 0x72, 0xb5, 0x8c, 0xde, 0x91, 0xf2, + 0xa3, 0xb8, 0x12, 0x59, 0x92, 0x95, 0x71, 0xa1, 0x37, 0x1f, 0xd8, 0xb8, 0xee, 0x50, 0xc6, 0xe5, + 0xe6, 0x40, 0x5a, 0xb9, 0xfd, 0xe7, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc4, 0xaa, 0x45, 0x26, 0xf7, + 0xb0, 0x75, 0x3b, 0x09, 0x8f, 0x3f, 0x0d, 0x1b, 0xed, 0x28, 0x98, 0xd2, 0x7c, 0x76, 0x7d, 0x45, + 0x9b, 0x89, 0xcd, 0x54, 0x5e, 0xff, 0x45, 0x95, 0x76, 0xce, 0x78, 0x66, 0x3a, 0x59, 0x97, 0x42, + 0x22, 0x13, 0xeb, 0x40, 0x60, 0x84, 0x9f, 0x16, 0xb5, 0xb6, 0x8e, 0x8d, 0x70, 0x2b, 0x0e, 0x8e, + 0x70, 0x0f, 0xb3, 0x23, 0xfc, 0x68, 0x79, 0x96, 0x67, 0xf5, 0x45, 0x56, 0xcc, 0x55, 0xda, 0xed, + 0xeb, 0x5a, 0x31, 0xcc, 0xbc, 0xd7, 0x7b, 0x39, 0xcc, 0x89, 0x0a, 0x16, 0xd2, 0x09, 0x08, 0x93, + 0xf5, 0x5e, 0xce, 0x6e, 0x4e, 0xac, 0xb4, 0xd9, 0xb6, 0x82, 0xcd, 0x89, 0xa3, 0xda, 0x48, 0x89, + 0xcd, 0x49, 0x97, 0x52, 0xe6, 0x79, 0xf4, 0xab, 0x6e, 0x1d, 0x6a, 0x9e, 0x5f, 0xb1, 0xd3, 0x2a, + 0x1b, 0x3f, 0xa0, 0xcb, 0xa7, 0x19, 0xe3, 0x6a, 0x63, 0x10, 0x6b, 0x27, 0x2a, 0x4b, 0xec, 0x32, + 0x31, 0x13, 0xb1, 0x58, 0xd6, 0x60, 0xa2, 0x72, 0x6c, 0x18, 0x84, 0x98, 0xa8, 0x08, 0x54, 0x79, + 0xfb, 0xdd, 0x28, 0x6a, 0x77, 0xfc, 0xf2, 0x54, 0xc6, 0x5f, 0x7b, 0xd4, 0x51, 0x80, 0x77, 0x24, + 0xf3, 0x7e, 0x80, 0xb0, 0x09, 0x4f, 0xfb, 0x77, 0x79, 0xd8, 0x34, 0x46, 0x35, 0xa4, 0x88, 0x48, + 0x78, 0x00, 0x02, 0x0b, 0x3a, 0xbb, 0xe0, 0xaf, 0xf0, 0x82, 0x36, 0x92, 0x70, 0x41, 0x15, 0x61, + 0x8f, 0x7f, 0x55, 0x41, 0xb1, 0xe3, 0x5f, 0x5d, 0x8c, 0xd0, 0xf1, 0x2f, 0x64, 0x6c, 0xcc, 0xb8, + 0x86, 0x9f, 0x72, 0x7e, 0xb9, 0x88, 0xab, 0x4b, 0x10, 0x33, 0x9e, 0xb2, 0x66, 0x88, 0x98, 0xa1, + 0x58, 0x1b, 0x33, 0xae, 0xc3, 0x26, 0x5d, 0x3e, 0xad, 0x72, 0x10, 0x33, 0x9e, 0x0d, 0x85, 0x10, + 0x31, 0x43, 0xa0, 0x76, 0x76, 0x72, 0xbd, 0xcd, 0x18, 0x3c, 0x70, 0xf0, 0xd4, 0x67, 0x8c, 0x3a, + 0x70, 0x40, 0x30, 0x18, 0x42, 0xbb, 0x55, 0x5c, 0x5e, 0xe0, 0x21, 0x24, 0x45, 0xe1, 0x10, 0xd2, + 0x08, 0xec, 0xef, 0x19, 0x8b, 0xab, 0xe4, 0x02, 0xef, 0xef, 0x56, 0x16, 0xee, 0x6f, 0xc3, 0xc0, + 0xfe, 0x6e, 0x05, 0x2f, 0x33, 0x71, 0x71, 0xc0, 0x44, 0x8c, 0xf7, 0xb7, 0xcf, 0x84, 0xfb, 0xbb, + 0xc3, 0xda, 0x7c, 0xdc, 0x75, 0x38, 0x5b, 0x9e, 0xd5, 0x49, 0x95, 0x9d, 0xb1, 0x71, 0xc0, 0x8a, + 0x81, 0x88, 0x7c, 0x9c, 0x84, 0x95, 0xcf, 0x9f, 0x8e, 0xa2, 0x9b, 0xba, 0xdb, 0x79, 0x5d, 0xab, + 0xb5, 0xcf, 0x77, 0xff, 0x31, 0xde, 0xbf, 0x04, 0x4e, 0x1c, 0xc8, 0x0f, 0x50, 0x73, 0x72, 0x03, + 0xbc, 0x48, 0xa7, 0x45, 0x6d, 0x0a, 0xf5, 0xe9, 0x10, 0xeb, 0x8e, 0x02, 0x91, 0x1b, 0x0c, 0x52, + 0xb4, 0x69, 0x99, 0xea, 0x1f, 0x2d, 0xdb, 0x4b, 0x6b, 0x90, 0x96, 0xe9, 0xf6, 0x76, 0x08, 0x22, + 0x2d, 0xc3, 0x49, 0x18, 0x0a, 0xbb, 0x15, 0x5f, 0x96, 0x75, 0x4f, 0x28, 0x00, 0x28, 0x1c, 0x0a, + 0x5d, 0x58, 0xf9, 0x7c, 0x1d, 0xfd, 0xba, 0x1b, 0x7e, 0x6e, 0x63, 0x6f, 0xd2, 0x31, 0x85, 0x35, + 0xf1, 0x64, 0x28, 0x6e, 0x33, 0x0a, 0xed, 0x59, 0xec, 0x30, 0x11, 0x67, 0x79, 0x3d, 0x5e, 0xc3, + 0x6d, 0x68, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x9c, 0xdf, 0x76, 0x96, 0x65, 0x9e, 0x25, 0xdd, 0xc7, + 0x21, 0x4a, 0xd7, 0x88, 0xc3, 0xf3, 0x9b, 0x8b, 0xc1, 0xf9, 0xba, 0x49, 0xfd, 0xe4, 0x7f, 0x4e, + 0x56, 0x25, 0xc3, 0xe7, 0x6b, 0x0f, 0x09, 0xcf, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x31, 0xb1, 0x1f, + 0xaf, 0xf8, 0x92, 0x98, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x7b, 0x03, 0xe3, 0x61, 0xaf, + 0x10, 0xac, 0x2a, 0xe2, 0xfc, 0x79, 0x1e, 0xcf, 0xeb, 0x31, 0x31, 0xc7, 0xf8, 0x14, 0xb1, 0x37, + 0xa0, 0x69, 0xa4, 0x19, 0xf7, 0xea, 0xe7, 0xf1, 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, + 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0xd3, 0x2a, 0xb9, 0xc8, 0xae, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, + 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x19, 0x5f, 0x56, 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, + 0xc1, 0x94, 0x87, 0x3f, 0x1f, 0x45, 0xbf, 0xd1, 0x4a, 0xdd, 0x67, 0x14, 0x3b, 0x71, 0x7d, 0x71, + 0xc6, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, 0x51, 0xe3, 0xfa, 0xf1, 0x75, 0x54, 0x60, 0xb3, + 0x36, 0x79, 0xb7, 0x1d, 0x71, 0x68, 0xb3, 0x7a, 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x27, 0x10, 0x29, + 0x6f, 0x8f, 0xe4, 0xd6, 0x48, 0x7d, 0xff, 0x5c, 0x6e, 0xbd, 0x97, 0x83, 0xf3, 0x63, 0x23, 0xf4, + 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x47, 0xcc, 0x64, 0x28, 0x4e, 0x7a, 0x36, 0xa3, 0x22, 0xec, 0xb9, + 0x33, 0x32, 0x26, 0x43, 0x71, 0xc2, 0xb3, 0x33, 0xad, 0x85, 0x3c, 0x23, 0x53, 0xdb, 0x64, 0x28, + 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x41, 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x06, 0xb1, 0xca, + 0xe1, 0x5f, 0x8e, 0xa2, 0xef, 0x5a, 0x8f, 0x07, 0x3c, 0xcd, 0xce, 0x57, 0x2d, 0xf4, 0x22, 0xce, + 0x97, 0xac, 0x1e, 0x3f, 0xa6, 0xac, 0x75, 0x59, 0x53, 0x82, 0x27, 0xd7, 0xd2, 0x81, 0x63, 0x67, + 0x5a, 0x96, 0xf9, 0xea, 0x84, 0x2d, 0xca, 0x9c, 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, + 0x59, 0xf9, 0x09, 0x6f, 0x72, 0x7e, 0x34, 0x2b, 0x97, 0xa2, 0x70, 0x56, 0xae, 0x11, 0x98, 0x2b, + 0x9d, 0xf0, 0x6d, 0x9e, 0xe7, 0x2c, 0x11, 0xdd, 0x7b, 0x0e, 0x46, 0xd3, 0x12, 0xe1, 0x5c, 0x09, + 0x90, 0xf6, 0x54, 0x4e, 0xef, 0x21, 0xe3, 0x8a, 0x3d, 0x5d, 0xed, 0x67, 0xc5, 0xe5, 0x18, 0x4f, + 0x0b, 0x2c, 0x40, 0x9c, 0xca, 0xa1, 0x20, 0xdc, 0xab, 0x9e, 0x16, 0x29, 0xc7, 0xf7, 0xaa, 0x8d, + 0x24, 0xbc, 0x57, 0x55, 0x04, 0x34, 0x79, 0xcc, 0x28, 0x93, 0x8d, 0x24, 0x6c, 0x52, 0x11, 0xd8, + 0x54, 0xa8, 0x9e, 0xdd, 0x90, 0x53, 0x21, 0x78, 0x5a, 0xb3, 0xde, 0xcb, 0xc1, 0x08, 0xd5, 0x9b, + 0xd6, 0xe7, 0x4c, 0x24, 0x17, 0x78, 0x84, 0x7a, 0x48, 0x38, 0x42, 0x21, 0x0a, 0xab, 0x74, 0xc2, + 0xcd, 0xa6, 0x7b, 0x0d, 0x8f, 0x8f, 0xce, 0x86, 0x7b, 0xbd, 0x97, 0x83, 0xdb, 0xc8, 0xbd, 0x85, + 0x6c, 0x33, 0x34, 0xc8, 0x5b, 0x59, 0x78, 0x1b, 0x69, 0x18, 0x58, 0xfa, 0x56, 0x20, 0xcf, 0xb2, + 0xd6, 0x68, 0x45, 0xef, 0x34, 0x6b, 0xbd, 0x97, 0x53, 0x4e, 0xfe, 0xd1, 0x6c, 0xe3, 0x5a, 0xe9, + 0x21, 0x6f, 0xc6, 0xc8, 0x8b, 0x38, 0xcf, 0xd2, 0x58, 0xb0, 0x13, 0x7e, 0xc9, 0x0a, 0x7c, 0xc7, + 0xa4, 0x4a, 0xdb, 0xf2, 0x13, 0x4f, 0x21, 0xbc, 0x63, 0x0a, 0x2b, 0xc2, 0x38, 0x69, 0xe9, 0xd3, + 0x9a, 0x6d, 0xc7, 0x35, 0x31, 0x93, 0x79, 0x48, 0x38, 0x4e, 0x20, 0x0a, 0xf3, 0xd5, 0x56, 0xfe, + 0xec, 0x75, 0xc9, 0xaa, 0x8c, 0x15, 0x09, 0xc3, 0xf3, 0x55, 0x48, 0x85, 0xf3, 0x55, 0x84, 0x86, + 0x7b, 0xb5, 0x9d, 0x58, 0xb0, 0xa7, 0xab, 0x93, 0x6c, 0xc1, 0x6a, 0x11, 0x2f, 0x4a, 0x7c, 0xaf, + 0x06, 0xa0, 0xf0, 0x5e, 0xad, 0x0b, 0x77, 0x8e, 0x86, 0xcc, 0x84, 0xd8, 0xbd, 0x1e, 0x05, 0x89, + 0xc0, 0xf5, 0x28, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, 0x21, 0x41, 0xc7, 0x4a, 0xf0, 0x21, 0x01, + 0x4d, 0x77, 0x0e, 0xdc, 0x0c, 0x33, 0x6b, 0x86, 0x66, 0x4f, 0xd1, 0x67, 0xee, 0x10, 0xdd, 0x18, + 0xc4, 0xe2, 0x27, 0x7c, 0xc7, 0x2c, 0x8f, 0xe5, 0xb2, 0x15, 0x38, 0x46, 0xd3, 0xcc, 0x90, 0x13, + 0x3e, 0x87, 0x55, 0x0e, 0xff, 0x74, 0x14, 0xbd, 0x87, 0x79, 0xfc, 0xa2, 0x94, 0x7e, 0x1f, 0xf5, + 0xdb, 0x6a, 0x49, 0xe2, 0xfe, 0x57, 0x58, 0xc3, 0x5e, 0xc9, 0xd0, 0x22, 0x7b, 0x3d, 0x4c, 0x15, + 0xc0, 0x4f, 0xda, 0x4c, 0xf9, 0x21, 0x47, 0x5c, 0xc9, 0x08, 0xf1, 0x76, 0x3f, 0xe4, 0x97, 0xab, + 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, 0xfd, 0x10, 0x82, 0xd9, 0xd1, 0xe9, 0x56, 0xef, 0x65, + 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x46, 0xa7, 0x57, 0x56, 0x03, 0x11, 0xa3, 0x93, 0x84, 0x61, 0x46, + 0xa2, 0xc1, 0x66, 0x6c, 0x62, 0x73, 0xb9, 0x31, 0xe4, 0x8e, 0xcc, 0x7b, 0xfd, 0x20, 0x8c, 0x57, + 0x2d, 0x56, 0x5b, 0x9f, 0x07, 0x21, 0x0b, 0x60, 0xfb, 0xb3, 0x31, 0x88, 0x55, 0x0e, 0xff, 0x38, + 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x59, 0x2c, 0x96, 0x15, 0x4b, 0xc7, 0x5b, 0x3d, 0xe5, 0xd6, 0xa0, + 0x71, 0xfd, 0x68, 0xb8, 0x42, 0x27, 0x47, 0xd7, 0x5c, 0x1b, 0x56, 0xa6, 0x0c, 0x8f, 0x43, 0x26, + 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0x9d, 0x6d, 0xb6, 0x1b, 0x5d, 0xd3, 0xab, 0x38, 0xcb, 0xe5, + 0xc3, 0xda, 0x0f, 0x43, 0x46, 0x3d, 0x34, 0xb8, 0xcd, 0x26, 0x55, 0x3a, 0x33, 0xb3, 0x1c, 0xe3, + 0xce, 0xf6, 0xec, 0x21, 0x3d, 0x13, 0x20, 0xbb, 0xb3, 0xcd, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, + 0xd7, 0xfc, 0xd9, 0x0d, 0x72, 0xcc, 0xab, 0x52, 0x45, 0x22, 0x7d, 0x73, 0x20, 0xad, 0xbc, 0xfe, + 0x51, 0xf4, 0x6e, 0xd7, 0xab, 0x5a, 0x88, 0xb6, 0x7a, 0x4d, 0x81, 0xb5, 0xe8, 0xd1, 0x70, 0x05, + 0xe5, 0xfe, 0x5f, 0xcc, 0xb9, 0x74, 0xeb, 0x3f, 0xe1, 0x8b, 0x05, 0x2b, 0x52, 0x96, 0x6a, 0x8d, + 0xba, 0xd9, 0x3f, 0x7d, 0x46, 0xdb, 0x35, 0x0a, 0x13, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, + 0xa6, 0x2a, 0xda, 0x7f, 0x8c, 0xa2, 0xfb, 0x68, 0xd1, 0x74, 0xe0, 0x7a, 0x45, 0xfc, 0x9d, 0x21, + 0x8e, 0x30, 0x4d, 0x53, 0xd4, 0xe9, 0xff, 0xc3, 0x82, 0x2a, 0xf2, 0xbf, 0x8e, 0xa2, 0xdb, 0x56, + 0xb1, 0x09, 0xef, 0x6d, 0x5e, 0x9c, 0xe7, 0x59, 0x22, 0xe4, 0x13, 0x59, 0xa5, 0x42, 0x37, 0x27, + 0xa5, 0xd1, 0xdf, 0x9c, 0x01, 0x4d, 0xbb, 0x79, 0xfd, 0x3c, 0xab, 0x05, 0xaf, 0x56, 0xb3, 0x0b, + 0xfe, 0x4a, 0xbf, 0x60, 0xe3, 0xcf, 0xcb, 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, + 0x2b, 0xfb, 0x22, 0x4e, 0x4d, 0xb8, 0x72, 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, + 0xfb, 0xd6, 0xd0, 0x3a, 0x5e, 0xd4, 0xee, 0x9b, 0x43, 0xf7, 0xfa, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, + 0x4e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, + 0x79, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, + 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, 0x6f, 0x85, 0x34, 0xd2, 0x26, 0xba, 0x8b, 0x24, 0xcb, + 0xe1, 0x7d, 0x63, 0xa9, 0x69, 0x84, 0xc4, 0xad, 0x90, 0x0e, 0x64, 0x53, 0xa0, 0x46, 0xd4, 0x44, + 0xa5, 0x2e, 0xff, 0xdd, 0xae, 0xa2, 0x23, 0x26, 0x52, 0x20, 0x04, 0xb3, 0xa7, 0x0c, 0x8d, 0xf0, + 0xb4, 0x94, 0xc6, 0x6f, 0x75, 0xb5, 0x5a, 0x09, 0x71, 0xca, 0xe0, 0x13, 0x76, 0xb7, 0xdc, 0xfc, + 0x7d, 0x87, 0xbf, 0x2a, 0xa4, 0xd1, 0xdb, 0x5d, 0x15, 0x2d, 0x23, 0x76, 0xcb, 0x90, 0x51, 0x86, + 0x7f, 0x14, 0xfd, 0xbc, 0x34, 0x5c, 0xf1, 0x72, 0x7c, 0x03, 0x51, 0xa8, 0x9c, 0xdb, 0xb9, 0x37, + 0x49, 0xb9, 0xbd, 0x44, 0x62, 0x62, 0xe3, 0xb4, 0x8e, 0xe7, 0x6c, 0x7c, 0x87, 0xe8, 0x71, 0x29, + 0x25, 0x2e, 0x91, 0x74, 0x29, 0x3f, 0x2a, 0x0e, 0x79, 0xaa, 0xac, 0x23, 0x35, 0x34, 0xc2, 0x50, + 0x54, 0xb8, 0x90, 0x4d, 0x5b, 0x0f, 0xe3, 0xab, 0x6c, 0x6e, 0x52, 0x8b, 0x76, 0x02, 0xab, 0x41, + 0xda, 0x6a, 0x99, 0x89, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x2b, 0x9f, 0xff, 0x30, 0x8a, 0x6e, 0x59, + 0x66, 0x57, 0x9f, 0xcb, 0xee, 0x15, 0xe7, 0xbc, 0x49, 0x72, 0xf7, 0xb3, 0xe2, 0xb2, 0x1e, 0x7f, + 0x42, 0x99, 0xc4, 0x79, 0x53, 0x94, 0x4f, 0xaf, 0xad, 0x67, 0xf7, 0x27, 0xfa, 0xd0, 0xd2, 0xde, + 0x5c, 0x68, 0x35, 0xc0, 0xfe, 0xc4, 0x9c, 0x6d, 0x42, 0x8e, 0xd8, 0x9f, 0x84, 0x78, 0xdb, 0xc5, + 0xc6, 0x79, 0xce, 0x0b, 0xd8, 0xc5, 0xd6, 0x42, 0x23, 0x24, 0xba, 0xb8, 0x03, 0xd9, 0xf9, 0x58, + 0x8b, 0xda, 0xf3, 0xb5, 0x69, 0x9e, 0x83, 0xf9, 0xd8, 0xa8, 0x1a, 0x80, 0x98, 0x8f, 0x51, 0x50, + 0xf9, 0x39, 0x8e, 0xbe, 0xd5, 0x34, 0xe9, 0x51, 0xc5, 0xae, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, + 0x62, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xa7, 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, + 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x6e, 0x0f, 0x65, 0x27, 0x75, 0x2d, 0x33, 0x53, 0xcc, 0x1a, + 0xae, 0xda, 0x99, 0x66, 0xd6, 0x7b, 0x39, 0xfb, 0x6c, 0x63, 0x37, 0xce, 0x73, 0x56, 0xad, 0xb4, + 0xec, 0x20, 0x2e, 0xb2, 0x73, 0x56, 0x0b, 0xf0, 0x6c, 0x43, 0x51, 0x13, 0x88, 0x11, 0xcf, 0x36, + 0x02, 0xb8, 0xdd, 0xb7, 0x01, 0xcf, 0x7b, 0x45, 0xca, 0x5e, 0x83, 0x7d, 0x1b, 0xb4, 0x23, 0x19, + 0x62, 0xdf, 0x46, 0xb1, 0xf6, 0x8c, 0xff, 0x69, 0xce, 0x93, 0x4b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, + 0x25, 0x70, 0x0d, 0xb8, 0x1d, 0x42, 0xec, 0x22, 0x20, 0x05, 0xc7, 0xac, 0xcc, 0xe3, 0x04, 0xde, + 0xb4, 0x6a, 0x75, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03, 0x8a, 0xab, 0x6e, 0x70, 0x61, 0xc5, 0x05, + 0x17, 0xb8, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1, 0xac, 0xcc, 0x33, 0x01, 0x86, 0x41, 0xab, + 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x80, 0x55, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, + 0x49, 0x4d, 0xd8, 0x6b, 0xe5, 0x6d, 0xdd, 0x79, 0xb9, 0x02, 0xd7, 0xca, 0x55, 0xb5, 0x78, 0xb9, + 0x22, 0xae, 0x95, 0x7b, 0x00, 0x28, 0xe2, 0x51, 0x5c, 0x0b, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, + 0x26, 0xec, 0x1a, 0xdd, 0x16, 0x71, 0x29, 0xc0, 0x1a, 0xad, 0x0a, 0xe0, 0xdc, 0x35, 0xb8, 0x49, + 0xca, 0xed, 0x4c, 0xd2, 0xf6, 0x0a, 0x13, 0xcf, 0x33, 0x96, 0xa7, 0x35, 0x98, 0x49, 0x54, 0xbb, + 0x6b, 0x29, 0x31, 0x93, 0x74, 0x29, 0x10, 0x4a, 0xea, 0x49, 0x08, 0x56, 0x3b, 0xf0, 0x10, 0xe4, + 0x76, 0x08, 0xb1, 0xf3, 0x93, 0x2e, 0xf4, 0x76, 0x5c, 0x55, 0x59, 0xb3, 0xf8, 0xaf, 0xe1, 0x05, + 0xd2, 0x72, 0x62, 0x7e, 0xc2, 0x38, 0x30, 0xbc, 0xf4, 0xc4, 0x8d, 0x15, 0x0c, 0x4e, 0xdd, 0x1f, + 0x04, 0x19, 0x9b, 0x71, 0x4a, 0x89, 0xf3, 0xb0, 0x1c, 0x6b, 0x4d, 0xe4, 0x59, 0xf9, 0x5a, 0x1f, + 0xe6, 0xbc, 0x73, 0x66, 0x5c, 0x1c, 0xf0, 0x2b, 0x76, 0xc2, 0x9f, 0xbd, 0xce, 0xea, 0x66, 0xbb, + 0xa5, 0x56, 0xee, 0x27, 0x84, 0x25, 0x0c, 0x26, 0xde, 0x39, 0xeb, 0x55, 0xb2, 0x09, 0x04, 0x28, + 0xcb, 0x21, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, + 0xe3, 0x5c, 0xbd, 0x98, 0x7f, 0xc2, 0x75, 0x2e, 0x47, 0x59, 0x83, 0x20, 0x71, 0x68, 0x11, 0x54, + 0xb0, 0xfb, 0x4b, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x84, 0x9d, 0xee, 0x30, 0xbb, 0x3f, 0x80, 0x44, + 0x5c, 0xd9, 0x1b, 0x1f, 0x94, 0xab, 0xee, 0x85, 0x8f, 0xfb, 0x03, 0x48, 0xe7, 0xf4, 0xcd, 0xad, + 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x57, 0x7c, 0x59, 0xa4, 0xdb, 0x3c, 0xe7, 0x15, 0x38, 0x7d, 0xf3, + 0x4a, 0x0d, 0x50, 0xe2, 0xf4, 0xad, 0x47, 0xc5, 0x66, 0x70, 0x6e, 0x29, 0xa6, 0x79, 0x36, 0x87, + 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x6a, 0x77, 0xdc, 0x22, 0x4b, + 0xe2, 0xbc, 0xf5, 0xb7, 0x45, 0x9b, 0xf1, 0xc0, 0xde, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x9e, 0x2c, + 0xab, 0x62, 0xaf, 0x10, 0x9c, 0xac, 0xa7, 0x06, 0x7a, 0xeb, 0xe9, 0x80, 0x60, 0x5a, 0x3d, 0x61, + 0xaf, 0x9b, 0xd2, 0x34, 0xff, 0x60, 0xd3, 0x6a, 0xf3, 0xf7, 0x89, 0x92, 0x87, 0xa6, 0x55, 0xc0, + 0x81, 0xca, 0x28, 0x27, 0x6d, 0xc0, 0x04, 0xb4, 0xfd, 0x30, 0xb9, 0xd7, 0x0f, 0xe2, 0x7e, 0x66, + 0x62, 0x95, 0xb3, 0x90, 0x1f, 0x09, 0x0c, 0xf1, 0xa3, 0x41, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x82, + 0x25, 0x97, 0x9d, 0x0b, 0x6c, 0x7e, 0x41, 0x5b, 0x84, 0x38, 0x6e, 0x21, 0x50, 0xbc, 0x8b, 0xf6, + 0x12, 0x5e, 0x84, 0xba, 0xa8, 0x91, 0x0f, 0xe9, 0x22, 0xc5, 0xd9, 0xcd, 0xaf, 0x91, 0xaa, 0xc8, + 0x6c, 0xbb, 0x69, 0x83, 0xb0, 0xe0, 0x42, 0xc4, 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, + 0x74, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd0, 0xb7, 0xfb, 0x29, 0x96, 0xae, 0x64, 0x1b, 0x23, 0x3d, + 0x56, 0xfc, 0x38, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0xce, 0xe2, 0xaa, 0xf5, + 0xba, 0x19, 0x30, 0x64, 0x31, 0x62, 0xcb, 0x13, 0xc0, 0xc1, 0x14, 0xe6, 0x79, 0xde, 0xe6, 0x85, + 0x60, 0x85, 0xc0, 0xa6, 0x30, 0xdf, 0x98, 0x02, 0x43, 0x53, 0x18, 0xa5, 0x00, 0xe2, 0x56, 0x9e, + 0x07, 0x31, 0x71, 0x18, 0x2f, 0xd0, 0x8c, 0xad, 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0xb8, 0x05, 0x9c, + 0xf3, 0x38, 0xd7, 0xf5, 0x72, 0x12, 0x57, 0x73, 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd1, 0x76, 0x7c, + 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0xd3, 0xce, 0xde, 0x22, 0x9e, 0x9b, 0x9a, 0x22, 0x35, 0x90, + 0xf2, 0x4e, 0x55, 0xef, 0xf5, 0x83, 0xc0, 0xcf, 0x8b, 0x2c, 0x65, 0x3c, 0xe0, 0x47, 0xca, 0x87, + 0xf8, 0x81, 0x20, 0xc8, 0xde, 0x9a, 0x7a, 0xb7, 0x3b, 0xba, 0x69, 0x91, 0xaa, 0x7d, 0xec, 0x84, + 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, 0x63, 0x54, 0x1f, 0xd0, 0x86, 0xc6, 0xa8, 0x39, + 0x7f, 0x1d, 0x32, 0x46, 0x31, 0x58, 0xf9, 0xfc, 0x89, 0x1a, 0xa3, 0x3b, 0xb1, 0x88, 0x9b, 0xbc, + 0xfd, 0x45, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, 0x5f, 0x4d, 0x4d, 0xe4, 0xcb, 0xc9, 0x60, 0x57, + 0xbc, 0x35, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x35, 0x98, 0x0f, + 0xf8, 0x56, 0x5f, 0x3d, 0xe8, 0xf5, 0x0d, 0x3e, 0x7d, 0xb0, 0x35, 0x98, 0x57, 0xbe, 0xff, 0x4c, + 0x0f, 0x5c, 0xd7, 0x79, 0x93, 0x87, 0x25, 0x22, 0xbb, 0x62, 0x58, 0x3a, 0xe9, 0xdb, 0x33, 0x68, + 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0xef, 0x74, 0x61, 0xa5, 0x38, 0xe2, 0x75, 0x26, 0xaf, 0x63, 0x3c, + 0x19, 0x60, 0x54, 0xc3, 0xa1, 0x4d, 0x53, 0x48, 0xc9, 0x3e, 0x58, 0xf6, 0x50, 0x7b, 0x5f, 0xfd, + 0x61, 0xc0, 0x5e, 0xf7, 0xda, 0xfa, 0xe6, 0x40, 0xda, 0x3e, 0xe2, 0xf5, 0x18, 0xf7, 0xd9, 0x72, + 0xa8, 0x57, 0xd1, 0xc7, 0xcb, 0x8f, 0x86, 0x2b, 0x28, 0xf7, 0x7f, 0xa1, 0xf7, 0x15, 0xd0, 0xbf, + 0x1a, 0x04, 0x8f, 0x87, 0x58, 0x04, 0x03, 0xe1, 0xc9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x46, 0x6f, + 0xa0, 0x35, 0x2a, 0xdf, 0xda, 0x91, 0x6f, 0xfb, 0xaa, 0x31, 0x11, 0xea, 0x56, 0x0b, 0xc3, 0x91, + 0xf1, 0xf1, 0x35, 0xb5, 0x9c, 0xaf, 0xb6, 0x79, 0xb0, 0x7a, 0xbb, 0xd4, 0x29, 0x4f, 0xc8, 0xb2, + 0x43, 0xc3, 0x02, 0x7d, 0x72, 0x5d, 0x35, 0x6a, 0xac, 0x38, 0xb0, 0xfc, 0x0e, 0xcb, 0x93, 0x81, + 0x86, 0xbd, 0x2f, 0xb3, 0x7c, 0x74, 0x3d, 0x25, 0x55, 0x96, 0x7f, 0x1f, 0x45, 0x77, 0x3d, 0xd6, + 0x3e, 0x4f, 0x00, 0xa7, 0x1e, 0x3f, 0x08, 0xd8, 0xa7, 0x94, 0x4c, 0xe1, 0x7e, 0xeb, 0x9b, 0x29, + 0xdb, 0x4f, 0x9c, 0x79, 0x2a, 0xcf, 0xb3, 0x5c, 0xb0, 0xaa, 0xfb, 0x89, 0x33, 0xdf, 0x6e, 0x4b, + 0x4d, 0xe8, 0x4f, 0x9c, 0x05, 0x70, 0xe7, 0x13, 0x67, 0x88, 0x67, 0xf4, 0x13, 0x67, 0xa8, 0xb5, + 0xe0, 0x27, 0xce, 0xc2, 0x1a, 0xd4, 0xf4, 0xae, 0x8b, 0xd0, 0x9e, 0x5b, 0x0f, 0xb2, 0xe8, 0x1f, + 0x63, 0x3f, 0xbe, 0x8e, 0x0a, 0xb1, 0xc0, 0xb5, 0x9c, 0xbc, 0xd1, 0x38, 0xa0, 0x4d, 0xbd, 0x5b, + 0x8d, 0x5b, 0x83, 0x79, 0xe5, 0xfb, 0xc7, 0x6a, 0x77, 0x63, 0xa6, 0x73, 0x5e, 0xc9, 0xcf, 0xdb, + 0x6d, 0x84, 0xa6, 0xe7, 0xc6, 0x82, 0xdb, 0xf3, 0x0f, 0x87, 0xc1, 0x44, 0x75, 0x1b, 0x42, 0x75, + 0xfa, 0xa4, 0xcf, 0x10, 0xe8, 0xf2, 0xad, 0xc1, 0x3c, 0xb1, 0x8c, 0xb4, 0xbe, 0xdb, 0xde, 0x1e, + 0x60, 0xcc, 0xef, 0xeb, 0x47, 0xc3, 0x15, 0x94, 0xfb, 0x2b, 0x95, 0x36, 0xba, 0xee, 0x65, 0x3f, + 0x6f, 0xf6, 0x99, 0x9a, 0x79, 0xdd, 0x3c, 0x19, 0x8a, 0x87, 0x12, 0x08, 0x77, 0x09, 0xed, 0x4b, + 0x20, 0xd0, 0x65, 0xf4, 0xa3, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xfd, 0x28, 0xba, 0x49, 0x96, 0x45, + 0xc5, 0xc1, 0x27, 0x43, 0x2d, 0x83, 0x78, 0xf8, 0xf4, 0xda, 0x7a, 0xaa, 0x50, 0xff, 0x34, 0x8a, + 0x6e, 0x05, 0x0a, 0xd5, 0x06, 0xc8, 0x35, 0xac, 0xfb, 0x81, 0xf2, 0xd9, 0xf5, 0x15, 0xa9, 0xe5, + 0xde, 0xc5, 0x67, 0xdd, 0xcf, 0x6f, 0x05, 0x6c, 0xcf, 0xe8, 0xcf, 0x6f, 0xf5, 0x6b, 0xc1, 0x43, + 0x9e, 0xf8, 0x4c, 0x6f, 0xba, 0xd0, 0x43, 0x1e, 0x79, 0x17, 0x31, 0xf8, 0x19, 0x11, 0x8c, 0xc3, + 0x9c, 0x3c, 0x7b, 0x5d, 0xc6, 0x45, 0x4a, 0x3b, 0x69, 0xe5, 0xfd, 0x4e, 0x0c, 0x07, 0x0f, 0xc7, + 0x1a, 0xe9, 0x31, 0xd7, 0x1b, 0xa9, 0xfb, 0x94, 0xbe, 0x41, 0x82, 0x87, 0x63, 0x1d, 0x94, 0xf0, + 0xa6, 0xb2, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0x18, 0x82, 0x82, 0x14, 0xdd, 0x78, 0x33, 0x67, + 0xee, 0x0f, 0x43, 0x56, 0x3a, 0xe7, 0xee, 0x9b, 0x03, 0x69, 0xc2, 0xed, 0x8c, 0x89, 0xcf, 0x59, + 0x9c, 0xb2, 0x2a, 0xe8, 0xd6, 0x50, 0x83, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x9b, 0xe7, 0xcb, 0x45, + 0xa1, 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xfd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, + 0x3e, 0x08, 0x9b, 0xf1, 0xb2, 0xca, 0x8d, 0x41, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x3d, 0xf5, 0x04, + 0x91, 0xb4, 0x39, 0x90, 0x86, 0xe7, 0x73, 0x8e, 0x5b, 0x13, 0x4f, 0x5b, 0x3d, 0xb6, 0x3a, 0x21, + 0xf5, 0x68, 0xb8, 0x02, 0x3c, 0x0d, 0x55, 0x51, 0xb5, 0x9f, 0xd5, 0xe2, 0x79, 0x96, 0xe7, 0xe3, + 0x8d, 0x40, 0x98, 0x68, 0x28, 0x78, 0x1a, 0x8a, 0xc0, 0x44, 0x24, 0xeb, 0xd3, 0xc3, 0x62, 0xdc, + 0x67, 0x47, 0x52, 0x83, 0x22, 0xd9, 0xa5, 0xc1, 0x89, 0x96, 0xd3, 0xd4, 0xa6, 0xb6, 0x93, 0x70, + 0xc3, 0x75, 0x2a, 0xbc, 0x35, 0x98, 0x07, 0x8f, 0xdb, 0x25, 0x25, 0x57, 0x96, 0x3b, 0x94, 0x09, + 0x6f, 0x25, 0xb9, 0xdb, 0x43, 0x81, 0x53, 0xc1, 0x76, 0x18, 0xbd, 0xcc, 0xd2, 0x39, 0x13, 0xe8, + 0x93, 0x22, 0x17, 0x08, 0x3e, 0x29, 0x02, 0x20, 0xe8, 0xba, 0xf6, 0xef, 0xe6, 0x38, 0x74, 0x2f, + 0xc5, 0xba, 0x4e, 0x29, 0x3b, 0x54, 0xa8, 0xeb, 0x50, 0x1a, 0xcc, 0x06, 0xc6, 0xad, 0xfa, 0xf0, + 0xc2, 0x83, 0x90, 0x19, 0xf0, 0xf5, 0x85, 0x8d, 0x41, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x6c, 0x91, + 0x09, 0x6c, 0x45, 0x71, 0x6c, 0x34, 0x48, 0x68, 0x45, 0xe9, 0xa2, 0x54, 0xf5, 0x9a, 0x1c, 0x61, + 0x2f, 0x0d, 0x57, 0xaf, 0x65, 0x86, 0x55, 0xcf, 0xb0, 0x9d, 0x07, 0x9b, 0x85, 0x09, 0x19, 0x71, + 0xa1, 0x36, 0xcb, 0x48, 0x6c, 0xcb, 0x17, 0x72, 0x21, 0x18, 0x9a, 0x75, 0x28, 0x05, 0x78, 0x60, + 0xdf, 0x70, 0xfa, 0xd9, 0x6b, 0x59, 0xb2, 0xb8, 0x8a, 0x8b, 0x04, 0xdd, 0x9c, 0x4a, 0x83, 0x1d, + 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x55, 0x5a, 0x64, 0x28, 0x98, 0x77, 0x56, + 0xfd, 0x37, 0x69, 0xef, 0x0f, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xd6, 0xe9, 0x87, + 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x20, 0xa8, 0x4d, 0x82, 0xcb, 0xc4, 0x8f, 0xd8, + 0x0a, 0x0b, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0x14, 0xd4, 0x5d, 0x14, 0xe4, 0x99, 0xee, 0x3e, 0x68, + 0x2d, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7b, 0x39, 0x30, 0x72, 0x76, 0xb2, 0x2b, 0xef, 0x39, 0x01, + 0x52, 0xd0, 0x9d, 0xec, 0x0a, 0x7f, 0x4c, 0xb0, 0x31, 0x88, 0x85, 0x8f, 0xe4, 0x63, 0xc1, 0x5e, + 0xeb, 0x67, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf3, 0xb0, 0xfc, 0x5e, 0x3f, 0x68, 0x2f, 0xc0, 0x1e, + 0x55, 0x3c, 0x61, 0x75, 0xad, 0xbe, 0x49, 0xea, 0xdf, 0x30, 0x52, 0xb2, 0x09, 0xf8, 0x22, 0xe9, + 0x9d, 0x30, 0xe4, 0x7c, 0x48, 0xb0, 0x15, 0xd9, 0xef, 0x1b, 0xad, 0xa1, 0x9a, 0xdd, 0x4f, 0x1b, + 0xad, 0xf7, 0x72, 0x76, 0x78, 0x29, 0xa9, 0xfb, 0x41, 0xa3, 0x7b, 0xa8, 0x3a, 0xf6, 0x2d, 0xa3, + 0xfb, 0x03, 0x48, 0xe5, 0xea, 0xf3, 0xe8, 0xcd, 0x7d, 0x3e, 0x9f, 0xb1, 0x22, 0x1d, 0x7f, 0xcf, + 0xbf, 0x42, 0xcb, 0xe7, 0x93, 0xe6, 0xcf, 0xc6, 0xe8, 0x0d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb0, + 0xb3, 0xe5, 0x7c, 0x26, 0x62, 0x01, 0x2e, 0x01, 0xca, 0xbf, 0x4f, 0x1a, 0x01, 0x71, 0x09, 0xd0, + 0x03, 0x80, 0xbd, 0x93, 0x8a, 0x31, 0xd4, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0xcd, 0x22, 0x8c, + 0xbd, 0x26, 0x51, 0x87, 0x97, 0xf6, 0xac, 0x8e, 0x94, 0x12, 0x59, 0x44, 0x97, 0xb2, 0xc1, 0xdd, + 0x56, 0x5f, 0x7e, 0x5f, 0x66, 0xb9, 0x58, 0xc4, 0xd5, 0x0a, 0x04, 0xb7, 0xaa, 0xa5, 0x03, 0x10, + 0xc1, 0x8d, 0x82, 0x76, 0xd4, 0xea, 0x66, 0x4e, 0x2e, 0x77, 0x79, 0xc5, 0x97, 0x22, 0x2b, 0x18, + 0xfc, 0xc6, 0x88, 0x69, 0x50, 0x97, 0x21, 0x46, 0x2d, 0xc5, 0xda, 0x2c, 0x57, 0x12, 0xed, 0x7d, + 0x42, 0xf9, 0x99, 0xf4, 0x5a, 0xf0, 0x0a, 0x3e, 0x4f, 0x6c, 0xad, 0x40, 0x88, 0xc8, 0x72, 0x49, + 0x18, 0xf4, 0xfd, 0x51, 0x56, 0xcc, 0xd1, 0xbe, 0x3f, 0x72, 0xbf, 0xf3, 0x7b, 0x8b, 0x06, 0xec, + 0x80, 0x6a, 0x1b, 0xad, 0x1d, 0x00, 0xea, 0xad, 0x5d, 0xb4, 0xd1, 0x5d, 0x82, 0x18, 0x50, 0x38, + 0x09, 0x5c, 0x7d, 0x51, 0xb2, 0x82, 0xa5, 0xfa, 0xd6, 0x1c, 0xe6, 0xca, 0x23, 0x82, 0xae, 0x20, + 0x69, 0xe7, 0x22, 0x29, 0x3f, 0x5e, 0x16, 0x47, 0x15, 0x3f, 0xcf, 0x72, 0x56, 0x81, 0xb9, 0xa8, + 0x55, 0x77, 0xe4, 0xc4, 0x5c, 0x84, 0x71, 0xf6, 0xfa, 0x85, 0x94, 0x7a, 0xdf, 0xfa, 0x3f, 0xa9, + 0xe2, 0x04, 0x5e, 0xbf, 0x68, 0x6d, 0x74, 0x31, 0xe2, 0x64, 0x30, 0x80, 0x3b, 0x89, 0x4e, 0xeb, + 0xba, 0x58, 0xc9, 0xf8, 0x50, 0x6f, 0x8d, 0xca, 0xaf, 0xdf, 0xd6, 0x20, 0xd1, 0x51, 0xe6, 0x30, + 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, 0xa1, 0xba, 0x56, 0x04, 0x96, 0x92, 0xd6, + 0x86, 0x16, 0x12, 0x4b, 0x49, 0x07, 0x02, 0x13, 0x92, 0x1e, 0x06, 0x73, 0x74, 0x42, 0x32, 0xd2, + 0xe0, 0x84, 0xe4, 0x52, 0x76, 0xa2, 0xd8, 0x2b, 0x32, 0x91, 0xc5, 0xf9, 0x8c, 0x89, 0xa3, 0xb8, + 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x4e, 0x14, 0x0a, 0x99, 0x78, 0x0c, 0x31, 0x51, 0x50, 0xac, 0x72, + 0xf8, 0xdb, 0xd1, 0xdb, 0xcd, 0xba, 0xcf, 0x0a, 0xf5, 0xab, 0x3e, 0xcf, 0xe4, 0xcf, 0x81, 0x8d, + 0xdf, 0x31, 0x36, 0x66, 0xa2, 0x62, 0xf1, 0x42, 0xdb, 0x7e, 0xcb, 0xfc, 0x5d, 0x82, 0x8f, 0x46, + 0x4d, 0x3c, 0x1f, 0x72, 0x91, 0x9d, 0x37, 0xdb, 0x6c, 0xf5, 0x06, 0x11, 0x88, 0x67, 0x57, 0x3c, + 0x09, 0x7c, 0x75, 0x04, 0xe3, 0xec, 0x3c, 0xed, 0x4a, 0x8f, 0x59, 0x99, 0xc3, 0x79, 0xda, 0xd3, + 0x96, 0x00, 0x31, 0x4f, 0xa3, 0xa0, 0x1d, 0x9c, 0xae, 0xf8, 0x84, 0x85, 0x2b, 0x73, 0xc2, 0x86, + 0x55, 0xe6, 0xc4, 0x7b, 0x29, 0x23, 0x8f, 0xde, 0x3e, 0x60, 0x8b, 0x33, 0x56, 0xd5, 0x17, 0x59, + 0x49, 0x7d, 0xa1, 0xd7, 0x12, 0xbd, 0x5f, 0xe8, 0x25, 0x50, 0xbb, 0x12, 0x58, 0x60, 0xaf, 0x3e, + 0x8c, 0x17, 0x4c, 0x7e, 0x43, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, 0x22, 0x56, 0x02, 0x12, 0x76, + 0xde, 0xef, 0xb2, 0xcc, 0x31, 0x9b, 0x37, 0x11, 0x56, 0x1d, 0xc5, 0xab, 0x05, 0x2b, 0x84, 0x32, + 0x09, 0xce, 0xe4, 0x1d, 0x93, 0x38, 0x4f, 0x9c, 0xc9, 0x0f, 0xd1, 0x73, 0xa6, 0x26, 0xaf, 0xe1, + 0x8f, 0x78, 0x25, 0xda, 0xdf, 0xec, 0x3a, 0xad, 0x72, 0x30, 0x35, 0xf9, 0x8d, 0xea, 0x91, 0xc4, + 0xd4, 0x14, 0xd6, 0x70, 0x7e, 0x6f, 0xc2, 0x2b, 0xc3, 0x0b, 0x56, 0x99, 0x38, 0x79, 0xb6, 0x88, + 0xb3, 0x5c, 0x45, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xf7, 0x26, 0x86, 0xea, 0x3a, 0xbf, + 0xd0, 0x11, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x63, 0x9f, 0x78, 0x44, 0xd0, 0xaf, 0x65, 0x77, 0xee, + 0x96, 0x95, 0xdc, 0x4a, 0x12, 0xdb, 0x3c, 0x85, 0xe7, 0x85, 0x8e, 0x4d, 0x00, 0x12, 0x3b, 0xf7, + 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xf6, 0x3c, 0x2b, 0xe2, 0x3c, 0xfb, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, + 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x32, 0x71, 0x92, 0x35, 0x53, 0xff, 0xbd, 0x40, + 0xbb, 0x49, 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0x3a, 0x2d, 0xcb, 0x59, 0xb3, + 0xaa, 0x1e, 0xb3, 0x84, 0x65, 0xa5, 0x18, 0x7f, 0x1c, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x06, + 0xa8, 0x39, 0x8f, 0xef, 0x9b, 0xb9, 0x64, 0xd6, 0xfe, 0x98, 0xe5, 0x69, 0xcd, 0x2a, 0x95, 0x68, + 0xec, 0x32, 0x01, 0x46, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3a, 0xc3, 0x1a, 0xf6, + 0xb0, 0xcf, 0xe1, 0xd4, 0xd7, 0xd5, 0xe5, 0x7d, 0xc3, 0x87, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, + 0x68, 0xda, 0x66, 0x6b, 0x5d, 0xb7, 0xd3, 0x62, 0xb5, 0x07, 0xaf, 0x4c, 0x20, 0x96, 0x24, 0x46, + 0x64, 0x6b, 0x01, 0xdc, 0x39, 0x0c, 0xaf, 0x78, 0x9c, 0x26, 0x71, 0x2d, 0x8e, 0xe2, 0x55, 0xce, + 0xe3, 0x54, 0xae, 0xeb, 0xf0, 0x30, 0x5c, 0x33, 0x13, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, + 0xce, 0xe4, 0x6f, 0x74, 0xaa, 0xbb, 0x9c, 0x30, 0x3b, 0x93, 0xe5, 0x85, 0xf7, 0x38, 0xef, 0x84, + 0x21, 0xfb, 0x0e, 0x5a, 0x2b, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40, 0xde, 0x0f, 0x10, + 0xf6, 0x0b, 0x24, 0xed, 0xdf, 0xf5, 0xcf, 0x4c, 0x09, 0xf5, 0xcd, 0xf2, 0x87, 0x98, 0xae, 0x0b, + 0x4d, 0xdc, 0x0f, 0x59, 0x6c, 0x0e, 0xa4, 0x6d, 0x9a, 0xb9, 0x7d, 0x11, 0x8b, 0x69, 0x9a, 0x1e, + 0xb0, 0x1a, 0x79, 0xa1, 0xbc, 0x11, 0x4e, 0xac, 0x94, 0x48, 0x33, 0xbb, 0x94, 0x0d, 0xf4, 0x46, + 0xf6, 0x2c, 0xcd, 0x84, 0x92, 0xe9, 0x1b, 0xd2, 0x0f, 0xbb, 0x06, 0xba, 0x14, 0x51, 0x2b, 0x9a, + 0xb6, 0x73, 0x79, 0xc3, 0x9c, 0xf0, 0xf9, 0x3c, 0x67, 0x0a, 0x3a, 0x66, 0x71, 0xfb, 0xc9, 0xc6, + 0xad, 0xae, 0x2d, 0x14, 0x24, 0xe6, 0xf2, 0xa0, 0x82, 0x4d, 0x23, 0x1b, 0xac, 0x7d, 0x24, 0xa5, + 0x1b, 0x76, 0xbd, 0x6b, 0xc6, 0x03, 0x88, 0x34, 0x12, 0x05, 0xed, 0x7b, 0x6f, 0x8d, 0x78, 0x97, + 0xe9, 0x96, 0x80, 0x1f, 0x9b, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, + 0x78, 0x78, 0xba, 0xda, 0x4b, 0xe1, 0x3e, 0x01, 0xea, 0x4b, 0x86, 0xd8, 0x27, 0x50, 0xac, 0xdf, + 0x75, 0xe6, 0xdc, 0x6b, 0x3f, 0xae, 0x6d, 0xe5, 0x90, 0xae, 0x43, 0xc1, 0x50, 0xd7, 0x51, 0x0a, + 0x7e, 0x93, 0xba, 0x47, 0x6b, 0x48, 0x93, 0x62, 0xe7, 0x6a, 0x6b, 0x7d, 0x98, 0x9d, 0x97, 0xcc, + 0x7e, 0x52, 0x5e, 0x59, 0xc2, 0x7f, 0xab, 0xa1, 0x15, 0x12, 0xf3, 0x52, 0x07, 0x6a, 0x6d, 0x3f, + 0x7d, 0xff, 0x3f, 0xbf, 0xba, 0x31, 0xfa, 0xd9, 0x57, 0x37, 0x46, 0xff, 0xf3, 0xd5, 0x8d, 0xd1, + 0x4f, 0xbf, 0xbe, 0xf1, 0xc6, 0xcf, 0xbe, 0xbe, 0xf1, 0xc6, 0x7f, 0x7f, 0x7d, 0xe3, 0x8d, 0x2f, + 0xdf, 0x54, 0xbf, 0xdd, 0x7c, 0xf6, 0x73, 0xf2, 0x17, 0x98, 0x9f, 0xfc, 0x5f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x95, 0x51, 0xdf, 0xf9, 0xdf, 0x79, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -413,8 +411,6 @@ type ClientCommandsClient interface { // Account // *** AccountRecover(ctx context.Context, in *pb.RpcAccountRecoverRequest, opts ...grpc.CallOption) (*pb.RpcAccountRecoverResponse, error) - AccountMigrate(ctx context.Context, in *pb.RpcAccountMigrateRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateResponse, error) - AccountMigrateCancel(ctx context.Context, in *pb.RpcAccountMigrateCancelRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateCancelResponse, error) AccountCreate(ctx context.Context, in *pb.RpcAccountCreateRequest, opts ...grpc.CallOption) (*pb.RpcAccountCreateResponse, error) AccountDelete(ctx context.Context, in *pb.RpcAccountDeleteRequest, opts ...grpc.CallOption) (*pb.RpcAccountDeleteResponse, error) AccountRevertDeletion(ctx context.Context, in *pb.RpcAccountRevertDeletionRequest, opts ...grpc.CallOption) (*pb.RpcAccountRevertDeletionResponse, error) @@ -929,24 +925,6 @@ func (c *clientCommandsClient) AccountRecover(ctx context.Context, in *pb.RpcAcc return out, nil } -func (c *clientCommandsClient) AccountMigrate(ctx context.Context, in *pb.RpcAccountMigrateRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateResponse, error) { - out := new(pb.RpcAccountMigrateResponse) - err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountMigrate", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *clientCommandsClient) AccountMigrateCancel(ctx context.Context, in *pb.RpcAccountMigrateCancelRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateCancelResponse, error) { - out := new(pb.RpcAccountMigrateCancelResponse) - err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountMigrateCancel", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *clientCommandsClient) AccountCreate(ctx context.Context, in *pb.RpcAccountCreateRequest, opts ...grpc.CallOption) (*pb.RpcAccountCreateResponse, error) { out := new(pb.RpcAccountCreateResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountCreate", in, out, opts...) @@ -3321,8 +3299,6 @@ type ClientCommandsServer interface { // Account // *** AccountRecover(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse - AccountMigrate(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse - AccountMigrateCancel(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse AccountCreate(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse AccountDelete(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse AccountRevertDeletion(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse @@ -3707,12 +3683,6 @@ func (*UnimplementedClientCommandsServer) WorkspaceExport(ctx context.Context, r func (*UnimplementedClientCommandsServer) AccountRecover(ctx context.Context, req *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse { return nil } -func (*UnimplementedClientCommandsServer) AccountMigrate(ctx context.Context, req *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { - return nil -} -func (*UnimplementedClientCommandsServer) AccountMigrateCancel(ctx context.Context, req *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { - return nil -} func (*UnimplementedClientCommandsServer) AccountCreate(ctx context.Context, req *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse { return nil } @@ -4870,42 +4840,6 @@ func _ClientCommands_AccountRecover_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } -func _ClientCommands_AccountMigrate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(pb.RpcAccountMigrateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ClientCommandsServer).AccountMigrate(ctx, in), nil - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/anytype.ClientCommands/AccountMigrate", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ClientCommandsServer).AccountMigrate(ctx, req.(*pb.RpcAccountMigrateRequest)), nil - } - return interceptor(ctx, in, info, handler) -} - -func _ClientCommands_AccountMigrateCancel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(pb.RpcAccountMigrateCancelRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ClientCommandsServer).AccountMigrateCancel(ctx, in), nil - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/anytype.ClientCommands/AccountMigrateCancel", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ClientCommandsServer).AccountMigrateCancel(ctx, req.(*pb.RpcAccountMigrateCancelRequest)), nil - } - return interceptor(ctx, in, info, handler) -} - func _ClientCommands_AccountCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcAccountCreateRequest) if err := dec(in); err != nil { @@ -9642,14 +9576,6 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "AccountRecover", Handler: _ClientCommands_AccountRecover_Handler, }, - { - MethodName: "AccountMigrate", - Handler: _ClientCommands_AccountMigrate_Handler, - }, - { - MethodName: "AccountMigrateCancel", - Handler: _ClientCommands_AccountMigrateCancel_Handler, - }, { MethodName: "AccountCreate", Handler: _ClientCommands_AccountCreate_Handler, diff --git a/pkg/lib/datastore/clientds/clientds.go b/pkg/lib/datastore/clientds/clientds.go index fc7e492d5..43dce966a 100644 --- a/pkg/lib/datastore/clientds/clientds.go +++ b/pkg/lib/datastore/clientds/clientds.go @@ -170,13 +170,10 @@ func (r *clientds) Init(a *app.App) (err error) { r.localstoreDS, err = openBadgerWithRecover(opts) err = anyerror.CleanupError(err) if err != nil && isBadgerCorrupted(err) { - log.With("error", err).Error("badger db is corrupted") // because localstore contains mostly recoverable info (with th only exception of objects' lastOpenedDate) // we can just remove and recreate it - err2 := os.Rename(opts.Dir, opts.Dir+"-corrupted") - if err2 != nil { - log.Errorf("failed to rename corrupted localstore: %s", err2) - } + err2 := os.Rename(opts.Dir, filepath.Join(opts.Dir, "-corrupted")) + log.Errorf("failed to rename corrupted localstore: %s", err2) var errAfterRemove error r.localstoreDS, errAfterRemove = openBadgerWithRecover(opts) errAfterRemove = anyerror.CleanupError(errAfterRemove) diff --git a/pkg/lib/localstore/objectstore/fixture.go b/pkg/lib/localstore/objectstore/fixture.go index c7ada1739..f8dee2952 100644 --- a/pkg/lib/localstore/objectstore/fixture.go +++ b/pkg/lib/localstore/objectstore/fixture.go @@ -75,14 +75,16 @@ func (w *walletStub) Name() string { return wallet.CName } func NewStoreFixture(t testing.TB) *StoreFixture { ctx, cancel := context.WithCancel(context.Background()) + walletService := newWalletStub(t) + fullText := ftsearch.TantivyNew() testApp := &app.App{} dataStore, err := datastore.NewInMemory() require.NoError(t, err) - testApp.Register(newWalletStub(t)) testApp.Register(dataStore) + testApp.Register(walletService) err = fullText.Init(testApp) require.NoError(t, err) err = fullText.Run(context.Background()) @@ -98,7 +100,7 @@ func NewStoreFixture(t testing.TB) *StoreFixture { fts: fullText, sourceService: &detailsFromId{}, arenaPool: &anyenc.ArenaPool{}, - objectStorePath: t.TempDir(), + repoPath: walletService.RepoPath(), oldStore: oldStore, spaceIndexes: map[string]spaceindex.Store{}, techSpaceIdProvider: &stubTechSpaceIdProvider{}, diff --git a/pkg/lib/localstore/objectstore/service.go b/pkg/lib/localstore/objectstore/service.go index 5ca705227..d8f9b0bda 100644 --- a/pkg/lib/localstore/objectstore/service.go +++ b/pkg/lib/localstore/objectstore/service.go @@ -20,7 +20,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/anystorehelper" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/oldstore" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceindex" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceresolverstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" ) @@ -53,7 +52,6 @@ type ObjectStore interface { GetCrdtDb(spaceId string) anystore.DB SpaceNameGetter - spaceresolverstore.Store CrossSpace } @@ -88,11 +86,9 @@ type TechSpaceIdProvider interface { } type dsObjectStore struct { - spaceresolverstore.Store - - objectStorePath string - techSpaceId string - anyStoreConfig anystore.Config + repoPath string + techSpaceId string + anyStoreConfig anystore.Config anyStore anystore.DB anyStoreLockRemove func() error @@ -149,9 +145,6 @@ func New() ObjectStore { func (s *dsObjectStore) Init(a *app.App) (err error) { s.sourceService = app.MustComponent[spaceindex.SourceDetailsFromID](a) - - repoPath := app.MustComponent[wallet.Wallet](a).RepoPath() - fts := a.Component(ftsearch.CName) if fts == nil { log.Warnf("init objectstore without fulltext") @@ -159,10 +152,8 @@ func (s *dsObjectStore) Init(a *app.App) (err error) { s.fts = fts.(ftsearch.FTSearch) } s.arenaPool = &anyenc.ArenaPool{} - - cfg := app.MustComponent[configProvider](a) - s.objectStorePath = filepath.Join(repoPath, "objectstore") - s.anyStoreConfig = *cfg.GetAnyStoreConfig() + s.repoPath = app.MustComponent[wallet.Wallet](a).RepoPath() + s.anyStoreConfig = *app.MustComponent[configProvider](a).GetAnyStoreConfig() s.setDefaultConfig() s.oldStore = app.MustComponent[oldstore.Service](a) s.techSpaceIdProvider = app.MustComponent[TechSpaceIdProvider](a) @@ -177,23 +168,12 @@ func (s *dsObjectStore) Name() (name string) { func (s *dsObjectStore) Run(ctx context.Context) error { s.techSpaceId = s.techSpaceIdProvider.TechSpaceId() - err := ensureDirExists(s.objectStorePath) + dbDir := s.storeRootDir() + err := ensureDirExists(dbDir) if err != nil { return err } - err = s.openDatabase(ctx, filepath.Join(s.objectStorePath, "objects.db")) - if err != nil { - return fmt.Errorf("open db: %w", err) - } - - store, err := spaceresolverstore.New(s.componentCtx, s.anyStore) - if err != nil { - return fmt.Errorf("new space resolver store: %w", err) - } - - s.Store = store - - return err + return s.openDatabase(ctx, filepath.Join(dbDir, "objects.db")) } func (s *dsObjectStore) setDefaultConfig() { @@ -204,6 +184,10 @@ func (s *dsObjectStore) setDefaultConfig() { s.anyStoreConfig.SQLiteConnectionOptions["synchronous"] = "off" } +func (s *dsObjectStore) storeRootDir() string { + return filepath.Join(s.repoPath, "objectstore") +} + func ensureDirExists(dir string) error { _, err := os.Stat(dir) if errors.Is(err, os.ErrNotExist) { @@ -254,7 +238,7 @@ func (s *dsObjectStore) preloadExistingObjectStores() error { var err error s.spaceStoreDirsCheck.Do(func() { var entries []os.DirEntry - entries, err = os.ReadDir(s.objectStorePath) + entries, err = os.ReadDir(s.storeRootDir()) s.Lock() defer s.Unlock() for _, entry := range entries { @@ -316,7 +300,7 @@ func (s *dsObjectStore) SpaceIndex(spaceId string) spaceindex.Store { func (s *dsObjectStore) getOrInitSpaceIndex(spaceId string) spaceindex.Store { store, ok := s.spaceIndexes[spaceId] if !ok { - dir := filepath.Join(s.objectStorePath, spaceId) + dir := filepath.Join(s.storeRootDir(), spaceId) err := ensureDirExists(dir) if err != nil { return spaceindex.NewInvalidStore(err) @@ -350,7 +334,7 @@ func (s *dsObjectStore) GetCrdtDb(spaceId string) anystore.DB { db, ok := s.crdtDbs[spaceId] if !ok { - dir := filepath.Join(s.objectStorePath, spaceId) + dir := filepath.Join(s.storeRootDir(), spaceId) err := ensureDirExists(dir) if err != nil { return nil diff --git a/pkg/lib/localstore/objectstore/spaceresolverstore/store.go b/pkg/lib/localstore/objectstore/spaceresolverstore/store.go deleted file mode 100644 index 568c10b03..000000000 --- a/pkg/lib/localstore/objectstore/spaceresolverstore/store.go +++ /dev/null @@ -1,71 +0,0 @@ -package spaceresolverstore - -import ( - "context" - "errors" - "fmt" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-store/anyenc" - "github.com/anyproto/any-store/query" - - "github.com/anyproto/anytype-heart/core/domain" -) - -const bindKey = "b" - -type Store interface { - BindSpaceId(spaceId, objectId string) error - GetSpaceId(objectId string) (spaceId string, err error) -} - -type dsObjectStore struct { - componentCtx context.Context - collection anystore.Collection - arenaPool *anyenc.ArenaPool -} - -func New(componentCtx context.Context, db anystore.DB) (Store, error) { - collection, err := db.Collection(componentCtx, "bindId") - if err != nil { - return nil, fmt.Errorf("open bindId collection: %w", err) - } - return &dsObjectStore{ - componentCtx: componentCtx, - arenaPool: &anyenc.ArenaPool{}, - collection: collection, - }, nil -} - -func (d *dsObjectStore) BindSpaceId(spaceId, objectId string) error { - return d.modifyBind(d.componentCtx, objectId, spaceId) -} - -func (d *dsObjectStore) GetSpaceId(objectId string) (spaceId string, err error) { - doc, err := d.collection.FindId(d.componentCtx, objectId) - if err != nil { - if errors.Is(err, anystore.ErrDocNotFound) { - return "", domain.ErrObjectNotFound - } - return "", err - } - return doc.Value().GetString(bindKey), nil -} - -func (d *dsObjectStore) modifyBind(ctx context.Context, objectId, spaceId string) error { - tx, err := d.collection.WriteTx(ctx) - if err != nil { - return err - } - arena := d.arenaPool.Get() - defer d.arenaPool.Put(arena) - mod := query.ModifyFunc(func(a *anyenc.Arena, v *anyenc.Value) (result *anyenc.Value, modified bool, err error) { - v.Set(bindKey, arena.NewString(spaceId)) - return v, true, nil - }) - _, err = d.collection.UpsertId(tx.Context(), objectId, mod) - if err != nil { - return errors.Join(err, tx.Rollback()) - } - return tx.Commit() -} diff --git a/space/clientspace/mock_clientspace/mock_Space.go b/space/clientspace/mock_clientspace/mock_Space.go index be661cf8d..d601e8001 100644 --- a/space/clientspace/mock_clientspace/mock_Space.go +++ b/space/clientspace/mock_clientspace/mock_Space.go @@ -3,12 +3,10 @@ package mock_clientspace import ( - anystorage "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage" + context "context" commonspace "github.com/anyproto/any-sync/commonspace" - context "context" - domain "github.com/anyproto/anytype-heart/core/domain" headsync "github.com/anyproto/any-sync/commonspace/headsync" @@ -23,6 +21,8 @@ import ( smartblock "github.com/anyproto/anytype-heart/core/block/editor/smartblock" + spacestorage "github.com/anyproto/any-sync/commonspace/spacestorage" + threads "github.com/anyproto/anytype-heart/pkg/lib/threads" treestorage "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" @@ -1511,19 +1511,19 @@ func (_c *MockSpace_Remove_Call) RunAndReturn(run func(context.Context, string) } // Storage provides a mock function with given fields: -func (_m *MockSpace) Storage() anystorage.ClientSpaceStorage { +func (_m *MockSpace) Storage() spacestorage.SpaceStorage { ret := _m.Called() if len(ret) == 0 { panic("no return value specified for Storage") } - var r0 anystorage.ClientSpaceStorage - if rf, ok := ret.Get(0).(func() anystorage.ClientSpaceStorage); ok { + var r0 spacestorage.SpaceStorage + if rf, ok := ret.Get(0).(func() spacestorage.SpaceStorage); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(anystorage.ClientSpaceStorage) + r0 = ret.Get(0).(spacestorage.SpaceStorage) } } @@ -1547,12 +1547,12 @@ func (_c *MockSpace_Storage_Call) Run(run func()) *MockSpace_Storage_Call { return _c } -func (_c *MockSpace_Storage_Call) Return(_a0 anystorage.ClientSpaceStorage) *MockSpace_Storage_Call { +func (_c *MockSpace_Storage_Call) Return(_a0 spacestorage.SpaceStorage) *MockSpace_Storage_Call { _c.Call.Return(_a0) return _c } -func (_c *MockSpace_Storage_Call) RunAndReturn(run func() anystorage.ClientSpaceStorage) *MockSpace_Storage_Call { +func (_c *MockSpace_Storage_Call) RunAndReturn(run func() spacestorage.SpaceStorage) *MockSpace_Storage_Call { _c.Call.Return(run) return _c } diff --git a/space/clientspace/space.go b/space/clientspace/space.go index c478d4b8f..be9fbd3be 100644 --- a/space/clientspace/space.go +++ b/space/clientspace/space.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/commonspace" "github.com/anyproto/any-sync/commonspace/headsync" "github.com/anyproto/any-sync/commonspace/objecttreebuilder" + "github.com/anyproto/any-sync/commonspace/spacestorage" "github.com/anyproto/any-sync/net/peer" "github.com/anyproto/any-sync/util/crypto" "go.uber.org/zap" @@ -28,7 +29,6 @@ import ( "github.com/anyproto/anytype-heart/space/spacecore" "github.com/anyproto/anytype-heart/space/spacecore/peermanager" "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage" ) type Space interface { @@ -40,7 +40,7 @@ type Space interface { DebugAllHeads() []headsync.TreeHeads DeleteTree(ctx context.Context, id string) (err error) StoredIds() []string - Storage() anystorage.ClientSpaceStorage + Storage() spacestorage.SpaceStorage DerivedIDs() threads.DerivedSmartblockIds @@ -124,16 +124,12 @@ func BuildSpace(ctx context.Context, deps SpaceDeps) (Space, error) { if err != nil { return nil, fmt.Errorf("derive object ids: %w", err) } - isSpaceCreated, err := sp.Storage().IsSpaceCreated(ctx) - if err != nil { - return nil, fmt.Errorf("is space created: %w", err) - } - if isSpaceCreated { + if deps.StorageService.IsSpaceCreated(deps.CommonSpace.Id()) { err = sp.ObjectProvider.CreateMandatoryObjects(ctx, sp) if err != nil { return nil, fmt.Errorf("create mandatory objects: %w", err) } - err = sp.Storage().UnmarkSpaceCreated(ctx) + err = deps.StorageService.UnmarkSpaceCreated(deps.CommonSpace.Id()) if err != nil { return nil, fmt.Errorf("unmark space created: %w", err) } @@ -211,8 +207,8 @@ func (s *space) StoredIds() []string { return s.common.StoredIds() } -func (s *space) Storage() anystorage.ClientSpaceStorage { - return s.common.Storage().(anystorage.ClientSpaceStorage) +func (s *space) Storage() spacestorage.SpaceStorage { + return s.common.Storage() } func (s *space) DerivedIDs() threads.DerivedSmartblockIds { @@ -309,7 +305,10 @@ func (s *space) TryLoadBundledObjects(ctx context.Context) (missingSourceIds []s if err != nil { return nil, err } - storedIds := s.StoredIds() + storedIds, err := s.Storage().StoredIds() + if err != nil { + return nil, err + } missingIds := bundledObjectIds.Filter(func(bo domain.BundledObjectId) bool { return !slices.Contains(storedIds, bo.DerivedObjectId) @@ -319,7 +318,11 @@ func (s *space) TryLoadBundledObjects(ctx context.Context) (missingSourceIds []s s.LoadObjectsIgnoreErrs(ctx, missingIds.DerivedObjectIds()) // todo: make LoadObjectsIgnoreErrs return list of loaded ids - storedIds = s.StoredIds() + storedIds, err = s.Storage().StoredIds() + if err != nil { + return nil, err + } + missingIds = bundledObjectIds.Filter(func(bo domain.BundledObjectId) bool { return !slices.Contains(storedIds, bo.DerivedObjectId) }) @@ -345,10 +348,7 @@ func (s *space) migrationProfileObject(ctx context.Context) error { return err } - extractedProfileExists, err := s.Storage().HasTree(ctx, extractedProfileId) - if err != nil { - return err - } + extractedProfileExists, _ := s.Storage().HasTree(extractedProfileId) if extractedProfileExists { return nil } diff --git a/space/clientspace/virtualspace.go b/space/clientspace/virtualspace.go index 827d5166e..f8ca69a80 100644 --- a/space/clientspace/virtualspace.go +++ b/space/clientspace/virtualspace.go @@ -77,6 +77,10 @@ func (c *virtualCommonSpace) HandleStreamSyncRequest(ctx context.Context, req *s return nil } +func (c *virtualCommonSpace) HandleDeprecatedObjectSyncRequest(ctx context.Context, req *spacesyncproto.ObjectSyncMessage) (resp *spacesyncproto.ObjectSyncMessage, err error) { + return +} + func (c *virtualCommonSpace) HandleStream(stream spacesyncproto.DRPCSpaceSync_ObjectSyncStreamStream) error { return nil } @@ -109,7 +113,7 @@ func (c *virtualCommonSpace) DebugAllHeads() []headsync.TreeHeads { return nil } -func (c *virtualCommonSpace) Description(ctx context.Context) (desc commonspace.SpaceDescription, err error) { +func (c *virtualCommonSpace) Description() (desc commonspace.SpaceDescription, err error) { return } diff --git a/space/internal/components/aclobjectmanager/aclobjectmananger_test.go b/space/internal/components/aclobjectmanager/aclobjectmananger_test.go index 955264cfc..824e1d38f 100644 --- a/space/internal/components/aclobjectmanager/aclobjectmananger_test.go +++ b/space/internal/components/aclobjectmanager/aclobjectmananger_test.go @@ -238,6 +238,10 @@ func (s *syncAclStub) HandleRequest(ctx context.Context, senderId string, reques return } +func (s *syncAclStub) SetHeadUpdater(updater headupdater.HeadUpdater) { + return +} + func (s *syncAclStub) SetAclUpdater(updater headupdater.AclUpdater) { s.updater = updater return diff --git a/space/spacecore/oldstorage/storage.go b/space/spacecore/oldstorage/storage.go deleted file mode 100644 index f90408942..000000000 --- a/space/spacecore/oldstorage/storage.go +++ /dev/null @@ -1,65 +0,0 @@ -package oldstorage - -import ( - "context" - "fmt" - - "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" - - "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/badgerstorage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/sqlitestorage" -) - -type SpaceStorageMode int - -const CName = "client.spacecore.oldstorage" - -const ( - SpaceStorageModeSqlite SpaceStorageMode = iota // used for new account repos - SpaceStorageModeBadger // used for existing account repos -) - -type ClientStorage interface { - oldstorage.SpaceStorageProvider - app.ComponentRunnable - // GetBoundObjectIds returns list of object ids bound (mapped) to space id - GetBoundObjectIds(spaceId string) ([]string, error) - AllSpaceIds() (ids []string, err error) - DeleteSpaceStorage(ctx context.Context, spaceId string) error - GetSpaceID(objectID string) (spaceID string, err error) - EstimateSize() (uint64, error) -} - -// storageService is a proxy for the actual storage implementation -type storageService struct { - ClientStorage -} - -func New() ClientStorage { - return &storageService{} -} - -type configGetter interface { - GetSpaceStorageMode() storage.SpaceStorageMode -} - -func (s *storageService) Name() (name string) { - return CName -} - -func (s *storageService) Init(a *app.App) (err error) { - mode := a.MustComponent("config").(configGetter).GetSpaceStorageMode() - if mode == storage.SpaceStorageModeBadger { - // for already existing account repos - s.ClientStorage = badgerstorage.New() - } else if mode == storage.SpaceStorageModeSqlite { - // sqlite used for new account repos - s.ClientStorage = sqlitestorage.New() - } else { - return fmt.Errorf("unknown storage mode %d", mode) - } - - return s.ClientStorage.Init(a) -} diff --git a/space/spacecore/rpchandler.go b/space/spacecore/rpchandler.go index 1793fc1d2..1e845dc08 100644 --- a/space/spacecore/rpchandler.go +++ b/space/spacecore/rpchandler.go @@ -85,7 +85,7 @@ func (r *rpcHandler) SpacePull(ctx context.Context, request *spacesyncproto.Spac return } - spaceDesc, err := sp.Description(ctx) + spaceDesc, err := sp.Description() if err != nil { err = spacesyncproto.ErrUnexpected return diff --git a/space/spacecore/storage/anystorage/clientstorage.go b/space/spacecore/storage/anystorage/clientstorage.go deleted file mode 100644 index 521961ba8..000000000 --- a/space/spacecore/storage/anystorage/clientstorage.go +++ /dev/null @@ -1,132 +0,0 @@ -package anystorage - -import ( - "context" - "errors" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-store/anyenc" - "github.com/anyproto/any-store/query" - "github.com/anyproto/any-sync/commonspace/headsync/headstorage" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" - "github.com/anyproto/any-sync/commonspace/spacestorage" -) - -type ClientSpaceStorage interface { - spacestorage.SpaceStorage - HasTree(ctx context.Context, id string) (has bool, err error) - TreeRoot(ctx context.Context, id string) (root *treechangeproto.RawTreeChangeWithId, err error) - MarkSpaceCreated(ctx context.Context) error - IsSpaceCreated(ctx context.Context) (created bool, err error) - UnmarkSpaceCreated(ctx context.Context) error - AllDeletedTreeIds(ctx context.Context) (ids []string, err error) -} - -var _ ClientSpaceStorage = (*clientStorage)(nil) - -const ( - clientCollectionKey = "_client" - clientDocumentKey = "space" - createdKey = "created" - rawChangeKey = "r" -) - -type clientStorage struct { - spacestorage.SpaceStorage - clientColl anystore.Collection -} - -func (r *clientStorage) AllDeletedTreeIds(ctx context.Context) (ids []string, err error) { - err = r.SpaceStorage.HeadStorage().IterateEntries(ctx, headstorage.IterOpts{Deleted: true}, func(entry headstorage.HeadsEntry) (bool, error) { - ids = append(ids, entry.Id) - return true, nil - }) - return -} - -func NewClientStorage(ctx context.Context, spaceStorage spacestorage.SpaceStorage) (*clientStorage, error) { - storage := &clientStorage{ - SpaceStorage: spaceStorage, - } - anyStore := storage.AnyStore() - client, err := anyStore.Collection(ctx, clientCollectionKey) - if err != nil { - return nil, err - } - storage.clientColl = client - return storage, nil -} - -func (r *clientStorage) Close(ctx context.Context) (err error) { - spaceStorageErr := r.SpaceStorage.Close(ctx) - anyStoreErr := r.SpaceStorage.AnyStore().Close() - return errors.Join(spaceStorageErr, anyStoreErr) -} - -func (r *clientStorage) HasTree(ctx context.Context, id string) (has bool, err error) { - _, err = r.SpaceStorage.HeadStorage().GetEntry(ctx, id) - isNotFound := errors.Is(err, anystore.ErrDocNotFound) - if err != nil && !isNotFound { - return false, err - } - return !isNotFound, nil -} - -func (r *clientStorage) TreeRoot(ctx context.Context, id string) (root *treechangeproto.RawTreeChangeWithId, err error) { - // it should be faster to do it that way, instead of calling TreeStorage - coll, err := r.SpaceStorage.AnyStore().OpenCollection(ctx, objecttree.CollName) - if err != nil { - return nil, err - } - doc, err := coll.FindId(ctx, id) - if err != nil { - return nil, err - } - return &treechangeproto.RawTreeChangeWithId{ - Id: id, - RawChange: doc.Value().GetBytes(rawChangeKey), - }, nil -} - -func (r *clientStorage) MarkSpaceCreated(ctx context.Context) error { - return r.modifyState(ctx, true) -} - -func (r *clientStorage) IsSpaceCreated(ctx context.Context) (isCreated bool, err error) { - doc, err := r.clientColl.FindId(ctx, clientDocumentKey) - isNotFound := errors.Is(err, anystore.ErrDocNotFound) - if err != nil && !isNotFound { - return false, err - } - if isNotFound { - return false, nil - } - return doc.Value().GetBool(createdKey), nil -} - -func (r *clientStorage) UnmarkSpaceCreated(ctx context.Context) error { - return r.modifyState(ctx, false) -} - -func (r *clientStorage) modifyState(ctx context.Context, isCreated bool) error { - tx, err := r.clientColl.WriteTx(ctx) - if err != nil { - return err - } - arena := &anyenc.Arena{} - val := arena.NewTrue() - if !isCreated { - val = arena.NewFalse() - } - mod := query.ModifyFunc(func(a *anyenc.Arena, v *anyenc.Value) (result *anyenc.Value, modified bool, err error) { - v.Set(createdKey, val) - return v, true, nil - }) - _, err = r.clientColl.UpsertId(tx.Context(), clientDocumentKey, mod) - if err != nil { - rollErr := tx.Rollback() - return errors.Join(err, rollErr) - } - return tx.Commit() -} diff --git a/space/spacecore/storage/anystorage/mock_anystorage/mock_ClientSpaceStorage.go b/space/spacecore/storage/anystorage/mock_anystorage/mock_ClientSpaceStorage.go deleted file mode 100644 index d544ece3e..000000000 --- a/space/spacecore/storage/anystorage/mock_anystorage/mock_ClientSpaceStorage.go +++ /dev/null @@ -1,917 +0,0 @@ -// Code generated by mockery. DO NOT EDIT. - -package mock_anystorage - -import ( - anystore "github.com/anyproto/any-store" - app "github.com/anyproto/any-sync/app" - - context "context" - - headstorage "github.com/anyproto/any-sync/commonspace/headsync/headstorage" - - list "github.com/anyproto/any-sync/commonspace/object/acl/list" - - mock "github.com/stretchr/testify/mock" - - objecttree "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - - statestorage "github.com/anyproto/any-sync/commonspace/headsync/statestorage" - - treechangeproto "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" - - treestorage "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" -) - -// MockClientSpaceStorage is an autogenerated mock type for the ClientSpaceStorage type -type MockClientSpaceStorage struct { - mock.Mock -} - -type MockClientSpaceStorage_Expecter struct { - mock *mock.Mock -} - -func (_m *MockClientSpaceStorage) EXPECT() *MockClientSpaceStorage_Expecter { - return &MockClientSpaceStorage_Expecter{mock: &_m.Mock} -} - -// AclStorage provides a mock function with given fields: -func (_m *MockClientSpaceStorage) AclStorage() (list.Storage, error) { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for AclStorage") - } - - var r0 list.Storage - var r1 error - if rf, ok := ret.Get(0).(func() (list.Storage, error)); ok { - return rf() - } - if rf, ok := ret.Get(0).(func() list.Storage); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(list.Storage) - } - } - - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_AclStorage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AclStorage' -type MockClientSpaceStorage_AclStorage_Call struct { - *mock.Call -} - -// AclStorage is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) AclStorage() *MockClientSpaceStorage_AclStorage_Call { - return &MockClientSpaceStorage_AclStorage_Call{Call: _e.mock.On("AclStorage")} -} - -func (_c *MockClientSpaceStorage_AclStorage_Call) Run(run func()) *MockClientSpaceStorage_AclStorage_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_AclStorage_Call) Return(_a0 list.Storage, _a1 error) *MockClientSpaceStorage_AclStorage_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockClientSpaceStorage_AclStorage_Call) RunAndReturn(run func() (list.Storage, error)) *MockClientSpaceStorage_AclStorage_Call { - _c.Call.Return(run) - return _c -} - -// AllDeletedTreeIds provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) AllDeletedTreeIds(ctx context.Context) ([]string, error) { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for AllDeletedTreeIds") - } - - var r0 []string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context) ([]string, error)); ok { - return rf(ctx) - } - if rf, ok := ret.Get(0).(func(context.Context) []string); ok { - r0 = rf(ctx) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]string) - } - } - - if rf, ok := ret.Get(1).(func(context.Context) error); ok { - r1 = rf(ctx) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_AllDeletedTreeIds_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AllDeletedTreeIds' -type MockClientSpaceStorage_AllDeletedTreeIds_Call struct { - *mock.Call -} - -// AllDeletedTreeIds is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) AllDeletedTreeIds(ctx interface{}) *MockClientSpaceStorage_AllDeletedTreeIds_Call { - return &MockClientSpaceStorage_AllDeletedTreeIds_Call{Call: _e.mock.On("AllDeletedTreeIds", ctx)} -} - -func (_c *MockClientSpaceStorage_AllDeletedTreeIds_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_AllDeletedTreeIds_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_AllDeletedTreeIds_Call) Return(ids []string, err error) *MockClientSpaceStorage_AllDeletedTreeIds_Call { - _c.Call.Return(ids, err) - return _c -} - -func (_c *MockClientSpaceStorage_AllDeletedTreeIds_Call) RunAndReturn(run func(context.Context) ([]string, error)) *MockClientSpaceStorage_AllDeletedTreeIds_Call { - _c.Call.Return(run) - return _c -} - -// AnyStore provides a mock function with given fields: -func (_m *MockClientSpaceStorage) AnyStore() anystore.DB { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for AnyStore") - } - - var r0 anystore.DB - if rf, ok := ret.Get(0).(func() anystore.DB); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(anystore.DB) - } - } - - return r0 -} - -// MockClientSpaceStorage_AnyStore_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AnyStore' -type MockClientSpaceStorage_AnyStore_Call struct { - *mock.Call -} - -// AnyStore is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) AnyStore() *MockClientSpaceStorage_AnyStore_Call { - return &MockClientSpaceStorage_AnyStore_Call{Call: _e.mock.On("AnyStore")} -} - -func (_c *MockClientSpaceStorage_AnyStore_Call) Run(run func()) *MockClientSpaceStorage_AnyStore_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_AnyStore_Call) Return(_a0 anystore.DB) *MockClientSpaceStorage_AnyStore_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_AnyStore_Call) RunAndReturn(run func() anystore.DB) *MockClientSpaceStorage_AnyStore_Call { - _c.Call.Return(run) - return _c -} - -// Close provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) Close(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Close") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockClientSpaceStorage_Close_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Close' -type MockClientSpaceStorage_Close_Call struct { - *mock.Call -} - -// Close is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) Close(ctx interface{}) *MockClientSpaceStorage_Close_Call { - return &MockClientSpaceStorage_Close_Call{Call: _e.mock.On("Close", ctx)} -} - -func (_c *MockClientSpaceStorage_Close_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_Close_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_Close_Call) Return(err error) *MockClientSpaceStorage_Close_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockClientSpaceStorage_Close_Call) RunAndReturn(run func(context.Context) error) *MockClientSpaceStorage_Close_Call { - _c.Call.Return(run) - return _c -} - -// CreateTreeStorage provides a mock function with given fields: ctx, payload -func (_m *MockClientSpaceStorage) CreateTreeStorage(ctx context.Context, payload treestorage.TreeStorageCreatePayload) (objecttree.Storage, error) { - ret := _m.Called(ctx, payload) - - if len(ret) == 0 { - panic("no return value specified for CreateTreeStorage") - } - - var r0 objecttree.Storage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, treestorage.TreeStorageCreatePayload) (objecttree.Storage, error)); ok { - return rf(ctx, payload) - } - if rf, ok := ret.Get(0).(func(context.Context, treestorage.TreeStorageCreatePayload) objecttree.Storage); ok { - r0 = rf(ctx, payload) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(objecttree.Storage) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, treestorage.TreeStorageCreatePayload) error); ok { - r1 = rf(ctx, payload) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_CreateTreeStorage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateTreeStorage' -type MockClientSpaceStorage_CreateTreeStorage_Call struct { - *mock.Call -} - -// CreateTreeStorage is a helper method to define mock.On call -// - ctx context.Context -// - payload treestorage.TreeStorageCreatePayload -func (_e *MockClientSpaceStorage_Expecter) CreateTreeStorage(ctx interface{}, payload interface{}) *MockClientSpaceStorage_CreateTreeStorage_Call { - return &MockClientSpaceStorage_CreateTreeStorage_Call{Call: _e.mock.On("CreateTreeStorage", ctx, payload)} -} - -func (_c *MockClientSpaceStorage_CreateTreeStorage_Call) Run(run func(ctx context.Context, payload treestorage.TreeStorageCreatePayload)) *MockClientSpaceStorage_CreateTreeStorage_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(treestorage.TreeStorageCreatePayload)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_CreateTreeStorage_Call) Return(_a0 objecttree.Storage, _a1 error) *MockClientSpaceStorage_CreateTreeStorage_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockClientSpaceStorage_CreateTreeStorage_Call) RunAndReturn(run func(context.Context, treestorage.TreeStorageCreatePayload) (objecttree.Storage, error)) *MockClientSpaceStorage_CreateTreeStorage_Call { - _c.Call.Return(run) - return _c -} - -// HasTree provides a mock function with given fields: ctx, id -func (_m *MockClientSpaceStorage) HasTree(ctx context.Context, id string) (bool, error) { - ret := _m.Called(ctx, id) - - if len(ret) == 0 { - panic("no return value specified for HasTree") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (bool, error)); ok { - return rf(ctx, id) - } - if rf, ok := ret.Get(0).(func(context.Context, string) bool); ok { - r0 = rf(ctx, id) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_HasTree_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HasTree' -type MockClientSpaceStorage_HasTree_Call struct { - *mock.Call -} - -// HasTree is a helper method to define mock.On call -// - ctx context.Context -// - id string -func (_e *MockClientSpaceStorage_Expecter) HasTree(ctx interface{}, id interface{}) *MockClientSpaceStorage_HasTree_Call { - return &MockClientSpaceStorage_HasTree_Call{Call: _e.mock.On("HasTree", ctx, id)} -} - -func (_c *MockClientSpaceStorage_HasTree_Call) Run(run func(ctx context.Context, id string)) *MockClientSpaceStorage_HasTree_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_HasTree_Call) Return(has bool, err error) *MockClientSpaceStorage_HasTree_Call { - _c.Call.Return(has, err) - return _c -} - -func (_c *MockClientSpaceStorage_HasTree_Call) RunAndReturn(run func(context.Context, string) (bool, error)) *MockClientSpaceStorage_HasTree_Call { - _c.Call.Return(run) - return _c -} - -// HeadStorage provides a mock function with given fields: -func (_m *MockClientSpaceStorage) HeadStorage() headstorage.HeadStorage { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for HeadStorage") - } - - var r0 headstorage.HeadStorage - if rf, ok := ret.Get(0).(func() headstorage.HeadStorage); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(headstorage.HeadStorage) - } - } - - return r0 -} - -// MockClientSpaceStorage_HeadStorage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HeadStorage' -type MockClientSpaceStorage_HeadStorage_Call struct { - *mock.Call -} - -// HeadStorage is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) HeadStorage() *MockClientSpaceStorage_HeadStorage_Call { - return &MockClientSpaceStorage_HeadStorage_Call{Call: _e.mock.On("HeadStorage")} -} - -func (_c *MockClientSpaceStorage_HeadStorage_Call) Run(run func()) *MockClientSpaceStorage_HeadStorage_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_HeadStorage_Call) Return(_a0 headstorage.HeadStorage) *MockClientSpaceStorage_HeadStorage_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_HeadStorage_Call) RunAndReturn(run func() headstorage.HeadStorage) *MockClientSpaceStorage_HeadStorage_Call { - _c.Call.Return(run) - return _c -} - -// Id provides a mock function with given fields: -func (_m *MockClientSpaceStorage) Id() string { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Id") - } - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// MockClientSpaceStorage_Id_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Id' -type MockClientSpaceStorage_Id_Call struct { - *mock.Call -} - -// Id is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) Id() *MockClientSpaceStorage_Id_Call { - return &MockClientSpaceStorage_Id_Call{Call: _e.mock.On("Id")} -} - -func (_c *MockClientSpaceStorage_Id_Call) Run(run func()) *MockClientSpaceStorage_Id_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_Id_Call) Return(_a0 string) *MockClientSpaceStorage_Id_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_Id_Call) RunAndReturn(run func() string) *MockClientSpaceStorage_Id_Call { - _c.Call.Return(run) - return _c -} - -// Init provides a mock function with given fields: a -func (_m *MockClientSpaceStorage) Init(a *app.App) error { - ret := _m.Called(a) - - if len(ret) == 0 { - panic("no return value specified for Init") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*app.App) error); ok { - r0 = rf(a) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockClientSpaceStorage_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' -type MockClientSpaceStorage_Init_Call struct { - *mock.Call -} - -// Init is a helper method to define mock.On call -// - a *app.App -func (_e *MockClientSpaceStorage_Expecter) Init(a interface{}) *MockClientSpaceStorage_Init_Call { - return &MockClientSpaceStorage_Init_Call{Call: _e.mock.On("Init", a)} -} - -func (_c *MockClientSpaceStorage_Init_Call) Run(run func(a *app.App)) *MockClientSpaceStorage_Init_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*app.App)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_Init_Call) Return(err error) *MockClientSpaceStorage_Init_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockClientSpaceStorage_Init_Call) RunAndReturn(run func(*app.App) error) *MockClientSpaceStorage_Init_Call { - _c.Call.Return(run) - return _c -} - -// IsSpaceCreated provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) IsSpaceCreated(ctx context.Context) (bool, error) { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for IsSpaceCreated") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func(context.Context) (bool, error)); ok { - return rf(ctx) - } - if rf, ok := ret.Get(0).(func(context.Context) bool); ok { - r0 = rf(ctx) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func(context.Context) error); ok { - r1 = rf(ctx) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_IsSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsSpaceCreated' -type MockClientSpaceStorage_IsSpaceCreated_Call struct { - *mock.Call -} - -// IsSpaceCreated is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) IsSpaceCreated(ctx interface{}) *MockClientSpaceStorage_IsSpaceCreated_Call { - return &MockClientSpaceStorage_IsSpaceCreated_Call{Call: _e.mock.On("IsSpaceCreated", ctx)} -} - -func (_c *MockClientSpaceStorage_IsSpaceCreated_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_IsSpaceCreated_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_IsSpaceCreated_Call) Return(created bool, err error) *MockClientSpaceStorage_IsSpaceCreated_Call { - _c.Call.Return(created, err) - return _c -} - -func (_c *MockClientSpaceStorage_IsSpaceCreated_Call) RunAndReturn(run func(context.Context) (bool, error)) *MockClientSpaceStorage_IsSpaceCreated_Call { - _c.Call.Return(run) - return _c -} - -// MarkSpaceCreated provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) MarkSpaceCreated(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for MarkSpaceCreated") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockClientSpaceStorage_MarkSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MarkSpaceCreated' -type MockClientSpaceStorage_MarkSpaceCreated_Call struct { - *mock.Call -} - -// MarkSpaceCreated is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) MarkSpaceCreated(ctx interface{}) *MockClientSpaceStorage_MarkSpaceCreated_Call { - return &MockClientSpaceStorage_MarkSpaceCreated_Call{Call: _e.mock.On("MarkSpaceCreated", ctx)} -} - -func (_c *MockClientSpaceStorage_MarkSpaceCreated_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_MarkSpaceCreated_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_MarkSpaceCreated_Call) Return(_a0 error) *MockClientSpaceStorage_MarkSpaceCreated_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_MarkSpaceCreated_Call) RunAndReturn(run func(context.Context) error) *MockClientSpaceStorage_MarkSpaceCreated_Call { - _c.Call.Return(run) - return _c -} - -// Name provides a mock function with given fields: -func (_m *MockClientSpaceStorage) Name() string { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Name") - } - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// MockClientSpaceStorage_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' -type MockClientSpaceStorage_Name_Call struct { - *mock.Call -} - -// Name is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) Name() *MockClientSpaceStorage_Name_Call { - return &MockClientSpaceStorage_Name_Call{Call: _e.mock.On("Name")} -} - -func (_c *MockClientSpaceStorage_Name_Call) Run(run func()) *MockClientSpaceStorage_Name_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_Name_Call) Return(name string) *MockClientSpaceStorage_Name_Call { - _c.Call.Return(name) - return _c -} - -func (_c *MockClientSpaceStorage_Name_Call) RunAndReturn(run func() string) *MockClientSpaceStorage_Name_Call { - _c.Call.Return(run) - return _c -} - -// Run provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) Run(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Run") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockClientSpaceStorage_Run_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Run' -type MockClientSpaceStorage_Run_Call struct { - *mock.Call -} - -// Run is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) Run(ctx interface{}) *MockClientSpaceStorage_Run_Call { - return &MockClientSpaceStorage_Run_Call{Call: _e.mock.On("Run", ctx)} -} - -func (_c *MockClientSpaceStorage_Run_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_Run_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_Run_Call) Return(err error) *MockClientSpaceStorage_Run_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockClientSpaceStorage_Run_Call) RunAndReturn(run func(context.Context) error) *MockClientSpaceStorage_Run_Call { - _c.Call.Return(run) - return _c -} - -// StateStorage provides a mock function with given fields: -func (_m *MockClientSpaceStorage) StateStorage() statestorage.StateStorage { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for StateStorage") - } - - var r0 statestorage.StateStorage - if rf, ok := ret.Get(0).(func() statestorage.StateStorage); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(statestorage.StateStorage) - } - } - - return r0 -} - -// MockClientSpaceStorage_StateStorage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'StateStorage' -type MockClientSpaceStorage_StateStorage_Call struct { - *mock.Call -} - -// StateStorage is a helper method to define mock.On call -func (_e *MockClientSpaceStorage_Expecter) StateStorage() *MockClientSpaceStorage_StateStorage_Call { - return &MockClientSpaceStorage_StateStorage_Call{Call: _e.mock.On("StateStorage")} -} - -func (_c *MockClientSpaceStorage_StateStorage_Call) Run(run func()) *MockClientSpaceStorage_StateStorage_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockClientSpaceStorage_StateStorage_Call) Return(_a0 statestorage.StateStorage) *MockClientSpaceStorage_StateStorage_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_StateStorage_Call) RunAndReturn(run func() statestorage.StateStorage) *MockClientSpaceStorage_StateStorage_Call { - _c.Call.Return(run) - return _c -} - -// TreeRoot provides a mock function with given fields: ctx, id -func (_m *MockClientSpaceStorage) TreeRoot(ctx context.Context, id string) (*treechangeproto.RawTreeChangeWithId, error) { - ret := _m.Called(ctx, id) - - if len(ret) == 0 { - panic("no return value specified for TreeRoot") - } - - var r0 *treechangeproto.RawTreeChangeWithId - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (*treechangeproto.RawTreeChangeWithId, error)); ok { - return rf(ctx, id) - } - if rf, ok := ret.Get(0).(func(context.Context, string) *treechangeproto.RawTreeChangeWithId); ok { - r0 = rf(ctx, id) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*treechangeproto.RawTreeChangeWithId) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_TreeRoot_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TreeRoot' -type MockClientSpaceStorage_TreeRoot_Call struct { - *mock.Call -} - -// TreeRoot is a helper method to define mock.On call -// - ctx context.Context -// - id string -func (_e *MockClientSpaceStorage_Expecter) TreeRoot(ctx interface{}, id interface{}) *MockClientSpaceStorage_TreeRoot_Call { - return &MockClientSpaceStorage_TreeRoot_Call{Call: _e.mock.On("TreeRoot", ctx, id)} -} - -func (_c *MockClientSpaceStorage_TreeRoot_Call) Run(run func(ctx context.Context, id string)) *MockClientSpaceStorage_TreeRoot_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_TreeRoot_Call) Return(root *treechangeproto.RawTreeChangeWithId, err error) *MockClientSpaceStorage_TreeRoot_Call { - _c.Call.Return(root, err) - return _c -} - -func (_c *MockClientSpaceStorage_TreeRoot_Call) RunAndReturn(run func(context.Context, string) (*treechangeproto.RawTreeChangeWithId, error)) *MockClientSpaceStorage_TreeRoot_Call { - _c.Call.Return(run) - return _c -} - -// TreeStorage provides a mock function with given fields: ctx, id -func (_m *MockClientSpaceStorage) TreeStorage(ctx context.Context, id string) (objecttree.Storage, error) { - ret := _m.Called(ctx, id) - - if len(ret) == 0 { - panic("no return value specified for TreeStorage") - } - - var r0 objecttree.Storage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (objecttree.Storage, error)); ok { - return rf(ctx, id) - } - if rf, ok := ret.Get(0).(func(context.Context, string) objecttree.Storage); ok { - r0 = rf(ctx, id) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(objecttree.Storage) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockClientSpaceStorage_TreeStorage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TreeStorage' -type MockClientSpaceStorage_TreeStorage_Call struct { - *mock.Call -} - -// TreeStorage is a helper method to define mock.On call -// - ctx context.Context -// - id string -func (_e *MockClientSpaceStorage_Expecter) TreeStorage(ctx interface{}, id interface{}) *MockClientSpaceStorage_TreeStorage_Call { - return &MockClientSpaceStorage_TreeStorage_Call{Call: _e.mock.On("TreeStorage", ctx, id)} -} - -func (_c *MockClientSpaceStorage_TreeStorage_Call) Run(run func(ctx context.Context, id string)) *MockClientSpaceStorage_TreeStorage_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_TreeStorage_Call) Return(_a0 objecttree.Storage, _a1 error) *MockClientSpaceStorage_TreeStorage_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockClientSpaceStorage_TreeStorage_Call) RunAndReturn(run func(context.Context, string) (objecttree.Storage, error)) *MockClientSpaceStorage_TreeStorage_Call { - _c.Call.Return(run) - return _c -} - -// UnmarkSpaceCreated provides a mock function with given fields: ctx -func (_m *MockClientSpaceStorage) UnmarkSpaceCreated(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for UnmarkSpaceCreated") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockClientSpaceStorage_UnmarkSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UnmarkSpaceCreated' -type MockClientSpaceStorage_UnmarkSpaceCreated_Call struct { - *mock.Call -} - -// UnmarkSpaceCreated is a helper method to define mock.On call -// - ctx context.Context -func (_e *MockClientSpaceStorage_Expecter) UnmarkSpaceCreated(ctx interface{}) *MockClientSpaceStorage_UnmarkSpaceCreated_Call { - return &MockClientSpaceStorage_UnmarkSpaceCreated_Call{Call: _e.mock.On("UnmarkSpaceCreated", ctx)} -} - -func (_c *MockClientSpaceStorage_UnmarkSpaceCreated_Call) Run(run func(ctx context.Context)) *MockClientSpaceStorage_UnmarkSpaceCreated_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *MockClientSpaceStorage_UnmarkSpaceCreated_Call) Return(_a0 error) *MockClientSpaceStorage_UnmarkSpaceCreated_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockClientSpaceStorage_UnmarkSpaceCreated_Call) RunAndReturn(run func(context.Context) error) *MockClientSpaceStorage_UnmarkSpaceCreated_Call { - _c.Call.Return(run) - return _c -} - -// NewMockClientSpaceStorage creates a new instance of MockClientSpaceStorage. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockClientSpaceStorage(t interface { - mock.TestingT - Cleanup(func()) -}) *MockClientSpaceStorage { - mock := &MockClientSpaceStorage{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/space/spacecore/storage/anystorage/storageservice.go b/space/spacecore/storage/anystorage/storageservice.go deleted file mode 100644 index 5b17b344e..000000000 --- a/space/spacecore/storage/anystorage/storageservice.go +++ /dev/null @@ -1,134 +0,0 @@ -package anystorage - -import ( - "context" - "errors" - "fmt" - "os" - "path" - "strings" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/app/logger" - "github.com/anyproto/any-sync/commonspace/spacestorage" -) - -// nolint: unused -var log = logger.NewNamed(spacestorage.CName) - -func New(rootPath string) *storageService { - return &storageService{ - rootPath: rootPath, - } -} - -type storageService struct { - rootPath string -} - -func (s *storageService) AllSpaceIds() (ids []string, err error) { - var files []string - fileInfo, err := os.ReadDir(s.rootPath) - if err != nil { - return files, fmt.Errorf("can't read datadir '%v': %w", s.rootPath, err) - } - for _, file := range fileInfo { - if !strings.HasPrefix(file.Name(), ".") { - files = append(files, file.Name()) - } - } - return files, nil -} - -func (s *storageService) Run(ctx context.Context) (err error) { - return nil -} - -func (s *storageService) openDb(ctx context.Context, id string) (db anystore.DB, err error) { - dbPath := path.Join(s.rootPath, id, "store.db") - if _, err := os.Stat(dbPath); err != nil { - if errors.Is(err, os.ErrNotExist) { - return nil, spacestorage.ErrSpaceStorageMissing - } - return nil, err - } - return anystore.Open(ctx, dbPath, anyStoreConfig()) -} - -func (s *storageService) createDb(ctx context.Context, id string) (db anystore.DB, err error) { - dirPath := path.Join(s.rootPath, id) - err = os.MkdirAll(dirPath, 0755) - if err != nil { - return nil, err - } - dbPath := path.Join(dirPath, "store.db") - return anystore.Open(ctx, dbPath, anyStoreConfig()) -} - -func (s *storageService) Close(ctx context.Context) (err error) { - return nil -} - -func (s *storageService) Init(a *app.App) (err error) { - if _, err = os.Stat(s.rootPath); err != nil { - err = os.MkdirAll(s.rootPath, 0755) - if err != nil { - return err - } - } - return nil -} - -func (s *storageService) Name() (name string) { - return spacestorage.CName -} - -func (s *storageService) WaitSpaceStorage(ctx context.Context, id string) (spacestorage.SpaceStorage, error) { - db, err := s.openDb(ctx, id) - if err != nil { - return nil, err - } - st, err := spacestorage.New(ctx, id, db) - if err != nil { - return nil, err - } - return NewClientStorage(ctx, st) -} - -func (s *storageService) SpaceExists(id string) bool { - if id == "" { - return false - } - dbPath := path.Join(s.rootPath, id) - if _, err := os.Stat(dbPath); err != nil { - return false - } - return true -} - -func (s *storageService) CreateSpaceStorage(ctx context.Context, payload spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { - db, err := s.createDb(ctx, payload.SpaceHeaderWithId.Id) - if err != nil { - return nil, err - } - st, err := spacestorage.Create(ctx, db, payload) - if err != nil { - return nil, err - } - return NewClientStorage(ctx, st) -} - -func (s *storageService) DeleteSpaceStorage(ctx context.Context, spaceId string) error { - dbPath := path.Join(s.rootPath, spaceId) - return os.RemoveAll(dbPath) -} - -func anyStoreConfig() *anystore.Config { - return &anystore.Config{ - ReadConnections: 4, - SQLiteConnectionOptions: map[string]string{ - "synchronous": "off", - }, - } -} diff --git a/space/spacecore/storage/badgerstorage/keys.go b/space/spacecore/storage/badgerstorage/keys.go index d1ec78550..cca156aab 100644 --- a/space/spacecore/storage/badgerstorage/keys.go +++ b/space/spacecore/storage/badgerstorage/keys.go @@ -60,10 +60,6 @@ func (t treeKeys) RawChangeKey(id string) []byte { return treestorage.JoinStringsToBytes("space", t.spaceId, "t", t.id, id) } -func (t treeKeys) RawChangesPrefix() []byte { - return treestorage.JoinStringsToBytes("space", t.spaceId, "t", t.id) -} - func (t treeKeys) RawChangePrefix() []byte { return t.rawChangePrefix } diff --git a/space/spacecore/storage/badgerstorage/liststorage.go b/space/spacecore/storage/badgerstorage/liststorage.go index 24f61a666..86aad123c 100644 --- a/space/spacecore/storage/badgerstorage/liststorage.go +++ b/space/spacecore/storage/badgerstorage/liststorage.go @@ -4,15 +4,12 @@ import ( "context" "errors" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/dgraph-io/badger/v4" ) -var ( - ErrIncorrectKey = errors.New("key format is incorrect") - ErrUnknownRecord = errors.New("record does not exist") -) +var ErrIncorrectKey = errors.New("key format is incorrect") type listStorage struct { db *badger.DB @@ -21,7 +18,7 @@ type listStorage struct { root *consensusproto.RawRecordWithId } -func newListStorage(spaceId string, db *badger.DB, txn *badger.Txn) (ls oldstorage.ListStorage, err error) { +func newListStorage(spaceId string, db *badger.DB, txn *badger.Txn) (ls liststorage.ListStorage, err error) { keys := newAclKeys(spaceId) rootId, err := getTxn(txn, keys.RootIdKey()) if err != nil { @@ -48,7 +45,7 @@ func newListStorage(spaceId string, db *badger.DB, txn *badger.Txn) (ls oldstora return } -func createListStorage(spaceID string, db *badger.DB, txn *badger.Txn, root *consensusproto.RawRecordWithId) (ls oldstorage.ListStorage, err error) { +func createListStorage(spaceID string, db *badger.DB, txn *badger.Txn, root *consensusproto.RawRecordWithId) (ls liststorage.ListStorage, err error) { keys := newAclKeys(spaceID) _, err = getTxn(txn, keys.RootIdKey()) if err != badger.ErrKeyNotFound { @@ -102,7 +99,7 @@ func (l *listStorage) GetRawRecord(_ context.Context, id string) (raw *consensus res, err := getDB(l.db, l.keys.RawRecordKey(id)) if err != nil { if err == badger.ErrKeyNotFound { - err = ErrUnknownRecord + err = liststorage.ErrUnknownRecord } return } diff --git a/space/spacecore/storage/badgerstorage/liststorage_test.go b/space/spacecore/storage/badgerstorage/liststorage_test.go index 954b7d7a6..719e8dff6 100644 --- a/space/spacecore/storage/badgerstorage/liststorage_test.go +++ b/space/spacecore/storage/badgerstorage/liststorage_test.go @@ -4,13 +4,13 @@ import ( "context" "testing" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/dgraph-io/badger/v4" "github.com/stretchr/testify/require" ) -func testList(t *testing.T, store oldstorage.ListStorage, root *consensusproto.RawRecordWithId, head string) { +func testList(t *testing.T, store liststorage.ListStorage, root *consensusproto.RawRecordWithId, head string) { require.Equal(t, store.Id(), root.Id) aclRoot, err := store.Root() @@ -35,7 +35,7 @@ func TestListStorage(t *testing.T) { return nil }) - var listStore oldstorage.ListStorage + var listStore liststorage.ListStorage fx.db.View(func(txn *badger.Txn) (err error) { listStore, err = newListStorage(spaceId, fx.db, txn) require.NoError(t, err) diff --git a/space/spacecore/storage/badgerstorage/spacestorage.go b/space/spacecore/storage/badgerstorage/spacestorage.go index 94a735d38..6ca493beb 100644 --- a/space/spacecore/storage/badgerstorage/spacestorage.go +++ b/space/spacecore/storage/badgerstorage/spacestorage.go @@ -7,10 +7,10 @@ import ( "fmt" "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/anyproto/any-sync/commonspace/spacesyncproto" "github.com/dgraph-io/badger/v4" "golang.org/x/exp/slices" @@ -21,7 +21,7 @@ type spaceStorage struct { spaceSettingsId string objDb *badger.DB keys spaceKeys - aclStorage oldstorage.ListStorage + aclStorage liststorage.ListStorage header *spacesyncproto.RawSpaceHeaderWithId service *storageService } @@ -38,7 +38,7 @@ func (s *spaceStorage) Name() (name string) { return spacestorage.CName } -func newSpaceStorage(objDb *badger.DB, spaceId string, service *storageService) (store oldstorage.SpaceStorage, err error) { +func newSpaceStorage(objDb *badger.DB, spaceId string, service *storageService) (store spacestorage.SpaceStorage, err error) { keys := newSpaceKeys(spaceId) err = objDb.View(func(txn *badger.Txn) error { header, err := getTxn(txn, keys.HeaderKey()) @@ -75,7 +75,7 @@ func newSpaceStorage(objDb *badger.DB, spaceId string, service *storageService) return } -func createSpaceStorage(db *badger.DB, payload spacestorage.SpaceStorageCreatePayload, service *storageService) (store oldstorage.SpaceStorage, err error) { +func createSpaceStorage(db *badger.DB, payload spacestorage.SpaceStorageCreatePayload, service *storageService) (store spacestorage.SpaceStorage, err error) { keys := newSpaceKeys(payload.SpaceHeaderWithId.Id) if hasDB(db, keys.HeaderKey()) { err = spacestorage.ErrSpaceStorageExists @@ -133,15 +133,15 @@ func (s *spaceStorage) HasTree(id string) (bool, error) { return hasDB(s.objDb, keys.RootIdKey()), nil } -func (s *spaceStorage) TreeStorage(id string) (oldstorage.TreeStorage, error) { +func (s *spaceStorage) TreeStorage(id string) (treestorage.TreeStorage, error) { return newTreeStorage(s.objDb, s.spaceId, id) } -func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (ts oldstorage.TreeStorage, err error) { +func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) { return createTreeStorage(s.objDb, s.spaceId, payload) } -func (s *spaceStorage) AclStorage() (oldstorage.ListStorage, error) { +func (s *spaceStorage) AclStorage() (liststorage.ListStorage, error) { return s.aclStorage, nil } @@ -186,7 +186,7 @@ func (s *spaceStorage) AllDeletedTreeIds() (ids []string, err error) { var isDeleted bool err = item.Value(func(val []byte) error { - if bytes.Equal(val, []byte(oldstorage.TreeDeletedStatusDeleted)) { + if bytes.Equal(val, []byte(spacestorage.TreeDeletedStatusDeleted)) { isDeleted = true } return nil diff --git a/space/spacecore/storage/badgerstorage/spacestorage_test.go b/space/spacecore/storage/badgerstorage/spacestorage_test.go index 9844fbb17..4a126a95b 100644 --- a/space/spacecore/storage/badgerstorage/spacestorage_test.go +++ b/space/spacecore/storage/badgerstorage/spacestorage_test.go @@ -7,8 +7,7 @@ import ( "testing" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" - "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" + spacestorage "github.com/anyproto/any-sync/commonspace/spacestorage" "github.com/anyproto/any-sync/commonspace/spacesyncproto" "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/stretchr/testify/assert" @@ -37,7 +36,7 @@ func spaceTestPayload() spacestorage.SpaceStorageCreatePayload { } } -func testSpace(t *testing.T, store oldstorage.SpaceStorage, payload spacestorage.SpaceStorageCreatePayload) { +func testSpace(t *testing.T, store spacestorage.SpaceStorage, payload spacestorage.SpaceStorageCreatePayload) { header, err := store.SpaceHeader() require.NoError(t, err) require.Equal(t, payload.SpaceHeaderWithId, header) @@ -140,58 +139,3 @@ func TestSpaceStorage_StoredIds_BigTxn(t *testing.T) { require.NoError(t, err) require.Len(t, storedIds, 0) } - -func newServiceFixture(t *testing.T) *storageService { - fx := newFixture(t) - fx.open(t) - - t.Cleanup(func() { - fx.stop(t) - }) - - s := &storageService{ - db: fx.db, - keys: newStorageServiceKeys(), - lockedSpaces: map[string]*lockSpace{}, - } - return s -} - -func TestStorageService_BindSpaceID(t *testing.T) { - fx := newServiceFixture(t) - - err := fx.BindSpaceID("spaceId1", "objectId1") - require.NoError(t, err) - - spaceId, err := fx.GetSpaceID("objectId1") - require.NoError(t, err) - - require.Equal(t, spaceId, "spaceId1") -} - -func TestStorageService_GetBoundObjectIds(t *testing.T) { - t.Run("with no bindings", func(t *testing.T) { - fx := newServiceFixture(t) - - ids, err := fx.GetBoundObjectIds("spaceId") - require.NoError(t, err) - assert.Empty(t, ids) - }) - - t.Run("ok", func(t *testing.T) { - fx := newServiceFixture(t) - - spaceId := "spaceId1" - err := fx.BindSpaceID(spaceId, "objectId1") - require.NoError(t, err) - - err = fx.BindSpaceID(spaceId, "objectId2") - require.NoError(t, err) - - ids, err := fx.GetBoundObjectIds(spaceId) - require.NoError(t, err) - - assert.ElementsMatch(t, []string{"objectId1", "objectId2"}, ids) - }) - -} diff --git a/space/spacecore/storage/badgerstorage/storageservice.go b/space/spacecore/storage/badgerstorage/storageservice.go index 815eecd1a..340ffd9d4 100644 --- a/space/spacecore/storage/badgerstorage/storageservice.go +++ b/space/spacecore/storage/badgerstorage/storageservice.go @@ -1,15 +1,12 @@ package badgerstorage import ( - "bytes" "context" "errors" - "fmt" "sync" "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/dgraph-io/badger/v4" "github.com/anyproto/anytype-heart/core/domain" @@ -49,11 +46,11 @@ func (s *storageService) Name() (name string) { return spacestorage.CName } -func (s *storageService) SpaceStorage(id string) (oldstorage.SpaceStorage, error) { +func (s *storageService) SpaceStorage(id string) (spacestorage.SpaceStorage, error) { return newSpaceStorage(s.db, id, s) } -func (s *storageService) WaitSpaceStorage(ctx context.Context, id string) (store oldstorage.SpaceStorage, err error) { +func (s *storageService) WaitSpaceStorage(ctx context.Context, id string) (store spacestorage.SpaceStorage, err error) { var ls *lockSpace ls, err = s.checkLock(id, func() error { store, err = newSpaceStorage(s.db, id, s) @@ -155,7 +152,7 @@ func (s *storageService) unlockSpaceStorage(id string) { } } -func (s *storageService) CreateSpaceStorage(payload spacestorage.SpaceStorageCreatePayload) (oldstorage.SpaceStorage, error) { +func (s *storageService) CreateSpaceStorage(payload spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { return createSpaceStorage(s.db, payload, s) } @@ -169,37 +166,6 @@ func (s *storageService) GetSpaceID(objectID string) (spaceID string, err error) return spaceID, err } -func (s *storageService) GetBoundObjectIds(spaceId string) (ids []string, err error) { - prefix := []byte("bind/") - spaceIdBytes := []byte(spaceId) - err = s.db.View(func(txn *badger.Txn) error { - opts := badger.DefaultIteratorOptions - opts.PrefetchValues = false - opts.Prefix = prefix - - it := txn.NewIterator(opts) - defer it.Close() - - for it.Rewind(); it.Valid(); it.Next() { - item := it.Item() - id := item.Key() - - err = item.Value(func(val []byte) error { - if bytes.Equal(spaceIdBytes, val) { - idStr := string(id) - ids = append(ids, idStr[len(prefix):]) - } - return nil - }) - if err != nil { - return fmt.Errorf("read value: %w", err) - } - } - return nil - }) - return -} - func (s *storageService) BindSpaceID(spaceID, objectID string) (err error) { return badgerhelper.SetValue(s.db, s.keys.BindObjectIDKey(objectID), []byte(spaceID)) } @@ -227,11 +193,6 @@ func (s *storageService) AllSpaceIds() (ids []string, err error) { return } -func (s *storageService) EstimateSize() (uint64, error) { - onDiskSize, _ := s.db.EstimateSize(nil) - return onDiskSize, nil -} - func (s *storageService) Run(ctx context.Context) (err error) { s.db, err = s.provider.SpaceStorage() if err != nil { diff --git a/space/spacecore/storage/badgerstorage/treestorage.go b/space/spacecore/storage/badgerstorage/treestorage.go index da3cdffcf..f82b58dac 100644 --- a/space/spacecore/storage/badgerstorage/treestorage.go +++ b/space/spacecore/storage/badgerstorage/treestorage.go @@ -1,13 +1,11 @@ package badgerstorage import ( - "bytes" "context" "fmt" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/dgraph-io/badger/v4" ) @@ -18,7 +16,7 @@ type treeStorage struct { root *treechangeproto.RawTreeChangeWithId } -func newTreeStorage(db *badger.DB, spaceId, treeId string) (ts oldstorage.TreeStorage, err error) { +func newTreeStorage(db *badger.DB, spaceId, treeId string) (ts treestorage.TreeStorage, err error) { keys := newTreeKeys(spaceId, treeId) err = db.View(func(txn *badger.Txn) error { _, err := txn.Get(keys.RootIdKey()) @@ -50,7 +48,7 @@ func newTreeStorage(db *badger.DB, spaceId, treeId string) (ts oldstorage.TreeSt return } -func createTreeStorage(db *badger.DB, spaceId string, payload treestorage.TreeStorageCreatePayload) (ts oldstorage.TreeStorage, err error) { +func createTreeStorage(db *badger.DB, spaceId string, payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) { keys := newTreeKeys(spaceId, payload.RootRawChange.Id) if hasDB(db, keys.RootIdKey()) { err = treestorage.ErrTreeExists @@ -59,7 +57,7 @@ func createTreeStorage(db *badger.DB, spaceId string, payload treestorage.TreeSt return forceCreateTreeStorage(db, spaceId, payload) } -func forceCreateTreeStorage(db *badger.DB, spaceId string, payload treestorage.TreeStorageCreatePayload) (ts oldstorage.TreeStorage, err error) { +func forceCreateTreeStorage(db *badger.DB, spaceId string, payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) { keys := newTreeKeys(spaceId, payload.RootRawChange.Id) err = db.Update(func(txn *badger.Txn) error { err = txn.Set(keys.RawChangeKey(payload.RootRawChange.Id), payload.RootRawChange.GetRawChange()) @@ -110,74 +108,7 @@ func (t *treeStorage) Heads() (heads []string, err error) { } func (t *treeStorage) GetAllChangeIds() (chs []string, err error) { - prefix := t.keys.RawChangesPrefix() - err = t.db.View(func(txn *badger.Txn) error { - opts := badger.DefaultIteratorOptions - opts.PrefetchValues = false - opts.Prefix = prefix - - it := txn.NewIterator(opts) - defer it.Close() - - for it.Rewind(); it.Valid(); it.Next() { - item := it.Item() - id := item.Key() - - changeId := string(id[len(prefix)+1:]) - // Special case - if changeId == "heads" { - continue - } - chs = append(chs, changeId) - if err != nil { - return fmt.Errorf("read value: %w", err) - } - } - return nil - }) - return chs, err -} - -func (t *treeStorage) GetAllChanges() ([]*treechangeproto.RawTreeChangeWithId, error) { - var changes []*treechangeproto.RawTreeChangeWithId - err := t.IterateChanges(func(id string, rawChange []byte) error { - changes = append(changes, &treechangeproto.RawTreeChangeWithId{ - Id: id, - RawChange: bytes.Clone(rawChange), - }) - return nil - }) - return changes, err -} - -func (t *treeStorage) IterateChanges(proc func(id string, rawChange []byte) error) error { - prefix := t.keys.RawChangesPrefix() - return t.db.View(func(txn *badger.Txn) error { - opts := badger.DefaultIteratorOptions - opts.PrefetchValues = false - opts.Prefix = prefix - - it := txn.NewIterator(opts) - defer it.Close() - - for it.Rewind(); it.Valid(); it.Next() { - item := it.Item() - id := item.Key() - - changeId := string(id[len(prefix)+1:]) - // Special case - if changeId == "heads" { - continue - } - err := item.Value(func(val []byte) error { - return proc(changeId, val) - }) - if err != nil { - return fmt.Errorf("read value: %w", err) - } - } - return nil - }) + return nil, fmt.Errorf("get all change ids should not be called") } func (t *treeStorage) SetHeads(heads []string) (err error) { diff --git a/space/spacecore/storage/badgerstorage/treestorage_test.go b/space/spacecore/storage/badgerstorage/treestorage_test.go index aae671eb2..b1567935e 100644 --- a/space/spacecore/storage/badgerstorage/treestorage_test.go +++ b/space/spacecore/storage/badgerstorage/treestorage_test.go @@ -1,24 +1,16 @@ package badgerstorage import ( - "bytes" "context" "os" "testing" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/dgraph-io/badger/v4" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) -type oldTreeStorage interface { - oldstorage.ChangesIterator - oldstorage.TreeStorage -} - func treeTestPayload() treestorage.TreeStorageCreatePayload { rootRawChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("some"), Id: "someRootId"} otherChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("some other"), Id: "otherId"} @@ -35,7 +27,7 @@ type fixture struct { db *badger.DB } -func testTreePayload(t *testing.T, store oldstorage.TreeStorage, payload treestorage.TreeStorageCreatePayload) { +func testTreePayload(t *testing.T, store treestorage.TreeStorage, payload treestorage.TreeStorageCreatePayload) { require.Equal(t, payload.RootRawChange.Id, store.Id()) root, err := store.Root() @@ -134,9 +126,8 @@ func TestTreeStorage_Methods(t *testing.T) { fx.open(t) defer fx.stop(t) - treeStore, err := newTreeStorage(fx.db, spaceId, payload.RootRawChange.Id) + store, err := newTreeStorage(fx.db, spaceId, payload.RootRawChange.Id) require.NoError(t, err) - store := treeStore.(oldTreeStorage) testTreePayload(t, store, payload) t.Run("update heads", func(t *testing.T) { @@ -148,7 +139,7 @@ func TestTreeStorage_Methods(t *testing.T) { }) t.Run("add raw change, get change and has change", func(t *testing.T) { - newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("ab"), Id: "id10"} + newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("ab"), Id: "newId"} require.NoError(t, store.AddRawChange(newChange)) rawCh, err := store.GetRawChange(context.Background(), newChange.Id) require.NoError(t, err) @@ -166,50 +157,6 @@ func TestTreeStorage_Methods(t *testing.T) { require.NoError(t, err) require.False(t, has) }) - - t.Run("iterate changes", func(t *testing.T) { - newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("foo"), Id: "id01"} - require.NoError(t, store.AddRawChange(newChange)) - newChange = &treechangeproto.RawTreeChangeWithId{RawChange: []byte("bar"), Id: "id20"} - require.NoError(t, store.AddRawChange(newChange)) - - var collected []*treechangeproto.RawTreeChangeWithId - require.NoError(t, store.IterateChanges(func(id string, rawChange []byte) error { - collected = append(collected, &treechangeproto.RawTreeChangeWithId{ - Id: id, - RawChange: bytes.Clone(rawChange), - }) - return nil - })) - - want := []*treechangeproto.RawTreeChangeWithId{ - {Id: "id01", RawChange: []byte("foo")}, - {Id: "id10", RawChange: []byte("ab")}, - {Id: "id20", RawChange: []byte("bar")}, - {Id: "otherId", RawChange: []byte("some other")}, - {Id: "someRootId", RawChange: []byte("some")}, - } - assert.Equal(t, want, collected) - - got, err := store.GetAllChanges() - require.NoError(t, err) - - assert.Equal(t, want, got) - }) - - t.Run("get all change ids", func(t *testing.T) { - got, err := store.GetAllChangeIds() - require.NoError(t, err) - - want := []string{"id01", - "id10", - "id20", - "otherId", - "someRootId", - } - - assert.Equal(t, want, got) - }) } func TestTreeStorage_Delete(t *testing.T) { diff --git a/space/spacecore/storage/migrator/migrator.go b/space/spacecore/storage/migrator/migrator.go deleted file mode 100644 index 5bd9377f9..000000000 --- a/space/spacecore/storage/migrator/migrator.go +++ /dev/null @@ -1,247 +0,0 @@ -package migrator - -import ( - "context" - "errors" - "fmt" - "os" - "path/filepath" - "strings" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/commonspace/spacestorage/migration" - - "github.com/anyproto/anytype-heart/core/block/process" - "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/anystorehelper" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceresolverstore" - "github.com/anyproto/anytype-heart/space/spacecore/oldstorage" - "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/migratorfinisher" - "github.com/anyproto/anytype-heart/util/freespace" -) - -type NotEnoughFreeSpaceError struct { - Free uint64 - Required uint64 -} - -func (e NotEnoughFreeSpaceError) Error() string { - if e.Required == 0 { - return fmt.Sprintf("not enough free space: %d", e.Free) - } - return fmt.Sprintf("Not enough free space: %d, required: %d", e.Free, e.Required) -} - -const CName = "client.storage.migration" - -type migrator struct { - oldStorage oldstorage.ClientStorage - newStorage storage.ClientStorage - process process.Service - path string - objectStorePath string - finisher migratorfinisher.Service - - anyStoreConfig *anystore.Config -} - -type pathProvider interface { - GetNewSpaceStorePath() string - GetOldSpaceStorePath() string - GetRepoPath() string - GetAnyStoreConfig() *anystore.Config -} - -func New() app.ComponentRunnable { - return &migrator{} -} - -func (m *migrator) Init(a *app.App) (err error) { - cfg := a.MustComponent("config").(pathProvider) - m.path = cfg.GetNewSpaceStorePath() - m.objectStorePath = filepath.Join(cfg.GetRepoPath(), "objectstore") - m.oldStorage = app.MustComponent[oldstorage.ClientStorage](a) - m.newStorage = app.MustComponent[storage.ClientStorage](a) - m.process = app.MustComponent[process.Service](a) - m.finisher = app.MustComponent[migratorfinisher.Service](a) - m.anyStoreConfig = cfg.GetAnyStoreConfig() - return nil -} - -func (m *migrator) Name() (name string) { - return CName -} - -func (m *migrator) Run(ctx context.Context) (err error) { - oldSize, err := m.oldStorage.EstimateSize() - if err != nil { - return fmt.Errorf("estimate size: %w", err) - } - free, err := freespace.GetFreeDiskSpace(m.path) - if err != nil { - return fmt.Errorf("get free disk space: %w", err) - } - requiredDiskSpace := oldSize * 15 / 10 - if requiredDiskSpace > free { - return NotEnoughFreeSpaceError{ - Free: free, - Required: requiredDiskSpace, - } - } - - err = m.run(ctx) - if err != nil { - if strings.Contains(err.Error(), "disk is full") { - return NotEnoughFreeSpaceError{ - Free: free, - } - } - return err - } - return nil -} - -func (m *migrator) run(ctx context.Context) (err error) { - progress := process.NewProgress(&pb.ModelProcessMessageOfMigration{Migration: &pb.ModelProcessMigration{}}) - progress.SetProgressMessage("Migrating spaces") - err = m.process.Add(progress) - if err != nil { - return err - } - defer func() { - progress.Finish(err) - }() - migrator := migration.NewSpaceMigrator(m.oldStorage, m.newStorage, 40, m.path) - allIds, err := m.oldStorage.AllSpaceIds() - if err != nil { - return err - } - var ( - total int64 - totalMap = make(map[string]int64) - ) - for _, id := range allIds { - store, err := m.oldStorage.WaitSpaceStorage(ctx, id) - if err != nil { - return err - } - storedIds, err := store.StoredIds() - if err != nil { - return err - } - total += int64(len(storedIds)) - totalMap[id] = int64(len(storedIds)) - err = store.Close(ctx) - if err != nil { - return err - } - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - } - progress.SetTotal(total) - for _, id := range allIds { - err := migrator.MigrateId(ctx, id, progress) - if err != nil { - if errors.Is(err, migration.ErrAlreadyMigrated) { - progress.AddDone(totalMap[id]) - continue - } - return err - } - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - } - - err = m.doObjectStoreDb(ctx, func(db anystore.DB) error { - resolverStore, err := spaceresolverstore.New(ctx, db) - if err != nil { - return fmt.Errorf("new resolver store: %w", err) - } - - for _, spaceId := range allIds { - objectIds, err := m.oldStorage.GetBoundObjectIds(spaceId) - if err != nil { - return fmt.Errorf("get bound object ids: %w", err) - } - - for _, objectId := range objectIds { - err = resolverStore.BindSpaceId(spaceId, objectId) - if err != nil { - return fmt.Errorf("bind space id: %w", err) - } - } - } - return nil - }) - if err != nil { - return fmt.Errorf("migrate space id bindings: %w", err) - } - - // TODO Maybe add some condition? - m.finisher.SetMigrationDone() - - return nil -} - -// nolint:unused -func (m *migrator) verify(ctx context.Context, fast bool) ([]*verificationReport, error) { - var reports []*verificationReport - err := m.doObjectStoreDb(ctx, func(db anystore.DB) error { - resolverStore, err := spaceresolverstore.New(ctx, db) - if err != nil { - return fmt.Errorf("new resolver store: %w", err) - } - - v := &verifier{ - fast: fast, - oldStorage: m.oldStorage, - newStorage: m.newStorage, - resolverStore: resolverStore, - } - reports, err = v.verify(ctx) - return err - }) - if err != nil { - return nil, err - } - return reports, nil -} - -func (m *migrator) doObjectStoreDb(ctx context.Context, proc func(db anystore.DB) error) error { - err := ensureDirExists(m.objectStorePath) - if err != nil { - return fmt.Errorf("ensure dir exists: %w", err) - } - - store, lockRemove, err := anystorehelper.OpenDatabaseWithLockCheck(ctx, filepath.Join(m.objectStorePath, "objects.db"), m.anyStoreConfig) - if err != nil { - return fmt.Errorf("open database: %w", err) - } - - err = proc(store) - - return errors.Join(err, store.Close(), lockRemove()) -} - -func ensureDirExists(dir string) error { - _, err := os.Stat(dir) - if errors.Is(err, os.ErrNotExist) { - err = os.MkdirAll(dir, 0700) - if err != nil { - return fmt.Errorf("create db dir: %w", err) - } - } - return nil -} - -func (m *migrator) Close(ctx context.Context) (err error) { - return nil -} diff --git a/space/spacecore/storage/migrator/migrator_test.go b/space/spacecore/storage/migrator/migrator_test.go deleted file mode 100644 index b8bb723ea..000000000 --- a/space/spacecore/storage/migrator/migrator_test.go +++ /dev/null @@ -1,203 +0,0 @@ -package migrator - -import ( - "context" - "io" - "os" - "path/filepath" - "testing" - - "github.com/anyproto/any-sync/app" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - - "github.com/anyproto/anytype-heart/core/anytype/config" - "github.com/anyproto/anytype-heart/core/block/process" - "github.com/anyproto/anytype-heart/core/event/mock_event" - "github.com/anyproto/anytype-heart/core/wallet" - "github.com/anyproto/anytype-heart/pb" - "github.com/anyproto/anytype-heart/pkg/lib/datastore/clientds" - "github.com/anyproto/anytype-heart/space/spacecore/oldstorage" - "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/migratorfinisher" - "github.com/anyproto/anytype-heart/tests/testutil" -) - -type fixture struct { - migrator *migrator - app *app.App - cfg *config.Config -} - -type quicPreferenceSetterStub struct { -} - -func (q *quicPreferenceSetterStub) Init(a *app.App) (err error) { - return nil -} - -func (q *quicPreferenceSetterStub) Name() (name string) { - return "quicPreferenceSetterStub" -} - -func (q *quicPreferenceSetterStub) PreferQuic(b bool) { -} - -func newFixture(t *testing.T, mode storage.SpaceStorageMode) *fixture { - cfg := config.New() - cfg.SpaceStorageMode = mode - cfg.RepoPath = t.TempDir() - - fx := &fixture{ - cfg: cfg, - } - return fx -} - -func (fx *fixture) start(t *testing.T) { - walletService := wallet.NewWithRepoDirAndRandomKeys(fx.cfg.RepoPath) - oldStorage := oldstorage.New() - newStorage := storage.New() - processService := process.New() - eventSender := mock_event.NewMockSender(t) - eventSender.EXPECT().Broadcast(mock.Anything).Run(func(ev *pb.Event) { - }).Maybe() - eventSender.EXPECT().BroadcastExceptSessions(mock.Anything, mock.Anything).Run(func(ev *pb.Event, exceptSessions []string) { - t.Log(ev) - }).Maybe() - - migrator := New().(*migrator) - - ctx := context.Background() - testApp := &app.App{} - testApp.Register(migratorfinisher.New()) - testApp.Register(clientds.New()) - testApp.Register(testutil.PrepareMock(ctx, testApp, eventSender)) - testApp.Register(&quicPreferenceSetterStub{}) - testApp.Register(walletService) - testApp.Register(fx.cfg) - testApp.Register(oldStorage) - testApp.Register(newStorage) - testApp.Register(processService) - testApp.Register(migrator) - - fx.app = testApp - fx.migrator = migrator - - err := testApp.Start(ctx) - require.NoError(t, err) -} - -func assertReports(t *testing.T, reports []*verificationReport) { - for _, report := range reports { - for _, err := range report.errors { - assert.NoError(t, err.err, err.id) - } - } -} - -func TestMigration(t *testing.T) { - t.Run("no old storage", func(t *testing.T) { - fx := newFixture(t, storage.SpaceStorageModeSqlite) - - fx.start(t) - }) - - t.Run("with sqlite, fast verification", func(t *testing.T) { - fx := newFixture(t, storage.SpaceStorageModeSqlite) - - err := copyFile("testdata/spaceStore.db", fx.cfg.GetOldSpaceStorePath()) - require.NoError(t, err) - - // TODO Test object->space bindings were populated - - fx.start(t) - - reports, err := fx.migrator.verify(context.Background(), true) - require.NoError(t, err) - assertReports(t, reports) - }) - - t.Run("with sqlite, full verification", func(t *testing.T) { - fx := newFixture(t, storage.SpaceStorageModeSqlite) - - err := copyFile("testdata/spaceStore.db", fx.cfg.GetOldSpaceStorePath()) - require.NoError(t, err) - - // TODO Test object->space bindings were populated - - fx.start(t) - - reports, err := fx.migrator.verify(context.Background(), false) - require.NoError(t, err) - assertReports(t, reports) - }) - - t.Run("with badger, fast verification", func(t *testing.T) { - fx := newFixture(t, storage.SpaceStorageModeBadger) - - err := copyDir("testdata/badger_spacestore", fx.cfg.GetOldSpaceStorePath()) - require.NoError(t, err) - - // TODO Test object->space bindings were populated - - fx.start(t) - - reports, err := fx.migrator.verify(context.Background(), true) - require.NoError(t, err) - assertReports(t, reports) - }) - - t.Run("with badger, full verification", func(t *testing.T) { - fx := newFixture(t, storage.SpaceStorageModeBadger) - - err := copyDir("testdata/badger_spacestore", fx.cfg.GetOldSpaceStorePath()) - require.NoError(t, err) - - // TODO Test object->space bindings were populated - - fx.start(t) - - reports, err := fx.migrator.verify(context.Background(), false) - require.NoError(t, err) - assertReports(t, reports) - }) -} - -func copyFile(srcPath string, destPath string) error { - src, err := os.Open(srcPath) - if err != nil { - return err - } - defer src.Close() - dest, err := os.Create(destPath) - if err != nil { - return err - } - defer dest.Close() - _, err = io.Copy(dest, src) - return err -} - -func copyDir(srcPath string, destPath string) error { - dir, err := os.ReadDir(srcPath) - if err != nil { - return err - } - - err = os.MkdirAll(destPath, os.ModePerm) - if err != nil { - return err - } - - for _, entry := range dir { - src := filepath.Join(srcPath, entry.Name()) - dst := filepath.Join(destPath, entry.Name()) - err := copyFile(src, dst) - if err != nil { - return err - } - } - return nil -} diff --git a/space/spacecore/storage/migrator/testdata/badger_spacestore/000001.sst b/space/spacecore/storage/migrator/testdata/badger_spacestore/000001.sst deleted file mode 100644 index 448835376b4ace7c6ff85ad0d2fb6f21e06ee349..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031871 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

_pL7q;UgyT!Qyel)XOs-Y? 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

j?_(J)+%542;p>Bm#d%+2z zt;o;Yx}>R2hXHB%dnc8=7eB5eKfn4Cex9}{8RVMHT)6wP)Ncg{3Y_QIp+=#mmPI;-L;Yh?;lCAJ~O1}>iYgko3YBFyoi zOR;iY#T`1UC*_6m!kv_?ewY?_E>i)oe~GN0mVZKe!vXID!D8TXZNC>t6Gpg659VKH zWJWE0M+2$DY@bE;K&CHjkffrR>_gOw<@Y_K?L%4?u=mxf&^vkRQ+I~ARl&j0eB&5N z&DN01;Kf_>9AL+LG;2nDFKIads20M@Ure^Wc8t;w0;avLPbMjFzV2Q>#X{*O4Wnzo z-&y)%;GNi7h87|~Xy;JYWz(rrGUW_?MZ z#=5Nbdz>`>2J%ra-G;J0`b3YPI}Wo+`dl(et17%kUEmX*~rD!Ak7~B=bB5a@1Z%O7Mdx<#ydI>}M=0~@^!6MnaLv2_Okxt(}_$*RG$!rZOxz^2>| zj(lJ{8xvk@pd}Fe8{XX|iNk&kg8n~v_m|!Hui@QazBBDSx)*w{g5UF-CHY?Nglr<- z=J_1N<1q__Z=RurQew6_qwk?*8mFsYo@@*7r*rEu&v2JEn`MM86jb77FnPNWH|)rJ zBhQ3 z@h8=g-CYG7RD8d*wRKC})|6H7o$cxa1e6N0aon6*0I5+5FbOw|==%Nv%2MKGKl6R1 zkJ+d_l!Asm$>1sWW^>IY17cirIJ#z3A&ZeuoM(%%wbi(zPgvIFz>rZcD&f!TJ27If#U3LE?S{;vqg2ESqNCT=c- zB4_bADQW7hGCSi`cIVSov(a_3x*X@gv39y;wPF*7hPNBeU|&#%dD|A`?I<;?bNk z5;cp-XJKb;;rv7&>lMh{cGK@qSFSMa;!~xN?XW_X{gXwA9fg==5X~wDM0>7^7dVuh zE*^Qugd+$Jj#HRzr;YY5mMzSV-%0DZ2D~l1VEktH#F9EO@)=TIcLR{p7P|PoJeAd{ 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

b-&0^Keu7G-m~haT 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

6Ej>L`5@aMXjG7^m zdGAy(LJZEiVg(tm5~s=uoqj=h5A&YRzgQJV9>4c+G=&6UfNPneMlV3m8pVq6^#lBf zQw*wsTZn!!nLn|kOWk?z;Q($JN78~LEL0j)x8^yPD2%5zs`X18^71n)i!zrvY5e!a zDWPl!x;unCfIR*mz9Bg}T}-c)oh{8Ze?pWsO}CrDyUzFUc12XyrScT{WID}Nx_10y15meW=hkPW6b zkwxH`4a8-))8Gky|L$lTR$ZG{VI=^t{YXJ*<3;>Jo*3(7jg9+|UeQ@d?dW5w5;3wL zFtyOiSv@0su>xVAbX<|C_8s6u*FcQSf(UV-88YmL@}T zZ-v&Y9}NVYc=}s3D?K*E7Ray>nH~(MLVf+slr>wX;_$Lzo3O_}kH7MEc-M17jfYh5 zvrylC3@HKy0oQ;C8A!2EStMz1$WcO4O65Y+2q_=_H3K!ik6!Pm$s%17cdFcSsb*zc z0fv5FP8 zqII_IMcBN?OjNXFt55N?UOQKN^G%dh_A1WOQvXW#UkwmN-Z1q zxFLj0Il0LIVgvIYPKXuLWl?pCD?5_ARLBI2b^kUYxjrZ^-N@P0Ke|pZ;^MG=t`bpb zl*J#2=E?yy-ry(`-|%ZObiVdf6TQWnVgv$eNc+Up^ocxYe$aQ&jC68=|HdG9Pn#sa zcKV)?pniAvbc^j5(mW$o{O;}vH2x3no(Ksfcw%i~>SAnQ#$pMQdvmZiH+8i#1iD%| zJD6LTbGq5sxB;vzKw_6109!|PD;IZHw_h3C;2C58-0A!Jl(8NDNkV$@L`bOr(-->< zs8NuEgDU83{2zcs3<4tn$XY;#^b3$GSJu-01weX6$bN;}$lk=o+RPOsPi*C8XJKq_ z?qmznR(AqPKpKO@AKfi2%*_ofL85a&1CYe2u^s5X1LvQBblvq7?zH~^q-RXyzXV9n zcrw`~JZXw)#Fv?yaXN-g`j|LCkou!8y0)Z#^Ctg%wo^|UjcV7$rS#8iU0DPUK>g|3riZ{e*&#DDG? ze!w+&ZSD{TsAwWRa4>+Ivx(|ZBnUInbg5Ye@pOBAGdLNwuZMTS$cG!){gTdTxSPTy zW3M5J;k<)>l2lXFf=G^thc9Fh8Y9{s29xkvcl}n4W`+xEgfUH^^KGiuK~VCqKfhJl7;hg&+jDxS`l>USFF zft4PmhA^x|rdTN(=m@DB2l5KV#m7H!7&e1UARo@BXucr{ZbRt^W175NLI>7qw33S1 z1!TjOAaa&&axFoc?P*vccQI^x=;>_p0i2~Py47pHQY1O9?}pQgdq)4j_|ldH*=8I& zQl;>166MuKZg|9nJJ3s9=;O+f0oCT&s<%;+H`ptFpO;xS$6aN#3cD3S&L`>MAr-h3 zlZsT2EH-<&gCm*v4ZS*ottO5|{4c^bI|hP9O5AAT&)%a2+&VX`ynR>4&=L@i6S4w} z8IC&K!v(`a)+*VSnJzKCLUwRIg4~+Ocn~N)R&`G8u+C_#s;q!G4o`e%&i(?wzJ?Ln zkg;Y4Usp~}!gfh=3KwdRlIS+i;3bqWvk6|mJ0+Q2zB_jL>Bi_-M)DCKE{^Ajnh*-c zi~J~in()>D^*hAM7hWuFO+#~vgDuvsMWkxj#XL@&%~y)ia(-WXM}ldgey(by2^i_; z`2sZ}6K>sFE$i%GK4#j}@YN?W?KDn6mFEsjbqx=_sUrMNMeA+jEfjMxC`o3c z-bg}LYFn&Ym`-95ips~ zl=?Ex(bWaKx9BtwpT^@|!spU!!cFj4p6n$khr{{3j}=M~EnKqf z+9t3J&cttfdtY>zs(DT-{fRZ_b=z`1^v|E{&3Gw67L+X*1YUI~r9oWzQFkJB0!>9{ zU@6HpiS4r=F9?rhzn^g5xDH92_x~IW*Mu^)GyLv_$uKIT!tWs=>*HLxDtZvdZzrt& zJ-x&5g=9x@=lrCuc%}G3S$1M02ID;s)9V6kS|&_#Mt#5dx30x)N*WR@Pkld_%ZCsWYpIZO7z=-EiEu0+SR_urL_QOs zd4MEQUwp6J%O^G;!Q!}VF~U>>V@v6fGQ4)KY3ojJ!xpDQsm=*=;UFQ%Lq_Hhxcp__ z$2d<$^t%p|g@A2&Sw#>12j4R7$a2zbKbU?ntEHr4w@-fmHa#)Gf{P&y)|)$(JxCkQ z9ZelT9+bULKmL~dV{yeJp7~0l*8B=-916bFM4`LTKbgWANkbP=weV)KPWE{vpUiqokT#m6giyE71W)Rh^Oy0*>yZ?lQbgEF8g zD}^kL?_PM3kduDpA=S2TzO@A}m0ytiHi0{C=n3`n=)Y?rvBNaj+PJ2)ZU8X<7Q z+U9+AU%GH(Gs#gbw^0|9=Z+Ki_TBs7t}sS-?;n?m?R=%$#TI+sHaFUIe0O-2E#^}p zR6{jYr4HLODLZ9nicRSVTT%_eY?hSrC@v4IVki)w7asMwTg1ZLyC*JX&+)vVNTSDJ zORwpV8DuHWH-<#(s~E85({c!tk*v}4jFoMKl4+=fJD0UuQ)3qrcrx=HB^*Qaf6C zSL^E~*A{ny${#W*ANuB@HJI84SmhJ+^j!mR+urIGOuo=6I_oy=J5lmpxj`6ZS!brg zptHQwm8e|Vs>?MWliDQIZtW0VoRBRr*sh@l#;c7B<-2C`KYCq+Mzdwk9!lZQ4 zOLbneNTx#Kal`H75kGF?H+fHV{$Q7@zvspyW3%{!?AT%(j^T5xpz2!@BV$=FWj2qN zY1}$238FMcfyE5`>mP4(YUd|EGmk!&slZtc8q{_h)jy!3H%9EjP$?+DWxHqm-+ur9 zN2~R3T`{r<-pxJC_CgA9+&-r+B2<(Xv4m4SY^uK%B5qEn^TIFh#0WyHf)&O!qq%HKOz5x8A$v!gXjE6 z{}*QP^aKCDiRtgh6Abj?1FdaCLG}$~G@x}YJm_2nAE;wjE69ZY=-361wqFqS2>Snj zdQ-s2(u&2!%-){e%)u0BU~UD{g|{>|HFYpIbh2e-b8~kwa$sY3Fg7;<0BtQ;?97aT zf0Y=XG4_uy(t|%Ji2q87!N$Pe(a;)bWc5^G0PVrVg0$ZaEllmKolH!foY>f%KppOE zY(X7@O#s$zHjd`D4o;wbCpR}kM{@@jdr&;sSZ(b%jcop$_fy|pg!=zjt3M+I|E28r zj3<*tAY}NOpO{#wIp%Q^unWj34uaL9zy(GMCBs)7!GPz^x+HS6Sg;b%=G}@LYdGH| zYQ0Yxx8r-v(QjAyl|_@I+kqYQVm@LL;Ic}O#793a-rX9NssDQ z2$!g0FG)GneLcp&MS;(@w*SZ)B6>J`lA)LrL$tvwo0zLIRNAWGjWHk-0lCp`;HBl)PQ(+@`2^RR zFe!>pD_^h?b<;G>BCo~9>3v1<-LbBU%9&JkiVTM;W2T!|zbZ#v!7Qf09?X3;^(mvb zCESigj@YZ(&yt^oH|beTSig-yjleJ%yUk z>O-E(6xUF6Okmqy8q0Z27kDGm+=MXkr-v^W6k9c@T@&)^%ns_ttNSadY1Cb|)g2mO zM|<}|F%-cI=7*U(lIL&;PI7?}om=GORc9MUx|+z#--_{r&)GJ<5FJx%AMG7|fzGGd zR!9cGnmK9IGFjq}V+1hpR!_f~Efv6Te&L=kV%If7NVJ3!Of$MaY;)SCg6JER*@l+Z zE9oZ^jCaX-n+|cXQZJzt6+;{?0mx8Htk8Hp;9v&{`S!)i(kp4eW`|rL)lPFLafQ#$ zD}6fGIP5Q%8U+?(N&SZ`V{BCqW3Bj}*O;6JPAdKqXDM&1*641($KxR^x)*vkJDN~5BZso^1y-CwiF<^~FsCm>1wF_p zU6qrS8n6C3i}jV+5?~zK{SDZ@tEB1BP(<~6Hq29xs{1pCd45+EjLnY-Blp4{Xuavz zq0MU|KLzcRcWSUSbvX{aGAoickE>KI~(t{teX&ufxoG&qDq zoI?9hZOshze4MO`wYC=P_ zjZm}9C&6=~9RE{MbFX35cpIfzSZylblu$jWbk4-qOM=f7xLCP4T##Y!+0&+R>^%V`a-O6sb<3hl23!d;OO^V(ZIH1j5?YGg?E(q{CkE zIywU(5lNq_yXF=vqtV41ZL47xQY_oY(8v;y)4-bU42Ag=1k>zc>(N~C?}rjjJ+Qh< zy@*#M0_Nv77YEw{uKMFEfKU&r;ICCy!ahnwjnKJbezh{G{iJG=4pF6Gl6k|xfO>xO zf!c6SMokt6t;w=iMC~lj2*b{+b)=uHC>*m*zftI57Hs+j8re;R&tfp?(&Hz>pOKX4y&;}%Y z?Z(RKZt3j8Ve!{0{uyKc$n*D4Vf{BQii0}nSy@{Eto}S5A_wXNgbV^gU62)l>;`0@ z7Yy1!@Ja6z82-a2M4l0_UnLV$6GsDE4r6;ZTSpdFa|580gQbO|yRnHKs4*I+o2ePA zkr|7#C8)Qfv9W`Vg)yj!6Z@Y~b?+zy3iboyUnPZSOyj=Y`$dS;Fv2aE}Da#h>n_t0F8lb+Et zbe0V`7skE5G9Ph!bAu7ua&iuJ_>GvoCer?qtjz0IQu!C){)8^?NOJj;A--5fBW(@7 z`QAVW<;`Ri|K70{2a{Nkuw@m_{0z9}BBKp20GTU|((29z1I<%p+3M_c`5>)`$$)ZO zXM#o(ZB#I3gLEYl8MEo^(er3FTqez{kP)l@U6+fa1d5u?)PL!~*rw1AyW|nJMc-MY zIosWz6mt@_cIxtgp~Cq?y)FK=_M7whwqqw{lJv%63xd}lVv}*D#H;;s))Rg6bhJ7{ ziu1H=$y>E&=dEJe%ie!rO=M1- zNTU1ZW~dg1Sg|&4L27Lb$Gnz$)yP*-N3qkwcXwkw7jr`6(=jNJ>iMG?@*#+3qY3O7 zhqqXcviLMDfVsa{Nz-;BkboBn5{;>i!PjH^=X&x;NX`a*7Q(EIW_t4r;+d&P*-(4o zIosA_B50y2JgD*MRn2S`S2r1{l`kCLn6?%z4V| zM4C4UeeSqYoid}*vBONJ`m`~+PM!%gzm1lt?%{@~yCp+=DH{6uR!}3Gz}L9S8WfHMe3=gZO-RV{OVjiz#cGJf60a zOP)74&ZoBFSCyJCTUXe>vV&pttW2r*pTCsDb~?hSlN;-S4|^C`XAyl=H(firDmvfL zAHYK&RYwfWh@oolBww)G=S17{Wk#x=j_FiE&!O*WzY@h@9-Ya&0e@Mg&rUf#E}n1M0Wrbd$#%J%T#2?Hdq3Ge5XoE;AjyyJ(^iyg3|q zC)+m}G}~9^mz@L3!Hqf>$bR}JaJ58MKe}oXtpXuw-M8fG;RKXyiBlzqA{5*deAULN z7%z~s4MeYy=~Ogkgdfc`-g+nvqZ1rq#S*uQM@JD62=S~t1t`XYdI6;8k`C&dOXo$B z15g*Q-BvXx3JLK#=~c4Y*4iIr8$FAvW4R*V=HSB5Z(_k*JKr+l6D*AF<@Qteg?mz^ zs2VWR7*wKGq10?53b-GZ3ViGTnYjatF0%+72OcgKvX?hDl4TFjmNy$NIg0Si6kPXO z2$%8;HAvIN7dEZo+D!*@@b);=VeDZku4i4dVeq3&8@Q!`7&rX4(P%#71vY_?u}Xny zgzc+F)hu2QP1@^F63pf-ifN8dFRJS6JyX8RwDuD`kdjOLZoc~zq&_1v7!1rRcNY~$ zO#c1+?7aght^5fe&q+?dvCO^8U+zHNfd4j>{O;~Q!0kEip6dUmmToRC?)EmU>{e#h zRvZpy4pv5XpvKR}wpK>Y&YbS%=I(4Pj-a;S0Bb9A8)H+qzpjCs{{69kRzP~5lC{%6 zxxaz^bT|av7F4*gFtV^U066~V`B?%`Nz4*t4IqR2gN~rl?mpLj2a(Y~PDg(~Xus&l z+|1Gd=x*X>VQX(^YQ|~iWMRbV;^N?F=?3BdrK!HQ=q$nIRK=dVsH0n zz+0aJ9`_$5r)PY2|1CQD`vD+3gr^!*s&B|#0LS7nu=HRC!&yJcu1DA6IDiEoN6h#p zHZXaSbJFxmj-0K5nL%=%unR}=V_NPy6ce8`Av5*G(8ws!PB^JP)?TgJL4Jz0Q8NGb z-SO6}xA~ZE&+(bS%8!<^V_L`ft}D9*LJj#~kL=gd?I{yYM{IO~iZuN65`L!qGJ0z% zhLz_j?7Xkx7@EA2jWK8_;fP8}qG(J^Bo96>0tFU@;5l@R3&8_f1_FBGWSv)CeFQAl zJT8E~3z5UM_h%c~pKN$XWBu75}PX^IY+NF@#rtCf~l)pnXM`gkRXDBY+i{{Iyy_&hA#Jp@26J zeXP6|?xLM?QCG@pXD>zycsSh}#nwIhdh?5hiEE(uIOF(=iA!nZ8QO&CV3L%&K5>-) zDx}-z9OoJ{RgYK$kw{u_1s2$)Nm0$KH6XUWEHqC4Jm-6){gI1ER_|8@(_(v&`|<+ zHF5^BriLA3S(n~+NdVIhvk-Qo;yfQcFW#jTnzGdGW}T}bkEGxS@xSmrb~~jji(-_S zuti2Zc67<|#hhn|stM!2P%gFGfH#yY=8?)<&KW;2SwsG$Ly|bDA*NTk0{6?hAwnVE5U|OC3ShoPKia!$ zuZ2TW-Q7yI!nN@;mt$<02vW_G`R!))yJ1+~=>I%#;G%*MvG4xKJ*?!9j$UsUk2;Bc zAHo@Z|G0p&AsYKYsxzf*&WiA*K+srjP&+AT$onfSV^)=P0ur&hHE|uMi@R_8aL_D! z$p~|C1kdAYY`I3mO>?gd!G<$g8jKJLa+5R4Dyy854g- zOIc7E#11XGUKW0U3s`OUl4eBA*24$3opIPy*6uktuF|@`+UPd#S{M5~G3Oz9G6gB) zQmYY-h=3jLB#VvGCzp8doBk+wk{pf%@M!*$VK^!W6TY|I)KiWBQeTA8l1IAn)sTkU z1m|lL5jPSxlw_9A%xPrYmoPyZVWIncNbOv!ih>2TUVx6mF ztlsSZe+o)1e__sZlGbmS^YHaAcOX%-zYQ$EyL+OKUj?OSxO*xnnX_3M8#uZcTX9&J zfqE~qSs8OWnt}9p*?}N+5NnXuu>lYOYK-k>W$A2g%;{uc39$H;#SNY@_RoS+?^6~B z{FB&(`h-mgra&VDYh?pR3*aBeX`dv0eL*%3GLm1s6d!qY@h|jkenzx@McSBy#S~!T zXbx(&53n%j0I+g8aR6;WRUw% z{6{tE8PoVL@zOJ%Ox6bP5$+kcBtQUJQ}l`1iD!HiT(a*-FY8L>#dj4rL(*V)uT%C{ z3!gc9>o&z_l@bu|Q+sBy7eQww9$Lj2ZcF8sOhoEOg$VQB+;kWSC+wJ5uCFI&&m-r7wl_o9<@|)_S~WI~bZ)3a}2%a1wstBUk$}8${nMhu`OxKy7b~9SA0VuY2W_ zDUvj9SHaHQ97CH%r|ZpYgSM<;R=@bB39hUqXXhC26Ll(&4>AH$Ao43#=m!L7SoALi z@lbcDZSG#Bkim}rt#BO`u#jBCo<1z0t{mGov*3#js(l|u%WzRKm=|niy-Hp|1G)XS zvuod0h6vVFHVJuQ^2E8#mCj0erF-9xb>ubN?Q^8dNTcxSv?t415D~d%&b*tP*4d37 z=@~*IlnS%0RgFYGc+vYAaYm9}lb>hvXo~uAK*!@!n}=%^i7jn=P*X8t$IR6`?=w?Z zT$+=ZWaFlYJzj+5qkEz|QY={_*t`AobZ>{fbrSywA!Ge0rxg9tNxfsTMlZIJ1{qsU zRo89bLP__ePAu+*Zru#Cu)a4Hz@L>}2ZKMH-B{{*b_rDy0cQ^g6kz*K!dG;Uv1T8l z9Jby!yubf?PL2a5Lm@1niQ6^|&BD)l;+$I9W&`ueWICNYLa9&Yb_yg*M}eN*x-cvZ zhm1*%5Hv8mzw+fHzn2;kVmW7%x{O(WWB=++9!^~2`W@zQI(C7P@n9&VM!xYI6UF!N z=5-wA39`|cdomM>riMQyGBIp5-;fuImk3}Gb2`>t); zxIfTy6|vmpr)Y6QeE{__PidXL!=Xv|T(QG%xHzs4e83j#WT=%RuJrIVs(vHC21XDVD)*>r zXtbfPfU|2xt{Fuh49R(M;w!buZ!pbJZ8-N3M5YBSxVwltFwJGR_hhV9{g0#+VR89w zWiZ^hCWkNM^Ce3IC8e8WA`tco#2rN?MFic>6vxhiv#u~I4Qq#vnp%wiHUNnhB7qf{ zO`R|)Hg6k5bE4l{OjF*A@~UL!7SGa3i)r=H+CoJ-Gv$#dNm};Z%#0aZ48dMN`ksH; zzVCX!i2HjloBOBr_MeFHoGkPkvE2VB06ilg{O<0FBYpwUGu%A^khPJ4leLqLlZ}J9 zl^aNp+u6|C$cdfP&>ZOC?&!z?ba8QW0s=rS>s)|r?uIsIHimy)yMD&lKLF?v?kO!h z|C0cO^8`Q`|8uEG3gB$vXd(`}f&ITdn4v%bqyn-`kez@G^nykk$Ubcb32FS(g`;Og z?H33cS(~ug060MBvK-9K&F$=LTtP)5M@tTSQ!{fXJ5HCU)4S%5EEWJ8ptZZDk-I&I z-JdN4A0CB35nuj~!qGFP@m~U=XFQp#76C7mLK<%%FP_)F(mcpkeLdS+iLbf=>8rSo zjXL5o&DaNCLLk4Xd`4(Ts5;4Y!2BA_EB+O`;{4B%C?6)Ms*6-4a79K^Kh9?vU4!?9 zWU}(35Q!|t#G}G|;7SPINbR1zw)D&HZze;U(5Ll-Umcw5t|W7Xqo;;^sa&<_Js)a6 zN1Ci4g{oBmUTql5%=KeXI8z>KXTI{I$vo1kB>ck<>%k1qY;k|JxR$9U>;v$yBT4E1e;YLgfzS)grnlQxOSjqUDt!F|GBbJ{U)C{&YN|vdoQy}5 z+1y72p-@m+CaE7G;fC~>5QE1H=Yi_@fNb14`X;rzgj1HGKYR;t(M4e5US;i8dc1Q@ z`R`17W~+9EgRqg-G87dTlUt*2vG$%jqd8ZzM#r-?z!ii3`S+kiANQ^)Dm1i;fa)13fgj9*riK6xVWyxd46SjNWNu3y;- zPffHP@d&K#4EQXIhwjS_Oh6_dv&*zg$wcJMW$8q(<`5B3G!YpZ`oSqvhEb&V@%6jg zk*k!N)8Qr9exY~iUJOp-F-P=VKH;r5WYg`vZntnImRX%{KHHE9RWEvpEILt(msPrv z*+Qck$zO%jo{|mb8%SZ&;rI>ua@WrEL3)L@DN}y}oU*YWg#9!zEm0BUeJ6)QDuFp& z?XvWS1T|c02nTsM9DC?PnVB4(;&|VNF4RnZTv>GJlD6?zPn?B1BdTz-SZ@fodyo8( z8niVsUw>nEDXTYCJAt2}NAFd-;+gTioVUNqCc5t}ZAfXns>?|jv{vT(^r6g2+16~8 zx98N+{`nG$dS7NiAd7#|$qs_FGIFY255FDjs& zKjcE?LDDNPev6|+PiBmlveP+q>lQzyktfz`J`y1ZwP5SFk2};Hf9i_#Q?2gj@ug(a z<&i&RV3n8dH7BNEz=wDL8Jb{EOzGWWV~L>y&TO;LVeT~NK77{E^c5<@1XF}599_;k z#&9|<9NpYmec89AYj9PstK#_767unWzj(f>_@bE+uP1^Ku25_=2KzO*6-`)kvt71v{ z@5HfVWo*L)toI8aj!>o*{M-DMSu}7VY|K9;wT_s-tLi?{chXnongZ`(aQfYR2Vg!7!__Zu)h!u;jV z;2CM?cXv-1^NYWp;qGbM4rtA4X6XRBjAR0Iv$kMoWp@R#nHmF)IbDtH0IX)9!W5^8 znUx8^!3eLB8gs5P@f|IuwgO@!tDhb9XTBwQ>MhLFiAk#RtY4T5|EzyOBS@>$f!)f~%)p%0)y>V#*ooE5#NOV) z+7#4-+T5Dc7T|0Gv~^%JaA0LMv0`Hf+8X?7gm``Q^ga23{=eT7gJ(?RzXgqdKLBLi zs3pf5M1pB!WW7SPN^j{=R~JgR#^IGS0-(Pl`y4?1WPWAA;TfBhBT^NRSs;U_V_5ki zNxU;!KTm`{ywS5_W`yyJ=8^2#XAas8z}POYv(kGbq45hk^klqwjj)FguNx<{+~jtg zd*&-8XQH$#7ih}9GfYaZ8`?nao4j?|IZ-1JTI;x*zW(~gweV%f(DJ(BREGqb>5*V* z80Y2+^<>dk9og!lmpf;10~|rtyfKy;O5txpx5BTWzvB*{BQ#c`T*7Ke^DTa_&#_`2 zBra8E-gAqg#3c?F_SlmElgw?g8e^PN2(J{FEsW^xPQyQDb4?2-*zf65NR3(akAuaK zH>CA<#EX1`P0ZCZ8}{9!WDCVOY0L2KmnzAhvu|`=oHeg_4VJX^c6Iicp(5rE)d$3O z+^W>TH%QlYbYWw0A_>I5C~~_FD$2%>2 z-_npxWVR&NcS>_AqSq2oLe8gQQ{G%EXzG%sL&;$v7YHB8hME~~ub#zDP}~2-hfz<0 zSEhm3Bm1hHue7~c>|-#t0L$Ai)$bcz{fgW5KD{Kik}5Gb!Dve!k$c&5cT+BxPF^2Y zB+dz0>{rdqeMe6>h0E@y6Wq3B>tEG%m-aC;gwDR+Qq8+ivAW!fIZ%ToD^^{V**h0D zB^QoiEg&&55fSrK$t8a%^vZWLFUk+y&`9CP1y-UR2}muOJC#{5)8y@n9%78vv22hBh*e!s1&aVVzz4gib7Aj)d#TaMIVgOMgb%0@v@-u15Yd zYDJR&DAV%I&q6WM0O4hQPA z=%bUexNe-CZM5EukZ)dBnIl->^%kha+q#NzP^MSfI#nWmc6@h~ryY(mR@l?L`;`Jo zy1-1CZ0-_<>)eoz0I~CATBL4a+AT#uJY0{5U-_N$q-aY0L^V6~{lix!gx+H0GjBPc zDpg;9869s2spH9wXbKFzeI?(xp_$nm?_pU+Rl!bme;h$u#QJ1{O939mN9&WCdwVMJ z=`|8{QMIYH*br+VV$UpKRjtEx?6P7eNoYhC^>ktZzv!KWqraFSmPOX^PjnMxMM$3E8eBs}fNR54K5JR^&Lb z%rJ)!jD5M0AXw6u>>bI{Rgd1;vuMOyN`HJ6AELXEK*Sw?)Y2(s7NkYXJ&CA`E&?@= zj64*A;Z0Lc|45v7E|~o;gxp~3aM|;mw|KJhae#Ypj~3{I7>qNRpUo72;{RE+mon~z zo@BoVQb;Ym+5isQ_vP&+oOLHm(IgmQ-L+}dBY3C%22O1r{QEY_0Jt%mETX`kFR#H` zTf8$)cRuH$b&hi}-lyUpQcfqzn|W@1G+Pb4?5IFgS8JYi2?^3mqV~nrq>}XyUnv{T zPL!0^blLkkGDODy)lJoPZVe1wb$SPf9k(HX69dIf(Vh1)r=qQnRGdYE2;&_h4GfBM zJNJ2#ZNd%jAk?RLhYxwSz5WHXx$Wn7U+KgB+|^ka@gBZ{_y^jHrMyM}H+ z-w3tK$HpG@z5;i@smZiw4o#k0K%z%=+UHdpBt#=#9=u<4hJoU)5C^=*e5oa+Vkk`A zkA89*VPA$?ZqYHex3CadvQ2_$$?4t$_tPQ?1QejAU-aT*Eh92g>jgF6`Hx|&5ia9e zi4rvtMwSiAd3XH_pxdx++P&8h%rS)KadVEgNu9!fwAC(Rfs5Grl*YI**Yr)>X-Me| zE2CVB{zOaNSoy>wQ^)KxkLPh+IF7}sY`P$w(nqp&Q+kz=*m%R>r|zB8c(0@_UP}((^A2cUB>3_Yx297OU^Imu$Q}zlc^!HavrS#a?8Bak@+P-A=u^btjQI7BujZdI2G!>oU-j4? zf|+UBuwb9YdtZ$9+<3ej1RiiVPxi3dunQG;QwoXjC0cgq`nwh|ejz9@BJ`X4Bo=E^ zx(44wy>fwZS{3n`v#V&aa|>{9#M7t9e6+(nR<^rHQ&Z&`_?i}zBgb(Fq&dW3ts~Ek zWPfjA38ol!axxi=OOd(1QPg6@w6iU3;3sieQF;U4N=FTO?hdAOT*wYWe~lAkQwNn!6L_GGY=lwMH2 z&x>#WI6TfOZOS2832iiZhkUE&Q&VgbLTWHvX*q*>?PTVYHahri87CG666VM3R}J^u zk97WP05L1uQVLq?&Am&s7V4`{taB*SeuKucFMP+I^8I|El6XOO5jyD6)MIluv6 z8SO#WKKJY(!1YnVI!CpP_u)%!sG(BX|i{U$(- zn(Y7Vh7OMa2BrzJJdj<04D^CV`(8Br10=KjPgjng5v*T}03!=`M|KuAGh2Hgr>z-> zqoXarz{SSK-N??~#l+OYorBfJlGOzObTJ3G*#Zq6?3|q}{tPs)5Gc@>|FMPsjA{Ir z76H$AGTA8n>|+ijf1Sy|6j?c`#fr$(b;4BLQ z$}Y1HB8v3<_9&U!UM6fw#*m(-D`hH62`LcX#aJ_LAR%Fr&gcNO`vpAcqUDbJBru(1 zQ-~e^9k%FY;m20Ts_zSZCLI^U$0Grgr?X{hQP3hCMo`8Ry!=dvSV9|UNM@)eO;p94 zUsN}%mCuOjZiI+^Mv`es)BUpF7OViZ(F(MnW{d=--;d;r*Q6w4ZpkG>Yp71$RHXPv zlSYhBzamNK9Xm1^z;a?Qg^TdbRix=9R>5YkO~+4Xsux=ab6gDaKr(ioK>nocDR}WMgf8PWslX#t*V(`c<4>X$K0n zf(5uO!aRXp%^gwYNzE{~P-u_X#%>=O4Up{JjT#2hl*H%J;h?(eu;2rjO>axNc&uw@ z%4zhW_1LV`YTR0tSA9a^yU{Bb04U3wt4X$4gcOM#T7JTAZJx$+YQ>k$Ir}Yp>oTv8 zRtuNI9G3JT&1i@{UgaW#EQ%4|g<%^*>T>$7f7GP@MKuw$$B>CmXod{~dwD_##> z1k4n&gd!SPGDWwNo+08`{)PF>jD0MB`_r_GL1%7?>Wf!6jJAsF<2=JSAxHwE7(L|S z9~&s8?k$(M?0f28J_w>o;CaaSGEgeBaRD8zx-3;vO7VD+T zm|#YDg&p9d+B=5O$d^}z&YP%BwnuQAawzdm-0GglvQsZgAQIFXh(q)@Jh=vsKA^Kh zs0Yc6E$9bD)Xe-_T-5|84Kn6)p3L8CKl(2Q5bGDDdPlA&=q}_+iA>1cbjadjC1t1sNg#j4qdSnenG* z7IOu&mIlGteUL}c|6}egqvG1KhF#pxIJeS$&Ubp8@6UUAyZhcf#u|e^d+u3l?ah4FTvI*~7R}9L$|DuGRWuSE zNe`gPo`k5Cs8PD)k1?KRF@@MGHFuuQ1zyrIv}^HMu>iyE|d9AmHoctXs}G>;cV{R z06!{LA_uRLErf0H&G?>_02+UFT@Yq8_oA2q|Wf$G|_>E7t;4*Oqjd2)vbi=)!z z2}Szua1n|cxI;3vW7PeHSS&)d>qf;im^b2x&f%M`!n!%SqA2S=cANqSdtgo4i>AoD zH6aZp-49O4!zXB^DSMTa=V467ZRm+EBk`ex%8N2);~83>>~w{b;Z`^EqH(>>6(3~n zg`?nQ(aK(R+WB&nn90bdoiTXgWtm8{&;v;nV#TyJq^4a>agoQdmH9z;R7H_y`e(R0C#s!FOZ0p2SiB7QWyY& zdvQHQ0hXc=n5z{`*xka)9_(cQS4`mp?)~FP9r?GJ{%;+r|Fcdf7znlpyZzCXj|A=+ zwSw%ovW-qL1-RMbi}0vR`%X42;V8dea@M*{~D!h4bzGyBuu@ zZbQ5ClD6J0;qhn5uzQ@_C#$;96!au|Vh*)+7s@fp*hp2*mSK%BrAR&>U0AMVj;*QY zN~Y!0T~1YXd+`}%gkqe!fJ==Dp(Ewk&{@=q1nX}zTvcOBA>TQMRpQ0XuMTIu6+SMr z+v|Mln+V)_IW_JF7GFB4{ATbEYWbGPfkHrNI^ODuZEf9SY%(YU;)~|SkJMs*wsPDZ zdQ`c6CY=#cGwxWn)?}4~?#6E_76N;AYL)c>PXSL)+giZB=~hrl!qPM}!Z;$?HZ8Ar zFXx{(5*p#JQ;>G3DEIxOA|=T7wSETKyr!S=47qLkYRiy=*P@WXjnlB zbW%|bcjl}w@Q=3L(M=0|o=D-56^RF`8m^!n?R#xDY$K%hseGd4{SHGJ(aVuJYsExP zjQje!_0{0rF}%7$0N-7G;UKef3oeL&>RBhPv0n5gCJcs0i7uGiFnxWvCSIr)z2k!EZ>=lk+oKclO_9j7Z6yPcn> z2fBpbqC%UDL36scpJ>j)V4IvGhw;uNFFvk$&z!7OL6%*!4ylJ0Bh0CWUtUFGrM{nL zVNzvc@+{_uwP)$tyx%G16hQQ#dio~X&i{z0w^iI|?`izND;57-wuxOlO0rG$5ifqR zfXmBXfgr-wiQ#vo@8z%*Wd^InBu$^1IxHa+Wv9;QY`qjO$Xa0>bSIHAPj6%{pyE(e zr{8X|rS$$%MD9*k`iJkmrrFFF@!6ed zjF|EIGuNqB+6hKCSF&tD3ca`wsK{Ju)$aH6of~b>J$27ozL6VNLP_2&jpI)vvOf*D8s2GXxNXuUv9~@iWfB zY(wLv$XK)$8eNHK@z5Nq@iouwpqlPOj@EGLMLS~{CJUKKs%as>n}H#DH2)b5G6$lX z#Re1o6wNS4lDKPcUl@hwS_<Z%Jb{-=h-vL%+38p@{vxK-TspI&Ue4G9bPo!|)EV>gf+Iqf1?0KdKCI+gv8k zwc2o%bx{dl;-;vey`l~At)Bb4QOB6>YZG}3>g?!~!^tnVPDXZx1d}bJu37h9^X8o^ zd^fbgI8G&{-^-S{(RuZq(~rx_wBAjxMR(q(W(M2wjiCEsxGb*MbM^|p-qmh<)e95T zB8U`wRAoPd%Iv76|4v0CTeVe*A=<;@okv*h2wgX3-T1CQhG-vWA9~23;MqZBxZ!f9 zTVk=6kN@t^b{)1%&={%!8x1l!O&+g>^Am@tt$O9p5~%#2bX#un3Q{ddTeN#Lwrid& z0cbceOyvFhsOQtPrMTzkC;DIVBuE6Ca0~QYf62acm?uQ&{h>Vc>TD@zl1NQIupfzv z2B}*+_Q$s_4L!dVr`P{&qI`+wd@RCem;WUQhlI=E{vfy(XPOmn>;&WU*+_cbYX+0# zsOB?no?UHtco&+Qpt(;Y(`uz}O|0jOjHviWOnmrO%s7CF?io+qlvy^Oh&X*BFmZ-@BZ)je zR+vnboNx(o8f5r#O&o--IK)x%eagY;jAzm?_nA5~JUnWvwl5C#DQ6caH_+)@DVP{R7c4~@NL6dt_@e;*o$rU0` zeFJpfL{4wjx?T78%KZehTrn(IGKNKaTtu#ID!02QhO2Q`+j^*EZi%G5vkO$)mBo1?OIloZ6KQDENOb(<04U=oZZ7{IM^E9 z1L?2%`4iwn8a+^tC>6oazm7uiMwJ+du)3VGZbG-$zFINW+43^~G3L%`voqIGZRl7R z1{p5n8w8oePd(&af$n6Gw-``PxqwzN#0%0SpJikYyJm0P47{5dMT|G=IGYH*%ev1Z zNDhOu@r$mYbIr1I8-8mQEkQKhFF~?jsY0xUHUo4?0kWjH`N$_0HN&)_0?pn?QV@uB z=+(N^D?S6GElp@VzUYNKTGbun_tho3Mx4+2fy{9UZvBDmE&XZ5EDHQ-udHb9zPpF((vx~{CVl-9*6$=K-v8G_7LF-`MN5)ALp#Z(UY@wT=s+IR-KjscN zSur^Um5`bq39@dzq@rlM9x`cl2pw7aW?AkTr-QM{nig{MNOTnw80n{#&rD03A7rI0 zw1?YP!usop>2ig~XQ9k2oV85X$Pvs>bK=CDx@U__ zVBE7E*{DLd1b{p;b}_;uvgn?7H!D_Hyq?=qDW(j3QugjXj4~0VefZ4Nsy_abTOd^o ztT0dDWwwx)B zLUqJ=Ha4ESb8&>Ih}phcM-LKHm{t10-NANuOa9MSX#fTFlz<1}_}x$7O3zenQ?ntd!VxAxO~m!>8)?MK)1XwZp+>~lBRd=}kqHN) z28f%nB>A{cpm$OYl)_RcHrmbqZ5FCQIrq(gyFnqN1UZ5JDp4y6v~zZ}bQKh}vvP5^23c8oL0#OvyoJ4-?L+_o3wX8* z$im*n#l;c;b+fgx6M_QW|H(qProT;e-oK{6eWROm=5}a^w zQO72xB(I{9A`;xXM>b}I#G}Y^=yh8e&hQA5o}k|~m`z4#E^zO^Sksqtm5jdVeu0Kl zX&3x~cZnlma8tkE&^>!!rYbp2zF>_B9U$}F@D(w7mB04qEs^AJ?+`VAx%?U>s*-?i|k`L>J2iQ7U{ zD22P9tB{t?n#npE8_y7;Ek|C{y&h22$0_WksZ5As_{o>-N%z&&eRcK_9j46cP)Qzh zQihgO^~7hKl;4Xi*JnhKWJMt*_D&Pk>TPFIUUkc%}RNI&9E9pBbnc zVA2t(6aFr~MSf$kaSO0oHf!q@!P1w!hRF6#AYn(~ev$suq`uxUrOVcoKTa+Rym)=h z@_J&}6S?QlUl;5rVk2C5#Ej66$RD>}CRjZR`|8o7@rI=VfPWBZX%;4*MfG-Ko-kuX z%BmY90MigEWDx!O{mQO@3ca{?*iBC&{)jd|do>RN4_EwK9gt$MEPc|{6uRHAGuMlt6-R}{^f4vAONGRwWP5AI4M zuf@w-QU-1QFhr{pa!|j?R&$c8Usv7@Q(0#hGls)*sbX_I>8S`cXSRYUUdTkn0;9y- z8yOj3$&(U)cO;(d)NZWLBSwuICZ4!4y-{7B2Hfj73#K0(R7T@Ox4;l^JM`&6cv0{(Q1WcPTn(q_dojx*XzWIl(fHdJlPEA<74HjqL9BO z7?Ikvtj%e&*?fMw@QnfW@!2OBriaO>S);J2B|9g@}~z9piu4;>l$rFA~Oos}vzC)-qb zl2F*~r@7EY4?)xPLh6;I=%l-IGz3&HHZSy%q9NJl^E(iHRK&zsv1+SRyu?F?JAsN!PAx5Cq7$2FMdUua+NeV@6TjrA z8g`KbErq+X&~Eq9@>wMIqX(-s*uxc zHZp)NDIQm+-pl)Ztw=8$Foe2G^yDu0ee={>vs2XD6D*Gx@0fq5AR-XJPf^U^qXIr| z;RAl55?rLNto|1g6dzz<{@esxJmB6xEG$qKZejn!@jUR9P)x9^g0;Q1n>9S1=Wld! zYXVo{Pda%3D*RoX#lMJqz`Xoj-0uncQ@aO<`^`?C4x%7I7np?fx96XM|D1Q7-Z z0svl?LLjJzhljhUtDTp%h=q-ayF0uTtt}Y%SNYrr-22a!y_<$BjrB^mDLv{HZ5;n&Itme3isOGy!J?Y8{(*JU) zfVN&Rm^Dz)+RDXC)Z0VQ6=Go}3={DN!;^)*T`i#wws02|(A(P$;OQ-B>0l!ab^4=R z%H728rHUr~>rC?jtNw4o+y^|Faf2w3HQxI`qZ^PxX`<~=j47!d9k`=@#$S9I^kmai zz}n1qRpF;w9LvyQsx{&UqY)zJP3p=o{u(V&aY{P&!qLwwc2Dw)yI+jnm@F#9X>+My zxUTk4FB0JIx1@)q{8C>QsZ7;eaX&9<1niF%`hx=2+8DKygx=G$z-T&^bgI6pNy3C* zfa|9uCcM>6pKo=`=?J|IQEoNTHreEWduBiuW4s>SdtjIxr@uexAvTO+t zc1iE2d1Bi-OpPC1JSR};{?$wsJzDIT-84D=Po-8ktAqkDw8w-*^w22_ZWJNO8Qps}aa zXicT$jMDKt4qg(XXPmmjJ>Yb)P_h@_WEY8Yab0neRp_W3MxK?&8f`dy<}(@lx?^02 z{E|Gd5GZ(%R;W;;e735=;CQ7(6MN+IdbmnOj5)4lh3N@;`NYTbdZKT(%U*u`oqQyDT#O>9`HGL5^=H38@AMsP>_G^usD zSo|lG!roLFiGo#~V;o$Q3yU986m4TGB>jb*AJaCPOmWFHdmfRPQO=xM5SYnu7yRsB zNbAnv1_@;TLSe{okCUL7B=U_g`?P`)vXT3hVTDS zj8@xB%cm@fanMds0dlHMKN8!^dXAqiTkXJl4II5-jy;g9Q>#5k{IZ*KoME^Z*y{hx z#_5Zd-wHQxDmv*f&4h5?7|o%0HIDaau;gVm3aT0B!1LE3jtx5nqJ!=-Xm>ny<6>V6 zMrVVJ&?Vxj3=C0Pvr6ss@oMJP8ya@9reYELC8h9LdQkAL6$W%C9!FzlEs#?bG@?nx zQF3`#c4jvC?K0?Bw=F+?t%vc93V$sh;QC7@-=*EQnZ;5gB&l8pK_(`%Atl!6VjDOw z=(x@C@f%H8)>p4GXcyh~jSF&Roee*7BGuQonIQ|x#1VDgtR~#+?EGa0-4x5?+SLlQ zzOr0Ob>@S#^`!WzxdsTR$gItrmK=N|+cMc)EfL>qOK`Qlfct{@g+f!+K+~Oh34O&F zf5P0!0b2=hHE6k1<@<3hN3Qeq+!2-C;idzP)&w8^)7qG?+t!ca_1OTM-wKtAiZW&q zwAo8HvZD@X?W3B18t!Gv(UMs~@KZXgSxJ2f^lR~Lx0e=;(0$ONW}dU{sTUgbzOz%e zZk3IotWs?P>gVMrUtZAqxFiHyhDt&2zMJ2?!8qMxx8#&xzJ-yZ=-*mspHZrAN^XQB zSIlXW>cZX#x}HLz8Qf*36$R4v;^zQP7pTVN+4ZxUQF~I)v~fuxvzfQ9V;w^%uY0_Q z>NEl7@fP-vrNyji(SLT*F~vy&q+an3ZP*#a7pc}4^5*tca;b1Eecc+D61PjcHOqZ8 zXLXWbV`U>+TX3QGqmz@^O)|h&MZXT)@HVM(PVq%<(&hDIEFBwbqZ#rvY8NfBD$Jkd z;cu+@GQvZy+*Y0>4Z3mi9Iuevx)gGXzrw(vIQ4LDC_BhN^m!s5tm#huZ*SXEuIkrh3r4dp9Tm&UWnCN=w9^Cd3)CLl0 z7@N;3=z^tBTN#$r18n7o@ObZ=lX~!?uyK=_#(M^Um4rxxCTEGbEzeUkNXR%bcV4c);V;7(>zNM!8uJZ9+-tf-;tUB<4NDuF;t@@yhTJI-sd&ta89 z6u3q3s@)dR+0_Vd(8g@Q08hDeOM7tS=5B{V+>5$v`ooBc+6uuut@kAg)!2l>N&2Kq zl4&Fwdk({Lm=d)zwIOM zUw)!jO1vNV+8%`{TrV*@^fkPr}-{;|!5H`Ayr%S`&c!G@QN&ioI?C_VsZ z|FzlP-M7DXe-GjN3{@jB;K*aBjjTgWPVg<1hw6w4jwF0_$ zdReH}%2hh&d-oe2QW^3&v0{P2-|A2e{h-CXol#p6LL^5jo} zAP86Ar*C_oWF43|*2ZZC$Cdl&=bHGh*uMw@iA-lfEzdKxPXdLZq!@8bc8jmuDL!1? z9v}>fmv6M9&i3Gn)y4@VGfWW)G~MNTxZD*3M*}#ezdrLCIU_^pjyZX$M?5^BClm-a z<2{|TL?&n6Pq^?V$5NYkA1^8%ywWc8Zgf2tN78gvlR9pz4byj_r-N&V|MjB&@*rd*w)+dR?rU0dW65<*(SMuPY?lfHvZ3{+tw zV~h(}&?Z~WY$a09n~&0gQwlXl?}g?W`FgUjKL1dLiUgK_2QS2S&6EVU^@9TkJ{SsA zQD*tihUV0shwGWOku@23P@6rs47-rQX_F1>NF`D^Zr4ji=6suXCwe={gQ%Q^MjF<(C44X=sEoRJfa%L zT|Sq?Z3cZzz)KgG@yA2kZm{XJcP)t1(7H7uid*a97?^8pw=`f*WxX8pa|-}9ZJN1y083`8Q^=dk;KzLapCzua4N za{%d7EjLRLNw2@*@BY3LK^FE7Dte0%ZWsJSKl`}9yJ{}DztSs+*F!CLWcqc=>l|Km zkYe8Qy?0&B*xN&U-#UUWC(s9~bq2fcY{s9nQQgYPDCQPu17uZzB`;vF_K}mj3cxvB*avM&G9g{rYig@vsxpSv5b$u&(s8wp%H`Og~i9 zXz>1k+Ri#xj)lw*;u-9z8a~lPtgq8v6sS9Uk}bH*jzW%Pgd3v-7vwJ4&G2IO1W>RD*(?i*>WWiQaSxKZFjEi`cwI{Y07m^Z#BuijCVybS{kG-7AeQHjAAa04j=^N z(FH$WTTEtSMfrqx0##1F((VpQ8GiNn`QiD@pRx7*CgUtBKa&aAYkxQ%+DDHgjxa%& ztN3r@RB=INg4{RjlqH}3efNFHxXLaTutAwAJv|FHF9utEvO^|rHams#6G;BT9(C6A z)-ZW{yXbJ{gdE93X;aAu!w5m{L00@G7qp){|*&?Q^}t= z^#BzR;MW3t(8HP55V-S3}I(YXxi1I(%EDk6v2(<)yz`Pu7 zU=C10PY*YD4^IzUh_jcgl?Bk*)>+US0*2TLLZJY78jZJwgNWc?Nl&%_N2s?m*u%@y z(c4Mb%G&|r2oJz;vjmBFx!AZ1Swdh=0B3tUpdAeA3>Nir5{7yG6YG9q%fhj)`Y+IV zh#LPM(0Ry{8N;y}JXv18dF%XXL5>8<>sHpWj_>=4I?WZJH@WSriaMP-ueP85@)JXI zUc{rKnjNF$$DTg(zcbZ+@oo>o z6+D&O_A8O`rCK;OhqTBV`+Vn@#IJD23g_2YjclbaIZ!oR{bIW~iiysU=N%Xo!O?XB zCJT}j&ZOeBalVMIh6mDhm)hL%MDO%jM6m{m*=4&6ZD))`LmD|>h)C0#YVwy4{;~$x6fPxASlwoCeu~XV z-LS59`jTyKLaS85HVeNXoPn2}{27mV>u$q{w#*PGcS&p_OYO9fbsydAq^z0Bz^0*dl8D|Cy zb~)wWrtrRh$*x(X{ONAxj3zl({u||>rC%Q(qdfh=lTQsV%(D9}79~cGHyET+Hc#sE zsmRX)3&yKv_WIF?^*2kSmHRk?x>d(|%~IS=uDeuZ=z(XutnYY(Os=aY97rseai^b( z?~wIA61l)NvshJ>OymmlN<6JWO{#oR8#c}AF zBe07DxW6nC zIB9BU{T(#?c-UKB)m%ZXx9(Wxqrg?0dneA|b<&nZdF&i@weR8~54{I}L%Brd0x;OUaG5J0T2Er2BP=M5|c*taDo^$9qyuRlfd24(1^gWspy69g^2TLy86Tm^iYxb39O80~d*uatlb3X(i!(Nz`b7Qe2L^KtQrXlT zByJv@AaP})@5O{;(r>Kh#E*VR=219>2Z^XrUecP5#+%h1`f;?!r(3UorAXq&#P%E_ z90wa8KC$HJnta?9|Z%&{|Ds&Wf4`81^8TvWJQv=k6nqfMZxXbW*O(r5?9%mlp1;Q z@Z@CZlBMrj&1qga`jW#&Ymv{7`m-FFrf=yKDCg`sxND?NTHtXk+<&x=e}K{Z!*CJ* zHe4S6!5WI<6u%2#6N9a+9o*nKy4o&|Ht+)2>hSKe|5x0@FD$q+e`3f3Z1LX$6@C%@ zCGH_s@$ce(Pt_mVJw)7ZFN~;&GYsq~Xzd~71P}0Za`6y#_HgxpSlfx%0d4HOJzN}t zB0zZLsI7>%y*tgDYIXG9C|0r&oMjc;pzuQBL9xyG0n@Cr33ZWgZaMMZ#Lns7%Z z7CdXl5I&0F;}?9uFEoO0?fzf>^N~XjnX5nN*$V6`V(aZ73Iw}bIS4}FQM-bIj?T7D zBEo_&R~siGu#KIFgC*DnX7A|b>h2{7wzT@QV{nly{8t~~WBpmp^dV~en;`H3FAHN2 zF3g|NH|-uL$j&gq@fdY*J)o8Rr-gt*b_HOY-&9JDItR-e`^X|tPGW(3t+Rh5Sk<-v_(D|OzOnuY+3CGeb ze3tdL!^Q}3@_cWxdg$ApNbZ*IS2H!bOJO1-DeOK=YU?7CRLxa_YXYYRGZC&C**cid zyjv%}CG#{vK*&W`h;tCp7As(v92^=k@N@I5It`#_O|>XbHck3EY$VrOI_QZa!FSMl z6EKGj%kay>LhtN0m4o<;s4fZTxJqIyb3!SMBN^oZ-+=v)k?I7i6}}@M;rJu&#Vcvb z#rZwMol{UPPy3|Y68o=@BA;49&FEwjY7efL2P;wwOE*uxhFsXHEZWjh%oNhDEm`{61`OGQRGZ*wbslyy?W7S`OelU_AZee_l z*0%rGNoa8eycF3fOYM6=xn8q^$$c5mj!n-#=XlRpU%}|cBl8iufpPQ1Vk;lSuw|;X z^<=C*e)qWZ$X(BDGMM*L7e_s*Fb`K|N}TgoN6D7M{bsG6E@UOj^#q8~guh8UwGo<(~gI>X|AN0)VNfMLfc@I8wZ~;Mit+nRLF11v1e}R(* zR#EMFuja)H(&MO3t=!NNkSF8V9>w)N-cG@ggl%|V`o{(L^LYa+q{&Rb+Fb|KK^?~s z0f!pzn-ZoU0~h$e0$gQlyuBoiK{@ADNondl73a3-|?H zNYQUwC#U9GCpa0mFaf{s;&+$ahhYx{OdEYI`JNI?wrRU0KgEf*gL-AXe;BwVKZAeA zfBBx_nulxe8`&_zDT`hkk@iQbE~qSK-c@Pvk^Kkpy1{7Tmn|m=61cRn&kJ7IWJn5} z6B&XvaZ~H>oO=yqz#yp)q%5X`3t`Qr=dp1N1NSMVUxa-<_qgSs?&Xa=;gKHP^sPru zQDst6{na*T^lc_AAkS~)2hu#H7fPCnj3PdZ1OhKF%K*=Lp5^|{FAA>J&wIxsEgCd+ zq@s3~lXOloWABSraSTU0)y&Q-iRTOljfjT*yPc^$kKTLCB6o?IXCxXAxJ2>5$d;X}hZ0YsIepmQW6Ng1^rF@qENxbU1BqH?L}^dR z^KR)rgR#LYMu*c<<`=G+4IowbmwjmMSZtG2Zm;L^ zjm|KX#dCh@6FAU1mbLO4&%JB(i6x@DshG93WK{99#zkJRVb)KB-a2B~)nnEQRJ@=b z0_7;OP#tJ~yY@cKK-I}&rMZ301RIo{6-VCKEHy;mXSnz!%MK@gtuiB`B1RR%XD<29 z*D*h(S5|#hN{^e1jZ+3YLLQyGC8ce0dCHIj^%a;(PjNjs&;UtIq7n9a9Hv(#bSn24^)Z@#m5=(bbe~@aPs$cIf0;s)qsAW*vF~G1V=-T* zc58%u@bfswmYzw{PAZxn{GhPmh7_LMXBmWjTeNDT#!V)+Y33faujTQ@NQk>~;(pWQpBVfA%s_x&IB-9pF?^K#_6H&$pb*5* zOx6DO6aI&NgO)bVf>z#88!J0EfQPVL;cauJesKA+mDeXaR~_W zn96MFSc;qK+p*(q_Y+XdAuoI%fz`+r-LMmns;mRe+QaW7*06vOXS;s&whi)Il^#b( z>ZP?WufUR-Y@D1mI?(ZknF>4XONpTNLF?VpMmAC^OUTbPPJY%PiIK z#Ud2Zg~OUE_Q`XD*tc6h>m2~AlB0p*7LP=}<*rYnaR8fa0W6y#_=V<^6-ytZwn+S> z47v|?RdTI|{PA6jg(=u;A2}uR*S*xOL5m4uAoG}?a!RJ#)T;Y>g)olcsUd+6xk33% zn=>-bJ@=S(*@<(8<3dR^cT3pxOBTmB5y9`!p0To1;SbnWP*W2Ejtsi%l~w6-e)4|y z>LnHBFLQ7F@<8enPI@@>B(w!6;`?_gcNJ*|SL3 z%Rst|dELEgLaG4!+mKlF$^lqIjE+?4jwV)|@utAcV0f3DAt!B1^u zB%3TjZa2mA4UDiS^B?ry$55^MkYe`fd~P0&HCRBED@oq|F+bDXW@bY5#7OI1VzCal zHNAjy+@oO>QRJX9fcy#NwwklS+b3XDQ^b(e+fg>}5`B#iz0}Gg$~%_^cKFL~b7e@b zC38rqKiQ>kP`|*WKCm8#86Wfl8tRnk{oA!QBy-k}Y%MjB$wrG}ghq-Fa3yHn1xWi5 z>6mUd7(TdK2sbWo2)-%TVe%z-C&QZwaT8IbG*l;7{9;Uz^F9=nC>!Aeqa<=rrh4p^ zW3(wUU({KeHjnrZG38+vQ~48~tdT-F8dmn*m>1z_7vio8_*vTPlgx|>hY_wEsoYHo zX~&!hsng8SRa$EiF|vePQ{omkRl&GJZ9+@z_HBF>pVbPBnmrz!4k;pb?QSBG`Z2c z=q!i%WCK`e$fCjH#UeY#2zf~Xa>(T+W}f~M%j^sxX*vw_qijTEWQV~$sGbnxRh@~o zv%4gdnrgS?;wF^Mx&8~}4K$Rx%U!>g)8{6I1rw){OUFbQw*3}a14m+7EMd_!c$Fhg^alTr&XY)uD>%%icnQOEPOBy+s1%}om(+Z9Xd zCDHjlXr@u!Ii2nptmb%dRq==^vdFL3?yLUNEm0{n%1eYGq^4C%{;5(X@vJDIHY=)=Eob@zJ{#Dt<({ z4ftriW_FN;m}BNOIrUGyP9@pKz#2%Hv~XyMBeS^5@VA8Z{H#;qMUyh^*|;ESiyree zp}S?vDl8?wh`zRB4tMeLNi8$V$6f``qDW0g75J02zW*@B<;6fIpFDa%((x9S`nmFe z!R`&(P1KO$8UNVM+OMSd3Et@nrx!J8PL8h{vc#_@y}$g3@4zxoaO8By3Ms1$E8m}Z zB!BNSZRQ8?#XOpK;B!HP(I2}($kL+OJoth?qD;j?{03(IMe!)VSz>Io^UKZ|M(J~s zlMdZndgLc`lx;LJV=kR2s2{`P8{_ej41DIi#$qni7Baf_JA`AsfS8}~~E7iMg zp<}cp(Y#fG^to$tyF}tB)*ByT?&uxy-nHH-{u&LmH@rftuSWGkzPt(~>JmI~+gmp- zeRYioo{`>C=Gg-&K$9QSj*9!|6fjZxaJ*Q{daH!Wg43=ven)KcNOzeuyMZ@)ip?`X zh7$#e7G?Tpbm5VIKL4T1qelF%@l{9#E=H(%l2^Ly)w7W%OQKC0#{FDJ6VGM==x7HE z&7&p~(GH=%3b)8MI$n@fFGM|SV~Qc(i2Yjr768(Sz0xxT%JswE(P)WM@^MF9xA~`& zizFN9vwo^%ZN?YIQA!2;*Hiaes#m@@V>rF5?eL^}3UE9A($Y_2B+}q8OGWndN5Hd) zcXMd`+9%lV&a5AIb|Y5lnp5?KWZIPi+__6GP9{{a{^1pVfVKap$M72IH?sWyzc0@M z3msikD}T6_^3%Ra+0{$VAVDQ};foU(mu>I|z0LgpQKl3!#ycb;*|L{sDfGX**Yx$Z zxd@_0J_Yc+inYjZhxmAGS!!*4h~`liKC0i%Uv#68aMU<>$96^@kE6xA<(D!k)RM|k zg8DZ~zPg6b;2)Iy5On;TxNF3}!~q|$tbZ5xdwu_8_y>sl?aH>YcXhS)bo8`@Km;xA zA%gbqAYnH!ypFd!JP;6M>FOb5Z{aFzB?z?^6tcCmwek}A%a#3rd;j@j-rK+x#{&K* zUD?POAt?V0nS6kjf9@85@B*C{R$eeqn20+_$lAuvNfcyh0djzXtz5hX;eC&QUUnWL z_VDIMLhu=a0O5xKe?$`8|D)K|7v%r5Td=l)dRtiv+CafjfECQq&C0_?$kNl&&dVNT z2ZmZX+QOXOt!=!Z9wNf-Hjds_79RH2|DN5#L!Qi-h6u)4>h0)2oGS|h1Ex7ve@S%d za&q9%&s)^;2xnjq=k#|JVfQ2u486avTIW=e0$Rs-PFrI{ib!B)WCfovo6$JFC`8A@ z=@T8xvjFJ&nxuT4URP*AThJt!`rcKgX>p&UrdYQu-62c23s9#O*~tCHnLPbbjj*Ka zbNwgelQ8_Y8n$b>k9KRv&AXvups;EImZ}#B0QUc#SK#D->J|9oSTE}A#zaO1WSwae znoFk^b@*D%lN%pB5M$67j3m=}dJqc0yto=FK+OA6@dx}<^o*6W~=5IUP zNYY0a_l}Eq!txVeN{;D|1nQIx+V}R^ooncbbu9L;jCy2-%)O)w1^CjA`yq!`2sv%* zsu)ey+!Ld(7mz$EQVe851TmM-cGu-?zW6uGo_6?d=Z^EhON5g8Ogg`%w~wG7eDF6Lngc5V{yety|^YM0^RNdCo;a$)d&$>R568oh89 zS%$}y-TDIj0-l-OSOE z8yHo&wDcx{ZHI9k$pW-*KIcM^i1BrP{0joklK&zVv(vP_ z{(>KEU)~nLtwwcLecqB__C_0ZBNY!FQ__bxH)hd%RHwo&N$y@8$xEoo8y7z~)nxG` zrkM{bLx3nzB!x@JzOIwyKJaY{gw^-u1l}&KT;ALzOGBlxk`7^YzDiyWudDIsZbbEX zY)t{p2frpeu|C#UTdICVmqm4j)fGJWv&LjD4IH|iJ8zYa=U#vK3G|t?pS0+?4{hCH z{P7X#kc&yfR*RuLyYh#FTT{p^ZFJIbX7H&PX-my^yftPFluqDs&hRb{Qd;=!c|~xPWjDvS4(OI-hhAjHLPZA&`OA=0z|&8aNMh{_@5Ctus6d5Q zM{y1P$RTfvP;$|A_4%<$ z7Yd5Mh6hQSw~>`2fix{e;urlS4X4@BI5PA9hqw0*hjZ)xxb+$#h)%R9QNk#r_g;e_ zIx~73X2xKIM2#9XdW+sg?;)bMAV^3MNp#UW;T`XD@|<(!{pUS?=Q*xx`-9x;-qw9* z)@QH1_II@x%d)7+zt%aeqbM|eoc(=xrsG@noY!r9tUh||CnU(AIl72AJ!+Rt=DNfF zBR?KJEAc^lEk@1zB&G0wX+Ih(W34~J8zy5;a27Rm}*C<&SR}*KT*MpNuDGP) z$a<`+wUa$k&S+O9R-)9?a$6X59W3Wx_K}VPW_QV2Rsto(8 z;t2Mik|TFi&AAS$?1%>i&5u!I5H)E2UyMe<@>$(UAPS!U*RXsIhy7YH+FIK~;4Y3( z4{HG^671saDr^gepbpm|ZJkkFJ5aKKFdI~-4sQ?y>J6~+f&&DhpkG=kSE&Yq=D*aQ zUt=2o%m>bO-WcXM0{I`=w-DUSp8ypAqOa(xcWbLiUN_ORD=}&)Rv%)4`9 zv^l%Y*f6pvxIhXC$kL+O@l+=)DOC*jI~VD>hqjikN~qjV+^56D zegSWft=4Y@+}0k$;X1B^l|HXx5t@_kp?&uji-fJ%njc zdD)57#@3WCz6rq(>zNaaCt;h-0JF!AuM$!$xPwW{NC{7H{P@ycdN_A)ImlqP*LLTe zCU|}E^0KYu$9xbYUHLNunHQ&n7PP7BJ|&ozLBjKr)sQ^4o9slPwFhD?+ekXmikRAL`4pk*;2 z6LWhoKkepiVXG9$dz8J8OI2}fQ&nGwHMyNWFP%-S%Oxo}9dbwa0nvNYlnrR8(HTFZ zvODX|+gs8&kb)&}RMpe)J>vFfUyKo%qN z#~pFer%zp8u6I2wIvePEQ@1%Cn*QYgfkTZQ_XYVVw~o_Vw8u?pP9|M*H)z$~HK$y4 zPDPqvri7W2geA6Iw}-X?t0^p$8l4r6<`eVj(%2~$(mTZz6d z5QY56inhT5+6RDa{&8}231v#R%S%r}%~u(u=WFlda_o*xF}^Idh%vhB1atMH+b|_` z?xsIWQzZT@SvdG$wXB>@FRy+|5&$NAVI^2M+e@w>`NJZgt*x2xBLi%g4r@PRmTAiy z?&FS?^JFA}?Q>~7BU=QvNFP&ieUbDSm0p_vNb{yi-^m5X(@Dm3;)7B3D;tj}51W;1Ig^GtAT^R}sWINdg(3e()zVrN#W9gW7U zIdcv@jzKT1YhTbYo^6dQHAPIS)mqq8Nh#BXTM<2$4?bGL=97AM5HIC$xauyKM{GCs zI`7t-(#d@8P#pbgZj72B+1|Zv+iBL&zDms4vK!i}`nT_E+!izB(QO(`%C)ysdj6R` zp0QI4o@x@kK2dL}QIZ1B_1wN6_F{TK5nCtZD7hbvV0{TRMS4)sttY4C<|)lD@E*u% z_{^TLCQla%_Uw!k*Lb+~WSh6_1`G3}G#`$V-37=kGuh9@Vp%6zHyht46wB$vXe5>E zwsE>L?bW{Bna@(b)7FxEhsEnsb(Aq4sHE~mWu)er=q-LWft%*}3nURpqzjL0()9F_ zT-@C!wkl-8*3mPtV0rN%3ZR-V*8BaByJim=D1kxF^q50x7kKD9c?1Vz@{6&>im1lZ z!p9YrXa;56Psk_p@A%yBOdr^^^eyuelzhOs(%i&9!dNUkbQC_j1kXTn9$T+?zCWCo zX&Fh0sdHz$cPy9bpn%V%lEc8E|9|7DzhA+kGg9Q#r86C~qDH=jEV}qAEcHqHW;sAj zc5QfWHZ@0vo&%AU_A*W3<(GR8FFVYIon}NSVwddc?C!DGOu5JXUcqv4`X{(tC$Rm_ zL4VDDUn98vZtjXseqq%$%$cHjpt(3%30r}!tO2$#gte!WfP=80C)mmg2!g_dkS^Yy z!X92ATM%5x&dJTj)k_HYU->#zi2U2v{s*eg-(1CckN+i9QCvaQEttI()W%xR%?fM- z({ONcfd2=u3{h}ZfEov=q41x2ZfugH{-shPw0{At{?EW#Z z`r8g*{(v7s_>J1Sx96wqsdeU)=(;iQ5dJ7KDQrz)pG5t}jVLoyLq_|JgU3MWIIENfzsueGUJjcPvAGeMrtT4d$G&MA+dgq}O zDJ}%3#eDCe-4T`?W=G@$OOEE}yYG)*6(?cu2vscfQzO1o&=ClRo4H`mJ#6dO(&kJY z(;ZMxNGKAzsh#MtS(Kd<^N6CLYo_$g6gh!gEK_`AxRg|;VJ-ERU%*fw&BpGhy9dSR z)GR2)_3R6+fgPm+j{OXg~2$(n2D}3aFr7=-IuKa~_td_gmrZ zsuch>!vx~*&5G+1KhnN#tuVOA5e!X#FXH=1_hZ=PLk`RCJ2SWR;@ZB~t@IDq9fY!+A9Xo^7hr$g3!lZq#{Lp6&D4dO&+t+69&LXg| z>{adp>gvt)T+&P}xXi^|0|>CPh~qmD{o>_cHE$gB9C4o7Zy;AoCm~P8h~V*7N}TJ( z;co#v1b2CK(Hy+&`uc23YL;3i-3F5jNf2Kn`wj8=?tQho;K7s{R7+^=l+8ylTIY&q z*c`~j?#+oj|H^RgOvEtTqm_62n`CQq6HyVi%~^*$ZRWd{%*roG(FTtjI|C-u-@Zf) z3VnWV0&`19wsa;9?7#*XP)`tqI^6~vydLHD>FSfE?|<*b9;V1Ot;pNLgoy@^!H{cp z^Uu|P-}^Gp=^py0a^HoLr(&5K4{CATlr=`&chPH_OahEQ&6ZA}y-nt!c=DjCjjYG| zCqe7UiwBId8U2Je9eI*HS7Kv)nB3+lG_wlIbUua9 zSE%YZB;o{A0USaF7Ny+PA0tk73uan1B0U*Se0W@jZQ@n-lwqE$IC&g-BHfXiMHh0t zx=(_)v|^(J%jccryU?*o68TtT*S`{WaqoIq50vVdJ$yRlbh9$LQrxWwB95J*xU(+d^JLf5@nF;uR_iwNlctVD~l1R+?4nJAl)AU?Wv*r=ONGDm(zF+-3?>eLaMvZGv9GO z`!RQBukL9CalMvByc4$6BQ^y^gZG9;)EIR=iYo~hejFk5ia*=J1~3mZ@15`y_I$@n zBup8L((WBr{VBcj_G8#`c5!{fs-2o3^#eXxFT3H|)eu_7WiFqXwTRQ*RwGS6CpF+v z`C0Ow=l$0T(#Sn0k+V-0jN;<=^+P-Ca(@_fv@)a~g;ME1H;Fap*|>e1aa|=T9kIR) z4rD6@yH}km4oj&-uap!B@fEC|ia&Ue%xqTJCQ%EtZOnH`vm6f;xwzdY@1u;FF~P=p z8Kq97G5hh~rX!5%#sh4Y4kc#GSE&h95%vHzie&dK*(Q4BfcmLsqAI9X;g|L120W>f zRMK9tAis4Nj!Lc#N(CY99*lyGHKO16woA3QomotXSrl$9J{N>&I6)B%oCRzgF4(V=+A2{oEg1OFEntvubIyNUYc z|9E%y8s7TlX)wS+&;xaN4ORT?CJ1qG0;1}j1))MfVHY6>m?r{7NI;Mf)Z5L?+sz9C z@Bje-c7N>7o(f-iI{dE*r@#Nu{wXf{`*&vkivO|kwrGDr&k}uv;lMNctU)pH+KN$S zwiTt8Xh|tWvtZwvHv^sizF$(pxb(l}XLy%++tB-uoYqR7PifhHZRTTi2GV8+K>Hh6 zU46q|ST-qdSYeTU6@|#yzIfy@#7%W4M9Ac0dO$xdU1mRwkgEN&i|RZs_Ikj;MH0^N zxfJ&5Mvf~MW3o_9`@KDbw+~MroH8b%x8FoR!y=Or(arJmwbBT%r}xPDba1~u+u*#i z{Qb8gJ5tXilW)-WHP_p2+))SZ1l31_;ALqAiy{|!&$q{S<@#>W`)Yp}uU*SK_o)3G zx0Nh2rpbc6?YrR7epj#m)kg{2uFP}V;a~}Q?fuEbG$N2<%-F9Z2u07l<4hO3gZ@F$0xSUcG8iR1u5L9m5gA zQ@ju2dj2>+_Kv~DyB}tPtqY5t|jz{>c2Gy0l&phg3Hv=;1mD(rDQK;hwf*O-s(lt(vYHz9IXUg_ z)t5=-?ur6Q{4#Mk-~AHmTU{D%#6&FS>f9i-L2qU)Hg02YqJl3M6>>DJw|0_UzB7we zn4Ny1+{{s5-*S+gN*=O&3yX^NDZ5>t59BKcJ(sTVv#+A~!o%5Q$MvczOD{`M(nt1m zS@FfHgQDe10uP=UIAnjFv<%zwIM7mBG{al`vF>Pi8O{=+1$61@D|sE?FPR)TL=bhz zS+?85!rFBYrLRP?qnyGKqnjc1%4gd{WUN$#>t-dch_;o1{ZA|Fl^;0A9~R4KB3+#= z0v~4SG#xcRi2oqpEZFHBQF&5Ps}wv+p*EXrf{i=(hD7{iQv{`205?_Q;RY)plc!r^ zm4#T`zLNW8APM&3xvM9~&lz_bpQzM=WGUxa9eieKa$SsXCR6)Nk36B#T*X+L^Zu^j z32=?PW!}>X4eP%JY%bfuoWmHLpXjy~D^UC4wX0yq)F@x~I+7OGp=q#rv&x2@80z?F zremt(?%SyxPJqWH7D;3&9pw;JeqU4;HGziVI}-G+qoAY;oY(SZps_2|L1v)Q#bBJT&^h~5#~X~8G?cz8U5^Tl>NJ%IOo z_U0t}x#Bp^ZxC`SgbFc#K*)6h)$is+|1@_U!uZ|X6>9t!k^X)Jy4shsgL*mu1rbhQ zkiCbuuq(g==;-7o2zC{QI{~bPypSFOPBsog5NmHR0t^y{dN}?mQv|xkwf|wHqrt1l z{XbR$K&6nd;NEV3&=EU|iV&#LjT+>?=xDsC{SZY)|7$wBhM#`XkuAbm7$wW#1Vjm6 z+IT}8p$V*3o7}Px3DDq;md&fUV*1xyJH!8gKlpis!S8=a zkpeA;v*kX5*`y%0!-`4ya2==!aa&8oVnAK*F|g<}xiqAJccOH?AF4V@pLUPv+{f1V zny5uMIXw90`{-~j!#?rOr~xwNUafsK^3xMX%k)6MR}F9%zof_S2@=rRWEa{>%PgO~ zB0t;p4(6qpeYe*&NXe$}XvwT_gz(9!9q}5;N!De;-{3x~00aFfYC6_0sM=;8z^nEl zCHmG4v0*0MHA0nBukkoUx7+!pkDRh@LV^vSNiKA!TD}J12R_Mif6#<8%y>scXMo$X z6gx{hMr>6^%#-s`aF_QRd?);_`p+SxbUvir4w)nV{av5JJ8TTk@8BnR-qb&PgTa_m z@MOw)ekRuB+sphwpwPXAVs-2@OT@$!#gx_jnPlJ1Te#6kEl6Ip(wWCC`Jt1;@TRiD z70Cs4wup=Z_zlS}n|JK&=ExpV-H|Wf-`MQ2(*;S4TR;67mD!J$#d2pGUzU5Hg`1Bv zE{j}JLD$r4eMOK7ZYKC$G5LGea-8#YXsUUNYE*nNo&1BiiW1)Rtcqtf?gqB3^Uzez zsHyDAN&1=SCf5ZPiL=r1c!3X3P9T(iw|xs#LV2klr;Xc)uH(JoZ_@N2pMFhLDJPmy zwa0_(0%zXeiYZRq#hpjT5F%U!M9%!Y^hIdVH>|Xn<5QOQiY{Bld4^1*I~OG}F7W#1 ziKs+dtxdn#@z7C=y?)K(Byh6%0z6K| z*IPpSJf-M{kuGa7K6tdmwj59biakY;EE&b!(UrTC7$UmVyiAVoC=PEC(0?5)qU1lN zLL*hvknXhQZEIExn@M%rLTok0*bJ~CUeQDYTDy713a1>i$ZbOfrnrj4r61G1nt+hZ zc~oiMGX549k84n!XOVS^&i;ZfRZ;qmAS*-{Wc=})dE;G(m*ld!gDc1KT`$ihX7&cn z9k+WppBBMibQ>4r24a{u{W@=0=9{+%-KV+rSQZF^w_8p(G^3~5NmtxOQ~sWI$@imL zQGH#|Q%(L^ova%4bu&)b3$(OW64IhRU@ganG`)^lmoJsF%GfJh)`Yp2TEW${36D3i zTvw*Dc6JCWwz_=xDm$5YG5nd*?Io8Vj`<3YP~P8trMR@;6G^SHAS`~y;5dE|)Ga!= zQFh-LlvYy4GCqh$EwDTHNef;-Uym*z}!HX-7kL{tM>ax@g__T>30Cy>Uzt?m*7sUJcckES3b@ z9l+N$H6b%3CY(6=n)e_)p$|p%eA%^MkpJ6QWlAnF+p6!bi&;!#uQrtSJ>~dxZS~W{ z=6BaFr+LwtbkCcPf4%a1Q_&OZEvwcbFYZE)gf%_Y{9Cf2&(;wh+ zoe1~4xq&~;T?a~jH+MxRzp&~Wq3a5(?A^d1FJU2wpc|^J$<^5dE)2H;dja7B-c}Ge zz{B1X26Fbc5%2&(T;09gtx#ts{;U3o>d^VOul)~Jo%Nw6PT>5%+?gY~+L^;coic~O zJfMG|l_d(PDpBJCH8g*r)ktpL$A6*H=^DQJg;sV>Kq$~2jw<~}y24OpmYyI_Td<9z zv#k}-$;}%Gc5p_xx(nO5I-okEqK?YAc?v`RNIacgy}krnf7y_`#x(vRw7SNfnS1dy zV*oO`^heh5FNMvB82j4@$CgB6x)XqTXpdXJN4wVE9S~)5^}>~EVLS0cNeR!{H{4m8 zVfwhz@~%cFuBkj271QLV3r~*`3`?4pUR1kDSF|K z_9l7&b_7N08SVt}E@u(;WWO4}J}{2+ zepm&cv+&jE6-Bd5z7xo?Pd>iaDII)y)J4_qOheD1L;B*PHN#GgwDUYg9CRmVj?|!1 zn0xK6dPSzG-B@O+jz|8=W-40Rt$It|H5$8W^YBOY=vZ(8p_PU9P`CRqXSl`;>@+`Zm**GBW}~yaEiDUZ^i9PJeqOHQkl?9XY(b|amsZC>r*`oM@BLk zDba>~#obC9rtoFBw2gGdLhc#$$mkH?OgvS+eZALKVwE;#H;=rIn zMJdW$`6UG}Na7Z4r|D_tgrJ`#iCEAj-d0wt<=&{H5;$qEJOIP3 z6*yufQtdZ36+{!CL?)(xu-A71ae5L;ZjGewD#KGLvXO^rC!eX?SPAi9Tp7)I;3%^M zUQg--h6HNH%<;qX@z{tNuV_}vQJy-swagGduLcTCJ{2Ti&%SRx_jg*U-m1Y$YE2Ef z)^F)BoI(2^w1APaEuDw=ayuzr7Z}n#$OLC+dfV+}7(pWMYq{bs^)@DV;c#s#r=B)Y zAhe?y5UUWiC4Nrfly_;(7F+2qP2v-Z+H3CCAH&1UYSSj3x_|eQ*b#6~z#J7XjI9z^ zQO{TS%o%Ogo4f-^&y6q0uqnH(pnI|PQnfQOh34UdRtOR2Ygg=$7}D&9#Tkg+`=7TI z_YW=4YlZq?9E0ekO+*{T8VaE~4v)mys1>_ogbfsI373SGz`1DbO1?qv#qwcdpOHlo z4(GBx3r-5o6z{UVbcQPff=d!hZtE7b-(?+J;`;$(41D(tnvS+&fFm#%-ehHM*ELNu z1K4W{oBXD{*_hvl{t@&;Vqfzj4~j|p0!@&C*M|znG?pXD6^9Tns3p|gw}vOi{@kKQ zo;g6!4_=tzd++}QH%e5%=sS5EoB74|q(nFrnmx?-)ZnR_(HM}p_XmPe4 zGUR}yYil8?#`8xn3v&P&i1Fmk@ zv#viu<2upkH*PuW{nOlaAmVp(S2XbpgRT)~t}w^}0klDa++3`j;NH$KsGS=EB_srJ z1)#(wQT5->AU9#CkR!kb>WV5O207TfLR|k_pkxIC!4NR8orfpT!O9Vaw6_HdSP6Q- zyqu82p56d35DvEo30m7)3ju5a-u5tWRCC8a3Y1E(!t)y0U&rvlVtC0&Ek1yyhnPh8|vNvC2W`#aS+zy92Y=~ zkTjOZrAgzc+D7J&1 zsf7MzMsm0a@`+0%oUz?>o|tj>CzqineR|B9GVzbGv;jdEzYp9GQmh+~+H%NX%~lqh zX?Yid&%@t7EmAa+`uR=q{*OJzfN`V7C>Y|)vD0x~pTXmU4JN&6n^@(l=041#-^sO((px7xnx74Iqe!&EA|1j-j2DPFn@hW%*OnR|RDgSYMT5gZymIZs>|fU<~dxHyniF1N#&f_*Yc>!CMS zD(h*`dBe)Ds+;J&l}b1)}yOB0nH^xQQRK+ zQogMV@__ftOZv&re)gCf4u6Jx{@#zOBO!e?Yjm4~yRq8yO<{P-dfpFWXd89rx^lXk z5Q($4m183&mi~n8**k=RjO!&MpdoEDr%R?7o8a!?OGnhZ)9nCPfb^{N({9il9DNSv zZNo(8%Gwb5=rN@#)3^M*U>9?OMBJGMGjWjJPG^pAoMWx&(*{krWK3GP#kg+-4Eez? zyB#l#`R-UQXNMLJ`D8_7?oVxc?hUG#ITyFL@o$o>HlFx%cdDBaJW%kLk4Yr?3ufVMt%Og0!$ zB)cEERW9yN6w|cwNI6}4xR;B*M&^Xov0wmaLbfY>=QA|bTn>WKA<<%ARyh7JSDY^o zW_(67b9?}wsghS0<@mX~9hXjH5G+xXx0piDncS^n-knroo{LUhq6eFG zjv;3+^U3Jw&lI(zB`jqQ_i)#4*{tI4g);4}M}hde;G z*hYH*V~a1v!1HQhcti`1YI$ z;r}uzofCpukfTKIP~S~ZqXach{@uvPX8P-YiI<6Hv$o0krk9^R$D&orHxE zw$`XtE-2v@upr!8*b6EQ7IJj=0C>3z{vp$NmUQ)3#{6a9?i$nhhv@YhcV=F}=MjOa zrhoovIu2GR)wc4h(v&1r$R`xim7mh^?ua7~p5!uDQqF=hZ+vOk67Sty-U#U~JHZsE z%cv`ndZdv`q(;S*Oy2DO-c_oFvgz@B*CUGUTgzdF#;dkuwYlFirrESwwdd{&h{pej z5qSEM?0!e0^`W>l|5HX4L`j=N-i?nUf}c6|T$pMPCi_9<`?(Jri}M<@Gm6P2&c^BI zNI0q-9}0Mja#-8f73?>YVmzN+2M0{CXEGkwDV0eQ9AN3uWEyRaQ4?Xg?lCW6-3d(R z>Riv2Oi$?ivH+O0JY-Xv?;KM(DcseU7=6#9?`Z+c``A$dOJvL&A@0nV?*E+0KcqZc z$nt^h;1jXrWVxrI4BjK-XDdO0oliUn1`5)<*%pMo_uhB3IUh=tLxCDix<3XCbw0bW zh}Au(BYC|vvGzGwgiJ_Gw~L5xrgeX3eZG-uU22$y6F9RU_SOxAIdaZ@o1Or3>7#Ji zGV9BD$`#X7AKB*nV1P+EE$t_>?=~)Sbz^CX=#>4CXswu_?>9(`aFl6DD%g({T!Xf5 zkmZOD&u9>}PJ#C*p~FXIo+!S--KRK1j6&Mdx9Kd;z3&VuMVcQkbUJ*?cyt$yM}bS7ZwN<$^y_O|^~T3| zj+nJ?-?-MEIE;4-xfCKzaicJBX?R>CzDrFoSQ@ZV!3CWLUgmta4lTi~CO5?e^Ko>= z8sIKuFhtY#!1V*u*>L2Irt?B+`G1JCg@4(&c;+~OD=`<#k)^_`}UkG z@@A}G(!dj>cFkJmMrxVTSyJ_M`|`GL{aL=!EQ5+9)`7PJv)N^f7>6pFp0aX zHBiE(EmB2Z6NlLv$$a~*y;k`r4pVYn7rHWVqZiqGy}e%@4@JZh;FlxZ~Z zx$V#lZ)eYlO;uVg+Neh3JrQK#j$_B3_Yl7yr614Z)0@7ZC8D%~(_^?8C*3(tdlYBi z;OSvMTl;C?&m$2$UQvHA(S2w6v%VIUs!nsHyKP}JJAVTMRpW)J8?F-!(A~d7Zez*m z(B$5T>sTH#np^cKg6IDRgMa^UoU5W@%BU*I#v9yM71jm`s_7A|eib}ZswMQ5w3lxq zh&Jktoaovu6`v6qUq(I;^+V*hMGna(8;L}5_*fdAV_h|9yT&K_U%T#}z4((It`p+^ zi790KIR(%){+xee3RfWVi=eJC1vJ!`B8t8fP~#hF08o+vRG4UJ>nN!JSCmx1&VS?r z@JVvoIu}qs`(M{5IeL4#+XLXP9^O_~P9PgApuMoOD-bH|C=7G8hQbgIsFHbrha(s% z;3bGaoh(Gv;{W0tkfSit%1O{g0OAP(+S<7ZAYHtWUd}KZxFZyTs_FJZ{R2<12NVhv zws!%0xH}4a3;u`ZP6$y>B-sATCfYTo@lSEi-**6WAHImreymUO?R7QQ5(zXqwj~;N z%w)Gc$d_z7Eb~Pc{eFMVv+9)R_{;=R`i(DK0h6zLnuv*UDlG&*chb?D_FiBLf#}$T zm|Pou{c@GInsChwtEud&-EAHjWPdVU9S&20E~6W~d+VzcSXh4p*F8-oq4)WLc~rVN z8*A^z)}j#J_z&KUoej&w>Kg1uzEc5H0ezN&^YrFrbhSq{$Wa*{dTJV{qfwQU&Ctx; zVQhIXJ2zi3lF-V`y$pvjU(Rd-b6L!KsME4GU3B+7onajTTBi+{cD9sTDgl8dV?RuW zaJX3KL`=PP_4yB+2?<+FpkIhpiWfT}!>2er(usbA7Z$rviyU=Pc`|dd6v=z-j{|n zn}Af>X&&J4$F=`pd0LoaAi+1;&WgR2`B0a|32%J7J3vH7NT?+C1UIYNtJJ~(8`L84 zEsU!z#K0pl+Gen{ttq2zuQ6k@NJ55IF{0Mglhm4UW5nLQYDy~T^WBck;);07LUX+pO(QZq+n#KdGQ+;H~Ock?%RDs*4{bsIxTO5Ai-pav|ZIMc@roJ zO{U^}>Y@Ko%Lr43Ra{zJ66ooh{c*0F%*yuOu?ctmU8t0%iezPsCp053N{7T110IwB zLNNwPYd$@;lhBFLlYO6v!lcf)F5Z{s8`3{6QUWqtv{-+09+$z7(UzaT0y-e z)MkeXij`f{V=qNr#GOAR?=QYMl`+2K_X$@vQEC8l9XfJKI@rT{X)`SnHz~D4TQsR6 zBc%u&7hqdA^7ZNuvz0I=hs{I^(;Ln0Ww^w==3thj8X1(@39kOwkmM}EwBR|REZ3zm z5Zn5^0WT9x>vHZXl%3e@<_A}j!&lWE8jqLhY{Z0TWV*;+gN;+E z_I`bMs2nJzNZ#`7eI~BI|McO0{W{Wnq?0&DVIqat&HAQ>;=Pr0i{>B65_UU+!B7_S zNIXtYavF`5TD2E+ZkCGKn);!IcuRC0n*s*a!H>A!+>=c4G+G(znwZ~w$Q*>06a!Ss zk!Ib?gd`h!Mj%GGu*)Cm9JVEC&O3v0m#19v~WINbjj zlm3lYTH=Dn5!cfCC9y3-Z$RN!$B`ll6GNRAl?W>en`b#CsXwwap7@}@O-RVfA4FFl%6{}f%nbO?({_^ocJiSyftrv z8KIMknfNqw(uUSfm)*;@{MnhVV)D7nCV8G_D=s}rC+kf}{PacdhuO!&quD;p1T1$y ztWxw}ZsZV8nC6e)CrBdG)d;-BSk-1hidiyLEi5NjSIMtwB2mY0`Q!8Gv%zNVdau*! zlZYU`LGLrS`@r%kx>uYcG4Y#GbZmZ5y29GdPXL_eLt6b3_dvwc#4o_9Q;25sPjM0 z4WV)fxL3{P6uthxxuFvR)CB&^4u3y*{+7%+x$#$Xf8Q&=o4az)e`oji&0Xb&T!6v? z0yZdqfY=K{;i$g0Ac%*Rhdso}TgcHx$PHxWZ0`p1_7(;?+jxM59o#(y|J&RGbd78O zc&=A_p9GNqWp0S%D(6S&W(9>ipkzX=T>p?GAVQ^7TTtV#ZRXHW$VQT!AO7}VfVXS7 z>=(RQ+d>8GP?*U zLmBWK$FI1`IM?ng1H&Vnx!6aN8EKD?W}S&;{l_2syw4A8nqFU@5b`~5yBLkze?$Ha zV?2B@JTT_%W7xBfZTMIUm$n5ndS`(-CAlAu&e6%;LoPy#aj5+tH}!b!z~ozmMMwCF9L~2^U*#ck+|( z;pdIFFHIKND?$kdJTz#~?DR$aJb_(@-mzLzljvBc6!t{%s^-`O&G z?{(kFgM3b0*`PfRO>W*4@Y6;QyCYkrVQ-d2HX}B*>yKh5%1hkPtK%2$Jb1D8 z$;eEavfIIdl6<-C2hYP;^o3`T;Cn(^MGR+-StPeLatRCH$<7bQT720ktUk4KkrxP} zzQ_2s&sHw2uDb@x;2W~`;#3taBA%BXmy4-P_)eA1!-NC*e1{GD<<+J(AgjSB1C!aB zB-0xMN2bhVl1EB93K#4*8!C-3BlBGK65EEh^?9Z6y30L5xD+bzBb?(ltwJ7%Wy?U- zU8u*??&eK<`oT@B!e(6X!Z;~w6-VoZs!SIC>m5k2>^(CX5n_`&lNf}V2*ZmafwvP? zr8lug_9u$PESf^nSQv36>~1Np<_#~Kxk%UKnr3FVwPu*;SxZzXH8>d5ChHAWUI*(*vWxjU8^FBtr7hdtx{JwgXqQO0zXw{htCGCcIgwAyov9gg0o^ zcAh$u-w7FDl23XRS>uB5zwMpK3bAN`*f5}Php7!dbyGDb!rv(pABwjy1fa5=YM+53 zQ}G%xE3moFj${ie;M?r>gb^gmtMeg&)_WCU&(EiwLZ!r|-?NW&G~c5U>s-LZ zOjoWXDGo3VdoG)xtH;UHl%N)08F|EgN=*!(8+r1b1Yt`1WDVxnsVo8Qg-wMy$6=B{)NtR2BNw)P-r2WPmKm4lNN z9AXQ%0(iq9P7Y2ERzh$u)KPkCXQ&;-NyyzA=nS?0Q%lq3?_c{L!a5GT3i*6v7{4N7Oi6JX;GLkPIKK^-BeTYG|0DK=+e z7Xdif$=L;!KywkW7ZUiR&iwevmCFzQk|MjtH2x{d`upz<^DsU(&mph8Qes+!1^sp< zFdD?&qg~qWEcQmO8YY9$I1z{Wz~vi*QFEcT4PJN77pIG~xbcUL>YA!VEow4grs~>A z!38m^qZ1q#90C9`Bj`KgcHB(TmuLB=P6AtzwsbgT&%3RZM{h_g2AX%>@@x&NM~piZ zuM#w@-&0+wVM{8Ilej}WIrpQ>`S6=B;n7gLe}6HniW18LE=flo_gw{qb8_vR3+UlM z2Z_kN3uB?uXL^Ex^i5emOT)XOC^k8atR}TeNSB3++N;iY`SMs}r4}>%EIf9~%t>C& z$Ck&*-W8SkpjaGH$VzLEcp?BQ%150tBB|^gC%Q3ejH#^)NABdZV5KHX`X;pY`F&(# zaM;|wR7{6WMF-WVAvPwgOx8^hRAy|9@sGt9N2sz2!S z;0AU-RBrXB1{{j|0>9bQYpIUSn%+|~&J~~k`U;(Y`x|mog|&fTis*>!K$3QC!HuT7 z?rV0B+;eoIyDgEfUQd-HYqmm_DGHp=qm;+G_775>%hdzYM(P(I8B~CWbB>~v$in7= zM{OON?S)I<8@C%NR{({P8m%jKvVr_TpJka-{nt`sYvw2%s{>aUjER_3YZNKt6(PB3 z9C|7E?l|t27nGKl$uQ?qjJF|$gBk2`ZSRiibUTed8iY!}^72wlcbPr+66>J_fJ&uF zRr@;w6K5WQfftAr`2Hon@TJ2Y=m2}iFhTE4*~RRfN?|*(0$4$|-w$E@XVx+=D|mUe zzep?(u_@QhR6ct}9s-nJsLbcGQmfTc%M05q@m;!HtU085UELxg@iXT86X7l_E~0{p z%>Ga~e`9K_O|(2KmE8>C6pvRw@^eDmG~4*-$1j|;hgtEk7sZFf1yqND+WzS~b)S#2 z2dp6V``wQvOhuoj?H*czN1)#c1<5^#L!+lS<@F^aQqsd%f< zy0m1D=+t=V)kc>{PhXJ|=JdpS(8!N4QYK%bCTJuUq3fCe>2ik)~51gU82B)Ry4aeJ_=v{Fg8KoSI#qBxapJF;M6Qc8U zpkprq^wN81BL~8%*&Lhx9Q~?QZO}=tnUELFUWaIe#VK*t#^MnDn0zvx+wIKH&?zN4 zHP~GgaWd~6Sbq~O?oD>)I#==pZIg*Qk4eC3GA}s`UX%g5IwQYU?Fj#1KHNhREFC{A zSbY4HP!rFo3dSEZ>lsz_Wq)7)1JhW8z_Etm_foyH0*23YZg~NYd~8g(DH4_GjVnZI z^h?mkOk$+=(K&{mY~L-019&^1F!_=ei^%1Uw$OaOBvE?uHhGukM6;m4?)|ag@@}KY z5=IAF1vc8EgXo0fsKP>JWJ)}2yGiXZQ7**qgQ9FdL8K{ubFgmcHVAJ$S zUq%N|Ci_Po9+b%Nc=AWlm! z5O5HpC=oIGldHf8mM^x1tJj7+yR46xsim!q@JYD2#y{$(nw4Ao0_!*MIQILKW3CgE zem58Jr@8Bd$KTCe;l+O`>+c7ftIQJ|Wan;cD_{+`w-@xZLJFdEgkT^Cptm3bV&yH2 zbhGsow1EMw-~t{FNDriyGb)esD@cQ`aqWM&=;Det|BXX;Rxp@@ovY0shweyG5cF3d zLPJAU_4PDQA6$Xa{}_g@;j3SMwzILba^_5rb$k@d`_U15|exG7Nh=8--x<{{>^=rRvJJF*9T9>#wIk<&&3~#QO zB{QWT6R7tcV|hDhVbXuS-MctIcIT4W@13s!cMz3I78}X`y5-t)4}!)J!li`f3JK))Bld(?`j)|0%= zCp6&e91^+rZHbEtPv>4VpsR zx|ed(CzzwQo5>GGS&T=m!lyN8Ug^QsXSQ?6NNdRR7GNQRPS4UiA7{KvQzvUr0oJmx zs@#0%&pLb`1CLDmgNi%i-WI`vc`!J2^cY{n%TX!J>L*NX_5FIBWE9OyaW&D3sLd0S zI5*=o)kWMO+Km_bI%{k!^Gap8`AHJo6bDl5)gJT!PUf zAk)Hr5*F2FNsMx3_hO1on@NZGc=zIf1=*IO?RBt&D|-) zLtb-C9P}%kW#Y{2efaWbXi5Zg?ExWYCx39`r~ikyw+@PHTmE}g!7aF3Ah>}FOMY4ooc*w z#}bQXYGJ?_x`A*&MMA)_GJzB~68KR!DBb||)mn(Cl3$=Pq{yboCF&3^40s>5<}veP z`ly9o%DLiBvfAZS1bq{#2fu2jbey@?S1D6n`ztkIv~L@1uI2I)q4aBGQH$Ywa^~$ zOjBn}yG-o@d-tmDl1M}N9*uP~AG{c>pG-(p9gI;6rAPp#z$aHEqM}$$SkX}a1=`s* z_FDkJmBs0kve6^2ac5-f054;r>+#cDq@dM_;~ms!R#_W08sAq=QUXQzT5#@M7?p5& z3eF8UdjU$sy}XnUBM-OPa!elQNIp{_hnDzn-9(R3-9s&&+y6BCX&Yh^CB(Ci544Tn z>OJ2W%rr{(AUt|gu#4cWN(U~FD`g(f_o9aVSX+YhKo?tjaDT_peO;;umzFy#b@+${ z{iM)ffEFg^E`LBuIn;UnL07-yf`2vF`j@%iA*Wx>{YSv=cg+1{KQOdlpUW2D;%aAa z3GH}kW&-UZ1MLe6)sl1rnSngrJsdotO)IUrxEwjboh@nOT6$JRs&jiJi*{;A-dT?r00Lx8#ACgFx0m zr$2P9ZZCeW`N#h_di;%P{FgZJH||VzhMdsJp1CUT`gN^TQK{V1tk@HGAncj>T>Ud7 z`hARUSEp2$T@jeNS&XJ&Prq;=-pDueobaI1zGq+8PZ?!Op%MM{fYTGiO9gvFoSXUk zLD$nqal?Id@&5P~wK&rZW|VLDhMEkJGG@jJ20grVKl(#p zc(q%xsrijaHmmsY-*S|2@$d2|BS@QbWmF@R&B7f@9PQhdOp#NZhsIWq1_m_0jrwG@ z_>MOgTG1xKwm`=ZDMau}1i1heao2j8z6lP^J?WMZG7vKx>lpd=WD}1&Z+w`1q$SlP zE}1Xx`QSY=J@BL;`C?{Hi1y8ZGALxBi<7Hh-?_&SM#h#hHzLb(YF(?kkH)&NE1d{A z_k~?Npi#^@N-bo%8Pja$!LP%M)>(-5{dxYRw&74tX3!hIo4e=$i!g00kOGR129dO1 zbkDc?loc;R5u=%-P{nrt5yiY?XI^~UqqB7G#uvx6a1aFQvY^CIZ)9cww68;%0j)Hz zc6;t>L5nx^Ar2n=MoafNEVRf*k&Hr{>ApKoA+~7WLUp9{AQ?Rikr@L`ChT`ZXV%yFomRpmGe`ry)QXRiO{n7O*rH`FG zudk%*==7#IE|6kyseN`GI|}W{=DXdYQ7YSU3(X#8({VXL&jd2k)#sh4V|D`N+mV;& zroygtW*_UWSb*C5-pOStAN(PX%Ye_bb_RZ~8ngTQbfxdV7N*)xJ?qDoEmX3HjktqW zg5qgT!r#}N#y_$r5+Pmn@|JjUBk8jD;w5}$s|ZD)JKOPkk^bfLw7eW&wO}PSricb? zyY2kzCn15$=fk$H`kyu9T{dq@(uXT7{0B1}9cXuRe|XDLMu|MJW%+^Cswtr63#*Uw znr>F5PHWF1m&Wk1-L|v`&x2yt~I+hRb>$|yx2$xCyhQh&KaEGq~Lc2G@pKK5- zUmz%BI3_w>HBkss%S-Q@xFI&2)ueV~ zVZ7h5&Pp|wLp$bQj}&jupibuxe)=8P^$YOa!T)8>^f#QyujYPY$e*#Z-!S*{ zNYRoL4DB0ZZsY3g1~CP40zqIW4;NcoOB)MLu)CXwwX3}+$QCN*0D#!LaPxv4fF6Ik za#LOakAoSI+XTSv>S)UYv;YF3o#L$A+@P%}q2V}7dpCd?kB5h)of}l|0qE&yX9YI- z7d~A-{B-3T|LMyA{xtquuKe%cnW_oJ!mvTw>m2`HFb09^V(>6uf^zl_rrr^g3m*WJ zEP}K;c5#gOz7ObiFA;3~=H*xWW<9L%;^XODuy(XWT>7ha_8_J0d0Yh*tc&Gq+`;sQ zr>IPdXch~zM0sNZe0!(IgVRc)avBD2xsKzH@Oh|h6B{k<)@4v}5>@3R`Dr}#=L4^W16iw zU^X+w7o|xf!YZGAe^W1l+ve9Z{j5r@nVVI`EQEdQnO5}26)N?s}bgkA{WNIrJIa3XtS)7T!_yliMpE>=|NspW2Dw`6j6LOapxO*{<<>+gG zdfVl`3W@8}FFvgnKPFze48JueTT|FIG@!48S!j+mPNV2&QBwiWY{V#6Jkq*-@d~c@ zRf{V_`-WTD&O{=1@EI?=(Cc2q@X;t5W&rgR-1Gd+VU3Xs>1h)F!Ap!Sv0jVd^2d!D zf8sVlmzv@7euGv-S`Ay7Z3up{ji))LF*}0Si|X9f7Kmk;fv9qqWdaNaokZIDOGNS; zKyr$3(F|6KV7N|mqAx0^*a)|5NQcC;7X5|eJACa1Dn_!^l7Q(<;X%>O7lqPv+RVzh z;s6gif$8ksW~tet(JO9G010ilQ1-rv1e|t{=sHz$m^lH%L_qeljlLCR17vcpR`%5- zqg~e%#$wEnh_Lqb=TsZQyOd9wCFpLSy}FX==QwqHH}taLZBFa^Q%g91eh=`*o~CdZ z+S=g^{u1q4?(L`L4b*rdoR=5sQxfzO{5Ix*T%}?_=hm^+Or}y-u@n^{17-5A5I#K(o<*c<2f7=HDSQ^6r|@Fr zFSf?*@|4!I(C*%z#cTu#)4izX5G#kQ#t7cP4;=2Bd?(P4GJ+d3F8in_LJIuU%k=vG zqykw}0N^;#Ta*sfk;kkoYcju|ew)B%Ot$ox!2^`BRrE_~N8PAZ>!cy0tUK${HNr#Z znD=HE^7bw3=LfRc)V|(zG_w`2H5<7&?n#r1yB7P*&BE`5J;=PFcmDJnQ>m}H+>DS2 z*LG==`X*MO`ECvpVZ~OsA3@i3{UvG2=|>extk$ngXf@|J%-j*M@+GTMR87tgQot`8Psl)p8W8{KP^aE`Ni@a?Ime6rOk>kZNVbSv*>_Fas*ivcw5 zLQpsINfdiF>=+)xurPTNi|!%8)4=0L|7e-V<>NI5VNbRLpP5@)R`wgf9qsQAXeu8% zJ&qMfv;pZ3V87MeMK%ep;{DS^kPnkyc#;b%aEit=-`{gsL8nJKXCIMwzfV_}S`uer z@7lED!*f2ScZomuCM95&E!Odw<*c>TRW&z*%njo{EDZF=4?T2w2OTreLHFloJ2CD< z0JM1Pe|_iz{`(H<-yZrmuKkyXzCrrwp&M0S-)86K5+6S7p(6R1o%T8>}vMsBd7l-bpHL-`)@(#-@h}}1+vw`KK(Ik%BF)Qv&;Qg zQTJi#g1tKJ81jTd`02y3MjVN%6fdb+yZ5;dc$nO|>lTi>XQm#JS>F_JP+sGH%83l( z$(X!pi$fM4OiZ7PP1-jD>zp6#a&KoIai7m$FjJ5wI^&D5AX;;Gh7G9=*d4t5B>Q8q zFIHqcs-d}k(dWzlE*IbuK9vE3qEcMrF;V_vD2fjS6_daMiO<2sK;C0(n=kiHe76%M^PO>x{a*#~J4=B1`H|LaMdGztG3m&RpQsq1|IyJl&a zPXq$!g-1ts&r_r@m&G4b{qU=8zCv4 z4fxE_3Gy^?I`4kTc?bO1T2C25uE9=^0dWU@RZX|G!m(9!OWTg=g@~{v$`D_PThniT z%cYR;7mLEFuL`N=@0Txi{!)21T;~VNx7-Sr&PDUQ>&aD^sdM{wHzXzTRzQ8qD_%d3{b%{`swQ?)l-}dj-skutNE0hGZ`* zsVBEgi2kTHXbG&Xz<^7-wlZSI>caA?Tt-g1(7@z%s-lkF-cwI(XXQ~X)|?k#^@=rO zQ`er=7K!HPvAJ&l@UNr4gT3EoxaYdy%(gxs%y9_lT`8_8+5ud|VIH`Vy^2X$Dd4Kb zCVZ1C+!{WE1us{UhhUMQ9K;vA%b@;5tvI-+^lb;>rIg#)bd}!~h+)J^Gmt?_G7amU zO)HU!X_9~YcNT=&`uO$kVj7dT{EZRrD0Ac8@zd9Vl zI(Tl9an|$|V|&@k(A%zXQ|t^2E$oz*&r~KfAFlcyNl0f7j(61gB_p{Df34BSd*_n+ zf~%q(?Bh3caM8VcDW8EbUhNWPp*WUdxA{Hhld=%WksOsPsSotR#+w1xo_BGx!= zH(h>hr*}%;LRbeYOr6pGl|QNrR-?M=@?19JB>MyNdT+{q99M7lxWKod=h1I4ebYB6jqB4&z^7g~4RU-NzSLVgjhu4v`nwa^ zNccqY1G`DBeJkhawwAbp7>dK@C|&@1agxE>1KwqZ0+Svd25vCU=BA!pwjLHdrT{arC&0qY-ptIw6aWI*SUKC9@pxK-&D>mV zKz7h1ZFgRCdsDZ+w5q^=|Jpym`89OjD4_o(IHUgrXJj)IkcG2}oQuQ1a^#huauR9K zu@4=B&^-$)bZ3GNm6M2u4s56%d;CvLcIeD7Ge*y&p=o0O^Igl|U%)?iEfzNJ&@_BA z4^K-AZZn`O$im#h(ZrS4(%RI+iOU@VaP+jb97@d zm)}p^WLd6-j5)8KV3yjbl|mGl6ObYb+OZFxCxzbn2?_?B6Gl#^O=f@Kk2SJo)9q?P zR_k;7QE_+5X35+|R8LC0Ta0~FjqeDi57y*ce2zIo*zYaVvq@RSH@*Sds&Fv~hMY7K zzw>*|qu3CBk|Czx*B$tn-`=vqkxsb0PtozJr?k;2O}= zeW;qJGB{i)AVax$P?RzGb*h3XO|~ttL@{bkO{XujkkN^OnN{iXT`(jNhZrGT>;-+o zE@EPY$Wz*L!}|n&K)RzL9wxenzAUQSGdUfWaXqiT$J&@j8NKO^1-_-@Rg_gYsuaeH zd}7y^ud|Z^gUi18CG@zZgtw2`Au_LaMCEe|uFD&^^gX}YL9vWB>U;BTB&UKOztC{( zqk!RhkyotKn8J|np@bsd_9lG%-0a7UF6w={)eH)>-Z5;$=rB{uA`G2Mh8fP2q|NdK`rSQK?ZB3zU=P`1`_q^)uuw@dTNdRy zSDwl3l4{794`tRY3fhGGXuFl}+*#fQvpyQCi{3cKfI+{?ijy>*$?BZZZMEGYojv`N zml^MJBF& za>%9bFBo(QrRN2ixM8Rb^@FVx+cXd!OX06?S|-guTy}yDAk34-VYa|F>7FGVBhUJh zw^e4ac%kKpGc*<}%a9I+1xDO-JIOrf$WNa`g0fvLDEhCQ~W0KccxpY9JzO(H(vY+e;b$KkL%cu{e5 zCmD20$!j+}FyriaSx3BXzQ)S-F6v{uaQ~ijETO&4P0`YyZ5dJaBIwL2H5iHXi7ZTs zT{%a<9$di_qSpx9%v*==pX?k9ftTqdz1l5hlL)iJlDr_dLR`_<9|#;Zt*2u*zU&IM zC3S1dLey*BWS*H#_AzL)le|2U!n}@1L~}o}<*+D``c59w;d4Lay+J8Ub*ZvWqi)=r z(&V@AT*$ZND`I$lE5kThLY}{66;0)L=xMYeu~%%bq+Eqppf$ZjG_G4Qz$OcbsBo6!YAS;SfR7fi$CReji2g}Qs=S1p&IBX^@7}G1G z$O@O^iXj?N>dksTXpH+j1^1RjDj|Y`Rio8`hPrQUM@4^ z6>BQuC=FG7qgKl)|BFUhyb|GE^we~N%>t?~EBg=;8UH8Gs;{4hFW;r&2z-Gl+XJ)! zz%|oJe)1$SD8EK^G@*XvkEqV?c%xs<8U1C>^fx@xujYOt#=m1uf8Wjg48XXUSpdvj zZ6Tgct_~n49y@MZUT6Znt*5P%gM*_97pD{05)9!sv$J({0dreJOX>bfmgRds+$YMAhXAkfoSFvQf#4a8$=VdKbc`iDfr?ay)#l=uG`=lc6^?7sy; zfB()@TgbQjE3YAd80Rpy1DXaLp=F8XP1+vp(lWV;p7~U#;Eu6RS635g|=?#YAME&CQ@+t-@ zU^;e8PVP(*kuOM=>! z5>3XXR);{1NSp7)b_}S56a!f$HUQJ*k|Ha6w-}X~WO_(z;xIdzdOec>h}fuaOIFI6 z`i#@beI+ON-ssWFn1(zLiw|A`gf5Zc@}igLM0BT)Z8l^nsmn^r`+aKug|wS1S)QE> zmv$xdAj-Q{s{ITpUB2AKX_r`5t)4H=O4AfFK!}dj9%h*A9WE8O`{bv5H*&r$c}DV_ z9eZgb!&JvaY@e@}%^Av$z4NL;Xgj2qFkPyZte>h*1mdM@0RHZC&+#iMh}g7>WgdL* zMRNJ~-dacUglu%rUAD@u#f2BEz0z<_8kGtce`tMJw<6-$rCUlO_2l0jJjAKSa{kH+ z1~0yl25>mUv$(n-lMVJnV#%kE@SA|qQaQn`A!*$@dWEF>tznhDrEkkao+B22=)A?F z#2dd{^`G7(1LQ9iaX7W{D$+G4MQ)R$ZtJw6_SKkrKmm34gD` zbI$tULJH`ga&91x!9*W=h`+~yt;A6I#1lpJG$kv}S}Nde8yC~nl(dEdzt>J#Fl^CU zRi2FC>~j^($8U4x)E}(I3hq`j@uO#=H@Yb_`xRwnY2n$Y7x7SVq-s zm{E8~s$P$DCQ&@CN2>&U>`d86o-v0b0S!#qUj@a!;-85(vh%>E3?RVDlj>Yy{(7iw zD`z56$LfA@_q;i=%|)<4wy&LA5(WN?ROb-^6a8~Q>~4itbjht85;N}X4?9I#rMPT_ z6u6hdmQ~-ygNApCbwP0Z%bMF`0`q<~ccr-udqVO%Cq=ygvE2TP41qpxvr^yPov?pqwMVB>F};UU%XuR$Ew>SbQ~v zu>Q?q#LxgUUl2kKonkQup4-uDxcP8v{xrBwqj@Xv_gzy%9_2fxlLv;tg zl7_BIl*SqN)PW~I$*9A!t1O0ueEd7*ku@=Ft}eR1|7H9LZ!FZm5y{or(E(r%t@*U%h03&Wn_76f@&Mf}oxtuMAX9fw z8y-$OZfG{S4Zz9T+0~WH!t_t6^&7mOi+u7Q`U<}>jsFrN{l=ZC`jH{!2>4@L=PR7D zUGsGf7xWI`PQ z)z!U|VYE#T$76dpKJa~)#X|PO#Tf~mYu!exL>KdVRqu9=)?H5nA+I-?5P7y$(w$qo z2Q*b$+(EwWl%{J$**^26%{SKRheAV~qdkJD6+1i9Ha^pcjVKeD1AFY&?}w`CzNX4S0W72HAv~f3RBAOTz{36-Clv(MyAaKR>Vbv%~M^kYAR{M%? zrp~F4DS*NnO%Zc6D#-SBXSRZ_pPAfZ)4M|15M4I4_H{gY)ss}aGVCcg?+sQgYL9T9D`AiTfFf>MTAEn;!&a=2Ql(Df zm0XeBx|*gynlcek-<^lMUVyQLSnKr56(KItb4bUXl2;VNy3b02xc)%8+c$uSsKH&+ELZ~{$?mc*kp9(M&-jW^4DuHc~lVMf}!8!JApnWUE zd@82di`s#5m&fJHL#D25Zy$#dRo)}$z};pX0~`3HvZT45aj$%tDn$37Y`Knn=g`q3 z?6p<}9`6%chgvh47)qnVxShlfX5NQ%T+yD~I})DW90&XzV5qMT^OucCCy- zL20`pbldPoAZ>Idf+WsSjY;B@h|MIv{~#br$*NTGgGK6t$_jaqxiyK+>O_9$UROTqxGRkB?s)M< zXPtocHz4YAx>3GneIn|CH1=@**NbNw{Ub6kRg#i(_WOHX+tT+; zH-@H)o#coH!i7iz-eXFL%eGUcx~-qwiMe<^L0q#X!!FlL!CU3!xo%*fFg^*r6)_R=ilhIA(j`fQD~GaG4xgUq-tSSxa06G5Ytqv>BAC4cTnt zChFqivS~r6mR5}Mp2Oe`D)|EqZ5{_k@xI{LM&m-J#cQY>+Qq}86-(FiCdaS_qUCfM z$vHN&k}JF@4AE#jYN|yRK#g~a)6slt>!%CI``JryVEcT!FgCot(3c6#@dPZ>2zjts zR9u!^>rFo+KNbx+`ljkzUBZ<5x2i?|GzC>V(^bC7r>RA*#uriH4jV_pgQ;l_bKubv zlU?mCYN@*u_pvXsdveM9c8qCLq_pLPD%3{6zHlcOx0REll=kT_oNAyCs*E2f)qK z1gb@D!^;H%SvqpMgLtgXAU4pVF?&yYPa6{(6Ax%cl&QIyE3dh`+rR7jOq@N;O}V%M zrY6pArkp&kT0;~d>1e@aYs=|uX9uwY+PMDNK`>Sn3I@YC zDF5yt_#4ysFM+{t+?gs5tN-bpsHL2dA_T>GE5Dmfer{0JEP|A^cMP{45fgc{>D&f* zLb|xfxGuh|YK_`Um>{OkPlFxqIh7dUD=zGvi8fLGV&DU;9+z-%m|hWooMOQZ$lw~9 z!)~fPuIi3o<*E@Z7ZmUvGk-nq5sR~l76~^C_+=wkfcxrS29sM`_GB@MI> z9?y(-(vwdSeDyQH=7X743XYGK$xn8mf&s=QKg1b{Y&L;PCn23=4(0m4N z!rXVt+TSHSZqFE$sWr5E?fByPWz~nm7G{J`Y3U)=_@ysPcPBh?k1jGhDd1m=-D=q{i66KA3;ZFVbWej4h`&KJ%4943W+7?-6)%qbO) zY?b?ZQ(=A4V|Rv+&qiyyA&g1GTI<2Tk}%XzD+0~nLgUhuM74AefxNO>(VdZQd&mpYLdNz(Z&eObEDQ;bzp!BKxd2l>`l z=p(&Vqr*w#&jS0<8D84zW6OCCDQPHV1@EVZ0>@WwrKZx7Hhc7@a`tm70B1@cJq z500*tsTjo0*eU&7QpI14vx-jKp&*!Lh@`~UWgX$W=7xA2J$txXD&~geGU$Nxfy~qg zw>*tw2ssiawQ{8DjMu+i3)=`RNx^Q-7(bmZ3khd}^`6jBeS`rJ2Q<%ZmdNctjh(`= zQ_0u*cF%ms`|>gtW6!l`jqW0(7A5f`E%shf26W^%ugjDhPE%5wtKzqV3hj(l zgOHYxghuwnQs6iib5IP`{woz+e%>HS=4sD)-)(bzZ1C6BDcR%HEm9a3)MoL^H<^0h zCE5q_1q`^y{P1EYZXZc-?BRSqJ%<}Of5KZoK+l$FnuB<5r|&%Ic7$*a?~+0>h^YJo ze`|Kt!sIJ2eyN3LK&>cLwj#KfhK-T6>J*V&mnUhjC?VV|VY#@CXpf0p^mEw@UCH2= zMqhj*#*8KN%y=fGzD|ZFJA~ zRn}Myr#ZH6GZ*pgpkw`fta?-}(}4HrXA3a|bN_+h8Bz_|%A zFp>n@z0C;qwVH#0PQi=iFQJswI;a*XL<}g{JR=x3vqkAnRD05buR0r8B#ZhOFoPxS znR{h0-Sfavz&hG>p&BlH&>Jnr77WtRzMQo1_!%j2i|lc;%(I}-p3k;QS)y~9UcJLj z5s$%|X-23jGcjg&vHTxZM6E`|y!^*ll{hlKyk~P*pIySM*O~$zmU>9*C#<0hfNJH} zWGk%uuFalNTL-{L9T^{)srj!r{)k#-?8d~mwSO6Fud^5W?y?)WY#QSc$!d8b-Q@IW zA_LV=85wa@B}Bje*530Kz=8L~DR;r_wSM?mi6C`WXWn=8$WKB5^y7#$@+Jn>#x2*_ zhLR=Q9xusPsV>VW6CC)}f%uVi&5#h){4t95xl5%VXhx+0&k$?kfAqs~PbEOg*vg6} zHRHoDef*(aEOI|S1SKydUD=N}jmr$L*wa(Ob|?7mI|0G!UQLx5`+%P1tcp$E9tnHh2W5ohS*KC(lG`0C zfaCkTX!}16{V+O~{KvBR$NeAO`wLZgCR8A|qbGq?vnAd;37%%&o=ik#-3b=KBU^xO zS_WWt4R(`*m++aG&?eB}P4z1^qy!it7}MY2v44g1?y`PD<<66TL!||`i?sciv2t03{8=+@w9dWH~=}_q2(s_ zU^i1YYiL(`S6dq=I|mnTE@x{~XNU{H2@J7zhBm-*_%k>0YVPN1`~SzW{BKO-zqGad zjXP7#A~VSM;m_-T=PWR@7P9SMcr(t|BrY?G3YWY7IBYLE%K7Ph4g=D<@uKAod|HqM zrcHBrf%799EN^)%@}8)*%BF2_?j|a?f3PQmVL5 zr;0POb1ImlmlTAz&+E$Y2nEquEK78Ic3Q;5c~Ysq%gbU0?WfkK>moDzOHl4ou5+i0 zEKL-?Dd%S*;;IgOyO+|og6=!n^&PqC#qgYhM@qL__J{286!{%o^}#L7>SGnV2dL61x9lA)PrXk)Dl{8&1r(&U?@9nB?Iwrq>0Y{nM= zv&KY?t{}R6RzIG>)MS(yyW_UF`&dZySJrOKj@fxiD2bySdA1%&JA48Wrc71~`~(_!Vn~71fSD!3e1Ie7bnwqnmNR8!H zjsjak4(B4ImH43*+aX6q!q4|hS1Mp^M`Hs_P@9Grvt$@OQ)r&SH`1)9^@+#$r@{+! zGhCeYxkgw9o)Q9bo-0-PaYMe?M4IV}qQuGHl^-k6OrN&*WfmK6f0fYjY__}yeuvQP zZI}B9?bxXC`$+X|jP4GG+h2vB31%pm-zrf@n%3FSjm@gH44$KV9Zj_mpCBk5X2$noz@O)O&Zw51UfZsYyRf1BrYsF6Jyl zg@-ujGU1brEagau_AOVOuZUZW<`Vw+;X`RtwH2?ozN21u{3v+B`}wnzM7YD+Cy$O= zy_N$$715mRYVTI3Ow?8%XJovT4GJ{FiZSr>1e5*sSg?#*gScC7Td+uaoay|29QLy> z!oI<9zzG!;+0^h}B@L@wfPcVq8^#YBdT|e*=Z89f#e}UGfn+E(Kbf_RUeqz>2UGGu z+vQ=rcHlxa@gdVOOy<4FJ|h-Op($QEZChFbY~K^R7u}JqVmlf^7InVctnohtuE^a| zFgtdg>v~arfFGSK%|)n%{g7i0iZ`A59eE843gW*M42&A8Z6f<@F~RBhJa@(+Lb^m! zC1hmqnLC47;1Cs}YR?rGb*VwbXabcGC}(=jCeH1Px3w25jJyV%WArHx)2auL>c8JuN?K`RjnR&gBJ%uIqU34{>RA5Z56j?`8sUva_*Iriz&A~wCj|InGFPJ?QG|4 z#%=5LZ;_JUx%LliAN}dD|Hmis(9Tj%-K@muce7C$OB;R0{wq0Giys5 zJ6<5j#MJ5!C78SaYu}ZQ_3ypW?@Z&rLq)%HXQ~VI8rCS+!`>8cYWpXm$|eIYD4JcA zScVld8DxhyZ{$+W4}DO6)b?mUNvD4`se*U4o_VpHqo+Yc>M&F7d@0XE5RXosxN2C; zij9+t+3pr#*2SyESvfLw#Rt-9(uswN+j6pDN_4&p&sN(KnU0amoWA6)8j9~9 z*vges_N3<5>71|-MDIKlko&fX*0)(n97(M8=PP_J7h)Z*wE8k^Zx|*2dO~k;YWTeUI?du{aY~KICFdDdX zS5|1fx!4Ln9_?orK~Uv-ZC#OEuu1%d#bqN(z=2!{&8#JA8=jM`tl~Hqbl?z_7|})! zHc5$igZmi*dt>tmuNT-L5dD7fgO9j0R+TLsmLoy>EWYc>NS_hR)U9UwZOw>$=5-_e zoVAzL6rjf&r#cKKe179-NIcxbC!k;XBWO#9vT3o9?c)v5X6GOrV+QUB~Poo{GPO zf6@f%<65^N{^I;uPMa^yFFl?O9rspm;%!T{1=l0jdl$Y(ZLbEAkito3f`FnXZLs^U ztqfRB9a&wQp!IcrN_KP(i{KVvhr4?21AtJkB#9_YM$>y@K_%c#=eh!AY4Z!A1NW}# z+a^JhM8EgG6-CQlcVqATW52WXl>rZ>mE-3xr(06ink<;AvrnfcU$Imp7W*OWt9RG7 zUQP>SmC`rLZPX}5jLLWp>BqHDmTe({Qyv3^Rr{FR6R(*@GRm6OKD-zI>^0FTw1$}}f6^7- zUzAK?dEx2Cy1^j8-i6sl5?f8GITJfI`n9>{V76}C@Y&dxVQ%jSsbkH3JbjJggW0Lr zF+Qun7CwqbwS4K=g1zSokf#GX{rCeItu)_~16oyK0$*aqRCj@117@;?>nJH>>@D7A ziN_zueug$c8P`-oH_y>!M5YMCuTehIhXRny}nLQ?ZW?$m_AN+x+~zU=sY<>*)}}yjc*(r4J%Vrki=!_ zQc_JkmRCcmeViACYSI36;s;h#)rS>zR)spPICkF3*IKkRCA3}<2*wO^c*onsN;B@8 zV9oc%FF5^6B+H9So^R4QXt$Z`N5B(>c;a5u%z+1xsH#`*I4OymCkn@36pe@CT}ulM zwz=^Iyp&Jjxp}6B5-w(o`10)==j?Y%z|XY~1eP4vJj7J{RL0RNDb_EaM$qsFgVfX6 z@TCHCFL;A(GlTtyK*4=q1-0#!^f~hT^ZB}@{V0iDr_Zo7g2_6UB{;V>v*(qwlDt22 zf{@*{JDMw!Q)P1A$-3so8N9}IK1(yscM#ht%dU5TfzxYhm8N2u178;k?R}F2rZ225 zt{q;_;kH*ZUTzu&e<0hJl8d{#|Aeq#-2CmkTJd#zf~47d+KyfGi|>mB%(k$mUFnMN zw+WAma(BO2EsRi6E>eU`M@uoBwb$3Wpc~=MF>+Kd?3i3H!EHUK$~L@BPTSD%1T&|- zIdQf`9Y-mnlp>Uz?m-2&rDVG}qqzq3;lGIdr2}c$Y17u2V;IU_mh18VD{fJ2W3^5CTMvL3N+5A`!iMKXWGbQ<7^H(^k4sLigmRC za5{oPoFI^!gQuB`sfi;ez|_;;)XWj$;Ob&-YGPvI>g4QcVFL~1S-S#k{zFa2jK>k^ z>J065&%+${dJRk+*} zg+6V>U$H$i&c8p6{}#pm{X0{AL$25PC`z)!xO#*TCf~03MW$z6ItNh;6@A#`>$EHd zWi0#4mdkM>=f#t|E+0h5fJtey-wVnGdn0vRhb~gV-f}HIEc0*qQ|U+xkN!~$#x+@6 z3)tOMZw1JhKJuG?=C`6%4C|3)l7-{uG0_1ex((K_*=4*xs~2FeTHw$~NQFaIJ9Bx; zq3nW=&Pl*jJAojhMNrOvhIvlEl6#!WQEkS0QT&!u5|NZ~tdO&|1_yJ(`4!K_=}cr( zw8d7ebro0XMwP&cPjJyPDY4(8irrvO6&2{g_ZxTIVp$CM{7jE)F4n81EThpzTo;+T zd4cj0#*1-<7vqLh2lrEnV>>=OCZZ|fChZ;ui>w*9qwa16VZxM5n+HU*v~CkmLJ=`h z`*>gcE7!$HOnKYucJX_Y;Yu?Sy2|vgz_P*_+Ys`8!rRdjpmEtN_;LIvdlg|meDG5- zFWg5Q3yhPaJaKP+2tP2cn~g^8i%E=mx3+}MYM(piZq49&KfJ}&F~Lys$8U&B-SwPs zxK64c20SoNJ1RqC1k|>cOAlQL#-(!xtG&jx7taY;MxJ^rtdJYFffe5Eg}o(nsx}qN zVXoplWID%osZ}fDn~Cw1bV`nJpKXWiozZ8<7MPSv0B-3#8p4SUs49*0nIY=ul)1aU zQ7H;j1Iz5{9YW8z4ESQ-R%Hh-ryw!}xcxuOy=73G+17vyB)A0#9$bPuO@g}w4er)B zjeFy+!6mpm3GNmwKycUK1a}Ayw{vFZ%+&n2br0V;Q@5*j6@T9K?q0i#_3WkIoN#49 zl;Z6;eoU2T#~fb$J<$v`!8c%+H9n#cD--yR_7@5Quu#*48w(1&M@kyJ@dw?_deS%~vDf86fM zG6raB!Nu64)EBCPeZLs$y2R0*HE_~Sn+Bx*ES8ZAdclbxRSJXosECit^#+yL$AZLw ze%rn6j6c^!)!_!mMsthbF0l~6^mUwcpKFQ}YSMhcEs0!uJD8n)HeGE;KnMC~afBZS z;oANQc0@w7ps|+(vP_P`H?A31h*xEYichJIfVIktBN}X6<@}RXE%dU(Z48o(Rawxn!A!Kl(tQmyRxcsXh z@d=jo@8S+2U+3RU@}Jwdzl-~&o&SS4D9DEv;;5U2tk;l|8RtLBX094eKK$>;k^(s$ zZ0!u3?2Wk$ex(j@+H$blT5$rb%?)hK9gN*vog9p;ZA@Iu9e_qo#ugxUGcM4-J)#iL zDI}@Zh7HIC0DvJqRID5w*f?!KY(Rjqjisrpi@6;;0PM`cWoK*%bTu_HGH?a|URnIJ z6QVSvl)qrk6SnbR!kj0(nfw%ylyLq9VO9$R_w)yTD%ZPw@egqy7Pf9`RPN57_cLak zc3?4IiC1f)fg3f2*)sT+s$_Q)lIV25Wz6TE${sFQA{=;s8N&Qzt+nK9Jz$b_SxH`P zq;sc=?@|JAm_U|JPp$UEc!PjD6-ctI&rdVl>}*c1t@_GBo&%e$MUs|I9%K|a9A8#V zTAbB7P4U=XdmMqPg3KF`o&K@TDV#u+UeJl<1ir2#gpTA{{*+epn2Y7@^(vUN*(*n? z>6I)&Ne;6vagJPu{r1IMYtI;}qRMT^)J5*jy~S<1+Dt9~Rd=w>zMbPqge>vtUi>)a z0IT|Eyz%U`z_(a_{)V>pce}{57#P~S*+j!JLDwYWTJk$BXgSN$S0kSQrP@QJ{u>-6 zxUf9(a;Ii-WUf4iG_5wc^@ua&S6w=@(iP-F#0X0$-n>zVKN~L#g@(YhLfvJ?;S;@M z({zW(6VFfN7AZ0qZUnaxM_p>A0T}%{wW_G-BJA)m$-`vhCbtS^$rR+^3Lmpbrp?gv6=^i=Dpq0u+|*8O zwjCL}w@YUHq{aL@&gOpz<@Q~*5PX1dKG7!ku9!4Gp*M;q-vRgsWy}^w%U=rKe(8J0 z7Utuj5?L`EaBUpGC}MSt&^pYoTilRP#wS$G1K83nzrbkJ#Hab`^x<>_86$(3u@MD2 zD!PzuXh}Q$_|aQRMax3sRq?(S6)OYa-h<198v6}*w)KgxeCB%pwYi)HV!Ym|Cp}AK zE;S9~k*{TZaMx}BhH;;kFe+l6sQ@57PV)69wH~VzhT7*#h|Uf>;9Z*2fpZ^J8As z&<A7$Hy9 zwvvu4t7D8^iRF<=qqyNlMc$oL=u%5e7UZ$2b19S9t-&%k*v;{ml!6T8#X} zG_OFu(DJ3PNTu|F=erBttFhl|T#%up>PC|C;56mQhsn)XhXsQkif zQ6~t>%H&!~26nkCeyk%#{d>?tE=t#Y1g9ymKGXtl=a}|ju*^$_W{0hFqIbZT(4%Z+ zEm!Ybe5zNo!Fw|Lsp0uRdzN!+Hde$CE-`tV{G2tVv^v>uU>R(CGfV7HB**UEss?X^ zE$5#J{%)FP6J^RdwJDTJ2T|f}90oYtYfHvj+RUe+P`4}r8qpo`)DatR|7l0bqq22N zob!kM?1r+zcw^CbopTYURSjBkW0J1I$>biCy{iHrI7eYQ;JID0D08ulLa@Uk1>VZI z;uuIsbL_1k{tJ4Z@X!4>==u4}uYzRzzl0u)U(kc{tF5hy!yhee{{|O7J0QFG9WI_? zZT~K==TC7@G5miQ_ZQ#OQ^ftsR|6QiIJntEW<)r0a9FY1I@%kU+c-P0TX9&jJDPzk zUF=*9!G*--LSzZUIg?U7h zdz$;hGW9PK({}9h$~)d!CYhRaSUWw79_QdrUIjVYM{ zd7-IowyMv%OP}SVVMu~s&$9;e^3Ep^=W&zgw_6@)M{oGnpG1=wx65>^hu(kkaM!?$ z2$<0tM}_)m&`-XWrj_+Yo|QrO@2{@u82m``(+)lao&Y^c<76Jw3sPVY_N0v{RT>e8O=ywSw+662@yLZeNfY2B$pJCpsW!e_0hhW8McEqzi3}O&NJr z{m}rd%~FoMr=r772_@$TCL%OtVXYA#2zL?YXR<#?gO!lg$K7j#LOkNW7><=A*F?e6 z*{?BKSUC&gU|ik=cEmpu4IlGy-ib?5eY4MEX*2Bc^`3ye=H(C!NxrgaIZ)_Os$}YJ z@|hUg=y#eb1nj=EyQ6$s%}9%w_81Srj8yk#h8zBKor!3nv{00sdDh zZLY$~Z?OfPOuv+|Ydd^MI}t5=$w@zap-u5Qud4DjveAL0fKDo3P$11^uxf{pBNQgd zw~B}EEd*k8(S!p^=gs!>Gl_%R4EzToYM(Zgbf!8lgij~&lb93L;W#@dyqxQ3#ilZY zl|LG25-yPqnUXCE?X`I~eJdKi8})G6)j)yF12kn85*}z!cT~k*^?JmX7!6$>A@G|d zS;d2n?%sG7l%&Wd+{X%&~MM=68K1Umby|PB7iZ-&{YniC?iq zpf9n%4dxiFo2TYShd~Ctc5kh5DI*Jj#9%rNj}q;F&~HI|TVP@c2j4vgCec=5lm zYIn43Rn<3psf*e1I_I{u_3NH0>CegaumMROa6qGaf_R+bybVlZ*d}?2|B zE9>JCE-InmxX5^1n~T%WGWdI6NmjY4FIE8|MN8h4WxQuHTKBJ`^?R7@Hl4q{)gZsF8M zz|U8skBYVK87Mq&&3o<-Dq-tPcXiY)^37V?`=s6`HM%e*A?l4(-Suqk#S~U95pAtV z;>?U4zv1SG%dfV#MKUzjlz)hS#&7W9h}vEC)(H9bD9L!M(8#Zel)3M8<`mk*b})1z z_nRn5N{jh}TCw5J?cD@z4AF*6`Es=Ii`6WpfUM{n5`ujw+}YFHn_bDSH!Aitn;Qzf z4K=8rSyIHU$?Lv7cVhjy;%%LSjr*g-e(h%uGK@tZDI$|8@lu5EB;A(0 zg!`{}+}NmXI`*QM!R(G7i~wNu-dT1zg19Sxv^%AtFL@!oK)MfKN8(^uzYkt`k!^%& z6J0o{TVxXPl=NqF>oC)+kCou}g|Fyd5wRPq++t~2rHZJdmJJZ}ODpVPOxE6`Rhp(r z$vRXT1d}X$H=Ms9E`!X6gjo-F9j&VM{Vp8m&O~%MwKJtBEX)xV;?_Po(U_;a4CIu} zTYnVS{`tDOlf3GB^4g8czULsWjvQ7g|c@$Q&J5kR@{hRBx?``nZ?Tu=)dTu z^|~nzac-)U^hkjt^}{)l#La}zShZj#kRd6vKU(4DfNWAYndSo}i_c+~nMG*Z5mg_# z8)jL83%er4KxQ+A)RiH4*vpyq&jRb~7eZs-%5B6G%m%Xni zzX29xln%eNkn>81H9}p*L=!DK#+R{5@d2u2R$mI74Lry9VnI279y6xCo<(}{;`JN} zp7Kx1qG0L_e z?`4Q%DPQk*agBiD$GgzMwPVC@D=U9Q6KO4MML9Fgz5D6N(*-?A+WR3NWqH9<+|e@A zUPb#yrt_xIYTIoe&qE4RMQd^*mwa2_Oz0Uj7Q zI^LnJ!2?i^*zL6461DF<&S4js#yM&)Ik$vw%MilyRbIoGVD%Q)V8g!gury93S z?3rpOo(r*L#T&E+AbsJDz8@Tp$@yJ zKGxdFO^!-cqrI%;2WDHrhrxYd?RNfqOQfr_zkvD^=<9Ewe)VhM=^sAICvec;#r?wP z|AV++Z6hu0IUMYrAdQ1K*euyVPNr5MFxbt?#=+Xv(#YJ!kln)hSAf*f)W(?2mfgk8 z!Rp^$MAO4ZBq=K>4#0Zb-f{zp(J4;jauoOSvAEQdSxA&h60}z5j3BFt-<)x3X^$+ zS6W+g3iqh+tH>j($f(d&{%Z?y0L{yFtkZ(gIhq{!sI@Gvckz)_Mi>&|e)UKmJX#{p zgA9vU&xZxGD55*n-7y;f888bP_@^eV6Mnb$=%`CPs`e$Wbr0SC`_l=MC`!cT%wZ(D zG6xz|&s2PsFkrA$seBx&T~2|!B}ZRm1M#pAyBWVRD)4eN`yZFH<)LQ0)0|hnWVa8p zN7!j07TV<@omWiDuT5783v76+yewrwxjP>LJBsaB7T#)}Q%X26A zI%CY|p9+!Uqduzzc5eBE9>w(d>pPLWK4riB`~&;(QPm;jUC~%RdlD~>G-9w@bAmeh z!t#!VIB$+ld6AQM_2iTwBWJmC6nNh&*wWg8w+UFMf&WF|Bi_3HR&IfsJFONd<7`wu z_Pn?-8xeY094D2I*%K_!VuNr2CW5h+17sFQlGGds@Gk%mY=ont`h=wvbi%K=3d#79u8&hGiNUayTs zZddqq#7D1w=6x2hjM=CV-}(?I-3ADVX&q=}N!NviMNHN`6jQbHG(9N&DB-VpmEb^M zt+FH&NZ8bzmncZl`f5=@vNlP(V`b=Dil)o=a6K!xBJmHJv7e;xkAJRe0Ga8{yQ}q) zyO+|uZOk@4;`J>s=H}f^d1dmfOyNlafN?=+SqkejHyJ~-i5;8y6Xpy5&KN{ zSXS7#6mnUYOR}4(7=#A$fQ*BwcBm>_)N3SJ{DiXHxKwqi{x0n1I>(qqtgkI!J>$dC zQ2D!TpgzOs^@DhLkrUg3WN9+C@rAXZXtejO2V{+CNJ0Ccm#oJ{^2fypYf3aS$GqMJ z6K#As8j2AyWcpNA(Wdf!&CrGI_uAfTTfKIqmMH9YCtO@wyTVDDrBLHl{4!4aj+Q~U zs4!zeFw+H>#FOhZDSx|i_?rCeHG4HlLn~wVA`Ew7KGgNDg?0kM-RG|(JG#RrIA1vdh023i zeP?f5R>oj4#Tx=>gnY+MK2T|<u8;-NyZA)Jx_5n7dHkq?!n0wtt#}oWuy!g^q!;QqK4f0q>~2))6_sqs*q=?9L^z zd_F`9nm5}gpb4#aM2VPs|LV#8_j?`mD(6Q2FeMBknKGSUCQU=as5YoM6Dy^Z~EEc626{nUf3 z&yaNwS&$Fxi=)QedlblD|Knu7Cn)O=76MuT9D$ZVQ%IoO%nS^4;V?0@a&okU_^lx$ zj?E#XUff)P)=rQvp4KLA78XtbdmE?US?KOp;sVmozp&5~w((zLp(nhVd>GMQ+Cadu zgr9A#Y1sb^>J}`3)MdRtg_(?~nLtGM95*rv7*pWG2G^+b76i2e~jsW+t)S$`5C`G)RXOu89a^lb>Haym+HWjcWH}tM2mp z&Ew2+(_4?o?A~CqpaDMQ(*!6jw26}M4FcWdW<%={5+jG-fBOIz^Y^fIyp5Quy& zpA|U4MraJs7S-~_BVW{xUN|9h>}vR!&y-8l95Vt7QyZ<&&tyy`jMMMU?=gv;sL1or0?x z{Tfiry78qW*OB3U-}*9KI_kR-aK7xIK_lKsfaTc_w`Z&mB)%c#!nhpiJa8^yve+Cf z{%q{CU9c)m7iEfj&y`fR*e$~Ic^((P=6cWx|RX5s%{vD2f?U&lTfbs`W{njLLx9R`*cHXs>grHCd;k({g$z(V(f7H9FgPbGGK4 zQ=^<|kq`1Vs~j<7Ge+Jj&F@hWgq#en_@KR|OYLVyQ%}pLki+DnUoe;_2op^a@*WQy z1FSMNn~C$~tZ&aoKuzfo#DTOXz`cw

Udem5&HU2;BYqj8IZG&S@>QPR?O1J@q?+ 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 cDsnE808Qn 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%0A&jP5Zf-l2PPWNso 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 aL+E$JBrn)sxp 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�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≪ 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ⅇL?rNN!o$Hm50fmJGY8<; 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 diff --git a/space/spacecore/storage/migrator/verifier.go b/space/spacecore/storage/migrator/verifier.go deleted file mode 100644 index af8ce0a5c..000000000 --- a/space/spacecore/storage/migrator/verifier.go +++ /dev/null @@ -1,224 +0,0 @@ -// nolint:unused -package migrator - -import ( - "bytes" - "context" - "errors" - "fmt" - "slices" - "time" - - anystore "github.com/anyproto/any-store" - "github.com/anyproto/any-store/query" - "github.com/anyproto/any-sync/commonspace/object/tree/objecttree" - "github.com/anyproto/any-sync/commonspace/spacestorage" - oldstorage2 "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" - - "github.com/anyproto/anytype-heart/core/domain" - "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceresolverstore" - "github.com/anyproto/anytype-heart/space/spacecore/oldstorage" - "github.com/anyproto/anytype-heart/space/spacecore/storage" -) - -type verifier struct { - fast bool - oldStorage oldstorage.ClientStorage - newStorage storage.ClientStorage - resolverStore spaceresolverstore.Store -} - -type errorEntry struct { - id string - err error -} - -type verificationReport struct { - spaceId string - - treesCompared int - errors []errorEntry - totalBytesCompared int - - duration time.Duration -} - -func (v *verifier) verify(ctx context.Context) ([]*verificationReport, error) { - allSpaceIds, err := v.oldStorage.AllSpaceIds() - if err != nil { - return nil, fmt.Errorf("list all space ids: %w", err) - } - reports := make([]*verificationReport, 0, len(allSpaceIds)) - for _, spaceId := range allSpaceIds { - report, err := v.verifySpace(ctx, spaceId) - if err != nil { - return nil, fmt.Errorf("verify space: %w", err) - } - report.spaceId = spaceId - reports = append(reports, report) - } - return reports, nil -} - -func (v *verifier) verifySpace(ctx context.Context, spaceId string) (*verificationReport, error) { - oldStore, err := v.oldStorage.WaitSpaceStorage(ctx, spaceId) - if err != nil { - return nil, fmt.Errorf("open old store: %w", err) - } - - newStore, err := v.newStorage.WaitSpaceStorage(ctx, spaceId) - if err != nil { - return nil, fmt.Errorf("open new store: %w", err) - } - - storedIds, err := oldStore.StoredIds() - if err != nil { - return nil, err - } - - newStoreCollection, err := newStore.AnyStore().Collection(ctx, "changes") - if err != nil { - return nil, fmt.Errorf("get new store collection: %w", err) - } - - report := &verificationReport{} - now := time.Now() - for _, treeId := range storedIds { - bytesCompared, err := v.verifyTree(ctx, oldStore, newStore, newStoreCollection, treeId) - if err != nil { - report.errors = append(report.errors, errorEntry{id: treeId, err: err}) - } - report.treesCompared++ - report.totalBytesCompared += bytesCompared - } - report.duration = time.Since(now) - - err = oldStore.Close(ctx) - if err != nil { - return nil, err - } - return report, nil -} - -func (v *verifier) verifyTree(ctx context.Context, oldStore oldstorage2.SpaceStorage, newStore spacestorage.SpaceStorage, newStoreCollection anystore.Collection, treeId string) (int, error) { - newHeadStorage := newStore.HeadStorage() - - entry, err := newHeadStorage.GetEntry(ctx, treeId) - if err != nil { - return 0, fmt.Errorf("get heads entry: %w", err) - } - - oldTreeStorage, err := oldStore.TreeStorage(treeId) - if err != nil { - return 0, fmt.Errorf("open old tree storage: %w", err) - } - oldHeads, err := oldTreeStorage.Heads() - if err != nil { - return 0, fmt.Errorf("open old heads storage: %w", err) - } - if !slices.Equal(oldHeads, entry.Heads) { - return 0, fmt.Errorf("old heads doesn't match tree storage") - } - - err = v.verifySpaceBindings(oldStore, treeId) - if err != nil { - return 0, fmt.Errorf("verify space: %w", err) - } - - newTreeStorage, err := newStore.TreeStorage(ctx, treeId) - if err != nil { - return 0, fmt.Errorf("open new tree storage: %w", err) - } - - var bytesCompared int - if v.fast { - err = v.verifyChangesFast(ctx, oldTreeStorage, newTreeStorage) - if err != nil { - return 0, fmt.Errorf("verify tree fast: %w", err) - } - } else { - bytesCompared, err = v.verifyChangesFull(ctx, newStoreCollection, oldTreeStorage) - if err != nil { - return 0, fmt.Errorf("verify tree fast: %w", err) - } - } - return bytesCompared, nil -} - -func (v *verifier) verifySpaceBindings(oldStore oldstorage2.SpaceStorage, treeId string) error { - gotSpaceId, err := v.resolverStore.GetSpaceId(treeId) - // If it's not found in new store, check that it's not found in old store either - if errors.Is(err, domain.ErrObjectNotFound) { - _, err = v.oldStorage.GetSpaceID(treeId) - if errors.Is(err, domain.ErrObjectNotFound) { - return nil - } - if err == nil { - return fmt.Errorf("binding is not found in new store") - } - return fmt.Errorf("check binding in old store: %w", err) - } else if err != nil { - return fmt.Errorf("resolve space id for object: %w", err) - } - if gotSpaceId != oldStore.Id() { - return fmt.Errorf("resolved spaced id mismatch") - } - return nil -} - -// verifyChangesFast checks only existence of changes -func (v *verifier) verifyChangesFast(ctx context.Context, oldTreeStorage oldstorage2.TreeStorage, newTreeStorage objecttree.Storage) error { - oldChangeIds, err := oldTreeStorage.GetAllChangeIds() - if err != nil { - return fmt.Errorf("get old change ids: %w", err) - } - - if len(oldChangeIds) == 0 { - return fmt.Errorf("old change ids is empty") - } - for _, oldChangeId := range oldChangeIds { - ok, err := newTreeStorage.Has(ctx, oldChangeId) - if err != nil { - return fmt.Errorf("get old change id: %w", err) - } - if !ok { - return fmt.Errorf("old change id doesn't exist") - } - } - return nil -} - -// verifyChangesFull checks byte contents of changes -func (v *verifier) verifyChangesFull(ctx context.Context, newStoreCollection anystore.Collection, oldTreeStorage oldstorage2.TreeStorage) (int, error) { - iterator, ok := oldTreeStorage.(oldstorage2.ChangesIterator) - if !ok { - return 0, fmt.Errorf("old tree storage doesn't implement ChangesIterator") - } - var bytesCompared int - iter, err := newStoreCollection.Find(query.Key{Path: []string{"t"}, Filter: query.NewComp(query.CompOpEq, oldTreeStorage.Id())}).Sort("id").Iter(ctx) - if err != nil { - return 0, fmt.Errorf("new store: changes iterator: %w", err) - } - defer iter.Close() - err = iterator.IterateChanges(func(id string, oldChange []byte) error { - if !iter.Next() { - return fmt.Errorf("new store iterator: no more changes") - } - doc, err := iter.Doc() - if err != nil { - return fmt.Errorf("new store iterator: read doc: %w", err) - } - - newId := doc.Value().GetString("id") - if newId != id { - return fmt.Errorf("new store iterator: id doesn't match") - } - - bytesCompared += len(oldChange) - if !bytes.Equal(oldChange, doc.Value().GetBytes("r")) { - return fmt.Errorf("old tree change doesn't match tree storage") - } - return nil - }) - return bytesCompared, err -} diff --git a/space/spacecore/storage/migratorfinisher/finisher.go b/space/spacecore/storage/migratorfinisher/finisher.go deleted file mode 100644 index 506a26629..000000000 --- a/space/spacecore/storage/migratorfinisher/finisher.go +++ /dev/null @@ -1,96 +0,0 @@ -package migratorfinisher - -import ( - "context" - "fmt" - "os" - "path/filepath" - "strings" - - "github.com/anyproto/any-sync/app" -) - -const ( - migratedName = "space_store_migrated" - objectStoreFolder = "objectstore" - crdtDb = "crdt" -) - -const CName = "space.spacecore.storage.migratorfinisher" - -type finisher struct { - isMigrationDone bool - - newStorePath string - oldPath string -} - -type Service interface { - app.ComponentRunnable - SetMigrationDone() -} - -func New() Service { - return &finisher{} -} - -type pathProvider interface { - GetNewSpaceStorePath() string - GetOldSpaceStorePath() string -} - -func (f *finisher) Init(a *app.App) (err error) { - cfg := a.MustComponent("config").(pathProvider) - f.newStorePath = cfg.GetNewSpaceStorePath() - f.oldPath = cfg.GetOldSpaceStorePath() - return nil -} - -func (f *finisher) Name() (name string) { - return CName -} - -func (f *finisher) Run(ctx context.Context) (err error) { - return nil -} - -func (f *finisher) SetMigrationDone() { - f.isMigrationDone = true -} - -func (f *finisher) Close(ctx context.Context) error { - if !f.isMigrationDone { - return nil - } - err := f.removeCrdtIndexes() - if err != nil { - return nil - } - return f.renameOldStore() -} - -func (f *finisher) renameOldStore() error { - newName := migratedName - newPath := filepath.Join(filepath.Dir(f.oldPath), newName+filepath.Ext(f.oldPath)) - err := os.Rename(f.oldPath, newPath) - if err != nil { - return fmt.Errorf("failed to rename: %w", err) - } - return nil -} - -func (f *finisher) removeCrdtIndexes() error { - rootDir := filepath.Join(filepath.Dir(f.newStorePath), objectStoreFolder) - prefix := crdtDb - return filepath.Walk(rootDir, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - if !info.IsDir() && strings.HasPrefix(info.Name(), prefix) { - if removeErr := os.Remove(path); removeErr != nil { - return removeErr - } - } - return nil - }) -} diff --git a/space/spacecore/storage/mock_storage/mock_ClientStorage.go b/space/spacecore/storage/mock_storage/mock_ClientStorage.go index e0ed64f43..4a06e2850 100644 --- a/space/spacecore/storage/mock_storage/mock_ClientStorage.go +++ b/space/spacecore/storage/mock_storage/mock_ClientStorage.go @@ -82,6 +82,53 @@ func (_c *MockClientStorage_AllSpaceIds_Call) RunAndReturn(run func() ([]string, return _c } +// BindSpaceID provides a mock function with given fields: spaceID, objectID +func (_m *MockClientStorage) BindSpaceID(spaceID string, objectID string) error { + ret := _m.Called(spaceID, objectID) + + if len(ret) == 0 { + panic("no return value specified for BindSpaceID") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, string) error); ok { + r0 = rf(spaceID, objectID) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockClientStorage_BindSpaceID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BindSpaceID' +type MockClientStorage_BindSpaceID_Call struct { + *mock.Call +} + +// BindSpaceID is a helper method to define mock.On call +// - spaceID string +// - objectID string +func (_e *MockClientStorage_Expecter) BindSpaceID(spaceID interface{}, objectID interface{}) *MockClientStorage_BindSpaceID_Call { + return &MockClientStorage_BindSpaceID_Call{Call: _e.mock.On("BindSpaceID", spaceID, objectID)} +} + +func (_c *MockClientStorage_BindSpaceID_Call) Run(run func(spaceID string, objectID string)) *MockClientStorage_BindSpaceID_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(string)) + }) + return _c +} + +func (_c *MockClientStorage_BindSpaceID_Call) Return(err error) *MockClientStorage_BindSpaceID_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockClientStorage_BindSpaceID_Call) RunAndReturn(run func(string, string) error) *MockClientStorage_BindSpaceID_Call { + _c.Call.Return(run) + return _c +} + // Close provides a mock function with given fields: ctx func (_m *MockClientStorage) Close(ctx context.Context) error { ret := _m.Called(ctx) @@ -128,9 +175,9 @@ func (_c *MockClientStorage_Close_Call) RunAndReturn(run func(context.Context) e return _c } -// CreateSpaceStorage provides a mock function with given fields: ctx, payload -func (_m *MockClientStorage) CreateSpaceStorage(ctx context.Context, payload spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { - ret := _m.Called(ctx, payload) +// CreateSpaceStorage provides a mock function with given fields: payload +func (_m *MockClientStorage) CreateSpaceStorage(payload spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { + ret := _m.Called(payload) if len(ret) == 0 { panic("no return value specified for CreateSpaceStorage") @@ -138,19 +185,19 @@ func (_m *MockClientStorage) CreateSpaceStorage(ctx context.Context, payload spa var r0 spacestorage.SpaceStorage var r1 error - if rf, ok := ret.Get(0).(func(context.Context, spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error)); ok { - return rf(ctx, payload) + if rf, ok := ret.Get(0).(func(spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error)); ok { + return rf(payload) } - if rf, ok := ret.Get(0).(func(context.Context, spacestorage.SpaceStorageCreatePayload) spacestorage.SpaceStorage); ok { - r0 = rf(ctx, payload) + if rf, ok := ret.Get(0).(func(spacestorage.SpaceStorageCreatePayload) spacestorage.SpaceStorage); ok { + r0 = rf(payload) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(spacestorage.SpaceStorage) } } - if rf, ok := ret.Get(1).(func(context.Context, spacestorage.SpaceStorageCreatePayload) error); ok { - r1 = rf(ctx, payload) + if rf, ok := ret.Get(1).(func(spacestorage.SpaceStorageCreatePayload) error); ok { + r1 = rf(payload) } else { r1 = ret.Error(1) } @@ -164,15 +211,14 @@ type MockClientStorage_CreateSpaceStorage_Call struct { } // CreateSpaceStorage is a helper method to define mock.On call -// - ctx context.Context // - payload spacestorage.SpaceStorageCreatePayload -func (_e *MockClientStorage_Expecter) CreateSpaceStorage(ctx interface{}, payload interface{}) *MockClientStorage_CreateSpaceStorage_Call { - return &MockClientStorage_CreateSpaceStorage_Call{Call: _e.mock.On("CreateSpaceStorage", ctx, payload)} +func (_e *MockClientStorage_Expecter) CreateSpaceStorage(payload interface{}) *MockClientStorage_CreateSpaceStorage_Call { + return &MockClientStorage_CreateSpaceStorage_Call{Call: _e.mock.On("CreateSpaceStorage", payload)} } -func (_c *MockClientStorage_CreateSpaceStorage_Call) Run(run func(ctx context.Context, payload spacestorage.SpaceStorageCreatePayload)) *MockClientStorage_CreateSpaceStorage_Call { +func (_c *MockClientStorage_CreateSpaceStorage_Call) Run(run func(payload spacestorage.SpaceStorageCreatePayload)) *MockClientStorage_CreateSpaceStorage_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(spacestorage.SpaceStorageCreatePayload)) + run(args[0].(spacestorage.SpaceStorageCreatePayload)) }) return _c } @@ -182,7 +228,7 @@ func (_c *MockClientStorage_CreateSpaceStorage_Call) Return(_a0 spacestorage.Spa return _c } -func (_c *MockClientStorage_CreateSpaceStorage_Call) RunAndReturn(run func(context.Context, spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error)) *MockClientStorage_CreateSpaceStorage_Call { +func (_c *MockClientStorage_CreateSpaceStorage_Call) RunAndReturn(run func(spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error)) *MockClientStorage_CreateSpaceStorage_Call { _c.Call.Return(run) return _c } @@ -234,6 +280,62 @@ func (_c *MockClientStorage_DeleteSpaceStorage_Call) RunAndReturn(run func(conte return _c } +// GetSpaceID provides a mock function with given fields: objectID +func (_m *MockClientStorage) GetSpaceID(objectID string) (string, error) { + ret := _m.Called(objectID) + + if len(ret) == 0 { + panic("no return value specified for GetSpaceID") + } + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(string) (string, error)); ok { + return rf(objectID) + } + if rf, ok := ret.Get(0).(func(string) string); ok { + r0 = rf(objectID) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(string) error); ok { + r1 = rf(objectID) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MockClientStorage_GetSpaceID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSpaceID' +type MockClientStorage_GetSpaceID_Call struct { + *mock.Call +} + +// GetSpaceID is a helper method to define mock.On call +// - objectID string +func (_e *MockClientStorage_Expecter) GetSpaceID(objectID interface{}) *MockClientStorage_GetSpaceID_Call { + return &MockClientStorage_GetSpaceID_Call{Call: _e.mock.On("GetSpaceID", objectID)} +} + +func (_c *MockClientStorage_GetSpaceID_Call) Run(run func(objectID string)) *MockClientStorage_GetSpaceID_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string)) + }) + return _c +} + +func (_c *MockClientStorage_GetSpaceID_Call) Return(spaceID string, err error) *MockClientStorage_GetSpaceID_Call { + _c.Call.Return(spaceID, err) + return _c +} + +func (_c *MockClientStorage_GetSpaceID_Call) RunAndReturn(run func(string) (string, error)) *MockClientStorage_GetSpaceID_Call { + _c.Call.Return(run) + return _c +} + // Init provides a mock function with given fields: a func (_m *MockClientStorage) Init(a *app.App) error { ret := _m.Called(a) @@ -280,6 +382,98 @@ func (_c *MockClientStorage_Init_Call) RunAndReturn(run func(*app.App) error) *M return _c } +// IsSpaceCreated provides a mock function with given fields: id +func (_m *MockClientStorage) IsSpaceCreated(id string) bool { + ret := _m.Called(id) + + if len(ret) == 0 { + panic("no return value specified for IsSpaceCreated") + } + + var r0 bool + if rf, ok := ret.Get(0).(func(string) bool); ok { + r0 = rf(id) + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// MockClientStorage_IsSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsSpaceCreated' +type MockClientStorage_IsSpaceCreated_Call struct { + *mock.Call +} + +// IsSpaceCreated is a helper method to define mock.On call +// - id string +func (_e *MockClientStorage_Expecter) IsSpaceCreated(id interface{}) *MockClientStorage_IsSpaceCreated_Call { + return &MockClientStorage_IsSpaceCreated_Call{Call: _e.mock.On("IsSpaceCreated", id)} +} + +func (_c *MockClientStorage_IsSpaceCreated_Call) Run(run func(id string)) *MockClientStorage_IsSpaceCreated_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string)) + }) + return _c +} + +func (_c *MockClientStorage_IsSpaceCreated_Call) Return(created bool) *MockClientStorage_IsSpaceCreated_Call { + _c.Call.Return(created) + return _c +} + +func (_c *MockClientStorage_IsSpaceCreated_Call) RunAndReturn(run func(string) bool) *MockClientStorage_IsSpaceCreated_Call { + _c.Call.Return(run) + return _c +} + +// MarkSpaceCreated provides a mock function with given fields: id +func (_m *MockClientStorage) MarkSpaceCreated(id string) error { + ret := _m.Called(id) + + if len(ret) == 0 { + panic("no return value specified for MarkSpaceCreated") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string) error); ok { + r0 = rf(id) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockClientStorage_MarkSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MarkSpaceCreated' +type MockClientStorage_MarkSpaceCreated_Call struct { + *mock.Call +} + +// MarkSpaceCreated is a helper method to define mock.On call +// - id string +func (_e *MockClientStorage_Expecter) MarkSpaceCreated(id interface{}) *MockClientStorage_MarkSpaceCreated_Call { + return &MockClientStorage_MarkSpaceCreated_Call{Call: _e.mock.On("MarkSpaceCreated", id)} +} + +func (_c *MockClientStorage_MarkSpaceCreated_Call) Run(run func(id string)) *MockClientStorage_MarkSpaceCreated_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string)) + }) + return _c +} + +func (_c *MockClientStorage_MarkSpaceCreated_Call) Return(err error) *MockClientStorage_MarkSpaceCreated_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockClientStorage_MarkSpaceCreated_Call) RunAndReturn(run func(string) error) *MockClientStorage_MarkSpaceCreated_Call { + _c.Call.Return(run) + return _c +} + // Name provides a mock function with given fields: func (_m *MockClientStorage) Name() string { ret := _m.Called() @@ -417,6 +611,52 @@ func (_c *MockClientStorage_SpaceExists_Call) RunAndReturn(run func(string) bool return _c } +// UnmarkSpaceCreated provides a mock function with given fields: id +func (_m *MockClientStorage) UnmarkSpaceCreated(id string) error { + ret := _m.Called(id) + + if len(ret) == 0 { + panic("no return value specified for UnmarkSpaceCreated") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string) error); ok { + r0 = rf(id) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockClientStorage_UnmarkSpaceCreated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UnmarkSpaceCreated' +type MockClientStorage_UnmarkSpaceCreated_Call struct { + *mock.Call +} + +// UnmarkSpaceCreated is a helper method to define mock.On call +// - id string +func (_e *MockClientStorage_Expecter) UnmarkSpaceCreated(id interface{}) *MockClientStorage_UnmarkSpaceCreated_Call { + return &MockClientStorage_UnmarkSpaceCreated_Call{Call: _e.mock.On("UnmarkSpaceCreated", id)} +} + +func (_c *MockClientStorage_UnmarkSpaceCreated_Call) Run(run func(id string)) *MockClientStorage_UnmarkSpaceCreated_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string)) + }) + return _c +} + +func (_c *MockClientStorage_UnmarkSpaceCreated_Call) Return(err error) *MockClientStorage_UnmarkSpaceCreated_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockClientStorage_UnmarkSpaceCreated_Call) RunAndReturn(run func(string) error) *MockClientStorage_UnmarkSpaceCreated_Call { + _c.Call.Return(run) + return _c +} + // WaitSpaceStorage provides a mock function with given fields: ctx, id func (_m *MockClientStorage) WaitSpaceStorage(ctx context.Context, id string) (spacestorage.SpaceStorage, error) { ret := _m.Called(ctx, id) diff --git a/space/spacecore/storage/sqlitestorage/list.go b/space/spacecore/storage/sqlitestorage/list.go index 0881a713e..4a3ebe1cb 100644 --- a/space/spacecore/storage/sqlitestorage/list.go +++ b/space/spacecore/storage/sqlitestorage/list.go @@ -6,14 +6,12 @@ import ( "errors" "sync" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/anyproto/any-sync/consensus/consensusproto" ) -var ErrUnknownRecord = errors.New("record does not exist") - -func newListStorage(ss *spaceStorage, treeId string) (oldstorage.ListStorage, error) { +func newListStorage(ss *spaceStorage, treeId string) (liststorage.ListStorage, error) { ts := &listStorage{ listId: treeId, spaceStorage: ss, @@ -40,7 +38,7 @@ type listStorage struct { func (t *listStorage) Root() (*consensusproto.RawRecordWithId, error) { tch, err := t.spaceStorage.TreeRoot(t.listId) if err != nil { - return nil, replaceNoRowsErr(err, ErrUnknownRecord) + return nil, replaceNoRowsErr(err, liststorage.ErrUnknownRecord) } return &consensusproto.RawRecordWithId{ Payload: tch.RawChange, @@ -68,7 +66,7 @@ func (t *listStorage) SetHead(headId string) error { func (t *listStorage) GetRawRecord(ctx context.Context, id string) (*consensusproto.RawRecordWithId, error) { tch, err := t.spaceStorage.TreeRoot(id) if err != nil { - return nil, replaceNoRowsErr(err, ErrUnknownRecord) + return nil, replaceNoRowsErr(err, liststorage.ErrUnknownRecord) } return &consensusproto.RawRecordWithId{ Payload: tch.RawChange, diff --git a/space/spacecore/storage/sqlitestorage/list_test.go b/space/spacecore/storage/sqlitestorage/list_test.go index 99adaf9ab..b99d79845 100644 --- a/space/spacecore/storage/sqlitestorage/list_test.go +++ b/space/spacecore/storage/sqlitestorage/list_test.go @@ -3,7 +3,7 @@ package sqlitestorage import ( "testing" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -56,7 +56,7 @@ func TestListStorage_SetHead(t *testing.T) { } -func testList(t *testing.T, store oldstorage.ListStorage, root *consensusproto.RawRecordWithId, head string) { +func testList(t *testing.T, store liststorage.ListStorage, root *consensusproto.RawRecordWithId, head string) { require.Equal(t, store.Id(), root.Id) aclRoot, err := store.Root() diff --git a/space/spacecore/storage/sqlitestorage/service.go b/space/spacecore/storage/sqlitestorage/service.go index 9f88ec5f3..3027629d9 100644 --- a/space/spacecore/storage/sqlitestorage/service.go +++ b/space/spacecore/storage/sqlitestorage/service.go @@ -5,7 +5,6 @@ import ( "database/sql" "errors" "net/url" - "os" "sync" "time" @@ -13,7 +12,6 @@ import ( "github.com/anyproto/any-sync/app/logger" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/globalsign/mgo/bson" "github.com/mattn/go-sqlite3" "go.uber.org/atomic" @@ -32,7 +30,7 @@ var ( ) type configGetter interface { - GetSqliteStorePath() string + GetSpaceStorePath() string GetTempDirPath() string } @@ -53,8 +51,6 @@ type storageService struct { allTreeDelStatus, change, hasTree, - listChanges, - iterateChanges, hasChange, updateTreeHeads, deleteTree, @@ -64,7 +60,6 @@ type storageService struct { spaceIds, spaceIsCreated, upsertBind, - getAllBinds, deleteSpace, deleteTreesBySpace, deleteChangesBySpace, @@ -96,7 +91,7 @@ func New() *storageService { } func (s *storageService) Init(a *app.App) (err error) { - s.dbPath = a.MustComponent("config").(configGetter).GetSqliteStorePath() + s.dbPath = a.MustComponent("config").(configGetter).GetSpaceStorePath() s.dbTempPath = a.MustComponent("config").(configGetter).GetTempDirPath() s.lockedSpaces = map[string]*lockSpace{} if s.checkpointAfterWrite == 0 { @@ -164,7 +159,7 @@ func (s *storageService) Name() (name string) { return spacestorage.CName } -func (s *storageService) WaitSpaceStorage(ctx context.Context, id string) (store oldstorage.SpaceStorage, err error) { +func (s *storageService) WaitSpaceStorage(ctx context.Context, id string) (store spacestorage.SpaceStorage, err error) { var ls *lockSpace ls, err = s.checkLock(id, func() error { store, err = newSpaceStorage(s, id) @@ -282,7 +277,7 @@ func (s *storageService) unlockSpaceStorage(id string) { } } -func (s *storageService) CreateSpaceStorage(payload spacestorage.SpaceStorageCreatePayload) (ss oldstorage.SpaceStorage, err error) { +func (s *storageService) CreateSpaceStorage(payload spacestorage.SpaceStorageCreatePayload) (ss spacestorage.SpaceStorage, err error) { _, err = s.checkLock(payload.SpaceHeaderWithId.Id, func() error { ss, err = createSpaceStorage(s, payload) return err @@ -296,25 +291,6 @@ func (s *storageService) GetSpaceID(objectID string) (spaceID string, err error) return } -func (s *storageService) GetBoundObjectIds(spaceId string) ([]string, error) { - rows, err := s.stmt.getAllBinds.Query(spaceId) - if err != nil { - return nil, err - } - defer func() { - err = errors.Join(rows.Close()) - }() - var ids []string - for rows.Next() { - var id string - if err = rows.Scan(&id); err != nil { - return nil, err - } - ids = append(ids, id) - } - return ids, nil -} - func (s *storageService) BindSpaceID(spaceID, objectID string) (err error) { _, err = s.stmt.upsertBind.Exec(objectID, spaceID, spaceID) return @@ -376,15 +352,6 @@ func (s *storageService) checkpoint() (err error) { return err } -func (s *storageService) EstimateSize() (uint64, error) { - stat, err := os.Stat(s.dbPath) - if err != nil { - return 0, err - } - // nolint: gosec - return uint64(stat.Size()), nil -} - func (s *storageService) Close(ctx context.Context) (err error) { if s.ctxCancel != nil { s.ctxCancel() diff --git a/space/spacecore/storage/sqlitestorage/service_test.go b/space/spacecore/storage/sqlitestorage/service_test.go index a3cf4093b..279b79aa0 100644 --- a/space/spacecore/storage/sqlitestorage/service_test.go +++ b/space/spacecore/storage/sqlitestorage/service_test.go @@ -28,34 +28,6 @@ func TestStorageService_BindSpaceID(t *testing.T) { assert.Equal(t, "spaceId2", spaceId) } -func TestStorageService_GetBoundObjectIds(t *testing.T) { - t.Run("no bindings", func(t *testing.T) { - fx := newFixture(t) - defer fx.finish(t) - - spaceId := "spaceId" - - ids, err := fx.GetBoundObjectIds(spaceId) - require.NoError(t, err) - - assert.Empty(t, ids) - }) - - t.Run("ok", func(t *testing.T) { - fx := newFixture(t) - defer fx.finish(t) - - spaceId := "spaceId" - require.NoError(t, fx.BindSpaceID(spaceId, "objectId1")) - require.NoError(t, fx.BindSpaceID(spaceId, "objectId2")) - - ids, err := fx.GetBoundObjectIds(spaceId) - require.NoError(t, err) - - assert.ElementsMatch(t, []string{"objectId1", "objectId2"}, ids) - }) -} - func TestStorageService_DeleteSpaceStorage(t *testing.T) { fx := newFixture(t) defer fx.finish(t) @@ -220,7 +192,7 @@ type testConfig struct { tmpDir string } -func (t *testConfig) GetSqliteStorePath() string { +func (t *testConfig) GetSpaceStorePath() string { return filepath.Join(t.tmpDir, "spaceStore.db") } func (t *testConfig) GetTempDirPath() string { diff --git a/space/spacecore/storage/sqlitestorage/space.go b/space/spacecore/storage/sqlitestorage/space.go index 20af7caf5..596d6f774 100644 --- a/space/spacecore/storage/sqlitestorage/space.go +++ b/space/spacecore/storage/sqlitestorage/space.go @@ -7,10 +7,10 @@ import ( "sync" "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/anyproto/any-sync/commonspace/spacesyncproto" _ "github.com/mattn/go-sqlite3" ) @@ -34,12 +34,12 @@ type spaceStorage struct { isDeleted bool - aclStorage oldstorage.ListStorage + aclStorage liststorage.ListStorage header *spacesyncproto.RawSpaceHeaderWithId } -func newSpaceStorage(s *storageService, spaceId string) (oldstorage.SpaceStorage, error) { +func newSpaceStorage(s *storageService, spaceId string) (spacestorage.SpaceStorage, error) { ss := &spaceStorage{ spaceId: spaceId, service: s, @@ -64,7 +64,7 @@ func newSpaceStorage(s *storageService, spaceId string) (oldstorage.SpaceStorage return ss, nil } -func createSpaceStorage(s *storageService, payload spacestorage.SpaceStorageCreatePayload) (oldstorage.SpaceStorage, error) { +func createSpaceStorage(s *storageService, payload spacestorage.SpaceStorageCreatePayload) (spacestorage.SpaceStorage, error) { tx, err := s.writeDb.Begin() if err != nil { return nil, err @@ -194,7 +194,7 @@ func (s *spaceStorage) TreeDeletedStatus(id string) (status string, err error) { } func (s *spaceStorage) AllDeletedTreeIds() (ids []string, err error) { - rows, err := s.service.stmt.allTreeDelStatus.Query(s.spaceId, oldstorage.TreeDeletedStatusDeleted) + rows, err := s.service.stmt.allTreeDelStatus.Query(s.spaceId, spacestorage.TreeDeletedStatusDeleted) if err != nil { if errors.Is(err, sql.ErrNoRows) { return nil, nil @@ -218,7 +218,7 @@ func (s *spaceStorage) SpaceSettingsId() string { return s.spaceSettingsId } -func (s *spaceStorage) AclStorage() (oldstorage.ListStorage, error) { +func (s *spaceStorage) AclStorage() (liststorage.ListStorage, error) { return s.aclStorage, nil } @@ -258,7 +258,7 @@ func (s *spaceStorage) TreeRoot(id string) (*treechangeproto.RawTreeChangeWithId }, nil } -func (s *spaceStorage) TreeStorage(id string) (oldstorage.TreeStorage, error) { +func (s *spaceStorage) TreeStorage(id string) (treestorage.TreeStorage, error) { return newTreeStorage(s, id) } @@ -271,7 +271,7 @@ func (s *spaceStorage) HasTree(id string) (bool, error) { return res > 0, nil } -func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (oldstorage.TreeStorage, error) { +func (s *spaceStorage) CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error) { return createTreeStorage(s, payload) } diff --git a/space/spacecore/storage/sqlitestorage/space_test.go b/space/spacecore/storage/sqlitestorage/space_test.go index 0441701d9..b72470d59 100644 --- a/space/spacecore/storage/sqlitestorage/space_test.go +++ b/space/spacecore/storage/sqlitestorage/space_test.go @@ -6,7 +6,6 @@ import ( "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/anyproto/any-sync/commonspace/spacesyncproto" "github.com/anyproto/any-sync/consensus/consensusproto" "github.com/stretchr/testify/assert" @@ -91,7 +90,7 @@ func TestSpaceStorage_NewAndCreateTree(t *testing.T) { treeIds, err := store.StoredIds() require.NoError(t, err) - assert.Equal(t, []string{payload.SpaceSettingsWithId.Id}, treeIds) + assert.Equal(t, []string{payload.SpaceSettingsWithId.Id, otherStore.Id()}, treeIds) deletedIds, err := store.(*spaceStorage).AllDeletedTreeIds() require.NoError(t, err) @@ -107,11 +106,11 @@ func TestSpaceStorage_AllDeletedTreeIds(t *testing.T) { store, err := createSpaceStorage(fx.storageService, payload) require.NoError(t, err) - err = store.SetTreeDeletedStatus("id1", oldstorage.TreeDeletedStatusDeleted) + err = store.SetTreeDeletedStatus("id1", spacestorage.TreeDeletedStatusDeleted) require.NoError(t, err) - err = store.SetTreeDeletedStatus("id2", oldstorage.TreeDeletedStatusQueued) + err = store.SetTreeDeletedStatus("id2", spacestorage.TreeDeletedStatusQueued) require.NoError(t, err) - err = store.SetTreeDeletedStatus("id3", oldstorage.TreeDeletedStatusDeleted) + err = store.SetTreeDeletedStatus("id3", spacestorage.TreeDeletedStatusDeleted) require.NoError(t, err) deletedIds, err := store.(*spaceStorage).AllDeletedTreeIds() @@ -128,12 +127,12 @@ func TestSpaceStorage_SetTreeDeletedStatus(t *testing.T) { store, err := createSpaceStorage(fx.storageService, payload) require.NoError(t, err) - err = store.SetTreeDeletedStatus("treeId", oldstorage.TreeDeletedStatusDeleted) + err = store.SetTreeDeletedStatus("treeId", spacestorage.TreeDeletedStatusDeleted) require.NoError(t, err) status, err := store.TreeDeletedStatus("treeId") require.NoError(t, err) - require.Equal(t, oldstorage.TreeDeletedStatusDeleted, status) + require.Equal(t, spacestorage.TreeDeletedStatusDeleted, status) _, err = store.TreeStorage("treeId") require.ErrorIs(t, err, treestorage.ErrUnknownTreeId) @@ -203,7 +202,7 @@ func TestSpaceStorage_ReadSpaceHash(t *testing.T) { require.NoError(t, ss.WriteSpaceHash("hash")) - var checkHashes = func(ss oldstorage.SpaceStorage) { + var checkHashes = func(ss spacestorage.SpaceStorage) { hash, err = ss.ReadSpaceHash() require.NoError(t, err) assert.Equal(t, "hash", hash) @@ -239,7 +238,7 @@ func spaceTestPayload() spacestorage.SpaceStorageCreatePayload { } } -func testSpace(t *testing.T, store oldstorage.SpaceStorage, payload spacestorage.SpaceStorageCreatePayload) { +func testSpace(t *testing.T, store spacestorage.SpaceStorage, payload spacestorage.SpaceStorageCreatePayload) { header, err := store.SpaceHeader() require.NoError(t, err) require.Equal(t, payload.SpaceHeaderWithId, header) diff --git a/space/spacecore/storage/sqlitestorage/sql.go b/space/spacecore/storage/sqlitestorage/sql.go index 737ba09b9..1ceca1233 100644 --- a/space/spacecore/storage/sqlitestorage/sql.go +++ b/space/spacecore/storage/sqlitestorage/sql.go @@ -58,7 +58,7 @@ func initStmts(s *storageService) (err error) { if s.stmt.updateSpaceIsDeleted, err = s.writeDb.Prepare(`UPDATE spaces SET isDeleted = ? WHERE id = ?`); err != nil { return } - if s.stmt.treeIdsBySpace, err = s.readDb.Prepare(`SELECT id FROM trees WHERE spaceId = ? AND type != 1 AND deleteStatus IS NULL`); err != nil { + if s.stmt.treeIdsBySpace, err = s.readDb.Prepare(`SELECT id FROM trees WHERE spaceId = ? AND type != 1`); err != nil { return } if s.stmt.deleteTree, err = s.writeDb.Prepare(` @@ -88,12 +88,6 @@ func initStmts(s *storageService) (err error) { if s.stmt.hasChange, err = s.readDb.Prepare(`SELECT COUNT(*) FROM changes WHERE id = ? AND treeId = ?`); err != nil { return } - if s.stmt.listChanges, err = s.readDb.Prepare(`SELECT id FROM changes WHERE treeId = ? ORDER BY id`); err != nil { - return - } - if s.stmt.iterateChanges, err = s.readDb.Prepare(`SELECT id, data FROM changes WHERE treeId = ? ORDER BY id`); err != nil { - return - } if s.stmt.updateTreeHeads, err = s.writeDb.Prepare(`UPDATE trees SET heads = ? WHERE id = ?`); err != nil { return } @@ -118,9 +112,6 @@ func initStmts(s *storageService) (err error) { if s.stmt.upsertBind, err = s.writeDb.Prepare(`INSERT INTO binds (objectId, spaceId) VALUES (?, ?) ON CONFLICT (objectId) DO UPDATE SET spaceId = ?`); err != nil { return } - if s.stmt.getAllBinds, err = s.writeDb.Prepare(`SELECT objectId FROM binds WHERE spaceId = ?`); err != nil { - return - } if s.stmt.deleteSpace, err = s.writeDb.Prepare(`DELETE FROM spaces WHERE id = ?`); err != nil { return } diff --git a/space/spacecore/storage/sqlitestorage/tree.go b/space/spacecore/storage/sqlitestorage/tree.go index a0994e717..6cca193f0 100644 --- a/space/spacecore/storage/sqlitestorage/tree.go +++ b/space/spacecore/storage/sqlitestorage/tree.go @@ -1,18 +1,15 @@ package sqlitestorage import ( - "bytes" "context" - "errors" "fmt" "sync" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" ) -func newTreeStorage(ss *spaceStorage, treeId string) (oldstorage.TreeStorage, error) { +func newTreeStorage(ss *spaceStorage, treeId string) (treestorage.TreeStorage, error) { ts := &treeStorage{ treeId: treeId, spaceStorage: ss, @@ -26,7 +23,7 @@ func newTreeStorage(ss *spaceStorage, treeId string) (oldstorage.TreeStorage, er return ts, nil } -func createTreeStorage(ss *spaceStorage, payload treestorage.TreeStorageCreatePayload) (ts oldstorage.TreeStorage, err error) { +func createTreeStorage(ss *spaceStorage, payload treestorage.TreeStorageCreatePayload) (ts treestorage.TreeStorage, err error) { ts = &treeStorage{ treeId: payload.RootRawChange.Id, spaceStorage: ss, @@ -102,54 +99,7 @@ func (t *treeStorage) Heads() ([]string, error) { } func (t *treeStorage) GetAllChangeIds() (chs []string, err error) { - rows, err := t.service.stmt.listChanges.Query(t.treeId) - if err != nil { - return nil, replaceNoRowsErr(err, nil) - } - for rows.Next() { - var id string - err = rows.Scan(&id) - if err != nil { - return nil, errors.Join(rows.Close(), err) - } - chs = append(chs, id) - } - return chs, rows.Close() -} - -func (t *treeStorage) GetAllChanges() ([]*treechangeproto.RawTreeChangeWithId, error) { - var changes []*treechangeproto.RawTreeChangeWithId - err := t.IterateChanges(func(id string, rawChange []byte) error { - changes = append(changes, &treechangeproto.RawTreeChangeWithId{ - Id: id, - RawChange: bytes.Clone(rawChange), - }) - return nil - }) - return changes, err -} - -func (t *treeStorage) IterateChanges(proc func(id string, rawChange []byte) error) error { - rows, err := t.service.stmt.iterateChanges.Query(t.treeId) - if err != nil { - return replaceNoRowsErr(err, nil) - } - - buf := make([]byte, 0, 1024) - for rows.Next() { - var id string - err = rows.Scan(&id, &buf) - if err != nil { - return errors.Join(rows.Close(), err) - } - - err = proc(id, buf) - if err != nil { - return errors.Join(rows.Close(), err) - } - buf = buf[:0] - } - return rows.Close() + return nil, fmt.Errorf("get all change ids should not be called") } func (t *treeStorage) SetHeads(heads []string) error { diff --git a/space/spacecore/storage/sqlitestorage/tree_test.go b/space/spacecore/storage/sqlitestorage/tree_test.go index 5ea1fc8fe..cee72d615 100644 --- a/space/spacecore/storage/sqlitestorage/tree_test.go +++ b/space/spacecore/storage/sqlitestorage/tree_test.go @@ -1,26 +1,17 @@ package sqlitestorage import ( - "bytes" "crypto/rand" "database/sql" "encoding/hex" - "slices" - "sort" "testing" "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" - "github.com/anyproto/any-sync/commonspace/spacestorage/oldstorage" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) -type oldTreeStorage interface { - oldstorage.ChangesIterator - oldstorage.TreeStorage -} - func TestTreeStorage_Create(t *testing.T) { fx := newFixture(t) defer fx.finish(t) @@ -47,13 +38,11 @@ func TestTreeStorage_Methods(t *testing.T) { ss, err := createSpaceStorage(fx.storageService, spacePayload) require.NoError(t, err) payload := treeTestPayload() - var store oldTreeStorage - treeStore, err := ss.CreateTreeStorage(payload) + store, err := ss.CreateTreeStorage(payload) require.NoError(t, err) - treeStore, err = ss.TreeStorage(payload.RootRawChange.Id) + store, err = ss.TreeStorage(payload.RootRawChange.Id) require.NoError(t, err) - store = treeStore.(oldTreeStorage) testTreePayload(t, store, payload) t.Run("update heads", func(t *testing.T) { @@ -65,7 +54,7 @@ func TestTreeStorage_Methods(t *testing.T) { }) t.Run("add raw change, get change and has change", func(t *testing.T) { - newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("ab"), Id: "id10"} + newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("ab"), Id: "newId"} require.NoError(t, store.AddRawChange(newChange)) rawCh, err := store.GetRawChange(ctx, newChange.Id) require.NoError(t, err) @@ -83,55 +72,6 @@ func TestTreeStorage_Methods(t *testing.T) { require.NoError(t, err) require.False(t, has) }) - - t.Run("iterate changes", func(t *testing.T) { - newChange := &treechangeproto.RawTreeChangeWithId{RawChange: []byte("foo"), Id: "id01"} - require.NoError(t, store.AddRawChange(newChange)) - newChange = &treechangeproto.RawTreeChangeWithId{RawChange: []byte("bar"), Id: "id20"} - require.NoError(t, store.AddRawChange(newChange)) - - var collected []*treechangeproto.RawTreeChangeWithId - require.NoError(t, store.IterateChanges(func(id string, rawChange []byte) error { - collected = append(collected, &treechangeproto.RawTreeChangeWithId{ - Id: id, - RawChange: bytes.Clone(rawChange), - }) - return nil - })) - - want := slices.Clone(payload.Changes) - want = append(want, []*treechangeproto.RawTreeChangeWithId{ - {Id: "id01", RawChange: []byte("foo")}, - {Id: "id10", RawChange: []byte("ab")}, - {Id: "id20", RawChange: []byte("bar")}, - }...) - - sort.Slice(want, func(i, j int) bool { - return want[i].Id < want[j].Id - }) - assert.Equal(t, want, collected) - - got, err := store.GetAllChanges() - require.NoError(t, err) - - assert.Equal(t, want, got) - }) - - t.Run("get all change ids", func(t *testing.T) { - got, err := store.GetAllChangeIds() - require.NoError(t, err) - - want := []string{ - payload.Changes[0].Id, - payload.Changes[1].Id, - "id01", - "id10", - "id20", - } - sort.Strings(want) - - assert.Equal(t, want, got) - }) } func TestTreeStorage_AddRawChangesSetHeads(t *testing.T) { @@ -250,7 +190,7 @@ func treeTestPayload() treestorage.TreeStorageCreatePayload { } } -func testTreePayload(t *testing.T, store oldstorage.TreeStorage, payload treestorage.TreeStorageCreatePayload) { +func testTreePayload(t *testing.T, store treestorage.TreeStorage, payload treestorage.TreeStorageCreatePayload) { require.Equal(t, payload.RootRawChange.Id, store.Id()) root, err := store.Root() diff --git a/space/spacecore/storage/storage.go b/space/spacecore/storage/storage.go index 9ef406ec0..e93d3d15f 100644 --- a/space/spacecore/storage/storage.go +++ b/space/spacecore/storage/storage.go @@ -2,11 +2,13 @@ package storage import ( "context" + "fmt" "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/commonspace/spacestorage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage" + "github.com/anyproto/anytype-heart/space/spacecore/storage/badgerstorage" + "github.com/anyproto/anytype-heart/space/spacecore/storage/sqlitestorage" ) type SpaceStorageMode int @@ -20,7 +22,12 @@ type ClientStorage interface { spacestorage.SpaceStorageProvider app.ComponentRunnable AllSpaceIds() (ids []string, err error) + GetSpaceID(objectID string) (spaceID string, err error) + BindSpaceID(spaceID, objectID string) (err error) DeleteSpaceStorage(ctx context.Context, spaceId string) error + MarkSpaceCreated(id string) (err error) + UnmarkSpaceCreated(id string) (err error) + IsSpaceCreated(id string) (created bool) } // storageService is a proxy for the actual storage implementation @@ -33,7 +40,7 @@ func New() ClientStorage { } type configGetter interface { - GetNewSpaceStorePath() string + GetSpaceStorageMode() SpaceStorageMode } func (s *storageService) Name() (name string) { @@ -41,7 +48,16 @@ func (s *storageService) Name() (name string) { } func (s *storageService) Init(a *app.App) (err error) { - rootPath := a.MustComponent("config").(configGetter).GetNewSpaceStorePath() - s.ClientStorage = anystorage.New(rootPath) + mode := a.MustComponent("config").(configGetter).GetSpaceStorageMode() + if mode == SpaceStorageModeBadger { + // for already existing account repos + s.ClientStorage = badgerstorage.New() + } else if mode == SpaceStorageModeSqlite { + // sqlite used for new account repos + s.ClientStorage = sqlitestorage.New() + } else { + return fmt.Errorf("unknown storage mode %d", mode) + } + return s.ClientStorage.Init(a) } diff --git a/space/spacecore/typeprovider/typeprovider.go b/space/spacecore/typeprovider/typeprovider.go index 8cc7383b3..b0b9d0be9 100644 --- a/space/spacecore/typeprovider/typeprovider.go +++ b/space/spacecore/typeprovider/typeprovider.go @@ -25,7 +25,6 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/spacecore" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage" ) const CName = "space.typeprovider" @@ -197,15 +196,17 @@ func (p *provider) objectTypeFromSpace(spaceID string, id string) (tp smartblock return } p.RUnlock() - ctx := context.Background() - sp, err := p.spaceService.Get(ctx, spaceID) + + sp, err := p.spaceService.Get(context.Background(), spaceID) if err != nil { return } - rawRoot, err := sp.Storage().(anystorage.ClientSpaceStorage).TreeRoot(ctx, id) + store := sp.Storage() + rawRoot, err := store.TreeRoot(id) if err != nil { return } + tp, _, err = GetTypeAndKeyFromRoot(rawRoot) if err != nil { return diff --git a/space/spacefactory/spacefactory.go b/space/spacefactory/spacefactory.go index 3a281b537..9af99e52f 100644 --- a/space/spacefactory/spacefactory.go +++ b/space/spacefactory/spacefactory.go @@ -17,7 +17,6 @@ import ( "github.com/anyproto/anytype-heart/space/internal/spacecontroller" "github.com/anyproto/anytype-heart/space/spacecore" "github.com/anyproto/anytype-heart/space/spacecore/storage" - "github.com/anyproto/anytype-heart/space/spacecore/storage/anystorage" "github.com/anyproto/anytype-heart/space/spaceinfo" "github.com/anyproto/anytype-heart/space/techspace" ) @@ -72,7 +71,7 @@ func (s *spaceFactory) CreatePersonalSpace(ctx context.Context, metadata []byte) if err != nil { return } - err = coreSpace.Storage().(anystorage.ClientSpaceStorage).MarkSpaceCreated(ctx) + err = s.storageService.MarkSpaceCreated(coreSpace.Id()) if err != nil { return } @@ -193,11 +192,7 @@ func (s *spaceFactory) CreateInvitingSpace(ctx context.Context, id, aclHeadId st } func (s *spaceFactory) CreateShareableSpace(ctx context.Context, id string) (sp spacecontroller.SpaceController, err error) { - coreSpace, err := s.spaceCore.Get(ctx, id) - if err != nil { - return - } - err = coreSpace.Storage().(anystorage.ClientSpaceStorage).MarkSpaceCreated(ctx) + err = s.storageService.MarkSpaceCreated(id) if err != nil { return } diff --git a/util/freespace/freespace_unix.go b/util/freespace/freespace_unix.go deleted file mode 100644 index d584c5517..000000000 --- a/util/freespace/freespace_unix.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !windows - -package freespace - -import "golang.org/x/sys/unix" - -func GetFreeDiskSpace(path string) (freeSpace uint64, err error) { - var stat unix.Statfs_t - err = unix.Statfs(path, &stat) - if err != nil { - return 0, err - } - // nolint: gosec - freeSpace = stat.Bavail * uint64(stat.Bsize) - return freeSpace, nil -} diff --git a/util/freespace/freespace_windows.go b/util/freespace/freespace_windows.go deleted file mode 100644 index acdeed5f9..000000000 --- a/util/freespace/freespace_windows.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build windows - -package freespace - -import "golang.org/x/sys/windows" - -func GetFreeDiskSpace(path string) (uint64, error) { - var freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes uint64 - lpDirectoryName := windows.StringToUTF16Ptr(path) - err := windows.GetDiskFreeSpaceEx(lpDirectoryName, &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes) - if err != nil { - return 0, err - } - return freeBytesAvailable, nil -} diff --git a/util/ziputil/ziputil.go b/util/ziputil/ziputil.go deleted file mode 100644 index 34f93b361..000000000 --- a/util/ziputil/ziputil.go +++ /dev/null @@ -1,89 +0,0 @@ -package ziputil - -import ( - "archive/zip" - "io" - "os" - "path/filepath" - "strings" -) - -func ZipFolder(source, targetZip string) error { - zipFile, err := os.Create(targetZip) - if err != nil { - return err - } - defer zipFile.Close() - - writer := zip.NewWriter(zipFile) - defer writer.Close() - - return filepath.Walk(source, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - relPath, err := filepath.Rel(source, path) - if err != nil { - return err - } - if relPath == "." { - return nil - } - if info.IsDir() { - _, err := writer.Create(strings.ReplaceAll(relPath, "\\", "/") + "/") - return err - } - f, err := os.Open(path) - if err != nil { - return err - } - defer f.Close() - zipWriter, err := writer.Create(strings.ReplaceAll(relPath, "\\", "/")) - if err != nil { - return err - } - _, err = io.Copy(zipWriter, f) - return err - }) -} - -func UnzipFolder(sourceZip, targetDir string) error { - r, err := zip.OpenReader(sourceZip) - if err != nil { - return err - } - defer r.Close() - if err := os.MkdirAll(targetDir, 0755); err != nil { - return err - } - for _, file := range r.File { - // nolint: gosec - extractedPath := filepath.Join(targetDir, file.Name) - if file.FileInfo().IsDir() { - if err := os.MkdirAll(extractedPath, 0700); err != nil { - return err - } - continue - } - if err := extractFile(file, extractedPath); err != nil { - return err - } - } - return nil -} - -func extractFile(file *zip.File, outputPath string) error { - rc, err := file.Open() - if err != nil { - return err - } - defer rc.Close() - outputFile, err := os.OpenFile(outputPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode()) - if err != nil { - return err - } - defer outputFile.Close() - // nolint: gosec - _, err = io.Copy(outputFile, rc) - return err -} diff --git a/util/ziputil/ziputil_test.go b/util/ziputil/ziputil_test.go deleted file mode 100644 index 38805182e..000000000 --- a/util/ziputil/ziputil_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package ziputil - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestZipAndUnzipFolder(t *testing.T) { - var ( - sourceDir = t.TempDir() - tmpZipDir = t.TempDir() - unzipDir = t.TempDir() - ) - zipPath := filepath.Join(tmpZipDir, "test_archive.zip") - err := createFolders(sourceDir) - require.NoError(t, err) - err = ZipFolder(sourceDir, zipPath) - require.NoError(t, err) - err = UnzipFolder(zipPath, unzipDir) - require.NoError(t, err) - err = compareDirectories(sourceDir, unzipDir) - require.NoError(t, err) -} - -func createFolders(baseDir string) error { - subDir, err := os.MkdirTemp(baseDir, "subfolder") - if err != nil { - return err - } - file1 := filepath.Join(baseDir, "file1.txt") - if err := os.WriteFile(file1, []byte("Hello, World!"), 0700); err != nil { - return err - } - file2 := filepath.Join(subDir, "file2.txt") - if err := os.WriteFile(file2, []byte("Nested file content"), 0700); err != nil { - return err - } - return nil -} - -func compareDirectories(dir1, dir2 string) error { - return filepath.Walk(dir1, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - relPath, err := filepath.Rel(dir1, path) - if err != nil { - return err - } - if relPath == "." { - return nil - } - pathInDir2 := filepath.Join(dir2, relPath) - info2, err := os.Stat(pathInDir2) - if err != nil { - return err - } - if info.IsDir() { - if !info2.IsDir() { - return &mismatchError{path, pathInDir2, "dir vs file"} - } - } else { - if info2.IsDir() { - return &mismatchError{path, pathInDir2, "file vs dir"} - } - content1, err := ioutil.ReadFile(path) - if err != nil { - return err - } - content2, err := ioutil.ReadFile(pathInDir2) - if err != nil { - return err - } - if string(content1) != string(content2) { - return &mismatchError{path, pathInDir2, "file content mismatch"} - } - } - return nil - }) -} - -type mismatchError struct { - path1, path2, reason string -} - -func (m *mismatchError) Error() string { - return "Mismatch between " + m.path1 + " and " + m.path2 + ": " + m.reason -} From 89af2669822248cce2fe1591026d4a12d67727aa Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Wed, 19 Feb 2025 14:27:02 +0100 Subject: [PATCH 147/176] GO-5171 fake accountMigrate API impl # Conflicts: # clientlibrary/service/service.pb.go # pb/commands.pb.go # pb/service/service.pb.go --- clientlibrary/service/service.pb.go | 764 ++--- core/account.go | 21 + docs/proto.md | 155 + pb/commands.pb.go | 4088 ++++++++++++++++++--------- pb/protos/commands.proto | 49 + pb/protos/service/service.proto | 2 + pb/service/service.pb.go | 762 ++--- 7 files changed, 3846 insertions(+), 1995 deletions(-) diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 2ff9d1f71..1395d7884 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,350 +25,352 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5482 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49, - 0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x07, 0x86, 0xd9, 0x61, 0x37, 0xc9, 0x64, - 0x12, 0x3b, 0x89, 0xe3, 0xeb, 0x4c, 0x32, 0xff, 0xd8, 0x45, 0x82, 0x1b, 0x3b, 0xf1, 0x78, 0xd7, - 0xf6, 0x18, 0x5f, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0xdd, 0x5d, 0xbe, 0x6e, 0xdc, 0xb7, 0xab, 0xb7, - 0xbb, 0xae, 0x93, 0xbb, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0xfc, 0x13, 0x3c, 0x21, 0xf1, - 0x09, 0xf8, 0x18, 0x3c, 0xee, 0x03, 0x0f, 0x3c, 0xa2, 0x99, 0x6f, 0xc0, 0x27, 0x40, 0x5d, 0x5d, - 0x7f, 0x4f, 0x9f, 0x53, 0xdd, 0x1e, 0x9e, 0x12, 0xf9, 0xfc, 0xce, 0x39, 0xf5, 0xe7, 0x54, 0xd5, - 0xa9, 0xea, 0xea, 0xbe, 0xd1, 0xcd, 0xf2, 0x6c, 0xab, 0xac, 0xb8, 0xe0, 0xf5, 0x56, 0xcd, 0xaa, - 0xab, 0x2c, 0x61, 0xfa, 0xdf, 0x89, 0xfc, 0xf3, 0xf8, 0xcd, 0xb8, 0x58, 0x89, 0x55, 0xc9, 0xde, - 0x7b, 0xd7, 0x92, 0x09, 0x5f, 0x2c, 0xe2, 0x22, 0xad, 0x5b, 0xe4, 0xbd, 0x77, 0xac, 0x84, 0x5d, - 0xb1, 0x42, 0xa8, 0xbf, 0x3f, 0xfe, 0xaf, 0xff, 0x1d, 0x45, 0x6f, 0x6d, 0xe7, 0x19, 0x2b, 0xc4, - 0xb6, 0xd2, 0x18, 0x7f, 0x19, 0x7d, 0x7b, 0x5a, 0x96, 0xbb, 0x4c, 0xbc, 0x60, 0x55, 0x9d, 0xf1, - 0x62, 0xfc, 0xc1, 0x44, 0x39, 0x98, 0x1c, 0x97, 0xc9, 0x64, 0x5a, 0x96, 0x13, 0x2b, 0x9c, 0x1c, - 0xb3, 0x1f, 0x2f, 0x59, 0x2d, 0xde, 0xbb, 0x13, 0x86, 0xea, 0x92, 0x17, 0x35, 0x1b, 0x9f, 0x47, - 0xbf, 0x32, 0x2d, 0xcb, 0x19, 0x13, 0x3b, 0xac, 0xa9, 0xc0, 0x4c, 0xc4, 0x82, 0x8d, 0xd7, 0x3b, - 0xaa, 0x3e, 0x60, 0x7c, 0xdc, 0xeb, 0x07, 0x95, 0x9f, 0x93, 0xe8, 0x5b, 0x8d, 0x9f, 0x8b, 0xa5, - 0x48, 0xf9, 0xab, 0x62, 0xfc, 0x7e, 0x57, 0x51, 0x89, 0x8c, 0xed, 0xdb, 0x21, 0x44, 0x59, 0x7d, - 0x19, 0xfd, 0xe2, 0xcb, 0x38, 0xcf, 0x99, 0xd8, 0xae, 0x58, 0x53, 0x70, 0x5f, 0xa7, 0x15, 0x4d, - 0x5a, 0x99, 0xb1, 0xfb, 0x41, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x4a, 0x8e, 0x59, 0xc2, - 0xaf, 0x58, 0x35, 0x46, 0xb5, 0x94, 0x90, 0x68, 0xf2, 0x0e, 0x04, 0x6d, 0x6f, 0xf3, 0xe2, 0x8a, - 0x55, 0x02, 0xb7, 0xad, 0x84, 0x61, 0xdb, 0x16, 0x52, 0xb6, 0xff, 0x6a, 0x14, 0x7d, 0x77, 0x9a, - 0x24, 0x7c, 0x59, 0x88, 0x7d, 0x9e, 0xc4, 0xf9, 0x7e, 0x56, 0x5c, 0x1e, 0xb2, 0x57, 0xdb, 0x17, - 0x0d, 0x5f, 0xcc, 0xd9, 0xf8, 0x89, 0xdf, 0xaa, 0x2d, 0x3a, 0x31, 0xec, 0xc4, 0x85, 0x8d, 0xef, - 0x8f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x77, 0xa3, 0xe8, 0x06, 0x2c, 0xcb, 0x8c, 0xe7, 0x57, 0xcc, - 0x96, 0xe6, 0xe3, 0x1e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xc9, 0x75, 0xd5, 0x54, 0x89, 0xf2, 0xe8, - 0x6d, 0x37, 0x5c, 0x66, 0xac, 0x96, 0xc3, 0xe9, 0x3e, 0x1d, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0x0c, - 0x41, 0x95, 0xb7, 0x2c, 0x1a, 0x2b, 0x6f, 0x39, 0xaf, 0x8d, 0xb3, 0x7b, 0xa8, 0x05, 0x87, 0x30, - 0xbe, 0xee, 0x0f, 0x20, 0x95, 0xab, 0xdf, 0x8f, 0x7e, 0xe9, 0x25, 0xaf, 0x2e, 0xeb, 0x32, 0x4e, - 0x98, 0x1a, 0x0a, 0x77, 0x7d, 0x6d, 0x2d, 0x85, 0xa3, 0x61, 0xad, 0x0f, 0x73, 0x82, 0x56, 0x0b, - 0xbf, 0x28, 0x19, 0x9c, 0x83, 0xac, 0x62, 0x23, 0xa4, 0x82, 0x16, 0x42, 0xca, 0xf6, 0x65, 0x34, - 0xb6, 0xb6, 0xcf, 0xfe, 0x80, 0x25, 0x62, 0x9a, 0xa6, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x26, 0xd3, - 0x34, 0xa5, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x7e, 0x56, 0x4b, 0x87, - 0x9b, 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x27, 0x43, 0x71, 0xe5, 0xf8, 0x4f, 0x46, 0xd1, 0x77, 0x10, - 0xcf, 0xc7, 0x6c, 0xc1, 0xaf, 0xd8, 0xf8, 0x51, 0xbf, 0xb5, 0x96, 0x34, 0xfe, 0x3f, 0xbc, 0x86, - 0x06, 0x12, 0x26, 0x33, 0x96, 0xb3, 0x44, 0x90, 0x61, 0xd2, 0x8a, 0x7b, 0xc3, 0xc4, 0x60, 0xce, - 0x08, 0xd3, 0xc2, 0x5d, 0x26, 0xb6, 0x97, 0x55, 0xc5, 0x0a, 0x41, 0xf6, 0xa5, 0x45, 0x7a, 0xfb, - 0xd2, 0x43, 0x91, 0xfa, 0xec, 0x32, 0x31, 0xcd, 0x73, 0xb2, 0x3e, 0xad, 0xb8, 0xb7, 0x3e, 0x06, - 0x53, 0x1e, 0x92, 0xe8, 0x97, 0x9d, 0x16, 0x13, 0x7b, 0xc5, 0x39, 0x1f, 0xd3, 0x6d, 0x21, 0xe5, - 0xc6, 0xc7, 0x7a, 0x2f, 0x87, 0x54, 0xe3, 0xd9, 0xeb, 0x92, 0x57, 0x74, 0xb7, 0xb4, 0xe2, 0xde, - 0x6a, 0x18, 0x4c, 0x79, 0xf8, 0xbd, 0xe8, 0x2d, 0x35, 0x4b, 0xea, 0xf5, 0xec, 0x0e, 0x3a, 0x85, - 0xc2, 0x05, 0xed, 0x6e, 0x0f, 0x65, 0x27, 0x07, 0x25, 0x53, 0x93, 0xcf, 0x07, 0xa8, 0x1e, 0x98, - 0x7a, 0xee, 0x84, 0xa1, 0x8e, 0xed, 0x1d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, - 0x65, 0xbb, 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x33, 0x49, 0x6f, 0x10, 0xf5, - 0x76, 0x21, 0xe3, 0xeb, 0xe1, 0x30, 0xb8, 0x53, 0x1f, 0x35, 0x02, 0xf1, 0xfa, 0x80, 0xf1, 0x77, - 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3d, 0x8a, 0xbe, 0xa7, 0x64, 0xcf, 0x8a, 0xf8, 0x2c, 0x67, 0x72, - 0x49, 0x3c, 0x64, 0xe2, 0x15, 0xaf, 0x2e, 0x67, 0xab, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, - 0xfe, 0x49, 0x25, 0x55, 0x98, 0x3f, 0x8c, 0xde, 0xd5, 0x41, 0x71, 0x11, 0x17, 0x73, 0xf6, 0xc3, - 0x9a, 0x17, 0xd3, 0x32, 0x9b, 0xa6, 0x69, 0x35, 0x9e, 0xe0, 0x5d, 0x0f, 0x39, 0x53, 0x82, 0xad, - 0xc1, 0xbc, 0x93, 0x6e, 0xaa, 0x56, 0x16, 0xbc, 0x84, 0xe9, 0xa6, 0x6e, 0x3e, 0xc1, 0x4b, 0x2a, - 0xdd, 0xf4, 0x91, 0x8e, 0xd5, 0x83, 0x66, 0xce, 0xc6, 0xad, 0x1e, 0xb8, 0x93, 0xf4, 0xed, 0x10, - 0x62, 0xe7, 0x4c, 0xdd, 0x50, 0xbc, 0x38, 0xcf, 0xe6, 0xa7, 0x65, 0xda, 0x8c, 0xa1, 0xfb, 0x78, - 0x9d, 0x1d, 0x84, 0x98, 0x33, 0x09, 0x54, 0x79, 0xfb, 0x5b, 0x9b, 0x95, 0xa9, 0x71, 0xfc, 0xbc, - 0xe2, 0x8b, 0x7d, 0x36, 0x8f, 0x93, 0x95, 0x9a, 0x7c, 0x3e, 0x0a, 0x8d, 0x7a, 0x48, 0x9b, 0x42, - 0x7c, 0x7c, 0x4d, 0x2d, 0x55, 0x9e, 0x7f, 0x1b, 0x45, 0x77, 0xbc, 0x38, 0x51, 0xc1, 0xd4, 0x96, - 0x7e, 0x5a, 0xa4, 0xc7, 0xac, 0x16, 0x71, 0x25, 0xc6, 0xdf, 0x0f, 0xc4, 0x00, 0xa1, 0x63, 0xca, - 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0xd6, 0xcc, 0xaa, 0x6a, 0xfe, 0xf1, 0x7b, 0x5d, 0x4a, - 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xbd, 0xe2, 0x2a, 0x13, 0x6c, 0x97, 0x15, - 0xac, 0xea, 0xf6, 0x7a, 0xab, 0xea, 0x23, 0x44, 0xaf, 0x13, 0xa8, 0x9d, 0xe9, 0x3c, 0x6f, 0x66, - 0x65, 0xde, 0x08, 0x18, 0xe9, 0xac, 0xcd, 0x0f, 0x87, 0xc1, 0x76, 0x6b, 0xe9, 0xf8, 0x3c, 0x66, - 0x57, 0xfc, 0x12, 0x6e, 0x2d, 0x5d, 0x13, 0x2d, 0x40, 0x6c, 0x2d, 0x51, 0xd0, 0x2e, 0x9f, 0x8e, - 0x9f, 0x17, 0x19, 0x7b, 0x05, 0x96, 0x4f, 0x57, 0xb9, 0x11, 0x13, 0xcb, 0x27, 0x82, 0x29, 0x0f, - 0x87, 0xd1, 0x2f, 0x48, 0xe1, 0x0f, 0x79, 0x56, 0x8c, 0x6f, 0x22, 0x4a, 0x8d, 0xc0, 0x58, 0xbd, - 0x45, 0x03, 0xa0, 0xc4, 0xcd, 0x5f, 0xb7, 0xe3, 0x22, 0x61, 0x39, 0x5a, 0x62, 0x2b, 0x0e, 0x96, - 0xd8, 0xc3, 0x6c, 0xde, 0x22, 0x85, 0xcd, 0xfc, 0x35, 0xbb, 0x88, 0xab, 0xac, 0x98, 0x8f, 0x31, - 0x5d, 0x47, 0x4e, 0xe4, 0x2d, 0x18, 0x07, 0x42, 0x58, 0x29, 0x4e, 0xcb, 0xb2, 0x6a, 0xa6, 0x45, - 0x2c, 0x84, 0x7d, 0x24, 0x18, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc3, 0x92, 0x3c, 0x2b, 0x82, 0xde, - 0x14, 0x32, 0xc4, 0x9b, 0x45, 0x41, 0xf0, 0xee, 0xb3, 0xf8, 0x8a, 0xe9, 0x9a, 0x61, 0x2d, 0xe3, - 0x02, 0xc1, 0xe0, 0x05, 0xa0, 0xdd, 0x24, 0x4a, 0xf1, 0x41, 0x7c, 0xc9, 0x9a, 0x06, 0x66, 0xcd, - 0xa2, 0x3a, 0xc6, 0xf4, 0x3d, 0x82, 0xd8, 0x24, 0xe2, 0xa4, 0x72, 0xb5, 0x8c, 0xde, 0x91, 0xf2, - 0xa3, 0xb8, 0x12, 0x59, 0x92, 0x95, 0x71, 0xa1, 0x37, 0x1f, 0xd8, 0xb8, 0xee, 0x50, 0xc6, 0xe5, - 0xe6, 0x40, 0x5a, 0xb9, 0xfd, 0xe7, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc4, 0xaa, 0x45, 0x26, 0xf7, - 0xb0, 0x75, 0x3b, 0x09, 0x8f, 0x3f, 0x0d, 0x1b, 0xed, 0x28, 0x98, 0xd2, 0x7c, 0x76, 0x7d, 0x45, - 0x9b, 0x89, 0xcd, 0x54, 0x5e, 0xff, 0x45, 0x95, 0x76, 0xce, 0x78, 0x66, 0x3a, 0x59, 0x97, 0x42, - 0x22, 0x13, 0xeb, 0x40, 0x60, 0x84, 0x9f, 0x16, 0xb5, 0xb6, 0x8e, 0x8d, 0x70, 0x2b, 0x0e, 0x8e, - 0x70, 0x0f, 0xb3, 0x23, 0xfc, 0x68, 0x79, 0x96, 0x67, 0xf5, 0x45, 0x56, 0xcc, 0x55, 0xda, 0xed, - 0xeb, 0x5a, 0x31, 0xcc, 0xbc, 0xd7, 0x7b, 0x39, 0xcc, 0x89, 0x0a, 0x16, 0xd2, 0x09, 0x08, 0x93, - 0xf5, 0x5e, 0xce, 0x6e, 0x4e, 0xac, 0xb4, 0xd9, 0xb6, 0x82, 0xcd, 0x89, 0xa3, 0xda, 0x48, 0x89, - 0xcd, 0x49, 0x97, 0x52, 0xe6, 0x79, 0xf4, 0xab, 0x6e, 0x1d, 0x6a, 0x9e, 0x5f, 0xb1, 0xd3, 0x2a, - 0x1b, 0x3f, 0xa0, 0xcb, 0xa7, 0x19, 0xe3, 0x6a, 0x63, 0x10, 0x6b, 0x27, 0x2a, 0x4b, 0xec, 0x32, - 0x31, 0x13, 0xb1, 0x58, 0xd6, 0x60, 0xa2, 0x72, 0x6c, 0x18, 0x84, 0x98, 0xa8, 0x08, 0x54, 0x79, - 0xfb, 0xdd, 0x28, 0x6a, 0x77, 0xfc, 0xf2, 0x54, 0xc6, 0x5f, 0x7b, 0xd4, 0x51, 0x80, 0x77, 0x24, - 0xf3, 0x7e, 0x80, 0xb0, 0x09, 0x4f, 0xfb, 0x77, 0x79, 0xd8, 0x34, 0x46, 0x35, 0xa4, 0x88, 0x48, - 0x78, 0x00, 0x02, 0x0b, 0x3a, 0xbb, 0xe0, 0xaf, 0xf0, 0x82, 0x36, 0x92, 0x70, 0x41, 0x15, 0x61, - 0x8f, 0x7f, 0x55, 0x41, 0xb1, 0xe3, 0x5f, 0x5d, 0x8c, 0xd0, 0xf1, 0x2f, 0x64, 0x6c, 0xcc, 0xb8, - 0x86, 0x9f, 0x72, 0x7e, 0xb9, 0x88, 0xab, 0x4b, 0x10, 0x33, 0x9e, 0xb2, 0x66, 0x88, 0x98, 0xa1, - 0x58, 0x1b, 0x33, 0xae, 0xc3, 0x26, 0x5d, 0x3e, 0xad, 0x72, 0x10, 0x33, 0x9e, 0x0d, 0x85, 0x10, - 0x31, 0x43, 0xa0, 0x76, 0x76, 0x72, 0xbd, 0xcd, 0x18, 0x3c, 0x70, 0xf0, 0xd4, 0x67, 0x8c, 0x3a, - 0x70, 0x40, 0x30, 0x18, 0x42, 0xbb, 0x55, 0x5c, 0x5e, 0xe0, 0x21, 0x24, 0x45, 0xe1, 0x10, 0xd2, - 0x08, 0xec, 0xef, 0x19, 0x8b, 0xab, 0xe4, 0x02, 0xef, 0xef, 0x56, 0x16, 0xee, 0x6f, 0xc3, 0xc0, - 0xfe, 0x6e, 0x05, 0x2f, 0x33, 0x71, 0x71, 0xc0, 0x44, 0x8c, 0xf7, 0xb7, 0xcf, 0x84, 0xfb, 0xbb, - 0xc3, 0xda, 0x7c, 0xdc, 0x75, 0x38, 0x5b, 0x9e, 0xd5, 0x49, 0x95, 0x9d, 0xb1, 0x71, 0xc0, 0x8a, - 0x81, 0x88, 0x7c, 0x9c, 0x84, 0x95, 0xcf, 0x9f, 0x8e, 0xa2, 0x9b, 0xba, 0xdb, 0x79, 0x5d, 0xab, - 0xb5, 0xcf, 0x77, 0xff, 0x31, 0xde, 0xbf, 0x04, 0x4e, 0x1c, 0xc8, 0x0f, 0x50, 0x73, 0x72, 0x03, - 0xbc, 0x48, 0xa7, 0x45, 0x6d, 0x0a, 0xf5, 0xe9, 0x10, 0xeb, 0x8e, 0x02, 0x91, 0x1b, 0x0c, 0x52, - 0xb4, 0x69, 0x99, 0xea, 0x1f, 0x2d, 0xdb, 0x4b, 0x6b, 0x90, 0x96, 0xe9, 0xf6, 0x76, 0x08, 0x22, - 0x2d, 0xc3, 0x49, 0x18, 0x0a, 0xbb, 0x15, 0x5f, 0x96, 0x75, 0x4f, 0x28, 0x00, 0x28, 0x1c, 0x0a, - 0x5d, 0x58, 0xf9, 0x7c, 0x1d, 0xfd, 0xba, 0x1b, 0x7e, 0x6e, 0x63, 0x6f, 0xd2, 0x31, 0x85, 0x35, - 0xf1, 0x64, 0x28, 0x6e, 0x33, 0x0a, 0xed, 0x59, 0xec, 0x30, 0x11, 0x67, 0x79, 0x3d, 0x5e, 0xc3, - 0x6d, 0x68, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x9c, 0xdf, 0x76, 0x96, 0x65, 0x9e, 0x25, 0xdd, 0xc7, - 0x21, 0x4a, 0xd7, 0x88, 0xc3, 0xf3, 0x9b, 0x8b, 0xc1, 0xf9, 0xba, 0x49, 0xfd, 0xe4, 0x7f, 0x4e, - 0x56, 0x25, 0xc3, 0xe7, 0x6b, 0x0f, 0x09, 0xcf, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x31, 0xb1, 0x1f, - 0xaf, 0xf8, 0x92, 0x98, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x7b, 0x03, 0xe3, 0x61, 0xaf, - 0x10, 0xac, 0x2a, 0xe2, 0xfc, 0x79, 0x1e, 0xcf, 0xeb, 0x31, 0x31, 0xc7, 0xf8, 0x14, 0xb1, 0x37, - 0xa0, 0x69, 0xa4, 0x19, 0xf7, 0xea, 0xe7, 0xf1, 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, - 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0xd3, 0x2a, 0xb9, 0xc8, 0xae, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, - 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x19, 0x5f, 0x56, 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, - 0xc1, 0x94, 0x87, 0x3f, 0x1f, 0x45, 0xbf, 0xd1, 0x4a, 0xdd, 0x67, 0x14, 0x3b, 0x71, 0x7d, 0x71, - 0xc6, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, 0x51, 0xe3, 0xfa, 0xf1, 0x75, 0x54, 0x60, 0xb3, - 0x36, 0x79, 0xb7, 0x1d, 0x71, 0x68, 0xb3, 0x7a, 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x27, 0x10, 0x29, - 0x6f, 0x8f, 0xe4, 0xd6, 0x48, 0x7d, 0xff, 0x5c, 0x6e, 0xbd, 0x97, 0x83, 0xf3, 0x63, 0x23, 0xf4, - 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x47, 0xcc, 0x64, 0x28, 0x4e, 0x7a, 0x36, 0xa3, 0x22, 0xec, 0xb9, - 0x33, 0x32, 0x26, 0x43, 0x71, 0xc2, 0xb3, 0x33, 0xad, 0x85, 0x3c, 0x23, 0x53, 0xdb, 0x64, 0x28, - 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x41, 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x06, 0xb1, 0xca, - 0xe1, 0x5f, 0x8e, 0xa2, 0xef, 0x5a, 0x8f, 0x07, 0x3c, 0xcd, 0xce, 0x57, 0x2d, 0xf4, 0x22, 0xce, - 0x97, 0xac, 0x1e, 0x3f, 0xa6, 0xac, 0x75, 0x59, 0x53, 0x82, 0x27, 0xd7, 0xd2, 0x81, 0x63, 0x67, - 0x5a, 0x96, 0xf9, 0xea, 0x84, 0x2d, 0xca, 0x9c, 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, - 0x59, 0xf9, 0x09, 0x6f, 0x72, 0x7e, 0x34, 0x2b, 0x97, 0xa2, 0x70, 0x56, 0xae, 0x11, 0x98, 0x2b, - 0x9d, 0xf0, 0x6d, 0x9e, 0xe7, 0x2c, 0x11, 0xdd, 0x7b, 0x0e, 0x46, 0xd3, 0x12, 0xe1, 0x5c, 0x09, - 0x90, 0xf6, 0x54, 0x4e, 0xef, 0x21, 0xe3, 0x8a, 0x3d, 0x5d, 0xed, 0x67, 0xc5, 0xe5, 0x18, 0x4f, - 0x0b, 0x2c, 0x40, 0x9c, 0xca, 0xa1, 0x20, 0xdc, 0xab, 0x9e, 0x16, 0x29, 0xc7, 0xf7, 0xaa, 0x8d, - 0x24, 0xbc, 0x57, 0x55, 0x04, 0x34, 0x79, 0xcc, 0x28, 0x93, 0x8d, 0x24, 0x6c, 0x52, 0x11, 0xd8, - 0x54, 0xa8, 0x9e, 0xdd, 0x90, 0x53, 0x21, 0x78, 0x5a, 0xb3, 0xde, 0xcb, 0xc1, 0x08, 0xd5, 0x9b, - 0xd6, 0xe7, 0x4c, 0x24, 0x17, 0x78, 0x84, 0x7a, 0x48, 0x38, 0x42, 0x21, 0x0a, 0xab, 0x74, 0xc2, - 0xcd, 0xa6, 0x7b, 0x0d, 0x8f, 0x8f, 0xce, 0x86, 0x7b, 0xbd, 0x97, 0x83, 0xdb, 0xc8, 0xbd, 0x85, - 0x6c, 0x33, 0x34, 0xc8, 0x5b, 0x59, 0x78, 0x1b, 0x69, 0x18, 0x58, 0xfa, 0x56, 0x20, 0xcf, 0xb2, - 0xd6, 0x68, 0x45, 0xef, 0x34, 0x6b, 0xbd, 0x97, 0x53, 0x4e, 0xfe, 0xd1, 0x6c, 0xe3, 0x5a, 0xe9, - 0x21, 0x6f, 0xc6, 0xc8, 0x8b, 0x38, 0xcf, 0xd2, 0x58, 0xb0, 0x13, 0x7e, 0xc9, 0x0a, 0x7c, 0xc7, - 0xa4, 0x4a, 0xdb, 0xf2, 0x13, 0x4f, 0x21, 0xbc, 0x63, 0x0a, 0x2b, 0xc2, 0x38, 0x69, 0xe9, 0xd3, - 0x9a, 0x6d, 0xc7, 0x35, 0x31, 0x93, 0x79, 0x48, 0x38, 0x4e, 0x20, 0x0a, 0xf3, 0xd5, 0x56, 0xfe, - 0xec, 0x75, 0xc9, 0xaa, 0x8c, 0x15, 0x09, 0xc3, 0xf3, 0x55, 0x48, 0x85, 0xf3, 0x55, 0x84, 0x86, - 0x7b, 0xb5, 0x9d, 0x58, 0xb0, 0xa7, 0xab, 0x93, 0x6c, 0xc1, 0x6a, 0x11, 0x2f, 0x4a, 0x7c, 0xaf, - 0x06, 0xa0, 0xf0, 0x5e, 0xad, 0x0b, 0x77, 0x8e, 0x86, 0xcc, 0x84, 0xd8, 0xbd, 0x1e, 0x05, 0x89, - 0xc0, 0xf5, 0x28, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, 0x21, 0x41, 0xc7, 0x4a, 0xf0, 0x21, 0x01, - 0x4d, 0x77, 0x0e, 0xdc, 0x0c, 0x33, 0x6b, 0x86, 0x66, 0x4f, 0xd1, 0x67, 0xee, 0x10, 0xdd, 0x18, - 0xc4, 0xe2, 0x27, 0x7c, 0xc7, 0x2c, 0x8f, 0xe5, 0xb2, 0x15, 0x38, 0x46, 0xd3, 0xcc, 0x90, 0x13, - 0x3e, 0x87, 0x55, 0x0e, 0xff, 0x74, 0x14, 0xbd, 0x87, 0x79, 0xfc, 0xa2, 0x94, 0x7e, 0x1f, 0xf5, - 0xdb, 0x6a, 0x49, 0xe2, 0xfe, 0x57, 0x58, 0xc3, 0x5e, 0xc9, 0xd0, 0x22, 0x7b, 0x3d, 0x4c, 0x15, - 0xc0, 0x4f, 0xda, 0x4c, 0xf9, 0x21, 0x47, 0x5c, 0xc9, 0x08, 0xf1, 0x76, 0x3f, 0xe4, 0x97, 0xab, - 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, 0xfd, 0x10, 0x82, 0xd9, 0xd1, 0xe9, 0x56, 0xef, 0x65, - 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x46, 0xa7, 0x57, 0x56, 0x03, 0x11, 0xa3, 0x93, 0x84, 0x61, 0x46, - 0xa2, 0xc1, 0x66, 0x6c, 0x62, 0x73, 0xb9, 0x31, 0xe4, 0x8e, 0xcc, 0x7b, 0xfd, 0x20, 0x8c, 0x57, - 0x2d, 0x56, 0x5b, 0x9f, 0x07, 0x21, 0x0b, 0x60, 0xfb, 0xb3, 0x31, 0x88, 0x55, 0x0e, 0xff, 0x38, - 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x59, 0x2c, 0x96, 0x15, 0x4b, 0xc7, 0x5b, 0x3d, 0xe5, 0xd6, 0xa0, - 0x71, 0xfd, 0x68, 0xb8, 0x42, 0x27, 0x47, 0xd7, 0x5c, 0x1b, 0x56, 0xa6, 0x0c, 0x8f, 0x43, 0x26, - 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0x9d, 0x6d, 0xb6, 0x1b, 0x5d, 0xd3, 0xab, 0x38, 0xcb, 0xe5, - 0xc3, 0xda, 0x0f, 0x43, 0x46, 0x3d, 0x34, 0xb8, 0xcd, 0x26, 0x55, 0x3a, 0x33, 0xb3, 0x1c, 0xe3, - 0xce, 0xf6, 0xec, 0x21, 0x3d, 0x13, 0x20, 0xbb, 0xb3, 0xcd, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, - 0xd7, 0xfc, 0xd9, 0x0d, 0x72, 0xcc, 0xab, 0x52, 0x45, 0x22, 0x7d, 0x73, 0x20, 0xad, 0xbc, 0xfe, - 0x51, 0xf4, 0x6e, 0xd7, 0xab, 0x5a, 0x88, 0xb6, 0x7a, 0x4d, 0x81, 0xb5, 0xe8, 0xd1, 0x70, 0x05, - 0xe5, 0xfe, 0x5f, 0xcc, 0xb9, 0x74, 0xeb, 0x3f, 0xe1, 0x8b, 0x05, 0x2b, 0x52, 0x96, 0x6a, 0x8d, - 0xba, 0xd9, 0x3f, 0x7d, 0x46, 0xdb, 0x35, 0x0a, 0x13, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, - 0xa6, 0x2a, 0xda, 0x7f, 0x8c, 0xa2, 0xfb, 0x68, 0xd1, 0x74, 0xe0, 0x7a, 0x45, 0xfc, 0x9d, 0x21, - 0x8e, 0x30, 0x4d, 0x53, 0xd4, 0xe9, 0xff, 0xc3, 0x82, 0x2a, 0xf2, 0xbf, 0x8e, 0xa2, 0xdb, 0x56, - 0xb1, 0x09, 0xef, 0x6d, 0x5e, 0x9c, 0xe7, 0x59, 0x22, 0xe4, 0x13, 0x59, 0xa5, 0x42, 0x37, 0x27, - 0xa5, 0xd1, 0xdf, 0x9c, 0x01, 0x4d, 0xbb, 0x79, 0xfd, 0x3c, 0xab, 0x05, 0xaf, 0x56, 0xb3, 0x0b, - 0xfe, 0x4a, 0xbf, 0x60, 0xe3, 0xcf, 0xcb, 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, - 0x2b, 0xfb, 0x22, 0x4e, 0x4d, 0xb8, 0x72, 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, - 0xfb, 0xd6, 0xd0, 0x3a, 0x5e, 0xd4, 0xee, 0x9b, 0x43, 0xf7, 0xfa, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, - 0x4e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, - 0x79, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, - 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, 0x6f, 0x85, 0x34, 0xd2, 0x26, 0xba, 0x8b, 0x24, 0xcb, - 0xe1, 0x7d, 0x63, 0xa9, 0x69, 0x84, 0xc4, 0xad, 0x90, 0x0e, 0x64, 0x53, 0xa0, 0x46, 0xd4, 0x44, - 0xa5, 0x2e, 0xff, 0xdd, 0xae, 0xa2, 0x23, 0x26, 0x52, 0x20, 0x04, 0xb3, 0xa7, 0x0c, 0x8d, 0xf0, - 0xb4, 0x94, 0xc6, 0x6f, 0x75, 0xb5, 0x5a, 0x09, 0x71, 0xca, 0xe0, 0x13, 0x76, 0xb7, 0xdc, 0xfc, - 0x7d, 0x87, 0xbf, 0x2a, 0xa4, 0xd1, 0xdb, 0x5d, 0x15, 0x2d, 0x23, 0x76, 0xcb, 0x90, 0x51, 0x86, - 0x7f, 0x14, 0xfd, 0xbc, 0x34, 0x5c, 0xf1, 0x72, 0x7c, 0x03, 0x51, 0xa8, 0x9c, 0xdb, 0xb9, 0x37, - 0x49, 0xb9, 0xbd, 0x44, 0x62, 0x62, 0xe3, 0xb4, 0x8e, 0xe7, 0x6c, 0x7c, 0x87, 0xe8, 0x71, 0x29, - 0x25, 0x2e, 0x91, 0x74, 0x29, 0x3f, 0x2a, 0x0e, 0x79, 0xaa, 0xac, 0x23, 0x35, 0x34, 0xc2, 0x50, - 0x54, 0xb8, 0x90, 0x4d, 0x5b, 0x0f, 0xe3, 0xab, 0x6c, 0x6e, 0x52, 0x8b, 0x76, 0x02, 0xab, 0x41, - 0xda, 0x6a, 0x99, 0x89, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x2b, 0x9f, 0xff, 0x30, 0x8a, 0x6e, 0x59, - 0x66, 0x57, 0x9f, 0xcb, 0xee, 0x15, 0xe7, 0xbc, 0x49, 0x72, 0xf7, 0xb3, 0xe2, 0xb2, 0x1e, 0x7f, - 0x42, 0x99, 0xc4, 0x79, 0x53, 0x94, 0x4f, 0xaf, 0xad, 0x67, 0xf7, 0x27, 0xfa, 0xd0, 0xd2, 0xde, - 0x5c, 0x68, 0x35, 0xc0, 0xfe, 0xc4, 0x9c, 0x6d, 0x42, 0x8e, 0xd8, 0x9f, 0x84, 0x78, 0xdb, 0xc5, - 0xc6, 0x79, 0xce, 0x0b, 0xd8, 0xc5, 0xd6, 0x42, 0x23, 0x24, 0xba, 0xb8, 0x03, 0xd9, 0xf9, 0x58, - 0x8b, 0xda, 0xf3, 0xb5, 0x69, 0x9e, 0x83, 0xf9, 0xd8, 0xa8, 0x1a, 0x80, 0x98, 0x8f, 0x51, 0x50, - 0xf9, 0x39, 0x8e, 0xbe, 0xd5, 0x34, 0xe9, 0x51, 0xc5, 0xae, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, - 0x62, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xa7, 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, - 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x6e, 0x0f, 0x65, 0x27, 0x75, 0x2d, 0x33, 0x53, 0xcc, 0x1a, - 0xae, 0xda, 0x99, 0x66, 0xd6, 0x7b, 0x39, 0xfb, 0x6c, 0x63, 0x37, 0xce, 0x73, 0x56, 0xad, 0xb4, - 0xec, 0x20, 0x2e, 0xb2, 0x73, 0x56, 0x0b, 0xf0, 0x6c, 0x43, 0x51, 0x13, 0x88, 0x11, 0xcf, 0x36, - 0x02, 0xb8, 0xdd, 0xb7, 0x01, 0xcf, 0x7b, 0x45, 0xca, 0x5e, 0x83, 0x7d, 0x1b, 0xb4, 0x23, 0x19, - 0x62, 0xdf, 0x46, 0xb1, 0xf6, 0x8c, 0xff, 0x69, 0xce, 0x93, 0x4b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, - 0x25, 0x70, 0x0d, 0xb8, 0x1d, 0x42, 0xec, 0x22, 0x20, 0x05, 0xc7, 0xac, 0xcc, 0xe3, 0x04, 0xde, - 0xb4, 0x6a, 0x75, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03, 0x8a, 0xab, 0x6e, 0x70, 0x61, 0xc5, 0x05, - 0x17, 0xb8, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1, 0xac, 0xcc, 0x33, 0x01, 0x86, 0x41, 0xab, - 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x80, 0x55, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, - 0x49, 0x4d, 0xd8, 0x6b, 0xe5, 0x6d, 0xdd, 0x79, 0xb9, 0x02, 0xd7, 0xca, 0x55, 0xb5, 0x78, 0xb9, - 0x22, 0xae, 0x95, 0x7b, 0x00, 0x28, 0xe2, 0x51, 0x5c, 0x0b, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, - 0x26, 0xec, 0x1a, 0xdd, 0x16, 0x71, 0x29, 0xc0, 0x1a, 0xad, 0x0a, 0xe0, 0xdc, 0x35, 0xb8, 0x49, - 0xca, 0xed, 0x4c, 0xd2, 0xf6, 0x0a, 0x13, 0xcf, 0x33, 0x96, 0xa7, 0x35, 0x98, 0x49, 0x54, 0xbb, - 0x6b, 0x29, 0x31, 0x93, 0x74, 0x29, 0x10, 0x4a, 0xea, 0x49, 0x08, 0x56, 0x3b, 0xf0, 0x10, 0xe4, - 0x76, 0x08, 0xb1, 0xf3, 0x93, 0x2e, 0xf4, 0x76, 0x5c, 0x55, 0x59, 0xb3, 0xf8, 0xaf, 0xe1, 0x05, - 0xd2, 0x72, 0x62, 0x7e, 0xc2, 0x38, 0x30, 0xbc, 0xf4, 0xc4, 0x8d, 0x15, 0x0c, 0x4e, 0xdd, 0x1f, - 0x04, 0x19, 0x9b, 0x71, 0x4a, 0x89, 0xf3, 0xb0, 0x1c, 0x6b, 0x4d, 0xe4, 0x59, 0xf9, 0x5a, 0x1f, - 0xe6, 0xbc, 0x73, 0x66, 0x5c, 0x1c, 0xf0, 0x2b, 0x76, 0xc2, 0x9f, 0xbd, 0xce, 0xea, 0x66, 0xbb, - 0xa5, 0x56, 0xee, 0x27, 0x84, 0x25, 0x0c, 0x26, 0xde, 0x39, 0xeb, 0x55, 0xb2, 0x09, 0x04, 0x28, - 0xcb, 0x21, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, - 0xe3, 0x5c, 0xbd, 0x98, 0x7f, 0xc2, 0x75, 0x2e, 0x47, 0x59, 0x83, 0x20, 0x71, 0x68, 0x11, 0x54, - 0xb0, 0xfb, 0x4b, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x84, 0x9d, 0xee, 0x30, 0xbb, 0x3f, 0x80, 0x44, - 0x5c, 0xd9, 0x1b, 0x1f, 0x94, 0xab, 0xee, 0x85, 0x8f, 0xfb, 0x03, 0x48, 0xe7, 0xf4, 0xcd, 0xad, - 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x57, 0x7c, 0x59, 0xa4, 0xdb, 0x3c, 0xe7, 0x15, 0x38, 0x7d, 0xf3, - 0x4a, 0x0d, 0x50, 0xe2, 0xf4, 0xad, 0x47, 0xc5, 0x66, 0x70, 0x6e, 0x29, 0xa6, 0x79, 0x36, 0x87, - 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x6a, 0x77, 0xdc, 0x22, 0x4b, - 0xe2, 0xbc, 0xf5, 0xb7, 0x45, 0x9b, 0xf1, 0xc0, 0xde, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x9e, 0x2c, - 0xab, 0x62, 0xaf, 0x10, 0x9c, 0xac, 0xa7, 0x06, 0x7a, 0xeb, 0xe9, 0x80, 0x60, 0x5a, 0x3d, 0x61, - 0xaf, 0x9b, 0xd2, 0x34, 0xff, 0x60, 0xd3, 0x6a, 0xf3, 0xf7, 0x89, 0x92, 0x87, 0xa6, 0x55, 0xc0, - 0x81, 0xca, 0x28, 0x27, 0x6d, 0xc0, 0x04, 0xb4, 0xfd, 0x30, 0xb9, 0xd7, 0x0f, 0xe2, 0x7e, 0x66, - 0x62, 0x95, 0xb3, 0x90, 0x1f, 0x09, 0x0c, 0xf1, 0xa3, 0x41, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x82, - 0x25, 0x97, 0x9d, 0x0b, 0x6c, 0x7e, 0x41, 0x5b, 0x84, 0x38, 0x6e, 0x21, 0x50, 0xbc, 0x8b, 0xf6, - 0x12, 0x5e, 0x84, 0xba, 0xa8, 0x91, 0x0f, 0xe9, 0x22, 0xc5, 0xd9, 0xcd, 0xaf, 0x91, 0xaa, 0xc8, - 0x6c, 0xbb, 0x69, 0x83, 0xb0, 0xe0, 0x42, 0xc4, 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, - 0x74, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd0, 0xb7, 0xfb, 0x29, 0x96, 0xae, 0x64, 0x1b, 0x23, 0x3d, - 0x56, 0xfc, 0x38, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0xce, 0xe2, 0xaa, 0xf5, - 0xba, 0x19, 0x30, 0x64, 0x31, 0x62, 0xcb, 0x13, 0xc0, 0xc1, 0x14, 0xe6, 0x79, 0xde, 0xe6, 0x85, - 0x60, 0x85, 0xc0, 0xa6, 0x30, 0xdf, 0x98, 0x02, 0x43, 0x53, 0x18, 0xa5, 0x00, 0xe2, 0x56, 0x9e, - 0x07, 0x31, 0x71, 0x18, 0x2f, 0xd0, 0x8c, 0xad, 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0xb8, 0x05, 0x9c, - 0xf3, 0x38, 0xd7, 0xf5, 0x72, 0x12, 0x57, 0x73, 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd1, 0x76, 0x7c, - 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0xd3, 0xce, 0xde, 0x22, 0x9e, 0x9b, 0x9a, 0x22, 0x35, 0x90, - 0xf2, 0x4e, 0x55, 0xef, 0xf5, 0x83, 0xc0, 0xcf, 0x8b, 0x2c, 0x65, 0x3c, 0xe0, 0x47, 0xca, 0x87, - 0xf8, 0x81, 0x20, 0xc8, 0xde, 0x9a, 0x7a, 0xb7, 0x3b, 0xba, 0x69, 0x91, 0xaa, 0x7d, 0xec, 0x84, - 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, 0x63, 0x54, 0x1f, 0xd0, 0x86, 0xc6, 0xa8, 0x39, - 0x7f, 0x1d, 0x32, 0x46, 0x31, 0x58, 0xf9, 0xfc, 0x89, 0x1a, 0xa3, 0x3b, 0xb1, 0x88, 0x9b, 0xbc, - 0xfd, 0x45, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, 0x5f, 0x4d, 0x4d, 0xe4, 0xcb, 0xc9, 0x60, 0x57, - 0xbc, 0x35, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x35, 0x98, 0x0f, - 0xf8, 0x56, 0x5f, 0x3d, 0xe8, 0xf5, 0x0d, 0x3e, 0x7d, 0xb0, 0x35, 0x98, 0x57, 0xbe, 0xff, 0x4c, - 0x0f, 0x5c, 0xd7, 0x79, 0x93, 0x87, 0x25, 0x22, 0xbb, 0x62, 0x58, 0x3a, 0xe9, 0xdb, 0x33, 0x68, - 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0xef, 0x74, 0x61, 0xa5, 0x38, 0xe2, 0x75, 0x26, 0xaf, 0x63, 0x3c, - 0x19, 0x60, 0x54, 0xc3, 0xa1, 0x4d, 0x53, 0x48, 0xc9, 0x3e, 0x58, 0xf6, 0x50, 0x7b, 0x5f, 0xfd, - 0x61, 0xc0, 0x5e, 0xf7, 0xda, 0xfa, 0xe6, 0x40, 0xda, 0x3e, 0xe2, 0xf5, 0x18, 0xf7, 0xd9, 0x72, - 0xa8, 0x57, 0xd1, 0xc7, 0xcb, 0x8f, 0x86, 0x2b, 0x28, 0xf7, 0x7f, 0xa1, 0xf7, 0x15, 0xd0, 0xbf, - 0x1a, 0x04, 0x8f, 0x87, 0x58, 0x04, 0x03, 0xe1, 0xc9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x46, 0x6f, - 0xa0, 0x35, 0x2a, 0xdf, 0xda, 0x91, 0x6f, 0xfb, 0xaa, 0x31, 0x11, 0xea, 0x56, 0x0b, 0xc3, 0x91, - 0xf1, 0xf1, 0x35, 0xb5, 0x9c, 0xaf, 0xb6, 0x79, 0xb0, 0x7a, 0xbb, 0xd4, 0x29, 0x4f, 0xc8, 0xb2, - 0x43, 0xc3, 0x02, 0x7d, 0x72, 0x5d, 0x35, 0x6a, 0xac, 0x38, 0xb0, 0xfc, 0x0e, 0xcb, 0x93, 0x81, - 0x86, 0xbd, 0x2f, 0xb3, 0x7c, 0x74, 0x3d, 0x25, 0x55, 0x96, 0x7f, 0x1f, 0x45, 0x77, 0x3d, 0xd6, - 0x3e, 0x4f, 0x00, 0xa7, 0x1e, 0x3f, 0x08, 0xd8, 0xa7, 0x94, 0x4c, 0xe1, 0x7e, 0xeb, 0x9b, 0x29, - 0xdb, 0x4f, 0x9c, 0x79, 0x2a, 0xcf, 0xb3, 0x5c, 0xb0, 0xaa, 0xfb, 0x89, 0x33, 0xdf, 0x6e, 0x4b, - 0x4d, 0xe8, 0x4f, 0x9c, 0x05, 0x70, 0xe7, 0x13, 0x67, 0x88, 0x67, 0xf4, 0x13, 0x67, 0xa8, 0xb5, - 0xe0, 0x27, 0xce, 0xc2, 0x1a, 0xd4, 0xf4, 0xae, 0x8b, 0xd0, 0x9e, 0x5b, 0x0f, 0xb2, 0xe8, 0x1f, - 0x63, 0x3f, 0xbe, 0x8e, 0x0a, 0xb1, 0xc0, 0xb5, 0x9c, 0xbc, 0xd1, 0x38, 0xa0, 0x4d, 0xbd, 0x5b, - 0x8d, 0x5b, 0x83, 0x79, 0xe5, 0xfb, 0xc7, 0x6a, 0x77, 0x63, 0xa6, 0x73, 0x5e, 0xc9, 0xcf, 0xdb, - 0x6d, 0x84, 0xa6, 0xe7, 0xc6, 0x82, 0xdb, 0xf3, 0x0f, 0x87, 0xc1, 0x44, 0x75, 0x1b, 0x42, 0x75, - 0xfa, 0xa4, 0xcf, 0x10, 0xe8, 0xf2, 0xad, 0xc1, 0x3c, 0xb1, 0x8c, 0xb4, 0xbe, 0xdb, 0xde, 0x1e, - 0x60, 0xcc, 0xef, 0xeb, 0x47, 0xc3, 0x15, 0x94, 0xfb, 0x2b, 0x95, 0x36, 0xba, 0xee, 0x65, 0x3f, - 0x6f, 0xf6, 0x99, 0x9a, 0x79, 0xdd, 0x3c, 0x19, 0x8a, 0x87, 0x12, 0x08, 0x77, 0x09, 0xed, 0x4b, - 0x20, 0xd0, 0x65, 0xf4, 0xa3, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xfd, 0x28, 0xba, 0x49, 0x96, 0x45, - 0xc5, 0xc1, 0x27, 0x43, 0x2d, 0x83, 0x78, 0xf8, 0xf4, 0xda, 0x7a, 0xaa, 0x50, 0xff, 0x34, 0x8a, - 0x6e, 0x05, 0x0a, 0xd5, 0x06, 0xc8, 0x35, 0xac, 0xfb, 0x81, 0xf2, 0xd9, 0xf5, 0x15, 0xa9, 0xe5, - 0xde, 0xc5, 0x67, 0xdd, 0xcf, 0x6f, 0x05, 0x6c, 0xcf, 0xe8, 0xcf, 0x6f, 0xf5, 0x6b, 0xc1, 0x43, - 0x9e, 0xf8, 0x4c, 0x6f, 0xba, 0xd0, 0x43, 0x1e, 0x79, 0x17, 0x31, 0xf8, 0x19, 0x11, 0x8c, 0xc3, - 0x9c, 0x3c, 0x7b, 0x5d, 0xc6, 0x45, 0x4a, 0x3b, 0x69, 0xe5, 0xfd, 0x4e, 0x0c, 0x07, 0x0f, 0xc7, - 0x1a, 0xe9, 0x31, 0xd7, 0x1b, 0xa9, 0xfb, 0x94, 0xbe, 0x41, 0x82, 0x87, 0x63, 0x1d, 0x94, 0xf0, - 0xa6, 0xb2, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0x18, 0x82, 0x82, 0x14, 0xdd, 0x78, 0x33, 0x67, - 0xee, 0x0f, 0x43, 0x56, 0x3a, 0xe7, 0xee, 0x9b, 0x03, 0x69, 0xc2, 0xed, 0x8c, 0x89, 0xcf, 0x59, - 0x9c, 0xb2, 0x2a, 0xe8, 0xd6, 0x50, 0x83, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x9b, 0xe7, 0xcb, 0x45, - 0xa1, 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xfd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, - 0x3e, 0x08, 0x9b, 0xf1, 0xb2, 0xca, 0x8d, 0x41, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x3d, 0xf5, 0x04, - 0x91, 0xb4, 0x39, 0x90, 0x86, 0xe7, 0x73, 0x8e, 0x5b, 0x13, 0x4f, 0x5b, 0x3d, 0xb6, 0x3a, 0x21, - 0xf5, 0x68, 0xb8, 0x02, 0x3c, 0x0d, 0x55, 0x51, 0xb5, 0x9f, 0xd5, 0xe2, 0x79, 0x96, 0xe7, 0xe3, - 0x8d, 0x40, 0x98, 0x68, 0x28, 0x78, 0x1a, 0x8a, 0xc0, 0x44, 0x24, 0xeb, 0xd3, 0xc3, 0x62, 0xdc, - 0x67, 0x47, 0x52, 0x83, 0x22, 0xd9, 0xa5, 0xc1, 0x89, 0x96, 0xd3, 0xd4, 0xa6, 0xb6, 0x93, 0x70, - 0xc3, 0x75, 0x2a, 0xbc, 0x35, 0x98, 0x07, 0x8f, 0xdb, 0x25, 0x25, 0x57, 0x96, 0x3b, 0x94, 0x09, - 0x6f, 0x25, 0xb9, 0xdb, 0x43, 0x81, 0x53, 0xc1, 0x76, 0x18, 0xbd, 0xcc, 0xd2, 0x39, 0x13, 0xe8, - 0x93, 0x22, 0x17, 0x08, 0x3e, 0x29, 0x02, 0x20, 0xe8, 0xba, 0xf6, 0xef, 0xe6, 0x38, 0x74, 0x2f, - 0xc5, 0xba, 0x4e, 0x29, 0x3b, 0x54, 0xa8, 0xeb, 0x50, 0x1a, 0xcc, 0x06, 0xc6, 0xad, 0xfa, 0xf0, - 0xc2, 0x83, 0x90, 0x19, 0xf0, 0xf5, 0x85, 0x8d, 0x41, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x6c, 0x91, - 0x09, 0x6c, 0x45, 0x71, 0x6c, 0x34, 0x48, 0x68, 0x45, 0xe9, 0xa2, 0x54, 0xf5, 0x9a, 0x1c, 0x61, - 0x2f, 0x0d, 0x57, 0xaf, 0x65, 0x86, 0x55, 0xcf, 0xb0, 0x9d, 0x07, 0x9b, 0x85, 0x09, 0x19, 0x71, - 0xa1, 0x36, 0xcb, 0x48, 0x6c, 0xcb, 0x17, 0x72, 0x21, 0x18, 0x9a, 0x75, 0x28, 0x05, 0x78, 0x60, - 0xdf, 0x70, 0xfa, 0xd9, 0x6b, 0x59, 0xb2, 0xb8, 0x8a, 0x8b, 0x04, 0xdd, 0x9c, 0x4a, 0x83, 0x1d, - 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x55, 0x5a, 0x64, 0x28, 0x98, 0x77, 0x56, - 0xfd, 0x37, 0x69, 0xef, 0x0f, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xd6, 0xe9, 0x87, - 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x20, 0xa8, 0x4d, 0x82, 0xcb, 0xc4, 0x8f, 0xd8, - 0x0a, 0x0b, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0x14, 0xd4, 0x5d, 0x14, 0xe4, 0x99, 0xee, 0x3e, 0x68, - 0x2d, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7b, 0x39, 0x30, 0x72, 0x76, 0xb2, 0x2b, 0xef, 0x39, 0x01, - 0x52, 0xd0, 0x9d, 0xec, 0x0a, 0x7f, 0x4c, 0xb0, 0x31, 0x88, 0x85, 0x8f, 0xe4, 0x63, 0xc1, 0x5e, - 0xeb, 0x67, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf3, 0xb0, 0xfc, 0x5e, 0x3f, 0x68, 0x2f, 0xc0, 0x1e, - 0x55, 0x3c, 0x61, 0x75, 0xad, 0xbe, 0x49, 0xea, 0xdf, 0x30, 0x52, 0xb2, 0x09, 0xf8, 0x22, 0xe9, - 0x9d, 0x30, 0xe4, 0x7c, 0x48, 0xb0, 0x15, 0xd9, 0xef, 0x1b, 0xad, 0xa1, 0x9a, 0xdd, 0x4f, 0x1b, - 0xad, 0xf7, 0x72, 0x76, 0x78, 0x29, 0xa9, 0xfb, 0x41, 0xa3, 0x7b, 0xa8, 0x3a, 0xf6, 0x2d, 0xa3, - 0xfb, 0x03, 0x48, 0xe5, 0xea, 0xf3, 0xe8, 0xcd, 0x7d, 0x3e, 0x9f, 0xb1, 0x22, 0x1d, 0x7f, 0xcf, - 0xbf, 0x42, 0xcb, 0xe7, 0x93, 0xe6, 0xcf, 0xc6, 0xe8, 0x0d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb0, - 0xb3, 0xe5, 0x7c, 0x26, 0x62, 0x01, 0x2e, 0x01, 0xca, 0xbf, 0x4f, 0x1a, 0x01, 0x71, 0x09, 0xd0, - 0x03, 0x80, 0xbd, 0x93, 0x8a, 0x31, 0xd4, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0xcd, 0x22, 0x8c, - 0xbd, 0x26, 0x51, 0x87, 0x97, 0xf6, 0xac, 0x8e, 0x94, 0x12, 0x59, 0x44, 0x97, 0xb2, 0xc1, 0xdd, - 0x56, 0x5f, 0x7e, 0x5f, 0x66, 0xb9, 0x58, 0xc4, 0xd5, 0x0a, 0x04, 0xb7, 0xaa, 0xa5, 0x03, 0x10, - 0xc1, 0x8d, 0x82, 0x76, 0xd4, 0xea, 0x66, 0x4e, 0x2e, 0x77, 0x79, 0xc5, 0x97, 0x22, 0x2b, 0x18, - 0xfc, 0xc6, 0x88, 0x69, 0x50, 0x97, 0x21, 0x46, 0x2d, 0xc5, 0xda, 0x2c, 0x57, 0x12, 0xed, 0x7d, - 0x42, 0xf9, 0x99, 0xf4, 0x5a, 0xf0, 0x0a, 0x3e, 0x4f, 0x6c, 0xad, 0x40, 0x88, 0xc8, 0x72, 0x49, - 0x18, 0xf4, 0xfd, 0x51, 0x56, 0xcc, 0xd1, 0xbe, 0x3f, 0x72, 0xbf, 0xf3, 0x7b, 0x8b, 0x06, 0xec, - 0x80, 0x6a, 0x1b, 0xad, 0x1d, 0x00, 0xea, 0xad, 0x5d, 0xb4, 0xd1, 0x5d, 0x82, 0x18, 0x50, 0x38, - 0x09, 0x5c, 0x7d, 0x51, 0xb2, 0x82, 0xa5, 0xfa, 0xd6, 0x1c, 0xe6, 0xca, 0x23, 0x82, 0xae, 0x20, - 0x69, 0xe7, 0x22, 0x29, 0x3f, 0x5e, 0x16, 0x47, 0x15, 0x3f, 0xcf, 0x72, 0x56, 0x81, 0xb9, 0xa8, - 0x55, 0x77, 0xe4, 0xc4, 0x5c, 0x84, 0x71, 0xf6, 0xfa, 0x85, 0x94, 0x7a, 0xdf, 0xfa, 0x3f, 0xa9, - 0xe2, 0x04, 0x5e, 0xbf, 0x68, 0x6d, 0x74, 0x31, 0xe2, 0x64, 0x30, 0x80, 0x3b, 0x89, 0x4e, 0xeb, - 0xba, 0x58, 0xc9, 0xf8, 0x50, 0x6f, 0x8d, 0xca, 0xaf, 0xdf, 0xd6, 0x20, 0xd1, 0x51, 0xe6, 0x30, - 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, 0xa1, 0xba, 0x56, 0x04, 0x96, 0x92, 0xd6, - 0x86, 0x16, 0x12, 0x4b, 0x49, 0x07, 0x02, 0x13, 0x92, 0x1e, 0x06, 0x73, 0x74, 0x42, 0x32, 0xd2, - 0xe0, 0x84, 0xe4, 0x52, 0x76, 0xa2, 0xd8, 0x2b, 0x32, 0x91, 0xc5, 0xf9, 0x8c, 0x89, 0xa3, 0xb8, - 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x4e, 0x14, 0x0a, 0x99, 0x78, 0x0c, 0x31, 0x51, 0x50, 0xac, 0x72, - 0xf8, 0xdb, 0xd1, 0xdb, 0xcd, 0xba, 0xcf, 0x0a, 0xf5, 0xab, 0x3e, 0xcf, 0xe4, 0xcf, 0x81, 0x8d, - 0xdf, 0x31, 0x36, 0x66, 0xa2, 0x62, 0xf1, 0x42, 0xdb, 0x7e, 0xcb, 0xfc, 0x5d, 0x82, 0x8f, 0x46, - 0x4d, 0x3c, 0x1f, 0x72, 0x91, 0x9d, 0x37, 0xdb, 0x6c, 0xf5, 0x06, 0x11, 0x88, 0x67, 0x57, 0x3c, - 0x09, 0x7c, 0x75, 0x04, 0xe3, 0xec, 0x3c, 0xed, 0x4a, 0x8f, 0x59, 0x99, 0xc3, 0x79, 0xda, 0xd3, - 0x96, 0x00, 0x31, 0x4f, 0xa3, 0xa0, 0x1d, 0x9c, 0xae, 0xf8, 0x84, 0x85, 0x2b, 0x73, 0xc2, 0x86, - 0x55, 0xe6, 0xc4, 0x7b, 0x29, 0x23, 0x8f, 0xde, 0x3e, 0x60, 0x8b, 0x33, 0x56, 0xd5, 0x17, 0x59, - 0x49, 0x7d, 0xa1, 0xd7, 0x12, 0xbd, 0x5f, 0xe8, 0x25, 0x50, 0xbb, 0x12, 0x58, 0x60, 0xaf, 0x3e, - 0x8c, 0x17, 0x4c, 0x7e, 0x43, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, 0x22, 0x56, 0x02, 0x12, 0x76, - 0xde, 0xef, 0xb2, 0xcc, 0x31, 0x9b, 0x37, 0x11, 0x56, 0x1d, 0xc5, 0xab, 0x05, 0x2b, 0x84, 0x32, - 0x09, 0xce, 0xe4, 0x1d, 0x93, 0x38, 0x4f, 0x9c, 0xc9, 0x0f, 0xd1, 0x73, 0xa6, 0x26, 0xaf, 0xe1, - 0x8f, 0x78, 0x25, 0xda, 0xdf, 0xec, 0x3a, 0xad, 0x72, 0x30, 0x35, 0xf9, 0x8d, 0xea, 0x91, 0xc4, - 0xd4, 0x14, 0xd6, 0x70, 0x7e, 0x6f, 0xc2, 0x2b, 0xc3, 0x0b, 0x56, 0x99, 0x38, 0x79, 0xb6, 0x88, - 0xb3, 0x5c, 0x45, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xf7, 0x26, 0x86, 0xea, 0x3a, 0xbf, - 0xd0, 0x11, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x63, 0x9f, 0x78, 0x44, 0xd0, 0xaf, 0x65, 0x77, 0xee, - 0x96, 0x95, 0xdc, 0x4a, 0x12, 0xdb, 0x3c, 0x85, 0xe7, 0x85, 0x8e, 0x4d, 0x00, 0x12, 0x3b, 0xf7, - 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xf6, 0x3c, 0x2b, 0xe2, 0x3c, 0xfb, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x32, 0x71, 0x92, 0x35, 0x53, 0xff, 0xbd, 0x40, - 0xbb, 0x49, 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0x3a, 0x2d, 0xcb, 0x59, 0xb3, - 0xaa, 0x1e, 0xb3, 0x84, 0x65, 0xa5, 0x18, 0x7f, 0x1c, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x06, - 0xa8, 0x39, 0x8f, 0xef, 0x9b, 0xb9, 0x64, 0xd6, 0xfe, 0x98, 0xe5, 0x69, 0xcd, 0x2a, 0x95, 0x68, - 0xec, 0x32, 0x01, 0x46, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3a, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0xd4, 0xd7, 0xd5, 0xe5, 0x7d, 0xc3, 0x87, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, - 0x68, 0xda, 0x66, 0x6b, 0x5d, 0xb7, 0xd3, 0x62, 0xb5, 0x07, 0xaf, 0x4c, 0x20, 0x96, 0x24, 0x46, - 0x64, 0x6b, 0x01, 0xdc, 0x39, 0x0c, 0xaf, 0x78, 0x9c, 0x26, 0x71, 0x2d, 0x8e, 0xe2, 0x55, 0xce, - 0xe3, 0x54, 0xae, 0xeb, 0xf0, 0x30, 0x5c, 0x33, 0x13, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, - 0xce, 0xe4, 0x6f, 0x74, 0xaa, 0xbb, 0x9c, 0x30, 0x3b, 0x93, 0xe5, 0x85, 0xf7, 0x38, 0xef, 0x84, - 0x21, 0xfb, 0x0e, 0x5a, 0x2b, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40, 0xde, 0x0f, 0x10, - 0xf6, 0x0b, 0x24, 0xed, 0xdf, 0xf5, 0xcf, 0x4c, 0x09, 0xf5, 0xcd, 0xf2, 0x87, 0x98, 0xae, 0x0b, - 0x4d, 0xdc, 0x0f, 0x59, 0x6c, 0x0e, 0xa4, 0x6d, 0x9a, 0xb9, 0x7d, 0x11, 0x8b, 0x69, 0x9a, 0x1e, - 0xb0, 0x1a, 0x79, 0xa1, 0xbc, 0x11, 0x4e, 0xac, 0x94, 0x48, 0x33, 0xbb, 0x94, 0x0d, 0xf4, 0x46, - 0xf6, 0x2c, 0xcd, 0x84, 0x92, 0xe9, 0x1b, 0xd2, 0x0f, 0xbb, 0x06, 0xba, 0x14, 0x51, 0x2b, 0x9a, - 0xb6, 0x73, 0x79, 0xc3, 0x9c, 0xf0, 0xf9, 0x3c, 0x67, 0x0a, 0x3a, 0x66, 0x71, 0xfb, 0xc9, 0xc6, - 0xad, 0xae, 0x2d, 0x14, 0x24, 0xe6, 0xf2, 0xa0, 0x82, 0x4d, 0x23, 0x1b, 0xac, 0x7d, 0x24, 0xa5, - 0x1b, 0x76, 0xbd, 0x6b, 0xc6, 0x03, 0x88, 0x34, 0x12, 0x05, 0xed, 0x7b, 0x6f, 0x8d, 0x78, 0x97, - 0xe9, 0x96, 0x80, 0x1f, 0x9b, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, - 0x78, 0x78, 0xba, 0xda, 0x4b, 0xe1, 0x3e, 0x01, 0xea, 0x4b, 0x86, 0xd8, 0x27, 0x50, 0xac, 0xdf, - 0x75, 0xe6, 0xdc, 0x6b, 0x3f, 0xae, 0x6d, 0xe5, 0x90, 0xae, 0x43, 0xc1, 0x50, 0xd7, 0x51, 0x0a, - 0x7e, 0x93, 0xba, 0x47, 0x6b, 0x48, 0x93, 0x62, 0xe7, 0x6a, 0x6b, 0x7d, 0x98, 0x9d, 0x97, 0xcc, - 0x7e, 0x52, 0x5e, 0x59, 0xc2, 0x7f, 0xab, 0xa1, 0x15, 0x12, 0xf3, 0x52, 0x07, 0x6a, 0x6d, 0x3f, - 0x7d, 0xff, 0x3f, 0xbf, 0xba, 0x31, 0xfa, 0xd9, 0x57, 0x37, 0x46, 0xff, 0xf3, 0xd5, 0x8d, 0xd1, - 0x4f, 0xbf, 0xbe, 0xf1, 0xc6, 0xcf, 0xbe, 0xbe, 0xf1, 0xc6, 0x7f, 0x7f, 0x7d, 0xe3, 0x8d, 0x2f, - 0xdf, 0x54, 0xbf, 0xdd, 0x7c, 0xf6, 0x73, 0xf2, 0x17, 0x98, 0x9f, 0xfc, 0x5f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x95, 0x51, 0xdf, 0xf9, 0xdf, 0x79, 0x00, 0x00, + // 5514 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, + 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, + 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x82, 0x1e, 0x7b, 0xec, 0xf5, + 0x9d, 0xed, 0x35, 0xee, 0xf6, 0x8c, 0xb4, 0x12, 0x12, 0xe5, 0xaa, 0x74, 0xbb, 0x70, 0x75, 0x65, + 0x5d, 0x55, 0x76, 0x7b, 0xfa, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x9c, 0xf8, 0x27, 0x78, 0x42, + 0x42, 0x7c, 0x00, 0x3e, 0x06, 0x8f, 0xf7, 0xc8, 0x23, 0xda, 0xfd, 0x0a, 0x7c, 0x00, 0x54, 0xf9, + 0x3f, 0xa3, 0x32, 0xb2, 0xca, 0xcb, 0xd3, 0x8c, 0x1c, 0xbf, 0x88, 0xc8, 0xac, 0x8c, 0xcc, 0x8c, + 0xcc, 0xca, 0xca, 0x8e, 0xee, 0x96, 0x17, 0x3b, 0x65, 0x45, 0x19, 0xad, 0x77, 0x6a, 0x52, 0x2d, + 0xb3, 0x84, 0xa8, 0x7f, 0x47, 0xfc, 0xcf, 0xc3, 0x37, 0xe3, 0x62, 0xc5, 0x56, 0x25, 0x79, 0xef, + 0x5d, 0x43, 0x26, 0x74, 0x3e, 0x8f, 0x8b, 0xb4, 0x16, 0xc8, 0x7b, 0xef, 0x18, 0x09, 0x59, 0x92, + 0x82, 0xc9, 0xbf, 0x3f, 0xfd, 0x8f, 0xff, 0x1d, 0x44, 0x6f, 0xed, 0xe6, 0x19, 0x29, 0xd8, 0xae, + 0xd4, 0x18, 0x7e, 0x19, 0x7d, 0x7b, 0x5c, 0x96, 0x07, 0x84, 0xbd, 0x24, 0x55, 0x9d, 0xd1, 0x62, + 0xf8, 0xc1, 0x48, 0x3a, 0x18, 0x9d, 0x95, 0xc9, 0x68, 0x5c, 0x96, 0x23, 0x23, 0x1c, 0x9d, 0x91, + 0x1f, 0x2f, 0x48, 0xcd, 0xde, 0x7b, 0x10, 0x86, 0xea, 0x92, 0x16, 0x35, 0x19, 0x5e, 0x46, 0xbf, + 0x32, 0x2e, 0xcb, 0x09, 0x61, 0x7b, 0xa4, 0xa9, 0xc0, 0x84, 0xc5, 0x8c, 0x0c, 0xd7, 0x5b, 0xaa, + 0x2e, 0xa0, 0x7d, 0x6c, 0x74, 0x83, 0xd2, 0xcf, 0x34, 0xfa, 0x56, 0xe3, 0xe7, 0x6a, 0xc1, 0x52, + 0x7a, 0x53, 0x0c, 0xdf, 0x6f, 0x2b, 0x4a, 0x91, 0xb6, 0x7d, 0x3f, 0x84, 0x48, 0xab, 0xaf, 0xa2, + 0x5f, 0x7c, 0x15, 0xe7, 0x39, 0x61, 0xbb, 0x15, 0x69, 0x0a, 0xee, 0xea, 0x08, 0xd1, 0x48, 0xc8, + 0xb4, 0xdd, 0x0f, 0x82, 0x8c, 0x34, 0xfc, 0x65, 0xf4, 0x6d, 0x21, 0x39, 0x23, 0x09, 0x5d, 0x92, + 0x6a, 0xe8, 0xd5, 0x92, 0x42, 0xe4, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x97, 0x16, 0x4b, 0x52, 0x31, + 0xbf, 0x6d, 0x29, 0x0c, 0xdb, 0x36, 0x90, 0xb4, 0xfd, 0x57, 0x83, 0xe8, 0xbb, 0xe3, 0x24, 0xa1, + 0x8b, 0x82, 0x1d, 0xd1, 0x24, 0xce, 0x8f, 0xb2, 0xe2, 0xfa, 0x84, 0xdc, 0xec, 0x5e, 0x35, 0x7c, + 0x31, 0x23, 0xc3, 0x67, 0xee, 0x53, 0x15, 0xe8, 0x48, 0xb3, 0x23, 0x1b, 0xd6, 0xbe, 0x3f, 0xba, + 0x9d, 0x92, 0x2c, 0xcb, 0xdf, 0x0d, 0xa2, 0x3b, 0xb0, 0x2c, 0x13, 0x9a, 0x2f, 0x89, 0x29, 0xcd, + 0xc7, 0x1d, 0x86, 0x5d, 0x5c, 0x97, 0xe7, 0x93, 0xdb, 0xaa, 0xc9, 0x12, 0xe5, 0xd1, 0xdb, 0x76, + 0xb8, 0x4c, 0x48, 0xcd, 0xbb, 0xd3, 0x23, 0x3c, 0x22, 0x24, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x4a, + 0x6f, 0x59, 0x34, 0x94, 0xde, 0x72, 0x5a, 0x6b, 0x67, 0x1b, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, + 0xea, 0x41, 0x4a, 0x57, 0xbf, 0x1f, 0xfd, 0xd2, 0x2b, 0x5a, 0x5d, 0xd7, 0x65, 0x9c, 0x10, 0xd9, + 0x15, 0x1e, 0xba, 0xda, 0x4a, 0x0a, 0x7b, 0xc3, 0x5a, 0x17, 0x66, 0x05, 0xad, 0x12, 0x7e, 0x51, + 0x12, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x88, 0x05, 0x2d, 0x84, 0xa4, 0xed, 0xeb, 0x68, 0x68, 0x6c, + 0x5f, 0xfc, 0x01, 0x49, 0xd8, 0x38, 0x4d, 0x61, 0xab, 0x18, 0x5d, 0x4e, 0x8c, 0xc6, 0x69, 0x8a, + 0xb5, 0x8a, 0x1f, 0x95, 0xce, 0x6e, 0xa2, 0x77, 0x80, 0xb3, 0xa3, 0xac, 0xe6, 0x0e, 0xb7, 0xc3, + 0x56, 0x24, 0xa6, 0x9d, 0x8e, 0xfa, 0xe2, 0xd2, 0xf1, 0x9f, 0x0c, 0xa2, 0xef, 0x78, 0x3c, 0x9f, + 0x91, 0x39, 0x5d, 0x92, 0xe1, 0x93, 0x6e, 0x6b, 0x82, 0xd4, 0xfe, 0x3f, 0xbc, 0x85, 0x86, 0x27, + 0x4c, 0x26, 0x24, 0x27, 0x09, 0x43, 0xc3, 0x44, 0x88, 0x3b, 0xc3, 0x44, 0x63, 0x56, 0x0f, 0x53, + 0xc2, 0x03, 0xc2, 0x76, 0x17, 0x55, 0x45, 0x0a, 0x86, 0xb6, 0xa5, 0x41, 0x3a, 0xdb, 0xd2, 0x41, + 0x3d, 0xf5, 0x39, 0x20, 0x6c, 0x9c, 0xe7, 0x68, 0x7d, 0x84, 0xb8, 0xb3, 0x3e, 0x1a, 0x93, 0x1e, + 0x92, 0xe8, 0x97, 0xad, 0x27, 0xc6, 0x0e, 0x8b, 0x4b, 0x3a, 0xc4, 0x9f, 0x05, 0x97, 0x6b, 0x1f, + 0xeb, 0x9d, 0x9c, 0xa7, 0x1a, 0x2f, 0x5e, 0x97, 0xb4, 0xc2, 0x9b, 0x45, 0x88, 0x3b, 0xab, 0xa1, + 0x31, 0xe9, 0xe1, 0xf7, 0xa2, 0xb7, 0xe4, 0x28, 0xa9, 0xe6, 0xb3, 0x07, 0xde, 0x21, 0x14, 0x4e, + 0x68, 0x0f, 0x3b, 0xa8, 0x96, 0xf9, 0xe3, 0x6c, 0x56, 0x35, 0xa3, 0x8f, 0xdf, 0xbc, 0x94, 0x76, + 0x98, 0x37, 0x94, 0x34, 0x4f, 0xa3, 0x5f, 0x75, 0xcd, 0xef, 0xc6, 0x45, 0x42, 0xf2, 0xe1, 0xe3, + 0x90, 0xba, 0x60, 0xb4, 0xab, 0xcd, 0x5e, 0xac, 0x19, 0xec, 0x24, 0x21, 0x07, 0xd3, 0x0f, 0xbc, + 0xda, 0x60, 0x28, 0x7d, 0x10, 0x86, 0x5a, 0xb6, 0xf7, 0x48, 0x4e, 0x50, 0xdb, 0x42, 0xd8, 0x61, + 0x5b, 0x43, 0xd2, 0x76, 0x15, 0xfd, 0x9a, 0x6e, 0xe6, 0x26, 0x2f, 0xe0, 0xf2, 0x66, 0xd2, 0xd9, + 0x44, 0xda, 0xd1, 0x86, 0xb4, 0xaf, 0xad, 0x7e, 0x70, 0xab, 0x3e, 0x72, 0x44, 0xf1, 0xd7, 0x07, + 0x8c, 0x27, 0x0f, 0xc2, 0x90, 0xb4, 0xfd, 0xd7, 0x83, 0xe8, 0x7b, 0x52, 0xf6, 0xa2, 0x88, 0x2f, + 0x72, 0xc2, 0xa7, 0xf8, 0x13, 0xc2, 0x6e, 0x68, 0x75, 0x3d, 0x59, 0x15, 0x09, 0x92, 0xce, 0xf8, + 0xe1, 0x8e, 0x74, 0x06, 0x55, 0x92, 0x85, 0xf9, 0xc3, 0xe8, 0x5d, 0x15, 0x14, 0x57, 0x71, 0x31, + 0x23, 0x3f, 0xac, 0x69, 0x31, 0x2e, 0xb3, 0x71, 0x9a, 0x56, 0xc3, 0x91, 0xbf, 0xe9, 0x21, 0xa7, + 0x4b, 0xb0, 0xd3, 0x9b, 0xb7, 0xd2, 0x67, 0xf9, 0x94, 0x19, 0x2d, 0x61, 0xfa, 0xac, 0x1e, 0x1f, + 0xa3, 0x25, 0x96, 0x3e, 0xbb, 0x48, 0xcb, 0xea, 0x71, 0x33, 0x07, 0xf9, 0xad, 0x1e, 0xdb, 0x93, + 0xce, 0xfd, 0x10, 0x62, 0xe6, 0x00, 0xf5, 0xa0, 0x68, 0x71, 0x99, 0xcd, 0xce, 0xcb, 0xb4, 0xe9, + 0x43, 0x8f, 0xfc, 0x75, 0xb6, 0x10, 0x64, 0x0e, 0x40, 0x50, 0xe9, 0xed, 0x6f, 0x4d, 0x96, 0x29, + 0xc7, 0xa5, 0xfd, 0x8a, 0xce, 0x8f, 0xc8, 0x2c, 0x4e, 0x56, 0x72, 0x30, 0xfd, 0x28, 0x34, 0x8a, + 0x41, 0x5a, 0x17, 0xe2, 0xe3, 0x5b, 0x6a, 0xc9, 0xf2, 0xfc, 0xdb, 0x20, 0x7a, 0xe0, 0xc4, 0x89, + 0x0c, 0x26, 0x51, 0xfa, 0x71, 0x91, 0x9e, 0x91, 0x9a, 0xc5, 0x15, 0x1b, 0x7e, 0x3f, 0x10, 0x03, + 0x88, 0x8e, 0x2e, 0xdb, 0x0f, 0xbe, 0x91, 0xae, 0x69, 0xf5, 0x49, 0x33, 0x4b, 0xc8, 0xf1, 0xc7, + 0x6d, 0x75, 0x2e, 0x81, 0xa3, 0xcf, 0xfd, 0x10, 0x62, 0x5a, 0x9d, 0x0b, 0x0e, 0x8b, 0x65, 0xc6, + 0xc8, 0x01, 0x29, 0x48, 0xd5, 0x6e, 0x75, 0xa1, 0xea, 0x22, 0x48, 0xab, 0x23, 0xa8, 0x19, 0xe9, + 0x1c, 0x6f, 0x3a, 0xd3, 0xd8, 0x0c, 0x18, 0x69, 0xe5, 0x1a, 0x5b, 0xfd, 0x60, 0xb3, 0x54, 0xb6, + 0x7c, 0x9e, 0x91, 0x25, 0xbd, 0x86, 0x4b, 0x65, 0xdb, 0x84, 0x00, 0x90, 0xa5, 0xb2, 0x17, 0x34, + 0xe9, 0x80, 0xe5, 0xe7, 0x65, 0x46, 0x6e, 0x40, 0x3a, 0x60, 0x2b, 0x37, 0x62, 0x24, 0x1d, 0xf0, + 0x60, 0xd2, 0xc3, 0x49, 0xf4, 0x0b, 0x5c, 0xf8, 0x43, 0x9a, 0x15, 0xc3, 0xbb, 0x1e, 0xa5, 0x46, + 0xa0, 0xad, 0xde, 0xc3, 0x01, 0x50, 0xe2, 0xe6, 0xaf, 0x72, 0x6e, 0x7e, 0x88, 0x28, 0x81, 0x69, + 0x79, 0xad, 0x0b, 0x33, 0x79, 0x18, 0x17, 0x36, 0xe3, 0xd7, 0xe4, 0x2a, 0xae, 0xb2, 0x62, 0x36, + 0xf4, 0xe9, 0x5a, 0x72, 0x24, 0x0f, 0xf3, 0x71, 0x20, 0x84, 0xa5, 0xe2, 0xb8, 0x2c, 0xab, 0x66, + 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04, 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x91, 0x24, 0xcf, 0x8a, + 0xa0, 0x37, 0x89, 0xf4, 0xf1, 0x66, 0x50, 0x10, 0xbc, 0x47, 0x24, 0x5e, 0x12, 0x55, 0x33, 0xdf, + 0x93, 0xb1, 0x81, 0x60, 0xf0, 0x02, 0xd0, 0x2c, 0x7a, 0xb9, 0xf8, 0x38, 0xbe, 0x26, 0xcd, 0x03, + 0x26, 0xcd, 0xa4, 0x3a, 0xf4, 0xe9, 0x3b, 0x04, 0xb2, 0xe8, 0xf5, 0x93, 0xd2, 0xd5, 0x22, 0x7a, + 0x87, 0xcb, 0x4f, 0xe3, 0x8a, 0x65, 0x49, 0x56, 0xc6, 0x85, 0x5a, 0x4c, 0xf9, 0xfa, 0x75, 0x8b, + 0xd2, 0x2e, 0xb7, 0x7b, 0xd2, 0xd2, 0xed, 0x3f, 0x0f, 0xa2, 0xf7, 0xa1, 0xdf, 0x53, 0x52, 0xcd, + 0x33, 0xbe, 0x26, 0xaf, 0xc5, 0x20, 0x3c, 0xfc, 0x34, 0x6c, 0xb4, 0xa5, 0xa0, 0x4b, 0xf3, 0xd9, + 0xed, 0x15, 0x4d, 0x26, 0x36, 0x91, 0xeb, 0x94, 0x2f, 0xaa, 0xb4, 0xb5, 0x67, 0x35, 0x51, 0x8b, + 0x0f, 0x2e, 0x44, 0x32, 0xb1, 0x16, 0x04, 0x7a, 0xf8, 0x79, 0x51, 0x2b, 0xeb, 0xbe, 0x1e, 0x6e, + 0xc4, 0xc1, 0x1e, 0xee, 0x60, 0xa6, 0x87, 0x9f, 0x2e, 0x2e, 0xf2, 0xac, 0xbe, 0xca, 0x8a, 0x99, + 0x4c, 0xbb, 0x5d, 0x5d, 0x23, 0x86, 0x99, 0xf7, 0x7a, 0x27, 0xe7, 0x73, 0x22, 0x83, 0x05, 0x75, + 0x02, 0xc2, 0x64, 0xbd, 0x93, 0x33, 0xab, 0x21, 0x23, 0x6d, 0x96, 0xe1, 0x60, 0x35, 0x64, 0xa9, + 0x36, 0x52, 0x64, 0x35, 0xd4, 0xa6, 0xcc, 0x6a, 0xc8, 0xae, 0x43, 0x4d, 0xf3, 0x25, 0x39, 0xaf, + 0x32, 0xb0, 0x1a, 0x72, 0xca, 0xa7, 0x18, 0x64, 0x35, 0x84, 0xb1, 0x66, 0xa0, 0x32, 0xc4, 0x01, + 0x61, 0x13, 0x16, 0xb3, 0x45, 0x0d, 0x06, 0x2a, 0xcb, 0x86, 0x46, 0x90, 0x81, 0x0a, 0x41, 0xa5, + 0xb7, 0xdf, 0x8d, 0x22, 0xb1, 0x83, 0xc1, 0x77, 0x99, 0xdc, 0xb9, 0x47, 0x6e, 0x6d, 0x38, 0x5b, + 0x4c, 0xef, 0x07, 0x08, 0x93, 0xf0, 0x88, 0xbf, 0xf3, 0xcd, 0xb3, 0xa1, 0x57, 0x83, 0x8b, 0x90, + 0x84, 0x07, 0x20, 0xb0, 0xa0, 0x93, 0x2b, 0x7a, 0xe3, 0x2f, 0x68, 0x23, 0x09, 0x17, 0x54, 0x12, + 0x66, 0x3b, 0x5b, 0x16, 0xd4, 0xb7, 0x9d, 0xad, 0x8a, 0x11, 0xda, 0xce, 0x86, 0x8c, 0x89, 0x19, + 0xdb, 0xf0, 0x73, 0x4a, 0xaf, 0xe7, 0x71, 0x75, 0x0d, 0x62, 0xc6, 0x51, 0x56, 0x0c, 0x12, 0x33, + 0x18, 0x6b, 0x62, 0xc6, 0x76, 0xd8, 0xa4, 0xcb, 0xe7, 0x55, 0x0e, 0x62, 0xc6, 0xb1, 0x21, 0x11, + 0x24, 0x66, 0x10, 0xd4, 0x8c, 0x4e, 0xb6, 0xb7, 0x09, 0x81, 0x1b, 0x28, 0x8e, 0xfa, 0x84, 0x60, + 0x1b, 0x28, 0x1e, 0x0c, 0x86, 0xd0, 0x41, 0x15, 0x97, 0x57, 0xfe, 0x10, 0xe2, 0xa2, 0x70, 0x08, + 0x29, 0x04, 0xb6, 0xf7, 0x84, 0xc4, 0x55, 0x72, 0xe5, 0x6f, 0x6f, 0x21, 0x0b, 0xb7, 0xb7, 0x66, + 0x60, 0x7b, 0x0b, 0xc1, 0xab, 0x8c, 0x5d, 0x1d, 0x13, 0x16, 0xfb, 0xdb, 0xdb, 0x65, 0xc2, 0xed, + 0xdd, 0x62, 0x4d, 0x3e, 0x6e, 0x3b, 0x9c, 0x2c, 0x2e, 0xea, 0xa4, 0xca, 0x2e, 0xc8, 0x30, 0x60, + 0x45, 0x43, 0x48, 0x3e, 0x8e, 0xc2, 0xd2, 0xe7, 0x4f, 0x07, 0xd1, 0x5d, 0xd5, 0xec, 0xb4, 0xae, + 0xe5, 0xdc, 0xe7, 0xba, 0xff, 0xd8, 0xdf, 0xbe, 0x08, 0x8e, 0xbc, 0x60, 0xe8, 0xa1, 0x66, 0xe5, + 0x06, 0xfe, 0x22, 0x9d, 0x17, 0xb5, 0x2e, 0xd4, 0xa7, 0x7d, 0xac, 0x5b, 0x0a, 0x48, 0x6e, 0xd0, + 0x4b, 0xd1, 0xa4, 0x65, 0xb2, 0x7d, 0x94, 0xec, 0x30, 0xad, 0x41, 0x5a, 0xa6, 0x9e, 0xb7, 0x45, + 0x20, 0x69, 0x99, 0x9f, 0x84, 0xa1, 0x70, 0x50, 0xd1, 0x45, 0x59, 0x77, 0x84, 0x02, 0x80, 0xc2, + 0xa1, 0xd0, 0x86, 0xa5, 0xcf, 0xd7, 0xd1, 0xaf, 0xdb, 0xe1, 0x67, 0x3f, 0xec, 0x6d, 0x3c, 0xa6, + 0x7c, 0x8f, 0x78, 0xd4, 0x17, 0x37, 0x19, 0x85, 0xf2, 0xcc, 0xf6, 0x08, 0x8b, 0xb3, 0xbc, 0x1e, + 0xae, 0xf9, 0x6d, 0x28, 0x39, 0x92, 0x51, 0xf8, 0x38, 0x38, 0xbe, 0xed, 0x2d, 0xca, 0x3c, 0x4b, + 0xda, 0xaf, 0x77, 0xa4, 0xae, 0x16, 0x87, 0xc7, 0x37, 0x1b, 0x83, 0xe3, 0x75, 0x93, 0xfa, 0xf1, + 0xff, 0x4c, 0x57, 0x25, 0xf1, 0x8f, 0xd7, 0x0e, 0x12, 0x1e, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x21, + 0xec, 0x28, 0x5e, 0xd1, 0x05, 0x32, 0x5e, 0x6b, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0xd6, 0x06, 0xda, + 0xc3, 0x61, 0xc1, 0x48, 0x55, 0xc4, 0xf9, 0x7e, 0x1e, 0xcf, 0xea, 0x21, 0x32, 0xc6, 0xb8, 0x14, + 0xb2, 0x36, 0xc0, 0x69, 0xcf, 0x63, 0x3c, 0xac, 0xf7, 0xe3, 0x25, 0xad, 0x32, 0x86, 0x3f, 0x46, + 0x83, 0x74, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0x1b, 0x57, 0xc9, 0x55, 0xb6, 0x24, 0x69, 0xc0, 0x9b, + 0x42, 0x7a, 0x78, 0xb3, 0x50, 0x4f, 0xa3, 0x4d, 0xe8, 0xa2, 0x4a, 0x08, 0xda, 0x68, 0x42, 0xdc, + 0xd9, 0x68, 0x1a, 0x93, 0x1e, 0xfe, 0x7c, 0x10, 0xfd, 0x86, 0x90, 0xda, 0xef, 0x5c, 0xf6, 0xe2, + 0xfa, 0xea, 0x82, 0xc6, 0x55, 0x3a, 0xfc, 0xd0, 0x67, 0xc7, 0x8b, 0x6a, 0xd7, 0x4f, 0x6f, 0xa3, + 0x02, 0x1f, 0x6b, 0x93, 0x77, 0x9b, 0x1e, 0xe7, 0x7d, 0xac, 0x0e, 0x12, 0x7e, 0xac, 0x10, 0x85, + 0x03, 0x08, 0x97, 0x8b, 0x2d, 0xb9, 0x35, 0x54, 0xdf, 0xdd, 0x97, 0x5b, 0xef, 0xe4, 0xe0, 0xf8, + 0xd8, 0x08, 0xdd, 0x68, 0xd9, 0xc6, 0x6c, 0xf8, 0x23, 0x66, 0xd4, 0x17, 0x47, 0x3d, 0xeb, 0x5e, + 0x11, 0xf6, 0xdc, 0xea, 0x19, 0xa3, 0xbe, 0x38, 0xe2, 0xd9, 0x1a, 0xd6, 0x42, 0x9e, 0x3d, 0x43, + 0xdb, 0xa8, 0x2f, 0x0e, 0xb3, 0x2f, 0xc9, 0xa8, 0x79, 0xe1, 0x71, 0xc0, 0x0e, 0x9c, 0x1b, 0x36, + 0x7b, 0xb1, 0xd2, 0xe1, 0x5f, 0x0e, 0xa2, 0xef, 0x1a, 0x8f, 0xc7, 0x34, 0xcd, 0x2e, 0x57, 0x02, + 0x7a, 0x19, 0xe7, 0x0b, 0x52, 0x0f, 0x9f, 0x62, 0xd6, 0xda, 0xac, 0x2e, 0xc1, 0xb3, 0x5b, 0xe9, + 0xc0, 0xbe, 0x33, 0x2e, 0xcb, 0x7c, 0x35, 0x25, 0xf3, 0x32, 0x47, 0xfb, 0x8e, 0x83, 0x84, 0xfb, + 0x0e, 0x44, 0x61, 0x56, 0x3e, 0xa5, 0x4d, 0xce, 0xef, 0xcd, 0xca, 0xb9, 0x28, 0x9c, 0x95, 0x2b, + 0x04, 0xe6, 0x4a, 0x53, 0xba, 0x4b, 0xf3, 0x9c, 0x24, 0xac, 0x7d, 0x6e, 0x43, 0x6b, 0x1a, 0x22, + 0x9c, 0x2b, 0x01, 0xd2, 0xec, 0xca, 0xa9, 0x35, 0x64, 0x5c, 0x91, 0xe7, 0xab, 0xa3, 0xac, 0xb8, + 0x1e, 0xfa, 0xd3, 0x02, 0x03, 0x20, 0xbb, 0x72, 0x5e, 0x10, 0xae, 0x55, 0xcf, 0x8b, 0x94, 0xfa, + 0xd7, 0xaa, 0x8d, 0x24, 0xbc, 0x56, 0x95, 0x04, 0x34, 0x79, 0x46, 0x30, 0x93, 0x8d, 0x24, 0x6c, + 0x52, 0x12, 0xbe, 0xa1, 0x50, 0xbe, 0xbb, 0x41, 0x87, 0x42, 0xf0, 0xb6, 0x66, 0xbd, 0x93, 0x83, + 0x11, 0xaa, 0x16, 0xad, 0xfb, 0x84, 0x25, 0x57, 0xfe, 0x08, 0x75, 0x90, 0x70, 0x84, 0x42, 0x14, + 0x56, 0x69, 0x4a, 0xf5, 0xa2, 0x7b, 0xcd, 0x1f, 0x1f, 0xad, 0x05, 0xf7, 0x7a, 0x27, 0x07, 0x97, + 0x91, 0x87, 0x73, 0xfe, 0xcc, 0xbc, 0x41, 0x2e, 0x64, 0xe1, 0x65, 0xa4, 0x66, 0x60, 0xe9, 0x85, + 0x80, 0xef, 0x65, 0xad, 0xe1, 0x8a, 0xce, 0x6e, 0xd6, 0x7a, 0x27, 0x27, 0x9d, 0xfc, 0xa3, 0x5e, + 0xc6, 0x09, 0xe9, 0x09, 0x6d, 0xfa, 0xc8, 0xcb, 0x38, 0xcf, 0xd2, 0x98, 0x91, 0x29, 0xbd, 0x26, + 0x85, 0x7f, 0xc5, 0x24, 0x4b, 0x2b, 0xf8, 0x91, 0xa3, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, + 0x08, 0xfa, 0xbc, 0x26, 0xbb, 0x71, 0x8d, 0x8c, 0x64, 0x0e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, + 0x55, 0xc8, 0x5f, 0xbc, 0x2e, 0x49, 0x95, 0x91, 0x22, 0x21, 0xfe, 0x7c, 0x15, 0x52, 0xe1, 0x7c, + 0xd5, 0x43, 0xc3, 0xb5, 0xda, 0x5e, 0xcc, 0xc8, 0xf3, 0xd5, 0x34, 0x9b, 0x93, 0x9a, 0xc5, 0xf3, + 0xd2, 0xbf, 0x56, 0x03, 0x50, 0x78, 0xad, 0xd6, 0x86, 0x5b, 0x5b, 0x43, 0x7a, 0x40, 0x6c, 0x1f, + 0xf7, 0x82, 0x44, 0xe0, 0xb8, 0x17, 0x82, 0xc2, 0x07, 0x6b, 0x00, 0xef, 0x4b, 0x82, 0x96, 0x95, + 0xe0, 0x4b, 0x02, 0x9c, 0x6e, 0x6d, 0xb8, 0x69, 0x66, 0xd2, 0x74, 0xcd, 0x8e, 0xa2, 0x4f, 0xec, + 0x2e, 0xba, 0xd9, 0x8b, 0xf5, 0xef, 0xf0, 0x9d, 0x91, 0x3c, 0xe6, 0xd3, 0x56, 0x60, 0x1b, 0x4d, + 0x31, 0x7d, 0x76, 0xf8, 0x2c, 0x56, 0x3a, 0xfc, 0xd3, 0x41, 0xf4, 0x9e, 0xcf, 0xe3, 0x17, 0x25, + 0xf7, 0xfb, 0xa4, 0xdb, 0x96, 0x20, 0x91, 0xf3, 0x6c, 0x61, 0x0d, 0x73, 0x24, 0x43, 0x89, 0xcc, + 0x71, 0x37, 0x59, 0x00, 0x37, 0x69, 0xd3, 0xe5, 0x87, 0x1c, 0x72, 0x24, 0x23, 0xc4, 0x9b, 0xf5, + 0x90, 0x5b, 0xae, 0x1a, 0xac, 0x87, 0xb4, 0x0d, 0x29, 0x46, 0xd6, 0x43, 0x1e, 0xcc, 0xf4, 0x4e, + 0xbb, 0x7a, 0xaf, 0x32, 0x76, 0xc5, 0xf3, 0x2d, 0xd0, 0x3b, 0x9d, 0xb2, 0x6a, 0x08, 0xe9, 0x9d, + 0x28, 0x0c, 0x33, 0x12, 0x05, 0x36, 0x7d, 0xd3, 0x37, 0x96, 0x6b, 0x43, 0x76, 0xcf, 0xdc, 0xe8, + 0x06, 0x61, 0xbc, 0x2a, 0xb1, 0x5c, 0xfa, 0x3c, 0x0e, 0x59, 0x00, 0xcb, 0x9f, 0xcd, 0x5e, 0xac, + 0x74, 0xf8, 0xc7, 0xd1, 0x77, 0x5a, 0x15, 0xdb, 0x27, 0x31, 0x5b, 0x54, 0x24, 0x1d, 0xee, 0x74, + 0x94, 0x5b, 0x81, 0xda, 0xf5, 0x93, 0xfe, 0x0a, 0xad, 0x1c, 0x5d, 0x71, 0x22, 0xac, 0x74, 0x19, + 0x9e, 0x86, 0x4c, 0xba, 0x6c, 0x30, 0x47, 0xc7, 0x75, 0x5a, 0xcb, 0x6c, 0x3b, 0xba, 0xc6, 0xcb, + 0x38, 0xcb, 0xf9, 0xcb, 0xda, 0x0f, 0x43, 0x46, 0x1d, 0x34, 0xb8, 0xcc, 0x46, 0x55, 0x5a, 0x23, + 0x33, 0xef, 0xe3, 0xd6, 0xf2, 0x6c, 0x0b, 0x1f, 0x09, 0x3c, 0xab, 0xb3, 0xed, 0x9e, 0xb4, 0x74, + 0xcb, 0xd4, 0x94, 0xd7, 0xfc, 0xd9, 0x0e, 0x72, 0x9f, 0x57, 0xa9, 0xea, 0x89, 0xf4, 0xed, 0x9e, + 0xb4, 0xf4, 0xfa, 0x47, 0xd1, 0xbb, 0x6d, 0xaf, 0x72, 0x22, 0xda, 0xe9, 0x34, 0x05, 0xe6, 0xa2, + 0x27, 0xfd, 0x15, 0xa4, 0xfb, 0x7f, 0xd1, 0xfb, 0xd2, 0xc2, 0x7f, 0x42, 0xe7, 0x73, 0x52, 0xa4, + 0x24, 0x55, 0x1a, 0x75, 0xb3, 0x7e, 0xfa, 0x0c, 0xb7, 0xab, 0x15, 0x46, 0xb6, 0x86, 0x2e, 0xd1, + 0x6f, 0x7e, 0x03, 0x4d, 0x59, 0xb4, 0xff, 0x1c, 0x44, 0x8f, 0xbc, 0x45, 0x53, 0x81, 0xeb, 0x14, + 0xf1, 0x77, 0xfa, 0x38, 0xf2, 0x69, 0xea, 0xa2, 0x8e, 0xff, 0x1f, 0x16, 0x64, 0x91, 0xff, 0x75, + 0x10, 0xdd, 0x37, 0x8a, 0x4d, 0x78, 0xef, 0xd2, 0xe2, 0x32, 0xcf, 0x12, 0xc6, 0xdf, 0xc8, 0x4a, + 0x15, 0xfc, 0x71, 0x62, 0x1a, 0xdd, 0x8f, 0x33, 0xa0, 0x69, 0x16, 0xaf, 0x9f, 0x67, 0x35, 0xa3, + 0xd5, 0x6a, 0x72, 0x45, 0x6f, 0xd4, 0x07, 0x43, 0xee, 0xb8, 0x2c, 0x81, 0x91, 0x45, 0x20, 0x8b, + 0x57, 0x3f, 0xd9, 0x72, 0x65, 0x3e, 0x2c, 0xaa, 0x11, 0x57, 0x16, 0xd1, 0xe1, 0xca, 0x25, 0xcd, + 0xac, 0xa4, 0x6a, 0x65, 0xbe, 0x82, 0x5a, 0xf7, 0x17, 0xb5, 0xfd, 0x25, 0xd4, 0x46, 0x37, 0x68, + 0x72, 0x53, 0x29, 0xde, 0xcb, 0x2e, 0x2f, 0x75, 0x9d, 0xfc, 0x25, 0xb5, 0x11, 0x24, 0x37, 0x45, + 0x50, 0xb3, 0xbc, 0xda, 0xcf, 0x72, 0xc2, 0xdf, 0xdd, 0x7c, 0x71, 0x79, 0x99, 0xd3, 0x38, 0x05, + 0xcb, 0xab, 0x46, 0x3c, 0xb2, 0xe5, 0xc8, 0xf2, 0xca, 0xc7, 0x99, 0x53, 0x21, 0x8d, 0xb4, 0x89, + 0xee, 0x22, 0xc9, 0x72, 0x78, 0xde, 0x98, 0x6b, 0x6a, 0x21, 0x72, 0x2a, 0xa4, 0x05, 0x99, 0x14, + 0xa8, 0x11, 0x35, 0x51, 0xa9, 0xca, 0xff, 0xb0, 0xad, 0x68, 0x89, 0x91, 0x14, 0xc8, 0x83, 0x99, + 0x5d, 0x86, 0x46, 0x78, 0x5e, 0x72, 0xe3, 0xf7, 0xda, 0x5a, 0x42, 0x82, 0xec, 0x32, 0xb8, 0x84, + 0x59, 0x2d, 0x37, 0x7f, 0xdf, 0xa3, 0x37, 0x05, 0x37, 0x7a, 0xbf, 0xad, 0xa2, 0x64, 0xc8, 0x6a, + 0x19, 0x32, 0xd2, 0xf0, 0x8f, 0xa2, 0x9f, 0xe7, 0x86, 0x2b, 0x5a, 0x0e, 0xef, 0x78, 0x14, 0x2a, + 0xeb, 0x74, 0xee, 0x5d, 0x54, 0x6e, 0x0e, 0x91, 0xe8, 0xd8, 0x38, 0xaf, 0xe3, 0x19, 0x3c, 0x52, + 0x6f, 0x5a, 0x9c, 0x4b, 0x91, 0x43, 0x24, 0x6d, 0xca, 0x8d, 0x8a, 0x13, 0x9a, 0x4a, 0xeb, 0x9e, + 0x1a, 0x6a, 0x61, 0x28, 0x2a, 0x6c, 0xc8, 0xa4, 0xad, 0x27, 0xf1, 0x32, 0x9b, 0xe9, 0xd4, 0x42, + 0x0c, 0x60, 0x35, 0x48, 0x5b, 0x0d, 0x33, 0xb2, 0x20, 0x24, 0x6d, 0x45, 0x61, 0xe9, 0xf3, 0x1f, + 0x06, 0xd1, 0x3d, 0xc3, 0x1c, 0xa8, 0x7d, 0xd9, 0xc3, 0xe2, 0x92, 0x36, 0x49, 0xee, 0x51, 0x56, + 0x5c, 0xd7, 0xc3, 0x4f, 0x30, 0x93, 0x7e, 0x5e, 0x17, 0xe5, 0xd3, 0x5b, 0xeb, 0x99, 0xf5, 0x89, + 0xda, 0xb4, 0x34, 0x27, 0x17, 0x84, 0x06, 0x58, 0x9f, 0xe8, 0xbd, 0x4d, 0xc8, 0x21, 0xeb, 0x93, + 0x10, 0x6f, 0x9a, 0x58, 0x3b, 0xcf, 0x69, 0x01, 0x9b, 0xd8, 0x58, 0x68, 0x84, 0x48, 0x13, 0xb7, + 0x20, 0x33, 0x1e, 0x2b, 0x91, 0xd8, 0x5f, 0x1b, 0xe7, 0x39, 0x18, 0x8f, 0xb5, 0xaa, 0x06, 0x90, + 0xf1, 0xd8, 0x0b, 0x4a, 0x3f, 0x67, 0xd1, 0xb7, 0x9a, 0x47, 0x7a, 0x5a, 0x91, 0x65, 0x46, 0xe0, + 0x21, 0x1b, 0x4b, 0x82, 0xf4, 0x7f, 0x97, 0x30, 0x3d, 0xeb, 0xbc, 0xa8, 0xcb, 0x3c, 0xae, 0xaf, + 0xe4, 0xb1, 0x0b, 0xb7, 0xce, 0x4a, 0x08, 0x0f, 0x5e, 0x3c, 0xec, 0xa0, 0xcc, 0xa0, 0xae, 0x64, + 0x7a, 0x88, 0x59, 0xf3, 0xab, 0xb6, 0x86, 0x99, 0xf5, 0x4e, 0xce, 0xbc, 0xdb, 0x38, 0x88, 0xf3, + 0x9c, 0x54, 0x2b, 0x25, 0x3b, 0x8e, 0x8b, 0xec, 0x92, 0xd4, 0x0c, 0xbc, 0xdb, 0x90, 0xd4, 0x08, + 0x62, 0xc8, 0xbb, 0x8d, 0x00, 0x6e, 0xd6, 0x6d, 0xc0, 0xf3, 0x61, 0x91, 0x92, 0xd7, 0x60, 0xdd, + 0x06, 0xed, 0x70, 0x06, 0x59, 0xb7, 0x61, 0xac, 0xd9, 0xe3, 0x7f, 0x9e, 0xd3, 0xe4, 0x5a, 0x4e, + 0x01, 0x6e, 0x03, 0x73, 0x09, 0x9c, 0x03, 0xee, 0x87, 0x10, 0x33, 0x09, 0x70, 0xc1, 0x19, 0x29, + 0xf3, 0x38, 0x81, 0x27, 0xad, 0x84, 0x8e, 0x94, 0x21, 0x93, 0x00, 0x64, 0x40, 0x71, 0xe5, 0x09, + 0x2e, 0x5f, 0x71, 0xc1, 0x01, 0xae, 0xfb, 0x21, 0xc4, 0x4c, 0x83, 0x5c, 0x30, 0x29, 0xf3, 0x8c, + 0x81, 0x6e, 0x20, 0x34, 0xb8, 0x04, 0xe9, 0x06, 0x2e, 0x01, 0x4c, 0x1e, 0x93, 0x6a, 0x46, 0xbc, + 0x26, 0xb9, 0x24, 0x68, 0x52, 0x11, 0xe6, 0x58, 0xb9, 0xa8, 0x3b, 0x2d, 0x57, 0xe0, 0x58, 0xb9, + 0xac, 0x16, 0x2d, 0x57, 0xc8, 0xb1, 0x72, 0x07, 0x00, 0x45, 0x3c, 0x8d, 0x6b, 0xe6, 0x2f, 0x22, + 0x97, 0x04, 0x8b, 0xa8, 0x08, 0x33, 0x47, 0x8b, 0x22, 0x2e, 0x18, 0x98, 0xa3, 0x65, 0x01, 0xac, + 0xb3, 0x06, 0x77, 0x51, 0xb9, 0x19, 0x49, 0x44, 0xab, 0x10, 0xb6, 0x9f, 0x91, 0x3c, 0xad, 0xc1, + 0x48, 0x22, 0x9f, 0xbb, 0x92, 0x22, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0x24, 0xdf, 0x84, 0xf8, 0x6a, + 0x07, 0x5e, 0x82, 0xdc, 0x0f, 0x21, 0x66, 0x7c, 0x52, 0x85, 0xde, 0x8d, 0xab, 0x2a, 0x6b, 0x26, + 0xff, 0x35, 0x7f, 0x81, 0x94, 0x1c, 0x19, 0x9f, 0x7c, 0x1c, 0xe8, 0x5e, 0x6a, 0xe0, 0xf6, 0x15, + 0x0c, 0x0e, 0xdd, 0x1f, 0x04, 0x19, 0x93, 0x71, 0x72, 0x89, 0xf5, 0xb2, 0xdc, 0xf7, 0x34, 0x3d, + 0xef, 0xca, 0xd7, 0xba, 0x30, 0xeb, 0x9b, 0x33, 0xed, 0xe2, 0x98, 0x2e, 0xc9, 0x94, 0xbe, 0x78, + 0x9d, 0xd5, 0xcd, 0x72, 0x4b, 0xce, 0xdc, 0xcf, 0x10, 0x4b, 0x3e, 0x18, 0xf9, 0xe6, 0xac, 0x53, + 0xc9, 0x24, 0x10, 0xa0, 0x2c, 0x27, 0xe4, 0xc6, 0x9b, 0x40, 0x40, 0x8b, 0x9a, 0x43, 0x12, 0x88, + 0x10, 0x6f, 0x76, 0xcc, 0xb4, 0x73, 0x79, 0xd1, 0xc0, 0x94, 0xaa, 0x5c, 0x0e, 0xb3, 0x06, 0x41, + 0x64, 0xd3, 0x22, 0xa8, 0x60, 0xd6, 0x97, 0xda, 0xbf, 0xe9, 0x62, 0x1b, 0x88, 0x9d, 0x76, 0x37, + 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32, 0x27, 0x3e, 0x30, 0x57, 0xed, 0x03, 0x1f, 0x8f, 0x7a, 0x90, + 0xd6, 0xee, 0x9b, 0x5d, 0xad, 0xe7, 0x71, 0x72, 0x3d, 0xab, 0xe8, 0xa2, 0x48, 0x77, 0x69, 0x4e, + 0x2b, 0xb0, 0xfb, 0xe6, 0x94, 0x1a, 0xa0, 0xc8, 0xee, 0x5b, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, + 0x8c, 0xf3, 0x6c, 0x06, 0x57, 0xd4, 0x8e, 0x21, 0x0e, 0x20, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, + 0x58, 0x71, 0xb3, 0x2c, 0x89, 0x73, 0xe1, 0x6f, 0x07, 0x37, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, + 0xf0, 0xd4, 0x73, 0xba, 0xa8, 0x8a, 0xc3, 0x82, 0x51, 0xb4, 0x9e, 0x0a, 0xe8, 0xac, 0xa7, 0x05, + 0x82, 0x61, 0x75, 0x4a, 0x5e, 0x37, 0xa5, 0x69, 0xfe, 0xf1, 0x0d, 0xab, 0xcd, 0xdf, 0x47, 0x52, + 0x1e, 0x1a, 0x56, 0x01, 0x07, 0x2a, 0x23, 0x9d, 0x88, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xb2, 0xd1, + 0x0d, 0xfa, 0xfd, 0x4c, 0xd8, 0x2a, 0x27, 0x21, 0x3f, 0x1c, 0xe8, 0xe3, 0x47, 0x81, 0x66, 0xbb, + 0xc5, 0xa9, 0xcf, 0x15, 0x49, 0xae, 0x5b, 0x07, 0xd8, 0xdc, 0x82, 0x0a, 0x04, 0xd9, 0x6e, 0x41, + 0x50, 0x7f, 0x13, 0x1d, 0x26, 0xb4, 0x08, 0x35, 0x51, 0x23, 0xef, 0xd3, 0x44, 0x92, 0x33, 0x8b, + 0x5f, 0x2d, 0x95, 0x91, 0x29, 0x9a, 0x69, 0x13, 0xb1, 0x60, 0x43, 0xc8, 0xe2, 0x17, 0x85, 0x4d, + 0x4e, 0x0e, 0x7d, 0x1e, 0xb7, 0x4f, 0xf7, 0xb7, 0xac, 0x1c, 0xe3, 0xa7, 0xfb, 0x31, 0x16, 0xaf, + 0xa4, 0x88, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, 0x6c, 0xf5, 0x83, 0xcd, 0x92, 0xc7, 0xf1, 0xb9, 0x9b, + 0x93, 0xb8, 0x12, 0x5e, 0xb7, 0x03, 0x86, 0x0c, 0x86, 0x2c, 0x79, 0x02, 0x38, 0x18, 0xc2, 0x1c, + 0xcf, 0xbb, 0xb4, 0x60, 0xa4, 0x60, 0xbe, 0x21, 0xcc, 0x35, 0x26, 0xc1, 0xd0, 0x10, 0x86, 0x29, + 0x80, 0xb8, 0xe5, 0xfb, 0x41, 0x84, 0x9d, 0xc4, 0x73, 0x6f, 0xc6, 0x26, 0xf6, 0x7a, 0x84, 0x3c, + 0x14, 0xb7, 0x80, 0xb3, 0x5e, 0xe7, 0xda, 0x5e, 0xa6, 0x71, 0x35, 0xd3, 0xbb, 0x1b, 0xe9, 0xf0, + 0x09, 0x6e, 0xc7, 0x25, 0x91, 0xd7, 0xb9, 0x61, 0x0d, 0x30, 0xec, 0x1c, 0xce, 0xe3, 0x99, 0xae, + 0xa9, 0xa7, 0x06, 0x5c, 0xde, 0xaa, 0xea, 0x46, 0x37, 0x08, 0xfc, 0xbc, 0xcc, 0x52, 0x42, 0x03, + 0x7e, 0xb8, 0xbc, 0x8f, 0x1f, 0x08, 0x82, 0xec, 0xad, 0xa9, 0xb7, 0x58, 0xd1, 0x8d, 0x8b, 0x54, + 0xae, 0x63, 0x47, 0xc8, 0xe3, 0x01, 0x5c, 0x28, 0x7b, 0x43, 0x78, 0xd0, 0x47, 0xd5, 0x06, 0x6d, + 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, 0xd4, 0x07, 0x4b, 0x9f, 0x3f, 0x91, 0x7d, 0x74, 0x2f, + 0x66, 0x71, 0x93, 0xb7, 0xbf, 0xcc, 0xc8, 0x8d, 0x5c, 0x08, 0x7b, 0xea, 0xab, 0xa8, 0x11, 0xff, + 0x38, 0x19, 0xac, 0x8a, 0x77, 0x7a, 0xf3, 0x01, 0xdf, 0x72, 0x85, 0xd0, 0xe9, 0x1b, 0x2c, 0x15, + 0x76, 0x7a, 0xf3, 0x01, 0xdf, 0xf2, 0xd6, 0x83, 0x4e, 0xdf, 0xe0, 0xea, 0x83, 0x9d, 0xde, 0xbc, + 0xf4, 0xfd, 0x67, 0xaa, 0xe3, 0xda, 0xce, 0x9b, 0x3c, 0x2c, 0x61, 0xd9, 0x92, 0xf8, 0xd2, 0x49, + 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xae, 0x62, 0xdd, 0x3b, 0xe6, 0x2b, 0xc5, 0x29, 0xad, 0x33, + 0x7e, 0x1c, 0xe3, 0x59, 0x0f, 0xa3, 0x0a, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xc5, 0xb2, 0x83, + 0x9a, 0xf3, 0xea, 0x5b, 0x01, 0x7b, 0xed, 0x63, 0xeb, 0xdb, 0x3d, 0x69, 0xf3, 0x8a, 0xd7, 0x61, + 0xec, 0x77, 0xcb, 0xa1, 0x56, 0xf5, 0xbe, 0x5e, 0x7e, 0xd2, 0x5f, 0x41, 0xba, 0xff, 0x0b, 0xb5, + 0xae, 0x80, 0xfe, 0x65, 0x27, 0x78, 0xda, 0xc7, 0x22, 0xe8, 0x08, 0xcf, 0x6e, 0xa5, 0x23, 0x0b, + 0xf2, 0x37, 0x6a, 0x01, 0xad, 0x50, 0xfe, 0xd5, 0x0e, 0xff, 0xda, 0x57, 0xf6, 0x89, 0x50, 0xb3, + 0x1a, 0x18, 0xf6, 0x8c, 0x8f, 0x6f, 0xa9, 0x65, 0xdd, 0x42, 0xe7, 0xc0, 0xf2, 0xeb, 0x52, 0xab, + 0x3c, 0x21, 0xcb, 0x16, 0x0d, 0x0b, 0xf4, 0xc9, 0x6d, 0xd5, 0xb0, 0xbe, 0x62, 0xc1, 0xfc, 0x1e, + 0x96, 0x67, 0x3d, 0x0d, 0x3b, 0x37, 0xb3, 0x7c, 0x74, 0x3b, 0x25, 0x59, 0x96, 0x7f, 0x1f, 0x44, + 0x0f, 0x1d, 0xd6, 0xbc, 0x4f, 0x00, 0xbb, 0x1e, 0x3f, 0x08, 0xd8, 0xc7, 0x94, 0x74, 0xe1, 0x7e, + 0xeb, 0x9b, 0x29, 0x9b, 0x2b, 0xdb, 0x1c, 0x95, 0xfd, 0x2c, 0x67, 0xa4, 0x6a, 0x5f, 0xd9, 0xe6, + 0xda, 0x15, 0xd4, 0x08, 0xbf, 0xb2, 0x2d, 0x80, 0x5b, 0x57, 0xb6, 0x79, 0x3c, 0x7b, 0xaf, 0x6c, + 0xf3, 0x5a, 0x0b, 0x5e, 0xd9, 0x16, 0xd6, 0xc0, 0x86, 0x77, 0x55, 0x04, 0xb1, 0x6f, 0xdd, 0xcb, + 0xa2, 0xbb, 0x8d, 0xfd, 0xf4, 0x36, 0x2a, 0xc8, 0x04, 0x27, 0x38, 0x7e, 0xa2, 0xb1, 0xc7, 0x33, + 0x75, 0x4e, 0x35, 0xee, 0xf4, 0xe6, 0xa5, 0xef, 0x1f, 0xcb, 0xd5, 0x8d, 0x1e, 0xce, 0x69, 0xc5, + 0xaf, 0xeb, 0xdb, 0x0c, 0x0d, 0xcf, 0x8d, 0x05, 0xbb, 0xe5, 0xb7, 0xfa, 0xc1, 0x48, 0x75, 0x1b, + 0x42, 0x36, 0xfa, 0xa8, 0xcb, 0x10, 0x68, 0xf2, 0x9d, 0xde, 0x3c, 0x32, 0x8d, 0x08, 0xdf, 0xa2, + 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe9, 0x7e, 0x29, 0xd3, 0x46, 0xdb, 0x3d, + 0x6f, 0xe7, 0xed, 0x2e, 0x53, 0x13, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x02, 0x61, 0x4f, 0xa1, + 0x5d, 0x09, 0x84, 0x77, 0x1a, 0xfd, 0xe8, 0x76, 0x4a, 0xb2, 0x2c, 0x7f, 0x3f, 0x88, 0xee, 0xa2, + 0x65, 0x91, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb5, 0x9e, 0x2c, 0xd4, 0x3f, + 0x0d, 0xa2, 0x7b, 0x81, 0x42, 0x89, 0x00, 0xb9, 0x85, 0x75, 0x37, 0x50, 0x3e, 0xbb, 0xbd, 0x22, + 0x36, 0xdd, 0xdb, 0xf8, 0xa4, 0x7d, 0xfd, 0x56, 0xc0, 0xf6, 0x04, 0xbf, 0x7e, 0xab, 0x5b, 0x0b, + 0x6e, 0xf2, 0xc4, 0x17, 0x6a, 0xd1, 0xe5, 0xdd, 0xe4, 0xe1, 0x67, 0x11, 0x83, 0xd7, 0x88, 0xf8, + 0x38, 0x9f, 0x93, 0x17, 0xaf, 0xcb, 0xb8, 0x48, 0x71, 0x27, 0x42, 0xde, 0xed, 0x44, 0x73, 0x70, + 0x73, 0xac, 0x91, 0x9e, 0x51, 0xb5, 0x90, 0x7a, 0x84, 0xe9, 0x6b, 0x24, 0xb8, 0x39, 0xd6, 0x42, + 0x11, 0x6f, 0x32, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0xb5, 0x37, + 0xbd, 0xe7, 0xbe, 0x15, 0xb2, 0xd2, 0xda, 0x77, 0xdf, 0xee, 0x49, 0x23, 0x6e, 0x27, 0x84, 0x7d, + 0x4e, 0xe2, 0x94, 0x54, 0x41, 0xb7, 0x9a, 0xea, 0xe5, 0xd6, 0xa6, 0x7d, 0x6e, 0x77, 0x69, 0xbe, + 0x98, 0x17, 0xb2, 0x31, 0x51, 0xb7, 0x36, 0xd5, 0xed, 0x16, 0xd0, 0x70, 0x5b, 0xd0, 0xb8, 0xe5, + 0xe9, 0xe5, 0xe3, 0xb0, 0x19, 0x27, 0xab, 0xdc, 0xec, 0xc5, 0xe2, 0xf5, 0x94, 0x61, 0xd4, 0x51, + 0x4f, 0x10, 0x49, 0xdb, 0x3d, 0x69, 0xb8, 0x3f, 0x67, 0xb9, 0xd5, 0xf1, 0xb4, 0xd3, 0x61, 0xab, + 0x15, 0x52, 0x4f, 0xfa, 0x2b, 0xc0, 0xdd, 0x50, 0x19, 0x55, 0x47, 0x59, 0xcd, 0xf6, 0xb3, 0x3c, + 0x1f, 0x6e, 0x06, 0xc2, 0x44, 0x41, 0xc1, 0xdd, 0x50, 0x0f, 0x8c, 0x44, 0xb2, 0xda, 0x3d, 0x2c, + 0x86, 0x5d, 0x76, 0x38, 0xd5, 0x2b, 0x92, 0x6d, 0x1a, 0xec, 0x68, 0x59, 0x8f, 0x5a, 0xd7, 0x76, + 0x14, 0x7e, 0x70, 0xad, 0x0a, 0xef, 0xf4, 0xe6, 0xc1, 0xeb, 0x76, 0x4e, 0xf1, 0x99, 0xe5, 0x01, + 0x66, 0xc2, 0x99, 0x49, 0x1e, 0x76, 0x50, 0x60, 0x57, 0x50, 0x74, 0xa3, 0x57, 0x59, 0x3a, 0x23, + 0xcc, 0xfb, 0xa6, 0xc8, 0x06, 0x82, 0x6f, 0x8a, 0x00, 0x08, 0x9a, 0x4e, 0xfc, 0x5d, 0x6f, 0x87, + 0x1e, 0xa6, 0xbe, 0xa6, 0x93, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x0d, 0x46, 0x03, 0xed, 0x56, + 0x5e, 0xbc, 0xf0, 0x38, 0x64, 0x06, 0xdc, 0xbe, 0xb0, 0xd9, 0x8b, 0x05, 0x33, 0x8a, 0x71, 0x98, + 0xcd, 0x33, 0xe6, 0x9b, 0x51, 0x2c, 0x1b, 0x0d, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x56, 0xbd, 0x26, + 0x47, 0x38, 0x4c, 0xc3, 0xd5, 0x13, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0xf5, 0x62, 0xb3, 0xd0, 0x21, + 0xc3, 0xae, 0xe4, 0x62, 0xd9, 0x13, 0xdb, 0xfc, 0x83, 0x5c, 0x08, 0x86, 0x46, 0x1d, 0x4c, 0x01, + 0x6e, 0xd8, 0x37, 0x9c, 0x7a, 0xf7, 0x5a, 0x96, 0x24, 0xae, 0xe2, 0x22, 0xf1, 0x2e, 0x4e, 0xb9, + 0xc1, 0x16, 0x19, 0x5a, 0x9c, 0xa2, 0x1a, 0xe0, 0xb5, 0xb9, 0xfb, 0x29, 0xad, 0xa7, 0x2b, 0xe8, + 0x6f, 0x56, 0xdd, 0x2f, 0x69, 0x1f, 0xf5, 0x20, 0xe1, 0x6b, 0x73, 0x05, 0xe8, 0x8d, 0x6f, 0xe1, + 0xf4, 0xc3, 0x80, 0x29, 0x17, 0x0d, 0x2d, 0x84, 0x71, 0x15, 0x10, 0xd4, 0x3a, 0xc1, 0x25, 0xec, + 0x47, 0x64, 0xe5, 0x0b, 0x6a, 0x93, 0x9f, 0x72, 0x24, 0x14, 0xd4, 0x6d, 0x14, 0xe4, 0x99, 0xf6, + 0x3a, 0x68, 0x2d, 0xa0, 0x6f, 0x2f, 0x7d, 0xd6, 0x3b, 0x39, 0xd0, 0x73, 0xf6, 0xb2, 0xa5, 0xf3, + 0x9e, 0xc0, 0x53, 0xd0, 0xbd, 0x6c, 0xe9, 0x7f, 0x4d, 0xb0, 0xd9, 0x8b, 0x85, 0xaf, 0xe4, 0x63, + 0x46, 0x5e, 0xab, 0x77, 0xe5, 0x9e, 0xe2, 0x72, 0x79, 0xeb, 0x65, 0xf9, 0x46, 0x37, 0x68, 0x0e, + 0xc0, 0x9e, 0x56, 0x34, 0x21, 0x75, 0x2d, 0xef, 0x24, 0x75, 0x4f, 0x18, 0x49, 0xd9, 0x08, 0xdc, + 0x48, 0xfa, 0x20, 0x0c, 0x59, 0x17, 0x09, 0x0a, 0x91, 0xb9, 0xdf, 0x68, 0xcd, 0xab, 0xd9, 0xbe, + 0xda, 0x68, 0xbd, 0x93, 0x33, 0xdd, 0x4b, 0x4a, 0xed, 0x0b, 0x8d, 0x36, 0xbc, 0xea, 0xbe, 0xbb, + 0x8c, 0x1e, 0xf5, 0x20, 0xa5, 0xab, 0xcf, 0xa3, 0x37, 0x8f, 0xe8, 0x6c, 0x42, 0x8a, 0x74, 0xf8, + 0x3d, 0xf7, 0x08, 0x2d, 0x9d, 0x8d, 0x9a, 0x3f, 0x6b, 0xa3, 0x77, 0x30, 0xb1, 0x39, 0x04, 0xb8, + 0x47, 0x2e, 0x16, 0xb3, 0x09, 0x8b, 0x19, 0x38, 0x04, 0xc8, 0xff, 0x3e, 0x6a, 0x04, 0xc8, 0x21, + 0x40, 0x07, 0x00, 0xf6, 0xa6, 0x15, 0x21, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x02, 0x26, 0x8b, + 0xd0, 0xf6, 0x9a, 0x44, 0x1d, 0x1e, 0xda, 0x33, 0x3a, 0x5c, 0x8a, 0x64, 0x11, 0x6d, 0xca, 0x04, + 0xb7, 0xa8, 0x3e, 0xbf, 0x5f, 0x66, 0x31, 0x9f, 0xc7, 0xd5, 0x0a, 0x04, 0xb7, 0xac, 0xa5, 0x05, + 0x20, 0xc1, 0xed, 0x05, 0x4d, 0xaf, 0x55, 0x8f, 0x39, 0xb9, 0x3e, 0xa0, 0x15, 0x5d, 0xb0, 0xac, + 0x20, 0xf0, 0x8e, 0x11, 0xfd, 0x40, 0x6d, 0x06, 0xe9, 0xb5, 0x18, 0x6b, 0xb2, 0x5c, 0x4e, 0x88, + 0xf3, 0x84, 0xfc, 0x9a, 0xf4, 0x9a, 0xd1, 0x0a, 0xbe, 0x4f, 0x14, 0x56, 0x20, 0x84, 0x64, 0xb9, + 0x28, 0x0c, 0xda, 0xfe, 0x34, 0x2b, 0x66, 0xde, 0xb6, 0x3f, 0xb5, 0xef, 0xf9, 0xbd, 0x87, 0x03, + 0xa6, 0x43, 0x89, 0x87, 0x26, 0x3a, 0x80, 0xfc, 0x6a, 0xd7, 0xfb, 0xd0, 0x6d, 0x02, 0xe9, 0x50, + 0x7e, 0x12, 0xb8, 0xfa, 0xa2, 0x24, 0x05, 0x49, 0xd5, 0xa9, 0x39, 0x9f, 0x2b, 0x87, 0x08, 0xba, + 0x82, 0xa4, 0x19, 0x8b, 0xb8, 0xfc, 0x6c, 0x51, 0x9c, 0x56, 0xf4, 0x32, 0xcb, 0x49, 0x05, 0xc6, + 0x22, 0xa1, 0x6e, 0xc9, 0x91, 0xb1, 0xc8, 0xc7, 0x99, 0xe3, 0x17, 0x5c, 0xea, 0xdc, 0xf5, 0x3f, + 0xad, 0xe2, 0x04, 0x1e, 0xbf, 0x10, 0x36, 0xda, 0x18, 0xb2, 0x33, 0x18, 0xc0, 0xad, 0x44, 0x47, + 0xb8, 0x2e, 0x56, 0x3c, 0x3e, 0xe4, 0x57, 0xa3, 0xfc, 0xf6, 0xdb, 0x1a, 0x24, 0x3a, 0xd2, 0x9c, + 0x8f, 0x44, 0x12, 0x9d, 0xb0, 0x86, 0x99, 0x4a, 0x38, 0x77, 0x22, 0x8f, 0x15, 0x81, 0xa9, 0x44, + 0xd8, 0x50, 0x42, 0x64, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x52, 0xdd, 0x60, 0xe6, 0x1d, 0x90, 0xb4, + 0x34, 0x38, 0x20, 0xd9, 0x94, 0x19, 0x28, 0x0e, 0x8b, 0x8c, 0x65, 0x71, 0x3e, 0x21, 0xec, 0x34, + 0xae, 0xe2, 0x39, 0x61, 0xa4, 0x82, 0x03, 0x85, 0x44, 0x46, 0x0e, 0x83, 0x0c, 0x14, 0x18, 0x2b, + 0x1d, 0xfe, 0x76, 0xf4, 0x76, 0x33, 0xef, 0x93, 0x42, 0xfe, 0x4a, 0xd1, 0x0b, 0xfe, 0xf3, 0x66, + 0xc3, 0x77, 0xb4, 0x8d, 0x09, 0xab, 0x48, 0x3c, 0x57, 0xb6, 0xdf, 0xd2, 0x7f, 0xe7, 0xe0, 0x93, + 0x41, 0x13, 0xcf, 0x27, 0x94, 0x65, 0x97, 0xcd, 0x32, 0x5b, 0x7e, 0x41, 0x04, 0xe2, 0xd9, 0x16, + 0x8f, 0x02, 0xb7, 0x8e, 0xf8, 0x38, 0x33, 0x4e, 0xdb, 0xd2, 0x33, 0x52, 0xe6, 0x70, 0x9c, 0x76, + 0xb4, 0x39, 0x80, 0x8c, 0xd3, 0x5e, 0xd0, 0x74, 0x4e, 0x5b, 0x3c, 0x25, 0xe1, 0xca, 0x4c, 0x49, + 0xbf, 0xca, 0x4c, 0x9d, 0x8f, 0x32, 0xf2, 0xe8, 0xed, 0x63, 0x32, 0xbf, 0x20, 0x55, 0x7d, 0x95, + 0x95, 0xd8, 0x0d, 0xbd, 0x86, 0xe8, 0xbc, 0xa1, 0x17, 0x41, 0xcd, 0x4c, 0x60, 0x80, 0xc3, 0xfa, + 0x24, 0x9e, 0x13, 0x7e, 0x87, 0x0a, 0x98, 0x09, 0x2c, 0x23, 0x16, 0x84, 0xcc, 0x04, 0x28, 0x6c, + 0x7d, 0xdf, 0x65, 0x98, 0x33, 0x32, 0x6b, 0x22, 0xac, 0x3a, 0x8d, 0x57, 0x73, 0x52, 0x30, 0x69, + 0x12, 0xec, 0xc9, 0x5b, 0x26, 0xfd, 0x3c, 0xb2, 0x27, 0xdf, 0x47, 0xcf, 0x1a, 0x9a, 0x9c, 0x07, + 0x7f, 0x4a, 0x2b, 0x26, 0x7e, 0x83, 0xec, 0xbc, 0xca, 0xc1, 0xd0, 0xe4, 0x3e, 0x54, 0x87, 0x44, + 0x86, 0xa6, 0xb0, 0x86, 0xf5, 0x7b, 0x13, 0x4e, 0x19, 0x5e, 0x92, 0x4a, 0xc7, 0xc9, 0x8b, 0x79, + 0x9c, 0xe5, 0x32, 0x1a, 0xbe, 0x1f, 0xb0, 0x8d, 0xe8, 0x20, 0xbf, 0x37, 0xd1, 0x57, 0xd7, 0xfa, + 0x85, 0x8e, 0x70, 0x09, 0xc1, 0x2b, 0x82, 0x0e, 0xfb, 0xc8, 0x2b, 0x82, 0x6e, 0x2d, 0xb3, 0x72, + 0x37, 0x2c, 0xe7, 0x56, 0x9c, 0xd8, 0xa5, 0x29, 0xdc, 0x2f, 0xb4, 0x6c, 0x02, 0x10, 0x59, 0xb9, + 0x07, 0x15, 0x4c, 0x6a, 0x60, 0xb0, 0xfd, 0xac, 0x88, 0xf3, 0xec, 0x27, 0x30, 0xad, 0xb7, 0xec, + 0x28, 0x02, 0x49, 0x0d, 0xfc, 0xa4, 0xcf, 0xd5, 0x01, 0x61, 0xd3, 0xac, 0x19, 0xfa, 0x37, 0x02, + 0xcf, 0x8d, 0x13, 0xdd, 0xae, 0x2c, 0xd2, 0xba, 0x8d, 0x17, 0x3e, 0xd6, 0x71, 0x59, 0x4e, 0x9a, + 0x59, 0xf5, 0x8c, 0x24, 0x24, 0x2b, 0xd9, 0xf0, 0xe3, 0xf0, 0xb3, 0x02, 0x38, 0x72, 0xd0, 0xa2, + 0x87, 0x9a, 0xf5, 0xfa, 0xbe, 0x19, 0x4b, 0x26, 0xe2, 0xc7, 0x39, 0xcf, 0x6b, 0x52, 0xc9, 0x44, + 0xe3, 0x80, 0x30, 0xd0, 0x3b, 0x2d, 0x6e, 0x64, 0x81, 0x4d, 0x45, 0x91, 0xde, 0x19, 0xd6, 0x30, + 0x9b, 0x7d, 0x16, 0x27, 0x6f, 0x57, 0xe7, 0xe7, 0x0d, 0xb7, 0x50, 0x63, 0x16, 0x85, 0x6c, 0xf6, + 0xe1, 0xb4, 0xc9, 0xd6, 0xda, 0x6e, 0xc7, 0xc5, 0xea, 0x10, 0x1e, 0x99, 0xf0, 0x58, 0xe2, 0x18, + 0x92, 0xad, 0x05, 0x70, 0x6b, 0x33, 0xbc, 0xa2, 0x71, 0x9a, 0xc4, 0x35, 0x3b, 0x8d, 0x57, 0x39, + 0x8d, 0x53, 0x3e, 0xaf, 0xc3, 0xcd, 0x70, 0xc5, 0x8c, 0x6c, 0x08, 0xdb, 0x0c, 0xc7, 0x60, 0x3b, + 0x3b, 0xe3, 0xbf, 0x39, 0x2a, 0xcf, 0x72, 0xc2, 0xec, 0x8c, 0x97, 0x17, 0x9e, 0xe3, 0x7c, 0x10, + 0x86, 0xcc, 0x37, 0x68, 0x42, 0xc4, 0xd3, 0x90, 0x7b, 0x3e, 0x1d, 0x27, 0x01, 0x79, 0x3f, 0x40, + 0x98, 0x1b, 0x48, 0xc4, 0xdf, 0xd5, 0xcf, 0x4c, 0x31, 0x79, 0x67, 0xf9, 0x96, 0x4f, 0xd7, 0x86, + 0x46, 0xf6, 0x45, 0x16, 0xdb, 0x3d, 0x69, 0x93, 0x66, 0xee, 0x5e, 0xc5, 0x6c, 0x9c, 0xa6, 0xc7, + 0xa4, 0xf6, 0x7c, 0x50, 0xde, 0x08, 0x47, 0x46, 0x8a, 0xa4, 0x99, 0x6d, 0xca, 0x04, 0x7a, 0x23, + 0x7b, 0x91, 0x66, 0x4c, 0xca, 0xd4, 0x09, 0xe9, 0xad, 0xb6, 0x81, 0x36, 0x85, 0xd4, 0x0a, 0xa7, + 0xcd, 0x58, 0xde, 0x30, 0x53, 0x3a, 0x9b, 0xe5, 0x44, 0x42, 0x67, 0x24, 0x16, 0x57, 0x36, 0xee, + 0xb4, 0x6d, 0x79, 0x41, 0x64, 0x2c, 0x0f, 0x2a, 0x98, 0x34, 0xb2, 0xc1, 0xc4, 0x2b, 0x29, 0xf5, + 0x60, 0xd7, 0xdb, 0x66, 0x1c, 0x00, 0x49, 0x23, 0xbd, 0xa0, 0xf9, 0xee, 0xad, 0x11, 0x1f, 0x10, + 0xf5, 0x24, 0xe0, 0x65, 0x53, 0x5c, 0xd9, 0x12, 0x23, 0xdf, 0xbd, 0x79, 0x30, 0xb3, 0x4e, 0x00, + 0x1e, 0x9e, 0xaf, 0x0e, 0x53, 0xb8, 0x4e, 0x80, 0xfa, 0x9c, 0x41, 0xd6, 0x09, 0x18, 0xeb, 0x36, + 0x9d, 0xde, 0xf7, 0x3a, 0x8a, 0x6b, 0x53, 0x39, 0x4f, 0xd3, 0x79, 0xc1, 0x50, 0xd3, 0x61, 0x0a, + 0xee, 0x23, 0xb5, 0xb7, 0xd6, 0x3c, 0x8f, 0xd4, 0xb7, 0xaf, 0xb6, 0xd6, 0x85, 0x99, 0x71, 0x49, + 0xaf, 0x27, 0xf9, 0x91, 0x25, 0xff, 0x6f, 0x35, 0x08, 0x21, 0x32, 0x2e, 0xb5, 0x20, 0x61, 0xfb, + 0xf9, 0xfb, 0xff, 0xf5, 0xd5, 0x9d, 0xc1, 0xcf, 0xbe, 0xba, 0x33, 0xf8, 0x9f, 0xaf, 0xee, 0x0c, + 0x7e, 0xfa, 0xf5, 0x9d, 0x37, 0x7e, 0xf6, 0xf5, 0x9d, 0x37, 0xfe, 0xfb, 0xeb, 0x3b, 0x6f, 0x7c, + 0xf9, 0xa6, 0xfc, 0x2d, 0xea, 0x8b, 0x9f, 0xe3, 0xbf, 0x28, 0xfd, 0xec, 0xff, 0x02, 0x00, 0x00, + 0xff, 0xff, 0xc9, 0x60, 0xbd, 0x6d, 0xaf, 0x7a, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -405,6 +407,8 @@ type ClientCommandsHandler interface { // Account // *** AccountRecover(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse + AccountMigrate(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse + AccountMigrateCancel(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse AccountCreate(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse AccountDelete(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse AccountRevertDeletion(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse @@ -1146,6 +1150,46 @@ func AccountRecover(b []byte) (resp []byte) { return resp } +func AccountMigrate(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcAccountMigrateResponse{Error: &pb.RpcAccountMigrateResponseError{Code: pb.RpcAccountMigrateResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcAccountMigrateRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcAccountMigrateResponse{Error: &pb.RpcAccountMigrateResponseError{Code: pb.RpcAccountMigrateResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.AccountMigrate(context.Background(), in).Marshal() + return resp +} + +func AccountMigrateCancel(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcAccountMigrateCancelResponse{Error: &pb.RpcAccountMigrateCancelResponseError{Code: pb.RpcAccountMigrateCancelResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcAccountMigrateCancelRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcAccountMigrateCancelResponse{Error: &pb.RpcAccountMigrateCancelResponseError{Code: pb.RpcAccountMigrateCancelResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.AccountMigrateCancel(context.Background(), in).Marshal() + return resp +} + func AccountCreate(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -6334,6 +6378,10 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = WorkspaceExport(data) case "AccountRecover": cd = AccountRecover(data) + case "AccountMigrate": + cd = AccountMigrate(data) + case "AccountMigrateCancel": + cd = AccountMigrateCancel(data) case "AccountCreate": cd = AccountCreate(data) case "AccountDelete": @@ -7164,6 +7212,34 @@ func (h *ClientCommandsHandlerProxy) AccountRecover(ctx context.Context, req *pb call, _ := actualCall(ctx, req) return call.(*pb.RpcAccountRecoverResponse) } +func (h *ClientCommandsHandlerProxy) AccountMigrate(ctx context.Context, req *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.AccountMigrate(ctx, req.(*pb.RpcAccountMigrateRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "AccountMigrate", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcAccountMigrateResponse) +} +func (h *ClientCommandsHandlerProxy) AccountMigrateCancel(ctx context.Context, req *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.AccountMigrateCancel(ctx, req.(*pb.RpcAccountMigrateCancelRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "AccountMigrateCancel", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcAccountMigrateCancelResponse) +} func (h *ClientCommandsHandlerProxy) AccountCreate(ctx context.Context, req *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.AccountCreate(ctx, req.(*pb.RpcAccountCreateRequest)), nil diff --git a/core/account.go b/core/account.go index 52b2f275a..add6eb908 100644 --- a/core/account.go +++ b/core/account.go @@ -48,6 +48,27 @@ func (mw *Middleware) AccountRecover(cctx context.Context, _ *pb.RpcAccountRecov }, } } +func (mw *Middleware) AccountMigrate(_ context.Context, _ *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { + // this is for clients API compatibility, because there is no migration in this branch + // todo: remove this + return &pb.RpcAccountMigrateResponse{ + Error: &pb.RpcAccountMigrateResponseError{ + Code: 0, + Description: "", + }, + } +} + +func (mw *Middleware) AccountMigrateCancel(_ context.Context, _ *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { + // this is for clients API compatibility, because there is no migration in this branch + // todo: remove this + return &pb.RpcAccountMigrateCancelResponse{ + Error: &pb.RpcAccountMigrateCancelResponseError{ + Code: 0, + Description: "", + }, + } +} func (mw *Middleware) AccountSelect(cctx context.Context, req *pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse { account, err := mw.applicationService.AccountSelect(cctx, req) diff --git a/docs/proto.md b/docs/proto.md index 0b06c1d5b..c556d8092 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -87,6 +87,14 @@ - [Rpc.Account.LocalLink.SolveChallenge.Request](#anytype-Rpc-Account-LocalLink-SolveChallenge-Request) - [Rpc.Account.LocalLink.SolveChallenge.Response](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response) - [Rpc.Account.LocalLink.SolveChallenge.Response.Error](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response-Error) + - [Rpc.Account.Migrate](#anytype-Rpc-Account-Migrate) + - [Rpc.Account.Migrate.Request](#anytype-Rpc-Account-Migrate-Request) + - [Rpc.Account.Migrate.Response](#anytype-Rpc-Account-Migrate-Response) + - [Rpc.Account.Migrate.Response.Error](#anytype-Rpc-Account-Migrate-Response-Error) + - [Rpc.Account.MigrateCancel](#anytype-Rpc-Account-MigrateCancel) + - [Rpc.Account.MigrateCancel.Request](#anytype-Rpc-Account-MigrateCancel-Request) + - [Rpc.Account.MigrateCancel.Response](#anytype-Rpc-Account-MigrateCancel-Response) + - [Rpc.Account.MigrateCancel.Response.Error](#anytype-Rpc-Account-MigrateCancel-Response-Error) - [Rpc.Account.Move](#anytype-Rpc-Account-Move) - [Rpc.Account.Move.Request](#anytype-Rpc-Account-Move-Request) - [Rpc.Account.Move.Response](#anytype-Rpc-Account-Move-Response) @@ -1298,6 +1306,8 @@ - [Rpc.Account.EnableLocalNetworkSync.Response.Error.Code](#anytype-Rpc-Account-EnableLocalNetworkSync-Response-Error-Code) - [Rpc.Account.LocalLink.NewChallenge.Response.Error.Code](#anytype-Rpc-Account-LocalLink-NewChallenge-Response-Error-Code) - [Rpc.Account.LocalLink.SolveChallenge.Response.Error.Code](#anytype-Rpc-Account-LocalLink-SolveChallenge-Response-Error-Code) + - [Rpc.Account.Migrate.Response.Error.Code](#anytype-Rpc-Account-Migrate-Response-Error-Code) + - [Rpc.Account.MigrateCancel.Response.Error.Code](#anytype-Rpc-Account-MigrateCancel-Response-Error-Code) - [Rpc.Account.Move.Response.Error.Code](#anytype-Rpc-Account-Move-Response-Error-Code) - [Rpc.Account.NetworkMode](#anytype-Rpc-Account-NetworkMode) - [Rpc.Account.Recover.Response.Error.Code](#anytype-Rpc-Account-Recover-Response-Error-Code) @@ -2033,6 +2043,8 @@ | WorkspaceSetInfo | [Rpc.Workspace.SetInfo.Request](#anytype-Rpc-Workspace-SetInfo-Request) | [Rpc.Workspace.SetInfo.Response](#anytype-Rpc-Workspace-SetInfo-Response) | | | WorkspaceExport | [Rpc.Workspace.Export.Request](#anytype-Rpc-Workspace-Export-Request) | [Rpc.Workspace.Export.Response](#anytype-Rpc-Workspace-Export-Response) | | | AccountRecover | [Rpc.Account.Recover.Request](#anytype-Rpc-Account-Recover-Request) | [Rpc.Account.Recover.Response](#anytype-Rpc-Account-Recover-Response) | Account *** | +| AccountMigrate | [Rpc.Account.Migrate.Request](#anytype-Rpc-Account-Migrate-Request) | [Rpc.Account.Migrate.Response](#anytype-Rpc-Account-Migrate-Response) | | +| AccountMigrateCancel | [Rpc.Account.MigrateCancel.Request](#anytype-Rpc-Account-MigrateCancel-Request) | [Rpc.Account.MigrateCancel.Response](#anytype-Rpc-Account-MigrateCancel-Response) | | | AccountCreate | [Rpc.Account.Create.Request](#anytype-Rpc-Account-Create-Request) | [Rpc.Account.Create.Response](#anytype-Rpc-Account-Create-Response) | | | AccountDelete | [Rpc.Account.Delete.Request](#anytype-Rpc-Account-Delete-Request) | [Rpc.Account.Delete.Response](#anytype-Rpc-Account-Delete-Response) | | | AccountRevertDeletion | [Rpc.Account.RevertDeletion.Request](#anytype-Rpc-Account-RevertDeletion-Request) | [Rpc.Account.RevertDeletion.Response](#anytype-Rpc-Account-RevertDeletion-Response) | | @@ -3478,6 +3490,119 @@ TODO: Remove this request if we do not need it, GO-1926 + + +### Rpc.Account.Migrate + + + + + + + + + +### Rpc.Account.Migrate.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Id of a selected account | +| rootPath | [string](#string) | | | + + + + + + + + +### Rpc.Account.Migrate.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.Account.Migrate.Response.Error](#anytype-Rpc-Account-Migrate-Response-Error) | | | + + + + + + + + +### Rpc.Account.Migrate.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.Account.Migrate.Response.Error.Code](#anytype-Rpc-Account-Migrate-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + + + +### Rpc.Account.MigrateCancel + + + + + + + + + +### Rpc.Account.MigrateCancel.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | Id of a selected account | + + + + + + + + +### Rpc.Account.MigrateCancel.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.Account.MigrateCancel.Response.Error](#anytype-Rpc-Account-MigrateCancel-Response-Error) | | | + + + + + + + + +### Rpc.Account.MigrateCancel.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.Account.MigrateCancel.Response.Error.Code](#anytype-Rpc-Account-MigrateCancel-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.Account.Move @@ -21099,6 +21224,35 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.Account.Migrate.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | No error | +| UNKNOWN_ERROR | 1 | Any other errors | +| BAD_INPUT | 2 | Id or root path is wrong | +| ACCOUNT_NOT_FOUND | 101 | | +| CANCELED | 102 | | +| NOT_ENOUGH_FREE_SPACE | 103 | TODO: [storage] Add specific error codes for migration problems | + + + + + +### Rpc.Account.MigrateCancel.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | No error | +| UNKNOWN_ERROR | 1 | Any other errors | +| BAD_INPUT | 2 | Id or root path is wrong | + + + ### Rpc.Account.Move.Response.Error.Code @@ -21194,6 +21348,7 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er | FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION | 110 | | | ACCOUNT_IS_DELETED | 111 | | | ACCOUNT_LOAD_IS_CANCELED | 112 | | +| ACCOUNT_STORE_NOT_MIGRATED | 113 | | | CONFIG_FILE_NOT_FOUND | 200 | | | CONFIG_FILE_INVALID | 201 | | | CONFIG_FILE_NETWORK_ID_MISMATCH | 202 | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index fcb424199..eab79f6c2 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -1132,6 +1132,71 @@ func (RpcAccountRevertDeletionResponseErrorCode) EnumDescriptor() ([]byte, []int return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 4, 1, 0, 0} } +type RpcAccountMigrateResponseErrorCode int32 + +const ( + RpcAccountMigrateResponseError_NULL RpcAccountMigrateResponseErrorCode = 0 + RpcAccountMigrateResponseError_UNKNOWN_ERROR RpcAccountMigrateResponseErrorCode = 1 + RpcAccountMigrateResponseError_BAD_INPUT RpcAccountMigrateResponseErrorCode = 2 + RpcAccountMigrateResponseError_ACCOUNT_NOT_FOUND RpcAccountMigrateResponseErrorCode = 101 + RpcAccountMigrateResponseError_CANCELED RpcAccountMigrateResponseErrorCode = 102 + RpcAccountMigrateResponseError_NOT_ENOUGH_FREE_SPACE RpcAccountMigrateResponseErrorCode = 103 +) + +var RpcAccountMigrateResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", + 101: "ACCOUNT_NOT_FOUND", + 102: "CANCELED", + 103: "NOT_ENOUGH_FREE_SPACE", +} + +var RpcAccountMigrateResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, + "ACCOUNT_NOT_FOUND": 101, + "CANCELED": 102, + "NOT_ENOUGH_FREE_SPACE": 103, +} + +func (x RpcAccountMigrateResponseErrorCode) String() string { + return proto.EnumName(RpcAccountMigrateResponseErrorCode_name, int32(x)) +} + +func (RpcAccountMigrateResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0, 0} +} + +type RpcAccountMigrateCancelResponseErrorCode int32 + +const ( + RpcAccountMigrateCancelResponseError_NULL RpcAccountMigrateCancelResponseErrorCode = 0 + RpcAccountMigrateCancelResponseError_UNKNOWN_ERROR RpcAccountMigrateCancelResponseErrorCode = 1 + RpcAccountMigrateCancelResponseError_BAD_INPUT RpcAccountMigrateCancelResponseErrorCode = 2 +) + +var RpcAccountMigrateCancelResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", +} + +var RpcAccountMigrateCancelResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, +} + +func (x RpcAccountMigrateCancelResponseErrorCode) String() string { + return proto.EnumName(RpcAccountMigrateCancelResponseErrorCode_name, int32(x)) +} + +func (RpcAccountMigrateCancelResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0, 0} +} + type RpcAccountSelectResponseErrorCode int32 const ( @@ -1148,6 +1213,7 @@ const ( RpcAccountSelectResponseError_FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION RpcAccountSelectResponseErrorCode = 110 RpcAccountSelectResponseError_ACCOUNT_IS_DELETED RpcAccountSelectResponseErrorCode = 111 RpcAccountSelectResponseError_ACCOUNT_LOAD_IS_CANCELED RpcAccountSelectResponseErrorCode = 112 + RpcAccountSelectResponseError_ACCOUNT_STORE_NOT_MIGRATED RpcAccountSelectResponseErrorCode = 113 RpcAccountSelectResponseError_CONFIG_FILE_NOT_FOUND RpcAccountSelectResponseErrorCode = 200 RpcAccountSelectResponseError_CONFIG_FILE_INVALID RpcAccountSelectResponseErrorCode = 201 RpcAccountSelectResponseError_CONFIG_FILE_NETWORK_ID_MISMATCH RpcAccountSelectResponseErrorCode = 202 @@ -1167,6 +1233,7 @@ var RpcAccountSelectResponseErrorCode_name = map[int32]string{ 110: "FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION", 111: "ACCOUNT_IS_DELETED", 112: "ACCOUNT_LOAD_IS_CANCELED", + 113: "ACCOUNT_STORE_NOT_MIGRATED", 200: "CONFIG_FILE_NOT_FOUND", 201: "CONFIG_FILE_INVALID", 202: "CONFIG_FILE_NETWORK_ID_MISMATCH", @@ -1186,6 +1253,7 @@ var RpcAccountSelectResponseErrorCode_value = map[string]int32{ "FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION": 110, "ACCOUNT_IS_DELETED": 111, "ACCOUNT_LOAD_IS_CANCELED": 112, + "ACCOUNT_STORE_NOT_MIGRATED": 113, "CONFIG_FILE_NOT_FOUND": 200, "CONFIG_FILE_INVALID": 201, "CONFIG_FILE_NETWORK_ID_MISMATCH": 202, @@ -1196,7 +1264,7 @@ func (x RpcAccountSelectResponseErrorCode) String() string { } func (RpcAccountSelectResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0, 0} } type RpcAccountStopResponseErrorCode int32 @@ -1233,7 +1301,7 @@ func (x RpcAccountStopResponseErrorCode) String() string { } func (RpcAccountStopResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0, 0} } type RpcAccountMoveResponseErrorCode int32 @@ -1279,7 +1347,7 @@ func (x RpcAccountMoveResponseErrorCode) String() string { } func (RpcAccountMoveResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1, 0, 0} } type RpcAccountConfigUpdateTimezones int32 @@ -1382,7 +1450,7 @@ func (x RpcAccountConfigUpdateTimezones) String() string { } func (RpcAccountConfigUpdateTimezones) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} } type RpcAccountConfigUpdateResponseErrorCode int32 @@ -1416,7 +1484,7 @@ func (x RpcAccountConfigUpdateResponseErrorCode) String() string { } func (RpcAccountConfigUpdateResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0, 0} } type RpcAccountRecoverFromLegacyExportResponseErrorCode int32 @@ -1447,7 +1515,7 @@ func (x RpcAccountRecoverFromLegacyExportResponseErrorCode) String() string { } func (RpcAccountRecoverFromLegacyExportResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0, 0} } type RpcAccountEnableLocalNetworkSyncResponseErrorCode int32 @@ -1478,7 +1546,7 @@ func (x RpcAccountEnableLocalNetworkSyncResponseErrorCode) String() string { } func (RpcAccountEnableLocalNetworkSyncResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0, 0} } type RpcAccountChangeJsonApiAddrResponseErrorCode int32 @@ -1509,7 +1577,7 @@ func (x RpcAccountChangeJsonApiAddrResponseErrorCode) String() string { } func (RpcAccountChangeJsonApiAddrResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0, 0} } type RpcAccountChangeNetworkConfigAndRestartResponseErrorCode int32 @@ -1552,7 +1620,7 @@ func (x RpcAccountChangeNetworkConfigAndRestartResponseErrorCode) String() strin } func (RpcAccountChangeNetworkConfigAndRestartResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1, 0, 0} } type RpcAccountLocalLinkNewChallengeResponseErrorCode int32 @@ -1586,7 +1654,7 @@ func (x RpcAccountLocalLinkNewChallengeResponseErrorCode) String() string { } func (RpcAccountLocalLinkNewChallengeResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1, 0, 0} } type RpcAccountLocalLinkSolveChallengeResponseErrorCode int32 @@ -1626,7 +1694,7 @@ func (x RpcAccountLocalLinkSolveChallengeResponseErrorCode) String() string { } func (RpcAccountLocalLinkSolveChallengeResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1, 0, 0} } type RpcWorkspaceGetCurrentResponseErrorCode int32 @@ -14910,6 +14978,366 @@ func (m *RpcAccountRevertDeletionResponseError) GetDescription() string { return "" } +type RpcAccountMigrate struct { +} + +func (m *RpcAccountMigrate) Reset() { *m = RpcAccountMigrate{} } +func (m *RpcAccountMigrate) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrate) ProtoMessage() {} +func (*RpcAccountMigrate) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5} +} +func (m *RpcAccountMigrate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrate) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrate.Merge(m, src) +} +func (m *RpcAccountMigrate) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrate) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrate.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrate proto.InternalMessageInfo + +type RpcAccountMigrateRequest struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + RootPath string `protobuf:"bytes,2,opt,name=rootPath,proto3" json:"rootPath,omitempty"` +} + +func (m *RpcAccountMigrateRequest) Reset() { *m = RpcAccountMigrateRequest{} } +func (m *RpcAccountMigrateRequest) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateRequest) ProtoMessage() {} +func (*RpcAccountMigrateRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 0} +} +func (m *RpcAccountMigrateRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateRequest.Merge(m, src) +} +func (m *RpcAccountMigrateRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateRequest proto.InternalMessageInfo + +func (m *RpcAccountMigrateRequest) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *RpcAccountMigrateRequest) GetRootPath() string { + if m != nil { + return m.RootPath + } + return "" +} + +type RpcAccountMigrateResponse struct { + Error *RpcAccountMigrateResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcAccountMigrateResponse) Reset() { *m = RpcAccountMigrateResponse{} } +func (m *RpcAccountMigrateResponse) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateResponse) ProtoMessage() {} +func (*RpcAccountMigrateResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1} +} +func (m *RpcAccountMigrateResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateResponse.Merge(m, src) +} +func (m *RpcAccountMigrateResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateResponse proto.InternalMessageInfo + +func (m *RpcAccountMigrateResponse) GetError() *RpcAccountMigrateResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcAccountMigrateResponseError struct { + Code RpcAccountMigrateResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcAccountMigrateResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcAccountMigrateResponseError) Reset() { *m = RpcAccountMigrateResponseError{} } +func (m *RpcAccountMigrateResponseError) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateResponseError) ProtoMessage() {} +func (*RpcAccountMigrateResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0} +} +func (m *RpcAccountMigrateResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateResponseError.Merge(m, src) +} +func (m *RpcAccountMigrateResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateResponseError proto.InternalMessageInfo + +func (m *RpcAccountMigrateResponseError) GetCode() RpcAccountMigrateResponseErrorCode { + if m != nil { + return m.Code + } + return RpcAccountMigrateResponseError_NULL +} + +func (m *RpcAccountMigrateResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + +type RpcAccountMigrateCancel struct { +} + +func (m *RpcAccountMigrateCancel) Reset() { *m = RpcAccountMigrateCancel{} } +func (m *RpcAccountMigrateCancel) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateCancel) ProtoMessage() {} +func (*RpcAccountMigrateCancel) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6} +} +func (m *RpcAccountMigrateCancel) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateCancel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateCancel.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateCancel) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateCancel.Merge(m, src) +} +func (m *RpcAccountMigrateCancel) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateCancel) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateCancel.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateCancel proto.InternalMessageInfo + +type RpcAccountMigrateCancelRequest struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *RpcAccountMigrateCancelRequest) Reset() { *m = RpcAccountMigrateCancelRequest{} } +func (m *RpcAccountMigrateCancelRequest) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateCancelRequest) ProtoMessage() {} +func (*RpcAccountMigrateCancelRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 0} +} +func (m *RpcAccountMigrateCancelRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateCancelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateCancelRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateCancelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateCancelRequest.Merge(m, src) +} +func (m *RpcAccountMigrateCancelRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateCancelRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateCancelRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateCancelRequest proto.InternalMessageInfo + +func (m *RpcAccountMigrateCancelRequest) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +type RpcAccountMigrateCancelResponse struct { + Error *RpcAccountMigrateCancelResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcAccountMigrateCancelResponse) Reset() { *m = RpcAccountMigrateCancelResponse{} } +func (m *RpcAccountMigrateCancelResponse) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateCancelResponse) ProtoMessage() {} +func (*RpcAccountMigrateCancelResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1} +} +func (m *RpcAccountMigrateCancelResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateCancelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateCancelResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateCancelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateCancelResponse.Merge(m, src) +} +func (m *RpcAccountMigrateCancelResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateCancelResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateCancelResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateCancelResponse proto.InternalMessageInfo + +func (m *RpcAccountMigrateCancelResponse) GetError() *RpcAccountMigrateCancelResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcAccountMigrateCancelResponseError struct { + Code RpcAccountMigrateCancelResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcAccountMigrateCancelResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcAccountMigrateCancelResponseError) Reset() { *m = RpcAccountMigrateCancelResponseError{} } +func (m *RpcAccountMigrateCancelResponseError) String() string { return proto.CompactTextString(m) } +func (*RpcAccountMigrateCancelResponseError) ProtoMessage() {} +func (*RpcAccountMigrateCancelResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0} +} +func (m *RpcAccountMigrateCancelResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcAccountMigrateCancelResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcAccountMigrateCancelResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcAccountMigrateCancelResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcAccountMigrateCancelResponseError.Merge(m, src) +} +func (m *RpcAccountMigrateCancelResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcAccountMigrateCancelResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcAccountMigrateCancelResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcAccountMigrateCancelResponseError proto.InternalMessageInfo + +func (m *RpcAccountMigrateCancelResponseError) GetCode() RpcAccountMigrateCancelResponseErrorCode { + if m != nil { + return m.Code + } + return RpcAccountMigrateCancelResponseError_NULL +} + +func (m *RpcAccountMigrateCancelResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcAccountSelect struct { } @@ -14917,7 +15345,7 @@ func (m *RpcAccountSelect) Reset() { *m = RpcAccountSelect{} } func (m *RpcAccountSelect) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelect) ProtoMessage() {} func (*RpcAccountSelect) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7} } func (m *RpcAccountSelect) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14963,7 +15391,7 @@ func (m *RpcAccountSelectRequest) Reset() { *m = RpcAccountSelectRequest func (m *RpcAccountSelectRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectRequest) ProtoMessage() {} func (*RpcAccountSelectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 0} } func (m *RpcAccountSelectRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15053,7 +15481,7 @@ func (m *RpcAccountSelectResponse) Reset() { *m = RpcAccountSelectRespon func (m *RpcAccountSelectResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectResponse) ProtoMessage() {} func (*RpcAccountSelectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1} } func (m *RpcAccountSelectResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15112,7 +15540,7 @@ func (m *RpcAccountSelectResponseError) Reset() { *m = RpcAccountSelectR func (m *RpcAccountSelectResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountSelectResponseError) ProtoMessage() {} func (*RpcAccountSelectResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 5, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0} } func (m *RpcAccountSelectResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15162,7 +15590,7 @@ func (m *RpcAccountStop) Reset() { *m = RpcAccountStop{} } func (m *RpcAccountStop) String() string { return proto.CompactTextString(m) } func (*RpcAccountStop) ProtoMessage() {} func (*RpcAccountStop) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8} } func (m *RpcAccountStop) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15201,7 +15629,7 @@ func (m *RpcAccountStopRequest) Reset() { *m = RpcAccountStopRequest{} } func (m *RpcAccountStopRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopRequest) ProtoMessage() {} func (*RpcAccountStopRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} } func (m *RpcAccountStopRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15247,7 +15675,7 @@ func (m *RpcAccountStopResponse) Reset() { *m = RpcAccountStopResponse{} func (m *RpcAccountStopResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopResponse) ProtoMessage() {} func (*RpcAccountStopResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1} } func (m *RpcAccountStopResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15292,7 +15720,7 @@ func (m *RpcAccountStopResponseError) Reset() { *m = RpcAccountStopRespo func (m *RpcAccountStopResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountStopResponseError) ProtoMessage() {} func (*RpcAccountStopResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 6, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0} } func (m *RpcAccountStopResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15342,7 +15770,7 @@ func (m *RpcAccountMove) Reset() { *m = RpcAccountMove{} } func (m *RpcAccountMove) String() string { return proto.CompactTextString(m) } func (*RpcAccountMove) ProtoMessage() {} func (*RpcAccountMove) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9} } func (m *RpcAccountMove) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15381,7 +15809,7 @@ func (m *RpcAccountMoveRequest) Reset() { *m = RpcAccountMoveRequest{} } func (m *RpcAccountMoveRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveRequest) ProtoMessage() {} func (*RpcAccountMoveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0} } func (m *RpcAccountMoveRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15425,7 +15853,7 @@ func (m *RpcAccountMoveResponse) Reset() { *m = RpcAccountMoveResponse{} func (m *RpcAccountMoveResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveResponse) ProtoMessage() {} func (*RpcAccountMoveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1} } func (m *RpcAccountMoveResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15470,7 +15898,7 @@ func (m *RpcAccountMoveResponseError) Reset() { *m = RpcAccountMoveRespo func (m *RpcAccountMoveResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountMoveResponseError) ProtoMessage() {} func (*RpcAccountMoveResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 7, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 1, 0} } func (m *RpcAccountMoveResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15520,7 +15948,7 @@ func (m *RpcAccountConfigUpdate) Reset() { *m = RpcAccountConfigUpdate{} func (m *RpcAccountConfigUpdate) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdate) ProtoMessage() {} func (*RpcAccountConfigUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10} } func (m *RpcAccountConfigUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15557,7 +15985,7 @@ func (m *RpcAccountConfigUpdateRequest) Reset() { *m = RpcAccountConfigU func (m *RpcAccountConfigUpdateRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateRequest) ProtoMessage() {} func (*RpcAccountConfigUpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} } func (m *RpcAccountConfigUpdateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15601,7 +16029,7 @@ func (m *RpcAccountConfigUpdateResponse) Reset() { *m = RpcAccountConfig func (m *RpcAccountConfigUpdateResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateResponse) ProtoMessage() {} func (*RpcAccountConfigUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1} } func (m *RpcAccountConfigUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15646,7 +16074,7 @@ func (m *RpcAccountConfigUpdateResponseError) Reset() { *m = RpcAccountC func (m *RpcAccountConfigUpdateResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountConfigUpdateResponseError) ProtoMessage() {} func (*RpcAccountConfigUpdateResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 8, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0} } func (m *RpcAccountConfigUpdateResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15696,7 +16124,7 @@ func (m *RpcAccountGetConfig) Reset() { *m = RpcAccountGetConfig{} } func (m *RpcAccountGetConfig) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfig) ProtoMessage() {} func (*RpcAccountGetConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11} } func (m *RpcAccountGetConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15732,7 +16160,7 @@ func (m *RpcAccountGetConfigGet) Reset() { *m = RpcAccountGetConfigGet{} func (m *RpcAccountGetConfigGet) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfigGet) ProtoMessage() {} func (*RpcAccountGetConfigGet) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0} } func (m *RpcAccountGetConfigGet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15768,7 +16196,7 @@ func (m *RpcAccountGetConfigGetRequest) Reset() { *m = RpcAccountGetConf func (m *RpcAccountGetConfigGetRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountGetConfigGetRequest) ProtoMessage() {} func (*RpcAccountGetConfigGetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 9, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0, 0} } func (m *RpcAccountGetConfigGetRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15804,7 +16232,7 @@ func (m *RpcAccountRecoverFromLegacyExport) Reset() { *m = RpcAccountRec func (m *RpcAccountRecoverFromLegacyExport) String() string { return proto.CompactTextString(m) } func (*RpcAccountRecoverFromLegacyExport) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExport) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12} } func (m *RpcAccountRecoverFromLegacyExport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15845,7 +16273,7 @@ func (m *RpcAccountRecoverFromLegacyExportRequest) Reset() { func (m *RpcAccountRecoverFromLegacyExportRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountRecoverFromLegacyExportRequest) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 0} } func (m *RpcAccountRecoverFromLegacyExportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15909,7 +16337,7 @@ func (m *RpcAccountRecoverFromLegacyExportResponse) String() string { } func (*RpcAccountRecoverFromLegacyExportResponse) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1} } func (m *RpcAccountRecoverFromLegacyExportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15972,7 +16400,7 @@ func (m *RpcAccountRecoverFromLegacyExportResponseError) String() string { } func (*RpcAccountRecoverFromLegacyExportResponseError) ProtoMessage() {} func (*RpcAccountRecoverFromLegacyExportResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 10, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0} } func (m *RpcAccountRecoverFromLegacyExportResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16022,7 +16450,7 @@ func (m *RpcAccountEnableLocalNetworkSync) Reset() { *m = RpcAccountEnab func (m *RpcAccountEnableLocalNetworkSync) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSync) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSync) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13} } func (m *RpcAccountEnableLocalNetworkSync) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16060,7 +16488,7 @@ func (m *RpcAccountEnableLocalNetworkSyncRequest) Reset() { func (m *RpcAccountEnableLocalNetworkSyncRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSyncRequest) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 0} } func (m *RpcAccountEnableLocalNetworkSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16099,7 +16527,7 @@ func (m *RpcAccountEnableLocalNetworkSyncResponse) Reset() { func (m *RpcAccountEnableLocalNetworkSyncResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountEnableLocalNetworkSyncResponse) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1} } func (m *RpcAccountEnableLocalNetworkSyncResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16148,7 +16576,7 @@ func (m *RpcAccountEnableLocalNetworkSyncResponseError) String() string { } func (*RpcAccountEnableLocalNetworkSyncResponseError) ProtoMessage() {} func (*RpcAccountEnableLocalNetworkSyncResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 11, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0} } func (m *RpcAccountEnableLocalNetworkSyncResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16198,7 +16626,7 @@ func (m *RpcAccountChangeJsonApiAddr) Reset() { *m = RpcAccountChangeJso func (m *RpcAccountChangeJsonApiAddr) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddr) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddr) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14} } func (m *RpcAccountChangeJsonApiAddr) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16235,7 +16663,7 @@ func (m *RpcAccountChangeJsonApiAddrRequest) Reset() { *m = RpcAccountCh func (m *RpcAccountChangeJsonApiAddrRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrRequest) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0} } func (m *RpcAccountChangeJsonApiAddrRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16279,7 +16707,7 @@ func (m *RpcAccountChangeJsonApiAddrResponse) Reset() { *m = RpcAccountC func (m *RpcAccountChangeJsonApiAddrResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrResponse) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1} } func (m *RpcAccountChangeJsonApiAddrResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16326,7 +16754,7 @@ func (m *RpcAccountChangeJsonApiAddrResponseError) Reset() { func (m *RpcAccountChangeJsonApiAddrResponseError) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeJsonApiAddrResponseError) ProtoMessage() {} func (*RpcAccountChangeJsonApiAddrResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 12, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0} } func (m *RpcAccountChangeJsonApiAddrResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16378,7 +16806,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestart) Reset() { func (m *RpcAccountChangeNetworkConfigAndRestart) String() string { return proto.CompactTextString(m) } func (*RpcAccountChangeNetworkConfigAndRestart) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestart) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15} } func (m *RpcAccountChangeNetworkConfigAndRestart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16420,7 +16848,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartRequest) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartRequest) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 0} } func (m *RpcAccountChangeNetworkConfigAndRestartRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16475,7 +16903,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartResponse) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartResponse) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1} } func (m *RpcAccountChangeNetworkConfigAndRestartResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16524,7 +16952,7 @@ func (m *RpcAccountChangeNetworkConfigAndRestartResponseError) String() string { } func (*RpcAccountChangeNetworkConfigAndRestartResponseError) ProtoMessage() {} func (*RpcAccountChangeNetworkConfigAndRestartResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 13, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 15, 1, 0} } func (m *RpcAccountChangeNetworkConfigAndRestartResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16574,7 +17002,7 @@ func (m *RpcAccountLocalLink) Reset() { *m = RpcAccountLocalLink{} } func (m *RpcAccountLocalLink) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLink) ProtoMessage() {} func (*RpcAccountLocalLink) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16} } func (m *RpcAccountLocalLink) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16610,7 +17038,7 @@ func (m *RpcAccountLocalLinkNewChallenge) Reset() { *m = RpcAccountLocal func (m *RpcAccountLocalLinkNewChallenge) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallenge) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0} } func (m *RpcAccountLocalLinkNewChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16650,7 +17078,7 @@ func (m *RpcAccountLocalLinkNewChallengeRequest) Reset() { func (m *RpcAccountLocalLinkNewChallengeRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallengeRequest) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 0} } func (m *RpcAccountLocalLinkNewChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16704,7 +17132,7 @@ func (m *RpcAccountLocalLinkNewChallengeResponse) Reset() { func (m *RpcAccountLocalLinkNewChallengeResponse) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkNewChallengeResponse) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1} } func (m *RpcAccountLocalLinkNewChallengeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16760,7 +17188,7 @@ func (m *RpcAccountLocalLinkNewChallengeResponseError) String() string { } func (*RpcAccountLocalLinkNewChallengeResponseError) ProtoMessage() {} func (*RpcAccountLocalLinkNewChallengeResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 0, 1, 0} } func (m *RpcAccountLocalLinkNewChallengeResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16810,7 +17238,7 @@ func (m *RpcAccountLocalLinkSolveChallenge) Reset() { *m = RpcAccountLoc func (m *RpcAccountLocalLinkSolveChallenge) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkSolveChallenge) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1} } func (m *RpcAccountLocalLinkSolveChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16850,7 +17278,7 @@ func (m *RpcAccountLocalLinkSolveChallengeRequest) Reset() { func (m *RpcAccountLocalLinkSolveChallengeRequest) String() string { return proto.CompactTextString(m) } func (*RpcAccountLocalLinkSolveChallengeRequest) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 0} } func (m *RpcAccountLocalLinkSolveChallengeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16907,7 +17335,7 @@ func (m *RpcAccountLocalLinkSolveChallengeResponse) String() string { } func (*RpcAccountLocalLinkSolveChallengeResponse) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1} } func (m *RpcAccountLocalLinkSolveChallengeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16970,7 +17398,7 @@ func (m *RpcAccountLocalLinkSolveChallengeResponseError) String() string { } func (*RpcAccountLocalLinkSolveChallengeResponseError) ProtoMessage() {} func (*RpcAccountLocalLinkSolveChallengeResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 14, 1, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 3, 16, 1, 1, 0} } func (m *RpcAccountLocalLinkSolveChallengeResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -71472,6 +71900,8 @@ func init() { proto.RegisterEnum("anytype.RpcAccountRecoverResponseErrorCode", RpcAccountRecoverResponseErrorCode_name, RpcAccountRecoverResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountDeleteResponseErrorCode", RpcAccountDeleteResponseErrorCode_name, RpcAccountDeleteResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountRevertDeletionResponseErrorCode", RpcAccountRevertDeletionResponseErrorCode_name, RpcAccountRevertDeletionResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcAccountMigrateResponseErrorCode", RpcAccountMigrateResponseErrorCode_name, RpcAccountMigrateResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcAccountMigrateCancelResponseErrorCode", RpcAccountMigrateCancelResponseErrorCode_name, RpcAccountMigrateCancelResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountSelectResponseErrorCode", RpcAccountSelectResponseErrorCode_name, RpcAccountSelectResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountStopResponseErrorCode", RpcAccountStopResponseErrorCode_name, RpcAccountStopResponseErrorCode_value) proto.RegisterEnum("anytype.RpcAccountMoveResponseErrorCode", RpcAccountMoveResponseErrorCode_name, RpcAccountMoveResponseErrorCode_value) @@ -71862,6 +72292,14 @@ func init() { proto.RegisterType((*RpcAccountRevertDeletionRequest)(nil), "anytype.Rpc.Account.RevertDeletion.Request") proto.RegisterType((*RpcAccountRevertDeletionResponse)(nil), "anytype.Rpc.Account.RevertDeletion.Response") proto.RegisterType((*RpcAccountRevertDeletionResponseError)(nil), "anytype.Rpc.Account.RevertDeletion.Response.Error") + proto.RegisterType((*RpcAccountMigrate)(nil), "anytype.Rpc.Account.Migrate") + proto.RegisterType((*RpcAccountMigrateRequest)(nil), "anytype.Rpc.Account.Migrate.Request") + proto.RegisterType((*RpcAccountMigrateResponse)(nil), "anytype.Rpc.Account.Migrate.Response") + proto.RegisterType((*RpcAccountMigrateResponseError)(nil), "anytype.Rpc.Account.Migrate.Response.Error") + proto.RegisterType((*RpcAccountMigrateCancel)(nil), "anytype.Rpc.Account.MigrateCancel") + proto.RegisterType((*RpcAccountMigrateCancelRequest)(nil), "anytype.Rpc.Account.MigrateCancel.Request") + proto.RegisterType((*RpcAccountMigrateCancelResponse)(nil), "anytype.Rpc.Account.MigrateCancel.Response") + proto.RegisterType((*RpcAccountMigrateCancelResponseError)(nil), "anytype.Rpc.Account.MigrateCancel.Response.Error") proto.RegisterType((*RpcAccountSelect)(nil), "anytype.Rpc.Account.Select") proto.RegisterType((*RpcAccountSelectRequest)(nil), "anytype.Rpc.Account.Select.Request") proto.RegisterType((*RpcAccountSelectResponse)(nil), "anytype.Rpc.Account.Select.Response") @@ -72991,1258 +73429,1265 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 20003 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7f, 0x9c, 0x24, 0x49, - 0x55, 0x2f, 0x3a, 0x95, 0x59, 0x55, 0xdd, 0x7d, 0xfa, 0xc7, 0xd4, 0xe4, 0xce, 0xcc, 0xce, 0xc6, - 0x2e, 0xcb, 0x3a, 0x2c, 0xcb, 0xba, 0x2c, 0xbd, 0xb0, 0x20, 0xb2, 0xcb, 0x2e, 0x4b, 0x75, 0x75, - 0x75, 0x77, 0xed, 0x76, 0x57, 0xb5, 0x59, 0xd5, 0x33, 0xac, 0xf7, 0xf9, 0xda, 0x9c, 0xaa, 0xe8, - 0xee, 0xdc, 0xa9, 0xce, 0x2c, 0x33, 0xb3, 0x67, 0x76, 0x78, 0x9f, 0xfb, 0xae, 0x88, 0x08, 0x8a, - 0x5c, 0x44, 0x45, 0x45, 0x05, 0x04, 0x44, 0x05, 0x45, 0x7e, 0xc3, 0x05, 0x15, 0x51, 0x40, 0x10, - 0x15, 0x51, 0x54, 0x10, 0xe5, 0x23, 0x28, 0x2a, 0xde, 0x8f, 0x5e, 0x9f, 0xbe, 0x2b, 0x88, 0x57, - 0xae, 0xef, 0x93, 0x11, 0x91, 0x99, 0x11, 0xd5, 0x95, 0x59, 0x91, 0xd5, 0x95, 0xd5, 0xab, 0xbc, - 0xff, 0x32, 0x23, 0x23, 0x4f, 0x9c, 0x38, 0xdf, 0x13, 0x11, 0x27, 0x22, 0x4e, 0x9c, 0x80, 0x73, - 0xbd, 0x4b, 0x77, 0xf5, 0x1c, 0xdb, 0xb3, 0xdd, 0xbb, 0xda, 0xf6, 0xfe, 0xbe, 0x61, 0x75, 0xdc, - 0x45, 0xf2, 0xae, 0x4d, 0x19, 0xd6, 0x35, 0xef, 0x5a, 0x0f, 0xa3, 0x5b, 0x7b, 0x97, 0x77, 0xef, - 0xea, 0x9a, 0x97, 0xee, 0xea, 0x5d, 0xba, 0x6b, 0xdf, 0xee, 0xe0, 0x6e, 0xf0, 0x03, 0x79, 0x61, - 0xd9, 0xd1, 0xed, 0x71, 0xb9, 0xba, 0x76, 0xdb, 0xe8, 0xba, 0x9e, 0xed, 0x60, 0x96, 0xf3, 0x6c, - 0x54, 0x24, 0xbe, 0x82, 0x2d, 0x2f, 0xa0, 0x70, 0xd3, 0xae, 0x6d, 0xef, 0x76, 0x31, 0xfd, 0x76, - 0xe9, 0x60, 0xe7, 0x2e, 0xd7, 0x73, 0x0e, 0xda, 0x1e, 0xfb, 0x7a, 0x4b, 0xff, 0xd7, 0x0e, 0x76, - 0xdb, 0x8e, 0xd9, 0xf3, 0x6c, 0x87, 0xe6, 0x38, 0xff, 0xf3, 0xaf, 0x9e, 0x06, 0x55, 0xef, 0xb5, - 0xd1, 0x97, 0xa7, 0x40, 0x2d, 0xf7, 0x7a, 0xe8, 0x23, 0x0a, 0xc0, 0x2a, 0xf6, 0x2e, 0x60, 0xc7, - 0x35, 0x6d, 0x0b, 0x9d, 0x84, 0x29, 0x1d, 0x7f, 0xc7, 0x01, 0x76, 0xbd, 0x7b, 0xf3, 0x2f, 0xf9, - 0x2b, 0x35, 0x87, 0xde, 0xa8, 0xc0, 0xb4, 0x8e, 0xdd, 0x9e, 0x6d, 0xb9, 0x58, 0x7b, 0x2e, 0x14, - 0xb0, 0xe3, 0xd8, 0xce, 0xb9, 0xdc, 0x2d, 0xb9, 0xdb, 0x67, 0xef, 0xbe, 0x63, 0x91, 0x55, 0x7f, - 0x51, 0xef, 0xb5, 0x17, 0xcb, 0xbd, 0xde, 0x62, 0x44, 0x69, 0x31, 0xf8, 0x69, 0xb1, 0xea, 0xff, - 0xa1, 0xd3, 0x1f, 0xb5, 0x73, 0x30, 0x75, 0x85, 0x66, 0x38, 0xa7, 0xdc, 0x92, 0xbb, 0x7d, 0x46, - 0x0f, 0x5e, 0xfd, 0x2f, 0x1d, 0xec, 0x19, 0x66, 0xd7, 0x3d, 0xa7, 0xd2, 0x2f, 0xec, 0x15, 0xbd, - 0x3e, 0x07, 0x05, 0x42, 0x44, 0xab, 0x40, 0xbe, 0x6d, 0x77, 0x30, 0x29, 0x7e, 0xe1, 0xee, 0xbb, - 0xe4, 0x8b, 0x5f, 0xac, 0xd8, 0x1d, 0xac, 0x93, 0x9f, 0xb5, 0x5b, 0x60, 0x36, 0x10, 0x4b, 0xc4, - 0x06, 0x9f, 0x74, 0xfe, 0x6e, 0xc8, 0xfb, 0xf9, 0xb5, 0x69, 0xc8, 0xd7, 0xb7, 0xd6, 0xd7, 0x4b, - 0x27, 0xb4, 0x53, 0x30, 0xbf, 0x55, 0x7f, 0xa8, 0xde, 0xb8, 0x58, 0xdf, 0xae, 0xea, 0x7a, 0x43, - 0x2f, 0xe5, 0xb4, 0x79, 0x98, 0x59, 0x2a, 0x2f, 0x6f, 0xd7, 0xea, 0x9b, 0x5b, 0xad, 0x92, 0x82, - 0x5e, 0xa3, 0xc2, 0x42, 0x13, 0x7b, 0xcb, 0xf8, 0x8a, 0xd9, 0xc6, 0x4d, 0xcf, 0xf0, 0x30, 0x7a, - 0x79, 0x2e, 0x14, 0xa6, 0xb6, 0xe5, 0x17, 0x1a, 0x7e, 0x62, 0x15, 0x78, 0xfa, 0xa1, 0x0a, 0x88, - 0x14, 0x16, 0xd9, 0xdf, 0x8b, 0x5c, 0x9a, 0xce, 0xd3, 0x39, 0xff, 0x14, 0x98, 0xe5, 0xbe, 0x69, - 0x0b, 0x00, 0x4b, 0xe5, 0xca, 0x43, 0xab, 0x7a, 0x63, 0xab, 0xbe, 0x5c, 0x3a, 0xe1, 0xbf, 0xaf, - 0x34, 0xf4, 0x2a, 0x7b, 0xcf, 0xa1, 0xaf, 0xe6, 0x38, 0x30, 0x97, 0x45, 0x30, 0x17, 0x87, 0x33, - 0x33, 0x00, 0x50, 0xf4, 0x33, 0x21, 0x38, 0xab, 0x02, 0x38, 0x4f, 0x4f, 0x47, 0x2e, 0x7b, 0x80, - 0x5e, 0xa4, 0xc0, 0x74, 0x73, 0xef, 0xc0, 0xeb, 0xd8, 0x57, 0x2d, 0x34, 0x13, 0x22, 0x83, 0xfe, - 0x8e, 0x97, 0xc9, 0x73, 0x44, 0x99, 0xdc, 0x7e, 0xb8, 0x12, 0x8c, 0x42, 0x8c, 0x34, 0x7e, 0x2a, - 0x94, 0x46, 0x59, 0x90, 0xc6, 0x53, 0x64, 0x09, 0x65, 0x2f, 0x87, 0x1f, 0x7f, 0x16, 0x14, 0x9a, - 0x3d, 0xa3, 0x8d, 0xd1, 0x6f, 0xab, 0x30, 0xb7, 0x8e, 0x8d, 0x2b, 0xb8, 0xdc, 0xeb, 0x39, 0xf6, - 0x15, 0x8c, 0x2a, 0x91, 0xbe, 0x9e, 0x83, 0x29, 0xd7, 0xcf, 0x54, 0xeb, 0x90, 0x1a, 0xcc, 0xe8, - 0xc1, 0xab, 0x76, 0x33, 0x80, 0xd9, 0xc1, 0x96, 0x67, 0x7a, 0x26, 0x76, 0xcf, 0x29, 0xb7, 0xa8, - 0xb7, 0xcf, 0xe8, 0x5c, 0x0a, 0xfa, 0xb2, 0x22, 0xab, 0x63, 0x84, 0x8b, 0x45, 0x9e, 0x83, 0x18, - 0xa9, 0xbe, 0x41, 0x91, 0xd1, 0xb1, 0xa1, 0xe4, 0xd2, 0xc9, 0xf6, 0x17, 0x73, 0xe9, 0x85, 0xeb, - 0xe7, 0xa8, 0x37, 0xb6, 0x9b, 0x5b, 0x95, 0xb5, 0xed, 0xe6, 0x66, 0xb9, 0x52, 0x2d, 0x61, 0xed, - 0x34, 0x94, 0xc8, 0xe3, 0x76, 0xad, 0xb9, 0xbd, 0x5c, 0x5d, 0xaf, 0xb6, 0xaa, 0xcb, 0xa5, 0x1d, - 0x4d, 0x83, 0x05, 0xbd, 0xfa, 0x2d, 0x5b, 0xd5, 0x66, 0x6b, 0x7b, 0xa5, 0x5c, 0x5b, 0xaf, 0x2e, - 0x97, 0x76, 0xfd, 0x9f, 0xd7, 0x6b, 0x1b, 0xb5, 0xd6, 0xb6, 0x5e, 0x2d, 0x57, 0xd6, 0xaa, 0xcb, - 0xa5, 0x3d, 0xed, 0x7a, 0xb8, 0xae, 0xde, 0xd8, 0x2e, 0x6f, 0x6e, 0xea, 0x8d, 0x0b, 0xd5, 0x6d, - 0xf6, 0x47, 0xb3, 0x64, 0xd2, 0x82, 0x5a, 0xdb, 0xcd, 0xb5, 0xb2, 0x5e, 0x2d, 0x2f, 0xad, 0x57, - 0x4b, 0x8f, 0xa0, 0x17, 0xaa, 0x30, 0xbf, 0x61, 0x5c, 0xc6, 0xcd, 0x3d, 0xc3, 0xc1, 0xc6, 0xa5, - 0x2e, 0x46, 0x4f, 0x90, 0xc0, 0x13, 0xfd, 0x36, 0x8f, 0x57, 0x55, 0xc4, 0xeb, 0xae, 0x01, 0x02, - 0x16, 0x8a, 0x88, 0x01, 0xec, 0x9f, 0xc3, 0x66, 0xb0, 0x26, 0x00, 0xf6, 0x8c, 0x94, 0xf4, 0xd2, - 0x21, 0xf6, 0x5d, 0x8f, 0x01, 0xc4, 0xd0, 0xe7, 0x54, 0x58, 0xa8, 0x59, 0x57, 0x4c, 0x0f, 0xaf, - 0x62, 0x0b, 0x3b, 0xfe, 0x38, 0x20, 0x05, 0xc3, 0x1b, 0x55, 0x0e, 0x86, 0x15, 0x11, 0x86, 0xa7, - 0x0e, 0x10, 0x9b, 0x58, 0x46, 0xcc, 0x68, 0x7b, 0x13, 0xcc, 0x98, 0x24, 0x5f, 0xc5, 0xec, 0x30, - 0x89, 0x45, 0x09, 0xda, 0xad, 0x30, 0x4f, 0x5f, 0x56, 0xcc, 0x2e, 0x7e, 0x08, 0x5f, 0x63, 0xe3, - 0xae, 0x98, 0x88, 0xbe, 0x3f, 0x6c, 0x7c, 0x35, 0x01, 0xcb, 0x6f, 0x4a, 0xcb, 0x54, 0x3a, 0x30, - 0x5f, 0xf9, 0x58, 0x68, 0x7e, 0x87, 0x5a, 0x99, 0x89, 0xbe, 0xa6, 0xc0, 0x6c, 0xd3, 0xb3, 0x7b, - 0xbe, 0xca, 0x9a, 0xd6, 0xae, 0x1c, 0xb8, 0x1f, 0xe3, 0xdb, 0x58, 0x45, 0x04, 0xf7, 0x29, 0x03, - 0xe4, 0xc8, 0x15, 0x10, 0xd3, 0xc2, 0xbe, 0x1c, 0xb6, 0xb0, 0x15, 0x01, 0x95, 0xbb, 0x53, 0x51, - 0xfb, 0x77, 0xd8, 0xbe, 0x5e, 0xa9, 0x42, 0x29, 0x50, 0x33, 0xaf, 0x72, 0xe0, 0x38, 0xd8, 0xf2, - 0xe4, 0x40, 0xf8, 0x13, 0x1e, 0x84, 0x35, 0x11, 0x84, 0xbb, 0x13, 0x94, 0x39, 0x28, 0x25, 0xc3, - 0x36, 0xf6, 0xc1, 0x10, 0xcd, 0x87, 0x04, 0x34, 0xbf, 0x39, 0x3d, 0x5b, 0xe9, 0x20, 0x5d, 0x1b, - 0x01, 0xd1, 0xd3, 0x50, 0xf2, 0xc7, 0xa4, 0x4a, 0xab, 0x76, 0xa1, 0xba, 0x5d, 0xab, 0x5f, 0xa8, - 0xb5, 0xaa, 0x25, 0x8c, 0x7e, 0x48, 0x85, 0x39, 0xca, 0x9a, 0x8e, 0xaf, 0xd8, 0x97, 0x25, 0x7b, - 0xbd, 0xcf, 0xa5, 0x34, 0x16, 0xf8, 0x12, 0x62, 0x5a, 0xc6, 0xf7, 0xa5, 0x30, 0x16, 0x12, 0xc8, - 0x3d, 0x96, 0x7a, 0xab, 0x43, 0xcd, 0x60, 0x77, 0x40, 0x6b, 0x19, 0xd8, 0x5b, 0xbd, 0x32, 0x0f, - 0x40, 0x2b, 0x79, 0xc1, 0xc4, 0x57, 0xd1, 0x46, 0x84, 0x89, 0xa0, 0xb6, 0xb9, 0xa1, 0x6a, 0xab, - 0x0c, 0x52, 0xdb, 0xf7, 0xf2, 0x63, 0xd6, 0x92, 0x88, 0xde, 0x9d, 0xb1, 0xe2, 0xf6, 0x39, 0x89, - 0x9f, 0x1d, 0x06, 0x8a, 0xa2, 0x88, 0x56, 0xe7, 0x4d, 0x30, 0x43, 0x1e, 0xeb, 0xc6, 0x3e, 0x66, - 0x6d, 0x28, 0x4a, 0xd0, 0xce, 0xc3, 0x1c, 0xcd, 0xd8, 0xb6, 0x2d, 0xbf, 0x3e, 0x79, 0x92, 0x41, - 0x48, 0xf3, 0x41, 0x6c, 0x3b, 0xd8, 0xf0, 0x6c, 0x87, 0xd0, 0x28, 0x50, 0x10, 0xb9, 0x24, 0xf4, - 0xa5, 0xb0, 0x15, 0x56, 0x05, 0xcd, 0x79, 0x5a, 0x9a, 0xaa, 0xa4, 0xd3, 0x9b, 0x2b, 0xa3, 0xb5, - 0x3f, 0xda, 0xea, 0xb6, 0x7d, 0xb4, 0x57, 0xc8, 0xd4, 0x0e, 0x6b, 0x67, 0x41, 0x63, 0xa9, 0x7e, - 0xde, 0x4a, 0xa3, 0xde, 0xaa, 0xd6, 0x5b, 0xa5, 0x9d, 0x81, 0x1a, 0xb5, 0x8b, 0xde, 0x90, 0x87, - 0xfc, 0x83, 0xb6, 0x69, 0xa1, 0x17, 0xe5, 0x04, 0x95, 0xb0, 0xb0, 0x77, 0xd5, 0x76, 0x2e, 0x87, - 0x0d, 0x35, 0x4a, 0x48, 0xc6, 0x26, 0x52, 0x25, 0x75, 0xa8, 0x2a, 0xe5, 0x07, 0xa9, 0xd2, 0x0f, - 0xf2, 0xaa, 0x74, 0x9f, 0xa8, 0x4a, 0xb7, 0x0d, 0x90, 0xbf, 0xcf, 0x7c, 0x4c, 0x07, 0xf0, 0xd1, - 0xb0, 0x03, 0x78, 0x40, 0x80, 0xf1, 0xc9, 0x72, 0x64, 0xd2, 0x01, 0xf8, 0xd9, 0x4c, 0x1b, 0xfe, - 0x20, 0xa8, 0x77, 0x63, 0xa0, 0xde, 0x1b, 0xd0, 0x27, 0x98, 0x87, 0xbb, 0x8e, 0x47, 0x0e, 0x77, - 0x13, 0x97, 0xb5, 0x33, 0x70, 0x6a, 0xb9, 0xb6, 0xb2, 0x52, 0xd5, 0xab, 0xf5, 0xd6, 0x76, 0xbd, - 0xda, 0xba, 0xd8, 0xd0, 0x1f, 0x2a, 0x75, 0xd1, 0xeb, 0x55, 0x00, 0x5f, 0x42, 0x15, 0xc3, 0x6a, - 0xe3, 0xae, 0x5c, 0x8f, 0xfe, 0x3f, 0x94, 0x74, 0x7d, 0x42, 0x44, 0x3f, 0x06, 0xce, 0x57, 0x2b, - 0xf2, 0xad, 0x32, 0x96, 0x58, 0x3a, 0x50, 0xdf, 0xfc, 0x58, 0xb0, 0x3d, 0xaf, 0x83, 0x93, 0x01, - 0x3d, 0x96, 0x7d, 0xf0, 0xb4, 0xef, 0xad, 0x79, 0x58, 0x60, 0xb0, 0x04, 0xf3, 0xf8, 0x97, 0xe4, - 0x64, 0x26, 0xf2, 0x08, 0xa6, 0xd9, 0xb4, 0x3d, 0xe8, 0xde, 0xc3, 0x77, 0x6d, 0x15, 0x66, 0x7b, - 0xd8, 0xd9, 0x37, 0x5d, 0xd7, 0xb4, 0x2d, 0xba, 0x20, 0xb7, 0x70, 0xf7, 0x13, 0x43, 0x89, 0x93, - 0xb5, 0xcb, 0xc5, 0x4d, 0xc3, 0xf1, 0xcc, 0xb6, 0xd9, 0x33, 0x2c, 0x6f, 0x33, 0xca, 0xac, 0xf3, - 0x7f, 0xa2, 0x57, 0xa4, 0x9c, 0xd6, 0x88, 0x35, 0x89, 0x51, 0x89, 0x5f, 0x4e, 0x31, 0x25, 0x49, - 0x24, 0x98, 0x4e, 0x2d, 0x3e, 0x92, 0xa9, 0x5a, 0x0c, 0xc0, 0x7b, 0x57, 0xbb, 0x01, 0xce, 0xd4, - 0xea, 0x95, 0x86, 0xae, 0x57, 0x2b, 0xad, 0xed, 0xcd, 0xaa, 0xbe, 0x51, 0x6b, 0x36, 0x6b, 0x8d, - 0x7a, 0xf3, 0x28, 0xad, 0x1d, 0x7d, 0x5c, 0x0d, 0x35, 0x66, 0x19, 0xb7, 0xbb, 0xa6, 0x85, 0xd1, - 0x03, 0x47, 0x54, 0x18, 0x71, 0xd5, 0x47, 0x1e, 0x67, 0x56, 0x7e, 0x0c, 0xce, 0xaf, 0x4b, 0x8f, - 0xf3, 0x60, 0x82, 0xff, 0x81, 0x9b, 0xff, 0xe7, 0x54, 0x38, 0xc5, 0x35, 0x44, 0x1d, 0xef, 0x8f, - 0x6d, 0x25, 0xef, 0xbb, 0xf8, 0xb6, 0x5b, 0x13, 0x31, 0x1d, 0x64, 0x4d, 0x1f, 0x62, 0x23, 0x06, - 0xd6, 0x37, 0x87, 0xb0, 0xae, 0x0b, 0xb0, 0x3e, 0x6b, 0x04, 0x9a, 0xe9, 0x90, 0x7d, 0x5b, 0xa6, - 0xc8, 0xde, 0x00, 0x67, 0x36, 0xcb, 0x7a, 0xab, 0x56, 0xa9, 0x6d, 0x96, 0xfd, 0x71, 0x94, 0x1b, - 0xb2, 0x63, 0xcc, 0x75, 0x11, 0xf4, 0x81, 0xf8, 0xfe, 0x6a, 0x1e, 0x6e, 0x1a, 0xdc, 0xd1, 0x56, - 0xf6, 0x0c, 0x6b, 0x17, 0x23, 0x53, 0x06, 0xea, 0x65, 0x98, 0x6a, 0x93, 0xec, 0x14, 0x67, 0x7e, - 0xeb, 0x26, 0xa1, 0x2f, 0xa7, 0x25, 0xe8, 0xc1, 0xaf, 0xe8, 0x9d, 0xbc, 0x42, 0xb4, 0x44, 0x85, - 0x78, 0x4e, 0x32, 0x78, 0x87, 0xf8, 0x8e, 0xd1, 0x8d, 0x4f, 0x86, 0xba, 0x71, 0x51, 0xd0, 0x8d, - 0xca, 0xd1, 0xc8, 0xa7, 0x53, 0x93, 0xdf, 0x7a, 0x2c, 0x74, 0x00, 0xb1, 0xda, 0x64, 0xc6, 0x8f, - 0x0a, 0x03, 0xbb, 0xfb, 0xd7, 0xaa, 0x50, 0x5c, 0xc6, 0x5d, 0x2c, 0xbb, 0x12, 0xf9, 0xf7, 0x8a, - 0xec, 0x86, 0x08, 0x85, 0x81, 0xd2, 0x8e, 0x5f, 0x1d, 0xf1, 0xcc, 0x7d, 0xec, 0x7a, 0xc6, 0x7e, - 0x8f, 0x88, 0x5a, 0xd5, 0xa3, 0x04, 0xf4, 0xdd, 0x8a, 0xcc, 0x76, 0x49, 0x42, 0x31, 0xff, 0x31, - 0xd6, 0x14, 0x3f, 0xa5, 0xc0, 0x74, 0x13, 0x7b, 0x0d, 0xa7, 0x83, 0x1d, 0xd4, 0x8c, 0x30, 0xba, - 0x05, 0x66, 0x09, 0x28, 0xfe, 0x34, 0x33, 0xc4, 0x89, 0x4f, 0xd2, 0x6e, 0x83, 0x85, 0xf0, 0x95, - 0xfc, 0xce, 0xba, 0xf1, 0xbe, 0x54, 0xf4, 0x0f, 0x39, 0xd9, 0x5d, 0x5c, 0xb6, 0x64, 0xc8, 0xb8, - 0x89, 0x69, 0xa5, 0x72, 0x3b, 0xb2, 0x89, 0xa4, 0xb2, 0xdf, 0xe8, 0x7a, 0xbb, 0x02, 0xb0, 0x65, - 0xb9, 0x81, 0x5c, 0x9f, 0x9c, 0x42, 0xae, 0xe8, 0x9f, 0x72, 0xe9, 0x66, 0x31, 0x51, 0x39, 0x31, - 0x12, 0xfb, 0xe9, 0x14, 0x6b, 0x0b, 0xb1, 0xc4, 0xb2, 0x97, 0xd9, 0x5f, 0x2c, 0x40, 0xf1, 0xa2, - 0xd1, 0xed, 0x62, 0x0f, 0x7d, 0x51, 0x81, 0x62, 0xc5, 0xc1, 0x86, 0x87, 0x79, 0xd1, 0x21, 0x98, - 0x76, 0x6c, 0xdb, 0xdb, 0x34, 0xbc, 0x3d, 0x26, 0xb7, 0xf0, 0x9d, 0x39, 0x0c, 0xfc, 0x02, 0xdf, - 0x7d, 0x3c, 0x20, 0x8a, 0xee, 0x1b, 0x85, 0xda, 0xd2, 0x82, 0x16, 0x69, 0x21, 0x31, 0xfd, 0x07, - 0x82, 0xe9, 0x7d, 0x0b, 0xef, 0xdb, 0x96, 0xd9, 0x0e, 0x6c, 0xce, 0xe0, 0x1d, 0xfd, 0x7a, 0x28, - 0xd3, 0x25, 0x41, 0xa6, 0x8b, 0xd2, 0xa5, 0xa4, 0x13, 0x68, 0x73, 0x84, 0xde, 0xe3, 0xf1, 0x70, - 0x23, 0xed, 0x0c, 0xb6, 0x5b, 0x8d, 0xed, 0x8a, 0x5e, 0x2d, 0xb7, 0xaa, 0xdb, 0xeb, 0x8d, 0x4a, - 0x79, 0x7d, 0x5b, 0xaf, 0x6e, 0x36, 0x4a, 0x18, 0xfd, 0xb5, 0xe2, 0x0b, 0xb7, 0x6d, 0x5f, 0xc1, - 0x0e, 0x5a, 0x95, 0x92, 0x73, 0x92, 0x4c, 0x18, 0x06, 0x3f, 0x28, 0xed, 0xb4, 0xc1, 0xa4, 0xc3, - 0x38, 0x88, 0x51, 0xde, 0x0f, 0x49, 0x35, 0xf7, 0x44, 0x52, 0x8f, 0x01, 0x49, 0xff, 0x4f, 0x05, - 0xa6, 0x2a, 0xb6, 0x75, 0x05, 0x3b, 0x1e, 0x3f, 0xdf, 0xe1, 0xa5, 0x99, 0x13, 0xa5, 0xe9, 0x0f, - 0x92, 0xd8, 0xf2, 0x1c, 0xbb, 0x17, 0x4c, 0x78, 0x82, 0x57, 0xf4, 0xb3, 0x69, 0x25, 0xcc, 0x4a, - 0x8e, 0x5f, 0xf8, 0x1c, 0x5c, 0x90, 0xc0, 0x9e, 0xda, 0xd7, 0x00, 0x5e, 0x9f, 0x06, 0x97, 0xc1, - 0x0c, 0x64, 0xdf, 0xa5, 0x7c, 0x5e, 0x85, 0x79, 0xda, 0xf8, 0x9a, 0x98, 0x58, 0x68, 0xa8, 0xc1, - 0x2f, 0x39, 0xf6, 0x09, 0x7f, 0xed, 0x84, 0x20, 0xfe, 0xa2, 0xd1, 0xeb, 0x85, 0xcb, 0xcf, 0x6b, - 0x27, 0x74, 0xf6, 0x4e, 0xd5, 0x7c, 0xa9, 0x08, 0x79, 0xe3, 0xc0, 0xdb, 0x43, 0x5f, 0x93, 0x9e, - 0x7c, 0x0a, 0x9d, 0x01, 0xe3, 0x27, 0x06, 0x92, 0xd3, 0x50, 0xf0, 0xec, 0xcb, 0x38, 0x90, 0x03, - 0x7d, 0xf1, 0xe1, 0x30, 0x7a, 0xbd, 0x16, 0xf9, 0xc0, 0xe0, 0x08, 0xde, 0x7d, 0x5b, 0xc7, 0x68, - 0xb7, 0xed, 0x03, 0xcb, 0xab, 0x05, 0x4b, 0xd0, 0x51, 0x02, 0xfa, 0x4c, 0x4e, 0x66, 0x32, 0x2b, - 0xc1, 0x60, 0x3a, 0xc8, 0x2e, 0x8d, 0xd0, 0x94, 0x16, 0xe1, 0x8e, 0xf2, 0xe6, 0xe6, 0x76, 0xab, - 0xf1, 0x50, 0xb5, 0x1e, 0x19, 0x9e, 0xdb, 0xb5, 0xfa, 0x76, 0x6b, 0xad, 0xba, 0x5d, 0xd9, 0xd2, - 0xc9, 0x3a, 0x61, 0xb9, 0x52, 0x69, 0x6c, 0xd5, 0x5b, 0x25, 0x8c, 0xde, 0xa2, 0xc0, 0x5c, 0xa5, - 0x6b, 0xbb, 0x21, 0xc2, 0x8f, 0x8f, 0x10, 0x0e, 0xc5, 0x98, 0xe3, 0xc4, 0x88, 0xfe, 0x57, 0x4e, - 0xd6, 0xe9, 0x20, 0x10, 0x08, 0x47, 0x3e, 0xa6, 0x97, 0xfa, 0x59, 0x29, 0xa7, 0x83, 0xe1, 0xf4, - 0xb2, 0x6f, 0x12, 0x9f, 0x7e, 0x0e, 0x4c, 0x95, 0xa9, 0x62, 0xa0, 0x3f, 0xcb, 0x41, 0xb1, 0x62, - 0x5b, 0x3b, 0xe6, 0xae, 0x6f, 0xcc, 0x61, 0xcb, 0xb8, 0xd4, 0xc5, 0xcb, 0x86, 0x67, 0x5c, 0x31, - 0xf1, 0x55, 0x52, 0x81, 0x69, 0xbd, 0x2f, 0xd5, 0x67, 0x8a, 0xa5, 0xe0, 0x4b, 0x07, 0xbb, 0x84, - 0xa9, 0x69, 0x9d, 0x4f, 0xd2, 0x9e, 0x05, 0xd7, 0xd3, 0xd7, 0x4d, 0x07, 0x3b, 0xb8, 0x8b, 0x0d, - 0x17, 0xfb, 0xd3, 0x22, 0x0b, 0x77, 0x89, 0xd2, 0x4e, 0xeb, 0x71, 0x9f, 0xb5, 0xf3, 0x30, 0x47, - 0x3f, 0x11, 0x53, 0xc4, 0x25, 0x6a, 0x3c, 0xad, 0x0b, 0x69, 0xda, 0x53, 0xa0, 0x80, 0x1f, 0xf5, - 0x1c, 0xe3, 0x5c, 0x87, 0xe0, 0x75, 0xfd, 0x22, 0xf5, 0x3a, 0x5c, 0x0c, 0xbc, 0x0e, 0x17, 0x9b, - 0xc4, 0x27, 0x51, 0xa7, 0xb9, 0xd0, 0xc7, 0xa7, 0x43, 0x43, 0xe2, 0x2d, 0x6a, 0xa4, 0x18, 0x1a, - 0xe4, 0x2d, 0x63, 0x1f, 0x33, 0xbd, 0x20, 0xcf, 0xda, 0x1d, 0x70, 0xd2, 0xb8, 0x62, 0x78, 0x86, - 0xb3, 0x6e, 0xb7, 0x8d, 0x2e, 0x19, 0xfc, 0x82, 0x96, 0xdf, 0xff, 0x81, 0xec, 0x08, 0x79, 0xb6, - 0x83, 0x49, 0xae, 0x60, 0x47, 0x28, 0x48, 0xf0, 0xa9, 0x9b, 0x6d, 0xdb, 0x22, 0xfc, 0xab, 0x3a, - 0x79, 0xf6, 0xa5, 0xd2, 0x31, 0x5d, 0xbf, 0x22, 0x84, 0x4a, 0x9d, 0x6e, 0x6d, 0x34, 0xaf, 0x59, - 0x6d, 0xb2, 0x1b, 0x34, 0xad, 0xc7, 0x7d, 0xd6, 0x96, 0x60, 0x96, 0x6d, 0x84, 0x6c, 0xf8, 0x7a, - 0x55, 0x24, 0x7a, 0x75, 0x8b, 0xe8, 0xd3, 0x45, 0xf1, 0x5c, 0xac, 0x47, 0xf9, 0x74, 0xfe, 0x27, - 0xed, 0xb9, 0x70, 0x23, 0x7b, 0xad, 0x1c, 0xb8, 0x9e, 0xbd, 0x4f, 0x41, 0x5f, 0x31, 0xbb, 0xb4, - 0x06, 0x53, 0xa4, 0x06, 0x49, 0x59, 0xb4, 0xbb, 0xe1, 0x74, 0xcf, 0xc1, 0x3b, 0xd8, 0x79, 0xd8, - 0xd8, 0x3f, 0x78, 0xb4, 0xe5, 0x18, 0x96, 0xdb, 0xb3, 0x1d, 0xef, 0xdc, 0x34, 0x61, 0x7e, 0xe0, - 0x37, 0xed, 0x4e, 0x38, 0xf5, 0x88, 0x6b, 0x5b, 0xe5, 0x9e, 0xb9, 0x6e, 0xba, 0x1e, 0xb6, 0xca, - 0x9d, 0x8e, 0x73, 0x6e, 0x86, 0x94, 0x75, 0xf8, 0x03, 0xeb, 0x56, 0xa7, 0xa1, 0x48, 0x85, 0x8d, - 0x5e, 0x5e, 0x90, 0x76, 0xfe, 0x64, 0xd5, 0x4f, 0x34, 0xe6, 0x9e, 0x0a, 0x53, 0xac, 0x3f, 0x24, - 0xb0, 0xce, 0xde, 0x7d, 0xb6, 0x6f, 0x15, 0x82, 0x51, 0xd1, 0x83, 0x6c, 0xda, 0xd3, 0xa1, 0xd8, - 0x26, 0x42, 0x20, 0x08, 0xcf, 0xde, 0x7d, 0xe3, 0xe0, 0x42, 0x49, 0x16, 0x9d, 0x65, 0x45, 0x7f, - 0xac, 0x4a, 0xf9, 0x8b, 0x26, 0x71, 0x9c, 0xae, 0x0f, 0xf8, 0x92, 0x32, 0x42, 0x27, 0x7b, 0x27, - 0xdc, 0xce, 0x7a, 0x50, 0x66, 0xad, 0x2c, 0x6f, 0x2f, 0x6d, 0x05, 0x53, 0x47, 0xdf, 0x86, 0x69, - 0xb6, 0xca, 0xba, 0x3f, 0xef, 0x5f, 0xf6, 0xa7, 0x9c, 0x77, 0xc0, 0x6d, 0x43, 0x72, 0x57, 0x5b, - 0xdb, 0xf5, 0xf2, 0x46, 0xb5, 0xb4, 0x23, 0x5a, 0x42, 0xcd, 0x56, 0x63, 0x73, 0x5b, 0xdf, 0xaa, - 0xd7, 0x6b, 0xf5, 0x55, 0x4a, 0xcc, 0x37, 0x20, 0xcf, 0x46, 0x19, 0x2e, 0xea, 0xb5, 0x56, 0x75, - 0xbb, 0xd2, 0xa8, 0xaf, 0xd4, 0x56, 0x4b, 0xe6, 0x30, 0x33, 0xea, 0x11, 0xed, 0x16, 0xb8, 0x49, - 0xe0, 0xa4, 0xd6, 0xa8, 0xfb, 0xf3, 0xe0, 0x4a, 0xb9, 0x5e, 0xa9, 0xfa, 0x93, 0xde, 0xcb, 0x1a, - 0x82, 0x33, 0x94, 0xdc, 0xf6, 0x4a, 0x6d, 0x9d, 0xdf, 0xba, 0xfa, 0x58, 0x4e, 0x3b, 0x07, 0xd7, - 0xf1, 0xdf, 0x6a, 0xf5, 0x0b, 0xe5, 0xf5, 0xda, 0x72, 0xe9, 0x37, 0x73, 0xda, 0xad, 0xf0, 0x78, - 0xe1, 0x2f, 0xba, 0x0b, 0xb5, 0x5d, 0x5b, 0xde, 0xde, 0xa8, 0x35, 0x37, 0xca, 0xad, 0xca, 0x5a, - 0xe9, 0xe3, 0x64, 0x76, 0x11, 0x9a, 0xcb, 0x9c, 0x13, 0xe7, 0x2b, 0x79, 0x0b, 0xa0, 0x2c, 0x2a, - 0xea, 0x93, 0x07, 0xc2, 0x9e, 0x6c, 0xf1, 0x7e, 0x24, 0x1c, 0x4b, 0x96, 0x05, 0x15, 0x7a, 0x6a, - 0x0a, 0x5a, 0xe9, 0x74, 0xa8, 0x35, 0x82, 0x0a, 0xdd, 0x02, 0x37, 0xd5, 0xab, 0x14, 0x29, 0xbd, - 0x5a, 0x69, 0x5c, 0xa8, 0xea, 0xdb, 0x17, 0xcb, 0xeb, 0xeb, 0xd5, 0xd6, 0xf6, 0x4a, 0x4d, 0x6f, - 0xb6, 0x4a, 0x3b, 0xe8, 0x9f, 0x94, 0x70, 0xed, 0x87, 0x93, 0xd6, 0x9f, 0x29, 0x69, 0x9b, 0x75, - 0xe2, 0x1a, 0xcf, 0x37, 0x41, 0xd1, 0xf5, 0x0c, 0xef, 0xc0, 0x65, 0xad, 0xfa, 0x71, 0x83, 0x5b, - 0xf5, 0x62, 0x93, 0x64, 0xd2, 0x59, 0x66, 0xf4, 0xc7, 0xb9, 0x34, 0xcd, 0x74, 0x0c, 0xcb, 0x3f, - 0xe6, 0x08, 0x22, 0xbe, 0x19, 0x50, 0xa0, 0xed, 0xb5, 0xe6, 0x76, 0x79, 0x5d, 0xaf, 0x96, 0x97, - 0x1f, 0x0e, 0x17, 0x7d, 0xb0, 0x76, 0x06, 0x4e, 0x6d, 0xd5, 0xcb, 0x4b, 0xeb, 0x55, 0xd2, 0x5c, - 0x1a, 0xf5, 0x7a, 0xb5, 0xe2, 0xcb, 0xfd, 0xbb, 0xc9, 0x16, 0x8b, 0x6f, 0x6f, 0x13, 0xbe, 0x7d, - 0x9b, 0x88, 0x93, 0xff, 0x5f, 0x49, 0x7b, 0x22, 0x45, 0x1a, 0xc6, 0xd3, 0x1a, 0x2f, 0x0e, 0x9f, - 0x91, 0x72, 0x3e, 0x92, 0xe2, 0x24, 0x1d, 0x1e, 0xdf, 0x3e, 0x02, 0x1e, 0x67, 0xe0, 0x14, 0x8f, - 0x07, 0x71, 0x42, 0x8a, 0x87, 0xe1, 0xe5, 0x33, 0x50, 0x6c, 0xe2, 0x2e, 0x6e, 0x7b, 0xe8, 0x73, - 0x4a, 0x64, 0x7a, 0x2c, 0x80, 0x12, 0x3a, 0xbd, 0x28, 0x66, 0x47, 0x98, 0x6c, 0x2b, 0x7d, 0x93, - 0xed, 0x04, 0xa3, 0x41, 0x4d, 0x65, 0x34, 0xe4, 0x33, 0x30, 0x1a, 0x0a, 0xa3, 0x1b, 0x0d, 0xc5, - 0xb4, 0x46, 0xc3, 0x54, 0xa2, 0xd1, 0x80, 0x7e, 0xba, 0x98, 0xb6, 0x4f, 0xa1, 0xc0, 0x1c, 0xaf, - 0xa9, 0xf0, 0x3f, 0xf2, 0x69, 0xfa, 0xa0, 0x81, 0x1c, 0xa7, 0xd3, 0xf9, 0xaf, 0xa9, 0x19, 0x2c, - 0x6d, 0x68, 0x4f, 0x80, 0xc7, 0x47, 0xef, 0xdb, 0xd5, 0xe7, 0xd5, 0x9a, 0xad, 0x26, 0xb1, 0x0f, - 0x2a, 0x0d, 0x5d, 0xdf, 0xda, 0xa4, 0xeb, 0xd3, 0x67, 0x41, 0x8b, 0xa8, 0xe8, 0x5b, 0x75, 0x6a, - 0x0d, 0xec, 0x8a, 0xd4, 0x57, 0x6a, 0xf5, 0xe5, 0xed, 0xb0, 0x85, 0xd5, 0x57, 0x1a, 0xa5, 0x3d, - 0x7f, 0x3a, 0xc8, 0x51, 0xf7, 0x87, 0x73, 0x56, 0x42, 0xb9, 0xbe, 0xbc, 0xbd, 0x51, 0xaf, 0x6e, - 0x34, 0xea, 0xb5, 0x0a, 0x49, 0x6f, 0x56, 0x5b, 0x25, 0xd3, 0x1f, 0x96, 0xfa, 0xec, 0x8f, 0x66, - 0xb5, 0xac, 0x57, 0xd6, 0xaa, 0x3a, 0x2d, 0xf2, 0x11, 0xed, 0x36, 0x38, 0x5f, 0xae, 0x37, 0x5a, - 0x7e, 0x4a, 0xb9, 0xfe, 0x70, 0xeb, 0xe1, 0xcd, 0xea, 0xf6, 0xa6, 0xde, 0xa8, 0x54, 0x9b, 0x4d, - 0xbf, 0x55, 0x33, 0x6b, 0xa5, 0xd4, 0xd5, 0x9e, 0x03, 0xf7, 0x72, 0xac, 0x55, 0x5b, 0x64, 0x33, - 0x74, 0xa3, 0x41, 0xfc, 0x61, 0x96, 0xab, 0xdb, 0x6b, 0xe5, 0xe6, 0x76, 0xad, 0x5e, 0x69, 0x6c, - 0x6c, 0x96, 0x5b, 0x35, 0xbf, 0xf1, 0x6f, 0xea, 0x8d, 0x56, 0x63, 0xfb, 0x42, 0x55, 0x6f, 0xd6, - 0x1a, 0xf5, 0x92, 0xe5, 0x57, 0x99, 0xeb, 0x2d, 0x82, 0x5e, 0xdb, 0xd6, 0x6e, 0x82, 0x73, 0x41, - 0xfa, 0x7a, 0xc3, 0x17, 0x34, 0x67, 0xbf, 0xf4, 0x32, 0xb5, 0x5f, 0xfe, 0x45, 0x81, 0x7c, 0xd3, - 0xb3, 0x7b, 0xe8, 0x1b, 0xa3, 0xee, 0xe8, 0x66, 0x00, 0x87, 0xec, 0x6d, 0xfa, 0x33, 0x3c, 0x36, - 0xe7, 0xe3, 0x52, 0xd0, 0x6f, 0x48, 0x6f, 0xc8, 0x44, 0x3d, 0xbc, 0xdd, 0x8b, 0xb1, 0x6c, 0xbe, - 0x2a, 0x77, 0x42, 0x25, 0x9e, 0x50, 0x3a, 0x7d, 0xff, 0xbe, 0x51, 0xb6, 0x5c, 0x10, 0x9c, 0xe5, - 0x60, 0xf3, 0xe5, 0x1f, 0xa8, 0x04, 0xd6, 0xae, 0x87, 0xeb, 0xfa, 0x94, 0x8b, 0xe8, 0xd4, 0x8e, - 0xf6, 0x0d, 0xf0, 0x38, 0x4e, 0xbd, 0xab, 0x1b, 0x8d, 0x0b, 0xd5, 0x50, 0x91, 0x97, 0xcb, 0xad, - 0x72, 0x69, 0x17, 0x7d, 0x4a, 0x85, 0xfc, 0x86, 0x7d, 0xa5, 0x7f, 0x1f, 0xcc, 0xc2, 0x57, 0xb9, - 0x75, 0xd6, 0xe0, 0x55, 0xf4, 0xc8, 0x97, 0x12, 0xfb, 0x46, 0xfc, 0x9e, 0xf7, 0x67, 0x94, 0x34, - 0x62, 0xdf, 0x38, 0xea, 0x46, 0xf7, 0xdf, 0x8c, 0x22, 0xf6, 0x18, 0xd1, 0x62, 0xed, 0x3c, 0xdc, - 0x1c, 0x7d, 0xa8, 0x2d, 0x57, 0xeb, 0xad, 0xda, 0xca, 0xc3, 0x91, 0x70, 0x6b, 0xba, 0x94, 0xf8, - 0x87, 0x75, 0x63, 0xc9, 0xf3, 0x92, 0x73, 0x70, 0x3a, 0xfa, 0xb6, 0x5a, 0x6d, 0x05, 0x5f, 0x1e, - 0x41, 0x2f, 0x2a, 0xc0, 0x1c, 0xed, 0xd6, 0xb7, 0x7a, 0x1d, 0xc3, 0xc3, 0xe8, 0xe9, 0x11, 0xba, - 0xb7, 0xc3, 0xc9, 0xda, 0xe6, 0x4a, 0xb3, 0xe9, 0xd9, 0x8e, 0xb1, 0x8b, 0xc9, 0x38, 0x46, 0xa5, - 0xd5, 0x9f, 0x8c, 0xde, 0x2d, 0xbd, 0x86, 0x28, 0x0e, 0x25, 0xb4, 0xcc, 0x18, 0xd4, 0x3f, 0x2f, - 0xb5, 0xe6, 0x27, 0x41, 0x30, 0x1d, 0xfa, 0x8f, 0x8c, 0xb9, 0xcd, 0xc5, 0xe3, 0xb2, 0x73, 0xfe, - 0xc5, 0x0a, 0xcc, 0xb4, 0xcc, 0x7d, 0xfc, 0x7c, 0xdb, 0xc2, 0xae, 0x36, 0x05, 0xea, 0xea, 0x46, - 0xab, 0x74, 0xc2, 0x7f, 0xf0, 0x4d, 0xb0, 0x1c, 0x79, 0xa8, 0xfa, 0x05, 0xf8, 0x0f, 0xe5, 0x56, - 0x49, 0xf5, 0x1f, 0x36, 0xaa, 0xad, 0x52, 0xde, 0x7f, 0xa8, 0x57, 0x5b, 0xa5, 0x82, 0xff, 0xb0, - 0xb9, 0xde, 0x2a, 0x15, 0xfd, 0x87, 0x5a, 0xb3, 0x55, 0x9a, 0xf2, 0x1f, 0x96, 0x9a, 0xad, 0xd2, - 0xb4, 0xff, 0x70, 0xa1, 0xd9, 0x2a, 0xcd, 0xf8, 0x0f, 0x95, 0x56, 0xab, 0x04, 0xfe, 0xc3, 0x83, - 0xcd, 0x56, 0x69, 0xd6, 0x7f, 0x28, 0x57, 0x5a, 0xa5, 0x39, 0xf2, 0x50, 0x6d, 0x95, 0xe6, 0xfd, - 0x87, 0x66, 0xb3, 0x55, 0x5a, 0x20, 0x94, 0x9b, 0xad, 0xd2, 0x49, 0x52, 0x56, 0xad, 0x55, 0x2a, - 0xf9, 0x0f, 0x6b, 0xcd, 0x56, 0xe9, 0x14, 0xc9, 0xdc, 0x6c, 0x95, 0x34, 0x52, 0x68, 0xb3, 0x55, - 0xba, 0x8e, 0xe4, 0x69, 0xb6, 0x4a, 0xa7, 0x49, 0x11, 0xcd, 0x56, 0xe9, 0x0c, 0x61, 0xa3, 0xda, - 0x2a, 0x9d, 0x25, 0x79, 0xf4, 0x56, 0xe9, 0x7a, 0xf2, 0xa9, 0xde, 0x2a, 0x9d, 0x23, 0x8c, 0x55, - 0x5b, 0xa5, 0x1b, 0xc8, 0x83, 0xde, 0x2a, 0x21, 0xf2, 0xa9, 0xdc, 0x2a, 0xdd, 0x88, 0x1e, 0x07, - 0x33, 0xab, 0xd8, 0xa3, 0x20, 0xa2, 0x12, 0xa8, 0xab, 0xd8, 0xe3, 0x8d, 0xfe, 0xbf, 0x50, 0xe1, - 0x7a, 0x36, 0x51, 0x5c, 0x71, 0xec, 0xfd, 0x75, 0xbc, 0x6b, 0xb4, 0xaf, 0x55, 0x1f, 0xf5, 0x0d, - 0x2e, 0x7e, 0xcf, 0x57, 0x83, 0x7c, 0x2f, 0xea, 0x8c, 0xc8, 0x73, 0xa2, 0x7d, 0x1a, 0x2c, 0x74, - 0xa9, 0xd1, 0x42, 0x17, 0xb3, 0xc8, 0xfe, 0x91, 0xd7, 0x68, 0x61, 0x6d, 0x3a, 0xd7, 0xb7, 0x36, - 0xed, 0x37, 0x93, 0x1e, 0x76, 0x5c, 0xdb, 0x32, 0xba, 0x4d, 0xe6, 0x14, 0x40, 0x57, 0xd4, 0xfa, - 0x93, 0xb5, 0x6f, 0x09, 0x5a, 0x06, 0xb5, 0xca, 0x9e, 0x9d, 0x34, 0x1f, 0xee, 0xaf, 0x66, 0x4c, - 0x23, 0xf9, 0x78, 0xd8, 0x48, 0x5a, 0x42, 0x23, 0x79, 0xee, 0x11, 0x68, 0xa7, 0x6b, 0x2f, 0xb5, - 0xd1, 0x26, 0x22, 0x91, 0xcb, 0x6c, 0xb0, 0x14, 0xae, 0xa2, 0x4f, 0x29, 0x70, 0xb6, 0x6a, 0x0d, - 0x9a, 0x0f, 0xf0, 0xba, 0xf0, 0x16, 0x1e, 0x9a, 0x4d, 0x51, 0xa4, 0xf7, 0x0e, 0xac, 0xf6, 0x60, - 0x9a, 0x31, 0x12, 0xfd, 0x44, 0x28, 0xd1, 0xa6, 0x20, 0xd1, 0x07, 0x46, 0x27, 0x9d, 0x4e, 0xa0, - 0xf5, 0xb1, 0x76, 0x40, 0x79, 0xf4, 0x45, 0x05, 0x4e, 0x51, 0xbf, 0x9e, 0x07, 0xe9, 0xf4, 0x83, - 0x74, 0xd9, 0xa2, 0x09, 0xd5, 0x8d, 0xa6, 0x2a, 0x54, 0xbf, 0xb9, 0x14, 0xf4, 0x06, 0x5e, 0xe0, - 0x0f, 0x89, 0x02, 0x8f, 0xe9, 0x8c, 0xfb, 0x8b, 0x8b, 0x91, 0xf5, 0x6f, 0x86, 0xb2, 0xae, 0x0b, - 0xb2, 0xbe, 0x77, 0x24, 0xaa, 0xc7, 0x2b, 0xe6, 0x2f, 0xe5, 0xe1, 0x71, 0x94, 0x43, 0xa6, 0x08, - 0xb4, 0x33, 0x2b, 0x5b, 0x1d, 0x1d, 0xbb, 0x9e, 0xe1, 0x78, 0xc2, 0x91, 0xf6, 0xbe, 0xf9, 0x6d, - 0x2e, 0x83, 0xf9, 0xad, 0x32, 0x74, 0x7e, 0x8b, 0xde, 0xc5, 0x5b, 0x69, 0x17, 0x45, 0x64, 0xcb, - 0x09, 0x18, 0xc4, 0xd4, 0x30, 0xae, 0x45, 0x85, 0xe6, 0xdb, 0xb7, 0x0a, 0x28, 0xaf, 0x1c, 0xb9, - 0x84, 0x74, 0x88, 0xff, 0xc6, 0x78, 0xcd, 0xe9, 0x3c, 0xff, 0x4d, 0xb4, 0xfd, 0x4a, 0x9d, 0x4c, - 0xe7, 0x41, 0xaf, 0x98, 0x86, 0x19, 0xd2, 0xe5, 0xac, 0x9b, 0xd6, 0x65, 0x7f, 0x6c, 0x9c, 0xab, - 0xe3, 0xab, 0x95, 0x3d, 0xa3, 0xdb, 0xc5, 0xd6, 0x2e, 0x46, 0x8f, 0x08, 0x06, 0xba, 0xd1, 0xeb, - 0xd5, 0xa3, 0xad, 0xa2, 0xe0, 0x55, 0x7b, 0x00, 0x0a, 0x6e, 0xdb, 0xee, 0x61, 0x22, 0xa8, 0x05, - 0xce, 0xb9, 0x44, 0x5c, 0xee, 0x2a, 0x1f, 0x78, 0x7b, 0x8b, 0xa4, 0xac, 0x72, 0xcf, 0x6c, 0xfa, - 0x3f, 0xe8, 0xf4, 0x3f, 0x36, 0x4e, 0xfe, 0xd5, 0xc0, 0xce, 0x38, 0x97, 0xd0, 0x19, 0x87, 0x8c, - 0x2f, 0xf2, 0x4c, 0xc7, 0xac, 0x64, 0xdc, 0x02, 0xb3, 0xed, 0x20, 0x4b, 0x78, 0x76, 0x86, 0x4f, - 0x42, 0x7f, 0x99, 0xaa, 0xbb, 0x96, 0x2a, 0x3c, 0x9d, 0x56, 0xe1, 0x31, 0xdb, 0x8b, 0x67, 0xe0, - 0x54, 0xab, 0xd1, 0xd8, 0xde, 0x28, 0xd7, 0x1f, 0x8e, 0xce, 0xac, 0xef, 0xa0, 0x57, 0xe7, 0x61, - 0xa1, 0x69, 0x77, 0xaf, 0xe0, 0x08, 0xe7, 0x9a, 0xe0, 0x94, 0xc5, 0xcb, 0x29, 0x77, 0x48, 0x4e, - 0xda, 0x59, 0x28, 0x1a, 0x96, 0x7b, 0x15, 0x07, 0x36, 0x3c, 0x7b, 0x63, 0x30, 0xfe, 0x2a, 0xdf, - 0x11, 0xe8, 0x22, 0x8c, 0xf7, 0x0d, 0x91, 0xa4, 0xc8, 0x55, 0x0c, 0x90, 0xe7, 0x61, 0xce, 0xa5, - 0x1b, 0xc6, 0x2d, 0xce, 0x2f, 0x40, 0x48, 0x23, 0x2c, 0x52, 0x8f, 0x05, 0x95, 0xb1, 0x48, 0xde, - 0xd0, 0xeb, 0xc3, 0xfe, 0x63, 0x4b, 0x80, 0xb8, 0x7c, 0x14, 0xc6, 0xd2, 0x81, 0xfc, 0xda, 0x71, - 0xcf, 0xc4, 0xcf, 0xc1, 0x69, 0xd6, 0xec, 0xb7, 0x2b, 0x6b, 0xe5, 0xf5, 0xf5, 0x6a, 0x7d, 0xb5, - 0xba, 0x5d, 0x5b, 0xa6, 0x1b, 0x50, 0x51, 0x4a, 0xb9, 0xd5, 0xaa, 0x6e, 0x6c, 0xb6, 0x9a, 0xdb, - 0xd5, 0xe7, 0x55, 0xaa, 0xd5, 0x65, 0xe2, 0x16, 0x49, 0xce, 0x35, 0x05, 0x0e, 0xac, 0xe5, 0x7a, - 0xf3, 0x62, 0x55, 0x2f, 0xed, 0x9d, 0x2f, 0xc3, 0x2c, 0x37, 0x50, 0xf8, 0xdc, 0x2d, 0xe3, 0x1d, - 0xe3, 0xa0, 0xcb, 0x6c, 0xea, 0xd2, 0x09, 0x9f, 0x3b, 0x22, 0x9b, 0x86, 0xd5, 0xbd, 0x56, 0xca, - 0x69, 0x25, 0x98, 0xe3, 0xc7, 0x84, 0x92, 0x82, 0xde, 0x7e, 0x13, 0xcc, 0x5c, 0xb4, 0x9d, 0xcb, - 0xc4, 0x97, 0x0f, 0xbd, 0x8f, 0xc6, 0xb6, 0x09, 0x4e, 0x09, 0x73, 0x06, 0xd8, 0x6b, 0xe5, 0x3d, - 0x46, 0x02, 0x6a, 0x8b, 0x43, 0x4f, 0x02, 0xdf, 0x02, 0xb3, 0x57, 0x83, 0xdc, 0x51, 0x4b, 0xe7, - 0x92, 0xd0, 0xcf, 0xc9, 0xf9, 0x80, 0x0c, 0x2f, 0x32, 0x7b, 0x1f, 0x85, 0xb7, 0x2a, 0x50, 0x5c, - 0xc5, 0x5e, 0xb9, 0xdb, 0xe5, 0xe5, 0xf6, 0x2a, 0xe9, 0xd3, 0x5d, 0x42, 0x25, 0xca, 0xdd, 0x6e, - 0x7c, 0xa3, 0xe2, 0x04, 0x14, 0x9c, 0x42, 0x10, 0xd2, 0x24, 0x7d, 0x27, 0x87, 0x14, 0x98, 0xbd, - 0xc4, 0x7e, 0x5d, 0x0d, 0xfd, 0x1c, 0xde, 0xc8, 0x99, 0x49, 0x4f, 0x8b, 0xe2, 0x1a, 0xe5, 0x92, - 0xfd, 0x25, 0x82, 0x7c, 0xda, 0x43, 0x30, 0x75, 0xe0, 0xe2, 0x8a, 0xe1, 0x06, 0x43, 0x9b, 0x58, - 0xd3, 0xc6, 0xa5, 0x47, 0x70, 0xdb, 0x5b, 0xac, 0xed, 0xfb, 0x13, 0x9f, 0x2d, 0x9a, 0x31, 0x0c, - 0x15, 0xc4, 0xde, 0xf5, 0x80, 0x82, 0x3f, 0x79, 0xbc, 0x6a, 0x7a, 0x7b, 0x95, 0x3d, 0xc3, 0x63, - 0x3b, 0x16, 0xe1, 0x3b, 0x7a, 0xf9, 0x08, 0x70, 0x26, 0xee, 0xf0, 0xc7, 0x1e, 0x12, 0x4d, 0x0d, - 0xe2, 0x18, 0xb6, 0xe5, 0x47, 0x01, 0xf1, 0x6f, 0x15, 0xc8, 0x37, 0x7a, 0xd8, 0x92, 0x3e, 0x11, - 0x15, 0xca, 0x56, 0xe9, 0x93, 0xed, 0xeb, 0xe5, 0x3d, 0x04, 0xc3, 0x4a, 0xfb, 0x25, 0xc7, 0x48, - 0xf6, 0x2e, 0xc8, 0x9b, 0xd6, 0x8e, 0xcd, 0x2c, 0xdb, 0x1b, 0x63, 0x6c, 0x9d, 0x9a, 0xb5, 0x63, - 0xeb, 0x24, 0xa3, 0xac, 0x73, 0x60, 0x52, 0xd9, 0xd9, 0x8b, 0xfb, 0xef, 0xa6, 0xa1, 0x48, 0xd5, - 0x19, 0xbd, 0x52, 0x05, 0xb5, 0xdc, 0xe9, 0xc4, 0x08, 0x5e, 0x39, 0x24, 0x78, 0x9b, 0xfc, 0x16, - 0x62, 0x12, 0xbe, 0x8b, 0x01, 0x6d, 0x24, 0xfb, 0x76, 0xd6, 0xa4, 0xca, 0x9d, 0x4e, 0xbc, 0x1f, - 0x72, 0x58, 0xa0, 0x22, 0x16, 0xc8, 0xb7, 0x70, 0x55, 0xae, 0x85, 0xa7, 0x1e, 0x08, 0x62, 0xf9, - 0xcb, 0x1e, 0xa2, 0x7f, 0x54, 0x60, 0x6a, 0xdd, 0x74, 0x3d, 0x1f, 0x9b, 0xb2, 0x0c, 0x36, 0x37, - 0xc1, 0x4c, 0x20, 0x1a, 0xbf, 0xcb, 0xf3, 0xfb, 0xf3, 0x28, 0x41, 0x9c, 0x89, 0x3f, 0x28, 0xa2, - 0xf3, 0x8c, 0xe4, 0xda, 0x33, 0x2e, 0xe2, 0x4f, 0x9a, 0x44, 0xc5, 0x2a, 0xfd, 0xc5, 0xfe, 0x42, - 0x28, 0xf0, 0x0d, 0x41, 0xe0, 0xf7, 0x8c, 0x52, 0x64, 0xf6, 0x42, 0xff, 0x43, 0x05, 0xc0, 0x2f, - 0x9b, 0x1d, 0xe7, 0x7b, 0x92, 0x70, 0x48, 0x3f, 0x41, 0xba, 0xaf, 0xe6, 0xa5, 0xbb, 0x21, 0x4a, - 0xf7, 0x9b, 0x87, 0x57, 0x35, 0xe9, 0xd8, 0x9e, 0x56, 0x02, 0xd5, 0x0c, 0x45, 0xeb, 0x3f, 0xa2, - 0xb7, 0x86, 0x42, 0xdd, 0x14, 0x84, 0x7a, 0xdf, 0x88, 0x25, 0x65, 0x2f, 0xd7, 0x3f, 0x51, 0x60, - 0xaa, 0x89, 0x3d, 0xbf, 0x9b, 0x44, 0x17, 0x64, 0x7a, 0x78, 0xae, 0x6d, 0x2b, 0x92, 0x6d, 0xfb, - 0x2b, 0x39, 0xd9, 0x60, 0x3f, 0x91, 0x64, 0x18, 0x4f, 0x31, 0xab, 0x0f, 0x6f, 0x94, 0x0a, 0xf6, - 0x33, 0x8c, 0x5a, 0xf6, 0xd2, 0x7d, 0x8b, 0x12, 0xba, 0x5b, 0x88, 0xa7, 0x6d, 0x78, 0xb3, 0x38, - 0x77, 0xd8, 0x2c, 0x96, 0x3f, 0x6d, 0xc3, 0xd7, 0x31, 0xde, 0x7b, 0x20, 0xb5, 0xb1, 0x31, 0x86, - 0x8d, 0xfd, 0x51, 0xe4, 0xf5, 0x42, 0x15, 0x8a, 0x6c, 0x07, 0xe0, 0x81, 0xe4, 0x1d, 0x80, 0xe1, - 0x53, 0x8b, 0xf7, 0x8e, 0x60, 0xca, 0x25, 0x2d, 0xcb, 0x87, 0x6c, 0x28, 0x1c, 0x1b, 0x77, 0x42, - 0x81, 0x44, 0x23, 0x65, 0xe3, 0x5c, 0xe4, 0x93, 0x11, 0x90, 0xa8, 0xfa, 0x5f, 0x75, 0x9a, 0x29, - 0x35, 0x0a, 0x63, 0x58, 0xc9, 0x1f, 0x05, 0x85, 0x2f, 0x69, 0x00, 0x9b, 0x07, 0x97, 0xba, 0xa6, - 0xbb, 0x67, 0x5a, 0xbb, 0xe8, 0x1d, 0x0a, 0xcc, 0xb1, 0x57, 0x1a, 0x54, 0x33, 0xd1, 0xfc, 0x8b, - 0x35, 0x0a, 0x4a, 0xa0, 0x1e, 0x38, 0x26, 0x5b, 0x06, 0xf0, 0x1f, 0xb5, 0xfb, 0x43, 0xf7, 0xac, - 0x7c, 0x5f, 0x38, 0x05, 0x5f, 0x0c, 0x11, 0x07, 0x8b, 0x5c, 0xe9, 0x91, 0x9b, 0x16, 0x1f, 0x39, - 0xb5, 0x20, 0x46, 0x4e, 0x15, 0xce, 0x58, 0x16, 0xfb, 0xce, 0x58, 0xfa, 0x38, 0xba, 0xe6, 0xf3, - 0x31, 0xf1, 0xdf, 0x51, 0x75, 0xf2, 0xec, 0xff, 0xf1, 0x88, 0x6d, 0x5a, 0x64, 0x53, 0x87, 0xb9, - 0x0f, 0x47, 0x09, 0x7c, 0x9f, 0x37, 0x23, 0xd9, 0xe7, 0x7d, 0x30, 0x9a, 0xfb, 0xd8, 0x92, 0x86, - 0x73, 0x0a, 0xc9, 0x09, 0xec, 0xe6, 0xfb, 0xd8, 0x45, 0x1f, 0x96, 0x0e, 0xae, 0xc6, 0xc9, 0x38, - 0x71, 0x16, 0xc3, 0x38, 0x50, 0x42, 0x0e, 0xb8, 0x8d, 0xdc, 0xa4, 0x1e, 0x78, 0x18, 0xfd, 0x74, - 0xba, 0xbc, 0x3f, 0xc2, 0x7a, 0x8d, 0x06, 0x0b, 0xc1, 0x61, 0xd5, 0xc6, 0xd2, 0x83, 0xd5, 0x4a, - 0xab, 0x84, 0x0f, 0x1f, 0x60, 0x25, 0x47, 0x55, 0xe9, 0xb1, 0xd4, 0x68, 0x4d, 0x06, 0xfd, 0x77, - 0x05, 0x8a, 0xcc, 0xdc, 0x78, 0xe0, 0x88, 0x10, 0xa2, 0xd7, 0x8c, 0x02, 0x49, 0x62, 0xcc, 0x80, - 0xdf, 0x4e, 0x0b, 0xc0, 0x18, 0x0c, 0x8c, 0x87, 0x33, 0x03, 0x00, 0xfd, 0xb3, 0x02, 0x79, 0xdf, - 0x0c, 0x92, 0x3b, 0x91, 0xfd, 0x71, 0x69, 0xef, 0x66, 0x4e, 0x00, 0x3e, 0xf9, 0x18, 0xfd, 0x5e, - 0x82, 0x99, 0x1e, 0xcd, 0x18, 0xc6, 0x03, 0xb8, 0x55, 0xa2, 0x33, 0xc2, 0x7a, 0xf4, 0x1b, 0x7a, - 0x8f, 0x94, 0x87, 0x74, 0x32, 0x3f, 0xe9, 0xe0, 0xa8, 0x8e, 0xe3, 0xf0, 0xf6, 0x0e, 0xfa, 0x57, - 0x05, 0x40, 0xc7, 0xae, 0xdd, 0xbd, 0x82, 0xb7, 0x1c, 0x13, 0xdd, 0x18, 0x01, 0xc0, 0x9a, 0x7d, - 0x2e, 0x6a, 0xf6, 0x9f, 0xe4, 0x05, 0xbf, 0x2a, 0x0a, 0xfe, 0x69, 0xf1, 0x9a, 0x17, 0x10, 0x8f, - 0x11, 0xff, 0x73, 0x60, 0x8a, 0xc9, 0x91, 0xd9, 0x94, 0x72, 0xc2, 0x0f, 0x7e, 0x42, 0xef, 0x0f, - 0x45, 0xff, 0xa0, 0x20, 0xfa, 0x67, 0xa6, 0xe6, 0x28, 0x1d, 0x00, 0x95, 0x11, 0x00, 0x38, 0x09, - 0xb3, 0x01, 0x00, 0x5b, 0x7a, 0xad, 0x84, 0xd1, 0x3b, 0x55, 0xe2, 0x26, 0x41, 0x07, 0xb7, 0xa3, - 0xf7, 0x34, 0x5f, 0x94, 0x9e, 0xec, 0x73, 0xf2, 0x08, 0xcb, 0xcf, 0x08, 0xa0, 0xdf, 0x95, 0x9a, - 0xdd, 0x4b, 0x30, 0xf4, 0x58, 0xe9, 0xaf, 0xce, 0x57, 0x61, 0x5e, 0xb0, 0x4a, 0xb4, 0x73, 0x70, - 0x5a, 0x48, 0xa0, 0xe3, 0x5d, 0xa7, 0x74, 0x42, 0x43, 0x70, 0x56, 0xf8, 0xc2, 0x5e, 0x70, 0xa7, - 0x94, 0x43, 0x6f, 0xfb, 0x74, 0x2e, 0x5c, 0xef, 0x79, 0x6f, 0x9e, 0xad, 0xb4, 0x7d, 0x54, 0x0c, - 0x41, 0xd7, 0xb6, 0x2d, 0x0f, 0x3f, 0xca, 0xb9, 0xa9, 0x84, 0x09, 0x89, 0x56, 0xc3, 0x39, 0x98, - 0xf2, 0x1c, 0xde, 0x75, 0x25, 0x78, 0xe5, 0x15, 0xab, 0x20, 0x2a, 0x56, 0x1d, 0xce, 0x9b, 0x56, - 0xbb, 0x7b, 0xd0, 0xc1, 0x3a, 0xee, 0x1a, 0xbe, 0x0c, 0xdd, 0xb2, 0xbb, 0x8c, 0x7b, 0xd8, 0xea, - 0x60, 0xcb, 0xa3, 0x7c, 0x06, 0x47, 0xe0, 0x24, 0x72, 0x8a, 0xca, 0x78, 0xbf, 0xa8, 0x8c, 0x4f, - 0x1a, 0xb4, 0x84, 0x9b, 0xb0, 0xde, 0x77, 0x0f, 0x00, 0xad, 0xdb, 0x05, 0x13, 0x5f, 0x65, 0x6a, - 0x78, 0x43, 0xdf, 0xaa, 0x5f, 0x23, 0xcc, 0xa0, 0x73, 0x99, 0xd1, 0xe7, 0x42, 0xf5, 0x7b, 0xae, - 0xa0, 0x7e, 0x77, 0x4a, 0xb2, 0x90, 0x4e, 0xeb, 0x7a, 0x23, 0x68, 0xdd, 0x3c, 0xcc, 0x44, 0xbb, - 0xc9, 0xaa, 0x76, 0x03, 0x9c, 0x09, 0xdc, 0x80, 0xeb, 0xd5, 0xea, 0x72, 0x73, 0x7b, 0x6b, 0x73, - 0x55, 0x2f, 0x2f, 0x57, 0x4b, 0xe0, 0xeb, 0x27, 0xd5, 0xcb, 0xd0, 0x7b, 0x37, 0x8f, 0xfe, 0x48, - 0x81, 0x02, 0x39, 0xbf, 0x89, 0xbe, 0x6d, 0x4c, 0x9a, 0xe3, 0x0a, 0x4e, 0x4f, 0xe1, 0xb8, 0x2b, - 0x1f, 0x1a, 0x9e, 0x09, 0x93, 0x70, 0x75, 0xa4, 0xd0, 0xf0, 0x09, 0x84, 0xb2, 0x9f, 0x09, 0xf9, - 0x4d, 0xb2, 0xb9, 0x67, 0x5f, 0xfd, 0x7a, 0x6e, 0x92, 0x7e, 0xfd, 0x8f, 0xb9, 0x49, 0x0e, 0x60, - 0x61, 0xe2, 0x4d, 0x72, 0x40, 0xbb, 0x4b, 0x68, 0xa6, 0xe8, 0x05, 0x85, 0x70, 0xfe, 0xf7, 0x62, - 0xe5, 0x48, 0x7b, 0x5f, 0x65, 0x98, 0x37, 0x2d, 0x0f, 0x3b, 0x96, 0xd1, 0x5d, 0xe9, 0x1a, 0xbb, - 0x81, 0x7d, 0xda, 0xbf, 0xe1, 0x51, 0xe3, 0xf2, 0xe8, 0xe2, 0x1f, 0xda, 0xcd, 0x00, 0x1e, 0xde, - 0xef, 0x75, 0x0d, 0x2f, 0x52, 0x3d, 0x2e, 0x85, 0xd7, 0xbe, 0xbc, 0xa8, 0x7d, 0x4f, 0x85, 0xeb, - 0x28, 0x68, 0xad, 0x6b, 0x3d, 0xbc, 0x65, 0x99, 0xdf, 0x71, 0x40, 0x22, 0x96, 0x52, 0x1d, 0x1d, - 0xf4, 0x49, 0xd8, 0x01, 0x2a, 0xf6, 0xed, 0x00, 0xfd, 0xad, 0x74, 0x24, 0x94, 0xa0, 0xd5, 0x0f, - 0x89, 0x84, 0x12, 0xb6, 0x34, 0xb5, 0xaf, 0xa5, 0x85, 0xeb, 0x32, 0x79, 0x89, 0x75, 0x19, 0x1e, - 0x95, 0x82, 0xe4, 0xfc, 0xfe, 0x75, 0x52, 0xa1, 0x56, 0x92, 0xaa, 0x91, 0x7d, 0xef, 0xf5, 0x65, - 0x15, 0x16, 0x68, 0xd1, 0x4b, 0xb6, 0x7d, 0x79, 0xdf, 0x70, 0x2e, 0xa3, 0x1f, 0x3c, 0xda, 0x3e, - 0x6c, 0xe2, 0xfe, 0x53, 0xdc, 0xa6, 0x6a, 0x9f, 0xfa, 0xe5, 0xfb, 0xd5, 0x0f, 0x7d, 0x42, 0x7a, - 0x52, 0x21, 0xc8, 0x33, 0xa8, 0xd4, 0x64, 0x36, 0xa8, 0xde, 0x24, 0x35, 0xc7, 0x90, 0x61, 0x30, - 0x7b, 0xe0, 0x7f, 0x2b, 0x04, 0x3e, 0x18, 0x09, 0xf8, 0xb5, 0xfd, 0x71, 0xe2, 0x8e, 0x3e, 0x3f, - 0x1a, 0x76, 0x01, 0x5f, 0x23, 0x60, 0x57, 0x02, 0xf5, 0x72, 0xe8, 0x4e, 0xe4, 0x3f, 0xf2, 0x15, - 0xca, 0x67, 0x87, 0x66, 0x0c, 0xcb, 0x13, 0x41, 0xf3, 0xb4, 0xc8, 0x42, 0xa3, 0x97, 0x29, 0xa6, - 0x9f, 0x95, 0xde, 0x33, 0x1b, 0x28, 0x20, 0xca, 0xdd, 0x64, 0x5a, 0xa5, 0xdc, 0x86, 0x9b, 0x3c, - 0x9b, 0xd9, 0xa3, 0xf9, 0xb2, 0x02, 0xcc, 0x04, 0xc1, 0x6c, 0xc8, 0x5d, 0x4b, 0x21, 0x86, 0x67, - 0xa1, 0xe8, 0xda, 0x07, 0x4e, 0x1b, 0xb3, 0x5d, 0x4c, 0xf6, 0x36, 0xc2, 0x8e, 0xdb, 0xd0, 0x01, - 0xff, 0x90, 0x4d, 0x91, 0x4f, 0x6d, 0x53, 0xc4, 0x5b, 0xac, 0x49, 0x16, 0xc0, 0xcb, 0xa5, 0x03, - 0xe4, 0x0b, 0x98, 0x35, 0xb1, 0xf7, 0x58, 0x34, 0x02, 0x7e, 0x4d, 0x6a, 0x3f, 0x67, 0x48, 0x4d, - 0xd2, 0xa9, 0x5c, 0x63, 0x04, 0x4b, 0xf6, 0x46, 0xb8, 0x3e, 0xc8, 0xc1, 0x4c, 0x58, 0x62, 0xb2, - 0x6e, 0xe9, 0xeb, 0x25, 0x15, 0xbd, 0x30, 0x0f, 0x25, 0xca, 0x5a, 0x23, 0xb4, 0xe6, 0xd0, 0xab, - 0x72, 0xc7, 0x6d, 0xb2, 0xc6, 0xcf, 0x41, 0x7f, 0x5f, 0x91, 0x0d, 0xc2, 0x2b, 0x08, 0x3e, 0xaa, - 0x5d, 0x8c, 0x26, 0x8d, 0xd0, 0xcc, 0x12, 0x94, 0x0f, 0xfd, 0x7c, 0x4e, 0x26, 0xa6, 0xaf, 0x1c, - 0x8b, 0xd9, 0xf7, 0x4a, 0x5f, 0xc9, 0x07, 0x31, 0xc9, 0x56, 0x1c, 0x7b, 0x7f, 0xcb, 0xe9, 0xa2, - 0xff, 0x2d, 0x15, 0x32, 0x3d, 0x66, 0x7e, 0xa0, 0xc4, 0xcf, 0x0f, 0xc8, 0x9a, 0x72, 0x37, 0xda, - 0xcc, 0xea, 0x8e, 0x30, 0x7c, 0x6b, 0xb7, 0xc1, 0x82, 0xd1, 0xe9, 0x6c, 0x1a, 0xbb, 0xb8, 0xe2, - 0x4f, 0xbc, 0x2d, 0x8f, 0xc5, 0x2b, 0xea, 0x4b, 0x4d, 0xea, 0x8a, 0xfa, 0xfa, 0xc8, 0xa9, 0x43, - 0x56, 0xa9, 0xfc, 0x42, 0xaa, 0x00, 0x22, 0x93, 0xdf, 0x44, 0x86, 0x3f, 0x7f, 0xc8, 0x68, 0xef, - 0x19, 0x51, 0x74, 0x35, 0xf6, 0x26, 0xe9, 0x4d, 0x25, 0xc1, 0x77, 0xf6, 0x9a, 0xf7, 0xcb, 0x0a, - 0x4c, 0xf9, 0x78, 0x94, 0x3b, 0x1d, 0xf4, 0x44, 0x21, 0x08, 0x61, 0xac, 0x3f, 0xdb, 0xf7, 0x4a, - 0x3b, 0x12, 0x06, 0x35, 0xa4, 0xf4, 0x63, 0x30, 0x89, 0x84, 0xa8, 0x08, 0x42, 0x94, 0xf3, 0x17, - 0x4c, 0x2c, 0x22, 0x7b, 0xf1, 0x7d, 0x5c, 0x81, 0xf9, 0x60, 0x9e, 0xb1, 0x82, 0xbd, 0xf6, 0x1e, - 0xba, 0x47, 0x76, 0xa5, 0x8a, 0xb5, 0xc4, 0x70, 0x53, 0xb7, 0x8b, 0xbe, 0x96, 0x4b, 0xa9, 0xf2, - 0x42, 0xc9, 0x31, 0xcb, 0x7c, 0xa9, 0x74, 0x31, 0x89, 0x60, 0xf6, 0xc2, 0xfc, 0x9c, 0x02, 0xd0, - 0xb2, 0xc3, 0xc9, 0xf2, 0x11, 0x24, 0xf9, 0x43, 0xd2, 0xfb, 0xbd, 0xac, 0xe2, 0x51, 0xb1, 0xe9, - 0x7b, 0x0e, 0x49, 0x77, 0xa8, 0x61, 0x25, 0x4d, 0xa4, 0xad, 0xcf, 0x2c, 0x1f, 0xf4, 0xba, 0x66, - 0xdb, 0xf0, 0xfa, 0x7d, 0xf8, 0xe2, 0xc5, 0x4b, 0x2e, 0x2a, 0x4d, 0x65, 0x34, 0x86, 0x65, 0xc4, - 0xc8, 0x92, 0x86, 0xbb, 0x51, 0x82, 0x70, 0x37, 0x92, 0x7e, 0x39, 0x43, 0x88, 0x4f, 0x40, 0x3d, - 0x55, 0x38, 0xd9, 0xe8, 0x61, 0x6b, 0xc9, 0xc1, 0x46, 0xa7, 0xed, 0x1c, 0xec, 0x5f, 0x72, 0x79, - 0x07, 0xd4, 0x64, 0x1d, 0xe5, 0xd6, 0x9e, 0x15, 0x61, 0xed, 0x19, 0x7d, 0x8f, 0x2a, 0x1b, 0x7c, - 0x89, 0xdb, 0x21, 0xe1, 0x78, 0x18, 0x61, 0xa8, 0x4b, 0xe5, 0x36, 0xd5, 0xb7, 0xcc, 0x9c, 0x4f, - 0xb3, 0xcc, 0xfc, 0x66, 0xa9, 0x50, 0x4e, 0x52, 0xf5, 0x9a, 0x88, 0xf7, 0xdb, 0x42, 0x13, 0x7b, - 0x31, 0xf0, 0xde, 0x0a, 0xf3, 0x97, 0xa2, 0x2f, 0x21, 0xc4, 0x62, 0xe2, 0x00, 0x9f, 0xd4, 0xb7, - 0xa4, 0x5d, 0xa1, 0x11, 0x59, 0x88, 0x41, 0x37, 0x44, 0x50, 0x91, 0x71, 0x7c, 0x4b, 0xb5, 0xdc, - 0x92, 0x58, 0x7e, 0xf6, 0x28, 0x7c, 0x58, 0x81, 0x59, 0x72, 0xfd, 0xea, 0xd2, 0x35, 0x72, 0x14, - 0x53, 0xd2, 0x28, 0x79, 0x19, 0x2f, 0x66, 0x0d, 0xf2, 0x5d, 0xd3, 0xba, 0x1c, 0x78, 0x2c, 0xfa, - 0xcf, 0xd1, 0x65, 0x7e, 0xca, 0x80, 0xcb, 0xfc, 0xc2, 0x8d, 0x8e, 0xb0, 0xdc, 0x23, 0xdd, 0x2e, - 0x3d, 0x94, 0x5c, 0xf6, 0x62, 0xfc, 0xeb, 0x3c, 0x14, 0x9b, 0xd8, 0x70, 0xda, 0x7b, 0xe8, 0xbd, - 0xca, 0xc0, 0xa9, 0xc4, 0xb4, 0x38, 0x95, 0x58, 0x81, 0xa9, 0x1d, 0xb3, 0xeb, 0x61, 0x87, 0x7a, - 0x71, 0xf3, 0x5d, 0x3b, 0x6d, 0xe2, 0x4b, 0x5d, 0xbb, 0x7d, 0x79, 0x91, 0x99, 0xf6, 0x8b, 0x41, - 0xf0, 0xd7, 0xc5, 0x15, 0xf2, 0x93, 0x1e, 0xfc, 0xec, 0x1b, 0x84, 0xae, 0xed, 0x78, 0x71, 0xf7, - 0x7a, 0xc4, 0x50, 0x69, 0xda, 0x8e, 0xa7, 0xd3, 0x1f, 0x7d, 0x98, 0x77, 0x0e, 0xba, 0xdd, 0x16, - 0x7e, 0xd4, 0x0b, 0xa6, 0x75, 0xc1, 0xbb, 0x6f, 0x2c, 0xda, 0x3b, 0x3b, 0x2e, 0xa6, 0x8b, 0x0a, - 0x05, 0x9d, 0xbd, 0x69, 0xa7, 0xa1, 0xd0, 0x35, 0xf7, 0x4d, 0x3a, 0x11, 0x29, 0xe8, 0xf4, 0x45, - 0xbb, 0x03, 0x4a, 0xd1, 0x1c, 0x88, 0x32, 0x7a, 0xae, 0x48, 0x9a, 0xe6, 0xa1, 0x74, 0x5f, 0x67, - 0x2e, 0xe3, 0x6b, 0xee, 0xb9, 0x29, 0xf2, 0x9d, 0x3c, 0x8b, 0x47, 0x66, 0x64, 0x36, 0x4c, 0xa8, - 0xc4, 0xe3, 0x67, 0xb8, 0x0e, 0x6e, 0xdb, 0x4e, 0x27, 0x90, 0x4d, 0xfc, 0x04, 0x83, 0xe5, 0x4b, - 0xb7, 0xcd, 0x31, 0xb0, 0xf0, 0xec, 0x35, 0xed, 0x5d, 0x45, 0xbf, 0xdb, 0xf4, 0x8b, 0xbe, 0x68, - 0x7a, 0x7b, 0x1b, 0xd8, 0x33, 0xd0, 0x5f, 0xab, 0x03, 0x35, 0x6e, 0xf6, 0xff, 0xd7, 0xb8, 0x21, - 0x1a, 0x47, 0x43, 0x6f, 0x79, 0x07, 0x8e, 0xe5, 0xcb, 0x91, 0x79, 0xc2, 0x72, 0x29, 0xda, 0x7d, - 0x70, 0x43, 0xf4, 0x16, 0x2c, 0xa5, 0x2e, 0x73, 0xce, 0xb1, 0xd3, 0x7a, 0x7c, 0x06, 0x6d, 0x13, - 0x9e, 0x40, 0x3f, 0xae, 0xb5, 0x36, 0xd6, 0xd7, 0xcc, 0xdd, 0xbd, 0xae, 0xb9, 0xbb, 0xe7, 0xb9, - 0x35, 0xcb, 0xf5, 0xb0, 0xd1, 0x69, 0xec, 0xe8, 0xf4, 0x46, 0x1e, 0x20, 0x74, 0x64, 0xb2, 0x8a, - 0x5e, 0xde, 0x72, 0xa3, 0x1b, 0xaf, 0x29, 0x31, 0x2d, 0xe5, 0x99, 0x7e, 0x4b, 0x71, 0x0f, 0xba, - 0x21, 0xa6, 0x37, 0xf5, 0x61, 0x1a, 0xa9, 0xfa, 0x41, 0x97, 0x34, 0x17, 0x92, 0x39, 0xed, 0x38, - 0x97, 0xc0, 0x49, 0xf6, 0xcd, 0xe6, 0x7f, 0x17, 0xa1, 0xb0, 0xea, 0x18, 0xbd, 0x3d, 0xf4, 0x42, - 0xae, 0x7f, 0x1e, 0x57, 0x9b, 0x08, 0xb5, 0x53, 0x19, 0xa6, 0x9d, 0xea, 0x10, 0xed, 0xcc, 0x73, - 0xda, 0x19, 0xbf, 0xe8, 0x7c, 0x1e, 0xe6, 0xda, 0x76, 0xb7, 0x8b, 0xdb, 0xbe, 0x3c, 0x6a, 0x1d, - 0xb2, 0xda, 0x33, 0xa3, 0x0b, 0x69, 0x24, 0x40, 0x36, 0xf6, 0x9a, 0x74, 0x8d, 0x9d, 0x2a, 0x7d, - 0x94, 0x80, 0x5e, 0xa5, 0x40, 0xbe, 0xda, 0xd9, 0xc5, 0xc2, 0x3a, 0x7c, 0x8e, 0x5b, 0x87, 0x3f, - 0x0b, 0x45, 0xcf, 0x70, 0x76, 0xb1, 0x17, 0xac, 0x13, 0xd0, 0xb7, 0x30, 0x6e, 0xb7, 0xca, 0xc5, - 0xed, 0xfe, 0x66, 0xc8, 0xfb, 0x32, 0x63, 0x8e, 0xed, 0x4f, 0x18, 0x04, 0x3f, 0x91, 0xfd, 0xa2, - 0x5f, 0xe2, 0xa2, 0x5f, 0x6b, 0x9d, 0xfc, 0xd0, 0x8f, 0x75, 0xe1, 0x10, 0xd6, 0xe4, 0x72, 0xd1, - 0xb6, 0x6d, 0xd5, 0xf6, 0x8d, 0x5d, 0xcc, 0xaa, 0x19, 0x25, 0x04, 0x5f, 0xab, 0xfb, 0xf6, 0x23, - 0x26, 0x5b, 0xd4, 0x8a, 0x12, 0xfc, 0x2a, 0xec, 0x99, 0x9d, 0x0e, 0xb6, 0x58, 0xcb, 0x66, 0x6f, - 0xe7, 0x6f, 0x86, 0xbc, 0xcf, 0x83, 0xaf, 0x3f, 0xbe, 0xb1, 0x50, 0x3a, 0xa1, 0xcd, 0xf9, 0xcd, - 0x8a, 0x36, 0xde, 0x52, 0x4e, 0x5c, 0x73, 0x95, 0xf1, 0xfb, 0xa1, 0x95, 0x1b, 0xdc, 0xb8, 0x9e, - 0x02, 0x05, 0xcb, 0xee, 0xe0, 0xa1, 0x83, 0x10, 0xcd, 0xa5, 0x3d, 0x03, 0x0a, 0xb8, 0xe3, 0xf7, - 0x0a, 0x2a, 0xc9, 0x7e, 0x73, 0xb2, 0x2c, 0x75, 0x9a, 0x39, 0x9d, 0x73, 0xd1, 0x20, 0x6e, 0xb3, - 0x6f, 0x80, 0xdf, 0x3f, 0x05, 0x27, 0x69, 0x1f, 0xd0, 0x3c, 0xb8, 0xe4, 0x93, 0xba, 0x84, 0xd1, - 0x1b, 0x07, 0x0f, 0x5c, 0x27, 0x45, 0x65, 0x3f, 0x0d, 0x05, 0xf7, 0xe0, 0x52, 0x68, 0x84, 0xd2, - 0x17, 0xbe, 0xe9, 0x2a, 0x63, 0x19, 0xce, 0xd4, 0x51, 0x87, 0x33, 0x61, 0x68, 0x52, 0x83, 0xc6, - 0x1f, 0x0d, 0x64, 0xf4, 0x48, 0x46, 0x30, 0x90, 0x0d, 0x1a, 0x86, 0xce, 0xc1, 0x94, 0xb1, 0xe3, - 0x61, 0x27, 0x32, 0x13, 0xd9, 0xab, 0x3f, 0x54, 0x5e, 0xc2, 0x3b, 0xb6, 0xe3, 0x8b, 0x85, 0x86, - 0x6d, 0x0f, 0xdf, 0xb9, 0x96, 0x0b, 0xc2, 0x0e, 0xda, 0x9d, 0x70, 0xca, 0xb2, 0x97, 0x71, 0x8f, - 0xc9, 0x99, 0xa2, 0x38, 0x4f, 0x5a, 0xc0, 0xe1, 0x0f, 0x87, 0xba, 0x92, 0x85, 0xc3, 0x5d, 0x09, - 0xfa, 0x64, 0xda, 0x39, 0x73, 0x1f, 0xd0, 0x63, 0xb3, 0xd0, 0xb4, 0x67, 0xc3, 0x5c, 0x87, 0xf9, - 0x78, 0xb5, 0xcd, 0xb0, 0x95, 0xc4, 0xfe, 0x27, 0x64, 0x8e, 0x14, 0x29, 0xcf, 0x2b, 0xd2, 0x2a, - 0x4c, 0x93, 0xc3, 0xd3, 0xbe, 0x26, 0x15, 0xfa, 0x7c, 0xea, 0xc9, 0xb4, 0x2e, 0xac, 0x14, 0x27, - 0xb6, 0xc5, 0x0a, 0xfb, 0x45, 0x0f, 0x7f, 0x4e, 0x37, 0xfb, 0x4e, 0x96, 0x50, 0xf6, 0xcd, 0xf1, - 0x17, 0x8a, 0x70, 0x43, 0xc5, 0xb1, 0x5d, 0x97, 0x1c, 0xa2, 0xe9, 0x6f, 0x98, 0x3f, 0xab, 0x08, - 0x37, 0x78, 0x3c, 0xa6, 0x9b, 0xdf, 0xa0, 0x06, 0x35, 0xb9, 0xa6, 0xf1, 0x45, 0xe9, 0xb0, 0x33, - 0xe1, 0xfe, 0x43, 0x8c, 0xd0, 0xbf, 0x3e, 0x1a, 0xc9, 0xbb, 0x72, 0x32, 0x91, 0x70, 0x52, 0xca, - 0x2a, 0xfb, 0xe6, 0xf2, 0x59, 0x05, 0x6e, 0xec, 0xe7, 0x66, 0xcb, 0x72, 0xc3, 0x06, 0xf3, 0xf8, - 0x21, 0xed, 0x45, 0x8c, 0x9c, 0x92, 0x78, 0x77, 0x66, 0x4c, 0xdd, 0xb9, 0xd2, 0x62, 0x16, 0x4b, - 0xa2, 0x23, 0x39, 0x49, 0x77, 0x67, 0xa6, 0x26, 0x9f, 0xbd, 0x70, 0x7f, 0x3f, 0x0f, 0x27, 0x57, - 0x1d, 0xfb, 0xa0, 0xe7, 0x46, 0x3d, 0xd0, 0x9f, 0x0d, 0xde, 0x90, 0x2d, 0xca, 0x98, 0x06, 0xb7, - 0xc0, 0xac, 0xc3, 0xac, 0xb9, 0x68, 0x7b, 0x96, 0x4f, 0xe2, 0x7b, 0x2f, 0xf5, 0x28, 0xbd, 0x57, - 0xd4, 0xcf, 0xe4, 0x85, 0x7e, 0xa6, 0xbf, 0xe7, 0x28, 0x0c, 0xe8, 0x39, 0xfe, 0x54, 0x49, 0x39, - 0xa8, 0xf6, 0x89, 0x28, 0xa6, 0xbf, 0xa8, 0x40, 0x71, 0x97, 0x64, 0x64, 0xdd, 0xc5, 0x93, 0xe5, - 0x6a, 0x46, 0x88, 0xeb, 0xec, 0xd7, 0x48, 0xae, 0x2a, 0xaf, 0xc3, 0xa9, 0x06, 0xb8, 0x64, 0x6e, - 0xb3, 0x57, 0xaa, 0xd7, 0xe7, 0x61, 0x2e, 0x2c, 0xbd, 0xd6, 0x71, 0xd1, 0xcb, 0x06, 0x6b, 0xd4, - 0xbc, 0x8c, 0x46, 0x1d, 0x5a, 0x67, 0x0e, 0x47, 0x1d, 0x95, 0x1b, 0x75, 0x06, 0x8e, 0x2e, 0x73, - 0x31, 0xa3, 0x0b, 0x7a, 0x81, 0x2a, 0x7b, 0x07, 0x96, 0xd8, 0xb5, 0x92, 0xda, 0x3c, 0x96, 0x07, - 0x0b, 0xc9, 0x9b, 0xb8, 0x86, 0xd7, 0x2a, 0x7b, 0x25, 0xf9, 0x80, 0x02, 0xa7, 0x0e, 0x77, 0xe6, - 0xdf, 0x20, 0x7a, 0xa9, 0xf9, 0x75, 0x72, 0x43, 0x2f, 0x35, 0xf2, 0x26, 0x6e, 0xd2, 0x25, 0x86, - 0x31, 0x11, 0xec, 0xbd, 0xe1, 0x9d, 0xb8, 0x5c, 0xa0, 0x12, 0x49, 0xa2, 0xd9, 0x0b, 0xf0, 0x87, - 0x55, 0x98, 0x69, 0x62, 0x6f, 0xdd, 0xb8, 0x66, 0x1f, 0x78, 0xc8, 0x90, 0xdd, 0x9e, 0x7b, 0x16, - 0x14, 0xbb, 0xe4, 0x17, 0xd2, 0xc1, 0xf0, 0x61, 0x43, 0xf9, 0xfd, 0x2d, 0xe2, 0x1b, 0x44, 0x49, - 0xeb, 0x2c, 0xbf, 0x18, 0x3f, 0x46, 0x66, 0x77, 0x34, 0xe4, 0x6e, 0x2c, 0x5b, 0x3b, 0xa9, 0xf6, - 0x4e, 0xe3, 0x8a, 0xce, 0x1e, 0x96, 0xef, 0x51, 0x61, 0xbe, 0x89, 0xbd, 0x9a, 0xbb, 0x62, 0x5c, - 0xb1, 0x1d, 0xd3, 0xc3, 0xfc, 0xdd, 0xa2, 0xc9, 0xd0, 0xdc, 0x0c, 0x60, 0x86, 0xbf, 0xb1, 0xa8, - 0x56, 0x5c, 0x0a, 0xfa, 0xf9, 0xb4, 0x8e, 0x42, 0x02, 0x1f, 0x63, 0x01, 0x21, 0x95, 0x8f, 0x45, - 0x52, 0xf1, 0xd9, 0x03, 0xf1, 0x19, 0x85, 0x01, 0x51, 0x76, 0xda, 0x7b, 0xe6, 0x15, 0xdc, 0x49, - 0x09, 0x44, 0xf0, 0x5b, 0x04, 0x44, 0x48, 0x28, 0xb5, 0xfb, 0x8a, 0xc0, 0xc7, 0x38, 0xdc, 0x57, - 0x92, 0x08, 0x4e, 0x24, 0x30, 0x95, 0xdf, 0xf5, 0xb0, 0xf5, 0xcc, 0x07, 0x64, 0xc5, 0x1a, 0x99, - 0x6c, 0x0a, 0x6f, 0xb2, 0x8d, 0xd4, 0xb1, 0xd0, 0xb2, 0x87, 0xe9, 0x74, 0x3e, 0x8b, 0x8e, 0x65, - 0x60, 0xd1, 0xd9, 0x0b, 0xfd, 0x3d, 0x2a, 0x9c, 0x09, 0x23, 0xb6, 0x34, 0xb1, 0xb7, 0x6c, 0xb8, - 0x7b, 0x97, 0x6c, 0xc3, 0xe9, 0xa0, 0xca, 0x18, 0x8e, 0x0c, 0xa2, 0x4f, 0xf3, 0x20, 0xd4, 0x45, - 0x10, 0x06, 0xba, 0x92, 0x0e, 0xe4, 0x65, 0x1c, 0x9d, 0x4c, 0xa2, 0xb7, 0xeb, 0xdb, 0x42, 0xb0, - 0xbe, 0x45, 0x00, 0xeb, 0xfe, 0x51, 0x59, 0xcc, 0x1e, 0xb8, 0x1f, 0xa3, 0x23, 0x02, 0xe7, 0xf5, - 0xfc, 0xb0, 0x2c, 0x60, 0x31, 0x5e, 0xaf, 0x6a, 0xac, 0xd7, 0xeb, 0x48, 0x63, 0xc4, 0x50, 0x8f, - 0xe5, 0x6c, 0xc7, 0x88, 0x63, 0xf4, 0x46, 0x7e, 0x87, 0x0a, 0x25, 0x12, 0xb2, 0x8b, 0xf3, 0x08, - 0xe7, 0x23, 0x60, 0x27, 0xa3, 0x73, 0xc8, 0xfb, 0x7c, 0x2a, 0xad, 0xf7, 0x39, 0x7a, 0x7b, 0x5a, - 0x1f, 0xf3, 0x7e, 0x6e, 0xc7, 0x82, 0x58, 0x2a, 0x17, 0xf2, 0x21, 0x1c, 0x64, 0x0f, 0xda, 0x7f, - 0x55, 0x01, 0xfc, 0x06, 0xcd, 0xce, 0x46, 0x3c, 0x4f, 0x16, 0xae, 0xbb, 0x78, 0xbf, 0x7b, 0x1f, - 0xa8, 0x33, 0x7d, 0x40, 0x51, 0x8a, 0xd1, 0xa9, 0x8b, 0x37, 0xa6, 0xf5, 0xad, 0x8c, 0xb8, 0x1a, - 0x0b, 0x2c, 0xa9, 0xbc, 0x2d, 0x63, 0xcb, 0xce, 0x1e, 0x90, 0xff, 0xa6, 0x40, 0xa1, 0x65, 0x37, - 0xb1, 0x77, 0x74, 0x53, 0x20, 0xf5, 0xb9, 0x7f, 0x52, 0xee, 0x38, 0xce, 0xfd, 0x0f, 0x22, 0x94, - 0xbd, 0xe8, 0xde, 0xad, 0xc0, 0x5c, 0xcb, 0xae, 0x84, 0x8b, 0x53, 0xf2, 0xbe, 0xaa, 0xf2, 0xf7, - 0x78, 0x87, 0x15, 0x8c, 0x8a, 0x39, 0xd2, 0x3d, 0xde, 0xc3, 0xe9, 0x65, 0x2f, 0xb7, 0x7b, 0xe0, - 0xe4, 0x96, 0xd5, 0xb1, 0x75, 0xdc, 0xb1, 0xd9, 0x4a, 0xb7, 0xa6, 0x41, 0xfe, 0xc0, 0xea, 0xd8, - 0x84, 0xe5, 0x82, 0x4e, 0x9e, 0xfd, 0x34, 0x07, 0x77, 0x6c, 0xe6, 0x1b, 0x40, 0x9e, 0xd1, 0x17, - 0x55, 0xc8, 0xfb, 0xff, 0xca, 0x8b, 0xfa, 0x1d, 0x6a, 0xca, 0x48, 0x06, 0x3e, 0xf9, 0xb1, 0x58, - 0x42, 0x0f, 0x70, 0x6b, 0xff, 0xd4, 0x83, 0xf5, 0x09, 0x71, 0xe5, 0x71, 0xa2, 0x88, 0xd6, 0xfc, - 0xb5, 0x73, 0x30, 0x75, 0xa9, 0x6b, 0xb7, 0x2f, 0x47, 0x07, 0xee, 0xd9, 0xab, 0x76, 0x07, 0x14, - 0x1c, 0xc3, 0xda, 0xc5, 0x6c, 0x4f, 0xe1, 0x74, 0x5f, 0x5f, 0x48, 0xbc, 0x5e, 0x74, 0x9a, 0x05, - 0xbd, 0x3d, 0x4d, 0x0c, 0x85, 0x01, 0x95, 0x4f, 0xa7, 0x0f, 0xcb, 0x23, 0x9c, 0x3c, 0x2b, 0xc1, - 0x5c, 0xa5, 0x4c, 0x6f, 0xcc, 0xdf, 0x68, 0x5c, 0xa8, 0x96, 0x54, 0x02, 0xb3, 0x2f, 0x93, 0x0c, - 0x61, 0xf6, 0xc9, 0x7f, 0xdd, 0xc2, 0x3c, 0xa0, 0xf2, 0xc7, 0x01, 0xf3, 0xc7, 0x15, 0x98, 0x5f, - 0x37, 0x5d, 0x2f, 0xce, 0xdb, 0x3f, 0x21, 0x62, 0xef, 0xcb, 0xd3, 0x9a, 0xca, 0x42, 0x39, 0xd2, - 0xa1, 0x7a, 0x53, 0x99, 0xc3, 0x49, 0x45, 0x4c, 0xe6, 0x58, 0x0a, 0xe1, 0x80, 0xde, 0x5b, 0x2d, - 0x2d, 0xc9, 0xd4, 0x86, 0x52, 0x54, 0xc8, 0xe4, 0x0d, 0xa5, 0xd8, 0xb2, 0xb3, 0x97, 0xef, 0x17, - 0x15, 0x38, 0xe5, 0x17, 0x9f, 0xb4, 0x2c, 0x15, 0x2f, 0xe6, 0xa1, 0xcb, 0x52, 0xa9, 0x57, 0xc6, - 0x0f, 0xf1, 0x32, 0x8e, 0x95, 0xf1, 0x61, 0x44, 0x27, 0x2c, 0xe6, 0x98, 0x65, 0xd8, 0x61, 0x62, - 0x4e, 0x58, 0x86, 0x1d, 0x5d, 0xcc, 0xc9, 0x4b, 0xb1, 0x23, 0x8a, 0xf9, 0xd8, 0x16, 0x58, 0x7f, - 0x5a, 0x0d, 0xc5, 0x1c, 0xbb, 0xb6, 0x91, 0x20, 0xe6, 0xd4, 0x27, 0x7a, 0xd1, 0x3b, 0x47, 0x14, - 0xfc, 0x98, 0xd7, 0x37, 0x46, 0x81, 0xe9, 0x18, 0xd7, 0x38, 0x7e, 0x5c, 0x85, 0x05, 0xc6, 0xc5, - 0xe0, 0x29, 0x73, 0x02, 0x46, 0xa9, 0xa7, 0xcc, 0xa9, 0xcf, 0x00, 0x89, 0x9c, 0x4d, 0xfe, 0x0c, - 0x50, 0x62, 0xf9, 0xd9, 0x83, 0xf3, 0x57, 0x79, 0x38, 0xeb, 0xb3, 0xb0, 0x61, 0x77, 0xcc, 0x9d, - 0x6b, 0x94, 0x8b, 0x0b, 0x46, 0xf7, 0x00, 0xbb, 0xe8, 0x7d, 0x8a, 0x2c, 0x4a, 0xff, 0x07, 0x80, - 0xdd, 0xc3, 0x0e, 0x8d, 0xc4, 0xc6, 0x80, 0xba, 0x2f, 0xae, 0xb2, 0x87, 0x4b, 0x0a, 0x2f, 0xb0, - 0x69, 0x04, 0x44, 0x74, 0x8e, 0x9e, 0x6f, 0x15, 0xce, 0x84, 0x5f, 0xfa, 0x1d, 0x3c, 0x72, 0x87, - 0x1d, 0x3c, 0x6e, 0x07, 0xd5, 0xe8, 0x74, 0x42, 0xa8, 0xfa, 0x37, 0xb3, 0x49, 0x99, 0xba, 0x9f, - 0xc5, 0xcf, 0xe9, 0xe2, 0xe8, 0x68, 0x5e, 0x4c, 0x4e, 0x17, 0x7b, 0xda, 0x22, 0x14, 0xe9, 0xad, - 0xdc, 0xe1, 0x8a, 0xfe, 0xe0, 0xcc, 0x2c, 0x97, 0x68, 0xda, 0x35, 0x44, 0x35, 0xbc, 0x27, 0x95, - 0x64, 0x06, 0xf5, 0xd3, 0x91, 0x9d, 0xac, 0x0b, 0x0a, 0xf6, 0x9c, 0x91, 0x29, 0x4f, 0x66, 0x37, - 0xac, 0xdc, 0xeb, 0x75, 0xaf, 0xb5, 0x58, 0xe0, 0x81, 0x54, 0xbb, 0x61, 0x5c, 0xfc, 0x02, 0xe5, - 0x50, 0xfc, 0x82, 0xd4, 0xbb, 0x61, 0x02, 0x1f, 0xe3, 0xd8, 0x0d, 0x4b, 0x22, 0x98, 0xbd, 0x68, - 0x7f, 0x73, 0x9a, 0x5a, 0xcd, 0xec, 0x3e, 0x81, 0x4f, 0x0e, 0xf6, 0xac, 0x06, 0xd1, 0xd9, 0x65, - 0xd0, 0x55, 0x03, 0x89, 0xf7, 0xa8, 0x68, 0xcf, 0x80, 0xe2, 0x8e, 0xed, 0xec, 0x1b, 0xc1, 0xc6, - 0x7d, 0xff, 0x49, 0x11, 0x16, 0xc3, 0x7f, 0x85, 0xe4, 0xd1, 0x59, 0x5e, 0x7f, 0x3e, 0xf2, 0x7c, - 0xb3, 0xc7, 0xc2, 0x36, 0xfa, 0x8f, 0xda, 0xad, 0x30, 0xcf, 0xa2, 0x37, 0xd6, 0xb1, 0xeb, 0xe1, - 0x0e, 0x8b, 0x68, 0x21, 0x26, 0x6a, 0xe7, 0x61, 0x8e, 0x25, 0xac, 0x98, 0x5d, 0xec, 0xb2, 0xa0, - 0x16, 0x42, 0x9a, 0x76, 0x16, 0x8a, 0xa6, 0xfb, 0xa0, 0x6b, 0x5b, 0xc4, 0xff, 0x7f, 0x5a, 0x67, - 0x6f, 0xda, 0xed, 0x70, 0x92, 0xe5, 0x0b, 0x8d, 0x55, 0x7a, 0x60, 0xa7, 0x3f, 0xd9, 0x57, 0x2d, - 0xcb, 0xde, 0x74, 0xec, 0x5d, 0x07, 0xbb, 0x2e, 0x39, 0x35, 0x35, 0xad, 0x73, 0x29, 0xda, 0xc3, - 0x70, 0xaa, 0x6b, 0x5a, 0x97, 0x5d, 0x12, 0xe5, 0x77, 0x85, 0xb9, 0x8d, 0xcd, 0x0d, 0x88, 0xbe, - 0xcd, 0x35, 0x36, 0x26, 0x07, 0xfe, 0x17, 0xfd, 0x30, 0x15, 0xed, 0x0e, 0x28, 0x31, 0x6e, 0x96, - 0x8c, 0xf6, 0x65, 0xf2, 0x9d, 0xb9, 0xa3, 0x1e, 0x4a, 0x47, 0xaf, 0xcc, 0xc1, 0x9c, 0xf0, 0xb3, - 0x01, 0x5a, 0xd0, 0xe5, 0xb9, 0x17, 0xf7, 0x4c, 0x0f, 0xfb, 0x05, 0xb3, 0x73, 0x2c, 0x4f, 0x1b, - 0xc2, 0x98, 0x7e, 0xe8, 0x47, 0x7d, 0x00, 0x31, 0x1f, 0x00, 0xda, 0x99, 0x11, 0xaf, 0x31, 0x97, - 0xd9, 0xa1, 0x42, 0x1a, 0x7a, 0x3e, 0x68, 0x87, 0xa9, 0x71, 0x1e, 0x1e, 0xb9, 0x74, 0x1e, 0x1e, - 0xbe, 0x4c, 0x8c, 0x6e, 0xd7, 0xbe, 0x8a, 0x3b, 0x21, 0x59, 0xa6, 0x87, 0x87, 0xd2, 0xd1, 0xa7, - 0x46, 0x99, 0xf3, 0xa5, 0xbe, 0xf6, 0xc2, 0x6f, 0x40, 0x07, 0xed, 0x36, 0xc6, 0x1d, 0x76, 0x28, - 0x2d, 0x78, 0x4d, 0x79, 0x21, 0x46, 0xea, 0x19, 0xe2, 0x31, 0xdd, 0x88, 0xf1, 0xeb, 0x67, 0xa0, - 0x48, 0x6f, 0x97, 0x43, 0xaf, 0x5c, 0x18, 0xd8, 0x8f, 0x2c, 0x88, 0xfd, 0xc8, 0x16, 0xcc, 0x59, - 0xb6, 0x5f, 0xdc, 0xa6, 0xe1, 0x18, 0xfb, 0x6e, 0xd2, 0x02, 0x30, 0xa5, 0x1b, 0x8e, 0xf6, 0x75, - 0xee, 0xb7, 0xb5, 0x13, 0xba, 0x40, 0x46, 0xfb, 0x3f, 0xe1, 0xe4, 0x25, 0x16, 0xbc, 0xc1, 0x65, - 0x94, 0x95, 0x78, 0xf7, 0xc8, 0x3e, 0xca, 0x4b, 0xe2, 0x9f, 0x6b, 0x27, 0xf4, 0x7e, 0x62, 0xda, - 0x7f, 0x82, 0x05, 0xff, 0xb5, 0x63, 0x5f, 0x0d, 0x18, 0x57, 0xe3, 0x6d, 0xc4, 0x3e, 0xf2, 0x1b, - 0xc2, 0x8f, 0x6b, 0x27, 0xf4, 0x3e, 0x52, 0x5a, 0x03, 0x60, 0xcf, 0xdb, 0xef, 0x32, 0xc2, 0xf9, - 0x78, 0x95, 0xec, 0x23, 0xbc, 0x16, 0xfe, 0xb4, 0x76, 0x42, 0xe7, 0x48, 0x68, 0xeb, 0x30, 0xe3, - 0x3d, 0xea, 0x31, 0x7a, 0x85, 0x78, 0xbf, 0x84, 0x3e, 0x7a, 0xad, 0xe0, 0x9f, 0xb5, 0x13, 0x7a, - 0x44, 0x40, 0xab, 0xc1, 0x74, 0xef, 0x12, 0x23, 0x56, 0x8c, 0xef, 0xcb, 0xfa, 0x88, 0x6d, 0x5e, - 0x0a, 0x69, 0x85, 0xbf, 0xfb, 0x8c, 0xb5, 0xdd, 0x2b, 0x8c, 0xd6, 0x94, 0x34, 0x63, 0x95, 0xe0, - 0x1f, 0x9f, 0xb1, 0x90, 0x80, 0x56, 0x83, 0x19, 0xd7, 0x32, 0x7a, 0xee, 0x9e, 0xed, 0xb9, 0xe7, - 0xa6, 0xfb, 0x5c, 0x58, 0xe3, 0xa9, 0x35, 0xd9, 0x3f, 0x7a, 0xf4, 0xb7, 0xf6, 0x0c, 0x38, 0x73, - 0xd0, 0xeb, 0x18, 0x1e, 0xae, 0x3e, 0x6a, 0xba, 0x9e, 0x69, 0xed, 0x06, 0xf1, 0x83, 0xe9, 0x40, - 0x30, 0xf8, 0xa3, 0xb6, 0xc8, 0x0e, 0xb3, 0x01, 0x69, 0x9b, 0xa8, 0x7f, 0x1f, 0x95, 0x16, 0xcb, - 0x9d, 0x61, 0x7b, 0x36, 0xe4, 0xfd, 0x4f, 0x64, 0xe0, 0x58, 0x18, 0xbc, 0x46, 0xdb, 0xaf, 0x3b, - 0xa4, 0x01, 0xfb, 0x3f, 0xf5, 0x8d, 0x3d, 0x73, 0x87, 0xc6, 0x9e, 0x5b, 0x60, 0xd6, 0x74, 0x37, - 0xcc, 0x5d, 0x6a, 0xf8, 0xb2, 0xb1, 0x81, 0x4f, 0xa2, 0x0b, 0x05, 0x75, 0x7c, 0x95, 0xde, 0x8e, - 0x72, 0x32, 0x58, 0x28, 0x08, 0x52, 0xd0, 0x6d, 0x30, 0xc7, 0x37, 0x32, 0x7a, 0x45, 0xad, 0x19, - 0x99, 0xcd, 0xec, 0x0d, 0xdd, 0x0a, 0x0b, 0xa2, 0x4e, 0x73, 0xd6, 0x81, 0x1a, 0x74, 0x85, 0xe8, - 0x09, 0x70, 0xb2, 0xaf, 0x61, 0x05, 0xe1, 0x60, 0x72, 0x51, 0x38, 0x98, 0x5b, 0x00, 0x22, 0x2d, - 0x1e, 0x48, 0xe6, 0xf1, 0x30, 0x13, 0xea, 0xe5, 0xc0, 0x0c, 0x5f, 0xc8, 0xc1, 0x74, 0xa0, 0x6c, - 0x83, 0x32, 0xf8, 0x23, 0x93, 0xc5, 0xed, 0xfd, 0x04, 0x23, 0x13, 0x9f, 0xe6, 0x9b, 0x00, 0x91, - 0xc7, 0x75, 0xcb, 0xf4, 0xba, 0xc1, 0xa9, 0xc5, 0xfe, 0x64, 0x6d, 0x13, 0xc0, 0x24, 0x18, 0xb5, - 0xa2, 0x63, 0x8c, 0x4f, 0x4d, 0xd1, 0x1e, 0xa8, 0x3e, 0x70, 0x34, 0xce, 0x7f, 0x03, 0x3b, 0x63, - 0x38, 0x03, 0x05, 0x1a, 0x44, 0xff, 0x84, 0xb6, 0x00, 0x50, 0x7d, 0xde, 0x66, 0x55, 0xaf, 0x55, - 0xeb, 0x95, 0x6a, 0x29, 0x87, 0x7e, 0x42, 0x81, 0x99, 0xb0, 0x11, 0x0c, 0xac, 0x64, 0x95, 0xa9, - 0xd6, 0xd0, 0x5b, 0x40, 0x0f, 0x37, 0x2a, 0x5e, 0xc9, 0x9e, 0x05, 0xd7, 0x1f, 0xb8, 0x78, 0xc5, - 0x74, 0x5c, 0x4f, 0xb7, 0xaf, 0xae, 0xd8, 0x4e, 0x34, 0xb0, 0xd2, 0xe0, 0xb5, 0x71, 0x9f, 0x7d, - 0x63, 0xb0, 0x83, 0xc9, 0x79, 0x36, 0xec, 0xb0, 0x45, 0xfd, 0x28, 0xc1, 0xa7, 0xeb, 0x39, 0x86, - 0xe5, 0xf6, 0x6c, 0x17, 0xeb, 0xf6, 0x55, 0xb7, 0x6c, 0x75, 0x2a, 0x76, 0xf7, 0x60, 0xdf, 0x72, - 0x99, 0x39, 0x17, 0xf7, 0xd9, 0x97, 0x0e, 0xb9, 0xe3, 0x77, 0x01, 0xa0, 0xd2, 0x58, 0x5f, 0xaf, - 0x56, 0x5a, 0xb5, 0x46, 0xbd, 0x74, 0xc2, 0x97, 0x56, 0xab, 0xbc, 0xb4, 0xee, 0x4b, 0xe7, 0xdb, - 0x60, 0x3a, 0x68, 0xd3, 0x2c, 0x82, 0x4d, 0x2e, 0x88, 0x60, 0xa3, 0x95, 0x61, 0x3a, 0x68, 0xe5, - 0x6c, 0x44, 0x78, 0x62, 0xff, 0x89, 0xe5, 0x7d, 0xc3, 0xf1, 0x88, 0x81, 0x12, 0x10, 0x59, 0x32, - 0x5c, 0xac, 0x87, 0xbf, 0x9d, 0x7f, 0x0a, 0xe3, 0x40, 0x83, 0x85, 0xf2, 0xfa, 0xfa, 0x76, 0x43, - 0xdf, 0xae, 0x37, 0x5a, 0x6b, 0xb5, 0xfa, 0x2a, 0x1d, 0x21, 0x6b, 0xab, 0xf5, 0x86, 0x5e, 0xa5, - 0x03, 0x64, 0xb3, 0x94, 0xa3, 0x77, 0x4c, 0x2f, 0x4d, 0x43, 0xb1, 0x47, 0xa4, 0x8b, 0x3e, 0xab, - 0xa6, 0x0c, 0x55, 0x10, 0xe2, 0x14, 0x73, 0x0b, 0xae, 0x70, 0x5c, 0x40, 0x19, 0x70, 0x9c, 0xf7, - 0x3c, 0xcc, 0x51, 0x33, 0xdc, 0x25, 0x3b, 0x2f, 0x04, 0x39, 0x55, 0x17, 0xd2, 0xd0, 0x87, 0x95, - 0x14, 0xf1, 0x0b, 0x06, 0x72, 0x94, 0xce, 0xb8, 0xf8, 0x83, 0xdc, 0x68, 0x57, 0x4e, 0xd4, 0xea, - 0xad, 0xaa, 0x5e, 0x2f, 0xaf, 0xb3, 0x2c, 0xaa, 0x76, 0x0e, 0x4e, 0xd7, 0x1b, 0x2c, 0x5c, 0x63, - 0x73, 0xbb, 0xd5, 0xd8, 0xae, 0x6d, 0x6c, 0x36, 0xf4, 0x56, 0xa9, 0xa0, 0x9d, 0x05, 0x8d, 0x3e, - 0x6f, 0xd7, 0x9a, 0xdb, 0x95, 0x72, 0xbd, 0x52, 0x5d, 0xaf, 0x2e, 0x97, 0x8a, 0xda, 0x93, 0xe0, - 0x09, 0xf4, 0x0a, 0xa3, 0xc6, 0xca, 0xb6, 0xde, 0xb8, 0xd8, 0xf4, 0x11, 0xd4, 0xab, 0xeb, 0x65, - 0x5f, 0x91, 0xb8, 0xbb, 0xa6, 0xa7, 0xb4, 0xeb, 0xe0, 0x24, 0xb9, 0x88, 0x7e, 0xbd, 0x51, 0x5e, - 0x66, 0xe5, 0x4d, 0x6b, 0x37, 0xc1, 0xb9, 0x5a, 0xbd, 0xb9, 0xb5, 0xb2, 0x52, 0xab, 0xd4, 0xaa, - 0xf5, 0xd6, 0xf6, 0x66, 0x55, 0xdf, 0xa8, 0x35, 0x9b, 0xfe, 0xbf, 0xa5, 0x19, 0x72, 0x93, 0x2f, - 0xed, 0x33, 0xd1, 0x7b, 0x55, 0x98, 0xbf, 0x60, 0x74, 0x4d, 0x7f, 0xa0, 0x20, 0x57, 0x7c, 0xf7, - 0x9d, 0xf4, 0xf1, 0xc8, 0x55, 0xe0, 0xec, 0xac, 0x00, 0x79, 0x41, 0xdf, 0xad, 0xa6, 0x3c, 0xe9, - 0xc3, 0x80, 0xa0, 0x25, 0x2e, 0x0a, 0xa5, 0xc5, 0xcc, 0x4b, 0x5f, 0xa7, 0xa4, 0x38, 0xe9, 0x23, - 0x4f, 0x3e, 0x1d, 0xf8, 0x3f, 0x39, 0x2e, 0xf0, 0x4b, 0x30, 0xb7, 0x55, 0x2f, 0x6f, 0xb5, 0xd6, - 0x1a, 0x7a, 0xed, 0x5b, 0x49, 0xa4, 0xf9, 0x79, 0x98, 0x59, 0x69, 0xe8, 0x4b, 0xb5, 0xe5, 0xe5, - 0x6a, 0xbd, 0x54, 0xd0, 0xae, 0x87, 0xeb, 0x9a, 0x55, 0xfd, 0x42, 0xad, 0x52, 0xdd, 0xde, 0xaa, - 0x97, 0x2f, 0x94, 0x6b, 0xeb, 0xa4, 0x8f, 0x28, 0x26, 0x5c, 0x4f, 0x3e, 0x85, 0xbe, 0x33, 0x0f, - 0x40, 0xab, 0x4e, 0x2e, 0x5a, 0xe2, 0x2e, 0xb1, 0xfe, 0xa3, 0xb4, 0x93, 0x86, 0x88, 0x4c, 0x4c, - 0xfb, 0xad, 0xc1, 0xb4, 0xc3, 0x3e, 0xb0, 0x95, 0xaf, 0x61, 0x74, 0xe8, 0x63, 0x40, 0x4d, 0x0f, - 0x7f, 0x47, 0xef, 0x4b, 0x33, 0x47, 0x88, 0x65, 0x2c, 0x1d, 0x92, 0x2b, 0xe3, 0x01, 0x12, 0xbd, - 0x2c, 0x07, 0x0b, 0x62, 0xc5, 0xfc, 0x4a, 0x10, 0x63, 0x4a, 0xae, 0x12, 0xe2, 0xcf, 0x9c, 0x91, - 0x75, 0xfe, 0xe9, 0x6c, 0x38, 0x85, 0xa0, 0x65, 0xd2, 0x43, 0xfb, 0x81, 0xc5, 0x52, 0xca, 0xf9, - 0xcc, 0xfb, 0x46, 0x47, 0x49, 0xd1, 0xa6, 0x40, 0x6d, 0x3d, 0xea, 0x95, 0x54, 0xf4, 0x05, 0x15, - 0xe6, 0x85, 0x5b, 0xb2, 0xd1, 0xeb, 0x72, 0x32, 0x37, 0xd8, 0x72, 0xf7, 0x6f, 0xe7, 0x8e, 0x7a, - 0xff, 0xf6, 0xf9, 0xbb, 0x60, 0x8a, 0xa5, 0x11, 0xf9, 0x36, 0xea, 0xbe, 0x29, 0x70, 0x12, 0x66, - 0x57, 0xab, 0xad, 0xed, 0x66, 0xab, 0xac, 0xb7, 0xaa, 0xcb, 0xa5, 0x9c, 0x3f, 0xf0, 0x55, 0x37, - 0x36, 0x5b, 0x0f, 0x97, 0x94, 0xf4, 0xce, 0x93, 0xfd, 0x8c, 0x4c, 0xd8, 0x79, 0x32, 0xa9, 0xf8, - 0xec, 0xe7, 0xaa, 0x9f, 0x54, 0xa1, 0x44, 0x39, 0xa8, 0x3e, 0xda, 0xc3, 0x8e, 0x89, 0xad, 0x36, - 0x46, 0x97, 0x65, 0x82, 0xb9, 0x1e, 0x0a, 0x63, 0x48, 0xfa, 0x73, 0xce, 0x4a, 0xa4, 0x2f, 0x7d, - 0x06, 0x76, 0xfe, 0x90, 0x81, 0xfd, 0x89, 0xb4, 0xde, 0x93, 0xfd, 0xec, 0x8e, 0x05, 0xb2, 0x8f, - 0xa5, 0xf1, 0x9e, 0x1c, 0xc2, 0xc1, 0x44, 0x62, 0x34, 0xc7, 0x8c, 0xbf, 0x25, 0x15, 0xbd, 0x54, - 0x85, 0x93, 0xcb, 0x86, 0x87, 0x97, 0xae, 0xb5, 0x82, 0x5b, 0x2c, 0x63, 0x6e, 0x9e, 0xce, 0x1d, - 0xba, 0x79, 0x3a, 0xba, 0x08, 0x53, 0xe9, 0xbb, 0x08, 0x13, 0xbd, 0x2b, 0xed, 0x79, 0xcb, 0x3e, - 0x1e, 0xc6, 0x16, 0x48, 0x39, 0xdd, 0x39, 0xca, 0x64, 0x2e, 0xb2, 0x6f, 0x60, 0x6f, 0x9d, 0x81, - 0x12, 0x65, 0x85, 0x73, 0x10, 0xfc, 0x61, 0x76, 0x59, 0xfb, 0x76, 0x8a, 0x78, 0x8c, 0x41, 0x84, - 0x0b, 0x45, 0x8c, 0x70, 0x21, 0xac, 0x37, 0xab, 0xfd, 0x4e, 0x1d, 0x69, 0x3b, 0x43, 0xce, 0x1b, - 0x30, 0x3e, 0x04, 0x6e, 0x76, 0x9d, 0x61, 0x62, 0xf1, 0x93, 0xb9, 0x50, 0x98, 0xdd, 0xe1, 0x59, - 0x95, 0x45, 0x26, 0xf9, 0xde, 0xf4, 0xb4, 0xae, 0xe1, 0x82, 0x37, 0x66, 0xc2, 0x65, 0xe2, 0xd9, - 0xb9, 0x86, 0x0f, 0xe3, 0x20, 0x7b, 0x14, 0xbe, 0xa6, 0x40, 0xbe, 0x69, 0x3b, 0xde, 0xb8, 0x30, - 0x48, 0xbb, 0x9d, 0xcd, 0x49, 0xa0, 0x19, 0x3f, 0xe7, 0xcc, 0x6e, 0x3b, 0x3b, 0xb9, 0xfc, 0x09, - 0x84, 0xb4, 0x3c, 0x09, 0x0b, 0x94, 0x93, 0xf0, 0x3e, 0x98, 0x7f, 0x55, 0x68, 0x7f, 0xf5, 0x90, - 0x2c, 0x22, 0x64, 0xe3, 0x23, 0xdc, 0x4e, 0x0e, 0x40, 0x11, 0xd2, 0xd0, 0xcf, 0xf2, 0xb8, 0x2c, - 0x8b, 0xb8, 0x0c, 0x9a, 0x71, 0x87, 0x57, 0xaa, 0x8c, 0xab, 0x67, 0x4a, 0x13, 0x1d, 0x33, 0xa1, - 0xf0, 0xec, 0x11, 0x79, 0x91, 0x0a, 0x45, 0xe6, 0xce, 0x37, 0x56, 0x04, 0xd2, 0xb6, 0x8c, 0x50, - 0x08, 0x72, 0x6e, 0x7f, 0xea, 0xb8, 0x5b, 0x46, 0x72, 0xf9, 0xd9, 0xe3, 0xf0, 0x6f, 0xcc, 0x4f, - 0xb5, 0x7c, 0xc5, 0x30, 0xbb, 0xc6, 0xa5, 0x6e, 0x8a, 0xa8, 0xd4, 0x1f, 0x4e, 0x79, 0x32, 0x2f, - 0xac, 0xaa, 0x50, 0x5e, 0x8c, 0xc4, 0xbf, 0x09, 0x66, 0x1c, 0x61, 0xaf, 0xcf, 0xb7, 0xa2, 0xfa, - 0x7c, 0x84, 0xd9, 0x77, 0x3d, 0xca, 0x99, 0xea, 0x18, 0x9e, 0x14, 0x3f, 0x13, 0x39, 0x36, 0x34, - 0x5b, 0xee, 0x74, 0x56, 0xb0, 0xe1, 0x1d, 0x38, 0xb8, 0x93, 0x6a, 0x88, 0x70, 0xfa, 0xb6, 0x43, - 0x39, 0x49, 0x08, 0x71, 0x21, 0xd7, 0x45, 0x74, 0x9e, 0x39, 0xa4, 0x37, 0x08, 0x78, 0x19, 0x4b, - 0x97, 0xf4, 0x8b, 0x21, 0x24, 0x0d, 0x01, 0x92, 0x67, 0x8f, 0xc6, 0x44, 0xf6, 0x80, 0xfc, 0xa8, - 0x0a, 0x0b, 0xd4, 0x4e, 0x18, 0x37, 0x26, 0xbf, 0x92, 0xd2, 0xfd, 0x87, 0xbb, 0x71, 0x8b, 0x67, - 0x67, 0x2c, 0xb0, 0xa4, 0x71, 0x16, 0x92, 0xe3, 0x23, 0x7b, 0x64, 0x5e, 0x7c, 0x0a, 0x80, 0x73, - 0xe9, 0xfc, 0x70, 0x31, 0x8a, 0xd1, 0x88, 0xde, 0xce, 0xe6, 0x1f, 0x4d, 0x21, 0x60, 0x38, 0xe7, - 0xae, 0x19, 0x6e, 0x48, 0x89, 0x89, 0x52, 0xa3, 0xca, 0x1f, 0xa4, 0xb4, 0x79, 0x99, 0x43, 0xe5, - 0xd0, 0xc1, 0x7d, 0xc4, 0x5e, 0xee, 0x23, 0x29, 0x8c, 0xdf, 0x61, 0xac, 0xa4, 0x43, 0x6d, 0x7d, - 0x84, 0x99, 0xfd, 0x39, 0x38, 0xad, 0x57, 0xcb, 0xcb, 0x8d, 0xfa, 0xfa, 0xc3, 0xfc, 0xf5, 0x4b, - 0x25, 0x95, 0x9f, 0x9c, 0x64, 0x02, 0xdb, 0x1b, 0x52, 0xf6, 0x81, 0xa2, 0xac, 0x92, 0x66, 0x2b, - 0xdc, 0xe2, 0xca, 0xf0, 0x5e, 0x4d, 0x82, 0xec, 0x71, 0xa2, 0xf0, 0x0f, 0x45, 0x98, 0xd5, 0x71, - 0xdb, 0xde, 0xdf, 0xc7, 0x56, 0x07, 0x77, 0xd0, 0x1b, 0x54, 0x98, 0x0b, 0xf7, 0xfb, 0x9a, 0xd8, - 0x43, 0xff, 0x29, 0xc2, 0xe6, 0x3c, 0xcc, 0xf9, 0x95, 0x6b, 0x88, 0x41, 0xe0, 0x85, 0x34, 0xed, - 0x4e, 0x38, 0x15, 0xa0, 0xd0, 0xe8, 0x9b, 0xc2, 0x1c, 0xfe, 0x80, 0xde, 0xcd, 0x63, 0xb4, 0x25, - 0x62, 0xf4, 0x40, 0xbc, 0x30, 0x43, 0x76, 0x17, 0x79, 0x56, 0x63, 0xc0, 0xfa, 0xbd, 0x10, 0xac, - 0xe7, 0x09, 0x60, 0x2d, 0x1f, 0x91, 0xfe, 0x71, 0xa2, 0xf6, 0x4b, 0x2a, 0x9c, 0x0e, 0x3a, 0xe2, - 0xc9, 0xa1, 0xf5, 0x11, 0x1e, 0xad, 0x6f, 0x13, 0xd1, 0x5a, 0x95, 0x91, 0xe6, 0x20, 0x96, 0x63, - 0x50, 0xfb, 0xe3, 0x10, 0xb5, 0x6f, 0x17, 0x50, 0x5b, 0x1f, 0x53, 0x39, 0xc7, 0x89, 0xde, 0xaf, - 0xa8, 0x70, 0xce, 0x37, 0x3b, 0x2b, 0xb6, 0xb5, 0xd3, 0x35, 0xdb, 0x9e, 0x69, 0xed, 0x46, 0x2e, - 0x6c, 0xab, 0x32, 0x2b, 0x9b, 0xfd, 0xd8, 0x2a, 0x87, 0xb1, 0x15, 0x63, 0x67, 0xc8, 0xb6, 0xad, - 0x38, 0xb6, 0x62, 0x86, 0x30, 0xce, 0xf1, 0x3a, 0xd2, 0x1c, 0x3e, 0x29, 0x7d, 0xeb, 0x93, 0xe4, - 0xe0, 0x38, 0xf1, 0x7b, 0x11, 0x70, 0xa6, 0xc7, 0xf7, 0xaa, 0x50, 0x22, 0xfe, 0x92, 0xa4, 0x67, - 0x67, 0x77, 0x93, 0x36, 0x44, 0x2f, 0xf9, 0x5e, 0x20, 0xa0, 0xc0, 0x4b, 0x3e, 0x48, 0xd0, 0x6e, - 0x83, 0x85, 0xf6, 0x1e, 0x6e, 0x5f, 0xae, 0x59, 0x81, 0x2f, 0x12, 0x75, 0x5c, 0xe9, 0x4b, 0x15, - 0x07, 0xb3, 0x87, 0x44, 0x30, 0xc5, 0x85, 0x47, 0x61, 0x62, 0xc3, 0x33, 0x15, 0xd3, 0xd0, 0x7e, - 0x33, 0x04, 0xa8, 0x2e, 0x00, 0x74, 0xef, 0x48, 0x54, 0xd3, 0xc1, 0x52, 0x1f, 0x01, 0x16, 0x04, - 0x67, 0x1b, 0x9b, 0xad, 0x5a, 0xa3, 0xbe, 0xbd, 0xd5, 0xac, 0x2e, 0x6f, 0x2f, 0x05, 0xe0, 0x34, - 0x4b, 0x2a, 0xfa, 0x92, 0x02, 0x53, 0x94, 0x2d, 0x17, 0x3d, 0x39, 0x82, 0x60, 0xe8, 0xf1, 0x00, - 0xf4, 0x56, 0xe9, 0x60, 0x3f, 0xa1, 0x20, 0x58, 0x39, 0x31, 0x0d, 0xe3, 0x59, 0x30, 0x45, 0x41, - 0x0e, 0x76, 0x01, 0x6e, 0x8e, 0xb1, 0xec, 0x18, 0x19, 0x3d, 0xc8, 0x2e, 0x19, 0xf8, 0x67, 0x08, - 0x1b, 0xd9, 0x5b, 0xe3, 0x2f, 0xc8, 0xd3, 0xa5, 0x83, 0x8b, 0xa6, 0xb7, 0x47, 0x4e, 0x0f, 0xa0, - 0x6f, 0x91, 0xe9, 0xb8, 0xee, 0x84, 0xc2, 0x15, 0x3f, 0xf7, 0x90, 0x93, 0x18, 0x34, 0x13, 0xfa, - 0x49, 0xe9, 0x38, 0xd3, 0x82, 0x7e, 0x86, 0x3c, 0xc5, 0x80, 0xb3, 0x01, 0xf9, 0xae, 0xe9, 0x7a, - 0xcc, 0xe6, 0xbe, 0x27, 0x15, 0xa1, 0xe0, 0xa1, 0xe6, 0xe1, 0x7d, 0x9d, 0x90, 0x41, 0x0f, 0xfa, - 0x16, 0x53, 0x94, 0x2a, 0x71, 0x1a, 0xe5, 0x1c, 0x4c, 0xb1, 0x53, 0xd2, 0x6c, 0x5b, 0x2a, 0x78, - 0x95, 0xdc, 0x0a, 0x92, 0xaa, 0x6d, 0xf6, 0x3a, 0xf0, 0xff, 0x9e, 0x84, 0xa9, 0x35, 0xd3, 0xf5, - 0x6c, 0xe7, 0x1a, 0x7a, 0x63, 0x0e, 0xa6, 0x2e, 0x60, 0xc7, 0x35, 0x6d, 0xeb, 0x90, 0x7b, 0xd6, - 0x2d, 0x30, 0xdb, 0x73, 0xf0, 0x15, 0xd3, 0x3e, 0x70, 0xb9, 0x51, 0x82, 0x4b, 0xd2, 0x10, 0x4c, - 0x1b, 0x07, 0xde, 0x9e, 0xed, 0x44, 0xc1, 0x95, 0x82, 0x77, 0xed, 0x66, 0x00, 0xfa, 0x5c, 0x37, - 0xf6, 0x71, 0x70, 0x7f, 0x7a, 0x94, 0xa2, 0x69, 0x90, 0xf7, 0xcc, 0x7d, 0xcc, 0xa2, 0xad, 0x93, - 0x67, 0x5f, 0xc0, 0x24, 0x72, 0x29, 0x8b, 0x10, 0xab, 0xea, 0xc1, 0x2b, 0xfa, 0xb4, 0x0a, 0xb3, - 0xab, 0xd8, 0x63, 0xac, 0xba, 0xe8, 0xe5, 0x39, 0xa9, 0x0b, 0x8e, 0xfc, 0x79, 0x49, 0xd7, 0x70, - 0x83, 0xff, 0xc2, 0x21, 0x57, 0x4c, 0x8c, 0x42, 0xbf, 0xab, 0xfc, 0xbd, 0x0f, 0x24, 0x0e, 0xa8, - 0x57, 0xa3, 0x0e, 0xfc, 0x2c, 0x33, 0xdb, 0x38, 0x3e, 0xfc, 0x41, 0xb4, 0x89, 0x13, 0x63, 0x68, - 0x30, 0xd9, 0x2f, 0x72, 0xf5, 0x89, 0xed, 0x8e, 0xa6, 0xaf, 0xb0, 0x1c, 0x87, 0xae, 0xf4, 0xe0, - 0x29, 0x31, 0x32, 0x7a, 0x98, 0x5b, 0x32, 0xfa, 0xc6, 0x70, 0x4e, 0x26, 0x70, 0x89, 0xab, 0x0a, - 0xb3, 0xcd, 0x3d, 0xfb, 0x6a, 0x20, 0xc7, 0x6f, 0x93, 0x03, 0xf6, 0x26, 0x98, 0xb9, 0xd2, 0x07, - 0x6a, 0x94, 0xc0, 0xdf, 0x1b, 0xa7, 0x8a, 0xf7, 0xc6, 0xbd, 0x44, 0x4d, 0x0b, 0x13, 0xc7, 0x5c, - 0x0c, 0x4c, 0xe2, 0x55, 0x6f, 0x4a, 0x8a, 0xab, 0xde, 0xb4, 0x67, 0xc2, 0x14, 0xe3, 0x9a, 0x2d, - 0x53, 0x27, 0x03, 0x1c, 0x64, 0xe6, 0x2b, 0x98, 0x17, 0x2b, 0x98, 0x0e, 0xf9, 0xf8, 0xca, 0x65, - 0x8f, 0xfc, 0xef, 0x28, 0x24, 0xf6, 0x52, 0x00, 0x7c, 0x65, 0x0c, 0xc0, 0xa3, 0xaf, 0xe6, 0x64, - 0x37, 0x73, 0x42, 0x09, 0x84, 0x1c, 0x1c, 0xe9, 0xf2, 0xb2, 0xa1, 0xe4, 0xb2, 0x97, 0xe7, 0x4f, - 0xe4, 0x61, 0x6e, 0xd9, 0xdc, 0xd9, 0x09, 0x3b, 0xc9, 0x57, 0x48, 0x76, 0x92, 0xf1, 0x2e, 0x54, - 0xbe, 0x9d, 0x7b, 0xe0, 0x38, 0xd8, 0x0a, 0x2a, 0xc5, 0x9a, 0x53, 0x5f, 0xaa, 0x76, 0x3b, 0x9c, - 0x0c, 0xc6, 0x05, 0xbe, 0xa3, 0x9c, 0xd1, 0xfb, 0x93, 0xd1, 0x97, 0xa5, 0x3d, 0x01, 0x02, 0x89, - 0xf2, 0x55, 0x8a, 0x69, 0x80, 0xf7, 0xc1, 0xfc, 0x1e, 0xcd, 0x4d, 0x96, 0x4b, 0x83, 0xce, 0xf2, - 0x6c, 0x5f, 0x6c, 0xfb, 0x0d, 0xec, 0xba, 0xc6, 0x2e, 0xd6, 0xc5, 0xcc, 0x7d, 0xcd, 0x57, 0x4d, - 0x73, 0x53, 0xa3, 0x9c, 0x53, 0x81, 0x44, 0x4d, 0x26, 0xa0, 0x1d, 0xe7, 0x21, 0xbf, 0x62, 0x76, - 0x31, 0xfa, 0x3e, 0x05, 0x66, 0xfc, 0x59, 0xb7, 0xd5, 0xf6, 0xdf, 0x38, 0x87, 0xca, 0x7f, 0xc8, - 0xc9, 0xde, 0x50, 0xec, 0xd3, 0x59, 0x0c, 0x69, 0xc4, 0xb4, 0x1b, 0xb9, 0x9b, 0x88, 0x13, 0x49, - 0x4d, 0xe0, 0x3e, 0x29, 0x7f, 0xea, 0xb1, 0xb3, 0xd3, 0xb5, 0x0d, 0x61, 0xc3, 0xa0, 0xdf, 0x14, - 0x8a, 0x0e, 0xf8, 0xd5, 0x6d, 0x6f, 0xd3, 0xb4, 0xac, 0x30, 0x66, 0xc6, 0xa1, 0x74, 0xd1, 0xd7, - 0x25, 0x31, 0xec, 0x18, 0xa9, 0x3b, 0x2b, 0x3d, 0x46, 0xb3, 0x6f, 0x83, 0x85, 0x4b, 0xd7, 0x3c, - 0xec, 0xb2, 0x5c, 0xac, 0xd8, 0xbc, 0xde, 0x97, 0xca, 0x5d, 0x1a, 0x90, 0x14, 0x9e, 0x2c, 0xa1, - 0xc0, 0x74, 0xa2, 0x5e, 0x1b, 0x61, 0x06, 0x78, 0x1a, 0x4a, 0xf5, 0xc6, 0x72, 0x95, 0xf8, 0xf7, - 0x06, 0x1e, 0x93, 0xbb, 0xe8, 0x87, 0x54, 0x98, 0x23, 0x0e, 0x78, 0x01, 0x0a, 0x4f, 0x90, 0x98, - 0x8f, 0xa0, 0xcf, 0x49, 0xfb, 0xfe, 0x92, 0x2a, 0xf3, 0x05, 0xc4, 0x0b, 0x7a, 0xc7, 0xec, 0xf6, - 0x0b, 0xba, 0xa0, 0xf7, 0xa5, 0x0e, 0x00, 0x44, 0x1d, 0x08, 0xc8, 0x2f, 0x49, 0x39, 0x00, 0x0f, - 0xe3, 0xee, 0xb8, 0x50, 0xf9, 0x65, 0x15, 0x66, 0xfd, 0x49, 0x4a, 0x00, 0x4a, 0x43, 0x00, 0xc5, - 0xb6, 0xba, 0xd7, 0xa2, 0x65, 0x91, 0xe0, 0x35, 0x55, 0x23, 0xf9, 0x13, 0xe9, 0x99, 0x3b, 0x11, - 0x11, 0xc7, 0xcb, 0x84, 0xf0, 0x7b, 0xbf, 0xd4, 0x7c, 0x7e, 0x08, 0x73, 0xc7, 0x05, 0xdf, 0x17, - 0x0b, 0x50, 0xdc, 0xea, 0x11, 0xe4, 0x7e, 0x52, 0x95, 0xb9, 0x80, 0xe3, 0xd0, 0xe1, 0x2f, 0xdf, - 0xcc, 0xea, 0xda, 0x6d, 0xa3, 0xbb, 0x19, 0x9d, 0xa2, 0x8d, 0x12, 0xb4, 0x7b, 0x99, 0x3f, 0x38, - 0x3d, 0x3d, 0x7e, 0x5b, 0xe2, 0xdd, 0x14, 0x44, 0x46, 0xdc, 0x41, 0xbb, 0x3b, 0xe1, 0x54, 0xc7, - 0x74, 0x8d, 0x4b, 0x5d, 0x5c, 0xb5, 0xda, 0xce, 0x35, 0x2a, 0x0e, 0x36, 0xad, 0x3a, 0xf4, 0x41, - 0xbb, 0x1f, 0x0a, 0xae, 0x77, 0xad, 0x4b, 0xe7, 0x89, 0xfc, 0xb9, 0xbc, 0xd8, 0xa2, 0x9a, 0x7e, - 0x76, 0x9d, 0xfe, 0xc5, 0xbb, 0x75, 0x4e, 0xc9, 0xb9, 0x75, 0x6a, 0x4f, 0x87, 0xa2, 0xed, 0x98, - 0xbb, 0x26, 0xbd, 0x6e, 0x6e, 0xe1, 0x50, 0x08, 0x56, 0x6a, 0x0a, 0x34, 0x48, 0x16, 0x9d, 0x65, - 0xd5, 0x9e, 0x09, 0x33, 0xe6, 0xbe, 0xb1, 0x8b, 0x1f, 0x32, 0x2d, 0x7a, 0x40, 0x7d, 0xe1, 0xee, - 0x73, 0x87, 0x8e, 0x1c, 0xb2, 0xef, 0x7a, 0x94, 0x15, 0xbd, 0x5f, 0x91, 0x8d, 0x13, 0x47, 0xea, - 0x46, 0x41, 0x1d, 0xe1, 0xee, 0x6a, 0x4e, 0x0e, 0xaa, 0xa4, 0x7b, 0xeb, 0x6b, 0xa5, 0x22, 0xb8, - 0xc5, 0xb3, 0x95, 0xfd, 0xe0, 0xfd, 0x87, 0x0a, 0x4c, 0x2f, 0xdb, 0x57, 0x2d, 0xa2, 0xe8, 0xf7, - 0xc8, 0xd9, 0xba, 0x03, 0x0e, 0x86, 0x8b, 0xb7, 0x20, 0x27, 0x9e, 0x02, 0x23, 0xb5, 0x0d, 0x8a, - 0x8c, 0x81, 0x21, 0xb1, 0xe5, 0x48, 0xde, 0x4d, 0x9b, 0x54, 0x4e, 0xf6, 0x72, 0xfd, 0x5d, 0x15, - 0xf2, 0xcb, 0x8e, 0xdd, 0x43, 0xbf, 0x98, 0x4b, 0xe1, 0xe6, 0xd5, 0x71, 0xec, 0x5e, 0x8b, 0x5c, - 0x2e, 0x19, 0xed, 0x6c, 0xf0, 0x69, 0xda, 0x3d, 0x30, 0xdd, 0xb3, 0x5d, 0xd3, 0x0b, 0xa6, 0x11, - 0x0b, 0x77, 0x3f, 0x6e, 0x60, 0x6b, 0xde, 0x64, 0x99, 0xf4, 0x30, 0xbb, 0xdf, 0x6b, 0x13, 0x11, - 0xfa, 0x72, 0xf1, 0xc5, 0x18, 0x5c, 0xb0, 0xd9, 0x97, 0x8a, 0x5e, 0xc9, 0x23, 0xf9, 0x6c, 0x11, - 0xc9, 0x27, 0x0e, 0x90, 0xb0, 0x63, 0xf7, 0xc6, 0xe2, 0x98, 0xf1, 0xea, 0x10, 0xd5, 0xe7, 0x08, - 0xa8, 0xde, 0x21, 0x55, 0x66, 0xf6, 0x88, 0xbe, 0x3f, 0x0f, 0x40, 0xcc, 0x8c, 0x2d, 0x7f, 0x02, - 0x24, 0x67, 0x63, 0x7d, 0x4f, 0x9e, 0x93, 0x65, 0x59, 0x94, 0xe5, 0x93, 0x63, 0xac, 0x18, 0x42, - 0x3e, 0x46, 0xa2, 0x65, 0x28, 0x1c, 0xf8, 0x9f, 0x99, 0x44, 0x25, 0x49, 0x90, 0x57, 0x9d, 0xfe, - 0x89, 0x7e, 0x27, 0x07, 0x05, 0x92, 0xa0, 0xdd, 0x0c, 0x40, 0x06, 0x76, 0x7a, 0x88, 0x32, 0x47, - 0x86, 0x70, 0x2e, 0x85, 0x68, 0xab, 0xd9, 0x61, 0x9f, 0xa9, 0xc9, 0x1c, 0x25, 0xf8, 0x7f, 0x93, - 0xe1, 0x9e, 0xd0, 0x62, 0x06, 0x00, 0x97, 0xe2, 0xff, 0x4d, 0xde, 0xd6, 0xf1, 0x0e, 0x8d, 0xfb, - 0x9f, 0xd7, 0xa3, 0x84, 0xf0, 0xef, 0xf5, 0xf0, 0xb6, 0xc8, 0xe0, 0x6f, 0x92, 0xe2, 0x4f, 0x86, - 0x89, 0x5a, 0x2e, 0x45, 0x45, 0x14, 0x49, 0xa6, 0xfe, 0x64, 0xf4, 0x86, 0x50, 0x6d, 0x96, 0x05, - 0xb5, 0x79, 0x6a, 0x0a, 0xf1, 0x66, 0xaf, 0x3c, 0x5f, 0x28, 0xc0, 0x4c, 0xdd, 0xee, 0x30, 0xdd, - 0xe1, 0x26, 0x8c, 0x1f, 0x2b, 0xa4, 0x9a, 0x30, 0x86, 0x34, 0x62, 0x14, 0xe4, 0xb9, 0xa2, 0x82, - 0xc8, 0x51, 0xe0, 0xf5, 0x43, 0x5b, 0x82, 0x22, 0xd1, 0xde, 0xc3, 0xd7, 0x10, 0x26, 0x91, 0x20, - 0xa2, 0xd5, 0xd9, 0x9f, 0xff, 0xe1, 0x74, 0xec, 0xbf, 0x40, 0x81, 0x54, 0x30, 0x61, 0x77, 0x47, - 0xac, 0xa8, 0x92, 0x5c, 0x51, 0x35, 0xb9, 0xa2, 0xf9, 0xfe, 0x8a, 0xa6, 0x59, 0x07, 0x88, 0xd3, - 0x90, 0xec, 0x75, 0xfc, 0x6f, 0xa7, 0x00, 0xea, 0xc6, 0x15, 0x73, 0x97, 0xee, 0x0e, 0x7f, 0x3a, - 0x98, 0xff, 0xb0, 0x7d, 0xdc, 0xff, 0xca, 0x0d, 0x84, 0xf7, 0xc0, 0x14, 0x1b, 0xf7, 0x58, 0x45, - 0x1e, 0x2f, 0x54, 0x24, 0xa2, 0x42, 0xcd, 0xd2, 0x47, 0x3d, 0x3d, 0xc8, 0x2f, 0xdc, 0x98, 0xae, - 0xf4, 0xdd, 0x98, 0x3e, 0x78, 0x0f, 0x22, 0xe6, 0x1e, 0x75, 0xf4, 0x1e, 0xe9, 0x53, 0x50, 0x1c, - 0x3f, 0x5c, 0x8d, 0x62, 0x9a, 0xe0, 0xd3, 0x61, 0xca, 0x0e, 0x37, 0xb4, 0xd5, 0xd8, 0x75, 0xb0, - 0x9a, 0xb5, 0x63, 0xeb, 0x41, 0x4e, 0xc9, 0xcd, 0x2f, 0x29, 0x3e, 0x26, 0x72, 0xd0, 0xf0, 0xec, - 0x6a, 0x10, 0x43, 0xd1, 0xaf, 0xc7, 0x45, 0xd3, 0xdb, 0x5b, 0x27, 0x91, 0x99, 0xbe, 0x5d, 0xce, - 0x82, 0xe4, 0xf0, 0x57, 0xd2, 0xe1, 0x2f, 0xc6, 0x39, 0x6a, 0x8a, 0xa8, 0xdd, 0x1f, 0x47, 0x65, - 0x30, 0xb7, 0x31, 0x00, 0xde, 0x0b, 0x45, 0xca, 0x28, 0xeb, 0x44, 0xcf, 0xc7, 0xe2, 0x17, 0x52, - 0xd2, 0xd9, 0x1f, 0xe8, 0xdd, 0x21, 0x8e, 0x17, 0x04, 0x1c, 0x97, 0x8e, 0xc4, 0x59, 0xe6, 0x90, - 0x9e, 0x7f, 0x1a, 0x4c, 0x31, 0x49, 0x6b, 0x0b, 0x7c, 0x2b, 0x2e, 0x9d, 0xd0, 0x00, 0x8a, 0x1b, - 0xf6, 0x15, 0xdc, 0xb2, 0x4b, 0x39, 0xff, 0xd9, 0xe7, 0xaf, 0x65, 0x97, 0x14, 0xf4, 0x9a, 0x69, - 0x98, 0x0e, 0x83, 0xd7, 0xfd, 0xa1, 0x02, 0xa5, 0x8a, 0x83, 0x0d, 0x0f, 0xaf, 0x38, 0xf6, 0x3e, - 0xad, 0x91, 0xbc, 0x47, 0xfd, 0x8f, 0x4a, 0xbb, 0x78, 0x84, 0x41, 0xe5, 0xfa, 0x0b, 0x8b, 0xc1, - 0x92, 0x2e, 0x42, 0x2a, 0xc1, 0x22, 0x24, 0x7a, 0x8b, 0x94, 0xcb, 0x87, 0x6c, 0x29, 0xd9, 0x37, - 0xb5, 0x4f, 0x28, 0x50, 0xa8, 0x74, 0x6d, 0x0b, 0xf3, 0xc7, 0x3e, 0x87, 0x9e, 0x2f, 0x1c, 0xbc, - 0x13, 0x81, 0x5e, 0xa0, 0xc8, 0xda, 0x1a, 0x91, 0x00, 0xfc, 0xb2, 0x25, 0x65, 0x2b, 0x37, 0x48, - 0x25, 0x92, 0xce, 0x5e, 0xa0, 0x5f, 0x52, 0x60, 0x86, 0xc6, 0x12, 0x2b, 0x77, 0xbb, 0xe8, 0x71, - 0x91, 0x50, 0x07, 0x04, 0x00, 0x44, 0xbf, 0x24, 0x7d, 0xac, 0x29, 0xac, 0x55, 0x48, 0x3b, 0x45, - 0x50, 0xb5, 0x74, 0xa7, 0x6c, 0xe4, 0xf6, 0xd2, 0x86, 0x32, 0x94, 0xbd, 0xa8, 0xff, 0x48, 0xf1, - 0x0d, 0x00, 0xeb, 0xf2, 0xa6, 0x83, 0xaf, 0x98, 0xf8, 0x2a, 0xba, 0x31, 0x12, 0xf6, 0xe1, 0x40, - 0x49, 0x6f, 0x92, 0x5e, 0xc4, 0xe1, 0x48, 0xc6, 0x6e, 0x65, 0xcd, 0x76, 0xa3, 0x4c, 0xac, 0x17, - 0xef, 0x8f, 0x5e, 0xc5, 0x91, 0xd1, 0xf9, 0xec, 0x92, 0x6b, 0x36, 0xf1, 0x5c, 0x64, 0x2f, 0xd8, - 0x0f, 0x4e, 0xc1, 0xf4, 0x96, 0xe5, 0xf6, 0xba, 0x86, 0xbb, 0x87, 0xfe, 0x55, 0x85, 0x22, 0xbd, - 0xfc, 0x12, 0x7d, 0x93, 0x10, 0x8f, 0xe5, 0x3b, 0x0e, 0xb0, 0x13, 0xb8, 0xe0, 0xd0, 0x97, 0xc8, - 0x3e, 0x52, 0x38, 0xfb, 0x08, 0xbd, 0x5f, 0x95, 0x9d, 0xa4, 0x06, 0x85, 0xb2, 0xdb, 0x36, 0xe3, - 0x43, 0x80, 0xf4, 0xcc, 0xb6, 0x77, 0xe0, 0x60, 0x77, 0x60, 0x08, 0x90, 0x58, 0x2a, 0x9b, 0xf4, - 0x2f, 0x3d, 0xfc, 0x1d, 0x19, 0x30, 0xc5, 0x12, 0x0f, 0x6d, 0x27, 0x1d, 0x8e, 0x59, 0x70, 0x16, - 0x8a, 0x86, 0xe3, 0x99, 0xae, 0xc7, 0x36, 0x58, 0xd9, 0x9b, 0xdf, 0x5d, 0xd2, 0xa7, 0x2d, 0xa7, - 0x1b, 0x44, 0x6e, 0x0a, 0x13, 0xd0, 0x2f, 0x4b, 0xcd, 0x1f, 0x93, 0x6b, 0x9e, 0x0e, 0xf2, 0x87, - 0x46, 0x58, 0xa3, 0xbe, 0x1e, 0xae, 0xd3, 0xcb, 0xad, 0xea, 0x36, 0x0d, 0xf4, 0x13, 0xc6, 0xf4, - 0xe9, 0xa0, 0x77, 0xa9, 0xdc, 0xfa, 0xdd, 0x35, 0x61, 0x8c, 0x60, 0x52, 0x8c, 0xc6, 0x88, 0x30, - 0x21, 0x61, 0xb7, 0x5a, 0x58, 0x84, 0x55, 0xe5, 0x17, 0x61, 0x7f, 0x41, 0x7a, 0x37, 0x29, 0x14, - 0xe5, 0x90, 0x35, 0xc0, 0xa4, 0xcb, 0xf1, 0x3e, 0x20, 0xb5, 0x33, 0x34, 0xac, 0xa4, 0x63, 0x84, - 0xed, 0x67, 0xa7, 0x60, 0x6a, 0xd5, 0xe8, 0x76, 0xb1, 0x73, 0xcd, 0x1f, 0x92, 0x4a, 0x01, 0x87, - 0x1b, 0x86, 0x65, 0xee, 0x60, 0xd7, 0x4b, 0xee, 0x2c, 0xdf, 0x23, 0x1d, 0x78, 0x9d, 0x95, 0xb1, - 0xd8, 0x4f, 0x3f, 0x46, 0xe6, 0x77, 0x41, 0xde, 0xb4, 0x76, 0x6c, 0xd6, 0x65, 0xf6, 0xaf, 0xda, - 0x07, 0x3f, 0x93, 0xa9, 0x0b, 0xc9, 0x28, 0x19, 0x7b, 0x5d, 0x92, 0x8b, 0xec, 0x7b, 0xce, 0xb7, - 0xe5, 0x61, 0x3e, 0x60, 0xa2, 0x66, 0x75, 0xf0, 0xa3, 0xfc, 0x52, 0xcc, 0x0f, 0xe5, 0x65, 0x8f, - 0xd0, 0xf6, 0xd7, 0x87, 0x90, 0x8a, 0x11, 0x69, 0x0b, 0xa0, 0x6d, 0x78, 0x78, 0xd7, 0x76, 0xcc, - 0xb0, 0x3f, 0x7c, 0x46, 0x1a, 0x6a, 0x15, 0xfa, 0xf7, 0x35, 0x9d, 0xa3, 0xa3, 0xdd, 0x0f, 0xb3, - 0x38, 0x8c, 0x59, 0x12, 0x2c, 0xd5, 0x24, 0xe2, 0xc5, 0xe7, 0x47, 0x7f, 0x24, 0x75, 0x52, 0x57, - 0xa6, 0x9a, 0xe9, 0x30, 0xdb, 0x1e, 0xad, 0x0d, 0x6d, 0xd5, 0x37, 0xca, 0x7a, 0x73, 0xad, 0xbc, - 0xbe, 0x5e, 0xab, 0xaf, 0x86, 0xc1, 0xb2, 0x34, 0x58, 0x58, 0x6e, 0x5c, 0xac, 0x73, 0xd1, 0xcc, - 0xf2, 0x68, 0x13, 0xa6, 0x03, 0x79, 0x0d, 0xf2, 0xc5, 0xe4, 0x65, 0xc6, 0x7c, 0x31, 0xb9, 0x24, - 0xdf, 0x38, 0x33, 0xdb, 0xa1, 0x83, 0x0e, 0x79, 0x46, 0xbf, 0x65, 0x40, 0x81, 0xac, 0xa9, 0xa3, - 0x77, 0x90, 0x6d, 0xc0, 0x5e, 0xd7, 0x68, 0x63, 0xb4, 0x9f, 0xc2, 0x1a, 0x0f, 0x6e, 0x02, 0x52, - 0x0e, 0xdd, 0x04, 0x44, 0x1e, 0x99, 0xd5, 0x77, 0x7a, 0xd0, 0x3a, 0xbe, 0x4e, 0xb3, 0x88, 0x87, - 0x5a, 0x13, 0x77, 0x57, 0xe8, 0xf2, 0x3f, 0x63, 0x33, 0x46, 0x25, 0xe3, 0x79, 0x4a, 0x67, 0x89, - 0xca, 0xed, 0xc3, 0x24, 0x71, 0x94, 0x7d, 0x8b, 0xff, 0x6c, 0x1e, 0x0a, 0xcd, 0x5e, 0xd7, 0xf4, - 0xd0, 0x8f, 0x2b, 0x63, 0xc1, 0x8c, 0xde, 0xde, 0xa4, 0x0e, 0xbd, 0xbd, 0x29, 0xda, 0x75, 0xcd, - 0x4b, 0xec, 0xba, 0xb6, 0xf0, 0xa3, 0x9e, 0xb8, 0xeb, 0x7a, 0x0f, 0x0b, 0x78, 0x49, 0xf7, 0x6c, - 0x9f, 0x38, 0x40, 0xa4, 0xa4, 0x5a, 0x03, 0x22, 0xa9, 0x9e, 0x7f, 0x1a, 0x0b, 0xe8, 0x08, 0x50, - 0x5c, 0x6a, 0xb4, 0x5a, 0x8d, 0x8d, 0xd2, 0x09, 0x12, 0x09, 0xac, 0xb1, 0x49, 0xc3, 0x6b, 0xd5, - 0xea, 0xf5, 0xaa, 0x5e, 0x52, 0x48, 0x88, 0xc9, 0x5a, 0x6b, 0xbd, 0x5a, 0x52, 0xc5, 0xab, 0x3c, - 0x12, 0xcd, 0x6f, 0xb1, 0xec, 0x2c, 0xd5, 0x4b, 0xce, 0x10, 0x8f, 0xe7, 0x27, 0x7b, 0xe5, 0xfa, - 0x11, 0x15, 0x0a, 0x1b, 0xd8, 0xd9, 0xc5, 0xe8, 0x3b, 0x52, 0x6c, 0xf2, 0xed, 0x98, 0x8e, 0x4b, - 0x03, 0x72, 0x46, 0x9b, 0x7c, 0x7c, 0x9a, 0x76, 0x2b, 0xcc, 0xbb, 0xb8, 0x6d, 0x5b, 0x9d, 0x20, - 0x13, 0xed, 0x8f, 0xc4, 0x44, 0xf4, 0xaa, 0x94, 0x90, 0x11, 0x46, 0xc7, 0xb2, 0x53, 0x97, 0x06, - 0x98, 0x41, 0xa5, 0x66, 0x0f, 0xcc, 0x97, 0x55, 0xff, 0xa7, 0xde, 0x35, 0xf4, 0x2a, 0xe9, 0xdd, - 0xd7, 0x3b, 0xa1, 0x78, 0x29, 0x88, 0xec, 0xae, 0xc6, 0xf6, 0xc7, 0x2c, 0x8f, 0xb6, 0x04, 0xa7, - 0x5c, 0xdc, 0xc5, 0x6d, 0x0f, 0x77, 0xfc, 0xa6, 0xab, 0x0f, 0xed, 0x14, 0x0e, 0x67, 0x47, 0xbf, - 0xc7, 0x03, 0x78, 0x9f, 0x08, 0xe0, 0x6d, 0x03, 0x44, 0xe9, 0x57, 0x28, 0xde, 0x56, 0xf6, 0xab, - 0xd1, 0xec, 0xda, 0xe1, 0xa2, 0x78, 0xf0, 0xee, 0x7f, 0xdb, 0xf3, 0xf6, 0xbb, 0xe4, 0x1b, 0x3b, - 0x60, 0x10, 0xbc, 0x6b, 0x8b, 0x30, 0x65, 0x58, 0xd7, 0xc8, 0xa7, 0x7c, 0x42, 0xad, 0x83, 0x4c, - 0xe8, 0x35, 0x21, 0xf2, 0x0f, 0x08, 0xc8, 0x3f, 0x59, 0x8e, 0xdd, 0xec, 0x81, 0xff, 0xee, 0x29, - 0x28, 0x6c, 0x1a, 0xae, 0x87, 0xd1, 0xff, 0xa3, 0xca, 0x22, 0x7f, 0x1b, 0x2c, 0xec, 0xd8, 0xed, - 0x03, 0x17, 0x77, 0xc4, 0x46, 0xd9, 0x97, 0x3a, 0x0e, 0xcc, 0xb5, 0x3b, 0xa0, 0x14, 0x24, 0x32, - 0xb2, 0xc1, 0x36, 0xfc, 0xa1, 0x74, 0x72, 0x31, 0x84, 0xbb, 0x69, 0x38, 0x5e, 0x63, 0x87, 0xa4, - 0x85, 0x17, 0x43, 0xf0, 0x89, 0x02, 0xf4, 0xc5, 0x04, 0xe8, 0xa7, 0xe2, 0xa1, 0x9f, 0x96, 0x80, - 0x5e, 0x2b, 0xc3, 0xf4, 0x8e, 0xd9, 0xc5, 0xe4, 0x87, 0x19, 0xf2, 0xc3, 0xa0, 0x31, 0x89, 0xc8, - 0x3e, 0x1c, 0x93, 0x56, 0xcc, 0x2e, 0xd6, 0xc3, 0xdf, 0x82, 0x89, 0x0c, 0x44, 0x13, 0x99, 0x75, - 0xea, 0x4f, 0xeb, 0x1b, 0x5e, 0x96, 0xb1, 0x8f, 0x83, 0xc5, 0x37, 0x8b, 0x1d, 0x6e, 0xe9, 0x18, - 0x9e, 0x41, 0xc0, 0x98, 0xd3, 0xc9, 0xb3, 0xe8, 0x17, 0xa2, 0xf6, 0xfb, 0x85, 0xbc, 0x58, 0x4d, - 0xd7, 0x23, 0x06, 0xcc, 0xc6, 0xb4, 0xa8, 0x4b, 0x01, 0x40, 0xd4, 0x52, 0x0c, 0xdf, 0x7d, 0x60, - 0xda, 0x86, 0x83, 0xbd, 0x4d, 0xde, 0x13, 0xa3, 0xa0, 0x8b, 0x89, 0xc4, 0x95, 0xcf, 0x6d, 0x1a, - 0xfb, 0xf4, 0x72, 0x88, 0x8a, 0xff, 0x8d, 0xb9, 0x68, 0x1d, 0x4a, 0x8f, 0xfa, 0xdf, 0xc2, 0xb8, - 0xfb, 0xdf, 0x41, 0x75, 0xcc, 0xbe, 0x19, 0xbe, 0x2e, 0x0f, 0x6a, 0xe5, 0xc0, 0x7b, 0x4c, 0x77, - 0xbf, 0x5f, 0x93, 0xf6, 0x73, 0x61, 0xfd, 0xd9, 0x81, 0x77, 0xbc, 0xbd, 0x6f, 0x4a, 0x2d, 0x91, - 0xf3, 0xa7, 0x89, 0xab, 0x5b, 0xf6, 0x3a, 0xf2, 0x8b, 0x6a, 0xe8, 0x60, 0xf9, 0xa2, 0xdc, 0xd1, - 0x4d, 0x73, 0x44, 0xfb, 0x27, 0xae, 0x67, 0x08, 0xdf, 0x83, 0x8e, 0x27, 0x2f, 0xc4, 0x37, 0x25, - 0xdb, 0xeb, 0x44, 0x94, 0x73, 0x3a, 0x7d, 0x41, 0x3f, 0x21, 0xed, 0x76, 0x4e, 0xc5, 0x96, 0xe8, - 0x4a, 0x98, 0xce, 0xa6, 0x92, 0xbb, 0x1b, 0x3b, 0xa1, 0xd8, 0xec, 0x01, 0xfb, 0x7b, 0xde, 0x55, - 0xb0, 0x7c, 0x64, 0xc4, 0xd0, 0x6b, 0xa5, 0xb7, 0xa3, 0x68, 0xb5, 0x87, 0xac, 0x17, 0xa6, 0x93, - 0xb7, 0xdc, 0x66, 0x55, 0x62, 0xc1, 0xd9, 0x4b, 0xfc, 0xef, 0x54, 0x28, 0xd2, 0x2d, 0x48, 0xf4, - 0x66, 0xe9, 0x26, 0xe2, 0xf7, 0x46, 0xa2, 0x0b, 0x61, 0xf8, 0x9e, 0x66, 0xcd, 0x41, 0x70, 0x35, - 0xcc, 0xa7, 0x72, 0x35, 0x14, 0xcf, 0x71, 0x4a, 0xb4, 0x23, 0x5a, 0xc7, 0x8c, 0xa7, 0x93, 0x69, - 0x5a, 0xd8, 0x40, 0x86, 0xb2, 0xc7, 0xfb, 0x7b, 0x0b, 0x30, 0x47, 0x8b, 0xbe, 0x68, 0x76, 0x76, - 0xb1, 0x87, 0xde, 0xa5, 0xfc, 0xfb, 0x41, 0x5d, 0xab, 0xc3, 0xdc, 0x55, 0xc2, 0x36, 0xbd, 0xc5, - 0x8a, 0xad, 0x5c, 0xdc, 0x91, 0xb8, 0xee, 0x41, 0xeb, 0x19, 0xdc, 0x7b, 0x25, 0xfc, 0xef, 0xcb, - 0x98, 0x2e, 0xf8, 0x53, 0x07, 0xae, 0x22, 0x31, 0xb2, 0xf8, 0x24, 0xed, 0x2c, 0x14, 0xaf, 0x98, - 0xf8, 0x6a, 0xad, 0xc3, 0xac, 0x5b, 0xf6, 0x86, 0x7e, 0x4d, 0x7a, 0xdf, 0x96, 0x87, 0x9b, 0xf1, - 0x92, 0xad, 0x16, 0xca, 0xed, 0xde, 0x0e, 0x65, 0x6b, 0x02, 0x67, 0x8a, 0xc5, 0xbb, 0xa7, 0x2b, - 0x29, 0x14, 0x31, 0xce, 0x70, 0x16, 0x43, 0x79, 0x24, 0x9e, 0x58, 0xa1, 0x02, 0x18, 0xf3, 0xb5, - 0xd4, 0x72, 0xf1, 0x25, 0x86, 0x14, 0x9d, 0xbd, 0xe4, 0xdf, 0xa0, 0xc2, 0x4c, 0x13, 0x7b, 0x2b, - 0x26, 0xee, 0x76, 0x5c, 0xe4, 0x1c, 0xdd, 0x34, 0xba, 0x0b, 0x8a, 0x3b, 0x84, 0xd8, 0xb0, 0x73, - 0x0b, 0x2c, 0x1b, 0x7a, 0x9d, 0x22, 0xbb, 0x23, 0xcc, 0x56, 0xdf, 0x02, 0x6e, 0xc7, 0x02, 0x93, - 0x9c, 0x47, 0x6f, 0x72, 0xc9, 0x13, 0x08, 0x06, 0xae, 0xc2, 0x1c, 0xbb, 0xac, 0xb6, 0xdc, 0x35, - 0x77, 0x2d, 0x74, 0x30, 0x86, 0x16, 0xa2, 0x3d, 0x15, 0x0a, 0x86, 0x4f, 0x8d, 0x6d, 0xbd, 0xa2, - 0x81, 0x9d, 0x27, 0x29, 0x4f, 0xa7, 0x19, 0x53, 0x84, 0xde, 0x8d, 0x14, 0x3b, 0xe0, 0x79, 0x82, - 0xa1, 0x77, 0x87, 0x16, 0x9e, 0x3d, 0x62, 0x9f, 0x57, 0xe1, 0x34, 0x63, 0xe0, 0x02, 0x76, 0x3c, - 0xb3, 0x6d, 0x74, 0x29, 0x72, 0x2f, 0xcb, 0x8d, 0x03, 0xba, 0x35, 0x98, 0xbf, 0xc2, 0x93, 0x65, - 0x10, 0x9e, 0x1f, 0x08, 0xa1, 0xc0, 0x80, 0x2e, 0xfe, 0x98, 0x22, 0x84, 0xa9, 0x20, 0x55, 0x81, - 0xe6, 0x04, 0x43, 0x98, 0x4a, 0x33, 0x91, 0x3d, 0xc4, 0xaf, 0x64, 0xa1, 0x79, 0xa2, 0xee, 0xf3, - 0xd3, 0xd2, 0xd8, 0x6e, 0xc1, 0x2c, 0xc1, 0x92, 0xfe, 0xc8, 0x96, 0x21, 0x12, 0x94, 0x38, 0xec, - 0x77, 0xd8, 0x25, 0x8b, 0xe1, 0xbf, 0x3a, 0x4f, 0x07, 0x5d, 0x04, 0x88, 0x3e, 0xf1, 0x9d, 0x74, - 0x2e, 0xae, 0x93, 0x56, 0xe4, 0x3a, 0xe9, 0x37, 0x49, 0x07, 0x4b, 0x19, 0xcc, 0xf6, 0xd1, 0xd5, - 0x43, 0x2e, 0x4c, 0xc6, 0xf0, 0xd2, 0xb3, 0xd7, 0x8b, 0xd7, 0x30, 0xbd, 0x58, 0x3e, 0xe8, 0x75, - 0xcd, 0xb6, 0x3f, 0x9f, 0xfa, 0xf0, 0x58, 0xe6, 0x53, 0x7c, 0x7f, 0xa0, 0xf6, 0xf5, 0x07, 0x47, - 0xb0, 0xa4, 0x6f, 0x87, 0x93, 0xb4, 0x88, 0x4a, 0xc8, 0x56, 0x81, 0x86, 0x82, 0xe8, 0x4b, 0x16, - 0xe3, 0x12, 0x4a, 0x2a, 0x41, 0x28, 0x84, 0x11, 0x96, 0x3e, 0xd3, 0x19, 0xbb, 0x69, 0x15, 0x24, - 0x8e, 0xb3, 0x09, 0xb8, 0x85, 0xe6, 0xa9, 0xb5, 0xbb, 0x45, 0xee, 0xc1, 0x44, 0x7f, 0x9c, 0x1f, - 0xc7, 0x88, 0xf0, 0x5c, 0xc8, 0x13, 0x17, 0x77, 0x35, 0x76, 0x49, 0x23, 0x2a, 0x32, 0xba, 0xa4, - 0x14, 0x3f, 0xea, 0xad, 0x9d, 0xd0, 0xc9, 0x9f, 0xda, 0x1d, 0x70, 0xf2, 0x92, 0xd1, 0xbe, 0xbc, - 0xeb, 0xd8, 0x07, 0xe4, 0xc6, 0x40, 0x9b, 0x5d, 0x3d, 0x48, 0xae, 0x70, 0x15, 0x3f, 0x68, 0x77, - 0x07, 0xa6, 0x43, 0x61, 0x98, 0xe9, 0xb0, 0x76, 0x82, 0x19, 0x0f, 0xda, 0xd3, 0xc2, 0x4e, 0xa7, - 0x98, 0xd8, 0xe9, 0xac, 0x9d, 0x08, 0xba, 0x1d, 0x6d, 0x19, 0xa6, 0x3b, 0xe6, 0x15, 0xb2, 0x55, - 0x4d, 0x66, 0x5d, 0xc3, 0x8e, 0x2e, 0x2f, 0x9b, 0x57, 0xe8, 0xc6, 0xf6, 0xda, 0x09, 0x3d, 0xfc, - 0x53, 0x5b, 0x85, 0x19, 0xb2, 0x2d, 0x40, 0xc8, 0x4c, 0xa7, 0x3a, 0x96, 0xbc, 0x76, 0x42, 0x8f, - 0xfe, 0xf5, 0xad, 0x8f, 0x3c, 0x39, 0xfb, 0xf1, 0x40, 0xb0, 0xdd, 0x9e, 0x4b, 0xb5, 0xdd, 0xee, - 0xcb, 0x82, 0x6e, 0xb8, 0x9f, 0x85, 0x42, 0x9b, 0x48, 0x58, 0x61, 0x12, 0xa6, 0xaf, 0xda, 0x7d, - 0x90, 0xdf, 0x37, 0x9c, 0x60, 0xf2, 0x7c, 0xdb, 0x70, 0xba, 0x1b, 0x86, 0x73, 0xd9, 0x47, 0xd0, - 0xff, 0x6b, 0x69, 0x0a, 0x0a, 0x44, 0x70, 0xe1, 0x03, 0xfa, 0xc5, 0x3c, 0x35, 0x43, 0x2a, 0xb6, - 0xe5, 0x0f, 0xfb, 0x2d, 0x3b, 0x38, 0x20, 0xf3, 0x6b, 0xb9, 0xf1, 0x58, 0x90, 0xd7, 0x71, 0x01, - 0x83, 0x2d, 0xf3, 0x3b, 0x0e, 0xf0, 0x43, 0xf8, 0x1a, 0x5b, 0x12, 0x1d, 0xf4, 0xa9, 0xef, 0x3e, - 0xf9, 0x7c, 0xff, 0x7d, 0xf2, 0xd1, 0xf2, 0x41, 0x61, 0xb8, 0xa3, 0xca, 0xef, 0x8d, 0x60, 0xba, - 0xf4, 0x0b, 0x22, 0x7e, 0x06, 0xde, 0x35, 0x2d, 0xae, 0xce, 0xc1, 0x6b, 0xca, 0x4e, 0x29, 0xad, - 0x51, 0x33, 0x84, 0xbd, 0xec, 0xfb, 0xa6, 0x9f, 0xcf, 0xd3, 0x98, 0xa9, 0xf4, 0x14, 0x86, 0x78, - 0x47, 0x2f, 0xfa, 0xed, 0xb1, 0x28, 0xcd, 0x80, 0x01, 0x47, 0x1d, 0x38, 0xe0, 0x1c, 0x3a, 0xa4, - 0x9c, 0x1f, 0x72, 0x48, 0xb9, 0x90, 0x6e, 0xe5, 0xf0, 0x57, 0x79, 0xfd, 0xd9, 0x14, 0xf5, 0xe7, - 0xde, 0x18, 0x80, 0x06, 0xc9, 0x65, 0x2c, 0xf6, 0xcd, 0x3b, 0x42, 0x4d, 0x69, 0x0a, 0x9a, 0xf2, - 0xc0, 0xe8, 0x8c, 0x64, 0xaf, 0x2d, 0xbf, 0x92, 0x87, 0xeb, 0x22, 0x66, 0xea, 0xf8, 0x2a, 0x53, - 0x94, 0x3f, 0x1c, 0x8b, 0xa2, 0xa4, 0x8f, 0x81, 0x90, 0xb5, 0xc6, 0xfc, 0x8e, 0xf4, 0xd9, 0xa1, - 0x7e, 0xa0, 0x42, 0xd9, 0xc4, 0x28, 0xcb, 0x59, 0x28, 0xd2, 0x1e, 0x86, 0x41, 0xc3, 0xde, 0x52, - 0x76, 0x37, 0x72, 0x27, 0x8e, 0x64, 0x79, 0x9b, 0x80, 0xfe, 0xb0, 0x75, 0x8d, 0xd6, 0x81, 0x63, - 0xd5, 0x2c, 0xcf, 0x46, 0xdf, 0x35, 0x16, 0xc5, 0x09, 0xbd, 0xe1, 0xd4, 0x51, 0xbc, 0xe1, 0x46, - 0x5a, 0xe5, 0x08, 0x6a, 0x70, 0x2c, 0xab, 0x1c, 0x31, 0x85, 0x67, 0x8f, 0xdf, 0xdb, 0x55, 0x38, - 0xcb, 0x26, 0x5b, 0x4b, 0xa2, 0x85, 0x88, 0x1e, 0x1e, 0x07, 0x90, 0xa7, 0x03, 0x33, 0x89, 0xdd, - 0x0c, 0x49, 0x5e, 0xc4, 0x93, 0x52, 0x89, 0x77, 0xe2, 0x08, 0xd3, 0xc1, 0x3e, 0x0e, 0xc7, 0x82, - 0x94, 0xdc, 0x55, 0x38, 0x29, 0xd8, 0xc8, 0x1e, 0xb3, 0x57, 0xa8, 0x50, 0xa4, 0xe7, 0xb4, 0xd0, - 0x56, 0x26, 0x0e, 0x13, 0x62, 0x94, 0x67, 0x89, 0x1d, 0x39, 0xca, 0x4d, 0x66, 0x67, 0xd8, 0xd2, - 0xec, 0xc5, 0x0d, 0x64, 0x65, 0x02, 0x2e, 0x84, 0x0a, 0xcc, 0x36, 0xb1, 0x57, 0x31, 0x1c, 0xc7, - 0x34, 0x76, 0xc7, 0xe5, 0xf1, 0x2d, 0xeb, 0x3d, 0x8c, 0xbe, 0x92, 0x93, 0x3d, 0x4f, 0x13, 0x2e, - 0x84, 0x07, 0xac, 0xc6, 0xc4, 0x12, 0x7c, 0xa3, 0xd4, 0x99, 0x99, 0x61, 0xd4, 0x26, 0xe0, 0xb1, - 0xad, 0xc0, 0x54, 0x70, 0x16, 0xef, 0x2e, 0xe1, 0x7c, 0xe6, 0x9e, 0xb7, 0x1f, 0x1c, 0x83, 0x21, - 0xcf, 0x87, 0xcf, 0x80, 0xa1, 0x57, 0xa7, 0x74, 0x94, 0x4f, 0x3e, 0x48, 0x98, 0xae, 0x8d, 0xa5, - 0x71, 0x87, 0x3f, 0xae, 0xa3, 0x83, 0xbf, 0x34, 0xc5, 0x96, 0x23, 0xd7, 0x0d, 0x0f, 0x3f, 0x8a, - 0x3e, 0xad, 0xc2, 0x54, 0x13, 0x7b, 0xfe, 0x78, 0x2b, 0x5c, 0x08, 0x3d, 0xaa, 0x86, 0x6b, 0xdc, - 0x8a, 0xc7, 0x0c, 0x5b, 0xc3, 0x78, 0x10, 0x66, 0x7a, 0x8e, 0xdd, 0xc6, 0xae, 0xcb, 0x56, 0x2f, - 0x78, 0x47, 0xb5, 0x41, 0xa3, 0x3f, 0x61, 0x6d, 0x71, 0x33, 0xf8, 0x47, 0x8f, 0x7e, 0x4f, 0x6b, - 0x06, 0x50, 0x4a, 0xac, 0x82, 0x93, 0x36, 0x03, 0x92, 0x0a, 0xcf, 0x1e, 0xe8, 0xdf, 0x57, 0x61, - 0xae, 0x89, 0xbd, 0x50, 0x8a, 0x29, 0x36, 0x39, 0xe2, 0xe1, 0x15, 0xa0, 0x54, 0x8f, 0x06, 0xa5, - 0xfc, 0x75, 0xaa, 0xa2, 0x34, 0x43, 0x62, 0x13, 0xbc, 0x4e, 0x55, 0x8e, 0x83, 0x09, 0x1c, 0x5f, - 0x7b, 0x22, 0xcc, 0x10, 0x5e, 0x48, 0x83, 0xfd, 0xfe, 0x7c, 0xd4, 0x78, 0x3f, 0x93, 0x51, 0xe3, - 0xbd, 0x1f, 0x0a, 0xfb, 0x86, 0x73, 0xd9, 0x25, 0x0d, 0x77, 0x56, 0xc6, 0x6c, 0xdf, 0xf0, 0xb3, - 0xeb, 0xf4, 0xaf, 0xc1, 0x7e, 0x9a, 0x85, 0x74, 0x7e, 0x9a, 0x6f, 0x54, 0x52, 0x8d, 0x84, 0x74, - 0xee, 0x30, 0xc6, 0x26, 0x9f, 0x62, 0xdc, 0x4c, 0x28, 0x3b, 0x7b, 0xe5, 0x78, 0x99, 0x0a, 0xd3, - 0xfe, 0xb8, 0x4d, 0xec, 0xf1, 0x8b, 0x47, 0x57, 0x87, 0xc1, 0x86, 0x7e, 0xca, 0x1e, 0x38, 0x90, - 0xc8, 0xf8, 0xcc, 0xfb, 0x14, 0x3d, 0x70, 0x52, 0xe1, 0xd9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, 0x69, - 0x0f, 0xe8, 0x67, 0x54, 0x50, 0x57, 0xb1, 0x37, 0x69, 0x2b, 0xf2, 0xad, 0xd2, 0x21, 0x8e, 0x04, - 0x81, 0x11, 0x9e, 0x17, 0x57, 0xf1, 0x78, 0x1a, 0x90, 0x5c, 0x6c, 0x23, 0x29, 0x06, 0xb2, 0x47, - 0xed, 0xbd, 0x14, 0x35, 0xba, 0xb9, 0xf0, 0x9d, 0x63, 0xe8, 0x55, 0x27, 0xbb, 0xf0, 0x11, 0x08, - 0x90, 0xd0, 0x38, 0xae, 0xf6, 0x36, 0xa8, 0xf0, 0x89, 0x5c, 0x5f, 0x0a, 0x7e, 0x63, 0xdf, 0xc3, - 0xed, 0xcb, 0xb8, 0xc3, 0x5f, 0x07, 0x37, 0x2a, 0x74, 0xe7, 0x60, 0xaa, 0x4d, 0xa9, 0x11, 0xf0, - 0xa6, 0xf5, 0xe0, 0x35, 0xc5, 0x5d, 0xfc, 0x62, 0x47, 0x44, 0x7f, 0x9f, 0xe0, 0x5d, 0xfc, 0x12, - 0xc5, 0x4f, 0xc0, 0x6c, 0xa1, 0xb3, 0x8c, 0x5a, 0xdb, 0xb6, 0xd0, 0x7f, 0x3e, 0x3a, 0x2c, 0x37, - 0xc1, 0x8c, 0xd9, 0xb6, 0x2d, 0x12, 0x86, 0x22, 0x38, 0x04, 0x14, 0x26, 0x04, 0x5f, 0xab, 0xfb, - 0xf6, 0x23, 0x26, 0xdb, 0x35, 0x8f, 0x12, 0x46, 0x35, 0x26, 0x7c, 0xd6, 0x8f, 0xcb, 0x98, 0x18, - 0x50, 0x76, 0xf6, 0x90, 0x7d, 0x24, 0xf2, 0x6e, 0xa3, 0x5d, 0xe1, 0x63, 0x62, 0x15, 0x78, 0x94, - 0xe1, 0x8c, 0xaf, 0xc5, 0xb1, 0x0c, 0x67, 0x09, 0x0c, 0x4c, 0xe0, 0xc6, 0x8a, 0x08, 0xc7, 0xcc, - 0xd7, 0x80, 0x8f, 0x80, 0xce, 0xf8, 0xcc, 0xc3, 0x11, 0xd1, 0x39, 0x1e, 0x13, 0xf1, 0x03, 0x2c, - 0x44, 0x26, 0xb3, 0x78, 0xd0, 0x7f, 0x19, 0x07, 0x38, 0xf7, 0x8e, 0xe2, 0xaf, 0x40, 0xbd, 0x15, - 0xd0, 0x5b, 0x14, 0xd9, 0x10, 0x28, 0x87, 0x24, 0xe8, 0x53, 0x19, 0x0b, 0x82, 0x6f, 0x92, 0x8a, - 0x4d, 0x22, 0x53, 0x7e, 0xf6, 0x00, 0xbe, 0x54, 0x85, 0x05, 0xe2, 0x23, 0xd0, 0xc5, 0x86, 0x43, - 0x3b, 0xca, 0xb1, 0x38, 0xca, 0xbf, 0x53, 0x3a, 0xc0, 0x8f, 0x28, 0x87, 0x88, 0x8f, 0xb1, 0x40, - 0x21, 0x17, 0xdd, 0x47, 0x92, 0x85, 0x89, 0x6c, 0xa3, 0x94, 0x42, 0x16, 0x98, 0x8a, 0x8f, 0x07, - 0x8f, 0x94, 0x1e, 0xb9, 0xa2, 0x30, 0x82, 0xc6, 0x36, 0x61, 0x8f, 0x5c, 0x19, 0x26, 0xb2, 0xc7, - 0xe4, 0x67, 0x9e, 0xca, 0x16, 0x9c, 0x5b, 0xc6, 0xa5, 0x2e, 0x46, 0xaf, 0xcd, 0x87, 0x27, 0xda, - 0x7e, 0x7f, 0x2c, 0x1e, 0x98, 0x47, 0x08, 0x88, 0xaf, 0x41, 0xde, 0xb1, 0xaf, 0xd2, 0xa5, 0xad, - 0x79, 0x9d, 0x3c, 0xd3, 0xeb, 0x29, 0xbb, 0x07, 0xfb, 0x16, 0x3d, 0x19, 0x3a, 0xaf, 0x07, 0xaf, - 0xda, 0xad, 0x30, 0x7f, 0xd5, 0xf4, 0xf6, 0xd6, 0xb0, 0xd1, 0xc1, 0x8e, 0x6e, 0x5f, 0x25, 0x1e, - 0x73, 0xd3, 0xba, 0x98, 0x28, 0xfa, 0xaf, 0x48, 0xd8, 0x97, 0xbe, 0x50, 0x26, 0x73, 0xfc, 0x2d, - 0x8d, 0xe5, 0x19, 0xcf, 0x55, 0xf6, 0x0a, 0xf3, 0x3e, 0x15, 0x66, 0x74, 0xfb, 0x2a, 0x53, 0x92, - 0xff, 0xfb, 0x78, 0x75, 0x24, 0xf5, 0x44, 0x8f, 0x48, 0x2e, 0x64, 0x7f, 0xe2, 0x13, 0xbd, 0xc4, - 0xe2, 0x27, 0x72, 0x72, 0x69, 0x4e, 0xb7, 0xaf, 0x36, 0xb1, 0x47, 0x5b, 0x04, 0xda, 0x1e, 0x93, - 0x93, 0xb5, 0xe9, 0x52, 0x82, 0x6c, 0x1e, 0x1e, 0xbe, 0xa7, 0xdd, 0x45, 0x08, 0x05, 0x14, 0xb2, - 0x38, 0xe9, 0x5d, 0x84, 0xa1, 0x1c, 0x4c, 0x20, 0x46, 0x8a, 0x0a, 0xb3, 0xba, 0x7d, 0xd5, 0x1f, - 0x1a, 0x56, 0xcc, 0x6e, 0x77, 0x3c, 0x23, 0x64, 0x5a, 0xe3, 0x3f, 0x10, 0x43, 0xc0, 0xc5, 0xc4, - 0x8d, 0xff, 0x21, 0x0c, 0x64, 0x0f, 0xc3, 0x8b, 0x69, 0x63, 0x09, 0x46, 0x68, 0x6b, 0x3c, 0x38, - 0x8c, 0xda, 0x20, 0x42, 0x36, 0x8e, 0xad, 0x41, 0xc4, 0x71, 0x30, 0x91, 0x9d, 0x93, 0x85, 0x0a, - 0x19, 0xe6, 0xc7, 0xdb, 0x26, 0xde, 0x9d, 0xce, 0x35, 0x91, 0x0d, 0xbb, 0x02, 0x23, 0x63, 0x41, - 0x23, 0x85, 0x0b, 0xa2, 0x04, 0x0f, 0xd9, 0xe3, 0xf1, 0xeb, 0x2a, 0xcc, 0x51, 0x16, 0x1e, 0x23, - 0x56, 0xc0, 0x48, 0x8d, 0x8a, 0xaf, 0xc1, 0xf1, 0x34, 0xaa, 0x04, 0x0e, 0x26, 0x72, 0x2b, 0xa8, - 0x6f, 0xc7, 0x8d, 0x70, 0x7c, 0x3c, 0x0e, 0xc1, 0x91, 0x8d, 0xb1, 0x31, 0x1e, 0x21, 0x1f, 0xc5, - 0x18, 0x3b, 0xa6, 0x63, 0xe4, 0x2f, 0x0e, 0x5b, 0xd1, 0x38, 0x31, 0x38, 0x42, 0x53, 0x18, 0x23, - 0x0c, 0x23, 0x36, 0x85, 0x63, 0x42, 0xe2, 0x0b, 0x2a, 0x00, 0x65, 0x60, 0xc3, 0xbe, 0x42, 0x2e, - 0xf3, 0x19, 0x43, 0x77, 0xd6, 0xef, 0x56, 0xaf, 0x0e, 0x71, 0xab, 0x4f, 0x19, 0xc2, 0x25, 0xed, - 0x4a, 0x20, 0x27, 0x65, 0xbf, 0x92, 0x13, 0x5f, 0x09, 0x4c, 0x2e, 0x3f, 0x7b, 0x8c, 0x3f, 0x47, - 0xad, 0xb9, 0xe8, 0x80, 0xe9, 0x8f, 0x8d, 0x05, 0x65, 0x6e, 0xf6, 0xaf, 0x8a, 0xb3, 0xff, 0x23, - 0x60, 0x3b, 0xaa, 0x8d, 0x38, 0xec, 0xe0, 0x68, 0xf6, 0x36, 0xe2, 0xf1, 0x1d, 0x10, 0xfd, 0xce, - 0x3c, 0x9c, 0x64, 0x9d, 0xc8, 0xbf, 0x07, 0x88, 0x53, 0x9e, 0xc3, 0x13, 0x3a, 0xc9, 0x21, 0x28, - 0x8f, 0x6b, 0x41, 0x2a, 0xcd, 0x52, 0xa6, 0x04, 0x7b, 0x13, 0x59, 0xdd, 0x28, 0x56, 0x1f, 0xed, - 0x19, 0x56, 0x47, 0x3e, 0xdc, 0xef, 0x10, 0xe0, 0x83, 0xb5, 0x46, 0x55, 0x5c, 0x6b, 0x1c, 0xb0, - 0x32, 0x99, 0x7a, 0xe7, 0x9a, 0x88, 0x8c, 0xb2, 0x3b, 0xf1, 0x9d, 0xeb, 0xf8, 0xb2, 0xb3, 0x47, - 0xe9, 0xdd, 0x2a, 0xe4, 0x9b, 0xb6, 0xe3, 0xa1, 0x97, 0xa4, 0x69, 0x9d, 0x54, 0xf2, 0x11, 0x48, - 0xc1, 0xbb, 0x56, 0x11, 0x6e, 0x69, 0xbe, 0x2b, 0xf9, 0xa8, 0xb3, 0xe1, 0x19, 0xc4, 0xab, 0xdb, - 0x2f, 0x9f, 0xbb, 0xae, 0x39, 0x6d, 0x3c, 0x1d, 0x2a, 0xbf, 0x66, 0xfc, 0x01, 0x8c, 0xcc, 0xe2, - 0xe9, 0xc4, 0x96, 0x9c, 0x3d, 0x6e, 0xaf, 0x3f, 0xc9, 0x7c, 0x5b, 0x57, 0xcc, 0x2e, 0x46, 0x2f, - 0xa1, 0x2e, 0x23, 0x75, 0x63, 0x1f, 0xcb, 0x1f, 0x89, 0x49, 0x74, 0x6d, 0x25, 0xf1, 0x65, 0xd5, - 0x28, 0xbe, 0x6c, 0xda, 0x06, 0x45, 0x0f, 0xa0, 0x53, 0x96, 0x26, 0xdd, 0xa0, 0x12, 0xca, 0x9e, - 0x48, 0x9c, 0xce, 0x53, 0x4d, 0xec, 0x51, 0xa3, 0xb2, 0x11, 0xdc, 0xc0, 0xf2, 0x6d, 0x63, 0x89, - 0xd8, 0x19, 0x5e, 0xf0, 0xa2, 0xf6, 0x5d, 0xf0, 0xf2, 0x3e, 0x1e, 0x9c, 0x0d, 0x11, 0x9c, 0x6f, - 0x8e, 0x17, 0x90, 0xc8, 0xe4, 0x58, 0x60, 0x7a, 0x6b, 0x08, 0xd3, 0xa6, 0x00, 0xd3, 0x7d, 0x23, - 0x72, 0x91, 0x3d, 0x60, 0x3f, 0x50, 0x80, 0x93, 0x74, 0xd2, 0x5f, 0xb6, 0x3a, 0x2c, 0xc2, 0xea, - 0x9b, 0x95, 0x63, 0xde, 0x6c, 0x3b, 0x1c, 0x82, 0x55, 0x88, 0xe5, 0x5c, 0xe8, 0xbf, 0x1d, 0x7f, - 0x89, 0x86, 0x73, 0xf5, 0x3b, 0x51, 0xb2, 0xd3, 0x26, 0x7f, 0x43, 0x7e, 0xf8, 0x9f, 0x78, 0x97, - 0xd1, 0x94, 0xfc, 0x5d, 0x46, 0xbf, 0x9b, 0x6e, 0xdd, 0x8e, 0x14, 0xdd, 0x27, 0xf0, 0x8c, 0x6d, - 0xa7, 0x14, 0x2b, 0x7a, 0x12, 0xdc, 0x7d, 0x7d, 0xb8, 0x93, 0x45, 0x11, 0x44, 0x46, 0x74, 0x27, - 0x23, 0x04, 0x8e, 0xd3, 0x9d, 0x6c, 0x18, 0x03, 0x13, 0xb8, 0xd5, 0xbe, 0xc0, 0x76, 0xf3, 0x49, - 0xbb, 0x41, 0x7f, 0xaa, 0x64, 0x3e, 0x4a, 0x7f, 0x35, 0x97, 0xca, 0xff, 0x99, 0xf0, 0x95, 0x3c, - 0x4c, 0xa7, 0xf1, 0x68, 0x4e, 0x22, 0x37, 0x81, 0x75, 0x23, 0x85, 0xf8, 0xa2, 0x5f, 0x34, 0x3b, - 0xde, 0xde, 0x98, 0x4e, 0x74, 0x5c, 0xf5, 0x69, 0x05, 0xd7, 0x23, 0x93, 0x17, 0xf4, 0xbf, 0x72, - 0xa9, 0x42, 0x48, 0x85, 0x22, 0x21, 0x6c, 0xc5, 0x88, 0x38, 0x45, 0xe0, 0xa7, 0x44, 0x7a, 0x13, - 0xd4, 0xe8, 0x0b, 0x66, 0x07, 0xdb, 0x8f, 0x41, 0x8d, 0x26, 0x7c, 0x8d, 0x4f, 0xa3, 0x93, 0xc8, - 0x7d, 0x9d, 0x6a, 0x74, 0x28, 0x92, 0x31, 0x69, 0x74, 0x22, 0xbd, 0xec, 0x65, 0xfc, 0xea, 0x39, - 0x36, 0x91, 0x5a, 0x37, 0xad, 0xcb, 0xe8, 0x9f, 0x8a, 0xc1, 0xc5, 0xcc, 0x17, 0x4d, 0x6f, 0x8f, - 0xc5, 0x82, 0xf9, 0x15, 0xe9, 0xbb, 0x51, 0x46, 0x88, 0xf7, 0x22, 0x86, 0x93, 0x2a, 0x1c, 0x0a, - 0x27, 0x55, 0x86, 0x79, 0xd3, 0xf2, 0xb0, 0x63, 0x19, 0xdd, 0x95, 0xae, 0xb1, 0xeb, 0x9e, 0x9b, - 0x1a, 0x78, 0x79, 0x5d, 0x8d, 0xcb, 0xa3, 0x8b, 0x7f, 0xf0, 0xd7, 0x57, 0x4e, 0x8b, 0xd7, 0x57, - 0xc6, 0x44, 0xbf, 0x9a, 0x89, 0x8f, 0x7e, 0x15, 0x46, 0xb7, 0x82, 0xe1, 0xc1, 0xb1, 0x65, 0x6d, - 0xe3, 0x94, 0xe1, 0xfe, 0xee, 0x92, 0x8c, 0xc2, 0x16, 0x86, 0x7e, 0xfc, 0x29, 0x35, 0xd5, 0xea, - 0x9e, 0xaf, 0x08, 0x8b, 0xfd, 0x4a, 0x90, 0xda, 0x42, 0xe5, 0x2b, 0xaf, 0xf6, 0x55, 0x3e, 0x34, - 0x79, 0xf2, 0x12, 0x26, 0x0f, 0xaf, 0x54, 0x05, 0x39, 0xa5, 0x4a, 0xb3, 0x58, 0x28, 0x53, 0xdb, - 0x09, 0x9c, 0x46, 0x2a, 0xc0, 0xa9, 0x20, 0xda, 0x6d, 0xaf, 0x87, 0x0d, 0xc7, 0xb0, 0xda, 0x18, - 0x7d, 0x44, 0x19, 0x87, 0xd9, 0xbb, 0x02, 0xd3, 0x66, 0xdb, 0xb6, 0x9a, 0xe6, 0xf3, 0x83, 0xcb, - 0xe5, 0x92, 0x83, 0xac, 0x13, 0x89, 0xd4, 0xd8, 0x1f, 0x7a, 0xf8, 0xaf, 0x56, 0x83, 0x99, 0xb6, - 0xe1, 0x74, 0x68, 0x10, 0xbe, 0x42, 0xdf, 0x45, 0x4e, 0xb1, 0x84, 0x2a, 0xc1, 0x2f, 0x7a, 0xf4, - 0xb7, 0xd6, 0x10, 0x85, 0x58, 0xec, 0x8b, 0xe6, 0x11, 0x4b, 0x6c, 0x39, 0xfa, 0x49, 0x90, 0xb9, - 0x2f, 0x1d, 0x07, 0x77, 0xc9, 0x1d, 0xf4, 0xb4, 0x87, 0x98, 0xd1, 0xa3, 0x84, 0xb4, 0xcb, 0x03, - 0xa4, 0xa8, 0x43, 0x68, 0x4c, 0x7a, 0x79, 0x40, 0x8a, 0x8b, 0xec, 0x35, 0xf3, 0x1d, 0x45, 0x98, - 0xa7, 0xbd, 0x1a, 0x13, 0x27, 0x7a, 0x29, 0xb9, 0x42, 0xda, 0x7b, 0x08, 0x5f, 0x43, 0xcd, 0xa3, - 0x8f, 0xc9, 0x25, 0x50, 0x2f, 0x87, 0x01, 0x07, 0xfd, 0xc7, 0xb4, 0xfb, 0xf6, 0x01, 0x5f, 0x8b, - 0x94, 0xa7, 0x49, 0xef, 0xdb, 0x27, 0x17, 0x9f, 0x3d, 0x3e, 0x3f, 0xa8, 0x82, 0x5a, 0xee, 0x74, - 0x50, 0xfb, 0xe8, 0x50, 0xdc, 0x02, 0xb3, 0x41, 0x9b, 0x89, 0x62, 0x40, 0xf2, 0x49, 0x69, 0x17, - 0x41, 0x43, 0xd9, 0x94, 0x3b, 0x13, 0xdf, 0x55, 0x48, 0x28, 0x3b, 0x7b, 0x50, 0x3e, 0x33, 0xc5, - 0x1a, 0xcd, 0x92, 0x6d, 0x5f, 0x26, 0x47, 0x65, 0x7e, 0x4e, 0x85, 0xc2, 0x0a, 0xf6, 0xda, 0x7b, - 0xc8, 0x1d, 0x4b, 0x9b, 0x39, 0x70, 0xba, 0x41, 0x9b, 0x39, 0x70, 0xba, 0xc3, 0x82, 0x72, 0xa6, - 0x8d, 0xfe, 0x1c, 0xb0, 0xbd, 0x48, 0x58, 0x9e, 0x74, 0xf4, 0xe7, 0xc4, 0xd2, 0x27, 0x70, 0x08, - 0x2e, 0x0f, 0x0b, 0xe1, 0x0a, 0x18, 0xc5, 0xec, 0x6d, 0xb9, 0xc7, 0xdc, 0x7a, 0xe8, 0x10, 0xbb, - 0x19, 0xfd, 0x61, 0xba, 0x10, 0x6b, 0xa1, 0xcc, 0xc5, 0x9a, 0x67, 0xbc, 0x30, 0x99, 0x22, 0xf8, - 0x9a, 0x1c, 0x83, 0x13, 0x58, 0x01, 0x50, 0x61, 0x9a, 0x30, 0xb4, 0x6c, 0x5e, 0x21, 0xae, 0x87, - 0xc2, 0x42, 0xe5, 0x0b, 0xc6, 0xb2, 0x50, 0x79, 0x9f, 0xb8, 0x50, 0x29, 0x19, 0x31, 0x39, 0x58, - 0xa7, 0x4c, 0xe9, 0x8b, 0xe3, 0xff, 0x3f, 0xf6, 0x65, 0xca, 0x14, 0xbe, 0x38, 0x43, 0xca, 0x9f, - 0x80, 0xeb, 0xe1, 0xf3, 0x58, 0x67, 0x1d, 0x6c, 0xc8, 0xa2, 0xff, 0x7e, 0x0a, 0xf2, 0x17, 0xfc, - 0x87, 0xff, 0x19, 0xdd, 0xa8, 0xf5, 0xaa, 0x31, 0x04, 0x77, 0x78, 0x0e, 0xe4, 0x7d, 0xfa, 0x6c, - 0xda, 0x73, 0x87, 0xdc, 0xee, 0xb0, 0xcf, 0x88, 0x4e, 0xfe, 0xd3, 0xce, 0x42, 0xd1, 0xb5, 0x0f, - 0x9c, 0xb6, 0x6f, 0x7e, 0xfb, 0x1a, 0xc3, 0xde, 0xd2, 0x06, 0x35, 0x15, 0x48, 0x2f, 0x8e, 0xcf, - 0xe5, 0x94, 0xbb, 0x60, 0x49, 0x15, 0x2e, 0x58, 0x4a, 0xb1, 0xff, 0x20, 0xc1, 0x5b, 0xf6, 0x1a, - 0xf1, 0xa7, 0xe4, 0xae, 0xc1, 0xce, 0xb8, 0x60, 0x8f, 0x11, 0xcb, 0x51, 0xd5, 0x21, 0xad, 0xc3, - 0xb8, 0x28, 0xda, 0x30, 0x8e, 0xfc, 0x44, 0x1d, 0xc6, 0x25, 0x78, 0x98, 0xc8, 0x29, 0xf7, 0x22, - 0x73, 0x72, 0x7d, 0x78, 0x9c, 0xe8, 0xe6, 0x05, 0xa5, 0x3f, 0x12, 0x3a, 0x63, 0x74, 0x7e, 0x1d, - 0x19, 0x9d, 0x63, 0x72, 0x7f, 0xfd, 0x0d, 0x95, 0x44, 0xd2, 0x0c, 0x8c, 0x20, 0xf9, 0x8b, 0x92, - 0x52, 0x43, 0xe4, 0x8f, 0xc1, 0x42, 0x1c, 0xe9, 0xf9, 0xd1, 0x43, 0x8b, 0x8b, 0xa2, 0xe3, 0xf8, - 0x9f, 0x74, 0x68, 0x71, 0x59, 0x46, 0xb2, 0x07, 0xf2, 0xa7, 0xe9, 0xc5, 0x64, 0xe5, 0xb6, 0x67, - 0x5e, 0x19, 0x73, 0x4b, 0x13, 0x87, 0x97, 0x94, 0xd1, 0x84, 0x0f, 0x49, 0x88, 0x72, 0x38, 0xe9, - 0x68, 0xc2, 0x72, 0x6c, 0x64, 0x0f, 0xd3, 0x5f, 0x16, 0x7d, 0xe9, 0xb1, 0xb5, 0x9d, 0x9f, 0x61, - 0xab, 0x09, 0xf8, 0xe8, 0x68, 0x9d, 0x87, 0x39, 0x6e, 0xe9, 0x20, 0xb8, 0xf0, 0x46, 0x48, 0x4b, - 0x7b, 0x50, 0x3e, 0x14, 0xd9, 0xd8, 0x17, 0x16, 0x52, 0x2c, 0x18, 0xcb, 0x30, 0x31, 0x91, 0xfb, - 0xe4, 0x82, 0x31, 0x6c, 0x42, 0x58, 0xfd, 0x0a, 0x8f, 0x55, 0x43, 0xc4, 0xea, 0x1e, 0x19, 0x31, - 0xc9, 0x8d, 0x69, 0x52, 0xf3, 0xc6, 0xb7, 0x87, 0x70, 0xe9, 0x02, 0x5c, 0xcf, 0x19, 0x99, 0x8f, - 0xec, 0x11, 0xfb, 0x71, 0xda, 0x1d, 0x36, 0xa9, 0xc9, 0x3e, 0x9e, 0xee, 0x90, 0xcd, 0x06, 0x54, - 0x61, 0x36, 0x90, 0xd2, 0x5f, 0x3f, 0x72, 0x43, 0x0d, 0x98, 0x1b, 0x06, 0x51, 0x7e, 0xcc, 0xfe, - 0xfa, 0x43, 0x39, 0xc8, 0x1e, 0x9c, 0x7f, 0x50, 0x01, 0x56, 0x1d, 0xfb, 0xa0, 0xd7, 0x70, 0x3a, - 0xd8, 0x41, 0x7f, 0x1e, 0x4d, 0x00, 0x7e, 0x68, 0x0c, 0x13, 0x80, 0x4d, 0x80, 0xdd, 0x90, 0x38, - 0xd3, 0xf0, 0xa7, 0xca, 0x99, 0xfb, 0x11, 0x53, 0x3a, 0x47, 0x43, 0xbc, 0xb2, 0xf6, 0x5b, 0x44, - 0x8c, 0x93, 0xfa, 0xac, 0x88, 0xdc, 0x38, 0x27, 0x00, 0xef, 0x0c, 0xb1, 0x6e, 0x09, 0x58, 0x3f, - 0xf7, 0x08, 0x9c, 0x64, 0x8f, 0xf9, 0x3f, 0x4e, 0xc1, 0x2c, 0xdd, 0xee, 0xa3, 0x32, 0xfd, 0x9b, - 0x08, 0xf4, 0x1f, 0x1b, 0x03, 0xe8, 0x5b, 0x30, 0x67, 0x47, 0xd4, 0x69, 0x9f, 0xca, 0x2f, 0xc0, - 0x24, 0xc2, 0xce, 0xf1, 0xa5, 0x0b, 0x64, 0xd0, 0x87, 0x78, 0xe4, 0x75, 0x11, 0xf9, 0xfb, 0x12, - 0xe4, 0xcd, 0x51, 0x1c, 0x27, 0xf4, 0xef, 0x0a, 0xa1, 0xdf, 0x12, 0xa0, 0x2f, 0x1f, 0x85, 0x95, - 0x09, 0x84, 0xeb, 0x57, 0x21, 0x4f, 0x4e, 0xd7, 0xfd, 0x7c, 0x86, 0xf3, 0xfb, 0x73, 0x30, 0x45, - 0x9a, 0x6c, 0x38, 0xef, 0x08, 0x5e, 0xfd, 0x2f, 0xc6, 0x8e, 0x87, 0x9d, 0x70, 0xe5, 0x36, 0x78, - 0xf5, 0x79, 0x08, 0xbc, 0x9a, 0xdd, 0x73, 0x45, 0xba, 0x91, 0x19, 0x26, 0x8c, 0x3c, 0x29, 0xe1, - 0x25, 0x3e, 0xb6, 0xf3, 0x76, 0xa3, 0x4c, 0x4a, 0x86, 0x30, 0x92, 0x3d, 0xf0, 0x7f, 0x9c, 0x87, - 0x73, 0x74, 0x55, 0x69, 0xc5, 0xb1, 0xf7, 0xfb, 0x6e, 0xc7, 0x32, 0x8f, 0xae, 0x0b, 0xb7, 0xc1, - 0x82, 0x27, 0xf8, 0x73, 0x33, 0x9d, 0xe8, 0x4b, 0x45, 0xbf, 0xc7, 0xfb, 0x64, 0x3c, 0x4f, 0x44, - 0x72, 0x29, 0x41, 0x80, 0x71, 0xbc, 0xa7, 0x5e, 0xa8, 0x97, 0x64, 0x94, 0x5b, 0xa4, 0x52, 0x47, - 0x5a, 0xb3, 0x0c, 0x75, 0xaa, 0x20, 0xa3, 0x53, 0xef, 0x0f, 0x75, 0xea, 0x3f, 0x09, 0x3a, 0xb5, - 0x7a, 0x74, 0x91, 0x4c, 0x60, 0xe5, 0x62, 0x01, 0x8a, 0x2b, 0x66, 0xd7, 0xc3, 0x0e, 0xfa, 0x1c, - 0x9b, 0x47, 0xbd, 0x36, 0xc3, 0xee, 0x65, 0x19, 0x8a, 0x3b, 0xa4, 0x34, 0x66, 0x90, 0xdd, 0x29, - 0x87, 0x0d, 0xe5, 0x50, 0x67, 0xff, 0xa6, 0x8d, 0x1d, 0xd7, 0x47, 0x66, 0x6c, 0x13, 0xb0, 0x14, - 0xb1, 0xe3, 0x86, 0xb3, 0x30, 0x91, 0x6b, 0x93, 0x8a, 0x3a, 0xde, 0xf7, 0x47, 0x90, 0xcb, 0xd9, - 0x21, 0x5c, 0x02, 0xd5, 0xec, 0xb8, 0xa4, 0xe9, 0xcd, 0xe8, 0xfe, 0x63, 0x5a, 0x4f, 0x96, 0x7e, - 0x51, 0x51, 0x96, 0x27, 0xed, 0xc9, 0x22, 0xc5, 0x45, 0xf6, 0x98, 0x7d, 0x95, 0xb8, 0x31, 0xf6, - 0xba, 0x46, 0x1b, 0xfb, 0xdc, 0x67, 0x86, 0xda, 0x02, 0x28, 0x66, 0x30, 0xe2, 0x2b, 0x26, 0xdf, - 0x4e, 0x0b, 0x47, 0x68, 0xa7, 0xa3, 0x2e, 0x72, 0x85, 0x32, 0x27, 0x15, 0x3f, 0xb6, 0x45, 0xae, - 0x44, 0x36, 0x26, 0x70, 0x29, 0x66, 0x70, 0xcc, 0x73, 0xa2, 0xad, 0x75, 0xd4, 0x2d, 0x00, 0x26, - 0xac, 0xb1, 0x1d, 0xe9, 0x1c, 0x65, 0x0b, 0x20, 0x9e, 0x87, 0x09, 0xa0, 0xb5, 0xc0, 0xd0, 0xfa, - 0x14, 0x1b, 0x46, 0x33, 0xde, 0x85, 0x73, 0x6d, 0xc7, 0x4b, 0xb7, 0x0b, 0xe7, 0x73, 0xa7, 0x93, - 0xff, 0xd2, 0x1e, 0x0b, 0x12, 0x4f, 0xfd, 0x8e, 0x6b, 0xf8, 0x4c, 0x71, 0x2c, 0x68, 0x18, 0x03, - 0xd9, 0xc3, 0xfb, 0x96, 0x63, 0x1a, 0x3c, 0x47, 0x6d, 0x8e, 0xac, 0x0d, 0x8c, 0x6d, 0xe8, 0x1c, - 0xa5, 0x39, 0xc6, 0xf3, 0x90, 0x3d, 0x5e, 0x7f, 0xcf, 0x0d, 0x9c, 0x6f, 0x9a, 0xe0, 0xc0, 0x19, - 0xb4, 0xcc, 0xc2, 0x88, 0x2d, 0x73, 0xd4, 0xdd, 0x05, 0x26, 0xeb, 0xf1, 0x0d, 0x98, 0xa3, 0xec, - 0x2e, 0x24, 0x30, 0x91, 0x3d, 0xe2, 0x6f, 0x56, 0xa1, 0xd0, 0x9c, 0xfc, 0x78, 0x39, 0xea, 0x5c, - 0x84, 0xc8, 0xaa, 0x39, 0xb6, 0xe1, 0x72, 0x94, 0xb9, 0x48, 0x2c, 0x0b, 0x13, 0x08, 0x0b, 0x7f, - 0x12, 0xe6, 0xc8, 0x84, 0x3b, 0xd8, 0xc4, 0xfb, 0x7b, 0x36, 0x6a, 0xbe, 0x31, 0xc3, 0xb6, 0xfa, - 0x20, 0x4c, 0x07, 0xbb, 0x43, 0x6c, 0xe4, 0x5c, 0x94, 0x6b, 0x9f, 0x01, 0x97, 0x7a, 0xf8, 0xff, - 0x91, 0xb6, 0xda, 0xc7, 0xbe, 0x13, 0x38, 0xea, 0x56, 0xfb, 0xb1, 0xee, 0x06, 0xfe, 0x6e, 0x34, - 0xa2, 0xfe, 0xe7, 0xec, 0x30, 0xef, 0xdf, 0x25, 0xcc, 0x0f, 0xd8, 0x25, 0xfc, 0x08, 0x8f, 0x65, - 0x53, 0xc4, 0xf2, 0x7e, 0x59, 0x11, 0x8e, 0x71, 0xac, 0x7d, 0x77, 0x08, 0xe7, 0x05, 0x01, 0xce, - 0xa5, 0x23, 0xf1, 0x32, 0x81, 0x63, 0x79, 0xf9, 0x68, 0xcc, 0xfd, 0x68, 0x86, 0xed, 0xb8, 0xcf, - 0xe7, 0x3f, 0x7f, 0xc8, 0xe7, 0x5f, 0x68, 0xe9, 0x85, 0x23, 0xb6, 0xf4, 0x8f, 0xf2, 0xda, 0xd1, - 0x12, 0xb5, 0xe3, 0x39, 0xf2, 0x88, 0x8c, 0x6f, 0x64, 0x7e, 0x4f, 0xa8, 0x1e, 0x17, 0x05, 0xf5, - 0xa8, 0x1c, 0x8d, 0x99, 0xec, 0xf5, 0xe3, 0x37, 0x83, 0x09, 0xed, 0x31, 0xb7, 0xf7, 0x51, 0x37, - 0x22, 0x05, 0x21, 0x8e, 0x6d, 0xe4, 0x1e, 0x65, 0x23, 0x72, 0x18, 0x27, 0x13, 0x88, 0x14, 0x36, - 0x0f, 0xb3, 0x84, 0xa7, 0x8b, 0x66, 0x67, 0x17, 0x7b, 0xe8, 0xa7, 0xa8, 0x07, 0x5c, 0x10, 0x97, - 0x71, 0x4c, 0xc1, 0x73, 0xe2, 0x4e, 0x63, 0xa6, 0xf5, 0x17, 0xa0, 0x4c, 0x2e, 0x72, 0x0c, 0x4e, - 0x3a, 0xbe, 0xdf, 0x50, 0x0e, 0xb2, 0x87, 0xec, 0x43, 0xd4, 0x99, 0x63, 0xdd, 0xb8, 0x66, 0x1f, - 0x78, 0xe8, 0x45, 0x63, 0xe8, 0xa0, 0x97, 0xa0, 0xd8, 0x25, 0xd4, 0x98, 0xd3, 0x7f, 0xf2, 0x74, - 0x87, 0x89, 0x80, 0x96, 0xaf, 0xb3, 0x3f, 0xd3, 0x7a, 0xfe, 0x47, 0x72, 0xa4, 0x74, 0x26, 0xed, - 0xf9, 0x3f, 0xa4, 0xfc, 0x89, 0xdc, 0x00, 0x33, 0xed, 0x97, 0x6e, 0xee, 0x9b, 0xde, 0x98, 0xe2, - 0x0b, 0x74, 0x7d, 0x5a, 0x41, 0x7c, 0x01, 0xf2, 0x92, 0xf6, 0x3c, 0x23, 0x27, 0x15, 0xff, 0xf7, - 0x49, 0x9f, 0x67, 0x4c, 0x2e, 0x3e, 0x7b, 0x4c, 0x7e, 0x84, 0xb6, 0xac, 0x0b, 0xd4, 0xb5, 0x33, - 0x43, 0xaf, 0xd1, 0x91, 0x1b, 0x0b, 0x65, 0xed, 0xf8, 0x1a, 0xcb, 0xc0, 0xf2, 0xb3, 0x07, 0xe6, - 0xe7, 0xbe, 0x11, 0x0a, 0xcb, 0xf8, 0xd2, 0xc1, 0x2e, 0xba, 0x0f, 0xa6, 0x5b, 0x0e, 0xc6, 0x35, - 0x6b, 0xc7, 0xf6, 0xa5, 0xeb, 0xf9, 0xcf, 0x01, 0x24, 0xec, 0xcd, 0xc7, 0x63, 0x0f, 0x1b, 0x9d, - 0xe8, 0x74, 0x53, 0xf0, 0x8a, 0x5e, 0xa5, 0x40, 0xbe, 0xe9, 0x19, 0x1e, 0x9a, 0x09, 0xb1, 0x45, - 0x2f, 0xe2, 0xb1, 0xb8, 0x4f, 0xc4, 0xe2, 0x36, 0x41, 0x16, 0x84, 0x83, 0x45, 0xff, 0xff, 0x18, - 0x00, 0x10, 0x4c, 0x3f, 0xe2, 0xda, 0x96, 0x9f, 0x23, 0x38, 0x80, 0x17, 0xbc, 0xa3, 0xd7, 0x84, - 0xe2, 0x7e, 0x40, 0x10, 0xf7, 0x93, 0xe5, 0x8a, 0x98, 0xc0, 0x4a, 0x9b, 0x02, 0x33, 0xbe, 0x68, - 0xd7, 0xb0, 0xd1, 0x71, 0xd1, 0x37, 0x44, 0xca, 0x1f, 0x23, 0x66, 0xf4, 0x01, 0xe9, 0x50, 0x91, - 0xb4, 0x56, 0x21, 0xf1, 0x78, 0x7f, 0x81, 0x20, 0x54, 0x86, 0x22, 0x86, 0xca, 0xb8, 0x0b, 0xf2, - 0xa6, 0xb5, 0x63, 0x33, 0xef, 0xb5, 0x1b, 0x63, 0x68, 0xfb, 0x3a, 0xa1, 0x93, 0x8c, 0x92, 0x71, - 0x24, 0x93, 0xd9, 0x9a, 0xc8, 0x95, 0x6c, 0x79, 0xbf, 0x74, 0xf4, 0x7f, 0x0d, 0x15, 0xb6, 0xa6, - 0x41, 0xbe, 0x67, 0x78, 0x7b, 0xac, 0x68, 0xf2, 0xec, 0xdb, 0xc8, 0x07, 0x96, 0x61, 0xd9, 0xd6, - 0xb5, 0x7d, 0xf3, 0xf9, 0xe1, 0xcd, 0xaf, 0x42, 0x9a, 0xcf, 0xf9, 0x2e, 0xb6, 0xb0, 0x63, 0x78, - 0xb8, 0x79, 0x65, 0x97, 0xcc, 0xb1, 0xa6, 0x75, 0x3e, 0x29, 0xb5, 0xfe, 0xfb, 0x1c, 0xc7, 0xeb, - 0xff, 0x8e, 0xd9, 0xc5, 0x24, 0x8e, 0x10, 0xd3, 0xff, 0xe0, 0x3d, 0x95, 0xfe, 0x0f, 0x28, 0x22, - 0x7b, 0x34, 0xfe, 0x55, 0x81, 0xb9, 0xa6, 0xaf, 0x70, 0xcd, 0x83, 0xfd, 0x7d, 0xc3, 0xb9, 0x86, - 0x9e, 0x10, 0xa1, 0xc2, 0xa9, 0x66, 0x4e, 0x50, 0x4d, 0xf4, 0x1b, 0xd2, 0x97, 0x1e, 0xb3, 0xa6, - 0xcd, 0x95, 0x90, 0xba, 0x1d, 0x3c, 0x0d, 0x0a, 0xbe, 0x7a, 0x07, 0xfe, 0x7c, 0x89, 0x0d, 0x81, - 0xe6, 0x94, 0x8c, 0xb7, 0x34, 0x94, 0xb7, 0x09, 0xc4, 0x7a, 0x50, 0xe0, 0x64, 0xd3, 0x33, 0xda, - 0x97, 0x57, 0x6d, 0xc7, 0x3e, 0xf0, 0x4c, 0x0b, 0xbb, 0xe8, 0x71, 0x11, 0x02, 0x81, 0xfe, 0xe7, - 0x22, 0xfd, 0x47, 0xff, 0x96, 0x93, 0x1d, 0x45, 0xc3, 0x6e, 0x95, 0x27, 0x1f, 0x13, 0x3e, 0x49, - 0x6e, 0x5c, 0x94, 0xa1, 0x98, 0xbd, 0xd0, 0xde, 0xa4, 0x42, 0xa9, 0xfa, 0x68, 0xcf, 0x76, 0xbc, - 0x75, 0xbb, 0x6d, 0x74, 0x5d, 0xcf, 0x76, 0x30, 0x6a, 0x24, 0x4a, 0xcd, 0xef, 0x61, 0x3a, 0x76, - 0x3b, 0x1a, 0x1c, 0xd9, 0x1b, 0xaf, 0x76, 0xaa, 0xa8, 0xe3, 0x1f, 0x92, 0xde, 0x65, 0xa4, 0x52, - 0xe9, 0xe7, 0x28, 0x46, 0xcf, 0x07, 0x75, 0x69, 0xe9, 0x5c, 0xf1, 0xe5, 0x76, 0x1e, 0xa5, 0x98, - 0x9a, 0xc0, 0x52, 0xb9, 0x02, 0xf3, 0xcd, 0x83, 0x4b, 0x21, 0x11, 0x97, 0x37, 0x42, 0x5e, 0x27, - 0x1d, 0x23, 0x81, 0x29, 0x1e, 0x4f, 0x28, 0x46, 0xbe, 0xb7, 0xc2, 0xbc, 0xcb, 0x67, 0x63, 0x78, - 0x8b, 0x89, 0x92, 0xb1, 0x11, 0x86, 0x97, 0x9a, 0xbd, 0x00, 0xdf, 0xa3, 0xc0, 0x7c, 0xa3, 0x87, - 0x2d, 0xdc, 0xa1, 0x3e, 0x76, 0x82, 0x00, 0x5f, 0x95, 0x52, 0x80, 0x02, 0xa1, 0x18, 0x01, 0x46, - 0xfe, 0xb0, 0xcb, 0x81, 0xf0, 0xa2, 0x84, 0x54, 0x82, 0x4b, 0x2a, 0x2d, 0x7b, 0xc1, 0x7d, 0x56, - 0x81, 0x59, 0xfd, 0xc0, 0xda, 0x74, 0x6c, 0x7f, 0x34, 0x76, 0xd0, 0xfd, 0x51, 0x07, 0x71, 0x27, - 0x9c, 0xea, 0x1c, 0x38, 0x64, 0xfd, 0xa9, 0x66, 0x35, 0x71, 0xdb, 0xb6, 0x3a, 0x2e, 0xa9, 0x47, - 0x41, 0x3f, 0xfc, 0xe1, 0xde, 0xfc, 0x4b, 0xfe, 0x4a, 0xcd, 0xa1, 0x97, 0x4a, 0x07, 0x62, 0xa1, - 0x95, 0xe7, 0x8a, 0x96, 0xef, 0x09, 0x24, 0xc3, 0xad, 0x0c, 0x2b, 0x21, 0x7b, 0xe1, 0x7e, 0x4a, - 0x01, 0xad, 0xdc, 0x6e, 0xdb, 0x07, 0x96, 0xd7, 0xc4, 0x5d, 0xdc, 0xf6, 0x5a, 0x8e, 0xd1, 0xc6, - 0xbc, 0xfd, 0x5c, 0x02, 0xb5, 0x63, 0x3a, 0xac, 0x0f, 0xf6, 0x1f, 0x99, 0x1c, 0x5f, 0x25, 0xbd, - 0xe3, 0x48, 0x6b, 0x79, 0xb8, 0x94, 0x14, 0xe2, 0x94, 0xdb, 0x57, 0x94, 0x2c, 0x28, 0x7b, 0xa9, - 0x7e, 0x54, 0x81, 0x99, 0xa0, 0xc7, 0xde, 0x95, 0x11, 0xe6, 0x8f, 0xa4, 0x9c, 0x8c, 0x84, 0xc4, - 0x53, 0xc8, 0xf0, 0x1d, 0x29, 0x66, 0x15, 0x71, 0xf4, 0xd3, 0x89, 0xae, 0x9c, 0x5e, 0x74, 0xfe, - 0x6b, 0xbd, 0xb1, 0xbd, 0xd2, 0x58, 0x5f, 0xae, 0xea, 0x25, 0x15, 0x7d, 0x4e, 0x81, 0xfc, 0xa6, - 0x69, 0xed, 0xf2, 0xf1, 0xb2, 0x4e, 0xfb, 0x76, 0x64, 0x07, 0x3f, 0xca, 0x5a, 0x3a, 0x7d, 0xd1, - 0xee, 0x86, 0xd3, 0xd6, 0xc1, 0xfe, 0x25, 0xec, 0x34, 0x76, 0xc8, 0x28, 0xeb, 0xb6, 0xec, 0x26, - 0xb6, 0xa8, 0x11, 0x5a, 0xd0, 0x07, 0x7e, 0x13, 0x4d, 0x30, 0x89, 0xc9, 0x83, 0xcf, 0x49, 0x8c, - 0xc4, 0x43, 0xa6, 0x14, 0x8e, 0xa9, 0x54, 0xd3, 0x86, 0x01, 0xc4, 0xb3, 0xd7, 0xd4, 0xdf, 0x2a, - 0xc0, 0x99, 0xb2, 0x75, 0x8d, 0xd8, 0x14, 0xb4, 0x83, 0xaf, 0xec, 0x19, 0xd6, 0x2e, 0x26, 0x03, - 0x44, 0x28, 0x71, 0x3e, 0x80, 0x7c, 0x4e, 0x0c, 0x20, 0xaf, 0xe9, 0x30, 0x65, 0x3b, 0x1d, 0xec, - 0x2c, 0x5d, 0x23, 0x3c, 0xf5, 0x2f, 0x3b, 0xb3, 0x36, 0x39, 0xa8, 0x88, 0x45, 0x46, 0x7e, 0xb1, - 0x41, 0xff, 0xd7, 0x03, 0x42, 0xe7, 0xef, 0x84, 0x29, 0x96, 0xa6, 0xcd, 0xc1, 0x74, 0x43, 0x5f, - 0xae, 0xea, 0xdb, 0xb5, 0xe5, 0xd2, 0x09, 0xed, 0x3a, 0x38, 0x59, 0x6b, 0x55, 0xf5, 0x72, 0xab, - 0xd6, 0xa8, 0x6f, 0x93, 0xf4, 0x52, 0x0e, 0xbd, 0x38, 0x2f, 0xeb, 0xd9, 0x9b, 0xcc, 0xcc, 0x20, - 0x58, 0x75, 0x98, 0x6a, 0xd3, 0x0c, 0x64, 0x08, 0x9d, 0x4d, 0x55, 0x3b, 0x46, 0x90, 0x26, 0xe8, - 0x01, 0x21, 0xed, 0x66, 0x80, 0xab, 0x8e, 0x6d, 0xed, 0x46, 0x67, 0xda, 0xa6, 0x75, 0x2e, 0x05, - 0xbd, 0x28, 0x07, 0x45, 0xfa, 0x0f, 0xb9, 0x30, 0x83, 0x3c, 0x45, 0x82, 0x0f, 0xde, 0x7d, 0x8b, - 0x97, 0xc8, 0x2b, 0x9a, 0x68, 0xb1, 0x57, 0x5f, 0x17, 0xa9, 0x0c, 0xa8, 0x25, 0xcc, 0xaa, 0x72, - 0x17, 0x14, 0xe9, 0xbf, 0xcc, 0xeb, 0x20, 0x3e, 0xf8, 0x25, 0xcd, 0x26, 0xe9, 0xa7, 0x2c, 0x2f, - 0xd3, 0xec, 0xb5, 0xf9, 0x57, 0x15, 0x98, 0xae, 0x63, 0xaf, 0xb2, 0x87, 0xdb, 0x97, 0xd1, 0x93, - 0xc4, 0x05, 0xd0, 0xae, 0x89, 0x2d, 0xef, 0xe1, 0xfd, 0x6e, 0xb8, 0x00, 0x1a, 0x24, 0xa0, 0xef, - 0xe5, 0x3b, 0xdf, 0xe7, 0x8a, 0xfa, 0x73, 0xc7, 0x80, 0xba, 0x06, 0x25, 0xc4, 0xa8, 0xcc, 0x59, - 0x28, 0x3a, 0xd8, 0x3d, 0xe8, 0x06, 0x8b, 0x68, 0xec, 0x0d, 0xbd, 0x3e, 0x14, 0x67, 0x45, 0x10, - 0xe7, 0x5d, 0xf2, 0x45, 0x4c, 0x20, 0x9a, 0x66, 0x1e, 0xa6, 0x6a, 0x96, 0xe9, 0x99, 0x46, 0x17, - 0xbd, 0x34, 0x0f, 0xf3, 0x4d, 0xec, 0x6d, 0x1a, 0x8e, 0xb1, 0x8f, 0x3d, 0xec, 0xb8, 0xe8, 0x2b, - 0x62, 0x9f, 0xd0, 0xeb, 0x1a, 0xde, 0x8e, 0xed, 0xec, 0x07, 0xaa, 0x19, 0xbc, 0xfb, 0xaa, 0x79, - 0x05, 0x3b, 0x6e, 0xc4, 0x57, 0xf0, 0xea, 0x7f, 0xb9, 0x6a, 0x3b, 0x97, 0xfd, 0x41, 0x90, 0x4d, - 0xd3, 0xd8, 0xab, 0x4f, 0xaf, 0x6b, 0xef, 0xae, 0xe3, 0x2b, 0x38, 0x08, 0xd6, 0x15, 0xbe, 0xfb, - 0x73, 0x81, 0x8e, 0x5d, 0xb7, 0x3d, 0xbf, 0xd3, 0x5e, 0xb7, 0x77, 0x69, 0x34, 0xd3, 0x69, 0x5d, - 0x4c, 0x8c, 0x72, 0x19, 0x57, 0x30, 0xc9, 0x55, 0xe4, 0x73, 0xb1, 0x44, 0x6d, 0x11, 0xb4, 0xf0, - 0xb7, 0x16, 0xee, 0xe2, 0x7d, 0xec, 0x39, 0xd7, 0xc8, 0xa5, 0x05, 0xd3, 0xfa, 0x80, 0x2f, 0x6c, - 0x80, 0x96, 0x9f, 0xac, 0x33, 0xe9, 0x2d, 0x0a, 0x92, 0x3b, 0xd2, 0x64, 0x5d, 0x86, 0xe2, 0x44, - 0x2e, 0x65, 0x52, 0x7d, 0x6b, 0xe6, 0x27, 0x54, 0xc8, 0x93, 0xc1, 0xf3, 0xcd, 0x39, 0x61, 0x85, - 0x69, 0x1f, 0xbb, 0xae, 0xb1, 0x8b, 0x83, 0x15, 0x26, 0xf6, 0xaa, 0xdd, 0x03, 0x85, 0x2e, 0xc1, - 0x94, 0x0e, 0x0e, 0x4f, 0x10, 0x6a, 0xe6, 0x1b, 0x18, 0x3e, 0xad, 0x70, 0x24, 0x20, 0x70, 0xeb, - 0xf4, 0x8f, 0xf3, 0x0f, 0x42, 0x81, 0xc2, 0x3f, 0x03, 0x85, 0xe5, 0xea, 0xd2, 0xd6, 0x6a, 0xe9, - 0x84, 0xff, 0x18, 0xf0, 0x37, 0x03, 0x85, 0x95, 0x72, 0xab, 0xbc, 0x5e, 0x52, 0xfc, 0x7a, 0xd4, - 0xea, 0x2b, 0x8d, 0x92, 0xea, 0x27, 0x6e, 0x96, 0xeb, 0xb5, 0x4a, 0x29, 0xaf, 0xcd, 0xc2, 0xd4, - 0xc5, 0xb2, 0x5e, 0xaf, 0xd5, 0x57, 0x4b, 0x05, 0xf4, 0x97, 0x3c, 0x7e, 0xf7, 0x8a, 0xf8, 0xdd, - 0x1a, 0xc7, 0xd3, 0x20, 0xc8, 0x7e, 0x32, 0x84, 0xec, 0x7e, 0x01, 0xb2, 0x6f, 0x94, 0x21, 0x32, - 0x01, 0x77, 0xa6, 0x22, 0x4c, 0x6d, 0x3a, 0x76, 0x1b, 0xbb, 0x2e, 0xfa, 0x51, 0x05, 0x8a, 0x15, - 0xc3, 0x6a, 0xe3, 0x2e, 0xba, 0x21, 0x82, 0x8a, 0xba, 0x8a, 0xe6, 0x02, 0x57, 0x51, 0xf4, 0x0f, - 0x39, 0xd9, 0xde, 0x8f, 0xd1, 0x5d, 0xa4, 0x34, 0x63, 0xe4, 0x23, 0xd7, 0xcb, 0x25, 0x92, 0x9a, - 0xc0, 0xc5, 0x2d, 0x0a, 0xcc, 0xb0, 0xd5, 0x80, 0x4b, 0x98, 0x9f, 0x87, 0x7f, 0x25, 0x27, 0x3b, - 0x39, 0x0c, 0x6a, 0x10, 0x92, 0x89, 0x91, 0x87, 0xdc, 0x44, 0x70, 0x18, 0xb5, 0x09, 0x6c, 0x1e, - 0x2a, 0x30, 0xbb, 0x65, 0xb9, 0x83, 0x84, 0x22, 0x1f, 0xe5, 0x3d, 0xa8, 0x06, 0x47, 0xe8, 0x48, - 0x51, 0xde, 0x87, 0xd3, 0xcb, 0x5e, 0x30, 0x5f, 0xc9, 0xc1, 0xe9, 0x55, 0x6c, 0x61, 0xc7, 0x6c, - 0xd3, 0x1a, 0x04, 0x92, 0xb8, 0x5f, 0x94, 0xc4, 0x93, 0x04, 0xce, 0x07, 0xfd, 0x21, 0x4a, 0xe0, - 0xb5, 0xa1, 0x04, 0x9e, 0x2b, 0x48, 0xe0, 0x4e, 0x49, 0x3a, 0x13, 0xb8, 0xad, 0x7b, 0x06, 0xe6, - 0xea, 0xb6, 0x67, 0xee, 0x98, 0x6d, 0xea, 0x83, 0xf6, 0xe3, 0x2a, 0xe4, 0xd7, 0x4d, 0xd7, 0x43, - 0xe5, 0xa8, 0x3b, 0xb9, 0x05, 0x66, 0x4d, 0xab, 0xdd, 0x3d, 0xe8, 0x60, 0x1d, 0x1b, 0xb4, 0x5f, - 0x99, 0xd6, 0xf9, 0xa4, 0x68, 0x6b, 0xdf, 0x67, 0x4b, 0x0d, 0xb6, 0xf6, 0x3f, 0x21, 0xbd, 0x0c, - 0xc3, 0xb3, 0x40, 0xc2, 0x1d, 0xc6, 0xd8, 0x5d, 0x65, 0x98, 0xb7, 0xb8, 0xac, 0x81, 0xc1, 0xde, - 0x1f, 0xee, 0x9e, 0x27, 0xa7, 0x8b, 0x7f, 0xa0, 0xf7, 0x49, 0x35, 0xd6, 0x61, 0x0c, 0xa5, 0x43, - 0x66, 0x65, 0x84, 0x49, 0xb2, 0x06, 0x0b, 0xb5, 0x7a, 0xab, 0xaa, 0xd7, 0xcb, 0xeb, 0x2c, 0x8b, - 0x8a, 0xfe, 0x55, 0x81, 0x82, 0x8e, 0x7b, 0xdd, 0x6b, 0x7c, 0x3c, 0x63, 0xe6, 0x28, 0x9e, 0x0b, - 0x1d, 0xc5, 0xb5, 0x15, 0x00, 0xa3, 0xed, 0x17, 0x4c, 0x2e, 0x7c, 0x52, 0x06, 0x46, 0xc9, 0x14, - 0x2a, 0x58, 0x0e, 0x73, 0xeb, 0xdc, 0x9f, 0xe8, 0x65, 0xd2, 0x3b, 0x47, 0x02, 0x35, 0xc2, 0x61, - 0x4c, 0x9f, 0xf0, 0x7e, 0xa9, 0xcd, 0x9e, 0xa1, 0xe4, 0x8e, 0x47, 0xfc, 0x9f, 0x57, 0x20, 0xdf, - 0xf2, 0x7b, 0x4b, 0xae, 0xe3, 0xfc, 0xed, 0xd1, 0x74, 0xdc, 0x27, 0x13, 0xa3, 0xe3, 0x0f, 0xc0, - 0x1c, 0xaf, 0xb1, 0xcc, 0x55, 0x22, 0x51, 0xc5, 0x85, 0x1f, 0x46, 0xd1, 0xf0, 0x01, 0xec, 0x1c, - 0x8f, 0x88, 0x3f, 0xf6, 0x64, 0x80, 0x0d, 0xbc, 0x7f, 0x09, 0x3b, 0xee, 0x9e, 0xd9, 0x43, 0x7f, - 0xad, 0xc2, 0xcc, 0x2a, 0xf6, 0x9a, 0x9e, 0xe1, 0x1d, 0xb8, 0x7d, 0xdb, 0x9d, 0x96, 0x5d, 0x31, - 0xda, 0x7b, 0x98, 0x75, 0x47, 0xc1, 0x2b, 0x7a, 0x97, 0x2a, 0xeb, 0x4f, 0x14, 0x95, 0xb3, 0x18, - 0x96, 0x11, 0x83, 0xc9, 0x53, 0x20, 0xdf, 0x31, 0x3c, 0x83, 0x61, 0x71, 0x43, 0x1f, 0x16, 0x11, - 0x21, 0x9d, 0x64, 0x43, 0x6f, 0x53, 0x64, 0x1c, 0x8a, 0x24, 0xca, 0x4f, 0x07, 0xc2, 0xfb, 0x72, - 0x23, 0xa0, 0x70, 0x0a, 0xe6, 0xeb, 0x8d, 0xd6, 0xf6, 0x7a, 0x63, 0x75, 0xb5, 0xea, 0xa7, 0x96, - 0x54, 0xed, 0x2c, 0x68, 0x9b, 0xe5, 0x87, 0x37, 0xaa, 0xf5, 0xd6, 0x76, 0xbd, 0xb1, 0x5c, 0x65, - 0x7f, 0xe6, 0xb5, 0x93, 0x30, 0x5b, 0x29, 0x57, 0xd6, 0x82, 0x84, 0x82, 0x76, 0x0e, 0x4e, 0x6f, - 0x54, 0x37, 0x96, 0xaa, 0x7a, 0x73, 0xad, 0xb6, 0xb9, 0xed, 0x93, 0x59, 0x69, 0x6c, 0xd5, 0x97, - 0x4b, 0x45, 0x0d, 0xc1, 0x59, 0xee, 0xcb, 0x45, 0xbd, 0x51, 0x5f, 0xdd, 0x6e, 0xb6, 0xca, 0xad, - 0x6a, 0x69, 0x4a, 0xbb, 0x0e, 0x4e, 0x56, 0xca, 0x75, 0x92, 0xbd, 0xd2, 0xa8, 0xd7, 0xab, 0x95, - 0x56, 0x69, 0x1a, 0xfd, 0x5b, 0x1e, 0x66, 0x6b, 0x6e, 0xdd, 0xd8, 0xc7, 0x17, 0x8c, 0xae, 0xd9, - 0x41, 0x2f, 0xe5, 0x66, 0x1e, 0xb7, 0xc2, 0xbc, 0x43, 0x1f, 0x71, 0xa7, 0x65, 0x62, 0x8a, 0xe6, - 0xbc, 0x2e, 0x26, 0xfa, 0x73, 0x72, 0x8b, 0x10, 0x08, 0xe6, 0xe4, 0xf4, 0x4d, 0x5b, 0x02, 0xa0, - 0x4f, 0xad, 0xe8, 0xea, 0xd1, 0xf3, 0xfd, 0xad, 0xc9, 0xd8, 0xc7, 0x2e, 0x76, 0xae, 0x98, 0x6d, - 0x1c, 0xe4, 0xd4, 0xb9, 0xbf, 0xd0, 0x17, 0x54, 0xd9, 0xfd, 0x45, 0x0e, 0x54, 0xae, 0x3a, 0x31, - 0xbd, 0xe1, 0xf7, 0xa9, 0x32, 0xbb, 0x83, 0x52, 0x24, 0xd3, 0x69, 0xca, 0x2b, 0x94, 0xd1, 0x96, - 0x6d, 0x5b, 0x8d, 0xc6, 0x76, 0x73, 0xad, 0xa1, 0xb7, 0x4a, 0xaa, 0x36, 0x07, 0xd3, 0xfe, 0xeb, - 0x7a, 0xa3, 0xbe, 0x5a, 0xca, 0x6b, 0x67, 0xe0, 0xd4, 0x5a, 0xb9, 0xb9, 0x5d, 0xab, 0x5f, 0x28, - 0xaf, 0xd7, 0x96, 0xb7, 0x2b, 0x6b, 0x65, 0xbd, 0x59, 0x2a, 0x68, 0x37, 0xc0, 0x99, 0x56, 0xad, - 0xaa, 0x6f, 0xaf, 0x54, 0xcb, 0xad, 0x2d, 0xbd, 0xda, 0xdc, 0xae, 0x37, 0xb6, 0xeb, 0xe5, 0x8d, - 0x6a, 0xa9, 0xe8, 0x37, 0x7f, 0xf2, 0x29, 0x52, 0x9b, 0xa9, 0xc3, 0xca, 0x38, 0x1d, 0xa3, 0x8c, - 0x33, 0xfd, 0xca, 0x08, 0xbc, 0x5a, 0xe9, 0xd5, 0x66, 0x55, 0xbf, 0x50, 0x2d, 0xcd, 0x0e, 0xd2, - 0xb5, 0x39, 0xed, 0x34, 0x94, 0x7c, 0x1e, 0xb6, 0x6b, 0xcd, 0x20, 0xe7, 0x72, 0x69, 0x1e, 0x7d, - 0xb4, 0x08, 0x67, 0x75, 0xbc, 0x6b, 0xba, 0x1e, 0x76, 0x36, 0x8d, 0x6b, 0xfb, 0xd8, 0xf2, 0x82, - 0x4e, 0xfe, 0x9f, 0x53, 0x2b, 0xe3, 0x06, 0xcc, 0xf7, 0x28, 0x8d, 0x0d, 0xec, 0xed, 0xd9, 0x1d, - 0x36, 0x0a, 0x3f, 0x29, 0xb6, 0xe7, 0x58, 0xdc, 0xe4, 0xb3, 0xeb, 0xe2, 0xdf, 0x9c, 0x6e, 0xab, - 0x09, 0xba, 0x9d, 0x1f, 0x45, 0xb7, 0xb5, 0x9b, 0x60, 0xe6, 0xc0, 0xc5, 0x4e, 0x75, 0xdf, 0x30, - 0xbb, 0xc1, 0xd5, 0x91, 0x61, 0x02, 0x7a, 0x7b, 0x5e, 0xf6, 0xc4, 0x0a, 0x57, 0x97, 0xc1, 0x62, - 0x8c, 0xe9, 0x5b, 0x6f, 0x06, 0x60, 0x95, 0xdd, 0x72, 0xba, 0x4c, 0x59, 0xb9, 0x14, 0x9f, 0xbf, - 0x4b, 0x66, 0xb7, 0x6b, 0x5a, 0xbb, 0xe1, 0xbe, 0x7f, 0x94, 0x80, 0x5e, 0xa1, 0xca, 0x9c, 0x60, - 0x49, 0xcb, 0x5b, 0xba, 0xd6, 0xf4, 0x32, 0x65, 0xc2, 0xfd, 0xee, 0xe1, 0xa6, 0x53, 0xd4, 0x4a, - 0x30, 0x47, 0xd2, 0x58, 0x0b, 0x2c, 0x4d, 0xf9, 0x7d, 0x70, 0x40, 0x6e, 0xa3, 0xda, 0x5a, 0x6b, - 0x2c, 0x87, 0xdf, 0xa6, 0x7d, 0x92, 0x3e, 0x33, 0xe5, 0xfa, 0xc3, 0xa4, 0x35, 0xce, 0x68, 0x8f, - 0x83, 0x1b, 0xb8, 0x0e, 0xbb, 0xbc, 0xae, 0x57, 0xcb, 0xcb, 0x0f, 0x6f, 0x57, 0x9f, 0x57, 0x6b, - 0xb6, 0x9a, 0x62, 0xe3, 0x0a, 0xda, 0xd1, 0xac, 0xcf, 0x6f, 0x75, 0xa3, 0x5c, 0x5b, 0x67, 0xfd, - 0xfb, 0x4a, 0x43, 0xdf, 0x28, 0xb7, 0x4a, 0x73, 0xe8, 0x27, 0x54, 0x28, 0xad, 0x62, 0x6f, 0xd3, - 0x76, 0x3c, 0xa3, 0xbb, 0x6e, 0x5a, 0x97, 0xb7, 0x9c, 0xae, 0x30, 0xd9, 0x94, 0x0e, 0xd3, 0x21, - 0x0e, 0x91, 0x02, 0xc1, 0xf8, 0x1d, 0xf1, 0x1e, 0xc9, 0x16, 0x29, 0x53, 0x94, 0x80, 0x5e, 0xa0, - 0xc8, 0x2c, 0x77, 0xcb, 0x97, 0x9a, 0x4e, 0x4f, 0x5e, 0x38, 0xe9, 0xf1, 0x79, 0x00, 0x6a, 0x45, - 0xf4, 0x92, 0x3c, 0x4c, 0xaf, 0x98, 0x96, 0xd1, 0x35, 0x9f, 0x2f, 0x44, 0xc7, 0x8c, 0xfa, 0x98, - 0x5c, 0x42, 0x1f, 0xa3, 0x8c, 0x34, 0x7e, 0xfe, 0xb0, 0x2a, 0xbb, 0xbc, 0xc0, 0xc9, 0x3e, 0x60, - 0x32, 0x66, 0xf0, 0xfc, 0xa0, 0x22, 0xb3, 0xbc, 0x30, 0x9c, 0x5e, 0x3a, 0x0c, 0x3f, 0xfe, 0xef, - 0xc3, 0xc6, 0xea, 0x6b, 0xdf, 0xd3, 0x83, 0x54, 0x61, 0x06, 0xfd, 0x81, 0x0a, 0x68, 0x15, 0x7b, - 0x17, 0xb0, 0x13, 0x4e, 0x05, 0x48, 0xaf, 0xcf, 0xec, 0x6d, 0xae, 0xc9, 0xbe, 0x99, 0x07, 0xf0, - 0xa2, 0x08, 0x60, 0x39, 0xa1, 0xf1, 0xc4, 0x90, 0x8e, 0x69, 0xbc, 0x35, 0x28, 0xba, 0xe4, 0x3b, - 0x53, 0xb3, 0xa7, 0xc5, 0x0f, 0x97, 0x84, 0x18, 0x4f, 0x9d, 0x12, 0xd6, 0x19, 0x01, 0xf4, 0xd5, - 0x70, 0x12, 0xf4, 0xad, 0x82, 0x76, 0xac, 0x1c, 0x99, 0xd9, 0x74, 0xfa, 0xe2, 0x64, 0xab, 0x2e, - 0x83, 0xec, 0x1b, 0xf4, 0xc1, 0x02, 0x9c, 0x1e, 0x54, 0x1d, 0xf4, 0x4b, 0x39, 0x61, 0x87, 0x1d, - 0x93, 0x21, 0x3f, 0xc7, 0x36, 0x10, 0xfd, 0x17, 0xed, 0x19, 0x70, 0x26, 0x5c, 0x86, 0x6b, 0xd9, - 0x75, 0x7c, 0xd5, 0xed, 0x62, 0xcf, 0xc3, 0x0e, 0xa9, 0xda, 0xb4, 0x3e, 0xf8, 0xa3, 0xf6, 0x2c, - 0xb8, 0xde, 0xb4, 0x5c, 0xb3, 0x83, 0x9d, 0x96, 0xd9, 0x73, 0xcb, 0x56, 0xa7, 0x75, 0xe0, 0xd9, - 0x8e, 0x69, 0xb0, 0x8b, 0x0e, 0xa7, 0xf5, 0xb8, 0xcf, 0xda, 0x1d, 0x50, 0x32, 0xdd, 0x86, 0x75, - 0xc9, 0x36, 0x9c, 0x8e, 0x69, 0xed, 0xae, 0x9b, 0xae, 0xc7, 0x3c, 0x80, 0x0f, 0xa5, 0xa3, 0xbf, - 0x51, 0x65, 0x0f, 0xd3, 0x0d, 0x81, 0x35, 0xa6, 0x43, 0xf9, 0x5e, 0x55, 0xe6, 0x78, 0x5c, 0x3a, - 0xda, 0xe9, 0x94, 0xe5, 0xc5, 0x93, 0x36, 0x24, 0x06, 0x8f, 0xe0, 0xa4, 0x6b, 0xa1, 0xe9, 0x81, - 0x21, 0x70, 0xa1, 0xaa, 0xd7, 0x56, 0x6a, 0x55, 0xdf, 0xac, 0x38, 0x03, 0xa7, 0xa2, 0x6f, 0xcb, - 0x0f, 0x6f, 0x37, 0xab, 0xf5, 0x56, 0x69, 0xda, 0xef, 0xa7, 0x68, 0xf2, 0x4a, 0xb9, 0xb6, 0x5e, - 0x5d, 0xde, 0x6e, 0x35, 0xfc, 0x2f, 0xcb, 0xa3, 0x99, 0x16, 0xe8, 0x45, 0x79, 0x38, 0x49, 0x64, - 0x7b, 0x8d, 0x48, 0xd5, 0x17, 0x4a, 0x9f, 0xaf, 0x6d, 0x08, 0xd0, 0x0c, 0x15, 0x2f, 0xfa, 0x7d, - 0xe9, 0x7b, 0x1c, 0x39, 0x08, 0xfb, 0xca, 0x88, 0xd1, 0x8c, 0xaf, 0x28, 0x32, 0x11, 0x2a, 0xa4, - 0xc9, 0xa6, 0x53, 0x8a, 0x7f, 0x99, 0xf4, 0x88, 0x13, 0x0f, 0x3e, 0xb1, 0x32, 0x2b, 0xe4, 0xe7, - 0xe7, 0x6d, 0xd6, 0x74, 0xa2, 0x0e, 0x0b, 0x00, 0x24, 0x85, 0x68, 0x10, 0xd5, 0x83, 0x81, 0xe3, - 0x55, 0x9c, 0x1e, 0x94, 0x2b, 0xad, 0xda, 0x85, 0x6a, 0x9c, 0x1e, 0x7c, 0x52, 0x85, 0xe9, 0x55, - 0xec, 0xf9, 0x73, 0x2a, 0x17, 0x3d, 0x5b, 0x62, 0xfd, 0xc7, 0x37, 0x63, 0xc8, 0xc5, 0xf7, 0xe1, - 0x32, 0x00, 0x7d, 0x43, 0xdf, 0x33, 0x8a, 0x09, 0x12, 0x14, 0x1d, 0x33, 0x5e, 0x7d, 0x33, 0x14, - 0x3c, 0xff, 0x33, 0x5b, 0x86, 0xfe, 0x86, 0xd8, 0xe1, 0xca, 0x27, 0xb2, 0x6c, 0x78, 0x86, 0x4e, - 0xf3, 0x73, 0xa3, 0x93, 0xa4, 0xed, 0x12, 0xc3, 0xc8, 0xbf, 0x47, 0xfb, 0xf3, 0x2f, 0x55, 0x38, - 0x43, 0xdb, 0x47, 0xb9, 0xd7, 0x6b, 0x7a, 0xb6, 0x83, 0x75, 0xdc, 0xc6, 0x66, 0xcf, 0xeb, 0x5b, - 0xdf, 0x73, 0x68, 0x6a, 0xb0, 0xd9, 0xcc, 0x5e, 0xd1, 0xcf, 0xa8, 0xb2, 0x11, 0x7e, 0x0f, 0xb5, - 0xc7, 0xbe, 0xf2, 0x62, 0x1a, 0xfb, 0x47, 0x14, 0x99, 0x98, 0xbd, 0x29, 0x89, 0xa7, 0x03, 0xea, - 0xd7, 0x8f, 0x01, 0xa8, 0x60, 0xe5, 0x46, 0xaf, 0x56, 0xaa, 0xb5, 0x4d, 0x7f, 0x10, 0x78, 0x3c, - 0xdc, 0xb8, 0xb9, 0xa5, 0x57, 0xd6, 0xca, 0xcd, 0xea, 0xb6, 0x5e, 0x5d, 0xad, 0x35, 0x5b, 0xcc, - 0x29, 0x8b, 0xfe, 0x35, 0xa5, 0xdd, 0x04, 0xe7, 0x9a, 0x5b, 0x4b, 0xcd, 0x8a, 0x5e, 0xdb, 0x24, - 0xe9, 0x7a, 0xb5, 0x5e, 0xbd, 0xc8, 0xbe, 0x4e, 0xa3, 0x0f, 0x94, 0x60, 0xd6, 0x9f, 0x00, 0x34, - 0xe9, 0xbc, 0x00, 0xfd, 0x5d, 0x1e, 0x66, 0x75, 0xec, 0xda, 0xdd, 0x2b, 0x64, 0x8e, 0x30, 0xa9, - 0xa9, 0xc7, 0x97, 0x55, 0xd9, 0xf3, 0xdb, 0x1c, 0xb3, 0x8b, 0x1c, 0xa3, 0xf1, 0x13, 0x4d, 0xe3, - 0x8a, 0x61, 0x76, 0x8d, 0x4b, 0xac, 0xab, 0x99, 0xd6, 0xa3, 0x04, 0x6d, 0x11, 0x34, 0xfb, 0xaa, - 0x85, 0x9d, 0x66, 0xfb, 0x6a, 0xd5, 0xdb, 0x2b, 0x77, 0x3a, 0x0e, 0x76, 0x5d, 0xb6, 0x7a, 0x31, - 0xe0, 0x8b, 0x76, 0x3b, 0x9c, 0x24, 0xa9, 0x5c, 0x66, 0xea, 0x20, 0xd3, 0x9f, 0x1c, 0xe6, 0x2c, - 0x5b, 0xd7, 0x82, 0x9c, 0x05, 0x2e, 0x67, 0x94, 0xcc, 0x1f, 0x97, 0x28, 0x8a, 0xa7, 0x74, 0x6e, - 0x81, 0x59, 0xcb, 0xd8, 0xc7, 0xd5, 0x47, 0x7b, 0xa6, 0x83, 0x5d, 0xe2, 0x18, 0xa3, 0xea, 0x7c, - 0x12, 0xfa, 0xa0, 0xd4, 0x79, 0x73, 0x39, 0x89, 0xa5, 0xd3, 0xfd, 0xd5, 0x11, 0x54, 0x7f, 0x40, - 0x3f, 0xa3, 0xa2, 0x0f, 0xa8, 0x30, 0xc7, 0x98, 0x2a, 0x5b, 0xd7, 0x6a, 0x1d, 0xf4, 0x78, 0xc1, - 0xf8, 0x35, 0xfc, 0xb4, 0xc0, 0xf8, 0x25, 0x2f, 0xe8, 0xfb, 0x55, 0x59, 0x77, 0xe7, 0x01, 0x15, - 0x27, 0x65, 0xc4, 0x3b, 0x8e, 0xee, 0xd8, 0x07, 0xcc, 0x51, 0x75, 0x5a, 0xa7, 0x2f, 0x59, 0x2e, - 0xea, 0xa1, 0x5f, 0x93, 0x72, 0xa6, 0x96, 0xac, 0xc6, 0x31, 0x01, 0xf8, 0x31, 0x15, 0x16, 0x18, - 0x57, 0x4d, 0x76, 0xce, 0x47, 0xea, 0xc0, 0xdb, 0x0f, 0x48, 0x1b, 0x82, 0x03, 0xea, 0xcf, 0x4a, - 0x7a, 0xcc, 0x00, 0xf9, 0x21, 0xa9, 0xe0, 0x68, 0xd2, 0x15, 0x39, 0x26, 0x28, 0xdf, 0x91, 0x87, - 0xd9, 0x2d, 0x17, 0x3b, 0xcc, 0x6f, 0x1f, 0xbd, 0x3e, 0x0f, 0xea, 0x2a, 0x16, 0x36, 0x52, 0x5f, - 0x2e, 0xed, 0xe1, 0xcb, 0x57, 0x96, 0x23, 0xea, 0xdb, 0x48, 0x31, 0xb0, 0xdd, 0x06, 0x0b, 0x54, - 0xa4, 0x65, 0xcf, 0xf3, 0x8d, 0xc4, 0xc0, 0x9b, 0xb6, 0x2f, 0x75, 0x1c, 0x5b, 0x45, 0xa4, 0x2c, - 0x3f, 0x4b, 0xc5, 0xe7, 0x69, 0x1d, 0xef, 0xd0, 0xf9, 0x6c, 0x5e, 0xef, 0x4b, 0x25, 0x97, 0xeb, - 0xf7, 0x30, 0x3d, 0xbf, 0xc2, 0x65, 0x2e, 0x90, 0xcc, 0x83, 0x3e, 0xa1, 0xbf, 0x93, 0xf2, 0xd5, - 0x95, 0x97, 0x4e, 0x3a, 0x5d, 0xe8, 0x8d, 0xc7, 0x24, 0x39, 0x0d, 0x25, 0x3f, 0x07, 0xd9, 0x7f, - 0xd1, 0xab, 0xcd, 0xc6, 0xfa, 0x85, 0xea, 0xe0, 0x65, 0x8c, 0x02, 0x7a, 0xb1, 0x0a, 0x33, 0x4b, - 0x8e, 0x6d, 0x74, 0xda, 0x86, 0xeb, 0xa1, 0xaf, 0x2a, 0x30, 0xb7, 0x69, 0x5c, 0xeb, 0xda, 0x46, - 0x87, 0xf8, 0xf7, 0xf7, 0xf5, 0x05, 0x3d, 0xfa, 0x29, 0xe8, 0x0b, 0xd8, 0xab, 0x78, 0x30, 0x30, - 0x3c, 0xba, 0x97, 0x93, 0xb9, 0xae, 0x31, 0xdc, 0xe6, 0x53, 0x06, 0x05, 0x2b, 0x0d, 0xf8, 0x5a, - 0xe4, 0x79, 0x8a, 0xb1, 0x28, 0x3f, 0x20, 0x17, 0x7e, 0x54, 0x86, 0xe4, 0xf1, 0xec, 0xca, 0xbf, - 0x64, 0x1a, 0x8a, 0xcb, 0x98, 0x58, 0x71, 0xff, 0x4d, 0x81, 0xa9, 0x26, 0xf6, 0x88, 0x05, 0x77, - 0x8f, 0xe0, 0x29, 0xdc, 0x21, 0x19, 0x22, 0x27, 0xf6, 0xe0, 0xdd, 0x9f, 0xac, 0x73, 0xe7, 0xad, - 0xc9, 0x73, 0x0a, 0x8f, 0x44, 0x5a, 0xee, 0x22, 0x2b, 0xf3, 0x48, 0x1e, 0x89, 0x89, 0xa4, 0xb2, - 0xf7, 0xb5, 0x7a, 0x97, 0xc2, 0x5c, 0xab, 0xb8, 0x5e, 0xef, 0xa7, 0x78, 0xfd, 0x4c, 0xf4, 0x36, - 0x63, 0xcc, 0x27, 0x38, 0x47, 0x3d, 0x1d, 0xa6, 0xa8, 0xcc, 0x83, 0xf9, 0x68, 0xbf, 0x9f, 0x02, - 0x25, 0x41, 0xce, 0x5e, 0x07, 0x39, 0x25, 0x5d, 0xd4, 0xe2, 0x0b, 0x9f, 0x48, 0x0c, 0x82, 0xb9, - 0x3a, 0xf6, 0xae, 0xda, 0xce, 0xe5, 0xa6, 0x67, 0x78, 0x18, 0xfd, 0x8b, 0x02, 0x6a, 0x13, 0x7b, - 0x7c, 0xf4, 0x93, 0x3a, 0x9c, 0xa2, 0x15, 0x62, 0x19, 0x49, 0xff, 0x4d, 0x2b, 0x72, 0xcb, 0x40, - 0x21, 0x70, 0xf9, 0xf4, 0xc3, 0xbf, 0xa2, 0x1f, 0x1d, 0x18, 0xf4, 0x49, 0x19, 0x30, 0x69, 0x60, - 0x92, 0xe1, 0x19, 0xf4, 0x15, 0x2c, 0x46, 0x4f, 0x7f, 0x55, 0xca, 0xac, 0x96, 0xa3, 0x79, 0x3c, - 0x5d, 0xc1, 0x87, 0x6e, 0x80, 0x7c, 0x65, 0xcf, 0xf0, 0xd0, 0x3b, 0x55, 0x80, 0x72, 0xa7, 0xb3, - 0x41, 0x7d, 0xc0, 0x79, 0x87, 0xb4, 0xf3, 0x30, 0xd7, 0xde, 0x33, 0xa2, 0x9b, 0x33, 0x68, 0x7f, - 0x20, 0xa4, 0x69, 0xcf, 0x88, 0x9c, 0xc9, 0xa9, 0x54, 0x51, 0x1f, 0x4c, 0x7e, 0x19, 0x8c, 0x76, - 0xe8, 0x68, 0x2e, 0x86, 0xc2, 0x4c, 0x3c, 0x42, 0xe7, 0xff, 0xbe, 0x18, 0xb1, 0x17, 0x3f, 0x87, - 0x63, 0xa4, 0xc3, 0x03, 0x36, 0x51, 0x42, 0xca, 0x93, 0xde, 0x72, 0x01, 0x3d, 0x92, 0xf9, 0x9a, - 0x48, 0xe8, 0x5a, 0xad, 0xda, 0x31, 0x03, 0xd1, 0xb2, 0x80, 0x59, 0xe8, 0x65, 0xb9, 0x74, 0xf0, - 0x25, 0x0b, 0xee, 0xb9, 0x30, 0x8f, 0x3b, 0xa6, 0x87, 0x83, 0x5a, 0x32, 0x01, 0x26, 0x41, 0x2c, - 0xfe, 0x80, 0x5e, 0x28, 0x1d, 0x74, 0x8d, 0x08, 0xf4, 0x70, 0x8d, 0x62, 0xda, 0x9f, 0x5c, 0x18, - 0x35, 0x39, 0x9a, 0xd9, 0x83, 0xf5, 0x3d, 0x2a, 0x9c, 0x69, 0xd9, 0xbb, 0xbb, 0x5d, 0x1c, 0x88, - 0x09, 0x53, 0xef, 0x4c, 0x64, 0x8c, 0x13, 0x2e, 0xb2, 0x13, 0x64, 0x3f, 0x62, 0x86, 0x47, 0xc9, - 0xfc, 0x17, 0xf1, 0xc4, 0x54, 0xe2, 0x2c, 0x8a, 0x88, 0x6b, 0x20, 0x9f, 0x31, 0x28, 0xc8, 0x05, - 0x7c, 0x96, 0x26, 0x9b, 0x3d, 0x10, 0x9f, 0x51, 0x60, 0x9e, 0xde, 0x8b, 0x18, 0x28, 0xe8, 0x43, - 0x63, 0x04, 0x00, 0x7d, 0x35, 0x27, 0xeb, 0x67, 0x4b, 0x64, 0x22, 0x70, 0x12, 0x23, 0x62, 0xb9, - 0xa0, 0x2a, 0x43, 0xc9, 0x65, 0x2f, 0xda, 0xdf, 0x51, 0x61, 0x76, 0x15, 0x07, 0x2d, 0xcd, 0x4d, - 0xdd, 0x13, 0x9d, 0x87, 0x39, 0x72, 0x39, 0x58, 0x83, 0x1d, 0x93, 0xa4, 0xab, 0x66, 0x42, 0x9a, - 0x76, 0x2b, 0xcc, 0x5f, 0xc2, 0x3b, 0xb6, 0x83, 0x1b, 0xc2, 0x59, 0x4a, 0x31, 0x31, 0x26, 0x3c, - 0x9d, 0x10, 0x07, 0x6d, 0x49, 0xc4, 0xe6, 0xce, 0xc3, 0xc2, 0xe4, 0xaa, 0x12, 0x33, 0xe6, 0x3c, - 0x13, 0xa6, 0x19, 0xf2, 0x81, 0x99, 0x96, 0xd4, 0x2f, 0x86, 0x79, 0xd1, 0x4f, 0x87, 0x88, 0x56, - 0x05, 0x44, 0x9f, 0x96, 0x86, 0x89, 0x89, 0xdc, 0x1e, 0x5e, 0xe2, 0xca, 0x5f, 0xba, 0x56, 0xeb, - 0xb8, 0x68, 0x23, 0x1d, 0xa6, 0x37, 0x03, 0x84, 0x8d, 0x23, 0x08, 0x6b, 0xc1, 0xa5, 0x88, 0x91, - 0xeb, 0x13, 0x0f, 0xea, 0xf5, 0x8b, 0x83, 0xb0, 0x33, 0x66, 0x60, 0xe4, 0x0e, 0xf8, 0xc9, 0x70, - 0x92, 0x3d, 0x3a, 0x9f, 0x50, 0xe1, 0x4c, 0x78, 0xfe, 0x68, 0xdd, 0x70, 0xa3, 0x76, 0x57, 0x49, - 0x07, 0x91, 0x70, 0xe0, 0x23, 0x6c, 0x2c, 0x7f, 0x9f, 0x6e, 0xcc, 0x18, 0xc8, 0xc9, 0x78, 0xd1, - 0xd1, 0xee, 0x84, 0x53, 0xd6, 0xc1, 0x7e, 0x28, 0x75, 0xd2, 0xe2, 0x59, 0x0b, 0x3f, 0xfc, 0x21, - 0xcd, 0xc8, 0x24, 0xc3, 0xfc, 0x44, 0xe6, 0x94, 0xc2, 0x91, 0xae, 0xa7, 0xa4, 0x82, 0x11, 0xfd, - 0x53, 0x2e, 0x55, 0xef, 0x36, 0xfc, 0xcc, 0x57, 0x8a, 0x5e, 0xea, 0x18, 0x0f, 0x7c, 0x9d, 0x9f, - 0x82, 0x42, 0x75, 0xbf, 0xe7, 0x5d, 0x3b, 0xff, 0x44, 0x98, 0x6f, 0x7a, 0x0e, 0x36, 0xf6, 0xb9, - 0x9d, 0x01, 0xcf, 0xbe, 0x8c, 0xad, 0x60, 0x67, 0x80, 0xbc, 0xdc, 0x7b, 0x0f, 0x4c, 0x59, 0xf6, - 0xb6, 0x71, 0xe0, 0xed, 0x69, 0x8f, 0x3f, 0x74, 0xa4, 0x9e, 0x81, 0xdf, 0x60, 0x31, 0x8c, 0xbe, - 0x70, 0x1f, 0x59, 0x1b, 0x2e, 0x5a, 0x76, 0xf9, 0xc0, 0xdb, 0x5b, 0xba, 0xe9, 0x63, 0x7f, 0x7e, - 0x73, 0xee, 0x93, 0x7f, 0x7e, 0x73, 0xee, 0xf3, 0x7f, 0x7e, 0x73, 0xee, 0x07, 0xfe, 0xe2, 0xe6, - 0x13, 0x9f, 0xfc, 0x8b, 0x9b, 0x4f, 0x7c, 0xe6, 0x2f, 0x6e, 0x3e, 0xf1, 0xad, 0x4a, 0xef, 0xd2, - 0xa5, 0x22, 0xa1, 0xf2, 0xf4, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xcc, 0xbe, 0x1b, 0x0d, 0x0b, - 0x10, 0x02, 0x00, + // 20115 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x2b, 0x47, + 0x75, 0x2f, 0xba, 0xd5, 0x2d, 0x69, 0x34, 0x35, 0x8f, 0xad, 0xdd, 0xde, 0x7b, 0x7b, 0xbb, 0x6c, + 0xb6, 0x9d, 0x6d, 0x63, 0x1c, 0x63, 0xc6, 0xd8, 0x10, 0x82, 0x8d, 0x8d, 0xad, 0xd1, 0xf4, 0xcc, + 0xc8, 0x9e, 0x91, 0x26, 0x2d, 0xcd, 0xde, 0x38, 0xb9, 0xb9, 0x4a, 0x6f, 0xa9, 0x66, 0xa6, 0xbd, + 0x35, 0xdd, 0xa2, 0xbb, 0x67, 0xb6, 0x87, 0xfb, 0x9d, 0x7b, 0x42, 0x88, 0x79, 0x84, 0x10, 0x42, + 0x08, 0x49, 0x80, 0x00, 0xc1, 0xc4, 0x10, 0x20, 0xbc, 0x5f, 0x07, 0x08, 0x8f, 0xf0, 0x08, 0x8f, + 0x10, 0x42, 0x20, 0x84, 0x47, 0xe2, 0x2f, 0x10, 0x08, 0x21, 0xe7, 0x0b, 0x97, 0x4b, 0xee, 0x09, + 0x84, 0x1c, 0x38, 0xdc, 0xaf, 0xab, 0xaa, 0xbb, 0xab, 0x34, 0xea, 0x56, 0xb5, 0x46, 0xad, 0x31, + 0xe1, 0xfc, 0xd7, 0x5d, 0x5d, 0xbd, 0x6a, 0xd5, 0xfa, 0xad, 0xaa, 0x5a, 0x55, 0xb5, 0x6a, 0x15, + 0x38, 0xd5, 0x3d, 0x7f, 0x63, 0xd7, 0xb6, 0x5c, 0xcb, 0xb9, 0xb1, 0x65, 0x6d, 0x6f, 0xeb, 0x66, + 0xdb, 0x99, 0xc3, 0xef, 0xca, 0x84, 0x6e, 0xee, 0xb9, 0x7b, 0x5d, 0x04, 0xaf, 0xe9, 0x5e, 0xd8, + 0xbc, 0xb1, 0x63, 0x9c, 0xbf, 0xb1, 0x7b, 0xfe, 0xc6, 0x6d, 0xab, 0x8d, 0x3a, 0xfe, 0x0f, 0xf8, + 0x85, 0x66, 0x87, 0xd7, 0x45, 0xe5, 0xea, 0x58, 0x2d, 0xbd, 0xe3, 0xb8, 0x96, 0x8d, 0x68, 0xce, + 0x93, 0x61, 0x91, 0x68, 0x17, 0x99, 0xae, 0x4f, 0xe1, 0x8a, 0x4d, 0xcb, 0xda, 0xec, 0x20, 0xf2, + 0xed, 0xfc, 0xce, 0xc6, 0x8d, 0x8e, 0x6b, 0xef, 0xb4, 0x5c, 0xfa, 0xf5, 0xaa, 0xde, 0xaf, 0x6d, + 0xe4, 0xb4, 0x6c, 0xa3, 0xeb, 0x5a, 0x36, 0xc9, 0x71, 0xe6, 0x47, 0x0f, 0x14, 0x80, 0xac, 0x75, + 0x5b, 0xf0, 0xbb, 0x13, 0x40, 0x2e, 0x75, 0xbb, 0xf0, 0xa3, 0x12, 0x00, 0x4b, 0xc8, 0x3d, 0x8b, + 0x6c, 0xc7, 0xb0, 0x4c, 0x78, 0x14, 0x4c, 0x68, 0xe8, 0xa9, 0x3b, 0xc8, 0x71, 0x6f, 0xcd, 0x3e, + 0xfb, 0x1b, 0x72, 0x06, 0x3e, 0x28, 0x81, 0x82, 0x86, 0x9c, 0xae, 0x65, 0x3a, 0x48, 0xb9, 0x13, + 0xe4, 0x90, 0x6d, 0x5b, 0xf6, 0xa9, 0xcc, 0x55, 0x99, 0xeb, 0xa6, 0x6e, 0xbe, 0x7e, 0x8e, 0x56, + 0x7f, 0x4e, 0xeb, 0xb6, 0xe6, 0x4a, 0xdd, 0xee, 0x5c, 0x48, 0x69, 0xce, 0xff, 0x69, 0x4e, 0xf5, + 0xfe, 0xd0, 0xc8, 0x8f, 0xca, 0x29, 0x30, 0xb1, 0x4b, 0x32, 0x9c, 0x92, 0xae, 0xca, 0x5c, 0x37, + 0xa9, 0xf9, 0xaf, 0xde, 0x97, 0x36, 0x72, 0x75, 0xa3, 0xe3, 0x9c, 0x92, 0xc9, 0x17, 0xfa, 0x0a, + 0x1f, 0xc8, 0x80, 0x1c, 0x26, 0xa2, 0x94, 0x41, 0xb6, 0x65, 0xb5, 0x11, 0x2e, 0x7e, 0xf6, 0xe6, + 0x1b, 0xc5, 0x8b, 0x9f, 0x2b, 0x5b, 0x6d, 0xa4, 0xe1, 0x9f, 0x95, 0xab, 0xc0, 0x94, 0x2f, 0x96, + 0x90, 0x0d, 0x36, 0xe9, 0xcc, 0xcd, 0x20, 0xeb, 0xe5, 0x57, 0x0a, 0x20, 0x5b, 0x5d, 0x5f, 0x59, + 0x29, 0x1e, 0x51, 0x8e, 0x81, 0x99, 0xf5, 0xea, 0xdd, 0xd5, 0xda, 0xb9, 0x6a, 0x53, 0xd5, 0xb4, + 0x9a, 0x56, 0xcc, 0x28, 0x33, 0x60, 0x72, 0xbe, 0xb4, 0xd0, 0xac, 0x54, 0xd7, 0xd6, 0x1b, 0x45, + 0x09, 0xbe, 0x5c, 0x06, 0xb3, 0x75, 0xe4, 0x2e, 0xa0, 0x5d, 0xa3, 0x85, 0xea, 0xae, 0xee, 0x22, + 0xf8, 0xfc, 0x4c, 0x20, 0x4c, 0x65, 0xdd, 0x2b, 0x34, 0xf8, 0x44, 0x2b, 0xf0, 0xb8, 0x7d, 0x15, + 0xe0, 0x29, 0xcc, 0xd1, 0xbf, 0xe7, 0x98, 0x34, 0x8d, 0xa5, 0x73, 0xe6, 0x31, 0x60, 0x8a, 0xf9, + 0xa6, 0xcc, 0x02, 0x30, 0x5f, 0x2a, 0xdf, 0xbd, 0xa4, 0xd5, 0xd6, 0xab, 0x0b, 0xc5, 0x23, 0xde, + 0xfb, 0x62, 0x4d, 0x53, 0xe9, 0x7b, 0x06, 0x7e, 0x3f, 0xc3, 0x80, 0xb9, 0xc0, 0x83, 0x39, 0x37, + 0x98, 0x99, 0x3e, 0x80, 0xc2, 0x57, 0x07, 0xe0, 0x2c, 0x71, 0xe0, 0x3c, 0x2e, 0x19, 0xb9, 0xf4, + 0x01, 0xba, 0x5f, 0x02, 0x85, 0xfa, 0xd6, 0x8e, 0xdb, 0xb6, 0x2e, 0x9a, 0x70, 0x32, 0x40, 0x06, + 0x7e, 0x8b, 0x95, 0xc9, 0x93, 0x79, 0x99, 0x5c, 0xb7, 0xbf, 0x12, 0x94, 0x42, 0x84, 0x34, 0xfe, + 0x20, 0x90, 0x46, 0x89, 0x93, 0xc6, 0x63, 0x44, 0x09, 0xa5, 0x2f, 0x87, 0x97, 0x3c, 0x11, 0xe4, + 0xea, 0x5d, 0xbd, 0x85, 0xe0, 0xa7, 0x64, 0x30, 0xbd, 0x82, 0xf4, 0x5d, 0x54, 0xea, 0x76, 0x6d, + 0x6b, 0x17, 0xc1, 0x72, 0xa8, 0xaf, 0xa7, 0xc0, 0x84, 0xe3, 0x65, 0xaa, 0xb4, 0x71, 0x0d, 0x26, + 0x35, 0xff, 0x55, 0x39, 0x0d, 0x80, 0xd1, 0x46, 0xa6, 0x6b, 0xb8, 0x06, 0x72, 0x4e, 0x49, 0x57, + 0xc9, 0xd7, 0x4d, 0x6a, 0x4c, 0x0a, 0xfc, 0xae, 0x24, 0xaa, 0x63, 0x98, 0x8b, 0x39, 0x96, 0x83, + 0x08, 0xa9, 0xbe, 0x4a, 0x12, 0xd1, 0xb1, 0x81, 0xe4, 0x92, 0xc9, 0xf6, 0x8d, 0x99, 0xe4, 0xc2, + 0xf5, 0x72, 0x54, 0x6b, 0xcd, 0xfa, 0x7a, 0x79, 0xb9, 0x59, 0x5f, 0x2b, 0x95, 0xd5, 0x22, 0x52, + 0x8e, 0x83, 0x22, 0x7e, 0x6c, 0x56, 0xea, 0xcd, 0x05, 0x75, 0x45, 0x6d, 0xa8, 0x0b, 0xc5, 0x0d, + 0x45, 0x01, 0xb3, 0x9a, 0xfa, 0x73, 0xeb, 0x6a, 0xbd, 0xd1, 0x5c, 0x2c, 0x55, 0x56, 0xd4, 0x85, + 0xe2, 0xa6, 0xf7, 0xf3, 0x4a, 0x65, 0xb5, 0xd2, 0x68, 0x6a, 0x6a, 0xa9, 0xbc, 0xac, 0x2e, 0x14, + 0xb7, 0x94, 0x4b, 0xc1, 0x25, 0xd5, 0x5a, 0xb3, 0xb4, 0xb6, 0xa6, 0xd5, 0xce, 0xaa, 0x4d, 0xfa, + 0x47, 0xbd, 0x68, 0x90, 0x82, 0x1a, 0xcd, 0xfa, 0x72, 0x49, 0x53, 0x4b, 0xf3, 0x2b, 0x6a, 0xf1, + 0x5e, 0xf8, 0x0c, 0x19, 0xcc, 0xac, 0xea, 0x17, 0x50, 0x7d, 0x4b, 0xb7, 0x91, 0x7e, 0xbe, 0x83, + 0xe0, 0xd5, 0x02, 0x78, 0xc2, 0x4f, 0xb1, 0x78, 0xa9, 0x3c, 0x5e, 0x37, 0xf6, 0x11, 0x30, 0x57, + 0x44, 0x04, 0x60, 0xff, 0x1e, 0x34, 0x83, 0x65, 0x0e, 0xb0, 0xc7, 0x27, 0xa4, 0x97, 0x0c, 0xb1, + 0x5f, 0x79, 0x18, 0x20, 0x06, 0x1f, 0x92, 0xc1, 0x6c, 0xc5, 0xdc, 0x35, 0x5c, 0xb4, 0x84, 0x4c, + 0x64, 0x7b, 0xe3, 0x80, 0x10, 0x0c, 0x0f, 0xca, 0x0c, 0x0c, 0x8b, 0x3c, 0x0c, 0x8f, 0xed, 0x23, + 0x36, 0xbe, 0x8c, 0x88, 0xd1, 0xf6, 0x0a, 0x30, 0x69, 0xe0, 0x7c, 0x65, 0xa3, 0x4d, 0x25, 0x16, + 0x26, 0x28, 0xd7, 0x80, 0x19, 0xf2, 0xb2, 0x68, 0x74, 0xd0, 0xdd, 0x68, 0x8f, 0x8e, 0xbb, 0x7c, + 0x22, 0xfc, 0xf5, 0xa0, 0xf1, 0x55, 0x38, 0x2c, 0x7f, 0x26, 0x29, 0x53, 0xc9, 0xc0, 0x7c, 0xd1, + 0xc3, 0xa1, 0xf9, 0xed, 0x6b, 0x65, 0x06, 0xfc, 0xa1, 0x04, 0xa6, 0xea, 0xae, 0xd5, 0xf5, 0x54, + 0xd6, 0x30, 0x37, 0xc5, 0xc0, 0xfd, 0x38, 0xdb, 0xc6, 0xca, 0x3c, 0xb8, 0x8f, 0xe9, 0x23, 0x47, + 0xa6, 0x80, 0x88, 0x16, 0xf6, 0xdd, 0xa0, 0x85, 0x2d, 0x72, 0xa8, 0xdc, 0x9c, 0x88, 0xda, 0x8f, + 0x61, 0xfb, 0x7a, 0x91, 0x0c, 0x8a, 0xbe, 0x9a, 0xb9, 0xe5, 0x1d, 0xdb, 0x46, 0xa6, 0x2b, 0x06, + 0xc2, 0xdf, 0xb2, 0x20, 0x2c, 0xf3, 0x20, 0xdc, 0x1c, 0xa3, 0xcc, 0x7e, 0x29, 0x29, 0xb6, 0xb1, + 0x0f, 0x06, 0x68, 0xde, 0xcd, 0xa1, 0xf9, 0xb3, 0xc9, 0xd9, 0x4a, 0x06, 0xe9, 0xf2, 0x10, 0x88, + 0x1e, 0x07, 0x45, 0x6f, 0x4c, 0x2a, 0x37, 0x2a, 0x67, 0xd5, 0x66, 0xa5, 0x7a, 0xb6, 0xd2, 0x50, + 0x8b, 0x08, 0xbe, 0x50, 0x06, 0xd3, 0x84, 0x35, 0x0d, 0xed, 0x5a, 0x17, 0x04, 0x7b, 0xbd, 0x87, + 0x12, 0x1a, 0x0b, 0x6c, 0x09, 0x11, 0x2d, 0xe3, 0xd7, 0x12, 0x18, 0x0b, 0x31, 0xe4, 0x1e, 0x4e, + 0xbd, 0xd5, 0xbe, 0x66, 0xb0, 0xd9, 0xa7, 0xb5, 0xf4, 0xed, 0xad, 0x5e, 0x94, 0x05, 0x80, 0x54, + 0xf2, 0xac, 0x81, 0x2e, 0xc2, 0xd5, 0x10, 0x13, 0x4e, 0x6d, 0x33, 0x03, 0xd5, 0x56, 0xea, 0xa7, + 0xb6, 0xef, 0x62, 0xc7, 0xac, 0x79, 0x1e, 0xbd, 0x1b, 0x22, 0xc5, 0xed, 0x71, 0x12, 0x3d, 0x3b, + 0xf4, 0x15, 0x45, 0xe2, 0xad, 0xce, 0x2b, 0xc0, 0x24, 0x7e, 0xac, 0xea, 0xdb, 0x88, 0xb6, 0xa1, + 0x30, 0x41, 0x39, 0x03, 0xa6, 0x49, 0xc6, 0x96, 0x65, 0x7a, 0xf5, 0xc9, 0xe2, 0x0c, 0x5c, 0x9a, + 0x07, 0x62, 0xcb, 0x46, 0xba, 0x6b, 0xd9, 0x98, 0x46, 0x8e, 0x80, 0xc8, 0x24, 0xc1, 0x6f, 0x06, + 0xad, 0x50, 0xe5, 0x34, 0xe7, 0xa6, 0x24, 0x55, 0x49, 0xa6, 0x37, 0xbb, 0xc3, 0xb5, 0x3f, 0xd2, + 0xea, 0x9a, 0x1e, 0xda, 0x8b, 0x78, 0x6a, 0x87, 0x94, 0x93, 0x40, 0xa1, 0xa9, 0x5e, 0xde, 0x72, + 0xad, 0xda, 0x50, 0xab, 0x8d, 0xe2, 0x46, 0x5f, 0x8d, 0xda, 0x84, 0xaf, 0xca, 0x82, 0xec, 0x5d, + 0x96, 0x61, 0xc2, 0xfb, 0x33, 0x9c, 0x4a, 0x98, 0xc8, 0xbd, 0x68, 0xd9, 0x17, 0x82, 0x86, 0x1a, + 0x26, 0xc4, 0x63, 0x13, 0xaa, 0x92, 0x3c, 0x50, 0x95, 0xb2, 0xfd, 0x54, 0xe9, 0xb7, 0x58, 0x55, + 0xba, 0x8d, 0x57, 0xa5, 0x6b, 0xfb, 0xc8, 0xdf, 0x63, 0x3e, 0xa2, 0x03, 0xf8, 0x58, 0xd0, 0x01, + 0xdc, 0xc1, 0xc1, 0xf8, 0x68, 0x31, 0x32, 0xc9, 0x00, 0xfc, 0x72, 0xaa, 0x0d, 0xbf, 0x1f, 0xd4, + 0x9b, 0x11, 0x50, 0x6f, 0xf5, 0xe9, 0x13, 0x8c, 0xfd, 0x5d, 0xc7, 0xbd, 0xfb, 0xbb, 0x89, 0x0b, + 0xca, 0x09, 0x70, 0x6c, 0xa1, 0xb2, 0xb8, 0xa8, 0x6a, 0x6a, 0xb5, 0xd1, 0xac, 0xaa, 0x8d, 0x73, + 0x35, 0xed, 0xee, 0x62, 0x07, 0x3e, 0x20, 0x03, 0xe0, 0x49, 0xa8, 0xac, 0x9b, 0x2d, 0xd4, 0x11, + 0xeb, 0xd1, 0xff, 0x1f, 0x29, 0x59, 0x9f, 0x10, 0xd2, 0x8f, 0x80, 0xf3, 0x65, 0x92, 0x78, 0xab, + 0x8c, 0x24, 0x96, 0x0c, 0xd4, 0xd7, 0x3d, 0x1c, 0x6c, 0xcf, 0x4b, 0xc0, 0x51, 0x9f, 0x1e, 0xcd, + 0xde, 0x7f, 0xda, 0xf7, 0xa6, 0x2c, 0x98, 0xa5, 0xb0, 0xf8, 0xf3, 0xf8, 0x67, 0x67, 0x44, 0x26, + 0xf2, 0x10, 0x14, 0xe8, 0xb4, 0xdd, 0xef, 0xde, 0x83, 0x77, 0x65, 0x09, 0x4c, 0x75, 0x91, 0xbd, + 0x6d, 0x38, 0x8e, 0x61, 0x99, 0x64, 0x41, 0x6e, 0xf6, 0xe6, 0x47, 0x06, 0x12, 0xc7, 0x6b, 0x97, + 0x73, 0x6b, 0xba, 0xed, 0x1a, 0x2d, 0xa3, 0xab, 0x9b, 0xee, 0x5a, 0x98, 0x59, 0x63, 0xff, 0x84, + 0x2f, 0x48, 0x38, 0xad, 0xe1, 0x6b, 0x12, 0xa1, 0x12, 0x7f, 0x92, 0x60, 0x4a, 0x12, 0x4b, 0x30, + 0x99, 0x5a, 0x7c, 0x34, 0x55, 0xb5, 0xe8, 0x83, 0xf7, 0xa6, 0x72, 0x19, 0x38, 0x51, 0xa9, 0x96, + 0x6b, 0x9a, 0xa6, 0x96, 0x1b, 0xcd, 0x35, 0x55, 0x5b, 0xad, 0xd4, 0xeb, 0x95, 0x5a, 0xb5, 0x7e, + 0x90, 0xd6, 0x0e, 0x3f, 0x29, 0x07, 0x1a, 0xb3, 0x80, 0x5a, 0x1d, 0xc3, 0x44, 0xf0, 0x8e, 0x03, + 0x2a, 0x0c, 0xbf, 0xea, 0x23, 0x8e, 0x33, 0x2d, 0x3f, 0x02, 0xe7, 0x57, 0x26, 0xc7, 0xb9, 0x3f, + 0xc1, 0xff, 0xc4, 0xcd, 0xff, 0x21, 0x19, 0x1c, 0x63, 0x1a, 0xa2, 0x86, 0xb6, 0x47, 0xb6, 0x92, + 0xf7, 0x2b, 0x6c, 0xdb, 0xad, 0xf0, 0x98, 0xf6, 0xb3, 0xa6, 0xf7, 0xb1, 0x11, 0x01, 0xeb, 0xeb, + 0x02, 0x58, 0x57, 0x38, 0x58, 0x9f, 0x38, 0x04, 0xcd, 0x64, 0xc8, 0xbe, 0x39, 0x55, 0x64, 0x2f, + 0x03, 0x27, 0xd6, 0x4a, 0x5a, 0xa3, 0x52, 0xae, 0xac, 0x95, 0xbc, 0x71, 0x94, 0x19, 0xb2, 0x23, + 0xcc, 0x75, 0x1e, 0xf4, 0xbe, 0xf8, 0x7e, 0x20, 0x0b, 0xae, 0xe8, 0xdf, 0xd1, 0x96, 0xb7, 0x74, + 0x73, 0x13, 0x41, 0x43, 0x04, 0xea, 0x05, 0x30, 0xd1, 0xc2, 0xd9, 0x09, 0xce, 0xec, 0xd6, 0x4d, + 0x4c, 0x5f, 0x4e, 0x4a, 0xd0, 0xfc, 0x5f, 0xe1, 0xdb, 0x58, 0x85, 0x68, 0xf0, 0x0a, 0xf1, 0xe4, + 0x78, 0xf0, 0xf6, 0xf1, 0x1d, 0xa1, 0x1b, 0x9f, 0x09, 0x74, 0xe3, 0x1c, 0xa7, 0x1b, 0xe5, 0x83, + 0x91, 0x4f, 0xa6, 0x26, 0x7f, 0xfe, 0x70, 0xe8, 0x00, 0x22, 0xb5, 0xc9, 0x88, 0x1e, 0x15, 0xfa, + 0x76, 0xf7, 0xaf, 0x90, 0x41, 0x7e, 0x01, 0x75, 0x90, 0xe8, 0x4a, 0xe4, 0xb7, 0x25, 0xd1, 0x0d, + 0x11, 0x02, 0x03, 0xa1, 0x1d, 0xbd, 0x3a, 0xe2, 0x1a, 0xdb, 0xc8, 0x71, 0xf5, 0xed, 0x2e, 0x16, + 0xb5, 0xac, 0x85, 0x09, 0xf0, 0x57, 0x25, 0x91, 0xed, 0x92, 0x98, 0x62, 0xfe, 0x73, 0xac, 0x29, + 0x7e, 0x4e, 0x02, 0x85, 0x3a, 0x72, 0x6b, 0x76, 0x1b, 0xd9, 0xb0, 0x1e, 0x62, 0x74, 0x15, 0x98, + 0xc2, 0xa0, 0x78, 0xd3, 0xcc, 0x00, 0x27, 0x36, 0x49, 0xb9, 0x16, 0xcc, 0x06, 0xaf, 0xf8, 0x77, + 0xda, 0x8d, 0xf7, 0xa4, 0xc2, 0xef, 0x64, 0x44, 0x77, 0x71, 0xe9, 0x92, 0x21, 0xe5, 0x26, 0xa2, + 0x95, 0x8a, 0xed, 0xc8, 0xc6, 0x92, 0x4a, 0x7f, 0xa3, 0xeb, 0x2d, 0x12, 0x00, 0xeb, 0xa6, 0xe3, + 0xcb, 0xf5, 0xd1, 0x09, 0xe4, 0x0a, 0xff, 0x2d, 0x93, 0x6c, 0x16, 0x13, 0x96, 0x13, 0x21, 0xb1, + 0x3f, 0x4c, 0xb0, 0xb6, 0x10, 0x49, 0x2c, 0x7d, 0x99, 0x7d, 0x6d, 0x16, 0xe4, 0xcf, 0xe9, 0x9d, + 0x0e, 0x72, 0xe1, 0xd7, 0x25, 0x90, 0x2f, 0xdb, 0x48, 0x77, 0x11, 0x2b, 0x3a, 0x08, 0x0a, 0xb6, + 0x65, 0xb9, 0x6b, 0xba, 0xbb, 0x45, 0xe5, 0x16, 0xbc, 0x53, 0x87, 0x81, 0x3f, 0x66, 0xbb, 0x8f, + 0x3b, 0x78, 0xd1, 0xfd, 0x34, 0x57, 0x5b, 0x52, 0xd0, 0x1c, 0x29, 0x24, 0xa2, 0xff, 0x80, 0xa0, + 0xb0, 0x6d, 0xa2, 0x6d, 0xcb, 0x34, 0x5a, 0xbe, 0xcd, 0xe9, 0xbf, 0xc3, 0x0f, 0x05, 0x32, 0x9d, + 0xe7, 0x64, 0x3a, 0x27, 0x5c, 0x4a, 0x32, 0x81, 0xd6, 0x87, 0xe8, 0x3d, 0xae, 0x04, 0x97, 0x93, + 0xce, 0xa0, 0xd9, 0xa8, 0x35, 0xcb, 0x9a, 0x5a, 0x6a, 0xa8, 0xcd, 0x95, 0x5a, 0xb9, 0xb4, 0xd2, + 0xd4, 0xd4, 0xb5, 0x5a, 0x11, 0xc1, 0x7f, 0x92, 0x3c, 0xe1, 0xb6, 0xac, 0x5d, 0x64, 0xc3, 0x25, + 0x21, 0x39, 0xc7, 0xc9, 0x84, 0x62, 0xf0, 0x5b, 0xc2, 0x4e, 0x1b, 0x54, 0x3a, 0x94, 0x83, 0x08, + 0xe5, 0xfd, 0xb0, 0x50, 0x73, 0x8f, 0x25, 0xf5, 0x30, 0x90, 0xf4, 0xff, 0x90, 0xc0, 0x44, 0xd9, + 0x32, 0x77, 0x91, 0xed, 0xb2, 0xf3, 0x1d, 0x56, 0x9a, 0x19, 0x5e, 0x9a, 0xde, 0x20, 0x89, 0x4c, + 0xd7, 0xb6, 0xba, 0xfe, 0x84, 0xc7, 0x7f, 0x85, 0xaf, 0x49, 0x2a, 0x61, 0x5a, 0x72, 0xf4, 0xc2, + 0x67, 0xff, 0x82, 0x38, 0xf6, 0xe4, 0x9e, 0x06, 0xf0, 0x40, 0x12, 0x5c, 0xfa, 0x33, 0x90, 0x7e, + 0x97, 0xf2, 0x15, 0x19, 0xcc, 0x90, 0xc6, 0x57, 0x47, 0xd8, 0x42, 0x83, 0x35, 0x76, 0xc9, 0xb1, + 0x47, 0xf8, 0xcb, 0x47, 0x38, 0xf1, 0xe7, 0xf5, 0x6e, 0x37, 0x58, 0x7e, 0x5e, 0x3e, 0xa2, 0xd1, + 0x77, 0xa2, 0xe6, 0xf3, 0x79, 0x90, 0xd5, 0x77, 0xdc, 0x2d, 0xf8, 0x43, 0xe1, 0xc9, 0x27, 0xd7, + 0x19, 0x50, 0x7e, 0x22, 0x20, 0x39, 0x0e, 0x72, 0xae, 0x75, 0x01, 0xf9, 0x72, 0x20, 0x2f, 0x1e, + 0x1c, 0x7a, 0xb7, 0xdb, 0xc0, 0x1f, 0x28, 0x1c, 0xfe, 0xbb, 0x67, 0xeb, 0xe8, 0xad, 0x96, 0xb5, + 0x63, 0xba, 0x15, 0x7f, 0x09, 0x3a, 0x4c, 0x80, 0x5f, 0xcc, 0x88, 0x4c, 0x66, 0x05, 0x18, 0x4c, + 0x06, 0xd9, 0xf9, 0x21, 0x9a, 0xd2, 0x1c, 0xb8, 0xbe, 0xb4, 0xb6, 0xd6, 0x6c, 0xd4, 0xee, 0x56, + 0xab, 0xa1, 0xe1, 0xd9, 0xac, 0x54, 0x9b, 0x8d, 0x65, 0xb5, 0x59, 0x5e, 0xd7, 0xf0, 0x3a, 0x61, + 0xa9, 0x5c, 0xae, 0xad, 0x57, 0x1b, 0x45, 0x04, 0xdf, 0x20, 0x81, 0xe9, 0x72, 0xc7, 0x72, 0x02, + 0x84, 0xaf, 0x0c, 0x11, 0x0e, 0xc4, 0x98, 0x61, 0xc4, 0x08, 0xff, 0x67, 0x46, 0xd4, 0xe9, 0xc0, + 0x17, 0x08, 0x43, 0x3e, 0xa2, 0x97, 0x7a, 0x8d, 0x90, 0xd3, 0xc1, 0x60, 0x7a, 0xe9, 0x37, 0x89, + 0xd7, 0x2f, 0x80, 0x89, 0x12, 0x51, 0x0c, 0xf8, 0xf7, 0x19, 0x90, 0x2f, 0x5b, 0xe6, 0x86, 0xb1, + 0xe9, 0x19, 0x73, 0xc8, 0xd4, 0xcf, 0x77, 0xd0, 0x82, 0xee, 0xea, 0xbb, 0x06, 0xba, 0x88, 0x2b, + 0x50, 0xd0, 0x7a, 0x52, 0x3d, 0xa6, 0x68, 0x0a, 0x3a, 0xbf, 0xb3, 0x89, 0x99, 0x2a, 0x68, 0x6c, + 0x92, 0xf2, 0x44, 0x70, 0x29, 0x79, 0x5d, 0xb3, 0x91, 0x8d, 0x3a, 0x48, 0x77, 0x90, 0x37, 0x2d, + 0x32, 0x51, 0x07, 0x2b, 0x6d, 0x41, 0x8b, 0xfa, 0xac, 0x9c, 0x01, 0xd3, 0xe4, 0x13, 0x36, 0x45, + 0x1c, 0xac, 0xc6, 0x05, 0x8d, 0x4b, 0x53, 0x1e, 0x03, 0x72, 0xe8, 0x3e, 0xd7, 0xd6, 0x4f, 0xb5, + 0x31, 0x5e, 0x97, 0xce, 0x11, 0xaf, 0xc3, 0x39, 0xdf, 0xeb, 0x70, 0xae, 0x8e, 0x7d, 0x12, 0x35, + 0x92, 0x0b, 0x7e, 0xb2, 0x10, 0x18, 0x12, 0x6f, 0x90, 0x43, 0xc5, 0x50, 0x40, 0xd6, 0xd4, 0xb7, + 0x11, 0xd5, 0x0b, 0xfc, 0xac, 0x5c, 0x0f, 0x8e, 0xea, 0xbb, 0xba, 0xab, 0xdb, 0x2b, 0x56, 0x4b, + 0xef, 0xe0, 0xc1, 0xcf, 0x6f, 0xf9, 0xbd, 0x1f, 0xf0, 0x8e, 0x90, 0x6b, 0xd9, 0x08, 0xe7, 0xf2, + 0x77, 0x84, 0xfc, 0x04, 0x8f, 0xba, 0xd1, 0xb2, 0x4c, 0xcc, 0xbf, 0xac, 0xe1, 0x67, 0x4f, 0x2a, + 0x6d, 0xc3, 0xf1, 0x2a, 0x82, 0xa9, 0x54, 0xc9, 0xd6, 0x46, 0x7d, 0xcf, 0x6c, 0xe1, 0xdd, 0xa0, + 0x82, 0x16, 0xf5, 0x59, 0x99, 0x07, 0x53, 0x74, 0x23, 0x64, 0xd5, 0xd3, 0xab, 0x3c, 0xd6, 0xab, + 0xab, 0x78, 0x9f, 0x2e, 0x82, 0xe7, 0x5c, 0x35, 0xcc, 0xa7, 0xb1, 0x3f, 0x29, 0x77, 0x82, 0xcb, + 0xe9, 0x6b, 0x79, 0xc7, 0x71, 0xad, 0x6d, 0x02, 0xfa, 0xa2, 0xd1, 0x21, 0x35, 0x98, 0xc0, 0x35, + 0x88, 0xcb, 0xa2, 0xdc, 0x0c, 0x8e, 0x77, 0x6d, 0xb4, 0x81, 0xec, 0x7b, 0xf4, 0xed, 0x9d, 0xfb, + 0x1a, 0xb6, 0x6e, 0x3a, 0x5d, 0xcb, 0x76, 0x4f, 0x15, 0x30, 0xf3, 0x7d, 0xbf, 0x29, 0x37, 0x80, + 0x63, 0xf7, 0x3a, 0x96, 0x59, 0xea, 0x1a, 0x2b, 0x86, 0xe3, 0x22, 0xb3, 0xd4, 0x6e, 0xdb, 0xa7, + 0x26, 0x71, 0x59, 0xfb, 0x3f, 0xd0, 0x6e, 0xb5, 0x00, 0xf2, 0x44, 0xd8, 0xf0, 0xf9, 0x39, 0x61, + 0xe7, 0x4f, 0x5a, 0xfd, 0x58, 0x63, 0xee, 0xb1, 0x60, 0x82, 0xf6, 0x87, 0x18, 0xd6, 0xa9, 0x9b, + 0x4f, 0xf6, 0xac, 0x42, 0x50, 0x2a, 0x9a, 0x9f, 0x4d, 0x79, 0x1c, 0xc8, 0xb7, 0xb0, 0x10, 0x30, + 0xc2, 0x53, 0x37, 0x5f, 0xde, 0xbf, 0x50, 0x9c, 0x45, 0xa3, 0x59, 0xe1, 0x97, 0x64, 0x21, 0x7f, + 0xd1, 0x38, 0x8e, 0x93, 0xf5, 0x01, 0xdf, 0x94, 0x86, 0xe8, 0x64, 0x6f, 0x00, 0xd7, 0xd1, 0x1e, + 0x94, 0x5a, 0x2b, 0x0b, 0xcd, 0xf9, 0x75, 0x7f, 0xea, 0xe8, 0xd9, 0x30, 0xf5, 0x46, 0x49, 0xf3, + 0xe6, 0xfd, 0x0b, 0xde, 0x94, 0xf3, 0x7a, 0x70, 0xed, 0x80, 0xdc, 0x6a, 0xa3, 0x59, 0x2d, 0xad, + 0xaa, 0xc5, 0x0d, 0xde, 0x12, 0xaa, 0x37, 0x6a, 0x6b, 0x4d, 0x6d, 0xbd, 0x5a, 0xad, 0x54, 0x97, + 0x08, 0x31, 0xcf, 0x80, 0x3c, 0x19, 0x66, 0x38, 0xa7, 0x55, 0x1a, 0x6a, 0xb3, 0x5c, 0xab, 0x2e, + 0x56, 0x96, 0x8a, 0xc6, 0x20, 0x33, 0xea, 0x5e, 0xe5, 0x2a, 0x70, 0x05, 0xc7, 0x49, 0xa5, 0x56, + 0xf5, 0xe6, 0xc1, 0xe5, 0x52, 0xb5, 0xac, 0x7a, 0x93, 0xde, 0x0b, 0x0a, 0x04, 0x27, 0x08, 0xb9, + 0xe6, 0x62, 0x65, 0x85, 0xdd, 0xba, 0xfa, 0x78, 0x46, 0x39, 0x05, 0x2e, 0x61, 0xbf, 0x55, 0xaa, + 0x67, 0x4b, 0x2b, 0x95, 0x85, 0xe2, 0x27, 0x32, 0xca, 0x35, 0xe0, 0x4a, 0xee, 0x2f, 0xb2, 0x0b, + 0xd5, 0xac, 0x2c, 0x34, 0x57, 0x2b, 0xf5, 0xd5, 0x52, 0xa3, 0xbc, 0x5c, 0xfc, 0x24, 0x9e, 0x5d, + 0x04, 0xe6, 0x32, 0xe3, 0xc4, 0xf9, 0x22, 0xd6, 0x02, 0x28, 0xf1, 0x8a, 0xfa, 0xe8, 0xbe, 0xb0, + 0xc7, 0x5b, 0xbc, 0x1f, 0x0d, 0xc6, 0x92, 0x05, 0x4e, 0x85, 0x1e, 0x9b, 0x80, 0x56, 0x32, 0x1d, + 0x6a, 0x0c, 0xa1, 0x42, 0x57, 0x81, 0x2b, 0xaa, 0x2a, 0x41, 0x4a, 0x53, 0xcb, 0xb5, 0xb3, 0xaa, + 0xd6, 0x3c, 0x57, 0x5a, 0x59, 0x51, 0x1b, 0xcd, 0xc5, 0x8a, 0x56, 0x6f, 0x14, 0x37, 0xe0, 0xbf, + 0x49, 0xc1, 0xda, 0x0f, 0x23, 0xad, 0xbf, 0x97, 0x92, 0x36, 0xeb, 0xd8, 0x35, 0x9e, 0x9f, 0x01, + 0x79, 0xc7, 0xd5, 0xdd, 0x1d, 0x87, 0xb6, 0xea, 0x47, 0xf4, 0x6f, 0xd5, 0x73, 0x75, 0x9c, 0x49, + 0xa3, 0x99, 0xe1, 0x97, 0x32, 0x49, 0x9a, 0xe9, 0x08, 0x96, 0x7f, 0x8c, 0x21, 0x44, 0x7c, 0x1a, + 0x40, 0x5f, 0xdb, 0x2b, 0xf5, 0x66, 0x69, 0x45, 0x53, 0x4b, 0x0b, 0xf7, 0x04, 0x8b, 0x3e, 0x48, + 0x39, 0x01, 0x8e, 0xad, 0x57, 0x4b, 0xf3, 0x2b, 0x2a, 0x6e, 0x2e, 0xb5, 0x6a, 0x55, 0x2d, 0x7b, + 0x72, 0xff, 0x55, 0xbc, 0xc5, 0xe2, 0xd9, 0xdb, 0x98, 0x6f, 0xcf, 0x26, 0x62, 0xe4, 0xff, 0x0d, + 0x61, 0x4f, 0xa4, 0x50, 0xc3, 0x58, 0x5a, 0xa3, 0xc5, 0xe1, 0x8b, 0x42, 0xce, 0x47, 0x42, 0x9c, + 0x24, 0xc3, 0xe3, 0x97, 0x86, 0xc0, 0xe3, 0x04, 0x38, 0xc6, 0xe2, 0x81, 0x9d, 0x90, 0xa2, 0x61, + 0xf8, 0x81, 0x04, 0x26, 0x56, 0x8d, 0x4d, 0xec, 0x85, 0xf9, 0xa4, 0xd0, 0xf4, 0x98, 0x05, 0x52, + 0xe0, 0xf4, 0x22, 0x19, 0x6d, 0x6e, 0xb2, 0x2d, 0xf5, 0x5d, 0xd4, 0x78, 0x5b, 0xe2, 0xfe, 0x85, + 0x16, 0x1b, 0xd1, 0xbf, 0x7c, 0x2d, 0x51, 0xff, 0xd2, 0x9f, 0x56, 0x32, 0x61, 0xdb, 0x07, 0x13, + 0x36, 0xeb, 0x6a, 0x32, 0x0d, 0x0a, 0x41, 0x6f, 0x8f, 0x77, 0x3d, 0xbc, 0x8f, 0x6a, 0xb5, 0xb6, + 0xbe, 0xb4, 0xdc, 0x5c, 0xd4, 0x54, 0x95, 0xae, 0x93, 0x6e, 0xc2, 0xb7, 0x4a, 0x60, 0x86, 0xf2, + 0x4e, 0x5d, 0x08, 0xae, 0x8c, 0x04, 0x81, 0x0a, 0xfa, 0x47, 0xec, 0xc4, 0x60, 0x89, 0x17, 0xf4, + 0x4d, 0x71, 0xc2, 0x89, 0xf5, 0x21, 0x78, 0x6d, 0x20, 0xee, 0xbb, 0x38, 0x71, 0x3f, 0x21, 0x31, + 0xc5, 0xf4, 0x27, 0x07, 0x6f, 0x9a, 0x04, 0xf9, 0x3a, 0xea, 0xa0, 0x96, 0x0b, 0x1f, 0x92, 0x86, + 0xd2, 0xd9, 0x38, 0x43, 0x57, 0x4e, 0x64, 0xe8, 0x66, 0x53, 0x30, 0x74, 0x73, 0xc3, 0x1b, 0xba, + 0xf9, 0xa4, 0x86, 0xee, 0x44, 0xac, 0xa1, 0x0b, 0x3f, 0x92, 0x4f, 0x3a, 0x0e, 0x12, 0x60, 0x0e, + 0xd7, 0xbc, 0xfd, 0x8d, 0x5c, 0x92, 0x71, 0xb3, 0x2f, 0xc7, 0xc9, 0xb4, 0xf8, 0x65, 0xd9, 0x14, + 0x96, 0xe3, 0x94, 0xab, 0xc1, 0x95, 0xe1, 0x7b, 0x53, 0x7d, 0x4a, 0xa5, 0xde, 0xa8, 0x63, 0x9b, + 0xb6, 0x5c, 0xd3, 0xb4, 0xf5, 0x35, 0xb2, 0xa7, 0x72, 0x12, 0x28, 0x21, 0x15, 0x6d, 0xbd, 0x4a, + 0x2c, 0xd8, 0x4d, 0x9e, 0xfa, 0x62, 0xa5, 0xba, 0xd0, 0x0c, 0x46, 0x85, 0xea, 0x62, 0xad, 0xb8, + 0xa5, 0xcc, 0x81, 0xeb, 0x19, 0xea, 0xb8, 0x83, 0x22, 0x25, 0x94, 0xaa, 0x0b, 0xcd, 0xd5, 0xaa, + 0xba, 0x5a, 0xab, 0x56, 0xca, 0x38, 0xbd, 0xae, 0x36, 0x8a, 0x86, 0x67, 0x4a, 0xf5, 0xd8, 0xcc, + 0x75, 0xb5, 0xa4, 0x95, 0x97, 0x55, 0x8d, 0x14, 0x79, 0xaf, 0x72, 0x2d, 0x38, 0x53, 0xaa, 0xd6, + 0x1a, 0x5e, 0x4a, 0xa9, 0x7a, 0x4f, 0xe3, 0x9e, 0x35, 0xb5, 0xb9, 0xa6, 0xd5, 0xca, 0x6a, 0xbd, + 0xee, 0x8d, 0x44, 0xd4, 0xc2, 0x2e, 0x76, 0x94, 0x27, 0x83, 0x5b, 0x19, 0xd6, 0xd4, 0x06, 0xde, + 0xc0, 0x5f, 0xad, 0x61, 0x1f, 0xae, 0x05, 0xb5, 0xb9, 0x5c, 0xaa, 0x37, 0x2b, 0xd5, 0x72, 0x6d, + 0x75, 0xad, 0xd4, 0xa8, 0x78, 0x03, 0xd6, 0x9a, 0x56, 0x6b, 0xd4, 0x9a, 0x67, 0x55, 0xad, 0x5e, + 0xa9, 0x55, 0x8b, 0xa6, 0x57, 0x65, 0x66, 0x84, 0xf3, 0x2d, 0x0d, 0x4b, 0xb9, 0x02, 0x9c, 0xf2, + 0xd3, 0x57, 0x6a, 0x9e, 0xa0, 0x19, 0x9b, 0xbb, 0xcb, 0xda, 0x29, 0xf5, 0x46, 0x4d, 0x23, 0x56, + 0xf7, 0x6a, 0x65, 0x49, 0xf3, 0xa6, 0x0a, 0xc5, 0xa7, 0xa6, 0x6a, 0x93, 0xff, 0x87, 0x04, 0xb2, + 0x75, 0xd7, 0xea, 0xc2, 0x9f, 0x0e, 0xbb, 0xab, 0xd3, 0x00, 0xd8, 0x78, 0xbf, 0x7e, 0x41, 0x77, + 0x75, 0xba, 0x8e, 0xc1, 0xa4, 0xc0, 0x3f, 0x13, 0xde, 0x64, 0x0c, 0xad, 0x16, 0xab, 0x1b, 0xd1, + 0xbd, 0x7f, 0x5f, 0xec, 0xd4, 0x55, 0x34, 0xa1, 0x64, 0xed, 0xe1, 0xd7, 0x86, 0xd9, 0x46, 0x84, + 0xe0, 0x24, 0x03, 0xab, 0x27, 0x7f, 0x5f, 0x65, 0x90, 0x72, 0x29, 0xb8, 0xa4, 0x47, 0xf9, 0xb0, + 0xce, 0x6d, 0x28, 0x3f, 0x05, 0x1e, 0xc1, 0xa8, 0xbf, 0xba, 0x5a, 0x3b, 0xab, 0x06, 0x8a, 0xbe, + 0x50, 0x6a, 0x94, 0x8a, 0x9b, 0xf0, 0x73, 0x32, 0xc8, 0xae, 0x5a, 0xbb, 0xbd, 0x7b, 0xbb, 0x26, + 0xba, 0xc8, 0xec, 0x1d, 0xf8, 0xaf, 0xfc, 0x29, 0x13, 0x21, 0xb1, 0xaf, 0x46, 0xfb, 0x71, 0x7c, + 0x51, 0x4a, 0x22, 0xf6, 0xd5, 0x83, 0x3a, 0x6f, 0xfc, 0xf3, 0x30, 0x62, 0x8f, 0x10, 0x2d, 0x52, + 0xce, 0x80, 0xd3, 0xe1, 0x87, 0xca, 0x82, 0x5a, 0x6d, 0x54, 0x16, 0xef, 0x09, 0x85, 0x5b, 0xd1, + 0x84, 0xc4, 0x3f, 0xa8, 0x9b, 0x8b, 0x9f, 0x6b, 0x9f, 0x02, 0xc7, 0xc3, 0x6f, 0x4b, 0x6a, 0xc3, + 0xff, 0x72, 0x2f, 0xbc, 0x3f, 0x07, 0xa6, 0x49, 0xb7, 0xbf, 0xde, 0x6d, 0x7b, 0xd6, 0xeb, 0xe3, + 0x42, 0x74, 0xaf, 0x03, 0x47, 0x2b, 0x6b, 0x8b, 0xf5, 0xba, 0x6b, 0xd9, 0xfa, 0x26, 0xc2, 0xe3, + 0x1c, 0x91, 0x56, 0x6f, 0x32, 0x7c, 0x87, 0xf0, 0xba, 0x38, 0x3f, 0xd4, 0x90, 0x32, 0x23, 0x50, + 0xff, 0x8a, 0xd0, 0x3a, 0xb6, 0x00, 0xc1, 0x64, 0xe8, 0xdf, 0x3b, 0xe2, 0x36, 0x17, 0x8d, 0xcb, + 0xc6, 0x99, 0x67, 0x49, 0x60, 0xb2, 0x61, 0x6c, 0xa3, 0xa7, 0x59, 0x26, 0x72, 0x94, 0x09, 0x20, + 0x2f, 0xad, 0x36, 0x8a, 0x47, 0xbc, 0x07, 0x6f, 0x5a, 0x91, 0xc1, 0x0f, 0xaa, 0x57, 0x80, 0xf7, + 0x50, 0x6a, 0x14, 0x65, 0xef, 0x61, 0x55, 0x6d, 0x14, 0xb3, 0xde, 0x43, 0x55, 0x6d, 0x14, 0x73, + 0xde, 0xc3, 0xda, 0x4a, 0xa3, 0x98, 0xf7, 0x1e, 0x2a, 0xf5, 0x46, 0x71, 0xc2, 0x7b, 0x98, 0xaf, + 0x37, 0x8a, 0x05, 0xef, 0xe1, 0x6c, 0xbd, 0x51, 0x9c, 0xf4, 0x1e, 0xca, 0x8d, 0x46, 0x11, 0x78, + 0x0f, 0x77, 0xd5, 0x1b, 0xc5, 0x29, 0xef, 0xa1, 0x54, 0x6e, 0x14, 0xa7, 0xf1, 0x83, 0xda, 0x28, + 0xce, 0x78, 0x0f, 0xf5, 0x7a, 0xa3, 0x38, 0x8b, 0x29, 0xd7, 0x1b, 0xc5, 0xa3, 0xb8, 0xac, 0x4a, + 0xa3, 0x58, 0xf4, 0x1e, 0x96, 0xeb, 0x8d, 0xe2, 0x31, 0x9c, 0xb9, 0xde, 0x28, 0x2a, 0xb8, 0xd0, + 0x7a, 0xa3, 0x78, 0x09, 0xce, 0x53, 0x6f, 0x14, 0x8f, 0xe3, 0x22, 0xea, 0x8d, 0xe2, 0x09, 0xcc, + 0x86, 0xda, 0x28, 0x9e, 0xc4, 0x79, 0xb4, 0x46, 0xf1, 0x52, 0xfc, 0xa9, 0xda, 0x28, 0x9e, 0xc2, + 0x8c, 0xa9, 0x8d, 0xe2, 0x65, 0xf8, 0x41, 0x6b, 0x14, 0x21, 0xfe, 0x54, 0x6a, 0x14, 0x2f, 0x87, + 0x8f, 0x00, 0x93, 0x4b, 0xc8, 0x25, 0x20, 0xc2, 0x22, 0x90, 0x97, 0x90, 0xcb, 0x4e, 0x64, 0xbf, + 0x26, 0x83, 0x4b, 0xe9, 0xe2, 0xc7, 0xa2, 0x6d, 0x6d, 0xaf, 0xa0, 0x4d, 0xbd, 0xb5, 0xa7, 0xde, + 0xe7, 0x19, 0x64, 0xac, 0x1f, 0x83, 0x02, 0xb2, 0xdd, 0xb0, 0x33, 0xc2, 0xcf, 0xb1, 0xf6, 0xab, + 0xbf, 0x78, 0x2b, 0x87, 0x8b, 0xb7, 0xd4, 0x62, 0xfb, 0x57, 0x56, 0xa3, 0xb9, 0xfd, 0x96, 0x4c, + 0xcf, 0x7e, 0x8b, 0xd7, 0x4c, 0xba, 0xc8, 0x76, 0x2c, 0x53, 0xef, 0xd4, 0xa9, 0xa3, 0x0b, 0x59, + 0x25, 0xee, 0x4d, 0x56, 0x7e, 0xce, 0x6f, 0x19, 0xc4, 0x6a, 0x7b, 0x52, 0xdc, 0x1a, 0x4f, 0x6f, + 0x35, 0x23, 0x1a, 0xc9, 0x27, 0x83, 0x46, 0xd2, 0xe0, 0x1a, 0xc9, 0x9d, 0x07, 0xa0, 0x9d, 0xac, + 0xbd, 0x54, 0x86, 0x9b, 0xef, 0x85, 0x6e, 0xe0, 0xfe, 0xf6, 0x8e, 0x0c, 0x3f, 0x27, 0x81, 0x93, + 0xaa, 0xd9, 0x6f, 0xbe, 0xc0, 0xea, 0xc2, 0x1b, 0x58, 0x68, 0xd6, 0x78, 0x91, 0xde, 0xda, 0xb7, + 0xda, 0xfd, 0x69, 0x46, 0x48, 0xf4, 0xd3, 0x81, 0x44, 0xeb, 0x9c, 0x44, 0xef, 0x18, 0x9e, 0x74, + 0x32, 0x81, 0x56, 0x47, 0xda, 0x01, 0x65, 0xe1, 0xd7, 0x25, 0x70, 0x8c, 0xf8, 0xaa, 0xdd, 0x45, + 0xa6, 0x27, 0xb8, 0xcb, 0xe6, 0x4d, 0xa8, 0x4e, 0x38, 0x95, 0x21, 0xfa, 0xcd, 0xa4, 0xc0, 0x57, + 0xb1, 0x02, 0xbf, 0x9b, 0x17, 0x78, 0x44, 0x67, 0xdc, 0x5b, 0x5c, 0x84, 0xac, 0x3f, 0x11, 0xc8, + 0xba, 0xca, 0xc9, 0xfa, 0xd6, 0xa1, 0xa8, 0x1e, 0xae, 0x98, 0xbf, 0x99, 0x05, 0x8f, 0x20, 0x1c, + 0x52, 0x45, 0x20, 0x9d, 0x59, 0xc9, 0x6c, 0x6b, 0xc8, 0x71, 0x75, 0xdb, 0xe5, 0xc2, 0x34, 0xf4, + 0xcc, 0x7f, 0x33, 0x29, 0xcc, 0x7f, 0xa5, 0x81, 0xf3, 0x5f, 0xf8, 0x76, 0xd6, 0x4a, 0x3b, 0xc7, + 0x23, 0x5b, 0x8a, 0xc1, 0x20, 0xa2, 0x86, 0x51, 0x2d, 0x2a, 0x30, 0xdf, 0x7e, 0x9e, 0x43, 0x79, + 0xf1, 0xc0, 0x25, 0x24, 0x43, 0xfc, 0xcf, 0x46, 0x6b, 0x4e, 0x67, 0xd9, 0x6f, 0xbc, 0xed, 0x57, + 0x6c, 0xa7, 0x3a, 0x0f, 0x7a, 0x41, 0x01, 0x4c, 0xe2, 0x2e, 0x67, 0xc5, 0x30, 0x2f, 0x78, 0x63, + 0xe3, 0x74, 0x15, 0x5d, 0x2c, 0x6f, 0xe9, 0x9d, 0x0e, 0x32, 0x37, 0x11, 0xbc, 0x97, 0x33, 0xd0, + 0xf5, 0x6e, 0xb7, 0x1a, 0x6e, 0x7f, 0xfa, 0xaf, 0xca, 0x1d, 0x20, 0xe7, 0xb4, 0xac, 0x2e, 0xc2, + 0x82, 0x9a, 0x65, 0x1c, 0xa6, 0xf8, 0x25, 0xdc, 0xd2, 0x8e, 0xbb, 0x35, 0x87, 0xcb, 0x2a, 0x75, + 0x8d, 0xba, 0xf7, 0x83, 0x46, 0xfe, 0xa3, 0xe3, 0xe4, 0x37, 0xfa, 0x76, 0xc6, 0x99, 0x98, 0xce, + 0x38, 0x60, 0x7c, 0x8e, 0x65, 0x3a, 0x62, 0xa5, 0xe3, 0x2a, 0x30, 0xd5, 0xf2, 0xb3, 0x04, 0xe7, + 0xc1, 0xd8, 0x24, 0xf8, 0x8f, 0x89, 0xba, 0x6b, 0xa1, 0xc2, 0x93, 0x69, 0x15, 0x1a, 0xb1, 0xbd, + 0x78, 0x02, 0x1c, 0x6b, 0xd4, 0x6a, 0xcd, 0xd5, 0x52, 0xf5, 0x9e, 0x30, 0x0e, 0xc3, 0x06, 0x7c, + 0x59, 0x16, 0xcc, 0xd6, 0xad, 0xce, 0x2e, 0x0a, 0x71, 0xae, 0x70, 0x8e, 0x86, 0xac, 0x9c, 0x32, + 0xfb, 0xe4, 0xa4, 0x9c, 0x04, 0x79, 0xdd, 0x74, 0x2e, 0x22, 0xdf, 0x86, 0xa7, 0x6f, 0x14, 0xc6, + 0x0f, 0xb0, 0x1d, 0x81, 0xc6, 0xc3, 0x78, 0xdb, 0x00, 0x49, 0xf2, 0x5c, 0x45, 0x00, 0x79, 0x06, + 0x4c, 0x3b, 0xc4, 0x09, 0xa2, 0xc1, 0xf8, 0xba, 0x70, 0x69, 0x98, 0x45, 0xe2, 0x85, 0x23, 0x53, + 0x16, 0xf1, 0x1b, 0x7c, 0x20, 0xe8, 0x3f, 0xd6, 0x39, 0x88, 0x4b, 0x07, 0x61, 0x2c, 0x19, 0xc8, + 0xaf, 0x18, 0xf5, 0x4c, 0xfc, 0x14, 0x38, 0x4e, 0x9b, 0x7d, 0xb3, 0xbc, 0x5c, 0x5a, 0x59, 0x51, + 0xab, 0x4b, 0x6a, 0xb3, 0xb2, 0x40, 0x36, 0x55, 0xc3, 0x94, 0x52, 0xa3, 0xa1, 0xae, 0xae, 0x35, + 0xea, 0x4d, 0xf5, 0x29, 0x65, 0x55, 0x5d, 0xc0, 0xae, 0xbe, 0xf8, 0xac, 0x9e, 0xef, 0x94, 0x5d, + 0xaa, 0xd6, 0xcf, 0xa9, 0x5a, 0x71, 0xeb, 0x4c, 0x09, 0x4c, 0x31, 0x03, 0x85, 0xc7, 0xdd, 0x02, + 0xda, 0xd0, 0x77, 0x3a, 0xd4, 0xa6, 0x2e, 0x1e, 0xf1, 0xb8, 0xc3, 0xb2, 0xa9, 0x99, 0x9d, 0xbd, + 0x62, 0x46, 0x29, 0x82, 0x69, 0x76, 0x4c, 0x28, 0x4a, 0xf0, 0x2d, 0x57, 0x80, 0xc9, 0x73, 0x96, + 0x7d, 0x01, 0xfb, 0xa7, 0xc2, 0x77, 0x93, 0x78, 0x4d, 0xfe, 0xc9, 0x77, 0xc6, 0x00, 0x7b, 0x85, + 0xb8, 0x17, 0x94, 0x4f, 0x6d, 0x6e, 0xe0, 0xe9, 0xf6, 0xab, 0xc0, 0xd4, 0x45, 0x3f, 0x77, 0xd8, + 0xd2, 0x99, 0x24, 0xf8, 0x47, 0x62, 0x7e, 0x4d, 0x83, 0x8b, 0x1c, 0xc3, 0xd2, 0xba, 0x04, 0xf2, + 0x4b, 0xc8, 0x2d, 0x75, 0x3a, 0xac, 0xdc, 0x5e, 0x2c, 0x7c, 0x62, 0x91, 0xab, 0x44, 0xa9, 0xd3, + 0x89, 0x6e, 0x54, 0x8c, 0x80, 0xfc, 0x93, 0x35, 0x5c, 0x9a, 0xa0, 0x3f, 0xf0, 0x80, 0x02, 0xd3, + 0x97, 0xd8, 0x87, 0xe4, 0xc0, 0x77, 0xe7, 0x41, 0xc6, 0x4c, 0xba, 0x29, 0x8c, 0xd5, 0x95, 0x89, + 0xf7, 0x01, 0xf2, 0xf3, 0x29, 0x77, 0x83, 0x89, 0x1d, 0x07, 0x95, 0x75, 0xc7, 0x1f, 0xda, 0xf8, + 0x9a, 0xd6, 0xce, 0xdf, 0x8b, 0x5a, 0xee, 0x5c, 0x65, 0xdb, 0x9b, 0xf8, 0xac, 0x93, 0x8c, 0x41, + 0xf8, 0x2b, 0xfa, 0xae, 0xf9, 0x14, 0xbc, 0xc9, 0xe3, 0x45, 0xc3, 0xdd, 0x2a, 0x6f, 0xe9, 0x2e, + 0xdd, 0xd1, 0x08, 0xde, 0xe1, 0xf3, 0x87, 0x80, 0x33, 0xd6, 0x6b, 0x25, 0xf2, 0xe0, 0x73, 0x62, + 0x10, 0x47, 0xe0, 0x6a, 0x32, 0x0c, 0x88, 0xff, 0x22, 0x81, 0x6c, 0xad, 0x8b, 0x4c, 0xe1, 0x53, + 0x7e, 0x81, 0x6c, 0xa5, 0x1e, 0xd9, 0x3e, 0x20, 0xee, 0xf5, 0x1a, 0x54, 0xda, 0x2b, 0x39, 0x42, + 0xb2, 0x37, 0x82, 0xac, 0x61, 0x6e, 0x58, 0xd4, 0xb2, 0xbd, 0x3c, 0xc2, 0xd6, 0xa9, 0x98, 0x1b, + 0x96, 0x86, 0x33, 0x8a, 0x3a, 0xbc, 0xc6, 0x95, 0x9d, 0xbe, 0xb8, 0xbf, 0x55, 0x00, 0x79, 0xa2, + 0xce, 0xf0, 0x45, 0x32, 0x90, 0x4b, 0xed, 0x76, 0x84, 0xe0, 0xa5, 0x7d, 0x82, 0xb7, 0xf0, 0x6f, + 0x01, 0x26, 0xc1, 0x3b, 0x1f, 0xa4, 0x49, 0xb0, 0x6f, 0xa7, 0x4d, 0xaa, 0xd4, 0x6e, 0x47, 0xfb, + 0xd6, 0x07, 0x05, 0x4a, 0x7c, 0x81, 0x6c, 0x0b, 0x97, 0xc5, 0x5a, 0x78, 0xe2, 0x81, 0x20, 0x92, + 0xbf, 0xf4, 0x21, 0xfa, 0x57, 0x09, 0x4c, 0xac, 0x18, 0x8e, 0xeb, 0x61, 0x53, 0x12, 0xc1, 0xe6, + 0x0a, 0x30, 0xe9, 0x8b, 0xc6, 0xeb, 0xf2, 0xbc, 0xfe, 0x3c, 0x4c, 0xe0, 0x67, 0xe2, 0x77, 0xf1, + 0xe8, 0x3c, 0x3e, 0xbe, 0xf6, 0x94, 0x8b, 0xe8, 0xd3, 0x53, 0x61, 0xb1, 0x52, 0x6f, 0xb1, 0x7f, + 0x1c, 0x08, 0x7c, 0x95, 0x13, 0xf8, 0x2d, 0xc3, 0x14, 0x99, 0xbe, 0xd0, 0x3f, 0x2f, 0x01, 0xe0, + 0x95, 0x4d, 0x8f, 0xa8, 0x3e, 0x8a, 0x0b, 0x3c, 0x11, 0x23, 0xdd, 0x97, 0xb1, 0xd2, 0x5d, 0xe5, + 0xa5, 0xfb, 0xb3, 0x83, 0xab, 0x1a, 0x77, 0x14, 0x55, 0x29, 0x02, 0xd9, 0x08, 0x44, 0xeb, 0x3d, + 0xc2, 0x37, 0x05, 0x42, 0x5d, 0xe3, 0x84, 0x7a, 0xdb, 0x90, 0x25, 0xa5, 0x2f, 0xd7, 0xbf, 0x95, + 0xc0, 0x44, 0x1d, 0xb9, 0x5e, 0x37, 0x09, 0xcf, 0x8a, 0xf4, 0xf0, 0x4c, 0xdb, 0x96, 0x04, 0xdb, + 0xf6, 0xf7, 0x32, 0xa2, 0x01, 0xac, 0x42, 0xc9, 0x50, 0x9e, 0x22, 0x56, 0x1f, 0x1e, 0x14, 0x0a, + 0x60, 0x35, 0x88, 0x5a, 0xfa, 0xd2, 0x7d, 0x83, 0x14, 0xb8, 0x63, 0xf0, 0x27, 0xc8, 0x58, 0xb3, + 0x38, 0xb3, 0xdf, 0x2c, 0x16, 0x3f, 0x41, 0xc6, 0xd6, 0x31, 0xda, 0xbb, 0x20, 0xb1, 0xb1, 0x31, + 0x82, 0x8d, 0xff, 0x61, 0xe4, 0xf5, 0x0c, 0x19, 0xe4, 0xe9, 0x0e, 0xc0, 0x1d, 0xf1, 0x3b, 0x00, + 0x83, 0xa7, 0x16, 0xef, 0x1a, 0xc2, 0x94, 0x8b, 0x5b, 0x96, 0x0f, 0xd8, 0x90, 0x18, 0x36, 0x6e, + 0x00, 0x39, 0x1c, 0x61, 0x97, 0x8e, 0x73, 0xa1, 0xcf, 0x86, 0x4f, 0x42, 0xf5, 0xbe, 0x6a, 0x24, + 0x53, 0x62, 0x14, 0x46, 0xb0, 0x92, 0x3f, 0x0c, 0x0a, 0xdf, 0x54, 0x00, 0x58, 0xdb, 0x39, 0xdf, + 0x31, 0x9c, 0x2d, 0xc3, 0xc4, 0x8e, 0x58, 0xd3, 0xf4, 0x95, 0x04, 0x8a, 0x8d, 0x35, 0xff, 0x22, + 0x8d, 0x82, 0x22, 0x90, 0x77, 0x6c, 0x83, 0x2e, 0x03, 0x78, 0x8f, 0xca, 0xed, 0x81, 0xcb, 0x61, + 0xb6, 0x27, 0x44, 0x88, 0x27, 0x86, 0x90, 0x83, 0x39, 0xa6, 0xf4, 0xd0, 0xf5, 0x90, 0x8d, 0x06, + 0x9c, 0xe3, 0xa3, 0x01, 0x73, 0xe7, 0x86, 0xf3, 0x3d, 0xe7, 0x86, 0x3d, 0x1c, 0x1d, 0xe3, 0x69, + 0x08, 0xfb, 0xf7, 0xc8, 0x1a, 0x7e, 0xf6, 0xfe, 0xb8, 0xd7, 0x32, 0x4c, 0xbc, 0xa9, 0x43, 0x5d, + 0xe2, 0xc3, 0x04, 0xb6, 0xcf, 0x9b, 0x14, 0xec, 0xf3, 0x3e, 0x18, 0xce, 0x7d, 0x2c, 0x41, 0xc3, + 0x39, 0x81, 0xe4, 0x38, 0x76, 0xb3, 0x3d, 0xec, 0xc2, 0x8f, 0x08, 0x07, 0x0c, 0x64, 0x64, 0x1c, + 0x3b, 0x8b, 0xa1, 0x1c, 0x48, 0x01, 0x07, 0xcc, 0x46, 0x6e, 0x5c, 0x0f, 0x3c, 0x88, 0x7e, 0x32, + 0x5d, 0xde, 0x1e, 0x62, 0xbd, 0x46, 0x01, 0xb3, 0xfe, 0x01, 0xec, 0xda, 0xfc, 0x5d, 0x6a, 0xb9, + 0x51, 0x44, 0xfb, 0x0f, 0x65, 0xe3, 0xe3, 0xd7, 0xe4, 0xa8, 0x75, 0xb8, 0x26, 0x03, 0xff, 0xbb, + 0x04, 0xf2, 0xd4, 0xdc, 0xb8, 0xe3, 0x80, 0x10, 0xc2, 0x97, 0x0f, 0x03, 0x49, 0x6c, 0x1c, 0x8c, + 0x4f, 0x25, 0x05, 0x60, 0x04, 0x06, 0xc6, 0x3d, 0xa9, 0x01, 0x00, 0xff, 0x5d, 0x02, 0x59, 0xcf, + 0x0c, 0x12, 0x8b, 0x32, 0xf0, 0x49, 0x61, 0x8f, 0x5a, 0x46, 0x00, 0x1e, 0xf9, 0x08, 0xfd, 0x9e, + 0x07, 0x93, 0x5d, 0x92, 0x31, 0x88, 0x71, 0x71, 0x8d, 0x40, 0x67, 0x84, 0xb4, 0xf0, 0x37, 0xf8, + 0x4e, 0x21, 0xaf, 0xdc, 0x78, 0x7e, 0x92, 0xc1, 0xa1, 0x8e, 0x22, 0x20, 0x01, 0xf6, 0x73, 0x06, + 0x1a, 0x72, 0xac, 0xce, 0x2e, 0x5a, 0xb7, 0x0d, 0x78, 0x79, 0x08, 0x00, 0x6d, 0xf6, 0x99, 0xb0, + 0xd9, 0x7f, 0x46, 0x12, 0xf5, 0xb0, 0xe5, 0x34, 0xcf, 0x27, 0x1e, 0x21, 0xfe, 0x27, 0x83, 0x09, + 0x2a, 0x47, 0x6a, 0x53, 0x8a, 0x09, 0xdf, 0xff, 0x09, 0xbe, 0x47, 0xc8, 0x43, 0x57, 0x84, 0xa3, + 0x64, 0x00, 0x94, 0x87, 0x00, 0xe0, 0x28, 0x98, 0xf2, 0x01, 0x58, 0xd7, 0x2a, 0x45, 0x04, 0xdf, + 0x26, 0x63, 0x37, 0x09, 0x32, 0xb8, 0x1d, 0xbc, 0xa7, 0xf9, 0xba, 0xf0, 0x64, 0x9f, 0x91, 0x47, + 0x50, 0x7e, 0x4a, 0x00, 0xfd, 0xa5, 0xd0, 0xec, 0x5e, 0x80, 0xa1, 0x87, 0x4b, 0x7f, 0x75, 0x46, + 0x05, 0x33, 0x9c, 0x55, 0xa2, 0x9c, 0x02, 0xc7, 0xb9, 0x04, 0x32, 0xde, 0xb5, 0x8b, 0x47, 0x14, + 0x08, 0x4e, 0x72, 0x5f, 0xe8, 0x0b, 0x6a, 0x17, 0x33, 0xf0, 0xcd, 0x5f, 0xc8, 0x04, 0xeb, 0x3d, + 0xef, 0xca, 0xd2, 0x95, 0xb6, 0x8f, 0xf1, 0x61, 0x15, 0x5b, 0x96, 0xe9, 0xa2, 0xfb, 0x18, 0x37, + 0x95, 0x20, 0x21, 0xd6, 0x6a, 0x38, 0x05, 0x26, 0x5c, 0x9b, 0x75, 0x5d, 0xf1, 0x5f, 0x59, 0xc5, + 0xca, 0xf1, 0x8a, 0x55, 0x05, 0x67, 0x0c, 0xb3, 0xd5, 0xd9, 0x69, 0x23, 0x0d, 0x75, 0x74, 0x4f, + 0x86, 0x4e, 0xc9, 0x59, 0x40, 0x5d, 0x64, 0xb6, 0x91, 0xe9, 0x12, 0x3e, 0xfd, 0x63, 0x9d, 0x02, + 0x39, 0x79, 0x65, 0xbc, 0x9d, 0x57, 0xc6, 0x47, 0xf5, 0x5b, 0xc2, 0x8d, 0x59, 0xef, 0xbb, 0x05, + 0x00, 0x52, 0xb7, 0xb3, 0x06, 0xba, 0x48, 0xd5, 0xf0, 0xb2, 0x9e, 0x55, 0xbf, 0x5a, 0x90, 0x41, + 0x63, 0x32, 0xc3, 0x87, 0x02, 0xf5, 0xbb, 0x93, 0x53, 0xbf, 0x1b, 0x04, 0x59, 0x48, 0xa6, 0x75, + 0xdd, 0x21, 0xb4, 0x6e, 0x06, 0x4c, 0x86, 0xbb, 0xc9, 0xb2, 0x72, 0x19, 0x38, 0xe1, 0xbb, 0x09, + 0x57, 0x55, 0x75, 0xa1, 0xde, 0x5c, 0x5f, 0x5b, 0xd2, 0x4a, 0x0b, 0x6a, 0x11, 0x78, 0xfa, 0x49, + 0xf4, 0x32, 0xf0, 0xee, 0xcd, 0xc2, 0xbf, 0x91, 0x40, 0x0e, 0x9f, 0x49, 0x86, 0xbf, 0x38, 0x22, + 0xcd, 0x71, 0x38, 0xa7, 0xa7, 0x60, 0xdc, 0x15, 0xbf, 0xee, 0x80, 0x0a, 0x13, 0x73, 0x75, 0xa0, + 0xeb, 0x0e, 0x62, 0x08, 0xa5, 0x3f, 0x13, 0xf2, 0x9a, 0x64, 0x7d, 0xcb, 0xba, 0xf8, 0x93, 0xdc, + 0x24, 0xbd, 0xfa, 0x1f, 0x72, 0x93, 0xec, 0xc3, 0xc2, 0xd8, 0x9b, 0x64, 0x9f, 0x76, 0x17, 0xd3, + 0x4c, 0xe1, 0xd3, 0x73, 0xc1, 0xfc, 0xef, 0x59, 0xd2, 0x81, 0xf6, 0xbe, 0x4a, 0x60, 0xc6, 0x30, + 0x5d, 0x64, 0x9b, 0x7a, 0x67, 0xb1, 0xa3, 0x6f, 0xfa, 0xf6, 0x69, 0xef, 0x86, 0x47, 0x85, 0xc9, + 0xa3, 0xf1, 0x7f, 0x28, 0xa7, 0x01, 0x70, 0xd1, 0x76, 0xb7, 0xa3, 0xbb, 0xa1, 0xea, 0x31, 0x29, + 0xac, 0xf6, 0x65, 0x79, 0xed, 0x7b, 0x2c, 0xb8, 0x84, 0x80, 0xd6, 0xd8, 0xeb, 0xa2, 0x75, 0xd3, + 0x78, 0xea, 0x0e, 0x8e, 0xc2, 0x4b, 0x74, 0xb4, 0xdf, 0x27, 0x6e, 0x07, 0x28, 0xdf, 0xb3, 0x03, + 0xf4, 0x2f, 0xc2, 0xd1, 0x7d, 0xfc, 0x56, 0x3f, 0x20, 0xba, 0x4f, 0xd0, 0xd2, 0xe4, 0x9e, 0x96, + 0x16, 0xac, 0xcb, 0x64, 0x05, 0xd6, 0x65, 0x58, 0x54, 0x72, 0x82, 0xf3, 0xfb, 0x57, 0x0a, 0x85, + 0x0f, 0x8a, 0xab, 0x46, 0xfa, 0xbd, 0xd7, 0x77, 0x65, 0x30, 0x4b, 0x8a, 0x9e, 0xb7, 0xac, 0x0b, + 0xdb, 0xba, 0x7d, 0x01, 0xfe, 0xd6, 0xc1, 0xf6, 0x61, 0x63, 0xf7, 0x9f, 0xa2, 0x36, 0x55, 0x7b, + 0xd4, 0x2f, 0xdb, 0xab, 0x7e, 0xf0, 0xd3, 0xc2, 0x93, 0x0a, 0x4e, 0x9e, 0x7e, 0xa5, 0xc6, 0xb3, + 0x41, 0x25, 0x76, 0x0a, 0x50, 0x84, 0xc1, 0xf4, 0x81, 0xff, 0xf3, 0x00, 0x78, 0x7f, 0x24, 0x60, + 0xd7, 0xf6, 0x47, 0x89, 0x3b, 0xfc, 0xca, 0x70, 0xd8, 0xf9, 0x7c, 0x0d, 0x81, 0x5d, 0x11, 0xc8, + 0x17, 0x02, 0x77, 0x22, 0xef, 0x91, 0xad, 0x50, 0x36, 0x3d, 0x34, 0x23, 0x58, 0x1e, 0x0b, 0x9a, + 0xc7, 0x79, 0x16, 0x6a, 0xdd, 0x54, 0x31, 0xfd, 0xb2, 0xf0, 0x9e, 0x59, 0x5f, 0x01, 0x11, 0xee, + 0xc6, 0xd3, 0x2a, 0xc5, 0x36, 0xdc, 0xc4, 0xd9, 0x4c, 0x1f, 0xcd, 0xe7, 0xe5, 0xc0, 0xa4, 0x1f, + 0xa0, 0x09, 0xdf, 0x1f, 0x16, 0x60, 0x78, 0x12, 0xe4, 0x1d, 0x6b, 0xc7, 0x6e, 0x21, 0xba, 0x8b, + 0x49, 0xdf, 0x86, 0xd8, 0x71, 0x1b, 0x38, 0xe0, 0xef, 0xb3, 0x29, 0xb2, 0x89, 0x6d, 0x8a, 0x68, + 0x8b, 0x35, 0xce, 0x02, 0x78, 0xbe, 0xf0, 0xa5, 0x0f, 0x1c, 0x66, 0x75, 0xe4, 0x3e, 0x1c, 0x8d, + 0x80, 0x3f, 0x15, 0xda, 0xcf, 0x19, 0x50, 0x93, 0x64, 0x2a, 0x57, 0x1b, 0xc2, 0x92, 0xbd, 0x1c, + 0x5c, 0xea, 0xe7, 0xa0, 0x26, 0x2c, 0x36, 0x59, 0xd7, 0xb5, 0x95, 0xa2, 0x0c, 0x9f, 0x91, 0x05, + 0x45, 0xc2, 0x5a, 0x2d, 0xb0, 0xe6, 0xe0, 0x8b, 0x33, 0x87, 0x6d, 0xb2, 0x46, 0xcf, 0x41, 0x3f, + 0x2b, 0x89, 0x06, 0x96, 0xe6, 0x04, 0x1f, 0xd6, 0x2e, 0x42, 0x93, 0x86, 0x68, 0x66, 0x31, 0xca, + 0x07, 0x5f, 0x9f, 0x11, 0x89, 0x53, 0x2d, 0xc6, 0x62, 0xfa, 0xbd, 0xd2, 0xf7, 0xb2, 0x7e, 0x9c, + 0xbd, 0x45, 0xdb, 0xda, 0x5e, 0xb7, 0x3b, 0xf0, 0x7f, 0x09, 0x5d, 0x03, 0x10, 0x31, 0x3f, 0x90, + 0xa2, 0xe7, 0x07, 0x78, 0x4d, 0xb9, 0x13, 0x6e, 0x66, 0x75, 0x86, 0x18, 0xbe, 0x95, 0x6b, 0xc1, + 0xac, 0xde, 0x6e, 0xaf, 0xe9, 0x9b, 0xa8, 0xec, 0x4d, 0xbc, 0x4d, 0x97, 0xc6, 0xe0, 0xea, 0x49, + 0x8d, 0xeb, 0x8a, 0x7a, 0xfa, 0xc8, 0x89, 0x7d, 0x56, 0xa9, 0xf8, 0x42, 0x2a, 0x07, 0x22, 0x95, + 0xdf, 0x58, 0x86, 0x3f, 0x6f, 0xc8, 0x68, 0x6d, 0xe9, 0x61, 0xc4, 0x40, 0xfa, 0x26, 0xe8, 0x4d, + 0x25, 0xc0, 0x77, 0xfa, 0x9a, 0xf7, 0x27, 0x12, 0x98, 0xf0, 0xf0, 0x28, 0xb5, 0xdb, 0xf0, 0x91, + 0x5c, 0x60, 0xcd, 0x48, 0x7f, 0xb6, 0xe7, 0x08, 0x3b, 0x12, 0xfa, 0x35, 0x24, 0xf4, 0x23, 0x30, + 0x09, 0x85, 0x28, 0x71, 0x42, 0x14, 0xf3, 0x17, 0x8c, 0x2d, 0x22, 0x7d, 0xf1, 0x7d, 0x52, 0x02, + 0x33, 0xfe, 0x3c, 0x63, 0x11, 0xb9, 0xad, 0x2d, 0x78, 0x8b, 0xe8, 0x4a, 0x15, 0x6d, 0x89, 0xc1, + 0xa6, 0x6e, 0x07, 0xfe, 0x30, 0x93, 0x50, 0xe5, 0xb9, 0x92, 0x23, 0x96, 0xf9, 0x12, 0xe9, 0x62, + 0x1c, 0xc1, 0xf4, 0x85, 0xf9, 0x90, 0x04, 0x40, 0xc3, 0x0a, 0x26, 0xcb, 0x07, 0x90, 0xe4, 0x0b, + 0x85, 0xf7, 0x7b, 0x69, 0xc5, 0xc3, 0x62, 0x93, 0xf7, 0x1c, 0x82, 0xee, 0x50, 0x83, 0x4a, 0x1a, + 0x4b, 0x5b, 0x9f, 0x5c, 0xd8, 0xe9, 0x76, 0x8c, 0x96, 0xee, 0xf6, 0xfa, 0xf0, 0x45, 0x8b, 0x17, + 0x5f, 0xbe, 0x9b, 0xc8, 0x68, 0x0c, 0xca, 0x88, 0x90, 0x25, 0x09, 0x87, 0x23, 0xf9, 0xe1, 0x70, + 0x04, 0xfd, 0x72, 0x06, 0x10, 0x1f, 0x83, 0x7a, 0xca, 0xe0, 0x68, 0xad, 0x8b, 0xcc, 0x79, 0x1b, + 0xe9, 0xed, 0x96, 0xbd, 0xb3, 0x7d, 0xde, 0x61, 0x1d, 0x50, 0xe3, 0x75, 0x94, 0x59, 0x7b, 0x96, + 0xb8, 0xb5, 0x67, 0xf8, 0x4c, 0x59, 0x34, 0xa0, 0x18, 0xb3, 0x43, 0xc2, 0xf0, 0x30, 0xc4, 0x50, + 0x97, 0xc8, 0x6d, 0xaa, 0x67, 0x99, 0x39, 0x9b, 0x64, 0x99, 0xf9, 0x75, 0x42, 0xe1, 0xc9, 0x84, + 0xea, 0x35, 0x16, 0xef, 0xb7, 0xd9, 0x3a, 0x72, 0x23, 0xe0, 0xbd, 0x06, 0xcc, 0x9c, 0x0f, 0xbf, + 0x04, 0x10, 0xf3, 0x89, 0x7d, 0x7c, 0x52, 0xdf, 0x90, 0x74, 0x85, 0x86, 0x67, 0x21, 0x02, 0xdd, + 0x00, 0x41, 0x49, 0xc4, 0xf1, 0x2d, 0xd1, 0x72, 0x4b, 0x6c, 0xf9, 0xe9, 0xa3, 0xf0, 0x11, 0x09, + 0x4c, 0xe1, 0x2b, 0x85, 0xe7, 0xf7, 0xf0, 0x51, 0x4c, 0x41, 0xa3, 0xe4, 0x79, 0xac, 0x98, 0x15, + 0x90, 0xed, 0x18, 0xe6, 0x05, 0xdf, 0x63, 0xd1, 0x7b, 0x0e, 0x2f, 0xa8, 0x94, 0xfa, 0x5c, 0x50, + 0x19, 0x6c, 0x74, 0x04, 0xe5, 0x1e, 0xe8, 0xc6, 0xf4, 0x81, 0xe4, 0xd2, 0x17, 0xe3, 0x3f, 0x65, + 0x41, 0xbe, 0x8e, 0x74, 0xbb, 0xb5, 0x05, 0xdf, 0x25, 0xf5, 0x9d, 0x4a, 0x14, 0xf8, 0xa9, 0xc4, + 0x22, 0x98, 0xd8, 0x30, 0x3a, 0x2e, 0xb2, 0x89, 0x17, 0x37, 0xdb, 0xb5, 0x93, 0x26, 0x3e, 0xdf, + 0xb1, 0x5a, 0x17, 0xe6, 0xa8, 0x69, 0x3f, 0xe7, 0x07, 0x34, 0x9e, 0x5b, 0xc4, 0x3f, 0x69, 0xfe, + 0xcf, 0x9e, 0x41, 0xe8, 0x58, 0xb6, 0x1b, 0x75, 0x57, 0x4d, 0x04, 0x95, 0xba, 0x65, 0xbb, 0x1a, + 0xf9, 0xd1, 0x83, 0x79, 0x63, 0xa7, 0xd3, 0x69, 0xa0, 0xfb, 0x5c, 0x7f, 0x5a, 0xe7, 0xbf, 0x7b, + 0xc6, 0xa2, 0xb5, 0xb1, 0xe1, 0x20, 0xb2, 0xa8, 0x90, 0xd3, 0xe8, 0x9b, 0x72, 0x1c, 0xe4, 0x3a, + 0xc6, 0xb6, 0x41, 0x26, 0x22, 0x39, 0x8d, 0xbc, 0x28, 0xd7, 0x83, 0x62, 0x38, 0x07, 0x22, 0x8c, + 0x9e, 0xca, 0xe3, 0xa6, 0xb9, 0x2f, 0xdd, 0xd3, 0x99, 0x0b, 0x68, 0xcf, 0x39, 0x35, 0x81, 0xbf, + 0xe3, 0x67, 0xfe, 0xc8, 0x8c, 0xc8, 0x86, 0x09, 0x91, 0x78, 0xf4, 0x0c, 0xd7, 0x46, 0x2d, 0xcb, + 0x6e, 0xfb, 0xb2, 0x89, 0x9e, 0x60, 0xd0, 0x7c, 0xc9, 0xb6, 0x39, 0xfa, 0x16, 0x9e, 0xbe, 0xa6, + 0xbd, 0x3d, 0xef, 0x75, 0x9b, 0x5e, 0xd1, 0xe7, 0x0c, 0x77, 0x6b, 0x15, 0xb9, 0x3a, 0xfc, 0x27, + 0xb9, 0xaf, 0xc6, 0x4d, 0xfd, 0x6f, 0x8d, 0x1b, 0xa0, 0x71, 0x24, 0xf4, 0x96, 0xbb, 0x63, 0x9b, + 0x9e, 0x1c, 0xa9, 0x27, 0x2c, 0x93, 0xa2, 0xdc, 0x06, 0x2e, 0x0b, 0xdf, 0xfc, 0xa5, 0xd4, 0x05, + 0xc6, 0x39, 0xb6, 0xa0, 0x45, 0x67, 0x50, 0xd6, 0xc0, 0xd5, 0xe4, 0xe3, 0x72, 0x63, 0x75, 0x65, + 0xd9, 0xd8, 0xdc, 0xea, 0x18, 0x9b, 0x5b, 0xae, 0x53, 0x31, 0x1d, 0x17, 0xe9, 0xed, 0xda, 0x86, + 0x46, 0x6e, 0x99, 0x02, 0x98, 0x8e, 0x48, 0x56, 0xde, 0xcb, 0x5b, 0x6c, 0x74, 0x63, 0x35, 0x25, + 0xa2, 0xa5, 0x3c, 0xc1, 0x6b, 0x29, 0xce, 0x4e, 0x27, 0xc0, 0xf4, 0x8a, 0x1e, 0x4c, 0x43, 0x55, + 0xdf, 0xe9, 0xe0, 0xe6, 0x82, 0x33, 0x27, 0x1d, 0xe7, 0x62, 0x38, 0x49, 0xbf, 0xd9, 0xfc, 0xaf, + 0x3c, 0xc8, 0x2d, 0xd9, 0x7a, 0x77, 0x0b, 0x3e, 0x83, 0xe9, 0x9f, 0x47, 0xd5, 0x26, 0x02, 0xed, + 0x94, 0x06, 0x69, 0xa7, 0x3c, 0x40, 0x3b, 0xb3, 0x8c, 0x76, 0x46, 0x2f, 0x3a, 0x9f, 0x01, 0xd3, + 0x2d, 0xab, 0xd3, 0x41, 0x2d, 0x4f, 0x1e, 0x95, 0x36, 0x5e, 0xed, 0x99, 0xd4, 0xb8, 0x34, 0x1c, + 0xf4, 0x1d, 0xb9, 0x75, 0xb2, 0xc6, 0x4e, 0x94, 0x3e, 0x4c, 0x80, 0x2f, 0x96, 0x40, 0x56, 0x6d, + 0x6f, 0x22, 0x6e, 0x1d, 0x3e, 0xc3, 0xac, 0xc3, 0x9f, 0x04, 0x79, 0x57, 0xb7, 0x37, 0x91, 0xeb, + 0xaf, 0x13, 0x90, 0xb7, 0x20, 0x16, 0xbd, 0xcc, 0xc4, 0xa2, 0xff, 0x59, 0x90, 0xf5, 0x64, 0x46, + 0x1d, 0xdb, 0xaf, 0xee, 0x07, 0x3f, 0x96, 0xfd, 0x9c, 0x57, 0xe2, 0x9c, 0x57, 0x6b, 0x0d, 0xff, + 0xd0, 0x8b, 0x75, 0x6e, 0x1f, 0xd6, 0xf8, 0xc2, 0xdc, 0x96, 0x65, 0x56, 0xb6, 0xf5, 0x4d, 0x44, + 0xab, 0x19, 0x26, 0xf8, 0x5f, 0xd5, 0x6d, 0xeb, 0x5e, 0x83, 0x2e, 0x6a, 0x85, 0x09, 0x5e, 0x15, + 0xb6, 0x8c, 0x76, 0x1b, 0x99, 0xb4, 0x65, 0xd3, 0xb7, 0x33, 0xa7, 0x41, 0xd6, 0xe3, 0xc1, 0xd3, + 0x1f, 0xcf, 0x58, 0x28, 0x1e, 0x51, 0xa6, 0xbd, 0x66, 0x45, 0x1a, 0x6f, 0x31, 0xc3, 0xaf, 0xb9, + 0x8a, 0xf8, 0xfd, 0x90, 0xca, 0xf5, 0x6f, 0x5c, 0x8f, 0x01, 0x39, 0xd3, 0x6a, 0xa3, 0x81, 0x83, + 0x10, 0xc9, 0xa5, 0x3c, 0x1e, 0xe4, 0x50, 0xdb, 0xeb, 0x15, 0x64, 0x9c, 0xfd, 0x74, 0xbc, 0x2c, + 0x35, 0x92, 0x39, 0x99, 0x73, 0x51, 0x3f, 0x6e, 0xd3, 0x6f, 0x80, 0xbf, 0x3e, 0x01, 0x8e, 0x92, + 0x3e, 0xa0, 0xbe, 0x73, 0xde, 0x23, 0x75, 0x1e, 0xc1, 0x07, 0xfb, 0x0f, 0x5c, 0x47, 0x79, 0x65, + 0x3f, 0x0e, 0x72, 0xce, 0xce, 0xf9, 0xc0, 0x08, 0x25, 0x2f, 0x6c, 0xd3, 0x95, 0x46, 0x32, 0x9c, + 0xc9, 0xc3, 0x0e, 0x67, 0xdc, 0xd0, 0x24, 0xfb, 0x8d, 0x3f, 0x1c, 0xc8, 0xc8, 0x91, 0x0c, 0x7f, + 0x20, 0xeb, 0x37, 0x0c, 0x9d, 0x02, 0x13, 0xfa, 0x86, 0x8b, 0xec, 0xd0, 0x4c, 0xa4, 0xaf, 0xde, + 0x50, 0x79, 0x1e, 0x6d, 0x58, 0xb6, 0x27, 0x16, 0x72, 0x15, 0x41, 0xf0, 0xce, 0xb4, 0x5c, 0xc0, + 0xed, 0xa0, 0xdd, 0x00, 0x8e, 0x99, 0xd6, 0x02, 0xea, 0x52, 0x39, 0x13, 0x14, 0x67, 0x70, 0x0b, + 0xd8, 0xff, 0x61, 0x5f, 0x57, 0x32, 0xbb, 0xbf, 0x2b, 0x81, 0x9f, 0x49, 0x3a, 0x67, 0xee, 0x01, + 0x7a, 0x64, 0x16, 0x9a, 0xf2, 0x24, 0x30, 0xdd, 0xa6, 0x3e, 0x5e, 0x2d, 0x23, 0x68, 0x25, 0x91, + 0xff, 0x71, 0x99, 0x43, 0x45, 0xca, 0xb2, 0x8a, 0xb4, 0x04, 0x0a, 0xf8, 0xf0, 0xb4, 0xa7, 0x49, + 0xb9, 0x1e, 0x9f, 0x7a, 0x3c, 0xad, 0x0b, 0x2a, 0xc5, 0x88, 0x6d, 0xae, 0x4c, 0x7f, 0xd1, 0x82, + 0x9f, 0x93, 0xcd, 0xbe, 0xe3, 0x25, 0x94, 0x7e, 0x73, 0xfc, 0xe3, 0x3c, 0xb8, 0xac, 0x6c, 0x5b, + 0x8e, 0x83, 0x0f, 0xd1, 0xf4, 0x36, 0xcc, 0xd7, 0x48, 0xdc, 0xad, 0x34, 0x0f, 0xeb, 0xe6, 0xd7, + 0xaf, 0x41, 0x8d, 0xaf, 0x69, 0x7c, 0x5d, 0x38, 0xec, 0x4c, 0xb0, 0xff, 0x10, 0x21, 0xf4, 0x9f, + 0x8c, 0x46, 0xf2, 0xf6, 0x8c, 0x48, 0x24, 0x9c, 0x84, 0xb2, 0x4a, 0xbf, 0xb9, 0x7c, 0x59, 0x02, + 0x97, 0xf7, 0x72, 0xb3, 0x6e, 0x3a, 0x41, 0x83, 0xb9, 0x72, 0x40, 0x7b, 0xe1, 0x23, 0xa7, 0xc4, + 0xde, 0x07, 0x1b, 0x51, 0x77, 0xa6, 0xb4, 0x88, 0xc5, 0x92, 0xf0, 0x48, 0x4e, 0xdc, 0x7d, 0xb0, + 0x89, 0xc9, 0xa7, 0x2f, 0xdc, 0xcf, 0x66, 0xc1, 0xd1, 0x25, 0xdb, 0xda, 0xe9, 0x3a, 0x61, 0x0f, + 0xf4, 0xf7, 0xfd, 0x37, 0x64, 0xf3, 0x22, 0xa6, 0xc1, 0x55, 0x60, 0xca, 0xa6, 0xd6, 0x5c, 0xb8, + 0x3d, 0xcb, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x90, 0xde, 0x2b, 0xec, 0x67, 0xb2, 0x5c, 0x3f, 0xd3, + 0xdb, 0x73, 0xe4, 0xfa, 0xf4, 0x1c, 0x7f, 0x27, 0x25, 0x1c, 0x54, 0x7b, 0x44, 0x14, 0xd1, 0x5f, + 0x94, 0x41, 0x7e, 0x13, 0x67, 0xa4, 0xdd, 0xc5, 0xa3, 0xc5, 0x6a, 0x86, 0x89, 0x6b, 0xf4, 0xd7, + 0x50, 0xae, 0x32, 0xab, 0xc3, 0x89, 0x06, 0xb8, 0x78, 0x6e, 0xd3, 0x57, 0xaa, 0x07, 0xb2, 0x60, + 0x3a, 0x28, 0xbd, 0xd2, 0x76, 0xe0, 0xf3, 0xfa, 0x6b, 0xd4, 0x8c, 0x88, 0x46, 0xed, 0x5b, 0x67, + 0x0e, 0x46, 0x1d, 0x99, 0x19, 0x75, 0xfa, 0x8e, 0x2e, 0xd3, 0x11, 0xa3, 0x0b, 0x7c, 0xba, 0x2c, + 0x7a, 0xaf, 0x1b, 0xdf, 0xb5, 0xe2, 0xda, 0x3c, 0x9c, 0x07, 0x0b, 0xc1, 0xdb, 0xe5, 0x06, 0xd7, + 0x2a, 0x7d, 0x25, 0x79, 0xbf, 0x04, 0x8e, 0xed, 0xef, 0xcc, 0x7f, 0x8a, 0xf7, 0x52, 0xf3, 0xea, + 0xe4, 0x04, 0x5e, 0x6a, 0xf8, 0x8d, 0xdf, 0xa4, 0x8b, 0x0d, 0x63, 0xc2, 0xd9, 0x7b, 0x83, 0x3b, + 0x71, 0xb1, 0x40, 0x25, 0x82, 0x44, 0xd3, 0x17, 0xe0, 0x6f, 0xcb, 0x60, 0xb2, 0x8e, 0xdc, 0x15, + 0x7d, 0xcf, 0xda, 0x71, 0xa1, 0x2e, 0xba, 0x3d, 0xf7, 0x44, 0x90, 0xef, 0xe0, 0x5f, 0x70, 0x07, + 0xc3, 0x86, 0x0d, 0x65, 0xf7, 0xb7, 0xb0, 0x6f, 0x10, 0x21, 0xad, 0xd1, 0xfc, 0x7c, 0xfc, 0x18, + 0x91, 0xdd, 0xd1, 0x80, 0xbb, 0x91, 0x6c, 0xed, 0x24, 0xda, 0x3b, 0x8d, 0x2a, 0x3a, 0x7d, 0x58, + 0x9e, 0x29, 0x83, 0x99, 0x3a, 0x72, 0x2b, 0xce, 0xa2, 0xbe, 0x6b, 0xd9, 0x86, 0x8b, 0xd8, 0xfb, + 0x72, 0xe3, 0xa1, 0x39, 0x0d, 0x80, 0x11, 0xfc, 0x46, 0xa3, 0x5a, 0x31, 0x29, 0xf0, 0xf5, 0x49, + 0x1d, 0x85, 0x38, 0x3e, 0x46, 0x02, 0x42, 0x22, 0x1f, 0x8b, 0xb8, 0xe2, 0xd3, 0x07, 0xe2, 0x8b, + 0x12, 0x05, 0xa2, 0x64, 0xb7, 0xb6, 0x8c, 0x5d, 0xd4, 0x4e, 0x08, 0x84, 0xff, 0x5b, 0x08, 0x44, + 0x40, 0x28, 0xb1, 0xfb, 0x0a, 0xc7, 0xc7, 0x28, 0xdc, 0x57, 0xe2, 0x08, 0x8e, 0x25, 0x30, 0x95, + 0xd7, 0xf5, 0xd0, 0xf5, 0xcc, 0x3b, 0x44, 0xc5, 0x1a, 0x9a, 0x6c, 0x12, 0x6b, 0xb2, 0x0d, 0xd5, + 0xb1, 0x90, 0xb2, 0x07, 0xe9, 0x74, 0x36, 0x8d, 0x8e, 0xa5, 0x6f, 0xd1, 0xe9, 0x0b, 0xfd, 0x9d, + 0x32, 0x38, 0x11, 0x44, 0x6c, 0xa9, 0x23, 0x77, 0x41, 0x77, 0xb6, 0xce, 0x5b, 0xba, 0xdd, 0x86, + 0xe5, 0x11, 0x1c, 0x19, 0x84, 0x5f, 0x60, 0x41, 0xa8, 0xf2, 0x20, 0xf4, 0x75, 0x25, 0xed, 0xcb, + 0xcb, 0x28, 0x3a, 0x99, 0x58, 0x6f, 0xd7, 0x37, 0x07, 0x60, 0xfd, 0x1c, 0x07, 0xd6, 0xed, 0xc3, + 0xb2, 0x98, 0x3e, 0x70, 0xbf, 0x47, 0x46, 0x04, 0xc6, 0xeb, 0xf9, 0x1e, 0x51, 0xc0, 0x22, 0xbc, + 0x5e, 0xe5, 0x48, 0xaf, 0xd7, 0xa1, 0xc6, 0x88, 0x81, 0x1e, 0xcb, 0xe9, 0x8e, 0x11, 0x87, 0xe8, + 0x8d, 0xfc, 0x56, 0x19, 0x14, 0x71, 0xc8, 0x2e, 0xc6, 0x23, 0x9c, 0x8d, 0x80, 0x1d, 0x8f, 0xce, + 0x3e, 0xef, 0xf3, 0x89, 0xa4, 0xde, 0xe7, 0xf0, 0x2d, 0x49, 0x7d, 0xcc, 0x7b, 0xb9, 0x1d, 0x09, + 0x62, 0x89, 0x5c, 0xc8, 0x07, 0x70, 0x90, 0x3e, 0x68, 0xbf, 0x21, 0x03, 0xe0, 0x35, 0x68, 0x7a, + 0x36, 0xe2, 0x29, 0xa2, 0x70, 0xdd, 0xc8, 0xfa, 0xdd, 0x7b, 0x40, 0x9d, 0xe8, 0x01, 0x8a, 0x50, + 0x0c, 0x4f, 0x5d, 0x3c, 0x98, 0xd4, 0xb7, 0x32, 0xe4, 0x6a, 0x24, 0xb0, 0x24, 0xf2, 0xb6, 0x8c, + 0x2c, 0x3b, 0x7d, 0x40, 0xfe, 0x9b, 0x04, 0x72, 0x0d, 0xab, 0x8e, 0xdc, 0x83, 0x9b, 0x02, 0x89, + 0xcf, 0xfd, 0xe3, 0x72, 0x47, 0x71, 0xee, 0xbf, 0x1f, 0xa1, 0xf4, 0x45, 0xf7, 0x0e, 0x09, 0x4c, + 0x37, 0xac, 0x72, 0xb0, 0x38, 0x25, 0xee, 0xab, 0x2a, 0x7e, 0x37, 0x7d, 0x50, 0xc1, 0xb0, 0x98, + 0x03, 0xdd, 0x4d, 0x3f, 0x98, 0x5e, 0xfa, 0x72, 0xbb, 0x05, 0x1c, 0x5d, 0x37, 0xdb, 0x96, 0x86, + 0xda, 0x16, 0x5d, 0xe9, 0x56, 0x14, 0x90, 0xdd, 0x31, 0xdb, 0x16, 0x66, 0x39, 0xa7, 0xe1, 0x67, + 0x2f, 0xcd, 0x46, 0x6d, 0x8b, 0xfa, 0x06, 0xe0, 0x67, 0xf8, 0x75, 0x19, 0x64, 0xbd, 0x7f, 0xc5, + 0x45, 0xfd, 0x56, 0x39, 0x61, 0x24, 0x03, 0x8f, 0xfc, 0x48, 0x2c, 0xa1, 0x3b, 0x98, 0xb5, 0x7f, + 0xe2, 0xc1, 0x7a, 0x75, 0x54, 0x79, 0x8c, 0x28, 0xc2, 0x35, 0x7f, 0xe5, 0x14, 0x98, 0x38, 0xdf, + 0xb1, 0x5a, 0x17, 0xc2, 0x03, 0xf7, 0xf4, 0x55, 0xb9, 0x1e, 0xe4, 0x6c, 0xdd, 0xdc, 0x44, 0x74, + 0x4f, 0xe1, 0x78, 0x4f, 0x5f, 0x88, 0xbd, 0x5e, 0x34, 0x92, 0x05, 0xbe, 0x25, 0x49, 0x0c, 0x85, + 0x3e, 0x95, 0x4f, 0xa6, 0x0f, 0x0b, 0x43, 0x9c, 0x3c, 0x2b, 0x82, 0xe9, 0x72, 0xa9, 0x4a, 0xae, + 0x13, 0xac, 0x9d, 0x55, 0x8b, 0x32, 0x86, 0xd9, 0x93, 0x49, 0x8a, 0x30, 0x7b, 0xe4, 0x7f, 0x62, + 0x61, 0xee, 0x53, 0xf9, 0xc3, 0x80, 0xf9, 0x93, 0x12, 0x98, 0x59, 0x31, 0x1c, 0x37, 0xca, 0xdb, + 0x3f, 0x26, 0x62, 0xef, 0xf3, 0x93, 0x9a, 0xca, 0x5c, 0x39, 0xc2, 0xa1, 0x7a, 0x13, 0x99, 0xc3, + 0x71, 0x45, 0x8c, 0xe7, 0x58, 0x0a, 0xe6, 0x80, 0xdc, 0xc5, 0x2e, 0x2c, 0xc9, 0xc4, 0x86, 0x52, + 0x58, 0xc8, 0xf8, 0x0d, 0xa5, 0xc8, 0xb2, 0xd3, 0x97, 0xef, 0xd7, 0x25, 0x70, 0xcc, 0x2b, 0x3e, + 0x6e, 0x59, 0x2a, 0x5a, 0xcc, 0x03, 0x97, 0xa5, 0x12, 0xaf, 0x8c, 0xef, 0xe3, 0x65, 0x14, 0x2b, + 0xe3, 0x83, 0x88, 0x8e, 0x59, 0xcc, 0x11, 0xcb, 0xb0, 0x83, 0xc4, 0x1c, 0xb3, 0x0c, 0x3b, 0xbc, + 0x98, 0xe3, 0x97, 0x62, 0x87, 0x14, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0xa1, 0x1c, 0x88, 0x39, 0x72, + 0x6d, 0x23, 0x46, 0xcc, 0x89, 0x4f, 0xf4, 0xf2, 0xd7, 0xdb, 0x27, 0x10, 0xfc, 0x88, 0xd7, 0x37, + 0x86, 0x81, 0xe9, 0x10, 0xd7, 0x38, 0x5e, 0x22, 0x83, 0x59, 0xca, 0x45, 0xff, 0x29, 0x73, 0x0c, + 0x46, 0x89, 0xa7, 0xcc, 0x89, 0xcf, 0x00, 0xf1, 0x9c, 0x8d, 0xff, 0x0c, 0x50, 0x6c, 0xf9, 0xe9, + 0x83, 0xf3, 0x8d, 0x2c, 0x38, 0xe9, 0xb1, 0xb0, 0x6a, 0xb5, 0x8d, 0x8d, 0x3d, 0xc2, 0xc5, 0x59, + 0xbd, 0xb3, 0x83, 0x1c, 0xf8, 0x6e, 0x49, 0x14, 0xa5, 0xff, 0x03, 0x00, 0xab, 0x8b, 0x6c, 0x12, + 0x89, 0x8d, 0x02, 0x75, 0x5b, 0x54, 0x65, 0xf7, 0x97, 0x14, 0x5c, 0x60, 0x53, 0xf3, 0x89, 0x68, + 0x0c, 0x3d, 0xcf, 0x2a, 0x9c, 0x0c, 0xbe, 0xf4, 0x3a, 0x78, 0x64, 0xf6, 0x3b, 0x78, 0x5c, 0x07, + 0x64, 0xbd, 0xdd, 0x0e, 0xa0, 0xea, 0xdd, 0xcc, 0xc6, 0x65, 0x6a, 0x5e, 0x16, 0x2f, 0xa7, 0x83, + 0xc2, 0xa3, 0x79, 0x11, 0x39, 0x1d, 0xe4, 0x2a, 0x73, 0x20, 0x4f, 0x6e, 0xe5, 0x0e, 0x56, 0xf4, + 0xfb, 0x67, 0xa6, 0xb9, 0x78, 0xd3, 0xae, 0xc6, 0xab, 0xe1, 0x2d, 0x89, 0x24, 0xd3, 0xaf, 0x9f, + 0x0e, 0xed, 0x64, 0x8d, 0x53, 0xb0, 0x27, 0x0f, 0x4d, 0x79, 0x3c, 0xbb, 0x61, 0xa5, 0x6e, 0xb7, + 0xb3, 0xd7, 0xa0, 0x81, 0x07, 0x12, 0xed, 0x86, 0x31, 0xf1, 0x0b, 0xa4, 0x7d, 0xf1, 0x0b, 0x12, + 0xef, 0x86, 0x71, 0x7c, 0x8c, 0x62, 0x37, 0x2c, 0x8e, 0x60, 0xfa, 0xa2, 0xfd, 0x44, 0x81, 0x58, + 0xcd, 0xf4, 0x3e, 0x81, 0xcf, 0xf4, 0xf7, 0xac, 0x06, 0xbc, 0xb3, 0x4b, 0xbf, 0xab, 0x06, 0x62, + 0xef, 0x51, 0x51, 0x1e, 0x0f, 0xf2, 0x1b, 0x96, 0xbd, 0xad, 0xfb, 0x1b, 0xf7, 0xbd, 0x27, 0x45, + 0x68, 0x0c, 0xff, 0x45, 0x9c, 0x47, 0xa3, 0x79, 0xbd, 0xf9, 0xc8, 0xd3, 0x8c, 0x2e, 0x0d, 0xdb, + 0xe8, 0x3d, 0x2a, 0xd7, 0x80, 0x19, 0x1a, 0xbd, 0xb1, 0x8a, 0x1c, 0x17, 0xb5, 0x69, 0x44, 0x0b, + 0x3e, 0x51, 0x39, 0x03, 0xa6, 0x69, 0xc2, 0xa2, 0xd1, 0x41, 0x0e, 0x0d, 0x6a, 0xc1, 0xa5, 0x29, + 0x27, 0x41, 0xde, 0x70, 0xee, 0x72, 0x2c, 0x13, 0xfb, 0xff, 0x17, 0x34, 0xfa, 0xa6, 0x5c, 0x07, + 0x8e, 0xd2, 0x7c, 0x81, 0xb1, 0x4a, 0x0e, 0xec, 0xf4, 0x26, 0x7b, 0xaa, 0x65, 0x5a, 0x6b, 0xb6, + 0xb5, 0x69, 0x23, 0xc7, 0xc1, 0xa7, 0xa6, 0x0a, 0x1a, 0x93, 0xa2, 0xdc, 0x03, 0x8e, 0x75, 0x0c, + 0xf3, 0x82, 0x83, 0xa3, 0xfc, 0x2e, 0x52, 0xb7, 0xb1, 0xe9, 0x3e, 0xd1, 0xb7, 0x99, 0xc6, 0x46, + 0xe5, 0xc0, 0xfe, 0xa2, 0xed, 0xa7, 0xa2, 0x5c, 0x0f, 0x8a, 0x94, 0x9b, 0x79, 0xbd, 0x75, 0x01, + 0x7f, 0xa7, 0xee, 0xa8, 0xfb, 0xd2, 0xe1, 0x8b, 0x32, 0x60, 0x9a, 0xfb, 0x59, 0x07, 0x8a, 0xdf, + 0xe5, 0x39, 0xe7, 0xb6, 0x0c, 0x17, 0x79, 0x05, 0xd3, 0x73, 0x2c, 0x37, 0x0d, 0x60, 0x4c, 0xdb, + 0xf7, 0xa3, 0xd6, 0x87, 0x98, 0x07, 0x00, 0xe9, 0xcc, 0xb0, 0xd7, 0x98, 0x43, 0xed, 0x50, 0x2e, + 0x0d, 0x3e, 0x0d, 0x28, 0xfb, 0xa9, 0x31, 0x1e, 0x1e, 0x99, 0x64, 0x1e, 0x1e, 0x9e, 0x4c, 0xf4, + 0x4e, 0xc7, 0xba, 0x88, 0xda, 0x01, 0x59, 0xaa, 0x87, 0xfb, 0xd2, 0xe1, 0xe7, 0x86, 0x99, 0xf3, + 0x25, 0xbe, 0xf6, 0xc2, 0x6b, 0x40, 0x3b, 0xad, 0x16, 0x42, 0x6d, 0x7a, 0x28, 0xcd, 0x7f, 0x4d, + 0x78, 0x21, 0x46, 0xe2, 0x19, 0xe2, 0x21, 0xdd, 0x88, 0xf1, 0xa1, 0x13, 0x20, 0x4f, 0x6e, 0x97, + 0x83, 0x2f, 0x9a, 0xed, 0xdb, 0x8f, 0xcc, 0xf2, 0xfd, 0xc8, 0x3a, 0x98, 0x36, 0x2d, 0xaf, 0xb8, + 0x35, 0xdd, 0xd6, 0xb7, 0x9d, 0xb8, 0x05, 0x60, 0x42, 0x37, 0x18, 0xed, 0xab, 0xcc, 0x6f, 0xcb, + 0x47, 0x34, 0x8e, 0x8c, 0xf2, 0x7f, 0x82, 0xa3, 0xe7, 0x69, 0xf0, 0x06, 0x87, 0x52, 0x96, 0xa2, + 0xdd, 0x23, 0x7b, 0x28, 0xcf, 0xf3, 0x7f, 0x2e, 0x1f, 0xd1, 0x7a, 0x89, 0x29, 0xbf, 0x00, 0x66, + 0xbd, 0xd7, 0xb6, 0x75, 0xd1, 0x67, 0x5c, 0x8e, 0xb6, 0x11, 0x7b, 0xc8, 0xaf, 0x72, 0x3f, 0x2e, + 0x1f, 0xd1, 0x7a, 0x48, 0x29, 0x35, 0x00, 0xb6, 0xdc, 0xed, 0x0e, 0x25, 0x9c, 0x8d, 0x56, 0xc9, + 0x1e, 0xc2, 0xcb, 0xc1, 0x4f, 0xcb, 0x47, 0x34, 0x86, 0x84, 0xb2, 0x02, 0x26, 0xdd, 0xfb, 0x5c, + 0x4a, 0x2f, 0x17, 0xed, 0x97, 0xd0, 0x43, 0xaf, 0xe1, 0xff, 0xb3, 0x7c, 0x44, 0x0b, 0x09, 0x28, + 0x15, 0x50, 0xe8, 0x9e, 0xa7, 0xc4, 0xf2, 0xd1, 0x7d, 0x59, 0x0f, 0xb1, 0xb5, 0xf3, 0x01, 0xad, + 0xe0, 0x77, 0x8f, 0xb1, 0x96, 0xb3, 0x4b, 0x69, 0x4d, 0x08, 0x33, 0x56, 0xf6, 0xff, 0xf1, 0x18, + 0x0b, 0x08, 0x28, 0x15, 0x30, 0xe9, 0x98, 0x7a, 0xd7, 0xd9, 0xb2, 0x5c, 0xe7, 0x54, 0xa1, 0xc7, + 0x85, 0x35, 0x9a, 0x5a, 0x9d, 0xfe, 0xa3, 0x85, 0x7f, 0x2b, 0x8f, 0x07, 0x27, 0x76, 0xba, 0x6d, + 0xdd, 0x45, 0xea, 0x7d, 0x86, 0xe3, 0x1a, 0xe6, 0xa6, 0x1f, 0x3f, 0x98, 0x0c, 0x04, 0xfd, 0x3f, + 0x2a, 0x73, 0xf4, 0x30, 0x1b, 0xc0, 0x6d, 0x13, 0xf6, 0xee, 0xa3, 0x92, 0x62, 0x99, 0x33, 0x6c, + 0x4f, 0x02, 0x59, 0xef, 0x13, 0x1e, 0x38, 0x66, 0xfb, 0xaf, 0xd1, 0xf6, 0xea, 0x0e, 0x6e, 0xc0, + 0xde, 0x4f, 0x3d, 0x63, 0xcf, 0xf4, 0xbe, 0xb1, 0xe7, 0x2a, 0x30, 0x65, 0x38, 0xab, 0xc6, 0x26, + 0x31, 0x7c, 0xe9, 0xd8, 0xc0, 0x26, 0x91, 0x85, 0x82, 0x2a, 0xba, 0x48, 0x6e, 0x47, 0x39, 0xea, + 0x2f, 0x14, 0xf8, 0x29, 0xf0, 0x5a, 0x30, 0xcd, 0x36, 0x32, 0x72, 0x45, 0xad, 0x11, 0x9a, 0xcd, + 0xf4, 0x0d, 0x5e, 0x03, 0x66, 0x79, 0x9d, 0x66, 0xac, 0x03, 0xd9, 0xef, 0x0a, 0xe1, 0xd5, 0xe0, + 0x68, 0x4f, 0xc3, 0xf2, 0xc3, 0xc1, 0x64, 0xc2, 0x70, 0x30, 0x57, 0x01, 0x10, 0x6a, 0x71, 0x5f, + 0x32, 0x57, 0x82, 0xc9, 0x40, 0x2f, 0xfb, 0x66, 0xf8, 0x6a, 0x06, 0x14, 0x7c, 0x65, 0xeb, 0x97, + 0xc1, 0x1b, 0x99, 0x4c, 0x66, 0xef, 0xc7, 0x1f, 0x99, 0xd8, 0x34, 0xcf, 0x04, 0x08, 0x3d, 0xae, + 0x1b, 0x86, 0xdb, 0xf1, 0x4f, 0x2d, 0xf6, 0x26, 0x2b, 0x6b, 0x00, 0x18, 0x18, 0xa3, 0x46, 0x78, + 0x8c, 0xf1, 0xb1, 0x09, 0xda, 0x03, 0xd1, 0x07, 0x86, 0xc6, 0x99, 0x9f, 0xa2, 0x67, 0x0c, 0x27, + 0x41, 0x8e, 0x04, 0xd1, 0x3f, 0xa2, 0xcc, 0x02, 0xa0, 0x3e, 0x65, 0x4d, 0xd5, 0x2a, 0x6a, 0xb5, + 0xac, 0x16, 0x33, 0xf0, 0xa5, 0x12, 0x98, 0x0c, 0x1a, 0x41, 0xdf, 0x4a, 0xaa, 0x54, 0xb5, 0x06, + 0xde, 0x02, 0xba, 0xbf, 0x51, 0xb1, 0x4a, 0xf6, 0x44, 0x70, 0xe9, 0x8e, 0x83, 0x16, 0x0d, 0xdb, + 0x71, 0x35, 0xeb, 0xe2, 0xa2, 0x65, 0x87, 0x03, 0x2b, 0x09, 0x5e, 0x1b, 0xf5, 0xd9, 0x33, 0x06, + 0xdb, 0x08, 0x9f, 0x67, 0x43, 0x36, 0x5d, 0xd4, 0x0f, 0x13, 0x3c, 0xba, 0xae, 0xad, 0x9b, 0x4e, + 0xd7, 0x72, 0x90, 0x66, 0x5d, 0x74, 0x4a, 0x66, 0xbb, 0x6c, 0x75, 0x76, 0xb6, 0x4d, 0x87, 0x9a, + 0x73, 0x51, 0x9f, 0x3d, 0xe9, 0xe0, 0x3b, 0x7e, 0x67, 0x01, 0x28, 0xd7, 0x56, 0x56, 0xd4, 0x72, + 0xa3, 0x52, 0xab, 0x16, 0x8f, 0x78, 0xd2, 0x6a, 0x94, 0xe6, 0x57, 0x3c, 0xe9, 0xfc, 0x22, 0x28, + 0xf8, 0x6d, 0x9a, 0x46, 0xb0, 0xc9, 0xf8, 0x11, 0x6c, 0x94, 0x12, 0x28, 0xf8, 0xad, 0x9c, 0x8e, + 0x08, 0x8f, 0xec, 0x3d, 0xb1, 0xbc, 0xad, 0xdb, 0x2e, 0x36, 0x50, 0x7c, 0x22, 0xf3, 0xba, 0x83, + 0xb4, 0xe0, 0xb7, 0x33, 0x8f, 0xa1, 0x1c, 0x28, 0x60, 0xb6, 0xb4, 0xb2, 0xd2, 0xac, 0x69, 0xcd, + 0x6a, 0xad, 0xb1, 0x5c, 0xa9, 0x2e, 0x91, 0x11, 0xb2, 0xb2, 0x54, 0xad, 0x69, 0x2a, 0x19, 0x20, + 0xeb, 0xc5, 0x0c, 0xb9, 0x63, 0x7a, 0xbe, 0x00, 0xf2, 0x5d, 0x2c, 0x5d, 0xf8, 0x65, 0x39, 0x61, + 0xa8, 0x82, 0x00, 0xa7, 0x88, 0x5b, 0x70, 0xb9, 0xe3, 0x02, 0x52, 0x9f, 0xe3, 0xbc, 0x67, 0xc0, + 0x34, 0x31, 0xc3, 0x1d, 0xbc, 0xf3, 0x82, 0x91, 0x93, 0x35, 0x2e, 0x0d, 0x7e, 0x44, 0x4a, 0x10, + 0xbf, 0xa0, 0x2f, 0x47, 0xc9, 0x8c, 0x8b, 0xbf, 0xce, 0x0c, 0x77, 0xe5, 0x44, 0xa5, 0xda, 0x50, + 0xb5, 0x6a, 0x69, 0x85, 0x66, 0x91, 0x95, 0x53, 0xe0, 0x78, 0xb5, 0x46, 0xc3, 0x35, 0xd6, 0x9b, + 0x8d, 0x5a, 0xb3, 0xb2, 0xba, 0x56, 0xd3, 0x1a, 0xc5, 0x9c, 0x72, 0x12, 0x28, 0xe4, 0xb9, 0x59, + 0xa9, 0x37, 0xcb, 0xa5, 0x6a, 0x59, 0x5d, 0x51, 0x17, 0x8a, 0x79, 0xe5, 0x51, 0xe0, 0x6a, 0x72, + 0x85, 0x51, 0x6d, 0xb1, 0xa9, 0xd5, 0xce, 0xd5, 0x3d, 0x04, 0x35, 0x75, 0xa5, 0xe4, 0x29, 0x12, + 0x73, 0xd7, 0xf4, 0x84, 0x72, 0x09, 0x38, 0x8a, 0x2f, 0xa2, 0x5f, 0xa9, 0x95, 0x16, 0x68, 0x79, + 0x05, 0xe5, 0x0a, 0x70, 0xaa, 0x52, 0xad, 0xaf, 0x2f, 0x2e, 0x56, 0xca, 0x15, 0xb5, 0xda, 0x68, + 0xae, 0xa9, 0xda, 0x6a, 0xa5, 0x5e, 0xf7, 0xfe, 0x2d, 0x4e, 0xe2, 0x9b, 0x7c, 0x49, 0x9f, 0x09, + 0xdf, 0x25, 0x83, 0x99, 0xb3, 0x7a, 0xc7, 0xf0, 0x06, 0x0a, 0x7c, 0xc5, 0x77, 0xcf, 0x49, 0x1f, + 0x17, 0x5f, 0x05, 0x4e, 0xcf, 0x0a, 0xe0, 0x17, 0xf8, 0xab, 0x72, 0xc2, 0x93, 0x3e, 0x14, 0x08, + 0x52, 0xe2, 0x1c, 0x57, 0x5a, 0xc4, 0xbc, 0xf4, 0x95, 0x52, 0x82, 0x93, 0x3e, 0xe2, 0xe4, 0x93, + 0x81, 0xff, 0xfb, 0xa3, 0x02, 0xbf, 0x08, 0xa6, 0xd7, 0xab, 0xa5, 0xf5, 0xc6, 0x72, 0x4d, 0xab, + 0xfc, 0x3c, 0x8e, 0x34, 0x3f, 0x03, 0x26, 0x17, 0x6b, 0xda, 0x7c, 0x65, 0x61, 0x41, 0xad, 0x16, + 0x73, 0xca, 0xa5, 0xe0, 0x92, 0xba, 0xaa, 0x9d, 0xad, 0x94, 0xd5, 0xe6, 0x7a, 0xb5, 0x74, 0xb6, + 0x54, 0x59, 0xc1, 0x7d, 0x44, 0x3e, 0xe6, 0x7a, 0xf2, 0x09, 0xf8, 0xcb, 0x59, 0x00, 0x48, 0xd5, + 0xf1, 0x45, 0x4b, 0xcc, 0x25, 0xd6, 0x7f, 0x93, 0x74, 0xd2, 0x10, 0x92, 0x89, 0x68, 0xbf, 0x15, + 0x50, 0xb0, 0xe9, 0x07, 0xba, 0xf2, 0x35, 0x88, 0x0e, 0x79, 0xf4, 0xa9, 0x69, 0xc1, 0xef, 0xf0, + 0xdd, 0x49, 0xe6, 0x08, 0x91, 0x8c, 0x25, 0x43, 0x72, 0x71, 0x34, 0x40, 0xc2, 0xe7, 0x65, 0xc0, + 0x2c, 0x5f, 0x31, 0xaf, 0x12, 0xd8, 0x98, 0x12, 0xab, 0x04, 0xff, 0x33, 0x63, 0x64, 0x9d, 0x79, + 0x1c, 0x1d, 0x4e, 0x81, 0xdf, 0x32, 0xc9, 0xa1, 0x7d, 0xdf, 0x62, 0x29, 0x66, 0x3c, 0xe6, 0x3d, + 0xa3, 0xa3, 0x28, 0x29, 0x13, 0x40, 0x6e, 0xdc, 0xe7, 0x16, 0x65, 0xf8, 0x55, 0x19, 0xcc, 0x70, + 0xb7, 0x64, 0xc3, 0x57, 0x66, 0x44, 0x6e, 0xb0, 0x65, 0xee, 0xdf, 0xce, 0x1c, 0xf4, 0xfe, 0xed, + 0x33, 0x37, 0x82, 0x09, 0x9a, 0x86, 0xe5, 0x5b, 0xab, 0x7a, 0xa6, 0xc0, 0x51, 0x30, 0xb5, 0xa4, + 0x36, 0x9a, 0xf5, 0x46, 0x49, 0x6b, 0xa8, 0x0b, 0xc5, 0x8c, 0x37, 0xf0, 0xa9, 0xab, 0x6b, 0x8d, + 0x7b, 0x8a, 0x52, 0x72, 0xe7, 0xc9, 0x5e, 0x46, 0xc6, 0xec, 0x3c, 0x19, 0x57, 0x7c, 0xfa, 0x73, + 0xd5, 0xcf, 0xc8, 0xa0, 0x48, 0x38, 0x50, 0xef, 0xeb, 0x22, 0xdb, 0x40, 0x66, 0x0b, 0xc1, 0x0b, + 0x22, 0xc1, 0x5c, 0xf7, 0x85, 0x31, 0xc4, 0xfd, 0x39, 0x63, 0x25, 0x92, 0x97, 0x1e, 0x03, 0x3b, + 0xbb, 0xcf, 0xc0, 0xfe, 0x74, 0x52, 0xef, 0xc9, 0x5e, 0x76, 0x47, 0x02, 0xd9, 0xc7, 0x93, 0x78, + 0x4f, 0x0e, 0xe0, 0x60, 0x2c, 0x31, 0x9a, 0x23, 0xc6, 0xdf, 0xa2, 0x0c, 0x9f, 0x2b, 0x83, 0xa3, + 0x0b, 0xba, 0x8b, 0xe6, 0xf7, 0x1a, 0xfe, 0x2d, 0x96, 0x11, 0x37, 0x4f, 0x67, 0xf6, 0xdd, 0x3c, + 0x1d, 0x5e, 0x84, 0x29, 0xf5, 0x5c, 0x84, 0x09, 0xdf, 0x9e, 0xf4, 0xbc, 0x65, 0x0f, 0x0f, 0x23, + 0x0b, 0xa4, 0x9c, 0xec, 0x1c, 0x65, 0x3c, 0x17, 0xe9, 0x37, 0xb0, 0x37, 0x4d, 0x82, 0x22, 0x61, + 0x85, 0x71, 0x10, 0xfc, 0x6d, 0x7a, 0x59, 0x7b, 0x33, 0x41, 0x3c, 0x46, 0x3f, 0xc2, 0x85, 0xc4, + 0x47, 0xb8, 0xe0, 0xd6, 0x9b, 0xe5, 0x5e, 0xa7, 0x8e, 0xa4, 0x9d, 0x21, 0xe3, 0x0d, 0x18, 0x1d, + 0x02, 0x37, 0xbd, 0xce, 0x30, 0xb6, 0xf8, 0xf1, 0x5c, 0x28, 0x4c, 0xef, 0xf0, 0x54, 0x45, 0x91, + 0x89, 0xbf, 0x37, 0x3d, 0xa9, 0x6b, 0x38, 0xe7, 0x8d, 0x19, 0x73, 0x99, 0x78, 0x7a, 0xae, 0xe1, + 0x83, 0x38, 0x48, 0x1f, 0x85, 0x1f, 0x4a, 0x20, 0x5b, 0xb7, 0x6c, 0x77, 0x54, 0x18, 0x24, 0xdd, + 0xce, 0x66, 0x24, 0x50, 0x8f, 0x9e, 0x73, 0xa6, 0xb7, 0x9d, 0x1d, 0x5f, 0xfe, 0x18, 0x42, 0x5a, + 0x1e, 0x05, 0xb3, 0x84, 0x93, 0xe0, 0x3e, 0x98, 0x1f, 0x48, 0xa4, 0xbf, 0xba, 0x5b, 0x14, 0x11, + 0xbc, 0xf1, 0x11, 0x6c, 0x27, 0xfb, 0xa0, 0x70, 0x69, 0xf0, 0x35, 0x2c, 0x2e, 0x0b, 0x3c, 0x2e, + 0xfd, 0x66, 0xdc, 0xc1, 0x95, 0x2a, 0xa3, 0xea, 0x99, 0x92, 0x44, 0xc7, 0x8c, 0x29, 0x3c, 0x7d, + 0x44, 0xee, 0x97, 0x41, 0x9e, 0xba, 0xf3, 0x8d, 0x14, 0x81, 0xa4, 0x2d, 0x23, 0x10, 0x82, 0x98, + 0xdb, 0x9f, 0x3c, 0xea, 0x96, 0x11, 0x5f, 0x7e, 0xfa, 0x38, 0xfc, 0x88, 0xfa, 0xa9, 0x96, 0x76, + 0x75, 0xa3, 0xa3, 0x9f, 0xef, 0x24, 0x88, 0x4a, 0xfd, 0x91, 0x84, 0x27, 0xf3, 0x82, 0xaa, 0x72, + 0xe5, 0x45, 0x48, 0xfc, 0x67, 0xc0, 0xa4, 0xcd, 0xed, 0xf5, 0x79, 0x56, 0x54, 0x8f, 0x8f, 0x30, + 0xfd, 0xae, 0x85, 0x39, 0x13, 0x1d, 0xc3, 0x13, 0xe2, 0x67, 0x2c, 0xc7, 0x86, 0xa6, 0x4a, 0xed, + 0xf6, 0x22, 0xd2, 0xdd, 0x1d, 0x1b, 0xb5, 0x13, 0x0d, 0x11, 0x76, 0xcf, 0x76, 0x28, 0x23, 0x09, + 0x2e, 0x2e, 0xe4, 0x0a, 0x8f, 0xce, 0x13, 0x06, 0xf4, 0x06, 0x3e, 0x2f, 0x23, 0xe9, 0x92, 0xde, + 0x18, 0x40, 0x52, 0xe3, 0x20, 0x79, 0xd2, 0x70, 0x4c, 0xa4, 0x0f, 0xc8, 0xef, 0xca, 0x60, 0x96, + 0xd8, 0x09, 0xa3, 0xc6, 0xe4, 0x7d, 0x09, 0xdd, 0x7f, 0x98, 0x1b, 0xb7, 0x58, 0x76, 0x46, 0x02, + 0x4b, 0x12, 0x67, 0x21, 0x31, 0x3e, 0xd2, 0x47, 0xe6, 0x59, 0xc7, 0x00, 0x60, 0x5c, 0x3a, 0x3f, + 0x92, 0x0f, 0x63, 0x34, 0xc2, 0xb7, 0xd0, 0xf9, 0x47, 0x9d, 0x0b, 0x18, 0xce, 0xb8, 0x6b, 0x06, + 0x1b, 0x52, 0x7c, 0xa2, 0xd0, 0xa8, 0xf2, 0xd7, 0x09, 0x6d, 0x5e, 0xea, 0x50, 0x39, 0x70, 0x70, + 0x1f, 0xb2, 0x97, 0xfb, 0x68, 0x02, 0xe3, 0x77, 0x10, 0x2b, 0xc9, 0x50, 0x5b, 0x19, 0x62, 0x66, + 0x7f, 0x0a, 0x1c, 0xd7, 0xd4, 0xd2, 0x42, 0xad, 0xba, 0x72, 0x0f, 0x7b, 0xfd, 0x52, 0x51, 0x66, + 0x27, 0x27, 0xa9, 0xc0, 0xf6, 0xaa, 0x84, 0x7d, 0x20, 0x2f, 0xab, 0xb8, 0xd9, 0x0a, 0xb3, 0xb8, + 0x32, 0xb8, 0x57, 0x13, 0x20, 0x7b, 0x98, 0x28, 0x7c, 0x27, 0x0f, 0xa6, 0x34, 0xd4, 0xb2, 0xb6, + 0xb7, 0x91, 0xd9, 0x46, 0x6d, 0xf8, 0x2a, 0x19, 0x4c, 0x07, 0xfb, 0x7d, 0x75, 0xe4, 0xc2, 0x5f, + 0x08, 0xb1, 0x39, 0x03, 0xa6, 0xbd, 0xca, 0xd5, 0xf8, 0x20, 0xf0, 0x5c, 0x9a, 0x72, 0x03, 0x38, + 0xe6, 0xa3, 0x50, 0xeb, 0x99, 0xc2, 0xec, 0xff, 0x00, 0xdf, 0xc1, 0x62, 0xb4, 0xce, 0x63, 0x74, + 0x47, 0xb4, 0x30, 0x03, 0x76, 0xe7, 0x58, 0x56, 0x23, 0xc0, 0xfa, 0xab, 0x00, 0xac, 0xa7, 0x70, + 0x60, 0x2d, 0x1c, 0x90, 0xfe, 0x61, 0xa2, 0xf6, 0x5e, 0x19, 0x1c, 0xf7, 0x3b, 0xe2, 0xf1, 0xa1, + 0xf5, 0x51, 0x16, 0xad, 0x5f, 0xe4, 0xd1, 0x5a, 0x12, 0x91, 0x66, 0x3f, 0x96, 0x23, 0x50, 0xfb, + 0x52, 0x80, 0xda, 0x2f, 0x71, 0xa8, 0xad, 0x8c, 0xa8, 0x9c, 0xc3, 0x44, 0xef, 0x7d, 0x32, 0x38, + 0xe5, 0x99, 0x9d, 0x65, 0xcb, 0xdc, 0xe8, 0x18, 0x2d, 0xd7, 0x30, 0x37, 0x43, 0x17, 0xb6, 0x25, + 0x91, 0x95, 0xcd, 0x5e, 0x6c, 0xa5, 0xfd, 0xd8, 0xf2, 0xb1, 0x33, 0x44, 0xdb, 0x56, 0x14, 0x5b, + 0x11, 0x43, 0x18, 0xe3, 0x78, 0x1d, 0x6a, 0x0e, 0x9b, 0x94, 0xbc, 0xf5, 0x09, 0x72, 0x70, 0x98, + 0xf8, 0xdd, 0x0f, 0x18, 0xd3, 0xe3, 0x39, 0x32, 0x28, 0x62, 0x7f, 0x49, 0xdc, 0xb3, 0xd3, 0xbb, + 0x49, 0x6b, 0xbc, 0x97, 0x7c, 0xd7, 0x17, 0x90, 0xef, 0x25, 0xef, 0x27, 0x28, 0xd7, 0x82, 0xd9, + 0xd6, 0x16, 0x6a, 0x5d, 0xa8, 0x98, 0xbe, 0x2f, 0x12, 0x71, 0x5c, 0xe9, 0x49, 0xe5, 0x07, 0xb3, + 0xbb, 0x79, 0x30, 0xf9, 0x85, 0x47, 0x6e, 0x62, 0xc3, 0x32, 0x15, 0xd1, 0xd0, 0x3e, 0x11, 0x00, + 0x54, 0xe5, 0x00, 0xba, 0x75, 0x28, 0xaa, 0xc9, 0x60, 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, + 0x6b, 0x8d, 0x4a, 0xad, 0xda, 0x5c, 0xaf, 0xab, 0x0b, 0xcd, 0x79, 0x1f, 0x9c, 0x7a, 0x51, 0x86, + 0xdf, 0x94, 0xc0, 0x04, 0x61, 0xcb, 0x81, 0x8f, 0x0e, 0x21, 0x18, 0x78, 0x3c, 0x00, 0xbe, 0x49, + 0x38, 0xd8, 0x4f, 0x20, 0x08, 0x5a, 0x4e, 0x44, 0xc3, 0x78, 0x22, 0x98, 0x20, 0x20, 0xfb, 0xbb, + 0x00, 0xa7, 0x23, 0x2c, 0x3b, 0x4a, 0x46, 0xf3, 0xb3, 0x0b, 0x06, 0xfe, 0x19, 0xc0, 0x46, 0xfa, + 0xd6, 0xf8, 0xd3, 0xb3, 0x64, 0xe9, 0xe0, 0x9c, 0xe1, 0x6e, 0xe1, 0xd3, 0x03, 0xf0, 0xe7, 0x44, + 0x3a, 0xae, 0x1b, 0x40, 0x6e, 0xd7, 0xcb, 0x3d, 0xe0, 0x24, 0x06, 0xc9, 0x04, 0x7f, 0x5f, 0x38, + 0xce, 0x34, 0xa7, 0x9f, 0x01, 0x4f, 0x11, 0xe0, 0xac, 0x82, 0x6c, 0xc7, 0x70, 0x5c, 0x6a, 0x73, + 0xdf, 0x92, 0x88, 0x90, 0xff, 0x50, 0x71, 0xd1, 0xb6, 0x86, 0xc9, 0xc0, 0xbb, 0x3c, 0x8b, 0x29, + 0x4c, 0x15, 0x38, 0x8d, 0x72, 0x0a, 0x4c, 0xd0, 0x53, 0xd2, 0x74, 0x5b, 0xca, 0x7f, 0x15, 0xdc, + 0x0a, 0x12, 0xaa, 0x6d, 0xfa, 0x3a, 0xf0, 0xff, 0x1d, 0x05, 0x13, 0xcb, 0x86, 0xe3, 0x5a, 0xf6, + 0x1e, 0x7c, 0x30, 0x03, 0x26, 0xce, 0x22, 0xdb, 0x31, 0x2c, 0x73, 0x9f, 0x7b, 0xd6, 0x55, 0x60, + 0xaa, 0x6b, 0xa3, 0x5d, 0xc3, 0xda, 0x71, 0x98, 0x51, 0x82, 0x49, 0x52, 0x20, 0x28, 0xe8, 0x3b, + 0xee, 0x96, 0x65, 0x87, 0xc1, 0x95, 0xfc, 0x77, 0xe5, 0x34, 0x00, 0xe4, 0xb9, 0xaa, 0x6f, 0x23, + 0xff, 0xfe, 0xf4, 0x30, 0x45, 0x51, 0x40, 0xd6, 0x35, 0xb6, 0x11, 0x8d, 0xb6, 0x8e, 0x9f, 0x3d, + 0x01, 0xe3, 0xc8, 0xa5, 0x34, 0x42, 0xac, 0xac, 0xf9, 0xaf, 0xf0, 0x0b, 0x32, 0x98, 0x5a, 0x42, + 0x2e, 0x65, 0xd5, 0x81, 0xcf, 0xcf, 0x08, 0x5d, 0x70, 0xe4, 0xcd, 0x4b, 0x3a, 0xba, 0xe3, 0xff, + 0x17, 0x0c, 0xb9, 0x7c, 0x62, 0x18, 0xfa, 0x5d, 0x66, 0xef, 0x7d, 0xc0, 0x71, 0x40, 0xdd, 0x0a, + 0x71, 0xe0, 0xa7, 0x99, 0xe9, 0xc6, 0xf1, 0xfe, 0x0f, 0xbc, 0x4d, 0x1c, 0x1b, 0x43, 0x83, 0xca, + 0x7e, 0x8e, 0xa9, 0x4f, 0x64, 0x77, 0x54, 0xd8, 0xa5, 0x39, 0xf6, 0x5d, 0xe9, 0xc1, 0x52, 0xa2, + 0x64, 0xb4, 0x20, 0xb7, 0x60, 0xf4, 0x8d, 0xc1, 0x9c, 0x8c, 0xe1, 0x12, 0x57, 0x19, 0x4c, 0xd5, + 0xb7, 0xac, 0x8b, 0xbe, 0x1c, 0x7f, 0x51, 0x0c, 0xd8, 0x2b, 0xc0, 0xe4, 0x6e, 0x0f, 0xa8, 0x61, + 0x02, 0x7b, 0x6f, 0x9c, 0xcc, 0xdf, 0x1b, 0xf7, 0x6c, 0x39, 0x29, 0x4c, 0x0c, 0x73, 0x11, 0x30, + 0xf1, 0x57, 0xbd, 0x49, 0x09, 0xae, 0x7a, 0x53, 0x9e, 0x00, 0x26, 0x28, 0xd7, 0x74, 0x99, 0x3a, + 0x1e, 0x60, 0x3f, 0x33, 0x5b, 0xc1, 0x2c, 0x5f, 0xc1, 0x64, 0xc8, 0x47, 0x57, 0x2e, 0x7d, 0xe4, + 0xff, 0x42, 0xc2, 0xb1, 0x97, 0x7c, 0xe0, 0xcb, 0x23, 0x00, 0x1e, 0x7e, 0x3f, 0x23, 0xba, 0x99, + 0x13, 0x48, 0x20, 0xe0, 0xe0, 0x40, 0x97, 0x97, 0x0d, 0x24, 0x97, 0xbe, 0x3c, 0x5f, 0x9a, 0x05, + 0xd3, 0x0b, 0xc6, 0xc6, 0x46, 0xd0, 0x49, 0xbe, 0x40, 0xb0, 0x93, 0x8c, 0x76, 0xa1, 0xf2, 0xec, + 0xdc, 0x1d, 0xdb, 0x46, 0xa6, 0x5f, 0x29, 0xda, 0x9c, 0x7a, 0x52, 0x95, 0xeb, 0xc0, 0x51, 0x7f, + 0x5c, 0x60, 0x3b, 0xca, 0x49, 0xad, 0x37, 0x19, 0x7e, 0x57, 0xd8, 0x13, 0xc0, 0x97, 0x28, 0x5b, + 0xa5, 0x88, 0x06, 0x78, 0x1b, 0x98, 0xd9, 0x22, 0xb9, 0xf1, 0x72, 0xa9, 0xdf, 0x59, 0x9e, 0xec, + 0x89, 0x6d, 0xbf, 0x8a, 0x1c, 0x47, 0xdf, 0x44, 0x1a, 0x9f, 0xb9, 0xa7, 0xf9, 0xca, 0x49, 0x6e, + 0x6a, 0x14, 0x73, 0x2a, 0x10, 0xa8, 0xc9, 0x18, 0xb4, 0xe3, 0x0c, 0xc8, 0x2e, 0x1a, 0x1d, 0x04, + 0x7f, 0x4d, 0x02, 0x93, 0xde, 0xac, 0xdb, 0x6c, 0x79, 0x6f, 0x8c, 0x43, 0xe5, 0x77, 0x32, 0xa2, + 0x37, 0x14, 0x7b, 0x74, 0xe6, 0x02, 0x1a, 0x11, 0xed, 0x46, 0xec, 0x26, 0xe2, 0x58, 0x52, 0x63, + 0xb8, 0x4f, 0xca, 0x9b, 0x7a, 0x6c, 0x6c, 0x74, 0x2c, 0x9d, 0xdb, 0x30, 0xe8, 0x35, 0x85, 0xc2, + 0x03, 0x7e, 0x55, 0xcb, 0x5d, 0x33, 0x4c, 0x33, 0x88, 0x99, 0xb1, 0x2f, 0x9d, 0xf7, 0x75, 0x89, + 0x0d, 0x3b, 0x86, 0xeb, 0x4e, 0x4b, 0x8f, 0xd0, 0xec, 0x6b, 0xc1, 0xec, 0xf9, 0x3d, 0x17, 0x39, + 0x34, 0x17, 0x2d, 0x36, 0xab, 0xf5, 0xa4, 0x32, 0x97, 0x06, 0xc4, 0x85, 0x27, 0x8b, 0x29, 0x30, + 0x99, 0xa8, 0x97, 0x87, 0x98, 0x01, 0x1e, 0x07, 0xc5, 0x6a, 0x6d, 0x41, 0xc5, 0xfe, 0xbd, 0xbe, + 0xc7, 0xe4, 0x26, 0x7c, 0xa1, 0x0c, 0xa6, 0xb1, 0x03, 0x9e, 0x8f, 0xc2, 0xd5, 0x02, 0xf3, 0x11, + 0xf8, 0x90, 0xb0, 0xef, 0x2f, 0xae, 0x32, 0x5b, 0x40, 0xb4, 0xa0, 0x37, 0x8c, 0x4e, 0xaf, 0xa0, + 0x73, 0x5a, 0x4f, 0x6a, 0x1f, 0x40, 0xe4, 0xbe, 0x80, 0xbc, 0x57, 0xc8, 0x01, 0x78, 0x10, 0x77, + 0x87, 0x85, 0xca, 0x9f, 0xc8, 0x60, 0xca, 0x9b, 0xa4, 0xf8, 0xa0, 0xd4, 0x38, 0x50, 0x2c, 0xb3, + 0xb3, 0x17, 0x2e, 0x8b, 0xf8, 0xaf, 0x89, 0x1a, 0xc9, 0xdf, 0x0a, 0xcf, 0xdc, 0xb1, 0x88, 0x18, + 0x5e, 0xc6, 0x84, 0xdf, 0x7b, 0x84, 0xe6, 0xf3, 0x03, 0x98, 0x3b, 0x2c, 0xf8, 0xbe, 0x9e, 0x03, + 0xf9, 0xf5, 0x2e, 0x46, 0xee, 0xf7, 0x65, 0x91, 0x0b, 0x38, 0xf6, 0x1d, 0xfe, 0xf2, 0xcc, 0xac, + 0x8e, 0xd5, 0xd2, 0x3b, 0x6b, 0xe1, 0x29, 0xda, 0x30, 0x41, 0xb9, 0x95, 0xfa, 0x83, 0x93, 0xd3, + 0xe3, 0xd7, 0xc6, 0xde, 0x4d, 0x81, 0x65, 0xc4, 0x1c, 0xb4, 0xbb, 0x01, 0x1c, 0x6b, 0x1b, 0x8e, + 0x7e, 0xbe, 0x83, 0x54, 0xb3, 0x65, 0xef, 0x11, 0x71, 0xd0, 0x69, 0xd5, 0xbe, 0x0f, 0xca, 0xed, + 0x20, 0xe7, 0xb8, 0x7b, 0x1d, 0x32, 0x4f, 0x64, 0xcf, 0xe5, 0x45, 0x16, 0x55, 0xf7, 0xb2, 0x6b, + 0xe4, 0x2f, 0xd6, 0xad, 0x73, 0x42, 0xcc, 0xad, 0x53, 0x79, 0x1c, 0xc8, 0x5b, 0xb6, 0xb1, 0x69, + 0x90, 0xeb, 0xe6, 0x66, 0xf7, 0x85, 0x60, 0x25, 0xa6, 0x40, 0x0d, 0x67, 0xd1, 0x68, 0x56, 0xe5, + 0x09, 0x60, 0xd2, 0xd8, 0xd6, 0x37, 0xd1, 0xdd, 0x86, 0x49, 0x0e, 0xa8, 0xcf, 0xde, 0x7c, 0x6a, + 0xdf, 0x91, 0x43, 0xfa, 0x5d, 0x0b, 0xb3, 0xc2, 0xf7, 0x48, 0xa2, 0x71, 0xe2, 0x70, 0xdd, 0x08, + 0xa8, 0x43, 0xdc, 0x5d, 0xcd, 0xc8, 0x41, 0x16, 0x74, 0x6f, 0x7d, 0x85, 0x50, 0x04, 0xb7, 0x68, + 0xb6, 0xd2, 0x1f, 0xbc, 0x3f, 0x2f, 0x81, 0xc2, 0x82, 0x75, 0xd1, 0xc4, 0x8a, 0x7e, 0x8b, 0x98, + 0xad, 0xdb, 0xe7, 0x60, 0x38, 0x7f, 0x0b, 0x72, 0xec, 0x29, 0x30, 0x5c, 0x5b, 0xbf, 0xc8, 0x08, + 0x18, 0x62, 0x5b, 0x8e, 0xe0, 0xdd, 0xb4, 0x71, 0xe5, 0xa4, 0x2f, 0xd7, 0xbf, 0x94, 0x41, 0x76, + 0xc1, 0xb6, 0xba, 0xf0, 0x8d, 0x99, 0x04, 0x6e, 0x5e, 0x6d, 0xdb, 0xea, 0x36, 0xf0, 0xe5, 0x92, + 0xe1, 0xce, 0x06, 0x9b, 0xa6, 0xdc, 0x02, 0x0a, 0x5d, 0xcb, 0x31, 0x5c, 0x7f, 0x1a, 0x31, 0x7b, + 0xf3, 0x23, 0xfa, 0xb6, 0xe6, 0x35, 0x9a, 0x49, 0x0b, 0xb2, 0x7b, 0xbd, 0x36, 0x16, 0xa1, 0x27, + 0x17, 0x4f, 0x8c, 0xfe, 0x05, 0x9b, 0x3d, 0xa9, 0xf0, 0x45, 0x2c, 0x92, 0x4f, 0xe2, 0x91, 0x7c, + 0x64, 0x1f, 0x09, 0xdb, 0x56, 0x77, 0x24, 0x8e, 0x19, 0x2f, 0x0b, 0x50, 0x7d, 0x32, 0x87, 0xea, + 0xf5, 0x42, 0x65, 0xa6, 0x8f, 0xe8, 0x7b, 0xb2, 0x00, 0x60, 0x33, 0x63, 0xdd, 0x9b, 0x00, 0x89, + 0xd9, 0x58, 0xcf, 0xcc, 0x32, 0xb2, 0x2c, 0xf1, 0xb2, 0x7c, 0x74, 0x84, 0x15, 0x83, 0xc9, 0x47, + 0x48, 0xb4, 0x04, 0x72, 0x3b, 0xde, 0x67, 0x2a, 0x51, 0x41, 0x12, 0xf8, 0x55, 0x23, 0x7f, 0xc2, + 0xbf, 0xc8, 0x80, 0x1c, 0x4e, 0x50, 0x4e, 0x03, 0x80, 0x07, 0x76, 0x72, 0x88, 0x32, 0x83, 0x87, + 0x70, 0x26, 0x05, 0x6b, 0xab, 0xd1, 0xa6, 0x9f, 0x89, 0xc9, 0x1c, 0x26, 0x78, 0x7f, 0xe3, 0xe1, + 0x1e, 0xd3, 0xa2, 0x06, 0x00, 0x93, 0xe2, 0xfd, 0x8d, 0xdf, 0x56, 0xd0, 0x06, 0x89, 0xfb, 0x9f, + 0xd5, 0xc2, 0x84, 0xe0, 0xef, 0x95, 0xe0, 0xb6, 0x48, 0xff, 0x6f, 0x9c, 0xe2, 0x4d, 0x86, 0xb1, + 0x5a, 0xce, 0x87, 0x45, 0xe4, 0x71, 0xa6, 0xde, 0x64, 0xf8, 0xaa, 0x40, 0x6d, 0x16, 0x38, 0xb5, + 0x79, 0x6c, 0x02, 0xf1, 0xa6, 0xaf, 0x3c, 0x5f, 0xcd, 0x81, 0xc9, 0xaa, 0xd5, 0xa6, 0xba, 0xc3, + 0x4c, 0x18, 0x3f, 0x9e, 0x4b, 0x34, 0x61, 0x0c, 0x68, 0x44, 0x28, 0xc8, 0x9d, 0xbc, 0x82, 0x88, + 0x51, 0x60, 0xf5, 0x43, 0x99, 0x07, 0x79, 0xac, 0xbd, 0xfb, 0xaf, 0x21, 0x8c, 0x23, 0x81, 0x45, + 0xab, 0xd1, 0x3f, 0xff, 0xd3, 0xe9, 0xd8, 0x7f, 0x05, 0x39, 0x5c, 0xc1, 0x98, 0xdd, 0x1d, 0xbe, + 0xa2, 0x52, 0x7c, 0x45, 0xe5, 0xf8, 0x8a, 0x66, 0x7b, 0x2b, 0x9a, 0x64, 0x1d, 0x20, 0x4a, 0x43, + 0xd2, 0xd7, 0xf1, 0x7f, 0x99, 0x00, 0xa0, 0xaa, 0xef, 0x1a, 0x9b, 0x64, 0x77, 0xf8, 0x0b, 0xfe, + 0xfc, 0x87, 0xee, 0xe3, 0xfe, 0x06, 0x33, 0x10, 0xde, 0x02, 0x26, 0xe8, 0xb8, 0x47, 0x2b, 0x72, + 0x25, 0x57, 0x91, 0x90, 0x0a, 0x31, 0x4b, 0xef, 0x73, 0x35, 0x3f, 0x3f, 0x77, 0x63, 0xba, 0xd4, + 0x73, 0x63, 0x7a, 0xff, 0x3d, 0x88, 0x88, 0x7b, 0xd4, 0xe1, 0x3b, 0x85, 0x4f, 0x41, 0x31, 0xfc, + 0x30, 0x35, 0x8a, 0x68, 0x82, 0x8f, 0x03, 0x13, 0x56, 0xb0, 0xa1, 0x2d, 0x47, 0xae, 0x83, 0x55, + 0xcc, 0x0d, 0x4b, 0xf3, 0x73, 0x0a, 0x6e, 0x7e, 0x09, 0xf1, 0x31, 0x96, 0x83, 0x86, 0x27, 0x97, + 0xfc, 0x18, 0x8a, 0x5e, 0x3d, 0xce, 0x19, 0xee, 0xd6, 0x0a, 0x8e, 0xcc, 0xf4, 0x4b, 0x62, 0x16, + 0x24, 0x83, 0xbf, 0x94, 0x0c, 0x7f, 0x3e, 0xce, 0x51, 0x9d, 0x47, 0xed, 0xf6, 0x28, 0x2a, 0xfd, + 0xb9, 0x8d, 0x00, 0xf0, 0x56, 0x90, 0x27, 0x8c, 0xd2, 0x4e, 0xf4, 0x4c, 0x24, 0x7e, 0x01, 0x25, + 0x8d, 0xfe, 0x01, 0xdf, 0x11, 0xe0, 0x78, 0x96, 0xc3, 0x71, 0xfe, 0x40, 0x9c, 0xa5, 0x0e, 0xe9, + 0x99, 0x9b, 0xc0, 0x04, 0x95, 0xb4, 0x32, 0xcb, 0xb6, 0xe2, 0xe2, 0x11, 0x05, 0x80, 0xfc, 0xaa, + 0xb5, 0x8b, 0x1a, 0x56, 0x31, 0xe3, 0x3d, 0x7b, 0xfc, 0x35, 0xac, 0xa2, 0x04, 0x5f, 0x5e, 0x00, + 0x85, 0x20, 0x78, 0xdd, 0xe7, 0x25, 0x50, 0x2c, 0xdb, 0x48, 0x77, 0xd1, 0xa2, 0x6d, 0x6d, 0x93, + 0x1a, 0x89, 0x7b, 0xd4, 0xff, 0xae, 0xb0, 0x8b, 0x47, 0x10, 0x54, 0xae, 0xb7, 0xb0, 0x08, 0x2c, + 0xc9, 0x22, 0xa4, 0xe4, 0x2f, 0x42, 0xc2, 0x37, 0x08, 0xb9, 0x7c, 0x88, 0x96, 0x92, 0x7e, 0x53, + 0xfb, 0xb4, 0x04, 0x72, 0xe5, 0x8e, 0x65, 0x22, 0xf6, 0xd8, 0xe7, 0xc0, 0xf3, 0x85, 0xfd, 0x77, + 0x22, 0xe0, 0xd3, 0x25, 0x51, 0x5b, 0x23, 0x14, 0x80, 0x57, 0xb6, 0xa0, 0x6c, 0xc5, 0x06, 0xa9, + 0x58, 0xd2, 0xe9, 0x0b, 0xf4, 0x9b, 0x12, 0x98, 0x24, 0xb1, 0xc4, 0x4a, 0x9d, 0x0e, 0x7c, 0x44, + 0x28, 0xd4, 0x3e, 0x01, 0x00, 0xe1, 0x7b, 0x85, 0x8f, 0x35, 0x05, 0xb5, 0x0a, 0x68, 0x27, 0x08, + 0xaa, 0x96, 0xec, 0x94, 0x8d, 0xd8, 0x5e, 0xda, 0x40, 0x86, 0xd2, 0x17, 0xf5, 0xdf, 0x48, 0x9e, + 0x01, 0x60, 0x5e, 0x58, 0xb3, 0xd1, 0xae, 0x81, 0x2e, 0xc2, 0xcb, 0x43, 0x61, 0xef, 0x0f, 0x94, + 0xf4, 0x5a, 0xe1, 0x45, 0x1c, 0x86, 0x64, 0xe4, 0x56, 0xd6, 0x54, 0x27, 0xcc, 0x44, 0x7b, 0xf1, + 0xde, 0xe8, 0x55, 0x0c, 0x19, 0x8d, 0xcd, 0x2e, 0xb8, 0x66, 0x13, 0xcd, 0x45, 0xfa, 0x82, 0xfd, + 0xe0, 0x04, 0x28, 0xac, 0x9b, 0x4e, 0xb7, 0xa3, 0x3b, 0x5b, 0xf0, 0x07, 0x32, 0xc8, 0x93, 0xcb, + 0x2f, 0xe1, 0xcf, 0x70, 0xf1, 0x58, 0x9e, 0xba, 0x83, 0x6c, 0xdf, 0x05, 0x87, 0xbc, 0x84, 0xf6, + 0x91, 0xc4, 0xd8, 0x47, 0xf0, 0x3d, 0xb2, 0xe8, 0x24, 0xd5, 0x2f, 0x94, 0xde, 0xb6, 0x19, 0x1d, + 0x02, 0xa4, 0x6b, 0xb4, 0xdc, 0x1d, 0x1b, 0x39, 0x7d, 0x43, 0x80, 0x44, 0x52, 0x59, 0x23, 0x7f, + 0x69, 0xc1, 0xef, 0x50, 0x07, 0x13, 0x34, 0x71, 0xdf, 0x76, 0xd2, 0xfe, 0x98, 0x05, 0x27, 0x41, + 0x5e, 0xb7, 0x5d, 0xc3, 0x71, 0xe9, 0x06, 0x2b, 0x7d, 0xf3, 0xba, 0x4b, 0xf2, 0xb4, 0x6e, 0x77, + 0xfc, 0xc8, 0x4d, 0x41, 0x02, 0xfc, 0x13, 0xa1, 0xf9, 0x63, 0x7c, 0xcd, 0x93, 0x41, 0x7e, 0xf7, + 0x10, 0x6b, 0xd4, 0x97, 0x82, 0x4b, 0xb4, 0x52, 0x43, 0x6d, 0x92, 0x40, 0x3f, 0x41, 0x4c, 0x9f, + 0x36, 0x7c, 0xbb, 0xcc, 0xac, 0xdf, 0xed, 0x71, 0x63, 0x04, 0x95, 0x62, 0x38, 0x46, 0x04, 0x09, + 0x31, 0xbb, 0xd5, 0xdc, 0x22, 0xac, 0x2c, 0xbe, 0x08, 0xfb, 0xc7, 0xc2, 0xbb, 0x49, 0x81, 0x28, + 0x07, 0xac, 0x01, 0xc6, 0x5d, 0x8e, 0xf7, 0x7e, 0xa1, 0x9d, 0xa1, 0x41, 0x25, 0x1d, 0x22, 0x6c, + 0xaf, 0x99, 0x00, 0x13, 0x4b, 0x7a, 0xa7, 0x83, 0xec, 0x3d, 0x6f, 0x48, 0x2a, 0xfa, 0x1c, 0xae, + 0xea, 0xa6, 0xb1, 0x81, 0x1c, 0x37, 0xbe, 0xb3, 0x7c, 0xa7, 0x70, 0xe0, 0x75, 0x5a, 0xc6, 0x5c, + 0x2f, 0xfd, 0x08, 0x99, 0xdf, 0x08, 0xb2, 0x86, 0xb9, 0x61, 0xd1, 0x2e, 0xb3, 0x77, 0xd5, 0xde, + 0xff, 0x19, 0x4f, 0x5d, 0x70, 0x46, 0xc1, 0xd8, 0xeb, 0x82, 0x5c, 0xa4, 0xdf, 0x73, 0xbe, 0x39, + 0x0b, 0x66, 0x7c, 0x26, 0x2a, 0x66, 0x1b, 0xdd, 0xc7, 0x2e, 0xc5, 0xbc, 0x30, 0x2b, 0x7a, 0x84, + 0xb6, 0xb7, 0x3e, 0x98, 0x54, 0x84, 0x48, 0x1b, 0x00, 0xb4, 0x74, 0x17, 0x6d, 0x5a, 0xb6, 0x11, + 0xf4, 0x87, 0x8f, 0x4f, 0x42, 0xad, 0x4c, 0xfe, 0xde, 0xd3, 0x18, 0x3a, 0xca, 0xed, 0x60, 0x0a, + 0x05, 0x31, 0x4b, 0xfc, 0xa5, 0x9a, 0x58, 0xbc, 0xd8, 0xfc, 0xf0, 0x6f, 0x84, 0x4e, 0xea, 0x8a, + 0x54, 0x33, 0x19, 0x66, 0xcd, 0xe1, 0xda, 0xd0, 0x7a, 0x75, 0xb5, 0xa4, 0xd5, 0x97, 0x4b, 0x2b, + 0x2b, 0x95, 0xea, 0x52, 0x10, 0x2c, 0x4b, 0x01, 0xb3, 0x0b, 0xb5, 0x73, 0x55, 0x26, 0x9a, 0x59, + 0x16, 0xae, 0x81, 0x82, 0x2f, 0xaf, 0x7e, 0xbe, 0x98, 0xac, 0xcc, 0xa8, 0x2f, 0x26, 0x93, 0xe4, + 0x19, 0x67, 0x46, 0x2b, 0x70, 0xd0, 0xc1, 0xcf, 0xf0, 0xcf, 0x75, 0x90, 0xc3, 0x6b, 0xea, 0xf0, + 0xad, 0x78, 0x1b, 0xb0, 0xdb, 0xd1, 0x5b, 0x08, 0x6e, 0x27, 0xb0, 0xc6, 0xfd, 0x9b, 0x80, 0xa4, + 0x7d, 0x37, 0x01, 0xe1, 0x47, 0x6a, 0xf5, 0x1d, 0xef, 0xb7, 0x8e, 0xaf, 0x91, 0x2c, 0xfc, 0xa1, + 0xd6, 0xd8, 0xdd, 0x15, 0xb2, 0xfc, 0x4f, 0xd9, 0x8c, 0x50, 0xc9, 0x68, 0x9e, 0x92, 0x59, 0xa2, + 0x62, 0xfb, 0x30, 0x71, 0x1c, 0xa5, 0xdf, 0xe2, 0xbf, 0x9c, 0x05, 0xb9, 0x7a, 0xb7, 0x63, 0xb8, + 0xf0, 0x25, 0xd2, 0x48, 0x30, 0x23, 0xb7, 0x37, 0xc9, 0x03, 0x6f, 0x6f, 0x0a, 0x77, 0x5d, 0xb3, + 0x02, 0xbb, 0xae, 0x0d, 0x74, 0x9f, 0xcb, 0xef, 0xba, 0xde, 0x42, 0x03, 0x5e, 0x92, 0x3d, 0xdb, + 0x47, 0xf6, 0x11, 0x29, 0xae, 0x56, 0x9f, 0x48, 0xaa, 0x67, 0x6e, 0xa2, 0x01, 0x1d, 0x01, 0xc8, + 0xcf, 0xd7, 0x1a, 0x8d, 0xda, 0x6a, 0xf1, 0x08, 0x8e, 0x04, 0x56, 0x5b, 0x23, 0xe1, 0xb5, 0x2a, + 0xd5, 0xaa, 0xaa, 0x15, 0x25, 0x1c, 0x62, 0xb2, 0xd2, 0x58, 0x51, 0x8b, 0x32, 0x7f, 0x95, 0x47, + 0xac, 0xf9, 0xcd, 0x97, 0x9d, 0xa6, 0x7a, 0x89, 0x19, 0xe2, 0xd1, 0xfc, 0xa4, 0xaf, 0x5c, 0xbf, + 0x23, 0x83, 0xdc, 0x2a, 0xb2, 0x37, 0x11, 0x7c, 0x6a, 0x82, 0x4d, 0xbe, 0x0d, 0xc3, 0x76, 0x48, + 0x40, 0xce, 0x70, 0x93, 0x8f, 0x4d, 0x53, 0xae, 0x01, 0x33, 0x0e, 0x6a, 0x59, 0x66, 0xdb, 0xcf, + 0x44, 0xfa, 0x23, 0x3e, 0x11, 0xbe, 0x38, 0x21, 0x64, 0x98, 0xd1, 0x91, 0xec, 0xd4, 0x25, 0x01, + 0xa6, 0x5f, 0xa9, 0xe9, 0x03, 0xf3, 0x5d, 0xd9, 0xfb, 0xa9, 0xbb, 0x07, 0x5f, 0x2c, 0xbc, 0xfb, + 0x7a, 0x03, 0xc8, 0x9f, 0xf7, 0x23, 0xbb, 0xcb, 0x91, 0xfd, 0x31, 0xcd, 0xa3, 0xcc, 0x83, 0x63, + 0x0e, 0xea, 0xa0, 0x96, 0x8b, 0xda, 0x5e, 0xd3, 0xd5, 0x06, 0x76, 0x0a, 0xfb, 0xb3, 0xc3, 0xbf, + 0x62, 0x01, 0xbc, 0x8d, 0x07, 0xf0, 0xda, 0x3e, 0xa2, 0xf4, 0x2a, 0x14, 0x6d, 0x2b, 0x7b, 0xd5, + 0xa8, 0x77, 0xac, 0x60, 0x51, 0xdc, 0x7f, 0xf7, 0xbe, 0x6d, 0xb9, 0xdb, 0x1d, 0xfc, 0x8d, 0x1e, + 0x30, 0xf0, 0xdf, 0x95, 0x39, 0x30, 0xa1, 0x9b, 0x7b, 0xf8, 0x53, 0x36, 0xa6, 0xd6, 0x7e, 0x26, + 0xf8, 0xf2, 0x00, 0xf9, 0x3b, 0x38, 0xe4, 0x1f, 0x2d, 0xc6, 0x6e, 0xfa, 0xc0, 0xff, 0xea, 0x04, + 0xc8, 0xad, 0xe9, 0x8e, 0x8b, 0xe0, 0xff, 0x2b, 0x8b, 0x22, 0x7f, 0x2d, 0x98, 0xdd, 0xb0, 0x5a, + 0x3b, 0x0e, 0x6a, 0xf3, 0x8d, 0xb2, 0x27, 0x75, 0x14, 0x98, 0x2b, 0xd7, 0x83, 0xa2, 0x9f, 0x48, + 0xc9, 0xfa, 0xdb, 0xf0, 0xfb, 0xd2, 0xf1, 0xc5, 0x10, 0xce, 0x9a, 0x6e, 0xbb, 0xb5, 0x0d, 0x9c, + 0x16, 0x5c, 0x0c, 0xc1, 0x26, 0x72, 0xd0, 0xe7, 0x63, 0xa0, 0x9f, 0x88, 0x86, 0xbe, 0x20, 0x00, + 0xbd, 0x52, 0x02, 0x85, 0x0d, 0xa3, 0x83, 0xf0, 0x0f, 0x93, 0xf8, 0x87, 0x7e, 0x63, 0x12, 0x96, + 0x7d, 0x30, 0x26, 0x2d, 0x1a, 0x1d, 0xa4, 0x05, 0xbf, 0xf9, 0x13, 0x19, 0x10, 0x4e, 0x64, 0x56, + 0x88, 0x3f, 0xad, 0x67, 0x78, 0x99, 0xfa, 0x36, 0xf2, 0x17, 0xdf, 0x4c, 0x7a, 0xb8, 0xa5, 0xad, + 0xbb, 0x3a, 0x06, 0x63, 0x5a, 0xc3, 0xcf, 0xbc, 0x5f, 0x88, 0xdc, 0xeb, 0x17, 0xf2, 0x2c, 0x39, + 0x59, 0x8f, 0xe8, 0x33, 0x1b, 0xd1, 0xa2, 0xce, 0xfb, 0x00, 0x11, 0x4b, 0x31, 0x78, 0xf7, 0x80, + 0x69, 0xe9, 0x36, 0x72, 0xd7, 0x58, 0x4f, 0x8c, 0x9c, 0xc6, 0x27, 0x62, 0x57, 0x3e, 0xa7, 0xae, + 0x6f, 0x93, 0xcb, 0x21, 0xca, 0xde, 0x37, 0xea, 0xa2, 0xb5, 0x2f, 0x3d, 0xec, 0x7f, 0x73, 0xa3, + 0xee, 0x7f, 0xfb, 0xd5, 0x31, 0xfd, 0x66, 0xf8, 0xca, 0x2c, 0x90, 0xcb, 0x3b, 0xee, 0xc3, 0xba, + 0xfb, 0xfd, 0xa1, 0xb0, 0x9f, 0x0b, 0xed, 0xcf, 0x76, 0xdc, 0xc3, 0xed, 0x7d, 0x13, 0x6a, 0x89, + 0x98, 0x3f, 0x4d, 0x54, 0xdd, 0xd2, 0xd7, 0x91, 0x37, 0xca, 0x81, 0x83, 0xe5, 0xfd, 0x99, 0x83, + 0x9b, 0xe6, 0x90, 0xf4, 0x4f, 0x4c, 0xcf, 0x10, 0xbc, 0xfb, 0x1d, 0x4f, 0x96, 0x8b, 0x6f, 0x8a, + 0xb7, 0xd7, 0xb1, 0x28, 0xa7, 0x35, 0xf2, 0x02, 0x5f, 0x2a, 0xec, 0x76, 0x4e, 0xc4, 0x16, 0xeb, + 0x4a, 0x98, 0xcc, 0xa6, 0x12, 0xbb, 0x1b, 0x3b, 0xa6, 0xd8, 0xf4, 0x01, 0xfb, 0x36, 0xeb, 0x2a, + 0x58, 0x3a, 0x30, 0x62, 0xf0, 0x15, 0xc2, 0xdb, 0x51, 0xa4, 0xda, 0x03, 0xd6, 0x0b, 0x93, 0xc9, + 0x5b, 0x6c, 0xb3, 0x2a, 0xb6, 0xe0, 0xf4, 0x25, 0xfe, 0x2d, 0x19, 0xe4, 0xc9, 0x16, 0x24, 0x7c, + 0x9d, 0x70, 0x13, 0xf1, 0x7a, 0x23, 0xde, 0x85, 0x30, 0x78, 0x4f, 0xb2, 0xe6, 0xc0, 0xb9, 0x1a, + 0x66, 0x13, 0xb9, 0x1a, 0xf2, 0xe7, 0x38, 0x05, 0xda, 0x11, 0xa9, 0x63, 0xca, 0xd3, 0xc9, 0x24, + 0x2d, 0xac, 0x2f, 0x43, 0xe9, 0xe3, 0xfd, 0x9c, 0x1c, 0x98, 0x26, 0x45, 0x9f, 0x33, 0xda, 0x9b, + 0xc8, 0x85, 0x6f, 0x97, 0x7e, 0x7c, 0x50, 0x57, 0xaa, 0x60, 0xfa, 0x22, 0x66, 0x9b, 0xdc, 0x62, + 0x45, 0x57, 0x2e, 0xae, 0x8f, 0x5d, 0xf7, 0x20, 0xf5, 0xf4, 0xef, 0xbd, 0xe2, 0xfe, 0xf7, 0x64, + 0x4c, 0x16, 0xfc, 0x89, 0x03, 0x57, 0x1e, 0x1b, 0x59, 0x6c, 0x92, 0x72, 0x12, 0xe4, 0x77, 0x0d, + 0x74, 0xb1, 0xd2, 0xa6, 0xd6, 0x2d, 0x7d, 0x83, 0x7f, 0x2a, 0xbc, 0x6f, 0xcb, 0xc2, 0x4d, 0x79, + 0x49, 0x57, 0x0b, 0xc5, 0x76, 0x6f, 0x07, 0xb2, 0x35, 0x86, 0x33, 0xc5, 0xfc, 0xdd, 0xd3, 0xe5, + 0x04, 0x8a, 0x18, 0x65, 0x38, 0xf3, 0xa1, 0x3c, 0x62, 0x4f, 0xac, 0x10, 0x01, 0x8c, 0xf8, 0x5a, + 0x6a, 0xb1, 0xf8, 0x12, 0x03, 0x8a, 0x4e, 0x5f, 0xf2, 0xaf, 0x92, 0xc1, 0x64, 0x1d, 0xb9, 0x8b, + 0x06, 0xea, 0xb4, 0x1d, 0x68, 0x1f, 0xdc, 0x34, 0xba, 0x11, 0xe4, 0x37, 0x30, 0xb1, 0x41, 0xe7, + 0x16, 0x68, 0x36, 0xf8, 0x4a, 0x49, 0x74, 0x47, 0x98, 0xae, 0xbe, 0xf9, 0xdc, 0x8e, 0x04, 0x26, + 0x31, 0x8f, 0xde, 0xf8, 0x92, 0xc7, 0x10, 0x0c, 0x5c, 0x06, 0xd3, 0xf4, 0xb2, 0xda, 0x52, 0xc7, + 0xd8, 0x34, 0xe1, 0xce, 0x08, 0x5a, 0x88, 0xf2, 0x58, 0x90, 0xd3, 0x3d, 0x6a, 0x74, 0xeb, 0x15, + 0xf6, 0xed, 0x3c, 0x71, 0x79, 0x1a, 0xc9, 0x98, 0x20, 0xf4, 0x6e, 0xa8, 0xd8, 0x3e, 0xcf, 0x63, + 0x0c, 0xbd, 0x3b, 0xb0, 0xf0, 0xf4, 0x11, 0xfb, 0x8a, 0x0c, 0x8e, 0x53, 0x06, 0xce, 0x22, 0xdb, + 0x35, 0x5a, 0x7a, 0x87, 0x20, 0xf7, 0xbc, 0xcc, 0x28, 0xa0, 0x5b, 0x06, 0x33, 0xbb, 0x2c, 0x59, + 0x0a, 0xe1, 0x99, 0xbe, 0x10, 0x72, 0x0c, 0x68, 0xfc, 0x8f, 0x09, 0x42, 0x98, 0x72, 0x52, 0xe5, + 0x68, 0x8e, 0x31, 0x84, 0xa9, 0x30, 0x13, 0xe9, 0x43, 0xfc, 0x22, 0x1a, 0x9a, 0x27, 0xec, 0x3e, + 0xbf, 0x20, 0x8c, 0xed, 0x3a, 0x98, 0xc2, 0x58, 0x92, 0x1f, 0xe9, 0x32, 0x44, 0x8c, 0x12, 0x07, + 0xfd, 0x0e, 0xbd, 0x64, 0x31, 0xf8, 0x57, 0x63, 0xe9, 0xc0, 0x73, 0x00, 0x84, 0x9f, 0xd8, 0x4e, + 0x3a, 0x13, 0xd5, 0x49, 0x4b, 0x62, 0x9d, 0xf4, 0x6b, 0x85, 0x83, 0xa5, 0xf4, 0x67, 0xfb, 0xe0, + 0xea, 0x21, 0x16, 0x26, 0x63, 0x70, 0xe9, 0xe9, 0xeb, 0xc5, 0xcb, 0xa9, 0x5e, 0x2c, 0xec, 0x74, + 0x3b, 0x46, 0xcb, 0x9b, 0x4f, 0x7d, 0x64, 0x24, 0xf3, 0x29, 0xb6, 0x3f, 0x90, 0x7b, 0xfa, 0x83, + 0x03, 0x58, 0xd2, 0xd7, 0x81, 0xa3, 0xa4, 0x88, 0x72, 0xc0, 0x56, 0x8e, 0x84, 0x82, 0xe8, 0x49, + 0xe6, 0xe3, 0x12, 0x0a, 0x2a, 0x41, 0x20, 0x84, 0x21, 0x96, 0x3e, 0x93, 0x19, 0xbb, 0x49, 0x15, + 0x24, 0x8a, 0xb3, 0x31, 0xb8, 0x85, 0x66, 0x89, 0xb5, 0xbb, 0x8e, 0xef, 0xc1, 0x84, 0x5f, 0xca, + 0x8e, 0x62, 0x44, 0xb8, 0x13, 0x64, 0xb1, 0x8b, 0xbb, 0x1c, 0xb9, 0xa4, 0x11, 0x16, 0x19, 0x5e, + 0x52, 0x8a, 0xee, 0x73, 0x97, 0x8f, 0x68, 0xf8, 0x4f, 0xe5, 0x7a, 0x70, 0xf4, 0xbc, 0xde, 0xba, + 0xb0, 0x69, 0x5b, 0x3b, 0xf8, 0xc6, 0x40, 0x8b, 0x5e, 0x3d, 0x88, 0xaf, 0x70, 0xe5, 0x3f, 0x28, + 0x37, 0xfb, 0xa6, 0x43, 0x6e, 0x90, 0xe9, 0xb0, 0x7c, 0x84, 0x1a, 0x0f, 0xca, 0x4d, 0x41, 0xa7, + 0x93, 0x8f, 0xed, 0x74, 0x96, 0x8f, 0xf8, 0xdd, 0x8e, 0xb2, 0x00, 0x0a, 0x6d, 0x63, 0x17, 0x6f, + 0x55, 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xcb, 0x0b, 0xc6, 0x2e, 0xd9, 0xd8, 0x5e, 0x3e, 0xa2, 0x05, + 0x7f, 0x2a, 0x4b, 0x60, 0x12, 0x6f, 0x0b, 0x60, 0x32, 0x85, 0x44, 0xc7, 0x92, 0x97, 0x8f, 0x68, + 0xe1, 0xbf, 0x9e, 0xf5, 0x91, 0xc5, 0x67, 0x3f, 0xee, 0xf0, 0xb7, 0xdb, 0x33, 0x89, 0xb6, 0xdb, + 0x3d, 0x59, 0x90, 0x0d, 0xf7, 0x93, 0x20, 0xd7, 0xc2, 0x12, 0x96, 0xa8, 0x84, 0xc9, 0xab, 0x72, + 0x1b, 0xc8, 0x6e, 0xeb, 0xb6, 0x3f, 0x79, 0xbe, 0x76, 0x30, 0xdd, 0x55, 0xdd, 0xbe, 0xe0, 0x21, + 0xe8, 0xfd, 0x35, 0x3f, 0x01, 0x72, 0x58, 0x70, 0xc1, 0x03, 0x7c, 0x63, 0x96, 0x98, 0x21, 0x65, + 0xcb, 0xf4, 0x86, 0xfd, 0x86, 0xe5, 0x1f, 0x90, 0xf9, 0xd3, 0xcc, 0x68, 0x2c, 0xc8, 0x4b, 0x98, + 0x80, 0xc1, 0xa6, 0xf1, 0xd4, 0x1d, 0x74, 0x37, 0xda, 0xa3, 0x4b, 0xa2, 0xfd, 0x3e, 0xf5, 0xdc, + 0x27, 0x9f, 0xed, 0xbd, 0x4f, 0x3e, 0x5c, 0x3e, 0xc8, 0x0d, 0x76, 0x54, 0xf9, 0xab, 0x21, 0x4c, + 0x97, 0x5e, 0x41, 0x44, 0xcf, 0xc0, 0x3b, 0x86, 0xc9, 0xd4, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, 0x25, + 0x35, 0x6a, 0x06, 0xb0, 0x97, 0x7e, 0xdf, 0xf4, 0xfa, 0x2c, 0x89, 0x99, 0x4a, 0x4e, 0x61, 0xf0, + 0x77, 0xf4, 0xc2, 0x4f, 0x8d, 0x44, 0x69, 0xfa, 0x0c, 0x38, 0x72, 0xdf, 0x01, 0x67, 0xdf, 0x21, + 0xe5, 0xec, 0x80, 0x43, 0xca, 0xb9, 0x64, 0x2b, 0x87, 0x1f, 0x60, 0xf5, 0x67, 0x8d, 0xd7, 0x9f, + 0x5b, 0x23, 0x00, 0xea, 0x27, 0x97, 0x91, 0xd8, 0x37, 0x6f, 0x0d, 0x34, 0xa5, 0xce, 0x69, 0xca, + 0x1d, 0xc3, 0x33, 0x92, 0xbe, 0xb6, 0xbc, 0x2f, 0x0b, 0x2e, 0x09, 0x99, 0xa9, 0xa2, 0x8b, 0x54, + 0x51, 0x3e, 0x3f, 0x12, 0x45, 0x49, 0x1e, 0x03, 0x21, 0x6d, 0x8d, 0xf9, 0x0b, 0xe1, 0xb3, 0x43, + 0xbd, 0x40, 0x05, 0xb2, 0x89, 0x50, 0x96, 0x93, 0x20, 0x4f, 0x7a, 0x18, 0x0a, 0x0d, 0x7d, 0x4b, + 0xd8, 0xdd, 0x88, 0x9d, 0x38, 0x12, 0xe5, 0x6d, 0x0c, 0xfa, 0x43, 0xd7, 0x35, 0x1a, 0x3b, 0xb6, + 0x59, 0x31, 0x5d, 0x0b, 0xfe, 0xca, 0x48, 0x14, 0x27, 0xf0, 0x86, 0x93, 0x87, 0xf1, 0x86, 0x1b, + 0x6a, 0x95, 0xc3, 0xaf, 0xc1, 0xa1, 0xac, 0x72, 0x44, 0x14, 0x9e, 0x3e, 0x7e, 0x6f, 0x91, 0xc1, + 0x49, 0x3a, 0xd9, 0x9a, 0xe7, 0x2d, 0x44, 0x78, 0xcf, 0x28, 0x80, 0x3c, 0xee, 0x9b, 0x49, 0xf4, + 0x66, 0x48, 0xfc, 0xc2, 0x9f, 0x94, 0x8a, 0xbd, 0x13, 0x87, 0x9b, 0x0e, 0xf6, 0x70, 0x38, 0x12, + 0xa4, 0xc4, 0xae, 0xc2, 0x49, 0xc0, 0x46, 0xfa, 0x98, 0xbd, 0x40, 0x06, 0x79, 0x72, 0x4e, 0x0b, + 0xae, 0xa7, 0xe2, 0x30, 0xc1, 0x47, 0x79, 0x16, 0xd8, 0x91, 0x23, 0xdc, 0xa4, 0x76, 0x86, 0x2d, + 0xc9, 0x5e, 0x5c, 0x5f, 0x56, 0xc6, 0xe0, 0x42, 0x28, 0x81, 0xa9, 0x3a, 0x72, 0xcb, 0xba, 0x6d, + 0x1b, 0xfa, 0xe6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, 0xf7, 0x32, 0xa2, 0xe7, 0x69, 0x82, + 0x85, 0x70, 0x9f, 0xd5, 0x88, 0x58, 0x82, 0x0f, 0x0a, 0x9d, 0x99, 0x19, 0x44, 0x6d, 0x0c, 0x1e, + 0xdb, 0x12, 0x98, 0xf0, 0xcf, 0xe2, 0xdd, 0xc8, 0x9d, 0xcf, 0xdc, 0x72, 0xb7, 0xfd, 0x63, 0x30, + 0xf8, 0x79, 0xff, 0x19, 0x30, 0xf8, 0xb2, 0x84, 0x8e, 0xf2, 0xf1, 0x07, 0x09, 0x93, 0xb5, 0xb1, + 0x24, 0xee, 0xf0, 0x87, 0x75, 0x74, 0xf0, 0xbd, 0x13, 0x74, 0x39, 0x72, 0x45, 0x77, 0xd1, 0x7d, + 0xf0, 0x0b, 0x32, 0x98, 0xa8, 0x23, 0xd7, 0x1b, 0x6f, 0xb9, 0x0b, 0xa1, 0x87, 0xd5, 0x70, 0x85, + 0x59, 0xf1, 0x98, 0xa4, 0x6b, 0x18, 0x77, 0x81, 0xc9, 0xae, 0x6d, 0xb5, 0x90, 0xe3, 0xd0, 0xd5, + 0x0b, 0xd6, 0x51, 0xad, 0xdf, 0xe8, 0x8f, 0x59, 0x9b, 0x5b, 0xf3, 0xff, 0xd1, 0xc2, 0xdf, 0x93, + 0x9a, 0x01, 0x84, 0x12, 0xad, 0xe0, 0xb8, 0xcd, 0x80, 0xb8, 0xc2, 0xd3, 0x07, 0xfa, 0xb3, 0x32, + 0x98, 0xae, 0x23, 0x37, 0x90, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x39, 0x28, 0xe5, 0x83, 0x41, + 0x29, 0x7e, 0x9d, 0x2a, 0x2f, 0xcd, 0x80, 0xd8, 0x18, 0xaf, 0x53, 0x15, 0xe3, 0x60, 0x0c, 0xc7, + 0xd7, 0x1e, 0x09, 0x26, 0x31, 0x2f, 0xb8, 0xc1, 0xfe, 0x7a, 0x36, 0x6c, 0xbc, 0x5f, 0x4c, 0xa9, + 0xf1, 0xde, 0x0e, 0x72, 0xdb, 0xba, 0x7d, 0xc1, 0xc1, 0x0d, 0x77, 0x4a, 0xc4, 0x6c, 0x5f, 0xf5, + 0xb2, 0x6b, 0xe4, 0xaf, 0xfe, 0x7e, 0x9a, 0xb9, 0x64, 0x7e, 0x9a, 0x0f, 0x4a, 0x89, 0x46, 0x42, + 0x32, 0x77, 0x18, 0x61, 0x93, 0x4f, 0x30, 0x6e, 0xc6, 0x94, 0x9d, 0xbe, 0x72, 0x3c, 0x4f, 0x06, + 0x05, 0x6f, 0xdc, 0xc6, 0xf6, 0xf8, 0xb9, 0x83, 0xab, 0x43, 0x7f, 0x43, 0x3f, 0x61, 0x0f, 0xec, + 0x4b, 0x64, 0x74, 0xe6, 0x7d, 0x82, 0x1e, 0x38, 0xae, 0xf0, 0xf4, 0xf1, 0x78, 0x1b, 0xc1, 0x03, + 0xb7, 0x07, 0xf8, 0x6a, 0x19, 0xc8, 0x4b, 0xc8, 0x1d, 0xb7, 0x15, 0xf9, 0x26, 0xe1, 0x10, 0x47, + 0x9c, 0xc0, 0x30, 0xcf, 0x73, 0x4b, 0x68, 0x34, 0x0d, 0x48, 0x2c, 0xb6, 0x91, 0x10, 0x03, 0xe9, + 0xa3, 0xf6, 0x2e, 0x82, 0x1a, 0xd9, 0x5c, 0xf8, 0xe5, 0x11, 0xf4, 0xaa, 0xe3, 0x5d, 0xf8, 0xf0, + 0x05, 0x88, 0x69, 0x1c, 0x56, 0x7b, 0xeb, 0x57, 0xf8, 0x58, 0xae, 0x2f, 0x05, 0x5e, 0x63, 0xdf, + 0x42, 0xad, 0x0b, 0xa8, 0xcd, 0x5e, 0x07, 0x37, 0x2c, 0x74, 0xa7, 0xc0, 0x44, 0x8b, 0x50, 0xc3, + 0xe0, 0x15, 0x34, 0xff, 0x35, 0xc1, 0x5d, 0xfc, 0x7c, 0x47, 0x44, 0x7e, 0x1f, 0xe3, 0x5d, 0xfc, + 0x02, 0xc5, 0x8f, 0xc1, 0x6c, 0x21, 0xb3, 0x8c, 0x4a, 0xcb, 0x32, 0xe1, 0x7f, 0x39, 0x38, 0x2c, + 0x57, 0x80, 0x49, 0xa3, 0x65, 0x99, 0x38, 0x0c, 0x85, 0x7f, 0x08, 0x28, 0x48, 0xf0, 0xbf, 0xaa, + 0xdb, 0xd6, 0xbd, 0x06, 0xdd, 0x35, 0x0f, 0x13, 0x86, 0x35, 0x26, 0x3c, 0xd6, 0x0f, 0xcb, 0x98, + 0xe8, 0x53, 0x76, 0xfa, 0x90, 0x7d, 0x34, 0xf4, 0x6e, 0x23, 0x5d, 0xe1, 0xc3, 0x62, 0x15, 0x78, + 0x98, 0xe1, 0x8c, 0xad, 0xc5, 0xa1, 0x0c, 0x67, 0x31, 0x0c, 0x8c, 0xe1, 0xc6, 0x8a, 0x10, 0xc7, + 0xd4, 0xd7, 0x80, 0x0f, 0x80, 0xce, 0xe8, 0xcc, 0xc3, 0x21, 0xd1, 0x39, 0x1c, 0x13, 0xf1, 0xfd, + 0x34, 0x44, 0x26, 0xb5, 0x78, 0xe0, 0x7f, 0x1d, 0x05, 0x38, 0xb7, 0x0e, 0xe3, 0xaf, 0x40, 0xbc, + 0x15, 0xe0, 0x1b, 0x24, 0xd1, 0x10, 0x28, 0xfb, 0x24, 0xe8, 0x51, 0x19, 0x09, 0x82, 0xaf, 0x15, + 0x8a, 0x4d, 0x22, 0x52, 0x7e, 0xfa, 0x00, 0x3e, 0x57, 0x06, 0xb3, 0xd8, 0x47, 0xa0, 0x83, 0x74, + 0x9b, 0x74, 0x94, 0x23, 0x71, 0x94, 0x7f, 0x9b, 0x70, 0x80, 0x1f, 0x5e, 0x0e, 0x21, 0x1f, 0x23, + 0x81, 0x42, 0x2c, 0xba, 0x8f, 0x20, 0x0b, 0x63, 0xd9, 0x46, 0x29, 0x06, 0x2c, 0x50, 0x15, 0x1f, + 0x0d, 0x1e, 0x09, 0x3d, 0x72, 0x79, 0x61, 0xf8, 0x8d, 0x6d, 0xcc, 0x1e, 0xb9, 0x22, 0x4c, 0xa4, + 0x8f, 0xc9, 0xab, 0x1f, 0x4b, 0x17, 0x9c, 0x1b, 0xfa, 0xf9, 0x0e, 0x82, 0xaf, 0xc8, 0x06, 0x27, + 0xda, 0x3e, 0x3b, 0x12, 0x0f, 0xcc, 0x03, 0x04, 0xc4, 0x57, 0x40, 0xd6, 0xb6, 0x2e, 0x92, 0xa5, + 0xad, 0x19, 0x0d, 0x3f, 0x93, 0xeb, 0x29, 0x3b, 0x3b, 0xdb, 0x26, 0x39, 0x19, 0x3a, 0xa3, 0xf9, + 0xaf, 0xca, 0x35, 0x60, 0xe6, 0xa2, 0xe1, 0x6e, 0x2d, 0x23, 0xbd, 0x8d, 0x6c, 0xcd, 0xba, 0x88, + 0x3d, 0xe6, 0x0a, 0x1a, 0x9f, 0xc8, 0xfb, 0xaf, 0x08, 0xd8, 0x97, 0x9e, 0x50, 0xc6, 0x73, 0xfc, + 0x2d, 0x89, 0xe5, 0x19, 0xcd, 0x55, 0xfa, 0x0a, 0xf3, 0x6e, 0x19, 0x4c, 0x6a, 0xd6, 0x45, 0xaa, + 0x24, 0xff, 0xf7, 0xe1, 0xea, 0x48, 0xe2, 0x89, 0x1e, 0x96, 0x5c, 0xc0, 0xfe, 0xd8, 0x27, 0x7a, + 0xb1, 0xc5, 0x8f, 0xe5, 0xe4, 0xd2, 0xb4, 0x66, 0x5d, 0xac, 0x23, 0x97, 0xb4, 0x08, 0xd8, 0x1c, + 0x91, 0x93, 0xb5, 0xe1, 0x10, 0x82, 0x74, 0x1e, 0x1e, 0xbc, 0x27, 0xdd, 0x45, 0x08, 0x04, 0x14, + 0xb0, 0x38, 0xee, 0x5d, 0x84, 0x81, 0x1c, 0x8c, 0x21, 0x46, 0x8a, 0x0c, 0xa6, 0x34, 0xeb, 0xa2, + 0x37, 0x34, 0x2c, 0x1a, 0x9d, 0xce, 0x68, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0x2f, 0x06, 0x9f, 0x8b, + 0xb1, 0x1b, 0xff, 0x03, 0x18, 0x48, 0x1f, 0x86, 0x67, 0x91, 0xc6, 0xe2, 0x8f, 0xd0, 0xe6, 0x68, + 0x70, 0x18, 0xb6, 0x41, 0x04, 0x6c, 0x1c, 0x5a, 0x83, 0x88, 0xe2, 0x60, 0x2c, 0x3b, 0x27, 0xb3, + 0x65, 0x3c, 0xcc, 0x8f, 0xb6, 0x4d, 0xbc, 0x23, 0x99, 0x6b, 0x22, 0x1d, 0x76, 0x39, 0x46, 0x46, + 0x82, 0x46, 0x02, 0x17, 0x44, 0x01, 0x1e, 0xd2, 0xc7, 0xe3, 0x43, 0x32, 0x98, 0x26, 0x2c, 0x3c, + 0x4c, 0xac, 0x80, 0xa1, 0x1a, 0x15, 0x5b, 0x83, 0xc3, 0x69, 0x54, 0x31, 0x1c, 0x8c, 0xe5, 0x56, + 0x50, 0xcf, 0x8e, 0x1b, 0xe2, 0xf8, 0x78, 0x14, 0x82, 0x43, 0x1b, 0x63, 0x23, 0x3c, 0x42, 0x3e, + 0x8c, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x9f, 0x15, 0xb4, 0xa2, 0x51, 0x62, 0x70, 0x80, 0xa6, 0x30, + 0x42, 0x18, 0x86, 0x6c, 0x0a, 0x87, 0x84, 0xc4, 0x57, 0x65, 0x00, 0x08, 0x03, 0xab, 0xd6, 0x2e, + 0xbe, 0xcc, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x3c, 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97, + 0xa4, 0x2b, 0x81, 0x8c, 0x94, 0xbd, 0x4a, 0x8e, 0x7d, 0x25, 0x30, 0xbe, 0xfc, 0xf4, 0x31, 0x7e, + 0x88, 0x58, 0x73, 0xe1, 0x01, 0xd3, 0xdf, 0x1b, 0x09, 0xca, 0xcc, 0xec, 0x5f, 0xe6, 0x67, 0xff, + 0x07, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, 0x6d, 0xc4, 0xc3, 0x3b, 0x20, 0xfa, + 0xcb, 0x59, 0x70, 0x94, 0x76, 0x22, 0x3f, 0x0e, 0x10, 0x27, 0x3c, 0x87, 0xc7, 0x75, 0x92, 0x03, + 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x01, 0xf6, 0xc6, 0xb2, 0xba, 0x91, 0x57, 0xef, + 0xeb, 0xea, 0x66, 0x5b, 0x3c, 0xdc, 0xef, 0x00, 0xe0, 0xfd, 0xb5, 0x46, 0x99, 0x5f, 0x6b, 0xec, + 0xb3, 0x32, 0x99, 0x78, 0xe7, 0x1a, 0x8b, 0x8c, 0xb0, 0x3b, 0xf6, 0x9d, 0xeb, 0xe8, 0xb2, 0xd3, + 0x47, 0xe9, 0x1d, 0x32, 0xc8, 0xd6, 0x2d, 0xdb, 0x85, 0xcf, 0x4e, 0xd2, 0x3a, 0x89, 0xe4, 0x43, + 0x90, 0xfc, 0x77, 0xa5, 0xcc, 0xdd, 0xd2, 0x7c, 0x63, 0xfc, 0x51, 0x67, 0xdd, 0xd5, 0xb1, 0x57, + 0xb7, 0x57, 0x3e, 0x73, 0x5d, 0x73, 0xd2, 0x78, 0x3a, 0x44, 0x7e, 0xf5, 0xe8, 0x03, 0x18, 0xa9, + 0xc5, 0xd3, 0x89, 0x2c, 0x39, 0x7d, 0xdc, 0x1e, 0x38, 0x4a, 0x7d, 0x5b, 0x17, 0x8d, 0x0e, 0x82, + 0xcf, 0x26, 0x2e, 0x23, 0x55, 0x7d, 0x1b, 0x89, 0x1f, 0x89, 0x89, 0x75, 0x6d, 0xc5, 0xf1, 0x65, + 0xe5, 0x30, 0xbe, 0x6c, 0xd2, 0x06, 0x45, 0x0e, 0xa0, 0x13, 0x96, 0xc6, 0xdd, 0xa0, 0x62, 0xca, + 0x1e, 0x4b, 0x9c, 0xce, 0x63, 0x75, 0xe4, 0x12, 0xa3, 0xb2, 0xe6, 0xdf, 0xc0, 0xf2, 0x8b, 0x23, + 0x89, 0xd8, 0x19, 0x5c, 0xf0, 0x22, 0xf7, 0x5c, 0xf0, 0xf2, 0x6e, 0x16, 0x9c, 0x55, 0x1e, 0x9c, + 0x9f, 0x8d, 0x16, 0x10, 0xcf, 0xe4, 0x48, 0x60, 0x7a, 0x53, 0x00, 0xd3, 0x1a, 0x07, 0xd3, 0x6d, + 0x43, 0x72, 0x91, 0x3e, 0x60, 0xbf, 0x99, 0x03, 0x47, 0xc9, 0xa4, 0xbf, 0x64, 0xb6, 0x69, 0x84, + 0xd5, 0xd7, 0x49, 0x87, 0xbc, 0xd9, 0xb6, 0x3f, 0x04, 0x2b, 0x17, 0xcb, 0x39, 0xd7, 0x7b, 0x3b, + 0xfe, 0x3c, 0x09, 0xe7, 0xea, 0x75, 0xa2, 0x78, 0xa7, 0x4d, 0xfc, 0x86, 0xfc, 0xe0, 0x3f, 0xfe, + 0x2e, 0xa3, 0x09, 0xf1, 0xbb, 0x8c, 0xfe, 0x32, 0xd9, 0xba, 0x1d, 0x2e, 0xba, 0x47, 0xe0, 0x29, + 0xdb, 0x4e, 0x09, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xc9, 0x70, 0x27, 0x0b, 0x23, 0x88, 0x0c, 0xe9, + 0x4e, 0x86, 0x09, 0x1c, 0xa6, 0x3b, 0xd9, 0x20, 0x06, 0xc6, 0x70, 0xab, 0x7d, 0x8e, 0xee, 0xe6, + 0xe3, 0x76, 0x03, 0xff, 0x4e, 0x4a, 0x7d, 0x94, 0xfe, 0x7e, 0x26, 0x91, 0xff, 0x33, 0xe6, 0x2b, + 0x7e, 0x98, 0x4e, 0xe2, 0xd1, 0x1c, 0x47, 0x6e, 0x0c, 0xeb, 0x46, 0x12, 0xf6, 0x45, 0x3f, 0x67, + 0xb4, 0xdd, 0xad, 0x11, 0x9d, 0xe8, 0xb8, 0xe8, 0xd1, 0xf2, 0xaf, 0x47, 0xc6, 0x2f, 0xf0, 0x7f, + 0x66, 0x12, 0x85, 0x90, 0x0a, 0x44, 0x82, 0xd9, 0x8a, 0x10, 0x71, 0x82, 0xc0, 0x4f, 0xb1, 0xf4, + 0xc6, 0xa8, 0xd1, 0x67, 0x8d, 0x36, 0xb2, 0x1e, 0x86, 0x1a, 0x8d, 0xf9, 0x1a, 0x9d, 0x46, 0xc7, + 0x91, 0xfb, 0x09, 0xd5, 0xe8, 0x40, 0x24, 0x23, 0xd2, 0xe8, 0x58, 0x7a, 0xe9, 0xcb, 0xf8, 0x65, + 0xd3, 0x74, 0x22, 0xb5, 0x62, 0x98, 0x17, 0xe0, 0xbf, 0xe5, 0xfd, 0x8b, 0x99, 0xcf, 0x19, 0xee, + 0x16, 0x8d, 0x05, 0xf3, 0x3e, 0xe1, 0xbb, 0x51, 0x86, 0x88, 0xf7, 0xc2, 0x87, 0x93, 0xca, 0xed, + 0x0b, 0x27, 0x55, 0x02, 0x33, 0x86, 0xe9, 0x22, 0xdb, 0xd4, 0x3b, 0x8b, 0x1d, 0x7d, 0xd3, 0x39, + 0x35, 0xd1, 0xf7, 0xf2, 0xba, 0x0a, 0x93, 0x47, 0xe3, 0xff, 0x60, 0xaf, 0xaf, 0x2c, 0xf0, 0xd7, + 0x57, 0x46, 0x44, 0xbf, 0x9a, 0x8c, 0x8e, 0x7e, 0x15, 0x44, 0xb7, 0x02, 0x83, 0x83, 0x63, 0x8b, + 0xda, 0xc6, 0x09, 0xc3, 0xfd, 0xdd, 0x28, 0x18, 0x85, 0x2d, 0x08, 0xfd, 0xf8, 0x07, 0x72, 0xa2, + 0xd5, 0x3d, 0x4f, 0x11, 0xe6, 0x7a, 0x95, 0x20, 0xb1, 0x85, 0xca, 0x56, 0x5e, 0xee, 0xa9, 0x7c, + 0x60, 0xf2, 0x64, 0x05, 0x4c, 0x1e, 0x56, 0xa9, 0x72, 0x62, 0x4a, 0x95, 0x64, 0xb1, 0x50, 0xa4, + 0xb6, 0x63, 0x38, 0x8d, 0x94, 0x03, 0xc7, 0xfc, 0x68, 0xb7, 0xdd, 0x2e, 0xd2, 0x6d, 0xdd, 0x6c, + 0x21, 0xf8, 0x51, 0x69, 0x14, 0x66, 0xef, 0x22, 0x28, 0x18, 0x2d, 0xcb, 0xac, 0x1b, 0x4f, 0xf3, + 0x2f, 0x97, 0x8b, 0x0f, 0xb2, 0x8e, 0x25, 0x52, 0xa1, 0x7f, 0x68, 0xc1, 0xbf, 0x4a, 0x05, 0x4c, + 0xb6, 0x74, 0xbb, 0x4d, 0x82, 0xf0, 0xe5, 0x7a, 0x2e, 0x72, 0x8a, 0x24, 0x54, 0xf6, 0x7f, 0xd1, + 0xc2, 0xbf, 0x95, 0x1a, 0x2f, 0xc4, 0x7c, 0x4f, 0x34, 0x8f, 0x48, 0x62, 0x0b, 0xe1, 0x4f, 0x9c, + 0xcc, 0x3d, 0xe9, 0xd8, 0xa8, 0x83, 0xef, 0xa0, 0x27, 0x3d, 0xc4, 0xa4, 0x16, 0x26, 0x24, 0x5d, + 0x1e, 0xc0, 0x45, 0xed, 0x43, 0x63, 0xdc, 0xcb, 0x03, 0x42, 0x5c, 0xa4, 0xaf, 0x99, 0x6f, 0xcd, + 0x83, 0x19, 0xd2, 0xab, 0x51, 0x71, 0xc2, 0xe7, 0xe2, 0x2b, 0xa4, 0xdd, 0xbb, 0xd1, 0x1e, 0xac, + 0x1f, 0x7c, 0x4c, 0x2e, 0x02, 0xf9, 0x42, 0x10, 0x70, 0xd0, 0x7b, 0x4c, 0xba, 0x6f, 0xef, 0xf3, + 0x35, 0x47, 0x78, 0x1a, 0xf7, 0xbe, 0x7d, 0x7c, 0xf1, 0xe9, 0xe3, 0xf3, 0x5b, 0x32, 0x90, 0x4b, + 0xed, 0x36, 0x6c, 0x1d, 0x1c, 0x8a, 0xab, 0xc0, 0x94, 0xdf, 0x66, 0xc2, 0x18, 0x90, 0x6c, 0x52, + 0xd2, 0x45, 0xd0, 0x40, 0x36, 0xa5, 0xf6, 0xd8, 0x77, 0x15, 0x62, 0xca, 0x4e, 0x1f, 0x94, 0x2f, + 0x4e, 0xd0, 0x46, 0x33, 0x6f, 0x59, 0x17, 0xf0, 0x51, 0x99, 0x3f, 0x92, 0x41, 0x6e, 0x11, 0xb9, + 0xad, 0x2d, 0xe8, 0x8c, 0xa4, 0xcd, 0xec, 0xd8, 0x1d, 0xbf, 0xcd, 0xec, 0xd8, 0x9d, 0x41, 0x41, + 0x39, 0x93, 0x46, 0x7f, 0xf6, 0xd9, 0x9e, 0xc3, 0x2c, 0x8f, 0x3b, 0xfa, 0x73, 0x6c, 0xe9, 0x63, + 0x38, 0x04, 0x97, 0x05, 0xb3, 0xc1, 0x0a, 0x18, 0xc1, 0xec, 0xcd, 0x99, 0x87, 0xdd, 0x7a, 0xe8, + 0x00, 0xbb, 0x19, 0x7e, 0x3e, 0x59, 0x88, 0xb5, 0x40, 0xe6, 0x7c, 0xcd, 0x53, 0x5e, 0x98, 0x4c, + 0x10, 0x7c, 0x4d, 0x8c, 0xc1, 0x31, 0xac, 0x00, 0xc8, 0xa0, 0x80, 0x19, 0x5a, 0x30, 0x76, 0xb1, + 0xeb, 0x21, 0xb7, 0x50, 0xf9, 0xf4, 0x91, 0x2c, 0x54, 0xde, 0xc6, 0x2f, 0x54, 0x0a, 0x46, 0x4c, + 0xf6, 0xd7, 0x29, 0x13, 0xfa, 0xe2, 0x78, 0xff, 0x8f, 0x7c, 0x99, 0x32, 0x81, 0x2f, 0xce, 0x80, + 0xf2, 0xc7, 0xe0, 0x7a, 0xf8, 0x14, 0xda, 0x59, 0xfb, 0x1b, 0xb2, 0xf0, 0xbf, 0x1f, 0x03, 0xd9, + 0xb3, 0xde, 0xc3, 0xff, 0x08, 0x6f, 0xd4, 0x7a, 0xf1, 0x08, 0x82, 0x3b, 0x3c, 0x19, 0x64, 0x3d, + 0xfa, 0x74, 0xda, 0x73, 0xbd, 0xd8, 0xee, 0xb0, 0xc7, 0x88, 0x86, 0xff, 0x53, 0x4e, 0x82, 0xbc, + 0x63, 0xed, 0xd8, 0x2d, 0xcf, 0xfc, 0xf6, 0x34, 0x86, 0xbe, 0x25, 0x0d, 0x6a, 0xca, 0x91, 0x9e, + 0x1b, 0x9d, 0xcb, 0x29, 0x73, 0xc1, 0x92, 0xcc, 0x5d, 0xb0, 0x94, 0x60, 0xff, 0x41, 0x80, 0xb7, + 0xf4, 0x35, 0xe2, 0xef, 0xf0, 0x5d, 0x83, 0xed, 0x51, 0xc1, 0x1e, 0x21, 0x96, 0x83, 0xaa, 0x43, + 0x52, 0x87, 0x71, 0x5e, 0xb4, 0x41, 0x1c, 0xf9, 0xb1, 0x3a, 0x8c, 0x0b, 0xf0, 0x30, 0x96, 0x53, + 0xee, 0x79, 0xea, 0xe4, 0x7a, 0xcf, 0x28, 0xd1, 0xcd, 0x72, 0x4a, 0x7f, 0x20, 0x74, 0x46, 0xe8, + 0xfc, 0x3a, 0x34, 0x3a, 0x87, 0xe4, 0xfe, 0xfa, 0x67, 0x32, 0x8e, 0xa4, 0xe9, 0x1b, 0x41, 0xe2, + 0x17, 0x25, 0x25, 0x86, 0xc8, 0x1b, 0x83, 0xb9, 0x38, 0xd2, 0x33, 0xc3, 0x87, 0x16, 0xe7, 0x45, + 0xc7, 0xf0, 0x3f, 0xee, 0xd0, 0xe2, 0xa2, 0x8c, 0xa4, 0x0f, 0xe4, 0x1f, 0x92, 0x8b, 0xc9, 0x4a, + 0x2d, 0xd7, 0xd8, 0x1d, 0x71, 0x4b, 0xe3, 0x87, 0x97, 0x84, 0xd1, 0x84, 0xf7, 0x49, 0x88, 0x70, + 0x38, 0xee, 0x68, 0xc2, 0x62, 0x6c, 0xa4, 0x0f, 0xd3, 0x3f, 0xe6, 0x3d, 0xe9, 0xd1, 0xb5, 0x9d, + 0x57, 0xd3, 0xd5, 0x04, 0x74, 0x70, 0xb4, 0xce, 0x80, 0x69, 0x66, 0xe9, 0xc0, 0xbf, 0xf0, 0x86, + 0x4b, 0x4b, 0x7a, 0x50, 0x3e, 0x10, 0xd9, 0xc8, 0x17, 0x16, 0x12, 0x2c, 0x18, 0x8b, 0x30, 0x31, + 0x96, 0xfb, 0xe4, 0xfc, 0x31, 0x6c, 0x4c, 0x58, 0xbd, 0x8f, 0xc5, 0xaa, 0xc6, 0x63, 0x75, 0x8b, + 0x88, 0x98, 0xc4, 0xc6, 0x34, 0xa1, 0x79, 0xe3, 0x5b, 0x02, 0xb8, 0x34, 0x0e, 0xae, 0x27, 0x0f, + 0xcd, 0x47, 0xfa, 0x88, 0xbd, 0x84, 0x74, 0x87, 0x75, 0x62, 0xb2, 0x8f, 0xa6, 0x3b, 0xa4, 0xb3, + 0x01, 0x99, 0x9b, 0x0d, 0x24, 0xf4, 0xd7, 0x0f, 0xdd, 0x50, 0x7d, 0xe6, 0x06, 0x41, 0x94, 0x1d, + 0xb1, 0xbf, 0xfe, 0x40, 0x0e, 0xd2, 0x07, 0xe7, 0x3b, 0x32, 0x00, 0x4b, 0xb6, 0xb5, 0xd3, 0xad, + 0xd9, 0x6d, 0x64, 0xc3, 0x7f, 0x08, 0x27, 0x00, 0x2f, 0x1c, 0xc1, 0x04, 0x60, 0x0d, 0x80, 0xcd, + 0x80, 0x38, 0xd5, 0xf0, 0xc7, 0x8a, 0x99, 0xfb, 0x21, 0x53, 0x1a, 0x43, 0x83, 0xbf, 0xb2, 0xf6, + 0xe7, 0x78, 0x8c, 0xe3, 0xfa, 0xac, 0x90, 0xdc, 0x28, 0x27, 0x00, 0x6f, 0x0b, 0xb0, 0x6e, 0x70, + 0x58, 0xdf, 0x79, 0x00, 0x4e, 0xd2, 0xc7, 0xfc, 0x5f, 0x27, 0xc0, 0x14, 0xd9, 0xee, 0x23, 0x32, + 0xfd, 0xe7, 0x10, 0xf4, 0xdf, 0x1b, 0x01, 0xe8, 0xeb, 0x60, 0xda, 0x0a, 0xa9, 0x93, 0x3e, 0x95, + 0x5d, 0x80, 0x89, 0x85, 0x9d, 0xe1, 0x4b, 0xe3, 0xc8, 0xc0, 0x0f, 0xb3, 0xc8, 0x6b, 0x3c, 0xf2, + 0xb7, 0xc5, 0xc8, 0x9b, 0xa1, 0x38, 0x4a, 0xe8, 0xdf, 0x1e, 0x40, 0xbf, 0xce, 0x41, 0x5f, 0x3a, + 0x08, 0x2b, 0x63, 0x08, 0xd7, 0x2f, 0x83, 0x2c, 0x3e, 0x5d, 0xf7, 0xfa, 0x14, 0xe7, 0xf7, 0xa7, + 0xc0, 0x04, 0x6e, 0xb2, 0xc1, 0xbc, 0xc3, 0x7f, 0xf5, 0xbe, 0xe8, 0x1b, 0x2e, 0xb2, 0x83, 0x95, + 0x5b, 0xff, 0xd5, 0xe3, 0xc1, 0xf7, 0x6a, 0x76, 0x4e, 0xe5, 0xc9, 0x46, 0x66, 0x90, 0x30, 0xf4, + 0xa4, 0x84, 0x95, 0xf8, 0xc8, 0xce, 0xdb, 0x0d, 0x33, 0x29, 0x19, 0xc0, 0x48, 0xfa, 0xc0, 0x7f, + 0x29, 0x0b, 0x4e, 0x91, 0x55, 0xa5, 0x45, 0xdb, 0xda, 0xee, 0xb9, 0x1d, 0xcb, 0x38, 0xb8, 0x2e, + 0x5c, 0x0b, 0x66, 0x5d, 0xce, 0x9f, 0x9b, 0xea, 0x44, 0x4f, 0x2a, 0xfc, 0x2b, 0xd6, 0x27, 0xe3, + 0x29, 0x3c, 0x92, 0xf3, 0x31, 0x02, 0x8c, 0xe2, 0x3d, 0xf1, 0x42, 0xbd, 0x20, 0xa3, 0xcc, 0x22, + 0x95, 0x3c, 0xd4, 0x9a, 0x65, 0xa0, 0x53, 0x39, 0x11, 0x9d, 0x7a, 0x4f, 0xa0, 0x53, 0xbf, 0xc0, + 0xe9, 0xd4, 0xd2, 0xc1, 0x45, 0x32, 0x86, 0x95, 0x8b, 0x59, 0x90, 0x5f, 0x34, 0x3a, 0x2e, 0xb2, + 0xe1, 0x43, 0x74, 0x1e, 0xf5, 0x8a, 0x14, 0xbb, 0x97, 0x05, 0x90, 0xdf, 0xc0, 0xa5, 0x51, 0x83, + 0xec, 0x06, 0x31, 0x6c, 0x08, 0x87, 0x1a, 0xfd, 0x37, 0x69, 0xec, 0xb8, 0x1e, 0x32, 0x23, 0x9b, + 0x80, 0x25, 0x88, 0x1d, 0x37, 0x98, 0x85, 0xb1, 0x5c, 0x9b, 0x94, 0xd7, 0xd0, 0xb6, 0x37, 0x82, + 0x5c, 0x48, 0x0f, 0xe1, 0x22, 0x90, 0x8d, 0xb6, 0x83, 0x9b, 0xde, 0xa4, 0xe6, 0x3d, 0x26, 0xf5, + 0x64, 0xe9, 0x15, 0x15, 0x61, 0x79, 0xdc, 0x9e, 0x2c, 0x42, 0x5c, 0xa4, 0x8f, 0xd9, 0xf7, 0xb1, + 0x1b, 0x63, 0xb7, 0xa3, 0xb7, 0x90, 0xc7, 0x7d, 0x6a, 0xa8, 0xcd, 0x02, 0xc9, 0xf0, 0x47, 0x7c, + 0xc9, 0x60, 0xdb, 0x69, 0xee, 0x00, 0xed, 0x74, 0xd8, 0x45, 0xae, 0x40, 0xe6, 0xb8, 0xe2, 0x87, + 0xb6, 0xc8, 0x15, 0xcb, 0xc6, 0x18, 0x2e, 0xc5, 0xf4, 0x8f, 0x79, 0x8e, 0xb5, 0xb5, 0x0e, 0xbb, + 0x05, 0x40, 0x85, 0x35, 0xb2, 0x23, 0x9d, 0xc3, 0x6c, 0x01, 0x44, 0xf3, 0x30, 0x06, 0xb4, 0x66, + 0x29, 0x5a, 0x9f, 0xa3, 0xc3, 0x68, 0xca, 0xbb, 0x70, 0x8e, 0x65, 0xbb, 0xc9, 0x76, 0xe1, 0x3c, + 0xee, 0x34, 0xfc, 0x5f, 0xd2, 0x63, 0x41, 0xfc, 0xa9, 0xdf, 0x51, 0x0d, 0x9f, 0x09, 0x8e, 0x05, + 0x0d, 0x62, 0x20, 0x7d, 0x78, 0xdf, 0x70, 0x48, 0x83, 0xe7, 0xb0, 0xcd, 0x91, 0xb6, 0x81, 0x91, + 0x0d, 0x9d, 0xc3, 0x34, 0xc7, 0x68, 0x1e, 0xd2, 0xc7, 0xeb, 0xdb, 0xcc, 0xc0, 0xf9, 0xda, 0x31, + 0x0e, 0x9c, 0x7e, 0xcb, 0xcc, 0x0d, 0xd9, 0x32, 0x87, 0xdd, 0x5d, 0xa0, 0xb2, 0x1e, 0xdd, 0x80, + 0x39, 0xcc, 0xee, 0x42, 0x0c, 0x13, 0xe9, 0x23, 0xfe, 0x3a, 0x19, 0xe4, 0xea, 0xe3, 0x1f, 0x2f, + 0x87, 0x9d, 0x8b, 0x60, 0x59, 0xd5, 0x47, 0x36, 0x5c, 0x0e, 0x33, 0x17, 0x89, 0x64, 0x61, 0x0c, + 0x61, 0xe1, 0x8f, 0x82, 0x69, 0x3c, 0xe1, 0xf6, 0x37, 0xf1, 0xbe, 0x4d, 0x47, 0xcd, 0x07, 0x53, + 0x6c, 0xab, 0x77, 0x81, 0x82, 0xbf, 0x3b, 0x44, 0x47, 0xce, 0x39, 0xb1, 0xf6, 0xe9, 0x73, 0xa9, + 0x05, 0xff, 0x1f, 0x68, 0xab, 0x7d, 0xe4, 0x3b, 0x81, 0xc3, 0x6e, 0xb5, 0x1f, 0xea, 0x6e, 0xe0, + 0x5f, 0x86, 0x23, 0xea, 0x7f, 0x49, 0x0f, 0xf3, 0xde, 0x5d, 0xc2, 0x6c, 0x9f, 0x5d, 0xc2, 0x8f, + 0xb2, 0x58, 0xd6, 0x79, 0x2c, 0x6f, 0x17, 0x15, 0xe1, 0x08, 0xc7, 0xda, 0x77, 0x04, 0x70, 0x9e, + 0xe5, 0xe0, 0x9c, 0x3f, 0x10, 0x2f, 0x63, 0x38, 0x96, 0x97, 0x0d, 0xc7, 0xdc, 0x8f, 0xa5, 0xd8, + 0x8e, 0x7b, 0x7c, 0xfe, 0xb3, 0xfb, 0x7c, 0xfe, 0xb9, 0x96, 0x9e, 0x3b, 0x60, 0x4b, 0xff, 0x18, + 0xab, 0x1d, 0x0d, 0x5e, 0x3b, 0x9e, 0x2c, 0x8e, 0xc8, 0xe8, 0x46, 0xe6, 0x77, 0x06, 0xea, 0x71, + 0x8e, 0x53, 0x8f, 0xf2, 0xc1, 0x98, 0x49, 0x5f, 0x3f, 0x3e, 0xe1, 0x4f, 0x68, 0x0f, 0xb9, 0xbd, + 0x0f, 0xbb, 0x11, 0xc9, 0x09, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x1b, 0x91, 0x83, 0x38, 0x19, 0x43, + 0xa4, 0xb0, 0x19, 0x30, 0x85, 0x79, 0x3a, 0x67, 0xb4, 0x37, 0x91, 0x0b, 0xff, 0x80, 0x78, 0xc0, + 0xf9, 0x71, 0x19, 0x47, 0x14, 0x3c, 0x27, 0xea, 0x34, 0x66, 0x52, 0x7f, 0x01, 0xc2, 0xe4, 0x1c, + 0xc3, 0xe0, 0xb8, 0xe3, 0xfb, 0x0d, 0xe4, 0x20, 0x7d, 0xc8, 0x3e, 0x4c, 0x9c, 0x39, 0x56, 0xf4, + 0x3d, 0x6b, 0xc7, 0x85, 0xf7, 0x8f, 0xa0, 0x83, 0x9e, 0x07, 0xf9, 0x0e, 0xa6, 0x46, 0x9d, 0xfe, + 0xe3, 0xa7, 0x3b, 0x54, 0x04, 0xa4, 0x7c, 0x8d, 0xfe, 0x99, 0xd4, 0xf3, 0x3f, 0x94, 0x23, 0xa1, + 0x33, 0x6e, 0xcf, 0xff, 0x01, 0xe5, 0x8f, 0xe5, 0x06, 0x98, 0x82, 0x57, 0xba, 0xb1, 0x6d, 0xb8, + 0x23, 0x8a, 0x2f, 0xd0, 0xf1, 0x68, 0xf9, 0xf1, 0x05, 0xf0, 0x4b, 0xd2, 0xf3, 0x8c, 0x8c, 0x54, + 0xbc, 0xdf, 0xc7, 0x7d, 0x9e, 0x31, 0xbe, 0xf8, 0xf4, 0x31, 0xf9, 0x1d, 0xd2, 0xb2, 0xce, 0x12, + 0xd7, 0xce, 0x14, 0xbd, 0x46, 0x87, 0x6e, 0x2c, 0x84, 0xb5, 0xc3, 0x6b, 0x2c, 0x7d, 0xcb, 0x4f, + 0x1f, 0x98, 0x3f, 0xfa, 0x69, 0x90, 0x5b, 0x40, 0xe7, 0x77, 0x36, 0xe1, 0x6d, 0xa0, 0xd0, 0xb0, + 0x11, 0xaa, 0x98, 0x1b, 0x96, 0x27, 0x5d, 0xd7, 0x7b, 0xf6, 0x21, 0xa1, 0x6f, 0x1e, 0x1e, 0x5b, + 0x48, 0x6f, 0x87, 0xa7, 0x9b, 0xfc, 0x57, 0xf8, 0x62, 0x09, 0x64, 0xeb, 0xae, 0xee, 0xc2, 0xc9, + 0x00, 0x5b, 0x78, 0x3f, 0x8b, 0xc5, 0x6d, 0x3c, 0x16, 0xd7, 0x72, 0xb2, 0xc0, 0x1c, 0xcc, 0x79, + 0xff, 0x47, 0x00, 0x00, 0x41, 0xe1, 0x5e, 0xc7, 0x32, 0xbd, 0x1c, 0xfe, 0x01, 0x3c, 0xff, 0x1d, + 0xbe, 0x3c, 0x10, 0xf7, 0x1d, 0x9c, 0xb8, 0x1f, 0x2d, 0x56, 0xc4, 0x18, 0x56, 0xda, 0x24, 0x30, + 0xe9, 0x89, 0x76, 0x19, 0xe9, 0x6d, 0x07, 0xfe, 0x54, 0xa8, 0xfc, 0x11, 0x62, 0x86, 0xef, 0x17, + 0x0e, 0x15, 0x49, 0x6a, 0x15, 0x10, 0x8f, 0xf6, 0x17, 0xf0, 0x43, 0x65, 0x48, 0x7c, 0xa8, 0x8c, + 0x1b, 0x41, 0xd6, 0x30, 0x37, 0x2c, 0xea, 0xbd, 0x76, 0x79, 0x04, 0x6d, 0x4f, 0x27, 0x34, 0x9c, + 0x51, 0x30, 0x8e, 0x64, 0x3c, 0x5b, 0x63, 0xb9, 0x92, 0x2d, 0xeb, 0x95, 0x0e, 0xff, 0xaf, 0x81, + 0xc2, 0x56, 0x14, 0x90, 0xed, 0xea, 0xee, 0x16, 0x2d, 0x1a, 0x3f, 0x7b, 0x36, 0xf2, 0x8e, 0xa9, + 0x9b, 0x96, 0xb9, 0xb7, 0x6d, 0x3c, 0x2d, 0xb8, 0xf9, 0x95, 0x4b, 0xf3, 0x38, 0xdf, 0x44, 0x26, + 0xb2, 0x75, 0x17, 0xd5, 0x77, 0x37, 0xf1, 0x1c, 0xab, 0xa0, 0xb1, 0x49, 0x89, 0xf5, 0xdf, 0xe3, + 0x38, 0x5a, 0xff, 0x37, 0x8c, 0x0e, 0xc2, 0x71, 0x84, 0xa8, 0xfe, 0xfb, 0xef, 0x89, 0xf4, 0xbf, + 0x4f, 0x11, 0xe9, 0xa3, 0xf1, 0x03, 0x09, 0x4c, 0xd7, 0x3d, 0x85, 0xab, 0xef, 0x6c, 0x6f, 0xeb, + 0xf6, 0x1e, 0xbc, 0x3a, 0x44, 0x85, 0x51, 0xcd, 0x0c, 0xa7, 0x9a, 0xf0, 0xcf, 0x84, 0x2f, 0x3d, + 0xa6, 0x4d, 0x9b, 0x29, 0x21, 0x71, 0x3b, 0xb8, 0x09, 0xe4, 0x3c, 0xf5, 0xf6, 0xfd, 0xf9, 0x62, + 0x1b, 0x02, 0xc9, 0x29, 0x18, 0x6f, 0x69, 0x20, 0x6f, 0x63, 0x88, 0xf5, 0x20, 0x81, 0xa3, 0x75, + 0x57, 0x6f, 0x5d, 0x58, 0xb2, 0x6c, 0x6b, 0xc7, 0x35, 0x4c, 0xe4, 0xc0, 0x47, 0x84, 0x08, 0xf8, + 0xfa, 0x9f, 0x09, 0xf5, 0x1f, 0xfe, 0x28, 0x23, 0x3a, 0x8a, 0x06, 0xdd, 0x2a, 0x4b, 0x3e, 0x22, + 0x7c, 0x92, 0xd8, 0xb8, 0x28, 0x42, 0x31, 0x7d, 0xa1, 0xbd, 0x56, 0x06, 0x45, 0xf5, 0xbe, 0xae, + 0x65, 0xbb, 0x2b, 0x56, 0x4b, 0xef, 0x38, 0xae, 0x65, 0x23, 0x58, 0x8b, 0x95, 0x9a, 0xd7, 0xc3, + 0xb4, 0xad, 0x56, 0x38, 0x38, 0xd2, 0x37, 0x56, 0xed, 0x64, 0x5e, 0xc7, 0x3f, 0x2c, 0xbc, 0xcb, + 0x48, 0xa4, 0xd2, 0xcb, 0x51, 0x84, 0x9e, 0xf7, 0xeb, 0xd2, 0x92, 0xb9, 0xe2, 0x8b, 0xed, 0x3c, + 0x0a, 0x31, 0x35, 0x86, 0xa5, 0x72, 0x09, 0xcc, 0xd4, 0x77, 0xce, 0x07, 0x44, 0x1c, 0xd6, 0x08, + 0x79, 0xa5, 0x70, 0x8c, 0x04, 0xaa, 0x78, 0x2c, 0xa1, 0x08, 0xf9, 0x5e, 0x03, 0x66, 0x1c, 0x36, + 0x1b, 0xc5, 0x9b, 0x4f, 0x14, 0x8c, 0x8d, 0x30, 0xb8, 0xd4, 0xf4, 0x05, 0xf8, 0x4e, 0x09, 0xcc, + 0xd4, 0xba, 0xc8, 0x44, 0x6d, 0xe2, 0x63, 0xc7, 0x09, 0xf0, 0xc5, 0x09, 0x05, 0xc8, 0x11, 0x8a, + 0x10, 0x60, 0xe8, 0x0f, 0xbb, 0xe0, 0x0b, 0x2f, 0x4c, 0x48, 0x24, 0xb8, 0xb8, 0xd2, 0xd2, 0x17, + 0xdc, 0x97, 0x25, 0x30, 0xa5, 0xed, 0x98, 0x6b, 0xb6, 0xe5, 0x8d, 0xc6, 0x36, 0xbc, 0x3d, 0xec, + 0x20, 0x6e, 0x00, 0xc7, 0xda, 0x3b, 0x36, 0x5e, 0x7f, 0xaa, 0x98, 0x75, 0xd4, 0xb2, 0xcc, 0xb6, + 0x83, 0xeb, 0x91, 0xd3, 0xf6, 0x7f, 0xb8, 0x35, 0xfb, 0xec, 0x6f, 0xc8, 0x19, 0xf8, 0x5c, 0xe1, + 0x40, 0x2c, 0xa4, 0xf2, 0x4c, 0xd1, 0xe2, 0x3d, 0x81, 0x60, 0xb8, 0x95, 0x41, 0x25, 0xa4, 0x2f, + 0xdc, 0xcf, 0x49, 0x40, 0x29, 0xb5, 0x5a, 0xd6, 0x8e, 0xe9, 0xd6, 0x51, 0x07, 0xb5, 0xdc, 0x86, + 0xad, 0xb7, 0x10, 0x6b, 0x3f, 0x17, 0x81, 0xdc, 0x36, 0x6c, 0xda, 0x07, 0x7b, 0x8f, 0x54, 0x8e, + 0x2f, 0x16, 0xde, 0x71, 0x24, 0xb5, 0xdc, 0x5f, 0x4a, 0x02, 0x71, 0x8a, 0xed, 0x2b, 0x0a, 0x16, + 0x94, 0xbe, 0x54, 0x3f, 0x26, 0x81, 0x49, 0xbf, 0xc7, 0xde, 0x14, 0x11, 0xe6, 0xef, 0x24, 0x9c, + 0x8c, 0x04, 0xc4, 0x13, 0xc8, 0xf0, 0xad, 0x09, 0x66, 0x15, 0x51, 0xf4, 0x93, 0x89, 0xae, 0x94, + 0x5c, 0x74, 0xde, 0x6b, 0xb5, 0xd6, 0x5c, 0xac, 0xad, 0x2c, 0xa8, 0x5a, 0x51, 0x86, 0x0f, 0x49, + 0x20, 0xbb, 0x66, 0x98, 0x9b, 0x6c, 0xbc, 0xac, 0xe3, 0x9e, 0x1d, 0xd9, 0x46, 0xf7, 0xd1, 0x96, + 0x4e, 0x5e, 0x94, 0x9b, 0xc1, 0x71, 0x73, 0x67, 0xfb, 0x3c, 0xb2, 0x6b, 0x1b, 0x78, 0x94, 0x75, + 0x1a, 0x56, 0x1d, 0x99, 0xc4, 0x08, 0xcd, 0x69, 0x7d, 0xbf, 0xf1, 0x26, 0x98, 0xc0, 0xe4, 0xc1, + 0xe3, 0x24, 0x42, 0xe2, 0x01, 0x53, 0x12, 0xc3, 0x54, 0xa2, 0x69, 0x43, 0x1f, 0xe2, 0xe9, 0x6b, + 0xea, 0x9f, 0xe7, 0xc0, 0x89, 0x92, 0xb9, 0x87, 0x6d, 0x0a, 0xd2, 0xc1, 0x97, 0xb7, 0x74, 0x73, + 0x13, 0xe1, 0x01, 0x22, 0x90, 0x38, 0x1b, 0x40, 0x3e, 0xc3, 0x07, 0x90, 0x57, 0x34, 0x30, 0x61, + 0xd9, 0x6d, 0x64, 0xcf, 0xef, 0x61, 0x9e, 0x7a, 0x97, 0x9d, 0x69, 0x9b, 0xec, 0x57, 0xc4, 0x1c, + 0x25, 0x3f, 0x57, 0x23, 0xff, 0x6b, 0x3e, 0xa1, 0x33, 0x37, 0x80, 0x09, 0x9a, 0xa6, 0x4c, 0x83, + 0x42, 0x4d, 0x5b, 0x50, 0xb5, 0x66, 0x65, 0xa1, 0x78, 0x44, 0xb9, 0x04, 0x1c, 0xad, 0x34, 0x54, + 0xad, 0xd4, 0xa8, 0xd4, 0xaa, 0x4d, 0x9c, 0x5e, 0xcc, 0xc0, 0x67, 0x65, 0x45, 0x3d, 0x7b, 0xe3, + 0x99, 0xe9, 0x07, 0xab, 0x06, 0x26, 0x5a, 0x24, 0x03, 0x1e, 0x42, 0xa7, 0x12, 0xd5, 0x8e, 0x12, + 0x24, 0x09, 0x9a, 0x4f, 0x48, 0x39, 0x0d, 0xc0, 0x45, 0xdb, 0x32, 0x37, 0xc3, 0x33, 0x6d, 0x05, + 0x8d, 0x49, 0x81, 0xf7, 0x67, 0x40, 0x9e, 0xfc, 0x83, 0x2f, 0xcc, 0xc0, 0x4f, 0xa1, 0xe0, 0xfd, + 0x77, 0xcf, 0xe2, 0xc5, 0xf2, 0x0a, 0x27, 0x5a, 0xf4, 0xd5, 0xd3, 0x45, 0x22, 0x03, 0x62, 0x09, + 0xd3, 0xaa, 0xdc, 0x08, 0xf2, 0xe4, 0x5f, 0xea, 0x75, 0x10, 0x1d, 0xfc, 0x92, 0x64, 0x13, 0xf4, + 0x53, 0x16, 0x97, 0x69, 0xfa, 0xda, 0xfc, 0x01, 0x09, 0x14, 0xaa, 0xc8, 0x2d, 0x6f, 0xa1, 0xd6, + 0x05, 0xf8, 0x28, 0x7e, 0x01, 0xb4, 0x63, 0x20, 0xd3, 0xbd, 0x67, 0xbb, 0x13, 0x2c, 0x80, 0xfa, + 0x09, 0xf0, 0x39, 0x6c, 0xe7, 0x7b, 0x27, 0xaf, 0x3f, 0xd7, 0xf7, 0xa9, 0xab, 0x5f, 0x42, 0x84, + 0xca, 0x9c, 0x04, 0x79, 0x1b, 0x39, 0x3b, 0x1d, 0x7f, 0x11, 0x8d, 0xbe, 0xc1, 0x07, 0x02, 0x71, + 0x96, 0x39, 0x71, 0xde, 0x28, 0x5e, 0xc4, 0x18, 0xa2, 0x69, 0x66, 0xc1, 0x44, 0xc5, 0x34, 0x5c, + 0x43, 0xef, 0xc0, 0xe7, 0x66, 0xc1, 0x4c, 0x1d, 0xb9, 0x6b, 0xba, 0xad, 0x6f, 0x23, 0x17, 0xd9, + 0x0e, 0xfc, 0x1e, 0xdf, 0x27, 0x74, 0x3b, 0xba, 0xbb, 0x61, 0xd9, 0xdb, 0xbe, 0x6a, 0xfa, 0xef, + 0x9e, 0x6a, 0xee, 0x22, 0xdb, 0x09, 0xf9, 0xf2, 0x5f, 0xbd, 0x2f, 0x17, 0x2d, 0xfb, 0x82, 0x37, + 0x08, 0xd2, 0x69, 0x1a, 0x7d, 0xf5, 0xe8, 0x75, 0xac, 0xcd, 0x15, 0xb4, 0x8b, 0xfc, 0x60, 0x5d, + 0xc1, 0xbb, 0x37, 0x17, 0x68, 0x5b, 0x55, 0xcb, 0xf5, 0x3a, 0xed, 0x15, 0x6b, 0x93, 0x44, 0x33, + 0x2d, 0x68, 0x7c, 0x62, 0x98, 0x4b, 0xdf, 0x45, 0x38, 0x57, 0x9e, 0xcd, 0x45, 0x13, 0x95, 0x39, + 0xa0, 0x04, 0xbf, 0x35, 0x50, 0x07, 0x6d, 0x23, 0xd7, 0xde, 0xc3, 0x97, 0x16, 0x14, 0xb4, 0x3e, + 0x5f, 0xe8, 0x00, 0x2d, 0x3e, 0x59, 0xa7, 0xd2, 0x9b, 0xe3, 0x24, 0x77, 0xa0, 0xc9, 0xba, 0x08, + 0xc5, 0xb1, 0x5c, 0xca, 0x24, 0x7b, 0xd6, 0xcc, 0x4b, 0x65, 0x90, 0xc5, 0x83, 0xe7, 0xeb, 0x32, + 0xdc, 0x0a, 0xd3, 0x36, 0x72, 0x1c, 0x7d, 0x13, 0xf9, 0x2b, 0x4c, 0xf4, 0x55, 0xb9, 0x05, 0xe4, + 0x3a, 0x18, 0x53, 0x32, 0x38, 0x5c, 0xcd, 0xd5, 0xcc, 0x33, 0x30, 0x3c, 0x5a, 0xc1, 0x48, 0x80, + 0xe1, 0xd6, 0xc8, 0x1f, 0x67, 0xee, 0x02, 0x39, 0x02, 0xff, 0x24, 0xc8, 0x2d, 0xa8, 0xf3, 0xeb, + 0x4b, 0xc5, 0x23, 0xde, 0xa3, 0xcf, 0xdf, 0x24, 0xc8, 0x2d, 0x96, 0x1a, 0xa5, 0x95, 0xa2, 0xe4, + 0xd5, 0xa3, 0x52, 0x5d, 0xac, 0x15, 0x65, 0x2f, 0x71, 0xad, 0x54, 0xad, 0x94, 0x8b, 0x59, 0x65, + 0x0a, 0x4c, 0x9c, 0x2b, 0x69, 0xd5, 0x4a, 0x75, 0xa9, 0x98, 0x83, 0xff, 0xc8, 0xe2, 0x77, 0x2b, + 0x8f, 0xdf, 0x35, 0x51, 0x3c, 0xf5, 0x83, 0xec, 0xf7, 0x03, 0xc8, 0x6e, 0xe7, 0x20, 0xfb, 0x69, + 0x11, 0x22, 0x63, 0x70, 0x67, 0xca, 0x83, 0x89, 0x35, 0xdb, 0x6a, 0x21, 0xc7, 0x81, 0xbf, 0x2b, + 0x81, 0x7c, 0x59, 0x37, 0x5b, 0xa8, 0x03, 0x2f, 0x0b, 0xa1, 0x22, 0xae, 0xa2, 0x19, 0xdf, 0x55, + 0x14, 0x7e, 0x27, 0x23, 0xda, 0xfb, 0x51, 0xba, 0x73, 0x84, 0x66, 0x84, 0x7c, 0xc4, 0x7a, 0xb9, + 0x58, 0x52, 0x63, 0xb8, 0xb8, 0x45, 0x02, 0x93, 0x74, 0x35, 0xe0, 0x3c, 0x62, 0xe7, 0xe1, 0xdf, + 0xcb, 0x88, 0x4e, 0x0e, 0xfd, 0x1a, 0x04, 0x64, 0x22, 0xe4, 0x21, 0x36, 0x11, 0x1c, 0x44, 0x6d, + 0x0c, 0x9b, 0x87, 0x12, 0x98, 0x5a, 0x37, 0x9d, 0x7e, 0x42, 0x11, 0x8f, 0xf2, 0xee, 0x57, 0x83, + 0x21, 0x74, 0xa0, 0x28, 0xef, 0x83, 0xe9, 0xa5, 0x2f, 0x98, 0xef, 0x65, 0xc0, 0xf1, 0x25, 0x64, + 0x22, 0xdb, 0x68, 0x91, 0x1a, 0xf8, 0x92, 0xb8, 0x9d, 0x97, 0xc4, 0xa3, 0x38, 0xce, 0xfb, 0xfd, + 0xc1, 0x4b, 0xe0, 0x15, 0x81, 0x04, 0xee, 0xe4, 0x24, 0x70, 0x83, 0x20, 0x9d, 0x31, 0xdc, 0xd6, + 0x3d, 0x09, 0xa6, 0xab, 0x96, 0x6b, 0x6c, 0x18, 0x2d, 0xe2, 0x83, 0xf6, 0x12, 0x19, 0x64, 0x57, + 0x0c, 0xc7, 0x85, 0xa5, 0xb0, 0x3b, 0xb9, 0x0a, 0x4c, 0x19, 0x66, 0xab, 0xb3, 0xd3, 0x46, 0x1a, + 0xd2, 0x49, 0xbf, 0x52, 0xd0, 0xd8, 0xa4, 0x70, 0x6b, 0xdf, 0x63, 0x4b, 0xf6, 0xb7, 0xf6, 0x3f, + 0x2d, 0xbc, 0x0c, 0xc3, 0xb2, 0x80, 0xc3, 0x1d, 0x46, 0xd8, 0x5d, 0x25, 0x30, 0x63, 0x32, 0x59, + 0x7d, 0x83, 0xbd, 0x37, 0xdc, 0x3d, 0x4b, 0x4e, 0xe3, 0xff, 0x80, 0xef, 0x16, 0x6a, 0xac, 0x83, + 0x18, 0x4a, 0x86, 0xcc, 0xe2, 0x10, 0x93, 0x64, 0x05, 0xcc, 0x56, 0xaa, 0x0d, 0x55, 0xab, 0x96, + 0x56, 0x68, 0x16, 0x19, 0xfe, 0x40, 0x02, 0x39, 0x0d, 0x75, 0x3b, 0x7b, 0x6c, 0x3c, 0x63, 0xea, + 0x28, 0x9e, 0x09, 0x1c, 0xc5, 0x95, 0x45, 0x00, 0xf4, 0x96, 0x57, 0x30, 0xbe, 0xf0, 0x49, 0xea, + 0x1b, 0x25, 0x93, 0xab, 0x60, 0x29, 0xc8, 0xad, 0x31, 0x7f, 0xc2, 0xe7, 0x09, 0xef, 0x1c, 0x71, + 0xd4, 0x30, 0x87, 0x11, 0x7d, 0xc2, 0x7b, 0x84, 0x36, 0x7b, 0x06, 0x92, 0x3b, 0x1c, 0xf1, 0x7f, + 0x45, 0x02, 0xd9, 0x86, 0xd7, 0x5b, 0x32, 0x1d, 0xe7, 0xa7, 0x86, 0xd3, 0x71, 0x8f, 0x4c, 0x84, + 0x8e, 0xdf, 0x01, 0xa6, 0x59, 0x8d, 0xa5, 0xae, 0x12, 0xb1, 0x2a, 0xce, 0xfd, 0x30, 0x8c, 0x86, + 0xf7, 0x61, 0xe7, 0x70, 0x44, 0xfc, 0xf1, 0x47, 0x03, 0xb0, 0x8a, 0xb6, 0xcf, 0x23, 0xdb, 0xd9, + 0x32, 0xba, 0xf0, 0x9f, 0x64, 0x30, 0xb9, 0x84, 0xdc, 0xba, 0xab, 0xbb, 0x3b, 0x4e, 0xcf, 0x76, + 0xa7, 0x69, 0x95, 0xf5, 0xd6, 0x16, 0xa2, 0xdd, 0x91, 0xff, 0x0a, 0xdf, 0x2e, 0x8b, 0xfa, 0x13, + 0x85, 0xe5, 0xcc, 0x05, 0x65, 0x44, 0x60, 0xf2, 0x18, 0x90, 0x6d, 0xeb, 0xae, 0x4e, 0xb1, 0xb8, + 0xac, 0x07, 0x8b, 0x90, 0x90, 0x86, 0xb3, 0xc1, 0x37, 0x4b, 0x22, 0x0e, 0x45, 0x02, 0xe5, 0x27, + 0x03, 0xe1, 0xdd, 0x99, 0x21, 0x50, 0x38, 0x06, 0x66, 0xaa, 0xb5, 0x46, 0x73, 0xa5, 0xb6, 0xb4, + 0xa4, 0x7a, 0xa9, 0x45, 0x59, 0x39, 0x09, 0x94, 0xb5, 0xd2, 0x3d, 0xab, 0x6a, 0xb5, 0xd1, 0xac, + 0xd6, 0x16, 0x54, 0xfa, 0x67, 0x56, 0x39, 0x0a, 0xa6, 0xca, 0xa5, 0xf2, 0xb2, 0x9f, 0x90, 0x53, + 0x4e, 0x81, 0xe3, 0xab, 0xea, 0xea, 0xbc, 0xaa, 0xd5, 0x97, 0x2b, 0x6b, 0x4d, 0x8f, 0xcc, 0x62, + 0x6d, 0xbd, 0xba, 0x50, 0xcc, 0x2b, 0x10, 0x9c, 0x64, 0xbe, 0x9c, 0xd3, 0x6a, 0xd5, 0xa5, 0x66, + 0xbd, 0x51, 0x6a, 0xa8, 0xc5, 0x09, 0xe5, 0x12, 0x70, 0xb4, 0x5c, 0xaa, 0xe2, 0xec, 0xe5, 0x5a, + 0xb5, 0xaa, 0x96, 0x1b, 0xc5, 0x02, 0xfc, 0x51, 0x16, 0x4c, 0x55, 0x9c, 0xaa, 0xbe, 0x8d, 0xce, + 0xea, 0x1d, 0xa3, 0x0d, 0x9f, 0xcb, 0xcc, 0x3c, 0xae, 0x01, 0x33, 0x36, 0x79, 0x44, 0xed, 0x86, + 0x81, 0x08, 0x9a, 0x33, 0x1a, 0x9f, 0xe8, 0xcd, 0xc9, 0x4d, 0x4c, 0xc0, 0x9f, 0x93, 0x93, 0x37, + 0x65, 0x1e, 0x00, 0xf2, 0xd4, 0x08, 0xaf, 0x1e, 0x3d, 0xd3, 0xdb, 0x9a, 0xf4, 0x6d, 0xe4, 0x20, + 0x7b, 0xd7, 0x68, 0x21, 0x3f, 0xa7, 0xc6, 0xfc, 0x05, 0xbf, 0x2a, 0x8b, 0xee, 0x2f, 0x32, 0xa0, + 0x32, 0xd5, 0x89, 0xe8, 0x0d, 0x7f, 0x4d, 0x16, 0xd9, 0x1d, 0x14, 0x22, 0x99, 0x4c, 0x53, 0x5e, + 0x20, 0x0d, 0xb7, 0x6c, 0xdb, 0xa8, 0xd5, 0x9a, 0xf5, 0xe5, 0x9a, 0xd6, 0x28, 0xca, 0xca, 0x34, + 0x28, 0x78, 0xaf, 0x2b, 0xb5, 0xea, 0x52, 0x31, 0xab, 0x9c, 0x00, 0xc7, 0x96, 0x4b, 0xf5, 0x66, + 0xa5, 0x7a, 0xb6, 0xb4, 0x52, 0x59, 0x68, 0x96, 0x97, 0x4b, 0x5a, 0xbd, 0x98, 0x53, 0x2e, 0x03, + 0x27, 0x1a, 0x15, 0x55, 0x6b, 0x2e, 0xaa, 0xa5, 0xc6, 0xba, 0xa6, 0xd6, 0x9b, 0xd5, 0x5a, 0xb3, + 0x5a, 0x5a, 0x55, 0x8b, 0x79, 0xaf, 0xf9, 0xe3, 0x4f, 0xa1, 0xda, 0x4c, 0xec, 0x57, 0xc6, 0x42, + 0x84, 0x32, 0x4e, 0xf6, 0x2a, 0x23, 0x60, 0xd5, 0x4a, 0x53, 0xeb, 0xaa, 0x76, 0x56, 0x2d, 0x4e, + 0xf5, 0xd3, 0xb5, 0x69, 0xe5, 0x38, 0x28, 0x7a, 0x3c, 0x34, 0x2b, 0x75, 0x3f, 0xe7, 0x42, 0x71, + 0x06, 0x7e, 0x2c, 0x0f, 0x4e, 0x6a, 0x68, 0xd3, 0x70, 0x5c, 0x64, 0xaf, 0xe9, 0x7b, 0xdb, 0xc8, + 0x74, 0xfd, 0x4e, 0xfe, 0xdf, 0x13, 0x2b, 0xe3, 0x2a, 0x98, 0xe9, 0x12, 0x1a, 0xab, 0xc8, 0xdd, + 0xb2, 0xda, 0x74, 0x14, 0x7e, 0x54, 0x64, 0xcf, 0x31, 0xb7, 0xc6, 0x66, 0xd7, 0xf8, 0xbf, 0x19, + 0xdd, 0x96, 0x63, 0x74, 0x3b, 0x3b, 0x8c, 0x6e, 0x2b, 0x57, 0x80, 0xc9, 0x1d, 0x07, 0xd9, 0xea, + 0xb6, 0x6e, 0x74, 0xfc, 0xab, 0x23, 0x83, 0x04, 0xf8, 0x96, 0xac, 0xe8, 0x89, 0x15, 0xa6, 0x2e, + 0xfd, 0xc5, 0x18, 0xd1, 0xb7, 0x9e, 0x06, 0x80, 0x56, 0x76, 0xdd, 0xee, 0x50, 0x65, 0x65, 0x52, + 0x3c, 0xfe, 0xce, 0x1b, 0x9d, 0x8e, 0x61, 0x6e, 0x06, 0xfb, 0xfe, 0x61, 0x02, 0x7c, 0x81, 0x2c, + 0x72, 0x82, 0x25, 0x29, 0x6f, 0xc9, 0x5a, 0xd3, 0xf3, 0xa4, 0x31, 0xf7, 0xbb, 0xfb, 0x9b, 0x4e, + 0x5e, 0x29, 0x82, 0x69, 0x9c, 0x46, 0x5b, 0x60, 0x71, 0xc2, 0xeb, 0x83, 0x7d, 0x72, 0xab, 0x6a, + 0x63, 0xb9, 0xb6, 0x10, 0x7c, 0x2b, 0x78, 0x24, 0x3d, 0x66, 0x4a, 0xd5, 0x7b, 0x70, 0x6b, 0x9c, + 0x54, 0x1e, 0x01, 0x2e, 0x63, 0x3a, 0xec, 0xd2, 0x8a, 0xa6, 0x96, 0x16, 0xee, 0x69, 0xaa, 0x4f, + 0xa9, 0xd4, 0x1b, 0x75, 0xbe, 0x71, 0xf9, 0xed, 0x68, 0xca, 0xe3, 0x57, 0x5d, 0x2d, 0x55, 0x56, + 0x68, 0xff, 0xbe, 0x58, 0xd3, 0x56, 0x4b, 0x8d, 0xe2, 0x34, 0x7c, 0xa9, 0x0c, 0x8a, 0x4b, 0xc8, + 0x5d, 0xb3, 0x6c, 0x57, 0xef, 0xac, 0x18, 0xe6, 0x85, 0x75, 0xbb, 0xc3, 0x4d, 0x36, 0x85, 0xc3, + 0x74, 0xf0, 0x43, 0x24, 0x47, 0x30, 0x7a, 0x47, 0xbc, 0x8b, 0xb3, 0x85, 0xca, 0x14, 0x26, 0xc0, + 0xa7, 0x4b, 0x22, 0xcb, 0xdd, 0xe2, 0xa5, 0x26, 0xd3, 0x93, 0x67, 0x8c, 0x7b, 0x7c, 0xee, 0x83, + 0x5a, 0x1e, 0x3e, 0x3b, 0x0b, 0x0a, 0x8b, 0x86, 0xa9, 0x77, 0x8c, 0xa7, 0x71, 0xd1, 0x31, 0xc3, + 0x3e, 0x26, 0x13, 0xd3, 0xc7, 0x48, 0x43, 0x8d, 0x9f, 0xbf, 0x2d, 0x8b, 0x2e, 0x2f, 0x30, 0xb2, + 0xf7, 0x99, 0x8c, 0x18, 0x3c, 0x3f, 0x28, 0x89, 0x2c, 0x2f, 0x0c, 0xa6, 0x97, 0x0c, 0xc3, 0x4f, + 0xfe, 0x78, 0xd8, 0x58, 0x3d, 0xed, 0xbb, 0xd0, 0x4f, 0x15, 0x26, 0xe1, 0x5f, 0xcb, 0x00, 0x2e, + 0x21, 0xf7, 0x2c, 0xb2, 0x83, 0xa9, 0x00, 0xee, 0xf5, 0xa9, 0xbd, 0xcd, 0x34, 0xd9, 0xd7, 0xb1, + 0x00, 0x9e, 0xe3, 0x01, 0x2c, 0xc5, 0x34, 0x9e, 0x08, 0xd2, 0x11, 0x8d, 0xb7, 0x02, 0xf2, 0x0e, + 0xfe, 0x4e, 0xd5, 0xec, 0xa6, 0xe8, 0xe1, 0x12, 0x13, 0x63, 0xa9, 0x13, 0xc2, 0x1a, 0x25, 0x00, + 0xbf, 0x1f, 0x4c, 0x82, 0x7e, 0x9e, 0xd3, 0x8e, 0xc5, 0x03, 0x33, 0x9b, 0x4c, 0x5f, 0xec, 0x74, + 0xd5, 0xa5, 0x9f, 0x7d, 0x03, 0x3f, 0x98, 0x03, 0xc7, 0xfb, 0x55, 0x07, 0xbe, 0x37, 0xc3, 0xed, + 0xb0, 0x23, 0x3c, 0xe4, 0x67, 0xe8, 0x06, 0xa2, 0xf7, 0xa2, 0x3c, 0x1e, 0x9c, 0x08, 0x96, 0xe1, + 0x1a, 0x56, 0x15, 0x5d, 0x74, 0x3a, 0xc8, 0x75, 0x91, 0x8d, 0xab, 0x56, 0xd0, 0xfa, 0x7f, 0x54, + 0x9e, 0x08, 0x2e, 0x35, 0x4c, 0xc7, 0x68, 0x23, 0xbb, 0x61, 0x74, 0x9d, 0x92, 0xd9, 0x6e, 0xec, + 0xb8, 0x96, 0x6d, 0xe8, 0xf4, 0xa2, 0xc3, 0x82, 0x16, 0xf5, 0x59, 0xb9, 0x1e, 0x14, 0x0d, 0xa7, + 0x66, 0x9e, 0xb7, 0x74, 0xbb, 0x6d, 0x98, 0x9b, 0x2b, 0x86, 0xe3, 0x52, 0x0f, 0xe0, 0x7d, 0xe9, + 0xf0, 0x9f, 0x65, 0xd1, 0xc3, 0x74, 0x03, 0x60, 0x8d, 0xe8, 0x50, 0x9e, 0x23, 0x8b, 0x1c, 0x8f, + 0x4b, 0x46, 0x3b, 0x99, 0xb2, 0x3c, 0x6b, 0xdc, 0x86, 0x44, 0xff, 0x11, 0x1c, 0x77, 0x2d, 0x24, + 0xdd, 0x37, 0x04, 0xce, 0xaa, 0x5a, 0x65, 0xb1, 0xa2, 0x7a, 0x66, 0xc5, 0x09, 0x70, 0x2c, 0xfc, + 0xb6, 0x70, 0x4f, 0xb3, 0xae, 0x56, 0x1b, 0xc5, 0x82, 0xd7, 0x4f, 0x91, 0xe4, 0xc5, 0x52, 0x65, + 0x45, 0x5d, 0x68, 0x36, 0x6a, 0xde, 0x97, 0x85, 0xe1, 0x4c, 0x0b, 0x78, 0x7f, 0x16, 0x1c, 0xc5, + 0xb2, 0xdd, 0xc3, 0x52, 0xf5, 0x84, 0xd2, 0xe3, 0x6b, 0x1b, 0x00, 0x34, 0x49, 0xc4, 0x0b, 0x3f, + 0x2b, 0x7c, 0x8f, 0x23, 0x03, 0x61, 0x4f, 0x19, 0x11, 0x9a, 0xf1, 0x3d, 0x49, 0x24, 0x42, 0x85, + 0x30, 0xd9, 0x64, 0x4a, 0xf1, 0x1f, 0xe3, 0x1e, 0x71, 0xa2, 0xc1, 0xc7, 0x56, 0x66, 0x19, 0xff, + 0xfc, 0x94, 0xb5, 0x8a, 0x86, 0xd5, 0x61, 0x16, 0x00, 0x9c, 0x82, 0x35, 0x88, 0xe8, 0x41, 0xdf, + 0xf1, 0x2a, 0x4a, 0x0f, 0x4a, 0xe5, 0x46, 0xe5, 0xac, 0x1a, 0xa5, 0x07, 0x9f, 0x91, 0x41, 0x61, + 0x09, 0xb9, 0xde, 0x9c, 0xca, 0x81, 0x4f, 0x12, 0x58, 0xff, 0xf1, 0xcc, 0x18, 0x7c, 0xf1, 0x7d, + 0xb0, 0x0c, 0x40, 0xde, 0xe0, 0x33, 0x87, 0x31, 0x41, 0xfc, 0xa2, 0x23, 0xc6, 0xab, 0x9f, 0x05, + 0x39, 0xd7, 0xfb, 0x4c, 0x97, 0xa1, 0x7f, 0x2a, 0x72, 0xb8, 0xf2, 0x88, 0x2c, 0xe8, 0xae, 0xae, + 0x91, 0xfc, 0xcc, 0xe8, 0x24, 0x68, 0xbb, 0x44, 0x30, 0xf2, 0xe3, 0x68, 0x7f, 0xfe, 0xa3, 0x0c, + 0x4e, 0x90, 0xf6, 0x51, 0xea, 0x76, 0xeb, 0xae, 0x65, 0x23, 0x0d, 0xb5, 0x90, 0xd1, 0x75, 0x7b, + 0xd6, 0xf7, 0x6c, 0x92, 0xea, 0x6f, 0x36, 0xd3, 0x57, 0xf8, 0x6a, 0x59, 0x34, 0xc2, 0xef, 0xbe, + 0xf6, 0xd8, 0x53, 0x5e, 0x44, 0x63, 0xff, 0xa8, 0x24, 0x12, 0xb3, 0x37, 0x21, 0xf1, 0x64, 0x40, + 0x7d, 0xe8, 0x10, 0x80, 0xf2, 0x57, 0x6e, 0x34, 0xb5, 0xac, 0x56, 0xd6, 0xbc, 0x41, 0xe0, 0x4a, + 0x70, 0xf9, 0xda, 0xba, 0x56, 0x5e, 0x2e, 0xd5, 0xd5, 0xa6, 0xa6, 0x2e, 0x55, 0xea, 0x0d, 0xea, + 0x94, 0x45, 0xfe, 0x9a, 0x50, 0xae, 0x00, 0xa7, 0xea, 0xeb, 0xf3, 0xf5, 0xb2, 0x56, 0x59, 0xc3, + 0xe9, 0x9a, 0x5a, 0x55, 0xcf, 0xd1, 0xaf, 0x05, 0xf8, 0xfe, 0x22, 0x98, 0xf2, 0x26, 0x00, 0x75, + 0x32, 0x2f, 0x80, 0xdf, 0xca, 0x82, 0x29, 0x0d, 0x39, 0x56, 0x67, 0x17, 0xcf, 0x11, 0xc6, 0x35, + 0xf5, 0xf8, 0xae, 0x2c, 0x7a, 0x7e, 0x9b, 0x61, 0x76, 0x8e, 0x61, 0x34, 0x7a, 0xa2, 0xa9, 0xef, + 0xea, 0x46, 0x47, 0x3f, 0x4f, 0xbb, 0x9a, 0x82, 0x16, 0x26, 0x28, 0x73, 0x40, 0xb1, 0x2e, 0x9a, + 0xc8, 0xae, 0xb7, 0x2e, 0xaa, 0xee, 0x56, 0xa9, 0xdd, 0xb6, 0x91, 0xe3, 0xd0, 0xd5, 0x8b, 0x3e, + 0x5f, 0x94, 0xeb, 0xc0, 0x51, 0x9c, 0xca, 0x64, 0x26, 0x0e, 0x32, 0xbd, 0xc9, 0x41, 0xce, 0x92, + 0xb9, 0xe7, 0xe7, 0xcc, 0x31, 0x39, 0xc3, 0x64, 0xf6, 0xb8, 0x44, 0x9e, 0x3f, 0xa5, 0x73, 0x15, + 0x98, 0x32, 0xf5, 0x6d, 0xa4, 0xde, 0xd7, 0x35, 0x6c, 0xe4, 0x60, 0xc7, 0x18, 0x59, 0x63, 0x93, + 0xe0, 0x07, 0x85, 0xce, 0x9b, 0x8b, 0x49, 0x2c, 0x99, 0xee, 0x2f, 0x0d, 0xa1, 0xfa, 0x7d, 0xfa, + 0x19, 0x19, 0xbe, 0x5f, 0x06, 0xd3, 0x94, 0xa9, 0x92, 0xb9, 0x57, 0x69, 0xc3, 0x2b, 0x39, 0xe3, + 0x57, 0xf7, 0xd2, 0x7c, 0xe3, 0x17, 0xbf, 0xc0, 0x5f, 0x97, 0x45, 0xdd, 0x9d, 0xfb, 0x54, 0x1c, + 0x97, 0x11, 0xed, 0x38, 0xba, 0x61, 0xed, 0x50, 0x47, 0xd5, 0x82, 0x46, 0x5e, 0xd2, 0x5c, 0xd4, + 0x83, 0x7f, 0x2a, 0xe4, 0x4c, 0x2d, 0x58, 0x8d, 0x43, 0x02, 0xf0, 0xe3, 0x32, 0x98, 0xa5, 0x5c, + 0xd5, 0xe9, 0x39, 0x1f, 0xa1, 0x03, 0x6f, 0xbf, 0x29, 0x6c, 0x08, 0xf6, 0xa9, 0x3f, 0x2d, 0xe9, + 0x61, 0x03, 0xe4, 0x87, 0x85, 0x82, 0xa3, 0x09, 0x57, 0xe4, 0x90, 0xa0, 0x7c, 0x6b, 0x16, 0x4c, + 0xad, 0x3b, 0xc8, 0xa6, 0x7e, 0xfb, 0xf0, 0x81, 0x2c, 0x90, 0x97, 0x10, 0xb7, 0x91, 0xfa, 0x7c, + 0x61, 0x0f, 0x5f, 0xb6, 0xb2, 0x0c, 0x51, 0xcf, 0x46, 0x8a, 0x80, 0xed, 0x5a, 0x30, 0x4b, 0x44, + 0x5a, 0x72, 0x5d, 0xcf, 0x48, 0xf4, 0xbd, 0x69, 0x7b, 0x52, 0x47, 0xb1, 0x55, 0x84, 0xcb, 0xf2, + 0xb2, 0x94, 0x3d, 0x9e, 0x56, 0xd0, 0x06, 0x99, 0xcf, 0x66, 0xb5, 0x9e, 0x54, 0x7c, 0xb9, 0x7e, + 0x17, 0x91, 0xf3, 0x2b, 0x4c, 0xe6, 0x1c, 0xce, 0xdc, 0xef, 0x13, 0xfc, 0x96, 0x90, 0xaf, 0xae, + 0xb8, 0x74, 0x92, 0xe9, 0x42, 0x77, 0x34, 0x26, 0xc9, 0x71, 0x50, 0xf4, 0x72, 0xe0, 0xfd, 0x17, + 0x4d, 0xad, 0xd7, 0x56, 0xce, 0xaa, 0xfd, 0x97, 0x31, 0x72, 0xf0, 0x59, 0x32, 0x98, 0x9c, 0xb7, + 0x2d, 0xbd, 0xdd, 0xd2, 0x1d, 0x17, 0x7e, 0x5f, 0x02, 0xd3, 0x6b, 0xfa, 0x5e, 0xc7, 0xd2, 0xdb, + 0xd8, 0xbf, 0xbf, 0xa7, 0x2f, 0xe8, 0x92, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0xf9, 0x83, 0x81, 0xc1, + 0xd1, 0xbd, 0x8c, 0xc8, 0x75, 0x8d, 0xc1, 0x36, 0x9f, 0xd4, 0x2f, 0x58, 0xa9, 0xcf, 0xd7, 0x1c, + 0xcb, 0x53, 0x84, 0x45, 0xf9, 0x7e, 0xb1, 0xf0, 0xa3, 0x22, 0x24, 0x0f, 0x67, 0x57, 0xfe, 0xd9, + 0x05, 0x90, 0x5f, 0x40, 0xd8, 0x8a, 0xfb, 0x6f, 0x12, 0x98, 0xa8, 0x23, 0x17, 0x5b, 0x70, 0xb7, + 0x70, 0x9e, 0xc2, 0x6d, 0x9c, 0x21, 0x74, 0x62, 0xf7, 0xdf, 0xbd, 0xc9, 0x3a, 0x73, 0xde, 0x1a, + 0x3f, 0x27, 0xf0, 0x48, 0x24, 0xe5, 0xce, 0xd1, 0x32, 0x0f, 0xe4, 0x91, 0x18, 0x4b, 0x2a, 0x7d, + 0x5f, 0xab, 0xb7, 0x4b, 0xd4, 0xb5, 0x8a, 0xe9, 0xf5, 0xfe, 0x80, 0xd5, 0xcf, 0x58, 0x6f, 0x33, + 0xca, 0x7c, 0x8c, 0x73, 0xd4, 0xe3, 0xc0, 0x04, 0x91, 0xb9, 0x3f, 0x1f, 0xed, 0xf5, 0x53, 0x20, + 0x24, 0xf0, 0xd9, 0x6b, 0x3f, 0xa7, 0xa0, 0x8b, 0x5a, 0x74, 0xe1, 0x63, 0x89, 0x41, 0x30, 0x5d, + 0x45, 0xee, 0x45, 0xcb, 0xbe, 0x50, 0x77, 0x75, 0x17, 0xc1, 0xff, 0x90, 0x80, 0x5c, 0x47, 0x2e, + 0x1b, 0xfd, 0xa4, 0x0a, 0x8e, 0x91, 0x0a, 0xd1, 0x8c, 0xb8, 0xff, 0x26, 0x15, 0xb9, 0xaa, 0xaf, + 0x10, 0x98, 0x7c, 0xda, 0xfe, 0x5f, 0xe1, 0xef, 0xf6, 0x0d, 0xfa, 0x24, 0xf5, 0x99, 0x34, 0x50, + 0xc9, 0xb0, 0x0c, 0x7a, 0x0a, 0x16, 0xa1, 0xa7, 0x1f, 0x10, 0x32, 0xab, 0xc5, 0x68, 0x1e, 0x4e, + 0x57, 0xf0, 0xe1, 0xcb, 0x40, 0xb6, 0xbc, 0xa5, 0xbb, 0xf0, 0x6d, 0x32, 0x00, 0xa5, 0x76, 0x7b, + 0x95, 0xf8, 0x80, 0xb3, 0x0e, 0x69, 0x67, 0xc0, 0x74, 0x6b, 0x4b, 0x0f, 0x6f, 0xce, 0x20, 0xfd, + 0x01, 0x97, 0xa6, 0x3c, 0x3e, 0x74, 0x26, 0x27, 0x52, 0x85, 0x3d, 0x30, 0x79, 0x65, 0x50, 0xda, + 0x81, 0xa3, 0x39, 0x1f, 0x0a, 0x33, 0xf6, 0x08, 0x9d, 0xf7, 0xfb, 0x5c, 0xc8, 0x5e, 0xf4, 0x1c, + 0x8e, 0x92, 0x0e, 0x0e, 0xd8, 0x84, 0x09, 0x09, 0x4f, 0x7a, 0x8b, 0x05, 0xf4, 0x88, 0xe7, 0x6b, + 0x2c, 0xa1, 0x6b, 0x15, 0xb5, 0x6d, 0xf8, 0xa2, 0xa5, 0x01, 0xb3, 0xe0, 0xf3, 0x32, 0xc9, 0xe0, + 0x8b, 0x17, 0xdc, 0x9d, 0x60, 0x06, 0xb5, 0x0d, 0x17, 0xf9, 0xb5, 0xa4, 0x02, 0x8c, 0x83, 0x98, + 0xff, 0x01, 0x3e, 0x43, 0x38, 0xe8, 0x1a, 0x16, 0xe8, 0xfe, 0x1a, 0x45, 0xb4, 0x3f, 0xb1, 0x30, + 0x6a, 0x62, 0x34, 0xd3, 0x07, 0xeb, 0x99, 0x32, 0x38, 0xd1, 0xb0, 0x36, 0x37, 0x3b, 0xc8, 0x17, + 0x13, 0x22, 0xde, 0x99, 0x50, 0x1f, 0x25, 0x5c, 0x78, 0x27, 0xc8, 0xba, 0xd7, 0x08, 0x8e, 0x92, + 0x79, 0x2f, 0xfc, 0x89, 0xa9, 0xd8, 0x59, 0x14, 0x16, 0x57, 0x5f, 0x3e, 0x23, 0x50, 0x10, 0x0b, + 0xf8, 0x2c, 0x4c, 0x36, 0x7d, 0x20, 0xbe, 0x28, 0x81, 0x19, 0x72, 0x2f, 0xa2, 0xaf, 0xa0, 0x77, + 0x8f, 0x10, 0x00, 0xf8, 0xfd, 0x8c, 0xa8, 0x9f, 0x2d, 0x96, 0x09, 0xc7, 0x49, 0x84, 0x88, 0xc5, + 0x82, 0xaa, 0x0c, 0x24, 0x97, 0xbe, 0x68, 0xff, 0x42, 0x06, 0x53, 0x4b, 0xc8, 0x6f, 0x69, 0x4e, + 0xe2, 0x9e, 0xe8, 0x0c, 0x98, 0xc6, 0x97, 0x83, 0xd5, 0xe8, 0x31, 0x49, 0xb2, 0x6a, 0xc6, 0xa5, + 0x29, 0xd7, 0x80, 0x99, 0xf3, 0x68, 0xc3, 0xb2, 0x51, 0x8d, 0x3b, 0x4b, 0xc9, 0x27, 0x46, 0x84, + 0xa7, 0xe3, 0xe2, 0xa0, 0xcd, 0xf3, 0xd8, 0xdc, 0xb0, 0x5f, 0x98, 0x4c, 0x55, 0x22, 0xc6, 0x9c, + 0x27, 0x80, 0x02, 0x45, 0xde, 0x37, 0xd3, 0xe2, 0xfa, 0xc5, 0x20, 0x2f, 0xfc, 0xc3, 0x00, 0x51, + 0x95, 0x43, 0xf4, 0xa6, 0x24, 0x4c, 0x8c, 0xe5, 0xf6, 0xf0, 0x22, 0x53, 0xfe, 0xfc, 0x5e, 0xa5, + 0xed, 0xc0, 0xd5, 0x64, 0x98, 0x9e, 0x06, 0x20, 0x68, 0x1c, 0x7e, 0x58, 0x0b, 0x26, 0x85, 0x8f, + 0x5c, 0x1f, 0x7b, 0x50, 0xaf, 0x57, 0x1c, 0x98, 0x9d, 0x11, 0x03, 0x23, 0x76, 0xc0, 0x4f, 0x84, + 0x93, 0xf4, 0xd1, 0xf9, 0xb4, 0x0c, 0x4e, 0x04, 0xe7, 0x8f, 0x56, 0x74, 0x27, 0x6c, 0x77, 0xe5, + 0x64, 0x10, 0x71, 0x07, 0x3e, 0x82, 0xc6, 0xf2, 0xed, 0x64, 0x63, 0x46, 0x5f, 0x4e, 0x46, 0x8b, + 0x8e, 0x72, 0x03, 0x38, 0x66, 0xee, 0x6c, 0x07, 0x52, 0xc7, 0x2d, 0x9e, 0xb6, 0xf0, 0xfd, 0x1f, + 0x92, 0x8c, 0x4c, 0x22, 0xcc, 0x8f, 0x65, 0x4e, 0xc9, 0x1d, 0xe9, 0x7a, 0x4c, 0x22, 0x18, 0xe1, + 0xbf, 0x65, 0x12, 0xf5, 0x6e, 0x83, 0xcf, 0x7c, 0x25, 0xe8, 0xa5, 0x0e, 0xf1, 0xc0, 0xd7, 0x99, + 0x09, 0x90, 0x53, 0xb7, 0xbb, 0xee, 0xde, 0x99, 0x47, 0x82, 0x99, 0xba, 0x6b, 0x23, 0x7d, 0x9b, + 0xd9, 0x19, 0x70, 0xad, 0x0b, 0xc8, 0xf4, 0x77, 0x06, 0xf0, 0xcb, 0xad, 0xb7, 0x80, 0x09, 0xd3, + 0x6a, 0xea, 0x3b, 0xee, 0x96, 0x72, 0xe5, 0xbe, 0x23, 0xf5, 0x14, 0xfc, 0x1a, 0x8d, 0x61, 0xf4, + 0xd5, 0xdb, 0xf0, 0xda, 0x70, 0xde, 0xb4, 0x4a, 0x3b, 0xee, 0xd6, 0xfc, 0x15, 0x1f, 0xff, 0x87, + 0xd3, 0x99, 0xcf, 0xfc, 0xc3, 0xe9, 0xcc, 0x57, 0xfe, 0xe1, 0x74, 0xe6, 0x37, 0xbf, 0x76, 0xfa, + 0xc8, 0x67, 0xbe, 0x76, 0xfa, 0xc8, 0x17, 0xbf, 0x76, 0xfa, 0xc8, 0xcf, 0x4b, 0xdd, 0xf3, 0xe7, + 0xf3, 0x98, 0xca, 0xe3, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0x59, 0x3f, 0x33, 0xdf, + 0x12, 0x02, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -78215,6 +78660,259 @@ func (m *RpcAccountRevertDeletionResponseError) MarshalToSizedBuffer(dAtA []byte return len(dAtA) - i, nil } +func (m *RpcAccountMigrate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RootPath) > 0 { + i -= len(m.RootPath) + copy(dAtA[i:], m.RootPath) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RootPath))) + i-- + dAtA[i] = 0x12 + } + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateCancel) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateCancel) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateCancel) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateCancelRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateCancelRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateCancelRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateCancelResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateCancelResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateCancelResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcAccountMigrateCancelResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcAccountMigrateCancelResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcAccountMigrateCancelResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcAccountSelect) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -121670,6 +122368,112 @@ func (m *RpcAccountRevertDeletionResponseError) Size() (n int) { return n } +func (m *RpcAccountMigrate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcAccountMigrateRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + l = len(m.RootPath) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcAccountMigrateResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcAccountMigrateResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcAccountMigrateCancel) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcAccountMigrateCancelRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Id) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcAccountMigrateCancelResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcAccountMigrateCancelResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcAccountSelect) Size() (n int) { if m == nil { return 0 @@ -149903,6 +150707,676 @@ func (m *RpcAccountRevertDeletionResponseError) Unmarshal(dAtA []byte) error { } return nil } +func (m *RpcAccountMigrate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Migrate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Migrate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RootPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RootPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcAccountMigrateResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcAccountMigrateResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateCancel) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MigrateCancel: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MigrateCancel: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateCancelRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Id = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateCancelResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcAccountMigrateCancelResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcAccountMigrateCancelResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcAccountMigrateCancelResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + 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 ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcAccountSelect) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index e1dbc6f4e..1146832b7 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -812,6 +812,54 @@ message Rpc { } } + message Migrate { + message Request { + option (no_auth) = true; + string id = 1; // Id of a selected account + string rootPath = 2; + } + + message Response { + Error error = 1; + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; // No error + UNKNOWN_ERROR = 1; // Any other errors + BAD_INPUT = 2; // Id or root path is wrong + + ACCOUNT_NOT_FOUND = 101; + CANCELED = 102; + NOT_ENOUGH_FREE_SPACE = 103; + // TODO: [storage] Add specific error codes for migration problems + } + } + } + } + + message MigrateCancel { + message Request { + option (no_auth) = true; + string id = 1; // Id of a selected account + } + + message Response { + Error error = 1; + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; // No error + UNKNOWN_ERROR = 1; // Any other errors + BAD_INPUT = 2; // Id or root path is wrong + } + } + } + } + message Select { /** * Front end to middleware request-to-launch-a specific account using account id and a root path @@ -854,6 +902,7 @@ message Rpc { FAILED_TO_FETCH_REMOTE_NODE_HAS_INCOMPATIBLE_PROTO_VERSION = 110; ACCOUNT_IS_DELETED = 111; ACCOUNT_LOAD_IS_CANCELED = 112; + ACCOUNT_STORE_NOT_MIGRATED = 113; CONFIG_FILE_NOT_FOUND = 200; CONFIG_FILE_INVALID = 201; diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index d902dbfc8..b058062f7 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -36,6 +36,8 @@ service ClientCommands { // Account // *** rpc AccountRecover (anytype.Rpc.Account.Recover.Request) returns (anytype.Rpc.Account.Recover.Response); + rpc AccountMigrate (anytype.Rpc.Account.Migrate.Request) returns (anytype.Rpc.Account.Migrate.Response); + rpc AccountMigrateCancel (anytype.Rpc.Account.MigrateCancel.Request) returns (anytype.Rpc.Account.MigrateCancel.Response); rpc AccountCreate (anytype.Rpc.Account.Create.Request) returns (anytype.Rpc.Account.Create.Response); rpc AccountDelete (anytype.Rpc.Account.Delete.Request) returns (anytype.Rpc.Account.Delete.Response); rpc AccountRevertDeletion (anytype.Rpc.Account.RevertDeletion.Request) returns (anytype.Rpc.Account.RevertDeletion.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 1f06d85ab..9d3774271 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,350 +26,352 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 5482 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49, - 0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x07, 0x86, 0xd9, 0x61, 0x37, 0xc9, 0x64, - 0x12, 0x3b, 0x89, 0xe3, 0xeb, 0x4c, 0x32, 0xff, 0xd8, 0x45, 0x82, 0x1b, 0x3b, 0xf1, 0x78, 0xd7, - 0xf6, 0x18, 0x5f, 0x3b, 0x91, 0x46, 0x42, 0xa2, 0xdd, 0x5d, 0xbe, 0x6e, 0xdc, 0xb7, 0xab, 0xb7, - 0xbb, 0xae, 0x93, 0xbb, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x56, 0xfc, 0x13, 0x3c, 0x21, 0xf1, - 0x09, 0xf8, 0x18, 0x3c, 0xee, 0x03, 0x0f, 0x3c, 0xa2, 0x99, 0x6f, 0xc0, 0x27, 0x40, 0x5d, 0x5d, - 0x7f, 0x4f, 0x9f, 0x53, 0xdd, 0x1e, 0x9e, 0x12, 0xf9, 0xfc, 0xce, 0x39, 0xf5, 0xe7, 0x54, 0xd5, - 0xa9, 0xea, 0xea, 0xbe, 0xd1, 0xcd, 0xf2, 0x6c, 0xab, 0xac, 0xb8, 0xe0, 0xf5, 0x56, 0xcd, 0xaa, - 0xab, 0x2c, 0x61, 0xfa, 0xdf, 0x89, 0xfc, 0xf3, 0xf8, 0xcd, 0xb8, 0x58, 0x89, 0x55, 0xc9, 0xde, - 0x7b, 0xd7, 0x92, 0x09, 0x5f, 0x2c, 0xe2, 0x22, 0xad, 0x5b, 0xe4, 0xbd, 0x77, 0xac, 0x84, 0x5d, - 0xb1, 0x42, 0xa8, 0xbf, 0x3f, 0xfe, 0xaf, 0xff, 0x1d, 0x45, 0x6f, 0x6d, 0xe7, 0x19, 0x2b, 0xc4, - 0xb6, 0xd2, 0x18, 0x7f, 0x19, 0x7d, 0x7b, 0x5a, 0x96, 0xbb, 0x4c, 0xbc, 0x60, 0x55, 0x9d, 0xf1, - 0x62, 0xfc, 0xc1, 0x44, 0x39, 0x98, 0x1c, 0x97, 0xc9, 0x64, 0x5a, 0x96, 0x13, 0x2b, 0x9c, 0x1c, - 0xb3, 0x1f, 0x2f, 0x59, 0x2d, 0xde, 0xbb, 0x13, 0x86, 0xea, 0x92, 0x17, 0x35, 0x1b, 0x9f, 0x47, - 0xbf, 0x32, 0x2d, 0xcb, 0x19, 0x13, 0x3b, 0xac, 0xa9, 0xc0, 0x4c, 0xc4, 0x82, 0x8d, 0xd7, 0x3b, - 0xaa, 0x3e, 0x60, 0x7c, 0xdc, 0xeb, 0x07, 0x95, 0x9f, 0x93, 0xe8, 0x5b, 0x8d, 0x9f, 0x8b, 0xa5, - 0x48, 0xf9, 0xab, 0x62, 0xfc, 0x7e, 0x57, 0x51, 0x89, 0x8c, 0xed, 0xdb, 0x21, 0x44, 0x59, 0x7d, - 0x19, 0xfd, 0xe2, 0xcb, 0x38, 0xcf, 0x99, 0xd8, 0xae, 0x58, 0x53, 0x70, 0x5f, 0xa7, 0x15, 0x4d, - 0x5a, 0x99, 0xb1, 0xfb, 0x41, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x4a, 0x8e, 0x59, 0xc2, - 0xaf, 0x58, 0x35, 0x46, 0xb5, 0x94, 0x90, 0x68, 0xf2, 0x0e, 0x04, 0x6d, 0x6f, 0xf3, 0xe2, 0x8a, - 0x55, 0x02, 0xb7, 0xad, 0x84, 0x61, 0xdb, 0x16, 0x52, 0xb6, 0xff, 0x6a, 0x14, 0x7d, 0x77, 0x9a, - 0x24, 0x7c, 0x59, 0x88, 0x7d, 0x9e, 0xc4, 0xf9, 0x7e, 0x56, 0x5c, 0x1e, 0xb2, 0x57, 0xdb, 0x17, - 0x0d, 0x5f, 0xcc, 0xd9, 0xf8, 0x89, 0xdf, 0xaa, 0x2d, 0x3a, 0x31, 0xec, 0xc4, 0x85, 0x8d, 0xef, - 0x8f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x77, 0xa3, 0xe8, 0x06, 0x2c, 0xcb, 0x8c, 0xe7, 0x57, 0xcc, - 0x96, 0xe6, 0xe3, 0x1e, 0xc3, 0x3e, 0x6e, 0xca, 0xf3, 0xc9, 0x75, 0xd5, 0x54, 0x89, 0xf2, 0xe8, - 0x6d, 0x37, 0x5c, 0x66, 0xac, 0x96, 0xc3, 0xe9, 0x3e, 0x1d, 0x11, 0x0a, 0x31, 0x9e, 0x1f, 0x0c, - 0x41, 0x95, 0xb7, 0x2c, 0x1a, 0x2b, 0x6f, 0x39, 0xaf, 0x8d, 0xb3, 0x7b, 0xa8, 0x05, 0x87, 0x30, - 0xbe, 0xee, 0x0f, 0x20, 0x95, 0xab, 0xdf, 0x8f, 0x7e, 0xe9, 0x25, 0xaf, 0x2e, 0xeb, 0x32, 0x4e, - 0x98, 0x1a, 0x0a, 0x77, 0x7d, 0x6d, 0x2d, 0x85, 0xa3, 0x61, 0xad, 0x0f, 0x73, 0x82, 0x56, 0x0b, - 0xbf, 0x28, 0x19, 0x9c, 0x83, 0xac, 0x62, 0x23, 0xa4, 0x82, 0x16, 0x42, 0xca, 0xf6, 0x65, 0x34, - 0xb6, 0xb6, 0xcf, 0xfe, 0x80, 0x25, 0x62, 0x9a, 0xa6, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x26, 0xd3, - 0x34, 0xa5, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x7e, 0x56, 0x4b, 0x87, - 0x9b, 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x27, 0x43, 0x71, 0xe5, 0xf8, 0x4f, 0x46, 0xd1, 0x77, 0x10, - 0xcf, 0xc7, 0x6c, 0xc1, 0xaf, 0xd8, 0xf8, 0x51, 0xbf, 0xb5, 0x96, 0x34, 0xfe, 0x3f, 0xbc, 0x86, - 0x06, 0x12, 0x26, 0x33, 0x96, 0xb3, 0x44, 0x90, 0x61, 0xd2, 0x8a, 0x7b, 0xc3, 0xc4, 0x60, 0xce, - 0x08, 0xd3, 0xc2, 0x5d, 0x26, 0xb6, 0x97, 0x55, 0xc5, 0x0a, 0x41, 0xf6, 0xa5, 0x45, 0x7a, 0xfb, - 0xd2, 0x43, 0x91, 0xfa, 0xec, 0x32, 0x31, 0xcd, 0x73, 0xb2, 0x3e, 0xad, 0xb8, 0xb7, 0x3e, 0x06, - 0x53, 0x1e, 0x92, 0xe8, 0x97, 0x9d, 0x16, 0x13, 0x7b, 0xc5, 0x39, 0x1f, 0xd3, 0x6d, 0x21, 0xe5, - 0xc6, 0xc7, 0x7a, 0x2f, 0x87, 0x54, 0xe3, 0xd9, 0xeb, 0x92, 0x57, 0x74, 0xb7, 0xb4, 0xe2, 0xde, - 0x6a, 0x18, 0x4c, 0x79, 0xf8, 0xbd, 0xe8, 0x2d, 0x35, 0x4b, 0xea, 0xf5, 0xec, 0x0e, 0x3a, 0x85, - 0xc2, 0x05, 0xed, 0x6e, 0x0f, 0x65, 0x27, 0x07, 0x25, 0x53, 0x93, 0xcf, 0x07, 0xa8, 0x1e, 0x98, - 0x7a, 0xee, 0x84, 0xa1, 0x8e, 0xed, 0x1d, 0x96, 0x33, 0xd2, 0x76, 0x2b, 0xec, 0xb1, 0x6d, 0x20, - 0x65, 0xbb, 0x8a, 0x7e, 0xcd, 0x34, 0x4b, 0xb3, 0x8e, 0x4a, 0x79, 0x33, 0x49, 0x6f, 0x10, 0xf5, - 0x76, 0x21, 0xe3, 0xeb, 0xe1, 0x30, 0xb8, 0x53, 0x1f, 0x35, 0x02, 0xf1, 0xfa, 0x80, 0xf1, 0x77, - 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3d, 0x8a, 0xbe, 0xa7, 0x64, 0xcf, 0x8a, 0xf8, 0x2c, 0x67, 0x72, - 0x49, 0x3c, 0x64, 0xe2, 0x15, 0xaf, 0x2e, 0x67, 0xab, 0x22, 0x21, 0x96, 0x7f, 0x1c, 0xee, 0x59, - 0xfe, 0x49, 0x25, 0x55, 0x98, 0x3f, 0x8c, 0xde, 0xd5, 0x41, 0x71, 0x11, 0x17, 0x73, 0xf6, 0xc3, - 0x9a, 0x17, 0xd3, 0x32, 0x9b, 0xa6, 0x69, 0x35, 0x9e, 0xe0, 0x5d, 0x0f, 0x39, 0x53, 0x82, 0xad, - 0xc1, 0xbc, 0x93, 0x6e, 0xaa, 0x56, 0x16, 0xbc, 0x84, 0xe9, 0xa6, 0x6e, 0x3e, 0xc1, 0x4b, 0x2a, - 0xdd, 0xf4, 0x91, 0x8e, 0xd5, 0x83, 0x66, 0xce, 0xc6, 0xad, 0x1e, 0xb8, 0x93, 0xf4, 0xed, 0x10, - 0x62, 0xe7, 0x4c, 0xdd, 0x50, 0xbc, 0x38, 0xcf, 0xe6, 0xa7, 0x65, 0xda, 0x8c, 0xa1, 0xfb, 0x78, - 0x9d, 0x1d, 0x84, 0x98, 0x33, 0x09, 0x54, 0x79, 0xfb, 0x5b, 0x9b, 0x95, 0xa9, 0x71, 0xfc, 0xbc, - 0xe2, 0x8b, 0x7d, 0x36, 0x8f, 0x93, 0x95, 0x9a, 0x7c, 0x3e, 0x0a, 0x8d, 0x7a, 0x48, 0x9b, 0x42, - 0x7c, 0x7c, 0x4d, 0x2d, 0x55, 0x9e, 0x7f, 0x1b, 0x45, 0x77, 0xbc, 0x38, 0x51, 0xc1, 0xd4, 0x96, - 0x7e, 0x5a, 0xa4, 0xc7, 0xac, 0x16, 0x71, 0x25, 0xc6, 0xdf, 0x0f, 0xc4, 0x00, 0xa1, 0x63, 0xca, - 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0xd6, 0xcc, 0xaa, 0x6a, 0xfe, 0xf1, 0x7b, 0x5d, 0x4a, - 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0xbd, 0xe2, 0x2a, 0x13, 0x6c, 0x97, 0x15, - 0xac, 0xea, 0xf6, 0x7a, 0xab, 0xea, 0x23, 0x44, 0xaf, 0x13, 0xa8, 0x9d, 0xe9, 0x3c, 0x6f, 0x66, - 0x65, 0xde, 0x08, 0x18, 0xe9, 0xac, 0xcd, 0x0f, 0x87, 0xc1, 0x76, 0x6b, 0xe9, 0xf8, 0x3c, 0x66, - 0x57, 0xfc, 0x12, 0x6e, 0x2d, 0x5d, 0x13, 0x2d, 0x40, 0x6c, 0x2d, 0x51, 0xd0, 0x2e, 0x9f, 0x8e, - 0x9f, 0x17, 0x19, 0x7b, 0x05, 0x96, 0x4f, 0x57, 0xb9, 0x11, 0x13, 0xcb, 0x27, 0x82, 0x29, 0x0f, - 0x87, 0xd1, 0x2f, 0x48, 0xe1, 0x0f, 0x79, 0x56, 0x8c, 0x6f, 0x22, 0x4a, 0x8d, 0xc0, 0x58, 0xbd, - 0x45, 0x03, 0xa0, 0xc4, 0xcd, 0x5f, 0xb7, 0xe3, 0x22, 0x61, 0x39, 0x5a, 0x62, 0x2b, 0x0e, 0x96, - 0xd8, 0xc3, 0x6c, 0xde, 0x22, 0x85, 0xcd, 0xfc, 0x35, 0xbb, 0x88, 0xab, 0xac, 0x98, 0x8f, 0x31, - 0x5d, 0x47, 0x4e, 0xe4, 0x2d, 0x18, 0x07, 0x42, 0x58, 0x29, 0x4e, 0xcb, 0xb2, 0x6a, 0xa6, 0x45, - 0x2c, 0x84, 0x7d, 0x24, 0x18, 0xc2, 0x1d, 0x14, 0xf7, 0xb6, 0xc3, 0x92, 0x3c, 0x2b, 0x82, 0xde, - 0x14, 0x32, 0xc4, 0x9b, 0x45, 0x41, 0xf0, 0xee, 0xb3, 0xf8, 0x8a, 0xe9, 0x9a, 0x61, 0x2d, 0xe3, - 0x02, 0xc1, 0xe0, 0x05, 0xa0, 0xdd, 0x24, 0x4a, 0xf1, 0x41, 0x7c, 0xc9, 0x9a, 0x06, 0x66, 0xcd, - 0xa2, 0x3a, 0xc6, 0xf4, 0x3d, 0x82, 0xd8, 0x24, 0xe2, 0xa4, 0x72, 0xb5, 0x8c, 0xde, 0x91, 0xf2, - 0xa3, 0xb8, 0x12, 0x59, 0x92, 0x95, 0x71, 0xa1, 0x37, 0x1f, 0xd8, 0xb8, 0xee, 0x50, 0xc6, 0xe5, - 0xe6, 0x40, 0x5a, 0xb9, 0xfd, 0xe7, 0x51, 0xf4, 0x3e, 0xf4, 0x7b, 0xc4, 0xaa, 0x45, 0x26, 0xf7, - 0xb0, 0x75, 0x3b, 0x09, 0x8f, 0x3f, 0x0d, 0x1b, 0xed, 0x28, 0x98, 0xd2, 0x7c, 0x76, 0x7d, 0x45, - 0x9b, 0x89, 0xcd, 0x54, 0x5e, 0xff, 0x45, 0x95, 0x76, 0xce, 0x78, 0x66, 0x3a, 0x59, 0x97, 0x42, - 0x22, 0x13, 0xeb, 0x40, 0x60, 0x84, 0x9f, 0x16, 0xb5, 0xb6, 0x8e, 0x8d, 0x70, 0x2b, 0x0e, 0x8e, - 0x70, 0x0f, 0xb3, 0x23, 0xfc, 0x68, 0x79, 0x96, 0x67, 0xf5, 0x45, 0x56, 0xcc, 0x55, 0xda, 0xed, - 0xeb, 0x5a, 0x31, 0xcc, 0xbc, 0xd7, 0x7b, 0x39, 0xcc, 0x89, 0x0a, 0x16, 0xd2, 0x09, 0x08, 0x93, - 0xf5, 0x5e, 0xce, 0x6e, 0x4e, 0xac, 0xb4, 0xd9, 0xb6, 0x82, 0xcd, 0x89, 0xa3, 0xda, 0x48, 0x89, - 0xcd, 0x49, 0x97, 0x52, 0xe6, 0x79, 0xf4, 0xab, 0x6e, 0x1d, 0x6a, 0x9e, 0x5f, 0xb1, 0xd3, 0x2a, - 0x1b, 0x3f, 0xa0, 0xcb, 0xa7, 0x19, 0xe3, 0x6a, 0x63, 0x10, 0x6b, 0x27, 0x2a, 0x4b, 0xec, 0x32, - 0x31, 0x13, 0xb1, 0x58, 0xd6, 0x60, 0xa2, 0x72, 0x6c, 0x18, 0x84, 0x98, 0xa8, 0x08, 0x54, 0x79, - 0xfb, 0xdd, 0x28, 0x6a, 0x77, 0xfc, 0xf2, 0x54, 0xc6, 0x5f, 0x7b, 0xd4, 0x51, 0x80, 0x77, 0x24, - 0xf3, 0x7e, 0x80, 0xb0, 0x09, 0x4f, 0xfb, 0x77, 0x79, 0xd8, 0x34, 0x46, 0x35, 0xa4, 0x88, 0x48, - 0x78, 0x00, 0x02, 0x0b, 0x3a, 0xbb, 0xe0, 0xaf, 0xf0, 0x82, 0x36, 0x92, 0x70, 0x41, 0x15, 0x61, - 0x8f, 0x7f, 0x55, 0x41, 0xb1, 0xe3, 0x5f, 0x5d, 0x8c, 0xd0, 0xf1, 0x2f, 0x64, 0x6c, 0xcc, 0xb8, - 0x86, 0x9f, 0x72, 0x7e, 0xb9, 0x88, 0xab, 0x4b, 0x10, 0x33, 0x9e, 0xb2, 0x66, 0x88, 0x98, 0xa1, - 0x58, 0x1b, 0x33, 0xae, 0xc3, 0x26, 0x5d, 0x3e, 0xad, 0x72, 0x10, 0x33, 0x9e, 0x0d, 0x85, 0x10, - 0x31, 0x43, 0xa0, 0x76, 0x76, 0x72, 0xbd, 0xcd, 0x18, 0x3c, 0x70, 0xf0, 0xd4, 0x67, 0x8c, 0x3a, - 0x70, 0x40, 0x30, 0x18, 0x42, 0xbb, 0x55, 0x5c, 0x5e, 0xe0, 0x21, 0x24, 0x45, 0xe1, 0x10, 0xd2, - 0x08, 0xec, 0xef, 0x19, 0x8b, 0xab, 0xe4, 0x02, 0xef, 0xef, 0x56, 0x16, 0xee, 0x6f, 0xc3, 0xc0, - 0xfe, 0x6e, 0x05, 0x2f, 0x33, 0x71, 0x71, 0xc0, 0x44, 0x8c, 0xf7, 0xb7, 0xcf, 0x84, 0xfb, 0xbb, - 0xc3, 0xda, 0x7c, 0xdc, 0x75, 0x38, 0x5b, 0x9e, 0xd5, 0x49, 0x95, 0x9d, 0xb1, 0x71, 0xc0, 0x8a, - 0x81, 0x88, 0x7c, 0x9c, 0x84, 0x95, 0xcf, 0x9f, 0x8e, 0xa2, 0x9b, 0xba, 0xdb, 0x79, 0x5d, 0xab, - 0xb5, 0xcf, 0x77, 0xff, 0x31, 0xde, 0xbf, 0x04, 0x4e, 0x1c, 0xc8, 0x0f, 0x50, 0x73, 0x72, 0x03, - 0xbc, 0x48, 0xa7, 0x45, 0x6d, 0x0a, 0xf5, 0xe9, 0x10, 0xeb, 0x8e, 0x02, 0x91, 0x1b, 0x0c, 0x52, - 0xb4, 0x69, 0x99, 0xea, 0x1f, 0x2d, 0xdb, 0x4b, 0x6b, 0x90, 0x96, 0xe9, 0xf6, 0x76, 0x08, 0x22, - 0x2d, 0xc3, 0x49, 0x18, 0x0a, 0xbb, 0x15, 0x5f, 0x96, 0x75, 0x4f, 0x28, 0x00, 0x28, 0x1c, 0x0a, - 0x5d, 0x58, 0xf9, 0x7c, 0x1d, 0xfd, 0xba, 0x1b, 0x7e, 0x6e, 0x63, 0x6f, 0xd2, 0x31, 0x85, 0x35, - 0xf1, 0x64, 0x28, 0x6e, 0x33, 0x0a, 0xed, 0x59, 0xec, 0x30, 0x11, 0x67, 0x79, 0x3d, 0x5e, 0xc3, - 0x6d, 0x68, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x9c, 0xdf, 0x76, 0x96, 0x65, 0x9e, 0x25, 0xdd, 0xc7, - 0x21, 0x4a, 0xd7, 0x88, 0xc3, 0xf3, 0x9b, 0x8b, 0xc1, 0xf9, 0xba, 0x49, 0xfd, 0xe4, 0x7f, 0x4e, - 0x56, 0x25, 0xc3, 0xe7, 0x6b, 0x0f, 0x09, 0xcf, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x31, 0xb1, 0x1f, - 0xaf, 0xf8, 0x92, 0x98, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x7b, 0x03, 0xe3, 0x61, 0xaf, - 0x10, 0xac, 0x2a, 0xe2, 0xfc, 0x79, 0x1e, 0xcf, 0xeb, 0x31, 0x31, 0xc7, 0xf8, 0x14, 0xb1, 0x37, - 0xa0, 0x69, 0xa4, 0x19, 0xf7, 0xea, 0xe7, 0xf1, 0x15, 0xaf, 0x32, 0x41, 0x37, 0xa3, 0x45, 0x7a, - 0x9b, 0xd1, 0x43, 0x51, 0x6f, 0xd3, 0x2a, 0xb9, 0xc8, 0xae, 0x58, 0x1a, 0xf0, 0xa6, 0x91, 0x01, - 0xde, 0x1c, 0x14, 0xe9, 0xb4, 0x19, 0x5f, 0x56, 0x09, 0x23, 0x3b, 0xad, 0x15, 0xf7, 0x76, 0x9a, - 0xc1, 0x94, 0x87, 0x3f, 0x1f, 0x45, 0xbf, 0xd1, 0x4a, 0xdd, 0x67, 0x14, 0x3b, 0x71, 0x7d, 0x71, - 0xc6, 0xe3, 0x2a, 0x1d, 0x7f, 0x88, 0xd9, 0x41, 0x51, 0xe3, 0xfa, 0xf1, 0x75, 0x54, 0x60, 0xb3, - 0x36, 0x79, 0xb7, 0x1d, 0x71, 0x68, 0xb3, 0x7a, 0x48, 0xb8, 0x59, 0x21, 0x0a, 0x27, 0x10, 0x29, - 0x6f, 0x8f, 0xe4, 0xd6, 0x48, 0x7d, 0xff, 0x5c, 0x6e, 0xbd, 0x97, 0x83, 0xf3, 0x63, 0x23, 0xf4, - 0xa3, 0x65, 0x93, 0xb2, 0x81, 0x47, 0xcc, 0x64, 0x28, 0x4e, 0x7a, 0x36, 0xa3, 0x22, 0xec, 0xb9, - 0x33, 0x32, 0x26, 0x43, 0x71, 0xc2, 0xb3, 0x33, 0xad, 0x85, 0x3c, 0x23, 0x53, 0xdb, 0x64, 0x28, - 0x0e, 0xb3, 0x2f, 0xc5, 0xe8, 0x75, 0xe1, 0x41, 0xc0, 0x0e, 0x5c, 0x1b, 0x36, 0x06, 0xb1, 0xca, - 0xe1, 0x5f, 0x8e, 0xa2, 0xef, 0x5a, 0x8f, 0x07, 0x3c, 0xcd, 0xce, 0x57, 0x2d, 0xf4, 0x22, 0xce, - 0x97, 0xac, 0x1e, 0x3f, 0xa6, 0xac, 0x75, 0x59, 0x53, 0x82, 0x27, 0xd7, 0xd2, 0x81, 0x63, 0x67, - 0x5a, 0x96, 0xf9, 0xea, 0x84, 0x2d, 0xca, 0x9c, 0x1c, 0x3b, 0x1e, 0x12, 0x1e, 0x3b, 0x10, 0x85, - 0x59, 0xf9, 0x09, 0x6f, 0x72, 0x7e, 0x34, 0x2b, 0x97, 0xa2, 0x70, 0x56, 0xae, 0x11, 0x98, 0x2b, - 0x9d, 0xf0, 0x6d, 0x9e, 0xe7, 0x2c, 0x11, 0xdd, 0x7b, 0x0e, 0x46, 0xd3, 0x12, 0xe1, 0x5c, 0x09, - 0x90, 0xf6, 0x54, 0x4e, 0xef, 0x21, 0xe3, 0x8a, 0x3d, 0x5d, 0xed, 0x67, 0xc5, 0xe5, 0x18, 0x4f, - 0x0b, 0x2c, 0x40, 0x9c, 0xca, 0xa1, 0x20, 0xdc, 0xab, 0x9e, 0x16, 0x29, 0xc7, 0xf7, 0xaa, 0x8d, - 0x24, 0xbc, 0x57, 0x55, 0x04, 0x34, 0x79, 0xcc, 0x28, 0x93, 0x8d, 0x24, 0x6c, 0x52, 0x11, 0xd8, - 0x54, 0xa8, 0x9e, 0xdd, 0x90, 0x53, 0x21, 0x78, 0x5a, 0xb3, 0xde, 0xcb, 0xc1, 0x08, 0xd5, 0x9b, - 0xd6, 0xe7, 0x4c, 0x24, 0x17, 0x78, 0x84, 0x7a, 0x48, 0x38, 0x42, 0x21, 0x0a, 0xab, 0x74, 0xc2, - 0xcd, 0xa6, 0x7b, 0x0d, 0x8f, 0x8f, 0xce, 0x86, 0x7b, 0xbd, 0x97, 0x83, 0xdb, 0xc8, 0xbd, 0x85, - 0x6c, 0x33, 0x34, 0xc8, 0x5b, 0x59, 0x78, 0x1b, 0x69, 0x18, 0x58, 0xfa, 0x56, 0x20, 0xcf, 0xb2, - 0xd6, 0x68, 0x45, 0xef, 0x34, 0x6b, 0xbd, 0x97, 0x53, 0x4e, 0xfe, 0xd1, 0x6c, 0xe3, 0x5a, 0xe9, - 0x21, 0x6f, 0xc6, 0xc8, 0x8b, 0x38, 0xcf, 0xd2, 0x58, 0xb0, 0x13, 0x7e, 0xc9, 0x0a, 0x7c, 0xc7, - 0xa4, 0x4a, 0xdb, 0xf2, 0x13, 0x4f, 0x21, 0xbc, 0x63, 0x0a, 0x2b, 0xc2, 0x38, 0x69, 0xe9, 0xd3, - 0x9a, 0x6d, 0xc7, 0x35, 0x31, 0x93, 0x79, 0x48, 0x38, 0x4e, 0x20, 0x0a, 0xf3, 0xd5, 0x56, 0xfe, - 0xec, 0x75, 0xc9, 0xaa, 0x8c, 0x15, 0x09, 0xc3, 0xf3, 0x55, 0x48, 0x85, 0xf3, 0x55, 0x84, 0x86, - 0x7b, 0xb5, 0x9d, 0x58, 0xb0, 0xa7, 0xab, 0x93, 0x6c, 0xc1, 0x6a, 0x11, 0x2f, 0x4a, 0x7c, 0xaf, - 0x06, 0xa0, 0xf0, 0x5e, 0xad, 0x0b, 0x77, 0x8e, 0x86, 0xcc, 0x84, 0xd8, 0xbd, 0x1e, 0x05, 0x89, - 0xc0, 0xf5, 0x28, 0x02, 0x85, 0x0d, 0x6b, 0x01, 0xf4, 0x21, 0x41, 0xc7, 0x4a, 0xf0, 0x21, 0x01, - 0x4d, 0x77, 0x0e, 0xdc, 0x0c, 0x33, 0x6b, 0x86, 0x66, 0x4f, 0xd1, 0x67, 0xee, 0x10, 0xdd, 0x18, - 0xc4, 0xe2, 0x27, 0x7c, 0xc7, 0x2c, 0x8f, 0xe5, 0xb2, 0x15, 0x38, 0x46, 0xd3, 0xcc, 0x90, 0x13, - 0x3e, 0x87, 0x55, 0x0e, 0xff, 0x74, 0x14, 0xbd, 0x87, 0x79, 0xfc, 0xa2, 0x94, 0x7e, 0x1f, 0xf5, - 0xdb, 0x6a, 0x49, 0xe2, 0xfe, 0x57, 0x58, 0xc3, 0x5e, 0xc9, 0xd0, 0x22, 0x7b, 0x3d, 0x4c, 0x15, - 0xc0, 0x4f, 0xda, 0x4c, 0xf9, 0x21, 0x47, 0x5c, 0xc9, 0x08, 0xf1, 0x76, 0x3f, 0xe4, 0x97, 0xab, - 0x06, 0xfb, 0x21, 0x63, 0x43, 0x89, 0x89, 0xfd, 0x10, 0x82, 0xd9, 0xd1, 0xe9, 0x56, 0xef, 0x65, - 0x26, 0x2e, 0x64, 0xbe, 0x05, 0x46, 0xa7, 0x57, 0x56, 0x03, 0x11, 0xa3, 0x93, 0x84, 0x61, 0x46, - 0xa2, 0xc1, 0x66, 0x6c, 0x62, 0x73, 0xb9, 0x31, 0xe4, 0x8e, 0xcc, 0x7b, 0xfd, 0x20, 0x8c, 0x57, - 0x2d, 0x56, 0x5b, 0x9f, 0x07, 0x21, 0x0b, 0x60, 0xfb, 0xb3, 0x31, 0x88, 0x55, 0x0e, 0xff, 0x38, - 0xfa, 0x4e, 0xa7, 0x62, 0xcf, 0x59, 0x2c, 0x96, 0x15, 0x4b, 0xc7, 0x5b, 0x3d, 0xe5, 0xd6, 0xa0, - 0x71, 0xfd, 0x68, 0xb8, 0x42, 0x27, 0x47, 0xd7, 0x5c, 0x1b, 0x56, 0xa6, 0x0c, 0x8f, 0x43, 0x26, - 0x7d, 0x36, 0x98, 0xa3, 0xd3, 0x3a, 0x9d, 0x6d, 0xb6, 0x1b, 0x5d, 0xd3, 0xab, 0x38, 0xcb, 0xe5, - 0xc3, 0xda, 0x0f, 0x43, 0x46, 0x3d, 0x34, 0xb8, 0xcd, 0x26, 0x55, 0x3a, 0x33, 0xb3, 0x1c, 0xe3, - 0xce, 0xf6, 0xec, 0x21, 0x3d, 0x13, 0x20, 0xbb, 0xb3, 0xcd, 0x81, 0xb4, 0x72, 0x2b, 0xf4, 0x92, - 0xd7, 0xfc, 0xd9, 0x0d, 0x72, 0xcc, 0xab, 0x52, 0x45, 0x22, 0x7d, 0x73, 0x20, 0xad, 0xbc, 0xfe, - 0x51, 0xf4, 0x6e, 0xd7, 0xab, 0x5a, 0x88, 0xb6, 0x7a, 0x4d, 0x81, 0xb5, 0xe8, 0xd1, 0x70, 0x05, - 0xe5, 0xfe, 0x5f, 0xcc, 0xb9, 0x74, 0xeb, 0x3f, 0xe1, 0x8b, 0x05, 0x2b, 0x52, 0x96, 0x6a, 0x8d, - 0xba, 0xd9, 0x3f, 0x7d, 0x46, 0xdb, 0x35, 0x0a, 0x13, 0x57, 0xc3, 0x94, 0xe8, 0x37, 0xbf, 0x81, - 0xa6, 0x2a, 0xda, 0x7f, 0x8c, 0xa2, 0xfb, 0x68, 0xd1, 0x74, 0xe0, 0x7a, 0x45, 0xfc, 0x9d, 0x21, - 0x8e, 0x30, 0x4d, 0x53, 0xd4, 0xe9, 0xff, 0xc3, 0x82, 0x2a, 0xf2, 0xbf, 0x8e, 0xa2, 0xdb, 0x56, - 0xb1, 0x09, 0xef, 0x6d, 0x5e, 0x9c, 0xe7, 0x59, 0x22, 0xe4, 0x13, 0x59, 0xa5, 0x42, 0x37, 0x27, - 0xa5, 0xd1, 0xdf, 0x9c, 0x01, 0x4d, 0xbb, 0x79, 0xfd, 0x3c, 0xab, 0x05, 0xaf, 0x56, 0xb3, 0x0b, - 0xfe, 0x4a, 0xbf, 0x60, 0xe3, 0xcf, 0xcb, 0x0a, 0x98, 0x38, 0x04, 0xb1, 0x79, 0xc5, 0xc9, 0x8e, - 0x2b, 0xfb, 0x22, 0x4e, 0x4d, 0xb8, 0x72, 0x88, 0x1e, 0x57, 0x3e, 0x69, 0x57, 0x25, 0x5d, 0x2b, - 0xfb, 0xd6, 0xd0, 0x3a, 0x5e, 0xd4, 0xee, 0x9b, 0x43, 0xf7, 0xfa, 0x41, 0x9b, 0x9b, 0x2a, 0xf1, - 0x4e, 0x76, 0x7e, 0x6e, 0xea, 0x84, 0x97, 0xd4, 0x45, 0x88, 0xdc, 0x94, 0x40, 0xed, 0xf6, 0xea, - 0x79, 0x96, 0x33, 0xf9, 0xec, 0xe6, 0x8b, 0xf3, 0xf3, 0x9c, 0xc7, 0x29, 0xd8, 0x5e, 0x35, 0xe2, - 0x89, 0x2b, 0x27, 0xb6, 0x57, 0x18, 0x67, 0x6f, 0x85, 0x34, 0xd2, 0x26, 0xba, 0x8b, 0x24, 0xcb, - 0xe1, 0x7d, 0x63, 0xa9, 0x69, 0x84, 0xc4, 0xad, 0x90, 0x0e, 0x64, 0x53, 0xa0, 0x46, 0xd4, 0x44, - 0xa5, 0x2e, 0xff, 0xdd, 0xae, 0xa2, 0x23, 0x26, 0x52, 0x20, 0x04, 0xb3, 0xa7, 0x0c, 0x8d, 0xf0, - 0xb4, 0x94, 0xc6, 0x6f, 0x75, 0xb5, 0x5a, 0x09, 0x71, 0xca, 0xe0, 0x13, 0x76, 0xb7, 0xdc, 0xfc, - 0x7d, 0x87, 0xbf, 0x2a, 0xa4, 0xd1, 0xdb, 0x5d, 0x15, 0x2d, 0x23, 0x76, 0xcb, 0x90, 0x51, 0x86, - 0x7f, 0x14, 0xfd, 0xbc, 0x34, 0x5c, 0xf1, 0x72, 0x7c, 0x03, 0x51, 0xa8, 0x9c, 0xdb, 0xb9, 0x37, - 0x49, 0xb9, 0xbd, 0x44, 0x62, 0x62, 0xe3, 0xb4, 0x8e, 0xe7, 0x6c, 0x7c, 0x87, 0xe8, 0x71, 0x29, - 0x25, 0x2e, 0x91, 0x74, 0x29, 0x3f, 0x2a, 0x0e, 0x79, 0xaa, 0xac, 0x23, 0x35, 0x34, 0xc2, 0x50, - 0x54, 0xb8, 0x90, 0x4d, 0x5b, 0x0f, 0xe3, 0xab, 0x6c, 0x6e, 0x52, 0x8b, 0x76, 0x02, 0xab, 0x41, - 0xda, 0x6a, 0x99, 0x89, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x2b, 0x9f, 0xff, 0x30, 0x8a, 0x6e, 0x59, - 0x66, 0x57, 0x9f, 0xcb, 0xee, 0x15, 0xe7, 0xbc, 0x49, 0x72, 0xf7, 0xb3, 0xe2, 0xb2, 0x1e, 0x7f, - 0x42, 0x99, 0xc4, 0x79, 0x53, 0x94, 0x4f, 0xaf, 0xad, 0x67, 0xf7, 0x27, 0xfa, 0xd0, 0xd2, 0xde, - 0x5c, 0x68, 0x35, 0xc0, 0xfe, 0xc4, 0x9c, 0x6d, 0x42, 0x8e, 0xd8, 0x9f, 0x84, 0x78, 0xdb, 0xc5, - 0xc6, 0x79, 0xce, 0x0b, 0xd8, 0xc5, 0xd6, 0x42, 0x23, 0x24, 0xba, 0xb8, 0x03, 0xd9, 0xf9, 0x58, - 0x8b, 0xda, 0xf3, 0xb5, 0x69, 0x9e, 0x83, 0xf9, 0xd8, 0xa8, 0x1a, 0x80, 0x98, 0x8f, 0x51, 0x50, - 0xf9, 0x39, 0x8e, 0xbe, 0xd5, 0x34, 0xe9, 0x51, 0xc5, 0xae, 0x32, 0x06, 0x2f, 0xd9, 0x38, 0x12, - 0x62, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xa7, 0x45, 0x5d, 0xe6, 0x71, 0x7d, 0xa1, 0xae, 0x5d, 0xf8, - 0x75, 0xd6, 0x42, 0x78, 0xf1, 0xe2, 0x6e, 0x0f, 0x65, 0x27, 0x75, 0x2d, 0x33, 0x53, 0xcc, 0x1a, - 0xae, 0xda, 0x99, 0x66, 0xd6, 0x7b, 0x39, 0xfb, 0x6c, 0x63, 0x37, 0xce, 0x73, 0x56, 0xad, 0xb4, - 0xec, 0x20, 0x2e, 0xb2, 0x73, 0x56, 0x0b, 0xf0, 0x6c, 0x43, 0x51, 0x13, 0x88, 0x11, 0xcf, 0x36, - 0x02, 0xb8, 0xdd, 0xb7, 0x01, 0xcf, 0x7b, 0x45, 0xca, 0x5e, 0x83, 0x7d, 0x1b, 0xb4, 0x23, 0x19, - 0x62, 0xdf, 0x46, 0xb1, 0xf6, 0x8c, 0xff, 0x69, 0xce, 0x93, 0x4b, 0xb5, 0x04, 0xf8, 0x1d, 0x2c, - 0x25, 0x70, 0x0d, 0xb8, 0x1d, 0x42, 0xec, 0x22, 0x20, 0x05, 0xc7, 0xac, 0xcc, 0xe3, 0x04, 0xde, - 0xb4, 0x6a, 0x75, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03, 0x8a, 0xab, 0x6e, 0x70, 0x61, 0xc5, 0x05, - 0x17, 0xb8, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1, 0xac, 0xcc, 0x33, 0x01, 0x86, 0x41, 0xab, - 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x80, 0x55, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, - 0x49, 0x4d, 0xd8, 0x6b, 0xe5, 0x6d, 0xdd, 0x79, 0xb9, 0x02, 0xd7, 0xca, 0x55, 0xb5, 0x78, 0xb9, - 0x22, 0xae, 0x95, 0x7b, 0x00, 0x28, 0xe2, 0x51, 0x5c, 0x0b, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, - 0x26, 0xec, 0x1a, 0xdd, 0x16, 0x71, 0x29, 0xc0, 0x1a, 0xad, 0x0a, 0xe0, 0xdc, 0x35, 0xb8, 0x49, - 0xca, 0xed, 0x4c, 0xd2, 0xf6, 0x0a, 0x13, 0xcf, 0x33, 0x96, 0xa7, 0x35, 0x98, 0x49, 0x54, 0xbb, - 0x6b, 0x29, 0x31, 0x93, 0x74, 0x29, 0x10, 0x4a, 0xea, 0x49, 0x08, 0x56, 0x3b, 0xf0, 0x10, 0xe4, - 0x76, 0x08, 0xb1, 0xf3, 0x93, 0x2e, 0xf4, 0x76, 0x5c, 0x55, 0x59, 0xb3, 0xf8, 0xaf, 0xe1, 0x05, - 0xd2, 0x72, 0x62, 0x7e, 0xc2, 0x38, 0x30, 0xbc, 0xf4, 0xc4, 0x8d, 0x15, 0x0c, 0x4e, 0xdd, 0x1f, - 0x04, 0x19, 0x9b, 0x71, 0x4a, 0x89, 0xf3, 0xb0, 0x1c, 0x6b, 0x4d, 0xe4, 0x59, 0xf9, 0x5a, 0x1f, - 0xe6, 0xbc, 0x73, 0x66, 0x5c, 0x1c, 0xf0, 0x2b, 0x76, 0xc2, 0x9f, 0xbd, 0xce, 0xea, 0x66, 0xbb, - 0xa5, 0x56, 0xee, 0x27, 0x84, 0x25, 0x0c, 0x26, 0xde, 0x39, 0xeb, 0x55, 0xb2, 0x09, 0x04, 0x28, - 0xcb, 0x21, 0x7b, 0x85, 0x26, 0x10, 0xd0, 0xa2, 0xe1, 0x88, 0x04, 0x22, 0xc4, 0xdb, 0x13, 0x33, - 0xe3, 0x5c, 0xbd, 0x98, 0x7f, 0xc2, 0x75, 0x2e, 0x47, 0x59, 0x83, 0x20, 0x71, 0x68, 0x11, 0x54, - 0xb0, 0xfb, 0x4b, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x84, 0x9d, 0xee, 0x30, 0xbb, 0x3f, 0x80, 0x44, - 0x5c, 0xd9, 0x1b, 0x1f, 0x94, 0xab, 0xee, 0x85, 0x8f, 0xfb, 0x03, 0x48, 0xe7, 0xf4, 0xcd, 0xad, - 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x57, 0x7c, 0x59, 0xa4, 0xdb, 0x3c, 0xe7, 0x15, 0x38, 0x7d, 0xf3, - 0x4a, 0x0d, 0x50, 0xe2, 0xf4, 0xad, 0x47, 0xc5, 0x66, 0x70, 0x6e, 0x29, 0xa6, 0x79, 0x36, 0x87, - 0x3b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x6a, 0x77, 0xdc, 0x22, 0x4b, - 0xe2, 0xbc, 0xf5, 0xb7, 0x45, 0x9b, 0xf1, 0xc0, 0xde, 0x20, 0x42, 0x14, 0x90, 0x7a, 0x9e, 0x2c, - 0xab, 0x62, 0xaf, 0x10, 0x9c, 0xac, 0xa7, 0x06, 0x7a, 0xeb, 0xe9, 0x80, 0x60, 0x5a, 0x3d, 0x61, - 0xaf, 0x9b, 0xd2, 0x34, 0xff, 0x60, 0xd3, 0x6a, 0xf3, 0xf7, 0x89, 0x92, 0x87, 0xa6, 0x55, 0xc0, - 0x81, 0xca, 0x28, 0x27, 0x6d, 0xc0, 0x04, 0xb4, 0xfd, 0x30, 0xb9, 0xd7, 0x0f, 0xe2, 0x7e, 0x66, - 0x62, 0x95, 0xb3, 0x90, 0x1f, 0x09, 0x0c, 0xf1, 0xa3, 0x41, 0x7b, 0xdc, 0xe2, 0xd5, 0xe7, 0x82, - 0x25, 0x97, 0x9d, 0x0b, 0x6c, 0x7e, 0x41, 0x5b, 0x84, 0x38, 0x6e, 0x21, 0x50, 0xbc, 0x8b, 0xf6, - 0x12, 0x5e, 0x84, 0xba, 0xa8, 0x91, 0x0f, 0xe9, 0x22, 0xc5, 0xd9, 0xcd, 0xaf, 0x91, 0xaa, 0xc8, - 0x6c, 0xbb, 0x69, 0x83, 0xb0, 0xe0, 0x42, 0xc4, 0xe6, 0x97, 0x84, 0x6d, 0x4e, 0x0e, 0x7d, 0x1e, - 0x74, 0x6f, 0xf7, 0x77, 0xac, 0x1c, 0xd0, 0xb7, 0xfb, 0x29, 0x96, 0xae, 0x64, 0x1b, 0x23, 0x3d, - 0x56, 0xfc, 0x38, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0xce, 0xe2, 0xaa, 0xf5, - 0xba, 0x19, 0x30, 0x64, 0x31, 0x62, 0xcb, 0x13, 0xc0, 0xc1, 0x14, 0xe6, 0x79, 0xde, 0xe6, 0x85, - 0x60, 0x85, 0xc0, 0xa6, 0x30, 0xdf, 0x98, 0x02, 0x43, 0x53, 0x18, 0xa5, 0x00, 0xe2, 0x56, 0x9e, - 0x07, 0x31, 0x71, 0x18, 0x2f, 0xd0, 0x8c, 0xad, 0x3d, 0xeb, 0x69, 0xe5, 0xa1, 0xb8, 0x05, 0x9c, - 0xf3, 0x38, 0xd7, 0xf5, 0x72, 0x12, 0x57, 0x73, 0x73, 0xba, 0x91, 0x8e, 0x1f, 0xd1, 0x76, 0x7c, - 0x92, 0x78, 0x9c, 0x1b, 0xd6, 0x00, 0xd3, 0xce, 0xde, 0x22, 0x9e, 0x9b, 0x9a, 0x22, 0x35, 0x90, - 0xf2, 0x4e, 0x55, 0xef, 0xf5, 0x83, 0xc0, 0xcf, 0x8b, 0x2c, 0x65, 0x3c, 0xe0, 0x47, 0xca, 0x87, - 0xf8, 0x81, 0x20, 0xc8, 0xde, 0x9a, 0x7a, 0xb7, 0x3b, 0xba, 0x69, 0x91, 0xaa, 0x7d, 0xec, 0x84, - 0x68, 0x1e, 0xc0, 0x85, 0xb2, 0x37, 0x82, 0x07, 0x63, 0x54, 0x1f, 0xd0, 0x86, 0xc6, 0xa8, 0x39, - 0x7f, 0x1d, 0x32, 0x46, 0x31, 0x58, 0xf9, 0xfc, 0x89, 0x1a, 0xa3, 0x3b, 0xb1, 0x88, 0x9b, 0xbc, - 0xfd, 0x45, 0xc6, 0x5e, 0xa9, 0x8d, 0x30, 0x52, 0x5f, 0x4d, 0x4d, 0xe4, 0xcb, 0xc9, 0x60, 0x57, - 0xbc, 0x35, 0x98, 0x0f, 0xf8, 0x56, 0x3b, 0x84, 0x5e, 0xdf, 0x60, 0xab, 0xb0, 0x35, 0x98, 0x0f, - 0xf8, 0x56, 0x5f, 0x3d, 0xe8, 0xf5, 0x0d, 0x3e, 0x7d, 0xb0, 0x35, 0x98, 0x57, 0xbe, 0xff, 0x4c, - 0x0f, 0x5c, 0xd7, 0x79, 0x93, 0x87, 0x25, 0x22, 0xbb, 0x62, 0x58, 0x3a, 0xe9, 0xdb, 0x33, 0x68, - 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0xef, 0x74, 0x61, 0xa5, 0x38, 0xe2, 0x75, 0x26, 0xaf, 0x63, 0x3c, - 0x19, 0x60, 0x54, 0xc3, 0xa1, 0x4d, 0x53, 0x48, 0xc9, 0x3e, 0x58, 0xf6, 0x50, 0x7b, 0x5f, 0xfd, - 0x61, 0xc0, 0x5e, 0xf7, 0xda, 0xfa, 0xe6, 0x40, 0xda, 0x3e, 0xe2, 0xf5, 0x18, 0xf7, 0xd9, 0x72, - 0xa8, 0x57, 0xd1, 0xc7, 0xcb, 0x8f, 0x86, 0x2b, 0x28, 0xf7, 0x7f, 0xa1, 0xf7, 0x15, 0xd0, 0xbf, - 0x1a, 0x04, 0x8f, 0x87, 0x58, 0x04, 0x03, 0xe1, 0xc9, 0xb5, 0x74, 0x54, 0x41, 0xfe, 0x46, 0x6f, - 0xa0, 0x35, 0x2a, 0xdf, 0xda, 0x91, 0x6f, 0xfb, 0xaa, 0x31, 0x11, 0xea, 0x56, 0x0b, 0xc3, 0x91, - 0xf1, 0xf1, 0x35, 0xb5, 0x9c, 0xaf, 0xb6, 0x79, 0xb0, 0x7a, 0xbb, 0xd4, 0x29, 0x4f, 0xc8, 0xb2, - 0x43, 0xc3, 0x02, 0x7d, 0x72, 0x5d, 0x35, 0x6a, 0xac, 0x38, 0xb0, 0xfc, 0x0e, 0xcb, 0x93, 0x81, - 0x86, 0xbd, 0x2f, 0xb3, 0x7c, 0x74, 0x3d, 0x25, 0x55, 0x96, 0x7f, 0x1f, 0x45, 0x77, 0x3d, 0xd6, - 0x3e, 0x4f, 0x00, 0xa7, 0x1e, 0x3f, 0x08, 0xd8, 0xa7, 0x94, 0x4c, 0xe1, 0x7e, 0xeb, 0x9b, 0x29, - 0xdb, 0x4f, 0x9c, 0x79, 0x2a, 0xcf, 0xb3, 0x5c, 0xb0, 0xaa, 0xfb, 0x89, 0x33, 0xdf, 0x6e, 0x4b, - 0x4d, 0xe8, 0x4f, 0x9c, 0x05, 0x70, 0xe7, 0x13, 0x67, 0x88, 0x67, 0xf4, 0x13, 0x67, 0xa8, 0xb5, - 0xe0, 0x27, 0xce, 0xc2, 0x1a, 0xd4, 0xf4, 0xae, 0x8b, 0xd0, 0x9e, 0x5b, 0x0f, 0xb2, 0xe8, 0x1f, - 0x63, 0x3f, 0xbe, 0x8e, 0x0a, 0xb1, 0xc0, 0xb5, 0x9c, 0xbc, 0xd1, 0x38, 0xa0, 0x4d, 0xbd, 0x5b, - 0x8d, 0x5b, 0x83, 0x79, 0xe5, 0xfb, 0xc7, 0x6a, 0x77, 0x63, 0xa6, 0x73, 0x5e, 0xc9, 0xcf, 0xdb, - 0x6d, 0x84, 0xa6, 0xe7, 0xc6, 0x82, 0xdb, 0xf3, 0x0f, 0x87, 0xc1, 0x44, 0x75, 0x1b, 0x42, 0x75, - 0xfa, 0xa4, 0xcf, 0x10, 0xe8, 0xf2, 0xad, 0xc1, 0x3c, 0xb1, 0x8c, 0xb4, 0xbe, 0xdb, 0xde, 0x1e, - 0x60, 0xcc, 0xef, 0xeb, 0x47, 0xc3, 0x15, 0x94, 0xfb, 0x2b, 0x95, 0x36, 0xba, 0xee, 0x65, 0x3f, - 0x6f, 0xf6, 0x99, 0x9a, 0x79, 0xdd, 0x3c, 0x19, 0x8a, 0x87, 0x12, 0x08, 0x77, 0x09, 0xed, 0x4b, - 0x20, 0xd0, 0x65, 0xf4, 0xa3, 0xeb, 0x29, 0xa9, 0xb2, 0xfc, 0xfd, 0x28, 0xba, 0x49, 0x96, 0x45, - 0xc5, 0xc1, 0x27, 0x43, 0x2d, 0x83, 0x78, 0xf8, 0xf4, 0xda, 0x7a, 0xaa, 0x50, 0xff, 0x34, 0x8a, - 0x6e, 0x05, 0x0a, 0xd5, 0x06, 0xc8, 0x35, 0xac, 0xfb, 0x81, 0xf2, 0xd9, 0xf5, 0x15, 0xa9, 0xe5, - 0xde, 0xc5, 0x67, 0xdd, 0xcf, 0x6f, 0x05, 0x6c, 0xcf, 0xe8, 0xcf, 0x6f, 0xf5, 0x6b, 0xc1, 0x43, - 0x9e, 0xf8, 0x4c, 0x6f, 0xba, 0xd0, 0x43, 0x1e, 0x79, 0x17, 0x31, 0xf8, 0x19, 0x11, 0x8c, 0xc3, - 0x9c, 0x3c, 0x7b, 0x5d, 0xc6, 0x45, 0x4a, 0x3b, 0x69, 0xe5, 0xfd, 0x4e, 0x0c, 0x07, 0x0f, 0xc7, - 0x1a, 0xe9, 0x31, 0xd7, 0x1b, 0xa9, 0xfb, 0x94, 0xbe, 0x41, 0x82, 0x87, 0x63, 0x1d, 0x94, 0xf0, - 0xa6, 0xb2, 0xc6, 0x90, 0x37, 0x90, 0x2c, 0x3e, 0x18, 0x82, 0x82, 0x14, 0xdd, 0x78, 0x33, 0x67, - 0xee, 0x0f, 0x43, 0x56, 0x3a, 0xe7, 0xee, 0x9b, 0x03, 0x69, 0xc2, 0xed, 0x8c, 0x89, 0xcf, 0x59, - 0x9c, 0xb2, 0x2a, 0xe8, 0xd6, 0x50, 0x83, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x9b, 0xe7, 0xcb, 0x45, - 0xa1, 0x3a, 0x93, 0x74, 0xeb, 0x52, 0xfd, 0x6e, 0x01, 0x0d, 0x8f, 0x05, 0xad, 0x5b, 0x99, 0x5e, - 0x3e, 0x08, 0x9b, 0xf1, 0xb2, 0xca, 0x8d, 0x41, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x3d, 0xf5, 0x04, - 0x91, 0xb4, 0x39, 0x90, 0x86, 0xe7, 0x73, 0x8e, 0x5b, 0x13, 0x4f, 0x5b, 0x3d, 0xb6, 0x3a, 0x21, - 0xf5, 0x68, 0xb8, 0x02, 0x3c, 0x0d, 0x55, 0x51, 0xb5, 0x9f, 0xd5, 0xe2, 0x79, 0x96, 0xe7, 0xe3, - 0x8d, 0x40, 0x98, 0x68, 0x28, 0x78, 0x1a, 0x8a, 0xc0, 0x44, 0x24, 0xeb, 0xd3, 0xc3, 0x62, 0xdc, - 0x67, 0x47, 0x52, 0x83, 0x22, 0xd9, 0xa5, 0xc1, 0x89, 0x96, 0xd3, 0xd4, 0xa6, 0xb6, 0x93, 0x70, - 0xc3, 0x75, 0x2a, 0xbc, 0x35, 0x98, 0x07, 0x8f, 0xdb, 0x25, 0x25, 0x57, 0x96, 0x3b, 0x94, 0x09, - 0x6f, 0x25, 0xb9, 0xdb, 0x43, 0x81, 0x53, 0xc1, 0x76, 0x18, 0xbd, 0xcc, 0xd2, 0x39, 0x13, 0xe8, - 0x93, 0x22, 0x17, 0x08, 0x3e, 0x29, 0x02, 0x20, 0xe8, 0xba, 0xf6, 0xef, 0xe6, 0x38, 0x74, 0x2f, - 0xc5, 0xba, 0x4e, 0x29, 0x3b, 0x54, 0xa8, 0xeb, 0x50, 0x1a, 0xcc, 0x06, 0xc6, 0xad, 0xfa, 0xf0, - 0xc2, 0x83, 0x90, 0x19, 0xf0, 0xf5, 0x85, 0x8d, 0x41, 0x2c, 0x58, 0x51, 0xac, 0xc3, 0x6c, 0x91, - 0x09, 0x6c, 0x45, 0x71, 0x6c, 0x34, 0x48, 0x68, 0x45, 0xe9, 0xa2, 0x54, 0xf5, 0x9a, 0x1c, 0x61, - 0x2f, 0x0d, 0x57, 0xaf, 0x65, 0x86, 0x55, 0xcf, 0xb0, 0x9d, 0x07, 0x9b, 0x85, 0x09, 0x19, 0x71, - 0xa1, 0x36, 0xcb, 0x48, 0x6c, 0xcb, 0x17, 0x72, 0x21, 0x18, 0x9a, 0x75, 0x28, 0x05, 0x78, 0x60, - 0xdf, 0x70, 0xfa, 0xd9, 0x6b, 0x59, 0xb2, 0xb8, 0x8a, 0x8b, 0x04, 0xdd, 0x9c, 0x4a, 0x83, 0x1d, - 0x32, 0xb4, 0x39, 0x25, 0x35, 0xc0, 0x63, 0x73, 0xff, 0x55, 0x5a, 0x64, 0x28, 0x98, 0x77, 0x56, - 0xfd, 0x37, 0x69, 0xef, 0x0f, 0x20, 0xe1, 0x63, 0x73, 0x0d, 0x98, 0x83, 0xef, 0xd6, 0xe9, 0x87, - 0x01, 0x53, 0x3e, 0x1a, 0xda, 0x08, 0xd3, 0x2a, 0x20, 0xa8, 0x4d, 0x82, 0xcb, 0xc4, 0x8f, 0xd8, - 0x0a, 0x0b, 0x6a, 0x9b, 0x9f, 0x4a, 0x24, 0x14, 0xd4, 0x5d, 0x14, 0xe4, 0x99, 0xee, 0x3e, 0x68, - 0x2d, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7b, 0x39, 0x30, 0x72, 0x76, 0xb2, 0x2b, 0xef, 0x39, 0x01, - 0x52, 0xd0, 0x9d, 0xec, 0x0a, 0x7f, 0x4c, 0xb0, 0x31, 0x88, 0x85, 0x8f, 0xe4, 0x63, 0xc1, 0x5e, - 0xeb, 0x67, 0xe5, 0x48, 0x71, 0xa5, 0xbc, 0xf3, 0xb0, 0xfc, 0x5e, 0x3f, 0x68, 0x2f, 0xc0, 0x1e, - 0x55, 0x3c, 0x61, 0x75, 0xad, 0xbe, 0x49, 0xea, 0xdf, 0x30, 0x52, 0xb2, 0x09, 0xf8, 0x22, 0xe9, - 0x9d, 0x30, 0xe4, 0x7c, 0x48, 0xb0, 0x15, 0xd9, 0xef, 0x1b, 0xad, 0xa1, 0x9a, 0xdd, 0x4f, 0x1b, - 0xad, 0xf7, 0x72, 0x76, 0x78, 0x29, 0xa9, 0xfb, 0x41, 0xa3, 0x7b, 0xa8, 0x3a, 0xf6, 0x2d, 0xa3, - 0xfb, 0x03, 0x48, 0xe5, 0xea, 0xf3, 0xe8, 0xcd, 0x7d, 0x3e, 0x9f, 0xb1, 0x22, 0x1d, 0x7f, 0xcf, - 0xbf, 0x42, 0xcb, 0xe7, 0x93, 0xe6, 0xcf, 0xc6, 0xe8, 0x0d, 0x4a, 0x6c, 0x2f, 0x01, 0xee, 0xb0, - 0xb3, 0xe5, 0x7c, 0x26, 0x62, 0x01, 0x2e, 0x01, 0xca, 0xbf, 0x4f, 0x1a, 0x01, 0x71, 0x09, 0xd0, - 0x03, 0x80, 0xbd, 0x93, 0x8a, 0x31, 0xd4, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0xcd, 0x22, 0x8c, - 0xbd, 0x26, 0x51, 0x87, 0x97, 0xf6, 0xac, 0x8e, 0x94, 0x12, 0x59, 0x44, 0x97, 0xb2, 0xc1, 0xdd, - 0x56, 0x5f, 0x7e, 0x5f, 0x66, 0xb9, 0x58, 0xc4, 0xd5, 0x0a, 0x04, 0xb7, 0xaa, 0xa5, 0x03, 0x10, - 0xc1, 0x8d, 0x82, 0x76, 0xd4, 0xea, 0x66, 0x4e, 0x2e, 0x77, 0x79, 0xc5, 0x97, 0x22, 0x2b, 0x18, - 0xfc, 0xc6, 0x88, 0x69, 0x50, 0x97, 0x21, 0x46, 0x2d, 0xc5, 0xda, 0x2c, 0x57, 0x12, 0xed, 0x7d, - 0x42, 0xf9, 0x99, 0xf4, 0x5a, 0xf0, 0x0a, 0x3e, 0x4f, 0x6c, 0xad, 0x40, 0x88, 0xc8, 0x72, 0x49, - 0x18, 0xf4, 0xfd, 0x51, 0x56, 0xcc, 0xd1, 0xbe, 0x3f, 0x72, 0xbf, 0xf3, 0x7b, 0x8b, 0x06, 0xec, - 0x80, 0x6a, 0x1b, 0xad, 0x1d, 0x00, 0xea, 0xad, 0x5d, 0xb4, 0xd1, 0x5d, 0x82, 0x18, 0x50, 0x38, - 0x09, 0x5c, 0x7d, 0x51, 0xb2, 0x82, 0xa5, 0xfa, 0xd6, 0x1c, 0xe6, 0xca, 0x23, 0x82, 0xae, 0x20, - 0x69, 0xe7, 0x22, 0x29, 0x3f, 0x5e, 0x16, 0x47, 0x15, 0x3f, 0xcf, 0x72, 0x56, 0x81, 0xb9, 0xa8, - 0x55, 0x77, 0xe4, 0xc4, 0x5c, 0x84, 0x71, 0xf6, 0xfa, 0x85, 0x94, 0x7a, 0xdf, 0xfa, 0x3f, 0xa9, - 0xe2, 0x04, 0x5e, 0xbf, 0x68, 0x6d, 0x74, 0x31, 0xe2, 0x64, 0x30, 0x80, 0x3b, 0x89, 0x4e, 0xeb, - 0xba, 0x58, 0xc9, 0xf8, 0x50, 0x6f, 0x8d, 0xca, 0xaf, 0xdf, 0xd6, 0x20, 0xd1, 0x51, 0xe6, 0x30, - 0x92, 0x48, 0x74, 0xc2, 0x1a, 0x76, 0x29, 0x91, 0xdc, 0xa1, 0xba, 0x56, 0x04, 0x96, 0x92, 0xd6, - 0x86, 0x16, 0x12, 0x4b, 0x49, 0x07, 0x02, 0x13, 0x92, 0x1e, 0x06, 0x73, 0x74, 0x42, 0x32, 0xd2, - 0xe0, 0x84, 0xe4, 0x52, 0x76, 0xa2, 0xd8, 0x2b, 0x32, 0x91, 0xc5, 0xf9, 0x8c, 0x89, 0xa3, 0xb8, - 0x8a, 0x17, 0x4c, 0xb0, 0x0a, 0x4e, 0x14, 0x0a, 0x99, 0x78, 0x0c, 0x31, 0x51, 0x50, 0xac, 0x72, - 0xf8, 0xdb, 0xd1, 0xdb, 0xcd, 0xba, 0xcf, 0x0a, 0xf5, 0xab, 0x3e, 0xcf, 0xe4, 0xcf, 0x81, 0x8d, - 0xdf, 0x31, 0x36, 0x66, 0xa2, 0x62, 0xf1, 0x42, 0xdb, 0x7e, 0xcb, 0xfc, 0x5d, 0x82, 0x8f, 0x46, - 0x4d, 0x3c, 0x1f, 0x72, 0x91, 0x9d, 0x37, 0xdb, 0x6c, 0xf5, 0x06, 0x11, 0x88, 0x67, 0x57, 0x3c, - 0x09, 0x7c, 0x75, 0x04, 0xe3, 0xec, 0x3c, 0xed, 0x4a, 0x8f, 0x59, 0x99, 0xc3, 0x79, 0xda, 0xd3, - 0x96, 0x00, 0x31, 0x4f, 0xa3, 0xa0, 0x1d, 0x9c, 0xae, 0xf8, 0x84, 0x85, 0x2b, 0x73, 0xc2, 0x86, - 0x55, 0xe6, 0xc4, 0x7b, 0x29, 0x23, 0x8f, 0xde, 0x3e, 0x60, 0x8b, 0x33, 0x56, 0xd5, 0x17, 0x59, - 0x49, 0x7d, 0xa1, 0xd7, 0x12, 0xbd, 0x5f, 0xe8, 0x25, 0x50, 0xbb, 0x12, 0x58, 0x60, 0xaf, 0x3e, - 0x8c, 0x17, 0x4c, 0x7e, 0x43, 0x05, 0xac, 0x04, 0x8e, 0x11, 0x07, 0x22, 0x56, 0x02, 0x12, 0x76, - 0xde, 0xef, 0xb2, 0xcc, 0x31, 0x9b, 0x37, 0x11, 0x56, 0x1d, 0xc5, 0xab, 0x05, 0x2b, 0x84, 0x32, - 0x09, 0xce, 0xe4, 0x1d, 0x93, 0x38, 0x4f, 0x9c, 0xc9, 0x0f, 0xd1, 0x73, 0xa6, 0x26, 0xaf, 0xe1, - 0x8f, 0x78, 0x25, 0xda, 0xdf, 0xec, 0x3a, 0xad, 0x72, 0x30, 0x35, 0xf9, 0x8d, 0xea, 0x91, 0xc4, - 0xd4, 0x14, 0xd6, 0x70, 0x7e, 0x6f, 0xc2, 0x2b, 0xc3, 0x0b, 0x56, 0x99, 0x38, 0x79, 0xb6, 0x88, - 0xb3, 0x5c, 0x45, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xf7, 0x26, 0x86, 0xea, 0x3a, 0xbf, - 0xd0, 0x11, 0x2e, 0x21, 0x78, 0x44, 0xd0, 0x63, 0x9f, 0x78, 0x44, 0xd0, 0xaf, 0x65, 0x77, 0xee, - 0x96, 0x95, 0xdc, 0x4a, 0x12, 0xdb, 0x3c, 0x85, 0xe7, 0x85, 0x8e, 0x4d, 0x00, 0x12, 0x3b, 0xf7, - 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xf6, 0x3c, 0x2b, 0xe2, 0x3c, 0xfb, 0x09, 0x4c, 0xeb, 0x1d, 0x3b, - 0x9a, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x32, 0x71, 0x92, 0x35, 0x53, 0xff, 0xbd, 0x40, - 0xbb, 0x49, 0xa2, 0xdf, 0x95, 0x43, 0x3a, 0x5f, 0xe3, 0x85, 0xcd, 0x3a, 0x2d, 0xcb, 0x59, 0xb3, - 0xaa, 0x1e, 0xb3, 0x84, 0x65, 0xa5, 0x18, 0x7f, 0x1c, 0x6e, 0x2b, 0x80, 0x13, 0x17, 0x2d, 0x06, - 0xa8, 0x39, 0x8f, 0xef, 0x9b, 0xb9, 0x64, 0xd6, 0xfe, 0x98, 0xe5, 0x69, 0xcd, 0x2a, 0x95, 0x68, - 0xec, 0x32, 0x01, 0x46, 0xa7, 0xc3, 0x4d, 0x1c, 0xb0, 0xa9, 0x28, 0x31, 0x3a, 0xc3, 0x1a, 0xf6, - 0xb0, 0xcf, 0xe1, 0xd4, 0xd7, 0xd5, 0xe5, 0x7d, 0xc3, 0x87, 0xa4, 0x31, 0x87, 0x22, 0x0e, 0xfb, - 0x68, 0xda, 0x66, 0x6b, 0x5d, 0xb7, 0xd3, 0x62, 0xb5, 0x07, 0xaf, 0x4c, 0x20, 0x96, 0x24, 0x46, - 0x64, 0x6b, 0x01, 0xdc, 0x39, 0x0c, 0xaf, 0x78, 0x9c, 0x26, 0x71, 0x2d, 0x8e, 0xe2, 0x55, 0xce, - 0xe3, 0x54, 0xae, 0xeb, 0xf0, 0x30, 0x5c, 0x33, 0x13, 0x17, 0xa2, 0x0e, 0xc3, 0x29, 0xd8, 0xcd, - 0xce, 0xe4, 0x6f, 0x74, 0xaa, 0xbb, 0x9c, 0x30, 0x3b, 0x93, 0xe5, 0x85, 0xf7, 0x38, 0xef, 0x84, - 0x21, 0xfb, 0x0e, 0x5a, 0x2b, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40, 0xde, 0x0f, 0x10, - 0xf6, 0x0b, 0x24, 0xed, 0xdf, 0xf5, 0xcf, 0x4c, 0x09, 0xf5, 0xcd, 0xf2, 0x87, 0x98, 0xae, 0x0b, - 0x4d, 0xdc, 0x0f, 0x59, 0x6c, 0x0e, 0xa4, 0x6d, 0x9a, 0xb9, 0x7d, 0x11, 0x8b, 0x69, 0x9a, 0x1e, - 0xb0, 0x1a, 0x79, 0xa1, 0xbc, 0x11, 0x4e, 0xac, 0x94, 0x48, 0x33, 0xbb, 0x94, 0x0d, 0xf4, 0x46, - 0xf6, 0x2c, 0xcd, 0x84, 0x92, 0xe9, 0x1b, 0xd2, 0x0f, 0xbb, 0x06, 0xba, 0x14, 0x51, 0x2b, 0x9a, - 0xb6, 0x73, 0x79, 0xc3, 0x9c, 0xf0, 0xf9, 0x3c, 0x67, 0x0a, 0x3a, 0x66, 0x71, 0xfb, 0xc9, 0xc6, - 0xad, 0xae, 0x2d, 0x14, 0x24, 0xe6, 0xf2, 0xa0, 0x82, 0x4d, 0x23, 0x1b, 0xac, 0x7d, 0x24, 0xa5, - 0x1b, 0x76, 0xbd, 0x6b, 0xc6, 0x03, 0x88, 0x34, 0x12, 0x05, 0xed, 0x7b, 0x6f, 0x8d, 0x78, 0x97, - 0xe9, 0x96, 0x80, 0x1f, 0x9b, 0x92, 0xca, 0x8e, 0x98, 0x78, 0xef, 0x0d, 0xc1, 0xec, 0x3e, 0x01, - 0x78, 0x78, 0xba, 0xda, 0x4b, 0xe1, 0x3e, 0x01, 0xea, 0x4b, 0x86, 0xd8, 0x27, 0x50, 0xac, 0xdf, - 0x75, 0xe6, 0xdc, 0x6b, 0x3f, 0xae, 0x6d, 0xe5, 0x90, 0xae, 0x43, 0xc1, 0x50, 0xd7, 0x51, 0x0a, - 0x7e, 0x93, 0xba, 0x47, 0x6b, 0x48, 0x93, 0x62, 0xe7, 0x6a, 0x6b, 0x7d, 0x98, 0x9d, 0x97, 0xcc, - 0x7e, 0x52, 0x5e, 0x59, 0xc2, 0x7f, 0xab, 0xa1, 0x15, 0x12, 0xf3, 0x52, 0x07, 0x6a, 0x6d, 0x3f, - 0x7d, 0xff, 0x3f, 0xbf, 0xba, 0x31, 0xfa, 0xd9, 0x57, 0x37, 0x46, 0xff, 0xf3, 0xd5, 0x8d, 0xd1, - 0x4f, 0xbf, 0xbe, 0xf1, 0xc6, 0xcf, 0xbe, 0xbe, 0xf1, 0xc6, 0x7f, 0x7f, 0x7d, 0xe3, 0x8d, 0x2f, - 0xdf, 0x54, 0xbf, 0xdd, 0x7c, 0xf6, 0x73, 0xf2, 0x17, 0x98, 0x9f, 0xfc, 0x5f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x95, 0x51, 0xdf, 0xf9, 0xdf, 0x79, 0x00, 0x00, + // 5514 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x24, 0x49, + 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0x99, 0x9d, + 0x9d, 0xb1, 0x3d, 0x63, 0xbb, 0x3d, 0x3b, 0xb3, 0xff, 0xb8, 0x43, 0x82, 0x1e, 0x7b, 0xec, 0xf5, + 0x9d, 0xed, 0x35, 0xee, 0xf6, 0x8c, 0xb4, 0x12, 0x12, 0xe5, 0xaa, 0x74, 0xbb, 0x70, 0x75, 0x65, + 0x5d, 0x55, 0x76, 0x7b, 0xfa, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x9c, 0xf8, 0x27, 0x78, 0x42, + 0x42, 0x7c, 0x00, 0x3e, 0x06, 0x8f, 0xf7, 0xc8, 0x23, 0xda, 0xfd, 0x0a, 0x7c, 0x00, 0x54, 0xf9, + 0x3f, 0xa3, 0x32, 0xb2, 0xca, 0xcb, 0xd3, 0x8c, 0x1c, 0xbf, 0x88, 0xc8, 0xac, 0x8c, 0xcc, 0x8c, + 0xcc, 0xca, 0xca, 0x8e, 0xee, 0x96, 0x17, 0x3b, 0x65, 0x45, 0x19, 0xad, 0x77, 0x6a, 0x52, 0x2d, + 0xb3, 0x84, 0xa8, 0x7f, 0x47, 0xfc, 0xcf, 0xc3, 0x37, 0xe3, 0x62, 0xc5, 0x56, 0x25, 0x79, 0xef, + 0x5d, 0x43, 0x26, 0x74, 0x3e, 0x8f, 0x8b, 0xb4, 0x16, 0xc8, 0x7b, 0xef, 0x18, 0x09, 0x59, 0x92, + 0x82, 0xc9, 0xbf, 0x3f, 0xfd, 0x8f, 0xff, 0x1d, 0x44, 0x6f, 0xed, 0xe6, 0x19, 0x29, 0xd8, 0xae, + 0xd4, 0x18, 0x7e, 0x19, 0x7d, 0x7b, 0x5c, 0x96, 0x07, 0x84, 0xbd, 0x24, 0x55, 0x9d, 0xd1, 0x62, + 0xf8, 0xc1, 0x48, 0x3a, 0x18, 0x9d, 0x95, 0xc9, 0x68, 0x5c, 0x96, 0x23, 0x23, 0x1c, 0x9d, 0x91, + 0x1f, 0x2f, 0x48, 0xcd, 0xde, 0x7b, 0x10, 0x86, 0xea, 0x92, 0x16, 0x35, 0x19, 0x5e, 0x46, 0xbf, + 0x32, 0x2e, 0xcb, 0x09, 0x61, 0x7b, 0xa4, 0xa9, 0xc0, 0x84, 0xc5, 0x8c, 0x0c, 0xd7, 0x5b, 0xaa, + 0x2e, 0xa0, 0x7d, 0x6c, 0x74, 0x83, 0xd2, 0xcf, 0x34, 0xfa, 0x56, 0xe3, 0xe7, 0x6a, 0xc1, 0x52, + 0x7a, 0x53, 0x0c, 0xdf, 0x6f, 0x2b, 0x4a, 0x91, 0xb6, 0x7d, 0x3f, 0x84, 0x48, 0xab, 0xaf, 0xa2, + 0x5f, 0x7c, 0x15, 0xe7, 0x39, 0x61, 0xbb, 0x15, 0x69, 0x0a, 0xee, 0xea, 0x08, 0xd1, 0x48, 0xc8, + 0xb4, 0xdd, 0x0f, 0x82, 0x8c, 0x34, 0xfc, 0x65, 0xf4, 0x6d, 0x21, 0x39, 0x23, 0x09, 0x5d, 0x92, + 0x6a, 0xe8, 0xd5, 0x92, 0x42, 0xe4, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x97, 0x16, 0x4b, 0x52, 0x31, + 0xbf, 0x6d, 0x29, 0x0c, 0xdb, 0x36, 0x90, 0xb4, 0xfd, 0x57, 0x83, 0xe8, 0xbb, 0xe3, 0x24, 0xa1, + 0x8b, 0x82, 0x1d, 0xd1, 0x24, 0xce, 0x8f, 0xb2, 0xe2, 0xfa, 0x84, 0xdc, 0xec, 0x5e, 0x35, 0x7c, + 0x31, 0x23, 0xc3, 0x67, 0xee, 0x53, 0x15, 0xe8, 0x48, 0xb3, 0x23, 0x1b, 0xd6, 0xbe, 0x3f, 0xba, + 0x9d, 0x92, 0x2c, 0xcb, 0xdf, 0x0d, 0xa2, 0x3b, 0xb0, 0x2c, 0x13, 0x9a, 0x2f, 0x89, 0x29, 0xcd, + 0xc7, 0x1d, 0x86, 0x5d, 0x5c, 0x97, 0xe7, 0x93, 0xdb, 0xaa, 0xc9, 0x12, 0xe5, 0xd1, 0xdb, 0x76, + 0xb8, 0x4c, 0x48, 0xcd, 0xbb, 0xd3, 0x23, 0x3c, 0x22, 0x24, 0xa2, 0x3d, 0x3f, 0xee, 0x83, 0x4a, + 0x6f, 0x59, 0x34, 0x94, 0xde, 0x72, 0x5a, 0x6b, 0x67, 0x1b, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, + 0xea, 0x41, 0x4a, 0x57, 0xbf, 0x1f, 0xfd, 0xd2, 0x2b, 0x5a, 0x5d, 0xd7, 0x65, 0x9c, 0x10, 0xd9, + 0x15, 0x1e, 0xba, 0xda, 0x4a, 0x0a, 0x7b, 0xc3, 0x5a, 0x17, 0x66, 0x05, 0xad, 0x12, 0x7e, 0x51, + 0x12, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x88, 0x05, 0x2d, 0x84, 0xa4, 0xed, 0xeb, 0x68, 0x68, 0x6c, + 0x5f, 0xfc, 0x01, 0x49, 0xd8, 0x38, 0x4d, 0x61, 0xab, 0x18, 0x5d, 0x4e, 0x8c, 0xc6, 0x69, 0x8a, + 0xb5, 0x8a, 0x1f, 0x95, 0xce, 0x6e, 0xa2, 0x77, 0x80, 0xb3, 0xa3, 0xac, 0xe6, 0x0e, 0xb7, 0xc3, + 0x56, 0x24, 0xa6, 0x9d, 0x8e, 0xfa, 0xe2, 0xd2, 0xf1, 0x9f, 0x0c, 0xa2, 0xef, 0x78, 0x3c, 0x9f, + 0x91, 0x39, 0x5d, 0x92, 0xe1, 0x93, 0x6e, 0x6b, 0x82, 0xd4, 0xfe, 0x3f, 0xbc, 0x85, 0x86, 0x27, + 0x4c, 0x26, 0x24, 0x27, 0x09, 0x43, 0xc3, 0x44, 0x88, 0x3b, 0xc3, 0x44, 0x63, 0x56, 0x0f, 0x53, + 0xc2, 0x03, 0xc2, 0x76, 0x17, 0x55, 0x45, 0x0a, 0x86, 0xb6, 0xa5, 0x41, 0x3a, 0xdb, 0xd2, 0x41, + 0x3d, 0xf5, 0x39, 0x20, 0x6c, 0x9c, 0xe7, 0x68, 0x7d, 0x84, 0xb8, 0xb3, 0x3e, 0x1a, 0x93, 0x1e, + 0x92, 0xe8, 0x97, 0xad, 0x27, 0xc6, 0x0e, 0x8b, 0x4b, 0x3a, 0xc4, 0x9f, 0x05, 0x97, 0x6b, 0x1f, + 0xeb, 0x9d, 0x9c, 0xa7, 0x1a, 0x2f, 0x5e, 0x97, 0xb4, 0xc2, 0x9b, 0x45, 0x88, 0x3b, 0xab, 0xa1, + 0x31, 0xe9, 0xe1, 0xf7, 0xa2, 0xb7, 0xe4, 0x28, 0xa9, 0xe6, 0xb3, 0x07, 0xde, 0x21, 0x14, 0x4e, + 0x68, 0x0f, 0x3b, 0xa8, 0x96, 0xf9, 0xe3, 0x6c, 0x56, 0x35, 0xa3, 0x8f, 0xdf, 0xbc, 0x94, 0x76, + 0x98, 0x37, 0x94, 0x34, 0x4f, 0xa3, 0x5f, 0x75, 0xcd, 0xef, 0xc6, 0x45, 0x42, 0xf2, 0xe1, 0xe3, + 0x90, 0xba, 0x60, 0xb4, 0xab, 0xcd, 0x5e, 0xac, 0x19, 0xec, 0x24, 0x21, 0x07, 0xd3, 0x0f, 0xbc, + 0xda, 0x60, 0x28, 0x7d, 0x10, 0x86, 0x5a, 0xb6, 0xf7, 0x48, 0x4e, 0x50, 0xdb, 0x42, 0xd8, 0x61, + 0x5b, 0x43, 0xd2, 0x76, 0x15, 0xfd, 0x9a, 0x6e, 0xe6, 0x26, 0x2f, 0xe0, 0xf2, 0x66, 0xd2, 0xd9, + 0x44, 0xda, 0xd1, 0x86, 0xb4, 0xaf, 0xad, 0x7e, 0x70, 0xab, 0x3e, 0x72, 0x44, 0xf1, 0xd7, 0x07, + 0x8c, 0x27, 0x0f, 0xc2, 0x90, 0xb4, 0xfd, 0xd7, 0x83, 0xe8, 0x7b, 0x52, 0xf6, 0xa2, 0x88, 0x2f, + 0x72, 0xc2, 0xa7, 0xf8, 0x13, 0xc2, 0x6e, 0x68, 0x75, 0x3d, 0x59, 0x15, 0x09, 0x92, 0xce, 0xf8, + 0xe1, 0x8e, 0x74, 0x06, 0x55, 0x92, 0x85, 0xf9, 0xc3, 0xe8, 0x5d, 0x15, 0x14, 0x57, 0x71, 0x31, + 0x23, 0x3f, 0xac, 0x69, 0x31, 0x2e, 0xb3, 0x71, 0x9a, 0x56, 0xc3, 0x91, 0xbf, 0xe9, 0x21, 0xa7, + 0x4b, 0xb0, 0xd3, 0x9b, 0xb7, 0xd2, 0x67, 0xf9, 0x94, 0x19, 0x2d, 0x61, 0xfa, 0xac, 0x1e, 0x1f, + 0xa3, 0x25, 0x96, 0x3e, 0xbb, 0x48, 0xcb, 0xea, 0x71, 0x33, 0x07, 0xf9, 0xad, 0x1e, 0xdb, 0x93, + 0xce, 0xfd, 0x10, 0x62, 0xe6, 0x00, 0xf5, 0xa0, 0x68, 0x71, 0x99, 0xcd, 0xce, 0xcb, 0xb4, 0xe9, + 0x43, 0x8f, 0xfc, 0x75, 0xb6, 0x10, 0x64, 0x0e, 0x40, 0x50, 0xe9, 0xed, 0x6f, 0x4d, 0x96, 0x29, + 0xc7, 0xa5, 0xfd, 0x8a, 0xce, 0x8f, 0xc8, 0x2c, 0x4e, 0x56, 0x72, 0x30, 0xfd, 0x28, 0x34, 0x8a, + 0x41, 0x5a, 0x17, 0xe2, 0xe3, 0x5b, 0x6a, 0xc9, 0xf2, 0xfc, 0xdb, 0x20, 0x7a, 0xe0, 0xc4, 0x89, + 0x0c, 0x26, 0x51, 0xfa, 0x71, 0x91, 0x9e, 0x91, 0x9a, 0xc5, 0x15, 0x1b, 0x7e, 0x3f, 0x10, 0x03, + 0x88, 0x8e, 0x2e, 0xdb, 0x0f, 0xbe, 0x91, 0xae, 0x69, 0xf5, 0x49, 0x33, 0x4b, 0xc8, 0xf1, 0xc7, + 0x6d, 0x75, 0x2e, 0x81, 0xa3, 0xcf, 0xfd, 0x10, 0x62, 0x5a, 0x9d, 0x0b, 0x0e, 0x8b, 0x65, 0xc6, + 0xc8, 0x01, 0x29, 0x48, 0xd5, 0x6e, 0x75, 0xa1, 0xea, 0x22, 0x48, 0xab, 0x23, 0xa8, 0x19, 0xe9, + 0x1c, 0x6f, 0x3a, 0xd3, 0xd8, 0x0c, 0x18, 0x69, 0xe5, 0x1a, 0x5b, 0xfd, 0x60, 0xb3, 0x54, 0xb6, + 0x7c, 0x9e, 0x91, 0x25, 0xbd, 0x86, 0x4b, 0x65, 0xdb, 0x84, 0x00, 0x90, 0xa5, 0xb2, 0x17, 0x34, + 0xe9, 0x80, 0xe5, 0xe7, 0x65, 0x46, 0x6e, 0x40, 0x3a, 0x60, 0x2b, 0x37, 0x62, 0x24, 0x1d, 0xf0, + 0x60, 0xd2, 0xc3, 0x49, 0xf4, 0x0b, 0x5c, 0xf8, 0x43, 0x9a, 0x15, 0xc3, 0xbb, 0x1e, 0xa5, 0x46, + 0xa0, 0xad, 0xde, 0xc3, 0x01, 0x50, 0xe2, 0xe6, 0xaf, 0x72, 0x6e, 0x7e, 0x88, 0x28, 0x81, 0x69, + 0x79, 0xad, 0x0b, 0x33, 0x79, 0x18, 0x17, 0x36, 0xe3, 0xd7, 0xe4, 0x2a, 0xae, 0xb2, 0x62, 0x36, + 0xf4, 0xe9, 0x5a, 0x72, 0x24, 0x0f, 0xf3, 0x71, 0x20, 0x84, 0xa5, 0xe2, 0xb8, 0x2c, 0xab, 0x66, + 0x58, 0xf4, 0x85, 0xb0, 0x8b, 0x04, 0x43, 0xb8, 0x85, 0xfa, 0xbd, 0xed, 0x91, 0x24, 0xcf, 0x8a, + 0xa0, 0x37, 0x89, 0xf4, 0xf1, 0x66, 0x50, 0x10, 0xbc, 0x47, 0x24, 0x5e, 0x12, 0x55, 0x33, 0xdf, + 0x93, 0xb1, 0x81, 0x60, 0xf0, 0x02, 0xd0, 0x2c, 0x7a, 0xb9, 0xf8, 0x38, 0xbe, 0x26, 0xcd, 0x03, + 0x26, 0xcd, 0xa4, 0x3a, 0xf4, 0xe9, 0x3b, 0x04, 0xb2, 0xe8, 0xf5, 0x93, 0xd2, 0xd5, 0x22, 0x7a, + 0x87, 0xcb, 0x4f, 0xe3, 0x8a, 0x65, 0x49, 0x56, 0xc6, 0x85, 0x5a, 0x4c, 0xf9, 0xfa, 0x75, 0x8b, + 0xd2, 0x2e, 0xb7, 0x7b, 0xd2, 0xd2, 0xed, 0x3f, 0x0f, 0xa2, 0xf7, 0xa1, 0xdf, 0x53, 0x52, 0xcd, + 0x33, 0xbe, 0x26, 0xaf, 0xc5, 0x20, 0x3c, 0xfc, 0x34, 0x6c, 0xb4, 0xa5, 0xa0, 0x4b, 0xf3, 0xd9, + 0xed, 0x15, 0x4d, 0x26, 0x36, 0x91, 0xeb, 0x94, 0x2f, 0xaa, 0xb4, 0xb5, 0x67, 0x35, 0x51, 0x8b, + 0x0f, 0x2e, 0x44, 0x32, 0xb1, 0x16, 0x04, 0x7a, 0xf8, 0x79, 0x51, 0x2b, 0xeb, 0xbe, 0x1e, 0x6e, + 0xc4, 0xc1, 0x1e, 0xee, 0x60, 0xa6, 0x87, 0x9f, 0x2e, 0x2e, 0xf2, 0xac, 0xbe, 0xca, 0x8a, 0x99, + 0x4c, 0xbb, 0x5d, 0x5d, 0x23, 0x86, 0x99, 0xf7, 0x7a, 0x27, 0xe7, 0x73, 0x22, 0x83, 0x05, 0x75, + 0x02, 0xc2, 0x64, 0xbd, 0x93, 0x33, 0xab, 0x21, 0x23, 0x6d, 0x96, 0xe1, 0x60, 0x35, 0x64, 0xa9, + 0x36, 0x52, 0x64, 0x35, 0xd4, 0xa6, 0xcc, 0x6a, 0xc8, 0xae, 0x43, 0x4d, 0xf3, 0x25, 0x39, 0xaf, + 0x32, 0xb0, 0x1a, 0x72, 0xca, 0xa7, 0x18, 0x64, 0x35, 0x84, 0xb1, 0x66, 0xa0, 0x32, 0xc4, 0x01, + 0x61, 0x13, 0x16, 0xb3, 0x45, 0x0d, 0x06, 0x2a, 0xcb, 0x86, 0x46, 0x90, 0x81, 0x0a, 0x41, 0xa5, + 0xb7, 0xdf, 0x8d, 0x22, 0xb1, 0x83, 0xc1, 0x77, 0x99, 0xdc, 0xb9, 0x47, 0x6e, 0x6d, 0x38, 0x5b, + 0x4c, 0xef, 0x07, 0x08, 0x93, 0xf0, 0x88, 0xbf, 0xf3, 0xcd, 0xb3, 0xa1, 0x57, 0x83, 0x8b, 0x90, + 0x84, 0x07, 0x20, 0xb0, 0xa0, 0x93, 0x2b, 0x7a, 0xe3, 0x2f, 0x68, 0x23, 0x09, 0x17, 0x54, 0x12, + 0x66, 0x3b, 0x5b, 0x16, 0xd4, 0xb7, 0x9d, 0xad, 0x8a, 0x11, 0xda, 0xce, 0x86, 0x8c, 0x89, 0x19, + 0xdb, 0xf0, 0x73, 0x4a, 0xaf, 0xe7, 0x71, 0x75, 0x0d, 0x62, 0xc6, 0x51, 0x56, 0x0c, 0x12, 0x33, + 0x18, 0x6b, 0x62, 0xc6, 0x76, 0xd8, 0xa4, 0xcb, 0xe7, 0x55, 0x0e, 0x62, 0xc6, 0xb1, 0x21, 0x11, + 0x24, 0x66, 0x10, 0xd4, 0x8c, 0x4e, 0xb6, 0xb7, 0x09, 0x81, 0x1b, 0x28, 0x8e, 0xfa, 0x84, 0x60, + 0x1b, 0x28, 0x1e, 0x0c, 0x86, 0xd0, 0x41, 0x15, 0x97, 0x57, 0xfe, 0x10, 0xe2, 0xa2, 0x70, 0x08, + 0x29, 0x04, 0xb6, 0xf7, 0x84, 0xc4, 0x55, 0x72, 0xe5, 0x6f, 0x6f, 0x21, 0x0b, 0xb7, 0xb7, 0x66, + 0x60, 0x7b, 0x0b, 0xc1, 0xab, 0x8c, 0x5d, 0x1d, 0x13, 0x16, 0xfb, 0xdb, 0xdb, 0x65, 0xc2, 0xed, + 0xdd, 0x62, 0x4d, 0x3e, 0x6e, 0x3b, 0x9c, 0x2c, 0x2e, 0xea, 0xa4, 0xca, 0x2e, 0xc8, 0x30, 0x60, + 0x45, 0x43, 0x48, 0x3e, 0x8e, 0xc2, 0xd2, 0xe7, 0x4f, 0x07, 0xd1, 0x5d, 0xd5, 0xec, 0xb4, 0xae, + 0xe5, 0xdc, 0xe7, 0xba, 0xff, 0xd8, 0xdf, 0xbe, 0x08, 0x8e, 0xbc, 0x60, 0xe8, 0xa1, 0x66, 0xe5, + 0x06, 0xfe, 0x22, 0x9d, 0x17, 0xb5, 0x2e, 0xd4, 0xa7, 0x7d, 0xac, 0x5b, 0x0a, 0x48, 0x6e, 0xd0, + 0x4b, 0xd1, 0xa4, 0x65, 0xb2, 0x7d, 0x94, 0xec, 0x30, 0xad, 0x41, 0x5a, 0xa6, 0x9e, 0xb7, 0x45, + 0x20, 0x69, 0x99, 0x9f, 0x84, 0xa1, 0x70, 0x50, 0xd1, 0x45, 0x59, 0x77, 0x84, 0x02, 0x80, 0xc2, + 0xa1, 0xd0, 0x86, 0xa5, 0xcf, 0xd7, 0xd1, 0xaf, 0xdb, 0xe1, 0x67, 0x3f, 0xec, 0x6d, 0x3c, 0xa6, + 0x7c, 0x8f, 0x78, 0xd4, 0x17, 0x37, 0x19, 0x85, 0xf2, 0xcc, 0xf6, 0x08, 0x8b, 0xb3, 0xbc, 0x1e, + 0xae, 0xf9, 0x6d, 0x28, 0x39, 0x92, 0x51, 0xf8, 0x38, 0x38, 0xbe, 0xed, 0x2d, 0xca, 0x3c, 0x4b, + 0xda, 0xaf, 0x77, 0xa4, 0xae, 0x16, 0x87, 0xc7, 0x37, 0x1b, 0x83, 0xe3, 0x75, 0x93, 0xfa, 0xf1, + 0xff, 0x4c, 0x57, 0x25, 0xf1, 0x8f, 0xd7, 0x0e, 0x12, 0x1e, 0xaf, 0x21, 0x0a, 0xeb, 0x33, 0x21, + 0xec, 0x28, 0x5e, 0xd1, 0x05, 0x32, 0x5e, 0x6b, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0xd6, 0x06, 0xda, + 0xc3, 0x61, 0xc1, 0x48, 0x55, 0xc4, 0xf9, 0x7e, 0x1e, 0xcf, 0xea, 0x21, 0x32, 0xc6, 0xb8, 0x14, + 0xb2, 0x36, 0xc0, 0x69, 0xcf, 0x63, 0x3c, 0xac, 0xf7, 0xe3, 0x25, 0xad, 0x32, 0x86, 0x3f, 0x46, + 0x83, 0x74, 0x3e, 0x46, 0x07, 0xf5, 0x7a, 0x1b, 0x57, 0xc9, 0x55, 0xb6, 0x24, 0x69, 0xc0, 0x9b, + 0x42, 0x7a, 0x78, 0xb3, 0x50, 0x4f, 0xa3, 0x4d, 0xe8, 0xa2, 0x4a, 0x08, 0xda, 0x68, 0x42, 0xdc, + 0xd9, 0x68, 0x1a, 0x93, 0x1e, 0xfe, 0x7c, 0x10, 0xfd, 0x86, 0x90, 0xda, 0xef, 0x5c, 0xf6, 0xe2, + 0xfa, 0xea, 0x82, 0xc6, 0x55, 0x3a, 0xfc, 0xd0, 0x67, 0xc7, 0x8b, 0x6a, 0xd7, 0x4f, 0x6f, 0xa3, + 0x02, 0x1f, 0x6b, 0x93, 0x77, 0x9b, 0x1e, 0xe7, 0x7d, 0xac, 0x0e, 0x12, 0x7e, 0xac, 0x10, 0x85, + 0x03, 0x08, 0x97, 0x8b, 0x2d, 0xb9, 0x35, 0x54, 0xdf, 0xdd, 0x97, 0x5b, 0xef, 0xe4, 0xe0, 0xf8, + 0xd8, 0x08, 0xdd, 0x68, 0xd9, 0xc6, 0x6c, 0xf8, 0x23, 0x66, 0xd4, 0x17, 0x47, 0x3d, 0xeb, 0x5e, + 0x11, 0xf6, 0xdc, 0xea, 0x19, 0xa3, 0xbe, 0x38, 0xe2, 0xd9, 0x1a, 0xd6, 0x42, 0x9e, 0x3d, 0x43, + 0xdb, 0xa8, 0x2f, 0x0e, 0xb3, 0x2f, 0xc9, 0xa8, 0x79, 0xe1, 0x71, 0xc0, 0x0e, 0x9c, 0x1b, 0x36, + 0x7b, 0xb1, 0xd2, 0xe1, 0x5f, 0x0e, 0xa2, 0xef, 0x1a, 0x8f, 0xc7, 0x34, 0xcd, 0x2e, 0x57, 0x02, + 0x7a, 0x19, 0xe7, 0x0b, 0x52, 0x0f, 0x9f, 0x62, 0xd6, 0xda, 0xac, 0x2e, 0xc1, 0xb3, 0x5b, 0xe9, + 0xc0, 0xbe, 0x33, 0x2e, 0xcb, 0x7c, 0x35, 0x25, 0xf3, 0x32, 0x47, 0xfb, 0x8e, 0x83, 0x84, 0xfb, + 0x0e, 0x44, 0x61, 0x56, 0x3e, 0xa5, 0x4d, 0xce, 0xef, 0xcd, 0xca, 0xb9, 0x28, 0x9c, 0x95, 0x2b, + 0x04, 0xe6, 0x4a, 0x53, 0xba, 0x4b, 0xf3, 0x9c, 0x24, 0xac, 0x7d, 0x6e, 0x43, 0x6b, 0x1a, 0x22, + 0x9c, 0x2b, 0x01, 0xd2, 0xec, 0xca, 0xa9, 0x35, 0x64, 0x5c, 0x91, 0xe7, 0xab, 0xa3, 0xac, 0xb8, + 0x1e, 0xfa, 0xd3, 0x02, 0x03, 0x20, 0xbb, 0x72, 0x5e, 0x10, 0xae, 0x55, 0xcf, 0x8b, 0x94, 0xfa, + 0xd7, 0xaa, 0x8d, 0x24, 0xbc, 0x56, 0x95, 0x04, 0x34, 0x79, 0x46, 0x30, 0x93, 0x8d, 0x24, 0x6c, + 0x52, 0x12, 0xbe, 0xa1, 0x50, 0xbe, 0xbb, 0x41, 0x87, 0x42, 0xf0, 0xb6, 0x66, 0xbd, 0x93, 0x83, + 0x11, 0xaa, 0x16, 0xad, 0xfb, 0x84, 0x25, 0x57, 0xfe, 0x08, 0x75, 0x90, 0x70, 0x84, 0x42, 0x14, + 0x56, 0x69, 0x4a, 0xf5, 0xa2, 0x7b, 0xcd, 0x1f, 0x1f, 0xad, 0x05, 0xf7, 0x7a, 0x27, 0x07, 0x97, + 0x91, 0x87, 0x73, 0xfe, 0xcc, 0xbc, 0x41, 0x2e, 0x64, 0xe1, 0x65, 0xa4, 0x66, 0x60, 0xe9, 0x85, + 0x80, 0xef, 0x65, 0xad, 0xe1, 0x8a, 0xce, 0x6e, 0xd6, 0x7a, 0x27, 0x27, 0x9d, 0xfc, 0xa3, 0x5e, + 0xc6, 0x09, 0xe9, 0x09, 0x6d, 0xfa, 0xc8, 0xcb, 0x38, 0xcf, 0xd2, 0x98, 0x91, 0x29, 0xbd, 0x26, + 0x85, 0x7f, 0xc5, 0x24, 0x4b, 0x2b, 0xf8, 0x91, 0xa3, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, + 0x08, 0xfa, 0xbc, 0x26, 0xbb, 0x71, 0x8d, 0x8c, 0x64, 0x0e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, + 0x55, 0xc8, 0x5f, 0xbc, 0x2e, 0x49, 0x95, 0x91, 0x22, 0x21, 0xfe, 0x7c, 0x15, 0x52, 0xe1, 0x7c, + 0xd5, 0x43, 0xc3, 0xb5, 0xda, 0x5e, 0xcc, 0xc8, 0xf3, 0xd5, 0x34, 0x9b, 0x93, 0x9a, 0xc5, 0xf3, + 0xd2, 0xbf, 0x56, 0x03, 0x50, 0x78, 0xad, 0xd6, 0x86, 0x5b, 0x5b, 0x43, 0x7a, 0x40, 0x6c, 0x1f, + 0xf7, 0x82, 0x44, 0xe0, 0xb8, 0x17, 0x82, 0xc2, 0x07, 0x6b, 0x00, 0xef, 0x4b, 0x82, 0x96, 0x95, + 0xe0, 0x4b, 0x02, 0x9c, 0x6e, 0x6d, 0xb8, 0x69, 0x66, 0xd2, 0x74, 0xcd, 0x8e, 0xa2, 0x4f, 0xec, + 0x2e, 0xba, 0xd9, 0x8b, 0xf5, 0xef, 0xf0, 0x9d, 0x91, 0x3c, 0xe6, 0xd3, 0x56, 0x60, 0x1b, 0x4d, + 0x31, 0x7d, 0x76, 0xf8, 0x2c, 0x56, 0x3a, 0xfc, 0xd3, 0x41, 0xf4, 0x9e, 0xcf, 0xe3, 0x17, 0x25, + 0xf7, 0xfb, 0xa4, 0xdb, 0x96, 0x20, 0x91, 0xf3, 0x6c, 0x61, 0x0d, 0x73, 0x24, 0x43, 0x89, 0xcc, + 0x71, 0x37, 0x59, 0x00, 0x37, 0x69, 0xd3, 0xe5, 0x87, 0x1c, 0x72, 0x24, 0x23, 0xc4, 0x9b, 0xf5, + 0x90, 0x5b, 0xae, 0x1a, 0xac, 0x87, 0xb4, 0x0d, 0x29, 0x46, 0xd6, 0x43, 0x1e, 0xcc, 0xf4, 0x4e, + 0xbb, 0x7a, 0xaf, 0x32, 0x76, 0xc5, 0xf3, 0x2d, 0xd0, 0x3b, 0x9d, 0xb2, 0x6a, 0x08, 0xe9, 0x9d, + 0x28, 0x0c, 0x33, 0x12, 0x05, 0x36, 0x7d, 0xd3, 0x37, 0x96, 0x6b, 0x43, 0x76, 0xcf, 0xdc, 0xe8, + 0x06, 0x61, 0xbc, 0x2a, 0xb1, 0x5c, 0xfa, 0x3c, 0x0e, 0x59, 0x00, 0xcb, 0x9f, 0xcd, 0x5e, 0xac, + 0x74, 0xf8, 0xc7, 0xd1, 0x77, 0x5a, 0x15, 0xdb, 0x27, 0x31, 0x5b, 0x54, 0x24, 0x1d, 0xee, 0x74, + 0x94, 0x5b, 0x81, 0xda, 0xf5, 0x93, 0xfe, 0x0a, 0xad, 0x1c, 0x5d, 0x71, 0x22, 0xac, 0x74, 0x19, + 0x9e, 0x86, 0x4c, 0xba, 0x6c, 0x30, 0x47, 0xc7, 0x75, 0x5a, 0xcb, 0x6c, 0x3b, 0xba, 0xc6, 0xcb, + 0x38, 0xcb, 0xf9, 0xcb, 0xda, 0x0f, 0x43, 0x46, 0x1d, 0x34, 0xb8, 0xcc, 0x46, 0x55, 0x5a, 0x23, + 0x33, 0xef, 0xe3, 0xd6, 0xf2, 0x6c, 0x0b, 0x1f, 0x09, 0x3c, 0xab, 0xb3, 0xed, 0x9e, 0xb4, 0x74, + 0xcb, 0xd4, 0x94, 0xd7, 0xfc, 0xd9, 0x0e, 0x72, 0x9f, 0x57, 0xa9, 0xea, 0x89, 0xf4, 0xed, 0x9e, + 0xb4, 0xf4, 0xfa, 0x47, 0xd1, 0xbb, 0x6d, 0xaf, 0x72, 0x22, 0xda, 0xe9, 0x34, 0x05, 0xe6, 0xa2, + 0x27, 0xfd, 0x15, 0xa4, 0xfb, 0x7f, 0xd1, 0xfb, 0xd2, 0xc2, 0x7f, 0x42, 0xe7, 0x73, 0x52, 0xa4, + 0x24, 0x55, 0x1a, 0x75, 0xb3, 0x7e, 0xfa, 0x0c, 0xb7, 0xab, 0x15, 0x46, 0xb6, 0x86, 0x2e, 0xd1, + 0x6f, 0x7e, 0x03, 0x4d, 0x59, 0xb4, 0xff, 0x1c, 0x44, 0x8f, 0xbc, 0x45, 0x53, 0x81, 0xeb, 0x14, + 0xf1, 0x77, 0xfa, 0x38, 0xf2, 0x69, 0xea, 0xa2, 0x8e, 0xff, 0x1f, 0x16, 0x64, 0x91, 0xff, 0x75, + 0x10, 0xdd, 0x37, 0x8a, 0x4d, 0x78, 0xef, 0xd2, 0xe2, 0x32, 0xcf, 0x12, 0xc6, 0xdf, 0xc8, 0x4a, + 0x15, 0xfc, 0x71, 0x62, 0x1a, 0xdd, 0x8f, 0x33, 0xa0, 0x69, 0x16, 0xaf, 0x9f, 0x67, 0x35, 0xa3, + 0xd5, 0x6a, 0x72, 0x45, 0x6f, 0xd4, 0x07, 0x43, 0xee, 0xb8, 0x2c, 0x81, 0x91, 0x45, 0x20, 0x8b, + 0x57, 0x3f, 0xd9, 0x72, 0x65, 0x3e, 0x2c, 0xaa, 0x11, 0x57, 0x16, 0xd1, 0xe1, 0xca, 0x25, 0xcd, + 0xac, 0xa4, 0x6a, 0x65, 0xbe, 0x82, 0x5a, 0xf7, 0x17, 0xb5, 0xfd, 0x25, 0xd4, 0x46, 0x37, 0x68, + 0x72, 0x53, 0x29, 0xde, 0xcb, 0x2e, 0x2f, 0x75, 0x9d, 0xfc, 0x25, 0xb5, 0x11, 0x24, 0x37, 0x45, + 0x50, 0xb3, 0xbc, 0xda, 0xcf, 0x72, 0xc2, 0xdf, 0xdd, 0x7c, 0x71, 0x79, 0x99, 0xd3, 0x38, 0x05, + 0xcb, 0xab, 0x46, 0x3c, 0xb2, 0xe5, 0xc8, 0xf2, 0xca, 0xc7, 0x99, 0x53, 0x21, 0x8d, 0xb4, 0x89, + 0xee, 0x22, 0xc9, 0x72, 0x78, 0xde, 0x98, 0x6b, 0x6a, 0x21, 0x72, 0x2a, 0xa4, 0x05, 0x99, 0x14, + 0xa8, 0x11, 0x35, 0x51, 0xa9, 0xca, 0xff, 0xb0, 0xad, 0x68, 0x89, 0x91, 0x14, 0xc8, 0x83, 0x99, + 0x5d, 0x86, 0x46, 0x78, 0x5e, 0x72, 0xe3, 0xf7, 0xda, 0x5a, 0x42, 0x82, 0xec, 0x32, 0xb8, 0x84, + 0x59, 0x2d, 0x37, 0x7f, 0xdf, 0xa3, 0x37, 0x05, 0x37, 0x7a, 0xbf, 0xad, 0xa2, 0x64, 0xc8, 0x6a, + 0x19, 0x32, 0xd2, 0xf0, 0x8f, 0xa2, 0x9f, 0xe7, 0x86, 0x2b, 0x5a, 0x0e, 0xef, 0x78, 0x14, 0x2a, + 0xeb, 0x74, 0xee, 0x5d, 0x54, 0x6e, 0x0e, 0x91, 0xe8, 0xd8, 0x38, 0xaf, 0xe3, 0x19, 0x3c, 0x52, + 0x6f, 0x5a, 0x9c, 0x4b, 0x91, 0x43, 0x24, 0x6d, 0xca, 0x8d, 0x8a, 0x13, 0x9a, 0x4a, 0xeb, 0x9e, + 0x1a, 0x6a, 0x61, 0x28, 0x2a, 0x6c, 0xc8, 0xa4, 0xad, 0x27, 0xf1, 0x32, 0x9b, 0xe9, 0xd4, 0x42, + 0x0c, 0x60, 0x35, 0x48, 0x5b, 0x0d, 0x33, 0xb2, 0x20, 0x24, 0x6d, 0x45, 0x61, 0xe9, 0xf3, 0x1f, + 0x06, 0xd1, 0x3d, 0xc3, 0x1c, 0xa8, 0x7d, 0xd9, 0xc3, 0xe2, 0x92, 0x36, 0x49, 0xee, 0x51, 0x56, + 0x5c, 0xd7, 0xc3, 0x4f, 0x30, 0x93, 0x7e, 0x5e, 0x17, 0xe5, 0xd3, 0x5b, 0xeb, 0x99, 0xf5, 0x89, + 0xda, 0xb4, 0x34, 0x27, 0x17, 0x84, 0x06, 0x58, 0x9f, 0xe8, 0xbd, 0x4d, 0xc8, 0x21, 0xeb, 0x93, + 0x10, 0x6f, 0x9a, 0x58, 0x3b, 0xcf, 0x69, 0x01, 0x9b, 0xd8, 0x58, 0x68, 0x84, 0x48, 0x13, 0xb7, + 0x20, 0x33, 0x1e, 0x2b, 0x91, 0xd8, 0x5f, 0x1b, 0xe7, 0x39, 0x18, 0x8f, 0xb5, 0xaa, 0x06, 0x90, + 0xf1, 0xd8, 0x0b, 0x4a, 0x3f, 0x67, 0xd1, 0xb7, 0x9a, 0x47, 0x7a, 0x5a, 0x91, 0x65, 0x46, 0xe0, + 0x21, 0x1b, 0x4b, 0x82, 0xf4, 0x7f, 0x97, 0x30, 0x3d, 0xeb, 0xbc, 0xa8, 0xcb, 0x3c, 0xae, 0xaf, + 0xe4, 0xb1, 0x0b, 0xb7, 0xce, 0x4a, 0x08, 0x0f, 0x5e, 0x3c, 0xec, 0xa0, 0xcc, 0xa0, 0xae, 0x64, + 0x7a, 0x88, 0x59, 0xf3, 0xab, 0xb6, 0x86, 0x99, 0xf5, 0x4e, 0xce, 0xbc, 0xdb, 0x38, 0x88, 0xf3, + 0x9c, 0x54, 0x2b, 0x25, 0x3b, 0x8e, 0x8b, 0xec, 0x92, 0xd4, 0x0c, 0xbc, 0xdb, 0x90, 0xd4, 0x08, + 0x62, 0xc8, 0xbb, 0x8d, 0x00, 0x6e, 0xd6, 0x6d, 0xc0, 0xf3, 0x61, 0x91, 0x92, 0xd7, 0x60, 0xdd, + 0x06, 0xed, 0x70, 0x06, 0x59, 0xb7, 0x61, 0xac, 0xd9, 0xe3, 0x7f, 0x9e, 0xd3, 0xe4, 0x5a, 0x4e, + 0x01, 0x6e, 0x03, 0x73, 0x09, 0x9c, 0x03, 0xee, 0x87, 0x10, 0x33, 0x09, 0x70, 0xc1, 0x19, 0x29, + 0xf3, 0x38, 0x81, 0x27, 0xad, 0x84, 0x8e, 0x94, 0x21, 0x93, 0x00, 0x64, 0x40, 0x71, 0xe5, 0x09, + 0x2e, 0x5f, 0x71, 0xc1, 0x01, 0xae, 0xfb, 0x21, 0xc4, 0x4c, 0x83, 0x5c, 0x30, 0x29, 0xf3, 0x8c, + 0x81, 0x6e, 0x20, 0x34, 0xb8, 0x04, 0xe9, 0x06, 0x2e, 0x01, 0x4c, 0x1e, 0x93, 0x6a, 0x46, 0xbc, + 0x26, 0xb9, 0x24, 0x68, 0x52, 0x11, 0xe6, 0x58, 0xb9, 0xa8, 0x3b, 0x2d, 0x57, 0xe0, 0x58, 0xb9, + 0xac, 0x16, 0x2d, 0x57, 0xc8, 0xb1, 0x72, 0x07, 0x00, 0x45, 0x3c, 0x8d, 0x6b, 0xe6, 0x2f, 0x22, + 0x97, 0x04, 0x8b, 0xa8, 0x08, 0x33, 0x47, 0x8b, 0x22, 0x2e, 0x18, 0x98, 0xa3, 0x65, 0x01, 0xac, + 0xb3, 0x06, 0x77, 0x51, 0xb9, 0x19, 0x49, 0x44, 0xab, 0x10, 0xb6, 0x9f, 0x91, 0x3c, 0xad, 0xc1, + 0x48, 0x22, 0x9f, 0xbb, 0x92, 0x22, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0x24, 0xdf, 0x84, 0xf8, 0x6a, + 0x07, 0x5e, 0x82, 0xdc, 0x0f, 0x21, 0x66, 0x7c, 0x52, 0x85, 0xde, 0x8d, 0xab, 0x2a, 0x6b, 0x26, + 0xff, 0x35, 0x7f, 0x81, 0x94, 0x1c, 0x19, 0x9f, 0x7c, 0x1c, 0xe8, 0x5e, 0x6a, 0xe0, 0xf6, 0x15, + 0x0c, 0x0e, 0xdd, 0x1f, 0x04, 0x19, 0x93, 0x71, 0x72, 0x89, 0xf5, 0xb2, 0xdc, 0xf7, 0x34, 0x3d, + 0xef, 0xca, 0xd7, 0xba, 0x30, 0xeb, 0x9b, 0x33, 0xed, 0xe2, 0x98, 0x2e, 0xc9, 0x94, 0xbe, 0x78, + 0x9d, 0xd5, 0xcd, 0x72, 0x4b, 0xce, 0xdc, 0xcf, 0x10, 0x4b, 0x3e, 0x18, 0xf9, 0xe6, 0xac, 0x53, + 0xc9, 0x24, 0x10, 0xa0, 0x2c, 0x27, 0xe4, 0xc6, 0x9b, 0x40, 0x40, 0x8b, 0x9a, 0x43, 0x12, 0x88, + 0x10, 0x6f, 0x76, 0xcc, 0xb4, 0x73, 0x79, 0xd1, 0xc0, 0x94, 0xaa, 0x5c, 0x0e, 0xb3, 0x06, 0x41, + 0x64, 0xd3, 0x22, 0xa8, 0x60, 0xd6, 0x97, 0xda, 0xbf, 0xe9, 0x62, 0x1b, 0x88, 0x9d, 0x76, 0x37, + 0x7b, 0xd4, 0x83, 0xf4, 0xb8, 0x32, 0x27, 0x3e, 0x30, 0x57, 0xed, 0x03, 0x1f, 0x8f, 0x7a, 0x90, + 0xd6, 0xee, 0x9b, 0x5d, 0xad, 0xe7, 0x71, 0x72, 0x3d, 0xab, 0xe8, 0xa2, 0x48, 0x77, 0x69, 0x4e, + 0x2b, 0xb0, 0xfb, 0xe6, 0x94, 0x1a, 0xa0, 0xc8, 0xee, 0x5b, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, + 0x8c, 0xf3, 0x6c, 0x06, 0x57, 0xd4, 0x8e, 0x21, 0x0e, 0x20, 0x19, 0x9c, 0x17, 0xf4, 0x04, 0x91, + 0x58, 0x71, 0xb3, 0x2c, 0x89, 0x73, 0xe1, 0x6f, 0x07, 0x37, 0xe3, 0x80, 0x9d, 0x41, 0xe4, 0x51, + 0xf0, 0xd4, 0x73, 0xba, 0xa8, 0x8a, 0xc3, 0x82, 0x51, 0xb4, 0x9e, 0x0a, 0xe8, 0xac, 0xa7, 0x05, + 0x82, 0x61, 0x75, 0x4a, 0x5e, 0x37, 0xa5, 0x69, 0xfe, 0xf1, 0x0d, 0xab, 0xcd, 0xdf, 0x47, 0x52, + 0x1e, 0x1a, 0x56, 0x01, 0x07, 0x2a, 0x23, 0x9d, 0x88, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xb2, 0xd1, + 0x0d, 0xfa, 0xfd, 0x4c, 0xd8, 0x2a, 0x27, 0x21, 0x3f, 0x1c, 0xe8, 0xe3, 0x47, 0x81, 0x66, 0xbb, + 0xc5, 0xa9, 0xcf, 0x15, 0x49, 0xae, 0x5b, 0x07, 0xd8, 0xdc, 0x82, 0x0a, 0x04, 0xd9, 0x6e, 0x41, + 0x50, 0x7f, 0x13, 0x1d, 0x26, 0xb4, 0x08, 0x35, 0x51, 0x23, 0xef, 0xd3, 0x44, 0x92, 0x33, 0x8b, + 0x5f, 0x2d, 0x95, 0x91, 0x29, 0x9a, 0x69, 0x13, 0xb1, 0x60, 0x43, 0xc8, 0xe2, 0x17, 0x85, 0x4d, + 0x4e, 0x0e, 0x7d, 0x1e, 0xb7, 0x4f, 0xf7, 0xb7, 0xac, 0x1c, 0xe3, 0xa7, 0xfb, 0x31, 0x16, 0xaf, + 0xa4, 0x88, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, 0x6c, 0xf5, 0x83, 0xcd, 0x92, 0xc7, 0xf1, 0xb9, 0x9b, + 0x93, 0xb8, 0x12, 0x5e, 0xb7, 0x03, 0x86, 0x0c, 0x86, 0x2c, 0x79, 0x02, 0x38, 0x18, 0xc2, 0x1c, + 0xcf, 0xbb, 0xb4, 0x60, 0xa4, 0x60, 0xbe, 0x21, 0xcc, 0x35, 0x26, 0xc1, 0xd0, 0x10, 0x86, 0x29, + 0x80, 0xb8, 0xe5, 0xfb, 0x41, 0x84, 0x9d, 0xc4, 0x73, 0x6f, 0xc6, 0x26, 0xf6, 0x7a, 0x84, 0x3c, + 0x14, 0xb7, 0x80, 0xb3, 0x5e, 0xe7, 0xda, 0x5e, 0xa6, 0x71, 0x35, 0xd3, 0xbb, 0x1b, 0xe9, 0xf0, + 0x09, 0x6e, 0xc7, 0x25, 0x91, 0xd7, 0xb9, 0x61, 0x0d, 0x30, 0xec, 0x1c, 0xce, 0xe3, 0x99, 0xae, + 0xa9, 0xa7, 0x06, 0x5c, 0xde, 0xaa, 0xea, 0x46, 0x37, 0x08, 0xfc, 0xbc, 0xcc, 0x52, 0x42, 0x03, + 0x7e, 0xb8, 0xbc, 0x8f, 0x1f, 0x08, 0x82, 0xec, 0xad, 0xa9, 0xb7, 0x58, 0xd1, 0x8d, 0x8b, 0x54, + 0xae, 0x63, 0x47, 0xc8, 0xe3, 0x01, 0x5c, 0x28, 0x7b, 0x43, 0x78, 0xd0, 0x47, 0xd5, 0x06, 0x6d, + 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, 0xd4, 0x07, 0x4b, 0x9f, 0x3f, 0x91, 0x7d, 0x74, 0x2f, + 0x66, 0x71, 0x93, 0xb7, 0xbf, 0xcc, 0xc8, 0x8d, 0x5c, 0x08, 0x7b, 0xea, 0xab, 0xa8, 0x11, 0xff, + 0x38, 0x19, 0xac, 0x8a, 0x77, 0x7a, 0xf3, 0x01, 0xdf, 0x72, 0x85, 0xd0, 0xe9, 0x1b, 0x2c, 0x15, + 0x76, 0x7a, 0xf3, 0x01, 0xdf, 0xf2, 0xd6, 0x83, 0x4e, 0xdf, 0xe0, 0xea, 0x83, 0x9d, 0xde, 0xbc, + 0xf4, 0xfd, 0x67, 0xaa, 0xe3, 0xda, 0xce, 0x9b, 0x3c, 0x2c, 0x61, 0xd9, 0x92, 0xf8, 0xd2, 0x49, + 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xae, 0x62, 0xdd, 0x3b, 0xe6, 0x2b, 0xc5, 0x29, 0xad, 0x33, + 0x7e, 0x1c, 0xe3, 0x59, 0x0f, 0xa3, 0x0a, 0x0e, 0x2d, 0x9a, 0x42, 0x4a, 0xe6, 0xc5, 0xb2, 0x83, + 0x9a, 0xf3, 0xea, 0x5b, 0x01, 0x7b, 0xed, 0x63, 0xeb, 0xdb, 0x3d, 0x69, 0xf3, 0x8a, 0xd7, 0x61, + 0xec, 0x77, 0xcb, 0xa1, 0x56, 0xf5, 0xbe, 0x5e, 0x7e, 0xd2, 0x5f, 0x41, 0xba, 0xff, 0x0b, 0xb5, + 0xae, 0x80, 0xfe, 0x65, 0x27, 0x78, 0xda, 0xc7, 0x22, 0xe8, 0x08, 0xcf, 0x6e, 0xa5, 0x23, 0x0b, + 0xf2, 0x37, 0x6a, 0x01, 0xad, 0x50, 0xfe, 0xd5, 0x0e, 0xff, 0xda, 0x57, 0xf6, 0x89, 0x50, 0xb3, + 0x1a, 0x18, 0xf6, 0x8c, 0x8f, 0x6f, 0xa9, 0x65, 0xdd, 0x42, 0xe7, 0xc0, 0xf2, 0xeb, 0x52, 0xab, + 0x3c, 0x21, 0xcb, 0x16, 0x0d, 0x0b, 0xf4, 0xc9, 0x6d, 0xd5, 0xb0, 0xbe, 0x62, 0xc1, 0xfc, 0x1e, + 0x96, 0x67, 0x3d, 0x0d, 0x3b, 0x37, 0xb3, 0x7c, 0x74, 0x3b, 0x25, 0x59, 0x96, 0x7f, 0x1f, 0x44, + 0x0f, 0x1d, 0xd6, 0xbc, 0x4f, 0x00, 0xbb, 0x1e, 0x3f, 0x08, 0xd8, 0xc7, 0x94, 0x74, 0xe1, 0x7e, + 0xeb, 0x9b, 0x29, 0x9b, 0x2b, 0xdb, 0x1c, 0x95, 0xfd, 0x2c, 0x67, 0xa4, 0x6a, 0x5f, 0xd9, 0xe6, + 0xda, 0x15, 0xd4, 0x08, 0xbf, 0xb2, 0x2d, 0x80, 0x5b, 0x57, 0xb6, 0x79, 0x3c, 0x7b, 0xaf, 0x6c, + 0xf3, 0x5a, 0x0b, 0x5e, 0xd9, 0x16, 0xd6, 0xc0, 0x86, 0x77, 0x55, 0x04, 0xb1, 0x6f, 0xdd, 0xcb, + 0xa2, 0xbb, 0x8d, 0xfd, 0xf4, 0x36, 0x2a, 0xc8, 0x04, 0x27, 0x38, 0x7e, 0xa2, 0xb1, 0xc7, 0x33, + 0x75, 0x4e, 0x35, 0xee, 0xf4, 0xe6, 0xa5, 0xef, 0x1f, 0xcb, 0xd5, 0x8d, 0x1e, 0xce, 0x69, 0xc5, + 0xaf, 0xeb, 0xdb, 0x0c, 0x0d, 0xcf, 0x8d, 0x05, 0xbb, 0xe5, 0xb7, 0xfa, 0xc1, 0x48, 0x75, 0x1b, + 0x42, 0x36, 0xfa, 0xa8, 0xcb, 0x10, 0x68, 0xf2, 0x9d, 0xde, 0x3c, 0x32, 0x8d, 0x08, 0xdf, 0xa2, + 0xb5, 0x7b, 0x18, 0x73, 0xdb, 0xfa, 0x49, 0x7f, 0x05, 0xe9, 0x7e, 0x29, 0xd3, 0x46, 0xdb, 0x3d, + 0x6f, 0xe7, 0xed, 0x2e, 0x53, 0x13, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x02, 0x61, 0x4f, 0xa1, + 0x5d, 0x09, 0x84, 0x77, 0x1a, 0xfd, 0xe8, 0x76, 0x4a, 0xb2, 0x2c, 0x7f, 0x3f, 0x88, 0xee, 0xa2, + 0x65, 0x91, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb5, 0x9e, 0x2c, 0xd4, 0x3f, + 0x0d, 0xa2, 0x7b, 0x81, 0x42, 0x89, 0x00, 0xb9, 0x85, 0x75, 0x37, 0x50, 0x3e, 0xbb, 0xbd, 0x22, + 0x36, 0xdd, 0xdb, 0xf8, 0xa4, 0x7d, 0xfd, 0x56, 0xc0, 0xf6, 0x04, 0xbf, 0x7e, 0xab, 0x5b, 0x0b, + 0x6e, 0xf2, 0xc4, 0x17, 0x6a, 0xd1, 0xe5, 0xdd, 0xe4, 0xe1, 0x67, 0x11, 0x83, 0xd7, 0x88, 0xf8, + 0x38, 0x9f, 0x93, 0x17, 0xaf, 0xcb, 0xb8, 0x48, 0x71, 0x27, 0x42, 0xde, 0xed, 0x44, 0x73, 0x70, + 0x73, 0xac, 0x91, 0x9e, 0x51, 0xb5, 0x90, 0x7a, 0x84, 0xe9, 0x6b, 0x24, 0xb8, 0x39, 0xd6, 0x42, + 0x11, 0x6f, 0x32, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0xe3, 0x3e, 0x28, 0x48, 0xd1, 0xb5, 0x37, + 0xbd, 0xe7, 0xbe, 0x15, 0xb2, 0xd2, 0xda, 0x77, 0xdf, 0xee, 0x49, 0x23, 0x6e, 0x27, 0x84, 0x7d, + 0x4e, 0xe2, 0x94, 0x54, 0x41, 0xb7, 0x9a, 0xea, 0xe5, 0xd6, 0xa6, 0x7d, 0x6e, 0x77, 0x69, 0xbe, + 0x98, 0x17, 0xb2, 0x31, 0x51, 0xb7, 0x36, 0xd5, 0xed, 0x16, 0xd0, 0x70, 0x5b, 0xd0, 0xb8, 0xe5, + 0xe9, 0xe5, 0xe3, 0xb0, 0x19, 0x27, 0xab, 0xdc, 0xec, 0xc5, 0xe2, 0xf5, 0x94, 0x61, 0xd4, 0x51, + 0x4f, 0x10, 0x49, 0xdb, 0x3d, 0x69, 0xb8, 0x3f, 0x67, 0xb9, 0xd5, 0xf1, 0xb4, 0xd3, 0x61, 0xab, + 0x15, 0x52, 0x4f, 0xfa, 0x2b, 0xc0, 0xdd, 0x50, 0x19, 0x55, 0x47, 0x59, 0xcd, 0xf6, 0xb3, 0x3c, + 0x1f, 0x6e, 0x06, 0xc2, 0x44, 0x41, 0xc1, 0xdd, 0x50, 0x0f, 0x8c, 0x44, 0xb2, 0xda, 0x3d, 0x2c, + 0x86, 0x5d, 0x76, 0x38, 0xd5, 0x2b, 0x92, 0x6d, 0x1a, 0xec, 0x68, 0x59, 0x8f, 0x5a, 0xd7, 0x76, + 0x14, 0x7e, 0x70, 0xad, 0x0a, 0xef, 0xf4, 0xe6, 0xc1, 0xeb, 0x76, 0x4e, 0xf1, 0x99, 0xe5, 0x01, + 0x66, 0xc2, 0x99, 0x49, 0x1e, 0x76, 0x50, 0x60, 0x57, 0x50, 0x74, 0xa3, 0x57, 0x59, 0x3a, 0x23, + 0xcc, 0xfb, 0xa6, 0xc8, 0x06, 0x82, 0x6f, 0x8a, 0x00, 0x08, 0x9a, 0x4e, 0xfc, 0x5d, 0x6f, 0x87, + 0x1e, 0xa6, 0xbe, 0xa6, 0x93, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x0d, 0x46, 0x03, 0xed, 0x56, + 0x5e, 0xbc, 0xf0, 0x38, 0x64, 0x06, 0xdc, 0xbe, 0xb0, 0xd9, 0x8b, 0x05, 0x33, 0x8a, 0x71, 0x98, + 0xcd, 0x33, 0xe6, 0x9b, 0x51, 0x2c, 0x1b, 0x0d, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x56, 0xbd, 0x26, + 0x47, 0x38, 0x4c, 0xc3, 0xd5, 0x13, 0x4c, 0xbf, 0xea, 0x69, 0xb6, 0xf5, 0x62, 0xb3, 0xd0, 0x21, + 0xc3, 0xae, 0xe4, 0x62, 0xd9, 0x13, 0xdb, 0xfc, 0x83, 0x5c, 0x08, 0x86, 0x46, 0x1d, 0x4c, 0x01, + 0x6e, 0xd8, 0x37, 0x9c, 0x7a, 0xf7, 0x5a, 0x96, 0x24, 0xae, 0xe2, 0x22, 0xf1, 0x2e, 0x4e, 0xb9, + 0xc1, 0x16, 0x19, 0x5a, 0x9c, 0xa2, 0x1a, 0xe0, 0xb5, 0xb9, 0xfb, 0x29, 0xad, 0xa7, 0x2b, 0xe8, + 0x6f, 0x56, 0xdd, 0x2f, 0x69, 0x1f, 0xf5, 0x20, 0xe1, 0x6b, 0x73, 0x05, 0xe8, 0x8d, 0x6f, 0xe1, + 0xf4, 0xc3, 0x80, 0x29, 0x17, 0x0d, 0x2d, 0x84, 0x71, 0x15, 0x10, 0xd4, 0x3a, 0xc1, 0x25, 0xec, + 0x47, 0x64, 0xe5, 0x0b, 0x6a, 0x93, 0x9f, 0x72, 0x24, 0x14, 0xd4, 0x6d, 0x14, 0xe4, 0x99, 0xf6, + 0x3a, 0x68, 0x2d, 0xa0, 0x6f, 0x2f, 0x7d, 0xd6, 0x3b, 0x39, 0xd0, 0x73, 0xf6, 0xb2, 0xa5, 0xf3, + 0x9e, 0xc0, 0x53, 0xd0, 0xbd, 0x6c, 0xe9, 0x7f, 0x4d, 0xb0, 0xd9, 0x8b, 0x85, 0xaf, 0xe4, 0x63, + 0x46, 0x5e, 0xab, 0x77, 0xe5, 0x9e, 0xe2, 0x72, 0x79, 0xeb, 0x65, 0xf9, 0x46, 0x37, 0x68, 0x0e, + 0xc0, 0x9e, 0x56, 0x34, 0x21, 0x75, 0x2d, 0xef, 0x24, 0x75, 0x4f, 0x18, 0x49, 0xd9, 0x08, 0xdc, + 0x48, 0xfa, 0x20, 0x0c, 0x59, 0x17, 0x09, 0x0a, 0x91, 0xb9, 0xdf, 0x68, 0xcd, 0xab, 0xd9, 0xbe, + 0xda, 0x68, 0xbd, 0x93, 0x33, 0xdd, 0x4b, 0x4a, 0xed, 0x0b, 0x8d, 0x36, 0xbc, 0xea, 0xbe, 0xbb, + 0x8c, 0x1e, 0xf5, 0x20, 0xa5, 0xab, 0xcf, 0xa3, 0x37, 0x8f, 0xe8, 0x6c, 0x42, 0x8a, 0x74, 0xf8, + 0x3d, 0xf7, 0x08, 0x2d, 0x9d, 0x8d, 0x9a, 0x3f, 0x6b, 0xa3, 0x77, 0x30, 0xb1, 0x39, 0x04, 0xb8, + 0x47, 0x2e, 0x16, 0xb3, 0x09, 0x8b, 0x19, 0x38, 0x04, 0xc8, 0xff, 0x3e, 0x6a, 0x04, 0xc8, 0x21, + 0x40, 0x07, 0x00, 0xf6, 0xa6, 0x15, 0x21, 0x5e, 0x7b, 0x8d, 0x20, 0x68, 0x4f, 0x02, 0x26, 0x8b, + 0xd0, 0xf6, 0x9a, 0x44, 0x1d, 0x1e, 0xda, 0x33, 0x3a, 0x5c, 0x8a, 0x64, 0x11, 0x6d, 0xca, 0x04, + 0xb7, 0xa8, 0x3e, 0xbf, 0x5f, 0x66, 0x31, 0x9f, 0xc7, 0xd5, 0x0a, 0x04, 0xb7, 0xac, 0xa5, 0x05, + 0x20, 0xc1, 0xed, 0x05, 0x4d, 0xaf, 0x55, 0x8f, 0x39, 0xb9, 0x3e, 0xa0, 0x15, 0x5d, 0xb0, 0xac, + 0x20, 0xf0, 0x8e, 0x11, 0xfd, 0x40, 0x6d, 0x06, 0xe9, 0xb5, 0x18, 0x6b, 0xb2, 0x5c, 0x4e, 0x88, + 0xf3, 0x84, 0xfc, 0x9a, 0xf4, 0x9a, 0xd1, 0x0a, 0xbe, 0x4f, 0x14, 0x56, 0x20, 0x84, 0x64, 0xb9, + 0x28, 0x0c, 0xda, 0xfe, 0x34, 0x2b, 0x66, 0xde, 0xb6, 0x3f, 0xb5, 0xef, 0xf9, 0xbd, 0x87, 0x03, + 0xa6, 0x43, 0x89, 0x87, 0x26, 0x3a, 0x80, 0xfc, 0x6a, 0xd7, 0xfb, 0xd0, 0x6d, 0x02, 0xe9, 0x50, + 0x7e, 0x12, 0xb8, 0xfa, 0xa2, 0x24, 0x05, 0x49, 0xd5, 0xa9, 0x39, 0x9f, 0x2b, 0x87, 0x08, 0xba, + 0x82, 0xa4, 0x19, 0x8b, 0xb8, 0xfc, 0x6c, 0x51, 0x9c, 0x56, 0xf4, 0x32, 0xcb, 0x49, 0x05, 0xc6, + 0x22, 0xa1, 0x6e, 0xc9, 0x91, 0xb1, 0xc8, 0xc7, 0x99, 0xe3, 0x17, 0x5c, 0xea, 0xdc, 0xf5, 0x3f, + 0xad, 0xe2, 0x04, 0x1e, 0xbf, 0x10, 0x36, 0xda, 0x18, 0xb2, 0x33, 0x18, 0xc0, 0xad, 0x44, 0x47, + 0xb8, 0x2e, 0x56, 0x3c, 0x3e, 0xe4, 0x57, 0xa3, 0xfc, 0xf6, 0xdb, 0x1a, 0x24, 0x3a, 0xd2, 0x9c, + 0x8f, 0x44, 0x12, 0x9d, 0xb0, 0x86, 0x99, 0x4a, 0x38, 0x77, 0x22, 0x8f, 0x15, 0x81, 0xa9, 0x44, + 0xd8, 0x50, 0x42, 0x64, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x52, 0xdd, 0x60, 0xe6, 0x1d, 0x90, 0xb4, + 0x34, 0x38, 0x20, 0xd9, 0x94, 0x19, 0x28, 0x0e, 0x8b, 0x8c, 0x65, 0x71, 0x3e, 0x21, 0xec, 0x34, + 0xae, 0xe2, 0x39, 0x61, 0xa4, 0x82, 0x03, 0x85, 0x44, 0x46, 0x0e, 0x83, 0x0c, 0x14, 0x18, 0x2b, + 0x1d, 0xfe, 0x76, 0xf4, 0x76, 0x33, 0xef, 0x93, 0x42, 0xfe, 0x4a, 0xd1, 0x0b, 0xfe, 0xf3, 0x66, + 0xc3, 0x77, 0xb4, 0x8d, 0x09, 0xab, 0x48, 0x3c, 0x57, 0xb6, 0xdf, 0xd2, 0x7f, 0xe7, 0xe0, 0x93, + 0x41, 0x13, 0xcf, 0x27, 0x94, 0x65, 0x97, 0xcd, 0x32, 0x5b, 0x7e, 0x41, 0x04, 0xe2, 0xd9, 0x16, + 0x8f, 0x02, 0xb7, 0x8e, 0xf8, 0x38, 0x33, 0x4e, 0xdb, 0xd2, 0x33, 0x52, 0xe6, 0x70, 0x9c, 0x76, + 0xb4, 0x39, 0x80, 0x8c, 0xd3, 0x5e, 0xd0, 0x74, 0x4e, 0x5b, 0x3c, 0x25, 0xe1, 0xca, 0x4c, 0x49, + 0xbf, 0xca, 0x4c, 0x9d, 0x8f, 0x32, 0xf2, 0xe8, 0xed, 0x63, 0x32, 0xbf, 0x20, 0x55, 0x7d, 0x95, + 0x95, 0xd8, 0x0d, 0xbd, 0x86, 0xe8, 0xbc, 0xa1, 0x17, 0x41, 0xcd, 0x4c, 0x60, 0x80, 0xc3, 0xfa, + 0x24, 0x9e, 0x13, 0x7e, 0x87, 0x0a, 0x98, 0x09, 0x2c, 0x23, 0x16, 0x84, 0xcc, 0x04, 0x28, 0x6c, + 0x7d, 0xdf, 0x65, 0x98, 0x33, 0x32, 0x6b, 0x22, 0xac, 0x3a, 0x8d, 0x57, 0x73, 0x52, 0x30, 0x69, + 0x12, 0xec, 0xc9, 0x5b, 0x26, 0xfd, 0x3c, 0xb2, 0x27, 0xdf, 0x47, 0xcf, 0x1a, 0x9a, 0x9c, 0x07, + 0x7f, 0x4a, 0x2b, 0x26, 0x7e, 0x83, 0xec, 0xbc, 0xca, 0xc1, 0xd0, 0xe4, 0x3e, 0x54, 0x87, 0x44, + 0x86, 0xa6, 0xb0, 0x86, 0xf5, 0x7b, 0x13, 0x4e, 0x19, 0x5e, 0x92, 0x4a, 0xc7, 0xc9, 0x8b, 0x79, + 0x9c, 0xe5, 0x32, 0x1a, 0xbe, 0x1f, 0xb0, 0x8d, 0xe8, 0x20, 0xbf, 0x37, 0xd1, 0x57, 0xd7, 0xfa, + 0x85, 0x8e, 0x70, 0x09, 0xc1, 0x2b, 0x82, 0x0e, 0xfb, 0xc8, 0x2b, 0x82, 0x6e, 0x2d, 0xb3, 0x72, + 0x37, 0x2c, 0xe7, 0x56, 0x9c, 0xd8, 0xa5, 0x29, 0xdc, 0x2f, 0xb4, 0x6c, 0x02, 0x10, 0x59, 0xb9, + 0x07, 0x15, 0x4c, 0x6a, 0x60, 0xb0, 0xfd, 0xac, 0x88, 0xf3, 0xec, 0x27, 0x30, 0xad, 0xb7, 0xec, + 0x28, 0x02, 0x49, 0x0d, 0xfc, 0xa4, 0xcf, 0xd5, 0x01, 0x61, 0xd3, 0xac, 0x19, 0xfa, 0x37, 0x02, + 0xcf, 0x8d, 0x13, 0xdd, 0xae, 0x2c, 0xd2, 0xba, 0x8d, 0x17, 0x3e, 0xd6, 0x71, 0x59, 0x4e, 0x9a, + 0x59, 0xf5, 0x8c, 0x24, 0x24, 0x2b, 0xd9, 0xf0, 0xe3, 0xf0, 0xb3, 0x02, 0x38, 0x72, 0xd0, 0xa2, + 0x87, 0x9a, 0xf5, 0xfa, 0xbe, 0x19, 0x4b, 0x26, 0xe2, 0xc7, 0x39, 0xcf, 0x6b, 0x52, 0xc9, 0x44, + 0xe3, 0x80, 0x30, 0xd0, 0x3b, 0x2d, 0x6e, 0x64, 0x81, 0x4d, 0x45, 0x91, 0xde, 0x19, 0xd6, 0x30, + 0x9b, 0x7d, 0x16, 0x27, 0x6f, 0x57, 0xe7, 0xe7, 0x0d, 0xb7, 0x50, 0x63, 0x16, 0x85, 0x6c, 0xf6, + 0xe1, 0xb4, 0xc9, 0xd6, 0xda, 0x6e, 0xc7, 0xc5, 0xea, 0x10, 0x1e, 0x99, 0xf0, 0x58, 0xe2, 0x18, + 0x92, 0xad, 0x05, 0x70, 0x6b, 0x33, 0xbc, 0xa2, 0x71, 0x9a, 0xc4, 0x35, 0x3b, 0x8d, 0x57, 0x39, + 0x8d, 0x53, 0x3e, 0xaf, 0xc3, 0xcd, 0x70, 0xc5, 0x8c, 0x6c, 0x08, 0xdb, 0x0c, 0xc7, 0x60, 0x3b, + 0x3b, 0xe3, 0xbf, 0x39, 0x2a, 0xcf, 0x72, 0xc2, 0xec, 0x8c, 0x97, 0x17, 0x9e, 0xe3, 0x7c, 0x10, + 0x86, 0xcc, 0x37, 0x68, 0x42, 0xc4, 0xd3, 0x90, 0x7b, 0x3e, 0x1d, 0x27, 0x01, 0x79, 0x3f, 0x40, + 0x98, 0x1b, 0x48, 0xc4, 0xdf, 0xd5, 0xcf, 0x4c, 0x31, 0x79, 0x67, 0xf9, 0x96, 0x4f, 0xd7, 0x86, + 0x46, 0xf6, 0x45, 0x16, 0xdb, 0x3d, 0x69, 0x93, 0x66, 0xee, 0x5e, 0xc5, 0x6c, 0x9c, 0xa6, 0xc7, + 0xa4, 0xf6, 0x7c, 0x50, 0xde, 0x08, 0x47, 0x46, 0x8a, 0xa4, 0x99, 0x6d, 0xca, 0x04, 0x7a, 0x23, + 0x7b, 0x91, 0x66, 0x4c, 0xca, 0xd4, 0x09, 0xe9, 0xad, 0xb6, 0x81, 0x36, 0x85, 0xd4, 0x0a, 0xa7, + 0xcd, 0x58, 0xde, 0x30, 0x53, 0x3a, 0x9b, 0xe5, 0x44, 0x42, 0x67, 0x24, 0x16, 0x57, 0x36, 0xee, + 0xb4, 0x6d, 0x79, 0x41, 0x64, 0x2c, 0x0f, 0x2a, 0x98, 0x34, 0xb2, 0xc1, 0xc4, 0x2b, 0x29, 0xf5, + 0x60, 0xd7, 0xdb, 0x66, 0x1c, 0x00, 0x49, 0x23, 0xbd, 0xa0, 0xf9, 0xee, 0xad, 0x11, 0x1f, 0x10, + 0xf5, 0x24, 0xe0, 0x65, 0x53, 0x5c, 0xd9, 0x12, 0x23, 0xdf, 0xbd, 0x79, 0x30, 0xb3, 0x4e, 0x00, + 0x1e, 0x9e, 0xaf, 0x0e, 0x53, 0xb8, 0x4e, 0x80, 0xfa, 0x9c, 0x41, 0xd6, 0x09, 0x18, 0xeb, 0x36, + 0x9d, 0xde, 0xf7, 0x3a, 0x8a, 0x6b, 0x53, 0x39, 0x4f, 0xd3, 0x79, 0xc1, 0x50, 0xd3, 0x61, 0x0a, + 0xee, 0x23, 0xb5, 0xb7, 0xd6, 0x3c, 0x8f, 0xd4, 0xb7, 0xaf, 0xb6, 0xd6, 0x85, 0x99, 0x71, 0x49, + 0xaf, 0x27, 0xf9, 0x91, 0x25, 0xff, 0x6f, 0x35, 0x08, 0x21, 0x32, 0x2e, 0xb5, 0x20, 0x61, 0xfb, + 0xf9, 0xfb, 0xff, 0xf5, 0xd5, 0x9d, 0xc1, 0xcf, 0xbe, 0xba, 0x33, 0xf8, 0x9f, 0xaf, 0xee, 0x0c, + 0x7e, 0xfa, 0xf5, 0x9d, 0x37, 0x7e, 0xf6, 0xf5, 0x9d, 0x37, 0xfe, 0xfb, 0xeb, 0x3b, 0x6f, 0x7c, + 0xf9, 0xa6, 0xfc, 0x2d, 0xea, 0x8b, 0x9f, 0xe3, 0xbf, 0x28, 0xfd, 0xec, 0xff, 0x02, 0x00, 0x00, + 0xff, 0xff, 0xc9, 0x60, 0xbd, 0x6d, 0xaf, 0x7a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -411,6 +413,8 @@ type ClientCommandsClient interface { // Account // *** AccountRecover(ctx context.Context, in *pb.RpcAccountRecoverRequest, opts ...grpc.CallOption) (*pb.RpcAccountRecoverResponse, error) + AccountMigrate(ctx context.Context, in *pb.RpcAccountMigrateRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateResponse, error) + AccountMigrateCancel(ctx context.Context, in *pb.RpcAccountMigrateCancelRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateCancelResponse, error) AccountCreate(ctx context.Context, in *pb.RpcAccountCreateRequest, opts ...grpc.CallOption) (*pb.RpcAccountCreateResponse, error) AccountDelete(ctx context.Context, in *pb.RpcAccountDeleteRequest, opts ...grpc.CallOption) (*pb.RpcAccountDeleteResponse, error) AccountRevertDeletion(ctx context.Context, in *pb.RpcAccountRevertDeletionRequest, opts ...grpc.CallOption) (*pb.RpcAccountRevertDeletionResponse, error) @@ -925,6 +929,24 @@ func (c *clientCommandsClient) AccountRecover(ctx context.Context, in *pb.RpcAcc return out, nil } +func (c *clientCommandsClient) AccountMigrate(ctx context.Context, in *pb.RpcAccountMigrateRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateResponse, error) { + out := new(pb.RpcAccountMigrateResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountMigrate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clientCommandsClient) AccountMigrateCancel(ctx context.Context, in *pb.RpcAccountMigrateCancelRequest, opts ...grpc.CallOption) (*pb.RpcAccountMigrateCancelResponse, error) { + out := new(pb.RpcAccountMigrateCancelResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountMigrateCancel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) AccountCreate(ctx context.Context, in *pb.RpcAccountCreateRequest, opts ...grpc.CallOption) (*pb.RpcAccountCreateResponse, error) { out := new(pb.RpcAccountCreateResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/AccountCreate", in, out, opts...) @@ -3299,6 +3321,8 @@ type ClientCommandsServer interface { // Account // *** AccountRecover(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse + AccountMigrate(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse + AccountMigrateCancel(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse AccountCreate(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse AccountDelete(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse AccountRevertDeletion(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse @@ -3683,6 +3707,12 @@ func (*UnimplementedClientCommandsServer) WorkspaceExport(ctx context.Context, r func (*UnimplementedClientCommandsServer) AccountRecover(ctx context.Context, req *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse { return nil } +func (*UnimplementedClientCommandsServer) AccountMigrate(ctx context.Context, req *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { + return nil +} +func (*UnimplementedClientCommandsServer) AccountMigrateCancel(ctx context.Context, req *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { + return nil +} func (*UnimplementedClientCommandsServer) AccountCreate(ctx context.Context, req *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse { return nil } @@ -4840,6 +4870,42 @@ func _ClientCommands_AccountRecover_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _ClientCommands_AccountMigrate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcAccountMigrateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).AccountMigrate(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/AccountMigrate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).AccountMigrate(ctx, req.(*pb.RpcAccountMigrateRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + +func _ClientCommands_AccountMigrateCancel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcAccountMigrateCancelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).AccountMigrateCancel(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/AccountMigrateCancel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).AccountMigrateCancel(ctx, req.(*pb.RpcAccountMigrateCancelRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_AccountCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcAccountCreateRequest) if err := dec(in); err != nil { @@ -9576,6 +9642,14 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "AccountRecover", Handler: _ClientCommands_AccountRecover_Handler, }, + { + MethodName: "AccountMigrate", + Handler: _ClientCommands_AccountMigrate_Handler, + }, + { + MethodName: "AccountMigrateCancel", + Handler: _ClientCommands_AccountMigrateCancel_Handler, + }, { MethodName: "AccountCreate", Handler: _ClientCommands_AccountCreate_Handler, From 929563dde99c17289b2e6fa949023b266c5c8c8e Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Mon, 24 Feb 2025 17:44:33 +0100 Subject: [PATCH 148/176] GO-5171 fix store.go --- core/block/source/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/block/source/store.go b/core/block/source/store.go index c61275b0a..5133c615d 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -51,6 +51,7 @@ type store struct { store *storestate.StoreState onUpdateHook func() onPushChange PushChangeHook + sbType smartblock.SmartBlockType } func (s *store) GetFileKeysSnapshot() []*pb.ChangeFileKeys { From 389af160d5db06a38ac27fff2e623f07b3bebb05 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 14:16:14 -0300 Subject: [PATCH 149/176] Revert ".github/workflows/perftests-grafana.yml removed param "perf-test"" This reverts commit 94d37dd11a8e69118fc4b44a4ca9fd1f8b0b0f73. --- .github/workflows/perftests-grafana.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index fdedcff6b..303e71e9b 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -7,6 +7,10 @@ on: description: 'Specify the runner to use' required: true default: 'arm64' + perf-test: + description: 'Run perf test times' + required: true + default: '0' schedule: - cron: '0 0 * * *' # every day at midnight filters: @@ -92,8 +96,12 @@ jobs: PROM_PASSWORD: ${{ secrets.PROMETHEUS_PASSWORD }} run: | echo "Running perf tests" + RUN_COUNT=${{ github.event.inputs.perf-test }} + if [[ "${{ github.event_name }}" == "schedule" ]]; then + RUN_COUNT=10 + fi cd cmd/perftester/ - CGO_ENABLED="1" go run main.go 10 + CGO_ENABLED="1" go run main.go $RUN_COUNT - name: Archive perf tests results uses: actions/upload-artifact@v4 From 5f3f3b199e737ba5e39d01435d491ac64d1904c7 Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Mon, 24 Feb 2025 14:16:51 -0300 Subject: [PATCH 150/176] .github/workflows/perftests-grafana.yml perf-test default=1 --- .github/workflows/perftests-grafana.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/perftests-grafana.yml b/.github/workflows/perftests-grafana.yml index 303e71e9b..6a0bdd40d 100644 --- a/.github/workflows/perftests-grafana.yml +++ b/.github/workflows/perftests-grafana.yml @@ -10,7 +10,7 @@ on: perf-test: description: 'Run perf test times' required: true - default: '0' + default: '1' schedule: - cron: '0 0 * * *' # every day at midnight filters: From ecc471b89f88cc082613300b29d8370e81a9f5f0 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Mon, 24 Feb 2025 19:24:55 +0100 Subject: [PATCH 151/176] GO-5171 regen mocks --- .../mock_service/mock_ClientCommandsServer.go | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/pb/service/mock_service/mock_ClientCommandsServer.go b/pb/service/mock_service/mock_ClientCommandsServer.go index 439212bb9..b4ecaa973 100644 --- a/pb/service/mock_service/mock_ClientCommandsServer.go +++ b/pb/service/mock_service/mock_ClientCommandsServer.go @@ -416,6 +416,104 @@ func (_c *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call) RunAndRe return _c } +// AccountMigrate provides a mock function with given fields: _a0, _a1 +func (_m *MockClientCommandsServer) AccountMigrate(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for AccountMigrate") + } + + var r0 *pb.RpcAccountMigrateResponse + if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pb.RpcAccountMigrateResponse) + } + } + + return r0 +} + +// MockClientCommandsServer_AccountMigrate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrate' +type MockClientCommandsServer_AccountMigrate_Call struct { + *mock.Call +} + +// AccountMigrate is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 *pb.RpcAccountMigrateRequest +func (_e *MockClientCommandsServer_Expecter) AccountMigrate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrate_Call { + return &MockClientCommandsServer_AccountMigrate_Call{Call: _e.mock.On("AccountMigrate", _a0, _a1)} +} + +func (_c *MockClientCommandsServer_AccountMigrate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest)) *MockClientCommandsServer_AccountMigrate_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateRequest)) + }) + return _c +} + +func (_c *MockClientCommandsServer_AccountMigrate_Call) Return(_a0 *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockClientCommandsServer_AccountMigrate_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call { + _c.Call.Return(run) + return _c +} + +// AccountMigrateCancel provides a mock function with given fields: _a0, _a1 +func (_m *MockClientCommandsServer) AccountMigrateCancel(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for AccountMigrateCancel") + } + + var r0 *pb.RpcAccountMigrateCancelResponse + if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*pb.RpcAccountMigrateCancelResponse) + } + } + + return r0 +} + +// MockClientCommandsServer_AccountMigrateCancel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrateCancel' +type MockClientCommandsServer_AccountMigrateCancel_Call struct { + *mock.Call +} + +// AccountMigrateCancel is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 *pb.RpcAccountMigrateCancelRequest +func (_e *MockClientCommandsServer_Expecter) AccountMigrateCancel(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrateCancel_Call { + return &MockClientCommandsServer_AccountMigrateCancel_Call{Call: _e.mock.On("AccountMigrateCancel", _a0, _a1)} +} + +func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest)) *MockClientCommandsServer_AccountMigrateCancel_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateCancelRequest)) + }) + return _c +} + +func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Return(_a0 *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call { + _c.Call.Return(run) + return _c +} + // AccountMove provides a mock function with given fields: _a0, _a1 func (_m *MockClientCommandsServer) AccountMove(_a0 context.Context, _a1 *pb.RpcAccountMoveRequest) *pb.RpcAccountMoveResponse { ret := _m.Called(_a0, _a1) From 8020e8a2a5e8d4813fff4b7887ecd44062631941 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 11:57:04 +0300 Subject: [PATCH 152/176] GO-5165 Migrate types with recFeatRels --- core/block/editor/page.go | 45 ++++++++++++++++++++++++-- core/relationutils/recommended.go | 8 ++--- core/relationutils/recommended_test.go | 2 +- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 77d9e4f81..a73578311 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -1,6 +1,8 @@ package editor import ( + "slices" + "github.com/anyproto/anytype-heart/core/block/editor/basic" "github.com/anyproto/anytype-heart/core/block/editor/bookmark" "github.com/anyproto/anytype-heart/core/block/editor/clipboard" @@ -15,6 +17,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/source" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/files/fileobject" + "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" @@ -286,8 +289,46 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig func (p *Page) StateMigrations() migration.Migrations { return migration.MakeMigrations([]migration.Migration{ { - Version: 2, - Proc: template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), + Version: 3, + Proc: p.featuredRelationsMigration, }, }) } + +func (p *Page) featuredRelationsMigration(s *state.State) { + if p.Type() != coresb.SmartBlockTypeObjectType { + return + } + + if s.HasRelation(bundle.RelationKeyRecommendedFeaturedRelations.String()) { + return + } + + var featuredRelationIds []string + for _, key := range relationutils.DefaultFeaturedRelationKeys { + id, err := p.Space().DeriveObjectID(nil, domain.MustUniqueKey(coresb.SmartBlockTypeRelation, key.String())) + if err != nil { + log.Errorf("failed to derive object id: %v", err) + continue + } + featuredRelationIds = append(featuredRelationIds, id) + } + + if len(featuredRelationIds) == 0 { + return + } + + s.SetDetail(bundle.RelationKeyRecommendedFeaturedRelations, domain.StringList(featuredRelationIds)) + + recommendedRelations := s.Details().GetStringList(bundle.RelationKeyRecommendedRelations) + oldLen := len(recommendedRelations) + recommendedRelations = slices.DeleteFunc(recommendedRelations, func(s string) bool { + return slices.Contains(featuredRelationIds, s) + }) + + if oldLen == len(recommendedRelations) { + return + } + + s.SetDetail(bundle.RelationKeyRecommendedRelations, domain.StringList(recommendedRelations)) +} diff --git a/core/relationutils/recommended.go b/core/relationutils/recommended.go index fbae37581..7b9921e6e 100644 --- a/core/relationutils/recommended.go +++ b/core/relationutils/recommended.go @@ -19,7 +19,7 @@ type ObjectIDDeriver interface { } var ( - defaultFeaturedRelationKeys = []domain.RelationKey{ + DefaultFeaturedRelationKeys = []domain.RelationKey{ bundle.RelationKeyType, bundle.RelationKeyTag, bundle.RelationKeyBacklinks, @@ -99,7 +99,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta // exclude default recommended featured relations and default hidden relations keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { - return slices.Contains(append(defaultHiddenRelationKeys, defaultFeaturedRelationKeys...), key) + return slices.Contains(append(defaultHiddenRelationKeys, DefaultFeaturedRelationKeys...), key) }) relationIds, err := prepareRelationIds(ctx, deriver, keys) @@ -108,7 +108,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta } details.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) - featuredRelationIds, err := prepareRelationIds(ctx, deriver, defaultFeaturedRelationKeys) + featuredRelationIds, err := prepareRelationIds(ctx, deriver, DefaultFeaturedRelationKeys) if err != nil { return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) } @@ -120,7 +120,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta } details.SetStringList(bundle.RelationKeyRecommendedHiddenRelations, hiddenRelationIds) - return slices.Concat(keys, fileRecommendedRelationKeys, defaultHiddenRelationKeys, defaultFeaturedRelationKeys), false, nil + return slices.Concat(keys, fileRecommendedRelationKeys, defaultHiddenRelationKeys, DefaultFeaturedRelationKeys), false, nil } func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { diff --git a/core/relationutils/recommended_test.go b/core/relationutils/recommended_test.go index 5f67d38cc..4db9fd97d 100644 --- a/core/relationutils/recommended_test.go +++ b/core/relationutils/recommended_test.go @@ -20,7 +20,7 @@ func (d *mockDeriver) DeriveObjectID(ctx context.Context, key domain.UniqueKey) } func TestFillRecommendedRelations(t *testing.T) { - defaultRecFeatRelIds := buildRelationIds(defaultFeaturedRelationKeys) + defaultRecFeatRelIds := buildRelationIds(DefaultFeaturedRelationKeys) defaultRecRelIds := buildRelationIds(defaultRecommendedRelationKeys) defaultRecHiddenRelIds := buildRelationIds(defaultHiddenRelationKeys) From c4627243ad7539372441fea024e960dcb6dfb2df Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 25 Feb 2025 10:19:36 +0100 Subject: [PATCH 153/176] Fix file queue --- core/files/fileobject/fileindex_test.go | 5 +++-- core/files/fileobject/service.go | 10 ++++++---- core/files/fileobject/service_test.go | 11 +++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/core/files/fileobject/fileindex_test.go b/core/files/fileobject/fileindex_test.go index d187409b5..ae1ed0e96 100644 --- a/core/files/fileobject/fileindex_test.go +++ b/core/files/fileobject/fileindex_test.go @@ -28,8 +28,9 @@ func newIndexerFixture(t *testing.T) *indexerFixture { fileService := mock_files.NewMockService(t) svc := &service{ - objectStore: objectStore, - fileService: fileService, + objectStore: objectStore, + fileService: fileService, + accountService: &dummyAccountService{}, } ind := svc.newIndexer() diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index 73bed0e04..025e6a381 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -223,10 +223,12 @@ func (s *service) ensureNotSyncedFilesAddedToQueue() error { for _, record := range records { fullId := extractFullFileIdFromDetails(record.Details) - id := record.Details.GetString(bundle.RelationKeyId) - err := s.addToSyncQueue(id, fullId, false, false) - if err != nil { - log.Errorf("add to sync queue: %v", err) + if record.Details.GetString(bundle.RelationKeyCreator) == s.accountService.MyParticipantId(fullId.SpaceId) { + id := record.Details.GetString(bundle.RelationKeyId) + err := s.addToSyncQueue(id, fullId, false, false) + if err != nil { + log.Errorf("add to sync queue: %v", err) + } } } diff --git a/core/files/fileobject/service_test.go b/core/files/fileobject/service_test.go index 591c1747e..6e4f8c35c 100644 --- a/core/files/fileobject/service_test.go +++ b/core/files/fileobject/service_test.go @@ -53,6 +53,16 @@ type fixture struct { *service } +type dummyAccountService struct{} + +func (s *dummyAccountService) MyParticipantId(spaceId string) string { + return "" +} + +func (s *dummyAccountService) Init(_ *app.App) error { return nil } + +func (s *dummyAccountService) Name() string { return "dummyAccountService" } + type dummyConfig struct{} func (c *dummyConfig) IsLocalOnlyMode() bool { @@ -108,6 +118,7 @@ func newFixture(t *testing.T) *fixture { a := new(app.App) a.Register(&dummyConfig{}) + a.Register(&dummyAccountService{}) a.Register(dataStoreProvider) a.Register(fileStore) a.Register(objectStore) From 8a98593371099cde672f8a4dc27f6bb6118d7dc4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 12:40:33 +0100 Subject: [PATCH 154/176] Bump github.com/avast/retry-go/v4 from 4.6.0 to 4.6.1 (#2153) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 59ad49171..d6fdcfe97 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/anyproto/protobuf v1.3.3-0.20240814124528-72b8c7e0e0f5 github.com/anyproto/tantivy-go v0.3.1 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de - github.com/avast/retry-go/v4 v4.6.0 + github.com/avast/retry-go/v4 v4.6.1 github.com/chai2010/webp v1.1.2-0.20240612091223-aa1b379218b7 github.com/cheggaaa/mb/v3 v3.0.2 github.com/dave/jennifer v1.7.1 diff --git a/go.sum b/go.sum index b4abb83e7..fb95016d8 100644 --- a/go.sum +++ b/go.sum @@ -124,8 +124,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= -github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= +github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= +github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= From 66735f88a086241a9dbc52321afd8dc579c3a0e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2025 13:22:50 +0100 Subject: [PATCH 155/176] Bump golang.org/x/oauth2 from 0.26.0 to 0.27.0 (#2154) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d6fdcfe97..06e9063a9 100644 --- a/go.mod +++ b/go.mod @@ -107,7 +107,7 @@ require ( golang.org/x/image v0.24.0 golang.org/x/mobile v0.0.0-20241108191957-fa514ef75a0f golang.org/x/net v0.35.0 - golang.org/x/oauth2 v0.26.0 + golang.org/x/oauth2 v0.27.0 golang.org/x/sys v0.30.0 golang.org/x/text v0.22.0 google.golang.org/grpc v1.70.0 diff --git a/go.sum b/go.sum index fb95016d8..0c00976b0 100644 --- a/go.sum +++ b/go.sum @@ -1319,8 +1319,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE= -golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= +golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 15d420bc0aff22feaf79b3190cc96621c52058d2 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 17:28:21 +0300 Subject: [PATCH 156/176] GO-5167 Exclude featRels from template --- core/block/editor/clipboard/clipboard_test.go | 2 +- core/block/editor/page.go | 15 +----- core/block/editor/participant.go | 4 +- core/block/editor/template/template.go | 51 ++----------------- core/block/editor/workspaces.go | 2 +- core/block/source/date.go | 1 - core/block/source/source.go | 1 - core/block/template/templateimpl/impl.go | 15 +++--- core/block/template/templateimpl/impl_test.go | 11 ++-- .../files/fileobject/fileblocks/fileblocks.go | 3 +- 10 files changed, 22 insertions(+), 83 deletions(-) diff --git a/core/block/editor/clipboard/clipboard_test.go b/core/block/editor/clipboard/clipboard_test.go index a21f8aaf2..aaf5742a7 100644 --- a/core/block/editor/clipboard/clipboard_test.go +++ b/core/block/editor/clipboard/clipboard_test.go @@ -1109,7 +1109,7 @@ func addDescription(st *smarttest.SmartTest, description string) { func addRelations(st *smarttest.SmartTest) { newState := st.Doc.NewState() template.InitTemplate(newState, template.RequireHeader) - template.InitTemplate(newState, template.WithFeaturedRelations) + template.InitTemplate(newState, template.WithFeaturedRelationsBlock) template.InitTemplate(newState, template.WithForcedDescription) state.ApplyState("", newState, false) } diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 77d9e4f81..2d78b202f 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -215,10 +215,8 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig template.WithEmpty, template.WithObjectTypes(ctx.State.ObjectTypeKeys()), template.WithResolvedLayout(layout), - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, + template.WithFeaturedRelationsBlock, template.WithLinkFieldsMigration, - template.WithCreatorRemovedFromFeaturedRelations, } switch layout { @@ -237,20 +235,16 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig templates = append(templates, template.WithTitle, template.WithDescription, - template.WithAddedFeaturedRelation(bundle.RelationKeyType), - template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), template.WithBookmarkBlocks, ) case model.ObjectType_relation: templates = append(templates, template.WithTitle, - template.WithAddedFeaturedRelation(bundle.RelationKeyType), template.WithLayout(layout), ) case model.ObjectType_objectType: templates = append(templates, template.WithTitle, - template.WithAddedFeaturedRelation(bundle.RelationKeyType), template.WithLayout(layout), ) case model.ObjectType_chat: @@ -284,10 +278,5 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig } func (p *Page) StateMigrations() migration.Migrations { - return migration.MakeMigrations([]migration.Migration{ - { - Version: 2, - Proc: template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), - }, - }) + return migration.MakeMigrations([]migration.Migration{}) } diff --git a/core/block/editor/participant.go b/core/block/editor/participant.go index 658c97e37..dbaefc756 100644 --- a/core/block/editor/participant.go +++ b/core/block/editor/participant.go @@ -62,11 +62,9 @@ func (p *participant) Init(ctx *smartblock.InitContext) (err error) { template.WithEmpty, template.WithTitle, template.WithDescription, - template.WithFeaturedRelations, + template.WithFeaturedRelationsBlock, template.WithLayout(model.ObjectType_participant), template.WithResolvedLayout(model.ObjectType_participant), - template.WithAddedFeaturedRelation(bundle.RelationKeyType), - template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), ) return nil } diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index 986774e5d..c8adf2493 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -228,38 +228,6 @@ var WithTitle = StateTransformer(func(s *state.State) { } }) -// WithDefaultFeaturedRelations **MUST** be called before WithDescription -var WithDefaultFeaturedRelations = func(s *state.State) { - if !s.Details().Has(bundle.RelationKeyFeaturedRelations) { - var fr = []string{bundle.RelationKeyType.String()} - layout, _ := s.Layout() - switch layout { - case model.ObjectType_basic, model.ObjectType_note: - fr = []string{bundle.RelationKeyType.String(), bundle.RelationKeyBacklinks.String()} - case model.ObjectType_set: - fr = []string{bundle.RelationKeyType.String(), bundle.RelationKeySetOf.String(), bundle.RelationKeyBacklinks.String()} - case model.ObjectType_collection: - fr = []string{bundle.RelationKeyType.String(), bundle.RelationKeyBacklinks.String()} - case model.ObjectType_file, model.ObjectType_image, model.ObjectType_audio, model.ObjectType_video, model.ObjectType_pdf: - fr = []string{bundle.RelationKeyType.String(), bundle.RelationKeyTag.String(), bundle.RelationKeyBacklinks.String()} - // Tag is not added to details of object explicitly as it is not system relation - s.SetDetail(bundle.RelationKeyTag, domain.StringList([]string{})) - } - s.SetDetail(bundle.RelationKeyFeaturedRelations, domain.StringList(fr)) - } -} - -var WithAddedFeaturedRelation = func(key domain.RelationKey) StateTransformer { - return func(s *state.State) { - featRels := s.Details().GetStringList(bundle.RelationKeyFeaturedRelations) - if slice.FindPos(featRels, key.String()) > -1 { - return - } else { - s.SetDetail(bundle.RelationKeyFeaturedRelations, domain.StringList(append(featRels, key.String()))) - } - } -} - var WithRemovedFeaturedRelation = func(key domain.RelationKey) StateTransformer { return func(s *state.State) { var featRels = s.Details().GetStringList(bundle.RelationKeyFeaturedRelations) @@ -270,18 +238,6 @@ var WithRemovedFeaturedRelation = func(key domain.RelationKey) StateTransformer } } -var WithCreatorRemovedFromFeaturedRelations = StateTransformer(func(s *state.State) { - fr := s.Details().GetStringList(bundle.RelationKeyFeaturedRelations) - - if slice.FindPos(fr, bundle.RelationKeyCreator.String()) != -1 { - frc := make([]string, len(fr)) - copy(frc, fr) - - frc = slice.RemoveMut(frc, bundle.RelationKeyCreator.String()) - s.SetDetail(bundle.RelationKeyFeaturedRelations, domain.StringList(frc)) - } -}) - var WithForcedDescription = func(s *state.State) { RequireHeader(s) @@ -331,7 +287,10 @@ var WithForcedDescription = func(s *state.State) { var WithDescription = func(s *state.State) { RequireHeader(s) - WithAddedFeaturedRelation(bundle.RelationKeyDescription)(s) + featRels := s.Details().GetStringList(bundle.RelationKeyFeaturedRelations) + if slice.FindPos(featRels, bundle.RelationKeyDescription.String()) == -1 { + s.SetDetail(bundle.RelationKeyFeaturedRelations, domain.StringList(append(featRels, bundle.RelationKeyDescription.String()))) + } if !s.Exists(DescriptionBlockId) { WithForcedDescription(s) } @@ -392,7 +351,7 @@ var WithNameToFirstBlock = StateTransformer(func(s *state.State) { } }) -var WithFeaturedRelations = StateTransformer(func(s *state.State) { +var WithFeaturedRelationsBlock = StateTransformer(func(s *state.State) { RequireHeader(s) var align model.BlockAlign diff --git a/core/block/editor/workspaces.go b/core/block/editor/workspaces.go index b5182bb4a..096fb0a66 100644 --- a/core/block/editor/workspaces.go +++ b/core/block/editor/workspaces.go @@ -78,7 +78,7 @@ func (w *Workspaces) initTemplate(ctx *smartblock.InitContext) { template.InitTemplate(ctx.State, template.WithEmpty, template.WithTitle, - template.WithFeaturedRelations, + template.WithFeaturedRelationsBlock, template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), template.WithLayout(model.ObjectType_space), template.WithResolvedLayout(model.ObjectType_space), diff --git a/core/block/source/date.go b/core/block/source/date.go index 896895b35..a210fb0d9 100644 --- a/core/block/source/date.go +++ b/core/block/source/date.go @@ -89,7 +89,6 @@ func (d *date) ReadDoc(context.Context, ChangeReceiver, bool) (doc state.Doc, er s := state.NewDoc(d.id, nil).(*state.State) template.InitTemplate(s, template.WithTitle, - template.WithDefaultFeaturedRelations, template.WithAllBlocksEditsRestricted, ) s.SetDetails(details) diff --git a/core/block/source/source.go b/core/block/source/source.go index 4082e4cac..1420da924 100644 --- a/core/block/source/source.go +++ b/core/block/source/source.go @@ -331,7 +331,6 @@ func (s *source) buildState() (doc state.Doc, err error) { // we need to have required internal relations for all objects, including system st.AddBundledRelationLinks(bundle.RequiredInternalRelations...) if s.Type() == smartblock.SmartBlockTypePage || s.Type() == smartblock.SmartBlockTypeProfilePage { - template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks)(st) template.WithRelations([]domain.RelationKey{bundle.RelationKeyBacklinks})(st) } diff --git a/core/block/template/templateimpl/impl.go b/core/block/template/templateimpl/impl.go index 4ef52fd9a..a0054e1b8 100644 --- a/core/block/template/templateimpl/impl.go +++ b/core/block/template/templateimpl/impl.go @@ -44,9 +44,11 @@ var ( log = logging.Logger("template") templateIsPreferableRelationKeys = []domain.RelationKey{ - bundle.RelationKeyFeaturedRelations, bundle.RelationKeyResolvedLayout, - bundle.RelationKeyIconEmoji, bundle.RelationKeyCoverId, - bundle.RelationKeySourceObject, bundle.RelationKeySetOf, + bundle.RelationKeyLayout, + bundle.RelationKeyIconEmoji, + bundle.RelationKeyCoverId, + bundle.RelationKeySourceObject, + bundle.RelationKeySetOf, } ) @@ -181,7 +183,7 @@ func extractTargetDetails(originDetails *domain.Details, templateDetails *domain templateVal := templateDetails.Get(key) if templateVal.Ok() { inTemplateEmpty := templateVal.IsEmpty() - if key == bundle.RelationKeyResolvedLayout { + if key == bundle.RelationKeyLayout { // layout = 0 is actually basic layout, so it counts inTemplateEmpty = false } @@ -236,6 +238,7 @@ func (s *service) buildState(sb smartblock.SmartBlock) (st *state.State, err err bundle.RelationKeyTemplateIsBundled, bundle.RelationKeyOrigin, bundle.RelationKeyAddedDate, + bundle.RelationKeyFeaturedRelations, ) st.SetDetailAndBundledRelation(bundle.RelationKeySourceObject, domain.String(sb.Id())) // original created timestamp is used to set creationDate for imported objects, not for template-based objects @@ -427,9 +430,7 @@ func (s *service) SetDefaultTemplateInType(ctx context.Context, typeId, template func (s *service) createBlankTemplateState(typeId domain.FullID, layout model.ObjectTypeLayout) (st *state.State) { st = state.NewDoc(BlankTemplateId, nil).NewState() template.InitTemplate(st, template.WithEmpty, - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, - template.WithAddedFeaturedRelation(bundle.RelationKeyTag), + template.WithFeaturedRelationsBlock, template.WithDetail(bundle.RelationKeyTag, domain.StringList(nil)), template.WithTitle, ) diff --git a/core/block/template/templateimpl/impl_test.go b/core/block/template/templateimpl/impl_test.go index 2e844d967..aa6ee7b2d 100644 --- a/core/block/template/templateimpl/impl_test.go +++ b/core/block/template/templateimpl/impl_test.go @@ -170,7 +170,6 @@ func TestService_CreateTemplateStateWithDetails(t *testing.T) { // then assert.NoError(t, err) assert.Equal(t, BlankTemplateId, st.RootId()) - assert.Contains(t, st.Details().GetStringList(bundle.RelationKeyFeaturedRelations), bundle.RelationKeyTag.String()) assert.True(t, st.Details().Has(bundle.RelationKeyTag)) }) } @@ -255,7 +254,6 @@ func TestCreateTemplateStateFromSmartBlock(t *testing.T) { // then assert.Equal(t, BlankTemplateId, st.RootId()) - assert.Contains(t, st.Details().GetStringList(bundle.RelationKeyFeaturedRelations), bundle.RelationKeyTag.String()) assert.True(t, st.Details().Has(bundle.RelationKeyTag)) }) @@ -394,15 +392,12 @@ func TestExtractTargetDetails(t *testing.T) { OriginValue, TemplateValue domain.Value OriginLeft bool }{ - {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(0), TemplateValue: domain.Int64(1), OriginLeft: false}, - {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(5), TemplateValue: domain.Int64(0), OriginLeft: false}, - {Key: bundle.RelationKeyResolvedLayout, OriginValue: domain.Int64(3), TemplateValue: domain.Int64(3), OriginLeft: false}, + {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(0), TemplateValue: domain.Int64(1), OriginLeft: false}, + {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(5), TemplateValue: domain.Int64(0), OriginLeft: false}, + {Key: bundle.RelationKeyLayout, OriginValue: domain.Int64(3), TemplateValue: domain.Int64(3), OriginLeft: false}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String(""), TemplateValue: domain.String("s1"), OriginLeft: false}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String("s2"), TemplateValue: domain.String(""), OriginLeft: true}, {Key: bundle.RelationKeySourceObject, OriginValue: domain.String("s0"), TemplateValue: domain.String("s3"), OriginLeft: false}, - {Key: bundle.RelationKeyFeaturedRelations, OriginValue: domain.StringList([]string{"tag"}), TemplateValue: domain.StringList([]string{}), OriginLeft: true}, - {Key: bundle.RelationKeyFeaturedRelations, OriginValue: domain.StringList([]string{}), TemplateValue: domain.StringList([]string{"tag", "type"}), OriginLeft: false}, - {Key: bundle.RelationKeyFeaturedRelations, OriginValue: domain.StringList([]string{"type"}), TemplateValue: domain.StringList([]string{"tag"}), OriginLeft: false}, {Key: bundle.RelationKeyName, OriginValue: domain.String("orig"), TemplateValue: domain.String(""), OriginLeft: true}, {Key: bundle.RelationKeyName, OriginValue: domain.String(""), TemplateValue: domain.String("tmpl"), OriginLeft: false}, {Key: bundle.RelationKeyName, OriginValue: domain.String("orig"), TemplateValue: domain.String("tmpl"), OriginLeft: true}, diff --git a/core/files/fileobject/fileblocks/fileblocks.go b/core/files/fileobject/fileblocks/fileblocks.go index 488d49d07..154121c94 100644 --- a/core/files/fileobject/fileblocks/fileblocks.go +++ b/core/files/fileobject/fileblocks/fileblocks.go @@ -16,8 +16,7 @@ func InitEmptyFileState(st *state.State) { template.InitTemplate(st, template.WithEmpty, template.WithTitle, - template.WithDefaultFeaturedRelations, - template.WithFeaturedRelations, + template.WithFeaturedRelationsBlock, template.WithAllBlocksEditsRestricted, ) } From d6fa460ee1e159c00b3015eca95af206db4179fb Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 19:09:13 +0300 Subject: [PATCH 157/176] GO-5162 Normalize recRels on state build --- core/block/editor/state/normalize.go | 32 +++++++++++++++++++++++ core/block/editor/state/normalize_test.go | 24 +++++++++++++++++ util/slice/slice.go | 26 ++++++++++++++++++ util/slice/slice_test.go | 7 +++++ 4 files changed, 89 insertions(+) diff --git a/core/block/editor/state/normalize.go b/core/block/editor/state/normalize.go index af391b04f..ea47b9bde 100644 --- a/core/block/editor/state/normalize.go +++ b/core/block/editor/state/normalize.go @@ -7,6 +7,7 @@ import ( "github.com/gogo/protobuf/types" "github.com/anyproto/anytype-heart/core/block/simple" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/util/pbtypes" "github.com/anyproto/anytype-heart/util/slice" @@ -36,6 +37,8 @@ func (s *State) normalize(withLayouts bool) (err error) { s.normalizeChildren(b) } + s.normalizeDetails() + if err = s.doCustomBlockNormalizations(); err != nil { return err } @@ -392,3 +395,32 @@ func CleanupLayouts(s *State) (removedCount int) { cleanup(s.RootId()) return } + +func (s *State) normalizeDetails() { + if s.ObjectTypeKey() == bundle.TypeKeyObjectType { + s.normalizeRecommendedRelations() + } +} + +// normalizeRecommendedRelations normalizes recommended relations of Type on state build level, because +// these lists mustn't contain similar values, but could be updated by multiple clients independently +func (s *State) normalizeRecommendedRelations() { + details := s.details + if details == nil && s.parent != nil { + details = s.parent.details + } + if details == nil { + return + } + + recRelations := details.GetStringList(bundle.RelationKeyRecommendedRelations) + recFeatRelations := details.GetStringList(bundle.RelationKeyRecommendedFeaturedRelations) + recHiddenRelations := details.GetStringList(bundle.RelationKeyRecommendedHiddenRelations) + + recHiddenRelations = slice.RemoveN(recHiddenRelations, recFeatRelations...) + recHiddenRelations = slice.RemoveN(recHiddenRelations, recRelations...) + recRelations = slice.RemoveN(recRelations, recFeatRelations...) + + details.SetStringList(bundle.RelationKeyRecommendedRelations, recRelations) + details.SetStringList(bundle.RelationKeyRecommendedHiddenRelations, recHiddenRelations) +} diff --git a/core/block/editor/state/normalize_test.go b/core/block/editor/state/normalize_test.go index 6b663c4ff..4fcb9ffaa 100644 --- a/core/block/editor/state/normalize_test.go +++ b/core/block/editor/state/normalize_test.go @@ -13,6 +13,7 @@ import ( "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/block/simple" + "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/util/pbtypes" @@ -547,3 +548,26 @@ func countStringsLength(value *types.Value) (n int) { } return n } + +func TestNormalizeRecommendedRelations(t *testing.T) { + // given + s := NewDoc("root", nil).NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ + bundle.RelationKeyRecommendedRelations: domain.StringList([]string{"s1", "sh", "sf", "sfh"}), // s stands for sidebar + bundle.RelationKeyRecommendedFeaturedRelations: domain.StringList([]string{"f1", "f2", "sfh", "fh", "sf"}), + bundle.RelationKeyRecommendedHiddenRelations: domain.StringList([]string{"sfh", "sh", "fh", "h1", "h2", "h3"}), + })) + child := s.NewState() + + // when + s.normalizeRecommendedRelations() + child.normalizeRecommendedRelations() + + // then + assert.Equal(t, []string{"s1", "sh"}, s.Details().GetStringList(bundle.RelationKeyRecommendedRelations)) + assert.Equal(t, []string{"f1", "f2", "sfh", "fh", "sf"}, s.Details().GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) + assert.Equal(t, []string{"h1", "h2", "h3"}, s.Details().GetStringList(bundle.RelationKeyRecommendedHiddenRelations)) + + assert.Equal(t, []string{"s1", "sh"}, child.Details().GetStringList(bundle.RelationKeyRecommendedRelations)) + assert.Equal(t, []string{"f1", "f2", "sfh", "fh", "sf"}, child.Details().GetStringList(bundle.RelationKeyRecommendedFeaturedRelations)) + assert.Equal(t, []string{"h1", "h2", "h3"}, child.Details().GetStringList(bundle.RelationKeyRecommendedHiddenRelations)) +} diff --git a/util/slice/slice.go b/util/slice/slice.go index b9128ed14..fb5112b8b 100644 --- a/util/slice/slice.go +++ b/util/slice/slice.go @@ -124,6 +124,32 @@ func RemoveIndex[T any](s []T, idx int) []T { return s[:n] } +// RemoveN is an analog of Remove function, but removing a range of values +func RemoveN[T comparable](s []T, vs ...T) []T { + var ( + n int + found bool + sc = slices.Clone(s) + ) + if len(vs) == 0 { + return sc + } + for _, x := range s { + found = false + for _, v := range vs { + if x == v { + found = true + break + } + } + if !found { + sc[n] = x + n++ + } + } + return sc[:n] +} + func Filter[T any](vals []T, cond func(T) bool) []T { var result = make([]T, 0, len(vals)) for i := range vals { diff --git a/util/slice/slice_test.go b/util/slice/slice_test.go index f8396fddf..dba86d26d 100644 --- a/util/slice/slice_test.go +++ b/util/slice/slice_test.go @@ -59,6 +59,13 @@ func Test_Remove(t *testing.T) { assert.Equal(t, []string{"1", "2", "3"}, ids) } +func Test_RemoveN(t *testing.T) { + var ids = []string{"1", "2", "3", "4", "1", "2", "0", "7"} + assert.Equal(t, []string{"2", "3", "4", "2", "0", "7"}, RemoveN(ids, "1")) + assert.Equal(t, []string{"3", "4", "0", "7"}, RemoveN(ids, "1", "2")) + assert.Equal(t, []string{"3", "0", "7"}, RemoveN(ids, "2", "4", "1")) +} + func TestHasPrefix(t *testing.T) { assert.True(t, HasPrefix([]string{"1", "2"}, []string{"1", "2"})) assert.True(t, HasPrefix([]string{"1", "2"}, []string{"1"})) From 7d0d1f67280b10a6aeab56f311c991ebf6c8401f Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 25 Feb 2025 17:16:40 +0100 Subject: [PATCH 158/176] Revert "Bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 (#2142)" This reverts commit 9f644ff6e6b74429c404de23f8e58a9b7b05d6d9. --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index e03a76936..4bcf9cf4e 100644 --- a/go.mod +++ b/go.mod @@ -81,7 +81,7 @@ require ( github.com/otiai10/copy v1.14.1 github.com/otiai10/opengraph/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.21.0 + github.com/prometheus/client_golang v1.20.5 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.49.1 @@ -246,7 +246,7 @@ require ( github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect + github.com/prometheus/common v0.61.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/pseudomuto/protokit v0.2.1 // indirect github.com/quic-go/quic-go v0.49.0 // indirect diff --git a/go.sum b/go.sum index 96dd8e5fa..f97477aec 100644 --- a/go.sum +++ b/go.sum @@ -932,8 +932,8 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= -github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -947,8 +947,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 77e7f29b5d02a80fbb98c1f1c598bc7a4499dd3a Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 19:17:44 +0300 Subject: [PATCH 159/176] GO-5165 Fix lint --- core/block/editor/page.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index a73578311..a1771a196 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -304,7 +304,7 @@ func (p *Page) featuredRelationsMigration(s *state.State) { return } - var featuredRelationIds []string + featuredRelationIds := make([]string, len(relationutils.DefaultFeaturedRelationKeys)) for _, key := range relationutils.DefaultFeaturedRelationKeys { id, err := p.Space().DeriveObjectID(nil, domain.MustUniqueKey(coresb.SmartBlockTypeRelation, key.String())) if err != nil { From 4825ac1a144cbc16473b5e070543842ee054d3db Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 19:31:02 +0300 Subject: [PATCH 160/176] GO-5162 Normalize recRels only on StateBuild --- core/block/editor/state/normalize.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/block/editor/state/normalize.go b/core/block/editor/state/normalize.go index ea47b9bde..277004150 100644 --- a/core/block/editor/state/normalize.go +++ b/core/block/editor/state/normalize.go @@ -21,6 +21,7 @@ var ( func (s *State) Normalize(withLayouts bool) (err error) { s.removeDuplicates() + s.normalizeDetails() return s.normalize(withLayouts) } @@ -37,8 +38,6 @@ func (s *State) normalize(withLayouts bool) (err error) { s.normalizeChildren(b) } - s.normalizeDetails() - if err = s.doCustomBlockNormalizations(); err != nil { return err } From 7e51c98eed5438ab7e37e0ef2292f5858f4c193c Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 25 Feb 2025 17:50:07 +0100 Subject: [PATCH 161/176] fix --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4bcf9cf4e..aecc66a38 100644 --- a/go.mod +++ b/go.mod @@ -246,7 +246,7 @@ require ( github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/pseudomuto/protokit v0.2.1 // indirect github.com/quic-go/quic-go v0.49.0 // indirect diff --git a/go.sum b/go.sum index f97477aec..720744d13 100644 --- a/go.sum +++ b/go.sum @@ -947,8 +947,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= -github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= From 84ae4818f7feee563cb96dae7b0b27ff9bd76705 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 25 Feb 2025 21:55:37 +0300 Subject: [PATCH 162/176] GO-5176 Do not set resolvedLayout explicitly --- .../editor/accountobject/accountobject.go | 1 - core/block/editor/basic/details.go | 5 ++-- core/block/editor/dashboard.go | 1 - core/block/editor/page.go | 1 - core/block/editor/participant.go | 1 - core/block/editor/profile.go | 1 - core/block/editor/smartblock/detailsinject.go | 23 +++++++++++-------- core/block/editor/spaceview.go | 1 - core/block/editor/template/template.go | 14 +---------- core/block/editor/widget.go | 1 - core/block/editor/workspaces.go | 1 - core/block/import/csv/collectionstrategy.go | 1 - .../import/notion/api/database/database.go | 1 - core/block/import/notion/api/page/task.go | 2 -- core/block/object/objectcreator/chat.go | 1 - .../block/object/objectcreator/object_type.go | 1 - core/block/object/objectcreator/relation.go | 1 - .../object/objectcreator/relation_option.go | 1 - core/block/source/store.go | 2 -- core/files/file.go | 5 ---- core/files/file_test.go | 10 ++++---- core/files/fileobject/service.go | 1 - 22 files changed, 21 insertions(+), 55 deletions(-) diff --git a/core/block/editor/accountobject/accountobject.go b/core/block/editor/accountobject/accountobject.go index 67e326bf2..1f64d9b9c 100644 --- a/core/block/editor/accountobject/accountobject.go +++ b/core/block/editor/accountobject/accountobject.go @@ -208,7 +208,6 @@ func (a *accountObject) initState(st *state.State) error { template.InitTemplate(st, template.WithTitle, template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeyProfile}), - template.WithResolvedLayout(model.ObjectType_profile), template.WithLayout(model.ObjectType_profile), template.WithDetail(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)), ) diff --git a/core/block/editor/basic/details.go b/core/block/editor/basic/details.go index 856019a43..37c6e0399 100644 --- a/core/block/editor/basic/details.go +++ b/core/block/editor/basic/details.go @@ -260,8 +260,7 @@ func (bs *basic) setDetailSpecialCases(st *state.State, detail domain.Detail) er return fmt.Errorf("can't change object type directly: %w", domain.ErrValidationFailed) } if detail.Key == bundle.RelationKeyResolvedLayout { - // special case when client sets the layout detail directly instead of using SetLayoutInState command - return bs.SetLayoutInState(st, model.ObjectTypeLayout(detail.Value.Int64()), false) + return fmt.Errorf("can't change object layout directly: %w", domain.ErrValidationFailed) } if detail.Key == bundle.RelationKeyRecommendedLayout { // nolint:gosec @@ -380,7 +379,7 @@ func (bs *basic) SetLayoutInState(s *state.State, toLayout model.ObjectTypeLayou return fmt.Errorf("layout change is restricted for object '%s': %w", bs.Id(), err) } } - s.SetDetail(bundle.RelationKeyResolvedLayout, domain.Int64(toLayout)) + if err = bs.layoutConverter.Convert(s, fromLayout, toLayout, ignoreRestriction); err != nil { return fmt.Errorf("convert layout: %w", err) } diff --git a/core/block/editor/dashboard.go b/core/block/editor/dashboard.go index e630aa32a..c3abb1f1e 100644 --- a/core/block/editor/dashboard.go +++ b/core/block/editor/dashboard.go @@ -58,7 +58,6 @@ func (p *Dashboard) CreationStateMigration(ctx *smartblock.InitContext) migratio template.InitTemplate(st, template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyDashboard}), template.WithLayout(model.ObjectType_dashboard), - template.WithResolvedLayout(model.ObjectType_dashboard), template.WithEmpty, template.WithDetailName("Home"), template.WithDetailIconEmoji("ðŸ "), diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 77d9e4f81..2dfc049d5 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -214,7 +214,6 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig templates := []template.StateTransformer{ template.WithEmpty, template.WithObjectTypes(ctx.State.ObjectTypeKeys()), - template.WithResolvedLayout(layout), template.WithDefaultFeaturedRelations, template.WithFeaturedRelations, template.WithLinkFieldsMigration, diff --git a/core/block/editor/participant.go b/core/block/editor/participant.go index 658c97e37..ab0a0df0c 100644 --- a/core/block/editor/participant.go +++ b/core/block/editor/participant.go @@ -64,7 +64,6 @@ func (p *participant) Init(ctx *smartblock.InitContext) (err error) { template.WithDescription, template.WithFeaturedRelations, template.WithLayout(model.ObjectType_participant), - template.WithResolvedLayout(model.ObjectType_participant), template.WithAddedFeaturedRelation(bundle.RelationKeyType), template.WithAddedFeaturedRelation(bundle.RelationKeyBacklinks), ) diff --git a/core/block/editor/profile.go b/core/block/editor/profile.go index 5282933da..a85c5f978 100644 --- a/core/block/editor/profile.go +++ b/core/block/editor/profile.go @@ -82,7 +82,6 @@ func (p *Profile) CreationStateMigration(ctx *smartblock.InitContext) migration. template.InitTemplate(st, template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyProfile}), template.WithLayout(model.ObjectType_profile), - template.WithResolvedLayout(model.ObjectType_profile), template.WithDetail(bundle.RelationKeyLayoutAlign, domain.Int64(model.Block_AlignCenter)), migrationSetHidden, ) diff --git a/core/block/editor/smartblock/detailsinject.go b/core/block/editor/smartblock/detailsinject.go index 820d4a513..7afc67721 100644 --- a/core/block/editor/smartblock/detailsinject.go +++ b/core/block/editor/smartblock/detailsinject.go @@ -236,6 +236,12 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { } typeObjectId := s.LocalDetails().GetString(bundle.RelationKeyType) + + if s.ObjectTypeKey() == bundle.TypeKeyTemplate { + // resolvedLayout for templates should be derived from target type + typeObjectId = s.Details().GetString(bundle.RelationKeyTargetObjectType) + } + if typeObjectId == "" { if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() { return @@ -245,16 +251,7 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { return } - var parentLayoutValue domain.Value - parent := s.ParentState() - if parent != nil { - parentLayoutValue = parent.Details().Get(bundle.RelationKeyLayout) - } - - if currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout); currentValue.Ok() && !parentLayoutValue.Ok() { - // we can leave current value as is, if layout is not being unset right now - return - } + currentValue := s.LocalDetails().Get(bundle.RelationKeyResolvedLayout) typeDetails, found := sb.lastDepDetails[typeObjectId] if found { @@ -263,6 +260,9 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { records, err := sb.objectStore.SpaceIndex(sb.SpaceID()).QueryByIds([]string{typeObjectId}) if err != nil || len(records) != 1 { log.Errorf("failed to query object %s: %v", typeObjectId, err) + if currentValue.Ok() { + return + } s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return } @@ -270,6 +270,9 @@ func (sb *smartBlock) injectResolvedLayout(s *state.State) { } if !rawValue.Ok() { + if currentValue.Ok() { + return + } log.Errorf("failed to get recommended layout from details of type. Fallback to basic layout") s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_basic))) return diff --git a/core/block/editor/spaceview.go b/core/block/editor/spaceview.go index 10d0b2a37..e0a7e6d40 100644 --- a/core/block/editor/spaceview.go +++ b/core/block/editor/spaceview.go @@ -116,7 +116,6 @@ func (s *SpaceView) initTemplate(st *state.State) { template.InitTemplate(st, template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeySpaceView}), template.WithLayout(model.ObjectType_spaceView), - template.WithResolvedLayout(model.ObjectType_spaceView), ) } diff --git a/core/block/editor/template/template.go b/core/block/editor/template/template.go index 986774e5d..c96743f93 100644 --- a/core/block/editor/template/template.go +++ b/core/block/editor/template/template.go @@ -100,20 +100,8 @@ var WithObjectTypes = func(otypes []domain.TypeKey) StateTransformer { } } -var WithResolvedLayout = func(layout model.ObjectTypeLayout) StateTransformer { - return func(s *state.State) { - if !s.LocalDetails().Has(bundle.RelationKeyResolvedLayout) { - s.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(layout)) - } - } -} - var WithLayout = func(layout model.ObjectTypeLayout) StateTransformer { - return func(s *state.State) { - if !s.Details().Has(bundle.RelationKeyLayout) { - s.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(layout)) - } - } + return WithDetail(bundle.RelationKeyLayout, domain.Int64(layout)) } var WithDetailName = func(name string) StateTransformer { diff --git a/core/block/editor/widget.go b/core/block/editor/widget.go index 74f280083..59e184e2d 100644 --- a/core/block/editor/widget.go +++ b/core/block/editor/widget.go @@ -55,7 +55,6 @@ func (w *WidgetObject) CreationStateMigration(ctx *smartblock.InitContext) migra template.WithEmpty, template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyDashboard}), template.WithLayout(model.ObjectType_dashboard), - template.WithResolvedLayout(model.ObjectType_dashboard), template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), ) }, diff --git a/core/block/editor/workspaces.go b/core/block/editor/workspaces.go index b5182bb4a..03e4c5edf 100644 --- a/core/block/editor/workspaces.go +++ b/core/block/editor/workspaces.go @@ -81,7 +81,6 @@ func (w *Workspaces) initTemplate(ctx *smartblock.InitContext) { template.WithFeaturedRelations, template.WithDetail(bundle.RelationKeyIsHidden, domain.Bool(true)), template.WithLayout(model.ObjectType_space), - template.WithResolvedLayout(model.ObjectType_space), template.WithForcedObjectTypes([]domain.TypeKey{bundle.TypeKeySpace}), template.WithForcedDetail(bundle.RelationKeyFeaturedRelations, domain.StringList([]string{bundle.RelationKeyType.String(), bundle.RelationKeyCreator.String()})), ) diff --git a/core/block/import/csv/collectionstrategy.go b/core/block/import/csv/collectionstrategy.go index b9de17fc1..71b439047 100644 --- a/core/block/import/csv/collectionstrategy.go +++ b/core/block/import/csv/collectionstrategy.go @@ -177,7 +177,6 @@ func getRelationDetails(name, key string, format float64) *domain.Details { details.SetFloat64(bundle.RelationKeyRelationFormat, format) details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { diff --git a/core/block/import/notion/api/database/database.go b/core/block/import/notion/api/database/database.go index 4ea706cdc..997687e0f 100644 --- a/core/block/import/notion/api/database/database.go +++ b/core/block/import/notion/api/database/database.go @@ -258,7 +258,6 @@ func (ds *Service) getRelationDetails(databaseProperty property.DatabaseProperty details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, databaseProperty.GetID()) uniqueKey, err := domain.NewUniqueKey(sb.SmartBlockTypeRelation, key) diff --git a/core/block/import/notion/api/page/task.go b/core/block/import/notion/api/page/task.go index 2afed2cda..c4e09d604 100644 --- a/core/block/import/notion/api/page/task.go +++ b/core/block/import/notion/api/page/task.go @@ -313,7 +313,6 @@ func (pt *Task) getRelationDetails(key string, name string, propObject property. details.SetInt64(bundle.RelationKeyRelationFormat, int64(propObject.GetFormat())) details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, key) - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) details.SetString(bundle.RelationKeySourceFilePath, propObject.GetID()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) @@ -563,7 +562,6 @@ func getDetailsForRelationOption(name, rel string) (string, *domain.Details) { details := domain.NewDetails() details.SetString(bundle.RelationKeyName, name) details.SetString(bundle.RelationKeyRelationKey, rel) - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) details.SetInt64(bundle.RelationKeyCreatedDate, time.Now().Unix()) uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelationOption, id) diff --git a/core/block/object/objectcreator/chat.go b/core/block/object/objectcreator/chat.go index 468e7c788..1d480cf5e 100644 --- a/core/block/object/objectcreator/chat.go +++ b/core/block/object/objectcreator/chat.go @@ -41,7 +41,6 @@ func (s *service) createChatDerived(ctx context.Context, space clientspace.Space } createState := state.NewDocWithUniqueKey("", nil, key).(*state.State) - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) details.Set(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) createState.SetDetails(details) diff --git a/core/block/object/objectcreator/object_type.go b/core/block/object/objectcreator/object_type.go index ae6173d4e..432906da0 100644 --- a/core/block/object/objectcreator/object_type.go +++ b/core/block/object/objectcreator/object_type.go @@ -45,7 +45,6 @@ func (s *service) createObjectType(ctx context.Context, space clientspace.Space, } object.SetString(bundle.RelationKeyId, id) - object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_objectType)) object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_objectType)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) diff --git a/core/block/object/objectcreator/relation.go b/core/block/object/objectcreator/relation.go index 336e0a66c..d25e71984 100644 --- a/core/block/object/objectcreator/relation.go +++ b/core/block/object/objectcreator/relation.go @@ -59,7 +59,6 @@ func (s *service) createRelation(ctx context.Context, space clientspace.Space, d } // todo: check the existence of objectTypes in space. InstallBundledObjects should be called same as for recommendedRelations on type creation - object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relation)) object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relation)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) diff --git a/core/block/object/objectcreator/relation_option.go b/core/block/object/objectcreator/relation_option.go index c09e8a5c3..c7156594e 100644 --- a/core/block/object/objectcreator/relation_option.go +++ b/core/block/object/objectcreator/relation_option.go @@ -36,7 +36,6 @@ func (s *service) createRelationOption(ctx context.Context, space clientspace.Sp object = details.Copy() object.SetString(bundle.RelationKeyUniqueKey, uniqueKey.Marshal()) - object.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_relationOption)) object.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_relationOption)) createState := state.NewDocWithUniqueKey("", nil, uniqueKey).(*state.State) diff --git a/core/block/source/store.go b/core/block/source/store.go index 5133c615d..dbda59d0f 100644 --- a/core/block/source/store.go +++ b/core/block/source/store.go @@ -78,11 +78,9 @@ func (s *store) ReadDoc(ctx context.Context, receiver ChangeReceiver, empty bool switch s.sbType { case smartblock.SmartBlockTypeChatDerivedObject: st.SetObjectTypeKey(bundle.TypeKeyChatDerived) - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_chatDerived))) st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_chatDerived))) case smartblock.SmartBlockTypeAccountObject: st.SetObjectTypeKey(bundle.TypeKeyProfile) - st.SetDetailAndBundledRelation(bundle.RelationKeyResolvedLayout, domain.Int64(int64(model.ObjectType_profile))) st.SetDetailAndBundledRelation(bundle.RelationKeyLayout, domain.Int64(int64(model.ObjectType_profile))) default: return nil, fmt.Errorf("unsupported smartblock type: %v", s.sbType) diff --git a/core/files/file.go b/core/files/file.go index 1e1e85ca4..6baa47654 100644 --- a/core/files/file.go +++ b/core/files/file.go @@ -88,17 +88,14 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er if meta.Media == "application/pdf" { typeKey = bundle.TypeKeyFile - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_pdf)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_pdf)) } if strings.HasPrefix(meta.Media, "video") { typeKey = bundle.TypeKeyVideo - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_video)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_video)) } if strings.HasPrefix(meta.Media, "audio") { - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_audio)) details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_audio)) if audioDetails, err := f.audioDetails(ctx); err == nil { details = details.Merge(audioDetails) @@ -107,7 +104,6 @@ func (f *file) Details(ctx context.Context) (*domain.Details, domain.TypeKey, er } if filepath.Ext(meta.Name) == constant.SvgExt { typeKey = bundle.TypeKeyImage - details.Set(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_image)) details.Set(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_image)) } @@ -144,7 +140,6 @@ func calculateCommonDetails( det := domain.NewDetails() det.SetString(bundle.RelationKeyFileId, fileId.String()) det.SetBool(bundle.RelationKeyIsReadonly, false) - det.SetInt64(bundle.RelationKeyResolvedLayout, int64(layout)) det.SetInt64(bundle.RelationKeyLayout, int64(layout)) det.SetFloat64(bundle.RelationKeyLastModifiedDate, float64(lastModifiedDate)) return det diff --git a/core/files/file_test.go b/core/files/file_test.go index 5a369d9ae..9a140ce69 100644 --- a/core/files/file_test.go +++ b/core/files/file_test.go @@ -29,7 +29,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyImage, typeKey) - assert.Equal(t, int64(model.ObjectType_image), details.GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_image), details.GetInt64(bundle.RelationKeyLayout)) assert.Equal(t, "svg", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "image", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -49,7 +49,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyFile, typeKey) - assert.Equal(t, int64(model.ObjectType_file), details.GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_file), details.GetInt64(bundle.RelationKeyLayout)) assert.Equal(t, "txt", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -70,7 +70,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyAudio, typeKey) - assert.Equal(t, int64(model.ObjectType_audio), details.GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_audio), details.GetInt64(bundle.RelationKeyLayout)) assert.Equal(t, "mp3", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -91,7 +91,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyVideo, typeKey) - assert.Equal(t, int64(model.ObjectType_video), details.GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_video), details.GetInt64(bundle.RelationKeyLayout)) assert.Equal(t, "mp4", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) @@ -112,7 +112,7 @@ func TestFile_Details(t *testing.T) { // then assert.Nil(t, err) assert.Equal(t, bundle.TypeKeyFile, typeKey) - assert.Equal(t, int64(model.ObjectType_pdf), details.GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_pdf), details.GetInt64(bundle.RelationKeyLayout)) assert.Equal(t, "pdf", details.GetString(bundle.RelationKeyFileExt)) assert.Equal(t, "file", details.GetString(bundle.RelationKeyName)) assert.Equal(t, "id", details.GetString(bundle.RelationKeyFileId)) diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index c5a1b51cf..73bed0e04 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -348,7 +348,6 @@ func (s *service) makeInitialDetails(fileId domain.FileId, origin objectorigin.O details := domain.NewDetails() details.SetString(bundle.RelationKeyFileId, fileId.String()) // Use general file layout. It will be changed for proper layout after indexing - details.SetInt64(bundle.RelationKeyResolvedLayout, int64(model.ObjectType_file)) details.SetInt64(bundle.RelationKeyLayout, int64(model.ObjectType_file)) details.SetInt64(bundle.RelationKeyFileIndexingStatus, int64(model.FileIndexingStatus_NotIndexed)) details.SetInt64(bundle.RelationKeySyncStatus, int64(domain.ObjectSyncStatusQueued)) From 769f0c3e26df418ba10dc10b5c578d686a12620f Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 26 Feb 2025 10:59:13 +0100 Subject: [PATCH 163/176] GO-4790: Use better mimetype detection library --- core/files/fileuploader/uploader.go | 12 +++++++----- core/files/options.go | 12 +++--------- go.mod | 3 +-- go.sum | 6 ++---- 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/core/files/fileuploader/uploader.go b/core/files/fileuploader/uploader.go index 229dc3cdc..fa141074b 100644 --- a/core/files/fileuploader/uploader.go +++ b/core/files/fileuploader/uploader.go @@ -11,12 +11,13 @@ import ( "io/ioutil" "net/http" "os" + "path" "path/filepath" "strings" "time" "github.com/anyproto/any-sync/app" - "github.com/h2non/filetype" + "github.com/gabriel-vasile/mimetype" "github.com/anyproto/anytype-heart/core/block/cache" "github.com/anyproto/anytype-heart/core/block/simple" @@ -540,12 +541,13 @@ func (u *uploader) getOrCreateFileObject(ctx context.Context, addResult *files.A } func (u *uploader) detectType(buf *fileReader) model.BlockContentFileType { - b, err := buf.Peek(8192) - if err != nil && err != io.EOF { + mime, err := mimetype.DetectReader(buf) + if err != nil { + log.With("error", err).Error("detect MIME") return model.BlockContentFile_File } - tp, _ := filetype.Match(b) - return file.DetectTypeByMIME(u.name, tp.MIME.Value) + mediaType, _ := path.Split(mime.String()) + return file.DetectTypeByMIME(u.name, mediaType) } type FileComponent interface { diff --git a/core/files/options.go b/core/files/options.go index 9228e2966..f4a5c5720 100644 --- a/core/files/options.go +++ b/core/files/options.go @@ -4,9 +4,8 @@ import ( "fmt" "io" "io/ioutil" - "net/http" - "github.com/h2non/filetype" + "github.com/gabriel-vasile/mimetype" ) type AddOption func(*AddOptions) @@ -70,13 +69,8 @@ func (s *service) normalizeOptions(opts *AddOptions) error { return fmt.Errorf("failed to seek underlying reader: %w", err) } - t, err := filetype.Match(data) - if err != nil { - log.Warnf("filetype failed to match: %s", err) - opts.Media = http.DetectContentType(data) - } else { - opts.Media = t.MIME.Value - } + mime := mimetype.Detect(data) + opts.Media = mime.String() } return nil diff --git a/go.mod b/go.mod index af6407466..25fa5c311 100644 --- a/go.mod +++ b/go.mod @@ -29,6 +29,7 @@ require ( github.com/dsoprea/go-exif/v3 v3.0.1 github.com/dsoprea/go-jpeg-image-structure/v2 v2.0.0-20221012074422-4f3f7e934102 github.com/ethereum/go-ethereum v1.13.15 + github.com/gabriel-vasile/mimetype v1.4.8 github.com/gin-gonic/gin v1.10.0 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 github.com/go-chi/chi/v5 v5.2.1 @@ -45,7 +46,6 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 - github.com/h2non/filetype v1.1.3 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/yamux v0.1.2 github.com/hbagdi/go-unsplash v0.0.0-20230414214043-474fc02c9119 @@ -161,7 +161,6 @@ require ( github.com/flopp/go-findfont v0.1.0 // indirect github.com/fogleman/gg v1.3.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.6 // indirect github.com/gammazero/deque v1.0.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-errors/errors v1.4.2 // indirect diff --git a/go.sum b/go.sum index b491a755b..b4a4a428c 100644 --- a/go.sum +++ b/go.sum @@ -307,8 +307,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gabriel-vasile/mimetype v1.4.6 h1:3+PzJTKLkvgjeTbts6msPJt4DixhT4YtFNf1gtGe3zc= -github.com/gabriel-vasile/mimetype v1.4.6/go.mod h1:JX1qVKqZd40hUPpAfiNTe0Sne7hdfKSbOqqmkq8GCXc= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/gammazero/chanqueue v1.0.0 h1:FER/sMailGFA3DDvFooEkipAMU+3c9Bg3bheloPSz6o= github.com/gammazero/chanqueue v1.0.0/go.mod h1:fMwpwEiuUgpab0sH4VHiVcEoji1pSi+EIzeG4TPeKPc= github.com/gammazero/deque v1.0.0 h1:LTmimT8H7bXkkCy6gZX7zNLtkbz4NdS2z8LZuor3j34= @@ -522,8 +522,6 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= -github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= -github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= From 952d7e975b21c7ad96b1e35827d41898980e1325 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 13:28:03 +0300 Subject: [PATCH 164/176] GO-5182 Allow change type to Bookmark --- core/block/editor/converter/layout.go | 1 + core/block/editor/converter/layout_test.go | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/core/block/editor/converter/layout.go b/core/block/editor/converter/layout.go index f58cce1da..4f54164cd 100644 --- a/core/block/editor/converter/layout.go +++ b/core/block/editor/converter/layout.go @@ -82,6 +82,7 @@ func isPageLayout(layout model.ObjectTypeLayout) bool { model.ObjectType_todo, model.ObjectType_note, model.ObjectType_profile, + model.ObjectType_bookmark, }, layout) } diff --git a/core/block/editor/converter/layout_test.go b/core/block/editor/converter/layout_test.go index e18d8ae8d..f83dd323c 100644 --- a/core/block/editor/converter/layout_test.go +++ b/core/block/editor/converter/layout_test.go @@ -218,3 +218,16 @@ func TestInsertGroupRelationKey(t *testing.T) { }) } } + +func TestLayout_isConversionAllowed(t *testing.T) { + lc := layoutConverter{} + assert.True(t, lc.isConversionAllowed(model.ObjectType_basic, model.ObjectType_todo)) + assert.True(t, lc.isConversionAllowed(model.ObjectType_profile, model.ObjectType_note)) + assert.True(t, lc.isConversionAllowed(model.ObjectType_basic, model.ObjectType_bookmark)) + assert.True(t, lc.isConversionAllowed(model.ObjectType_bookmark, model.ObjectType_note)) + assert.True(t, lc.isConversionAllowed(model.ObjectType_set, model.ObjectType_collection)) + assert.False(t, lc.isConversionAllowed(model.ObjectType_collection, model.ObjectType_set)) + assert.False(t, lc.isConversionAllowed(model.ObjectType_set, model.ObjectType_basic)) + assert.False(t, lc.isConversionAllowed(model.ObjectType_todo, model.ObjectType_collection)) + assert.False(t, lc.isConversionAllowed(model.ObjectType_basic, model.ObjectType_relation)) +} From cbd35854673ce71791ab2b7dae4d78c29e8ffa9e Mon Sep 17 00:00:00 2001 From: Grigory Efimov Date: Wed, 26 Feb 2025 07:32:34 -0300 Subject: [PATCH 165/176] Fix build ci (#2161) --- makefiles/ci-pack-server.mk | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/makefiles/ci-pack-server.mk b/makefiles/ci-pack-server.mk index db764b133..2f4612cac 100644 --- a/makefiles/ci-pack-server.mk +++ b/makefiles/ci-pack-server.mk @@ -1,4 +1,4 @@ -PACK_SERVER_OS_ARCHS = windows-amd64 darwin-amd64 darwin-arm64 linux-amd64 +PACK_SERVER_OS_ARCHS = windows-amd64 darwin-amd64 darwin-arm64 linux-amd64 linux-arm64 prepare-pack-server: mkdir -p .release/ @@ -6,11 +6,15 @@ pack-server-%: @OSARCH=$*; \ if [ "$$OSARCH" = "windows-amd64" ]; then \ BINARY_NAME=grpc-server.exe; \ + ARCHIVE_CMD="zip -r"; \ + ARCHIVE_FILE="js_$(VERSION)_$$OSARCH.zip"; \ else \ BINARY_NAME=grpc-server; \ + ARCHIVE_CMD="tar -czf"; \ + ARCHIVE_FILE="js_$(VERSION)_$$OSARCH.tar.gz"; \ fi; \ cp ./$$OSARCH* ./$$BINARY_NAME; \ - tar -czf js_$(VERSION)_$$OSARCH.tar.gz $$BINARY_NAME protobuf json; \ - mv js_$(VERSION)_$$OSARCH.tar.gz .release/ + $$ARCHIVE_CMD $$ARCHIVE_FILE $$BINARY_NAME protobuf json; \ + mv $$ARCHIVE_FILE .release/ pack-server: prepare-pack-server $(addprefix pack-server-,$(PACK_SERVER_OS_ARCHS)) From aa52462c75bda446f1c35b969647291e45ad3ca9 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Wed, 26 Feb 2025 13:53:35 +0100 Subject: [PATCH 166/176] GO-5154 Remove unnecessary events (#2150) --- core/anytype/bootstrap.go | 15 - core/block/editor/smartblock/smartblock.go | 17 - core/block/editor/stext/text.go | 17 - core/block/object/objectcreator/smartblock.go | 11 - core/block/service.go | 16 - core/block/source/source.go | 16 + core/indexer/reindex.go | 9 - core/indexer/spaceindexer.go | 14 - metrics/client.go | 1 - metrics/events.go | 304 ++---------------- metrics/interceptors.go | 8 - metrics/service.go | 5 +- util/reflection/util.go | 14 + 13 files changed, 53 insertions(+), 394 deletions(-) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 76911ac1d..5dc2076be 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -154,14 +154,8 @@ func StartNewApp(ctx context.Context, clientWithVersion string, components ...ap totalSpent := time.Since(startTime) l := log.With(zap.Int64("total", totalSpent.Milliseconds())) stat := a.StartStat() - event := &metrics.AppStart{ - TotalMs: stat.SpentMsTotal, - PerCompMs: stat.SpentMsPerComp, - Extra: map[string]interface{}{}, - } if v, ok := ctx.Value(metrics.CtxKeyRPC).(string); ok { - event.Request = v l = l.With(zap.String("rpc", v)) } @@ -178,19 +172,10 @@ func StartNewApp(ctx context.Context, clientWithVersion string, components ...ap for _, field := range c.GetLogFields() { field.Key = comp.Name() + "_" + field.Key l = l.With(field) - if field.String != "" { - event.Extra[field.Key] = field.String - } else { - event.Extra[field.Key] = field.Integer - } - } } }) - if metrics.Enabled { - metrics.Service.Send(event) - } if totalSpent > WarningAfter { l.Warn("app started") } else { diff --git a/core/block/editor/smartblock/smartblock.go b/core/block/editor/smartblock/smartblock.go index 1d8b95829..f23821249 100644 --- a/core/block/editor/smartblock/smartblock.go +++ b/core/block/editor/smartblock/smartblock.go @@ -30,7 +30,6 @@ import ( "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/relationutils" "github.com/anyproto/anytype-heart/core/session" - "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" @@ -628,7 +627,6 @@ func (sb *smartBlock) EnabledRelationAsDependentObjects() { } func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { - startTime := time.Now() if sb.IsDeleted() { return domain.ErrObjectIsDeleted } @@ -700,8 +698,6 @@ func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { removeInternalFlags(s) } - beforeApplyStateTime := time.Now() - migrationVersionUpdated := true if parent := s.ParentState(); parent != nil { migrationVersionUpdated = s.MigrationVersion() != parent.MigrationVersion() @@ -720,7 +716,6 @@ func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { sb.updateRestrictions() sb.setRestrictionsDetail(s) - afterApplyStateTime := time.Now() st := sb.Doc.(*state.State) changes := st.GetChanges() @@ -805,7 +800,6 @@ func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { sb.runIndexer(st) } - afterPushChangeTime := time.Now() if sendEvent { events := msgsToEvents(msgs) if ctx := s.Context(); ctx != nil { @@ -821,22 +815,11 @@ func (sb *smartBlock) Apply(s *state.State, flags ...ApplyFlag) (err error) { if hasDepIds(sb.GetRelationLinks(), &act) { sb.CheckSubscriptions() } - afterReportChangeTime := time.Now() if hooks { if e := sb.execHooks(HookAfterApply, ApplyInfo{State: sb.Doc.(*state.State), Events: msgs, Changes: changes}); e != nil { log.With("objectID", sb.Id()).Warnf("after apply execHooks error: %v", e) } } - afterApplyHookTime := time.Now() - - metrics.Service.Send(&metrics.StateApply{ - BeforeApplyMs: beforeApplyStateTime.Sub(startTime).Milliseconds(), - StateApplyMs: afterApplyStateTime.Sub(beforeApplyStateTime).Milliseconds(), - PushChangeMs: afterPushChangeTime.Sub(afterApplyStateTime).Milliseconds(), - ReportChangeMs: afterReportChangeTime.Sub(afterPushChangeTime).Milliseconds(), - ApplyHookMs: afterApplyHookTime.Sub(afterReportChangeTime).Milliseconds(), - ObjectId: sb.Id(), - }) return } diff --git a/core/block/editor/stext/text.go b/core/block/editor/stext/text.go index f78356ab2..6e8328e6a 100644 --- a/core/block/editor/stext/text.go +++ b/core/block/editor/stext/text.go @@ -15,7 +15,6 @@ import ( "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/session" - "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceindex" "github.com/anyproto/anytype-heart/pkg/lib/logging" @@ -82,7 +81,6 @@ func (t *textImpl) UpdateTextBlocks(ctx session.Context, ids []string, showEvent } func (t *textImpl) Split(ctx session.Context, req pb.RpcBlockSplitRequest) (newId string, err error) { - startTime := time.Now() s := t.NewStateCtx(ctx) tb, err := getText(s, req.BlockId) if err != nil { @@ -155,21 +153,13 @@ func (t *textImpl) Split(ctx session.Context, req pb.RpcBlockSplitRequest) (newI return } } - algorithmMs := time.Now().Sub(startTime).Milliseconds() if err = t.Apply(s); err != nil { return } - applyMs := time.Now().Sub(startTime).Milliseconds() - algorithmMs - metrics.Service.Send(&metrics.BlockSplit{ - ObjectId: t.Id(), - AlgorithmMs: algorithmMs, - ApplyMs: applyMs, - }) return } func (t *textImpl) Merge(ctx session.Context, firstId, secondId string) (err error) { - startTime := time.Now() s := t.NewStateCtx(ctx) // Don't merge blocks inside header block @@ -196,16 +186,9 @@ func (t *textImpl) Merge(ctx session.Context, firstId, secondId string) (err err } s.Unlink(second.Model().Id) first.Model().ChildrenIds = append(first.Model().ChildrenIds, second.Model().ChildrenIds...) - algorithmMs := time.Now().Sub(startTime).Milliseconds() if err = t.Apply(s); err != nil { return } - applyMs := time.Now().Sub(startTime).Milliseconds() - algorithmMs - metrics.Service.Send(&metrics.BlockMerge{ - ObjectId: t.Id(), - AlgorithmMs: algorithmMs, - ApplyMs: applyMs, - }) return } diff --git a/core/block/object/objectcreator/smartblock.go b/core/block/object/objectcreator/smartblock.go index 1e10a2946..463509eeb 100644 --- a/core/block/object/objectcreator/smartblock.go +++ b/core/block/object/objectcreator/smartblock.go @@ -11,7 +11,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/object/objectcache" "github.com/anyproto/anytype-heart/core/domain" - "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pkg/lib/bundle" coresb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/space/clientspace" @@ -58,7 +57,6 @@ func (s *service) CreateSmartBlockFromStateInSpaceWithOptions( if createState == nil { createState = state.NewDoc("", nil).(*state.State) } - startTime := time.Now() // priority: // 1. details // 2. createState @@ -71,11 +69,6 @@ func (s *service) CreateSmartBlockFromStateInSpaceWithOptions( createState.SetDetailAndBundledRelation(bundle.RelationKeySpaceId, domain.String(spc.Id())) - ev := &metrics.CreateObjectEvent{ - SetDetailsMs: time.Since(startTime).Milliseconds(), - } - - ctx = context.WithValue(ctx, eventCreate, ev) initFunc := func(id string) *smartblock.InitContext { createState.SetRootId(id) return &smartblock.InitContext{ @@ -97,10 +90,6 @@ func (s *service) CreateSmartBlockFromStateInSpaceWithOptions( sb.Unlock() id = sb.Id() - ev.SmartblockCreateMs = time.Since(startTime).Milliseconds() - ev.SetDetailsMs - ev.WorkspaceCreateMs - ev.GetWorkspaceBlockWaitMs - ev.SmartblockType = int(sbType) - ev.ObjectId = id - metrics.Service.Send(ev) return id, newDetails, nil } diff --git a/core/block/service.go b/core/block/service.go index 33faf3392..9de04b392 100644 --- a/core/block/service.go +++ b/core/block/service.go @@ -36,7 +36,6 @@ import ( "github.com/anyproto/anytype-heart/core/files/fileobject" "github.com/anyproto/anytype-heart/core/files/fileuploader" "github.com/anyproto/anytype-heart/core/session" - "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core" @@ -184,27 +183,22 @@ func (s *Service) GetObjectByFullID(ctx context.Context, id domain.FullID) (sb s func (s *Service) OpenBlock(sctx session.Context, id domain.FullID, includeRelationsAsDependentObjects bool) (obj *model.ObjectView, err error) { id = s.resolveFullId(id) - startTime := time.Now() err = s.DoFullId(id, func(ob smartblock.SmartBlock) error { if includeRelationsAsDependentObjects { ob.EnabledRelationAsDependentObjects() } - afterSmartBlockTime := time.Now() ob.RegisterSession(sctx) - afterDataviewTime := time.Now() st := ob.NewState() st.SetLocalDetail(bundle.RelationKeyLastOpenedDate, domain.Int64(time.Now().Unix())) if err = ob.Apply(st, smartblock.NoHistory, smartblock.NoEvent, smartblock.SkipIfNoChanges, smartblock.KeepInternalFlags, smartblock.IgnoreNoPermissions); err != nil { log.Errorf("failed to update lastOpenedDate: %s", err) } - afterApplyTime := time.Now() if obj, err = ob.Show(); err != nil { return fmt.Errorf("show: %w", err) } - afterShowTime := time.Now() if err != nil && !errors.Is(err, treestorage.ErrUnknownTreeId) { log.Errorf("failed to watch status for object %s: %s", id, err) @@ -214,16 +208,6 @@ func (s *Service) OpenBlock(sctx session.Context, id domain.FullID, includeRelat v.InjectVirtualBlocks(id.ObjectID, obj) } - afterHashesTime := time.Now() - metrics.Service.Send(&metrics.OpenBlockEvent{ - ObjectId: id.ObjectID, - GetBlockMs: afterSmartBlockTime.Sub(startTime).Milliseconds(), - DataviewMs: afterDataviewTime.Sub(afterSmartBlockTime).Milliseconds(), - ApplyMs: afterApplyTime.Sub(afterDataviewTime).Milliseconds(), - ShowMs: afterShowTime.Sub(afterApplyTime).Milliseconds(), - FileWatcherMs: afterHashesTime.Sub(afterShowTime).Milliseconds(), - SmartblockType: int(ob.Type()), - }) return nil }) if err != nil { diff --git a/core/block/source/source.go b/core/block/source/source.go index 4082e4cac..df9062964 100644 --- a/core/block/source/source.go +++ b/core/block/source/source.go @@ -24,6 +24,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/editor/template" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/files" + "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" @@ -31,6 +32,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" "github.com/anyproto/anytype-heart/space/spacecore/typeprovider" + "github.com/anyproto/anytype-heart/util/reflection" "github.com/anyproto/anytype-heart/util/slice" ) @@ -377,6 +379,20 @@ type PushChangeParams struct { } func (s *source) PushChange(params PushChangeParams) (id string, err error) { + for _, change := range params.Changes { + name := reflection.GetChangeContent(change.Value) + if name == "" { + log.Errorf("can't detect change content for %s", change.Value) + } else { + ev := &metrics.ChangeEvent{ + ChangeName: name, + SbType: s.smartblockType.String(), + Count: 1, + } + metrics.Service.SendSampled(ev) + } + } + if params.Time.IsZero() { params.Time = time.Now() } diff --git a/core/indexer/reindex.go b/core/indexer/reindex.go index 120d00a80..5ff6a2d67 100644 --- a/core/indexer/reindex.go +++ b/core/indexer/reindex.go @@ -562,15 +562,6 @@ func (i *indexer) logFinishedReindexStat(reindexType metrics.ReindexType, totalI } else { log.Info(msg) } - - if metrics.Enabled { - metrics.Service.Send(&metrics.ReindexEvent{ - ReindexType: reindexType, - Total: totalIds, - Succeed: succeedIds, - SpentMs: int(spent.Milliseconds()), - }) - } } func (i *indexer) RemoveIndexes(spaceId string) error { diff --git a/core/indexer/spaceindexer.go b/core/indexer/spaceindexer.go index 6bfe56678..ff4a82506 100644 --- a/core/indexer/spaceindexer.go +++ b/core/indexer/spaceindexer.go @@ -12,7 +12,6 @@ import ( "golang.org/x/exp/slices" "github.com/anyproto/anytype-heart/core/block/editor/smartblock" - "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceindex" "github.com/anyproto/anytype-heart/space/spacecore/storage" @@ -120,7 +119,6 @@ func (i *spaceIndexer) Index(info smartblock.DocInfo, options ...smartblock.Inde func (i *spaceIndexer) index(ctx context.Context, info smartblock.DocInfo, options ...smartblock.IndexOption) error { // options are stored in smartblock pkg because of cyclic dependency :( - startTime := time.Now() opts := &smartblock.IndexOptions{} for _, o := range options { o(opts) @@ -163,7 +161,6 @@ func (i *spaceIndexer) index(ctx context.Context, info smartblock.DocInfo, optio details := info.Details - indexSetTime := time.Now() var hasError bool if indexLinks { if err = i.spaceIndex.UpdateObjectLinks(ctx, info.Id, info.Links); err != nil { @@ -172,7 +169,6 @@ func (i *spaceIndexer) index(ctx context.Context, info smartblock.DocInfo, optio } } - indexLinksTime := time.Now() if indexDetails { if err := i.spaceIndex.UpdateObjectDetails(ctx, info.Id, details); err != nil { hasError = true @@ -202,21 +198,11 @@ func (i *spaceIndexer) index(ctx context.Context, info smartblock.DocInfo, optio } else { _ = i.spaceIndex.DeleteDetails(ctx, []string{info.Id}) } - indexDetailsTime := time.Now() - detailsCount := details.Len() if !hasError { saveIndexedHash() } - metrics.Service.Send(&metrics.IndexEvent{ - ObjectId: info.Id, - IndexLinksTimeMs: indexLinksTime.Sub(indexSetTime).Milliseconds(), - IndexDetailsTimeMs: indexDetailsTime.Sub(indexLinksTime).Milliseconds(), - IndexSetRelationsTimeMs: indexSetTime.Sub(startTime).Milliseconds(), - DetailsCount: detailsCount, - }) - return nil } diff --git a/metrics/client.go b/metrics/client.go index 062dc9c9c..b8d72b653 100644 --- a/metrics/client.go +++ b/metrics/client.go @@ -149,7 +149,6 @@ func (c *client) recordAggregatedData() { toSend := c.aggregatableMap c.aggregatableMap = make(map[string]SamplableEvent) c.lock.Unlock() - // итерейтим Ñразу Ñтарую мапу и Ñкармливаем ГЦ for _, ev := range toSend { c.send(ev) } diff --git a/metrics/events.go b/metrics/events.go index e63c217b1..e76bdc7b1 100644 --- a/metrics/events.go +++ b/metrics/events.go @@ -48,132 +48,6 @@ func (t ReindexType) String() string { return "unknown" } -const IndexEventThresholdMs = 10 - -type IndexEvent struct { - baseInfo - ObjectId string - IndexLinksTimeMs int64 - IndexDetailsTimeMs int64 - IndexSetRelationsTimeMs int64 - RelationsCount int - DetailsCount int - SetRelationsCount int -} - -func (c *IndexEvent) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *IndexEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - if c.IndexLinksTimeMs+c.IndexDetailsTimeMs+c.IndexSetRelationsTimeMs < IndexEventThresholdMs { - return nil - } - - event, properties := setupProperties(arena, "index") - - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("links_ms", arena.NewNumberInt(int(c.IndexLinksTimeMs))) - properties.Set("details_ms", arena.NewNumberInt(int(c.IndexDetailsTimeMs))) - properties.Set("set_ms", arena.NewNumberInt(int(c.IndexSetRelationsTimeMs))) - properties.Set("rel_count", arena.NewNumberInt(c.RelationsCount)) - properties.Set("det_count", arena.NewNumberInt(c.DetailsCount)) - properties.Set("set_rel_count", arena.NewNumberInt(c.SetRelationsCount)) - properties.Set("total_ms", arena.NewNumberInt(int(c.IndexLinksTimeMs+c.IndexDetailsTimeMs+c.IndexSetRelationsTimeMs))) - - return event -} - -const ReindexEventThresholdsMs = 100 - -type ReindexEvent struct { - baseInfo - ReindexType ReindexType - Total int - Succeed int - SpentMs int - IndexesRemoved bool -} - -func (c *ReindexEvent) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *ReindexEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - if c.SpentMs < ReindexEventThresholdsMs { - return nil - } - - event, properties := setupProperties(arena, "store_reindex") - - properties.Set("spent_ms", arena.NewNumberInt(c.SpentMs)) - properties.Set("total", arena.NewNumberInt(c.Total)) - properties.Set("failed", arena.NewNumberInt(c.Total-c.Succeed)) - properties.Set("type", arena.NewNumberInt(int(c.ReindexType))) - var isRemoved *fastjson.Value - if c.IndexesRemoved { - isRemoved = arena.NewTrue() - } else { - isRemoved = arena.NewFalse() - } - properties.Set("ix_removed", isRemoved) - - return event -} - -const BlockSplitEventThresholdsMs = 10 - -type BlockSplit struct { - baseInfo - AlgorithmMs int64 - ApplyMs int64 - ObjectId string -} - -func (c *BlockSplit) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *BlockSplit) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - if c.ApplyMs+c.AlgorithmMs < BlockSplitEventThresholdsMs { - return nil - } - - event, properties := setupProperties(arena, "block_merge") - - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("algorithm_ms", arena.NewNumberInt(int(c.AlgorithmMs))) - properties.Set("apply_ms", arena.NewNumberInt(int(c.ApplyMs))) - properties.Set("total_ms", arena.NewNumberInt(int(c.AlgorithmMs+c.ApplyMs))) - - return event -} - -type TreeBuild struct { - baseInfo - SbType uint64 - TimeMs int64 - ObjectId string - Logs int - Request string -} - -func (c *TreeBuild) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *TreeBuild) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "tree_build") - - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("logs", arena.NewNumberInt(c.Logs)) - properties.Set("request", arena.NewString(c.Request)) - properties.Set("time_ms", arena.NewNumberInt(int(c.TimeMs))) - properties.Set("sb_type", arena.NewNumberInt(int(c.SbType))) - - return event -} - func setupProperties(arena *fastjson.Arena, eventType string) (*fastjson.Value, *fastjson.Value) { event := arena.NewObject() properties := arena.NewObject() @@ -182,153 +56,6 @@ func setupProperties(arena *fastjson.Arena, eventType string) (*fastjson.Value, return event, properties } -const StateApplyThresholdMs = 100 - -type StateApply struct { - baseInfo - BeforeApplyMs int64 - StateApplyMs int64 - PushChangeMs int64 - ReportChangeMs int64 - ApplyHookMs int64 - ObjectId string -} - -func (c *StateApply) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *StateApply) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - total := c.StateApplyMs + c.PushChangeMs + c.BeforeApplyMs + c.ApplyHookMs + c.ReportChangeMs - if total <= StateApplyThresholdMs { - return nil - } - event, properties := setupProperties(arena, "state_apply") - - properties.Set("before_ms", arena.NewNumberInt(int(c.BeforeApplyMs))) - properties.Set("apply_ms", arena.NewNumberInt(int(c.StateApplyMs))) - properties.Set("push_ms", arena.NewNumberInt(int(c.PushChangeMs))) - properties.Set("report_ms", arena.NewNumberInt(int(c.ReportChangeMs))) - properties.Set("hook_ms", arena.NewNumberInt(int(c.ApplyHookMs))) - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("total_ms", arena.NewNumberInt(int(c.StateApplyMs+c.PushChangeMs+c.BeforeApplyMs+c.ApplyHookMs+c.ReportChangeMs))) - - return event -} - -type AppStart struct { - baseInfo - Request string - TotalMs int64 - PerCompMs map[string]int64 - Extra map[string]interface{} -} - -func (c *AppStart) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *AppStart) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "app_start") - - properties.Set("request", arena.NewString(c.Request)) - properties.Set("time_ms", arena.NewNumberInt(int(c.TotalMs))) - for comp, ms := range c.PerCompMs { - properties.Set("spent_"+comp, arena.NewNumberInt(int(ms))) - } - - for key, val := range c.Extra { - switch val := val.(type) { - case string: - properties.Set(key, arena.NewString(val)) - case int64: - properties.Set(key, arena.NewNumberInt(int(val))) - } - } - - return event -} - -type BlockMerge struct { - baseInfo - AlgorithmMs int64 - ApplyMs int64 - ObjectId string -} - -func (c *BlockMerge) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *BlockMerge) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "block_split") - - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("algorithm_ms", arena.NewNumberInt(int(c.AlgorithmMs))) - properties.Set("apply_ms", arena.NewNumberInt(int(c.ApplyMs))) - properties.Set("total_ms", arena.NewNumberInt(int(c.AlgorithmMs+c.ApplyMs))) - - return event -} - -type CreateObjectEvent struct { - baseInfo - SetDetailsMs int64 - GetWorkspaceBlockWaitMs int64 - WorkspaceCreateMs int64 - SmartblockCreateMs int64 - SmartblockType int - ObjectId string -} - -func (c *CreateObjectEvent) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *CreateObjectEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "create_object") - - properties.Set("set_details_ms", arena.NewNumberInt(int(c.SetDetailsMs))) - properties.Set("get_workspace_block_wait_ms", arena.NewNumberInt(int(c.GetWorkspaceBlockWaitMs))) - properties.Set("workspace_create_ms", arena.NewNumberInt(int(c.WorkspaceCreateMs))) - properties.Set("smartblock_create_ms", arena.NewNumberInt(int(c.SmartblockCreateMs))) - properties.Set("total_ms", arena.NewNumberInt(int(c.SetDetailsMs+c.GetWorkspaceBlockWaitMs+c.WorkspaceCreateMs+c.SmartblockCreateMs))) - properties.Set("smartblock_type", arena.NewNumberInt(c.SmartblockType)) - properties.Set("object_id", arena.NewString(c.ObjectId)) - - return event -} - -type OpenBlockEvent struct { - baseInfo - GetBlockMs int64 - DataviewMs int64 - ApplyMs int64 - ShowMs int64 - FileWatcherMs int64 - SmartblockType int - ObjectId string -} - -func (c *OpenBlockEvent) GetBackend() anymetry.MetricsBackend { - return inhouse -} - -func (c *OpenBlockEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "open_block") - - properties.Set("object_id", arena.NewString(c.ObjectId)) - properties.Set("get_block_ms", arena.NewNumberInt(int(c.GetBlockMs))) - properties.Set("dataview_notify_ms", arena.NewNumberInt(int(c.DataviewMs))) - properties.Set("apply_ms", arena.NewNumberInt(int(c.ApplyMs))) - properties.Set("show_ms", arena.NewNumberInt(int(c.ShowMs))) - properties.Set("file_watchers_ms", arena.NewNumberInt(int(c.FileWatcherMs))) - properties.Set("total_ms", arena.NewNumberInt(int(c.GetBlockMs+c.DataviewMs+c.ApplyMs+c.ShowMs+c.FileWatcherMs))) - properties.Set("smartblock_type", arena.NewNumberInt(c.SmartblockType)) - - return event -} - type ImportStartedEvent struct { baseInfo ID string @@ -401,22 +128,31 @@ func (c *MethodEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent return event } -type LongMethodEvent struct { +type ChangeEvent struct { baseInfo - methodName string - middleTime int64 - stack string + ChangeName string + SbType string + Count int } -func (c *LongMethodEvent) GetBackend() anymetry.MetricsBackend { +func (c *ChangeEvent) Key() string { + return c.ChangeName +} + +func (c *ChangeEvent) Aggregate(other SamplableEvent) SamplableEvent { + o := other.(*ChangeEvent) + c.Count += o.Count + return c +} + +func (c *ChangeEvent) GetBackend() anymetry.MetricsBackend { return inhouse } -func (c *LongMethodEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { - event, properties := setupProperties(arena, "LongMethodEvent") - - properties.Set("methodName", arena.NewString(c.methodName)) - properties.Set("middleTime", arena.NewNumberInt(int(c.middleTime))) - properties.Set("stack", arena.NewString(c.stack)) +func (c *ChangeEvent) MarshalFastJson(arena *fastjson.Arena) anymetry.JsonEvent { + event, properties := setupProperties(arena, "ChangeEvent") + properties.Set("changeName", arena.NewString(c.ChangeName)) + properties.Set("sbType", arena.NewString(c.SbType)) + properties.Set("count", arena.NewNumberInt(c.Count)) return event } diff --git a/metrics/interceptors.go b/metrics/interceptors.go index 61d356299..d2aa0d953 100644 --- a/metrics/interceptors.go +++ b/metrics/interceptors.go @@ -230,14 +230,6 @@ func SharedLongMethodsInterceptor(ctx context.Context, req any, methodName strin Warnf("grpc unary request took too long") cache.addMethod(methodName) } - - Service.Send( - &LongMethodEvent{ - methodName: methodName, - middleTime: time.Since(start).Milliseconds(), - stack: debug.ParseGoroutinesDump(lastTrace.String(), "core.(*Middleware)."+methodName), - }, - ) } return resp, err } diff --git a/metrics/service.go b/metrics/service.go index 8fd7709c3..2841a9935 100644 --- a/metrics/service.go +++ b/metrics/service.go @@ -16,9 +16,10 @@ import ( var ( Service = NewService() clientMetricsLog = logging.Logger("service-metrics") - sendInterval = 10.0 * time.Second + sendInterval = 30.0 * time.Second maxTimeout = 30 * time.Second bufferSize = 500 + eventsLimit = 1000 // throttle ) // First constants must repeat syncstatus.SyncStatus constants for @@ -200,7 +201,7 @@ func (s *service) Run() { for _, c := range s.clients { c.ctx, c.cancel = context.WithCancel(context.Background()) - c.setBatcher(mb.New[anymetry.Event](0)) + c.setBatcher(mb.New[anymetry.Event](eventsLimit)) go c.startAggregating() go c.startSendingBatchMessages(s) } diff --git a/util/reflection/util.go b/util/reflection/util.go index 80a4709b0..d34c95338 100644 --- a/util/reflection/util.go +++ b/util/reflection/util.go @@ -4,6 +4,8 @@ import ( "errors" "reflect" "strings" + + "github.com/anyproto/anytype-heart/pb" ) func GetError(obj any) (code int64, description string, err error) { @@ -32,3 +34,15 @@ func GetError(obj any) (code int64, description string, err error) { err = errors.New("can't extract the error field") return } + +func GetChangeContent(val pb.IsChangeContentValue) (name string) { + t := reflect.TypeOf(val) + if t != nil && t.Kind() == reflect.Ptr { + t = t.Elem() + } + if t != nil { + name = t.Name() + name, _ = strings.CutPrefix(name, "ChangeContentValueOf") + } + return +} From 2dd0914d42461bd433eae78a62e10f7d6779909b Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 18:03:48 +0300 Subject: [PATCH 167/176] GO-5165 Leave second migration with empty process --- core/block/editor/page.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index a1771a196..e153be723 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -288,6 +288,10 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig func (p *Page) StateMigrations() migration.Migrations { return migration.MakeMigrations([]migration.Migration{ + { + Version: 2, + Proc: func(s *state.State) {}, + }, { Version: 3, Proc: p.featuredRelationsMigration, From a8e61206798d0144f45213f2c27fd0bb3d627a76 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 18:10:55 +0300 Subject: [PATCH 168/176] GO-5165 Fix PR comments --- core/block/editor/page.go | 5 +++-- core/relationutils/recommended.go | 12 ++++++++---- core/relationutils/recommended_test.go | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index e153be723..efaf9618a 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -308,8 +308,9 @@ func (p *Page) featuredRelationsMigration(s *state.State) { return } - featuredRelationIds := make([]string, len(relationutils.DefaultFeaturedRelationKeys)) - for _, key := range relationutils.DefaultFeaturedRelationKeys { + featuredRelationKeys := relationutils.DefaultFeaturedRelationKeys() + featuredRelationIds := make([]string, 0, len(featuredRelationKeys)) + for _, key := range featuredRelationKeys { id, err := p.Space().DeriveObjectID(nil, domain.MustUniqueKey(coresb.SmartBlockTypeRelation, key.String())) if err != nil { log.Errorf("failed to derive object id: %v", err) diff --git a/core/relationutils/recommended.go b/core/relationutils/recommended.go index 7b9921e6e..35db8fccf 100644 --- a/core/relationutils/recommended.go +++ b/core/relationutils/recommended.go @@ -19,7 +19,7 @@ type ObjectIDDeriver interface { } var ( - DefaultFeaturedRelationKeys = []domain.RelationKey{ + defaultFeaturedRelationKeys = []domain.RelationKey{ bundle.RelationKeyType, bundle.RelationKeyTag, bundle.RelationKeyBacklinks, @@ -64,6 +64,10 @@ var ( errRecommendedRelationsAlreadyFilled = fmt.Errorf("recommended featured relations are already filled") ) +func DefaultFeaturedRelationKeys() []domain.RelationKey { + return defaultFeaturedRelationKeys +} + // FillRecommendedRelations fills recommendedRelations, recommendedFeaturedRelations, recommendedFileRelations // and recommendedHiddenRelations based on object's details. // If these relations are already filled with correct ids, isAlreadyFilled = true is returned @@ -99,7 +103,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta // exclude default recommended featured relations and default hidden relations keys = lo.Uniq(append(keys, defaultRecommendedRelationKeys...)) keys = slices.DeleteFunc(keys, func(key domain.RelationKey) bool { - return slices.Contains(append(defaultHiddenRelationKeys, DefaultFeaturedRelationKeys...), key) + return slices.Contains(append(defaultHiddenRelationKeys, defaultFeaturedRelationKeys...), key) }) relationIds, err := prepareRelationIds(ctx, deriver, keys) @@ -108,7 +112,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta } details.SetStringList(bundle.RelationKeyRecommendedRelations, relationIds) - featuredRelationIds, err := prepareRelationIds(ctx, deriver, DefaultFeaturedRelationKeys) + featuredRelationIds, err := prepareRelationIds(ctx, deriver, defaultFeaturedRelationKeys) if err != nil { return nil, false, fmt.Errorf("prepare recommended featured relation ids: %w", err) } @@ -120,7 +124,7 @@ func FillRecommendedRelations(ctx context.Context, deriver ObjectIDDeriver, deta } details.SetStringList(bundle.RelationKeyRecommendedHiddenRelations, hiddenRelationIds) - return slices.Concat(keys, fileRecommendedRelationKeys, defaultHiddenRelationKeys, DefaultFeaturedRelationKeys), false, nil + return slices.Concat(keys, fileRecommendedRelationKeys, defaultHiddenRelationKeys, defaultFeaturedRelationKeys), false, nil } func getRelationKeysFromDetails(details *domain.Details) ([]domain.RelationKey, error) { diff --git a/core/relationutils/recommended_test.go b/core/relationutils/recommended_test.go index 4db9fd97d..5f67d38cc 100644 --- a/core/relationutils/recommended_test.go +++ b/core/relationutils/recommended_test.go @@ -20,7 +20,7 @@ func (d *mockDeriver) DeriveObjectID(ctx context.Context, key domain.UniqueKey) } func TestFillRecommendedRelations(t *testing.T) { - defaultRecFeatRelIds := buildRelationIds(DefaultFeaturedRelationKeys) + defaultRecFeatRelIds := buildRelationIds(defaultFeaturedRelationKeys) defaultRecRelIds := buildRelationIds(defaultRecommendedRelationKeys) defaultRecHiddenRelIds := buildRelationIds(defaultHiddenRelationKeys) From 1ae31d52c6f6263712e2f15b48051105106cf134 Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 26 Feb 2025 16:38:19 +0100 Subject: [PATCH 169/176] Fix tests --- core/files/fileobject/fileindex_test.go | 11 ----------- core/files/fileobject/service_test.go | 1 - 2 files changed, 12 deletions(-) diff --git a/core/files/fileobject/fileindex_test.go b/core/files/fileobject/fileindex_test.go index 1d361463f..5cf15c60e 100644 --- a/core/files/fileobject/fileindex_test.go +++ b/core/files/fileobject/fileindex_test.go @@ -5,7 +5,6 @@ import ( "fmt" "testing" - "github.com/anyproto/any-sync/app" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -24,16 +23,6 @@ type indexerFixture struct { objectStoreFixture *objectstore.StoreFixture } -type dummyAccountService struct{} - -func (s dummyAccountService) MyParticipantId(spaceId string) string { - return "" -} - -func (s dummyAccountService) Init(_ *app.App) error { return nil } - -func (s dummyAccountService) Name() string { return "dummyAccountService" } - func newIndexerFixture(t *testing.T) *indexerFixture { objectStore := objectstore.NewStoreFixture(t) fileService := mock_files.NewMockService(t) diff --git a/core/files/fileobject/service_test.go b/core/files/fileobject/service_test.go index 1c5c756d6..6e4f8c35c 100644 --- a/core/files/fileobject/service_test.go +++ b/core/files/fileobject/service_test.go @@ -137,7 +137,6 @@ func newFixture(t *testing.T) *fixture { a.Register(testutil.PrepareMock(ctx, a, wallet)) a.Register(&config.Config{DisableFileConfig: true, NetworkMode: pb.RpcAccount_DefaultConfig, PeferYamuxTransport: true}) a.Register(&dummyObjectArchiver{}) - a.Register(&dummyAccountService{}) err = a.Start(ctx) require.NoError(t, err) From 71e6064cfa33f051ddfe9f263633d812e12b7655 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 18:44:50 +0300 Subject: [PATCH 170/176] GO-5167 Remove layout on template apply --- core/block/editor/page.go | 7 ++++++- core/block/template/templateimpl/impl.go | 9 +++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/core/block/editor/page.go b/core/block/editor/page.go index 2d78b202f..f9730b061 100644 --- a/core/block/editor/page.go +++ b/core/block/editor/page.go @@ -278,5 +278,10 @@ func (p *Page) CreationStateMigration(ctx *smartblock.InitContext) migration.Mig } func (p *Page) StateMigrations() migration.Migrations { - return migration.MakeMigrations([]migration.Migration{}) + return migration.MakeMigrations([]migration.Migration{ + { + Version: 2, + Proc: func(s *state.State) {}, + }, + }) } diff --git a/core/block/template/templateimpl/impl.go b/core/block/template/templateimpl/impl.go index a0054e1b8..73a85025b 100644 --- a/core/block/template/templateimpl/impl.go +++ b/core/block/template/templateimpl/impl.go @@ -180,13 +180,14 @@ func extractTargetDetails(originDetails *domain.Details, templateDetails *domain return targetDetails } for key, originalVal := range originDetails.Iterate() { + if key == bundle.RelationKeyLayout { + // layout detail should be removed, as resolvedLayout should be derived from template state + targetDetails.Delete(key) + continue + } templateVal := templateDetails.Get(key) if templateVal.Ok() { inTemplateEmpty := templateVal.IsEmpty() - if key == bundle.RelationKeyLayout { - // layout = 0 is actually basic layout, so it counts - inTemplateEmpty = false - } inOriginEmpty := originalVal.IsEmpty() templateValueShouldBePreferred := lo.Contains(templateIsPreferableRelationKeys, key) if !inTemplateEmpty && (inOriginEmpty || templateValueShouldBePreferred) { From 93ae89019bb24adc948331ec03d884e0fc4ec169 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 19:10:51 +0300 Subject: [PATCH 171/176] GO-5176 Add test on resolvedLayout derivation for templates --- .../editor/smartblock/detailsinject_test.go | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/core/block/editor/smartblock/detailsinject_test.go b/core/block/editor/smartblock/detailsinject_test.go index 6e6e1b30d..f796027f5 100644 --- a/core/block/editor/smartblock/detailsinject_test.go +++ b/core/block/editor/smartblock/detailsinject_test.go @@ -303,7 +303,7 @@ func TestInjectResolvedLayout(t *testing.T) { // then assert.Equal(t, int64(model.ObjectType_todo), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) - t.Run("resolved layout is already injected", func(t *testing.T) { + t.Run("failed to get type object id -> fallback to already sey resolvedLayout", func(t *testing.T) { // given fx := newFixture(id, t) @@ -316,7 +316,7 @@ func TestInjectResolvedLayout(t *testing.T) { // then assert.Equal(t, int64(model.ObjectType_set), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) - t.Run("failed to get type object id -> fallback to basic", func(t *testing.T) { + t.Run("failed to get type object id and resolvedLayout is not set -> fallback to basic", func(t *testing.T) { // given fx := newFixture(id, t) @@ -334,6 +334,7 @@ func TestInjectResolvedLayout(t *testing.T) { st := state.NewDoc("id", nil).NewState() st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyTask.URL())) + st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_basic)) fx.lastDepDetails = map[string]*domain.Details{ bundle.TypeKeyTask.URL(): domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{ @@ -353,6 +354,7 @@ func TestInjectResolvedLayout(t *testing.T) { st := state.NewDoc("id", nil).NewState() st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyProfile.URL())) + st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_basic)) fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{{ bundle.RelationKeyId: domain.String(bundle.TypeKeyProfile.URL()), @@ -378,26 +380,29 @@ func TestInjectResolvedLayout(t *testing.T) { // then assert.Equal(t, int64(model.ObjectType_basic), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) - t.Run("layout is resolved from object store, because layout relation is deleted", func(t *testing.T) { + t.Run("layout for template is resolved from target type", func(t *testing.T) { // given fx := newFixture(id, t) st := state.NewDoc("id", nil).NewState() - st.SetDetail(bundle.RelationKeyCoverId, domain.String("red")) - st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyProfile.URL())) - st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_todo)) - st.ParentState().SetDetail(bundle.RelationKeyLayout, domain.Int64(model.ObjectType_todo)) + st.SetDetail(bundle.RelationKeyTargetObjectType, domain.String(bundle.TypeKeyTask.URL())) + st.SetLocalDetail(bundle.RelationKeyType, domain.String(bundle.TypeKeyTemplate.URL())) + st.SetLocalDetail(bundle.RelationKeyResolvedLayout, domain.Int64(model.ObjectType_note)) + st.SetObjectTypeKey(bundle.TypeKeyTemplate) fx.objectStore.AddObjects(t, testSpaceId, []objectstore.TestObject{{ - bundle.RelationKeyId: domain.String(bundle.TypeKeyProfile.URL()), + bundle.RelationKeyId: domain.String(bundle.TypeKeyTemplate.URL()), bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_profile), + }, { + bundle.RelationKeyId: domain.String(bundle.TypeKeyTask.URL()), + bundle.RelationKeyRecommendedLayout: domain.Int64(model.ObjectType_todo), }}) // when fx.injectResolvedLayout(st) // then - assert.Equal(t, int64(model.ObjectType_profile), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) + assert.Equal(t, int64(model.ObjectType_todo), st.LocalDetails().GetInt64(bundle.RelationKeyResolvedLayout)) }) } From ac9c4f28baab21b86ed95c947735a8ed7ef3bbdf Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 26 Feb 2025 23:57:16 +0300 Subject: [PATCH 172/176] GO-5183 Exclude featuredRelations and layout from usecases --- util/builtinobjects/data/empty.zip | Bin 167740 -> 167540 bytes util/builtinobjects/data/get_started.zip | Bin 182914 -> 182675 bytes .../data/migration_dashboard.zip | Bin 1235 -> 1116 bytes .../data/bundled_templates.zip | Bin 9423 -> 8984 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/util/builtinobjects/data/empty.zip b/util/builtinobjects/data/empty.zip index 4b42d926368f7adf47f64e94e52307650dd846f0..3b095eceed615bf0492fa1da0124f77bf1f4f76e 100644 GIT binary patch delta 142271 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%0Dd}zgJZb&)YYGPB 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 delta 142495 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


9QvI| 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 Xura`&dgUO`VnEu6zm$NWA~63S1{03# diff --git a/util/builtinobjects/data/get_started.zip b/util/builtinobjects/data/get_started.zip index 534963d0e3254826ee6c1975ee76cf49ae4c6c43..01c63e352db60707a353678ff587fa7cc9c4a6ab 100644 GIT binary patch delta 154763 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 l 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 K9-Bt@oQ<}({n{zN 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 a56Jv)KNxiW6eK+Ef#GA+2Y~&oSN;#U%F#9e delta 155251 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�&UB+>jfI)uo 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 wNn$FF!qKsIczIWxY=)B#Tw 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

IrR)5QV%a+2rUJ2VHfwuO+ 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

E(P za(0~#PGA49OfE(pz1P6SKZ$O0pVxrdB+r3Syi%ss40z+!7yt83Tqe)SAUT&GwkQ#8 z#vEs}-t)G&U-q_~YXKP>nQD5maqw@2oUH&>({!I1nt5=;qt5P5swTHv$x&3{UO7%)tW6p8TMswVc3LZ3USXICv{asr2f#d*m+B}J3 zSc+A@pbq$1Y@2DbQkcYwVvtVLXl{?&Mb~1ubdQRZ;T%C4Xy=1!v{U?1@zSs1c;{ZI;SsWU6y$k4)zz^)mBd)gF z$E(in7o~|baqk8Lq&~?7OC=nQ(s2g7R&th1TYDZGfET+?z$cfz?vGLK@RNTV90=#J3xNcq1}Kk85>K6 z+qKg?0Xjg_uLS`p1yu(<643IR@Y~SSG@$9%9c=F2BsFY>C825bU57bou`_EsMQBo77D#rVB72ao&hB+J~@`1$~l<6*6Q= z{)7ipfA*uM_j+KWtXZ2op0UBOpu9`xl+qj8jN-kzNPV%L*T`{3+sVBX_<2ZkCE6`V zet5MSxljI~&-^oYhT*SAw%n@Reka`Ci*8z7GiCeX3AcKwO9yN~$|32rbAQp09Yxj2 za1<<9U~0`ubI~?-ie&n4%3Ce_>^tI1N-5`;SK~KJ2Jv(AWlJAuVoa2@mrY9)nDW-S zWj;h`F7(T#4mx7&0W>$&gy&g?vn}EC`9GV{XFlkab3a>mV(gV%OPw>zPGvBOO4pNo4a_7qL%?#xos&r`;9xStQMd&y5Ns=j;Z1{= z3F4K^BR6Bvu#!iN3A<$!+(J&L`O|nZ-~1VK(J?s~6=m279rq9Q3pNa9i`|E5T*jCS zP8TZ}=q+*h(&`ejNED$KpDwUf$?`Q*J(5Hu7%@U-?36EWvg;=d`=02B^%$z4p0HQf zS-@YYs%I}4FGqv5t9kFt<=?!G5J;B-E6PDqhP(?OG;YnrrCq8n`98g@Qk;oD3^}*` zv%6PINF)vf(S)4}vG;t!ANT(3*&qq@4B;8gO6I6BH`xM!d(*3r%)tO`BA29mvU(FwMxFzV^@PLo6+{X+SiR8 zy;(yig+vvHh%SbQ#DUB+3Krwkg;|whPK@j0Q&GC8C3X6r%|sTI$)}wEm$0~qT>TX& z06q8T+GD5N=+m!R867Vo6h-Oucb*twFbBWHG_|Q6u7T|tU_ka6sqY! zU~O}c#)%{SU{tUH$u(hphQ;eMB+0L!tOoZYTo5;A5HE}xBTFm$!OSiB6Z;yZ5p1J} zZ-2~wfQ|YZ4Lcmc+QkFG2=2hIWk*Atg-{90IG>8~NmwbE6S2iHBwh`+WH<(@2CTjn zKbuqb5jWd@jwB-33?W91K!wxkX*b?E^9Pjn7)V$$0-Tcb_?A2*uphS z48&n>qo`tP8X;$SB)$@PuKvYu*3|qev1;w&w9O5kxKo1l3cSOo=wNR_i_BRfD>?`v z8exZc!HVo*#wa3ITi%Gif2yJoR2);m8Z^_P8Vhz|a8JlC(sh7||MLD;iwBPc_}M@H zU>K7tC8_Mhl{t#CTac7Ed3MUgFO@rgcEg?VYA}(CQ~Yf(8}PnU z)<`xVc3%o~$ry(Q%kQW8G#TBs)ko>~$E!bWmx7TM zLkXTq8slreX%Y3M5H+0Q8=V2z-_*z$W&G~1DSzA@sRfCbnntj(|-GljKL6s*rpPxrFvK&{Q*<%mq#IcAU_!7_V-b^R1b9|20jXzbhHBP z&}l2mew?3_zF-h#0Nqfan3qlt)lRU&JfNFMvz+5A)8KdYYs-c;QLRpcW!et92eU^@ zmf->n#+5)x*HXRJN;sRFIuZ`ohdqPqZ*B>p6JC8E#oewvO$-i?nKl+~T2JIRdY0q6 ze};UBL%KPTPR;JB%31Mo06l_tIgdpDslIcBl~oO}`lSD@X+|y~_<;m$EkSx&JUiuliNW`b8_u>>zo<-&j3B18wr~ScwL0uY! zw-@;J9u`NB4Ai~;1B{b*zmF!KVT=YRRdsMdGp`@3dZK|+oT-XZ_l6UV`1tF$6tS21 zVRl`FN6+a`t*{VV@W+y;xC>A(lPVBg^!pF=fxi407zrK=+2Vm*Y?-&NwuaUmuATRw zS6csU4X#-%u{;9FQp9#7@hSFrh7p{y`~P}o%N&(}K#cFnPC>_s`ogf`g|Pyu*NKuJ zB9y)M?_0J%&+DX^CXY~U>U&|{gKxnS_Xlf%Z0|p8>&#wnmP0HZK>~||sX>0(?`R0D zqSqutafD}Z>l9pRrSX3RhdNEb+*V>}^3SDl8E8C zz~XD4&cBKH?S_T>t5(DY6Xk*y=ZU-8g?7H&-OFZ$ad>&+A&YHQppE1GHVt=>cwZw%|w*mKr;Eq?EObg|H3=YJAOxwu(siq%} zg=Df26&z1IW}Y$qUt{aBQ6Z9%@?;po`9i{Wj|`n19m*Ysz5lzEC4r- ztDVTgeEIFmwlsyl!7{4C5T~#4R)gkvm`YgF!G&4WA$_){Dsv*R+AG@QxJ_xD!r(2L zv(CLt@h9%}5hP)Bs<){uWC|5X^66m}KmP7YyCitWDxX4CRM0>k8(AEps`-$a+25RD zbF(Lu1kB!;mX+S{ax&eB#%|j}qtx&E}Gp zN1+>?n&#-`vvWV9xLL>kM>6$k1=N&<3lMDKcSrE!^`xZt6iPVDTOP7;bT-AwPlx1t zc#(^-^-DT10Dt^vT_p-~jbeyrKu6qEo7*Yg&{mc(D2q`z>RecF#Nuf0EQMf6{j|l% zY@|;8$*1%#g7a;_gl{V%D8=XT?tMAGQ=BW6#b55ynUe(D6Sj`f8d2jBZdR5jGsq1NGS=pde*l<(x!Rm8Bu8GbZ6;N*J?20MxM#LIm? zaJ8&}M>1-~O3Tgj>GfAsKNWIq;swu(-q_ut-+np}@*LW~$}4v6))&-Bu6Ek@WhKK*!!DV{8g@$-NA(wA6~24q&NfRo9&(z$xJ5Ym^e_r55K*(2{S~;Qz_{9 zA|$E!1d@rnVPY=}7Wp$23VT1K%3pvuXD)u3rr7@dWg8CHay2^k4hUAN`F6W*VgXaXwdN!) z5(lo1_zmHi=x4wtltjQUsQ+X2_w{Oxg!v(F8_~)AU2sGCPytU6os!kMHByCYAWqjl zQ8fnG=iNrei9CLiergzEA~>=)2f8ECi8+i~<`g=Ja$@GqLvaVr?*>za+-^;;lI<&s z{e=!9Z-WsP9!_6fpV(O?PrtLDzIiqYkzSS`n22^-Zp{1+T?(c~X?@luLfr^1&A*~e z)y!vPVLZlIXJ8TM&fRH>SNdO8Vxgbk=t~+@&3`7*M4JZ)Bha7pzao@RR+xM|vyG;C zAAss9?6N2$VWH!q1HvvA#6z|VQalu5q!01T`4kRxKlkRIBJiQ0*YW+GK}l@;+PC{Gq8PJ2L?p9=sT6OZ)+sk+pe{2T&LkM){o6llEE8(-Cvb8P|^^A z^7hNb7avFx(cgaH*+K^Rl{UfP+gL}c_4PXQeW-rRn_`W=l-*yF_MDat!=`p2QM?)xl z(nkgR$e2bSB$w>`U64SK;EIDo*cm1--*!z~>CT6Ld@=rX*iGF{P3+X3{a^s46izWF6jGwMZc@GC6x#zVNn1Fo5y+T>v0(Xe&BsrC(`} z3C}Gmow(cjO$#G5Xs2PxANhz*_3TTNohrSj5lWbuC#83hD`!3XGZkLI|57 zGA_7qw%5PZYrv)VtFdRw0xdym6x^wBb0U{_OCtWPLd|680`&F5M>gUKJEF!ml7h6! zIUxAY_0xMoCxWCm0S&r>Ry?N7DvN>hDRXH*x%;78voEd6q2(Td-@_n$iQdL<;x&1c zvV2PTeU~ygo znJRU^UqPVm>%8zF84E7qtu@w)Z@76@@0#<6E)J~5{A$>YfOi?6JNz5F<=w`pJ*6#$ z?_o-X2~tQ^&$-k^g|k!?O=cu3Ete1Z(1?Ws)9XPWDD5@+9f8@mA9HaR;uL&)ue36T z8sJ;_%L6p*cHsxCnvitv;8UsT-^6$nk?h;QrR0{;xgJhXmg zYU66Z=GOuL)PQN@Oi-B(f)mAa7-cJ_c@ngp%cPcF?DjS1^JKzXD}pYs9p2eiKt)D`s)Bg(j)-U{}7ow6~ovqN$4hrMBxpRc2)6@&0{=z>GhmJRMtz|BqjaPg?u z`agM0w(d4`99XqSe<#@Z^uKLW*zWJ8u}e#^*N8~al zc<|<*_(Co1+^_b2ytPl0#~P?+9XeN#M0RUi{irpYXB{%62_!qsMN2D3{UMv|_Fs5m zmg>B2^>Zh@&GRT+DE86j*Q^5*6f2e`UlJ54{w64%sEq;6CJlFWRRrOrZdU@UX0&xd^7su z55i~$1~2VNq(bdS^aVc@=^8e>Lwc@R4F#adFl4jcRlJ9SMm7uZh0{i*;QSFu7mNTeHvBhL6-JP4&rqe*8-9vlF{< z@Sy`Ox_hAlmtcGg!e5E*~Qlrxhgv z?+$eRhMNuxk4(SiTY6ndx7Hj`HX!46x7ZE6z1T?KJ4rJbhm9>=+Lw7?0fJ5Qb}B%y zDI?{Qesqf4y9OGzvkv)Fd4}BAL4*2QW*=M^0vZPutJPE7jEFc$(G zWLwi5vhH2)dGVTVW)w`J^|o)4C9)b^)V2Tv7~!;-G+QmZ90!&IsA&hp8JypjD_RY_ptCT2oI@&aV+mMDNCHL(!Tg%bo(~4n~1jM4}O4N0x(ewUs)vhAb(DW9cbO`&565 zfv@B#aORUMcUP$G%c)jh(Ae|(-2W|^Zcz2fol%p-1N@vvr+ zU+1?-{Wz=Jnff&0cDoZ<>yZhYDbj1_D3^>Dy69-K4nT{{8YnuO;bx?zlU1EU{9yK< zvUDt*B$o`gMUuyhNBWvFc zjy`4wu}6gUkxO#4-MHl4ilwf%G${p~hvL3;1eH31%Fan=Qc zxE0Zq-Kf8z*(D~camA`!6SsCP8`JUtI(E?|R(tL>szXl1_h+yAvX!{7*DRX$Ll5E>3xSnzfaD%za53w09wLsr>|StRi#e*LSaA2EZgxX6D=f` z_GuEz@!~ZtsW%AR#cu}({>*;F+ed4elF%eal4PDV^T>6D;t|ne3mYJl?$yXIgbkAK zqWC-kH=CWj6GmTh1X;i5d^R5^qU&Yxl_PH_#zb{c_;!6I_-^&Tw@HD!6KyAGuwRCP zpkbnaB^lQO$(h&>2Z;miDo zcO(`$80m_WCLvgU1}$HW#Fe#lFw zJ4?0Z<}CdJ>IbBo#mAg0_tn;D9x|JE={`IatFO({E>$@?hIk@B9R~(umAjnbXd` z%ZOrNW;;c&Olz>~fr>POXobPpz95e=Z+yt5hQ~TMljk99U@^d=<`+Znu zMVX~@j5$o<%*WLIhz2_R(uqskBQAb?V;wF>h(qEfNCv zr=rTv<;XRE6^;#2v<-~&JWY9OTNA*3X;cDr>&dw-}elVsTY922fu5`q{&Re@)jC$aAt#aodqol#)1 zl%fHFvw+W<>t4@Rv!elu|H?Hp7`?pn111tu*WizBX)X?r-Pbe$c*GRWHDMEOv?7?O zlfWwY1YD!`P0!l!iZyx*dKh6BF)+^J)q7W?u&MiOt=C8+c zw}98B1VwO&D=?KAO4oFQBOl^8PqeKPVCCmfbrtB0K5NK=h~McAvv)OFh`(Z0KV9Ue zFDQ)VeJ%C1HKRc~n>v{D-3bYb#j=N;X=Cvm5T%I1aPEiy(J>j&BgOHE%|!3AWQ;Q81NX z&wTNYQm~1DxI|hOQpAsMM%*?yza+|W7Td^;H%&knF?(uS79Gy|BJ9cL|E?a01Bxy$ zY|}6Qd27Cc1Ak&y5c6B8_Ld zNkRO}8yKeBoX*Au@p*IQjL1sinEHN;tlUc;!pd*!U!oSc`bf#5FiH=dKBoaFg&o8- zlC{glm(lRmrOUA#C#U{=S%GQFQTdPVHjS;8r3))+ zmc@5^u)9&dC&fybw_(Xnv#*_6h4uqlDd z7k7tl5B5}GsvMe!Qtg^(CoTwprWMwzf_`jc!uKC&UPS>QeD56@4Z;il&$mE1iVYU+AItsdnwEE30CsZ`Q zpkx18JL+o`vFjC~uJ|I^Msu5x@cAH9(Cnp#BG?T_K)zmXO z?E8^Y3tZJQlh*Z@sT_eb7PCmkc7*9Mbck4CU0sQb%A$|S?53C}y~8ch?elItDi zP&;t)W4VYdlaR<4@*L4j*GdD1nocZy3bxjHLDHO=5|Ha9uruF$(0!mI44ok!&^@^< zU{aIubRrYeAwJjD*(^PI=Qwnih>PhqIa38~hvZ>SKJ$o(EdkAK^knrLVmyXY~- z50}F3UVbM+V$H9wl5?r`nS%2OIgf3WiZvr5QZvz8e&L zw_CLl_BK9blEv#q6m)^IB__?w*b4;?d~28`Hx`J z<<222KDEk1X&S&5vhOfWkKjE~jEt`T6~z_@Tb_#r`-k1ID;AZo{zpXi5mxiFsFmOtS0C)B z>hp&SNCD{xXIFPK7qn3wrgyejD*={%9zUTNNm{a>k^URsmhk7I&*|KCQJ<4XftA#vXRY?<+EYRLx2N4n(8*?AJW=H^A1JZ?6ubqK zRF+8$dOPP0KjU4-e#glVU)fHI0x*)rF9Or{RnKgl2jD(7HnAR}Aj1S4-}xs#8s7R{ z-CP?qFXe6;$X1{X($z(#5$z^l6iqI(Ey2w!Bj7R@nO#y*hJgNzHs0+&Ft?|MqD#Tv zbCfY5L-vB)vtAt(XoZ+f$Nu70eacmmqsOVx=jA;SO1)H^uj z0eA2J%dWMwTG+B{*|u#ibJ=xg+qS)I+qQAHZ0mcs=l49H-~aH&IoCPY>zb|*h^%)H zOxkq9S?}Foy-0Yb?d=9AZP}aV$Lbc2jkq20$p3MDix#&*#E9!htkUyyK!utK7l~1q z68gOsH(Lkrq}dJm41p&NFbNG0+~%*FB0?46cjC@P+z2Yv;rJzge5Qczfr!Wd#lDan zg)MK>=xgg=-=VQwojwgHE&7Kie1l7qcG>Jx779s^af9axiT# z5XFzFsChT-rvw-}yQ!^@BHWw`Q-KIFZzF&*cT5MvWF<@mYlAXI=&e68;CS;n~SH&C91Y5SK8He{Yd zCQ=;zR5&DsrJ!=OQ~@+=gT&+SdrcQ8Bbm$A)84a0hRO4zi_!+VT%Fwo$SR$${Nn55qMpq<#x5#r#$2(6rMEWkriL8yk$q zPs%zICwMCRh>=%(RG*z`IHOy7`f2H}qgO5hAq&rfhM7{sFlyYW@WWg8^TYoUq&gEj z9qc~pS8vd5{E;M$4lWKzn2eegK_85(P8;ud?e62NkNC@C>CPu67KS#s)$m0wTl)tj zln_8m#bDB&A%uH(EIh+ernso|K%)Jwk6>EzJyPdUl9F@Ssn^=gl=gDW8Ti;f`8?5d zDLVetZuYw1-&uMQAls|;0|mQfoe8nO%W%Rbb})k<_tBPzWv&76oRMSI>ROZ})zbSz zFri?$8cp-}7PD54uSoN@k5{Ej76K05&*QQMLRyBwgSe7I#YqA4=1 zL^wN47kHbOesNRySK)B_0~I6up5E~}98D80POZ*gIl8rv?!k|U>a7qt+i5qBUzL0~ z>2;UQqmOjzwcFJJ+-j_#joGRHL{f$P8;jc4FEl{{RJVEa@K0`$dwbn)=nW^d7mYGF z!Ft_uj#sD>Cbak)Tg&NN6fRXM`AgXN7u#FYSM|@8atO$+qS^JK%ltmK1_h*Te%7-7zA#hwAgdW-Je5lZP1BU zab6}K_m|#Ar>CfS1-wU#o%3Mni$(<>j0!^?{^~Lq9Q^htarX;t^f_ zFAy7y`tZk$qwq7>9r#zobNk3!8If8IPEysJ3{Kby(TMm5C4~JfSJ1c$o6}bFhWm_R zqx36a9Z02IVi^uclp^!IS84axhHHEnBLMlENtR<7)}P7aT4v!g|Ds0D#Qp4X=0jBW zWU5urr3<>z7A1}g9{jZ><+A7mUNG2Bj^ueLGsq!H8p$}!K{jhiDRYIkKAVTW(G`fv zB|fDlt0`J$34MSF9(L9nP!T`{8o$yi8d$MVT@!d9x1!DiQw+KGhVX${HNSf>sQ}kv zq4vKpSRQc9UrxsF0oF=QaI5h3@?7MTS@k9W$gsW24PMVSF9HrMTvdzB4xRKfLS?nz z+6;9lnibMn(0RdOF&*_J<5qsQU*!E7`BGQyJvNL$Eq&k#Dzn%^TZQ5|DzFL(+LzD|1=eHz7!RO!aV7Xa077#7#>{kv+&>^}V$zi%j^>XHfWF5~5lYUt90bJ;;<09>M zX;5f0Xg_j4Jm>o@A!8*$v0fL*YJFyv>E=Yros$CE6E1N#d}R1uPVPoH4-g|`>dFJ( zAT3WqA{w*kLB@hk$exZ1zGE)I0Gmk7PhZXm@aQ4(;2-Z=)$YKBS14lnUY`AQzS@wJ zV~;vEx(-DyQUzKm&iqL`5S0*XKA@aP;HE$|M7`#aPf+M9Y;?Lh6)aE9mayOX5jJzh zUcweLGL{BHi^TtdIt74#`R_8t#U?7J2jr(u8L&z6xM1Hu9w*c!x6Y3&ALViD)d9=~ zbj`#_E2FVJov%IP!aMGokkIgA@gy45p`>PC=E!~P#O3PNzviU~niGc#P9Ty@kJ3J) zdj?WJf6>PHYjJ}V`h%puW>>m?I-T8QV)EXTvHV@b@r`(b0P?N0=Rgo=55C_tv&C!^ zjd8K*kXR)JyYNt`db$n^;NP(-j=~Y>*&gWVLzxY+S_m8lQbM zL*S@RuTUmS$Q$V$*&Vrz1Yw1Cdq0&7qhGOpl_xSR2UIE@J8wZ+2W)%pf4WN+FpuUf zg5Fka!brYPfIhhbAci%`ZmA@1s2<79f-*+{=AAWyw8wWrv^qdRA3tM>pU_W!cVaGq5U~lEwcOg%**^*OP{^|Kipre2gs!P|=E|m{T9zi=b}VO|_JS z3cxuamA!a*oDVhljXQ>!YMwM9=uA9Vxr!v%0K2>|AiLwrDpPC5ao!(-8{~lxi5&n_ ztvMt}IcOGxpaErG+utSC2o4ks`>_BPdz!di#FspM);_xL!r)IBT zxZ^A(vw?NTWmY8o6VH|i#HzMpX+^}uPRblJ#QC}HrW6cX#y-*(vHL2K8M;AXFk-l| zkBjBz8)q3q$Q9@rutMGqUz0&}zd6OWM(K5*Ri5+?a0S25#+=qN9#FTk=JuiECH#8O z=V^IswCb0!fF~%pWWgL5FHMLl%fweEQ;(@1?ovZGZUS8-E`*eMqTzQG0(wM=)`FCk z6>iTri9Y2=-6fCkFkkE^b|L` zSfjU%e28~o6ZhTsUHeEm(0>%(BatI_1*%ul;gzNj)5Q2$%U*Mi&@+F_bUAkq7U2uL zHM7~id9nwPhZ-r%^OHYv2`YXhACIDDUV@`*>_ z$vo{DT+^=}ITE=?*ARwN>UFe>LvAAWtftAXeIOx!a*~t{cej3EsxKgED^@N7qpXPU zfGmxmGfpMiDoOEA22jO6R<;q3@ez}x+|YOlr&+m9C00$U8_6ZRm?d=Ev!L+|YisKI z31`fkBUv^I*ce61m3pqbkxEzDZBczZ_xK3B=o3pV0=ws)Qa_=99ynq$GchBdu^4Kgn9b5-wAhpf4<(z|P%ILqIqAk=x!$2bjc6%GU!}w>IVc{R z+VW=%Wss{X85tWzibiCWxMvO#m4+*7IcM6j7h1n=5IDXlvRb3hVdH+hAipP%A+!)a z+$Du>83GGTk+m0|oJvOyx7xv4!%17(RU0M>Wz48uXSh@i1nX3(UU@(L_sousKKiuGN9Y9QN6#w$8={GmPfn?mouJLZxZZK&}YY}#q6*AU^ z*@~3-(oMF~232=Gr|-dh;NUav8Y{*KIak_Dp+YpEZ;S8J2AdZ=iL)hpPjyJng(Kmm ziy*pB7A&3h^+(_16L~bQm%FB-?YDcIozzKrDhx*S%DXqJ0Q&_6a8<=q8A`A8i_1kN za9RVGq`GYeFVJiG`9aO#Y6IKwX@ z`i^bb=byzU??2%h;#QJ+1I_<*>XfJr^x=0LYP=Pj+`GqL9Tta%3QD3Jtb9^M6KG^W z9R5A&^yTLLe=jjsmJgc=)Td7pa7hJ3;D&&FW!xc=n~fL_i?U(rMjk zb4YR`h5a3ve*N71e%*0>we-0Al_w|)0(T+Qw%lKQL9xdU&jdfSumB4$dCZ!)W|of^NCC3a$M7SFa7`J*YA7 zOv>y0gq`l$2Aqf%Q4zc-N)gwrh!e2x2Zwu%NQIUkOT0P9K09H`;on`+K2FE$$2p~1 zzLzSweG;j=9z?Vhzk4(A9OXJ<2^NZ)Vk9Le(m7C1Jy!6#&dBDY^YrwC!|#5Jynlr& zAwDR5TGnC^JI|ilT=C$9OO>H6hd>}n@gVM!Hw7`h%NvaX--rR&@K?3-^$Nr#aD%XJ zEbTZ+zgBgAGQrZIxUNqg&ts!NI~3+$9;*pl@E@Lvn=PPR8z^?%rcs?2nAZ}q4t5>o z&ef?VhN@JGYfhe2SOk6Q17=^C$HQCorAj{q5taerY)7FabIVV4+=ScV!<04lTaeoW z%HqSn>CiT79@ghuD_}Z~9RWg3DbkkWyG!>wh}GrCb4^FYgUf`Dyxl8V({`Dy2U16?#utW@ z-VG*?_^qUJeIFIqv>R}pj$OpL;Yak>{uQby9=HkItu$0@mt`X)ks(&(a|RK9BBdq+JST_zk~A~ zwaL!R*^tc5PuhZ=z?=;gK=x2>vJs# z1ff^3wY5*+^3STq2jKiSjFF&~K*h*%{i4GNa*e+$`Jw1p z+^^<)6`d_^mTb1_H)FV*yM)dGah4g;=j=$vCvQcb0iU}Dy4?{r{Lk10B|#*7{X z@bNdFd=MA9koYbwE&Iv4?upq2LMNid{xMJITBj~OY(T7lLL%_QLZfueEn|1(4gfP) zEwknLRPnn$Rp0Q3AFUvoS!T00{%IC(JWoS=3|!((nU z0_JB)X}oalp3)x%m11IyIQ^ks7l7Dda^S9uI^rH-dEgJ#(NYDo4rgwiK;`(u^5hV4 z3d}g6!yH_hM51tI9vr}iTdI^NBr^_iSbl$)5%I#R9|7}y_PDYz=Dn1>e4^2kzkQ7%zM0uul%fzFC7{U z&y8izK_7x!ksk^Z5IY}xB`)mRHe(Pm<(C-4H9F-M;e{lVO;ITkklqdF;F717F_f+a$A71S!&DJoAhG zc3qP_2F>#;Vc=Rh~7Wf?ClP~_tVXD4y0 ziN9w3GpxlJo9thoo8Z!N*M5M5?3SBpWkha)@e~viGl(tjllU>mQ=nDsJ0pwdo0o6@ zRl7>AA^Z_QeI$00yZ|_Dk|+&G=gL1tP)X zV&J_r3Jj=8mylxRYTq~f2Kh&LqP$1&qqv7plE>3`c^qjs zA3J8>Dz?xLaGrwf z?#G|*@m#*OkRc-Nr@Y}%EuNy8x*_q~*M0CMm>0#B{p#9q+Mue8*Zo26+2+Z#3);1z zVwO#b0fWdBul*K$_8dSigR&11MsxsabSU1^Sa-p8ixDB%U&yrEnRnfV{yUGmfoD@_HIN5 z0%Cgk#*4=&SMDxuJ2q7sl@NO1PS7)04_ai15#{qYflnm6=Hyb2yV@AUk~E$v2JR8LjVjHn7~LX5C@nAWIYTLmqOY^G+j_SIIpf zkj652cAvpy+L9x>T!L7Fzjl~@PoE**L8{lbCix!FZ`Onxs70G7nUcggS!9Plz_u%| zK7B|oGaww3Nn7ihFo{`CJy5hFRhohhF%C1lY?(5lgbWJ0roER%-hQ8=fa0Z@KC0TS z&u?xe97>xC1&t2om9Jbo$;P#te$(WeJiuP#Abs3jq5>zy@?@3iqw!X(x3kksu%;ooUa*8We z+<(>Hb3U9*fBC3l?Uh8wL@LLMP{(cX0L@o4Q+I#0*5Nour@0#V`~Tj8z;JrzQ;1LCpN^BZ%|VYr z;m>~o_T$z>AkGX-l|hohZ<88?GSqS@z8%pMuvOcs?{(^WSeR(=3zVU;Hdloz^Ks0IqTHE&!Y7JBY<&; zrP|XchXHy_7^;okUC+8OjD$H=fu z?SUWy8-NtbZJeRRJesBo`hMGOL3v2`Huc#VjmH-hY)P59qIl1Jo*_!e3UCeeoRIr! zeZ@2Hxw1%s^e0Qf$Yn^85|Jw~Fv6bqQe~@p*rA4(0O^pOaJ0uyn9qPY>cAnp=-0c} zkZE;vE?eG9b~YD>szHDamIgeQ*6Pt|#>$oR8w^{ZfJKj2_4!E>{f?dlvSzMYhz2Ypa0{hhQ?B zW9UjO5066-4vsHGBr(YJRn#QRhYcxIzH47yeu%hCD{DlUz8f2*HeKePY?@8_ph&oF zC~g^hbmp>z1?EvIGzZxG*F$B@gwjVRsSPv`pCt%#jc)=!Ga4CTH zV<2-Gmn^d42+jN*)BuQr#whlShl@EdG?kru;W;)LAdm<|P%XURyJ*J+%ST=)IYs6ug9LO` z!>y!j6=AQ)6Y0pN!YCW92Z3yZ9nBI;7Z2`DN5JUL7a5M32Z#gBW$)WR;Gtq z{%JT1oGhTM(K-aH<9`^92dgFceeiijW1=LWt(XBdQBns~DjQ~e!Lw)oTh5qGGuKNi zt7(D-eJ4_5A|=U~lM>-GIWXpXWT(3{ec$EzdYd+EZF>cD43ky6#V?8O`UIvqTk~aJG|Le$xn9-`F>Bo9E_F)pev4c%%Do34q6uCAA2e z#qa;;)*my2vjZf56ZNAtzB<2<4}$c9+z1hX9IQKEa6*@>xZh{>?+9QjF)ZKllZv@P zy@Gq;e|iP53O1s?1T-?pEFal=0ypRqxJ(=<|; zhTnna-RmmzO3dP`72RnzjmI^6S#INxWl&iHevAi1_nn{odFtx7K87ew%r2h*c$J-7 zpc9Sr?6?%j^KTMa8w|Z-hG<@mq=3ZrbV;9pTJU( zDz{l`d|cEHn)c?ax$b4(j-8wJJ!c6iM-ETVx#N=j-%&P^?u9N+x?{gAy#UOg)S=0b zyBBgbT+!rE5i(JM9$#_g-2ehXWZl%?f)A_NaO~Kr;IWG=1_e`)MA?8|sk0X@=;_46 zh8jZZ_)#X*(lUiB=|BStWM*DO;O;L5m7kwKRqB2>QV?<-o)jb(c33$ZP#M!$HkM4L_WlgDR?tu$&X1DLgSdqVar6oMr5D}#ojN1+V9rNAP3Z4RmEJ~T0s+J zbsM;Rmbc2391z7_CTrep+Di>xL+%7^1zf^*2T0Q>?(go~gm>6>ooY!cUbdm2I7%g8 zi_Bzs#E}(eyk*0LVV`$$`H4M<1Z^S#lax1D% zjkb_XpFghm2B%Ih0F*_CeqY9u#ATOeJ9EL3lV`tOWxRAU0s`acK2Oy@HY+H^1TF?N&@n1ujj1GVC&&_& zQ;x2Ek;X}kXL$9ZdCNJfcCl|;cP|%8UJQts5dwt=W7NtL;Rlz-DRFJ(`qo(6^t81< z>!S3W6mwGX3FBs$`IiYq(3N|bSaVuNg(Zn6k%JG z>Xi12O^92|D5KTAgRI+%(*O)47nrI}00a#2h6w>!{a|DUC>%Vj4Ak*=l%5}#zBL2i z7cbtex)v{t#Gae^yA6r2>7_WS@fdT+xXYgNn#N~jbVV|lIvN1tT#1778Dh+^Wa*Ak zhw>yMBhxPmzI1xltY!Hga@GmFGz1lz`Xug$bebg%`?ZPy93x$w$t6FKz}b*rAzSvg@{NSzzJ(vlSe~ilm%_ zY!U#l+U`ok@cZ4j%j(q})?kl5nSmb(#^gbD8U05OB8SD?3+5a-JBAX%4hC+}+XhRq zOtrkGA9%~zwfnTa(9$)MPKk&!gpg_|t7m#)3b``QS%WGlk&i1FdGwz%|kt9X0q>PK4Z7DHVF{W&2yx#!cg6{x)86@VJ zkpL0#@mVT_pv$K)RpBBo%~|!T|mQ{ zpr_2>3T#-u!h=a*zl?nTj=5|dHZA9xtE6@x!jN`mFqWkN^C*Vqg3Sh%WG;Z(m3&A!4QJJ&7X`!Zqe*Irb9B)_VuVG5sGNJM5PCH#(3c#hA?B zsA1kh-3(uMYoE`kdaK4-M8`Wa7`qGCE(-C zU3vNb!R$b>Up$SLq_m48b4mF}TEtc=Klhq;#oNh-`iEMy&B(^P1l-|<{D!5BMJlgs!x^*RL!QMIf zr~Aet`yYGx9oe+SQcNYPO=EB}QYOZk8Ko~e zsFb2l{5pj!)f&{!s=9wXSrrp~0Lssy`N!kC1{FSzZX|5pEj{5D2nGPCY9(K8QybmT zS~Zy_%~K^EkRae}+H2=n-ibcADtG-s4atao+l$n;+dRVKtDXI-z#HBKTfg3GM5XJ~ zyKFJ?o|jg3z?@TvcC-scG*-3(?(ce=i=c3)!CJUg&*DZ}ZAbSD=lgO^m3q3rYjrBQ zEeM50OTl*+j6;l}3AhSH>uK}+o>m6H*y(Wl46FHi$Hs4qx7ZK_Og9E0?eaAqP~v%k z*bEBw^(G1d$H>mQ*z~qsc8aromkl|UppV-^?Ytz1v|d(os`@Pj)PWCL@Qo*7mm++W z;)+=!YC^Q0l1w0?o#cHH((?gf?>zq%^4S!Gz79k~qJ;K$P$^FT{C&rVysL6f-K8vm zL^eN_AotCa3pUN;et2OLh1dCZdqoL>gP4A=m zT}t3>pgqKs({G7a z;(fyDTjFE*Ed*10V^8DvtfU|l8|9BHcx-u}-a4f;$IZ?f#RA+O@USM4Wmyk8tgy^S3Qg@GQ|wuQIj#ai3kL&+B7lejDLPJ;{-J7&sxw^ zsxe?p2whBNB>;B&r`X(Bw1#>dbEk}Yekx3i#y{7_+ByFX99>?xoq~+PrO7o5xtBKb42MXEJ#R|$Gd zaq5|?pNnRSjhWASLlsvo;dAxU!vh^chJbJR$umkMW&(J4A(sk6Qxy5dnDMfdBfSN7 z7(JrZRRG4)F{T8stMV~@hp{Grz9ns%){dOZRk+rFd|95r$5hTvNzK9^P>XC)xyT9v{ zA*t1Gf~T^1QKu*z;#S8IMw;(qoRBp%LMA^JMgdnsYS*i~xc#nc^%~*$Qv#IM(GCl5 zc>AJld?Fln2M{OQEAjlMU)1dFhgcEx zm>iQMqF!E)zw0Z_o7cKk@w4v#78JO#TwDY}5`X-EB>uDBe-gj+Zz9k%@WAm!KC(7L z{OXGc0=y4|uXZ2DA0j018ooq-l!`ipkItZQbhp8zg>0SM$ru^dRxJeLi>eInBg#wZ zD_k*m%F^;)AYEl@rB~@uNm0wIXzy#qLC4?jqzidI(Pn|jB$0k~rUQ24*JzQJ-vhP! zLXPPA`Xb_hflwlruMy-3HHP%T4_sZZz>gY25edIL;j~`dv#~=J(Ad#w+!SI9u=k%c zgkNS1|9D_@k7b?#TY}hI9iSfnJ{?p;Ea)1XwRnO{SN$;cy~`5!0agFXNHbUF7o=+< z6#{Q1i)&cY54gA!Yf)dW>x8+B$f!Ds0}$o>LLu0hUgey z?7Eu6jo|FipAxN)A>AvfsCa$-?LDVfUGoJLdCx+Cr&;<>!lO3?Y)*mJC@Us(z2Lu1 z0iWVObpAU_b&y!E#8qG3@@?a(L~1XykU}&^AA#e8uN8xK#?n48+WGc|x8W0!Y<^u~ z=mD~JCT=cIBiCU}G&NK!gVp0$@-ud*W3UI}*VS#Ag$_8j;jH-u;H)J!I;D~*b@_2Z zZh<6wACP1ZFlCEqPBy2)*92P&a-?Cz*qPPy&H3YyDXBPr3s+7xCvsWs|Cs&0mD+U| zJGx%b+|G1P(3|DBq?6;KK1p}`Hd&p^hl?fL(=+_QSHl$xk}jfIq%>W}3 z@Q8?Qwz6hlQaFmts=Lg&^RNf34%w{|)I1>60#3rZWyx=;Q2hZ-9^=c9^e1fj-6 zXvYqIMEnWYdPp?gQB%M?L!r8hBI!w}dClMyl1kq6sSoggtHnzgH{EzAQd#_ooGOpP08`2et9DW}{BZm+$=Y`zPIY%dpq2RI)1U=_X<+ z=(akfwGgj5s=F_xj`iOE7sn96DkD|~Y6qhJ(+(&}{=3Qlz(z73bTMg8M@{*Z0{8#~ ze>KQMmY8rk#U)yFHRTnk5D?eMC35$JYh;|>*S-fA{rSsekK!e)=?SoCb;HW~3U4xn z(Z1u_Q}Nxt_qAyMZQb{L`xp$#K7cFSA>X~-q$UZ6NNFRYC1l}R+$nKV9lhUzHo8YWCe6WKA}oeox=D3`v8G=oQz|;|bUS-AT)0g-5ZC@0wB=o+`c)Cs2mq8a zp4_(tQ?|T7IbYX-AD5UH)Ck~#GyfKxg8T>j(@?^V56^{dzD*TJK%hg4-N`Q_2s$>xYp-pX=qm;1c|YP2|{ZFEDg%k76TVB9KeO zw6_wZ7W=6|@9JKm*RLKi<@`~l@OtI(fI&7nW8G-|jPN|Q)06#$$qRKh$0-7na#wi^!qm`LmZ2{G)Ma&s%V<<2N?&tS3d)81tG?dJQv_4lEkN7!f-iJbDAGm# z^y?iuG)SSRH{_iK-EQr=+kBLyYW)y3i|_z>7ZxukiGyHj1h-kRhqa?R1rAslP=Ty6>)5PO(|#Ir9}$ zD6Fe#!hlR`ACy16)gt|2>|jDTM2)JU?%OD0(n#>9g45SDfi;{Fm~QSaklCoTmz4{*+(^T2`+ zdrHSR!TkD1GQnMrVEDSMab4${a!BG^aFfUwQ&eG}6dUgz+A!p-e?T z!(M#X1KOS!i0{W4n*~k3ulbjDRvklsr8F8;Jp0NND1(HeYa*K8TtzFjXS7H}1-Ybnwist`ir@cL@kxe877En%Z)9=WW)yM*g@LY3@q>tDet(YW^snU_x9uhPVy zr6b#FuZ+4^nPXJ%IgpSYoX}oh%i2=$ZcKW+pB}Q6yyWD& zcUpBdEuyPTE%gA43N)5?0#G`bb;O&xR-vEX=YUB9;g=0v5NRKEWv?723C%GjL11!# zy7&{iN!wvusJ|10@`jY`fy}(suqGi<(oa12B#iu@wi^I`jiDx_xL|T|zM;xI6~4q4 zigX5L&Ad;sIdJ^QV5=u1Jk%kTc7GHrB|~FV?M&3GLHo+OQxv#gf&1ogIeqj2DYi6}&@lNlKKkBo}4vWp^V^;T1Fsj*6qcjIwI<{n+K# zQ#Nvzw*D@eN^RzUmTzn{c6sBVKZ__K65cDEzAp|~RauwQT#V;5U&&W=+m+}R?C)u# z3o4CAY7tQlC#c-SVxCCgMUj~jtTQ}P4OiHD^YHZT@S6yMEDv}gr_;(4e&u0zW&I1E zK{c_0S;woJk!|779lS;NO`ZYphr{!^s`CZS753*XG(AR})0+pkU{)S`-rF9jCxnbB z-E=0vht%3s#n2Wbpa~{B(9$y0LVX?sS*d$BGmNX+7lm_-1;W^s4h_yU0H0i+*k{oU zPUzXRz6~Sw6z&?$L7(jyG2AdpMKXt%yRAtWg_xWMoBi|b@zyA(fX>ER$mCf++5JxA zx$wD;$MbT=!wXPURRBPF2Nn_D*)DWY+7AiPk&m**GPvbx(Z+vRPqV7pAlg2i&qu)L zD1FA;%801`V~xL_YarVGc!%1u#!B#)t{VE>f$M6W$;IIr(sg$Ha-#43iRbd~w@^vh4|}hg2Qv*1~jAwR*els-gn!fCln+M+Br-1St3$(oc7X zqAdBMjaYvzJHK&r7&{c7gr)AUrA0-fB)Dv)zxjK&JczZO<1A2K{5+aN5s1k@s6Zd^@Em-jJy-*Ry9EAdo8~592}lxyR<=n}^=Jr{%jN zB1m)PL8cN{FaA}o{bz18n6w~TF}76cP#*7Z`~+!#G2kXlotrAoEjHjf-h@#6w<8c8 zjS^tmZDM1L(pv19cUs45zS)wWBJ;O`>PJ6EQao24+=7(Nt>WrY2NXUN*xmC5{*5f$ zd@{)qYK7&h@Dw(_O}fIhEM!ry%ylsrUr;Y*8^VDuXeVmgdKrN43z4K8T5yMk+DBI! zPU*gN2gq?QsDJZx10S3+I{GF8yWg;1w?$R`^-t&5Hv%y|*!J{VBN=HTKYiW5s~w+h zLyZs@bEwR^(b3j6=BCZNmH++F$cLnQ9k5L?C1RUD(zHo9So zBQ%5yc(&1dX*U;VLm|6#@mGzH1=*K*WDL{$mH^83JnFWn%>i4EA?)FVrHTkJ7=g3d zN-4*)k<8kQmgiw0Zpqmu8Y!(VR725ii76D2Af#rVHG`sajxsIBzj0o#On8`>|%Nem{qregB z4F1JNty{>odRFeHaewy92@Jdrs$xjkO_x@ zdXAI*nmZ|Q!m7z{Xn)6)=kd+ilKd9%2}^)MTE6J=d`NEsUP5kgk2WCO8BfR6PjKjJ z>bO=Q(HT-(`BE>b*JYAPfK^MU?nXw=yOW6l59)_KQM{l1T% zgAhVUb|Nby>ln!_*<>XodxY#gPDVsVh?l)bWRn>}DUm(O-XnX5@Vk%m`S$s}-{<2m zkJsyYU)Oct=U%USTvt|v$I+P54A8JQ)@N5h7JV;F$k0aH9&1P(hm@DqoReqJl@07~ zvrlUFPU>xZ_lDoZa3Pe|OJUl!b!(kJgZWs z{W#gU3f-S?6)XLIk>4W`2>w=vQ_5zX=b(Fldm)U*!bW+W4*Z^2(V z2wWwaV;)WFHsg!P%o9yTC{fVR2Oe)p6KCDJw0-z`_L+%)Sk`Ing|yb3HMqP_-b9H+ z!NvrC%iWq$qSpyZOo$hx{L<~a!*%`M#A0k%OESN&j#$tVkv%v9u71GLsxiTKh)o1!%STxicSudVkQ+h&}`fzVJG5Fy^ zSKpX!A_KQ_xxnO|0D9*@5J&cvfviokx`kSRvSsKlO|!^1*r~1M)8r6MHu-n;@2Nk$ z;0kXHHF@K0w!dq+Nf;-oGGIeKrTP0&7t3+;?`!fcJNE=SW|t8--O&L%1B5&I(O&sK zXu9)W*%z4nUcIE!dw@F%!l5uN1V_C#dU|M?M<`?Iq~ybOF?)&Wp#Sn&W5TWegIEEj zua(_LM;AOIGTaT#R>k76kEi?Z!0*o`NF;~rWVf=J1~^|oSX2+k<-b8msYFPr6t;LI z$+VkJTBdInRQ&u80;BHck~iYy&(`#81fQzrgWUP7;h;SMBk@%GmWH4kOw$Gxb9eH+ zQmnZ=Qz$Nxz8#B+504tF7`D+1^itE3rQHy(Bp|(xXeNvnOxjkD4fN8J)OK;ElC~>& zwfU>5AA4SFEH`#l5w4+ol{vgmqVM!>=j)iD?>-sMHLImw0SLEGTVGxL$-ay}H&0YV zB(!>#5b-B~z_J}jUyuR#N^n*h6Eno8;pMlU9CNntm2aLOj3i%Iy}3WS{h~u~&UUg{ zqNU-=*vu{y@$`iAIkr0yY?GBIw{c9 zW0*U_=6WWnl+4s~5)s3a;l68kFGoxMevoY{_0eoFwV0|p4|#FI#LIgQ-yJLBC5>G2 z`OS&zkPc|3=V$T-@A>XNi?fxX{YTokw$DH;p^e8C zV;4WT@k>2b3}3~$__Q{9Auo5>7wh^D?B5$Lw|nlGS+Y|u+${8NQcb5=l~2q%1|dw+ z-^&*qeD&>lUOnwNBsy1O-g@T4u-@WZ7^R!zBXKQHQ@e^|v$BU{8kT{3EW4d4x#A^- z!1C6Cb{H+w3=Qyr_uZv8(cKEpclP{?%MWZ%*077M1+;hEACDr&5ZEb6;d@Vxn`=ER ztS3ei?QE6H1)um_+-UYoZ}ZK%sw!N5e=xR)4C9%>H8X|KZwDg0hb&2OPOPf0FthI@b zO%$sQNAtszQ{4JO1p~a|463|Umo_xay0=cN@vB`u!M@powSye!!h8eaXVk;_9 zX_e!)L0D(BvU9$Ahm&~xjb+J15A!b+iiA03<%#QJX>YT7?b#wZj9eN+V?H~GEG+ll zqPKW85dT5gyu5qI?1hI`*afWYtnHSaL*Zuj$c|8zAbC%H@}D+07PQ14mzE2Idw~VH z3YQ2OvOAVJl77*OV?|b^jGr)Yz!1_Rf@G`WD2H$C(J<`3X=q}fk6`)L(g@Dbbze1l(1BpQt1~cB z`bHpY;)O%jM3+42+i?pKx9V@0m*pjIy>6-6; zWu{3*t>xEbDkWR@>?PWJX??YQW7n;0{{)MsZi?{rIliY<5o@T}n`9wKOhT?j|M_TN^}q(Wkl6i4(69BEXV98%Fxe@=|8)v0 zhQnJ#U_ci|4d}0o!GNBuIf^`;@m_fda!lUsGB*;`HPmsJWRsf`ju60$`fkRkU)g6K z^&EL}lK#Lw*Q*cQvigmgaf0bCBeq5Jl0jNpdX+VO{}W`h9r(oio4AHxUV(}r;-~%T zvM|DJ%IUYMWbg}V`U|s0b^;?N3G&8K6{i9b9#1nJCQGk{BXrVkTx3eLn9fPa{n3&4 zVEe7OGziV9<`+4Av0ho-M{TcQ;~~R1@7Sl`OY7%rvKHrSvOERv7p$jb`s?$=J?qWaiFivtoojA0N7jeVvi-$Sd0Sowv> zuzu)`GIdPiDi`Tks!x1ZC3w^aRPsiHaAv_Ji(t469b4+iu#3uAmI>9Dt5;PoT_+6N zui4C&pb<6Yc5o&ts>~ThKPdU3lyUe=KYe1$>%U?Z_U8SB?)ozc3sBs;nxe z{Qb0u4F}i?NoP)Vj*PRlr01Rvpcs499DGwwdvo5xp7__+-tuc1cRF3M*E0f9q;9&1 zXS4GgO^v?~BGaZBEBTsv_$x;%*Ics??Ui?~2-Kc}TS*}66g9YX$PMXPR$ij_8Y|jU z)f}sZwrvUrs)Os1oB8#dL^GCfMIDmxede3eA?iK9(}ku2O7B~xT{@a(-U#hzE)<$_ zJj$$DN<6)c`isfPAXAwH1>fp|dMC>phE6u(yn+&vh>W(My3uD& zF!9m`u7hFjhRL8H6|3jS9hqkYBnv_vMc1{OoW5iETG;wxUzvU+EyL`#YJ$*aF%stt zQhj;~uUw>wTn(gVrm32X#lhQgdtO+78angAlK@Ze&%VIDvN_vF)e;%CNGCwhmI+0e zdjxP9zZRl78{1M}Qg|utTj^RSjY~^)n2h``bvq=`Jhm&pIjYRppgRn*e z&HatHwDnfLBn~tM#x9@z?Et!*6~E7bwcVY+?mwYlPhl(&(HG#pK3Q|}+3Y7ul|LN| z-SYh@b!&F@SJKsLbQrZ^)ym9FcdKnEzcFx)a9y_72*1O+&%6&D46>H-kVuPRTz;tU z5Ky`CQDcoMJtT=`d>`y(+}__3TJ&DL-GAC()b#5o;s9Ku`jnR?%}DI=)kQyh-doJ^ zy}FS&{kA0Wt7b8`K}7QnhP%zASEM|Jl{%WQh0Rp{umh3L3eui#^6DGqDgQ#=n|R=J zmbxI?c2Y#Do^sQa=T>f_V$_Ll^~f0(aRK)69e2t)N|^4WE@ogStY~$mQCp%<@r9ZSYWu)0>{V2)2mpvZplM0 z2J$n!7~m#}%XT+rnIcxRYhny(5_!2yi%V`Yec7Bw&;?X7)YSL5h>8=j@KVNf#(z|6 zUNm&5%I!t)a_vt0#;N6;=v;`|x&FCxz4o!rmAzix-Sk-e)ZDkW9r?}h-I|`a*x_lP z1v+gyikd}i*g7j`q_lQ44(1XweY}YdwCyc$CUvFC{Yxak>1wlhoY1_WLEj}Y;gJ0J zT`Z1VguqI7O~lcnxs@T=h}bdmCRx?dt8g8sVT!jK?E6WG3rseLs~({91(45 zM+QC5g$#Ly;1!p5uBy}e$cV`o(9L>ihlPPx%?_5Jv zBj(w4Ylv4Cbs22|v4Sy=qBtcv;3&HC+w{@Yuj+ot*Vsi*0F zP!9aKAG(DPj-q|2?891euzH}#L65*oygErEFh!+5Xj!=6pmo^LJWdclTFvt*tH|Bt zW@95oySDc!6>YOt)v>^QW2UYgoq8}FnqO44%seT5ZBtV^k}k zk#etr>pvaXyFFBO+_B_Rj22l=J3cVk?CcBQ_b{s7DE@{e`Y=(Cxk#ZYYnDBYiHQsH z%Gk9To!*1qDtvhTK~8h##ls9+1u8oy;kEpnD*Gp1Jq|}czzMg(55EST?}!Hyrd^I) z;^Fxpzd07&P7hg>eDrQ|c#fd}Z;_Ql?1SkdKEdtM`U%$-{reQBwb}^h zSrFB(RZVrqJ*R&c1MsW&hvj#{xPJ*X@%OX?d%DVYU>z@3^AQ76$D@ANSrXffx;xnS zoL<@}V!X;!p=NcFAh{;*S4C;kP8Zb?`Pj2I`z~E*y5t6q=dXMSc1V1pb%_5tH15V1 zaV^U4uOln?H@=T{F(|JnPafqFcTW*ODhe;g(sKIDq%Jdyk{bz&(&pWteZScZ%?@68bo*2qF(akpRW9N5Klv7^S z_@49C_nnaFh94Hi$0KacD5z%Rs& zxk=COp8fuqW9^pYoRRvXnbDY%%uVww;}$mK~@R9OAcR5Lddg)Na^cRPKNGo}-ne zc}`eVG@Ji!oY!niPFd*8%S#oKwB3Qb!7s>n*ym?O=1-Nv$y@IH=rk=B^Ii{HvU+D- z-JN5u$+RkU->8|N`!huvSnoslE5At49(z~g&gcC>GiOMo_Ts_A>2;1jh7{3SzxQue zkXkDt5RX3xvzFq}rTVl|$&|f565qXQo;s7i+)`&T>66<7g=+9_T88;Q5Y!3V5_fiL z=5Z8w_w)Uzx`d9{hRkg;F=gPGAo+HWo|=DWm{Q`x zSH%cCCs)71<6oDJ8&=>gaft5JJhozcy|!LeD@KZ8IbE$&IS)*p*HLjIUL0DLiT1~I zb}>OR#U-p(!bv^t3e!bhw|*)ryF8oN&#>Os$jQD=lt*BzdgX0bycBl}WS+(`cU|ai zOc0}4)M@3FGkvX^v6~hfSJ?5L>PpK{OEOU9vl{=$A}V=G$|RLFx}V;2iK?S3mQ*h9udYL{VjX5kz&Vo4!p_Dd%}3rV3$<^qGrT0wM@jNnGmt z()T%cG5gh)no~OGI5QIgJ!Kqr!{2%8AD>o9Xew_VJ`HS)6u+}avh6EY4!+q)aH2Rb zl8`TL$g|!w;i5-G>^I%4lucXlXCrf@n%}6qT=~9|r-yNd_2JUx?+K?wS>%C&k0N_Y zdIBG;P`*3E<=bU)ZV!PYUcdQFxHOz%R5r4m5j7mEWsbNAuUp4BTxuY9nwP#|unjzI85|t>LfTP@(crS<=uT&s@7% zWDTX*s9qobNsXBOVMu0BO*dP*KGz(r1)Asncb< z&&_+Oc0(kUj0`hGhOGEDV@*|UX+GQ`b)}^i>v3P8k7hx6SIy*BQJTU$-WNN4In#OD zs@l=xM{J3uxAumt`@1aW$VC^*YB>J9HOb}8p}RuF8(4=Z&L^uH58RVwc`z
    D08 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 T0{{SW1(Rz8Vg}j+00000wm-uY delta 1065 zcmV+^1lIf92-69WTz}+~L2nyH6vw?LagygIooq>|7J;VWf>2u(uh+&~fe3|40jfgV z18_m(nU~$M*E9Ca>~1%w!WZaQ0f__RoAlf>0&(Dk1llzYE^RMd@x}9=pWpkx`Tu5{ z_&@CV-|xZi9^4qSlggk>SudT8&FQSvLo=5Wd0OM;>9K7MD!2Y-W6{Yy0JjmG^@jKb0Nh@t2Wus?{tYQfv^_y2=!;$8Bn_ojEa>7>i> zaQ_6E%MFUVm@y}{vfp~`?U&$D8(uie{N};W-u+ZsDlKI+)ia#41ZkN{o>I;f9V6wr zb$TXGQBbF8rE^0wIh888MnB6KN6NB{x)iCL&9!k%Ie(f-HMMnhofeu~stskTqS~cs zs2)#{J9~vn#j{*Ul~AcNsgT}7*VNwBS%$n>;|fjD;5B*|t)tA^dPnL~=9W@QZKkx8 zE~Q7Ra@8E0RkD&*md=eVm_y2xpcZ*<@LJG<*Wra%Y}!E!Vpv|O{{~!!?$-hxlbQVl zE8p)C=zjzoip{Y87FuD@S=wMW$X3()SszvYo zd;}MvS=rwU&fTu4U^X3VW(3@XwiIjX|I1s1eb}g7^LK(R?XK4J!KcuzUA1$@@pyee z@*p2hAMix+q#vHB!U~s!i)p&(>7j{4;T9~V?n%l51*C_$vSa|Nl@+2MAa3q{QU|0021$002-+0T%)k j02BZS00;m800012@ubA%0{{Ry2b1&zVg^wJ00000c<>EQ diff --git a/util/builtintemplate/data/bundled_templates.zip b/util/builtintemplate/data/bundled_templates.zip index 77a049ee6582983506d87ed1a8222db567b048b3..7dd88f5d5bcdf4141ea92ff8f592d9ec0772fbd7 100644 GIT binary patch delta 7596 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 delta 8020 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 Ql^oJVqXs&m`s?!l4~g*^d;kCd From f853b0a53c1a015f0b5ae452825bd30dff631baf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:10:26 +0100 Subject: [PATCH 173/176] Bump github.com/ipfs/go-datastore from 0.7.0 to 0.8.0 (#2169) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index af622dc7d..bcae15331 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( github.com/ipfs/boxo v0.27.4 github.com/ipfs/go-block-format v0.2.0 github.com/ipfs/go-cid v0.5.0 - github.com/ipfs/go-datastore v0.7.0 + github.com/ipfs/go-datastore v0.8.0 github.com/ipfs/go-ds-flatfs v0.5.1 github.com/ipfs/go-ipld-format v0.6.0 github.com/ipfs/go-log v1.0.5 diff --git a/go.sum b/go.sum index 0bd0ca4fd..22bef5ae3 100644 --- a/go.sum +++ b/go.sum @@ -589,8 +589,8 @@ github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArf github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg= github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= -github.com/ipfs/go-datastore v0.7.0 h1:a6JMuRFKYhw6XXmIVoTthF8ZFm4QQXvLDXFhXRVv8Go= -github.com/ipfs/go-datastore v0.7.0/go.mod h1:ucOWMfbOPI6ZEyaIB1q/+78RPLBPERfuUVYX1EPnNpQ= +github.com/ipfs/go-datastore v0.8.0 h1:n8xKnoSTo/28L5KM+Jfz4kfohD889/afdWcDHve9VuY= +github.com/ipfs/go-datastore v0.8.0/go.mod h1:BGN3N+sLTEWQUHMtOjmm2GKccMJnVFPgSLp6kshNqRk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4= github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4= From b741de20205fc2a4afe32cf0c6a7ee983e75dbe5 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 27 Feb 2025 16:24:13 +0300 Subject: [PATCH 174/176] GO-4346: fix Signed-off-by: AnastasiaShemyakinskaya --- core/block/export/export.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/block/export/export.go b/core/block/export/export.go index 27e8bfa5c..0ea6e0ad2 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -187,6 +187,7 @@ func newExportContext(e *export, req pb.RpcObjectListExportRequest) *exportConte includeBackLinks: req.IncludeBacklinks, setOfList: make(map[string]struct{}), objectTypes: make(map[string]struct{}), + relations: make(map[string]struct{}), export: e, } From 2fe5e1e1f02b22971e531742d831407601f01e02 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Thu, 27 Feb 2025 16:01:14 +0100 Subject: [PATCH 175/176] GO-5191 Fix build (#2171) --- core/filestorage/flatstore.go | 3 ++- go.mod | 3 +-- go.sum | 13 ++----------- space/service_test.go | 2 +- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/core/filestorage/flatstore.go b/core/filestorage/flatstore.go index 8df0eff9c..59ea1b0b4 100644 --- a/core/filestorage/flatstore.go +++ b/core/filestorage/flatstore.go @@ -233,7 +233,8 @@ func (c *flatStoreGarbageCollector) CollectGarbage(ctx context.Context) error { } c.flatStore.sendLocalBytesUsageEvent(ctx) - return results.Close() + results.Close() + return nil } func newFlatStoreGarbageCollector(flatStore *flatStore) LocalStoreGarbageCollector { diff --git a/go.mod b/go.mod index bcae15331..4abbbb7ce 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/ipfs/go-block-format v0.2.0 github.com/ipfs/go-cid v0.5.0 github.com/ipfs/go-datastore v0.8.0 - github.com/ipfs/go-ds-flatfs v0.5.1 + github.com/ipfs/go-ds-flatfs v0.5.2-0.20250227125509-a1310bca4792 github.com/ipfs/go-ipld-format v0.6.0 github.com/ipfs/go-log v1.0.5 github.com/joho/godotenv v1.5.1 @@ -209,7 +209,6 @@ require ( github.com/ipld/go-codec-dagpb v1.6.0 // indirect github.com/ipld/go-ipld-prime v0.21.0 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect - github.com/jbenet/goprocess v0.1.4 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect diff --git a/go.sum b/go.sum index 22bef5ae3..4e818459a 100644 --- a/go.sum +++ b/go.sum @@ -487,7 +487,6 @@ github.com/google/pprof v0.0.0-20250202011525-fc3143867406 h1:wlQI2cYY0BsWmmPPAn github.com/google/pprof v0.0.0-20250202011525-fc3143867406/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -588,13 +587,10 @@ github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNi github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM= github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg= github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk= -github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= github.com/ipfs/go-datastore v0.8.0 h1:n8xKnoSTo/28L5KM+Jfz4kfohD889/afdWcDHve9VuY= github.com/ipfs/go-datastore v0.8.0/go.mod h1:BGN3N+sLTEWQUHMtOjmm2GKccMJnVFPgSLp6kshNqRk= -github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= -github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4= -github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4= -github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ds-flatfs v0.5.2-0.20250227125509-a1310bca4792 h1:uEelQJ1AfEM+7WtrOxVJEzdQYfNAe3wyRcMz5ZHchYw= +github.com/ipfs/go-ds-flatfs v0.5.2-0.20250227125509-a1310bca4792/go.mod h1:hCh3OKNvlqPQ+retNJy8402Oej6QpX4U18OYzLrfLR8= github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE= @@ -605,7 +601,6 @@ github.com/ipfs/go-ipld-format v0.6.0 h1:VEJlA2kQ3LqFSIm5Vu6eIlSxD/Ze90xtc4Meten github.com/ipfs/go-ipld-format v0.6.0/go.mod h1:g4QVMTn3marU3qXchwjpKPKgJv+zF+OlaKMyhJ4LHPg= github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk= github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM= -github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= @@ -622,11 +617,8 @@ github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7Bd github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jarcoal/httpmock v1.0.4 h1:jp+dy/+nonJE4g4xbVtl9QdrUNbn6/3hDT5R4nDIZnA= github.com/jarcoal/httpmock v1.0.4/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik= -github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= -github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= -github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= @@ -678,7 +670,6 @@ github.com/kovidgoyal/imaging v1.6.4/go.mod h1:bEIgsaZmXlvFfkv/CUxr9rJook6AQkJnp github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= diff --git a/space/service_test.go b/space/service_test.go index 90cd87d3a..1e545454b 100644 --- a/space/service_test.go +++ b/space/service_test.go @@ -60,7 +60,7 @@ func TestService_Init(t *testing.T) { require.ErrorIs(t, err, context.DeadlineExceeded) // initialized - expect space - ctx2, ctxCancel2 := context.WithTimeout(context.Background(), time.Millisecond) + ctx2, ctxCancel2 := context.WithTimeout(context.Background(), 2*time.Millisecond) defer ctxCancel2() factory.EXPECT().LoadAndSetTechSpace(ctx2).Return(&clientspace.TechSpace{}, nil) From 693384e6a7e980567f742b8ee71936af78764d0d Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 27 Feb 2025 19:31:11 +0300 Subject: [PATCH 176/176] GO-4346: fix lint Signed-off-by: AnastasiaShemyakinskaya --- core/block/export/export.go | 1 - 1 file changed, 1 deletion(-) diff --git a/core/block/export/export.go b/core/block/export/export.go index 0ea6e0ad2..78983bdda 100644 --- a/core/block/export/export.go +++ b/core/block/export/export.go @@ -658,7 +658,6 @@ func (e *exportContext) fillNotProcessedTypes(processedObjects map[string]struct } notProceedTypes[object] = nil processedObjects[object] = struct{}{} - return } func (e *exportContext) getTemplatesRelationsAndTypes(processedObjects map[string]struct{}) error {

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 diff --git a/space/spacecore/storage/migrator/testdata/badger_spacestore/000001.vlog b/space/spacecore/storage/migrator/testdata/badger_spacestore/000001.vlog deleted file mode 100644 index 4c019b2c4a0b5046316cd567e3cc46f3b6e02fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 XcmZQzfB;M5wTCYjM=bpN>4+@=DgOrw diff --git a/space/spacecore/storage/migrator/testdata/badger_spacestore/DISCARD b/space/spacecore/storage/migrator/testdata/badger_spacestore/DISCARD deleted file mode 100644 index 9e0f96a2a253b173cb45b41868209a5d043e1437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048576 zcmeIuF#!Mo0K%a4Pi+Wah(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ T0|pEjFkrxd0RsjM82APT0Pp|- diff --git a/space/spacecore/storage/migrator/testdata/badger_spacestore/KEYREGISTRY b/space/spacecore/storage/migrator/testdata/badger_spacestore/KEYREGISTRY deleted file mode 100644 index 674c5cdc8..000000000 --- a/space/spacecore/storage/migrator/testdata/badger_spacestore/KEYREGISTRY +++ /dev/null @@ -1 +0,0 @@ -/À‰µ 7¤¼¯…püHello Badger \ No newline at end of file diff --git a/space/spacecore/storage/migrator/testdata/badger_spacestore/MANIFEST b/space/spacecore/storage/migrator/testdata/badger_spacestore/MANIFEST deleted file mode 100644 index 4bf8a62e47e1db66ea2f4c8a2684d0d18f909b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28 bcmZ=tNiSkxVBi2^7+_Hhkrd-%;$Q>-EZYJ_ diff --git a/space/spacecore/storage/migrator/testdata/spaceStore.db b/space/spacecore/storage/migrator/testdata/spaceStore.db deleted file mode 100644 index dfd79d40dcc06727293a2813acda16a5d1b76c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572864 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