@evalops/sdk-ts 0.1.67 → 0.1.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1918,6 +1918,360 @@ export type ListScenarioRunsResponse = Message<"fermata.v1.ListScenarioRunsRespo
1918
1918
  * Use `create(ListScenarioRunsResponseSchema)` to create a new message.
1919
1919
  */
1920
1920
  export declare const ListScenarioRunsResponseSchema: GenMessage<ListScenarioRunsResponse>;
1921
+ /**
1922
+ * @generated from message fermata.v1.GetEvaluationObservabilityDashboardRequest
1923
+ */
1924
+ export type GetEvaluationObservabilityDashboardRequest = Message<"fermata.v1.GetEvaluationObservabilityDashboardRequest"> & {
1925
+ /**
1926
+ * @generated from field: string organization_id = 1;
1927
+ */
1928
+ organizationId: string;
1929
+ /**
1930
+ * @generated from field: string workspace_id = 2;
1931
+ */
1932
+ workspaceId: string;
1933
+ /**
1934
+ * @generated from field: int32 days = 3;
1935
+ */
1936
+ days: number;
1937
+ /**
1938
+ * @generated from field: int32 limit = 4;
1939
+ */
1940
+ limit: number;
1941
+ };
1942
+ /**
1943
+ * Describes the message fermata.v1.GetEvaluationObservabilityDashboardRequest.
1944
+ * Use `create(GetEvaluationObservabilityDashboardRequestSchema)` to create a new message.
1945
+ */
1946
+ export declare const GetEvaluationObservabilityDashboardRequestSchema: GenMessage<GetEvaluationObservabilityDashboardRequest>;
1947
+ /**
1948
+ * @generated from message fermata.v1.EvaluationObservabilitySummary
1949
+ */
1950
+ export type EvaluationObservabilitySummary = Message<"fermata.v1.EvaluationObservabilitySummary"> & {
1951
+ /**
1952
+ * @generated from field: int32 total_runs = 1;
1953
+ */
1954
+ totalRuns: number;
1955
+ /**
1956
+ * @generated from field: int32 total_results = 2;
1957
+ */
1958
+ totalResults: number;
1959
+ /**
1960
+ * @generated from field: int32 failed_results = 3;
1961
+ */
1962
+ failedResults: number;
1963
+ /**
1964
+ * @generated from field: double average_score = 4;
1965
+ */
1966
+ averageScore: number;
1967
+ /**
1968
+ * @generated from field: double pass_rate = 5;
1969
+ */
1970
+ passRate: number;
1971
+ /**
1972
+ * @generated from field: common.v1.Money total_cost = 6;
1973
+ */
1974
+ totalCost?: Money | undefined;
1975
+ /**
1976
+ * @generated from field: double average_latency_ms = 7;
1977
+ */
1978
+ averageLatencyMs: number;
1979
+ /**
1980
+ * @generated from field: int64 total_tokens = 8;
1981
+ */
1982
+ totalTokens: bigint;
1983
+ /**
1984
+ * @generated from field: int32 regression_alert_count = 9;
1985
+ */
1986
+ regressionAlertCount: number;
1987
+ /**
1988
+ * @generated from field: repeated common.v1.Money total_costs_by_currency = 10;
1989
+ */
1990
+ totalCostsByCurrency: Money[];
1991
+ };
1992
+ /**
1993
+ * Describes the message fermata.v1.EvaluationObservabilitySummary.
1994
+ * Use `create(EvaluationObservabilitySummarySchema)` to create a new message.
1995
+ */
1996
+ export declare const EvaluationObservabilitySummarySchema: GenMessage<EvaluationObservabilitySummary>;
1997
+ /**
1998
+ * @generated from message fermata.v1.EvaluationRecentRunSummary
1999
+ */
2000
+ export type EvaluationRecentRunSummary = Message<"fermata.v1.EvaluationRecentRunSummary"> & {
2001
+ /**
2002
+ * @generated from field: string scenario_run_id = 1;
2003
+ */
2004
+ scenarioRunId: string;
2005
+ /**
2006
+ * @generated from field: string scenario_id = 2;
2007
+ */
2008
+ scenarioId: string;
2009
+ /**
2010
+ * @generated from field: int32 total_results = 3;
2011
+ */
2012
+ totalResults: number;
2013
+ /**
2014
+ * @generated from field: int32 completed_results = 4;
2015
+ */
2016
+ completedResults: number;
2017
+ /**
2018
+ * @generated from field: int32 failed_results = 5;
2019
+ */
2020
+ failedResults: number;
2021
+ /**
2022
+ * @generated from field: double average_score = 6;
2023
+ */
2024
+ averageScore: number;
2025
+ /**
2026
+ * @generated from field: common.v1.Money total_cost = 7;
2027
+ */
2028
+ totalCost?: Money | undefined;
2029
+ /**
2030
+ * @generated from field: common.v1.Money average_cost = 8;
2031
+ */
2032
+ averageCost?: Money | undefined;
2033
+ /**
2034
+ * @generated from field: double average_latency_ms = 9;
2035
+ */
2036
+ averageLatencyMs: number;
2037
+ /**
2038
+ * @generated from field: int64 total_tokens = 10;
2039
+ */
2040
+ totalTokens: bigint;
2041
+ /**
2042
+ * @generated from field: google.protobuf.Timestamp started_at = 11;
2043
+ */
2044
+ startedAt?: Timestamp | undefined;
2045
+ /**
2046
+ * @generated from field: google.protobuf.Timestamp completed_at = 12;
2047
+ */
2048
+ completedAt?: Timestamp | undefined;
2049
+ /**
2050
+ * @generated from field: string trace_id = 13;
2051
+ */
2052
+ traceId: string;
2053
+ /**
2054
+ * @generated from field: bool objective_achieved = 14;
2055
+ */
2056
+ objectiveAchieved: boolean;
2057
+ };
2058
+ /**
2059
+ * Describes the message fermata.v1.EvaluationRecentRunSummary.
2060
+ * Use `create(EvaluationRecentRunSummarySchema)` to create a new message.
2061
+ */
2062
+ export declare const EvaluationRecentRunSummarySchema: GenMessage<EvaluationRecentRunSummary>;
2063
+ /**
2064
+ * @generated from message fermata.v1.EvaluationRegressionAlert
2065
+ */
2066
+ export type EvaluationRegressionAlert = Message<"fermata.v1.EvaluationRegressionAlert"> & {
2067
+ /**
2068
+ * @generated from field: string id = 1;
2069
+ */
2070
+ id: string;
2071
+ /**
2072
+ * @generated from field: string scenario_id = 2;
2073
+ */
2074
+ scenarioId: string;
2075
+ /**
2076
+ * @generated from field: string scenario_run_id = 3;
2077
+ */
2078
+ scenarioRunId: string;
2079
+ /**
2080
+ * @generated from field: string severity = 4;
2081
+ */
2082
+ severity: string;
2083
+ /**
2084
+ * @generated from field: string message = 5;
2085
+ */
2086
+ message: string;
2087
+ /**
2088
+ * @generated from field: double regression_percentage = 6;
2089
+ */
2090
+ regressionPercentage: number;
2091
+ /**
2092
+ * @generated from field: string baseline_scenario_run_id = 7;
2093
+ */
2094
+ baselineScenarioRunId: string;
2095
+ /**
2096
+ * @generated from field: double average_latency_ms = 8;
2097
+ */
2098
+ averageLatencyMs: number;
2099
+ /**
2100
+ * @generated from field: common.v1.Money total_cost = 9;
2101
+ */
2102
+ totalCost?: Money | undefined;
2103
+ /**
2104
+ * @generated from field: string environment = 10;
2105
+ */
2106
+ environment: string;
2107
+ /**
2108
+ * @generated from field: bool statistically_significant = 11;
2109
+ */
2110
+ statisticallySignificant: boolean;
2111
+ /**
2112
+ * @generated from field: double p_value = 12;
2113
+ */
2114
+ pValue: number;
2115
+ /**
2116
+ * @generated from field: repeated string degraded_metrics = 13;
2117
+ */
2118
+ degradedMetrics: string[];
2119
+ /**
2120
+ * @generated from field: google.protobuf.Timestamp recorded_at = 14;
2121
+ */
2122
+ recordedAt?: Timestamp | undefined;
2123
+ };
2124
+ /**
2125
+ * Describes the message fermata.v1.EvaluationRegressionAlert.
2126
+ * Use `create(EvaluationRegressionAlertSchema)` to create a new message.
2127
+ */
2128
+ export declare const EvaluationRegressionAlertSchema: GenMessage<EvaluationRegressionAlert>;
2129
+ /**
2130
+ * @generated from message fermata.v1.GetEvaluationObservabilityDashboardResponse
2131
+ */
2132
+ export type GetEvaluationObservabilityDashboardResponse = Message<"fermata.v1.GetEvaluationObservabilityDashboardResponse"> & {
2133
+ /**
2134
+ * @generated from field: fermata.v1.EvaluationObservabilitySummary summary = 1;
2135
+ */
2136
+ summary?: EvaluationObservabilitySummary | undefined;
2137
+ /**
2138
+ * @generated from field: repeated fermata.v1.EvaluationRecentRunSummary recent_runs = 2;
2139
+ */
2140
+ recentRuns: EvaluationRecentRunSummary[];
2141
+ /**
2142
+ * @generated from field: repeated fermata.v1.EvaluationRegressionAlert regression_alerts = 3;
2143
+ */
2144
+ regressionAlerts: EvaluationRegressionAlert[];
2145
+ };
2146
+ /**
2147
+ * Describes the message fermata.v1.GetEvaluationObservabilityDashboardResponse.
2148
+ * Use `create(GetEvaluationObservabilityDashboardResponseSchema)` to create a new message.
2149
+ */
2150
+ export declare const GetEvaluationObservabilityDashboardResponseSchema: GenMessage<GetEvaluationObservabilityDashboardResponse>;
2151
+ /**
2152
+ * @generated from message fermata.v1.GetEvaluationRunMetricsRequest
2153
+ */
2154
+ export type GetEvaluationRunMetricsRequest = Message<"fermata.v1.GetEvaluationRunMetricsRequest"> & {
2155
+ /**
2156
+ * @generated from field: string organization_id = 1;
2157
+ */
2158
+ organizationId: string;
2159
+ /**
2160
+ * @generated from field: string workspace_id = 2;
2161
+ */
2162
+ workspaceId: string;
2163
+ /**
2164
+ * @generated from field: string run_id = 3;
2165
+ */
2166
+ runId: string;
2167
+ };
2168
+ /**
2169
+ * Describes the message fermata.v1.GetEvaluationRunMetricsRequest.
2170
+ * Use `create(GetEvaluationRunMetricsRequestSchema)` to create a new message.
2171
+ */
2172
+ export declare const GetEvaluationRunMetricsRequestSchema: GenMessage<GetEvaluationRunMetricsRequest>;
2173
+ /**
2174
+ * @generated from message fermata.v1.EvaluationRunMetricsSummary
2175
+ */
2176
+ export type EvaluationRunMetricsSummary = Message<"fermata.v1.EvaluationRunMetricsSummary"> & {
2177
+ /**
2178
+ * @generated from field: int32 result_count = 1;
2179
+ */
2180
+ resultCount: number;
2181
+ /**
2182
+ * @generated from field: int32 failed_results = 2;
2183
+ */
2184
+ failedResults: number;
2185
+ /**
2186
+ * @generated from field: double average_score = 3;
2187
+ */
2188
+ averageScore: number;
2189
+ /**
2190
+ * @generated from field: common.v1.Money total_cost = 4;
2191
+ */
2192
+ totalCost?: Money | undefined;
2193
+ /**
2194
+ * @generated from field: common.v1.Money average_cost = 5;
2195
+ */
2196
+ averageCost?: Money | undefined;
2197
+ /**
2198
+ * @generated from field: double average_latency_ms = 6;
2199
+ */
2200
+ averageLatencyMs: number;
2201
+ /**
2202
+ * @generated from field: int64 p95_latency_ms = 7;
2203
+ */
2204
+ p95LatencyMs: bigint;
2205
+ /**
2206
+ * @generated from field: int64 total_tokens = 8;
2207
+ */
2208
+ totalTokens: bigint;
2209
+ };
2210
+ /**
2211
+ * Describes the message fermata.v1.EvaluationRunMetricsSummary.
2212
+ * Use `create(EvaluationRunMetricsSummarySchema)` to create a new message.
2213
+ */
2214
+ export declare const EvaluationRunMetricsSummarySchema: GenMessage<EvaluationRunMetricsSummary>;
2215
+ /**
2216
+ * @generated from message fermata.v1.EvaluationRunResultMetrics
2217
+ */
2218
+ export type EvaluationRunResultMetrics = Message<"fermata.v1.EvaluationRunResultMetrics"> & {
2219
+ /**
2220
+ * @generated from field: string assertion_id = 1;
2221
+ */
2222
+ assertionId: string;
2223
+ /**
2224
+ * @generated from field: bool passed = 2;
2225
+ */
2226
+ passed: boolean;
2227
+ /**
2228
+ * @generated from field: double score = 3;
2229
+ */
2230
+ score: number;
2231
+ /**
2232
+ * @generated from field: string actual = 4;
2233
+ */
2234
+ actual: string;
2235
+ /**
2236
+ * @generated from field: string message = 5;
2237
+ */
2238
+ message: string;
2239
+ /**
2240
+ * @generated from field: google.protobuf.Struct metadata = 6;
2241
+ */
2242
+ metadata?: JsonObject | undefined;
2243
+ /**
2244
+ * @generated from field: google.protobuf.Timestamp created_at = 7;
2245
+ */
2246
+ createdAt?: Timestamp | undefined;
2247
+ };
2248
+ /**
2249
+ * Describes the message fermata.v1.EvaluationRunResultMetrics.
2250
+ * Use `create(EvaluationRunResultMetricsSchema)` to create a new message.
2251
+ */
2252
+ export declare const EvaluationRunResultMetricsSchema: GenMessage<EvaluationRunResultMetrics>;
2253
+ /**
2254
+ * @generated from message fermata.v1.GetEvaluationRunMetricsResponse
2255
+ */
2256
+ export type GetEvaluationRunMetricsResponse = Message<"fermata.v1.GetEvaluationRunMetricsResponse"> & {
2257
+ /**
2258
+ * @generated from field: string scenario_run_id = 1;
2259
+ */
2260
+ scenarioRunId: string;
2261
+ /**
2262
+ * @generated from field: fermata.v1.EvaluationRunMetricsSummary summary = 2;
2263
+ */
2264
+ summary?: EvaluationRunMetricsSummary | undefined;
2265
+ /**
2266
+ * @generated from field: repeated fermata.v1.EvaluationRunResultMetrics results = 3;
2267
+ */
2268
+ results: EvaluationRunResultMetrics[];
2269
+ };
2270
+ /**
2271
+ * Describes the message fermata.v1.GetEvaluationRunMetricsResponse.
2272
+ * Use `create(GetEvaluationRunMetricsResponseSchema)` to create a new message.
2273
+ */
2274
+ export declare const GetEvaluationRunMetricsResponseSchema: GenMessage<GetEvaluationRunMetricsResponse>;
1921
2275
  /**
1922
2276
  * @generated from message fermata.v1.DiagnosticFinding
1923
2277
  */
@@ -3187,6 +3541,22 @@ export declare const FermataService: GenService<{
3187
3541
  input: typeof ListScenarioRunsRequestSchema;
3188
3542
  output: typeof ListScenarioRunsResponseSchema;
3189
3543
  };
3544
+ /**
3545
+ * @generated from rpc fermata.v1.FermataService.GetEvaluationObservabilityDashboard
3546
+ */
3547
+ getEvaluationObservabilityDashboard: {
3548
+ methodKind: "unary";
3549
+ input: typeof GetEvaluationObservabilityDashboardRequestSchema;
3550
+ output: typeof GetEvaluationObservabilityDashboardResponseSchema;
3551
+ };
3552
+ /**
3553
+ * @generated from rpc fermata.v1.FermataService.GetEvaluationRunMetrics
3554
+ */
3555
+ getEvaluationRunMetrics: {
3556
+ methodKind: "unary";
3557
+ input: typeof GetEvaluationRunMetricsRequestSchema;
3558
+ output: typeof GetEvaluationRunMetricsResponseSchema;
3559
+ };
3190
3560
  /**
3191
3561
  * @generated from rpc fermata.v1.FermataService.ExplainScenarioRun
3192
3562
  */
