diff --git a/.gen/go/history/history.go b/.gen/go/history/history.go index e97718127d4..e6379b773c7 100644 --- a/.gen/go/history/history.go +++ b/.gen/go/history/history.go @@ -9921,6 +9921,7 @@ type RecordChildExecutionCompletedRequest struct { InitiatedId *int64 `json:"initiatedId,omitempty"` CompletedExecution *shared.WorkflowExecution `json:"completedExecution,omitempty"` CompletionEvent *shared.HistoryEvent `json:"completionEvent,omitempty"` + StartedId *int64 `json:"startedId,omitempty"` } // ToWire translates a RecordChildExecutionCompletedRequest struct into a Thrift-level intermediate @@ -9940,7 +9941,7 @@ type RecordChildExecutionCompletedRequest struct { // } func (v *RecordChildExecutionCompletedRequest) ToWire() (wire.Value, error) { var ( - fields [5]wire.Field + fields [6]wire.Field i int = 0 w wire.Value err error @@ -9986,6 +9987,14 @@ func (v *RecordChildExecutionCompletedRequest) ToWire() (wire.Value, error) { fields[i] = wire.Field{ID: 50, Value: w} i++ } + if v.StartedId != nil { + w, err = wire.NewValueI64(*(v.StartedId)), error(nil) + if err != nil { + return w, err + } + fields[i] = wire.Field{ID: 60, Value: w} + i++ + } return wire.NewValueStruct(wire.Struct{Fields: fields[:i]}), nil } @@ -10055,6 +10064,16 @@ func (v *RecordChildExecutionCompletedRequest) FromWire(w wire.Value) error { return err } + } + case 60: + if field.Value.Type() == wire.TI64 { + var x int64 + x, err = field.Value.GetI64(), error(nil) + v.StartedId = &x + if err != nil { + return err + } + } } } @@ -10131,6 +10150,18 @@ func (v *RecordChildExecutionCompletedRequest) Encode(sw stream.Writer) error { } } + if v.StartedId != nil { + if err := sw.WriteFieldBegin(stream.FieldHeader{ID: 60, Type: wire.TI64}); err != nil { + return err + } + if err := sw.WriteInt64(*(v.StartedId)); err != nil { + return err + } + if err := sw.WriteFieldEnd(); err != nil { + return err + } + } + return sw.WriteStructEnd() } @@ -10186,6 +10217,14 @@ func (v *RecordChildExecutionCompletedRequest) Decode(sr stream.Reader) error { return err } + case fh.ID == 60 && fh.Type == wire.TI64: + var x int64 + x, err = sr.ReadInt64() + v.StartedId = &x + if err != nil { + return err + } + default: if err := sr.Skip(fh.Type); err != nil { return err @@ -10215,7 +10254,7 @@ func (v *RecordChildExecutionCompletedRequest) String() string { return "" } - var fields [5]string + var fields [6]string i := 0 if v.DomainUUID != nil { fields[i] = fmt.Sprintf("DomainUUID: %v", *(v.DomainUUID)) @@ -10237,6 +10276,10 @@ func (v *RecordChildExecutionCompletedRequest) String() string { fields[i] = fmt.Sprintf("CompletionEvent: %v", v.CompletionEvent) i++ } + if v.StartedId != nil { + fields[i] = fmt.Sprintf("StartedId: %v", *(v.StartedId)) + i++ + } return fmt.Sprintf("RecordChildExecutionCompletedRequest{%v}", strings.Join(fields[:i], ", ")) } @@ -10266,6 +10309,9 @@ func (v *RecordChildExecutionCompletedRequest) Equals(rhs *RecordChildExecutionC if !((v.CompletionEvent == nil && rhs.CompletionEvent == nil) || (v.CompletionEvent != nil && rhs.CompletionEvent != nil && v.CompletionEvent.Equals(rhs.CompletionEvent))) { return false } + if !_I64_EqualsPtr(v.StartedId, rhs.StartedId) { + return false + } return true } @@ -10291,6 +10337,9 @@ func (v *RecordChildExecutionCompletedRequest) MarshalLogObject(enc zapcore.Obje if v.CompletionEvent != nil { err = multierr.Append(err, enc.AddObject("completionEvent", v.CompletionEvent)) } + if v.StartedId != nil { + enc.AddInt64("startedId", *v.StartedId) + } return err } @@ -10369,6 +10418,21 @@ func (v *RecordChildExecutionCompletedRequest) IsSetCompletionEvent() bool { return v != nil && v.CompletionEvent != nil } +// GetStartedId returns the value of StartedId if it is set or its +// zero value if it is unset. +func (v *RecordChildExecutionCompletedRequest) GetStartedId() (o int64) { + if v != nil && v.StartedId != nil { + return *v.StartedId + } + + return +} + +// IsSetStartedId returns true if StartedId is not nil. +func (v *RecordChildExecutionCompletedRequest) IsSetStartedId() bool { + return v != nil && v.StartedId != nil +} + type RecordDecisionTaskStartedRequest struct { DomainUUID *string `json:"domainUUID,omitempty"` WorkflowExecution *shared.WorkflowExecution `json:"workflowExecution,omitempty"` @@ -20662,7 +20726,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "history", Package: "github.com/uber/cadence/.gen/go/history", FilePath: "history.thrift", - SHA1: "fcbe45ad9d2d10959ebb7ae24c7b27b814e011c4", + SHA1: "ee5b8c06f0107e952ad8c928114baa007cceea16", Includes: []*thriftreflect.ThriftModule{ replicator.ThriftModule, shared.ThriftModule, @@ -20670,7 +20734,7 @@ var ThriftModule = &thriftreflect.ThriftModule{ Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution \n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n // impl-specific data.\n // likely some simple top-level keys and then either:\n // - map\n // - list\n //\n // this is a single blob rather than a collection to save on\n // repeated serialization of the type name, and to allow impls\n // to choose whatever structures are most-convenient for them.\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n // impl-specific data.\n // likely some simple top-level keys and then either:\n // - map\n // - list\n //\n // this is a single blob rather than a collection to save on\n // repeated serialization of the type name, and to allow impls\n // to choose whatever structures are most-convenient for them.\n 10: optional shared.Any data\n}\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request) \n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\ninclude \"shared.thrift\"\ninclude \"replicator.thrift\"\n\nnamespace java com.uber.cadence.history\n\nexception EventAlreadyStartedError {\n 1: required string message\n}\n\nexception ShardOwnershipLostError {\n 10: optional string message\n 20: optional string owner\n}\n\nstruct ParentExecutionInfo {\n 10: optional string domainUUID\n 15: optional string domain\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") initiatedId\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.StartWorkflowExecutionRequest startRequest\n 30: optional ParentExecutionInfo parentExecutionInfo\n 40: optional i32 attempt\n 50: optional i64 (js.type = \"Long\") expirationTimestamp\n 55: optional shared.ContinueAsNewInitiator continueAsNewInitiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 60: optional i32 firstDecisionTaskBackoffSeconds\n 62: optional map partitionConfig\n}\n\nstruct DescribeMutableStateRequest{\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct DescribeMutableStateResponse{\n 30: optional string mutableStateInCache\n 40: optional string mutableStateInDatabase\n}\n\nstruct GetMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct GetMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n //TODO: isWorkflowRunning is deprecating. workflowState is going replace this field\n 100: optional bool isWorkflowRunning\n 110: optional i32 stickyTaskListScheduleToStartTimeout\n 120: optional i32 eventStoreVersion\n 130: optional binary currentBranchToken\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 150: optional i32 workflowState\n 160: optional i32 workflowCloseState\n 170: optional shared.VersionHistories versionHistories\n 180: optional bool isStickyTaskListEnabled\n 190: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct PollMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n 30: optional i64 (js.type = \"Long\") expectedNextEventId\n 40: optional binary currentBranchToken\n}\n\nstruct PollMutableStateResponse {\n 10: optional shared.WorkflowExecution execution\n 20: optional shared.WorkflowType workflowType\n 30: optional i64 (js.type = \"Long\") NextEventId\n 35: optional i64 (js.type = \"Long\") PreviousStartedEventId\n 40: optional i64 (js.type = \"Long\") LastFirstEventId\n 50: optional shared.TaskList taskList\n 60: optional shared.TaskList stickyTaskList\n 70: optional string clientLibraryVersion\n 80: optional string clientFeatureVersion\n 90: optional string clientImpl\n 100: optional i32 stickyTaskListScheduleToStartTimeout\n 110: optional binary currentBranchToken\n 130: optional shared.VersionHistories versionHistories\n // TODO: when migrating to gRPC, make this a enum\n // TODO: when migrating to gRPC, unify internal & external representation\n // NOTE: workflowState & workflowCloseState are the same as persistence representation\n 140: optional i32 workflowState\n 150: optional i32 workflowCloseState\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskCompletedRequest completeRequest\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional RecordDecisionTaskStartedResponse startedResponse\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondDecisionTaskFailedRequest failedRequest\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional string domainUUID\n 20: optional shared.RecordActivityTaskHeartbeatRequest heartbeatRequest\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCompletedRequest completeRequest\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskFailedRequest failedRequest\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional string domainUUID\n 20: optional shared.RespondActivityTaskCanceledRequest cancelRequest\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domainUIID\n 20: optional shared.RefreshWorkflowTasksRequest request\n}\n\nstruct RecordActivityTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForActivityTaskRequest pollRequest\n}\n\nstruct RecordActivityTaskStartedResponse {\n 20: optional shared.HistoryEvent scheduledEvent\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") attempt\n 50: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 60: optional binary heartbeatDetails\n 70: optional shared.WorkflowType workflowType\n 80: optional string workflowDomain\n}\n\nstruct RecordDecisionTaskStartedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") scheduleId\n 40: optional i64 (js.type = \"Long\") taskId\n 45: optional string requestId // Unique id of each poll request. Used to ensure at most once delivery of tasks.\n 50: optional shared.PollForDecisionTaskRequest pollRequest\n}\n\nstruct RecordDecisionTaskStartedResponse {\n 10: optional shared.WorkflowType workflowType\n 20: optional i64 (js.type = \"Long\") previousStartedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional i64 (js.type = \"Long\") nextEventId\n 60: optional i64 (js.type = \"Long\") attempt\n 70: optional bool stickyExecutionEnabled\n 80: optional shared.TransientDecisionInfo decisionInfo\n 90: optional shared.TaskList WorkflowExecutionTaskList\n 100: optional i32 eventStoreVersion\n 110: optional binary branchToken\n 120: optional i64 (js.type = \"Long\") scheduledTimestamp\n 130: optional i64 (js.type = \"Long\") startedTimestamp\n 140: optional map queries\n 150: optional i64 (js.type = \"Long\") historySize\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWorkflowExecutionRequest signalRequest\n // workflow execution that requests this signal, for making sure\n // the workflow being signaled is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.SignalWithStartWorkflowExecutionRequest signalWithStartRequest\n 30: optional map partitionConfig\n}\n\nstruct RemoveSignalMutableStateRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional string requestId\n}\n\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.TerminateWorkflowExecutionRequest terminateRequest\n // workflow execution that requests this termination, for making sure\n // the workflow being terminated is actually a child of the workflow\n // making the request\n 30: optional shared.WorkflowExecution externalWorkflowExecution\n 40: optional bool childWorkflowOnly\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.ResetWorkflowExecutionRequest resetRequest\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.RequestCancelWorkflowExecutionRequest cancelRequest\n // workflow execution that requests this cancellation, for making sure\n // the workflow being cancelled is actually a child of the workflow\n // making the request\n 30: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 40: optional shared.WorkflowExecution externalWorkflowExecution\n 50: optional bool childWorkflowOnly\n}\n\nstruct ScheduleDecisionTaskRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional bool isFirstDecision\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domainUUID\n 20: optional shared.DescribeWorkflowExecutionRequest request\n}\n\n/**\n* RecordChildExecutionCompletedRequest is used for reporting the completion of child execution to parent workflow\n* execution which started it. When a child execution is completed it creates this request and calls the\n* RecordChildExecutionCompleted API with the workflowExecution of parent. It also sets the completedExecution of the\n* child as it could potentially be different than the ChildExecutionStartedEvent of parent in the situation when\n* child creates multiple runs through ContinueAsNew before finally completing.\n**/\nstruct RecordChildExecutionCompletedRequest {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional i64 (js.type = \"Long\") initiatedId\n 40: optional shared.WorkflowExecution completedExecution\n 50: optional shared.HistoryEvent completionEvent\n 60: optional i64 (js.type = \"Long\") startedId\n}\n\nstruct ReplicateEventsV2Request {\n 10: optional string domainUUID\n 20: optional shared.WorkflowExecution workflowExecution\n 30: optional list versionHistoryItems\n 40: optional shared.DataBlob events\n // new run events does not need version history since there is no prior events\n 60: optional shared.DataBlob newRunEvents\n}\n\nstruct SyncShardStatusRequest {\n 10: optional string sourceCluster\n 20: optional i64 (js.type = \"Long\") shardId\n 30: optional i64 (js.type = \"Long\") timestamp\n}\n\nstruct SyncActivityRequest {\n 10: optional string domainId\n 20: optional string workflowId\n 30: optional string runId\n 40: optional i64 (js.type = \"Long\") version\n 50: optional i64 (js.type = \"Long\") scheduledId\n 60: optional i64 (js.type = \"Long\") scheduledTime\n 70: optional i64 (js.type = \"Long\") startedId\n 80: optional i64 (js.type = \"Long\") startedTime\n 90: optional i64 (js.type = \"Long\") lastHeartbeatTime\n 100: optional binary details\n 110: optional i32 attempt\n 120: optional string lastFailureReason\n 130: optional string lastWorkerIdentity\n 140: optional binary lastFailureDetails\n 150: optional shared.VersionHistory versionHistory\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domainUUID\n 20: optional shared.QueryWorkflowRequest request\n}\n\nstruct QueryWorkflowResponse {\n 10: optional shared.QueryWorkflowResponse response\n}\n\nstruct ReapplyEventsRequest {\n 10: optional string domainUUID\n 20: optional shared.ReapplyEventsRequest request\n}\n\nstruct FailoverMarkerToken {\n 10: optional list shardIDs\n 20: optional replicator.FailoverMarkerAttributes failoverMarker\n}\n\nstruct NotifyFailoverMarkersRequest {\n 10: optional list failoverMarkerTokens\n}\n\nstruct ProcessingQueueStates {\n 10: optional map> statesByCluster\n}\n\nstruct ProcessingQueueState {\n 10: optional i32 level\n 20: optional i64 ackLevel\n 30: optional i64 maxLevel\n 40: optional DomainFilter domainFilter\n}\n\nstruct DomainFilter {\n 10: optional list domainIDs\n 20: optional bool reverseMatch\n}\n\nstruct GetFailoverInfoRequest {\n 10: optional string domainID\n}\n\nstruct GetFailoverInfoResponse {\n 10: optional i32 completedShardCount\n 20: optional list pendingShards\n}\n\nstruct RatelimitUpdateRequest {\n // impl-specific data.\n // likely some simple top-level keys and then either:\n // - map\n // - list\n //\n // this is a single blob rather than a collection to save on\n // repeated serialization of the type name, and to allow impls\n // to choose whatever structures are most-convenient for them.\n 10: optional shared.Any data\n}\n\nstruct RatelimitUpdateResponse {\n // impl-specific data.\n // likely some simple top-level keys and then either:\n // - map\n // - list\n //\n // this is a single blob rather than a collection to save on\n // repeated serialization of the type name, and to allow impls\n // to choose whatever structures are most-convenient for them.\n 10: optional shared.Any data\n}\n\n/**\n* HistoryService provides API to start a new long running workflow instance, as well as query and update the history\n* of workflow instances already created.\n**/\nservice HistoryService {\n /**\n * StartWorkflowExecution starts a new long running workflow instance. It will create the instance with\n * 'WorkflowExecutionStarted' event in history and also schedule the first DecisionTask for the worker to make the\n * first decision for this instance. It will return 'WorkflowExecutionAlreadyStartedError', if an instance already\n * exists with same workflowId.\n **/\n shared.StartWorkflowExecutionResponse StartWorkflowExecution(1: StartWorkflowExecutionRequest startRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.WorkflowExecutionAlreadyStartedError sessionAlreadyExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n GetMutableStateResponse GetMutableState(1: GetMutableStateRequest getRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Returns the information from mutable state of workflow execution.\n * It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service.\n * It returns CurrentBranchChangedError if the workflow version branch has changed.\n **/\n PollMutableStateResponse PollMutableState(1: PollMutableStateRequest pollRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.CurrentBranchChangedError currentBranchChangedError,\n )\n\n /**\n * Reset the sticky tasklist related information in mutable state of a given workflow.\n * Things cleared are:\n * 1. StickyTaskList\n * 2. StickyScheduleToStartTimeout\n * 3. ClientLibraryVersion\n * 4. ClientFeatureVersion\n * 5. ClientImpl\n **/\n ResetStickyTaskListResponse ResetStickyTaskList(1: ResetStickyTaskListRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordDecisionTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForDecisionTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordDecisionTaskStartedResponse RecordDecisionTaskStarted(1: RecordDecisionTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskStarted is called by the Matchingservice before it hands a decision task to the application worker in response to\n * a PollForActivityTask call. It records in the history the event that the decision task has started. It will return 'EventAlreadyStartedError',\n * if the workflow's execution history already includes a record of the event starting.\n **/\n RecordActivityTaskStartedResponse RecordActivityTaskStarted(1: RecordActivityTaskStartedRequest addRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: EventAlreadyStartedError eventAlreadyStartedError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 9: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of\n * 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and\n * potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted\n * event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call\n * for completing the DecisionTask.\n **/\n RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(1: RespondDecisionTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondDecisionTaskFailed is called by application worker to indicate failure. This results in\n * DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to\n * either clear sticky tasklist or report ny panics during DecisionTask processing.\n **/\n void RespondDecisionTaskFailed(1: RespondDecisionTaskFailedRequest failedRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails\n * to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and\n * 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will\n * fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for heartbeating.\n **/\n shared.RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(1: RecordActivityTaskHeartbeatRequest heartbeatRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask\n * created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCompleted(1: RespondActivityTaskCompletedRequest completeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will\n * result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskFailed(1: RespondActivityTaskFailedRequest failRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask. It will\n * result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of\n * PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid\n * anymore due to activity timeout.\n **/\n void RespondActivityTaskCanceled(1: RespondActivityTaskCanceledRequest canceledRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWorkflowExecution is used to send a signal event to running workflow execution. This results in\n * WorkflowExecutionSignaled event recorded in the history and a decision task being created for the execution.\n **/\n void SignalWorkflowExecution(1: SignalWorkflowExecutionRequest signalRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * SignalWithStartWorkflowExecution is used to ensure sending a signal event to a workflow execution.\n * If workflow is running, this results in WorkflowExecutionSignaled event recorded in the history\n * and a decision task being created for the execution.\n * If workflow is not running or not found, it will first try start workflow with given WorkflowIDResuePolicy,\n * and record WorkflowExecutionStarted and WorkflowExecutionSignaled event in case of success.\n * It will return `WorkflowExecutionAlreadyStartedError` if start workflow failed with given policy.\n **/\n shared.StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(1: SignalWithStartWorkflowExecutionRequest signalWithStartRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.DomainNotActiveError domainNotActiveError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n 7: shared.WorkflowExecutionAlreadyStartedError workflowAlreadyStartedError,\n )\n\n /**\n * RemoveSignalMutableState is used to remove a signal request ID that was previously recorded. This is currently\n * used to clean execution info when signal decision finished.\n **/\n void RemoveSignalMutableState(1: RemoveSignalMutableStateRequest removeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * TerminateWorkflowExecution terminates an existing workflow execution by recording WorkflowExecutionTerminated event\n * in the history and immediately terminating the execution instance.\n **/\n void TerminateWorkflowExecution(1: TerminateWorkflowExecutionRequest terminateRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ResetWorkflowExecution reset an existing workflow execution by a firstEventID of a existing event batch\n * in the history and immediately terminating the current execution instance.\n * After reset, the history will grow from nextFirstEventID.\n **/\n shared.ResetWorkflowExecutionResponse ResetWorkflowExecution(1: ResetWorkflowExecutionRequest resetRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RequestCancelWorkflowExecution is called by application worker when it wants to request cancellation of a workflow instance.\n * It will result in a new 'WorkflowExecutionCancelRequested' event being written to the workflow history and a new DecisionTask\n * created for the workflow instance so new decisions could be made. It fails with\n * 'WorkflowExecutionAlreadyCompletedError' if the workflow is not valid\n * anymore due to completion or with 'EntityNotExistsError' if worfklow doesn't exist.\n **/\n void RequestCancelWorkflowExecution(1: RequestCancelWorkflowExecutionRequest cancelRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.CancellationAlreadyRequestedError cancellationAlreadyRequestedError,\n 6: shared.DomainNotActiveError domainNotActiveError,\n 7: shared.LimitExceededError limitExceededError,\n 8: shared.ServiceBusyError serviceBusyError,\n 10: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * ScheduleDecisionTask is used for creating a decision task for already started workflow execution. This is mainly\n * used by transfer queue processor during the processing of StartChildWorkflowExecution task, where it first starts\n * child execution without creating the decision task and then calls this API after updating the mutable state of\n * parent execution.\n **/\n void ScheduleDecisionTask(1: ScheduleDecisionTaskRequest scheduleRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * RecordChildExecutionCompleted is used for reporting the completion of child workflow execution to parent.\n * This is mainly called by transfer queue processor during the processing of DeleteExecution task.\n **/\n void RecordChildExecutionCompleted(1: RecordChildExecutionCompletedRequest completionRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.DomainNotActiveError domainNotActiveError,\n 6: shared.LimitExceededError limitExceededError,\n 7: shared.ServiceBusyError serviceBusyError,\n 8: shared.WorkflowExecutionAlreadyCompletedError workflowExecutionAlreadyCompletedError,\n )\n\n /**\n * DescribeWorkflowExecution returns information about the specified workflow execution.\n **/\n shared.DescribeWorkflowExecutionResponse DescribeWorkflowExecution(1: DescribeWorkflowExecutionRequest describeRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n void ReplicateEventsV2(1: ReplicateEventsV2Request replicateV2Request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.RetryTaskV2Error retryTaskError,\n 7: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncShardStatus sync the status between shards\n **/\n void SyncShardStatus(1: SyncShardStatusRequest syncShardStatusRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.LimitExceededError limitExceededError,\n 6: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * SyncActivity sync the activity status\n **/\n void SyncActivity(1: SyncActivityRequest syncActivityRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 7: shared.RetryTaskV2Error retryTaskV2Error,\n )\n\n /**\n * DescribeMutableState returns information about the internal states of workflow mutable state.\n **/\n DescribeMutableStateResponse DescribeMutableState(1: DescribeMutableStateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.EntityNotExistsError entityNotExistError,\n 4: shared.AccessDeniedError accessDeniedError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n 6: shared.LimitExceededError limitExceededError,\n )\n\n /**\n * DescribeHistoryHost returns information about the internal states of a history host\n **/\n shared.DescribeHistoryHostResponse DescribeHistoryHost(1: shared.DescribeHistoryHostRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * CloseShard close the shard\n **/\n void CloseShard(1: shared.CloseShardRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * RemoveTask remove task based on type, taskid, shardid\n **/\n void RemoveTask(1: shared.RemoveTaskRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * ResetQueue reset processing queue state based on cluster name and type\n **/\n void ResetQueue(1: shared.ResetQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * DescribeQueue return queue states based on cluster name and type\n **/\n shared.DescribeQueueResponse DescribeQueue(1: shared.DescribeQueueRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.AccessDeniedError accessDeniedError,\n )\n\n /**\n * GetReplicationMessages return replication messages based on the read level\n **/\n replicator.GetReplicationMessagesResponse GetReplicationMessages(1: replicator.GetReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.LimitExceededError limitExceededError,\n 4: shared.ServiceBusyError serviceBusyError,\n 5: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n )\n\n /**\n * GetDLQReplicationMessages return replication messages based on dlq info\n **/\n replicator.GetDLQReplicationMessagesResponse GetDLQReplicationMessages(1: replicator.GetDLQReplicationMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * QueryWorkflow returns query result for a specified workflow execution\n **/\n QueryWorkflowResponse QueryWorkflow(1: QueryWorkflowRequest queryRequest)\n\tthrows (\n\t 1: shared.BadRequestError badRequestError,\n\t 2: shared.InternalServiceError internalServiceError,\n\t 3: shared.EntityNotExistsError entityNotExistError,\n\t 4: shared.QueryFailedError queryFailedError,\n\t 5: shared.LimitExceededError limitExceededError,\n\t 6: shared.ServiceBusyError serviceBusyError,\n\t 7: shared.ClientVersionNotSupportedError clientVersionNotSupportedError,\n\t)\n\n /**\n * ReapplyEvents applies stale events to the current workflow and current run\n **/\n void ReapplyEvents(1: ReapplyEventsRequest reapplyEventsRequest)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: shared.LimitExceededError limitExceededError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: ShardOwnershipLostError shardOwnershipLostError,\n 7: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RefreshWorkflowTasks refreshes all tasks of a workflow\n **/\n void RefreshWorkflowTasks(1: RefreshWorkflowTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.DomainNotActiveError domainNotActiveError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n 5: shared.ServiceBusyError serviceBusyError,\n 6: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * ReadDLQMessages returns messages from DLQ\n **/\n replicator.ReadDLQMessagesResponse ReadDLQMessages(1: replicator.ReadDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * PurgeDLQMessages purges messages from DLQ\n **/\n void PurgeDLQMessages(1: replicator.PurgeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * MergeDLQMessages merges messages from DLQ\n **/\n replicator.MergeDLQMessagesResponse MergeDLQMessages(1: replicator.MergeDLQMessagesRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: shared.EntityNotExistsError entityNotExistError,\n 5: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * NotifyFailoverMarkers sends failover marker to the failover coordinator\n **/\n void NotifyFailoverMarkers(1: NotifyFailoverMarkersRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * GetCrossClusterTasks fetches cross cluster tasks\n **/\n shared.GetCrossClusterTasksResponse GetCrossClusterTasks(1: shared.GetCrossClusterTasksRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n )\n\n /**\n * RespondCrossClusterTasksCompleted responds the result of processing cross cluster tasks\n **/\n shared.RespondCrossClusterTasksCompletedResponse RespondCrossClusterTasksCompleted(1: shared.RespondCrossClusterTasksCompletedRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n\n /**\n * GetFailoverInfo responds the failover info about an on-going graceful failover\n **/\n GetFailoverInfoResponse GetFailoverInfo(1: GetFailoverInfoRequest request)\n throws (\n 1: shared.InternalServiceError internalServiceError,\n 2: shared.ServiceBusyError serviceBusyError,\n 3: ShardOwnershipLostError shardOwnershipLostError,\n 4: shared.EntityNotExistsError entityNotExistError,\n )\n\n /**\n * RatelimitUpdate pushes global-ratelimiting data to aggregating hosts,\n * and returns data describing how to update the caller's ratelimits.\n *\n * For more details, see github.com/uber/cadence/common/quotas/global documentation.\n *\n * Request and response structures are intentionally loosely defined, to allow plugging\n * in externally-defined algorithms without changing protocol-level details.\n **/\n RatelimitUpdateResponse RatelimitUpdate(1: RatelimitUpdateRequest request)\n throws (\n 1: shared.BadRequestError badRequestError,\n 2: shared.InternalServiceError internalServiceError,\n 3: shared.ServiceBusyError serviceBusyError,\n 4: ShardOwnershipLostError shardOwnershipLostError,\n )\n}\n" // HistoryService_CloseShard_Args represents the arguments for the HistoryService.CloseShard function. // diff --git a/.gen/go/shared/shared.go b/.gen/go/shared/shared.go index 0547c96fe49..5874b216b45 100644 --- a/.gen/go/shared/shared.go +++ b/.gen/go/shared/shared.go @@ -7683,12 +7683,14 @@ type CancelExternalWorkflowExecutionFailedCause int32 const ( CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution CancelExternalWorkflowExecutionFailedCause = 0 + CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted CancelExternalWorkflowExecutionFailedCause = 1 ) // CancelExternalWorkflowExecutionFailedCause_Values returns all recognized values of CancelExternalWorkflowExecutionFailedCause. func CancelExternalWorkflowExecutionFailedCause_Values() []CancelExternalWorkflowExecutionFailedCause { return []CancelExternalWorkflowExecutionFailedCause{ CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution, + CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted, } } @@ -7702,6 +7704,9 @@ func (v *CancelExternalWorkflowExecutionFailedCause) UnmarshalText(value []byte) case "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION": *v = CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return nil + case "WORKFLOW_ALREADY_COMPLETED": + *v = CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return nil default: val, err := strconv.ParseInt(s, 10, 32) if err != nil { @@ -7722,6 +7727,8 @@ func (v CancelExternalWorkflowExecutionFailedCause) MarshalText() ([]byte, error switch int32(v) { case 0: return []byte("UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION"), nil + case 1: + return []byte("WORKFLOW_ALREADY_COMPLETED"), nil } return []byte(strconv.FormatInt(int64(v), 10)), nil } @@ -7735,6 +7742,8 @@ func (v CancelExternalWorkflowExecutionFailedCause) MarshalLogObject(enc zapcore switch int32(v) { case 0: enc.AddString("name", "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION") + case 1: + enc.AddString("name", "WORKFLOW_ALREADY_COMPLETED") } return nil } @@ -7805,6 +7814,8 @@ func (v CancelExternalWorkflowExecutionFailedCause) String() string { switch w { case 0: return "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION" + case 1: + return "WORKFLOW_ALREADY_COMPLETED" } return fmt.Sprintf("CancelExternalWorkflowExecutionFailedCause(%d)", w) } @@ -7825,6 +7836,8 @@ func (v CancelExternalWorkflowExecutionFailedCause) MarshalJSON() ([]byte, error switch int32(v) { case 0: return ([]byte)("\"UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION\""), nil + case 1: + return ([]byte)("\"WORKFLOW_ALREADY_COMPLETED\""), nil } return ([]byte)(strconv.FormatInt(int64(v), 10)), nil } @@ -80006,12 +80019,14 @@ type SignalExternalWorkflowExecutionFailedCause int32 const ( SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution SignalExternalWorkflowExecutionFailedCause = 0 + SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted SignalExternalWorkflowExecutionFailedCause = 1 ) // SignalExternalWorkflowExecutionFailedCause_Values returns all recognized values of SignalExternalWorkflowExecutionFailedCause. func SignalExternalWorkflowExecutionFailedCause_Values() []SignalExternalWorkflowExecutionFailedCause { return []SignalExternalWorkflowExecutionFailedCause{ SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution, + SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted, } } @@ -80025,6 +80040,9 @@ func (v *SignalExternalWorkflowExecutionFailedCause) UnmarshalText(value []byte) case "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION": *v = SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return nil + case "WORKFLOW_ALREADY_COMPLETED": + *v = SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return nil default: val, err := strconv.ParseInt(s, 10, 32) if err != nil { @@ -80045,6 +80063,8 @@ func (v SignalExternalWorkflowExecutionFailedCause) MarshalText() ([]byte, error switch int32(v) { case 0: return []byte("UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION"), nil + case 1: + return []byte("WORKFLOW_ALREADY_COMPLETED"), nil } return []byte(strconv.FormatInt(int64(v), 10)), nil } @@ -80058,6 +80078,8 @@ func (v SignalExternalWorkflowExecutionFailedCause) MarshalLogObject(enc zapcore switch int32(v) { case 0: enc.AddString("name", "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION") + case 1: + enc.AddString("name", "WORKFLOW_ALREADY_COMPLETED") } return nil } @@ -80128,6 +80150,8 @@ func (v SignalExternalWorkflowExecutionFailedCause) String() string { switch w { case 0: return "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION" + case 1: + return "WORKFLOW_ALREADY_COMPLETED" } return fmt.Sprintf("SignalExternalWorkflowExecutionFailedCause(%d)", w) } @@ -80148,6 +80172,8 @@ func (v SignalExternalWorkflowExecutionFailedCause) MarshalJSON() ([]byte, error switch int32(v) { case 0: return ([]byte)("\"UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION\""), nil + case 1: + return ([]byte)("\"WORKFLOW_ALREADY_COMPLETED\""), nil } return ([]byte)(strconv.FormatInt(int64(v), 10)), nil } @@ -106360,8 +106386,8 @@ var ThriftModule = &thriftreflect.ThriftModule{ Name: "shared", Package: "github.com/uber/cadence/.gen/go/shared", FilePath: "shared.thrift", - SHA1: "f0eb8e2bd4951a148f5ef5e7846e1007be349042", + SHA1: "f1f2b0dbe4f3a49642e5079a8cc1c03d8c865410", Raw: rawIDL, } -const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n 2: optional string reason\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n 160: optional string requestId\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n 90: optional string requestId\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n 100: optional string requestId\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n 50: optional string requestId\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n 40: optional string requestId\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct StartWorkflowExecutionAsyncRequest {\n 10: optional StartWorkflowExecutionRequest request\n}\n\nstruct StartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncRequest {\n 10: optional SignalWithStartWorkflowExecutionRequest request\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n 10: optional bool enabled\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 20: optional string predefinedQueueName\n // queueType is the type of the queue if predefined_queue_name is not used\n 30: optional string queueType\n // queueConfig is the configuration for the queue if predefined_queue_name is not used\n 40: optional DataBlob queueConfig\n}\n\n/**\n* Any is a logical duplicate of google.protobuf.Any.\n*\n* The intent of the type is the same, but it is not intended to be directly\n* compatible with google.protobuf.Any or any Thrift equivalent - this blob is\n* RPC-type agnostic by design (as the underlying data may be transported over\n* proto or thrift), and the data-bytes may be in any encoding.\n*\n* This is intentionally different from DataBlob, which supports only a handful\n* of known encodings so it can be interpreted everywhere. Any supports literally\n* any contents, and needs to be considered opaque until it is given to something\n* that is expecting it.\n*\n* See ValueType to interpret the contents.\n**/\nstruct Any {\n // Type-string describing value's contents, and intentionally avoiding the\n // name \"type\" as it is often a special term.\n // This should usually be a hard-coded string of some kind.\n 10: optional string ValueType\n // Arbitrarily-encoded bytes, to be deserialized by a runtime implementation.\n // The contents are described by ValueType.\n 20: optional binary Value\n}\n" +const rawIDL = "// Copyright (c) 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nnamespace java com.uber.cadence\n\nexception BadRequestError {\n 1: required string message\n}\n\nexception InternalServiceError {\n 1: required string message\n}\n\nexception InternalDataInconsistencyError {\n 1: required string message\n}\n\nexception DomainAlreadyExistsError {\n 1: required string message\n}\n\nexception WorkflowExecutionAlreadyStartedError {\n 10: optional string message\n 20: optional string startRequestId\n 30: optional string runId\n}\n\nexception WorkflowExecutionAlreadyCompletedError {\n 1: required string message\n}\n\nexception EntityNotExistsError {\n 1: required string message\n 2: optional string currentCluster\n 3: optional string activeCluster\n}\n\nexception ServiceBusyError {\n 1: required string message\n 2: optional string reason\n}\n\nexception CancellationAlreadyRequestedError {\n 1: required string message\n}\n\nexception QueryFailedError {\n 1: required string message\n}\n\nexception DomainNotActiveError {\n 1: required string message\n 2: required string domainName\n 3: required string currentCluster\n 4: required string activeCluster\n}\n\nexception LimitExceededError {\n 1: required string message\n}\n\nexception AccessDeniedError {\n 1: required string message\n}\n\nexception RetryTaskV2Error {\n 1: required string message\n 2: optional string domainId\n 3: optional string workflowId\n 4: optional string runId\n 5: optional i64 (js.type = \"Long\") startEventId\n 6: optional i64 (js.type = \"Long\") startEventVersion\n 7: optional i64 (js.type = \"Long\") endEventId\n 8: optional i64 (js.type = \"Long\") endEventVersion\n}\n\nexception ClientVersionNotSupportedError {\n 1: required string featureVersion\n 2: required string clientImpl\n 3: required string supportedVersions\n}\n\nexception FeatureNotEnabledError {\n 1: required string featureFlag\n}\n\nexception CurrentBranchChangedError {\n 10: required string message\n 20: required binary currentBranchToken\n}\n\nexception RemoteSyncMatchedError {\n 10: required string message\n}\n\nexception StickyWorkerUnavailableError {\n 1: required string message\n}\n\nenum WorkflowIdReusePolicy {\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running, and the last execution close state is in\n * [terminated, cancelled, timeouted, failed].\n */\n AllowDuplicateFailedOnly,\n /*\n * allow start a workflow execution using the same workflow ID,\n * when workflow not running.\n */\n AllowDuplicate,\n /*\n * do not allow start a workflow execution using the same workflow ID at all\n */\n RejectDuplicate,\n /*\n * if a workflow is running using the same workflow ID, terminate it and start a new one\n */\n TerminateIfRunning,\n}\n\nenum DomainStatus {\n REGISTERED,\n DEPRECATED,\n DELETED,\n}\n\nenum TimeoutType {\n START_TO_CLOSE,\n SCHEDULE_TO_START,\n SCHEDULE_TO_CLOSE,\n HEARTBEAT,\n}\n\nenum ParentClosePolicy {\n\tABANDON,\n\tREQUEST_CANCEL,\n\tTERMINATE,\n}\n\n\n// whenever this list of decision is changed\n// do change the mutableStateBuilder.go\n// function shouldBufferEvent\n// to make sure wo do the correct event ordering\nenum DecisionType {\n ScheduleActivityTask,\n RequestCancelActivityTask,\n StartTimer,\n CompleteWorkflowExecution,\n FailWorkflowExecution,\n CancelTimer,\n CancelWorkflowExecution,\n RequestCancelExternalWorkflowExecution,\n RecordMarker,\n ContinueAsNewWorkflowExecution,\n StartChildWorkflowExecution,\n SignalExternalWorkflowExecution,\n UpsertWorkflowSearchAttributes,\n}\n\nenum EventType {\n WorkflowExecutionStarted,\n WorkflowExecutionCompleted,\n WorkflowExecutionFailed,\n WorkflowExecutionTimedOut,\n DecisionTaskScheduled,\n DecisionTaskStarted,\n DecisionTaskCompleted,\n DecisionTaskTimedOut\n DecisionTaskFailed,\n ActivityTaskScheduled,\n ActivityTaskStarted,\n ActivityTaskCompleted,\n ActivityTaskFailed,\n ActivityTaskTimedOut,\n ActivityTaskCancelRequested,\n RequestCancelActivityTaskFailed,\n ActivityTaskCanceled,\n TimerStarted,\n TimerFired,\n CancelTimerFailed,\n TimerCanceled,\n WorkflowExecutionCancelRequested,\n WorkflowExecutionCanceled,\n RequestCancelExternalWorkflowExecutionInitiated,\n RequestCancelExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionCancelRequested,\n MarkerRecorded,\n WorkflowExecutionSignaled,\n WorkflowExecutionTerminated,\n WorkflowExecutionContinuedAsNew,\n StartChildWorkflowExecutionInitiated,\n StartChildWorkflowExecutionFailed,\n ChildWorkflowExecutionStarted,\n ChildWorkflowExecutionCompleted,\n ChildWorkflowExecutionFailed,\n ChildWorkflowExecutionCanceled,\n ChildWorkflowExecutionTimedOut,\n ChildWorkflowExecutionTerminated,\n SignalExternalWorkflowExecutionInitiated,\n SignalExternalWorkflowExecutionFailed,\n ExternalWorkflowExecutionSignaled,\n UpsertWorkflowSearchAttributes,\n}\n\nenum DecisionTaskFailedCause {\n UNHANDLED_DECISION,\n BAD_SCHEDULE_ACTIVITY_ATTRIBUTES,\n BAD_REQUEST_CANCEL_ACTIVITY_ATTRIBUTES,\n BAD_START_TIMER_ATTRIBUTES,\n BAD_CANCEL_TIMER_ATTRIBUTES,\n BAD_RECORD_MARKER_ATTRIBUTES,\n BAD_COMPLETE_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_FAIL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CANCEL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_CONTINUE_AS_NEW_ATTRIBUTES,\n START_TIMER_DUPLICATE_ID,\n RESET_STICKY_TASKLIST,\n WORKFLOW_WORKER_UNHANDLED_FAILURE,\n BAD_SIGNAL_WORKFLOW_EXECUTION_ATTRIBUTES,\n BAD_START_CHILD_EXECUTION_ATTRIBUTES,\n FORCE_CLOSE_DECISION,\n FAILOVER_CLOSE_DECISION,\n BAD_SIGNAL_INPUT_SIZE,\n RESET_WORKFLOW,\n BAD_BINARY,\n SCHEDULE_ACTIVITY_DUPLICATE_ID,\n BAD_SEARCH_ATTRIBUTES,\n}\n\nenum DecisionTaskTimedOutCause {\n TIMEOUT,\n RESET,\n}\n\nenum CancelExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum SignalExternalWorkflowExecutionFailedCause {\n UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION,\n WORKFLOW_ALREADY_COMPLETED,\n}\n\nenum ChildWorkflowExecutionFailedCause {\n WORKFLOW_ALREADY_RUNNING,\n}\n\n// TODO: when migrating to gRPC, add a running / none status,\n// currently, customer is using null / nil as an indication\n// that workflow is still running\nenum WorkflowExecutionCloseStatus {\n COMPLETED,\n FAILED,\n CANCELED,\n TERMINATED,\n CONTINUED_AS_NEW,\n TIMED_OUT,\n}\n\nenum QueryTaskCompletedType {\n COMPLETED,\n FAILED,\n}\n\nenum QueryResultType {\n ANSWERED,\n FAILED,\n}\n\nenum PendingActivityState {\n SCHEDULED,\n STARTED,\n CANCEL_REQUESTED,\n}\n\nenum PendingDecisionState {\n SCHEDULED,\n STARTED,\n}\n\nenum HistoryEventFilterType {\n ALL_EVENT,\n CLOSE_EVENT,\n}\n\nenum TaskListKind {\n NORMAL,\n STICKY,\n}\n\nenum ArchivalStatus {\n DISABLED,\n ENABLED,\n}\n\nenum IndexedValueType {\n STRING,\n KEYWORD,\n INT,\n DOUBLE,\n BOOL,\n DATETIME,\n}\n\nstruct Header {\n 10: optional map fields\n}\n\nstruct WorkflowType {\n 10: optional string name\n}\n\nstruct ActivityType {\n 10: optional string name\n}\n\nstruct TaskList {\n 10: optional string name\n 20: optional TaskListKind kind\n}\n\nenum EncodingType {\n ThriftRW,\n JSON,\n}\n\nenum QueryRejectCondition {\n // NOT_OPEN indicates that query should be rejected if workflow is not open\n NOT_OPEN\n // NOT_COMPLETED_CLEANLY indicates that query should be rejected if workflow did not complete cleanly\n NOT_COMPLETED_CLEANLY\n}\n\nenum QueryConsistencyLevel {\n // EVENTUAL indicates that query should be eventually consistent\n EVENTUAL\n // STRONG indicates that any events that came before query should be reflected in workflow state before running query\n STRONG\n}\n\nstruct DataBlob {\n 10: optional EncodingType EncodingType\n 20: optional binary Data\n}\n\nstruct TaskListMetadata {\n 10: optional double maxTasksPerSecond\n}\n\nstruct WorkflowExecution {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct Memo {\n 10: optional map fields\n}\n\nstruct SearchAttributes {\n 10: optional map indexedFields\n}\n\nstruct WorkerVersionInfo {\n 10: optional string impl\n 20: optional string featureVersion\n}\n\nstruct WorkflowExecutionInfo {\n 10: optional WorkflowExecution execution\n 20: optional WorkflowType type\n 30: optional i64 (js.type = \"Long\") startTime\n 40: optional i64 (js.type = \"Long\") closeTime\n 50: optional WorkflowExecutionCloseStatus closeStatus\n 60: optional i64 (js.type = \"Long\") historyLength\n 70: optional string parentDomainId\n 71: optional string parentDomainName\n 72: optional i64 parentInitatedId\n 80: optional WorkflowExecution parentExecution\n 90: optional i64 (js.type = \"Long\") executionTime\n 100: optional Memo memo\n 101: optional SearchAttributes searchAttributes\n 110: optional ResetPoints autoResetPoints\n 120: optional string taskList\n 130: optional bool isCron\n 140: optional i64 (js.type = \"Long\") updateTime\n 150: optional map partitionConfig\n}\n\nstruct WorkflowExecutionConfiguration {\n 10: optional TaskList taskList\n 20: optional i32 executionStartToCloseTimeoutSeconds\n 30: optional i32 taskStartToCloseTimeoutSeconds\n// 40: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n}\n\nstruct TransientDecisionInfo {\n 10: optional HistoryEvent scheduledEvent\n 20: optional HistoryEvent startedEvent\n}\n\nstruct ScheduleActivityTaskDecisionAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional Header header\n 90: optional bool requestLocalDispatch\n}\n\nstruct ActivityLocalDispatchInfo{\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 50: optional binary taskToken\n}\n\nstruct RequestCancelActivityTaskDecisionAttributes {\n 10: optional string activityId\n}\n\nstruct StartTimerDecisionAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n}\n\nstruct CompleteWorkflowExecutionDecisionAttributes {\n 10: optional binary result\n}\n\nstruct FailWorkflowExecutionDecisionAttributes {\n 10: optional string reason\n 20: optional binary details\n}\n\nstruct CancelTimerDecisionAttributes {\n 10: optional string timerId\n}\n\nstruct CancelWorkflowExecutionDecisionAttributes {\n 10: optional binary details\n}\n\nstruct RequestCancelExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional string runId\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional string signalName\n 40: optional binary input\n 50: optional binary control\n 60: optional bool childWorkflowOnly\n}\n\nstruct UpsertWorkflowSearchAttributesDecisionAttributes {\n 10: optional SearchAttributes searchAttributes\n}\n\nstruct RecordMarkerDecisionAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional Header header\n}\n\nstruct ContinueAsNewWorkflowExecutionDecisionAttributes {\n 10: optional WorkflowType workflowType\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n 60: optional i32 backoffStartIntervalInSeconds\n 70: optional RetryPolicy retryPolicy\n 80: optional ContinueAsNewInitiator initiator\n 90: optional string failureReason\n 100: optional binary failureDetails\n 110: optional binary lastCompletionResult\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n 160: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionDecisionAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional RetryPolicy retryPolicy\n 120: optional string cronSchedule\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct Decision {\n 10: optional DecisionType decisionType\n 20: optional ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes\n 25: optional StartTimerDecisionAttributes startTimerDecisionAttributes\n 30: optional CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes\n 35: optional FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes\n 40: optional RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes\n 50: optional CancelTimerDecisionAttributes cancelTimerDecisionAttributes\n 60: optional CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes\n 70: optional RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes\n 80: optional RecordMarkerDecisionAttributes recordMarkerDecisionAttributes\n 90: optional ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes\n 100: optional StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes\n 110: optional SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes\n 120: optional UpsertWorkflowSearchAttributesDecisionAttributes upsertWorkflowSearchAttributesDecisionAttributes\n}\n\nstruct WorkflowExecutionStartedEventAttributes {\n 10: optional WorkflowType workflowType\n 12: optional string parentWorkflowDomain\n 14: optional WorkflowExecution parentWorkflowExecution\n 16: optional i64 (js.type = \"Long\") parentInitiatedEventId\n 20: optional TaskList taskList\n 30: optional binary input\n 40: optional i32 executionStartToCloseTimeoutSeconds\n 50: optional i32 taskStartToCloseTimeoutSeconds\n// 52: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 54: optional string continuedExecutionRunId\n 55: optional ContinueAsNewInitiator initiator\n 56: optional string continuedFailureReason\n 57: optional binary continuedFailureDetails\n 58: optional binary lastCompletionResult\n 59: optional string originalExecutionRunId // This is the runID when the WorkflowExecutionStarted event is written\n 60: optional string identity\n 61: optional string firstExecutionRunId // This is the very first runID along the chain of ContinueAsNew and Reset.\n 62: optional i64 (js.type = \"Long\") firstScheduledTimeNano\n 70: optional RetryPolicy retryPolicy\n 80: optional i32 attempt\n 90: optional i64 (js.type = \"Long\") expirationTimestamp\n 100: optional string cronSchedule\n 110: optional i32 firstDecisionTaskBackoffSeconds\n 120: optional Memo memo\n 121: optional SearchAttributes searchAttributes\n 130: optional ResetPoints prevAutoResetPoints\n 140: optional Header header\n 150: optional map partitionConfig\n 160: optional string requestId\n}\n\nstruct ResetPoints{\n 10: optional list points\n}\n\n struct ResetPointInfo{\n 10: optional string binaryChecksum\n 20: optional string runId\n 30: optional i64 firstDecisionCompletedId\n 40: optional i64 (js.type = \"Long\") createdTimeNano\n 50: optional i64 (js.type = \"Long\") expiringTimeNano //the time that the run is deleted due to retention\n 60: optional bool resettable // false if the resset point has pending childWFs/reqCancels/signalExternals.\n}\n\nstruct WorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct WorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n}\n\nenum ContinueAsNewInitiator {\n Decider,\n RetryPolicy,\n CronSchedule,\n}\n\nstruct WorkflowExecutionContinuedAsNewEventAttributes {\n 10: optional string newExecutionRunId\n 20: optional WorkflowType workflowType\n 30: optional TaskList taskList\n 40: optional binary input\n 50: optional i32 executionStartToCloseTimeoutSeconds\n 60: optional i32 taskStartToCloseTimeoutSeconds\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 80: optional i32 backoffStartIntervalInSeconds\n 90: optional ContinueAsNewInitiator initiator\n 100: optional string failureReason\n 110: optional binary failureDetails\n 120: optional binary lastCompletionResult\n 130: optional Header header\n 140: optional Memo memo\n 150: optional SearchAttributes searchAttributes\n}\n\nstruct DecisionTaskScheduledEventAttributes {\n 10: optional TaskList taskList\n 20: optional i32 startToCloseTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") attempt\n}\n\nstruct DecisionTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n}\n\nstruct DecisionTaskCompletedEventAttributes {\n 10: optional binary executionContext\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct DecisionTaskTimedOutEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // for reset workflow\n 40: optional string baseRunId\n 50: optional string newRunId\n 60: optional i64 (js.type = \"Long\") forkEventVersion\n 70: optional string reason\n 80: optional DecisionTaskTimedOutCause cause\n 90: optional string requestId\n}\n\nstruct DecisionTaskFailedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional DecisionTaskFailedCause cause\n 35: optional binary details\n 40: optional string identity\n 50: optional string reason\n // for reset workflow\n 60: optional string baseRunId\n 70: optional string newRunId\n 80: optional i64 (js.type = \"Long\") forkEventVersion\n 90: optional string binaryChecksum\n 100: optional string requestId\n}\n\nstruct ActivityTaskScheduledEventAttributes {\n 10: optional string activityId\n 20: optional ActivityType activityType\n 25: optional string domain\n 30: optional TaskList taskList\n 40: optional binary input\n 45: optional i32 scheduleToCloseTimeoutSeconds\n 50: optional i32 scheduleToStartTimeoutSeconds\n 55: optional i32 startToCloseTimeoutSeconds\n 60: optional i32 heartbeatTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional RetryPolicy retryPolicy\n 120: optional Header header\n}\n\nstruct ActivityTaskStartedEventAttributes {\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional string identity\n 30: optional string requestId\n 40: optional i32 attempt\n 50: optional string lastFailureReason\n 60: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCompletedEventAttributes {\n 10: optional binary result\n 20: optional i64 (js.type = \"Long\") scheduledEventId\n 30: optional i64 (js.type = \"Long\") startedEventId\n 40: optional string identity\n}\n\nstruct ActivityTaskFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct ActivityTaskTimedOutEventAttributes {\n 05: optional binary details\n 10: optional i64 (js.type = \"Long\") scheduledEventId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional TimeoutType timeoutType\n // For retry activity, it may have a failure before timeout. It's important to keep those information for debug.\n // Client can also provide the info for making next decision\n 40: optional string lastFailureReason\n 50: optional binary lastFailureDetails\n}\n\nstruct ActivityTaskCancelRequestedEventAttributes {\n 10: optional string activityId\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct RequestCancelActivityTaskFailedEventAttributes{\n 10: optional string activityId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ActivityTaskCanceledEventAttributes {\n 10: optional binary details\n 20: optional i64 (js.type = \"Long\") latestCancelRequestedEventId\n 30: optional i64 (js.type = \"Long\") scheduledEventId\n 40: optional i64 (js.type = \"Long\") startedEventId\n 50: optional string identity\n}\n\nstruct TimerStartedEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startToFireTimeoutSeconds\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct TimerFiredEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct TimerCanceledEventAttributes {\n 10: optional string timerId\n 20: optional i64 (js.type = \"Long\") startedEventId\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct CancelTimerFailedEventAttributes {\n 10: optional string timerId\n 20: optional string cause\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional string identity\n}\n\nstruct WorkflowExecutionCancelRequestedEventAttributes {\n 10: optional string cause\n 20: optional i64 (js.type = \"Long\") externalInitiatedEventId\n 30: optional WorkflowExecution externalWorkflowExecution\n 40: optional string identity\n 50: optional string requestId\n}\n\nstruct WorkflowExecutionCanceledEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional binary details\n}\n\nstruct MarkerRecordedEventAttributes {\n 10: optional string markerName\n 20: optional binary details\n 30: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 40: optional Header header\n}\n\nstruct WorkflowExecutionSignaledEventAttributes {\n 10: optional string signalName\n 20: optional binary input\n 30: optional string identity\n 40: optional string requestId\n}\n\nstruct WorkflowExecutionTerminatedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n 50: optional bool childWorkflowOnly\n}\n\nstruct RequestCancelExternalWorkflowExecutionFailedEventAttributes {\n 10: optional CancelExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionCancelRequestedEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n}\n\nstruct SignalExternalWorkflowExecutionInitiatedEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional string signalName\n 50: optional binary input\n 60: optional binary control\n 70: optional bool childWorkflowOnly\n}\n\nstruct SignalExternalWorkflowExecutionFailedEventAttributes {\n 10: optional SignalExternalWorkflowExecutionFailedCause cause\n 20: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional binary control\n}\n\nstruct ExternalWorkflowExecutionSignaledEventAttributes {\n 10: optional i64 (js.type = \"Long\") initiatedEventId\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional binary control\n}\n\nstruct UpsertWorkflowSearchAttributesEventAttributes {\n 10: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 20: optional SearchAttributes searchAttributes\n}\n\nstruct StartChildWorkflowExecutionInitiatedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n// 80: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 81: optional ParentClosePolicy parentClosePolicy\n 90: optional binary control\n 100: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n 110: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Header header\n 150: optional Memo memo\n 160: optional SearchAttributes searchAttributes\n 170: optional i32 delayStartSeconds\n 180: optional i32 jitterStartSeconds\n}\n\nstruct StartChildWorkflowExecutionFailedEventAttributes {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional ChildWorkflowExecutionFailedCause cause\n 50: optional binary control\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") decisionTaskCompletedEventId\n}\n\nstruct ChildWorkflowExecutionStartedEventAttributes {\n 10: optional string domain\n 20: optional i64 (js.type = \"Long\") initiatedEventId\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional Header header\n}\n\nstruct ChildWorkflowExecutionCompletedEventAttributes {\n 10: optional binary result\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionFailedEventAttributes {\n 10: optional string reason\n 20: optional binary details\n 30: optional string domain\n 40: optional WorkflowExecution workflowExecution\n 50: optional WorkflowType workflowType\n 60: optional i64 (js.type = \"Long\") initiatedEventId\n 70: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionCanceledEventAttributes {\n 10: optional binary details\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTimedOutEventAttributes {\n 10: optional TimeoutType timeoutType\n 20: optional string domain\n 30: optional WorkflowExecution workflowExecution\n 40: optional WorkflowType workflowType\n 50: optional i64 (js.type = \"Long\") initiatedEventId\n 60: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct ChildWorkflowExecutionTerminatedEventAttributes {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") initiatedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n}\n\nstruct HistoryEvent {\n 10: optional i64 (js.type = \"Long\") eventId\n 20: optional i64 (js.type = \"Long\") timestamp\n 30: optional EventType eventType\n 35: optional i64 (js.type = \"Long\") version\n 36: optional i64 (js.type = \"Long\") taskId\n 40: optional WorkflowExecutionStartedEventAttributes workflowExecutionStartedEventAttributes\n 50: optional WorkflowExecutionCompletedEventAttributes workflowExecutionCompletedEventAttributes\n 60: optional WorkflowExecutionFailedEventAttributes workflowExecutionFailedEventAttributes\n 70: optional WorkflowExecutionTimedOutEventAttributes workflowExecutionTimedOutEventAttributes\n 80: optional DecisionTaskScheduledEventAttributes decisionTaskScheduledEventAttributes\n 90: optional DecisionTaskStartedEventAttributes decisionTaskStartedEventAttributes\n 100: optional DecisionTaskCompletedEventAttributes decisionTaskCompletedEventAttributes\n 110: optional DecisionTaskTimedOutEventAttributes decisionTaskTimedOutEventAttributes\n 120: optional DecisionTaskFailedEventAttributes decisionTaskFailedEventAttributes\n 130: optional ActivityTaskScheduledEventAttributes activityTaskScheduledEventAttributes\n 140: optional ActivityTaskStartedEventAttributes activityTaskStartedEventAttributes\n 150: optional ActivityTaskCompletedEventAttributes activityTaskCompletedEventAttributes\n 160: optional ActivityTaskFailedEventAttributes activityTaskFailedEventAttributes\n 170: optional ActivityTaskTimedOutEventAttributes activityTaskTimedOutEventAttributes\n 180: optional TimerStartedEventAttributes timerStartedEventAttributes\n 190: optional TimerFiredEventAttributes timerFiredEventAttributes\n 200: optional ActivityTaskCancelRequestedEventAttributes activityTaskCancelRequestedEventAttributes\n 210: optional RequestCancelActivityTaskFailedEventAttributes requestCancelActivityTaskFailedEventAttributes\n 220: optional ActivityTaskCanceledEventAttributes activityTaskCanceledEventAttributes\n 230: optional TimerCanceledEventAttributes timerCanceledEventAttributes\n 240: optional CancelTimerFailedEventAttributes cancelTimerFailedEventAttributes\n 250: optional MarkerRecordedEventAttributes markerRecordedEventAttributes\n 260: optional WorkflowExecutionSignaledEventAttributes workflowExecutionSignaledEventAttributes\n 270: optional WorkflowExecutionTerminatedEventAttributes workflowExecutionTerminatedEventAttributes\n 280: optional WorkflowExecutionCancelRequestedEventAttributes workflowExecutionCancelRequestedEventAttributes\n 290: optional WorkflowExecutionCanceledEventAttributes workflowExecutionCanceledEventAttributes\n 300: optional RequestCancelExternalWorkflowExecutionInitiatedEventAttributes requestCancelExternalWorkflowExecutionInitiatedEventAttributes\n 310: optional RequestCancelExternalWorkflowExecutionFailedEventAttributes requestCancelExternalWorkflowExecutionFailedEventAttributes\n 320: optional ExternalWorkflowExecutionCancelRequestedEventAttributes externalWorkflowExecutionCancelRequestedEventAttributes\n 330: optional WorkflowExecutionContinuedAsNewEventAttributes workflowExecutionContinuedAsNewEventAttributes\n 340: optional StartChildWorkflowExecutionInitiatedEventAttributes startChildWorkflowExecutionInitiatedEventAttributes\n 350: optional StartChildWorkflowExecutionFailedEventAttributes startChildWorkflowExecutionFailedEventAttributes\n 360: optional ChildWorkflowExecutionStartedEventAttributes childWorkflowExecutionStartedEventAttributes\n 370: optional ChildWorkflowExecutionCompletedEventAttributes childWorkflowExecutionCompletedEventAttributes\n 380: optional ChildWorkflowExecutionFailedEventAttributes childWorkflowExecutionFailedEventAttributes\n 390: optional ChildWorkflowExecutionCanceledEventAttributes childWorkflowExecutionCanceledEventAttributes\n 400: optional ChildWorkflowExecutionTimedOutEventAttributes childWorkflowExecutionTimedOutEventAttributes\n 410: optional ChildWorkflowExecutionTerminatedEventAttributes childWorkflowExecutionTerminatedEventAttributes\n 420: optional SignalExternalWorkflowExecutionInitiatedEventAttributes signalExternalWorkflowExecutionInitiatedEventAttributes\n 430: optional SignalExternalWorkflowExecutionFailedEventAttributes signalExternalWorkflowExecutionFailedEventAttributes\n 440: optional ExternalWorkflowExecutionSignaledEventAttributes externalWorkflowExecutionSignaledEventAttributes\n 450: optional UpsertWorkflowSearchAttributesEventAttributes upsertWorkflowSearchAttributesEventAttributes\n}\n\nstruct History {\n 10: optional list events\n}\n\nstruct WorkflowExecutionFilter {\n 10: optional string workflowId\n 20: optional string runId\n}\n\nstruct WorkflowTypeFilter {\n 10: optional string name\n}\n\nstruct StartTimeFilter {\n 10: optional i64 (js.type = \"Long\") earliestTime\n 20: optional i64 (js.type = \"Long\") latestTime\n}\n\nstruct DomainInfo {\n 10: optional string name\n 20: optional DomainStatus status\n 30: optional string description\n 40: optional string ownerEmail\n // A key-value map for any customized purpose\n 50: optional map data\n 60: optional string uuid\n}\n\nstruct DomainConfiguration {\n 10: optional i32 workflowExecutionRetentionPeriodInDays\n 20: optional bool emitMetric\n 60: optional IsolationGroupConfiguration isolationgroups\n 70: optional BadBinaries badBinaries\n 80: optional ArchivalStatus historyArchivalStatus\n 90: optional string historyArchivalURI\n 100: optional ArchivalStatus visibilityArchivalStatus\n 110: optional string visibilityArchivalURI\n 120: optional AsyncWorkflowConfiguration AsyncWorkflowConfiguration\n}\n\nstruct FailoverInfo {\n 10: optional i64 (js.type = \"Long\") failoverVersion\n 20: optional i64 (js.type = \"Long\") failoverStartTimestamp\n 30: optional i64 (js.type = \"Long\") failoverExpireTimestamp\n 40: optional i32 completedShardCount\n 50: optional list pendingShards\n}\n\nstruct BadBinaries{\n 10: optional map binaries\n}\n\nstruct BadBinaryInfo{\n 10: optional string reason\n 20: optional string operator\n 30: optional i64 (js.type = \"Long\") createdTimeNano\n}\n\nstruct UpdateDomainInfo {\n 10: optional string description\n 20: optional string ownerEmail\n // A key-value map for any customized purpose\n 30: optional map data\n}\n\nstruct ClusterReplicationConfiguration {\n 10: optional string clusterName\n}\n\nstruct DomainReplicationConfiguration {\n 10: optional string activeClusterName\n 20: optional list clusters\n}\n\nstruct RegisterDomainRequest {\n 10: optional string name\n 20: optional string description\n 30: optional string ownerEmail\n 40: optional i32 workflowExecutionRetentionPeriodInDays\n 50: optional bool emitMetric = true\n 60: optional list clusters\n 70: optional string activeClusterName\n // A key-value map for any customized purpose\n 80: optional map data\n 90: optional string securityToken\n 120: optional bool isGlobalDomain\n 130: optional ArchivalStatus historyArchivalStatus\n 140: optional string historyArchivalURI\n 150: optional ArchivalStatus visibilityArchivalStatus\n 160: optional string visibilityArchivalURI\n}\n\nstruct ListDomainsRequest {\n 10: optional i32 pageSize\n 20: optional binary nextPageToken\n}\n\nstruct ListDomainsResponse {\n 10: optional list domains\n 20: optional binary nextPageToken\n}\n\nstruct DescribeDomainRequest {\n 10: optional string name\n 20: optional string uuid\n}\n\nstruct DescribeDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n 60: optional FailoverInfo failoverInfo\n}\n\nstruct UpdateDomainRequest {\n 10: optional string name\n 20: optional UpdateDomainInfo updatedInfo\n 30: optional DomainConfiguration configuration\n 40: optional DomainReplicationConfiguration replicationConfiguration\n 50: optional string securityToken\n 60: optional string deleteBadBinary\n 70: optional i32 failoverTimeoutInSeconds\n}\n\nstruct UpdateDomainResponse {\n 10: optional DomainInfo domainInfo\n 20: optional DomainConfiguration configuration\n 30: optional DomainReplicationConfiguration replicationConfiguration\n 40: optional i64 (js.type = \"Long\") failoverVersion\n 50: optional bool isGlobalDomain\n}\n\nstruct DeprecateDomainRequest {\n 10: optional string name\n 20: optional string securityToken\n}\n\nstruct StartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n// 110: optional ChildPolicy childPolicy -- Removed but reserve the IDL order number\n 120: optional RetryPolicy retryPolicy\n 130: optional string cronSchedule\n 140: optional Memo memo\n 141: optional SearchAttributes searchAttributes\n 150: optional Header header\n 160: optional i32 delayStartSeconds\n 170: optional i32 jitterStartSeconds\n}\n\nstruct StartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct StartWorkflowExecutionAsyncRequest {\n 10: optional StartWorkflowExecutionRequest request\n}\n\nstruct StartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct PollForDecisionTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional string binaryChecksum\n}\n\nstruct PollForDecisionTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional WorkflowType workflowType\n 40: optional i64 (js.type = \"Long\") previousStartedEventId\n 50: optional i64 (js.type = \"Long\") startedEventId\n 51: optional i64 (js.type = 'Long') attempt\n 54: optional i64 (js.type = \"Long\") backlogCountHint\n 60: optional History history\n 70: optional binary nextPageToken\n 80: optional WorkflowQuery query\n 90: optional TaskList WorkflowExecutionTaskList\n 100: optional i64 (js.type = \"Long\") scheduledTimestamp\n 110: optional i64 (js.type = \"Long\") startedTimestamp\n 120: optional map queries\n 130: optional i64 (js.type = 'Long') nextEventId\n 140: optional i64 (js.type = 'Long') totalHistoryBytes\n}\n\nstruct StickyExecutionAttributes {\n 10: optional TaskList workerTaskList\n 20: optional i32 scheduleToStartTimeoutSeconds\n}\n\nstruct RespondDecisionTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional list decisions\n 30: optional binary executionContext\n 40: optional string identity\n 50: optional StickyExecutionAttributes stickyAttributes\n 60: optional bool returnNewDecisionTask\n 70: optional bool forceCreateNewDecisionTask\n 80: optional string binaryChecksum\n 90: optional map queryResults\n}\n\nstruct RespondDecisionTaskCompletedResponse {\n 10: optional PollForDecisionTaskResponse decisionTask\n 20: optional map activitiesToDispatchLocally\n}\n\nstruct RespondDecisionTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional DecisionTaskFailedCause cause\n 30: optional binary details\n 40: optional string identity\n 50: optional string binaryChecksum\n}\n\nstruct PollForActivityTaskRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional string identity\n 40: optional TaskListMetadata taskListMetadata\n}\n\nstruct PollForActivityTaskResponse {\n 10: optional binary taskToken\n 20: optional WorkflowExecution workflowExecution\n 30: optional string activityId\n 40: optional ActivityType activityType\n 50: optional binary input\n 70: optional i64 (js.type = \"Long\") scheduledTimestamp\n 80: optional i32 scheduleToCloseTimeoutSeconds\n 90: optional i64 (js.type = \"Long\") startedTimestamp\n 100: optional i32 startToCloseTimeoutSeconds\n 110: optional i32 heartbeatTimeoutSeconds\n 120: optional i32 attempt\n 130: optional i64 (js.type = \"Long\") scheduledTimestampOfThisAttempt\n 140: optional binary heartbeatDetails\n 150: optional WorkflowType workflowType\n 160: optional string workflowDomain\n 170: optional Header header\n}\n\nstruct RecordActivityTaskHeartbeatRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RecordActivityTaskHeartbeatResponse {\n 10: optional bool cancelRequested\n}\n\nstruct RespondActivityTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional binary result\n 30: optional string identity\n}\n\nstruct RespondActivityTaskFailedRequest {\n 10: optional binary taskToken\n 20: optional string reason\n 30: optional binary details\n 40: optional string identity\n}\n\nstruct RespondActivityTaskCanceledRequest {\n 10: optional binary taskToken\n 20: optional binary details\n 30: optional string identity\n}\n\nstruct RespondActivityTaskCompletedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary result\n 60: optional string identity\n}\n\nstruct RespondActivityTaskFailedByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional string reason\n 60: optional binary details\n 70: optional string identity\n}\n\nstruct RespondActivityTaskCanceledByIDRequest {\n 10: optional string domain\n 20: optional string workflowID\n 30: optional string runID\n 40: optional string activityID\n 50: optional binary details\n 60: optional string identity\n}\n\nstruct RequestCancelWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string identity\n 40: optional string requestId\n 50: optional string cause\n 60: optional string firstExecutionRunID\n}\n\nstruct GetWorkflowExecutionHistoryRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional i32 maximumPageSize\n 40: optional binary nextPageToken\n 50: optional bool waitForNewEvent\n 60: optional HistoryEventFilterType HistoryEventFilterType\n 70: optional bool skipArchival\n}\n\nstruct GetWorkflowExecutionHistoryResponse {\n 10: optional History history\n 11: optional list rawHistory\n 20: optional binary nextPageToken\n 30: optional bool archived\n}\n\nstruct SignalWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string signalName\n 40: optional binary input\n 50: optional string identity\n 60: optional string requestId\n 70: optional binary control\n}\n\nstruct SignalWithStartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional string workflowId\n 30: optional WorkflowType workflowType\n 40: optional TaskList taskList\n 50: optional binary input\n 60: optional i32 executionStartToCloseTimeoutSeconds\n 70: optional i32 taskStartToCloseTimeoutSeconds\n 80: optional string identity\n 90: optional string requestId\n 100: optional WorkflowIdReusePolicy workflowIdReusePolicy\n 110: optional string signalName\n 120: optional binary signalInput\n 130: optional binary control\n 140: optional RetryPolicy retryPolicy\n 150: optional string cronSchedule\n 160: optional Memo memo\n 161: optional SearchAttributes searchAttributes\n 170: optional Header header\n 180: optional i32 delayStartSeconds\n 190: optional i32 jitterStartSeconds\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncRequest {\n 10: optional SignalWithStartWorkflowExecutionRequest request\n}\n\nstruct SignalWithStartWorkflowExecutionAsyncResponse {\n}\n\nstruct RestartWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional string identity\n}\nstruct TerminateWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional binary details\n 50: optional string identity\n 60: optional string firstExecutionRunID\n}\n\nstruct ResetWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution workflowExecution\n 30: optional string reason\n 40: optional i64 (js.type = \"Long\") decisionFinishEventId\n 50: optional string requestId\n 60: optional bool skipSignalReapply\n}\n\nstruct ResetWorkflowExecutionResponse {\n 10: optional string runId\n}\n\nstruct ListOpenWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n}\n\nstruct ListOpenWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListClosedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 maximumPageSize\n 30: optional binary nextPageToken\n 40: optional StartTimeFilter StartTimeFilter\n 50: optional WorkflowExecutionFilter executionFilter\n 60: optional WorkflowTypeFilter typeFilter\n 70: optional WorkflowExecutionCloseStatus statusFilter\n}\n\nstruct ListClosedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct ListArchivedWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional i32 pageSize\n 30: optional binary nextPageToken\n 40: optional string query\n}\n\nstruct ListArchivedWorkflowExecutionsResponse {\n 10: optional list executions\n 20: optional binary nextPageToken\n}\n\nstruct CountWorkflowExecutionsRequest {\n 10: optional string domain\n 20: optional string query\n}\n\nstruct CountWorkflowExecutionsResponse {\n 10: optional i64 count\n}\n\nstruct GetSearchAttributesResponse {\n 10: optional map keys\n}\n\nstruct QueryWorkflowRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n 30: optional WorkflowQuery query\n // QueryRejectCondition can used to reject the query if workflow state does not satisify condition\n 40: optional QueryRejectCondition queryRejectCondition\n 50: optional QueryConsistencyLevel queryConsistencyLevel\n}\n\nstruct QueryRejected {\n 10: optional WorkflowExecutionCloseStatus closeStatus\n}\n\nstruct QueryWorkflowResponse {\n 10: optional binary queryResult\n 20: optional QueryRejected queryRejected\n}\n\nstruct WorkflowQuery {\n 10: optional string queryType\n 20: optional binary queryArgs\n}\n\nstruct ResetStickyTaskListRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct ResetStickyTaskListResponse {\n // The reason to keep this response is to allow returning\n // information in the future.\n}\n\nstruct RespondQueryTaskCompletedRequest {\n 10: optional binary taskToken\n 20: optional QueryTaskCompletedType completedType\n 30: optional binary queryResult\n 40: optional string errorMessage\n 50: optional WorkerVersionInfo workerVersionInfo\n}\n\nstruct WorkflowQueryResult {\n 10: optional QueryResultType resultType\n 20: optional binary answer\n 30: optional string errorMessage\n}\n\nstruct DescribeWorkflowExecutionRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct PendingActivityInfo {\n 10: optional string activityID\n 20: optional ActivityType activityType\n 30: optional PendingActivityState state\n 40: optional binary heartbeatDetails\n 50: optional i64 (js.type = \"Long\") lastHeartbeatTimestamp\n 60: optional i64 (js.type = \"Long\") lastStartedTimestamp\n 70: optional i32 attempt\n 80: optional i32 maximumAttempts\n 90: optional i64 (js.type = \"Long\") scheduledTimestamp\n 100: optional i64 (js.type = \"Long\") expirationTimestamp\n 110: optional string lastFailureReason\n 120: optional string lastWorkerIdentity\n 130: optional binary lastFailureDetails\n 140: optional string startedWorkerIdentity\n}\n\nstruct PendingDecisionInfo {\n 10: optional PendingDecisionState state\n 20: optional i64 (js.type = \"Long\") scheduledTimestamp\n 30: optional i64 (js.type = \"Long\") startedTimestamp\n 40: optional i64 attempt\n 50: optional i64 (js.type = \"Long\") originalScheduledTimestamp\n}\n\nstruct PendingChildExecutionInfo {\n 1: optional string domain\n 10: optional string workflowID\n 20: optional string runID\n 30: optional string workflowTypName\n 40: optional i64 (js.type = \"Long\") initiatedID\n 50: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct DescribeWorkflowExecutionResponse {\n 10: optional WorkflowExecutionConfiguration executionConfiguration\n 20: optional WorkflowExecutionInfo workflowExecutionInfo\n 30: optional list pendingActivities\n 40: optional list pendingChildren\n 50: optional PendingDecisionInfo pendingDecision\n}\n\nstruct DescribeTaskListRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n 30: optional TaskListType taskListType\n 40: optional bool includeTaskListStatus\n}\n\nstruct DescribeTaskListResponse {\n 10: optional list pollers\n 20: optional TaskListStatus taskListStatus\n}\n\nstruct GetTaskListsByDomainRequest {\n 10: optional string domainName\n}\n\nstruct GetTaskListsByDomainResponse {\n 10: optional map decisionTaskListMap\n 20: optional map activityTaskListMap\n}\n\nstruct ListTaskListPartitionsRequest {\n 10: optional string domain\n 20: optional TaskList taskList\n}\n\nstruct TaskListPartitionMetadata {\n 10: optional string key\n 20: optional string ownerHostName\n}\n\nstruct ListTaskListPartitionsResponse {\n 10: optional list activityTaskListPartitions\n 20: optional list decisionTaskListPartitions\n}\n\nstruct TaskListStatus {\n 10: optional i64 (js.type = \"Long\") backlogCountHint\n 20: optional i64 (js.type = \"Long\") readLevel\n 30: optional i64 (js.type = \"Long\") ackLevel\n 35: optional double ratePerSecond\n 40: optional TaskIDBlock taskIDBlock\n}\n\nstruct TaskIDBlock {\n 10: optional i64 (js.type = \"Long\") startID\n 20: optional i64 (js.type = \"Long\") endID\n}\n\n//At least one of the parameters needs to be provided\nstruct DescribeHistoryHostRequest {\n 10: optional string hostAddress //ip:port\n 20: optional i32 shardIdForHost\n 30: optional WorkflowExecution executionForHost\n}\n\nstruct RemoveTaskRequest {\n 10: optional i32 shardID\n 20: optional i32 type\n 30: optional i64 (js.type = \"Long\") taskID\n 40: optional i64 (js.type = \"Long\") visibilityTimestamp\n 50: optional string clusterName\n}\n\nstruct CloseShardRequest {\n 10: optional i32 shardID\n}\n\nstruct ResetQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueRequest {\n 10: optional i32 shardID\n 20: optional string clusterName\n 30: optional i32 type\n}\n\nstruct DescribeQueueResponse {\n 10: optional list processingQueueStates\n}\n\nstruct DescribeShardDistributionRequest {\n 10: optional i32 pageSize\n 20: optional i32 pageID\n}\n\nstruct DescribeShardDistributionResponse {\n 10: optional i32 numberOfShards\n\n // ShardID to Address (ip:port) map\n 20: optional map shards\n}\n\nstruct DescribeHistoryHostResponse{\n 10: optional i32 numberOfShards\n 20: optional list shardIDs\n 30: optional DomainCacheInfo domainCache\n 40: optional string shardControllerStatus\n 50: optional string address\n}\n\nstruct DomainCacheInfo{\n 10: optional i64 numOfItemsInCacheByID\n 20: optional i64 numOfItemsInCacheByName\n}\n\nenum TaskListType {\n /*\n * Decision type of tasklist\n */\n Decision,\n /*\n * Activity type of tasklist\n */\n Activity,\n}\n\nstruct PollerInfo {\n // Unix Nano\n 10: optional i64 (js.type = \"Long\") lastAccessTime\n 20: optional string identity\n 30: optional double ratePerSecond\n}\n\nstruct RetryPolicy {\n // Interval of the first retry. If coefficient is 1.0 then it is used for all retries.\n 10: optional i32 initialIntervalInSeconds\n\n // Coefficient used to calculate the next retry interval.\n // The next retry interval is previous interval multiplied by the coefficient.\n // Must be 1 or larger.\n 20: optional double backoffCoefficient\n\n // Maximum interval between retries. Exponential backoff leads to interval increase.\n // This value is the cap of the increase. Default is 100x of initial interval.\n 30: optional i32 maximumIntervalInSeconds\n\n // Maximum number of attempts. When exceeded the retries stop even if not expired yet.\n // Must be 1 or bigger. Default is unlimited.\n 40: optional i32 maximumAttempts\n\n // Non-Retriable errors. Will stop retrying if error matches this list.\n 50: optional list nonRetriableErrorReasons\n\n // Expiration time for the whole retry process.\n 60: optional i32 expirationIntervalInSeconds\n}\n\n// HistoryBranchRange represents a piece of range for a branch.\nstruct HistoryBranchRange{\n // branchID of original branch forked from\n 10: optional string branchID\n // beinning node for the range, inclusive\n 20: optional i64 beginNodeID\n // ending node for the range, exclusive\n 30: optional i64 endNodeID\n}\n\n// For history persistence to serialize/deserialize branch details\nstruct HistoryBranch{\n 10: optional string treeID\n 20: optional string branchID\n 30: optional list ancestors\n}\n\n// VersionHistoryItem contains signal eventID and the corresponding version\nstruct VersionHistoryItem{\n 10: optional i64 (js.type = \"Long\") eventID\n 20: optional i64 (js.type = \"Long\") version\n}\n\n// VersionHistory contains the version history of a branch\nstruct VersionHistory{\n 10: optional binary branchToken\n 20: optional list items\n}\n\n// VersionHistories contains all version histories from all branches\nstruct VersionHistories{\n 10: optional i32 currentVersionHistoryIndex\n 20: optional list histories\n}\n\n// ReapplyEventsRequest is the request for reapply events API\nstruct ReapplyEventsRequest{\n 10: optional string domainName\n 20: optional WorkflowExecution workflowExecution\n 30: optional DataBlob events\n}\n\n// SupportedClientVersions contains the support versions for client library\nstruct SupportedClientVersions{\n 10: optional string goSdk\n 20: optional string javaSdk\n}\n\n// ClusterInfo contains information about cadence cluster\nstruct ClusterInfo{\n 10: optional SupportedClientVersions supportedClientVersions\n}\n\nstruct RefreshWorkflowTasksRequest {\n 10: optional string domain\n 20: optional WorkflowExecution execution\n}\n\nstruct FeatureFlags {\n\t10: optional bool WorkflowExecutionAlreadyCompletedErrorEnabled\n}\n\nenum CrossClusterTaskType {\n StartChildExecution\n CancelExecution\n SignalExecution\n RecordChildWorkflowExecutionComplete\n ApplyParentClosePolicy\n}\n\nenum CrossClusterTaskFailedCause {\n DOMAIN_NOT_ACTIVE\n DOMAIN_NOT_EXISTS\n WORKFLOW_ALREADY_RUNNING\n WORKFLOW_NOT_EXISTS\n WORKFLOW_ALREADY_COMPLETED\n UNCATEGORIZED\n}\n\nenum GetTaskFailedCause {\n SERVICE_BUSY\n TIMEOUT\n SHARD_OWNERSHIP_LOST\n UNCATEGORIZED\n}\n\nstruct CrossClusterTaskInfo {\n 10: optional string domainID\n 20: optional string workflowID\n 30: optional string runID\n 40: optional CrossClusterTaskType taskType\n 50: optional i16 taskState\n 60: optional i64 (js.type = \"Long\") taskID\n 70: optional i64 (js.type = \"Long\") visibilityTimestamp\n}\n\nstruct CrossClusterStartChildExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string requestID\n 30: optional i64 (js.type = \"Long\") initiatedEventID\n 40: optional StartChildWorkflowExecutionInitiatedEventAttributes initiatedEventAttributes\n // targetRunID is for scheduling first decision task\n // targetWorkflowID is available in initiatedEventAttributes\n 50: optional string targetRunID\n 60: optional map partitionConfig\n}\n\nstruct CrossClusterStartChildExecutionResponseAttributes {\n 10: optional string runID\n}\n\nstruct CrossClusterCancelExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n}\n\nstruct CrossClusterCancelExecutionResponseAttributes {\n}\n\nstruct CrossClusterSignalExecutionRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional string requestID\n 50: optional i64 (js.type = \"Long\") initiatedEventID\n 60: optional bool childWorkflowOnly\n 70: optional string signalName\n 80: optional binary signalInput\n 90: optional binary control\n}\n\nstruct CrossClusterSignalExecutionResponseAttributes {\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes {\n 10: optional string targetDomainID\n 20: optional string targetWorkflowID\n 30: optional string targetRunID\n 40: optional i64 (js.type = \"Long\") initiatedEventID\n 50: optional HistoryEvent completionEvent\n}\n\nstruct CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes {\n}\n\nstruct ApplyParentClosePolicyAttributes {\n 10: optional string childDomainID\n 20: optional string childWorkflowID\n 30: optional string childRunID\n 40: optional ParentClosePolicy parentClosePolicy\n}\n\nstruct ApplyParentClosePolicyStatus {\n 10: optional bool completed\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct ApplyParentClosePolicyRequest {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional ApplyParentClosePolicyStatus status\n}\n\nstruct CrossClusterApplyParentClosePolicyRequestAttributes {\n 10: optional list children\n}\n\nstruct ApplyParentClosePolicyResult {\n 10: optional ApplyParentClosePolicyAttributes child\n 20: optional CrossClusterTaskFailedCause failedCause\n}\n\nstruct CrossClusterApplyParentClosePolicyResponseAttributes {\n 10: optional list childrenStatus\n}\n\nstruct CrossClusterTaskRequest {\n 10: optional CrossClusterTaskInfo taskInfo\n 20: optional CrossClusterStartChildExecutionRequestAttributes startChildExecutionAttributes\n 30: optional CrossClusterCancelExecutionRequestAttributes cancelExecutionAttributes\n 40: optional CrossClusterSignalExecutionRequestAttributes signalExecutionAttributes\n 50: optional CrossClusterRecordChildWorkflowExecutionCompleteRequestAttributes recordChildWorkflowExecutionCompleteAttributes\n 60: optional CrossClusterApplyParentClosePolicyRequestAttributes applyParentClosePolicyAttributes\n}\n\nstruct CrossClusterTaskResponse {\n 10: optional i64 (js.type = \"Long\") taskID\n 20: optional CrossClusterTaskType taskType\n 30: optional i16 taskState\n 40: optional CrossClusterTaskFailedCause failedCause\n 50: optional CrossClusterStartChildExecutionResponseAttributes startChildExecutionAttributes\n 60: optional CrossClusterCancelExecutionResponseAttributes cancelExecutionAttributes\n 70: optional CrossClusterSignalExecutionResponseAttributes signalExecutionAttributes\n 80: optional CrossClusterRecordChildWorkflowExecutionCompleteResponseAttributes recordChildWorkflowExecutionCompleteAttributes\n 90: optional CrossClusterApplyParentClosePolicyResponseAttributes applyParentClosePolicyAttributes\n}\n\nstruct GetCrossClusterTasksRequest {\n 10: optional list shardIDs\n 20: optional string targetCluster\n}\n\nstruct GetCrossClusterTasksResponse {\n 10: optional map> tasksByShard\n 20: optional map failedCauseByShard\n}\n\nstruct RespondCrossClusterTasksCompletedRequest {\n 10: optional i32 shardID\n 20: optional string targetCluster\n 30: optional list taskResponses\n 40: optional bool fetchNewTasks\n}\n\nstruct RespondCrossClusterTasksCompletedResponse {\n 10: optional list tasks\n}\n\nenum IsolationGroupState {\n INVALID,\n HEALTHY,\n DRAINED,\n}\n\nstruct IsolationGroupPartition {\n 10: optional string name\n 20: optional IsolationGroupState state\n}\n\nstruct IsolationGroupConfiguration {\n 10: optional list isolationGroups\n}\n\nstruct AsyncWorkflowConfiguration {\n 10: optional bool enabled\n // PredefinedQueueName is the name of the predefined queue in cadence server config's asyncWorkflowQueues\n 20: optional string predefinedQueueName\n // queueType is the type of the queue if predefined_queue_name is not used\n 30: optional string queueType\n // queueConfig is the configuration for the queue if predefined_queue_name is not used\n 40: optional DataBlob queueConfig\n}\n\n/**\n* Any is a logical duplicate of google.protobuf.Any.\n*\n* The intent of the type is the same, but it is not intended to be directly\n* compatible with google.protobuf.Any or any Thrift equivalent - this blob is\n* RPC-type agnostic by design (as the underlying data may be transported over\n* proto or thrift), and the data-bytes may be in any encoding.\n*\n* This is intentionally different from DataBlob, which supports only a handful\n* of known encodings so it can be interpreted everywhere. Any supports literally\n* any contents, and needs to be considered opaque until it is given to something\n* that is expecting it.\n*\n* See ValueType to interpret the contents.\n**/\nstruct Any {\n // Type-string describing value's contents, and intentionally avoiding the\n // name \"type\" as it is often a special term.\n // This should usually be a hard-coded string of some kind.\n 10: optional string ValueType\n // Arbitrarily-encoded bytes, to be deserialized by a runtime implementation.\n // The contents are described by ValueType.\n 20: optional binary Value\n}\n" diff --git a/.gen/proto/history/v1/service.pb.go b/.gen/proto/history/v1/service.pb.go index 89e40fc3770..ebd1d1e79ad 100644 --- a/.gen/proto/history/v1/service.pb.go +++ b/.gen/proto/history/v1/service.pb.go @@ -2828,6 +2828,7 @@ type RecordChildExecutionCompletedRequest struct { InitiatedId int64 `protobuf:"varint,3,opt,name=initiated_id,json=initiatedId,proto3" json:"initiated_id,omitempty"` CompletedExecution *v1.WorkflowExecution `protobuf:"bytes,4,opt,name=completed_execution,json=completedExecution,proto3" json:"completed_execution,omitempty"` CompletionEvent *v1.HistoryEvent `protobuf:"bytes,5,opt,name=completion_event,json=completionEvent,proto3" json:"completion_event,omitempty"` + StartedId int64 `protobuf:"varint,6,opt,name=started_id,json=startedId,proto3" json:"started_id,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2901,6 +2902,13 @@ func (m *RecordChildExecutionCompletedRequest) GetCompletionEvent() *v1.HistoryE return nil } +func (m *RecordChildExecutionCompletedRequest) GetStartedId() int64 { + if m != nil { + return m.StartedId + } + return 0 +} + type RecordChildExecutionCompletedResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -5527,318 +5535,318 @@ func init() { } var fileDescriptor_fee8ff76963a38ed = []byte{ - // 4964 bytes of a gzipped FileDescriptorProto + // 4967 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x4d, 0x6c, 0x1c, 0x47, - 0x76, 0x30, 0x7a, 0x46, 0xfc, 0x7b, 0x24, 0x87, 0x64, 0x89, 0x3f, 0xc3, 0xa1, 0x44, 0x91, 0x6d, - 0xcb, 0xa2, 0xe5, 0xf5, 0xd0, 0xa2, 0x6c, 0x49, 0x96, 0xe5, 0xd5, 0x4a, 0xa4, 0x24, 0x8f, 0x3f, - 0xfd, 0x36, 0x69, 0xf9, 0x4b, 0x90, 0xb8, 0xb7, 0x39, 0x5d, 0x43, 0x76, 0xd4, 0xd3, 0x3d, 0xea, - 0xee, 0x21, 0x35, 0x3e, 0x04, 0x4e, 0x36, 0x08, 0xb0, 0x8b, 0x20, 0xbb, 0x59, 0x24, 0x41, 0x80, - 0x00, 0x01, 0x82, 0x0d, 0xb0, 0x58, 0x23, 0xb7, 0x04, 0xc8, 0x21, 0xc9, 0x29, 0x97, 0x3d, 0xe6, - 0x9a, 0x5b, 0x60, 0x78, 0x0f, 0x09, 0x90, 0x53, 0xf6, 0x1c, 0x04, 0xf5, 0xd3, 0x3d, 0xfd, 0x53, - 0x5d, 0x3d, 0x24, 0x83, 0xc8, 0xeb, 0xf8, 0xc6, 0xa9, 0xaa, 0xf7, 0xea, 0xd5, 0xab, 0xf7, 0x5e, - 0xbf, 0xbf, 0x22, 0x9c, 0xef, 0xee, 0x62, 0x6f, 0xbd, 0x69, 0x98, 0xd8, 0x69, 0xe2, 0xf5, 0x7d, - 0xcb, 0x0f, 0x5c, 0xaf, 0xb7, 0x7e, 0x70, 0x69, 0xdd, 0xc7, 0xde, 0x81, 0xd5, 0xc4, 0xf5, 0x8e, - 0xe7, 0x06, 0x2e, 0x5a, 0x20, 0xcb, 0xea, 0x7c, 0x59, 0x9d, 0x2f, 0xab, 0x1f, 0x5c, 0xaa, 0x2d, - 0xef, 0xb9, 0xee, 0x9e, 0x8d, 0xd7, 0xe9, 0xb2, 0xdd, 0x6e, 0x6b, 0xdd, 0xec, 0x7a, 0x46, 0x60, - 0xb9, 0x0e, 0x03, 0xac, 0x9d, 0x4b, 0xcf, 0x07, 0x56, 0x1b, 0xfb, 0x81, 0xd1, 0xee, 0xf0, 0x05, - 0x19, 0x04, 0x87, 0x9e, 0xd1, 0xe9, 0x60, 0xcf, 0xe7, 0xf3, 0x2b, 0x09, 0x02, 0x8d, 0x8e, 0x45, - 0x88, 0x6b, 0xba, 0xed, 0x76, 0xb4, 0xc5, 0xaa, 0x68, 0x45, 0x48, 0x22, 0xa7, 0x42, 0xb4, 0xe4, - 0x79, 0x17, 0x47, 0x0b, 0x54, 0xd1, 0x82, 0xc0, 0xf0, 0x9f, 0xd9, 0x96, 0x1f, 0xc8, 0xd6, 0x1c, - 0xba, 0xde, 0xb3, 0x96, 0xed, 0x1e, 0xf2, 0x35, 0x17, 0x45, 0x6b, 0x38, 0x2b, 0xf5, 0xd4, 0xda, - 0xb5, 0xa2, 0xb5, 0xd8, 0xe3, 0x2b, 0x5f, 0x49, 0xae, 0x34, 0xdb, 0x96, 0x43, 0xb9, 0x60, 0x77, - 0xfd, 0xa0, 0x68, 0x51, 0x92, 0x11, 0xab, 0xe2, 0x45, 0xcf, 0xbb, 0xb8, 0xcb, 0xaf, 0xba, 0x76, - 0x41, 0xbc, 0xc4, 0xc3, 0x1d, 0xdb, 0x6a, 0xc6, 0xaf, 0x36, 0x79, 0x33, 0xfe, 0xbe, 0xe1, 0x61, - 0x93, 0xac, 0x34, 0x9c, 0x70, 0xb7, 0x57, 0x73, 0x56, 0x24, 0x69, 0x3a, 0x9f, 0xb3, 0x2a, 0xc9, - 0x2e, 0xf5, 0xcb, 0x61, 0x38, 0xbb, 0x1d, 0x18, 0x5e, 0xf0, 0x31, 0x1f, 0xbf, 0xf3, 0x02, 0x37, - 0xbb, 0x84, 0x1e, 0x0d, 0x3f, 0xef, 0x62, 0x3f, 0x40, 0xf7, 0x61, 0xc4, 0x63, 0x7f, 0x56, 0x95, - 0x15, 0x65, 0x6d, 0x7c, 0x63, 0xa3, 0x9e, 0x10, 0x5b, 0xa3, 0x63, 0xd5, 0x0f, 0x2e, 0xd5, 0xa5, - 0x48, 0xb4, 0x10, 0x05, 0x5a, 0x82, 0x31, 0xd3, 0x6d, 0x1b, 0x96, 0xa3, 0x5b, 0x66, 0xb5, 0xb4, - 0xa2, 0xac, 0x8d, 0x69, 0xa3, 0x6c, 0xa0, 0x61, 0xa2, 0xdf, 0x80, 0xb9, 0x8e, 0xe1, 0x61, 0x27, - 0xd0, 0x71, 0x88, 0x40, 0xb7, 0x9c, 0x96, 0x5b, 0x2d, 0xd3, 0x8d, 0xd7, 0x84, 0x1b, 0x3f, 0xa6, - 0x10, 0xd1, 0x8e, 0x0d, 0xa7, 0xe5, 0x6a, 0xa7, 0x3b, 0xd9, 0x41, 0x54, 0x85, 0x11, 0x23, 0x08, - 0x70, 0xbb, 0x13, 0x54, 0x4f, 0xad, 0x28, 0x6b, 0x43, 0x5a, 0xf8, 0x13, 0x6d, 0xc2, 0x14, 0x7e, - 0xd1, 0xb1, 0x98, 0x8a, 0xe9, 0x44, 0x97, 0xaa, 0x43, 0x74, 0xc7, 0x5a, 0x9d, 0xe9, 0x51, 0x3d, - 0xd4, 0xa3, 0xfa, 0x4e, 0xa8, 0x68, 0x5a, 0xa5, 0x0f, 0x42, 0x06, 0x51, 0x0b, 0x16, 0x9b, 0xae, - 0x13, 0x58, 0x4e, 0x17, 0xeb, 0x86, 0xaf, 0x3b, 0xf8, 0x50, 0xb7, 0x1c, 0x2b, 0xb0, 0x8c, 0xc0, - 0xf5, 0xaa, 0xc3, 0x2b, 0xca, 0x5a, 0x65, 0xe3, 0x0d, 0xe1, 0x01, 0x36, 0x39, 0xd4, 0x2d, 0xff, - 0x21, 0x3e, 0x6c, 0x84, 0x20, 0xda, 0x7c, 0x53, 0x38, 0x8e, 0x1a, 0x30, 0x13, 0xce, 0x98, 0x7a, - 0xcb, 0xb0, 0xec, 0xae, 0x87, 0xab, 0x23, 0x94, 0xdc, 0x33, 0x42, 0xfc, 0x77, 0xd9, 0x1a, 0x6d, - 0x3a, 0x02, 0xe3, 0x23, 0x48, 0x83, 0x79, 0xdb, 0xf0, 0x03, 0xbd, 0xe9, 0xb6, 0x3b, 0x36, 0xa6, - 0x87, 0xf7, 0xb0, 0xdf, 0xb5, 0x83, 0xea, 0xa8, 0x04, 0xdf, 0x63, 0xa3, 0x67, 0xbb, 0x86, 0xa9, - 0xcd, 0x12, 0xd8, 0xcd, 0x08, 0x54, 0xa3, 0x90, 0xe8, 0xff, 0xc3, 0x52, 0xcb, 0xf2, 0xfc, 0x40, - 0x37, 0x71, 0xd3, 0xf2, 0x29, 0x3f, 0x0d, 0xff, 0x99, 0xbe, 0x6b, 0x34, 0x9f, 0xb9, 0xad, 0x56, - 0x75, 0x8c, 0x22, 0x5e, 0xcc, 0xf0, 0x75, 0x8b, 0x1b, 0x38, 0xad, 0x4a, 0xa1, 0xb7, 0x38, 0xf0, - 0x8e, 0xe1, 0x3f, 0xbb, 0xcd, 0x40, 0xd1, 0x01, 0x4c, 0x77, 0x0c, 0x2f, 0xb0, 0x28, 0x9d, 0x4d, - 0xd7, 0x69, 0x59, 0x7b, 0x55, 0x58, 0x29, 0xaf, 0x8d, 0x6f, 0xfc, 0xbf, 0x7a, 0x8e, 0x21, 0x95, - 0x4b, 0x25, 0x11, 0x1d, 0x86, 0x6e, 0x93, 0x62, 0xbb, 0xe3, 0x04, 0x5e, 0x4f, 0x9b, 0xea, 0x24, - 0x47, 0x6b, 0xb7, 0x61, 0x56, 0xb4, 0x10, 0x4d, 0x43, 0xf9, 0x19, 0xee, 0x51, 0xa5, 0x18, 0xd3, - 0xc8, 0x9f, 0x68, 0x16, 0x86, 0x0e, 0x0c, 0xbb, 0x8b, 0xb9, 0x60, 0xb3, 0x1f, 0xd7, 0x4b, 0xd7, - 0x14, 0xf5, 0x2a, 0x2c, 0xe7, 0x91, 0xe2, 0x77, 0x5c, 0xc7, 0xc7, 0x68, 0x0e, 0x86, 0xbd, 0x2e, - 0xd5, 0x0a, 0x86, 0x70, 0xc8, 0xeb, 0x3a, 0x0d, 0x53, 0xfd, 0xab, 0x12, 0x2c, 0x6f, 0x5b, 0x7b, - 0x8e, 0x61, 0xe7, 0x2a, 0xe8, 0x83, 0xb4, 0x82, 0x5e, 0x16, 0x2b, 0xa8, 0x14, 0xcb, 0x80, 0x1a, - 0xda, 0x82, 0x25, 0xfc, 0x22, 0xc0, 0x9e, 0x63, 0xd8, 0x91, 0xe1, 0xed, 0x2b, 0x2b, 0xd7, 0xd3, - 0xd7, 0x84, 0xfb, 0x67, 0x77, 0x5e, 0x0c, 0x51, 0x65, 0xa6, 0x50, 0x1d, 0x4e, 0x37, 0xf7, 0x2d, - 0xdb, 0xec, 0x6f, 0xe2, 0x3a, 0x76, 0x8f, 0xea, 0xed, 0xa8, 0x36, 0x43, 0xa7, 0x42, 0xa0, 0x47, - 0x8e, 0xdd, 0x53, 0x57, 0xe1, 0x5c, 0xee, 0xf9, 0x18, 0x83, 0xd5, 0x5f, 0x94, 0xe0, 0x02, 0x5f, - 0x63, 0x05, 0xfb, 0x72, 0x9b, 0xf7, 0x34, 0xcd, 0xd2, 0x1b, 0x32, 0x96, 0x16, 0xa1, 0x1b, 0x90, - 0xb7, 0x9f, 0x29, 0x02, 0x01, 0x2f, 0x53, 0x01, 0xff, 0x28, 0x5f, 0xc0, 0x07, 0x23, 0xe1, 0x7f, - 0x51, 0xd4, 0x6f, 0xc1, 0x5a, 0x31, 0x51, 0x72, 0xa1, 0xff, 0x81, 0x02, 0x67, 0x35, 0xec, 0xe3, - 0x13, 0x7f, 0x94, 0xa4, 0x48, 0x06, 0xbb, 0x16, 0xa2, 0xba, 0x79, 0x68, 0xe4, 0xa7, 0xf8, 0xbc, - 0x04, 0xab, 0x3b, 0xd8, 0x6b, 0x5b, 0x8e, 0x11, 0xe0, 0xdc, 0x93, 0x3c, 0x4e, 0x9f, 0xe4, 0x8a, - 0xf0, 0x24, 0x85, 0x88, 0x7e, 0xc5, 0x15, 0xf8, 0x55, 0x50, 0x65, 0x47, 0xe4, 0x3a, 0xfc, 0x23, - 0x05, 0x56, 0xb6, 0xb0, 0xdf, 0xf4, 0xac, 0xdd, 0x7c, 0x8e, 0x3e, 0x4a, 0x73, 0xf4, 0x1d, 0xe1, - 0x71, 0x8a, 0xf0, 0x0c, 0x28, 0x1e, 0xff, 0x55, 0x86, 0x55, 0x09, 0x2a, 0x2e, 0x22, 0x36, 0x2c, - 0xf4, 0x5d, 0x1a, 0xa6, 0xda, 0xfc, 0x83, 0x27, 0xb5, 0xd9, 0x19, 0x84, 0x9b, 0x71, 0x50, 0x6d, - 0x1e, 0x0b, 0xc7, 0xd1, 0x2e, 0x2c, 0x64, 0xef, 0x96, 0x79, 0x52, 0x25, 0xba, 0xdb, 0xc5, 0xc1, - 0x76, 0xa3, 0xbe, 0xd4, 0xdc, 0xa1, 0x68, 0x18, 0x7d, 0x0c, 0xa8, 0x83, 0x1d, 0xd3, 0x72, 0xf6, - 0x74, 0xa3, 0x19, 0x58, 0x07, 0x56, 0x60, 0x61, 0x9f, 0x9b, 0xab, 0x1c, 0x47, 0x8d, 0x2d, 0xbf, - 0xc5, 0x56, 0xf7, 0x28, 0xf2, 0x99, 0x4e, 0x62, 0xd0, 0xc2, 0x3e, 0xfa, 0x35, 0x98, 0x0e, 0x11, - 0x53, 0x31, 0xf1, 0xb0, 0x53, 0x3d, 0x45, 0xd1, 0xd6, 0x65, 0x68, 0x37, 0xc9, 0xda, 0x24, 0xe5, - 0x53, 0x9d, 0xd8, 0x94, 0x87, 0x1d, 0xb4, 0xdd, 0x47, 0x1d, 0x7a, 0x27, 0xdc, 0xd1, 0x93, 0x52, - 0x1c, 0x3a, 0x23, 0x09, 0xa4, 0xe1, 0xa0, 0xfa, 0x02, 0x66, 0x9f, 0x90, 0x98, 0x27, 0xe4, 0x5e, - 0x28, 0x86, 0x9b, 0x69, 0x31, 0x7c, 0x5d, 0xb8, 0x87, 0x08, 0x76, 0x40, 0xd1, 0xfb, 0x89, 0x02, - 0x73, 0x29, 0x70, 0x2e, 0x6e, 0x37, 0x61, 0x82, 0xc6, 0x61, 0xa1, 0x3b, 0xa7, 0x0c, 0xe0, 0xce, - 0x8d, 0x53, 0x08, 0xee, 0xc5, 0x35, 0xa0, 0x12, 0x22, 0xf8, 0x2d, 0xdc, 0x0c, 0xb0, 0xc9, 0x05, - 0x47, 0xcd, 0x3f, 0x83, 0xc6, 0x57, 0x6a, 0x93, 0xcf, 0xe3, 0x3f, 0xd5, 0xdf, 0x53, 0xa0, 0x46, - 0x0d, 0xe8, 0x76, 0x60, 0x35, 0x9f, 0xf5, 0x88, 0x47, 0x77, 0xdf, 0xf2, 0x83, 0x90, 0x4d, 0x8d, - 0x34, 0x9b, 0xd6, 0xf3, 0x2d, 0xb9, 0x10, 0xc3, 0x80, 0xcc, 0x3a, 0x0b, 0x4b, 0x42, 0x1c, 0xdc, - 0xb2, 0xfc, 0xa7, 0x02, 0xf3, 0xf7, 0x70, 0xf0, 0xa0, 0x1b, 0x18, 0xbb, 0x36, 0xde, 0x0e, 0x8c, - 0x00, 0x6b, 0x22, 0xb4, 0x4a, 0xca, 0x9e, 0x7e, 0x04, 0x48, 0x60, 0x46, 0x4b, 0x47, 0x32, 0xa3, - 0x33, 0x19, 0x0d, 0x43, 0x97, 0x61, 0x1e, 0xbf, 0xe8, 0x50, 0x06, 0xea, 0x0e, 0x7e, 0x11, 0xe8, - 0xf8, 0x80, 0x84, 0x45, 0x96, 0x49, 0x2d, 0x74, 0x59, 0x3b, 0x1d, 0xce, 0x3e, 0xc4, 0x2f, 0x82, - 0x3b, 0x64, 0xae, 0x61, 0xa2, 0xb7, 0x60, 0xb6, 0xd9, 0xf5, 0x68, 0xfc, 0xb4, 0xeb, 0x19, 0x4e, - 0x73, 0x5f, 0x0f, 0xdc, 0x67, 0x54, 0x7b, 0x94, 0xb5, 0x09, 0x0d, 0xf1, 0xb9, 0xdb, 0x74, 0x6a, - 0x87, 0xcc, 0xa8, 0x7f, 0x37, 0x06, 0x0b, 0x99, 0x53, 0x73, 0x19, 0x12, 0x9f, 0x4c, 0x39, 0xe9, - 0xc9, 0xee, 0xc2, 0x64, 0x84, 0x36, 0xe8, 0x75, 0x30, 0xe7, 0xd5, 0xaa, 0x14, 0xe3, 0x4e, 0xaf, - 0x83, 0xb5, 0x89, 0xc3, 0xd8, 0x2f, 0xa4, 0xc2, 0xa4, 0x88, 0x31, 0xe3, 0x4e, 0x8c, 0x21, 0x4f, - 0x61, 0xb1, 0xe3, 0xe1, 0x03, 0xcb, 0xed, 0xfa, 0xba, 0x4f, 0x3c, 0x11, 0x6c, 0xf6, 0xd7, 0x9f, - 0xa2, 0xfb, 0x2e, 0x65, 0x22, 0x91, 0x86, 0x13, 0x5c, 0x79, 0xfb, 0x29, 0x71, 0x67, 0xb4, 0xf9, - 0x10, 0x7a, 0x9b, 0x01, 0x87, 0x78, 0xdf, 0x84, 0xd3, 0x34, 0x6e, 0x62, 0x81, 0x4e, 0x84, 0x71, - 0x88, 0x52, 0x30, 0x4d, 0xa6, 0xee, 0x92, 0x99, 0x70, 0xf9, 0x75, 0x18, 0xa3, 0x31, 0x90, 0x6d, - 0xf9, 0x01, 0x8d, 0x04, 0xc7, 0x37, 0xce, 0x8a, 0x3f, 0xf2, 0xa1, 0x54, 0x8e, 0x06, 0xfc, 0x2f, - 0x74, 0x0f, 0xa6, 0x7d, 0x2a, 0xb1, 0x7a, 0x1f, 0xc5, 0xc8, 0x20, 0x28, 0x2a, 0x7e, 0x42, 0xd0, - 0xd1, 0xdb, 0x30, 0xdf, 0xb4, 0x2d, 0x42, 0xa9, 0x6d, 0xed, 0x7a, 0x86, 0xd7, 0xd3, 0x0f, 0xb0, - 0x47, 0x2d, 0xe0, 0x28, 0x15, 0xe9, 0x59, 0x36, 0x7b, 0x9f, 0x4d, 0x3e, 0x65, 0x73, 0x31, 0xa8, - 0x16, 0x36, 0x82, 0xae, 0x87, 0x23, 0xa8, 0xb1, 0x38, 0xd4, 0x5d, 0x36, 0x19, 0x42, 0x9d, 0x83, - 0x71, 0x0e, 0x65, 0xb5, 0x3b, 0x76, 0x15, 0xe8, 0x52, 0x60, 0x43, 0x8d, 0x76, 0xc7, 0x46, 0x3e, - 0x5c, 0x4c, 0x9f, 0x4a, 0xf7, 0x9b, 0xfb, 0xd8, 0xec, 0xda, 0x58, 0x0f, 0x5c, 0x76, 0x59, 0x34, - 0x10, 0x77, 0xbb, 0x41, 0x75, 0xbc, 0x28, 0x66, 0x7c, 0x35, 0x79, 0xd6, 0x6d, 0x8e, 0x69, 0xc7, - 0xa5, 0xf7, 0xb6, 0xc3, 0xd0, 0x10, 0x97, 0x84, 0x5d, 0x15, 0x71, 0x9e, 0xfb, 0x07, 0x99, 0xa0, - 0xb9, 0x80, 0x19, 0x3a, 0xb5, 0x4d, 0x66, 0xc2, 0x53, 0xe4, 0xa9, 0xd3, 0x64, 0x9e, 0x3a, 0xa1, - 0xfb, 0x50, 0x89, 0x64, 0xdb, 0x27, 0xca, 0x54, 0xad, 0xd0, 0xb8, 0xff, 0x7c, 0xf2, 0xaa, 0x58, - 0x32, 0x26, 0x2e, 0xdf, 0x4c, 0xf3, 0x22, 0xc5, 0xa0, 0x3f, 0x51, 0x13, 0x66, 0x23, 0x6c, 0x4d, - 0xdb, 0xf5, 0x31, 0xc7, 0x39, 0x45, 0x71, 0x5e, 0x1a, 0xd0, 0x61, 0x20, 0x80, 0x04, 0x5f, 0xd7, - 0xd7, 0x22, 0x7d, 0x8e, 0x06, 0x89, 0x96, 0xcf, 0x70, 0x46, 0xe8, 0x2c, 0xaa, 0x20, 0x5f, 0xf1, - 0x69, 0xd1, 0x37, 0xb1, 0x4f, 0x35, 0x67, 0xd0, 0x07, 0xe1, 0x7a, 0x6d, 0xfa, 0x20, 0x35, 0x82, - 0x6e, 0xc0, 0x92, 0x45, 0x74, 0x2e, 0x75, 0xc7, 0xd8, 0x21, 0x76, 0xc6, 0xac, 0xce, 0x50, 0x37, - 0x70, 0xc1, 0xf2, 0x93, 0xd6, 0xf8, 0x0e, 0x9b, 0x46, 0xab, 0x30, 0xc1, 0x43, 0x1c, 0xdd, 0xb7, - 0x3e, 0xc5, 0x55, 0xc4, 0x54, 0x9b, 0x8f, 0x6d, 0x5b, 0x9f, 0x62, 0xf5, 0x97, 0x0a, 0x2c, 0x3c, - 0x76, 0x6d, 0xfb, 0xff, 0x98, 0xc1, 0xfe, 0xe9, 0x28, 0x54, 0xb3, 0xc7, 0xfe, 0xc6, 0x62, 0x7f, - 0x63, 0xb1, 0xbf, 0x8e, 0x16, 0x3b, 0x4f, 0x3f, 0x26, 0x72, 0x2d, 0xb0, 0xd0, 0x9c, 0x4d, 0x9e, - 0xd8, 0x9c, 0xfd, 0xea, 0x19, 0x76, 0xf5, 0x9f, 0x4a, 0xb0, 0xa2, 0xe1, 0xa6, 0xeb, 0x99, 0xf1, - 0x5c, 0x2a, 0x57, 0x8b, 0x97, 0x69, 0x29, 0xcf, 0xc1, 0x78, 0x24, 0x38, 0x91, 0x11, 0x80, 0x70, - 0xa8, 0x61, 0xa2, 0x05, 0x18, 0xa1, 0x32, 0xc6, 0x35, 0xbe, 0xac, 0x0d, 0x93, 0x9f, 0x0d, 0x13, - 0x9d, 0x05, 0xe0, 0xae, 0x7e, 0xa8, 0xbb, 0x63, 0xda, 0x18, 0x1f, 0x69, 0x98, 0x48, 0x83, 0x89, - 0x8e, 0x6b, 0xdb, 0x7a, 0x18, 0x4e, 0x0c, 0x4b, 0xc2, 0x09, 0x62, 0x43, 0xef, 0xba, 0x5e, 0x9c, - 0x35, 0x61, 0x38, 0x31, 0x4e, 0x90, 0xf0, 0x1f, 0xea, 0xef, 0x8e, 0xc2, 0xaa, 0x84, 0x8b, 0xdc, - 0xf0, 0x66, 0x2c, 0xa4, 0x72, 0x3c, 0x0b, 0x29, 0xb5, 0x7e, 0xa5, 0xe3, 0x5b, 0xbf, 0x6f, 0x01, - 0x0a, 0xf9, 0x6b, 0xa6, 0xcd, 0xef, 0x74, 0x34, 0x13, 0xae, 0x5e, 0x23, 0x06, 0x4c, 0x60, 0x7a, - 0xcb, 0xc4, 0x42, 0x25, 0xf0, 0x66, 0x2c, 0xfa, 0x50, 0xd6, 0xa2, 0xc7, 0xaa, 0x2e, 0xc3, 0xc9, - 0xaa, 0xcb, 0x35, 0xa8, 0x72, 0x93, 0xd2, 0xcf, 0x51, 0x84, 0x0e, 0xc2, 0x08, 0x75, 0x10, 0xe6, - 0xd9, 0x7c, 0x24, 0x3b, 0xa1, 0x7f, 0xa0, 0xc1, 0x64, 0x54, 0x5d, 0xa0, 0x59, 0x0d, 0x56, 0xae, - 0x78, 0x33, 0x4f, 0x1b, 0x77, 0x3c, 0xc3, 0xf1, 0x89, 0x29, 0x4b, 0x44, 0xf2, 0x13, 0x66, 0xec, - 0x17, 0xfa, 0x04, 0xce, 0x08, 0x72, 0x26, 0x7d, 0x13, 0x3e, 0x36, 0x88, 0x09, 0x5f, 0xcc, 0x88, - 0x7b, 0x64, 0xcd, 0x73, 0xbc, 0x4f, 0xc8, 0xf3, 0x3e, 0x57, 0x61, 0x22, 0x61, 0xf3, 0xc6, 0xa9, - 0xcd, 0x1b, 0xdf, 0x8d, 0x19, 0xbb, 0x5b, 0x50, 0xe9, 0x5f, 0x2b, 0xad, 0x5a, 0x4d, 0x14, 0x56, - 0xad, 0x26, 0x23, 0x08, 0x5a, 0xb4, 0x7a, 0x1f, 0x26, 0xc2, 0xbb, 0xa6, 0x08, 0x26, 0x0b, 0x11, - 0x8c, 0xf3, 0xf5, 0x14, 0xdc, 0x80, 0x11, 0x12, 0xec, 0x13, 0x23, 0x5b, 0xa1, 0x29, 0x9a, 0x7b, - 0xb9, 0x89, 0xea, 0x42, 0x2d, 0xa2, 0x59, 0x04, 0x0b, 0xfb, 0x2c, 0x35, 0x1d, 0xe2, 0xcd, 0xf8, - 0x82, 0x53, 0x19, 0x5f, 0xb0, 0xf6, 0x09, 0x4c, 0xc4, 0x61, 0x05, 0xd9, 0xea, 0x6b, 0xf1, 0x6c, - 0x75, 0x5e, 0x16, 0x23, 0x54, 0x4c, 0x96, 0xcd, 0x88, 0x65, 0xb4, 0xfb, 0xa6, 0x34, 0xcc, 0x5d, - 0x7d, 0x63, 0x4a, 0x33, 0xa6, 0x34, 0xce, 0x1a, 0xa1, 0x29, 0xfd, 0xb2, 0x1c, 0x9a, 0x52, 0x21, - 0x17, 0xb9, 0x29, 0xfd, 0x10, 0xa6, 0x52, 0xa6, 0x4a, 0x6a, 0x4c, 0xd9, 0x27, 0xba, 0x47, 0x8d, - 0x8d, 0x56, 0x49, 0x9a, 0xb2, 0x8c, 0x70, 0x97, 0x8e, 0x26, 0xdc, 0x31, 0xcb, 0x55, 0x4e, 0x5a, - 0xae, 0x4f, 0x60, 0x39, 0xa9, 0x78, 0xba, 0xdb, 0xd2, 0x83, 0x7d, 0xcb, 0xd7, 0xe3, 0x05, 0x66, - 0xf9, 0x56, 0xb5, 0x84, 0x22, 0x3e, 0x6a, 0xed, 0xec, 0x5b, 0xfe, 0x2d, 0x8e, 0xbf, 0x01, 0x33, - 0xfb, 0xd8, 0xf0, 0x82, 0x5d, 0x6c, 0x04, 0xba, 0x89, 0x03, 0xc3, 0xb2, 0x7d, 0x9e, 0xa8, 0x94, - 0xe7, 0xf0, 0xa6, 0x23, 0xb0, 0x2d, 0x06, 0x95, 0xfd, 0x34, 0x0d, 0x1f, 0xef, 0xd3, 0x74, 0x01, - 0xa6, 0x22, 0x3c, 0x4c, 0xac, 0xa9, 0x8d, 0x1e, 0xd3, 0x22, 0xc7, 0x68, 0x8b, 0x8e, 0xaa, 0x7f, - 0xaa, 0xc0, 0x2b, 0xec, 0x36, 0x13, 0xca, 0xce, 0xeb, 0xc4, 0x7d, 0x7d, 0xd1, 0xd2, 0x79, 0xbf, - 0x6b, 0x79, 0x79, 0xbf, 0x22, 0x54, 0x03, 0x26, 0x00, 0xff, 0xa6, 0x0c, 0xaf, 0xca, 0xb1, 0x71, - 0x11, 0xc4, 0xfd, 0xef, 0x9f, 0xc7, 0xc7, 0x38, 0x89, 0xd7, 0x8f, 0x6f, 0xdd, 0xb4, 0x29, 0x3f, - 0x25, 0xe9, 0x3f, 0x51, 0x60, 0xb9, 0x9f, 0x39, 0x27, 0x3e, 0xb4, 0x69, 0xf9, 0x1d, 0x23, 0x68, - 0xee, 0xeb, 0xb6, 0xdb, 0x34, 0x6c, 0xbb, 0x57, 0x2d, 0x51, 0x9b, 0xfa, 0x89, 0x64, 0xd7, 0xe2, - 0xe3, 0xd4, 0xfb, 0xa9, 0xf5, 0x1d, 0x77, 0x8b, 0xef, 0x70, 0x9f, 0x6d, 0xc0, 0x4c, 0xed, 0x92, - 0x91, 0xbf, 0xa2, 0xf6, 0xdb, 0xb0, 0x52, 0x84, 0x40, 0x60, 0x6f, 0xb7, 0x92, 0xf6, 0x56, 0x9c, - 0xb8, 0x0f, 0xcd, 0x00, 0xc5, 0x15, 0x22, 0xa6, 0x5f, 0xe6, 0x98, 0xed, 0xfd, 0x91, 0x42, 0x6c, - 0x6f, 0xe6, 0x98, 0x77, 0x0d, 0xcb, 0xee, 0xcb, 0xd2, 0x80, 0x15, 0x9f, 0x22, 0x3c, 0x03, 0x0a, - 0xd2, 0x2b, 0xc4, 0x8e, 0xe5, 0x62, 0xe2, 0xf9, 0xe4, 0x3f, 0x56, 0x40, 0xcd, 0x5a, 0xbb, 0x0f, - 0x42, 0xf5, 0x0c, 0x29, 0x7f, 0x92, 0xa6, 0xfc, 0x6a, 0x0e, 0xe5, 0x45, 0x98, 0x06, 0xa4, 0xfd, - 0x31, 0x51, 0x4e, 0x09, 0x2e, 0x2e, 0x9b, 0xaf, 0xc3, 0x74, 0xd3, 0x70, 0x9a, 0x38, 0xfa, 0x02, - 0x60, 0xf6, 0x4d, 0x1b, 0xd5, 0xa6, 0xd8, 0xb8, 0x16, 0x0e, 0xc7, 0xf5, 0x3d, 0x8e, 0xf3, 0x84, - 0xfa, 0x2e, 0x43, 0x35, 0xe0, 0x51, 0x5f, 0x8b, 0xd4, 0x3d, 0x07, 0x59, 0xac, 0xa6, 0x28, 0x58, - 0x78, 0x12, 0x09, 0xcb, 0xc5, 0x73, 0x64, 0x09, 0x13, 0x61, 0x4a, 0x48, 0x58, 0xf6, 0x80, 0xf4, - 0x7e, 0xfa, 0x94, 0x0f, 0x2c, 0x61, 0x45, 0x98, 0x06, 0xa4, 0xfd, 0xbc, 0x58, 0x1c, 0x22, 0x5c, - 0x9c, 0xfa, 0xbf, 0x55, 0xe0, 0x9c, 0x86, 0xdb, 0xee, 0x01, 0x66, 0xcd, 0x02, 0x5f, 0x95, 0x3c, - 0x5e, 0xd2, 0x31, 0x2a, 0xa7, 0x1c, 0x23, 0x55, 0x25, 0xb2, 0x92, 0x47, 0x35, 0x3f, 0xda, 0xdf, - 0x97, 0xe0, 0x3c, 0x3f, 0x02, 0x3b, 0x76, 0x6e, 0xa5, 0x5a, 0x7a, 0x40, 0x03, 0x2a, 0x49, 0x1d, - 0xe4, 0x87, 0xbb, 0x9e, 0x73, 0x7f, 0x03, 0x6c, 0xa8, 0x4d, 0x26, 0xb4, 0x17, 0xed, 0xc2, 0x42, - 0xd4, 0x0c, 0x20, 0xec, 0xb8, 0x13, 0xd7, 0x89, 0xef, 0x70, 0x98, 0x54, 0x9d, 0x18, 0x8b, 0x86, - 0x8f, 0xdc, 0x08, 0xb0, 0x06, 0xaf, 0x15, 0x9d, 0x85, 0xf3, 0xf9, 0x1f, 0x15, 0x58, 0x0a, 0x13, - 0x47, 0x82, 0x40, 0xfe, 0xa5, 0x88, 0xcf, 0x45, 0x98, 0xb1, 0x7c, 0x3d, 0xd9, 0x00, 0x47, 0x79, - 0x39, 0xaa, 0x4d, 0x59, 0xfe, 0xdd, 0x78, 0x6b, 0x9b, 0xba, 0x0c, 0x67, 0xc4, 0xe4, 0xf3, 0xf3, - 0x7d, 0x59, 0x22, 0x16, 0x8c, 0x18, 0xeb, 0x64, 0x6d, 0x3b, 0x63, 0x5a, 0x5f, 0xc6, 0x41, 0x57, - 0x61, 0x82, 0x77, 0x37, 0x62, 0x33, 0x96, 0xcb, 0x8d, 0xc6, 0x1a, 0x26, 0xfa, 0x18, 0x4e, 0x37, - 0x43, 0x52, 0x63, 0x5b, 0x9f, 0x3a, 0xd2, 0xd6, 0x28, 0x42, 0xd1, 0xdf, 0xfb, 0x3e, 0x4c, 0xc7, - 0x3a, 0x16, 0x59, 0x90, 0x30, 0x34, 0x68, 0x90, 0x30, 0xd5, 0x07, 0xa5, 0x03, 0xea, 0x05, 0xa2, - 0xad, 0x52, 0x2e, 0xf3, 0xfb, 0xf8, 0xb7, 0x12, 0x54, 0x35, 0xde, 0xaf, 0x8b, 0x29, 0xac, 0xff, - 0x74, 0xe3, 0x65, 0xde, 0xc1, 0x6f, 0xc2, 0x5c, 0x32, 0xd9, 0xd9, 0xd3, 0xad, 0x00, 0xb7, 0xc3, - 0x2e, 0x8c, 0x74, 0xbf, 0x81, 0xd9, 0xb6, 0x9c, 0x4c, 0xbe, 0xb3, 0xd7, 0x08, 0x70, 0x5b, 0x3b, - 0x7d, 0x90, 0x19, 0xf3, 0xd1, 0x3b, 0x30, 0x4c, 0x79, 0xeb, 0xf3, 0x2b, 0x13, 0xe7, 0x3e, 0xb6, - 0x8c, 0xc0, 0xb8, 0x6d, 0xbb, 0xbb, 0x1a, 0x5f, 0x8c, 0x36, 0xa1, 0xe2, 0xe0, 0x43, 0xdd, 0xeb, - 0xf2, 0xab, 0x09, 0x23, 0x97, 0x02, 0xf0, 0x09, 0x07, 0x1f, 0x6a, 0x5d, 0x76, 0x27, 0xbe, 0xba, - 0x04, 0x8b, 0x02, 0x56, 0xf3, 0x8b, 0xf8, 0x81, 0x02, 0xf3, 0xdb, 0x3d, 0xa7, 0xb9, 0xbd, 0x6f, - 0x78, 0x26, 0x4f, 0x81, 0xf2, 0x6b, 0x38, 0x0f, 0x15, 0xdf, 0xed, 0x7a, 0x4d, 0xac, 0xf3, 0x36, - 0x6e, 0x7e, 0x17, 0x93, 0x6c, 0x74, 0x93, 0x0d, 0xa2, 0x45, 0x18, 0xf5, 0x09, 0x70, 0xf8, 0x01, - 0x1b, 0xd2, 0x46, 0xe8, 0xef, 0x86, 0x89, 0xea, 0x70, 0x8a, 0x06, 0x8b, 0xe5, 0xc2, 0x08, 0x8e, - 0xae, 0x53, 0x17, 0x61, 0x21, 0x43, 0x0b, 0xa7, 0xf3, 0xe7, 0x43, 0x70, 0x9a, 0xcc, 0x85, 0x1f, - 0xc2, 0x97, 0x29, 0x2b, 0x55, 0x18, 0x09, 0x53, 0x4e, 0x4c, 0x55, 0xc3, 0x9f, 0x44, 0x93, 0xfb, - 0xc1, 0x6c, 0x94, 0x28, 0x88, 0x12, 0x0b, 0x84, 0x27, 0xd9, 0x44, 0xd3, 0xd0, 0x51, 0x13, 0x4d, - 0x67, 0x01, 0xc2, 0xa0, 0xca, 0x32, 0x69, 0x10, 0x5a, 0xd6, 0xc6, 0xf8, 0x48, 0xc3, 0xcc, 0x84, - 0xea, 0x23, 0x47, 0x0b, 0xd5, 0x3f, 0xe4, 0xe5, 0x9d, 0x7e, 0xd4, 0x4c, 0xb1, 0x8c, 0x16, 0x62, - 0x99, 0x21, 0x60, 0x91, 0xff, 0x4b, 0x71, 0x5d, 0x81, 0x91, 0x30, 0xe4, 0x1e, 0x1b, 0x20, 0xe4, - 0x0e, 0x17, 0xc7, 0xd3, 0x05, 0x90, 0x4c, 0x17, 0xdc, 0x84, 0x09, 0x56, 0x7c, 0xe2, 0xcd, 0xda, - 0xe3, 0x03, 0x34, 0x6b, 0x8f, 0xd3, 0x9a, 0x14, 0xef, 0xd3, 0x7e, 0x0b, 0x68, 0xaf, 0x35, 0x7f, - 0xbe, 0xa0, 0x5b, 0x26, 0x76, 0x02, 0x2b, 0xe8, 0xd1, 0x74, 0xdf, 0x98, 0x86, 0xc8, 0xdc, 0xc7, - 0x74, 0xaa, 0xc1, 0x67, 0xd0, 0x43, 0x98, 0x4a, 0x99, 0x06, 0x9e, 0xda, 0x3b, 0x3f, 0x90, 0x51, - 0xd0, 0x2a, 0x49, 0x83, 0xa0, 0xce, 0xc3, 0x6c, 0x52, 0x92, 0xb9, 0x88, 0xff, 0x91, 0x02, 0x4b, - 0x61, 0xf7, 0xdb, 0x57, 0xc4, 0x85, 0x53, 0xff, 0x50, 0x81, 0x33, 0x62, 0x9a, 0x78, 0x74, 0x73, - 0x19, 0xe6, 0xdb, 0x6c, 0x9c, 0x15, 0x5e, 0x74, 0xcb, 0xd1, 0x9b, 0x46, 0x73, 0x1f, 0x73, 0x0a, - 0x4f, 0xb7, 0x63, 0x50, 0x0d, 0x67, 0x93, 0x4c, 0xa1, 0x77, 0x61, 0x31, 0x03, 0x64, 0x1a, 0x81, - 0xb1, 0x6b, 0xf8, 0x61, 0x13, 0xec, 0x7c, 0x12, 0x6e, 0x8b, 0xcf, 0xaa, 0x67, 0xa0, 0x16, 0xd2, - 0xc3, 0xf9, 0xf9, 0x81, 0x1b, 0xb5, 0x2f, 0xa9, 0xbf, 0x53, 0xea, 0xb3, 0x30, 0x31, 0xcd, 0xa9, - 0x5d, 0x83, 0x69, 0xa7, 0xdb, 0xde, 0xc5, 0x9e, 0xee, 0xb6, 0x74, 0x6a, 0xa5, 0x7c, 0x4a, 0xe7, - 0x90, 0x56, 0x61, 0xe3, 0x8f, 0x5a, 0xd4, 0xf8, 0xf8, 0x84, 0xd9, 0xa1, 0x55, 0xf3, 0x69, 0xee, - 0x60, 0x48, 0x1b, 0xe5, 0x66, 0xcd, 0x47, 0x0d, 0x98, 0xe0, 0x37, 0xc1, 0x8e, 0x2a, 0xee, 0xf4, - 0x0c, 0xc5, 0x81, 0x25, 0x73, 0xe8, 0xc9, 0xa9, 0x73, 0x37, 0x6e, 0xf6, 0x07, 0xd0, 0x15, 0x58, - 0x60, 0xfb, 0x34, 0x5d, 0x27, 0xf0, 0x5c, 0xdb, 0xc6, 0x1e, 0xe5, 0x49, 0x97, 0x7d, 0x29, 0xc6, - 0xb4, 0x39, 0x3a, 0xbd, 0x19, 0xcd, 0x32, 0xbb, 0x48, 0x35, 0xc4, 0x34, 0x3d, 0xec, 0xfb, 0x3c, - 0xe3, 0x18, 0xfe, 0x54, 0xeb, 0x30, 0xc3, 0x4a, 0x57, 0x04, 0x2e, 0x94, 0x9d, 0xb8, 0x91, 0x56, - 0x12, 0x46, 0x5a, 0x9d, 0x05, 0x14, 0x5f, 0xcf, 0x85, 0xf1, 0x3f, 0x14, 0x98, 0x61, 0xde, 0x79, - 0xdc, 0x0d, 0xcc, 0x47, 0x83, 0x6e, 0xf0, 0x32, 0x6f, 0x54, 0xd5, 0xae, 0x6c, 0x9c, 0xcb, 0x61, - 0x08, 0xc1, 0x48, 0xd3, 0x62, 0xb4, 0xd0, 0x4b, 0x53, 0x62, 0xb1, 0xe4, 0x6a, 0x39, 0x91, 0x5c, - 0xdd, 0x84, 0xa9, 0x03, 0xcb, 0xb7, 0x76, 0x2d, 0xdb, 0x0a, 0x7a, 0xcc, 0x12, 0x15, 0xe7, 0x03, - 0x2b, 0x7d, 0x10, 0x6a, 0x86, 0x56, 0x61, 0x82, 0x7f, 0xc2, 0x74, 0xc7, 0xe0, 0x16, 0x77, 0x4c, - 0x1b, 0xe7, 0x63, 0x0f, 0x8d, 0x36, 0x26, 0x5c, 0x88, 0x1f, 0x97, 0x73, 0xe1, 0x87, 0x94, 0x0b, - 0x3e, 0x0e, 0x9e, 0x74, 0x71, 0x17, 0x0f, 0xc0, 0x85, 0xf4, 0x4e, 0xa5, 0xcc, 0x4e, 0x49, 0x46, - 0x95, 0x8f, 0xc8, 0x28, 0x46, 0x67, 0x9f, 0x20, 0x4e, 0xe7, 0x8f, 0x15, 0x98, 0x0d, 0xe5, 0xfe, - 0x2b, 0x43, 0xea, 0x23, 0x98, 0x4b, 0xd1, 0xc4, 0xb5, 0xf0, 0x0a, 0x2c, 0x74, 0x3c, 0xb7, 0x89, - 0x7d, 0xdf, 0x72, 0xf6, 0x74, 0xfa, 0xb2, 0x8b, 0xd9, 0x01, 0xa2, 0x8c, 0x65, 0x22, 0xf3, 0xfd, - 0x69, 0x0a, 0x49, 0x8d, 0x80, 0xaf, 0x7e, 0x4f, 0x81, 0xb3, 0xf7, 0x70, 0xa0, 0xf5, 0xdf, 0x79, - 0x3d, 0xc0, 0xbe, 0x6f, 0xec, 0xe1, 0xc8, 0x65, 0xb9, 0x09, 0xc3, 0xb4, 0xc2, 0xc3, 0x10, 0x8d, - 0x6f, 0x5c, 0xc8, 0xa1, 0x36, 0x86, 0x82, 0x96, 0x7f, 0x34, 0x0e, 0x36, 0x00, 0x53, 0x88, 0x8d, - 0x59, 0xce, 0xa3, 0x82, 0x1f, 0xf0, 0x39, 0x54, 0x18, 0xd7, 0xdb, 0x7c, 0x86, 0x93, 0xf3, 0x61, - 0x6e, 0xf6, 0x51, 0x8e, 0xb0, 0x4e, 0x75, 0x33, 0x1c, 0x65, 0x99, 0xc6, 0x49, 0x3f, 0x3e, 0x56, - 0xb3, 0x01, 0x65, 0x17, 0xc5, 0xb3, 0x89, 0x43, 0x2c, 0x9b, 0xf8, 0x9d, 0x64, 0x36, 0xf1, 0x62, - 0x31, 0x83, 0x22, 0x62, 0x62, 0x99, 0xc4, 0x36, 0xac, 0xdc, 0xc3, 0xc1, 0xd6, 0xfd, 0x27, 0x92, - 0xbb, 0x68, 0x00, 0x30, 0x95, 0x76, 0x5a, 0x6e, 0xc8, 0x80, 0x01, 0xb6, 0x23, 0x82, 0x44, 0xcd, - 0x24, 0x15, 0x3d, 0xf2, 0x97, 0xaf, 0xbe, 0x80, 0x55, 0xc9, 0x76, 0x9c, 0xe9, 0xdb, 0x30, 0x13, - 0x7b, 0x01, 0x48, 0xab, 0x8d, 0xe1, 0xb6, 0xaf, 0x0d, 0xb6, 0xad, 0x36, 0xed, 0x25, 0x07, 0x7c, - 0xf5, 0x5f, 0x14, 0x98, 0xd5, 0xb0, 0xd1, 0xe9, 0xd8, 0x2c, 0xe4, 0x89, 0x4e, 0x37, 0x0f, 0xc3, - 0x3c, 0x75, 0xcf, 0xbe, 0x73, 0xfc, 0x97, 0xfc, 0xc1, 0x80, 0xf8, 0x23, 0x5d, 0x3e, 0xa9, 0x3f, - 0x7a, 0xbc, 0xe0, 0x42, 0x5d, 0x80, 0xb9, 0xd4, 0xd1, 0xb8, 0x35, 0xf9, 0x99, 0x02, 0x4b, 0x1a, - 0x6e, 0x79, 0xd8, 0xdf, 0x8f, 0xaa, 0x18, 0x84, 0x1b, 0x5f, 0xc1, 0xb3, 0x93, 0xc0, 0x5f, 0x4c, - 0x2a, 0x3f, 0xcb, 0xbb, 0xb0, 0xb0, 0xe9, 0x76, 0x1d, 0x22, 0x3c, 0x69, 0x01, 0x5d, 0x06, 0x68, - 0xb9, 0x5e, 0x13, 0xdf, 0xc5, 0x41, 0x73, 0x9f, 0xa7, 0x64, 0x63, 0x23, 0xaa, 0x01, 0xd5, 0x2c, - 0x28, 0x17, 0xb6, 0x3b, 0x30, 0x82, 0x9d, 0x80, 0x16, 0x6b, 0x99, 0x88, 0xbd, 0x91, 0x23, 0x62, - 0xdc, 0x0b, 0xd9, 0xba, 0xff, 0x84, 0xe2, 0xe2, 0x05, 0x59, 0x0e, 0xab, 0xfe, 0xac, 0x04, 0xf3, - 0x1a, 0x36, 0x4c, 0x01, 0x75, 0x1b, 0x70, 0x2a, 0x6a, 0x7f, 0xa8, 0x6c, 0x2c, 0xe7, 0xf9, 0x16, - 0xf7, 0x9f, 0x50, 0xab, 0x4b, 0xd7, 0xca, 0x42, 0xb1, 0x6c, 0x30, 0x57, 0x16, 0x05, 0x73, 0x3b, - 0x50, 0xb5, 0x1c, 0xb2, 0xc2, 0x3a, 0xc0, 0x3a, 0x76, 0x22, 0x0b, 0x36, 0x60, 0xcb, 0xd8, 0x5c, - 0x04, 0x7c, 0xc7, 0x09, 0x4d, 0x51, 0xc3, 0x24, 0x82, 0xd1, 0x21, 0x48, 0x68, 0xd1, 0x79, 0x88, - 0x12, 0x36, 0x4a, 0x06, 0xb6, 0xad, 0x4f, 0x31, 0x7a, 0x0d, 0xa6, 0x68, 0xe3, 0x03, 0x5d, 0xc1, - 0xea, 0xf3, 0xc3, 0xb4, 0x3e, 0x4f, 0xfb, 0x21, 0x1e, 0x1b, 0x7b, 0x98, 0xb5, 0xeb, 0xfd, 0x75, - 0x09, 0x16, 0x32, 0xbc, 0xe2, 0xd7, 0x71, 0x1c, 0x66, 0x09, 0xed, 0x45, 0xe9, 0x64, 0xf6, 0x02, - 0x7d, 0x17, 0xe6, 0x33, 0x48, 0xc3, 0x24, 0xe0, 0x51, 0x0d, 0xe0, 0x6c, 0x1a, 0x3b, 0xcd, 0x01, - 0x0a, 0xd8, 0x75, 0x4a, 0xc4, 0xae, 0x5f, 0x28, 0xb0, 0xf0, 0xb8, 0xeb, 0xed, 0xe1, 0xaf, 0xb7, - 0x6c, 0xa9, 0x35, 0xa8, 0x66, 0x8f, 0xc9, 0x95, 0xff, 0xf3, 0x12, 0x2c, 0x3c, 0xc0, 0x5f, 0x7b, - 0x1e, 0xfc, 0xcf, 0xe8, 0xd7, 0x6d, 0xa8, 0x66, 0x79, 0xc5, 0xf5, 0x4b, 0x80, 0x43, 0x11, 0xe1, - 0xf8, 0x4c, 0x81, 0x33, 0x0f, 0xdd, 0xc0, 0x6a, 0xf5, 0x48, 0xb8, 0xed, 0x1e, 0x60, 0xef, 0x81, - 0x41, 0x62, 0xe9, 0x88, 0xeb, 0xdf, 0x85, 0xf9, 0x16, 0x9f, 0xd1, 0xdb, 0x74, 0x4a, 0x4f, 0x38, - 0x6c, 0x79, 0xfa, 0x91, 0x44, 0xc7, 0x7c, 0xb6, 0xd9, 0x56, 0x76, 0xd0, 0x57, 0xcf, 0xc1, 0xd9, - 0x1c, 0x0a, 0xb8, 0x50, 0x18, 0xb0, 0x74, 0x0f, 0x07, 0x9b, 0x9e, 0xeb, 0xfb, 0xfc, 0x56, 0x12, - 0x1f, 0xb7, 0x44, 0xe0, 0xa7, 0xa4, 0x02, 0xbf, 0xf3, 0x50, 0x09, 0x0c, 0x6f, 0x0f, 0x07, 0xd1, - 0x2d, 0xb3, 0xcf, 0xdc, 0x24, 0x1b, 0xe5, 0xf8, 0xd4, 0x5f, 0x96, 0xe1, 0x8c, 0x78, 0x0f, 0xce, - 0xcf, 0x36, 0xc1, 0x43, 0x4c, 0xc3, 0x6e, 0x8f, 0x85, 0xa1, 0xfc, 0xf8, 0xf7, 0x64, 0x0e, 0x62, - 0x2e, 0x3a, 0xea, 0x7c, 0xfb, 0xb7, 0x7b, 0xd4, 0x01, 0x64, 0x5f, 0x98, 0x89, 0x20, 0x36, 0x84, - 0x3e, 0x53, 0x60, 0xae, 0x45, 0x2b, 0x5e, 0x7a, 0xd3, 0xe8, 0xfa, 0xb8, 0xbf, 0x2d, 0xb3, 0x77, - 0x0f, 0x8e, 0xb7, 0x2d, 0x2b, 0xa2, 0x6d, 0x12, 0x8c, 0x89, 0xcd, 0x51, 0x2b, 0x33, 0x51, 0xeb, - 0xc0, 0x4c, 0x86, 0x4a, 0x81, 0x7b, 0x7a, 0x27, 0xe9, 0x9e, 0xae, 0xe7, 0x88, 0x43, 0x9a, 0x26, - 0x7e, 0x79, 0x71, 0x1f, 0xb5, 0xd6, 0x81, 0x85, 0x1c, 0x02, 0x05, 0xfb, 0xde, 0x8c, 0xef, 0x5b, - 0xc9, 0x4d, 0xf7, 0xde, 0xc3, 0x41, 0xbf, 0x7a, 0x48, 0xf1, 0xc6, 0xbd, 0xe2, 0x7f, 0x57, 0x60, - 0x8d, 0xd7, 0xeb, 0x32, 0x4c, 0xcb, 0x14, 0x1a, 0x24, 0x91, 0xd9, 0x60, 0x52, 0x86, 0x9e, 0x32, - 0x21, 0x8a, 0x1a, 0x2b, 0xc2, 0x5c, 0xf5, 0xe0, 0x4c, 0xe3, 0xed, 0x14, 0x93, 0x41, 0xec, 0x97, - 0x8f, 0x5e, 0x85, 0xc9, 0x16, 0x71, 0x80, 0x1e, 0x62, 0xe6, 0x4b, 0xf1, 0xfa, 0x52, 0x72, 0x50, - 0xf5, 0xe0, 0xf5, 0x01, 0xce, 0x1a, 0xb9, 0x4b, 0x43, 0xa1, 0x3f, 0x7e, 0xbc, 0x6b, 0xa5, 0xd0, - 0xea, 0x3b, 0xf4, 0x5d, 0x59, 0xa8, 0xd8, 0xf4, 0x23, 0x39, 0x40, 0x6e, 0x4c, 0x0d, 0xe8, 0xc3, - 0xac, 0x24, 0x58, 0xe4, 0x38, 0xcc, 0xf5, 0xeb, 0x2a, 0x61, 0x22, 0xa6, 0xcb, 0x1b, 0xa5, 0x86, - 0xb4, 0x7e, 0xd1, 0x65, 0x9b, 0x65, 0x61, 0xba, 0x0e, 0xcd, 0x8b, 0x87, 0x2f, 0x1f, 0x79, 0x0a, - 0x89, 0xe5, 0x87, 0x26, 0xf9, 0x28, 0xcb, 0x20, 0xa9, 0x0d, 0x98, 0xd7, 0x8c, 0x00, 0xdb, 0x56, - 0xdb, 0x0a, 0x3e, 0xea, 0x98, 0xb1, 0x44, 0xde, 0x3a, 0x9c, 0x32, 0x8d, 0xc0, 0xe0, 0xcc, 0x58, - 0xca, 0xeb, 0xb4, 0xbc, 0xe5, 0xf4, 0x34, 0xba, 0x50, 0xfd, 0x10, 0x16, 0x32, 0xa8, 0xf8, 0x01, - 0x8e, 0x8a, 0x6b, 0xe3, 0x1f, 0xea, 0x00, 0xdc, 0x29, 0xbd, 0xf5, 0xb8, 0x81, 0xbe, 0xaf, 0xc0, - 0xbc, 0xf8, 0x61, 0x39, 0xba, 0x72, 0xbc, 0xff, 0x04, 0x51, 0xbb, 0x7a, 0x64, 0x38, 0x7e, 0x96, - 0x3f, 0x50, 0x60, 0x21, 0xe7, 0x3f, 0x0f, 0xa0, 0xab, 0x45, 0xaf, 0xf6, 0xf3, 0xa8, 0xb9, 0x76, - 0x74, 0x40, 0x4e, 0xce, 0x4f, 0x15, 0x58, 0x29, 0x7a, 0x7d, 0x8f, 0xbe, 0x73, 0xd2, 0xff, 0x26, - 0x50, 0xbb, 0x75, 0x02, 0x0c, 0x9c, 0x52, 0x72, 0x89, 0xe2, 0x77, 0xf5, 0x92, 0x4b, 0x94, 0xbe, - 0xe7, 0x97, 0x5c, 0x62, 0xc1, 0x03, 0xfe, 0x3f, 0x51, 0xa0, 0x96, 0xff, 0xfa, 0x1c, 0xe5, 0xb7, - 0x7d, 0x15, 0xbe, 0xca, 0xaf, 0xbd, 0x77, 0x2c, 0x58, 0x4e, 0xd7, 0x8f, 0x15, 0x58, 0xcc, 0x7d, - 0x5b, 0x8e, 0xde, 0xcd, 0x45, 0x5d, 0xf4, 0xb4, 0xbd, 0x76, 0xfd, 0x38, 0xa0, 0x9c, 0x28, 0x07, - 0x26, 0x13, 0x8f, 0x8e, 0xd1, 0x9b, 0xb9, 0xc8, 0x44, 0x6f, 0x9b, 0x6b, 0xf5, 0x41, 0x97, 0xf3, - 0xfd, 0x3e, 0x53, 0xe0, 0xb4, 0xe0, 0xe5, 0x2e, 0xba, 0x2c, 0xbf, 0x6d, 0xe1, 0x5b, 0xe1, 0xda, - 0xdb, 0x47, 0x03, 0xe2, 0x24, 0x04, 0x30, 0x95, 0x7a, 0x25, 0x8b, 0xd6, 0x65, 0xee, 0x87, 0xa0, - 0x12, 0x52, 0x7b, 0x6b, 0x70, 0x00, 0xbe, 0xeb, 0x21, 0x4c, 0xa7, 0x9f, 0x7a, 0xa1, 0x7c, 0x2c, - 0x39, 0x8f, 0xe1, 0x6a, 0x97, 0x8e, 0x00, 0x11, 0x13, 0xbb, 0xdc, 0x86, 0x46, 0x89, 0xd8, 0x15, - 0x3d, 0x37, 0xa9, 0x9d, 0xa0, 0x7f, 0x12, 0xfd, 0xb9, 0x02, 0x67, 0x64, 0xfd, 0x8e, 0xe8, 0xc6, - 0x31, 0xdb, 0x24, 0x19, 0x69, 0xef, 0x9f, 0xa8, 0xc9, 0x92, 0xb3, 0x2c, 0xa7, 0x29, 0x50, 0xca, - 0x32, 0x79, 0x4b, 0xa2, 0x94, 0x65, 0x05, 0x3d, 0x88, 0xb1, 0x7b, 0x14, 0x74, 0x5c, 0x17, 0xde, - 0x63, 0x7e, 0xaf, 0x7b, 0xe1, 0x3d, 0xca, 0x1a, 0xbc, 0x63, 0xf7, 0x28, 0xec, 0xcb, 0x2b, 0xbe, - 0x47, 0x59, 0x6f, 0x60, 0xf1, 0x3d, 0x4a, 0x9b, 0x01, 0xe3, 0xf7, 0x98, 0x6d, 0xbd, 0x2b, 0xbe, - 0xc7, 0xdc, 0xc6, 0xbf, 0xe2, 0x7b, 0xcc, 0xef, 0xf4, 0x43, 0x7f, 0x46, 0x73, 0x9b, 0xb9, 0x3d, - 0x75, 0xe8, 0xbd, 0x23, 0x9d, 0x39, 0xd9, 0xd5, 0x57, 0xbb, 0x71, 0x3c, 0xe0, 0x04, 0x69, 0xb9, - 0x0d, 0xa5, 0x52, 0xd2, 0x8a, 0x5a, 0x5a, 0xa5, 0xa4, 0x15, 0xf7, 0xb0, 0xfe, 0xa5, 0x02, 0xcb, - 0xf2, 0x4e, 0x32, 0xf4, 0x6d, 0xc9, 0x06, 0x03, 0xb4, 0xd3, 0xd5, 0x6e, 0x1e, 0x1b, 0x9e, 0xd3, - 0xf8, 0x43, 0x05, 0xaa, 0x79, 0xfd, 0x84, 0xe8, 0x9a, 0x04, 0xbb, 0xb4, 0x71, 0xb2, 0xf6, 0xee, - 0x31, 0x20, 0x39, 0x45, 0xdf, 0x53, 0x60, 0x56, 0xd4, 0x95, 0x86, 0xf2, 0xbf, 0x9c, 0x92, 0x1e, - 0xbc, 0xda, 0x3b, 0x47, 0x84, 0xe2, 0x54, 0xfc, 0x05, 0xfd, 0x07, 0x50, 0x92, 0xa6, 0x2c, 0xf4, - 0x7e, 0x81, 0x6c, 0xc8, 0x5b, 0xe6, 0x6a, 0xdf, 0x3e, 0x2e, 0x38, 0x27, 0xf0, 0x53, 0x98, 0xc9, - 0xf4, 0x27, 0xa1, 0x4b, 0x12, 0xa4, 0xe2, 0xb6, 0xb1, 0xda, 0xc6, 0x51, 0x40, 0xfa, 0xde, 0x48, - 0xaa, 0xe3, 0x48, 0xe2, 0x8d, 0x88, 0xfb, 0xa4, 0x24, 0xde, 0x48, 0x4e, 0x33, 0x13, 0x7a, 0x06, - 0x13, 0xf1, 0x0e, 0x10, 0xf4, 0x2d, 0x29, 0x86, 0x54, 0xcb, 0x53, 0xed, 0xcd, 0x01, 0x57, 0xc7, - 0xa4, 0x50, 0xd4, 0xc2, 0x21, 0x91, 0x42, 0x49, 0x17, 0x8a, 0x44, 0x0a, 0xa5, 0x7d, 0x22, 0xc4, - 0xf3, 0x14, 0x74, 0x66, 0x48, 0x3c, 0xcf, 0xfc, 0x36, 0x8f, 0xda, 0xdb, 0x47, 0x03, 0x8a, 0xde, - 0xa2, 0x40, 0xbf, 0xd1, 0x01, 0x5d, 0xcc, 0xc5, 0x91, 0xe9, 0x9e, 0xa8, 0xbd, 0x31, 0xd0, 0xda, - 0xfe, 0x36, 0xfd, 0x4e, 0x02, 0xc9, 0x36, 0x99, 0xee, 0x0a, 0xc9, 0x36, 0xd9, 0xd6, 0x04, 0xb6, - 0x4d, 0xd8, 0x08, 0x20, 0xdd, 0x26, 0xd5, 0xbe, 0x20, 0xdd, 0x26, 0xdd, 0x59, 0x40, 0x22, 0x94, - 0x44, 0x11, 0x5f, 0x12, 0xa1, 0x88, 0x1a, 0x10, 0x24, 0x11, 0x8a, 0xb8, 0x37, 0xe0, 0xfb, 0xec, - 0x7f, 0x07, 0x09, 0x0a, 0xbd, 0x92, 0x50, 0x56, 0xda, 0x14, 0x20, 0x09, 0x65, 0x0b, 0xca, 0xf8, - 0xc4, 0x81, 0xc9, 0xad, 0x3b, 0x4b, 0x1c, 0x98, 0xa2, 0xd2, 0xb8, 0xc4, 0x81, 0x29, 0x2e, 0x73, - 0x3b, 0x30, 0x99, 0xa8, 0xda, 0x4a, 0x2e, 0x44, 0x54, 0xb8, 0x96, 0x5c, 0x88, 0xb0, 0x18, 0x4c, - 0xcd, 0x87, 0xa8, 0xc2, 0x8a, 0x64, 0xe1, 0x5f, 0x6e, 0xed, 0x58, 0x62, 0x3e, 0x64, 0x65, 0x5c, - 0x12, 0xbf, 0xa5, 0x6b, 0xb1, 0x92, 0xf8, 0x2d, 0xa7, 0xe2, 0x2b, 0x89, 0xdf, 0x72, 0x0b, 0xbd, - 0x01, 0x4c, 0xa5, 0x8a, 0x8e, 0x92, 0x0f, 0x84, 0xb8, 0x94, 0x2b, 0xf9, 0x40, 0xe4, 0xd5, 0x33, - 0x49, 0xb8, 0x9a, 0x2a, 0x6a, 0xc9, 0xc2, 0x55, 0x71, 0x99, 0x4f, 0x16, 0xae, 0xe6, 0x54, 0xcc, - 0xc8, 0xc6, 0xe9, 0x22, 0x90, 0x64, 0xe3, 0x9c, 0xda, 0x9a, 0x64, 0xe3, 0xdc, 0x0a, 0xd3, 0xef, - 0x2b, 0x30, 0x27, 0xac, 0xdb, 0xa0, 0x7c, 0x89, 0x91, 0x55, 0x9a, 0x6a, 0x57, 0x8e, 0x0a, 0x16, - 0x93, 0x77, 0x51, 0xd5, 0x43, 0x22, 0xef, 0x92, 0x72, 0x92, 0x44, 0xde, 0xa5, 0x05, 0xa2, 0xcf, - 0x95, 0xe8, 0xd9, 0x52, 0x7e, 0x7a, 0x1d, 0xdd, 0x2a, 0x8a, 0x37, 0x0a, 0xcb, 0x10, 0xb5, 0xdb, - 0x27, 0x41, 0x91, 0x48, 0xe9, 0xc4, 0xf3, 0xeb, 0xf2, 0x94, 0x8e, 0x20, 0x81, 0x2f, 0x4f, 0xe9, - 0x08, 0x53, 0xf7, 0x44, 0x33, 0x93, 0x49, 0x71, 0x99, 0x66, 0x0a, 0x33, 0xf1, 0x32, 0xcd, 0x14, - 0xe7, 0xdb, 0x6f, 0xdf, 0xf9, 0xf9, 0x17, 0xcb, 0xca, 0x3f, 0x7f, 0xb1, 0xac, 0xfc, 0xeb, 0x17, - 0xcb, 0xca, 0xaf, 0x5f, 0xdd, 0xb3, 0x82, 0xfd, 0xee, 0x6e, 0xbd, 0xe9, 0xb6, 0xd7, 0x13, 0xff, - 0x23, 0xbc, 0xbe, 0x87, 0x1d, 0xf6, 0x0f, 0xe3, 0x63, 0xff, 0xb1, 0xfe, 0x3d, 0xfe, 0xe7, 0xc1, - 0xa5, 0xdd, 0x61, 0x3a, 0x77, 0xf9, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfc, 0xfc, 0xed, 0x64, - 0xdd, 0x5e, 0x00, 0x00, + 0x76, 0x30, 0x9a, 0x23, 0xfe, 0x3d, 0x92, 0x43, 0xb2, 0xc4, 0x9f, 0xe1, 0x50, 0xa2, 0xc8, 0xb6, + 0x65, 0xd3, 0xf2, 0x7a, 0x68, 0xd1, 0xb6, 0x2c, 0xdb, 0xf2, 0x6a, 0x25, 0x52, 0x92, 0xc7, 0x9f, + 0x7e, 0x9b, 0xb4, 0xfc, 0x25, 0x48, 0xdc, 0xdb, 0xec, 0xae, 0x21, 0x3b, 0xea, 0xe9, 0x1e, 0x75, + 0xf7, 0x90, 0x1a, 0x1f, 0x02, 0x27, 0x0e, 0x02, 0xec, 0x22, 0xc8, 0x6e, 0x16, 0x49, 0x10, 0x20, + 0x40, 0x80, 0x60, 0x03, 0x2c, 0xd6, 0xc8, 0x2d, 0x01, 0x72, 0x48, 0x72, 0xca, 0x65, 0x8f, 0xb9, + 0xe6, 0x16, 0x18, 0xbb, 0x87, 0x04, 0xc8, 0x29, 0x7b, 0x0e, 0x82, 0xfa, 0xe9, 0x9e, 0xfe, 0xa9, + 0xae, 0x1e, 0x92, 0x41, 0xe4, 0x75, 0x7c, 0xe3, 0x54, 0xd5, 0x7b, 0xf5, 0xea, 0xd5, 0x7b, 0xaf, + 0xdf, 0x5f, 0x11, 0x2e, 0x76, 0xf7, 0xb0, 0xbf, 0x61, 0x1a, 0x16, 0x76, 0x4d, 0xbc, 0x71, 0x60, + 0x07, 0xa1, 0xe7, 0xf7, 0x36, 0x0e, 0x2f, 0x6f, 0x04, 0xd8, 0x3f, 0xb4, 0x4d, 0xdc, 0xe8, 0xf8, + 0x5e, 0xe8, 0xa1, 0x45, 0xb2, 0xac, 0xc1, 0x97, 0x35, 0xf8, 0xb2, 0xc6, 0xe1, 0xe5, 0xfa, 0xca, + 0xbe, 0xe7, 0xed, 0x3b, 0x78, 0x83, 0x2e, 0xdb, 0xeb, 0xb6, 0x36, 0xac, 0xae, 0x6f, 0x84, 0xb6, + 0xe7, 0x32, 0xc0, 0xfa, 0x85, 0xec, 0x7c, 0x68, 0xb7, 0x71, 0x10, 0x1a, 0xed, 0x0e, 0x5f, 0x90, + 0x43, 0x70, 0xe4, 0x1b, 0x9d, 0x0e, 0xf6, 0x03, 0x3e, 0xbf, 0x9a, 0x22, 0xd0, 0xe8, 0xd8, 0x84, + 0x38, 0xd3, 0x6b, 0xb7, 0xe3, 0x2d, 0xd6, 0x44, 0x2b, 0x22, 0x12, 0x39, 0x15, 0xa2, 0x25, 0x4f, + 0xbb, 0x38, 0x5e, 0xa0, 0x8a, 0x16, 0x84, 0x46, 0xf0, 0xc4, 0xb1, 0x83, 0x50, 0xb6, 0xe6, 0xc8, + 0xf3, 0x9f, 0xb4, 0x1c, 0xef, 0x88, 0xaf, 0xb9, 0x24, 0x5a, 0xc3, 0x59, 0xa9, 0x67, 0xd6, 0xae, + 0x97, 0xad, 0xc5, 0x3e, 0x5f, 0xf9, 0x42, 0x7a, 0xa5, 0xd5, 0xb6, 0x5d, 0xca, 0x05, 0xa7, 0x1b, + 0x84, 0x65, 0x8b, 0xd2, 0x8c, 0x58, 0x13, 0x2f, 0x7a, 0xda, 0xc5, 0x5d, 0x7e, 0xd5, 0xf5, 0x97, + 0xc5, 0x4b, 0x7c, 0xdc, 0x71, 0x6c, 0x33, 0x79, 0xb5, 0xe9, 0x9b, 0x09, 0x0e, 0x0c, 0x1f, 0x5b, + 0x64, 0xa5, 0xe1, 0x46, 0xbb, 0xbd, 0x58, 0xb0, 0x22, 0x4d, 0xd3, 0xc5, 0x82, 0x55, 0x69, 0x76, + 0xa9, 0x3f, 0x1f, 0x81, 0xf3, 0x3b, 0xa1, 0xe1, 0x87, 0x1f, 0xf3, 0xf1, 0x5b, 0xcf, 0xb0, 0xd9, + 0x25, 0xf4, 0x68, 0xf8, 0x69, 0x17, 0x07, 0x21, 0xba, 0x0b, 0xa3, 0x3e, 0xfb, 0xb3, 0xa6, 0xac, + 0x2a, 0xeb, 0x13, 0x9b, 0x9b, 0x8d, 0x94, 0xd8, 0x1a, 0x1d, 0xbb, 0x71, 0x78, 0xb9, 0x21, 0x45, + 0xa2, 0x45, 0x28, 0xd0, 0x32, 0x8c, 0x5b, 0x5e, 0xdb, 0xb0, 0x5d, 0xdd, 0xb6, 0x6a, 0x43, 0xab, + 0xca, 0xfa, 0xb8, 0x36, 0xc6, 0x06, 0x9a, 0x16, 0xfa, 0x0d, 0x98, 0xef, 0x18, 0x3e, 0x76, 0x43, + 0x1d, 0x47, 0x08, 0x74, 0xdb, 0x6d, 0x79, 0xb5, 0x0a, 0xdd, 0x78, 0x5d, 0xb8, 0xf1, 0x43, 0x0a, + 0x11, 0xef, 0xd8, 0x74, 0x5b, 0x9e, 0x76, 0xb6, 0x93, 0x1f, 0x44, 0x35, 0x18, 0x35, 0xc2, 0x10, + 0xb7, 0x3b, 0x61, 0xed, 0xcc, 0xaa, 0xb2, 0x3e, 0xac, 0x45, 0x3f, 0xd1, 0x16, 0x4c, 0xe3, 0x67, + 0x1d, 0x9b, 0xa9, 0x98, 0x4e, 0x74, 0xa9, 0x36, 0x4c, 0x77, 0xac, 0x37, 0x98, 0x1e, 0x35, 0x22, + 0x3d, 0x6a, 0xec, 0x46, 0x8a, 0xa6, 0x55, 0xfb, 0x20, 0x64, 0x10, 0xb5, 0x60, 0xc9, 0xf4, 0xdc, + 0xd0, 0x76, 0xbb, 0x58, 0x37, 0x02, 0xdd, 0xc5, 0x47, 0xba, 0xed, 0xda, 0xa1, 0x6d, 0x84, 0x9e, + 0x5f, 0x1b, 0x59, 0x55, 0xd6, 0xab, 0x9b, 0xaf, 0x0a, 0x0f, 0xb0, 0xc5, 0xa1, 0x6e, 0x04, 0xf7, + 0xf1, 0x51, 0x33, 0x02, 0xd1, 0x16, 0x4c, 0xe1, 0x38, 0x6a, 0xc2, 0x6c, 0x34, 0x63, 0xe9, 0x2d, + 0xc3, 0x76, 0xba, 0x3e, 0xae, 0x8d, 0x52, 0x72, 0xcf, 0x09, 0xf1, 0xdf, 0x66, 0x6b, 0xb4, 0x99, + 0x18, 0x8c, 0x8f, 0x20, 0x0d, 0x16, 0x1c, 0x23, 0x08, 0x75, 0xd3, 0x6b, 0x77, 0x1c, 0x4c, 0x0f, + 0xef, 0xe3, 0xa0, 0xeb, 0x84, 0xb5, 0x31, 0x09, 0xbe, 0x87, 0x46, 0xcf, 0xf1, 0x0c, 0x4b, 0x9b, + 0x23, 0xb0, 0x5b, 0x31, 0xa8, 0x46, 0x21, 0xd1, 0xff, 0x87, 0xe5, 0x96, 0xed, 0x07, 0xa1, 0x6e, + 0x61, 0xd3, 0x0e, 0x28, 0x3f, 0x8d, 0xe0, 0x89, 0xbe, 0x67, 0x98, 0x4f, 0xbc, 0x56, 0xab, 0x36, + 0x4e, 0x11, 0x2f, 0xe5, 0xf8, 0xba, 0xcd, 0x0d, 0x9c, 0x56, 0xa3, 0xd0, 0xdb, 0x1c, 0x78, 0xd7, + 0x08, 0x9e, 0xdc, 0x64, 0xa0, 0xe8, 0x10, 0x66, 0x3a, 0x86, 0x1f, 0xda, 0x94, 0x4e, 0xd3, 0x73, + 0x5b, 0xf6, 0x7e, 0x0d, 0x56, 0x2b, 0xeb, 0x13, 0x9b, 0xff, 0xaf, 0x51, 0x60, 0x48, 0xe5, 0x52, + 0x49, 0x44, 0x87, 0xa1, 0xdb, 0xa2, 0xd8, 0x6e, 0xb9, 0xa1, 0xdf, 0xd3, 0xa6, 0x3b, 0xe9, 0xd1, + 0xfa, 0x4d, 0x98, 0x13, 0x2d, 0x44, 0x33, 0x50, 0x79, 0x82, 0x7b, 0x54, 0x29, 0xc6, 0x35, 0xf2, + 0x27, 0x9a, 0x83, 0xe1, 0x43, 0xc3, 0xe9, 0x62, 0x2e, 0xd8, 0xec, 0xc7, 0xbb, 0x43, 0x57, 0x15, + 0xf5, 0x6d, 0x58, 0x29, 0x22, 0x25, 0xe8, 0x78, 0x6e, 0x80, 0xd1, 0x3c, 0x8c, 0xf8, 0x5d, 0xaa, + 0x15, 0x0c, 0xe1, 0xb0, 0xdf, 0x75, 0x9b, 0x96, 0xfa, 0x57, 0x43, 0xb0, 0xb2, 0x63, 0xef, 0xbb, + 0x86, 0x53, 0xa8, 0xa0, 0xf7, 0xb2, 0x0a, 0xfa, 0x86, 0x58, 0x41, 0xa5, 0x58, 0x06, 0xd4, 0xd0, + 0x16, 0x2c, 0xe3, 0x67, 0x21, 0xf6, 0x5d, 0xc3, 0x89, 0x0d, 0x6f, 0x5f, 0x59, 0xb9, 0x9e, 0xbe, + 0x24, 0xdc, 0x3f, 0xbf, 0xf3, 0x52, 0x84, 0x2a, 0x37, 0x85, 0x1a, 0x70, 0xd6, 0x3c, 0xb0, 0x1d, + 0xab, 0xbf, 0x89, 0xe7, 0x3a, 0x3d, 0xaa, 0xb7, 0x63, 0xda, 0x2c, 0x9d, 0x8a, 0x80, 0x1e, 0xb8, + 0x4e, 0x4f, 0x5d, 0x83, 0x0b, 0x85, 0xe7, 0x63, 0x0c, 0x56, 0x7f, 0x31, 0x04, 0x2f, 0xf3, 0x35, + 0x76, 0x78, 0x20, 0xb7, 0x79, 0x8f, 0xb3, 0x2c, 0xbd, 0x26, 0x63, 0x69, 0x19, 0xba, 0x01, 0x79, + 0xfb, 0x99, 0x22, 0x10, 0xf0, 0x0a, 0x15, 0xf0, 0x8f, 0x8a, 0x05, 0x7c, 0x30, 0x12, 0xfe, 0x17, + 0x45, 0xfd, 0x06, 0xac, 0x97, 0x13, 0x25, 0x17, 0xfa, 0xef, 0x2b, 0x70, 0x5e, 0xc3, 0x01, 0x3e, + 0xf5, 0x47, 0x49, 0x8a, 0x64, 0xb0, 0x6b, 0x21, 0xaa, 0x5b, 0x84, 0x46, 0x7e, 0x8a, 0x2f, 0x86, + 0x60, 0x6d, 0x17, 0xfb, 0x6d, 0xdb, 0x35, 0x42, 0x5c, 0x78, 0x92, 0x87, 0xd9, 0x93, 0x5c, 0x11, + 0x9e, 0xa4, 0x14, 0xd1, 0xaf, 0xb8, 0x02, 0xbf, 0x08, 0xaa, 0xec, 0x88, 0x5c, 0x87, 0x7f, 0xa8, + 0xc0, 0xea, 0x36, 0x0e, 0x4c, 0xdf, 0xde, 0x2b, 0xe6, 0xe8, 0x83, 0x2c, 0x47, 0xdf, 0x12, 0x1e, + 0xa7, 0x0c, 0xcf, 0x80, 0xe2, 0xf1, 0x5f, 0x15, 0x58, 0x93, 0xa0, 0xe2, 0x22, 0xe2, 0xc0, 0x62, + 0xdf, 0xa5, 0x61, 0xaa, 0xcd, 0x3f, 0x78, 0x52, 0x9b, 0x9d, 0x43, 0xb8, 0x95, 0x04, 0xd5, 0x16, + 0xb0, 0x70, 0x1c, 0xed, 0xc1, 0x62, 0xfe, 0x6e, 0x99, 0x27, 0x35, 0x44, 0x77, 0xbb, 0x34, 0xd8, + 0x6e, 0xd4, 0x97, 0x9a, 0x3f, 0x12, 0x0d, 0xa3, 0x8f, 0x01, 0x75, 0xb0, 0x6b, 0xd9, 0xee, 0xbe, + 0x6e, 0x98, 0xa1, 0x7d, 0x68, 0x87, 0x36, 0x0e, 0xb8, 0xb9, 0x2a, 0x70, 0xd4, 0xd8, 0xf2, 0x1b, + 0x6c, 0x75, 0x8f, 0x22, 0x9f, 0xed, 0xa4, 0x06, 0x6d, 0x1c, 0xa0, 0x5f, 0x83, 0x99, 0x08, 0x31, + 0x15, 0x13, 0x1f, 0xbb, 0xb5, 0x33, 0x14, 0x6d, 0x43, 0x86, 0x76, 0x8b, 0xac, 0x4d, 0x53, 0x3e, + 0xdd, 0x49, 0x4c, 0xf9, 0xd8, 0x45, 0x3b, 0x7d, 0xd4, 0x91, 0x77, 0xc2, 0x1d, 0x3d, 0x29, 0xc5, + 0x91, 0x33, 0x92, 0x42, 0x1a, 0x0d, 0xaa, 0xcf, 0x60, 0xee, 0x11, 0x89, 0x79, 0x22, 0xee, 0x45, + 0x62, 0xb8, 0x95, 0x15, 0xc3, 0x57, 0x84, 0x7b, 0x88, 0x60, 0x07, 0x14, 0xbd, 0x1f, 0x2b, 0x30, + 0x9f, 0x01, 0xe7, 0xe2, 0x76, 0x1d, 0x26, 0x69, 0x1c, 0x16, 0xb9, 0x73, 0xca, 0x00, 0xee, 0xdc, + 0x04, 0x85, 0xe0, 0x5e, 0x5c, 0x13, 0xaa, 0x11, 0x82, 0xdf, 0xc2, 0x66, 0x88, 0x2d, 0x2e, 0x38, + 0x6a, 0xf1, 0x19, 0x34, 0xbe, 0x52, 0x9b, 0x7a, 0x9a, 0xfc, 0xa9, 0xfe, 0x9e, 0x02, 0x75, 0x6a, + 0x40, 0x77, 0x42, 0xdb, 0x7c, 0xd2, 0x23, 0x1e, 0xdd, 0x5d, 0x3b, 0x08, 0x23, 0x36, 0x35, 0xb3, + 0x6c, 0xda, 0x28, 0xb6, 0xe4, 0x42, 0x0c, 0x03, 0x32, 0xeb, 0x3c, 0x2c, 0x0b, 0x71, 0x70, 0xcb, + 0xf2, 0x9f, 0x0a, 0x2c, 0xdc, 0xc1, 0xe1, 0xbd, 0x6e, 0x68, 0xec, 0x39, 0x78, 0x27, 0x34, 0x42, + 0xac, 0x89, 0xd0, 0x2a, 0x19, 0x7b, 0xfa, 0x11, 0x20, 0x81, 0x19, 0x1d, 0x3a, 0x96, 0x19, 0x9d, + 0xcd, 0x69, 0x18, 0x7a, 0x03, 0x16, 0xf0, 0xb3, 0x0e, 0x65, 0xa0, 0xee, 0xe2, 0x67, 0xa1, 0x8e, + 0x0f, 0x49, 0x58, 0x64, 0x5b, 0xd4, 0x42, 0x57, 0xb4, 0xb3, 0xd1, 0xec, 0x7d, 0xfc, 0x2c, 0xbc, + 0x45, 0xe6, 0x9a, 0x16, 0x7a, 0x1d, 0xe6, 0xcc, 0xae, 0x4f, 0xe3, 0xa7, 0x3d, 0xdf, 0x70, 0xcd, + 0x03, 0x3d, 0xf4, 0x9e, 0x50, 0xed, 0x51, 0xd6, 0x27, 0x35, 0xc4, 0xe7, 0x6e, 0xd2, 0xa9, 0x5d, + 0x32, 0xa3, 0xfe, 0xdd, 0x38, 0x2c, 0xe6, 0x4e, 0xcd, 0x65, 0x48, 0x7c, 0x32, 0xe5, 0xb4, 0x27, + 0xbb, 0x0d, 0x53, 0x31, 0xda, 0xb0, 0xd7, 0xc1, 0x9c, 0x57, 0x6b, 0x52, 0x8c, 0xbb, 0xbd, 0x0e, + 0xd6, 0x26, 0x8f, 0x12, 0xbf, 0x90, 0x0a, 0x53, 0x22, 0xc6, 0x4c, 0xb8, 0x09, 0x86, 0x3c, 0x86, + 0xa5, 0x8e, 0x8f, 0x0f, 0x6d, 0xaf, 0x1b, 0xe8, 0x01, 0xf1, 0x44, 0xb0, 0xd5, 0x5f, 0x7f, 0x86, + 0xee, 0xbb, 0x9c, 0x8b, 0x44, 0x9a, 0x6e, 0x78, 0xe5, 0xcd, 0xc7, 0xc4, 0x9d, 0xd1, 0x16, 0x22, + 0xe8, 0x1d, 0x06, 0x1c, 0xe1, 0x7d, 0x0d, 0xce, 0xd2, 0xb8, 0x89, 0x05, 0x3a, 0x31, 0xc6, 0x61, + 0x4a, 0xc1, 0x0c, 0x99, 0xba, 0x4d, 0x66, 0xa2, 0xe5, 0xef, 0xc2, 0x38, 0x8d, 0x81, 0x1c, 0x3b, + 0x08, 0x69, 0x24, 0x38, 0xb1, 0x79, 0x5e, 0xfc, 0x91, 0x8f, 0xa4, 0x72, 0x2c, 0xe4, 0x7f, 0xa1, + 0x3b, 0x30, 0x13, 0x50, 0x89, 0xd5, 0xfb, 0x28, 0x46, 0x07, 0x41, 0x51, 0x0d, 0x52, 0x82, 0x8e, + 0xde, 0x84, 0x05, 0xd3, 0xb1, 0x09, 0xa5, 0x8e, 0xbd, 0xe7, 0x1b, 0x7e, 0x4f, 0x3f, 0xc4, 0x3e, + 0xb5, 0x80, 0x63, 0x54, 0xa4, 0xe7, 0xd8, 0xec, 0x5d, 0x36, 0xf9, 0x98, 0xcd, 0x25, 0xa0, 0x5a, + 0xd8, 0x08, 0xbb, 0x3e, 0x8e, 0xa1, 0xc6, 0x93, 0x50, 0xb7, 0xd9, 0x64, 0x04, 0x75, 0x01, 0x26, + 0x38, 0x94, 0xdd, 0xee, 0x38, 0x35, 0xa0, 0x4b, 0x81, 0x0d, 0x35, 0xdb, 0x1d, 0x07, 0x05, 0x70, + 0x29, 0x7b, 0x2a, 0x3d, 0x30, 0x0f, 0xb0, 0xd5, 0x75, 0xb0, 0x1e, 0x7a, 0xec, 0xb2, 0x68, 0x20, + 0xee, 0x75, 0xc3, 0xda, 0x44, 0x59, 0xcc, 0xf8, 0x62, 0xfa, 0xac, 0x3b, 0x1c, 0xd3, 0xae, 0x47, + 0xef, 0x6d, 0x97, 0xa1, 0x21, 0x2e, 0x09, 0xbb, 0x2a, 0xe2, 0x3c, 0xf7, 0x0f, 0x32, 0x49, 0x73, + 0x01, 0xb3, 0x74, 0x6a, 0x87, 0xcc, 0x44, 0xa7, 0x28, 0x52, 0xa7, 0xa9, 0x22, 0x75, 0x42, 0x77, + 0xa1, 0x1a, 0xcb, 0x76, 0x40, 0x94, 0xa9, 0x56, 0xa5, 0x71, 0xff, 0xc5, 0xf4, 0x55, 0xb1, 0x64, + 0x4c, 0x52, 0xbe, 0x99, 0xe6, 0xc5, 0x8a, 0x41, 0x7f, 0x22, 0x13, 0xe6, 0x62, 0x6c, 0xa6, 0xe3, + 0x05, 0x98, 0xe3, 0x9c, 0xa6, 0x38, 0x2f, 0x0f, 0xe8, 0x30, 0x10, 0x40, 0x82, 0xaf, 0x1b, 0x68, + 0xb1, 0x3e, 0xc7, 0x83, 0x44, 0xcb, 0x67, 0x39, 0x23, 0x74, 0x16, 0x55, 0x90, 0xaf, 0xf8, 0x8c, + 0xe8, 0x9b, 0xd8, 0xa7, 0x9a, 0x33, 0xe8, 0x83, 0x68, 0xbd, 0x36, 0x73, 0x98, 0x19, 0x41, 0xd7, + 0x60, 0xd9, 0x26, 0x3a, 0x97, 0xb9, 0x63, 0xec, 0x12, 0x3b, 0x63, 0xd5, 0x66, 0xa9, 0x1b, 0xb8, + 0x68, 0x07, 0x69, 0x6b, 0x7c, 0x8b, 0x4d, 0xa3, 0x35, 0x98, 0xe4, 0x21, 0x8e, 0x1e, 0xd8, 0x9f, + 0xe2, 0x1a, 0x62, 0xaa, 0xcd, 0xc7, 0x76, 0xec, 0x4f, 0xb1, 0xfa, 0x4b, 0x05, 0x16, 0x1f, 0x7a, + 0x8e, 0xf3, 0x7f, 0xcc, 0x60, 0xff, 0x64, 0x0c, 0x6a, 0xf9, 0x63, 0x7f, 0x63, 0xb1, 0xbf, 0xb1, + 0xd8, 0x5f, 0x47, 0x8b, 0x5d, 0xa4, 0x1f, 0x93, 0x85, 0x16, 0x58, 0x68, 0xce, 0xa6, 0x4e, 0x6d, + 0xce, 0x7e, 0xf5, 0x0c, 0xbb, 0xfa, 0x4f, 0x43, 0xb0, 0xaa, 0x61, 0xd3, 0xf3, 0xad, 0x64, 0x2e, + 0x95, 0xab, 0xc5, 0xf3, 0xb4, 0x94, 0x17, 0x60, 0x22, 0x16, 0x9c, 0xd8, 0x08, 0x40, 0x34, 0xd4, + 0xb4, 0xd0, 0x22, 0x8c, 0x52, 0x19, 0xe3, 0x1a, 0x5f, 0xd1, 0x46, 0xc8, 0xcf, 0xa6, 0x85, 0xce, + 0x03, 0x70, 0x57, 0x3f, 0xd2, 0xdd, 0x71, 0x6d, 0x9c, 0x8f, 0x34, 0x2d, 0xa4, 0xc1, 0x64, 0xc7, + 0x73, 0x1c, 0x3d, 0x0a, 0x27, 0x46, 0x24, 0xe1, 0x04, 0xb1, 0xa1, 0xb7, 0x3d, 0x3f, 0xc9, 0x9a, + 0x28, 0x9c, 0x98, 0x20, 0x48, 0xf8, 0x0f, 0xf5, 0x77, 0xc7, 0x60, 0x4d, 0xc2, 0x45, 0x6e, 0x78, + 0x73, 0x16, 0x52, 0x39, 0x99, 0x85, 0x94, 0x5a, 0xbf, 0xa1, 0x93, 0x5b, 0xbf, 0x6f, 0x01, 0x8a, + 0xf8, 0x6b, 0x65, 0xcd, 0xef, 0x4c, 0x3c, 0x13, 0xad, 0x5e, 0x27, 0x06, 0x4c, 0x60, 0x7a, 0x2b, + 0xc4, 0x42, 0xa5, 0xf0, 0xe6, 0x2c, 0xfa, 0x70, 0xde, 0xa2, 0x27, 0xaa, 0x2e, 0x23, 0xe9, 0xaa, + 0xcb, 0x55, 0xa8, 0x71, 0x93, 0xd2, 0xcf, 0x51, 0x44, 0x0e, 0xc2, 0x28, 0x75, 0x10, 0x16, 0xd8, + 0x7c, 0x2c, 0x3b, 0x91, 0x7f, 0xa0, 0xc1, 0x54, 0x5c, 0x5d, 0xa0, 0x59, 0x0d, 0x56, 0xae, 0x78, + 0xad, 0x48, 0x1b, 0x77, 0x7d, 0xc3, 0x0d, 0x88, 0x29, 0x4b, 0x45, 0xf2, 0x93, 0x56, 0xe2, 0x17, + 0xfa, 0x04, 0xce, 0x09, 0x72, 0x26, 0x7d, 0x13, 0x3e, 0x3e, 0x88, 0x09, 0x5f, 0xca, 0x89, 0x7b, + 0x6c, 0xcd, 0x0b, 0xbc, 0x4f, 0x28, 0xf2, 0x3e, 0xd7, 0x60, 0x32, 0x65, 0xf3, 0x26, 0xa8, 0xcd, + 0x9b, 0xd8, 0x4b, 0x18, 0xbb, 0x1b, 0x50, 0xed, 0x5f, 0x2b, 0xad, 0x5a, 0x4d, 0x96, 0x56, 0xad, + 0xa6, 0x62, 0x08, 0x5a, 0xb4, 0x7a, 0x1f, 0x26, 0xa3, 0xbb, 0xa6, 0x08, 0xa6, 0x4a, 0x11, 0x4c, + 0xf0, 0xf5, 0x14, 0xdc, 0x80, 0x51, 0x12, 0xec, 0x13, 0x23, 0x5b, 0xa5, 0x29, 0x9a, 0x3b, 0x85, + 0x89, 0xea, 0x52, 0x2d, 0xa2, 0x59, 0x04, 0x1b, 0x07, 0x2c, 0x35, 0x1d, 0xe1, 0xcd, 0xf9, 0x82, + 0xd3, 0x39, 0x5f, 0xb0, 0xfe, 0x09, 0x4c, 0x26, 0x61, 0x05, 0xd9, 0xea, 0xab, 0xc9, 0x6c, 0x75, + 0x51, 0x16, 0x23, 0x52, 0x4c, 0x96, 0xcd, 0x48, 0x64, 0xb4, 0xfb, 0xa6, 0x34, 0xca, 0x5d, 0x7d, + 0x63, 0x4a, 0x73, 0xa6, 0x34, 0xc9, 0x1a, 0xa1, 0x29, 0xfd, 0x79, 0x25, 0x32, 0xa5, 0x42, 0x2e, + 0x72, 0x53, 0xfa, 0x21, 0x4c, 0x67, 0x4c, 0x95, 0xd4, 0x98, 0xb2, 0x4f, 0x74, 0x8f, 0x1a, 0x1b, + 0xad, 0x9a, 0x36, 0x65, 0x39, 0xe1, 0x1e, 0x3a, 0x9e, 0x70, 0x27, 0x2c, 0x57, 0x25, 0x6d, 0xb9, + 0x3e, 0x81, 0x95, 0xb4, 0xe2, 0xe9, 0x5e, 0x4b, 0x0f, 0x0f, 0xec, 0x40, 0x4f, 0x16, 0x98, 0xe5, + 0x5b, 0xd5, 0x53, 0x8a, 0xf8, 0xa0, 0xb5, 0x7b, 0x60, 0x07, 0x37, 0x38, 0xfe, 0x26, 0xcc, 0x1e, + 0x60, 0xc3, 0x0f, 0xf7, 0xb0, 0x11, 0xea, 0x16, 0x0e, 0x0d, 0xdb, 0x09, 0x78, 0xa2, 0x52, 0x9e, + 0xc3, 0x9b, 0x89, 0xc1, 0xb6, 0x19, 0x54, 0xfe, 0xd3, 0x34, 0x72, 0xb2, 0x4f, 0xd3, 0xcb, 0x30, + 0x1d, 0xe3, 0x61, 0x62, 0x4d, 0x6d, 0xf4, 0xb8, 0x16, 0x3b, 0x46, 0xdb, 0x74, 0x54, 0xfd, 0x53, + 0x05, 0x5e, 0x60, 0xb7, 0x99, 0x52, 0x76, 0x5e, 0x27, 0xee, 0xeb, 0x8b, 0x96, 0xcd, 0xfb, 0x5d, + 0x2d, 0xca, 0xfb, 0x95, 0xa1, 0x1a, 0x30, 0x01, 0xf8, 0x37, 0x15, 0x78, 0x51, 0x8e, 0x8d, 0x8b, + 0x20, 0xee, 0x7f, 0xff, 0x7c, 0x3e, 0xc6, 0x49, 0x7c, 0xf7, 0xe4, 0xd6, 0x4d, 0x9b, 0x0e, 0x32, + 0x92, 0xfe, 0x63, 0x05, 0x56, 0xfa, 0x99, 0x73, 0xe2, 0x43, 0x5b, 0x76, 0xd0, 0x31, 0x42, 0xf3, + 0x40, 0x77, 0x3c, 0xd3, 0x70, 0x9c, 0x5e, 0x6d, 0x88, 0xda, 0xd4, 0x4f, 0x24, 0xbb, 0x96, 0x1f, + 0xa7, 0xd1, 0x4f, 0xad, 0xef, 0x7a, 0xdb, 0x7c, 0x87, 0xbb, 0x6c, 0x03, 0x66, 0x6a, 0x97, 0x8d, + 0xe2, 0x15, 0xf5, 0xdf, 0x86, 0xd5, 0x32, 0x04, 0x02, 0x7b, 0xbb, 0x9d, 0xb6, 0xb7, 0xe2, 0xc4, + 0x7d, 0x64, 0x06, 0x28, 0xae, 0x08, 0x31, 0xfd, 0x32, 0x27, 0x6c, 0xef, 0x0f, 0x15, 0x62, 0x7b, + 0x73, 0xc7, 0xbc, 0x6d, 0xd8, 0x4e, 0x5f, 0x96, 0x06, 0xac, 0xf8, 0x94, 0xe1, 0x19, 0x50, 0x90, + 0x5e, 0x20, 0x76, 0xac, 0x10, 0x13, 0xcf, 0x27, 0xff, 0xb1, 0x02, 0x6a, 0xde, 0xda, 0x7d, 0x10, + 0xa9, 0x67, 0x44, 0xf9, 0xa3, 0x2c, 0xe5, 0x6f, 0x17, 0x50, 0x5e, 0x86, 0x69, 0x40, 0xda, 0x1f, + 0x12, 0xe5, 0x94, 0xe0, 0xe2, 0xb2, 0xf9, 0x0a, 0xcc, 0x98, 0x86, 0x6b, 0xe2, 0xf8, 0x0b, 0x80, + 0xd9, 0x37, 0x6d, 0x4c, 0x9b, 0x66, 0xe3, 0x5a, 0x34, 0x9c, 0xd4, 0xf7, 0x24, 0xce, 0x53, 0xea, + 0xbb, 0x0c, 0xd5, 0x80, 0x47, 0x7d, 0x29, 0x56, 0xf7, 0x02, 0x64, 0x89, 0x9a, 0xa2, 0x60, 0xe1, + 0x69, 0x24, 0xac, 0x10, 0xcf, 0xb1, 0x25, 0x4c, 0x84, 0x29, 0x25, 0x61, 0xf9, 0x03, 0xd2, 0xfb, + 0xe9, 0x53, 0x3e, 0xb0, 0x84, 0x95, 0x61, 0x1a, 0x90, 0xf6, 0x8b, 0x62, 0x71, 0x88, 0x71, 0x71, + 0xea, 0xff, 0x56, 0x81, 0x0b, 0x1a, 0x6e, 0x7b, 0x87, 0x98, 0x35, 0x0b, 0x7c, 0x55, 0xf2, 0x78, + 0x69, 0xc7, 0xa8, 0x92, 0x71, 0x8c, 0x54, 0x95, 0xc8, 0x4a, 0x11, 0xd5, 0xfc, 0x68, 0x7f, 0x3f, + 0x04, 0x17, 0xf9, 0x11, 0xd8, 0xb1, 0x0b, 0x2b, 0xd5, 0xd2, 0x03, 0x1a, 0x50, 0x4d, 0xeb, 0x20, + 0x3f, 0xdc, 0xbb, 0x05, 0xf7, 0x37, 0xc0, 0x86, 0xda, 0x54, 0x4a, 0x7b, 0xd1, 0x1e, 0x2c, 0xc6, + 0xcd, 0x00, 0xc2, 0x8e, 0x3b, 0x71, 0x9d, 0xf8, 0x16, 0x87, 0xc9, 0xd4, 0x89, 0xb1, 0x68, 0xf8, + 0xd8, 0x8d, 0x00, 0xeb, 0xf0, 0x52, 0xd9, 0x59, 0x38, 0x9f, 0xff, 0x51, 0x81, 0xe5, 0x28, 0x71, + 0x24, 0x08, 0xe4, 0x9f, 0x8b, 0xf8, 0x5c, 0x82, 0x59, 0x3b, 0xd0, 0xd3, 0x0d, 0x70, 0x94, 0x97, + 0x63, 0xda, 0xb4, 0x1d, 0xdc, 0x4e, 0xb6, 0xb6, 0xa9, 0x2b, 0x70, 0x4e, 0x4c, 0x3e, 0x3f, 0xdf, + 0xe7, 0xd4, 0x61, 0x21, 0xc6, 0x3a, 0x5d, 0xdb, 0xce, 0x99, 0xd6, 0xe7, 0x71, 0xd0, 0x35, 0x98, + 0xe4, 0xdd, 0x8d, 0xd8, 0x4a, 0xe4, 0x72, 0xe3, 0xb1, 0xa6, 0x85, 0x3e, 0x86, 0xb3, 0x66, 0x44, + 0x6a, 0x62, 0xeb, 0x33, 0xc7, 0xda, 0x1a, 0xc5, 0x28, 0xfa, 0x7b, 0xdf, 0x85, 0x99, 0x44, 0xc7, + 0x22, 0x0b, 0x12, 0x86, 0x07, 0x0d, 0x12, 0xa6, 0xfb, 0xa0, 0x2c, 0x4a, 0x38, 0x0f, 0x10, 0xb9, + 0x7b, 0xb6, 0x45, 0xdd, 0xe3, 0x8a, 0x36, 0xce, 0x47, 0x9a, 0x96, 0xfa, 0x32, 0x51, 0x66, 0xe9, + 0x25, 0xf0, 0xeb, 0xfa, 0xb7, 0x21, 0xa8, 0x69, 0xbc, 0x9d, 0x17, 0x53, 0xd4, 0xc1, 0xe3, 0xcd, + 0xe7, 0x79, 0x45, 0xbf, 0x09, 0xf3, 0xe9, 0x5c, 0x68, 0x4f, 0xb7, 0x43, 0xdc, 0x8e, 0x9a, 0x34, + 0xb2, 0xed, 0x08, 0x56, 0xdb, 0x76, 0x73, 0xe9, 0xd0, 0x5e, 0x33, 0xc4, 0x6d, 0xed, 0xec, 0x61, + 0x6e, 0x2c, 0x40, 0x6f, 0xc1, 0x08, 0x65, 0x7d, 0xc0, 0x6f, 0x54, 0x9c, 0x1a, 0xd9, 0x36, 0x42, + 0xe3, 0xa6, 0xe3, 0xed, 0x69, 0x7c, 0x31, 0xda, 0x82, 0xaa, 0x8b, 0x8f, 0x74, 0xbf, 0xcb, 0x6f, + 0x2e, 0x0a, 0x6c, 0x4a, 0xc0, 0x27, 0x5d, 0x7c, 0xa4, 0x75, 0xd9, 0x95, 0x05, 0xea, 0x32, 0x2c, + 0x09, 0x58, 0xcd, 0x2f, 0xe2, 0xfb, 0x0a, 0x2c, 0xec, 0xf4, 0x5c, 0x73, 0xe7, 0xc0, 0xf0, 0x2d, + 0x9e, 0x21, 0xe5, 0xd7, 0x70, 0x11, 0xaa, 0x81, 0xd7, 0xf5, 0x4d, 0xac, 0xf3, 0x2e, 0x6f, 0x7e, + 0x17, 0x53, 0x6c, 0x74, 0x8b, 0x0d, 0xa2, 0x25, 0x18, 0x0b, 0x08, 0x70, 0xf4, 0x7d, 0x1b, 0xd6, + 0x46, 0xe9, 0xef, 0xa6, 0x85, 0x1a, 0x70, 0x86, 0xc6, 0x92, 0x95, 0xd2, 0x00, 0x8f, 0xae, 0x53, + 0x97, 0x60, 0x31, 0x47, 0x0b, 0xa7, 0xf3, 0x67, 0xc3, 0x70, 0x96, 0xcc, 0x45, 0xdf, 0xc9, 0xe7, + 0x29, 0x2b, 0x35, 0x18, 0x8d, 0x32, 0x52, 0x4c, 0x93, 0xa3, 0x9f, 0x44, 0xd1, 0xfb, 0xb1, 0x6e, + 0x9c, 0x47, 0x88, 0xf3, 0x0e, 0x84, 0x27, 0xf9, 0x3c, 0xd4, 0xf0, 0x71, 0xf3, 0x50, 0x72, 0x25, + 0xcc, 0x45, 0xf2, 0xa3, 0xc7, 0x8b, 0xe4, 0x3f, 0xe4, 0xd5, 0x9f, 0x7e, 0x50, 0x4d, 0xb1, 0x8c, + 0x95, 0x62, 0x99, 0x25, 0x60, 0xb1, 0x7b, 0x4c, 0x71, 0x5d, 0x81, 0xd1, 0x28, 0x22, 0x1f, 0x1f, + 0x20, 0x22, 0x8f, 0x16, 0x27, 0xb3, 0x09, 0x90, 0xce, 0x26, 0x5c, 0x87, 0x49, 0x56, 0x9b, 0xe2, + 0xbd, 0xdc, 0x13, 0x03, 0xf4, 0x72, 0x4f, 0xd0, 0x92, 0x15, 0x6f, 0xe3, 0x7e, 0x1d, 0x68, 0x2b, + 0x36, 0x7f, 0xdd, 0xa0, 0xdb, 0x16, 0x76, 0x43, 0x3b, 0xec, 0xd1, 0x6c, 0xe0, 0xb8, 0x86, 0xc8, + 0xdc, 0xc7, 0x74, 0xaa, 0xc9, 0x67, 0xd0, 0x7d, 0x98, 0xce, 0x98, 0x06, 0x9e, 0xf9, 0xbb, 0x38, + 0x90, 0x51, 0xd0, 0xaa, 0x69, 0x83, 0xa0, 0x2e, 0xc0, 0x5c, 0x5a, 0x92, 0xb9, 0x88, 0xff, 0x91, + 0x02, 0xcb, 0x51, 0x73, 0xdc, 0x57, 0xc4, 0xc3, 0x53, 0xff, 0x50, 0x81, 0x73, 0x62, 0x9a, 0x78, + 0xf0, 0xf3, 0x06, 0x2c, 0xb4, 0xd9, 0x38, 0xab, 0xcb, 0xe8, 0xb6, 0xab, 0x9b, 0x86, 0x79, 0x80, + 0x39, 0x85, 0x67, 0xdb, 0x09, 0xa8, 0xa6, 0xbb, 0x45, 0xa6, 0xd0, 0x3b, 0xb0, 0x94, 0x03, 0xb2, + 0x8c, 0xd0, 0xd8, 0x33, 0x82, 0xa8, 0x47, 0x76, 0x21, 0x0d, 0xb7, 0xcd, 0x67, 0xd5, 0x73, 0x50, + 0x8f, 0xe8, 0xe1, 0xfc, 0xfc, 0xc0, 0x8b, 0xbb, 0x9b, 0xd4, 0xdf, 0x19, 0xea, 0xb3, 0x30, 0x35, + 0xcd, 0xa9, 0x5d, 0x87, 0x19, 0xb7, 0xdb, 0xde, 0xc3, 0xbe, 0xee, 0xb5, 0x74, 0x6a, 0xa5, 0x02, + 0x4a, 0xe7, 0xb0, 0x56, 0x65, 0xe3, 0x0f, 0x5a, 0xd4, 0xf8, 0x04, 0x84, 0xd9, 0x91, 0x55, 0x0b, + 0x68, 0x6a, 0x61, 0x58, 0x1b, 0xe3, 0x66, 0x2d, 0x40, 0x4d, 0x98, 0xe4, 0x37, 0xc1, 0x8e, 0x2a, + 0x6e, 0x04, 0x8d, 0xc4, 0x81, 0xe5, 0x7a, 0xe8, 0xc9, 0xa9, 0xef, 0x37, 0x61, 0xf5, 0x07, 0xd0, + 0x15, 0x58, 0x64, 0xfb, 0x98, 0x9e, 0x1b, 0xfa, 0x9e, 0xe3, 0x60, 0x9f, 0xf2, 0xa4, 0xcb, 0xbe, + 0x14, 0xe3, 0xda, 0x3c, 0x9d, 0xde, 0x8a, 0x67, 0x99, 0x5d, 0xa4, 0x1a, 0x62, 0x59, 0x3e, 0x0e, + 0x02, 0x9e, 0x90, 0x8c, 0x7e, 0xaa, 0x0d, 0x98, 0x65, 0x95, 0x2d, 0x02, 0x17, 0xc9, 0x4e, 0xd2, + 0x48, 0x2b, 0x29, 0x23, 0xad, 0xce, 0x01, 0x4a, 0xae, 0xe7, 0xc2, 0xf8, 0x1f, 0x0a, 0xcc, 0x32, + 0xe7, 0x3d, 0xe9, 0x25, 0x16, 0xa3, 0x41, 0xd7, 0x78, 0x15, 0x38, 0x2e, 0x7a, 0x57, 0x37, 0x2f, + 0x14, 0x30, 0x84, 0x60, 0xa4, 0x59, 0x33, 0x5a, 0x07, 0xa6, 0x19, 0xb3, 0x44, 0xee, 0xb5, 0x92, + 0xca, 0xbd, 0x6e, 0xc1, 0xf4, 0xa1, 0x1d, 0xd8, 0x7b, 0xb6, 0x63, 0x87, 0x3d, 0x66, 0x89, 0xca, + 0xd3, 0x85, 0xd5, 0x3e, 0x08, 0x35, 0x43, 0x6b, 0x30, 0xc9, 0x3f, 0x61, 0xba, 0x6b, 0x70, 0x8b, + 0x3b, 0xae, 0x4d, 0xf0, 0xb1, 0xfb, 0x46, 0x1b, 0x13, 0x2e, 0x24, 0x8f, 0xcb, 0xb9, 0xf0, 0x03, + 0xca, 0x85, 0x00, 0x87, 0x8f, 0xba, 0xb8, 0x8b, 0x07, 0xe0, 0x42, 0x76, 0xa7, 0xa1, 0xdc, 0x4e, + 0x69, 0x46, 0x55, 0x8e, 0xc9, 0x28, 0x46, 0x67, 0x9f, 0x20, 0x4e, 0xe7, 0x8f, 0x14, 0x98, 0x8b, + 0xe4, 0xfe, 0x2b, 0x43, 0xea, 0x03, 0x98, 0xcf, 0xd0, 0xc4, 0xb5, 0xf0, 0x0a, 0x2c, 0x76, 0x7c, + 0xcf, 0xc4, 0x41, 0x60, 0xbb, 0xfb, 0x3a, 0x7d, 0xf8, 0xc5, 0xec, 0x00, 0x51, 0xc6, 0x0a, 0x91, + 0xf9, 0xfe, 0x34, 0x85, 0xa4, 0x46, 0x20, 0x50, 0x3f, 0x57, 0xe0, 0xfc, 0x1d, 0x1c, 0x6a, 0xfd, + 0x67, 0x60, 0xf7, 0x70, 0x10, 0x18, 0xfb, 0x38, 0x76, 0x59, 0xae, 0xc3, 0x08, 0x2d, 0x00, 0x31, + 0x44, 0x13, 0x9b, 0x2f, 0x17, 0x50, 0x9b, 0x40, 0x41, 0xab, 0x43, 0x1a, 0x07, 0x1b, 0x80, 0x29, + 0xc4, 0xc6, 0xac, 0x14, 0x51, 0xc1, 0x0f, 0xf8, 0x14, 0xaa, 0x8c, 0xeb, 0x6d, 0x3e, 0xc3, 0xc9, + 0xf9, 0xb0, 0x30, 0x39, 0x29, 0x47, 0xd8, 0xa0, 0xba, 0x19, 0x8d, 0xb2, 0x44, 0xe4, 0x54, 0x90, + 0x1c, 0xab, 0x3b, 0x80, 0xf2, 0x8b, 0x92, 0xc9, 0xc6, 0x61, 0x96, 0x6c, 0xfc, 0x4e, 0x3a, 0xd9, + 0x78, 0xa9, 0x9c, 0x41, 0x31, 0x31, 0x89, 0x44, 0x63, 0x1b, 0x56, 0xef, 0xe0, 0x70, 0xfb, 0xee, + 0x23, 0xc9, 0x5d, 0x34, 0x01, 0x98, 0x4a, 0xbb, 0x2d, 0x2f, 0x62, 0xc0, 0x00, 0xdb, 0x11, 0x41, + 0xa2, 0x66, 0x92, 0x8a, 0x1e, 0xf9, 0x2b, 0x50, 0x9f, 0xc1, 0x9a, 0x64, 0x3b, 0xce, 0xf4, 0x1d, + 0x98, 0x4d, 0x3c, 0x10, 0xa4, 0xc5, 0xc8, 0x68, 0xdb, 0x97, 0x06, 0xdb, 0x56, 0x9b, 0xf1, 0xd3, + 0x03, 0x81, 0xfa, 0x2f, 0x0a, 0xcc, 0x69, 0xd8, 0xe8, 0x74, 0x1c, 0x16, 0x11, 0xc5, 0xa7, 0x5b, + 0x80, 0x11, 0x9e, 0xd9, 0x67, 0xdf, 0x39, 0xfe, 0x4b, 0xfe, 0x9e, 0x40, 0xfc, 0x91, 0xae, 0x9c, + 0xd6, 0x1f, 0x3d, 0x59, 0x70, 0xa1, 0x2e, 0xc2, 0x7c, 0xe6, 0x68, 0xdc, 0x9a, 0xfc, 0x54, 0x81, + 0x65, 0x0d, 0xb7, 0x7c, 0x1c, 0x1c, 0xc4, 0x45, 0x0e, 0xc2, 0x8d, 0xaf, 0xe0, 0xd9, 0xd5, 0x15, + 0x38, 0x27, 0x26, 0x95, 0x9f, 0xe5, 0x1d, 0x58, 0xdc, 0xf2, 0xba, 0x2e, 0x11, 0x9e, 0xac, 0x80, + 0xae, 0x00, 0xb4, 0x3c, 0xdf, 0xc4, 0xb7, 0x71, 0x68, 0x1e, 0xf0, 0x8c, 0x6d, 0x62, 0x44, 0x35, + 0xa0, 0x96, 0x07, 0xe5, 0xc2, 0x76, 0x0b, 0x46, 0xb1, 0x1b, 0xd2, 0x5a, 0x2e, 0x13, 0xb1, 0x57, + 0x0b, 0x44, 0x8c, 0x7b, 0x21, 0xdb, 0x77, 0x1f, 0x51, 0x5c, 0xbc, 0x5e, 0xcb, 0x61, 0xd5, 0x9f, + 0x0e, 0xc1, 0x82, 0x86, 0x0d, 0x4b, 0x40, 0xdd, 0x26, 0x9c, 0x89, 0xbb, 0x23, 0xaa, 0x9b, 0x2b, + 0x45, 0xbe, 0xc5, 0xdd, 0x47, 0xd4, 0xea, 0xd2, 0xb5, 0xb2, 0x50, 0x2c, 0x1f, 0xcc, 0x55, 0x44, + 0xc1, 0xdc, 0x2e, 0xd4, 0x6c, 0x97, 0xac, 0xb0, 0x0f, 0xb1, 0x8e, 0xdd, 0xd8, 0x82, 0x0d, 0xd8, + 0x51, 0x36, 0x1f, 0x03, 0xdf, 0x72, 0x23, 0x53, 0xd4, 0xb4, 0x88, 0x60, 0x74, 0x08, 0x12, 0x5a, + 0x93, 0x1e, 0xa6, 0x84, 0x8d, 0x91, 0x81, 0x1d, 0xfb, 0x53, 0x8c, 0x5e, 0x82, 0x69, 0xda, 0x17, + 0x41, 0x57, 0xb0, 0xf2, 0xfd, 0x08, 0x2d, 0xdf, 0xd3, 0x76, 0x89, 0x87, 0xc6, 0x3e, 0x66, 0xdd, + 0x7c, 0x7f, 0x3d, 0x04, 0x8b, 0x39, 0x5e, 0xf1, 0xeb, 0x38, 0x09, 0xb3, 0x84, 0xf6, 0x62, 0xe8, + 0x74, 0xf6, 0x02, 0x7d, 0x17, 0x16, 0x72, 0x48, 0xa3, 0x1c, 0xe1, 0x71, 0x0d, 0xe0, 0x5c, 0x16, + 0x3b, 0x4d, 0x11, 0x0a, 0xd8, 0x75, 0x46, 0xc4, 0xae, 0x5f, 0x28, 0xb0, 0xf8, 0xb0, 0xeb, 0xef, + 0xe3, 0xaf, 0xb7, 0x6c, 0xa9, 0x75, 0xa8, 0xe5, 0x8f, 0xc9, 0x95, 0xff, 0x8b, 0x21, 0x58, 0xbc, + 0x87, 0xbf, 0xf6, 0x3c, 0xf8, 0x9f, 0xd1, 0xaf, 0x9b, 0x50, 0xcb, 0xf3, 0x8a, 0xeb, 0x97, 0x00, + 0x87, 0x22, 0xc2, 0xf1, 0x99, 0x02, 0xe7, 0xee, 0x7b, 0xa1, 0xdd, 0xea, 0x91, 0x70, 0xdb, 0x3b, + 0xc4, 0xfe, 0x3d, 0x83, 0xc4, 0xd2, 0x31, 0xd7, 0xbf, 0x0b, 0x0b, 0x2d, 0x3e, 0xa3, 0xb7, 0xe9, + 0x94, 0x9e, 0x72, 0xd8, 0x8a, 0xf4, 0x23, 0x8d, 0x8e, 0xf9, 0x6c, 0x73, 0xad, 0xfc, 0x60, 0xa0, + 0x5e, 0x80, 0xf3, 0x05, 0x14, 0x70, 0xa1, 0x30, 0x60, 0xf9, 0x0e, 0x0e, 0xb7, 0x7c, 0x2f, 0x08, + 0xf8, 0xad, 0xa4, 0x3e, 0x6e, 0xa9, 0xc0, 0x4f, 0xc9, 0x04, 0x7e, 0x17, 0xa1, 0x1a, 0x1a, 0xfe, + 0x3e, 0x0e, 0xe3, 0x5b, 0x66, 0x9f, 0xb9, 0x29, 0x36, 0xca, 0xf1, 0xa9, 0xbf, 0xac, 0xc0, 0x39, + 0xf1, 0x1e, 0x9c, 0x9f, 0x6d, 0x82, 0x87, 0x98, 0x86, 0xbd, 0x1e, 0x0b, 0x43, 0xf9, 0xf1, 0xef, + 0xc8, 0x1c, 0xc4, 0x42, 0x74, 0xd4, 0xf9, 0x0e, 0x6e, 0xf6, 0xa8, 0x03, 0xc8, 0xbe, 0x30, 0x93, + 0x61, 0x62, 0x08, 0x7d, 0xa6, 0xc0, 0x7c, 0x8b, 0x16, 0xc4, 0x74, 0xd3, 0xe8, 0x06, 0xb8, 0xbf, + 0x2d, 0xb3, 0x77, 0xf7, 0x4e, 0xb6, 0x2d, 0xab, 0xb1, 0x6d, 0x11, 0x8c, 0xa9, 0xcd, 0x51, 0x2b, + 0x37, 0x51, 0xef, 0xc0, 0x6c, 0x8e, 0x4a, 0x81, 0x7b, 0x7a, 0x2b, 0xed, 0x9e, 0x6e, 0x14, 0x88, + 0x43, 0x96, 0x26, 0x7e, 0x79, 0x49, 0x1f, 0xb5, 0xde, 0x81, 0xc5, 0x02, 0x02, 0x05, 0xfb, 0x5e, + 0x4f, 0xee, 0x5b, 0x2d, 0x4c, 0xf7, 0xde, 0xc1, 0x61, 0xbf, 0xb8, 0x48, 0xf1, 0x26, 0xbd, 0xe2, + 0x7f, 0x57, 0x60, 0x9d, 0x97, 0xf3, 0x72, 0x4c, 0xcb, 0xd5, 0x21, 0x24, 0x91, 0xd9, 0x60, 0x52, + 0x86, 0x1e, 0x33, 0x21, 0x8a, 0xfb, 0x2e, 0xa2, 0x5c, 0xf5, 0xe0, 0x4c, 0xe3, 0xdd, 0x16, 0x53, + 0x61, 0xe2, 0x57, 0x80, 0x5e, 0x84, 0xa9, 0x16, 0x71, 0x80, 0xee, 0x63, 0xe6, 0x4b, 0xf1, 0xf2, + 0x53, 0x7a, 0x50, 0xf5, 0xe1, 0x95, 0x01, 0xce, 0x1a, 0xbb, 0x4b, 0xc3, 0x91, 0x3f, 0x7e, 0xb2, + 0x6b, 0xa5, 0xd0, 0xea, 0x5b, 0xf4, 0xd9, 0x59, 0xa4, 0xd8, 0xf4, 0x23, 0x39, 0x40, 0x6e, 0x4c, + 0x0d, 0xe9, 0xbb, 0xad, 0x34, 0x58, 0xec, 0x38, 0xcc, 0xf7, 0xcb, 0x2e, 0x51, 0x22, 0xa6, 0xcb, + 0xfb, 0xa8, 0x86, 0xb5, 0x7e, 0x4d, 0x66, 0x87, 0x65, 0x61, 0xba, 0x2e, 0xcd, 0x8b, 0x47, 0x0f, + 0x23, 0x79, 0x0a, 0x89, 0xe5, 0x87, 0xa6, 0xf8, 0x28, 0xcb, 0x20, 0xa9, 0x4d, 0x58, 0xd0, 0x8c, + 0x10, 0x3b, 0x76, 0xdb, 0x0e, 0x3f, 0xea, 0x58, 0x89, 0x44, 0xde, 0x06, 0x9c, 0xb1, 0x8c, 0xd0, + 0xe0, 0xcc, 0x58, 0x2e, 0x6a, 0xc4, 0xbc, 0xe1, 0xf6, 0x34, 0xba, 0x50, 0xfd, 0x10, 0x16, 0x73, + 0xa8, 0xf8, 0x01, 0x8e, 0x8b, 0x6b, 0xf3, 0x1f, 0x1a, 0x00, 0xdc, 0x29, 0xbd, 0xf1, 0xb0, 0x89, + 0xbe, 0xa7, 0xc0, 0x82, 0xf8, 0xdd, 0x39, 0xba, 0x72, 0xb2, 0x7f, 0x14, 0x51, 0x7f, 0xfb, 0xd8, + 0x70, 0xfc, 0x2c, 0x7f, 0xa0, 0xc0, 0x62, 0xc1, 0x3f, 0x26, 0x40, 0x6f, 0x97, 0x3d, 0xea, 0x2f, + 0xa2, 0xe6, 0xea, 0xf1, 0x01, 0x39, 0x39, 0x3f, 0x51, 0x60, 0xb5, 0xec, 0x71, 0x3e, 0xfa, 0xce, + 0x69, 0xff, 0xd9, 0x40, 0xfd, 0xc6, 0x29, 0x30, 0x70, 0x4a, 0xc9, 0x25, 0x8a, 0x9f, 0xdd, 0x4b, + 0x2e, 0x51, 0xfa, 0xdc, 0x5f, 0x72, 0x89, 0x25, 0xef, 0xfb, 0xff, 0x44, 0x81, 0x7a, 0xf1, 0xe3, + 0x74, 0x54, 0xdc, 0x15, 0x56, 0xfa, 0x68, 0xbf, 0xfe, 0xde, 0x89, 0x60, 0x39, 0x5d, 0x3f, 0x52, + 0x60, 0xa9, 0xf0, 0xe9, 0x39, 0x7a, 0xa7, 0x10, 0x75, 0xd9, 0xcb, 0xf7, 0xfa, 0xbb, 0x27, 0x01, + 0xe5, 0x44, 0xb9, 0x30, 0x95, 0x7a, 0x93, 0x8c, 0x5e, 0x2b, 0x44, 0x26, 0x7a, 0xfa, 0x5c, 0x6f, + 0x0c, 0xba, 0x9c, 0xef, 0xf7, 0x99, 0x02, 0x67, 0x05, 0x0f, 0x7b, 0xd1, 0x1b, 0xf2, 0xdb, 0x16, + 0x3e, 0x25, 0xae, 0xbf, 0x79, 0x3c, 0x20, 0x4e, 0x42, 0x08, 0xd3, 0x99, 0x47, 0xb4, 0x68, 0x43, + 0xe6, 0x7e, 0x08, 0x2a, 0x21, 0xf5, 0xd7, 0x07, 0x07, 0xe0, 0xbb, 0x1e, 0xc1, 0x4c, 0xf6, 0x25, + 0x18, 0x2a, 0xc6, 0x52, 0xf0, 0x56, 0xae, 0x7e, 0xf9, 0x18, 0x10, 0x09, 0xb1, 0x2b, 0xec, 0x77, + 0x94, 0x88, 0x5d, 0xd9, 0x6b, 0x94, 0xfa, 0x29, 0xda, 0x2b, 0xd1, 0x9f, 0x2b, 0x70, 0x4e, 0xd6, + 0x0e, 0x89, 0xae, 0x9d, 0xb0, 0x8b, 0x92, 0x91, 0xf6, 0xfe, 0xa9, 0x7a, 0x30, 0x39, 0xcb, 0x0a, + 0x7a, 0x06, 0xa5, 0x2c, 0x93, 0x77, 0x2c, 0x4a, 0x59, 0x56, 0xd2, 0xa2, 0x98, 0xb8, 0x47, 0x41, + 0x43, 0x76, 0xe9, 0x3d, 0x16, 0xb7, 0xc2, 0x97, 0xde, 0xa3, 0xac, 0xff, 0x3b, 0x71, 0x8f, 0xc2, + 0xb6, 0xbd, 0xf2, 0x7b, 0x94, 0xb5, 0x0e, 0x96, 0xdf, 0xa3, 0xb4, 0x57, 0x30, 0x79, 0x8f, 0xf9, + 0xce, 0xbc, 0xf2, 0x7b, 0x2c, 0xec, 0x0b, 0x2c, 0xbf, 0xc7, 0xe2, 0x46, 0x40, 0xf4, 0x67, 0x34, + 0xb7, 0x59, 0xd8, 0x72, 0x87, 0xde, 0x3b, 0xd6, 0x99, 0xd3, 0x4d, 0x7f, 0xf5, 0x6b, 0x27, 0x03, + 0x4e, 0x91, 0x56, 0xd8, 0x6f, 0x2a, 0x25, 0xad, 0xac, 0xe3, 0x55, 0x4a, 0x5a, 0x79, 0x8b, 0xeb, + 0x5f, 0x2a, 0xb0, 0x22, 0x6f, 0x34, 0x43, 0xdf, 0x96, 0x6c, 0x30, 0x40, 0xb7, 0x5d, 0xfd, 0xfa, + 0x89, 0xe1, 0x39, 0x8d, 0x3f, 0x50, 0xa0, 0x56, 0xd4, 0x6e, 0x88, 0xae, 0x4a, 0xb0, 0x4b, 0xfb, + 0x2a, 0xeb, 0xef, 0x9c, 0x00, 0x92, 0x53, 0xf4, 0xb9, 0x02, 0x73, 0xa2, 0xa6, 0x35, 0x54, 0xfc, + 0xe5, 0x94, 0xb4, 0xe8, 0xd5, 0xdf, 0x3a, 0x26, 0x14, 0xa7, 0xe2, 0x2f, 0xe8, 0xff, 0x87, 0x92, + 0x34, 0x65, 0xa1, 0xf7, 0x4b, 0x64, 0x43, 0xde, 0x51, 0x57, 0xff, 0xf6, 0x49, 0xc1, 0x39, 0x81, + 0x9f, 0xc2, 0x6c, 0xae, 0x3f, 0x09, 0x5d, 0x96, 0x20, 0x15, 0xb7, 0x8d, 0xd5, 0x37, 0x8f, 0x03, + 0xd2, 0xf7, 0x46, 0x32, 0x1d, 0x47, 0x12, 0x6f, 0x44, 0xdc, 0x27, 0x25, 0xf1, 0x46, 0x0a, 0x9a, + 0x99, 0xd0, 0x13, 0x98, 0x4c, 0x76, 0x80, 0xa0, 0x6f, 0x49, 0x31, 0x64, 0x5a, 0x9e, 0xea, 0xaf, + 0x0d, 0xb8, 0x3a, 0x21, 0x85, 0xa2, 0x16, 0x0e, 0x89, 0x14, 0x4a, 0xba, 0x50, 0x24, 0x52, 0x28, + 0xed, 0x13, 0x21, 0x9e, 0xa7, 0xa0, 0x33, 0x43, 0xe2, 0x79, 0x16, 0xb7, 0x79, 0xd4, 0xdf, 0x3c, + 0x1e, 0x50, 0xfc, 0x54, 0x05, 0xfa, 0x8d, 0x0e, 0xe8, 0x52, 0x21, 0x8e, 0x5c, 0xf7, 0x44, 0xfd, + 0xd5, 0x81, 0xd6, 0xf6, 0xb7, 0xe9, 0x77, 0x12, 0x48, 0xb6, 0xc9, 0x75, 0x57, 0x48, 0xb6, 0xc9, + 0xb7, 0x26, 0xb0, 0x6d, 0xa2, 0x46, 0x00, 0xe9, 0x36, 0x99, 0xf6, 0x05, 0xe9, 0x36, 0xd9, 0xce, + 0x02, 0x12, 0xa1, 0xa4, 0x8a, 0xf8, 0x92, 0x08, 0x45, 0xd4, 0x80, 0x20, 0x89, 0x50, 0xc4, 0xbd, + 0x01, 0xdf, 0x63, 0xff, 0x5a, 0x48, 0x50, 0xe8, 0x95, 0x84, 0xb2, 0xd2, 0xa6, 0x00, 0x49, 0x28, + 0x5b, 0x52, 0xc6, 0x27, 0x0e, 0x4c, 0x61, 0xdd, 0x59, 0xe2, 0xc0, 0x94, 0x95, 0xc6, 0x25, 0x0e, + 0x4c, 0x79, 0x99, 0xdb, 0x85, 0xa9, 0x54, 0xd5, 0x56, 0x72, 0x21, 0xa2, 0xc2, 0xb5, 0xe4, 0x42, + 0x84, 0xc5, 0x60, 0x6a, 0x3e, 0x44, 0x15, 0x56, 0x24, 0x0b, 0xff, 0x0a, 0x6b, 0xc7, 0x12, 0xf3, + 0x21, 0x2b, 0xe3, 0x92, 0xf8, 0x2d, 0x5b, 0x8b, 0x95, 0xc4, 0x6f, 0x05, 0x15, 0x5f, 0x49, 0xfc, + 0x56, 0x58, 0xe8, 0x0d, 0x61, 0x3a, 0x53, 0x74, 0x94, 0x7c, 0x20, 0xc4, 0xa5, 0x5c, 0xc9, 0x07, + 0xa2, 0xa8, 0x9e, 0x49, 0xc2, 0xd5, 0x4c, 0x51, 0x4b, 0x16, 0xae, 0x8a, 0xcb, 0x7c, 0xb2, 0x70, + 0xb5, 0xa0, 0x62, 0x46, 0x36, 0xce, 0x16, 0x81, 0x24, 0x1b, 0x17, 0xd4, 0xd6, 0x24, 0x1b, 0x17, + 0x56, 0x98, 0x7e, 0x5f, 0x81, 0x79, 0x61, 0xdd, 0x06, 0x15, 0x4b, 0x8c, 0xac, 0xd2, 0x54, 0xbf, + 0x72, 0x5c, 0xb0, 0x84, 0xbc, 0x8b, 0xaa, 0x1e, 0x12, 0x79, 0x97, 0x94, 0x93, 0x24, 0xf2, 0x2e, + 0x2d, 0x10, 0x7d, 0xa1, 0xc4, 0xaf, 0x9a, 0x8a, 0xd3, 0xeb, 0xe8, 0x46, 0x59, 0xbc, 0x51, 0x5a, + 0x86, 0xa8, 0xdf, 0x3c, 0x0d, 0x8a, 0x54, 0x4a, 0x27, 0x99, 0x5f, 0x97, 0xa7, 0x74, 0x04, 0x09, + 0x7c, 0x79, 0x4a, 0x47, 0x98, 0xba, 0x27, 0x9a, 0x99, 0x4e, 0x8a, 0xcb, 0x34, 0x53, 0x98, 0x89, + 0x97, 0x69, 0xa6, 0x38, 0xdf, 0x7e, 0xf3, 0xd6, 0xcf, 0xbe, 0x5c, 0x51, 0xfe, 0xf9, 0xcb, 0x15, + 0xe5, 0x5f, 0xbf, 0x5c, 0x51, 0x7e, 0xfd, 0xed, 0x7d, 0x3b, 0x3c, 0xe8, 0xee, 0x35, 0x4c, 0xaf, + 0xbd, 0x91, 0xfa, 0x17, 0xe2, 0x8d, 0x7d, 0xec, 0xb2, 0xff, 0x27, 0x9f, 0xf8, 0x87, 0xf6, 0xef, + 0xf1, 0x3f, 0x0f, 0x2f, 0xef, 0x8d, 0xd0, 0xb9, 0x37, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x62, + 0xe2, 0x64, 0x6e, 0xfc, 0x5e, 0x00, 0x00, } func (m *StartWorkflowExecutionRequest) Marshal() (dAtA []byte, err error) { @@ -8335,6 +8343,11 @@ func (m *RecordChildExecutionCompletedRequest) MarshalToSizedBuffer(dAtA []byte) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.StartedId != 0 { + i = encodeVarintService(dAtA, i, uint64(m.StartedId)) + i-- + dAtA[i] = 0x30 + } if m.CompletionEvent != nil { { size, err := m.CompletionEvent.MarshalToSizedBuffer(dAtA[:i]) @@ -11560,6 +11573,9 @@ func (m *RecordChildExecutionCompletedRequest) Size() (n int) { l = m.CompletionEvent.Size() n += 1 + l + sovService(uint64(l)) } + if m.StartedId != 0 { + n += 1 + sovService(uint64(m.StartedId)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -19523,6 +19539,25 @@ func (m *RecordChildExecutionCompletedRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartedId", wireType) + } + m.StartedId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowService + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.StartedId |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipService(dAtA[iNdEx:]) diff --git a/.gen/proto/history/v1/service.pb.yarpc.go b/.gen/proto/history/v1/service.pb.yarpc.go index df0a048c8c9..cd940b15c59 100644 --- a/.gen/proto/history/v1/service.pb.yarpc.go +++ b/.gen/proto/history/v1/service.pb.yarpc.go @@ -2406,315 +2406,315 @@ var yarpcFileDescriptorClosurefee8ff76963a38ed = [][]byte{ // uber/cadence/history/v1/service.proto []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4d, 0x6f, 0x1c, 0x47, - 0x76, 0xe8, 0x19, 0xf1, 0xeb, 0x91, 0x1c, 0x92, 0x25, 0x7e, 0x0c, 0x87, 0x12, 0x45, 0xf6, 0x5a, - 0x12, 0x2d, 0xaf, 0x87, 0x16, 0x65, 0xeb, 0xcb, 0xf2, 0x6a, 0x25, 0x52, 0x92, 0xc7, 0xd1, 0x67, - 0x93, 0x96, 0x93, 0x20, 0x71, 0x6f, 0x73, 0xba, 0x86, 0xec, 0xa8, 0xa7, 0x7b, 0xd4, 0xdd, 0x43, - 0x6a, 0x7c, 0x08, 0x9c, 0x6c, 0x10, 0x60, 0x17, 0x41, 0x76, 0xb3, 0x48, 0x82, 0x00, 0x01, 0x02, - 0x04, 0x1b, 0x60, 0xb1, 0x46, 0x6e, 0x09, 0x90, 0x43, 0x92, 0x53, 0x2e, 0xf9, 0x0b, 0xb9, 0x7b, - 0x0f, 0x09, 0x90, 0x53, 0xf6, 0x1c, 0x04, 0xf5, 0xd1, 0x3d, 0xfd, 0x51, 0x5d, 0x3d, 0x24, 0x83, - 0xc8, 0xeb, 0xf8, 0xc6, 0xa9, 0xaa, 0xf7, 0xea, 0xd5, 0xab, 0xf7, 0x5e, 0xbf, 0xaf, 0x22, 0x9c, - 0xef, 0xee, 0x62, 0x6f, 0xbd, 0x69, 0x98, 0xd8, 0x69, 0xe2, 0xf5, 0x7d, 0xcb, 0x0f, 0x5c, 0xaf, - 0xb7, 0x7e, 0x70, 0x79, 0xdd, 0xc7, 0xde, 0x81, 0xd5, 0xc4, 0xf5, 0x8e, 0xe7, 0x06, 0x2e, 0x5a, - 0x20, 0xcb, 0xea, 0x7c, 0x59, 0x9d, 0x2f, 0xab, 0x1f, 0x5c, 0xae, 0x2d, 0xef, 0xb9, 0xee, 0x9e, - 0x8d, 0xd7, 0xe9, 0xb2, 0xdd, 0x6e, 0x6b, 0xdd, 0xec, 0x7a, 0x46, 0x60, 0xb9, 0x0e, 0x03, 0xac, - 0x9d, 0x4b, 0xcf, 0x07, 0x56, 0x1b, 0xfb, 0x81, 0xd1, 0xee, 0xf0, 0x05, 0x19, 0x04, 0x87, 0x9e, - 0xd1, 0xe9, 0x60, 0xcf, 0xe7, 0xf3, 0x2b, 0x09, 0x02, 0x8d, 0x8e, 0x45, 0x88, 0x6b, 0xba, 0xed, - 0x76, 0xb4, 0xc5, 0xaa, 0x68, 0x45, 0x48, 0x22, 0xa7, 0x42, 0xb4, 0xe4, 0x65, 0x17, 0x47, 0x0b, - 0x54, 0xd1, 0x82, 0xc0, 0xf0, 0x5f, 0xd8, 0x96, 0x1f, 0xc8, 0xd6, 0x1c, 0xba, 0xde, 0x8b, 0x96, - 0xed, 0x1e, 0xf2, 0x35, 0x97, 0x44, 0x6b, 0x38, 0x2b, 0xf5, 0xd4, 0xda, 0xb5, 0xa2, 0xb5, 0xd8, - 0xe3, 0x2b, 0xbf, 0x95, 0x5c, 0x69, 0xb6, 0x2d, 0x87, 0x72, 0xc1, 0xee, 0xfa, 0x41, 0xd1, 0xa2, - 0x24, 0x23, 0x56, 0xc5, 0x8b, 0x5e, 0x76, 0x71, 0x97, 0x5f, 0x75, 0xed, 0xa2, 0x78, 0x89, 0x87, - 0x3b, 0xb6, 0xd5, 0x8c, 0x5f, 0x6d, 0xf2, 0x66, 0xfc, 0x7d, 0xc3, 0xc3, 0x26, 0x59, 0x69, 0x38, - 0xe1, 0x6e, 0x6f, 0xe4, 0xac, 0x48, 0xd2, 0x74, 0x3e, 0x67, 0x55, 0x92, 0x5d, 0xea, 0x97, 0xc3, - 0x70, 0x76, 0x3b, 0x30, 0xbc, 0xe0, 0x13, 0x3e, 0x7e, 0xef, 0x15, 0x6e, 0x76, 0x09, 0x3d, 0x1a, - 0x7e, 0xd9, 0xc5, 0x7e, 0x80, 0x1e, 0xc2, 0x88, 0xc7, 0xfe, 0xac, 0x2a, 0x2b, 0xca, 0xda, 0xf8, - 0xc6, 0x46, 0x3d, 0x21, 0xb6, 0x46, 0xc7, 0xaa, 0x1f, 0x5c, 0xae, 0x4b, 0x91, 0x68, 0x21, 0x0a, - 0xb4, 0x04, 0x63, 0xa6, 0xdb, 0x36, 0x2c, 0x47, 0xb7, 0xcc, 0x6a, 0x69, 0x45, 0x59, 0x1b, 0xd3, - 0x46, 0xd9, 0x40, 0xc3, 0x44, 0xbf, 0x05, 0x73, 0x1d, 0xc3, 0xc3, 0x4e, 0xa0, 0xe3, 0x10, 0x81, - 0x6e, 0x39, 0x2d, 0xb7, 0x5a, 0xa6, 0x1b, 0xaf, 0x09, 0x37, 0x7e, 0x4a, 0x21, 0xa2, 0x1d, 0x1b, - 0x4e, 0xcb, 0xd5, 0x4e, 0x77, 0xb2, 0x83, 0xa8, 0x0a, 0x23, 0x46, 0x10, 0xe0, 0x76, 0x27, 0xa8, - 0x9e, 0x5a, 0x51, 0xd6, 0x86, 0xb4, 0xf0, 0x27, 0xda, 0x84, 0x29, 0xfc, 0xaa, 0x63, 0x31, 0x15, - 0xd3, 0x89, 0x2e, 0x55, 0x87, 0xe8, 0x8e, 0xb5, 0x3a, 0xd3, 0xa3, 0x7a, 0xa8, 0x47, 0xf5, 0x9d, - 0x50, 0xd1, 0xb4, 0x4a, 0x1f, 0x84, 0x0c, 0xa2, 0x16, 0x2c, 0x36, 0x5d, 0x27, 0xb0, 0x9c, 0x2e, - 0xd6, 0x0d, 0x5f, 0x77, 0xf0, 0xa1, 0x6e, 0x39, 0x56, 0x60, 0x19, 0x81, 0xeb, 0x55, 0x87, 0x57, - 0x94, 0xb5, 0xca, 0xc6, 0x5b, 0xc2, 0x03, 0x6c, 0x72, 0xa8, 0x3b, 0xfe, 0x63, 0x7c, 0xd8, 0x08, - 0x41, 0xb4, 0xf9, 0xa6, 0x70, 0x1c, 0x35, 0x60, 0x26, 0x9c, 0x31, 0xf5, 0x96, 0x61, 0xd9, 0x5d, - 0x0f, 0x57, 0x47, 0x28, 0xb9, 0x67, 0x84, 0xf8, 0xef, 0xb3, 0x35, 0xda, 0x74, 0x04, 0xc6, 0x47, - 0x90, 0x06, 0xf3, 0xb6, 0xe1, 0x07, 0x7a, 0xd3, 0x6d, 0x77, 0x6c, 0x4c, 0x0f, 0xef, 0x61, 0xbf, - 0x6b, 0x07, 0xd5, 0x51, 0x09, 0xbe, 0xa7, 0x46, 0xcf, 0x76, 0x0d, 0x53, 0x9b, 0x25, 0xb0, 0x9b, - 0x11, 0xa8, 0x46, 0x21, 0xd1, 0xaf, 0xc3, 0x52, 0xcb, 0xf2, 0xfc, 0x40, 0x37, 0x71, 0xd3, 0xf2, - 0x29, 0x3f, 0x0d, 0xff, 0x85, 0xbe, 0x6b, 0x34, 0x5f, 0xb8, 0xad, 0x56, 0x75, 0x8c, 0x22, 0x5e, - 0xcc, 0xf0, 0x75, 0x8b, 0x1b, 0x38, 0xad, 0x4a, 0xa1, 0xb7, 0x38, 0xf0, 0x8e, 0xe1, 0xbf, 0xb8, - 0xcb, 0x40, 0xd1, 0x01, 0x4c, 0x77, 0x0c, 0x2f, 0xb0, 0x28, 0x9d, 0x4d, 0xd7, 0x69, 0x59, 0x7b, - 0x55, 0x58, 0x29, 0xaf, 0x8d, 0x6f, 0xfc, 0x5a, 0x3d, 0xc7, 0x90, 0xca, 0xa5, 0x92, 0x88, 0x0e, - 0x43, 0xb7, 0x49, 0xb1, 0xdd, 0x73, 0x02, 0xaf, 0xa7, 0x4d, 0x75, 0x92, 0xa3, 0xb5, 0xbb, 0x30, - 0x2b, 0x5a, 0x88, 0xa6, 0xa1, 0xfc, 0x02, 0xf7, 0xa8, 0x52, 0x8c, 0x69, 0xe4, 0x4f, 0x34, 0x0b, - 0x43, 0x07, 0x86, 0xdd, 0xc5, 0x5c, 0xb0, 0xd9, 0x8f, 0x9b, 0xa5, 0xeb, 0x8a, 0x7a, 0x0d, 0x96, - 0xf3, 0x48, 0xf1, 0x3b, 0xae, 0xe3, 0x63, 0x34, 0x07, 0xc3, 0x5e, 0x97, 0x6a, 0x05, 0x43, 0x38, - 0xe4, 0x75, 0x9d, 0x86, 0xa9, 0xfe, 0x4d, 0x09, 0x96, 0xb7, 0xad, 0x3d, 0xc7, 0xb0, 0x73, 0x15, - 0xf4, 0x51, 0x5a, 0x41, 0xaf, 0x88, 0x15, 0x54, 0x8a, 0x65, 0x40, 0x0d, 0x6d, 0xc1, 0x12, 0x7e, - 0x15, 0x60, 0xcf, 0x31, 0xec, 0xc8, 0xf0, 0xf6, 0x95, 0x95, 0xeb, 0xe9, 0x05, 0xe1, 0xfe, 0xd9, - 0x9d, 0x17, 0x43, 0x54, 0x99, 0x29, 0x54, 0x87, 0xd3, 0xcd, 0x7d, 0xcb, 0x36, 0xfb, 0x9b, 0xb8, - 0x8e, 0xdd, 0xa3, 0x7a, 0x3b, 0xaa, 0xcd, 0xd0, 0xa9, 0x10, 0xe8, 0x89, 0x63, 0xf7, 0xd4, 0x55, - 0x38, 0x97, 0x7b, 0x3e, 0xc6, 0x60, 0xf5, 0x17, 0x25, 0xb8, 0xc8, 0xd7, 0x58, 0xc1, 0xbe, 0xdc, - 0xe6, 0x3d, 0x4f, 0xb3, 0xf4, 0x96, 0x8c, 0xa5, 0x45, 0xe8, 0x06, 0xe4, 0xed, 0xe7, 0x8a, 0x40, - 0xc0, 0xcb, 0x54, 0xc0, 0x3f, 0xce, 0x17, 0xf0, 0xc1, 0x48, 0xf8, 0x3f, 0x14, 0xf5, 0x3b, 0xb0, - 0x56, 0x4c, 0x94, 0x5c, 0xe8, 0x7f, 0xa8, 0xc0, 0x59, 0x0d, 0xfb, 0xf8, 0xc4, 0x1f, 0x25, 0x29, - 0x92, 0xc1, 0xae, 0x85, 0xa8, 0x6e, 0x1e, 0x1a, 0xf9, 0x29, 0xbe, 0x28, 0xc1, 0xea, 0x0e, 0xf6, - 0xda, 0x96, 0x63, 0x04, 0x38, 0xf7, 0x24, 0x4f, 0xd3, 0x27, 0xb9, 0x2a, 0x3c, 0x49, 0x21, 0xa2, - 0x5f, 0x71, 0x05, 0x7e, 0x03, 0x54, 0xd9, 0x11, 0xb9, 0x0e, 0xff, 0x58, 0x81, 0x95, 0x2d, 0xec, - 0x37, 0x3d, 0x6b, 0x37, 0x9f, 0xa3, 0x4f, 0xd2, 0x1c, 0x7d, 0x4f, 0x78, 0x9c, 0x22, 0x3c, 0x03, - 0x8a, 0xc7, 0x7f, 0x97, 0x61, 0x55, 0x82, 0x8a, 0x8b, 0x88, 0x0d, 0x0b, 0x7d, 0x97, 0x86, 0xa9, - 0x36, 0xff, 0xe0, 0x49, 0x6d, 0x76, 0x06, 0xe1, 0x66, 0x1c, 0x54, 0x9b, 0xc7, 0xc2, 0x71, 0xb4, - 0x0b, 0x0b, 0xd9, 0xbb, 0x65, 0x9e, 0x54, 0x89, 0xee, 0x76, 0x69, 0xb0, 0xdd, 0xa8, 0x2f, 0x35, - 0x77, 0x28, 0x1a, 0x46, 0x9f, 0x00, 0xea, 0x60, 0xc7, 0xb4, 0x9c, 0x3d, 0xdd, 0x68, 0x06, 0xd6, - 0x81, 0x15, 0x58, 0xd8, 0xe7, 0xe6, 0x2a, 0xc7, 0x51, 0x63, 0xcb, 0xef, 0xb0, 0xd5, 0x3d, 0x8a, - 0x7c, 0xa6, 0x93, 0x18, 0xb4, 0xb0, 0x8f, 0x7e, 0x03, 0xa6, 0x43, 0xc4, 0x54, 0x4c, 0x3c, 0xec, - 0x54, 0x4f, 0x51, 0xb4, 0x75, 0x19, 0xda, 0x4d, 0xb2, 0x36, 0x49, 0xf9, 0x54, 0x27, 0x36, 0xe5, - 0x61, 0x07, 0x6d, 0xf7, 0x51, 0x87, 0xde, 0x09, 0x77, 0xf4, 0xa4, 0x14, 0x87, 0xce, 0x48, 0x02, - 0x69, 0x38, 0xa8, 0xbe, 0x82, 0xd9, 0x67, 0x24, 0xe6, 0x09, 0xb9, 0x17, 0x8a, 0xe1, 0x66, 0x5a, - 0x0c, 0xdf, 0x14, 0xee, 0x21, 0x82, 0x1d, 0x50, 0xf4, 0x7e, 0xaa, 0xc0, 0x5c, 0x0a, 0x9c, 0x8b, - 0xdb, 0x6d, 0x98, 0xa0, 0x71, 0x58, 0xe8, 0xce, 0x29, 0x03, 0xb8, 0x73, 0xe3, 0x14, 0x82, 0x7b, - 0x71, 0x0d, 0xa8, 0x84, 0x08, 0x7e, 0x07, 0x37, 0x03, 0x6c, 0x72, 0xc1, 0x51, 0xf3, 0xcf, 0xa0, - 0xf1, 0x95, 0xda, 0xe4, 0xcb, 0xf8, 0x4f, 0xf5, 0x0f, 0x14, 0xa8, 0x51, 0x03, 0xba, 0x1d, 0x58, - 0xcd, 0x17, 0x3d, 0xe2, 0xd1, 0x3d, 0xb4, 0xfc, 0x20, 0x64, 0x53, 0x23, 0xcd, 0xa6, 0xf5, 0x7c, - 0x4b, 0x2e, 0xc4, 0x30, 0x20, 0xb3, 0xce, 0xc2, 0x92, 0x10, 0x07, 0xb7, 0x2c, 0xff, 0xa5, 0xc0, - 0xfc, 0x03, 0x1c, 0x3c, 0xea, 0x06, 0xc6, 0xae, 0x8d, 0xb7, 0x03, 0x23, 0xc0, 0x9a, 0x08, 0xad, - 0x92, 0xb2, 0xa7, 0x1f, 0x03, 0x12, 0x98, 0xd1, 0xd2, 0x91, 0xcc, 0xe8, 0x4c, 0x46, 0xc3, 0xd0, - 0x15, 0x98, 0xc7, 0xaf, 0x3a, 0x94, 0x81, 0xba, 0x83, 0x5f, 0x05, 0x3a, 0x3e, 0x20, 0x61, 0x91, - 0x65, 0x52, 0x0b, 0x5d, 0xd6, 0x4e, 0x87, 0xb3, 0x8f, 0xf1, 0xab, 0xe0, 0x1e, 0x99, 0x6b, 0x98, - 0xe8, 0x1d, 0x98, 0x6d, 0x76, 0x3d, 0x1a, 0x3f, 0xed, 0x7a, 0x86, 0xd3, 0xdc, 0xd7, 0x03, 0xf7, - 0x05, 0xd5, 0x1e, 0x65, 0x6d, 0x42, 0x43, 0x7c, 0xee, 0x2e, 0x9d, 0xda, 0x21, 0x33, 0xea, 0x3f, - 0x8c, 0xc1, 0x42, 0xe6, 0xd4, 0x5c, 0x86, 0xc4, 0x27, 0x53, 0x4e, 0x7a, 0xb2, 0xfb, 0x30, 0x19, - 0xa1, 0x0d, 0x7a, 0x1d, 0xcc, 0x79, 0xb5, 0x2a, 0xc5, 0xb8, 0xd3, 0xeb, 0x60, 0x6d, 0xe2, 0x30, - 0xf6, 0x0b, 0xa9, 0x30, 0x29, 0x62, 0xcc, 0xb8, 0x13, 0x63, 0xc8, 0x73, 0x58, 0xec, 0x78, 0xf8, - 0xc0, 0x72, 0xbb, 0xbe, 0xee, 0x13, 0x4f, 0x04, 0x9b, 0xfd, 0xf5, 0xa7, 0xe8, 0xbe, 0x4b, 0x99, - 0x48, 0xa4, 0xe1, 0x04, 0x57, 0xdf, 0x7d, 0x4e, 0xdc, 0x19, 0x6d, 0x3e, 0x84, 0xde, 0x66, 0xc0, - 0x21, 0xde, 0xb7, 0xe1, 0x34, 0x8d, 0x9b, 0x58, 0xa0, 0x13, 0x61, 0x1c, 0xa2, 0x14, 0x4c, 0x93, - 0xa9, 0xfb, 0x64, 0x26, 0x5c, 0x7e, 0x13, 0xc6, 0x68, 0x0c, 0x64, 0x5b, 0x7e, 0x40, 0x23, 0xc1, - 0xf1, 0x8d, 0xb3, 0xe2, 0x8f, 0x7c, 0x28, 0x95, 0xa3, 0x01, 0xff, 0x0b, 0x3d, 0x80, 0x69, 0x9f, - 0x4a, 0xac, 0xde, 0x47, 0x31, 0x32, 0x08, 0x8a, 0x8a, 0x9f, 0x10, 0x74, 0xf4, 0x2e, 0xcc, 0x37, - 0x6d, 0x8b, 0x50, 0x6a, 0x5b, 0xbb, 0x9e, 0xe1, 0xf5, 0xf4, 0x03, 0xec, 0x51, 0x0b, 0x38, 0x4a, - 0x45, 0x7a, 0x96, 0xcd, 0x3e, 0x64, 0x93, 0xcf, 0xd9, 0x5c, 0x0c, 0xaa, 0x85, 0x8d, 0xa0, 0xeb, - 0xe1, 0x08, 0x6a, 0x2c, 0x0e, 0x75, 0x9f, 0x4d, 0x86, 0x50, 0xe7, 0x60, 0x9c, 0x43, 0x59, 0xed, - 0x8e, 0x5d, 0x05, 0xba, 0x14, 0xd8, 0x50, 0xa3, 0xdd, 0xb1, 0x91, 0x0f, 0x97, 0xd2, 0xa7, 0xd2, - 0xfd, 0xe6, 0x3e, 0x36, 0xbb, 0x36, 0xd6, 0x03, 0x97, 0x5d, 0x16, 0x0d, 0xc4, 0xdd, 0x6e, 0x50, - 0x1d, 0x2f, 0x8a, 0x19, 0xdf, 0x48, 0x9e, 0x75, 0x9b, 0x63, 0xda, 0x71, 0xe9, 0xbd, 0xed, 0x30, - 0x34, 0xc4, 0x25, 0x61, 0x57, 0x45, 0x9c, 0xe7, 0xfe, 0x41, 0x26, 0x68, 0x2e, 0x60, 0x86, 0x4e, - 0x6d, 0x93, 0x99, 0xf0, 0x14, 0x79, 0xea, 0x34, 0x99, 0xa7, 0x4e, 0xe8, 0x21, 0x54, 0x22, 0xd9, - 0xf6, 0x89, 0x32, 0x55, 0x2b, 0x34, 0xee, 0x3f, 0x9f, 0xbc, 0x2a, 0x96, 0x8c, 0x89, 0xcb, 0x37, - 0xd3, 0xbc, 0x48, 0x31, 0xe8, 0x4f, 0xd4, 0x84, 0xd9, 0x08, 0x5b, 0xd3, 0x76, 0x7d, 0xcc, 0x71, - 0x4e, 0x51, 0x9c, 0x97, 0x07, 0x74, 0x18, 0x08, 0x20, 0xc1, 0xd7, 0xf5, 0xb5, 0x48, 0x9f, 0xa3, - 0x41, 0xa2, 0xe5, 0x33, 0x9c, 0x11, 0x3a, 0x8b, 0x2a, 0xc8, 0x57, 0x7c, 0x5a, 0xf4, 0x4d, 0xec, - 0x53, 0xcd, 0x19, 0xf4, 0x61, 0xb8, 0x5e, 0x9b, 0x3e, 0x48, 0x8d, 0xa0, 0x5b, 0xb0, 0x64, 0x11, - 0x9d, 0x4b, 0xdd, 0x31, 0x76, 0x88, 0x9d, 0x31, 0xab, 0x33, 0xd4, 0x0d, 0x5c, 0xb0, 0xfc, 0xa4, - 0x35, 0xbe, 0xc7, 0xa6, 0xd1, 0x2a, 0x4c, 0xf0, 0x10, 0x47, 0xf7, 0xad, 0xcf, 0x70, 0x15, 0x31, - 0xd5, 0xe6, 0x63, 0xdb, 0xd6, 0x67, 0x58, 0xfd, 0xa5, 0x02, 0x0b, 0x4f, 0x5d, 0xdb, 0xfe, 0x7f, - 0x66, 0xb0, 0x7f, 0x36, 0x0a, 0xd5, 0xec, 0xb1, 0xbf, 0xb1, 0xd8, 0xdf, 0x58, 0xec, 0xaf, 0xa3, - 0xc5, 0xce, 0xd3, 0x8f, 0x89, 0x5c, 0x0b, 0x2c, 0x34, 0x67, 0x93, 0x27, 0x36, 0x67, 0xbf, 0x7a, - 0x86, 0x5d, 0xfd, 0x97, 0x12, 0xac, 0x68, 0xb8, 0xe9, 0x7a, 0x66, 0x3c, 0x97, 0xca, 0xd5, 0xe2, - 0x75, 0x5a, 0xca, 0x73, 0x30, 0x1e, 0x09, 0x4e, 0x64, 0x04, 0x20, 0x1c, 0x6a, 0x98, 0x68, 0x01, - 0x46, 0xa8, 0x8c, 0x71, 0x8d, 0x2f, 0x6b, 0xc3, 0xe4, 0x67, 0xc3, 0x44, 0x67, 0x01, 0xb8, 0xab, - 0x1f, 0xea, 0xee, 0x98, 0x36, 0xc6, 0x47, 0x1a, 0x26, 0xd2, 0x60, 0xa2, 0xe3, 0xda, 0xb6, 0x1e, - 0x86, 0x13, 0xc3, 0x92, 0x70, 0x82, 0xd8, 0xd0, 0xfb, 0xae, 0x17, 0x67, 0x4d, 0x18, 0x4e, 0x8c, - 0x13, 0x24, 0xfc, 0x87, 0xfa, 0xfb, 0xa3, 0xb0, 0x2a, 0xe1, 0x22, 0x37, 0xbc, 0x19, 0x0b, 0xa9, - 0x1c, 0xcf, 0x42, 0x4a, 0xad, 0x5f, 0xe9, 0xf8, 0xd6, 0xef, 0xdb, 0x80, 0x42, 0xfe, 0x9a, 0x69, - 0xf3, 0x3b, 0x1d, 0xcd, 0x84, 0xab, 0xd7, 0x88, 0x01, 0x13, 0x98, 0xde, 0x32, 0xb1, 0x50, 0x09, - 0xbc, 0x19, 0x8b, 0x3e, 0x94, 0xb5, 0xe8, 0xb1, 0xaa, 0xcb, 0x70, 0xb2, 0xea, 0x72, 0x1d, 0xaa, - 0xdc, 0xa4, 0xf4, 0x73, 0x14, 0xa1, 0x83, 0x30, 0x42, 0x1d, 0x84, 0x79, 0x36, 0x1f, 0xc9, 0x4e, - 0xe8, 0x1f, 0x68, 0x30, 0x19, 0x55, 0x17, 0x68, 0x56, 0x83, 0x95, 0x2b, 0xde, 0xce, 0xd3, 0xc6, - 0x1d, 0xcf, 0x70, 0x7c, 0x62, 0xca, 0x12, 0x91, 0xfc, 0x84, 0x19, 0xfb, 0x85, 0x3e, 0x85, 0x33, - 0x82, 0x9c, 0x49, 0xdf, 0x84, 0x8f, 0x0d, 0x62, 0xc2, 0x17, 0x33, 0xe2, 0x1e, 0x59, 0xf3, 0x1c, - 0xef, 0x13, 0xf2, 0xbc, 0xcf, 0x55, 0x98, 0x48, 0xd8, 0xbc, 0x71, 0x6a, 0xf3, 0xc6, 0x77, 0x63, - 0xc6, 0xee, 0x0e, 0x54, 0xfa, 0xd7, 0x4a, 0xab, 0x56, 0x13, 0x85, 0x55, 0xab, 0xc9, 0x08, 0x82, - 0x16, 0xad, 0x3e, 0x80, 0x89, 0xf0, 0xae, 0x29, 0x82, 0xc9, 0x42, 0x04, 0xe3, 0x7c, 0x3d, 0x05, - 0x37, 0x60, 0x84, 0x04, 0xfb, 0xc4, 0xc8, 0x56, 0x68, 0x8a, 0xe6, 0x41, 0x6e, 0xa2, 0xba, 0x50, - 0x8b, 0x68, 0x16, 0xc1, 0xc2, 0x3e, 0x4b, 0x4d, 0x87, 0x78, 0x33, 0xbe, 0xe0, 0x54, 0xc6, 0x17, - 0xac, 0x7d, 0x0a, 0x13, 0x71, 0x58, 0x41, 0xb6, 0xfa, 0x7a, 0x3c, 0x5b, 0x9d, 0x97, 0xc5, 0x08, - 0x15, 0x93, 0x65, 0x33, 0x62, 0x19, 0xed, 0xbe, 0x29, 0x0d, 0x73, 0x57, 0xdf, 0x98, 0xd2, 0x8c, - 0x29, 0x8d, 0xb3, 0x46, 0x68, 0x4a, 0xbf, 0x2c, 0x87, 0xa6, 0x54, 0xc8, 0x45, 0x6e, 0x4a, 0x3f, - 0x82, 0xa9, 0x94, 0xa9, 0x92, 0x1a, 0x53, 0xf6, 0x89, 0xee, 0x51, 0x63, 0xa3, 0x55, 0x92, 0xa6, - 0x2c, 0x23, 0xdc, 0xa5, 0xa3, 0x09, 0x77, 0xcc, 0x72, 0x95, 0x93, 0x96, 0xeb, 0x53, 0x58, 0x4e, - 0x2a, 0x9e, 0xee, 0xb6, 0xf4, 0x60, 0xdf, 0xf2, 0xf5, 0x78, 0x81, 0x59, 0xbe, 0x55, 0x2d, 0xa1, - 0x88, 0x4f, 0x5a, 0x3b, 0xfb, 0x96, 0x7f, 0x87, 0xe3, 0x6f, 0xc0, 0xcc, 0x3e, 0x36, 0xbc, 0x60, - 0x17, 0x1b, 0x81, 0x6e, 0xe2, 0xc0, 0xb0, 0x6c, 0x9f, 0x27, 0x2a, 0xe5, 0x39, 0xbc, 0xe9, 0x08, - 0x6c, 0x8b, 0x41, 0x65, 0x3f, 0x4d, 0xc3, 0xc7, 0xfb, 0x34, 0x5d, 0x84, 0xa9, 0x08, 0x0f, 0x13, - 0x6b, 0x6a, 0xa3, 0xc7, 0xb4, 0xc8, 0x31, 0xda, 0xa2, 0xa3, 0xea, 0x9f, 0x2b, 0xf0, 0x2d, 0x76, - 0x9b, 0x09, 0x65, 0xe7, 0x75, 0xe2, 0xbe, 0xbe, 0x68, 0xe9, 0xbc, 0xdf, 0xf5, 0xbc, 0xbc, 0x5f, - 0x11, 0xaa, 0x01, 0x13, 0x80, 0x7f, 0x57, 0x86, 0x37, 0xe4, 0xd8, 0xb8, 0x08, 0xe2, 0xfe, 0xf7, - 0xcf, 0xe3, 0x63, 0x9c, 0xc4, 0x9b, 0xc7, 0xb7, 0x6e, 0xda, 0x94, 0x9f, 0x92, 0xf4, 0x9f, 0x2a, - 0xb0, 0xdc, 0xcf, 0x9c, 0x13, 0x1f, 0xda, 0xb4, 0xfc, 0x8e, 0x11, 0x34, 0xf7, 0x75, 0xdb, 0x6d, - 0x1a, 0xb6, 0xdd, 0xab, 0x96, 0xa8, 0x4d, 0xfd, 0x54, 0xb2, 0x6b, 0xf1, 0x71, 0xea, 0xfd, 0xd4, - 0xfa, 0x8e, 0xbb, 0xc5, 0x77, 0x78, 0xc8, 0x36, 0x60, 0xa6, 0x76, 0xc9, 0xc8, 0x5f, 0x51, 0xfb, - 0x5d, 0x58, 0x29, 0x42, 0x20, 0xb0, 0xb7, 0x5b, 0x49, 0x7b, 0x2b, 0x4e, 0xdc, 0x87, 0x66, 0x80, - 0xe2, 0x0a, 0x11, 0xd3, 0x2f, 0x73, 0xcc, 0xf6, 0xfe, 0x58, 0x21, 0xb6, 0x37, 0x73, 0xcc, 0xfb, - 0x86, 0x65, 0xf7, 0x65, 0x69, 0xc0, 0x8a, 0x4f, 0x11, 0x9e, 0x01, 0x05, 0xe9, 0x5b, 0xc4, 0x8e, - 0xe5, 0x62, 0xe2, 0xf9, 0xe4, 0x3f, 0x55, 0x40, 0xcd, 0x5a, 0xbb, 0x0f, 0x43, 0xf5, 0x0c, 0x29, - 0x7f, 0x96, 0xa6, 0xfc, 0x5a, 0x0e, 0xe5, 0x45, 0x98, 0x06, 0xa4, 0xfd, 0x29, 0x51, 0x4e, 0x09, - 0x2e, 0x2e, 0x9b, 0x6f, 0xc2, 0x74, 0xd3, 0x70, 0x9a, 0x38, 0xfa, 0x02, 0x60, 0xf6, 0x4d, 0x1b, - 0xd5, 0xa6, 0xd8, 0xb8, 0x16, 0x0e, 0xc7, 0xf5, 0x3d, 0x8e, 0xf3, 0x84, 0xfa, 0x2e, 0x43, 0x35, - 0xe0, 0x51, 0x2f, 0x44, 0xea, 0x9e, 0x83, 0x2c, 0x56, 0x53, 0x14, 0x2c, 0x3c, 0x89, 0x84, 0xe5, - 0xe2, 0x39, 0xb2, 0x84, 0x89, 0x30, 0x25, 0x24, 0x2c, 0x7b, 0x40, 0x7a, 0x3f, 0x7d, 0xca, 0x07, - 0x96, 0xb0, 0x22, 0x4c, 0x03, 0xd2, 0x7e, 0x5e, 0x2c, 0x0e, 0x11, 0x2e, 0x4e, 0xfd, 0xdf, 0x2b, - 0x70, 0x4e, 0xc3, 0x6d, 0xf7, 0x00, 0xb3, 0x66, 0x81, 0xaf, 0x4a, 0x1e, 0x2f, 0xe9, 0x18, 0x95, - 0x53, 0x8e, 0x91, 0xaa, 0x12, 0x59, 0xc9, 0xa3, 0x9a, 0x1f, 0xed, 0x1f, 0x4b, 0x70, 0x9e, 0x1f, - 0x81, 0x1d, 0x3b, 0xb7, 0x52, 0x2d, 0x3d, 0xa0, 0x01, 0x95, 0xa4, 0x0e, 0xf2, 0xc3, 0xdd, 0xcc, - 0xb9, 0xbf, 0x01, 0x36, 0xd4, 0x26, 0x13, 0xda, 0x8b, 0x76, 0x61, 0x21, 0x6a, 0x06, 0x10, 0x76, - 0xdc, 0x89, 0xeb, 0xc4, 0xf7, 0x38, 0x4c, 0xaa, 0x4e, 0x8c, 0x45, 0xc3, 0x47, 0x6e, 0x04, 0x58, - 0x83, 0x0b, 0x45, 0x67, 0xe1, 0x7c, 0xfe, 0x67, 0x05, 0x96, 0xc2, 0xc4, 0x91, 0x20, 0x90, 0x7f, - 0x2d, 0xe2, 0x73, 0x09, 0x66, 0x2c, 0x5f, 0x4f, 0x36, 0xc0, 0x51, 0x5e, 0x8e, 0x6a, 0x53, 0x96, - 0x7f, 0x3f, 0xde, 0xda, 0xa6, 0x2e, 0xc3, 0x19, 0x31, 0xf9, 0xfc, 0x7c, 0x5f, 0x96, 0x88, 0x05, - 0x23, 0xc6, 0x3a, 0x59, 0xdb, 0xce, 0x98, 0xd6, 0xd7, 0x71, 0xd0, 0x55, 0x98, 0xe0, 0xdd, 0x8d, - 0xd8, 0x8c, 0xe5, 0x72, 0xa3, 0xb1, 0x86, 0x89, 0x3e, 0x81, 0xd3, 0xcd, 0x90, 0xd4, 0xd8, 0xd6, - 0xa7, 0x8e, 0xb4, 0x35, 0x8a, 0x50, 0xf4, 0xf7, 0x7e, 0x08, 0xd3, 0xb1, 0x8e, 0x45, 0x16, 0x24, - 0x0c, 0x0d, 0x1a, 0x24, 0x4c, 0xf5, 0x41, 0xe9, 0x80, 0x7a, 0x91, 0x68, 0xab, 0x94, 0xcb, 0xfc, - 0x3e, 0xfe, 0xbd, 0x04, 0x55, 0x8d, 0xf7, 0xeb, 0x62, 0x0a, 0xeb, 0x3f, 0xdf, 0x78, 0x9d, 0x77, - 0xf0, 0xdb, 0x30, 0x97, 0x4c, 0x76, 0xf6, 0x74, 0x2b, 0xc0, 0xed, 0xb0, 0x0b, 0x23, 0xdd, 0x6f, - 0x60, 0xb6, 0x2d, 0x27, 0x93, 0xef, 0xec, 0x35, 0x02, 0xdc, 0xd6, 0x4e, 0x1f, 0x64, 0xc6, 0x7c, - 0xf4, 0x1e, 0x0c, 0x53, 0xde, 0xfa, 0xfc, 0xca, 0xc4, 0xb9, 0x8f, 0x2d, 0x23, 0x30, 0xee, 0xda, - 0xee, 0xae, 0xc6, 0x17, 0xa3, 0x4d, 0xa8, 0x38, 0xf8, 0x50, 0xf7, 0xba, 0xfc, 0x6a, 0xc2, 0xc8, - 0xa5, 0x00, 0x7c, 0xc2, 0xc1, 0x87, 0x5a, 0x97, 0xdd, 0x89, 0xaf, 0x2e, 0xc1, 0xa2, 0x80, 0xd5, - 0xfc, 0x22, 0x7e, 0xa8, 0xc0, 0xfc, 0x76, 0xcf, 0x69, 0x6e, 0xef, 0x1b, 0x9e, 0xc9, 0x53, 0xa0, - 0xfc, 0x1a, 0xce, 0x43, 0xc5, 0x77, 0xbb, 0x5e, 0x13, 0xeb, 0xbc, 0x8d, 0x9b, 0xdf, 0xc5, 0x24, - 0x1b, 0xdd, 0x64, 0x83, 0x68, 0x11, 0x46, 0x7d, 0x02, 0x1c, 0x7e, 0xc0, 0x86, 0xb4, 0x11, 0xfa, - 0xbb, 0x61, 0xa2, 0x3a, 0x9c, 0xa2, 0xc1, 0x62, 0xb9, 0x30, 0x82, 0xa3, 0xeb, 0xd4, 0x45, 0x58, - 0xc8, 0xd0, 0xc2, 0xe9, 0xfc, 0xd7, 0x21, 0x38, 0x4d, 0xe6, 0xc2, 0x0f, 0xe1, 0xeb, 0x94, 0x95, - 0x2a, 0x8c, 0x84, 0x29, 0x27, 0xa6, 0xaa, 0xe1, 0x4f, 0xa2, 0xc9, 0xfd, 0x60, 0x36, 0x4a, 0x14, - 0x44, 0x89, 0x05, 0xc2, 0x93, 0x6c, 0xa2, 0x69, 0xe8, 0xa8, 0x89, 0xa6, 0xb3, 0x00, 0x61, 0x50, - 0x65, 0x99, 0x34, 0x08, 0x2d, 0x6b, 0x63, 0x7c, 0xa4, 0x61, 0x66, 0x42, 0xf5, 0x91, 0xa3, 0x85, - 0xea, 0x1f, 0xf1, 0xf2, 0x4e, 0x3f, 0x6a, 0xa6, 0x58, 0x46, 0x0b, 0xb1, 0xcc, 0x10, 0xb0, 0xc8, - 0xff, 0xa5, 0xb8, 0xae, 0xc2, 0x48, 0x18, 0x72, 0x8f, 0x0d, 0x10, 0x72, 0x87, 0x8b, 0xe3, 0xe9, - 0x02, 0x48, 0xa6, 0x0b, 0x6e, 0xc3, 0x04, 0x2b, 0x3e, 0xf1, 0x66, 0xed, 0xf1, 0x01, 0x9a, 0xb5, - 0xc7, 0x69, 0x4d, 0x8a, 0xf7, 0x69, 0xbf, 0x03, 0xb4, 0xd7, 0x9a, 0x3f, 0x5f, 0xd0, 0x2d, 0x13, - 0x3b, 0x81, 0x15, 0xf4, 0x68, 0xba, 0x6f, 0x4c, 0x43, 0x64, 0xee, 0x13, 0x3a, 0xd5, 0xe0, 0x33, - 0xe8, 0x31, 0x4c, 0xa5, 0x4c, 0x03, 0x4f, 0xed, 0x9d, 0x1f, 0xc8, 0x28, 0x68, 0x95, 0xa4, 0x41, - 0x50, 0xe7, 0x61, 0x36, 0x29, 0xc9, 0x5c, 0xc4, 0xff, 0x44, 0x81, 0xa5, 0xb0, 0xfb, 0xed, 0x2b, - 0xe2, 0xc2, 0xa9, 0x7f, 0xac, 0xc0, 0x19, 0x31, 0x4d, 0x3c, 0xba, 0xb9, 0x02, 0xf3, 0x6d, 0x36, - 0xce, 0x0a, 0x2f, 0xba, 0xe5, 0xe8, 0x4d, 0xa3, 0xb9, 0x8f, 0x39, 0x85, 0xa7, 0xdb, 0x31, 0xa8, - 0x86, 0xb3, 0x49, 0xa6, 0xd0, 0x0d, 0x58, 0xcc, 0x00, 0x99, 0x46, 0x60, 0xec, 0x1a, 0x7e, 0xd8, - 0x04, 0x3b, 0x9f, 0x84, 0xdb, 0xe2, 0xb3, 0xea, 0x19, 0xa8, 0x85, 0xf4, 0x70, 0x7e, 0x7e, 0xe8, - 0x46, 0xed, 0x4b, 0xea, 0xef, 0x95, 0xfa, 0x2c, 0x4c, 0x4c, 0x73, 0x6a, 0xd7, 0x60, 0xda, 0xe9, - 0xb6, 0x77, 0xb1, 0xa7, 0xbb, 0x2d, 0x9d, 0x5a, 0x29, 0x9f, 0xd2, 0x39, 0xa4, 0x55, 0xd8, 0xf8, - 0x93, 0x16, 0x35, 0x3e, 0x3e, 0x61, 0x76, 0x68, 0xd5, 0x7c, 0x9a, 0x3b, 0x18, 0xd2, 0x46, 0xb9, - 0x59, 0xf3, 0x51, 0x03, 0x26, 0xf8, 0x4d, 0xb0, 0xa3, 0x8a, 0x3b, 0x3d, 0x43, 0x71, 0x60, 0xc9, - 0x1c, 0x7a, 0x72, 0xea, 0xdc, 0x8d, 0x9b, 0xfd, 0x01, 0x74, 0x15, 0x16, 0xd8, 0x3e, 0x4d, 0xd7, - 0x09, 0x3c, 0xd7, 0xb6, 0xb1, 0x47, 0x79, 0xd2, 0x65, 0x5f, 0x8a, 0x31, 0x6d, 0x8e, 0x4e, 0x6f, - 0x46, 0xb3, 0xcc, 0x2e, 0x52, 0x0d, 0x31, 0x4d, 0x0f, 0xfb, 0x3e, 0xcf, 0x38, 0x86, 0x3f, 0xd5, - 0x3a, 0xcc, 0xb0, 0xd2, 0x15, 0x81, 0x0b, 0x65, 0x27, 0x6e, 0xa4, 0x95, 0x84, 0x91, 0x56, 0x67, - 0x01, 0xc5, 0xd7, 0x73, 0x61, 0xfc, 0x4f, 0x05, 0x66, 0x98, 0x77, 0x1e, 0x77, 0x03, 0xf3, 0xd1, - 0xa0, 0x5b, 0xbc, 0xcc, 0x1b, 0x55, 0xb5, 0x2b, 0x1b, 0xe7, 0x72, 0x18, 0x42, 0x30, 0xd2, 0xb4, - 0x18, 0x2d, 0xf4, 0xd2, 0x94, 0x58, 0x2c, 0xb9, 0x5a, 0x4e, 0x24, 0x57, 0x37, 0x61, 0xea, 0xc0, - 0xf2, 0xad, 0x5d, 0xcb, 0xb6, 0x82, 0x1e, 0xb3, 0x44, 0xc5, 0xf9, 0xc0, 0x4a, 0x1f, 0x84, 0x9a, - 0xa1, 0x55, 0x98, 0xe0, 0x9f, 0x30, 0xdd, 0x31, 0xb8, 0xc5, 0x1d, 0xd3, 0xc6, 0xf9, 0xd8, 0x63, - 0xa3, 0x8d, 0x09, 0x17, 0xe2, 0xc7, 0xe5, 0x5c, 0xf8, 0x11, 0xe5, 0x82, 0x8f, 0x83, 0x67, 0x5d, - 0xdc, 0xc5, 0x03, 0x70, 0x21, 0xbd, 0x53, 0x29, 0xb3, 0x53, 0x92, 0x51, 0xe5, 0x23, 0x32, 0x8a, - 0xd1, 0xd9, 0x27, 0x88, 0xd3, 0xf9, 0x13, 0x05, 0x66, 0x43, 0xb9, 0xff, 0xca, 0x90, 0xfa, 0x04, - 0xe6, 0x52, 0x34, 0x71, 0x2d, 0xbc, 0x0a, 0x0b, 0x1d, 0xcf, 0x6d, 0x62, 0xdf, 0xb7, 0x9c, 0x3d, - 0x9d, 0xbe, 0xec, 0x62, 0x76, 0x80, 0x28, 0x63, 0x99, 0xc8, 0x7c, 0x7f, 0x9a, 0x42, 0x52, 0x23, - 0xe0, 0xab, 0xdf, 0x57, 0xe0, 0xec, 0x03, 0x1c, 0x68, 0xfd, 0x77, 0x5e, 0x8f, 0xb0, 0xef, 0x1b, - 0x7b, 0x38, 0x72, 0x59, 0x6e, 0xc3, 0x30, 0xad, 0xf0, 0x30, 0x44, 0xe3, 0x1b, 0x17, 0x73, 0xa8, - 0x8d, 0xa1, 0xa0, 0xe5, 0x1f, 0x8d, 0x83, 0x0d, 0xc0, 0x14, 0x62, 0x63, 0x96, 0xf3, 0xa8, 0xe0, - 0x07, 0x7c, 0x09, 0x15, 0xc6, 0xf5, 0x36, 0x9f, 0xe1, 0xe4, 0x7c, 0x94, 0x9b, 0x7d, 0x94, 0x23, - 0xac, 0x53, 0xdd, 0x0c, 0x47, 0x59, 0xa6, 0x71, 0xd2, 0x8f, 0x8f, 0xd5, 0x6c, 0x40, 0xd9, 0x45, - 0xf1, 0x6c, 0xe2, 0x10, 0xcb, 0x26, 0x7e, 0x37, 0x99, 0x4d, 0xbc, 0x54, 0xcc, 0xa0, 0x88, 0x98, - 0x58, 0x26, 0xb1, 0x0d, 0x2b, 0x0f, 0x70, 0xb0, 0xf5, 0xf0, 0x99, 0xe4, 0x2e, 0x1a, 0x00, 0x4c, - 0xa5, 0x9d, 0x96, 0x1b, 0x32, 0x60, 0x80, 0xed, 0x88, 0x20, 0x51, 0x33, 0x49, 0x45, 0x8f, 0xfc, - 0xe5, 0xab, 0xaf, 0x60, 0x55, 0xb2, 0x1d, 0x67, 0xfa, 0x36, 0xcc, 0xc4, 0x5e, 0x00, 0xd2, 0x6a, - 0x63, 0xb8, 0xed, 0x85, 0xc1, 0xb6, 0xd5, 0xa6, 0xbd, 0xe4, 0x80, 0xaf, 0xfe, 0x9b, 0x02, 0xb3, - 0x1a, 0x36, 0x3a, 0x1d, 0x9b, 0x85, 0x3c, 0xd1, 0xe9, 0xe6, 0x61, 0x98, 0xa7, 0xee, 0xd9, 0x77, - 0x8e, 0xff, 0x92, 0x3f, 0x18, 0x10, 0x7f, 0xa4, 0xcb, 0x27, 0xf5, 0x47, 0x8f, 0x17, 0x5c, 0xa8, - 0x0b, 0x30, 0x97, 0x3a, 0x1a, 0xb7, 0x26, 0x3f, 0x57, 0x60, 0x49, 0xc3, 0x2d, 0x0f, 0xfb, 0xfb, - 0x51, 0x15, 0x83, 0x70, 0xe3, 0x2b, 0x78, 0x76, 0x12, 0xf8, 0x8b, 0x49, 0xe5, 0x67, 0xb9, 0x01, - 0x0b, 0x9b, 0x6e, 0xd7, 0x21, 0xc2, 0x93, 0x16, 0xd0, 0x65, 0x80, 0x96, 0xeb, 0x35, 0xf1, 0x7d, - 0x1c, 0x34, 0xf7, 0x79, 0x4a, 0x36, 0x36, 0xa2, 0x1a, 0x50, 0xcd, 0x82, 0x72, 0x61, 0xbb, 0x07, - 0x23, 0xd8, 0x09, 0x68, 0xb1, 0x96, 0x89, 0xd8, 0x5b, 0x39, 0x22, 0xc6, 0xbd, 0x90, 0xad, 0x87, - 0xcf, 0x28, 0x2e, 0x5e, 0x90, 0xe5, 0xb0, 0xea, 0xcf, 0x4b, 0x30, 0xaf, 0x61, 0xc3, 0x14, 0x50, - 0xb7, 0x01, 0xa7, 0xa2, 0xf6, 0x87, 0xca, 0xc6, 0x72, 0x9e, 0x6f, 0xf1, 0xf0, 0x19, 0xb5, 0xba, - 0x74, 0xad, 0x2c, 0x14, 0xcb, 0x06, 0x73, 0x65, 0x51, 0x30, 0xb7, 0x03, 0x55, 0xcb, 0x21, 0x2b, - 0xac, 0x03, 0xac, 0x63, 0x27, 0xb2, 0x60, 0x03, 0xb6, 0x8c, 0xcd, 0x45, 0xc0, 0xf7, 0x9c, 0xd0, - 0x14, 0x35, 0x4c, 0x22, 0x18, 0x1d, 0x82, 0x84, 0x16, 0x9d, 0x87, 0x28, 0x61, 0xa3, 0x64, 0x60, - 0xdb, 0xfa, 0x0c, 0xa3, 0x0b, 0x30, 0x45, 0x1b, 0x1f, 0xe8, 0x0a, 0x56, 0x9f, 0x1f, 0xa6, 0xf5, - 0x79, 0xda, 0x0f, 0xf1, 0xd4, 0xd8, 0xc3, 0xac, 0x5d, 0xef, 0x6f, 0x4b, 0xb0, 0x90, 0xe1, 0x15, - 0xbf, 0x8e, 0xe3, 0x30, 0x4b, 0x68, 0x2f, 0x4a, 0x27, 0xb3, 0x17, 0xe8, 0x7b, 0x30, 0x9f, 0x41, - 0x1a, 0x26, 0x01, 0x8f, 0x6a, 0x00, 0x67, 0xd3, 0xd8, 0x69, 0x0e, 0x50, 0xc0, 0xae, 0x53, 0x22, - 0x76, 0xfd, 0x42, 0x81, 0x85, 0xa7, 0x5d, 0x6f, 0x0f, 0x7f, 0xbd, 0x65, 0x4b, 0xad, 0x41, 0x35, - 0x7b, 0x4c, 0xae, 0xfc, 0x5f, 0x94, 0x60, 0xe1, 0x11, 0xfe, 0xda, 0xf3, 0xe0, 0x7f, 0x47, 0xbf, - 0xee, 0x42, 0x35, 0xcb, 0x2b, 0xae, 0x5f, 0x02, 0x1c, 0x8a, 0x08, 0xc7, 0xe7, 0x0a, 0x9c, 0x79, - 0xec, 0x06, 0x56, 0xab, 0x47, 0xc2, 0x6d, 0xf7, 0x00, 0x7b, 0x8f, 0x0c, 0x12, 0x4b, 0x47, 0x5c, - 0xff, 0x1e, 0xcc, 0xb7, 0xf8, 0x8c, 0xde, 0xa6, 0x53, 0x7a, 0xc2, 0x61, 0xcb, 0xd3, 0x8f, 0x24, - 0x3a, 0xe6, 0xb3, 0xcd, 0xb6, 0xb2, 0x83, 0xbe, 0x7a, 0x0e, 0xce, 0xe6, 0x50, 0xc0, 0x85, 0xc2, - 0x80, 0xa5, 0x07, 0x38, 0xd8, 0xf4, 0x5c, 0xdf, 0xe7, 0xb7, 0x92, 0xf8, 0xb8, 0x25, 0x02, 0x3f, - 0x25, 0x15, 0xf8, 0x9d, 0x87, 0x4a, 0x60, 0x78, 0x7b, 0x38, 0x88, 0x6e, 0x99, 0x7d, 0xe6, 0x26, - 0xd9, 0x28, 0xc7, 0xa7, 0xfe, 0xb2, 0x0c, 0x67, 0xc4, 0x7b, 0x70, 0x7e, 0xb6, 0x09, 0x1e, 0x62, - 0x1a, 0x76, 0x7b, 0x2c, 0x0c, 0xe5, 0xc7, 0x7f, 0x20, 0x73, 0x10, 0x73, 0xd1, 0x51, 0xe7, 0xdb, - 0xbf, 0xdb, 0xa3, 0x0e, 0x20, 0xfb, 0xc2, 0x4c, 0x04, 0xb1, 0x21, 0xf4, 0xb9, 0x02, 0x73, 0x2d, - 0x5a, 0xf1, 0xd2, 0x9b, 0x46, 0xd7, 0xc7, 0xfd, 0x6d, 0x99, 0xbd, 0x7b, 0x74, 0xbc, 0x6d, 0x59, - 0x11, 0x6d, 0x93, 0x60, 0x4c, 0x6c, 0x8e, 0x5a, 0x99, 0x89, 0x5a, 0x07, 0x66, 0x32, 0x54, 0x0a, - 0xdc, 0xd3, 0x7b, 0x49, 0xf7, 0x74, 0x3d, 0x47, 0x1c, 0xd2, 0x34, 0xf1, 0xcb, 0x8b, 0xfb, 0xa8, - 0xb5, 0x0e, 0x2c, 0xe4, 0x10, 0x28, 0xd8, 0xf7, 0x76, 0x7c, 0xdf, 0x4a, 0x6e, 0xba, 0xf7, 0x01, - 0x0e, 0xfa, 0xd5, 0x43, 0x8a, 0x37, 0xee, 0x15, 0xff, 0x87, 0x02, 0x6b, 0xbc, 0x5e, 0x97, 0x61, - 0x5a, 0xa6, 0xd0, 0x20, 0x89, 0xcc, 0x06, 0x93, 0x32, 0xf4, 0x9c, 0x09, 0x51, 0xd4, 0x58, 0x11, - 0xe6, 0xaa, 0x07, 0x67, 0x1a, 0x6f, 0xa7, 0x98, 0x0c, 0x62, 0xbf, 0x7c, 0xf4, 0x06, 0x4c, 0xb6, - 0x88, 0x03, 0xf4, 0x18, 0x33, 0x5f, 0x8a, 0xd7, 0x97, 0x92, 0x83, 0xaa, 0x07, 0x6f, 0x0e, 0x70, - 0xd6, 0xc8, 0x5d, 0x1a, 0x0a, 0xfd, 0xf1, 0xe3, 0x5d, 0x2b, 0x85, 0x56, 0xdf, 0xa3, 0xef, 0xca, - 0x42, 0xc5, 0xa6, 0x1f, 0xc9, 0x01, 0x72, 0x63, 0x6a, 0x40, 0x1f, 0x66, 0x25, 0xc1, 0x22, 0xc7, - 0x61, 0xae, 0x5f, 0x57, 0x09, 0x13, 0x31, 0x5d, 0xde, 0x28, 0x35, 0xa4, 0xf5, 0x8b, 0x2e, 0xdb, - 0x2c, 0x0b, 0xd3, 0x75, 0x68, 0x5e, 0x3c, 0x7c, 0xf9, 0xc8, 0x53, 0x48, 0x2c, 0x3f, 0x34, 0xc9, - 0x47, 0x59, 0x06, 0x49, 0x6d, 0xc0, 0xbc, 0x66, 0x04, 0xd8, 0xb6, 0xda, 0x56, 0xf0, 0x71, 0xc7, - 0x8c, 0x25, 0xf2, 0xd6, 0xe1, 0x94, 0x69, 0x04, 0x06, 0x67, 0xc6, 0x52, 0x5e, 0xa7, 0xe5, 0x1d, - 0xa7, 0xa7, 0xd1, 0x85, 0xea, 0x47, 0xb0, 0x90, 0x41, 0xc5, 0x0f, 0x70, 0x54, 0x5c, 0x1b, 0xff, - 0x54, 0x07, 0xe0, 0x4e, 0xe9, 0x9d, 0xa7, 0x0d, 0xf4, 0x03, 0x05, 0xe6, 0xc5, 0x0f, 0xcb, 0xd1, - 0xd5, 0xe3, 0xfd, 0x27, 0x88, 0xda, 0xb5, 0x23, 0xc3, 0xf1, 0xb3, 0xfc, 0x91, 0x02, 0x0b, 0x39, - 0xff, 0x79, 0x00, 0x5d, 0x2b, 0x7a, 0xb5, 0x9f, 0x47, 0xcd, 0xf5, 0xa3, 0x03, 0x72, 0x72, 0x7e, - 0xa6, 0xc0, 0x4a, 0xd1, 0xeb, 0x7b, 0xf4, 0xdd, 0x93, 0xfe, 0x37, 0x81, 0xda, 0x9d, 0x13, 0x60, - 0xe0, 0x94, 0x92, 0x4b, 0x14, 0xbf, 0xab, 0x97, 0x5c, 0xa2, 0xf4, 0x3d, 0xbf, 0xe4, 0x12, 0x0b, - 0x1e, 0xf0, 0xff, 0x99, 0x02, 0xb5, 0xfc, 0xd7, 0xe7, 0x28, 0xbf, 0xed, 0xab, 0xf0, 0x55, 0x7e, - 0xed, 0xfd, 0x63, 0xc1, 0x72, 0xba, 0x7e, 0xa2, 0xc0, 0x62, 0xee, 0xdb, 0x72, 0x74, 0x23, 0x17, - 0x75, 0xd1, 0xd3, 0xf6, 0xda, 0xcd, 0xe3, 0x80, 0x72, 0xa2, 0x1c, 0x98, 0x4c, 0x3c, 0x3a, 0x46, - 0x6f, 0xe7, 0x22, 0x13, 0xbd, 0x6d, 0xae, 0xd5, 0x07, 0x5d, 0xce, 0xf7, 0xfb, 0x5c, 0x81, 0xd3, - 0x82, 0x97, 0xbb, 0xe8, 0x8a, 0xfc, 0xb6, 0x85, 0x6f, 0x85, 0x6b, 0xef, 0x1e, 0x0d, 0x88, 0x93, - 0x10, 0xc0, 0x54, 0xea, 0x95, 0x2c, 0x5a, 0x97, 0xb9, 0x1f, 0x82, 0x4a, 0x48, 0xed, 0x9d, 0xc1, - 0x01, 0xf8, 0xae, 0x87, 0x30, 0x9d, 0x7e, 0xea, 0x85, 0xf2, 0xb1, 0xe4, 0x3c, 0x86, 0xab, 0x5d, - 0x3e, 0x02, 0x44, 0x4c, 0xec, 0x72, 0x1b, 0x1a, 0x25, 0x62, 0x57, 0xf4, 0xdc, 0xa4, 0x76, 0x82, - 0xfe, 0x49, 0xf4, 0x97, 0x0a, 0x9c, 0x91, 0xf5, 0x3b, 0xa2, 0x5b, 0xc7, 0x6c, 0x93, 0x64, 0xa4, - 0x7d, 0x70, 0xa2, 0x26, 0x4b, 0xce, 0xb2, 0x9c, 0xa6, 0x40, 0x29, 0xcb, 0xe4, 0x2d, 0x89, 0x52, - 0x96, 0x15, 0xf4, 0x20, 0xc6, 0xee, 0x51, 0xd0, 0x71, 0x5d, 0x78, 0x8f, 0xf9, 0xbd, 0xee, 0x85, - 0xf7, 0x28, 0x6b, 0xf0, 0x8e, 0xdd, 0xa3, 0xb0, 0x2f, 0xaf, 0xf8, 0x1e, 0x65, 0xbd, 0x81, 0xc5, - 0xf7, 0x28, 0x6d, 0x06, 0x8c, 0xdf, 0x63, 0xb6, 0xf5, 0xae, 0xf8, 0x1e, 0x73, 0x1b, 0xff, 0x8a, - 0xef, 0x31, 0xbf, 0xd3, 0x0f, 0xfd, 0x05, 0xcd, 0x6d, 0xe6, 0xf6, 0xd4, 0xa1, 0xf7, 0x8f, 0x74, - 0xe6, 0x64, 0x57, 0x5f, 0xed, 0xd6, 0xf1, 0x80, 0x13, 0xa4, 0xe5, 0x36, 0x94, 0x4a, 0x49, 0x2b, - 0x6a, 0x69, 0x95, 0x92, 0x56, 0xdc, 0xc3, 0xfa, 0xd7, 0x0a, 0x2c, 0xcb, 0x3b, 0xc9, 0xd0, 0x77, - 0x24, 0x1b, 0x0c, 0xd0, 0x4e, 0x57, 0xbb, 0x7d, 0x6c, 0x78, 0x4e, 0xe3, 0x8f, 0x14, 0xa8, 0xe6, - 0xf5, 0x13, 0xa2, 0xeb, 0x12, 0xec, 0xd2, 0xc6, 0xc9, 0xda, 0x8d, 0x63, 0x40, 0x72, 0x8a, 0xbe, - 0xaf, 0xc0, 0xac, 0xa8, 0x2b, 0x0d, 0xe5, 0x7f, 0x39, 0x25, 0x3d, 0x78, 0xb5, 0xf7, 0x8e, 0x08, - 0xc5, 0xa9, 0xf8, 0x2b, 0xfa, 0x0f, 0xa0, 0x24, 0x4d, 0x59, 0xe8, 0x83, 0x02, 0xd9, 0x90, 0xb7, - 0xcc, 0xd5, 0xbe, 0x73, 0x5c, 0x70, 0x4e, 0xe0, 0x67, 0x30, 0x93, 0xe9, 0x4f, 0x42, 0x97, 0x25, - 0x48, 0xc5, 0x6d, 0x63, 0xb5, 0x8d, 0xa3, 0x80, 0xf4, 0xbd, 0x91, 0x54, 0xc7, 0x91, 0xc4, 0x1b, - 0x11, 0xf7, 0x49, 0x49, 0xbc, 0x91, 0x9c, 0x66, 0x26, 0xf4, 0x02, 0x26, 0xe2, 0x1d, 0x20, 0xe8, - 0xdb, 0x52, 0x0c, 0xa9, 0x96, 0xa7, 0xda, 0xdb, 0x03, 0xae, 0x8e, 0x49, 0xa1, 0xa8, 0x85, 0x43, - 0x22, 0x85, 0x92, 0x2e, 0x14, 0x89, 0x14, 0x4a, 0xfb, 0x44, 0x88, 0xe7, 0x29, 0xe8, 0xcc, 0x90, - 0x78, 0x9e, 0xf9, 0x6d, 0x1e, 0xb5, 0x77, 0x8f, 0x06, 0x14, 0xbd, 0x45, 0x81, 0x7e, 0xa3, 0x03, - 0xba, 0x94, 0x8b, 0x23, 0xd3, 0x3d, 0x51, 0x7b, 0x6b, 0xa0, 0xb5, 0xfd, 0x6d, 0xfa, 0x9d, 0x04, - 0x92, 0x6d, 0x32, 0xdd, 0x15, 0x92, 0x6d, 0xb2, 0xad, 0x09, 0x6c, 0x9b, 0xb0, 0x11, 0x40, 0xba, - 0x4d, 0xaa, 0x7d, 0x41, 0xba, 0x4d, 0xba, 0xb3, 0x80, 0x44, 0x28, 0x89, 0x22, 0xbe, 0x24, 0x42, - 0x11, 0x35, 0x20, 0x48, 0x22, 0x14, 0x71, 0x6f, 0xc0, 0x0f, 0xd8, 0xff, 0x0e, 0x12, 0x14, 0x7a, - 0x25, 0xa1, 0xac, 0xb4, 0x29, 0x40, 0x12, 0xca, 0x16, 0x94, 0xf1, 0x89, 0x03, 0x93, 0x5b, 0x77, - 0x96, 0x38, 0x30, 0x45, 0xa5, 0x71, 0x89, 0x03, 0x53, 0x5c, 0xe6, 0x76, 0x60, 0x32, 0x51, 0xb5, - 0x95, 0x5c, 0x88, 0xa8, 0x70, 0x2d, 0xb9, 0x10, 0x61, 0x31, 0x98, 0x9a, 0x0f, 0x51, 0x85, 0x15, - 0xc9, 0xc2, 0xbf, 0xdc, 0xda, 0xb1, 0xc4, 0x7c, 0xc8, 0xca, 0xb8, 0x24, 0x7e, 0x4b, 0xd7, 0x62, - 0x25, 0xf1, 0x5b, 0x4e, 0xc5, 0x57, 0x12, 0xbf, 0xe5, 0x16, 0x7a, 0x03, 0x98, 0x4a, 0x15, 0x1d, - 0x25, 0x1f, 0x08, 0x71, 0x29, 0x57, 0xf2, 0x81, 0xc8, 0xab, 0x67, 0x92, 0x70, 0x35, 0x55, 0xd4, - 0x92, 0x85, 0xab, 0xe2, 0x32, 0x9f, 0x2c, 0x5c, 0xcd, 0xa9, 0x98, 0x91, 0x8d, 0xd3, 0x45, 0x20, - 0xc9, 0xc6, 0x39, 0xb5, 0x35, 0xc9, 0xc6, 0xb9, 0x15, 0xa6, 0x3f, 0x54, 0x60, 0x4e, 0x58, 0xb7, - 0x41, 0xf9, 0x12, 0x23, 0xab, 0x34, 0xd5, 0xae, 0x1e, 0x15, 0x2c, 0x26, 0xef, 0xa2, 0xaa, 0x87, - 0x44, 0xde, 0x25, 0xe5, 0x24, 0x89, 0xbc, 0x4b, 0x0b, 0x44, 0x5f, 0x28, 0xd1, 0xb3, 0xa5, 0xfc, - 0xf4, 0x3a, 0xba, 0x53, 0x14, 0x6f, 0x14, 0x96, 0x21, 0x6a, 0x77, 0x4f, 0x82, 0x22, 0x91, 0xd2, - 0x89, 0xe7, 0xd7, 0xe5, 0x29, 0x1d, 0x41, 0x02, 0x5f, 0x9e, 0xd2, 0x11, 0xa6, 0xee, 0x89, 0x66, - 0x26, 0x93, 0xe2, 0x32, 0xcd, 0x14, 0x66, 0xe2, 0x65, 0x9a, 0x29, 0xce, 0xb7, 0xdf, 0xbd, 0xf1, - 0x9b, 0xd7, 0xf6, 0xac, 0x60, 0xbf, 0xbb, 0x5b, 0x6f, 0xba, 0xed, 0xf5, 0xc4, 0xff, 0x05, 0xaf, - 0xef, 0x61, 0x87, 0xfd, 0x93, 0xf8, 0xd8, 0x7f, 0xa9, 0x7f, 0x9f, 0xff, 0x79, 0x70, 0x79, 0x77, - 0x98, 0xce, 0x5d, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, 0x6b, 0x85, 0xe0, 0xd1, 0x5e, - 0x00, 0x00, + 0x76, 0x68, 0x8e, 0xf8, 0xf5, 0x48, 0x0e, 0xc9, 0x12, 0x3f, 0x86, 0x43, 0x89, 0x22, 0x7b, 0x2d, + 0x9b, 0x96, 0xd7, 0x43, 0x8b, 0xb6, 0x65, 0x49, 0x96, 0x57, 0x2b, 0x91, 0x92, 0x3c, 0x8e, 0x3e, + 0x9b, 0xb4, 0x9c, 0x04, 0x89, 0x7b, 0x9b, 0xdd, 0x35, 0x64, 0x47, 0x3d, 0xdd, 0xa3, 0xee, 0x1e, + 0x52, 0xe3, 0x43, 0xe0, 0xc4, 0x41, 0x80, 0x5d, 0x04, 0xd9, 0xcd, 0x22, 0x09, 0x02, 0x04, 0x08, + 0x10, 0x6c, 0x80, 0xc5, 0x1a, 0xb9, 0x25, 0x40, 0x0e, 0x49, 0x4e, 0xb9, 0xe4, 0x2f, 0xe4, 0xbe, + 0x7b, 0x48, 0x80, 0x9c, 0xb2, 0xe7, 0x20, 0xa8, 0x8f, 0xee, 0xe9, 0x8f, 0xea, 0xea, 0x21, 0x19, + 0x44, 0x5e, 0xc7, 0x37, 0x4e, 0x55, 0xbd, 0x57, 0xaf, 0x5e, 0xbd, 0xf7, 0xfa, 0x7d, 0x15, 0xe1, + 0x62, 0x77, 0x0f, 0xfb, 0x1b, 0xa6, 0x61, 0x61, 0xd7, 0xc4, 0x1b, 0x07, 0x76, 0x10, 0x7a, 0x7e, + 0x6f, 0xe3, 0xf0, 0xf2, 0x46, 0x80, 0xfd, 0x43, 0xdb, 0xc4, 0x8d, 0x8e, 0xef, 0x85, 0x1e, 0x5a, + 0x24, 0xcb, 0x1a, 0x7c, 0x59, 0x83, 0x2f, 0x6b, 0x1c, 0x5e, 0xae, 0xaf, 0xec, 0x7b, 0xde, 0xbe, + 0x83, 0x37, 0xe8, 0xb2, 0xbd, 0x6e, 0x6b, 0xc3, 0xea, 0xfa, 0x46, 0x68, 0x7b, 0x2e, 0x03, 0xac, + 0x5f, 0xc8, 0xce, 0x87, 0x76, 0x1b, 0x07, 0xa1, 0xd1, 0xee, 0xf0, 0x05, 0x39, 0x04, 0x47, 0xbe, + 0xd1, 0xe9, 0x60, 0x3f, 0xe0, 0xf3, 0xab, 0x29, 0x02, 0x8d, 0x8e, 0x4d, 0x88, 0x33, 0xbd, 0x76, + 0x3b, 0xde, 0x62, 0x4d, 0xb4, 0x22, 0x22, 0x91, 0x53, 0x21, 0x5a, 0xf2, 0xbc, 0x8b, 0xe3, 0x05, + 0xaa, 0x68, 0x41, 0x68, 0x04, 0xcf, 0x1c, 0x3b, 0x08, 0x65, 0x6b, 0x8e, 0x3c, 0xff, 0x59, 0xcb, + 0xf1, 0x8e, 0xf8, 0x9a, 0x4b, 0xa2, 0x35, 0x9c, 0x95, 0x7a, 0x66, 0xed, 0x7a, 0xd9, 0x5a, 0xec, + 0xf3, 0x95, 0xdf, 0x4a, 0xaf, 0xb4, 0xda, 0xb6, 0x4b, 0xb9, 0xe0, 0x74, 0x83, 0xb0, 0x6c, 0x51, + 0x9a, 0x11, 0x6b, 0xe2, 0x45, 0xcf, 0xbb, 0xb8, 0xcb, 0xaf, 0xba, 0xfe, 0x9a, 0x78, 0x89, 0x8f, + 0x3b, 0x8e, 0x6d, 0x26, 0xaf, 0x36, 0x7d, 0x33, 0xc1, 0x81, 0xe1, 0x63, 0x8b, 0xac, 0x34, 0xdc, + 0x68, 0xb7, 0x57, 0x0a, 0x56, 0xa4, 0x69, 0xba, 0x58, 0xb0, 0x2a, 0xcd, 0x2e, 0xf5, 0xe7, 0x23, + 0x70, 0x7e, 0x27, 0x34, 0xfc, 0xf0, 0x13, 0x3e, 0x7e, 0xe7, 0x05, 0x36, 0xbb, 0x84, 0x1e, 0x0d, + 0x3f, 0xef, 0xe2, 0x20, 0x44, 0xf7, 0x61, 0xd4, 0x67, 0x7f, 0xd6, 0x94, 0x55, 0x65, 0x7d, 0x62, + 0x73, 0xb3, 0x91, 0x12, 0x5b, 0xa3, 0x63, 0x37, 0x0e, 0x2f, 0x37, 0xa4, 0x48, 0xb4, 0x08, 0x05, + 0x5a, 0x86, 0x71, 0xcb, 0x6b, 0x1b, 0xb6, 0xab, 0xdb, 0x56, 0x6d, 0x68, 0x55, 0x59, 0x1f, 0xd7, + 0xc6, 0xd8, 0x40, 0xd3, 0x42, 0xbf, 0x05, 0xf3, 0x1d, 0xc3, 0xc7, 0x6e, 0xa8, 0xe3, 0x08, 0x81, + 0x6e, 0xbb, 0x2d, 0xaf, 0x56, 0xa1, 0x1b, 0xaf, 0x0b, 0x37, 0x7e, 0x4c, 0x21, 0xe2, 0x1d, 0x9b, + 0x6e, 0xcb, 0xd3, 0xce, 0x76, 0xf2, 0x83, 0xa8, 0x06, 0xa3, 0x46, 0x18, 0xe2, 0x76, 0x27, 0xac, + 0x9d, 0x59, 0x55, 0xd6, 0x87, 0xb5, 0xe8, 0x27, 0xda, 0x82, 0x69, 0xfc, 0xa2, 0x63, 0x33, 0x15, + 0xd3, 0x89, 0x2e, 0xd5, 0x86, 0xe9, 0x8e, 0xf5, 0x06, 0xd3, 0xa3, 0x46, 0xa4, 0x47, 0x8d, 0xdd, + 0x48, 0xd1, 0xb4, 0x6a, 0x1f, 0x84, 0x0c, 0xa2, 0x16, 0x2c, 0x99, 0x9e, 0x1b, 0xda, 0x6e, 0x17, + 0xeb, 0x46, 0xa0, 0xbb, 0xf8, 0x48, 0xb7, 0x5d, 0x3b, 0xb4, 0x8d, 0xd0, 0xf3, 0x6b, 0x23, 0xab, + 0xca, 0x7a, 0x75, 0xf3, 0x0d, 0xe1, 0x01, 0xb6, 0x38, 0xd4, 0xad, 0xe0, 0x21, 0x3e, 0x6a, 0x46, + 0x20, 0xda, 0x82, 0x29, 0x1c, 0x47, 0x4d, 0x98, 0x8d, 0x66, 0x2c, 0xbd, 0x65, 0xd8, 0x4e, 0xd7, + 0xc7, 0xb5, 0x51, 0x4a, 0xee, 0x39, 0x21, 0xfe, 0xbb, 0x6c, 0x8d, 0x36, 0x13, 0x83, 0xf1, 0x11, + 0xa4, 0xc1, 0x82, 0x63, 0x04, 0xa1, 0x6e, 0x7a, 0xed, 0x8e, 0x83, 0xe9, 0xe1, 0x7d, 0x1c, 0x74, + 0x9d, 0xb0, 0x36, 0x26, 0xc1, 0xf7, 0xd8, 0xe8, 0x39, 0x9e, 0x61, 0x69, 0x73, 0x04, 0x76, 0x2b, + 0x06, 0xd5, 0x28, 0x24, 0xfa, 0x75, 0x58, 0x6e, 0xd9, 0x7e, 0x10, 0xea, 0x16, 0x36, 0xed, 0x80, + 0xf2, 0xd3, 0x08, 0x9e, 0xe9, 0x7b, 0x86, 0xf9, 0xcc, 0x6b, 0xb5, 0x6a, 0xe3, 0x14, 0xf1, 0x52, + 0x8e, 0xaf, 0xdb, 0xdc, 0xc0, 0x69, 0x35, 0x0a, 0xbd, 0xcd, 0x81, 0x77, 0x8d, 0xe0, 0xd9, 0x6d, + 0x06, 0x8a, 0x0e, 0x61, 0xa6, 0x63, 0xf8, 0xa1, 0x4d, 0xe9, 0x34, 0x3d, 0xb7, 0x65, 0xef, 0xd7, + 0x60, 0xb5, 0xb2, 0x3e, 0xb1, 0xf9, 0x6b, 0x8d, 0x02, 0x43, 0x2a, 0x97, 0x4a, 0x22, 0x3a, 0x0c, + 0xdd, 0x16, 0xc5, 0x76, 0xc7, 0x0d, 0xfd, 0x9e, 0x36, 0xdd, 0x49, 0x8f, 0xd6, 0x6f, 0xc3, 0x9c, + 0x68, 0x21, 0x9a, 0x81, 0xca, 0x33, 0xdc, 0xa3, 0x4a, 0x31, 0xae, 0x91, 0x3f, 0xd1, 0x1c, 0x0c, + 0x1f, 0x1a, 0x4e, 0x17, 0x73, 0xc1, 0x66, 0x3f, 0xae, 0x0f, 0x5d, 0x55, 0xd4, 0xf7, 0x60, 0xa5, + 0x88, 0x94, 0xa0, 0xe3, 0xb9, 0x01, 0x46, 0xf3, 0x30, 0xe2, 0x77, 0xa9, 0x56, 0x30, 0x84, 0xc3, + 0x7e, 0xd7, 0x6d, 0x5a, 0xea, 0xdf, 0x0c, 0xc1, 0xca, 0x8e, 0xbd, 0xef, 0x1a, 0x4e, 0xa1, 0x82, + 0x3e, 0xc8, 0x2a, 0xe8, 0xdb, 0x62, 0x05, 0x95, 0x62, 0x19, 0x50, 0x43, 0x5b, 0xb0, 0x8c, 0x5f, + 0x84, 0xd8, 0x77, 0x0d, 0x27, 0x36, 0xbc, 0x7d, 0x65, 0xe5, 0x7a, 0xfa, 0xaa, 0x70, 0xff, 0xfc, + 0xce, 0x4b, 0x11, 0xaa, 0xdc, 0x14, 0x6a, 0xc0, 0x59, 0xf3, 0xc0, 0x76, 0xac, 0xfe, 0x26, 0x9e, + 0xeb, 0xf4, 0xa8, 0xde, 0x8e, 0x69, 0xb3, 0x74, 0x2a, 0x02, 0x7a, 0xe4, 0x3a, 0x3d, 0x75, 0x0d, + 0x2e, 0x14, 0x9e, 0x8f, 0x31, 0x58, 0xfd, 0xc5, 0x10, 0xbc, 0xc6, 0xd7, 0xd8, 0xe1, 0x81, 0xdc, + 0xe6, 0x3d, 0xcd, 0xb2, 0xf4, 0x86, 0x8c, 0xa5, 0x65, 0xe8, 0x06, 0xe4, 0xed, 0xe7, 0x8a, 0x40, + 0xc0, 0x2b, 0x54, 0xc0, 0x3f, 0x2e, 0x16, 0xf0, 0xc1, 0x48, 0xf8, 0x3f, 0x14, 0xf5, 0x5b, 0xb0, + 0x5e, 0x4e, 0x94, 0x5c, 0xe8, 0x7f, 0xa0, 0xc0, 0x79, 0x0d, 0x07, 0xf8, 0xd4, 0x1f, 0x25, 0x29, + 0x92, 0xc1, 0xae, 0x85, 0xa8, 0x6e, 0x11, 0x1a, 0xf9, 0x29, 0xbe, 0x1c, 0x82, 0xb5, 0x5d, 0xec, + 0xb7, 0x6d, 0xd7, 0x08, 0x71, 0xe1, 0x49, 0x1e, 0x67, 0x4f, 0x72, 0x45, 0x78, 0x92, 0x52, 0x44, + 0xbf, 0xe2, 0x0a, 0xfc, 0x0a, 0xa8, 0xb2, 0x23, 0x72, 0x1d, 0xfe, 0x91, 0x02, 0xab, 0xdb, 0x38, + 0x30, 0x7d, 0x7b, 0xaf, 0x98, 0xa3, 0x8f, 0xb2, 0x1c, 0x7d, 0x57, 0x78, 0x9c, 0x32, 0x3c, 0x03, + 0x8a, 0xc7, 0x7f, 0x57, 0x60, 0x4d, 0x82, 0x8a, 0x8b, 0x88, 0x03, 0x8b, 0x7d, 0x97, 0x86, 0xa9, + 0x36, 0xff, 0xe0, 0x49, 0x6d, 0x76, 0x0e, 0xe1, 0x56, 0x12, 0x54, 0x5b, 0xc0, 0xc2, 0x71, 0xb4, + 0x07, 0x8b, 0xf9, 0xbb, 0x65, 0x9e, 0xd4, 0x10, 0xdd, 0xed, 0xd2, 0x60, 0xbb, 0x51, 0x5f, 0x6a, + 0xfe, 0x48, 0x34, 0x8c, 0x3e, 0x01, 0xd4, 0xc1, 0xae, 0x65, 0xbb, 0xfb, 0xba, 0x61, 0x86, 0xf6, + 0xa1, 0x1d, 0xda, 0x38, 0xe0, 0xe6, 0xaa, 0xc0, 0x51, 0x63, 0xcb, 0x6f, 0xb1, 0xd5, 0x3d, 0x8a, + 0x7c, 0xb6, 0x93, 0x1a, 0xb4, 0x71, 0x80, 0x7e, 0x03, 0x66, 0x22, 0xc4, 0x54, 0x4c, 0x7c, 0xec, + 0xd6, 0xce, 0x50, 0xb4, 0x0d, 0x19, 0xda, 0x2d, 0xb2, 0x36, 0x4d, 0xf9, 0x74, 0x27, 0x31, 0xe5, + 0x63, 0x17, 0xed, 0xf4, 0x51, 0x47, 0xde, 0x09, 0x77, 0xf4, 0xa4, 0x14, 0x47, 0xce, 0x48, 0x0a, + 0x69, 0x34, 0xa8, 0xbe, 0x80, 0xb9, 0x27, 0x24, 0xe6, 0x89, 0xb8, 0x17, 0x89, 0xe1, 0x56, 0x56, + 0x0c, 0x5f, 0x17, 0xee, 0x21, 0x82, 0x1d, 0x50, 0xf4, 0x7e, 0xa2, 0xc0, 0x7c, 0x06, 0x9c, 0x8b, + 0xdb, 0x4d, 0x98, 0xa4, 0x71, 0x58, 0xe4, 0xce, 0x29, 0x03, 0xb8, 0x73, 0x13, 0x14, 0x82, 0x7b, + 0x71, 0x4d, 0xa8, 0x46, 0x08, 0x7e, 0x07, 0x9b, 0x21, 0xb6, 0xb8, 0xe0, 0xa8, 0xc5, 0x67, 0xd0, + 0xf8, 0x4a, 0x6d, 0xea, 0x79, 0xf2, 0xa7, 0xfa, 0x07, 0x0a, 0xd4, 0xa9, 0x01, 0xdd, 0x09, 0x6d, + 0xf3, 0x59, 0x8f, 0x78, 0x74, 0xf7, 0xed, 0x20, 0x8c, 0xd8, 0xd4, 0xcc, 0xb2, 0x69, 0xa3, 0xd8, + 0x92, 0x0b, 0x31, 0x0c, 0xc8, 0xac, 0xf3, 0xb0, 0x2c, 0xc4, 0xc1, 0x2d, 0xcb, 0x7f, 0x29, 0xb0, + 0x70, 0x0f, 0x87, 0x0f, 0xba, 0xa1, 0xb1, 0xe7, 0xe0, 0x9d, 0xd0, 0x08, 0xb1, 0x26, 0x42, 0xab, + 0x64, 0xec, 0xe9, 0xc7, 0x80, 0x04, 0x66, 0x74, 0xe8, 0x58, 0x66, 0x74, 0x36, 0xa7, 0x61, 0xe8, + 0x6d, 0x58, 0xc0, 0x2f, 0x3a, 0x94, 0x81, 0xba, 0x8b, 0x5f, 0x84, 0x3a, 0x3e, 0x24, 0x61, 0x91, + 0x6d, 0x51, 0x0b, 0x5d, 0xd1, 0xce, 0x46, 0xb3, 0x0f, 0xf1, 0x8b, 0xf0, 0x0e, 0x99, 0x6b, 0x5a, + 0xe8, 0x2d, 0x98, 0x33, 0xbb, 0x3e, 0x8d, 0x9f, 0xf6, 0x7c, 0xc3, 0x35, 0x0f, 0xf4, 0xd0, 0x7b, + 0x46, 0xb5, 0x47, 0x59, 0x9f, 0xd4, 0x10, 0x9f, 0xbb, 0x4d, 0xa7, 0x76, 0xc9, 0x8c, 0xfa, 0x0f, + 0xe3, 0xb0, 0x98, 0x3b, 0x35, 0x97, 0x21, 0xf1, 0xc9, 0x94, 0xd3, 0x9e, 0xec, 0x2e, 0x4c, 0xc5, + 0x68, 0xc3, 0x5e, 0x07, 0x73, 0x5e, 0xad, 0x49, 0x31, 0xee, 0xf6, 0x3a, 0x58, 0x9b, 0x3c, 0x4a, + 0xfc, 0x42, 0x2a, 0x4c, 0x89, 0x18, 0x33, 0xe1, 0x26, 0x18, 0xf2, 0x14, 0x96, 0x3a, 0x3e, 0x3e, + 0xb4, 0xbd, 0x6e, 0xa0, 0x07, 0xc4, 0x13, 0xc1, 0x56, 0x7f, 0xfd, 0x19, 0xba, 0xef, 0x72, 0x2e, + 0x12, 0x69, 0xba, 0xe1, 0x95, 0x77, 0x9e, 0x12, 0x77, 0x46, 0x5b, 0x88, 0xa0, 0x77, 0x18, 0x70, + 0x84, 0xf7, 0x4d, 0x38, 0x4b, 0xe3, 0x26, 0x16, 0xe8, 0xc4, 0x18, 0x87, 0x29, 0x05, 0x33, 0x64, + 0xea, 0x2e, 0x99, 0x89, 0x96, 0x5f, 0x87, 0x71, 0x1a, 0x03, 0x39, 0x76, 0x10, 0xd2, 0x48, 0x70, + 0x62, 0xf3, 0xbc, 0xf8, 0x23, 0x1f, 0x49, 0xe5, 0x58, 0xc8, 0xff, 0x42, 0xf7, 0x60, 0x26, 0xa0, + 0x12, 0xab, 0xf7, 0x51, 0x8c, 0x0e, 0x82, 0xa2, 0x1a, 0xa4, 0x04, 0x1d, 0xbd, 0x03, 0x0b, 0xa6, + 0x63, 0x13, 0x4a, 0x1d, 0x7b, 0xcf, 0x37, 0xfc, 0x9e, 0x7e, 0x88, 0x7d, 0x6a, 0x01, 0xc7, 0xa8, + 0x48, 0xcf, 0xb1, 0xd9, 0xfb, 0x6c, 0xf2, 0x29, 0x9b, 0x4b, 0x40, 0xb5, 0xb0, 0x11, 0x76, 0x7d, + 0x1c, 0x43, 0x8d, 0x27, 0xa1, 0xee, 0xb2, 0xc9, 0x08, 0xea, 0x02, 0x4c, 0x70, 0x28, 0xbb, 0xdd, + 0x71, 0x6a, 0x40, 0x97, 0x02, 0x1b, 0x6a, 0xb6, 0x3b, 0x0e, 0x0a, 0xe0, 0x52, 0xf6, 0x54, 0x7a, + 0x60, 0x1e, 0x60, 0xab, 0xeb, 0x60, 0x3d, 0xf4, 0xd8, 0x65, 0xd1, 0x40, 0xdc, 0xeb, 0x86, 0xb5, + 0x89, 0xb2, 0x98, 0xf1, 0x95, 0xf4, 0x59, 0x77, 0x38, 0xa6, 0x5d, 0x8f, 0xde, 0xdb, 0x2e, 0x43, + 0x43, 0x5c, 0x12, 0x76, 0x55, 0xc4, 0x79, 0xee, 0x1f, 0x64, 0x92, 0xe6, 0x02, 0x66, 0xe9, 0xd4, + 0x0e, 0x99, 0x89, 0x4e, 0x51, 0xa4, 0x4e, 0x53, 0x45, 0xea, 0x84, 0xee, 0x43, 0x35, 0x96, 0xed, + 0x80, 0x28, 0x53, 0xad, 0x4a, 0xe3, 0xfe, 0x8b, 0xe9, 0xab, 0x62, 0xc9, 0x98, 0xa4, 0x7c, 0x33, + 0xcd, 0x8b, 0x15, 0x83, 0xfe, 0x44, 0x26, 0xcc, 0xc5, 0xd8, 0x4c, 0xc7, 0x0b, 0x30, 0xc7, 0x39, + 0x4d, 0x71, 0x5e, 0x1e, 0xd0, 0x61, 0x20, 0x80, 0x04, 0x5f, 0x37, 0xd0, 0x62, 0x7d, 0x8e, 0x07, + 0x89, 0x96, 0xcf, 0x72, 0x46, 0xe8, 0x2c, 0xaa, 0x20, 0x5f, 0xf1, 0x19, 0xd1, 0x37, 0xb1, 0x4f, + 0x35, 0x67, 0xd0, 0x87, 0xd1, 0x7a, 0x6d, 0xe6, 0x30, 0x33, 0x82, 0x6e, 0xc0, 0xb2, 0x4d, 0x74, + 0x2e, 0x73, 0xc7, 0xd8, 0x25, 0x76, 0xc6, 0xaa, 0xcd, 0x52, 0x37, 0x70, 0xd1, 0x0e, 0xd2, 0xd6, + 0xf8, 0x0e, 0x9b, 0x46, 0x6b, 0x30, 0xc9, 0x43, 0x1c, 0x3d, 0xb0, 0x3f, 0xc3, 0x35, 0xc4, 0x54, + 0x9b, 0x8f, 0xed, 0xd8, 0x9f, 0x61, 0xf5, 0x97, 0x0a, 0x2c, 0x3e, 0xf6, 0x1c, 0xe7, 0xff, 0x99, + 0xc1, 0xfe, 0xe9, 0x18, 0xd4, 0xf2, 0xc7, 0xfe, 0xc6, 0x62, 0x7f, 0x63, 0xb1, 0xbf, 0x8e, 0x16, + 0xbb, 0x48, 0x3f, 0x26, 0x0b, 0x2d, 0xb0, 0xd0, 0x9c, 0x4d, 0x9d, 0xda, 0x9c, 0xfd, 0xea, 0x19, + 0x76, 0xf5, 0x5f, 0x86, 0x60, 0x55, 0xc3, 0xa6, 0xe7, 0x5b, 0xc9, 0x5c, 0x2a, 0x57, 0x8b, 0x97, + 0x69, 0x29, 0x2f, 0xc0, 0x44, 0x2c, 0x38, 0xb1, 0x11, 0x80, 0x68, 0xa8, 0x69, 0xa1, 0x45, 0x18, + 0xa5, 0x32, 0xc6, 0x35, 0xbe, 0xa2, 0x8d, 0x90, 0x9f, 0x4d, 0x0b, 0x9d, 0x07, 0xe0, 0xae, 0x7e, + 0xa4, 0xbb, 0xe3, 0xda, 0x38, 0x1f, 0x69, 0x5a, 0x48, 0x83, 0xc9, 0x8e, 0xe7, 0x38, 0x7a, 0x14, + 0x4e, 0x8c, 0x48, 0xc2, 0x09, 0x62, 0x43, 0xef, 0x7a, 0x7e, 0x92, 0x35, 0x51, 0x38, 0x31, 0x41, + 0x90, 0xf0, 0x1f, 0xea, 0xef, 0x8f, 0xc1, 0x9a, 0x84, 0x8b, 0xdc, 0xf0, 0xe6, 0x2c, 0xa4, 0x72, + 0x32, 0x0b, 0x29, 0xb5, 0x7e, 0x43, 0x27, 0xb7, 0x7e, 0xdf, 0x06, 0x14, 0xf1, 0xd7, 0xca, 0x9a, + 0xdf, 0x99, 0x78, 0x26, 0x5a, 0xbd, 0x4e, 0x0c, 0x98, 0xc0, 0xf4, 0x56, 0x88, 0x85, 0x4a, 0xe1, + 0xcd, 0x59, 0xf4, 0xe1, 0xbc, 0x45, 0x4f, 0x54, 0x5d, 0x46, 0xd2, 0x55, 0x97, 0xab, 0x50, 0xe3, + 0x26, 0xa5, 0x9f, 0xa3, 0x88, 0x1c, 0x84, 0x51, 0xea, 0x20, 0x2c, 0xb0, 0xf9, 0x58, 0x76, 0x22, + 0xff, 0x40, 0x83, 0xa9, 0xb8, 0xba, 0x40, 0xb3, 0x1a, 0xac, 0x5c, 0xf1, 0x66, 0x91, 0x36, 0xee, + 0xfa, 0x86, 0x1b, 0x10, 0x53, 0x96, 0x8a, 0xe4, 0x27, 0xad, 0xc4, 0x2f, 0xf4, 0x29, 0x9c, 0x13, + 0xe4, 0x4c, 0xfa, 0x26, 0x7c, 0x7c, 0x10, 0x13, 0xbe, 0x94, 0x13, 0xf7, 0xd8, 0x9a, 0x17, 0x78, + 0x9f, 0x50, 0xe4, 0x7d, 0xae, 0xc1, 0x64, 0xca, 0xe6, 0x4d, 0x50, 0x9b, 0x37, 0xb1, 0x97, 0x30, + 0x76, 0xb7, 0xa0, 0xda, 0xbf, 0x56, 0x5a, 0xb5, 0x9a, 0x2c, 0xad, 0x5a, 0x4d, 0xc5, 0x10, 0xb4, + 0x68, 0xf5, 0x01, 0x4c, 0x46, 0x77, 0x4d, 0x11, 0x4c, 0x95, 0x22, 0x98, 0xe0, 0xeb, 0x29, 0xb8, + 0x01, 0xa3, 0x24, 0xd8, 0x27, 0x46, 0xb6, 0x4a, 0x53, 0x34, 0xf7, 0x0a, 0x13, 0xd5, 0xa5, 0x5a, + 0x44, 0xb3, 0x08, 0x36, 0x0e, 0x58, 0x6a, 0x3a, 0xc2, 0x9b, 0xf3, 0x05, 0xa7, 0x73, 0xbe, 0x60, + 0xfd, 0x53, 0x98, 0x4c, 0xc2, 0x0a, 0xb2, 0xd5, 0x57, 0x93, 0xd9, 0xea, 0xa2, 0x2c, 0x46, 0xa4, + 0x98, 0x2c, 0x9b, 0x91, 0xc8, 0x68, 0xf7, 0x4d, 0x69, 0x94, 0xbb, 0xfa, 0xc6, 0x94, 0xe6, 0x4c, + 0x69, 0x92, 0x35, 0x42, 0x53, 0xfa, 0xf3, 0x4a, 0x64, 0x4a, 0x85, 0x5c, 0xe4, 0xa6, 0xf4, 0x23, + 0x98, 0xce, 0x98, 0x2a, 0xa9, 0x31, 0x65, 0x9f, 0xe8, 0x1e, 0x35, 0x36, 0x5a, 0x35, 0x6d, 0xca, + 0x72, 0xc2, 0x3d, 0x74, 0x3c, 0xe1, 0x4e, 0x58, 0xae, 0x4a, 0xda, 0x72, 0x7d, 0x0a, 0x2b, 0x69, + 0xc5, 0xd3, 0xbd, 0x96, 0x1e, 0x1e, 0xd8, 0x81, 0x9e, 0x2c, 0x30, 0xcb, 0xb7, 0xaa, 0xa7, 0x14, + 0xf1, 0x51, 0x6b, 0xf7, 0xc0, 0x0e, 0x6e, 0x71, 0xfc, 0x4d, 0x98, 0x3d, 0xc0, 0x86, 0x1f, 0xee, + 0x61, 0x23, 0xd4, 0x2d, 0x1c, 0x1a, 0xb6, 0x13, 0xf0, 0x44, 0xa5, 0x3c, 0x87, 0x37, 0x13, 0x83, + 0x6d, 0x33, 0xa8, 0xfc, 0xa7, 0x69, 0xe4, 0x64, 0x9f, 0xa6, 0xd7, 0x60, 0x3a, 0xc6, 0xc3, 0xc4, + 0x9a, 0xda, 0xe8, 0x71, 0x2d, 0x76, 0x8c, 0xb6, 0xe9, 0xa8, 0xfa, 0xe7, 0x0a, 0x7c, 0x8b, 0xdd, + 0x66, 0x4a, 0xd9, 0x79, 0x9d, 0xb8, 0xaf, 0x2f, 0x5a, 0x36, 0xef, 0x77, 0xb5, 0x28, 0xef, 0x57, + 0x86, 0x6a, 0xc0, 0x04, 0xe0, 0xdf, 0x55, 0xe0, 0x15, 0x39, 0x36, 0x2e, 0x82, 0xb8, 0xff, 0xfd, + 0xf3, 0xf9, 0x18, 0x27, 0xf1, 0xfa, 0xc9, 0xad, 0x9b, 0x36, 0x1d, 0x64, 0x24, 0xfd, 0x27, 0x0a, + 0xac, 0xf4, 0x33, 0xe7, 0xc4, 0x87, 0xb6, 0xec, 0xa0, 0x63, 0x84, 0xe6, 0x81, 0xee, 0x78, 0xa6, + 0xe1, 0x38, 0xbd, 0xda, 0x10, 0xb5, 0xa9, 0x9f, 0x4a, 0x76, 0x2d, 0x3f, 0x4e, 0xa3, 0x9f, 0x5a, + 0xdf, 0xf5, 0xb6, 0xf9, 0x0e, 0xf7, 0xd9, 0x06, 0xcc, 0xd4, 0x2e, 0x1b, 0xc5, 0x2b, 0xea, 0xbf, + 0x0b, 0xab, 0x65, 0x08, 0x04, 0xf6, 0x76, 0x3b, 0x6d, 0x6f, 0xc5, 0x89, 0xfb, 0xc8, 0x0c, 0x50, + 0x5c, 0x11, 0x62, 0xfa, 0x65, 0x4e, 0xd8, 0xde, 0x1f, 0x29, 0xc4, 0xf6, 0xe6, 0x8e, 0x79, 0xd7, + 0xb0, 0x9d, 0xbe, 0x2c, 0x0d, 0x58, 0xf1, 0x29, 0xc3, 0x33, 0xa0, 0x20, 0x7d, 0x8b, 0xd8, 0xb1, + 0x42, 0x4c, 0x3c, 0x9f, 0xfc, 0xa7, 0x0a, 0xa8, 0x79, 0x6b, 0xf7, 0x61, 0xa4, 0x9e, 0x11, 0xe5, + 0x4f, 0xb2, 0x94, 0xbf, 0x57, 0x40, 0x79, 0x19, 0xa6, 0x01, 0x69, 0x7f, 0x4c, 0x94, 0x53, 0x82, + 0x8b, 0xcb, 0xe6, 0xeb, 0x30, 0x63, 0x1a, 0xae, 0x89, 0xe3, 0x2f, 0x00, 0x66, 0xdf, 0xb4, 0x31, + 0x6d, 0x9a, 0x8d, 0x6b, 0xd1, 0x70, 0x52, 0xdf, 0x93, 0x38, 0x4f, 0xa9, 0xef, 0x32, 0x54, 0x03, + 0x1e, 0xf5, 0xd5, 0x58, 0xdd, 0x0b, 0x90, 0x25, 0x6a, 0x8a, 0x82, 0x85, 0xa7, 0x91, 0xb0, 0x42, + 0x3c, 0xc7, 0x96, 0x30, 0x11, 0xa6, 0x94, 0x84, 0xe5, 0x0f, 0x48, 0xef, 0xa7, 0x4f, 0xf9, 0xc0, + 0x12, 0x56, 0x86, 0x69, 0x40, 0xda, 0x2f, 0x8a, 0xc5, 0x21, 0xc6, 0xc5, 0xa9, 0xff, 0x7b, 0x05, + 0x2e, 0x68, 0xb8, 0xed, 0x1d, 0x62, 0xd6, 0x2c, 0xf0, 0x55, 0xc9, 0xe3, 0xa5, 0x1d, 0xa3, 0x4a, + 0xc6, 0x31, 0x52, 0x55, 0x22, 0x2b, 0x45, 0x54, 0xf3, 0xa3, 0xfd, 0xe3, 0x10, 0x5c, 0xe4, 0x47, + 0x60, 0xc7, 0x2e, 0xac, 0x54, 0x4b, 0x0f, 0x68, 0x40, 0x35, 0xad, 0x83, 0xfc, 0x70, 0xd7, 0x0b, + 0xee, 0x6f, 0x80, 0x0d, 0xb5, 0xa9, 0x94, 0xf6, 0xa2, 0x3d, 0x58, 0x8c, 0x9b, 0x01, 0x84, 0x1d, + 0x77, 0xe2, 0x3a, 0xf1, 0x1d, 0x0e, 0x93, 0xa9, 0x13, 0x63, 0xd1, 0xf0, 0xb1, 0x1b, 0x01, 0xd6, + 0xe1, 0xd5, 0xb2, 0xb3, 0x70, 0x3e, 0xff, 0xb3, 0x02, 0xcb, 0x51, 0xe2, 0x48, 0x10, 0xc8, 0xbf, + 0x14, 0xf1, 0xb9, 0x04, 0xb3, 0x76, 0xa0, 0xa7, 0x1b, 0xe0, 0x28, 0x2f, 0xc7, 0xb4, 0x69, 0x3b, + 0xb8, 0x9b, 0x6c, 0x6d, 0x53, 0x57, 0xe0, 0x9c, 0x98, 0x7c, 0x7e, 0xbe, 0x2f, 0xa8, 0xc3, 0x42, + 0x8c, 0x75, 0xba, 0xb6, 0x9d, 0x33, 0xad, 0x2f, 0xe3, 0xa0, 0x6b, 0x30, 0xc9, 0xbb, 0x1b, 0xb1, + 0x95, 0xc8, 0xe5, 0xc6, 0x63, 0x4d, 0x0b, 0x7d, 0x02, 0x67, 0xcd, 0x88, 0xd4, 0xc4, 0xd6, 0x67, + 0x8e, 0xb5, 0x35, 0x8a, 0x51, 0xf4, 0xf7, 0xbe, 0x0f, 0x33, 0x89, 0x8e, 0x45, 0x16, 0x24, 0x0c, + 0x0f, 0x1a, 0x24, 0x4c, 0xf7, 0x41, 0x59, 0x94, 0x70, 0x1e, 0x20, 0x72, 0xf7, 0x6c, 0x8b, 0xba, + 0xc7, 0x15, 0x6d, 0x9c, 0x8f, 0x34, 0x2d, 0xf5, 0x35, 0xa2, 0xcc, 0xd2, 0x4b, 0xe0, 0xd7, 0xf5, + 0xef, 0x43, 0x50, 0xd3, 0x78, 0x3b, 0x2f, 0xa6, 0xa8, 0x83, 0xa7, 0x9b, 0x2f, 0xf3, 0x8a, 0x7e, + 0x1b, 0xe6, 0xd3, 0xb9, 0xd0, 0x9e, 0x6e, 0x87, 0xb8, 0x1d, 0x35, 0x69, 0x64, 0xdb, 0x11, 0xac, + 0xb6, 0xed, 0xe6, 0xd2, 0xa1, 0xbd, 0x66, 0x88, 0xdb, 0xda, 0xd9, 0xc3, 0xdc, 0x58, 0x80, 0xde, + 0x85, 0x11, 0xca, 0xfa, 0x80, 0xdf, 0xa8, 0x38, 0x35, 0xb2, 0x6d, 0x84, 0xc6, 0x6d, 0xc7, 0xdb, + 0xd3, 0xf8, 0x62, 0xb4, 0x05, 0x55, 0x17, 0x1f, 0xe9, 0x7e, 0x97, 0xdf, 0x5c, 0x14, 0xd8, 0x94, + 0x80, 0x4f, 0xba, 0xf8, 0x48, 0xeb, 0xb2, 0x2b, 0x0b, 0xd4, 0x65, 0x58, 0x12, 0xb0, 0x9a, 0x5f, + 0xc4, 0x0f, 0x14, 0x58, 0xd8, 0xe9, 0xb9, 0xe6, 0xce, 0x81, 0xe1, 0x5b, 0x3c, 0x43, 0xca, 0xaf, + 0xe1, 0x22, 0x54, 0x03, 0xaf, 0xeb, 0x9b, 0x58, 0xe7, 0x5d, 0xde, 0xfc, 0x2e, 0xa6, 0xd8, 0xe8, + 0x16, 0x1b, 0x44, 0x4b, 0x30, 0x16, 0x10, 0xe0, 0xe8, 0xfb, 0x36, 0xac, 0x8d, 0xd2, 0xdf, 0x4d, + 0x0b, 0x35, 0xe0, 0x0c, 0x8d, 0x25, 0x2b, 0xa5, 0x01, 0x1e, 0x5d, 0xa7, 0x2e, 0xc1, 0x62, 0x8e, + 0x16, 0x4e, 0xe7, 0xbf, 0x0e, 0xc3, 0x59, 0x32, 0x17, 0x7d, 0x27, 0x5f, 0xa6, 0xac, 0xd4, 0x60, + 0x34, 0xca, 0x48, 0x31, 0x4d, 0x8e, 0x7e, 0x12, 0x45, 0xef, 0xc7, 0xba, 0x71, 0x1e, 0x21, 0xce, + 0x3b, 0x10, 0x9e, 0xe4, 0xf3, 0x50, 0xc3, 0xc7, 0xcd, 0x43, 0xc9, 0x95, 0x30, 0x17, 0xc9, 0x8f, + 0x1e, 0x2f, 0x92, 0xff, 0x88, 0x57, 0x7f, 0xfa, 0x41, 0x35, 0xc5, 0x32, 0x56, 0x8a, 0x65, 0x96, + 0x80, 0xc5, 0xee, 0x31, 0xc5, 0x75, 0x05, 0x46, 0xa3, 0x88, 0x7c, 0x7c, 0x80, 0x88, 0x3c, 0x5a, + 0x9c, 0xcc, 0x26, 0x40, 0x3a, 0x9b, 0x70, 0x13, 0x26, 0x59, 0x6d, 0x8a, 0xf7, 0x72, 0x4f, 0x0c, + 0xd0, 0xcb, 0x3d, 0x41, 0x4b, 0x56, 0xbc, 0x8d, 0xfb, 0x2d, 0xa0, 0xad, 0xd8, 0xfc, 0x75, 0x83, + 0x6e, 0x5b, 0xd8, 0x0d, 0xed, 0xb0, 0x47, 0xb3, 0x81, 0xe3, 0x1a, 0x22, 0x73, 0x9f, 0xd0, 0xa9, + 0x26, 0x9f, 0x41, 0x0f, 0x61, 0x3a, 0x63, 0x1a, 0x78, 0xe6, 0xef, 0xe2, 0x40, 0x46, 0x41, 0xab, + 0xa6, 0x0d, 0x82, 0xba, 0x00, 0x73, 0x69, 0x49, 0xe6, 0x22, 0xfe, 0x27, 0x0a, 0x2c, 0x47, 0xcd, + 0x71, 0x5f, 0x11, 0x0f, 0x4f, 0xfd, 0x63, 0x05, 0xce, 0x89, 0x69, 0xe2, 0xc1, 0xcf, 0xdb, 0xb0, + 0xd0, 0x66, 0xe3, 0xac, 0x2e, 0xa3, 0xdb, 0xae, 0x6e, 0x1a, 0xe6, 0x01, 0xe6, 0x14, 0x9e, 0x6d, + 0x27, 0xa0, 0x9a, 0xee, 0x16, 0x99, 0x42, 0xd7, 0x60, 0x29, 0x07, 0x64, 0x19, 0xa1, 0xb1, 0x67, + 0x04, 0x51, 0x8f, 0xec, 0x42, 0x1a, 0x6e, 0x9b, 0xcf, 0xaa, 0xe7, 0xa0, 0x1e, 0xd1, 0xc3, 0xf9, + 0xf9, 0xa1, 0x17, 0x77, 0x37, 0xa9, 0xbf, 0x37, 0xd4, 0x67, 0x61, 0x6a, 0x9a, 0x53, 0xbb, 0x0e, + 0x33, 0x6e, 0xb7, 0xbd, 0x87, 0x7d, 0xdd, 0x6b, 0xe9, 0xd4, 0x4a, 0x05, 0x94, 0xce, 0x61, 0xad, + 0xca, 0xc6, 0x1f, 0xb5, 0xa8, 0xf1, 0x09, 0x08, 0xb3, 0x23, 0xab, 0x16, 0xd0, 0xd4, 0xc2, 0xb0, + 0x36, 0xc6, 0xcd, 0x5a, 0x80, 0x9a, 0x30, 0xc9, 0x6f, 0x82, 0x1d, 0x55, 0xdc, 0x08, 0x1a, 0x89, + 0x03, 0xcb, 0xf5, 0xd0, 0x93, 0x53, 0xdf, 0x6f, 0xc2, 0xea, 0x0f, 0xa0, 0x2b, 0xb0, 0xc8, 0xf6, + 0x31, 0x3d, 0x37, 0xf4, 0x3d, 0xc7, 0xc1, 0x3e, 0xe5, 0x49, 0x97, 0x7d, 0x29, 0xc6, 0xb5, 0x79, + 0x3a, 0xbd, 0x15, 0xcf, 0x32, 0xbb, 0x48, 0x35, 0xc4, 0xb2, 0x7c, 0x1c, 0x04, 0x3c, 0x21, 0x19, + 0xfd, 0x54, 0x1b, 0x30, 0xcb, 0x2a, 0x5b, 0x04, 0x2e, 0x92, 0x9d, 0xa4, 0x91, 0x56, 0x52, 0x46, + 0x5a, 0x9d, 0x03, 0x94, 0x5c, 0xcf, 0x85, 0xf1, 0x3f, 0x15, 0x98, 0x65, 0xce, 0x7b, 0xd2, 0x4b, + 0x2c, 0x46, 0x83, 0x6e, 0xf0, 0x2a, 0x70, 0x5c, 0xf4, 0xae, 0x6e, 0x5e, 0x28, 0x60, 0x08, 0xc1, + 0x48, 0xb3, 0x66, 0xb4, 0x0e, 0x4c, 0x33, 0x66, 0x89, 0xdc, 0x6b, 0x25, 0x95, 0x7b, 0xdd, 0x82, + 0xe9, 0x43, 0x3b, 0xb0, 0xf7, 0x6c, 0xc7, 0x0e, 0x7b, 0xcc, 0x12, 0x95, 0xa7, 0x0b, 0xab, 0x7d, + 0x10, 0x6a, 0x86, 0xd6, 0x60, 0x92, 0x7f, 0xc2, 0x74, 0xd7, 0xe0, 0x16, 0x77, 0x5c, 0x9b, 0xe0, + 0x63, 0x0f, 0x8d, 0x36, 0x26, 0x5c, 0x48, 0x1e, 0x97, 0x73, 0xe1, 0x87, 0x94, 0x0b, 0x01, 0x0e, + 0x9f, 0x74, 0x71, 0x17, 0x0f, 0xc0, 0x85, 0xec, 0x4e, 0x43, 0xb9, 0x9d, 0xd2, 0x8c, 0xaa, 0x1c, + 0x93, 0x51, 0x8c, 0xce, 0x3e, 0x41, 0x9c, 0xce, 0x1f, 0x2b, 0x30, 0x17, 0xc9, 0xfd, 0x57, 0x86, + 0xd4, 0x47, 0x30, 0x9f, 0xa1, 0x89, 0x6b, 0xe1, 0x15, 0x58, 0xec, 0xf8, 0x9e, 0x89, 0x83, 0xc0, + 0x76, 0xf7, 0x75, 0xfa, 0xf0, 0x8b, 0xd9, 0x01, 0xa2, 0x8c, 0x15, 0x22, 0xf3, 0xfd, 0x69, 0x0a, + 0x49, 0x8d, 0x40, 0xa0, 0x7e, 0xa1, 0xc0, 0xf9, 0x7b, 0x38, 0xd4, 0xfa, 0xcf, 0xc0, 0x1e, 0xe0, + 0x20, 0x30, 0xf6, 0x71, 0xec, 0xb2, 0xdc, 0x84, 0x11, 0x5a, 0x00, 0x62, 0x88, 0x26, 0x36, 0x5f, + 0x2b, 0xa0, 0x36, 0x81, 0x82, 0x56, 0x87, 0x34, 0x0e, 0x36, 0x00, 0x53, 0x88, 0x8d, 0x59, 0x29, + 0xa2, 0x82, 0x1f, 0xf0, 0x39, 0x54, 0x19, 0xd7, 0xdb, 0x7c, 0x86, 0x93, 0xf3, 0x51, 0x61, 0x72, + 0x52, 0x8e, 0xb0, 0x41, 0x75, 0x33, 0x1a, 0x65, 0x89, 0xc8, 0xa9, 0x20, 0x39, 0x56, 0x77, 0x00, + 0xe5, 0x17, 0x25, 0x93, 0x8d, 0xc3, 0x2c, 0xd9, 0xf8, 0xdd, 0x74, 0xb2, 0xf1, 0x52, 0x39, 0x83, + 0x62, 0x62, 0x12, 0x89, 0xc6, 0x36, 0xac, 0xde, 0xc3, 0xe1, 0xf6, 0xfd, 0x27, 0x92, 0xbb, 0x68, + 0x02, 0x30, 0x95, 0x76, 0x5b, 0x5e, 0xc4, 0x80, 0x01, 0xb6, 0x23, 0x82, 0x44, 0xcd, 0x24, 0x15, + 0x3d, 0xf2, 0x57, 0xa0, 0xbe, 0x80, 0x35, 0xc9, 0x76, 0x9c, 0xe9, 0x3b, 0x30, 0x9b, 0x78, 0x20, + 0x48, 0x8b, 0x91, 0xd1, 0xb6, 0xaf, 0x0e, 0xb6, 0xad, 0x36, 0xe3, 0xa7, 0x07, 0x02, 0xf5, 0xdf, + 0x14, 0x98, 0xd3, 0xb0, 0xd1, 0xe9, 0x38, 0x2c, 0x22, 0x8a, 0x4f, 0xb7, 0x00, 0x23, 0x3c, 0xb3, + 0xcf, 0xbe, 0x73, 0xfc, 0x97, 0xfc, 0x3d, 0x81, 0xf8, 0x23, 0x5d, 0x39, 0xad, 0x3f, 0x7a, 0xb2, + 0xe0, 0x42, 0x5d, 0x84, 0xf9, 0xcc, 0xd1, 0xb8, 0x35, 0xf9, 0x99, 0x02, 0xcb, 0x1a, 0x6e, 0xf9, + 0x38, 0x38, 0x88, 0x8b, 0x1c, 0x84, 0x1b, 0x5f, 0xc1, 0xb3, 0xab, 0x2b, 0x70, 0x4e, 0x4c, 0x2a, + 0x3f, 0xcb, 0x35, 0x58, 0xdc, 0xf2, 0xba, 0x2e, 0x11, 0x9e, 0xac, 0x80, 0xae, 0x00, 0xb4, 0x3c, + 0xdf, 0xc4, 0x77, 0x71, 0x68, 0x1e, 0xf0, 0x8c, 0x6d, 0x62, 0x44, 0x35, 0xa0, 0x96, 0x07, 0xe5, + 0xc2, 0x76, 0x07, 0x46, 0xb1, 0x1b, 0xd2, 0x5a, 0x2e, 0x13, 0xb1, 0x37, 0x0a, 0x44, 0x8c, 0x7b, + 0x21, 0xdb, 0xf7, 0x9f, 0x50, 0x5c, 0xbc, 0x5e, 0xcb, 0x61, 0xd5, 0x9f, 0x0d, 0xc1, 0x82, 0x86, + 0x0d, 0x4b, 0x40, 0xdd, 0x26, 0x9c, 0x89, 0xbb, 0x23, 0xaa, 0x9b, 0x2b, 0x45, 0xbe, 0xc5, 0xfd, + 0x27, 0xd4, 0xea, 0xd2, 0xb5, 0xb2, 0x50, 0x2c, 0x1f, 0xcc, 0x55, 0x44, 0xc1, 0xdc, 0x2e, 0xd4, + 0x6c, 0x97, 0xac, 0xb0, 0x0f, 0xb1, 0x8e, 0xdd, 0xd8, 0x82, 0x0d, 0xd8, 0x51, 0x36, 0x1f, 0x03, + 0xdf, 0x71, 0x23, 0x53, 0xd4, 0xb4, 0x88, 0x60, 0x74, 0x08, 0x12, 0x5a, 0x93, 0x1e, 0xa6, 0x84, + 0x8d, 0x91, 0x81, 0x1d, 0xfb, 0x33, 0x8c, 0x5e, 0x85, 0x69, 0xda, 0x17, 0x41, 0x57, 0xb0, 0xf2, + 0xfd, 0x08, 0x2d, 0xdf, 0xd3, 0x76, 0x89, 0xc7, 0xc6, 0x3e, 0x66, 0xdd, 0x7c, 0x7f, 0x3b, 0x04, + 0x8b, 0x39, 0x5e, 0xf1, 0xeb, 0x38, 0x09, 0xb3, 0x84, 0xf6, 0x62, 0xe8, 0x74, 0xf6, 0x02, 0x7d, + 0x0f, 0x16, 0x72, 0x48, 0xa3, 0x1c, 0xe1, 0x71, 0x0d, 0xe0, 0x5c, 0x16, 0x3b, 0x4d, 0x11, 0x0a, + 0xd8, 0x75, 0x46, 0xc4, 0xae, 0x5f, 0x28, 0xb0, 0xf8, 0xb8, 0xeb, 0xef, 0xe3, 0xaf, 0xb7, 0x6c, + 0xa9, 0x75, 0xa8, 0xe5, 0x8f, 0xc9, 0x95, 0xff, 0xcb, 0x21, 0x58, 0x7c, 0x80, 0xbf, 0xf6, 0x3c, + 0xf8, 0xdf, 0xd1, 0xaf, 0xdb, 0x50, 0xcb, 0xf3, 0x8a, 0xeb, 0x97, 0x00, 0x87, 0x22, 0xc2, 0xf1, + 0xb9, 0x02, 0xe7, 0x1e, 0x7a, 0xa1, 0xdd, 0xea, 0x91, 0x70, 0xdb, 0x3b, 0xc4, 0xfe, 0x03, 0x83, + 0xc4, 0xd2, 0x31, 0xd7, 0xbf, 0x07, 0x0b, 0x2d, 0x3e, 0xa3, 0xb7, 0xe9, 0x94, 0x9e, 0x72, 0xd8, + 0x8a, 0xf4, 0x23, 0x8d, 0x8e, 0xf9, 0x6c, 0x73, 0xad, 0xfc, 0x60, 0xa0, 0x5e, 0x80, 0xf3, 0x05, + 0x14, 0x70, 0xa1, 0x30, 0x60, 0xf9, 0x1e, 0x0e, 0xb7, 0x7c, 0x2f, 0x08, 0xf8, 0xad, 0xa4, 0x3e, + 0x6e, 0xa9, 0xc0, 0x4f, 0xc9, 0x04, 0x7e, 0x17, 0xa1, 0x1a, 0x1a, 0xfe, 0x3e, 0x0e, 0xe3, 0x5b, + 0x66, 0x9f, 0xb9, 0x29, 0x36, 0xca, 0xf1, 0xa9, 0xbf, 0xac, 0xc0, 0x39, 0xf1, 0x1e, 0x9c, 0x9f, + 0x6d, 0x82, 0x87, 0x98, 0x86, 0xbd, 0x1e, 0x0b, 0x43, 0xf9, 0xf1, 0xef, 0xc9, 0x1c, 0xc4, 0x42, + 0x74, 0xd4, 0xf9, 0x0e, 0x6e, 0xf7, 0xa8, 0x03, 0xc8, 0xbe, 0x30, 0x93, 0x61, 0x62, 0x08, 0x7d, + 0xae, 0xc0, 0x7c, 0x8b, 0x16, 0xc4, 0x74, 0xd3, 0xe8, 0x06, 0xb8, 0xbf, 0x2d, 0xb3, 0x77, 0x0f, + 0x4e, 0xb6, 0x2d, 0xab, 0xb1, 0x6d, 0x11, 0x8c, 0xa9, 0xcd, 0x51, 0x2b, 0x37, 0x51, 0xef, 0xc0, + 0x6c, 0x8e, 0x4a, 0x81, 0x7b, 0x7a, 0x27, 0xed, 0x9e, 0x6e, 0x14, 0x88, 0x43, 0x96, 0x26, 0x7e, + 0x79, 0x49, 0x1f, 0xb5, 0xde, 0x81, 0xc5, 0x02, 0x02, 0x05, 0xfb, 0xde, 0x4c, 0xee, 0x5b, 0x2d, + 0x4c, 0xf7, 0xde, 0xc3, 0x61, 0xbf, 0xb8, 0x48, 0xf1, 0x26, 0xbd, 0xe2, 0xff, 0x50, 0x60, 0x9d, + 0x97, 0xf3, 0x72, 0x4c, 0xcb, 0xd5, 0x21, 0x24, 0x91, 0xd9, 0x60, 0x52, 0x86, 0x9e, 0x32, 0x21, + 0x8a, 0xfb, 0x2e, 0xa2, 0x5c, 0xf5, 0xe0, 0x4c, 0xe3, 0xdd, 0x16, 0x53, 0x61, 0xe2, 0x57, 0x80, + 0x5e, 0x81, 0xa9, 0x16, 0x71, 0x80, 0x1e, 0x62, 0xe6, 0x4b, 0xf1, 0xf2, 0x53, 0x7a, 0x50, 0xf5, + 0xe1, 0xf5, 0x01, 0xce, 0x1a, 0xbb, 0x4b, 0xc3, 0x91, 0x3f, 0x7e, 0xb2, 0x6b, 0xa5, 0xd0, 0xea, + 0xbb, 0xf4, 0xd9, 0x59, 0xa4, 0xd8, 0xf4, 0x23, 0x39, 0x40, 0x6e, 0x4c, 0x0d, 0xe9, 0xbb, 0xad, + 0x34, 0x58, 0xec, 0x38, 0xcc, 0xf7, 0xcb, 0x2e, 0x51, 0x22, 0xa6, 0xcb, 0xfb, 0xa8, 0x86, 0xb5, + 0x7e, 0x4d, 0x66, 0x87, 0x65, 0x61, 0xba, 0x2e, 0xcd, 0x8b, 0x47, 0x0f, 0x23, 0x79, 0x0a, 0x89, + 0xe5, 0x87, 0xa6, 0xf8, 0x28, 0xcb, 0x20, 0xa9, 0x4d, 0x58, 0xd0, 0x8c, 0x10, 0x3b, 0x76, 0xdb, + 0x0e, 0x3f, 0xee, 0x58, 0x89, 0x44, 0xde, 0x06, 0x9c, 0xb1, 0x8c, 0xd0, 0xe0, 0xcc, 0x58, 0x2e, + 0x6a, 0xc4, 0xbc, 0xe5, 0xf6, 0x34, 0xba, 0x50, 0xfd, 0x08, 0x16, 0x73, 0xa8, 0xf8, 0x01, 0x8e, + 0x8b, 0x6b, 0xf3, 0x9f, 0x1a, 0x00, 0xdc, 0x29, 0xbd, 0xf5, 0xb8, 0x89, 0xbe, 0xaf, 0xc0, 0x82, + 0xf8, 0xdd, 0x39, 0xba, 0x72, 0xb2, 0x7f, 0x14, 0x51, 0x7f, 0xef, 0xd8, 0x70, 0xfc, 0x2c, 0x7f, + 0xa4, 0xc0, 0x62, 0xc1, 0x3f, 0x26, 0x40, 0xef, 0x95, 0x3d, 0xea, 0x2f, 0xa2, 0xe6, 0xea, 0xf1, + 0x01, 0x39, 0x39, 0x3f, 0x55, 0x60, 0xb5, 0xec, 0x71, 0x3e, 0xfa, 0xee, 0x69, 0xff, 0xd9, 0x40, + 0xfd, 0xd6, 0x29, 0x30, 0x70, 0x4a, 0xc9, 0x25, 0x8a, 0x9f, 0xdd, 0x4b, 0x2e, 0x51, 0xfa, 0xdc, + 0x5f, 0x72, 0x89, 0x25, 0xef, 0xfb, 0xff, 0x4c, 0x81, 0x7a, 0xf1, 0xe3, 0x74, 0x54, 0xdc, 0x15, + 0x56, 0xfa, 0x68, 0xbf, 0xfe, 0xfe, 0x89, 0x60, 0x39, 0x5d, 0x3f, 0x56, 0x60, 0xa9, 0xf0, 0xe9, + 0x39, 0xba, 0x56, 0x88, 0xba, 0xec, 0xe5, 0x7b, 0xfd, 0xfa, 0x49, 0x40, 0x39, 0x51, 0x2e, 0x4c, + 0xa5, 0xde, 0x24, 0xa3, 0x37, 0x0b, 0x91, 0x89, 0x9e, 0x3e, 0xd7, 0x1b, 0x83, 0x2e, 0xe7, 0xfb, + 0x7d, 0xae, 0xc0, 0x59, 0xc1, 0xc3, 0x5e, 0xf4, 0xb6, 0xfc, 0xb6, 0x85, 0x4f, 0x89, 0xeb, 0xef, + 0x1c, 0x0f, 0x88, 0x93, 0x10, 0xc2, 0x74, 0xe6, 0x11, 0x2d, 0xda, 0x90, 0xb9, 0x1f, 0x82, 0x4a, + 0x48, 0xfd, 0xad, 0xc1, 0x01, 0xf8, 0xae, 0x47, 0x30, 0x93, 0x7d, 0x09, 0x86, 0x8a, 0xb1, 0x14, + 0xbc, 0x95, 0xab, 0x5f, 0x3e, 0x06, 0x44, 0x42, 0xec, 0x0a, 0xfb, 0x1d, 0x25, 0x62, 0x57, 0xf6, + 0x1a, 0xa5, 0x7e, 0x8a, 0xf6, 0x4a, 0xf4, 0x97, 0x0a, 0x9c, 0x93, 0xb5, 0x43, 0xa2, 0x1b, 0x27, + 0xec, 0xa2, 0x64, 0xa4, 0x7d, 0x70, 0xaa, 0x1e, 0x4c, 0xce, 0xb2, 0x82, 0x9e, 0x41, 0x29, 0xcb, + 0xe4, 0x1d, 0x8b, 0x52, 0x96, 0x95, 0xb4, 0x28, 0x26, 0xee, 0x51, 0xd0, 0x90, 0x5d, 0x7a, 0x8f, + 0xc5, 0xad, 0xf0, 0xa5, 0xf7, 0x28, 0xeb, 0xff, 0x4e, 0xdc, 0xa3, 0xb0, 0x6d, 0xaf, 0xfc, 0x1e, + 0x65, 0xad, 0x83, 0xe5, 0xf7, 0x28, 0xed, 0x15, 0x4c, 0xde, 0x63, 0xbe, 0x33, 0xaf, 0xfc, 0x1e, + 0x0b, 0xfb, 0x02, 0xcb, 0xef, 0xb1, 0xb8, 0x11, 0x10, 0xfd, 0x05, 0xcd, 0x6d, 0x16, 0xb6, 0xdc, + 0xa1, 0xf7, 0x8f, 0x75, 0xe6, 0x74, 0xd3, 0x5f, 0xfd, 0xc6, 0xc9, 0x80, 0x53, 0xa4, 0x15, 0xf6, + 0x9b, 0x4a, 0x49, 0x2b, 0xeb, 0x78, 0x95, 0x92, 0x56, 0xde, 0xe2, 0xfa, 0xd7, 0x0a, 0xac, 0xc8, + 0x1b, 0xcd, 0xd0, 0x77, 0x24, 0x1b, 0x0c, 0xd0, 0x6d, 0x57, 0xbf, 0x79, 0x62, 0x78, 0x4e, 0xe3, + 0x0f, 0x15, 0xa8, 0x15, 0xb5, 0x1b, 0xa2, 0xab, 0x12, 0xec, 0xd2, 0xbe, 0xca, 0xfa, 0xb5, 0x13, + 0x40, 0x72, 0x8a, 0xbe, 0x50, 0x60, 0x4e, 0xd4, 0xb4, 0x86, 0x8a, 0xbf, 0x9c, 0x92, 0x16, 0xbd, + 0xfa, 0xbb, 0xc7, 0x84, 0xe2, 0x54, 0xfc, 0x15, 0xfd, 0xff, 0x50, 0x92, 0xa6, 0x2c, 0xf4, 0x41, + 0x89, 0x6c, 0xc8, 0x3b, 0xea, 0xea, 0xdf, 0x39, 0x29, 0x38, 0x27, 0xf0, 0x33, 0x98, 0xcd, 0xf5, + 0x27, 0xa1, 0xcb, 0x12, 0xa4, 0xe2, 0xb6, 0xb1, 0xfa, 0xe6, 0x71, 0x40, 0xfa, 0xde, 0x48, 0xa6, + 0xe3, 0x48, 0xe2, 0x8d, 0x88, 0xfb, 0xa4, 0x24, 0xde, 0x48, 0x41, 0x33, 0x13, 0x7a, 0x06, 0x93, + 0xc9, 0x0e, 0x10, 0xf4, 0x6d, 0x29, 0x86, 0x4c, 0xcb, 0x53, 0xfd, 0xcd, 0x01, 0x57, 0x27, 0xa4, + 0x50, 0xd4, 0xc2, 0x21, 0x91, 0x42, 0x49, 0x17, 0x8a, 0x44, 0x0a, 0xa5, 0x7d, 0x22, 0xc4, 0xf3, + 0x14, 0x74, 0x66, 0x48, 0x3c, 0xcf, 0xe2, 0x36, 0x8f, 0xfa, 0x3b, 0xc7, 0x03, 0x8a, 0x9f, 0xaa, + 0x40, 0xbf, 0xd1, 0x01, 0x5d, 0x2a, 0xc4, 0x91, 0xeb, 0x9e, 0xa8, 0xbf, 0x31, 0xd0, 0xda, 0xfe, + 0x36, 0xfd, 0x4e, 0x02, 0xc9, 0x36, 0xb9, 0xee, 0x0a, 0xc9, 0x36, 0xf9, 0xd6, 0x04, 0xb6, 0x4d, + 0xd4, 0x08, 0x20, 0xdd, 0x26, 0xd3, 0xbe, 0x20, 0xdd, 0x26, 0xdb, 0x59, 0x40, 0x22, 0x94, 0x54, + 0x11, 0x5f, 0x12, 0xa1, 0x88, 0x1a, 0x10, 0x24, 0x11, 0x8a, 0xb8, 0x37, 0xe0, 0xfb, 0xec, 0x5f, + 0x0b, 0x09, 0x0a, 0xbd, 0x92, 0x50, 0x56, 0xda, 0x14, 0x20, 0x09, 0x65, 0x4b, 0xca, 0xf8, 0xc4, + 0x81, 0x29, 0xac, 0x3b, 0x4b, 0x1c, 0x98, 0xb2, 0xd2, 0xb8, 0xc4, 0x81, 0x29, 0x2f, 0x73, 0xbb, + 0x30, 0x95, 0xaa, 0xda, 0x4a, 0x2e, 0x44, 0x54, 0xb8, 0x96, 0x5c, 0x88, 0xb0, 0x18, 0x4c, 0xcd, + 0x87, 0xa8, 0xc2, 0x8a, 0x64, 0xe1, 0x5f, 0x61, 0xed, 0x58, 0x62, 0x3e, 0x64, 0x65, 0x5c, 0x12, + 0xbf, 0x65, 0x6b, 0xb1, 0x92, 0xf8, 0xad, 0xa0, 0xe2, 0x2b, 0x89, 0xdf, 0x0a, 0x0b, 0xbd, 0x21, + 0x4c, 0x67, 0x8a, 0x8e, 0x92, 0x0f, 0x84, 0xb8, 0x94, 0x2b, 0xf9, 0x40, 0x14, 0xd5, 0x33, 0x49, + 0xb8, 0x9a, 0x29, 0x6a, 0xc9, 0xc2, 0x55, 0x71, 0x99, 0x4f, 0x16, 0xae, 0x16, 0x54, 0xcc, 0xc8, + 0xc6, 0xd9, 0x22, 0x90, 0x64, 0xe3, 0x82, 0xda, 0x9a, 0x64, 0xe3, 0xc2, 0x0a, 0xd3, 0x1f, 0x2a, + 0x30, 0x2f, 0xac, 0xdb, 0xa0, 0x62, 0x89, 0x91, 0x55, 0x9a, 0xea, 0x57, 0x8e, 0x0b, 0x96, 0x90, + 0x77, 0x51, 0xd5, 0x43, 0x22, 0xef, 0x92, 0x72, 0x92, 0x44, 0xde, 0xa5, 0x05, 0xa2, 0x2f, 0x95, + 0xf8, 0x55, 0x53, 0x71, 0x7a, 0x1d, 0xdd, 0x2a, 0x8b, 0x37, 0x4a, 0xcb, 0x10, 0xf5, 0xdb, 0xa7, + 0x41, 0x91, 0x4a, 0xe9, 0x24, 0xf3, 0xeb, 0xf2, 0x94, 0x8e, 0x20, 0x81, 0x2f, 0x4f, 0xe9, 0x08, + 0x53, 0xf7, 0x44, 0x33, 0xd3, 0x49, 0x71, 0x99, 0x66, 0x0a, 0x33, 0xf1, 0x32, 0xcd, 0x14, 0xe7, + 0xdb, 0x6f, 0x5f, 0xfb, 0xcd, 0xf7, 0xf6, 0xed, 0xf0, 0xa0, 0xbb, 0xd7, 0x30, 0xbd, 0xf6, 0x46, + 0xea, 0xdf, 0x86, 0x37, 0xf6, 0xb1, 0xcb, 0xfe, 0x87, 0x7c, 0xe2, 0x9f, 0xd8, 0xbf, 0xcf, 0xff, + 0x3c, 0xbc, 0xbc, 0x37, 0x42, 0xe7, 0xde, 0xfe, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x6b, + 0x68, 0x49, 0xf0, 0x5e, 0x00, 0x00, }, // google/protobuf/duration.proto []byte{ @@ -3125,155 +3125,156 @@ var yarpcFileDescriptorClosurefee8ff76963a38ed = [][]byte{ []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4d, 0x73, 0xdb, 0xc8, 0xd1, 0x7e, 0x41, 0x4a, 0xb2, 0xd4, 0xd4, 0x07, 0x34, 0x92, 0x2c, 0x5a, 0xde, 0xb5, 0x65, 0xee, - 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0xda, 0x5e, 0x5b, 0x71, 0x1c, 0x08, 0x84, 0x2c, 0xd8, - 0x14, 0xc8, 0x0c, 0x41, 0xcb, 0xda, 0x4a, 0x82, 0x82, 0xc8, 0x91, 0x84, 0x98, 0x04, 0x58, 0xc0, - 0xd0, 0xb6, 0xee, 0xa9, 0xca, 0x39, 0x97, 0x54, 0x2a, 0xa7, 0xfc, 0x80, 0xa4, 0x52, 0xa9, 0x9c, - 0x53, 0xa9, 0xca, 0x21, 0xb7, 0x5c, 0xf3, 0x1f, 0xf2, 0x2f, 0x52, 0x33, 0x18, 0x90, 0xe0, 0x27, - 0xe8, 0xa4, 0x6a, 0x73, 0x13, 0x7a, 0x9e, 0xa7, 0xd1, 0xd3, 0xd3, 0xfd, 0xf4, 0x80, 0x82, 0x5c, - 0xfb, 0x8c, 0xf8, 0xbb, 0x35, 0xbb, 0x4e, 0xdc, 0x1a, 0xd9, 0xb5, 0x5b, 0xce, 0xee, 0xbb, 0xbd, - 0xdd, 0xf7, 0x9e, 0xff, 0xf6, 0xbc, 0xe1, 0xbd, 0xdf, 0x69, 0xf9, 0x1e, 0xf5, 0xd0, 0x0a, 0xc3, - 0xec, 0x08, 0xcc, 0x8e, 0xdd, 0x72, 0x76, 0xde, 0xed, 0x6d, 0xdc, 0xba, 0xf0, 0xbc, 0x8b, 0x06, - 0xd9, 0xe5, 0x90, 0xb3, 0xf6, 0xf9, 0x6e, 0xbd, 0xed, 0xdb, 0xd4, 0xf1, 0xdc, 0x90, 0xb4, 0x71, - 0xbb, 0x7f, 0x9d, 0x3a, 0x4d, 0x12, 0x50, 0xbb, 0xd9, 0x12, 0x80, 0xcd, 0x61, 0x6f, 0xae, 0x79, - 0xcd, 0x66, 0xc7, 0xc5, 0xd0, 0xd8, 0xa8, 0x1d, 0xbc, 0x6d, 0x38, 0x01, 0x0d, 0x31, 0xb9, 0x3f, - 0xcc, 0xc2, 0xda, 0x89, 0x08, 0x57, 0xfb, 0x40, 0x6a, 0x6d, 0x16, 0x82, 0xee, 0x9e, 0x7b, 0xa8, - 0x0a, 0x28, 0xda, 0x87, 0x45, 0xa2, 0x95, 0xac, 0xb4, 0x29, 0x6d, 0x65, 0x1e, 0xdc, 0xdb, 0x19, - 0xb2, 0xa5, 0x9d, 0x01, 0x3f, 0x78, 0xf9, 0x7d, 0xbf, 0x09, 0x3d, 0x84, 0x29, 0x7a, 0xd5, 0x22, - 0xd9, 0x14, 0x77, 0x74, 0x67, 0xac, 0x23, 0xf3, 0xaa, 0x45, 0x30, 0x87, 0xa3, 0x27, 0x00, 0x01, - 0xb5, 0x7d, 0x6a, 0xb1, 0x34, 0x64, 0xd3, 0x9c, 0xbc, 0xb1, 0x13, 0xe6, 0x68, 0x27, 0xca, 0xd1, - 0x8e, 0x19, 0xe5, 0x08, 0xcf, 0x71, 0x34, 0x7b, 0x66, 0xd4, 0x5a, 0xc3, 0x0b, 0x48, 0x48, 0x9d, - 0x4a, 0xa6, 0x72, 0x34, 0xa7, 0x9a, 0x30, 0x1f, 0x52, 0x03, 0x6a, 0xd3, 0x76, 0x90, 0x9d, 0xde, - 0x94, 0xb6, 0x16, 0x1f, 0xec, 0x4d, 0xb6, 0x7b, 0x95, 0x31, 0x2b, 0x9c, 0x88, 0x33, 0xb5, 0xee, - 0x03, 0xba, 0x0b, 0x8b, 0x97, 0x4e, 0x40, 0x3d, 0xff, 0xca, 0x6a, 0x10, 0xf7, 0x82, 0x5e, 0x66, - 0x67, 0x36, 0xa5, 0xad, 0x34, 0x5e, 0x10, 0xd6, 0x22, 0x37, 0xa2, 0x9f, 0xc0, 0x5a, 0xcb, 0xf6, - 0x89, 0x4b, 0xbb, 0xe9, 0xb7, 0x1c, 0xf7, 0xdc, 0xcb, 0x5e, 0xe3, 0x5b, 0xd8, 0x1a, 0x1a, 0x45, - 0x99, 0x33, 0x7a, 0x4e, 0x12, 0xaf, 0xb4, 0x06, 0x8d, 0x48, 0x81, 0xc5, 0xae, 0x5b, 0x9e, 0x99, - 0xd9, 0xc4, 0xcc, 0x2c, 0x74, 0x18, 0x3c, 0x3b, 0xdb, 0x30, 0xd5, 0x24, 0x4d, 0x2f, 0x3b, 0xc7, - 0x89, 0x37, 0x86, 0xc6, 0x73, 0x4c, 0x9a, 0x1e, 0xe6, 0x30, 0x84, 0x61, 0x39, 0x20, 0xb6, 0x5f, - 0xbb, 0xb4, 0x6c, 0x4a, 0x7d, 0xe7, 0xac, 0x4d, 0x49, 0x90, 0x05, 0xce, 0xbd, 0x3b, 0x94, 0x5b, - 0xe1, 0x68, 0xa5, 0x03, 0xc6, 0x72, 0xd0, 0x67, 0x41, 0x45, 0x58, 0xb6, 0xdb, 0xd4, 0xb3, 0x7c, - 0x12, 0x10, 0x6a, 0xb5, 0x3c, 0xc7, 0xa5, 0x41, 0x36, 0xc3, 0x7d, 0x6e, 0x0e, 0xf5, 0x89, 0x19, - 0xb0, 0xcc, 0x71, 0x78, 0x89, 0x51, 0x63, 0x06, 0x74, 0x13, 0xe6, 0x58, 0x7b, 0x58, 0xac, 0x3f, - 0xb2, 0xf3, 0x9b, 0xd2, 0xd6, 0x1c, 0x9e, 0x65, 0x86, 0xa2, 0x13, 0x50, 0xb4, 0x0e, 0xd7, 0x9c, - 0xc0, 0xaa, 0xf9, 0x9e, 0x9b, 0x5d, 0xd8, 0x94, 0xb6, 0x66, 0xf1, 0x8c, 0x13, 0xa8, 0xbe, 0xe7, - 0xa2, 0x7d, 0xc8, 0xb4, 0x5b, 0x75, 0x9b, 0x8a, 0x02, 0x5b, 0x4c, 0x4c, 0x23, 0x84, 0x70, 0x9e, - 0xc3, 0x9f, 0x83, 0xdc, 0xb2, 0x7d, 0xea, 0xf0, 0x63, 0xa8, 0x79, 0xee, 0xb9, 0x73, 0x91, 0x5d, - 0xda, 0x4c, 0x6f, 0x65, 0x1e, 0x3c, 0x9f, 0xac, 0xca, 0xd8, 0x61, 0xb2, 0x53, 0x0f, 0x5d, 0xa8, - 0xdc, 0x83, 0xe6, 0x52, 0xff, 0x0a, 0x2f, 0xb5, 0x7a, 0xad, 0x1b, 0x07, 0xb0, 0x3a, 0x0c, 0x88, - 0x64, 0x48, 0xbf, 0x25, 0x57, 0xbc, 0xb5, 0xe7, 0x30, 0xfb, 0x13, 0xad, 0xc2, 0xf4, 0x3b, 0xbb, - 0xd1, 0x0e, 0xbb, 0x74, 0x0e, 0x87, 0x0f, 0x4f, 0x53, 0xdf, 0x4a, 0xb9, 0xdf, 0xa4, 0xe0, 0xd6, - 0x60, 0xa5, 0x73, 0x67, 0x42, 0xbf, 0xd0, 0xd3, 0x78, 0x16, 0x43, 0xbd, 0xf8, 0x74, 0xe8, 0x5e, - 0x4c, 0x91, 0xda, 0x58, 0x92, 0x6d, 0xd8, 0xec, 0x56, 0xa5, 0x68, 0x78, 0xcf, 0xea, 0xb6, 0xaf, - 0xd7, 0xa6, 0x42, 0x39, 0x6e, 0x0c, 0x24, 0xb8, 0x20, 0x02, 0xc0, 0x9f, 0x74, 0x5c, 0x54, 0xb8, - 0x08, 0x78, 0x6a, 0xd4, 0xd0, 0x5e, 0x9b, 0xa2, 0x13, 0xb8, 0xc9, 0xc3, 0x1b, 0xe1, 0x3d, 0x9d, - 0xe4, 0x7d, 0x9d, 0xb1, 0x87, 0x38, 0xce, 0xfd, 0x43, 0x82, 0x95, 0x21, 0xed, 0xc7, 0xaa, 0xaa, - 0xee, 0x35, 0x6d, 0xc7, 0xb5, 0x9c, 0xba, 0x48, 0xf2, 0x6c, 0x68, 0xd0, 0xeb, 0xe8, 0x36, 0x64, - 0xc4, 0xa2, 0x6b, 0x37, 0xa3, 0x7c, 0x43, 0x68, 0x32, 0xec, 0x26, 0x19, 0x21, 0xc3, 0xe9, 0xff, - 0x56, 0x86, 0xef, 0xc0, 0xbc, 0xe3, 0x3a, 0xd4, 0xb1, 0x29, 0xa9, 0xb3, 0xb8, 0xa6, 0xb8, 0x02, - 0x65, 0x3a, 0x36, 0xbd, 0x9e, 0xfb, 0x95, 0x04, 0x6b, 0xda, 0x07, 0x4a, 0x7c, 0xd7, 0x6e, 0x7c, - 0x2f, 0xa3, 0xa1, 0x3f, 0xa6, 0xd4, 0x60, 0x4c, 0xbf, 0x9e, 0x81, 0x95, 0x32, 0x71, 0xeb, 0x8e, - 0x7b, 0xa1, 0xd4, 0xa8, 0xf3, 0xce, 0xa1, 0x57, 0x3c, 0xa2, 0xdb, 0x90, 0xb1, 0xc5, 0x73, 0x37, - 0xcb, 0x10, 0x99, 0xf4, 0x3a, 0x3a, 0x84, 0x85, 0x0e, 0x20, 0x71, 0xfe, 0x44, 0xae, 0xf9, 0xfc, - 0x99, 0xb7, 0x63, 0x4f, 0xe8, 0x39, 0x4c, 0xb3, 0x59, 0x10, 0x8e, 0xa0, 0xc5, 0x07, 0xf7, 0x87, - 0x8b, 0x70, 0x6f, 0x84, 0x4c, 0xf6, 0x09, 0x0e, 0x79, 0x48, 0x87, 0xe5, 0x4b, 0x62, 0xfb, 0xf4, - 0x8c, 0xd8, 0xd4, 0xaa, 0x13, 0x6a, 0x3b, 0x8d, 0x40, 0x0c, 0xa5, 0x4f, 0x46, 0x28, 0xfa, 0x55, - 0xc3, 0xb3, 0xeb, 0x58, 0xee, 0xd0, 0x0a, 0x21, 0x0b, 0xbd, 0x84, 0x95, 0x86, 0x1d, 0x50, 0xab, - 0xeb, 0x8f, 0x0b, 0xd0, 0x74, 0xa2, 0x00, 0x2d, 0x33, 0xda, 0x51, 0xc4, 0xe2, 0x3a, 0x74, 0x08, - 0xdc, 0x18, 0x76, 0x05, 0xa9, 0x87, 0x9e, 0x66, 0x12, 0x3d, 0x2d, 0x31, 0x52, 0x25, 0xe4, 0x70, - 0x3f, 0x59, 0xb8, 0x66, 0x53, 0x4a, 0x9a, 0x2d, 0xca, 0xc7, 0xd4, 0x34, 0x8e, 0x1e, 0xd1, 0x7d, - 0x90, 0x9b, 0xf6, 0x07, 0xa7, 0xd9, 0x6e, 0x5a, 0xc2, 0x14, 0xf0, 0x91, 0x33, 0x8d, 0x97, 0x84, - 0x5d, 0x11, 0x66, 0x36, 0x9b, 0x82, 0xda, 0x25, 0xa9, 0xb7, 0x1b, 0x51, 0x24, 0x73, 0xc9, 0xb3, - 0xa9, 0xc3, 0xe0, 0x71, 0xa8, 0xb0, 0x44, 0x3e, 0xb4, 0x9c, 0xb0, 0x67, 0x43, 0x1f, 0x90, 0xe8, - 0x63, 0xb1, 0x4b, 0xe1, 0x4e, 0x9e, 0xc3, 0x3c, 0x4f, 0xca, 0xb9, 0xed, 0x34, 0xda, 0x3e, 0x11, - 0x83, 0x65, 0xf8, 0x31, 0x1d, 0x86, 0x18, 0x9c, 0x61, 0x0c, 0xf1, 0x80, 0xbe, 0x82, 0x55, 0xee, - 0x80, 0xd5, 0x3a, 0xf1, 0x2d, 0xa7, 0x4e, 0x5c, 0xea, 0xd0, 0x2b, 0x31, 0x5b, 0x10, 0x5b, 0x3b, - 0xe1, 0x4b, 0xba, 0x58, 0x41, 0x8f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, - 0xe5, 0x5e, 0x5e, 0xee, 0xcf, 0x29, 0xb8, 0x21, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, - 0x61, 0xbf, 0x8c, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, - 0xbf, 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, - 0x76, 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, - 0xf5, 0x9b, 0xd0, 0x75, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, - 0x3a, 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, - 0x4f, 0x97, 0x0f, 0x56, 0x70, 0xea, 0x63, 0x2b, 0xf8, 0x19, 0xcc, 0xf7, 0x34, 0x63, 0xf2, 0x9d, - 0x37, 0x13, 0x0c, 0x6f, 0xc4, 0xa9, 0xde, 0x46, 0xc4, 0xb0, 0xee, 0xf9, 0xce, 0x85, 0xe3, 0xda, - 0x0d, 0xab, 0x2f, 0xc8, 0x64, 0xe9, 0x58, 0x8b, 0xa8, 0x95, 0x78, 0xb0, 0xb9, 0xbf, 0xa4, 0xe0, - 0x46, 0x24, 0x77, 0x45, 0xaf, 0x66, 0x37, 0x0a, 0x4e, 0xd0, 0xb2, 0x69, 0xed, 0x72, 0x32, 0x75, - 0xfe, 0xdf, 0xa7, 0xeb, 0x67, 0x70, 0xab, 0x37, 0x02, 0xcb, 0x3b, 0xb7, 0xe8, 0xa5, 0x13, 0x58, - 0xf1, 0x2c, 0x8e, 0x77, 0xb8, 0xd1, 0x13, 0x51, 0xe9, 0xdc, 0xbc, 0x74, 0x02, 0xa1, 0x69, 0xe8, - 0x53, 0x00, 0x7e, 0xeb, 0xa0, 0xde, 0x5b, 0x12, 0x56, 0xe1, 0x3c, 0xe6, 0xd7, 0x24, 0x93, 0x19, - 0x72, 0x2f, 0x21, 0x13, 0xbf, 0x88, 0xee, 0xc3, 0x8c, 0xb8, 0xcb, 0x4a, 0xfc, 0x2e, 0xf8, 0x59, - 0xc2, 0x5d, 0x96, 0x5f, 0xf3, 0x05, 0x25, 0xf7, 0xc7, 0x14, 0x2c, 0xf6, 0x2e, 0xa1, 0x2f, 0x60, - 0xe9, 0xcc, 0x71, 0x6d, 0xff, 0xca, 0xaa, 0x5d, 0x92, 0xda, 0xdb, 0xa0, 0xdd, 0x14, 0x87, 0xb0, - 0x18, 0x9a, 0x55, 0x61, 0x45, 0x6b, 0x30, 0xe3, 0xb7, 0xdd, 0x68, 0xf8, 0xce, 0xe1, 0x69, 0xbf, - 0xcd, 0x6e, 0x29, 0xcf, 0xe0, 0xe6, 0xb9, 0xe3, 0x07, 0x6c, 0x60, 0x85, 0xc5, 0x6e, 0xd5, 0xbc, - 0x66, 0xab, 0x41, 0x7a, 0x3a, 0x39, 0xcb, 0x21, 0x51, 0x3b, 0xa8, 0x11, 0x80, 0xd3, 0xe7, 0x6b, - 0x3e, 0xb1, 0x3b, 0x67, 0x93, 0x9c, 0xca, 0x8c, 0xc0, 0x0b, 0x19, 0x5e, 0xe0, 0xc2, 0xec, 0xb8, - 0x17, 0x93, 0x96, 0xe9, 0x7c, 0x44, 0xe0, 0x0e, 0x6e, 0x01, 0xf0, 0x0f, 0x04, 0x6a, 0x9f, 0x35, - 0xc2, 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x24, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0x6e, - 0x95, 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, - 0xc5, 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x73, 0xd8, 0x1c, 0x81, - 0xa9, 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, - 0x15, 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x62, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, - 0x71, 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, - 0x53, 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, - 0xff, 0xcb, 0x54, 0xf7, 0xf7, 0x03, 0xbd, 0x8e, 0x49, 0xbb, 0xa3, 0xb9, 0x9f, 0xc3, 0xe6, 0x49, - 0x09, 0xbf, 0x3a, 0x2c, 0x96, 0x4e, 0x2c, 0xbd, 0x60, 0x61, 0xad, 0x5a, 0xd1, 0xac, 0x72, 0xa9, - 0xa8, 0xab, 0xa7, 0xb1, 0x48, 0xbe, 0x85, 0x6f, 0x46, 0xa2, 0x94, 0x22, 0xb3, 0x16, 0xaa, 0xe5, - 0xa2, 0xae, 0xb2, 0xb7, 0x1e, 0x2a, 0x7a, 0x51, 0x2b, 0x58, 0x25, 0xa3, 0x78, 0x2a, 0x4b, 0xe8, - 0x4b, 0xd8, 0x9a, 0x94, 0x29, 0xa7, 0xd0, 0x36, 0xdc, 0x1f, 0x89, 0xc6, 0xda, 0x4b, 0x4d, 0x35, - 0x63, 0xf0, 0x34, 0xda, 0x83, 0xed, 0x91, 0x70, 0x53, 0xc3, 0xc7, 0xba, 0xc1, 0x13, 0x7a, 0x68, - 0xe1, 0xaa, 0x61, 0xe8, 0xc6, 0x0b, 0x79, 0x2a, 0xff, 0x3b, 0x09, 0x96, 0x07, 0x86, 0x11, 0xba, - 0x0d, 0x37, 0xcb, 0x0a, 0xd6, 0x0c, 0xd3, 0x52, 0x8b, 0xa5, 0x61, 0x09, 0x18, 0x01, 0x50, 0x0e, - 0x14, 0xa3, 0x50, 0x32, 0x64, 0x09, 0xdd, 0x83, 0xdc, 0x30, 0x80, 0xa8, 0x05, 0x51, 0x1a, 0x72, - 0x0a, 0xdd, 0x81, 0x4f, 0x87, 0xe1, 0x3a, 0xd1, 0xca, 0xe9, 0xfc, 0xbf, 0x52, 0xf0, 0xc9, 0xb8, - 0x9f, 0x29, 0x58, 0x05, 0x76, 0xb6, 0xad, 0xbd, 0xd1, 0xd4, 0xaa, 0xc9, 0xce, 0x3c, 0xf4, 0xc7, - 0x4e, 0xbe, 0x5a, 0x89, 0x45, 0x1e, 0x4f, 0xe9, 0x08, 0xb0, 0x5a, 0x3a, 0x2e, 0x17, 0x35, 0x93, - 0x57, 0x53, 0x1e, 0xee, 0x25, 0xc1, 0xc3, 0x03, 0x96, 0x53, 0x3d, 0x67, 0x3b, 0xca, 0x35, 0xdf, - 0x37, 0x6b, 0x05, 0xb4, 0x03, 0xf9, 0x24, 0x74, 0x27, 0x0b, 0x05, 0x79, 0x0a, 0x7d, 0x03, 0x5f, - 0x25, 0x07, 0x6e, 0x98, 0xba, 0x51, 0xd5, 0x0a, 0x96, 0x52, 0xb1, 0x0c, 0xed, 0x44, 0x9e, 0x9e, - 0x64, 0xbb, 0xa6, 0x7e, 0xcc, 0xea, 0xb3, 0x6a, 0xca, 0x33, 0xf9, 0xbf, 0x4a, 0x70, 0x5d, 0xf5, - 0x5c, 0xea, 0xb8, 0x6d, 0xa2, 0x04, 0x06, 0x79, 0xaf, 0x87, 0xf7, 0x1c, 0xcf, 0x47, 0x77, 0xe1, - 0x4e, 0xe4, 0x5f, 0xb8, 0xb7, 0x74, 0x43, 0x37, 0x75, 0xc5, 0x2c, 0xe1, 0x58, 0x7e, 0xc7, 0xc2, - 0x58, 0x43, 0x16, 0x34, 0x1c, 0xe6, 0x75, 0x34, 0x0c, 0x6b, 0x26, 0x3e, 0x15, 0xa5, 0x10, 0x2a, - 0xcc, 0x68, 0xac, 0x8a, 0x59, 0x7f, 0x8b, 0xfe, 0x97, 0xd3, 0xf9, 0xdf, 0x4b, 0x90, 0x11, 0xdf, - 0xb6, 0xfc, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, - 0x86, 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, - 0x86, 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xde, 0x83, 0x39, 0xd2, - 0x14, 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x2b, 0xc1, 0x8d, 0x48, 0x09, 0x4d, 0x36, - 0x58, 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0xf7, 0xe1, 0x6e, 0x47, 0xc3, - 0x4c, 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, - 0x90, 0x25, 0xf4, 0x05, 0x7c, 0x36, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, - 0xb0, 0x1e, 0x0f, 0x8e, 0x7d, 0x20, 0x90, 0x7a, 0x18, 0xda, 0x3d, 0xc8, 0xf5, 0x3a, 0x11, 0x3a, - 0xd7, 0x1f, 0xd7, 0x1e, 0x6c, 0x8f, 0xc1, 0x55, 0x8d, 0x23, 0xc5, 0x28, 0xb0, 0xe7, 0x08, 0x24, - 0x4b, 0xe8, 0x39, 0xec, 0x8f, 0xa1, 0x1c, 0x28, 0x85, 0x6e, 0x96, 0x3b, 0x13, 0x47, 0x31, 0x4d, - 0xac, 0x1f, 0x54, 0x4d, 0xad, 0x22, 0xa7, 0x90, 0x06, 0x4a, 0x82, 0x83, 0x5e, 0x1d, 0x1a, 0xea, - 0x26, 0x8d, 0x9e, 0xc0, 0xc3, 0xa4, 0x38, 0xc2, 0x92, 0xd1, 0x8f, 0x35, 0x1c, 0xa7, 0x4e, 0xa1, - 0xa7, 0xf0, 0x28, 0x81, 0x2a, 0xde, 0x3c, 0xc0, 0x9d, 0x46, 0xfb, 0xf0, 0x38, 0x31, 0x7a, 0xb5, - 0x84, 0x0b, 0xd6, 0xb1, 0x82, 0x5f, 0xf5, 0x92, 0x67, 0x90, 0x0e, 0x5a, 0xd2, 0x8b, 0x85, 0xba, - 0x59, 0x43, 0x74, 0x21, 0xe6, 0xea, 0xda, 0x04, 0x59, 0x64, 0x86, 0x04, 0x37, 0xb3, 0xe8, 0x05, - 0xa8, 0x93, 0xa5, 0x62, 0xbc, 0xa3, 0x39, 0xf4, 0x06, 0xcc, 0x8f, 0x3b, 0x55, 0xed, 0x8d, 0xa9, - 0x61, 0x43, 0x49, 0xf2, 0x0c, 0xe8, 0x19, 0x3c, 0x49, 0x4c, 0x5a, 0xaf, 0xfe, 0xc4, 0xe8, 0x19, - 0xf4, 0x18, 0xbe, 0x1e, 0x43, 0x8f, 0xd7, 0x48, 0xf7, 0x56, 0xa0, 0x17, 0xe4, 0x79, 0xf4, 0x10, - 0xf6, 0xc6, 0x10, 0x79, 0x17, 0x5a, 0x15, 0x53, 0x57, 0x5f, 0x9d, 0x86, 0xcb, 0x45, 0xbd, 0x62, - 0xca, 0x0b, 0xe8, 0x47, 0xf0, 0x83, 0x31, 0xb4, 0xce, 0x66, 0xd9, 0x1f, 0x1a, 0x8e, 0xb5, 0x18, - 0x83, 0x55, 0xb1, 0x26, 0x2f, 0x4e, 0x70, 0x26, 0x15, 0xfd, 0x45, 0x72, 0xe6, 0x96, 0x90, 0x0a, - 0xcf, 0x27, 0x6a, 0x11, 0xf5, 0x48, 0x2f, 0x16, 0x86, 0x3b, 0x91, 0xd1, 0xd7, 0xb0, 0x3b, 0xc6, - 0xc9, 0x61, 0x09, 0xab, 0x9a, 0x98, 0x58, 0x1d, 0x91, 0x58, 0x46, 0x8f, 0xe0, 0xc1, 0x38, 0x92, - 0xa2, 0x17, 0x4b, 0xaf, 0x35, 0xdc, 0xcf, 0x43, 0x6c, 0x8c, 0x4e, 0xb6, 0x75, 0xdd, 0x28, 0x57, - 0x4d, 0xab, 0xa2, 0x7f, 0xa7, 0xc9, 0x2b, 0x6c, 0x8c, 0x26, 0x9e, 0x54, 0x94, 0x2b, 0x79, 0x75, - 0x50, 0x8c, 0x07, 0x5e, 0x72, 0xa0, 0x1b, 0x0a, 0x3e, 0x95, 0xd7, 0x12, 0x6a, 0x6f, 0x50, 0xe8, - 0x7a, 0x4a, 0xe8, 0xfa, 0x24, 0xdb, 0xd1, 0x14, 0xac, 0x1e, 0xc5, 0x33, 0xbe, 0xce, 0xa6, 0xce, - 0x1d, 0xfe, 0x83, 0xcb, 0xc0, 0xbd, 0x2a, 0x2e, 0xf1, 0x7b, 0xb0, 0x1d, 0x9e, 0xdb, 0x90, 0x2a, - 0x18, 0xa1, 0xf6, 0x07, 0xf0, 0xc3, 0xc9, 0x28, 0x9d, 0x75, 0xa5, 0x88, 0x35, 0xa5, 0x70, 0xda, - 0xb9, 0x92, 0x4a, 0xf9, 0xbf, 0x49, 0x90, 0x57, 0x6d, 0xb7, 0x46, 0x1a, 0xd1, 0xef, 0xb8, 0x63, - 0xa3, 0xdc, 0x87, 0xc7, 0x13, 0xf4, 0xfb, 0x88, 0x78, 0x4f, 0xa0, 0xf2, 0xb1, 0xe4, 0xaa, 0xf1, - 0xca, 0x28, 0x9d, 0x18, 0xe3, 0x08, 0x62, 0x13, 0x15, 0xe7, 0x82, 0xff, 0x08, 0x3d, 0xd9, 0x26, - 0x44, 0xd9, 0xfd, 0x67, 0x9b, 0xf8, 0x58, 0xf2, 0x44, 0x9b, 0x38, 0xf8, 0x29, 0xac, 0xd7, 0xbc, - 0xe6, 0xb0, 0xaf, 0xf8, 0x83, 0x85, 0x68, 0x3b, 0x65, 0xf6, 0x19, 0x5b, 0x96, 0xbe, 0xdb, 0xbb, - 0x70, 0xe8, 0x65, 0xfb, 0x6c, 0xa7, 0xe6, 0x35, 0x77, 0xe3, 0xff, 0xc1, 0xdd, 0x76, 0xea, 0x8d, - 0xdd, 0x0b, 0x2f, 0xfc, 0x8f, 0xb0, 0xf8, 0x77, 0xee, 0xbe, 0xdd, 0x72, 0xde, 0xed, 0x9d, 0xcd, - 0x70, 0xdb, 0xd7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x86, 0x60, 0x70, 0x2f, 0x8e, 0x1e, 0x00, - 0x00, + 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0x87, 0xd7, 0x56, 0x1c, 0x07, 0x02, 0x21, 0x0b, 0x36, + 0x05, 0x32, 0x43, 0xd0, 0xb2, 0xb6, 0x92, 0xa0, 0x20, 0x72, 0x24, 0x21, 0x26, 0x01, 0x16, 0x30, + 0xb4, 0xad, 0x7b, 0xaa, 0x72, 0x4e, 0x0e, 0xa9, 0x54, 0x4e, 0xf9, 0x01, 0x49, 0xa5, 0x52, 0x39, + 0xa7, 0x72, 0xcb, 0x2d, 0xd7, 0xfc, 0x87, 0xfc, 0x8b, 0xd4, 0x0c, 0x06, 0x24, 0xf8, 0x09, 0x2a, + 0xa9, 0xda, 0xdc, 0x84, 0x9e, 0xe7, 0x69, 0xf4, 0xf4, 0x74, 0x3f, 0x3d, 0x84, 0x20, 0xd7, 0x3e, + 0x23, 0xfe, 0x6e, 0xcd, 0xae, 0x13, 0xb7, 0x46, 0x76, 0xed, 0x96, 0xb3, 0xfb, 0x6e, 0x6f, 0xf7, + 0xbd, 0xe7, 0xbf, 0x3d, 0x6f, 0x78, 0xef, 0x77, 0x5a, 0xbe, 0x47, 0x3d, 0xb4, 0xc2, 0x30, 0x3b, + 0x02, 0xb3, 0x63, 0xb7, 0x9c, 0x9d, 0x77, 0x7b, 0x1b, 0x77, 0x2e, 0x3c, 0xef, 0xa2, 0x41, 0x76, + 0x39, 0xe4, 0xac, 0x7d, 0xbe, 0x5b, 0x6f, 0xfb, 0x36, 0x75, 0x3c, 0x37, 0x24, 0x6d, 0xdc, 0xed, + 0x5f, 0xa7, 0x4e, 0x93, 0x04, 0xd4, 0x6e, 0xb6, 0x04, 0x60, 0x73, 0xd8, 0x9b, 0x6b, 0x5e, 0xb3, + 0xd9, 0x71, 0x31, 0x34, 0x36, 0x6a, 0x07, 0x6f, 0x1b, 0x4e, 0x40, 0x43, 0x4c, 0xee, 0x8f, 0xb3, + 0xb0, 0x76, 0x22, 0xc2, 0xd5, 0x3e, 0x90, 0x5a, 0x9b, 0x85, 0xa0, 0xbb, 0xe7, 0x1e, 0xaa, 0x02, + 0x8a, 0xf6, 0x61, 0x91, 0x68, 0x25, 0x2b, 0x6d, 0x4a, 0x5b, 0x99, 0x47, 0x0f, 0x76, 0x86, 0x6c, + 0x69, 0x67, 0xc0, 0x0f, 0x5e, 0x7e, 0xdf, 0x6f, 0x42, 0x5f, 0xc3, 0x14, 0xbd, 0x6a, 0x91, 0x6c, + 0x8a, 0x3b, 0xba, 0x37, 0xd6, 0x91, 0x79, 0xd5, 0x22, 0x98, 0xc3, 0xd1, 0x13, 0x80, 0x80, 0xda, + 0x3e, 0xb5, 0x58, 0x1a, 0xb2, 0x69, 0x4e, 0xde, 0xd8, 0x09, 0x73, 0xb4, 0x13, 0xe5, 0x68, 0xc7, + 0x8c, 0x72, 0x84, 0xe7, 0x38, 0x9a, 0x3d, 0x33, 0x6a, 0xad, 0xe1, 0x05, 0x24, 0xa4, 0x4e, 0x25, + 0x53, 0x39, 0x9a, 0x53, 0x4d, 0x98, 0x0f, 0xa9, 0x01, 0xb5, 0x69, 0x3b, 0xc8, 0x4e, 0x6f, 0x4a, + 0x5b, 0x8b, 0x8f, 0xf6, 0x26, 0xdb, 0xbd, 0xca, 0x98, 0x15, 0x4e, 0xc4, 0x99, 0x5a, 0xf7, 0x01, + 0xdd, 0x87, 0xc5, 0x4b, 0x27, 0xa0, 0x9e, 0x7f, 0x65, 0x35, 0x88, 0x7b, 0x41, 0x2f, 0xb3, 0x33, + 0x9b, 0xd2, 0x56, 0x1a, 0x2f, 0x08, 0x6b, 0x91, 0x1b, 0xd1, 0x4f, 0x60, 0xad, 0x65, 0xfb, 0xc4, + 0xa5, 0xdd, 0xf4, 0x5b, 0x8e, 0x7b, 0xee, 0x65, 0x6f, 0xf0, 0x2d, 0x6c, 0x0d, 0x8d, 0xa2, 0xcc, + 0x19, 0x3d, 0x27, 0x89, 0x57, 0x5a, 0x83, 0x46, 0xa4, 0xc0, 0x62, 0xd7, 0x2d, 0xcf, 0xcc, 0x6c, + 0x62, 0x66, 0x16, 0x3a, 0x0c, 0x9e, 0x9d, 0x6d, 0x98, 0x6a, 0x92, 0xa6, 0x97, 0x9d, 0xe3, 0xc4, + 0x5b, 0x43, 0xe3, 0x39, 0x26, 0x4d, 0x0f, 0x73, 0x18, 0xc2, 0xb0, 0x1c, 0x10, 0xdb, 0xaf, 0x5d, + 0x5a, 0x36, 0xa5, 0xbe, 0x73, 0xd6, 0xa6, 0x24, 0xc8, 0x02, 0xe7, 0xde, 0x1f, 0xca, 0xad, 0x70, + 0xb4, 0xd2, 0x01, 0x63, 0x39, 0xe8, 0xb3, 0xa0, 0x22, 0x2c, 0xdb, 0x6d, 0xea, 0x59, 0x3e, 0x09, + 0x08, 0xb5, 0x5a, 0x9e, 0xe3, 0xd2, 0x20, 0x9b, 0xe1, 0x3e, 0x37, 0x87, 0xfa, 0xc4, 0x0c, 0x58, + 0xe6, 0x38, 0xbc, 0xc4, 0xa8, 0x31, 0x03, 0xba, 0x0d, 0x73, 0xac, 0x3d, 0x2c, 0xd6, 0x1f, 0xd9, + 0xf9, 0x4d, 0x69, 0x6b, 0x0e, 0xcf, 0x32, 0x43, 0xd1, 0x09, 0x28, 0x5a, 0x87, 0x1b, 0x4e, 0x60, + 0xd5, 0x7c, 0xcf, 0xcd, 0x2e, 0x6c, 0x4a, 0x5b, 0xb3, 0x78, 0xc6, 0x09, 0x54, 0xdf, 0x73, 0xd1, + 0x3e, 0x64, 0xda, 0xad, 0xba, 0x4d, 0x45, 0x81, 0x2d, 0x26, 0xa6, 0x11, 0x42, 0x38, 0xcf, 0xe1, + 0xcf, 0x41, 0x6e, 0xd9, 0x3e, 0x75, 0xf8, 0x31, 0xd4, 0x3c, 0xf7, 0xdc, 0xb9, 0xc8, 0x2e, 0x6d, + 0xa6, 0xb7, 0x32, 0x8f, 0x9e, 0x4f, 0x56, 0x65, 0xec, 0x30, 0xd9, 0xa9, 0x87, 0x2e, 0x54, 0xee, + 0x41, 0x73, 0xa9, 0x7f, 0x85, 0x97, 0x5a, 0xbd, 0xd6, 0x8d, 0x03, 0x58, 0x1d, 0x06, 0x44, 0x32, + 0xa4, 0xdf, 0x92, 0x2b, 0xde, 0xda, 0x73, 0x98, 0xfd, 0x89, 0x56, 0x61, 0xfa, 0x9d, 0xdd, 0x68, + 0x87, 0x5d, 0x3a, 0x87, 0xc3, 0x87, 0xa7, 0xa9, 0x6f, 0xa5, 0xdc, 0x6f, 0x53, 0x70, 0x67, 0xb0, + 0xd2, 0xb9, 0x33, 0xa1, 0x5f, 0xe8, 0x69, 0x3c, 0x8b, 0xa1, 0x5e, 0x7c, 0x3c, 0x74, 0x2f, 0xa6, + 0x48, 0x6d, 0x2c, 0xc9, 0x36, 0x6c, 0x76, 0xab, 0x52, 0x34, 0xbc, 0x67, 0x75, 0xdb, 0xd7, 0x6b, + 0x53, 0xa1, 0x1c, 0xb7, 0x06, 0x12, 0x5c, 0x10, 0x01, 0xe0, 0x8f, 0x3a, 0x2e, 0x2a, 0x5c, 0x04, + 0x3c, 0x35, 0x6a, 0x68, 0xaf, 0x4d, 0xd1, 0x09, 0xdc, 0xe6, 0xe1, 0x8d, 0xf0, 0x9e, 0x4e, 0xf2, + 0xbe, 0xce, 0xd8, 0x43, 0x1c, 0xe7, 0xfe, 0x21, 0xc1, 0xca, 0x90, 0xf6, 0x63, 0x55, 0x55, 0xf7, + 0x9a, 0xb6, 0xe3, 0x5a, 0x4e, 0x5d, 0x24, 0x79, 0x36, 0x34, 0xe8, 0x75, 0x74, 0x17, 0x32, 0x62, + 0xd1, 0xb5, 0x9b, 0x51, 0xbe, 0x21, 0x34, 0x19, 0x76, 0x93, 0x8c, 0x90, 0xe1, 0xf4, 0x7f, 0x2b, + 0xc3, 0xf7, 0x60, 0xde, 0x71, 0x1d, 0xea, 0xd8, 0x94, 0xd4, 0x59, 0x5c, 0x53, 0x5c, 0x81, 0x32, + 0x1d, 0x9b, 0x5e, 0xcf, 0xfd, 0x4a, 0x82, 0x35, 0xed, 0x03, 0x25, 0xbe, 0x6b, 0x37, 0xbe, 0x97, + 0xd1, 0xd0, 0x1f, 0x53, 0x6a, 0x30, 0xa6, 0xdf, 0xcc, 0xc0, 0x4a, 0x99, 0xb8, 0x75, 0xc7, 0xbd, + 0x50, 0x6a, 0xd4, 0x79, 0xe7, 0xd0, 0x2b, 0x1e, 0xd1, 0x5d, 0xc8, 0xd8, 0xe2, 0xb9, 0x9b, 0x65, + 0x88, 0x4c, 0x7a, 0x1d, 0x1d, 0xc2, 0x42, 0x07, 0x90, 0x38, 0x7f, 0x22, 0xd7, 0x7c, 0xfe, 0xcc, + 0xdb, 0xb1, 0x27, 0xf4, 0x1c, 0xa6, 0xd9, 0x2c, 0x08, 0x47, 0xd0, 0xe2, 0xa3, 0x87, 0xc3, 0x45, + 0xb8, 0x37, 0x42, 0x26, 0xfb, 0x04, 0x87, 0x3c, 0xa4, 0xc3, 0xf2, 0x25, 0xb1, 0x7d, 0x7a, 0x46, + 0x6c, 0x6a, 0xd5, 0x09, 0xb5, 0x9d, 0x46, 0x20, 0x86, 0xd2, 0x47, 0x23, 0x14, 0xfd, 0xaa, 0xe1, + 0xd9, 0x75, 0x2c, 0x77, 0x68, 0x85, 0x90, 0x85, 0x5e, 0xc2, 0x4a, 0xc3, 0x0e, 0xa8, 0xd5, 0xf5, + 0xc7, 0x05, 0x68, 0x3a, 0x51, 0x80, 0x96, 0x19, 0xed, 0x28, 0x62, 0x71, 0x1d, 0x3a, 0x04, 0x6e, + 0x0c, 0xbb, 0x82, 0xd4, 0x43, 0x4f, 0x33, 0x89, 0x9e, 0x96, 0x18, 0xa9, 0x12, 0x72, 0xb8, 0x9f, + 0x2c, 0xdc, 0xb0, 0x29, 0x25, 0xcd, 0x16, 0xe5, 0x63, 0x6a, 0x1a, 0x47, 0x8f, 0xe8, 0x21, 0xc8, + 0x4d, 0xfb, 0x83, 0xd3, 0x6c, 0x37, 0x2d, 0x61, 0x0a, 0xf8, 0xc8, 0x99, 0xc6, 0x4b, 0xc2, 0xae, + 0x08, 0x33, 0x9b, 0x4d, 0x41, 0xed, 0x92, 0xd4, 0xdb, 0x8d, 0x28, 0x92, 0xb9, 0xe4, 0xd9, 0xd4, + 0x61, 0xf0, 0x38, 0x54, 0x58, 0x22, 0x1f, 0x5a, 0x4e, 0xd8, 0xb3, 0xa1, 0x0f, 0x48, 0xf4, 0xb1, + 0xd8, 0xa5, 0x70, 0x27, 0xcf, 0x61, 0x9e, 0x27, 0xe5, 0xdc, 0x76, 0x1a, 0x6d, 0x9f, 0x88, 0xc1, + 0x32, 0xfc, 0x98, 0x0e, 0x43, 0x0c, 0xce, 0x30, 0x86, 0x78, 0x40, 0x5f, 0xc0, 0x2a, 0x77, 0xc0, + 0x6a, 0x9d, 0xf8, 0x96, 0x53, 0x27, 0x2e, 0x75, 0xe8, 0x95, 0x98, 0x2d, 0x88, 0xad, 0x9d, 0xf0, + 0x25, 0x5d, 0xac, 0xa0, 0x6f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, 0xe5, + 0x5e, 0x5e, 0xee, 0x2f, 0x29, 0xb8, 0x25, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, 0x61, + 0x3f, 0x8f, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, 0xbf, + 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, 0x76, + 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, 0xf5, + 0x9b, 0xd0, 0x4d, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, 0x3a, + 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, 0x4f, + 0x97, 0x0f, 0x56, 0x70, 0xea, 0xba, 0x15, 0xfc, 0x0c, 0xe6, 0x7b, 0x9a, 0x31, 0xf9, 0xce, 0x9b, + 0x09, 0x86, 0x37, 0xe2, 0x54, 0x6f, 0x23, 0x62, 0x58, 0xf7, 0x7c, 0xe7, 0xc2, 0x71, 0xed, 0x86, + 0xd5, 0x17, 0x64, 0xb2, 0x74, 0xac, 0x45, 0xd4, 0x4a, 0x3c, 0xd8, 0xdc, 0x5f, 0x53, 0x70, 0x2b, + 0x92, 0xbb, 0xa2, 0x57, 0xb3, 0x1b, 0x05, 0x27, 0x68, 0xd9, 0xb4, 0x76, 0x39, 0x99, 0x3a, 0xff, + 0xef, 0xd3, 0xf5, 0x33, 0xb8, 0xd3, 0x1b, 0x81, 0xe5, 0x9d, 0x5b, 0xf4, 0xd2, 0x09, 0xac, 0x78, + 0x16, 0xc7, 0x3b, 0xdc, 0xe8, 0x89, 0xa8, 0x74, 0x6e, 0x5e, 0x3a, 0x81, 0xd0, 0x34, 0xf4, 0x31, + 0x00, 0xbf, 0x75, 0x50, 0xef, 0x2d, 0x09, 0xab, 0x70, 0x1e, 0xf3, 0x6b, 0x92, 0xc9, 0x0c, 0xb9, + 0x97, 0x90, 0x89, 0x5f, 0x44, 0xf7, 0x61, 0x46, 0xdc, 0x65, 0x25, 0x7e, 0x17, 0xfc, 0x24, 0xe1, + 0x2e, 0xcb, 0xaf, 0xf9, 0x82, 0x92, 0xfb, 0x53, 0x0a, 0x16, 0x7b, 0x97, 0xd0, 0x67, 0xb0, 0x74, + 0xe6, 0xb8, 0xb6, 0x7f, 0x65, 0xd5, 0x2e, 0x49, 0xed, 0x6d, 0xd0, 0x6e, 0x8a, 0x43, 0x58, 0x0c, + 0xcd, 0xaa, 0xb0, 0xa2, 0x35, 0x98, 0xf1, 0xdb, 0x6e, 0x34, 0x7c, 0xe7, 0xf0, 0xb4, 0xdf, 0x66, + 0xb7, 0x94, 0x67, 0x70, 0xfb, 0xdc, 0xf1, 0x03, 0x36, 0xb0, 0xc2, 0x62, 0xb7, 0x6a, 0x5e, 0xb3, + 0xd5, 0x20, 0x3d, 0x9d, 0x9c, 0xe5, 0x90, 0xa8, 0x1d, 0xd4, 0x08, 0xc0, 0xe9, 0xf3, 0x35, 0x9f, + 0xd8, 0x9d, 0xb3, 0x49, 0x4e, 0x65, 0x46, 0xe0, 0x85, 0x0c, 0x2f, 0x70, 0x61, 0x76, 0xdc, 0x8b, + 0x49, 0xcb, 0x74, 0x3e, 0x22, 0x70, 0x07, 0x77, 0x00, 0xf8, 0x0f, 0x04, 0x6a, 0x9f, 0x35, 0xc2, + 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x25, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0xee, 0x94, + 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, 0xc5, + 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x53, 0xd8, 0x1c, 0x81, 0xa9, + 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, 0x15, + 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x6c, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, 0x71, + 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, 0x53, + 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, 0xff, + 0xcb, 0x54, 0xf7, 0xfb, 0x81, 0x5e, 0xc7, 0xa4, 0xdd, 0xd1, 0xdc, 0x4f, 0x61, 0xf3, 0xa4, 0x84, + 0x5f, 0x1d, 0x16, 0x4b, 0x27, 0x96, 0x5e, 0xb0, 0xb0, 0x56, 0xad, 0x68, 0x56, 0xb9, 0x54, 0xd4, + 0xd5, 0xd3, 0x58, 0x24, 0xdf, 0xc2, 0x57, 0x23, 0x51, 0x4a, 0x91, 0x59, 0x0b, 0xd5, 0x72, 0x51, + 0x57, 0xd9, 0x5b, 0x0f, 0x15, 0xbd, 0xa8, 0x15, 0xac, 0x92, 0x51, 0x3c, 0x95, 0x25, 0xf4, 0x39, + 0x6c, 0x4d, 0xca, 0x94, 0x53, 0x68, 0x1b, 0x1e, 0x8e, 0x44, 0x63, 0xed, 0xa5, 0xa6, 0x9a, 0x31, + 0x78, 0x1a, 0xed, 0xc1, 0xf6, 0x48, 0xb8, 0xa9, 0xe1, 0x63, 0xdd, 0xe0, 0x09, 0x3d, 0xb4, 0x70, + 0xd5, 0x30, 0x74, 0xe3, 0x85, 0x3c, 0x95, 0xff, 0xbd, 0x04, 0xcb, 0x03, 0xc3, 0x08, 0xdd, 0x85, + 0xdb, 0x65, 0x05, 0x6b, 0x86, 0x69, 0xa9, 0xc5, 0xd2, 0xb0, 0x04, 0x8c, 0x00, 0x28, 0x07, 0x8a, + 0x51, 0x28, 0x19, 0xb2, 0x84, 0x1e, 0x40, 0x6e, 0x18, 0x40, 0xd4, 0x82, 0x28, 0x0d, 0x39, 0x85, + 0xee, 0xc1, 0xc7, 0xc3, 0x70, 0x9d, 0x68, 0xe5, 0x74, 0xfe, 0x5f, 0x29, 0xf8, 0x68, 0xdc, 0x67, + 0x0a, 0x56, 0x81, 0x9d, 0x6d, 0x6b, 0x6f, 0x34, 0xb5, 0x6a, 0xb2, 0x33, 0x0f, 0xfd, 0xb1, 0x93, + 0xaf, 0x56, 0x62, 0x91, 0xc7, 0x53, 0x3a, 0x02, 0xac, 0x96, 0x8e, 0xcb, 0x45, 0xcd, 0xe4, 0xd5, + 0x94, 0x87, 0x07, 0x49, 0xf0, 0xf0, 0x80, 0xe5, 0x54, 0xcf, 0xd9, 0x8e, 0x72, 0xcd, 0xf7, 0xcd, + 0x5a, 0x01, 0xed, 0x40, 0x3e, 0x09, 0xdd, 0xc9, 0x42, 0x41, 0x9e, 0x42, 0x5f, 0xc1, 0x17, 0xc9, + 0x81, 0x1b, 0xa6, 0x6e, 0x54, 0xb5, 0x82, 0xa5, 0x54, 0x2c, 0x43, 0x3b, 0x91, 0xa7, 0x27, 0xd9, + 0xae, 0xa9, 0x1f, 0xb3, 0xfa, 0xac, 0x9a, 0xf2, 0x4c, 0xfe, 0x6f, 0x12, 0xdc, 0x54, 0x3d, 0x97, + 0x3a, 0x6e, 0x9b, 0x28, 0x81, 0x41, 0xde, 0xeb, 0xe1, 0x3d, 0xc7, 0xf3, 0xd1, 0x7d, 0xb8, 0x17, + 0xf9, 0x17, 0xee, 0x2d, 0xdd, 0xd0, 0x4d, 0x5d, 0x31, 0x4b, 0x38, 0x96, 0xdf, 0xb1, 0x30, 0xd6, + 0x90, 0x05, 0x0d, 0x87, 0x79, 0x1d, 0x0d, 0xc3, 0x9a, 0x89, 0x4f, 0x45, 0x29, 0x84, 0x0a, 0x33, + 0x1a, 0xab, 0x62, 0xd6, 0xdf, 0xa2, 0xff, 0xe5, 0x74, 0xfe, 0x0f, 0x12, 0x64, 0xc4, 0x6f, 0x5b, + 0xfe, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, 0x86, + 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, 0x86, + 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xd9, 0x83, 0x39, 0xd2, 0x14, + 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x27, 0xc1, 0xad, 0x48, 0x09, 0x4d, 0x36, 0x58, + 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0x0f, 0xe1, 0x7e, 0x47, 0xc3, 0x4c, + 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, 0x90, + 0x25, 0xf4, 0x19, 0x7c, 0x32, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, 0xb0, + 0x1e, 0x0f, 0x8e, 0xfd, 0x40, 0x20, 0xf5, 0x30, 0xb4, 0x07, 0x90, 0xeb, 0x75, 0x22, 0x74, 0xae, + 0x3f, 0xae, 0x3d, 0xd8, 0x1e, 0x83, 0xab, 0x1a, 0x47, 0x8a, 0x51, 0x60, 0xcf, 0x11, 0x48, 0x96, + 0xd0, 0x73, 0xd8, 0x1f, 0x43, 0x39, 0x50, 0x0a, 0xdd, 0x2c, 0x77, 0x26, 0x8e, 0x62, 0x9a, 0x58, + 0x3f, 0xa8, 0x9a, 0x5a, 0x45, 0x4e, 0x21, 0x0d, 0x94, 0x04, 0x07, 0xbd, 0x3a, 0x34, 0xd4, 0x4d, + 0x1a, 0x3d, 0x81, 0xaf, 0x93, 0xe2, 0x08, 0x4b, 0x46, 0x3f, 0xd6, 0x70, 0x9c, 0x3a, 0x85, 0x9e, + 0xc2, 0x37, 0x09, 0x54, 0xf1, 0xe6, 0x01, 0xee, 0x34, 0xda, 0x87, 0xc7, 0x89, 0xd1, 0xab, 0x25, + 0x5c, 0xb0, 0x8e, 0x15, 0xfc, 0xaa, 0x97, 0x3c, 0x83, 0x74, 0xd0, 0x92, 0x5e, 0x2c, 0xd4, 0xcd, + 0x1a, 0xa2, 0x0b, 0x31, 0x57, 0x37, 0x26, 0xc8, 0x22, 0x33, 0x24, 0xb8, 0x99, 0x45, 0x2f, 0x40, + 0x9d, 0x2c, 0x15, 0xe3, 0x1d, 0xcd, 0xa1, 0x37, 0x60, 0x5e, 0xef, 0x54, 0xb5, 0x37, 0xa6, 0x86, + 0x0d, 0x25, 0xc9, 0x33, 0xa0, 0x67, 0xf0, 0x24, 0x31, 0x69, 0xbd, 0xfa, 0x13, 0xa3, 0x67, 0xd0, + 0x63, 0xf8, 0x72, 0x0c, 0x3d, 0x5e, 0x23, 0xdd, 0x5b, 0x81, 0x5e, 0x90, 0xe7, 0xd1, 0xd7, 0xb0, + 0x37, 0x86, 0xc8, 0xbb, 0xd0, 0xaa, 0x98, 0xba, 0xfa, 0xea, 0x34, 0x5c, 0x2e, 0xea, 0x15, 0x53, + 0x5e, 0x40, 0x3f, 0x82, 0x1f, 0x8c, 0xa1, 0x75, 0x36, 0xcb, 0xfe, 0xd0, 0x70, 0xac, 0xc5, 0x18, + 0xac, 0x8a, 0x35, 0x79, 0x71, 0x82, 0x33, 0xa9, 0xe8, 0x2f, 0x92, 0x33, 0xb7, 0x84, 0x54, 0x78, + 0x3e, 0x51, 0x8b, 0xa8, 0x47, 0x7a, 0xb1, 0x30, 0xdc, 0x89, 0x8c, 0xbe, 0x84, 0xdd, 0x31, 0x4e, + 0x0e, 0x4b, 0x58, 0xd5, 0xc4, 0xc4, 0xea, 0x88, 0xc4, 0x32, 0xfa, 0x06, 0x1e, 0x8d, 0x23, 0x29, + 0x7a, 0xb1, 0xf4, 0x5a, 0xc3, 0xfd, 0x3c, 0xc4, 0xc6, 0xe8, 0x64, 0x5b, 0xd7, 0x8d, 0x72, 0xd5, + 0xb4, 0x2a, 0xfa, 0x77, 0x9a, 0xbc, 0xc2, 0xc6, 0x68, 0xe2, 0x49, 0x45, 0xb9, 0x92, 0x57, 0x07, + 0xc5, 0x78, 0xe0, 0x25, 0x07, 0xba, 0xa1, 0xe0, 0x53, 0x79, 0x2d, 0xa1, 0xf6, 0x06, 0x85, 0xae, + 0xa7, 0x84, 0x6e, 0x4e, 0xb2, 0x1d, 0x4d, 0xc1, 0xea, 0x51, 0x3c, 0xe3, 0xeb, 0x6c, 0xea, 0xdc, + 0xe3, 0x1f, 0x5c, 0x06, 0xee, 0x55, 0x71, 0x89, 0xdf, 0x83, 0xed, 0xf0, 0xdc, 0x86, 0x54, 0xc1, + 0x08, 0xb5, 0x3f, 0x80, 0x1f, 0x4e, 0x46, 0xe9, 0xac, 0x2b, 0x45, 0xac, 0x29, 0x85, 0xd3, 0xce, + 0x95, 0x54, 0xca, 0xff, 0x3a, 0x05, 0x79, 0xd5, 0x76, 0x6b, 0xa4, 0x11, 0x7d, 0xc7, 0x1d, 0x1b, + 0xe5, 0x3e, 0x3c, 0x9e, 0xa0, 0xdf, 0x47, 0xc4, 0x7b, 0x02, 0x95, 0xeb, 0x92, 0xab, 0xc6, 0x2b, + 0xa3, 0x74, 0x62, 0x8c, 0x23, 0xc8, 0x12, 0x32, 0xe0, 0xe5, 0x75, 0x1d, 0x0f, 0xa4, 0xa4, 0x7b, + 0x0f, 0x4d, 0xf1, 0xa4, 0x54, 0x9c, 0x0b, 0xfe, 0x51, 0x7b, 0xb2, 0xa4, 0x88, 0x32, 0xfe, 0xcf, + 0x92, 0x72, 0x5d, 0xf2, 0xc4, 0x49, 0xb9, 0xae, 0xe3, 0x71, 0x49, 0x39, 0xf8, 0x29, 0xac, 0xd7, + 0xbc, 0xe6, 0xb0, 0xaf, 0x0c, 0x07, 0x0b, 0x51, 0x7a, 0xca, 0xec, 0x67, 0x76, 0x59, 0xfa, 0x6e, + 0xef, 0xc2, 0xa1, 0x97, 0xed, 0xb3, 0x9d, 0x9a, 0xd7, 0xdc, 0x8d, 0xff, 0x87, 0x79, 0xdb, 0xa9, + 0x37, 0x76, 0x2f, 0xbc, 0xf0, 0x3f, 0xd6, 0xe2, 0xdf, 0xcd, 0xfb, 0x76, 0xcb, 0x79, 0xb7, 0x77, + 0x36, 0xc3, 0x6d, 0x5f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x4c, 0xea, 0x44, 0x2e, 0x1f, + 0x00, 0x00, }, // uber/cadence/api/v1/query.proto []byte{ diff --git a/.gen/proto/matching/v1/service.pb.yarpc.go b/.gen/proto/matching/v1/service.pb.yarpc.go index e8571a22462..cdfcb2205a3 100644 --- a/.gen/proto/matching/v1/service.pb.yarpc.go +++ b/.gen/proto/matching/v1/service.pb.yarpc.go @@ -996,155 +996,156 @@ var yarpcFileDescriptorClosure826e827d3aabf7fc = [][]byte{ []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4d, 0x73, 0xdb, 0xc8, 0xd1, 0x7e, 0x41, 0x4a, 0xb2, 0xd4, 0xd4, 0x07, 0x34, 0x92, 0x2c, 0x5a, 0xde, 0xb5, 0x65, 0xee, - 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0xda, 0x5e, 0x5b, 0x71, 0x1c, 0x08, 0x84, 0x2c, 0xd8, - 0x14, 0xc8, 0x0c, 0x41, 0xcb, 0xda, 0x4a, 0x82, 0x82, 0xc8, 0x91, 0x84, 0x98, 0x04, 0x58, 0xc0, - 0xd0, 0xb6, 0xee, 0xa9, 0xca, 0x39, 0x97, 0x54, 0x2a, 0xa7, 0xfc, 0x80, 0xa4, 0x52, 0xa9, 0x9c, - 0x53, 0xa9, 0xca, 0x21, 0xb7, 0x5c, 0xf3, 0x1f, 0xf2, 0x2f, 0x52, 0x33, 0x18, 0x90, 0xe0, 0x27, - 0xe8, 0xa4, 0x6a, 0x73, 0x13, 0x7a, 0x9e, 0xa7, 0xd1, 0xd3, 0xd3, 0xfd, 0xf4, 0x80, 0x82, 0x5c, - 0xfb, 0x8c, 0xf8, 0xbb, 0x35, 0xbb, 0x4e, 0xdc, 0x1a, 0xd9, 0xb5, 0x5b, 0xce, 0xee, 0xbb, 0xbd, - 0xdd, 0xf7, 0x9e, 0xff, 0xf6, 0xbc, 0xe1, 0xbd, 0xdf, 0x69, 0xf9, 0x1e, 0xf5, 0xd0, 0x0a, 0xc3, - 0xec, 0x08, 0xcc, 0x8e, 0xdd, 0x72, 0x76, 0xde, 0xed, 0x6d, 0xdc, 0xba, 0xf0, 0xbc, 0x8b, 0x06, - 0xd9, 0xe5, 0x90, 0xb3, 0xf6, 0xf9, 0x6e, 0xbd, 0xed, 0xdb, 0xd4, 0xf1, 0xdc, 0x90, 0xb4, 0x71, - 0xbb, 0x7f, 0x9d, 0x3a, 0x4d, 0x12, 0x50, 0xbb, 0xd9, 0x12, 0x80, 0xcd, 0x61, 0x6f, 0xae, 0x79, - 0xcd, 0x66, 0xc7, 0xc5, 0xd0, 0xd8, 0xa8, 0x1d, 0xbc, 0x6d, 0x38, 0x01, 0x0d, 0x31, 0xb9, 0x3f, - 0xcc, 0xc2, 0xda, 0x89, 0x08, 0x57, 0xfb, 0x40, 0x6a, 0x6d, 0x16, 0x82, 0xee, 0x9e, 0x7b, 0xa8, - 0x0a, 0x28, 0xda, 0x87, 0x45, 0xa2, 0x95, 0xac, 0xb4, 0x29, 0x6d, 0x65, 0x1e, 0xdc, 0xdb, 0x19, - 0xb2, 0xa5, 0x9d, 0x01, 0x3f, 0x78, 0xf9, 0x7d, 0xbf, 0x09, 0x3d, 0x84, 0x29, 0x7a, 0xd5, 0x22, - 0xd9, 0x14, 0x77, 0x74, 0x67, 0xac, 0x23, 0xf3, 0xaa, 0x45, 0x30, 0x87, 0xa3, 0x27, 0x00, 0x01, - 0xb5, 0x7d, 0x6a, 0xb1, 0x34, 0x64, 0xd3, 0x9c, 0xbc, 0xb1, 0x13, 0xe6, 0x68, 0x27, 0xca, 0xd1, - 0x8e, 0x19, 0xe5, 0x08, 0xcf, 0x71, 0x34, 0x7b, 0x66, 0xd4, 0x5a, 0xc3, 0x0b, 0x48, 0x48, 0x9d, - 0x4a, 0xa6, 0x72, 0x34, 0xa7, 0x9a, 0x30, 0x1f, 0x52, 0x03, 0x6a, 0xd3, 0x76, 0x90, 0x9d, 0xde, - 0x94, 0xb6, 0x16, 0x1f, 0xec, 0x4d, 0xb6, 0x7b, 0x95, 0x31, 0x2b, 0x9c, 0x88, 0x33, 0xb5, 0xee, - 0x03, 0xba, 0x0b, 0x8b, 0x97, 0x4e, 0x40, 0x3d, 0xff, 0xca, 0x6a, 0x10, 0xf7, 0x82, 0x5e, 0x66, - 0x67, 0x36, 0xa5, 0xad, 0x34, 0x5e, 0x10, 0xd6, 0x22, 0x37, 0xa2, 0x9f, 0xc0, 0x5a, 0xcb, 0xf6, - 0x89, 0x4b, 0xbb, 0xe9, 0xb7, 0x1c, 0xf7, 0xdc, 0xcb, 0x5e, 0xe3, 0x5b, 0xd8, 0x1a, 0x1a, 0x45, - 0x99, 0x33, 0x7a, 0x4e, 0x12, 0xaf, 0xb4, 0x06, 0x8d, 0x48, 0x81, 0xc5, 0xae, 0x5b, 0x9e, 0x99, - 0xd9, 0xc4, 0xcc, 0x2c, 0x74, 0x18, 0x3c, 0x3b, 0xdb, 0x30, 0xd5, 0x24, 0x4d, 0x2f, 0x3b, 0xc7, - 0x89, 0x37, 0x86, 0xc6, 0x73, 0x4c, 0x9a, 0x1e, 0xe6, 0x30, 0x84, 0x61, 0x39, 0x20, 0xb6, 0x5f, - 0xbb, 0xb4, 0x6c, 0x4a, 0x7d, 0xe7, 0xac, 0x4d, 0x49, 0x90, 0x05, 0xce, 0xbd, 0x3b, 0x94, 0x5b, - 0xe1, 0x68, 0xa5, 0x03, 0xc6, 0x72, 0xd0, 0x67, 0x41, 0x45, 0x58, 0xb6, 0xdb, 0xd4, 0xb3, 0x7c, - 0x12, 0x10, 0x6a, 0xb5, 0x3c, 0xc7, 0xa5, 0x41, 0x36, 0xc3, 0x7d, 0x6e, 0x0e, 0xf5, 0x89, 0x19, - 0xb0, 0xcc, 0x71, 0x78, 0x89, 0x51, 0x63, 0x06, 0x74, 0x13, 0xe6, 0x58, 0x7b, 0x58, 0xac, 0x3f, - 0xb2, 0xf3, 0x9b, 0xd2, 0xd6, 0x1c, 0x9e, 0x65, 0x86, 0xa2, 0x13, 0x50, 0xb4, 0x0e, 0xd7, 0x9c, - 0xc0, 0xaa, 0xf9, 0x9e, 0x9b, 0x5d, 0xd8, 0x94, 0xb6, 0x66, 0xf1, 0x8c, 0x13, 0xa8, 0xbe, 0xe7, - 0xa2, 0x7d, 0xc8, 0xb4, 0x5b, 0x75, 0x9b, 0x8a, 0x02, 0x5b, 0x4c, 0x4c, 0x23, 0x84, 0x70, 0x9e, - 0xc3, 0x9f, 0x83, 0xdc, 0xb2, 0x7d, 0xea, 0xf0, 0x63, 0xa8, 0x79, 0xee, 0xb9, 0x73, 0x91, 0x5d, - 0xda, 0x4c, 0x6f, 0x65, 0x1e, 0x3c, 0x9f, 0xac, 0xca, 0xd8, 0x61, 0xb2, 0x53, 0x0f, 0x5d, 0xa8, - 0xdc, 0x83, 0xe6, 0x52, 0xff, 0x0a, 0x2f, 0xb5, 0x7a, 0xad, 0x1b, 0x07, 0xb0, 0x3a, 0x0c, 0x88, - 0x64, 0x48, 0xbf, 0x25, 0x57, 0xbc, 0xb5, 0xe7, 0x30, 0xfb, 0x13, 0xad, 0xc2, 0xf4, 0x3b, 0xbb, - 0xd1, 0x0e, 0xbb, 0x74, 0x0e, 0x87, 0x0f, 0x4f, 0x53, 0xdf, 0x4a, 0xb9, 0xdf, 0xa4, 0xe0, 0xd6, - 0x60, 0xa5, 0x73, 0x67, 0x42, 0xbf, 0xd0, 0xd3, 0x78, 0x16, 0x43, 0xbd, 0xf8, 0x74, 0xe8, 0x5e, - 0x4c, 0x91, 0xda, 0x58, 0x92, 0x6d, 0xd8, 0xec, 0x56, 0xa5, 0x68, 0x78, 0xcf, 0xea, 0xb6, 0xaf, - 0xd7, 0xa6, 0x42, 0x39, 0x6e, 0x0c, 0x24, 0xb8, 0x20, 0x02, 0xc0, 0x9f, 0x74, 0x5c, 0x54, 0xb8, - 0x08, 0x78, 0x6a, 0xd4, 0xd0, 0x5e, 0x9b, 0xa2, 0x13, 0xb8, 0xc9, 0xc3, 0x1b, 0xe1, 0x3d, 0x9d, - 0xe4, 0x7d, 0x9d, 0xb1, 0x87, 0x38, 0xce, 0xfd, 0x43, 0x82, 0x95, 0x21, 0xed, 0xc7, 0xaa, 0xaa, - 0xee, 0x35, 0x6d, 0xc7, 0xb5, 0x9c, 0xba, 0x48, 0xf2, 0x6c, 0x68, 0xd0, 0xeb, 0xe8, 0x36, 0x64, - 0xc4, 0xa2, 0x6b, 0x37, 0xa3, 0x7c, 0x43, 0x68, 0x32, 0xec, 0x26, 0x19, 0x21, 0xc3, 0xe9, 0xff, - 0x56, 0x86, 0xef, 0xc0, 0xbc, 0xe3, 0x3a, 0xd4, 0xb1, 0x29, 0xa9, 0xb3, 0xb8, 0xa6, 0xb8, 0x02, - 0x65, 0x3a, 0x36, 0xbd, 0x9e, 0xfb, 0x95, 0x04, 0x6b, 0xda, 0x07, 0x4a, 0x7c, 0xd7, 0x6e, 0x7c, - 0x2f, 0xa3, 0xa1, 0x3f, 0xa6, 0xd4, 0x60, 0x4c, 0xbf, 0x9e, 0x81, 0x95, 0x32, 0x71, 0xeb, 0x8e, - 0x7b, 0xa1, 0xd4, 0xa8, 0xf3, 0xce, 0xa1, 0x57, 0x3c, 0xa2, 0xdb, 0x90, 0xb1, 0xc5, 0x73, 0x37, - 0xcb, 0x10, 0x99, 0xf4, 0x3a, 0x3a, 0x84, 0x85, 0x0e, 0x20, 0x71, 0xfe, 0x44, 0xae, 0xf9, 0xfc, - 0x99, 0xb7, 0x63, 0x4f, 0xe8, 0x39, 0x4c, 0xb3, 0x59, 0x10, 0x8e, 0xa0, 0xc5, 0x07, 0xf7, 0x87, - 0x8b, 0x70, 0x6f, 0x84, 0x4c, 0xf6, 0x09, 0x0e, 0x79, 0x48, 0x87, 0xe5, 0x4b, 0x62, 0xfb, 0xf4, - 0x8c, 0xd8, 0xd4, 0xaa, 0x13, 0x6a, 0x3b, 0x8d, 0x40, 0x0c, 0xa5, 0x4f, 0x46, 0x28, 0xfa, 0x55, - 0xc3, 0xb3, 0xeb, 0x58, 0xee, 0xd0, 0x0a, 0x21, 0x0b, 0xbd, 0x84, 0x95, 0x86, 0x1d, 0x50, 0xab, - 0xeb, 0x8f, 0x0b, 0xd0, 0x74, 0xa2, 0x00, 0x2d, 0x33, 0xda, 0x51, 0xc4, 0xe2, 0x3a, 0x74, 0x08, - 0xdc, 0x18, 0x76, 0x05, 0xa9, 0x87, 0x9e, 0x66, 0x12, 0x3d, 0x2d, 0x31, 0x52, 0x25, 0xe4, 0x70, - 0x3f, 0x59, 0xb8, 0x66, 0x53, 0x4a, 0x9a, 0x2d, 0xca, 0xc7, 0xd4, 0x34, 0x8e, 0x1e, 0xd1, 0x7d, - 0x90, 0x9b, 0xf6, 0x07, 0xa7, 0xd9, 0x6e, 0x5a, 0xc2, 0x14, 0xf0, 0x91, 0x33, 0x8d, 0x97, 0x84, - 0x5d, 0x11, 0x66, 0x36, 0x9b, 0x82, 0xda, 0x25, 0xa9, 0xb7, 0x1b, 0x51, 0x24, 0x73, 0xc9, 0xb3, - 0xa9, 0xc3, 0xe0, 0x71, 0xa8, 0xb0, 0x44, 0x3e, 0xb4, 0x9c, 0xb0, 0x67, 0x43, 0x1f, 0x90, 0xe8, - 0x63, 0xb1, 0x4b, 0xe1, 0x4e, 0x9e, 0xc3, 0x3c, 0x4f, 0xca, 0xb9, 0xed, 0x34, 0xda, 0x3e, 0x11, - 0x83, 0x65, 0xf8, 0x31, 0x1d, 0x86, 0x18, 0x9c, 0x61, 0x0c, 0xf1, 0x80, 0xbe, 0x82, 0x55, 0xee, - 0x80, 0xd5, 0x3a, 0xf1, 0x2d, 0xa7, 0x4e, 0x5c, 0xea, 0xd0, 0x2b, 0x31, 0x5b, 0x10, 0x5b, 0x3b, - 0xe1, 0x4b, 0xba, 0x58, 0x41, 0x8f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, - 0xe5, 0x5e, 0x5e, 0xee, 0xcf, 0x29, 0xb8, 0x21, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, - 0x61, 0xbf, 0x8c, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, - 0xbf, 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, - 0x76, 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, - 0xf5, 0x9b, 0xd0, 0x75, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, - 0x3a, 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, - 0x4f, 0x97, 0x0f, 0x56, 0x70, 0xea, 0x63, 0x2b, 0xf8, 0x19, 0xcc, 0xf7, 0x34, 0x63, 0xf2, 0x9d, - 0x37, 0x13, 0x0c, 0x6f, 0xc4, 0xa9, 0xde, 0x46, 0xc4, 0xb0, 0xee, 0xf9, 0xce, 0x85, 0xe3, 0xda, - 0x0d, 0xab, 0x2f, 0xc8, 0x64, 0xe9, 0x58, 0x8b, 0xa8, 0x95, 0x78, 0xb0, 0xb9, 0xbf, 0xa4, 0xe0, - 0x46, 0x24, 0x77, 0x45, 0xaf, 0x66, 0x37, 0x0a, 0x4e, 0xd0, 0xb2, 0x69, 0xed, 0x72, 0x32, 0x75, - 0xfe, 0xdf, 0xa7, 0xeb, 0x67, 0x70, 0xab, 0x37, 0x02, 0xcb, 0x3b, 0xb7, 0xe8, 0xa5, 0x13, 0x58, - 0xf1, 0x2c, 0x8e, 0x77, 0xb8, 0xd1, 0x13, 0x51, 0xe9, 0xdc, 0xbc, 0x74, 0x02, 0xa1, 0x69, 0xe8, - 0x53, 0x00, 0x7e, 0xeb, 0xa0, 0xde, 0x5b, 0x12, 0x56, 0xe1, 0x3c, 0xe6, 0xd7, 0x24, 0x93, 0x19, - 0x72, 0x2f, 0x21, 0x13, 0xbf, 0x88, 0xee, 0xc3, 0x8c, 0xb8, 0xcb, 0x4a, 0xfc, 0x2e, 0xf8, 0x59, - 0xc2, 0x5d, 0x96, 0x5f, 0xf3, 0x05, 0x25, 0xf7, 0xc7, 0x14, 0x2c, 0xf6, 0x2e, 0xa1, 0x2f, 0x60, - 0xe9, 0xcc, 0x71, 0x6d, 0xff, 0xca, 0xaa, 0x5d, 0x92, 0xda, 0xdb, 0xa0, 0xdd, 0x14, 0x87, 0xb0, - 0x18, 0x9a, 0x55, 0x61, 0x45, 0x6b, 0x30, 0xe3, 0xb7, 0xdd, 0x68, 0xf8, 0xce, 0xe1, 0x69, 0xbf, - 0xcd, 0x6e, 0x29, 0xcf, 0xe0, 0xe6, 0xb9, 0xe3, 0x07, 0x6c, 0x60, 0x85, 0xc5, 0x6e, 0xd5, 0xbc, - 0x66, 0xab, 0x41, 0x7a, 0x3a, 0x39, 0xcb, 0x21, 0x51, 0x3b, 0xa8, 0x11, 0x80, 0xd3, 0xe7, 0x6b, - 0x3e, 0xb1, 0x3b, 0x67, 0x93, 0x9c, 0xca, 0x8c, 0xc0, 0x0b, 0x19, 0x5e, 0xe0, 0xc2, 0xec, 0xb8, - 0x17, 0x93, 0x96, 0xe9, 0x7c, 0x44, 0xe0, 0x0e, 0x6e, 0x01, 0xf0, 0x0f, 0x04, 0x6a, 0x9f, 0x35, - 0xc2, 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x24, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0x6e, - 0x95, 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, - 0xc5, 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x73, 0xd8, 0x1c, 0x81, - 0xa9, 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, - 0x15, 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x62, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, - 0x71, 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, - 0x53, 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, - 0xff, 0xcb, 0x54, 0xf7, 0xf7, 0x03, 0xbd, 0x8e, 0x49, 0xbb, 0xa3, 0xb9, 0x9f, 0xc3, 0xe6, 0x49, - 0x09, 0xbf, 0x3a, 0x2c, 0x96, 0x4e, 0x2c, 0xbd, 0x60, 0x61, 0xad, 0x5a, 0xd1, 0xac, 0x72, 0xa9, - 0xa8, 0xab, 0xa7, 0xb1, 0x48, 0xbe, 0x85, 0x6f, 0x46, 0xa2, 0x94, 0x22, 0xb3, 0x16, 0xaa, 0xe5, - 0xa2, 0xae, 0xb2, 0xb7, 0x1e, 0x2a, 0x7a, 0x51, 0x2b, 0x58, 0x25, 0xa3, 0x78, 0x2a, 0x4b, 0xe8, - 0x4b, 0xd8, 0x9a, 0x94, 0x29, 0xa7, 0xd0, 0x36, 0xdc, 0x1f, 0x89, 0xc6, 0xda, 0x4b, 0x4d, 0x35, - 0x63, 0xf0, 0x34, 0xda, 0x83, 0xed, 0x91, 0x70, 0x53, 0xc3, 0xc7, 0xba, 0xc1, 0x13, 0x7a, 0x68, - 0xe1, 0xaa, 0x61, 0xe8, 0xc6, 0x0b, 0x79, 0x2a, 0xff, 0x3b, 0x09, 0x96, 0x07, 0x86, 0x11, 0xba, - 0x0d, 0x37, 0xcb, 0x0a, 0xd6, 0x0c, 0xd3, 0x52, 0x8b, 0xa5, 0x61, 0x09, 0x18, 0x01, 0x50, 0x0e, - 0x14, 0xa3, 0x50, 0x32, 0x64, 0x09, 0xdd, 0x83, 0xdc, 0x30, 0x80, 0xa8, 0x05, 0x51, 0x1a, 0x72, - 0x0a, 0xdd, 0x81, 0x4f, 0x87, 0xe1, 0x3a, 0xd1, 0xca, 0xe9, 0xfc, 0xbf, 0x52, 0xf0, 0xc9, 0xb8, - 0x9f, 0x29, 0x58, 0x05, 0x76, 0xb6, 0xad, 0xbd, 0xd1, 0xd4, 0xaa, 0xc9, 0xce, 0x3c, 0xf4, 0xc7, - 0x4e, 0xbe, 0x5a, 0x89, 0x45, 0x1e, 0x4f, 0xe9, 0x08, 0xb0, 0x5a, 0x3a, 0x2e, 0x17, 0x35, 0x93, - 0x57, 0x53, 0x1e, 0xee, 0x25, 0xc1, 0xc3, 0x03, 0x96, 0x53, 0x3d, 0x67, 0x3b, 0xca, 0x35, 0xdf, - 0x37, 0x6b, 0x05, 0xb4, 0x03, 0xf9, 0x24, 0x74, 0x27, 0x0b, 0x05, 0x79, 0x0a, 0x7d, 0x03, 0x5f, - 0x25, 0x07, 0x6e, 0x98, 0xba, 0x51, 0xd5, 0x0a, 0x96, 0x52, 0xb1, 0x0c, 0xed, 0x44, 0x9e, 0x9e, - 0x64, 0xbb, 0xa6, 0x7e, 0xcc, 0xea, 0xb3, 0x6a, 0xca, 0x33, 0xf9, 0xbf, 0x4a, 0x70, 0x5d, 0xf5, - 0x5c, 0xea, 0xb8, 0x6d, 0xa2, 0x04, 0x06, 0x79, 0xaf, 0x87, 0xf7, 0x1c, 0xcf, 0x47, 0x77, 0xe1, - 0x4e, 0xe4, 0x5f, 0xb8, 0xb7, 0x74, 0x43, 0x37, 0x75, 0xc5, 0x2c, 0xe1, 0x58, 0x7e, 0xc7, 0xc2, - 0x58, 0x43, 0x16, 0x34, 0x1c, 0xe6, 0x75, 0x34, 0x0c, 0x6b, 0x26, 0x3e, 0x15, 0xa5, 0x10, 0x2a, - 0xcc, 0x68, 0xac, 0x8a, 0x59, 0x7f, 0x8b, 0xfe, 0x97, 0xd3, 0xf9, 0xdf, 0x4b, 0x90, 0x11, 0xdf, - 0xb6, 0xfc, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, - 0x86, 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, - 0x86, 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xde, 0x83, 0x39, 0xd2, - 0x14, 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x2b, 0xc1, 0x8d, 0x48, 0x09, 0x4d, 0x36, - 0x58, 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0xf7, 0xe1, 0x6e, 0x47, 0xc3, - 0x4c, 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, - 0x90, 0x25, 0xf4, 0x05, 0x7c, 0x36, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, - 0xb0, 0x1e, 0x0f, 0x8e, 0x7d, 0x20, 0x90, 0x7a, 0x18, 0xda, 0x3d, 0xc8, 0xf5, 0x3a, 0x11, 0x3a, - 0xd7, 0x1f, 0xd7, 0x1e, 0x6c, 0x8f, 0xc1, 0x55, 0x8d, 0x23, 0xc5, 0x28, 0xb0, 0xe7, 0x08, 0x24, - 0x4b, 0xe8, 0x39, 0xec, 0x8f, 0xa1, 0x1c, 0x28, 0x85, 0x6e, 0x96, 0x3b, 0x13, 0x47, 0x31, 0x4d, - 0xac, 0x1f, 0x54, 0x4d, 0xad, 0x22, 0xa7, 0x90, 0x06, 0x4a, 0x82, 0x83, 0x5e, 0x1d, 0x1a, 0xea, - 0x26, 0x8d, 0x9e, 0xc0, 0xc3, 0xa4, 0x38, 0xc2, 0x92, 0xd1, 0x8f, 0x35, 0x1c, 0xa7, 0x4e, 0xa1, - 0xa7, 0xf0, 0x28, 0x81, 0x2a, 0xde, 0x3c, 0xc0, 0x9d, 0x46, 0xfb, 0xf0, 0x38, 0x31, 0x7a, 0xb5, - 0x84, 0x0b, 0xd6, 0xb1, 0x82, 0x5f, 0xf5, 0x92, 0x67, 0x90, 0x0e, 0x5a, 0xd2, 0x8b, 0x85, 0xba, - 0x59, 0x43, 0x74, 0x21, 0xe6, 0xea, 0xda, 0x04, 0x59, 0x64, 0x86, 0x04, 0x37, 0xb3, 0xe8, 0x05, - 0xa8, 0x93, 0xa5, 0x62, 0xbc, 0xa3, 0x39, 0xf4, 0x06, 0xcc, 0x8f, 0x3b, 0x55, 0xed, 0x8d, 0xa9, - 0x61, 0x43, 0x49, 0xf2, 0x0c, 0xe8, 0x19, 0x3c, 0x49, 0x4c, 0x5a, 0xaf, 0xfe, 0xc4, 0xe8, 0x19, - 0xf4, 0x18, 0xbe, 0x1e, 0x43, 0x8f, 0xd7, 0x48, 0xf7, 0x56, 0xa0, 0x17, 0xe4, 0x79, 0xf4, 0x10, - 0xf6, 0xc6, 0x10, 0x79, 0x17, 0x5a, 0x15, 0x53, 0x57, 0x5f, 0x9d, 0x86, 0xcb, 0x45, 0xbd, 0x62, - 0xca, 0x0b, 0xe8, 0x47, 0xf0, 0x83, 0x31, 0xb4, 0xce, 0x66, 0xd9, 0x1f, 0x1a, 0x8e, 0xb5, 0x18, - 0x83, 0x55, 0xb1, 0x26, 0x2f, 0x4e, 0x70, 0x26, 0x15, 0xfd, 0x45, 0x72, 0xe6, 0x96, 0x90, 0x0a, - 0xcf, 0x27, 0x6a, 0x11, 0xf5, 0x48, 0x2f, 0x16, 0x86, 0x3b, 0x91, 0xd1, 0xd7, 0xb0, 0x3b, 0xc6, - 0xc9, 0x61, 0x09, 0xab, 0x9a, 0x98, 0x58, 0x1d, 0x91, 0x58, 0x46, 0x8f, 0xe0, 0xc1, 0x38, 0x92, - 0xa2, 0x17, 0x4b, 0xaf, 0x35, 0xdc, 0xcf, 0x43, 0x6c, 0x8c, 0x4e, 0xb6, 0x75, 0xdd, 0x28, 0x57, - 0x4d, 0xab, 0xa2, 0x7f, 0xa7, 0xc9, 0x2b, 0x6c, 0x8c, 0x26, 0x9e, 0x54, 0x94, 0x2b, 0x79, 0x75, - 0x50, 0x8c, 0x07, 0x5e, 0x72, 0xa0, 0x1b, 0x0a, 0x3e, 0x95, 0xd7, 0x12, 0x6a, 0x6f, 0x50, 0xe8, - 0x7a, 0x4a, 0xe8, 0xfa, 0x24, 0xdb, 0xd1, 0x14, 0xac, 0x1e, 0xc5, 0x33, 0xbe, 0xce, 0xa6, 0xce, - 0x1d, 0xfe, 0x83, 0xcb, 0xc0, 0xbd, 0x2a, 0x2e, 0xf1, 0x7b, 0xb0, 0x1d, 0x9e, 0xdb, 0x90, 0x2a, - 0x18, 0xa1, 0xf6, 0x07, 0xf0, 0xc3, 0xc9, 0x28, 0x9d, 0x75, 0xa5, 0x88, 0x35, 0xa5, 0x70, 0xda, - 0xb9, 0x92, 0x4a, 0xf9, 0xbf, 0x49, 0x90, 0x57, 0x6d, 0xb7, 0x46, 0x1a, 0xd1, 0xef, 0xb8, 0x63, - 0xa3, 0xdc, 0x87, 0xc7, 0x13, 0xf4, 0xfb, 0x88, 0x78, 0x4f, 0xa0, 0xf2, 0xb1, 0xe4, 0xaa, 0xf1, - 0xca, 0x28, 0x9d, 0x18, 0xe3, 0x08, 0x62, 0x13, 0x15, 0xe7, 0x82, 0xff, 0x08, 0x3d, 0xd9, 0x26, - 0x44, 0xd9, 0xfd, 0x67, 0x9b, 0xf8, 0x58, 0xf2, 0x44, 0x9b, 0x38, 0xf8, 0x29, 0xac, 0xd7, 0xbc, - 0xe6, 0xb0, 0xaf, 0xf8, 0x83, 0x85, 0x68, 0x3b, 0x65, 0xf6, 0x19, 0x5b, 0x96, 0xbe, 0xdb, 0xbb, - 0x70, 0xe8, 0x65, 0xfb, 0x6c, 0xa7, 0xe6, 0x35, 0x77, 0xe3, 0xff, 0xc1, 0xdd, 0x76, 0xea, 0x8d, - 0xdd, 0x0b, 0x2f, 0xfc, 0x8f, 0xb0, 0xf8, 0x77, 0xee, 0xbe, 0xdd, 0x72, 0xde, 0xed, 0x9d, 0xcd, - 0x70, 0xdb, 0xd7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x86, 0x60, 0x70, 0x2f, 0x8e, 0x1e, 0x00, - 0x00, + 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0x87, 0xd7, 0x56, 0x1c, 0x07, 0x02, 0x21, 0x0b, 0x36, + 0x05, 0x32, 0x43, 0xd0, 0xb2, 0xb6, 0x92, 0xa0, 0x20, 0x72, 0x24, 0x21, 0x26, 0x01, 0x16, 0x30, + 0xb4, 0xad, 0x7b, 0xaa, 0x72, 0x4e, 0x0e, 0xa9, 0x54, 0x4e, 0xf9, 0x01, 0x49, 0xa5, 0x52, 0x39, + 0xa7, 0x72, 0xcb, 0x2d, 0xd7, 0xfc, 0x87, 0xfc, 0x8b, 0xd4, 0x0c, 0x06, 0x24, 0xf8, 0x09, 0x2a, + 0xa9, 0xda, 0xdc, 0x84, 0x9e, 0xe7, 0x69, 0xf4, 0xf4, 0x74, 0x3f, 0x3d, 0x84, 0x20, 0xd7, 0x3e, + 0x23, 0xfe, 0x6e, 0xcd, 0xae, 0x13, 0xb7, 0x46, 0x76, 0xed, 0x96, 0xb3, 0xfb, 0x6e, 0x6f, 0xf7, + 0xbd, 0xe7, 0xbf, 0x3d, 0x6f, 0x78, 0xef, 0x77, 0x5a, 0xbe, 0x47, 0x3d, 0xb4, 0xc2, 0x30, 0x3b, + 0x02, 0xb3, 0x63, 0xb7, 0x9c, 0x9d, 0x77, 0x7b, 0x1b, 0x77, 0x2e, 0x3c, 0xef, 0xa2, 0x41, 0x76, + 0x39, 0xe4, 0xac, 0x7d, 0xbe, 0x5b, 0x6f, 0xfb, 0x36, 0x75, 0x3c, 0x37, 0x24, 0x6d, 0xdc, 0xed, + 0x5f, 0xa7, 0x4e, 0x93, 0x04, 0xd4, 0x6e, 0xb6, 0x04, 0x60, 0x73, 0xd8, 0x9b, 0x6b, 0x5e, 0xb3, + 0xd9, 0x71, 0x31, 0x34, 0x36, 0x6a, 0x07, 0x6f, 0x1b, 0x4e, 0x40, 0x43, 0x4c, 0xee, 0x8f, 0xb3, + 0xb0, 0x76, 0x22, 0xc2, 0xd5, 0x3e, 0x90, 0x5a, 0x9b, 0x85, 0xa0, 0xbb, 0xe7, 0x1e, 0xaa, 0x02, + 0x8a, 0xf6, 0x61, 0x91, 0x68, 0x25, 0x2b, 0x6d, 0x4a, 0x5b, 0x99, 0x47, 0x0f, 0x76, 0x86, 0x6c, + 0x69, 0x67, 0xc0, 0x0f, 0x5e, 0x7e, 0xdf, 0x6f, 0x42, 0x5f, 0xc3, 0x14, 0xbd, 0x6a, 0x91, 0x6c, + 0x8a, 0x3b, 0xba, 0x37, 0xd6, 0x91, 0x79, 0xd5, 0x22, 0x98, 0xc3, 0xd1, 0x13, 0x80, 0x80, 0xda, + 0x3e, 0xb5, 0x58, 0x1a, 0xb2, 0x69, 0x4e, 0xde, 0xd8, 0x09, 0x73, 0xb4, 0x13, 0xe5, 0x68, 0xc7, + 0x8c, 0x72, 0x84, 0xe7, 0x38, 0x9a, 0x3d, 0x33, 0x6a, 0xad, 0xe1, 0x05, 0x24, 0xa4, 0x4e, 0x25, + 0x53, 0x39, 0x9a, 0x53, 0x4d, 0x98, 0x0f, 0xa9, 0x01, 0xb5, 0x69, 0x3b, 0xc8, 0x4e, 0x6f, 0x4a, + 0x5b, 0x8b, 0x8f, 0xf6, 0x26, 0xdb, 0xbd, 0xca, 0x98, 0x15, 0x4e, 0xc4, 0x99, 0x5a, 0xf7, 0x01, + 0xdd, 0x87, 0xc5, 0x4b, 0x27, 0xa0, 0x9e, 0x7f, 0x65, 0x35, 0x88, 0x7b, 0x41, 0x2f, 0xb3, 0x33, + 0x9b, 0xd2, 0x56, 0x1a, 0x2f, 0x08, 0x6b, 0x91, 0x1b, 0xd1, 0x4f, 0x60, 0xad, 0x65, 0xfb, 0xc4, + 0xa5, 0xdd, 0xf4, 0x5b, 0x8e, 0x7b, 0xee, 0x65, 0x6f, 0xf0, 0x2d, 0x6c, 0x0d, 0x8d, 0xa2, 0xcc, + 0x19, 0x3d, 0x27, 0x89, 0x57, 0x5a, 0x83, 0x46, 0xa4, 0xc0, 0x62, 0xd7, 0x2d, 0xcf, 0xcc, 0x6c, + 0x62, 0x66, 0x16, 0x3a, 0x0c, 0x9e, 0x9d, 0x6d, 0x98, 0x6a, 0x92, 0xa6, 0x97, 0x9d, 0xe3, 0xc4, + 0x5b, 0x43, 0xe3, 0x39, 0x26, 0x4d, 0x0f, 0x73, 0x18, 0xc2, 0xb0, 0x1c, 0x10, 0xdb, 0xaf, 0x5d, + 0x5a, 0x36, 0xa5, 0xbe, 0x73, 0xd6, 0xa6, 0x24, 0xc8, 0x02, 0xe7, 0xde, 0x1f, 0xca, 0xad, 0x70, + 0xb4, 0xd2, 0x01, 0x63, 0x39, 0xe8, 0xb3, 0xa0, 0x22, 0x2c, 0xdb, 0x6d, 0xea, 0x59, 0x3e, 0x09, + 0x08, 0xb5, 0x5a, 0x9e, 0xe3, 0xd2, 0x20, 0x9b, 0xe1, 0x3e, 0x37, 0x87, 0xfa, 0xc4, 0x0c, 0x58, + 0xe6, 0x38, 0xbc, 0xc4, 0xa8, 0x31, 0x03, 0xba, 0x0d, 0x73, 0xac, 0x3d, 0x2c, 0xd6, 0x1f, 0xd9, + 0xf9, 0x4d, 0x69, 0x6b, 0x0e, 0xcf, 0x32, 0x43, 0xd1, 0x09, 0x28, 0x5a, 0x87, 0x1b, 0x4e, 0x60, + 0xd5, 0x7c, 0xcf, 0xcd, 0x2e, 0x6c, 0x4a, 0x5b, 0xb3, 0x78, 0xc6, 0x09, 0x54, 0xdf, 0x73, 0xd1, + 0x3e, 0x64, 0xda, 0xad, 0xba, 0x4d, 0x45, 0x81, 0x2d, 0x26, 0xa6, 0x11, 0x42, 0x38, 0xcf, 0xe1, + 0xcf, 0x41, 0x6e, 0xd9, 0x3e, 0x75, 0xf8, 0x31, 0xd4, 0x3c, 0xf7, 0xdc, 0xb9, 0xc8, 0x2e, 0x6d, + 0xa6, 0xb7, 0x32, 0x8f, 0x9e, 0x4f, 0x56, 0x65, 0xec, 0x30, 0xd9, 0xa9, 0x87, 0x2e, 0x54, 0xee, + 0x41, 0x73, 0xa9, 0x7f, 0x85, 0x97, 0x5a, 0xbd, 0xd6, 0x8d, 0x03, 0x58, 0x1d, 0x06, 0x44, 0x32, + 0xa4, 0xdf, 0x92, 0x2b, 0xde, 0xda, 0x73, 0x98, 0xfd, 0x89, 0x56, 0x61, 0xfa, 0x9d, 0xdd, 0x68, + 0x87, 0x5d, 0x3a, 0x87, 0xc3, 0x87, 0xa7, 0xa9, 0x6f, 0xa5, 0xdc, 0x6f, 0x53, 0x70, 0x67, 0xb0, + 0xd2, 0xb9, 0x33, 0xa1, 0x5f, 0xe8, 0x69, 0x3c, 0x8b, 0xa1, 0x5e, 0x7c, 0x3c, 0x74, 0x2f, 0xa6, + 0x48, 0x6d, 0x2c, 0xc9, 0x36, 0x6c, 0x76, 0xab, 0x52, 0x34, 0xbc, 0x67, 0x75, 0xdb, 0xd7, 0x6b, + 0x53, 0xa1, 0x1c, 0xb7, 0x06, 0x12, 0x5c, 0x10, 0x01, 0xe0, 0x8f, 0x3a, 0x2e, 0x2a, 0x5c, 0x04, + 0x3c, 0x35, 0x6a, 0x68, 0xaf, 0x4d, 0xd1, 0x09, 0xdc, 0xe6, 0xe1, 0x8d, 0xf0, 0x9e, 0x4e, 0xf2, + 0xbe, 0xce, 0xd8, 0x43, 0x1c, 0xe7, 0xfe, 0x21, 0xc1, 0xca, 0x90, 0xf6, 0x63, 0x55, 0x55, 0xf7, + 0x9a, 0xb6, 0xe3, 0x5a, 0x4e, 0x5d, 0x24, 0x79, 0x36, 0x34, 0xe8, 0x75, 0x74, 0x17, 0x32, 0x62, + 0xd1, 0xb5, 0x9b, 0x51, 0xbe, 0x21, 0x34, 0x19, 0x76, 0x93, 0x8c, 0x90, 0xe1, 0xf4, 0x7f, 0x2b, + 0xc3, 0xf7, 0x60, 0xde, 0x71, 0x1d, 0xea, 0xd8, 0x94, 0xd4, 0x59, 0x5c, 0x53, 0x5c, 0x81, 0x32, + 0x1d, 0x9b, 0x5e, 0xcf, 0xfd, 0x4a, 0x82, 0x35, 0xed, 0x03, 0x25, 0xbe, 0x6b, 0x37, 0xbe, 0x97, + 0xd1, 0xd0, 0x1f, 0x53, 0x6a, 0x30, 0xa6, 0xdf, 0xcc, 0xc0, 0x4a, 0x99, 0xb8, 0x75, 0xc7, 0xbd, + 0x50, 0x6a, 0xd4, 0x79, 0xe7, 0xd0, 0x2b, 0x1e, 0xd1, 0x5d, 0xc8, 0xd8, 0xe2, 0xb9, 0x9b, 0x65, + 0x88, 0x4c, 0x7a, 0x1d, 0x1d, 0xc2, 0x42, 0x07, 0x90, 0x38, 0x7f, 0x22, 0xd7, 0x7c, 0xfe, 0xcc, + 0xdb, 0xb1, 0x27, 0xf4, 0x1c, 0xa6, 0xd9, 0x2c, 0x08, 0x47, 0xd0, 0xe2, 0xa3, 0x87, 0xc3, 0x45, + 0xb8, 0x37, 0x42, 0x26, 0xfb, 0x04, 0x87, 0x3c, 0xa4, 0xc3, 0xf2, 0x25, 0xb1, 0x7d, 0x7a, 0x46, + 0x6c, 0x6a, 0xd5, 0x09, 0xb5, 0x9d, 0x46, 0x20, 0x86, 0xd2, 0x47, 0x23, 0x14, 0xfd, 0xaa, 0xe1, + 0xd9, 0x75, 0x2c, 0x77, 0x68, 0x85, 0x90, 0x85, 0x5e, 0xc2, 0x4a, 0xc3, 0x0e, 0xa8, 0xd5, 0xf5, + 0xc7, 0x05, 0x68, 0x3a, 0x51, 0x80, 0x96, 0x19, 0xed, 0x28, 0x62, 0x71, 0x1d, 0x3a, 0x04, 0x6e, + 0x0c, 0xbb, 0x82, 0xd4, 0x43, 0x4f, 0x33, 0x89, 0x9e, 0x96, 0x18, 0xa9, 0x12, 0x72, 0xb8, 0x9f, + 0x2c, 0xdc, 0xb0, 0x29, 0x25, 0xcd, 0x16, 0xe5, 0x63, 0x6a, 0x1a, 0x47, 0x8f, 0xe8, 0x21, 0xc8, + 0x4d, 0xfb, 0x83, 0xd3, 0x6c, 0x37, 0x2d, 0x61, 0x0a, 0xf8, 0xc8, 0x99, 0xc6, 0x4b, 0xc2, 0xae, + 0x08, 0x33, 0x9b, 0x4d, 0x41, 0xed, 0x92, 0xd4, 0xdb, 0x8d, 0x28, 0x92, 0xb9, 0xe4, 0xd9, 0xd4, + 0x61, 0xf0, 0x38, 0x54, 0x58, 0x22, 0x1f, 0x5a, 0x4e, 0xd8, 0xb3, 0xa1, 0x0f, 0x48, 0xf4, 0xb1, + 0xd8, 0xa5, 0x70, 0x27, 0xcf, 0x61, 0x9e, 0x27, 0xe5, 0xdc, 0x76, 0x1a, 0x6d, 0x9f, 0x88, 0xc1, + 0x32, 0xfc, 0x98, 0x0e, 0x43, 0x0c, 0xce, 0x30, 0x86, 0x78, 0x40, 0x5f, 0xc0, 0x2a, 0x77, 0xc0, + 0x6a, 0x9d, 0xf8, 0x96, 0x53, 0x27, 0x2e, 0x75, 0xe8, 0x95, 0x98, 0x2d, 0x88, 0xad, 0x9d, 0xf0, + 0x25, 0x5d, 0xac, 0xa0, 0x6f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, 0xe5, + 0x5e, 0x5e, 0xee, 0x2f, 0x29, 0xb8, 0x25, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, 0x61, + 0x3f, 0x8f, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, 0xbf, + 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, 0x76, + 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, 0xf5, + 0x9b, 0xd0, 0x4d, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, 0x3a, + 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, 0x4f, + 0x97, 0x0f, 0x56, 0x70, 0xea, 0xba, 0x15, 0xfc, 0x0c, 0xe6, 0x7b, 0x9a, 0x31, 0xf9, 0xce, 0x9b, + 0x09, 0x86, 0x37, 0xe2, 0x54, 0x6f, 0x23, 0x62, 0x58, 0xf7, 0x7c, 0xe7, 0xc2, 0x71, 0xed, 0x86, + 0xd5, 0x17, 0x64, 0xb2, 0x74, 0xac, 0x45, 0xd4, 0x4a, 0x3c, 0xd8, 0xdc, 0x5f, 0x53, 0x70, 0x2b, + 0x92, 0xbb, 0xa2, 0x57, 0xb3, 0x1b, 0x05, 0x27, 0x68, 0xd9, 0xb4, 0x76, 0x39, 0x99, 0x3a, 0xff, + 0xef, 0xd3, 0xf5, 0x33, 0xb8, 0xd3, 0x1b, 0x81, 0xe5, 0x9d, 0x5b, 0xf4, 0xd2, 0x09, 0xac, 0x78, + 0x16, 0xc7, 0x3b, 0xdc, 0xe8, 0x89, 0xa8, 0x74, 0x6e, 0x5e, 0x3a, 0x81, 0xd0, 0x34, 0xf4, 0x31, + 0x00, 0xbf, 0x75, 0x50, 0xef, 0x2d, 0x09, 0xab, 0x70, 0x1e, 0xf3, 0x6b, 0x92, 0xc9, 0x0c, 0xb9, + 0x97, 0x90, 0x89, 0x5f, 0x44, 0xf7, 0x61, 0x46, 0xdc, 0x65, 0x25, 0x7e, 0x17, 0xfc, 0x24, 0xe1, + 0x2e, 0xcb, 0xaf, 0xf9, 0x82, 0x92, 0xfb, 0x53, 0x0a, 0x16, 0x7b, 0x97, 0xd0, 0x67, 0xb0, 0x74, + 0xe6, 0xb8, 0xb6, 0x7f, 0x65, 0xd5, 0x2e, 0x49, 0xed, 0x6d, 0xd0, 0x6e, 0x8a, 0x43, 0x58, 0x0c, + 0xcd, 0xaa, 0xb0, 0xa2, 0x35, 0x98, 0xf1, 0xdb, 0x6e, 0x34, 0x7c, 0xe7, 0xf0, 0xb4, 0xdf, 0x66, + 0xb7, 0x94, 0x67, 0x70, 0xfb, 0xdc, 0xf1, 0x03, 0x36, 0xb0, 0xc2, 0x62, 0xb7, 0x6a, 0x5e, 0xb3, + 0xd5, 0x20, 0x3d, 0x9d, 0x9c, 0xe5, 0x90, 0xa8, 0x1d, 0xd4, 0x08, 0xc0, 0xe9, 0xf3, 0x35, 0x9f, + 0xd8, 0x9d, 0xb3, 0x49, 0x4e, 0x65, 0x46, 0xe0, 0x85, 0x0c, 0x2f, 0x70, 0x61, 0x76, 0xdc, 0x8b, + 0x49, 0xcb, 0x74, 0x3e, 0x22, 0x70, 0x07, 0x77, 0x00, 0xf8, 0x0f, 0x04, 0x6a, 0x9f, 0x35, 0xc2, + 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x25, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0xee, 0x94, + 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, 0xc5, + 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x53, 0xd8, 0x1c, 0x81, 0xa9, + 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, 0x15, + 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x6c, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, 0x71, + 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, 0x53, + 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, 0xff, + 0xcb, 0x54, 0xf7, 0xfb, 0x81, 0x5e, 0xc7, 0xa4, 0xdd, 0xd1, 0xdc, 0x4f, 0x61, 0xf3, 0xa4, 0x84, + 0x5f, 0x1d, 0x16, 0x4b, 0x27, 0x96, 0x5e, 0xb0, 0xb0, 0x56, 0xad, 0x68, 0x56, 0xb9, 0x54, 0xd4, + 0xd5, 0xd3, 0x58, 0x24, 0xdf, 0xc2, 0x57, 0x23, 0x51, 0x4a, 0x91, 0x59, 0x0b, 0xd5, 0x72, 0x51, + 0x57, 0xd9, 0x5b, 0x0f, 0x15, 0xbd, 0xa8, 0x15, 0xac, 0x92, 0x51, 0x3c, 0x95, 0x25, 0xf4, 0x39, + 0x6c, 0x4d, 0xca, 0x94, 0x53, 0x68, 0x1b, 0x1e, 0x8e, 0x44, 0x63, 0xed, 0xa5, 0xa6, 0x9a, 0x31, + 0x78, 0x1a, 0xed, 0xc1, 0xf6, 0x48, 0xb8, 0xa9, 0xe1, 0x63, 0xdd, 0xe0, 0x09, 0x3d, 0xb4, 0x70, + 0xd5, 0x30, 0x74, 0xe3, 0x85, 0x3c, 0x95, 0xff, 0xbd, 0x04, 0xcb, 0x03, 0xc3, 0x08, 0xdd, 0x85, + 0xdb, 0x65, 0x05, 0x6b, 0x86, 0x69, 0xa9, 0xc5, 0xd2, 0xb0, 0x04, 0x8c, 0x00, 0x28, 0x07, 0x8a, + 0x51, 0x28, 0x19, 0xb2, 0x84, 0x1e, 0x40, 0x6e, 0x18, 0x40, 0xd4, 0x82, 0x28, 0x0d, 0x39, 0x85, + 0xee, 0xc1, 0xc7, 0xc3, 0x70, 0x9d, 0x68, 0xe5, 0x74, 0xfe, 0x5f, 0x29, 0xf8, 0x68, 0xdc, 0x67, + 0x0a, 0x56, 0x81, 0x9d, 0x6d, 0x6b, 0x6f, 0x34, 0xb5, 0x6a, 0xb2, 0x33, 0x0f, 0xfd, 0xb1, 0x93, + 0xaf, 0x56, 0x62, 0x91, 0xc7, 0x53, 0x3a, 0x02, 0xac, 0x96, 0x8e, 0xcb, 0x45, 0xcd, 0xe4, 0xd5, + 0x94, 0x87, 0x07, 0x49, 0xf0, 0xf0, 0x80, 0xe5, 0x54, 0xcf, 0xd9, 0x8e, 0x72, 0xcd, 0xf7, 0xcd, + 0x5a, 0x01, 0xed, 0x40, 0x3e, 0x09, 0xdd, 0xc9, 0x42, 0x41, 0x9e, 0x42, 0x5f, 0xc1, 0x17, 0xc9, + 0x81, 0x1b, 0xa6, 0x6e, 0x54, 0xb5, 0x82, 0xa5, 0x54, 0x2c, 0x43, 0x3b, 0x91, 0xa7, 0x27, 0xd9, + 0xae, 0xa9, 0x1f, 0xb3, 0xfa, 0xac, 0x9a, 0xf2, 0x4c, 0xfe, 0x6f, 0x12, 0xdc, 0x54, 0x3d, 0x97, + 0x3a, 0x6e, 0x9b, 0x28, 0x81, 0x41, 0xde, 0xeb, 0xe1, 0x3d, 0xc7, 0xf3, 0xd1, 0x7d, 0xb8, 0x17, + 0xf9, 0x17, 0xee, 0x2d, 0xdd, 0xd0, 0x4d, 0x5d, 0x31, 0x4b, 0x38, 0x96, 0xdf, 0xb1, 0x30, 0xd6, + 0x90, 0x05, 0x0d, 0x87, 0x79, 0x1d, 0x0d, 0xc3, 0x9a, 0x89, 0x4f, 0x45, 0x29, 0x84, 0x0a, 0x33, + 0x1a, 0xab, 0x62, 0xd6, 0xdf, 0xa2, 0xff, 0xe5, 0x74, 0xfe, 0x0f, 0x12, 0x64, 0xc4, 0x6f, 0x5b, + 0xfe, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, 0x86, + 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, 0x86, + 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xd9, 0x83, 0x39, 0xd2, 0x14, + 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x27, 0xc1, 0xad, 0x48, 0x09, 0x4d, 0x36, 0x58, + 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0x0f, 0xe1, 0x7e, 0x47, 0xc3, 0x4c, + 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, 0x90, + 0x25, 0xf4, 0x19, 0x7c, 0x32, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, 0xb0, + 0x1e, 0x0f, 0x8e, 0xfd, 0x40, 0x20, 0xf5, 0x30, 0xb4, 0x07, 0x90, 0xeb, 0x75, 0x22, 0x74, 0xae, + 0x3f, 0xae, 0x3d, 0xd8, 0x1e, 0x83, 0xab, 0x1a, 0x47, 0x8a, 0x51, 0x60, 0xcf, 0x11, 0x48, 0x96, + 0xd0, 0x73, 0xd8, 0x1f, 0x43, 0x39, 0x50, 0x0a, 0xdd, 0x2c, 0x77, 0x26, 0x8e, 0x62, 0x9a, 0x58, + 0x3f, 0xa8, 0x9a, 0x5a, 0x45, 0x4e, 0x21, 0x0d, 0x94, 0x04, 0x07, 0xbd, 0x3a, 0x34, 0xd4, 0x4d, + 0x1a, 0x3d, 0x81, 0xaf, 0x93, 0xe2, 0x08, 0x4b, 0x46, 0x3f, 0xd6, 0x70, 0x9c, 0x3a, 0x85, 0x9e, + 0xc2, 0x37, 0x09, 0x54, 0xf1, 0xe6, 0x01, 0xee, 0x34, 0xda, 0x87, 0xc7, 0x89, 0xd1, 0xab, 0x25, + 0x5c, 0xb0, 0x8e, 0x15, 0xfc, 0xaa, 0x97, 0x3c, 0x83, 0x74, 0xd0, 0x92, 0x5e, 0x2c, 0xd4, 0xcd, + 0x1a, 0xa2, 0x0b, 0x31, 0x57, 0x37, 0x26, 0xc8, 0x22, 0x33, 0x24, 0xb8, 0x99, 0x45, 0x2f, 0x40, + 0x9d, 0x2c, 0x15, 0xe3, 0x1d, 0xcd, 0xa1, 0x37, 0x60, 0x5e, 0xef, 0x54, 0xb5, 0x37, 0xa6, 0x86, + 0x0d, 0x25, 0xc9, 0x33, 0xa0, 0x67, 0xf0, 0x24, 0x31, 0x69, 0xbd, 0xfa, 0x13, 0xa3, 0x67, 0xd0, + 0x63, 0xf8, 0x72, 0x0c, 0x3d, 0x5e, 0x23, 0xdd, 0x5b, 0x81, 0x5e, 0x90, 0xe7, 0xd1, 0xd7, 0xb0, + 0x37, 0x86, 0xc8, 0xbb, 0xd0, 0xaa, 0x98, 0xba, 0xfa, 0xea, 0x34, 0x5c, 0x2e, 0xea, 0x15, 0x53, + 0x5e, 0x40, 0x3f, 0x82, 0x1f, 0x8c, 0xa1, 0x75, 0x36, 0xcb, 0xfe, 0xd0, 0x70, 0xac, 0xc5, 0x18, + 0xac, 0x8a, 0x35, 0x79, 0x71, 0x82, 0x33, 0xa9, 0xe8, 0x2f, 0x92, 0x33, 0xb7, 0x84, 0x54, 0x78, + 0x3e, 0x51, 0x8b, 0xa8, 0x47, 0x7a, 0xb1, 0x30, 0xdc, 0x89, 0x8c, 0xbe, 0x84, 0xdd, 0x31, 0x4e, + 0x0e, 0x4b, 0x58, 0xd5, 0xc4, 0xc4, 0xea, 0x88, 0xc4, 0x32, 0xfa, 0x06, 0x1e, 0x8d, 0x23, 0x29, + 0x7a, 0xb1, 0xf4, 0x5a, 0xc3, 0xfd, 0x3c, 0xc4, 0xc6, 0xe8, 0x64, 0x5b, 0xd7, 0x8d, 0x72, 0xd5, + 0xb4, 0x2a, 0xfa, 0x77, 0x9a, 0xbc, 0xc2, 0xc6, 0x68, 0xe2, 0x49, 0x45, 0xb9, 0x92, 0x57, 0x07, + 0xc5, 0x78, 0xe0, 0x25, 0x07, 0xba, 0xa1, 0xe0, 0x53, 0x79, 0x2d, 0xa1, 0xf6, 0x06, 0x85, 0xae, + 0xa7, 0x84, 0x6e, 0x4e, 0xb2, 0x1d, 0x4d, 0xc1, 0xea, 0x51, 0x3c, 0xe3, 0xeb, 0x6c, 0xea, 0xdc, + 0xe3, 0x1f, 0x5c, 0x06, 0xee, 0x55, 0x71, 0x89, 0xdf, 0x83, 0xed, 0xf0, 0xdc, 0x86, 0x54, 0xc1, + 0x08, 0xb5, 0x3f, 0x80, 0x1f, 0x4e, 0x46, 0xe9, 0xac, 0x2b, 0x45, 0xac, 0x29, 0x85, 0xd3, 0xce, + 0x95, 0x54, 0xca, 0xff, 0x3a, 0x05, 0x79, 0xd5, 0x76, 0x6b, 0xa4, 0x11, 0x7d, 0xc7, 0x1d, 0x1b, + 0xe5, 0x3e, 0x3c, 0x9e, 0xa0, 0xdf, 0x47, 0xc4, 0x7b, 0x02, 0x95, 0xeb, 0x92, 0xab, 0xc6, 0x2b, + 0xa3, 0x74, 0x62, 0x8c, 0x23, 0xc8, 0x12, 0x32, 0xe0, 0xe5, 0x75, 0x1d, 0x0f, 0xa4, 0xa4, 0x7b, + 0x0f, 0x4d, 0xf1, 0xa4, 0x54, 0x9c, 0x0b, 0xfe, 0x51, 0x7b, 0xb2, 0xa4, 0x88, 0x32, 0xfe, 0xcf, + 0x92, 0x72, 0x5d, 0xf2, 0xc4, 0x49, 0xb9, 0xae, 0xe3, 0x71, 0x49, 0x39, 0xf8, 0x29, 0xac, 0xd7, + 0xbc, 0xe6, 0xb0, 0xaf, 0x0c, 0x07, 0x0b, 0x51, 0x7a, 0xca, 0xec, 0x67, 0x76, 0x59, 0xfa, 0x6e, + 0xef, 0xc2, 0xa1, 0x97, 0xed, 0xb3, 0x9d, 0x9a, 0xd7, 0xdc, 0x8d, 0xff, 0x87, 0x79, 0xdb, 0xa9, + 0x37, 0x76, 0x2f, 0xbc, 0xf0, 0x3f, 0xd6, 0xe2, 0xdf, 0xcd, 0xfb, 0x76, 0xcb, 0x79, 0xb7, 0x77, + 0x36, 0xc3, 0x6d, 0x5f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x4c, 0xea, 0x44, 0x2e, 0x1f, + 0x00, 0x00, }, // uber/cadence/api/v1/tasklist.proto []byte{ diff --git a/.gen/proto/shared/v1/history.pb.yarpc.go b/.gen/proto/shared/v1/history.pb.yarpc.go index 25a389002ac..eead362c314 100644 --- a/.gen/proto/shared/v1/history.pb.yarpc.go +++ b/.gen/proto/shared/v1/history.pb.yarpc.go @@ -457,155 +457,156 @@ var yarpcFileDescriptorClosure0370c4177fcc3ee8 = [][]byte{ []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4d, 0x73, 0xdb, 0xc8, 0xd1, 0x7e, 0x41, 0x4a, 0xb2, 0xd4, 0xd4, 0x07, 0x34, 0x92, 0x2c, 0x5a, 0xde, 0xb5, 0x65, 0xee, - 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0xda, 0x5e, 0x5b, 0x71, 0x1c, 0x08, 0x84, 0x2c, 0xd8, - 0x14, 0xc8, 0x0c, 0x41, 0xcb, 0xda, 0x4a, 0x82, 0x82, 0xc8, 0x91, 0x84, 0x98, 0x04, 0x58, 0xc0, - 0xd0, 0xb6, 0xee, 0xa9, 0xca, 0x39, 0x97, 0x54, 0x2a, 0xa7, 0xfc, 0x80, 0xa4, 0x52, 0xa9, 0x9c, - 0x53, 0xa9, 0xca, 0x21, 0xb7, 0x5c, 0xf3, 0x1f, 0xf2, 0x2f, 0x52, 0x33, 0x18, 0x90, 0xe0, 0x27, - 0xe8, 0xa4, 0x6a, 0x73, 0x13, 0x7a, 0x9e, 0xa7, 0xd1, 0xd3, 0xd3, 0xfd, 0xf4, 0x80, 0x82, 0x5c, - 0xfb, 0x8c, 0xf8, 0xbb, 0x35, 0xbb, 0x4e, 0xdc, 0x1a, 0xd9, 0xb5, 0x5b, 0xce, 0xee, 0xbb, 0xbd, - 0xdd, 0xf7, 0x9e, 0xff, 0xf6, 0xbc, 0xe1, 0xbd, 0xdf, 0x69, 0xf9, 0x1e, 0xf5, 0xd0, 0x0a, 0xc3, - 0xec, 0x08, 0xcc, 0x8e, 0xdd, 0x72, 0x76, 0xde, 0xed, 0x6d, 0xdc, 0xba, 0xf0, 0xbc, 0x8b, 0x06, - 0xd9, 0xe5, 0x90, 0xb3, 0xf6, 0xf9, 0x6e, 0xbd, 0xed, 0xdb, 0xd4, 0xf1, 0xdc, 0x90, 0xb4, 0x71, - 0xbb, 0x7f, 0x9d, 0x3a, 0x4d, 0x12, 0x50, 0xbb, 0xd9, 0x12, 0x80, 0xcd, 0x61, 0x6f, 0xae, 0x79, - 0xcd, 0x66, 0xc7, 0xc5, 0xd0, 0xd8, 0xa8, 0x1d, 0xbc, 0x6d, 0x38, 0x01, 0x0d, 0x31, 0xb9, 0x3f, - 0xcc, 0xc2, 0xda, 0x89, 0x08, 0x57, 0xfb, 0x40, 0x6a, 0x6d, 0x16, 0x82, 0xee, 0x9e, 0x7b, 0xa8, - 0x0a, 0x28, 0xda, 0x87, 0x45, 0xa2, 0x95, 0xac, 0xb4, 0x29, 0x6d, 0x65, 0x1e, 0xdc, 0xdb, 0x19, - 0xb2, 0xa5, 0x9d, 0x01, 0x3f, 0x78, 0xf9, 0x7d, 0xbf, 0x09, 0x3d, 0x84, 0x29, 0x7a, 0xd5, 0x22, - 0xd9, 0x14, 0x77, 0x74, 0x67, 0xac, 0x23, 0xf3, 0xaa, 0x45, 0x30, 0x87, 0xa3, 0x27, 0x00, 0x01, - 0xb5, 0x7d, 0x6a, 0xb1, 0x34, 0x64, 0xd3, 0x9c, 0xbc, 0xb1, 0x13, 0xe6, 0x68, 0x27, 0xca, 0xd1, - 0x8e, 0x19, 0xe5, 0x08, 0xcf, 0x71, 0x34, 0x7b, 0x66, 0xd4, 0x5a, 0xc3, 0x0b, 0x48, 0x48, 0x9d, - 0x4a, 0xa6, 0x72, 0x34, 0xa7, 0x9a, 0x30, 0x1f, 0x52, 0x03, 0x6a, 0xd3, 0x76, 0x90, 0x9d, 0xde, - 0x94, 0xb6, 0x16, 0x1f, 0xec, 0x4d, 0xb6, 0x7b, 0x95, 0x31, 0x2b, 0x9c, 0x88, 0x33, 0xb5, 0xee, - 0x03, 0xba, 0x0b, 0x8b, 0x97, 0x4e, 0x40, 0x3d, 0xff, 0xca, 0x6a, 0x10, 0xf7, 0x82, 0x5e, 0x66, - 0x67, 0x36, 0xa5, 0xad, 0x34, 0x5e, 0x10, 0xd6, 0x22, 0x37, 0xa2, 0x9f, 0xc0, 0x5a, 0xcb, 0xf6, - 0x89, 0x4b, 0xbb, 0xe9, 0xb7, 0x1c, 0xf7, 0xdc, 0xcb, 0x5e, 0xe3, 0x5b, 0xd8, 0x1a, 0x1a, 0x45, - 0x99, 0x33, 0x7a, 0x4e, 0x12, 0xaf, 0xb4, 0x06, 0x8d, 0x48, 0x81, 0xc5, 0xae, 0x5b, 0x9e, 0x99, - 0xd9, 0xc4, 0xcc, 0x2c, 0x74, 0x18, 0x3c, 0x3b, 0xdb, 0x30, 0xd5, 0x24, 0x4d, 0x2f, 0x3b, 0xc7, - 0x89, 0x37, 0x86, 0xc6, 0x73, 0x4c, 0x9a, 0x1e, 0xe6, 0x30, 0x84, 0x61, 0x39, 0x20, 0xb6, 0x5f, - 0xbb, 0xb4, 0x6c, 0x4a, 0x7d, 0xe7, 0xac, 0x4d, 0x49, 0x90, 0x05, 0xce, 0xbd, 0x3b, 0x94, 0x5b, - 0xe1, 0x68, 0xa5, 0x03, 0xc6, 0x72, 0xd0, 0x67, 0x41, 0x45, 0x58, 0xb6, 0xdb, 0xd4, 0xb3, 0x7c, - 0x12, 0x10, 0x6a, 0xb5, 0x3c, 0xc7, 0xa5, 0x41, 0x36, 0xc3, 0x7d, 0x6e, 0x0e, 0xf5, 0x89, 0x19, - 0xb0, 0xcc, 0x71, 0x78, 0x89, 0x51, 0x63, 0x06, 0x74, 0x13, 0xe6, 0x58, 0x7b, 0x58, 0xac, 0x3f, - 0xb2, 0xf3, 0x9b, 0xd2, 0xd6, 0x1c, 0x9e, 0x65, 0x86, 0xa2, 0x13, 0x50, 0xb4, 0x0e, 0xd7, 0x9c, - 0xc0, 0xaa, 0xf9, 0x9e, 0x9b, 0x5d, 0xd8, 0x94, 0xb6, 0x66, 0xf1, 0x8c, 0x13, 0xa8, 0xbe, 0xe7, - 0xa2, 0x7d, 0xc8, 0xb4, 0x5b, 0x75, 0x9b, 0x8a, 0x02, 0x5b, 0x4c, 0x4c, 0x23, 0x84, 0x70, 0x9e, - 0xc3, 0x9f, 0x83, 0xdc, 0xb2, 0x7d, 0xea, 0xf0, 0x63, 0xa8, 0x79, 0xee, 0xb9, 0x73, 0x91, 0x5d, - 0xda, 0x4c, 0x6f, 0x65, 0x1e, 0x3c, 0x9f, 0xac, 0xca, 0xd8, 0x61, 0xb2, 0x53, 0x0f, 0x5d, 0xa8, - 0xdc, 0x83, 0xe6, 0x52, 0xff, 0x0a, 0x2f, 0xb5, 0x7a, 0xad, 0x1b, 0x07, 0xb0, 0x3a, 0x0c, 0x88, - 0x64, 0x48, 0xbf, 0x25, 0x57, 0xbc, 0xb5, 0xe7, 0x30, 0xfb, 0x13, 0xad, 0xc2, 0xf4, 0x3b, 0xbb, - 0xd1, 0x0e, 0xbb, 0x74, 0x0e, 0x87, 0x0f, 0x4f, 0x53, 0xdf, 0x4a, 0xb9, 0xdf, 0xa4, 0xe0, 0xd6, - 0x60, 0xa5, 0x73, 0x67, 0x42, 0xbf, 0xd0, 0xd3, 0x78, 0x16, 0x43, 0xbd, 0xf8, 0x74, 0xe8, 0x5e, - 0x4c, 0x91, 0xda, 0x58, 0x92, 0x6d, 0xd8, 0xec, 0x56, 0xa5, 0x68, 0x78, 0xcf, 0xea, 0xb6, 0xaf, - 0xd7, 0xa6, 0x42, 0x39, 0x6e, 0x0c, 0x24, 0xb8, 0x20, 0x02, 0xc0, 0x9f, 0x74, 0x5c, 0x54, 0xb8, - 0x08, 0x78, 0x6a, 0xd4, 0xd0, 0x5e, 0x9b, 0xa2, 0x13, 0xb8, 0xc9, 0xc3, 0x1b, 0xe1, 0x3d, 0x9d, - 0xe4, 0x7d, 0x9d, 0xb1, 0x87, 0x38, 0xce, 0xfd, 0x43, 0x82, 0x95, 0x21, 0xed, 0xc7, 0xaa, 0xaa, - 0xee, 0x35, 0x6d, 0xc7, 0xb5, 0x9c, 0xba, 0x48, 0xf2, 0x6c, 0x68, 0xd0, 0xeb, 0xe8, 0x36, 0x64, - 0xc4, 0xa2, 0x6b, 0x37, 0xa3, 0x7c, 0x43, 0x68, 0x32, 0xec, 0x26, 0x19, 0x21, 0xc3, 0xe9, 0xff, - 0x56, 0x86, 0xef, 0xc0, 0xbc, 0xe3, 0x3a, 0xd4, 0xb1, 0x29, 0xa9, 0xb3, 0xb8, 0xa6, 0xb8, 0x02, - 0x65, 0x3a, 0x36, 0xbd, 0x9e, 0xfb, 0x95, 0x04, 0x6b, 0xda, 0x07, 0x4a, 0x7c, 0xd7, 0x6e, 0x7c, - 0x2f, 0xa3, 0xa1, 0x3f, 0xa6, 0xd4, 0x60, 0x4c, 0xbf, 0x9e, 0x81, 0x95, 0x32, 0x71, 0xeb, 0x8e, - 0x7b, 0xa1, 0xd4, 0xa8, 0xf3, 0xce, 0xa1, 0x57, 0x3c, 0xa2, 0xdb, 0x90, 0xb1, 0xc5, 0x73, 0x37, - 0xcb, 0x10, 0x99, 0xf4, 0x3a, 0x3a, 0x84, 0x85, 0x0e, 0x20, 0x71, 0xfe, 0x44, 0xae, 0xf9, 0xfc, - 0x99, 0xb7, 0x63, 0x4f, 0xe8, 0x39, 0x4c, 0xb3, 0x59, 0x10, 0x8e, 0xa0, 0xc5, 0x07, 0xf7, 0x87, - 0x8b, 0x70, 0x6f, 0x84, 0x4c, 0xf6, 0x09, 0x0e, 0x79, 0x48, 0x87, 0xe5, 0x4b, 0x62, 0xfb, 0xf4, - 0x8c, 0xd8, 0xd4, 0xaa, 0x13, 0x6a, 0x3b, 0x8d, 0x40, 0x0c, 0xa5, 0x4f, 0x46, 0x28, 0xfa, 0x55, - 0xc3, 0xb3, 0xeb, 0x58, 0xee, 0xd0, 0x0a, 0x21, 0x0b, 0xbd, 0x84, 0x95, 0x86, 0x1d, 0x50, 0xab, - 0xeb, 0x8f, 0x0b, 0xd0, 0x74, 0xa2, 0x00, 0x2d, 0x33, 0xda, 0x51, 0xc4, 0xe2, 0x3a, 0x74, 0x08, - 0xdc, 0x18, 0x76, 0x05, 0xa9, 0x87, 0x9e, 0x66, 0x12, 0x3d, 0x2d, 0x31, 0x52, 0x25, 0xe4, 0x70, - 0x3f, 0x59, 0xb8, 0x66, 0x53, 0x4a, 0x9a, 0x2d, 0xca, 0xc7, 0xd4, 0x34, 0x8e, 0x1e, 0xd1, 0x7d, - 0x90, 0x9b, 0xf6, 0x07, 0xa7, 0xd9, 0x6e, 0x5a, 0xc2, 0x14, 0xf0, 0x91, 0x33, 0x8d, 0x97, 0x84, - 0x5d, 0x11, 0x66, 0x36, 0x9b, 0x82, 0xda, 0x25, 0xa9, 0xb7, 0x1b, 0x51, 0x24, 0x73, 0xc9, 0xb3, - 0xa9, 0xc3, 0xe0, 0x71, 0xa8, 0xb0, 0x44, 0x3e, 0xb4, 0x9c, 0xb0, 0x67, 0x43, 0x1f, 0x90, 0xe8, - 0x63, 0xb1, 0x4b, 0xe1, 0x4e, 0x9e, 0xc3, 0x3c, 0x4f, 0xca, 0xb9, 0xed, 0x34, 0xda, 0x3e, 0x11, - 0x83, 0x65, 0xf8, 0x31, 0x1d, 0x86, 0x18, 0x9c, 0x61, 0x0c, 0xf1, 0x80, 0xbe, 0x82, 0x55, 0xee, - 0x80, 0xd5, 0x3a, 0xf1, 0x2d, 0xa7, 0x4e, 0x5c, 0xea, 0xd0, 0x2b, 0x31, 0x5b, 0x10, 0x5b, 0x3b, - 0xe1, 0x4b, 0xba, 0x58, 0x41, 0x8f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, - 0xe5, 0x5e, 0x5e, 0xee, 0xcf, 0x29, 0xb8, 0x21, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, - 0x61, 0xbf, 0x8c, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, - 0xbf, 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, - 0x76, 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, - 0xf5, 0x9b, 0xd0, 0x75, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, - 0x3a, 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, - 0x4f, 0x97, 0x0f, 0x56, 0x70, 0xea, 0x63, 0x2b, 0xf8, 0x19, 0xcc, 0xf7, 0x34, 0x63, 0xf2, 0x9d, - 0x37, 0x13, 0x0c, 0x6f, 0xc4, 0xa9, 0xde, 0x46, 0xc4, 0xb0, 0xee, 0xf9, 0xce, 0x85, 0xe3, 0xda, - 0x0d, 0xab, 0x2f, 0xc8, 0x64, 0xe9, 0x58, 0x8b, 0xa8, 0x95, 0x78, 0xb0, 0xb9, 0xbf, 0xa4, 0xe0, - 0x46, 0x24, 0x77, 0x45, 0xaf, 0x66, 0x37, 0x0a, 0x4e, 0xd0, 0xb2, 0x69, 0xed, 0x72, 0x32, 0x75, - 0xfe, 0xdf, 0xa7, 0xeb, 0x67, 0x70, 0xab, 0x37, 0x02, 0xcb, 0x3b, 0xb7, 0xe8, 0xa5, 0x13, 0x58, - 0xf1, 0x2c, 0x8e, 0x77, 0xb8, 0xd1, 0x13, 0x51, 0xe9, 0xdc, 0xbc, 0x74, 0x02, 0xa1, 0x69, 0xe8, - 0x53, 0x00, 0x7e, 0xeb, 0xa0, 0xde, 0x5b, 0x12, 0x56, 0xe1, 0x3c, 0xe6, 0xd7, 0x24, 0x93, 0x19, - 0x72, 0x2f, 0x21, 0x13, 0xbf, 0x88, 0xee, 0xc3, 0x8c, 0xb8, 0xcb, 0x4a, 0xfc, 0x2e, 0xf8, 0x59, - 0xc2, 0x5d, 0x96, 0x5f, 0xf3, 0x05, 0x25, 0xf7, 0xc7, 0x14, 0x2c, 0xf6, 0x2e, 0xa1, 0x2f, 0x60, - 0xe9, 0xcc, 0x71, 0x6d, 0xff, 0xca, 0xaa, 0x5d, 0x92, 0xda, 0xdb, 0xa0, 0xdd, 0x14, 0x87, 0xb0, - 0x18, 0x9a, 0x55, 0x61, 0x45, 0x6b, 0x30, 0xe3, 0xb7, 0xdd, 0x68, 0xf8, 0xce, 0xe1, 0x69, 0xbf, - 0xcd, 0x6e, 0x29, 0xcf, 0xe0, 0xe6, 0xb9, 0xe3, 0x07, 0x6c, 0x60, 0x85, 0xc5, 0x6e, 0xd5, 0xbc, - 0x66, 0xab, 0x41, 0x7a, 0x3a, 0x39, 0xcb, 0x21, 0x51, 0x3b, 0xa8, 0x11, 0x80, 0xd3, 0xe7, 0x6b, - 0x3e, 0xb1, 0x3b, 0x67, 0x93, 0x9c, 0xca, 0x8c, 0xc0, 0x0b, 0x19, 0x5e, 0xe0, 0xc2, 0xec, 0xb8, - 0x17, 0x93, 0x96, 0xe9, 0x7c, 0x44, 0xe0, 0x0e, 0x6e, 0x01, 0xf0, 0x0f, 0x04, 0x6a, 0x9f, 0x35, - 0xc2, 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x24, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0x6e, - 0x95, 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, - 0xc5, 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x73, 0xd8, 0x1c, 0x81, - 0xa9, 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, - 0x15, 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x62, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, - 0x71, 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, - 0x53, 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, - 0xff, 0xcb, 0x54, 0xf7, 0xf7, 0x03, 0xbd, 0x8e, 0x49, 0xbb, 0xa3, 0xb9, 0x9f, 0xc3, 0xe6, 0x49, - 0x09, 0xbf, 0x3a, 0x2c, 0x96, 0x4e, 0x2c, 0xbd, 0x60, 0x61, 0xad, 0x5a, 0xd1, 0xac, 0x72, 0xa9, - 0xa8, 0xab, 0xa7, 0xb1, 0x48, 0xbe, 0x85, 0x6f, 0x46, 0xa2, 0x94, 0x22, 0xb3, 0x16, 0xaa, 0xe5, - 0xa2, 0xae, 0xb2, 0xb7, 0x1e, 0x2a, 0x7a, 0x51, 0x2b, 0x58, 0x25, 0xa3, 0x78, 0x2a, 0x4b, 0xe8, - 0x4b, 0xd8, 0x9a, 0x94, 0x29, 0xa7, 0xd0, 0x36, 0xdc, 0x1f, 0x89, 0xc6, 0xda, 0x4b, 0x4d, 0x35, - 0x63, 0xf0, 0x34, 0xda, 0x83, 0xed, 0x91, 0x70, 0x53, 0xc3, 0xc7, 0xba, 0xc1, 0x13, 0x7a, 0x68, - 0xe1, 0xaa, 0x61, 0xe8, 0xc6, 0x0b, 0x79, 0x2a, 0xff, 0x3b, 0x09, 0x96, 0x07, 0x86, 0x11, 0xba, - 0x0d, 0x37, 0xcb, 0x0a, 0xd6, 0x0c, 0xd3, 0x52, 0x8b, 0xa5, 0x61, 0x09, 0x18, 0x01, 0x50, 0x0e, - 0x14, 0xa3, 0x50, 0x32, 0x64, 0x09, 0xdd, 0x83, 0xdc, 0x30, 0x80, 0xa8, 0x05, 0x51, 0x1a, 0x72, - 0x0a, 0xdd, 0x81, 0x4f, 0x87, 0xe1, 0x3a, 0xd1, 0xca, 0xe9, 0xfc, 0xbf, 0x52, 0xf0, 0xc9, 0xb8, - 0x9f, 0x29, 0x58, 0x05, 0x76, 0xb6, 0xad, 0xbd, 0xd1, 0xd4, 0xaa, 0xc9, 0xce, 0x3c, 0xf4, 0xc7, - 0x4e, 0xbe, 0x5a, 0x89, 0x45, 0x1e, 0x4f, 0xe9, 0x08, 0xb0, 0x5a, 0x3a, 0x2e, 0x17, 0x35, 0x93, - 0x57, 0x53, 0x1e, 0xee, 0x25, 0xc1, 0xc3, 0x03, 0x96, 0x53, 0x3d, 0x67, 0x3b, 0xca, 0x35, 0xdf, - 0x37, 0x6b, 0x05, 0xb4, 0x03, 0xf9, 0x24, 0x74, 0x27, 0x0b, 0x05, 0x79, 0x0a, 0x7d, 0x03, 0x5f, - 0x25, 0x07, 0x6e, 0x98, 0xba, 0x51, 0xd5, 0x0a, 0x96, 0x52, 0xb1, 0x0c, 0xed, 0x44, 0x9e, 0x9e, - 0x64, 0xbb, 0xa6, 0x7e, 0xcc, 0xea, 0xb3, 0x6a, 0xca, 0x33, 0xf9, 0xbf, 0x4a, 0x70, 0x5d, 0xf5, - 0x5c, 0xea, 0xb8, 0x6d, 0xa2, 0x04, 0x06, 0x79, 0xaf, 0x87, 0xf7, 0x1c, 0xcf, 0x47, 0x77, 0xe1, - 0x4e, 0xe4, 0x5f, 0xb8, 0xb7, 0x74, 0x43, 0x37, 0x75, 0xc5, 0x2c, 0xe1, 0x58, 0x7e, 0xc7, 0xc2, - 0x58, 0x43, 0x16, 0x34, 0x1c, 0xe6, 0x75, 0x34, 0x0c, 0x6b, 0x26, 0x3e, 0x15, 0xa5, 0x10, 0x2a, - 0xcc, 0x68, 0xac, 0x8a, 0x59, 0x7f, 0x8b, 0xfe, 0x97, 0xd3, 0xf9, 0xdf, 0x4b, 0x90, 0x11, 0xdf, - 0xb6, 0xfc, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, - 0x86, 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, - 0x86, 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xde, 0x83, 0x39, 0xd2, - 0x14, 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x2b, 0xc1, 0x8d, 0x48, 0x09, 0x4d, 0x36, - 0x58, 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0xf7, 0xe1, 0x6e, 0x47, 0xc3, - 0x4c, 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, - 0x90, 0x25, 0xf4, 0x05, 0x7c, 0x36, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, - 0xb0, 0x1e, 0x0f, 0x8e, 0x7d, 0x20, 0x90, 0x7a, 0x18, 0xda, 0x3d, 0xc8, 0xf5, 0x3a, 0x11, 0x3a, - 0xd7, 0x1f, 0xd7, 0x1e, 0x6c, 0x8f, 0xc1, 0x55, 0x8d, 0x23, 0xc5, 0x28, 0xb0, 0xe7, 0x08, 0x24, - 0x4b, 0xe8, 0x39, 0xec, 0x8f, 0xa1, 0x1c, 0x28, 0x85, 0x6e, 0x96, 0x3b, 0x13, 0x47, 0x31, 0x4d, - 0xac, 0x1f, 0x54, 0x4d, 0xad, 0x22, 0xa7, 0x90, 0x06, 0x4a, 0x82, 0x83, 0x5e, 0x1d, 0x1a, 0xea, - 0x26, 0x8d, 0x9e, 0xc0, 0xc3, 0xa4, 0x38, 0xc2, 0x92, 0xd1, 0x8f, 0x35, 0x1c, 0xa7, 0x4e, 0xa1, - 0xa7, 0xf0, 0x28, 0x81, 0x2a, 0xde, 0x3c, 0xc0, 0x9d, 0x46, 0xfb, 0xf0, 0x38, 0x31, 0x7a, 0xb5, - 0x84, 0x0b, 0xd6, 0xb1, 0x82, 0x5f, 0xf5, 0x92, 0x67, 0x90, 0x0e, 0x5a, 0xd2, 0x8b, 0x85, 0xba, - 0x59, 0x43, 0x74, 0x21, 0xe6, 0xea, 0xda, 0x04, 0x59, 0x64, 0x86, 0x04, 0x37, 0xb3, 0xe8, 0x05, - 0xa8, 0x93, 0xa5, 0x62, 0xbc, 0xa3, 0x39, 0xf4, 0x06, 0xcc, 0x8f, 0x3b, 0x55, 0xed, 0x8d, 0xa9, - 0x61, 0x43, 0x49, 0xf2, 0x0c, 0xe8, 0x19, 0x3c, 0x49, 0x4c, 0x5a, 0xaf, 0xfe, 0xc4, 0xe8, 0x19, - 0xf4, 0x18, 0xbe, 0x1e, 0x43, 0x8f, 0xd7, 0x48, 0xf7, 0x56, 0xa0, 0x17, 0xe4, 0x79, 0xf4, 0x10, - 0xf6, 0xc6, 0x10, 0x79, 0x17, 0x5a, 0x15, 0x53, 0x57, 0x5f, 0x9d, 0x86, 0xcb, 0x45, 0xbd, 0x62, - 0xca, 0x0b, 0xe8, 0x47, 0xf0, 0x83, 0x31, 0xb4, 0xce, 0x66, 0xd9, 0x1f, 0x1a, 0x8e, 0xb5, 0x18, - 0x83, 0x55, 0xb1, 0x26, 0x2f, 0x4e, 0x70, 0x26, 0x15, 0xfd, 0x45, 0x72, 0xe6, 0x96, 0x90, 0x0a, - 0xcf, 0x27, 0x6a, 0x11, 0xf5, 0x48, 0x2f, 0x16, 0x86, 0x3b, 0x91, 0xd1, 0xd7, 0xb0, 0x3b, 0xc6, - 0xc9, 0x61, 0x09, 0xab, 0x9a, 0x98, 0x58, 0x1d, 0x91, 0x58, 0x46, 0x8f, 0xe0, 0xc1, 0x38, 0x92, - 0xa2, 0x17, 0x4b, 0xaf, 0x35, 0xdc, 0xcf, 0x43, 0x6c, 0x8c, 0x4e, 0xb6, 0x75, 0xdd, 0x28, 0x57, - 0x4d, 0xab, 0xa2, 0x7f, 0xa7, 0xc9, 0x2b, 0x6c, 0x8c, 0x26, 0x9e, 0x54, 0x94, 0x2b, 0x79, 0x75, - 0x50, 0x8c, 0x07, 0x5e, 0x72, 0xa0, 0x1b, 0x0a, 0x3e, 0x95, 0xd7, 0x12, 0x6a, 0x6f, 0x50, 0xe8, - 0x7a, 0x4a, 0xe8, 0xfa, 0x24, 0xdb, 0xd1, 0x14, 0xac, 0x1e, 0xc5, 0x33, 0xbe, 0xce, 0xa6, 0xce, - 0x1d, 0xfe, 0x83, 0xcb, 0xc0, 0xbd, 0x2a, 0x2e, 0xf1, 0x7b, 0xb0, 0x1d, 0x9e, 0xdb, 0x90, 0x2a, - 0x18, 0xa1, 0xf6, 0x07, 0xf0, 0xc3, 0xc9, 0x28, 0x9d, 0x75, 0xa5, 0x88, 0x35, 0xa5, 0x70, 0xda, - 0xb9, 0x92, 0x4a, 0xf9, 0xbf, 0x49, 0x90, 0x57, 0x6d, 0xb7, 0x46, 0x1a, 0xd1, 0xef, 0xb8, 0x63, - 0xa3, 0xdc, 0x87, 0xc7, 0x13, 0xf4, 0xfb, 0x88, 0x78, 0x4f, 0xa0, 0xf2, 0xb1, 0xe4, 0xaa, 0xf1, - 0xca, 0x28, 0x9d, 0x18, 0xe3, 0x08, 0x62, 0x13, 0x15, 0xe7, 0x82, 0xff, 0x08, 0x3d, 0xd9, 0x26, - 0x44, 0xd9, 0xfd, 0x67, 0x9b, 0xf8, 0x58, 0xf2, 0x44, 0x9b, 0x38, 0xf8, 0x29, 0xac, 0xd7, 0xbc, - 0xe6, 0xb0, 0xaf, 0xf8, 0x83, 0x85, 0x68, 0x3b, 0x65, 0xf6, 0x19, 0x5b, 0x96, 0xbe, 0xdb, 0xbb, - 0x70, 0xe8, 0x65, 0xfb, 0x6c, 0xa7, 0xe6, 0x35, 0x77, 0xe3, 0xff, 0xc1, 0xdd, 0x76, 0xea, 0x8d, - 0xdd, 0x0b, 0x2f, 0xfc, 0x8f, 0xb0, 0xf8, 0x77, 0xee, 0xbe, 0xdd, 0x72, 0xde, 0xed, 0x9d, 0xcd, - 0x70, 0xdb, 0xd7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x86, 0x60, 0x70, 0x2f, 0x8e, 0x1e, 0x00, - 0x00, + 0xda, 0x2b, 0xf3, 0x5d, 0x49, 0x2b, 0xef, 0x87, 0xd7, 0x56, 0x1c, 0x07, 0x02, 0x21, 0x0b, 0x36, + 0x05, 0x32, 0x43, 0xd0, 0xb2, 0xb6, 0x92, 0xa0, 0x20, 0x72, 0x24, 0x21, 0x26, 0x01, 0x16, 0x30, + 0xb4, 0xad, 0x7b, 0xaa, 0x72, 0x4e, 0x0e, 0xa9, 0x54, 0x4e, 0xf9, 0x01, 0x49, 0xa5, 0x52, 0x39, + 0xa7, 0x72, 0xcb, 0x2d, 0xd7, 0xfc, 0x87, 0xfc, 0x8b, 0xd4, 0x0c, 0x06, 0x24, 0xf8, 0x09, 0x2a, + 0xa9, 0xda, 0xdc, 0x84, 0x9e, 0xe7, 0x69, 0xf4, 0xf4, 0x74, 0x3f, 0x3d, 0x84, 0x20, 0xd7, 0x3e, + 0x23, 0xfe, 0x6e, 0xcd, 0xae, 0x13, 0xb7, 0x46, 0x76, 0xed, 0x96, 0xb3, 0xfb, 0x6e, 0x6f, 0xf7, + 0xbd, 0xe7, 0xbf, 0x3d, 0x6f, 0x78, 0xef, 0x77, 0x5a, 0xbe, 0x47, 0x3d, 0xb4, 0xc2, 0x30, 0x3b, + 0x02, 0xb3, 0x63, 0xb7, 0x9c, 0x9d, 0x77, 0x7b, 0x1b, 0x77, 0x2e, 0x3c, 0xef, 0xa2, 0x41, 0x76, + 0x39, 0xe4, 0xac, 0x7d, 0xbe, 0x5b, 0x6f, 0xfb, 0x36, 0x75, 0x3c, 0x37, 0x24, 0x6d, 0xdc, 0xed, + 0x5f, 0xa7, 0x4e, 0x93, 0x04, 0xd4, 0x6e, 0xb6, 0x04, 0x60, 0x73, 0xd8, 0x9b, 0x6b, 0x5e, 0xb3, + 0xd9, 0x71, 0x31, 0x34, 0x36, 0x6a, 0x07, 0x6f, 0x1b, 0x4e, 0x40, 0x43, 0x4c, 0xee, 0x8f, 0xb3, + 0xb0, 0x76, 0x22, 0xc2, 0xd5, 0x3e, 0x90, 0x5a, 0x9b, 0x85, 0xa0, 0xbb, 0xe7, 0x1e, 0xaa, 0x02, + 0x8a, 0xf6, 0x61, 0x91, 0x68, 0x25, 0x2b, 0x6d, 0x4a, 0x5b, 0x99, 0x47, 0x0f, 0x76, 0x86, 0x6c, + 0x69, 0x67, 0xc0, 0x0f, 0x5e, 0x7e, 0xdf, 0x6f, 0x42, 0x5f, 0xc3, 0x14, 0xbd, 0x6a, 0x91, 0x6c, + 0x8a, 0x3b, 0xba, 0x37, 0xd6, 0x91, 0x79, 0xd5, 0x22, 0x98, 0xc3, 0xd1, 0x13, 0x80, 0x80, 0xda, + 0x3e, 0xb5, 0x58, 0x1a, 0xb2, 0x69, 0x4e, 0xde, 0xd8, 0x09, 0x73, 0xb4, 0x13, 0xe5, 0x68, 0xc7, + 0x8c, 0x72, 0x84, 0xe7, 0x38, 0x9a, 0x3d, 0x33, 0x6a, 0xad, 0xe1, 0x05, 0x24, 0xa4, 0x4e, 0x25, + 0x53, 0x39, 0x9a, 0x53, 0x4d, 0x98, 0x0f, 0xa9, 0x01, 0xb5, 0x69, 0x3b, 0xc8, 0x4e, 0x6f, 0x4a, + 0x5b, 0x8b, 0x8f, 0xf6, 0x26, 0xdb, 0xbd, 0xca, 0x98, 0x15, 0x4e, 0xc4, 0x99, 0x5a, 0xf7, 0x01, + 0xdd, 0x87, 0xc5, 0x4b, 0x27, 0xa0, 0x9e, 0x7f, 0x65, 0x35, 0x88, 0x7b, 0x41, 0x2f, 0xb3, 0x33, + 0x9b, 0xd2, 0x56, 0x1a, 0x2f, 0x08, 0x6b, 0x91, 0x1b, 0xd1, 0x4f, 0x60, 0xad, 0x65, 0xfb, 0xc4, + 0xa5, 0xdd, 0xf4, 0x5b, 0x8e, 0x7b, 0xee, 0x65, 0x6f, 0xf0, 0x2d, 0x6c, 0x0d, 0x8d, 0xa2, 0xcc, + 0x19, 0x3d, 0x27, 0x89, 0x57, 0x5a, 0x83, 0x46, 0xa4, 0xc0, 0x62, 0xd7, 0x2d, 0xcf, 0xcc, 0x6c, + 0x62, 0x66, 0x16, 0x3a, 0x0c, 0x9e, 0x9d, 0x6d, 0x98, 0x6a, 0x92, 0xa6, 0x97, 0x9d, 0xe3, 0xc4, + 0x5b, 0x43, 0xe3, 0x39, 0x26, 0x4d, 0x0f, 0x73, 0x18, 0xc2, 0xb0, 0x1c, 0x10, 0xdb, 0xaf, 0x5d, + 0x5a, 0x36, 0xa5, 0xbe, 0x73, 0xd6, 0xa6, 0x24, 0xc8, 0x02, 0xe7, 0xde, 0x1f, 0xca, 0xad, 0x70, + 0xb4, 0xd2, 0x01, 0x63, 0x39, 0xe8, 0xb3, 0xa0, 0x22, 0x2c, 0xdb, 0x6d, 0xea, 0x59, 0x3e, 0x09, + 0x08, 0xb5, 0x5a, 0x9e, 0xe3, 0xd2, 0x20, 0x9b, 0xe1, 0x3e, 0x37, 0x87, 0xfa, 0xc4, 0x0c, 0x58, + 0xe6, 0x38, 0xbc, 0xc4, 0xa8, 0x31, 0x03, 0xba, 0x0d, 0x73, 0xac, 0x3d, 0x2c, 0xd6, 0x1f, 0xd9, + 0xf9, 0x4d, 0x69, 0x6b, 0x0e, 0xcf, 0x32, 0x43, 0xd1, 0x09, 0x28, 0x5a, 0x87, 0x1b, 0x4e, 0x60, + 0xd5, 0x7c, 0xcf, 0xcd, 0x2e, 0x6c, 0x4a, 0x5b, 0xb3, 0x78, 0xc6, 0x09, 0x54, 0xdf, 0x73, 0xd1, + 0x3e, 0x64, 0xda, 0xad, 0xba, 0x4d, 0x45, 0x81, 0x2d, 0x26, 0xa6, 0x11, 0x42, 0x38, 0xcf, 0xe1, + 0xcf, 0x41, 0x6e, 0xd9, 0x3e, 0x75, 0xf8, 0x31, 0xd4, 0x3c, 0xf7, 0xdc, 0xb9, 0xc8, 0x2e, 0x6d, + 0xa6, 0xb7, 0x32, 0x8f, 0x9e, 0x4f, 0x56, 0x65, 0xec, 0x30, 0xd9, 0xa9, 0x87, 0x2e, 0x54, 0xee, + 0x41, 0x73, 0xa9, 0x7f, 0x85, 0x97, 0x5a, 0xbd, 0xd6, 0x8d, 0x03, 0x58, 0x1d, 0x06, 0x44, 0x32, + 0xa4, 0xdf, 0x92, 0x2b, 0xde, 0xda, 0x73, 0x98, 0xfd, 0x89, 0x56, 0x61, 0xfa, 0x9d, 0xdd, 0x68, + 0x87, 0x5d, 0x3a, 0x87, 0xc3, 0x87, 0xa7, 0xa9, 0x6f, 0xa5, 0xdc, 0x6f, 0x53, 0x70, 0x67, 0xb0, + 0xd2, 0xb9, 0x33, 0xa1, 0x5f, 0xe8, 0x69, 0x3c, 0x8b, 0xa1, 0x5e, 0x7c, 0x3c, 0x74, 0x2f, 0xa6, + 0x48, 0x6d, 0x2c, 0xc9, 0x36, 0x6c, 0x76, 0xab, 0x52, 0x34, 0xbc, 0x67, 0x75, 0xdb, 0xd7, 0x6b, + 0x53, 0xa1, 0x1c, 0xb7, 0x06, 0x12, 0x5c, 0x10, 0x01, 0xe0, 0x8f, 0x3a, 0x2e, 0x2a, 0x5c, 0x04, + 0x3c, 0x35, 0x6a, 0x68, 0xaf, 0x4d, 0xd1, 0x09, 0xdc, 0xe6, 0xe1, 0x8d, 0xf0, 0x9e, 0x4e, 0xf2, + 0xbe, 0xce, 0xd8, 0x43, 0x1c, 0xe7, 0xfe, 0x21, 0xc1, 0xca, 0x90, 0xf6, 0x63, 0x55, 0x55, 0xf7, + 0x9a, 0xb6, 0xe3, 0x5a, 0x4e, 0x5d, 0x24, 0x79, 0x36, 0x34, 0xe8, 0x75, 0x74, 0x17, 0x32, 0x62, + 0xd1, 0xb5, 0x9b, 0x51, 0xbe, 0x21, 0x34, 0x19, 0x76, 0x93, 0x8c, 0x90, 0xe1, 0xf4, 0x7f, 0x2b, + 0xc3, 0xf7, 0x60, 0xde, 0x71, 0x1d, 0xea, 0xd8, 0x94, 0xd4, 0x59, 0x5c, 0x53, 0x5c, 0x81, 0x32, + 0x1d, 0x9b, 0x5e, 0xcf, 0xfd, 0x4a, 0x82, 0x35, 0xed, 0x03, 0x25, 0xbe, 0x6b, 0x37, 0xbe, 0x97, + 0xd1, 0xd0, 0x1f, 0x53, 0x6a, 0x30, 0xa6, 0xdf, 0xcc, 0xc0, 0x4a, 0x99, 0xb8, 0x75, 0xc7, 0xbd, + 0x50, 0x6a, 0xd4, 0x79, 0xe7, 0xd0, 0x2b, 0x1e, 0xd1, 0x5d, 0xc8, 0xd8, 0xe2, 0xb9, 0x9b, 0x65, + 0x88, 0x4c, 0x7a, 0x1d, 0x1d, 0xc2, 0x42, 0x07, 0x90, 0x38, 0x7f, 0x22, 0xd7, 0x7c, 0xfe, 0xcc, + 0xdb, 0xb1, 0x27, 0xf4, 0x1c, 0xa6, 0xd9, 0x2c, 0x08, 0x47, 0xd0, 0xe2, 0xa3, 0x87, 0xc3, 0x45, + 0xb8, 0x37, 0x42, 0x26, 0xfb, 0x04, 0x87, 0x3c, 0xa4, 0xc3, 0xf2, 0x25, 0xb1, 0x7d, 0x7a, 0x46, + 0x6c, 0x6a, 0xd5, 0x09, 0xb5, 0x9d, 0x46, 0x20, 0x86, 0xd2, 0x47, 0x23, 0x14, 0xfd, 0xaa, 0xe1, + 0xd9, 0x75, 0x2c, 0x77, 0x68, 0x85, 0x90, 0x85, 0x5e, 0xc2, 0x4a, 0xc3, 0x0e, 0xa8, 0xd5, 0xf5, + 0xc7, 0x05, 0x68, 0x3a, 0x51, 0x80, 0x96, 0x19, 0xed, 0x28, 0x62, 0x71, 0x1d, 0x3a, 0x04, 0x6e, + 0x0c, 0xbb, 0x82, 0xd4, 0x43, 0x4f, 0x33, 0x89, 0x9e, 0x96, 0x18, 0xa9, 0x12, 0x72, 0xb8, 0x9f, + 0x2c, 0xdc, 0xb0, 0x29, 0x25, 0xcd, 0x16, 0xe5, 0x63, 0x6a, 0x1a, 0x47, 0x8f, 0xe8, 0x21, 0xc8, + 0x4d, 0xfb, 0x83, 0xd3, 0x6c, 0x37, 0x2d, 0x61, 0x0a, 0xf8, 0xc8, 0x99, 0xc6, 0x4b, 0xc2, 0xae, + 0x08, 0x33, 0x9b, 0x4d, 0x41, 0xed, 0x92, 0xd4, 0xdb, 0x8d, 0x28, 0x92, 0xb9, 0xe4, 0xd9, 0xd4, + 0x61, 0xf0, 0x38, 0x54, 0x58, 0x22, 0x1f, 0x5a, 0x4e, 0xd8, 0xb3, 0xa1, 0x0f, 0x48, 0xf4, 0xb1, + 0xd8, 0xa5, 0x70, 0x27, 0xcf, 0x61, 0x9e, 0x27, 0xe5, 0xdc, 0x76, 0x1a, 0x6d, 0x9f, 0x88, 0xc1, + 0x32, 0xfc, 0x98, 0x0e, 0x43, 0x0c, 0xce, 0x30, 0x86, 0x78, 0x40, 0x5f, 0xc0, 0x2a, 0x77, 0xc0, + 0x6a, 0x9d, 0xf8, 0x96, 0x53, 0x27, 0x2e, 0x75, 0xe8, 0x95, 0x98, 0x2d, 0x88, 0xad, 0x9d, 0xf0, + 0x25, 0x5d, 0xac, 0xa0, 0x6f, 0x60, 0x3d, 0x3a, 0x82, 0x7e, 0xd2, 0x02, 0x27, 0xad, 0x89, 0xe5, + 0x5e, 0x5e, 0xee, 0x2f, 0x29, 0xb8, 0x25, 0xca, 0x4e, 0xbd, 0x74, 0x1a, 0xf5, 0xef, 0xa5, 0x61, + 0x3f, 0x8f, 0xb9, 0x65, 0x4d, 0x15, 0xd7, 0x30, 0xf9, 0x7d, 0xec, 0x12, 0xc7, 0x95, 0xac, 0xbf, + 0xbd, 0xd3, 0x03, 0xed, 0x8d, 0x5e, 0x83, 0xb8, 0xab, 0x08, 0x51, 0x6e, 0x79, 0x0d, 0xa7, 0x76, + 0xc5, 0xdb, 0x63, 0x71, 0x44, 0xa0, 0xa1, 0xe2, 0x72, 0x21, 0x2e, 0x73, 0x34, 0x5e, 0x6e, 0xf5, + 0x9b, 0xd0, 0x4d, 0x98, 0x09, 0x25, 0x95, 0x37, 0xc7, 0x1c, 0x16, 0x4f, 0xb9, 0xbf, 0xa7, 0x3a, + 0x72, 0x52, 0x20, 0x35, 0x27, 0x88, 0xf2, 0xd5, 0xe9, 0x72, 0x29, 0xb9, 0xcb, 0x23, 0x62, 0x4f, + 0x97, 0x0f, 0x56, 0x70, 0xea, 0xba, 0x15, 0xfc, 0x0c, 0xe6, 0x7b, 0x9a, 0x31, 0xf9, 0xce, 0x9b, + 0x09, 0x86, 0x37, 0xe2, 0x54, 0x6f, 0x23, 0x62, 0x58, 0xf7, 0x7c, 0xe7, 0xc2, 0x71, 0xed, 0x86, + 0xd5, 0x17, 0x64, 0xb2, 0x74, 0xac, 0x45, 0xd4, 0x4a, 0x3c, 0xd8, 0xdc, 0x5f, 0x53, 0x70, 0x2b, + 0x92, 0xbb, 0xa2, 0x57, 0xb3, 0x1b, 0x05, 0x27, 0x68, 0xd9, 0xb4, 0x76, 0x39, 0x99, 0x3a, 0xff, + 0xef, 0xd3, 0xf5, 0x33, 0xb8, 0xd3, 0x1b, 0x81, 0xe5, 0x9d, 0x5b, 0xf4, 0xd2, 0x09, 0xac, 0x78, + 0x16, 0xc7, 0x3b, 0xdc, 0xe8, 0x89, 0xa8, 0x74, 0x6e, 0x5e, 0x3a, 0x81, 0xd0, 0x34, 0xf4, 0x31, + 0x00, 0xbf, 0x75, 0x50, 0xef, 0x2d, 0x09, 0xab, 0x70, 0x1e, 0xf3, 0x6b, 0x92, 0xc9, 0x0c, 0xb9, + 0x97, 0x90, 0x89, 0x5f, 0x44, 0xf7, 0x61, 0x46, 0xdc, 0x65, 0x25, 0x7e, 0x17, 0xfc, 0x24, 0xe1, + 0x2e, 0xcb, 0xaf, 0xf9, 0x82, 0x92, 0xfb, 0x53, 0x0a, 0x16, 0x7b, 0x97, 0xd0, 0x67, 0xb0, 0x74, + 0xe6, 0xb8, 0xb6, 0x7f, 0x65, 0xd5, 0x2e, 0x49, 0xed, 0x6d, 0xd0, 0x6e, 0x8a, 0x43, 0x58, 0x0c, + 0xcd, 0xaa, 0xb0, 0xa2, 0x35, 0x98, 0xf1, 0xdb, 0x6e, 0x34, 0x7c, 0xe7, 0xf0, 0xb4, 0xdf, 0x66, + 0xb7, 0x94, 0x67, 0x70, 0xfb, 0xdc, 0xf1, 0x03, 0x36, 0xb0, 0xc2, 0x62, 0xb7, 0x6a, 0x5e, 0xb3, + 0xd5, 0x20, 0x3d, 0x9d, 0x9c, 0xe5, 0x90, 0xa8, 0x1d, 0xd4, 0x08, 0xc0, 0xe9, 0xf3, 0x35, 0x9f, + 0xd8, 0x9d, 0xb3, 0x49, 0x4e, 0x65, 0x46, 0xe0, 0x85, 0x0c, 0x2f, 0x70, 0x61, 0x76, 0xdc, 0x8b, + 0x49, 0xcb, 0x74, 0x3e, 0x22, 0x70, 0x07, 0x77, 0x00, 0xf8, 0x0f, 0x04, 0x6a, 0x9f, 0x35, 0xc2, + 0xa9, 0x36, 0x8b, 0x63, 0x96, 0xfc, 0x9f, 0x25, 0x58, 0x1d, 0x36, 0xb3, 0x51, 0x0e, 0xee, 0x94, + 0x35, 0xa3, 0xa0, 0x1b, 0x2f, 0x2c, 0x45, 0x35, 0xf5, 0xd7, 0xba, 0x79, 0x6a, 0x55, 0x4c, 0xc5, + 0xd4, 0x2c, 0xdd, 0x78, 0xad, 0x14, 0xf5, 0x82, 0xfc, 0x7f, 0xe8, 0x53, 0xd8, 0x1c, 0x81, 0xa9, + 0xa8, 0x47, 0x5a, 0xa1, 0x5a, 0xd4, 0x0a, 0xb2, 0x34, 0xc6, 0x53, 0xc5, 0x54, 0xb0, 0xa9, 0x15, + 0xe4, 0x14, 0xfa, 0x7f, 0xf8, 0x6c, 0x04, 0x46, 0x55, 0x0c, 0x55, 0x2b, 0x5a, 0x58, 0xfb, 0x71, + 0x55, 0xab, 0x30, 0x70, 0x3a, 0xff, 0x8b, 0x6e, 0xcc, 0x3d, 0x0a, 0x14, 0x7f, 0x53, 0x41, 0x53, + 0xf5, 0x8a, 0x5e, 0x32, 0xc6, 0xc5, 0xdc, 0x87, 0x19, 0x11, 0x73, 0x3f, 0x2a, 0x8a, 0x39, 0xff, + 0xcb, 0x54, 0xf7, 0xfb, 0x81, 0x5e, 0xc7, 0xa4, 0xdd, 0xd1, 0xdc, 0x4f, 0x61, 0xf3, 0xa4, 0x84, + 0x5f, 0x1d, 0x16, 0x4b, 0x27, 0x96, 0x5e, 0xb0, 0xb0, 0x56, 0xad, 0x68, 0x56, 0xb9, 0x54, 0xd4, + 0xd5, 0xd3, 0x58, 0x24, 0xdf, 0xc2, 0x57, 0x23, 0x51, 0x4a, 0x91, 0x59, 0x0b, 0xd5, 0x72, 0x51, + 0x57, 0xd9, 0x5b, 0x0f, 0x15, 0xbd, 0xa8, 0x15, 0xac, 0x92, 0x51, 0x3c, 0x95, 0x25, 0xf4, 0x39, + 0x6c, 0x4d, 0xca, 0x94, 0x53, 0x68, 0x1b, 0x1e, 0x8e, 0x44, 0x63, 0xed, 0xa5, 0xa6, 0x9a, 0x31, + 0x78, 0x1a, 0xed, 0xc1, 0xf6, 0x48, 0xb8, 0xa9, 0xe1, 0x63, 0xdd, 0xe0, 0x09, 0x3d, 0xb4, 0x70, + 0xd5, 0x30, 0x74, 0xe3, 0x85, 0x3c, 0x95, 0xff, 0xbd, 0x04, 0xcb, 0x03, 0xc3, 0x08, 0xdd, 0x85, + 0xdb, 0x65, 0x05, 0x6b, 0x86, 0x69, 0xa9, 0xc5, 0xd2, 0xb0, 0x04, 0x8c, 0x00, 0x28, 0x07, 0x8a, + 0x51, 0x28, 0x19, 0xb2, 0x84, 0x1e, 0x40, 0x6e, 0x18, 0x40, 0xd4, 0x82, 0x28, 0x0d, 0x39, 0x85, + 0xee, 0xc1, 0xc7, 0xc3, 0x70, 0x9d, 0x68, 0xe5, 0x74, 0xfe, 0x5f, 0x29, 0xf8, 0x68, 0xdc, 0x67, + 0x0a, 0x56, 0x81, 0x9d, 0x6d, 0x6b, 0x6f, 0x34, 0xb5, 0x6a, 0xb2, 0x33, 0x0f, 0xfd, 0xb1, 0x93, + 0xaf, 0x56, 0x62, 0x91, 0xc7, 0x53, 0x3a, 0x02, 0xac, 0x96, 0x8e, 0xcb, 0x45, 0xcd, 0xe4, 0xd5, + 0x94, 0x87, 0x07, 0x49, 0xf0, 0xf0, 0x80, 0xe5, 0x54, 0xcf, 0xd9, 0x8e, 0x72, 0xcd, 0xf7, 0xcd, + 0x5a, 0x01, 0xed, 0x40, 0x3e, 0x09, 0xdd, 0xc9, 0x42, 0x41, 0x9e, 0x42, 0x5f, 0xc1, 0x17, 0xc9, + 0x81, 0x1b, 0xa6, 0x6e, 0x54, 0xb5, 0x82, 0xa5, 0x54, 0x2c, 0x43, 0x3b, 0x91, 0xa7, 0x27, 0xd9, + 0xae, 0xa9, 0x1f, 0xb3, 0xfa, 0xac, 0x9a, 0xf2, 0x4c, 0xfe, 0x6f, 0x12, 0xdc, 0x54, 0x3d, 0x97, + 0x3a, 0x6e, 0x9b, 0x28, 0x81, 0x41, 0xde, 0xeb, 0xe1, 0x3d, 0xc7, 0xf3, 0xd1, 0x7d, 0xb8, 0x17, + 0xf9, 0x17, 0xee, 0x2d, 0xdd, 0xd0, 0x4d, 0x5d, 0x31, 0x4b, 0x38, 0x96, 0xdf, 0xb1, 0x30, 0xd6, + 0x90, 0x05, 0x0d, 0x87, 0x79, 0x1d, 0x0d, 0xc3, 0x9a, 0x89, 0x4f, 0x45, 0x29, 0x84, 0x0a, 0x33, + 0x1a, 0xab, 0x62, 0xd6, 0xdf, 0xa2, 0xff, 0xe5, 0x74, 0xfe, 0x0f, 0x12, 0x64, 0xc4, 0x6f, 0x5b, + 0xfe, 0xd3, 0x27, 0x0b, 0xab, 0x6c, 0x83, 0xa5, 0xaa, 0x69, 0x99, 0xa7, 0x65, 0xad, 0xb7, 0x86, + 0x7b, 0x56, 0xb8, 0x3c, 0x58, 0x66, 0x29, 0xcc, 0x4e, 0xa8, 0x24, 0xbd, 0x00, 0xf1, 0x16, 0x86, + 0xe1, 0x60, 0x39, 0x35, 0x16, 0x13, 0xfa, 0x49, 0xa3, 0x0d, 0xb8, 0xd9, 0x83, 0x39, 0xd2, 0x14, + 0x6c, 0x1e, 0x68, 0x8a, 0x29, 0x4f, 0xe5, 0x7f, 0x27, 0xc1, 0xad, 0x48, 0x09, 0x4d, 0x36, 0x58, + 0x9d, 0x26, 0xa9, 0x97, 0xda, 0x54, 0xb5, 0xdb, 0x01, 0x41, 0x0f, 0xe1, 0x7e, 0x47, 0xc3, 0x4c, + 0xa5, 0xf2, 0xaa, 0x7b, 0x56, 0x96, 0xaa, 0xb0, 0xe6, 0xee, 0xee, 0x26, 0x11, 0x2a, 0x42, 0x90, + 0x25, 0xf4, 0x19, 0x7c, 0x32, 0x1e, 0x8a, 0xb5, 0x8a, 0x66, 0xca, 0xa9, 0xfc, 0x3f, 0x33, 0xb0, + 0x1e, 0x0f, 0x8e, 0xfd, 0x40, 0x20, 0xf5, 0x30, 0xb4, 0x07, 0x90, 0xeb, 0x75, 0x22, 0x74, 0xae, + 0x3f, 0xae, 0x3d, 0xd8, 0x1e, 0x83, 0xab, 0x1a, 0x47, 0x8a, 0x51, 0x60, 0xcf, 0x11, 0x48, 0x96, + 0xd0, 0x73, 0xd8, 0x1f, 0x43, 0x39, 0x50, 0x0a, 0xdd, 0x2c, 0x77, 0x26, 0x8e, 0x62, 0x9a, 0x58, + 0x3f, 0xa8, 0x9a, 0x5a, 0x45, 0x4e, 0x21, 0x0d, 0x94, 0x04, 0x07, 0xbd, 0x3a, 0x34, 0xd4, 0x4d, + 0x1a, 0x3d, 0x81, 0xaf, 0x93, 0xe2, 0x08, 0x4b, 0x46, 0x3f, 0xd6, 0x70, 0x9c, 0x3a, 0x85, 0x9e, + 0xc2, 0x37, 0x09, 0x54, 0xf1, 0xe6, 0x01, 0xee, 0x34, 0xda, 0x87, 0xc7, 0x89, 0xd1, 0xab, 0x25, + 0x5c, 0xb0, 0x8e, 0x15, 0xfc, 0xaa, 0x97, 0x3c, 0x83, 0x74, 0xd0, 0x92, 0x5e, 0x2c, 0xd4, 0xcd, + 0x1a, 0xa2, 0x0b, 0x31, 0x57, 0x37, 0x26, 0xc8, 0x22, 0x33, 0x24, 0xb8, 0x99, 0x45, 0x2f, 0x40, + 0x9d, 0x2c, 0x15, 0xe3, 0x1d, 0xcd, 0xa1, 0x37, 0x60, 0x5e, 0xef, 0x54, 0xb5, 0x37, 0xa6, 0x86, + 0x0d, 0x25, 0xc9, 0x33, 0xa0, 0x67, 0xf0, 0x24, 0x31, 0x69, 0xbd, 0xfa, 0x13, 0xa3, 0x67, 0xd0, + 0x63, 0xf8, 0x72, 0x0c, 0x3d, 0x5e, 0x23, 0xdd, 0x5b, 0x81, 0x5e, 0x90, 0xe7, 0xd1, 0xd7, 0xb0, + 0x37, 0x86, 0xc8, 0xbb, 0xd0, 0xaa, 0x98, 0xba, 0xfa, 0xea, 0x34, 0x5c, 0x2e, 0xea, 0x15, 0x53, + 0x5e, 0x40, 0x3f, 0x82, 0x1f, 0x8c, 0xa1, 0x75, 0x36, 0xcb, 0xfe, 0xd0, 0x70, 0xac, 0xc5, 0x18, + 0xac, 0x8a, 0x35, 0x79, 0x71, 0x82, 0x33, 0xa9, 0xe8, 0x2f, 0x92, 0x33, 0xb7, 0x84, 0x54, 0x78, + 0x3e, 0x51, 0x8b, 0xa8, 0x47, 0x7a, 0xb1, 0x30, 0xdc, 0x89, 0x8c, 0xbe, 0x84, 0xdd, 0x31, 0x4e, + 0x0e, 0x4b, 0x58, 0xd5, 0xc4, 0xc4, 0xea, 0x88, 0xc4, 0x32, 0xfa, 0x06, 0x1e, 0x8d, 0x23, 0x29, + 0x7a, 0xb1, 0xf4, 0x5a, 0xc3, 0xfd, 0x3c, 0xc4, 0xc6, 0xe8, 0x64, 0x5b, 0xd7, 0x8d, 0x72, 0xd5, + 0xb4, 0x2a, 0xfa, 0x77, 0x9a, 0xbc, 0xc2, 0xc6, 0x68, 0xe2, 0x49, 0x45, 0xb9, 0x92, 0x57, 0x07, + 0xc5, 0x78, 0xe0, 0x25, 0x07, 0xba, 0xa1, 0xe0, 0x53, 0x79, 0x2d, 0xa1, 0xf6, 0x06, 0x85, 0xae, + 0xa7, 0x84, 0x6e, 0x4e, 0xb2, 0x1d, 0x4d, 0xc1, 0xea, 0x51, 0x3c, 0xe3, 0xeb, 0x6c, 0xea, 0xdc, + 0xe3, 0x1f, 0x5c, 0x06, 0xee, 0x55, 0x71, 0x89, 0xdf, 0x83, 0xed, 0xf0, 0xdc, 0x86, 0x54, 0xc1, + 0x08, 0xb5, 0x3f, 0x80, 0x1f, 0x4e, 0x46, 0xe9, 0xac, 0x2b, 0x45, 0xac, 0x29, 0x85, 0xd3, 0xce, + 0x95, 0x54, 0xca, 0xff, 0x3a, 0x05, 0x79, 0xd5, 0x76, 0x6b, 0xa4, 0x11, 0x7d, 0xc7, 0x1d, 0x1b, + 0xe5, 0x3e, 0x3c, 0x9e, 0xa0, 0xdf, 0x47, 0xc4, 0x7b, 0x02, 0x95, 0xeb, 0x92, 0xab, 0xc6, 0x2b, + 0xa3, 0x74, 0x62, 0x8c, 0x23, 0xc8, 0x12, 0x32, 0xe0, 0xe5, 0x75, 0x1d, 0x0f, 0xa4, 0xa4, 0x7b, + 0x0f, 0x4d, 0xf1, 0xa4, 0x54, 0x9c, 0x0b, 0xfe, 0x51, 0x7b, 0xb2, 0xa4, 0x88, 0x32, 0xfe, 0xcf, + 0x92, 0x72, 0x5d, 0xf2, 0xc4, 0x49, 0xb9, 0xae, 0xe3, 0x71, 0x49, 0x39, 0xf8, 0x29, 0xac, 0xd7, + 0xbc, 0xe6, 0xb0, 0xaf, 0x0c, 0x07, 0x0b, 0x51, 0x7a, 0xca, 0xec, 0x67, 0x76, 0x59, 0xfa, 0x6e, + 0xef, 0xc2, 0xa1, 0x97, 0xed, 0xb3, 0x9d, 0x9a, 0xd7, 0xdc, 0x8d, 0xff, 0x87, 0x79, 0xdb, 0xa9, + 0x37, 0x76, 0x2f, 0xbc, 0xf0, 0x3f, 0xd6, 0xe2, 0xdf, 0xcd, 0xfb, 0x76, 0xcb, 0x79, 0xb7, 0x77, + 0x36, 0xc3, 0x6d, 0x5f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x4c, 0xea, 0x44, 0x2e, 0x1f, + 0x00, 0x00, }, // uber/cadence/admin/v1/history.proto []byte{ diff --git a/cmd/server/go.mod b/cmd/server/go.mod index 55057f64e50..aaccb5cdde3 100644 --- a/cmd/server/go.mod +++ b/cmd/server/go.mod @@ -40,7 +40,7 @@ require ( github.com/startreedata/pinot-client-go v0.2.0 // latest release supports pinot v0.12.0 which is also internal version github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible // indirect - github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36 + github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51 github.com/uber/ringpop-go v0.8.5 // indirect github.com/uber/tchannel-go v1.22.2 // indirect github.com/urfave/cli v1.22.4 diff --git a/cmd/server/go.sum b/cmd/server/go.sum index 2148e965194..c19612b7ea6 100644 --- a/cmd/server/go.sum +++ b/cmd/server/go.sum @@ -398,8 +398,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36 h1:75Uvw7a4Pqo5LrpAFfJehKSJT50JcF7dQolJj5/bUc4= -github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51 h1:gAdDymipzIzh7PTPAW7DjFT2BOEwY7hwC0COsZIulsI= +github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= diff --git a/common/pinot/pinotQueryValidator.go b/common/pinot/pinotQueryValidator.go index d869ff1c06c..e01fd32eef7 100644 --- a/common/pinot/pinotQueryValidator.go +++ b/common/pinot/pinotQueryValidator.go @@ -386,6 +386,12 @@ func processCustomString(comparisonExpr *sqlparser.ComparisonExpr, colNameStr st Type: sqlparser.StrVal, Val: []byte("%" + colValStr + "%"), } + + if colValStr == "" { + return fmt.Sprintf("(JSON_MATCH(Attr, '\"$.%s\" is not null') "+ + "AND REGEXP_LIKE(JSON_EXTRACT_SCALAR(Attr, '$.%s', 'string'), '^$'))", colNameStr, colNameStr) + } + return fmt.Sprintf("(JSON_MATCH(Attr, '\"$.%s\" is not null') "+ "AND REGEXP_LIKE(JSON_EXTRACT_SCALAR(Attr, '$.%s', 'string'), '%s*'))", colNameStr, colNameStr, colValStr) } diff --git a/common/pinot/pinotQueryValidator_test.go b/common/pinot/pinotQueryValidator_test.go index b7c7b1025b5..0705aa2b5a3 100644 --- a/common/pinot/pinotQueryValidator_test.go +++ b/common/pinot/pinotQueryValidator_test.go @@ -46,10 +46,14 @@ func TestValidateQuery(t *testing.T) { query: "WorkflowID = 'wid'", validated: "WorkflowID = 'wid'", }, - "Case3: query with custom field": { + "Case3-1: query with custom field": { query: "CustomStringField = 'custom'", validated: "(JSON_MATCH(Attr, '\"$.CustomStringField\" is not null') AND REGEXP_LIKE(JSON_EXTRACT_SCALAR(Attr, '$.CustomStringField', 'string'), 'custom*'))", }, + "Case3-2: query with custom field value is empty": { + query: "CustomStringField = ''", + validated: "(JSON_MATCH(Attr, '\"$.CustomStringField\" is not null') AND REGEXP_LIKE(JSON_EXTRACT_SCALAR(Attr, '$.CustomStringField', 'string'), '^$'))", + }, "Case4: custom field query with or in string": { query: "CustomStringField='Or'", validated: "(JSON_MATCH(Attr, '\"$.CustomStringField\" is not null') AND REGEXP_LIKE(JSON_EXTRACT_SCALAR(Attr, '$.CustomStringField', 'string'), 'Or*'))", diff --git a/common/types/history.go b/common/types/history.go index 57fcf6a4653..bc376fa4e68 100644 --- a/common/types/history.go +++ b/common/types/history.go @@ -521,6 +521,7 @@ type RecordChildExecutionCompletedRequest struct { InitiatedID int64 `json:"initiatedId,omitempty"` CompletedExecution *WorkflowExecution `json:"completedExecution,omitempty"` CompletionEvent *HistoryEvent `json:"completionEvent,omitempty"` + StartedID int64 `json:"startedId,omitempty"` } // GetDomainUUID is an internal getter (TBD...) diff --git a/common/types/mapper/proto/api.go b/common/types/mapper/proto/api.go index ff04e754b24..db3b582db6e 100644 --- a/common/types/mapper/proto/api.go +++ b/common/types/mapper/proto/api.go @@ -332,6 +332,8 @@ func FromCancelExternalWorkflowExecutionFailedCause(t *types.CancelExternalWorkf switch *t { case types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: return apiv1.CancelExternalWorkflowExecutionFailedCause_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION + case types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + return apiv1.CancelExternalWorkflowExecutionFailedCause_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_COMPLETED } panic("unexpected enum value") } @@ -342,6 +344,8 @@ func ToCancelExternalWorkflowExecutionFailedCause(t apiv1.CancelExternalWorkflow return nil case apiv1.CancelExternalWorkflowExecutionFailedCause_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION: return types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr() + case apiv1.CancelExternalWorkflowExecutionFailedCause_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_COMPLETED: + return types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr() } panic("unexpected enum value") } @@ -3283,6 +3287,8 @@ func FromSignalExternalWorkflowExecutionFailedCause(t *types.SignalExternalWorkf switch *t { case types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: return apiv1.SignalExternalWorkflowExecutionFailedCause_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION + case types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + return apiv1.SignalExternalWorkflowExecutionFailedCause_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_COMPLETED } panic("unexpected enum value") } @@ -3293,6 +3299,8 @@ func ToSignalExternalWorkflowExecutionFailedCause(t apiv1.SignalExternalWorkflow return nil case apiv1.SignalExternalWorkflowExecutionFailedCause_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION: return types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr() + case apiv1.SignalExternalWorkflowExecutionFailedCause_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_COMPLETED: + return types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr() } panic("unexpected enum value") } diff --git a/common/types/mapper/proto/enum_test.go b/common/types/mapper/proto/enum_test.go index 308d409e979..397b440ddf9 100644 --- a/common/types/mapper/proto/enum_test.go +++ b/common/types/mapper/proto/enum_test.go @@ -99,6 +99,7 @@ func TestCancelExternalWorkflowExecutionFailedCause(t *testing.T) { for _, item := range []*types.CancelExternalWorkflowExecutionFailedCause{ nil, types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr(), + types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr(), } { assert.Equal(t, item, ToCancelExternalWorkflowExecutionFailedCause(FromCancelExternalWorkflowExecutionFailedCause(item))) } @@ -297,6 +298,7 @@ func TestSignalExternalWorkflowExecutionFailedCause(t *testing.T) { for _, item := range []*types.SignalExternalWorkflowExecutionFailedCause{ nil, types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr(), + types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr(), } { assert.Equal(t, item, ToSignalExternalWorkflowExecutionFailedCause(FromSignalExternalWorkflowExecutionFailedCause(item))) } diff --git a/common/types/mapper/proto/history.go b/common/types/mapper/proto/history.go index 1857212a85f..0d0f34818e8 100644 --- a/common/types/mapper/proto/history.go +++ b/common/types/mapper/proto/history.go @@ -833,6 +833,7 @@ func FromHistoryRecordChildExecutionCompletedRequest(t *types.RecordChildExecuti InitiatedId: t.InitiatedID, CompletedExecution: FromWorkflowExecution(t.CompletedExecution), CompletionEvent: FromHistoryEvent(t.CompletionEvent), + StartedId: t.StartedID, } } @@ -846,6 +847,7 @@ func ToHistoryRecordChildExecutionCompletedRequest(t *historyv1.RecordChildExecu InitiatedID: t.InitiatedId, CompletedExecution: ToWorkflowExecution(t.CompletedExecution), CompletionEvent: ToHistoryEvent(t.CompletionEvent), + StartedID: t.StartedId, } } diff --git a/common/types/mapper/thrift/history.go b/common/types/mapper/thrift/history.go index 9600ce2a4ed..ffc3f731ae6 100644 --- a/common/types/mapper/thrift/history.go +++ b/common/types/mapper/thrift/history.go @@ -629,6 +629,7 @@ func FromRecordChildExecutionCompletedRequest(t *types.RecordChildExecutionCompl InitiatedId: &t.InitiatedID, CompletedExecution: FromWorkflowExecution(t.CompletedExecution), CompletionEvent: FromHistoryEvent(t.CompletionEvent), + StartedId: &t.StartedID, } } @@ -643,6 +644,7 @@ func ToRecordChildExecutionCompletedRequest(t *history.RecordChildExecutionCompl InitiatedID: t.GetInitiatedId(), CompletedExecution: ToWorkflowExecution(t.CompletedExecution), CompletionEvent: ToHistoryEvent(t.CompletionEvent), + StartedID: t.GetStartedId(), } } diff --git a/common/types/mapper/thrift/shared.go b/common/types/mapper/thrift/shared.go index 7db48b6470e..fefe7cd9441 100644 --- a/common/types/mapper/thrift/shared.go +++ b/common/types/mapper/thrift/shared.go @@ -415,6 +415,9 @@ func FromCancelExternalWorkflowExecutionFailedCause(t *types.CancelExternalWorkf case types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: v := shared.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return &v + case types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + v := shared.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return &v } panic("unexpected enum value") } @@ -428,6 +431,9 @@ func ToCancelExternalWorkflowExecutionFailedCause(t *shared.CancelExternalWorkfl case shared.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: v := types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return &v + case shared.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + v := types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return &v } panic("unexpected enum value") } @@ -4931,6 +4937,9 @@ func FromSignalExternalWorkflowExecutionFailedCause(t *types.SignalExternalWorkf case types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: v := shared.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return &v + case types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + v := shared.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return &v } panic("unexpected enum value") } @@ -4944,6 +4953,9 @@ func ToSignalExternalWorkflowExecutionFailedCause(t *shared.SignalExternalWorkfl case shared.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution: v := types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return &v + case shared.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted: + v := types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return &v } panic("unexpected enum value") } diff --git a/common/types/mapper/thrift/shared_test.go b/common/types/mapper/thrift/shared_test.go index 7c3006cda66..2bf01182a08 100644 --- a/common/types/mapper/thrift/shared_test.go +++ b/common/types/mapper/thrift/shared_test.go @@ -476,6 +476,7 @@ func TestCancelExternalWorkflowExecutionFailedCauseConversion(t *testing.T) { testCases := []*types.CancelExternalWorkflowExecutionFailedCause{ nil, types.CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr(), + types.CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr(), } for _, original := range testCases { @@ -2603,6 +2604,7 @@ func TestSignalExternalWorkflowExecutionFailedCauseConversion(t *testing.T) { testCases := []*types.SignalExternalWorkflowExecutionFailedCause{ nil, types.SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution.Ptr(), + types.SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted.Ptr(), } for _, original := range testCases { diff --git a/common/types/shared.go b/common/types/shared.go index 2e89ed07ffd..119e32b3eda 100644 --- a/common/types/shared.go +++ b/common/types/shared.go @@ -381,6 +381,8 @@ func (e CancelExternalWorkflowExecutionFailedCause) String() string { switch w { case 0: return "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION" + case 1: + return "WORKFLOW_ALREADY_COMPLETED" } return fmt.Sprintf("CancelExternalWorkflowExecutionFailedCause(%d)", w) } @@ -391,6 +393,9 @@ func (e *CancelExternalWorkflowExecutionFailedCause) UnmarshalText(value []byte) case "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION": *e = CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return nil + case "WORKFLOW_ALREADY_COMPLETED": + *e = CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return nil default: val, err := strconv.ParseInt(s, 10, 32) if err != nil { @@ -409,6 +414,7 @@ func (e CancelExternalWorkflowExecutionFailedCause) MarshalText() ([]byte, error const ( // CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution is an option for CancelExternalWorkflowExecutionFailedCause CancelExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution CancelExternalWorkflowExecutionFailedCause = iota + CancelExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted ) // CancelTimerDecisionAttributes is an internal type (TBD...) @@ -5739,6 +5745,8 @@ func (e SignalExternalWorkflowExecutionFailedCause) String() string { switch w { case 0: return "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION" + case 1: + return "WORKFLOW_ALREADY_COMPLETED" } return fmt.Sprintf("SignalExternalWorkflowExecutionFailedCause(%d)", w) } @@ -5749,6 +5757,9 @@ func (e *SignalExternalWorkflowExecutionFailedCause) UnmarshalText(value []byte) case "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION": *e = SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution return nil + case "WORKFLOW_ALREADY_COMPLETED": + *e = SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted + return nil default: val, err := strconv.ParseInt(s, 10, 32) if err != nil { @@ -5767,6 +5778,7 @@ func (e SignalExternalWorkflowExecutionFailedCause) MarshalText() ([]byte, error const ( // SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution is an option for SignalExternalWorkflowExecutionFailedCause SignalExternalWorkflowExecutionFailedCauseUnknownExternalWorkflowExecution SignalExternalWorkflowExecutionFailedCause = iota + SignalExternalWorkflowExecutionFailedCauseWorkflowAlreadyCompleted ) // SignalExternalWorkflowExecutionFailedEventAttributes is an internal type (TBD...) diff --git a/common/types/testdata/service_history.go b/common/types/testdata/service_history.go index f9b8800df01..b67c77f349f 100644 --- a/common/types/testdata/service_history.go +++ b/common/types/testdata/service_history.go @@ -147,6 +147,7 @@ var ( InitiatedID: EventID1, CompletedExecution: &WorkflowExecution, CompletionEvent: &HistoryEvent_WorkflowExecutionStarted, + StartedID: EventID2, } HistoryRecordDecisionTaskStartedRequest = types.RecordDecisionTaskStartedRequest{ DomainUUID: DomainID, diff --git a/go.mod b/go.mod index 317ff44a735..6b78eed1b2b 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/startreedata/pinot-client-go v0.2.0 // latest release supports pinot v0.12.0 which is also internal version github.com/stretchr/testify v1.8.3 github.com/uber-go/tally v3.3.15+incompatible - github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36 + github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51 github.com/uber/ringpop-go v0.8.5 github.com/uber/tchannel-go v1.22.2 github.com/urfave/cli v1.22.4 diff --git a/go.sum b/go.sum index dd65262a1dd..f2688241f98 100644 --- a/go.sum +++ b/go.sum @@ -444,8 +444,8 @@ github.com/uber-go/tally v3.3.12+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyu github.com/uber-go/tally v3.3.15+incompatible h1:9hLSgNBP28CjIaDmAuRTq9qV+UZY+9PcvAkXO4nNMwg= github.com/uber-go/tally v3.3.15+incompatible/go.mod h1:YDTIBxdXyOU/sCWilKB4bgyufu1cEi0jdVnRdxvjnmU= github.com/uber/cadence-idl v0.0.0-20211111101836-d6b70b60eb8c/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= -github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36 h1:75Uvw7a4Pqo5LrpAFfJehKSJT50JcF7dQolJj5/bUc4= -github.com/uber/cadence-idl v0.0.0-20240326234200-e3a59cdd3c36/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= +github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51 h1:gAdDymipzIzh7PTPAW7DjFT2BOEwY7hwC0COsZIulsI= +github.com/uber/cadence-idl v0.0.0-20240416202333-83d5cae7fc51/go.mod h1:oyUK7GCNCRHCCyWyzifSzXpVrRYVBbAMHAzF5dXiKws= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= diff --git a/idls b/idls index e3a59cdd3c3..e2e82120838 160000 --- a/idls +++ b/idls @@ -1 +1 @@ -Subproject commit e3a59cdd3c3676b0edee2f3262a22379f25b9fa5 +Subproject commit e2e82120838dbbbcb18ed827a50e26615fc29a26 diff --git a/proto/internal/uber/cadence/history/v1/service.proto b/proto/internal/uber/cadence/history/v1/service.proto index 718abe4455a..54ed7363644 100644 --- a/proto/internal/uber/cadence/history/v1/service.proto +++ b/proto/internal/uber/cadence/history/v1/service.proto @@ -528,6 +528,7 @@ message RecordChildExecutionCompletedRequest { int64 initiated_id = 3; api.v1.WorkflowExecution completed_execution = 4; api.v1.HistoryEvent completion_event = 5; + int64 started_id = 6; } message RecordChildExecutionCompletedResponse { diff --git a/service/history/decision/handler_test.go b/service/history/decision/handler_test.go index 1ac68110a83..d42422c2f02 100644 --- a/service/history/decision/handler_test.go +++ b/service/history/decision/handler_test.go @@ -57,8 +57,8 @@ import ( ) const ( - _testInvalidDomainUUID = "some-invalid-UUID" - _testShardID = 0 + testInvalidDomainUUID = "some-invalid-UUID" + testShardID = 1234 ) type ( @@ -126,7 +126,7 @@ func TestHandleDecisionTaskScheduled(t *testing.T) { }{ { name: "failure to retrieve domain From ID", - domainID: _testInvalidDomainUUID, + domainID: testInvalidDomainUUID, mutablestate: &persistence.WorkflowMutableState{ ExecutionInfo: &persistence.WorkflowExecutionInfo{}, }, @@ -174,7 +174,7 @@ func TestHandleDecisionTaskScheduled(t *testing.T) { GetEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). Times(1). Return(nil, &persistence.TimeoutError{Msg: "failed to get start event: request timeout"}) - shardContext.EXPECT().GetShardID().Return(_testShardID).Times(1) + shardContext.EXPECT().GetShardID().Return(testShardID).Times(1) }, expectErr: true, }, @@ -195,7 +195,7 @@ func TestHandleDecisionTaskScheduled(t *testing.T) { GetEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). Times(1). Return(&types.HistoryEvent{}, nil) - shardContext.EXPECT().GetShardID().Return(_testShardID).Times(1) + shardContext.EXPECT().GetShardID().Return(testShardID).Times(1) shardContext.EXPECT().GenerateTransferTaskIDs(gomock.Any()).Times(1).Return([]int64{}, errors.New("some random error to avoid going too deep in call stack unrelated to this unit")) }, expectErr: true, @@ -217,7 +217,7 @@ func TestHandleDecisionTaskScheduled(t *testing.T) { GetEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). Times(1). Return(&types.HistoryEvent{}, nil) - shardContext.EXPECT().GetShardID().Return(_testShardID).Times(1) + shardContext.EXPECT().GetShardID().Return(testShardID).Times(1) shardContext.EXPECT().GenerateTransferTaskIDs(gomock.Any()).Times(1).Return([]int64{}, errors.New("some random error to avoid going too deep in call stack unrelated to this unit")) }, expectErr: true, @@ -258,7 +258,7 @@ func TestHandleDecisionTaskScheduled(t *testing.T) { } func TestHandleDecisionTaskFailed(t *testing.T) { - _taskToken := []byte("test-token") + taskToken := []byte("test-token") tests := []struct { name string domainID string @@ -268,7 +268,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { }{ { name: " fail to retrieve domain From ID", - domainID: _testInvalidDomainUUID, + domainID: testInvalidDomainUUID, expectErr: true, mutablestate: &persistence.WorkflowMutableState{ ExecutionInfo: &persistence.WorkflowExecutionInfo{}, @@ -278,7 +278,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { name: "failure to deserialize token", domainID: constants.TestDomainID, expectCalls: func(ctrl *gomock.Controller, h *handlerImpl) { - h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_taskToken).Return(nil, errors.New("unable to deserialize task token")) + h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(taskToken).Return(nil, errors.New("unable to deserialize task token")) }, expectErr: true, mutablestate: &persistence.WorkflowMutableState{ @@ -294,7 +294,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID, } - h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_taskToken).Return(token, nil) + h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(taskToken).Return(token, nil) h.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(events.NewMockCache(ctrl)) h.shard.(*shard.MockContext).EXPECT().GenerateTransferTaskIDs(gomock.Any()).Return([]int64{0}, nil) h.shard.(*shard.MockContext).EXPECT().AppendHistoryV2Events(gomock.Any(), gomock.Any(), constants.TestDomainID, types.WorkflowExecution{ @@ -302,7 +302,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { RunID: constants.TestRunID, }).Return(&persistence.AppendHistoryNodesResponse{}, nil) h.shard.(*shard.MockContext).EXPECT().UpdateWorkflowExecution(gomock.Any(), gomock.Any()).Return(&persistence.UpdateWorkflowExecutionResponse{MutableStateUpdateSessionStats: &persistence.MutableStateUpdateSessionStats{}}, nil) - h.shard.(*shard.MockContext).EXPECT().GetShardID().Return(_testShardID) + h.shard.(*shard.MockContext).EXPECT().GetShardID().Return(testShardID) engine := engine.NewMockEngine(ctrl) h.shard.(*shard.MockContext).EXPECT().GetEngine().Times(3).Return(engine) engine.EXPECT().NotifyNewHistoryEvent(gomock.Any()) @@ -331,7 +331,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID, } - h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_taskToken).Return(token, nil) + h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(taskToken).Return(token, nil) h.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(events.NewMockCache(ctrl)) }, expectErr: true, @@ -351,7 +351,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { RunID: constants.TestRunID, ScheduleID: 1, } - h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_taskToken).Return(token, nil) + h.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(taskToken).Return(token, nil) h.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(events.NewMockCache(ctrl)) }, expectErr: true, @@ -364,7 +364,7 @@ func TestHandleDecisionTaskFailed(t *testing.T) { request := &types.HistoryRespondDecisionTaskFailedRequest{ DomainUUID: test.domainID, FailedRequest: &types.RespondDecisionTaskFailedRequest{ - TaskToken: _taskToken, + TaskToken: taskToken, Cause: nil, Details: nil, }, @@ -393,8 +393,8 @@ func TestHandleDecisionTaskFailed(t *testing.T) { } func TestHandleDecisionTaskStarted(t *testing.T) { - _testTaskListName := "some-tasklist-name" - _testWorkflowTypeName := "some-workflow-type-name" + testTaskListName := "some-tasklist-name" + testWorkflowTypeName := "some-workflow-type-name" tests := []struct { name string domainID string @@ -405,7 +405,7 @@ func TestHandleDecisionTaskStarted(t *testing.T) { }{ { name: "fail to retrieve domain From ID", - domainID: _testInvalidDomainUUID, + domainID: testInvalidDomainUUID, expectErr: &types.BadRequestError{Message: "Invalid domain UUID."}, mutablestate: &persistence.WorkflowMutableState{ ExecutionInfo: &persistence.WorkflowExecutionInfo{}, @@ -493,7 +493,7 @@ func TestHandleDecisionTaskStarted(t *testing.T) { AppendHistoryV2Events(gomock.Any(), gomock.Any(), constants.TestDomainID, types.WorkflowExecution{WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID}). Return(&persistence.AppendHistoryNodesResponse{}, nil) h.shard.(*shard.MockContext).EXPECT().UpdateWorkflowExecution(gomock.Any(), gomock.Any()).Return(&persistence.UpdateWorkflowExecutionResponse{MutableStateUpdateSessionStats: &persistence.MutableStateUpdateSessionStats{}}, nil) - h.shard.(*shard.MockContext).EXPECT().GetShardID().Return(_testShardID) + h.shard.(*shard.MockContext).EXPECT().GetShardID().Return(testShardID) engine := engine.NewMockEngine(ctrl) h.shard.(*shard.MockContext).EXPECT().GetEngine().Times(3).Return(engine) engine.EXPECT().NotifyNewHistoryEvent(gomock.Any()) @@ -507,13 +507,13 @@ func TestHandleDecisionTaskStarted(t *testing.T) { ExecutionInfo: &persistence.WorkflowExecutionInfo{ DecisionStartedID: -23, NextEventID: 2, - WorkflowTypeName: _testWorkflowTypeName, - TaskList: _testTaskListName, + WorkflowTypeName: testWorkflowTypeName, + TaskList: testTaskListName, }, }, assertResponseBody: func(t *testing.T, resp *types.RecordDecisionTaskStartedResponse) { - assert.Equal(t, _testWorkflowTypeName, resp.WorkflowType.Name) - assert.Equal(t, _testTaskListName, resp.WorkflowExecutionTaskList.Name) + assert.Equal(t, testWorkflowTypeName, resp.WorkflowType.Name) + assert.Equal(t, testTaskListName, resp.WorkflowExecutionTaskList.Name) assert.Equal(t, int64(0), resp.ScheduledEventID) assert.Equal(t, int64(3), resp.NextEventID) }, @@ -566,9 +566,9 @@ func TestHandleDecisionTaskStarted(t *testing.T) { } func TestHandleDecisionTaskCompleted(t *testing.T) { - _serializedTestToken := []byte("test-token") - _testTaskListName := "some-tasklist-name" - _testWorkflowTypeName := "some-workflow-type-name" + serializedTestToken := []byte("test-token") + testTaskListName := "some-tasklist-name" + testWorkflowTypeName := "some-workflow-type-name" tests := []struct { name string domainID string @@ -576,10 +576,11 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { expectMockCalls func(ctrl *gomock.Controller, decisionHandler *handlerImpl) assertResponseBody func(t *testing.T, resp *types.HistoryRespondDecisionTaskCompletedResponse) mutableState *persistence.WorkflowMutableState + request *types.HistoryRespondDecisionTaskCompletedRequest }{ { name: "failure to get domain from ID", - domainID: _testInvalidDomainUUID, + domainID: testInvalidDomainUUID, expectedErr: &types.BadRequestError{Message: "Invalid domain UUID."}, }, { @@ -587,7 +588,7 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { domainID: constants.TestDomainID, expectedErr: workflow.ErrDeserializingToken, expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { - decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_serializedTestToken).Return(nil, errors.New("unable to deserialize task token")) + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(nil, errors.New("unable to deserialize task token")) }, }, { @@ -595,11 +596,11 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { domainID: constants.TestDomainID, expectedErr: &types.BadRequestError{Message: "Can't load workflow execution. WorkflowId not set."}, expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { - _taskToken := &common.TaskToken{ + taskToken := &common.TaskToken{ DomainID: constants.TestDomainID, // empty workflow ID to force decisionHandler.executionCache.GetOrCreateWorkflowExecution() failure } - decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_serializedTestToken).Return(_taskToken, nil) + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(taskToken, nil) }, }, { @@ -607,27 +608,27 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { domainID: constants.TestDomainID, expectedErr: nil, expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { - _deserializedTestToken := &common.TaskToken{ + deserializedTestToken := &common.TaskToken{ DomainID: constants.TestDomainID, WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID, ScheduleID: 0, } - decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(_serializedTestToken).Return(_deserializedTestToken, nil) + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(deserializedTestToken, nil) decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Serialize(&common.TaskToken{ DomainID: constants.TestDomainID, WorkflowID: constants.TestWorkflowID, - WorkflowType: _testWorkflowTypeName, + WorkflowType: testWorkflowTypeName, RunID: constants.TestRunID, ScheduleID: 1, ActivityID: "some-activity-id", ActivityType: "some-activity-name", - }).Return(_serializedTestToken, nil) + }).Return(serializedTestToken, nil) eventsCache := events.NewMockCache(ctrl) decisionHandler.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(eventsCache) eventsCache.EXPECT().PutEvent(constants.TestDomainID, constants.TestWorkflowID, constants.TestRunID, int64(1), gomock.Any()) - decisionHandler.shard.(*shard.MockContext).EXPECT().GetShardID().Times(1).Return(_testShardID) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetShardID().Times(1).Return(testShardID) decisionHandler.shard.(*shard.MockContext).EXPECT().GenerateTransferTaskIDs(4).Return([]int64{0, 1, 2, 3}, nil) decisionHandler.shard.(*shard.MockContext).EXPECT().GenerateTransferTaskIDs(6).Return([]int64{0, 1, 2, 3, 4, 5}, nil) decisionHandler.shard.(*shard.MockContext).EXPECT().AppendHistoryV2Events(gomock.Any(), gomock.Any(), constants.TestDomainID, types.WorkflowExecution{ @@ -659,13 +660,123 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { return []*types.ResetPointInfo{} }(), }, - WorkflowTypeName: _testWorkflowTypeName, - TaskList: _testTaskListName, + WorkflowTypeName: testWorkflowTypeName, + TaskList: testTaskListName, }, Checksum: checksum.Checksum{}, BufferedEvents: append([]*types.HistoryEvent{}, &types.HistoryEvent{}), ActivityInfos: make(map[int64]*persistence.ActivityInfo), }, + assertResponseBody: func(t *testing.T, resp *types.HistoryRespondDecisionTaskCompletedResponse) { + assert.True(t, resp.StartedResponse.StickyExecutionEnabled) + assert.Equal(t, 1, len(resp.ActivitiesToDispatchLocally)) + assert.Equal(t, testWorkflowTypeName, resp.StartedResponse.WorkflowType.Name) + assert.Equal(t, int64(0), resp.StartedResponse.Attempt) + assert.Equal(t, testTaskListName, resp.StartedResponse.WorkflowExecutionTaskList.Name) + }, + }, + { + name: "decision task failure", + domainID: constants.TestDomainID, + expectedErr: &types.InternalServiceError{Message: "add-decisiontask-failed-event operation failed"}, + expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { + deserializedTestToken := &common.TaskToken{ + DomainID: constants.TestDomainID, + WorkflowID: constants.TestWorkflowID, + RunID: constants.TestRunID, + } + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(deserializedTestToken, nil) + eventsCache := events.NewMockCache(ctrl) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(2).Return(eventsCache) + decisionHandler.domainCache.(*cache.MockDomainCache).EXPECT().GetDomain(constants.TestDomainName).Times(1).Return(constants.TestLocalDomainEntry, nil) + }, + }, + { + name: "workflow completed", + domainID: constants.TestDomainID, + expectedErr: workflow.ErrAlreadyCompleted, + expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { + deserializedTestToken := &common.TaskToken{ + DomainID: constants.TestDomainID, + WorkflowID: constants.TestWorkflowID, + RunID: constants.TestRunID, + } + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(deserializedTestToken, nil) + eventsCache := events.NewMockCache(ctrl) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(eventsCache) + }, + mutableState: &persistence.WorkflowMutableState{ + ExecutionInfo: &persistence.WorkflowExecutionInfo{ + State: 2, + }, + }, + }, + { + name: "decision task not found", + domainID: constants.TestDomainID, + expectedErr: &types.EntityNotExistsError{Message: "Decision task not found."}, + expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { + deserializedTestToken := &common.TaskToken{ + DomainID: constants.TestDomainID, + WorkflowID: constants.TestWorkflowID, + RunID: constants.TestRunID, + ScheduleAttempt: 1, + } + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(deserializedTestToken, nil) + eventsCache := events.NewMockCache(ctrl) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(eventsCache) + }, + }, + { + name: "decision heartbeat time out", + domainID: constants.TestDomainID, + expectedErr: &types.EntityNotExistsError{Message: "decision heartbeat timeout"}, + request: &types.HistoryRespondDecisionTaskCompletedRequest{ + DomainUUID: constants.TestDomainID, + CompleteRequest: &types.RespondDecisionTaskCompletedRequest{ + TaskToken: serializedTestToken, + Decisions: []*types.Decision{}, + ReturnNewDecisionTask: true, + ForceCreateNewDecisionTask: true, + StickyAttributes: &types.StickyExecutionAttributes{ + WorkerTaskList: &types.TaskList{Name: testTaskListName}, + ScheduleToStartTimeoutSeconds: func(i int32) *int32 { return &i }(10), + }, + }, + }, + expectMockCalls: func(ctrl *gomock.Controller, decisionHandler *handlerImpl) { + deserializedTestToken := &common.TaskToken{ + DomainID: constants.TestDomainID, + WorkflowID: constants.TestWorkflowID, + RunID: constants.TestRunID, + ScheduleID: 0, + } + decisionHandler.tokenSerializer.(*common.MockTaskTokenSerializer).EXPECT().Deserialize(serializedTestToken).Return(deserializedTestToken, nil) + + eventsCache := events.NewMockCache(ctrl) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetEventsCache().Times(1).Return(eventsCache) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetShardID().Times(1).Return(testShardID) + decisionHandler.shard.(*shard.MockContext).EXPECT().GenerateTransferTaskIDs(1).Return([]int64{0}, nil) + decisionHandler.shard.(*shard.MockContext).EXPECT().AppendHistoryV2Events(gomock.Any(), gomock.Any(), constants.TestDomainID, types.WorkflowExecution{ + WorkflowID: constants.TestWorkflowID, + RunID: constants.TestRunID, + }).Return(&persistence.AppendHistoryNodesResponse{}, nil) + decisionHandler.shard.(*shard.MockContext).EXPECT().UpdateWorkflowExecution(context.Background(), gomock.Any()).Return(&persistence.UpdateWorkflowExecutionResponse{}, nil) + + engine := engine.NewMockEngine(ctrl) + decisionHandler.shard.(*shard.MockContext).EXPECT().GetEngine().Return(engine).Times(3) + engine.EXPECT().NotifyNewHistoryEvent(events.NewNotification(constants.TestDomainID, &types.WorkflowExecution{WorkflowID: constants.TestWorkflowID, RunID: constants.TestRunID}, + 0, 1, 0, nil, 1, 0)) + engine.EXPECT().NotifyNewTransferTasks(gomock.Any()) + engine.EXPECT().NotifyNewTimerTasks(gomock.Any()) + engine.EXPECT().NotifyNewCrossClusterTasks(gomock.Any()) + engine.EXPECT().NotifyNewReplicationTasks(gomock.Any()) + }, + mutableState: &persistence.WorkflowMutableState{ + ExecutionInfo: &persistence.WorkflowExecutionInfo{ + DecisionOriginalScheduledTimestamp: 1, + }, + }, }, } @@ -673,6 +784,7 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { t.Run(test.name, func(t *testing.T) { ctrl := gomock.NewController(t) shard := shard.NewMockContext(ctrl) + domainCache := cache.NewMockDomainCache(ctrl) handlerConfig := config.NewForTest() handlerConfig.MaxActivityCountDispatchByDomain = func(domain string) int { return 1 } // some value > 0 handlerConfig.EnableActivityLocalDispatchByDomain = func(domain string) bool { return true } @@ -680,12 +792,12 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { config: handlerConfig, shard: shard, timeSource: clock.NewMockedTimeSource(), - domainCache: cache.NewMockDomainCache(ctrl), + domainCache: domainCache, metricsClient: metrics.NewClient(tally.NoopScope, metrics.History), logger: testlogger.New(t), versionChecker: client.NewVersionChecker(), tokenSerializer: common.NewMockTaskTokenSerializer(ctrl), - attrValidator: newAttrValidator(cache.NewMockDomainCache(ctrl), metrics.NewClient(tally.NoopScope, metrics.History), config.NewForTest(), testlogger.New(t)), + attrValidator: newAttrValidator(domainCache, metrics.NewClient(tally.NoopScope, metrics.History), config.NewForTest(), testlogger.New(t)), } expectCommonCalls(decisionHandler, test.domainID, test.mutableState) decisionHandler.executionCache = execution.NewCache(shard) @@ -693,14 +805,14 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { request := &types.HistoryRespondDecisionTaskCompletedRequest{ DomainUUID: test.domainID, CompleteRequest: &types.RespondDecisionTaskCompletedRequest{ - TaskToken: _serializedTestToken, + TaskToken: serializedTestToken, Decisions: []*types.Decision{{ DecisionType: nil, ScheduleActivityTaskDecisionAttributes: &types.ScheduleActivityTaskDecisionAttributes{ ActivityID: "some-activity-id", ActivityType: &types.ActivityType{Name: "some-activity-name"}, Domain: constants.TestDomainName, - TaskList: &types.TaskList{Name: _testTaskListName}, + TaskList: &types.TaskList{Name: testTaskListName}, ScheduleToCloseTimeoutSeconds: func(i int32) *int32 { return &i }(200), ScheduleToStartTimeoutSeconds: func(i int32) *int32 { return &i }(100), StartToCloseTimeoutSeconds: func(i int32) *int32 { return &i }(100), @@ -713,16 +825,15 @@ func TestHandleDecisionTaskCompleted(t *testing.T) { if test.expectMockCalls != nil { test.expectMockCalls(ctrl, decisionHandler) } + if test.request != nil { + request = test.request + } resp, err := decisionHandler.HandleDecisionTaskCompleted(context.Background(), request) assert.Equal(t, test.expectedErr, err) if err != nil { assert.Nil(t, resp) } else { - assert.True(t, resp.StartedResponse.StickyExecutionEnabled) - assert.Equal(t, 1, len(resp.ActivitiesToDispatchLocally)) - assert.Equal(t, _testWorkflowTypeName, resp.StartedResponse.WorkflowType.Name) - assert.Equal(t, int64(0), resp.StartedResponse.Attempt) - assert.Equal(t, _testTaskListName, resp.StartedResponse.WorkflowExecutionTaskList.Name) + test.assertResponseBody(t, resp) } }) } @@ -944,12 +1055,13 @@ func expectCommonCalls(handler *handlerImpl, domainID string, state *persistence State: state, MutableStateStats: &persistence.MutableStateStats{}, } - if state != nil { - workflowExecutionResponse.State.ExecutionStats = &persistence.ExecutionStats{} - workflowExecutionResponse.State.ExecutionInfo.DomainID = domainID - workflowExecutionResponse.State.ExecutionInfo.WorkflowID = constants.TestWorkflowID - workflowExecutionResponse.State.ExecutionInfo.RunID = constants.TestRunID + if state == nil { + workflowExecutionResponse.State = &persistence.WorkflowMutableState{ExecutionInfo: &persistence.WorkflowExecutionInfo{}} } + workflowExecutionResponse.State.ExecutionStats = &persistence.ExecutionStats{} + workflowExecutionResponse.State.ExecutionInfo.DomainID = domainID + workflowExecutionResponse.State.ExecutionInfo.WorkflowID = constants.TestWorkflowID + workflowExecutionResponse.State.ExecutionInfo.RunID = constants.TestRunID handler.shard.(*shard.MockContext).EXPECT().GetWorkflowExecution(context.Background(), &persistence.GetWorkflowExecutionRequest{ DomainID: domainID,