diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index 83674b56f17..6d96c762a3b 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,387 +52,263 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto\032\036flyteidl/core/identifier.proto\032," - "protoc-gen-swagger/options/annotations.p" - "roto2\342r\n\014AdminService\022\305\002\n\nCreateTask\022!.f" - "lyteidl.admin.TaskCreateRequest\032\".flytei" - "dl.admin.TaskCreateResponse\"\357\001\202\323\344\223\002\022\"\r/a" - "pi/v1/tasks:\001*\222A\323\001\032&Create and register " - "a task definition.JB\n\003400\022;\n9Returned fo" - "r bad request that may have failed valid" - "ation.Je\n\003409\022^\n\\Returned for a request " - "that references an identical entity that" - " has already been registered.\022\262\001\n\007GetTas" - "k\022 .flyteidl.admin.ObjectGetRequest\032\024.fl" - "yteidl.admin.Task\"o\202\323\344\223\002\?\022=/api/v1/tasks" - "/{id.project}/{id.domain}/{id.name}/{id." - "version}\222A\'\032%Retrieve an existing task d" - "efinition.\022\336\001\n\013ListTaskIds\0220.flyteidl.ad" - "min.NamedEntityIdentifierListRequest\032).f" - "lyteidl.admin.NamedEntityIdentifierList\"" - "r\202\323\344\223\002%\022#/api/v1/task_ids/{project}/{dom" - "ain}\222AD\032BFetch existing task definition " - "identifiers matching input filters.\022\353\001\n\t" - "ListTasks\022#.flyteidl.admin.ResourceListR" - "equest\032\030.flyteidl.admin.TaskList\"\236\001\202\323\344\223\002" - "\\\0220/api/v1/tasks/{id.project}/{id.domain" - "}/{id.name}Z(\022&/api/v1/tasks/{id.project" - "}/{id.domain}\222A9\0327Fetch existing task de" - "finitions matching input filters.\022\331\002\n\016Cr" - "eateWorkflow\022%.flyteidl.admin.WorkflowCr" - "eateRequest\032&.flyteidl.admin.WorkflowCre" - "ateResponse\"\367\001\202\323\344\223\002\026\"\021/api/v1/workflows:" - "\001*\222A\327\001\032*Create and register a workflow d" - "efinition.JB\n\003400\022;\n9Returned for bad re" - "quest that may have failed validation.Je" - "\n\003409\022^\n\\Returned for a request that ref" - "erences an identical entity that has alr" - "eady been registered.\022\302\001\n\013GetWorkflow\022 ." - "flyteidl.admin.ObjectGetRequest\032\030.flytei" - "dl.admin.Workflow\"w\202\323\344\223\002C\022A/api/v1/workf" - "lows/{id.project}/{id.domain}/{id.name}/" - "{id.version}\222A+\032)Retrieve an existing wo" - "rkflow definition.\022\355\001\n\017ListWorkflowIds\0220" - ".flyteidl.admin.NamedEntityIdentifierLis" - "tRequest\032).flyteidl.admin.NamedEntityIde" - "ntifierList\"}\202\323\344\223\002)\022\'/api/v1/workflow_id" - "s/{project}/{domain}\222AK\032IFetch an existi" - "ng workflow definition identifiers match" - "ing input filters.\022\377\001\n\rListWorkflows\022#.f" - "lyteidl.admin.ResourceListRequest\032\034.flyt" - "eidl.admin.WorkflowList\"\252\001\202\323\344\223\002d\0224/api/v" - "1/workflows/{id.project}/{id.domain}/{id" - ".name}Z,\022*/api/v1/workflows/{id.project}" - "/{id.domain}\222A=\032;Fetch existing workflow" - " definitions matching input filters.\022\345\002\n" - "\020CreateLaunchPlan\022\'.flyteidl.admin.Launc" - "hPlanCreateRequest\032(.flyteidl.admin.Laun" - "chPlanCreateResponse\"\375\001\202\323\344\223\002\031\"\024/api/v1/l" - "aunch_plans:\001*\222A\332\001\032-Create and register " - "a launch plan definition.JB\n\003400\022;\n9Retu" - "rned for bad request that may have faile" - "d validation.Je\n\003409\022^\n\\Returned for a r" - "equest that references an identical enti" - "ty that has already been registered.\022\314\001\n" - "\rGetLaunchPlan\022 .flyteidl.admin.ObjectGe" - "tRequest\032\032.flyteidl.admin.LaunchPlan\"}\202\323" - "\344\223\002F\022D/api/v1/launch_plans/{id.project}/" - "{id.domain}/{id.name}/{id.version}\222A.\032,R" - "etrieve an existing launch plan definiti" - "on.\022\363\001\n\023GetActiveLaunchPlan\022\'.flyteidl.a" - "dmin.ActiveLaunchPlanRequest\032\032.flyteidl." - "admin.LaunchPlan\"\226\001\202\323\344\223\002@\022>/api/v1/activ" + ".proto\032\036flyteidl/core/identifier.proto2\274" + "L\n\014AdminService\022m\n\nCreateTask\022!.flyteidl" + ".admin.TaskCreateRequest\032\".flyteidl.admi" + "n.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/api/v1/ta" + "sks:\001*\022\210\001\n\007GetTask\022 .flyteidl.admin.Obje" + "ctGetRequest\032\024.flyteidl.admin.Task\"E\202\323\344\223" + "\002\?\022=/api/v1/tasks/{id.project}/{id.domai" + "n}/{id.name}/{id.version}\022\227\001\n\013ListTaskId" + "s\0220.flyteidl.admin.NamedEntityIdentifier" + "ListRequest\032).flyteidl.admin.NamedEntity" + "IdentifierList\"+\202\323\344\223\002%\022#/api/v1/task_ids" + "/{project}/{domain}\022\256\001\n\tListTasks\022#.flyt" + "eidl.admin.ResourceListRequest\032\030.flyteid" + "l.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v1/tasks/" + "{id.project}/{id.domain}/{id.name}Z(\022&/a" + "pi/v1/tasks/{id.project}/{id.domain}\022}\n\016" + "CreateWorkflow\022%.flyteidl.admin.Workflow" + "CreateRequest\032&.flyteidl.admin.WorkflowC" + "reateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/workflows" + ":\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.admin.Obj" + "ectGetRequest\032\030.flyteidl.admin.Workflow\"" + "I\202\323\344\223\002C\022A/api/v1/workflows/{id.project}/" + "{id.domain}/{id.name}/{id.version}\022\237\001\n\017L" + "istWorkflowIds\0220.flyteidl.admin.NamedEnt" + "ityIdentifierListRequest\032).flyteidl.admi" + "n.NamedEntityIdentifierList\"/\202\323\344\223\002)\022\'/ap" + "i/v1/workflow_ids/{project}/{domain}\022\276\001\n" + "\rListWorkflows\022#.flyteidl.admin.Resource" + "ListRequest\032\034.flyteidl.admin.WorkflowLis" + "t\"j\202\323\344\223\002d\0224/api/v1/workflows/{id.project" + "}/{id.domain}/{id.name}Z,\022*/api/v1/workf" + "lows/{id.project}/{id.domain}\022\206\001\n\020Create" + "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" + "eateRequest\032(.flyteidl.admin.LaunchPlanC" + "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" + "ans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyteidl.admi" + "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" + "chPlan\"L\202\323\344\223\002F\022D/api/v1/launch_plans/{id" + ".project}/{id.domain}/{id.name}/{id.vers" + "ion}\022\242\001\n\023GetActiveLaunchPlan\022\'.flyteidl." + "admin.ActiveLaunchPlanRequest\032\032.flyteidl" + ".admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/v1/activ" "e_launch_plans/{id.project}/{id.domain}/" - "{id.name}\222AM\032KRetrieve the active launch" - " plan version specified by input request" - " filters.\022\353\001\n\025ListActiveLaunchPlans\022+.fl" + "{id.name}\022\234\001\n\025ListActiveLaunchPlans\022+.fl" "yteidl.admin.ActiveLaunchPlanListRequest" - "\032\036.flyteidl.admin.LaunchPlanList\"\204\001\202\323\344\223\002" - "0\022./api/v1/active_launch_plans/{project}" - "/{domain}\222AK\032IFetch the active launch pl" - "an versions specified by input request f" - "ilters.\022\363\001\n\021ListLaunchPlanIds\0220.flyteidl" - ".admin.NamedEntityIdentifierListRequest\032" - ").flyteidl.admin.NamedEntityIdentifierLi" - "st\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_ids/{pr" - "oject}/{domain}\222AK\032IFetch existing launc" - "h plan definition identifiers matching i" - "nput filters.\022\214\002\n\017ListLaunchPlans\022#.flyt" - "eidl.admin.ResourceListRequest\032\036.flyteid" - "l.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227/api/v1" - "/launch_plans/{id.project}/{id.domain}/{" - "id.name}Z/\022-/api/v1/launch_plans/{id.pro" - "ject}/{id.domain}\222A@\032>Fetch existing lau" - "nch plan definitions matching input filt" - "ers.\022\300\006\n\020UpdateLaunchPlan\022\'.flyteidl.adm" - "in.LaunchPlanUpdateRequest\032(.flyteidl.ad" - "min.LaunchPlanUpdateResponse\"\330\005\202\323\344\223\002I\032D/" - "api/v1/launch_plans/{id.project}/{id.dom" - "ain}/{id.name}/{id.version}:\001*\222A\205\005\032\202\005Upd" - "ate the status of an existing launch pla" - "n definition. At most one launch plan ve" - "rsion for a given {project, domain, name" - "} can be active at a time. If this call " - "sets a launch plan to active and existin" - "g version is already active, the result " - "of this call will be that the formerly a" - "ctive launch plan will be made inactive " - "and specified launch plan in this reques" - "t will be made active. In the event that" - " the formerly active launch plan had a s" - "chedule associated it with it, this sche" - "dule will be disabled. If the reference " - "launch plan in this request is being set" - " to active and has a schedule associated" - " with it, the schedule will be enabled.\022" - "\242\001\n\017CreateExecution\022&.flyteidl.admin.Exe" - "cutionCreateRequest\032\'.flyteidl.admin.Exe" - "cutionCreateResponse\">\202\323\344\223\002\027\"\022/api/v1/ex" - "ecutions:\001*\222A\036\032\034Create a workflow execut" - "ion.\022\261\001\n\021RelaunchExecution\022(.flyteidl.ad" - "min.ExecutionRelaunchRequest\032\'.flyteidl." - "admin.ExecutionCreateResponse\"I\202\323\344\223\002 \"\033/" - "api/v1/executions/relaunch:\001*\222A \032\036Relaun" - "ch a workflow execution.\022\235\005\n\020RecoverExec" - "ution\022\'.flyteidl.admin.ExecutionRecoverR" - "equest\032\'.flyteidl.admin.ExecutionCreateR" - "esponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executions/rec" - "over:\001*\222A\215\004\032\212\004Recreates a previously-run" - " workflow execution that will only start" - " executing from the last known failure p" - "oint. In Recover mode, users cannot chan" - "ge any input parameters or update the ve" - "rsion of the execution. This is extremel" - "y useful to recover from system errors a" - "nd byzantine faults like - Loss of K8s c" - "luster, bugs in platform or instability," - " machine failures, downstream system fai" - "lures (downstream services), or simply t" - "o recover executions that failed because" - " of retry exhaustion and should complete" - " if tried again.\022\302\001\n\014GetExecution\022+.flyt" - "eidl.admin.WorkflowExecutionGetRequest\032\031" - ".flyteidl.admin.Execution\"j\202\323\344\223\0027\0225/api/" - "v1/executions/{id.project}/{id.domain}/{" - "id.name}\222A*\032(Retrieve an existing workfl" - "ow execution.\022\326\001\n\017UpdateExecution\022&.flyt" - "eidl.admin.ExecutionUpdateRequest\032\'.flyt" - "eidl.admin.ExecutionUpdateResponse\"r\202\323\344\223" - "\002:\0325/api/v1/executions/{id.project}/{id." - "domain}/{id.name}:\001*\222A/\032-Update executio" - "n belonging to project domain.\022\202\002\n\020GetEx" - "ecutionData\022/.flyteidl.admin.WorkflowExe" - "cutionGetDataRequest\0320.flyteidl.admin.Wo" - "rkflowExecutionGetDataResponse\"\212\001\202\323\344\223\002<\022" - ":/api/v1/data/executions/{id.project}/{i" - "d.domain}/{id.name}\222AE\032CRetrieve input a" - "nd output data from an existing workflow" - " execution.\022\310\001\n\016ListExecutions\022#.flyteid" - "l.admin.ResourceListRequest\032\035.flyteidl.a" - "dmin.ExecutionList\"r\202\323\344\223\002-\022+/api/v1/exec" - "utions/{id.project}/{id.domain}\222A<\032:Fetc" - "h existing workflow executions matching " - "input filters.\022\364\001\n\022TerminateExecution\022)." - "flyteidl.admin.ExecutionTerminateRequest" - "\032*.flyteidl.admin.ExecutionTerminateResp" - "onse\"\206\001\202\323\344\223\002:*5/api/v1/executions/{id.pr" - "oject}/{id.domain}/{id.name}:\001*\222AC\032ATerm" - "inate the active workflow execution spec" - "ified in the request.\022\374\001\n\020GetNodeExecuti" - "on\022\'.flyteidl.admin.NodeExecutionGetRequ" - "est\032\035.flyteidl.admin.NodeExecution\"\237\001\202\323\344" - "\223\002p\022n/api/v1/node_executions/{id.executi" - "on_id.project}/{id.execution_id.domain}/" - "{id.execution_id.name}/{id.node_id}\222A&\032$" - "Retrieve an existing node execution.\022\232\002\n" - "\022ListNodeExecutions\022(.flyteidl.admin.Nod" - "eExecutionListRequest\032!.flyteidl.admin.N" - "odeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v1/node_" - "executions/{workflow_execution_id.projec" - "t}/{workflow_execution_id.domain}/{workf" - "low_execution_id.name}\222A8\0326Fetch existin" - "g node executions matching input filters" - ".\022\357\004\n\031ListNodeExecutionsForTask\022/.flytei" - "dl.admin.NodeExecutionForTaskListRequest" - "\032!.flyteidl.admin.NodeExecutionList\"\375\003\202\323" - "\344\223\002\254\003\022\251\003/api/v1/children/task_executions" - "/{task_execution_id.node_execution_id.ex" - "ecution_id.project}/{task_execution_id.n" - "ode_execution_id.execution_id.domain}/{t" - "ask_execution_id.node_execution_id.execu" - "tion_id.name}/{task_execution_id.node_ex" - "ecution_id.node_id}/{task_execution_id.t" - "ask_id.project}/{task_execution_id.task_" - "id.domain}/{task_execution_id.task_id.na" - "me}/{task_execution_id.task_id.version}/" - "{task_execution_id.retry_attempt}\222AG\032EFe" - "tch child node executions launched by th" - "e specified task execution.\022\263\002\n\024GetNodeE" - "xecutionData\022+.flyteidl.admin.NodeExecut" - "ionGetDataRequest\032,.flyteidl.admin.NodeE" - "xecutionGetDataResponse\"\277\001\202\323\344\223\002u\022s/api/v" - "1/data/node_executions/{id.execution_id." - "project}/{id.execution_id.domain}/{id.ex" - "ecution_id.name}/{id.node_id}\222AA\032\?Retrie" - "ve input and output data from an existin" - "g node execution.\022\227\001\n\017RegisterProject\022&." - "flyteidl.admin.ProjectRegisterRequest\032\'." - "flyteidl.admin.ProjectRegisterResponse\"3" - "\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023Register" - " a project.\022\207\001\n\rUpdateProject\022\027.flyteidl" - ".admin.Project\032%.flyteidl.admin.ProjectU" - "pdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/projects/" - "{id}:\001*\222A\023\032\021Update a project.\022\205\001\n\014ListPr" - "ojects\022\".flyteidl.admin.ProjectListReque" - "st\032\030.flyteidl.admin.Projects\"7\202\323\344\223\002\022\022\020/a" - "pi/v1/projects\222A\034\032\032Fetch registered proj" - "ects.\022\335\001\n\023CreateWorkflowEvent\022-.flyteidl" - ".admin.WorkflowExecutionEventRequest\032..f" - "lyteidl.admin.WorkflowExecutionEventResp" - "onse\"g\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001" - "*\222AA\032\?Create a workflow execution event " - "recording a phase transition.\022\311\001\n\017Create" - "NodeEvent\022).flyteidl.admin.NodeExecution" - "EventRequest\032*.flyteidl.admin.NodeExecut" - "ionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/events" - "/nodes:\001*\222A=\032;Create a node execution ev" - "ent recording a phase transition.\022\311\001\n\017Cr" - "eateTaskEvent\022).flyteidl.admin.TaskExecu" - "tionEventRequest\032*.flyteidl.admin.TaskEx" - "ecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/ev" - "ents/tasks:\001*\222A=\032;Create a task executio" - "n event recording a phase transition.\022\251\003" - "\n\020GetTaskExecution\022\'.flyteidl.admin.Task" - "ExecutionGetRequest\032\035.flyteidl.admin.Tas" - "kExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_exec" - "utions/{id.node_execution_id.execution_i" - "d.project}/{id.node_execution_id.executi" - "on_id.domain}/{id.node_execution_id.exec" - "ution_id.name}/{id.node_execution_id.nod" - "e_id}/{id.task_id.project}/{id.task_id.d" - "omain}/{id.task_id.name}/{id.task_id.ver" - "sion}/{id.retry_attempt}\222A&\032$Retrieve an" - " existing task execution.\022\323\002\n\022ListTaskEx" - "ecutions\022(.flyteidl.admin.TaskExecutionL" - "istRequest\032!.flyteidl.admin.TaskExecutio" - "nList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_execution" - "s/{node_execution_id.execution_id.projec" - "t}/{node_execution_id.execution_id.domai" - "n}/{node_execution_id.execution_id.name}" - "/{node_execution_id.node_id}\222A8\0326Fetch e" - "xisting task executions matching input f" - "ilters.\022\340\003\n\024GetTaskExecutionData\022+.flyte" - "idl.admin.TaskExecutionGetDataRequest\032,." - "flyteidl.admin.TaskExecutionGetDataRespo" - "nse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_execut" - "ions/{id.node_execution_id.execution_id." - "project}/{id.node_execution_id.execution" - "_id.domain}/{id.node_execution_id.execut" - "ion_id.name}/{id.node_execution_id.node_" - "id}/{id.task_id.project}/{id.task_id.dom" - "ain}/{id.task_id.name}/{id.task_id.versi" - "on}/{id.retry_attempt}\222AA\032\?Retrieve inpu" - "t and output data from an existing task " - "execution.\022\277\002\n\035UpdateProjectDomainAttrib" - "utes\0224.flyteidl.admin.ProjectDomainAttri" - "butesUpdateRequest\0325.flyteidl.admin.Proj" - "ectDomainAttributesUpdateResponse\"\260\001\202\323\344\223" - "\002O\032J/api/v1/project_domain_attributes/{a" - "ttributes.project}/{attributes.domain}:\001" - "*\222AX\032VUpdate the customized resource att" - "ributes associated with a project-domain" - " combination\022\237\002\n\032GetProjectDomainAttribu" - "tes\0221.flyteidl.admin.ProjectDomainAttrib" - "utesGetRequest\0322.flyteidl.admin.ProjectD" - "omainAttributesGetResponse\"\231\001\202\323\344\223\0026\0224/ap" - "i/v1/project_domain_attributes/{project}" - "/{domain}\222AZ\032XRetrieve the customized re" - "source attributes associated with a proj" - "ect-domain combination\022\251\002\n\035DeleteProject" - "DomainAttributes\0224.flyteidl.admin.Projec" - "tDomainAttributesDeleteRequest\0325.flyteid" - "l.admin.ProjectDomainAttributesDeleteRes" - "ponse\"\232\001\202\323\344\223\0029*4/api/v1/project_domain_a" - "ttributes/{project}/{domain}:\001*\222AX\032VDele" - "te the customized resource attributes as" - "sociated with a project-domain combinati" - "on\022\377\001\n\027UpdateProjectAttributes\022..flyteid" - "l.admin.ProjectAttributesUpdateRequest\032/" - ".flyteidl.admin.ProjectAttributesUpdateR" - "esponse\"\202\001\202\323\344\223\0024\032//api/v1/project_attrib" - "utes/{attributes.project}:\001*\222AE\032CUpdate " - "the customized resource attributes assoc" - "iated with a project\022\351\001\n\024GetProjectAttri" - "butes\022+.flyteidl.admin.ProjectAttributes" - "GetRequest\032,.flyteidl.admin.ProjectAttri" - "butesGetResponse\"v\202\323\344\223\002&\022$/api/v1/projec" - "t_attributes/{project}\222AG\032ERetrieve the " - "customized resource attributes associate" - "d with a project\022\363\001\n\027DeleteProjectAttrib" - "utes\022..flyteidl.admin.ProjectAttributesD" - "eleteRequest\032/.flyteidl.admin.ProjectAtt" - "ributesDeleteResponse\"w\202\323\344\223\002)*$/api/v1/p" - "roject_attributes/{project}:\001*\222AE\032CDelet" - "e the customized resource attributes ass" - "ociated with a project\022\316\002\n\030UpdateWorkflo" - "wAttributes\022/.flyteidl.admin.WorkflowAtt" - "ributesUpdateRequest\0320.flyteidl.admin.Wo" - "rkflowAttributesUpdateResponse\"\316\001\202\323\344\223\002_\032" - "Z/api/v1/workflow_attributes/{attributes" - ".project}/{attributes.domain}/{attribute" - "s.workflow}:\001*\222Af\032dUpdate the customized" - " resource attributes associated with a p" - "roject, domain and workflow combination\022" - "\243\002\n\025GetWorkflowAttributes\022,.flyteidl.adm" - "in.WorkflowAttributesGetRequest\032-.flytei" - "dl.admin.WorkflowAttributesGetResponse\"\254" - "\001\202\323\344\223\002;\0229/api/v1/workflow_attributes/{pr" - "oject}/{domain}/{workflow}\222Ah\032fRetrieve " - "the customized resource attributes assoc" - "iated with a project, domain and workflo" - "w combination\022\255\002\n\030DeleteWorkflowAttribut" - "es\022/.flyteidl.admin.WorkflowAttributesDe" - "leteRequest\0320.flyteidl.admin.WorkflowAtt" - "ributesDeleteResponse\"\255\001\202\323\344\223\002>*9/api/v1/" - "workflow_attributes/{project}/{domain}/{" - "workflow}:\001*\222Af\032dDelete the customized r" - "esource attributes associated with a pro" - "ject, domain and workflow combination\022\341\001" - "\n\027ListMatchableAttributes\022..flyteidl.adm" - "in.ListMatchableAttributesRequest\032/.flyt" - "eidl.admin.ListMatchableAttributesRespon" - "se\"e\202\323\344\223\002\036\022\034/api/v1/matchable_attributes" - "\222A>\032*9/api/v1/workflow_attribut" + "es/{project}/{domain}/{workflow}:\001*\022\240\001\n\027" + "ListMatchableAttributes\022..flyteidl.admin" + ".ListMatchableAttributesRequest\032/.flytei" + "dl.admin.ListMatchableAttributesResponse" + "\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attributes\022\237" + "\001\n\021ListNamedEntities\022&.flyteidl.admin.Na" + "medEntityListRequest\032\037.flyteidl.admin.Na" + "medEntityList\"A\202\323\344\223\002;\0229/api/v1/named_ent" + "ities/{resource_type}/{project}/{domain}" + "\022\247\001\n\016GetNamedEntity\022%.flyteidl.admin.Nam" + "edEntityGetRequest\032\033.flyteidl.admin.Name" + "dEntity\"Q\202\323\344\223\002K\022I/api/v1/named_entities/" + "{resource_type}/{id.project}/{id.domain}" + "/{id.name}\022\276\001\n\021UpdateNamedEntity\022(.flyte" + "idl.admin.NamedEntityUpdateRequest\032).fly" + "teidl.admin.NamedEntityUpdateResponse\"T\202" "\323\344\223\002N\032I/api/v1/named_entities/{resource_" "type}/{id.project}/{id.domain}/{id.name}" - ":\001*\222A1\032/Update the fields associated wit" - "h a NamedEntity\022\277\001\n\nGetVersion\022!.flyteid" - "l.admin.GetVersionRequest\032\".flyteidl.adm" - "in.GetVersionResponse\"j\202\323\344\223\002\021\022\017/api/v1/v" - "ersion\222AP\032NRetrieve the Version (includi" - "ng the Build information) for FlyteAdmi" - "n service\022\376\001\n\024GetDescriptionEntity\022 .fly" - "teidl.admin.ObjectGetRequest\032!.flyteidl." - "admin.DescriptionEntity\"\240\001\202\323\344\223\002a\022_/api/v" - "1/description_entities/{id.resource_type" - "}/{id.project}/{id.domain}/{id.name}/{id" - ".version}\222A6\0324Retrieve an existing descr" - "iption entity description.\022\334\002\n\027ListDescr" - "iptionEntities\022,.flyteidl.admin.Descript" - "ionEntityListRequest\032%.flyteidl.admin.De" - "scriptionEntityList\"\353\001\202\323\344\223\002\232\001\022O/api/v1/d" - "escription_entities/{resource_type}/{id." - "project}/{id.domain}/{id.name}ZG\022E/api/v" - "1/description_entities/{resource_type}/{" - "id.project}/{id.domain}\222AG\032EFetch existi" - "ng description entity definitions matchi" - "ng input filters.B9Z7github.com/flyteorg" - "/flyteidl/gen/pb-go/flyteidl/serviceb\006pr" - "oto3" + ":\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetVe" + "rsionRequest\032\".flyteidl.admin.GetVersion" + "Response\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\304\001\n\024Ge" + "tDescriptionEntity\022 .flyteidl.admin.Obje" + "ctGetRequest\032!.flyteidl.admin.Descriptio" + "nEntity\"g\202\323\344\223\002a\022_/api/v1/description_ent" + "ities/{id.resource_type}/{id.project}/{i" + "d.domain}/{id.name}/{id.version}\022\222\002\n\027Lis" + "tDescriptionEntities\022,.flyteidl.admin.De" + "scriptionEntityListRequest\032%.flyteidl.ad" + "min.DescriptionEntityList\"\241\001\202\323\344\223\002\232\001\022O/ap" + "i/v1/description_entities/{resource_type" + "}/{id.project}/{id.domain}/{id.name}ZG\022E" + "/api/v1/description_entities/{resource_t" + "ype}/{id.project}/{id.domain}B9Z7github." + "com/flyteorg/flyteidl/gen/pb-go/flyteidl" + "/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 15444, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 10496, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[18] = + static constexpr ::google::protobuf::internal::InitFunc deps[17] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fproject_2eproto, @@ -451,9 +327,8 @@ void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { ::AddDescriptors_flyteidl_2fadmin_2fcommon_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fdescription_5fentity_2eproto, ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, - ::AddDescriptors_protoc_2dgen_2dswagger_2foptions_2fannotations_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fadmin_2eproto, deps, 18); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fadmin_2eproto, deps, 17); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h index 1e56a15383d..0a6aec1ea2c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h @@ -46,7 +46,6 @@ #include "flyteidl/admin/common.pb.h" #include "flyteidl/admin/description_entity.pb.h" #include "flyteidl/core/identifier.pb.h" -#include "protoc-gen-swagger/options/annotations.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fadmin_2eproto diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.cc index 66c9e2bf36e..e1fa458ebb7 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.cc @@ -163,51 +163,45 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fservice_2fauth_2eproto[] = "\n\033flyteidl/service/auth.proto\022\020flyteidl." - "service\032\034google/api/annotations.proto\032,p" - "rotoc-gen-swagger/options/annotations.pr" - "oto\"\027\n\025OAuth2MetadataRequest\"\315\002\n\026OAuth2M" - "etadataResponse\022\016\n\006issuer\030\001 \001(\t\022\036\n\026autho" - "rization_endpoint\030\002 \001(\t\022\026\n\016token_endpoin" - "t\030\003 \001(\t\022 \n\030response_types_supported\030\004 \003(" - "\t\022\030\n\020scopes_supported\030\005 \003(\t\022-\n%token_end" - "point_auth_methods_supported\030\006 \003(\t\022\020\n\010jw" - "ks_uri\030\007 \001(\t\022(\n code_challenge_methods_s" - "upported\030\010 \003(\t\022\035\n\025grant_types_supported\030" - "\t \003(\t\022%\n\035device_authorization_endpoint\030\n" - " \001(\t\"\037\n\035PublicClientAuthConfigRequest\"\256\001" - "\n\036PublicClientAuthConfigResponse\022\021\n\tclie" - "nt_id\030\001 \001(\t\022\024\n\014redirect_uri\030\002 \001(\t\022\016\n\006sco" - "pes\030\003 \003(\t\022\"\n\032authorization_metadata_key\030" - "\004 \001(\t\022\035\n\025service_http_endpoint\030\005 \001(\t\022\020\n\010" - "audience\030\006 \001(\t2\374\003\n\023AuthMetadataService\022\365" - "\001\n\021GetOAuth2Metadata\022\'.flyteidl.service." - "OAuth2MetadataRequest\032(.flyteidl.service" - ".OAuth2MetadataResponse\"\214\001\202\323\344\223\002)\022\'/.well" - "-known/oauth-authorization-server\222AZ\032XRe" - "trieves OAuth2 authorization server meta" - "data. This endpoint is anonymously acces" - "sible.\022\354\001\n\025GetPublicClientConfig\022/.flyte" - "idl.service.PublicClientAuthConfigReques" - "t\0320.flyteidl.service.PublicClientAuthCon" - "figResponse\"p\202\323\344\223\002\031\022\027/config/v1/flyte_cl" - "ient\222AN\032LRetrieves public flyte client i" - "nfo. This endpoint is anonymously access" - "ible.B9Z7github.com/flyteorg/flyteidl/ge" - "n/pb-go/flyteidl/serviceb\006proto3" + "service\032\034google/api/annotations.proto\"\027\n" + "\025OAuth2MetadataRequest\"\315\002\n\026OAuth2Metadat" + "aResponse\022\016\n\006issuer\030\001 \001(\t\022\036\n\026authorizati" + "on_endpoint\030\002 \001(\t\022\026\n\016token_endpoint\030\003 \001(" + "\t\022 \n\030response_types_supported\030\004 \003(\t\022\030\n\020s" + "copes_supported\030\005 \003(\t\022-\n%token_endpoint_" + "auth_methods_supported\030\006 \003(\t\022\020\n\010jwks_uri" + "\030\007 \001(\t\022(\n code_challenge_methods_support" + "ed\030\010 \003(\t\022\035\n\025grant_types_supported\030\t \003(\t\022" + "%\n\035device_authorization_endpoint\030\n \001(\t\"\037" + "\n\035PublicClientAuthConfigRequest\"\256\001\n\036Publ" + "icClientAuthConfigResponse\022\021\n\tclient_id\030" + "\001 \001(\t\022\024\n\014redirect_uri\030\002 \001(\t\022\016\n\006scopes\030\003 " + "\003(\t\022\"\n\032authorization_metadata_key\030\004 \001(\t\022" + "\035\n\025service_http_endpoint\030\005 \001(\t\022\020\n\010audien" + "ce\030\006 \001(\t2\315\002\n\023AuthMetadataService\022\227\001\n\021Get" + "OAuth2Metadata\022\'.flyteidl.service.OAuth2" + "MetadataRequest\032(.flyteidl.service.OAuth" + "2MetadataResponse\"/\202\323\344\223\002)\022\'/.well-known/" + "oauth-authorization-server\022\233\001\n\025GetPublic" + "ClientConfig\022/.flyteidl.service.PublicCl" + "ientAuthConfigRequest\0320.flyteidl.service" + ".PublicClientAuthConfigResponse\"\037\202\323\344\223\002\031\022" + "\027/config/v1/flyte_clientB9Z7github.com/f" + "lyteorg/flyteidl/gen/pb-go/flyteidl/serv" + "iceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fauth_2eproto = { false, InitDefaults_flyteidl_2fservice_2fauth_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fauth_2eproto, - "flyteidl/service/auth.proto", &assign_descriptors_table_flyteidl_2fservice_2fauth_2eproto, 1272, + "flyteidl/service/auth.proto", &assign_descriptors_table_flyteidl_2fservice_2fauth_2eproto, 1051, }; void AddDescriptors_flyteidl_2fservice_2fauth_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[2] = + static constexpr ::google::protobuf::internal::InitFunc deps[1] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, - ::AddDescriptors_protoc_2dgen_2dswagger_2foptions_2fannotations_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fauth_2eproto, deps, 2); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fauth_2eproto, deps, 1); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.h index f1ff701b1ed..c188b22a722 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/auth.pb.h @@ -32,7 +32,6 @@ #include // IWYU pragma: export #include #include "google/api/annotations.pb.h" -#include "protoc-gen-swagger/options/annotations.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fauth_2eproto diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc index 1e5336235e6..2461853850a 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc @@ -229,70 +229,61 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fservice_2fdataproxy_2eproto[] = "\n flyteidl/service/dataproxy.proto\022\020flyt" "eidl.service\032\034google/api/annotations.pro" - "to\032,protoc-gen-swagger/options/annotatio" - "ns.proto\032\036google/protobuf/duration.proto" - "\032\037google/protobuf/timestamp.proto\032\036flyte" - "idl/core/identifier.proto\"v\n\034CreateUploa" - "dLocationResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n" - "\nnative_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032." - "google.protobuf.Timestamp\"\224\001\n\033CreateUplo" - "adLocationRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006do" - "main\030\002 \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_" - "in\030\004 \001(\0132\031.google.protobuf.Duration\022\023\n\013c" - "ontent_md5\030\005 \001(\014\"f\n\035CreateDownloadLocati" - "onRequest\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires" - "_in\030\002 \001(\0132\031.google.protobuf.Duration:\002\030\001" - "\"h\n\036CreateDownloadLocationResponse\022\022\n\nsi" - "gned_url\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.goo" - "gle.protobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDow" - "nloadLinkRequest\0225\n\rartifact_type\030\001 \001(\0162" - "\036.flyteidl.service.ArtifactType\022-\n\nexpir" - "es_in\030\002 \001(\0132\031.google.protobuf.Duration\022C" - "\n\021node_execution_id\030\003 \001(\0132&.flyteidl.cor" - "e.NodeExecutionIdentifierH\000B\010\n\006source\"`\n" - "\032CreateDownloadLinkResponse\022\022\n\nsigned_ur" - "l\030\001 \003(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pro" - "tobuf.Timestamp*C\n\014ArtifactType\022\033\n\027ARTIF" - "ACT_TYPE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DE" - "CK\020\0012\236\006\n\020DataProxyService\022\360\001\n\024CreateUplo" - "adLocation\022-.flyteidl.service.CreateUplo" - "adLocationRequest\032..flyteidl.service.Cre" - "ateUploadLocationResponse\"y\202\323\344\223\002#\"\036/api/" - "v1/dataproxy/artifact_urn:\001*\222AM\032KCreates" - " a write-only http location that is acce" - "ssible for tasks at runtime.\022\251\002\n\026CreateD" - "ownloadLocation\022/.flyteidl.service.Creat" - "eDownloadLocationRequest\0320.flyteidl.serv" - "ice.CreateDownloadLocationResponse\"\253\001\210\002\001" - "\202\323\344\223\002 \022\036/api/v1/dataproxy/artifact_urn\222A" - "\177\032}Deprecated: Please use CreateDownload" - "Link instead. Creates a read-only http l" - "ocation that is accessible for tasks at " - "runtime.\022\352\001\n\022CreateDownloadLink\022+.flytei" - "dl.service.CreateDownloadLinkRequest\032,.f" - "lyteidl.service.CreateDownloadLinkRespon" - "se\"y\202\323\344\223\002$\"\037/api/v1/dataproxy/artifact_l" - "ink:\001*\222AL\032JCreates a read-only http loca" - "tion that is accessible for tasks at run" - "time.B9Z7github.com/flyteorg/flyteidl/ge" - "n/pb-go/flyteidl/serviceb\006proto3" + "to\032\036google/protobuf/duration.proto\032\037goog" + "le/protobuf/timestamp.proto\032\036flyteidl/co" + "re/identifier.proto\"v\n\034CreateUploadLocat" + "ionResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnativ" + "e_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032.google" + ".protobuf.Timestamp\"\224\001\n\033CreateUploadLoca" + "tionRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" + " \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001" + "(\0132\031.google.protobuf.Duration\022\023\n\013content" + "_md5\030\005 \001(\014\"f\n\035CreateDownloadLocationRequ" + "est\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires_in\030\002 " + "\001(\0132\031.google.protobuf.Duration:\002\030\001\"h\n\036Cr" + "eateDownloadLocationResponse\022\022\n\nsigned_u" + "rl\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pr" + "otobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDownloadL" + "inkRequest\0225\n\rartifact_type\030\001 \001(\0162\036.flyt" + "eidl.service.ArtifactType\022-\n\nexpires_in\030" + "\002 \001(\0132\031.google.protobuf.Duration\022C\n\021node" + "_execution_id\030\003 \001(\0132&.flyteidl.core.Node" + "ExecutionIdentifierH\000B\010\n\006source\"`\n\032Creat" + "eDownloadLinkResponse\022\022\n\nsigned_url\030\001 \003(" + "\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.protobuf." + "Timestamp*C\n\014ArtifactType\022\033\n\027ARTIFACT_TY" + "PE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\374" + "\003\n\020DataProxyService\022\240\001\n\024CreateUploadLoca" + "tion\022-.flyteidl.service.CreateUploadLoca" + "tionRequest\032..flyteidl.service.CreateUpl" + "oadLocationResponse\")\202\323\344\223\002#\"\036/api/v1/dat" + "aproxy/artifact_urn:\001*\022\246\001\n\026CreateDownloa" + "dLocation\022/.flyteidl.service.CreateDownl" + "oadLocationRequest\0320.flyteidl.service.Cr" + "eateDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022" + "\036/api/v1/dataproxy/artifact_urn\022\233\001\n\022Crea" + "teDownloadLink\022+.flyteidl.service.Create" + "DownloadLinkRequest\032,.flyteidl.service.C" + "reateDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/" + "v1/dataproxy/artifact_link:\001*B9Z7github." + "com/flyteorg/flyteidl/gen/pb-go/flyteidl" + "/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto = { false, InitDefaults_flyteidl_2fservice_2fdataproxy_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fdataproxy_2eproto, - "flyteidl/service/dataproxy.proto", &assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto, 1952, + "flyteidl/service/dataproxy.proto", &assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto, 1616, }; void AddDescriptors_flyteidl_2fservice_2fdataproxy_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[5] = + static constexpr ::google::protobuf::internal::InitFunc deps[4] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, - ::AddDescriptors_protoc_2dgen_2dswagger_2foptions_2fannotations_2eproto, ::AddDescriptors_google_2fprotobuf_2fduration_2eproto, ::AddDescriptors_google_2fprotobuf_2ftimestamp_2eproto, ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto, deps, 5); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto, deps, 4); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h index 2c86fb19346..9a45afda18d 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h @@ -33,7 +33,6 @@ #include #include #include "google/api/annotations.pb.h" -#include "protoc-gen-swagger/options/annotations.pb.h" #include #include #include "flyteidl/core/identifier.pb.h" diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.cc index 26a1e7918c2..de42e3e5276 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.cc @@ -103,32 +103,28 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fservice_2fidentity_2eproto[] = "\n\037flyteidl/service/identity.proto\022\020flyte" "idl.service\032\034google/api/annotations.prot" - "o\032,protoc-gen-swagger/options/annotation" - "s.proto\"\021\n\017UserInfoRequest\"\226\001\n\020UserInfoR" - "esponse\022\017\n\007subject\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\032" - "\n\022preferred_username\030\003 \001(\t\022\022\n\ngiven_name" - "\030\004 \001(\t\022\023\n\013family_name\030\005 \001(\t\022\r\n\005email\030\006 \001" - "(\t\022\017\n\007picture\030\007 \001(\t2\235\001\n\017IdentityService\022" - "\211\001\n\010UserInfo\022!.flyteidl.service.UserInfo" - "Request\032\".flyteidl.service.UserInfoRespo" - "nse\"6\202\323\344\223\002\005\022\003/me\222A(\032&Retrieves authentic" - "ated identity info.B9Z7github.com/flyteo" - "rg/flyteidl/gen/pb-go/flyteidl/serviceb\006" - "proto3" + "o\"\021\n\017UserInfoRequest\"\226\001\n\020UserInfoRespons" + "e\022\017\n\007subject\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\032\n\022pref" + "erred_username\030\003 \001(\t\022\022\n\ngiven_name\030\004 \001(\t" + "\022\023\n\013family_name\030\005 \001(\t\022\r\n\005email\030\006 \001(\t\022\017\n\007" + "picture\030\007 \001(\t2q\n\017IdentityService\022^\n\010User" + "Info\022!.flyteidl.service.UserInfoRequest\032" + "\".flyteidl.service.UserInfoResponse\"\013\202\323\344" + "\223\002\005\022\003/meB9Z7github.com/flyteorg/flyteidl" + "/gen/pb-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fidentity_2eproto = { false, InitDefaults_flyteidl_2fservice_2fidentity_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fidentity_2eproto, - "flyteidl/service/identity.proto", &assign_descriptors_table_flyteidl_2fservice_2fidentity_2eproto, 526, + "flyteidl/service/identity.proto", &assign_descriptors_table_flyteidl_2fservice_2fidentity_2eproto, 435, }; void AddDescriptors_flyteidl_2fservice_2fidentity_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[2] = + static constexpr ::google::protobuf::internal::InitFunc deps[1] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, - ::AddDescriptors_protoc_2dgen_2dswagger_2foptions_2fannotations_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fidentity_2eproto, deps, 2); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fidentity_2eproto, deps, 1); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.h index febbcfc0879..1c4c689f7f5 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/identity.pb.h @@ -32,7 +32,6 @@ #include // IWYU pragma: export #include #include "google/api/annotations.pb.h" -#include "protoc-gen-swagger/options/annotations.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fidentity_2eproto diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/signal.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/signal.grpc.pb.h index 11537973020..7a27d5490f3 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/signal.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/signal.grpc.pb.h @@ -57,6 +57,13 @@ class SignalService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Signal>> PrepareAsyncGetOrCreateSignal(::grpc::ClientContext* context, const ::flyteidl::admin::SignalGetOrCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Signal>>(PrepareAsyncGetOrCreateSignalRaw(context, request, cq)); } + // Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve + // a signal, meaning the first call will create the signal and all subsequent calls will + // fetch the existing signal. This is only useful during Flyte Workflow execution and therefore + // is not exposed to mitigate unintended behavior. + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a signal, creating it if it does not exist." + // }; // Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions. virtual ::grpc::Status ListSignals(::grpc::ClientContext* context, const ::flyteidl::admin::SignalListRequest& request, ::flyteidl::admin::SignalList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::SignalList>> AsyncListSignals(::grpc::ClientContext* context, const ::flyteidl::admin::SignalListRequest& request, ::grpc::CompletionQueue* cq) { @@ -81,6 +88,13 @@ class SignalService final { virtual void GetOrCreateSignal(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Signal* response, std::function) = 0; virtual void GetOrCreateSignal(::grpc::ClientContext* context, const ::flyteidl::admin::SignalGetOrCreateRequest* request, ::flyteidl::admin::Signal* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetOrCreateSignal(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Signal* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve + // a signal, meaning the first call will create the signal and all subsequent calls will + // fetch the existing signal. This is only useful during Flyte Workflow execution and therefore + // is not exposed to mitigate unintended behavior. + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a signal, creating it if it does not exist." + // }; // Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions. virtual void ListSignals(::grpc::ClientContext* context, const ::flyteidl::admin::SignalListRequest* request, ::flyteidl::admin::SignalList* response, std::function) = 0; virtual void ListSignals(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::SignalList* response, std::function) = 0; @@ -169,6 +183,13 @@ class SignalService final { virtual ~Service(); // Fetches or creates a :ref:`ref_flyteidl.admin.Signal`. virtual ::grpc::Status GetOrCreateSignal(::grpc::ServerContext* context, const ::flyteidl::admin::SignalGetOrCreateRequest* request, ::flyteidl::admin::Signal* response); + // Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve + // a signal, meaning the first call will create the signal and all subsequent calls will + // fetch the existing signal. This is only useful during Flyte Workflow execution and therefore + // is not exposed to mitigate unintended behavior. + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a signal, creating it if it does not exist." + // }; // Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions. virtual ::grpc::Status ListSignals(::grpc::ServerContext* context, const ::flyteidl::admin::SignalListRequest* request, ::flyteidl::admin::SignalList* response); // Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc index 59ecaa1bb39..d14ebe8e32d 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.cc @@ -39,44 +39,33 @@ ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_fl const char descriptor_table_protodef_flyteidl_2fservice_2fsignal_2eproto[] = "\n\035flyteidl/service/signal.proto\022\020flyteid" "l.service\032\034google/api/annotations.proto\032" - "\033flyteidl/admin/signal.proto\032,protoc-gen" - "-swagger/options/annotations.proto2\347\005\n\rS" - "ignalService\022\220\001\n\021GetOrCreateSignal\022(.fly" - "teidl.admin.SignalGetOrCreateRequest\032\026.f" - "lyteidl.admin.Signal\"9\222A6\0324Retrieve a si" - "gnal, creating it if it does not exist.\022" - "\216\002\n\013ListSignals\022!.flyteidl.admin.SignalL" - "istRequest\032\032.flyteidl.admin.SignalList\"\277" - "\001\202\323\344\223\002m\022k/api/v1/signals/{workflow_execu" - "tion_id.project}/{workflow_execution_id." - "domain}/{workflow_execution_id.name}\222AI\032" - "GFetch existing signal definitions match" - "ing the input signal id filters.\022\261\002\n\tSet" - "Signal\022 .flyteidl.admin.SignalSetRequest" - "\032!.flyteidl.admin.SignalSetResponse\"\336\001\202\323" - "\344\223\002\024\"\017/api/v1/signals:\001*\222A\300\001\032\023Set a sign" - "al value.JB\n\003400\022;\n9Returned for bad req" - "uest that may have failed validation.Je\n" - "\003409\022^\n\\Returned for a request that refe" - "rences an identical entity that has alre" - "ady been registered.B9Z7github.com/flyte" - "org/flyteidl/gen/pb-go/flyteidl/serviceb" - "\006proto3" + "\033flyteidl/admin/signal.proto2\232\003\n\rSignalS" + "ervice\022W\n\021GetOrCreateSignal\022(.flyteidl.a" + "dmin.SignalGetOrCreateRequest\032\026.flyteidl" + ".admin.Signal\"\000\022\301\001\n\013ListSignals\022!.flytei" + "dl.admin.SignalListRequest\032\032.flyteidl.ad" + "min.SignalList\"s\202\323\344\223\002m\022k/api/v1/signals/" + "{workflow_execution_id.project}/{workflo" + "w_execution_id.domain}/{workflow_executi" + "on_id.name}\022l\n\tSetSignal\022 .flyteidl.admi" + "n.SignalSetRequest\032!.flyteidl.admin.Sign" + "alSetResponse\"\032\202\323\344\223\002\024\"\017/api/v1/signals:\001" + "*B9Z7github.com/flyteorg/flyteidl/gen/pb" + "-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fsignal_2eproto = { false, InitDefaults_flyteidl_2fservice_2fsignal_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fsignal_2eproto, - "flyteidl/service/signal.proto", &assign_descriptors_table_flyteidl_2fservice_2fsignal_2eproto, 967, + "flyteidl/service/signal.proto", &assign_descriptors_table_flyteidl_2fservice_2fsignal_2eproto, 588, }; void AddDescriptors_flyteidl_2fservice_2fsignal_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[3] = + static constexpr ::google::protobuf::internal::InitFunc deps[2] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fsignal_2eproto, - ::AddDescriptors_protoc_2dgen_2dswagger_2foptions_2fannotations_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fsignal_2eproto, deps, 3); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fsignal_2eproto, deps, 2); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.h index 21613d14178..0b0d9c7373c 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/signal.pb.h @@ -31,7 +31,6 @@ #include // IWYU pragma: export #include "google/api/annotations.pb.h" #include "flyteidl/admin/signal.pb.h" -#include "protoc-gen-swagger/options/annotations.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fsignal_2eproto diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 2e659d60bbc..cf6f18c3dc3 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -9,7 +9,6 @@ import ( admin "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin" _ "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/core" proto "github.com/golang/protobuf/proto" - _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -31,227 +30,141 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 3516 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x5d, 0x8c, 0x5c, 0x55, - 0x1d, 0xcf, 0x9d, 0xb6, 0x18, 0x2f, 0x94, 0xb6, 0xa7, 0xd4, 0xb6, 0x97, 0xb6, 0x1c, 0xa6, 0xb4, - 0xdd, 0xdd, 0xee, 0xee, 0x2c, 0x50, 0x5a, 0x5a, 0xa0, 0x70, 0xfb, 0xb5, 0x59, 0x0a, 0x85, 0xac, - 0x88, 0xa4, 0xa2, 0x9b, 0x33, 0x73, 0xcf, 0xcc, 0x9c, 0xf6, 0xce, 0xbd, 0xe3, 0x3d, 0x67, 0x76, - 0x3b, 0x34, 0x4d, 0x48, 0x23, 0x6a, 0x88, 0xbe, 0x5c, 0x13, 0x0d, 0x44, 0x41, 0xf4, 0x09, 0x02, - 0x89, 0x4a, 0xc2, 0x2b, 0xc6, 0xc4, 0x44, 0x0d, 0xe1, 0x85, 0xc4, 0xaf, 0xa8, 0x51, 0xa3, 0x0f, - 0x06, 0x0d, 0x0f, 0x35, 0xf1, 0x45, 0xc4, 0x9c, 0x8f, 0xfb, 0xfd, 0x31, 0x77, 0x96, 0xc5, 0x84, - 0xc4, 0xa7, 0x6e, 0xe7, 0xfc, 0xcf, 0xb9, 0xff, 0xdf, 0xef, 0xff, 0x79, 0xcf, 0x39, 0x57, 0xdf, - 0xd5, 0xb6, 0x87, 0x0c, 0x13, 0xcb, 0x6e, 0x50, 0xec, 0x2d, 0x93, 0x16, 0x6e, 0x20, 0xab, 0x47, - 0x9c, 0xd9, 0xbe, 0xe7, 0x32, 0x17, 0x6c, 0x0e, 0x46, 0x67, 0xd5, 0xa8, 0xb1, 0xab, 0xe3, 0xba, - 0x1d, 0x1b, 0x37, 0x50, 0x9f, 0x34, 0x90, 0xe3, 0xb8, 0x0c, 0x31, 0xe2, 0x3a, 0x54, 0xca, 0x1b, - 0xd1, 0x6a, 0x62, 0x95, 0x46, 0xdf, 0x73, 0x2f, 0xe0, 0x16, 0x53, 0xa3, 0xb3, 0xf9, 0xa3, 0x4b, - 0x96, 0xdb, 0x43, 0xc4, 0x59, 0x42, 0x8c, 0x79, 0xa4, 0x39, 0x60, 0x38, 0x58, 0xed, 0x40, 0x81, - 0x7c, 0x46, 0x70, 0x67, 0x4a, 0x90, 0x21, 0x7a, 0x51, 0x0d, 0xed, 0x4e, 0x0d, 0xad, 0xb8, 0xde, - 0xc5, 0xb6, 0xed, 0xae, 0xa8, 0xe1, 0x89, 0x82, 0xe1, 0xec, 0x33, 0x60, 0x4a, 0xd2, 0x46, 0x03, - 0xa7, 0xd5, 0x5d, 0xea, 0xdb, 0x48, 0x91, 0x65, 0x18, 0x29, 0x09, 0xbc, 0x8c, 0x9d, 0x00, 0xfa, - 0x9e, 0xf4, 0xd8, 0x25, 0xdc, 0x1a, 0x70, 0xe6, 0x0a, 0xa0, 0xf6, 0x10, 0x6b, 0x75, 0x51, 0xd3, - 0xc6, 0x4b, 0x1e, 0xa6, 0xee, 0xc0, 0x6b, 0x61, 0x25, 0xb8, 0x37, 0x25, 0xe8, 0xb8, 0x16, 0x5e, - 0x4a, 0xaf, 0xb6, 0x37, 0x87, 0x8f, 0x8c, 0x50, 0xda, 0x56, 0xcb, 0xd8, 0xa3, 0xd1, 0xe8, 0xcd, - 0xa9, 0xd1, 0x96, 0xdb, 0xeb, 0x15, 0x6a, 0x6b, 0x61, 0xda, 0xf2, 0x48, 0x9f, 0x2f, 0xbe, 0x84, - 0x1d, 0x46, 0xd8, 0x30, 0x03, 0xbb, 0xe5, 0x7a, 0xb8, 0x41, 0x2c, 0x3e, 0xda, 0x26, 0xd8, 0x53, - 0xe3, 0xd3, 0xe2, 0x9f, 0xd6, 0x4c, 0x07, 0x3b, 0x33, 0x74, 0x05, 0x75, 0x3a, 0xd8, 0x6b, 0xb8, - 0x62, 0x1d, 0x9a, 0xf5, 0xae, 0x3b, 0xfe, 0xec, 0xe9, 0x37, 0x98, 0xfc, 0x81, 0x9f, 0x96, 0xce, - 0x08, 0x7e, 0x5a, 0xd3, 0xf5, 0x93, 0x1e, 0x46, 0x0c, 0x3f, 0x86, 0xe8, 0x45, 0x70, 0x6b, 0xe8, - 0x60, 0xb3, 0xd2, 0x89, 0xf9, 0xaf, 0x72, 0x7c, 0x11, 0x7f, 0x71, 0x80, 0x29, 0x33, 0xea, 0x65, - 0x22, 0xb4, 0xef, 0x3a, 0x14, 0xd7, 0xdf, 0xd3, 0x7c, 0xf3, 0x1d, 0xcd, 0xd8, 0x2f, 0x7f, 0x86, - 0xc8, 0xb1, 0xa0, 0x87, 0x3b, 0x84, 0x32, 0xec, 0x41, 0x04, 0x39, 0x97, 0xd0, 0xc2, 0x6d, 0xe2, - 0x10, 0x41, 0xe6, 0x83, 0x27, 0xf4, 0x75, 0x87, 0xe6, 0xe6, 0xc0, 0x3d, 0xfa, 0xd1, 0x45, 0xcc, - 0x06, 0x9e, 0x83, 0x2d, 0xd8, 0x76, 0x3d, 0xd8, 0x44, 0x7c, 0x9a, 0x78, 0x2a, 0x64, 0x5d, 0xc4, - 0x60, 0x0f, 0x0d, 0x61, 0x17, 0x2d, 0x63, 0xd8, 0x46, 0xc4, 0xc6, 0x16, 0x5c, 0x46, 0x36, 0xb1, - 0x90, 0x5c, 0x03, 0xf3, 0x35, 0x8e, 0x82, 0x2f, 0xe8, 0x4f, 0x26, 0xd6, 0x40, 0xc9, 0x15, 0x3c, - 0xdc, 0xc6, 0x1e, 0x76, 0x5a, 0x98, 0x42, 0xe4, 0x40, 0x49, 0x66, 0x0b, 0xd9, 0x50, 0x52, 0x2e, - 0x65, 0xba, 0x88, 0x42, 0x64, 0x7b, 0x18, 0x59, 0x43, 0xd8, 0xc4, 0xd8, 0x09, 0x55, 0xc7, 0xd6, - 0xec, 0xd5, 0x77, 0xfe, 0xf2, 0x8d, 0x1a, 0xa8, 0x6f, 0x14, 0xc1, 0xbb, 0x7c, 0xbb, 0x70, 0x0b, - 0x7a, 0x4c, 0x9b, 0x02, 0x3f, 0xd2, 0xf4, 0x4f, 0xcc, 0x63, 0x26, 0x48, 0x84, 0x69, 0x86, 0x1e, - 0x69, 0xf2, 0xa0, 0x9b, 0xc7, 0x2c, 0xe0, 0xf0, 0xa6, 0x3c, 0x0e, 0xeb, 0xae, 0x6f, 0x1e, 0x30, - 0xf6, 0x2d, 0x62, 0xe6, 0x11, 0xbc, 0xcc, 0x59, 0x83, 0xf8, 0x12, 0xa1, 0x8c, 0x38, 0x9d, 0x0c, - 0x65, 0x42, 0x8f, 0xfb, 0xc1, 0x7d, 0x09, 0x3d, 0x1a, 0x97, 0x89, 0x35, 0xab, 0x22, 0xfc, 0x8a, - 0xf8, 0x8f, 0x4c, 0x0b, 0xf2, 0x6f, 0x07, 0xf5, 0xb0, 0xfc, 0x4b, 0xb9, 0xe9, 0x15, 0xf0, 0x07, - 0x4d, 0xbf, 0xfe, 0x21, 0x42, 0x85, 0xd6, 0x0b, 0x16, 0x05, 0x73, 0x69, 0xb5, 0xce, 0xa1, 0x1e, - 0xb6, 0x4e, 0x0b, 0x6e, 0x16, 0x42, 0xc7, 0xe3, 0x33, 0x02, 0x20, 0x93, 0x95, 0x67, 0xd4, 0x3d, - 0xdf, 0x3c, 0x65, 0x9c, 0x38, 0x83, 0x59, 0xab, 0x5b, 0x88, 0x0b, 0x46, 0xee, 0x4d, 0xa1, 0x08, - 0x60, 0x2e, 0x44, 0x9c, 0xfe, 0x80, 0xc1, 0x36, 0xb1, 0x19, 0xf6, 0xa8, 0x84, 0xbe, 0x0f, 0xec, - 0x8d, 0x43, 0x5f, 0x22, 0x16, 0x6d, 0x5c, 0x8e, 0xa0, 0x2b, 0xdc, 0xe0, 0x5d, 0x4d, 0xff, 0x64, - 0x00, 0x90, 0x82, 0xbd, 0x69, 0x65, 0x17, 0x55, 0x62, 0x88, 0x23, 0xda, 0x91, 0x67, 0x1a, 0x01, - 0xe0, 0x05, 0xcd, 0x37, 0x8f, 0x1a, 0x47, 0xca, 0x11, 0x94, 0xab, 0xfd, 0x24, 0x98, 0x1b, 0xd7, - 0x62, 0xe7, 0x27, 0xc0, 0xfe, 0x6a, 0x73, 0xc0, 0x6f, 0x6a, 0xfa, 0x8d, 0x32, 0xe2, 0x3e, 0xab, - 0x72, 0x30, 0xd8, 0x97, 0x46, 0x13, 0x8c, 0x24, 0x63, 0x7a, 0xff, 0x28, 0x31, 0x15, 0xd7, 0xff, - 0xd2, 0x7c, 0xf3, 0x57, 0x9a, 0x31, 0x95, 0x1f, 0xd7, 0x41, 0xe6, 0xff, 0x38, 0xc7, 0xf6, 0xa7, - 0xea, 0x5b, 0x02, 0xb6, 0x03, 0x38, 0x22, 0xbe, 0x7f, 0xa2, 0xe9, 0xd7, 0xcf, 0x63, 0x16, 0x12, - 0x3b, 0x3a, 0xc6, 0x77, 0x14, 0x71, 0x5a, 0x5f, 0xf1, 0xcd, 0x83, 0xc6, 0x64, 0x6e, 0x9c, 0xe7, - 0x51, 0x28, 0xf4, 0x3a, 0x09, 0xcc, 0x8c, 0x5e, 0x63, 0xc7, 0xfb, 0x3f, 0x34, 0x7d, 0x13, 0x77, - 0xe5, 0x40, 0x93, 0x8f, 0x3c, 0xe6, 0xaf, 0xf8, 0xe6, 0x59, 0x63, 0x41, 0x46, 0xcc, 0x08, 0x98, - 0x95, 0x43, 0x7f, 0x12, 0x1c, 0x48, 0x33, 0x51, 0x14, 0xfe, 0x1f, 0x68, 0xfa, 0xc6, 0x38, 0xde, - 0x8a, 0x29, 0x60, 0x57, 0x91, 0xe5, 0x04, 0xa6, 0x57, 0x34, 0xdf, 0xbc, 0xcf, 0xb8, 0x27, 0x95, - 0x06, 0x72, 0x10, 0x95, 0xc3, 0xb0, 0xc0, 0xa1, 0xd5, 0x18, 0xf4, 0xfc, 0x34, 0x98, 0xaa, 0x3e, - 0x0f, 0xfc, 0xb5, 0xa6, 0x6f, 0x96, 0xc1, 0xfa, 0x90, 0x68, 0xb6, 0x1e, 0xb5, 0x91, 0x03, 0x0e, - 0xa4, 0xf1, 0x45, 0x63, 0xc9, 0xb4, 0x30, 0x31, 0x5a, 0x50, 0x25, 0x86, 0xf7, 0x35, 0xdf, 0xfc, - 0xad, 0x66, 0xcc, 0xe4, 0x27, 0x06, 0xd9, 0xe8, 0x41, 0xde, 0xe8, 0x7d, 0x9c, 0x73, 0xc3, 0xce, - 0xfa, 0x4d, 0x01, 0xf5, 0xb1, 0xd6, 0x55, 0xa4, 0x87, 0xb7, 0x34, 0x7d, 0xe3, 0x3c, 0x66, 0x31, - 0x92, 0x47, 0x27, 0x08, 0xa3, 0x98, 0x5d, 0x1e, 0x38, 0xb3, 0xc6, 0x74, 0x6e, 0x8a, 0x28, 0x20, - 0x53, 0x68, 0x78, 0x06, 0x9c, 0xca, 0xd3, 0x70, 0xec, 0x44, 0x71, 0x4d, 0xd3, 0xb7, 0xce, 0x63, - 0x66, 0xb6, 0x18, 0x59, 0x2e, 0xf5, 0x9c, 0xb4, 0x44, 0x15, 0x6c, 0xdf, 0xd4, 0x7c, 0xf3, 0x61, - 0xe3, 0x6c, 0x08, 0x8e, 0x75, 0x31, 0x44, 0x62, 0x9d, 0x04, 0x36, 0xa5, 0x0c, 0xa4, 0x7d, 0xdc, - 0xe2, 0x69, 0xc1, 0x82, 0xcd, 0xa1, 0x0a, 0xa4, 0xc0, 0xb4, 0x89, 0x80, 0x7a, 0x00, 0x1c, 0x0f, - 0xb0, 0xcb, 0xd5, 0x96, 0xc6, 0xa4, 0x80, 0x77, 0x0b, 0xdb, 0x78, 0x88, 0xa7, 0x41, 0x51, 0x70, - 0x70, 0x14, 0xee, 0x78, 0xfa, 0xd8, 0x53, 0x8c, 0x5d, 0x24, 0x90, 0x2f, 0x69, 0xb1, 0xac, 0x58, - 0x0e, 0x9e, 0x56, 0x46, 0x3f, 0x07, 0x66, 0x4b, 0xd1, 0x67, 0x93, 0xe3, 0x35, 0x4d, 0xdf, 0xc2, - 0xf5, 0x89, 0xb4, 0xfb, 0xc8, 0xcb, 0xc1, 0xd3, 0x71, 0xe4, 0x23, 0x1c, 0xba, 0x72, 0x3d, 0x88, - 0x25, 0xc4, 0x18, 0xe4, 0xa2, 0x92, 0xf0, 0xb5, 0x9a, 0x2c, 0x81, 0x71, 0xeb, 0x56, 0x2a, 0x0a, - 0xa3, 0xac, 0xfa, 0xba, 0xe6, 0x9b, 0x0f, 0x18, 0xc7, 0x2b, 0x61, 0x2b, 0x07, 0x74, 0x01, 0x1c, - 0x59, 0x65, 0x10, 0x9f, 0x6f, 0x80, 0x99, 0xb1, 0xa6, 0x82, 0x1f, 0x5f, 0xa7, 0x6f, 0xfe, 0x4c, - 0xdf, 0xaa, 0x5c, 0x1f, 0xa4, 0x6c, 0x85, 0xfa, 0x10, 0x08, 0xaa, 0xfa, 0xf0, 0xeb, 0x0d, 0xbe, - 0xf9, 0xcc, 0x06, 0xe3, 0xea, 0x06, 0xf9, 0xbb, 0x70, 0x7b, 0xca, 0x10, 0x1b, 0x50, 0xe8, 0xb6, - 0xab, 0xa4, 0x37, 0x68, 0x32, 0xd8, 0x73, 0x29, 0x83, 0xae, 0x93, 0x9f, 0x26, 0x64, 0xd2, 0xef, - 0x90, 0x65, 0xec, 0xc0, 0xc0, 0xee, 0xd3, 0x50, 0xe2, 0x9c, 0x86, 0x82, 0x1e, 0xd8, 0x42, 0x0e, - 0x6c, 0x86, 0xf1, 0x86, 0x18, 0x7f, 0x17, 0x25, 0x3d, 0x3c, 0x0b, 0x17, 0xda, 0x90, 0x75, 0x09, - 0x85, 0x2d, 0x64, 0xdb, 0x90, 0x62, 0x46, 0x53, 0x45, 0x8b, 0xb9, 0xe1, 0x24, 0xc7, 0x8a, 0x74, - 0x0d, 0x9e, 0x4d, 0xa2, 0xc2, 0x21, 0xc5, 0xa6, 0x05, 0x40, 0x0f, 0xd3, 0x81, 0xcd, 0x38, 0xc0, - 0x68, 0xf1, 0x15, 0x62, 0xdb, 0x5c, 0x07, 0x51, 0x71, 0xb8, 0x50, 0xdb, 0xf5, 0x7a, 0xd8, 0xb3, - 0x87, 0x79, 0x59, 0x20, 0x10, 0xee, 0x21, 0x0b, 0x43, 0xe2, 0xc4, 0x54, 0x88, 0xd2, 0x42, 0x5c, - 0x9e, 0x38, 0xf2, 0x49, 0x41, 0x86, 0x48, 0xcc, 0x97, 0xb3, 0x67, 0xe1, 0x82, 0x23, 0x9e, 0x2b, - 0xb6, 0x56, 0xaa, 0xa9, 0xd1, 0x45, 0x16, 0x44, 0x90, 0xb6, 0xba, 0xd8, 0x1a, 0xd8, 0x18, 0x22, - 0x4a, 0xdd, 0x16, 0x41, 0x0c, 0x5b, 0x90, 0xf0, 0x67, 0xb0, 0x2e, 0x24, 0x6c, 0x5a, 0x3e, 0x39, - 0x14, 0x0a, 0x1e, 0x6d, 0x11, 0x8a, 0x9a, 0x36, 0xb6, 0x14, 0xc7, 0x38, 0xaa, 0xc4, 0xa5, 0x9a, - 0x13, 0x0a, 0x9b, 0x98, 0x53, 0x4c, 0x31, 0x4b, 0xb1, 0x2f, 0xca, 0x74, 0xae, 0x36, 0x31, 0x55, - 0x70, 0x56, 0x13, 0xec, 0x48, 0x45, 0x44, 0x8c, 0x2d, 0x18, 0x6b, 0x52, 0x28, 0x79, 0xe9, 0xff, - 0x9e, 0xa6, 0x6f, 0x92, 0x6d, 0xcf, 0xe9, 0x60, 0x7b, 0x08, 0x64, 0xde, 0xa7, 0xc2, 0xa1, 0x64, - 0x83, 0x75, 0x60, 0xa4, 0x9c, 0x8a, 0x9f, 0xe3, 0xbe, 0xb9, 0xc7, 0xd8, 0x15, 0x74, 0x57, 0x51, - 0xb7, 0x19, 0xed, 0x48, 0x09, 0x58, 0xdb, 0xeb, 0x20, 0x80, 0x15, 0x8e, 0x88, 0xfe, 0xe4, 0x87, - 0x9a, 0xbe, 0x65, 0x11, 0x4b, 0xa8, 0x91, 0x9a, 0x13, 0x85, 0x8f, 0x0f, 0x64, 0xc7, 0x56, 0x74, - 0xc1, 0x37, 0xa1, 0xb1, 0x27, 0x98, 0x5e, 0xa2, 0x2a, 0xac, 0xdf, 0x9c, 0x55, 0xb5, 0xe1, 0xa9, - 0x89, 0x5c, 0xe7, 0xef, 0x6c, 0xd0, 0x37, 0x2f, 0xe2, 0x96, 0xbb, 0x8c, 0xbd, 0x48, 0xe5, 0x03, - 0x25, 0x2a, 0x0b, 0xd1, 0xb1, 0x35, 0x7e, 0x63, 0xbd, 0x6f, 0x7e, 0x7d, 0xbd, 0xf1, 0xec, 0xfa, - 0x45, 0xdc, 0x12, 0x23, 0xdc, 0xbd, 0xfa, 0x1e, 0x5e, 0x26, 0xee, 0x80, 0xda, 0xc3, 0x19, 0x6f, - 0xe0, 0xe4, 0x80, 0x90, 0x91, 0x23, 0x7c, 0xcb, 0x75, 0xec, 0x21, 0x4f, 0x66, 0x1e, 0x0b, 0x86, - 0x9d, 0x0e, 0x6c, 0x7b, 0x6e, 0x4f, 0xf8, 0xa1, 0x8d, 0x28, 0x83, 0x17, 0x1d, 0x77, 0xc5, 0x11, - 0xdd, 0xeb, 0xc0, 0xc3, 0xb0, 0xef, 0x12, 0x87, 0x89, 0x40, 0x54, 0x3a, 0xc3, 0x9e, 0x6b, 0xe1, - 0x69, 0x38, 0xa0, 0xbc, 0xd6, 0xb5, 0xc4, 0xae, 0x1d, 0x6c, 0x75, 0x91, 0xd3, 0xe1, 0x1e, 0x1f, - 0x94, 0xfd, 0x3e, 0xf2, 0x50, 0x0f, 0xf3, 0x32, 0x01, 0x5d, 0x0f, 0x0e, 0xa2, 0x3c, 0x1a, 0x64, - 0x21, 0x57, 0x06, 0x58, 0xc4, 0x33, 0x7c, 0x8c, 0x87, 0x14, 0xa1, 0x10, 0x5f, 0x62, 0x1e, 0xee, - 0x61, 0x7b, 0xc8, 0x1f, 0xd1, 0x1e, 0xd8, 0x3c, 0xa2, 0x3c, 0xf5, 0x68, 0xa1, 0x28, 0x1d, 0x52, - 0x86, 0x7b, 0x10, 0x7b, 0x9e, 0xeb, 0x51, 0x11, 0x65, 0xcd, 0xe1, 0x53, 0xc8, 0x61, 0xc4, 0xe1, - 0x3d, 0xf7, 0xc0, 0x66, 0x14, 0xda, 0xe4, 0x22, 0x86, 0x33, 0xf0, 0x21, 0x97, 0x8a, 0x94, 0x7d, - 0xf6, 0x6e, 0x0a, 0x5b, 0xf6, 0x80, 0xb7, 0xc7, 0xd3, 0xb0, 0x39, 0xe8, 0x50, 0x1e, 0xc2, 0x7d, - 0x1b, 0x31, 0x9e, 0x48, 0xb8, 0x82, 0xc4, 0xa1, 0x0c, 0x35, 0x89, 0x4d, 0xd8, 0x70, 0x1a, 0xf6, - 0x10, 0xaf, 0x76, 0x38, 0x60, 0x80, 0xf2, 0xc4, 0xbc, 0xe2, 0x50, 0xe6, 0x61, 0x14, 0x3e, 0x3c, - 0x18, 0x83, 0x13, 0xf1, 0x31, 0xb9, 0x4d, 0x49, 0x27, 0xa7, 0xf9, 0x9a, 0x94, 0xf4, 0xfa, 0xf6, - 0x30, 0xae, 0x7d, 0xe4, 0x3a, 0xd2, 0x20, 0xea, 0x05, 0xa1, 0x89, 0x5b, 0x68, 0x40, 0x31, 0x57, - 0xd4, 0xc3, 0xcc, 0x1b, 0x42, 0x7c, 0xa9, 0x8b, 0x06, 0x54, 0x18, 0x4e, 0xa4, 0xcf, 0xae, 0x3b, - 0xb0, 0x2d, 0xd8, 0x72, 0x7b, 0x7d, 0x1b, 0x33, 0x0c, 0x49, 0x1b, 0xf2, 0x66, 0xd4, 0x82, 0xa8, - 0x83, 0x88, 0x72, 0xd0, 0x5b, 0xea, 0x46, 0xae, 0x83, 0x8a, 0x07, 0xab, 0x2d, 0x81, 0x1b, 0xe6, - 0x31, 0x8b, 0x7c, 0xf3, 0x60, 0xd1, 0x7b, 0x63, 0x28, 0x12, 0xeb, 0xfe, 0x77, 0x16, 0xfa, 0x67, - 0xfd, 0x82, 0x6f, 0x4e, 0x19, 0x13, 0xe5, 0xfb, 0x03, 0xa9, 0x68, 0x3a, 0x02, 0xee, 0xca, 0x51, - 0xb6, 0x42, 0xcf, 0xfb, 0x4b, 0x4d, 0xdf, 0x24, 0x6b, 0x72, 0x95, 0xec, 0x95, 0x2c, 0xff, 0x07, - 0x46, 0xca, 0xa9, 0x10, 0xf3, 0x7c, 0xb3, 0x61, 0xcc, 0xa8, 0xd2, 0x1f, 0x85, 0x50, 0x13, 0xdb, - 0xae, 0xd3, 0x11, 0x9b, 0x68, 0x2e, 0x54, 0x7a, 0xaa, 0x8a, 0x2d, 0x51, 0x1d, 0x33, 0x56, 0x87, - 0x8a, 0x5b, 0xe7, 0x6a, 0x4d, 0xdf, 0x1c, 0xb7, 0xce, 0x29, 0xc4, 0x10, 0x68, 0x54, 0xb1, 0x10, - 0x97, 0x0c, 0x20, 0xce, 0x55, 0x9f, 0xa0, 0xb0, 0x3e, 0xab, 0xf9, 0xe6, 0x69, 0xe3, 0x64, 0x68, - 0x3d, 0x19, 0xbc, 0xdc, 0xe9, 0xdc, 0x01, 0xe3, 0x7f, 0x5a, 0x88, 0x21, 0x19, 0x75, 0x55, 0x0c, - 0x7b, 0x2f, 0x38, 0x16, 0x50, 0xc0, 0x27, 0x8e, 0x69, 0xdd, 0x9f, 0x69, 0xfa, 0x8d, 0xbc, 0x3b, - 0x0d, 0xb5, 0xad, 0xd8, 0xec, 0xee, 0x2e, 0xb4, 0x6c, 0xb0, 0x95, 0x7b, 0xaf, 0x71, 0xac, 0x68, - 0x07, 0x24, 0x16, 0x93, 0x65, 0x6d, 0xee, 0x0c, 0x38, 0x38, 0x86, 0x71, 0xc1, 0x3f, 0x35, 0x1d, - 0x3c, 0x86, 0xbd, 0x1e, 0x71, 0x12, 0xbe, 0x3a, 0x59, 0xa8, 0x69, 0x28, 0x1c, 0x80, 0x9a, 0xaa, - 0x22, 0xaa, 0xac, 0xf8, 0x65, 0xcd, 0x37, 0x4f, 0x1a, 0x66, 0x38, 0x10, 0x7f, 0x4f, 0xcb, 0x29, - 0x06, 0x51, 0x3b, 0x46, 0x1c, 0xd5, 0xe5, 0x88, 0x67, 0x2a, 0x37, 0x9e, 0x5a, 0xbd, 0x1b, 0xff, - 0x5b, 0x13, 0x6e, 0x7c, 0xce, 0xb5, 0x70, 0x49, 0x11, 0x4c, 0x0c, 0xc7, 0x92, 0xcc, 0xee, 0x52, - 0xc1, 0xfa, 0x8b, 0x9a, 0x6f, 0xee, 0x37, 0x6e, 0xcb, 0xcd, 0x34, 0x8e, 0x6b, 0xe1, 0xb4, 0x33, - 0xf6, 0x81, 0x13, 0x00, 0x49, 0x1e, 0x9a, 0x49, 0x34, 0xe1, 0x7f, 0x97, 0xd2, 0xd0, 0x12, 0x23, - 0x71, 0x9c, 0x89, 0x81, 0xa8, 0xbf, 0x12, 0xab, 0x13, 0xeb, 0x0a, 0x78, 0xbe, 0xa6, 0x03, 0xee, - 0x72, 0x09, 0xbd, 0x69, 0xb6, 0x71, 0x49, 0x8c, 0xc7, 0x3d, 0xf9, 0xd6, 0x91, 0x92, 0xf5, 0x37, - 0x34, 0xdf, 0xbc, 0xdb, 0x38, 0x9c, 0x72, 0xe7, 0x24, 0xfe, 0x72, 0x57, 0x1e, 0x00, 0x5a, 0xc8, - 0x4b, 0xb8, 0x47, 0x59, 0xc0, 0x4e, 0xfe, 0x78, 0xc8, 0x51, 0xfe, 0xb0, 0x8c, 0xee, 0xf7, 0xd6, - 0xeb, 0x3b, 0xb3, 0xe4, 0x9c, 0x71, 0x3d, 0x71, 0x0a, 0xd5, 0x28, 0x45, 0xae, 0xa4, 0xc6, 0xa4, - 0xea, 0xfd, 0x75, 0xbe, 0x39, 0x6f, 0x9c, 0x96, 0x54, 0xb5, 0xba, 0xc4, 0xb6, 0x32, 0x3c, 0xc9, - 0xfe, 0x4d, 0xee, 0x57, 0x88, 0x3e, 0x3c, 0x0c, 0x0d, 0x71, 0x52, 0x92, 0xf2, 0xa8, 0x57, 0xd7, - 0x81, 0x97, 0xd7, 0x05, 0xdc, 0x89, 0x05, 0x3d, 0x9c, 0x3e, 0x6c, 0xa5, 0x8d, 0xcb, 0xc9, 0x1f, - 0x96, 0x02, 0x0f, 0x49, 0xfc, 0x52, 0xc0, 0xef, 0xd8, 0x53, 0x43, 0xea, 0xc7, 0x9e, 0xa9, 0xfc, - 0xb7, 0xca, 0xbc, 0xc0, 0xc1, 0xf3, 0xa4, 0xd5, 0x81, 0x56, 0x29, 0x86, 0x40, 0xa6, 0x44, 0xd9, - 0x40, 0xa4, 0x50, 0xab, 0x40, 0x20, 0x78, 0x99, 0xc9, 0x93, 0x11, 0xdd, 0xd3, 0x12, 0x62, 0x0c, - 0xf7, 0xfa, 0xec, 0x0a, 0x78, 0xbd, 0xa6, 0xdf, 0x94, 0xce, 0x46, 0xa2, 0xb0, 0x1e, 0x1c, 0x95, - 0x91, 0xe2, 0x45, 0x75, 0xba, 0x9a, 0xb0, 0x4a, 0xc5, 0x6f, 0x6a, 0xbe, 0x69, 0x1a, 0xf7, 0x8f, - 0x5b, 0x50, 0xf3, 0xf2, 0x57, 0x2c, 0x4e, 0x45, 0x31, 0xfd, 0x1f, 0x25, 0xb1, 0x6f, 0x69, 0xfa, - 0xa6, 0x45, 0xb5, 0x97, 0xfc, 0xa8, 0x5c, 0x31, 0xdb, 0x63, 0xa9, 0x81, 0x40, 0xae, 0xb0, 0xc7, - 0xca, 0xc8, 0x29, 0x9a, 0xee, 0xf4, 0xcd, 0x6d, 0xc6, 0xd6, 0xc5, 0x68, 0xd3, 0x3d, 0xb8, 0x38, - 0x22, 0x90, 0x6f, 0xab, 0x6f, 0x0e, 0x90, 0xab, 0xdf, 0xc5, 0x6b, 0xe1, 0x57, 0x34, 0x7d, 0xa3, - 0x6c, 0xcb, 0x02, 0xbd, 0xb6, 0x17, 0x3c, 0xcf, 0xd8, 0x57, 0x30, 0x90, 0x6a, 0xf5, 0x0e, 0xfb, - 0xe6, 0x56, 0x63, 0x8b, 0x6a, 0xf5, 0x52, 0x4a, 0x18, 0xc6, 0xb6, 0xb4, 0x12, 0x9c, 0x28, 0x51, - 0xe7, 0x9e, 0xd1, 0xf4, 0x1b, 0x78, 0x8a, 0x51, 0xab, 0x52, 0x50, 0x2f, 0x78, 0x5e, 0xe9, 0x59, - 0x6d, 0x30, 0xbb, 0x7e, 0xc4, 0x37, 0x77, 0x19, 0x86, 0xcc, 0x53, 0xd1, 0x36, 0x7e, 0xa0, 0x8e, - 0x4a, 0xdb, 0x00, 0x64, 0x48, 0x01, 0xbf, 0xd7, 0xf4, 0xad, 0xc9, 0x33, 0xd4, 0xd3, 0xcb, 0xd8, - 0x61, 0x60, 0x66, 0x64, 0x23, 0x28, 0xe4, 0x02, 0xcd, 0x66, 0xab, 0x8a, 0x2b, 0xda, 0x3a, 0xc2, - 0xc7, 0x4b, 0xde, 0xef, 0xd5, 0x7e, 0x0d, 0x7f, 0xfd, 0xf0, 0x2c, 0xee, 0xdf, 0x08, 0xf6, 0xbb, - 0x88, 0x62, 0xc8, 0x3c, 0xe4, 0xd0, 0xd8, 0x11, 0xc0, 0xee, 0xfa, 0x8e, 0xb0, 0xd9, 0xe0, 0x53, - 0x68, 0xf2, 0x1c, 0xf3, 0xe7, 0xe1, 0x6e, 0x85, 0x08, 0x3a, 0x81, 0x6d, 0xb2, 0x34, 0x1e, 0x13, - 0xb8, 0xa6, 0xaa, 0x88, 0x2a, 0x4c, 0x4b, 0xe2, 0x9c, 0x2c, 0xc4, 0x94, 0x0c, 0xc8, 0xca, 0x78, - 0x62, 0x87, 0x2e, 0x0a, 0x0f, 0x5f, 0x28, 0x85, 0x85, 0x97, 0xb2, 0x02, 0x2c, 0x62, 0xa8, 0x1a, - 0x96, 0x3c, 0xd1, 0x7c, 0x2c, 0xc9, 0x52, 0xf6, 0x21, 0xb0, 0x84, 0xf7, 0x47, 0x5e, 0x5e, 0x27, - 0xfa, 0xbc, 0x84, 0x0a, 0xd9, 0x3e, 0x2f, 0x31, 0x5c, 0xd6, 0xe7, 0x25, 0x04, 0xeb, 0x6f, 0xd5, - 0x8a, 0xfb, 0xbc, 0xbc, 0xaa, 0xfc, 0xed, 0x1a, 0x78, 0xae, 0x96, 0xb8, 0x5f, 0x91, 0x4a, 0x92, - 0x95, 0xab, 0xef, 0x18, 0xe5, 0xb6, 0x72, 0x7d, 0x1d, 0x51, 0x50, 0x73, 0x2b, 0x68, 0x5e, 0xc9, - 0xcc, 0xd6, 0xc8, 0xdc, 0xa2, 0x98, 0xad, 0x82, 0xef, 0xa8, 0xa6, 0x34, 0x41, 0x72, 0x4e, 0x53, - 0x9a, 0x18, 0x2f, 0xed, 0xb4, 0x32, 0x92, 0xe2, 0x06, 0x55, 0xb6, 0x29, 0x4d, 0x1a, 0xab, 0xbc, - 0x29, 0x7d, 0x4d, 0x03, 0xaf, 0x68, 0x85, 0x46, 0xac, 0x6c, 0xc1, 0xaa, 0xe6, 0xab, 0x66, 0xbb, - 0x62, 0xc3, 0x81, 0x3f, 0xae, 0x13, 0xbd, 0x45, 0x82, 0x8a, 0xfc, 0xde, 0x22, 0x1d, 0x05, 0xa5, - 0xbd, 0x45, 0xbe, 0xb0, 0x0a, 0xeb, 0xbf, 0xd7, 0x56, 0xd5, 0x5b, 0xe4, 0xc5, 0xcc, 0x4b, 0x35, - 0xf0, 0x42, 0x2d, 0xd1, 0x5d, 0xfc, 0x3f, 0x70, 0xd2, 0x81, 0xf3, 0x66, 0x4d, 0xdf, 0x9d, 0x68, - 0x37, 0x4e, 0x89, 0x25, 0xcd, 0xf0, 0xa2, 0x28, 0x38, 0x54, 0x50, 0xd1, 0xd3, 0x82, 0xc9, 0x8d, - 0xa8, 0xbb, 0xc6, 0x9c, 0xa5, 0xac, 0xff, 0x03, 0xcd, 0x37, 0x9f, 0x30, 0x1e, 0x8f, 0x1d, 0x49, - 0xb5, 0x06, 0x94, 0xb9, 0x3d, 0xf2, 0x14, 0xb6, 0x60, 0x70, 0x69, 0x14, 0x46, 0xd7, 0x58, 0x33, - 0x67, 0x0d, 0x61, 0x7f, 0x33, 0x23, 0xb9, 0x81, 0x2d, 0xb7, 0xd7, 0x24, 0x8e, 0xb8, 0x99, 0x20, - 0x9c, 0xe2, 0x11, 0xe3, 0xc1, 0x54, 0x87, 0x91, 0xbd, 0xa9, 0xdb, 0xb8, 0x9c, 0xbc, 0x28, 0xab, - 0x88, 0x8f, 0xfd, 0xa8, 0x88, 0xe7, 0x65, 0xe2, 0xc5, 0x9a, 0x6e, 0xcc, 0x63, 0x56, 0x44, 0xdf, - 0xed, 0x15, 0x89, 0x88, 0x95, 0x8e, 0x3b, 0xc6, 0x99, 0xa2, 0x88, 0x7b, 0x4e, 0xf3, 0xcd, 0xf3, - 0xc6, 0x13, 0x89, 0x13, 0xfc, 0xb5, 0xa6, 0xee, 0x70, 0x74, 0x3f, 0xa6, 0x84, 0xba, 0xec, 0x01, - 0xef, 0xcb, 0x35, 0x7d, 0xf7, 0x29, 0x6c, 0xe3, 0x0f, 0xef, 0x63, 0x72, 0x95, 0x71, 0x7d, 0x2c, - 0x98, 0xa5, 0xa8, 0x7a, 0x5e, 0xfa, 0x98, 0xfc, 0xf5, 0x23, 0x21, 0xea, 0xe8, 0xd4, 0xaa, 0x88, - 0xe2, 0xde, 0xf4, 0x81, 0xa6, 0x6f, 0x4f, 0xc4, 0x63, 0x8c, 0xa5, 0xd9, 0x02, 0xbc, 0x45, 0x31, - 0xd8, 0xa8, 0x2c, 0xaf, 0x98, 0xb9, 0x2a, 0x37, 0x4a, 0xd7, 0x20, 0xfa, 0x04, 0x0d, 0x87, 0x8c, - 0x46, 0x9a, 0x86, 0x11, 0x31, 0xc6, 0x19, 0xf8, 0x9b, 0x26, 0x8a, 0x4e, 0x16, 0xfe, 0xc1, 0x91, - 0x70, 0x62, 0x31, 0x34, 0x5d, 0x4d, 0x58, 0x01, 0x5f, 0x16, 0x7b, 0x28, 0x6b, 0x12, 0x3c, 0x02, - 0xf9, 0x7e, 0x70, 0x5b, 0x19, 0xf2, 0x00, 0x2e, 0xb8, 0xa6, 0xe9, 0xdb, 0x13, 0x91, 0x31, 0x96, - 0xb5, 0x93, 0xd1, 0xd0, 0xa8, 0x2c, 0xaf, 0x40, 0xaf, 0x08, 0x63, 0xaf, 0x41, 0x18, 0xc8, 0x3b, - 0x80, 0x53, 0x95, 0x20, 0x73, 0x0b, 0xbf, 0x5d, 0xd3, 0x77, 0x48, 0x1f, 0x0b, 0x5e, 0xc1, 0x62, - 0xb0, 0x0b, 0xcf, 0x03, 0x8a, 0xbc, 0x7c, 0xae, 0xfa, 0x04, 0x05, 0xfc, 0x6d, 0xcd, 0x37, 0xdb, - 0x86, 0xb5, 0x06, 0x6e, 0x1e, 0xdc, 0x66, 0x10, 0xfd, 0x49, 0xf8, 0x86, 0x98, 0x4e, 0x07, 0x4b, - 0xc6, 0xf9, 0xcc, 0xf5, 0xc8, 0x55, 0x14, 0x9b, 0xc4, 0x6f, 0xc1, 0x42, 0x82, 0xd0, 0xef, 0xd7, - 0xf4, 0x6d, 0xb1, 0x9b, 0xb0, 0x31, 0x36, 0xa7, 0x47, 0x93, 0x13, 0x0b, 0x9a, 0x99, 0x8a, 0xd2, - 0x8a, 0xc7, 0x57, 0x35, 0xdf, 0xec, 0x1a, 0xed, 0x35, 0x09, 0x9b, 0x6a, 0x4c, 0xde, 0x03, 0x8e, - 0x96, 0x32, 0x99, 0x49, 0xa9, 0xd1, 0x6e, 0xed, 0x15, 0xf0, 0x5a, 0x4d, 0xdf, 0x21, 0xbd, 0x7d, - 0x75, 0x6e, 0x97, 0x0c, 0xb7, 0xb9, 0xea, 0x13, 0x14, 0x5d, 0xaf, 0x49, 0xb7, 0x5b, 0x83, 0x80, - 0xab, 0x46, 0xd6, 0xf1, 0xa9, 0xd5, 0x93, 0xc5, 0xbd, 0xea, 0x4f, 0x9a, 0xbe, 0x9d, 0xbf, 0xf8, - 0x3c, 0x1c, 0x7c, 0xb5, 0x53, 0x96, 0x9c, 0x0a, 0x04, 0x0b, 0x93, 0x53, 0xa1, 0xbc, 0x22, 0x0b, - 0xfb, 0xe6, 0x71, 0xe3, 0xde, 0xe8, 0xf5, 0x18, 0xda, 0x84, 0x8a, 0x7b, 0x3b, 0x39, 0x93, 0x4e, - 0xba, 0x4e, 0x9b, 0x74, 0x06, 0x9e, 0x80, 0x0e, 0xdd, 0x66, 0x6c, 0x3f, 0x69, 0x0f, 0xd8, 0x15, - 0x70, 0x10, 0x7d, 0x7c, 0x14, 0x91, 0x00, 0x9e, 0xae, 0xc9, 0x1b, 0x77, 0xd1, 0x05, 0x39, 0x82, - 0x69, 0x76, 0x27, 0x30, 0x76, 0x7f, 0x2e, 0xfe, 0xd2, 0x78, 0xcb, 0x08, 0xb9, 0xfa, 0x4b, 0x9a, - 0x6f, 0x7e, 0xde, 0xf8, 0x5c, 0x0e, 0x8c, 0x98, 0x64, 0xa0, 0x31, 0xa4, 0x5d, 0xe4, 0xc9, 0xbd, - 0x0a, 0xf9, 0x5d, 0x52, 0xe4, 0x14, 0x6c, 0xd8, 0xc7, 0xd3, 0x91, 0xf5, 0xb9, 0xd9, 0xe3, 0x87, - 0xb2, 0xb1, 0xb0, 0xe0, 0xdd, 0xbf, 0x25, 0x3f, 0x57, 0x22, 0xdc, 0xc8, 0xc1, 0x12, 0x4b, 0x7c, - 0x89, 0x2b, 0x79, 0xdd, 0xd9, 0x2f, 0x34, 0xfd, 0xc6, 0x79, 0x1c, 0x63, 0x60, 0x98, 0xfd, 0x44, - 0x21, 0x36, 0x18, 0x4b, 0x17, 0x37, 0x97, 0x88, 0xd5, 0x99, 0xba, 0x75, 0x12, 0x22, 0xcf, 0x22, - 0x96, 0xca, 0x9f, 0x05, 0x0b, 0x55, 0x95, 0x1f, 0x7d, 0xba, 0x7a, 0x4d, 0xd3, 0xd5, 0x4e, 0x67, - 0x1c, 0xcf, 0x44, 0x89, 0xa2, 0xc9, 0x62, 0x32, 0x59, 0x41, 0x52, 0x79, 0xe8, 0x57, 0x35, 0xdf, - 0xbc, 0xdd, 0x68, 0xc4, 0xaa, 0x48, 0x9b, 0x60, 0xdb, 0xca, 0x0b, 0xdb, 0xd8, 0x22, 0x02, 0xf2, - 0x39, 0x63, 0xed, 0x20, 0xf3, 0x48, 0x7d, 0x53, 0xd3, 0xf5, 0x79, 0xcc, 0x1e, 0x97, 0xef, 0x79, - 0xd9, 0x2f, 0xc6, 0xa2, 0xb1, 0xc2, 0x2f, 0xc6, 0xe2, 0x22, 0x0a, 0xe0, 0x05, 0xdf, 0x7c, 0xd4, - 0x38, 0x97, 0xc8, 0xee, 0x4a, 0x04, 0x4e, 0x10, 0xa7, 0x65, 0x0f, 0xc4, 0xc6, 0x1a, 0xff, 0xf9, - 0xc4, 0x80, 0xd8, 0x16, 0x84, 0xc4, 0x69, 0xbb, 0x5e, 0x4f, 0x44, 0xe1, 0xa4, 0xb8, 0xfc, 0x77, - 0x86, 0x3f, 0x43, 0x7c, 0xdb, 0x16, 0xdc, 0x1a, 0x11, 0xf0, 0xb7, 0x80, 0x4d, 0x01, 0x7c, 0xf5, - 0x6a, 0x0a, 0xfe, 0x23, 0x9b, 0xbe, 0x53, 0xd1, 0x27, 0x77, 0xca, 0x74, 0xa3, 0xef, 0x6c, 0x67, - 0xd0, 0x66, 0x16, 0xa9, 0x7f, 0x57, 0xf3, 0xcd, 0xc3, 0xc6, 0xa1, 0xdc, 0xcd, 0xb6, 0xd8, 0x57, - 0x7e, 0xc1, 0xd5, 0xf3, 0xd8, 0x4f, 0xd2, 0x45, 0x11, 0x58, 0x0a, 0xb7, 0x11, 0xd2, 0x1f, 0x05, - 0x0a, 0xab, 0x89, 0xf7, 0xea, 0x31, 0x0d, 0x97, 0xbc, 0xde, 0xfd, 0xbb, 0x9a, 0x4c, 0xb6, 0x69, - 0xe5, 0x49, 0x5e, 0x11, 0xcf, 0x20, 0x8c, 0x27, 0xa5, 0x7d, 0x95, 0xa4, 0xeb, 0xef, 0x6a, 0xb1, - 0x73, 0xc3, 0x72, 0x36, 0xaa, 0xdd, 0x91, 0x7d, 0x5e, 0x03, 0x8f, 0x94, 0xb3, 0x34, 0x36, 0x45, - 0xe7, 0xe7, 0xc1, 0xe9, 0x35, 0x59, 0xf2, 0xc4, 0xd1, 0xf3, 0x47, 0x3a, 0x84, 0x75, 0x07, 0xcd, - 0xd9, 0x96, 0xdb, 0x6b, 0x08, 0x82, 0x5c, 0xaf, 0xd3, 0x08, 0x3f, 0xe4, 0xec, 0x60, 0xa7, 0xd1, - 0x6f, 0xce, 0x74, 0xdc, 0x46, 0xfa, 0xcb, 0xe1, 0xe6, 0x75, 0xe2, 0x33, 0xcd, 0x3b, 0xff, 0x1b, - 0x00, 0x00, 0xff, 0xff, 0x6a, 0x52, 0x34, 0xd3, 0x54, 0x3c, 0x00, 0x00, + // 2136 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x9a, 0xdf, 0x6f, 0x1d, 0x47, + 0x15, 0xc7, 0x35, 0x36, 0x02, 0x31, 0x4d, 0x62, 0x7b, 0x9a, 0x60, 0x67, 0x63, 0x27, 0xe9, 0xba, + 0x8e, 0x7f, 0xdf, 0x75, 0xd3, 0xb4, 0x51, 0x42, 0x7f, 0xb9, 0xb5, 0x73, 0x65, 0x08, 0x49, 0x31, + 0x29, 0x48, 0x16, 0xd2, 0xd5, 0xfa, 0xee, 0xc4, 0xde, 0xe4, 0xde, 0xbb, 0xb7, 0xbb, 0x63, 0x17, + 0xcb, 0xb2, 0xf8, 0xf1, 0x80, 0xa8, 0x90, 0x78, 0xe0, 0x87, 0xa0, 0x10, 0x51, 0x0a, 0x45, 0xfc, + 0x2c, 0x2f, 0xa0, 0x22, 0x24, 0x54, 0x09, 0xc1, 0x03, 0x2f, 0xbc, 0xc0, 0x3b, 0x2f, 0xf4, 0x99, + 0xbf, 0x01, 0xcd, 0xd9, 0x99, 0xbd, 0x3b, 0xbb, 0x3b, 0xbb, 0xb3, 0x26, 0xe5, 0x89, 0x37, 0xfb, + 0x9e, 0x33, 0x33, 0x9f, 0x73, 0xe6, 0x3b, 0x67, 0x66, 0x67, 0x17, 0x4f, 0xde, 0xed, 0x1c, 0x30, + 0xea, 0x7b, 0x1d, 0x27, 0xa2, 0xe1, 0xbe, 0xdf, 0xa6, 0x8e, 0xeb, 0x75, 0xfd, 0x5e, 0xa3, 0x1f, + 0x06, 0x2c, 0x20, 0xa3, 0xd2, 0xda, 0x10, 0x56, 0x6b, 0x72, 0x27, 0x08, 0x76, 0x3a, 0xd4, 0x71, + 0xfb, 0xbe, 0xe3, 0xf6, 0x7a, 0x01, 0x73, 0x99, 0x1f, 0xf4, 0xa2, 0xd8, 0xdf, 0x1a, 0xf4, 0x06, + 0xbd, 0x38, 0xfd, 0x30, 0xb8, 0x47, 0xdb, 0x4c, 0x58, 0x1b, 0xc5, 0xd6, 0x96, 0x17, 0x74, 0x5d, + 0xbf, 0xd7, 0x72, 0x19, 0x0b, 0xfd, 0xed, 0x3d, 0x46, 0x65, 0x6f, 0xb3, 0x1a, 0xff, 0x9c, 0xe3, + 0xd9, 0x8c, 0x23, 0x73, 0xa3, 0xfb, 0xc2, 0x34, 0x95, 0x31, 0xbd, 0x16, 0x84, 0xf7, 0xef, 0x76, + 0x82, 0xd7, 0x84, 0x79, 0x4e, 0x63, 0xce, 0x8f, 0x71, 0x31, 0xe3, 0xd9, 0x71, 0xf7, 0x7a, 0xed, + 0xdd, 0x56, 0xbf, 0xe3, 0x8a, 0x64, 0x59, 0x56, 0xc6, 0x83, 0xee, 0xd3, 0x9e, 0x0c, 0xfd, 0x7c, + 0xd6, 0xf6, 0x05, 0xda, 0xde, 0xe3, 0x99, 0xd3, 0x84, 0xda, 0x75, 0x59, 0x7b, 0xd7, 0xdd, 0xee, + 0xd0, 0x56, 0x48, 0xa3, 0x60, 0x2f, 0x6c, 0x53, 0xe1, 0x38, 0x9d, 0x71, 0xec, 0x05, 0x1e, 0x6d, + 0x65, 0x7b, 0x9b, 0x2e, 0xc8, 0x47, 0xce, 0x29, 0x3b, 0x57, 0xfb, 0x34, 0x8c, 0x06, 0xd6, 0x73, + 0x19, 0x6b, 0x3b, 0xe8, 0x76, 0xb5, 0xb4, 0x1e, 0x8d, 0xda, 0xa1, 0xdf, 0xe7, 0x9d, 0xb7, 0x68, + 0x8f, 0xf9, 0xec, 0x20, 0x17, 0x76, 0x3b, 0x08, 0xa9, 0xe3, 0x7b, 0xdc, 0x7a, 0xd7, 0xa7, 0x61, + 0x6c, 0xbf, 0xfc, 0xc7, 0x9b, 0xf8, 0xc4, 0x2a, 0xef, 0xe2, 0x33, 0xb1, 0xbc, 0x48, 0x17, 0xe3, + 0x97, 0x42, 0xea, 0x32, 0x7a, 0xc7, 0x8d, 0xee, 0x93, 0xc7, 0x12, 0xc5, 0x34, 0x62, 0x55, 0xf2, + 0x5f, 0x63, 0xfb, 0x26, 0x7d, 0x75, 0x8f, 0x46, 0xcc, 0xb2, 0xcb, 0x5c, 0xa2, 0x7e, 0xd0, 0x8b, + 0xa8, 0x3d, 0xf1, 0x95, 0x7f, 0xbc, 0xff, 0xad, 0x21, 0x62, 0x9f, 0x04, 0xd5, 0xee, 0x3f, 0x01, + 0xf9, 0x88, 0xae, 0xa3, 0x05, 0xf2, 0x35, 0x84, 0x3f, 0xd2, 0xa4, 0x0c, 0x06, 0xbb, 0x98, 0xed, + 0xe9, 0xf6, 0x36, 0x57, 0x5b, 0x93, 0x32, 0x39, 0xd6, 0xe9, 0xa2, 0xb1, 0xec, 0x75, 0xe8, 0xfd, + 0x79, 0xf2, 0xac, 0xd2, 0xbb, 0x73, 0xe8, 0x7b, 0x0d, 0x21, 0xd8, 0x23, 0xf8, 0x27, 0x56, 0x79, + 0xfc, 0x77, 0xcf, 0xed, 0xd2, 0xf8, 0x2f, 0x91, 0xf5, 0x23, 0xf2, 0x5d, 0x84, 0x1f, 0xb9, 0xe9, + 0x47, 0xc0, 0xb2, 0xe1, 0x45, 0x64, 0x25, 0x3b, 0xd8, 0x2d, 0xb7, 0x4b, 0xbd, 0x75, 0xc8, 0xee, + 0x46, 0x92, 0x47, 0xde, 0x42, 0xe2, 0xcd, 0x1b, 0xb7, 0xb0, 0x17, 0x81, 0x79, 0x86, 0x4c, 0xa7, + 0x99, 0x5b, 0xbe, 0x17, 0x39, 0x87, 0x03, 0x66, 0x01, 0x4c, 0x7e, 0x83, 0xf0, 0x47, 0x25, 0x59, + 0x44, 0xa6, 0xb3, 0xa3, 0x6c, 0x0a, 0x81, 0xa6, 0x51, 0x26, 0x8a, 0x32, 0x05, 0x23, 0x6f, 0xc3, + 0xc8, 0x9f, 0x27, 0x2b, 0x75, 0xb3, 0xb5, 0x35, 0x47, 0x2e, 0x99, 0xb5, 0x21, 0x47, 0xf8, 0x54, + 0xac, 0x80, 0xcf, 0x89, 0xd5, 0x4c, 0x66, 0xb2, 0x3c, 0xd2, 0xa2, 0x8a, 0xe9, 0x52, 0x95, 0x9b, + 0x10, 0xd4, 0x24, 0x04, 0xf1, 0x31, 0x7b, 0x4c, 0x02, 0xc9, 0xb2, 0x01, 0xa2, 0xfa, 0x36, 0xc2, + 0x8f, 0x34, 0x29, 0x4b, 0x06, 0xaf, 0x16, 0xd6, 0x84, 0x6e, 0x5c, 0x7b, 0x03, 0x46, 0x7a, 0x89, + 0xac, 0xe6, 0x46, 0xaa, 0x2d, 0xb0, 0x37, 0x11, 0x1e, 0xe1, 0x53, 0x20, 0xfb, 0xfe, 0xc0, 0x45, + 0xe6, 0x00, 0xfb, 0x3c, 0x99, 0xcd, 0xb2, 0xeb, 0x84, 0xf6, 0x1e, 0xc2, 0x27, 0xd3, 0x84, 0x86, + 0x62, 0x9b, 0xd4, 0x65, 0x0f, 0x28, 0xee, 0x01, 0x85, 0x47, 0xae, 0x1c, 0x27, 0x83, 0x5b, 0x4b, + 0x64, 0xc1, 0xbc, 0x1d, 0xf9, 0x2a, 0xc2, 0xa3, 0xb1, 0x54, 0x6e, 0xc2, 0xee, 0xf0, 0x72, 0xc7, + 0xed, 0x91, 0xd9, 0x2c, 0xde, 0xc0, 0xa6, 0xaa, 0x6f, 0xae, 0xda, 0x51, 0xe8, 0xef, 0x02, 0xc4, + 0x74, 0xd6, 0x3e, 0x2d, 0xd9, 0x52, 0x9b, 0x11, 0x48, 0xf0, 0x07, 0x08, 0x9f, 0x6c, 0x52, 0x96, + 0xa2, 0xa8, 0x16, 0xa1, 0xa5, 0x1f, 0xde, 0xbe, 0x09, 0x03, 0xde, 0x20, 0x6b, 0x45, 0x03, 0xd6, + 0x56, 0xe2, 0x8f, 0x11, 0x7e, 0xb4, 0x49, 0xd9, 0x6a, 0x9b, 0xf9, 0xfb, 0xa5, 0x99, 0xca, 0x7a, + 0x98, 0xa0, 0xde, 0x00, 0xd4, 0x17, 0xc8, 0x73, 0x12, 0xd5, 0x85, 0x4e, 0x5a, 0x35, 0x89, 0xc9, + 0x03, 0x84, 0xcf, 0x70, 0x01, 0x65, 0x19, 0x22, 0xb2, 0x58, 0x85, 0x99, 0x16, 0xe7, 0x79, 0x3d, + 0x2a, 0xc8, 0xf3, 0x69, 0xc0, 0x5d, 0x21, 0x8d, 0x52, 0xdc, 0xfc, 0x5a, 0x79, 0x1b, 0xe1, 0x31, + 0xde, 0xc1, 0xa0, 0xbb, 0x0f, 0x7c, 0x3d, 0x5f, 0x06, 0xd4, 0xd4, 0x8a, 0x48, 0x31, 0xea, 0x96, + 0xf4, 0x5f, 0x45, 0xd1, 0x49, 0xe7, 0xcf, 0x68, 0x51, 0x57, 0xe5, 0xad, 0x0f, 0x30, 0xf7, 0xc8, + 0xd5, 0x63, 0x2a, 0x72, 0xcb, 0x21, 0xcb, 0xb5, 0x9a, 0x92, 0x77, 0x11, 0x1e, 0x7d, 0xa5, 0xef, + 0x19, 0x2f, 0xee, 0xd8, 0xd7, 0x60, 0x71, 0x4b, 0x47, 0xb1, 0xb8, 0x6f, 0x43, 0x64, 0x1b, 0xd6, + 0x43, 0x59, 0x6b, 0xbc, 0x18, 0x7c, 0x19, 0xe1, 0x91, 0xb8, 0x80, 0xac, 0xcb, 0x23, 0x20, 0xc9, + 0xed, 0x74, 0x89, 0x49, 0xad, 0x49, 0xb3, 0x95, 0x7e, 0x82, 0x7a, 0x0a, 0xa8, 0xc7, 0x6d, 0x22, + 0xa9, 0x93, 0xe3, 0x26, 0x14, 0xa4, 0x6f, 0x20, 0x3c, 0xb6, 0x49, 0xe3, 0x48, 0x06, 0x14, 0x73, + 0xda, 0xde, 0xa5, 0x6f, 0x6d, 0x8e, 0x4b, 0xc0, 0x71, 0xd1, 0x3e, 0x97, 0xe7, 0x70, 0x42, 0xd1, + 0x29, 0x07, 0xfa, 0x3a, 0xc2, 0xa3, 0x9b, 0xb4, 0x1d, 0xec, 0xd3, 0x70, 0xc0, 0x33, 0x5b, 0xc2, + 0x03, 0xae, 0xb5, 0x71, 0x66, 0x00, 0xe7, 0x82, 0x6d, 0x15, 0xe2, 0x40, 0x9f, 0x9c, 0xe6, 0x3b, + 0x08, 0x9f, 0x68, 0x52, 0x36, 0x20, 0x59, 0xd4, 0xed, 0x69, 0x89, 0x4b, 0xaa, 0x72, 0x9f, 0xd5, + 0xd2, 0xd8, 0xcf, 0xc2, 0xf8, 0x57, 0xc9, 0x53, 0x05, 0xe3, 0x1b, 0x14, 0xc1, 0xb7, 0x11, 0x1e, + 0x89, 0xe5, 0x69, 0x22, 0x1d, 0x55, 0xf1, 0xb3, 0x95, 0x7e, 0x22, 0x47, 0x2f, 0x00, 0xe3, 0x75, + 0xeb, 0x78, 0x8c, 0x3c, 0x7d, 0x7f, 0x40, 0x78, 0x34, 0x9d, 0xbe, 0x35, 0x97, 0xb9, 0xc4, 0x31, + 0x49, 0x21, 0xf7, 0x94, 0xc0, 0x2b, 0xe6, 0x0d, 0x04, 0xf9, 0x8b, 0x40, 0xfe, 0x0c, 0xb9, 0x2e, + 0xc9, 0x3d, 0x97, 0xb9, 0x35, 0x53, 0xfc, 0x3a, 0xc2, 0xa7, 0x78, 0x45, 0x4b, 0x06, 0x31, 0x2c, + 0x90, 0x53, 0xda, 0xf4, 0x42, 0x7d, 0x7c, 0x12, 0xd0, 0x96, 0xc9, 0x62, 0x8d, 0xa4, 0x92, 0x77, + 0x10, 0x26, 0x77, 0x68, 0xd8, 0xf5, 0x7b, 0xca, 0x8c, 0xcf, 0x6b, 0x87, 0x4a, 0x9c, 0x25, 0xd5, + 0x82, 0x89, 0xab, 0x3a, 0xef, 0x0b, 0xc7, 0x9f, 0xf7, 0xbf, 0xc7, 0xf3, 0x7e, 0x2b, 0xf0, 0x68, + 0xc9, 0x22, 0x56, 0xcc, 0xa9, 0x65, 0x33, 0x55, 0xea, 0x68, 0xef, 0x03, 0x5e, 0x9f, 0xf4, 0x24, + 0x9e, 0xfa, 0xa8, 0x1d, 0x33, 0x26, 0xff, 0xb6, 0xb2, 0xc0, 0x8a, 0x25, 0x4d, 0xaf, 0x18, 0x06, + 0x15, 0x1b, 0x7a, 0xf7, 0xbd, 0x23, 0xf2, 0x4f, 0x84, 0x09, 0x9f, 0x42, 0x85, 0x26, 0xca, 0xd7, + 0x4a, 0xc5, 0x9e, 0x56, 0xc6, 0x63, 0x95, 0x9e, 0xf6, 0x21, 0xc4, 0xb6, 0x47, 0x22, 0x6d, 0x6c, + 0xc9, 0x59, 0x5d, 0x13, 0x61, 0xb1, 0x3d, 0x89, 0xb3, 0xd8, 0x1c, 0x2b, 0xfe, 0xa7, 0x1f, 0xc2, + 0x67, 0xf3, 0x01, 0xde, 0x08, 0x42, 0x78, 0x0c, 0x77, 0x4a, 0xe9, 0x85, 0x57, 0xcd, 0x70, 0x7f, + 0x3b, 0x0c, 0xf1, 0xfe, 0x7a, 0x98, 0xfc, 0x62, 0x58, 0x46, 0xdc, 0xde, 0xf5, 0x3b, 0x5e, 0x48, + 0xb3, 0x97, 0x23, 0x91, 0x73, 0xa8, 0xfe, 0xd0, 0x92, 0x73, 0xa3, 0xfc, 0xa2, 0xc9, 0x4a, 0xed, + 0xa6, 0x49, 0xc2, 0x6a, 0xb7, 0x14, 0xca, 0x31, 0x69, 0x27, 0xa5, 0x55, 0xe4, 0x2d, 0x1e, 0xfc, + 0x4b, 0x63, 0x90, 0x3e, 0x25, 0xb0, 0xd2, 0x45, 0x4b, 0x25, 0x1d, 0xe4, 0xc1, 0xa4, 0xc8, 0x27, + 0xa4, 0x2c, 0x3c, 0x68, 0xb9, 0x8c, 0xd1, 0x6e, 0x9f, 0x1d, 0x91, 0x7f, 0x23, 0x7c, 0x3a, 0xbb, + 0xba, 0xa1, 0xb2, 0x2f, 0x56, 0xad, 0xf0, 0x74, 0x55, 0x5f, 0x32, 0x73, 0x16, 0x35, 0x29, 0xb7, + 0x30, 0xa0, 0xa2, 0xff, 0x8f, 0x56, 0xfe, 0x17, 0xf1, 0xc8, 0x26, 0xdd, 0xf1, 0x23, 0x46, 0xc3, + 0x97, 0xe3, 0x0e, 0xf3, 0x9b, 0xad, 0x30, 0x48, 0x3f, 0xed, 0x66, 0x9b, 0xf3, 0x13, 0x01, 0x9e, + 0x83, 0x00, 0xcf, 0xd8, 0xa3, 0x32, 0x40, 0x81, 0x0e, 0xa7, 0xb4, 0x57, 0xf1, 0xc9, 0x78, 0x6f, + 0x96, 0xc3, 0x8f, 0x6b, 0xba, 0xb5, 0x66, 0x34, 0x86, 0xcc, 0xd6, 0x7e, 0x11, 0x46, 0xb3, 0xac, + 0x33, 0xd9, 0xd1, 0x78, 0xe0, 0x50, 0xc2, 0xef, 0xe2, 0x13, 0x7c, 0x89, 0x8a, 0xe6, 0x11, 0xb1, + 0x35, 0x1d, 0x97, 0xde, 0x2e, 0xc9, 0xd6, 0xf2, 0xa6, 0x8f, 0xe4, 0xa2, 0x23, 0x6f, 0x20, 0xfc, + 0xa8, 0x7a, 0x29, 0xb4, 0xbe, 0x4f, 0x7b, 0x8c, 0x2c, 0x57, 0x6e, 0xfa, 0xe0, 0x27, 0x87, 0x6e, + 0x98, 0xba, 0x8b, 0x04, 0x4c, 0x03, 0xd0, 0x94, 0x3d, 0x91, 0xec, 0x71, 0xdc, 0x1c, 0xa9, 0x17, + 0x46, 0xaf, 0x27, 0x07, 0x74, 0xd0, 0x26, 0x70, 0xcd, 0x97, 0xca, 0x56, 0x61, 0x5a, 0x30, 0x71, + 0xd5, 0xdd, 0x1c, 0x08, 0x1e, 0xae, 0xc1, 0x0c, 0x0b, 0xaf, 0xb3, 0x1a, 0x16, 0x30, 0x99, 0xb1, + 0x14, 0xb9, 0x56, 0xb0, 0x24, 0xb7, 0xb3, 0x5f, 0x1a, 0x86, 0xed, 0x5d, 0xe9, 0x22, 0xbf, 0xbd, + 0x2b, 0xe6, 0xb2, 0xed, 0x5d, 0x71, 0xb4, 0x7f, 0x32, 0x04, 0xc3, 0x3f, 0x18, 0x22, 0x6f, 0x0c, + 0x29, 0xb7, 0xa0, 0x99, 0x75, 0x6e, 0x5c, 0xfb, 0x6b, 0x14, 0x7b, 0xe3, 0xea, 0x5e, 0x51, 0xce, + 0x0b, 0xeb, 0x77, 0x51, 0xc1, 0xce, 0x57, 0xe8, 0xc2, 0x92, 0x9c, 0xaf, 0xc1, 0xdf, 0x1b, 0x8a, + 0x0f, 0x23, 0x4a, 0xee, 0x0a, 0x0e, 0x23, 0x8a, 0xbd, 0x74, 0x77, 0xce, 0x79, 0xda, 0xbf, 0x43, + 0x30, 0x13, 0xef, 0x20, 0xf2, 0x4b, 0xa4, 0x9d, 0x09, 0xe3, 0x69, 0x30, 0x9d, 0x03, 0xb3, 0x09, + 0xd0, 0x67, 0x9f, 0x3c, 0x18, 0x86, 0xed, 0x49, 0x89, 0xa7, 0x78, 0x7b, 0xca, 0x2a, 0xb4, 0x74, + 0x7b, 0x2a, 0x76, 0x16, 0x4b, 0xe6, 0xe7, 0xb1, 0x68, 0xdf, 0x1a, 0x22, 0x3f, 0x1c, 0x52, 0x76, + 0xa8, 0xff, 0x2b, 0x37, 0xab, 0xdc, 0x7f, 0x21, 0x3c, 0xa5, 0x6c, 0x66, 0x6b, 0xd0, 0xe5, 0x6a, + 0xf2, 0x5e, 0x8f, 0x5c, 0xd1, 0x6c, 0x23, 0x59, 0x47, 0xf5, 0xb1, 0xf6, 0xa9, 0x9a, 0xad, 0xc4, + 0xcc, 0xbd, 0x02, 0x13, 0x77, 0xdb, 0xfa, 0x44, 0x66, 0x67, 0xca, 0xbf, 0xfc, 0x74, 0x0e, 0xd5, + 0x77, 0x8f, 0x22, 0x39, 0xa9, 0x1f, 0x45, 0x72, 0x78, 0x89, 0xfc, 0x13, 0xc2, 0x56, 0x93, 0x32, + 0x5d, 0x88, 0x4f, 0x18, 0xc2, 0xa6, 0xca, 0xe6, 0xe5, 0x3a, 0x4d, 0x44, 0x70, 0xcf, 0x40, 0x70, + 0x4f, 0x0f, 0xee, 0xd8, 0x4b, 0x82, 0xcb, 0xdf, 0x11, 0xfe, 0x0d, 0xe1, 0xa9, 0x35, 0xda, 0xa1, + 0xff, 0xfd, 0x4c, 0xc5, 0xbd, 0xd4, 0x9d, 0x29, 0xd9, 0x4a, 0x04, 0xf3, 0x3c, 0x04, 0x73, 0x6d, + 0xe1, 0x58, 0xc1, 0xf0, 0x39, 0x79, 0x17, 0xe1, 0x71, 0x45, 0x79, 0xa9, 0x48, 0x1a, 0x1a, 0x26, + 0x9d, 0xda, 0x1c, 0x63, 0x7f, 0x41, 0x7f, 0x1d, 0xe8, 0xaf, 0x58, 0x4e, 0x96, 0xbe, 0x42, 0x60, + 0x1c, 0xfc, 0xcd, 0xf8, 0xc0, 0x9d, 0xa7, 0x5e, 0xac, 0xa4, 0x48, 0x09, 0x68, 0xc9, 0xcc, 0x59, + 0xf0, 0x2e, 0x01, 0xef, 0x25, 0xf2, 0x78, 0x19, 0xaf, 0x84, 0x24, 0xbf, 0x42, 0x78, 0x5c, 0x91, + 0x4a, 0xad, 0xd4, 0xaa, 0xf2, 0x70, 0x8c, 0xfd, 0x05, 0xaa, 0x78, 0x9f, 0xb5, 0x60, 0x84, 0xca, + 0xf3, 0xf9, 0x3e, 0xc2, 0x13, 0xf1, 0xf4, 0xc8, 0x53, 0x62, 0x0a, 0x57, 0x7b, 0x3d, 0xa5, 0x93, + 0xc2, 0x8a, 0x79, 0x03, 0x01, 0x4c, 0x01, 0xb8, 0x65, 0x6d, 0xe5, 0x5e, 0xc0, 0x1d, 0xa3, 0xda, + 0x28, 0xbf, 0xc9, 0x8e, 0x20, 0xcc, 0xdf, 0x23, 0x7c, 0x26, 0xf5, 0xbe, 0x33, 0x15, 0xe3, 0x52, + 0x35, 0x72, 0x4a, 0x38, 0xcb, 0x86, 0xde, 0x22, 0xba, 0x55, 0x88, 0xee, 0xe3, 0xe4, 0x5a, 0x69, + 0x74, 0xb9, 0x15, 0x3a, 0xb8, 0x9b, 0x38, 0x22, 0x7f, 0x46, 0x78, 0x22, 0x9e, 0xe4, 0xe3, 0x4d, + 0x90, 0x2a, 0xa8, 0x15, 0xf3, 0x06, 0x22, 0x84, 0x35, 0x08, 0xe1, 0xb9, 0x85, 0xe3, 0x87, 0xc0, + 0xf3, 0xff, 0x23, 0x84, 0xc7, 0xf9, 0x41, 0xea, 0x53, 0xf2, 0x9b, 0x91, 0xb2, 0x45, 0xa1, 0x71, + 0xd4, 0x2e, 0x0a, 0xad, 0xbf, 0x08, 0xe1, 0x71, 0x08, 0xe1, 0x3c, 0x99, 0x94, 0x21, 0x0c, 0xbe, + 0x5c, 0x19, 0xc4, 0xc0, 0x2b, 0x0b, 0xbc, 0xad, 0x1a, 0xbc, 0x5c, 0xf2, 0x69, 0x94, 0x7f, 0xb8, + 0x4d, 0xbd, 0x7b, 0x4a, 0x9f, 0x21, 0x2f, 0x54, 0xf8, 0xe5, 0xa5, 0xc0, 0x8f, 0x0a, 0x5e, 0xfc, + 0x29, 0x8a, 0xcf, 0x53, 0x28, 0x3f, 0xa2, 0x69, 0xb1, 0x83, 0x3e, 0x3f, 0x43, 0xe4, 0x37, 0xa1, + 0x9f, 0x21, 0x7c, 0xaa, 0x49, 0x53, 0x80, 0x07, 0xf9, 0x8f, 0x06, 0x52, 0xc6, 0x94, 0x6c, 0xcf, + 0x95, 0xb8, 0xd9, 0x9f, 0x06, 0xb2, 0x4f, 0x92, 0x0d, 0x53, 0xb2, 0xea, 0x0b, 0xe3, 0xf7, 0x10, + 0x1e, 0x8b, 0x17, 0x7a, 0x1a, 0x76, 0xae, 0x84, 0x42, 0xad, 0x23, 0xf3, 0x06, 0x9e, 0x62, 0x72, + 0xef, 0x00, 0xfd, 0x2d, 0xeb, 0xe1, 0xd1, 0x73, 0xbd, 0x76, 0x30, 0x6e, 0x52, 0xf6, 0xd9, 0xf8, + 0xec, 0x96, 0xff, 0xc6, 0x67, 0x60, 0xd3, 0x7e, 0xe3, 0x93, 0x76, 0x11, 0xa8, 0xe3, 0x80, 0x3a, + 0x46, 0x46, 0x24, 0xaa, 0x38, 0x1b, 0x92, 0xbf, 0xc4, 0x9b, 0xda, 0xda, 0xe0, 0x13, 0x25, 0x91, + 0xb1, 0xea, 0x37, 0xe2, 0x39, 0xb4, 0x5c, 0x27, 0xf6, 0x0e, 0x0c, 0xeb, 0x92, 0x56, 0x72, 0x1a, + 0xcf, 0x7e, 0x0a, 0x05, 0x79, 0x82, 0xe3, 0x69, 0xcd, 0x54, 0xa9, 0xef, 0xcc, 0xbf, 0x39, 0x14, + 0x2f, 0xf2, 0x2c, 0x82, 0x5f, 0x54, 0x66, 0x73, 0x9c, 0xe9, 0xd5, 0x34, 0x63, 0xe4, 0x6d, 0xbf, + 0x15, 0x3f, 0x95, 0x7d, 0x1f, 0x91, 0xdb, 0xe5, 0xb1, 0xd5, 0x0e, 0x6c, 0xab, 0x49, 0xd6, 0x1f, + 0x4a, 0x97, 0x2f, 0x5e, 0xdb, 0xba, 0xba, 0xe3, 0xb3, 0xdd, 0xbd, 0xed, 0x46, 0x3b, 0xe8, 0x3a, + 0x10, 0x56, 0x10, 0xee, 0x38, 0xc9, 0x47, 0x67, 0x3b, 0xb4, 0xe7, 0xf4, 0xb7, 0x97, 0x77, 0x02, + 0x27, 0xfb, 0x95, 0xe3, 0xf6, 0x87, 0xe1, 0x03, 0xb4, 0x27, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, + 0x20, 0x80, 0x65, 0x97, 0x00, 0x29, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index 0de7b31443d..0c99664435b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -18,7 +18,6 @@ "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`.", - "description": "Retrieve the active launch plan version specified by input request filters.", "operationId": "GetActiveLaunchPlan", "responses": { "200": { @@ -59,7 +58,6 @@ "/api/v1/active_launch_plans/{project}/{domain}": { "get": { "summary": "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`.", - "description": "Fetch the active launch plan versions specified by input request filters.", "operationId": "ListActiveLaunchPlans", "responses": { "200": { @@ -127,7 +125,6 @@ "/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`.", - "description": "Fetch child node executions launched by the specified task execution.", "operationId": "ListNodeExecutionsForTask", "responses": { "200": { @@ -265,7 +262,6 @@ "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`.", - "description": "Retrieve input and output data from an existing workflow execution.", "operationId": "GetExecutionData", "responses": { "200": { @@ -306,7 +302,6 @@ "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { "get": { "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`.", - "description": "Retrieve input and output data from an existing node execution.", "operationId": "GetNodeExecutionData", "responses": { "200": { @@ -353,7 +348,6 @@ "/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}": { "get": { "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`.", - "description": "Retrieve input and output data from an existing task execution.", "operationId": "GetTaskExecutionData", "responses": { "200": { @@ -450,7 +444,6 @@ "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { "summary": "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object.", - "description": "Retrieve an existing description entity description.", "operationId": "GetDescriptionEntity", "responses": { "200": { @@ -512,7 +505,6 @@ "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", - "description": "Fetch existing description entity definitions matching input filters.", "operationId": "ListDescriptionEntities2", "responses": { "200": { @@ -608,7 +600,6 @@ "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions.", - "description": "Fetch existing description entity definitions matching input filters.", "operationId": "ListDescriptionEntities", "responses": { "200": { @@ -704,7 +695,6 @@ "/api/v1/events/nodes": { "post": { "summary": "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred.", - "description": "Create a node execution event recording a phase transition.", "operationId": "CreateNodeEvent", "responses": { "200": { @@ -732,7 +722,6 @@ "/api/v1/events/tasks": { "post": { "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", - "description": "Create a task execution event recording a phase transition.", "operationId": "CreateTaskEvent", "responses": { "200": { @@ -760,7 +749,6 @@ "/api/v1/events/workflows": { "post": { "summary": "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred.", - "description": "Create a workflow execution event recording a phase transition.", "operationId": "CreateWorkflowEvent", "responses": { "200": { @@ -788,7 +776,6 @@ "/api/v1/executions": { "post": { "summary": "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`", - "description": "Create a workflow execution.", "operationId": "CreateExecution", "responses": { "200": { @@ -816,7 +803,6 @@ "/api/v1/executions/recover": { "post": { "summary": "Recreates a previously-run workflow execution that will only start executing from the last known failure point.\nIn Recover mode, users cannot change any input parameters or update the version of the execution.\nThis is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures,\ndownstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\nSee :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details.", - "description": "Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.", "operationId": "RecoverExecution", "responses": { "200": { @@ -844,7 +830,6 @@ "/api/v1/executions/relaunch": { "post": { "summary": "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`", - "description": "Relaunch a workflow execution.", "operationId": "RelaunchExecution", "responses": { "200": { @@ -872,7 +857,6 @@ "/api/v1/executions/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", - "description": "Fetch existing workflow executions matching input filters.", "operationId": "ListExecutions", "responses": { "200": { @@ -954,7 +938,6 @@ "/api/v1/executions/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetches a :ref:`ref_flyteidl.admin.Execution`.", - "description": "Retrieve an existing workflow execution.", "operationId": "GetExecution", "responses": { "200": { @@ -993,7 +976,6 @@ }, "delete": { "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", - "description": "Terminate the active workflow execution specified in the request.", "operationId": "TerminateExecution", "responses": { "200": { @@ -1040,7 +1022,6 @@ }, "put": { "summary": "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`.", - "description": "Update execution belonging to project domain.", "operationId": "UpdateExecution", "responses": { "200": { @@ -1089,7 +1070,6 @@ "/api/v1/launch_plan_ids/{project}/{domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects.", - "description": "Fetch existing launch plan definition identifiers matching input filters.", "operationId": "ListLaunchPlanIds", "responses": { "200": { @@ -1164,7 +1144,6 @@ "/api/v1/launch_plans": { "post": { "summary": "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition", - "description": "Create and register a launch plan definition.", "operationId": "CreateLaunchPlan", "responses": { "200": { @@ -1172,14 +1151,6 @@ "schema": { "$ref": "#/definitions/adminLaunchPlanCreateResponse" } - }, - "400": { - "description": "Returned for bad request that may have failed validation.", - "schema": {} - }, - "409": { - "description": "Returned for a request that references an identical entity that has already been registered.", - "schema": {} } }, "parameters": [ @@ -1200,7 +1171,6 @@ "/api/v1/launch_plans/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", - "description": "Fetch existing launch plan definitions matching input filters.", "operationId": "ListLaunchPlans2", "responses": { "200": { @@ -1282,7 +1252,6 @@ "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", - "description": "Fetch existing launch plan definitions matching input filters.", "operationId": "ListLaunchPlans", "responses": { "200": { @@ -1364,7 +1333,6 @@ "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { "summary": "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition.", - "description": "Retrieve an existing launch plan definition.", "operationId": "GetLaunchPlan", "responses": { "200": { @@ -1425,7 +1393,6 @@ }, "put": { "summary": "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`.", - "description": "Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.", "operationId": "UpdateLaunchPlan", "responses": { "200": { @@ -1481,7 +1448,6 @@ "/api/v1/matchable_attributes": { "get": { "summary": "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type.", - "description": "Retrieve a list of MatchableAttributesConfiguration objects.", "operationId": "ListMatchableAttributes", "responses": { "200": { @@ -1519,7 +1485,6 @@ "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object.", - "description": "Retrieve a NamedEntity object.", "operationId": "GetNamedEntity", "responses": { "200": { @@ -1572,7 +1537,6 @@ }, "put": { "summary": "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object.", - "description": "Update the fields associated with a NamedEntity", "operationId": "UpdateNamedEntity", "responses": { "200": { @@ -1635,7 +1599,6 @@ "/api/v1/named_entities/{resource_type}/{project}/{domain}": { "get": { "summary": "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects.", - "description": "Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain.", "operationId": "ListNamedEntities", "responses": { "200": { @@ -1724,7 +1687,6 @@ "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { "get": { "summary": "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`.", - "description": "Retrieve an existing node execution.", "operationId": "GetNodeExecution", "responses": { "200": { @@ -1771,7 +1733,6 @@ "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`.", - "description": "Fetch existing node executions matching input filters.", "operationId": "ListNodeExecutions", "responses": { "200": { @@ -1859,7 +1820,6 @@ "/api/v1/project_attributes/{attributes.project}": { "put": { "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level", - "description": "Update the customized resource attributes associated with a project", "operationId": "UpdateProjectAttributes", "responses": { "200": { @@ -1894,7 +1854,6 @@ "/api/v1/project_attributes/{project}": { "get": { "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "description": "Retrieve the customized resource attributes associated with a project", "operationId": "GetProjectAttributes", "responses": { "200": { @@ -1937,7 +1896,6 @@ }, "delete": { "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "description": "Delete the customized resource attributes associated with a project", "operationId": "DeleteProjectAttributes", "responses": { "200": { @@ -1972,7 +1930,6 @@ "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}": { "put": { "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "description": "Update the customized resource attributes associated with a project-domain combination", "operationId": "UpdateProjectDomainAttributes", "responses": { "200": { @@ -2014,7 +1971,6 @@ "/api/v1/project_domain_attributes/{project}/{domain}": { "get": { "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "description": "Retrieve the customized resource attributes associated with a project-domain combination", "operationId": "GetProjectDomainAttributes", "responses": { "200": { @@ -2064,7 +2020,6 @@ }, "delete": { "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", - "description": "Delete the customized resource attributes associated with a project-domain combination", "operationId": "DeleteProjectDomainAttributes", "responses": { "200": { @@ -2106,7 +2061,6 @@ "/api/v1/projects": { "get": { "summary": "Fetches a list of :ref:`ref_flyteidl.admin.Project`", - "description": "Fetch registered projects.", "operationId": "ListProjects", "responses": { "200": { @@ -2165,7 +2119,6 @@ }, "post": { "summary": "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment.", - "description": "Register a project.", "operationId": "RegisterProject", "responses": { "200": { @@ -2193,7 +2146,6 @@ "/api/v1/projects/{id}": { "put": { "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", - "description": "Update a project.", "operationId": "UpdateProject", "responses": { "200": { @@ -2228,7 +2180,6 @@ "/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}": { "get": { "summary": "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`.", - "description": "Retrieve an existing task execution.", "operationId": "GetTaskExecution", "responses": { "200": { @@ -2325,7 +2276,6 @@ "/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}": { "get": { "summary": "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`.", - "description": "Fetch existing task executions matching input filters.", "operationId": "ListTaskExecutions", "responses": { "200": { @@ -2413,7 +2363,6 @@ "/api/v1/task_ids/{project}/{domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects.", - "description": "Fetch existing task definition identifiers matching input filters.", "operationId": "ListTaskIds", "responses": { "200": { @@ -2488,7 +2437,6 @@ "/api/v1/tasks": { "post": { "summary": "Create and upload a :ref:`ref_flyteidl.admin.Task` definition", - "description": "Create and register a task definition.", "operationId": "CreateTask", "responses": { "200": { @@ -2496,14 +2444,6 @@ "schema": { "$ref": "#/definitions/adminTaskCreateResponse" } - }, - "400": { - "description": "Returned for bad request that may have failed validation.", - "schema": {} - }, - "409": { - "description": "Returned for a request that references an identical entity that has already been registered.", - "schema": {} } }, "parameters": [ @@ -2524,7 +2464,6 @@ "/api/v1/tasks/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", - "description": "Fetch existing task definitions matching input filters.", "operationId": "ListTasks2", "responses": { "200": { @@ -2606,7 +2545,6 @@ "/api/v1/tasks/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", - "description": "Fetch existing task definitions matching input filters.", "operationId": "ListTasks", "responses": { "200": { @@ -2688,7 +2626,6 @@ "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { "summary": "Fetch a :ref:`ref_flyteidl.admin.Task` definition.", - "description": "Retrieve an existing task definition.", "operationId": "GetTask", "responses": { "200": { @@ -2750,7 +2687,6 @@ }, "/api/v1/version": { "get": { - "description": "Retrieve the Version (including the Build information) for FlyteAdmin service", "operationId": "GetVersion", "responses": { "200": { @@ -2768,7 +2704,6 @@ "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}": { "put": { "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "description": "Update the customized resource attributes associated with a project, domain and workflow combination", "operationId": "UpdateWorkflowAttributes", "responses": { "200": { @@ -2817,7 +2752,6 @@ "/api/v1/workflow_attributes/{project}/{domain}/{workflow}": { "get": { "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "description": "Retrieve the customized resource attributes associated with a project, domain and workflow combination", "operationId": "GetWorkflowAttributes", "responses": { "200": { @@ -2874,7 +2808,6 @@ }, "delete": { "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", - "description": "Delete the customized resource attributes associated with a project, domain and workflow combination", "operationId": "DeleteWorkflowAttributes", "responses": { "200": { @@ -2923,7 +2856,6 @@ "/api/v1/workflow_ids/{project}/{domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects.", - "description": "Fetch an existing workflow definition identifiers matching input filters.", "operationId": "ListWorkflowIds", "responses": { "200": { @@ -2998,7 +2930,6 @@ "/api/v1/workflows": { "post": { "summary": "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition", - "description": "Create and register a workflow definition.", "operationId": "CreateWorkflow", "responses": { "200": { @@ -3006,14 +2937,6 @@ "schema": { "$ref": "#/definitions/adminWorkflowCreateResponse" } - }, - "400": { - "description": "Returned for bad request that may have failed validation.", - "schema": {} - }, - "409": { - "description": "Returned for a request that references an identical entity that has already been registered.", - "schema": {} } }, "parameters": [ @@ -3034,7 +2957,6 @@ "/api/v1/workflows/{id.project}/{id.domain}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", - "description": "Fetch existing workflow definitions matching input filters.", "operationId": "ListWorkflows2", "responses": { "200": { @@ -3116,7 +3038,6 @@ "/api/v1/workflows/{id.project}/{id.domain}/{id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", - "description": "Fetch existing workflow definitions matching input filters.", "operationId": "ListWorkflows", "responses": { "200": { @@ -3198,7 +3119,6 @@ "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { "summary": "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition.", - "description": "Retrieve an existing workflow definition.", "operationId": "GetWorkflow", "responses": { "200": { @@ -6548,7 +6468,7 @@ "$ref": "#/definitions/coreBinary" }, "schema": { - "$ref": "#/definitions/flyteidlcoreSchema" + "$ref": "#/definitions/coreSchema" }, "none_type": { "$ref": "#/definitions/coreVoid" @@ -6567,6 +6487,18 @@ } } }, + "coreSchema": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/coreSchemaType" + } + }, + "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." + }, "coreSchemaType": { "type": "object", "properties": { @@ -7500,18 +7432,6 @@ }, "title": "Metadata for a WorkflowNode" }, - "flyteidlcoreSchema": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/coreSchemaType" - } - }, - "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." - }, "flyteidleventDynamicWorkflowNodeMetadata": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-go/flyteidl/service/auth.pb.go b/flyteidl/gen/pb-go/flyteidl/service/auth.pb.go index d99c4303184..6dc8211ac93 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/auth.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/auth.pb.go @@ -7,7 +7,6 @@ import ( context "context" fmt "fmt" proto "github.com/golang/protobuf/proto" - _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -314,53 +313,47 @@ func init() { func init() { proto.RegisterFile("flyteidl/service/auth.proto", fileDescriptor_6eee4a0c193ab842) } var fileDescriptor_6eee4a0c193ab842 = []byte{ - // 725 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcb, 0x6e, 0xd3, 0x4c, - 0x18, 0x55, 0x9a, 0x36, 0x4d, 0xe6, 0xbf, 0xf5, 0x77, 0x95, 0xd4, 0x75, 0x29, 0x4c, 0x23, 0x55, - 0x6d, 0x25, 0x62, 0x43, 0x11, 0x02, 0x24, 0x36, 0x69, 0x85, 0x0a, 0x82, 0x42, 0x95, 0x16, 0x09, - 0x75, 0x63, 0x39, 0xf6, 0x57, 0x67, 0x88, 0x33, 0x63, 0x66, 0xc6, 0x8d, 0xc2, 0x92, 0x05, 0x2b, - 0x56, 0xe5, 0x09, 0x78, 0x26, 0x5e, 0x81, 0x25, 0x5b, 0x76, 0x2c, 0x90, 0x67, 0xec, 0xa6, 0x4e, - 0x5a, 0x2e, 0xab, 0x68, 0xe6, 0x9c, 0xef, 0x76, 0xe6, 0x7c, 0x0e, 0x5a, 0x39, 0x89, 0x46, 0x12, - 0x48, 0x10, 0x39, 0x02, 0xf8, 0x29, 0xf1, 0xc1, 0xf1, 0x12, 0xd9, 0xb3, 0x63, 0xce, 0x24, 0x33, - 0x16, 0x72, 0xd0, 0xce, 0x40, 0xeb, 0x5a, 0xc8, 0x58, 0x18, 0x81, 0xe3, 0xc5, 0xc4, 0xf1, 0x28, - 0x65, 0xd2, 0x93, 0x84, 0x51, 0xa1, 0xf9, 0xd6, 0x4d, 0xf5, 0xe3, 0xb7, 0x42, 0xa0, 0x2d, 0x31, - 0xf4, 0xc2, 0x10, 0xb8, 0xc3, 0x62, 0xc5, 0x98, 0x66, 0x37, 0x97, 0x50, 0xfd, 0x45, 0x3b, 0x91, - 0xbd, 0xed, 0x7d, 0x90, 0x5e, 0xe0, 0x49, 0xaf, 0x03, 0x6f, 0x12, 0x10, 0xb2, 0xf9, 0x69, 0x16, - 0x35, 0x26, 0x11, 0x11, 0x33, 0x2a, 0xc0, 0x68, 0xa0, 0x0a, 0x11, 0x22, 0x01, 0x6e, 0x96, 0x70, - 0x69, 0xb3, 0xd6, 0xc9, 0x4e, 0xc6, 0x5d, 0xd4, 0x48, 0xfb, 0x66, 0x9c, 0xbc, 0x55, 0x35, 0x5c, - 0xa0, 0x41, 0xcc, 0x08, 0x95, 0xe6, 0x8c, 0xe2, 0xd5, 0x0b, 0xe8, 0xa3, 0x0c, 0x34, 0xd6, 0xd1, - 0xbf, 0x92, 0xf5, 0xe1, 0x02, 0xbd, 0xac, 0xe8, 0xff, 0xa8, 0xdb, 0x73, 0xda, 0x7d, 0x64, 0xf2, - 0xac, 0x03, 0x57, 0x8e, 0x62, 0x10, 0xae, 0x48, 0xe2, 0x98, 0x71, 0x09, 0x81, 0x39, 0x8b, 0xcb, - 0x9b, 0xb5, 0x4e, 0x23, 0xc7, 0x8f, 0x52, 0xf8, 0x30, 0x47, 0x8d, 0x2d, 0xb4, 0x20, 0x7c, 0x56, - 0x8c, 0x98, 0x53, 0x11, 0xff, 0xe9, 0xfb, 0x31, 0xf5, 0x00, 0xad, 0x17, 0x7b, 0x71, 0xd3, 0x9e, - 0xdd, 0x01, 0xc8, 0x1e, 0x0b, 0x2e, 0xc6, 0x57, 0x54, 0xfc, 0x5a, 0xa1, 0xc5, 0x54, 0xad, 0x7d, - 0xcd, 0x1c, 0x67, 0x5c, 0x46, 0xd5, 0xd7, 0xc3, 0xbe, 0x70, 0x13, 0x4e, 0xcc, 0x79, 0x35, 0xd7, - 0x7c, 0x7a, 0x7e, 0xc9, 0x89, 0xb1, 0x87, 0xb0, 0xcf, 0x02, 0x70, 0xfd, 0x9e, 0x17, 0x45, 0x40, - 0x43, 0xb8, 0xa4, 0x4e, 0x55, 0xd5, 0x59, 0x4d, 0x79, 0xbb, 0x39, 0x6d, 0xaa, 0xc6, 0x36, 0xaa, - 0x87, 0xdc, 0xa3, 0x72, 0x4a, 0x97, 0x9a, 0x8a, 0x5e, 0x54, 0xe0, 0x84, 0x28, 0x3b, 0x68, 0x35, - 0x80, 0xd4, 0x4e, 0xee, 0x15, 0x6f, 0x86, 0x54, 0xb3, 0x2b, 0x9a, 0xd4, 0xbe, 0xec, 0xe5, 0x9a, - 0x37, 0xd0, 0xea, 0x41, 0xd2, 0x8d, 0x88, 0xbf, 0x1b, 0x11, 0xd0, 0xf3, 0xef, 0x32, 0x7a, 0x42, - 0xc2, 0xdc, 0x44, 0xef, 0x67, 0xd0, 0xf5, 0xab, 0x18, 0x99, 0x99, 0x56, 0x50, 0xcd, 0x57, 0x98, - 0x4b, 0x82, 0xcc, 0x4f, 0x55, 0x7d, 0xf1, 0x24, 0x30, 0xd6, 0xd0, 0xdf, 0x1c, 0x02, 0xc2, 0xc1, - 0x97, 0x4a, 0x40, 0xed, 0xa3, 0xbf, 0xf2, 0xbb, 0x54, 0xc4, 0x06, 0xaa, 0xe8, 0x47, 0x34, 0xcb, - 0x6a, 0xd8, 0xec, 0x64, 0x3c, 0x44, 0x56, 0x71, 0xb0, 0x41, 0x66, 0x63, 0xb7, 0x0f, 0x23, 0x73, - 0x56, 0x25, 0x32, 0x0b, 0x8c, 0xdc, 0xe7, 0x4f, 0x61, 0x94, 0x2a, 0x9a, 0x6d, 0x9b, 0xdb, 0x93, - 0x32, 0x1e, 0xab, 0x32, 0xa7, 0x02, 0x17, 0x33, 0xf0, 0xb1, 0x94, 0xf1, 0xb9, 0x41, 0x2d, 0x54, - 0xf5, 0x92, 0x80, 0x00, 0xf5, 0xc1, 0xac, 0xe8, 0x41, 0xf2, 0xf3, 0xf6, 0xf7, 0x32, 0x5a, 0xcc, - 0xec, 0xa1, 0x6a, 0x1c, 0xea, 0x78, 0xe3, 0x5b, 0x09, 0xfd, 0xbf, 0x07, 0xb2, 0xb8, 0x68, 0xc6, - 0x86, 0x3d, 0xb9, 0xf3, 0xf6, 0xa5, 0x4b, 0x6a, 0x6d, 0xfe, 0x9a, 0xa8, 0x65, 0x6e, 0x7e, 0x28, - 0x9d, 0xb5, 0x8f, 0xad, 0x57, 0x1d, 0x90, 0x9c, 0xc0, 0x29, 0x08, 0xac, 0x79, 0xb8, 0xa0, 0x00, - 0x4e, 0x93, 0x00, 0xc7, 0xb9, 0x54, 0x36, 0x3e, 0xea, 0x11, 0x81, 0xf3, 0xe1, 0x31, 0x11, 0xd8, - 0xa3, 0x8c, 0x8e, 0x06, 0x2c, 0x11, 0xd1, 0x08, 0x7b, 0xbe, 0x0f, 0x42, 0x90, 0x6e, 0x04, 0xf6, - 0xbb, 0xcf, 0x5f, 0x3e, 0xce, 0x6c, 0x19, 0x1b, 0x8e, 0x3d, 0x84, 0x28, 0x6a, 0xf5, 0x29, 0x1b, - 0x52, 0x87, 0xa5, 0xc9, 0x5b, 0x85, 0x0a, 0x2d, 0x5d, 0xc1, 0xf8, 0x5a, 0x42, 0xf5, 0x3d, 0x90, - 0x17, 0xbd, 0xa1, 0x7d, 0x61, 0x38, 0xd3, 0x23, 0xfd, 0xd4, 0x63, 0xd6, 0xad, 0xdf, 0x0f, 0xc8, - 0xb4, 0x88, 0xcf, 0xda, 0xcf, 0xad, 0x67, 0x63, 0x29, 0x62, 0x45, 0xc7, 0x2a, 0x0d, 0xd6, 0xde, - 0xc3, 0x84, 0x9e, 0xb0, 0x3f, 0x1c, 0x7f, 0xd9, 0x58, 0x72, 0x7c, 0x55, 0xc9, 0x39, 0xbd, 0xed, - 0xa8, 0x6c, 0xae, 0xce, 0xb6, 0xf3, 0xe0, 0xf8, 0x5e, 0x48, 0x64, 0x2f, 0xe9, 0xda, 0x3e, 0x1b, - 0x68, 0x88, 0xf1, 0xd0, 0x39, 0xff, 0xec, 0x87, 0x40, 0x9d, 0xb8, 0xdb, 0x0a, 0x99, 0x33, 0xf9, - 0x4f, 0xd0, 0xad, 0xa8, 0xef, 0xf4, 0x9d, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x29, 0xb8, 0x62, - 0xc0, 0x24, 0x06, 0x00, 0x00, + // 633 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x4e, 0x14, 0x41, + 0x10, 0xce, 0x2e, 0xb0, 0xec, 0x96, 0x7f, 0xd8, 0x64, 0x97, 0x61, 0x11, 0x81, 0x4d, 0x08, 0x70, + 0xd8, 0x6d, 0xc5, 0x18, 0x35, 0xf1, 0x02, 0xc4, 0xa0, 0x31, 0x44, 0x02, 0x7a, 0xf1, 0xd2, 0x99, + 0x9d, 0x29, 0x66, 0xdb, 0x1d, 0xba, 0xc7, 0x9e, 0x1e, 0xc8, 0x7a, 0xf4, 0xe0, 0x0b, 0x78, 0xf0, + 0xe0, 0xc9, 0x07, 0xf2, 0xe4, 0x2b, 0xf8, 0x20, 0x66, 0xba, 0x7b, 0x80, 0x59, 0x40, 0x3d, 0x76, + 0x7f, 0x5f, 0x75, 0x55, 0x7d, 0xf5, 0x55, 0xc3, 0xc2, 0x51, 0x3c, 0xd2, 0xc8, 0xc3, 0x98, 0xa6, + 0xa8, 0x4e, 0x78, 0x80, 0xd4, 0xcf, 0xf4, 0xa0, 0x97, 0x28, 0xa9, 0x25, 0x99, 0x29, 0xc0, 0x9e, + 0x03, 0xdb, 0xf7, 0x22, 0x29, 0xa3, 0x18, 0xa9, 0x9f, 0x70, 0xea, 0x0b, 0x21, 0xb5, 0xaf, 0xb9, + 0x14, 0xa9, 0xe5, 0x77, 0xe6, 0xa0, 0xf9, 0x66, 0x2b, 0xd3, 0x83, 0xcd, 0x3d, 0xd4, 0x7e, 0xe8, + 0x6b, 0xff, 0x00, 0x3f, 0x66, 0x98, 0xea, 0xce, 0x8f, 0x49, 0x68, 0x8d, 0x23, 0x69, 0x22, 0x45, + 0x8a, 0xa4, 0x05, 0x35, 0x9e, 0xa6, 0x19, 0x2a, 0xaf, 0xb2, 0x5c, 0x59, 0x6f, 0x1c, 0xb8, 0x13, + 0x79, 0x0c, 0xad, 0xbc, 0x12, 0xa9, 0xf8, 0x27, 0x93, 0x83, 0xa1, 0x08, 0x13, 0xc9, 0x85, 0xf6, + 0xaa, 0x86, 0xd7, 0x2c, 0xa1, 0x2f, 0x1c, 0x48, 0x56, 0xe1, 0xb6, 0x96, 0x43, 0xbc, 0x40, 0x9f, + 0x30, 0xf4, 0x5b, 0xe6, 0xf6, 0x8c, 0xf6, 0x14, 0x3c, 0xe5, 0x2a, 0x60, 0x7a, 0x94, 0x60, 0xca, + 0xd2, 0x2c, 0x49, 0xa4, 0xd2, 0x18, 0x7a, 0x93, 0xcb, 0x13, 0xeb, 0x8d, 0x83, 0x56, 0x81, 0xbf, + 0xcd, 0xe1, 0xc3, 0x02, 0x25, 0x1b, 0x30, 0x93, 0x06, 0xb2, 0x1c, 0x31, 0x65, 0x22, 0xee, 0xd8, + 0xfb, 0x73, 0xea, 0x3e, 0xac, 0x96, 0x6b, 0x61, 0x79, 0xcd, 0xec, 0x18, 0xf5, 0x40, 0x86, 0x17, + 0xe3, 0x6b, 0x26, 0x7e, 0xa5, 0x54, 0x62, 0xae, 0xd6, 0x9e, 0x65, 0x9e, 0xbf, 0x38, 0x0f, 0xf5, + 0x0f, 0xa7, 0xc3, 0x94, 0x65, 0x8a, 0x7b, 0xd3, 0xa6, 0xaf, 0xe9, 0xfc, 0xfc, 0x4e, 0x71, 0xb2, + 0x0b, 0xcb, 0x81, 0x0c, 0x91, 0x05, 0x03, 0x3f, 0x8e, 0x51, 0x44, 0x78, 0x45, 0x9e, 0xba, 0xc9, + 0xb3, 0x98, 0xf3, 0x76, 0x0a, 0xda, 0xa5, 0x1c, 0x9b, 0xd0, 0x8c, 0x94, 0x2f, 0xf4, 0x25, 0x5d, + 0x1a, 0x26, 0x7a, 0xd6, 0x80, 0x63, 0xa2, 0x6c, 0xc3, 0x62, 0x88, 0xb9, 0x41, 0xd8, 0x35, 0x33, + 0x03, 0x53, 0xec, 0x82, 0x25, 0x6d, 0x5d, 0x35, 0xb9, 0xce, 0x12, 0x2c, 0xee, 0x67, 0xfd, 0x98, + 0x07, 0x3b, 0x31, 0x47, 0xdb, 0xff, 0x8e, 0x14, 0x47, 0x3c, 0x2a, 0x4c, 0xf4, 0xa5, 0x0a, 0xf7, + 0xaf, 0x63, 0x38, 0x33, 0x2d, 0x40, 0x23, 0x30, 0x18, 0xe3, 0xa1, 0xf3, 0x53, 0xdd, 0x5e, 0xbc, + 0x0a, 0xc9, 0x0a, 0xdc, 0x54, 0x18, 0x72, 0x85, 0x81, 0x36, 0x02, 0x5a, 0x1f, 0xdd, 0x28, 0xee, + 0x72, 0x11, 0x5b, 0x50, 0xb3, 0x43, 0xf4, 0x26, 0x4c, 0xb3, 0xee, 0x44, 0x9e, 0x43, 0xbb, 0xdc, + 0xd8, 0xb1, 0xb3, 0x31, 0x1b, 0xe2, 0xc8, 0x9b, 0x34, 0x0f, 0x79, 0x25, 0x46, 0xe1, 0xf3, 0xd7, + 0x38, 0xca, 0x15, 0x75, 0xfb, 0xc3, 0x06, 0x5a, 0x27, 0xe7, 0xaa, 0x4c, 0x99, 0xc0, 0x59, 0x07, + 0xbe, 0xd4, 0x3a, 0x39, 0x33, 0x68, 0x1b, 0xea, 0x7e, 0x16, 0x72, 0x14, 0x01, 0x7a, 0x35, 0xdb, + 0x48, 0x71, 0xde, 0xfc, 0x59, 0x85, 0x59, 0x67, 0x0f, 0x93, 0xe3, 0xd0, 0xc6, 0x93, 0x6f, 0x15, + 0xb8, 0xbb, 0x8b, 0xba, 0xbc, 0x68, 0x64, 0xad, 0x37, 0xbe, 0xc5, 0xbd, 0x2b, 0x97, 0xb4, 0xbd, + 0xfe, 0x6f, 0xa2, 0x95, 0xb9, 0x43, 0x3f, 0xff, 0xfa, 0xfd, 0xb5, 0xba, 0x41, 0xd6, 0x68, 0xef, + 0x14, 0xe3, 0xb8, 0x3b, 0x14, 0xf2, 0x54, 0x50, 0x99, 0x0b, 0xd0, 0x2d, 0xa9, 0xd0, 0xcd, 0x1f, + 0x42, 0x45, 0xbe, 0x57, 0xa0, 0xb9, 0x8b, 0xfa, 0xe2, 0xf4, 0xec, 0xe4, 0x08, 0xbd, 0x9c, 0xf4, + 0xaf, 0x2e, 0x68, 0x3f, 0xf8, 0xff, 0x00, 0x57, 0xed, 0x92, 0xa9, 0x76, 0x9e, 0xcc, 0xd1, 0xc0, + 0x00, 0xf4, 0xe4, 0x21, 0x35, 0x6f, 0x30, 0x6b, 0x8d, 0xed, 0x67, 0xef, 0x9f, 0x44, 0x5c, 0x0f, + 0xb2, 0x7e, 0x2f, 0x90, 0xc7, 0x16, 0x92, 0x2a, 0xa2, 0x67, 0x3f, 0x63, 0x84, 0x82, 0x26, 0xfd, + 0x6e, 0x24, 0xe9, 0xf8, 0x67, 0xd9, 0xaf, 0x99, 0x8f, 0xef, 0xd1, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x39, 0xb1, 0x8a, 0x3d, 0x47, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/auth.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/auth.swagger.json index 23dc0f6017f..e3fbf421f3e 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/auth.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/auth.swagger.json @@ -18,7 +18,6 @@ "/.well-known/oauth-authorization-server": { "get": { "summary": "Anonymously accessible. Retrieves local or external oauth authorization server metadata.", - "description": "Retrieves OAuth2 authorization server metadata. This endpoint is anonymously accessible.", "operationId": "GetOAuth2Metadata", "responses": { "200": { @@ -36,7 +35,6 @@ "/config/v1/flyte_client": { "get": { "summary": "Anonymously accessible. Retrieves the client information clients should use when initiating OAuth2 authorization\nrequests.", - "description": "Retrieves public flyte client info. This endpoint is anonymously accessible.", "operationId": "GetPublicClientConfig", "responses": { "200": { diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go index 3e5bda340d0..7af285aadbf 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go @@ -10,7 +10,6 @@ import ( proto "github.com/golang/protobuf/proto" duration "github.com/golang/protobuf/ptypes/duration" timestamp "github.com/golang/protobuf/ptypes/timestamp" - _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -453,59 +452,51 @@ func init() { func init() { proto.RegisterFile("flyteidl/service/dataproxy.proto", fileDescriptor_bffb71366d75dab0) } var fileDescriptor_bffb71366d75dab0 = []byte{ - // 822 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcf, 0x6f, 0x1b, 0x45, - 0x18, 0xed, 0xb8, 0x10, 0xea, 0x69, 0x00, 0x33, 0x42, 0xc1, 0xdd, 0xb6, 0xce, 0x68, 0x41, 0x28, - 0x0a, 0xf5, 0x2e, 0x04, 0x55, 0x50, 0xdf, 0x5c, 0xdb, 0x15, 0xa6, 0x6d, 0x14, 0x2d, 0xce, 0x01, - 0x2e, 0xab, 0xf1, 0xee, 0xe7, 0xcd, 0x90, 0xf5, 0xcc, 0x32, 0x33, 0xeb, 0xc4, 0x12, 0x3f, 0x24, - 0x4e, 0x9c, 0xcb, 0x81, 0x1b, 0x77, 0xc4, 0xff, 0xc1, 0x3f, 0xc0, 0xbf, 0xc0, 0x89, 0x13, 0x67, - 0x4e, 0xc8, 0xbb, 0x6b, 0xbb, 0xfe, 0xd5, 0x1a, 0xe8, 0x29, 0x9a, 0x79, 0x6f, 0x67, 0xde, 0x7b, - 0xdf, 0x7c, 0x5f, 0x8c, 0xe9, 0x20, 0x1e, 0x1b, 0xe0, 0x61, 0xec, 0x6a, 0x50, 0x23, 0x1e, 0x80, - 0x1b, 0x32, 0xc3, 0x12, 0x25, 0x2f, 0xc7, 0x4e, 0xa2, 0xa4, 0x91, 0xa4, 0x32, 0x65, 0x38, 0x05, - 0xc3, 0xba, 0x15, 0x49, 0x19, 0xc5, 0xe0, 0xb2, 0x84, 0xbb, 0x4c, 0x08, 0x69, 0x98, 0xe1, 0x52, - 0xe8, 0x9c, 0x6f, 0xdd, 0xc9, 0xfe, 0x04, 0xf5, 0x08, 0x44, 0x5d, 0x5f, 0xb0, 0x28, 0x02, 0xe5, - 0xca, 0x24, 0x63, 0xac, 0x61, 0xd7, 0x8a, 0xb3, 0xb2, 0x55, 0x3f, 0x1d, 0xb8, 0x61, 0xaa, 0x32, - 0x42, 0x81, 0xef, 0x2f, 0xe3, 0x86, 0x0f, 0x41, 0x1b, 0x36, 0x4c, 0xa6, 0x07, 0xcc, 0x0c, 0x04, - 0x52, 0x81, 0xcb, 0x43, 0x10, 0x86, 0x0f, 0x38, 0xa8, 0x1c, 0xb7, 0x7f, 0x42, 0xf8, 0x56, 0x4b, - 0x01, 0x33, 0x70, 0x9a, 0xc4, 0x92, 0x85, 0x8f, 0x64, 0x90, 0x9d, 0xef, 0x81, 0x4e, 0xa4, 0xd0, - 0x40, 0x6e, 0x63, 0xac, 0x79, 0x24, 0x20, 0xf4, 0x53, 0x15, 0x57, 0x11, 0x45, 0x07, 0x65, 0xaf, - 0x9c, 0xef, 0x9c, 0xaa, 0x78, 0x02, 0x0b, 0x66, 0xf8, 0x08, 0x32, 0xb8, 0x94, 0xc3, 0xf9, 0xce, - 0x04, 0xbe, 0x87, 0x31, 0x5c, 0x26, 0x5c, 0x81, 0xf6, 0x99, 0xa9, 0x5e, 0xa5, 0xe8, 0xe0, 0xfa, - 0x91, 0xe5, 0xe4, 0xa2, 0x9d, 0xa9, 0x68, 0xa7, 0x37, 0x15, 0xed, 0x95, 0x0b, 0x76, 0xd3, 0xd8, - 0xbf, 0x21, 0x7c, 0x73, 0xbd, 0xb2, 0xaf, 0x52, 0xd0, 0x86, 0x54, 0xf1, 0x2b, 0x89, 0x92, 0x5f, - 0x42, 0x60, 0x0a, 0x55, 0xd3, 0x25, 0xd9, 0xc3, 0x3b, 0xa1, 0x1c, 0x32, 0x2e, 0x0a, 0x3d, 0xc5, - 0x8a, 0x58, 0xf8, 0xda, 0x80, 0xc7, 0x20, 0xd8, 0x10, 0x32, 0x29, 0x65, 0x6f, 0xb6, 0x26, 0x1f, - 0xcf, 0x85, 0x72, 0x51, 0x7d, 0x29, 0x13, 0x7a, 0x63, 0x45, 0x68, 0xbb, 0x48, 0x7f, 0xa6, 0xb3, - 0x2b, 0xc8, 0x3e, 0xbe, 0x1e, 0x48, 0x61, 0x40, 0x18, 0x7f, 0x18, 0xde, 0xad, 0xbe, 0x4c, 0xd1, - 0xc1, 0xae, 0x87, 0x8b, 0xad, 0xc7, 0xe1, 0x5d, 0xfb, 0x6b, 0x7c, 0x3b, 0xf7, 0xd1, 0x96, 0x17, - 0x62, 0x9d, 0x93, 0xc5, 0x0c, 0xd1, 0x72, 0x86, 0x8b, 0xd2, 0x4a, 0xdb, 0x4b, 0x6b, 0x94, 0xaa, - 0xc8, 0xfe, 0x16, 0xd7, 0x36, 0xdd, 0xbe, 0x5d, 0x85, 0x17, 0x4b, 0x58, 0xfa, 0x17, 0x25, 0xcc, - 0xee, 0xff, 0x1b, 0xe1, 0x1b, 0x4b, 0x02, 0xb8, 0x38, 0x9f, 0x5a, 0x6f, 0xe1, 0x57, 0x99, 0x32, - 0x7c, 0xc0, 0x02, 0xe3, 0x9b, 0x71, 0x02, 0xd9, 0xf5, 0xaf, 0x1d, 0xd5, 0x9c, 0xe5, 0xae, 0x72, - 0x9a, 0x05, 0xad, 0x37, 0x4e, 0xc0, 0xdb, 0x65, 0x4f, 0xad, 0xfe, 0x7b, 0x40, 0xa4, 0x87, 0xdf, - 0x10, 0x32, 0x04, 0x1f, 0x2e, 0x21, 0x48, 0x27, 0xa0, 0xcf, 0xc3, 0xe2, 0x95, 0xbe, 0x3b, 0x97, - 0x30, 0xe9, 0x1c, 0xe7, 0x58, 0x86, 0xd0, 0x99, 0xd2, 0xba, 0xb3, 0x36, 0xfa, 0xe4, 0x8a, 0xf7, - 0xba, 0x58, 0x84, 0xee, 0x5f, 0xc3, 0x3b, 0x5a, 0xa6, 0x2a, 0x00, 0x7b, 0x84, 0xad, 0x75, 0xde, - 0x37, 0x04, 0x7f, 0xf5, 0x45, 0x05, 0x7f, 0xd8, 0xc2, 0xbb, 0x4f, 0xe7, 0x45, 0x6e, 0xe2, 0xb7, - 0x9a, 0x5e, 0xaf, 0xfb, 0xa0, 0xd9, 0xea, 0xf9, 0xbd, 0xcf, 0x4f, 0x3a, 0xfe, 0xe9, 0x71, 0xbb, - 0xf3, 0xa0, 0x7b, 0xdc, 0x69, 0x57, 0xae, 0x90, 0x3d, 0x4c, 0x16, 0xc1, 0x76, 0xa7, 0xf5, 0xb0, - 0x82, 0x8e, 0x7e, 0xde, 0xc1, 0x95, 0x36, 0x33, 0xec, 0x64, 0x32, 0xed, 0x3e, 0xcb, 0xcb, 0x40, - 0xfe, 0x42, 0xf8, 0xcd, 0x75, 0x5d, 0x49, 0xea, 0xab, 0x25, 0x7b, 0x46, 0xf7, 0x5a, 0xce, 0xb6, - 0xf4, 0x3c, 0x2b, 0x7b, 0xfc, 0xa4, 0xf9, 0xd8, 0x7a, 0x98, 0x53, 0x34, 0x65, 0xf4, 0x42, 0x71, - 0x03, 0x75, 0x29, 0xe2, 0x31, 0x3d, 0x33, 0x26, 0xa1, 0x71, 0xf1, 0x01, 0x35, 0x67, 0xcc, 0x50, - 0xae, 0x29, 0x0b, 0x02, 0xd0, 0x9a, 0xf7, 0x63, 0xa0, 0x03, 0xa9, 0xa8, 0x61, 0xfa, 0x5c, 0x53, - 0x66, 0xa8, 0x4a, 0xc5, 0x64, 0x46, 0x3a, 0xdf, 0xff, 0xfe, 0xc7, 0x8f, 0xa5, 0xb7, 0xed, 0x5a, - 0x36, 0xa6, 0x47, 0x1f, 0xcc, 0xe7, 0xba, 0x3b, 0x7b, 0x90, 0xa9, 0x12, 0x0d, 0x74, 0x48, 0x7e, - 0x29, 0xe1, 0xbd, 0xf5, 0x2d, 0x44, 0xdc, 0x4d, 0x2e, 0x36, 0xb4, 0xba, 0xf5, 0xfe, 0xf6, 0x1f, - 0x14, 0xc6, 0x7f, 0x45, 0x4f, 0x9a, 0xdf, 0x59, 0xdf, 0xb4, 0x21, 0x51, 0x10, 0x30, 0x03, 0x61, - 0x83, 0x9e, 0xc4, 0xc0, 0x34, 0xd0, 0x54, 0x03, 0x5d, 0x7d, 0x5d, 0x94, 0x0b, 0x6d, 0x80, 0x85, - 0x0e, 0x9d, 0x87, 0xa5, 0x80, 0x85, 0xff, 0x3b, 0x2b, 0x4a, 0x9e, 0x93, 0xd5, 0x0f, 0x25, 0x44, - 0xfe, 0x44, 0x98, 0xac, 0x6a, 0x22, 0xef, 0x3d, 0xd7, 0xf6, 0x7c, 0x26, 0x58, 0x77, 0xb6, 0x23, - 0xcf, 0x1f, 0xc6, 0x23, 0xeb, 0xd3, 0x17, 0xec, 0xf5, 0x1d, 0x7b, 0xff, 0x19, 0x5e, 0x63, 0x2e, - 0xce, 0x1b, 0xe8, 0xf0, 0xfe, 0xbd, 0x2f, 0x3e, 0x8a, 0xb8, 0x39, 0x4b, 0xfb, 0x4e, 0x20, 0x87, - 0x6e, 0x26, 0x5a, 0xaa, 0xc8, 0x9d, 0xfd, 0xc7, 0x8d, 0x40, 0xb8, 0x49, 0xbf, 0x1e, 0x49, 0x77, - 0xf9, 0x57, 0x44, 0x7f, 0x27, 0xeb, 0xdf, 0x0f, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x8d, 0xf0, - 0x5d, 0x0b, 0x60, 0x08, 0x00, 0x00, + // 702 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xcf, 0x6e, 0xd3, 0x4a, + 0x14, 0xc6, 0x3b, 0xe9, 0xbd, 0xbd, 0xcd, 0xb4, 0xf7, 0xde, 0x30, 0x42, 0x25, 0x75, 0xdb, 0x34, + 0x32, 0x08, 0x95, 0x40, 0x6d, 0x28, 0xaa, 0xa0, 0xdd, 0xa5, 0x49, 0x2a, 0x22, 0xa0, 0xaa, 0x4c, + 0xba, 0x80, 0x8d, 0x35, 0xb1, 0x4f, 0xc2, 0x50, 0x67, 0xc6, 0x8c, 0xc7, 0xa1, 0x91, 0x10, 0x0b, + 0x56, 0xec, 0x59, 0xb0, 0x60, 0xc3, 0x8a, 0x47, 0xe1, 0x05, 0x78, 0x05, 0x9e, 0x02, 0xb1, 0x40, + 0xb1, 0x9d, 0xa4, 0x49, 0x93, 0x36, 0x20, 0x96, 0x67, 0xbe, 0x2f, 0x39, 0xbf, 0x39, 0x7f, 0xc6, + 0x38, 0xdf, 0xf0, 0x3a, 0x0a, 0x98, 0xeb, 0x99, 0x01, 0xc8, 0x36, 0x73, 0xc0, 0x74, 0xa9, 0xa2, + 0xbe, 0x14, 0x27, 0x1d, 0xc3, 0x97, 0x42, 0x09, 0x92, 0xe9, 0x39, 0x8c, 0xc4, 0xa1, 0xad, 0x36, + 0x85, 0x68, 0x7a, 0x60, 0x52, 0x9f, 0x99, 0x94, 0x73, 0xa1, 0xa8, 0x62, 0x82, 0x07, 0xb1, 0x5f, + 0xcb, 0x25, 0x6a, 0x14, 0xd5, 0xc3, 0x86, 0xe9, 0x86, 0x32, 0x32, 0x24, 0xfa, 0xfa, 0xa8, 0xae, + 0x58, 0x0b, 0x02, 0x45, 0x5b, 0x7e, 0xef, 0x0f, 0xfa, 0x48, 0x8e, 0x90, 0x60, 0x32, 0x17, 0xb8, + 0x62, 0x0d, 0x06, 0x32, 0xd6, 0xf5, 0x0f, 0x08, 0xaf, 0x96, 0x24, 0x50, 0x05, 0x47, 0xbe, 0x27, + 0xa8, 0xfb, 0x48, 0x38, 0xd1, 0xff, 0x5b, 0x10, 0xf8, 0x82, 0x07, 0x40, 0xd6, 0x30, 0x0e, 0x58, + 0x93, 0x83, 0x6b, 0x87, 0xd2, 0xcb, 0xa2, 0x3c, 0xda, 0x48, 0x5b, 0xe9, 0xf8, 0xe4, 0x48, 0x7a, + 0x5d, 0x99, 0x53, 0xc5, 0xda, 0x10, 0xc9, 0xa9, 0x58, 0x8e, 0x4f, 0xba, 0xf2, 0x0e, 0xc6, 0x70, + 0xe2, 0x33, 0x09, 0x81, 0x4d, 0x55, 0x76, 0x36, 0x8f, 0x36, 0x16, 0xb6, 0x34, 0x23, 0x86, 0x36, + 0x7a, 0xd0, 0x46, 0xad, 0x07, 0x6d, 0xa5, 0x13, 0x77, 0x51, 0xe9, 0x5f, 0x10, 0x5e, 0x19, 0x4f, + 0xf6, 0x32, 0x84, 0x40, 0x91, 0x2c, 0xfe, 0xc7, 0x97, 0xe2, 0x05, 0x38, 0x2a, 0xa1, 0xea, 0x85, + 0x64, 0x09, 0xcf, 0xb9, 0xa2, 0x45, 0x19, 0x4f, 0x78, 0x92, 0x88, 0x68, 0x78, 0xbe, 0xc1, 0x3c, + 0xe0, 0xb4, 0x05, 0x11, 0x4a, 0xda, 0xea, 0xc7, 0xe4, 0xfe, 0x00, 0x94, 0xf1, 0xec, 0x5f, 0x11, + 0xe8, 0xf2, 0x19, 0xd0, 0x72, 0x52, 0xfd, 0x3e, 0x67, 0x95, 0x93, 0x75, 0xbc, 0xe0, 0x08, 0xae, + 0x80, 0x2b, 0xbb, 0xe5, 0x6e, 0x67, 0xff, 0xce, 0xa3, 0x8d, 0x45, 0x0b, 0x27, 0x47, 0x8f, 0xdd, + 0x6d, 0xfd, 0x35, 0x5e, 0x8b, 0xef, 0x51, 0x16, 0xaf, 0xf8, 0xb8, 0x9b, 0x0c, 0xd7, 0x10, 0x8d, + 0xd6, 0x70, 0x18, 0x2d, 0x35, 0x3d, 0xda, 0x6e, 0x2a, 0x8b, 0xf4, 0x37, 0x38, 0x37, 0x29, 0xfb, + 0x74, 0x1d, 0x1e, 0x6e, 0x61, 0xea, 0x17, 0x5a, 0x18, 0xe5, 0xff, 0x8e, 0xf0, 0xf2, 0x08, 0x00, + 0xe3, 0xc7, 0xbd, 0xab, 0x97, 0xf0, 0xbf, 0x54, 0x2a, 0xd6, 0xa0, 0x8e, 0xb2, 0x55, 0xc7, 0x87, + 0x28, 0xfd, 0x7f, 0x5b, 0x39, 0x63, 0x74, 0x4f, 0x8c, 0x62, 0x62, 0xab, 0x75, 0x7c, 0xb0, 0x16, + 0xe9, 0xa9, 0xe8, 0xf7, 0x0b, 0x44, 0x6a, 0xf8, 0x12, 0x17, 0x2e, 0xd8, 0x70, 0x02, 0x4e, 0xd8, + 0x15, 0x6d, 0xe6, 0x26, 0x53, 0x7a, 0x7d, 0x80, 0xd0, 0xdd, 0x1c, 0xe3, 0x40, 0xb8, 0x50, 0xe9, + 0xd9, 0xaa, 0xfd, 0x35, 0x7a, 0x30, 0x63, 0xfd, 0xcf, 0x87, 0xa5, 0xbd, 0x79, 0x3c, 0x17, 0x88, + 0x50, 0x3a, 0xa0, 0xb7, 0xb1, 0x36, 0xee, 0xee, 0x13, 0x0a, 0x3f, 0xfb, 0xa7, 0x0a, 0x5f, 0x28, + 0xe1, 0xc5, 0xd3, 0xf5, 0x22, 0x2b, 0xf8, 0x4a, 0xd1, 0xaa, 0x55, 0xf7, 0x8b, 0xa5, 0x9a, 0x5d, + 0x7b, 0x7a, 0x58, 0xb1, 0x8f, 0x0e, 0xca, 0x95, 0xfd, 0xea, 0x41, 0xa5, 0x9c, 0x99, 0x21, 0x4b, + 0x98, 0x0c, 0x8b, 0xe5, 0x4a, 0xe9, 0x61, 0x06, 0x6d, 0xfd, 0x98, 0xc5, 0x99, 0x32, 0x55, 0xf4, + 0xb0, 0xfb, 0x7e, 0x3d, 0x89, 0xdb, 0x40, 0x3e, 0x21, 0x7c, 0x79, 0xdc, 0x56, 0x92, 0xcd, 0xb3, + 0x2d, 0x3b, 0x67, 0x7b, 0x35, 0x63, 0x5a, 0x7b, 0x5c, 0x2b, 0xfd, 0xc6, 0xdb, 0xaf, 0xdf, 0xde, + 0xa7, 0xae, 0xea, 0xb9, 0xe8, 0xa1, 0x6c, 0xdf, 0x19, 0xbc, 0xac, 0x66, 0x7f, 0x80, 0x42, 0xc9, + 0x77, 0x51, 0x81, 0x7c, 0x46, 0x78, 0x69, 0xfc, 0xc8, 0x13, 0x73, 0x52, 0xd6, 0x09, 0xab, 0xa9, + 0xdd, 0x9e, 0xfe, 0x07, 0x43, 0xa0, 0x79, 0x72, 0x01, 0xe8, 0xbb, 0x14, 0x22, 0x1f, 0x11, 0x26, + 0x67, 0xc7, 0x83, 0xdc, 0xbc, 0x30, 0xe7, 0x60, 0x81, 0xb4, 0x5b, 0xd3, 0x99, 0x13, 0xb8, 0x42, + 0x04, 0x77, 0x4d, 0x5f, 0x3f, 0x07, 0xce, 0x63, 0xfc, 0x78, 0x17, 0x15, 0xf6, 0x76, 0x9e, 0xdd, + 0x6b, 0x32, 0xf5, 0x3c, 0xac, 0x1b, 0x8e, 0x68, 0x99, 0x51, 0x16, 0x21, 0x9b, 0x66, 0xff, 0x7b, + 0xd2, 0x04, 0x6e, 0xfa, 0xf5, 0xcd, 0xa6, 0x30, 0x47, 0xbf, 0x7a, 0xf5, 0xb9, 0x68, 0x3a, 0xef, + 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xac, 0xd3, 0xb4, 0x10, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json index 5dcefccd22c..b74476ec136 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json @@ -18,7 +18,6 @@ "/api/v1/dataproxy/artifact_link": { "post": { "summary": "CreateDownloadLocation creates a signed url to download artifacts.", - "description": "Creates a read-only http location that is accessible for tasks at runtime.", "operationId": "CreateDownloadLink", "responses": { "200": { @@ -46,7 +45,6 @@ "/api/v1/dataproxy/artifact_urn": { "get": { "summary": "CreateDownloadLocation creates a signed url to download artifacts.", - "description": "Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime.", "operationId": "CreateDownloadLocation", "responses": { "200": { @@ -78,7 +76,6 @@ }, "post": { "summary": "CreateUploadLocation creates a signed url to upload artifacts to for a given project/domain.", - "description": "Creates a write-only http location that is accessible for tasks at runtime.", "operationId": "CreateUploadLocation", "responses": { "200": { diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index 9967be033bd..9f510126352 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -268,6 +268,7 @@ Class | Method | HTTP request | Description - [CoreRetryStrategy](docs/CoreRetryStrategy.md) - [CoreRuntimeMetadata](docs/CoreRuntimeMetadata.md) - [CoreScalar](docs/CoreScalar.md) + - [CoreSchema](docs/CoreSchema.md) - [CoreSchemaType](docs/CoreSchemaType.md) - [CoreSecret](docs/CoreSecret.md) - [CoreSecurityContext](docs/CoreSecurityContext.md) @@ -316,7 +317,6 @@ Class | Method | HTTP request | Description - [FlyteidladminTaskExecution](docs/FlyteidladminTaskExecution.md) - [FlyteidladminTaskNodeMetadata](docs/FlyteidladminTaskNodeMetadata.md) - [FlyteidladminWorkflowNodeMetadata](docs/FlyteidladminWorkflowNodeMetadata.md) - - [FlyteidlcoreSchema](docs/FlyteidlcoreSchema.md) - [FlyteidleventDynamicWorkflowNodeMetadata](docs/FlyteidleventDynamicWorkflowNodeMetadata.md) - [FlyteidleventTaskNodeMetadata](docs/FlyteidleventTaskNodeMetadata.md) - [FlyteidleventWorkflowNodeMetadata](docs/FlyteidleventWorkflowNodeMetadata.md) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index f6c2d5b2e71..7667076bef2 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -16,8 +16,6 @@ paths: tags: - "AdminService" summary: "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`." - description: "Retrieve the active launch plan version specified by input request\ - \ filters." operationId: "GetActiveLaunchPlan" parameters: - name: "id.project" @@ -51,8 +49,6 @@ paths: tags: - "AdminService" summary: "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`." - description: "Fetch the active launch plan versions specified by input request\ - \ filters." operationId: "ListActiveLaunchPlans" parameters: - name: "project" @@ -115,7 +111,6 @@ paths: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by\ \ the reference :ref:`ref_flyteidl.admin.TaskExecution`." - description: "Fetch child node executions launched by the specified task execution." operationId: "ListNodeExecutionsForTask" parameters: - name: "task_execution_id.node_execution_id.execution_id.project" @@ -247,7 +242,6 @@ paths: tags: - "AdminService" summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`." - description: "Retrieve input and output data from an existing workflow execution." operationId: "GetExecutionData" parameters: - name: "id.project" @@ -279,7 +273,6 @@ paths: tags: - "AdminService" summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`." - description: "Retrieve input and output data from an existing node execution." operationId: "GetNodeExecutionData" parameters: - name: "id.execution_id.project" @@ -316,7 +309,6 @@ paths: tags: - "AdminService" summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`." - description: "Retrieve input and output data from an existing task execution." operationId: "GetTaskExecutionData" parameters: - name: "id.node_execution_id.execution_id.project" @@ -404,7 +396,6 @@ paths: tags: - "AdminService" summary: "Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object." - description: "Retrieve an existing description entity description." operationId: "GetDescriptionEntity" parameters: - name: "id.resource_type" @@ -455,7 +446,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." - description: "Fetch existing description entity definitions matching input filters." operationId: "ListDescriptionEntities2" parameters: - name: "resource_type" @@ -547,7 +537,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions." - description: "Fetch existing description entity definitions matching input filters." operationId: "ListDescriptionEntities" parameters: - name: "resource_type" @@ -638,7 +627,6 @@ paths: tags: - "AdminService" summary: "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." - description: "Create a node execution event recording a phase transition." operationId: "CreateNodeEvent" parameters: - in: "body" @@ -657,7 +645,6 @@ paths: tags: - "AdminService" summary: "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." - description: "Create a task execution event recording a phase transition." operationId: "CreateTaskEvent" parameters: - in: "body" @@ -676,7 +663,6 @@ paths: tags: - "AdminService" summary: "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred." - description: "Create a workflow execution event recording a phase transition." operationId: "CreateWorkflowEvent" parameters: - in: "body" @@ -695,7 +681,6 @@ paths: tags: - "AdminService" summary: "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`" - description: "Create a workflow execution." operationId: "CreateExecution" parameters: - in: "body" @@ -721,13 +706,6 @@ paths: downstream system failures (downstream services), or simply to recover executions\ \ that failed because of retry exhaustion and should complete if tried again.\n\ See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details." - description: "Recreates a previously-run workflow execution that will only start\ - \ executing from the last known failure point. In Recover mode, users cannot\ - \ change any input parameters or update the version of the execution. This\ - \ is extremely useful to recover from system errors and byzantine faults like\ - \ - Loss of K8s cluster, bugs in platform or instability, machine failures,\ - \ downstream system failures (downstream services), or simply to recover executions\ - \ that failed because of retry exhaustion and should complete if tried again." operationId: "RecoverExecution" parameters: - in: "body" @@ -746,7 +724,6 @@ paths: tags: - "AdminService" summary: "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`" - description: "Relaunch a workflow execution." operationId: "RelaunchExecution" parameters: - in: "body" @@ -765,7 +742,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Execution`." - description: "Fetch existing workflow executions matching input filters." operationId: "ListExecutions" parameters: - name: "id.project" @@ -844,7 +820,6 @@ paths: tags: - "AdminService" summary: "Fetches a :ref:`ref_flyteidl.admin.Execution`." - description: "Retrieve an existing workflow execution." operationId: "GetExecution" parameters: - name: "id.project" @@ -875,7 +850,6 @@ paths: tags: - "AdminService" summary: "Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`." - description: "Update execution belonging to project domain." operationId: "UpdateExecution" parameters: - name: "id.project" @@ -912,7 +886,6 @@ paths: tags: - "AdminService" summary: "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." - description: "Terminate the active workflow execution specified in the request." operationId: "TerminateExecution" parameters: - name: "id.project" @@ -951,8 +924,6 @@ paths: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ \ launch plan objects." - description: "Fetch existing launch plan definition identifiers matching input\ - \ filters." operationId: "ListLaunchPlanIds" parameters: - name: "project" @@ -1021,7 +992,6 @@ paths: tags: - "AdminService" summary: "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition" - description: "Create and register a launch plan definition." operationId: "CreateLaunchPlan" parameters: - in: "body" @@ -1035,19 +1005,11 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminLaunchPlanCreateResponse" - 400: - description: "Returned for bad request that may have failed validation." - schema: {} - 409: - description: "Returned for a request that references an identical entity\ - \ that has already been registered." - schema: {} /api/v1/launch_plans/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." - description: "Fetch existing launch plan definitions matching input filters." operationId: "ListLaunchPlans2" parameters: - name: "id.project" @@ -1126,7 +1088,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." - description: "Fetch existing launch plan definitions matching input filters." operationId: "ListLaunchPlans" parameters: - name: "id.project" @@ -1204,7 +1165,6 @@ paths: tags: - "AdminService" summary: "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition." - description: "Retrieve an existing launch plan definition." operationId: "GetLaunchPlan" parameters: - name: "id.project" @@ -1261,15 +1221,6 @@ paths: tags: - "AdminService" summary: "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`." - description: "Update the status of an existing launch plan definition. At most\ - \ one launch plan version for a given {project, domain, name} can be active\ - \ at a time. If this call sets a launch plan to active and existing version\ - \ is already active, the result of this call will be that the formerly active\ - \ launch plan will be made inactive and specified launch plan in this request\ - \ will be made active. In the event that the formerly active launch plan had\ - \ a schedule associated it with it, this schedule will be disabled. If the\ - \ reference launch plan in this request is being set to active and has a schedule\ - \ associated with it, the schedule will be enabled." operationId: "UpdateLaunchPlan" parameters: - name: "id.project" @@ -1314,7 +1265,6 @@ paths: - "AdminService" summary: "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a specific resource type." - description: "Retrieve a list of MatchableAttributesConfiguration objects." operationId: "ListMatchableAttributes" parameters: - name: "resource_type" @@ -1354,7 +1304,6 @@ paths: tags: - "AdminService" summary: "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object." - description: "Retrieve a NamedEntity object." operationId: "GetNamedEntity" parameters: - name: "resource_type" @@ -1400,7 +1349,6 @@ paths: tags: - "AdminService" summary: "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object." - description: "Update the fields associated with a NamedEntity" operationId: "UpdateNamedEntity" parameters: - name: "resource_type" @@ -1452,8 +1400,6 @@ paths: tags: - "AdminService" summary: "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects." - description: "Retrieve a list of NamedEntity objects sharing a common resource\ - \ type, project, and domain." operationId: "ListNamedEntities" parameters: - name: "resource_type" @@ -1534,7 +1480,6 @@ paths: tags: - "AdminService" summary: "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." - description: "Retrieve an existing node execution." operationId: "GetNodeExecution" parameters: - name: "id.execution_id.project" @@ -1571,7 +1516,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." - description: "Fetch existing node executions matching input filters." operationId: "ListNodeExecutions" parameters: - name: "workflow_execution_id.project" @@ -1653,7 +1597,6 @@ paths: - "AdminService" summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ at the project level" - description: "Update the customized resource attributes associated with a project" operationId: "UpdateProjectAttributes" parameters: - name: "attributes.project" @@ -1679,8 +1622,6 @@ paths: - "AdminService" summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project and domain." - description: "Retrieve the customized resource attributes associated with a\ - \ project" operationId: "GetProjectAttributes" parameters: - name: "project" @@ -1728,7 +1669,6 @@ paths: - "AdminService" summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project and domain." - description: "Delete the customized resource attributes associated with a project" operationId: "DeleteProjectAttributes" parameters: - name: "project" @@ -1755,8 +1695,6 @@ paths: - "AdminService" summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project and domain." - description: "Update the customized resource attributes associated with a project-domain\ - \ combination" operationId: "UpdateProjectDomainAttributes" parameters: - name: "attributes.project" @@ -1788,8 +1726,6 @@ paths: - "AdminService" summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project and domain." - description: "Retrieve the customized resource attributes associated with a\ - \ project-domain combination" operationId: "GetProjectDomainAttributes" parameters: - name: "project" @@ -1844,8 +1780,6 @@ paths: - "AdminService" summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project and domain." - description: "Delete the customized resource attributes associated with a project-domain\ - \ combination" operationId: "DeleteProjectDomainAttributes" parameters: - name: "project" @@ -1878,7 +1812,6 @@ paths: tags: - "AdminService" summary: "Fetches a list of :ref:`ref_flyteidl.admin.Project`" - description: "Fetch registered projects." operationId: "ListProjects" parameters: - name: "limit" @@ -1934,7 +1867,6 @@ paths: tags: - "AdminService" summary: "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." - description: "Register a project." operationId: "RegisterProject" parameters: - in: "body" @@ -1955,7 +1887,6 @@ paths: summary: "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project\ \ should be passed but the domains property should be empty;\nit will be ignored\ \ in the handler as domains cannot be updated via this API." - description: "Update a project." operationId: "UpdateProject" parameters: - name: "id" @@ -1980,7 +1911,6 @@ paths: tags: - "AdminService" summary: "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." - description: "Retrieve an existing task execution." operationId: "GetTaskExecution" parameters: - name: "id.node_execution_id.execution_id.project" @@ -2068,7 +1998,6 @@ paths: tags: - "AdminService" summary: "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." - description: "Fetch existing task executions matching input filters." operationId: "ListTaskExecutions" parameters: - name: "node_execution_id.execution_id.project" @@ -2150,7 +2079,6 @@ paths: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ \ task objects." - description: "Fetch existing task definition identifiers matching input filters." operationId: "ListTaskIds" parameters: - name: "project" @@ -2219,7 +2147,6 @@ paths: tags: - "AdminService" summary: "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" - description: "Create and register a task definition." operationId: "CreateTask" parameters: - in: "body" @@ -2233,19 +2160,11 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminTaskCreateResponse" - 400: - description: "Returned for bad request that may have failed validation." - schema: {} - 409: - description: "Returned for a request that references an identical entity\ - \ that has already been registered." - schema: {} /api/v1/tasks/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." - description: "Fetch existing task definitions matching input filters." operationId: "ListTasks2" parameters: - name: "id.project" @@ -2324,7 +2243,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." - description: "Fetch existing task definitions matching input filters." operationId: "ListTasks" parameters: - name: "id.project" @@ -2402,7 +2320,6 @@ paths: tags: - "AdminService" summary: "Fetch a :ref:`ref_flyteidl.admin.Task` definition." - description: "Retrieve an existing task definition." operationId: "GetTask" parameters: - name: "id.project" @@ -2459,8 +2376,6 @@ paths: get: tags: - "AdminService" - description: "Retrieve the Version (including the Build information) for FlyteAdmin\ - \ service" operationId: "GetVersion" parameters: [] responses: @@ -2474,8 +2389,6 @@ paths: - "AdminService" summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project, domain and workflow." - description: "Update the customized resource attributes associated with a project,\ - \ domain and workflow combination" operationId: "UpdateWorkflowAttributes" parameters: - name: "attributes.project" @@ -2513,8 +2426,6 @@ paths: - "AdminService" summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project, domain and workflow." - description: "Retrieve the customized resource attributes associated with a\ - \ project, domain and workflow combination" operationId: "GetWorkflowAttributes" parameters: - name: "project" @@ -2575,8 +2486,6 @@ paths: - "AdminService" summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ \ for a project, domain and workflow." - description: "Delete the customized resource attributes associated with a project,\ - \ domain and workflow combination" operationId: "DeleteWorkflowAttributes" parameters: - name: "project" @@ -2616,8 +2525,6 @@ paths: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ \ workflow objects." - description: "Fetch an existing workflow definition identifiers matching input\ - \ filters." operationId: "ListWorkflowIds" parameters: - name: "project" @@ -2686,7 +2593,6 @@ paths: tags: - "AdminService" summary: "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" - description: "Create and register a workflow definition." operationId: "CreateWorkflow" parameters: - in: "body" @@ -2700,19 +2606,11 @@ paths: description: "A successful response." schema: $ref: "#/definitions/adminWorkflowCreateResponse" - 400: - description: "Returned for bad request that may have failed validation." - schema: {} - 409: - description: "Returned for a request that references an identical entity\ - \ that has already been registered." - schema: {} /api/v1/workflows/{id.project}/{id.domain}: get: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." - description: "Fetch existing workflow definitions matching input filters." operationId: "ListWorkflows2" parameters: - name: "id.project" @@ -2791,7 +2689,6 @@ paths: tags: - "AdminService" summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." - description: "Fetch existing workflow definitions matching input filters." operationId: "ListWorkflows" parameters: - name: "id.project" @@ -2869,7 +2766,6 @@ paths: tags: - "AdminService" summary: "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition." - description: "Retrieve an existing workflow definition." operationId: "GetWorkflow" parameters: - name: "id.project" @@ -54997,7 +54893,7 @@ definitions: binary: $ref: "#/definitions/coreBinary" schema: - $ref: "#/definitions/flyteidlcoreSchema" + $ref: "#/definitions/coreSchema" none_type: $ref: "#/definitions/coreVoid" error: @@ -55110,6 +55006,23 @@ definitions: string_value: "string_value" null_value: {} bool_value: true + coreSchema: + type: "object" + properties: + uri: + type: "string" + type: + $ref: "#/definitions/coreSchemaType" + description: "A strongly typed schema that defines the interface of data retrieved\ + \ from the underlying storage medium." + example: + type: + columns: + - name: "name" + type: {} + - name: "name" + type: {} + uri: "uri" coreSchemaType: type: "object" properties: @@ -65568,23 +65481,6 @@ definitions: domain: "domain" name: "name" project: "project" - flyteidlcoreSchema: - type: "object" - properties: - uri: - type: "string" - type: - $ref: "#/definitions/coreSchemaType" - description: "A strongly typed schema that defines the interface of data retrieved\ - \ from the underlying storage medium." - example: - type: - columns: - - name: "name" - type: {} - - name: "name" - type: {} - uri: "uri" flyteidleventDynamicWorkflowNodeMetadata: type: "object" properties: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index 31204fe6d7f..dab31c18d1f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -28,7 +28,6 @@ type AdminServiceApiService service /* AdminServiceApiService Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` -Create a workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -118,7 +117,6 @@ func (a *AdminServiceApiService) CreateExecution(ctx context.Context, body Admin /* AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition -Create and register a launch plan definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -200,28 +198,6 @@ func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body Admi return localVarReturnValue, localVarHttpResponse, newErr } - if localVarHttpResponse.StatusCode == 400 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - - if localVarHttpResponse.StatusCode == 409 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr } @@ -230,7 +206,6 @@ func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body Admi /* AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. -Create a node execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -320,7 +295,6 @@ func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body Admin /* AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Task` definition -Create and register a task definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -402,28 +376,6 @@ func (a *AdminServiceApiService) CreateTask(ctx context.Context, body AdminTaskC return localVarReturnValue, localVarHttpResponse, newErr } - if localVarHttpResponse.StatusCode == 400 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - - if localVarHttpResponse.StatusCode == 409 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr } @@ -432,7 +384,6 @@ func (a *AdminServiceApiService) CreateTask(ctx context.Context, body AdminTaskC /* AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. -Create a task execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -522,7 +473,6 @@ func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body Admin /* AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition -Create and register a workflow definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -604,28 +554,6 @@ func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminW return localVarReturnValue, localVarHttpResponse, newErr } - if localVarHttpResponse.StatusCode == 400 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - - if localVarHttpResponse.StatusCode == 409 { - var v interface{} - err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHttpResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHttpResponse, newErr - } - return localVarReturnValue, localVarHttpResponse, newErr } @@ -634,7 +562,6 @@ func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminW /* AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. -Create a workflow execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -724,7 +651,6 @@ func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body A /* AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. -Delete the customized resource attributes associated with a project * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param body @@ -816,7 +742,6 @@ func (a *AdminServiceApiService) DeleteProjectAttributes(ctx context.Context, pr /* AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. -Delete the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param domain Unique domain id which this set of attributes references. +required @@ -910,7 +835,6 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte /* AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. -Delete the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param domain Unique domain id which this set of attributes references. +required @@ -1006,7 +930,6 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p /* AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. -Retrieve the active launch plan version specified by input request filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1099,7 +1022,6 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj /* AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. -Retrieve an existing description entity description. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idResourceType Identifies the specific type of resource that this identifier corresponds to. * @param idProject Name of the project the resource belongs to. @@ -1196,7 +1118,6 @@ func (a *AdminServiceApiService) GetDescriptionEntity(ctx context.Context, idRes /* AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.Execution`. -Retrieve an existing workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1289,7 +1210,6 @@ func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject str /* AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. -Retrieve input and output data from an existing workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1382,7 +1302,6 @@ func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject /* AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. -Retrieve an existing launch plan definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1487,7 +1406,6 @@ func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject st /* AdminServiceApiService Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. -Retrieve a NamedEntity object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required * @param idProject Name of the project the resource belongs to. @@ -1582,7 +1500,6 @@ func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceTyp /* AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. -Retrieve an existing node execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idExecutionIdProject Name of the project the resource belongs to. * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1677,7 +1594,6 @@ func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecuti /* AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. -Retrieve input and output data from an existing node execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idExecutionIdProject Name of the project the resource belongs to. * @param idExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -1772,7 +1688,6 @@ func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExe /* AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. -Retrieve the customized resource attributes associated with a project * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param optional nil or *GetProjectAttributesOpts - Optional Parameters: @@ -1871,7 +1786,6 @@ func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, proje /* AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. -Retrieve the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param domain Unique domain id which this set of attributes references. +required @@ -1972,7 +1886,6 @@ func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, /* AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Task` definition. -Retrieve an existing task definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -2077,7 +1990,6 @@ func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, /* AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. -Retrieve an existing task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -2192,7 +2104,6 @@ func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExe /* AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. -Retrieve input and output data from an existing task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. * @param idNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -2307,7 +2218,6 @@ func (a *AdminServiceApiService) GetTaskExecutionData(ctx context.Context, idNod /* AdminServiceApiService -Retrieve the Version (including the Build information) for FlyteAdmin service * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return AdminGetVersionResponse @@ -2394,7 +2304,6 @@ func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersio /* AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. -Retrieve an existing workflow definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -2499,7 +2408,6 @@ func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject stri /* AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. -Retrieve the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required * @param domain Unique domain id which this set of attributes references. +required @@ -2602,7 +2510,6 @@ func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, proj /* AdminServiceApiService List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. -Fetch the active launch plan versions specified by input request filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required. * @param domain Name of the domain the identifiers belongs to within the project. +required. @@ -2718,7 +2625,6 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. -Fetch existing description entity definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Identifies the specific type of resource that this identifier corresponds to. * @param idProject Name of the project the resource belongs to. @@ -2843,7 +2749,6 @@ func (a *AdminServiceApiService) ListDescriptionEntities(ctx context.Context, re /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. -Fetch existing description entity definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Identifies the specific type of resource that this identifier corresponds to. * @param idProject Name of the project the resource belongs to. @@ -2971,7 +2876,6 @@ func (a *AdminServiceApiService) ListDescriptionEntities2(ctx context.Context, r /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Execution`. -Fetch existing workflow executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -3097,7 +3001,6 @@ func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject s /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. -Fetch existing launch plan definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required * @param domain Name of the domain the identifiers belongs to within the project. +required @@ -3218,7 +3121,6 @@ func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. -Fetch existing launch plan definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -3341,7 +3243,6 @@ func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. -Fetch existing launch plan definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -3467,7 +3368,6 @@ func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idProject /* AdminServiceApiService Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. -Retrieve a list of MatchableAttributesConfiguration objects. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListMatchableAttributesOpts - Optional Parameters: * @param "ResourceType" (optional.String) - +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. @@ -3564,7 +3464,6 @@ func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, lo /* AdminServiceApiService Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. -Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required * @param project Name of the project that contains the identifiers. +required @@ -3687,7 +3586,6 @@ func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resource /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. -Fetch existing node executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param workflowExecutionIdProject Name of the project the resource belongs to. * @param workflowExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -3815,7 +3713,6 @@ func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflo /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. -Fetch child node executions launched by the specified task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param taskExecutionIdNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. * @param taskExecutionIdNodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -3955,7 +3852,6 @@ func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, /* AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.Project` -Fetch registered projects. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListProjectsOpts - Optional Parameters: * @param "Limit" (optional.Int64) - Indicates the number of projects to be returned. +required. @@ -4072,7 +3968,6 @@ func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptio /* AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. -Fetch existing task executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param nodeExecutionIdExecutionIdProject Name of the project the resource belongs to. * @param nodeExecutionIdExecutionIdDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -4197,7 +4092,6 @@ func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExe /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. -Fetch existing task definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required * @param domain Name of the domain the identifiers belongs to within the project. +required @@ -4318,7 +4212,6 @@ func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. -Fetch existing task definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -4441,7 +4334,6 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. -Fetch existing task definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -4567,7 +4459,6 @@ func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject strin /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. -Fetch an existing workflow definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required * @param domain Name of the domain the identifiers belongs to within the project. +required @@ -4688,7 +4579,6 @@ func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project st /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. -Fetch existing workflow definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -4811,7 +4701,6 @@ func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject st /* AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. -Fetch existing workflow definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -4937,7 +4826,6 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject s /* AdminServiceApiService Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. -Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -5027,7 +4915,6 @@ func (a *AdminServiceApiService) RecoverExecution(ctx context.Context, body Admi /* AdminServiceApiService Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. -Register a project. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -5117,7 +5004,6 @@ func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body Admin /* AdminServiceApiService Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` -Relaunch a workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -5207,7 +5093,6 @@ func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body Adm /* AdminServiceApiService Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. -Terminate the active workflow execution specified in the request. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -5303,7 +5188,6 @@ func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProje /* AdminServiceApiService Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. -Update execution belonging to project domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -5399,7 +5283,6 @@ func (a *AdminServiceApiService) UpdateExecution(ctx context.Context, idProject /* AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. -Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. * @param idDomain Name of the domain the resource belongs to. A domain can be considered as a subset within a specific project. @@ -5497,7 +5380,6 @@ func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject /* AdminServiceApiService Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. -Update the fields associated with a NamedEntity * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to update +required * @param idProject Name of the project the resource belongs to. @@ -5595,7 +5477,6 @@ func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resource /* AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -Update a project. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param id Globally unique project name. * @param body @@ -5687,7 +5568,6 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b /* AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level -Update the customized resource attributes associated with a project * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. * @param body @@ -5779,7 +5659,6 @@ func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, at /* AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. -Update the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. * @param attributesDomain Unique domain id for which this set of attributes will be applied. @@ -5873,7 +5752,6 @@ func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Conte /* AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. -Update the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. * @param attributesDomain Unique domain id for which this set of attributes will be applied. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_scalar.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_scalar.go index 4c2b0aa73bc..09c05e7befd 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_scalar.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_scalar.go @@ -13,7 +13,7 @@ type CoreScalar struct { Primitive *CorePrimitive `json:"primitive,omitempty"` Blob *CoreBlob `json:"blob,omitempty"` Binary *CoreBinary `json:"binary,omitempty"` - Schema *FlyteidlcoreSchema `json:"schema,omitempty"` + Schema *CoreSchema `json:"schema,omitempty"` NoneType *CoreVoid `json:"none_type,omitempty"` Error_ *CoreError `json:"error,omitempty"` Generic *ProtobufStruct `json:"generic,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlcore_schema.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_schema.go similarity index 93% rename from flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlcore_schema.go rename to flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_schema.go index 307252b1856..b621770da0f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_flyteidlcore_schema.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_core_schema.go @@ -10,7 +10,7 @@ package flyteadmin // A strongly typed schema that defines the interface of data retrieved from the underlying storage medium. -type FlyteidlcoreSchema struct { +type CoreSchema struct { Uri string `json:"uri,omitempty"` Type_ *CoreSchemaType `json:"type,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/identity.pb.go b/flyteidl/gen/pb-go/flyteidl/service/identity.pb.go index 9b204508061..0877a2b7e89 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/identity.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/identity.pb.go @@ -7,7 +7,6 @@ import ( context "context" fmt "fmt" proto "github.com/golang/protobuf/proto" - _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -161,31 +160,27 @@ func init() { func init() { proto.RegisterFile("flyteidl/service/identity.proto", fileDescriptor_0c3f20efbeb1b3f8) } var fileDescriptor_0c3f20efbeb1b3f8 = []byte{ - // 376 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xbf, 0x4e, 0xe3, 0x40, - 0x10, 0xc6, 0xe5, 0xfc, 0xbd, 0xec, 0x15, 0x49, 0x56, 0x57, 0x58, 0xd6, 0x9d, 0xe2, 0x73, 0x71, - 0x4a, 0x71, 0xf6, 0x4a, 0x77, 0x12, 0x88, 0x12, 0xba, 0x34, 0x14, 0x41, 0x69, 0x68, 0xa2, 0xb5, - 0x3d, 0xde, 0x2c, 0xb2, 0x77, 0xcd, 0xee, 0x3a, 0x28, 0x2d, 0x1d, 0x2d, 0xd4, 0x3c, 0x15, 0x0f, - 0x40, 0xc3, 0x83, 0xa0, 0xac, 0xed, 0x20, 0x05, 0x89, 0xca, 0x9e, 0xef, 0xfb, 0x49, 0x33, 0xfb, - 0xcd, 0xa0, 0x59, 0x96, 0xef, 0x0c, 0xf0, 0x34, 0x27, 0x1a, 0xd4, 0x96, 0x27, 0x40, 0x78, 0x0a, - 0xc2, 0x70, 0xb3, 0x8b, 0x4a, 0x25, 0x8d, 0xc4, 0x93, 0x16, 0x88, 0x1a, 0xc0, 0xfb, 0xc9, 0xa4, - 0x64, 0x39, 0x10, 0x5a, 0x72, 0x42, 0x85, 0x90, 0x86, 0x1a, 0x2e, 0x85, 0xae, 0x79, 0xef, 0xaf, - 0xfd, 0x24, 0x21, 0x03, 0x11, 0xea, 0x3b, 0xca, 0x18, 0x28, 0x22, 0x4b, 0x4b, 0x7c, 0xa6, 0x83, - 0x29, 0x1a, 0xaf, 0x34, 0xa8, 0x85, 0xc8, 0xe4, 0x12, 0x6e, 0x2b, 0xd0, 0x26, 0x78, 0x75, 0xd0, - 0xe4, 0x43, 0xd3, 0xa5, 0x14, 0x1a, 0xb0, 0x8b, 0x86, 0xba, 0x8a, 0x6f, 0x20, 0x31, 0xae, 0xe3, - 0x3b, 0xf3, 0xd1, 0xb2, 0x2d, 0x31, 0x46, 0x3d, 0x41, 0x0b, 0x70, 0x3b, 0x56, 0xb6, 0xff, 0x38, - 0x44, 0xb8, 0x54, 0x90, 0x81, 0x52, 0x90, 0xae, 0x2b, 0x0d, 0xca, 0x12, 0x5d, 0x4b, 0x4c, 0x0f, - 0xce, 0xaa, 0x31, 0xf0, 0x2f, 0x84, 0x18, 0xdf, 0x82, 0x58, 0x5b, 0xac, 0x67, 0xb1, 0x91, 0x55, - 0x2e, 0xf7, 0xf6, 0x0c, 0x7d, 0xcf, 0x68, 0xc1, 0xf3, 0x5d, 0xed, 0xf7, 0xad, 0x8f, 0x6a, 0xc9, - 0x02, 0x3f, 0x50, 0x1f, 0x0a, 0xca, 0x73, 0x77, 0x60, 0xad, 0xba, 0xd8, 0x8f, 0x5c, 0xf2, 0xc4, - 0x54, 0x0a, 0xdc, 0x61, 0x3d, 0x72, 0x53, 0xfe, 0x7b, 0x76, 0xd0, 0x78, 0xd1, 0xa4, 0x7c, 0x55, - 0x87, 0x8a, 0x1f, 0x1c, 0xf4, 0xad, 0x7d, 0x35, 0xfe, 0x1d, 0x1d, 0x87, 0x1e, 0x1d, 0xa5, 0xe4, - 0x05, 0x5f, 0x21, 0x75, 0x68, 0xc1, 0xc9, 0xe3, 0xf9, 0xdc, 0xfb, 0xb3, 0x04, 0xa3, 0x38, 0x6c, - 0x41, 0xfb, 0xb4, 0x32, 0x9b, 0x7d, 0xd7, 0x84, 0x1a, 0x48, 0xfd, 0x76, 0xcf, 0x3e, 0x17, 0x99, - 0x8c, 0xee, 0x5f, 0xde, 0x9e, 0x3a, 0x7d, 0xdc, 0x25, 0x05, 0x5c, 0x9c, 0x5d, 0x9f, 0x32, 0x6e, - 0x36, 0x55, 0x1c, 0x25, 0xb2, 0x20, 0xb6, 0x8f, 0x54, 0x8c, 0x1c, 0x2e, 0x85, 0x81, 0x20, 0x65, - 0x1c, 0x32, 0x49, 0x8e, 0x8f, 0x27, 0x1e, 0xd8, 0xb5, 0xfe, 0x7f, 0x0f, 0x00, 0x00, 0xff, 0xff, - 0xfa, 0x09, 0xf9, 0x6a, 0x57, 0x02, 0x00, 0x00, + // 320 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xbf, 0x4e, 0xc3, 0x30, + 0x10, 0xc6, 0xd5, 0xff, 0xf4, 0x3a, 0xb4, 0xb5, 0x18, 0xa2, 0x0a, 0x54, 0xc8, 0xc4, 0xd2, 0x58, + 0x82, 0x01, 0xb1, 0xb2, 0x75, 0x61, 0x28, 0xea, 0xc2, 0x40, 0x95, 0xa4, 0x17, 0x63, 0x94, 0xd8, + 0xa9, 0xed, 0x54, 0xea, 0xca, 0x2b, 0xf0, 0x68, 0x3c, 0x00, 0x0b, 0x0f, 0x82, 0x7a, 0x4e, 0x8b, + 0xd4, 0x81, 0x2d, 0xf7, 0xfd, 0x7e, 0x91, 0xce, 0xdf, 0xc1, 0x34, 0xcb, 0x77, 0x0e, 0xe5, 0x3a, + 0xe7, 0x16, 0xcd, 0x56, 0xa6, 0xc8, 0xe5, 0x1a, 0x95, 0x93, 0x6e, 0x17, 0x95, 0x46, 0x3b, 0xcd, + 0x46, 0x07, 0x21, 0xaa, 0x85, 0xc9, 0x85, 0xd0, 0x5a, 0xe4, 0xc8, 0xe3, 0x52, 0xf2, 0x58, 0x29, + 0xed, 0x62, 0x27, 0xb5, 0xb2, 0xde, 0x0f, 0xc7, 0x30, 0x5c, 0x5a, 0x34, 0x73, 0x95, 0xe9, 0x05, + 0x6e, 0x2a, 0xb4, 0x2e, 0xfc, 0x6e, 0xc0, 0xe8, 0x2f, 0xb3, 0xa5, 0x56, 0x16, 0x59, 0x00, 0x3d, + 0x5b, 0x25, 0xef, 0x98, 0xba, 0xa0, 0x71, 0xd5, 0xb8, 0xe9, 0x2f, 0x0e, 0x23, 0x63, 0xd0, 0x56, + 0x71, 0x81, 0x41, 0x93, 0x62, 0xfa, 0x66, 0x33, 0x60, 0xa5, 0xc1, 0x0c, 0x8d, 0xc1, 0xf5, 0xaa, + 0xb2, 0x68, 0xc8, 0x68, 0x91, 0x31, 0x3e, 0x92, 0x65, 0x0d, 0xd8, 0x25, 0x80, 0x90, 0x5b, 0x54, + 0x2b, 0xd2, 0xda, 0xa4, 0xf5, 0x29, 0x79, 0xda, 0xe3, 0x29, 0x0c, 0xb2, 0xb8, 0x90, 0xf9, 0xce, + 0xf3, 0x0e, 0x71, 0xf0, 0x11, 0x09, 0xe7, 0xd0, 0xc1, 0x22, 0x96, 0x79, 0xd0, 0x25, 0xe4, 0x87, + 0xfd, 0xca, 0xa5, 0x4c, 0x5d, 0x65, 0x30, 0xe8, 0xf9, 0x95, 0xeb, 0xf1, 0x76, 0x03, 0xc3, 0x79, + 0x5d, 0xdb, 0xb3, 0x6f, 0x89, 0xbd, 0xc2, 0xd9, 0xe1, 0xcd, 0xec, 0x3a, 0x3a, 0x2d, 0x31, 0x3a, + 0xe9, 0x68, 0x12, 0xfe, 0xa7, 0xf8, 0xca, 0xc2, 0xc1, 0xc7, 0xd7, 0xcf, 0x67, 0xb3, 0xc3, 0x5a, + 0xbc, 0xc0, 0xc7, 0x87, 0x97, 0x7b, 0x21, 0xdd, 0x5b, 0x95, 0x44, 0xa9, 0x2e, 0x38, 0xfd, 0xac, + 0x8d, 0xe0, 0xc7, 0x73, 0x0a, 0x54, 0xbc, 0x4c, 0x66, 0x42, 0xf3, 0xd3, 0x0b, 0x27, 0x5d, 0xba, + 0xd4, 0xdd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x30, 0xad, 0x2d, 0x17, 0xfc, 0x01, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/identity.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/identity.swagger.json index f7c66fccb56..b3008b199e9 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/identity.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/identity.swagger.json @@ -18,7 +18,6 @@ "/me": { "get": { "summary": "Retrieves user information about the currently logged in user.", - "description": "Retrieves authenticated identity info.", "operationId": "UserInfo", "responses": { "200": { diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 73524acd9cb..0d16c30ef7f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x79\x73\x23\x37\xb6\x2f\xf8\xff\xfd\x14\x78\xd5\x2f\xa2\xec\x6e\x4a\x72\x2f\xb7\xa7\x9f\x6e\xbc\x98\xa1\x25\x56\x99\x63\x95\xa4\xd6\x62\x5f\xcf\x63\x07\x0d\x66\x82\x24\x5a\x99\x00\x1b\x40\x4a\x45\x77\xf8\xbb\x4f\xe0\x60\x49\xe4\x46\x26\x17\x49\x54\x39\xef\x8d\x68\xab\x98\x99\x58\x0f\x0e\xce\xfa\x3b\xff\xfe\x0f\x84\xde\xc9\x27\x3c\x9b\x11\xf1\xee\x14\xbd\xfb\xd3\xf1\x37\xef\x7a\xfa\x37\xca\xa6\xfc\xdd\x29\xd2\xcf\x11\x7a\xa7\xa8\x4a\x88\x7e\x3e\x4d\x96\x8a\xd0\x38\x39\x91\x44\x3c\xd2\x88\x9c\xe0\x38\xa5\xec\x78\x21\xb8\xe2\xf0\x21\x42\xef\x1e\x89\x90\x94\x33\xfd\xba\xfd\x13\x31\xae\x90\x24\xea\xdd\x7f\x20\xf4\x2b\x34\x2f\xa3\x39\x49\x89\x7c\x77\x8a\xfe\x8f\xf9\x68\xae\xd4\xc2\x35\xa0\xff\x96\xfa\xdd\x7f\xc0\xbb\x11\x67\x32\x2b\xbc\x8c\x17\x8b\x84\x46\x58\x51\xce\x4e\xfe\x29\x39\xcb\xdf\x5d\x08\x1e\x67\x51\xcb\x77\xb1\x9a\xcb\x7c\x8e\x27\x78\x41\x4f\x1e\xff\x78\x82\x23\x45\x1f\xc9\x38\xc1\x19\x8b\xe6\xe3\x45\x82\x99\x3c\xf9\x37\x8d\xf5\x1c\xff\x49\x22\xf5\x2b\xfc\x23\xe6\x29\xa6\xcc\xfc\xcd\x70\x4a\x7e\xf5\xed\x20\xf4\x6e\x46\x54\xf0\x4f\x3d\xdb\x2c\x4d\xb1\x58\xea\x15\xf9\x40\x54\x34\x47\x6a\x4e\x90\xe9\x07\xb9\x25\xe2\x53\x84\xd1\xa9\x20\xd3\xd3\x9f\x05\x99\x8e\xdd\x42\x1f\x9b\x05\xbe\x80\xd1\x5c\x27\x98\xfd\x7c\x6c\x97\x09\x5a\x8e\x89\x8c\x04\x5d\x28\xbb\xde\x37\x44\x09\x4a\x1e\x49\xd8\x81\x99\x08\xd2\x13\xf1\x9d\xc9\x05\x89\xe8\x94\x92\x18\x4d\x96\x88\xb2\x45\xa6\x90\x20\xff\xca\x88\x54\x68\x4a\x13\x45\x84\x2c\xf4\xc2\x17\x44\xc0\x0a\x0e\x63\xdd\xcb\x47\xa2\xfa\xd0\x76\x3e\xaa\xf0\x6d\x41\xe4\x82\x33\x49\x64\x61\x11\x10\x7a\xf7\xa7\x6f\xbe\x29\xfd\x54\x9d\x41\x1f\xc9\x2c\x8a\x88\x94\xd3\x2c\x41\xae\xa5\x70\x30\x66\x41\x35\xf9\xe0\x4a\x63\x08\xbd\xfb\x9f\x82\x4c\x75\x3b\xbf\x3b\x89\xc9\x94\x32\xaa\xdb\x95\x86\x4a\x83\xd1\x16\xbe\xfa\xf5\x3f\xea\xfe\xfe\x35\x98\xd1\x02\x0b\x9c\x12\xbd\x2c\x9e\xae\xcc\xff\x95\xe6\xa2\x29\x41\x77\x9e\x53\x4b\x79\xe0\xa5\xd9\x5e\xe2\x94\xe8\x9d\xd7\xdb\x65\xbf\x80\xbf\x05\x91\x3c\x13\x11\x41\x13\x92\x70\x36\x93\x48\xf1\xca\x1a\x50\x68\x41\x13\x71\xf9\x89\xde\x4a\x2a\x88\xde\x2b\x25\x32\x52\x7a\xaa\x96\x0b\x18\xa4\x54\x82\xb2\x59\xb8\x14\xbf\xf6\x5a\x4d\xcd\xd0\xfe\x06\x33\x33\x1f\x34\x4e\x6c\xc4\xfa\xee\x95\x08\x33\x34\x21\x48\x9f\x78\x1a\x13\x41\x62\x84\x25\xc2\x48\x66\x13\x49\x14\x7a\xa2\x6a\x4e\x99\xfe\xb7\x21\xdf\xc8\xad\xd9\xe1\xac\x0d\xfc\xb9\x7a\x65\xee\x25\x11\x7a\xe0\x8f\x34\x26\x31\x7a\xc4\x49\x46\xd0\x94\x8b\xc2\xf2\x1c\x8f\xd8\xdd\x5c\xaf\x43\x3a\xa1\x0c\x4e\x9e\x5e\x4b\x47\x21\x7f\x70\xcb\xf5\x07\xa4\xfb\x43\x19\xa3\xff\xca\x48\xb2\x44\x34\x26\x4c\xe9\x73\x2d\xcb\xad\xfd\x81\x43\xff\x38\x41\x47\x48\xaf\x33\x11\x0a\xd6\x9b\x33\x45\x3e\x2b\x89\x8e\x50\x42\x1f\x08\x7a\x7f\x41\xa5\x42\xfd\xeb\xe1\xfb\x1e\x7a\x7f\x91\x33\x0e\xf9\xfe\x05\x56\xd8\xff\xfd\x8f\xe0\xe8\x29\x3c\x2b\x1f\xba\x77\x7d\x7d\x9a\x6f\xcd\x05\x94\xb7\xf0\x8f\xff\x08\xdb\xb1\xfb\xb5\x9a\xab\xe7\x2c\xdd\xf2\xf3\xb6\x5c\x1c\x96\xa9\xc8\xc0\xa5\xde\xa1\x5d\xf9\x77\xe5\x76\xa8\x61\xde\x72\x47\xee\xad\xc7\x5e\x66\xdf\xf2\x6d\xf1\x6f\x3d\x85\xe7\xe6\xe1\xbb\x30\x70\xac\xe0\x64\x61\xca\xcc\x41\xf4\xe7\x52\x48\x7d\x16\xdd\x09\x39\x10\xb6\xb5\x0b\x3f\x0f\x66\x16\xb0\x74\xc7\xa9\x83\x55\x39\xc0\x79\x27\x34\xa5\xeb\xf6\x77\xc8\x62\x2d\x3c\x5a\x86\xca\xb2\x74\x42\x84\x5e\x06\xc7\x5a\x61\xb6\x13\xcd\x6a\x55\x26\x18\x89\x5b\x4c\xf3\x5f\x19\x11\xcb\x15\xf3\x9c\xe2\x44\x36\x4d\x94\x32\x45\xb4\xa4\x5e\x7a\x3c\xe5\x22\xc5\xca\xbe\xf0\xd7\xbf\x6c\xba\x10\x8a\x3f\x90\x75\xfb\x3f\x34\xbb\x19\x61\x09\x64\x90\x66\x89\xa2\x8b\x84\xa0\x05\x9e\x11\x69\x57\x24\x4b\x94\xec\xc1\x6b\x5a\x3b\x20\xe2\xc8\xdf\x72\xd0\x83\xbb\xdd\x33\x09\xbf\xa0\xa9\x67\x76\x8c\x7c\x56\xd0\xd2\x88\xc1\xfd\x0e\x4b\x14\xde\x5a\xcf\xb0\x94\xdb\xd1\x8c\xe4\x42\x8d\x27\xcb\xe3\x07\x52\xe9\xb7\x91\x72\x30\x43\x58\x29\x41\x27\x99\x22\x7a\xde\xba\x0d\x77\x3f\x03\x7b\x34\x42\x40\x1b\xd6\xf0\x7a\x13\x8e\xa9\x20\x11\xcc\x6d\x93\x03\xe3\xbf\xd2\xf3\xd6\x9a\xd8\xd2\xcc\xfe\x81\x2c\x41\xe6\xa9\x59\x01\xbf\xe5\x23\x36\x62\xe8\x08\x9d\x0f\x6e\xcf\x06\x97\xe7\xc3\xcb\x8f\xa7\xe8\xdb\x25\x8a\xc9\x14\x67\x89\xea\xa1\x29\x25\x49\x2c\x11\x16\x04\x9a\x24\xb1\x96\x6b\xf4\x60\x08\x8b\x29\x9b\x21\x2e\x62\x22\x9e\x6f\x19\x4b\x4f\x09\xcb\xd2\xd2\xbd\x02\xbf\xe7\xa3\x2f\x7d\xa1\xc5\x18\xff\xa8\xf0\xe4\x1f\x95\x05\x86\x19\xeb\xbe\x83\xd6\x5e\x4c\x70\x8a\xe6\x34\x89\x05\x61\x27\x0a\xcb\x87\x31\xf9\x4c\xa2\xcc\xdc\xc9\xff\x2e\xfe\x30\xd6\xd2\x2f\x8f\x49\xf1\x97\xc2\x3f\x72\x71\x6b\xe3\x4f\xbd\xbe\xbd\xf1\x97\xa0\x9d\xb7\xfb\x0e\x7e\xa1\x71\xed\xdb\xf0\xcb\x9a\x39\xb8\x77\x56\x0c\xd6\xbd\xd2\x38\x2a\xf7\x82\x15\xf6\x6a\xdf\x11\x44\x89\xe5\x18\x2b\x45\xd2\x85\xda\xd0\xf2\x80\x51\xa2\x65\xd7\x55\xb2\xea\x25\x8f\xc9\xc0\xf5\xf7\xb3\x15\x41\x8d\xb0\x69\xb8\xd6\x94\x08\xc2\x22\xd2\xdc\xc2\x1d\x96\x0f\x79\x0b\xeb\x05\x5e\xa0\x31\xa4\x97\x1f\xe5\x04\x56\xe9\x38\x17\x7b\xf5\x92\xe4\x6f\xae\x13\x76\x0b\xf3\x91\x1f\xb8\xd0\xc3\x7b\x0b\x02\x6f\x61\xe0\x2f\x21\xf3\x6e\x7b\xa2\xbf\x38\x2b\xc7\x96\xfc\xa9\xb3\x89\xec\xbe\x92\x6d\x2d\x28\x5c\x20\xb9\x94\x8a\xa4\x6b\x6d\x29\x6f\x67\x21\xec\x05\x74\xa8\x03\x2e\xdd\x81\xbf\x81\x53\x5f\xbc\xd1\xbb\xe3\xbd\xc1\x92\xed\xcb\x12\x7a\xe8\xf3\x74\xde\xae\xd5\x53\xbd\x75\xdb\x17\xb8\x7b\xde\xc4\x34\x0b\xb2\xe6\xbe\x07\xf9\x4c\xe6\x8c\xc6\xbd\x72\xab\x3d\x86\x01\xac\x51\x64\x8b\xb6\x74\x7f\xfe\xf4\xa7\xa1\x05\xc8\x98\xfb\xd4\x9c\xca\xc0\x18\x86\x22\x2e\x8c\x2c\x18\xdb\xf3\x6e\x74\xd9\xfe\x5d\xff\x76\x70\x77\x8a\xfa\x28\xc6\x0a\xeb\x03\x2e\xc8\x42\x10\x49\x98\x02\x3b\x81\xfe\x5e\x2d\x51\xca\x63\x92\x18\x8d\xf6\x83\x96\xac\xd1\x39\x56\xf8\x0c\x2b\x9c\xf0\xd9\x31\xea\xc3\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\x23\x2b\x12\xbb\x26\x30\x8b\x1d\x6b\xc1\x28\xe2\xe9\x82\x26\xde\x8f\xe0\x8d\x37\x94\xc5\xf4\x91\xc6\x19\x4e\x10\x9f\x68\xae\xa2\x35\xf0\xc1\x23\x61\x2a\xc3\x49\xb2\x44\x38\x49\x90\xed\xd6\xbd\x80\xe4\x9c\x67\x49\xac\xdb\x75\xa3\x94\x34\xa5\x09\x16\x5a\xc5\x37\xa3\xbd\xb2\x6d\xa1\xbb\x39\xf1\x63\x85\x71\xe9\xd5\x4c\xf1\x03\x91\x88\x2a\xb4\xe0\x52\xd2\x49\x92\x9f\xf9\xfb\x21\x82\x71\x9f\x5d\x0c\xc1\x5e\x10\x29\xc4\x0d\x0f\x75\x9d\x5b\xfb\x90\xeb\x31\xc5\x8c\x11\xe8\x98\xab\x39\x11\xb6\x7b\xfb\xf2\x6b\xab\xfe\xf7\x97\xb7\xd7\x83\xb3\xe1\x87\xe1\xe0\xbc\xaa\xfb\xdf\xf5\x6f\xbf\xaf\xfe\xfa\xe3\xd5\xcd\xf7\x1f\x2e\xae\x7e\xac\x3e\xb9\xe8\xdf\x5f\x9e\x7d\x37\xbe\xbe\xe8\x5f\x56\x1f\x5a\xb2\x6a\x6d\x46\x08\x47\xb6\xe1\xd9\xea\x6c\xa6\xcf\x65\x33\xed\x7d\xb9\x46\x53\xeb\x94\x6a\x6f\x30\xf5\x36\x0a\xfb\x25\x5a\x60\x29\x8d\x64\x64\x46\x70\x3c\x62\x9f\xb8\xd0\x0c\x6c\xca\x35\x8f\xd0\xd2\x93\x12\x59\xa4\x28\x9b\xf9\x8f\x4e\xd1\x28\xfb\xe6\x9b\x3f\x47\x17\x94\x3d\xc0\x5f\xe4\x10\x17\xa7\xb3\x28\x77\x16\xe5\xdf\x96\x45\x59\x8b\x3e\x27\xa1\x21\x79\xbf\xc1\x55\x5a\xb8\x00\x9f\xb8\x16\x25\x78\xa6\xf4\x9f\xba\x4b\x20\x8f\x15\x21\x56\xed\x0c\x96\x3e\xc2\xaa\xa1\x0f\xc1\x53\x10\xe4\x3e\x53\x09\xcc\xe8\x89\x8b\x87\x69\xc2\x9f\xda\x99\x2b\x3f\x12\xe5\x87\xa1\x05\xa7\xb7\x60\xa5\xfc\xd1\xce\xd0\x0f\xfc\x23\x51\x7a\xec\x37\xb6\x97\x2e\xd8\xaa\x0b\xb6\x7a\xdd\x60\xab\x83\x32\x15\x3e\x3f\x6b\x2d\xda\x15\x0d\x7f\x6d\xf0\xc3\x35\xba\xd9\x1a\xbc\x68\x81\x93\xec\x45\x78\x72\xd1\x15\xb5\x4f\xbe\x5c\x74\x36\xad\xe1\xc9\x85\x61\xbc\x15\xbe\x5c\x18\xf4\xcb\xf3\xe4\xdf\x84\x9f\xa8\x73\x03\x6d\xb9\x50\x6f\x92\x75\xb7\xbc\x95\x5e\xcc\x89\xf3\xfc\x57\x49\x25\xe6\x63\x93\x20\x8f\x0d\xa2\x3a\x5a\x87\x71\xac\x89\xdb\xa8\x0d\xd4\xa8\x8b\xcc\xa8\x86\x62\xd4\xc6\x5e\xec\x16\x6c\xb1\xed\xad\xd7\x3e\x7c\x62\xd3\x5b\xaf\x7d\xe0\xc4\x47\xa2\x0a\xc3\x78\x2b\xb7\x5e\x61\xd0\x2f\x7f\xeb\xfd\x46\xe3\x25\xba\x00\x89\x67\x5c\xba\x2f\xfd\xae\x3c\xdc\x10\x88\xdf\x40\xcc\x43\x17\xe4\xb0\xd1\x1a\x7d\x59\x51\x0d\x5f\x6a\x18\xc3\xdb\x8c\x5b\xe8\x02\x15\xba\x40\x85\xd7\xf0\x28\xbd\xbd\x40\x85\xe7\x55\x7c\xf3\xe3\x35\x76\xb4\x60\x35\xc1\xe0\x50\xfe\xda\xc2\x6d\x05\x7f\x39\x65\x72\xd3\x30\xfd\x46\xed\xf0\x3c\x1f\xdf\x00\x8e\xd0\xcf\x96\x90\x5a\x29\x8a\xa1\x36\x18\xbc\xe3\x4e\x63\xf0\xd3\x1a\xed\xb0\x32\x8c\xb7\xa0\x1d\x56\x07\xfd\xfc\x2a\xe1\xab\xf1\xf2\x67\xba\x8b\xdf\x08\x57\xd9\xfc\xf2\xfd\x82\x45\xfc\x4e\xb4\x7f\x7e\xc8\x86\x83\x99\xd0\xdb\x11\xe5\x5f\xe1\x1e\x6f\x79\x89\xef\x3d\xa9\xae\xe6\xd6\x0e\x6e\xa7\xf5\x29\x72\xab\x2f\x6d\xdf\x10\x4a\xb1\x8a\xe6\xfa\x3d\x63\x11\x6e\x89\x07\x51\x1e\x1d\x25\xf2\x4f\x6f\xf2\x3e\x7f\x89\x2c\xb9\xee\x42\xef\x2e\x74\xdb\x54\x77\xa1\x7f\xc1\x17\xfa\xc1\x61\x30\x1d\x4c\x08\x6f\x97\x05\xd0\x21\xa7\x74\x49\x00\x7b\x5c\x9c\x2e\x09\x60\x23\x6e\xd2\x25\x01\xbc\xfd\x24\x80\x5d\xb4\xb3\x6d\x61\x57\xbf\x44\x3d\xad\x53\xd3\x3a\x35\x2d\xfc\xbd\x53\xd3\x3a\x35\xad\x53\xd3\xbe\x70\xa8\xdc\x4e\x47\x6b\xbf\x10\x9d\x8e\xd6\x7a\xa9\x3a\x1d\x6d\xc5\xe2\x74\x3a\x5a\xa7\xa3\xfd\xb6\x74\x34\xf2\x48\x98\x92\x90\x4f\x18\x6a\x14\xef\x16\x5c\x36\x6b\x5a\x21\x77\xa8\xd1\xb2\xa0\xcd\x62\x5e\x1f\xc4\x71\xfd\x8c\xe6\x58\x22\x1e\x45\x99\x28\x9d\x81\x32\x99\x9d\x09\x82\x15\x41\xb8\x94\xc2\x87\xa0\x65\x24\x48\xc4\x05\x50\x01\x46\x8b\xb9\xe6\xe7\x4a\x60\x26\xe9\xba\x88\x16\xd3\x2a\x8c\x4b\xb7\xf3\x16\xb4\xaa\xea\x22\xbe\x54\xa2\xc3\x84\xc7\x95\x33\x64\x8e\x57\xdd\x93\xd5\x52\xce\xde\xa6\x0e\x00\xf8\x6d\x66\xfe\x8c\x47\x45\x61\xf9\xb0\xe7\xa3\x52\x48\x68\xd9\xf6\xa8\x14\xf3\x7e\xf6\x72\x54\x60\x5c\x6f\xe5\xa8\x54\x17\xf1\x37\x73\x54\xea\xa6\x7e\x08\x47\xc5\x01\x63\xec\xf9\xb8\x54\xd0\x28\xb6\x3d\x32\x55\xe0\x8e\xbd\x1c\x1b\x3f\xbe\xb7\x72\x74\xea\x17\xf4\x37\x73\x7c\x9a\xa6\xff\xba\x47\xc8\x67\xe4\xb6\x3e\x3c\x77\x82\xce\x66\x5a\xd9\x02\x3d\x57\x93\xe2\xfa\xa2\x63\x79\x0e\xea\x76\x07\x66\xfd\x69\xf0\x3d\xbc\x85\x93\xe0\x07\x6b\xc6\xfe\x9b\x39\x02\x95\x79\x1f\x08\xed\x9f\x68\x4e\xfc\x08\x75\x0b\xdb\x9d\x81\x1b\x02\x84\x0f\x17\xc8\x42\x90\x47\xca\x33\x99\x2c\x8f\x44\xc6\xea\xb8\x3d\x98\xfa\x9f\x68\x92\x20\xce\xb4\xf2\xaa\xb0\x50\xee\x31\x9b\x99\xdc\x6a\x7d\x98\x12\x2c\x15\x7a\x60\xfc\x89\xa1\x29\xa6\x49\x26\x08\x5a\x70\xca\xd4\xf1\x88\x0d\x19\xba\x31\x63\x84\x1c\x94\x1e\xca\xa4\x3e\x82\x11\x66\x8c\x2b\x14\xcd\x31\x9b\x11\x84\x99\x2b\xe2\x94\x53\x06\xe2\x02\x65\x8b\x58\x1f\x2c\xdd\x45\x29\x44\x33\x3f\x60\x23\x76\x07\xbe\x08\x89\xc8\x67\x25\x48\x4a\x92\xa5\xee\x43\xd3\xbe\xe2\xc8\xae\x8f\x19\xaa\x4d\x0d\x25\x42\x70\x21\x21\x7b\x65\xb2\xfc\x05\x33\x45\x19\x41\xa0\x65\x4a\x63\xd7\x3c\x42\x17\x5c\x82\xcd\xeb\xfb\xbf\x49\x14\x25\x99\x54\x44\xf4\xd0\x24\x9b\x49\xad\x66\x2f\x12\xac\xa6\x5c\xa4\x7a\x84\x94\x49\x85\x27\x34\xa1\x6a\xd9\x43\x29\x8e\xe6\xa6\x2d\x58\x03\xd9\x1b\xb1\x98\x3f\x31\xa9\x04\xc1\xbe\x77\xf7\x10\x7d\x15\x3e\x33\x04\x20\xbf\xee\x41\x0a\x2b\x4d\x17\xc9\x32\x1c\x7e\x50\x12\x00\xf6\x44\x37\x42\x62\x34\x21\x11\xce\xa4\x75\xcf\x28\xb1\x44\xe4\xf3\x1c\x67\x12\xf6\x4e\x4f\xcf\xe6\xff\x44\x3c\x5d\x24\x44\x11\x44\xa7\x48\x09\x4a\x62\x84\x67\x98\xea\xa5\xbb\x25\x2b\x4a\x18\x78\xa2\xb7\x1b\x68\xa9\xfe\x67\xb0\x5d\xa4\x5c\x10\x14\x13\x85\x69\xb2\xd2\x25\xf8\xc2\x04\x87\x9e\x9d\xde\xd0\xe1\x92\x1b\x3a\x68\x6a\x5b\x71\x13\xda\x1d\xeb\xae\xc2\xb7\x74\x15\x16\xb9\xc2\x41\xdc\x85\xa6\x5c\xca\x1e\x04\x42\x66\x9d\x63\x11\x4e\x76\x94\x0d\x6f\xec\xa0\x36\x96\x0e\xdd\x87\xdd\xa1\x78\x5b\x87\xc2\xec\xda\xe1\x9c\x8a\x17\x4b\xef\xd8\xa4\xda\xd1\x0a\x6c\xd0\x6d\xe3\x82\xf2\xf2\x46\x6f\xea\xa0\xbc\x44\x18\x50\x17\x60\xd2\x05\x98\x34\xae\xcc\xdb\x0c\x30\x39\x18\x0f\x71\x17\x63\xf2\x4c\x31\x26\x54\x76\x41\x26\x5d\x90\x49\xdb\x05\xea\x82\x4c\xba\x20\x93\xb7\x1b\x64\xf2\x9c\x85\x00\xf6\x07\xf7\xbf\x1f\x4c\xff\x37\x25\x9d\x77\x92\x79\x27\x99\x77\xc0\xfd\x7e\x6a\xfb\xe2\x82\xee\xeb\x77\x31\x49\x88\x22\xcd\x06\x3a\x22\x52\xad\x70\x98\x1b\x9e\x32\x2d\x0a\xce\x04\x91\x72\x57\x9e\xe6\x1b\x86\x25\xc4\x91\xa2\x8f\xa4\xce\x1f\x91\xd7\x5b\xf6\x64\x09\x76\x9d\x55\xcc\xce\xb7\xfd\x36\x59\x9e\x1f\x7e\x57\xbc\xa4\xe3\x81\x1d\x0f\xdc\x66\x6a\x87\x63\x8e\x0e\x0e\xf3\x4b\xd9\xa3\x3d\x6f\x5f\x64\xcd\xc2\xe9\xbd\x71\xb4\xe6\x8c\xd6\x50\x38\xe0\xb3\x73\x7f\xb8\x2d\x9d\xef\xc8\xeb\x37\xe9\x6b\x15\x5f\x37\xed\xbc\x4d\xa6\x6e\xc6\xde\x71\xf4\x8e\xa3\x77\x1c\xfd\x6d\x73\x74\x77\x92\x5f\xd5\xbd\x68\x7c\x9c\xe3\x45\x82\xd9\x98\xc6\xf2\xe4\xdf\xb9\xc9\xe2\xb9\xbc\x8b\xfa\x40\xc5\x26\x73\xde\x67\xaa\x8b\x9f\xf5\x27\x49\xee\x17\xf0\xc8\xc8\xed\x1d\x90\xe1\xd7\xf9\xaa\x07\xa9\xed\xdb\xfa\x23\x8d\xbb\xe2\x3a\xc1\x6c\x18\xbf\x09\x97\x64\xed\x0a\xbf\x84\x7b\x72\x97\xbb\x02\x2b\x70\x1a\x61\xca\x8c\x35\x34\xd8\xb7\xd0\xd6\x7b\x18\x5c\x64\x97\x9b\x23\x24\xc8\xfc\xf2\x70\x77\x42\xb0\x28\x87\x37\xed\xce\x45\xd6\xa5\x61\x77\x4e\xa0\x96\x13\xee\x9c\x40\x87\xeb\x04\x6a\xb1\x8d\xcf\xe2\xd9\x7d\xe1\xe3\xf9\x52\xa2\x63\xfb\xcc\x1d\x97\x60\xc3\x62\x94\x2d\x12\x8e\xe3\x55\x5e\xad\x5c\xf0\x0a\x71\xab\x5a\xa4\xef\xb0\x18\x09\x32\xa3\x52\x11\xa1\xf7\xa5\x56\x30\x5c\x9f\xcf\x93\x77\xff\x16\x84\xbe\x7c\xb4\xad\x23\x36\xc3\x6e\xdf\xfd\xa5\xc5\xf0\x6f\xec\x9d\x0d\x9c\x68\x82\x63\x67\x44\x37\xe2\x5b\x8a\x97\x68\x8e\x1f\x89\x8b\x32\x7f\xc4\x09\x8d\x71\x79\xad\x4b\x33\x5c\x35\xa0\xff\xb5\xd9\x80\x70\x71\x38\x82\x4c\x89\x20\x2c\xb2\x2e\x07\x1f\x05\x6c\xf1\xcb\xe0\x9d\xb9\xd6\xca\x13\x41\x70\xbc\x44\x13\x42\x98\x27\x9b\x9a\xfb\xa4\x61\xcc\x7b\x11\x9c\x5f\x5d\x2b\xad\x52\xcf\xa1\xa8\xa5\x2f\x18\xf7\x5a\xcf\x6f\x76\xd7\x41\x77\x57\x3c\xdf\x06\x80\x79\x3e\xde\x2e\x16\xb6\xb3\x4d\xbe\xbe\x6d\xb2\x8b\x85\xed\x14\xfd\x03\x53\xf4\xbb\x58\xd8\x2e\x16\xb6\x33\x83\xac\x9e\x76\x67\x06\xf9\x22\x62\x61\x5b\xc9\xf0\xcf\x08\x7e\x7d\xc0\xd2\x7c\x27\xcc\xbb\xf7\x3a\x61\xbe\x13\xe6\xbf\x50\x61\xfe\x30\x56\xb8\x93\xe4\x3b\x49\xbe\x93\xe4\x3b\x49\xbe\x93\xe4\xf7\xbe\x8c\x9d\x24\xff\x92\x95\xc2\xeb\xc5\xf9\x8d\xd3\xdd\x36\x77\x06\x7e\x24\xea\xad\x7a\x02\x3b\xa9\xbd\x93\xda\x0f\x5b\x6a\x3f\x98\x09\xbd\x9d\x3a\xd3\xed\xe6\xf3\x6a\x05\xa3\xdc\x9d\x6d\xea\x29\x9d\xa2\x3e\x8a\xb1\xc2\x9a\xac\x05\x59\x08\x22\x09\x53\x20\x0f\x59\x37\x7c\xca\x63\x92\x98\x9b\xfb\x83\x66\xf8\xe8\x1c\x2b\x7c\x86\x15\x4e\xf8\xec\x18\xf5\xe1\x9f\xfa\x63\x2a\x11\x4e\x24\x47\xd8\x2d\x3d\x89\x5d\x13\x98\xc5\xee\x40\x61\xc0\xac\xa3\x89\x57\x00\xbd\x08\x4f\x59\x4c\x1f\x69\x9c\xe1\xc4\x87\x16\x8f\x0c\xfc\x6d\x86\x93\x64\x89\x70\x92\x20\xdb\xad\x7b\xc1\xc1\xe0\x4d\x88\x1f\xa5\xa4\x29\x4d\xb0\xd0\xa2\x8c\x19\xed\x95\x6d\x0b\x69\xe5\xd3\x8d\xd5\x95\x80\x43\x29\x7e\x20\x12\x51\x85\x16\x5c\x4a\x3a\x49\xf2\x03\x70\x3f\x44\x30\xee\xb3\x8b\x21\xc8\x45\x91\x42\xdc\x70\x0e\xd7\xb9\x55\x12\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\x5f\x5b\xc4\x79\xed\x32\x5d\xcd\xe2\x52\x38\xb2\xe7\x90\x97\xdc\xd7\x2d\x72\xa4\xec\xe1\x52\x58\x65\xd2\x60\x15\xe7\xc1\x26\xad\xc4\x9e\x16\xa9\x51\xa5\x1e\xd6\xcb\x3d\xa8\xaf\x50\xca\xb5\xee\xc6\x48\xe1\x1d\xc7\xe0\x4c\x60\xcd\x8c\x3e\x12\x86\x5c\x72\x40\xcf\x5e\x63\x3d\x30\xa6\xfc\xea\x0f\x9f\x49\xbe\xc5\x0a\x61\xa4\x68\x4a\x8e\xd1\x70\x6a\xb8\x45\xa4\x4f\x97\x24\x4a\x96\xa2\xb1\x0c\xe5\xc3\x47\x2c\xce\xc7\xea\xfa\xa6\x79\x70\x8e\x79\xad\xe7\x98\x6d\x96\x28\xc3\x7a\x5d\xe3\x80\x34\x3a\xf1\x1c\x0a\x0e\x5a\x4a\x44\xe2\xbe\x2c\x74\xeb\x5e\x4e\x71\xac\x19\x43\x30\x84\x3c\x4b\x38\x7c\x1f\xee\x74\x2a\x7d\x78\x51\xe1\x7b\xf3\x35\xc0\x95\x02\xbc\x28\xc0\xaa\xb7\x1a\xc6\x1c\xa2\xdf\xb4\x88\x17\x67\x09\x41\x58\x4a\x1e\x51\x0c\x6a\x8c\x91\x01\x10\x55\xce\xd2\xe0\x5e\x72\x5d\xc7\x54\xe2\x49\x42\x62\xbb\xc6\x24\x8f\x76\x5a\x39\x72\x2a\xd1\x84\xe8\x25\xd6\x6c\xaa\xb8\xfa\x73\x23\x81\xd4\x8c\x26\x18\x0a\xa9\x8e\x84\x30\x33\x90\x15\x12\xb4\x21\xce\xb7\x2a\x44\x77\x19\x77\xfe\x69\x27\x52\x77\x22\xf5\x6f\x54\xa4\x3e\xa0\x08\xcd\x83\x48\x1c\x04\x1f\xa8\xe6\xfc\x63\x6f\xd8\x94\x6d\x6d\x3d\x17\x54\x2a\x89\xa2\x4c\x2a\x9e\x36\x4b\x3e\x9f\x5c\x0f\x7d\xdf\xc1\x19\x67\x53\x3a\xcb\xcc\xdd\xf2\xb3\x95\x4d\xfc\x89\xce\xd5\x94\xe5\x82\xb4\x33\x0c\x79\xbb\xf5\xba\xce\x6a\xf3\x11\x6b\x9c\xbc\x35\xed\xbc\x89\xdb\xae\x7e\xe8\x2f\x75\xe9\x6d\xa2\xac\xe6\xf6\x71\xab\x69\x6a\xfd\x62\x7c\x33\xb8\xbd\xba\xbf\x39\x1b\x9c\xa2\xfe\x62\x91\x50\xe3\xb2\x32\x14\x46\x7f\xd1\x93\x32\x55\xa3\x3c\x89\x58\x81\xc8\x80\xb9\x83\x8f\x4c\xeb\x83\xe8\x08\x9d\x5d\xdc\xdf\xde\x0d\x6e\x1a\x1a\xb4\x24\x01\x88\x03\x24\x5d\x24\x20\x1f\x3d\x64\x13\x22\x18\xd1\x12\xbe\x85\x7c\xcf\x3d\x67\xa6\xd1\xc1\x7f\x0f\xce\xee\xef\x86\x57\x97\xe3\xbf\xdf\x0f\xee\x07\xa7\xc8\xd1\x96\x6e\x56\x8f\x4b\x8f\x22\x5e\x32\x9c\x6a\xad\xbb\x58\xde\xea\x5f\x19\xc9\x40\x1c\xa3\x33\x96\x12\xa8\xc4\x50\x68\xd1\x0d\xf8\xa2\xff\xed\xe0\xa2\xd8\xf2\x9c\x84\x38\xf4\x28\xc1\x13\x92\x58\x57\x1e\x78\xa7\xf4\xf9\x09\x10\xfb\x8d\x8f\x2f\x33\xab\xfa\xf7\xfb\xfe\xc5\xf0\xee\xa7\xf1\xd5\x87\xf1\xed\xe0\xe6\x87\xe1\xd9\x60\x6c\x35\xa9\xb3\xbe\xee\xb7\xd0\x93\x55\xb8\xd0\xbf\x32\x9c\x68\x8d\x9c\x4f\x1d\x32\x3d\x7a\x9a\x13\x86\x32\x06\x14\x67\xd4\x7c\xd0\x4a\x42\x58\x1e\x33\xa3\xeb\x8b\xfb\x8f\xc3\xcb\xf1\xd5\x0f\x83\x9b\x9b\xe1\xf9\xe0\x14\xdd\x92\x04\x14\x61\xb7\xe8\xb0\x8b\x8b\x24\x9b\x51\x86\x68\xba\x48\x88\x5e\x0d\x6c\x71\x20\xe6\xf8\x91\x72\x51\xd0\x56\x60\x1d\x81\x15\x40\xfb\x4e\xe1\x1c\x07\x4b\x77\x75\xf9\x61\xf8\xf1\x14\xf5\xe3\xd8\xcf\x41\x42\x1b\x05\xca\x71\x68\x42\x47\x15\x34\xa1\x08\x9b\x80\x10\xbd\x7d\xfc\x91\x08\x41\x63\x52\xa2\xa3\xfe\xed\xed\xf0\xe3\xe5\xa7\xc1\xe5\x1d\xac\x98\x12\x3c\x91\x68\xce\x9f\xc0\x0b\x04\x33\x04\xe7\xd0\x23\xa6\x09\x74\xe6\x36\x8b\x33\xf4\x34\xa7\xe0\x39\x84\x0a\x05\xbe\x67\x63\x93\x10\x59\x35\xa9\xe2\xa5\xb5\xfe\xc2\xc1\xab\xaa\xea\xe5\x93\x54\x7d\xa3\x74\x2c\x56\xbd\x50\xa0\xf2\xea\x8b\xeb\xa8\xb5\xfa\x45\x89\xdc\x9a\x0d\x14\x15\x7a\x69\x9e\x69\xbe\xd7\xad\xed\x13\xc5\x35\x7c\xb1\xdb\x5b\x33\xde\x78\xec\xec\x54\x27\xff\x2e\x30\xe0\x5f\xf7\x18\xad\x65\x12\x74\x56\x62\x17\x06\xd9\xea\x3f\xdb\x6b\xb6\xe5\xe5\x1d\x7c\x59\xf7\x61\xd5\x8f\x13\x7c\xf0\x16\x6e\xe5\x70\xb8\x07\x74\x03\xdf\x84\x72\x96\x13\xd7\x53\xa2\x70\x8c\x15\xd6\x7c\x6d\x46\xd4\x31\xba\x62\xf0\xec\x0e\xcb\x87\x1e\x72\x85\xc7\x10\x17\x28\x17\x64\x5f\x20\xc1\xfd\x8d\x18\x30\x37\x57\xae\x3a\x23\x41\x67\x24\xa8\x5f\x99\x2e\x5a\xae\x61\x85\xf7\x75\xa3\x6e\x64\xf3\xdf\xdf\xc5\x17\x98\xf8\x5d\xe0\x4b\xc9\x46\x5b\xb8\x11\xd7\xda\x63\xdf\xee\x65\xf8\xb2\x16\xd9\xbd\x5e\x8d\xa6\x2e\x59\x77\xef\x99\xff\xeb\xee\xbd\xee\xde\xeb\xee\xbd\x03\x58\xe1\x57\xb7\x6e\xd7\x70\xf7\x57\x35\x6f\xaf\x53\x90\xb7\x86\xc9\xcb\x15\xe2\x4d\x80\xf2\x7e\x6e\x83\x87\x57\x63\xd6\xae\x6a\xc8\x12\xc9\x39\x16\xa6\xe0\x77\xc4\xd3\x94\xb3\xa2\xdd\xbc\x87\xbc\x93\x1f\x8c\x92\x6b\xc1\x54\x35\x65\xe7\xdd\xd0\xb7\x61\xef\x0e\xd6\xe5\x25\xb2\x9b\xf6\x2a\x42\x98\xb4\x81\x4e\xbf\x7e\x46\x39\xa3\xc3\x31\xdc\x2b\x8e\xe1\x61\xcc\xf5\x59\x32\xa1\xf6\x6f\x83\x7f\x1b\xd9\x4f\x1d\x60\x61\x97\xdf\xd3\xe5\xf7\xc0\xef\x1d\x60\xe1\xfe\xa8\xf5\x79\x65\x7a\x1e\x93\x71\xa9\x42\x97\xff\xe7\xb8\xec\xf2\x2a\x3c\x09\xfd\x5f\x85\x07\x79\xc2\x13\xb4\x4e\xe3\x7d\x56\xf5\xba\xe4\x31\xd9\xa1\xb2\x97\x1e\x51\xeb\xaa\x5e\x85\xbe\x0e\x5c\x84\x77\xcb\x64\x44\xf9\xc2\xc0\x9f\x59\x90\x6f\xa0\x98\x2f\xd1\x1a\x55\x43\xff\x9d\x69\x6a\xed\x42\x7d\xa9\x65\x13\x72\x06\xf7\x86\x1c\x35\xed\x6e\x01\x17\xde\x33\x6e\xb8\x0b\xea\x9f\xfb\x1b\xa1\xfe\xf1\xf3\x40\xda\xb4\xbf\x10\x4a\x48\x36\xc5\xab\x60\x5b\x04\x9b\x42\xf7\x6f\xc3\xce\x13\x8e\xf8\x25\x2c\x3d\x2b\x89\xe9\x8b\xbb\x26\x56\x1d\x8d\xee\xb2\x68\xb9\x5c\x5f\xea\x95\xd1\x21\xcf\xac\xb2\xbd\x74\xd0\x2e\x9d\xe9\xe7\x70\x26\xdc\x99\x7e\xde\xb4\xe9\xc7\x38\xaa\xc7\x0b\x2c\x08\x53\x35\x32\x7a\xf9\x3a\x81\xd7\xc3\x1c\x7e\x27\x75\x40\x03\x46\x5a\xb4\x17\xb2\xbf\xaa\xbe\x2c\x5b\x90\x15\x0c\x82\xe4\xa5\x93\x7f\xe7\x7f\x7b\xe9\xbf\x50\xd7\x62\x45\xb4\x97\x01\xcd\x97\xfa\x8e\xce\x6c\xe0\xd7\xee\xe9\x4d\x36\x85\xd8\x89\x82\x09\x79\x24\x49\xbb\xf8\x30\x97\xbe\x40\xe2\x5c\xa0\xca\x67\x57\x13\x37\x56\x15\x50\xeb\x63\xc6\xae\xcd\x7b\x6f\x2b\xb9\xa9\x32\xe8\x97\x8d\x1f\xab\x92\x55\xbb\xe3\xe9\xf6\x9d\x9a\x44\x9d\x20\x1b\x44\xcb\xba\x7c\x1a\xee\xa8\x4b\xc6\xc6\x90\xab\xd4\x74\xbf\xfc\xe6\xa2\x4a\x1a\x77\xfe\x55\x63\x4b\xea\x78\x4f\x1d\xc3\x69\x63\x3d\xde\x57\x12\xa5\x23\xb6\x86\x98\x8f\x26\x73\xf3\x33\x31\x9b\x8f\x44\x7d\x19\x9c\xe6\x23\x51\x2f\xc5\x66\xb6\xe5\x2d\x2b\xf9\x4a\x5e\x43\xe7\xf0\x62\x17\x36\x09\xaa\xf9\xd1\x4c\xd2\x46\xd4\xf8\xdc\xe5\x70\xaa\x8a\x5b\x2d\xb3\x20\xa8\x77\x39\xa6\x5d\x8e\x69\x97\x63\x5a\x3e\xea\x5d\x8e\x69\x97\x63\x5a\x9b\x11\x13\x93\x84\x28\xd2\x28\xb5\x9c\xc3\xe3\xd7\x92\x5a\x4c\xef\xcf\x25\xb3\x98\xd6\xbf\x0c\xb1\xc5\xcc\xa5\x93\x5c\x7e\x33\x7a\x91\xdb\xf0\x83\xd0\x8b\xcc\x49\x5e\x67\x9a\x29\xfc\x58\x13\x84\xff\xe2\xe6\x9a\x6d\x58\xd2\x1e\x6c\x36\x47\xce\x35\x96\xe7\xb4\xb4\x35\xe3\x9c\xc3\x97\x6f\x92\x57\x95\x87\xde\x99\x74\x50\xb0\x75\xcf\xc7\xba\x2a\x67\xae\xdd\xc4\x2d\x8d\xbe\xdd\x79\x1f\x0a\xcb\x6e\xa2\xfb\x43\x65\xdc\x5b\xe7\x49\x7d\x01\x06\xae\xcd\x38\x73\x6e\xf3\xfa\x82\xd8\x72\x67\xff\x7a\xe5\xdc\x9d\x0a\xff\x7d\xb3\xd3\xed\xcc\x7d\x9d\xb9\xaf\x33\xf7\x75\xe6\xbe\xce\xdc\x87\x3a\x73\xdf\x0b\x99\xfb\x36\x93\xe0\x0a\x16\xc0\x2f\x48\x88\xeb\xac\x81\x9d\x1c\xb7\xbf\xe9\x1e\xaa\x26\x7d\x48\x26\xd0\xd6\x48\xda\x79\x12\xe1\xda\xdc\x11\x3b\xed\x9f\xd7\x26\x8d\x04\x55\x49\xdc\x70\xd6\x25\x86\x5c\xbb\x61\xbf\x1d\x26\x27\x9f\x9b\x8f\xed\x12\xfe\xee\xd6\xfd\x8b\x8d\x7e\xef\xea\xae\xd6\xae\x55\x17\x9c\xbf\x62\x71\xba\xe0\xfc\x2e\x38\xff\xe0\x82\xf3\xf7\xae\x52\x2d\xb8\x5c\x05\x1e\x66\xae\xe6\x95\xa8\x01\xee\xa2\x37\xba\x8c\x26\x05\x53\x2b\x2e\x26\x8b\x84\x2f\xc1\xde\xb3\xd2\xf2\x6d\xba\xc8\x95\xa0\x55\x97\xbf\x7b\xfb\xba\x1a\x1e\x71\xe0\xf7\xbf\x1b\xf9\x4b\xa9\x35\x87\x22\xf6\xe6\xf3\x3e\x08\x41\xf7\xe4\xdf\x25\xc8\x8c\x56\x98\xba\x01\xc8\xc5\xfa\x63\x30\x62\xf5\x4f\x82\xf2\x8e\xf6\xd6\x9c\x64\x2a\xc8\x47\x95\xfa\x00\x2c\x88\x50\xcb\xe0\x4d\x92\x2e\xd4\xf2\xbf\x46\x8c\xe6\x55\xe0\xe8\x8c\x71\x61\x78\xa0\xfe\x78\x8e\x59\x9c\xe8\xf3\x23\x7d\x3b\x11\x66\x8c\x2b\x10\x4e\x60\x06\x31\x7a\xa4\xd8\x88\x32\xfd\xeb\x61\x8b\xf8\x80\x56\x67\xb1\xe0\xda\x7f\x43\x27\xf1\xa5\xeb\xab\xad\xb9\x45\x3f\x26\x7c\x02\x15\x41\xb3\xa2\x89\x41\x37\xd0\x39\xa3\x0b\x3b\xf7\x5a\xcc\x43\x61\xf9\x50\x06\xf2\x29\xc2\x3a\x8c\x57\x42\xfb\xac\x79\xb7\x50\xec\x62\xf5\xab\x25\xf8\x9f\xe2\x33\x0b\x08\x04\x8f\x61\xc8\xe5\x71\xb8\x1f\xc3\x0e\xdd\x6f\x79\xcb\xee\x17\x57\x51\x1d\x7e\x14\x44\x89\xe5\x18\x2b\xa5\x19\xd2\x3e\x31\x87\xee\xb0\x7c\xd8\x01\x73\xa8\xe8\x69\x5a\x83\x39\x54\xe8\xeb\xc0\x39\x56\x01\x73\xa8\x38\xf0\x67\xe7\x58\x2d\x89\x7b\x0d\x63\x7b\x7b\xf0\x12\x6d\x8f\xea\x06\x13\xff\xad\x40\x4d\xb4\x63\x5d\xeb\x8c\xce\x6f\x11\x76\x62\x15\x2f\x3e\x98\x11\x96\xae\x83\x2f\xf1\xe4\x16\x2f\xb7\xee\x88\xae\x5a\xa3\x2f\xae\xf4\x6b\x49\x66\x59\x33\xb7\x37\x52\x02\xb6\x2c\x76\xed\x7b\x54\xcf\x63\x7f\x0f\x76\x63\x93\x10\xaa\x61\xb1\xe4\x81\x3f\x43\x2e\xa8\x2a\x07\x8d\x37\xa5\xce\xa9\x0c\xf1\x24\x22\x2e\x8c\xe4\x15\xdb\x33\x6b\xec\x89\x06\x9b\xfb\x14\xf5\x51\x8c\x15\xd6\x87\x54\x90\x85\x20\x92\x30\x65\xb4\x7a\x83\x54\x9f\xf2\x98\x24\x46\xa3\x36\xa6\xab\x73\xac\xf0\x19\x56\x38\xe1\xb3\x63\xd4\x87\x7f\xea\x8f\xa1\x3e\xbc\xe4\x08\x3b\xc2\x21\xb1\x6b\x02\xb3\xd8\x97\xa5\x47\x11\x4f\x17\x34\xf1\xe5\x1e\xbc\x7b\x81\xb2\x98\x3e\xd2\x38\xc3\x89\x87\xd7\x1f\xb1\xc1\x23\x61\x2a\x03\x0d\x10\x27\x09\xb2\xdd\x06\xe8\xf9\xce\x14\xe0\x46\x29\x69\x4a\x13\x2c\x90\xe2\x76\xb4\x57\xb6\x2d\x74\x37\x27\x7e\xac\xae\x94\x00\x4a\xf1\x03\x91\x88\x2a\xb4\xe0\x52\xd2\x49\x92\x1f\xe3\xfb\x21\x82\x71\x9f\x5d\x0c\x6d\x6d\x76\xc4\x0d\x1f\x74\x9d\x5b\x07\x86\xeb\x31\xc5\x8c\x11\xe8\x98\xab\x39\x11\xb6\x7b\xfb\xf2\x6b\x9b\x5f\x5f\x1b\xf2\xbd\xd9\x94\x1b\x8e\xec\xf5\x74\xd6\xd6\x0a\x6b\x5b\x6d\xb5\x9d\xaa\xda\xac\xa7\x3e\x83\xcf\xb9\xbd\x32\x59\xc2\x2b\x2c\xaa\x91\xdb\xe2\x15\x16\xba\x7f\x13\xce\xe9\xc2\x88\x5f\x02\xaf\xf0\x37\xaa\x59\x76\x6a\xe5\xb3\xac\xdb\x97\xaa\x53\x1e\xb8\x42\xd9\x21\x2d\x76\x55\x2e\xba\x50\x93\x3d\x2e\x4e\x17\x6a\xd2\x85\x9a\x7c\xb1\xa1\x26\xcd\xea\x09\x8d\x77\xce\xd8\xdc\xb0\xae\x9d\xb7\x32\x88\x9f\x41\x94\xd2\x62\x7f\x8b\x4a\x77\x75\xda\x42\x2e\x4b\x17\x2a\x53\x6d\xaf\x39\x0c\xe3\x37\xa1\x32\xd4\xae\xe6\x4b\xa8\x0e\x5d\x91\xb4\xbd\x16\x49\x3b\xb8\x69\x77\x52\x65\x27\x55\x76\x82\x53\xcb\x09\x77\x82\xd3\xe1\x0a\x4e\xaf\xa5\x0d\x7d\x49\x78\xd9\x5a\xc4\x2a\x64\x25\xad\x8c\x53\x36\xf8\x4a\xe0\xcc\xc8\x16\x09\xc7\xf1\xba\x88\xa3\x9f\x03\xf1\x6d\x85\xdc\x17\xb4\x2b\xf2\x38\xe5\x92\xf8\xb7\x4a\xb6\x33\x0d\xe8\x1e\xdf\x82\x68\xa7\xc7\x69\x46\xdc\x22\x3a\x32\xec\xf0\xdd\x5f\x5a\x0c\xfc\xc6\xde\xc9\xc0\x69\x26\x38\x76\x00\x06\x46\x3c\x4b\xf1\x12\xcd\xf1\x23\x41\x53\x4c\x13\x63\x9f\xa3\x31\x2e\xaf\x6f\x69\x6e\xab\x06\xf4\xbf\x36\x1b\x10\x2e\x0e\x27\xcf\x68\xd4\xf7\x85\x91\xaa\x22\x9c\x38\x77\x1f\xbc\x33\xc7\x12\xe1\x44\x10\x1c\x2f\xd1\x84\x10\x16\x64\xb2\xb5\x1d\xf3\x5e\x04\xe3\x57\x0f\xcf\x0c\xe9\xe6\x55\xa3\xbc\x81\x6b\x40\xbc\x62\x21\xee\xf1\xb9\x14\xcb\x32\x27\xd9\x41\x87\xdc\x45\x71\x94\x7f\x7a\x2b\xcc\xe5\x25\xd4\xc4\x2f\xd8\x8b\xd4\x79\x8a\x56\x87\xe1\xed\x29\xaa\x69\xc4\xee\xb4\x6a\x95\x63\x30\x04\x29\xb2\xe8\x0f\x6e\xb9\xfe\x00\x11\xfa\x36\x6a\x3f\x59\xe6\x9a\xb7\x2c\xb7\xe6\xe5\x32\x74\xa4\x85\xe2\x88\x08\x65\x40\x1e\x98\x22\x9f\x95\x44\x47\x28\xa1\x0f\x04\xbd\xd7\xa7\x03\xf5\xaf\x87\xef\x7b\xe8\xbd\x29\xaa\x8f\x16\x09\x66\xf2\xfd\xc1\x68\x1f\x9d\x8a\xde\x25\x19\x77\x9e\x9f\xce\x80\xd1\x19\x30\xf6\xbe\x8c\x87\x64\xc0\x78\x45\x19\xdd\xe4\x36\x3d\x4b\x31\xdb\x43\x91\xd6\x3b\x61\xbd\x13\xd6\x3b\x61\xfd\x8b\x15\xd6\x0f\x63\x85\x3b\x49\xbd\x93\xd4\x3b\x49\xbd\x93\xd4\x3b\x49\x7d\xef\xcb\xd8\x49\xea\x25\x49\x1d\xfe\x72\x68\x01\x9b\x8a\xed\xad\xc5\xf5\xed\xa0\x01\xda\xb9\xe9\x2c\x36\xc0\x5b\x91\xcc\x3b\xa9\xbc\x93\xca\x0f\x5b\x2a\x3f\x98\x09\x7d\x79\x09\xc1\x5d\x4a\x6d\x97\x52\xdb\xa5\xd4\xbe\x46\x4a\xad\xe3\x25\xab\x24\x9c\x55\x75\x7d\x7e\xb0\xcc\xe5\x2b\xca\xa2\x24\x03\x51\x55\xff\xfc\x6d\x46\x93\x18\x81\x8a\xa4\x35\x5d\xca\xd9\xd7\x40\x4f\x40\x0a\x30\x4e\x57\x89\x62\xb5\x04\xf3\x43\x85\xd5\x1d\xac\x10\x93\x8f\x76\x5b\x18\xb6\x7d\xed\xa9\x2b\x8c\xb1\x4d\xf5\xbf\xc2\x6f\xae\xa1\x03\xaa\x09\xd8\x73\x62\x89\xe6\x48\x6e\x7c\xcf\x5c\x1d\xb0\xb6\xcf\x8d\x6a\x05\xfe\x68\x3f\x7a\x5b\xa5\x0c\xaa\xa3\xee\x2a\x04\xa2\x60\xd7\xba\x0a\x81\xcf\x38\x6f\x77\xce\xd6\xcc\xdc\xd1\xa8\xb1\x85\xbf\xd1\x69\xbf\x7a\xb0\x63\xf3\x49\x7f\xd5\xd0\xc7\xda\x8b\xac\x92\x5b\x77\xf2\xef\xda\x7b\xea\x15\x0a\x23\x6e\x7c\x39\xed\xa5\x44\xe2\x2e\xd7\xd3\x47\xa2\xbe\x94\xbb\xa9\x2b\x93\xd8\x95\xd7\xd9\xd3\x74\xb7\xba\x7b\xde\xec\x6c\xbb\xa2\x90\x5d\x51\xc8\xae\x28\x64\x57\x14\xb2\x2b\x0a\x89\x7e\xe3\x45\x21\x37\x96\x5f\xf7\x50\x1e\x72\x17\xe9\xd5\x74\xff\xa5\x08\xb0\x5d\x89\xc8\x4e\x86\xdd\xdf\x74\x7f\x5b\x32\xec\x01\x5a\x50\x0e\xa2\x16\xa6\xb7\xa0\xbc\x3a\x2c\x91\x67\xed\xad\xa1\x89\xc2\xb8\x17\xff\xf5\x5e\x11\x8a\xdc\xa6\x75\x28\x45\xf6\xff\x3a\x94\xa2\x0e\xa5\xa8\x61\xd6\x5d\x60\x75\x87\x52\x84\xba\xd0\xe1\x2e\x74\xf8\x90\x43\x87\x5b\x6c\x63\x87\x52\xd4\x52\x64\x7c\x26\xa4\x22\x27\x73\xed\x84\x56\x54\x23\x0e\xae\x47\x2c\xfa\xb1\xaa\x11\x1d\xac\xa8\xe7\xc6\xda\x21\x17\x75\xc8\x45\xbb\xd2\xce\x41\x28\xa0\x2f\x88\x60\x54\xc7\x61\x36\xc9\x8b\xae\x61\x2e\xbb\x2a\x98\x6f\x03\xcd\xc8\x8d\xb6\x4b\x92\xee\xd2\x31\x0e\x3f\x1d\xe3\xe0\x92\xa4\x0f\x46\x53\xe9\xd4\xf9\x2e\x4f\xba\xcb\x93\xee\x8c\x1d\x9d\xb1\x63\xef\xcb\x78\x48\xc6\x8e\x57\x96\xdb\x9f\x11\xd5\xe8\x10\x25\xf8\x4e\x80\x37\xef\x75\x02\x7c\x27\xc0\x7f\xa1\x02\xfc\x61\xac\x70\x27\xbd\x77\xd2\x7b\x27\xbd\x77\xd2\x7b\x27\xbd\xef\x7d\x19\x3b\xe9\xfd\xc5\x90\x8e\xea\x44\xf8\x8d\xd1\x8e\x36\x74\xf3\x05\xc9\x6c\x6f\x49\x5a\xef\x24\xf5\x4e\x52\x3f\x6c\x49\xfd\x60\x26\xd4\x21\x1f\x75\xc8\x47\x1d\xf2\x51\x87\x7c\xb4\x95\x8c\xf4\x1f\xf6\x58\xbe\x0b\x6e\x62\x7f\x65\xbf\xfb\x36\xe1\x93\xbb\xe5\x82\xe8\xff\x9e\xd3\x94\x30\x09\x12\x2d\x55\xcb\x50\x26\x6a\x58\xf9\xea\x9a\xbf\xbb\x1d\x5e\x7e\xbc\x08\x53\xd5\xde\x7d\xba\xbf\xb8\x1b\x5e\xf7\x6f\xfc\xba\xf8\x59\x85\x6b\x61\xbf\x2b\x88\x75\x96\xe4\x6f\x88\xd6\x5f\xe1\xd4\xdc\x2a\xac\x32\xb9\xdd\xc8\x6e\x06\xb7\x83\x9b\x1f\x20\xd5\x6e\x7c\x3e\xbc\xed\x7f\x7b\x51\x20\x88\xc2\xf3\xfe\xd9\xdf\xef\x87\x37\xcd\xcf\x07\xff\x3d\xbc\xbd\xbb\x6d\x7a\x7a\x33\xb8\x18\xf4\x6f\x9b\xbf\xfe\xd0\x1f\x5e\xdc\xdf\x0c\x56\xae\xc7\xca\xd1\xae\x56\x64\x24\x2c\x12\x64\xb1\xa0\xc8\x72\x0d\x91\xaf\x21\xf2\xe2\xa3\x63\x87\x75\x7d\x9d\xa2\x7b\x6b\x17\xa0\xb6\x71\x17\x92\xe4\x1b\x32\x0a\x4d\x4c\x25\x9e\x24\x24\xae\xb4\xe4\xd6\xb0\xa9\x25\x5c\x18\xd4\x93\xd6\xc0\xbd\xc8\xa9\x79\x5e\x64\x78\x01\x82\x04\x60\x45\x58\x5c\xd3\x87\xd9\x87\xc6\x1e\x98\xe6\x5d\xf4\x91\x14\x7a\x8a\x32\x21\x08\x53\xc9\xd2\x08\xdc\xb2\xd2\xa8\xdb\xbe\xa6\x66\xed\x9d\xea\x1b\x9c\x63\x69\x22\xaf\x0a\xe3\x17\x24\x21\x58\xd6\x8c\xd9\xee\x7e\xbb\x65\xf1\x7b\x65\x2d\x3a\xe6\x32\x9a\x62\x9a\x64\x82\x94\x4e\x0b\x4f\x17\x58\x50\xc9\xd9\xe0\xb3\xbe\xcb\xf4\x41\xbe\x82\xcf\xb9\xd8\xee\xc4\x0c\xfe\x1e\x52\xf0\x65\xf1\x9f\x1f\xef\x8a\xff\x2a\x9c\xf9\x8b\xbb\xe2\xbf\x56\xd3\x7a\xd0\x70\x99\xb2\x8f\xd0\xc7\xbb\x53\xf4\x11\x42\xba\x04\xba\x9b\x63\x43\xb1\x17\x77\xa7\xe8\x82\x48\x09\xbf\xe4\x1f\x2b\xaa\x12\x98\xdb\xb7\x94\x61\xb1\x44\x6e\xfa\x26\x8b\x1c\x83\xaf\xc4\x2d\x4d\x79\xf1\xd8\x3f\x33\x06\xea\x7f\xbe\x7a\x17\x7c\x46\x23\x9c\xec\xb6\x88\xfd\xcb\x02\x1f\xb8\xba\x59\xb9\x14\xe1\xdb\xd5\xb5\xe8\x5f\x9e\x43\x86\xb6\x1b\x6a\xcd\xcc\x2f\x89\xd4\x44\x12\x71\x16\x5b\xff\x91\xbe\xfd\x97\x81\x50\xff\x4f\x0e\x59\xee\x99\xd4\xaa\x66\xff\xf2\x1c\x9d\xa0\xab\x9b\x11\xbb\x12\xb1\x31\xa6\x12\x2d\x0d\x1b\x9a\xa3\x12\x31\xae\x10\x4d\x17\x5c\x28\xcc\x94\x56\x04\x40\x0c\xb0\x2b\x62\x38\xc0\x19\x4f\xd3\x4c\x61\x7d\xd0\x2a\x8b\xca\x8c\x49\xe5\x96\xa8\x61\x0c\xee\x99\x9a\x35\x34\x72\x42\x3e\x97\x85\xd0\xed\x6b\x19\xa5\xa8\x87\xd3\xb8\xa2\xca\xba\x26\xb0\x10\xb8\x28\x4d\xbc\xa3\x8a\xa4\xe5\xf7\x5b\x86\x17\xff\x5a\x6b\x64\x38\x33\xe9\x3c\x44\xf4\x45\x34\xa7\x8a\x44\x4a\x1f\xc1\xad\x68\xe2\xfe\xf2\xfb\xcb\xab\x1f\x43\x09\xe2\x5d\xff\xd3\xf9\x5f\xff\x52\xf8\xe1\xe6\x53\xe5\x87\xf1\x0f\x7f\xad\xfc\xf2\x7f\xad\xa4\xa7\x72\x4f\x15\x3d\x3f\x98\xcb\x11\x88\xd4\x60\x57\x76\x53\x45\x34\xc5\x33\x82\x64\xb6\xd0\x14\x20\x8f\x8b\xfb\xab\x45\xca\x0b\x8e\x63\xca\x66\x26\xbd\xfa\x82\x2a\x22\x70\xf2\x09\x2f\x3e\x38\x1b\xf8\x16\xab\xf3\xff\xde\x16\x92\xe1\xdf\xfd\xd4\xff\x14\xa6\xd3\xbf\xbb\xbe\xb9\xba\xbb\x5a\x39\xeb\x42\x0b\xd5\x63\xa4\x1f\x9f\xc2\xff\xa2\x13\xa4\x5b\xf7\x92\x6f\x4a\x14\xd6\x1a\x01\xfa\xca\xa4\x84\xfa\x14\x2e\xca\x12\x38\x35\x0b\x41\x53\x0a\x57\x8a\xb1\x02\x7e\x6d\x84\x6b\xaf\x3d\xf8\x73\x63\x3e\x30\x49\xdf\xf6\x52\x66\x31\x16\x31\xfa\xa7\x2c\x63\x33\x80\xf1\xd9\xfc\x40\x62\x74\x84\xe6\x4a\x2d\xe4\xe9\xc9\xc9\xd3\xd3\xd3\xb1\x7e\xfb\x98\x8b\xd9\x89\xfe\xe3\x88\xb0\xe3\xb9\x4a\x13\x83\x45\xa1\x57\xe1\x14\x5d\x0b\xae\xaf\x10\x50\xd0\x89\xa0\x38\x81\x54\xf4\x89\xe1\x7f\x7c\x8a\x7e\x8e\xb8\x20\xc7\xf9\xc6\x58\xc3\x94\xbd\x47\xac\xf1\xea\x44\xbf\x54\xc3\x4c\xca\xfb\x89\x62\x12\xd1\xd8\x8a\x19\x84\x45\x1c\xac\x97\xc6\xdf\xa1\xdb\x73\x79\xb4\xc4\x3a\x9b\xfd\x72\x06\xca\x0a\x8e\x49\x00\x25\xa1\x78\x91\xe0\xb4\xe2\x33\x34\x6a\x6b\xa6\x55\x74\x88\x6e\x86\x5b\xd5\xbd\xba\xd0\x13\x8e\x78\x82\x26\xd9\x74\x4a\x44\xe8\xeb\xee\x69\x6d\x86\x4a\x24\x48\xc4\xd3\x14\x24\x06\xfd\x55\x26\x0d\x55\xc3\x8a\xd9\xd1\x1e\x8f\x18\xec\xbf\x56\x73\x80\x02\x62\x0e\xac\x8e\x11\x12\x23\xcc\x96\xa6\x9b\x49\x36\x2d\xf8\xd2\x01\xe3\x05\xc7\x88\xaa\x11\xeb\x27\x09\x12\x24\xe5\x8a\x84\x61\xda\xe0\x78\x2b\x2c\x38\xb0\x48\x41\x16\x09\x8e\x1c\x08\x40\xc2\x23\x9c\xa0\x29\x4d\x88\x5c\x4a\x45\xd2\xb0\x81\xaf\xc0\x56\xa3\xd7\x8c\x4a\x14\xf3\x27\x96\x70\x6c\xe7\x51\xfe\xec\xeb\xe2\x69\x1c\x38\xfc\x8d\x81\x10\x5c\xc0\xff\x7c\x4f\x59\xbc\x37\x0e\x75\x7f\x3b\xb8\x09\xff\x7d\xfb\xd3\xed\xdd\xe0\xd3\x66\xdc\xc7\x53\x16\x0c\x0f\x74\xf8\x53\x74\x6b\x16\x81\x0b\x2d\x11\x89\x86\x49\x7d\xb2\xa4\x94\xff\xc0\xe3\x2d\xb9\xef\xa7\xfe\xe5\x7d\xbf\xc0\x51\x6e\xcf\xbe\x1b\x9c\xdf\x97\xf4\x01\x3b\xbf\x82\x0c\x6f\xd4\xbf\xf0\xb7\xb3\xef\x86\x17\xe7\xe3\x1a\x85\xf1\xdd\xcd\xe0\xec\xea\x87\xc1\x4d\xae\xdb\xd5\x2e\x51\x69\x30\x65\x66\x75\x67\x98\xd2\x9c\xc7\x68\xb2\xac\x47\x5b\xd1\x92\x73\x02\xfe\xdc\x1c\x6f\xc8\xb4\x7a\x0a\xbc\xc9\x01\xdf\xe4\x5f\xa4\x3c\x26\x3d\xfb\x0e\xc0\xd4\x18\xe3\x8a\x91\x98\xeb\x1b\xd6\xbd\x63\x16\x18\x2a\x0c\x82\x8c\x5f\xb8\x53\xd4\x47\x52\xbf\x98\xe9\x43\x2d\xe8\x6c\x06\x86\xc3\xd2\x50\x4d\x6b\xf6\x53\x58\x5e\xf8\xce\xec\xff\x42\x70\x38\xe7\xba\x5b\x6b\x71\xf6\x56\x09\xf3\xa1\x41\xd9\x2d\xb4\x28\x30\x18\x1c\x6a\x86\xe6\x36\x4b\x2f\x42\xe3\x7a\x99\xf3\x98\x27\x56\x00\xdb\x92\xc6\xde\xb9\x10\xe4\x91\xf2\x2c\xf8\xd4\xa2\xe6\x14\x76\xbc\xb6\xf9\x7c\x01\x60\xd9\x8c\x51\xa4\xd4\x8c\x27\x8f\xda\x16\x34\x0b\x7b\x84\x16\xa6\x82\xa7\x35\x6d\x14\x8f\xc9\xf0\xea\x56\x09\xac\xc8\x6c\x79\x6e\x59\xc6\xf6\xc7\xe3\xfc\xea\xc7\xcb\x8b\xab\xfe\xf9\x78\xd0\xff\x58\x3c\xf1\xfe\xc9\xed\xdd\xcd\xa0\xff\xa9\xf8\x68\x7c\x79\x75\x37\x76\x6f\xac\x24\xf9\x86\x0e\xaa\xf7\x74\xf1\xc5\x53\xa4\x59\x2e\xb0\x46\x07\x67\x19\xf0\xc7\x09\x99\x72\x61\xf8\x7c\xea\xc2\x1f\xac\x08\xe3\xd6\xd6\xea\x62\xa5\x59\x9c\x82\x65\xac\xae\x49\x63\xf5\x56\x82\xe0\x14\xee\x09\xcc\xd0\x80\xc5\x47\x57\xd3\xa3\x5b\xf3\x63\x8a\xc5\x03\x11\xfe\xd3\x27\x41\x95\x22\xac\xa0\xd2\x61\x37\x64\xaf\x24\xe6\x1d\x1c\xa3\x1b\xcd\xf7\xf5\xfb\xfe\x52\xd3\xc4\x1e\x13\x85\x69\x22\xed\x60\x0b\xeb\x7a\x8a\x2e\xb0\x98\xe5\x76\xb8\xaf\xf8\x74\x6a\x1a\xfb\xda\x0c\x43\xdf\x61\x85\x59\xd4\xf0\x5e\x4d\x1a\xee\x5e\x84\xfe\xec\xcb\x5e\x1e\xae\x52\xd5\xfd\x62\x37\x9a\xba\xbf\x86\x15\x37\x1a\x7b\x41\x37\xb4\x4f\x6a\x68\x0d\x26\x6e\x1e\xaf\xbe\x64\xea\xdb\xae\x92\x53\xf1\xc5\x1a\x72\x32\x59\x7c\x7a\xe7\xa7\x5a\xdb\xac\xa1\x25\xf2\x99\x5a\x83\x41\x38\xee\x12\x09\xe5\xcd\x80\x79\x15\x2f\x16\x04\x0b\x59\xb7\xdb\x45\x31\xb0\x61\xef\x4d\x4f\x61\x1f\x76\x93\x5d\x3f\x3d\xc4\x19\x18\x1c\xbc\x10\x51\xa2\xc8\x16\x34\x60\xda\xaa\x50\xc0\x35\x40\x99\x5d\x59\xd8\xb0\x4f\x54\x6a\xa5\xd1\xfc\xf8\xad\xc5\x33\xdb\x8e\x20\x3e\xf4\x87\x17\x25\xe1\x62\x7c\x3e\xf8\xd0\xbf\xbf\x58\x6d\x26\x2c\x7c\x57\xde\x62\x74\x84\xf4\xf3\xa2\xef\x9d\x4e\xcd\x9d\xe1\x50\xd9\x8c\x4a\x4b\x18\x18\xad\x6c\xd2\x9d\xb1\x57\xc7\x64\x91\xf0\x65\x4a\x18\x98\x78\x0a\x37\xa1\x5e\xcf\x29\xa6\xf6\x6a\x09\x06\x0b\x56\x1c\x6b\x76\x83\x6b\xec\xc8\x41\xc1\x91\xd8\xdf\xbc\x45\x24\xb8\x12\xeb\xbe\x36\xde\x33\xfb\x9f\x5b\x85\xd5\x96\x67\xac\x7f\x76\x37\xfc\x61\x50\xd4\x0f\xcf\xbe\x1b\xfe\x50\x27\xd5\x8c\x3f\x0e\x2e\x07\x37\xfd\xbb\x35\xc2\x49\xa9\xc9\x3a\xe1\x44\xea\x01\x97\xbd\xa7\x54\xfa\xa8\xa2\xc8\xe0\xc9\x21\xaa\x24\x7a\xa4\x92\x4e\x28\xa0\xef\x59\x4f\xe4\xfd\x10\x38\x2b\xa4\x59\x52\xb5\x74\xe2\x8b\xe9\xb7\xb8\x8f\x9a\x93\xda\xf6\x8d\xd9\x21\xf4\x4f\x82\x95\xcf\x6c\x8e\x9b\xf4\x29\x02\xdd\xf6\x11\x94\xb6\xe0\x33\xa6\x05\x69\x36\x23\xc2\x0c\x07\xbc\x2f\xe1\x58\x82\xe7\x7a\x54\xa1\xb0\x92\xaf\x9a\x17\x5a\x67\x84\x11\x01\xf0\x5e\xbe\x13\x23\x48\x09\xc2\xde\x6b\x99\x6b\x91\xd0\x88\xaa\x64\x89\x22\xb0\x61\x81\x39\x33\xc5\x0c\xcf\xac\x70\x00\x6a\x4e\x89\x24\xfe\x6e\x20\x0a\xaf\xa6\xd6\xb4\x7f\x47\xc9\x96\xc7\xec\xfe\xf2\x7c\xf0\x61\x78\x59\x24\x81\xef\x86\x1f\x0b\x22\xec\xa7\xc1\xf9\xf0\xbe\x70\x9b\x6b\x49\x76\xb5\x5c\x5f\x6e\xb6\xe6\x28\xfa\x97\x4e\xd1\xb9\xf9\xf4\x54\x2f\x6e\x0d\xfe\xa2\x57\x7e\x4b\xeb\x70\xe3\xc2\xfa\xdc\x1f\x03\xa6\x44\xad\x5f\xa2\xad\x09\xc9\xfa\x20\x0b\x36\xa4\xfa\x50\x85\x4a\xdf\x97\x65\xa7\x72\x35\x94\xc3\x3a\x22\x75\x27\xc7\xb9\x65\x29\x8c\x61\x00\xa3\x41\x93\x11\xab\xc6\xad\x95\x33\xec\x1f\xc0\x45\x9d\x66\x52\x19\x57\x22\x10\x27\x7a\xf8\x9b\xd4\x0b\x0a\xae\xc6\x63\x74\x4b\xc8\x88\x39\xeb\xc1\x8c\xaa\x79\x36\x39\x8e\x78\x7a\x92\x83\x7f\x9e\xe0\x05\x4d\xb1\x96\xa4\x89\x58\x9e\x4c\x12\x3e\x39\x49\xb1\x54\x44\x9c\x2c\x1e\x66\x10\x45\xe3\xdc\xa9\x27\xbe\xd9\x19\xff\xdd\xc5\x9f\xbf\x39\xba\xf8\xdb\x37\xef\xaa\x16\xb2\xa6\xfd\x1f\xb0\x08\x2f\x64\x96\xd8\xa8\x3b\x11\xae\x8d\x3b\xf2\x19\x59\xb7\xdf\x97\xc5\xed\xda\x4d\x7f\x3d\xbb\xbe\x2f\x58\xac\x8b\xff\xfc\x34\xf8\x74\x75\xf3\x53\x81\x53\xde\x5d\xdd\xf4\x3f\x16\x18\xea\xe0\xfa\xbb\xc1\xa7\xc1\x4d\xff\x62\xec\x1e\xee\x62\x7b\xfb\x9e\xf1\x27\x56\x5c\x1a\xe9\x38\x60\xa5\xa7\x53\xf4\x81\x0b\xf4\xbd\xdf\xc9\xa3\x09\x96\x70\xc5\xb8\x3b\x4b\xf6\xd0\x82\xc7\xc0\x78\x11\x59\xcc\x49\x4a\x04\x4e\xac\xcd\x40\x2a\x2e\xf0\xcc\xdc\xf4\x32\x12\x58\x45\x73\x24\x17\x38\x22\x3d\x14\x01\x35\xcc\x7a\xb0\x29\xa0\x6a\xf1\x59\xd9\xce\x77\x93\x31\x45\x53\xe2\x54\x70\xfb\xcf\x3b\xb3\x19\x5b\x6c\xce\xd5\xdd\x77\x45\x61\xef\xc3\xc5\x4f\x77\x83\xf1\xed\xf9\xf7\x2b\xd7\xd3\x7c\x56\x18\xd9\x2d\x04\x20\x9d\xf1\x24\x4b\x59\xf8\xf7\xf6\x63\x1b\x5e\xde\x0d\x3e\x96\x47\x77\xd5\xbf\x2b\x52\xc6\x4d\x31\x48\xee\xdd\xb7\x57\x57\x17\x83\x82\x4b\xf8\xdd\x79\xff\x6e\x70\x37\xfc\x54\xa0\x9f\xf3\xfb\x1b\x03\xf5\xb9\x6a\x9a\x6e\x04\x35\x13\xd5\xd3\x0a\xa7\xb9\x6f\x56\xd8\x8a\x13\xf5\x6d\x50\xba\x39\xcb\x47\x01\xd0\x93\x09\x07\x03\xab\xce\x91\x37\xa9\x46\x66\xa4\xb5\xec\x50\x15\xb7\x09\x35\xb3\xe3\x95\x1b\xbd\x8a\x2b\xdf\xf9\x21\x18\x9c\x5d\xa3\x6c\xe3\x24\xe1\x4f\x26\x1c\x38\xa5\xfa\x56\xb6\xb0\x7f\xfa\x15\x99\x7b\x08\x8f\x6b\x38\x5e\x71\x5b\x48\x24\x88\xfa\xc4\x33\xa6\xb6\x27\xb9\xfe\x65\x81\xef\x0c\x2e\x7f\x18\xff\xd0\x2f\x52\xe0\xf0\x62\x35\xab\x09\x9b\xa8\xb9\x8a\xfb\x97\x3f\xf9\x4b\x18\x82\xc6\x7b\x5e\x43\x35\xb2\x6b\x94\x50\x2d\xf6\x46\x58\x6b\xaf\x09\x48\x34\x88\x50\x30\x39\xa4\x7a\x72\x10\xa4\xba\x30\xfe\x24\xc3\x9f\xcc\x20\x4f\xdd\x1f\xa5\xf6\x24\xac\x0b\x58\x53\x5d\x4c\x3e\xb4\x63\xb5\x6a\x86\x08\x7b\xa4\x82\x03\x58\x34\x7a\xc4\x82\x6a\x69\xdc\xb4\xac\xe7\x7a\x0a\xff\xbb\x59\x9b\x60\x18\x2d\x31\xae\x5b\x2e\xd4\xb9\x0f\x06\xde\xce\x1a\x52\x17\x14\x5b\x0d\x87\xad\x37\x74\x54\xbf\xad\xd9\x9c\x1d\x83\x86\x8b\x13\xfe\x57\x72\x4e\x71\xa2\x19\xc0\xfe\xe4\xc5\xfe\xe5\xed\xb0\x28\x3f\x16\xd5\x8c\x80\x2f\x6f\x2d\x2f\x82\xa1\xd2\x8c\xdc\x29\x13\xb7\x7f\xbf\x30\xda\x05\x20\x8a\x9b\x73\x1b\x28\x16\x16\x9a\xc5\x48\x13\x0b\x2c\x64\xe9\x0b\x89\x00\x82\x2f\x0f\xb8\xd2\x77\x16\x84\x33\x3d\x72\x1a\x8f\x18\xf9\xbc\x20\x4c\x42\x70\x80\xb9\xcf\x72\x5f\xbb\x3c\x46\xc3\x29\xb0\x04\xfd\x3a\x43\x19\xb3\x0e\x30\x7d\xe1\x9a\x41\xf6\xb4\x28\x9b\xa3\xc3\x04\xe6\x23\x46\x5c\xb0\x54\x3e\xf8\x11\xfb\xd1\x3b\xd1\xe0\xd1\x94\x6b\x06\xa4\x77\xd1\xb6\x77\x8a\x30\x93\xb4\x87\xb4\xc2\x52\xde\x53\x48\x3f\xd0\x0a\xa5\x0d\xe1\xd2\x9c\xc6\xfe\xf9\xf2\xd7\x40\x25\x4e\x38\xbc\x0c\xea\xef\x82\xd2\x55\xd0\x20\x1a\x27\xc6\x63\x32\x6e\x7f\x27\x44\x5c\x10\xeb\x67\xd9\xf8\x1a\x58\xc7\xd8\xef\xb0\x7c\xa8\xf8\x1e\x86\x4c\x2a\xcc\x22\x72\x96\x60\xb9\x65\x10\x92\xb3\x71\xf4\x8a\x12\xc7\xcd\xcd\xfd\xf5\xdd\xf0\xdb\x35\x5c\xbe\xfc\x71\x35\x0c\x28\x4a\x32\xe7\x9e\x9b\x08\x8e\x63\xa4\xd9\xe7\x8c\x1b\x57\xa0\x15\xfc\x73\x5c\x7d\x93\x1b\xe4\x03\x2a\x0b\x98\xfe\x79\x4a\x83\xb5\x73\x84\xae\x04\x6a\x17\x02\x45\x7a\x25\x50\x60\xf2\x70\x5b\x0d\x9e\x45\x53\x6e\xc8\x5a\xb7\x16\x09\x56\x53\x2e\x52\xc3\xe5\x0b\x93\x36\x8d\xaf\x6e\x94\x32\x45\x84\xc8\x16\x8a\xba\x42\x09\x65\x29\x55\x6f\xd9\x05\x9f\x7d\x22\x52\xe2\x19\xd9\xc5\x01\x5d\xa7\x3c\xdc\xfe\x10\xfe\x13\x1c\xcc\x6d\x64\xff\xc2\x08\x5d\xe4\xbb\xa3\xa7\x2b\xf6\xc1\x04\xf2\x5c\xf3\x84\x46\x5b\x06\xdc\x7d\xe8\x0f\x2f\xc6\xc3\x4f\x5a\x89\xef\xdf\x0d\x2e\x0a\xa2\x04\x3c\xeb\x7f\xb8\x1b\xdc\x58\x84\xf8\xfe\xb7\x17\x83\xf1\xe5\xd5\xf9\xe0\x76\x7c\x76\xf5\xe9\xfa\x62\xb0\x26\x32\xa7\xb1\xf1\xaa\x75\xb5\xfc\xea\x69\xe5\x17\xd8\x61\xcd\xcb\x42\x7b\x19\x64\x9e\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x06\x83\x4b\x3a\xeb\x8c\x87\x65\x47\x43\xf5\x3e\x49\x10\xce\x14\x4f\x31\x78\x6d\x92\xe5\x88\xe1\x89\x66\xad\x38\x49\x82\xf0\x2e\x91\x31\xa6\x59\xac\x6e\xcc\xd4\x3f\x88\x12\xa2\xd9\xf9\x22\x48\x18\xb4\x7e\x83\x29\x65\x10\x69\x9b\x62\xf1\xe0\x8a\x39\xfa\x34\x0c\x7f\x28\x24\xc2\x72\xc4\x0c\x36\x98\x95\x56\x5a\xac\xf0\x69\xab\xb7\x1a\x57\x27\xc5\x0f\x44\xaf\x4a\x9a\x45\x73\xb4\x10\x7c\x26\x88\x94\xd6\xb6\x1c\x61\x66\x02\x10\xec\xeb\xfa\x1a\x1a\x31\xc6\xf5\x52\x38\x13\x76\x4c\x16\x84\xc5\x84\x45\xd4\xa4\x06\x82\xef\xde\x9b\x36\x67\x02\x2f\xe6\x48\x72\x70\x7a\xc3\xb2\x83\xfd\xca\x7c\xe4\x6e\x32\x8b\x86\x06\x8f\x43\x0b\xb4\xc8\x34\x9f\xb8\x02\x39\xd1\xac\x32\x7c\xec\x2e\x43\xe7\x76\x31\x76\xc0\x74\x91\x10\x65\x2a\x61\xc0\x92\xc3\x66\xe8\xb5\x2e\xec\x87\xde\xa6\xba\x4d\xd0\x17\xb6\x1b\x33\x96\x76\x44\xc7\x35\x96\x6d\x7b\xa4\xd0\x77\x98\xc5\x89\x6e\xc5\xf9\x30\x8a\x67\x11\x52\x51\xfa\x9a\x6a\xdc\x69\xdc\xe5\x16\x8d\x70\x26\x77\xb9\x46\x4b\xf9\x9c\xc6\x2a\x78\x94\x07\x85\x00\x79\xdb\x64\x4e\x58\xdd\x85\x66\x91\x38\xe1\x76\x95\xcc\xeb\x99\xa9\xee\x86\x60\x34\x0d\xd7\xec\x42\x50\x16\xd1\x05\x4e\xb6\xd2\xfd\x4a\xc1\xf8\x36\xc6\xfd\x2b\x3a\xd5\xe4\xf3\x75\xc5\x6d\xab\x88\x48\x21\xc9\xd9\x0e\xd3\x6f\xe1\x06\x96\x24\x9b\xd5\x40\x64\x1e\x4d\x82\x05\xcf\x8c\x3f\x0e\xd6\x85\xc4\x35\x47\xf5\xb8\x6e\xbb\xf5\xc9\xc0\xc5\x00\xe8\x2d\x36\xdb\x44\xfe\x34\xad\x5f\xa9\x15\xdb\xbb\x09\xc6\xc3\xc9\x75\x7d\x9b\x75\x3b\x10\x3c\xfc\x75\x15\xed\x7c\xc2\x0b\x4d\x33\xb6\x26\x06\xce\xe7\x68\x95\x24\x5b\xf3\xcf\xc5\xcf\x04\xbe\x73\x9f\x17\xd2\x7e\x37\xf2\x25\xb4\x01\x50\xd5\x4e\x0a\x31\x04\x41\x9e\xba\xa5\xf1\x69\xa6\x65\x59\x84\x21\x0a\x01\x7d\x45\x8e\x67\xc7\xc8\x55\x38\xe9\xa1\xfe\xf5\xf5\xe0\xf2\xbc\x87\x88\x8a\xbe\x76\x31\x8b\x36\x60\x69\xc4\x14\xb7\xd2\xca\xd2\x55\xa7\x49\x89\x98\x91\xc2\x9c\x5d\x74\x13\x84\x2a\xcf\xa8\x54\x36\x7c\x56\xf3\x95\xa0\x8e\x10\x4d\xcb\x62\xb6\xa1\x90\x4c\xcd\x77\x21\x0d\x2c\x65\x96\x6a\x5d\x76\x4c\x71\x3a\x16\x3c\xd9\x85\x29\x9c\xc3\x54\x40\x5d\xf6\x29\xfe\x14\xa7\x48\x37\x6b\x43\x41\xbc\xcb\xd1\x8b\x74\x5a\x30\xd2\x7c\x59\xdf\x9b\xc1\xbd\xe5\xbc\x0f\x36\x1e\x8d\xba\x10\x08\x80\x00\x68\x60\x15\xb9\xd9\x78\x6c\x2d\xf5\x63\x1c\x45\x5a\xe5\xde\xf3\xa4\x82\xe2\x54\xce\x25\x60\x3b\x7a\xb6\x69\xae\xa3\x73\x37\xcc\x85\xe6\x60\x10\x0c\x5c\xad\xe5\x52\xd3\xef\x64\x59\xe9\xd5\x95\x8f\xba\x97\xde\xa4\x62\x2e\x61\x49\x60\x27\xa5\x29\x3f\xa5\xe6\xc4\x42\x8f\x86\x5d\xba\x84\x18\xdd\xf0\x92\x67\xa2\x8e\xd1\x8d\xd8\x39\x59\x08\xa2\x25\xfd\xb2\x03\xc5\xd3\xf4\x4d\x91\x12\x3b\xba\xee\xe8\xfa\xcd\xd3\xf5\x99\xa9\x42\xd6\xf7\x55\xe7\x76\x12\xe0\x4c\x63\xe3\x05\xe7\xc9\xb8\x85\x4d\xa4\xfd\x8a\x17\x3c\x61\xa5\x9a\x6c\x00\x2b\xc0\x33\x90\x8f\x0a\xd7\x26\xd7\x77\x5d\x90\x62\x6b\x87\xb7\x62\x19\x9c\xcb\x2c\xa8\x06\xb5\xcb\x79\xaf\x6b\x65\x55\x4b\xe8\xd9\xc5\x9c\x33\x23\xdf\xd4\x15\xd9\x2a\x1e\x26\x27\x8a\x50\x56\x29\x75\x68\xe8\x19\xea\xf6\x83\xdc\xf1\xaf\x8c\x2b\x2c\xbf\x3e\x1e\x31\x2d\x44\x3d\x90\xa5\x31\xb7\x6a\x31\xe5\xf7\x5a\x16\x3f\x92\x84\x49\x08\xf7\xfe\xbd\x71\xcf\x69\x12\x77\xe6\x6a\xa3\x9a\x9a\x0a\x8b\xc5\xfa\x5f\x10\xa2\x6b\x1b\xb5\x52\x52\x1e\x00\x9d\x17\x0d\x73\xcf\xcc\xf0\x67\x44\x41\x8a\xb5\xa2\x0a\x74\xa6\xd8\x94\x70\xac\x0c\x7d\xad\xe9\xca\x50\x85\xe0\xe0\x27\x89\xb3\xdd\x18\xbf\xac\xb6\xb1\x96\x33\x7a\x6d\xe1\xd6\xc6\xbc\x9f\x38\xbb\x51\x24\x78\xa5\x2e\x22\x96\xc8\xec\xf4\xc4\xb0\x03\xe7\xbf\x26\xec\xf8\x89\x3e\xd0\x05\x89\x29\x86\x08\x78\xfd\xaf\x13\x3d\xaf\xdf\x9d\xdd\x5c\x5d\x8e\xf3\x4c\x9e\xff\x1a\xb1\x7e\x22\xb9\xcf\x52\x40\x8c\x33\x1f\x6e\xbf\x10\xc4\x89\x84\x76\x2e\x60\x75\xcd\xcd\x88\x23\xd6\x34\x82\x98\x47\xf2\x18\x3f\xc9\x63\x9c\xe2\x5f\x38\x03\x57\x7a\x1f\xfe\x3c\x4b\x78\x16\xff\x88\x55\x34\x3f\x81\x73\xad\x4e\xc8\x23\x61\xca\xb8\xa9\xf4\x72\xc5\x90\xbc\x2b\x21\x5a\xff\x77\x7a\xcc\x79\x52\x91\xd4\x9a\x6c\x44\x16\x0a\xfd\x3f\x82\x4c\x38\x57\xf5\x97\x14\x9f\x4e\x25\xd9\xe8\x42\xca\x95\xb4\xdb\x2b\xf4\xb7\xbf\x7e\xf3\x47\x4d\x42\xdb\xac\xf1\xf0\xf6\x6a\xac\xbf\xff\xdd\xb9\xfd\x5e\x6e\xc0\xee\xae\x16\x39\x6b\x73\xc4\x63\x02\xe7\x33\x06\xb7\x9f\x00\xe7\x05\xb0\x37\x20\x87\x7c\x1f\xeb\xb8\xdb\x79\xa1\xf5\xdd\x54\xb6\xad\x16\x13\x54\xec\x60\x8e\xe8\x08\x31\x8e\x52\x13\x6b\x8a\x19\xfa\xcb\xf7\xdf\xd6\x6f\x60\x26\xe8\x56\x1d\x52\x0b\xd7\x10\x74\x29\xe9\x2f\x44\x22\x4d\x35\x9a\x8a\x79\xaa\xbb\x16\x44\xce\x79\x12\xa3\x27\x02\x6a\x92\x8d\x03\xf5\x5a\xb9\x20\x23\x16\x36\x01\x21\x87\x08\x27\x8a\xcf\x08\xdc\xd5\x4e\x51\x53\x44\x68\x51\xc5\x64\x69\x28\x2e\x48\xcf\xc0\x85\xdd\xfe\xd9\xc5\x56\xc3\x34\xe1\x91\x4b\x6a\xb1\x26\xb9\x78\x52\x3f\xf3\x69\xd9\xf4\x8a\x9a\x6d\xf8\xe5\x4d\xb6\x66\xdb\xfa\xa5\xb1\x49\x28\xd6\x86\x55\xde\x99\xfa\xc1\xd0\x88\xb3\x71\x42\xd9\xc3\x56\x9b\x71\xe5\x44\x39\xdd\x82\x5d\x33\xdd\xa2\xb7\x73\x1b\x0b\xc8\x06\xe7\xe3\x43\x96\x24\x26\xb5\x25\xdc\x1e\x90\xbb\xcc\xba\x81\x30\xb0\x30\x39\xa0\x24\xb6\x7e\x2f\xab\x09\x0b\xc2\x20\xe0\x6d\xc4\x26\x4b\xeb\xb3\x95\x3d\x24\xb3\x68\xee\x32\xf3\x22\xce\xa4\x16\xa3\xb9\x40\x11\x4f\x53\x53\x39\x98\x11\xa4\x38\x4f\xa4\x8d\x76\x67\x47\x0a\x47\x6a\xc4\xf2\xfe\xd6\x9c\x3c\x53\x7b\x6b\xb7\xd4\xbd\xf6\x2e\x9d\xbc\xc6\xd7\x4a\x81\x9b\xc6\x21\x66\x03\x18\xc1\x8c\x27\x2a\x40\x7f\xe0\xd5\xb3\x64\x36\xac\x41\x33\x90\x73\x2e\xd4\x38\xae\xe5\x39\x6b\x89\xa6\xcc\x08\x19\x39\x4a\x20\x68\x98\x3f\x6a\xe1\x9f\x3c\x79\xe3\xeb\xaa\x21\x68\xaa\x5e\x35\x82\x76\xc7\x68\xe5\xc8\x36\x25\xc1\x86\xb5\x32\x08\x1e\x51\x31\x26\x7c\xdd\x18\x6f\xe1\xab\x33\xfd\xd1\xca\xc5\x2b\x9f\x3b\x27\x04\xf1\x38\x07\xac\x33\xf7\xba\xcd\x08\x59\xb5\xa6\x16\x3a\xe1\xf9\x32\x47\x57\x4d\xe5\xbe\x68\xc9\xd5\x63\x01\x93\xbd\x24\x20\x6b\x62\x31\xa1\x4a\x60\x51\x40\x0a\xf1\xfa\xa0\x24\x58\x40\x7c\xd6\x88\x19\xec\x39\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\x0d\x9c\x61\xa8\x9d\x12\x58\x3a\xda\x79\x9e\xa3\x89\x3f\x87\xc0\xb2\x9c\x34\x1c\xb3\xd3\x1d\x79\x8c\x2d\xad\x9f\xf1\x28\xcb\x05\xb9\x08\x24\x5c\x8b\xa9\x83\x28\x93\x74\x36\x57\x88\x32\x6b\x77\xc4\xc9\x8c\x0b\xaa\xe6\xa9\xec\xa1\x49\x26\xb5\x16\x6a\x82\xd5\x4c\x3c\x0a\x51\x51\x2b\x2e\xb4\x6b\x12\x71\x5c\x6a\xb0\xaa\xa2\x6c\x41\x1a\xed\x0e\xe5\xa0\x74\x57\xac\x21\x9c\xbe\xc7\x2a\x2c\xb7\x41\xa1\x2a\xa9\x2d\x1b\x63\xe2\x00\xb9\x43\x76\x82\xaa\x27\x4d\xe7\x00\x90\x25\xf7\xe6\xa5\x78\x89\x12\x70\xc8\x24\x83\x0a\xe2\x62\xb7\x41\xf2\x2a\xa2\x5b\x1a\xf4\x26\xef\x74\x4a\x17\xaa\x36\x70\xab\xea\x2a\xba\x09\x30\x7f\xda\x2d\x36\x24\x63\x01\x35\x03\xda\xdb\x88\xdd\x12\xd2\x0c\x06\x57\xd9\x7b\x53\x77\x1a\xa6\x60\x13\x3d\x56\x93\xfc\x2e\x4e\xec\xf3\xc1\xed\xd9\xcd\xf0\xda\x40\x4e\x5c\xdd\x7c\xea\xdf\x8d\x6b\xfc\xda\x35\x6f\x7d\xea\xdf\x7c\x7f\xbe\xfe\xb5\xef\xee\x8a\x59\xd9\x35\xaf\xdc\xdc\xae\x4e\xe6\x68\x31\xc4\x9a\xa4\xb0\xda\x7e\x4e\xd1\x62\xa9\xe6\x9c\xf9\x10\x85\xb8\xc0\x9b\x8e\x90\xc9\x08\x56\x10\x42\x24\xa4\xaa\x71\x1c\xde\x41\x5c\xce\x7a\x09\xb3\xb8\x59\x06\x86\x6d\xaf\xa2\xd1\x06\x27\xf2\x63\xc2\x27\xe0\xb7\xce\x0a\x05\x9c\x57\x44\xa0\xef\x18\xef\x73\x4e\xe5\x22\xc1\xcb\x4a\x0f\xeb\xae\x9c\x4b\x9c\x12\x88\x38\xce\xf1\xe3\x5c\xb2\x88\xde\x19\x48\x60\xf2\xf7\x3a\x9d\x42\x26\x93\xa2\x58\x11\x34\x21\xea\x09\xf2\xe6\xdc\xaf\xde\x96\xea\x02\x46\xe4\xf1\x88\x81\x39\x67\xa4\x17\x39\xce\x20\xda\x6f\xf4\xae\x87\x46\xef\x62\xf2\x48\x12\xbe\xd0\x3b\xaf\x7f\x68\xb8\x64\x06\x29\xa6\xc9\x25\x57\xde\x32\xb7\xcb\x7e\x0a\x12\xd1\x05\x48\xe6\x63\xa2\xdb\x7d\x39\xc1\xa3\x40\xc9\x8e\x9d\xc1\x18\x10\x8e\x63\xad\x64\x03\x2b\x73\xc3\xcb\x43\x80\x58\x30\xf5\x42\x95\xd6\x4d\x44\x0a\x6f\xfe\x36\x3d\x86\x6d\x16\xcd\x9e\xb5\x3b\xe0\x1d\xc3\x2f\xa4\x64\xb8\x50\x1c\xdf\x71\x4b\xad\xe3\xbe\x49\xc7\x68\xf4\x40\x97\x0f\xa0\x5e\x8b\x0d\x04\x66\x3f\xc0\x5b\xfd\xdd\x5a\x41\xd3\xdf\xb6\x2e\x7c\x2a\xf7\x7e\xda\xdc\xe6\x72\x3a\x35\x59\x3b\xe2\x28\xe1\xb2\x08\x75\xd2\x7a\xd0\x67\xf6\xd3\x55\xe3\x1e\x84\xce\x62\x7d\xad\x6f\xe4\x8f\xae\x59\xf8\x12\x96\x9f\x61\x13\xca\x3a\x38\xec\xdb\x3d\x44\x21\x58\x0e\xe4\xe9\x24\x4f\xfc\x66\x31\xca\xad\xd8\x23\x96\x87\x1c\x48\xf4\x44\x12\x88\x52\x8a\x78\xba\x00\x0b\xad\x1d\xae\x6d\x89\xc4\x26\xe0\xb3\x87\x78\xa6\x74\x63\x26\xa5\xc2\xd9\xe0\x6c\xbe\x46\x6e\xb5\x36\xae\x13\x1b\xbb\xec\xb1\x85\x0d\xad\x1b\x56\x48\x19\xfa\x48\x14\xb4\x02\xd8\xed\xe1\x04\x41\xcc\x2b\x47\xc0\xd5\xaf\xfd\x0e\x27\xca\xce\x64\x83\x9d\xcf\x71\x2f\xbe\x4d\xf8\x64\xb5\x8e\x07\x8d\xa3\xfb\x9b\xa1\x33\x28\xe5\xe1\x2f\x01\xf8\x6c\xc1\x21\x34\xb8\xbe\x19\x9c\xf5\xef\x06\xe7\xc7\xe8\x5e\x12\xbd\x3c\x7e\xba\x90\x1e\xeb\x25\x4a\x33\x72\x0b\xa4\xc1\xa4\x22\xb8\x49\x8f\x25\x42\x14\x92\x58\xd7\x30\x8e\x22\xca\xc6\x6a\xc2\x06\x8c\x0b\x6a\xed\x2c\x80\x0b\x53\x9e\xa7\x0d\xac\x5a\x77\x02\x21\xcc\x65\xfc\x76\x82\x8c\xcc\x78\xd3\x6a\x60\xd5\x3a\xf2\x29\x06\x64\x3d\xf7\x64\xe0\x68\xa9\x39\xa1\x02\xb5\x9a\x96\x21\xaa\x71\xfb\x39\x05\x11\xca\x9f\xf0\x62\x75\xf6\x20\x7e\x2a\x10\xad\x91\x64\x02\xd7\xeb\x73\x9f\x03\xc7\xd6\xc6\x86\x15\xee\x3e\xc1\xdc\x1f\x61\x78\xab\xe7\x9b\x26\x60\x5f\x3a\x1b\x47\x38\xb1\xd2\x20\x6c\x18\xa2\x44\x70\x76\xe0\x17\xca\x50\xe1\x4a\xec\xa1\x29\xfd\x6c\x1b\xcd\xc3\x93\xdd\xab\x81\xbf\xba\x21\x1c\x6e\x8e\xab\x67\x6a\x03\xb1\xe1\x1a\xbe\x5f\x19\x9e\xc5\xa5\xd2\x52\x97\x96\x5c\x05\x89\xb8\xd0\x37\x05\x74\x9b\x1b\x91\xd7\x89\x0c\x0a\x0b\xbd\x28\x55\xa3\xfa\xaa\xd3\x9f\x97\xa1\x88\xb1\x22\x47\x8a\xae\xcd\x5f\xb5\x29\x0e\x90\x0c\x81\x55\x80\xe6\x94\xdf\x3c\x13\x32\xc3\xcc\x45\xd6\x36\x0c\xd7\x5d\x79\x3b\xb0\x2a\x2d\xc1\x62\xc8\xee\x01\xf9\x0a\x32\x37\x0a\xe3\x90\x0b\x58\xcf\x95\xe3\xb0\xc1\x0b\x87\xb0\x6c\x4f\xd8\xc7\x52\x34\x0c\x36\x5b\xc4\x87\x34\xd8\x04\x4b\x85\xec\x98\x9a\x34\xc9\x40\xc2\x7f\x5e\x1b\x5a\x41\x35\x6b\x6b\x3e\xd3\x24\x54\x54\x42\x08\x18\xb6\xa5\x83\xbd\x30\x20\x1f\x29\x11\x33\x27\x08\x9b\xca\xc1\xfe\x6c\xdb\x12\xc2\xee\x96\x08\x99\x09\xc4\x58\x57\x9b\x3e\x46\x7d\x56\x81\x3b\x72\x61\x35\x85\xf5\x32\x77\x12\x4e\x9e\xf0\x52\xa2\x85\x30\xc8\x20\x26\xf0\xda\x4d\x1e\xe2\x1d\x8b\x1f\x79\x4f\xb6\x72\x91\xef\x08\x54\xe9\xf5\x31\x4f\x4e\xee\x1d\x3f\x83\x27\xa6\x14\x14\x5c\x53\xbd\x20\x57\x35\x5b\xb0\x3a\x45\xc6\xd1\x1c\xb3\x19\x19\x3b\x1b\xd9\x36\xda\x92\x6e\xe7\x0c\x9a\x39\xb7\xad\xd4\x5f\x4e\xd7\x46\x61\xb2\x25\x40\xcc\xab\xde\xfe\xa3\x0f\x81\x54\x78\x46\x90\x19\x51\x2b\xab\x62\x21\xe0\xc7\x62\xc5\x82\x9e\x60\x5b\x1d\x14\x83\xa0\x9b\x84\x77\x88\x5c\xb9\xc0\x13\x92\xbc\x8e\xe3\x1b\xba\xb6\xb6\x55\x70\xb6\x98\x60\x6e\x82\x9e\xc0\x1c\x5b\x62\x19\xd6\xf8\x2a\xb2\xba\xd0\xee\x55\xf3\x2c\x14\xeb\xde\x61\xa2\xae\xd4\xc3\x36\x53\x6d\x2a\x00\x11\x5e\x7b\x41\xa1\x84\x3a\xfb\x48\x78\xfd\x95\x4d\x82\xdb\x0d\x24\xa8\xd7\xd0\x30\x8e\x9d\x0b\x36\xac\x9d\xca\xd6\x39\xe2\x2d\x0b\xa1\x0d\xa7\x88\x71\x46\x10\x95\xf9\xcb\xaa\x98\xcd\xe2\x11\x56\xb4\x88\x6f\x8c\x2f\xbe\x50\x93\xaf\xbf\xf3\xdc\x96\x96\x3c\xf7\xdd\xdb\x06\x5c\x7a\x2e\x23\x5a\x51\xc5\x62\x09\x08\x8d\x86\x0f\x17\x65\xba\xb5\xe3\xdc\xbb\xc0\x7d\xe7\x00\x38\x83\x40\x4b\xc5\x11\x88\x91\xa5\xc1\x21\x03\x63\x69\x5f\xb2\x1f\x59\x94\x91\x11\xf3\x96\x0d\x20\x44\x2a\x51\x8a\x17\xe0\x92\x61\x5c\xe5\x5f\x19\xd4\x1c\xe5\xb7\xb0\xe7\x04\x71\x69\xca\x28\x35\xac\xc0\x3a\xd3\x8e\xbb\x7e\xf3\x75\x2d\xa2\x13\x3a\x64\xd5\x19\x7d\x24\xcc\xd1\x74\xcf\x9d\x09\x3d\x28\xd7\x69\xb2\x3c\xc2\x10\x25\x4a\xe2\xd0\x70\xbd\x9a\x23\x19\x83\xcc\x21\xd8\x23\xdb\x2f\xd9\x5d\x6d\x14\x84\xc1\xb8\x2a\x80\x93\xbb\xb8\xde\x90\x4a\x2d\xec\xaa\x49\xe4\xc5\x12\xfd\x9e\x71\xf5\xfb\x00\x98\xd6\x19\x2f\xe0\x53\x67\x82\xea\x55\x2a\x6e\xc0\xa1\xb5\x84\x83\x70\x00\x90\xb4\x76\xe5\x77\x75\xed\xe6\x71\xcb\xcf\x2a\x8d\x0e\xaa\x49\x4c\x4d\x25\x8b\x3a\x87\x2b\x2a\x5f\x0b\x65\x83\xa7\xa9\xac\x96\x9f\xf4\x82\xa1\x53\xae\xf3\xb0\xfa\xbd\x68\xe5\x59\xad\x24\x74\xef\x42\x6d\x69\xeb\xc0\x97\x35\x18\xb6\xf5\x76\x89\x6d\xd2\xf4\x9a\xe4\x72\x51\x8c\x3c\xb2\x55\x0c\x1a\x40\x5a\x8f\x47\xec\x03\x17\xf6\x0a\x96\x16\x26\x7e\x82\xa3\x87\x23\xc2\x62\x84\x33\x35\x37\x60\xa9\xd6\xaf\xb0\xb4\xd4\xa0\x25\x0d\x20\x1b\x8f\x84\x40\x65\x84\x45\xec\x0a\x16\x3c\x72\x37\x8a\x11\x0b\x1a\x01\x20\x7a\xa8\xd3\x03\xd5\x4a\x9b\x54\x4d\x02\x85\xd1\x9a\xd6\xa2\xae\x0e\x67\xa5\x0a\xe7\xea\x73\x56\xa8\x2b\x0a\x10\xfa\x10\x9f\xc2\xa7\xd5\xd5\x19\x3a\x6b\xa3\xd3\xef\x34\x3d\x57\xbd\x10\x3d\xab\x51\x18\x93\x94\x9d\x81\x96\x74\xbe\x71\xbc\xb6\x00\xfa\x3a\xcd\x04\x44\x5b\xd6\xb5\xf9\x55\x34\xa7\x49\xee\xbb\xf8\xba\xe7\x87\xa9\x9b\x4c\xc8\x23\x49\x0c\xe4\x78\x24\x20\xb0\xda\x58\x0d\xbf\x41\xff\xdb\xd4\xa6\x44\x7f\x1c\xb1\x8f\xc0\x86\x93\x64\x09\x80\x88\xbe\x65\xac\x4a\xcd\x3c\xd4\x0e\x40\xd9\x4c\x0e\x54\x1c\x88\xd9\xeb\x39\x7e\x24\x23\xe6\x9a\xf9\xdf\xe8\x01\xfd\x01\xfd\xb1\x49\xbd\x73\xf1\xd1\xcf\x6c\xe7\xf8\x10\x44\x1f\x07\xb7\x9c\x65\x94\x96\xdf\x38\x33\x48\xc1\x08\x59\x03\x8c\xe0\x71\x8d\x29\x7b\xe4\x51\x25\x08\x3f\x3c\xb5\x58\x10\xa6\xc6\x8c\xc7\x64\x4c\x6a\x5c\x9a\x2b\x98\x84\x16\x02\x2e\x79\x4c\xd6\x3a\x24\x3d\x33\xfd\x11\x4c\x37\x32\x9b\xf8\xed\x80\xfc\x6c\x9f\x8c\xeb\xad\x0f\x45\x4a\xab\x1f\xb9\x07\x0f\xdd\x66\xdc\xdb\x3a\x53\x5d\x94\x5f\x0f\x2e\x04\x3b\x80\x7a\x87\x5e\x82\x95\x4b\x61\x2d\x1f\xc7\xb2\x23\x40\xbf\xac\x67\x6e\x2f\xab\x00\x16\x15\x4a\x57\x08\x3a\xa3\x5a\x7e\x6f\xef\xb0\x05\x4e\xb8\x8d\x37\xc3\x60\x44\xb6\x72\x67\xe4\x4b\xe1\x70\x32\x8e\x3c\xfd\xe5\x4e\xc8\x09\xcf\xca\x02\xbc\x5d\x00\x2a\xc3\xe4\x5a\x2b\xab\x2f\x35\x1f\x9e\x99\x04\x2e\x32\xa7\x26\x65\xba\x7f\x76\x81\xf4\xe9\xe0\xa9\xc1\x15\x82\x45\xcb\xd4\x9c\x0b\xfa\x4b\x63\x82\x49\xb3\x8c\x9e\x7b\x5a\xf3\x7c\x1c\x33\xce\xa2\xb4\x0e\xc4\x6a\x44\x0a\x55\xd0\x4a\xea\x74\x26\x34\xc9\x00\x42\x53\xb3\xd9\x69\x96\x18\xdc\xfd\x88\x8b\xd8\x14\xcf\x96\x85\xec\x1f\x88\xa2\x74\xe2\x3d\x56\xbe\x41\x6a\x91\x06\x2d\xb2\xbf\xb1\xe0\xac\x14\x40\xff\x9e\x91\x6c\x4f\x09\x54\xaf\x1a\x72\x7a\x87\x67\x32\x8f\x21\x35\x6b\xa3\x79\x73\xbe\xbe\xff\xd2\x33\x95\x41\xca\xa1\xb3\x2c\x7a\x04\x1f\xa3\x92\x9b\xba\x8e\x1b\x59\x74\x6e\x0c\x72\xf9\x1e\x4c\x3a\x2f\x11\xcf\x51\x95\x91\x6a\xd8\x8f\x25\xbf\x47\x9f\x80\x57\x66\x11\xcf\x64\x27\x71\x10\xf0\x25\xe9\xe3\x19\x4d\x26\x5b\x30\xb9\xaa\x50\xbd\x32\xa8\x35\x37\xa0\x78\xb6\x56\x93\x0b\xab\x38\x44\xcd\x3f\x09\x0a\x00\x5f\xcb\xfc\x65\x5f\xc2\xd4\x5d\x17\x21\x8f\xd1\x52\x8a\x11\x6b\x21\xae\xc3\x2d\xe1\xb2\x9e\xc7\x6f\x60\x80\xb0\x0d\x15\xbb\xae\xfa\xed\x9b\x4e\x84\x61\x49\x87\x7a\x24\xaa\xe8\x1e\x6b\x0f\x83\x2f\xe4\xf0\x3a\x06\x44\x2f\xda\xbc\xdc\xc9\xf0\xe4\x38\x8e\x70\x34\x6f\x9c\xd4\x84\xf3\x84\x60\xd6\x24\xbd\xd6\x3e\x2e\x1f\x11\x83\x4d\x09\xac\x3b\x49\x00\xa0\xd5\x2d\x81\x2d\xea\x97\x8b\xef\x2c\x06\x60\x6d\xc3\xc3\x0d\x12\x87\x1b\xa8\x22\xcc\x59\x7e\x28\x9b\x25\xa4\xbc\x56\x16\x01\xbd\x67\x3b\x49\xa2\x2c\x09\xaa\xfa\x2d\x88\xd0\xa3\xd6\x4b\xfc\x48\x98\xd6\x19\xec\x38\x9c\x33\xe3\xc9\xe5\xb3\xfa\x5a\x3e\x3d\xdf\xb5\xf3\xa7\x41\xd2\x58\x3c\x62\x70\x70\x79\xf1\xb0\x6a\x5a\x95\x5a\xcd\x08\xed\x52\x5b\x9f\xce\x40\x88\xd8\xf8\x78\xde\x16\xcd\xc4\x1b\x9f\x49\xd3\xf7\x18\x62\x0c\x76\x76\xad\x05\xee\x97\x3c\xd3\xde\x6c\xac\x43\x53\x7a\x21\x23\x32\x44\x6d\x14\x41\x5e\x82\xa0\x8d\x26\x34\x9f\x67\xbd\x4b\xf2\xea\x05\xee\x36\x68\x39\x94\x95\xae\xea\x96\x8e\x67\xb0\x4e\xae\x3a\xb7\x17\x36\xe2\xb6\xe8\xb2\xf5\xe9\x19\x79\x98\xa3\xad\xcf\xa9\x04\x86\xe4\x72\x48\x09\xfe\xd1\x68\xd8\x54\x1a\x0b\x98\xab\x52\x90\x2e\xd4\xd2\x16\xb5\x82\x7b\x31\x4c\xc9\x34\x80\x5d\x75\xee\xe1\xf2\x1d\x19\x17\x1c\xc4\x75\x9d\x41\x47\xd6\xac\x50\xdb\xa4\x5b\xe8\x10\x00\xa2\x94\x70\xdf\x14\x0d\x62\xea\x83\x8e\x71\xd2\x68\xcb\xda\x03\xd3\x84\x2c\xc9\x3c\xc9\xde\x62\x77\x2a\x91\x11\xcd\xbb\x70\x92\x94\xe6\x85\x21\x9b\x55\xf9\x1a\x61\x93\xbc\x90\x69\x7b\x67\x75\x82\x27\x64\x23\xf7\xf4\x85\xf9\x60\x25\x15\xc1\x2b\x90\x6a\xba\x58\x24\xcb\x76\xa8\x4d\x61\xe8\x5d\x2d\xc6\xd5\xba\x81\x85\xc8\x58\x2b\xef\xa6\x22\xba\xd4\x76\x43\x94\x24\xca\x04\x55\xcb\xb1\x35\xfa\xb5\x67\x5a\xb7\xf6\xcb\x33\xfb\x61\x1b\x8d\xfa\x14\xb9\xfe\x9c\x91\x11\xee\x29\x41\x4d\x01\x14\x3b\x85\x36\xdb\xad\xb5\xe4\x5a\xec\x9b\x55\x0b\xeb\xc0\x77\xda\x0d\x55\x77\xb1\xed\xf0\x6c\x61\x85\x31\x9f\x3a\x58\x9b\xf6\x0b\x5b\xae\x38\xb1\x81\xb5\xd4\xa1\xe7\x2e\x04\xe5\xc2\x16\x76\x68\x13\xd4\x96\xe2\xcf\xe3\x05\x16\x38\x49\x48\x42\x65\xba\xbd\x6d\xf7\xcf\x7f\x5a\x39\xda\x33\x53\x80\x44\xda\x72\x3e\x9f\x69\x9a\xa5\x88\x65\xe9\xc4\x4a\xb9\x58\x3e\x84\xd8\x85\x2e\xd3\xda\x40\xf0\xb8\x01\x16\xf2\xbd\x45\x80\x46\x39\x62\x01\x2e\xb1\x35\x55\xe0\x68\x4e\xc9\x23\xa0\x26\x0a\x46\xa4\x3c\x46\x97\x5c\x91\x53\xf4\x09\x2f\xee\x40\x50\x33\x15\x01\x67\xc6\x3a\x8e\x25\xd2\x52\x6b\xc6\xa8\xea\x8d\x98\x05\x33\x76\xab\x72\x12\x71\x66\x00\x2d\x23\x58\x58\xdf\x04\x98\x7b\x1d\xb2\xa3\x72\x79\x69\x54\x36\x2c\xb6\xc0\x4f\xe3\x20\x7a\x75\x6c\xb2\x03\x36\xa0\xe3\x1b\xfc\x64\xe2\xb5\xa1\x02\xbe\xf9\x7a\x85\xe4\x6e\x03\xa2\x6c\x01\x18\x83\xe3\xea\x02\x47\xb8\x05\x13\xf0\xa5\xab\x4c\x74\xea\x57\xf4\x98\x1c\xa3\x6f\x13\x3e\x91\x3d\x24\x3d\xe6\xb1\x2b\xd0\x2f\x7b\xc6\x41\x05\xff\x36\x99\x3c\x5f\xbb\xd5\xcf\xf9\x3e\x54\x6d\x9b\xd2\xcf\x06\xc3\x40\xfe\xf9\xf4\xe4\x24\x5d\x1e\x4d\xb2\xe8\x81\x28\xfd\x17\xc8\x14\xb5\x2b\xe4\x00\x80\x70\x1d\x9c\xd0\xba\xd5\xa9\x42\x11\xb5\xa2\x48\x0b\x62\x27\x09\xc0\x5e\xeb\x2b\xdd\xd7\xc5\x74\xc8\x35\x9c\xd5\x17\xfd\xb3\x53\x16\x59\xd3\xf1\x2a\xe0\xe5\xbe\x8c\xb6\x62\xea\x7e\x86\x30\xbd\xd3\x04\xcf\x4a\x2a\xcb\x06\x4a\xca\x55\x4a\x2d\x15\xe9\xb9\x43\xbc\x85\x3e\x65\xc5\x28\xb3\xf7\xce\x1d\x09\x6e\x45\xeb\x6e\x39\x1e\xb1\xbe\x44\x4f\xc4\x94\xf3\x84\x94\x32\xf0\x4e\x64\x54\xce\x7d\x42\x19\xd8\x4b\xa1\x51\x83\x66\x6a\x92\xde\xad\xe2\xe8\x34\x2b\xe7\xbf\xb1\x1a\x28\x4e\x24\xe9\xe9\x86\x01\xd1\xca\x05\x12\xa2\x27\x81\x17\x0b\x22\x46\xcc\x22\x53\x02\xfe\x32\xe7\x36\x48\xa4\x29\x9a\xbc\xd3\x28\x0f\x4b\xa3\xec\x97\x42\xcb\xa1\xc2\x6d\x0a\x4a\x8f\xcc\x0b\xf9\x39\xfb\x94\x57\x39\x0b\x57\x33\x80\xf1\xc2\xc7\x31\x27\x32\x30\x3c\x23\x6f\x3f\x4a\xe8\x94\xe8\x1b\x73\xc4\xf4\xd2\x87\x46\x72\x83\xe9\xeb\x20\x7e\x75\xa7\x91\xe0\x52\xda\x68\x71\xd3\xce\xea\x9c\x9f\x1d\xca\x87\x19\x60\x62\x53\xb8\xbf\x5c\x48\x2c\x78\xe6\x4a\x8a\xd9\x87\xf5\xf5\xdc\x9b\x9a\x5a\x5b\x40\x2c\x5f\x8b\x0d\x4a\x88\x9d\x9c\x5d\x0c\x7d\xdd\x9c\x52\xd7\xd5\x1a\x62\x21\x98\x73\x73\x15\xb1\xea\x8c\x83\x7a\x62\xa5\x26\x56\x54\x14\x5b\xbf\x59\xc5\x18\xd5\x5d\x90\xba\x4a\x5b\xbf\xee\xce\x2a\xd1\xcc\xba\x50\xea\x3d\x6d\x53\x03\x2b\x8c\x40\xc8\x79\x6e\xaf\x30\x08\x0b\xfa\x2d\xa9\x70\xba\x08\xd3\x04\x1d\x54\xa1\x9d\xa6\x39\x6a\x4d\x8c\xfb\x45\x21\x94\x23\x6c\x22\x30\xca\x83\xab\x6c\xc5\x66\x5e\x9a\x3b\x8b\xcc\xbc\x8f\xd0\xdb\x97\xcb\xbb\x4d\x96\x79\xa4\x99\xb4\xf2\x86\xab\xfa\xdb\x60\xab\x9e\x10\x8f\x42\xdd\xb8\xa1\xbb\x26\xd6\x79\xb4\x1a\x41\xb0\xb4\x21\x04\x90\x7f\x56\xca\x4d\xd9\xc0\xa4\xe9\xc7\x6c\x32\x58\x8f\x3c\xee\x7b\x70\xd5\xd8\x52\x46\x91\x3b\x88\x54\x08\xf2\x48\x04\xd0\x8e\x8d\x53\x61\xc5\xa3\x8a\x13\x41\x70\xbc\x0c\x56\xc4\x3b\xc9\x4d\xcf\x60\xd2\x91\x34\xd5\x4a\x27\x88\xd3\x8c\x1f\xf1\x85\x93\xb3\x0b\x6f\x01\x68\x3f\x9d\xea\x1b\x2b\x70\xb1\xeb\x2f\xd8\x11\xf9\x4c\xa5\xd2\x7a\x49\x4d\x7c\xa1\x6b\x04\x6e\x69\x28\xe5\x33\x27\xf6\x86\x1b\xbd\xeb\x7f\x7b\x75\x73\x37\x38\x1f\xbd\xcb\x23\xca\x5d\xca\x94\x07\xa1\x71\x98\xe2\x9c\x8d\x98\x0f\x02\xf5\x98\xab\xb0\x97\x08\xc7\x71\x8e\x78\x6d\x15\x1f\x23\x67\xac\xe4\xc8\xc1\xa9\x58\x1b\xfe\xb9\xa2\x99\x7b\xc8\x9b\x39\xd4\x93\xb5\xc2\xdd\x53\x38\x39\x26\xfb\x67\x45\x9a\xc6\x9e\x2e\x9b\x10\x2e\x52\x19\xfd\x90\x28\x87\x67\xc6\xc8\x93\x93\xef\xe1\x76\x3e\xc1\xe6\x12\xde\x8c\xdb\xb9\x0d\xd9\x62\x53\x3f\xd0\xcf\x24\xbe\x69\x90\xaa\xf6\x92\x85\xd1\x2a\x7a\xad\x76\x17\x32\x46\x37\xd1\x52\xfd\x54\xee\xf5\x77\xed\xd9\xd2\x55\x8e\x02\x95\x23\x3a\x02\x9c\xa3\x42\x18\x45\x44\x28\x4c\x19\x9a\xc2\xc1\x66\xd1\x12\x01\x16\x07\x01\xbf\xeb\x9f\x50\x4a\x19\x64\xbb\xaf\x5a\xda\xfb\xe2\x3c\x36\x29\xe5\x3f\xbc\xbc\xbf\x2b\x88\xaa\xdf\x5d\xdd\x17\xeb\x48\xf7\x7f\x5a\x29\xab\x96\x5a\x58\x15\xe0\x12\x4c\x31\xcf\x9c\xb3\xc0\x96\x7e\x65\xea\x26\xfa\x91\xa8\x1f\x34\x5f\xe6\x6c\x1f\x61\xe5\x56\xce\x02\x87\x13\x19\x3f\x9a\x86\x37\x20\x03\x3b\x94\x15\xb9\x03\x4e\x92\x83\x1e\x90\xed\x21\x4c\x64\x3f\x36\x15\x93\xfb\xba\x39\x50\x19\x5d\x80\x96\xd6\x97\x38\xd3\xcb\x65\xe0\x05\x1d\x26\x61\xd0\x1c\x9f\x9a\x8f\x5b\x22\x34\x05\x61\xc2\xba\xad\x7c\x29\x51\xff\x7a\x58\xb3\xd6\x17\x65\x9b\xfc\x97\x55\xde\x21\xf1\xee\x81\x7d\x57\x76\x08\xf2\xbd\x0e\xa2\xa8\x83\x9d\xe9\x6e\xf5\x1c\x8c\x17\xf5\xba\xe8\x9a\x3d\x04\xf4\xca\x3a\x79\xb6\x90\xc7\xb9\x06\xa8\x72\xb3\xd4\xa6\x7c\x19\x36\x44\x91\x09\x07\x64\xe3\xea\x43\xe4\x94\x6a\xd0\x66\x2f\x44\x52\xe1\xa6\x80\xa4\x75\xd6\xee\x0d\x5d\x26\x9f\x4d\x1b\x78\x99\x1f\x0c\x45\x7b\xf4\x01\xc0\x53\x70\x05\xca\x5c\xb0\xa5\x4d\x06\x0e\xa7\x1b\x52\xdb\x66\x88\x34\xf9\xf8\x9c\x3d\xd1\x62\xb3\xe2\x05\xb6\x4a\x31\x48\xf8\x0e\x39\xbc\xae\xd0\xd4\xf1\x88\x05\x11\x00\xd2\xc8\xe4\xfa\x8c\x38\xb0\x7e\xa8\x00\xc9\x00\xe8\x15\xb2\x1e\xfc\xcd\x5c\xd8\x81\x72\xce\xb1\x9a\x17\xe1\xf6\x2b\xfd\xd8\xd3\x29\xe7\xd8\x65\x76\x39\xf5\xde\x06\x56\x85\xc6\x0f\x68\x2f\x00\xd8\xb6\x1d\x83\x7d\x0f\x34\x6a\x1c\x94\x6f\x0a\xb2\x81\x63\x4e\x24\x7b\xaf\x7c\xee\x1c\x4d\x6c\x89\x00\x5c\xb6\xb7\x6a\x91\x03\x53\xdb\xf2\xea\x03\xbe\x07\xb8\x9b\x4d\xa5\xda\xe0\x58\xad\xb5\xa1\x38\xa7\x19\x50\x42\x18\xdc\x01\x9d\x36\x61\xd3\x7c\x5e\x90\x68\x1b\x4c\x8e\x6b\x2c\x70\x4a\x14\x11\xab\xe2\x3b\x8a\xc5\x55\x21\x76\xc1\xed\xa0\xed\xd7\xec\xa2\x41\x9e\x2f\x97\x28\xf0\xaa\xd7\xc5\x3a\x8c\x0d\x3f\x8b\x8d\xe0\x84\xf4\x34\x7e\xb0\x50\xfb\x1b\xce\xc2\xf6\x93\x4f\xc3\x86\xaf\x04\x90\x2a\xbb\xce\xe9\x65\xb0\x25\xee\x2a\x28\x0d\x85\xf8\x8b\x03\x01\x95\x58\x3f\xca\x26\x34\x89\x75\xbc\x74\x2f\xbc\xdb\x85\x8c\xbb\x9c\xc4\xd2\xa1\x2a\x04\xa3\x03\x95\x80\xbc\x6f\x80\x15\xea\x11\x21\x40\x68\xa9\x0b\x39\x0b\xfc\x28\x16\x2f\x2c\xb7\x36\x5a\xc9\xaa\x5c\x6c\xa5\xb4\x5c\x6b\x78\xdc\xbe\xb2\xe5\x3b\x89\x66\xdf\x12\xcd\x06\xb6\x3d\x43\x9d\x44\x94\x80\x3b\x6c\x11\x54\x9b\x71\x5d\x9c\x20\x24\x73\xd8\x2b\xd2\x56\x52\x84\xab\x9f\x32\xff\xaf\x22\x07\x77\x44\x1d\x92\x6a\x5d\x96\xda\x71\xe0\x1f\x01\xf7\x48\x12\x4a\x03\x36\x50\x01\x46\x6b\xe2\xca\x8c\x09\x7a\x78\x69\xbc\x2b\x90\x2d\xba\xe4\x19\x7a\xa2\x52\xeb\xc2\x23\x06\x81\x57\xde\x54\xad\x38\x32\x2f\xf6\xe0\x2d\xc8\x2b\x97\xd9\x24\xa5\x0a\xe1\x60\x86\x05\x7b\x59\xcf\x9e\x67\xfd\x01\xcc\xb8\x36\x71\xb9\x0e\xf3\x64\xcd\xa1\xd9\xc2\xf8\x93\x37\xb2\x6b\x6e\x72\x10\x24\xfa\xbc\xd9\xc9\x81\xc6\x13\x6a\x98\xb5\x67\xae\x4b\x4f\x46\xf5\xd6\x06\x8b\xc2\x08\x50\x99\x54\xaa\xd2\xdd\x62\xb1\x17\xd7\xa4\x26\xe7\x1b\xd1\x2a\x37\x39\x7f\x7d\x1f\xc9\xc9\x4d\x65\x7b\x56\x25\xab\xb9\x4f\x1a\x8c\xb3\x2e\x09\x52\x71\x17\x89\x1c\x4a\x4a\xd7\x8d\x92\xd2\xa1\xc1\x44\xe5\x11\xd6\xdb\xc7\xeb\x6e\xa2\x0e\xe6\x09\x2f\x21\x15\x05\xf9\x6b\x45\x90\x0d\x52\xe6\xfc\x8c\x2b\x48\x52\x88\xa0\xa4\x71\x25\x71\x6e\xc4\xea\x25\x90\xd5\x3c\x71\xd7\x98\xf7\xbd\xc2\x49\x05\xe7\xcf\xcd\xc2\x5a\xb4\x7e\xf4\x51\x43\x46\x59\xb6\xc5\x89\xcb\x22\x66\xee\x7f\x6a\x50\x40\x40\xf0\xd8\x26\x83\xb3\xe6\x54\xb6\x8c\x48\x5f\x7b\x2e\xec\xa5\xbb\x47\xd5\xae\xc2\x9d\x5b\x07\xf0\x7b\x19\xd9\x72\x63\x17\x81\xea\xd4\xf8\x92\x1b\x71\x9b\xa2\x8b\x80\xd2\xb8\x37\x6c\xc9\x72\xba\xb7\x6e\xbc\x07\xae\x47\x3b\x74\x6c\xc2\x30\x3c\xe2\x71\x69\x4b\x0a\x13\xb6\xc5\xac\x9f\x61\xd2\x9b\x16\xca\x0c\x5c\x61\xc2\x86\x4f\xd2\xd0\x6e\x00\x15\x32\x6d\xd4\x59\x89\x0f\x7b\xd1\x2e\x63\x31\x11\x8c\x60\x35\x7f\xb9\xa0\xf5\xb3\x5d\x8d\xd3\x2f\x16\xc0\x7e\xb6\x97\x2a\xc9\xa5\xa0\xf0\x0d\xe3\xc1\x37\x08\xae\xce\x6b\x66\x56\x14\xc7\xba\xea\xf4\x39\xa6\xc7\x26\x54\xba\x53\x5c\x7b\xbd\x32\xf7\x3c\x11\xfe\x35\x56\x9f\x4a\x6c\xbf\x3e\xec\x61\xa5\xd1\x35\x4b\xf2\x45\x84\xd2\x3f\x7f\x74\xf7\xaa\x9a\xa6\x59\x10\xf0\x0d\x85\x65\x15\xa6\xcc\x72\xaf\x55\x31\xde\x5a\xa2\x4c\x71\x5d\x58\xf7\xc1\x27\x0c\x7c\xf1\xf9\x02\x5d\xf4\x78\x17\x3d\xde\x45\x8f\x6f\x14\x3d\xbe\xca\xcc\xe8\x3d\x5f\x50\xe3\xad\x50\x99\xc3\xac\xe3\x1a\x6d\x6d\xfb\xa8\x6e\x67\xa9\x0b\x43\x62\xec\x2f\xf6\x87\xda\xa8\x98\xca\x67\xe5\xd9\x86\x56\x43\xb6\x2c\x1b\xdf\xb1\x88\x13\x0b\x9f\x65\x63\x56\x8b\x56\x9e\x55\x06\xc9\x11\xfb\x8e\x3f\x91\x47\x22\x7a\x08\x2b\x94\x72\xad\xa4\x07\x51\x28\x40\x70\x05\x24\x66\x13\x6d\x80\xd1\x25\x4e\x49\x6c\xea\x6c\x05\x91\x6d\xd6\x2c\x6a\x1d\x9a\x75\x28\x91\x00\x78\x68\xb6\xc1\x45\x27\x8c\x98\x89\x36\x33\x11\x4e\x70\x27\x53\x37\x31\xa0\xeb\xdf\x7b\x77\xeb\xef\x8f\xd1\x9d\xbe\x07\xa8\x2c\x8e\x37\x00\x8d\x6a\x1a\xdb\x88\xcd\x04\xcf\x16\xde\x52\xc5\x27\xa6\xe0\xa2\x01\x9c\xae\xba\x5b\x61\x30\xce\xd7\x1a\xe1\x58\x6b\xbc\xab\x09\xe7\x55\x02\x11\xb7\x42\x5e\x09\x09\x48\x73\x09\x1f\x5d\x65\xa3\x9d\x8d\x97\x34\xc0\x9b\x58\x85\x1f\xfd\x4c\x2e\xdc\x73\x22\xc1\xf6\xe2\x6d\xdb\x85\xf4\xd7\x62\x8a\x75\xed\x38\x57\x59\x1e\xbd\x77\xc0\x59\xd0\xeb\xb3\xb7\xf3\xce\x6d\x64\x95\xc9\xad\xb3\xfc\xf8\xd9\x6c\x92\xad\x03\x28\x9b\xf8\xc5\x75\x26\x16\x1c\x24\x9e\x64\xe9\xb2\xcd\x2d\x40\xd5\x82\x2f\x32\x13\x3d\x46\xc3\x60\xa2\x5a\xca\xa6\x52\x7d\xc2\x2a\x9a\x6b\xfe\x9e\x03\x35\xed\x29\xaa\x2e\xe7\xca\xcf\x6b\xa7\xac\x99\xc1\x59\xd8\x7b\x83\xe1\xbe\x85\xdd\xda\xdc\xaf\x2e\xc2\xda\xdd\xd8\xa9\xee\xaf\x50\x4b\x3e\xb0\x3e\xba\x4f\xec\x13\x3d\xd1\x75\x54\xb4\x6e\xfc\xed\x68\xab\x58\x28\x68\xef\xf1\x7a\x3b\x20\x5f\x9c\x5b\x9c\xa1\xfc\x45\x5b\x17\xb0\xc1\xc9\xbe\x65\xa1\x6f\xeb\x3d\x81\xca\xf1\xb9\x5d\x33\xc5\x0b\x2d\xac\x2b\xae\x6f\x49\x31\x33\xf2\xa2\xa9\x3f\x89\x30\xca\x04\x75\x67\xbf\x94\xca\xda\x4c\x1d\x60\x07\x3c\x09\x0b\xc1\x44\x38\xa8\x91\x65\xdc\xea\x38\x52\x19\xf6\xe1\x7f\x40\x13\xae\xf4\xae\x49\xdb\x75\xee\x6b\xe1\xc4\xa8\x9a\x3d\x5d\x4b\xd8\x3b\xec\x32\xae\x83\x65\x6b\x75\xd2\x28\x9b\x05\x98\x6e\xf5\xb6\xd8\x36\x90\xed\xb5\x5f\xb6\x83\x9d\xaf\xfd\xd4\xc9\x3e\xdb\x7c\xbb\x02\x73\xa6\xf1\xf3\x75\x02\x6c\x21\xd4\xd9\x86\x9b\x5a\xe9\x29\x44\xdb\xb3\x76\x32\x00\xcd\xa4\xe0\x0e\xc7\x56\x9a\xfa\x2f\xff\x97\x29\xf1\x63\x96\xe6\xbf\x10\x17\x23\x66\x7e\xef\x79\x78\x7d\xfd\x42\x8e\x5b\x89\x53\x92\x23\xfb\x89\x22\x06\x18\x20\x21\x58\x0c\x27\x83\x51\xea\xd1\xc5\xf5\x18\x1e\xb2\x09\x11\x8c\xe8\xa1\xb9\x9c\x69\xcf\xcc\x52\xcc\xf0\x0c\x10\x51\x7b\x10\x7f\x06\xe2\x6a\x2e\xf2\x1b\x92\x36\x65\xda\x80\x5b\x69\x66\x69\x53\x2e\xf3\x6a\x93\xd0\xa7\x11\x65\x2d\x20\x63\x1e\xc4\x50\x4f\xfd\x37\xb6\xff\xed\x24\xf6\xbb\xfe\xed\xf7\xe3\x9b\xc1\xed\xd5\xfd\xcd\x59\x41\x6c\x3f\xbb\xb8\xbf\xbd\x1b\xdc\xd4\x3e\xcb\xd3\x15\xff\x7e\x3f\xb8\x6f\x78\xe4\x1a\xb8\xe8\x7f\x3b\x28\x94\x6e\xfd\xfb\x7d\xff\x62\x78\xf7\xd3\xf8\xea\xc3\xf8\x76\x70\xf3\xc3\xf0\x6c\x30\xbe\xbd\x1e\x9c\x0d\x3f\x0c\xcf\xfa\xfa\xcb\xf0\xdd\xeb\x8b\xfb\x8f\xc3\xcb\xb1\x0b\xee\x0d\x1f\xfd\x78\x75\xf3\xfd\x87\x8b\xab\x1f\xc7\x41\x97\x57\x97\x1f\x86\x1f\xeb\x66\xd1\xbf\xbd\x1d\x7e\xbc\xfc\x34\xb8\x5c\x5d\x22\xb6\x7e\x35\x1a\xab\x4f\x06\x17\x59\x60\x9c\x09\xc4\xa4\xc9\xd2\x92\x36\xfd\x05\x5c\x04\xd7\x86\x1e\x8f\x7a\xee\x2f\x53\xd0\xf5\x48\xb3\x40\xe7\x7d\xca\xb9\xc7\x88\x79\xf7\xa0\xbf\x54\xa1\xa0\xb7\xcd\x3e\x2d\x8c\xf6\x14\xf5\xe1\xac\x80\xc2\x50\xe8\x14\x30\x27\xfc\x48\x9d\x43\x19\x99\x62\xfd\x29\x05\xdf\x32\x3a\x42\xe5\x0d\x2f\x36\x68\xe7\x04\x43\xb0\xde\xb1\x78\xd5\x69\x90\xe5\xc4\x56\xa0\x94\x53\xe4\x38\x34\x31\x6a\xbb\x81\xcc\x5c\x32\x9c\xd2\xc8\xfc\x50\x42\x8d\x44\x39\x42\x42\xb9\xc5\x02\x81\x15\x5b\x9e\x13\xf4\xfd\xdf\xf2\x41\x81\xa7\xc0\x1a\x08\xb2\x4a\x21\x30\xfb\x40\x64\x66\x55\xd7\x91\x67\xa1\x27\x77\xcc\xad\x09\x17\xce\xad\xad\x17\x0b\x6e\x9d\x8c\x05\x28\x49\x05\x1f\x8f\x3e\xde\x66\x46\x25\x1a\x3f\x45\xb7\x80\xd0\x20\x73\xd5\x5d\xef\xe2\x22\xc9\x66\x94\x21\x9a\x2e\x12\x92\x57\x1a\x9e\x90\x39\x7e\xa4\xdc\xa1\xee\x9b\xe2\x04\xb0\x8e\x56\xb4\x42\x47\xa8\xf1\xa0\x9c\xa2\x7e\x1c\xcb\x22\x83\x2b\x50\x8e\x63\x99\x47\xc5\x61\x87\xc0\x46\x2c\xf6\x6c\xb3\x44\x47\xf9\x91\x83\x15\xdb\x3f\x06\x45\x95\x1d\x16\xef\xde\x9d\xf0\x54\xe5\xc3\xd8\x91\xf2\x78\x2b\x61\xe0\x0e\xcb\x07\xc7\x9a\xd7\x09\x04\x0e\x0d\x64\xb7\x1e\x2d\x2c\x48\xdb\x4e\xfd\xca\x8e\xe1\xa0\x6d\xd7\x67\x23\x98\xed\x9a\x2e\xdd\x8c\x93\x52\xc5\xa1\xd6\xfd\x15\x2a\x16\xd5\x76\xb6\x57\xaf\x4a\xbd\x34\x06\x47\x72\xec\xe9\x7f\x83\x79\x5c\xc3\xa7\x57\xfe\xcb\x95\x22\xdb\x38\x58\xb7\x4d\x7d\x2d\x95\x3c\x4d\xeb\x6f\x59\x49\x87\x7b\x42\xa5\x69\x2f\x0c\x02\x5e\x3c\x8d\xc0\xad\x86\x29\xb3\x55\x44\x88\xf7\xfb\xb8\xba\xb9\xfa\x1c\xfb\xca\x56\x78\xc2\x1f\x0b\xca\x65\x4a\xa4\xc4\x0d\x98\x15\x81\x49\x6c\x17\xc6\xe0\x4f\xa8\xfd\xb0\x25\x3d\xb9\x33\x79\xa7\xbf\x5a\x65\xf4\xb9\x09\x35\x63\x37\x51\x2d\xb0\xc6\x2e\x9e\x15\x5d\x99\xac\x36\xcd\x5f\x7a\x79\xc8\x0a\x17\x41\x24\x4f\x93\x9b\xa5\xa5\x59\xad\xbc\x60\xb5\xc5\x61\x42\x57\xd9\xe6\x91\x2e\x41\xeb\x5b\x03\xf9\x5a\xff\x05\x2e\xae\xcf\x06\x54\x57\xf0\x2b\x86\x85\x73\x4d\x8d\x78\xb0\xb9\x85\xb6\xd4\x1e\xc2\x26\x99\x30\x97\xa6\x64\x16\xcd\x8d\x37\x47\x5f\x19\xbd\x11\x7b\x0a\x36\xa4\x10\x6e\xdb\x0f\x5b\x02\x10\xc4\xcf\xfa\xb8\xd1\xc7\x42\x10\x33\x88\x8c\x14\x22\x6a\x03\x42\x30\x8e\xb7\xbc\xea\xcd\x1a\x02\x0f\xf6\x6b\x07\x52\xdf\xa2\xc4\x59\x4d\x15\xfe\xba\x42\x67\x7e\x6e\x41\x7d\xb1\x1d\x34\xe5\xb6\x43\x08\x4a\x9c\xd5\x8d\x60\x0f\x15\xce\x5e\x14\x95\xd8\x27\x45\x9a\x1c\xda\x74\x62\x61\x0a\xf4\x74\xdd\x6a\xff\xc1\xcd\xe8\x0f\xc6\xef\x90\x35\xe0\x5a\x04\xad\x79\x60\x62\x74\xa4\x65\x56\x97\x6f\x6d\x03\x1e\x24\x3a\x32\x60\x67\xef\x21\x9e\xb1\x7f\x3d\x7c\xdf\x43\xef\xc3\x9c\xae\xf7\x5b\x1d\x40\x3b\x6e\x5b\xe5\x0c\xb4\xa9\x42\x60\x7f\xf1\xd8\xc1\x5e\x95\x4e\xa2\xdd\x33\x7b\x10\x51\xd3\x39\xd4\x5f\x16\xbe\x01\x27\x30\x54\xed\x32\x7e\x52\x1f\x56\x6c\x5d\x40\x46\xc6\xa5\xb2\x66\xed\xe2\x11\x9b\x2c\xcb\x4e\x9e\x9e\xf7\xf2\xb4\x3e\xa5\x3b\x57\xa2\xd2\xed\x55\x93\x80\xf7\x1c\xee\xba\xfa\x3e\x58\x93\x56\xdc\x37\x91\xcd\x7c\x1a\x70\xb1\xa6\x68\x80\x2e\x4e\xbc\x6e\x56\x05\x7b\x99\x5b\xcc\xda\x4d\x59\x27\xff\xbc\x35\x72\x6b\x11\x5c\xdd\xaf\x5b\x11\x1b\x57\xdf\x20\x5c\x77\x54\xf6\xbc\x54\xb6\x8f\xbc\x82\xe2\xe0\x36\xbf\x40\xcf\x8c\x1c\x17\x34\xe3\x0c\xae\x5a\x99\xf0\x0c\xbe\x50\xae\x6c\x7d\x9d\xcf\x0d\x7d\xbe\xc1\x9a\xac\x77\xfa\xde\x9a\xc0\x01\xe3\x76\xad\x8e\xb5\x3c\xd4\xbe\xb2\xb5\x53\x38\x35\x39\x84\x8a\xa6\xa4\x87\x38\x4b\x96\x41\xb0\x83\x3d\xaf\x40\x6e\x26\x16\x68\x4e\xa8\x70\x9d\x58\x98\xb9\x8d\x92\xce\x37\x94\xc6\x9b\x68\x64\x87\x48\x93\xcb\xfe\xa7\xc1\xf9\x78\x70\x79\x37\xbc\xfb\xa9\x06\x42\xb0\xf8\xd8\xa1\x08\x06\x2f\xdc\xfe\x74\x7b\x37\xf8\x34\xfe\x38\xb8\x1c\xdc\xf4\xef\xd6\x20\x0c\xae\xea\xac\x09\xbd\x2e\x93\x75\xea\xdb\x26\x08\x76\xce\xcc\x5b\xd3\x7b\x15\x67\x30\xe8\x84\x92\x06\xac\x41\x93\x60\xcf\x62\x22\x50\x4c\x1e\x49\xc2\x17\xb9\x59\xb5\x76\xc1\x02\x10\xc2\x9a\xf6\x57\x01\x11\x42\x9b\xe5\x35\x3e\x45\xa6\x44\x55\x50\xa5\xd3\x37\x08\x22\x1f\x16\x84\xbd\x57\x88\x7c\x5e\x24\x34\xa2\x2a\x48\xc0\xe3\xc2\xba\x57\x8c\xfb\x10\xa2\x40\xd7\x10\xd7\xde\xa2\x51\xf6\xae\xf3\x87\x9e\xf4\xaa\xb6\xef\x4f\x94\x07\xc5\x5a\x5b\xf7\x64\x0f\x8a\x7d\x83\xd3\xb8\x82\xd9\xb5\xc5\xe8\x9e\xc3\x3c\x50\xcd\x84\xb1\x49\x74\x0d\x78\x5e\xf5\x83\x5c\x7f\x1b\xae\x8a\x93\x29\x9c\xeb\xd5\x81\x32\xed\x28\xf5\x95\xc3\x5d\x0a\xf5\x00\xf7\x80\x6f\x61\x63\xc4\x37\x0c\x58\xa8\x94\xb9\x60\x26\xb6\x13\x23\x41\x52\xae\xb4\x02\x66\x22\x02\x7a\x5a\xa8\xa2\x38\xa1\xbf\x00\x12\x94\x20\xc7\x41\x04\x05\x24\xda\xc5\x61\xc4\xa5\x45\x69\x38\x1e\xb1\xf3\xc1\xf5\xcd\xe0\x4c\x33\xa4\x63\x74\x2f\x01\xe4\xa9\x30\xf5\x73\x4b\xde\x46\x1c\x0b\x23\x19\x28\x93\x8a\xe0\xa6\x60\x30\x22\x04\x17\xed\xf9\x83\xef\x6f\x00\xdf\xd5\x93\x37\x3c\x2b\xd8\xa6\x9c\x01\xe0\xb2\xb1\x98\x6b\x10\x9b\xbf\xf7\xd4\xa7\x1b\xfc\x54\x58\x91\x10\xe4\x02\x24\x91\xe2\xaa\x3f\xe3\x6a\x03\x86\x63\xfb\xf9\x15\xfa\xbc\x86\x6f\x57\xcd\xf3\x0e\x42\xec\xa4\xca\x01\x21\x0d\x66\xa4\x2f\xd6\x51\x9a\x67\xa3\xa8\x28\x5e\x03\x10\xa3\x44\xfa\x13\x32\xc3\x0c\x89\x8c\xb1\x12\x42\x68\x68\x69\xab\x06\xcd\x6c\x7a\x54\xf5\x9a\xe1\x94\x67\x0c\x94\x06\x08\x63\xad\x19\x8c\x5c\x10\xa6\xd6\x0c\xe6\xb5\xe0\x4e\x4a\x43\x3d\x5c\xc4\x93\x9a\x81\x36\x81\x9e\xd4\xf9\x93\xa0\x62\xec\x66\xd7\xb2\x0b\xca\x2b\x38\x95\xf4\xa1\xf2\xf7\x73\xbd\x96\x8d\xe5\xc3\xce\xdd\xdd\x61\xf9\xb0\xbe\xab\x98\x44\x0f\x9b\x5e\x36\xe5\x0c\xc8\xc4\x16\xdc\xad\x18\xfb\x96\xfa\xa9\xad\x28\x01\x75\x96\xa3\x07\xf4\xdd\xdd\xa7\x0b\x34\xa5\x5a\xee\xd5\xd7\xca\x25\xd6\x32\xf6\xbd\x48\x7c\x11\x7b\x23\x83\x64\x22\xf1\x77\x2f\x6c\xbc\x13\xa5\x02\x29\x41\xdf\x68\x78\x46\x9c\xb1\x57\x58\x4c\xbb\x52\x45\x09\x81\x59\xcc\x53\x33\x8f\x13\x99\x4d\xa7\xf4\xf3\xb1\xc2\xe2\xeb\x0d\x24\x9a\xb3\x82\x83\xad\x44\x46\x36\x7c\xd2\x42\x2c\x82\x55\x61\xad\x9c\x30\x78\x24\x4c\xed\x45\xc8\x86\x26\x6a\x32\xbc\xdb\x99\xca\x4d\x79\xbd\xe1\x79\xce\xa1\x7d\x99\xf7\x20\x34\x47\x09\x0c\x97\x95\xcd\xaa\xb1\x7e\xe1\x26\x6f\xf5\x63\x6b\x07\x28\xbc\x5a\x5d\x97\x35\xf1\xdd\x76\xb5\xf3\x32\xbb\x79\x6c\xa6\x83\x28\xdf\x12\xf3\x45\x12\xa3\x8a\x07\x58\x03\x56\xc3\x2a\xef\xb9\xe9\x73\x8e\x65\xb9\xcb\xb5\x5b\xbe\x05\xc0\x49\xa1\x99\x8f\x04\xf2\xff\xf6\x11\x4d\xbd\x49\x9e\x37\x0c\xe4\x5e\x24\x10\x07\xbc\xd2\x14\x63\x4a\xfc\xea\xe3\xeb\xc5\x13\xdc\x42\xd0\x34\x83\xd1\x92\x0f\x59\x08\x02\x45\xe7\x4f\xd1\x75\x42\xb4\xf8\x90\x69\x11\x22\x4b\x12\x07\x06\xb5\x5a\xc4\xd9\x08\xc0\xec\xd9\xe7\x15\x08\xd0\x2b\x26\xe6\xc0\xd0\x56\xcf\x2c\x58\x83\xfd\x67\xe7\x07\xeb\x0b\x76\x50\xb0\x86\x15\x55\x21\x60\xc0\x4b\x13\xfc\x09\xf6\x10\x5c\xe0\xc6\xf4\x17\xcd\xe6\x05\x91\x73\xde\x98\x11\x17\xce\xf6\x79\xe6\xe0\x96\xf2\x19\x27\x61\x23\xef\xc6\x4d\xc1\xc1\x2d\x2e\xe7\x73\xd3\x44\xad\x48\xb0\x6a\x8a\x1e\xc5\xde\x87\x30\x58\x68\x4e\x1b\xca\x66\x87\x06\x8e\xb9\xdc\x5e\x14\xc2\x64\xe5\xf6\xf7\x5c\x22\x5f\x1a\x07\xa2\xff\x3c\xb7\x82\xe6\x71\xed\x54\xc9\xbc\xe2\x13\xd2\x77\xfa\x66\x5c\xd6\x66\x3f\xe4\x4d\xe8\x01\xd7\xb3\x36\x0b\x60\x0f\x72\x9b\x8d\x6d\x91\x05\x80\x2f\xbb\xc5\x66\xca\xb5\x3a\x45\x33\x03\xdd\xd5\x8f\x03\x62\x59\x9e\xf0\xf5\x5c\xee\x9c\x02\xb5\x14\x26\xd0\x41\x46\x6d\x0e\x19\x65\xab\x19\x78\xda\x03\x80\x37\x25\x20\xa3\x3b\xf7\xd8\x94\x2f\x79\x6b\x65\x5d\x97\x6a\x53\xd8\x9d\x56\x79\x35\x85\x2f\xf4\xb9\x3f\xdf\xd1\xe5\xa3\x27\xb3\x1c\x43\xa6\xe2\x2e\x61\x1f\x85\xf9\x1b\x73\x35\xb4\x49\x62\x64\xd2\xd2\x0d\xa0\xad\x5d\x3b\x6f\xaa\x5f\x60\x41\x98\x1a\xb1\x1b\x3d\x0a\xf3\x45\xee\xfa\xcf\xab\xd5\x93\xbc\xb6\xe3\x14\x61\xfb\x15\x2c\x7a\x53\xe4\x95\x1c\x9b\x97\x40\x17\x7a\xc6\xec\xe9\x6f\xcd\x3b\x26\x99\xdd\x82\xb9\xe8\xa9\xd2\x69\xae\x37\x6a\x61\x2f\x9a\x53\xc8\x25\x8f\x89\xb4\x97\x07\x55\x16\x2c\xc0\x8b\xca\x19\x71\xb0\xba\xf0\x99\xe7\x5f\x75\xcc\xd5\x69\xa6\xcc\x59\x84\xe4\x88\x05\x7d\xac\x40\x61\x34\xda\xe1\x96\x62\x3f\xec\x33\x8d\xbd\xa7\x05\xfe\x69\x76\x88\x0b\x3a\xa3\x2c\x28\xd4\x62\xa7\x97\xe2\x05\xd8\x13\xcd\x19\xe4\x53\x7f\xff\xdc\xd9\xb0\xf6\x63\x18\xf1\xff\xf9\xef\x7f\x1c\xd3\x26\x73\xbb\x1c\xdb\x15\x38\x84\x9d\xdc\x6c\x5b\xc2\x9d\x0f\xe0\x21\x1a\x60\x07\x64\x36\xf1\xd8\xcd\x85\x50\xfd\xfc\x57\x7b\xb9\x69\xa2\xe1\x6a\x6e\xfc\x8b\x45\x72\x07\x63\xbc\xc8\x56\xdf\xb2\x01\x8b\xcb\x3d\xd0\xb9\x9b\x31\x88\xf2\x74\xe0\xff\x26\x3a\x4f\xb7\x5f\xba\x50\x4a\x0c\x2a\x40\x69\xdb\x25\x1a\x6e\x8e\xe5\xf3\x85\x3c\xd4\x56\x54\x31\x56\xca\xf0\x8e\x5c\x17\xfc\x60\x06\x69\xb2\xe8\xf4\xae\x64\x92\x08\x73\xa0\x3d\x9c\x0f\xaa\x16\x5d\x86\xd8\xb7\x35\x3e\x1c\x92\x62\xba\x51\x9c\xb6\x7e\xbf\x1e\x21\xaf\x60\xc4\xc5\x33\x22\xc6\x71\x56\x08\xca\x5d\xd7\xf6\xb5\xfe\xe8\x3c\x53\xcb\xf5\xed\xcb\x04\x47\x0f\x9b\xa0\x12\xea\xf7\x1b\x9a\x5d\x2f\x18\x06\xa1\x13\x45\xe1\xb0\x01\xf3\x8f\x94\x30\xff\x6c\x2c\x5f\x41\x6b\x87\x8b\x86\x41\xd5\xec\x40\xb8\xb7\x37\x91\x41\x26\x86\x91\xa3\x49\x96\x5b\x39\x3c\xd6\x7b\x7c\x3c\x62\x1f\x4c\xb1\x04\x50\x3c\xcc\x00\x22\x48\xa4\x20\x9f\x17\x5c\x92\x42\x66\x4f\x0d\x7e\xbb\xcd\xcc\xb3\xc3\xa8\x97\x49\x4b\x55\xcb\x77\x12\x49\x5f\x1d\xbd\xb1\xba\xe1\xd5\x29\xd7\x53\xe0\x4e\x52\x4f\x44\x17\x54\xd3\xce\xb8\xf6\xa4\x6d\x3e\xf5\xb6\xe5\x3f\xf2\x58\x19\xc0\xf1\x51\xc9\xb2\x87\xfc\xf4\x4a\x04\x91\x90\x47\x02\x66\x4a\x18\x63\x88\xd2\x5f\x34\x35\x35\xb0\x93\x75\x07\x28\x4f\xab\x03\xb6\x80\xe2\xf2\x08\x8a\xc9\x47\x75\xb4\x58\x4c\xab\xd8\x39\x03\xa8\xce\xe1\xbf\x81\x14\xda\x0f\xab\x15\x2c\x89\x42\xe4\xb3\x22\xb6\xd8\xde\x9d\xcb\xd1\xaa\x86\x75\xa3\xfa\x34\x93\x66\x11\x69\xff\x54\x51\x99\x88\xcd\xcc\x75\x49\x68\xb1\xbb\xf7\x6d\x52\xd6\x1c\xb3\xd8\x66\x1a\x5a\x59\x5a\xcb\x14\x30\x3b\x63\x07\xf2\x31\xd8\x36\x5f\x2e\x80\x79\x36\x6d\x1a\x3c\x6a\xb8\xc8\x9c\x5e\xa4\x25\x73\x70\x5b\x73\xa1\x05\xd4\x8c\x29\x9a\x68\xe2\xb0\x63\xd0\x5a\x73\xc6\x3c\xd0\x1a\x44\x0c\x37\x61\x79\x51\x29\x29\x9b\x8d\xed\x4a\xba\xa4\xb9\x76\x17\x43\x91\xa6\x3e\x99\xa6\xcc\x8f\xdf\xba\x86\x56\xdb\x79\x0d\x59\x03\xce\x92\x4b\xd7\x03\xc1\x9a\x71\x37\x19\x0b\x90\xe5\xb2\xfc\xc6\x34\x36\x4b\x41\x4d\x4d\x57\x98\xe8\x26\x46\x0a\x10\xeb\xaa\xf9\xf1\xf9\x15\x22\x6d\x0a\x9e\x49\xac\x81\x08\x68\xd5\x90\x63\x28\x1b\x73\x0b\x87\xcc\x8b\x68\xb6\x68\x8f\xcf\xa0\x2e\xa5\x29\x62\xd7\x9d\x0d\xf3\xc6\x49\x32\xc1\xd1\x83\x57\x36\xbc\xca\xcd\x85\x03\x3d\xd7\x02\x2a\x54\x75\x32\xc4\xa5\x07\x1a\x81\x74\x13\x7a\x61\x0c\x42\x8a\x1d\x76\xde\xb9\x59\x35\x0b\xf1\x64\x20\x71\xcc\xe8\x4d\xcc\x78\x4c\x16\x09\x5f\xa6\x0d\xf7\x59\x39\x35\x6b\x97\x08\x88\xa6\xcc\xb0\xbd\x5e\x65\x25\xa6\xb7\xf1\x65\x56\xc9\xf3\xd8\x03\x5e\xcf\x06\x5c\xf2\x63\xc2\x27\x60\xe5\xb3\x5a\xb6\xcb\x5d\x08\x42\xe8\xcb\xe7\x79\xd3\x8c\x8a\xf2\x89\xa4\x72\x91\xe0\xe5\xaa\x1e\x4c\x2c\xff\xf3\xee\x9b\xc9\xfd\x5e\x6f\x04\x6b\x1f\x05\x5b\xfb\xf9\x73\x20\xb0\x5e\x38\x49\xc0\xbc\x6b\xf8\x57\xc9\x98\x64\x92\xa8\x8e\x17\x82\x6b\x41\x81\x8f\x98\xc2\x33\xb7\xb9\x56\xb8\xe4\x4f\x8c\x08\x39\xa7\x8b\x42\xb5\xb7\x9d\xc3\x6e\x2d\x45\xdb\xff\x98\x20\xd3\x0d\x78\x27\x5f\x1c\x19\xe4\x07\x4d\x1f\x72\x81\xa3\xdc\xf8\x17\x25\x58\x4a\x3a\x5d\x06\x80\x0d\x3e\x82\x11\xd2\x62\x8a\xda\x72\x50\x60\xa9\x8e\xd1\x98\xf1\xed\x27\x63\x79\xf7\x6c\xad\xfb\xe2\xf1\xa3\x71\x88\x8c\xa5\xef\x93\x2a\x3a\x87\xbb\xa9\x2d\x4a\x47\x23\x92\xa6\x49\xcd\xde\x2e\xc3\x78\x25\xa8\x4a\xb3\x19\x21\x17\x26\xed\xb0\xad\x22\xe3\x81\x14\x42\x90\x11\x55\x48\x51\x83\xcd\xd7\x8a\x93\x33\x7f\x6a\xe2\xf4\x20\x0c\x90\xab\x9e\x7f\xdc\x43\x72\x27\xf0\xa2\x36\x74\x71\x4e\x12\xb2\x97\x48\xd6\x2d\x88\xa4\xec\x61\x0f\xc8\x63\x25\x69\xe4\x20\xe9\xeb\x8d\x0b\x5b\x04\xd8\x36\x40\xa0\xd4\x0f\xfd\x47\x33\x50\x1b\x63\x5b\xb7\x8b\x60\xff\x82\x55\x6e\xab\xbb\xd4\x61\xa9\x99\x16\x2c\xc9\xe5\xdd\x14\xe8\x2a\xef\xd4\xcb\x2b\x87\x48\x6a\xaf\x1c\x8a\x5a\x19\xd7\x47\xd2\x26\xe2\x60\xed\x01\xd8\x8a\x03\x55\xf9\x74\x3b\xba\xb0\x7e\x42\xc5\xd1\x8c\x28\x53\x58\xdb\x57\x0f\x7f\x4b\x34\xb1\xb7\x40\xfa\x3d\xad\x7e\xfd\x21\xdf\xec\xd4\xde\x12\x25\xdd\x95\x50\x81\xa7\xb3\x9b\x73\x80\x5b\x70\x18\xc7\xd2\x08\xae\x5f\xbc\xdc\xb2\x73\xf2\xb9\x1d\x99\x4d\xc1\xfe\x0d\x09\x54\x66\x8e\xb1\xfd\xc2\xa7\x5b\x17\x80\x86\x70\x01\x9c\xcd\xac\xd1\xeb\x73\xbd\x32\x69\x7f\xe9\xa2\xd7\xe6\x34\x5e\x1e\x55\x4e\xdd\x9d\x3c\xb8\x99\x3c\xe8\xc0\x0b\x0f\xf0\xf2\x6f\x3a\x06\x87\x79\xff\x1c\x80\x70\x58\xb9\x12\xf7\x27\x22\xbe\x21\x32\x39\x08\x49\xb1\xb2\x15\x2f\x25\x2f\x1e\x39\xf4\x98\x1c\x8b\xe5\x70\xb7\xe8\x30\x4e\xf2\x8d\x75\x03\x3d\xdf\x05\xbb\x9e\x5e\xf6\x42\x1f\x00\xa4\x88\x21\xdf\x34\xb3\x95\x19\xe0\xf0\x06\x21\x63\x15\xdf\xc3\x9a\x60\x3c\x3b\xbc\x56\x61\x78\x95\xe5\x7c\x8e\xed\xb5\xc9\x45\xad\x37\xf7\x39\x49\x6d\xd3\xb1\xec\x43\x47\x79\x66\x2f\x8e\xa5\xc6\xe0\x83\x2e\x26\xb6\xdd\x2d\x5a\x03\x59\xe2\xb6\x6c\x9f\x87\xac\xae\x6c\xd5\xee\xe9\xd1\x2e\xe5\x6c\xbc\x10\x64\x4a\x3f\x6f\x25\x8a\x5f\xc3\xa7\x56\xbd\xd4\xcb\x5c\x2a\x84\x05\xee\x19\x28\x9c\x15\xc4\xed\xd9\x95\xb6\xc5\x72\x46\x2c\xcf\x38\xb3\xe9\x66\x0f\x64\x89\xb8\x28\xfc\xb4\x2d\xb8\xde\xfe\x8b\x76\x99\x7d\x9d\x2b\xb5\x90\xa7\x27\x27\x33\xaa\xe6\xd9\xe4\x38\xe2\xa9\x09\x37\xe7\x62\x66\xfe\x38\xa1\x52\x66\x44\x9e\xfc\xe9\x8f\x7f\xcc\xb7\x78\x82\xa3\x87\x99\x81\x2b\xa9\xfa\x9d\x0a\x5b\x7e\x5b\x2d\x6c\xbb\x79\xa9\x07\xc1\xd9\x98\x7c\xd6\x44\x2a\xb7\x05\xb2\xb9\x97\x44\xa2\xfe\x8f\xb7\x48\x2e\x99\xc2\x9f\x4f\xd1\x27\xca\x40\x00\xf9\x8e\x67\x42\xa2\x73\xbc\x3c\xe2\xd3\xa3\x94\x33\x35\x47\x9f\xe0\x7f\xed\x4f\x4f\x84\x3c\xa0\x9f\x08\x16\x76\x7f\x6d\x49\x24\x5f\x5d\x77\x8e\x21\x17\x57\x22\xf2\xa8\x57\xf8\x8f\xff\x89\x52\xd3\xf2\x29\xfa\xe6\xe4\x8f\xff\x89\x7e\x0f\xff\xff\x7f\xa3\xdf\x37\x68\x6a\x9b\x41\xe1\x40\xe1\xcc\x9b\xa2\x3b\xae\x57\x5a\xa9\x2d\x6a\x09\x9f\x09\x9e\xef\x54\x6d\xcb\x0f\x34\x7a\xe0\xd3\xe9\x58\xd1\x94\x98\xdc\xa0\x31\x16\x15\x18\xd5\x2d\x71\x05\xa9\xad\x7c\x2a\xa8\x81\xdb\x76\xb5\x15\x6c\xa7\x26\x13\xda\x1d\x37\x99\xe5\x95\x1f\x21\x08\xa4\x50\x4d\x93\x4a\xf8\x8a\xc4\xfa\x54\x6c\x12\xf0\xe1\xac\x33\xd5\xfa\xec\x39\x72\x40\x58\xcd\xd7\x07\x6e\x85\x51\x88\x26\x50\xc3\x2e\x64\xed\x71\xa8\x84\x47\x7e\x31\x31\x6f\x30\xb5\xd7\x8a\x77\x93\x95\xce\xd7\x87\xba\xdd\x72\xb1\x93\xbc\xfc\x40\x2a\x31\xb7\x2d\xeb\x88\xb8\x1a\x92\x61\x5d\x69\x48\x3a\xe5\xc2\xe3\x7b\x1a\xbd\xd6\x56\x1b\x5b\x6f\x85\xa2\xc2\x04\x07\xb5\x3b\xf4\x7a\xea\xe7\xfe\x93\x75\xc3\x84\x48\x21\xf7\x76\x5e\x47\x09\x46\xab\xaf\x38\xcd\x12\x6b\x46\x5c\x03\x02\xb6\x6e\x43\x6f\x7d\xde\x37\x34\x0e\x61\x6b\x10\xb2\xcf\x9c\x64\x62\x73\x92\xeb\xf7\x33\x13\x11\x39\xe3\xbb\x85\x2d\x26\x94\x55\xe2\x9d\xdb\x97\xe8\x08\x8a\x95\x9b\x62\x2c\x0e\x27\x93\xc7\xb9\xb0\x67\xcc\xba\x16\x9d\x3d\x00\xe8\x2b\xce\x06\x80\x9e\xf6\x81\x01\x57\xc1\x0c\xdf\x81\x6b\x1b\xc3\x5f\xce\xf0\x1c\xe4\x7c\x09\x69\x5e\x60\xcd\x0b\xb7\x84\xcd\x33\xb5\x43\x7a\x48\x60\x88\x63\x53\x73\xcc\x8c\x4a\x38\xc5\x11\x65\xb3\x5e\x80\x98\x06\x89\xdf\x21\x07\xae\xa3\x8b\x3b\x2c\x1f\xf6\x1b\x9b\xb5\x73\x2d\x35\x1a\xe7\xf5\x7c\x2c\xc6\x81\xb1\x05\xd3\x0a\x5c\x94\xc2\xf2\xa1\x09\xe4\xa3\x82\x30\xb4\x62\x74\x7e\x29\x1c\x2e\xd1\xaa\xf1\xb9\x44\x52\x12\x8a\xa0\x00\x1f\xee\xaa\x68\x5a\xbc\x31\x97\x0b\x84\xe1\xde\xa4\x09\x89\xcb\x40\x7b\x2b\xc6\x2f\xe7\x5c\xa8\xf1\x96\x10\x85\xe5\x64\x58\x46\x8e\x12\x80\x65\xe0\x8f\x44\x3c\x52\xf2\x54\x44\xfa\xdb\x84\x16\x8d\x9d\x21\x08\x44\x02\x28\xb8\x54\x6b\xd2\xb1\xb1\x77\xb3\xa5\xe1\x4d\xfa\x3c\x63\xf9\x20\x7d\x4d\x41\x24\x53\x9c\x24\x3d\x24\x48\x26\x4d\x4d\x4b\x49\x92\xe9\x91\x43\x65\x8f\x51\xc2\x67\x34\xc2\x09\x9a\x24\x3c\x7a\x90\x23\xa6\xef\x66\x36\x33\x7c\x61\x21\x78\x44\xa4\x0c\x84\x99\x3c\xcf\xd5\x66\x1f\x41\x41\x41\x45\x44\x4a\x19\x95\x8a\x46\x4e\x4a\xc9\x53\xcb\x4d\xf9\x58\xad\x5e\x46\xdc\x94\x41\x84\xe1\x6a\xe1\x8a\x18\x9c\xb8\x8c\xd9\xfa\x1d\x70\x43\x5a\xf8\x27\x17\x57\xdb\x74\x80\xf6\x80\x66\xe5\x28\x64\xac\x8a\x07\x72\xcd\x91\x3a\xb3\x9f\xc1\x31\x5e\x45\x02\x37\xc5\x13\xe5\x09\xd2\x9f\x34\x0f\x92\xec\xe8\x32\x8f\x1a\x2e\x08\x0b\x3e\x98\xf6\xc0\xc0\x75\x60\xc8\x0d\x90\x3a\xeb\x68\x5a\xaf\x22\x48\x19\x50\x32\xa6\xec\x68\xa4\x2c\x4a\xb2\xd8\x17\x0d\xd3\xb7\xee\xa3\x26\x12\xb7\x3c\x7a\xed\xf5\xdd\xdc\x43\x58\xa2\x27\x92\x24\xfa\xbf\x26\x68\xf8\xc8\x63\x78\x6b\x96\x6c\x70\xd6\xa1\x13\xc7\xa5\x1b\x29\x0a\x26\x71\x20\xb5\x2e\xfd\xbd\xbd\x29\x67\x5e\x2b\x99\xe9\xe5\xd9\x90\x43\xeb\x95\x6e\xc4\x3b\x2c\x8c\xad\x48\xb6\x00\xdc\xd2\x3c\xa8\x96\x06\x20\x51\x97\x21\x6d\x28\x0e\x9e\x3e\xd2\xbc\xae\xab\xed\x6d\xa5\x81\x48\xcf\xa8\x95\x75\x28\x24\x8a\xad\x2d\x9e\xa5\xa9\x54\x90\x06\xa8\x29\x08\x6e\x26\x04\x6a\x42\x16\x45\x84\xc4\xb5\xf1\xa5\x7a\x44\x07\x87\xe7\x77\x8d\xd5\xdc\x24\xad\xa7\x5c\x99\xb2\x82\x06\xcf\xcf\x59\xae\x0c\x00\xdc\x24\xe1\x13\xb8\x90\x00\xea\xcf\x25\xbd\x06\x09\x73\x66\xde\x24\x46\x5f\x05\xf7\x8b\x07\x54\xf8\xba\x1e\x78\xae\xb0\x22\x07\x00\xf3\x57\x36\x99\x35\x82\xfd\x15\x2b\x63\x1d\xa3\xeb\x12\x0a\x48\x58\x59\x1a\xeb\x6b\x63\x25\xa2\xcc\x2b\x41\x03\x96\x26\xf1\x7c\x3b\xb4\x21\x34\x60\xa1\xcf\x3d\x40\x03\x96\xe6\xd9\x10\x95\xcf\x67\xcf\x9a\x4d\xac\x27\x75\xc1\xdb\xa7\x78\x19\x34\x2a\x23\xe2\x15\x48\xd0\x1d\xc8\x65\x1d\x21\x1e\x16\xec\x61\xa9\x7e\xdc\xeb\xc2\x1e\x96\x06\x73\xc8\xb0\x87\xa5\xa1\x1e\x2e\xec\x61\xcd\x40\x5b\xc0\x1e\x1a\xb7\xfd\x58\x13\x75\x3b\xa6\x00\x29\x2b\x93\x6c\x7a\x0b\xf7\xee\xca\x31\x9e\x99\x90\x00\x73\x8d\x39\x51\xd2\xa2\x00\xc3\x68\x6d\x76\x63\x53\xa0\x13\x96\x3b\xd1\x9e\xf7\xab\x51\x69\x0c\x09\x8b\x04\xb3\xe2\xd5\x01\x25\xe2\x05\x89\x34\xf9\x19\x46\xa5\x04\x66\x12\xa6\xda\xb3\xe6\x3a\x3d\x0a\x63\xa1\x8e\xf0\xc2\x66\x8b\x37\x15\xe7\x38\x9c\xbc\xd8\xcd\x10\x25\x01\xe8\xae\xc0\xea\x5b\xc1\x54\x7d\x2a\xe1\xdb\xcf\xf9\x93\x95\x1c\x81\xfc\x0c\x31\x36\x92\x1e\x74\x3a\xb6\x36\x85\xa6\x15\xa3\x4c\x91\x59\x59\xa4\xcf\x0f\x0b\x65\xea\xcf\x7f\x5a\xcb\x81\x0c\x8e\x9f\xb3\x5e\x04\x28\xf3\x16\x3a\xc4\xd7\xb3\x21\xb1\x2d\x72\x2f\xb5\x76\xad\xa7\x63\x6e\x54\x89\x52\x4c\x9d\x9e\x9f\x49\x70\xce\xcd\xa9\x1c\x31\x93\xc0\x65\x6b\xab\x1d\xa3\x0f\x50\x3a\x13\xa7\x8b\x84\xf4\x90\x9f\x1f\xd5\x14\x34\xca\xbe\xf9\xe6\xcf\x04\x7d\x83\x52\x82\x59\xc1\xc4\x02\x5a\xbd\xbe\xf2\x00\x28\x4e\xcd\xc9\x88\xd5\x6e\x05\x1a\x7c\x36\xd5\x78\x5c\x04\xdf\x90\x4d\xb9\x33\xd9\x40\x49\x38\x1c\xcd\x91\xcc\x26\xa6\xa6\x69\x60\x62\x73\x7a\xde\x05\x9f\x81\xeb\x19\x6e\x62\x37\xe8\xad\x01\x32\x4b\x0c\xa7\x25\x40\x66\x61\x6a\x1d\x40\x66\xfd\xe9\x3b\x58\x80\xcc\xd2\x9e\xb7\x03\xc8\xac\xdb\xf2\x2d\x00\x32\x0b\xcd\x7c\x31\x00\x99\xa5\x15\xfd\x62\x00\x32\x4b\xf3\xea\x00\x32\xbf\x10\x80\xcc\xf5\x7c\xa4\x16\x02\xb2\xfe\xf0\x6e\x06\x01\x59\xab\x5f\x35\xb3\x88\x5d\xf1\x76\x40\x9a\x7b\x61\x08\xc8\xc2\x04\xba\x70\xb7\xcd\xc3\xdd\x6a\x89\xcf\xf6\xad\x87\xe7\x62\xe0\xca\x17\x59\x4b\x10\xc8\xc2\xfe\xb4\x36\x7d\xee\x83\x12\x9f\x37\xc0\x12\x3c\x30\x6d\xcd\x21\xfd\xc2\x2a\x4a\x0b\x1d\xab\x25\x23\x07\xde\x65\x34\xa7\xd0\x9d\xdf\x51\xee\x16\x81\x9a\xa5\xe5\xf5\x3e\x1b\x43\x8b\xfb\x34\xce\xd7\xd4\x45\xdf\x81\x5e\x5d\x2e\xdb\x86\xce\x11\x37\x08\x70\x92\xd4\x1b\x06\x69\x4a\xf7\xd5\xec\xba\x8b\xcc\x43\x13\x81\x36\x55\x49\xd3\xd3\xd7\x93\x19\x8e\x91\x8d\x4b\xd9\x89\x80\x9b\x60\xbe\x9c\x51\xa9\x44\x63\xa8\x52\x65\x84\xbb\xb8\x61\x17\xd9\x36\x20\x28\xb3\xed\x3e\x4b\x49\xca\xc5\xba\x38\xa9\xda\x2f\x6d\x45\x87\x6d\x3e\x25\x8b\x39\x49\xb5\x10\x34\xde\xb4\x91\xb6\xfb\xed\x73\x38\x6d\x2a\x91\x89\x5b\x2c\x10\x41\xe0\x64\xd5\xef\xc6\x06\x20\xb0\xf5\x76\xef\xba\xcd\x16\xc2\x70\x43\x2b\xbe\x83\x70\x5d\x6d\x2d\xb1\x2f\x15\x5c\xe9\x40\xdf\xb5\xf1\x22\x3e\x5c\x67\x7d\x44\xc8\x8a\x58\x90\x55\x30\x40\xf9\x57\xb6\xde\xe9\x06\x61\x02\x55\x17\x6a\x58\xec\x72\xf3\xe0\x91\x06\x10\xcb\xea\xf2\x80\x6f\x59\x12\x71\x14\x4a\xd4\x85\xc1\x54\xd7\xab\x40\x25\x4e\x13\xdb\x81\x48\x32\xd1\x18\x34\xda\xc6\x0a\x19\xa9\x0c\x27\xa0\xe6\x85\x45\xda\xca\x9b\x3a\x59\xd6\x64\xa1\xb5\x33\x73\x53\xa6\xfe\xfa\x97\x8d\x76\x53\xab\x24\x76\xdd\xa0\xb0\x0c\x8e\x22\x22\x8d\x61\xd4\x06\x15\xe3\x09\x7f\x84\x9a\x32\xbb\xec\xaa\x3e\xca\x7a\xde\x9a\xc1\x7b\x64\xd8\x38\x27\x75\x23\x2e\xcc\x05\xcf\x66\x73\x67\x7b\xd1\x67\x46\x4f\xad\x6e\x2f\x7f\xa8\x18\x38\x37\xde\xcb\x6f\x33\x9a\x6c\x67\xd9\xba\x2d\x54\xdb\xf9\x38\xbc\x43\x72\xee\x4f\xeb\x04\x9a\xad\xdd\xd8\xea\xa0\xdb\xf7\x69\xbf\xf5\x46\x76\xe8\xa6\xe7\xd0\x10\xa7\x3c\x49\xc0\x4c\x2c\x49\xfa\x18\x16\xc9\x0e\xbb\x87\x09\xdf\xd1\x2d\x4b\xc3\xc3\xd7\xe0\x6c\x92\x0a\xa7\x8b\x56\xf2\xd7\xb5\x11\x0d\x25\x72\xa3\x2f\x7b\x9a\x4d\x18\x1c\x67\x84\xd5\xd9\xa6\x7e\xac\xd6\x88\x78\x63\xc1\x88\x2e\x32\x6d\x6f\x01\x89\x6e\x49\x5e\x38\x28\x71\xcd\x3c\x0e\x35\x30\xb1\xc4\xec\x7c\x9c\x60\x7e\xcd\xb8\x68\x0f\xa3\xf8\xf4\xf5\x12\x8f\x58\xbf\x90\x1e\xe1\x0a\xc2\x4e\x96\x79\x7c\xb5\xd1\x21\x42\x66\x06\xe8\xfe\xd6\xb0\x02\x3e\x10\xfd\x17\x68\x3a\x06\x4b\xd4\x84\x2b\xba\x90\x44\x08\x0e\x27\xf1\x11\x8e\x96\x51\x42\xa3\x40\x67\x9e\x09\xbc\x98\xd7\x71\x3c\xb7\xf3\x1d\x08\xca\x6b\x81\xa0\x34\x95\xac\xd9\x24\x1c\xdc\xd1\x15\xc3\x29\xe9\xc0\x59\xea\xc0\x59\x7a\x1e\x7e\x80\xe5\xc5\x77\x5e\x31\xab\xbd\x7a\xee\x3a\x84\x96\x57\x40\x68\xd9\xe6\xf0\xe5\xf0\x2b\x85\x63\xd7\xa1\xc6\xbc\x6b\x85\x1a\xe3\x2f\xc1\x83\x02\x02\x69\x3e\x8f\xaf\x0c\x30\x51\x1d\xd8\x6b\xa2\xc4\xd4\x88\x0b\x9b\xc8\x4d\xab\x60\x62\x56\xd1\x45\xab\x75\x79\x5d\xd0\x96\xcd\x56\x66\x23\x3c\x96\xda\xbb\xeb\x40\xd0\x59\x9a\xb7\xe1\x40\xce\xcd\x3e\x33\x66\x36\xab\x2e\x18\x66\xcd\x6c\xa2\x60\x6d\x96\x40\xe3\xe9\xe1\x6d\x25\xd1\xe4\xa5\x9d\xb6\x4b\xa4\xe9\x3b\x1f\x34\x11\x68\xce\x93\xd8\x84\x79\x05\xab\xe5\x3b\xf0\xe1\xdb\x7e\x81\xdc\x66\xdc\x2e\x48\x64\xb4\xad\xbc\x3e\xd3\xaa\x74\x19\xbf\x89\x6f\x3d\x65\x26\x90\x7f\xf7\x9b\x36\x13\xae\xec\xb6\xa9\x33\x6b\x06\xb7\x4a\xf4\xd8\x32\x7d\x26\xe8\x71\xa5\x97\xce\xcd\xae\x95\xa7\xae\x4c\x2c\x5b\x04\x51\x55\x0a\x69\xed\x8e\xd5\x92\xe2\xcf\xe3\x05\x16\x38\x49\x48\x42\x65\xfa\x6c\x91\x9c\x67\x45\x77\xad\x3e\xab\x82\x1b\x13\x11\xcb\xd2\x89\x21\x45\x37\x10\x5b\xbe\x4f\x71\x24\x32\x16\x22\x4d\xf9\x8d\x41\xae\xbc\x5b\x06\xf7\x02\x58\x95\xa2\x39\xd4\x8a\x9c\x62\x2a\x18\x91\x8d\x95\xf9\x48\x94\x09\xaa\x96\x63\x5b\xe8\xb0\xfd\x81\xbb\xb5\x5f\x9e\xd9\x0f\x57\x7b\xb8\x5d\x92\xbe\xeb\xcf\x17\x56\x5c\x10\x01\x55\x5b\x5c\xfd\x91\xa0\x98\xa3\x05\x61\x20\xbe\xf4\x0b\xc4\xae\x56\xae\xed\xa6\x98\x6b\xfc\x34\x0e\xd2\x60\xc6\x51\x99\x38\xd6\x1d\xd6\x3a\x18\xa0\x55\x93\x7c\x66\x20\x9c\x06\x2f\xf2\x33\x14\x7d\xb0\xb1\xee\xa6\x69\x3d\xe0\xc0\x15\x0c\xf6\xca\x7c\x63\x82\x5c\x7a\xab\x54\x35\x8c\x13\x33\xc6\x55\x7d\xb9\xaf\x15\x83\xed\x07\x5f\xb5\x18\x71\xd0\xc9\x9e\x86\xad\x0f\xba\x10\xd9\x42\xd1\x49\x15\xa9\x46\xed\xaf\x08\x64\x3f\x81\x14\x6e\xe7\x66\x28\x74\x6b\x2a\x43\x16\x38\xb1\x9d\x9d\x96\xff\x2d\xac\x93\x03\xfc\xa1\x6c\x96\x90\x42\xf2\xd5\x55\x4a\x81\x0a\xcd\xf9\x01\x03\xb4\xa6\xce\xa2\x6d\xf6\xbd\x0b\xf7\xc0\x50\x5f\xd2\x98\x88\x8e\x47\xac\x2f\xd1\x13\x41\x8c\x58\x44\x88\x9a\xca\x91\xde\xaa\x0d\xa5\x78\x26\x44\xf7\xe4\x63\x53\xb4\xf0\x40\x95\xf4\xd5\xa0\x4c\x1f\x53\x9c\x48\xd2\xd3\x0d\x43\x11\x49\xc5\x21\x68\x12\xa3\x27\x81\x17\x0b\x22\x46\xcc\x86\xe0\x83\xc3\x85\xf3\xc4\xb4\xdf\x14\x1a\x6a\xd7\x80\x8c\x23\x1c\xcd\x5f\x68\x8f\x30\x64\x50\x44\x73\x12\xbb\x5c\xe4\xe2\xf6\xb8\x79\x1b\x83\xf5\x06\x9b\x35\x9c\xba\x6a\x46\x3d\xdb\x49\x12\x69\x8e\xe2\x8b\xdb\x2e\x88\xd0\xa3\xd6\x34\xfc\x48\x18\xa2\x53\x37\x0e\x1b\xbb\x83\x9e\xc0\x33\xa5\x49\xff\x11\xd3\xc4\x24\xf7\xbb\xae\x9d\x10\x68\xcc\xef\x23\x66\xdc\xdd\x2c\x2a\xa4\x15\x52\x46\xe5\x5c\x73\xea\x0c\x7c\x92\xa0\x66\x6c\x24\x79\xc6\xb1\x2c\x1a\x19\x8d\xfa\x46\x7f\x29\x98\x37\x8e\x0a\x29\x53\x51\x80\xc6\x03\xc1\x92\xae\xa0\xd2\x2a\x39\xb3\x0b\xbd\xaf\x86\xde\xd7\xaf\xcd\x21\x86\xdf\xfb\xc3\xb2\x69\x08\x7e\xd3\xf6\xef\x43\x82\xdc\x63\x28\xfe\x2b\xc7\xac\x3f\x4f\xb8\xfa\xeb\xe6\x17\x3c\x47\x6a\x41\x17\x80\xff\xf6\x02\xf0\x9b\x8f\xed\x46\x41\xf8\x6b\x00\x99\x5c\x2f\xbb\x46\x3c\x7b\x84\x9e\x67\x8d\x7a\xf6\x51\x1b\xc1\x17\x2d\x23\x9f\x73\x08\xa1\x2e\xfa\xf9\x99\xa2\x9f\x6b\x96\x78\xb3\x08\xe8\xad\x6c\x2b\x2f\x1f\x9c\x59\xae\xb1\xff\x9c\x01\x9a\xeb\xa2\x63\xb2\xc9\xf8\xd9\x8f\x5e\xed\x9c\xdb\x9e\xc0\x1f\x3d\x51\x18\x91\x48\x68\x3a\x9b\x90\x38\x06\xfb\xbd\xe2\xb6\x42\x6a\x4e\x3b\x4e\x0f\xd3\xcc\x17\x4b\x4d\xec\x38\xe1\x6c\x26\x69\x6c\xa0\x08\x4c\x2d\xfe\x82\x96\x08\x29\xb8\xb0\xbf\x49\x42\x84\x33\xff\x0a\xf4\x95\xa4\x5a\xee\x0f\x4c\xc2\x02\xc5\x9c\x48\xf6\x5e\x19\xad\x0c\xb3\x25\x7a\x60\xfc\x29\x21\xf1\x0c\x76\xa8\x3c\x98\x23\x44\x49\x0f\x51\xe5\x3f\x13\x90\xb3\xcb\x33\x35\xd2\x63\x87\xa0\x1e\x23\x02\x12\xfb\x6d\x50\x0b\xd8\x37\xf3\xf5\x31\x42\x43\x86\xa6\x38\x52\x3d\x24\xb3\x49\xde\x7e\xcc\x4d\x71\x57\xad\xe6\x04\x13\xcf\x1b\xe9\x82\x73\x6b\x3a\xaf\x3f\x1b\x8e\x3b\x68\x72\xed\x27\x14\xef\x14\xc4\xf4\x88\x77\x81\x66\xfc\x94\x49\xeb\xed\x46\x9c\xf9\xa3\x6f\xc1\x47\x3c\xb6\x2e\x54\xe4\x34\x38\xb5\x8c\xc7\x8d\x46\xa5\xd2\x54\x36\x1d\x4b\x1e\x71\x66\x0b\x81\x5a\x8f\x00\xb4\x6b\x96\x3b\xe6\x4f\x4c\x2a\x41\x70\x6a\xad\xb0\xfa\xaa\x81\x68\x05\x13\x6f\xa6\x47\x4f\x85\x11\x31\x36\xd9\xe2\x0b\xca\x1e\xf4\xee\xe6\x68\xc2\x50\x57\x19\x7a\xae\xdb\xb4\x85\xbe\xf1\xc8\x19\x67\xc6\x13\xb3\xcb\xfe\x49\x3a\x63\x38\xd9\x50\xc9\xad\xac\x5c\xd5\x79\xe2\x8c\x57\x56\x5c\xd0\x52\x84\xb1\xaa\x20\xd3\xe3\x46\x46\x84\xd2\x7c\x43\xd7\x0d\x46\x31\x59\x10\x16\x13\x16\x2d\x81\x44\x18\xe0\x4a\x08\x86\x13\x84\xe1\x3b\x9c\x1c\xa3\x73\x93\xc8\xe0\x25\x3c\x7b\xad\xc3\x85\x9e\x62\x46\xa7\x5a\x50\x04\x6b\x97\x1d\xe5\x88\x99\x61\x3a\x63\x73\x50\xac\xda\xaf\x58\xcd\xce\x7c\x4b\x19\x2e\x64\x8e\x6c\x71\x9e\x92\x6c\xa3\xe0\xe0\xc0\x6c\xb5\x6c\x82\xd8\x56\x78\x1d\xea\xf5\x06\x9b\x81\x24\x94\xf9\x46\xba\x3b\x04\x57\xa6\x59\x24\x8c\x14\x06\x8b\xf6\x9c\x24\x8b\xa0\x54\xee\x02\x0b\x25\xdd\xd1\x36\x38\xa9\xfa\x96\x49\x33\x66\x10\x2a\x8c\xa5\xe1\xc9\x62\x51\x5a\x67\x46\xde\xf8\xf1\x88\x0d\xd5\x7b\xa9\x39\x1f\x67\xb3\x64\x89\x70\xfc\x48\x65\x8e\xb9\x1d\x71\x26\xb3\x94\x88\x52\x05\x7a\x8b\x57\x8b\x1d\x69\xea\xb1\x69\x99\xff\x11\x27\x34\xd6\xdd\x1a\x19\x63\x86\x26\x64\xaa\xe5\xa7\x05\x16\xd2\x59\xc4\x6a\x5c\x9a\x76\x73\x63\xbd\x56\xaf\xc6\x2d\x7f\x08\x19\x22\x4a\x73\xde\x89\xad\x0e\x7c\x52\xe6\x9c\x76\xd5\x57\x70\xcd\x49\x65\x52\x68\xb5\x80\x63\x57\xe1\x7c\x1d\x84\x8a\x83\xf1\xca\x4c\x08\x8b\xee\xc7\xc9\xd2\x66\x70\x1b\x71\x80\xd2\x04\xed\xa8\x8d\xa1\x35\xe4\x9a\x84\x82\x70\x21\x15\x56\x34\xb2\x62\x3b\x17\xf6\xe2\xb0\x17\x4b\xf3\xd6\x9e\xef\x88\x5a\x2c\x23\x9c\x54\x77\x78\x85\xd7\xcc\xbc\xbf\x9a\xb7\xda\xe3\x66\xda\x5e\x99\xb4\x12\xf1\x24\xd9\x04\x51\xbb\x34\xf3\xb3\xfc\xf3\xd5\x23\xca\xfb\xd1\x1b\xe0\xf6\x02\x4e\x8d\xf1\x3d\xe2\xc4\x4a\xa8\x52\xd9\x5d\x0a\x5f\x32\xb7\xdb\xd2\xfa\x36\x47\x8c\x4f\x4d\x41\xd4\x26\xaf\xe4\x42\xf0\x94\x6e\x02\xed\x66\x1c\x75\x37\x2e\x8a\x70\x8d\xf0\xe6\x62\x0d\xf5\x29\xb2\xe4\x65\x7b\x84\x78\x73\xcc\x8c\xbc\xba\xe2\x0c\xa5\x78\xb1\xd5\x82\xaf\xb3\xb6\xf4\x51\x6a\x4c\x5d\x76\xf5\x00\xb2\x97\x00\x7c\x39\x2c\xf2\x13\x5e\xe6\xa9\x3d\x4d\xa0\x5d\x6c\x23\x72\xb8\xd7\xaf\x0f\xd9\x94\x6f\x70\x38\xf3\x54\x1c\x7b\xfa\xb0\xa3\xd9\xe0\xfc\xf9\x98\x4e\xb3\xfb\x66\x4d\xdb\x9c\xc7\xb3\x3a\xa2\xde\xf8\x64\xba\x15\x7c\x4e\xd5\x2f\x64\x22\xa1\xd6\xb7\xc9\xdd\x5a\x3c\x5a\x41\x8b\x08\x86\xb3\x7a\xa9\x3e\x15\xe8\x70\xef\x6b\x54\x6a\x07\x19\x0b\x83\x0b\x06\xba\xae\x6f\xf5\x05\xd6\xcc\x1e\x92\x56\x8b\xb5\x63\xee\xe1\x66\xe0\x63\xae\x47\x0f\x39\x56\x7f\x42\xd7\x22\xab\x6e\xa2\x2b\x4e\xb5\x24\x64\xd4\x87\x3c\xb2\xc0\x86\x58\x4f\x69\x42\xe4\x31\x1a\xd6\xe8\x8d\x2e\xc0\xd9\x3b\x04\x4d\xa8\x97\x93\x9e\x32\x41\x83\x3a\x43\x4e\x46\x42\x14\xc0\xbb\x43\xdb\x99\x20\x7a\xcc\x91\xf1\xdd\x71\x83\x34\x06\xd1\x55\x82\x6a\x9e\x65\x84\x55\x05\x52\xb4\xe6\x05\xd4\xa6\x97\x1b\x19\xde\x7f\xc0\x8d\xcf\x1b\xdb\x52\x6a\xf9\xa8\x1a\xb6\x74\x1f\x15\x07\xda\xc7\x8f\xbb\x5e\xef\xf4\x17\xd5\xbd\xa9\x1d\xe1\x5d\xb1\xf5\x8d\x47\xe7\xa5\xfc\xcd\x1d\x91\x1f\xe0\x53\x67\x15\xc5\x68\x2a\x08\x18\xce\x53\x9f\x13\xca\x62\x22\xa4\xe2\x1c\xee\xbb\xdb\xf3\xef\x4f\xee\x87\x88\xa8\x08\x25\xf4\x81\x8c\x58\x24\x1f\x7b\x5a\x3c\xfe\x57\x46\x94\xfe\xb9\xc1\xd0\x42\x53\xc2\x24\x70\x02\xaa\x2a\xb9\xf3\xf5\x0b\xe9\x16\x46\xff\xf7\xbc\xf8\xfd\x0a\x92\xaf\xa4\xbf\x00\xed\x3a\x2c\x78\x20\x53\xc0\x11\x36\x4b\x2b\x6b\x28\xc6\xa8\x78\x83\xba\xe2\x4c\x5b\x84\xbb\xb2\x7f\x66\x6c\x43\xa1\xeb\x2c\xff\x28\x18\x45\x83\x4c\x97\x2e\x30\x00\xed\x6d\x16\x47\x6b\xbe\xa9\x6d\x7d\x1d\x13\xc9\xd3\x8a\x9c\xca\x9e\xd7\xb1\x42\x4a\x10\x02\x2c\xc4\xd3\x93\xbd\xeb\x6d\x26\xa9\x9f\x58\xf0\xd1\xf1\x88\x7d\x72\x86\xfc\xfc\x57\xe9\x9a\x30\xb1\xd9\x1e\x7f\xb0\xd8\x0a\x34\x1b\x53\xe9\x7f\x00\x14\x69\x99\x25\xca\x14\x58\x99\x52\xad\xa5\xbb\x81\x9a\x27\x75\x5c\x42\x60\x16\xcd\x2f\x77\xac\xb3\x42\xa7\x63\x92\x6c\x22\x89\x0e\xa7\x83\x44\x6a\xfa\x8e\x1e\x1a\x4e\xe7\x36\x25\x84\xf2\xc9\x80\x1c\xe8\x6a\x22\x18\x1d\xc7\x58\x8f\x13\x53\xe0\x84\x20\x30\xfd\x96\xa3\x9f\x4d\x82\xa3\xde\x45\x2b\xa9\x1b\xcb\xaf\x09\x3b\xf4\x21\x45\xd0\x0b\xc2\x6a\xc4\x44\xc6\x00\xe1\xd6\x3b\x82\x30\x92\x44\x50\xe3\x91\x89\x9c\x59\xc6\x1a\xc9\x66\x9a\x4d\x68\xc9\x0f\xbc\x81\x9c\x81\x7e\xc6\x33\x09\x11\x8c\x29\x51\xfa\x82\xfa\x0a\xca\x92\x19\x57\x5c\x0f\x2d\x04\x4d\xa9\xa2\x8f\x44\x7e\x5d\xb3\x75\x67\x58\xe1\x84\xcf\xfa\x42\xd1\x29\x8e\xd4\x1d\xde\x49\x03\xc7\xb6\x99\x6d\xc3\x3a\xdc\x30\xd0\xf0\x5c\x2f\xfe\x8c\x30\x22\x60\xa2\x5a\x27\xaf\x3f\xc2\xf0\x64\x2b\xce\x0d\x35\x3d\x22\x53\x05\x41\x7a\x8b\x05\xce\x14\x4f\xb5\x7e\x8b\x93\x64\x09\xd5\x0d\xf4\x93\x39\x96\x73\xb7\xd1\x26\x0c\xa9\xcd\xdd\x64\x17\xf7\x0c\x47\x73\x72\xab\xb0\xca\x6a\x8d\xc1\xa5\x51\xbe\x23\x2c\x4b\xdf\x9d\xa2\xff\x93\xcf\xf1\xac\x7f\xf6\xdd\x60\x7c\x3e\xbc\xed\x7f\x7b\x31\x38\x0f\xe6\x63\x9f\x7c\x1a\xde\xde\x56\x7f\xfd\x6e\x78\x57\xfd\xf1\xfa\xea\xfa\xfe\xa2\x7f\x57\xd7\xca\xc5\xd5\xd5\xf7\xf7\xd7\xe3\x0f\xfd\xe1\xc5\xfd\xcd\xa0\xe6\xd3\xfb\xbb\xe6\x87\xb7\xdf\x0f\xaf\xaf\x07\xe7\x6e\x55\xfe\x11\x9c\x2e\x08\x4f\x82\xd0\xc1\xfa\x69\x94\x0f\xe0\x11\x2a\xbe\x78\x8a\xee\xcb\xb8\xab\x36\xc6\xc7\xe4\x61\x3e\x61\xa9\x79\x18\x84\x72\x8d\x18\x72\x9f\xeb\x45\x69\xfa\xd4\x78\x41\xa3\x39\x41\x09\xe7\x0f\xd9\xc2\xb2\x36\x93\xcc\xc1\xb8\x31\xfc\x10\x19\xb4\xf6\xdd\xf0\xee\xb4\x8a\xff\xea\x1b\x0b\x10\x1f\xdc\x19\x80\x71\x61\xc7\x4e\xc1\x96\xb2\x10\xe4\x11\x0e\xab\x37\x95\x06\x3d\xf8\x9d\x59\xd5\x8f\x69\x0d\x33\x55\xea\x26\x8e\x6d\x0d\x3a\x37\xb1\xa0\xe1\xe2\xbe\xae\x5a\x4d\xbf\x1c\x06\xf0\x1e\x4d\x48\x84\x33\xe3\x2b\xd6\xf7\x94\x10\x5c\x84\x03\xce\xe9\x61\x7f\x8d\x5a\x3a\xaa\x6d\xb0\xb4\x67\x7a\xe2\xf2\x81\x2e\x16\x24\x7e\x57\x95\x5f\x8a\xc5\xca\x24\x9c\x3e\xdd\x67\x70\x26\xb5\x5e\x0f\x3a\xbf\x43\x6b\x9e\x5b\x54\x7d\x2a\x8d\x3f\x2c\xf7\x10\x02\x10\xa1\xbe\x13\x3c\xaa\x2e\x05\xef\x35\x56\xe8\x89\x40\x4a\x50\x66\xe1\xea\x8d\xee\xad\xcf\x36\x74\x67\x3c\x19\xae\x46\x4a\x21\x55\xa8\x91\x19\xef\x43\xe0\xd6\xdf\x4b\x52\xc7\x88\x77\xc8\xeb\x38\x37\x8d\x02\x77\x76\xa1\x04\x30\xe2\x06\x9f\x91\xbb\x0d\x6a\x2c\xe4\x2b\xe4\xab\xea\x8d\xb4\xe6\xb2\xd0\x6c\xbb\xcd\x78\x5c\x2e\x6b\x01\xa0\xb1\xfd\xc0\x0a\x20\x7e\x6b\xd7\xea\x8e\xc7\x78\xa9\x89\x03\x62\x78\x64\xb6\x58\x70\xa1\x50\x43\x1b\xc6\x3b\x62\xc6\x07\x77\x8e\x9d\x87\xe7\x71\xd0\x88\x96\x30\x64\x0d\x86\x72\xbb\xf4\x3e\xbb\xae\x39\xe3\x08\xa1\x4a\x40\x11\xf4\x60\xeb\x69\x41\xa5\x2e\x50\x68\x9d\xf0\xbb\x4b\xe4\xde\x42\x5f\xf0\x6d\x6b\x7f\xd4\xf5\x7e\xe5\x5a\xa8\xdd\xf2\x84\x4c\xd5\xb8\xd6\xeb\xb3\xc2\xc0\xa9\x5b\x64\x4d\x19\xd1\x74\x36\xdf\x43\x8b\xed\xb5\x84\x3f\x59\x7f\xa9\x56\x0d\x02\x0b\x81\xe0\x5c\x19\xf9\x34\xd7\x61\x90\x5b\x4d\x30\x2f\xd8\x4e\x6d\x2c\xb3\x17\x02\xb5\xcc\xff\xc0\xf8\x13\xf3\x96\x7d\x79\x3c\x62\x03\x0c\x45\xfc\xbc\x22\xe2\x42\x9c\x41\x0b\x58\x2b\xff\x17\x0a\x72\xbd\x68\x10\x4c\x33\x42\x59\x4e\xf7\xb6\x7c\x6b\xb2\x44\x79\xd1\xb5\xc2\x77\x6d\x4e\x8f\xb1\x7a\x3b\x11\xd0\x4c\xd8\x96\x0b\x52\x64\x61\x2d\xf3\x66\x9e\xb9\x03\x15\xdc\xee\xba\xab\x63\xf4\xa3\xb3\xfc\x40\x3c\x51\x5e\xaf\x50\x99\x1b\x27\xc1\x4b\x07\x6a\x54\xb7\xb0\xfb\xc0\x09\xda\x77\x84\xd1\xea\x05\xf6\x80\x04\x35\xab\x5c\x50\xc0\x19\x33\x16\xd9\x0d\xc2\x29\xcf\xfc\x47\xb7\x64\x75\xbc\xf5\x07\xa8\xfd\x63\x1d\xd6\x20\x74\xb0\x64\xf9\x3f\xcc\x66\x99\x4c\x0a\x87\xea\x6f\x6b\xb1\x58\x0f\xaa\x3e\x3f\xe0\x01\x34\x89\x16\x68\x4a\x93\x04\xe4\x80\x63\xd4\x87\xd2\x79\x90\x88\xa0\xaf\x42\x17\xb5\x46\x67\x8c\xaf\x8b\xdd\x6e\x20\xa6\x28\x20\xa6\xdb\x66\x62\x92\x40\x4d\x79\x1e\xda\x7e\x28\x6a\x0f\x39\xc9\x9a\xb7\xe0\x2a\xa2\x63\xfb\x4c\xe4\x0d\x94\xf7\xd7\x08\x3a\xab\x0c\x37\xf8\xf0\xd7\xfa\xa1\x7f\xcc\xb0\xc0\x4c\x41\x28\x95\x15\xdd\x05\x09\x42\x7a\xc9\x67\x08\x56\x64\xc6\x10\x0c\x3f\x85\x9b\xeb\x5c\xfe\x33\x0a\x89\x27\x71\x0f\xd1\x63\x72\xdc\xb3\x05\xc5\x65\x36\xc9\xdf\x9c\x6b\xc9\x61\xc4\x2a\x21\x22\xc7\xa8\x9f\x48\x6e\xbf\x20\x2c\x4a\xa0\x54\x65\x10\xf5\xe5\x29\xdf\xba\x95\x26\x4b\x50\x50\x60\x2b\xf3\xe6\xb9\x7d\x10\x7c\x38\x62\x58\x1a\x9f\x78\x02\x27\x3d\xff\xbd\xae\xbe\x6f\x21\x4e\xe2\x19\xe1\x88\x2b\xd7\xd0\xb3\x6d\x92\xa9\x53\xb2\x6a\x83\xe0\x0d\xd8\x98\x3c\x74\x27\xc8\x20\x46\x5f\x61\x85\x12\x82\xa5\x42\x7f\xfc\x7a\xa3\xd8\x10\x37\xc1\x9c\xbb\xda\xe3\x9b\x07\x60\xbb\x08\xce\xa6\x22\xe5\x50\x47\x0a\x61\xc4\xc8\x53\x18\xb0\xc3\x21\xc6\xea\x91\xca\x0c\xaa\x7f\x06\x39\x23\xa6\x7e\xa3\xc9\x2c\x83\x20\x58\xa3\x32\x35\xf0\x11\x07\xd7\x67\xdd\xa7\x76\x58\x35\x94\x65\x95\x27\x6a\xd4\x33\x80\x94\xc8\x63\x29\xe7\x58\x8d\x98\xe5\xac\x2e\x6c\x24\xa8\xd4\xd6\x4f\x92\x62\xfc\x22\x86\x10\x5d\xa6\x27\x0c\xb5\x4b\x8f\xfd\x02\x5d\x82\xfa\xe5\x83\xc8\x8a\x85\xe1\xfd\x61\xd1\x9a\xda\x88\xf9\x7c\xfd\xb0\xed\x5a\x69\xa7\xce\xbe\xfc\x82\x42\x70\x4d\xf7\x17\xa6\x88\x6c\x0b\x61\x98\xd4\x0d\x79\xcd\xc1\xaa\xda\xf4\x57\xc8\xc6\xfb\xee\xa0\xbd\xa8\x5c\x6f\x1f\x87\x6b\xf6\x89\xd7\x98\xdb\x1b\x36\x37\x90\x2d\x76\x51\xc0\x7d\x34\xe3\x4b\x79\x7c\x0b\x43\x1f\xc6\x90\x4b\xb1\x9e\x0b\xe6\xb9\x09\x8e\x75\x80\xa1\x9b\xc6\x41\xa8\x74\x10\x99\x09\xa1\xf4\x8e\xf1\xd9\x37\x1b\x3c\xaf\x8b\xb7\x3d\xfd\x5e\x3e\x7f\x37\x15\x1f\x04\x57\x9d\x78\xb3\xb0\xd7\x8f\xff\x89\x23\x08\xa0\x84\x9e\x5c\xe8\x66\x15\x50\xc0\xc1\x30\x62\x30\xe6\xd7\x8a\x87\xb6\x1e\xf4\x31\x1a\xc0\x45\xe3\xca\x43\xe3\xa9\x73\x48\x04\x2f\x8f\x98\xd6\x4c\x5c\xfe\x71\xd0\x7e\x91\xc4\xeb\x4e\x80\x01\x33\xd9\xc9\x97\x93\xae\xc7\xd8\x6e\xd2\x26\x1c\x96\x0a\xb4\x01\xb0\xbc\x68\x30\x3b\x45\x31\x8f\x1e\x88\x38\x11\x24\xa6\xf2\x14\x7c\xeb\xaa\xd1\xa9\x97\x6a\x6d\x7b\x67\x49\xa3\x29\x50\x60\x4d\xae\xc1\x99\xe9\xdf\x06\xd1\xbb\x6a\x66\x3d\x44\xa7\xa0\x4e\xb8\x50\x57\x93\x64\xe3\xd2\xb5\x09\x53\x62\xb9\xe0\x94\x29\x6f\xca\x2a\x2d\x84\xd3\x34\xb4\xd0\xd6\x14\xa4\x2d\xf6\x11\x83\xb3\xe5\xb4\xef\xe6\x44\x12\x17\x70\x60\x26\xa5\x38\x32\x5e\x16\xc3\x2e\x16\x58\xcd\x25\x64\x04\x15\xd7\xc0\x2a\x5d\xf0\xa9\x5e\x21\xbc\x80\x78\x05\x63\xa5\xc8\x3f\xf2\x79\x2b\x52\xd1\x24\x19\x31\x46\x48\x2c\x11\x24\xef\xbc\xaf\xcd\x3c\xd3\x9f\xf6\x10\x8e\x63\xf4\x3f\xbf\xfa\x70\xf1\xd3\xdd\x60\x3c\xbc\x04\xa3\xf5\xf0\x62\xf0\x75\xcf\xff\x78\x75\x7f\xe7\x7f\x35\x16\x96\x47\x22\x50\x8a\x1f\x40\xc5\x63\xd2\xc8\x7f\x90\xdd\x11\x8e\xd4\xe5\xe4\xe9\x27\x92\xb8\x48\x57\x2b\xa6\x78\x08\x20\xbb\x87\x8d\xc5\x0a\x8d\xcd\x6f\x03\xe5\xf7\xc6\x7f\xb2\x9a\x06\x1d\xf1\xf8\x2e\x9c\x18\x98\x12\x06\xd1\xd8\xd6\xda\x97\xeb\xbe\x39\xc1\x11\x36\xa3\xac\x29\x1e\x8f\xb0\xc7\xe7\x14\xe2\xbf\x27\xcb\x1f\xb4\x7a\x7d\x8d\xa9\x68\x4d\x7b\x03\xf6\x48\x05\x67\x30\x35\x6f\xd6\xf2\x27\x46\xeb\xe9\x58\x96\x0f\x95\x34\xb2\x30\xc4\x68\x2c\x1a\x63\x3e\xeb\x80\x4c\x5e\x7d\xba\x16\x1e\x81\x7c\x56\xc2\x65\x7f\x7a\x14\x0e\x07\x45\xe0\x2f\x9a\x9c\x06\x47\xec\xee\xea\xfc\xea\x14\x91\x04\x4f\xb8\x80\x6c\x30\x13\x12\xe4\x9a\xb0\x0b\x16\xf1\x34\x68\xa8\x90\xf9\xdb\x43\x8b\x3c\xf3\x37\x34\xa2\x1d\x9b\x36\xd6\x55\x11\xe6\xa2\x9a\x37\xbb\x5f\x15\xd0\x4e\xf6\x9a\x8b\x36\xd7\xbf\x7e\x0d\x96\x8e\x2f\xb4\x22\x57\xe2\xbc\xf6\x6e\x9e\x12\x6c\x0a\x78\x1a\xb7\x90\xb5\xe5\xdb\x00\xd6\x24\x29\xd4\x03\xd2\x07\x47\x1e\x5b\x17\x7c\xfe\x26\x67\xe8\xfb\xbf\x49\x34\xc9\xd4\x88\x15\xdb\xe0\x0c\xf5\x7f\xbc\x45\xdf\x62\x15\xcd\xbf\x1e\xb1\x2b\xad\x66\x7e\xff\xb7\x06\x88\x82\x8d\xd1\x75\xf4\x9a\x9c\x63\x85\x2f\x38\x8e\x29\x9b\xd5\x41\xeb\xe4\xf8\xe7\x83\xbb\xfe\x29\xba\xb2\x3a\xbc\xcf\x2a\xce\x33\xad\x82\x86\x80\x21\xc3\x44\x1c\x17\x01\x56\xce\x8a\xf0\x23\x46\x33\x83\x0b\x6b\xc4\xee\x0c\xa6\x90\xe6\xaa\x54\xa1\x05\xb7\x18\xfc\x5a\x2b\x33\x68\x4b\xc6\x94\x6d\x2d\x89\x7a\x75\x80\x8c\xfd\x66\x58\x79\x0c\xe4\x99\x2a\xb3\x1f\x31\x50\xd0\x7d\xa6\x67\xc2\x23\x9c\x40\x4c\xde\x51\x60\xd3\xd3\x6a\x3b\xcf\x20\xed\x0e\x82\x61\xd8\xb2\x18\x3a\xeb\x33\x41\xbd\x50\x16\x6e\x14\x18\x00\x60\x1f\xad\x37\x36\xe5\x9a\xe3\x18\x2c\x11\x30\xbe\x25\x66\x75\xf4\x87\x1e\x5b\xc4\x2c\x8b\x7e\xea\xf8\x11\x14\x36\x36\x6e\x45\x1c\x81\xf9\x9e\x2d\x21\x7c\x1b\x40\xb3\x39\x84\x7e\xe4\xdc\xd9\x12\x65\x65\x17\xfd\x9d\x18\x7c\x36\x62\x26\x52\xb0\xb0\x2f\x61\x56\x7c\xd0\x3b\x67\x10\xc8\x98\x5f\x97\x5e\xc0\x58\xd8\xc0\x46\x2b\xeb\x2f\x04\x39\x8a\x89\x22\x22\x05\x7b\x4f\xb8\xa6\xfa\x86\x3d\x46\x37\xa1\x7a\x1d\xf3\x28\x4b\x1d\x32\x20\xa4\x27\xda\x08\x38\x7b\x89\x7a\x0a\x31\x17\xfb\x3a\x8a\xc7\x22\x9a\x53\x45\x20\x2b\xaf\xb5\x7e\x6c\x08\xa6\x1f\x7e\x5a\x95\xd4\x9b\x05\x5f\xe0\x1d\xbb\x45\xad\x99\x86\xc6\x8b\x62\x4b\x85\xd6\xd6\x03\x9b\xad\x29\x74\x71\x99\xa3\x97\x71\x01\xc2\x16\xf9\xbc\xe0\x60\xe4\x36\x39\x55\x3c\x7e\x2f\xd1\xf0\x5a\x4b\x40\x5a\xe3\xf5\x67\x30\x93\xca\x04\x97\x41\xba\x8e\xf9\xda\xa4\x0b\xf4\xd0\x37\xa6\xe2\x6c\x84\x3e\xbb\x3f\xfe\xfa\x9f\xff\xf9\xe7\xbf\x6e\x92\x4e\xe2\x14\x72\x68\x37\x5f\x23\x5f\x0e\xa1\x28\x12\x85\x3b\x50\xe5\x54\x3b\xec\x82\x3d\x80\x4d\xcb\xbf\x0d\x4a\x51\x10\x3b\x84\x67\xf6\x84\xcb\xf0\x64\xa2\xc2\xd1\xcc\x23\x09\x24\x51\xbd\x22\x87\xf0\xc2\xae\x95\xe8\xff\xc7\x0a\x10\x90\xb1\x3e\x2a\xdb\xc5\x38\xd1\xc4\x8b\xd7\xba\x11\xf4\x95\xb5\xff\x29\x70\x20\x7e\xed\x2e\x38\x9e\xc4\x44\xd8\x6a\xd5\xce\x64\xe7\x0d\x89\xc0\x1c\xc8\xe7\x45\xc2\x63\x07\xef\x25\xc9\x02\x83\x00\xa1\x99\xc1\xf1\x88\x0d\x5c\xf1\x62\x03\x4f\x61\x3e\x32\x9e\x97\x29\x8e\x0c\xaa\x95\x44\x5f\x7d\x3e\xd5\xbf\xf5\xd0\xf2\x14\x82\x48\x7b\xe8\x97\x53\x0b\x42\x80\x85\x1a\xeb\x9f\xbe\x76\xb2\xb6\x6d\x02\x06\x4d\x25\x7a\x7f\xf2\x88\x85\xa9\x79\x78\x62\x46\xf4\xde\x72\x56\x5f\xd7\x25\x94\xcd\x13\xce\x1f\x6c\x80\x6d\xe5\xc3\x13\x07\x68\x02\xe4\xed\xfd\x26\x66\xeb\x7d\xbe\xa3\x42\x47\xb6\xf4\xf2\xf1\x62\x82\x8e\xff\x29\x39\x43\xc7\x4b\x9c\x26\xf6\x57\xf7\xd4\xc6\xff\x62\x89\x5c\xf1\x6d\x17\xe4\x93\x2c\x8d\xa5\xf4\xdb\x84\x4f\x60\x56\x9f\xdc\x4c\x4d\x04\x2d\x0c\x34\xbf\x7d\xf2\x0b\xcb\x4e\xc4\x4a\x52\x06\x96\x21\xe5\xca\xbc\x02\x3c\xae\x6e\x56\x9f\xfd\x90\xfe\xdb\xf8\x85\x61\x51\x5c\x12\x9f\x31\x0e\xfb\xe8\x35\xdd\xe8\x67\xf4\x95\x65\x41\x5f\xeb\x3b\xc6\x86\x2b\x9b\x65\xa8\xeb\x60\xe9\x3b\xf8\x29\xe8\x80\x32\x64\xd2\x32\x57\x7c\xf9\xcb\xc9\xf1\xf1\xb1\xff\xfa\x52\x4f\xe5\xff\x43\x54\x49\x92\x4c\x4d\x4b\xee\x06\x5b\x8e\xd8\x27\x07\x1c\xec\x8c\xd7\x39\x54\x12\x14\xcd\x8e\x78\x82\x8e\x72\x83\x6e\xcc\x23\x89\x7e\xa7\xc5\xda\x60\x29\xe1\x47\xad\xc7\x35\xc0\x98\x19\xa4\xc2\x17\x3a\x54\xd6\x20\x5e\x3e\x56\x21\x3a\x8a\x57\x6c\xb1\x0c\x51\xa8\x81\x16\x34\xe5\x9c\x58\x04\x15\x21\xf4\xcb\xe4\xb3\x82\x47\x0d\x00\x35\xb5\xa1\xec\xf5\x37\x65\x85\xdd\xe6\x38\x35\x86\xac\x1b\x16\xc0\xc2\x88\x58\xce\x60\xe6\xd9\x0b\xdd\x27\xfa\x72\x61\x21\x94\xad\xcc\xd2\x14\x8b\xe5\x49\x7e\xda\xaa\xc4\x99\xe3\xd2\x03\x8f\x49\xdc\x02\x80\x0b\x37\xb1\x47\xcb\x46\x31\x58\xf1\xd2\xdd\x68\xfe\xec\x46\x50\x8b\x07\x02\xf2\x4c\x25\x2a\xc2\x22\x1e\x5b\xba\xce\xb3\x4f\x8b\x12\x8b\x7f\xa7\x2a\xab\xb8\x88\x18\x99\x1b\xe3\x98\x32\x99\xd1\xf6\x0d\xf7\x71\x03\xfb\xe6\x63\xa8\xea\x46\x66\x1b\xb8\x47\x87\x57\xb7\xee\x9b\xf6\x97\x2e\xac\x43\x51\x64\xc7\x4e\x4b\x74\x16\x09\x81\x9f\xf2\xeb\x17\x62\x3b\x8c\x75\x26\xf3\xb9\xb9\xe6\xdf\x67\xfc\x9a\x26\xfa\xd6\x02\x1a\x3f\x1e\xb1\xc2\xcf\x3d\x44\x12\x9a\x52\xe6\x63\xeb\x0c\x73\xe7\x53\x23\x3d\x3f\x50\xa5\xb7\x4c\xc6\x0f\x9a\x83\x39\xb8\x8c\x40\xa5\xea\xb3\xa5\x23\x1d\xef\x98\xb2\x16\x88\x4c\xea\x71\xe5\x3a\xba\x16\x66\x75\x13\x47\x56\x20\xa5\x01\xe1\xc1\xf9\x1d\x31\xdd\x9a\x3b\x4b\x79\xb8\x70\xd0\x5e\xd0\xdc\x91\x03\x74\x0d\x38\x00\xf4\x51\x88\xf9\xf5\xf2\x6f\x8d\x80\x32\x60\x59\xba\x6b\xb2\x89\x0d\x1f\x7e\x2d\x33\xdd\xb5\x20\xee\xa6\xb2\x89\x4b\x84\x65\xa9\x3b\x50\x1b\x50\xdc\xc0\x8a\x3f\x31\x89\x12\x6c\x00\x00\x74\x43\x10\xf9\xd8\x33\x0e\xd2\x45\xd0\x97\xb9\x5e\x4c\x37\x06\x23\x3e\x21\xec\x2b\xf3\xef\xaf\x91\xbd\x1b\xbe\xe9\xd9\xfb\x5c\x48\x87\x60\x69\xf7\x1c\x6a\x0c\x91\xd8\xd8\xd0\x01\xed\x6f\x86\x45\x6c\xac\xe5\xa1\x56\x61\x32\x78\xb5\xfc\xb5\xe4\x19\x7a\xa2\x72\x3e\x62\x77\xdc\x19\x1c\x11\xe3\x1e\x2f\xb1\x07\xca\x68\xa5\x3f\x2c\x81\x09\xc0\xa8\xeb\x28\x40\x33\xe1\x9d\x72\x8d\x20\x0a\x76\xcc\x78\x4c\x76\xc3\x85\xb8\xcb\x7d\x15\xce\x7f\x2d\x88\xc9\x07\x83\x9b\xa2\x29\x9d\x96\x48\xb9\xa1\x6d\xbe\xbc\xf1\x70\x0f\xd9\x76\xa0\xa4\xdd\x13\xdb\x16\x72\xc5\xdf\x6a\xd0\x8a\xd3\x38\x83\x6c\xe0\xc2\xda\x7b\x14\xc2\x5d\x37\x21\x2a\xa6\xaa\xac\x5d\x01\x7f\xf5\x99\xb9\x47\xb0\xec\x3e\xc0\x18\xa3\x99\xe0\xd9\xc2\xa7\xcc\xbb\x74\x3f\xb3\x0d\x56\xa6\x19\xb2\x29\x3f\xb5\x3a\xd5\x05\x65\x0f\x86\xe2\x9f\x6b\x8f\x0c\xd0\x24\x89\x0b\xe8\x38\xae\xca\x18\xcc\xe1\x08\x51\x16\x25\x19\x5c\x7c\x52\xe1\xe8\xc1\x80\x65\x36\x19\x7d\xf5\x37\xe3\xf5\xc9\x94\x0d\x12\x53\x96\x24\xb6\xdb\xfc\x02\xcd\xcb\x30\x3e\x52\x8c\x30\xba\xbf\x19\xd6\xf7\xfd\x40\xab\xce\x9c\xfa\xdb\xb3\x48\x20\xf0\x3f\xdf\xd3\x8d\xe2\x2e\x4b\x68\x43\xa4\x40\xea\xde\xb8\xd4\x84\x65\xa7\x89\xf4\x23\x56\x64\xd7\x4c\x28\x03\xad\xb2\x41\xa4\x5e\x05\xb3\x66\xa5\xf5\x78\x47\xc0\x97\x1c\xac\x05\x42\x83\x9a\x91\x67\xc2\x60\x2d\x78\xb8\x01\x76\x03\xbc\xdf\x6e\x3e\xa5\x77\xd7\x4c\x67\xf5\x30\x13\x42\x36\x40\x1b\xb8\xd5\xaf\xb7\x1c\x64\xe1\xd5\x55\x63\x7c\xc2\x06\x3d\xd8\x49\xac\xb9\x25\x30\xce\x0a\x05\x82\x5b\x11\xb4\x23\x47\x23\x5e\x4b\x9f\x23\xe2\x47\xe2\xc2\x70\xbc\x2c\xe6\xfa\x9d\x81\x6f\x8b\x17\xc0\x89\xbd\x85\xb6\x86\xf0\x03\xb1\x75\xc7\xb0\x09\x2d\x7e\x8d\xd3\x1a\x16\x5d\xbf\x13\x79\xc7\xe7\xf6\xe3\x4f\xfa\xdb\x7a\x56\xf4\x09\xb2\xf8\x3c\x70\x4a\x8a\x99\x3e\xd9\xae\xd7\x06\x23\xa4\x91\x08\xb7\x1a\xd2\xfd\x62\xab\x01\x99\x1e\x5b\xd6\xed\xb1\x5d\xb9\x56\x9e\x8c\x1d\x1e\x27\xc6\xce\xa4\xe6\x60\x82\xc8\xf1\xee\x35\x47\x2b\x9a\x22\x0c\x36\x7e\x82\xc5\xcc\x28\x48\x92\x28\xf9\x75\xcd\x0e\xe7\x39\x0f\x3b\xec\xf0\x16\x35\xc5\x42\xbf\x27\x88\xdf\xab\x4e\x9a\x1f\x65\x11\xb3\xcd\xdf\xca\xbe\x3a\x9f\x15\x9a\xa8\x0c\x91\xb5\x22\x2e\x04\x20\xa1\xc6\xfa\xac\x34\x63\xa6\xec\x58\x5b\xf2\x12\xa7\x1e\x11\xc0\x55\xb8\xb3\xf9\x5d\x66\x70\x13\x02\x70\x83\xcd\x63\xd8\xb9\x88\x64\x38\x04\x5b\xd4\xa9\x69\x04\x23\xd6\x77\xaf\xf8\xac\x62\xd0\xed\x84\x11\xc0\x21\x3e\xd4\x44\x43\x83\x7e\x85\xf3\x55\xb7\x93\xfb\xff\xd9\xfb\xb6\xe6\x36\x92\x23\xdd\x77\xff\x8a\x8a\xd8\x07\x49\x27\x40\xd0\x33\x8e\xdd\xb0\x15\xb1\x0f\x18\x8a\xf2\xc0\xa6\x48\x99\x97\x91\xf7\x2c\x36\x30\x85\xee\x02\x50\xcb\x46\x15\xd4\x17\x52\xf0\xda\xff\xfd\x44\x65\x66\x5d\xfa\x8a\x6e\x00\xd4\x68\x7d\xe6\xc1\x9e\x19\x02\xa8\xae\xae\x4b\x56\x56\xe6\x97\xdf\xd7\xf2\x12\x43\x8b\x37\xab\x3a\x98\xe6\x7e\xe7\x4e\x23\x62\xbc\x77\xd4\x68\x9d\x6a\x03\x4f\xc3\x95\x8a\x9b\x89\x59\xa2\xaa\x92\x6c\xd3\x83\xf7\xdf\xa5\x2c\x63\x04\x35\x14\x8a\xd7\x22\x86\x34\xd9\xf9\x65\x6a\x46\x1c\xef\xe4\x95\x87\xd5\x77\x6b\x7e\x94\x35\x96\x7c\x33\x4f\x75\xbb\x1c\x43\x8f\x61\xb2\x4d\x94\xe2\x3b\x6b\xa4\x8d\xde\xb1\xcf\x05\x4f\xf0\x70\x53\xb4\x1c\x6d\xb7\xc1\x55\xfe\xfe\xdf\xd8\x04\x4e\x1f\xf6\x01\xec\x22\x24\xf8\xa1\xb5\x5c\x33\xb9\xd9\x8a\x34\xd3\x8a\xb7\xea\x92\x3c\xfe\x3e\x9b\x13\xe7\xfb\x9c\x47\x91\x2e\xea\xfc\xee\x03\xde\xa4\xa1\xb5\xf0\xa5\x38\x7b\x2c\x16\x22\x55\x02\xb5\x57\xe0\x7b\xcc\x7e\xaf\x57\x77\x35\x2f\xf2\xf5\xf7\xf3\x28\x91\xbd\x89\xe8\xa1\xba\x68\x62\x7e\x76\x81\xbf\xea\x7a\x81\x52\xfb\xa5\xae\x2b\x86\x9f\x31\xfc\x6c\xcc\x7e\xe0\xd1\xa3\x50\x31\xdb\x26\xc5\x4a\x12\x99\x00\x9c\x50\x60\x2e\x83\xf0\x6c\xf9\xc5\xd0\xb7\xc0\xf6\xcd\x31\x34\x53\x1b\xfe\x88\xdc\x80\xe4\x44\x46\x3c\x49\x06\x85\x19\xdc\x7a\xa8\xb1\xaa\xd8\xca\x77\xa7\x73\x83\xfb\x23\xc7\xfd\x01\x01\x55\x60\x90\x2c\x14\xe3\x40\xcc\xf2\x2a\x63\xc5\xd6\x7a\x40\x10\xe9\x4b\x20\xef\x8a\x2f\x09\x02\xc6\xd2\xdc\x83\xd6\x62\xa6\x00\xcb\x6a\x5b\xdc\x39\xab\x12\xa6\xfa\x1d\xe4\xa4\x69\xf3\x2d\x91\x96\xe0\xb8\x2c\x62\x8d\x80\x72\xcf\x4a\xe8\x89\xd3\xcd\xd7\x42\x41\x00\xa2\x7f\xcb\x70\xa3\xe9\x3f\x69\x25\x4c\x2e\x39\x9a\x2e\x62\xea\x86\xb0\x50\x92\xa4\x0f\x28\x48\x1e\xc0\xe5\x6c\x26\xc9\xff\x5e\x66\x2c\xe3\xb9\xcc\x96\xb2\x31\x30\x13\x92\x41\x1c\x33\xea\x7c\x18\x03\x45\x03\xfb\x44\x65\x2c\x1c\xee\x7f\xcc\xde\x43\x9c\x29\xf0\xbd\xb5\xe3\x72\x68\x33\x09\xf9\x5a\xb4\x92\x1a\x9e\x02\x30\x63\xdf\x20\xf8\x7e\x67\xf8\xd0\xd5\x78\x8c\xd9\xc4\xc7\xf7\x91\xcd\x02\x23\xf7\x7b\xde\x48\x24\x99\x38\x64\xf1\xf5\x0a\x85\x41\x0e\x1c\x16\x10\x03\x5f\x25\x33\x7f\xf7\xd4\xb7\xae\x9b\xcf\x50\x46\xc9\x1f\x85\xea\x8a\x77\xf4\xef\x21\x06\xa4\x3a\x2f\xdd\x2e\xd2\xa5\x31\xd8\x75\x48\x07\xfb\x6f\x3b\x4f\x20\x22\x97\xe7\x66\xc8\x8d\xa3\x1f\x3d\x52\xf1\x06\xc6\x3b\x89\x82\xe4\x79\xad\xb3\x70\x9f\xd9\xf9\xc3\xbb\x62\x5a\x08\x5b\xa4\x01\xc5\x2f\x6e\x80\x11\xf5\xa2\x74\xc8\x50\x02\xbd\x76\x9b\x14\x63\xb9\x6e\xbe\x99\x35\xa1\x30\x0c\x90\x27\xb2\x4d\xd5\x77\xf3\x9f\x7f\x9f\xdd\xc0\x8e\x3d\x45\x2d\x7c\xb3\x70\xd7\xf1\x38\xf4\x03\x23\xf0\x0e\x61\xe5\x55\xbf\x78\xec\xd8\x1b\xb6\x3a\x66\x7e\x79\x0d\x97\xf8\xfa\xe5\x5f\xab\x22\x0d\xd6\xeb\xdd\xf6\xad\xec\x0f\x41\x9a\x9e\x2d\x0a\x89\x2a\x9b\x25\x97\x8b\xea\x25\xe1\xf6\x4b\xc7\xbf\xcc\xdc\x79\xd2\xbc\xc6\x3e\xea\xf8\x98\x85\x35\x9c\xb0\xae\xbe\xae\x7b\xa0\x78\xb3\x26\x55\xd0\x8e\x91\xd8\xea\x76\xfc\x65\x3c\xef\xaf\xa3\x09\x09\xf7\x45\xb1\xbc\x03\x5a\xf4\x36\x4e\x08\xcb\x13\xb6\x16\xae\xc8\xcb\xcc\xb3\x79\x8c\x2b\x39\x68\x9b\x14\xca\xdf\xfa\xe3\x9f\xb3\x3f\xdd\xdd\x5c\x9f\x6d\x78\x9a\xad\x39\xd4\xdc\xda\xb6\x46\x56\x6a\x04\x2f\xa0\x36\xaf\x24\xd5\x4c\x9d\xb1\x95\x1e\x61\x16\xf3\x2d\x5b\xe7\xf9\x36\x7b\x7b\x7e\xbe\x92\xf9\xba\x58\x8c\x23\xbd\x39\xf7\x43\x73\xce\xb7\xf2\x7c\x91\xe8\xc5\x79\x2a\x00\xc7\x7a\xf6\xdd\xf8\xfb\xef\x60\x66\xce\x9f\xbe\x3b\x87\xdc\xd5\x78\xa5\xff\xe5\xea\xfb\x3f\xfc\xee\xdf\x4c\xc3\xdb\x5d\xbe\xd6\xea\x2d\xa5\x48\x3b\xdb\x3e\x43\xbf\xf7\x1c\x7f\x52\x79\xca\x1f\xc6\xbf\x0d\xbb\x41\x5f\xdd\xe8\x58\x24\xd9\xf9\xd3\x77\x73\x3b\x31\xe3\xed\x90\xa4\xaf\xb7\xf7\x6e\xc4\x2b\x1a\xb2\xe6\xef\x6e\xc5\xd8\x50\xdf\xbe\x59\x69\xd8\x2a\x21\x4a\xf9\x88\x0d\xf3\x28\x6a\x79\xf0\x01\x17\x30\xe7\x48\xb5\x5c\xe9\x87\x92\x7b\xb7\xba\x36\x83\x8a\x32\x21\xeb\x2c\x23\x20\x8e\xc5\x10\xc4\x96\xcb\x26\x74\x1b\xa1\x2b\x8e\x19\xbf\x97\xa4\x40\x3e\x35\xf7\x31\xbd\xee\x81\xbc\xc7\x09\xfe\xda\x62\x41\xf4\xb3\xe5\x3b\x3e\x05\x4b\x70\x4f\x3d\x26\x47\x7e\x8a\x8b\x07\xfa\x62\xfb\xd5\xd2\x8d\x35\xcf\x0e\x03\x15\x4d\x90\x62\xcc\xe5\x05\x9c\x8a\x24\x3d\xd0\x9a\x4a\x5b\xb5\x0d\x62\x7f\x44\x0e\xb3\x45\x95\xf2\x6c\xcc\xde\x57\x04\x6b\x3c\x50\xea\xf6\xfd\x05\xfb\xee\xf7\x7f\xf8\xdd\x4c\xbd\x6e\xb0\x62\x80\xdc\xd0\xe9\x8a\x70\x5b\x60\xbb\x36\x3c\xcb\x45\x7a\x9e\x2e\xa3\x73\x04\x82\x9c\x9b\xdf\x9f\xd1\x43\xcf\xf4\xf2\xcc\x51\xa0\x9e\x11\x1b\xe4\x78\x13\x0f\x2b\x68\x2e\x2d\x3d\x84\x4d\x11\xe0\x3a\x03\x70\x36\x52\x9f\xe8\xa5\x23\xbb\x46\x5c\x3d\xf2\xe2\xeb\x65\xc3\xbf\x80\xb6\xeb\x1b\x47\xb8\xc4\x33\xfb\x0c\xcf\x80\xd2\xbe\x35\x4f\xc3\x86\x6c\x97\xc8\x4b\x5e\xdb\xac\x2d\x09\x9d\xb3\x21\x03\xdf\xbc\xd9\x3c\xec\x1d\xeb\xbf\x49\x1c\x14\xd9\x64\xb5\x12\x7a\x09\xa8\x21\xf0\x0b\x6c\x56\x14\x62\x43\x4a\xe7\x41\xad\x77\x2a\xb6\x78\xc0\x84\x62\xa2\x0d\xc3\x7d\x24\xa3\xf2\xbe\x71\x7e\x09\x46\xe5\x63\xc7\x9d\x0c\xca\x2f\x34\xe0\xc7\x42\x97\x70\x2b\x0d\xc9\xe2\x9a\xef\xef\xcd\xd8\x38\x3b\x00\x29\x9a\x50\xbf\x13\xb9\x8d\xa0\x58\x41\x9c\xe5\xfa\x0c\x48\x32\x80\x7a\x01\x39\xce\xdb\xd2\xb8\x90\xe9\x1a\x72\x4c\x9a\xef\xf7\xe8\x27\xa6\x3f\xbf\x04\x1d\x25\x9f\x84\xd4\xb2\x09\x02\x22\x95\x12\x29\xc5\xf0\xf7\x9e\xa8\x03\xf3\x60\xe1\x54\x76\x23\x40\xbc\x5f\x1e\xf2\x4f\x3b\xfc\x2f\x0f\x8c\xc0\x98\x41\x15\xc6\x5a\x6f\xb4\x71\x67\x74\x91\x05\x1f\x62\x15\x0f\x1c\xc2\xad\xbe\xd7\x86\x6f\x91\x14\xeb\x97\x7b\x1b\xb3\xb5\xcc\x47\x18\xe2\x08\xbf\x34\x88\xd2\x7f\x51\x26\x31\xdf\xd3\x7f\xc7\x3e\xdd\xbd\x6e\x20\xcb\xba\x81\x90\x32\x28\x7e\x11\xa7\xac\xfc\x9b\xb9\xc1\x98\x25\xe5\x2a\x66\xdc\xc9\x8d\xa0\x00\xe4\x7e\x0b\xe9\x25\xad\x37\xdf\x5a\x9d\x59\x6c\x06\xce\x81\x03\x35\xf6\x99\x00\xae\x10\xe6\x67\xf1\x7d\x67\x8d\x00\xbf\xb6\x7d\x69\xf5\xb5\xe2\xb9\xe5\x27\x1c\xd6\xd5\x3b\xd7\x00\x51\x11\xd6\xfb\xed\xe9\x5d\x00\x0d\x8a\x63\x8c\x06\xc1\xfa\x16\x2d\x49\x7e\x35\x7c\x33\x82\xa0\xc3\x90\xb1\x83\x87\xe0\xe2\xac\x8d\x60\xb0\x17\xda\x06\x70\x58\xc0\xa1\xeb\xfe\xde\x04\x1f\x46\x46\x2c\x5f\x2d\x60\x7a\x59\xbb\x3c\xba\x1f\x3e\x79\x31\xc1\xdd\x56\x8c\xd8\xa2\x80\xcf\xaf\x6f\xee\xc3\xec\xb0\xc4\xb7\x3d\x8b\xd6\x22\x7a\x84\xc2\x41\x3c\xf2\x70\x33\x58\x21\xc9\xc5\x6e\xa6\xbc\xd4\x50\xae\x6d\xaa\x73\xe7\xd8\x97\x1d\x03\xb9\x4e\x59\x2c\xb3\x6d\xc2\x77\x90\x54\x52\x88\x0b\xf6\x09\x29\x07\xa8\x37\xa6\x60\x5f\xf4\xac\xff\x4c\x9b\x59\xf1\x12\xf9\x83\xc7\x92\xa7\x0b\x99\xa7\x3c\xdd\x31\x3f\x98\x75\x7b\xc0\x32\xb1\xe1\x2a\x97\xd1\x4c\x6d\x04\x57\x21\x0a\x88\x92\x6a\x66\x90\x63\x2d\x88\x9f\x74\xb9\x14\x51\xee\x09\xce\xc0\x79\x77\x23\xb5\x6f\x0f\x0e\x7b\x77\xb7\xf3\x3a\x5f\xfd\x47\xa9\xb0\x9c\x56\x6e\x00\x63\x46\x6b\x88\x8e\xc6\x03\x43\xd9\x20\x4d\x45\x47\xae\xbd\x0c\xc2\x7f\xd9\x35\xe5\xf4\xbd\x5d\xc1\x51\x93\x8f\x7f\x34\x3d\xf9\x71\x22\x6e\xcd\xf2\x77\x01\xf2\x04\x37\x58\x08\x5e\x71\x44\x23\xaa\xc2\x18\xf2\x8a\x4a\xa0\x20\xda\xf3\x8a\xe0\xef\xaf\xe0\x98\x36\xb7\xc7\xf4\x49\xc4\x33\x55\xa6\x71\x21\x9f\xd1\x6f\x38\xe6\x85\x77\x4e\x63\x6d\xec\x18\xf7\x8a\x6c\x5e\x42\xe9\xba\x27\xad\x73\x45\x3e\x1d\x42\x40\xcd\xca\xd1\x2f\xa0\x31\xd3\x3b\xe4\xed\xb5\x79\x48\x58\x83\x74\xb8\x4a\xd9\x65\xb7\x28\x1d\x49\x05\x32\x58\x39\xc0\x1d\x15\x43\xd4\x2a\x7e\x9b\xda\x98\x29\x5b\xbd\xb9\x2c\x12\x64\x25\x6c\x93\x26\x22\xce\x1a\x8b\x34\xff\xe5\x2a\x0e\x5c\x5c\x8d\x05\x5a\x46\x2e\x09\x1c\x80\x1f\x9d\x94\x3f\x2c\x5d\xa1\x32\xd4\x15\xb4\x32\x26\x50\x80\xbd\x12\x39\x9c\xe6\x71\x91\x60\x31\x22\xa4\xf7\x81\xff\x86\x27\x09\x93\x79\x36\x53\x8e\xae\x07\xc9\x97\xc1\xc2\x5a\xe0\x62\x4c\x57\x2e\x78\x04\x34\x4b\x12\xac\xe0\x87\xc9\x48\xe6\x35\xc8\xe8\x2e\xa4\xfe\xdf\x6e\x05\xc7\xda\x19\x9c\xb6\x99\x0a\xef\x5c\xd5\x49\xa0\x42\x13\x90\x9a\x3c\x45\xcd\x47\x07\x02\x18\xf4\x39\x07\x4f\xc9\x98\x4d\xf0\xed\xcc\x85\xcb\xaa\xfa\x61\x6f\xa9\x5e\x97\x90\x5d\xe6\x56\x93\x67\x4e\xe0\xde\xdd\x5b\xb7\x3c\xcd\x65\x54\x24\x3c\x4d\x80\x03\x7b\x59\x24\x4c\x2e\x03\x81\x42\x98\x03\x24\x6b\x31\xd3\x15\x69\x38\xab\x6d\x46\x28\xe3\x1b\x11\xd4\x89\x52\x78\x27\x09\x32\xca\xc8\x40\x8b\xa9\x4a\xd3\xd6\x9b\x31\x7b\x57\x15\x0a\x85\x3d\x11\x90\xbc\xc9\x0c\xcd\x9f\xeb\x6f\x50\xe2\x84\x82\xa3\x72\x69\xae\x94\xaf\x82\x5d\xd7\x26\xb9\xcd\xb3\xc7\x81\xe9\x6a\x4b\x15\xde\x8d\x52\x6c\x2c\x71\xbc\x07\x59\xe6\x52\x12\xdb\x6d\x88\x96\x0e\xda\x53\x61\x60\x27\x43\x82\xbc\x03\x3a\xfa\x29\xd0\x3d\xae\x76\x76\xd3\xa1\x87\x08\xf3\x38\xb0\xab\x81\xba\xc8\xf0\x8e\x06\x2b\x27\x04\x27\xf4\x19\xd9\x15\xcf\x87\x22\x15\x1c\xf8\x7f\x78\x47\x1b\x51\x21\xad\xdd\xdc\x1f\x69\xfa\x54\x92\x23\x61\xa6\x57\xe6\x96\x2f\x10\x75\xa3\x97\x81\x09\xa6\xf3\x86\x74\x4b\x80\x0a\xda\xd9\x84\x85\x60\x89\x54\x8f\xb6\xf0\xdb\x2c\xd0\x11\xe3\xbe\x75\xb0\x11\x38\xc8\xb8\xe7\x5a\x3c\xaf\x26\xe2\xf4\x23\x9c\xb1\x7e\xe5\x53\xcd\x37\x64\xdb\x93\x41\xdc\xf8\xf6\x85\x9b\xde\xa3\xff\xb4\x74\xe2\x3c\xdd\x9d\xc7\x82\x3b\xf1\x18\x0c\x10\x67\x81\xb8\x75\xeb\xf8\x7e\x5c\x97\x11\x4c\x03\x64\x46\x1e\xae\xdf\x5d\xbe\x9f\x5e\x97\xb5\x41\xfe\xf2\x70\xf9\x50\xfe\xcb\xed\xc3\xf5\xf5\xf4\xfa\x8f\xe1\x9f\xee\x1e\x2e\x2e\x2e\x2f\xdf\x95\xbf\xf7\x7e\x32\xbd\xaa\x7c\xcf\xfc\xa9\xfc\xa5\xc9\x0f\x37\xb7\x15\x35\x12\x2b\x25\x12\xfc\xe9\x7e\xfa\xe1\xf2\xdd\xfc\xe6\xa1\x24\x68\xf2\xee\x3f\xae\x27\x1f\xa6\x17\xf3\x86\xfe\xdc\x5e\x5e\xdc\xfc\x74\x79\xbb\x47\x8f\xc4\xbf\x6f\xe3\x90\x9e\x02\x7a\x72\xb0\x3a\xcd\x84\x2d\x53\x29\x54\x9c\xec\x10\x19\x6b\xef\x81\x15\x20\x5e\x78\x52\xc9\x8d\xd0\xc5\x31\x00\xd7\xfb\xb5\x60\xfa\x49\xa4\x50\xa3\x8e\xad\x51\x41\x1b\xcf\x1e\x5b\x19\xcc\xf2\xb4\x1e\x43\xef\xc4\xf1\xe7\xe9\xce\x55\x8a\x74\x75\xc7\xf3\x9b\xd0\x43\xd8\x56\xa4\x5d\x7d\x01\x3f\x22\x2d\xb6\xb9\x5c\xb4\x43\x96\x7b\xf2\x7e\x0c\xbf\xa9\x22\x1b\x57\x33\x75\xc1\x75\xb3\x61\x2c\x21\x77\x8f\x01\x2d\x42\x0b\x87\x8a\x2e\xb9\x5f\x5b\xa0\xd7\xb6\x58\x24\x32\x62\x32\xae\x46\x1f\xb0\xc0\x04\x03\xac\x55\xd2\xbe\xad\x48\xc1\xb1\x33\xfe\xf2\x36\x15\x67\xbc\xc8\xd7\x56\x0f\xda\xd5\x19\x21\x89\x9e\x88\x52\x91\x07\xda\xe5\xa4\xb6\x13\x3c\x09\x3a\x43\xf5\x95\x31\x50\x39\x8c\x03\x02\xe5\x96\x88\x3a\xfe\x12\x5b\x1f\x10\x52\xc4\xef\x77\x0e\x0d\xf5\x58\x66\x55\xa9\x55\x70\x61\xf1\x43\xab\xd9\x63\xde\xdb\x58\x6a\xa7\x59\x83\x93\x6c\x91\xd5\xcd\xaf\xb1\x6f\x8d\x85\x0b\xa5\x0c\x84\xa6\xd6\xe9\xa3\x8b\x54\xc0\x21\x42\x89\x73\x7b\xdb\x07\xa0\x07\x21\xb1\x01\x80\x6d\x2e\x36\x0b\xb1\xe6\xc9\x12\x63\x78\x66\x6a\xfc\xbe\xaa\x2f\xd1\x7b\xfd\x28\xd4\x2d\x4e\xd8\x2f\x62\x0e\x15\xde\x13\x7c\xc5\xad\x8b\x9f\xf8\x80\x9f\xe9\xa3\x5d\x55\xb6\x12\x05\x25\xcb\xd1\xab\x0e\x3e\x46\x38\xb8\xe7\xd3\xb4\x45\x2c\xcb\xa5\xfc\x62\x1a\x9c\x29\xd1\xc8\x28\x08\xe8\x1a\xcb\x7d\xe2\xec\x32\x30\x6a\x21\x81\xc4\xa3\x50\xa0\xf6\x83\x62\xa0\x7b\xd7\xec\xb0\x68\x73\x7d\x2e\x3a\xc2\xdf\x10\x21\x93\x25\x11\xa4\x30\x27\x62\xc7\x09\x4a\xce\x1e\xc5\x98\xbd\xa3\xb2\x78\xf3\x97\x8b\xab\xe9\xe5\xf5\xfd\xfc\xe2\xf6\xf2\xdd\xe5\xf5\xfd\x74\x72\x75\xd7\x77\xfb\x9d\xa2\x6a\xa1\xb2\xfb\xaa\x85\x23\xce\x42\x9c\xd3\xce\xf3\xc5\x73\xee\xa5\xfc\xb6\x83\x29\xd9\xdf\x7b\x19\x6f\xe7\xb1\xcc\x22\x73\xfc\xed\xe6\x42\xc5\x40\xc5\x7a\xd0\x52\x6d\x6e\xaa\xfa\x16\xee\x1b\xcc\x7d\xc3\x5a\x10\x3c\xed\x9e\xec\x8a\x76\x9f\x03\x57\x1b\x04\xed\x52\x61\x36\x7f\x3c\x53\xc1\x69\x33\xde\xcf\xbf\x6f\x9a\x3b\xee\xdd\xca\x4d\x54\xdf\x09\xfb\x2b\xb3\xac\xe0\xc6\x3e\xda\xaf\x01\x1b\x43\xcb\xa8\x10\x3f\x56\xc8\x07\x2b\x03\x2d\x43\x66\x6e\xf2\x1b\xae\x62\x9e\xeb\x74\xd7\xf2\x8a\xfd\x8c\x67\xb8\x6d\xca\x26\x34\x3c\xb2\x95\x10\xb1\x9d\x05\xfc\x2a\x57\xd5\xa5\x84\xac\xb1\xf7\x37\x7f\xbe\xbc\xbe\x9b\x5f\x5e\xff\x34\xff\x78\x7b\xf9\x7e\xfa\x57\x47\x7d\xb3\xe5\x59\x93\x76\xd9\x36\x15\xc6\xba\xd8\x22\xfc\x46\xfb\x82\x82\x62\xb6\x1d\x12\x91\x91\xcb\x99\xb2\x96\x25\xf5\xcd\xaf\x53\x5d\xac\xd6\xcd\x0d\x55\x7b\xf9\x71\x72\xff\xe3\x41\xdd\x04\x8a\x14\x54\x1d\xc2\xdd\x56\xe7\x11\x94\x4b\xb2\x7b\x48\x3e\x58\xe9\x1e\x10\xfd\xc0\x57\x9b\x62\xf2\x2d\x16\xed\xa0\xdb\x4b\xdd\x68\x75\x3a\xff\x0d\x5f\x6f\x5b\x40\xf7\x81\xdd\x2c\x1d\x23\x80\x60\x45\xf1\xba\x5a\x6b\x6f\x1b\xfe\x56\x3a\xc1\xbe\x3f\x4b\xc4\x6a\x25\x62\x5c\x5e\xd5\x86\x29\x62\x45\x26\x30\xf2\xe7\x7a\xd3\x28\x92\xbc\xd4\x11\x07\xb3\x43\x47\xf5\x37\xe0\x1f\xdd\x4f\x9a\x6d\xc5\x85\x95\xb0\x8d\xb4\xca\x72\xae\x5a\xd2\xae\x4f\x75\x3c\x63\x2f\x53\x74\x93\x32\x57\x38\x41\x01\x12\x1b\x60\xf7\xfb\xe0\x90\x84\x13\xc9\x68\x29\x8a\x78\x04\xf2\x5a\x81\xe6\x6e\xc3\x24\x40\xa4\xf1\xd6\x5a\xc4\x97\x0f\x6e\x74\x5e\x9d\x88\x17\x06\x02\xa3\xa8\x63\x42\x94\xa5\x18\x0d\x02\x71\xa0\x56\x18\xed\xa0\x09\xa9\x3c\xf9\x27\x1a\x7a\xbc\xb5\x96\x03\xb3\xdc\x32\x2f\xb9\x09\x72\xce\xdb\xf0\xf8\x56\xc9\x0f\xf7\x2d\x6f\x53\x1d\x17\x91\xe5\xa6\x80\x66\x3d\x1e\x84\x02\x5a\xf6\x80\x8d\xd9\x99\x99\x66\xba\xa4\x88\xf8\x0c\x18\x3e\x66\xaa\x2d\xf9\x62\x6d\x40\x4b\x98\xeb\xa3\x3d\xb5\x8e\x99\xfb\x86\xd1\x6f\xdf\x82\x76\xb0\xfb\xd5\x9f\x31\xfb\x75\x70\xf6\x5a\xe0\x34\x34\x2f\x0b\x8e\x99\xd5\xf2\x71\xdc\x56\x8a\xee\xac\xea\x30\xd4\x4f\x3f\xd0\x44\x99\xda\x09\x8f\xc8\x35\xcf\xd0\x73\xcd\xa3\x75\xb9\xe3\xf0\x36\x65\xfa\xa6\x6a\x77\x9d\x27\x78\x5c\x84\xa0\x57\x7e\x65\x84\x77\x6a\x99\x51\xef\x43\x29\x1e\xa7\x2b\x36\x6c\xe1\x87\xce\x91\xbb\xbc\xa0\xdd\x03\x83\x95\xf0\x42\x45\x6b\xb6\x4d\x38\xd6\x5c\xae\x79\x86\x4b\xda\x82\x0c\xf8\x42\x26\x32\x07\xba\x08\xcc\x7d\x55\x46\xd8\xdc\x68\x78\xfa\x68\x19\x1a\xb9\xe7\x06\xe9\x5a\xf4\x47\x82\x39\xbd\x7c\xf5\xd7\x84\x73\xfa\x2d\x1b\xfc\xa2\x33\x73\xe6\x97\x25\x41\x39\xfd\x74\x18\x8b\x07\xcb\xd2\xbf\xcb\xb0\x99\xa5\x16\x3f\x56\x7f\x5e\x1a\xef\x86\x83\x7a\x38\x94\x81\xa8\x87\x07\x98\xf9\x2a\x31\x71\xe3\xce\x5a\x26\x9a\xb7\x88\x63\xda\xb6\x91\x67\xb8\xad\xed\x58\x17\x8b\x36\x66\x4b\xec\x55\x77\xeb\x5d\x71\x7f\xbb\x6f\x4f\x15\x17\x0c\x0d\x20\xcf\x45\x2e\x87\x85\x36\x82\x97\xe6\xb9\x38\x83\x9f\x37\x37\x4e\xac\x3f\xbd\xdf\xb9\xb6\xd0\x3c\xdb\xbd\xe3\xcf\x04\x90\x59\x7d\x75\xfd\xa5\xe0\xc6\x34\xdc\x2c\xef\x90\xbf\xe0\x98\x45\x96\xcb\xfa\x0a\x6b\xde\x89\xd5\xa7\xde\x97\x93\x2a\xe1\x1a\xe8\x5d\xbb\xd6\xf4\x36\x77\xe6\xd7\xfd\x37\x64\x59\x41\x7a\x9b\x4a\x0d\x2c\x03\xa4\x5b\xdd\x41\x01\xd6\xf8\xdc\x23\x46\xf2\x73\x21\x0a\x61\xd6\xfe\xa2\x88\x57\xf5\xd8\xe6\x00\xef\xcc\xbf\xd2\x5a\x3f\xb3\x4d\x11\xad\x99\x6d\x9c\xc5\x22\xe1\xbb\xd2\xab\x81\xbf\x94\xeb\x04\x48\x35\x0f\x64\xf8\x8b\x8a\x2c\xd7\x1b\x00\x61\xfa\x76\xd3\x42\xc1\x82\x67\x3c\xcf\x53\xb9\x28\xf2\x46\xc0\x56\x89\xf1\xe7\xc0\x84\xd6\xdd\xc7\xcb\x8b\xe9\xfb\x69\x25\x9b\x34\xb9\xfb\x73\xf8\xdf\x9f\x6e\x6e\xff\xfc\xfe\xea\xe6\x53\xf8\xb7\xab\xc9\xc3\xf5\xc5\x8f\xf3\x8f\x57\x93\xeb\x52\xce\x69\x72\x3f\xb9\xbb\xbc\xdf\x93\x56\xaa\x3f\xb5\x7d\x22\x78\x40\x48\x64\x61\xa1\x96\x99\xd5\xde\x2e\xe9\xa9\x6f\xd9\xc4\xd2\x33\x95\x08\xc4\x6c\x6a\x10\x32\xef\xa8\x53\x4a\x19\xc4\x77\x3c\xe7\xa4\xfb\x3c\x66\x13\x66\xf5\xbb\x01\x0c\x9d\x19\x67\x81\xb8\x6b\xcc\xec\x60\x13\xc6\x63\x88\xfc\xcd\xcd\x4b\x4f\xe9\x25\xb1\x46\x25\x22\x24\x29\xb6\x95\x3f\x33\x75\xf9\x24\x54\x5e\x00\x83\x2a\x4f\x12\xab\xb3\x6e\xbf\x10\xd4\x78\xda\x5e\x66\x72\x23\x13\x9e\x7a\x95\xa0\x1b\x6a\x0b\x1c\x76\xdb\x57\x47\xe9\x51\x97\x8e\xb0\x97\x87\x87\x29\x83\x7e\x5f\x5c\x4d\xc1\x05\x8a\x72\x4b\x81\x6f\x1f\x3e\x53\xc8\x4a\x44\x4f\xdc\x70\x00\xe8\xe7\x9a\xe2\x69\xf8\x78\xfa\x72\xfb\x42\xcc\x8e\xd9\xc4\x36\xf2\xfc\x52\x20\x20\xd7\x49\xfb\x2f\x97\x2a\x4f\x77\xbd\xfd\x9a\x7b\xe0\x50\xcd\xc0\x37\x25\xbc\x4f\x59\x39\x08\xc3\x1d\xcc\xb6\x7e\x0d\xce\x8e\x05\xa3\x51\x34\xde\x05\xdd\x05\xf0\xb4\xb6\xf8\xdf\x89\x39\x84\xbe\xd5\x71\x08\x29\x14\x60\x14\x16\xba\x50\x71\x46\xc8\xa4\x8d\x54\xe7\x1b\xfe\xe5\x8d\x7d\x53\x2c\x49\x76\xfc\xdd\x40\x37\x23\x12\x73\x13\xd9\x19\x23\xd7\x3d\x5c\x33\xd5\x31\x5e\xfb\xbd\x45\x6b\x59\xe1\xda\xe3\xef\xa8\x88\xb1\x7a\x12\xbb\xa6\xf9\xab\x69\x30\x20\x8e\x8b\x36\x3c\x34\xb2\x4d\x85\xf9\xa2\x03\x70\x25\x88\xcb\x73\xff\x0d\x40\xed\x92\x4e\x54\xb3\xed\x0e\xb3\xbc\x47\x6d\x9b\xc6\xfc\xf2\x0b\x88\x68\xd0\x93\xcc\x9c\x61\xb6\xd9\x06\x3a\x09\x98\x4e\x69\x34\x33\x59\xff\xad\x17\x6c\x09\x55\x1a\xa4\x03\x9b\x0a\x08\x6c\xc3\x54\x58\xd6\x57\x20\x25\xa9\xa5\xb0\xed\x12\x48\x44\x06\xe1\x5e\x65\xae\x5b\xe2\x73\x41\x19\xbb\xef\x7e\x3b\xec\x9c\xcd\xd3\x1d\xb3\x0c\xe3\x61\x95\x08\x15\x49\xd1\x99\x0b\xfd\x2a\x94\x6c\x62\x2a\xba\x2d\x94\x39\x8a\x4f\x01\x76\xe8\x9f\xcd\xaa\x3c\x94\xfe\x73\x6f\x21\x85\x0d\xc4\xa6\xf8\xfd\x17\xa3\x76\xfb\xa9\xc2\xe8\x46\x8f\x03\xd8\x2e\xb5\x1e\x1e\x68\x0b\x1e\x3d\x3e\xf3\x34\xc6\x58\x21\xa0\x0f\xc6\xec\x47\xfd\x2c\x9e\x44\x3a\x62\x91\x48\x73\x4e\x64\x2f\x19\xa4\x5f\x61\x43\x51\x3b\x33\x05\x28\x76\x64\xce\x51\x20\xa1\x9b\xcb\xd5\xda\xdc\x27\x83\xe4\xb9\x4e\x8d\x39\xca\x91\x49\x6b\x2b\x22\xa2\xd7\x68\x19\x80\x65\xc2\x9f\xea\xec\x35\x87\x54\xc2\xb3\xa9\x2b\xc5\xb3\xd9\x29\xcb\xa4\xdd\x05\x77\xa0\x01\x23\xa3\x89\x84\x08\x23\xb6\xd2\x09\x57\xab\xf1\x78\xcc\x44\x1e\x8d\xdf\x0c\x5a\xe8\xd4\x60\x98\xef\x72\x10\xd4\x44\xeb\x4c\x24\x3b\x47\x09\xe1\x8a\x04\xcc\x30\x43\x8d\x48\x26\x31\xe4\xd1\xb0\xfc\xef\xaa\x15\xf5\x5f\x37\x74\xde\x7c\x53\x1d\x5c\x82\xd6\xd2\x0e\x08\x73\x0c\x68\x09\xbf\xdf\x7c\xf3\x1a\x50\x52\x69\x55\xb4\x7c\x69\x65\x0b\xfb\xa3\x56\x43\xeb\x05\x7f\xd2\x6d\x72\xb3\x07\x31\x36\x35\xb6\x44\x84\x0e\x07\xd5\x58\xb5\x45\x2e\x2a\x65\x6f\x47\x54\xbc\x75\x14\xaf\x0d\xac\x5b\x6b\xd8\x7f\x0d\xdb\xc3\x55\xc6\x1e\x83\x4f\xd2\x49\xb1\x69\xa7\x2a\x3a\xd6\xe5\xf3\x9d\xc4\x7f\xbb\x80\xc7\xf5\x76\xf9\xbc\x04\xb0\x15\x19\xa0\xfe\x62\xe0\x96\x6a\x07\x8d\x6d\x4f\x65\x06\xa4\x5a\x87\x14\x32\xb9\x66\xb0\x69\xc8\x2f\xed\xb6\x18\x30\xc4\x12\xa7\x64\x87\xa5\x72\x36\x1f\x41\x3f\xc9\xd0\x2f\x83\xa4\x54\xbb\x19\xab\xa2\x9e\x06\xcf\x11\x50\xd8\x1f\x94\x89\x03\x47\x27\x20\x93\x25\x58\x06\x34\x48\xb9\xe3\x5c\xb3\xa5\x2d\x8d\x79\x14\x81\xe8\x5e\x0c\x34\xb3\xcf\xc8\x5c\xf1\xe7\xdf\x67\x36\xcb\x4c\x40\x00\x7f\xc6\xe6\xfe\x21\x18\xcd\x7e\xfa\xce\xe2\x3f\xf0\x0d\xb1\x09\xd0\xb1\x89\xb9\xca\x1b\x1b\xf0\xf0\x28\x68\x0b\x7f\xf2\x93\xb9\xb7\x37\x7e\x9d\xda\x87\xaf\xa2\x64\xc5\xe4\xd3\x1d\xc3\xa1\x26\x42\xd2\xb4\xab\xa3\x41\x23\xfb\x11\x28\x30\x5c\xf3\x03\x7c\x97\xd2\x3c\xe0\xa0\x5b\x46\x5a\x33\xec\x22\x8f\xd6\xfe\xac\x2c\x6b\x4f\x92\x1e\x11\xbd\xe7\xc6\x53\xac\x22\xb8\x2f\x44\x49\xc9\x95\xd2\x21\x3b\xb8\x56\x02\xd2\x0a\x3c\x67\xb1\x0e\x9b\x65\x32\xdf\x0f\x45\x19\xc8\x03\xb4\x6f\xa9\xe5\x1a\x21\x06\xf4\x9e\xa5\xec\x10\x38\xc1\x12\xd9\x43\x2c\x8e\x0f\xbd\x78\x92\xb7\xa9\x12\x83\x96\xeb\xb1\x67\xaa\xfc\xa8\xda\x20\x59\xac\x88\x4c\x05\xf2\xf9\x65\xc6\xdf\xc8\xe5\x93\xd9\xa8\xf5\x65\xed\x16\x28\x58\x80\xfa\xda\x9b\x29\xec\x76\x40\x0a\xf8\x28\x76\x59\xa8\xa5\x43\x2b\x8a\xb5\x2d\x48\x69\xde\x87\xe6\x6b\xff\x54\xc0\xc0\xcd\x03\x6d\xe0\x7e\xa7\x08\x3e\xf4\x83\xf9\x71\x07\x08\xad\xd6\xb8\x59\x83\xbe\xf6\xc8\x47\xc1\xc8\x4c\xf8\x71\xa6\x39\xf4\x38\x93\x06\xdd\x68\x1f\x50\x84\xab\x9a\xb9\x91\xcd\x14\xf1\x86\x06\xf9\x5b\x63\x70\xea\xd3\x46\x05\x91\xc8\x56\xb8\x2b\x91\x39\x00\xa7\xab\x15\x38\x6d\x96\xeb\xb6\x52\x6c\xe6\x0e\x0f\x82\xd7\xa0\x58\x4d\x51\xa7\xc6\x07\x1e\x08\x5e\xa2\xc9\x6d\x05\x2c\x79\xa7\x9b\x06\x8e\xf8\xbc\x50\x94\x09\xfd\xf5\x48\x98\xe1\x9b\xa8\x46\xac\x90\x45\x0a\xdd\x5d\x5e\xdc\x5e\xde\x7f\x35\x40\x93\x45\x13\x0d\x46\x34\xd9\x7e\xbe\xbb\x7c\x3f\x79\xb8\xba\x9f\xbf\x9b\xde\xbe\x04\xa4\x89\x3e\x3a\x00\xd3\x74\x47\x74\xc4\x17\x5a\xe5\xe2\xcb\x51\x67\x72\x5a\xa8\x39\x1f\x80\xad\x77\x94\xdf\x5d\xee\x0e\x36\x5a\xa7\x53\x76\x5c\xc7\xc4\x26\x87\x27\x9a\x63\x4f\x0e\xf4\xd7\x97\x32\x49\xa0\x30\xcf\x05\x84\xa9\x8c\xc5\x0c\x2a\xd8\x1f\x2b\x24\x4b\x36\x75\xa6\x16\x25\x3e\x69\x08\x52\xad\xcd\xb5\x0d\x4b\xf2\xb6\x66\x00\x52\x09\x05\x4f\x5d\x8c\xcb\x2b\xa9\x84\xef\x06\x0a\x28\x16\x8a\xb5\xd2\x64\xd2\x24\xbe\x64\xdd\x25\x39\x5e\x7d\x7d\x4d\xbb\xe2\x4a\xeb\xd3\xba\x9f\xf6\x43\xf7\x86\xb8\x89\xa5\x42\xc7\xb4\xb4\x9b\xef\x9a\x97\xee\xb9\xdf\x02\x30\xee\x66\x26\x39\x44\xcd\x41\xa3\xd0\x4f\x24\x4d\x04\x6a\x1d\xf8\x70\xfa\xa3\x44\xdc\x87\x5e\x56\xc6\xd9\x98\x42\x33\xd6\x12\x62\xeb\x9c\xb8\x06\xa2\xa4\xc8\x72\x91\xd2\x45\x7f\xf2\xe9\x6e\xa6\x50\xc8\x9a\x4e\x21\xe2\xc3\xc7\x47\x20\xea\x40\x97\x9e\x6f\x3d\x94\xd0\x82\xbd\xc6\xa8\xea\x46\x70\x95\xa1\x7e\x6c\x92\x88\xd4\xaf\x0c\xec\x8f\x10\x31\x69\x08\x81\xc8\xb0\xff\x3d\x49\x88\x6a\xd8\xb5\xa6\xbf\xf4\x29\x89\x68\x56\xd7\x53\x5b\xdd\x27\x40\x1a\x5f\x72\xe5\x34\x20\xeb\xfb\xae\x22\x42\x83\x36\x2e\xa2\x32\xce\xbd\xd7\x5a\xba\xc7\xe6\x7e\x5d\x4a\x27\x5c\x4a\x3d\xce\xf5\xf0\x94\x60\x6b\x6d\x0c\xa8\xa3\xb2\xf7\x89\x51\x57\x77\x9e\x00\x62\xc7\x0c\x63\xe3\xa9\x53\x11\x4c\x3a\x8a\xe5\xcb\x34\x75\x1c\x00\x71\xd2\x40\x70\xe1\x95\x39\x6c\x36\xa2\x53\x8b\xe9\x65\x88\xa4\x26\x16\x21\xa6\x74\x6e\x4b\xc2\x1d\x28\x8b\x10\x66\xe6\x0b\x8e\x8b\xa0\xb3\x8f\x54\xdf\x6f\xbd\x94\xf9\x91\x7a\x26\xf7\x21\x92\xad\x54\xf6\x87\xbd\x08\x25\x11\x09\xf3\xea\x4b\xf2\x87\x2c\xbe\xc3\x15\xb3\xca\x6b\xce\xd1\xbb\x1d\x94\x9e\xbf\xbe\xb9\xbe\x0c\x93\xeb\xd3\xeb\xfb\xcb\x3f\x5e\xde\x96\x0a\x46\xaf\x6e\x26\xa5\xa2\xcf\xbb\xfb\xdb\x4a\xad\xe7\x0f\x37\x37\x57\x97\xb5\x2c\xfd\xe5\xfd\xf4\x43\xa9\xf1\x77\x0f\xb7\x93\xfb\xe9\x4d\xe9\x7b\x3f\x4c\xaf\x27\xb7\xff\x11\xfe\xe5\xf2\xf6\xf6\xe6\xb6\xf2\xbc\x87\x8b\xee\x7c\x7f\xe9\x35\x9a\xc3\x3f\x3e\x9d\x18\x30\xdd\x35\x6e\xe3\xb2\xa2\xd8\x11\xbb\xb8\x27\x6c\x68\xdf\x72\xb4\xf5\xa0\xb6\xb9\x60\x63\x98\xae\x0e\x5a\x75\xa7\x97\x40\x2b\x0d\xdd\xe7\xe3\xa8\x75\x73\x9e\x37\xde\x7f\x7b\x07\x26\x48\x72\xf8\x73\x21\xd2\x1d\x31\x93\xe0\xa5\x11\xff\x12\x71\x85\x78\xcb\x5c\x6c\xb6\x50\xbf\x13\x02\x05\x67\xea\x13\xe4\x58\x10\x8b\xf0\x2a\x63\x7f\x84\x6c\x89\xfd\xb2\x97\xe6\x86\x41\xf9\x0b\x3e\xc3\x7d\x36\x9e\xa9\x92\xa4\x71\xf0\xab\x58\x47\x85\x8b\x66\x8c\x67\xca\xb2\xbf\xc6\x3a\xca\xc6\x70\xf4\x8e\x75\xba\x3a\x27\x9d\x26\x63\x4c\xf5\xe3\x42\xeb\xc7\x73\xa1\xce\xe1\x72\x90\x9f\xf3\x22\xd7\xe7\x90\x69\xc5\xc1\xcf\xce\xad\x9c\x8b\xd5\xc3\xc9\xce\xd7\xf2\x49\xc0\xff\x8d\xd7\xf9\x26\xf9\x97\x6c\xbb\xfe\x72\xb6\x4a\xd2\x33\xf3\xdb\xb3\xf0\xb7\x67\xf6\xb7\x67\xf6\xb7\x67\xe6\x67\xf8\x7f\xdb\x1d\xc6\xd9\x04\xe9\xc9\xcf\x94\x54\x99\x48\x73\x58\x86\xcf\xa9\xcc\x85\xd7\x0a\x67\xaf\xfe\xe7\x7f\xd8\x38\xe5\xcf\x88\xbc\x7f\xc7\x73\xfe\x11\x2f\x7a\xff\xf8\xc7\x2b\x96\xe5\x9a\xc4\xa9\xb6\x3c\xfd\x5c\x88\xdc\x5c\x39\x13\x11\xe5\xec\xff\xcc\x14\x08\x39\x6e\x76\xf3\x1c\x2f\xc0\x78\x19\x8c\x33\xf6\xef\xd8\xe6\x14\x59\x7a\xe2\xcc\xb4\xd4\x02\xca\x93\x3c\x69\x50\x00\x6b\x89\x95\x7c\x4e\xde\xd1\xf7\x07\xec\x96\xcf\x49\x79\x8b\x58\x9e\xe9\xec\x73\x02\x54\x50\x89\xe6\x36\xcf\xcb\xdc\xe2\x05\x87\x85\x3a\xd7\xb4\x47\x6a\xd9\x84\x23\x76\xcc\xa1\x6a\xa0\x77\xc8\x14\x68\x43\x28\x35\x7d\x2b\x08\xda\xf8\x80\x10\x10\x44\x49\xb3\x43\xee\xf0\x4a\x8a\x6a\xeb\xf0\xe6\x60\x1c\x72\x9d\xf2\x95\x57\xc7\x27\x0f\x32\xfb\xdd\xdb\xf3\xf3\x11\x5b\x65\xf0\x8f\xc5\x67\xf8\x07\x24\x1e\x4f\x45\x76\x55\x1b\x4c\x97\x43\xaf\xcf\xf2\xfe\x99\x38\x45\x02\xfe\x6b\xf0\x2b\x56\x96\xe9\x0f\x85\x8a\x13\xe1\x0b\x09\x4a\xb1\xa9\x44\x5b\x05\x42\xbc\xa1\x54\x99\xac\x61\x8e\x17\x22\xe2\xc6\xf0\xd5\x9e\x8d\xb8\x14\xbd\xcc\x85\xc2\x6b\x49\xea\x69\xff\x39\x5e\x21\x20\x29\x0c\x28\x0a\x50\x92\xdf\x6c\x41\x56\x5e\x42\xbc\xfe\x1e\x09\x0b\x47\xd5\x8f\x40\x18\x1a\xb9\xf7\x80\x51\x0a\xf5\xab\x85\x0d\x9c\x61\x01\x66\x91\x9a\x9b\xc9\x96\xab\x98\x67\xb0\x02\x97\x29\x84\x9d\x53\xc6\xeb\x1d\x1d\x21\x92\x47\x17\x39\x54\xbf\x63\x8a\x27\x1c\x09\x24\x47\x0c\xfa\x3c\x0a\x3a\x81\x67\x02\x4a\xe1\x57\x7f\x38\x9e\x29\x27\xaa\x8e\x69\x74\xbc\xb2\x44\x7a\xbb\xa3\xda\xe6\xea\xa0\x4b\x7b\x85\xa1\xe1\x1e\x79\xd9\xda\xea\x77\x47\x4c\x96\x63\x9c\xc0\xc3\x18\x4a\x6b\x59\xf9\xaf\xd7\x20\x73\x2f\xd2\xec\x8d\xd9\x86\xc0\x4e\x9c\x7b\x96\x43\x99\xf9\xc9\x70\x1a\xec\x74\x6d\x33\xcd\x3b\xc2\x72\x33\x3a\x25\xe6\xbe\x26\xf7\x61\xff\x56\xf9\xd6\xd3\x91\x4d\xfd\xa5\x7f\xfd\xaa\xa9\xc9\x10\x12\x62\x21\x51\x87\xfb\x82\xb8\x65\x43\x8b\x8b\x8d\x92\x64\x3b\x3a\x27\x56\xc7\x48\x9a\x23\x2b\x37\x17\xf6\x7c\xa6\xe8\x04\x1e\xb1\xa5\xe0\xf9\x1a\x30\x31\xd9\x13\x1a\x63\x3c\xee\xf3\x67\xed\x93\xa1\x96\xf6\x19\x70\x34\xa5\xc6\xfd\x6d\x1d\xbf\x06\xa9\x1d\x1e\xe5\x98\xe9\x69\x23\xc4\x75\xae\x0a\x0c\x56\xa3\x41\x3c\x60\x1c\x2c\x8b\x70\x95\xb1\x3f\x24\xb1\x86\x91\xd8\x61\xc4\x9e\x55\xfb\x81\x1f\x18\xc3\x83\x6f\x87\xf9\xb8\xc0\x38\x42\x21\x22\xc1\x70\x70\x9f\xf9\x60\x7a\x48\xe5\x08\x4e\x72\xdb\xa6\xea\x18\x08\xe8\xc0\x61\x15\x0b\xe6\xa7\x7b\x6f\x0e\x99\x48\x2d\xc5\x31\xbe\x2b\x52\xc9\xac\x65\x1a\x9f\x6d\x79\x9a\xef\xec\xf2\x4d\xe4\x02\x98\x51\x13\xf9\x28\xd8\x24\x4d\xf5\xf3\xa9\x47\xa1\xd5\xb4\xdc\xf3\xec\xf1\xc4\xcc\x54\x40\x18\x37\x84\x59\xaa\x91\x48\xaa\x84\x92\x89\xc5\xfc\x30\xd2\xaa\x36\xe2\xad\xc6\xe7\xa4\x22\x4f\x77\x73\xb3\x10\x37\xdb\x56\x4b\xd1\x0b\x6f\xd9\xdf\xc9\x1d\xc6\x87\x05\xe7\x73\x0f\x3e\xac\xd2\xac\x7e\x3b\x7c\x58\x0d\x54\x57\x75\x3e\xac\xe9\xf5\xf4\x7e\x3a\xb9\x9a\xfe\xdf\x4a\x8b\x9f\x26\xd3\xfb\xe9\xf5\x1f\xe7\xef\x6f\x6e\xe7\xb7\x97\x77\x37\x0f\xb7\x17\x97\xdd\x05\xee\xf5\xde\x7b\x17\xfc\x8c\x85\xcf\x79\xcb\xee\x83\x8c\x19\xe2\x14\xc9\xff\x26\x69\x20\x58\x55\x66\x33\x4b\xb5\x1a\xc1\x46\x7d\xcb\x2e\xd3\x74\xba\xe1\x2b\xf1\xb1\x48\x12\xc8\x6b\x23\x28\xf8\x22\x15\x70\xf1\x1c\xb1\x8f\x3a\x9e\x06\xbf\x83\x4a\x86\xc6\xd7\x80\xe7\xf3\x38\x4e\x45\x96\xe1\xe3\x47\xf4\xfc\x20\x8b\xeb\xaa\x24\x08\xc5\xc0\x9f\xb8\x4c\xcc\xfd\xed\x2d\x88\x95\xea\xe5\x12\x91\xb7\x23\x87\xb9\x66\x9f\x0b\x9d\x73\x26\xbe\x44\x40\xea\xd0\xbc\x4e\xae\xf4\xea\x65\xef\x40\xcd\x7b\x7a\x7f\x9c\xb0\xe5\x92\x02\x12\x10\xf3\xe6\xe3\xbc\xd9\x10\xd0\x5b\x7e\xc0\x9f\xbe\xc7\x5f\x36\xb6\x9e\xe7\x35\x85\xfe\x03\x8a\xcc\xae\xf4\xaa\x99\x90\x1b\xbc\x6b\x62\x11\xf7\xaa\xdc\x50\xb2\xaa\x57\x2c\x93\xea\x71\xa6\x3e\xad\x85\x62\xba\x48\xf1\x4f\x70\xcd\x37\x6e\x66\x52\x64\x6b\x11\x33\x5d\xe4\x23\xf6\x2c\xd8\x86\xef\xd0\x6d\x86\x3b\x81\x63\x11\x86\x25\x03\xa7\x88\xf9\x75\x22\x95\xb1\x16\x5b\x69\x21\x8d\xd5\xa9\x3f\xc5\x8d\xcb\x52\x9a\xf0\xe3\x19\xc7\xba\xce\xd3\x12\x50\x02\x4a\x56\x3c\x80\xc5\x66\x6a\xc9\x72\x83\x48\x91\xd6\x8f\xc5\xd6\x93\x1f\xbd\xb2\x51\x62\x18\xee\x27\x2d\x63\x16\x17\xdb\x44\x46\xce\xee\x3e\xeb\xb4\x95\xe1\x0d\xb1\xb7\xfd\x4f\x9d\x2a\xa2\xbc\xeb\xc5\x1a\x80\xbd\x01\xa4\xa1\x83\xeb\xed\x85\xd9\xee\x98\x54\x51\x52\x80\xfc\x42\x91\x89\xf4\x2c\x4f\xe5\x6a\x05\x0e\xb8\x2d\x13\xf8\xf6\xe9\xf0\x3c\xdd\xce\xf1\x88\xf8\xb0\x5e\x2d\xd1\x2b\x19\xf1\x24\x44\x99\xf9\xf4\x94\xe3\xdb\xb2\xdb\x9e\xc4\xa9\x4c\xbf\x5d\x87\x5a\x79\x04\xb6\xa9\x00\xca\xb7\x39\x98\xf2\x39\x99\xbb\x63\xfa\xbd\x64\xe6\x82\x6e\x75\xab\x7d\x41\xa7\x95\xfe\xb7\x27\x9c\x7f\xb6\x55\x28\x40\x85\x52\x05\xb9\x18\xfd\xac\x44\x0a\x1e\x2c\xe4\xdf\xcc\x9b\x2a\x0d\xbe\x89\x53\x2d\x70\x40\x31\xab\xda\xb1\x74\x88\x38\x2c\xba\x59\xc9\x27\xa1\xbe\x3e\x7d\x61\xf0\x80\x88\x47\x6b\x31\xb7\x7e\xf9\xa9\x4d\x96\x3b\x00\x06\x1a\x2b\x4b\x1f\x1c\x9a\x52\x26\x81\x32\x26\xc2\xab\x13\xf6\xb8\x6e\xbb\x90\x12\xbf\x03\xc4\x6d\x3a\x31\x8f\x45\x49\x11\xfa\xe8\xf7\xec\x65\x9a\x7d\xb6\xdb\x76\x84\x71\xf6\x4e\x44\x8f\xec\xe1\x76\x8a\x85\x44\x32\x67\xc6\x14\x64\x6b\x4f\x87\xde\x7a\x77\xcb\xf9\xea\x17\x14\x7a\xf5\xa4\xa4\x4e\xc5\xc2\x74\x88\x32\xd3\x50\x6a\x61\x8c\x64\xe6\x24\xbe\xb7\x09\xcf\x2d\xcb\x37\x04\xe2\x59\xb6\x01\x52\xef\x22\x0f\x94\x30\x48\x96\xb7\x8f\x4f\x01\xbc\xd8\xe5\xf0\x6a\xf5\x34\x3f\x56\xde\xc1\x41\x92\x0f\xbd\xbc\x75\xc7\x71\x56\x89\x5e\x40\x6d\x6c\x7b\x5e\xbc\xc3\x34\x98\x7d\x91\xca\x78\xc8\xc1\x62\xc7\xe4\xc6\xfd\xb4\xab\x83\x4e\xbc\xd7\x3d\x09\x6c\xba\xc4\x50\x6b\xe5\xe2\x55\xad\xbd\xda\x77\xcb\x83\xd4\x54\xe6\x72\x53\xce\x0f\xb4\xcc\xa8\x10\x57\xd2\x1d\x6a\xd0\xf5\x77\x39\x6a\xa2\xeb\xd5\xbc\x7b\xc6\xd2\x17\x00\x77\x4f\xf2\x11\x25\x99\x58\x3f\xea\xea\x32\x87\xd0\xdb\xd9\xa9\x43\x98\x0f\x28\x6d\xbb\x49\x2c\xe1\x2f\x7b\xcd\x68\x75\xdc\xef\x29\x5b\x79\x14\xdf\xc8\x0b\xec\xa8\x22\xd7\x3e\xd8\x0c\xef\x33\x05\xd2\xa7\x10\xd9\x0d\x66\x63\x1a\xd7\x32\x4c\x4e\x5e\x05\x86\xc1\x6e\xcd\x01\x38\x94\x41\x48\x98\x6d\x2a\x6c\xda\x62\x27\x72\x57\x91\x96\x58\xba\x7f\x88\xca\xbb\xb7\x2e\x97\xe4\xda\xaa\x3b\x47\xa3\x00\x31\x74\xf2\x34\x22\xbd\xd9\x6a\x25\x14\x61\xb1\x94\x9e\x29\x6a\xdc\x8a\xb6\xb9\xc0\x7e\x09\xf2\x3e\xa2\x78\x0a\x02\x28\x45\xa6\x93\x27\xca\xe0\x04\x6c\xa9\x20\xf7\x60\x3a\x78\x61\x5c\x53\x73\x11\x83\xd4\x22\xe1\x9f\x01\x11\x56\x51\x2e\x4b\xc5\x4a\x66\xb9\x08\xab\x04\xc2\xdf\x9f\x4c\x64\xa6\x74\x77\xeb\x1a\xfa\x56\x91\x99\x7d\x4e\x98\xd9\xb5\x03\xfa\xb3\xdb\x8a\x78\xea\x7e\xd7\xbd\x18\x4a\xa5\x3e\x71\x60\x24\x4a\xa7\x00\xae\x01\x74\x3e\x33\x24\x29\xc8\x1c\xcf\xa9\x9b\x24\x2a\x1f\xe7\x4e\x19\x08\xa6\x68\x55\xf0\x94\xab\x5c\x88\x6c\xa6\x28\xef\x85\x64\x1b\x61\x3d\x29\x2e\xa0\xe7\x40\xc5\x01\x5d\xab\x48\x67\x39\xd6\xae\xc3\x4f\x96\x5c\x26\x45\xda\x7a\xdb\xc1\x55\x79\x50\xa1\x5c\xd7\x28\x5d\x40\xb3\xac\x69\xd2\x5c\x21\x4b\xb0\x8b\x5c\xbd\x67\x35\x6b\x55\xae\xf3\x68\x79\x05\x6b\x72\xfb\xcf\xb7\x0b\x75\xb5\xd4\xb6\xfc\x3e\x9b\x6f\xf5\x00\x8b\x47\x3a\xf4\x8d\x8d\x65\x9f\x6b\x21\x99\x8e\xec\xed\xe7\x36\xe6\x57\x9e\x3d\x42\xe2\x63\xdf\x4d\x70\x7f\x78\xf7\x77\xdf\xef\x4f\x8f\xb4\xda\x2e\x58\xb5\x6b\xae\xe2\x04\x34\xeb\xf3\xca\x09\xe4\xf1\x3e\x7c\x63\xfd\x84\x76\x15\x37\x8b\x95\x9c\x47\x35\xa0\xfd\xbe\x71\xaa\x20\xf4\xbb\x5e\xa8\xfa\x94\x32\x6e\xbe\x09\xaf\xe9\x4f\x76\x52\x27\x72\x1b\xb6\x7d\x09\x2e\xe5\xea\x1b\x70\xef\x3f\xd4\x2d\x65\x44\x5b\x91\xce\x2f\x07\xfe\x3a\x72\x33\x02\xce\xd6\x18\xb3\x90\x5c\x6e\xa6\x48\xbc\x0c\x73\x7e\x90\xec\x41\x02\x85\x8c\x7d\xe7\x8a\x2f\xbe\xfb\x57\x5b\x3e\xbf\x63\x4b\x18\x6b\xe0\xa8\xd0\x51\x54\xa4\x90\x90\xa3\xa0\x01\x13\x78\x36\x0d\xe1\x00\x9d\xe0\x89\xec\x60\x14\xe8\x3e\x35\x79\x0f\x2e\x4a\x54\x7a\xa9\x7b\x08\x0e\xa0\x0c\x9b\x3b\x0b\x89\x2f\x3c\xcd\x72\x96\xe5\x62\xdb\x68\x95\x4a\x4e\x57\x59\x69\xf0\x08\xb7\xcb\xeb\x1c\xf6\xf4\x75\x07\xd8\xe8\x49\x70\x91\xfb\xd3\xdd\xcd\x35\xdb\xf2\x1d\x20\x92\x72\x4d\x12\x91\xc0\x20\x54\xdd\xbf\xfb\x66\xa0\xfc\xf2\xe5\xcd\x86\x63\x4a\x30\xc4\x96\xa8\x21\x77\x12\xb0\x15\x3b\x04\x6b\x86\x96\xa4\xd9\xca\xa9\x4e\xce\xb6\x09\x57\x02\xd9\x5e\xe1\xfd\xc7\xac\xf2\xf8\x30\xcb\xe8\xf2\x0d\x84\xe3\x80\x0e\xc0\x45\x9e\xd6\x42\x5a\xa8\x26\x44\x67\x59\x3c\xf1\xa8\xc4\x62\xab\x8d\xe8\x84\x5b\x7d\x40\x0e\x58\x1e\x99\x6d\x82\xc5\x85\x36\x59\xea\xf2\xed\x3c\x03\x28\xdc\x80\x89\xea\x56\x7a\x9c\x29\x2b\xe4\xa5\x9f\x33\x16\x63\xf9\x65\x21\x33\x14\x48\xc6\x50\x34\xc0\x52\xc8\xbe\x60\xce\x3c\xe5\x2a\x33\x13\x0a\xd1\x34\xf1\x24\x14\xab\x17\xf3\x4d\xdf\x5d\xb9\xcc\x32\x4e\x12\xa9\x47\xb4\x0c\x7d\xe0\x98\x1d\x73\x81\x69\x94\x1e\xdc\x4f\xcc\xfa\x81\x6f\xbb\x80\xe3\x47\xb7\xb8\x6f\x96\x5c\xf1\x79\xd5\xeb\x04\x51\x34\x20\x94\x2f\xa1\xc7\xc3\xd1\x7b\x50\x47\x9a\x9f\x46\xa6\xc6\x01\xd2\xea\xa7\x29\x06\x18\x60\x7b\x02\xe6\x12\x87\xea\x70\xfe\xb2\xd9\xe5\x40\xd7\x8d\x12\xbe\xf0\x72\x63\x76\x27\x04\xfb\xd9\xa9\x00\xff\x4c\x72\x10\x00\x54\x03\x19\xe7\xb6\x71\x9d\xaa\xa5\x3e\xce\x18\xa4\xab\x1a\x10\xea\xa8\x51\x69\xee\xe7\xb1\x50\x2b\xa8\x66\x50\x2f\x5b\x82\xd7\xf8\x5e\x7b\x80\x55\x1f\xfd\x9d\x9c\x80\xf9\xb6\xa7\xe6\x7c\x86\x29\x3e\x4c\xad\xb6\xb4\x48\x72\x10\x46\x06\xaa\xbd\x47\xa5\x9f\x15\xfa\x02\xf4\x24\xf6\xda\xec\x3f\x38\xc0\x80\x33\x8f\xb0\x55\x05\x5a\xc3\x37\xc0\xfd\x37\x71\xff\xcd\xee\x30\x4b\x81\x7d\x06\x72\xeb\x0c\x9c\x1f\xa2\xa5\x06\x6b\xfe\x7a\x32\x62\x3f\x8c\xd8\xc5\x88\x8d\xc7\xe3\x37\x23\x26\x78\xb4\xb6\x3d\xc2\x9f\x20\x66\x29\xe7\x2b\xd3\xb6\x13\x4f\xf7\x0f\x00\xae\x76\x73\x58\x99\x23\xd3\x18\x68\x1e\x48\xac\xfb\xc8\x83\x7d\x05\x2c\x63\x40\x3d\x20\x9b\xd1\x8d\xd6\x5a\xfa\x4e\x01\x38\x50\x44\x3a\xb5\xf0\xc2\x2c\xd7\xa9\x85\x4a\x3d\xf1\x94\x4b\x05\xd5\x5d\xbc\x0e\x14\xa5\x27\x07\x8c\x84\xe2\x0b\xdf\xc0\xfb\x4b\xe5\x48\x99\xcc\x30\xdd\xbb\xfe\xe7\xbb\xad\x8c\x60\x3c\x9f\x53\x99\xe7\xe6\x74\xce\x66\xea\x8e\xbd\xfd\x77\x36\xd9\x6e\x13\xc1\x26\xec\xef\xec\x07\xae\xb8\xe2\xec\x07\xf6\x77\x76\xc1\x55\xce\x13\x5d\x6c\x05\xbb\x60\x7f\x37\xc3\x66\xda\xbb\xd6\xe6\x38\xdc\x8d\x18\x67\xaa\x48\xf0\xd4\x7f\x6d\x61\x48\x6f\xdc\x7b\x71\x3f\x3b\x56\x81\x38\xd3\x1b\x3a\x0a\xff\xea\xa2\xe1\x99\x54\xab\x44\xe4\x56\xf7\xbb\x04\x18\xc3\x07\x9c\xc1\x9b\xbe\x9d\x29\x17\xcb\xfb\xab\xe9\xf1\x5f\xd9\xdf\xd9\x75\x91\x24\xa6\x4b\xc6\xd0\x98\x85\xf4\x96\x59\x00\xbf\x50\xe3\x67\xf9\x28\xb7\x22\x96\x1c\x20\xfc\xe6\xbf\xce\xef\x61\xb6\xe7\x85\x27\x78\x09\xf7\xb4\x23\x0c\xff\x2a\x2c\x5f\x43\xea\xb2\x1c\x6f\xbc\x9d\xfc\x8e\x9b\x5f\xf9\xa7\xc3\x3d\x22\x4f\x6f\x45\xfb\x81\x1c\x56\x24\x7b\x0f\xf9\xe9\x0f\x32\x01\x95\xc3\xd6\xb6\xd5\x70\x14\x84\x87\xfa\xb1\x46\x16\xe4\x0e\x4e\x7e\x87\xec\xc1\x3d\xdf\xd7\xe4\xd6\x98\xb3\x4b\x95\x6e\xe0\x4b\xfa\x6a\xff\x5e\x59\x21\xc7\x98\xfd\x53\x59\xef\xa1\x34\xc4\x5a\xf6\x12\xc6\xa8\x74\xf6\x81\x62\x17\x50\x27\x68\x2e\x32\x4a\x26\xe7\x66\xab\x9e\x5f\x6b\x65\xae\xad\x99\x5c\x21\x43\x01\x00\x58\x32\x60\x11\xb3\x4e\xc1\x7d\xd9\x65\x0d\xb6\x00\xf8\x07\xa6\x4b\x08\xaa\xca\x8d\x15\x30\x53\x90\xec\x66\xca\xfc\x82\x4e\x24\x00\x58\x4b\x47\xbd\x86\x4f\xb3\x12\x9c\xf4\x2c\x32\xc8\x41\xe3\x0d\x0b\xac\x4b\xb5\xf2\x88\x05\x47\xc5\x42\x47\x44\xc5\xaf\x03\x12\x17\x6a\xcd\x56\xf8\x22\x76\x6b\x21\x12\xad\x56\x66\x55\xb4\x19\x01\xbd\xe1\xf2\x18\x48\x43\xd8\x05\x6c\xac\xb5\x07\xe6\xb0\xa4\xaf\xd0\x94\x98\x73\x52\xc6\xfe\x7e\x4f\x2a\xc9\x2e\x22\xeb\x4e\x43\x7a\xb9\x96\x97\x38\xb2\x5e\xf4\x21\x13\x29\x70\x03\x62\x6e\xdd\x45\xfb\xf1\xe0\xf4\xf5\xb6\xf8\x46\xfd\x36\x55\x27\x24\xb3\x39\x14\x42\xd9\x04\x1b\x4c\x76\x41\xbd\x1e\xeb\xf1\x97\x44\x67\xbe\xa4\x86\x69\xa3\x60\x29\x7c\xcf\xb4\x46\x7f\x1a\x2a\x4a\x6a\x47\xef\x14\xc0\xb5\xcf\xc8\x51\x3e\xd7\x4b\x5b\xc3\xd7\xff\x4c\xaf\xb1\xc4\xf7\xc3\x47\x84\xcc\x90\x21\x9b\x7a\x7d\xe1\xb4\xe5\x1b\xb4\x9a\x53\x46\xa2\x5f\x67\xab\x03\x76\xa3\xde\xe3\xcf\x3f\xea\x44\x46\xdd\x70\x2b\x7b\x5c\x81\xb2\x7f\x0d\xbf\xb2\x10\x80\x3f\xa4\xf8\x0f\x75\x0a\x3d\xf4\x5c\x44\xb9\xcf\xb8\xd5\x5f\xee\x57\x88\x47\xe7\x1d\x1c\x23\xca\x6e\xd8\x40\xa9\xc8\xe5\xf0\xe0\x6c\x05\x8e\x2d\x20\x43\xc5\x58\x2b\x54\x71\x41\x6e\x3b\xe2\x14\x82\x2e\x8d\x3c\x18\xe8\xe7\xb5\x4e\xcc\x5d\x4c\xc5\xc4\x57\x36\x53\x5b\x91\x46\x3a\xe1\xb9\x31\xff\xcf\xc4\x49\x23\x93\xd8\x33\x8e\xbf\x06\x2c\x29\x20\xbe\xde\x90\xac\x8a\x70\x39\x66\xdb\x7c\xc7\xa9\x6b\x97\x9d\x95\x56\x3c\x2e\x02\x75\x3a\x70\x58\xd7\xb2\xff\x44\x20\x26\x1c\x0a\x62\x18\xa8\x64\x0b\xcd\xa0\x97\xfa\x33\x28\xc2\x0b\xe2\x87\x4b\x2b\xde\x64\x2f\x4e\x79\x65\x5e\x69\x99\x55\x87\x12\x78\xe7\xb0\x0e\x09\x01\x24\x99\x80\xee\x6c\x04\x47\x5f\xcc\xb3\x40\xd1\xa4\xce\x94\xcf\x8f\xbe\xca\x42\xbf\xac\x71\x9e\x91\x56\xcd\xc2\xcf\x46\xec\x55\xe9\x45\x5f\x01\x2f\x99\xd2\xf0\x3c\xca\x61\x95\x86\x06\x96\xeb\x88\xc9\x7c\xa6\x64\x86\x2b\x33\x15\x89\x78\x32\xbd\x0b\x83\xc5\x84\x75\xb1\x77\x67\xfb\xda\x80\x60\xe6\xb6\xf0\xd5\x29\x72\xc2\x26\x4c\x43\x7e\x2b\x0e\x81\xe9\x58\x64\xc6\x6f\x04\x2e\x69\xf1\xc5\x6c\x00\x09\xb9\x10\x84\x7f\xc4\x42\xd9\xfe\x01\x2a\x04\x45\xbf\x66\x6a\xba\x84\xea\x43\xa8\x79\x8c\x63\xbc\x85\x5a\x76\x61\x47\x36\x22\x29\x38\xac\xe9\x4e\xee\x04\xdf\x51\x15\x08\x77\x92\x78\x12\xe9\x2e\x87\xa0\x2e\x8c\xab\x12\x3c\x5f\x33\x99\x8f\x80\x25\xc6\x5a\xca\x99\xe2\x31\x89\x2a\x52\x73\x66\x68\x60\xdd\x77\xcc\x33\x7d\xbe\xd0\x4f\x5d\x8e\xed\xb1\xa8\x2f\xdc\xd5\xdb\x84\xab\x39\x9e\x20\xbf\x00\xee\x2b\x10\x6c\x6a\x4b\x75\x16\x8b\xb9\x5d\x62\xa7\xe9\xa7\xb3\xf7\xb7\x25\x19\x35\xe3\xc7\xda\x07\x8d\x70\x31\x78\x66\x4b\x7b\x3d\x71\x71\x1a\x42\x17\xa4\xcc\x66\x60\xfb\x5b\x01\x0f\x09\xe3\x15\x24\x82\x5d\xad\xfb\x30\x61\x76\x05\x7c\xab\xf8\xa4\x3e\x33\x5f\x39\x43\xaa\xd3\x3e\x1c\x1a\x53\xf3\x10\x0f\x82\xc7\xec\xe9\xd6\xcb\x42\x64\x5a\xe3\x28\x75\xa8\x8c\x7d\xdb\x20\xdd\x87\xb0\x7d\x81\x71\x38\x17\xe6\x69\x16\xe4\x0a\xef\x61\xba\x01\x5b\x79\xca\x18\x75\x59\xb6\xbf\x77\xd5\x2f\xf4\x6b\xcc\xa6\x8a\x59\x77\x6f\xc4\x5e\xe1\xc2\xca\x5e\x51\x08\x92\x54\xdd\x28\x77\x1e\xd3\xee\xa1\x3a\xc9\x2a\x14\x03\xd1\xea\x7e\xbb\x61\x26\xa8\x93\xdd\xe8\x45\xc7\xe5\x07\x09\x68\xf9\x43\x0a\xa2\x31\x8b\xb8\xc0\x06\xe8\x90\xc4\x6b\xf7\x0e\x9d\x76\xed\xa3\xd9\xfe\x85\x6d\xbe\x8b\xfd\x60\x7f\x68\x86\x68\x5b\xd0\x79\x6a\x3f\x67\x3a\x9d\x29\xdb\x1a\x85\x24\x33\x14\x00\xa8\x36\x15\xb0\xd3\x90\xcf\x1f\xac\x54\x00\x31\x58\xcd\x07\x90\x12\xf1\x14\x6c\x55\x2b\x00\xa0\x88\x85\xf0\x7a\x94\x63\x36\xf1\x4f\x33\x8e\x87\x59\xe0\x1b\x3c\xe6\xab\x34\x4d\x49\x62\x06\x45\xe6\x96\x15\x2a\x00\xd6\x67\x05\x70\x9b\x2d\x0b\x63\x8c\x02\x02\xb8\x99\x32\x83\xc7\x96\x12\x70\xbf\x34\x2e\x33\xf5\x41\x67\xb6\x8e\x3b\xf3\xe3\x61\x31\xa4\x34\x6c\xaf\x9c\xf4\x05\xfd\xe1\x1d\x1c\xda\x14\xf3\xaf\x68\xa1\x42\x45\x05\x91\x31\xec\x74\x91\xfa\x97\x8a\xb8\x9a\xa9\xff\x36\xc3\x83\x4a\x84\x4e\xc6\x53\x2f\x71\x0b\x5b\xed\x58\xf6\xfa\x67\x6c\xf4\xf5\xbf\xbe\xf9\xf9\x0d\xf2\x29\x14\x19\xa8\x0d\x8d\xca\x07\x88\xe3\x02\x2d\x92\x04\x32\xd1\xf6\x0d\x1c\x0d\x82\x7f\x04\xef\x82\xe5\xd0\xa5\x6e\xae\xca\x2e\x46\x9f\x8d\xde\xb5\x82\x7d\xf0\x79\xc2\x22\x9e\x47\xeb\x33\xeb\xcb\x91\x19\xb3\xa7\x1f\x4d\x1f\xca\x8e\x18\x4f\xab\x99\x0e\xd3\x5c\x38\xd3\x8d\x53\xf3\x2c\xad\x17\xf3\x0a\x00\xac\xb9\x2f\xad\xca\x50\x33\x17\x17\xa7\x17\xd2\xf4\x7e\x9e\xfb\xba\xd5\x12\xf1\x37\x4e\x8a\x92\x2b\xbe\x11\x31\x7b\x05\xb5\x3a\xaf\xec\xe4\xcf\xd4\x76\x31\x4e\x76\xcb\x9c\xc8\x85\xcc\xa0\x8c\x81\x6d\x7f\xcf\x29\x37\x8f\xeb\xd7\xa4\x3d\x83\xdd\x7a\xd1\x6a\xf6\x75\xdc\xd8\xb8\x27\xf5\x77\x58\x30\xc6\xe5\x46\xe7\xae\x0c\x11\x2a\x93\xa9\xf2\xec\x71\xc4\x16\x29\x57\x40\x3f\x1d\x87\x4e\x95\xdf\x9d\x70\x79\x46\xe6\x1e\xca\x58\x71\xc5\x93\x1d\x60\xc7\x47\x33\x85\x34\x47\x40\x4c\xb8\x8b\x12\x19\xa1\x70\x6f\xc5\x0f\x12\x4f\x42\xe5\x97\x54\xd7\x6f\x41\xea\xc7\xa6\x96\x1d\x4f\xc0\x51\x04\x80\xd3\xb2\xb7\xc3\x3d\x01\x82\x8f\xb0\x46\xa9\x00\xf0\xf6\x62\x17\x80\x5a\xdd\x02\x1f\x91\x7e\x07\x30\x41\xb1\xbf\x14\x0b\x9d\x58\x2a\xad\xe9\x3b\xa6\x53\xa0\x13\xce\x35\xfd\x49\xc6\x6d\xa7\x98\x54\xb1\xf8\x72\x54\x3d\x7b\xf7\x81\x64\xdd\x3b\xf3\x98\x80\xb5\xb6\xfa\xb2\xb0\x8b\x52\x61\x0e\x8b\xdc\xde\xe0\x6a\xdf\xca\xaa\x08\xbb\x49\x92\xaf\x01\xf6\x86\x80\x6b\x3f\xa8\x1b\xbe\x63\xd1\x9a\xab\x55\x70\x85\x06\x14\x92\xd8\xea\x14\x85\x62\x9e\x80\x38\x4a\xa7\xb6\x5e\x90\xaa\xe0\x08\xf5\xed\x02\xde\x08\xb6\xd4\xb6\xd4\x8d\xaf\x56\xa9\x58\x41\x09\xf7\x4c\x95\xea\x78\x81\x34\xcb\x32\xfe\xe2\x73\xba\xca\x20\x4f\xc3\x25\xd0\x76\x6b\xc9\xd3\x9d\x2b\x22\x23\x95\x25\x37\x74\xb5\x61\x1d\x31\x29\xc6\x23\xf6\xbd\x07\x98\x8a\x48\x2b\x57\x85\xd6\xfc\x0e\xdb\x4a\x68\x7a\x8f\x2d\x6a\x20\x1d\x68\xee\x3b\x7c\x56\xd3\x6a\x6a\x5c\x34\x9d\x65\x7c\x39\xcf\x8b\x01\xb6\x92\xf4\xf8\x2e\xcc\x8f\xef\xf0\xb7\x9d\x18\x6c\xbe\x35\xe6\xcd\x12\xbe\x98\xef\x1b\x0b\x6f\x9e\xed\x99\xf9\x9a\xc6\x7a\x6f\xa0\x33\xd1\xed\x81\xce\x53\xb8\x94\xb6\xaa\x7f\x7f\xac\x33\x69\xa9\x54\xef\x78\xa7\xa1\xa1\x4c\x0b\x46\x25\x98\x79\x56\xbd\x6e\x35\x58\x00\xa7\x60\xae\x53\xf4\xdb\x11\xb9\xe1\x0a\xe6\x4b\x46\xb2\xe9\x40\x28\xb1\x7e\x80\x2a\xe3\xd7\xba\x1b\xb7\xf1\x8d\x34\x0f\xff\x43\xcb\xbd\xd8\x7a\x26\x4d\x83\x1e\xee\x4f\x1c\xa7\x74\xe0\x39\xe5\x1e\x8f\x9c\xe7\x36\xb8\xa9\x53\xb9\x92\x8a\xe7\x3a\x65\xaf\x3f\x5a\xa2\xe0\x37\x8e\xdc\x1e\x46\xf1\x14\x66\xa2\x34\x44\x68\x26\x9a\xef\x5e\x80\x67\x16\xf1\x7c\x18\x6b\x53\x93\xaa\xf0\x5e\xbc\xbe\xf9\x56\x96\xf3\xcd\x36\x24\x1c\x74\x62\x77\x34\x32\x09\x0e\x02\xb3\x1d\x83\x18\x9f\xcc\x7c\x0d\xd6\x4c\x51\x64\x1c\xe7\x4d\xa7\x0d\x72\xf9\xd5\xb7\x04\x3f\x72\x7e\x20\x89\x06\x91\xef\x0e\xa4\x21\xac\xa6\x50\x6f\xaf\x6c\xc2\xc0\xdf\x0b\x4a\x8e\x36\xbc\x28\xf2\x9f\x65\x70\x6a\xe3\x15\xcf\x99\x0d\x73\x4a\x5a\xae\x80\x8b\x44\x17\x31\x23\xa3\x41\xe9\xd8\x74\x8c\xa7\x0f\x10\x12\x8e\xc7\x6d\xec\x4c\x03\xe5\xab\xdc\xfe\x86\xdf\x35\xaf\x70\xf8\xac\xc5\xc2\x75\x6e\x2d\x1a\xd9\x61\xb1\x27\x42\x22\x7c\xe0\xdb\x6e\xc6\x07\x6e\x6f\xce\x58\xe0\xe3\xcc\x9d\xf5\x02\xcb\x7b\xbf\x65\xb8\x5c\x34\x14\xd8\x91\x86\x05\xca\xac\x3c\x19\xac\xe7\x30\x90\xdc\xc0\xdf\x58\x4a\xd0\x65\x8f\x47\x3f\xce\x56\xb2\x76\x3f\x6a\xcb\x53\xa1\xf2\x39\x3c\x71\xd8\xc3\xe0\x21\x1f\xe1\xe7\x25\x87\xa4\x57\x40\xf0\x3f\xef\x35\xc6\x79\x2d\x15\xc2\x7f\xb1\x3b\x8a\x6d\x64\x56\xea\xd4\x9c\x3e\xaf\x25\x60\x4f\x82\x9c\x98\x9b\xb8\x96\xe9\xa2\x17\x3a\x60\xf4\x82\x17\x2a\x99\xce\x5e\x2f\xe4\x7b\x8f\xc2\x1f\xa6\x15\x0a\xf3\x50\x05\xa5\x31\x65\xf6\x6f\x7e\xcd\x61\x55\xb2\x4f\x47\x33\x9e\x33\x33\x7f\x09\xfb\x9b\x48\xb5\x2f\x0b\xc0\xa0\x45\xd8\x70\xa7\x3f\x7c\xb8\xc4\x16\xfa\xbb\x28\xee\x14\xaa\x9b\xc0\x5f\x88\x6d\x02\x6f\x96\x8b\x9d\x75\xf7\x5b\x52\x09\x5b\x11\xe1\x3c\x1c\x78\x6c\x06\x17\xbb\xc0\xbe\xdb\xd0\x97\x3b\x2c\xec\x06\x3d\x87\x7b\x2b\xf1\xb9\x6d\xf8\x96\x70\x5e\x04\x29\xad\x06\xf1\xc7\xf0\x12\xff\xf9\xd7\xff\x1a\xb7\xc9\xfc\x41\xd7\x87\xc2\x66\x5c\xe7\xdf\xa7\x52\xa8\x18\x92\x72\x3c\xae\xb3\xac\xab\x52\x94\xb6\x64\x9e\xcd\x32\x3c\x49\xf5\x5c\xf3\x39\x98\xcd\x71\x11\x7d\x85\xcc\xae\x37\xb2\x6e\xfb\x96\xf2\x3e\x6d\x47\x75\x36\x8f\x77\x8a\x6f\xea\xc2\x88\x2f\xda\xc7\x9d\x14\x49\x0c\x5d\xa4\xa7\xef\xcb\x4e\xc4\x22\x7a\x1c\xea\x13\x1c\x4c\x4d\x2c\xa2\x47\xf6\xe3\xfd\x87\x2b\x94\x04\x92\xd9\x4c\x5d\xf3\x5c\x3e\x89\x87\x34\x71\x61\x61\x34\x3e\x45\x9a\xd8\x3d\x52\xa6\xca\xc4\xea\xbf\x02\x74\xb7\x89\x57\xd3\x3a\x0e\x21\x93\xf1\x66\x77\xb6\x28\xa2\x47\x91\x9f\xa7\x5c\xc5\x7a\x83\xaf\x71\x9e\x15\xcb\xa5\xfc\x32\xce\x79\xfa\x66\x1f\xa6\x7f\xaf\x25\x3d\xe2\x92\x70\x8c\x41\xa9\x5f\x03\x9c\x50\x93\xb7\xcd\x32\x0e\xc5\xc5\x9d\x65\xf6\x3c\x91\xce\xa4\x40\xbc\xb1\xe5\x22\x32\xa6\x7e\x36\x3c\x61\xc0\xe8\x35\x1f\xac\x5f\xe9\x8a\xd5\xc6\x58\xd9\xa7\xfb\x36\x42\xf8\x51\xeb\xe4\xd8\x28\x21\x4f\xec\x26\x99\x83\xe2\xcc\x31\x2e\x38\x2e\x00\x77\xd9\x9e\xbe\x73\xf9\x2a\x47\x01\x49\xb1\x06\xa7\xf7\x06\x50\x0a\xea\x02\x00\x18\xa0\x13\x1d\x28\xcb\x6c\xdb\x90\xb0\x1c\x88\x16\x85\x36\x10\xe9\xe0\x94\xdf\x6b\x61\xcb\xa0\xfe\x97\xfb\x3e\x02\x4d\x56\xa5\x87\x83\x02\x08\xa8\x0f\x53\x79\x94\x0b\x26\x84\x74\x7a\x6e\x1c\x83\x67\xdb\xf1\x44\x55\x3a\x63\x73\xc8\xf3\x99\xa9\xc0\xcb\x41\x26\x12\x0b\xc7\x75\xa3\xd6\x14\x63\x28\x2d\xc3\xa3\x63\x0c\xc7\x70\xa6\x76\x06\xa1\xdf\x85\xea\x43\x90\x47\x8d\xf4\x66\x61\xee\xf9\x58\xde\x49\x81\x37\x70\xcf\x26\x96\x92\xca\x05\x49\xad\x9b\x85\x9c\xd8\x95\xb1\x77\x47\x43\xc8\xee\x15\x9a\xac\x7d\x57\x98\xd0\x27\x3e\x2d\xbd\x6b\x0b\xb2\xaf\xfa\x06\xd2\x5c\x67\x9f\xf9\x2e\x03\xa9\x26\x61\xac\xe2\x12\x83\x4d\xe5\xfe\x8f\x7c\x08\xc4\xd1\x9d\x91\xee\x61\x41\x0a\x6e\xf4\x2e\x12\x6b\xde\x45\x62\x45\xa9\x3c\x97\xc8\xab\xac\x79\x70\x7e\x99\xf8\x71\xda\x19\x3f\xc6\x04\xce\xff\x8e\x90\x71\x47\x60\xea\xc8\xf8\x58\x70\x4c\xa6\x3a\x12\x99\x4d\xb1\x43\xd1\x03\x98\x63\xf3\xec\x11\xdb\x70\xa9\x68\x1b\xe4\xa9\x31\x90\xb1\x58\x14\xab\x55\x6b\xd8\xe6\xdb\x8f\xff\x96\xf7\xc9\x3f\x7d\x7c\xae\x93\x0d\xe7\x14\x11\xb6\xa9\x7d\x12\xa6\x8d\x8d\xaf\xfc\x75\x82\x6a\x27\x8a\x10\x4e\xfb\x44\x08\x2d\xee\x00\xca\x3f\xc8\xc5\xb7\xb9\xe1\x5f\x43\x87\x5f\x27\x74\xd8\x98\x1b\xa9\xf6\x10\x29\x07\xe6\xb2\xec\x00\x77\xf4\xf0\x40\xe6\x22\x47\x71\x07\xbd\x22\x91\xc2\x4c\xa8\x38\x63\x0b\x1e\xbd\x00\x95\x11\x9c\x3e\xc7\xc7\x28\xf6\x24\xbc\xef\xf4\x46\x30\x78\x54\x86\x4c\xe0\x8c\x2a\x6c\x46\x80\xa4\x32\x2f\xe8\xb3\xc4\x94\x83\x86\xe3\x0a\xb3\xd5\xb1\x77\x5a\x5f\x2b\xf1\xcc\xcc\x69\x30\x0a\xa1\x25\xc1\xf4\x80\x44\xc4\x1b\x52\x19\xf7\x38\x54\x57\x4e\x9c\x8a\x15\x4f\x63\x40\x3f\xd3\x96\x4c\x78\xf4\x68\xfe\x1d\xfa\x47\x4f\x24\xf8\x8b\x65\xab\x45\x48\x96\x6f\x4d\xaa\x08\x15\x9f\x09\x69\xe3\xfb\x87\x3f\xcf\x18\x8f\x52\x9d\xe1\x2d\xde\xa9\xa0\x41\xf5\x1d\x38\x88\x4f\x32\x2e\x78\x82\x4f\x6c\x8d\xfe\xf1\xec\x28\xf6\xdd\x49\x20\x82\x20\xbe\x6c\x13\xae\xca\x7b\x12\x5f\x17\xf8\x33\x64\x67\x89\x09\xd1\x40\x7d\x55\x3a\xbb\x50\x39\xd8\x6f\x2b\xf4\x3e\x53\xc1\xe3\x5d\x48\x96\x23\x15\xc9\x81\xf2\x78\x23\x95\x99\x7a\xab\x71\xe3\xec\x2b\x34\x1d\xf1\x04\x41\x60\x40\x05\x9f\x24\x95\xad\x9f\x31\x25\x8c\xcb\xc2\x53\x99\xec\xc0\x4b\xdd\xa6\xe2\x2c\x78\x4e\xb0\xbf\x09\x83\x2e\xb3\x99\xb2\x85\xdd\x45\x26\x96\x45\x82\xbe\x2c\xdc\xf6\xdc\x0b\xd0\x3e\x7c\x98\x8e\xcc\x31\x96\x13\x01\x73\xf0\x60\x94\x35\x39\x05\x9e\xb7\x7e\xcf\xea\x15\xf3\xf6\x24\x4e\x29\xc0\x0d\xd7\xfa\xd9\x16\x1d\x3c\x73\x8f\x2a\x6b\x3b\x4b\x4e\x16\xe7\xec\xf6\x6a\xec\x7d\xc2\xee\x4a\x1c\xf4\xb2\x74\x37\x7d\x26\x62\xb7\x13\xa5\x82\xd7\x21\x45\x30\xc2\xa0\x88\x98\x15\x19\xd6\x2e\x98\x39\x04\x6b\x6d\xaf\xcd\x58\xcd\x61\xd5\xe4\x98\x7b\x3b\x99\x69\xc5\x66\xc5\x6f\x7f\xfb\x3b\xc1\x7e\x4b\xf2\xb0\x60\x65\x30\x42\x0d\x34\x4e\xd8\x3a\x18\x28\xf7\x00\x81\x1c\x4f\xb5\x19\x61\x4d\x20\x2c\x5b\x39\x09\x30\x26\x1e\xad\x59\x56\x2c\x10\xa3\xc3\x29\xc8\xc9\x95\x63\x49\xbc\xd2\x00\xb7\xc1\x73\xcc\xf6\x7e\x40\xb0\xe0\x23\x9d\x2f\x36\x10\x10\xe0\x04\x61\xa0\x43\x51\x29\x18\x14\x7c\x49\x30\xe0\x1f\x41\x59\x6a\xc4\x7e\x94\x4f\x62\xc4\xee\xb6\x3c\x7d\x1c\xb1\x77\x18\x6e\xfd\x93\x5e\xec\xbd\xff\x9f\x22\x06\xe6\xdc\xd4\x63\x35\x54\x31\x9a\x34\x0a\xb8\x41\x83\x10\x7f\x3d\x5a\x63\x11\x16\xa0\xd5\x83\x22\xe5\xfb\xf4\x73\x5a\x09\x64\x4f\x75\x8b\x69\x87\xf5\xb5\xde\x69\xaa\x56\xda\x9f\xa7\x54\x35\xd5\x84\x34\x31\xe7\x18\xac\x44\xf3\xe2\x67\xe0\x99\xe8\xd4\x55\xf6\x65\x14\x7e\xc6\x55\x81\xf8\x3b\x3c\x91\x2b\xb5\x70\x7d\x1d\x2f\xfb\xe0\xf9\x56\xeb\xa4\xd1\xff\x3a\xe9\x00\xd6\xa2\x9d\x7d\x07\x6f\x8a\x35\x04\x59\xe8\x95\xd8\x51\xf4\x91\x33\x1f\x67\xc3\xa0\x1a\x90\x01\xc0\x6a\x8a\x0b\x48\x22\xf8\xe1\x08\xe5\x8c\x8c\x59\x41\xd4\x23\x3a\x22\x56\xfd\x8e\x5b\x0f\xd1\x38\x51\x14\x42\x0c\xd1\x76\xb5\x98\x5e\x56\x7f\x4e\x8b\x5b\x08\xed\xce\x65\x53\xe5\xff\xd0\xcd\x05\x38\xe2\x7a\xa0\x1e\x7b\x6e\x0d\xb8\xc5\x9d\xef\xe3\x3d\xb4\x45\x76\xf3\x28\xe1\x59\x4f\x24\x5b\xa3\xdd\x99\x52\x43\x17\xd0\x4e\x7f\x9b\xf9\x23\xc4\x54\x37\x3d\x0f\xcc\x99\x9a\x38\xde\x3f\xef\x6a\x39\xf7\x10\xcd\x2c\x3a\xc6\xb5\xa9\x41\x30\xbb\x27\x89\x1c\xb1\xac\x88\xd6\x00\xd7\x2f\xdb\xa9\xd0\x6e\xd5\x77\xec\x68\xa6\x8c\xb3\x82\xaa\x27\x1c\x12\xc2\xcf\x40\x90\x2f\xff\x26\x9c\x37\x44\xa8\xd0\xd0\x01\x5a\x70\x33\x35\x5a\x35\x3a\x8b\xb6\x72\x82\xa7\x8f\x22\x0e\x42\x7d\xc5\x36\xe6\xb9\xf1\x9e\xdd\x21\x07\xeb\xd7\x11\xa6\x5a\xef\x33\x0b\x5f\x2c\x74\x96\x2b\x96\x36\x91\x4b\x11\xed\xa2\x1a\x11\x4a\x09\x86\x71\xba\x98\xf2\x61\x21\xd5\x2e\xc2\x8c\xe6\x9b\xf2\xa7\x5a\x81\x37\x6b\xcb\x5d\xff\xef\x44\xac\xb5\x70\x36\xfc\xb3\x47\xc5\xf6\xa4\x99\x7f\x05\x9f\xfd\x53\x46\x90\xba\xe9\x1a\x7e\x13\xfe\xd3\xda\x2f\x8b\xef\x82\x1b\x2b\x79\xcd\x8d\xa8\xb2\x6f\xab\x40\x55\xc6\xe1\xbe\x41\x96\xcd\x96\x44\xfc\x9e\xad\x40\x65\xc0\xb1\x2b\x51\x1e\x00\x4a\xa7\x9f\xda\xf1\xba\x48\x74\x56\xa4\xdd\x9b\xff\xb6\xdc\x6b\xfb\xf4\x06\xca\x46\x58\x6c\x9b\x85\x80\xea\xf3\x2e\xf8\xc8\x3e\x47\xc1\xdc\x97\xaa\xbf\x27\xbc\xd5\xb3\x60\x11\x42\xe5\x5b\x34\xac\x6a\xbf\x0b\x62\x20\x70\xf2\xae\x44\xe8\x05\x54\x0e\xc7\xd2\xe2\x2a\xe5\xfb\xbe\x29\x4c\x77\xe3\x1d\xac\x42\x13\x54\x0a\x97\xf5\xca\x90\x9e\x22\xfb\xf0\x91\xe7\x6b\x0c\xe4\x6c\x74\x4e\x62\xe2\xc8\x57\x82\x30\x1e\x4c\x49\x2c\x12\xbd\x00\x59\x3a\x50\x8d\x6f\x5b\xe7\xb4\x38\x7b\x0d\x5d\x7d\xc2\xfa\xac\x6d\xb3\x1f\xa0\xe6\x2f\x15\x19\x50\x3f\xd4\x73\x7e\x7d\x11\xb2\xc3\x82\x4d\xf5\xee\x1a\xb3\xf5\xae\x16\x6c\xaa\x73\x85\x1b\xab\x0e\x70\xc9\xcb\x03\x6a\x24\x2e\xc3\xba\x39\x73\xbc\x11\x6d\x2a\x25\xd5\x91\x39\xb1\xf2\xbe\x56\xf7\x73\xa6\x26\xf8\x49\x49\x25\xdf\x69\x62\x38\x44\x22\x49\xbc\xb9\xfd\x87\x85\x74\x6c\x12\x62\xe0\xc8\xaf\x1f\xf9\x1b\x17\x84\x47\x46\x50\xb7\xa6\x72\x99\x1a\x7f\x3a\x03\x77\x21\x2b\x16\x67\x9e\x22\x41\xa7\xe0\x60\x00\x83\xc6\x96\x83\xce\x13\x30\xa7\x9c\x35\x1c\x24\x18\x87\xf6\xdc\xf6\x96\x4a\x8c\x27\x64\xbe\xe0\x5e\x88\x35\xba\xee\xdd\x5d\x3b\xc6\xbd\x87\x28\x92\xad\x0f\x45\x73\xdd\x65\x2f\x4a\x97\xa5\x5f\x1a\xa0\xd4\x03\x01\xd4\xa2\x89\xf4\xcf\x6f\x27\x4a\x63\xd6\xc7\x4e\xdc\x97\xaf\x56\x76\xd7\x98\xcb\x21\x59\x8e\x76\x14\xe7\xd7\x05\x9a\xc2\x04\x66\x5b\xfe\xac\x88\x9a\xa0\x9b\xdb\xf1\x20\xfb\xd0\xac\x0b\x6c\xec\x43\x0d\x9a\xe5\x2d\x85\x22\x92\x9f\x5c\x3a\x01\xa1\x51\xa0\xfa\xc8\x93\x24\xa4\xc9\xf6\xa1\xa0\x99\xf2\x01\x03\x73\xfc\x27\x89\xf9\x67\x54\x35\xdc\x44\x44\x11\x43\xed\x9c\x18\xd9\x3a\x7a\x62\xa0\xa2\x34\xd2\x19\x5e\xcc\xfd\xf5\x79\xdf\x6e\x3e\x95\x3f\xf9\x8d\x95\x10\xee\x49\xd8\xe2\x63\xe7\x8f\x62\x37\xb8\xaf\xcd\x29\x13\xaf\x2b\x07\x2a\xfa\xae\x96\x3b\xe2\x69\x6a\x01\xbb\xf4\x54\xc6\xd3\x5c\x2e\x79\x54\x8a\xa0\xb7\xf4\x73\x2d\xa2\xc7\xad\x96\x6a\xb0\x2d\x0a\xfa\x63\x4e\xa4\x5c\x64\x39\xf3\xad\x39\x38\x72\x2f\xfe\xc6\xd2\xc1\x8c\x2f\x92\x01\x2a\xc1\x22\x16\x3d\xbf\x0e\x67\x4e\x38\xaf\x7d\xd9\x9d\xfa\x2a\x23\xfc\xd9\xf0\x02\x61\x99\xee\x78\x25\x5a\x8d\xfa\xd1\x5c\x0a\x68\xf3\x5a\x21\x47\xcf\xc1\xe6\xac\xc4\x4a\xd5\x38\xa4\x20\x3f\x03\xb2\xf7\xc7\x8c\xe1\x81\x05\x73\xc3\x98\x9b\xb1\x9b\x03\x39\xf4\x6b\x02\x57\x19\xb4\x82\x37\x9d\x98\xa8\x7d\xf2\x2a\x1b\x05\x0c\x21\x96\xad\x3c\x59\xe2\xf1\x8a\xee\x83\xc5\xc6\x6f\x44\x2c\x8b\xaa\x6c\x4a\xa9\xc4\xea\xd7\x2b\xf8\xff\x7f\x57\x70\x40\x9d\xbc\xe4\xfd\xbb\xb9\x78\xef\xd7\x13\xf8\xdb\x3a\x81\x91\x03\x0b\xab\x12\x86\x0c\x2d\x75\xf5\xd6\xff\xfc\xb8\xc1\x15\x2c\xe8\x49\x36\x60\x9c\xbf\xa2\x07\x11\x3c\x96\xb6\xc8\x40\xe3\xd1\xdb\xe8\x76\xe7\x5a\xbd\x8f\xe2\xef\x0b\x41\x61\x5a\x6d\xfb\x86\x01\xb7\x3c\x5c\x3a\xe6\x9a\xd6\x3b\x58\xdb\x5e\xfb\xfb\x4d\xa5\x9c\xfa\xf8\x20\xc6\x32\xba\x24\xd4\xb5\xb5\x88\x4a\x60\x32\xb6\xc3\x32\x06\x9c\x8b\x3c\x7f\x95\xb9\x51\x2f\x5b\x40\x8b\x7e\xbc\x92\x59\xfe\x53\x45\xd1\xe7\x30\x49\xa0\x17\xc3\x4d\xd8\xae\x62\x37\x83\x5f\x74\xa6\xfb\x6f\xcb\x09\x79\xe3\x8e\xe0\x9a\x03\x52\x26\xab\xe1\x60\xfa\x3d\xe4\xbc\xfa\xd9\x8d\xd7\xcf\xe8\x6a\x3f\xa7\x7c\xbb\x15\xa9\xcd\x32\xd7\x80\x00\x20\x88\x00\x4f\x01\x45\x93\xb5\x40\x59\xb5\xca\x91\x6a\x4c\x49\xa5\x69\xf8\x1a\x0c\xdd\xb8\x79\xe6\xae\x8b\x24\x69\x9d\xb9\xfd\x3c\xeb\xd7\x0f\x57\x57\xf3\x9f\x26\x57\x0f\x97\x9d\xbc\xe5\xc1\xd7\x5a\xc7\xc4\xf5\x84\xc6\xc4\x2b\xa3\x98\xc7\x0a\x2b\xed\xa6\xfd\x5b\xe3\x7d\xa5\x48\x92\x32\xa7\xfd\x4c\xfd\x4c\xed\x00\x64\x0f\xf5\x7a\xcc\xb8\xb1\xce\x81\x2b\x3f\x1f\xbe\xf6\xb3\x69\xfc\x67\xfc\xed\x19\xf3\x2f\xf1\x16\x94\x57\x48\xd1\xa1\x79\x5c\x09\x0f\x7c\xc4\x76\x40\x80\x58\xdb\x76\x38\xb5\x6a\xc7\x61\xdb\xe3\x41\x01\x5f\xa0\x88\xad\xd8\xc6\x49\x76\x07\x8e\xdd\xcf\xe5\xd8\xad\xb3\xe5\x31\xde\x08\xa0\xdd\x11\x6a\x2d\x80\x82\x9c\x97\x23\x98\x29\xbc\xce\x9a\x3e\xe5\xba\xbd\x4f\x6c\x4a\xd8\x8b\x84\xab\x55\xc1\x57\x22\x1b\x31\xfb\xf0\x99\xda\xc8\xd5\x1a\x98\x19\xb3\x62\x4b\x50\x42\xbc\x00\x42\x11\x6f\x65\x09\x55\xb0\x84\x52\xcd\x14\xbd\x93\x5a\xf9\xe6\x11\x51\xf7\xa7\x3b\xf7\x3a\x04\x54\xc4\x86\x48\x2e\x42\xcd\x14\x4e\x2e\xd2\x3f\xdb\xa0\x16\xf8\xcb\x3c\xaf\x2e\x5d\x0e\x72\x62\x28\xa9\x68\x6c\xfa\x0a\xc2\x6b\x33\xe5\x8a\x80\x10\xf2\x48\xef\x10\xd0\x0a\x63\x97\xf6\xdb\x13\x3b\x19\x76\x4f\x50\xdf\x9a\x57\xfd\xd1\x67\x80\xd9\x70\xf3\x01\xda\x70\x75\x33\xd6\xf3\x6a\xc2\x03\xc3\xd1\x56\x19\x0a\x95\x5f\xcd\xbd\xb1\xef\x85\xdf\x69\x05\x2c\xe8\x62\x91\x0c\xe8\x12\x7e\xbf\xb3\x53\x68\x92\xbb\x3b\xd5\x23\xa2\x7d\x5b\xd9\x5a\x66\x99\x76\x3d\x76\xa1\x75\xcb\xbc\x9c\x30\x36\x5c\xea\x14\xfd\x60\xdf\x60\x14\x51\x7e\xc8\x7a\xe9\x51\xae\x51\x1d\x22\x6b\x7d\xba\x3a\x94\xc8\xec\xa0\xee\x78\xff\xa9\x77\x8f\x9c\x87\x40\x87\xdd\x20\x0b\x4b\xe7\x5c\xc9\xc0\xb6\x98\x49\x0a\x0d\x5a\x91\x35\x89\xe6\xc5\x6c\x1e\x54\x40\x33\xeb\x7f\xe4\x16\xd1\xc8\xcf\xdc\x08\x3a\x19\x15\x69\x66\xcc\x25\xd9\x3b\xb2\xda\x3a\x65\x7c\xa6\x2c\x5b\xaf\x35\xc7\x13\x0b\xb9\x48\xdd\x5f\xb1\x04\x66\x8b\x6c\x97\xe0\xb1\xe6\x4c\x2b\x61\xad\xe1\x4c\x59\x65\xbe\x11\xe3\x8b\xcc\x0a\xde\x71\xb5\x73\x2a\x74\xd2\x49\x8c\x70\xc5\x00\xcb\xb2\xdf\xe6\x55\xdc\x80\xd2\x39\xff\x1b\xf3\xbf\x7f\xfc\xe6\xff\x05\x00\x00\xff\xff\x7b\x2f\x4e\xbb\x50\x92\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x79\x73\x23\x37\x96\x2f\x0c\xff\x3f\x9f\x02\xb7\xfa\x46\xd8\xee\xd6\x62\xbb\x67\xfa\xed\xd1\xc4\x8d\xf7\xa1\x25\x56\x59\xd7\x2a\x49\xad\xc5\x1e\x3f\xc3\x0e\x1a\xcc\x04\x49\xb4\x32\x81\x34\x80\x94\x8a\xee\xe8\xef\xfe\x04\x0e\x96\x44\x6e\x64\x72\x91\x44\x95\x73\x26\xa2\xad\x62\x66\x62\x3d\x38\x38\xeb\xef\xfc\xf3\xdf\x10\x7a\x27\x9f\xf0\x6c\x46\xc4\xbb\x13\xf4\xee\xdb\xa3\xaf\xdf\x1d\xe8\xdf\x28\x9b\xf2\x77\x27\x48\x3f\x47\xe8\x9d\xa2\x2a\x21\xfa\xf9\x34\x59\x28\x42\xe3\xe4\x58\x12\xf1\x48\x23\x72\x8c\xe3\x94\xb2\xa3\x4c\x70\xc5\xe1\x43\x84\xde\x3d\x12\x21\x29\x67\xfa\x75\xfb\x27\x62\x5c\x21\x49\xd4\xbb\x7f\x43\xe8\x5f\xd0\xbc\x8c\xe6\x24\x25\xf2\xdd\x09\xfa\x1f\xf3\xd1\x5c\xa9\xcc\x35\xa0\xff\x96\xfa\xdd\xbf\xc3\xbb\x11\x67\x32\x2f\xbd\x8c\xb3\x2c\xa1\x11\x56\x94\xb3\xe3\x7f\x48\xce\x8a\x77\x33\xc1\xe3\x3c\xea\xf8\x2e\x56\x73\x59\xcc\xf1\x18\x67\xf4\xf8\xf1\x9b\x63\x1c\x29\xfa\x48\xc6\x09\xce\x59\x34\x1f\x67\x09\x66\xf2\xf8\x9f\x34\xd6\x73\xfc\x07\x89\xd4\xbf\xe0\x1f\x31\x4f\x31\x65\xe6\x6f\x86\x53\xf2\x2f\xdf\x0e\x42\xef\x66\x44\x05\xff\xd4\xb3\xcd\xd3\x14\x8b\x85\x5e\x91\xf7\x44\x45\x73\xa4\xe6\x04\x99\x7e\x90\x5b\x22\x3e\x45\x18\x9d\x08\x32\x3d\xf9\x45\x90\xe9\xd8\x2d\xf4\x91\x59\xe0\x0b\x18\xcd\x75\x82\xd9\x2f\x47\x76\x99\xa0\x65\x9e\x11\x01\x73\x3b\x8f\x75\xeb\x1f\x88\x1a\x40\xb3\xc5\xfb\xe1\xdb\x82\xc8\x8c\x33\x49\x64\x69\x78\x08\xbd\xfb\xf6\xeb\xaf\x2b\x3f\x21\xf4\x2e\x26\x32\x12\x34\x53\x76\x2f\x07\x48\xe6\x51\x44\xa4\x9c\xe6\x09\x72\x2d\x85\x83\x31\x53\xd5\x1b\x8b\x6b\x8d\x21\xf4\xee\x7f\x0b\x32\xd5\xed\xfc\xe1\x38\x26\x53\xca\xa8\x6e\x57\x1a\xfa\x09\x46\x5b\xfa\xea\x5f\xff\xd6\xf4\xf7\xbf\x82\x19\x65\x58\xe0\x94\x28\x22\x8a\x1d\x37\xff\x57\x99\x8b\xde\x23\xdd\x79\xb1\x8f\xd5\x81\x57\x66\x7b\x89\x53\xa2\xf7\x44\xef\x94\xfd\x02\xfe\x16\x44\xf2\x5c\x44\x04\x4d\x48\xc2\xd9\x4c\x22\xc5\x6b\x6b\x40\xa1\x05\x4d\x5e\xd5\x27\x82\xfc\x9a\x53\x41\xf4\x5e\x29\x91\x93\xca\x53\xb5\xc8\x60\x90\x52\x09\xca\x66\xe1\x52\xfc\xeb\xa0\xd3\xd4\x0c\x55\xae\x31\x33\xf3\x41\xeb\xc4\x46\x6c\xe0\x5e\x89\x30\x43\x13\x82\xf4\x59\xa4\x31\x11\x24\x46\x58\x22\x8c\x64\x3e\x91\x44\xa1\x27\xaa\xe6\x94\xe9\x7f\x67\x24\xa2\x53\x1a\xb9\x35\xdb\x9f\xb5\x81\x3f\x97\xaf\xcc\xbd\x24\x42\x0f\xfc\x91\xc6\x24\x46\x8f\x38\xc9\x09\x9a\x72\x51\x5a\x9e\xa3\x11\xbb\x9b\xeb\x75\x48\x27\x94\xc1\xc9\xd3\x6b\xe9\x28\xe4\x4f\x6e\xb9\xfe\x84\x74\x7f\x28\x67\xf4\xd7\x9c\x24\x0b\x44\x63\xc2\x14\x9d\x52\x22\xab\xad\xfd\x89\x43\xff\x38\x41\x87\x48\xaf\x33\x11\x0a\xd6\x9b\x33\x45\x3e\x29\x89\x0e\x51\x42\x1f\x08\xfa\xe2\x82\x4a\x85\x06\xd7\xe7\x5f\x1c\xa0\x2f\xcc\x79\x41\xc0\x9b\xbe\x78\x81\x15\xf6\x7f\xff\x3d\x38\x7a\x0a\xcf\xaa\x87\xee\xdd\x40\x9f\xe6\x5b\x73\x35\x14\x2d\xfc\xfd\xdf\xc2\x76\xec\x7e\x2d\xe7\xb7\x05\xb3\xb5\x9c\xb6\x2b\x7f\x85\x65\x2a\xb3\x56\xa9\x77\x68\x5b\xce\xaa\xdb\xad\xb2\x56\xf9\xb6\x78\xab\x9e\xc2\x73\xf3\xd7\x6d\x98\x2b\x56\x40\xf5\x98\x32\x73\x48\xfc\x99\x11\x52\x9f\x13\x47\xbd\x7b\xc2\x52\xb6\xe1\xb5\xc1\xcc\x02\x76\xeb\xb8\x68\xb0\x2a\x7b\x38\xef\x84\xa6\x74\xd5\xfe\x9e\xb3\x58\x8b\x5c\x96\xd9\xb1\x3c\x9d\x10\xa1\x97\xc1\xb1\x3d\x98\xed\x44\xb3\x41\x95\x0b\x46\xe2\x0e\xd3\xfc\x35\x27\x62\xb1\x64\x9e\x53\x9c\xc8\xb6\x89\x52\xa6\x88\x96\x6f\x2b\x8f\xa7\x5c\xa4\x58\xd9\x17\xfe\xf2\xef\xeb\x2e\x84\xe2\x0f\x64\xd5\xfe\x9f\x9b\xdd\x8c\xb0\x04\x32\x48\xf3\x44\xd1\x2c\x21\x28\xc3\x33\x22\xed\x8a\xe4\x89\x92\x07\xf0\x9a\x96\xa9\x89\x38\xf4\x37\x10\xf4\xe0\x6e\xde\x5c\xc2\x2f\x68\xea\x05\x48\x46\x3e\x29\x68\x69\xc4\xe0\xee\x85\x25\x0a\x6f\x94\x67\x58\xca\xcd\x68\x46\x72\xa1\xc6\x93\xc5\xd1\x03\xa9\xf5\xdb\x4a\x39\x98\x21\xac\x94\xa0\x93\x5c\x11\x3d\x6f\xdd\x86\xbb\x3b\x81\x3d\x9a\x0b\xba\x0b\x6b\x78\xbd\x09\xc7\x54\x90\x08\xe6\xb6\xce\x81\xf1\x5f\xe9\x79\x6b\xfd\x65\x61\x66\xff\x40\x16\x20\x8f\x34\xac\x80\xdf\xf2\x11\x1b\x31\x74\x88\xce\x86\xb7\xa7\xc3\xcb\xb3\xf3\xcb\x0f\x27\xe8\xbb\x05\x8a\xc9\x14\xe7\x89\x3a\x40\x53\x4a\x92\x58\x22\x2c\x08\x34\x49\x62\x2d\x73\xe8\xc1\x10\x16\x53\x36\x43\x5c\xc4\x44\x3c\xdf\x32\x56\x9e\x12\x96\xa7\x95\x7b\x05\x7e\x2f\x46\x5f\xf9\x42\x8b\x18\xfe\x51\xe9\xc9\xdf\x6b\x0b\x0c\x33\xd6\x7d\x07\xad\xbd\x98\x50\x13\xcd\x69\x12\x0b\xc2\x8e\x15\x96\x0f\x63\xf2\x89\x44\xb9\xb9\x93\xff\x59\xfe\x61\xac\x25\x53\x1e\x93\xf2\x2f\xa5\x7f\x14\xa2\xd0\xda\x9f\x7a\x2d\x75\xed\x2f\x41\xa7\xed\xf6\x1d\xfc\x42\xe3\xc6\xb7\xe1\x97\x15\x73\x70\xef\x2c\x19\xac\x7b\xa5\x75\x54\xee\x05\x2b\xf1\x35\xbe\x23\x88\x12\x8b\x31\x56\x8a\xa4\x99\x5a\x53\x5f\xc7\x28\xd1\x72\xe5\x32\x39\xf2\x92\xc7\x64\xe8\xfa\xfb\x05\x19\x71\x96\xc4\x68\xb2\xb0\x5c\x6b\x4a\x04\x61\x11\x69\x6f\xe1\x0e\xcb\x87\xa2\x85\x55\xc2\x68\xa9\x3f\xf9\x9e\x0b\xfd\xf9\x5b\x10\x48\x4b\x03\x7f\x09\x99\x74\xd3\x13\xf7\xd9\x59\x08\x36\xe4\x1f\xbd\x3d\x61\xfb\x95\xec\x6a\x7d\xe0\x02\xc9\x85\x54\x24\x5d\x69\x87\x78\x3b\x0b\x61\x2f\x88\x7d\x1d\x70\xe5\x8e\xfa\x1d\x9c\xfa\xf2\x8d\xdb\x1f\xef\x35\x96\x6c\x57\x56\xc4\x7d\x9f\xa7\xf3\xe1\x2c\x9f\xea\xad\xdb\xbe\xc0\x89\xf1\x26\xa6\x59\x92\x05\x77\x3d\xc8\x67\x32\x37\xb4\xee\x95\x5b\xed\x31\x0c\x60\x85\xa2\x59\xb6\x43\xfb\xf3\xa7\x3f\x0d\x2d\x34\xc6\x1c\xa7\xe6\x54\x06\xc6\x2a\x14\x71\x61\x64\xc1\xd8\x9e\x77\xa3\x6b\x0e\xee\x06\xb7\xc3\xbb\x13\x34\x40\x31\x56\x58\x1f\x70\x41\x32\x41\x24\x61\x0a\xf4\x78\xfd\xbd\x5a\xa0\x94\xc7\x24\x31\x1a\xe7\x7b\x2d\xf9\xa2\x33\xac\xf0\x29\x56\x38\xe1\xb3\x23\x34\x80\x7f\xea\x8f\xa9\x44\x38\x91\x1c\x61\x47\x56\x24\x76\x4d\x60\x16\x3b\xd6\x82\x51\xc4\xd3\x8c\x26\xde\x06\xef\x8d\x2b\x94\xc5\xf4\x91\xc6\x39\x4e\x10\x9f\x68\xae\xa2\x35\xe4\xe1\x23\x61\x2a\xc7\x49\xb2\x40\x38\x49\x90\xed\xd6\xbd\x80\xe4\x9c\xe7\x49\xac\xdb\x75\xa3\x94\x34\xa5\x09\x16\x5a\x05\x37\xa3\xbd\xb2\x6d\xa1\xbb\x39\xf1\x63\x85\x71\xe9\xd5\x4c\xf1\x03\x91\x88\x2a\x94\x71\x29\xe9\x24\x29\xce\xfc\xfd\x39\x82\x71\x9f\x5e\x9c\x83\x3e\x1f\x29\xc4\x0d\x0f\x75\x9d\x5b\xfb\x8d\xeb\x31\xc5\x8c\x11\xe8\x98\xab\x39\x11\xb6\x7b\xfb\xf2\x6b\xab\xe6\xf7\x97\xb7\xd7\xc3\xd3\xf3\xf7\xe7\xc3\xb3\xba\x6e\x7e\x37\xb8\xfd\xa1\xfe\xeb\x4f\x57\x37\x3f\xbc\xbf\xb8\xfa\xa9\xfe\xe4\x62\x70\x7f\x79\xfa\xfd\xf8\xfa\x62\x70\x59\x7f\x68\xc9\xaa\xb3\x9a\x1f\x8e\x6c\xcd\xb3\xd5\xdb\x34\x9f\xcb\xa6\x79\xf0\xf9\x1a\x35\xa7\x34\x01\x1d\xb4\xb3\x41\xd3\xdb\x10\xec\x97\x28\xc3\x52\x1a\xc9\xc8\x8c\xe0\x68\xc4\x3e\x72\xa1\x19\xd8\x94\x6b\x1e\xa1\xa5\x27\x25\xf2\x48\x51\x36\xf3\x1f\x9d\xa0\x51\xfe\xf5\xd7\x7f\x8e\x2e\x28\x7b\x80\xbf\xc8\x3e\x2e\x4e\x6f\xf1\xed\x2d\xbe\xbf\x2f\x8b\xaf\x16\x7d\x8e\x43\x43\xef\x6e\x43\x86\xb4\x70\xc1\xb2\x5c\x81\x28\xc1\x73\xa5\xff\xd4\x5d\x02\x79\x2c\x09\x1c\xea\x66\x50\xfc\x40\x94\x7f\x51\x8b\x36\x6f\xc1\x8e\xf8\x13\x17\x0f\xd3\x84\x3f\xf9\x81\x7f\x20\x4a\x8f\xfd\xc6\xf6\xd2\x87\x12\xf5\xa1\x44\xaf\x1b\x4a\xb4\x57\xc6\xbc\xe7\x67\x7e\x65\xcb\x9f\xe1\x80\x2d\x9e\xac\x56\x47\x55\x8b\x1f\x2a\x70\x33\xbd\x08\xd7\x2c\x3b\x73\x56\x70\xce\xd2\xcb\x6f\x85\x7b\x96\x06\xfd\xf2\x9c\xf3\x77\xe1\x6f\xe9\xdd\x29\x1b\x2e\xd4\x9b\x64\xb0\x1d\xef\x8e\x17\x73\x86\x3c\x3f\xc3\xaf\xc5\x36\xac\x13\xcc\xb0\x46\xf4\x42\xe7\x70\x85\x15\xf1\x09\x8d\x01\x09\x4d\x11\x08\xf5\x90\x83\xc6\x18\x83\xed\x82\x0a\x36\xbd\x9b\xba\x87\x09\x7c\x20\xaa\xf4\xf2\x5b\xb9\x9b\x4a\x83\x7e\xf9\xbb\xe9\x77\x1a\x1d\xd0\x87\x03\x3c\xe3\xd2\x7d\xee\x37\xda\xfe\x3a\xfc\x7f\x07\x1e\xfe\xde\xa5\xbf\xd6\x1a\x7d\x5e\x3e\xfc\xcf\xd5\x69\xff\x36\xbd\xf4\xbd\x5b\xbe\x77\xcb\xbf\x86\xff\xe4\xed\xb9\xe5\x9f\x57\x3d\x2d\x8e\xd7\xd8\xd1\x82\xd5\xd7\x82\x43\xf9\xaf\x0e\x4e\x1a\xf8\xcb\xa9\x7c\xeb\x06\x8d\xb7\xea\x70\x67\xc5\xf8\x86\x70\x84\x7e\xb1\x84\xb4\x42\x9d\xab\x7d\xf7\x16\xd4\xb9\xfa\xa0\x9f\x5f\x87\x7b\x35\xe6\xfb\x4c\x97\xe7\x1b\x61\x03\xeb\xdf\x96\x9f\xb1\x4c\xde\xcb\xe2\xcf\x9f\x8d\xbf\x37\x13\x7a\x3b\xb2\xf7\x2b\x5c\xbc\x1d\x6f\xdd\x9d\xe7\x64\x35\x5c\xb3\xc1\xed\xb4\x2a\xc3\xaa\xfa\x35\x25\xf2\xdb\x37\x79\xdf\xbe\x44\x92\x55\x7f\xe1\xf6\x17\xae\x6d\xaa\xbf\x70\x3f\xe3\x0b\x77\xef\xe0\x6f\xf6\x26\x02\xb4\x0f\x22\xef\x81\x31\xfa\x18\xf2\x1d\x2e\x4e\x1f\x43\xde\xc7\x90\xff\xce\x62\xc8\xb7\xd1\x9e\x36\xc5\xa2\x7c\x0d\x3d\xaa\x57\xa3\x7a\x35\x2a\xfc\xbd\x57\xa3\x7a\x35\xaa\x57\xa3\x3e\x73\x14\xd1\x5e\x87\xea\xbe\x10\xbd\x0e\xd5\x79\xa9\x7a\x1d\x6a\xc9\xe2\xf4\x3a\x54\xaf\x43\xfd\xbe\x74\x28\xf2\x48\x98\x92\x90\x8c\x16\x6a\x14\xef\x32\x2e\xdb\x35\xa1\x90\x3b\x34\x68\x41\xd0\x66\x39\x29\x0c\x02\x97\x7e\x41\x73\x2c\x11\x8f\xa2\x5c\x54\xce\x40\x55\x0f\x3a\x15\x04\x2b\x02\x2d\xe8\x0f\xdf\x82\xfe\x53\x9f\xee\x4b\xc5\xe0\x4f\x78\x5c\xa3\x76\x73\x10\x9a\x9e\x2c\x97\x47\x76\x36\xf5\x5f\x73\xd2\x4d\xfd\x7b\x46\xa2\x56\x58\x3e\xec\x98\xa8\x4b\xb9\x16\x1b\x11\x35\xb4\xf0\x56\x88\xba\x3e\xdd\xdf\x0d\x51\x37\x4d\x7d\x1f\x88\xfa\xc9\xe6\xf1\xef\x98\xb0\x6b\xf0\x00\x1b\x11\xb7\x6f\xe5\xad\x10\x78\xf3\xb4\x7f\x37\x44\xde\x36\xfd\xd7\x25\x74\x9f\x22\xd9\x99\xc4\xef\x04\x9d\xcd\xb4\x9a\x01\x1a\x9e\x26\xc5\xd5\x35\x82\x8a\xa4\xc0\x95\x64\xed\x5f\x7d\x0b\x24\xed\x07\x6b\xc6\xfe\xbb\xa1\xe5\xda\xbc\xf7\x84\x88\x8f\x05\x89\xf8\x23\xd4\x0b\xeb\x46\xcc\x37\x04\x28\x18\xf8\x75\x26\xc8\x23\xe5\xb9\x4c\x16\x87\x22\x67\xc8\x31\x7f\xe4\x9b\x37\xd6\xea\x27\x9a\x24\x88\x33\xad\x7f\x29\x2c\x94\x7b\xac\xf5\x6f\xc1\x53\x38\x15\x09\x96\x0a\x3d\x30\xfe\xc4\xd0\x14\xd3\x24\x17\x04\x65\x9c\x32\x75\x34\x62\xe7\x0c\xdd\x98\x31\x42\xde\xc0\x01\xca\xa5\x3e\x4b\x11\x66\x8c\x2b\x14\xcd\x31\x9b\x11\x84\xd9\xc2\x26\xe0\x16\x94\x81\xb8\x40\x79\x16\x63\xad\xf8\xce\x49\x35\x4a\xcf\x8f\x11\xcc\x77\x54\x22\x2a\x11\xf9\xa4\x04\x49\x49\xb2\xd0\x7d\x68\xda\x57\x1c\xd9\xf5\x31\x43\xb5\xe9\x7c\x44\x08\x2e\x24\x64\x1c\x4c\x16\xbf\x61\xa6\x28\x23\x08\x14\x25\x69\x4c\x73\x87\xe8\x82\x4b\x30\xdb\xfc\xf0\x57\x89\xa2\x24\x97\x8a\x88\x03\x34\xc9\x67\x52\x6b\x8a\x59\x82\xd5\x94\x8b\x54\x8f\x90\x32\xa9\xf0\x84\x26\x54\x2d\x0e\x50\x8a\xa3\xb9\x69\x0b\xd6\x40\x1e\x8c\x58\xcc\x9f\x98\x54\x82\x60\xdf\xbb\x7b\x88\xbe\x0c\x9f\x19\x02\x90\x5f\x1d\x40\xda\x21\x4d\xb5\xba\x1b\x0c\xbf\xd8\x71\xb3\x27\xba\x11\x12\xa3\x09\x89\x70\x2e\xad\x87\x41\x89\x05\x22\x9f\xe6\x38\x97\xb0\x77\x7a\x7a\x36\x67\x23\xe2\x69\x96\x10\x45\x10\x9d\x22\x25\x28\x89\x11\x9e\x61\xaa\x97\xee\x96\x2c\x01\x41\xf7\x44\x6f\x37\xd0\x52\xfd\x2f\xa0\x7e\xa7\x5c\x10\x14\x13\x85\x69\xb2\xd4\xeb\x64\xbf\xed\xb9\xdc\x5b\xe2\x72\xe5\x0d\xdf\x0b\x36\x67\x40\xfc\x77\x70\x69\x33\x6b\xba\x8f\x70\xb2\xe5\xfd\x7d\x63\x07\xd5\xd3\xf6\xdb\xa2\x6d\xb3\x6b\xfb\x43\xdc\x2f\x16\x83\xdd\xbd\xa2\x45\x51\xcd\xe2\x4d\xd1\xf4\x4b\x84\x05\xf4\x0e\xe7\xde\xe1\xdc\xba\x32\x6f\xd3\xe1\xbc\x37\x1e\xa3\xde\xe7\xfc\x4c\x3e\x67\x2a\x7b\xa7\x73\xef\x74\xee\xba\x40\xbd\xd3\xb9\x77\x3a\xbf\x5d\xa7\xf3\x73\xe2\x3e\xef\x14\xdd\xf9\x4d\x89\xd6\xbd\x58\xdd\x8b\xd5\x3d\x84\xb3\x9f\xda\xae\x58\x98\xfb\xfa\x5d\x4c\x12\xa2\x48\xbb\x3d\x8b\x88\x54\x6b\x0b\xe6\x7a\xa6\x4c\xcb\x71\x33\x41\xa4\xdc\x96\x21\xf9\x86\xdf\x26\x5b\xf2\xc3\xef\xa1\xe6\x7b\x3e\xd5\xf3\xa9\x4d\xa6\xb6\x3f\xa6\xd9\xe0\x30\xbf\x94\x6d\xd6\xf3\xdf\x2c\x6f\x97\xfe\xee\x8d\x1b\xb2\xf0\x8b\x1a\x0a\xd7\x52\xbb\xe2\xfe\x70\x5b\x3a\xdf\x92\x1f\x9b\xbe\xde\x26\x33\x36\x63\xef\x39\x71\xcf\x89\x7b\x4e\xfc\xb6\x39\xb1\x3b\xc9\xaf\xea\x22\x33\x7e\xba\x71\x96\x60\x36\xa6\xb1\x3c\xfe\x67\xa1\xcb\x3f\x97\x87\x4c\x1f\xa8\xd8\xa4\x98\xfa\x94\x4e\xf1\x8b\xfe\x24\x29\x0c\xe6\x1e\x33\x73\x85\x13\xcd\xd8\xd8\xaf\x13\xcc\xce\xe3\x37\xe1\x47\x6b\x9c\xfd\x4b\xf8\xd4\xb6\xe1\xe3\x58\x81\xa7\x03\x53\x66\x4c\x78\x45\x5e\x6d\xc9\x40\xb9\x1f\x27\x7c\x1b\xae\x1e\x4c\x2c\x60\xec\x8e\x5f\x07\x8b\xb2\x7f\xd3\xee\xfd\x3a\x7d\x2e\x61\xef\xb9\xe8\x38\xe1\xde\x73\xb1\xbf\x9e\x8b\xd7\x72\x47\xbe\xf0\xf1\x7c\x29\xb1\xae\x7b\x10\xbe\x89\x56\x83\xa0\xd6\x3c\x4b\x38\x8e\x97\xb9\x62\x0a\xc1\x2b\x04\x47\x59\x19\x89\x5f\x7c\xf6\x16\x84\xb5\x62\xb4\xbf\xb3\x48\xbe\xfa\xc4\xf7\x45\x4b\x79\xc1\x50\xbe\x66\x12\x5f\x43\x25\x79\x1b\xf8\xa9\xc5\x78\xfb\xd0\xbe\xde\xa2\xf4\xfa\x16\xa5\x3e\xb4\xaf\x57\x01\xf7\x4c\x05\xec\x43\xfb\xfa\xd0\xbe\x5e\x41\x5e\x3e\xed\x5e\x41\xfe\x2c\x42\xfb\x3a\x89\xda\xcf\x88\xbd\xb9\xbd\xd0\xdd\xcb\xdc\xee\xbd\x5e\xe6\xee\x65\xee\xcf\x54\xe6\xde\x8f\x15\xee\x05\xee\x5e\xe0\xee\x05\xee\x5e\xe0\xee\x05\xee\x9d\x2f\x63\x2f\x70\xbf\x64\x81\xce\x66\xa9\x7b\x45\x92\xcd\x5b\xf5\xe5\xf4\xe2\x76\x2f\x6e\xef\xb7\xb8\xbd\x37\x13\x7a\x3b\x65\x1e\xbb\xcd\xa7\x2f\x52\xde\x17\x29\xef\x8b\x94\x3f\x7b\x91\x72\xf7\x75\x87\x8c\x0f\x7b\xb8\x14\x56\xb9\x34\x80\x8f\x82\xcc\xa8\x54\xc0\xfe\xbb\xc8\x2b\xab\x13\x3d\xde\xaa\x9c\xd2\xa7\x7a\xf8\xa7\xbd\xd4\xd2\x4b\x2d\xbf\x53\xa9\x65\x8f\x62\xc1\xf6\x22\x63\x25\xc5\x2a\x9a\xe3\x49\x42\xc6\xde\xe8\x23\xbb\xea\xc1\x17\x54\x2a\x89\xa2\x5c\x2a\x9e\xb6\x5f\x2e\x1f\x5d\x0f\x03\xdf\xc1\x29\x67\x53\x3a\xcb\xcd\xdd\x62\xc0\x39\x83\x13\x5d\x48\x82\x8b\x8c\xac\xf2\x54\x35\xb4\xfe\x26\xae\xa5\xe6\xa1\xbf\xd4\xed\xb4\x8e\xe0\x5e\x18\xf9\xac\xd4\xad\x65\xad\xf1\xcd\xf0\xf6\xea\xfe\xe6\x74\x78\x82\x06\x59\x96\x50\x63\x77\x37\xa4\x40\x7f\xd3\x93\x42\x0a\xcb\x87\x62\x2f\x85\x21\x73\x83\x61\x0b\x86\x7e\x2d\x1b\xa3\x43\x74\x7a\x71\x7f\x7b\x37\xbc\x69\x69\xd0\x12\x0a\xe4\xad\x92\x34\x4b\xb0\x22\x31\x7a\xc8\x27\x44\x30\xa2\xa5\x1d\x8b\x74\x5b\x98\xff\x4d\xa3\xc3\xff\x1e\x9e\xde\xdf\x9d\x5f\x5d\x8e\xff\x76\x3f\xbc\x1f\x9e\x20\x47\x71\xba\x59\x3d\x2e\x3d\x8a\x78\xc1\x70\xaa\x35\x10\xfd\x43\x91\x29\xfb\x6b\x4e\x72\x82\xb0\x94\x74\xc6\x52\x02\x88\xc0\xa5\x16\xdd\x80\x2f\x06\xdf\x0d\x2f\xca\x2d\xcf\x49\x08\xbf\x8b\x12\x3c\x21\x89\xf5\x47\x80\x89\x5d\x13\x7a\x00\x55\x6c\x1c\x15\xb9\x59\xd5\xbf\xdd\x0f\x2e\xce\xef\x7e\x1e\x5f\xbd\x1f\xdf\x0e\x6f\x7e\x3c\x3f\x1d\x8e\xad\x54\x79\x3a\xd0\xfd\x96\x7a\xb2\xc2\x27\xfa\x35\xc7\x89\xd6\x4e\xf8\xd4\xe1\xf1\xa2\xa7\x39\x61\x28\x67\x40\x71\x46\xe5\xd1\x7a\x90\xef\x54\x9f\x32\x33\xa3\xeb\x8b\xfb\x0f\xe7\x97\xe3\xab\x1f\x87\x37\x37\xe7\x67\xc3\x13\x74\x4b\x12\x50\x0a\xdc\xa2\xc3\x2e\x66\x49\x3e\xa3\x0c\xd1\x34\x4b\x88\x5e\x0d\x6c\xb3\x89\xe7\xf8\x91\x72\x61\x8f\xee\x8c\x3e\x12\x66\xd6\x11\xce\x2c\xb4\xef\x84\xef\x71\xb0\x74\x57\x97\xef\xcf\x3f\x9c\xa0\x41\x1c\xfb\x39\x48\x68\xa3\x44\x39\x0e\xd6\xf9\xb0\x3c\x6c\xcd\x1c\xa0\x7b\x43\x44\xfc\x91\x08\x41\x63\x52\xa1\xa3\xc1\xed\xed\xf9\x87\xcb\x8f\xc3\xcb\x3b\x58\x31\x25\x78\x22\xd1\x9c\x3f\x81\x29\x1b\x66\x08\x16\xee\x47\x4c\x13\xe8\xcc\x6d\x16\x67\xe8\x69\x4e\xc1\xfd\x01\xc0\xcc\xbe\x67\xa3\x9f\x89\x9c\xbd\xba\x75\xb6\x74\xf0\xea\x6a\x4b\xf5\x24\xd5\xdf\xa8\x1c\x8b\x65\x2f\x94\xa8\xbc\xfe\xe2\x2a\x6a\xad\x7f\x51\x21\xb7\x76\x65\xad\x46\x2f\xed\x33\x2d\xf6\xba\xb3\xae\x56\x5e\xc3\x17\xbb\x66\x35\xe3\x8d\x5f\xa2\x2a\xeb\x0d\xf8\x3d\x97\xc2\x3e\x05\x39\x93\xbf\x58\xe5\x7e\x85\x69\x3a\xf8\xe2\x2d\x5c\xae\xe1\x70\xf7\xe8\x22\xbd\x09\xe5\x1a\x27\x1e\xa7\x44\xe1\x18\x2b\xac\xd9\xd3\x8c\xa8\x23\x74\xc5\xe0\xd9\x1d\x96\x0f\x07\xc8\x15\xa4\x40\x5c\xa0\x42\x70\x7c\x81\x6c\xc9\x37\x62\x93\x59\x5f\x99\xe9\x95\xf2\x5e\x29\x6f\x5e\x99\x3e\x72\xa7\x65\x85\x77\x75\x31\xae\x65\xc6\xdc\xdd\xfd\x65\x5a\x7c\xbb\x57\xd8\xcb\xda\x2d\x77\x7a\xa1\x99\x62\x28\xfd\x6d\x65\xfe\xaf\xbf\xad\xfa\xdb\xaa\xbf\xad\xf6\x60\x85\x5f\xdd\x06\xdc\xc0\xdd\x5f\xd5\x08\xbc\x4a\x3b\xdd\x18\xc5\xa8\xd0\x46\xd7\xc1\x31\xfa\xa5\x2b\x5c\x51\xf1\x0d\x7d\x1b\x66\xdf\x60\x92\x2f\x91\xa9\xb0\xd3\xcb\xdc\x84\x00\xf7\xfa\xe9\x33\xde\xf8\x3d\xa8\xd4\x4e\x41\xa5\xf6\x63\xae\xcf\x92\xd5\xb0\x7b\x53\xf4\xdb\xc8\x64\xe8\xd1\xa3\xfa\x58\xfd\x3e\x56\x1f\x7e\xef\xd1\xa3\x76\x47\xad\xcf\x2b\x5d\xf3\x98\x8c\x2b\x35\x3e\xfc\x3f\xc7\x55\xcf\x4f\xe9\x49\xe8\x06\x2a\x3d\x28\x92\x17\xa0\x75\x1a\xef\xb2\x2e\xc8\x25\x8f\x49\xe7\xda\x20\xa5\x97\xf7\x5c\x06\x77\xf3\x34\xb2\x78\x69\xe0\xcf\x2c\x89\xb7\x6c\xf9\xe7\x68\xd8\x69\x20\xe0\xde\xca\xb3\x72\xa1\x3e\x57\x80\xe8\x82\x43\xbd\x21\x4f\x45\x37\x36\xee\xc2\x54\xc6\x2d\xcc\xbc\xf9\xb9\x67\xe9\xcd\x8f\x9f\x07\x06\xa2\x3b\x47\x07\xb3\x4a\xf8\xf6\xdb\xb0\xab\x84\x23\x7e\x09\xcb\xca\xd2\xbd\xff\xec\xb8\xfa\x32\x4a\xee\x79\x7b\xc7\xe5\xfa\x5c\x39\x7c\x8f\xda\xb0\xcc\xd6\xd1\xc3\x22\xf4\xa6\x96\xfd\x99\x70\x6f\x6a\x79\xd3\xa6\x16\xe3\xa2\x1d\x67\x58\x10\xa6\x1a\x44\xea\xea\x75\x02\xaf\x87\x69\xb4\x4e\xea\x80\x06\x90\x96\x68\x91\xbd\x90\xfd\x55\xf5\x79\xd9\x5e\xac\x60\x10\x24\xb7\x1c\xff\xb3\xf8\xdb\x0b\xeb\x25\x50\xef\x25\xd1\x49\x06\xbe\x59\xea\x3b\x3a\xb7\x81\x4a\xdb\xa7\xbf\x60\x55\x12\x05\x13\xf2\x48\x92\x95\xf1\x4c\xd7\xe6\xed\xb7\x95\xf5\x52\x1b\xf4\xcb\xc6\x36\xd5\x37\xbe\xdb\x01\x72\x3b\x43\x4d\x06\x47\x90\x26\xa0\xa5\x51\x3e\x2d\x2e\x06\x89\x9e\x68\x92\x40\x92\x38\x24\xb1\xb4\xdd\x00\xbf\xbb\x88\x87\xd6\x9d\x7f\xd5\xb8\x87\x26\xee\xd0\xc4\x12\xba\xd8\x53\x77\x95\x06\xe7\x88\x0d\x32\x94\x40\x1b\x5a\x61\x80\xfd\x3c\x38\xc1\x07\xa2\x5e\x8a\x0d\x6c\x7a\xf6\x97\x9e\x7b\x41\xa6\x44\x10\x16\x91\x3d\xf4\xb6\xaf\x13\x06\xf2\x93\x99\xa4\x8d\x01\xf1\xd9\xa1\xe1\x54\x15\xb7\x7a\x5a\x49\xd4\xed\x93\x03\xfb\xe4\xc0\x3e\x39\xb0\x7a\xd4\xfb\xe4\xc0\x3e\x39\x70\x93\xe2\xe9\x67\xf0\xf8\xb5\xa4\x0a\xd3\xfb\xe7\x21\x58\x98\xb9\xf4\xb2\xc5\xef\x46\xb3\x70\x1b\xbe\x17\x9a\x85\x39\x6b\xab\xcc\x0f\xa5\x1f\x1b\x42\xac\x5f\xdc\x24\xb1\x09\xd3\x28\xd9\x25\xce\xe0\xf5\x37\xc9\x3a\xaa\x43\xef\x6d\x14\x28\xd8\xba\xe7\xe3\x24\xb5\x23\xd0\x6d\xe2\xd6\x63\xf8\x76\xe7\xbd\x2f\x1c\xb4\x8d\xee\xf7\x95\x8f\x6e\x57\x5a\x7b\x0f\x2c\x36\x9f\x11\x8f\xec\xad\x37\xaf\x9c\x2b\x51\x63\x86\x6f\x76\xba\xbd\xb1\xaa\x37\x56\xf5\xc6\xaa\xde\x58\xd5\x1b\xab\x50\x6f\xac\x5a\xdb\x58\xf5\x19\xc9\x54\xbd\xe1\xaa\x17\xab\x76\x37\xdd\x7d\xd5\x32\xf7\xc9\x5a\xd7\x19\xf8\xb6\xc8\xa1\x5a\x19\x79\x6f\xa7\xfd\xcb\x8a\x90\xfb\x6b\x37\x82\xb7\xc3\xaf\xe4\x73\xb3\xa4\x6d\x02\x8b\xdd\x8e\x7e\xb6\x71\xc5\x7d\x35\xb8\xc6\xb5\xea\xc3\x9e\x97\x2c\x4e\x1f\xf6\xdc\x87\x3d\xef\x5d\xd8\xf3\xce\x95\x95\x8c\xcb\x65\x80\x44\xa6\x1a\xca\xd2\xfc\x67\x77\x67\x43\xa2\x11\x90\x82\x29\x84\x13\x93\x2c\xe1\x0b\xb0\xa4\x2c\xb9\xce\x5d\x17\xd7\x35\x89\x7a\xdf\x6f\x74\x37\xf2\x97\xd2\x39\xf6\x45\x26\x2d\xe6\xbd\x17\x52\xe8\xf1\x3f\x2b\xe9\xfc\x9d\xf0\x32\x19\x22\x9f\xa8\x84\x5b\x69\x35\x61\x8f\x58\xf3\x93\xa0\x1a\x95\xbd\x07\x27\xb9\x0a\x72\xf7\xa4\x16\xac\x32\x22\xd4\x22\x78\x93\xa4\x99\x5a\xfc\xd7\x88\x51\xe5\x3d\x6c\x74\xc6\xb8\x30\x5c\x4d\x7f\x3c\xc7\x2c\x4e\x88\xd0\x97\xaa\x6b\x27\xc2\x8c\x71\x05\xe2\x06\xcc\x20\x46\x8f\x14\x1b\xe1\x64\x70\x7d\xde\xd9\xcf\xfc\x86\x4e\xd7\x4b\xd7\x1f\x5a\x71\xd7\x7d\x48\xf8\x04\x8a\x92\xe5\x65\x9d\x5e\x37\xd0\x7b\x46\x4b\x3b\xf7\x5a\x0c\x41\x61\xf9\x50\x05\x0e\x29\x67\xa1\x8f\x97\x42\x89\xac\x78\xb7\x84\x31\xbf\xfc\xd5\x0a\xdc\x48\xf9\x99\x05\x20\x81\xc7\x30\xe4\xea\x38\xdc\x8f\x61\x87\xee\xb7\xa2\x65\xf7\x8b\xab\xc6\x0a\x3f\x0a\xa2\xc4\x62\x8c\x95\xd2\x4c\x66\x97\x18\x27\x77\x58\x3e\x74\xc6\x38\x29\xbd\xbc\xe7\x2c\xa7\x84\x71\x52\x1e\xf8\xb3\xb3\x9c\x8e\xd4\xb9\x82\x33\xbd\xbd\xfc\xf8\xae\x67\x6d\x8d\x89\xff\x5e\x72\xe5\xbb\xf1\x9e\x55\x66\xda\xb7\x98\x37\xbf\x8c\x99\xee\xcd\x08\x2b\xfc\xfc\x73\x3c\xb9\xe5\xdb\xa9\x3f\xa2\xcb\xd6\xe8\xb3\xab\x6d\x58\x11\x3a\x56\xcc\xed\x8d\xd4\x38\xac\xca\x4d\xbb\x1e\xd5\xf3\x98\xb9\x83\xdd\xe8\xeb\x4a\xf7\x75\xa5\xfb\xba\xd2\xcf\x5e\x57\xba\x9b\xd2\xd9\x59\xe3\xec\xaa\x6e\x76\xd3\x35\xdb\x15\xcd\x67\xf0\xd2\x76\xd7\x06\x2f\xa8\x2c\xab\x83\x6f\xc2\x65\x5b\x1a\xf1\x4b\xe0\xa3\xfd\x4e\x15\xc1\x5e\x0b\x7c\x96\x75\xfb\x5c\x55\xc0\x3d\xd7\xff\x7a\x64\xb7\x1e\xc5\xbe\x0f\xc0\xd8\xe1\xe2\xf4\x01\x18\x7d\x00\xc6\x67\x1b\x80\xd1\xae\x4d\xd0\x78\xeb\x74\xbd\x35\x2b\x48\x79\xa3\x80\xf8\x05\x44\x29\x2c\x1f\xba\xd6\x94\xd2\xa2\xf2\x79\xfc\x26\xa4\xfa\xc6\x09\xbf\x84\x74\xdf\xd7\x29\xda\x69\x9d\xa2\xbd\x9b\x76\x2f\xf8\xf5\x82\x5f\x2f\xdb\x74\x9c\x70\x2f\xdb\xec\xaf\x6c\xf3\x5a\x0a\xcb\xe7\x04\xa1\xab\x85\xa7\x52\x66\xcc\xd2\x00\x5b\x03\x47\x03\xee\x81\x3c\x4b\x38\x8e\x57\x05\xe1\xfc\x82\x0a\xb9\x66\x89\x68\x66\xda\xd5\x1f\xbc\x05\xc9\x4c\x8f\xd3\x8c\xf8\x77\x13\x4b\x1b\x4e\xf9\x55\xc3\x68\x81\x5e\x21\x78\xac\x14\x84\xf6\x5c\x5a\x47\x95\x86\x3b\x29\x18\xf2\xdb\xb7\x42\xc5\x2f\xa1\x4e\x7c\xc6\x0e\x81\xde\xe8\xff\xfb\x2c\x74\xbe\x37\x52\x6a\xaf\xca\xf5\x59\x94\xbd\x11\xbf\x57\x74\x7b\x45\x77\xe7\xcb\xb8\x4f\x8a\xee\x2b\x4a\xd4\x26\x2d\xe4\x59\xca\x16\x6e\x26\x5b\xf7\xa2\x75\x2f\x5a\xf7\xa2\xf5\x67\x2b\x5a\xef\xc7\x0a\xf7\x72\x75\x2f\x57\xf7\x72\x75\x2f\x57\xf7\x72\xf5\xce\x97\xb1\x97\xab\x2b\x72\x35\xfc\xe5\xd2\xa2\xd7\x15\xb2\x3b\x0b\xd7\x1d\x72\xa0\xdf\x8a\x64\xdd\x4b\xd5\xbd\x54\xbd\xdf\x52\xf5\xde\x4c\xe8\xf3\x4b\x7c\xec\x53\x07\xfb\xd4\xc1\x3e\x75\xf0\x35\x52\x07\x1d\x2f\x59\x26\xa1\xd4\x05\x8b\x1f\x6b\x1c\x68\x6f\x65\x8b\x62\xb4\x9b\x86\x75\xec\x6a\xa9\x1d\xb0\xfc\x26\x95\xa5\x4a\xbf\xb9\x86\xf6\xa8\xde\xd4\x81\x93\x16\x34\xa3\x70\xe3\x5b\x8d\x08\xf6\x93\x7d\xf3\x6d\x81\x7f\xd7\x47\xdd\xd7\x9b\x42\xc1\xae\xf5\xf5\xa6\x9e\x71\xde\xee\x70\xad\x98\xb9\xa3\x51\x63\xe3\x7d\xa3\xd3\x7e\xf5\x00\xb9\xf6\x93\xfe\xaa\xe1\x72\x8d\x37\x49\x2d\x59\xe7\xf8\x9f\x8d\x17\xc5\x2b\x94\xd9\x5a\xfb\x76\xf8\x40\xd4\xe7\x72\x35\xf4\x65\xb6\xfa\x7a\x10\x3b\x9a\xee\x46\xac\xff\xcd\xce\xb6\x2f\x2a\xd6\x17\x15\xeb\x8b\x8a\xf5\x45\xc5\xfa\xa2\x62\xe8\x77\x5e\x54\x6c\x6d\xf1\xd1\x8c\xe3\x73\x91\x20\xfb\xa2\x62\xbd\x10\xb9\xbb\xe9\xfe\xbe\x84\xc8\x3d\xb4\x20\xec\x45\xf5\x34\x6f\x41\x78\x75\x9c\x0f\x37\x92\xae\x58\x1f\x6e\x41\x7b\xbc\x0f\xfb\x7f\x3d\xde\x47\x8f\xf7\xd1\x32\xeb\x3e\x98\xb5\xc7\xfb\x40\x7d\xb8\x66\x1f\xae\xb9\xcf\xe1\x9a\x1d\xb6\xb1\xc7\xfb\xe8\x28\xce\x3d\x13\xe6\x87\x93\xb9\xd6\xc2\xfd\xf8\xa9\xae\x68\xec\xad\x94\xe6\xc6\xfa\x3b\xc3\xff\xa8\x4e\x7b\x2f\x54\x92\x17\xc4\x01\x69\xa2\xeb\xce\x0a\xc8\xdb\xc0\x03\x71\xa3\xed\x13\x17\xfb\x10\xeb\xfd\x0f\xb1\xde\xbb\xc4\xc5\xbd\x91\x64\x7b\x75\xaf\xcf\x5d\xec\x73\x17\x7b\x65\xb8\x57\x86\x77\xbe\x8c\xfb\xa4\x0c\xbf\xb2\x84\xfd\x8c\xb8\x20\xdb\xc9\xda\xbd\xa8\x6d\xde\xeb\x45\xed\x5e\xd4\xfe\x4c\x45\xed\xfd\x58\xe1\x5e\xce\xee\xe5\xec\x5e\xce\xee\xe5\xec\x5e\xce\xde\xf9\x32\xf6\x72\xf6\x8b\xe1\x84\x34\x09\xdb\x1d\xf3\x6d\xde\x92\xa4\xdd\x4b\xd9\xbd\x94\xbd\xdf\x52\xf6\xde\x4c\xa8\xc7\x0c\xe9\x31\x43\x7a\xcc\x90\x1e\x33\x64\x23\xf9\xe6\xdf\xec\xb1\x7c\x17\xdc\xc4\xfe\xca\x7e\xf7\x5d\xc2\x27\x77\x8b\x8c\xe8\xff\x9e\xd1\x94\x30\x09\xd2\x28\x55\x8b\x50\x9e\x69\x59\xf9\xfa\x9a\xbf\xbb\x3d\xbf\xfc\x70\x11\x66\xd3\xbc\xfb\x78\x7f\x71\x77\x7e\x3d\xb8\xf1\xeb\xe2\x67\x15\xae\x85\xfd\xae\x24\x92\x59\x92\xbf\x21\x5a\xf7\x84\x53\x73\xab\xb0\xca\xe5\x66\x23\xbb\x19\xde\x0e\x6f\x7e\x84\x6c\xa0\xf1\xd9\xf9\xed\xe0\xbb\x8b\x12\x41\x94\x9e\x0f\x4e\xff\x76\x7f\x7e\xd3\xfe\x7c\xf8\xdf\xe7\xb7\x77\xb7\x6d\x4f\x6f\x86\x17\xc3\xc1\x6d\xfb\xd7\xef\x07\xe7\x17\xf7\x37\xc3\xa5\xeb\xb1\x74\xb4\xcb\x95\x10\x09\x8b\x04\x71\xfe\x28\xb2\x5c\x43\x14\x6b\x88\xbc\xf8\xe8\xd8\x61\x53\x5f\x27\xe8\xde\xea\xf4\xd4\x36\x6e\x18\x6c\xd0\x90\x51\x46\x62\x2a\xf1\x24\x21\x71\xad\x25\xb7\x86\x6d\x2d\xe1\xd2\xa0\x9e\xb4\xf6\xec\x45\x4e\xcd\xf3\x22\xc3\x0b\x10\xe4\x28\x2a\xc2\xe2\x86\x3e\xcc\x3e\xb4\xf6\xc0\x34\xef\xa2\x8f\xa4\xd4\x53\x94\x0b\x41\x98\x4a\x16\x88\x7c\xa2\x52\xc9\x5a\xa3\x6e\xfb\xda\x9a\xb5\x77\xaa\x6f\x70\x8e\x25\x9a\x10\xc2\xca\xe3\x17\x24\x21\x58\x36\x8c\xd9\xee\x7e\xb7\x65\xf1\x7b\x65\xad\x31\xe6\x32\x9a\x62\x9a\xe4\x82\x54\x4e\x0b\x4f\x33\x2c\xa8\xe4\x6c\xf8\x49\xdf\x65\xfa\x20\x5f\xc1\xe7\x5c\x6c\x76\x62\x86\x7f\x0b\x29\xf8\xb2\xfc\xcf\x0f\x77\xe5\x7f\x95\xce\xfc\xc5\x5d\xf9\x5f\xcb\x69\x3d\x68\xb8\x4a\xd9\x87\xe8\xc3\xdd\x09\xfa\x00\x21\x4e\x02\xdd\xcd\xb1\xa1\xd8\x8b\xbb\x13\x74\x41\xa4\x84\x5f\x8a\x8f\x15\x55\x09\xcc\xed\x3b\xca\xb0\x58\x20\x37\x7d\x93\xe8\x8a\xa3\x39\x22\x7e\x69\xaa\x8b\xc7\xfe\x91\x33\x50\xdd\x8b\xd5\xbb\xe0\x33\x1a\xe1\x64\xbb\x45\x1c\x5c\x96\xf8\xc0\xd5\xcd\xd2\xa5\x08\xdf\xae\xaf\xc5\xe0\xf2\x0c\x92\x48\xdd\x50\x1b\x66\x7e\x49\xa4\x26\x92\x88\xb3\xd8\x7a\x69\xf4\xed\xbf\x08\x84\xfa\x7f\x70\x48\xc4\xcd\x25\x65\x33\xdd\x22\x3a\x46\x57\x37\x23\x76\x25\x62\x63\x08\x25\x5a\x1a\x36\x34\x47\x25\x62\x5c\x21\x9a\x66\x5c\x28\xcc\x94\x56\x04\x40\x0c\xb0\x2b\x62\x38\xc0\x29\x4f\xd3\x5c\x61\x7d\xd0\x6a\x8b\xca\x8c\x39\xe4\x96\xa8\xf3\x18\x5c\x2b\x0d\x6b\x68\xe4\x84\x62\x2e\x99\xd0\xed\x6b\x19\xa5\xac\x43\xd3\xb8\xa6\xca\xba\x26\xb0\x10\xb8\x2c\x4d\xbc\xa3\x8a\xa4\xd5\xf7\x3b\x06\x79\xfe\xab\xd1\x40\x70\x6a\x92\x2a\x88\x18\x88\x68\x4e\x15\x89\x94\x3e\x82\x1b\xd1\xc4\xfd\xe5\x0f\x97\x57\x3f\x85\x12\xc4\xbb\xc1\xc7\xb3\xbf\xfc\x7b\xe9\x87\x9b\x8f\xb5\x1f\xc6\x3f\xfe\xa5\xf6\xcb\xff\x6f\x29\x3d\x55\x7b\xaa\xe9\xf9\xc1\x5c\x0e\x41\xa4\x06\x9b\xb0\x9b\x2a\xa2\x29\x9e\x11\x24\xf3\x4c\x53\x80\x3c\x2a\xef\xaf\x16\x29\x2f\x38\x8e\x29\x9b\x99\x0c\xd0\x0b\xaa\x88\xc0\xc9\x47\x9c\xbd\x77\xf6\xeb\x0d\x56\xe7\xff\xde\x96\xf2\x75\xdf\xfd\x3c\xf8\x18\x66\xfc\xbe\xbb\xbe\xb9\xba\xbb\x5a\x3a\xeb\x52\x0b\xf5\x63\xa4\x1f\x9f\xc0\xff\xa2\x63\xa4\x5b\xf7\x92\x6f\x4a\x14\xd6\x1a\x01\xfa\xd2\x24\xcd\xf9\x44\x1a\xca\x12\x38\x35\x99\xa0\x29\x85\x2b\xc5\x58\xf0\xbe\x32\xc2\xb5\xd7\x1e\xfc\xb9\x31\x1f\x80\xb6\xec\x2e\x65\x16\x63\x11\xa3\x7f\xc8\x6a\xfa\x38\x18\x8e\xcd\x0f\x24\x46\x87\x68\xae\x54\x26\x4f\x8e\x8f\x9f\x9e\x9e\x8e\xf4\xdb\x47\x5c\xcc\x8e\xf5\x1f\x87\x84\x1d\xcd\x55\x9a\x98\x74\x79\xbd\x0a\x27\xe8\x5a\x70\x7d\x85\x80\x82\x4e\x04\xc5\x09\xfd\x8d\xc4\x68\x62\xf8\x1f\x9f\xa2\x5f\x22\x2e\xc8\x51\xb1\x31\xd6\xa8\x64\xef\x11\x6b\x78\x3a\xd6\x2f\x35\x30\x93\xea\x7e\xa2\x98\x44\x34\xb6\x62\x06\x61\x11\x07\xcb\xa3\xf1\x55\xe8\xf6\x5c\xa6\xa1\xd6\x68\xb2\x5c\x15\xcb\x19\x28\x2b\x38\x26\x41\xb6\xbb\xe2\x65\x82\xd3\x8a\xcf\xb9\x51\x5b\x73\xad\xa2\xeb\xbb\x15\xc3\xad\xea\x5e\xcd\xf4\x84\x23\x9e\xa0\x49\x3e\x9d\x12\x11\x3a\xa4\x0f\xb4\x36\x43\x25\x12\x24\xe2\x69\x0a\x12\x83\xfe\x2a\x97\x86\xaa\x61\xc5\xec\x68\x8f\x46\x0c\xf6\x5f\xab\x39\x40\x01\x31\x07\x56\xc7\x08\x89\x11\x66\x0b\xd3\xcd\x24\x9f\x86\xed\x1b\x18\x0a\x1c\x23\xaa\x46\x6c\x90\x24\x48\x90\x94\x2b\x12\xe4\x50\x82\xf3\xac\xbc\xe0\xc0\x22\x05\xc9\x12\x1c\x91\xd8\xd0\x43\xc2\x23\x9c\xa0\x29\x4d\x88\x5c\x48\x45\xd2\xb0\x81\x2f\xc1\x56\xa3\xd7\x8c\x4a\x14\xf3\x27\x96\x70\x6c\xe7\x51\xfd\xec\xab\xf2\x69\x1c\x3a\x88\x80\xa1\x10\x5c\xc0\xff\xfc\x40\x59\xbc\x33\x0e\x75\x7f\x3b\xbc\x09\xff\x7d\xfb\xf3\xed\xdd\xf0\xe3\x7a\xdc\xc7\x53\x16\x0c\x0f\x74\xf8\x13\x74\x6b\x16\x81\x0b\x2d\x11\x89\x96\x49\x7d\xb4\xa4\x54\xfc\xc0\xe3\x0d\xb9\xef\xc7\xc1\xe5\xfd\xa0\xc4\x51\x6e\x4f\xbf\x1f\x9e\xdd\x57\xf4\x01\x3b\xbf\x92\x0c\x6f\xd4\xbf\xf0\xb7\xd3\xef\xcf\x2f\xce\xc6\x0d\x0a\xe3\xbb\x9b\xe1\xe9\xd5\x8f\xc3\x9b\x42\xb7\x6b\x5c\xa2\xca\x60\xaa\xcc\xea\xce\x30\xa5\x39\x8f\xd1\x64\xd1\x0c\x08\xa1\x25\xe7\x04\x7c\xb1\x05\x24\x8a\x69\xf5\x04\x78\x93\xc3\xe6\x28\xbe\x48\x79\x4c\x0e\xec\x3b\x80\xa4\x61\x8c\x2b\x46\x62\x6e\x6e\x58\xf7\x8e\x59\x60\xa8\x30\x20\x17\x7e\xe1\x4e\xd0\x00\x49\xfd\x62\xae\x0f\xb5\xa0\xb3\x19\x18\x0e\x2b\x43\x35\xad\xd9\x4f\x61\x79\xe1\x3b\xb3\xff\x99\xe0\x70\xce\x75\xb7\xd6\xe2\xec\xad\x12\xe6\x43\x40\x5d\x29\xb7\x28\x30\x18\x1c\x1a\x86\xe6\x36\x4b\x2f\x42\xeb\x7a\x99\xf3\x68\xec\x45\xfa\x70\x01\xdb\x92\xc6\xde\x99\x09\xf2\x48\x79\x1e\x7c\x6a\x81\x3d\x4a\x3b\xde\xd8\x7c\xb1\x00\xb0\x6c\xc6\x28\x52\x69\xc6\x93\x47\x63\x0b\x9a\x85\x3d\x42\x0b\x53\xc1\xd3\x86\x36\xca\xc7\xe4\xfc\xea\x56\x09\xac\xc8\x6c\x71\x66\x59\xc6\xe6\xc7\xe3\xec\xea\xa7\xcb\x8b\xab\xc1\xd9\x78\x38\xf8\x50\x3e\xf1\xfe\xc9\xed\xdd\xcd\x70\xf0\xb1\xfc\x68\x7c\x79\x75\x37\x76\x6f\x2c\x25\xf9\x96\x0e\xea\xf7\x74\xf9\xc5\x13\xa4\x59\x2e\xb0\x46\x07\x78\x17\xf0\xc7\x09\x99\x72\x61\xf8\x7c\xea\x42\x17\xac\x08\xe3\xd6\xd6\xea\x62\x95\x59\x9c\x80\x65\xac\xa9\x49\x63\xf5\x56\x82\xe0\x14\xee\x09\xcc\xd0\x90\xc5\x87\x57\xd3\xc3\x5b\xf3\x63\x8a\xc5\x03\x11\xfe\xd3\x27\x41\x95\x22\xac\xa4\xd2\x61\x37\x64\xaf\x24\x16\x1d\x1c\xa1\x1b\xcd\xf7\xf5\xfb\xfe\x52\xd3\xc4\x1e\x13\x85\x69\x22\xed\x60\x4b\xeb\x7a\x82\x2e\xb0\x98\x15\x76\xb8\x2f\xf9\x74\x6a\x1a\xfb\xca\x0c\x43\xdf\x61\xa5\x59\x34\xf0\x5e\x4d\x1a\xee\x5e\x84\xfe\xec\xcb\x5e\x1e\xae\x53\xd5\x7d\xb6\x1d\x4d\xdd\x5f\xc3\x8a\x1b\x8d\xbd\xa4\x1b\xda\x27\x0d\xb4\x06\x13\x37\x8f\x97\x5f\x32\xcd\x6d\xd7\xc9\xa9\xfc\x62\x03\x39\x99\x5c\x2a\xbd\xf3\x53\xad\x6d\x36\xd0\x12\xf9\x44\xad\xc1\x20\x1c\x77\x85\x84\x8a\x66\xc0\xbc\x8a\xb3\x8c\x60\x21\x9b\x76\xbb\x2c\x06\xb6\xec\xbd\xe9\x29\xec\xc3\x6e\xb2\xeb\xe7\x00\x71\x06\x06\x07\x2f\x44\x54\x28\xb2\x03\x0d\x98\xb6\x6a\x14\x70\x0d\x68\x4b\x57\x16\xd9\xe8\x23\x95\x5a\x69\x34\x3f\x7e\x67\x21\x97\x36\x23\x88\xf7\x83\xf3\x8b\x8a\x70\x31\x3e\x1b\xbe\x1f\xdc\x5f\x2c\x37\x13\x96\xbe\xab\x6e\x31\x3a\x44\xfa\x79\xd9\x6f\x4e\xa7\xe6\xce\x70\xc0\x51\x46\xa5\x25\x0c\x8c\x56\x16\xaa\xc6\xd8\xab\x63\x92\x25\x7c\x91\x12\x06\x26\x9e\xd2\x4d\xa8\xd7\x73\x8a\xa9\xbd\x5a\x82\xc1\x82\x15\xc7\x9a\xdd\xe0\x1a\x3b\x74\x68\x55\x24\xf6\x37\x6f\x19\xac\xaa\xc2\xba\xaf\x8d\xf7\xcc\xfe\xe7\x56\x61\xb5\xe1\x19\x1b\x9c\xde\x9d\xff\x38\x2c\xeb\x87\xa7\xdf\x9f\xff\xd8\x24\xd5\x8c\x3f\x0c\x2f\x87\x37\x83\xbb\x15\xc2\x49\xa5\xc9\x26\xe1\x44\xea\x01\x57\xbd\xa7\x54\xfa\x88\xa0\xc8\x40\x5e\x21\xaa\x24\x7a\xa4\x92\x4e\x28\x00\x84\x59\x4f\xe4\xfd\x39\x70\xd6\x47\x9c\xd0\x98\xaa\x85\x13\x5f\x4c\xbf\xe5\x7d\xd4\x9c\xd4\xb6\x6f\xcc\x0e\xa1\x7f\x12\xac\x7c\x66\x73\xdc\xa4\x4f\x10\xe8\xb6\x8f\xa0\xb4\x05\x9f\x31\x2d\x48\xb3\x19\x11\x66\x38\xe0\x7d\x09\xc7\x12\x3c\xd7\xa3\x0a\x85\x95\x62\xd5\xbc\xd0\x3a\x23\x8c\x08\x00\x81\xf3\x9d\x18\x41\x4a\x10\xf6\x85\x96\xb9\xb2\x84\x46\x54\x25\x0b\x14\x81\x0d\x0b\xcc\x99\x29\x66\x78\x66\x85\x03\x50\x73\x2a\x24\xf1\x37\x83\xa2\x76\x35\xb5\xa6\xfd\x3b\x4a\x36\x3c\x66\xf7\x97\x67\xc3\xf7\xe7\x97\x65\x12\xf8\xfe\xfc\x43\x49\x84\xfd\x38\x3c\x3b\xbf\x2f\xdd\xe6\x5a\x92\x5d\x2e\xd7\x57\x9b\x6d\x38\x8a\xfe\xa5\x13\x74\x66\x3e\x3d\xd1\x8b\xdb\x00\x11\xe7\x95\xdf\xca\x3a\xdc\xb8\x90\x3c\xf7\xc7\x90\x29\xd1\xe8\x97\xe8\x6a\x42\xb2\x3e\xc8\x92\x0d\xa9\x39\x54\xa1\xd6\xf7\x65\xd5\xa9\x5c\x9d\xb2\x7b\x11\x82\x2e\x8f\x0a\xcb\x52\x18\xc3\x00\x46\x83\x36\x23\x56\x83\x5b\xab\x60\xd8\x3f\x82\x8b\x3a\xcd\xa5\x32\xae\x44\x20\x4e\xf4\xf0\x57\xa9\x17\x14\x5c\x8d\x47\xe8\x96\x90\x11\x73\xd6\x83\x19\x55\xf3\x7c\x72\x14\xf1\xf4\xb8\xc0\x27\x3c\xc6\x19\x4d\xb1\x96\xa4\x89\x58\x1c\x4f\x12\x3e\x39\x4e\xb1\x54\x44\x1c\x67\x0f\x33\x88\x80\x71\xee\xd4\x63\xdf\xec\x8c\xff\xe1\xe2\xcf\x5f\x1f\x5e\xfc\xf5\xeb\x77\x75\x0b\x59\xdb\xfe\x0f\x59\x84\x33\x99\x27\x36\x62\x4e\x84\x6b\xe3\x8e\x7c\x4e\x56\xed\xf7\x65\x79\xbb\xb6\xd3\x5f\x4f\xaf\xef\x4b\x16\xeb\xf2\x3f\x3f\x0e\x3f\x5e\xdd\xfc\x5c\xe2\x94\x77\x57\x37\x83\x0f\x25\x86\x3a\xbc\xfe\x7e\xf8\x71\x78\x33\xb8\x18\xbb\x87\xdb\xd8\xde\x7e\x60\xfc\x89\x95\x97\x46\x3a\x0e\x58\xeb\xe9\x04\xbd\xe7\x02\xfd\xe0\x77\xf2\x70\x82\x25\x5c\x31\xee\xce\x92\x07\x28\xe3\x31\x30\x5e\x44\xb2\x39\x49\x89\xc0\x89\xb5\x19\x48\xc5\x05\x9e\x99\x9b\x5e\x46\x02\xab\x68\x8e\x64\x86\x23\x72\x80\x22\xa0\x86\xd9\x01\x6c\x0a\xa8\x5a\x7c\x56\xb5\xf3\xdd\xe4\x4c\xd1\x94\x38\x15\xdc\xfe\xf3\xce\x6c\xc6\x06\x9b\x73\x75\xf7\x7d\x59\xd8\x7b\x7f\xf1\xf3\xdd\x70\x7c\x7b\xf6\xc3\xd2\xf5\x34\x9f\x95\x46\x76\x0b\x01\x48\xa7\x3c\xc9\x53\x16\xfe\xbd\xf9\xd8\xce\x2f\xef\x86\x1f\xaa\xa3\xbb\x1a\xdc\x95\x29\xe3\xa6\x1c\xe0\xf6\xee\xbb\xab\xab\x8b\x61\xc9\x25\xfc\xee\x6c\x70\x37\xbc\x3b\xff\x58\xa2\x9f\xb3\xfb\x1b\x83\x46\xb8\x6c\x9a\x6e\x04\x0d\x13\xd5\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\x0d\x6c\x40\xb9\x39\xcb\x87\x01\xdc\x8e\x09\x07\x03\xab\xce\xa1\x37\xa9\x46\x66\xa4\x8d\xec\x50\x95\xb7\x09\xb5\xb3\xe3\xa5\x1b\xbd\x8c\x2b\xdf\xf9\x21\x18\x28\x50\xa3\x6c\xe3\x24\xe1\x4f\x26\x94\x37\xa5\xfa\x56\xb6\xc0\x68\xfa\x15\x59\x78\x08\x8f\x1a\x38\x5e\x79\x5b\x48\x24\x88\xfa\xc8\x73\xa6\x36\x27\xb9\xc1\x65\x89\xef\x0c\x2f\x7f\x1c\xff\x38\x28\x53\xe0\xf9\xc5\x72\x56\x13\x36\xd1\x70\x15\x0f\x2e\x7f\xf6\x97\x30\x04\x7c\x1f\x78\x0d\xd5\xc8\xae\x51\x42\xb5\xd8\x1b\x61\xad\xbd\x26\x20\xd1\x20\x42\xc1\xe4\x90\xea\xc9\x41\x80\x69\x66\xfc\x49\x86\x3f\x99\x41\x9e\xb8\x3f\x2a\xed\x49\x58\x17\xb0\xa6\xba\x78\x7a\x68\xc7\x6a\xd5\x0c\x11\xf6\x48\x05\x07\x3c\x5b\xf4\x88\x05\xd5\xd2\xb8\x69\x59\xcf\xf5\x04\xfe\x77\xbd\x36\xc1\x30\x5a\x61\x5c\xb7\x5c\xa8\x33\x1f\xc8\xbb\x99\x35\xa4\x29\xa0\xb5\x1e\xca\xda\x6c\xe8\xa8\x7f\xdb\xb0\x39\x5b\x06\xfc\x96\x27\xfc\x6b\x72\x46\x71\xa2\x19\xc0\xee\xe4\xc5\xc1\xe5\xed\x79\x59\x7e\x2c\xab\x19\x01\x5f\xde\x58\x5e\x04\x43\xa5\x19\xb9\x53\x26\x6e\xff\x76\x61\xb4\x0b\x00\x3d\x36\xe7\x36\x50\x2c\x40\x00\x72\x28\x28\x19\x16\xb2\xf2\x85\x44\x00\x84\x56\x04\x5c\xe9\x3b\x0b\xc2\x99\x1e\x39\x8d\x47\x8c\x7c\xca\x08\x93\x10\x1c\x60\xee\xb3\xc2\xd7\x2e\x8f\xd0\xf9\x14\x58\x82\x7e\x9d\xa1\x9c\x59\x07\x98\xbe\x70\xcd\x20\x0f\xb4\x28\x6b\x87\xe0\x35\x44\x30\xbc\x30\xe2\x82\xa5\x8a\xc1\x8f\xd8\x4f\xde\x89\x06\x8f\xa6\x5c\x33\x20\xbd\x8b\xb6\xbd\x13\x84\x99\xa4\x07\x48\x2b\x2c\xd5\x3d\x85\xd4\x01\xad\x50\xda\x10\x2e\xcd\x69\xec\x9f\x2f\x7f\x0d\xd4\xe2\x84\xc3\xcb\xa0\xf9\x2e\xa8\x5c\x05\x2d\xa2\x71\x62\x3c\x26\xe3\xee\x77\x42\xc4\x05\xb1\x7e\x96\xb5\xaf\x81\x55\x8c\xfd\x0e\xcb\x87\x9a\xef\xe1\x9c\x49\x85\x59\x44\x4e\x13\x2c\x37\x0c\x42\x72\x36\x8e\x83\xb2\xc4\x71\x73\x73\x7f\x7d\x77\xfe\xdd\x0a\x2e\x5f\xfd\xb8\x1e\x06\x14\x25\xb9\x73\xcf\x4d\x04\xc7\x31\xd2\xec\x73\xc6\x8d\x2b\xd0\x0a\xfe\x05\xf4\xb7\xc9\xeb\xf1\x01\x95\x25\xd8\xf1\x22\x1d\xc1\xda\x39\x42\x57\x02\xb5\x0b\x81\x22\xbd\x12\x28\x30\x79\xb8\xad\x06\xcf\xa2\x29\x48\x62\xad\x5b\x59\x82\xd5\x94\x8b\xd4\x70\xf9\xd2\xa4\x4d\xe3\xcb\x1b\xa5\x4c\x11\x21\xf2\x4c\x51\x87\xe5\x5e\x95\x52\xa1\xc2\x3b\x9f\x7d\x24\x52\xe2\x19\xd9\xc6\x01\xdd\xa4\x3c\xdc\xfe\x18\xfe\x13\x1c\xcc\x5d\x64\xff\xd2\x08\x5d\xe4\xbb\xa3\xa7\x2b\xf6\xde\x04\xf2\x5c\xf3\x84\x46\x1b\x06\xdc\xbd\x1f\x9c\x5f\x8c\xcf\x3f\x6a\x25\x7e\x70\x37\xbc\x28\x89\x12\xf0\x6c\xf0\xfe\x6e\x78\x63\x41\xac\x07\xdf\x5d\x0c\xc7\x97\x57\x67\xc3\xdb\xf1\xe9\xd5\xc7\xeb\x8b\xe1\x8a\xc8\x9c\xd6\xc6\xeb\xd6\xd5\xea\xab\x27\xb5\x5f\x60\x87\x35\x2f\x0b\xed\x65\x90\x35\x86\x69\x02\x4e\x70\x6e\x9c\xe1\x18\x31\x1e\x13\xf8\x59\x3a\xeb\x8c\x47\x8e\x46\xe7\xea\x8b\x24\x41\x38\x57\x3c\xc5\xe0\xb5\x49\x16\x23\x86\x27\x9a\xb5\xe2\x24\x09\xc2\xbb\x44\xce\x98\x66\xb1\xba\x31\x03\xd1\x1e\x25\x44\xb3\xf3\x2c\x48\xf6\xb3\x7e\x83\x29\x65\x10\x69\x9b\x62\xf1\x60\xdc\x4c\x45\x97\xc5\xa1\x90\x08\xcb\x11\xd3\xe3\x22\xd6\x30\xd4\x65\x85\x4f\x3a\xbd\xd5\xba\x3a\x29\x7e\x20\x7a\x55\xd2\x3c\x9a\xa3\x4c\xf0\x99\x20\x52\x5a\xdb\x72\x84\x99\x09\x40\xb0\xaf\xeb\x6b\x68\xc4\x18\xd7\x4b\xe1\x4c\xd8\x31\xc9\x08\x8b\x09\x8b\xa8\x49\xeb\x03\xdf\xbd\x37\x6d\xce\x04\xce\xe6\x48\x72\x70\x7a\xc3\xb2\x83\xfd\xca\x7c\xe4\x6e\x32\x33\x63\xf3\x38\xb4\x40\x8b\x5c\xf3\x89\x2b\x90\x13\xcd\x2a\xc3\xc7\xee\x32\x74\x6e\x17\x63\x07\x4c\xb3\x84\x28\x03\xd6\x0f\x4b\x0e\x9b\xa1\xd7\xba\xb4\x1f\x7a\x9b\x9a\x36\x41\x5f\xd8\x6e\xcc\x58\xda\x11\x1d\x35\x58\xb6\xed\x91\x42\xdf\x63\x16\x27\xba\x15\xe7\xc3\x28\x9f\x45\x48\x45\x19\x68\xaa\x71\xa7\x71\x9b\x5b\x34\xc2\xb9\xdc\xe6\x1a\xad\xe4\x62\x1a\xab\xe0\x61\x11\x14\x02\xe4\x6d\x13\x31\x61\x75\x33\xcd\x22\x71\xc2\xed\x2a\x99\xd7\x73\x53\xff\x09\xc1\x68\x5a\xae\xd9\x4c\x50\x16\xd1\x0c\x27\x1b\xe9\x7e\x95\x60\x7c\x1b\xe3\xfe\x25\x9d\x6a\xf2\xf9\xaa\xe6\xb6\x55\x44\xa4\x90\xa0\x6c\x87\xe9\xb7\x70\x0d\x4b\x92\xcd\x6a\x20\xb2\x88\x26\xc1\x82\xe7\xc6\x1f\x07\xeb\x42\xe2\x86\xa3\x7a\xd4\xb4\xdd\xfa\x64\xe0\x72\x00\xf4\x06\x9b\x6d\x22\x7f\xda\xd6\xaf\xd2\x8a\xed\xdd\x04\xe3\xe1\xe4\xba\xb9\xcd\xa6\x1d\x08\x1e\xfe\x6b\x19\xed\x7c\xc4\x99\xa6\x19\x0b\xdb\x8f\x8b\x39\x5a\x25\xc9\x56\x05\x73\xf1\x33\x81\xef\xdc\xe7\x85\x74\xdf\x8d\x62\x09\x6d\x00\x54\xbd\x93\x52\x0c\x41\x90\x63\x6e\x69\x7c\x9a\x6b\x59\x16\x61\x88\x42\x40\x5f\x92\xa3\xd9\x11\x72\x45\x18\x0e\xd0\xe0\xfa\x7a\x78\x79\x76\x80\x88\x8a\xbe\x72\x31\x8b\x36\x60\x69\xc4\x14\xb7\xd2\xca\xc2\x15\xd0\x48\x89\x98\x91\xd2\x9c\x5d\x74\x13\x84\x2a\xcf\xa8\x54\x36\x7c\x56\xf3\x95\xa0\xd4\x09\x4d\xab\x62\xb6\xa1\x90\x5c\xcd\xb7\x21\x0d\x2c\x65\x9e\x6a\x5d\x76\x4c\x71\x3a\x16\x3c\xd9\x86\x29\x9c\xc1\x54\x40\x5d\xf6\xe9\xf9\x14\xa7\x48\x37\x6b\x43\x41\xbc\xcb\xd1\x8b\x74\x5a\x30\xd2\x7c\x59\xdf\x9b\xc1\xbd\xe5\xbc\x0f\x36\x1e\x8d\xba\x10\x08\x48\xdf\x6f\x61\x15\x85\xd9\x78\x6c\x2d\xf5\x63\x1c\x45\x5a\xe5\xde\xf1\xa4\x82\xfa\x39\xce\x25\x60\x3b\x7a\xb6\x69\xae\xa2\x73\x37\xcc\x4c\x73\x30\x08\x06\xd6\x57\xae\xe4\x11\x2d\xda\x6f\xe8\x77\xb2\xa8\xf5\xea\x2a\xdc\xdc\x4b\x6f\x52\x31\x97\xb0\x24\xb0\x93\xd2\x54\xc8\x51\x73\xb2\x40\x73\xfc\x48\x4a\x5d\xba\x84\x18\xdd\xf0\x82\xe7\xa2\x89\xd1\x8d\xd8\x19\xc9\x04\xd1\x92\x7e\xd5\x81\xe2\x69\xfa\xa6\x4c\x89\x3d\x5d\xf7\x74\xfd\xe6\xe9\xfa\xd4\x14\x4a\x1a\xf8\xc2\x58\x5b\x09\x70\xa6\xb1\x71\xc6\x79\x32\xee\x60\x13\xe9\xbe\xe2\x25\x4f\x58\xa5\x6c\x14\x40\x02\xf0\x1c\xe4\xa3\xd2\xb5\xc9\xf5\x5d\x17\xa4\xd8\xda\xe1\x2d\x59\x06\xe7\x32\x0b\xea\xe5\x6c\x73\xde\x9b\x5a\x59\xd6\x12\x7a\x76\x31\xe7\xd4\xc8\x37\xde\x5d\x16\xd6\x3f\x2d\x1d\x26\x27\x8a\x50\x56\xab\xc6\x66\xe8\x59\x2f\xb0\x91\x3b\x7e\xcd\xb9\xc2\xf2\xab\xa3\x11\xd3\x42\xd4\x03\x59\x18\x73\xab\x16\x53\xfe\xa8\x65\xf1\x43\x49\x98\x84\x70\xef\x3f\x1a\xf7\x9c\x26\x71\x67\xae\x36\xaa\xa9\x29\x02\x07\x41\xd7\xbe\x17\x08\xd1\xb5\x8d\x5a\x29\xa9\x08\x80\x06\x39\xdf\xcc\xc5\x3e\x33\xc3\x9f\x11\x05\x29\xd6\x8a\x2a\xd0\x99\x62\x53\x65\xae\x36\xf4\x95\xa6\x2b\x43\x15\x82\x83\x9f\x24\xce\xb7\x63\xfc\xb2\xde\xc6\x4a\xce\xe8\xb5\x85\x5b\x1b\xf3\x7e\xec\xec\x46\x91\xe0\xb5\xd2\x6d\x58\x22\xb3\xd3\x13\xc3\x0e\x9c\xff\x9a\xb0\xa3\x27\xfa\x40\x33\x12\x53\x0c\x11\xf0\xfa\x5f\xc7\x7a\x5e\x7f\x38\xbd\xb9\xba\x1c\x17\x99\x3c\xff\x35\x62\x83\x44\x72\x9f\xa5\x80\x18\x67\x3e\xdc\x3e\x13\xc4\x89\x84\x76\x2e\x60\x75\x2d\xcc\x88\x23\xd6\x36\x82\x98\x47\xf2\x08\x3f\xc9\x23\x9c\xe2\xdf\x38\x03\x57\xfa\x00\xfe\x3c\x4d\x78\x1e\xff\x84\x55\x34\x3f\x86\x73\xad\x8e\xc9\x23\x61\xca\xb8\xa9\xf4\x72\xc5\x90\xbc\x2b\x21\x5a\xff\x0f\x7a\xcc\x45\x52\x91\xd4\x9a\x6c\x44\x32\x85\xfe\x1f\x41\x26\x9c\xab\xe6\x4b\x8a\x4f\xa7\x92\xac\x75\x21\x15\x4a\xda\xed\x15\xfa\xeb\x5f\xbe\xfe\x46\x93\xd0\x26\x6b\x7c\x7e\x7b\x35\xd6\xdf\xff\xe1\xcc\x7e\x2f\xd7\x60\x77\x57\x59\xc1\xda\x1c\xf1\x98\xc0\xf9\x9c\xc1\xed\x27\xc0\x79\x01\xec\x0d\xc8\xa1\xd8\xc7\x26\xee\x76\x56\x6a\x7d\x3b\x95\x6d\xa3\xc5\x04\x15\x3b\x98\x23\x3a\x44\x8c\xa3\xd4\xc4\x9a\x62\x86\xfe\xfd\x87\xef\x9a\x37\x30\x17\x74\xa3\x0e\xa9\x85\x6b\x08\xba\x94\xf4\x37\x22\x91\xa6\x1a\x4d\xc5\x3c\xd5\x5d\x0b\x22\xe7\x3c\x89\xd1\x13\x01\x35\xc9\xc6\x81\x7a\xad\x5c\x90\x11\x0b\x9b\x80\x90\x43\x84\x13\xc5\x67\x04\xee\x6a\xa7\xa8\x29\x22\xb4\xa8\x62\xb2\x34\x14\x17\xe4\xc0\x40\x7d\xdd\xfe\xd9\xc5\x56\xc3\x34\xe1\x91\x4b\x6a\xb1\x26\xb9\x78\xd2\x3c\xf3\x69\xd5\xf4\x8a\xda\x6d\xf8\xd5\x4d\xb6\x66\xdb\xe6\xa5\xb1\x49\x28\xd6\x86\x55\xdd\x99\xe6\xc1\xd0\x88\xb3\x71\x42\xd9\xc3\x46\x9b\x71\xe5\x44\x39\xdd\x82\x5d\x33\xdd\xa2\xb7\x73\x1b\x0b\xc8\x1a\xe7\xe3\x7d\x9e\x24\x26\xb5\x25\xdc\x1e\x90\xbb\xcc\xba\x81\x30\x90\x99\x1c\x50\x12\x5b\xbf\x97\xd5\x84\x05\x61\x10\xf0\x36\x62\x93\x85\xf5\xd9\xca\x03\x24\xf3\x68\xee\x32\xf3\x22\xce\xa4\x16\xa3\xb9\x40\x11\x4f\x53\x53\xdc\x94\x11\xa4\x38\x4f\xa4\x8d\x76\x67\x87\x0a\x47\x6a\xc4\x8a\xfe\x56\x9c\x3c\x53\x01\x69\xbb\xd4\xbd\xee\x2e\x9d\xa2\xd2\xd2\x52\x81\x9b\xc6\x21\x66\x03\x18\xc1\x8c\x27\x2a\x40\x7f\xe0\xf5\xb3\x64\x36\xac\x45\x33\x90\x73\x2e\xd4\x38\x6e\xe4\x39\x2b\x89\xa6\xca\x08\x19\x39\x4c\x20\x68\x98\x3f\x6a\xe1\x9f\x3c\x79\xe3\xeb\xb2\x21\x68\xaa\x5e\x36\x82\x6e\xc7\x68\xe9\xc8\xd6\x25\xc1\x96\xb5\x32\x08\x1e\x51\x39\x26\x7c\xd5\x18\x6f\xe1\xab\x53\xfd\xd1\xd2\xc5\xab\x9e\x3b\x27\x04\xf1\xb8\x00\x9b\x33\xf7\xba\xcd\x08\x59\xb6\xa6\x16\x3a\xe1\xf9\x32\x47\x97\x4d\xe5\xbe\x6c\xc9\xd5\x63\x01\x93\xbd\x24\x20\x6b\x62\x31\xa1\x4a\x60\x51\x42\x0a\xf1\xfa\xa0\x24\x58\x40\x7c\xd6\x88\x19\xdc\x38\xa3\x29\xc4\x28\xa6\x12\x12\x44\xe0\x2e\x0d\x9c\x61\xa8\x9b\x12\x58\x39\xda\x45\x9e\xa3\x89\x3f\x87\xc0\xb2\x82\x34\x1c\xb3\xd3\x1d\x79\x7c\x2c\xad\x9f\xf1\x28\x2f\x04\xb9\x08\x24\x5c\x8b\xa9\x83\x28\x93\x74\x36\x57\x88\x32\x6b\x77\xc4\xc9\x8c\x0b\xaa\xe6\xa9\x3c\x40\x93\x5c\x6a\x2d\xd4\x04\xab\x99\x78\x14\xa2\xa2\x4e\x5c\x68\xdb\x24\xe2\xb8\xd2\x60\x5d\x45\xd9\x80\x34\xba\x1d\xca\x61\xe5\xae\x58\x41\x38\x03\x8f\x33\x58\x6d\x83\x42\xdd\x46\x03\x4f\x89\x4c\x1c\x20\x77\xc8\x4e\x50\x05\xa4\xed\x1c\x00\x2a\xe4\xce\xbc\x14\x2f\x51\x88\x0b\x99\x64\x50\x41\x5c\xec\x36\x48\x5e\x65\x64\x4a\x83\xde\xe4\x9d\x4e\x69\xa6\x1a\x03\xb7\xea\xae\xa2\x9b\x00\xf3\xa7\xdb\x62\x43\x32\x16\x50\x33\x20\xb5\x8d\xd8\x2d\x21\xed\x40\x6e\xb5\xbd\x37\xa5\x71\x61\x0a\x36\xd1\x63\x39\xc9\x6f\xe3\xc4\x3e\x1b\xde\x9e\xde\x9c\x5f\x1b\xc8\x89\xab\x9b\x8f\x83\xbb\x71\x83\x5f\xbb\xe1\xad\x8f\x83\x9b\x1f\xce\x56\xbf\xf6\xfd\x5d\x39\x2b\xbb\xe1\x95\x9b\xdb\xe5\xc9\x1c\x1d\x86\xd8\x90\x14\xd6\xd8\xcf\x09\xca\x16\x6a\xce\x99\x0f\x51\x88\x4b\xbc\xe9\x10\x99\x8c\x60\x05\x21\x44\x42\xaa\x06\xc7\xe1\x1d\xc4\xe5\xac\x96\x30\xcb\x9b\x65\x60\xd8\x76\x2a\x1a\xad\x71\x22\x3f\x24\x7c\x02\x7e\xeb\xbc\x54\xe2\x76\x49\x04\xfa\x96\xf1\x3e\x67\x54\x66\x09\x5e\xd4\x7a\x58\x75\xe5\x5c\xe2\x94\x40\xc4\x71\x81\x1f\xe7\x92\x45\xf4\xce\x40\x02\x93\xbf\xd7\xe9\x14\x32\x99\x14\xc5\x8a\xa0\x09\x51\x4f\x90\x37\xe7\x7e\xf5\xb6\x54\x17\x30\x22\x8f\x46\x0c\xcc\x39\x23\xbd\xc8\x71\x0e\xd1\x7e\xa3\x77\x07\x68\xf4\x2e\x26\x8f\x24\xe1\x99\xde\x79\xfd\x43\xcb\x25\x33\x4c\x31\x4d\x2e\xb9\xf2\x96\xb9\x6d\xf6\x53\x90\x88\x66\x20\x99\x8f\x89\x6e\xf7\xe5\x04\x8f\x12\x25\x3b\x76\x06\x63\x40\x38\x8e\xb5\x92\x0d\xac\xcc\x0d\xaf\x08\x01\x62\xc1\xd4\x4b\xb5\x32\xd7\x11\x29\xbc\xf9\xdb\xf4\x18\xb6\x59\x36\x7b\x36\xee\x80\x77\x0c\xbf\x90\x92\xe1\x42\x71\x7c\xc7\x1d\xb5\x8e\xfb\x36\x1d\xa3\xd5\x03\x5d\x3d\x80\x7a\x2d\xd6\x10\x98\xfd\x00\x6f\xf5\x77\x2b\x05\x4d\x7f\xdb\x46\x61\x49\x76\x10\x19\x6d\x6e\x73\x35\x9d\x9a\xac\x1c\x71\x94\x70\x59\x86\x3a\xe9\x3c\xe8\x53\xfb\xe9\xb2\x71\x0f\x43\x67\xb1\xbe\xd6\xd7\xf2\x47\x37\x2c\x7c\x05\xcb\xcf\xb0\x09\x65\x1d\x1c\xf6\xed\x03\x44\x21\x58\x0e\xe4\xe9\xa4\x48\xfc\x66\x31\x2a\xac\xd8\x23\x56\x84\x1c\x48\xf4\x44\x12\x88\x52\x8a\x78\x9a\x81\x85\xd6\x0e\xd7\xb6\x44\x62\x13\xf0\x79\x80\x78\xae\x74\x63\x26\xa5\xc2\xd9\xe0\x6c\xbe\x46\x61\xb5\x36\xae\x13\x1b\xbb\xec\x71\x81\x0d\xad\x1b\x56\x48\x19\xfa\x40\x14\xb4\x02\xb8\xeb\xe1\x04\x41\xcc\xab\x46\xc0\x35\xaf\xfd\x16\x27\xca\xce\x64\x8d\x9d\x2f\x70\x2f\xbe\x4b\xf8\x64\xb9\x8e\x07\x8d\xa3\xfb\x9b\x73\x67\x50\x2a\xc2\x5f\x02\xf0\xd9\x92\x43\x68\x78\x7d\x33\x3c\x1d\xdc\x0d\xcf\x8e\xd0\xbd\x24\x7a\x79\xfc\x74\x21\x3d\xd6\x4b\x94\x66\xe4\x16\x48\x83\x49\x45\x70\x9b\x1e\x4b\x84\x28\x25\xb1\xae\x60\x1c\x65\x94\x8d\xe5\x84\x0d\x18\x17\xd4\xda\x59\x00\x17\xa6\x3a\x4f\x1b\x58\xb5\xea\x04\x42\x98\xcb\xf8\xed\x04\x19\x99\xf1\xa6\xf5\xc0\xaa\x55\xe4\x53\x0e\xc8\x7a\xee\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x22\x94\x3f\xe2\x6c\x79\xf6\x20\x7e\x2a\x11\xad\x91\x64\x02\xd7\xeb\x73\x9f\x03\xc7\xd6\xc6\x86\x15\x6e\x3f\xc1\xc2\x1f\x61\x78\xab\xe7\x9b\x26\x60\x5f\x3a\x1b\x47\x38\xb1\xca\x20\x6c\x18\xa2\x44\x70\x76\xe0\x17\xca\x50\xe9\x4a\x3c\x40\x53\xfa\xc9\x36\x5a\x84\x27\xbb\x57\x03\x7f\x75\x4b\x38\xdc\x1c\xd7\xcf\xd4\x1a\x62\xc3\x35\x7c\xbf\x34\x3c\x8b\x4b\xa5\xa5\x2e\x2d\xb9\x0a\x12\x71\xa1\x6f\x0a\xe8\xb6\x30\x22\xaf\x12\x19\x14\x16\x7a\x51\xea\x46\xf5\x65\xa7\xbf\x28\x21\x11\x63\x45\x0e\x15\x5d\x99\xbf\x6a\x53\x1c\x20\x19\x02\xab\x00\xcd\xa9\xb8\x79\x26\x64\x86\x99\x8b\xac\x6d\x19\xae\xbb\xf2\xb6\x60\x55\x5a\x82\xc5\x90\xdd\x03\xf2\x15\x64\x6e\x94\xc6\x21\x33\x58\xcf\xa5\xe3\xb0\xc1\x0b\xfb\xb0\x6c\x4f\xd8\xc7\x52\xb4\x0c\x36\xcf\xe2\x7d\x1a\x6c\x82\xa5\x42\x76\x4c\x6d\x9a\x64\x20\xe1\x3f\xaf\x0d\xad\xa4\x9a\x75\x35\x9f\x69\x12\x2a\x2b\x21\x04\x0c\xdb\xd2\xc1\x5e\x18\x90\x8f\x94\x88\x99\x13\x84\x4d\x25\x5d\x7f\xb6\x6d\x49\x5d\x77\x4b\x84\xcc\x04\x62\xac\xeb\x4d\x1f\xa1\x01\xab\xc1\x1d\xb9\xb0\x9a\xd2\x7a\x99\x3b\x09\x27\x4f\x78\x21\x51\x26\x0c\x32\x88\x09\xbc\x76\x93\x87\x78\xc7\xf2\x47\xde\x93\xad\x5c\xe4\x3b\x02\x55\x7a\x75\xcc\x93\x93\x7b\xc7\xcf\xe0\x89\xa9\x04\x05\x7b\x81\xbc\x68\xae\x50\x35\x3b\xb0\x3a\x45\xc6\xd1\x1c\xb3\x19\x19\x3b\x1b\xd9\x26\xda\x92\x6e\xe7\x14\x9a\x39\xb3\xad\x34\x5f\x4e\xd7\x46\x61\xb2\xe5\x3b\xcc\xab\xde\xfe\xa3\x0f\x81\x54\x78\x46\x90\x19\x51\x27\xab\x62\x29\xe0\xc7\x62\xc5\x82\x9e\x60\x5b\x1d\x96\x83\xa0\xdb\x84\x77\x88\x5c\xb9\xc0\x13\x92\xbc\x8e\xe3\x1b\xba\xb6\xb6\x55\x70\xb6\x98\x60\x6e\x82\x9e\xc0\x1c\x5b\x61\x19\xd6\xf8\x2a\xf2\xa6\xd0\xee\x65\xf3\x2c\x15\xaf\xde\x62\xa2\xae\xd4\xc3\x26\x53\x6d\x2b\x00\x11\x5e\x7b\x41\xa1\x84\x26\xfb\x48\x78\xfd\x55\x4d\x82\x9b\x0d\x24\xa8\xd7\xd0\x32\x8e\xad\x0b\x36\xac\x9c\xca\xc6\x39\xe2\x1d\x8b\x98\x9d\x4f\x11\xe3\x8c\x20\x2a\x8b\x97\x55\x39\x9b\xc5\x23\xac\x68\x11\xdf\x18\x5f\x7c\x91\x25\x5f\x3b\xe7\xb9\x2d\x2d\x45\xee\xbb\xb7\x0d\xb8\xf4\x5c\x46\xb4\xa2\x8a\xc5\x02\x10\x1a\x0d\x1f\x2e\xcb\x74\x2b\xc7\xb9\x73\x81\xfb\xce\x01\x70\x06\x81\x96\x8a\x23\x10\x23\x2b\x83\x43\x06\xc6\xd2\xbe\x64\x3f\xb2\x28\x23\x23\xe6\x2d\x1b\x40\x88\x54\xa2\x14\x67\xe0\x92\x61\x5c\x15\x5f\x19\xd4\x1c\xe5\xb7\xf0\xc0\x09\xe2\xd2\x94\x40\x6a\x59\x81\x55\xa6\x1d\x77\xfd\x16\xeb\x5a\x46\x27\x74\xc8\xaa\x33\xfa\x48\x98\xa3\xe9\x03\x77\x26\xf4\xa0\x5c\xa7\xc9\xe2\x10\x43\x94\x28\x89\x43\xc3\xf5\x72\x8e\x64\x0c\x32\xfb\x60\x8f\xec\xbe\x64\x77\x8d\x51\x10\x06\xe3\xaa\x04\x4e\xee\xe2\x7a\x43\x2a\xb5\xb0\xab\x26\x91\x17\x4b\xf4\x47\xc6\xd5\x1f\x03\x60\x5a\x67\xbc\x80\x4f\x9d\x09\xea\xa0\x56\x71\x03\x0e\xad\x25\x1c\x84\x03\x80\xa4\x95\x2b\xbf\xad\x6b\xb7\x88\x5b\x7e\x56\x69\x74\x58\x4f\x62\x6a\x2b\x59\xd4\x3b\x5c\x51\xf5\x5a\xa8\x1a\x3c\x4d\x55\xb4\xe2\xa4\x97\x0c\x9d\x72\x95\x87\xd5\xef\x45\x27\xcf\x6a\x2d\xa1\x7b\x1b\x6a\x4b\x3b\x07\xbe\xac\xc0\xb0\x6d\xb6\x4b\x6c\x92\xa6\xd7\x26\x97\x8b\x72\xe4\x91\xad\x62\xd0\x02\xd2\x7a\x34\x62\xef\xb9\xb0\x57\xb0\xb4\x30\xf1\x13\x1c\x3d\x1c\x12\x16\x23\x9c\xab\xb9\x01\x4b\xb5\x7e\x85\x85\xa5\x06\x2d\x69\x00\xd9\x78\x24\x04\x2a\x23\x2c\x62\x57\xb0\xe0\x91\xbb\x51\x8c\x58\xd0\x08\x00\xd1\x43\x9d\x1e\xa8\x34\xda\xa6\x6a\x12\xa9\xf5\xab\xb6\xb5\x68\xaa\xa1\x59\xab\xa0\xb9\xfc\x9c\x95\x6a\x82\x02\x84\x3e\xc4\xa7\xf0\x69\x7d\x75\xce\x9d\xb5\xd1\xe9\x77\x9a\x9e\xeb\x5e\x88\x03\xab\x51\x18\x93\x94\x9d\x81\x96\x74\xbe\x76\xbc\xb6\x04\xfa\x3a\xcd\x05\x44\x5b\x36\xb5\xf9\x65\x34\xa7\x49\xe1\xbb\xf8\xea\xc0\x0f\x53\x37\x99\x90\x47\x92\x18\xc8\xf1\x48\x40\x60\xb5\xb1\x1a\x7e\x8d\xfe\x8f\xa9\x2b\x89\xbe\x19\xb1\x0f\xc0\x86\x93\x64\x01\x80\x88\xbe\x65\xac\x2a\xcd\x3c\x34\x0e\x40\xd9\x4c\x0e\x54\x1e\x88\xd9\xeb\x39\x7e\x24\x23\xe6\x9a\xf9\x3f\xe8\x01\xfd\x09\x7d\xd3\xa6\xde\xb9\xf8\xe8\x67\xb6\x73\xbc\x0f\xa2\x8f\x83\x5b\xce\x32\x4a\xcb\x6f\x9c\x19\xa4\x64\x84\x6c\x00\x46\xf0\xb8\xc6\x94\x3d\xf2\xa8\x16\x84\x1f\x9e\x5a\x2c\x08\x53\x63\xc6\x63\x32\x26\x0d\x2e\xcd\x25\x4c\x42\x0b\x01\x97\x3c\x26\x2b\x1d\x92\x9e\x99\xfe\x04\xa6\x1b\x99\x4f\xfc\x76\x40\x7e\xb6\x4f\xc6\xf5\xd6\x87\x32\xa5\x35\x8f\xdc\x83\x87\x6e\x32\xee\x4d\x9d\xa9\x2e\xca\xef\x00\x2e\x04\x3b\x80\x66\x87\x5e\x82\x95\x4b\x61\xad\x1e\xc7\xaa\x23\x40\xbf\xac\x67\x6e\x2f\xab\x00\x16\x15\x4a\x57\x08\x3a\xa3\x5a\x7e\xef\xee\xb0\x05\x4e\xb8\x89\x37\xc3\x60\x44\x76\x72\x67\x14\x4b\xe1\x70\x32\x0e\x3d\xfd\x15\x4e\xc8\x09\xcf\xab\x02\xbc\x5d\x00\x2a\xc3\xe4\x5a\x2b\xab\x2f\x34\x1f\x9e\x99\x04\x2e\x32\xa7\x26\x65\x7a\x70\x7a\x81\xf4\xe9\xe0\xa9\xc1\x15\x82\x45\xcb\xd5\x9c\x0b\xfa\x5b\x6b\x82\x49\xbb\x8c\x5e\x78\x5a\x8b\x7c\x1c\x33\xce\xb2\xb4\x0e\xc4\x6a\x44\x0a\x55\xd2\x4a\x9a\x74\x26\x34\xc9\x01\x42\x53\xb3\xd9\x69\x9e\x18\xdc\xfd\x88\x8b\xd8\x14\xbe\x96\xa5\xec\x1f\x88\xa2\x74\xe2\x3d\x56\xbe\x41\x6a\x91\x06\x2d\xb2\xbf\xb1\xe0\x2c\x15\x40\xff\x96\x93\x7c\x47\x09\x54\xaf\x1a\x72\x7a\x87\x67\xb2\x88\x21\x35\x6b\xa3\x79\x73\xb1\xbe\xbf\xea\x99\xca\x20\xe5\xd0\x59\x16\x3d\x82\x8f\x51\xc9\x4d\x5d\xc7\xb5\x2c\x3a\x37\x06\xb9\x7c\x07\x26\x9d\x97\x88\xe7\xa8\xcb\x48\x0d\xec\xc7\x92\xdf\xa3\x4f\xc0\xab\xb2\x88\x67\xb2\x93\x38\x08\xf8\x8a\xf4\xf1\x8c\x26\x93\x0d\x98\x5c\x5d\xa8\x5e\x1a\xd4\x5a\x18\x50\x3c\x5b\x6b\xc8\x85\x55\x1c\xa2\xe6\x9f\x04\x05\x80\xaf\x45\xf1\xb2\x2f\x61\xea\xae\x8b\x90\xc7\x68\x29\xc5\x88\xb5\x10\xd7\xe1\x96\x70\xd1\xcc\xe3\xd7\x30\x40\xd8\x86\xca\x5d\xd7\xfd\xf6\x6d\x27\xc2\xb0\xa4\x7d\x3d\x12\x75\x74\x8f\x95\x87\xc1\x17\x72\x78\x1d\x03\xa2\x17\x6d\x5e\xee\x64\x78\x72\x1c\x47\x38\x9a\xb7\x4e\x6a\xc2\x79\x42\x30\x6b\x93\x5e\x1b\x1f\x57\x8f\x88\xc1\xa6\x04\xd6\x9d\x24\x00\xd0\xea\x96\xc0\x16\xf5\x2b\xc4\x77\x16\x03\xb0\xb6\xe1\xe1\x06\x89\xc3\x0d\x54\x11\xe6\x2c\x3f\x94\xcd\x12\x52\x5d\x2b\x8b\x80\x7e\x60\x3b\x49\xa2\x3c\x09\xaa\xfa\x65\x44\xe8\x51\xeb\x25\x7e\x24\x4c\xeb\x0c\x76\x1c\xce\x99\xf1\xe4\xf2\x59\x7d\x2d\x9f\x03\xdf\xb5\xf3\xa7\x41\xd2\x58\x3c\x62\x70\x70\x79\xf9\xb0\x6a\x5a\x95\x5a\xcd\x08\xed\x52\x1b\x9f\xce\x40\x88\x58\xfb\x78\xde\x96\xcd\xc4\x6b\x9f\x49\xd3\xf7\x18\x62\x0c\xb6\x76\xad\x05\xee\x97\x22\xd3\xde\x6c\xac\x43\x53\x7a\x21\x23\x32\x44\x6d\x94\x41\x5e\x82\xa0\x8d\x36\x34\x9f\x67\xbd\x4b\x8a\xea\x05\xee\x36\xe8\x38\x94\xa5\xae\xea\x8e\x8e\x67\xb0\x4e\x2e\x3b\xb7\x17\x36\xe2\xb6\xec\xb2\xf5\xe9\x19\x45\x98\xa3\xad\xcf\xa9\x04\x86\xe4\x72\x48\x09\xfe\xc9\x68\xd8\x54\x1a\x0b\x98\xab\x52\x90\x66\x6a\x61\x8b\x5a\xc1\xbd\x18\xa6\x64\x1a\xc0\xae\x26\xf7\x70\xf5\x8e\x8c\x4b\x0e\xe2\xa6\xce\xa0\x23\x6b\x56\x68\x6c\xd2\x2d\x74\x08\x00\x51\x49\xb8\x6f\x8b\x06\x31\xf5\x41\xc7\x38\x69\xb5\x65\xed\x80\x69\x42\x96\x64\x91\x64\x6f\xb1\x3b\x95\xc8\x89\xe6\x5d\x38\x49\x2a\xf3\xc2\x90\xcd\xaa\x7c\x8d\xb0\x49\x51\xc8\xb4\xbb\xb3\x3a\xc1\x13\xb2\x96\x7b\xfa\xc2\x7c\xb0\x94\x8a\xe0\x15\x48\x35\xcd\xb2\x64\xd1\x0d\xb5\x29\x0c\xbd\x6b\xc4\xb8\x5a\x35\xb0\x10\x19\x6b\xe9\xdd\x54\x46\x97\xda\x6c\x88\x92\x44\xb9\xa0\x6a\x31\xb6\x46\xbf\xee\x4c\xeb\xd6\x7e\x79\x6a\x3f\xec\xa2\x51\x9f\x20\xd7\x9f\x33\x32\xc2\x3d\x25\xa8\x29\x80\x62\xa7\xd0\x65\xbb\xb5\x96\xdc\x88\x7d\xb3\x6c\x61\x1d\xf8\x4e\xb7\xa1\xea\x2e\x36\x1d\x9e\x2d\xac\x30\xe6\x53\x07\x6b\xd3\x7d\x61\xab\x15\x27\xd6\xb0\x96\x3a\xf4\xdc\x4c\x50\x2e\x6c\x61\x87\x2e\x41\x6d\x29\xfe\x34\xce\xb0\xc0\x49\x42\x12\x2a\xd3\xcd\x6d\xbb\x7f\xfe\x76\xe9\x68\x4f\x4d\x01\x12\x69\xcb\xf9\x7c\xa2\x69\x9e\x22\x96\xa7\x13\x2b\xe5\x62\xf9\x10\x62\x17\xba\x4c\x6b\x03\xc1\xe3\x06\x58\xca\xf7\x16\x01\x1a\xe5\x88\x05\xb8\xc4\xd6\x54\x81\xa3\x39\x25\x8f\x80\x9a\x28\x18\x91\xf2\x08\x5d\x72\x45\x4e\xd0\x47\x9c\xdd\x81\xa0\x66\x2a\x02\xce\x8c\x75\x1c\x4b\xa4\xa5\xd6\x9c\x51\x75\x30\x62\x16\xcc\xd8\xad\xca\x71\xc4\x99\x01\xb4\x8c\x60\x61\x7d\x13\x60\xee\x75\xc8\x8e\xca\xe5\xa5\x51\xd9\xb2\xd8\x02\x3f\x8d\x83\xe8\xd5\xb1\xc9\x0e\x58\x83\x8e\x6f\xf0\x93\x89\xd7\x86\x0a\xf8\xe6\xeb\x25\x92\xbb\x0d\x88\xb2\x05\x60\x0c\x8e\xab\x0b\x1c\xe1\x16\x4c\xc0\x97\xae\x32\xd1\xa9\x5f\xd2\x23\x72\x84\xbe\x4b\xf8\x44\x1e\x20\xe9\x31\x8f\x5d\x81\x7e\x79\x60\x1c\x54\xf0\x6f\x93\xc9\xf3\x95\x5b\xfd\x82\xef\x43\xd5\xb6\x29\xfd\x64\x30\x0c\xe4\x9f\x4f\x8e\x8f\xd3\xc5\xe1\x24\x8f\x1e\x88\xd2\x7f\x81\x4c\xd1\xb8\x42\x0e\x00\x08\x37\xc1\x09\xad\x5a\x9d\x3a\x14\x51\x27\x8a\xb4\x20\x76\x92\x00\xec\xb5\xbe\xd2\x7d\x5d\x4c\x87\x5c\xc3\x59\x73\xd1\x3f\x3b\x65\x91\xb7\x1d\xaf\x12\x5e\xee\xcb\x68\x2b\xa6\xee\x67\x08\xd3\x3b\x4d\xf0\xac\xa2\xb2\xac\xa1\xa4\x5c\xa5\xd4\x52\x91\x9e\x3b\xc4\x5b\xe8\x53\x56\x8e\x32\xfb\xc2\xb9\x23\xc1\xad\x68\xdd\x2d\x47\x23\x36\x90\xe8\x89\x98\x72\x9e\x90\x52\x06\xde\x89\x9c\xca\xb9\x4f\x28\x03\x7b\x29\x34\x6a\xd0\x4c\x4d\xd2\xbb\x55\x1c\x9d\x66\xe5\xfc\x37\x56\x03\xc5\x89\x24\x07\xba\x61\x40\xb4\x72\x81\x84\xe8\x49\xe0\x2c\x23\x62\xc4\x2c\x32\x25\xe0\x2f\x73\x6e\x83\x44\xda\xa2\xc9\x7b\x8d\x72\xbf\x34\xca\x41\x25\xb4\x1c\x2a\xdc\xa6\xa0\xf4\xc8\xa2\x90\x9f\xb3\x4f\x79\x95\xb3\x74\x35\x03\x18\x2f\x7c\x1c\x73\x22\x03\xc3\x33\xf2\xf6\xa3\x84\x4e\x89\xbe\x31\x47\x4c\x2f\x7d\x68\x24\x37\x98\xbe\x0e\xe2\x57\x77\x1a\x09\x2e\xa5\x8d\x16\x37\xed\x2c\xcf\xf9\xd9\xa2\x7c\x98\x01\x26\x36\x85\xfb\xab\x85\xc4\x82\x67\xae\xa4\x98\x7d\xd8\x5c\xcf\xbd\xad\xa9\x95\x05\xc4\x8a\xb5\x58\xa3\x84\xd8\xf1\xe9\xc5\xb9\xaf\x9b\x53\xe9\xba\x5e\x43\x2c\x04\x73\x6e\xaf\x22\x56\x9f\x71\x50\x4f\xac\xd2\xc4\x92\x8a\x62\xab\x37\xab\x1c\xa3\xba\x0d\x52\x57\x65\xeb\x57\xdd\x59\x15\x9a\x59\x15\x4a\xbd\xa3\x6d\x6a\x61\x85\x11\x08\x39\xcf\xed\x15\x06\x61\x41\xbf\x25\x15\x4e\xb3\x30\x4d\xd0\x41\x15\xda\x69\x9a\xa3\xd6\xc6\xb8\x5f\x14\x42\x39\xc2\x26\x02\xa3\x3a\xb8\xda\x56\xac\xe7\xa5\xb9\xb3\xc8\xcc\xbb\x08\xbd\x7d\xb9\xbc\xdb\x64\x51\x44\x9a\x49\x2b\x6f\xb8\xaa\xbf\x2d\xb6\xea\x09\xf1\x28\xd4\xad\x1b\xba\x6d\x62\x9d\x47\xab\x11\x04\x4b\x1b\x42\x00\xf9\x67\x95\xdc\x94\x35\x4c\x9a\x7e\xcc\x26\x83\xf5\xd0\xe3\xbe\x07\x57\x8d\x2d\x65\x14\xb9\x83\x48\x85\x20\x8f\x44\x00\xed\xd8\x38\x15\x56\x3e\xaa\x38\x11\x04\xc7\x8b\x60\x45\xbc\x93\xdc\xf4\x0c\x26\x1d\x49\x53\xad\x74\x82\x38\xcd\xf8\x21\xcf\x9c\x9c\x5d\x7a\x0b\x40\xfb\xe9\x54\xdf\x58\x81\x8b\x5d\x7f\xc1\x0e\xc9\x27\x2a\x95\xd6\x4b\x1a\xe2\x0b\x5d\x23\x70\x4b\x43\x29\x9f\x39\xb1\x37\xdc\xe8\xdd\xe0\xbb\xab\x9b\xbb\xe1\xd9\xe8\x5d\x11\x51\xee\x52\xa6\x3c\x08\x8d\xc3\x14\xe7\x6c\xc4\x7c\x10\xa8\xc7\x5c\x85\xbd\x44\x38\x8e\x0b\xc4\x6b\xab\xf8\x18\x39\x63\x29\x47\x0e\x4e\xc5\xca\xf0\xcf\x25\xcd\xdc\x43\xde\xcc\xbe\x9e\xac\x25\xee\x9e\xd2\xc9\x31\xd9\x3f\x4b\xd2\x34\x76\x74\xd9\x84\x70\x91\xca\xe8\x87\x44\x39\x3c\x33\x46\x9e\x9c\x7c\x0f\xb7\xf3\x31\x36\x97\xf0\x7a\xdc\xce\x6d\xc8\x06\x9b\xfa\x9e\x7e\x22\xf1\x4d\x8b\x54\xb5\x93\x2c\x8c\x4e\xd1\x6b\x8d\xbb\x90\x33\xba\x8e\x96\xea\xa7\x72\xaf\xbf\xeb\xce\x96\xae\x0a\x14\xa8\x02\xd1\x11\xe0\x1c\x15\xc2\x28\x22\x42\x61\xca\xd0\x14\x0e\x36\x8b\x16\x08\xb0\x38\x08\xf8\x5d\xbf\x45\x29\x65\x90\xed\xbe\x6c\x69\xef\xcb\xf3\x58\xa7\x94\xff\xf9\xe5\xfd\x5d\x49\x54\xfd\xfe\xea\xbe\x5c\x47\x7a\xf0\xf3\x52\x59\xb5\xd2\xc2\xb2\x00\x97\x60\x8a\x45\xe6\x9c\x05\xb6\xf4\x2b\xd3\x34\xd1\x0f\x44\xfd\xa8\xf9\x32\x67\xbb\x08\x2b\xb7\x72\x16\x38\x9c\xc8\xf8\xd1\x34\xbc\x06\x19\xd8\xa1\x2c\xc9\x1d\x70\x92\x1c\xf4\x80\x6c\x0f\x61\x22\xfb\x91\xa9\x98\x3c\xd0\xcd\x81\xca\xe8\x02\xb4\xb4\xbe\xc4\x99\x5e\x2e\x03\x2f\xe8\x30\x09\x83\xe6\xf8\xd4\x7c\xdc\x11\xa1\x29\x08\x13\xd6\x6d\x15\x4b\x89\x06\xd7\xe7\x0d\x6b\x7d\x51\xb5\xc9\x7f\x5e\xe5\x1d\x12\xef\x1e\xd8\x75\x65\x87\x20\xdf\x6b\x2f\x8a\x3a\xd8\x99\x6e\x57\xcf\xc1\x78\x51\xaf\xcb\xae\xd9\x7d\x40\xaf\x6c\x92\x67\x4b\x79\x9c\x2b\x80\x2a\xd7\x4b\x6d\x2a\x96\x61\x4d\x14\x99\x70\x40\x36\xae\x3e\x44\x4e\xa9\x07\x6d\x1e\x84\x48\x2a\xdc\x14\x90\xb4\xce\xda\x9d\xa1\xcb\x14\xb3\xe9\x02\x2f\xf3\xa3\xa1\x68\x8f\x3e\x00\x78\x0a\xae\x40\x99\x0b\xb6\xb4\xc9\xc0\xe1\x74\x43\x6a\x5b\x0f\x91\xa6\x18\x9f\xb3\x27\x5a\x6c\x56\x9c\x61\xab\x14\x83\x84\xef\x90\xc3\x9b\x0a\x4d\x1d\x8d\x58\x10\x01\x20\x8d\x4c\xae\xcf\x88\x03\xeb\x87\x0a\x90\x0c\x80\x5e\x21\xeb\xc1\xdf\xcc\xa5\x1d\xa8\xe6\x1c\xab\x79\x19\x6e\xbf\xd6\x8f\x3d\x9d\x72\x8e\x5d\x66\x97\x53\xef\x6d\x60\x55\x68\xfc\x80\xf6\x02\x80\x6d\xdb\x31\xd8\xf7\x40\xa3\xc6\x41\xf9\xa6\x20\x1b\x38\xe6\x44\xb2\x2f\x94\xcf\x9d\xa3\x89\x2d\x11\x80\xab\xf6\x56\x2d\x72\x60\x6a\x5b\x5e\x7e\xc0\x77\x00\x77\xb3\xae\x54\x1b\x1c\xab\x95\x36\x14\xe7\x34\x03\x4a\x08\x83\x3b\xa0\xd3\x36\x6c\x9a\x4f\x19\x89\x36\xc1\xe4\xb8\xc6\x02\xa7\x44\x11\xb1\x2c\xbe\xa3\x5c\x5c\x15\x62\x17\xdc\x0e\xda\x7e\xcd\x2e\x1a\xe4\xf9\x6a\x89\x02\xaf\x7a\x5d\xac\xc2\xd8\xf0\xb3\x58\x0b\x4e\x48\x4f\xe3\x47\x0b\xb5\xbf\xe6\x2c\x6c\x3f\xc5\x34\x6c\xf8\x4a\x00\xa9\xb2\xed\x9c\x5e\x06\x5b\xe2\xae\x86\xd2\x50\x8a\xbf\xd8\x13\x50\x89\xd5\xa3\x6c\x43\x93\x58\xc5\x4b\x77\xc2\xbb\x5d\xc8\xb8\xcb\x49\xac\x1c\xaa\x52\x30\x3a\x50\x09\xc8\xfb\x06\x58\xa1\x19\x11\x02\x84\x96\xa6\x90\xb3\xc0\x8f\x62\xf1\xc2\x0a\x6b\xa3\x95\xac\xaa\xc5\x56\x2a\xcb\xb5\x82\xc7\xed\x2a\x5b\xbe\x97\x68\x76\x2d\xd1\xac\x61\xdb\x33\xd4\x49\x44\x05\xb8\xc3\x16\x41\xb5\x19\xd7\xe5\x09\x42\x32\x87\xbd\x22\x6d\x25\x45\xb8\xfa\x29\xf3\xff\x2a\x73\x70\x47\xd4\x21\xa9\x36\x65\xa9\x1d\x05\xfe\x11\x70\x8f\x24\xa1\x34\x60\x03\x15\x60\xb4\x26\xae\xcc\x98\xa0\xcf\x2f\x8d\x77\x05\xb2\x45\x17\x3c\x47\x4f\x54\x6a\x5d\x78\xc4\x20\xf0\xca\x9b\xaa\x15\x47\xe6\xc5\x03\x78\x0b\xf2\xca\x65\x3e\x49\xa9\x42\x38\x98\x61\xc9\x5e\x76\x60\xcf\xb3\xfe\x00\x66\xdc\x98\xb8\xdc\x84\x79\xb2\xe2\xd0\x6c\x60\xfc\x29\x1a\xd9\x36\x37\x39\x08\x12\x7d\xde\xec\xe4\x40\xe3\x09\x35\xcc\xc6\x33\xd7\xa7\x27\xa3\x66\x6b\x83\x45\x61\x04\xa8\x4c\x2a\x55\xe5\x6e\xb1\xd8\x8b\x2b\x52\x93\x8b\x8d\xe8\x94\x9b\x5c\xbc\xbe\x8b\xe4\xe4\xb6\xb2\x3d\xcb\x92\xd5\xdc\x27\x2d\xc6\x59\x97\x04\xa9\xb8\x8b\x44\x0e\x25\xa5\xeb\x56\x49\x69\xdf\x60\xa2\x8a\x08\xeb\xcd\xe3\x75\xd7\x51\x07\x8b\x84\x97\x90\x8a\x82\xfc\xb5\x32\xc8\x06\xa9\x72\x7e\xc6\x15\x24\x29\x44\x50\xd2\xb8\x96\x38\x37\x62\xcd\x12\xc8\x72\x9e\xb8\x6d\xcc\xfb\x4e\xe1\xa4\x82\xf3\xe7\x66\x61\x2d\x5a\x3f\xf9\xa8\x21\xa3\x2c\xdb\xe2\xc4\x55\x11\xb3\xf0\x3f\xb5\x28\x20\x20\x78\x6c\x92\xc1\xd9\x70\x2a\x3b\x46\xa4\xaf\x3c\x17\xf6\xd2\xdd\xa1\x6a\x57\xe3\xce\x9d\x03\xf8\xbd\x8c\x6c\xb9\xb1\x8b\x40\x75\x6a\x7c\xc5\x8d\xb8\x49\xd1\x45\x40\x69\xdc\x19\xb6\x64\x35\xdd\x5b\x37\x7e\x00\xae\x47\x3b\x74\x6c\xc2\x30\x3c\xe2\x71\x65\x4b\x4a\x13\xb6\xc5\xac\x9f\x61\xd2\xeb\x16\xca\x0c\x5c\x61\xc2\x86\x4f\xd2\xd0\x6e\x00\x15\x32\x6d\xd4\x59\x85\x0f\x7b\xd1\x2e\x67\x31\x11\x8c\x60\x35\x7f\xb9\xa0\xf5\xd3\x6d\x8d\xd3\x2f\x16\xc0\x7e\xba\x93\x2a\xc9\x95\xa0\xf0\x35\xe3\xc1\xd7\x08\xae\x2e\x6a\x66\xd6\x14\xc7\xa6\xea\xf4\x05\xa6\xc7\x3a\x54\xba\x55\x5c\x7b\xb3\x32\xf7\x3c\x11\xfe\x0d\x56\x9f\x5a\x6c\xbf\x3e\xec\x61\xa5\xd1\x15\x4b\xf2\x59\x84\xd2\x3f\x7f\x74\xf7\xb2\x9a\xa6\x79\x10\xf0\x0d\x85\x65\x15\xa6\xcc\x72\xaf\x65\x31\xde\x5a\xa2\x4c\x71\x53\x58\xf7\xde\x27\x0c\x7c\xf6\xf9\x02\x7d\xf4\x78\x1f\x3d\xde\x47\x8f\xaf\x15\x3d\xbe\xcc\xcc\xe8\x3d\x5f\x50\xe3\xad\x54\x99\xc3\xac\xe3\x0a\x6d\x6d\xf3\xa8\x6e\x67\xa9\x0b\x43\x62\xec\x2f\xf6\x87\xc6\xa8\x98\xda\x67\xd5\xd9\x86\x56\x43\xb6\xa8\x1a\xdf\xb1\x88\x13\x0b\x9f\x65\x63\x56\xcb\x56\x9e\x65\x06\xc9\x11\xfb\x9e\x3f\x91\x47\x22\x0e\x10\x56\x28\xe5\x5a\x49\x0f\xa2\x50\x80\xe0\x4a\x48\xcc\x26\xda\x00\xa3\x4b\x9c\x92\xd8\xd4\xd9\x0a\x22\xdb\xac\x59\xd4\x3a\x34\x9b\x50\x22\x01\xf0\xd0\x6c\x83\x8b\x4e\x18\x31\x13\x6d\x66\x22\x9c\xe0\x4e\xa6\x6e\x62\x40\xd7\x7f\xf4\xee\xd6\x3f\x1e\xa1\x3b\x7d\x0f\x50\x59\x1e\x6f\x00\x1a\xd5\x36\xb6\x11\x9b\x09\x9e\x67\xde\x52\xc5\x27\xa6\xe0\xa2\x01\x9c\xae\xbb\x5b\x61\x30\xce\xd7\x1a\xe1\x58\x6b\xbc\xcb\x09\xe7\x55\x02\x11\x37\x42\x5e\x09\x09\x48\x73\x09\x1f\x5d\x65\xa3\x9d\x8d\x97\x34\xc0\x9b\x58\x86\x1f\xfd\x4c\x2e\xdc\x33\x22\xc1\xf6\xe2\x6d\xdb\xa5\xf4\xd7\x72\x8a\x75\xe3\x38\x97\x59\x1e\xbd\x77\xc0\x59\xd0\x9b\xb3\xb7\x8b\xce\x6d\x64\x95\xc9\xad\xb3\xfc\xf8\xd9\x6c\x92\x9d\x03\x28\xdb\xf8\xc5\x75\x2e\x32\x0e\x12\x4f\xb2\x70\xd9\xe6\x16\xa0\x2a\xe3\x59\x6e\xa2\xc7\x68\x18\x4c\xd4\x48\xd9\x54\xaa\x8f\x58\x45\x73\xcd\xdf\x0b\xa0\xa6\x1d\x45\xd5\x15\x5c\xf9\x79\xed\x94\x0d\x33\x38\x0d\x7b\x6f\x31\xdc\x77\xb0\x5b\x9b\xfb\xd5\x45\x58\xbb\x1b\x3b\xd5\xfd\x95\x6a\xc9\x07\xd6\x47\xf7\x89\x7d\xa2\x27\xba\x8a\x8a\x56\x8d\xbf\x1b\x6d\x95\x0b\x05\xed\x3c\x5e\x6f\x0b\xe4\x8b\x33\x8b\x33\x54\xbc\x68\xeb\x02\xb6\x38\xd9\x37\x2c\xf4\x6d\xbd\x27\x50\x39\xbe\xb0\x6b\xa6\x38\xd3\xc2\xba\xe2\xfa\x96\x14\x33\x23\x2f\x9a\xfa\x93\x08\xa3\x5c\x50\x77\xf6\x2b\xa9\xac\xed\xd4\x01\x76\xc0\xe3\xb0\x10\x4c\x84\x83\x1a\x59\xc6\xad\x8e\x23\x95\x63\x1f\xfe\x07\x34\xe1\x4a\xef\x9a\xb4\x5d\xe7\xbe\x16\x4e\x8c\x6a\xd8\xd3\x95\x84\xbd\xc5\x2e\xe3\x26\x58\xb6\x4e\x27\x8d\xb2\x59\x80\xe9\xd6\x6c\x8b\xed\x02\xd9\xde\xf8\x65\x37\xd8\xf9\xc6\x4f\x9d\xec\xb3\xc9\xb7\x4b\x30\x67\x5a\x3f\x5f\x25\xc0\x96\x42\x9d\x6d\xb8\xa9\x95\x9e\x42\xb4\x3d\x6b\x27\x03\xd0\x4c\x0a\xee\x70\x6c\xa5\xa9\xff\xf2\x7f\x99\x12\x3f\x66\x69\xfe\x0b\x71\x31\x62\xe6\xf7\x03\x0f\xaf\xaf\x5f\x28\x70\x2b\x71\x4a\x0a\x64\x3f\x51\xc6\x00\x03\x24\x04\x8b\xe1\x64\x30\x4a\x3d\xba\xb8\x1e\xc3\x43\x3e\x21\x82\x11\x3d\x34\x97\x33\xed\x99\x59\x8a\x19\x9e\x01\x22\xea\x01\xc4\x9f\x81\xb8\x5a\x88\xfc\x86\xa4\x4d\x99\x36\xe0\x56\x9a\x59\xda\x94\xcb\xa2\xda\x24\xf4\x69\x44\x59\x0b\xc8\x58\x04\x31\x34\x53\xff\x8d\xed\x7f\x33\x89\xfd\x6e\x70\xfb\xc3\xf8\x66\x78\x7b\x75\x7f\x73\x5a\x12\xdb\x4f\x2f\xee\x6f\xef\x86\x37\x8d\xcf\x8a\x74\xc5\xbf\xdd\x0f\xef\x5b\x1e\xb9\x06\x2e\x06\xdf\x0d\x4b\xa5\x5b\xff\x76\x3f\xb8\x38\xbf\xfb\x79\x7c\xf5\x7e\x7c\x3b\xbc\xf9\xf1\xfc\x74\x38\xbe\xbd\x1e\x9e\x9e\xbf\x3f\x3f\x1d\xe8\x2f\xc3\x77\xaf\x2f\xee\x3f\x9c\x5f\x8e\x5d\x70\x6f\xf8\xe8\xa7\xab\x9b\x1f\xde\x5f\x5c\xfd\x34\x0e\xba\xbc\xba\x7c\x7f\xfe\xa1\x69\x16\x83\xdb\xdb\xf3\x0f\x97\x1f\x87\x97\xcb\x4b\xc4\x36\xaf\x46\x6b\xf5\xc9\xe0\x22\x0b\x8c\x33\x81\x98\x34\x59\x58\xd2\xa6\xbf\x81\x8b\xe0\xda\xd0\xe3\xe1\x81\xfb\xcb\x14\x74\x3d\xd4\x2c\xd0\x79\x9f\x0a\xee\x31\x62\xde\x3d\xe8\x2f\x55\x28\xe8\x6d\xb3\x4f\x4b\xa3\x3d\x41\x03\x38\x2b\xa0\x30\x94\x3a\x05\xcc\x09\x3f\x52\xe7\x50\x46\xa6\x58\x7f\x4a\xc1\xb7\x8c\x0e\x51\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\x77\x2c\x5e\x76\x1a\x64\x35\xb1\x15\x28\xe5\x04\x39\x0e\x4d\x8c\xda\x6e\x20\x33\x17\x0c\xa7\x34\x32\x3f\x54\x50\x23\x51\x81\x90\x50\x6d\xb1\x44\x60\xe5\x96\xe7\x04\xfd\xf0\xd7\x62\x50\xe0\x29\xb0\x06\x82\xbc\x56\x08\xcc\x3e\x10\xb9\x59\xd5\x55\xe4\x59\xea\xc9\x1d\x73\x6b\xc2\x85\x73\x6b\xeb\xc5\x82\x5b\x27\x67\x01\x4a\x52\xc9\xc7\xa3\x8f\xb7\x99\x51\x85\xc6\x4f\xd0\x2d\x20\x34\xc8\x42\x75\xd7\xbb\x98\x25\xf9\x8c\x32\x44\xd3\x2c\x21\x45\xa5\xe1\x09\x99\xe3\x47\xca\x1d\xea\xbe\x29\x4e\x00\xeb\x68\x45\x2b\x74\x88\x5a\x0f\xca\x09\x1a\xc4\xb1\x2c\x33\xb8\x12\xe5\x38\x96\x79\x58\x1e\x76\x08\x6c\xc4\x62\xcf\x36\x2b\x74\x54\x1c\x39\x58\xb1\xdd\x63\x50\xd4\xd9\x61\xf9\xee\xdd\x0a\x4f\x55\x3e\x8c\x1d\x29\x8f\x37\x12\x06\xee\xb0\x7c\x70\xac\x79\x95\x40\xe0\xd0\x40\xb6\xeb\xd1\xc2\x82\x74\xed\xd4\xaf\xec\x18\x0e\xda\x66\x7d\xb6\x82\xd9\xae\xe8\xd2\xcd\x38\xa9\x54\x1c\xea\xdc\x5f\xa9\x62\x51\x63\x67\x3b\xf5\xaa\x34\x4b\x63\x70\x24\xc7\x9e\xfe\xd7\x98\xc7\x35\x7c\x7a\xe5\xbf\x5c\x2a\xb2\x8d\x83\x75\x5b\xd7\xd7\x52\xcb\xd3\xb4\xfe\x96\xa5\x74\xb8\x23\x54\x9a\xee\xc2\x20\xe0\xc5\xd3\x08\xdc\x6a\x98\x32\x5b\x45\x84\x78\xbf\x8f\xab\x9b\xab\xcf\xb1\xaf\x6c\x85\x27\xfc\xb1\xa4\x5c\xa6\x44\x4a\xdc\x82\x59\x11\x98\xc4\xb6\x61\x0c\xfe\x84\xda\x0f\x3b\xd2\x93\x3b\x93\x77\xfa\xab\x65\x46\x9f\x9b\x50\x33\x76\x13\xd5\x02\x6b\xec\xe2\x59\xd1\x95\xc9\x6a\xd3\xfc\xe5\xa0\x08\x59\xe1\x22\x88\xe4\x69\x73\xb3\x74\x34\xab\x55\x17\xac\xb1\x38\x4c\xe8\x2a\x5b\x3f\xd2\x25\x68\x7d\x63\x20\x5f\xeb\xbf\xc0\xe5\xf5\x59\x83\xea\x4a\x7e\xc5\xb0\x70\xae\xa9\x11\x0f\x36\xb7\xd0\x96\x7a\x80\xb0\x49\x26\x2c\xa4\x29\x99\x47\x73\xe3\xcd\xd1\x57\xc6\xc1\x88\x3d\x05\x1b\x52\x0a\xb7\x1d\x84\x2d\x01\x08\xe2\x27\x7d\xdc\xe8\x63\x29\x88\x19\x44\x46\x0a\x11\xb5\x01\x21\x18\xc7\x5b\x51\xf5\x66\x05\x81\x07\xfb\xb5\x05\xa9\x6f\x50\xe2\xac\xa1\x0a\x7f\x53\xa1\x33\x3f\xb7\xa0\xbe\xd8\x16\x9a\x72\xd7\x21\x04\x25\xce\x9a\x46\xb0\x83\x0a\x67\x2f\x8a\x4a\xec\x93\x22\x4d\x0e\x6d\x3a\xb1\x30\x05\x7a\xba\x6e\xb5\xff\xe4\x66\xf4\x27\xe3\x77\xc8\x5b\x70\x2d\x82\xd6\x3c\x30\x31\x3a\xd4\x32\xab\xcb\xb7\xb6\x01\x0f\x12\x1d\x1a\xb0\xb3\x2f\x20\x9e\x71\x70\x7d\xfe\xc5\x01\xfa\x22\xcc\xe9\xfa\x62\xa3\x03\x68\xc7\x6d\xab\x9c\x81\x36\x55\x0a\xec\x2f\x1f\x3b\xd8\xab\xca\x49\xb4\x7b\x66\x0f\x22\x6a\x3b\x87\xfa\xcb\xd2\x37\xe0\x04\x86\xaa\x5d\xc6\x4f\xea\xc3\x8a\xad\x0b\xc8\xc8\xb8\x54\x36\xac\x5d\x3c\x62\x93\x45\xd5\xc9\x73\xe0\xbd\x3c\x9d\x4f\xe9\xd6\x95\xa8\x74\x7b\xf5\x24\xe0\x1d\x87\xbb\x2e\xbf\x0f\x56\xa4\x15\x0f\x4c\x64\x33\x9f\x06\x5c\xac\x2d\x1a\xa0\x8f\x13\x6f\x9a\x55\xc9\x5e\xe6\x16\xb3\x71\x53\x56\xc9\x3f\x6f\x8d\xdc\x3a\x04\x57\x0f\x9a\x56\xc4\xc6\xd5\xb7\x08\xd7\x3d\x95\x3d\x2f\x95\xed\x22\xaf\xa0\x3c\xb8\xf5\x2f\xd0\x53\x23\xc7\x05\xcd\x38\x83\xab\x56\x26\x3c\x83\x2f\x95\x2b\x5b\x5d\xe7\x73\x4d\x9f\x6f\xb0\x26\xab\x9d\xbe\xb7\x26\x70\xc0\xb8\x5d\xeb\x63\xad\x0e\x75\xa0\x6c\xed\x14\x4e\x4d\x0e\xa1\xa2\x29\x39\x40\x9c\x25\x8b\x20\xd8\xc1\x9e\x57\x20\x37\x13\x0b\x34\x27\x54\xb8\x4e\x2c\xcc\xdc\x5a\x49\xe7\x6b\x4a\xe3\x6d\x34\xb2\x45\xa4\xc9\xe5\xe0\xe3\xf0\x6c\x3c\xbc\xbc\x3b\xbf\xfb\xb9\x01\x42\xb0\xfc\xd8\xa1\x08\x06\x2f\xdc\xfe\x7c\x7b\x37\xfc\x38\xfe\x30\xbc\x1c\xde\x0c\xee\x56\x20\x0c\x2e\xeb\xac\x0d\xbd\x2e\x97\x4d\xea\xdb\x3a\x08\x76\xce\xcc\xdb\xd0\x7b\x1d\x67\x30\xe8\x84\x92\x16\xac\x41\x93\x60\xcf\x62\x22\x50\x4c\x1e\x49\xc2\xb3\xc2\xac\xda\xb8\x60\x01\x08\x61\x43\xfb\xcb\x80\x08\xa1\xcd\xea\x1a\x9f\x20\x53\xa2\x2a\xa8\xd2\xe9\x1b\x04\x91\x0f\x0b\xc2\xbe\x50\x88\x7c\xca\x12\x1a\x51\x15\x24\xe0\x71\x61\xdd\x2b\xc6\x7d\x08\x51\xa0\x2b\x88\x6b\x67\xd1\x28\x3b\xd7\xf9\x43\x4f\x7a\x5d\xdb\xf7\x27\xca\x83\x62\xad\xac\x7b\xb2\x03\xc5\xbe\xc5\x69\x5c\xc3\xec\xda\x60\x74\xcf\x61\x1e\xa8\x67\xc2\xd8\x24\xba\x16\x3c\xaf\xe6\x41\xae\xbe\x0d\x97\xc5\xc9\x94\xce\xf5\xf2\x40\x99\x6e\x94\xfa\xca\xe1\x2e\xa5\x7a\x80\x3b\xc0\xb7\xb0\x31\xe2\x6b\x06\x2c\xd4\xca\x5c\x30\x13\xdb\x89\x91\x20\x29\x57\x5a\x01\x33\x11\x01\x07\x5a\xa8\xa2\x38\xa1\xbf\x01\x12\x94\x20\x47\x41\x04\x05\x24\xda\xc5\x61\xc4\xa5\x45\x69\x38\x1a\xb1\xb3\xe1\xf5\xcd\xf0\x54\x33\xa4\x23\x74\x2f\x01\xe4\xa9\x34\xf5\x33\x4b\xde\x46\x1c\x0b\x23\x19\x28\x93\x8a\xe0\xb6\x60\x30\x22\x04\x17\xdd\xf9\x83\xef\x6f\x08\xdf\x35\x93\x37\x3c\x2b\xd9\xa6\x9c\x01\xe0\xb2\xb5\x98\x6b\x10\x9b\xbf\xf3\xd4\xa7\x1b\xfc\x54\x5a\x91\x10\xe4\x02\x24\x91\xf2\xaa\x3f\xe3\x6a\x03\x86\x63\xf7\xf9\x95\xfa\xbc\x86\x6f\x97\xcd\xf3\x0e\x42\xec\xa4\x2a\x00\x21\x0d\x66\xa4\x2f\xd6\x51\x99\x67\xab\xa8\x28\x5e\x03\x10\xa3\x42\xfa\x13\x32\xc3\x0c\x89\x9c\xb1\x0a\x42\x68\x68\x69\xab\x07\xcd\xac\x7b\x54\xf5\x9a\xe1\x94\xe7\x0c\x94\x06\x08\x63\x6d\x18\x8c\xcc\x08\x53\x2b\x06\xf3\x5a\x70\x27\x95\xa1\xee\x2f\xe2\x49\xc3\x40\xdb\x40\x4f\x9a\xfc\x49\x50\x31\x76\xbd\x6b\xd9\x05\xe5\x95\x9c\x4a\xfa\x50\xf9\xfb\xb9\x59\xcb\xc6\xf2\x61\xeb\xee\xee\xb0\x7c\x58\xdd\x55\x4c\xa2\x87\x75\x2f\x9b\x6a\x06\x64\x62\x0b\xee\xd6\x8c\x7d\x0b\xfd\xd4\x56\x94\x80\x3a\xcb\xd1\x03\xfa\xfe\xee\xe3\x05\x9a\x52\x2d\xf7\xea\x6b\xe5\x12\x6b\x19\xfb\x5e\x24\xbe\x88\xbd\x91\x41\x72\x91\xf8\xbb\x17\x36\xde\x89\x52\x81\x94\xa0\x6f\x34\x3c\x23\xce\xd8\x2b\x2c\xa6\x5d\xa5\xa2\x84\xc0\x2c\xe6\xa9\x99\xc7\xb1\xcc\xa7\x53\xfa\xe9\x48\x61\xf1\xd5\x1a\x12\xcd\x69\xc9\xc1\x56\x21\x23\x1b\x3e\x69\x21\x16\xc1\xaa\xb0\x52\x4e\x18\x3e\x12\xa6\x76\x22\x64\x43\x13\x0d\x19\xde\xdd\x4c\xe5\xa6\xbc\xde\xf9\x59\xc1\xa1\x7d\x99\xf7\x20\x34\x47\x09\x0c\x97\x95\xcd\xaa\xb1\x7e\xe1\x36\x6f\xf5\x63\x67\x07\x28\xbc\x5a\x5f\x97\x15\xf1\xdd\x76\xb5\x8b\x32\xbb\x45\x6c\xa6\x83\x28\xdf\x10\xf3\x45\x12\xa3\x8a\x07\x58\x03\x56\xc3\xaa\xee\xb9\xe9\x73\x8e\x65\xb5\xcb\x95\x5b\xbe\x01\xc0\x49\xa9\x99\x0f\x04\xf2\xff\x76\x11\x4d\xbd\x4e\x9e\x37\x0c\xe4\x5e\x24\x10\x07\xbc\xd4\x14\x63\x4a\xfc\xea\xe3\xeb\xc5\x13\xdc\x41\xd0\x34\x83\xd1\x92\x0f\xc9\x04\x81\xa2\xf3\x27\xe8\x3a\x21\x5a\x7c\xc8\xb5\x08\x91\x27\x89\x03\x83\x5a\x2e\xe2\xac\x05\x60\xf6\xec\xf3\x0a\x04\xe8\x25\x13\x73\x60\x68\xcb\x67\x16\xac\xc1\xee\xb3\xf3\x83\xf5\x05\x3b\x28\x58\xc3\xca\xaa\x10\x30\xe0\x85\x09\xfe\x04\x7b\x08\x2e\x71\x63\xfa\x9b\x66\xf3\x82\xc8\x39\x6f\xcd\x88\x0b\x67\xfb\x3c\x73\x70\x4b\xf9\x8c\x93\xb0\x91\x77\xe3\xb6\xe0\xe0\x0e\x97\xf3\x99\x69\xa2\x51\x24\x58\x36\x45\x8f\x62\xef\x43\x18\x2c\x34\xa7\x0d\x65\xb3\x43\x03\xc7\x5c\x61\x2f\x0a\x61\xb2\x0a\xfb\x7b\x21\x91\x2f\x8c\x03\xd1\x7f\x5e\x58\x41\x8b\xb8\x76\xaa\x64\x51\xf1\x09\xe9\x3b\x7d\x3d\x2e\x6b\xb3\x1f\x8a\x26\xf4\x80\x9b\x59\x9b\x05\xb0\x07\xb9\xcd\xc6\xb6\xc8\x12\xc0\x97\xdd\x62\x33\xe5\x46\x9d\xa2\x9d\x81\x6e\xeb\xc7\x01\xb1\xac\x48\xf8\x7a\x2e\x77\x4e\x89\x5a\x4a\x13\xe8\x21\xa3\xd6\x87\x8c\xb2\xd5\x0c\x3c\xed\x01\xc0\x9b\x12\x90\xd1\x5d\x78\x6c\xaa\x97\xbc\xb5\xb2\xae\x4a\xb5\x29\xed\x4e\xa7\xbc\x9a\xd2\x17\xfa\xdc\x9f\x6d\xe9\xf2\xd1\x93\x59\x8c\x21\x53\x71\x9b\xb0\x8f\xd2\xfc\x8d\xb9\x1a\xda\x24\x31\x32\x69\xe9\x06\xd0\xd6\xae\x9d\x37\xd5\x67\x58\x10\xa6\x46\xec\x46\x8f\xc2\x7c\x51\xb8\xfe\x8b\x6a\xf5\xa4\xa8\xed\x38\x45\xd8\x7e\x05\x8b\xde\x16\x79\x25\xc7\xe6\x25\xd0\x85\x9e\x31\x7b\xfa\x3b\xf3\x8e\x49\x66\xb7\x60\x2e\x7a\xaa\x74\x5a\xe8\x8d\x5a\xd8\x8b\xe6\x14\x72\xc9\x63\x22\xed\xe5\x41\x95\x05\x0b\xf0\xa2\x72\x4e\x1c\xac\x2e\x7c\xe6\xf9\x57\x13\x73\x75\x9a\x29\x73\x16\x21\x39\x62\x41\x1f\x4b\x50\x18\x8d\x76\xb8\xa1\xd8\x0f\xfb\x4c\x63\xef\x69\x81\x7f\x9a\x1d\xe2\x82\xce\x28\x0b\x0a\xb5\xd8\xe9\xa5\x38\x03\x7b\xa2\x39\x83\x7c\xea\xef\x9f\x3b\x1b\xd6\x7e\x04\x23\xfe\x9f\xff\xfe\xfb\x11\x6d\x33\xb7\xcb\xb1\x5d\x81\x7d\xd8\xc9\xf5\xb6\x25\xdc\xf9\x00\x1e\xa2\x05\x76\x40\xe6\x13\x8f\xdd\x5c\x0a\xd5\x2f\x7e\xb5\x97\x9b\x26\x1a\xae\xe6\xc6\xbf\x58\x26\x77\x30\xc6\x8b\x7c\xf9\x2d\x1b\xb0\xb8\xc2\x03\x5d\xb8\x19\x83\x28\x4f\x07\xfe\x6f\xa2\xf3\x74\xfb\x95\x0b\xa5\xc2\xa0\x02\x94\xb6\x6d\xa2\xe1\xe6\x58\x3e\x5f\xc8\x43\x63\x45\x15\x63\xa5\x0c\xef\xc8\x55\xc1\x0f\x66\x90\x26\x8b\x4e\xef\x4a\x2e\x89\x30\x07\xda\xc3\xf9\xa0\x7a\xd1\x65\x88\x7d\x5b\xe1\xc3\x21\x29\xa6\x6b\xc5\x69\xeb\xf7\x9b\x11\xf2\x4a\x46\x5c\x3c\x23\x62\x1c\xe7\xa5\xa0\xdc\x55\x6d\x5f\xeb\x8f\xce\x72\xb5\x58\xdd\xbe\x4c\x70\xf4\xb0\x0e\x2a\xa1\x7e\xbf\xa5\xd9\xd5\x82\x61\x10\x3a\x51\x16\x0e\x5b\x30\xff\x48\x05\xf3\xcf\xc6\xf2\x95\xb4\x76\xb8\x68\x18\x54\xcd\x0e\x84\x7b\x7b\x13\x19\x64\x62\x18\x39\x9a\xe4\x85\x95\xc3\x63\xbd\xc7\x47\x23\xf6\xde\x14\x4b\x00\xc5\xc3\x0c\x20\x82\x44\x0a\xf2\x29\xe3\x92\x94\x32\x7b\x1a\xf0\xdb\x6d\x66\x9e\x1d\x46\xb3\x4c\x5a\xa9\x5a\xbe\x95\x48\xfa\xea\xe8\x8d\xf5\x0d\xaf\x4f\xb9\x99\x02\xb7\x92\x7a\x22\x9a\x51\x4d\x3b\xe3\xc6\x93\xb6\xfe\xd4\xbb\x96\xff\x28\x62\x65\x00\xc7\x47\x25\x8b\x03\xe4\xa7\x57\x21\x88\x84\x3c\x12\x30\x53\xc2\x18\x43\x94\xfe\xb2\xa9\xa9\x85\x9d\xac\x3a\x40\x45\x5a\x1d\xb0\x05\x14\x57\x47\x50\x4e\x3e\x6a\xa2\xc5\x72\x5a\xc5\xd6\x19\x40\x4d\x0e\xff\x35\xa4\xd0\x41\x58\xad\x60\x41\x14\x22\x9f\x14\xb1\xc5\xf6\xee\x5c\x8e\x56\x3d\xac\x1b\x35\xa7\x99\xb4\x8b\x48\xbb\xa7\x8a\xda\x44\x6c\x66\xae\x4b\x42\x8b\xdd\xbd\x6f\x93\xb2\xe6\x98\xc5\x36\xd3\xd0\xca\xd2\x5a\xa6\x80\xd9\x19\x3b\x90\x8f\xc1\xb6\xf9\x72\x01\xcc\xb3\x69\xd3\xe0\x51\xc3\x45\xe6\xf4\x22\x2d\x99\x83\xdb\x9a\x0b\x2d\xa0\xe6\x4c\xd1\x44\x13\x87\x1d\x83\xd6\x9a\x73\xe6\x81\xd6\x20\x62\xb8\x0d\xcb\x8b\x4a\x49\xd9\x6c\x6c\x57\xd2\x25\xcd\x75\xbb\x18\xca\x34\xf5\xd1\x34\x65\x7e\xfc\xce\x35\xb4\xdc\xce\x6b\xc8\x1a\x70\x96\x5c\xba\x1e\x08\xd6\x8c\xbb\xc9\x58\x80\x2c\x97\xe5\x37\xa6\xb1\x59\x0a\x6a\x6a\xba\xc2\x44\xd7\x31\x52\x80\x58\x57\xcf\x8f\x2f\xae\x10\x69\x53\xf0\x4c\x62\x0d\x44\x40\xab\x96\x1c\x43\xd9\x9a\x5b\x78\xce\xbc\x88\x66\x8b\xf6\xf8\x0c\xea\x4a\x9a\x22\x76\xdd\xd9\x30\x6f\x9c\x24\x13\x1c\x3d\x78\x65\xc3\xab\xdc\x5c\x38\xd0\x73\x2d\xa0\x42\x55\x27\x43\x5c\x7a\xa0\x11\x48\x37\xa1\x17\xc6\x20\xa4\xd8\x61\x17\x9d\x9b\x55\xb3\x10\x4f\x06\x12\xc7\x8c\xde\xc4\x8c\xc7\x24\x4b\xf8\x22\x6d\xb9\xcf\xaa\xa9\x59\xdb\x44\x40\xb4\x65\x86\xed\xf4\x2a\xab\x30\xbd\xb5\x2f\xb3\x5a\x9e\xc7\x0e\xf0\x7a\xd6\xe0\x92\x1f\x12\x3e\x01\x2b\x9f\xd5\xb2\x5d\xee\x42\x10\x42\x5f\x3d\xcf\xeb\x66\x54\x54\x4f\x24\x95\x59\x82\x17\xcb\x7a\x30\xb1\xfc\xcf\xbb\x6f\x26\xf7\x7b\xb5\x11\xac\x7b\x14\x6c\xe3\xe7\xcf\x81\xc0\x7a\xe1\x24\x01\xf3\xae\xe1\x5f\x15\x63\x92\x49\xa2\x3a\xca\x04\xd7\x82\x02\x1f\x31\x85\x67\x6e\x73\xad\x70\xc9\x9f\x18\x11\x72\x4e\xb3\x52\xb5\xb7\xad\xc3\x6e\x2d\x45\xdb\xff\x98\x20\xd3\x35\x78\x27\xcf\x0e\x0d\xf2\x83\xa6\x0f\x99\xe1\xa8\x30\xfe\x45\x09\x96\x92\x4e\x17\x01\x60\x83\x8f\x60\x84\xb4\x98\xb2\xb6\x1c\x14\x58\x6a\x62\x34\x66\x7c\xbb\xc9\x58\xde\x3e\x5b\xeb\xbe\x7c\xfc\x68\x1c\x22\x63\xe9\xfb\xa4\x8e\xce\xe1\x6e\x6a\x8b\xd2\xd1\x8a\xa4\x69\x52\xb3\x37\xcb\x30\x5e\x0a\xaa\xd2\x6e\x46\x28\x84\x49\x3b\x6c\xab\xc8\x78\x20\x85\x10\x64\x44\x95\x52\xd4\x60\xf3\xb5\xe2\xe4\xcc\x9f\x9a\x38\x3d\x08\x03\xe4\xaa\x17\x1f\x1f\x20\xb9\x15\x78\x51\x17\xba\x38\x23\x09\xd9\x49\x24\xeb\x06\x44\x52\xf5\xb0\x07\xe4\xb1\x94\x34\x0a\x90\xf4\xd5\xc6\x85\x0d\x02\x6c\x5b\x20\x50\x9a\x87\xfe\x93\x19\xa8\x8d\xb1\x6d\xda\x45\xb0\x7f\xc1\x2a\x77\xd5\x5d\x9a\xb0\xd4\x4c\x0b\x96\xe4\x8a\x6e\x4a\x74\x55\x74\xea\xe5\x95\x7d\x24\xb5\x57\x0e\x45\xad\x8d\xeb\x03\xe9\x12\x71\xb0\xf2\x00\x6c\xc4\x81\xea\x7c\xba\x1b\x5d\x58\x3f\xa1\xe2\x68\x46\x94\x29\xac\xed\xab\x87\xbf\x25\x9a\xd8\x59\x20\xfd\x8e\x56\xbf\xf9\x90\xaf\x77\x6a\x6f\x89\x92\xee\x4a\xa8\xc1\xd3\xd9\xcd\xd9\xc3\x2d\xd8\x8f\x63\x69\x04\xd7\xcf\x5e\x6e\xd9\x3a\xf9\xdc\x8e\xcc\xa6\x60\xff\x8e\x04\x2a\x33\xc7\xd8\x7e\xe1\xd3\xad\x4b\x40\x43\xb8\x04\xce\x66\xd6\xe8\xf5\xb9\x5e\x95\xb4\x3f\x77\xd1\x6b\x7d\x1a\xaf\x8e\xaa\xa0\xee\x5e\x1e\x5c\x4f\x1e\x74\xe0\x85\x7b\x78\xf9\xb7\x1d\x83\xfd\xbc\x7f\xf6\x40\x38\xac\x5d\x89\xbb\x13\x11\xdf\x10\x99\xec\x85\xa4\x58\xdb\x8a\x97\x92\x17\x0f\x1d\x7a\x4c\x81\xc5\xb2\xbf\x5b\xb4\x1f\x27\xf9\xc6\xba\x81\x9e\xef\x82\x5d\x4d\x2f\x3b\xa1\x0f\x00\x52\xc4\x90\x6f\x9a\xdb\xca\x0c\x70\x78\x83\x90\xb1\x9a\xef\x61\x45\x30\x9e\x1d\x5e\xa7\x30\xbc\xda\x72\x3e\xc7\xf6\xda\xe4\xa2\xce\x9b\xfb\x9c\xa4\xb6\xee\x58\x76\xa1\xa3\x3c\xb3\x17\xc7\x52\x63\xf0\x41\x1f\x13\xdb\xed\x16\x6d\x80\x2c\x71\x5b\xb6\xcb\x43\xd6\x54\xb6\x6a\xfb\xf4\x68\x97\x72\x36\xce\x04\x99\xd2\x4f\x1b\x89\xe2\xd7\xf0\xa9\x55\x2f\xf5\x32\x57\x0a\x61\x81\x7b\x06\x0a\x67\x05\x71\x7b\x76\xa5\x6d\xb1\x9c\x11\x2b\x32\xce\x6c\xba\xd9\x03\x59\x20\x2e\x4a\x3f\x6d\x0a\xae\xb7\xfb\xa2\x5d\x66\x5f\xe7\x4a\x65\xf2\xe4\xf8\x78\x46\xd5\x3c\x9f\x1c\x45\x3c\x35\xe1\xe6\x5c\xcc\xcc\x1f\xc7\x54\xca\x9c\xc8\xe3\x6f\xbf\xf9\xa6\xd8\xe2\x09\x8e\x1e\x66\x06\xae\xa4\xee\x77\x2a\x6d\xf9\x6d\xbd\xb0\xed\xfa\xa5\x1e\x04\x67\x63\xf2\x49\x13\xa9\xdc\x14\xc8\xe6\x5e\x12\x89\x06\x3f\xdd\x22\xb9\x60\x0a\x7f\x3a\x41\x1f\x29\x03\x01\xe4\x7b\x9e\x0b\x89\xce\xf0\xe2\x90\x4f\x0f\x53\xce\xd4\x1c\x7d\x84\xff\xb5\x3f\x3d\x11\xf2\x80\x7e\x26\x58\xd8\xfd\xb5\x25\x91\x7c\x75\xdd\x39\x86\x5c\x5c\x89\xc8\xa3\x5e\xe1\x6f\xfe\x03\xa5\xa6\xe5\x13\xf4\xf5\xf1\x37\xff\x81\xfe\x08\xff\xff\xff\x47\x7f\x6c\xd1\xd4\xd6\x83\xc2\x81\xc2\x99\x37\x65\x77\xdc\x41\x65\xa5\x36\xa8\x25\x7c\x2a\x78\xb1\x53\x8d\x2d\x3f\xd0\xe8\x81\x4f\xa7\x63\x45\x53\x62\x72\x83\xc6\x58\xd4\x60\x54\x37\xc4\x15\xa4\xb6\xf2\xa9\xa0\x06\x6e\xdb\xd5\x56\xb0\x9d\x9a\x4c\x68\x77\xdc\x64\x5e\x54\x7e\x84\x20\x90\x52\x35\x4d\x2a\xe1\x2b\x12\xeb\x53\xb1\x4e\xc0\x87\xb3\xce\xd4\xeb\xb3\x17\xc8\x01\x61\x35\x5f\x1f\xb8\x15\x46\x21\x9a\x40\x0d\xbb\x90\x8d\xc7\xa1\x16\x1e\xf9\xd9\xc4\xbc\xc1\xd4\x5e\x2b\xde\x4d\xd6\x3a\x5f\x1d\xea\x76\xcb\xc5\x56\xf2\xf2\x03\xa9\xc5\xdc\x76\xac\x23\xe2\x6a\x48\x86\x75\xa5\x21\xe9\x94\x0b\x8f\xef\x69\xf4\x5a\x5b\x6d\x6c\xb5\x15\x8a\x0a\x13\x1c\xd4\xed\xd0\xeb\xa9\x9f\xf9\x4f\x56\x0d\x13\x22\x85\xdc\xdb\x45\x1d\x25\x18\xad\xbe\xe2\x34\x4b\x6c\x18\x71\x03\x08\xd8\xaa\x0d\xbd\xf5\x79\xdf\xd0\x38\x84\xad\x41\xc8\x3e\x73\x92\x89\xcd\x49\x6e\xde\xcf\x5c\x44\xe4\x94\x6f\x17\xb6\x98\x50\x56\x8b\x77\xee\x5e\xa2\x23\x28\x56\x6e\x8a\xb1\x38\x9c\x4c\x1e\x17\xc2\x9e\x31\xeb\x5a\x74\xf6\x00\xa0\xaf\x3c\x1b\x00\x7a\xda\x05\x06\x5c\x0d\x33\x7c\x0b\xae\x6d\x0c\x7f\x05\xc3\x73\x90\xf3\x15\xa4\x79\x81\x35\x2f\xdc\x10\x36\xcf\xd4\x0e\x39\x40\x02\x43\x1c\x9b\x9a\x63\x66\x54\xc2\x29\x8e\x28\x9b\x1d\x04\x88\x69\x90\xf8\x1d\x72\xe0\x26\xba\xb8\xc3\xf2\x61\xb7\xb1\x59\x5b\xd7\x52\xa3\x71\x51\xcf\xc7\x62\x1c\x18\x5b\x30\xad\xc1\x45\x29\x2c\x1f\xda\x40\x3e\x6a\x08\x43\x4b\x46\xe7\x97\xc2\xe1\x12\x2d\x1b\x9f\x4b\x24\x25\xa1\x08\x0a\xf0\xe1\xae\x8a\xa6\xc5\x1b\x73\xb9\x40\x18\xee\x4d\x9a\x90\xb8\x0a\xb4\xb7\x64\xfc\x72\xce\x85\x1a\x6f\x08\x51\x58\x4d\x86\x65\xe4\x30\x01\x58\x06\xfe\x48\xc4\x23\x25\x4f\x65\xa4\xbf\x75\x68\xd1\xd8\x19\x82\x40\x24\x80\x82\x4b\xb5\x26\x1d\x1b\x7b\x37\x5b\x18\xde\xa4\xcf\x33\x96\x0f\xd2\xd7\x14\x44\x32\xc5\x49\x72\x80\x04\xc9\xa5\xa9\x69\x29\x49\x32\x3d\x74\xa8\xec\x31\x4a\xf8\x8c\x46\x38\x41\x93\x84\x47\x0f\x72\xc4\xf4\xdd\xcc\x66\x86\x2f\x64\x82\x47\x44\xca\x40\x98\x29\xf2\x5c\x6d\xf6\x11\x14\x14\x54\x44\xa4\x94\x51\xa9\x68\xe4\xa4\x94\x22\xb5\xdc\x94\x8f\xd5\xea\x65\xc4\x4d\x19\x44\x18\xae\x16\xae\x88\xc1\x89\xcb\x99\xad\xdf\x01\x37\xa4\x85\x7f\x72\x71\xb5\x6d\x07\x68\x07\x68\x56\x8e\x42\xc6\xaa\x7c\x20\x57\x1c\xa9\x53\xfb\x19\x1c\xe3\x65\x24\x70\x53\x3e\x51\x9e\x20\xfd\x49\xf3\x20\xc9\x8e\x2e\x8b\xa8\xe1\x92\xb0\xe0\x83\x69\xf7\x0c\x5c\x07\x86\xdc\x02\xa9\xb3\x8a\xa6\xf5\x2a\x82\x94\x01\x25\x63\xaa\x8e\x46\xca\xa2\x24\x8f\x7d\xd1\x30\x7d\xeb\x3e\x6a\x22\x71\xcb\xa3\xd7\x5e\xdf\xcd\x07\x08\x4b\xf4\x44\x92\x44\xff\xd7\x04\x0d\x1f\x7a\x0c\x6f\xcd\x92\x0d\xce\x3a\x74\xe2\xb8\x74\x2b\x45\xc1\x24\xf6\xa4\xd6\xa5\xbf\xb7\xd7\xe5\xcc\x2b\x25\x33\xbd\x3c\x6b\x72\x68\xbd\xd2\xad\x78\x87\xa5\xb1\x95\xc9\x16\x80\x5b\xda\x07\xd5\xd1\x00\x24\x9a\x32\xa4\x0d\xc5\xc1\xd3\x47\x5a\xd4\x75\xb5\xbd\x2d\x35\x10\xe9\x19\x75\xb2\x0e\x85\x44\xb1\xb1\xc5\xb3\x32\x95\x1a\xd2\x00\x35\x05\xc1\xcd\x84\x40\x4d\xc8\xa3\x88\x90\xb8\x31\xbe\x54\x8f\x68\xef\xf0\xfc\xae\xb1\x9a\x9b\xa4\xf5\x94\x2b\x53\x56\xd0\xe0\xf9\x39\xcb\x95\x01\x80\x9b\x24\x7c\x02\x17\x12\x40\xfd\xb9\xa4\xd7\x20\x61\xce\xcc\x9b\xc4\xe8\xcb\xe0\x7e\xf1\x80\x0a\x5f\x35\x03\xcf\x95\x56\x64\x0f\x60\xfe\xaa\x26\xb3\x56\xb0\xbf\x72\x65\xac\x23\x74\x5d\x41\x01\x09\x2b\x4b\x63\x7d\x6d\x2c\x45\x94\x79\x25\x68\xc0\xca\x24\x9e\x6f\x87\xd6\x84\x06\x2c\xf5\xb9\x03\x68\xc0\xca\x3c\x5b\xa2\xf2\xf9\xec\x59\xb3\x89\xf5\xa4\x2e\x78\xf7\x14\x2f\x83\x46\x65\x44\xbc\x12\x09\xba\x03\xb9\x68\x22\xc4\xfd\x82\x3d\xac\xd4\x8f\x7b\x5d\xd8\xc3\xca\x60\xf6\x19\xf6\xb0\x32\xd4\xfd\x85\x3d\x6c\x18\x68\x07\xd8\x43\xe3\xb6\x1f\x6b\xa2\xee\xc6\x14\x20\x65\x65\x92\x4f\x6f\xe1\xde\x5d\x3a\xc6\x53\x13\x12\x60\xae\x31\x27\x4a\x5a\x14\x60\x18\xad\xcd\x6e\x6c\x0b\x74\xc2\x72\x2b\xda\xf3\x7e\x35\x2a\x8d\x21\x21\x4b\x30\x2b\x5f\x1d\x50\x22\x5e\x90\x48\x93\x9f\x61\x54\x4a\x60\x26\x61\xaa\x07\xd6\x5c\xa7\x47\x61\x2c\xd4\x11\xce\x6c\xb6\x78\x5b\x71\x8e\xfd\xc9\x8b\x5d\x0f\x51\x12\x80\xee\x4a\xac\xbe\x13\x4c\xd5\xc7\x0a\xbe\xfd\x9c\x3f\x59\xc9\x11\xc8\xcf\x10\x63\x2b\xe9\x41\xa7\x63\x6b\x53\x68\x5b\x31\xca\x14\x99\x55\x45\xfa\xe2\xb0\x50\xa6\xfe\xfc\xed\x4a\x0e\x64\x70\xfc\x9c\xf5\x22\x40\x99\xb7\xd0\x21\xbe\x9e\x0d\x89\x6d\x91\x7b\xa9\xb5\x6b\x3d\x1d\x73\xa3\x4a\x94\x62\xea\xf4\xfc\x5c\x82\x73\x6e\x4e\xe5\x88\x99\x04\x2e\x5b\x5b\xed\x08\xbd\x87\xd2\x99\x38\xcd\x12\x72\x80\xfc\xfc\xa8\xa6\xa0\x51\xfe\xf5\xd7\x7f\x26\xe8\x6b\x94\x12\xcc\x4a\x26\x16\xd0\xea\xf5\x95\x07\x40\x71\x6a\x4e\x46\xac\x71\x2b\xd0\xf0\x93\xa9\xc6\xe3\x22\xf8\xce\xd9\x94\x3b\x93\x0d\x94\x84\xc3\xd1\x1c\xc9\x7c\x62\x6a\x9a\x06\x26\x36\xa7\xe7\x5d\xf0\x19\xb8\x9e\xe1\x26\x76\x83\xde\x18\x20\xb3\xc2\x70\x3a\x02\x64\x96\xa6\xd6\x03\x64\x36\x9f\xbe\xbd\x05\xc8\xac\xec\x79\x37\x80\xcc\xa6\x2d\xdf\x00\x20\xb3\xd4\xcc\x67\x03\x90\x59\x59\xd1\xcf\x06\x20\xb3\x32\xaf\x1e\x20\xf3\x33\x01\xc8\x5c\xcd\x47\x1a\x21\x20\x9b\x0f\xef\x7a\x10\x90\x8d\xfa\x55\x3b\x8b\xd8\x16\x6f\x07\xa4\xb9\x17\x86\x80\x2c\x4d\xa0\x0f\x77\x5b\x3f\xdc\xad\x91\xf8\x6c\xdf\x7a\x78\x2e\x06\xae\x7a\x91\x75\x04\x81\x2c\xed\x4f\x67\xd3\xe7\x2e\x28\xf1\x79\x03\x2c\xc1\x03\xd3\xd5\x1c\x32\x28\xad\xa2\xb4\xd0\xb1\x5a\x32\x72\xe0\x5d\x46\x73\x0a\xdd\xf9\x3d\xe5\x6e\x10\xa8\x59\x59\x5e\xef\xb3\x31\xb4\xb8\x4b\xe3\x7c\x43\x5d\xf4\x2d\xe8\xd5\xe5\xb2\xad\xe9\x1c\x71\x83\x00\x27\x49\xb3\x61\x90\xa6\x74\x57\xcd\xae\xba\xc8\x3c\x34\x11\x68\x53\xb5\x34\x3d\x7d\x3d\x99\xe1\x18\xd9\xb8\x92\x9d\x08\xb8\x09\xe6\xcb\x19\x95\x4a\xb4\x86\x2a\xd5\x46\xb8\x8d\x1b\x36\xcb\x37\x01\x41\x99\x6d\xf6\x59\x4a\x52\x2e\x56\xc5\x49\x35\x7e\x69\x2b\x3a\x6c\xf2\x29\xc9\xe6\x24\xd5\x42\xd0\x78\xdd\x46\xba\xee\xb7\xcf\xe1\xb4\xa9\x44\x26\x6e\xb1\x44\x04\x81\x93\x55\xbf\x1b\x1b\x80\xc0\xce\xdb\xbd\xed\x36\x5b\x08\xc3\x35\xad\xf8\x0e\xc2\x75\xb9\xb5\xc4\xbe\x54\x72\xa5\x03\x7d\x37\xc6\x8b\xf8\x70\x9d\xd5\x11\x21\x4b\x62\x41\x96\xc1\x00\x15\x5f\xd9\x7a\xa7\x6b\x84\x09\xd4\x5d\xa8\x61\xb1\xcb\xf5\x83\x47\x5a\x40\x2c\xeb\xcb\x03\xbe\x65\x49\xc4\x61\x28\x51\x97\x06\x53\x5f\xaf\x12\x95\x38\x4d\x6c\x0b\x22\xc9\x45\x6b\xd0\x68\x17\x2b\x64\xa4\x72\x9c\x80\x9a\x17\x16\x69\xab\x6e\xea\x64\xd1\x90\x85\xd6\xcd\xcc\x4d\x99\xfa\xcb\xbf\xaf\xb5\x9b\x5a\x25\xb1\xeb\x06\x85\x65\x70\x14\x11\x69\x0c\xa3\x36\xa8\x18\x4f\xf8\x23\xd4\x94\xd9\x66\x57\xf5\x51\xd6\xf3\xd6\x0c\xde\x23\xc3\xc6\x05\xa9\x1b\x71\x61\x2e\x78\x3e\x9b\x3b\xdb\x8b\x3e\x33\x7a\x6a\x4d\x7b\xf9\x63\xcd\xc0\xb9\xf6\x5e\x7e\x97\xd3\x64\x33\xcb\xd6\x6d\xa9\xda\xce\x87\xf3\x3b\x24\xe7\xfe\xb4\x4e\xa0\xd9\xc6\x8d\xad\x0f\xba\x7b\x9f\xf6\x5b\x6f\x64\x87\x6e\x0e\x1c\x1a\xe2\x94\x27\x09\x98\x89\x25\x49\x1f\xc3\x22\xd9\x61\xf7\x30\xe1\x3b\xba\x61\x69\x78\xf8\x1a\x9c\x4d\x52\xe1\x34\xeb\x24\x7f\x5d\x1b\xd1\x50\x22\x37\xfa\xaa\xa7\xd9\x84\xc1\x71\x46\x58\x93\x6d\xea\xa7\x7a\x8d\x88\x37\x16\x8c\xe8\x22\xd3\x76\x16\x90\xe8\x96\xe4\x85\x83\x12\x57\xcc\x63\x5f\x03\x13\x2b\xcc\xce\xc7\x09\x16\xd7\x8c\x8b\xf6\x30\x8a\xcf\x40\x2f\xf1\x88\x0d\x4a\xe9\x11\xae\x20\xec\x64\x51\xc4\x57\x1b\x1d\x22\x64\x66\x80\xee\x6f\x0d\x2b\xe0\x03\xd1\x7f\x81\xa6\x63\xb0\x44\x4d\xb8\xa2\x0b\x49\x84\xe0\x70\x12\x1f\xe2\x68\x11\x25\x34\x0a\x74\xe6\x99\xc0\xd9\xbc\x89\xe3\xb9\x9d\xef\x41\x50\x5e\x0b\x04\xa5\xad\x64\xcd\x3a\xe1\xe0\x8e\xae\x18\x4e\x49\x0f\xce\xd2\x04\xce\x72\xe0\xe1\x07\x58\x51\x7c\xe7\x15\xb3\xda\xeb\xe7\xae\x47\x68\x79\x05\x84\x96\x4d\x0e\x5f\x01\xbf\x52\x3a\x76\x3d\x6a\xcc\xbb\x4e\xa8\x31\xfe\x12\xdc\x2b\x20\x90\xf6\xf3\xf8\xca\x00\x13\xf5\x81\xbd\x26\x4a\x4c\x83\xb8\xb0\x8e\xdc\xb4\x0c\x26\x66\x19\x5d\x74\x5a\x97\xd7\x05\x6d\x59\x6f\x65\xd6\xc2\x63\x69\xbc\xbb\xf6\x04\x9d\xa5\x7d\x1b\xf6\xe4\xdc\xec\x32\x63\x66\xbd\xea\x82\x61\xd6\xcc\x3a\x0a\xd6\x7a\x09\x34\x9e\x1e\xde\x56\x12\x4d\x51\xda\x69\xb3\x44\x9a\x81\xf3\x41\x13\x81\xe6\x3c\x89\x4d\x98\x57\xb0\x5a\xbe\x03\x1f\xbe\xed\x17\xc8\x6d\xc6\x6d\x46\x22\xa3\x6d\x15\xf5\x99\x96\xa5\xcb\xf8\x4d\x7c\xeb\x29\x33\x81\xfc\xbb\xdb\xb4\x99\x70\x65\x37\x4d\x9d\x59\x31\xb8\x65\xa2\xc7\x86\xe9\x33\x41\x8f\x4b\xbd\x74\x6e\x76\x9d\x3c\x75\x55\x62\xd9\x20\x88\xaa\x56\x48\x6b\x7b\xac\x96\x14\x7f\x1a\x67\x58\xe0\x24\x21\x09\x95\xe9\xb3\x45\x72\x9e\x96\xdd\xb5\xfa\xac\x0a\x6e\x4c\x44\x2c\x4f\x27\x86\x14\xdd\x40\x6c\xf9\x3e\xc5\x91\xc8\x59\x88\x34\xe5\x37\x06\xb9\xf2\x6e\x39\xdc\x0b\x60\x55\x8a\xe6\x50\x2b\x72\x8a\xa9\x60\x44\xb6\x56\xe6\x23\x51\x2e\xa8\x5a\x8c\x6d\xa1\xc3\xee\x07\xee\xd6\x7e\x79\x6a\x3f\x5c\xee\xe1\x76\x49\xfa\xae\x3f\x5f\x58\x31\x23\x02\xaa\xb6\xb8\xfa\x23\x41\x31\x47\x0b\xc2\x40\x7c\xe9\x17\x88\x5d\xad\x5d\xdb\x6d\x31\xd7\xf8\x69\x1c\xa4\xc1\x8c\xa3\x2a\x71\xac\x3a\xac\x4d\x30\x40\xcb\x26\xf9\xcc\x40\x38\x2d\x5e\xe4\x67\x28\xfa\x60\x63\xdd\x4d\xd3\x7a\xc0\x81\x2b\x18\xec\x95\xc5\xc6\x04\xb9\xf4\x56\xa9\x6a\x19\x27\x66\x8c\xab\xe6\x72\x5f\x4b\x06\x3b\x08\xbe\xea\x30\xe2\xa0\x93\x1d\x0d\x5b\x1f\x74\x21\xf2\x4c\xd1\x49\x1d\xa9\x46\xed\xae\x08\xe4\x20\x81\x14\x6e\xe7\x66\x28\x75\x6b\x2a\x43\x96\x38\xb1\x9d\x9d\x96\xff\x2d\xac\x93\x03\xfc\xa1\x6c\x96\x90\x52\xf2\xd5\x55\x4a\x81\x0a\xcd\xf9\x01\x03\xb4\xa6\xce\xb2\x6d\xf6\x0b\x17\xee\x81\xa1\xbe\xa4\x31\x11\x1d\x8d\xd8\x40\xa2\x27\x82\x18\xb1\x88\x10\x0d\x95\x23\xbd\x55\x1b\x4a\xf1\x4c\x88\xee\xc9\xc7\xa6\x68\xe1\x81\x2a\xe9\xab\x41\x99\x3e\xa6\x38\x91\xe4\x40\x37\x0c\x45\x24\x15\x87\xa0\x49\x8c\x9e\x04\xce\x32\x22\x46\xcc\x86\xe0\x83\xc3\x85\xf3\xc4\xb4\xdf\x16\x1a\x6a\xd7\x80\x8c\x23\x1c\xcd\x5f\x68\x8f\x30\x64\x50\x44\x73\x12\xbb\x5c\xe4\xf2\xf6\xb8\x79\x1b\x83\xf5\x1a\x9b\x75\x3e\x75\xd5\x8c\x0e\x6c\x27\x49\xa4\x39\x8a\x2f\x6e\x9b\x11\xa1\x47\xad\x69\xf8\x91\x30\x44\xa7\x6e\x1c\x36\x76\x07\x3d\x81\x67\x4a\x93\xfe\x23\xa6\x89\x49\xee\x77\x5d\x3b\x21\xd0\x98\xdf\x47\xcc\xb8\xbb\x59\x54\x4a\x2b\xa4\x8c\xca\xb9\xe6\xd4\x39\xf8\x24\x41\xcd\x58\x4b\xf2\x8c\x63\x59\x36\x32\x1a\xf5\x8d\xfe\x56\x32\x6f\x1c\x96\x52\xa6\xa2\x00\x8d\x07\x82\x25\x5d\x41\xa5\x65\x72\x66\x1f\x7a\x5f\x0f\xbd\x6f\x5e\x9b\x7d\x0c\xbf\xf7\x87\x65\xdd\x10\xfc\xb6\xed\xdf\x85\x04\xb9\xc3\x50\xfc\x57\x8e\x59\x7f\x9e\x70\xf5\xd7\xcd\x2f\x78\x8e\xd4\x82\x3e\x00\xff\xed\x05\xe0\xb7\x1f\xdb\xb5\x82\xf0\x57\x00\x32\xb9\x5e\xb6\x8d\x78\xf6\x08\x3d\xcf\x1a\xf5\xec\xa3\x36\x82\x2f\x3a\x46\x3e\x17\x10\x42\x7d\xf4\xf3\x33\x45\x3f\x37\x2c\xf1\x7a\x11\xd0\x1b\xd9\x56\x5e\x3e\x38\xb3\x5a\x63\xff\x39\x03\x34\x57\x45\xc7\xe4\x93\xf1\xb3\x1f\xbd\xc6\x39\x77\x3d\x81\x3f\x79\xa2\x30\x22\x91\xd0\x74\x36\x21\x71\x0c\xf6\x7b\xc5\x6d\x85\xd4\x82\x76\x9c\x1e\xa6\x99\x2f\x96\x9a\xd8\x71\xc2\xd9\x4c\xd2\xd8\x40\x11\x98\x5a\xfc\x25\x2d\x11\x52\x70\x61\x7f\x93\x84\x08\x67\xfe\x15\xe8\x4b\x49\xb5\xdc\x1f\x98\x84\x05\x8a\x39\x91\xec\x0b\x65\xb4\x32\xcc\x16\xe8\x81\xf1\xa7\x84\xc4\x33\xd8\xa1\xea\x60\x0e\x11\x25\x07\x88\x2a\xff\x99\x80\x9c\x5d\x9e\xab\x91\x1e\x3b\x04\xf5\x18\x11\x90\xd8\x6f\x83\x5a\xc0\xbe\x99\xaf\x8e\x10\x3a\x67\x68\x8a\x23\x75\x80\x64\x3e\x29\xda\x8f\xb9\x29\xee\xaa\xd5\x9c\x60\xe2\x45\x23\x7d\x70\x6e\x43\xe7\xcd\x67\xc3\x71\x07\x4d\xae\x83\x84\xe2\xad\x82\x98\x1e\xf1\x36\xd0\x8c\x1f\x73\x69\xbd\xdd\x88\x33\x7f\xf4\x2d\xf8\x88\xc7\xd6\x85\x8a\x9c\x06\xa7\x96\xf1\xb8\xd5\xa8\x54\x99\xca\xba\x63\x29\x22\xce\x6c\x21\x50\xeb\x11\x80\x76\xcd\x72\xc7\xfc\x89\x49\x25\x08\x4e\xad\x15\x56\x5f\x35\x10\xad\x60\xe2\xcd\xf4\xe8\xa9\x30\x22\xc6\x3a\x5b\x7c\x41\xd9\x83\xde\xdd\x02\x4d\x18\xea\x2a\x43\xcf\x4d\x9b\x96\xe9\x1b\x8f\x9c\x72\x66\x3c\x31\xdb\xec\x9f\xa4\x33\x86\x93\x35\x95\xdc\xda\xca\xd5\x9d\x27\xce\x78\x65\xc5\x05\x2d\x45\x18\xab\x0a\x32\x3d\xae\x65\x44\xa8\xcc\x37\x74\xdd\x60\x14\x93\x8c\xb0\x98\xb0\x68\x01\x24\xc2\x00\x57\x42\x30\x9c\x20\x0c\xdf\xe1\xe4\x08\x9d\x99\x44\x06\x2f\xe1\xd9\x6b\x1d\x2e\xf4\x14\x33\x3a\xd5\x82\x22\x58\xbb\xec\x28\x47\xcc\x0c\xd3\x19\x9b\x83\x62\xd5\x7e\xc5\x1a\x76\xe6\x3b\xca\x70\x29\x73\x64\x83\xf3\x94\xe4\x6b\x05\x07\x07\x66\xab\x45\x1b\xc4\xb6\xc2\xab\x50\xaf\xd7\xd8\x0c\x24\xa1\xcc\x37\xd2\xdd\x21\xb8\x32\xcd\x22\x61\xa4\x30\x58\xb4\xe7\x24\xc9\x82\x52\xb9\x19\x16\x4a\xba\xa3\x6d\x70\x52\xf5\x2d\x93\xe6\xcc\x20\x54\x18\x4b\xc3\x93\xc5\xa2\xb4\xce\x8c\xa2\xf1\xa3\x11\x3b\x57\x5f\x48\xcd\xf9\x38\x9b\x25\x0b\x84\xe3\x47\x2a\x0b\xcc\xed\x88\x33\x99\xa7\x44\x54\x2a\xd0\x5b\xbc\x5a\xec\x48\x53\x8f\x4d\xcb\xfc\x8f\x38\xa1\xb1\xee\xd6\xc8\x18\x33\x34\x21\x53\x2d\x3f\x65\x58\x48\x67\x11\x6b\x70\x69\xda\xcd\x8d\xf5\x5a\xbd\x1a\xb7\xfc\x31\x64\x88\x28\x2d\x78\x27\xb6\x3a\xf0\x71\x95\x73\xda\x55\x5f\xc2\x35\x27\xb5\x49\xa1\xe5\x02\x8e\x5d\x85\xb3\x55\x10\x2a\x0e\xc6\x2b\x37\x21\x2c\xba\x1f\x27\x4b\x9b\xc1\xad\xc5\x01\x2a\x13\xb4\xa3\x36\x86\xd6\x90\x6b\x12\x0a\xc2\x85\x54\x58\xd1\xc8\x8a\xed\x5c\xd8\x8b\xc3\x5e\x2c\xed\x5b\x7b\xb6\x25\x6a\xb1\x8c\x70\x52\xdf\xe1\x25\x5e\x33\xf3\xfe\x72\xde\x6a\x8f\x9b\x69\x7b\x69\xd2\x4a\xc4\x93\x64\x1d\x44\xed\xca\xcc\x4f\x8b\xcf\x97\x8f\xa8\xe8\x47\x6f\x80\xdb\x0b\x38\x35\xc6\xf7\x88\x13\x2b\xa1\x4a\x65\x77\x29\x7c\xc9\xdc\x6e\x0b\xeb\xdb\x1c\x31\x3e\x35\x05\x51\xdb\xbc\x92\x99\xe0\x29\x5d\x07\xda\xcd\x38\xea\x6e\x5c\x14\xe1\x0a\xe1\xcd\xc5\x1a\xea\x53\x64\xc9\xcb\xf6\x08\xf1\xe6\x98\x19\x79\x75\xc9\x19\x4a\x71\xb6\xd1\x82\xaf\xb2\xb6\x0c\x50\x6a\x4c\x5d\x76\xf5\x00\xb2\x97\x00\x7c\x39\x2c\xf2\x13\x5e\x14\xa9\x3d\x6d\xa0\x5d\x6c\x2d\x72\xb8\xd7\xaf\x9f\xb3\x29\x5f\xe3\x70\x16\xa9\x38\xf6\xf4\x61\x47\xb3\xc1\xf9\xf3\x31\x9d\x66\xf7\xcd\x9a\x76\x39\x8f\xa7\x4d\x44\xbd\xf6\xc9\x74\x2b\xf8\x9c\xaa\x5f\xc8\x44\x42\xad\x6f\x9d\xbb\xb5\x7c\xb4\x82\x16\x11\x0c\x67\xf9\x52\x7d\x2c\xd1\xe1\xce\xd7\xa8\xd2\x0e\x32\x16\x06\x17\x0c\x74\xdd\xdc\xea\x0b\xac\x99\x3d\x24\x9d\x16\x6b\xcb\xdc\xc3\xf5\xc0\xc7\x5c\x8f\x1e\x72\xac\xf9\x84\xae\x44\x56\x5d\x47\x57\x9c\x6a\x49\xc8\xa8\x0f\x45\x64\x81\x0d\xb1\x9e\xd2\x84\xc8\x23\x74\xde\xa0\x37\xba\x00\x67\xef\x10\x34\xa1\x5e\x4e\x7a\xca\x05\x0d\xea\x0c\x39\x19\x09\x51\x00\xef\x0e\x6d\x67\x82\xe8\x31\x47\xc6\x77\xc7\x0d\xd2\x18\x44\x57\x09\xaa\x79\x96\x11\x56\x15\x48\xd1\x9a\x17\x50\x9b\x5e\x6e\x64\x78\xff\x01\x37\x3e\x6f\x6c\x4b\xa9\x15\xa3\x6a\xd9\xd2\x5d\x54\x1c\xe8\x1e\x3f\xee\x7a\xbd\xd3\x5f\xd4\xf7\xa6\x71\x84\x77\xe5\xd6\xd7\x1e\x9d\x97\xf2\xd7\x77\x44\xbe\x87\x4f\x9d\x55\x14\xa3\xa9\x20\x60\x38\x4f\x7d\x4e\x28\x8b\x89\x90\x8a\x73\xb8\xef\x6e\xcf\x7e\x38\xbe\x3f\x47\x44\x45\x28\xa1\x0f\x64\xc4\x22\xf9\x78\xa0\xc5\xe3\x5f\x73\xa2\xf4\xcf\x2d\x86\x16\x9a\x12\x26\x81\x13\x50\x55\xcb\x9d\x6f\x5e\x48\xb7\x30\xfa\xbf\x67\xe5\xef\x97\x90\x7c\x2d\xfd\x05\x68\xd7\x61\xc1\x03\x99\x02\x8e\xb0\x59\x5a\xd9\x40\x31\x46\xc5\x1b\x36\x15\x67\xda\x20\xdc\x95\xfd\x23\x67\x6b\x0a\x5d\xa7\xc5\x47\xc1\x28\x5a\x64\xba\x34\xc3\x00\xb4\xb7\x5e\x1c\xad\xf9\xa6\xb1\xf5\x55\x4c\xa4\x48\x2b\x72\x2a\x7b\x51\xc7\x0a\x29\x41\x08\xb0\x10\x4f\x4f\xf6\xae\xb7\x99\xa4\x7e\x62\xc1\x47\x47\x23\xf6\xd1\x19\xf2\x8b\x5f\xa5\x6b\xc2\xc4\x66\x7b\xfc\xc1\x72\x2b\xd0\x6c\x4c\xa5\xff\x01\x50\xa4\x65\x9e\x28\x53\x60\x65\x4a\xb5\x96\xee\x06\x6a\x9e\x34\x71\x09\x81\x59\x34\xbf\xdc\xb2\xce\x0a\x9d\x8e\x49\xb2\x8e\x24\x7a\x3e\x1d\x26\x52\xd3\x77\xf4\xd0\x72\x3a\x37\x29\x21\x54\x4c\x06\xe4\x40\x57\x13\xc1\xe8\x38\xc6\x7a\x9c\x98\x02\x27\x04\x81\xe9\xb7\x1a\xfd\x6c\x12\x1c\xf5\x2e\x5a\x49\xdd\x58\x7e\x4d\xd8\xa1\x0f\x29\x82\x5e\x10\x56\x23\x26\x72\x06\x08\xb7\xde\x11\x84\x91\x24\x82\x1a\x8f\x4c\xe4\xcc\x32\xd6\x48\x36\xd3\x6c\x42\x4b\x7e\xe0\x0d\xe4\x0c\xf4\x33\x9e\x4b\x88\x60\x4c\x89\xd2\x17\xd4\x97\x50\x96\xcc\xb8\xe2\x0e\x50\x26\x68\x4a\x15\x7d\x24\xf2\xab\x86\xad\x3b\xc5\x0a\x27\x7c\x36\x10\x8a\x4e\x71\xa4\xee\xf0\x56\x1a\x38\xb6\xcd\x6c\x1a\xd6\xe1\x86\x81\xce\xcf\xf4\xe2\xcf\x08\x23\x02\x26\xaa\x75\xf2\xe6\x23\x0c\x4f\x36\xe2\xdc\x50\xd3\x23\x32\x55\x10\xa4\xb7\x58\xe0\x5c\xf1\x54\xeb\xb7\x38\x49\x16\x50\xdd\x40\x3f\x99\x63\x39\x77\x1b\x6d\xc2\x90\xba\xdc\x4d\x76\x71\x4f\x71\x34\x27\xb7\x0a\xab\xbc\xd1\x18\x5c\x19\xe5\x3b\xc2\xf2\xf4\xdd\x09\xfa\x9f\x62\x8e\xa7\x83\xd3\xef\x87\xe3\xb3\xf3\xdb\xc1\x77\x17\xc3\xb3\x60\x3e\xf6\xc9\xc7\xf3\xdb\xdb\xfa\xaf\xdf\x9f\xdf\xd5\x7f\xbc\xbe\xba\xbe\xbf\x18\xdc\x35\xb5\x72\x71\x75\xf5\xc3\xfd\xf5\xf8\xfd\xe0\xfc\xe2\xfe\x66\xd8\xf0\xe9\xfd\x5d\xfb\xc3\xdb\x1f\xce\xaf\xaf\x87\x67\x6e\x55\xfe\x1e\x9c\x2e\x08\x4f\x82\xd0\xc1\xe6\x69\x54\x0f\xe0\x21\x2a\xbf\x78\x82\xee\xab\xb8\xab\x36\xc6\xc7\xe4\x61\x3e\x61\xa9\x79\x18\x84\x72\x8d\x18\x72\x9f\xeb\x45\x69\xfb\xd4\x78\x41\xa3\x39\x41\x09\xe7\x0f\x79\x66\x59\x9b\x49\xe6\x60\xdc\x18\x7e\x88\x0c\x5a\xfb\xfe\xfc\xee\xa4\x8e\xff\xea\x1b\x0b\x10\x1f\xdc\x19\x80\x71\x61\xc7\x4e\xc1\x96\x92\x09\xf2\x08\x87\xd5\x9b\x4a\x83\x1e\xfc\xce\x2c\xeb\xc7\xb4\x86\x99\xaa\x74\x13\xc7\xb6\x06\x9d\x9b\x58\xd0\x70\x79\x5f\x97\xad\xa6\x5f\x0e\x03\x78\x8f\x26\x24\xc2\xb9\xf1\x15\xeb\x7b\x4a\x08\x2e\xc2\x01\x17\xf4\xb0\xbb\x46\x2d\x1d\x35\x36\x58\xd9\x33\x3d\x71\xf9\x40\xb3\x8c\xc4\xef\xea\xf2\x4b\xb9\x58\x99\x84\xd3\xa7\xfb\x0c\xce\xa4\xd6\xeb\x41\xe7\x77\x68\xcd\x73\x8b\xaa\x4f\xa5\xf1\x87\x15\x1e\x42\x00\x22\xd4\x77\x82\x47\xd5\xa5\xe0\xbd\xc6\x0a\x3d\x11\x48\x09\xca\x2d\x5c\xbd\xd1\xbd\xf5\xd9\x86\xee\x8c\x27\xc3\xd5\x48\x29\xa5\x0a\xb5\x32\xe3\x5d\x08\xdc\xfa\x7b\x49\x9a\x18\xf1\x16\x79\x1d\x67\xa6\x51\xe0\xce\x2e\x94\x00\x46\xdc\xe2\x33\x72\xb7\x41\x83\x85\x7c\x89\x7c\x55\xbf\x91\x56\x5c\x16\x9a\x6d\x77\x19\x8f\xcb\x65\x2d\x01\x34\x76\x1f\x58\x09\xc4\x6f\xe5\x5a\xdd\xf1\x18\x2f\x34\x71\x40\x0c\x8f\xcc\xb3\x8c\x0b\x85\x5a\xda\x30\xde\x11\x33\x3e\xb8\x73\xec\x3c\x3c\x8f\x83\x46\xb4\x84\x21\x1b\x30\x94\xbb\xa5\xf7\xd9\x75\x2d\x18\x47\x08\x55\x02\x8a\xa0\x07\x5b\x4f\x4b\x2a\x75\x89\x42\x9b\x84\xdf\x6d\x22\xf7\x32\x7d\xc1\x77\xad\xfd\xd1\xd4\xfb\x95\x6b\xa1\x71\xcb\x13\x32\x55\xe3\x46\xaf\xcf\x12\x03\xa7\x6e\x91\xb5\x65\x44\xd3\xd9\x7c\x07\x2d\x76\xd7\x12\xbe\xb5\xfe\x52\xad\x1a\x04\x16\x02\xc1\xb9\x32\xf2\x69\xa1\xc3\x20\xb7\x9a\x60\x5e\xb0\x9d\xda\x58\x66\x2f\x04\x6a\x99\xff\x81\xf1\x27\xe6\x2d\xfb\xf2\x68\xc4\x86\x18\x8a\xf8\x79\x45\xc4\x85\x38\x83\x16\xb0\x52\xfe\x2f\x15\xe4\x7a\xd1\x20\x98\x76\x84\xb2\x82\xee\x6d\xf9\xd6\x64\x81\x8a\xa2\x6b\xa5\xef\xba\x9c\x1e\x63\xf5\x76\x22\xa0\x99\xb0\x2d\x17\xa4\x48\x66\x2d\xf3\x66\x9e\x85\x03\x15\xdc\xee\xba\xab\x23\xf4\x93\xb3\xfc\x40\x3c\x51\x51\xaf\x50\x99\x1b\x27\xc1\x0b\x07\x6a\xd4\xb4\xb0\xbb\xc0\x09\xda\x75\x84\xd1\xf2\x05\xf6\x80\x04\x0d\xab\x5c\x52\xc0\x19\x33\x16\xd9\x35\xc2\x29\x4f\xfd\x47\xb7\x64\x79\xbc\xf5\x7b\xa8\xfd\x63\x1d\xd6\x20\x74\xb0\x64\xf1\xbf\xcc\x66\x99\x4c\x0a\x87\xea\x6f\x6b\xb1\x58\x0f\xaa\x3e\x3f\xe0\x01\x34\x89\x16\x68\x4a\x93\x04\xe4\x80\x23\x34\x80\xd2\x79\x90\x88\xa0\xaf\x42\x17\xb5\x46\x67\x8c\xaf\x8a\xdd\x6e\x21\xa6\x28\x20\xa6\xdb\x76\x62\x92\x40\x4d\x45\x1e\xda\x6e\x28\x6a\x07\x39\xc9\x9a\xb7\xe0\x3a\xa2\x63\xf7\x4c\xe4\x35\x94\xf7\xd7\x08\x3a\xab\x0d\x37\xf8\xf0\x5f\xcd\x43\xff\x90\x63\x81\x99\x82\x50\x2a\x2b\xba\x0b\x12\x84\xf4\x92\x4f\x10\xac\xc8\x8c\x21\x18\x7e\x0a\x37\xd7\xb9\xfc\x67\x14\x12\x4f\xe2\x03\x44\x8f\xc8\xd1\x81\x2d\x28\x2e\xf3\x49\xf1\xe6\x5c\x4b\x0e\x23\x56\x0b\x11\x39\x42\x83\x44\x72\xfb\x05\x61\x51\x02\xa5\x2a\x83\xa8\x2f\x4f\xf9\xd6\xad\x34\x59\x80\x82\x02\x5b\x59\x34\xcf\xed\x83\xe0\xc3\x11\xc3\xd2\xf8\xc4\x13\x38\xe9\xc5\xef\x4d\xf5\x7d\x4b\x71\x12\xcf\x08\x47\x5c\xbb\x86\x9e\x6d\x93\x4c\x9d\x92\x65\x1b\x04\x6f\xc0\xc6\x14\xa1\x3b\x41\x06\x31\xfa\x12\x2b\x94\x10\x2c\x15\xfa\xe6\xab\xb5\x62\x43\xdc\x04\x0b\xee\x6a\x8f\x6f\x11\x80\xed\x22\x38\xdb\x8a\x94\x43\x1d\x29\x84\x11\x23\x4f\x61\xc0\x0e\x87\x18\xab\x47\x2a\x73\xa8\xfe\x19\xe4\x8c\x98\xfa\x8d\x26\xb3\x0c\x82\x60\x8d\xca\xd4\xc2\x47\x1c\x5c\x9f\x75\x9f\xda\x61\x35\x50\x96\x55\x9e\xa8\x51\xcf\x00\x52\xa2\x88\xa5\x9c\x63\x35\x62\x96\xb3\xba\xb0\x91\xa0\x52\xdb\x20\x49\xca\xf1\x8b\x18\x42\x74\x99\x9e\x30\xd4\x2e\x3d\xf2\x0b\x74\x09\xea\x97\x0f\x22\x2b\x17\x86\xf7\x87\x45\x6b\x6a\x23\xe6\xf3\xf5\xc3\xb6\x1b\xa5\x9d\x26\xfb\xf2\x0b\x0a\xc1\x0d\xdd\x5f\x98\x22\xb2\x1d\x84\x61\xd2\x34\xe4\x15\x07\xab\x6e\xd3\x5f\x22\x1b\xef\xba\x83\xee\xa2\x72\xb3\x7d\x1c\xae\xd9\x27\xde\x60\x6e\x6f\xd9\xdc\x40\xb6\xd8\x46\x01\xf7\xd1\x8c\x2f\xe5\xf1\x2d\x0d\xfd\x3c\x86\x5c\x8a\xd5\x5c\xb0\xc8\x4d\x70\xac\x03\x0c\xdd\x34\x0e\x42\xa5\x83\xc8\x4c\x08\xa5\x77\x8c\xcf\xbe\xd9\xe2\x79\xcd\xde\xf6\xf4\x0f\x8a\xf9\xbb\xa9\xf8\x20\xb8\xfa\xc4\xdb\x85\xbd\x41\xfc\x0f\x1c\x41\x00\x25\xf4\xe4\x42\x37\xeb\x80\x02\x0e\x86\x11\x83\x31\xbf\x51\x3c\xb4\xf5\xa0\x8f\xd0\x10\x2e\x1a\x57\x1e\x1a\x4f\x9d\x43\x22\x78\x79\xc4\xb4\x66\xe2\xf2\x8f\x83\xf6\xcb\x24\xde\x74\x02\x0c\x98\xc9\x56\xbe\x9c\x74\x35\xc6\x76\x9b\x36\xe1\xb0\x54\xa0\x0d\x80\xe5\x45\xc3\xd9\x09\x8a\x79\xf4\x40\xc4\xb1\x20\x31\x95\x27\xe0\x5b\x57\xad\x4e\xbd\x54\x6b\xdb\x5b\x4b\x1a\x6d\x81\x02\x2b\x72\x0d\x4e\x4d\xff\x36\x88\xde\x55\x33\x3b\x40\x74\x0a\xea\x84\x0b\x75\x35\x49\x36\x2e\x5d\x9b\x30\x25\x16\x19\xa7\x4c\x79\x53\x56\x65\x21\x9c\xa6\xa1\x85\xb6\xb6\x20\x6d\xb1\x8b\x18\x9c\x0d\xa7\x7d\x37\x27\x92\xb8\x80\x03\x33\x29\xc5\x91\xf1\xb2\x18\x76\x91\x61\x35\x97\x90\x11\x54\x5e\x03\xab\x74\xc1\xa7\x7a\x85\x70\x06\xf1\x0a\xc6\x4a\x51\x7c\xe4\xf3\x56\xa4\xa2\x49\x32\x62\x8c\x90\x58\x22\x48\xde\xf9\xa2\x31\xf3\x4c\x7f\x7a\x80\x70\x1c\xa3\xff\xfd\xe5\xfb\x8b\x9f\xef\x86\xe3\xf3\x4b\x30\x5a\x9f\x5f\x0c\xbf\x3a\xf0\x3f\x5e\xdd\xdf\xf9\x5f\x8d\x85\xe5\x91\x08\x94\xe2\x07\x50\xf1\x98\x34\xf2\x1f\x64\x77\x84\x23\x75\x39\x79\xfa\x89\x24\x2e\xd2\xd5\x8a\x29\x1e\x02\xc8\xee\x61\x6b\xb1\x42\x63\xf3\x5b\x43\xf9\xbd\xf1\x9f\x2c\xa7\x41\x47\x3c\xbe\x0b\x27\x06\xa6\x84\x41\x34\xb6\xb5\xf6\x15\xba\x6f\x41\x70\x84\xcd\x28\x6b\x8b\xc7\x23\xec\xf1\x39\x85\xf8\x1f\xc8\xe2\x47\xad\x5e\x5f\x63\x2a\x3a\xd3\xde\x90\x3d\x52\xc1\x19\x4c\xcd\x9b\xb5\xfc\x89\xd1\x7a\x3a\x96\xd5\x43\x25\x8d\x2c\x0c\x31\x1a\x59\x6b\xcc\x67\x13\x90\xc9\xab\x4f\xd7\xc2\x23\x90\x4f\x4a\xb8\xec\x4f\x8f\xc2\xe1\xa0\x08\xfc\x45\x53\xd0\xe0\x88\xdd\x5d\x9d\x5d\x9d\x20\x92\xe0\x09\x17\x90\x0d\x66\x42\x82\x5c\x13\x76\xc1\x22\x9e\x06\x0d\x95\x32\x7f\x0f\x50\x56\x64\xfe\x86\x46\xb4\x23\xd3\xc6\xaa\x2a\xc2\x5c\xd4\xf3\x66\x77\xab\x02\xda\xc9\x5e\x73\xd1\xe5\xfa\xd7\xaf\xc1\xd2\xf1\x4c\x2b\x72\x15\xce\x6b\xef\xe6\x29\xc1\xa6\x80\xa7\x71\x0b\x59\x5b\xbe\x0d\x60\x4d\x92\x52\x3d\x20\x7d\x70\xe4\x91\x75\xc1\x17\x6f\x72\x86\x7e\xf8\xab\x44\x93\x5c\x8d\x58\xb9\x0d\xce\xd0\xe0\xa7\x5b\xf4\x1d\x56\xd1\xfc\xab\x11\xbb\xd2\x6a\xe6\x0f\x7f\x6d\x81\x28\x58\x1b\x5d\x47\xaf\xc9\x19\x56\xf8\x82\xe3\x98\xb2\x59\x13\xb4\x4e\x81\x7f\x3e\xbc\x1b\x9c\xa0\x2b\xab\xc3\xfb\xac\xe2\x22\xd3\x2a\x68\x08\x18\x32\x4c\xc4\x71\x11\x60\xe5\xac\x0c\x3f\x62\x34\x33\xb8\xb0\x46\xec\xce\x60\x0a\x69\xae\x4a\x15\xca\xb8\xc5\xe0\xd7\x5a\x99\x41\x5b\x32\xa6\x6c\x6b\x49\xd4\xab\x03\x64\xec\x37\xc3\xca\x63\x20\xcf\xd4\x99\xfd\x88\x81\x82\xee\x33\x3d\x13\x1e\xe1\x04\x62\xf2\x0e\x03\x9b\x9e\x56\xdb\x79\x0e\x69\x77\x10\x0c\xc3\x16\xe5\xd0\x59\x9f\x09\xea\x85\xb2\x70\xa3\xc0\x00\x00\xfb\x68\xbd\xb1\x29\xd7\x1c\xc7\x60\x89\x80\xf1\x2d\x31\xab\xa3\x3f\xf4\xd8\x22\x66\x59\xf4\x53\xc7\x8f\xa0\xb0\xb1\x71\x2b\xe2\x08\xcc\xf7\x6c\x01\xe1\xdb\x00\x9a\xcd\x21\xf4\xa3\xe0\xce\x96\x28\x6b\xbb\xe8\xef\xc4\xe0\xb3\x11\x33\x91\x82\xa5\x7d\x09\xb3\xe2\x83\xde\x39\x83\x40\xc6\xe2\xba\xf4\x02\x46\x66\x03\x1b\xad\xac\x9f\x09\x72\x18\x13\x45\x44\x0a\xf6\x9e\x70\x4d\xf5\x0d\x7b\x84\x6e\x42\xf5\x3a\xe6\x51\x9e\x3a\x64\x40\x48\x4f\xb4\x11\x70\xf6\x12\xf5\x14\x62\x2e\xf6\x55\x14\x8f\x45\x34\xa7\x8a\x40\x56\x5e\x67\xfd\xd8\x10\xcc\x20\xfc\xb4\x2e\xa9\xb7\x0b\xbe\xc0\x3b\xb6\x8b\x5a\x33\x0d\x8d\xb3\x72\x4b\xa5\xd6\x56\x03\x9b\xad\x28\x74\x71\x59\xa0\x97\x71\x01\xc2\x16\xf9\x94\x71\x30\x72\x9b\x9c\x2a\x1e\x7f\x21\xd1\xf9\xb5\x96\x80\xb4\xc6\xeb\xcf\x60\x2e\x95\x09\x2e\x83\x74\x1d\xf3\xb5\x49\x17\x38\x40\x5f\x9b\x8a\xb3\x11\xfa\xe4\xfe\xf8\xcb\x7f\xfc\xc7\x9f\xff\xb2\x4e\x3a\x89\x53\xc8\xa1\xdd\x62\x8d\x7c\x39\x84\xb2\x48\x14\xee\x40\x9d\x53\x6d\xb1\x0b\xf6\x00\xb6\x2d\xff\x26\x28\x45\x41\xec\x10\x9e\xd9\x13\x2e\xc3\x93\x89\x4a\x47\xb3\x88\x24\x90\x44\x1d\x94\x39\x84\x17\x76\xad\x44\xff\xbf\x96\x80\x80\x8c\xf5\x51\xd9\x2c\xc6\x89\x26\x5e\xbc\xd6\x8d\xa0\x2f\xad\xfd\x4f\x81\x03\xf1\x2b\x77\xc1\xf1\x24\x26\xc2\x56\xab\x76\x26\x3b\x6f\x48\x04\xe6\x40\x3e\x65\x09\x8f\x1d\xbc\x97\x24\x19\x06\x01\x42\x33\x83\xa3\x11\x1b\xba\xe2\xc5\x06\x9e\xc2\x7c\x64\x3c\x2f\x53\x1c\x19\x54\x2b\x89\xbe\xfc\x74\xa2\x7f\x3b\x40\x8b\x13\x08\x22\x3d\x40\xbf\x9d\x58\x10\x02\x2c\xd4\x58\xff\xf4\x95\x93\xb5\x6d\x13\x30\x68\x2a\xd1\x17\xc7\x8f\x58\x98\x9a\x87\xc7\x66\x44\x5f\x58\xce\xea\xeb\xba\x84\xb2\x79\xc2\xf9\x83\x0d\xb0\xad\x7d\x78\xec\x00\x4d\x80\xbc\xbd\xdf\xc4\x6c\xbd\xcf\x77\x54\xe8\xd0\x96\x5e\x3e\xca\x26\xe8\xe8\x1f\x92\x33\x74\xb4\xc0\x69\x62\x7f\x75\x4f\x6d\xfc\x2f\x96\xc8\x15\xdf\x76\x41\x3e\xc9\xc2\x58\x4a\xbf\x4b\xf8\x04\x66\xf5\xd1\xcd\xd4\x44\xd0\xc2\x40\x8b\xdb\xa7\xb8\xb0\xec\x44\xac\x24\x65\x60\x19\x52\xae\xcc\x2b\xc0\xe3\x9a\x66\xf5\xc9\x0f\xe9\xbf\x8d\x5f\x18\x16\xc5\x25\xf1\x19\xe3\xb0\x8f\x5e\xd3\x8d\x7e\x42\x5f\x5a\x16\xf4\x95\xbe\x63\x6c\xb8\xb2\x59\x86\xa6\x0e\x16\xbe\x83\x9f\x83\x0e\x28\x43\x26\x2d\x73\xc9\x97\xbf\x1d\x1f\x1d\x1d\xf9\xaf\x2f\xf5\x54\xfe\x5f\x44\x95\x24\xc9\xd4\xb4\xe4\x6e\xb0\xc5\x88\x7d\x74\xc0\xc1\xce\x78\x5d\x40\x25\x41\xd1\xec\x88\x27\xe8\xb0\x30\xe8\xc6\x3c\x92\xe8\x0f\x5a\xac\x0d\x96\x12\x7e\xd4\x7a\x5c\x0b\x8c\x99\x41\x2a\x7c\xa1\x43\x65\x0d\xe2\xd5\x63\x15\xa2\xa3\x78\xc5\x16\xcb\x10\x85\x1a\x68\x41\x53\xce\xb1\x45\x50\x11\x42\xbf\x4c\x3e\x29\x78\xd4\x02\x50\xd3\x18\xca\xde\x7c\x53\xd6\xd8\x6d\x81\x53\x63\xc8\xba\x65\x01\x2c\x8c\x88\xe5\x0c\x66\x9e\x07\xa1\xfb\x44\x5f\x2e\x2c\x84\xb2\x95\x79\x9a\x62\xb1\x38\x2e\x4e\x5b\x9d\x38\x0b\x5c\x7a\xe0\x31\x89\x5b\x00\x70\xe1\x26\xf6\x68\xd9\x28\x06\x2b\x5e\xba\x1b\xcd\x9f\xdd\x08\x6a\xf1\x40\x40\x9e\xa9\x44\x45\x58\xc4\x63\x4b\xd7\x45\xf6\x69\x59\x62\xf1\xef\xd4\x65\x15\x17\x11\x23\x0b\x63\x1c\x53\x26\x33\xda\xbe\xe1\x3e\x6e\x61\xdf\x7c\x0c\x55\xdd\xc8\x6c\x0d\xf7\xe8\xf9\xd5\xad\xfb\xa6\xfb\xa5\x0b\xeb\x50\x16\xd9\xb1\xd3\x12\x9d\x45\x42\xe0\xa7\xe2\xfa\x85\xd8\x0e\x63\x9d\xc9\x7d\x6e\xae\xf9\xf7\x29\xbf\xa6\x89\xbe\xb5\x80\xc6\x8f\x46\xac\xf4\xf3\x01\x22\x09\x4d\x29\xf3\xb1\x75\x86\xb9\xf3\xa9\x91\x9e\x1f\xa8\xd2\x5b\x26\xe3\x07\xcd\xc1\x1c\x5c\x46\xa0\x52\x0d\xd8\xc2\x91\x8e\x77\x4c\x59\x0b\x44\x2e\xf5\xb8\x0a\x1d\x5d\x0b\xb3\xba\x89\x43\x2b\x90\xd2\x80\xf0\xe0\xfc\x8e\x98\x6e\xcd\x9d\xa5\x22\x5c\x38\x68\x2f\x68\xee\xd0\x01\xba\x06\x1c\x00\xfa\x28\xc5\xfc\x7a\xf9\xb7\x41\x40\x19\xb2\x3c\xdd\x36\xd9\xc4\x86\x0f\xbf\x96\x99\xee\x5a\x10\x77\x53\xd9\xc4\x25\xc2\xf2\xd4\x1d\xa8\x35\x28\x6e\x68\xc5\x9f\x98\x44\x09\x36\x00\x00\xba\x21\x88\x7c\x3c\x30\x0e\xd2\x2c\xe8\xcb\x5c\x2f\xa6\x1b\x83\x11\x9f\x10\xf6\xa5\xf9\xf7\x57\xc8\xde\x0d\x5f\x1f\xd8\xfb\x5c\x48\x87\x60\x69\xf7\x1c\x6a\x0c\x91\xd8\xd8\xd0\x01\xed\x6f\x86\x45\x6c\xac\xe5\xa1\x56\x61\x32\x78\xb5\xfc\xb5\xe0\x39\x7a\xa2\x72\x3e\x62\x77\xdc\x19\x1c\x11\xe3\x1e\x2f\xf1\x00\x94\xd1\x5a\x7f\x58\x02\x13\x80\x51\x37\x51\x80\x66\xc2\x5b\xe5\x1a\x41\x14\xec\x98\xf1\x98\x6c\x87\x0b\x71\x57\xf8\x2a\x9c\xff\x5a\x10\x93\x0f\x06\x37\x45\x5b\x3a\x2d\x91\x72\x4d\xdb\x7c\x75\xe3\xe1\x1e\xb2\xed\x40\x49\xbb\x27\xb6\x29\xe4\x8a\xbf\xd5\xa0\x15\xa7\x71\x06\xd9\xc0\xa5\xb5\xf7\x28\x84\xdb\x6e\x42\x54\x4e\x55\x59\xb9\x02\xfe\xea\x33\x73\x8f\x60\xd9\x7d\x80\x31\x46\x33\xc1\xf3\xcc\xa7\xcc\xbb\x74\x3f\xb3\x0d\x56\xa6\x39\x67\x53\x7e\x62\x75\xaa\x0b\xca\x1e\x0c\xc5\x3f\xd7\x1e\x19\xa0\x49\x12\x97\xd0\x71\x5c\x95\x31\x98\xc3\x21\xa2\x2c\x4a\x72\xb8\xf8\xa4\xc2\xd1\x83\x01\xcb\x6c\x33\xfa\xea\x6f\xc6\xab\x93\x29\x5b\x24\xa6\x3c\x49\x6c\xb7\xc5\x05\x5a\x94\x61\x7c\xa4\x18\x61\x74\x7f\x73\xde\xdc\xf7\x03\xad\x3b\x73\x9a\x6f\xcf\x32\x81\xc0\xff\xfc\x40\xd7\x8a\xbb\xac\xa0\x0d\x91\x12\xa9\x7b\xe3\x52\x1b\x96\x9d\x26\xd2\x0f\x58\x91\x6d\x33\xa1\x0c\xb4\xca\x1a\x91\x7a\x35\xcc\x9a\xa5\xd6\xe3\x2d\x01\x5f\x0a\xb0\x16\x08\x0d\x6a\x47\x9e\x09\x83\xb5\xe0\xe1\x1a\xd8\x0d\xf0\x7e\xb7\xf9\x54\xde\x5d\x31\x9d\xe5\xc3\x4c\x08\x59\x03\x6d\xe0\x56\xbf\xde\x71\x90\xa5\x57\x97\x8d\xf1\x09\x1b\xf4\x60\x27\xb1\x16\x96\xc0\x38\x2f\x15\x08\xee\x44\xd0\x8e\x1c\x8d\x78\x2d\x7d\x8e\x88\x1f\x89\x0b\xc3\xf1\xb2\x98\xeb\x77\x06\xbe\x2d\x5e\x02\x27\xf6\x16\xda\x06\xc2\x0f\xc4\xd6\x2d\xc3\x26\xb4\xf8\x35\x4e\x1b\x58\x74\xf3\x4e\x14\x1d\x9f\xd9\x8f\x3f\xea\x6f\x9b\x59\xd1\x47\xc8\xe2\xf3\xc0\x29\x29\x66\xfa\x64\xbb\x5e\x5b\x8c\x90\x46\x22\xdc\x68\x48\xf7\xd9\x46\x03\x32\x3d\x76\xac\xdb\x63\xbb\x72\xad\x3c\x19\x3b\x3c\x4e\x8c\x9d\x49\xcd\xc1\x04\x51\xe0\xdd\x6b\x8e\x56\x36\x45\x18\x6c\xfc\x04\x8b\x99\x51\x90\x24\x51\xf2\xab\x86\x1d\x2e\x72\x1e\xb6\xd8\xe1\x0d\x6a\x8a\x85\x7e\x4f\x10\xbf\x97\x9d\x34\x3f\xca\x32\x66\x9b\xbf\x95\x7d\x75\x3e\x2b\x34\x51\x19\x22\x6b\x45\x5c\x08\x40\x42\x8d\xf5\x59\x69\xc7\x4c\xd9\xb2\xb6\xe4\x25\x4e\x3d\x22\x80\xab\x70\x67\xf3\xbb\xcc\xe0\x26\x04\xe0\x06\xdb\xc7\xb0\x75\x11\xc9\x70\x08\xb6\xa8\x53\xdb\x08\x46\x6c\xe0\x5e\xf1\x59\xc5\xa0\xdb\x09\x23\x80\x43\x7c\xa8\x89\x86\x06\xfd\x0a\x17\xab\x6e\x27\xd7\x32\x89\x75\x93\x37\xab\x75\x30\xb5\x7e\xe7\x6f\x23\x8b\x78\xef\xa1\xd1\x96\x56\x1b\x78\x5c\xbf\x52\x71\x33\x30\x4b\x54\xad\x24\xdb\xd4\xf1\x6a\x5d\xca\x21\x46\xd8\x86\xc2\xe2\xb5\x26\x86\x34\x59\x14\x64\xaa\x57\xdc\xe8\xe4\x95\xce\xea\xa7\x55\x6d\xc5\x8d\x29\x4e\xc7\x82\xb7\x97\x63\xe8\xb0\x4c\xae\x89\x92\x7d\x67\x6e\x60\xa3\x17\xe8\xd7\x1c\x27\xe6\x72\x63\x96\x1c\xdd\xb0\x41\x54\xfe\xf6\x2f\x68\x00\xb7\x0f\xfa\x08\x7c\x11\x1c\xfc\xd0\x9a\xe2\x88\xa6\x19\x11\x92\x33\xdc\x5a\x97\xe4\xe1\xaf\x72\x6c\x31\xdf\xc7\x38\x8a\x78\x5e\xc7\x77\x5f\x63\x26\x0d\xad\x85\x93\xc2\xe8\x21\x9f\x10\xc1\x88\xa9\xbd\x02\xef\x21\xf7\x5e\xa7\xe1\x72\x9c\xab\xf9\xb7\xe3\x28\xa1\x9d\x81\xe8\x21\xbb\x68\xa0\x3f\x3b\x35\x5f\x2d\x9b\x40\xa9\xfd\xd2\xd0\x19\x32\xcf\x90\x79\x76\x84\xbe\xc3\xd1\x03\x61\x31\xca\x92\x7c\x46\x2d\x98\x00\xdc\x50\xc0\x2e\x03\xf3\x6c\x79\x62\x46\xb6\x30\xed\xeb\x6b\x68\xc4\x52\xfc\x60\xb0\x01\xad\x10\x19\xe1\x24\x59\xcb\xcc\xe0\xe9\xa1\x86\xaa\xe2\x32\xdf\x7d\x9d\x1b\x73\x3e\x94\x39\x1f\x60\x50\x05\x04\xc9\x9c\x21\x0c\xc0\x2c\x5f\x48\x94\x67\x4e\x02\x02\x4b\x5f\x02\x7e\x57\x33\x49\x28\x60\x4c\xb5\x1e\x34\x27\x23\x06\xb1\xac\xae\xc5\x85\xe7\x2a\xa1\xab\xdf\x87\x9c\x34\x1d\xbe\xa9\x81\x25\xd8\xce\x8b\x58\x03\xa0\x5c\x41\x09\x1d\xe3\x74\xd5\x9c\x30\x30\x40\x74\x6f\x19\x34\x9a\xee\x9b\x56\x8a\xc9\xb5\x82\xa6\xb7\x98\xfa\x25\xcc\x19\xb5\xa5\x0f\xac\x91\x3c\x08\x97\x73\x9e\xa4\xe2\x7b\x2a\x91\xc4\x8a\xca\x29\x6d\x34\xcc\x84\x60\x10\xdb\xac\x3a\x5e\x0f\x81\xa2\x01\x7d\xa2\xb2\x16\x3e\xee\xff\x08\xbd\x07\x3b\x53\x20\x7b\x73\x8f\xe5\xd0\xc6\x12\xd4\x9c\xb4\x82\x1a\xee\x22\x60\xc6\xcd\x20\x78\x7f\xa9\xf9\xd0\xe7\x78\x1c\xa1\x41\x61\xdf\x37\x68\x16\xc6\x72\xbf\x62\x46\x24\x91\x64\x13\xe2\xeb\x64\x0a\x03\x1f\x38\x10\x10\x02\x59\x45\xea\xdf\x0b\xe8\x5b\x3f\xcc\x27\x48\xa3\xc4\x0f\x84\x2d\xb3\x77\x74\x1f\xa1\x31\x48\x2d\x55\xba\xbd\xa5\x8b\x1b\x63\xd7\x26\x03\xec\x7e\xec\x0a\x00\x11\x3a\x3d\xd6\x4b\xae\x05\xfd\xe8\xc1\x26\x6f\x18\x7b\xa7\x85\x20\x79\x9a\x73\x19\x9e\x33\xb7\x7f\x46\x57\x14\x39\x71\x49\x1a\x90\xfc\xe2\x17\xd8\x44\xbd\x30\x1e\x22\x94\xc0\xa8\xfd\x21\x35\xb6\x5c\xbf\xdf\xc8\xb1\x50\x58\x06\xf0\x13\xb9\xa6\xea\xa7\xf9\x87\xbf\xca\x2b\x38\xb1\xbb\xc8\x85\x6f\x2e\xdc\xb5\x7d\x1c\xfa\x86\x16\x78\x1f\x61\x55\x54\xfd\xc2\xb1\x47\x6f\xc8\x78\x8c\x0a\xf2\x5a\xbf\xc4\xd7\xeb\x4f\xab\x52\x1a\xac\xd3\xdc\x56\x51\xf6\xc7\xc0\x4d\x8f\x26\x39\x35\x55\x36\x4b\x22\x97\xcd\x97\x04\xed\xd7\x5e\xff\x54\xfa\xfb\xa4\x99\xc6\xae\x79\xbc\x0d\x61\xad\x0f\x58\x57\xa7\xeb\x0e\x51\xbc\xb2\xa9\x2a\xe8\x92\x95\xc8\x78\x7b\xfc\x65\x3c\xee\x5e\x47\x13\x1c\xee\x93\x7c\x7a\x0b\xb0\xe8\x6d\x98\x10\x0e\x27\x6c\x4e\x7c\x92\x97\xde\x67\xdd\x8d\x4f\x39\x68\xdb\x14\xeb\xbf\x2d\xae\x7f\x8c\xfe\xef\xed\xd5\xe5\x61\x8a\x85\x9c\x63\xc8\xb9\x75\x6d\x1d\xb8\x52\x23\x46\x01\x75\x7e\x25\xca\x46\xec\x10\xcd\xf8\x81\xf1\x62\x9e\xa0\xb9\x52\x99\x3c\x39\x3e\x9e\x51\x35\xcf\x27\x47\x11\x4f\x8f\x8b\xa5\x39\xc6\x19\x3d\x9e\x24\x7c\x72\x2c\x08\xc4\xb1\x1e\x7e\x73\xf4\xed\x37\xb0\x33\xc7\x8f\xdf\x1c\x83\xef\xea\x68\xc6\xff\x70\xf1\xed\x7f\xfe\xf9\x2f\xba\xe1\x6c\xa1\xe6\x9c\x9d\x58\x17\xe9\xd2\xb6\x0f\x8d\xdc\x7b\x6c\x3e\xa9\xf4\xf2\x9f\x47\x5f\x87\xc3\xb0\xaf\xa6\x3c\x26\x89\x3c\x7e\xfc\x66\xec\x36\xe6\x28\x5b\xc7\xe9\x5b\xf0\x7b\xbf\xe2\x95\x1a\xb2\xfa\x77\x4f\x31\xce\xd4\xb7\x6a\x57\x1a\x8e\x4a\x18\xa5\xbc\xc5\x81\x79\x20\x35\x3f\xf8\x1a\x0a\x98\x17\xa4\x5a\x54\xfa\x75\xc1\xbd\x5b\x45\x9b\xb5\x92\x32\xc1\xeb\x4c\x23\x00\x8e\x35\x26\x88\x0c\xd3\xa6\xe8\x36\x1b\x5d\xb1\xcd\xfa\x3d\x27\x04\xf2\xae\xb1\x8f\xed\x74\x37\xc4\x3d\x4e\xcc\xd7\x2e\x16\x84\x3f\x39\xbc\xe3\x5d\xa0\x04\x77\xac\xc7\xe4\xc1\x4f\x0d\xf1\xc0\x58\xdc\xb8\x5a\x86\x31\xc7\x72\xb3\xa0\xa2\x81\x81\x18\xf3\x7e\x01\x5f\x45\xd2\x76\xe8\x58\xa5\xcb\xda\x86\x62\x7f\x16\x1c\x26\x33\x55\xca\xe5\x11\x7a\x5f\x29\x58\x53\x04\x4a\xdd\xbc\x3f\x45\xdf\xfc\xf5\x3f\xff\x3c\x62\x5f\x36\x70\x31\x88\xdc\xe0\x62\x66\xe3\xb6\x80\x77\xa5\x58\x2a\x22\x8e\xc5\x34\x3a\x36\x81\x20\xc7\xfa\xfb\x43\xdb\xe9\x21\x9f\x1e\x7a\x08\xd4\x43\x8b\x06\x79\x94\xc6\xeb\x25\x34\x97\x48\xcf\x84\x4d\xd9\x80\x6b\x09\xc1\xd9\x06\xfa\x84\x4f\x3d\xd8\xb5\x89\xab\x37\xb8\xf8\x7c\xda\xf0\x07\xd4\x76\xfd\xca\x03\x2e\x61\xe9\xfa\x28\x10\x50\xda\x8f\xe6\x6e\xd0\x90\x1d\x89\x3c\xa7\xda\xe6\x78\x49\x28\x9c\xad\xb3\xf0\xcd\x87\xad\x08\x7b\x37\xf9\xdf\xb6\x38\xa8\x41\x93\xe5\x8c\xf0\x29\x44\x0d\x81\x5c\xe0\xbc\xa2\x60\x1b\x62\x5c\x05\xb9\xde\x82\x64\xe6\x82\x09\x8b\x89\x36\x2c\xf7\x96\x88\xca\xab\xd6\xf9\x39\x10\x95\xb7\x5d\x77\xcb\x50\x5e\x69\xc1\xb7\x0d\x5d\x32\x47\x69\x1d\x2f\xae\x7e\x7f\xa5\xc7\xc6\xf3\x01\x70\xd1\x84\xf5\x3b\x0d\xb6\x11\x24\x2b\x90\x43\xc5\x0f\x01\x24\x03\xa0\x17\x0c\xc6\x79\x9b\x1b\x17\x3c\x5d\xeb\x5c\x93\xfa\xfd\x0e\xe3\x34\xee\xcf\x4f\xc1\x40\xad\x4c\x62\xab\x65\xdb\x10\x10\xca\x18\x11\xd6\x86\xbf\xf2\x46\x5d\xd3\x0f\x16\x6e\xe5\xf2\x08\x90\x42\x2e\x0f\xf1\xa7\x7d\xfc\x2f\x0e\x98\xc0\x11\x82\x2c\x8c\x39\x4f\xb9\x16\x67\x78\x2e\x83\x87\x26\x8b\x07\x2e\xe1\x56\xd9\x2b\xc5\x99\x01\xc5\x7a\xbd\xd9\xe8\xa3\xa5\x1f\x19\x13\x47\xf8\xd2\x5a\x90\xfe\x93\x32\x88\xf9\x8a\xf1\x7b\xf4\xe9\xe5\x74\x03\x5e\xd6\x14\x4c\xca\x50\xf1\xcb\x62\xca\xd2\xdf\xb4\x06\xa3\x49\xca\x67\xcc\xf8\x9b\xdb\x04\x05\x18\xec\xb7\x10\x5e\xd2\x49\xf3\xad\xd9\x99\x79\xba\xe6\x1e\xf8\xa0\xc6\x2e\x1b\x80\x99\x09\xf3\x73\xf1\x7d\x87\x8d\x01\x7e\x6d\xe7\xd2\xd5\xd7\x8a\xc7\x0e\x9f\x70\xbd\xa1\xde\xfa\x06\x2c\x14\x61\x7d\xdc\x05\xbc\x0b\x44\x83\x9a\x35\x36\x0c\xc1\xc9\x16\x2d\x4e\x7e\xb6\xfe\x61\x84\x82\x0e\xeb\xac\x1d\x74\x62\x88\xb3\xb6\x82\xc1\x59\x68\x5b\xc0\xf5\x0c\x0e\xcb\xf4\xf7\xa6\xf0\x61\x83\x88\x55\x64\x0b\xe8\x51\xd6\x94\x47\xff\xe1\x63\x51\x4c\x70\x91\x91\x03\x34\xc9\xe1\xf9\xe5\xd5\x5d\xe8\x1d\xfe\xff\xd8\x7b\xb7\xe6\x36\x72\x24\x6d\xf8\x7e\x7e\x05\x22\xbe\x0b\xdb\x5f\x50\xf4\x1c\x62\x23\x36\x3a\x62\x2f\xd8\x92\x3c\xcd\x19\x59\xd2\xe8\xd0\xee\x7d\x97\x1b\x34\x58\x05\x92\x58\x15\x01\xba\x0e\x92\xb9\x3b\xf3\xdf\xdf\x40\x66\xe2\x50\x47\x56\x91\x94\xdb\x3b\x6f\x5f\x74\xdb\x96\x48\x14\x0a\x87\x44\x22\xf3\xc9\xe7\x91\xf8\xb6\x67\xd1\x5a\x44\x4f\x50\x38\x88\x47\x1e\x6e\x06\x2b\x24\xb9\xd8\xcd\x94\x97\x1a\xca\xb5\x4d\x75\xee\x1c\xfb\xb2\x63\x20\xd7\x29\x8b\x65\xb6\x4d\xf8\x0e\x92\x4a\x0a\x71\xc1\x3e\x21\xe5\x00\xf5\xc6\x14\xec\x8b\x9e\xf5\x9f\x69\x33\x2b\x5e\x22\x7f\xf0\x58\xf2\x74\x21\xf3\x94\xa7\x3b\xe6\x07\xb3\x6e\x0f\x58\x26\x36\x5c\xe5\x32\x9a\xa9\x8d\xe0\x2a\x44\x01\x51\x52\xcd\x0c\x72\xac\x05\xf1\x93\x2e\x97\x22\xca\x3d\xc1\x19\x38\xef\x6e\xa4\xf6\xed\xc1\x61\xef\xee\x76\x5e\xe7\xab\xff\x24\x15\x96\xd3\xca\x0d\x60\xcc\x68\x0d\xd1\xd1\x78\x60\x28\x1b\xa4\xa9\xe8\xc8\xb5\x97\x41\xf8\x97\x5d\x53\x4e\xdf\xdb\x15\x1c\x35\xf9\xf8\x47\xd3\x93\x1f\x27\xe2\xd6\x2c\x7f\x17\x20\x4f\x70\x83\x85\xe0\x15\x47\x34\xa2\x2a\x8c\x21\x6f\xa8\x04\x0a\xa2\x3d\x6f\x08\xfe\xfe\x06\x8e\x69\x73\x7b\x4c\x9f\x45\x3c\x53\x65\x1a\x17\xf2\x19\xfd\x86\x63\x5e\x78\xe7\x34\xd6\xc6\x8e\x71\xaf\xc8\xe6\x25\x94\xae\x7b\xd2\x3a\x57\xe4\xd3\x21\x04\xd4\xac\x1c\xfd\x0a\x1a\x33\xbd\x43\xde\x5e\x9b\x87\x84\x35\x48\x87\xab\x94\x5d\x76\x8b\xd2\x91\x54\x20\x83\x95\x03\xdc\x51\x31\x44\xad\xe2\xb7\xa9\x8d\x99\xb2\xd5\x9b\xcb\x22\x41\x56\xc2\x36\x69\x22\xe2\xac\xb1\x48\xf3\x5f\xaf\xe2\xc0\xc5\xd5\x58\xa0\x65\xe4\x92\xc0\x01\xf8\xd1\x49\xf9\xc3\xd2\x15\x2a\x43\x5d\x41\x2b\x63\x02\x05\xd8\x2b\x91\xc3\x69\x1e\x17\x09\x16\x23\x42\x7a\x1f\xf8\x6f\x78\x92\x30\x99\x67\x33\xe5\xe8\x7a\x90\x7c\x19\x2c\xac\x05\x2e\xc6\x74\xe5\x82\x47\x40\xb3\x24\xc1\x0a\x7e\x98\x8c\x64\x5e\x83\x8c\xee\x42\xea\xff\xed\x56\x70\xac\x9d\xc1\x69\x9b\xa9\xf0\xce\x55\x9d\x04\x2a\x34\x01\xa9\xc9\x53\xd4\x7c\x74\x20\x80\x41\x9f\x73\xf0\x94\x8c\xd9\x04\xdf\xce\x5c\xb8\xac\xaa\x1f\xf6\x96\xea\x75\x09\xd9\x65\x6e\x35\x79\xe6\x04\xee\xdd\xbd\x75\xcb\xd3\x5c\x46\x45\xc2\xd3\x04\x38\xb0\x97\x45\xc2\xe4\x32\x10\x28\x84\x39\x40\xb2\x16\x33\x5d\x91\x86\xb3\xda\x66\x84\x32\xbe\x11\x41\x9d\x28\x85\x77\x92\x20\xa3\x8c\x0c\xb4\x98\xaa\x34\x6d\xbd\x1b\xb3\x8b\xaa\x50\x28\xec\x89\x80\xe4\x4d\x66\x68\xfe\x5c\x7f\x83\x12\x27\x14\x1c\x95\x4b\x73\xa5\x7c\x13\xec\xba\x36\xc9\x6d\x9e\x3d\x0d\x4c\x57\x5b\xaa\xf0\x6e\x94\x62\x63\x89\xe3\x03\xc8\x32\x97\x92\xd8\x6e\x43\xb4\x74\xd0\x9e\x0a\x03\x3b\x19\x12\xe4\x1d\xd0\xd1\x4f\x81\xee\x71\xb5\xb3\x9b\x0e\x3d\x44\x98\xc7\x81\x5d\x0d\xd4\x45\x86\x77\x34\x58\x39\x21\x38\xa1\xcf\xc8\xae\x78\x3e\x14\xa9\xe0\xc0\xff\xc3\x3b\xda\x88\x0a\x69\xed\xe6\xfe\x48\xd3\xa7\x92\x1c\x09\x33\xbd\x32\xb7\x7c\x81\xa8\x1b\xbd\x0c\x4c\x30\x9d\x37\xa4\x5b\x02\x54\xd0\xce\x26\x2c\x04\x4b\xa4\x7a\xb2\x85\xdf\x66\x81\x8e\x18\xf7\xad\x83\x8d\xc0\x41\xc6\x3d\xd7\xe2\x79\x35\x11\xa7\x1f\xe1\x8c\xf5\x2b\x9f\x6a\xbe\x21\xdb\x9e\x0c\xe2\xc6\xb7\x2f\xdc\xf4\x1e\xfd\xa7\xa5\x13\xe7\xe9\xee\x3c\x16\xdc\x89\xc7\x60\x80\x38\x0b\xc4\xad\x5b\xc7\xf7\x76\x5d\x46\x30\x0d\x90\x19\x79\xbc\xbe\xb8\xfc\x30\xbd\x2e\x6b\x83\xfc\xed\xf1\xf2\xb1\xfc\x93\xbb\xc7\xeb\xeb\xe9\xf5\x9f\xc3\x1f\xdd\x3f\x9e\x9f\x5f\x5e\x5e\x94\x3f\xf7\x61\x32\xbd\xaa\x7c\xce\xfc\xa8\xfc\xa1\xc9\x8f\x37\x77\x15\x35\x12\x2b\x25\x12\xfc\xe8\x61\xfa\xf1\xf2\x62\x7e\xf3\x58\x12\x34\xb9\xf8\xf7\xeb\xc9\xc7\xe9\xf9\xbc\xa1\x3f\x77\x97\xe7\x37\x3f\x5f\xde\xed\xd1\x23\xf1\xef\xdb\x38\xa4\xa7\x80\x9e\x1c\xac\x4e\x33\x61\xcb\x54\x0a\x15\x27\x3b\x44\xc6\xda\x7b\x60\x05\x88\x17\x9e\x54\x72\x23\x74\x71\x0c\xc0\xf5\x61\x2d\x98\x7e\x16\x29\xd4\xa8\x63\x6b\x54\xd0\xc6\xb3\xa7\x56\x06\xb3\x3c\xad\xc7\xd0\x3b\x71\xfc\x79\xba\x73\x95\x22\x5d\xdd\xf1\xfc\x26\xf4\x10\xb6\x15\x69\x57\x5f\xc0\x8f\x48\x8b\x6d\x2e\x17\xed\x90\xe5\x9e\xbc\x1f\xc3\x6f\xaa\xc8\xc6\xd5\x4c\x5d\x70\xdd\x6c\x18\x4b\xc8\xdd\x63\x40\x8b\xd0\xc2\xa1\xa2\x4b\xee\xdb\x16\xe8\xb5\x2d\x16\x89\x8c\x98\x8c\xab\xd1\x07\x2c\x30\xc1\x00\x6b\x95\xb4\x6f\x2b\x52\x70\xec\x8c\xbf\xbc\x4d\xc5\x19\x2f\xf2\xb5\xd5\x83\x76\x75\x46\x48\xa2\x27\xa2\x54\xe4\x81\x76\x39\xa9\xed\x04\x4f\x82\xce\x50\x7d\x65\x0c\x54\x0e\xe3\x80\x40\xb9\x25\xa2\x8e\xdf\xc4\xd6\x07\x84\x14\xf1\xf3\x9d\x43\x43\x3d\x96\x59\x55\x6a\x15\x5c\x58\xfc\xa5\xd5\xec\x31\xef\x6d\x2c\xb5\xd3\xac\xc1\x49\xb6\xc8\xea\xe6\xd7\xd8\xb7\xc6\xc2\x85\x52\x06\x42\x53\xeb\xf4\xab\xf3\x54\xc0\x21\x42\x89\x73\x7b\xdb\x07\xa0\x07\x21\xb1\x01\x80\x6d\x2e\x36\x0b\xb1\xe6\xc9\x12\x63\x78\x66\x6a\xfc\xbe\xaa\x2f\xd1\x07\xfd\x24\xd4\x1d\x4e\xd8\xaf\x62\x0e\x15\xde\x13\x7c\xc5\xad\x8b\x9f\xf8\x80\x9f\xe9\xa3\x5d\x55\xb6\x12\x05\x25\xcb\xd1\xab\x0e\x7e\x8d\x70\x70\xcf\xa7\x69\x8b\x58\x96\x4b\xf9\xd5\x34\x38\x53\xa2\x91\x51\x10\xd0\x35\x96\xfb\xc4\xd9\x65\x60\xd4\x42\x02\x89\x27\xa1\x40\xed\x07\xc5\x40\xf7\xae\xd9\x61\xd1\xe6\xfa\x5c\x74\x84\xbf\x21\x42\x26\x4b\x22\x48\x61\x4e\xc4\x8e\x13\x94\x9c\x3d\x89\x31\xbb\xa0\xb2\x78\xf3\x93\xf3\xab\xe9\xe5\xf5\xc3\xfc\xfc\xee\xf2\xe2\xf2\xfa\x61\x3a\xb9\xba\xef\xbb\xfd\x4e\x51\xb5\x50\xd9\x7d\xd5\xc2\x11\x67\x21\xde\xd3\xce\xf3\xc5\x73\xee\xa5\xfc\xb6\x83\x29\xd9\xdf\x7b\x19\x6f\xe7\xb1\xcc\x22\x73\xfc\xed\xe6\x42\xc5\x40\xc5\x7a\xd0\x52\x6d\x6e\xaa\xfa\x16\xee\x13\xcc\x7d\xc2\x5a\x10\x3c\xed\x9e\xed\x8a\x76\xbf\x07\xae\x36\x08\xda\xa5\xc2\x6c\xfe\x78\xa6\x82\xd3\x66\xbc\x9f\x7f\xdf\x34\x77\xdc\xbb\x95\x9b\xa8\xbe\x13\xf6\x57\x66\x59\xc1\x8d\x7d\xb4\x1f\x03\x36\x86\x96\x51\x21\x7e\xac\x90\x0f\x56\x06\x5a\x86\xcc\xdc\xe4\x37\x5c\xc5\x3c\xd7\xe9\xae\xe5\x15\xfb\x19\xcf\x70\xdb\x94\x4d\x68\x78\x64\x2b\x21\x62\x3b\x0b\xf8\x51\xae\xaa\x4b\x09\x59\x63\x1f\x6e\xfe\x7a\x79\x7d\x3f\xbf\xbc\xfe\x79\x7e\x7b\x77\xf9\x61\xfa\x8b\xa3\xbe\xd9\xf2\xac\x49\xbb\x6c\x9b\x0a\x63\x5d\x6c\x11\x7e\xa3\x7d\x41\x41\x31\xdb\x0e\x89\xc8\xc8\xe5\x4c\x59\xcb\x92\xfa\xe6\xd7\xa9\x2e\x56\xeb\xe6\x86\xaa\xbd\xbc\x9d\x3c\xfc\x74\x50\x37\x81\x22\x05\x55\x87\x70\xb7\xd5\x79\x04\xe5\x92\xec\x1e\x92\x0f\x56\xba\x07\x44\x3f\xf0\xd1\xa6\x98\x7c\x8b\x45\x3b\xe8\xf6\x52\x37\x5a\x9d\xce\x7f\xc3\xc7\xdb\x16\xd0\x43\x60\x37\x4b\xc7\x08\x20\x58\x51\xbc\xae\xd6\xda\x0f\x0d\x3f\x2b\x9d\x60\x7f\x3c\x4b\xc4\x6a\x25\x62\x5c\x5e\xd5\x86\x29\x62\x45\x26\x30\xf2\xe7\x7a\xd3\x28\x92\xbc\xd4\x11\x07\xb3\x43\x47\xf5\x37\xe0\xb7\xee\x2b\xcd\xb6\xe2\xdc\x4a\xd8\x46\x5a\x65\x39\x57\x2d\x69\xd7\xe7\x3a\x9e\xb1\x97\x29\xba\x49\x99\x2b\x9c\xa0\x00\x89\x0d\xb0\xfb\x7d\x70\x48\xc2\x89\x64\xb4\x14\x45\x3c\x02\x79\xad\x40\x73\xb7\x61\x12\x20\xd2\x78\x67\x2d\xe2\xeb\x07\x37\x3a\xaf\x4e\xc4\x0b\x03\x81\x51\xd4\x31\x21\xca\x52\x8c\x06\x81\x38\x50\x2b\x8c\x76\xd0\x84\x54\x9e\xfc\x33\x0d\x3d\xde\x5a\xcb\x81\x59\x6e\x99\x97\xdc\x04\x39\xe7\x6d\x78\x7c\xab\xe4\x87\xfb\x96\xb7\xa9\x8e\x8b\xc8\x72\x53\x40\xb3\x1e\x0f\x42\x01\x2d\x7b\xc0\xc6\xec\xcc\x4c\x33\x5d\x52\x44\x7c\x06\x0c\x1f\x33\xd5\x96\x7c\xb1\x36\xa0\x25\xcc\x75\x6b\x4f\xad\x63\xe6\xbe\x61\xf4\xdb\xb7\xa0\x1d\xec\x7e\xf5\x67\xcc\x7e\x1c\x9c\xbd\x16\x38\x0d\xcd\xcb\x82\x63\x66\xb5\x7c\x1c\xb7\x95\xa2\x3b\xab\x3a\x0c\xf5\xd3\x0f\x34\x51\xa6\x76\xc2\x23\x72\xcd\x33\xf4\x5c\xf3\x68\x5d\xee\x38\xbc\x4d\x99\xbe\xa9\xda\x5d\xe7\x09\x1e\x17\x21\xe8\x95\x5f\x19\xe1\x9d\x5a\x66\xd4\xfb\x50\x8a\xc7\xe9\x8a\x0d\x5b\xf8\xa1\x73\xe4\x2e\x2f\x68\xf7\xc0\x60\x25\xbc\x50\xd1\x9a\x6d\x13\x8e\x35\x97\x6b\x9e\xe1\x92\xb6\x20\x03\xbe\x90\x89\xcc\x81\x2e\x02\x73\x5f\x95\x11\x36\x37\x1a\x9e\x3e\x59\x86\x46\xee\xb9\x41\xba\x16\xfd\x91\x60\x4e\x2f\x5f\xfd\x2d\xe1\x9c\x7e\xcb\x06\xdf\xe8\xcc\x9c\xf9\x65\x49\x50\x4e\x3f\x1d\xc6\xe2\xc1\xb2\xf4\xef\x32\x6c\x66\xa9\xc5\xdb\xea\xd7\x4b\xe3\xdd\x70\x50\x0f\x87\x32\x10\xf5\xf0\x00\x33\x5f\x25\x26\x6e\xdc\x59\xcb\x44\xf3\x16\x71\x4c\xdb\x36\xf2\x0c\xb7\xb5\x1d\xeb\x62\xd1\xc6\x6c\x89\xbd\xea\x6e\xbd\x2b\xee\x6f\xf7\xed\xa9\xe2\x82\xa1\x01\xe4\xb9\xc8\xe5\xb0\xd0\x46\xf0\xd2\x3c\x17\x67\xf0\xf5\xe6\xc6\x89\xf5\xa7\xf7\x3b\xd7\x16\x9a\x67\xbb\x77\xfc\x99\x00\x32\xab\xaf\xae\xbf\x15\xdc\x98\x86\x9b\xe5\x3d\xf2\x17\x1c\xb3\xc8\x72\x59\x5f\x61\xcd\x3b\xb1\xfa\xd4\x87\x72\x52\x25\x5c\x03\xbd\x6b\xd7\x9a\xde\xe6\xde\x7c\xbb\xff\x86\x2c\x2b\x48\x6f\x53\xa9\x81\x65\x80\x74\xab\x3b\x28\xc0\x1a\x9f\x7b\xc4\x48\x7e\x29\x44\x21\xcc\xda\x5f\x14\xf1\xaa\x1e\xdb\x1c\xe0\x9d\xf9\x57\x5a\xeb\x17\xb6\x29\xa2\x35\xb3\x8d\xb3\x58\x24\x7c\x57\x7a\x35\xf0\x97\x72\x9d\x00\xa9\xe6\x81\x0c\x7f\x51\x91\xe5\x7a\x03\x20\x4c\xdf\x6e\x5a\x28\x58\xf0\x8c\xe7\x79\x2a\x17\x45\xde\x08\xd8\x2a\x31\xfe\x1c\x98\xd0\xba\xbf\xbd\x3c\x9f\x7e\x98\x56\xb2\x49\x93\xfb\xbf\x86\xff\xfe\x74\x73\xf7\xd7\x0f\x57\x37\x9f\xc2\x9f\x5d\x4d\x1e\xaf\xcf\x7f\x9a\xdf\x5e\x4d\xae\x4b\x39\xa7\xc9\xc3\xe4\xfe\xf2\x61\x4f\x5a\xa9\xfe\xd4\xf6\x89\xe0\x01\x21\x91\x85\x85\x5a\x66\x56\x7b\xbb\xa4\xa7\xfe\xc0\x26\x96\x9e\xa9\x44\x20\x66\x53\x83\x90\x79\x47\x9d\x52\xca\x20\x5e\xf0\x9c\x93\xee\xf3\x98\x4d\x98\xd5\xef\x06\x30\x74\x66\x9c\x05\xe2\xae\x31\xb3\x83\x4d\x18\x8f\x21\xf2\x37\x37\x2f\x3d\xa5\x97\xc4\x1a\x95\x88\x90\xa4\xd8\x56\xfe\xcc\xd4\xe5\xb3\x50\x79\x01\x0c\xaa\x3c\x49\xac\xce\xba\xfd\x40\x50\xe3\x69\x7b\x99\xc9\x8d\x4c\x78\xea\x55\x82\x6e\xa8\x2d\x70\xd8\x6d\x5f\x1d\xa5\x47\x5d\x3a\xc2\x5e\x1e\x1e\xa7\x0c\xfa\x7d\x7e\x35\x05\x17\x28\xca\x2d\x05\xbe\x7d\xf8\x4c\x21\x2b\x11\x3d\x71\xc3\x01\xa0\x9f\x6b\x8a\xa7\xe1\xe3\xe9\xc3\xed\x0b\x31\x3b\x66\x13\xdb\xc8\xf3\x6b\x81\x80\x5c\x27\xed\x5f\x2e\x55\x9e\xee\x7a\xfb\x35\x0f\xc0\xa1\x9a\x81\x6f\x4a\x78\x9f\xb2\x72\x10\x86\x3b\x98\x6d\xfd\x1a\x9c\x1d\x0b\x46\xa3\x68\xbc\x0b\xba\x0b\xe0\x69\x6d\xf1\xbf\x13\x73\x08\x7d\xaf\xe3\x10\x52\x28\xc0\x28\x2c\x74\xa1\xe2\x8c\x90\x49\x1b\xa9\xde\x6f\xf8\xd7\x77\xf6\x4d\xb1\x24\xd9\xf1\x77\x03\xdd\x8c\x48\xcc\x4d\x64\x67\x8c\x5c\xf7\x70\xcd\x54\xc7\x78\xed\xf7\x16\xad\x65\x85\x6b\x8f\xbf\xa3\x22\xc6\xea\x59\xec\x9a\xe6\xaf\xa6\xc1\x80\x38\x2e\xda\xf0\xd0\xc8\x36\x15\xe6\x83\x0e\xc0\x95\x20\x2e\xcf\xfd\x1b\x80\xda\x25\x9d\xa8\x66\xdb\x1d\x66\x79\x8f\xda\x36\x8d\xf9\xe5\x57\x10\xd1\xa0\x27\x99\x39\xc3\x6c\xb3\x0d\x74\x12\x30\x9d\xd2\x68\x66\xb2\xfe\x4b\x2f\xd8\x12\xaa\x34\x48\x07\x36\x15\x10\xd8\x86\xa9\xb0\xac\xaf\x40\x4a\x52\x4b\x61\xdb\x25\x90\x88\x0c\xc2\xbd\xca\x5c\xb7\xc4\x97\x82\x32\x76\x7f\xf8\xfd\xb0\x73\x36\x4f\x77\xcc\x32\x8c\x87\x55\x22\x54\x24\x45\x67\x2e\xf4\xab\x50\xb2\x89\xa9\xe8\xae\x50\xe6\x28\x3e\x05\xd8\xa1\x7f\x36\xab\xf2\x50\xfa\xe7\xde\x42\x0a\x1b\x88\x4d\xf1\xf3\xaf\x46\xed\xf6\x73\x85\xd1\x8d\x1e\x07\xb0\x5d\x6a\x3d\x3c\xd0\x16\x3c\x7a\x7a\xe1\x69\x8c\xb1\x42\x40\x1f\x8c\xd9\x4f\xfa\x45\x3c\x8b\x74\xc4\x22\x91\xe6\x9c\xc8\x5e\x32\x48\xbf\xc2\x86\xa2\x76\x66\x0a\x50\xec\xc8\x9c\xa3\x40\x42\x37\x97\xab\xb5\xb9\x4f\x06\xc9\x73\x9d\x1a\x73\x94\x23\x93\xd6\x56\x44\x44\xaf\xd1\x32\x00\xcb\x84\x3f\xd7\xd9\x6b\x0e\xa9\x84\x67\x53\x57\x8a\x67\xb3\x53\x96\x49\xbb\x0b\xee\x40\x03\x46\x46\x13\x09\x11\x46\x6c\xa5\x13\xae\x56\xe3\xf1\x98\x89\x3c\x1a\xbf\x1b\xb4\xd0\xa9\xc1\x30\xdf\xe5\x20\xa8\x89\xd6\x99\x48\x76\x8e\x12\xc2\x15\x09\x98\x61\x86\x1a\x91\x4c\x62\xc8\xa3\x61\xf9\xdf\x57\x2b\xea\xbf\x6d\xe8\xbc\xf9\xa6\x3a\xb8\x04\xad\xa5\x1d\x10\xe6\x18\xd0\x12\x7e\xbe\xf9\xe6\x75\x50\x49\x65\x0b\xeb\xa3\x56\x43\xeb\x04\x7f\xd6\x6d\x32\xb3\x07\x31\x35\x35\xb6\x44\x44\x0e\x07\xd5\x56\xb5\x45\x2c\x2a\xe5\x6e\x47\x54\xba\x75\x14\xad\x0d\xac\x57\x6b\xd8\x77\x0d\xdb\xa2\x32\xdd\x83\xb7\xc5\x7e\xae\xf0\xc6\x17\x1a\x58\x0f\xe8\x0b\x77\x87\xb8\x4e\x58\x52\x94\xec\xe0\xc6\xe5\xaa\x03\x21\xb2\x1c\x07\x91\xf1\x52\xe0\x1f\xea\x54\x7c\xe6\xc0\x71\x81\x07\x89\x82\x2c\xd7\x29\x5f\x09\xb6\x11\xb1\x2c\x36\x8d\xc6\xc6\x75\xf7\x18\xb4\x97\x4e\x8a\x4d\x3b\xf1\xd3\xb1\x0e\xb4\xef\x24\xfe\xed\x1c\x1e\xd7\xdb\x81\xf6\x82\xca\x56\xb2\x81\xfa\x8b\x61\x70\x1a\x6b\x73\x52\xa6\x32\x03\x8a\xb2\x43\xca\xc2\x5c\x33\xd8\x34\x64\xeb\x76\x5b\x0c\xbf\x96\x66\xf7\xcc\x66\x77\xe8\x2b\x19\xce\x2a\xa4\xf8\xda\x0f\x85\x2a\x86\x6c\xf0\x1c\x81\x20\xc0\x41\x79\x4d\x70\x1b\x03\x6a\x5e\x02\xb9\x40\x83\x94\x89\xcf\x35\x5b\xda\x42\xa3\x27\x11\x48\x18\xc6\x40\xda\xfb\x82\x3c\x20\x7f\xfd\xd7\xcc\xe6\xec\x09\x56\xe1\x3d\x96\xdc\x3f\x04\x73\x03\xcf\x7f\xb0\x68\x1a\x7c\x43\x6c\x02\x54\x81\x62\xae\xf2\xc6\x06\x3c\xd8\x0c\xda\xc2\xaf\xfc\xcc\x8b\xa4\xf9\xe3\xd4\x3e\x7c\x14\x05\x40\x26\x9f\xee\x19\x0e\x35\xd1\xbb\xa6\x5d\x1d\x0d\x1a\xd9\x8f\xe7\x81\xe1\x9a\x1f\xe0\x09\x96\xe6\x01\x07\xdd\xf2\xfb\x9a\x61\x17\x79\xb4\xf6\x9e\x47\x59\xc9\x93\xd4\x9d\xe8\x3d\x37\x9e\xb0\x16\xa1\x92\x21\xe6\x4c\xae\x94\x0e\xb9\xd6\xb5\x12\x90\xa4\x31\x06\x48\x87\xcd\x32\x99\xef\x07\xf6\x0c\x64\x55\xda\xb7\xd4\x72\x8d\x80\x0d\x7a\xcf\x52\xae\x0d\xae\x14\x12\xb9\x58\x2c\x2a\x12\xef\x44\x24\x16\x54\xa5\x59\x2d\x57\xb7\xcf\x54\xf9\x51\xb5\x41\xb2\xc8\x1b\x99\x0a\x64\x47\xcc\x8c\xf7\x96\xcb\x67\xb3\x51\xeb\xcb\xda\x2d\x50\xb0\x00\xf5\xb5\x37\x53\xd8\xed\x80\x62\xf1\x49\xec\xb2\x50\x99\x88\x56\x14\x6b\x5b\x90\xd2\xbc\x0f\xcd\xd7\xfe\xa9\x80\x81\x9b\x07\x4a\xcb\xfd\xce\x32\x7c\xe8\x47\xf3\xe5\x0e\x48\x5f\xad\x71\xb3\x06\x7d\x25\x97\x8f\x29\x92\x99\xf0\xe3\x4c\x73\xe8\x51\x3b\x0d\x2a\xdc\x3e\x3c\x0b\x17\x5f\x73\xbf\x9d\x29\x62\x61\x0d\x0e\x39\x63\x70\xea\xd3\x46\xe5\xa5\xc8\xfd\xb8\x2b\x51\x63\x00\x43\xae\x95\x8b\x6d\x16\x3f\xb7\xc2\x76\x33\x45\xf2\xe1\xa0\xff\x4d\x31\xbc\xc6\x07\x1e\x08\x05\xa3\xc9\x6d\x85\x7f\xf9\x2b\x0c\x0d\x1c\xb1\xa3\xa1\xc4\x15\xde\x7e\x22\x61\x86\x6f\xa2\x1a\x91\x57\x16\x77\x75\x7f\x79\x7e\x77\xf9\xf0\xcd\xe0\x61\x16\x9b\x35\x18\x1f\x66\xfb\x79\x71\xf9\x61\xf2\x78\xf5\x30\xbf\x98\xde\xbd\x06\x40\x8c\x7e\x75\x00\x42\xec\x9e\xc8\x9d\xcf\xb5\xca\xc5\xd7\xa3\xce\xe4\xb4\x50\x73\x3e\xa0\x52\xc1\x11\xa8\x77\xb9\x3b\xd8\x68\x9d\x9c\xda\x31\x47\x13\x37\x1f\x9e\x68\x8e\x8b\x3a\x50\xb3\x5f\xca\x24\x81\x32\x47\x17\x5e\xa7\xa2\x20\x33\xa8\x60\x7f\xac\x2c\x2f\xd9\xd4\x99\x5a\x94\xd8\xb9\x21\xe4\xb7\x36\x97\x60\x2c\x70\xdc\x9a\x01\x48\x25\x94\x8f\x75\xf1\x57\xaf\xa4\x12\xbe\x1b\x28\x47\x59\x28\xd6\x4a\x3a\x4a\x93\xf8\x9a\x55\xac\xe4\x78\xf5\xf5\x35\xed\x8a\x2b\xad\x4f\xeb\x7e\xda\x5f\xba\x37\xc4\x4d\x2c\x15\x3a\xa6\xa5\xdd\x7c\xdf\xbc\x74\xdf\xfb\x2d\x00\xe3\x6e\x66\x92\x43\x0e\x02\x14\x1f\xfd\x44\xd2\x44\xa0\x72\x84\x4f\x4e\x3c\x49\x44\xd1\xe8\x65\x65\x9c\x8d\x29\x34\x63\x2d\x21\x53\xc1\x89\xb9\x21\x4a\x8a\x2c\x17\x29\x85\x4d\x26\x9f\xee\x67\x0a\x65\xc1\xe9\x14\x22\x75\x01\x7c\x04\x62\x38\x74\xe9\xf9\xd6\x43\x09\x2d\xd8\x5b\x8c\x51\x6f\x04\x57\x19\xaa\xf1\x26\x89\x48\xfd\xca\xc0\xfe\x08\x11\x93\x22\x13\x48\x36\xfb\xef\x93\x20\xab\x86\x5d\x6b\xfa\x4b\xbf\x25\x49\xd2\xea\x7a\x6a\xab\xa2\x05\x80\xe8\x6b\xae\x9c\x86\x3a\x85\xbe\xab\x88\xb0\xb5\x8d\x8b\xa8\x5c\x35\xd0\x6b\x2d\x3d\x60\x73\xbf\x2d\xa5\x13\x2e\xa5\x1e\xe7\x7a\x78\x4a\xb0\xb5\x36\x06\xd4\x09\x03\xf8\x34\xb3\xab\xe2\x4f\x00\xff\x64\x86\xb1\xf1\xd4\xa9\xc8\x4f\x1d\x71\xea\xa0\xde\xd4\x71\x70\xce\x49\x03\x5d\x88\xd7\x39\xb1\xb9\x9d\x4e\x65\xab\xd7\xa1\xe5\x9a\x58\xbc\x9d\xd2\xb9\x2d\xb0\x77\x10\x37\xc2\xeb\x99\x0f\x38\x66\x87\xce\x3e\x12\x5b\x82\xf5\x52\xe6\x47\xaa\xc3\x3c\x84\xb8\xc0\x52\x11\x25\xf6\x22\x14\x98\x24\x04\xb1\x27\x38\x18\xb2\xf8\x0e\xd7\x1f\x2b\xaf\x39\x47\x96\x77\x10\xd8\xe1\xfa\xe6\xfa\x32\x84\x2a\x4c\xaf\x1f\x2e\xff\x7c\x79\x57\x2a\xbf\xbd\xba\x99\x94\x4a\x68\xef\x1f\xee\x2a\x95\xb3\x3f\xde\xdc\x5c\x5d\xd6\x30\x0f\x97\x0f\xd3\x8f\xa5\xc6\x2f\x1e\xef\x26\x0f\xd3\x9b\xd2\xe7\x7e\x9c\x5e\x4f\xee\xfe\x3d\xfc\xc9\xe5\xdd\xdd\xcd\x5d\xe5\x79\x8f\xe7\xdd\xe8\x89\xd2\x6b\x34\x87\x7f\x7c\x72\x36\xe0\x0d\x6c\xdc\xc6\x65\x7d\xb6\x23\x76\x71\x4f\x10\xd6\xbe\xe5\x68\xab\x6b\x6d\x73\xc1\xc6\x30\x5d\x1d\xb4\xea\x4e\x2f\x28\x57\x1a\xba\x2f\xc7\x11\x15\xe7\x3c\x6f\xbc\xff\xf6\x0e\x4c\x90\x80\xf3\x97\x42\xa4\x3b\xe2\x79\xc1\x4b\x23\xfe\x24\xe2\x0a\xd1\xab\xb9\xd8\x6c\xa1\x1a\x2a\x84\x5d\xce\xd4\x27\xc8\x58\x21\xb2\xe3\x4d\xc6\xfe\x0c\xb9\x27\xfb\x61\x2f\x74\x0e\x83\xf2\x37\x7c\x86\xfb\xdd\x78\xa6\x4a\x02\xd1\xc1\xb7\x62\x1d\x15\x2e\x9a\x31\x9e\x29\xcb\xa5\x1b\xeb\x28\x1b\xc3\xd1\x3b\xd6\xe9\xea\x3d\xa9\x5e\x19\x63\xaa\x9f\x16\x5a\x3f\xbd\x17\xea\x3d\x5c\x0e\xf2\xf7\xbc\xc8\xf5\x7b\xc8\x5b\xe3\xe0\x67\xef\xad\x38\x8e\x55\x17\xca\xde\xaf\xe5\xb3\x80\xff\x8d\xd7\xf9\x26\xf9\xff\xb2\xed\xfa\xeb\xd9\x2a\x49\xcf\xcc\x77\xcf\xc2\xef\x9e\xd9\xef\x9e\xd9\xef\x9e\x99\xaf\xe1\xff\xb6\x3b\x8c\xb3\x09\x52\xe7\x9f\x29\xa9\x32\x91\xe6\xb0\x0c\x5f\x52\x99\x0b\xaf\xbc\xce\xde\xfc\xcf\xff\xb0\x71\xca\x5f\xb0\x8e\xe1\x82\xe7\xfc\x16\x2f\x7a\xff\xf8\xc7\x1b\x88\x6c\x23\xd0\x78\xcb\xd3\x2f\x85\xc8\xcd\x95\x33\x11\x51\xce\xfe\xff\x99\x82\x50\xf8\x66\x37\xcf\xf1\x02\x8c\x97\xc1\x38\x63\xff\x86\x6d\x4e\x91\xf3\x28\xce\x4c\x4b\x2d\x10\x47\xc9\x93\x06\x3d\xb5\x96\x58\xc9\x97\xe4\x82\x3e\x3f\x60\xb7\x7c\x49\xca\x5b\xc4\xb2\x76\x67\x5f\x12\x20\xd6\x4a\x34\xb7\x59\x73\xe6\x16\x2f\x38\x2c\xd4\xb9\xa6\x3d\x52\xcb\xd1\xbc\x6a\xbe\xa4\x79\xaf\xdc\x23\xef\xa2\x0d\xa1\xd4\xd4\xc2\x20\x68\xe3\x03\x42\x90\xc6\x90\x66\x87\xdc\xe3\x95\x14\xb5\xeb\xe1\xcd\xc1\x38\x50\x0e\xc3\xb5\x87\x1e\x64\xf6\xa7\x1f\xde\xbf\x1f\xb1\x55\x06\x7f\x2c\xbe\xc0\x1f\x90\xc6\x3d\x15\x75\x58\x6d\x30\x1d\x22\xa1\x3e\xcb\xfb\x67\xe2\x14\x70\x86\x6f\xc1\x56\x59\x59\xa6\x3f\x16\x2a\x4e\x84\x2f\xcb\x28\xc5\xa6\x12\x6d\xf5\x1c\xf1\x86\x52\xe5\x05\x87\x39\x5e\x88\x88\x1b\xc3\x57\x7b\x36\xa2\x7c\xf4\x32\x17\x0a\xaf\x25\xa9\x17\x51\xe0\x78\x85\x80\x14\x3b\x60\x52\x40\x97\x7f\xb3\x05\x91\x7e\x09\xf1\xfa\x07\xa4\x7f\x1c\x55\x7f\x05\x32\xdb\xc8\x64\x08\xfc\x5c\xa8\x06\x2e\x6c\xe0\x0c\xcb\x59\x8b\xd4\xdc\x4c\xb6\x5c\xc5\x3c\x83\x15\xb8\x4c\x21\xec\x9c\x32\x5e\xef\xe8\x08\x71\x51\xba\xc8\x81\x4b\x00\x53\x3c\xe1\x48\x20\xd5\x64\xd0\xe7\x51\xd0\x09\x3c\x13\x80\xf1\xae\xf6\xc5\xf1\x4c\x39\x89\x7a\x04\x25\xe0\x95\x25\xd2\xdb\x1d\x55\x8a\x57\x07\x5d\xda\x2b\x0c\x0d\xf7\xc8\x27\xfe\xaa\x9f\x1d\x31\x59\x8e\x71\x02\xab\x65\x1e\x08\x95\x59\x31\xb5\xb7\x42\x45\x3a\x16\x69\xf6\xce\x6c\x43\xe0\x7a\xce\x3d\x67\xa4\xcc\xfc\x64\x38\x45\x7b\xba\xb6\x99\xe6\x1d\xfd\xbb\x19\x9d\x12\x0f\x62\x93\xfb\xb0\x7f\xab\x7c\xef\xe9\xc8\xa6\xfe\xd2\x5f\xbf\x69\x6a\x32\x04\xd8\x58\x80\xd9\xe1\xbe\x20\x6e\xd9\xd0\xe2\x62\xa3\x24\x80\x8f\xce\x89\x55\x85\x92\xe6\xc8\xca\xcd\x85\x3d\x9f\x29\x3a\x81\x47\x6c\x29\x78\xbe\x06\x84\x51\xf6\x8c\xc6\x18\x8f\xfb\xfc\x45\xfb\x64\xa8\x25\xd1\x06\x54\x52\xa9\x71\x7f\x5b\xc7\x8f\x41\x6a\x87\x47\x39\x66\x7a\xda\xe8\x85\x9d\xab\x02\x83\xd5\x68\x10\x0f\x18\x07\xcb\xc9\x5c\xd5\x3f\x08\x29\xc1\x61\x24\x76\x18\xb1\x67\xd5\x7e\xe0\x2f\x8c\xe1\xc1\xb7\xc3\x7c\x5c\x60\x1c\xa1\xac\x93\x40\x4d\xb8\xcf\x7c\x30\x3d\x24\xc6\x04\x27\xb9\x6d\x53\x75\x0c\x04\x74\xe0\xb0\xfa\x0f\xf3\xd5\xbd\x37\x87\x4c\xa4\x96\x30\x1a\xdf\x15\x89\x79\xd6\x32\x8d\xcf\xb6\x3c\xcd\x77\x76\xf9\x26\x72\x01\x3c\xb3\x89\x7c\x12\x6c\x92\xa6\xfa\xe5\xd4\xa3\xd0\x6a\x5a\x1e\x78\xf6\x74\x62\x9e\x2f\xa0\xdf\x1b\xc2\xd3\xd5\x48\xcb\x55\xc2\x1e\xc5\x62\x7e\x18\x05\x58\x1b\x8d\x59\xe3\x73\x52\x91\xa7\xbb\xb9\x59\x88\x9b\x6d\xab\xa5\xe8\x85\x5e\xed\xef\xe4\x0e\x63\x17\x83\xf3\xb9\x07\xbb\x58\x69\x56\xbf\x1f\x76\xb1\x06\xe2\xb0\x3a\xbb\xd8\xf4\x7a\xfa\x30\x9d\x5c\x4d\xff\x4f\xa5\xc5\x4f\x93\xe9\xc3\xf4\xfa\xcf\xf3\x0f\x37\x77\xf3\xbb\xcb\xfb\x9b\xc7\xbb\xf3\xcb\x6e\xba\x80\x7a\xef\xbd\x0b\x7e\xc6\xc2\xe7\xfc\xc0\x1e\x82\x8c\x19\xa2\x3e\xc9\xff\x26\xa1\x25\x58\x55\x66\x33\x4b\xb5\x1a\xc1\x46\xfd\x81\x5d\xa6\xe9\x74\xc3\x57\xe2\xb6\x48\x12\xc8\x6b\x23\xc4\xfa\x3c\x15\x70\xf1\x1c\xb1\x5b\x1d\x4f\x83\xef\x41\x5d\x48\xe3\x6b\xc0\xf3\x79\x1c\xa7\x22\xcb\xf0\xf1\x23\x7a\x7e\x90\xc5\x75\x35\x27\x84\x62\xe0\xcf\x5c\x26\xe6\xfe\xf6\x03\x48\xbf\xea\xe5\x12\x71\xcc\x23\x87\x60\x67\x5f\x0a\x9d\x73\x26\xbe\x46\x40\x91\xd1\xbc\x4e\xae\xf4\xea\x57\xc0\x8c\xf5\x88\x13\xb6\x5c\x52\x40\x50\x63\xde\x7c\x9c\x37\x1b\x02\x7a\xcb\x8f\xf8\xd5\x0f\xf8\xcd\xc6\xd6\xf3\x3c\x39\x41\xc9\xde\x95\x5e\x35\xd3\x9b\x83\x77\x4d\x9c\xec\x5e\xe3\x1c\x0a\x80\xf5\x8a\x65\x52\x3d\xcd\xd4\xa7\xb5\x50\x4c\x17\x29\xfe\x08\xae\xf9\xc6\xcd\x4c\x8a\x6c\x2d\x62\xa6\x8b\x7c\xc4\x5e\x04\xdb\xf0\x1d\xba\xcd\x70\x27\x70\x9c\xcc\xb0\x64\xe0\x14\x31\xdf\x4e\xa4\x32\xd6\x62\x2b\x2d\x40\xb4\x3a\xf5\xa7\xb8\x71\x59\x82\x18\x7e\x3c\x7f\x5b\xd7\x79\x5a\x02\x4a\x40\x01\x90\x07\xb0\xd8\x4c\x2d\x59\x6e\x90\x7c\xd2\xfa\xa9\xd8\x7a\x2a\xa9\x37\x36\x4a\x0c\xc3\xfd\xac\x65\xcc\xe2\x62\x9b\xc8\xc8\xd9\xdd\x17\x9d\xb6\xf2\xe5\x21\x92\xb9\xff\xa9\x53\xc5\xe7\x77\xbd\x58\x03\x4c\x3a\x80\x34\x74\x30\xe7\xbd\x32\x77\x20\x93\x2a\x4a\x0a\x10\xb3\x28\x32\x91\x9e\xe5\xa9\x5c\xad\xc0\x01\xb7\x45\x17\xdf\x3f\xb9\xa0\x27\x2f\x3a\xbe\xbe\x20\xac\xfe\x4b\xf4\x4a\x46\x3c\x09\x51\x66\x3e\x3d\xe5\xd8\xcb\xec\xb6\x27\xa9\x2f\x00\xa4\xda\x0e\xb5\xb2\x32\x6c\x53\x01\x04\x7a\x73\x30\xe5\x73\x32\x77\xc7\xf4\x7b\xc9\xcc\x05\xdd\xaa\x80\xfb\xf2\x58\x70\xcf\x6d\x5f\x41\x24\xc2\x3e\xdb\xea\x3d\xa0\xde\xab\x82\x5c\x8c\x7e\x51\x22\x05\x0f\x16\xf2\x6f\xe6\x4d\x95\x06\xdf\xc4\x69\x40\x38\xa0\x98\xd5\x40\x59\x3a\x44\x1c\x96\x30\xad\xe4\xb3\x50\xdf\x9e\x0c\x32\x78\x40\xc4\xa3\xb5\x98\x5b\xbf\xfc\xd4\x26\xcb\x1d\x00\x03\x8d\x95\x25\x63\x0e\x4d\x29\x93\x40\xc0\x13\xe1\xd5\x09\x7b\x5c\xb7\x5d\x28\x30\xd0\x01\x8d\x37\x9d\x98\xc7\xa2\xa4\xaf\x7d\xf4\x7b\xf6\x32\xcd\x3e\xdb\x6d\x3b\xc2\x38\xbb\x10\xd1\x13\x7b\xbc\x9b\x62\x59\x96\xcc\x99\x31\x05\xd9\xda\x93\xcb\xb7\xde\xdd\x72\xbe\xfa\x15\x65\x73\x3d\xc5\xab\xd3\x04\x31\x1d\xa2\xcc\x34\x14\xae\x18\x23\x99\x39\xc1\xf4\x6d\xc2\x73\xcb\x99\x0e\x81\x78\x96\x6d\x80\x22\xbd\xc8\x03\x5d\x11\x12\x39\xee\xe3\x53\x00\xcb\x78\x39\xbc\x5a\x3d\xcd\x8f\x15\xcb\x70\x90\xe4\x43\x2f\x6f\xdd\x71\x9c\x55\xa2\x17\x50\x69\xdc\x9e\x17\xef\x30\x0d\x66\x5f\xa4\x32\x1e\x72\xb0\xd8\x31\xb9\x71\x5f\xed\xea\xa0\x93\x42\x76\x4f\x02\x9b\x2e\x31\xd4\x5a\xb9\x78\x55\x2b\xd9\xf6\xdd\xf2\x20\x35\x95\xb9\xdc\x94\xf3\x03\x2d\xcf\x2c\xc4\x95\x74\x87\xb6\x76\xfd\x5d\x8e\x9a\xe8\x7a\x6d\xf4\x9e\xb1\xf4\xe5\xd4\xdd\x93\x7c\x44\x81\x2b\x56\xe3\xba\x2a\xd7\x21\x64\x81\x76\xea\x10\xe6\x03\xba\xe5\x6e\x12\x4b\xf8\xcb\x5e\x33\x5a\x1d\xf7\x07\xca\x56\x1e\xc5\xde\xf2\x0a\x3b\xaa\xc8\xb5\x0f\x36\xc3\xfb\x4c\x81\x42\x2b\x44\x76\x83\xd9\x98\xc6\xb5\x0c\x93\x13\xab\x81\x61\xb0\x5b\x73\x00\x0e\x65\x10\x12\x66\x9b\x0a\x9b\xb6\xd8\x89\xdc\xd5\xf7\x25\x56\x3c\x01\xa2\xf2\xee\xad\xcb\x05\xce\xb6\x86\xd1\x91\x52\x40\x0c\x9d\x3c\x8d\x48\x6f\xb6\x5a\x09\x45\x58\x2c\xa5\x67\x8a\x1a\xb7\x12\x78\x2e\xb0\x5f\x82\xbc\x8f\x28\x9e\x82\x00\x4a\x91\xe9\xe4\x99\x32\x38\x01\xf7\x2c\x88\x67\x98\x0e\x9e\x1b\xd7\xd4\x5c\xc4\x20\xb5\x48\xf8\x67\x40\x84\x55\x74\xe0\x52\xb1\x92\x59\x2e\xc2\x2a\x81\xf0\xfb\x27\x93\xec\x29\xdd\xdd\xba\x86\xbe\x55\xb2\x67\x9f\x13\x66\x76\xed\x80\xfe\xec\xb6\x22\x9e\xba\xef\x75\x2f\x86\x4a\x21\x97\x37\x12\xa5\x53\x00\xd7\x00\x3a\x9f\x19\x52\x3e\x64\x8e\x35\xd6\x4d\x12\x15\xe3\x73\xa7\xb3\x04\x53\xb4\x2a\x78\xca\x55\x2e\x44\x36\x53\x94\xf7\x42\xea\x92\xb0\x3a\x17\x17\xd0\x4b\xa0\x89\x81\xae\x55\xa4\xb3\x1c\x99\x00\xe0\x2b\x4b\x2e\x93\x22\x6d\xbd\xed\xe0\xaa\x3c\xa8\xfc\xb0\x6b\x94\xce\xa1\x59\xd6\x34\x69\xae\x90\x25\xd8\x45\xae\x7a\xb6\x9a\xb5\x2a\xd7\x79\xb4\xbc\x82\x35\xb9\xfd\xe7\xdb\x85\xba\x5a\x6a\x5b\xfe\x35\x9b\x6f\xf5\x00\x8b\x47\xaa\xfe\x8d\x8d\x65\x5f\x6a\x21\x99\x8e\xec\xed\x97\x36\x1e\x5d\x9e\x3d\x41\xe2\x63\xdf\x4d\x70\x7f\x78\xf7\x4f\x7f\xdc\x9f\x1e\x69\xb5\x5d\xb0\x6a\xd7\x5c\xc5\x89\xb9\x21\xf1\xbc\x72\x02\x79\xbc\x0f\xdf\x58\x3f\xa1\x5d\x13\xcf\x62\x25\xe7\x51\x0d\x68\xbf\x6f\x9c\x2a\x08\xfd\xae\x17\xaa\x3e\xa5\x8c\x9b\x6f\xc2\x6b\xfa\x93\x9d\xb4\x9e\xdc\x86\x6d\x5f\x82\x4b\xb9\xfa\x0e\xdc\xfb\x8f\x75\x4b\x19\xd1\x56\xa4\xf3\xcb\x81\xbf\x8e\xdc\x8c\x80\xb3\x35\xc6\x2c\xa4\xea\x9b\x29\x92\x82\xc3\x9c\x1f\x24\x7b\x90\x8e\x22\x63\x7f\x70\xc5\x17\x7f\xf8\x17\x4b\x46\xb0\x63\x4b\x18\x6b\x60\xfc\xd0\x51\x54\xa4\x90\x90\xa3\xa0\x01\x13\x78\x36\x0d\x61\x54\x9d\xe0\x89\xec\x60\x14\xe8\x3e\x35\x79\x0f\x2e\x4a\x54\x7a\xa9\x07\x08\x0e\xa0\xa8\x9d\x3b\x0b\x89\x7d\x3d\xcd\x72\x96\xe5\x62\xdb\x68\x95\x4a\x4e\x57\x59\xb7\xf1\x08\xb7\xcb\xab\x46\xf6\xf4\x75\x07\xd8\xe8\x49\x70\x91\xfb\xcb\xfd\xcd\x35\xdb\xf2\x1d\x20\x92\x72\x4d\x82\x9b\xc0\xc7\x54\xdd\xbf\xfb\x66\xa0\xfc\xf2\xe5\xcd\x86\x63\x4a\x30\xc4\x96\xa8\x21\x77\x82\xba\x15\x3b\x04\x6b\x86\x96\xa4\xd9\xca\xa9\x4e\xce\xb6\x09\x57\x02\xb9\x73\xe1\xfd\xc7\xac\xf2\xf8\x30\xcb\xe8\xf2\x0d\x84\xe3\x80\x0e\xc0\x45\x9e\xd6\x42\x5a\xa8\x26\x44\x67\x59\x8a\xf2\xa8\xc4\x62\xab\x8d\xe8\x84\x5b\x7d\x44\x46\x5d\x1e\x99\x6d\x82\xc5\x85\x36\x59\xea\xf2\xed\x3c\x03\x28\xdc\x80\x89\xea\xd6\xcd\x9c\x29\x2b\x8b\xa6\x5f\x32\x16\x63\xf9\x65\x21\x33\x94\x9b\xc6\x50\x34\xc0\x52\xc8\xbe\x60\xce\x3c\xe5\x2a\x33\x13\x0a\xd1\x34\xf1\x2c\x14\xab\x17\xf3\x4d\x2f\xae\x5c\x66\x19\x27\x89\xb4\x38\x5a\x86\x3e\x70\xcc\x8e\xb9\xc0\x34\x0a\x39\xee\xa7\xb9\xfd\xc8\xb7\x5d\xc0\xf1\xa3\x5b\xdc\x37\x4b\xae\xf8\xbc\xea\x75\x82\xc4\x1c\xd0\xf3\x97\xd0\xe3\xe1\xe8\x3d\xaa\x23\xcd\x4f\x23\xef\xe5\x00\xa1\xfa\xd3\x14\x03\x0c\xb0\x3d\x01\x0f\x8c\x43\x75\x38\x7f\xd9\xec\x72\x20\x3f\x47\x41\x64\x78\xb9\x31\xbb\x17\x82\x7d\x76\x9a\xca\x9f\x49\x5c\x03\x80\x6a\x20\x8a\xdd\x36\xae\x53\xb5\xd4\xc7\x19\x83\x74\x55\x03\x42\x1d\x35\x2a\xcd\xfd\x3c\x16\x6a\x05\xd5\x0c\xea\x75\x4b\xf0\x1a\xdf\x6b\x0f\xb0\xea\xd6\xdf\xc9\x09\x98\x6f\x7b\x6a\xce\x67\x98\xe2\xc3\xb4\x7f\x4b\x8b\x24\x07\x99\x69\x20\x2e\x7c\x52\xfa\x45\xa1\x2f\x40\x4f\x62\x6f\xcd\xfe\x83\x03\x0c\x18\x08\x09\x5b\x55\xa0\x35\x7c\x07\x4c\x8a\x13\xf7\x6f\x76\x8f\x59\x0a\xec\x33\x50\x85\x67\xe0\xfc\x10\xc9\x37\x58\xf3\xb7\x93\x11\xfb\x71\xc4\xce\x47\x6c\x3c\x1e\xbf\x1b\x31\xc1\xa3\xb5\xed\x11\x7e\x05\x31\x4b\x39\x5f\x99\xb6\x9d\x14\xbd\x7f\x00\x30\xdf\x9b\xc3\xca\x12\x86\xf0\x40\xb0\xde\x47\x1e\xec\x2b\x60\x19\x03\xaa\x2b\xd9\x8c\x6e\xb4\xd6\xd2\x77\x0a\xc0\x81\x22\xd2\xa9\x85\x17\x66\xb9\x4e\x2d\x54\xea\x99\xa7\x5c\x2a\xa8\xee\xe2\x75\xa0\x28\x3d\x39\xe0\x77\x14\x5f\xf9\x06\xde\x5f\x2a\x47\x71\x65\x86\xe9\xc1\xf5\x3f\xdf\x6d\x65\x04\xe3\xf9\x92\xca\x3c\x37\xa7\x73\x36\x53\xf7\xec\x87\x7f\x63\x93\xed\x36\x11\x6c\xc2\xfe\xce\x7e\xe4\x8a\x2b\xce\x7e\x64\x7f\x67\xe7\x5c\xe5\x3c\xd1\xc5\x56\xb0\x73\xf6\x77\x33\x6c\xa6\xbd\x6b\x6d\x8e\xc3\xdd\x88\x71\xa6\x8a\x04\x4f\xfd\xb7\x16\x86\xf4\xce\xbd\x17\xf7\xb3\x63\xf5\x9c\x33\xbd\xa1\xa3\xf0\x17\x17\x0d\xcf\xa4\x5a\x25\x22\xb7\x2a\xea\x25\xc0\x18\x3e\xe0\x0c\xde\xf4\x87\x99\x72\xb1\xbc\x5f\x4c\x8f\x7f\x61\x7f\x67\xd7\x45\x92\x98\x2e\x19\x43\x63\x16\xd2\x0f\xcc\x02\xf8\x85\x1a\xbf\xc8\x27\xb9\x15\xb1\xe4\x00\xe1\x37\xff\x7a\xff\x00\xb3\x3d\x2f\x3c\x6d\x4e\xb8\xa7\x1d\xfd\xfa\x31\xa6\xe7\x55\xea\xb2\x1c\x0b\xbf\x9d\xfc\x8e\x9b\x5f\xf9\xab\xc3\x3d\x22\x4f\x16\x46\xfb\x81\x1c\x56\xa4\xce\x0f\xd9\xfe\x0f\x32\x01\x95\xc3\xd6\xb6\xd5\x70\x14\x84\x87\xfa\xb1\x46\x16\xc4\x23\x4e\x7e\x87\xec\xc1\xe4\xdf\xd7\xe4\xd6\x78\xc8\x4b\x95\x6e\xe0\x4b\xfa\x6a\xff\x5e\x59\x21\xc7\x3f\xfe\x73\x59\x3d\xa3\x34\xc4\x5a\xf6\x92\x19\xa9\x74\xf6\x91\x62\x17\x50\x27\x68\x2e\x32\x4a\x26\xef\xcd\x56\x7d\x7f\xad\x95\xb9\xb6\x66\x72\x85\x0c\x05\x00\x60\xc9\x80\x93\xcd\x3a\x05\x0f\x65\x97\x35\xd8\x02\xe0\x1f\x98\x2e\x21\xa8\x2a\x37\x56\xc0\x4c\x41\xb2\x9b\x29\xf3\x0d\x3a\x91\x00\x60\x2d\x1d\x91\x1d\x3e\xcd\x0a\x9a\xd2\xb3\xc8\x20\x07\x8d\x37\x2c\xb0\x2e\x0d\xd0\x23\x16\x1c\x15\x0b\x1d\x11\x15\xbf\x0e\x48\x5c\xa8\x35\x5b\xe1\x8b\xd8\xad\x85\x48\xb4\x5a\x99\x55\xd1\x66\x04\xf4\x86\xcb\x63\x20\x0d\x61\x17\xb0\xb1\xd6\x1e\x98\xc3\x92\x3e\x42\x53\x62\xce\x49\x19\xfb\xfb\x3d\x69\x4e\xbb\x88\xac\x3b\x0d\xe9\xe5\x5a\x5e\xe2\xc8\x7a\xd1\xc7\x4c\xa4\xc0\xb4\x88\xb9\x75\x17\xed\xc7\x83\xd3\xd7\xdb\xe2\x1b\xf5\xdb\x54\x9d\x90\xcc\xe6\x50\x08\x65\x13\x6c\x30\xd9\x05\xf5\x7a\xac\xc7\x5f\x13\x9d\xf9\x9a\x8a\xb0\x8d\xf2\xaf\xf0\x39\xd3\x1a\xfd\x68\xa8\xc4\xab\x1d\xbd\x53\x00\xd7\xbe\x20\xe3\xfb\x5c\x2f\x6d\x0d\x5f\xff\x33\xbd\xc6\xb9\xdf\x0f\x1f\x11\xf2\x6c\x86\xdc\xf4\xf5\x85\xd3\x96\x6f\xd0\x6a\x4e\x19\x89\x7e\x9d\xad\x0e\xd8\x8d\xfa\x80\x5f\xbf\xd5\x89\x8c\xba\xe1\x56\xf6\xb8\x5a\xeb\x97\x06\xfc\xca\x42\x00\xfe\x90\xe2\x3f\xd4\x29\xf4\xd0\x73\x11\xe5\x3e\xe3\x56\x7f\xb9\xdf\x20\x1e\x9d\x77\x70\x8c\x28\xbb\x61\x03\xdd\x27\x97\xc3\x83\xb3\x15\x38\xb6\x80\x5a\x16\x63\xad\x50\xc5\x05\xb9\xed\x88\x53\x08\xba\x34\xf2\x60\xa0\x5f\xd6\x3a\x31\x77\x31\x15\x13\x5f\xd9\x4c\x6d\x45\x1a\xe9\x84\xe7\xc6\xfc\xbf\x10\x27\x8d\x4c\x62\xcf\xdf\xfe\x16\xb0\xa4\x80\xf8\x7a\x47\x22\x35\xc2\xe5\x98\x6d\xf3\x1d\xa7\xae\x5d\x76\x56\xa8\xf2\xb8\x08\xd4\xe9\xc0\x61\x5d\xcb\xfe\x13\x81\x98\x70\x28\x88\x61\xa0\x92\x2d\x34\x83\x5e\xea\xcf\xa0\x08\x2f\x48\x49\x2e\xad\x14\x96\xbd\x38\xe5\x95\x79\xa5\x65\x56\x1d\x4a\xe0\x9d\xc3\x3a\x24\x04\x90\x64\x02\xba\xb3\x11\x1c\x7d\x31\xcf\x02\x45\x93\x3a\x53\x3e\x3f\xfa\x26\x0b\xfd\xb2\xc6\x79\x46\x5a\x35\x0b\x3f\x1b\xb1\x37\xa5\x17\x7d\x03\xbc\x64\x4a\xc3\xf3\x28\x87\x55\x1a\x1a\x58\xae\x23\x26\xf3\x99\x92\x19\xae\xcc\x54\x24\xe2\xd9\xf4\x2e\x0c\x16\x13\xd6\xc5\xde\x9d\xed\x6b\x03\x82\x99\xdb\xc2\x57\xa7\x6f\x0a\x9b\x30\x0d\xf9\xad\x38\x04\xa6\x63\x91\x19\xbf\x11\x98\xb9\xc5\x57\xb3\x01\x24\xe4\x42\x10\xfe\x11\x0b\x65\xfb\x07\xa8\x10\x94\x50\x9b\xa9\xe9\x12\xaa\x0f\xa1\xe6\x31\x8e\xf1\x16\x6a\xb9\x9a\x1d\xd9\x88\xa4\xe0\xb0\xa6\x3b\xb9\x93\xcf\x47\x8d\x25\xdc\x49\xe2\x59\xa4\xbb\x1c\x82\xba\x30\xae\x4a\xf0\x7c\xcd\x64\x3e\x02\x96\x18\x6b\x29\x67\x8a\xc7\x24\x51\x49\xcd\x99\xa1\x81\x75\xdf\x31\xcf\xf4\xfb\x85\x7e\xee\x72\x6c\x8f\x45\x7d\xe1\xae\xde\x26\x5c\xcd\xf1\x04\xf9\x15\x70\x5f\x81\xfc\x55\x5b\xaa\xb3\x58\xcc\xed\x12\x3b\x4d\x3f\x9d\xbd\xbf\x2b\x89\xd2\x19\x3f\xd6\x3e\x68\x84\x8b\xc1\x33\x5b\xda\xeb\x89\x8b\xd3\x10\xba\x20\x65\x36\x03\xdb\xdf\x0a\x78\x48\x18\xaf\x20\x11\xec\x6a\xdd\x87\x09\xb3\x2b\xe0\x7b\xc5\x27\xf5\x99\xf9\xca\x19\x52\x9d\xf6\xe1\xd0\x98\x9a\x87\x78\x10\x3c\x66\x4f\xb7\x5e\x17\x22\xd3\x1a\x47\xa9\x43\x65\xec\xdb\x06\xe9\x3e\x84\xed\x0b\x8c\xc3\xb9\x30\x4f\xb3\xbc\x59\x78\x0f\xd3\x0d\xd8\xca\x53\xc6\xa8\xc1\x4e\xf5\x8d\x94\xf8\xaa\x5f\xe8\xd7\x98\x4d\x15\xb3\xee\xde\x88\xbd\xc1\x85\x95\xbd\xa1\x10\x24\x69\xe4\x51\xee\x3c\xa6\xdd\x43\x75\x92\x55\x28\x06\xa2\xd5\xfd\x76\xc3\x4c\x50\x27\xbb\xd1\xab\x8e\xcb\x8f\x12\xd0\xf2\x87\x14\x44\x63\x16\x71\x81\x0d\xd0\x21\x89\xd7\xee\x1d\x3a\xed\xda\x47\xb3\xfd\x0b\xdb\x7c\x17\xfb\xd1\x7e\xd1\x0c\xd1\xb6\xa0\xf3\xd4\xfe\x9e\xe9\x74\xa6\x6c\x6b\x14\x92\xcc\x50\x4e\xa1\xda\x54\xc0\x4e\x43\x3e\x7f\xb0\x52\x01\xc4\x60\x15\x34\x40\x98\xc5\x53\xb0\x55\xad\x00\x80\x22\x16\xc2\xab\x7b\x8e\xd9\xc4\x3f\xcd\x38\x1e\x66\x81\x6f\xf0\x98\xaf\xd2\x34\x25\x89\x19\x14\x99\x5b\x56\xa8\x00\x58\x9f\x15\xc0\x6d\xb6\x2c\x8c\x31\x0a\x08\xe0\x66\xca\x0c\x1e\x5b\x4a\xc0\xfd\xd2\xb8\xcc\xd4\x47\x9d\xd9\x3a\xee\xcc\x8f\x87\xc5\x90\xd2\xb0\xbd\x71\x42\x22\xf4\x83\x0b\x38\xb4\x29\xe6\x5f\x51\x96\x85\x8a\x0a\x22\x63\xd8\xe9\x22\xf5\x2f\x15\x71\x35\x53\xff\x65\x86\x07\x75\x1d\x9d\x28\xaa\x5e\xe2\x16\xb6\x4a\xbc\xec\xed\x67\x6c\xf4\xed\xbf\xbc\xfb\xfc\x0e\xf9\x14\x8a\x0c\xb4\x9b\x46\xe5\x03\xc4\x71\x81\x16\x49\x02\x99\x68\xfb\x06\x8e\x06\xc1\x3f\x82\x77\xc1\x72\xe8\x52\x37\x57\x65\x17\xa3\xcf\x46\xef\x5a\xc1\x3e\xf8\x3c\x61\x11\xcf\xa3\xf5\x99\xf5\xe5\xc8\x8c\xd9\xd3\x8f\xa6\x0f\x45\x5c\x8c\xa7\xd5\x4c\x87\x69\x2e\x9c\xe9\xc6\x31\xc0\x97\xd6\x8b\x79\x05\x00\xd6\x3c\x54\xb9\xe1\x1d\x7f\x18\x2e\x4e\x2f\x4b\xea\xfd\x3c\xf7\x71\xab\xcc\xe2\x6f\x9c\x14\x25\x57\x7c\x23\x62\xf6\x06\x6a\x75\xde\xd8\xc9\x9f\xa9\xed\x62\x9c\xec\x96\x39\x91\x0b\x99\x41\x19\x83\x86\xc1\x9e\x53\x6e\x1e\xd7\xaf\x49\x7b\x06\xbb\xf5\xa2\xd5\xec\xeb\xb8\xb1\x71\x4f\xea\xef\xb0\x60\x8c\xcb\x8d\xce\x7d\x19\x22\x54\x26\x53\xe5\xd9\xd3\x88\x2d\x52\xae\x80\x7e\x3a\x0e\x9d\x2a\xbf\x3b\xe1\xf2\x8c\xcc\x3d\x94\xb1\xe2\x8a\x27\x3b\xc0\x8e\x8f\x66\x0a\x69\x8e\x80\x98\x70\x17\x25\x32\x42\x19\xe4\x8a\x1f\x24\x9e\x85\xca\x2f\xa9\xae\xdf\x82\xd4\x8f\x4d\x2d\x3b\x9e\x80\xa3\x08\x00\xa7\x65\x6f\x87\x7b\x02\x04\x1f\x61\x8d\x52\x01\xe0\xed\xc5\x2e\x00\xb5\xba\x05\x3e\x22\x35\x14\x60\x82\x62\x7f\x2b\x16\x3a\xb1\x54\x5a\xd3\x0b\xa6\x53\xa0\x13\xce\x35\xfd\x48\xc6\x6d\xa7\x98\x54\xb1\xf8\x7a\x54\x3d\x7b\xf7\x81\x64\xdd\x3b\xf3\x98\x80\xb5\xb6\xfa\xb2\xb0\x8b\x52\x61\x0e\x8b\xdc\xde\xe0\x6a\x9f\xca\xaa\x08\xbb\x49\x92\xaf\x01\xf6\x86\x80\x6b\x3f\xa8\x1b\xbe\x63\xd1\x9a\xab\x55\x70\x85\x06\x14\x92\xd8\xea\x14\x65\x77\x9e\x81\x38\x4a\xa7\xb6\x5e\x90\xaa\xe0\x08\xf5\xed\x02\xde\x08\xb6\xd4\xb6\xd4\x8d\xaf\x56\xa9\x58\x41\x09\xf7\x4c\x95\xea\x78\x81\x34\xcb\x32\xfe\xe2\x73\xba\xca\x20\x4f\xc3\x25\xd0\x76\x6b\xc9\xd3\x9d\x2b\x22\x23\xcd\x2a\x37\x74\xb5\x61\x1d\x31\x29\xc6\x23\xf6\x47\x0f\x30\x15\x91\x56\xae\x0a\xad\xf9\x1d\xb6\x95\xd0\xf4\x1e\x5b\xd4\x40\x3a\xd0\xdc\x77\xf8\x5d\x4d\xf9\xaa\x71\xd1\x74\x96\xf1\xe5\x3c\x2f\x06\xd8\x4a\x52\x37\x3c\x37\x5f\xbe\xc7\xef\x76\x62\xb0\xf9\xd6\x98\x37\x4b\xf8\x62\x3e\x6f\x2c\xbc\x79\xb6\x67\xe6\x6b\x1a\xeb\xbd\x81\xce\x44\xb7\x07\x3a\x4f\xe1\x52\xda\xaa\xfe\xfd\xb1\xce\xa4\xa5\x52\xbd\xe3\x9d\x86\x86\x32\x2d\x18\x95\x60\xe6\x59\xf5\xba\xd5\x60\x01\x9c\x1e\xbc\x4e\xd1\x6f\x47\xe4\x86\x2b\x98\x2f\x19\xc9\xa6\x03\xa1\xc4\xfa\x01\x1a\x97\xdf\xea\x6e\xdc\xc6\x37\xd2\x3c\xfc\x8f\x2d\xf7\x62\xeb\x99\x34\x0d\x7a\xb8\x3f\x71\x9c\xd2\x81\xe7\x94\x7b\x3c\x72\x9e\xdb\xe0\xa6\x4e\xe5\x4a\x2a\x9e\xeb\x94\xbd\xbd\xb5\x44\xc1\xef\x1c\xb9\x3d\x8c\xe2\x29\xcc\x44\x69\x88\xd0\x4c\x34\xdf\xbd\x00\xcf\x2c\xe2\xf9\x30\xd6\xa6\x26\x8d\xe6\xbd\x78\x7d\xf3\xa9\x2c\xe7\x9b\x6d\x48\x38\xe8\xa4\x03\x69\x64\x12\x1c\x04\x66\x3b\x06\x31\x3e\x99\xf9\x1a\xac\x99\xa2\xc8\x38\xce\x9b\x4e\xed\xe0\x81\x6f\xdb\x76\x36\x6f\x8b\x7c\x7e\x20\x89\x06\x91\xef\x0e\xa4\x21\xac\xa6\x50\xef\xae\x6c\xc2\xc0\xdf\x0b\x4a\x8e\x36\xbc\x28\xf2\x9f\x65\x70\x6a\xe3\x15\xcf\x99\x0d\x73\x4a\x5a\xae\x80\xf3\x44\x17\x31\x23\xa3\x41\xe9\xd8\x74\x8c\xa7\x0f\x10\x12\x8e\xc7\x6d\xec\x4c\x03\x45\xc1\xdc\xfe\x86\xef\x35\xaf\x70\xf8\x5d\x8b\x85\xeb\xdc\x5a\x34\xb2\xc3\x62\x4f\x84\x44\xf8\xc8\xb7\xdd\x8c\x0f\xdc\xde\x9c\xb1\xc0\xc7\x99\x3b\xeb\x05\x96\xf7\x7e\xcb\x70\xb9\x68\x28\xb0\x23\x0d\x0b\x94\xc1\xbd\x44\xc6\x09\xac\xe7\x30\x90\xdc\xc0\xdf\x58\x4a\xd0\x65\x4f\x47\x3f\xce\x56\xb2\x76\x3f\x6a\xcb\x53\xa1\xf2\x39\x3c\x71\xd8\xc3\xe0\x21\xb7\xf0\xf5\x92\x43\xd2\x2b\x20\xf8\x1f\x0f\x1a\xe3\xbc\x96\x0a\xe1\x3f\xd9\x3d\xc5\x36\x32\x2b\x1c\x6b\x4e\x9f\xb7\x12\xb0\x27\x41\x4e\xcc\x4d\x5c\xcb\x74\xd1\x0b\x1d\x30\x7a\xc1\x0b\x95\x4c\x67\xaf\x17\xf2\xbd\x47\xe1\x0f\xd3\x0a\x85\x79\xa8\x82\xd2\x98\x32\xfb\x33\xbf\xe6\xb0\x2a\xd9\xa7\xa3\x19\xcf\x99\x99\xbf\x84\xfd\xb7\x48\xb5\x2f\x0b\xc0\xa0\x45\xd8\x70\xa7\x3f\x7c\xb8\xc4\x16\xfa\xbb\x28\xee\x14\xaa\x9b\xc0\x4f\x88\x6d\x02\x6f\x96\x8b\x9d\x75\xf7\x5b\x52\x09\x5b\x11\xe1\x3c\x1c\x78\x6c\x06\x17\xbb\xc0\xbe\xdb\xd0\x97\x3b\x2c\xec\x06\x7d\x0f\xf7\x56\xe2\x73\xdb\xf0\x2d\xe1\xbc\x08\x52\x5a\x0d\xe2\x8f\xe1\x25\xfe\xe3\x97\xff\x1c\xb7\x89\x27\x42\xd7\x87\xc2\x66\x5c\xe7\x3f\xa4\x52\xa8\x18\x92\x72\x3c\xae\xb3\xac\xab\x52\x94\xb6\x64\x9e\xcd\x32\x3c\x49\xf5\x5c\xf3\x39\x98\xcd\x71\x11\x7d\x83\xcc\xae\x37\xb2\x6e\xfb\x96\xf2\x3e\x6d\x47\x75\x36\x8f\x77\x8a\x6f\xea\x72\x93\xaf\xda\xc7\x9d\x14\x49\x0c\x5d\xa4\xa7\xef\xcb\x4e\xc4\x22\x7a\x1a\xea\x13\x1c\x4c\x4d\x2c\xa2\x27\xf6\xd3\xc3\xc7\x2b\x94\x04\x92\xd9\x4c\x5d\xf3\x5c\x3e\x8b\xc7\x34\x71\x61\x61\x34\x3e\x45\x9a\xd8\x3d\x52\xa6\xca\xc4\xea\xbf\x02\x54\xcc\x89\x57\xd3\x3a\x0e\x21\x93\xf1\x66\x77\xb6\x28\xa2\x27\x91\xbf\x4f\xb9\x8a\xf5\x06\x5f\xe3\x7d\x56\x2c\x97\xf2\xeb\x38\xe7\xe9\xbb\x7d\x98\xfe\xbd\x96\xf4\x88\x4b\xc2\x31\x06\xa5\x7e\x0d\x70\x42\x4d\xde\x36\xcb\x38\x94\x6a\x77\x96\xd9\xf3\x44\x3a\x93\x02\xf1\xc6\x96\x8b\xc8\x98\xfa\xd9\xf0\x84\x01\xa3\xd7\x7c\xb0\x7e\xa3\x2b\x56\x1b\x63\x65\x9f\xee\xdb\x08\xe1\xad\xd6\xc9\xb1\x51\x42\x9e\xd8\x4d\x32\x07\xc5\x99\x63\x5c\x70\x5c\x00\xee\xb2\x3d\xbd\x70\xf9\x2a\x47\x01\x49\xb1\x06\xa7\xf7\x06\x50\x0a\xea\x02\x00\x18\xa0\x13\x1d\x28\xcb\x6c\xdb\x90\xb0\x1c\x88\x16\x85\x36\x10\xe9\xe0\x74\xf4\x6b\x61\xcb\xa0\xfe\x97\xfb\x3e\x02\x4d\x56\xa5\x87\x83\x02\x08\xa8\x0f\x53\x79\x94\x0b\x26\x84\x74\x7a\x6e\x1c\x83\x67\xdb\xf1\x44\x55\x3a\x63\x73\xc8\xf3\x99\xa9\xc0\xcb\x41\x26\x12\x0b\xc7\x75\xa3\xd6\x14\x63\x28\x2d\xc3\xa3\x63\x0c\xc7\x70\xa6\x76\x06\xa1\x2f\x42\xf5\x21\xc8\xa3\x46\x7a\xb3\x30\xf7\x7c\x2c\xef\xa4\xc0\x1b\xb8\x67\x13\x4b\x49\xe5\x82\xa4\xd6\xcd\x42\x4e\xec\xca\xd8\xbb\xa3\x21\x64\xf7\x0a\x4d\xd6\xbe\x2b\x4c\xe8\x13\x9f\x96\xde\xb5\x05\xd9\x57\x7d\x03\x69\xae\xb3\x2f\x7c\x97\x81\x54\x93\x30\x56\x71\x89\xc1\xa6\x72\xff\x47\x3e\x04\xe2\xe8\xce\x48\xf7\xb0\x20\x05\x37\x7a\x17\x89\x35\xef\x22\xb1\xa2\x54\x9e\x4b\xe4\x4d\xd6\x3c\x38\xbf\x4e\xfc\x38\xed\x8c\x1f\x63\x02\xe7\x7f\x47\xc8\xb8\x23\x30\x75\x64\x7c\x2c\x38\x26\x53\x1d\x89\xcc\xa6\xd8\xa1\xe8\x01\xcc\xb1\x79\xf6\x88\x6d\xb8\x54\xb4\x0d\xf2\xd4\x18\xc8\x58\x2c\x8a\xd5\xaa\x35\x6c\xf3\xfd\xc7\x7f\xcb\xfb\xe4\x9f\x3e\x3e\xd7\xc9\x86\x73\x8a\x08\xdb\xd4\x3e\x09\xd3\xc6\xc6\x57\xfe\x36\x41\xb5\x13\x45\x08\xa7\x7d\x22\x84\x16\x77\x00\xe5\x1f\xe4\xe2\xdb\xdc\xf0\x6f\xa1\xc3\x6f\x13\x3a\x6c\xcc\x8d\x54\x7b\x88\x94\x03\x73\x59\x76\x80\x3b\x7a\x78\x20\x73\x91\xa3\xb8\x83\x5e\x91\x48\x61\x26\x54\x9c\xb1\x05\x8f\x5e\x81\xca\x08\x4e\x9f\xe3\x63\x14\x7b\x12\xde\xf7\x7a\x23\x18\x3c\x2a\x43\x26\x70\x46\x15\x36\x23\x40\x52\x99\x17\xf4\x59\x62\xca\x41\xc3\x71\x85\xd9\xea\xd8\x3b\xad\x6f\x95\x78\x61\xe6\x34\x18\x85\xd0\x92\x60\x7a\x40\x22\xe2\x1d\xa9\x8c\x7b\x1c\xaa\x2b\x27\x4e\xc5\x8a\xa7\x31\xa0\x9f\x69\x4b\x26\x3c\x7a\x32\x7f\x87\xfe\xd1\x13\x09\xfe\x62\xd9\x6a\x11\x92\xe5\x5b\x93\x2a\x42\xc5\x67\x42\xda\xf8\xfe\xe1\xd7\x33\xc6\xa3\x54\x67\x78\x8b\x77\x2a\x68\x50\x7d\x07\x0e\xe2\xb3\x8c\x0b\x9e\xe0\x13\x5b\xa3\x7f\x3c\x3b\x8a\x7d\x77\x12\x88\x20\x88\xaf\xdb\x84\xab\xf2\x9e\xc4\xd7\x05\xfe\x0c\xd9\x59\x62\x42\x34\x50\xdf\x94\xce\x2e\x54\x0e\xf6\xdb\x0a\xbd\xcf\x54\xf0\x78\x17\x92\xe5\x48\x45\x72\xa0\x3c\xde\x48\x65\xa6\xde\x6a\xdc\x38\xfb\x0a\x4d\x47\x3c\x41\x10\x18\x50\xc1\x27\x49\x65\xeb\x67\x4c\x09\xe3\xb2\xf0\x54\x26\x3b\xf0\x52\xb7\xa9\x38\x0b\x9e\x13\xec\x6f\xc2\xa0\xcb\x6c\xa6\x6c\x61\x77\x91\x89\x65\x91\xa0\x2f\x0b\xb7\x3d\xf7\x02\xb4\x0f\x1f\xa7\x23\x73\x8c\xe5\x44\xc0\x1c\x3c\x18\x65\x4d\x4e\x81\xe7\xad\xdf\xb3\x7a\xc5\xbc\x3d\x89\x53\x0a\x70\xc3\xb5\x7e\xb1\x45\x07\x2f\xdc\xa3\xca\xda\xce\x92\x93\xc5\x39\xbb\xbd\x1a\x7b\x9f\xb0\xbb\x12\x07\xbd\x2c\xdd\x4d\xbf\x13\xb1\xdb\x89\x52\xc1\xeb\x90\x22\x18\x61\x50\x44\xcc\x8a\x0c\x6b\x17\xcc\x1c\x82\xb5\xb6\xd7\x66\xac\xe6\xb0\x6a\x72\xcc\xbd\x9d\xcc\xb4\x62\xb3\xe2\xf7\xbf\xff\x93\x60\xbf\x27\x79\x58\xb0\x32\x18\xa1\x06\x1a\x27\x6c\x1d\x0c\x94\x7b\x80\x40\x8e\xa7\xda\x8c\xb0\x26\x10\x96\xad\x9c\x04\x18\x13\x8f\xd6\x2c\x2b\x16\x88\xd1\xe1\x14\xe4\xe4\xca\xb1\x24\x5e\x69\x80\xdb\xe0\x39\x66\x7b\x3f\x20\x58\x70\x4b\xe7\x8b\x0d\x04\x04\x38\x41\x18\xe8\x50\x54\x0a\x06\x05\x5f\x12\x0c\xf8\x2d\x28\x4b\x8d\xd8\x4f\xf2\x59\x8c\xd8\xfd\x96\xa7\x4f\x23\x76\x81\xe1\xd6\xbf\xe8\xc5\xde\xfb\xff\x29\x62\x60\xce\x4d\x3d\x56\x43\x15\xa3\x49\xa3\x80\x1b\x34\x08\xf1\xd7\xa3\x35\x16\x61\x01\x5a\x3d\x28\x52\xbe\x4f\x3f\xa7\x95\x40\xf6\x54\xb7\x98\x76\x58\x5f\xeb\x9d\xa6\x6a\xa5\xfd\x79\x4a\x55\x53\x4d\x48\x13\x73\x8e\xc1\x4a\x34\x2f\x7e\x06\x9e\x89\x4e\x5d\x65\x5f\x46\xe1\x67\x5c\x15\x88\xbf\xc3\x13\xb9\x52\x0b\xd7\xd7\xf1\xb2\x0f\x9e\x6f\xb5\x4e\x1a\xfd\xaf\x93\x0e\x60\x2d\xda\xd9\x77\xf0\xa6\x58\x43\x90\x85\x5e\x89\x1d\x45\x1f\x39\xf3\x71\x36\x0c\xaa\x01\x19\x00\xac\xa6\xb8\x80\x24\x82\x1f\x8e\x50\xce\xc8\x98\x15\x44\x3d\xa2\x23\x62\xd5\xef\xb8\xf5\x10\x8d\x13\x45\x21\xc4\x10\x6d\x57\x8b\xe9\x65\xf5\xe7\xb4\xb8\x85\xd0\xee\x5c\x36\x55\xfe\x0f\xdd\x5c\x80\x23\xae\x07\xea\xb1\xe7\xd6\x80\x5b\xdc\xf9\x3e\xde\x43\x5b\x64\x37\x8f\x12\x9e\xf5\x44\xb2\x35\xda\x9d\x29\x35\x74\x0e\xed\xf4\xb7\x99\x3f\x41\x4c\x75\xd3\xf3\xc0\x9c\xa9\x89\xe3\xfd\xf3\xae\x96\x73\x0f\xd1\xcc\xa2\x63\x5c\x9b\x1a\x04\xb3\x7b\x92\xc8\x11\xcb\x8a\x68\x0d\x70\xfd\xb2\x9d\x0a\xed\x56\x7d\xc7\x8e\x66\xca\x38\x2b\xa8\x7a\xc2\x21\x21\xfc\x02\x04\xf9\xf2\xbf\x85\xf3\x86\x08\x15\x1a\x3a\x40\x0b\x6e\xa6\x46\xab\x46\x67\xd1\x56\x4e\xf0\xf4\x49\xc4\x41\xa8\xaf\xd8\xc6\x3c\x37\xde\xb3\x3b\xe4\x60\xfd\x3a\xc2\x54\xeb\x7d\x66\xe1\x8b\x85\xce\x72\xc5\xd2\x26\x72\x29\xa2\x5d\x54\x23\x42\x29\xc1\x30\x4e\x17\x53\x3e\x2c\xa4\xda\x45\x98\xd1\x7c\x53\xfe\x54\x2b\xf0\x66\x6d\xb9\xeb\xff\x9d\x88\xb5\x16\xce\x86\x7f\xf6\xa8\xd8\x9e\x34\xf3\x6f\xe0\xb3\x7f\xca\x08\x52\x37\x5d\xc3\xef\xc2\x3f\xad\xfd\xb2\xf8\x2e\xb8\xb1\x92\xd7\xdc\x88\x2a\xfb\xbe\x0a\x54\x65\x1c\xee\x1b\x64\xd9\x6c\x49\xc4\xef\xd9\x0a\x54\x06\x1c\xbb\x12\xe5\x01\xa0\x74\xfa\xaa\x1d\xaf\xf3\x44\x67\x45\xda\xbd\xf9\xef\xca\xbd\xb6\x4f\x6f\xa0\x6c\x84\xc5\xb6\x59\x08\xa8\x3e\xef\x82\x8f\xec\x73\x14\xcc\x7d\xa9\xfa\x7d\xc2\x5b\xbd\x08\x16\x21\x54\xbe\x45\xc3\xaa\xf6\xbd\x20\x06\x02\x27\xef\x4a\x84\x5e\x40\xe5\x70\x2c\x2d\xae\x52\xbe\xef\xbb\xc2\x74\x37\xde\xc1\x2a\x34\x41\xa5\x70\x59\xaf\x0c\xe9\x29\xb2\x0f\xb7\x3c\x5f\x63\x20\x67\xa3\x73\x12\x13\x47\xbe\x12\x84\xf1\x60\x4a\x62\x91\xe8\x05\xc8\xd2\x81\x6a\x7c\xdb\x3a\xa7\xc5\xd9\x6b\xe8\xea\x13\xd6\x67\x6d\x9b\xfd\x00\x35\x7f\xa9\xc8\x80\xfa\xa1\x9e\xf3\xeb\x8b\x90\x1d\x16\x6c\xaa\x77\xd7\x98\xad\x8b\x5a\xb0\xa9\xce\x15\x6e\xac\x3a\xc0\x25\x2f\x0f\xa8\x91\xb8\x0c\xeb\xe6\xcc\xf1\x46\xb4\xa9\x94\x54\x47\xe6\xc4\xca\xfb\x5a\xdd\xcf\x99\x9a\xe0\x6f\x4a\x2a\xf9\x4e\x13\xc3\x21\x12\x49\xe2\xcd\xed\x3f\x2c\xa4\x63\x93\x10\x03\x47\x7e\xfd\xc8\xdf\xb8\x20\x3c\x32\x82\xba\x35\x95\xcb\xd4\xf8\xd3\x19\xb8\x0b\x59\xb1\x38\xf3\x14\x09\x3a\x05\x07\x03\x18\x34\xb6\x1c\x74\x9e\x80\x39\xe5\xac\xe1\x20\xc1\x38\xb4\xe7\xb6\xb7\x54\x62\x3c\x21\xf3\x05\xf7\x42\xac\xd1\x75\xef\xee\xda\x31\xee\x3d\x44\x91\x6c\x7d\x28\x9a\xeb\x2e\x7b\x51\xba\x2c\xfd\xda\x00\xa5\x1e\x08\xa0\x16\x4d\xa4\x7f\x7e\x3b\x51\x1a\xb3\x3e\x76\xe2\xa1\x7c\xb5\xb2\xbb\xc6\x5c\x0e\xc9\x72\xb4\xa3\x38\xbf\x2d\xd0\x14\x26\x30\xdb\xf2\x17\x45\xd4\x04\xdd\xdc\x8e\x07\xd9\x87\x66\x5d\x60\x63\x1f\x6a\xd0\x2c\x6f\x29\x14\x91\xfc\xe4\xd2\x09\x08\x8d\x02\xd5\x47\x9e\x24\x21\x4d\xb6\x0f\x05\xcd\x94\x0f\x18\x98\xe3\x3f\x49\xcc\x9f\x51\xd5\x70\x13\x11\x45\x0c\xb5\x73\x62\x64\xeb\xe8\x89\x81\x8a\xd2\x48\x67\x78\x31\xf7\xd7\xe7\x7d\xbb\xf9\x54\xfe\xe4\x77\x56\x42\xb8\x27\x61\x8b\x8f\x9d\x3f\x89\xdd\xe0\xbe\x36\xa7\x4c\xbc\xae\x1c\xa8\xe8\xbb\x5a\xee\x88\xa7\xa9\x05\xec\xd2\x53\x19\x4f\x73\xb9\xe4\x51\x29\x82\xde\xd2\xcf\xb5\x88\x9e\xb6\x5a\xaa\xc1\xb6\x28\xe8\x8f\x39\x91\x72\x91\xe5\xcc\xb7\xe6\xe0\xc8\xbd\xf8\x1b\x4b\x07\x33\xbe\x48\x06\xa8\x04\x8b\x58\xf4\xfc\x3a\x9c\x39\xe1\xbc\xf6\x65\x77\xea\xab\x8c\xf0\x67\xc3\x2b\x84\x65\xba\xe3\x95\x68\x35\xea\x47\x73\x29\xa0\xcd\x6b\x85\x1c\x3d\x07\x9b\xb3\x12\x2b\x55\xe3\x90\x42\x34\xe2\xb7\x4b\xe2\xff\x7b\x97\x44\xc0\x45\xbc\xe6\x0d\xb1\xb9\xbc\xec\xb7\x33\xe2\xfb\x3a\x23\x90\xa5\x09\x71\xf3\x43\x86\x96\xba\x7a\xe7\xbf\x7e\xdc\xe0\x0a\x16\xf4\x24\x1b\x30\xce\xdf\xf0\x8c\x0b\x1e\x4b\x5b\x64\xa0\xf1\xe8\x6d\x74\xbb\xb3\x81\xfe\x14\xf5\x1e\x6d\x50\x3a\x55\xdb\xbe\x61\x48\x28\x0f\x97\x8e\xb9\x48\xf4\x0e\x27\xb6\x57\xa7\x7e\x57\x49\x91\x3e\xa7\xa4\xb1\x8c\x2e\x4d\x72\x6d\x2d\xa2\x12\x98\x2e\xec\xb0\x8c\x01\x2b\x20\xcf\xdf\x64\x6e\xd4\xcb\x16\xd0\xe2\xf3\xae\x64\x96\xff\x5c\xd1\x9c\x39\x4c\xb4\xe6\xd5\x32\xfb\xb6\xab\xd8\xcd\xe0\x1b\x9d\x09\xe9\xbb\x72\xca\x58\x2f\xed\x9a\x03\xda\x20\xab\x32\x60\xfa\x3d\xe4\xbc\xfa\xec\xc6\xeb\x33\x3a\x83\x2f\x29\xdf\x6e\x45\x6a\xf3\xa0\xb5\x54\x35\x50\xf6\xc3\x53\x40\x73\x63\x2d\x50\xf8\xab\x72\xa4\x1a\x53\x52\x69\x1a\x3e\x06\x43\x37\x6e\x9e\xb9\xeb\x22\x49\x5a\x67\x6e\x3f\x13\xf8\xf5\xe3\xd5\xd5\xfc\xe7\xc9\xd5\xe3\x65\x27\xb3\x76\xf0\xb1\xd6\x31\x71\x3d\xa1\x31\xf1\xda\x1d\xe6\xb1\xc2\x8a\x8f\x69\xff\xd6\xe8\x51\x17\x49\x52\x66\x5d\x9f\xa9\xcf\xd4\x0e\x80\xca\x50\x51\xc6\x8c\x1b\xeb\x1c\xb8\xf2\xf3\xe1\x63\x9f\x4d\xe3\x9f\xf1\xbb\x67\xcc\xbf\xc4\x0f\xa0\x0d\x42\x9a\x03\xcd\xe3\x4a\x88\xd5\x23\xb6\x03\x42\x98\xda\xb6\xc3\xa9\x75\x25\x0e\xdb\x1e\x8f\x0a\x18\xed\x44\x6c\xe5\x20\x4e\xb2\x3b\x70\xec\x3e\x97\xa3\x8b\xce\x96\xc7\x18\x21\x82\x76\x47\xa8\x06\x00\x1a\x67\x9e\x30\x7f\xa6\xf0\xc2\x65\xfa\x94\xeb\xf6\x3e\xb1\x29\xa1\x03\x12\xae\x56\x05\x5f\x89\x6c\xc4\xec\xc3\x67\x6a\x23\x57\x6b\xe0\x0e\xcc\x8a\x2d\x81\xdd\xf0\x8a\x02\x65\xa6\x95\x25\x54\x41\xbb\x49\x35\x53\xf4\x4e\x6a\xe5\x9b\x47\xcc\xd7\x5f\xee\xdd\xeb\x10\x94\x0e\x1b\x22\x41\x03\x35\x53\x38\xb9\x48\x50\x6c\xc3\x2e\xe0\x2f\xf3\xbc\xba\x74\x39\x08\x5e\xa1\xe8\x9f\xb1\xe9\x2b\x08\x00\xcd\x94\x2b\x53\x41\x50\x1e\xbd\x43\x40\x7c\x8b\x5d\xda\x6f\x4f\xec\x64\xd8\x3d\x41\x7d\x6b\x5e\xf5\x47\x9f\x01\x66\xc3\xcd\x07\xa8\x97\xd5\xcd\x58\xcf\xab\x09\x0f\x0c\x47\x5b\xed\x22\xd4\x26\x35\xf7\xc6\xbe\x17\x7e\xa6\x35\xa5\xae\x8b\x45\x32\xa0\x4b\xf8\xf9\xce\x4e\xa1\x49\xee\xee\x54\x8f\x98\xeb\x5d\x65\x6b\x99\x65\xda\xf5\xd8\x85\xd6\x2d\xf3\x72\xc2\xe8\x65\xa9\x53\xf4\x85\x7d\x83\x51\x44\xf9\x21\xeb\xa5\x47\x41\x41\x75\x88\xac\xf5\xe9\xea\x50\x22\xb3\x83\xba\xe3\xfd\xa7\xde\x3d\x72\x1e\x02\x1d\x76\x83\x2c\x2c\x9d\x73\x25\x03\xdb\x62\x26\x29\x78\x65\x65\xc0\x24\x9a\x17\xb3\x79\x50\xa3\xcb\xac\xff\x91\x5b\x44\x23\x3f\x73\x23\xe8\x64\x54\xa4\x99\x31\x97\x64\xef\xc8\x6a\xeb\x94\xf1\x99\xb2\x7c\xb2\xd6\x1c\x4f\x2c\x28\x20\x75\x3f\xc5\x22\x8d\x2d\xf2\x31\x82\xc7\x9a\x33\xad\x84\xb5\x86\x33\x65\xb5\xe3\x46\x8c\x2f\x32\x2b\xc9\xc6\xd5\xce\xe9\xa4\x49\x27\x82\xc1\x15\x03\xb4\xc5\x7e\x9b\x57\x71\x03\x4a\xe7\xfc\xef\xcc\x7f\xff\xf8\xdd\xff\x0d\x00\x00\xff\xff\x24\xee\xa6\x9d\x9a\x77\x04\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 299600, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 292762, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go index b8f2ed0c07e..b992897ee86 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.pb.go @@ -8,7 +8,6 @@ import ( fmt "fmt" admin "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin" proto "github.com/golang/protobuf/proto" - _ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/options" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -30,41 +29,27 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/signal.proto", fileDescriptor_ca211d25a1023377) } var fileDescriptor_ca211d25a1023377 = []byte{ - // 534 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0xc1, 0x6a, 0xd4, 0x50, - 0x14, 0x65, 0x2a, 0x0a, 0x46, 0x44, 0x8d, 0xe2, 0x22, 0x2a, 0xdc, 0xce, 0x4a, 0xa4, 0x4d, 0xaa, - 0x16, 0x65, 0x74, 0xd5, 0x0a, 0x16, 0x8b, 0x20, 0x74, 0x76, 0x22, 0x96, 0x3b, 0x79, 0x37, 0x2f, - 0xd7, 0x26, 0xef, 0xc5, 0xf7, 0x6e, 0xa6, 0x1d, 0xa4, 0x1b, 0x3f, 0x40, 0xa4, 0x7e, 0x89, 0x5f, - 0xa0, 0xff, 0xe0, 0xde, 0x95, 0xe0, 0x6f, 0x48, 0x92, 0xce, 0xe0, 0xd4, 0x19, 0x37, 0x79, 0x90, - 0x73, 0xee, 0x39, 0x37, 0xe7, 0xe4, 0x05, 0x77, 0xb2, 0x62, 0x22, 0xc4, 0xaa, 0x48, 0x3c, 0xb9, - 0x31, 0xa7, 0x94, 0x78, 0xd6, 0x06, 0x8b, 0xb8, 0x72, 0x56, 0x6c, 0x78, 0x75, 0x0a, 0xc7, 0xa7, - 0x70, 0x74, 0x5b, 0x5b, 0xab, 0x0b, 0x4a, 0xb0, 0xe2, 0x04, 0x8d, 0xb1, 0x82, 0xc2, 0xd6, 0xf8, - 0x8e, 0x1f, 0xdd, 0x9a, 0xc9, 0xa1, 0x2a, 0xd9, 0xcc, 0x89, 0x45, 0x6b, 0xed, 0x91, 0xae, 0x6b, - 0x32, 0xeb, 0xfe, 0x10, 0xb5, 0x26, 0x97, 0xd8, 0xaa, 0x1d, 0xff, 0x57, 0xea, 0xc1, 0xef, 0xf3, - 0xc1, 0xe5, 0x61, 0x3b, 0x3e, 0xec, 0xac, 0xc3, 0xcf, 0xbd, 0xe0, 0xda, 0x0e, 0xc9, 0x2b, 0xf7, - 0xcc, 0x11, 0x0a, 0x75, 0x60, 0x78, 0x37, 0x9e, 0xed, 0xd8, 0x7a, 0xc6, 0xdd, 0xfb, 0xbf, 0x88, - 0x7b, 0xf4, 0xbe, 0x26, 0x2f, 0xd1, 0xcd, 0xc5, 0xcc, 0xfe, 0xe0, 0x64, 0xeb, 0x51, 0xb4, 0xb9, - 0x47, 0xe2, 0x98, 0xc6, 0x04, 0x08, 0xdd, 0xd6, 0x6b, 0x90, 0x36, 0xe3, 0x6c, 0x34, 0xb0, 0x00, - 0x67, 0xcd, 0x53, 0x59, 0xf2, 0x60, 0xac, 0x00, 0x1d, 0xb1, 0x97, 0x38, 0xfc, 0xb4, 0x12, 0x5c, - 0x7a, 0xc9, 0x5e, 0x3a, 0x25, 0x1f, 0xae, 0x2e, 0xb6, 0x68, 0x28, 0xd3, 0x2d, 0xa2, 0xe5, 0x94, - 0xfe, 0xb7, 0xde, 0xc9, 0xd6, 0x8b, 0x68, 0xe7, 0x39, 0x49, 0x9a, 0x77, 0x16, 0x8d, 0x7b, 0xb7, - 0x0e, 0x28, 0xca, 0xd8, 0x70, 0x1b, 0x11, 0x94, 0x28, 0x69, 0xde, 0x60, 0x92, 0x13, 0xb0, 0xa9, - 0x6a, 0x99, 0xb2, 0x58, 0x41, 0xc6, 0x85, 0x90, 0xf3, 0xf1, 0xc7, 0x1f, 0xbf, 0xbe, 0xac, 0x94, - 0xe1, 0x41, 0xdb, 0xd5, 0xf8, 0xfe, 0x69, 0x19, 0x3e, 0xf9, 0x70, 0x68, 0xdd, 0x41, 0x56, 0xd8, - 0xc3, 0x7d, 0x3a, 0xa2, 0xb4, 0x6e, 0x14, 0xf7, 0x59, 0x35, 0xb1, 0xbf, 0xa3, 0x54, 0x8e, 0x97, - 0xe1, 0xca, 0x96, 0xc8, 0x66, 0x29, 0x6c, 0xb0, 0xa4, 0xe3, 0xf0, 0xeb, 0x4a, 0x70, 0x71, 0x48, - 0xa7, 0x79, 0x84, 0xb0, 0xf8, 0x5b, 0x87, 0x34, 0x4b, 0x63, 0xf5, 0x3f, 0x0c, 0x5f, 0x59, 0xe3, - 0xa9, 0xff, 0xb3, 0x77, 0xb2, 0xf5, 0xbd, 0x17, 0x5d, 0x1f, 0x92, 0xcc, 0xba, 0x81, 0x31, 0x16, - 0x35, 0xc5, 0xbb, 0xdb, 0xc1, 0xb9, 0xcd, 0x8d, 0x8d, 0xf0, 0x69, 0x30, 0xd8, 0x23, 0xa9, 0x9d, - 0x21, 0x05, 0x99, 0x75, 0x30, 0x42, 0x05, 0xae, 0x73, 0x00, 0xc9, 0x51, 0xa0, 0xc4, 0x09, 0xe4, - 0x38, 0x26, 0xc8, 0x90, 0x0b, 0x52, 0xcd, 0x38, 0xab, 0xf6, 0x77, 0x8b, 0x77, 0xa9, 0xd1, 0x18, - 0x84, 0x6f, 0x83, 0x37, 0x73, 0x1a, 0x38, 0xaf, 0xe0, 0x28, 0x23, 0x47, 0x26, 0x25, 0x0f, 0x68, - 0x80, 0x15, 0x19, 0xe1, 0x14, 0x0b, 0x68, 0x4e, 0x99, 0x74, 0x9c, 0x1c, 0x3d, 0x60, 0xe1, 0x08, - 0xd5, 0x04, 0x46, 0x44, 0x06, 0x1c, 0x69, 0xf6, 0x42, 0x8e, 0x54, 0x57, 0xc6, 0x8d, 0xfe, 0x95, - 0x33, 0x65, 0x3c, 0xe9, 0xdd, 0xdb, 0x1e, 0xbc, 0x7e, 0xac, 0x59, 0xf2, 0x7a, 0x14, 0xa7, 0xb6, - 0x4c, 0xda, 0x3c, 0xac, 0xd3, 0xc9, 0xec, 0x2a, 0x69, 0x32, 0x49, 0x35, 0x5a, 0xd7, 0x36, 0x39, - 0x7b, 0x59, 0x47, 0x17, 0xda, 0xbb, 0xf2, 0xf0, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa7, 0xc1, - 0xaa, 0x6b, 0xc7, 0x03, 0x00, 0x00, + // 314 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x4a, 0xec, 0x30, + 0x14, 0x86, 0xef, 0x5c, 0x41, 0xb0, 0x22, 0x6a, 0x10, 0x17, 0x55, 0xc1, 0xe9, 0x4a, 0x04, 0x1b, + 0xd4, 0x85, 0xe8, 0x52, 0x17, 0x6e, 0x04, 0xc1, 0x2e, 0x04, 0x37, 0x43, 0xda, 0x9e, 0x89, 0x71, + 0xd2, 0x9c, 0x9a, 0xa4, 0x33, 0x8a, 0xcc, 0xc6, 0x57, 0x70, 0xe7, 0xdb, 0xf8, 0x0c, 0xbe, 0x82, + 0x0f, 0x22, 0x4d, 0x3b, 0x45, 0x87, 0xd6, 0xed, 0xf9, 0x3f, 0xfe, 0x9e, 0xaf, 0x27, 0xde, 0xce, + 0x50, 0x3e, 0x5b, 0x10, 0xa9, 0xa4, 0x06, 0xf4, 0x58, 0x24, 0x40, 0x8d, 0xe0, 0x8a, 0xc9, 0x30, + 0xd7, 0x68, 0x91, 0xac, 0xcd, 0xe2, 0xb0, 0x8e, 0xfd, 0x6d, 0x8e, 0xc8, 0x25, 0x50, 0x96, 0x0b, + 0xca, 0x94, 0x42, 0xcb, 0xac, 0x40, 0x65, 0x2a, 0xde, 0xdf, 0x6a, 0xea, 0x58, 0x9a, 0x09, 0xf5, + 0xab, 0xec, 0xe8, 0x7d, 0xc1, 0x5b, 0x89, 0xdc, 0x20, 0xaa, 0xca, 0xc8, 0xad, 0xb7, 0x7e, 0x09, + 0xf6, 0x5a, 0x5f, 0x68, 0x60, 0x16, 0xaa, 0x8c, 0xec, 0x85, 0xcd, 0x47, 0x5d, 0x49, 0x58, 0xcd, + 0x7f, 0x80, 0x37, 0xf0, 0x58, 0x80, 0xb1, 0xfe, 0x66, 0x3b, 0x19, 0xfc, 0x23, 0x1f, 0x3d, 0x6f, + 0xf9, 0x4a, 0x18, 0x5b, 0x0d, 0x0c, 0xe9, 0xb7, 0x93, 0x25, 0x32, 0x2b, 0xf3, 0xbb, 0x91, 0xc0, + 0xbc, 0x7e, 0x7e, 0xbd, 0xfd, 0xcf, 0xc8, 0xc8, 0x69, 0x8f, 0x0f, 0x6b, 0x2f, 0x43, 0x5f, 0x26, + 0xa8, 0x47, 0x43, 0x89, 0x93, 0x01, 0x3c, 0x41, 0x52, 0x94, 0xbf, 0x62, 0x20, 0xd2, 0xd2, 0xf7, + 0x01, 0x12, 0x3b, 0xed, 0xca, 0x53, 0xcc, 0x98, 0x50, 0x9d, 0xb1, 0x62, 0x19, 0x4c, 0x89, 0xf4, + 0x96, 0x22, 0xa8, 0x0d, 0xc8, 0x6e, 0xfb, 0x76, 0x11, 0x34, 0xfb, 0xf7, 0xff, 0x20, 0x4c, 0x8e, + 0xca, 0x40, 0xe0, 0x3b, 0x8d, 0x8d, 0x60, 0x75, 0x4e, 0xe3, 0xac, 0xb7, 0x7f, 0x7e, 0x7a, 0x77, + 0xc2, 0x85, 0xbd, 0x2f, 0xe2, 0x30, 0xc1, 0x8c, 0xba, 0x2a, 0xd4, 0x9c, 0x36, 0xf7, 0xe4, 0xa0, + 0x68, 0x1e, 0x1f, 0x70, 0xa4, 0xf3, 0x2f, 0x26, 0x5e, 0x74, 0xe7, 0x3d, 0xfe, 0x0e, 0x00, 0x00, + 0xff, 0xff, 0x99, 0xac, 0x92, 0x50, 0x4c, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json index 96242c17bac..3c130cef0af 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/signal.swagger.json @@ -18,7 +18,6 @@ "/api/v1/signals": { "post": { "summary": "Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition", - "description": "Set a signal value.", "operationId": "SetSignal", "responses": { "200": { @@ -26,14 +25,6 @@ "schema": { "$ref": "#/definitions/adminSignalSetResponse" } - }, - "400": { - "description": "Returned for bad request that may have failed validation.", - "schema": {} - }, - "409": { - "description": "Returned for a request that references an identical entity that has already been registered.", - "schema": {} } }, "parameters": [ @@ -54,7 +45,6 @@ "/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { "get": { "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions.", - "description": "Fetch existing signal definitions matching the input signal id filters.", "operationId": "ListSignals", "responses": { "200": { @@ -467,7 +457,7 @@ "$ref": "#/definitions/coreBinary" }, "schema": { - "$ref": "#/definitions/flyteidlcoreSchema" + "$ref": "#/definitions/coreSchema" }, "none_type": { "$ref": "#/definitions/coreVoid" @@ -486,6 +476,18 @@ } } }, + "coreSchema": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/coreSchemaType" + } + }, + "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." + }, "coreSchemaType": { "type": "object", "properties": { @@ -643,18 +645,6 @@ }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" }, - "flyteidlcoreSchema": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/coreSchemaType" - } - }, - "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." - }, "protobufListValue": { "type": "object", "properties": { diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index f3948da0c67..29c343de422 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,378 +38,254 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto\032\036flyteidl/core/identifier.proto\032," + - "protoc-gen-swagger/options/annotations.p" + - "roto2\342r\n\014AdminService\022\305\002\n\nCreateTask\022!.f" + - "lyteidl.admin.TaskCreateRequest\032\".flytei" + - "dl.admin.TaskCreateResponse\"\357\001\202\323\344\223\002\022\"\r/a" + - "pi/v1/tasks:\001*\222A\323\001\032&Create and register " + - "a task definition.JB\n\003400\022;\n9Returned fo" + - "r bad request that may have failed valid" + - "ation.Je\n\003409\022^\n\\Returned for a request " + - "that references an identical entity that" + - " has already been registered.\022\262\001\n\007GetTas" + - "k\022 .flyteidl.admin.ObjectGetRequest\032\024.fl" + - "yteidl.admin.Task\"o\202\323\344\223\002?\022=/api/v1/tasks" + - "/{id.project}/{id.domain}/{id.name}/{id." + - "version}\222A\'\032%Retrieve an existing task d" + - "efinition.\022\336\001\n\013ListTaskIds\0220.flyteidl.ad" + - "min.NamedEntityIdentifierListRequest\032).f" + - "lyteidl.admin.NamedEntityIdentifierList\"" + - "r\202\323\344\223\002%\022#/api/v1/task_ids/{project}/{dom" + - "ain}\222AD\032BFetch existing task definition " + - "identifiers matching input filters.\022\353\001\n\t" + - "ListTasks\022#.flyteidl.admin.ResourceListR" + - "equest\032\030.flyteidl.admin.TaskList\"\236\001\202\323\344\223\002" + - "\\\0220/api/v1/tasks/{id.project}/{id.domain" + - "}/{id.name}Z(\022&/api/v1/tasks/{id.project" + - "}/{id.domain}\222A9\0327Fetch existing task de" + - "finitions matching input filters.\022\331\002\n\016Cr" + - "eateWorkflow\022%.flyteidl.admin.WorkflowCr" + - "eateRequest\032&.flyteidl.admin.WorkflowCre" + - "ateResponse\"\367\001\202\323\344\223\002\026\"\021/api/v1/workflows:" + - "\001*\222A\327\001\032*Create and register a workflow d" + - "efinition.JB\n\003400\022;\n9Returned for bad re" + - "quest that may have failed validation.Je" + - "\n\003409\022^\n\\Returned for a request that ref" + - "erences an identical entity that has alr" + - "eady been registered.\022\302\001\n\013GetWorkflow\022 ." + - "flyteidl.admin.ObjectGetRequest\032\030.flytei" + - "dl.admin.Workflow\"w\202\323\344\223\002C\022A/api/v1/workf" + - "lows/{id.project}/{id.domain}/{id.name}/" + - "{id.version}\222A+\032)Retrieve an existing wo" + - "rkflow definition.\022\355\001\n\017ListWorkflowIds\0220" + - ".flyteidl.admin.NamedEntityIdentifierLis" + - "tRequest\032).flyteidl.admin.NamedEntityIde" + - "ntifierList\"}\202\323\344\223\002)\022\'/api/v1/workflow_id" + - "s/{project}/{domain}\222AK\032IFetch an existi" + - "ng workflow definition identifiers match" + - "ing input filters.\022\377\001\n\rListWorkflows\022#.f" + - "lyteidl.admin.ResourceListRequest\032\034.flyt" + - "eidl.admin.WorkflowList\"\252\001\202\323\344\223\002d\0224/api/v" + - "1/workflows/{id.project}/{id.domain}/{id" + - ".name}Z,\022*/api/v1/workflows/{id.project}" + - "/{id.domain}\222A=\032;Fetch existing workflow" + - " definitions matching input filters.\022\345\002\n" + - "\020CreateLaunchPlan\022\'.flyteidl.admin.Launc" + - "hPlanCreateRequest\032(.flyteidl.admin.Laun" + - "chPlanCreateResponse\"\375\001\202\323\344\223\002\031\"\024/api/v1/l" + - "aunch_plans:\001*\222A\332\001\032-Create and register " + - "a launch plan definition.JB\n\003400\022;\n9Retu" + - "rned for bad request that may have faile" + - "d validation.Je\n\003409\022^\n\\Returned for a r" + - "equest that references an identical enti" + - "ty that has already been registered.\022\314\001\n" + - "\rGetLaunchPlan\022 .flyteidl.admin.ObjectGe" + - "tRequest\032\032.flyteidl.admin.LaunchPlan\"}\202\323" + - "\344\223\002F\022D/api/v1/launch_plans/{id.project}/" + - "{id.domain}/{id.name}/{id.version}\222A.\032,R" + - "etrieve an existing launch plan definiti" + - "on.\022\363\001\n\023GetActiveLaunchPlan\022\'.flyteidl.a" + - "dmin.ActiveLaunchPlanRequest\032\032.flyteidl." + - "admin.LaunchPlan\"\226\001\202\323\344\223\002@\022>/api/v1/activ" + + ".proto\032\036flyteidl/core/identifier.proto2\274" + + "L\n\014AdminService\022m\n\nCreateTask\022!.flyteidl" + + ".admin.TaskCreateRequest\032\".flyteidl.admi" + + "n.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/api/v1/ta" + + "sks:\001*\022\210\001\n\007GetTask\022 .flyteidl.admin.Obje" + + "ctGetRequest\032\024.flyteidl.admin.Task\"E\202\323\344\223" + + "\002?\022=/api/v1/tasks/{id.project}/{id.domai" + + "n}/{id.name}/{id.version}\022\227\001\n\013ListTaskId" + + "s\0220.flyteidl.admin.NamedEntityIdentifier" + + "ListRequest\032).flyteidl.admin.NamedEntity" + + "IdentifierList\"+\202\323\344\223\002%\022#/api/v1/task_ids" + + "/{project}/{domain}\022\256\001\n\tListTasks\022#.flyt" + + "eidl.admin.ResourceListRequest\032\030.flyteid" + + "l.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v1/tasks/" + + "{id.project}/{id.domain}/{id.name}Z(\022&/a" + + "pi/v1/tasks/{id.project}/{id.domain}\022}\n\016" + + "CreateWorkflow\022%.flyteidl.admin.Workflow" + + "CreateRequest\032&.flyteidl.admin.WorkflowC" + + "reateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/workflows" + + ":\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.admin.Obj" + + "ectGetRequest\032\030.flyteidl.admin.Workflow\"" + + "I\202\323\344\223\002C\022A/api/v1/workflows/{id.project}/" + + "{id.domain}/{id.name}/{id.version}\022\237\001\n\017L" + + "istWorkflowIds\0220.flyteidl.admin.NamedEnt" + + "ityIdentifierListRequest\032).flyteidl.admi" + + "n.NamedEntityIdentifierList\"/\202\323\344\223\002)\022\'/ap" + + "i/v1/workflow_ids/{project}/{domain}\022\276\001\n" + + "\rListWorkflows\022#.flyteidl.admin.Resource" + + "ListRequest\032\034.flyteidl.admin.WorkflowLis" + + "t\"j\202\323\344\223\002d\0224/api/v1/workflows/{id.project" + + "}/{id.domain}/{id.name}Z,\022*/api/v1/workf" + + "lows/{id.project}/{id.domain}\022\206\001\n\020Create" + + "LaunchPlan\022\'.flyteidl.admin.LaunchPlanCr" + + "eateRequest\032(.flyteidl.admin.LaunchPlanC" + + "reateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/launch_pl" + + "ans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyteidl.admi" + + "n.ObjectGetRequest\032\032.flyteidl.admin.Laun" + + "chPlan\"L\202\323\344\223\002F\022D/api/v1/launch_plans/{id" + + ".project}/{id.domain}/{id.name}/{id.vers" + + "ion}\022\242\001\n\023GetActiveLaunchPlan\022\'.flyteidl." + + "admin.ActiveLaunchPlanRequest\032\032.flyteidl" + + ".admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/v1/activ" + "e_launch_plans/{id.project}/{id.domain}/" + - "{id.name}\222AM\032KRetrieve the active launch" + - " plan version specified by input request" + - " filters.\022\353\001\n\025ListActiveLaunchPlans\022+.fl" + + "{id.name}\022\234\001\n\025ListActiveLaunchPlans\022+.fl" + "yteidl.admin.ActiveLaunchPlanListRequest" + - "\032\036.flyteidl.admin.LaunchPlanList\"\204\001\202\323\344\223\002" + - "0\022./api/v1/active_launch_plans/{project}" + - "/{domain}\222AK\032IFetch the active launch pl" + - "an versions specified by input request f" + - "ilters.\022\363\001\n\021ListLaunchPlanIds\0220.flyteidl" + - ".admin.NamedEntityIdentifierListRequest\032" + - ").flyteidl.admin.NamedEntityIdentifierLi" + - "st\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_ids/{pr" + - "oject}/{domain}\222AK\032IFetch existing launc" + - "h plan definition identifiers matching i" + - "nput filters.\022\214\002\n\017ListLaunchPlans\022#.flyt" + - "eidl.admin.ResourceListRequest\032\036.flyteid" + - "l.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227/api/v1" + - "/launch_plans/{id.project}/{id.domain}/{" + - "id.name}Z/\022-/api/v1/launch_plans/{id.pro" + - "ject}/{id.domain}\222A@\032>Fetch existing lau" + - "nch plan definitions matching input filt" + - "ers.\022\300\006\n\020UpdateLaunchPlan\022\'.flyteidl.adm" + - "in.LaunchPlanUpdateRequest\032(.flyteidl.ad" + - "min.LaunchPlanUpdateResponse\"\330\005\202\323\344\223\002I\032D/" + - "api/v1/launch_plans/{id.project}/{id.dom" + - "ain}/{id.name}/{id.version}:\001*\222A\205\005\032\202\005Upd" + - "ate the status of an existing launch pla" + - "n definition. At most one launch plan ve" + - "rsion for a given {project, domain, name" + - "} can be active at a time. If this call " + - "sets a launch plan to active and existin" + - "g version is already active, the result " + - "of this call will be that the formerly a" + - "ctive launch plan will be made inactive " + - "and specified launch plan in this reques" + - "t will be made active. In the event that" + - " the formerly active launch plan had a s" + - "chedule associated it with it, this sche" + - "dule will be disabled. If the reference " + - "launch plan in this request is being set" + - " to active and has a schedule associated" + - " with it, the schedule will be enabled.\022" + - "\242\001\n\017CreateExecution\022&.flyteidl.admin.Exe" + - "cutionCreateRequest\032\'.flyteidl.admin.Exe" + - "cutionCreateResponse\">\202\323\344\223\002\027\"\022/api/v1/ex" + - "ecutions:\001*\222A\036\032\034Create a workflow execut" + - "ion.\022\261\001\n\021RelaunchExecution\022(.flyteidl.ad" + - "min.ExecutionRelaunchRequest\032\'.flyteidl." + - "admin.ExecutionCreateResponse\"I\202\323\344\223\002 \"\033/" + - "api/v1/executions/relaunch:\001*\222A \032\036Relaun" + - "ch a workflow execution.\022\235\005\n\020RecoverExec" + - "ution\022\'.flyteidl.admin.ExecutionRecoverR" + - "equest\032\'.flyteidl.admin.ExecutionCreateR" + - "esponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executions/rec" + - "over:\001*\222A\215\004\032\212\004Recreates a previously-run" + - " workflow execution that will only start" + - " executing from the last known failure p" + - "oint. In Recover mode, users cannot chan" + - "ge any input parameters or update the ve" + - "rsion of the execution. This is extremel" + - "y useful to recover from system errors a" + - "nd byzantine faults like - Loss of K8s c" + - "luster, bugs in platform or instability," + - " machine failures, downstream system fai" + - "lures (downstream services), or simply t" + - "o recover executions that failed because" + - " of retry exhaustion and should complete" + - " if tried again.\022\302\001\n\014GetExecution\022+.flyt" + - "eidl.admin.WorkflowExecutionGetRequest\032\031" + - ".flyteidl.admin.Execution\"j\202\323\344\223\0027\0225/api/" + - "v1/executions/{id.project}/{id.domain}/{" + - "id.name}\222A*\032(Retrieve an existing workfl" + - "ow execution.\022\326\001\n\017UpdateExecution\022&.flyt" + - "eidl.admin.ExecutionUpdateRequest\032\'.flyt" + - "eidl.admin.ExecutionUpdateResponse\"r\202\323\344\223" + - "\002:\0325/api/v1/executions/{id.project}/{id." + - "domain}/{id.name}:\001*\222A/\032-Update executio" + - "n belonging to project domain.\022\202\002\n\020GetEx" + - "ecutionData\022/.flyteidl.admin.WorkflowExe" + - "cutionGetDataRequest\0320.flyteidl.admin.Wo" + - "rkflowExecutionGetDataResponse\"\212\001\202\323\344\223\002<\022" + - ":/api/v1/data/executions/{id.project}/{i" + - "d.domain}/{id.name}\222AE\032CRetrieve input a" + - "nd output data from an existing workflow" + - " execution.\022\310\001\n\016ListExecutions\022#.flyteid" + - "l.admin.ResourceListRequest\032\035.flyteidl.a" + - "dmin.ExecutionList\"r\202\323\344\223\002-\022+/api/v1/exec" + - "utions/{id.project}/{id.domain}\222A<\032:Fetc" + - "h existing workflow executions matching " + - "input filters.\022\364\001\n\022TerminateExecution\022)." + - "flyteidl.admin.ExecutionTerminateRequest" + - "\032*.flyteidl.admin.ExecutionTerminateResp" + - "onse\"\206\001\202\323\344\223\002:*5/api/v1/executions/{id.pr" + - "oject}/{id.domain}/{id.name}:\001*\222AC\032ATerm" + - "inate the active workflow execution spec" + - "ified in the request.\022\374\001\n\020GetNodeExecuti" + - "on\022\'.flyteidl.admin.NodeExecutionGetRequ" + - "est\032\035.flyteidl.admin.NodeExecution\"\237\001\202\323\344" + - "\223\002p\022n/api/v1/node_executions/{id.executi" + - "on_id.project}/{id.execution_id.domain}/" + - "{id.execution_id.name}/{id.node_id}\222A&\032$" + - "Retrieve an existing node execution.\022\232\002\n" + - "\022ListNodeExecutions\022(.flyteidl.admin.Nod" + - "eExecutionListRequest\032!.flyteidl.admin.N" + - "odeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v1/node_" + - "executions/{workflow_execution_id.projec" + - "t}/{workflow_execution_id.domain}/{workf" + - "low_execution_id.name}\222A8\0326Fetch existin" + - "g node executions matching input filters" + - ".\022\357\004\n\031ListNodeExecutionsForTask\022/.flytei" + - "dl.admin.NodeExecutionForTaskListRequest" + - "\032!.flyteidl.admin.NodeExecutionList\"\375\003\202\323" + - "\344\223\002\254\003\022\251\003/api/v1/children/task_executions" + - "/{task_execution_id.node_execution_id.ex" + - "ecution_id.project}/{task_execution_id.n" + - "ode_execution_id.execution_id.domain}/{t" + - "ask_execution_id.node_execution_id.execu" + - "tion_id.name}/{task_execution_id.node_ex" + - "ecution_id.node_id}/{task_execution_id.t" + - "ask_id.project}/{task_execution_id.task_" + - "id.domain}/{task_execution_id.task_id.na" + - "me}/{task_execution_id.task_id.version}/" + - "{task_execution_id.retry_attempt}\222AG\032EFe" + - "tch child node executions launched by th" + - "e specified task execution.\022\263\002\n\024GetNodeE" + - "xecutionData\022+.flyteidl.admin.NodeExecut" + - "ionGetDataRequest\032,.flyteidl.admin.NodeE" + - "xecutionGetDataResponse\"\277\001\202\323\344\223\002u\022s/api/v" + - "1/data/node_executions/{id.execution_id." + - "project}/{id.execution_id.domain}/{id.ex" + - "ecution_id.name}/{id.node_id}\222AA\032?Retrie" + - "ve input and output data from an existin" + - "g node execution.\022\227\001\n\017RegisterProject\022&." + - "flyteidl.admin.ProjectRegisterRequest\032\'." + - "flyteidl.admin.ProjectRegisterResponse\"3" + - "\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023Register" + - " a project.\022\207\001\n\rUpdateProject\022\027.flyteidl" + - ".admin.Project\032%.flyteidl.admin.ProjectU" + - "pdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/projects/" + - "{id}:\001*\222A\023\032\021Update a project.\022\205\001\n\014ListPr" + - "ojects\022\".flyteidl.admin.ProjectListReque" + - "st\032\030.flyteidl.admin.Projects\"7\202\323\344\223\002\022\022\020/a" + - "pi/v1/projects\222A\034\032\032Fetch registered proj" + - "ects.\022\335\001\n\023CreateWorkflowEvent\022-.flyteidl" + - ".admin.WorkflowExecutionEventRequest\032..f" + - "lyteidl.admin.WorkflowExecutionEventResp" + - "onse\"g\202\323\344\223\002\035\"\030/api/v1/events/workflows:\001" + - "*\222AA\032?Create a workflow execution event " + - "recording a phase transition.\022\311\001\n\017Create" + - "NodeEvent\022).flyteidl.admin.NodeExecution" + - "EventRequest\032*.flyteidl.admin.NodeExecut" + - "ionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/events" + - "/nodes:\001*\222A=\032;Create a node execution ev" + - "ent recording a phase transition.\022\311\001\n\017Cr" + - "eateTaskEvent\022).flyteidl.admin.TaskExecu" + - "tionEventRequest\032*.flyteidl.admin.TaskEx" + - "ecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/ev" + - "ents/tasks:\001*\222A=\032;Create a task executio" + - "n event recording a phase transition.\022\251\003" + - "\n\020GetTaskExecution\022\'.flyteidl.admin.Task" + - "ExecutionGetRequest\032\035.flyteidl.admin.Tas" + - "kExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_exec" + - "utions/{id.node_execution_id.execution_i" + - "d.project}/{id.node_execution_id.executi" + - "on_id.domain}/{id.node_execution_id.exec" + - "ution_id.name}/{id.node_execution_id.nod" + - "e_id}/{id.task_id.project}/{id.task_id.d" + - "omain}/{id.task_id.name}/{id.task_id.ver" + - "sion}/{id.retry_attempt}\222A&\032$Retrieve an" + - " existing task execution.\022\323\002\n\022ListTaskEx" + - "ecutions\022(.flyteidl.admin.TaskExecutionL" + - "istRequest\032!.flyteidl.admin.TaskExecutio" + - "nList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_execution" + - "s/{node_execution_id.execution_id.projec" + - "t}/{node_execution_id.execution_id.domai" + - "n}/{node_execution_id.execution_id.name}" + - "/{node_execution_id.node_id}\222A8\0326Fetch e" + - "xisting task executions matching input f" + - "ilters.\022\340\003\n\024GetTaskExecutionData\022+.flyte" + - "idl.admin.TaskExecutionGetDataRequest\032,." + - "flyteidl.admin.TaskExecutionGetDataRespo" + - "nse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_execut" + - "ions/{id.node_execution_id.execution_id." + - "project}/{id.node_execution_id.execution" + - "_id.domain}/{id.node_execution_id.execut" + - "ion_id.name}/{id.node_execution_id.node_" + - "id}/{id.task_id.project}/{id.task_id.dom" + - "ain}/{id.task_id.name}/{id.task_id.versi" + - "on}/{id.retry_attempt}\222AA\032?Retrieve inpu" + - "t and output data from an existing task " + - "execution.\022\277\002\n\035UpdateProjectDomainAttrib" + - "utes\0224.flyteidl.admin.ProjectDomainAttri" + - "butesUpdateRequest\0325.flyteidl.admin.Proj" + - "ectDomainAttributesUpdateResponse\"\260\001\202\323\344\223" + - "\002O\032J/api/v1/project_domain_attributes/{a" + - "ttributes.project}/{attributes.domain}:\001" + - "*\222AX\032VUpdate the customized resource att" + - "ributes associated with a project-domain" + - " combination\022\237\002\n\032GetProjectDomainAttribu" + - "tes\0221.flyteidl.admin.ProjectDomainAttrib" + - "utesGetRequest\0322.flyteidl.admin.ProjectD" + - "omainAttributesGetResponse\"\231\001\202\323\344\223\0026\0224/ap" + - "i/v1/project_domain_attributes/{project}" + - "/{domain}\222AZ\032XRetrieve the customized re" + - "source attributes associated with a proj" + - "ect-domain combination\022\251\002\n\035DeleteProject" + - "DomainAttributes\0224.flyteidl.admin.Projec" + - "tDomainAttributesDeleteRequest\0325.flyteid" + - "l.admin.ProjectDomainAttributesDeleteRes" + - "ponse\"\232\001\202\323\344\223\0029*4/api/v1/project_domain_a" + - "ttributes/{project}/{domain}:\001*\222AX\032VDele" + - "te the customized resource attributes as" + - "sociated with a project-domain combinati" + - "on\022\377\001\n\027UpdateProjectAttributes\022..flyteid" + - "l.admin.ProjectAttributesUpdateRequest\032/" + - ".flyteidl.admin.ProjectAttributesUpdateR" + - "esponse\"\202\001\202\323\344\223\0024\032//api/v1/project_attrib" + - "utes/{attributes.project}:\001*\222AE\032CUpdate " + - "the customized resource attributes assoc" + - "iated with a project\022\351\001\n\024GetProjectAttri" + - "butes\022+.flyteidl.admin.ProjectAttributes" + - "GetRequest\032,.flyteidl.admin.ProjectAttri" + - "butesGetResponse\"v\202\323\344\223\002&\022$/api/v1/projec" + - "t_attributes/{project}\222AG\032ERetrieve the " + - "customized resource attributes associate" + - "d with a project\022\363\001\n\027DeleteProjectAttrib" + - "utes\022..flyteidl.admin.ProjectAttributesD" + - "eleteRequest\032/.flyteidl.admin.ProjectAtt" + - "ributesDeleteResponse\"w\202\323\344\223\002)*$/api/v1/p" + - "roject_attributes/{project}:\001*\222AE\032CDelet" + - "e the customized resource attributes ass" + - "ociated with a project\022\316\002\n\030UpdateWorkflo" + - "wAttributes\022/.flyteidl.admin.WorkflowAtt" + - "ributesUpdateRequest\0320.flyteidl.admin.Wo" + - "rkflowAttributesUpdateResponse\"\316\001\202\323\344\223\002_\032" + - "Z/api/v1/workflow_attributes/{attributes" + - ".project}/{attributes.domain}/{attribute" + - "s.workflow}:\001*\222Af\032dUpdate the customized" + - " resource attributes associated with a p" + - "roject, domain and workflow combination\022" + - "\243\002\n\025GetWorkflowAttributes\022,.flyteidl.adm" + - "in.WorkflowAttributesGetRequest\032-.flytei" + - "dl.admin.WorkflowAttributesGetResponse\"\254" + - "\001\202\323\344\223\002;\0229/api/v1/workflow_attributes/{pr" + - "oject}/{domain}/{workflow}\222Ah\032fRetrieve " + - "the customized resource attributes assoc" + - "iated with a project, domain and workflo" + - "w combination\022\255\002\n\030DeleteWorkflowAttribut" + - "es\022/.flyteidl.admin.WorkflowAttributesDe" + - "leteRequest\0320.flyteidl.admin.WorkflowAtt" + - "ributesDeleteResponse\"\255\001\202\323\344\223\002>*9/api/v1/" + - "workflow_attributes/{project}/{domain}/{" + - "workflow}:\001*\222Af\032dDelete the customized r" + - "esource attributes associated with a pro" + - "ject, domain and workflow combination\022\341\001" + - "\n\027ListMatchableAttributes\022..flyteidl.adm" + - "in.ListMatchableAttributesRequest\032/.flyt" + - "eidl.admin.ListMatchableAttributesRespon" + - "se\"e\202\323\344\223\002\036\022\034/api/v1/matchable_attributes" + - "\222A>\032*9/api/v1/workflow_attribut" + + "es/{project}/{domain}/{workflow}:\001*\022\240\001\n\027" + + "ListMatchableAttributes\022..flyteidl.admin" + + ".ListMatchableAttributesRequest\032/.flytei" + + "dl.admin.ListMatchableAttributesResponse" + + "\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attributes\022\237" + + "\001\n\021ListNamedEntities\022&.flyteidl.admin.Na" + + "medEntityListRequest\032\037.flyteidl.admin.Na" + + "medEntityList\"A\202\323\344\223\002;\0229/api/v1/named_ent" + + "ities/{resource_type}/{project}/{domain}" + + "\022\247\001\n\016GetNamedEntity\022%.flyteidl.admin.Nam" + + "edEntityGetRequest\032\033.flyteidl.admin.Name" + + "dEntity\"Q\202\323\344\223\002K\022I/api/v1/named_entities/" + + "{resource_type}/{id.project}/{id.domain}" + + "/{id.name}\022\276\001\n\021UpdateNamedEntity\022(.flyte" + + "idl.admin.NamedEntityUpdateRequest\032).fly" + + "teidl.admin.NamedEntityUpdateResponse\"T\202" + "\323\344\223\002N\032I/api/v1/named_entities/{resource_" + "type}/{id.project}/{id.domain}/{id.name}" + - ":\001*\222A1\032/Update the fields associated wit" + - "h a NamedEntity\022\277\001\n\nGetVersion\022!.flyteid" + - "l.admin.GetVersionRequest\032\".flyteidl.adm" + - "in.GetVersionResponse\"j\202\323\344\223\002\021\022\017/api/v1/v" + - "ersion\222AP\032NRetrieve the Version (includi" + - "ng the Build information) for FlyteAdmi" + - "n service\022\376\001\n\024GetDescriptionEntity\022 .fly" + - "teidl.admin.ObjectGetRequest\032!.flyteidl." + - "admin.DescriptionEntity\"\240\001\202\323\344\223\002a\022_/api/v" + - "1/description_entities/{id.resource_type" + - "}/{id.project}/{id.domain}/{id.name}/{id" + - ".version}\222A6\0324Retrieve an existing descr" + - "iption entity description.\022\334\002\n\027ListDescr" + - "iptionEntities\022,.flyteidl.admin.Descript" + - "ionEntityListRequest\032%.flyteidl.admin.De" + - "scriptionEntityList\"\353\001\202\323\344\223\002\232\001\022O/api/v1/d" + - "escription_entities/{resource_type}/{id." + - "project}/{id.domain}/{id.name}ZG\022E/api/v" + - "1/description_entities/{resource_type}/{" + - "id.project}/{id.domain}\222AG\032EFetch existi" + - "ng description entity definitions matchi" + - "ng input filters.B9Z7github.com/flyteorg" + - "/flyteidl/gen/pb-go/flyteidl/serviceb\006pr" + - "oto3" + ":\001*\022l\n\nGetVersion\022!.flyteidl.admin.GetVe" + + "rsionRequest\032\".flyteidl.admin.GetVersion" + + "Response\"\027\202\323\344\223\002\021\022\017/api/v1/version\022\304\001\n\024Ge" + + "tDescriptionEntity\022 .flyteidl.admin.Obje" + + "ctGetRequest\032!.flyteidl.admin.Descriptio" + + "nEntity\"g\202\323\344\223\002a\022_/api/v1/description_ent" + + "ities/{id.resource_type}/{id.project}/{i" + + "d.domain}/{id.name}/{id.version}\022\222\002\n\027Lis" + + "tDescriptionEntities\022,.flyteidl.admin.De" + + "scriptionEntityListRequest\032%.flyteidl.ad" + + "min.DescriptionEntityList\"\241\001\202\323\344\223\002\232\001\022O/ap" + + "i/v1/description_entities/{resource_type" + + "}/{id.project}/{id.domain}/{id.name}ZG\022E" + + "/api/v1/description_entities/{resource_t" + + "ype}/{id.project}/{id.domain}B9Z7github." + + "com/flyteorg/flyteidl/gen/pb-go/flyteidl" + + "/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -439,12 +315,10 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.admin.Common.getDescriptor(), flyteidl.admin.DescriptionEntityOuterClass.getDescriptor(), flyteidl.core.IdentifierOuterClass.getDescriptor(), - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(), }, assigner); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); - registry.add(grpc.gateway.protoc_gen_swagger.options.Annotations.openapiv2Operation); com.google.protobuf.Descriptors.FileDescriptor .internalUpdateFileDescriptor(descriptor, registry); com.google.api.AnnotationsProto.getDescriptor(); @@ -464,7 +338,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.admin.Common.getDescriptor(); flyteidl.admin.DescriptionEntityOuterClass.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-java/flyteidl/service/Auth.java b/flyteidl/gen/pb-java/flyteidl/service/Auth.java index be6d04051cd..c56a695e7b0 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Auth.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Auth.java @@ -5061,37 +5061,32 @@ public flyteidl.service.Auth.PublicClientAuthConfigResponse getDefaultInstanceFo static { java.lang.String[] descriptorData = { "\n\033flyteidl/service/auth.proto\022\020flyteidl." + - "service\032\034google/api/annotations.proto\032,p" + - "rotoc-gen-swagger/options/annotations.pr" + - "oto\"\027\n\025OAuth2MetadataRequest\"\315\002\n\026OAuth2M" + - "etadataResponse\022\016\n\006issuer\030\001 \001(\t\022\036\n\026autho" + - "rization_endpoint\030\002 \001(\t\022\026\n\016token_endpoin" + - "t\030\003 \001(\t\022 \n\030response_types_supported\030\004 \003(" + - "\t\022\030\n\020scopes_supported\030\005 \003(\t\022-\n%token_end" + - "point_auth_methods_supported\030\006 \003(\t\022\020\n\010jw" + - "ks_uri\030\007 \001(\t\022(\n code_challenge_methods_s" + - "upported\030\010 \003(\t\022\035\n\025grant_types_supported\030" + - "\t \003(\t\022%\n\035device_authorization_endpoint\030\n" + - " \001(\t\"\037\n\035PublicClientAuthConfigRequest\"\256\001" + - "\n\036PublicClientAuthConfigResponse\022\021\n\tclie" + - "nt_id\030\001 \001(\t\022\024\n\014redirect_uri\030\002 \001(\t\022\016\n\006sco" + - "pes\030\003 \003(\t\022\"\n\032authorization_metadata_key\030" + - "\004 \001(\t\022\035\n\025service_http_endpoint\030\005 \001(\t\022\020\n\010" + - "audience\030\006 \001(\t2\374\003\n\023AuthMetadataService\022\365" + - "\001\n\021GetOAuth2Metadata\022\'.flyteidl.service." + - "OAuth2MetadataRequest\032(.flyteidl.service" + - ".OAuth2MetadataResponse\"\214\001\202\323\344\223\002)\022\'/.well" + - "-known/oauth-authorization-server\222AZ\032XRe" + - "trieves OAuth2 authorization server meta" + - "data. This endpoint is anonymously acces" + - "sible.\022\354\001\n\025GetPublicClientConfig\022/.flyte" + - "idl.service.PublicClientAuthConfigReques" + - "t\0320.flyteidl.service.PublicClientAuthCon" + - "figResponse\"p\202\323\344\223\002\031\022\027/config/v1/flyte_cl" + - "ient\222AN\032LRetrieves public flyte client i" + - "nfo. This endpoint is anonymously access" + - "ible.B9Z7github.com/flyteorg/flyteidl/ge" + - "n/pb-go/flyteidl/serviceb\006proto3" + "service\032\034google/api/annotations.proto\"\027\n" + + "\025OAuth2MetadataRequest\"\315\002\n\026OAuth2Metadat" + + "aResponse\022\016\n\006issuer\030\001 \001(\t\022\036\n\026authorizati" + + "on_endpoint\030\002 \001(\t\022\026\n\016token_endpoint\030\003 \001(" + + "\t\022 \n\030response_types_supported\030\004 \003(\t\022\030\n\020s" + + "copes_supported\030\005 \003(\t\022-\n%token_endpoint_" + + "auth_methods_supported\030\006 \003(\t\022\020\n\010jwks_uri" + + "\030\007 \001(\t\022(\n code_challenge_methods_support" + + "ed\030\010 \003(\t\022\035\n\025grant_types_supported\030\t \003(\t\022" + + "%\n\035device_authorization_endpoint\030\n \001(\t\"\037" + + "\n\035PublicClientAuthConfigRequest\"\256\001\n\036Publ" + + "icClientAuthConfigResponse\022\021\n\tclient_id\030" + + "\001 \001(\t\022\024\n\014redirect_uri\030\002 \001(\t\022\016\n\006scopes\030\003 " + + "\003(\t\022\"\n\032authorization_metadata_key\030\004 \001(\t\022" + + "\035\n\025service_http_endpoint\030\005 \001(\t\022\020\n\010audien" + + "ce\030\006 \001(\t2\315\002\n\023AuthMetadataService\022\227\001\n\021Get" + + "OAuth2Metadata\022\'.flyteidl.service.OAuth2" + + "MetadataRequest\032(.flyteidl.service.OAuth" + + "2MetadataResponse\"/\202\323\344\223\002)\022\'/.well-known/" + + "oauth-authorization-server\022\233\001\n\025GetPublic" + + "ClientConfig\022/.flyteidl.service.PublicCl" + + "ientAuthConfigRequest\0320.flyteidl.service" + + ".PublicClientAuthConfigResponse\"\037\202\323\344\223\002\031\022" + + "\027/config/v1/flyte_clientB9Z7github.com/f" + + "lyteorg/flyteidl/gen/pb-go/flyteidl/serv" + + "iceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -5105,7 +5100,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.api.AnnotationsProto.getDescriptor(), - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(), }, assigner); internal_static_flyteidl_service_OAuth2MetadataRequest_descriptor = getDescriptor().getMessageTypes().get(0); @@ -5134,11 +5128,9 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); - registry.add(grpc.gateway.protoc_gen_swagger.options.Annotations.openapiv2Operation); com.google.protobuf.Descriptors.FileDescriptor .internalUpdateFileDescriptor(descriptor, registry); com.google.api.AnnotationsProto.getDescriptor(); - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java b/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java index d6655570aa4..d083391d3ba 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java @@ -6379,53 +6379,45 @@ public flyteidl.service.Dataproxy.CreateDownloadLinkResponse getDefaultInstanceF java.lang.String[] descriptorData = { "\n flyteidl/service/dataproxy.proto\022\020flyt" + "eidl.service\032\034google/api/annotations.pro" + - "to\032,protoc-gen-swagger/options/annotatio" + - "ns.proto\032\036google/protobuf/duration.proto" + - "\032\037google/protobuf/timestamp.proto\032\036flyte" + - "idl/core/identifier.proto\"v\n\034CreateUploa" + - "dLocationResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n" + - "\nnative_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032." + - "google.protobuf.Timestamp\"\224\001\n\033CreateUplo" + - "adLocationRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006do" + - "main\030\002 \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_" + - "in\030\004 \001(\0132\031.google.protobuf.Duration\022\023\n\013c" + - "ontent_md5\030\005 \001(\014\"f\n\035CreateDownloadLocati" + - "onRequest\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires" + - "_in\030\002 \001(\0132\031.google.protobuf.Duration:\002\030\001" + - "\"h\n\036CreateDownloadLocationResponse\022\022\n\nsi" + - "gned_url\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.goo" + - "gle.protobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDow" + - "nloadLinkRequest\0225\n\rartifact_type\030\001 \001(\0162" + - "\036.flyteidl.service.ArtifactType\022-\n\nexpir" + - "es_in\030\002 \001(\0132\031.google.protobuf.Duration\022C" + - "\n\021node_execution_id\030\003 \001(\0132&.flyteidl.cor" + - "e.NodeExecutionIdentifierH\000B\010\n\006source\"`\n" + - "\032CreateDownloadLinkResponse\022\022\n\nsigned_ur" + - "l\030\001 \003(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pro" + - "tobuf.Timestamp*C\n\014ArtifactType\022\033\n\027ARTIF" + - "ACT_TYPE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DE" + - "CK\020\0012\236\006\n\020DataProxyService\022\360\001\n\024CreateUplo" + - "adLocation\022-.flyteidl.service.CreateUplo" + - "adLocationRequest\032..flyteidl.service.Cre" + - "ateUploadLocationResponse\"y\202\323\344\223\002#\"\036/api/" + - "v1/dataproxy/artifact_urn:\001*\222AM\032KCreates" + - " a write-only http location that is acce" + - "ssible for tasks at runtime.\022\251\002\n\026CreateD" + - "ownloadLocation\022/.flyteidl.service.Creat" + - "eDownloadLocationRequest\0320.flyteidl.serv" + - "ice.CreateDownloadLocationResponse\"\253\001\210\002\001" + - "\202\323\344\223\002 \022\036/api/v1/dataproxy/artifact_urn\222A" + - "\177\032}Deprecated: Please use CreateDownload" + - "Link instead. Creates a read-only http l" + - "ocation that is accessible for tasks at " + - "runtime.\022\352\001\n\022CreateDownloadLink\022+.flytei" + - "dl.service.CreateDownloadLinkRequest\032,.f" + - "lyteidl.service.CreateDownloadLinkRespon" + - "se\"y\202\323\344\223\002$\"\037/api/v1/dataproxy/artifact_l" + - "ink:\001*\222AL\032JCreates a read-only http loca" + - "tion that is accessible for tasks at run" + - "time.B9Z7github.com/flyteorg/flyteidl/ge" + - "n/pb-go/flyteidl/serviceb\006proto3" + "to\032\036google/protobuf/duration.proto\032\037goog" + + "le/protobuf/timestamp.proto\032\036flyteidl/co" + + "re/identifier.proto\"v\n\034CreateUploadLocat" + + "ionResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnativ" + + "e_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032.google" + + ".protobuf.Timestamp\"\224\001\n\033CreateUploadLoca" + + "tionRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" + + " \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001" + + "(\0132\031.google.protobuf.Duration\022\023\n\013content" + + "_md5\030\005 \001(\014\"f\n\035CreateDownloadLocationRequ" + + "est\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires_in\030\002 " + + "\001(\0132\031.google.protobuf.Duration:\002\030\001\"h\n\036Cr" + + "eateDownloadLocationResponse\022\022\n\nsigned_u" + + "rl\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pr" + + "otobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDownloadL" + + "inkRequest\0225\n\rartifact_type\030\001 \001(\0162\036.flyt" + + "eidl.service.ArtifactType\022-\n\nexpires_in\030" + + "\002 \001(\0132\031.google.protobuf.Duration\022C\n\021node" + + "_execution_id\030\003 \001(\0132&.flyteidl.core.Node" + + "ExecutionIdentifierH\000B\010\n\006source\"`\n\032Creat" + + "eDownloadLinkResponse\022\022\n\nsigned_url\030\001 \003(" + + "\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.protobuf." + + "Timestamp*C\n\014ArtifactType\022\033\n\027ARTIFACT_TY" + + "PE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\374" + + "\003\n\020DataProxyService\022\240\001\n\024CreateUploadLoca" + + "tion\022-.flyteidl.service.CreateUploadLoca" + + "tionRequest\032..flyteidl.service.CreateUpl" + + "oadLocationResponse\")\202\323\344\223\002#\"\036/api/v1/dat" + + "aproxy/artifact_urn:\001*\022\246\001\n\026CreateDownloa" + + "dLocation\022/.flyteidl.service.CreateDownl" + + "oadLocationRequest\0320.flyteidl.service.Cr" + + "eateDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022" + + "\036/api/v1/dataproxy/artifact_urn\022\233\001\n\022Crea" + + "teDownloadLink\022+.flyteidl.service.Create" + + "DownloadLinkRequest\032,.flyteidl.service.C" + + "reateDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/" + + "v1/dataproxy/artifact_link:\001*B9Z7github." + + "com/flyteorg/flyteidl/gen/pb-go/flyteidl" + + "/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -6439,7 +6431,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.api.AnnotationsProto.getDescriptor(), - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(), com.google.protobuf.DurationProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), flyteidl.core.IdentifierOuterClass.getDescriptor(), @@ -6483,11 +6474,9 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); - registry.add(grpc.gateway.protoc_gen_swagger.options.Annotations.openapiv2Operation); com.google.protobuf.Descriptors.FileDescriptor .internalUpdateFileDescriptor(descriptor, registry); com.google.api.AnnotationsProto.getDescriptor(); - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(); com.google.protobuf.DurationProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); diff --git a/flyteidl/gen/pb-java/flyteidl/service/Identity.java b/flyteidl/gen/pb-java/flyteidl/service/Identity.java index 9967ddecea6..53d6d17acee 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Identity.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Identity.java @@ -2086,18 +2086,15 @@ public flyteidl.service.Identity.UserInfoResponse getDefaultInstanceForType() { java.lang.String[] descriptorData = { "\n\037flyteidl/service/identity.proto\022\020flyte" + "idl.service\032\034google/api/annotations.prot" + - "o\032,protoc-gen-swagger/options/annotation" + - "s.proto\"\021\n\017UserInfoRequest\"\226\001\n\020UserInfoR" + - "esponse\022\017\n\007subject\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\032" + - "\n\022preferred_username\030\003 \001(\t\022\022\n\ngiven_name" + - "\030\004 \001(\t\022\023\n\013family_name\030\005 \001(\t\022\r\n\005email\030\006 \001" + - "(\t\022\017\n\007picture\030\007 \001(\t2\235\001\n\017IdentityService\022" + - "\211\001\n\010UserInfo\022!.flyteidl.service.UserInfo" + - "Request\032\".flyteidl.service.UserInfoRespo" + - "nse\"6\202\323\344\223\002\005\022\003/me\222A(\032&Retrieves authentic" + - "ated identity info.B9Z7github.com/flyteo" + - "rg/flyteidl/gen/pb-go/flyteidl/serviceb\006" + - "proto3" + "o\"\021\n\017UserInfoRequest\"\226\001\n\020UserInfoRespons" + + "e\022\017\n\007subject\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\032\n\022pref" + + "erred_username\030\003 \001(\t\022\022\n\ngiven_name\030\004 \001(\t" + + "\022\023\n\013family_name\030\005 \001(\t\022\r\n\005email\030\006 \001(\t\022\017\n\007" + + "picture\030\007 \001(\t2q\n\017IdentityService\022^\n\010User" + + "Info\022!.flyteidl.service.UserInfoRequest\032" + + "\".flyteidl.service.UserInfoResponse\"\013\202\323\344" + + "\223\002\005\022\003/meB9Z7github.com/flyteorg/flyteidl" + + "/gen/pb-go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -2111,7 +2108,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.api.AnnotationsProto.getDescriptor(), - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(), }, assigner); internal_static_flyteidl_service_UserInfoRequest_descriptor = getDescriptor().getMessageTypes().get(0); @@ -2128,11 +2124,9 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); - registry.add(grpc.gateway.protoc_gen_swagger.options.Annotations.openapiv2Operation); com.google.protobuf.Descriptors.FileDescriptor .internalUpdateFileDescriptor(descriptor, registry); com.google.api.AnnotationsProto.getDescriptor(); - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-java/flyteidl/service/Signal.java b/flyteidl/gen/pb-java/flyteidl/service/Signal.java index 3c102b5127c..a62684466e9 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Signal.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Signal.java @@ -25,29 +25,19 @@ public static void registerAllExtensions( java.lang.String[] descriptorData = { "\n\035flyteidl/service/signal.proto\022\020flyteid" + "l.service\032\034google/api/annotations.proto\032" + - "\033flyteidl/admin/signal.proto\032,protoc-gen" + - "-swagger/options/annotations.proto2\347\005\n\rS" + - "ignalService\022\220\001\n\021GetOrCreateSignal\022(.fly" + - "teidl.admin.SignalGetOrCreateRequest\032\026.f" + - "lyteidl.admin.Signal\"9\222A6\0324Retrieve a si" + - "gnal, creating it if it does not exist.\022" + - "\216\002\n\013ListSignals\022!.flyteidl.admin.SignalL" + - "istRequest\032\032.flyteidl.admin.SignalList\"\277" + - "\001\202\323\344\223\002m\022k/api/v1/signals/{workflow_execu" + - "tion_id.project}/{workflow_execution_id." + - "domain}/{workflow_execution_id.name}\222AI\032" + - "GFetch existing signal definitions match" + - "ing the input signal id filters.\022\261\002\n\tSet" + - "Signal\022 .flyteidl.admin.SignalSetRequest" + - "\032!.flyteidl.admin.SignalSetResponse\"\336\001\202\323" + - "\344\223\002\024\"\017/api/v1/signals:\001*\222A\300\001\032\023Set a sign" + - "al value.JB\n\003400\022;\n9Returned for bad req" + - "uest that may have failed validation.Je\n" + - "\003409\022^\n\\Returned for a request that refe" + - "rences an identical entity that has alre" + - "ady been registered.B9Z7github.com/flyte" + - "org/flyteidl/gen/pb-go/flyteidl/serviceb" + - "\006proto3" + "\033flyteidl/admin/signal.proto2\232\003\n\rSignalS" + + "ervice\022W\n\021GetOrCreateSignal\022(.flyteidl.a" + + "dmin.SignalGetOrCreateRequest\032\026.flyteidl" + + ".admin.Signal\"\000\022\301\001\n\013ListSignals\022!.flytei" + + "dl.admin.SignalListRequest\032\032.flyteidl.ad" + + "min.SignalList\"s\202\323\344\223\002m\022k/api/v1/signals/" + + "{workflow_execution_id.project}/{workflo" + + "w_execution_id.domain}/{workflow_executi" + + "on_id.name}\022l\n\tSetSignal\022 .flyteidl.admi" + + "n.SignalSetRequest\032!.flyteidl.admin.Sign" + + "alSetResponse\"\032\202\323\344\223\002\024\"\017/api/v1/signals:\001" + + "*B9Z7github.com/flyteorg/flyteidl/gen/pb" + + "-go/flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -62,17 +52,14 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.api.AnnotationsProto.getDescriptor(), flyteidl.admin.SignalOuterClass.getDescriptor(), - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(), }, assigner); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); - registry.add(grpc.gateway.protoc_gen_swagger.options.Annotations.openapiv2Operation); com.google.protobuf.Descriptors.FileDescriptor .internalUpdateFileDescriptor(descriptor, registry); com.google.api.AnnotationsProto.getDescriptor(); flyteidl.admin.SignalOuterClass.getDescriptor(); - grpc.gateway.protoc_gen_swagger.options.Annotations.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 33f0185af45..64cab73d081 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -28,10 +28,9 @@ from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -from protoc_gen_swagger.options import annotations_pb2 as protoc__gen__swagger_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a,protoc-gen-swagger/options/annotations.proto2\xe2r\n\x0c\x41\x64minService\x12\xc5\x02\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\xef\x01\x92\x41\xd3\x01\x1a&Create and register a task definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\xb2\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"o\x92\x41\'\x1a%Retrieve an existing task definition.\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xde\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"r\x92\x41\x44\x1a\x42\x46\x65tch existing task definition identifiers matching input filters.\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x12\xeb\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\x9e\x01\x92\x41\x39\x1a\x37\x46\x65tch existing task definitions matching input filters.\x82\xd3\xe4\x93\x02\\Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12\xd9\x02\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\xf7\x01\x92\x41\xd7\x01\x1a*Create and register a workflow definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\xc2\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"w\x92\x41+\x1a)Retrieve an existing workflow definition.\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xed\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"}\x92\x41K\x1aIFetch an existing workflow definition identifiers matching input filters.\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xff\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xaa\x01\x92\x41=\x1a;Fetch existing workflow definitions matching input filters.\x82\xd3\xe4\x93\x02\x64Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\xe5\x02\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\xfd\x01\x92\x41\xda\x01\x1a-Create and register a launch plan definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\xcc\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"}\x92\x41.\x1a,Retrieve an existing launch plan definition.\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x92\x41\x85\x05\x1a\x82\x05Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x92\x41 \x1a\x1eRelaunch a workflow execution.\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x92\x41*\x1a(Retrieve an existing workflow execution.\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd6\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"r\x92\x41/\x1a-Update execution belonging to project domain.\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\x82\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8a\x01\x92\x41\x45\x1a\x43Retrieve input and output data from an existing workflow execution.\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\xc8\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"r\x92\x41<\x1a:Fetch existing workflow executions matching input filters.\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xf4\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x86\x01\x92\x41\x43\x1a\x41Terminate the active workflow execution specified in the request.\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xfc\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x9f\x01\x92\x41&\x1a$Retrieve an existing node execution.\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x9a\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb6\x01\x92\x41\x38\x1a\x36\x46\x65tch existing node executions matching input filters.\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xef\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xfd\x03\x92\x41G\x1a\x45\x46\x65tch child node executions launched by the specified task execution.\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xb3\x02\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\xbf\x01\x92\x41\x41\x1a?Retrieve input and output data from an existing node execution.\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x97\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"3\x92\x41\x15\x1a\x13Register a project.\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x92\x41\x13\x1a\x11Update a project.\x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x92\x41=\x1a;Create a node execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x92\x41=\x1a;Create a task execution event recording a phase transition.\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x92\x41&\x1a$Retrieve an existing task execution.\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xff\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x82\x01\x92\x41\x45\x1a\x43Update the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\xe9\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"v\x92\x41G\x1a\x45Retrieve the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xf3\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"w\x92\x41\x45\x1a\x43\x44\x65lete the customized resource attributes associated with a project\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x92\x41>\x1a/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xa4\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"2\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xc8\x01\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"p\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xb6\x01\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"O\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\x95\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12q\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\x80\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xa3\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x98\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xb4\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\x9c\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xa8\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xe3\x01\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"U\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\xc1\x01\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xcd\x01\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"?\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xb6\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\":\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\x9f\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xab\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"/\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xe4\x01\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"e\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xb7\x01\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xc3\x01\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"D\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\x9f\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\xa7\x01\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"Q\x82\xd3\xe4\x93\x02K\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xbe\x01\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"T\x82\xd3\xe4\x93\x02N:\x01*\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xc4\x01\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"g\x82\xd3\xe4\x93\x02\x61\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x92\x02\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xa1\x01\x82\xd3\xe4\x93\x02\x9a\x01ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}B\xbc\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.admin_pb2', globals()) @@ -40,109 +39,109 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\nAdminProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' _ADMINSERVICE.methods_by_name['CreateTask']._options = None - _ADMINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\222A\323\001\032&Create and register a task definition.JB\n\003400\022;\n9Returned for bad request that may have failed validation.Je\n\003409\022^\n\\Returned for a request that references an identical entity that has already been registered.\202\323\344\223\002\022:\001*\"\r/api/v1/tasks' + _ADMINSERVICE.methods_by_name['CreateTask']._serialized_options = b'\202\323\344\223\002\022:\001*\"\r/api/v1/tasks' _ADMINSERVICE.methods_by_name['GetTask']._options = None - _ADMINSERVICE.methods_by_name['GetTask']._serialized_options = b'\222A\'\032%Retrieve an existing task definition.\202\323\344\223\002?\022=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetTask']._serialized_options = b'\202\323\344\223\002?\022=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListTaskIds']._options = None - _ADMINSERVICE.methods_by_name['ListTaskIds']._serialized_options = b'\222AD\032BFetch existing task definition identifiers matching input filters.\202\323\344\223\002%\022#/api/v1/task_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListTaskIds']._serialized_options = b'\202\323\344\223\002%\022#/api/v1/task_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListTasks']._options = None - _ADMINSERVICE.methods_by_name['ListTasks']._serialized_options = b'\222A9\0327Fetch existing task definitions matching input filters.\202\323\344\223\002\\Z(\022&/api/v1/tasks/{id.project}/{id.domain}\0220/api/v1/tasks/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListTasks']._serialized_options = b'\202\323\344\223\002\\Z(\022&/api/v1/tasks/{id.project}/{id.domain}\0220/api/v1/tasks/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateWorkflow']._options = None - _ADMINSERVICE.methods_by_name['CreateWorkflow']._serialized_options = b'\222A\327\001\032*Create and register a workflow definition.JB\n\003400\022;\n9Returned for bad request that may have failed validation.Je\n\003409\022^\n\\Returned for a request that references an identical entity that has already been registered.\202\323\344\223\002\026:\001*\"\021/api/v1/workflows' + _ADMINSERVICE.methods_by_name['CreateWorkflow']._serialized_options = b'\202\323\344\223\002\026:\001*\"\021/api/v1/workflows' _ADMINSERVICE.methods_by_name['GetWorkflow']._options = None - _ADMINSERVICE.methods_by_name['GetWorkflow']._serialized_options = b'\222A+\032)Retrieve an existing workflow definition.\202\323\344\223\002C\022A/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetWorkflow']._serialized_options = b'\202\323\344\223\002C\022A/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['ListWorkflowIds']._options = None - _ADMINSERVICE.methods_by_name['ListWorkflowIds']._serialized_options = b'\222AK\032IFetch an existing workflow definition identifiers matching input filters.\202\323\344\223\002)\022\'/api/v1/workflow_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListWorkflowIds']._serialized_options = b'\202\323\344\223\002)\022\'/api/v1/workflow_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListWorkflows']._options = None - _ADMINSERVICE.methods_by_name['ListWorkflows']._serialized_options = b'\222A=\032;Fetch existing workflow definitions matching input filters.\202\323\344\223\002dZ,\022*/api/v1/workflows/{id.project}/{id.domain}\0224/api/v1/workflows/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListWorkflows']._serialized_options = b'\202\323\344\223\002dZ,\022*/api/v1/workflows/{id.project}/{id.domain}\0224/api/v1/workflows/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._serialized_options = b'\222A\332\001\032-Create and register a launch plan definition.JB\n\003400\022;\n9Returned for bad request that may have failed validation.Je\n\003409\022^\n\\Returned for a request that references an identical entity that has already been registered.\202\323\344\223\002\031:\001*\"\024/api/v1/launch_plans' + _ADMINSERVICE.methods_by_name['CreateLaunchPlan']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/launch_plans' _ADMINSERVICE.methods_by_name['GetLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['GetLaunchPlan']._serialized_options = b'\222A.\032,Retrieve an existing launch plan definition.\202\323\344\223\002F\022D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['GetLaunchPlan']._serialized_options = b'\202\323\344\223\002F\022D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._serialized_options = b'\222AM\032KRetrieve the active launch plan version specified by input request filters.\202\323\344\223\002@\022>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetActiveLaunchPlan']._serialized_options = b'\202\323\344\223\002@\022>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._options = None - _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._serialized_options = b'\222AK\032IFetch the active launch plan versions specified by input request filters.\202\323\344\223\0020\022./api/v1/active_launch_plans/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListActiveLaunchPlans']._serialized_options = b'\202\323\344\223\0020\022./api/v1/active_launch_plans/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._options = None - _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._serialized_options = b'\222AK\032IFetch existing launch plan definition identifiers matching input filters.\202\323\344\223\002,\022*/api/v1/launch_plan_ids/{project}/{domain}' + _ADMINSERVICE.methods_by_name['ListLaunchPlanIds']._serialized_options = b'\202\323\344\223\002,\022*/api/v1/launch_plan_ids/{project}/{domain}' _ADMINSERVICE.methods_by_name['ListLaunchPlans']._options = None - _ADMINSERVICE.methods_by_name['ListLaunchPlans']._serialized_options = b'\222A@\032>Fetch existing launch plan definitions matching input filters.\202\323\344\223\002jZ/\022-/api/v1/launch_plans/{id.project}/{id.domain}\0227/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['ListLaunchPlans']._serialized_options = b'\202\323\344\223\002jZ/\022-/api/v1/launch_plans/{id.project}/{id.domain}\0227/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._options = None - _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._serialized_options = b'\222A\205\005\032\202\005Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.\202\323\344\223\002I:\001*\032D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' + _ADMINSERVICE.methods_by_name['UpdateLaunchPlan']._serialized_options = b'\202\323\344\223\002I:\001*\032D/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}' _ADMINSERVICE.methods_by_name['CreateExecution']._options = None - _ADMINSERVICE.methods_by_name['CreateExecution']._serialized_options = b'\222A\036\032\034Create a workflow execution.\202\323\344\223\002\027:\001*\"\022/api/v1/executions' + _ADMINSERVICE.methods_by_name['CreateExecution']._serialized_options = b'\202\323\344\223\002\027:\001*\"\022/api/v1/executions' _ADMINSERVICE.methods_by_name['RelaunchExecution']._options = None - _ADMINSERVICE.methods_by_name['RelaunchExecution']._serialized_options = b'\222A \032\036Relaunch a workflow execution.\202\323\344\223\002 :\001*\"\033/api/v1/executions/relaunch' + _ADMINSERVICE.methods_by_name['RelaunchExecution']._serialized_options = b'\202\323\344\223\002 :\001*\"\033/api/v1/executions/relaunch' _ADMINSERVICE.methods_by_name['RecoverExecution']._options = None - _ADMINSERVICE.methods_by_name['RecoverExecution']._serialized_options = b'\222A\215\004\032\212\004Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\202\323\344\223\002\037:\001*\"\032/api/v1/executions/recover' + _ADMINSERVICE.methods_by_name['RecoverExecution']._serialized_options = b'\202\323\344\223\002\037:\001*\"\032/api/v1/executions/recover' _ADMINSERVICE.methods_by_name['GetExecution']._options = None - _ADMINSERVICE.methods_by_name['GetExecution']._serialized_options = b'\222A*\032(Retrieve an existing workflow execution.\202\323\344\223\0027\0225/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetExecution']._serialized_options = b'\202\323\344\223\0027\0225/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['UpdateExecution']._options = None - _ADMINSERVICE.methods_by_name['UpdateExecution']._serialized_options = b'\222A/\032-Update execution belonging to project domain.\202\323\344\223\002::\001*\0325/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['UpdateExecution']._serialized_options = b'\202\323\344\223\002::\001*\0325/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetExecutionData']._serialized_options = b'\222AE\032CRetrieve input and output data from an existing workflow execution.\202\323\344\223\002<\022:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['GetExecutionData']._serialized_options = b'\202\323\344\223\002<\022:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['ListExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListExecutions']._serialized_options = b'\222A<\032:Fetch existing workflow executions matching input filters.\202\323\344\223\002-\022+/api/v1/executions/{id.project}/{id.domain}' + _ADMINSERVICE.methods_by_name['ListExecutions']._serialized_options = b'\202\323\344\223\002-\022+/api/v1/executions/{id.project}/{id.domain}' _ADMINSERVICE.methods_by_name['TerminateExecution']._options = None - _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\222AC\032ATerminate the active workflow execution specified in the request.\202\323\344\223\002::\001**5/api/v1/executions/{id.project}/{id.domain}/{id.name}' + _ADMINSERVICE.methods_by_name['TerminateExecution']._serialized_options = b'\202\323\344\223\002::\001**5/api/v1/executions/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetNodeExecution']._options = None - _ADMINSERVICE.methods_by_name['GetNodeExecution']._serialized_options = b'\222A&\032$Retrieve an existing node execution.\202\323\344\223\002p\022n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' + _ADMINSERVICE.methods_by_name['GetNodeExecution']._serialized_options = b'\202\323\344\223\002p\022n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['ListNodeExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListNodeExecutions']._serialized_options = b'\222A8\0326Fetch existing node executions matching input filters.\202\323\344\223\002u\022s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' + _ADMINSERVICE.methods_by_name['ListNodeExecutions']._serialized_options = b'\202\323\344\223\002u\022s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._options = None - _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._serialized_options = b'\222AG\032EFetch child node executions launched by the specified task execution.\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}' + _ADMINSERVICE.methods_by_name['ListNodeExecutionsForTask']._serialized_options = b'\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}' _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._serialized_options = b'\222AA\032?Retrieve input and output data from an existing node execution.\202\323\344\223\002u\022s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' + _ADMINSERVICE.methods_by_name['GetNodeExecutionData']._serialized_options = b'\202\323\344\223\002u\022s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}' _ADMINSERVICE.methods_by_name['RegisterProject']._options = None - _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\222A\025\032\023Register a project.\202\323\344\223\002\025:\001*\"\020/api/v1/projects' + _ADMINSERVICE.methods_by_name['RegisterProject']._serialized_options = b'\202\323\344\223\002\025:\001*\"\020/api/v1/projects' _ADMINSERVICE.methods_by_name['UpdateProject']._options = None - _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\222A\023\032\021Update a project.\202\323\344\223\002\032:\001*\032\025/api/v1/projects/{id}' + _ADMINSERVICE.methods_by_name['UpdateProject']._serialized_options = b'\202\323\344\223\002\032:\001*\032\025/api/v1/projects/{id}' _ADMINSERVICE.methods_by_name['ListProjects']._options = None - _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\222A\034\032\032Fetch registered projects.\202\323\344\223\002\022\022\020/api/v1/projects' + _ADMINSERVICE.methods_by_name['ListProjects']._serialized_options = b'\202\323\344\223\002\022\022\020/api/v1/projects' _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._serialized_options = b'\222AA\032?Create a workflow execution event recording a phase transition.\202\323\344\223\002\035:\001*\"\030/api/v1/events/workflows' + _ADMINSERVICE.methods_by_name['CreateWorkflowEvent']._serialized_options = b'\202\323\344\223\002\035:\001*\"\030/api/v1/events/workflows' _ADMINSERVICE.methods_by_name['CreateNodeEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateNodeEvent']._serialized_options = b'\222A=\032;Create a node execution event recording a phase transition.\202\323\344\223\002\031:\001*\"\024/api/v1/events/nodes' + _ADMINSERVICE.methods_by_name['CreateNodeEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/nodes' _ADMINSERVICE.methods_by_name['CreateTaskEvent']._options = None - _ADMINSERVICE.methods_by_name['CreateTaskEvent']._serialized_options = b'\222A=\032;Create a task execution event recording a phase transition.\202\323\344\223\002\031:\001*\"\024/api/v1/events/tasks' + _ADMINSERVICE.methods_by_name['CreateTaskEvent']._serialized_options = b'\202\323\344\223\002\031:\001*\"\024/api/v1/events/tasks' _ADMINSERVICE.methods_by_name['GetTaskExecution']._options = None - _ADMINSERVICE.methods_by_name['GetTaskExecution']._serialized_options = b'\222A&\032$Retrieve an existing task execution.\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}' + _ADMINSERVICE.methods_by_name['GetTaskExecution']._serialized_options = b'\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}' _ADMINSERVICE.methods_by_name['ListTaskExecutions']._options = None - _ADMINSERVICE.methods_by_name['ListTaskExecutions']._serialized_options = b'\222A8\0326Fetch existing task executions matching input filters.\202\323\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}' + _ADMINSERVICE.methods_by_name['ListTaskExecutions']._serialized_options = b'\202\323\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}' _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._options = None - _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._serialized_options = b'\222AA\032?Retrieve input and output data from an existing task execution.\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}' + _ADMINSERVICE.methods_by_name['GetTaskExecutionData']._serialized_options = b'\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}' _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._serialized_options = b'\222AX\032VUpdate the customized resource attributes associated with a project-domain combination\202\323\344\223\002O:\001*\032J/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}' + _ADMINSERVICE.methods_by_name['UpdateProjectDomainAttributes']._serialized_options = b'\202\323\344\223\002O:\001*\032J/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}' _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._serialized_options = b'\222AZ\032XRetrieve the customized resource attributes associated with a project-domain combination\202\323\344\223\0026\0224/api/v1/project_domain_attributes/{project}/{domain}' + _ADMINSERVICE.methods_by_name['GetProjectDomainAttributes']._serialized_options = b'\202\323\344\223\0026\0224/api/v1/project_domain_attributes/{project}/{domain}' _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._serialized_options = b'\222AX\032VDelete the customized resource attributes associated with a project-domain combination\202\323\344\223\0029:\001**4/api/v1/project_domain_attributes/{project}/{domain}' + _ADMINSERVICE.methods_by_name['DeleteProjectDomainAttributes']._serialized_options = b'\202\323\344\223\0029:\001**4/api/v1/project_domain_attributes/{project}/{domain}' _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._serialized_options = b'\222AE\032CUpdate the customized resource attributes associated with a project\202\323\344\223\0024:\001*\032//api/v1/project_attributes/{attributes.project}' + _ADMINSERVICE.methods_by_name['UpdateProjectAttributes']._serialized_options = b'\202\323\344\223\0024:\001*\032//api/v1/project_attributes/{attributes.project}' _ADMINSERVICE.methods_by_name['GetProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetProjectAttributes']._serialized_options = b'\222AG\032ERetrieve the customized resource attributes associated with a project\202\323\344\223\002&\022$/api/v1/project_attributes/{project}' + _ADMINSERVICE.methods_by_name['GetProjectAttributes']._serialized_options = b'\202\323\344\223\002&\022$/api/v1/project_attributes/{project}' _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._serialized_options = b'\222AE\032CDelete the customized resource attributes associated with a project\202\323\344\223\002):\001**$/api/v1/project_attributes/{project}' + _ADMINSERVICE.methods_by_name['DeleteProjectAttributes']._serialized_options = b'\202\323\344\223\002):\001**$/api/v1/project_attributes/{project}' _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._serialized_options = b'\222Af\032dUpdate the customized resource attributes associated with a project, domain and workflow combination\202\323\344\223\002_:\001*\032Z/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}' + _ADMINSERVICE.methods_by_name['UpdateWorkflowAttributes']._serialized_options = b'\202\323\344\223\002_:\001*\032Z/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}' _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._serialized_options = b'\222Ah\032fRetrieve the customized resource attributes associated with a project, domain and workflow combination\202\323\344\223\002;\0229/api/v1/workflow_attributes/{project}/{domain}/{workflow}' + _ADMINSERVICE.methods_by_name['GetWorkflowAttributes']._serialized_options = b'\202\323\344\223\002;\0229/api/v1/workflow_attributes/{project}/{domain}/{workflow}' _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._options = None - _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._serialized_options = b'\222Af\032dDelete the customized resource attributes associated with a project, domain and workflow combination\202\323\344\223\002>:\001**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}' + _ADMINSERVICE.methods_by_name['DeleteWorkflowAttributes']._serialized_options = b'\202\323\344\223\002>:\001**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}' _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._options = None - _ADMINSERVICE.methods_by_name['ListMatchableAttributes']._serialized_options = b'\222A>\032>> thread = api.create_execution(body, async_req=True) @@ -58,7 +57,6 @@ def create_execution(self, body, **kwargs): # noqa: E501 def create_execution_with_http_info(self, body, **kwargs): # noqa: E501 """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 - Create a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_execution_with_http_info(body, async_req=True) @@ -135,7 +133,6 @@ def create_execution_with_http_info(self, body, **kwargs): # noqa: E501 def create_launch_plan(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 - Create and register a launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_launch_plan(body, async_req=True) @@ -157,7 +154,6 @@ def create_launch_plan(self, body, **kwargs): # noqa: E501 def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 - Create and register a launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_launch_plan_with_http_info(body, async_req=True) @@ -234,7 +230,6 @@ def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 def create_node_event(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 - Create a node execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_node_event(body, async_req=True) @@ -256,7 +251,6 @@ def create_node_event(self, body, **kwargs): # noqa: E501 def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 - Create a node execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_node_event_with_http_info(body, async_req=True) @@ -333,7 +327,6 @@ def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 def create_task(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 - Create and register a task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_task(body, async_req=True) @@ -355,7 +348,6 @@ def create_task(self, body, **kwargs): # noqa: E501 def create_task_with_http_info(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 - Create and register a task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_task_with_http_info(body, async_req=True) @@ -432,7 +424,6 @@ def create_task_with_http_info(self, body, **kwargs): # noqa: E501 def create_task_event(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 - Create a task execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_task_event(body, async_req=True) @@ -454,7 +445,6 @@ def create_task_event(self, body, **kwargs): # noqa: E501 def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 - Create a task execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_task_event_with_http_info(body, async_req=True) @@ -531,7 +521,6 @@ def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 def create_workflow(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 - Create and register a workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_workflow(body, async_req=True) @@ -553,7 +542,6 @@ def create_workflow(self, body, **kwargs): # noqa: E501 def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 - Create and register a workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_workflow_with_http_info(body, async_req=True) @@ -630,7 +618,6 @@ def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 def create_workflow_event(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 - Create a workflow execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_workflow_event(body, async_req=True) @@ -652,7 +639,6 @@ def create_workflow_event(self, body, **kwargs): # noqa: E501 def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 - Create a workflow execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.create_workflow_event_with_http_info(body, async_req=True) @@ -729,7 +715,6 @@ def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 def delete_project_attributes(self, project, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Delete the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_project_attributes(project, body, async_req=True) @@ -752,7 +737,6 @@ def delete_project_attributes(self, project, body, **kwargs): # noqa: E501 def delete_project_attributes_with_http_info(self, project, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Delete the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_project_attributes_with_http_info(project, body, async_req=True) @@ -836,7 +820,6 @@ def delete_project_attributes_with_http_info(self, project, body, **kwargs): # def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Delete the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_project_domain_attributes(project, domain, body, async_req=True) @@ -860,7 +843,6 @@ def delete_project_domain_attributes(self, project, domain, body, **kwargs): # def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Delete the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_project_domain_attributes_with_http_info(project, domain, body, async_req=True) @@ -951,7 +933,6 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Delete the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_workflow_attributes(project, domain, workflow, body, async_req=True) @@ -976,7 +957,6 @@ def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Delete the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.delete_workflow_attributes_with_http_info(project, domain, workflow, body, async_req=True) @@ -1074,7 +1054,6 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Retrieve the active launch plan version specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_active_launch_plan(id_project, id_domain, id_name, async_req=True) @@ -1098,7 +1077,6 @@ def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # n def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Retrieve the active launch plan version specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_active_launch_plan_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -1189,7 +1167,6 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, def get_description_entity(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 - Retrieve an existing description entity description. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_description_entity(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) @@ -1215,7 +1192,6 @@ def get_description_entity(self, id_resource_type, id_project, id_domain, id_nam def get_description_entity_with_http_info(self, id_resource_type, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. # noqa: E501 - Retrieve an existing description entity description. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_description_entity_with_http_info(id_resource_type, id_project, id_domain, id_name, id_version, async_req=True) @@ -1320,7 +1296,6 @@ def get_description_entity_with_http_info(self, id_resource_type, id_project, id def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Retrieve an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_execution(id_project, id_domain, id_name, async_req=True) @@ -1344,7 +1319,6 @@ def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Retrieve an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_execution_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -1435,7 +1409,6 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Retrieve input and output data from an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_execution_data(id_project, id_domain, id_name, async_req=True) @@ -1459,7 +1432,6 @@ def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Retrieve input and output data from an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_execution_data_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -1550,7 +1522,6 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 - Retrieve an existing launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_launch_plan(id_project, id_domain, id_name, id_version, async_req=True) @@ -1576,7 +1547,6 @@ def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 - Retrieve an existing launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) @@ -1677,7 +1647,6 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 - Retrieve a NamedEntity object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_named_entity(resource_type, id_project, id_domain, id_name, async_req=True) @@ -1702,7 +1671,6 @@ def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwar def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 - Retrieve a NamedEntity object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) @@ -1800,7 +1768,6 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Retrieve an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_node_execution(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) @@ -1825,7 +1792,6 @@ def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Retrieve an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_node_execution_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) @@ -1923,7 +1889,6 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio def get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Retrieve input and output data from an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_node_execution_data(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) @@ -1948,7 +1913,6 @@ def get_node_execution_data(self, id_execution_id_project, id_execution_id_domai def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Retrieve input and output data from an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_node_execution_data_with_http_info(id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, async_req=True) @@ -2046,7 +2010,6 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe def get_project_attributes(self, project, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Retrieve the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_project_attributes(project, async_req=True) @@ -2069,7 +2032,6 @@ def get_project_attributes(self, project, **kwargs): # noqa: E501 def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Retrieve the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_project_attributes_with_http_info(project, async_req=True) @@ -2149,7 +2111,6 @@ def get_project_attributes_with_http_info(self, project, **kwargs): # noqa: E50 def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Retrieve the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_project_domain_attributes(project, domain, async_req=True) @@ -2173,7 +2134,6 @@ def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E50 def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Retrieve the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_project_domain_attributes_with_http_info(project, domain, async_req=True) @@ -2260,7 +2220,6 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 - Retrieve an existing task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task(id_project, id_domain, id_name, id_version, async_req=True) @@ -2286,7 +2245,6 @@ def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noq def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 - Retrieve an existing task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) @@ -2387,7 +2345,6 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Retrieve an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task_execution(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) @@ -2418,7 +2375,6 @@ def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Retrieve an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task_execution_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) @@ -2554,7 +2510,6 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Retrieve input and output data from an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task_execution_data(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) @@ -2585,7 +2540,6 @@ def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Retrieve input and output data from an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_task_execution_data_with_http_info(id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, async_req=True) @@ -2721,7 +2675,6 @@ def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_ def get_version(self, **kwargs): # noqa: E501 """get_version # noqa: E501 - Retrieve the Version (including the Build information) for FlyteAdmin service # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_version(async_req=True) @@ -2742,7 +2695,6 @@ def get_version(self, **kwargs): # noqa: E501 def get_version_with_http_info(self, **kwargs): # noqa: E501 """get_version # noqa: E501 - Retrieve the Version (including the Build information) for FlyteAdmin service # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_version_with_http_info(async_req=True) @@ -2812,7 +2764,6 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 - Retrieve an existing workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_workflow(id_project, id_domain, id_name, id_version, async_req=True) @@ -2838,7 +2789,6 @@ def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 - Retrieve an existing workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_workflow_with_http_info(id_project, id_domain, id_name, id_version, async_req=True) @@ -2939,7 +2889,6 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Retrieve the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_workflow_attributes(project, domain, workflow, async_req=True) @@ -2964,7 +2913,6 @@ def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Retrieve the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.get_workflow_attributes_with_http_info(project, domain, workflow, async_req=True) @@ -3058,7 +3006,6 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Fetch the active launch plan versions specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_active_launch_plans(project, domain, async_req=True) @@ -3085,7 +3032,6 @@ def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Fetch the active launch plan versions specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_active_launch_plans_with_http_info(project, domain, async_req=True) @@ -3181,7 +3127,6 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # def list_description_entities(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 - Fetch existing description entity definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_description_entities(resource_type, id_project, id_domain, id_name, async_req=True) @@ -3211,7 +3156,6 @@ def list_description_entities(self, resource_type, id_project, id_domain, id_nam def list_description_entities_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 - Fetch existing description entity definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_description_entities_with_http_info(resource_type, id_project, id_domain, id_name, async_req=True) @@ -3324,7 +3268,6 @@ def list_description_entities_with_http_info(self, resource_type, id_project, id def list_description_entities2(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 - Fetch existing description entity definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_description_entities2(resource_type, id_project, id_domain, async_req=True) @@ -3354,7 +3297,6 @@ def list_description_entities2(self, resource_type, id_project, id_domain, **kwa def list_description_entities2_with_http_info(self, resource_type, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. # noqa: E501 - Fetch existing description entity definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_description_entities2_with_http_info(resource_type, id_project, id_domain, async_req=True) @@ -3463,7 +3405,6 @@ def list_description_entities2_with_http_info(self, resource_type, id_project, i def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Fetch existing workflow executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_executions(id_project, id_domain, async_req=True) @@ -3492,7 +3433,6 @@ def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Fetch existing workflow executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_executions_with_http_info(id_project, id_domain, async_req=True) @@ -3594,7 +3534,6 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 - Fetch existing launch plan definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plan_ids(project, domain, async_req=True) @@ -3622,7 +3561,6 @@ def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 - Fetch existing launch plan definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plan_ids_with_http_info(project, domain, async_req=True) @@ -3721,7 +3659,6 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 - Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plans(id_project, id_domain, id_name, async_req=True) @@ -3750,7 +3687,6 @@ def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 - Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plans_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -3856,7 +3792,6 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa def list_launch_plans2(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 - Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plans2(id_project, id_domain, async_req=True) @@ -3885,7 +3820,6 @@ def list_launch_plans2(self, id_project, id_domain, **kwargs): # noqa: E501 def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 - Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_launch_plans2_with_http_info(id_project, id_domain, async_req=True) @@ -3987,7 +3921,6 @@ def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # def list_matchable_attributes(self, **kwargs): # noqa: E501 """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 - Retrieve a list of MatchableAttributesConfiguration objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_matchable_attributes(async_req=True) @@ -4009,7 +3942,6 @@ def list_matchable_attributes(self, **kwargs): # noqa: E501 def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 - Retrieve a list of MatchableAttributesConfiguration objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_matchable_attributes_with_http_info(async_req=True) @@ -4082,7 +4014,6 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 - Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_named_entities(resource_type, project, domain, async_req=True) @@ -4111,7 +4042,6 @@ def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 - Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_named_entities_with_http_info(resource_type, project, domain, async_req=True) @@ -4217,7 +4147,6 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k def list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Fetch existing node executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_node_executions(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) @@ -4247,7 +4176,6 @@ def list_node_executions(self, workflow_execution_id_project, workflow_execution def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 - Fetch existing node executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_node_executions_with_http_info(workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, async_req=True) @@ -4356,7 +4284,6 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor def list_node_executions_for_task(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Fetch child node executions launched by the specified task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_node_executions_for_task(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) @@ -4392,7 +4319,6 @@ def list_node_executions_for_task(self, task_execution_id_node_execution_id_exec def list_node_executions_for_task_with_http_info(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Fetch child node executions launched by the specified task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_node_executions_for_task_with_http_info(task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, async_req=True) @@ -4543,7 +4469,6 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex def list_projects(self, **kwargs): # noqa: E501 """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 - Fetch registered projects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_projects(async_req=True) @@ -4569,7 +4494,6 @@ def list_projects(self, **kwargs): # noqa: E501 def list_projects_with_http_info(self, **kwargs): # noqa: E501 """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 - Fetch registered projects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_projects_with_http_info(async_req=True) @@ -4654,7 +4578,6 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 def list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Fetch existing task executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_task_executions(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) @@ -4684,7 +4607,6 @@ def list_task_executions(self, node_execution_id_execution_id_project, node_exec def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 - Fetch existing task executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_task_executions_with_http_info(node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, async_req=True) @@ -4797,7 +4719,6 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro def list_task_ids(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 - Fetch existing task definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_task_ids(project, domain, async_req=True) @@ -4825,7 +4746,6 @@ def list_task_ids(self, project, domain, **kwargs): # noqa: E501 def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 - Fetch existing task definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_task_ids_with_http_info(project, domain, async_req=True) @@ -4924,7 +4844,6 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 - Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_tasks(id_project, id_domain, id_name, async_req=True) @@ -4953,7 +4872,6 @@ def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 - Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_tasks_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -5059,7 +4977,6 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): def list_tasks2(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 - Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_tasks2(id_project, id_domain, async_req=True) @@ -5088,7 +5005,6 @@ def list_tasks2(self, id_project, id_domain, **kwargs): # noqa: E501 def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 - Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_tasks2_with_http_info(id_project, id_domain, async_req=True) @@ -5190,7 +5106,6 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 - Fetch an existing workflow definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflow_ids(project, domain, async_req=True) @@ -5218,7 +5133,6 @@ def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 - Fetch an existing workflow definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflow_ids_with_http_info(project, domain, async_req=True) @@ -5317,7 +5231,6 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 - Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflows(id_project, id_domain, id_name, async_req=True) @@ -5346,7 +5259,6 @@ def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E50 def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 - Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflows_with_http_info(id_project, id_domain, id_name, async_req=True) @@ -5452,7 +5364,6 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs def list_workflows2(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 - Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflows2(id_project, id_domain, async_req=True) @@ -5481,7 +5392,6 @@ def list_workflows2(self, id_project, id_domain, **kwargs): # noqa: E501 def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 - Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.list_workflows2_with_http_info(id_project, id_domain, async_req=True) @@ -5583,7 +5493,6 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no def recover_execution(self, body, **kwargs): # noqa: E501 """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 - Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.recover_execution(body, async_req=True) @@ -5605,7 +5514,6 @@ def recover_execution(self, body, **kwargs): # noqa: E501 def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 """Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. See :ref:`ref_flyteidl.admin.ExecutionRecoverRequest` for more details. # noqa: E501 - Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.recover_execution_with_http_info(body, async_req=True) @@ -5682,7 +5590,6 @@ def recover_execution_with_http_info(self, body, **kwargs): # noqa: E501 def register_project(self, body, **kwargs): # noqa: E501 """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 - Register a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.register_project(body, async_req=True) @@ -5704,7 +5611,6 @@ def register_project(self, body, **kwargs): # noqa: E501 def register_project_with_http_info(self, body, **kwargs): # noqa: E501 """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 - Register a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.register_project_with_http_info(body, async_req=True) @@ -5781,7 +5687,6 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 def relaunch_execution(self, body, **kwargs): # noqa: E501 """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 - Relaunch a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.relaunch_execution(body, async_req=True) @@ -5803,7 +5708,6 @@ def relaunch_execution(self, body, **kwargs): # noqa: E501 def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 - Relaunch a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.relaunch_execution_with_http_info(body, async_req=True) @@ -5880,7 +5784,6 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Terminate the active workflow execution specified in the request. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.terminate_execution(id_project, id_domain, id_name, body, async_req=True) @@ -5905,7 +5808,6 @@ def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): def terminate_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Terminate the active workflow execution specified in the request. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.terminate_execution_with_http_info(id_project, id_domain, id_name, body, async_req=True) @@ -6003,7 +5905,6 @@ def terminate_execution_with_http_info(self, id_project, id_domain, id_name, bod def update_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Update execution belonging to project domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_execution(id_project, id_domain, id_name, body, async_req=True) @@ -6028,7 +5929,6 @@ def update_execution(self, id_project, id_domain, id_name, body, **kwargs): # n def update_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 - Update execution belonging to project domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_execution_with_http_info(id_project, id_domain, id_name, body, async_req=True) @@ -6126,7 +6026,6 @@ def update_execution_with_http_info(self, id_project, id_domain, id_name, body, def update_launch_plan(self, id_project, id_domain, id_name, id_version, body, **kwargs): # noqa: E501 """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_launch_plan(id_project, id_domain, id_name, id_version, body, async_req=True) @@ -6152,7 +6051,6 @@ def update_launch_plan(self, id_project, id_domain, id_name, id_version, body, * def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, body, **kwargs): # noqa: E501 """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 - Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_launch_plan_with_http_info(id_project, id_domain, id_name, id_version, body, async_req=True) @@ -6257,7 +6155,6 @@ def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_v def update_named_entity(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 - Update the fields associated with a NamedEntity # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_named_entity(resource_type, id_project, id_domain, id_name, body, async_req=True) @@ -6283,7 +6180,6 @@ def update_named_entity(self, resource_type, id_project, id_domain, id_name, bod def update_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 - Update the fields associated with a NamedEntity # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_named_entity_with_http_info(resource_type, id_project, id_domain, id_name, body, async_req=True) @@ -6388,7 +6284,6 @@ def update_named_entity_with_http_info(self, resource_type, id_project, id_domai def update_project(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 - Update a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project(id, body, async_req=True) @@ -6411,7 +6306,6 @@ def update_project(self, id, body, **kwargs): # noqa: E501 def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 - Update a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project_with_http_info(id, body, async_req=True) @@ -6495,7 +6389,6 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 def update_project_attributes(self, attributes_project, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 - Update the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project_attributes(attributes_project, body, async_req=True) @@ -6518,7 +6411,6 @@ def update_project_attributes(self, attributes_project, body, **kwargs): # noqa def update_project_attributes_with_http_info(self, attributes_project, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 - Update the customized resource attributes associated with a project # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project_attributes_with_http_info(attributes_project, body, async_req=True) @@ -6602,7 +6494,6 @@ def update_project_attributes_with_http_info(self, attributes_project, body, **k def update_project_domain_attributes(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Update the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project_domain_attributes(attributes_project, attributes_domain, body, async_req=True) @@ -6626,7 +6517,6 @@ def update_project_domain_attributes(self, attributes_project, attributes_domain def update_project_domain_attributes_with_http_info(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 - Update the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_project_domain_attributes_with_http_info(attributes_project, attributes_domain, body, async_req=True) @@ -6717,7 +6607,6 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at def update_workflow_attributes(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Update the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_workflow_attributes(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) @@ -6742,7 +6631,6 @@ def update_workflow_attributes(self, attributes_project, attributes_domain, attr def update_workflow_attributes_with_http_info(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 - Update the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an asynchronous HTTP request, please pass async_req=True >>> thread = api.update_workflow_attributes_with_http_info(attributes_project, attributes_domain, attributes_workflow, body, async_req=True) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index 14c35920fe0..26f0f636dcb 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -202,6 +202,7 @@ from flyteadmin.models.core_retry_strategy import CoreRetryStrategy from flyteadmin.models.core_runtime_metadata import CoreRuntimeMetadata from flyteadmin.models.core_scalar import CoreScalar +from flyteadmin.models.core_schema import CoreSchema from flyteadmin.models.core_schema_type import CoreSchemaType from flyteadmin.models.core_secret import CoreSecret from flyteadmin.models.core_security_context import CoreSecurityContext @@ -250,7 +251,6 @@ from flyteadmin.models.flyteidladmin_task_execution import FlyteidladminTaskExecution from flyteadmin.models.flyteidladmin_task_node_metadata import FlyteidladminTaskNodeMetadata from flyteadmin.models.flyteidladmin_workflow_node_metadata import FlyteidladminWorkflowNodeMetadata -from flyteadmin.models.flyteidlcore_schema import FlyteidlcoreSchema from flyteadmin.models.flyteidlevent_dynamic_workflow_node_metadata import FlyteidleventDynamicWorkflowNodeMetadata from flyteadmin.models.flyteidlevent_task_node_metadata import FlyteidleventTaskNodeMetadata from flyteadmin.models.flyteidlevent_workflow_node_metadata import FlyteidleventWorkflowNodeMetadata diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_scalar.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_scalar.py index 2de23ef35fc..ad4d2912904 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_scalar.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_scalar.py @@ -20,10 +20,10 @@ from flyteadmin.models.core_blob import CoreBlob # noqa: F401,E501 from flyteadmin.models.core_error import CoreError # noqa: F401,E501 from flyteadmin.models.core_primitive import CorePrimitive # noqa: F401,E501 +from flyteadmin.models.core_schema import CoreSchema # noqa: F401,E501 from flyteadmin.models.core_structured_dataset import CoreStructuredDataset # noqa: F401,E501 from flyteadmin.models.core_union import CoreUnion # noqa: F401,E501 from flyteadmin.models.core_void import CoreVoid # noqa: F401,E501 -from flyteadmin.models.flyteidlcore_schema import FlyteidlcoreSchema # noqa: F401,E501 from flyteadmin.models.protobuf_struct import ProtobufStruct # noqa: F401,E501 @@ -44,7 +44,7 @@ class CoreScalar(object): 'primitive': 'CorePrimitive', 'blob': 'CoreBlob', 'binary': 'CoreBinary', - 'schema': 'FlyteidlcoreSchema', + 'schema': 'CoreSchema', 'none_type': 'CoreVoid', 'error': 'CoreError', 'generic': 'ProtobufStruct', @@ -166,7 +166,7 @@ def schema(self): :return: The schema of this CoreScalar. # noqa: E501 - :rtype: FlyteidlcoreSchema + :rtype: CoreSchema """ return self._schema @@ -176,7 +176,7 @@ def schema(self, schema): :param schema: The schema of this CoreScalar. # noqa: E501 - :type: FlyteidlcoreSchema + :type: CoreSchema """ self._schema = schema diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlcore_schema.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_schema.py similarity index 80% rename from flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlcore_schema.py rename to flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_schema.py index 3d81400bfaf..4ede8e6c529 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/flyteidlcore_schema.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/core_schema.py @@ -19,7 +19,7 @@ from flyteadmin.models.core_schema_type import CoreSchemaType # noqa: F401,E501 -class FlyteidlcoreSchema(object): +class CoreSchema(object): """NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -43,7 +43,7 @@ class FlyteidlcoreSchema(object): } def __init__(self, uri=None, type=None): # noqa: E501 - """FlyteidlcoreSchema - a model defined in Swagger""" # noqa: E501 + """CoreSchema - a model defined in Swagger""" # noqa: E501 self._uri = None self._type = None @@ -56,20 +56,20 @@ def __init__(self, uri=None, type=None): # noqa: E501 @property def uri(self): - """Gets the uri of this FlyteidlcoreSchema. # noqa: E501 + """Gets the uri of this CoreSchema. # noqa: E501 - :return: The uri of this FlyteidlcoreSchema. # noqa: E501 + :return: The uri of this CoreSchema. # noqa: E501 :rtype: str """ return self._uri @uri.setter def uri(self, uri): - """Sets the uri of this FlyteidlcoreSchema. + """Sets the uri of this CoreSchema. - :param uri: The uri of this FlyteidlcoreSchema. # noqa: E501 + :param uri: The uri of this CoreSchema. # noqa: E501 :type: str """ @@ -77,20 +77,20 @@ def uri(self, uri): @property def type(self): - """Gets the type of this FlyteidlcoreSchema. # noqa: E501 + """Gets the type of this CoreSchema. # noqa: E501 - :return: The type of this FlyteidlcoreSchema. # noqa: E501 + :return: The type of this CoreSchema. # noqa: E501 :rtype: CoreSchemaType """ return self._type @type.setter def type(self, type): - """Sets the type of this FlyteidlcoreSchema. + """Sets the type of this CoreSchema. - :param type: The type of this FlyteidlcoreSchema. # noqa: E501 + :param type: The type of this CoreSchema. # noqa: E501 :type: CoreSchemaType """ @@ -117,7 +117,7 @@ def to_dict(self): )) else: result[attr] = value - if issubclass(FlyteidlcoreSchema, dict): + if issubclass(CoreSchema, dict): for key, value in self.items(): result[key] = value @@ -133,7 +133,7 @@ def __repr__(self): def __eq__(self, other): """Returns true if both objects are equal""" - if not isinstance(other, FlyteidlcoreSchema): + if not isinstance(other, CoreSchema): return False return self.__dict__ == other.__dict__ diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlcore_schema.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_core_schema.py similarity index 64% rename from flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlcore_schema.py rename to flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_core_schema.py index 44a0df3ee7a..fa3d7ce39bd 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_flyteidlcore_schema.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_core_schema.py @@ -16,12 +16,12 @@ import unittest import flyteadmin -from flyteadmin.models.flyteidlcore_schema import FlyteidlcoreSchema # noqa: E501 +from flyteadmin.models.core_schema import CoreSchema # noqa: E501 from flyteadmin.rest import ApiException -class TestFlyteidlcoreSchema(unittest.TestCase): - """FlyteidlcoreSchema unit test stubs""" +class TestCoreSchema(unittest.TestCase): + """CoreSchema unit test stubs""" def setUp(self): pass @@ -29,10 +29,10 @@ def setUp(self): def tearDown(self): pass - def testFlyteidlcoreSchema(self): - """Test FlyteidlcoreSchema""" + def testCoreSchema(self): + """Test CoreSchema""" # FIXME: construct object with mandatory attributes with example values - # model = flyteadmin.models.flyteidlcore_schema.FlyteidlcoreSchema() # noqa: E501 + # model = flyteadmin.models.core_schema.CoreSchema() # noqa: E501 pass diff --git a/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.py index 234061ce28d..3fc7dcbe1d8 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.py @@ -12,10 +12,9 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 -from protoc_gen_swagger.options import annotations_pb2 as protoc__gen__swagger_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/service/identity.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a,protoc-gen-swagger/options/annotations.proto\"\x11\n\x0fUserInfoRequest\"\xdf\x01\n\x10UserInfoResponse\x12\x18\n\x07subject\x18\x01 \x01(\tR\x07subject\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12-\n\x12preferred_username\x18\x03 \x01(\tR\x11preferredUsername\x12\x1d\n\ngiven_name\x18\x04 \x01(\tR\tgivenName\x12\x1f\n\x0b\x66\x61mily_name\x18\x05 \x01(\tR\nfamilyName\x12\x14\n\x05\x65mail\x18\x06 \x01(\tR\x05\x65mail\x12\x18\n\x07picture\x18\x07 \x01(\tR\x07picture2\x9d\x01\n\x0fIdentityService\x12\x89\x01\n\x08UserInfo\x12!.flyteidl.service.UserInfoRequest\x1a\".flyteidl.service.UserInfoResponse\"6\x92\x41(\x1a&Retrieves authenticated identity info.\x82\xd3\xe4\x93\x02\x05\x12\x03/meB\xbf\x01\n\x14\x63om.flyteidl.serviceB\rIdentityProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x66lyteidl/service/identity.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\"\x11\n\x0fUserInfoRequest\"\xdf\x01\n\x10UserInfoResponse\x12\x18\n\x07subject\x18\x01 \x01(\tR\x07subject\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12-\n\x12preferred_username\x18\x03 \x01(\tR\x11preferredUsername\x12\x1d\n\ngiven_name\x18\x04 \x01(\tR\tgivenName\x12\x1f\n\x0b\x66\x61mily_name\x18\x05 \x01(\tR\nfamilyName\x12\x14\n\x05\x65mail\x18\x06 \x01(\tR\x05\x65mail\x12\x18\n\x07picture\x18\x07 \x01(\tR\x07picture2q\n\x0fIdentityService\x12^\n\x08UserInfo\x12!.flyteidl.service.UserInfoRequest\x1a\".flyteidl.service.UserInfoResponse\"\x0b\x82\xd3\xe4\x93\x02\x05\x12\x03/meB\xbf\x01\n\x14\x63om.flyteidl.serviceB\rIdentityProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.identity_pb2', globals()) @@ -24,11 +23,11 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\rIdentityProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' _IDENTITYSERVICE.methods_by_name['UserInfo']._options = None - _IDENTITYSERVICE.methods_by_name['UserInfo']._serialized_options = b'\222A(\032&Retrieves authenticated identity info.\202\323\344\223\002\005\022\003/me' - _USERINFOREQUEST._serialized_start=129 - _USERINFOREQUEST._serialized_end=146 - _USERINFORESPONSE._serialized_start=149 - _USERINFORESPONSE._serialized_end=372 - _IDENTITYSERVICE._serialized_start=375 - _IDENTITYSERVICE._serialized_end=532 + _IDENTITYSERVICE.methods_by_name['UserInfo']._serialized_options = b'\202\323\344\223\002\005\022\003/me' + _USERINFOREQUEST._serialized_start=83 + _USERINFOREQUEST._serialized_end=100 + _USERINFORESPONSE._serialized_start=103 + _USERINFORESPONSE._serialized_end=326 + _IDENTITYSERVICE._serialized_start=328 + _IDENTITYSERVICE._serialized_end=441 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.pyi index eaec508491e..d0470d1ad34 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/identity_pb2.pyi @@ -1,5 +1,4 @@ from google.api import annotations_pb2 as _annotations_pb2 -from protoc_gen_swagger.options import annotations_pb2 as _annotations_pb2_1 from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Optional as _Optional diff --git a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py index c343cf1120f..75c24d101b6 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.py @@ -13,10 +13,9 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from flyteidl.admin import signal_pb2 as flyteidl_dot_admin_dot_signal__pb2 -from protoc_gen_swagger.options import annotations_pb2 as protoc__gen__swagger_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/service/signal.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x66lyteidl/admin/signal.proto\x1a,protoc-gen-swagger/options/annotations.proto2\xe7\x05\n\rSignalService\x12\x90\x01\n\x11GetOrCreateSignal\x12(.flyteidl.admin.SignalGetOrCreateRequest\x1a\x16.flyteidl.admin.Signal\"9\x92\x41\x36\x1a\x34Retrieve a signal, creating it if it does not exist.\x12\x8e\x02\n\x0bListSignals\x12!.flyteidl.admin.SignalListRequest\x1a\x1a.flyteidl.admin.SignalList\"\xbf\x01\x92\x41I\x1aGFetch existing signal definitions matching the input signal id filters.\x82\xd3\xe4\x93\x02m\x12k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xb1\x02\n\tSetSignal\x12 .flyteidl.admin.SignalSetRequest\x1a!.flyteidl.admin.SignalSetResponse\"\xde\x01\x92\x41\xc0\x01\x1a\x13Set a signal value.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/signalsB\xbd\x01\n\x14\x63om.flyteidl.serviceB\x0bSignalProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x66lyteidl/service/signal.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1b\x66lyteidl/admin/signal.proto2\x9a\x03\n\rSignalService\x12W\n\x11GetOrCreateSignal\x12(.flyteidl.admin.SignalGetOrCreateRequest\x1a\x16.flyteidl.admin.Signal\"\x00\x12\xc1\x01\n\x0bListSignals\x12!.flyteidl.admin.SignalListRequest\x1a\x1a.flyteidl.admin.SignalList\"s\x82\xd3\xe4\x93\x02m\x12k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12l\n\tSetSignal\x12 .flyteidl.admin.SignalSetRequest\x1a!.flyteidl.admin.SignalSetResponse\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/signalsB\xbd\x01\n\x14\x63om.flyteidl.serviceB\x0bSignalProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'flyteidl.service.signal_pb2', globals()) @@ -24,12 +23,10 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\024com.flyteidl.serviceB\013SignalProtoP\001Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\242\002\003FSX\252\002\020Flyteidl.Service\312\002\020Flyteidl\\Service\342\002\034Flyteidl\\Service\\GPBMetadata\352\002\021Flyteidl::Service' - _SIGNALSERVICE.methods_by_name['GetOrCreateSignal']._options = None - _SIGNALSERVICE.methods_by_name['GetOrCreateSignal']._serialized_options = b'\222A6\0324Retrieve a signal, creating it if it does not exist.' _SIGNALSERVICE.methods_by_name['ListSignals']._options = None - _SIGNALSERVICE.methods_by_name['ListSignals']._serialized_options = b'\222AI\032GFetch existing signal definitions matching the input signal id filters.\202\323\344\223\002m\022k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' + _SIGNALSERVICE.methods_by_name['ListSignals']._serialized_options = b'\202\323\344\223\002m\022k/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}' _SIGNALSERVICE.methods_by_name['SetSignal']._options = None - _SIGNALSERVICE.methods_by_name['SetSignal']._serialized_options = b'\222A\300\001\032\023Set a signal value.JB\n\003400\022;\n9Returned for bad request that may have failed validation.Je\n\003409\022^\n\\Returned for a request that references an identical entity that has already been registered.\202\323\344\223\002\024:\001*\"\017/api/v1/signals' - _SIGNALSERVICE._serialized_start=157 - _SIGNALSERVICE._serialized_end=900 + _SIGNALSERVICE.methods_by_name['SetSignal']._serialized_options = b'\202\323\344\223\002\024:\001*\"\017/api/v1/signals' + _SIGNALSERVICE._serialized_start=111 + _SIGNALSERVICE._serialized_end=521 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.pyi index 4539548e5b3..794a8d4d3f0 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2.pyi @@ -1,6 +1,5 @@ from google.api import annotations_pb2 as _annotations_pb2 from flyteidl.admin import signal_pb2 as _signal_pb2 -from protoc_gen_swagger.options import annotations_pb2 as _annotations_pb2_1 from google.protobuf import descriptor as _descriptor from typing import ClassVar as _ClassVar diff --git a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2_grpc.py index 78a8e4cb997..05c27fb0014 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/signal_pb2_grpc.py +++ b/flyteidl/gen/pb_python/flyteidl/service/signal_pb2_grpc.py @@ -38,6 +38,13 @@ class SignalServiceServicer(object): def GetOrCreateSignal(self, request, context): """Fetches or creates a :ref:`ref_flyteidl.admin.Signal`. + Purposefully left out an HTTP API for this RPC call. This is meant to idempotently retrieve + a signal, meaning the first call will create the signal and all subsequent calls will + fetch the existing signal. This is only useful during Flyte Workflow execution and therefore + is not exposed to mitigate unintended behavior. + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Retrieve a signal, creating it if it does not exist." + }; """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') diff --git a/flyteidl/generate_protos.sh b/flyteidl/generate_protos.sh index 509235c8635..b4f905ca7da 100755 --- a/flyteidl/generate_protos.sh +++ b/flyteidl/generate_protos.sh @@ -41,35 +41,35 @@ find gen/pb_python -type d -exec touch {}/__init__.py \; # Docs generated -# Remove any currently generated core docs file -ls -d protos/docs/core/* | grep -v index.rst | xargs rm -# Use list of proto files in core directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/core:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/restructuredtext.tmpl,core.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/core/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto - -# Remove any currently generated admin docs file -ls -d protos/docs/admin/* | grep -v index.rst | xargs rm -# Use list of proto files in admin directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[duration | wrappers]. -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/admin:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,admin.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/admin/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/wrappers.proto - -# Remove any currently generated datacatalog docs file -ls -d protos/docs/datacatalog/* | grep -v index.rst | xargs rm -# Use list of proto files in datacatalog directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/datacatalog:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,datacatalog.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/datacatalog/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto - -# Remove any currently generated event docs file -ls -d protos/docs/event/* | grep -v index.rst | xargs rm -# Use list of proto files in event directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/event:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,event.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/event/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto - -# Remove any currently generated plugins docs file -ls -d protos/docs/plugins/* | grep -v index.rst | xargs rm -# Use list of proto files in plugins directory to generate the RST files required for sphinx conversion -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/plugins:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,plugins.rst -I=protos -I=tmp/doc_gen_deps `ls protos/flyteidl/plugins/*.proto | xargs` - -# Remove any currently generated service docs file -ls -d protos/docs/service/* | grep -v index.rst | xargs rm -# Use list of proto files in service directory to generate the RST files required for sphinx conversion -docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/service:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,service.rst -I=protos -I=tmp/doc_gen_deps `ls protos/flyteidl/service/*.proto | xargs` +# # Remove any currently generated core docs file +# ls -d protos/docs/core/* | grep -v index.rst | xargs rm +# # Use list of proto files in core directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/core:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/restructuredtext.tmpl,core.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/core/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto + +# # Remove any currently generated admin docs file +# ls -d protos/docs/admin/* | grep -v index.rst | xargs rm +# # Use list of proto files in admin directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[duration | wrappers]. +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/admin:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,admin.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/admin/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/wrappers.proto + +# # Remove any currently generated datacatalog docs file +# ls -d protos/docs/datacatalog/* | grep -v index.rst | xargs rm +# # Use list of proto files in datacatalog directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/datacatalog:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,datacatalog.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/datacatalog/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto + +# # Remove any currently generated event docs file +# ls -d protos/docs/event/* | grep -v index.rst | xargs rm +# # Use list of proto files in event directory to generate the RST files required for sphinx conversion. Additionally generate for google.protobuf.[timestamp | struct | duration]. +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/event:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,event.rst -I=tmp/doc_gen_deps -I=protos `ls protos/flyteidl/event/*.proto | xargs` tmp/doc_gen_deps/google/protobuf/timestamp.proto tmp/doc_gen_deps/google/protobuf/duration.proto tmp/doc_gen_deps/google/protobuf/struct.proto + +# # Remove any currently generated plugins docs file +# ls -d protos/docs/plugins/* | grep -v index.rst | xargs rm +# # Use list of proto files in plugins directory to generate the RST files required for sphinx conversion +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/plugins:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,plugins.rst -I=protos -I=tmp/doc_gen_deps `ls protos/flyteidl/plugins/*.proto | xargs` + +# # Remove any currently generated service docs file +# ls -d protos/docs/service/* | grep -v index.rst | xargs rm +# # Use list of proto files in service directory to generate the RST files required for sphinx conversion +# docker run --rm -u $(id -u):$(id -g) -v $DIR/protos:/protos:ro -v $DIR/protos/docs/service:/out:rw -v $DIR/tmp/doc_gen_deps:/tmp/doc_gen_deps:ro $PROTOC_GEN_DOC_IMAGE --doc_opt=protos/docs/withoutscalar_restructuredtext.tmpl,service.rst -I=protos -I=tmp/doc_gen_deps `ls protos/flyteidl/service/*.proto | xargs` # Generate binary data from OpenAPI 2 file docker run --rm -u $(id -u):$(id -g) -v $DIR/gen/pb-go/flyteidl/service:/service --entrypoint go-bindata $LYFT_IMAGE -pkg service -o /service/openapi.go -prefix /service/ -modtime 1562572800 /service/admin.swagger.json diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 9884a456646..6905006bba5 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -20,7 +20,7 @@ import "flyteidl/admin/version.proto"; import "flyteidl/admin/common.proto"; import "flyteidl/admin/description_entity.proto"; import "flyteidl/core/identifier.proto"; -import "protoc-gen-swagger/options/annotations.proto"; +// import "protoc-gen-swagger/options/annotations.proto"; // The following defines an RPC service that is also served over HTTP via grpc-gateway. // Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go @@ -31,21 +31,21 @@ service AdminService { post: "/api/v1/tasks" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create and register a task definition." - responses: { - key: "400" - value: { - description: "Returned for bad request that may have failed validation." - } - } - responses: { - key: "409" - value: { - description: "Returned for a request that references an identical entity that has already been registered." - } - } - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create and register a task definition." + // responses: { + // key: "400" + // value: { + // description: "Returned for bad request that may have failed validation." + // } + // } + // responses: { + // key: "409" + // value: { + // description: "Returned for a request that references an identical entity that has already been registered." + // } + // } + // }; } // Fetch a :ref:`ref_flyteidl.admin.Task` definition. @@ -53,9 +53,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing task definition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing task definition." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. @@ -63,9 +63,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/task_ids/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing task definition identifiers matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing task definition identifiers matching input filters." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. @@ -76,9 +76,9 @@ service AdminService { get: "/api/v1/tasks/{id.project}/{id.domain}" } }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing task definitions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing task definitions matching input filters." + // }; } // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition @@ -87,21 +87,21 @@ service AdminService { post: "/api/v1/workflows" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create and register a workflow definition." - responses: { - key: "400" - value: { - description: "Returned for bad request that may have failed validation." - } - } - responses: { - key: "409" - value: { - description: "Returned for a request that references an identical entity that has already been registered." - } - } - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create and register a workflow definition." + // responses: { + // key: "400" + // value: { + // description: "Returned for bad request that may have failed validation." + // } + // } + // responses: { + // key: "409" + // value: { + // description: "Returned for a request that references an identical entity that has already been registered." + // } + // } + // }; } // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. @@ -109,9 +109,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing workflow definition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing workflow definition." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. @@ -119,9 +119,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/workflow_ids/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch an existing workflow definition identifiers matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch an existing workflow definition identifiers matching input filters." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. @@ -132,9 +132,9 @@ service AdminService { get: "/api/v1/workflows/{id.project}/{id.domain}" } }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing workflow definitions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing workflow definitions matching input filters." + // }; } // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition @@ -143,21 +143,21 @@ service AdminService { post: "/api/v1/launch_plans" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create and register a launch plan definition." - responses: { - key: "400" - value: { - description: "Returned for bad request that may have failed validation." - } - } - responses: { - key: "409" - value: { - description: "Returned for a request that references an identical entity that has already been registered." - } - } - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create and register a launch plan definition." + // responses: { + // key: "400" + // value: { + // description: "Returned for bad request that may have failed validation." + // } + // } + // responses: { + // key: "409" + // value: { + // description: "Returned for a request that references an identical entity that has already been registered." + // } + // } + // }; } // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. @@ -165,9 +165,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing launch plan definition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing launch plan definition." + // }; } // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. @@ -175,9 +175,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve the active launch plan version specified by input request filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the active launch plan version specified by input request filters." + // }; } // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. @@ -185,9 +185,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/active_launch_plans/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch the active launch plan versions specified by input request filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch the active launch plan versions specified by input request filters." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. @@ -195,9 +195,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/launch_plan_ids/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing launch plan definition identifiers matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing launch plan definition identifiers matching input filters." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. @@ -208,9 +208,9 @@ service AdminService { get: "/api/v1/launch_plans/{id.project}/{id.domain}" } }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing launch plan definitions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing launch plan definitions matching input filters." + // }; } // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. @@ -219,14 +219,14 @@ service AdminService { put: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update the status of an existing launch plan definition. " - "At most one launch plan version for a given {project, domain, name} can be active at a time. " - "If this call sets a launch plan to active and existing version is already active, the result of this call will be that the " - "formerly active launch plan will be made inactive and specified launch plan in this request will be made active. " - "In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. " - "If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update the status of an existing launch plan definition. " + // "At most one launch plan version for a given {project, domain, name} can be active at a time. " + // "If this call sets a launch plan to active and existing version is already active, the result of this call will be that the " + // "formerly active launch plan will be made inactive and specified launch plan in this request will be made active. " + // "In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. " + // "If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled." + // }; } // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` @@ -235,9 +235,9 @@ service AdminService { post: "/api/v1/executions" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create a workflow execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create a workflow execution." + // }; } // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` @@ -246,9 +246,9 @@ service AdminService { post: "/api/v1/executions/relaunch" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Relaunch a workflow execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Relaunch a workflow execution." + // }; } // Recreates a previously-run workflow execution that will only start executing from the last known failure point. @@ -261,13 +261,13 @@ service AdminService { post: "/api/v1/executions/recover" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Recreates a previously-run workflow execution that will only start executing from the last known failure point. " - "In Recover mode, users cannot change any input parameters or update the version of the execution. " - "This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, " - "downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again." + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Recreates a previously-run workflow execution that will only start executing from the last known failure point. " + // "In Recover mode, users cannot change any input parameters or update the version of the execution. " + // "This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, " + // "downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again." - }; + // }; } // Fetches a :ref:`ref_flyteidl.admin.Execution`. @@ -275,9 +275,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing workflow execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing workflow execution." + // }; } // Update execution belonging to project domain :ref:`ref_flyteidl.admin.Execution`. @@ -286,9 +286,9 @@ service AdminService { put: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update execution belonging to project domain." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update execution belonging to project domain." + // }; } // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. @@ -296,9 +296,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve input and output data from an existing workflow execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve input and output data from an existing workflow execution." + // }; }; // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. @@ -306,9 +306,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing workflow executions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing workflow executions matching input filters." + // }; } // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. @@ -317,9 +317,9 @@ service AdminService { delete: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Terminate the active workflow execution specified in the request." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Terminate the active workflow execution specified in the request." + // }; } // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. @@ -327,9 +327,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing node execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing node execution." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. @@ -337,9 +337,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing node executions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing node executions matching input filters." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. @@ -347,9 +347,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch child node executions launched by the specified task execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch child node executions launched by the specified task execution." + // }; } // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. @@ -357,9 +357,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve input and output data from an existing node execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve input and output data from an existing node execution." + // }; }; // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. @@ -368,9 +368,9 @@ service AdminService { post: "/api/v1/projects" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Register a project." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Register a project." + // }; } // Updates an existing :ref:`ref_flyteidl.admin.Project` @@ -381,9 +381,9 @@ service AdminService { put: "/api/v1/projects/{id}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update a project." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update a project." + // }; } // Fetches a list of :ref:`ref_flyteidl.admin.Project` @@ -391,9 +391,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/projects" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch registered projects." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch registered projects." + // }; } // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. @@ -402,9 +402,9 @@ service AdminService { post: "/api/v1/events/workflows" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create a workflow execution event recording a phase transition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create a workflow execution event recording a phase transition." + // }; } // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. @@ -413,9 +413,9 @@ service AdminService { post: "/api/v1/events/nodes" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create a node execution event recording a phase transition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create a node execution event recording a phase transition." + // }; } // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. @@ -424,9 +424,9 @@ service AdminService { post: "/api/v1/events/tasks" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Create a task execution event recording a phase transition." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Create a task execution event recording a phase transition." + // }; } // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. @@ -434,9 +434,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing task execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing task execution." + // }; } // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. @@ -444,9 +444,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing task executions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing task executions matching input filters." + // }; } @@ -455,9 +455,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve input and output data from an existing task execution." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve input and output data from an existing task execution." + // }; } // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -466,9 +466,9 @@ service AdminService { put: "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update the customized resource attributes associated with a project-domain combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update the customized resource attributes associated with a project-domain combination" + // }; } // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -476,9 +476,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/project_domain_attributes/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve the customized resource attributes associated with a project-domain combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the customized resource attributes associated with a project-domain combination" + // }; } // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -487,9 +487,9 @@ service AdminService { delete: "/api/v1/project_domain_attributes/{project}/{domain}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Delete the customized resource attributes associated with a project-domain combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Delete the customized resource attributes associated with a project-domain combination" + // }; } // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level @@ -498,9 +498,9 @@ service AdminService { put: "/api/v1/project_attributes/{attributes.project}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update the customized resource attributes associated with a project" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update the customized resource attributes associated with a project" + // }; } // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -508,9 +508,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/project_attributes/{project}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve the customized resource attributes associated with a project" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the customized resource attributes associated with a project" + // }; } // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. @@ -519,9 +519,9 @@ service AdminService { delete: "/api/v1/project_attributes/{project}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Delete the customized resource attributes associated with a project" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Delete the customized resource attributes associated with a project" + // }; } // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. rpc UpdateWorkflowAttributes (flyteidl.admin.WorkflowAttributesUpdateRequest) returns (flyteidl.admin.WorkflowAttributesUpdateResponse) { @@ -529,9 +529,9 @@ service AdminService { put: "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update the customized resource attributes associated with a project, domain and workflow combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update the customized resource attributes associated with a project, domain and workflow combination" + // }; } // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. @@ -539,9 +539,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve the customized resource attributes associated with a project, domain and workflow combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the customized resource attributes associated with a project, domain and workflow combination" + // }; } // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. @@ -550,9 +550,9 @@ service AdminService { delete: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Delete the customized resource attributes associated with a project, domain and workflow combination" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Delete the customized resource attributes associated with a project, domain and workflow combination" + // }; } // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. @@ -560,9 +560,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/matchable_attributes" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve a list of MatchableAttributesConfiguration objects." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a list of MatchableAttributesConfiguration objects." + // }; } // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. @@ -570,9 +570,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{project}/{domain}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain." + // }; } // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. @@ -580,9 +580,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve a NamedEntity object." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a NamedEntity object." + // }; } // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. @@ -591,18 +591,18 @@ service AdminService { put: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Update the fields associated with a NamedEntity" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Update the fields associated with a NamedEntity" + // }; } rpc GetVersion (flyteidl.admin.GetVersionRequest) returns (flyteidl.admin.GetVersionResponse) { option (google.api.http) = { get: "/api/v1/version" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve the Version (including the Build information) for FlyteAdmin service" - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve the Version (including the Build information) for FlyteAdmin service" + // }; } // Fetch a :ref:`ref_flyteidl.admin.DescriptionEntity` object. @@ -610,9 +610,9 @@ service AdminService { option (google.api.http) = { get: "/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve an existing description entity description." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve an existing description entity description." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.DescriptionEntity` definitions. @@ -623,8 +623,8 @@ service AdminService { get: "/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}" } }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing description entity definitions matching input filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing description entity definitions matching input filters." + // }; } } diff --git a/flyteidl/protos/flyteidl/service/auth.proto b/flyteidl/protos/flyteidl/service/auth.proto index 16a60f403d7..2d11e7fa35c 100644 --- a/flyteidl/protos/flyteidl/service/auth.proto +++ b/flyteidl/protos/flyteidl/service/auth.proto @@ -4,7 +4,7 @@ package flyteidl.service; option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service"; import "google/api/annotations.proto"; -import "protoc-gen-swagger/options/annotations.proto"; +// import "protoc-gen-swagger/options/annotations.proto"; message OAuth2MetadataRequest {} @@ -76,9 +76,9 @@ service AuthMetadataService { option (google.api.http) = { get: "/.well-known/oauth-authorization-server" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieves OAuth2 authorization server metadata. This endpoint is anonymously accessible." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieves OAuth2 authorization server metadata. This endpoint is anonymously accessible." + // }; } // Anonymously accessible. Retrieves the client information clients should use when initiating OAuth2 authorization @@ -87,8 +87,8 @@ service AuthMetadataService { option (google.api.http) = { get: "/config/v1/flyte_client" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieves public flyte client info. This endpoint is anonymously accessible." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieves public flyte client info. This endpoint is anonymously accessible." + // }; } } diff --git a/flyteidl/protos/flyteidl/service/dataproxy.proto b/flyteidl/protos/flyteidl/service/dataproxy.proto index d811f4d7c35..3b6bab4738e 100644 --- a/flyteidl/protos/flyteidl/service/dataproxy.proto +++ b/flyteidl/protos/flyteidl/service/dataproxy.proto @@ -4,7 +4,7 @@ package flyteidl.service; option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service"; import "google/api/annotations.proto"; -import "protoc-gen-swagger/options/annotations.proto"; +// import "protoc-gen-swagger/options/annotations.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "flyteidl/core/identifier.proto"; @@ -110,9 +110,9 @@ service DataProxyService { post: "/api/v1/dataproxy/artifact_urn" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Creates a write-only http location that is accessible for tasks at runtime." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Creates a write-only http location that is accessible for tasks at runtime." + // }; } // CreateDownloadLocation creates a signed url to download artifacts. @@ -121,9 +121,9 @@ service DataProxyService { option (google.api.http) = { get: "/api/v1/dataproxy/artifact_urn" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Deprecated: Please use CreateDownloadLink instead. Creates a read-only http location that is accessible for tasks at runtime." + // }; } // CreateDownloadLocation creates a signed url to download artifacts. @@ -132,8 +132,8 @@ service DataProxyService { post: "/api/v1/dataproxy/artifact_link" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Creates a read-only http location that is accessible for tasks at runtime." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Creates a read-only http location that is accessible for tasks at runtime." + // }; } } diff --git a/flyteidl/protos/flyteidl/service/identity.proto b/flyteidl/protos/flyteidl/service/identity.proto index d51168cb958..574db512bf2 100644 --- a/flyteidl/protos/flyteidl/service/identity.proto +++ b/flyteidl/protos/flyteidl/service/identity.proto @@ -4,7 +4,7 @@ package flyteidl.service; option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service"; import "google/api/annotations.proto"; -import "protoc-gen-swagger/options/annotations.proto"; +// import "protoc-gen-swagger/options/annotations.proto"; message UserInfoRequest {} @@ -40,8 +40,8 @@ service IdentityService { option (google.api.http) = { get: "/me" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieves authenticated identity info." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieves authenticated identity info." + // }; } } diff --git a/flyteidl/protos/flyteidl/service/signal.proto b/flyteidl/protos/flyteidl/service/signal.proto index af6c7e61fba..6344407157c 100644 --- a/flyteidl/protos/flyteidl/service/signal.proto +++ b/flyteidl/protos/flyteidl/service/signal.proto @@ -5,7 +5,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service"; import "google/api/annotations.proto"; import "flyteidl/admin/signal.proto"; -import "protoc-gen-swagger/options/annotations.proto"; +// import "protoc-gen-swagger/options/annotations.proto"; // SignalService defines an RPC Service that may create, update, and retrieve signal(s). service SignalService { @@ -15,9 +15,9 @@ service SignalService { // a signal, meaning the first call will create the signal and all subsequent calls will // fetch the existing signal. This is only useful during Flyte Workflow execution and therefore // is not exposed to mitigate unintended behavior. - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Retrieve a signal, creating it if it does not exist." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Retrieve a signal, creating it if it does not exist." + // }; } // Fetch a list of :ref:`ref_flyteidl.admin.Signal` definitions. @@ -25,9 +25,9 @@ service SignalService { option (google.api.http) = { get: "/api/v1/signals/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Fetch existing signal definitions matching the input signal id filters." - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Fetch existing signal definitions matching the input signal id filters." + // }; } // Sets the value on a :ref:`ref_flyteidl.admin.Signal` definition @@ -36,20 +36,20 @@ service SignalService { post: "/api/v1/signals" body: "*" }; - option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { - description: "Set a signal value." - responses: { - key: "400" - value: { - description: "Returned for bad request that may have failed validation." - } - } - responses: { - key: "409" - value: { - description: "Returned for a request that references an identical entity that has already been registered." - } - } - }; + // option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + // description: "Set a signal value." + // responses: { + // key: "400" + // value: { + // description: "Returned for bad request that may have failed validation." + // } + // } + // responses: { + // key: "409" + // value: { + // description: "Returned for a request that references an identical entity that has already been registered." + // } + // } + // }; } }