@@ -11,7 +11,7 @@ import { file_traces_v1_traces } from "../../traces/v1/traces_pb.js";
11
11
  /**
12
12
  * Describes the file fermata/v1/fermata.proto.
13
13
  */
14
- export const file_fermata_v1_fermata = /*@__PURE__*/ fileDesc("ChhmZXJtYXRhL3YxL2Zlcm1hdGEucHJvdG8SCmZlcm1hdGEudjEiqwIKCVRlc3RTdWl0ZRIKCgJpZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSHQoMd29ya3NwYWNlX2lkGAMgASgJQge6SARyAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBSABKAkSIwoFY2FzZXMYBiADKAsyFC5mZXJtYXRhLnYxLlRlc3RDYXNlEikKCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKrAQoIVGVzdENhc2USCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARINCgVpbnB1dBgDIAEoCRIXCg9leHBlY3RlZF9vdXRwdXQYBCABKAkSKQoKYXNzZXJ0aW9ucxgFIAMoCzIVLmZlcm1hdGEudjEuQXNzZXJ0aW9uEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKsAQoJQXNzZXJ0aW9uEgoKAmlkGAEgASgJEjEKBGtpbmQYAiABKA4yGS5mZXJtYXRhLnYxLkFzc2VydGlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi0AEKD0N1c3RvbUV2YWx1YXRvchIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBnNvdXJjZRgCIAEoCUIHukgEcgIQARIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9vcmdhbml6YXRpb25faWQYBSABKAkSFAoMd29ya3NwYWNlX2lkGAYgASgJIqMDCgVKdWRnZRIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgMIAEoCRIUCgx3b3Jrc3BhY2VfaWQYDSABKAkiugYKCFNjZW5hcmlvEgoKAmlkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIdCgx3b3Jrc3BhY2VfaWQYAyABKAlCB7pIBHICEAESFQoEbmFtZRgEIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgFIAEoCRIoCglvYmplY3RpdmUYBiABKAsyFS5mZXJtYXRhLnYxLk9iamVjdGl2ZRItCgxhZ2VudF9jb25maWcYByABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAggASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAkgASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAogASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYDCABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGA0gASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDiADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA8gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgQIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYESABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYEiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIu8BCglPYmplY3RpdmUSHAoLZGVzY3JpcHRpb24YASABKAlCB7pIBHICEAESNgoQc3VjY2Vzc19jcml0ZXJpYRgCIAMoCzIcLmZlcm1hdGEudjEuU3VjY2Vzc0NyaXRlcmlvbhJACg5leHBlY3RlZF9zdGF0ZRgDIAMoCzIoLmZlcm1hdGEudjEuT2JqZWN0aXZlLkV4cGVjdGVkU3RhdGVFbnRyeRIUCgxvYmplY3RpdmVfaWQYBCABKAkaNAoSRXhwZWN0ZWRTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirwEKEFN1Y2Nlc3NDcml0ZXJpb24SCgoCaWQYASABKAkSHAoLZGVzY3JpcHRpb24YAiABKAlCB7pIBHICEAESDgoGbWV0cmljGAMgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAQgASgJEh4KBndlaWdodBgFIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqUBCgtBZ2VudENvbmZpZxIQCghhZ2VudF9pZBgBIAEoCRINCgVtb2RlbBgCIAEoCRIRCgl0b29sX3JlZnMYAyADKAkSGQoRcGVybWlzc2lvbl9zY29wZXMYBCADKAkSHAoUZ292ZXJuYW5jZV9wb2xpY3lfaWQYBSABKAkSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IvcBChNTY2VuYXJpb0Vudmlyb25tZW50EjsKBGtpbmQYASABKA4yIy5mZXJtYXRhLnYxLlNjZW5hcmlvRW52aXJvbm1lbnRLaW5kQgi6SAWCAQIQARIjCgV0b29scxgCIAMoCzIULmZlcm1hdGEudjEuTW9ja1Rvb2wSKwoJZW5kcG9pbnRzGAMgAygLMhguZmVybWF0YS52MS5Nb2NrRW5kcG9pbnQSFQoNc2VlZF9kYXRhX3JlZhgEIAEoCRIPCgdzYW5kYm94GAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK7AQoITW9ja1Rvb2wSFQoEbmFtZRgBIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCHJlc3BvbnNlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqQEKDE1vY2tFbmRwb2ludBIOCgZtZXRob2QYASABKAkSFQoEcGF0aBgCIAEoCUIHukgEcgIQARIcCgtzdGF0dXNfY29kZRgDIAEoBUIHukgEGgIoABIpCghyZXNwb25zZRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IocCCg1Vc2VyU2ltdWxhdG9yEg8KB3BlcnNvbmEYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJEj0KCHN0cmF0ZWd5GAMgASgOMiEuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yU3RyYXRlZ3lCCLpIBYIBAhABEg0KBW1vZGVsGAQgASgJEhoKCW1heF90dXJucxgFIAEoBUIHukgEGgIoABIbChN2ZXJpZnlfYWdlbnRfY2xhaW1zGAYgASgIEh0KFXJlcXVlc3RfY2xhcmlmaWNhdGlvbhgHIAEoCBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QixQEKEE91dGNvbWVDcml0ZXJpb24SCgoCaWQYASABKAkSOAoEa2luZBgCIAEoDjIgLmZlcm1hdGEudjEuT3V0Y29tZUNyaXRlcmlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRIeCgZ3ZWlnaHQYBSABKAFCDrpICxIJKQAAAAAAAAAAEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLcAgoTR292ZXJuYW5jZUFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uVHlwZUIIukgFggECEAESOwoTZXhwZWN0ZWRfcmlza19sZXZlbBgDIAEoDjIULmNvbW1vbi52MS5SaXNrTGV2ZWxCCLpIBYIBAhABEhcKD3Nob3VsZF9lc2NhbGF0ZRgEIAEoCBIhChlleHBlY3RlZF9hcHByb3ZhbF9vdXRjb21lGAUgASgJEhsKE2FsbG93ZWRfZGF0YV9zY29wZXMYBiADKAkSGgoSZGVuaWVkX2RhdGFfc2NvcGVzGAcgAygJEh8KF2V4cGVjdGVkX3BpaV9jYXRlZ29yaWVzGAggAygJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLqAQoTRGVsZWdhdGlvbkFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5EZWxlZ2F0aW9uQXNzZXJ0aW9uVHlwZUIIukgFggECEAESGQoRZXhwZWN0ZWRfYWdlbnRfaWQYAyABKAkSIAoPbWF4X2NoYWluX2RlcHRoGAQgASgFQge6SAQaAigAEiIKCG1heF9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKIBAoLU2NlbmFyaW9SdW4SCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDiABKAkisQYKDlNjZW5hcmlvUmVzdWx0EhoKEm9iamVjdGl2ZV9hY2hpZXZlZBgBIAEoCBIZChFvYmplY3RpdmVfc3VtbWFyeRgCIAEoCRIcCgt0b3RhbF9zdGVwcxgDIAEoBUIHukgEGgIoABIcCgttb2RlbF9jYWxscxgEIAEoBUIHukgEGgIoABIbCgp0b29sX2NhbGxzGAUgASgFQge6SAQaAigAEiIKEWFwcHJvdmFsX3JlcXVlc3RzGAYgASgFQge6SAQaAigAEiIKEWRlbGVnYXRpb25fZXZlbnRzGAcgASgFQge6SAQaAigAEiAKD3JlY292ZXJ5X2V2ZW50cxgIIAEoBUIHukgEGgIoABI+ChFhc3NlcnRpb25fcmVzdWx0cxgJIAMoCzIjLmZlcm1hdGEudjEuU2NlbmFyaW9Bc3NlcnRpb25SZXN1bHQSLwoKZ292ZXJuYW5jZRgKIAEoCzIbLmZlcm1hdGEudjEuR292ZXJuYW5jZVNjb3JlEiwKCWVjb25vbWljcxgLIAEoCzIZLmZlcm1hdGEudjEuRWNvbm9taWNTY29yZRIhCglwYXNzX2F0X2sYDCABKAFCDrpICxIJKQAAAAAAAAAAEi8KCmRlbGVnYXRpb24YDSABKAsyGy5mZXJtYXRhLnYxLkRlbGVnYXRpb25TY29yZRIkCgp0b3RhbF9jb3N0GA4gASgLMhAuY29tbW9uLnYxLk1vbmV5EjEKDnRvdGFsX2R1cmF0aW9uGA8gASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEikKCG1ldGFkYXRhGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIjCgp0cmFqZWN0b3J5GBEgAygLMg8udHJhY2VzLnYxLlNwYW4SJQoNdHJhamVjdG9yeV9mMRgSIAEoAUIOukgLEgkpAAAAAAAAAAASNgoedHJhamVjdG9yeV9lZGl0X2Rpc3RhbmNlX3Njb3JlGBMgASgBQg66SAsSCSkAAAAAAAAAABIqCgVkcmlmdBgUIAEoCzIbLmZlcm1hdGEudjEuRHJpZnRDb21wYXJpc29uIpoBChdTY2VuYXJpb0Fzc2VydGlvblJlc3VsdBIUCgxhc3NlcnRpb25faWQYASABKAkSDgoGcGFzc2VkGAIgASgIEg0KBXNjb3JlGAMgASgBEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKPAgoPR292ZXJuYW5jZVNjb3JlEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAEgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgCIAEoAUIOukgLEgkpAAAAAAAAAAASKQoRcG9saWN5X2NvbXBsaWFuY2UYAyABKAFCDrpICxIJKQAAAAAAAAAAEisKE2FwcHJvdmFsX2VmZmljaWVuY3kYBCABKAFCDrpICxIJKQAAAAAAAAAAEiEKCWNvbXBvc2l0ZRgFIAEoAUIOukgLEgkpAAAAAAAAAAASKAoIZXZpZGVuY2UYBiADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYigAIKDUVjb25vbWljU2NvcmUSMgoYY29zdF9wZXJfc3VjY2Vzc2Z1bF90YXNrGAEgASgLMhAuY29tbW9uLnYxLk1vbmV5EiIKCGxsbV9jb3N0GAIgASgLMhAuY29tbW9uLnYxLk1vbmV5EiMKCXRvb2xfY29zdBgDIAEoCzIQLmNvbW1vbi52MS5Nb25leRIqChBzdXBlcnZpc2lvbl9jb3N0GAQgASgLMhAuY29tbW9uLnYxLk1vbmV5EhoKEm9uX3BhcmV0b19mcm9udGllchgFIAEoCBIqChJxdWFsaXR5X3Blcl9kb2xsYXIYBiABKAFCDrpICxIJKQAAAAAAAAAAIsoBCg9EZWxlZ2F0aW9uU2NvcmUSKwoTZGVsZWdhdGlvbl9hY2N1cmFjeRgBIAEoAUIOukgLEgkpAAAAAAAAAAASKAoQY29udGV4dF9maWRlbGl0eRgCIAEoAUIOukgLEgkpAAAAAAAAAAASFwoPZWZmaWNpZW5jeV9nYWluGAMgASgBEikKEWZhaWx1cmVfaXNvbGF0aW9uGAQgASgBQg66SAsSCSkAAAAAAAAAABIcCgtjaGFpbl9kZXB0aBgFIAEoBUIHukgEGgIoACLeAwoPRHJpZnRDb21wYXJpc29uEhAKCGRldGVjdGVkGAEgASgIEi4KFmJhc2VsaW5lX3F1YWxpdHlfc2NvcmUYAiABKAFCDrpICxIJKQAAAAAAAAAAEi0KFWN1cnJlbnRfcXVhbGl0eV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASFQoNcXVhbGl0eV9kZWx0YRgEIAEoARInCg1iYXNlbGluZV9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EiYKDGN1cnJlbnRfY29zdBgGIAEoCzIQLmNvbW1vbi52MS5Nb25leRIkCgpjb3N0X2RlbHRhGAcgASgLMhAuY29tbW9uLnYxLk1vbmV5EjAKGGJhc2VsaW5lX2VzY2FsYXRpb25fcmF0ZRgIIAEoAUIOukgLEgkpAAAAAAAAAAASLwoXY3VycmVudF9lc2NhbGF0aW9uX3JhdGUYCSABKAFCDrpICxIJKQAAAAAAAAAAEh0KFWVzY2FsYXRpb25fcmF0ZV9kZWx0YRgKIAEoARIgChhnZW5lcmF0ZWRfc3VpdGVfc3RyYXRlZ3kYCyABKAkSKAoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYi1QEKFkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIVCgRuYW1lGAMgASgJQge6SARyAhABEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiMKBWNhc2VzGAUgAygLMhQuZmVybWF0YS52MS5UZXN0Q2FzZRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPwoXQ3JlYXRlVGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSJfChNHZXRUZXN0U3VpdGVSZXF1ZXN0EhkKCHN1aXRlX2lkGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiPAoUR2V0VGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSKAAQoVTGlzdFRlc3RTdWl0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlEKFkxpc3RUZXN0U3VpdGVzUmVzcG9uc2USJQoGc3VpdGVzGAEgAygLMhUuZmVybWF0YS52MS5UZXN0U3VpdGUSEAoIaGFzX21vcmUYAiABKAgi4wUKFUNyZWF0ZVNjZW5hcmlvUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESHQoMd29ya3NwYWNlX2lkGAIgASgJQge6SARyAhABEhUKBG5hbWUYAyABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBCABKAkSMAoJb2JqZWN0aXZlGAUgASgLMhUuZmVybWF0YS52MS5PYmplY3RpdmVCBrpIA8gBARItCgxhZ2VudF9jb25maWcYBiABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAcgASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAggASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgKIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYCyABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGAwgASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDSADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA4gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgPIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYECABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKFkNyZWF0ZVNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvImEKEkdldFNjZW5hcmlvUmVxdWVzdBIcCgtzY2VuYXJpb19pZBgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIj0KE0dldFNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvIn8KFExpc3RTY2VuYXJpb3NSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlIKFUxpc3RTY2VuYXJpb3NSZXNwb25zZRInCglzY2VuYXJpb3MYASADKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvEhAKCGhhc19tb3JlGAIgASgIIn0KHFVwc2VydEN1c3RvbUV2YWx1YXRvclJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCgZzb3VyY2UYAiABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJPCh1VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJhChlHZXRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSJMChpHZXRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJ9ChtMaXN0Q3VzdG9tRXZhbHVhdG9yc1JlcXVlc3QSFgoFbGltaXQYASABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAIgASgFQge6SAQaAigAEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIUCgx3b3Jrc3BhY2VfaWQYBCABKAkiYQocTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZRIvCgpldmFsdWF0b3JzGAEgAygLMhsuZmVybWF0YS52MS5DdXN0b21FdmFsdWF0b3ISEAoIaGFzX21vcmUYAiABKAgiZAocRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiHwodRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVzcG9uc2Ui0AIKElVwc2VydEp1ZGdlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD29yZ2FuaXphdGlvbl9pZBgKIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCyABKAkiNwoTVXBzZXJ0SnVkZ2VSZXNwb25zZRIgCgVqdWRnZRgBIAEoCzIRLmZlcm1hdGEudjEuSnVkZ2UiVwoPR2V0SnVkZ2VSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI0ChBHZXRKdWRnZVJlc3BvbnNlEiAKBWp1ZGdlGAEgASgLMhEuZmVybWF0YS52MS5KdWRnZSJzChFMaXN0SnVkZ2VzUmVxdWVzdBIWCgVsaW1pdBgBIAEoBUIHukgEGgIoABIXCgZvZmZzZXQYAiABKAVCB7pIBBoCKAASFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJJChJMaXN0SnVkZ2VzUmVzcG9uc2USIQoGanVkZ2VzGAEgAygLMhEuZmVybWF0YS52MS5KdWRnZRIQCghoYXNfbW9yZRgCIAEoCCJaChJEZWxldGVKdWRnZVJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIhUKE0RlbGV0ZUp1ZGdlUmVzcG9uc2UivgIKFFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EhwKC3NjZW5hcmlvX2lkGAEgASgJQge6SARyAhABEhUKDXJ1bl9pZF9wcmVmaXgYAiABKAkSEAoIdHJhY2VfaWQYAyABKAkSKAoHYWN0dWFscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoNZXBvY2hfYWN0dWFscxgFIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKBmVwb2NocxgHIAEoBUIHukgEGgIoABISCgpsaW5lYWdlX2lkGAggASgJEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCiABKAkiYQoVU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiUKBHJ1bnMYASADKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuEiEKEHB1Ymxpc2hlZF9ldmVudHMYAiABKAVCB7pIBBoCKAAivQIKHUNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EjsKCHNjZW5hcmlvGAEgASgLMiEuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1JlcXVlc3RCBrpIA8gBARIVCg1ydW5faWRfcHJlZml4GAIgASgJEhAKCHRyYWNlX2lkGAMgASgJEigKB2FjdHVhbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KDWVwb2NoX2FjdHVhbHMYBSADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei8KDnN0YXJ0X21ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgZlcG9jaHMYByABKAVCB7pIBBoCKAASEgoKbGluZWFnZV9pZBgIIAEoCSKSAQoeQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiYKCHNjZW5hcmlvGAEgASgLMhQuZmVybWF0YS52MS5TY2VuYXJpbxIlCgRydW5zGAIgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIhChBwdWJsaXNoZWRfZXZlbnRzGAMgASgFQge6SAQaAigAIrUDChhSZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QSCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDCABKAkiQQoZUmVjb3JkU2NlbmFyaW9SdW5SZXNwb25zZRIkCgNydW4YASABKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuIl8KFUdldFNjZW5hcmlvUnVuUmVxdWVzdBIXCgZydW5faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI+ChZHZXRTY2VuYXJpb1J1blJlc3BvbnNlEiQKA3J1bhgBIAEoCzIXLmZlcm1hdGEudjEuU2NlbmFyaW9SdW4ilwEKF0xpc3RTY2VuYXJpb1J1bnNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLc2NlbmFyaW9faWQYAyABKAkSFgoFbGltaXQYBCABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAUgASgFQge6SAQaAigAIlMKGExpc3RTY2VuYXJpb1J1bnNSZXNwb25zZRIlCgRydW5zGAEgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIQCghoYXNfbW9yZRgCIAEoCCLfAQoRRGlhZ25vc3RpY0ZpbmRpbmcSCgoCaWQYASABKAkSQQoIc2V2ZXJpdHkYAiABKA4yJS5mZXJtYXRhLnYxLkRpYWdub3N0aWNGaW5kaW5nU2V2ZXJpdHlCCLpIBYIBAhABEhYKBXRpdGxlGAMgASgJQge6SARyAhABEg4KBmRldGFpbBgEIAEoCRIoCghldmlkZW5jZRgFIAMoCzIWLmNvbW1vbi52MS5FdmlkZW5jZVJlZhIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi7wQKHEV2YWx1YXRpb25EaWFnbm9zdGljQXJ0aWZhY3QSEwoCaWQYASABKAlCB7pIBHICEAESOgoEa2luZBgCIAEoDjIiLmZlcm1hdGEudjEuRGlhZ25vc3RpY0FydGlmYWN0S2luZEIIukgFggECEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgEIAEoCRITCgtzY2VuYXJpb19pZBgFIAEoCRIgCg9zY2VuYXJpb19ydW5faWQYBiABKAlCB7pIBHICEAESEAoIdHJhY2VfaWQYByABKAkSFgoFdGl0bGUYCCABKAlCB7pIBHICEAESDwoHc3VtbWFyeRgJIAEoCRIvCghmaW5kaW5ncxgKIAMoCzIdLmZlcm1hdGEudjEuRGlhZ25vc3RpY0ZpbmRpbmcSKAoIZXZpZGVuY2UYCyADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYSLgoNaW5wdXRfY29udGV4dBgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKAoHcGF5bG9hZBgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMYXJ0aWZhY3RfdXJpGA4gASgJEhYKDmNvbnRlbnRfc2hhMjU2GA8gASgJEhEKCXBlcnNpc3RlZBgQIAEoCBIuCgpjcmVhdGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLHAQoZRXhwbGFpblNjZW5hcmlvUnVuUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKBnJ1bl9pZBgDIAEoCUIHukgEcgIQARIVCg1pbmNsdWRlX3RyYWNlGAQgASgIEhgKEHBlcnNpc3RfYXJ0aWZhY3QYBSABKAgSKAoHY29udGV4dBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiWAoaRXhwbGFpblNjZW5hcmlvUnVuUmVzcG9uc2USOgoIYXJ0aWZhY3QYASABKAsyKC5mZXJtYXRhLnYxLkV2YWx1YXRpb25EaWFnbm9zdGljQXJ0aWZhY3Qi8QEKIkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCgZydW5faWQYAyABKAlCB7pIBHICEAESHwoXc3VzcGVjdGVkX2ZhaWx1cmVfbW9kZXMYBCADKAkSFQoNaW5jbHVkZV90cmFjZRgFIAEoCBIYChBwZXJzaXN0X2FydGlmYWN0GAYgASgIEigKB2NvbnRleHQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ImEKI0FuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlc3BvbnNlEjoKCGFydGlmYWN0GAEgASgLMiguZmVybWF0YS52MS5FdmFsdWF0aW9uRGlhZ25vc3RpY0FydGlmYWN0IpECCh5KdWRnZVZhbGlkYXRpb25BY2N1cmFjeU1ldHJpY3MSEQoJcHJlY2lzaW9uGAEgASgBEg4KBnJlY2FsbBgCIAEoARIQCghmMV9zY29yZRgDIAEoARIQCghhY2N1cmFjeRgEIAEoARIiChF0b3RhbF92YWxpZGF0aW9ucxgFIAEoBUIHukgEGgIoABIfCg50cnVlX3Bvc2l0aXZlcxgGIAEoBUIHukgEGgIoABIgCg9mYWxzZV9wb3NpdGl2ZXMYByABKAVCB7pIBBoCKAASHwoOdHJ1ZV9uZWdhdGl2ZXMYCCABKAVCB7pIBBoCKAASIAoPZmFsc2VfbmVnYXRpdmVzGAkgASgFQge6SAQaAigAIsABCh5KdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXgSJgoVanVkZ2VfcGFzc19odW1hbl9wYXNzGAEgASgFQge6SAQaAigAEiYKFWp1ZGdlX3Bhc3NfaHVtYW5fZmFpbBgCIAEoBUIHukgEGgIoABImChVqdWRnZV9mYWlsX2h1bWFuX3Bhc3MYAyABKAVCB7pIBBoCKAASJgoVanVkZ2VfZmFpbF9odW1hbl9mYWlsGAQgASgFQge6SAQaAigAItEBChpKdWRnZVZhbGlkYXRpb25CaWFzTWV0cmljcxIUCgxvdmVyX3Njb3JpbmcYASABKAgSFQoNdW5kZXJfc2NvcmluZxgCIAEoCBITCgtzY29yZV9kcmlmdBgDIAEoARIbChNhdmVyYWdlX2p1ZGdlX3Njb3JlGAQgASgBEhsKE2F2ZXJhZ2VfaHVtYW5fc2NvcmUYBSABKAESGQoRc2NvcmVfY29ycmVsYXRpb24YBiABKAESHAoLc2FtcGxlX3NpemUYByABKAVCB7pIBBoCKAAinAEKGkp1ZGdlVmFsaWRhdGlvbkNhbGlicmF0aW9uEhkKCGp1ZGdlX2lkGAEgASgJQge6SARyAhABEhsKE3ZhbGlkYXRpb25fYWNjdXJhY3kYAiABKAESEQoJdmFsaWRhdGVkGAMgASgIEjMKD2xhc3RfdmFsaWRhdGlvbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAimQQKGUp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24SHgoNZXZhbHVhdGlvbl9pZBgBIAEoCUIHukgEcgIQARIgCg9vcmdhbml6YXRpb25faWQYAiABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAMgASgJEhkKCGp1ZGdlX2lkGAQgASgJQge6SARyAhABEhcKD3NjZW5hcmlvX3J1bl9pZBgFIAEoCRIUCgxhc3NlcnRpb25faWQYBiABKAkSLAoLanVkZ2Vfc2NvcmUYByABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAEhQKDGp1ZGdlX3Bhc3NlZBgIIAEoCBIXCg9odW1hbl92YWxpZGF0ZWQYCSABKAgSMQoLaHVtYW5fc2NvcmUYCiABKAFCF7pIFBISGQAAAAAAAFlAKQAAAAAAAAAASACIAQESGAoQdmFsaWRhdGlvbl9ub3RlcxgLIAEoCRIOCgZzb3VyY2UYDCABKAkSMAoMZXZhbHVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfaHVtYW5fc2NvcmUiSAoZSnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZRIZCghqdWRnZV9pZBgBIAEoCUIHukgEcgIQARIQCghhY2N1cmFjeRgCIAEoASJgCiFHZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABImEKIkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVzcG9uc2USOwoHbWV0cmljcxgBIAEoCzIqLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lNZXRyaWNzImcKKEdldEp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeFJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABImcKKUdldEp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeFJlc3BvbnNlEjoKBm1hdHJpeBgBIAEoCzIqLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4IlwKHUdldEp1ZGdlVmFsaWRhdGlvbkJpYXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIZCghqdWRnZV9pZBgCIAEoCUIHukgEcgIQASJZCh5HZXRKdWRnZVZhbGlkYXRpb25CaWFzUmVzcG9uc2USNwoHbWV0cmljcxgBIAEoCzImLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uQmlhc01ldHJpY3MiYAohUmVjYWxpYnJhdGVKdWRnZVZhbGlkYXRpb25SZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIZCghqdWRnZV9pZBgCIAEoCUIHukgEcgIQASJhCiJSZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlc3BvbnNlEjsKC2NhbGlicmF0aW9uGAEgASgLMiYuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25DYWxpYnJhdGlvbiK9AwomUmVjb3JkSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlcXVlc3QSFQoNZXZhbHVhdGlvbl9pZBgBIAEoCRIgCg9vcmdhbml6YXRpb25faWQYAiABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAMgASgJEhkKCGp1ZGdlX2lkGAQgASgJQge6SARyAhABEhcKD3NjZW5hcmlvX3J1bl9pZBgFIAEoCRIUCgxhc3NlcnRpb25faWQYBiABKAkSLAoLanVkZ2Vfc2NvcmUYByABKAFCF7pIFBISGQAAAAAAAPA/KQAAAAAAAAAAEhQKDGp1ZGdlX3Bhc3NlZBgIIAEoCBIXCg9odW1hbl92YWxpZGF0ZWQYCSABKAgSMQoLaHVtYW5fc2NvcmUYCiABKAFCF7pIFBISGQAAAAAAAFlAKQAAAAAAAAAASACIAQESGAoQdmFsaWRhdGlvbl9ub3RlcxgLIAEoCRIOCgZzb3VyY2UYDCABKAkSMAoMZXZhbHVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfaHVtYW5fc2NvcmUiZAonUmVjb3JkSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlc3BvbnNlEjkKCmV2YWx1YXRpb24YASABKAsyJS5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24iyQEKKFZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvblJlcXVlc3QSHgoNZXZhbHVhdGlvbl9pZBgBIAEoCUIHukgEcgIQARIgCg9vcmdhbml6YXRpb25faWQYAiABKAlCB7pIBHICEAESMQoLaHVtYW5fc2NvcmUYAyABKAFCF7pIFBISGQAAAAAAAFlAKQAAAAAAAAAASACIAQESGAoQdmFsaWRhdGlvbl9ub3RlcxgEIAEoCUIOCgxfaHVtYW5fc2NvcmUiZgopVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2USOQoKZXZhbHVhdGlvbhgBIAEoCzIlLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbiKgAQolTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESIAoPbWluX3ZhbGlkYXRpb25zGAIgASgFQge6SAQaAigAEjMKEmFjY3VyYWN5X3RocmVzaG9sZBgDIAEoAUIXukgUEhIZAAAAAAAA8D8pAAAAAAAAAAAivwEKJkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlc1Jlc3BvbnNlEjkKCmNhbmRpZGF0ZXMYASADKAsyJS5mZXJtYXRhLnYxLkp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGUSHAoLdG90YWxfY291bnQYAiABKAVCB7pIBBoCKAASIAoPbWluX3ZhbGlkYXRpb25zGAMgASgFQge6SAQaAigAEhoKEmFjY3VyYWN5X3RocmVzaG9sZBgEIAEoASIbChlHZXRNaWdyYXRpb25TdGF0dXNSZXF1ZXN0IlwKFFJvdXRlTWlncmF0aW9uU3RhdHVzEhMKC3BhdGhfcHJlZml4GAEgASgJEhAKCG1pZ3JhdGVkGAIgASgIEh0KFXByb3hpZWRfcmVxdWVzdF9jb3VudBgDIAEoAyJOChpHZXRNaWdyYXRpb25TdGF0dXNSZXNwb25zZRIwCgZyb3V0ZXMYASADKAsyIC5mZXJtYXRhLnYxLlJvdXRlTWlncmF0aW9uU3RhdHVzKucBCg1Bc3NlcnRpb25LaW5kEh4KGkFTU0VSVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASGwoXQVNTRVJUSU9OX0tJTkRfQ09OVEFJTlMQARIfChtBU1NFUlRJT05fS0lORF9OT1RfQ09OVEFJTlMQAhIYChRBU1NFUlRJT05fS0lORF9SRUdFWBADEh0KGUFTU0VSVElPTl9LSU5EX1NJTUlMQVJJVFkQBBIfChtBU1NFUlRJT05fS0lORF9DVVNUT01fSlVER0UQBRIeChpBU1NFUlRJT05fS0lORF9KU09OX1NDSEVNQRAGKogBCglKdWRnZUtpbmQSGgoWSlVER0VfS0lORF9VTlNQRUNJRklFRBAAEhIKDkpVREdFX0tJTkRfTExNEAESGQoVSlVER0VfS0lORF9SVUxFX0JBU0VEEAISGQoVSlVER0VfS0lORF9TSU1JTEFSSVRZEAMSFQoRSlVER0VfS0lORF9DVVNUT00QBCqTAgoXU2NlbmFyaW9FbnZpcm9ubWVudEtpbmQSKQolU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9VTlNQRUNJRklFRBAAEiQKIFNDRU5BUklPX0VOVklST05NRU5UX0tJTkRfUkVQTEFZEAESJgoiU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9TVEFSTEFSSxACEicKI1NDRU5BUklPX0VOVklST05NRU5UX0tJTkRfTU9DS19IVFRQEAMSJQohU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9TQU5EQk9YEAQSLworU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9QUk9EVUNUSU9OX1NIQURPVxAFKqcCChVVc2VyU2ltdWxhdG9yU3RyYXRlZ3kSJwojVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABInCiNVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9DT09QRVJBVElWRRABEiEKHVVTRVJfU0lNVUxBVE9SX1NUUkFURUdZX1JFQUNUEAISIgoeVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfVkVSSUZZEAMSJgoiVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfUkVGTEVDVElPThAEEicKI1VTRVJfU0lNVUxBVE9SX1NUUkFURUdZX0FEVkVSU0FSSUFMEAUSJAogVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfQ09ORlVTRUQQBiq2AgoUT3V0Y29tZUNyaXRlcmlvbktpbmQSJgoiT1VUQ09NRV9DUklURVJJT05fS0lORF9VTlNQRUNJRklFRBAAEiYKIk9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfRklOQUxfU1RBVEUQARIqCiZPVVRDT01FX0NSSVRFUklPTl9LSU5EX1RBU0tfQ09NUExFVElPThACEiUKIU9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfVFJBSkVDVE9SWRADEiYKIk9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfQ09TVF9CVURHRVQQBBIpCiVPVVRDT01FX0NSSVRFUklPTl9LSU5EX0xBVEVOQ1lfQlVER0VUEAUSKAokT1VUQ09NRV9DUklURVJJT05fS0lORF9RVUFMSVRZX1NDT1JFEAYqugMKF0dvdmVybmFuY2VBc3NlcnRpb25UeXBlEikKJUdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIxCi1HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX0VTQ0FMQVRJT05fUkVRVUlSRUQQARIzCi9HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX0FVVE9fUFJPQ0VFRF9FWFBFQ1RFRBACEjEKLUdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfUklTS19DTEFTU0lGSUNBVElPThADEjIKLkdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfREFUQV9BQ0NFU1NfQk9VTkRBUlkQBBI4CjRHT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX0dPVkVSTkFOQ0VfQkxPQ0tfUkVTUEVDVEVEEAUSMwovR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9TRUxGX0FQUFJPVkFMX0JMT0NLRUQQBhI2CjJHT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX1BJSV9ERVRFQ1RFRF9BTkRfSEFORExFRBAHKoADChdEZWxlZ2F0aW9uQXNzZXJ0aW9uVHlwZRIpCiVERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASNwozREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9ERUxFR0FUSU9OX1RBUkdFVF9DT1JSRUNUEAESMgouREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9DT05URVhUX1BSRVNFUlZBVElPThACEjIKLkRFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfREVMRUdBVElPTl9WQUxVRV9BREQQAxI1CjFERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0RFTEVHQVRJT05fQ09TVF9CT1VOREVEEAQSMQotREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9DSEFJTl9ERVBUSF9CT1VOREVEEAUSLworREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9GQUlMVVJFX0lTT0xBVElPThAGKvwBChFTY2VuYXJpb1J1blN0YXR1cxIjCh9TQ0VOQVJJT19SVU5fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobU0NFTkFSSU9fUlVOX1NUQVRVU19QRU5ESU5HEAESHwobU0NFTkFSSU9fUlVOX1NUQVRVU19SVU5OSU5HEAISHgoaU0NFTkFSSU9fUlVOX1NUQVRVU19QQVNTRUQQAxIeChpTQ0VOQVJJT19SVU5fU1RBVFVTX0ZBSUxFRBAEEh0KGVNDRU5BUklPX1JVTl9TVEFUVVNfRVJST1IQBRIhCh1TQ0VOQVJJT19SVU5fU1RBVFVTX0NBTkNFTExFRBAGKpUBChZEaWFnbm9zdGljQXJ0aWZhY3RLaW5kEigKJERJQUdOT1NUSUNfQVJUSUZBQ1RfS0lORF9VTlNQRUNJRklFRBAAEigKJERJQUdOT1NUSUNfQVJUSUZBQ1RfS0lORF9FWFBMQU5BVElPThABEicKI0RJQUdOT1NUSUNfQVJUSUZBQ1RfS0lORF9ST09UX0NBVVNFEAIqvgEKGURpYWdub3N0aWNGaW5kaW5nU2V2ZXJpdHkSKwonRElBR05PU1RJQ19GSU5ESU5HX1NFVkVSSVRZX1VOU1BFQ0lGSUVEEAASJAogRElBR05PU1RJQ19GSU5ESU5HX1NFVkVSSVRZX0lORk8QARInCiNESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfV0FSTklORxACEiUKIURJQUdOT1NUSUNfRklORElOR19TRVZFUklUWV9FUlJPUhADMvUgCg5GZXJtYXRhU2VydmljZRKEAQoPQ3JlYXRlVGVzdFN1aXRlEiIuZmVybWF0YS52MS5DcmVhdGVUZXN0U3VpdGVSZXF1ZXN0GiMuZmVybWF0YS52MS5DcmVhdGVUZXN0U3VpdGVSZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBJ6CgxHZXRUZXN0U3VpdGUSHy5mZXJtYXRhLnYxLkdldFRlc3RTdWl0ZVJlcXVlc3QaIC5mZXJtYXRhLnYxLkdldFRlc3RTdWl0ZVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSgAEKDkxpc3RUZXN0U3VpdGVzEiEuZmVybWF0YS52MS5MaXN0VGVzdFN1aXRlc1JlcXVlc3QaIi5mZXJtYXRhLnYxLkxpc3RUZXN0U3VpdGVzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKBAQoOQ3JlYXRlU2NlbmFyaW8SIS5mZXJtYXRhLnYxLkNyZWF0ZVNjZW5hcmlvUmVxdWVzdBoiLmZlcm1hdGEudjEuQ3JlYXRlU2NlbmFyaW9SZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBJ3CgtHZXRTY2VuYXJpbxIeLmZlcm1hdGEudjEuR2V0U2NlbmFyaW9SZXF1ZXN0Gh8uZmVybWF0YS52MS5HZXRTY2VuYXJpb1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSfQoNTGlzdFNjZW5hcmlvcxIgLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvc1JlcXVlc3QaIS5mZXJtYXRhLnYxLkxpc3RTY2VuYXJpb3NSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpYBChVVcHNlcnRDdXN0b21FdmFsdWF0b3ISKC5mZXJtYXRhLnYxLlVwc2VydEN1c3RvbUV2YWx1YXRvclJlcXVlc3QaKS5mZXJtYXRhLnYxLlVwc2VydEN1c3RvbUV2YWx1YXRvclJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEowBChJHZXRDdXN0b21FdmFsdWF0b3ISJS5mZXJtYXRhLnYxLkdldEN1c3RvbUV2YWx1YXRvclJlcXVlc3QaJi5mZXJtYXRhLnYxLkdldEN1c3RvbUV2YWx1YXRvclJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSkgEKFExpc3RDdXN0b21FdmFsdWF0b3JzEicuZmVybWF0YS52MS5MaXN0Q3VzdG9tRXZhbHVhdG9yc1JlcXVlc3QaKC5mZXJtYXRhLnYxLkxpc3RDdXN0b21FdmFsdWF0b3JzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKWAQoVRGVsZXRlQ3VzdG9tRXZhbHVhdG9yEiguZmVybWF0YS52MS5EZWxldGVDdXN0b21FdmFsdWF0b3JSZXF1ZXN0GikuZmVybWF0YS52MS5EZWxldGVDdXN0b21FdmFsdWF0b3JSZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBJ4CgtVcHNlcnRKdWRnZRIeLmZlcm1hdGEudjEuVXBzZXJ0SnVkZ2VSZXF1ZXN0Gh8uZmVybWF0YS52MS5VcHNlcnRKdWRnZVJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEm4KCEdldEp1ZGdlEhsuZmVybWF0YS52MS5HZXRKdWRnZVJlcXVlc3QaHC5mZXJtYXRhLnYxLkdldEp1ZGdlUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJ0CgpMaXN0SnVkZ2VzEh0uZmVybWF0YS52MS5MaXN0SnVkZ2VzUmVxdWVzdBoeLmZlcm1hdGEudjEuTGlzdEp1ZGdlc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSeAoLRGVsZXRlSnVkZ2USHi5mZXJtYXRhLnYxLkRlbGV0ZUp1ZGdlUmVxdWVzdBofLmZlcm1hdGEudjEuRGVsZXRlSnVkZ2VSZXNwb25zZSIoyvMYDWZlcm1hdGE6d3JpdGXY8xgC6vMYD29yZ2FuaXphdGlvbl9pZBJ+Cg1TdGFydFNjZW5hcmlvEiAuZmVybWF0YS52MS5TdGFydFNjZW5hcmlvUmVxdWVzdBohLmZlcm1hdGEudjEuU3RhcnRTY2VuYXJpb1Jlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGAPq8xgPb3JnYW5pemF0aW9uX2lkEqIBChZDcmVhdGVBbmRTdGFydFNjZW5hcmlvEikuZmVybWF0YS52MS5DcmVhdGVBbmRTdGFydFNjZW5hcmlvUmVxdWVzdBoqLmZlcm1hdGEudjEuQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1Jlc3BvbnNlIjHK8xgNZmVybWF0YTp3cml0ZdjzGAPq8xgYc2NlbmFyaW8ub3JnYW5pemF0aW9uX2lkEooBChFSZWNvcmRTY2VuYXJpb1J1bhIkLmZlcm1hdGEudjEuUmVjb3JkU2NlbmFyaW9SdW5SZXF1ZXN0GiUuZmVybWF0YS52MS5SZWNvcmRTY2VuYXJpb1J1blJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEoABCg5HZXRTY2VuYXJpb1J1bhIhLmZlcm1hdGEudjEuR2V0U2NlbmFyaW9SdW5SZXF1ZXN0GiIuZmVybWF0YS52MS5HZXRTY2VuYXJpb1J1blJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQShgEKEExpc3RTY2VuYXJpb1J1bnMSIy5mZXJtYXRhLnYxLkxpc3RTY2VuYXJpb1J1bnNSZXF1ZXN0GiQuZmVybWF0YS52MS5MaXN0U2NlbmFyaW9SdW5zUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKMAQoSRXhwbGFpblNjZW5hcmlvUnVuEiUuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXF1ZXN0GiYuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGALq8xgPb3JnYW5pemF0aW9uX2lkEqcBChtBbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2USLi5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlcXVlc3QaLy5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAurzGA9vcmdhbml6YXRpb25faWQSpAEKGkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5Ei0uZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlcXVlc3QaLi5mZXJtYXRhLnYxLkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBK5AQohR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4EjQuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXF1ZXN0GjUuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpgBChZHZXRKdWRnZVZhbGlkYXRpb25CaWFzEikuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25CaWFzUmVxdWVzdBoqLmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSpQEKGlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uEi0uZmVybWF0YS52MS5SZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlcXVlc3QaLi5mZXJtYXRhLnYxLlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQStAEKH1JlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24SMi5mZXJtYXRhLnYxLlJlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXF1ZXN0GjMuZmVybWF0YS52MS5SZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSugEKIVZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbhI0LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBo1LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSsAEKHkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlcxIxLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVxdWVzdBoyLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJtChJHZXRNaWdyYXRpb25TdGF0dXMSJS5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1JlcXVlc3QaJi5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1Jlc3BvbnNlIgjY8xgB4PMYAUI5WjdnaXRodWIuY29tL2V2YWxvcHMvcGxhdGZvcm0vZ2VuL2dvL2Zlcm1hdGEvdjE7ZmVybWF0YXYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_analytics, file_common_v1_authz, file_common_v1_risk, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_traces_v1_traces]);
14
+ export const file_fermata_v1_fermata = /*@__PURE__*/ fileDesc("ChhmZXJtYXRhL3YxL2Zlcm1hdGEucHJvdG8SCmZlcm1hdGEudjEiqwIKCVRlc3RTdWl0ZRIKCgJpZBgBIAEoCRIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSHQoMd29ya3NwYWNlX2lkGAMgASgJQge6SARyAhABEhUKBG5hbWUYBCABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBSABKAkSIwoFY2FzZXMYBiADKAsyFC5mZXJtYXRhLnYxLlRlc3RDYXNlEikKCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKrAQoIVGVzdENhc2USCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARINCgVpbnB1dBgDIAEoCRIXCg9leHBlY3RlZF9vdXRwdXQYBCABKAkSKQoKYXNzZXJ0aW9ucxgFIAMoCzIVLmZlcm1hdGEudjEuQXNzZXJ0aW9uEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKsAQoJQXNzZXJ0aW9uEgoKAmlkGAEgASgJEjEKBGtpbmQYAiABKA4yGS5mZXJtYXRhLnYxLkFzc2VydGlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRITCgtkZXNjcmlwdGlvbhgFIAEoCRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi0AEKD0N1c3RvbUV2YWx1YXRvchIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBnNvdXJjZRgCIAEoCUIHukgEcgIQARIuCgpjcmVhdGVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9vcmdhbml6YXRpb25faWQYBSABKAkSFAoMd29ya3NwYWNlX2lkGAYgASgJIqMDCgVKdWRnZRIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgMIAEoCRIUCgx3b3Jrc3BhY2VfaWQYDSABKAkiugYKCFNjZW5hcmlvEgoKAmlkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIdCgx3b3Jrc3BhY2VfaWQYAyABKAlCB7pIBHICEAESFQoEbmFtZRgEIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgFIAEoCRIoCglvYmplY3RpdmUYBiABKAsyFS5mZXJtYXRhLnYxLk9iamVjdGl2ZRItCgxhZ2VudF9jb25maWcYByABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAggASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAkgASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAogASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYDCABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGA0gASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDiADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA8gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgQIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYESABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYEiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIu8BCglPYmplY3RpdmUSHAoLZGVzY3JpcHRpb24YASABKAlCB7pIBHICEAESNgoQc3VjY2Vzc19jcml0ZXJpYRgCIAMoCzIcLmZlcm1hdGEudjEuU3VjY2Vzc0NyaXRlcmlvbhJACg5leHBlY3RlZF9zdGF0ZRgDIAMoCzIoLmZlcm1hdGEudjEuT2JqZWN0aXZlLkV4cGVjdGVkU3RhdGVFbnRyeRIUCgxvYmplY3RpdmVfaWQYBCABKAkaNAoSRXhwZWN0ZWRTdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirwEKEFN1Y2Nlc3NDcml0ZXJpb24SCgoCaWQYASABKAkSHAoLZGVzY3JpcHRpb24YAiABKAlCB7pIBHICEAESDgoGbWV0cmljGAMgASgJEhYKDmV4cGVjdGVkX3ZhbHVlGAQgASgJEh4KBndlaWdodBgFIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IqUBCgtBZ2VudENvbmZpZxIQCghhZ2VudF9pZBgBIAEoCRINCgVtb2RlbBgCIAEoCRIRCgl0b29sX3JlZnMYAyADKAkSGQoRcGVybWlzc2lvbl9zY29wZXMYBCADKAkSHAoUZ292ZXJuYW5jZV9wb2xpY3lfaWQYBSABKAkSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IvcBChNTY2VuYXJpb0Vudmlyb25tZW50EjsKBGtpbmQYASABKA4yIy5mZXJtYXRhLnYxLlNjZW5hcmlvRW52aXJvbm1lbnRLaW5kQgi6SAWCAQIQARIjCgV0b29scxgCIAMoCzIULmZlcm1hdGEudjEuTW9ja1Rvb2wSKwoJZW5kcG9pbnRzGAMgAygLMhguZmVybWF0YS52MS5Nb2NrRW5kcG9pbnQSFQoNc2VlZF9kYXRhX3JlZhgEIAEoCRIPCgdzYW5kYm94GAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK7AQoITW9ja1Rvb2wSFQoEbmFtZRgBIAEoCUIHukgEcgIQARITCgtkZXNjcmlwdGlvbhgCIAEoCRItCgxpbnB1dF9zY2hlbWEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCHJlc3BvbnNlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiqQEKDE1vY2tFbmRwb2ludBIOCgZtZXRob2QYASABKAkSFQoEcGF0aBgCIAEoCUIHukgEcgIQARIcCgtzdGF0dXNfY29kZRgDIAEoBUIHukgEGgIoABIpCghyZXNwb25zZRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IocCCg1Vc2VyU2ltdWxhdG9yEg8KB3BlcnNvbmEYASABKAkSFAoMaW5zdHJ1Y3Rpb25zGAIgASgJEj0KCHN0cmF0ZWd5GAMgASgOMiEuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yU3RyYXRlZ3lCCLpIBYIBAhABEg0KBW1vZGVsGAQgASgJEhoKCW1heF90dXJucxgFIAEoBUIHukgEGgIoABIbChN2ZXJpZnlfYWdlbnRfY2xhaW1zGAYgASgIEh0KFXJlcXVlc3RfY2xhcmlmaWNhdGlvbhgHIAEoCBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QixQEKEE91dGNvbWVDcml0ZXJpb24SCgoCaWQYASABKAkSOAoEa2luZBgCIAEoDjIgLmZlcm1hdGEudjEuT3V0Y29tZUNyaXRlcmlvbktpbmRCCLpIBYIBAhABEg4KBnRhcmdldBgDIAEoCRIQCghleHBlY3RlZBgEIAEoCRIeCgZ3ZWlnaHQYBSABKAFCDrpICxIJKQAAAAAAAAAAEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLcAgoTR292ZXJuYW5jZUFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uVHlwZUIIukgFggECEAESOwoTZXhwZWN0ZWRfcmlza19sZXZlbBgDIAEoDjIULmNvbW1vbi52MS5SaXNrTGV2ZWxCCLpIBYIBAhABEhcKD3Nob3VsZF9lc2NhbGF0ZRgEIAEoCBIhChlleHBlY3RlZF9hcHByb3ZhbF9vdXRjb21lGAUgASgJEhsKE2FsbG93ZWRfZGF0YV9zY29wZXMYBiADKAkSGgoSZGVuaWVkX2RhdGFfc2NvcGVzGAcgAygJEh8KF2V4cGVjdGVkX3BpaV9jYXRlZ29yaWVzGAggAygJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLqAQoTRGVsZWdhdGlvbkFzc2VydGlvbhIKCgJpZBgBIAEoCRI7CgR0eXBlGAIgASgOMiMuZmVybWF0YS52MS5EZWxlZ2F0aW9uQXNzZXJ0aW9uVHlwZUIIukgFggECEAESGQoRZXhwZWN0ZWRfYWdlbnRfaWQYAyABKAkSIAoPbWF4X2NoYWluX2RlcHRoGAQgASgFQge6SAQaAigAEiIKCG1heF9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKIBAoLU2NlbmFyaW9SdW4SCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDiABKAkisQYKDlNjZW5hcmlvUmVzdWx0EhoKEm9iamVjdGl2ZV9hY2hpZXZlZBgBIAEoCBIZChFvYmplY3RpdmVfc3VtbWFyeRgCIAEoCRIcCgt0b3RhbF9zdGVwcxgDIAEoBUIHukgEGgIoABIcCgttb2RlbF9jYWxscxgEIAEoBUIHukgEGgIoABIbCgp0b29sX2NhbGxzGAUgASgFQge6SAQaAigAEiIKEWFwcHJvdmFsX3JlcXVlc3RzGAYgASgFQge6SAQaAigAEiIKEWRlbGVnYXRpb25fZXZlbnRzGAcgASgFQge6SAQaAigAEiAKD3JlY292ZXJ5X2V2ZW50cxgIIAEoBUIHukgEGgIoABI+ChFhc3NlcnRpb25fcmVzdWx0cxgJIAMoCzIjLmZlcm1hdGEudjEuU2NlbmFyaW9Bc3NlcnRpb25SZXN1bHQSLwoKZ292ZXJuYW5jZRgKIAEoCzIbLmZlcm1hdGEudjEuR292ZXJuYW5jZVNjb3JlEiwKCWVjb25vbWljcxgLIAEoCzIZLmZlcm1hdGEudjEuRWNvbm9taWNTY29yZRIhCglwYXNzX2F0X2sYDCABKAFCDrpICxIJKQAAAAAAAAAAEi8KCmRlbGVnYXRpb24YDSABKAsyGy5mZXJtYXRhLnYxLkRlbGVnYXRpb25TY29yZRIkCgp0b3RhbF9jb3N0GA4gASgLMhAuY29tbW9uLnYxLk1vbmV5EjEKDnRvdGFsX2R1cmF0aW9uGA8gASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEikKCG1ldGFkYXRhGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIjCgp0cmFqZWN0b3J5GBEgAygLMg8udHJhY2VzLnYxLlNwYW4SJQoNdHJhamVjdG9yeV9mMRgSIAEoAUIOukgLEgkpAAAAAAAAAAASNgoedHJhamVjdG9yeV9lZGl0X2Rpc3RhbmNlX3Njb3JlGBMgASgBQg66SAsSCSkAAAAAAAAAABIqCgVkcmlmdBgUIAEoCzIbLmZlcm1hdGEudjEuRHJpZnRDb21wYXJpc29uIpoBChdTY2VuYXJpb0Fzc2VydGlvblJlc3VsdBIUCgxhc3NlcnRpb25faWQYASABKAkSDgoGcGFzc2VkGAIgASgIEg0KBXNjb3JlGAMgASgBEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKPAgoPR292ZXJuYW5jZVNjb3JlEiwKFGVzY2FsYXRpb25fcHJlY2lzaW9uGAEgASgBQg66SAsSCSkAAAAAAAAAABIpChFlc2NhbGF0aW9uX3JlY2FsbBgCIAEoAUIOukgLEgkpAAAAAAAAAAASKQoRcG9saWN5X2NvbXBsaWFuY2UYAyABKAFCDrpICxIJKQAAAAAAAAAAEisKE2FwcHJvdmFsX2VmZmljaWVuY3kYBCABKAFCDrpICxIJKQAAAAAAAAAAEiEKCWNvbXBvc2l0ZRgFIAEoAUIOukgLEgkpAAAAAAAAAAASKAoIZXZpZGVuY2UYBiADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYigAIKDUVjb25vbWljU2NvcmUSMgoYY29zdF9wZXJfc3VjY2Vzc2Z1bF90YXNrGAEgASgLMhAuY29tbW9uLnYxLk1vbmV5EiIKCGxsbV9jb3N0GAIgASgLMhAuY29tbW9uLnYxLk1vbmV5EiMKCXRvb2xfY29zdBgDIAEoCzIQLmNvbW1vbi52MS5Nb25leRIqChBzdXBlcnZpc2lvbl9jb3N0GAQgASgLMhAuY29tbW9uLnYxLk1vbmV5EhoKEm9uX3BhcmV0b19mcm9udGllchgFIAEoCBIqChJxdWFsaXR5X3Blcl9kb2xsYXIYBiABKAFCDrpICxIJKQAAAAAAAAAAIsoBCg9EZWxlZ2F0aW9uU2NvcmUSKwoTZGVsZWdhdGlvbl9hY2N1cmFjeRgBIAEoAUIOukgLEgkpAAAAAAAAAAASKAoQY29udGV4dF9maWRlbGl0eRgCIAEoAUIOukgLEgkpAAAAAAAAAAASFwoPZWZmaWNpZW5jeV9nYWluGAMgASgBEikKEWZhaWx1cmVfaXNvbGF0aW9uGAQgASgBQg66SAsSCSkAAAAAAAAAABIcCgtjaGFpbl9kZXB0aBgFIAEoBUIHukgEGgIoACLeAwoPRHJpZnRDb21wYXJpc29uEhAKCGRldGVjdGVkGAEgASgIEi4KFmJhc2VsaW5lX3F1YWxpdHlfc2NvcmUYAiABKAFCDrpICxIJKQAAAAAAAAAAEi0KFWN1cnJlbnRfcXVhbGl0eV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASFQoNcXVhbGl0eV9kZWx0YRgEIAEoARInCg1iYXNlbGluZV9jb3N0GAUgASgLMhAuY29tbW9uLnYxLk1vbmV5EiYKDGN1cnJlbnRfY29zdBgGIAEoCzIQLmNvbW1vbi52MS5Nb25leRIkCgpjb3N0X2RlbHRhGAcgASgLMhAuY29tbW9uLnYxLk1vbmV5EjAKGGJhc2VsaW5lX2VzY2FsYXRpb25fcmF0ZRgIIAEoAUIOukgLEgkpAAAAAAAAAAASLwoXY3VycmVudF9lc2NhbGF0aW9uX3JhdGUYCSABKAFCDrpICxIJKQAAAAAAAAAAEh0KFWVzY2FsYXRpb25fcmF0ZV9kZWx0YRgKIAEoARIgChhnZW5lcmF0ZWRfc3VpdGVfc3RyYXRlZ3kYCyABKAkSKAoIZXZpZGVuY2UYDCADKAsyFi5jb21tb24udjEuRXZpZGVuY2VSZWYi1QEKFkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgCIAEoCUIHukgEcgIQARIVCgRuYW1lGAMgASgJQge6SARyAhABEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiMKBWNhc2VzGAUgAygLMhQuZmVybWF0YS52MS5UZXN0Q2FzZRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPwoXQ3JlYXRlVGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSJfChNHZXRUZXN0U3VpdGVSZXF1ZXN0EhkKCHN1aXRlX2lkGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiPAoUR2V0VGVzdFN1aXRlUmVzcG9uc2USJAoFc3VpdGUYASABKAsyFS5mZXJtYXRhLnYxLlRlc3RTdWl0ZSKAAQoVTGlzdFRlc3RTdWl0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlEKFkxpc3RUZXN0U3VpdGVzUmVzcG9uc2USJQoGc3VpdGVzGAEgAygLMhUuZmVybWF0YS52MS5UZXN0U3VpdGUSEAoIaGFzX21vcmUYAiABKAgi4wUKFUNyZWF0ZVNjZW5hcmlvUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESHQoMd29ya3NwYWNlX2lkGAIgASgJQge6SARyAhABEhUKBG5hbWUYAyABKAlCB7pIBHICEAESEwoLZGVzY3JpcHRpb24YBCABKAkSMAoJb2JqZWN0aXZlGAUgASgLMhUuZmVybWF0YS52MS5PYmplY3RpdmVCBrpIA8gBARItCgxhZ2VudF9jb25maWcYBiABKAsyFy5mZXJtYXRhLnYxLkFnZW50Q29uZmlnEjQKC2Vudmlyb25tZW50GAcgASgLMh8uZmVybWF0YS52MS5TY2VuYXJpb0Vudmlyb25tZW50EjEKDnVzZXJfc2ltdWxhdG9yGAggASgLMhkuZmVybWF0YS52MS5Vc2VyU2ltdWxhdG9yEiIKCG1heF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5Ei8KDG1heF9kdXJhdGlvbhgKIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIaCgltYXhfc3RlcHMYCyABKAVCB7pIBBoCKAASJgoVbWF4X2FwcHJvdmFsX3JlcXVlc3RzGAwgASgFQge6SAQaAigAEjYKEG91dGNvbWVfY3JpdGVyaWEYDSADKAsyHC5mZXJtYXRhLnYxLk91dGNvbWVDcml0ZXJpb24SPgoVZ292ZXJuYW5jZV9hc3NlcnRpb25zGA4gAygLMh8uZmVybWF0YS52MS5Hb3Zlcm5hbmNlQXNzZXJ0aW9uEj4KFWRlbGVnYXRpb25fYXNzZXJ0aW9ucxgPIAMoCzIfLmZlcm1hdGEudjEuRGVsZWdhdGlvbkFzc2VydGlvbhIXCgZlcG9jaHMYECABKAVCB7pIBBoCKAASKQoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKFkNyZWF0ZVNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvImEKEkdldFNjZW5hcmlvUmVxdWVzdBIcCgtzY2VuYXJpb19pZBgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIj0KE0dldFNjZW5hcmlvUmVzcG9uc2USJgoIc2NlbmFyaW8YASABKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvIn8KFExpc3RTY2VuYXJpb3NSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFgoFbGltaXQYAyABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAQgASgFQge6SAQaAigAIlIKFUxpc3RTY2VuYXJpb3NSZXNwb25zZRInCglzY2VuYXJpb3MYASADKAsyFC5mZXJtYXRhLnYxLlNjZW5hcmlvEhAKCGhhc19tb3JlGAIgASgIIn0KHFVwc2VydEN1c3RvbUV2YWx1YXRvclJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCgZzb3VyY2UYAiABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJPCh1VcHNlcnRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJhChlHZXRDdXN0b21FdmFsdWF0b3JSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSJMChpHZXRDdXN0b21FdmFsdWF0b3JSZXNwb25zZRIuCglldmFsdWF0b3IYASABKAsyGy5mZXJtYXRhLnYxLkN1c3RvbUV2YWx1YXRvciJ9ChtMaXN0Q3VzdG9tRXZhbHVhdG9yc1JlcXVlc3QSFgoFbGltaXQYASABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAIgASgFQge6SAQaAigAEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIUCgx3b3Jrc3BhY2VfaWQYBCABKAkiYQocTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZRIvCgpldmFsdWF0b3JzGAEgAygLMhsuZmVybWF0YS52MS5DdXN0b21FdmFsdWF0b3ISEAoIaGFzX21vcmUYAiABKAgiZAocRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKD29yZ2FuaXphdGlvbl9pZBgCIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAyABKAkiHwodRGVsZXRlQ3VzdG9tRXZhbHVhdG9yUmVzcG9uc2Ui0AIKElVwc2VydEp1ZGdlUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEi0KBGtpbmQYAiABKA4yFS5mZXJtYXRhLnYxLkp1ZGdlS2luZEIIukgFggECEAESDgoGcHJvbXB0GAMgASgJEg0KBW1vZGVsGAQgASgJEiwKC3RlbXBlcmF0dXJlGAUgASgBQhe6SBQSEhkAAAAAAAAAQCkAAAAAAAAAABIbCgptYXhfdG9rZW5zGAYgASgFQge6SAQaAigAEhAKCGNyaXRlcmlhGAcgAygJEh4KBndlaWdodBgIIAEoAUIOukgLEgkpAAAAAAAAAAASKQoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKD29yZ2FuaXphdGlvbl9pZBgKIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCyABKAkiNwoTVXBzZXJ0SnVkZ2VSZXNwb25zZRIgCgVqdWRnZRgBIAEoCzIRLmZlcm1hdGEudjEuSnVkZ2UiVwoPR2V0SnVkZ2VSZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI0ChBHZXRKdWRnZVJlc3BvbnNlEiAKBWp1ZGdlGAEgASgLMhEuZmVybWF0YS52MS5KdWRnZSJzChFMaXN0SnVkZ2VzUmVxdWVzdBIWCgVsaW1pdBgBIAEoBUIHukgEGgIoABIXCgZvZmZzZXQYAiABKAVCB7pIBBoCKAASFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEhQKDHdvcmtzcGFjZV9pZBgEIAEoCSJJChJMaXN0SnVkZ2VzUmVzcG9uc2USIQoGanVkZ2VzGAEgAygLMhEuZmVybWF0YS52MS5KdWRnZRIQCghoYXNfbW9yZRgCIAEoCCJaChJEZWxldGVKdWRnZVJlcXVlc3QSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIXCg9vcmdhbml6YXRpb25faWQYAiABKAkSFAoMd29ya3NwYWNlX2lkGAMgASgJIhUKE0RlbGV0ZUp1ZGdlUmVzcG9uc2UivgIKFFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EhwKC3NjZW5hcmlvX2lkGAEgASgJQge6SARyAhABEhUKDXJ1bl9pZF9wcmVmaXgYAiABKAkSEAoIdHJhY2VfaWQYAyABKAkSKAoHYWN0dWFscxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoNZXBvY2hfYWN0dWFscxgFIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWV0YWRhdGEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhcKBmVwb2NocxgHIAEoBUIHukgEGgIoABISCgpsaW5lYWdlX2lkGAggASgJEhcKD29yZ2FuaXphdGlvbl9pZBgJIAEoCRIUCgx3b3Jrc3BhY2VfaWQYCiABKAkiYQoVU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiUKBHJ1bnMYASADKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuEiEKEHB1Ymxpc2hlZF9ldmVudHMYAiABKAVCB7pIBBoCKAAivQIKHUNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0EjsKCHNjZW5hcmlvGAEgASgLMiEuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1JlcXVlc3RCBrpIA8gBARIVCg1ydW5faWRfcHJlZml4GAIgASgJEhAKCHRyYWNlX2lkGAMgASgJEigKB2FjdHVhbHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KDWVwb2NoX2FjdHVhbHMYBSADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei8KDnN0YXJ0X21ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgZlcG9jaHMYByABKAVCB7pIBBoCKAASEgoKbGluZWFnZV9pZBgIIAEoCSKSAQoeQ3JlYXRlQW5kU3RhcnRTY2VuYXJpb1Jlc3BvbnNlEiYKCHNjZW5hcmlvGAEgASgLMhQuZmVybWF0YS52MS5TY2VuYXJpbxIlCgRydW5zGAIgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIhChBwdWJsaXNoZWRfZXZlbnRzGAMgASgFQge6SAQaAigAIrUDChhSZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QSCgoCaWQYASABKAkSHAoLc2NlbmFyaW9faWQYAiABKAlCB7pIBHICEAESIAoPb3JnYW5pemF0aW9uX2lkGAMgASgJQge6SARyAhABEh0KDHdvcmtzcGFjZV9pZBgEIAEoCUIHukgEcgIQARIWCgVlcG9jaBgFIAEoBUIHukgEGgIoABI3CgZzdGF0dXMYBiABKA4yHS5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuU3RhdHVzQgi6SAWCAQIQARIqCgZyZXN1bHQYByABKAsyGi5mZXJtYXRhLnYxLlNjZW5hcmlvUmVzdWx0EhAKCHRyYWNlX2lkGAggASgJEikKCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpzdGFydGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmxpbmVhZ2VfaWQYDCABKAkiQQoZUmVjb3JkU2NlbmFyaW9SdW5SZXNwb25zZRIkCgNydW4YASABKAsyFy5mZXJtYXRhLnYxLlNjZW5hcmlvUnVuIl8KFUdldFNjZW5hcmlvUnVuUmVxdWVzdBIXCgZydW5faWQYASABKAlCB7pIBHICEAESFwoPb3JnYW5pemF0aW9uX2lkGAIgASgJEhQKDHdvcmtzcGFjZV9pZBgDIAEoCSI+ChZHZXRTY2VuYXJpb1J1blJlc3BvbnNlEiQKA3J1bhgBIAEoCzIXLmZlcm1hdGEudjEuU2NlbmFyaW9SdW4ilwEKF0xpc3RTY2VuYXJpb1J1bnNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSEwoLc2NlbmFyaW9faWQYAyABKAkSFgoFbGltaXQYBCABKAVCB7pIBBoCKAASFwoGb2Zmc2V0GAUgASgFQge6SAQaAigAIlMKGExpc3RTY2VuYXJpb1J1bnNSZXNwb25zZRIlCgRydW5zGAEgAygLMhcuZmVybWF0YS52MS5TY2VuYXJpb1J1bhIQCghoYXNfbW9yZRgCIAEoCCKZAQoqR2V0RXZhbHVhdGlvbk9ic2VydmFiaWxpdHlEYXNoYm9hcmRSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSGAoEZGF5cxgDIAEoBUIKukgHGgUY7QIoABIZCgVsaW1pdBgEIAEoBUIKukgHGgUY9AMoACKVAwoeRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EhsKCnRvdGFsX3J1bnMYASABKAVCB7pIBBoCKAASHgoNdG90YWxfcmVzdWx0cxgCIAEoBUIHukgEGgIoABIfCg5mYWlsZWRfcmVzdWx0cxgDIAEoBUIHukgEGgIoABIlCg1hdmVyYWdlX3Njb3JlGAQgASgBQg66SAsSCSkAAAAAAAAAABIhCglwYXNzX3JhdGUYBSABKAFCDrpICxIJKQAAAAAAAAAAEiQKCnRvdGFsX2Nvc3QYBiABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAcgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAASJwoWcmVncmVzc2lvbl9hbGVydF9jb3VudBgJIAEoBUIHukgEGgIoABIxChd0b3RhbF9jb3N0c19ieV9jdXJyZW5jeRgKIAMoCzIQLmNvbW1vbi52MS5Nb25leSKIBAoaRXZhbHVhdGlvblJlY2VudFJ1blN1bW1hcnkSIAoPc2NlbmFyaW9fcnVuX2lkGAEgASgJQge6SARyAhABEhMKC3NjZW5hcmlvX2lkGAIgASgJEh4KDXRvdGFsX3Jlc3VsdHMYAyABKAVCB7pIBBoCKAASIgoRY29tcGxldGVkX3Jlc3VsdHMYBCABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYBSABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgGIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgHIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYCCABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAkgASgBQg66SAsSCSkAAAAAAAAAABIdCgx0b3RhbF90b2tlbnMYCiABKANCB7pIBCICKAASLgoKc3RhcnRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCgh0cmFjZV9pZBgNIAEoCRIaChJvYmplY3RpdmVfYWNoaWV2ZWQYDiABKAgi0QMKGUV2YWx1YXRpb25SZWdyZXNzaW9uQWxlcnQSEwoCaWQYASABKAlCB7pIBHICEAESEwoLc2NlbmFyaW9faWQYAiABKAkSIAoPc2NlbmFyaW9fcnVuX2lkGAMgASgJQge6SARyAhABEhAKCHNldmVyaXR5GAQgASgJEg8KB21lc3NhZ2UYBSABKAkSLQoVcmVncmVzc2lvbl9wZXJjZW50YWdlGAYgASgBQg66SAsSCSkAAAAAAAAAABIgChhiYXNlbGluZV9zY2VuYXJpb19ydW5faWQYByABKAkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAggASgBQg66SAsSCSkAAAAAAAAAABIkCgp0b3RhbF9jb3N0GAkgASgLMhAuY29tbW9uLnYxLk1vbmV5EhMKC2Vudmlyb25tZW50GAogASgJEiEKGXN0YXRpc3RpY2FsbHlfc2lnbmlmaWNhbnQYCyABKAgSHwoHcF92YWx1ZRgMIAEoAUIOukgLEgkpAAAAAAAAAAASGAoQZGVncmFkZWRfbWV0cmljcxgNIAMoCRIvCgtyZWNvcmRlZF9hdBgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi6QEKK0dldEV2YWx1YXRpb25PYnNlcnZhYmlsaXR5RGFzaGJvYXJkUmVzcG9uc2USOwoHc3VtbWFyeRgBIAEoCzIqLmZlcm1hdGEudjEuRXZhbHVhdGlvbk9ic2VydmFiaWxpdHlTdW1tYXJ5EjsKC3JlY2VudF9ydW5zGAIgAygLMiYuZmVybWF0YS52MS5FdmFsdWF0aW9uUmVjZW50UnVuU3VtbWFyeRJAChFyZWdyZXNzaW9uX2FsZXJ0cxgDIAMoCzIlLmZlcm1hdGEudjEuRXZhbHVhdGlvblJlZ3Jlc3Npb25BbGVydCJxCh5HZXRFdmFsdWF0aW9uUnVuTWV0cmljc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhQKDHdvcmtzcGFjZV9pZBgCIAEoCRIXCgZydW5faWQYAyABKAlCB7pIBHICEAEivgIKG0V2YWx1YXRpb25SdW5NZXRyaWNzU3VtbWFyeRIdCgxyZXN1bHRfY291bnQYASABKAVCB7pIBBoCKAASHwoOZmFpbGVkX3Jlc3VsdHMYAiABKAVCB7pIBBoCKAASJQoNYXZlcmFnZV9zY29yZRgDIAEoAUIOukgLEgkpAAAAAAAAAAASJAoKdG90YWxfY29zdBgEIAEoCzIQLmNvbW1vbi52MS5Nb25leRImCgxhdmVyYWdlX2Nvc3QYBSABKAsyEC5jb21tb24udjEuTW9uZXkSKgoSYXZlcmFnZV9sYXRlbmN5X21zGAYgASgBQg66SAsSCSkAAAAAAAAAABIfCg5wOTVfbGF0ZW5jeV9tcxgHIAEoA0IHukgEIgIoABIdCgx0b3RhbF90b2tlbnMYCCABKANCB7pIBCICKAAi3QEKGkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzEhQKDGFzc2VydGlvbl9pZBgBIAEoCRIOCgZwYXNzZWQYAiABKAgSHQoFc2NvcmUYAyABKAFCDrpICxIJKQAAAAAAAAAAEg4KBmFjdHVhbBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCK2AQofR2V0RXZhbHVhdGlvblJ1bk1ldHJpY3NSZXNwb25zZRIgCg9zY2VuYXJpb19ydW5faWQYASABKAlCB7pIBHICEAESOAoHc3VtbWFyeRgCIAEoCzInLmZlcm1hdGEudjEuRXZhbHVhdGlvblJ1bk1ldHJpY3NTdW1tYXJ5EjcKB3Jlc3VsdHMYAyADKAsyJi5mZXJtYXRhLnYxLkV2YWx1YXRpb25SdW5SZXN1bHRNZXRyaWNzIt8BChFEaWFnbm9zdGljRmluZGluZxIKCgJpZBgBIAEoCRJBCghzZXZlcml0eRgCIAEoDjIlLmZlcm1hdGEudjEuRGlhZ25vc3RpY0ZpbmRpbmdTZXZlcml0eUIIukgFggECEAESFgoFdGl0bGUYAyABKAlCB7pIBHICEAESDgoGZGV0YWlsGAQgASgJEigKCGV2aWRlbmNlGAUgAygLMhYuY29tbW9uLnYxLkV2aWRlbmNlUmVmEikKCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCLvBAocRXZhbHVhdGlvbkRpYWdub3N0aWNBcnRpZmFjdBITCgJpZBgBIAEoCUIHukgEcgIQARI6CgRraW5kGAIgASgOMiIuZmVybWF0YS52MS5EaWFnbm9zdGljQXJ0aWZhY3RLaW5kQgi6SAWCAQIQARIgCg9vcmdhbml6YXRpb25faWQYAyABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAQgASgJEhMKC3NjZW5hcmlvX2lkGAUgASgJEiAKD3NjZW5hcmlvX3J1bl9pZBgGIAEoCUIHukgEcgIQARIQCgh0cmFjZV9pZBgHIAEoCRIWCgV0aXRsZRgIIAEoCUIHukgEcgIQARIPCgdzdW1tYXJ5GAkgASgJEi8KCGZpbmRpbmdzGAogAygLMh0uZmVybWF0YS52MS5EaWFnbm9zdGljRmluZGluZxIoCghldmlkZW5jZRgLIAMoCzIWLmNvbW1vbi52MS5FdmlkZW5jZVJlZhIuCg1pbnB1dF9jb250ZXh0GAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIoCgdwYXlsb2FkGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxhcnRpZmFjdF91cmkYDiABKAkSFgoOY29udGVudF9zaGEyNTYYDyABKAkSEQoJcGVyc2lzdGVkGBAgASgIEi4KCmNyZWF0ZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIscBChlFeHBsYWluU2NlbmFyaW9SdW5SZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSFwoGcnVuX2lkGAMgASgJQge6SARyAhABEhUKDWluY2x1ZGVfdHJhY2UYBCABKAgSGAoQcGVyc2lzdF9hcnRpZmFjdBgFIAEoCBIoCgdjb250ZXh0GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJYChpFeHBsYWluU2NlbmFyaW9SdW5SZXNwb25zZRI6CghhcnRpZmFjdBgBIAEoCzIoLmZlcm1hdGEudjEuRXZhbHVhdGlvbkRpYWdub3N0aWNBcnRpZmFjdCLxAQoiQW5hbHl6ZVNjZW5hcmlvUnVuUm9vdENhdXNlUmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESFAoMd29ya3NwYWNlX2lkGAIgASgJEhcKBnJ1bl9pZBgDIAEoCUIHukgEcgIQARIfChdzdXNwZWN0ZWRfZmFpbHVyZV9tb2RlcxgEIAMoCRIVCg1pbmNsdWRlX3RyYWNlGAUgASgIEhgKEHBlcnNpc3RfYXJ0aWZhY3QYBiABKAgSKAoHY29udGV4dBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiYQojQW5hbHl6ZVNjZW5hcmlvUnVuUm9vdENhdXNlUmVzcG9uc2USOgoIYXJ0aWZhY3QYASABKAsyKC5mZXJtYXRhLnYxLkV2YWx1YXRpb25EaWFnbm9zdGljQXJ0aWZhY3QikQIKHkp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5TWV0cmljcxIRCglwcmVjaXNpb24YASABKAESDgoGcmVjYWxsGAIgASgBEhAKCGYxX3Njb3JlGAMgASgBEhAKCGFjY3VyYWN5GAQgASgBEiIKEXRvdGFsX3ZhbGlkYXRpb25zGAUgASgFQge6SAQaAigAEh8KDnRydWVfcG9zaXRpdmVzGAYgASgFQge6SAQaAigAEiAKD2ZhbHNlX3Bvc2l0aXZlcxgHIAEoBUIHukgEGgIoABIfCg50cnVlX25lZ2F0aXZlcxgIIAEoBUIHukgEGgIoABIgCg9mYWxzZV9uZWdhdGl2ZXMYCSABKAVCB7pIBBoCKAAiwAEKHkp1ZGdlVmFsaWRhdGlvbkNvbmZ1c2lvbk1hdHJpeBImChVqdWRnZV9wYXNzX2h1bWFuX3Bhc3MYASABKAVCB7pIBBoCKAASJgoVanVkZ2VfcGFzc19odW1hbl9mYWlsGAIgASgFQge6SAQaAigAEiYKFWp1ZGdlX2ZhaWxfaHVtYW5fcGFzcxgDIAEoBUIHukgEGgIoABImChVqdWRnZV9mYWlsX2h1bWFuX2ZhaWwYBCABKAVCB7pIBBoCKAAi0QEKGkp1ZGdlVmFsaWRhdGlvbkJpYXNNZXRyaWNzEhQKDG92ZXJfc2NvcmluZxgBIAEoCBIVCg11bmRlcl9zY29yaW5nGAIgASgIEhMKC3Njb3JlX2RyaWZ0GAMgASgBEhsKE2F2ZXJhZ2VfanVkZ2Vfc2NvcmUYBCABKAESGwoTYXZlcmFnZV9odW1hbl9zY29yZRgFIAEoARIZChFzY29yZV9jb3JyZWxhdGlvbhgGIAEoARIcCgtzYW1wbGVfc2l6ZRgHIAEoBUIHukgEGgIoACKcAQoaSnVkZ2VWYWxpZGF0aW9uQ2FsaWJyYXRpb24SGQoIanVkZ2VfaWQYASABKAlCB7pIBHICEAESGwoTdmFsaWRhdGlvbl9hY2N1cmFjeRgCIAEoARIRCgl2YWxpZGF0ZWQYAyABKAgSMwoPbGFzdF92YWxpZGF0aW9uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKZBAoZSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbhIeCg1ldmFsdWF0aW9uX2lkGAEgASgJQge6SARyAhABEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAyABKAkSGQoIanVkZ2VfaWQYBCABKAlCB7pIBHICEAESFwoPc2NlbmFyaW9fcnVuX2lkGAUgASgJEhQKDGFzc2VydGlvbl9pZBgGIAEoCRIsCgtqdWRnZV9zY29yZRgHIAEoAUIXukgUEhIZAAAAAAAA8D8pAAAAAAAAAAASFAoManVkZ2VfcGFzc2VkGAggASgIEhcKD2h1bWFuX3ZhbGlkYXRlZBgJIAEoCBIxCgtodW1hbl9zY29yZRgKIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAsgASgJEg4KBnNvdXJjZRgMIAEoCRIwCgxldmFsdWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9odW1hbl9zY29yZSJIChlKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlEhkKCGp1ZGdlX2lkGAEgASgJQge6SARyAhABEhAKCGFjY3VyYWN5GAIgASgBImAKIUdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiYQoiR2V0SnVkZ2VWYWxpZGF0aW9uQWNjdXJhY3lSZXNwb25zZRI7CgdtZXRyaWNzGAEgASgLMiouZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25BY2N1cmFjeU1ldHJpY3MiZwooR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVxdWVzdBIgCg9vcmdhbml6YXRpb25faWQYASABKAlCB7pIBHICEAESGQoIanVkZ2VfaWQYAiABKAlCB7pIBHICEAEiZwopR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4UmVzcG9uc2USOgoGbWF0cml4GAEgASgLMiouZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXgiXAodR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1JlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABIlkKHkdldEp1ZGdlVmFsaWRhdGlvbkJpYXNSZXNwb25zZRI3CgdtZXRyaWNzGAEgASgLMiYuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25CaWFzTWV0cmljcyJgCiFSZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlcXVlc3QSIAoPb3JnYW5pemF0aW9uX2lkGAEgASgJQge6SARyAhABEhkKCGp1ZGdlX2lkGAIgASgJQge6SARyAhABImEKIlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVzcG9uc2USOwoLY2FsaWJyYXRpb24YASABKAsyJi5mZXJtYXRhLnYxLkp1ZGdlVmFsaWRhdGlvbkNhbGlicmF0aW9uIr0DCiZSZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBIVCg1ldmFsdWF0aW9uX2lkGAEgASgJEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIUCgx3b3Jrc3BhY2VfaWQYAyABKAkSGQoIanVkZ2VfaWQYBCABKAlCB7pIBHICEAESFwoPc2NlbmFyaW9fcnVuX2lkGAUgASgJEhQKDGFzc2VydGlvbl9pZBgGIAEoCRIsCgtqdWRnZV9zY29yZRgHIAEoAUIXukgUEhIZAAAAAAAA8D8pAAAAAAAAAAASFAoManVkZ2VfcGFzc2VkGAggASgIEhcKD2h1bWFuX3ZhbGlkYXRlZBgJIAEoCBIxCgtodW1hbl9zY29yZRgKIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAsgASgJEg4KBnNvdXJjZRgMIAEoCRIwCgxldmFsdWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9odW1hbl9zY29yZSJkCidSZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2USOQoKZXZhbHVhdGlvbhgBIAEoCzIlLmZlcm1hdGEudjEuSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbiLJAQooVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBIeCg1ldmFsdWF0aW9uX2lkGAEgASgJQge6SARyAhABEiAKD29yZ2FuaXphdGlvbl9pZBgCIAEoCUIHukgEcgIQARIxCgtodW1hbl9zY29yZRgDIAEoAUIXukgUEhIZAAAAAAAAWUApAAAAAAAAAABIAIgBARIYChB2YWxpZGF0aW9uX25vdGVzGAQgASgJQg4KDF9odW1hbl9zY29yZSJmCilWYWxpZGF0ZUp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXNwb25zZRI5CgpldmFsdWF0aW9uGAEgASgLMiUuZmVybWF0YS52MS5KdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uIqABCiVMaXN0SnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZXNSZXF1ZXN0EiAKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIHukgEcgIQARIgCg9taW5fdmFsaWRhdGlvbnMYAiABKAVCB7pIBBoCKAASMwoSYWNjdXJhY3lfdGhyZXNob2xkGAMgASgBQhe6SBQSEhkAAAAAAADwPykAAAAAAAAAACK/AQomTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVzcG9uc2USOQoKY2FuZGlkYXRlcxgBIAMoCzIlLmZlcm1hdGEudjEuSnVkZ2VDYWxpYnJhdGlvbkNhbmRpZGF0ZRIcCgt0b3RhbF9jb3VudBgCIAEoBUIHukgEGgIoABIgCg9taW5fdmFsaWRhdGlvbnMYAyABKAVCB7pIBBoCKAASGgoSYWNjdXJhY3lfdGhyZXNob2xkGAQgASgBIhsKGUdldE1pZ3JhdGlvblN0YXR1c1JlcXVlc3QiXAoUUm91dGVNaWdyYXRpb25TdGF0dXMSEwoLcGF0aF9wcmVmaXgYASABKAkSEAoIbWlncmF0ZWQYAiABKAgSHQoVcHJveGllZF9yZXF1ZXN0X2NvdW50GAMgASgDIk4KGkdldE1pZ3JhdGlvblN0YXR1c1Jlc3BvbnNlEjAKBnJvdXRlcxgBIAMoCzIgLmZlcm1hdGEudjEuUm91dGVNaWdyYXRpb25TdGF0dXMq5wEKDUFzc2VydGlvbktpbmQSHgoaQVNTRVJUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIbChdBU1NFUlRJT05fS0lORF9DT05UQUlOUxABEh8KG0FTU0VSVElPTl9LSU5EX05PVF9DT05UQUlOUxACEhgKFEFTU0VSVElPTl9LSU5EX1JFR0VYEAMSHQoZQVNTRVJUSU9OX0tJTkRfU0lNSUxBUklUWRAEEh8KG0FTU0VSVElPTl9LSU5EX0NVU1RPTV9KVURHRRAFEh4KGkFTU0VSVElPTl9LSU5EX0pTT05fU0NIRU1BEAYqiAEKCUp1ZGdlS2luZBIaChZKVURHRV9LSU5EX1VOU1BFQ0lGSUVEEAASEgoOSlVER0VfS0lORF9MTE0QARIZChVKVURHRV9LSU5EX1JVTEVfQkFTRUQQAhIZChVKVURHRV9LSU5EX1NJTUlMQVJJVFkQAxIVChFKVURHRV9LSU5EX0NVU1RPTRAEKpMCChdTY2VuYXJpb0Vudmlyb25tZW50S2luZBIpCiVTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1VOU1BFQ0lGSUVEEAASJAogU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9SRVBMQVkQARImCiJTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1NUQVJMQVJLEAISJwojU0NFTkFSSU9fRU5WSVJPTk1FTlRfS0lORF9NT0NLX0hUVFAQAxIlCiFTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1NBTkRCT1gQBBIvCitTQ0VOQVJJT19FTlZJUk9OTUVOVF9LSU5EX1BST0RVQ1RJT05fU0hBRE9XEAUqpwIKFVVzZXJTaW11bGF0b3JTdHJhdGVneRInCiNVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEicKI1VTRVJfU0lNVUxBVE9SX1NUUkFURUdZX0NPT1BFUkFUSVZFEAESIQodVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfUkVBQ1QQAhIiCh5VU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9WRVJJRlkQAxImCiJVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9SRUZMRUNUSU9OEAQSJwojVVNFUl9TSU1VTEFUT1JfU1RSQVRFR1lfQURWRVJTQVJJQUwQBRIkCiBVU0VSX1NJTVVMQVRPUl9TVFJBVEVHWV9DT05GVVNFRBAGKrYCChRPdXRjb21lQ3JpdGVyaW9uS2luZBImCiJPVVRDT01FX0NSSVRFUklPTl9LSU5EX1VOU1BFQ0lGSUVEEAASJgoiT1VUQ09NRV9DUklURVJJT05fS0lORF9GSU5BTF9TVEFURRABEioKJk9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfVEFTS19DT01QTEVUSU9OEAISJQohT1VUQ09NRV9DUklURVJJT05fS0lORF9UUkFKRUNUT1JZEAMSJgoiT1VUQ09NRV9DUklURVJJT05fS0lORF9DT1NUX0JVREdFVBAEEikKJU9VVENPTUVfQ1JJVEVSSU9OX0tJTkRfTEFURU5DWV9CVURHRVQQBRIoCiRPVVRDT01FX0NSSVRFUklPTl9LSU5EX1FVQUxJVFlfU0NPUkUQBiq6AwoXR292ZXJuYW5jZUFzc2VydGlvblR5cGUSKQolR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9VTlNQRUNJRklFRBAAEjEKLUdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfRVNDQUxBVElPTl9SRVFVSVJFRBABEjMKL0dPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfQVVUT19QUk9DRUVEX0VYUEVDVEVEEAISMQotR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9SSVNLX0NMQVNTSUZJQ0FUSU9OEAMSMgouR09WRVJOQU5DRV9BU1NFUlRJT05fVFlQRV9EQVRBX0FDQ0VTU19CT1VOREFSWRAEEjgKNEdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfR09WRVJOQU5DRV9CTE9DS19SRVNQRUNURUQQBRIzCi9HT1ZFUk5BTkNFX0FTU0VSVElPTl9UWVBFX1NFTEZfQVBQUk9WQUxfQkxPQ0tFRBAGEjYKMkdPVkVSTkFOQ0VfQVNTRVJUSU9OX1RZUEVfUElJX0RFVEVDVEVEX0FORF9IQU5ETEVEEAcqgAMKF0RlbGVnYXRpb25Bc3NlcnRpb25UeXBlEikKJURFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABI3CjNERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0RFTEVHQVRJT05fVEFSR0VUX0NPUlJFQ1QQARIyCi5ERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0NPTlRFWFRfUFJFU0VSVkFUSU9OEAISMgouREVMRUdBVElPTl9BU1NFUlRJT05fVFlQRV9ERUxFR0FUSU9OX1ZBTFVFX0FERBADEjUKMURFTEVHQVRJT05fQVNTRVJUSU9OX1RZUEVfREVMRUdBVElPTl9DT1NUX0JPVU5ERUQQBBIxCi1ERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0NIQUlOX0RFUFRIX0JPVU5ERUQQBRIvCitERUxFR0FUSU9OX0FTU0VSVElPTl9UWVBFX0ZBSUxVUkVfSVNPTEFUSU9OEAYq/AEKEVNjZW5hcmlvUnVuU3RhdHVzEiMKH1NDRU5BUklPX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtTQ0VOQVJJT19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtTQ0VOQVJJT19SVU5fU1RBVFVTX1JVTk5JTkcQAhIeChpTQ0VOQVJJT19SVU5fU1RBVFVTX1BBU1NFRBADEh4KGlNDRU5BUklPX1JVTl9TVEFUVVNfRkFJTEVEEAQSHQoZU0NFTkFSSU9fUlVOX1NUQVRVU19FUlJPUhAFEiEKHVNDRU5BUklPX1JVTl9TVEFUVVNfQ0FOQ0VMTEVEEAYqlQEKFkRpYWdub3N0aWNBcnRpZmFjdEtpbmQSKAokRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX1VOU1BFQ0lGSUVEEAASKAokRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX0VYUExBTkFUSU9OEAESJwojRElBR05PU1RJQ19BUlRJRkFDVF9LSU5EX1JPT1RfQ0FVU0UQAiq+AQoZRGlhZ25vc3RpY0ZpbmRpbmdTZXZlcml0eRIrCidESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfVU5TUEVDSUZJRUQQABIkCiBESUFHTk9TVElDX0ZJTkRJTkdfU0VWRVJJVFlfSU5GTxABEicKI0RJQUdOT1NUSUNfRklORElOR19TRVZFUklUWV9XQVJOSU5HEAISJQohRElBR05PU1RJQ19GSU5ESU5HX1NFVkVSSVRZX0VSUk9SEAMy1SMKDkZlcm1hdGFTZXJ2aWNlEoQBCg9DcmVhdGVUZXN0U3VpdGUSIi5mZXJtYXRhLnYxLkNyZWF0ZVRlc3RTdWl0ZVJlcXVlc3QaIy5mZXJtYXRhLnYxLkNyZWF0ZVRlc3RTdWl0ZVJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEnoKDEdldFRlc3RTdWl0ZRIfLmZlcm1hdGEudjEuR2V0VGVzdFN1aXRlUmVxdWVzdBogLmZlcm1hdGEudjEuR2V0VGVzdFN1aXRlUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKAAQoOTGlzdFRlc3RTdWl0ZXMSIS5mZXJtYXRhLnYxLkxpc3RUZXN0U3VpdGVzUmVxdWVzdBoiLmZlcm1hdGEudjEuTGlzdFRlc3RTdWl0ZXNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEoEBCg5DcmVhdGVTY2VuYXJpbxIhLmZlcm1hdGEudjEuQ3JlYXRlU2NlbmFyaW9SZXF1ZXN0GiIuZmVybWF0YS52MS5DcmVhdGVTY2VuYXJpb1Jlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEncKC0dldFNjZW5hcmlvEh4uZmVybWF0YS52MS5HZXRTY2VuYXJpb1JlcXVlc3QaHy5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJ9Cg1MaXN0U2NlbmFyaW9zEiAuZmVybWF0YS52MS5MaXN0U2NlbmFyaW9zUmVxdWVzdBohLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSlgEKFVVwc2VydEN1c3RvbUV2YWx1YXRvchIoLmZlcm1hdGEudjEuVXBzZXJ0Q3VzdG9tRXZhbHVhdG9yUmVxdWVzdBopLmZlcm1hdGEudjEuVXBzZXJ0Q3VzdG9tRXZhbHVhdG9yUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSjAEKEkdldEN1c3RvbUV2YWx1YXRvchIlLmZlcm1hdGEudjEuR2V0Q3VzdG9tRXZhbHVhdG9yUmVxdWVzdBomLmZlcm1hdGEudjEuR2V0Q3VzdG9tRXZhbHVhdG9yUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKSAQoUTGlzdEN1c3RvbUV2YWx1YXRvcnMSJy5mZXJtYXRhLnYxLkxpc3RDdXN0b21FdmFsdWF0b3JzUmVxdWVzdBooLmZlcm1hdGEudjEuTGlzdEN1c3RvbUV2YWx1YXRvcnNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpYBChVEZWxldGVDdXN0b21FdmFsdWF0b3ISKC5mZXJtYXRhLnYxLkRlbGV0ZUN1c3RvbUV2YWx1YXRvclJlcXVlc3QaKS5mZXJtYXRhLnYxLkRlbGV0ZUN1c3RvbUV2YWx1YXRvclJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEngKC1Vwc2VydEp1ZGdlEh4uZmVybWF0YS52MS5VcHNlcnRKdWRnZVJlcXVlc3QaHy5mZXJtYXRhLnYxLlVwc2VydEp1ZGdlUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSbgoIR2V0SnVkZ2USGy5mZXJtYXRhLnYxLkdldEp1ZGdlUmVxdWVzdBocLmZlcm1hdGEudjEuR2V0SnVkZ2VSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEnQKCkxpc3RKdWRnZXMSHS5mZXJtYXRhLnYxLkxpc3RKdWRnZXNSZXF1ZXN0Gh4uZmVybWF0YS52MS5MaXN0SnVkZ2VzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJ4CgtEZWxldGVKdWRnZRIeLmZlcm1hdGEudjEuRGVsZXRlSnVkZ2VSZXF1ZXN0Gh8uZmVybWF0YS52MS5EZWxldGVKdWRnZVJlc3BvbnNlIijK8xgNZmVybWF0YTp3cml0ZdjzGALq8xgPb3JnYW5pemF0aW9uX2lkEn4KDVN0YXJ0U2NlbmFyaW8SIC5mZXJtYXRhLnYxLlN0YXJ0U2NlbmFyaW9SZXF1ZXN0GiEuZmVybWF0YS52MS5TdGFydFNjZW5hcmlvUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYA+rzGA9vcmdhbml6YXRpb25faWQSogEKFkNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW8SKS5mZXJtYXRhLnYxLkNyZWF0ZUFuZFN0YXJ0U2NlbmFyaW9SZXF1ZXN0GiouZmVybWF0YS52MS5DcmVhdGVBbmRTdGFydFNjZW5hcmlvUmVzcG9uc2UiMcrzGA1mZXJtYXRhOndyaXRl2PMYA+rzGBhzY2VuYXJpby5vcmdhbml6YXRpb25faWQSigEKEVJlY29yZFNjZW5hcmlvUnVuEiQuZmVybWF0YS52MS5SZWNvcmRTY2VuYXJpb1J1blJlcXVlc3QaJS5mZXJtYXRhLnYxLlJlY29yZFNjZW5hcmlvUnVuUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSgAEKDkdldFNjZW5hcmlvUnVuEiEuZmVybWF0YS52MS5HZXRTY2VuYXJpb1J1blJlcXVlc3QaIi5mZXJtYXRhLnYxLkdldFNjZW5hcmlvUnVuUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKGAQoQTGlzdFNjZW5hcmlvUnVucxIjLmZlcm1hdGEudjEuTGlzdFNjZW5hcmlvUnVuc1JlcXVlc3QaJC5mZXJtYXRhLnYxLkxpc3RTY2VuYXJpb1J1bnNSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEr8BCiNHZXRFdmFsdWF0aW9uT2JzZXJ2YWJpbGl0eURhc2hib2FyZBI2LmZlcm1hdGEudjEuR2V0RXZhbHVhdGlvbk9ic2VydmFiaWxpdHlEYXNoYm9hcmRSZXF1ZXN0GjcuZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uT2JzZXJ2YWJpbGl0eURhc2hib2FyZFJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSmwEKF0dldEV2YWx1YXRpb25SdW5NZXRyaWNzEiouZmVybWF0YS52MS5HZXRFdmFsdWF0aW9uUnVuTWV0cmljc1JlcXVlc3QaKy5mZXJtYXRhLnYxLkdldEV2YWx1YXRpb25SdW5NZXRyaWNzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBKMAQoSRXhwbGFpblNjZW5hcmlvUnVuEiUuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXF1ZXN0GiYuZmVybWF0YS52MS5FeHBsYWluU2NlbmFyaW9SdW5SZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGALq8xgPb3JnYW5pemF0aW9uX2lkEqcBChtBbmFseXplU2NlbmFyaW9SdW5Sb290Q2F1c2USLi5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlcXVlc3QaLy5mZXJtYXRhLnYxLkFuYWx5emVTY2VuYXJpb1J1blJvb3RDYXVzZVJlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAurzGA9vcmdhbml6YXRpb25faWQSpAEKGkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5Ei0uZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25BY2N1cmFjeVJlcXVlc3QaLi5mZXJtYXRhLnYxLkdldEp1ZGdlVmFsaWRhdGlvbkFjY3VyYWN5UmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBK5AQohR2V0SnVkZ2VWYWxpZGF0aW9uQ29uZnVzaW9uTWF0cml4EjQuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXF1ZXN0GjUuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25Db25mdXNpb25NYXRyaXhSZXNwb25zZSInyvMYDGZlcm1hdGE6cmVhZNjzGAHq8xgPb3JnYW5pemF0aW9uX2lkEpgBChZHZXRKdWRnZVZhbGlkYXRpb25CaWFzEikuZmVybWF0YS52MS5HZXRKdWRnZVZhbGlkYXRpb25CaWFzUmVxdWVzdBoqLmZlcm1hdGEudjEuR2V0SnVkZ2VWYWxpZGF0aW9uQmlhc1Jlc3BvbnNlIifK8xgMZmVybWF0YTpyZWFk2PMYAerzGA9vcmdhbml6YXRpb25faWQSpQEKGlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uEi0uZmVybWF0YS52MS5SZWNhbGlicmF0ZUp1ZGdlVmFsaWRhdGlvblJlcXVlc3QaLi5mZXJtYXRhLnYxLlJlY2FsaWJyYXRlSnVkZ2VWYWxpZGF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQStAEKH1JlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb24SMi5mZXJtYXRhLnYxLlJlY29yZEp1ZGdlVmFsaWRhdGlvbkV2YWx1YXRpb25SZXF1ZXN0GjMuZmVybWF0YS52MS5SZWNvcmRKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSugEKIVZhbGlkYXRlSnVkZ2VWYWxpZGF0aW9uRXZhbHVhdGlvbhI0LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVxdWVzdBo1LmZlcm1hdGEudjEuVmFsaWRhdGVKdWRnZVZhbGlkYXRpb25FdmFsdWF0aW9uUmVzcG9uc2UiKMrzGA1mZXJtYXRhOndyaXRl2PMYAurzGA9vcmdhbml6YXRpb25faWQSsAEKHkxpc3RKdWRnZUNhbGlicmF0aW9uQ2FuZGlkYXRlcxIxLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVxdWVzdBoyLmZlcm1hdGEudjEuTGlzdEp1ZGdlQ2FsaWJyYXRpb25DYW5kaWRhdGVzUmVzcG9uc2UiJ8rzGAxmZXJtYXRhOnJlYWTY8xgB6vMYD29yZ2FuaXphdGlvbl9pZBJtChJHZXRNaWdyYXRpb25TdGF0dXMSJS5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1JlcXVlc3QaJi5mZXJtYXRhLnYxLkdldE1pZ3JhdGlvblN0YXR1c1Jlc3BvbnNlIgjY8xgB4PMYAUI5WjdnaXRodWIuY29tL2V2YWxvcHMvcGxhdGZvcm0vZ2VuL2dvL2Zlcm1hdGEvdjE7ZmVybWF0YXYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_analytics, file_common_v1_authz, file_common_v1_risk, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_traces_v1_traces]);
15
15
  /**
16
16
  * Describes the message fermata.v1.TestSuite.
17
17
  * Use `create(TestSuiteSchema)` to create a new message.
@@ -317,151 +317,196 @@ export const ListScenarioRunsRequestSchema = /*@__PURE__*/ messageDesc(file_ferm
317
317
  * Use `create(ListScenarioRunsResponseSchema)` to create a new message.
318
318
  */
319
319
  export const ListScenarioRunsResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 60);
320
+ /**
321
+ * Describes the message fermata.v1.GetEvaluationObservabilityDashboardRequest.
322
+ * Use `create(GetEvaluationObservabilityDashboardRequestSchema)` to create a new message.
323
+ */
324
+ export const GetEvaluationObservabilityDashboardRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 61);
325
+ /**
326
+ * Describes the message fermata.v1.EvaluationObservabilitySummary.
327
+ * Use `create(EvaluationObservabilitySummarySchema)` to create a new message.
328
+ */
329
+ export const EvaluationObservabilitySummarySchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 62);
330
+ /**
331
+ * Describes the message fermata.v1.EvaluationRecentRunSummary.
332
+ * Use `create(EvaluationRecentRunSummarySchema)` to create a new message.
333
+ */
334
+ export const EvaluationRecentRunSummarySchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 63);
335
+ /**
336
+ * Describes the message fermata.v1.EvaluationRegressionAlert.
337
+ * Use `create(EvaluationRegressionAlertSchema)` to create a new message.
338
+ */
339
+ export const EvaluationRegressionAlertSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 64);
340
+ /**
341
+ * Describes the message fermata.v1.GetEvaluationObservabilityDashboardResponse.
342
+ * Use `create(GetEvaluationObservabilityDashboardResponseSchema)` to create a new message.
343
+ */
344
+ export const GetEvaluationObservabilityDashboardResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 65);
345
+ /**
346
+ * Describes the message fermata.v1.GetEvaluationRunMetricsRequest.
347
+ * Use `create(GetEvaluationRunMetricsRequestSchema)` to create a new message.
348
+ */
349
+ export const GetEvaluationRunMetricsRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 66);
350
+ /**
351
+ * Describes the message fermata.v1.EvaluationRunMetricsSummary.
352
+ * Use `create(EvaluationRunMetricsSummarySchema)` to create a new message.
353
+ */
354
+ export const EvaluationRunMetricsSummarySchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 67);
355
+ /**
356
+ * Describes the message fermata.v1.EvaluationRunResultMetrics.
357
+ * Use `create(EvaluationRunResultMetricsSchema)` to create a new message.
358
+ */
359
+ export const EvaluationRunResultMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 68);
360
+ /**
361
+ * Describes the message fermata.v1.GetEvaluationRunMetricsResponse.
362
+ * Use `create(GetEvaluationRunMetricsResponseSchema)` to create a new message.
363
+ */
364
+ export const GetEvaluationRunMetricsResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 69);
320
365
  /**
321
366
  * Describes the message fermata.v1.DiagnosticFinding.
322
367
  * Use `create(DiagnosticFindingSchema)` to create a new message.
323
368
  */
324
- export const DiagnosticFindingSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 61);
369
+ export const DiagnosticFindingSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 70);
325
370
  /**
326
371
  * Describes the message fermata.v1.EvaluationDiagnosticArtifact.
327
372
  * Use `create(EvaluationDiagnosticArtifactSchema)` to create a new message.
328
373
  */
329
- export const EvaluationDiagnosticArtifactSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 62);
374
+ export const EvaluationDiagnosticArtifactSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 71);
330
375
  /**
331
376
  * Describes the message fermata.v1.ExplainScenarioRunRequest.
332
377
  * Use `create(ExplainScenarioRunRequestSchema)` to create a new message.
333
378
  */
334
- export const ExplainScenarioRunRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 63);
379
+ export const ExplainScenarioRunRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 72);
335
380
  /**
336
381
  * Describes the message fermata.v1.ExplainScenarioRunResponse.
337
382
  * Use `create(ExplainScenarioRunResponseSchema)` to create a new message.
338
383
  */
339
- export const ExplainScenarioRunResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 64);
384
+ export const ExplainScenarioRunResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 73);
340
385
  /**
341
386
  * Describes the message fermata.v1.AnalyzeScenarioRunRootCauseRequest.
342
387
  * Use `create(AnalyzeScenarioRunRootCauseRequestSchema)` to create a new message.
343
388
  */
344
- export const AnalyzeScenarioRunRootCauseRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 65);
389
+ export const AnalyzeScenarioRunRootCauseRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 74);
345
390
  /**
346
391
  * Describes the message fermata.v1.AnalyzeScenarioRunRootCauseResponse.
347
392
  * Use `create(AnalyzeScenarioRunRootCauseResponseSchema)` to create a new message.
348
393
  */
349
- export const AnalyzeScenarioRunRootCauseResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 66);
394
+ export const AnalyzeScenarioRunRootCauseResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 75);
350
395
  /**
351
396
  * Describes the message fermata.v1.JudgeValidationAccuracyMetrics.
352
397
  * Use `create(JudgeValidationAccuracyMetricsSchema)` to create a new message.
353
398
  */
354
- export const JudgeValidationAccuracyMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 67);
399
+ export const JudgeValidationAccuracyMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 76);
355
400
  /**
356
401
  * Describes the message fermata.v1.JudgeValidationConfusionMatrix.
357
402
  * Use `create(JudgeValidationConfusionMatrixSchema)` to create a new message.
358
403
  */
359
- export const JudgeValidationConfusionMatrixSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 68);
404
+ export const JudgeValidationConfusionMatrixSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 77);
360
405
  /**
361
406
  * Describes the message fermata.v1.JudgeValidationBiasMetrics.
362
407
  * Use `create(JudgeValidationBiasMetricsSchema)` to create a new message.
363
408
  */
364
- export const JudgeValidationBiasMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 69);
409
+ export const JudgeValidationBiasMetricsSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 78);
365
410
  /**
366
411
  * Describes the message fermata.v1.JudgeValidationCalibration.
367
412
  * Use `create(JudgeValidationCalibrationSchema)` to create a new message.
368
413
  */
369
- export const JudgeValidationCalibrationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 70);
414
+ export const JudgeValidationCalibrationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 79);
370
415
  /**
371
416
  * Describes the message fermata.v1.JudgeValidationEvaluation.
372
417
  * Use `create(JudgeValidationEvaluationSchema)` to create a new message.
373
418
  */
374
- export const JudgeValidationEvaluationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 71);
419
+ export const JudgeValidationEvaluationSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 80);
375
420
  /**
376
421
  * Describes the message fermata.v1.JudgeCalibrationCandidate.
377
422
  * Use `create(JudgeCalibrationCandidateSchema)` to create a new message.
378
423
  */
379
- export const JudgeCalibrationCandidateSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 72);
424
+ export const JudgeCalibrationCandidateSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 81);
380
425
  /**
381
426
  * Describes the message fermata.v1.GetJudgeValidationAccuracyRequest.
382
427
  * Use `create(GetJudgeValidationAccuracyRequestSchema)` to create a new message.
383
428
  */
384
- export const GetJudgeValidationAccuracyRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 73);
429
+ export const GetJudgeValidationAccuracyRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 82);
385
430
  /**
386
431
  * Describes the message fermata.v1.GetJudgeValidationAccuracyResponse.
387
432
  * Use `create(GetJudgeValidationAccuracyResponseSchema)` to create a new message.
388
433
  */
389
- export const GetJudgeValidationAccuracyResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 74);
434
+ export const GetJudgeValidationAccuracyResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 83);
390
435
  /**
391
436
  * Describes the message fermata.v1.GetJudgeValidationConfusionMatrixRequest.
392
437
  * Use `create(GetJudgeValidationConfusionMatrixRequestSchema)` to create a new message.
393
438
  */
394
- export const GetJudgeValidationConfusionMatrixRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 75);
439
+ export const GetJudgeValidationConfusionMatrixRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 84);
395
440
  /**
396
441
  * Describes the message fermata.v1.GetJudgeValidationConfusionMatrixResponse.
397
442
  * Use `create(GetJudgeValidationConfusionMatrixResponseSchema)` to create a new message.
398
443
  */
399
- export const GetJudgeValidationConfusionMatrixResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 76);
444
+ export const GetJudgeValidationConfusionMatrixResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 85);
400
445
  /**
401
446
  * Describes the message fermata.v1.GetJudgeValidationBiasRequest.
402
447
  * Use `create(GetJudgeValidationBiasRequestSchema)` to create a new message.
403
448
  */
404
- export const GetJudgeValidationBiasRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 77);
449
+ export const GetJudgeValidationBiasRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 86);
405
450
  /**
406
451
  * Describes the message fermata.v1.GetJudgeValidationBiasResponse.
407
452
  * Use `create(GetJudgeValidationBiasResponseSchema)` to create a new message.
408
453
  */
409
- export const GetJudgeValidationBiasResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 78);
454
+ export const GetJudgeValidationBiasResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 87);
410
455
  /**
411
456
  * Describes the message fermata.v1.RecalibrateJudgeValidationRequest.
412
457
  * Use `create(RecalibrateJudgeValidationRequestSchema)` to create a new message.
413
458
  */
414
- export const RecalibrateJudgeValidationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 79);
459
+ export const RecalibrateJudgeValidationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 88);
415
460
  /**
416
461
  * Describes the message fermata.v1.RecalibrateJudgeValidationResponse.
417
462
  * Use `create(RecalibrateJudgeValidationResponseSchema)` to create a new message.
418
463
  */
419
- export const RecalibrateJudgeValidationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 80);
464
+ export const RecalibrateJudgeValidationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 89);
420
465
  /**
421
466
  * Describes the message fermata.v1.RecordJudgeValidationEvaluationRequest.
422
467
  * Use `create(RecordJudgeValidationEvaluationRequestSchema)` to create a new message.
423
468
  */
424
- export const RecordJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 81);
469
+ export const RecordJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 90);
425
470
  /**
426
471
  * Describes the message fermata.v1.RecordJudgeValidationEvaluationResponse.
427
472
  * Use `create(RecordJudgeValidationEvaluationResponseSchema)` to create a new message.
428
473
  */
429
- export const RecordJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 82);
474
+ export const RecordJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 91);
430
475
  /**
431
476
  * Describes the message fermata.v1.ValidateJudgeValidationEvaluationRequest.
432
477
  * Use `create(ValidateJudgeValidationEvaluationRequestSchema)` to create a new message.
433
478
  */
434
- export const ValidateJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 83);
479
+ export const ValidateJudgeValidationEvaluationRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 92);
435
480
  /**
436
481
  * Describes the message fermata.v1.ValidateJudgeValidationEvaluationResponse.
437
482
  * Use `create(ValidateJudgeValidationEvaluationResponseSchema)` to create a new message.
438
483
  */
439
- export const ValidateJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 84);
484
+ export const ValidateJudgeValidationEvaluationResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 93);
440
485
  /**
441
486
  * Describes the message fermata.v1.ListJudgeCalibrationCandidatesRequest.
442
487
  * Use `create(ListJudgeCalibrationCandidatesRequestSchema)` to create a new message.
443
488
  */
444
- export const ListJudgeCalibrationCandidatesRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 85);
489
+ export const ListJudgeCalibrationCandidatesRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 94);
445
490
  /**
446
491
  * Describes the message fermata.v1.ListJudgeCalibrationCandidatesResponse.
447
492
  * Use `create(ListJudgeCalibrationCandidatesResponseSchema)` to create a new message.
448
493
  */
449
- export const ListJudgeCalibrationCandidatesResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 86);
494
+ export const ListJudgeCalibrationCandidatesResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 95);
450
495
  /**
451
496
  * Describes the message fermata.v1.GetMigrationStatusRequest.
452
497
  * Use `create(GetMigrationStatusRequestSchema)` to create a new message.
453
498
  */
454
- export const GetMigrationStatusRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 87);
499
+ export const GetMigrationStatusRequestSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 96);
455
500
  /**
456
501
  * Describes the message fermata.v1.RouteMigrationStatus.
457
502
  * Use `create(RouteMigrationStatusSchema)` to create a new message.
458
503
  */
459
- export const RouteMigrationStatusSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 88);
504
+ export const RouteMigrationStatusSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 97);
460
505
  /**
461
506
  * Describes the message fermata.v1.GetMigrationStatusResponse.
462
507
  * Use `create(GetMigrationStatusResponseSchema)` to create a new message.
463
508
  */
464
- export const GetMigrationStatusResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 89);
509
+ export const GetMigrationStatusResponseSchema = /*@__PURE__*/ messageDesc(file_fermata_v1_fermata, 98);
465
510
  /**
466
511
  * @generated from enum fermata.v1.AssertionKind
467
512
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evalops/sdk-ts",
3
- "version": "0.1.67",
3
+ "version": "0.1.68",
4
4
  "description": "Generated TypeScript SDK protobuf types for EvalOps public APIs",
5
5
  "type": "module",
6
6
  "sideEffects": false,