@raystack/proton 0.1.0-8cb19702a3e47d173732860d58084b83d6941865 → 0.1.0-c68d47cf91d1927f26bbbc1ced1fdfca220fe873

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.
Files changed (266) hide show
  1. package/google/api/annotations_pb.d.ts +34 -0
  2. package/google/api/annotations_pb.js +36 -0
  3. package/google/api/annotations_pb.ts +1 -1
  4. package/google/api/field_behavior_pb.d.ts +134 -0
  5. package/google/api/field_behavior_pb.js +65 -0
  6. package/google/api/field_behavior_pb.ts +1 -1
  7. package/google/api/http_pb.d.ts +477 -0
  8. package/google/api/http_pb.js +47 -0
  9. package/google/api/http_pb.ts +1 -1
  10. package/google/api/httpbody_pb.d.ts +104 -0
  11. package/google/api/httpbody_pb.js +34 -0
  12. package/google/api/httpbody_pb.ts +1 -1
  13. package/index.d.ts +10 -0
  14. package/index.js +10 -0
  15. package/package.json +37 -36
  16. package/protoc-gen-openapiv2/options/annotations_pb.d.ts +63 -0
  17. package/protoc-gen-openapiv2/options/annotations_pb.js +69 -0
  18. package/protoc-gen-openapiv2/options/annotations_pb.ts +1 -1
  19. package/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +1497 -0
  20. package/protoc-gen-openapiv2/options/openapiv2_pb.js +232 -0
  21. package/protoc-gen-openapiv2/options/openapiv2_pb.ts +1 -1
  22. package/raystack/assets/index.d.ts +29 -0
  23. package/raystack/assets/index.js +29 -0
  24. package/raystack/assets/v1beta1/bucket_pb.d.ts +180 -0
  25. package/raystack/assets/v1beta1/bucket_pb.js +32 -0
  26. package/raystack/assets/v1beta1/bucket_pb.ts +1 -1
  27. package/raystack/assets/v1beta1/dashboard_pb.d.ts +217 -0
  28. package/raystack/assets/v1beta1/dashboard_pb.js +32 -0
  29. package/raystack/assets/v1beta1/dashboard_pb.ts +1 -1
  30. package/raystack/assets/v1beta1/event_pb.d.ts +52 -0
  31. package/raystack/assets/v1beta1/event_pb.js +20 -0
  32. package/raystack/assets/v1beta1/event_pb.ts +1 -1
  33. package/raystack/assets/v1beta1/group_pb.d.ts +105 -0
  34. package/raystack/assets/v1beta1/group_pb.js +30 -0
  35. package/raystack/assets/v1beta1/group_pb.ts +1 -1
  36. package/raystack/assets/v1beta1/job_pb.d.ts +78 -0
  37. package/raystack/assets/v1beta1/job_pb.js +25 -0
  38. package/raystack/assets/v1beta1/job_pb.ts +1 -1
  39. package/raystack/assets/v1beta1/lineage_pb.d.ts +43 -0
  40. package/raystack/assets/v1beta1/lineage_pb.js +20 -0
  41. package/raystack/assets/v1beta1/lineage_pb.ts +1 -1
  42. package/raystack/assets/v1beta1/ownership_pb.d.ts +78 -0
  43. package/raystack/assets/v1beta1/ownership_pb.js +26 -0
  44. package/raystack/assets/v1beta1/ownership_pb.ts +1 -1
  45. package/raystack/assets/v1beta1/preview_pb.d.ts +41 -0
  46. package/raystack/assets/v1beta1/preview_pb.js +20 -0
  47. package/raystack/assets/v1beta1/preview_pb.ts +1 -1
  48. package/raystack/assets/v1beta1/properties_pb.d.ts +44 -0
  49. package/raystack/assets/v1beta1/properties_pb.js +20 -0
  50. package/raystack/assets/v1beta1/properties_pb.ts +1 -1
  51. package/raystack/assets/v1beta1/resource_pb.d.ts +74 -0
  52. package/raystack/assets/v1beta1/resource_pb.js +19 -0
  53. package/raystack/assets/v1beta1/resource_pb.ts +1 -1
  54. package/raystack/assets/v1beta1/schema_pb.d.ts +169 -0
  55. package/raystack/assets/v1beta1/schema_pb.js +41 -0
  56. package/raystack/assets/v1beta1/schema_pb.ts +1 -1
  57. package/raystack/assets/v1beta1/table_pb.d.ts +192 -0
  58. package/raystack/assets/v1beta1/table_pb.js +41 -0
  59. package/raystack/assets/v1beta1/table_pb.ts +1 -1
  60. package/raystack/assets/v1beta1/timestamp_pb.d.ts +68 -0
  61. package/raystack/assets/v1beta1/timestamp_pb.js +27 -0
  62. package/raystack/assets/v1beta1/timestamp_pb.ts +1 -1
  63. package/raystack/assets/v1beta1/topic_pb.d.ts +125 -0
  64. package/raystack/assets/v1beta1/topic_pb.js +33 -0
  65. package/raystack/assets/v1beta1/topic_pb.ts +1 -1
  66. package/raystack/assets/v1beta1/user_pb.d.ts +216 -0
  67. package/raystack/assets/v1beta1/user_pb.js +37 -0
  68. package/raystack/assets/v1beta1/user_pb.ts +1 -1
  69. package/raystack/assets/v1beta2/application_pb.d.ts +59 -0
  70. package/raystack/assets/v1beta2/application_pb.js +20 -0
  71. package/raystack/assets/v1beta2/application_pb.ts +1 -1
  72. package/raystack/assets/v1beta2/asset_pb.d.ts +129 -0
  73. package/raystack/assets/v1beta2/asset_pb.js +21 -0
  74. package/raystack/assets/v1beta2/asset_pb.ts +1 -1
  75. package/raystack/assets/v1beta2/bucket_pb.d.ts +163 -0
  76. package/raystack/assets/v1beta2/bucket_pb.js +28 -0
  77. package/raystack/assets/v1beta2/bucket_pb.ts +1 -1
  78. package/raystack/assets/v1beta2/common_pb.d.ts +170 -0
  79. package/raystack/assets/v1beta2/common_pb.js +41 -0
  80. package/raystack/assets/v1beta2/common_pb.ts +1 -1
  81. package/raystack/assets/v1beta2/dashboard_pb.d.ts +192 -0
  82. package/raystack/assets/v1beta2/dashboard_pb.js +28 -0
  83. package/raystack/assets/v1beta2/dashboard_pb.ts +1 -1
  84. package/raystack/assets/v1beta2/experiment_pb.d.ts +134 -0
  85. package/raystack/assets/v1beta2/experiment_pb.js +27 -0
  86. package/raystack/assets/v1beta2/experiment_pb.ts +1 -1
  87. package/raystack/assets/v1beta2/feature_table_pb.d.ts +167 -0
  88. package/raystack/assets/v1beta2/feature_table_pb.js +34 -0
  89. package/raystack/assets/v1beta2/feature_table_pb.ts +1 -1
  90. package/raystack/assets/v1beta2/group_pb.d.ts +77 -0
  91. package/raystack/assets/v1beta2/group_pb.js +27 -0
  92. package/raystack/assets/v1beta2/group_pb.ts +1 -1
  93. package/raystack/assets/v1beta2/job_pb.d.ts +47 -0
  94. package/raystack/assets/v1beta2/job_pb.js +20 -0
  95. package/raystack/assets/v1beta2/job_pb.ts +1 -1
  96. package/raystack/assets/v1beta2/metric_pb.d.ts +83 -0
  97. package/raystack/assets/v1beta2/metric_pb.js +20 -0
  98. package/raystack/assets/v1beta2/metric_pb.ts +1 -1
  99. package/raystack/assets/v1beta2/model_pb.d.ts +227 -0
  100. package/raystack/assets/v1beta2/model_pb.js +41 -0
  101. package/raystack/assets/v1beta2/model_pb.ts +1 -1
  102. package/raystack/assets/v1beta2/table_pb.d.ts +283 -0
  103. package/raystack/assets/v1beta2/table_pb.js +48 -0
  104. package/raystack/assets/v1beta2/table_pb.ts +1 -1
  105. package/raystack/assets/v1beta2/topic_pb.d.ts +117 -0
  106. package/raystack/assets/v1beta2/topic_pb.js +34 -0
  107. package/raystack/assets/v1beta2/topic_pb.ts +1 -1
  108. package/raystack/assets/v1beta2/user_pb.d.ts +203 -0
  109. package/raystack/assets/v1beta2/user_pb.js +34 -0
  110. package/raystack/assets/v1beta2/user_pb.ts +1 -1
  111. package/raystack/common/index.d.ts +2 -0
  112. package/raystack/common/index.js +2 -0
  113. package/raystack/common/v1/service-CommonService_connectquery.d.ts +10 -0
  114. package/raystack/common/v1/service-CommonService_connectquery.js +10 -0
  115. package/raystack/common/v1/service-CommonService_connectquery.ts +1 -1
  116. package/raystack/common/v1/service_pb.d.ts +100 -0
  117. package/raystack/common/v1/service_pb.js +42 -0
  118. package/raystack/common/v1/service_pb.ts +1 -1
  119. package/raystack/compass/index.d.ts +2 -0
  120. package/raystack/compass/index.js +2 -0
  121. package/raystack/compass/v1beta1/service-CompassService_connectquery.d.ts +184 -0
  122. package/raystack/compass/v1beta1/service-CompassService_connectquery.js +225 -0
  123. package/raystack/compass/v1beta1/service-CompassService_connectquery.ts +1 -1
  124. package/raystack/compass/v1beta1/service_pb.d.ts +2994 -0
  125. package/raystack/compass/v1beta1/service_pb.js +745 -0
  126. package/raystack/compass/v1beta1/service_pb.ts +1 -1
  127. package/raystack/entropy/index.d.ts +4 -0
  128. package/raystack/entropy/index.js +4 -0
  129. package/raystack/entropy/v1beta1/module-ModuleService_connectquery.d.ts +26 -0
  130. package/raystack/entropy/v1beta1/module-ModuleService_connectquery.js +30 -0
  131. package/raystack/entropy/v1beta1/module-ModuleService_connectquery.ts +1 -1
  132. package/raystack/entropy/v1beta1/module_pb.d.ts +261 -0
  133. package/raystack/entropy/v1beta1/module_pb.js +97 -0
  134. package/raystack/entropy/v1beta1/module_pb.ts +1 -1
  135. package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.d.ts +34 -0
  136. package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.js +40 -0
  137. package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.ts +1 -1
  138. package/raystack/entropy/v1beta1/resource_pb.d.ts +636 -0
  139. package/raystack/entropy/v1beta1/resource_pb.js +200 -0
  140. package/raystack/entropy/v1beta1/resource_pb.ts +1 -1
  141. package/raystack/frontier/index.d.ts +5 -0
  142. package/raystack/frontier/index.js +5 -0
  143. package/raystack/frontier/v1beta1/admin-AdminService_connectquery.d.ts +263 -0
  144. package/raystack/frontier/v1beta1/admin-AdminService_connectquery.js +316 -0
  145. package/raystack/frontier/v1beta1/admin-AdminService_connectquery.ts +15 -1
  146. package/raystack/frontier/v1beta1/admin_pb.d.ts +3550 -0
  147. package/raystack/frontier/v1beta1/admin_pb.js +914 -0
  148. package/raystack/frontier/v1beta1/admin_pb.ts +92 -3
  149. package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.d.ts +746 -0
  150. package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.js +915 -0
  151. package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.ts +22 -1
  152. package/raystack/frontier/v1beta1/frontier_pb.d.ts +8883 -0
  153. package/raystack/frontier/v1beta1/frontier_pb.js +2635 -0
  154. package/raystack/frontier/v1beta1/frontier_pb.ts +119 -3
  155. package/raystack/frontier/v1beta1/models_pb.d.ts +2861 -0
  156. package/raystack/frontier/v1beta1/models_pb.js +450 -0
  157. package/raystack/frontier/v1beta1/models_pb.ts +71 -2
  158. package/raystack/guardian/index.d.ts +2 -0
  159. package/raystack/guardian/index.js +2 -0
  160. package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.d.ts +168 -0
  161. package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.js +207 -0
  162. package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.ts +1 -1
  163. package/raystack/guardian/v1beta1/guardian_pb.d.ts +3537 -0
  164. package/raystack/guardian/v1beta1/guardian_pb.js +823 -0
  165. package/raystack/guardian/v1beta1/guardian_pb.ts +1 -1
  166. package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.d.ts +18 -0
  167. package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.js +20 -0
  168. package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.ts +1 -1
  169. package/raystack/optimus/core/v1beta1/backup_pb.d.ts +256 -0
  170. package/raystack/optimus/core/v1beta1/backup_pb.js +77 -0
  171. package/raystack/optimus/core/v1beta1/backup_pb.ts +1 -1
  172. package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.d.ts +30 -0
  173. package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.js +33 -0
  174. package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.ts +1 -1
  175. package/raystack/optimus/core/v1beta1/job_run_pb.d.ts +410 -0
  176. package/raystack/optimus/core/v1beta1/job_run_pb.js +127 -0
  177. package/raystack/optimus/core/v1beta1/job_run_pb.ts +1 -1
  178. package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.d.ts +98 -0
  179. package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.js +112 -0
  180. package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.ts +1 -1
  181. package/raystack/optimus/core/v1beta1/job_spec_pb.d.ts +1953 -0
  182. package/raystack/optimus/core/v1beta1/job_spec_pb.js +487 -0
  183. package/raystack/optimus/core/v1beta1/job_spec_pb.ts +1 -1
  184. package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.d.ts +24 -0
  185. package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.js +26 -0
  186. package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.ts +1 -1
  187. package/raystack/optimus/core/v1beta1/namespace_pb.d.ts +180 -0
  188. package/raystack/optimus/core/v1beta1/namespace_pb.js +69 -0
  189. package/raystack/optimus/core/v1beta1/namespace_pb.ts +1 -1
  190. package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.d.ts +24 -0
  191. package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.js +26 -0
  192. package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.ts +1 -1
  193. package/raystack/optimus/core/v1beta1/project_pb.d.ts +192 -0
  194. package/raystack/optimus/core/v1beta1/project_pb.js +76 -0
  195. package/raystack/optimus/core/v1beta1/project_pb.ts +1 -1
  196. package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.d.ts +22 -0
  197. package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.js +25 -0
  198. package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.ts +1 -1
  199. package/raystack/optimus/core/v1beta1/replay_pb.d.ts +331 -0
  200. package/raystack/optimus/core/v1beta1/replay_pb.js +91 -0
  201. package/raystack/optimus/core/v1beta1/replay_pb.ts +1 -1
  202. package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.d.ts +43 -0
  203. package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.js +48 -0
  204. package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.ts +1 -1
  205. package/raystack/optimus/core/v1beta1/resource_pb.d.ts +507 -0
  206. package/raystack/optimus/core/v1beta1/resource_pb.js +134 -0
  207. package/raystack/optimus/core/v1beta1/resource_pb.ts +1 -1
  208. package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.d.ts +12 -0
  209. package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.js +12 -0
  210. package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.ts +1 -1
  211. package/raystack/optimus/core/v1beta1/runtime_pb.d.ts +62 -0
  212. package/raystack/optimus/core/v1beta1/runtime_pb.js +36 -0
  213. package/raystack/optimus/core/v1beta1/runtime_pb.ts +1 -1
  214. package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.d.ts +30 -0
  215. package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.js +33 -0
  216. package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.ts +1 -1
  217. package/raystack/optimus/core/v1beta1/secret_pb.d.ts +250 -0
  218. package/raystack/optimus/core/v1beta1/secret_pb.js +84 -0
  219. package/raystack/optimus/core/v1beta1/secret_pb.ts +1 -1
  220. package/raystack/optimus/core/v1beta1/status_pb.d.ts +78 -0
  221. package/raystack/optimus/core/v1beta1/status_pb.js +31 -0
  222. package/raystack/optimus/core/v1beta1/status_pb.ts +1 -1
  223. package/raystack/optimus/integration/v1beta1/event_pb.d.ts +239 -0
  224. package/raystack/optimus/integration/v1beta1/event_pb.js +62 -0
  225. package/raystack/optimus/integration/v1beta1/event_pb.ts +1 -1
  226. package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.d.ts +31 -0
  227. package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.js +34 -0
  228. package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.ts +1 -1
  229. package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.d.ts +353 -0
  230. package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.js +120 -0
  231. package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.ts +1 -1
  232. package/raystack/predator/index.d.ts +2 -0
  233. package/raystack/predator/index.js +2 -0
  234. package/raystack/predator/v1beta1/metrics_log_pb.d.ts +163 -0
  235. package/raystack/predator/v1beta1/metrics_log_pb.js +48 -0
  236. package/raystack/predator/v1beta1/metrics_log_pb.ts +1 -1
  237. package/raystack/predator/v1beta1/result_log_pb.d.ts +143 -0
  238. package/raystack/predator/v1beta1/result_log_pb.js +42 -0
  239. package/raystack/predator/v1beta1/result_log_pb.ts +1 -1
  240. package/raystack/raccoon/index.d.ts +2 -0
  241. package/raystack/raccoon/index.js +2 -0
  242. package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.d.ts +10 -0
  243. package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.js +10 -0
  244. package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.ts +1 -1
  245. package/raystack/raccoon/v1beta1/raccoon_pb.d.ts +268 -0
  246. package/raystack/raccoon/v1beta1/raccoon_pb.js +64 -0
  247. package/raystack/raccoon/v1beta1/raccoon_pb.ts +1 -1
  248. package/raystack/siren/index.d.ts +2 -0
  249. package/raystack/siren/index.js +2 -0
  250. package/raystack/siren/v1beta1/siren-SirenService_connectquery.d.ts +146 -0
  251. package/raystack/siren/v1beta1/siren-SirenService_connectquery.js +180 -0
  252. package/raystack/siren/v1beta1/siren-SirenService_connectquery.ts +1 -1
  253. package/raystack/siren/v1beta1/siren_pb.d.ts +2281 -0
  254. package/raystack/siren/v1beta1/siren_pb.js +603 -0
  255. package/raystack/siren/v1beta1/siren_pb.ts +1 -1
  256. package/raystack/stencil/index.d.ts +2 -0
  257. package/raystack/stencil/index.js +2 -0
  258. package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.d.ts +70 -0
  259. package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.js +85 -0
  260. package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.ts +1 -1
  261. package/raystack/stencil/v1beta1/stencil_pb.d.ts +1057 -0
  262. package/raystack/stencil/v1beta1/stencil_pb.js +298 -0
  263. package/raystack/stencil/v1beta1/stencil_pb.ts +1 -1
  264. package/validate/validate_pb.d.ts +1953 -0
  265. package/validate/validate_pb.js +223 -0
  266. package/validate/validate_pb.ts +1 -1
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.6.2 with parameter "target=ts,import_extension=none"
1
+ // @generated by protoc-gen-es v2.6.2 with parameter "target=ts+js+dts,import_extension=none"
2
2
  // @generated from file raystack/frontier/v1beta1/admin.proto (package raystack.frontier.v1beta1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
@@ -11,7 +11,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
11
11
  import type { HttpBodySchema } from "../../../google/api/httpbody_pb";
12
12
  import { file_google_api_httpbody } from "../../../google/api/httpbody_pb";
13
13
  import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
14
- import type { BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Subscription, User, Webhook } from "./models_pb";
14
+ import type { BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Session, Subscription, User, Webhook } from "./models_pb";
15
15
  import { file_raystack_frontier_v1beta1_models } from "./models_pb";
16
16
  import { file_validate_validate } from "../../../validate/validate_pb";
17
17
  import type { JsonObject, Message } from "@bufbuild/protobuf";
@@ -20,7 +20,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
20
20
  * Describes the file raystack/frontier/v1beta1/admin.proto.
21
21
  */
22
22
  export const file_raystack_frontier_v1beta1_admin: GenFile = /*@__PURE__*/
23
- fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLqAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keSKPAQoZRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbhIzCgdwcm9kdWN0GAIgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0It4BChZMaXN0QWxsSW52b2ljZXNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRJmCglwYWdlX3NpemUYAiABKAVCU5JBRzJFVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgNTAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAMgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIoQBChdMaXN0QWxsSW52b2ljZXNSZXNwb25zZRI0CghpbnZvaWNlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZRIzCgVjb3VudBgCIAEoBUIkkkEhMh9Ub3RhbCBudW1iZXIgb2YgcmVjb3JkcyBwcmVzZW50IhkKF0dlbmVyYXRlSW52b2ljZXNSZXF1ZXN0IhoKGEdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSIvCh1MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkiZQoeTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IpUBChlSZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEh8KCmJpbGxpbmdfaWQYAyABKAlCC/pCCHIGsAEB0AEBEhoKCHVzYWdlX2lkGAQgASgJQgj6QgVyA7ABARIXCgZhbW91bnQYBSABKANCB/pCBCICKAAiHAoaUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2UirwIKEldlYmhvb2tSZXF1ZXN0Qm9keRIVCgN1cmwYASABKAlCCPpCBXIDiAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhkKEXN1YnNjcmliZWRfZXZlbnRzGAMgAygJEksKB2hlYWRlcnMYBCADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keS5IZWFkZXJzRW50cnkSKgoFc3RhdGUYBSABKAlCG/pCGHIWUgdlbmFibGVkUghkaXNhYmxlZNABARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwoUQ3JlYXRlV2ViaG9va1JlcXVlc3QSOwoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFUNyZWF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIosBChRVcGRhdGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byB1cGRhdGUu4kEBAvpCBXIDsAEBEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keSJMChVVcGRhdGVXZWJob29rUmVzcG9uc2USMwoHd2ViaG9vaxgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9vayJOChREZWxldGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byBkZWxldGUu4kEBAvpCBXIDsAEBIhcKFURlbGV0ZVdlYmhvb2tSZXNwb25zZSIVChNMaXN0V2ViaG9va3NSZXF1ZXN0IkwKFExpc3RXZWJob29rc1Jlc3BvbnNlEjQKCHdlYmhvb2tzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rImkKIVVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCmNyZWRpdF9taW4YAyABKAMiJAoiVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSJUCh9HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0EhgKBm9yZ19pZBgBIAEoCUII+kIFcgOwAQESFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBIksKIEdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlEhIKCmNyZWRpdF9taW4YASABKAMSEwoLZHVlX2luX2RheXMYAiABKAMiiQEKIlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAxIcCgtkdWVfaW5fZGF5cxgEIAEoA0IH+kIEIgIoACIlCiNVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSJJChlTZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAgSDAoEbGluaxgDIAEoCSJSChpTZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJiChpTZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMiHQobTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0ImUKHExpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2USRQoRb3JnYW5pemF0aW9uc19reWMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyK1BQobU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlEmAKDW9yZ2FuaXphdGlvbnMYASADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZS5Pcmdhbml6YXRpb25SZXN1bHQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqnAwoST3JnYW5pemF0aW9uUmVzdWx0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhdGUYBiABKAkSDgoGYXZhdGFyGAcgASgJEhIKCmNyZWF0ZWRfYnkYCCABKAkSEQoJcGxhbl9uYW1lGAkgASgJEi4KDHBheW1lbnRfbW9kZRgKIAEoCUIY+kIVchNSB3ByZXBhaWRSCHBvc3RwYWlkEj0KGXN1YnNjcmlwdGlvbl9jeWNsZV9lbmRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB2NvdW50cnkYDCABKAkSGgoSc3Vic2NyaXB0aW9uX3N0YXRlGA4gASgJEhUKDXBsYW5faW50ZXJ2YWwYDyABKAkSDwoHcGxhbl9pZBgQIAEoCSJMChRMaXN0UHJvc3BlY3RzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLbAQoVTGlzdFByb3NwZWN0c1Jlc3BvbnNlEjYKCXByb3NwZWN0cxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSJHChJHZXRQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiTAoTR2V0UHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiswYKFVVwZGF0ZVByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABARI+CgRuYW1lGAIgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWVXBkYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiSgoVRGVsZXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBIhgKFkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UigAYKFUNyZWF0ZVByb3NwZWN0UmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWQ3JlYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiawoeU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IoAECh9TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEl4KCW9yZ191c2VycxgBIAMoCzJLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Pcmdhbml6YXRpb25Vc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua8AEKEE9yZ2FuaXphdGlvblVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIxCg1vcmdfam9pbmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRIXCg9vcmdhbml6YXRpb25faWQYCyABKAkiNQoeRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIm4KIVNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLaAwoiU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRJnCgxvcmdfcHJvamVjdHMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2UuT3JnYW5pemF0aW9uUHJvamVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGr4BChNPcmdhbml6YXRpb25Qcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMbWVtYmVyX2NvdW50GAUgASgDEhAKCHVzZXJfaWRzGAYgAygJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgIIAEoCSI4CiFFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZgoZU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKpAwoaU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2USWAoNcHJvamVjdF91c2VycxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UuUHJvamVjdFVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqkAQoLUHJvamVjdFVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRISCgpwcm9qZWN0X2lkGAsgASgJIm4KIVNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLNAwoiU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZRJwChVvcmdhbml6YXRpb25faW52b2ljZXMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2UuT3JnYW5pemF0aW9uSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqgBChNPcmdhbml6YXRpb25JbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJImwKH1NlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi3QMKIFNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlEmoKE29yZ2FuaXphdGlvbl90b2tlbnMYASADKAsyTS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblRva2VuEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UawAEKEU9yZ2FuaXphdGlvblRva2VuEg4KBmFtb3VudBgBIAEoAxIMCgR0eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3VzZXJfaWQYBCABKAkSEgoKdXNlcl90aXRsZRgFIAEoCRITCgt1c2VyX2F2YXRhchgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYCCABKAkiNgofRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJ8Ci9TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLsAwowU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEpsBCiRvcmdhbml6YXRpb25fc2VydmljZXVzZXJfY3JlZGVudGlhbHMYASADKAsybS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZS5Pcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqNAQohT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsEg0KBXRpdGxlGAEgASgJEhkKEXNlcnZpY2V1c2VyX3RpdGxlGAIgASgJEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgEIAEoCSJKChJTZWFyY2hVc2Vyc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi0QEKE1NlYXJjaFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSIUChJFeHBvcnRVc2Vyc1JlcXVlc3QifAoeU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0EiQKAmlkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiigQKH1NlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2USZwoSdXNlcl9vcmdhbml6YXRpb25zGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlLlVzZXJPcmdhbml6YXRpb24SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrxAQoQVXNlck9yZ2FuaXphdGlvbhIOCgZvcmdfaWQYASABKAkSEQoJb3JnX3RpdGxlGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJEhIKCm9yZ19hdmF0YXIYBCABKAkSFQoNcHJvamVjdF9jb3VudBgFIAEoAxISCgpyb2xlX25hbWVzGAYgAygJEhMKC3JvbGVfdGl0bGVzGAcgAygJEhAKCHJvbGVfaWRzGAggAygJEjEKDW9yZ19qb2luZWRfb24YCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3VzZXJfaWQYCiABKAkipQEKGVNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QSKQoHdXNlcl9pZBgBIAEoCUIYkkEJMgd1c2VyIElE4kEBAvpCBXIDsAEBEicKBm9yZ19pZBgCIAEoCUIXkkEIMgZvcmcgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAyABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi/QMKGlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlElgKDXVzZXJfcHJvamVjdHMYASADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlLlVzZXJQcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua+AEKC1VzZXJQcm9qZWN0EhIKCnByb2plY3RfaWQYASABKAkSFQoNcHJvamVjdF90aXRsZRgCIAEoCRIUCgxwcm9qZWN0X25hbWUYAyABKAkSNgoScHJvamVjdF9jcmVhdGVkX29uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1c2VyX25hbWVzGAUgAygJEhMKC3VzZXJfdGl0bGVzGAYgAygJEhAKCHVzZXJfaWRzGAcgAygJEhQKDHVzZXJfYXZhdGFycxgIIAMoCRIOCgZvcmdfaWQYCSABKAkSDwoHdXNlcl9pZBgKIAEoCSLiDAoeQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EmkKBGJvZHkYASABKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdC5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEa1AsKF09yZ2FuaXphdGlvblJlcXVlc3RCb2R5EvsBCgRuYW1lGAEgASgJQuwBkkHNATLKAVRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLjxici8+KkV4YW1wbGU6KmAiZnJvbnRpZXItb3JnMS1hY21lImDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQSsgEKBXRpdGxlGAIgASgJQqIBkkGeATKbAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnYW5pemF0aW9uLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5Ljxici8+ICpFeGFtcGxlKjogYCJBY21lIEluYyJgEukDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCvQOSQbkDMrYDTWV0YWRhdGEgb2JqZWN0IGZvciBvcmdhbml6YXRpb25zIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmdhbml6YXRpb24gc3VjaCBhcyBsYWJlbHMsIGRlc2NyaXB0aW9ucyBldGMuIFRoZSBkZWZhdWx0IE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLiA8YnIvPipFeGFtcGxlKjpgeyJsYWJlbHMiOiB7ImtleSI6ICJ2YWx1ZSJ9LCAiZGVzY3JpcHRpb24iOiAiT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uIn1gEvACCgZhdmF0YXIYBCABKAlC3wKSQY8CMtMBVGhlIGF2YXRhciBpcyBiYXNlNjQgZW5jb2RlZCBpbWFnZSBkYXRhIG9mIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiBUaGUgaW1hZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiAyMDBLQi4gU2hvdWxkIGZvbGxvdyB0aGUgcmVnZXggcGF0dGVybiBgXmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyRgLko3ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBIvpCSXJHGJChDzI+XmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyTQAQESpgEKD29yZ19vd25lcl9lbWFpbBgFIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABImAKH0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USPQoMb3JnYW5pemF0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iTQoVU2VhcmNoSW52b2ljZXNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrUDChZTZWFyY2hJbnZvaWNlc1Jlc3BvbnNlEksKCGludm9pY2VzGAEgAygLMjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlLkludm9pY2USSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrBAQoHSW52b2ljZRIKCgJpZBgBIAEoCRIOCgZhbW91bnQYAiABKAMSEAoIY3VycmVuY3kYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMaW52b2ljZV9saW5rGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgHIAEoCRIQCghvcmdfbmFtZRgIIAEoCRIRCglvcmdfdGl0bGUYCSABKAkicgolU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCK7BAomU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USfQoab3JnYW5pemF0aW9uX3NlcnZpY2VfdXNlcnMYASADKAsyWS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaMgoHUHJvamVjdBIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRuYW1lGAMgASgJGtEBChdPcmdhbml6YXRpb25TZXJ2aWNlVXNlchIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIOCgZvcmdfaWQYAyABKAkSWwoIcHJvamVjdHMYBCADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLlByb2plY3QSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiHAoaR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QiigEKG0dldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEjwKDHNlcnZpY2VfdXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIy7HkKDEFkbWluU2VydmljZRKvAgoMTGlzdEFsbFVzZXJzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXNwb25zZSK9AZJBnQEKBFVzZXISDkxpc3QgYWxsIHVzZXJzGoQBTGlzdHMgYWxsIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUugtPkkwIWEhQvdjFiZXRhMS9hZG1pbi91c2VycxKbAgoTTGlzdEFsbFNlcnZpY2VVc2VycxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFNlcnZpY2VVc2Vyc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZSKUAZJBbgoEVXNlchIWTGlzdCBhbGwgc2VydmljZSB1c2VycxpOTGlzdHMgYWxsIHRoZSBzZXJ2aWNlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIdEhsvdjFiZXRhMS9hZG1pbi9zZXJ2aWNldXNlcnMSnAIKCkxpc3RHcm91cHMSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cHNSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBzUmVzcG9uc2UisAGSQY8BCgVHcm91cBIPTGlzdCBhbGwgZ3JvdXBzGnVMaXN0cyBhbGwgdGhlIGdyb3VwcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uIGFuZCBzdGF0ZS6C0+STAhcSFS92MWJldGExL2FkbWluL2dyb3VwcxKzAgoUTGlzdEFsbE9yZ2FuaXphdGlvbnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZSKpAZJBgQEKDE9yZ2FuaXphdGlvbhIWTGlzdCBhbGwgb3JnYW5pemF0aW9ucxpZTGlzdHMgYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VyIGFuZCBzdGF0ZS6C0+STAh4SHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMS8AEKF0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiXpJBMQoMT3JnYW5pemF0aW9uEiFDcmVhdGUgb3JnYW5pemF0aW9uIGFzIHN1cGVyYWRtaW6C0+STAiQiHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnM6BGJvZHkSsgIKE1NlYXJjaE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25zUmVzcG9uc2UiqwGSQXYKDE9yZ2FuaXphdGlvbhIUU2VhcmNoIG9yZ2FuaXphdGlvbnMaUFNlYXJjaCBvcmdhbml6YXRpb24gYmFzZWQgb24gb3JnIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzgtPkkwIsIiMvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3NlYXJjaDoFcXVlcnkS+wEKF1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiaZJBKQoMT3JnYW5pemF0aW9uEhlTZWFyY2ggb3JnYW5pemF0aW9uIHVzZXJzgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMvc2VhcmNoOgVxdWVyeRLdAQoSU2VhcmNoUHJvamVjdFVzZXJzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZSJakkEfCgdQcm9qZWN0EhRTZWFyY2ggUHJvamVjdCB1c2Vyc4LT5JMCMiIpL3YxYmV0YTEvYWRtaW4vcHJvamVjdHMve2lkfS91c2Vycy9zZWFyY2g6BXF1ZXJ5EooCChpTZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIm+SQSwKDE9yZ2FuaXphdGlvbhIcU2VhcmNoIG9yZ2FuaXphdGlvbiBwcm9qZWN0c4LT5JMCOiIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL3NlYXJjaDoFcXVlcnkSigIKGlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2Uib5JBLAoMT3JnYW5pemF0aW9uEhxTZWFyY2ggb3JnYW5pemF0aW9uIGludm9pY2VzgtPkkwI6IjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vaW52b2ljZXMvc2VhcmNoOgVxdWVyeRKAAgoYU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXNwb25zZSJrkkEqCgxPcmdhbml6YXRpb24SGlNlYXJjaCBvcmdhbml6YXRpb24gdG9rZW5zgtPkkwI4Ii8vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdG9rZW5zL3NlYXJjaDoFcXVlcnkS1AIKKFNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHMSSi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0GksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UijgGSQTwKDE9yZ2FuaXphdGlvbhIsU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHOC0+STAkkiQC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9zZXJ2aWNldXNlcl9jcmVkZW50aWFscy9zZWFyY2g6BXF1ZXJ5Ep8CCh5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1JlcXVlc3QaQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlIniSQTEKDE9yZ2FuaXphdGlvbhIhU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwI+IjUvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzL3NlYXJjaDoFcXVlcnkSjQIKE0V4cG9ydE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvbnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKmAZJBeAoMT3JnYW5pemF0aW9uEhRFeHBvcnQgb3JnYW5pemF0aW9ucxpIRXhwb3J0IG9yZ2FuaXphdGlvbiB3aXRoIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCJRIjL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9leHBvcnQwARKIAgoXRXhwb3J0T3JnYW5pemF0aW9uVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkimQGSQWAKDE9yZ2FuaXphdGlvbhIZRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VycxorRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VyIHRoZWlyIHJvbGUgZGV0YWlsczoIdGV4dC9jc3aC0+STAjASLi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS91c2Vycy9leHBvcnQwARKTAgoaRXhwb3J0T3JnYW5pemF0aW9uUHJvamVjdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkingGSQWIKDE9yZ2FuaXphdGlvbhIcRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cxoqRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cyB3aXRoIHVzZXIgSURzOgh0ZXh0L2NzdoLT5JMCMxIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL2V4cG9ydDABEvsBChhFeHBvcnRPcmdhbml6YXRpb25Ub2tlbnMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IooBkkFQCgxPcmdhbml6YXRpb24SGkV4cG9ydCBvcmdhbml6YXRpb24gdG9rZW5zGhpFeHBvcnQgb3JnYW5pemF0aW9uIHRva2VuczoIdGV4dC9jc3aC0+STAjESLy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS90b2tlbnMvZXhwb3J0MAES3QEKC0V4cG9ydFVzZXJzEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRVc2Vyc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IoYBkkFgCgRVc2VyEgxFeHBvcnQgdXNlcnMaQEV4cG9ydCB1c2VyIHdpdGggZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHM6CHRleHQvY3N2gtPkkwIdEhsvdjFiZXRhMS9hZG1pbi91c2Vycy9leHBvcnQwARLXAQoLU2VhcmNoVXNlcnMSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJzUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlcnNSZXNwb25zZSJpkkE8CgRVc2VyEgxTZWFyY2ggdXNlcnMaJlNlYXJjaCB1c2VycyBiYXNlZCBvbiB0aGVpciBwcm9wZXJ0aWVzgtPkkwIkIhsvdjFiZXRhMS9hZG1pbi91c2Vycy9zZWFyY2g6BXF1ZXJ5EvQBChdTZWFyY2hVc2VyT3JnYW5pemF0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlImKSQSIKBFVzZXISGlNlYXJjaCB1c2VycyBvcmdhbml6YXRpb25zgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMvc2VhcmNoOgVxdWVyeRKCAgoSU2VhcmNoVXNlclByb2plY3RzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXNwb25zZSJ/kkEvCgRVc2VyEidTZWFyY2ggcHJvamVjdHMgb2YgYSB1c2VyIHdpdGhpbiBhbiBvcmeC0+STAkciPi92MWJldGExL2FkbWluL3VzZXJzL3t1c2VyX2lkfS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3Byb2plY3RzOgVxdWVyeRKtAgoSU2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKpAZJBcgoPT3JnYW5pemF0aW9uS3ljEiZTZXQgS1lDIGluZm9ybWF0aW9uIG9mIGFuIG9yZ2FuaXphdGlvbho3U2V0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCLhopL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWM6ASoSmwIKFExpc3RPcmdhbml6YXRpb25zS3ljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0t5Y1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2UikQGSQWYKD09yZ2FuaXphdGlvbkt5YxIpTGlzdCBLWUMgaW5mb3JtYXRpb24gb2YgYWxsIG9yZ2FuaXphdGlvbnMaKExpc3QgS1lDIGluZm9ybWF0aW9uIG9mIGFsbCBvcmdhbml6YXRpb26C0+STAiISIC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMva3ljEqoCCgxMaXN0UHJvamVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1Jlc3BvbnNlIrgBkkGVAQoHUHJvamVjdBIRTGlzdCBhbGwgcHJvamVjdHMad0xpc3RzIGFsbCB0aGUgcHJvamVjdHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbiBhbmQgc3RhdGUugtPkkwIZEhcvdjFiZXRhMS9hZG1pbi9wcm9qZWN0cxK1AQoNTGlzdFJlbGF0aW9ucxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlbGF0aW9uc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZWxhdGlvbnNSZXNwb25zZSJBkkEeCghSZWxhdGlvbhISTGlzdCBhbGwgcmVsYXRpb25zgtPkkwIaEhgvdjFiZXRhMS9hZG1pbi9yZWxhdGlvbnMSxQIKDUxpc3RSZXNvdXJjZXMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZXNvdXJjZXNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVzb3VyY2VzUmVzcG9uc2Ui0AGSQawBCghSZXNvdXJjZRISTGlzdCBhbGwgcmVzb3VyY2VzGosBTGlzdHMgYWxsIHRoZSByZXNvdXJjZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBhbmQgbmFtZXNwYWNlLoLT5JMCGhIYL3YxYmV0YTEvYWRtaW4vcmVzb3VyY2VzEpgCCgpDcmVhdGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUm9sZVJlc3BvbnNlIqwBkkGMAQoEUm9sZRIUQ3JlYXRlIHBsYXRmb3JtIHJvbGUabkNyZWF0ZXMgYSBwbGF0Zm9ybSB3aWRlIHJvbGUuIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIWIg4vdjFiZXRhMS9yb2xlczoEYm9keRLVAQoKVXBkYXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVJvbGVSZXNwb25zZSJqkkFGCgRSb2xlEgtVcGRhdGUgcm9sZRoxVXBkYXRlIGEgcm9sZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zLoLT5JMCGxoTL3YxYmV0YTEvcm9sZXMve2lkfToEYm9keRLcAQoKRGVsZXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJvbGVSZXNwb25zZSJxkkFTCgRSb2xlEhREZWxldGUgcGxhdGZvcm0gcm9sZRo1RGVsZXRlIGEgcGxhdGZvcm0gd2lkZSByb2xlIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucy6C0+STAhUqEy92MWJldGExL3JvbGVzL3tpZH0SsQIKEENyZWF0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQZXJtaXNzaW9uUmVzcG9uc2UiswGSQZABCgpQZXJtaXNzaW9uEhpDcmVhdGUgcGxhdGZvcm0gcGVybWlzc2lvbhpmQ3JlYXRlcyBhIHBlcm1pc3Npb24uIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIZIhQvdjFiZXRhMS9wZXJtaXNzaW9uczoBKhK/AgoQVXBkYXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBlcm1pc3Npb25SZXNwb25zZSLBAZJBlgEKClBlcm1pc3Npb24SGlVwZGF0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9uGmxVcGRhdGVzIGEgcGVybWlzc2lvbiBieSBJRC4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAiEaGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH06BGJvZHkSyQEKEERlbGV0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiTJJBKAoKUGVybWlzc2lvbhIaRGVsZXRlIHBsYXRmb3JtIHBlcm1pc3Npb26C0+STAhsqGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0SsAIKD0xpc3RQcmVmZXJlbmNlcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVzcG9uc2UitQGSQZUBCgpQcmVmZXJlbmNlEhlMaXN0IHBsYXRmb3JtIHByZWZlcmVuY2VzGmxSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcHJlZmVyZW5jZXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhYSFC92MWJldGExL3ByZWZlcmVuY2VzEvsCChFDcmVhdGVQcmVmZXJlbmNlcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJlZmVyZW5jZXNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlIvoBkkHXAQoKUHJlZmVyZW5jZRIbQ3JlYXRlIHBsYXRmb3JtIHByZWZlcmVuY2VzGqsBQ3JlYXRlIG5ldyBwbGF0Zm9ybSBwcmVmZXJlbmNlcy4gVGhlIHBsYXRmb3JtIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcGxhdGZvcm0gYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIZIhQvdjFiZXRhMS9wcmVmZXJlbmNlczoBKhKDAwogQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb24SQi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBpDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZSLVAZJBsgEKBUF1dGh6EgVDaGVjaxqhAVJldHVybnMgdHJ1ZSBpZiBhIHByaW5jaXBhbCBoYXMgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIGEgcmVzb3VyY2UgYW5kIGZhbHNlIG90aGVyd2lzZS48YnIvPiBOb3RlIHRoZSBwcmluY2lwYWwgY2FuIGJlIGEgdXNlciwgZ3JvdXAgb3IgYSBzZXJ2aWNlIGFjY291bnQugtPkkwIZIhQvdjFiZXRhMS9hZG1pbi9jaGVjazoBKhLgAQoPQWRkUGxhdGZvcm1Vc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXNwb25zZSJmkkE7CghQbGF0Zm9ybRIRQWRkIHBsYXRmb3JtIHVzZXIaHEFkZHMgYSB1c2VyIHRvIHRoZSBwbGF0Zm9ybS6C0+STAiIiHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzOgEqEvMBChFMaXN0UGxhdGZvcm1Vc2VycxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBsYXRmb3JtVXNlcnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhdGZvcm1Vc2Vyc1Jlc3BvbnNlInOSQUsKCFBsYXRmb3JtEhNMaXN0IHBsYXRmb3JtIHVzZXJzGipMaXN0cyBhbGwgdGhlIHVzZXJzIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybS6C0+STAh8SHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzEvgBChJSZW1vdmVQbGF0Zm9ybVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlc3BvbnNlInWSQUMKCFBsYXRmb3JtEhRSZW1vdmUgcGxhdGZvcm0gdXNlchohUmVtb3ZlcyBhIHVzZXIgZnJvbSB0aGUgcGxhdGZvcm0ugtPkkwIpIiQvdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2Vycy9yZW1vdmU6ASoSwAMKEURlbGVnYXRlZENoZWNrb3V0EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxlZ2F0ZWRDaGVja291dFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGVnYXRlZENoZWNrb3V0UmVzcG9uc2UivwKSQa0BCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhp9Q2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50IG1hbnVhbGx5LiBJdCBieXBhc3NlcyBiaWxsaW5nIGVuZ2luZS6C0+STAocBIkQvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo8IjcvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErECCg9MaXN0QWxsSW52b2ljZXMSMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1JlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1Jlc3BvbnNlIrYBkkGLAQoHSW52b2ljZRIRTGlzdCBhbGwgaW52b2ljZXMabUxpc3RzIGFsbCB0aGUgaW52b2ljZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbi6C0+STAiESHy92MWJldGExL2FkbWluL2JpbGxpbmcvaW52b2ljZXMSpwIKEEdlbmVyYXRlSW52b2ljZXMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdlbmVyYXRlSW52b2ljZXNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZW5lcmF0ZUludm9pY2VzUmVzcG9uc2UiqQGSQXMKB0ludm9pY2USGlRyaWdnZXIgaW52b2ljZSBnZW5lcmF0aW9uGkxUcmlnZ2VycyB0aGUgY3JlYXRpb24gb2YgY3JlZGl0IG92ZXJkcmFmdCBpbnZvaWNlcyBmb3IgYWxsIGJpbGxpbmcgYWNjb3VudHMugtPkkwItIigvdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2ludm9pY2VzL2dlbmVyYXRlOgEqEtYCChZMaXN0QWxsQmlsbGluZ0FjY291bnRzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIsYBkkGbAQoHQmlsbGluZxIZTGlzdCBhbGwgYmlsbGluZyBhY2NvdW50cxp1TGlzdHMgYWxsIHRoZSBiaWxsaW5nIGFjY291bnRzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24ugtPkkwIhEh8vdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2FjY291bnRzEuQCChJSZXZlcnRCaWxsaW5nVXNhZ2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlc3BvbnNlIuABkkFMCgdCaWxsaW5nEhRSZXZlcnQgYmlsbGluZyB1c2FnZRorUmV2ZXJ0IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCigEiUi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdXNhZ2Uve3VzYWdlX2lkfS9yZXZlcnQ6ASpaMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlcy9yZXZlcnQ6ASoSyQEKDUNyZWF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVXZWJob29rUmVzcG9uc2UiVZJBMAoHV2ViaG9vaxIOQ3JlYXRlIHdlYmhvb2saFUNyZWF0ZSBhIG5ldyB3ZWJob29rLoLT5JMCHCIXL3YxYmV0YTEvYWRtaW4vd2ViaG9va3M6ASoSygEKDVVwZGF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVXZWJob29rUmVzcG9uc2UiVpJBLAoHV2ViaG9vaxIOVXBkYXRlIHdlYmhvb2saEVVwZGF0ZSBhIHdlYmhvb2sugtPkkwIhGhwvdjFiZXRhMS9hZG1pbi93ZWJob29rcy97aWR9OgEqEscBCg1EZWxldGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlV2ViaG9va1Jlc3BvbnNlIlOSQSwKB1dlYmhvb2sSDkRlbGV0ZSB3ZWJob29rGhFEZWxldGUgYSB3ZWJob29rLoLT5JMCHiocL3YxYmV0YTEvYWRtaW4vd2ViaG9va3Mve2lkfRK/AQoMTGlzdFdlYmhvb2tzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXNwb25zZSJOkkEsCgdXZWJob29rEg1MaXN0IHdlYmhvb2tzGhJMaXN0IGFsbCB3ZWJob29rcy6C0+STAhkSFy92MWJldGExL2FkbWluL3dlYmhvb2tzErACChpVcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1Jlc3BvbnNlIpQBiAIBkkFKCgdCaWxsaW5nEh1VcGRhdGUgYmlsbGluZyBhY2NvdW50IGxpbWl0cxoeVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBsaW1pdHMuWAGC0+STAj4aOS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2xpbWl0czoBKhKzAgoYR2V0QmlsbGluZ0FjY291bnREZXRhaWxzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSKdAZJBWAoHQmlsbGluZxIbR2V0IGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzGjBHZXQgYmlsbGluZyBhY2NvdW50IGRldGFpbHMgdGhhdCBjYW4gYmUgdXBkYXRlZC6C0+STAjwSOi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2RldGFpbHMSsQIKG1VwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlscxI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2UikgGSQUoKB0JpbGxpbmcSHlVwZGF0ZSBiaWxsaW5nIGFjY291bnQgZGV0YWlscxofVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzLoLT5JMCPxo6L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGV0YWlsczoBKhLnAQoOQ3JlYXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RSZXNwb25zZSJwkkFKCghQcm9zcGVjdBIPQ3JlYXRlIHByb3NwZWN0Gi1DcmVhdGUgcHJvc3BlY3QgZm9yIGdpdmVuIGVtYWlsIGFuZCBhY3Rpdml0eS6C0+STAh0iGC92MWJldGExL2FkbWluL3Byb3NwZWN0czoBKhL8AQoNTGlzdFByb3NwZWN0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb3NwZWN0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9zcGVjdHNSZXNwb25zZSKHAZJBWAoIUHJvc3BlY3QSDkxpc3QgcHJvc3BlY3RzGjxMaXN0IHByb3NwZWN0cyBhbmQgc3VwcG9ydHMgZmlsdGVycywgc29ydGluZyBhbmQgcGFnaW5hdGlvbi6C0+STAiYiHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy9saXN0OgVxdWVyeRLCAQoLR2V0UHJvc3BlY3QSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb3NwZWN0UmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvc3BlY3RSZXNwb25zZSJUkkEsCghQcm9zcGVjdBIMR2V0IHByb3NwZWN0GhJHZXQgcHJvc3BlY3QgYnkgSUSC0+STAh8SHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtsBCg5VcGRhdGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9zcGVjdFJlc3BvbnNlImSSQTkKCFByb3NwZWN0Eg9VcGRhdGUgcHJvc3BlY3QaHFVwZGF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAiIaHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9OgEqEtgBCg5EZWxldGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9zcGVjdFJlc3BvbnNlImGSQTkKCFByb3NwZWN0Eg9EZWxldGUgcHJvc3BlY3QaHERlbGV0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAh8qHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtoBCg5TZWFyY2hJbnZvaWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoSW52b2ljZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlImOSQTMKB2ludm9pY2USKFNlYXJjaCBpbnZvaWNlcyBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbnOC0+STAiciHi92MWJldGExL2FkbWluL2ludm9pY2VzL3NlYXJjaDoFcXVlcnkStAIKE0dldEN1cnJlbnRBZG1pblVzZXISNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRBZG1pblVzZXJSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50QWRtaW5Vc2VyUmVzcG9uc2UirQGSQYgBCgRVc2VyEhZHZXQgY3VycmVudCBhZG1pbiB1c2VyGmhSZXR1cm5zIHRoZSBjdXJyZW50IGF1dGhlbnRpY2F0ZWQgYWRtaW4gdXNlciBwcm9maWxlLiBSZXR1cm5zIDQwMyBGb3JiaWRkZW4gaWYgdGhlIHVzZXIgaXMgbm90IGFuIGFkbWluLoLT5JMCGxIZL3YxYmV0YTEvYWRtaW4vdXNlcnMvc2VsZkLwDgojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgA4S/gYKG0Zyb250aWVyIEFkbWluaXN0cmF0aW9uIEFQSRLPBVRoZSBGcm9udGllciBBUElzIGFkaGVyZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBhbHNvIGtub3duIGFzIFN3YWdnZXIsIHdoaWNoIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIGFwcHJvYWNoIGZvciBkZXNpZ25pbmcsIGRvY3VtZW50aW5nLCBhbmQgY29uc3VtaW5nIFJFU1RmdWwgQVBJcy4gV2l0aCBPcGVuQVBJLCB5b3UgZ2FpbiBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIEFQSSBlbmRwb2ludHMsIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlcywgYW5kIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgc3VwcG9ydGVkIGJ5IHRoZSBGcm9udGllciBBUElzLiBCeSBsZXZlcmFnaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGRldmVsb3BlcnMgY2FuIGVhc2lseSBleHBsb3JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBGcm9udGllciBBUElzIHVzaW5nIGEgdmFyaWV0eSBvZiB0b29scyBhbmQgbGlicmFyaWVzLiBUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGVuYWJsZXMgYXV0b21hdGljIGNvZGUgZ2VuZXJhdGlvbiwgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24sIGFuZCBzZWFtbGVzcyBpbnRlZ3JhdGlvbiB3aXRoIEFQSSB0ZXN0aW5nIGZyYW1ld29ya3MsIG1ha2luZyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIGludGVncmF0ZSBGcm9udGllciBpbnRvIHlvdXIgZXhpc3RpbmcgYXBwbGljYXRpb25zIGFuZCB3b3JrZmxvd3MuIkAKE1JheXN0YWNrIEZvdW5kYXRpb24SFWh0dHBzOi8vcmF5c3RhY2sub3JnLxoSaGVsbG9AcmF5c3RhY2sub3JnKkQKCkFwYWNoZSAyLjASNmh0dHBzOi8vZ2l0aHViLmNvbS9yYXlzdGFjay9mcm9udGllci9ibG9iL21haW4vTElDRU5TRTIFMC4yLjAaDjEyNy4wLjAuMTo3NDAwKgEBMhBhcHBsaWNhdGlvbi9qc29uOhBhcHBsaWNhdGlvbi9qc29uUjwKAzIwMBI1ChtPSyAtIEEgc3VjY2Vzc2Z1bCByZXNwb25zZS4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSaQoDNDAwEmIKSEJhZCBSZXF1ZXN0IC0gVGhlIHJlcXVlc3Qgd2FzIG1hbGZvcm1lZCBvciBjb250YWluZWQgaW52YWxpZCBwYXJhbWV0ZXJzLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JKCgM0MDESQwopVW5hdXRob3JpemVkIC0gQXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSYQoDNDAzEloKQEZvcmJpZGRlbiAtIFVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2USFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSUQoDNDA0EkoKME5vdCBGb3VuZCAtIFRoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1J1CgM1MDASbgpUSW50ZXJuYWwgU2VydmVyIEVycm9yLiBSZXR1cm5lZCB3aGVuIHRoZXJlcyBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCBGcm9udGllciBzZXJ2ZXIuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzWqgBCk4KBUJhc2ljEkUIARI3dXNlIENsaWVudCBJRCBhcyB1c2VybmFtZSBhbmQgQ2xpZW50IFNlY3JldCBhcyBwYXNzd29yZBoGQmFzaWMgIAIKVgoGQmVhcmVyEkwIAxI9QWNjZXNzIHRva2VuIG9yIEpXVCB0b2tlbiwgcHJlZml4ZWQgYnkgQmVhcmVyOiBCZWFyZXIgPHRva2VuPhoHQmVhcmVyICACYgkKBwoFQmFzaWNiCgoICgZCZWFyZXJqBgoEVXNlcmoHCgVHcm91cGoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoKCghSZWxhdGlvbmoKCghSZXNvdXJjZWoICgZQb2xpY3lqBgoEUm9sZWoMCgpQZXJtaXNzaW9uYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
23
+ fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLqAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keSKPAQoZRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbhIzCgdwcm9kdWN0GAIgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0It4BChZMaXN0QWxsSW52b2ljZXNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRJmCglwYWdlX3NpemUYAiABKAVCU5JBRzJFVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgNTAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAMgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIoQBChdMaXN0QWxsSW52b2ljZXNSZXNwb25zZRI0CghpbnZvaWNlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZRIzCgVjb3VudBgCIAEoBUIkkkEhMh9Ub3RhbCBudW1iZXIgb2YgcmVjb3JkcyBwcmVzZW50IhkKF0dlbmVyYXRlSW52b2ljZXNSZXF1ZXN0IhoKGEdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSIvCh1MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkiZQoeTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IpUBChlSZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEh8KCmJpbGxpbmdfaWQYAyABKAlCC/pCCHIGsAEB0AEBEhoKCHVzYWdlX2lkGAQgASgJQgj6QgVyA7ABARIXCgZhbW91bnQYBSABKANCB/pCBCICKAAiHAoaUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2UirwIKEldlYmhvb2tSZXF1ZXN0Qm9keRIVCgN1cmwYASABKAlCCPpCBXIDiAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhkKEXN1YnNjcmliZWRfZXZlbnRzGAMgAygJEksKB2hlYWRlcnMYBCADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keS5IZWFkZXJzRW50cnkSKgoFc3RhdGUYBSABKAlCG/pCGHIWUgdlbmFibGVkUghkaXNhYmxlZNABARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwoUQ3JlYXRlV2ViaG9va1JlcXVlc3QSOwoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFUNyZWF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIosBChRVcGRhdGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byB1cGRhdGUu4kEBAvpCBXIDsAEBEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keSJMChVVcGRhdGVXZWJob29rUmVzcG9uc2USMwoHd2ViaG9vaxgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9vayJOChREZWxldGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byBkZWxldGUu4kEBAvpCBXIDsAEBIhcKFURlbGV0ZVdlYmhvb2tSZXNwb25zZSIVChNMaXN0V2ViaG9va3NSZXF1ZXN0IkwKFExpc3RXZWJob29rc1Jlc3BvbnNlEjQKCHdlYmhvb2tzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rImkKIVVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCmNyZWRpdF9taW4YAyABKAMiJAoiVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSJUCh9HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0EhgKBm9yZ19pZBgBIAEoCUII+kIFcgOwAQESFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBIksKIEdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlEhIKCmNyZWRpdF9taW4YASABKAMSEwoLZHVlX2luX2RheXMYAiABKAMiiQEKIlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAxIcCgtkdWVfaW5fZGF5cxgEIAEoA0IH+kIEIgIoACIlCiNVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSJJChlTZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAgSDAoEbGluaxgDIAEoCSJSChpTZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJiChpTZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMiHQobTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0ImUKHExpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2USRQoRb3JnYW5pemF0aW9uc19reWMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyK1BQobU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlEmAKDW9yZ2FuaXphdGlvbnMYASADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZS5Pcmdhbml6YXRpb25SZXN1bHQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqnAwoST3JnYW5pemF0aW9uUmVzdWx0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhdGUYBiABKAkSDgoGYXZhdGFyGAcgASgJEhIKCmNyZWF0ZWRfYnkYCCABKAkSEQoJcGxhbl9uYW1lGAkgASgJEi4KDHBheW1lbnRfbW9kZRgKIAEoCUIY+kIVchNSB3ByZXBhaWRSCHBvc3RwYWlkEj0KGXN1YnNjcmlwdGlvbl9jeWNsZV9lbmRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB2NvdW50cnkYDCABKAkSGgoSc3Vic2NyaXB0aW9uX3N0YXRlGA4gASgJEhUKDXBsYW5faW50ZXJ2YWwYDyABKAkSDwoHcGxhbl9pZBgQIAEoCSJMChRMaXN0UHJvc3BlY3RzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLbAQoVTGlzdFByb3NwZWN0c1Jlc3BvbnNlEjYKCXByb3NwZWN0cxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSJHChJHZXRQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiTAoTR2V0UHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiswYKFVVwZGF0ZVByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABARI+CgRuYW1lGAIgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWVXBkYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiSgoVRGVsZXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBIhgKFkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UigAYKFUNyZWF0ZVByb3NwZWN0UmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWQ3JlYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiawoeU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IoAECh9TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEl4KCW9yZ191c2VycxgBIAMoCzJLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Pcmdhbml6YXRpb25Vc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua8AEKEE9yZ2FuaXphdGlvblVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIxCg1vcmdfam9pbmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRIXCg9vcmdhbml6YXRpb25faWQYCyABKAkiNQoeRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIm4KIVNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLaAwoiU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRJnCgxvcmdfcHJvamVjdHMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2UuT3JnYW5pemF0aW9uUHJvamVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGr4BChNPcmdhbml6YXRpb25Qcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMbWVtYmVyX2NvdW50GAUgASgDEhAKCHVzZXJfaWRzGAYgAygJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgIIAEoCSI4CiFFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZgoZU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKpAwoaU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2USWAoNcHJvamVjdF91c2VycxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UuUHJvamVjdFVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqkAQoLUHJvamVjdFVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRISCgpwcm9qZWN0X2lkGAsgASgJIm4KIVNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLNAwoiU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZRJwChVvcmdhbml6YXRpb25faW52b2ljZXMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2UuT3JnYW5pemF0aW9uSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqgBChNPcmdhbml6YXRpb25JbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJImwKH1NlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi3QMKIFNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlEmoKE29yZ2FuaXphdGlvbl90b2tlbnMYASADKAsyTS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblRva2VuEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UawAEKEU9yZ2FuaXphdGlvblRva2VuEg4KBmFtb3VudBgBIAEoAxIMCgR0eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3VzZXJfaWQYBCABKAkSEgoKdXNlcl90aXRsZRgFIAEoCRITCgt1c2VyX2F2YXRhchgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYCCABKAkiNgofRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJ8Ci9TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLsAwowU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEpsBCiRvcmdhbml6YXRpb25fc2VydmljZXVzZXJfY3JlZGVudGlhbHMYASADKAsybS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZS5Pcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqNAQohT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsEg0KBXRpdGxlGAEgASgJEhkKEXNlcnZpY2V1c2VyX3RpdGxlGAIgASgJEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgEIAEoCSJKChJTZWFyY2hVc2Vyc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi0QEKE1NlYXJjaFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSIUChJFeHBvcnRVc2Vyc1JlcXVlc3QifAoeU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0EiQKAmlkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiigQKH1NlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2USZwoSdXNlcl9vcmdhbml6YXRpb25zGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlLlVzZXJPcmdhbml6YXRpb24SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrxAQoQVXNlck9yZ2FuaXphdGlvbhIOCgZvcmdfaWQYASABKAkSEQoJb3JnX3RpdGxlGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJEhIKCm9yZ19hdmF0YXIYBCABKAkSFQoNcHJvamVjdF9jb3VudBgFIAEoAxISCgpyb2xlX25hbWVzGAYgAygJEhMKC3JvbGVfdGl0bGVzGAcgAygJEhAKCHJvbGVfaWRzGAggAygJEjEKDW9yZ19qb2luZWRfb24YCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3VzZXJfaWQYCiABKAkipQEKGVNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QSKQoHdXNlcl9pZBgBIAEoCUIYkkEJMgd1c2VyIElE4kEBAvpCBXIDsAEBEicKBm9yZ19pZBgCIAEoCUIXkkEIMgZvcmcgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAyABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi/QMKGlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlElgKDXVzZXJfcHJvamVjdHMYASADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlLlVzZXJQcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua+AEKC1VzZXJQcm9qZWN0EhIKCnByb2plY3RfaWQYASABKAkSFQoNcHJvamVjdF90aXRsZRgCIAEoCRIUCgxwcm9qZWN0X25hbWUYAyABKAkSNgoScHJvamVjdF9jcmVhdGVkX29uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1c2VyX25hbWVzGAUgAygJEhMKC3VzZXJfdGl0bGVzGAYgAygJEhAKCHVzZXJfaWRzGAcgAygJEhQKDHVzZXJfYXZhdGFycxgIIAMoCRIOCgZvcmdfaWQYCSABKAkSDwoHdXNlcl9pZBgKIAEoCSLiDAoeQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EmkKBGJvZHkYASABKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdC5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEa1AsKF09yZ2FuaXphdGlvblJlcXVlc3RCb2R5EvsBCgRuYW1lGAEgASgJQuwBkkHNATLKAVRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLjxici8+KkV4YW1wbGU6KmAiZnJvbnRpZXItb3JnMS1hY21lImDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQSsgEKBXRpdGxlGAIgASgJQqIBkkGeATKbAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnYW5pemF0aW9uLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5Ljxici8+ICpFeGFtcGxlKjogYCJBY21lIEluYyJgEukDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCvQOSQbkDMrYDTWV0YWRhdGEgb2JqZWN0IGZvciBvcmdhbml6YXRpb25zIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmdhbml6YXRpb24gc3VjaCBhcyBsYWJlbHMsIGRlc2NyaXB0aW9ucyBldGMuIFRoZSBkZWZhdWx0IE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLiA8YnIvPipFeGFtcGxlKjpgeyJsYWJlbHMiOiB7ImtleSI6ICJ2YWx1ZSJ9LCAiZGVzY3JpcHRpb24iOiAiT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uIn1gEvACCgZhdmF0YXIYBCABKAlC3wKSQY8CMtMBVGhlIGF2YXRhciBpcyBiYXNlNjQgZW5jb2RlZCBpbWFnZSBkYXRhIG9mIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiBUaGUgaW1hZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiAyMDBLQi4gU2hvdWxkIGZvbGxvdyB0aGUgcmVnZXggcGF0dGVybiBgXmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyRgLko3ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBIvpCSXJHGJChDzI+XmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyTQAQESpgEKD29yZ19vd25lcl9lbWFpbBgFIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABImAKH0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USPQoMb3JnYW5pemF0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iTQoVU2VhcmNoSW52b2ljZXNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrUDChZTZWFyY2hJbnZvaWNlc1Jlc3BvbnNlEksKCGludm9pY2VzGAEgAygLMjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlLkludm9pY2USSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrBAQoHSW52b2ljZRIKCgJpZBgBIAEoCRIOCgZhbW91bnQYAiABKAMSEAoIY3VycmVuY3kYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMaW52b2ljZV9saW5rGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgHIAEoCRIQCghvcmdfbmFtZRgIIAEoCRIRCglvcmdfdGl0bGUYCSABKAkicgolU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCK7BAomU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USfQoab3JnYW5pemF0aW9uX3NlcnZpY2VfdXNlcnMYASADKAsyWS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaMgoHUHJvamVjdBIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRuYW1lGAMgASgJGtEBChdPcmdhbml6YXRpb25TZXJ2aWNlVXNlchIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIOCgZvcmdfaWQYAyABKAkSWwoIcHJvamVjdHMYBCADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLlByb2plY3QSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiHAoaR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QiigEKG0dldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEjwKDHNlcnZpY2VfdXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIiKgoXTGlzdFVzZXJTZXNzaW9uc1JlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCSJQChhMaXN0VXNlclNlc3Npb25zUmVzcG9uc2USNAoIc2Vzc2lvbnMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlc3Npb24iPwoYUmV2b2tlVXNlclNlc3Npb25SZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkSEgoKc2Vzc2lvbl9pZBgCIAEoCSIbChlSZXZva2VVc2VyU2Vzc2lvblJlc3BvbnNlMu57CgxBZG1pblNlcnZpY2USrwIKDExpc3RBbGxVc2VycxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFVzZXJzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFVzZXJzUmVzcG9uc2UivQGSQZ0BCgRVc2VyEg5MaXN0IGFsbCB1c2VycxqEAUxpc3RzIGFsbCB0aGUgdXNlcnMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IGtleXdvcmQsIG9yZ2FuaXphdGlvbiwgZ3JvdXAgYW5kIHN0YXRlLoLT5JMCFhIUL3YxYmV0YTEvYWRtaW4vdXNlcnMSmwIKE0xpc3RBbGxTZXJ2aWNlVXNlcnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsU2VydmljZVVzZXJzUmVzcG9uc2UilAGSQW4KBFVzZXISFkxpc3QgYWxsIHNlcnZpY2UgdXNlcnMaTkxpc3RzIGFsbCB0aGUgc2VydmljZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLoLT5JMCHRIbL3YxYmV0YTEvYWRtaW4vc2VydmljZXVzZXJzEpwCCgpMaXN0R3JvdXBzEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBzUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3Vwc1Jlc3BvbnNlIrABkkGPAQoFR3JvdXASD0xpc3QgYWxsIGdyb3Vwcxp1TGlzdHMgYWxsIHRoZSBncm91cHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbiBhbmQgc3RhdGUugtPkkwIXEhUvdjFiZXRhMS9hZG1pbi9ncm91cHMSswIKFExpc3RBbGxPcmdhbml6YXRpb25zEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsT3JnYW5pemF0aW9uc1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxPcmdhbml6YXRpb25zUmVzcG9uc2UiqQGSQYEBCgxPcmdhbml6YXRpb24SFkxpc3QgYWxsIG9yZ2FuaXphdGlvbnMaWUxpc3RzIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgdXNlciBhbmQgc3RhdGUugtPkkwIeEhwvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zEvABChdBZG1pbkNyZWF0ZU9yZ2FuaXphdGlvbhI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIl6SQTEKDE9yZ2FuaXphdGlvbhIhQ3JlYXRlIG9yZ2FuaXphdGlvbiBhcyBzdXBlcmFkbWlugtPkkwIkIhwvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zOgRib2R5ErICChNTZWFyY2hPcmdhbml6YXRpb25zEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlIqsBkkF2CgxPcmdhbml6YXRpb24SFFNlYXJjaCBvcmdhbml6YXRpb25zGlBTZWFyY2ggb3JnYW5pemF0aW9uIGJhc2VkIG9uIG9yZyBkZW1vZ3JhcGhpYyBwcm9wZXJ0aWVzIGFuZCBiaWxsaW5nIHBsYW4gZGV0YWlsc4LT5JMCLCIjL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9zZWFyY2g6BXF1ZXJ5EvsBChdTZWFyY2hPcmdhbml6YXRpb25Vc2VycxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlImmSQSkKDE9yZ2FuaXphdGlvbhIZU2VhcmNoIG9yZ2FuaXphdGlvbiB1c2Vyc4LT5JMCNyIuL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzL3NlYXJjaDoFcXVlcnkS3QEKElNlYXJjaFByb2plY3RVc2VycxI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UiWpJBHwoHUHJvamVjdBIUU2VhcmNoIFByb2plY3QgdXNlcnOC0+STAjIiKS92MWJldGExL2FkbWluL3Byb2plY3RzL3tpZH0vdXNlcnMvc2VhcmNoOgVxdWVyeRKKAgoaU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZSJvkkEsCgxPcmdhbml6YXRpb24SHFNlYXJjaCBvcmdhbml6YXRpb24gcHJvamVjdHOC0+STAjoiMS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9wcm9qZWN0cy9zZWFyY2g6BXF1ZXJ5EooCChpTZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlcxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1Jlc3BvbnNlIm+SQSwKDE9yZ2FuaXphdGlvbhIcU2VhcmNoIG9yZ2FuaXphdGlvbiBpbnZvaWNlc4LT5JMCOiIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L2ludm9pY2VzL3NlYXJjaDoFcXVlcnkSgAIKGFNlYXJjaE9yZ2FuaXphdGlvblRva2VucxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zUmVzcG9uc2Uia5JBKgoMT3JnYW5pemF0aW9uEhpTZWFyY2ggb3JnYW5pemF0aW9uIHRva2Vuc4LT5JMCOCIvL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Rva2Vucy9zZWFyY2g6BXF1ZXJ5EtQCCihTZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzEkoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBpLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlIo4BkkE8CgxPcmdhbml6YXRpb24SLFNlYXJjaCBvcmdhbml6YXRpb24gc2VydmljZSB1c2VyIGNyZWRlbnRpYWxzgtPkkwJJIkAvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJfY3JlZGVudGlhbHMvc2VhcmNoOgVxdWVyeRKfAgoeU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzEkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXF1ZXN0GkEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXNwb25zZSJ4kkExCgxPcmdhbml6YXRpb24SIVNlYXJjaCBvcmdhbml6YXRpb24gc2VydmljZSB1c2Vyc4LT5JMCPiI1L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3NlcnZpY2V1c2Vycy9zZWFyY2g6BXF1ZXJ5Eo0CChNFeHBvcnRPcmdhbml6YXRpb25zEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRPcmdhbml6YXRpb25zUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkipgGSQXgKDE9yZ2FuaXphdGlvbhIURXhwb3J0IG9yZ2FuaXphdGlvbnMaSEV4cG9ydCBvcmdhbml6YXRpb24gd2l0aCBkZW1vZ3JhcGhpYyBwcm9wZXJ0aWVzIGFuZCBiaWxsaW5nIHBsYW4gZGV0YWlsczoIdGV4dC9jc3aC0+STAiUSIy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMvZXhwb3J0MAESiAIKF0V4cG9ydE9yZ2FuaXphdGlvblVzZXJzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IpkBkkFgCgxPcmdhbml6YXRpb24SGUV4cG9ydCBvcmdhbml6YXRpb24gdXNlcnMaK0V4cG9ydCBvcmdhbml6YXRpb24gdXNlciB0aGVpciByb2xlIGRldGFpbHM6CHRleHQvY3N2gtPkkwIwEi4vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMvZXhwb3J0MAESkwIKGkV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5Ip4BkkFiCgxPcmdhbml6YXRpb24SHEV4cG9ydCBvcmdhbml6YXRpb24gcHJvamVjdHMaKkV4cG9ydCBvcmdhbml6YXRpb24gcHJvamVjdHMgd2l0aCB1c2VyIElEczoIdGV4dC9jc3aC0+STAjMSMS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9wcm9qZWN0cy9leHBvcnQwARL7AQoYRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKKAZJBUAoMT3JnYW5pemF0aW9uEhpFeHBvcnQgb3JnYW5pemF0aW9uIHRva2VucxoaRXhwb3J0IG9yZ2FuaXphdGlvbiB0b2tlbnM6CHRleHQvY3N2gtPkkwIxEi8vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdG9rZW5zL2V4cG9ydDABEt0BCgtFeHBvcnRVc2VycxItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRXhwb3J0VXNlcnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKGAZJBYAoEVXNlchIMRXhwb3J0IHVzZXJzGkBFeHBvcnQgdXNlciB3aXRoIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCHRIbL3YxYmV0YTEvYWRtaW4vdXNlcnMvZXhwb3J0MAES1wEKC1NlYXJjaFVzZXJzEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2Vyc1JlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJzUmVzcG9uc2UiaZJBPAoEVXNlchIMU2VhcmNoIHVzZXJzGiZTZWFyY2ggdXNlcnMgYmFzZWQgb24gdGhlaXIgcHJvcGVydGllc4LT5JMCJCIbL3YxYmV0YTEvYWRtaW4vdXNlcnMvc2VhcmNoOgVxdWVyeRL0AQoXU2VhcmNoVXNlck9yZ2FuaXphdGlvbnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXNwb25zZSJikkEiCgRVc2VyEhpTZWFyY2ggdXNlcnMgb3JnYW5pemF0aW9uc4LT5JMCNyIuL3YxYmV0YTEvYWRtaW4vdXNlcnMve2lkfS9vcmdhbml6YXRpb25zL3NlYXJjaDoFcXVlcnkSggIKElNlYXJjaFVzZXJQcm9qZWN0cxI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlclByb2plY3RzUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlclByb2plY3RzUmVzcG9uc2Uif5JBLwoEVXNlchInU2VhcmNoIHByb2plY3RzIG9mIGEgdXNlciB3aXRoaW4gYW4gb3JngtPkkwJHIj4vdjFiZXRhMS9hZG1pbi91c2Vycy97dXNlcl9pZH0vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9wcm9qZWN0czoFcXVlcnkSrQIKElNldE9yZ2FuaXphdGlvbkt5YxI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2V0T3JnYW5pemF0aW9uS3ljUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2V0T3JnYW5pemF0aW9uS3ljUmVzcG9uc2UiqQGSQXIKD09yZ2FuaXphdGlvbkt5YxImU2V0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbiBvcmdhbml6YXRpb24aN1NldCBLWUMgaW5mb3JtYXRpb24gb2YgYW4gb3JnYW5pemF0aW9uIHVzaW5nIElEIG9yIG5hbWWC0+STAi4aKS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0va3ljOgEqEpsCChRMaXN0T3JnYW5pemF0aW9uc0t5YxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0t5Y1Jlc3BvbnNlIpEBkkFmCg9Pcmdhbml6YXRpb25LeWMSKUxpc3QgS1lDIGluZm9ybWF0aW9uIG9mIGFsbCBvcmdhbml6YXRpb25zGihMaXN0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbGwgb3JnYW5pemF0aW9ugtPkkwIiEiAvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL2t5YxKqAgoMTGlzdFByb2plY3RzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdHNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdHNSZXNwb25zZSK4AZJBlQEKB1Byb2plY3QSEUxpc3QgYWxsIHByb2plY3RzGndMaXN0cyBhbGwgdGhlIHByb2plY3RzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24gYW5kIHN0YXRlLoLT5JMCGRIXL3YxYmV0YTEvYWRtaW4vcHJvamVjdHMStQEKDUxpc3RSZWxhdGlvbnMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZWxhdGlvbnNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVsYXRpb25zUmVzcG9uc2UiQZJBHgoIUmVsYXRpb24SEkxpc3QgYWxsIHJlbGF0aW9uc4LT5JMCGhIYL3YxYmV0YTEvYWRtaW4vcmVsYXRpb25zEsUCCg1MaXN0UmVzb3VyY2VzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVzb3VyY2VzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlc291cmNlc1Jlc3BvbnNlItABkkGsAQoIUmVzb3VyY2USEkxpc3QgYWxsIHJlc291cmNlcxqLAUxpc3RzIGFsbCB0aGUgcmVzb3VyY2VzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VyLCBwcm9qZWN0LCBvcmdhbml6YXRpb24gYW5kIG5hbWVzcGFjZS6C0+STAhoSGC92MWJldGExL2FkbWluL3Jlc291cmNlcxKYAgoKQ3JlYXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVJvbGVSZXNwb25zZSKsAZJBjAEKBFJvbGUSFENyZWF0ZSBwbGF0Zm9ybSByb2xlGm5DcmVhdGVzIGEgcGxhdGZvcm0gd2lkZSByb2xlLiBJdCBjYW4gYmUgdXNlZCB0byBncmFudCBwZXJtaXNzaW9ucyB0byBhbGwgdGhlIHJlc291cmNlcyBpbiBhIEZyb250aWVyIGluc3RhbmNlLoLT5JMCFiIOL3YxYmV0YTEvcm9sZXM6BGJvZHkS1QEKClVwZGF0ZVJvbGUSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVJvbGVSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVSb2xlUmVzcG9uc2UiapJBRgoEUm9sZRILVXBkYXRlIHJvbGUaMVVwZGF0ZSBhIHJvbGUgdGl0bGUsIGRlc2NyaXB0aW9uIGFuZCBwZXJtaXNzaW9ucy6C0+STAhsaEy92MWJldGExL3JvbGVzL3tpZH06BGJvZHkS3AEKCkRlbGV0ZVJvbGUSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJvbGVSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSb2xlUmVzcG9uc2UicZJBUwoEUm9sZRIURGVsZXRlIHBsYXRmb3JtIHJvbGUaNURlbGV0ZSBhIHBsYXRmb3JtIHdpZGUgcm9sZSBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMugtPkkwIVKhMvdjFiZXRhMS9yb2xlcy97aWR9ErECChBDcmVhdGVQZXJtaXNzaW9uEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQZXJtaXNzaW9uUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlIrMBkkGQAQoKUGVybWlzc2lvbhIaQ3JlYXRlIHBsYXRmb3JtIHBlcm1pc3Npb24aZkNyZWF0ZXMgYSBwZXJtaXNzaW9uLiBJdCBjYW4gYmUgdXNlZCB0byBncmFudCBwZXJtaXNzaW9ucyB0byBhbGwgdGhlIHJlc291cmNlcyBpbiBhIEZyb250aWVyIGluc3RhbmNlLoLT5JMCGSIUL3YxYmV0YTEvcGVybWlzc2lvbnM6ASoSvwIKEFVwZGF0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2UiwQGSQZYBCgpQZXJtaXNzaW9uEhpVcGRhdGUgcGxhdGZvcm0gcGVybWlzc2lvbhpsVXBkYXRlcyBhIHBlcm1pc3Npb24gYnkgSUQuIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIhGhkvdjFiZXRhMS9wZXJtaXNzaW9ucy97aWR9OgRib2R5EskBChBEZWxldGVQZXJtaXNzaW9uEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQZXJtaXNzaW9uUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUGVybWlzc2lvblJlc3BvbnNlIkySQSgKClBlcm1pc3Npb24SGkRlbGV0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9ugtPkkwIbKhkvdjFiZXRhMS9wZXJtaXNzaW9ucy97aWR9ErACCg9MaXN0UHJlZmVyZW5jZXMSMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcmVmZXJlbmNlc1JlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcmVmZXJlbmNlc1Jlc3BvbnNlIrUBkkGVAQoKUHJlZmVyZW5jZRIZTGlzdCBwbGF0Zm9ybSBwcmVmZXJlbmNlcxpsUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByZWZlcmVuY2VzIGNvbmZpZ3VyZWQgb24gYW4gaW5zdGFuY2UgaW4gRnJvbnRpZXIuIGUuZyB1c2VyLCBwcm9qZWN0LCBvcmdhbml6YXRpb24gZXRjgtPkkwIWEhQvdjFiZXRhMS9wcmVmZXJlbmNlcxL7AgoRQ3JlYXRlUHJlZmVyZW5jZXMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByZWZlcmVuY2VzUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJlZmVyZW5jZXNSZXNwb25zZSL6AZJB1wEKClByZWZlcmVuY2USG0NyZWF0ZSBwbGF0Zm9ybSBwcmVmZXJlbmNlcxqrAUNyZWF0ZSBuZXcgcGxhdGZvcm0gcHJlZmVyZW5jZXMuIFRoZSBwbGF0Zm9ybSBwcmVmZXJlbmNlcyAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHBsYXRmb3JtIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCGSIUL3YxYmV0YTEvcHJlZmVyZW5jZXM6ASoSgwMKIENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uEkIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlZGVyYXRlZFJlc291cmNlUGVybWlzc2lvblJlcXVlc3QaQy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2Ui1QGSQbIBCgVBdXRoehIFQ2hlY2saoQFSZXR1cm5zIHRydWUgaWYgYSBwcmluY2lwYWwgaGFzIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBhIHJlc291cmNlIGFuZCBmYWxzZSBvdGhlcndpc2UuPGJyLz4gTm90ZSB0aGUgcHJpbmNpcGFsIGNhbiBiZSBhIHVzZXIsIGdyb3VwIG9yIGEgc2VydmljZSBhY2NvdW50LoLT5JMCGSIUL3YxYmV0YTEvYWRtaW4vY2hlY2s6ASoS4AEKD0FkZFBsYXRmb3JtVXNlchIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkUGxhdGZvcm1Vc2VyUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkUGxhdGZvcm1Vc2VyUmVzcG9uc2UiZpJBOwoIUGxhdGZvcm0SEUFkZCBwbGF0Zm9ybSB1c2VyGhxBZGRzIGEgdXNlciB0byB0aGUgcGxhdGZvcm0ugtPkkwIiIh0vdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2VyczoBKhLzAQoRTGlzdFBsYXRmb3JtVXNlcnMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZSJzkkFLCghQbGF0Zm9ybRITTGlzdCBwbGF0Zm9ybSB1c2VycxoqTGlzdHMgYWxsIHRoZSB1c2VycyBhZGRlZCB0byB0aGUgcGxhdGZvcm0ugtPkkwIfEh0vdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2VycxL4AQoSUmVtb3ZlUGxhdGZvcm1Vc2VyEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSJ1kkFDCghQbGF0Zm9ybRIUUmVtb3ZlIHBsYXRmb3JtIHVzZXIaIVJlbW92ZXMgYSB1c2VyIGZyb20gdGhlIHBsYXRmb3JtLoLT5JMCKSIkL3YxYmV0YTEvYWRtaW4vcGxhdGZvcm0vdXNlcnMvcmVtb3ZlOgEqEsADChFEZWxlZ2F0ZWRDaGVja291dBIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxlZ2F0ZWRDaGVja291dFJlc3BvbnNlIr8CkkGtAQoIQ2hlY2tvdXQSIkNoZWNrb3V0IGEgcHJvZHVjdCBvciBzdWJzY3JpcHRpb24afUNoZWNrb3V0IGEgcHJvZHVjdCB0byBidXkgaXQgb25lIHRpbWUgb3Igc3RhcnQgYSBzdWJzY3JpcHRpb24gcGxhbiBvbiBhIGJpbGxpbmcgYWNjb3VudCBtYW51YWxseS4gSXQgYnlwYXNzZXMgYmlsbGluZyBlbmdpbmUugtPkkwKHASJEL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVja291dHM6ASpaPCI3L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2NoZWNrb3V0czoBKhKxAgoPTGlzdEFsbEludm9pY2VzEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsSW52b2ljZXNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsSW52b2ljZXNSZXNwb25zZSK2AZJBiwEKB0ludm9pY2USEUxpc3QgYWxsIGludm9pY2VzGm1MaXN0cyBhbGwgdGhlIGludm9pY2VzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24ugtPkkwIhEh8vdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2ludm9pY2VzEqcCChBHZW5lcmF0ZUludm9pY2VzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZW5lcmF0ZUludm9pY2VzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2VuZXJhdGVJbnZvaWNlc1Jlc3BvbnNlIqkBkkFzCgdJbnZvaWNlEhpUcmlnZ2VyIGludm9pY2UgZ2VuZXJhdGlvbhpMVHJpZ2dlcnMgdGhlIGNyZWF0aW9uIG9mIGNyZWRpdCBvdmVyZHJhZnQgaW52b2ljZXMgZm9yIGFsbCBiaWxsaW5nIGFjY291bnRzLoLT5JMCLSIoL3YxYmV0YTEvYWRtaW4vYmlsbGluZy9pbnZvaWNlcy9nZW5lcmF0ZToBKhLWAgoWTGlzdEFsbEJpbGxpbmdBY2NvdW50cxI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEJpbGxpbmdBY2NvdW50c1JlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxCaWxsaW5nQWNjb3VudHNSZXNwb25zZSLGAZJBmwEKB0JpbGxpbmcSGUxpc3QgYWxsIGJpbGxpbmcgYWNjb3VudHMadUxpc3RzIGFsbCB0aGUgYmlsbGluZyBhY2NvdW50cyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uLoLT5JMCIRIfL3YxYmV0YTEvYWRtaW4vYmlsbGluZy9hY2NvdW50cxLkAgoSUmV2ZXJ0QmlsbGluZ1VzYWdlEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZlcnRCaWxsaW5nVXNhZ2VSZXNwb25zZSLgAZJBTAoHQmlsbGluZxIUUmV2ZXJ0IGJpbGxpbmcgdXNhZ2UaK1JldmVydCBiaWxsaW5nIHVzYWdlIGZvciBhIGJpbGxpbmcgYWNjb3VudC6C0+STAooBIlIvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L3VzYWdlL3t1c2FnZV9pZH0vcmV2ZXJ0OgEqWjEiLC92MWJldGExL29yZ2FuaXphdGlvbnMvYmlsbGluZy91c2FnZXMvcmV2ZXJ0OgEqEskBCg1DcmVhdGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlV2ViaG9va1Jlc3BvbnNlIlWSQTAKB1dlYmhvb2sSDkNyZWF0ZSB3ZWJob29rGhVDcmVhdGUgYSBuZXcgd2ViaG9vay6C0+STAhwiFy92MWJldGExL2FkbWluL3dlYmhvb2tzOgEqEsoBCg1VcGRhdGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlV2ViaG9va1Jlc3BvbnNlIlaSQSwKB1dlYmhvb2sSDlVwZGF0ZSB3ZWJob29rGhFVcGRhdGUgYSB3ZWJob29rLoLT5JMCIRocL3YxYmV0YTEvYWRtaW4vd2ViaG9va3Mve2lkfToBKhLHAQoNRGVsZXRlV2ViaG9vaxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlV2ViaG9va1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVdlYmhvb2tSZXNwb25zZSJTkkEsCgdXZWJob29rEg5EZWxldGUgd2ViaG9vaxoRRGVsZXRlIGEgd2ViaG9vay6C0+STAh4qHC92MWJldGExL2FkbWluL3dlYmhvb2tzL3tpZH0SvwEKDExpc3RXZWJob29rcxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFdlYmhvb2tzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFdlYmhvb2tzUmVzcG9uc2UiTpJBLAoHV2ViaG9vaxINTGlzdCB3ZWJob29rcxoSTGlzdCBhbGwgd2ViaG9va3MugtPkkwIZEhcvdjFiZXRhMS9hZG1pbi93ZWJob29rcxKwAgoaVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSKUAYgCAZJBSgoHQmlsbGluZxIdVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBsaW1pdHMaHlVwZGF0ZSBiaWxsaW5nIGFjY291bnQgbGltaXRzLlgBgtPkkwI+GjkvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9saW1pdHM6ASoSswIKGEdldEJpbGxpbmdBY2NvdW50RGV0YWlscxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2UinQGSQVgKB0JpbGxpbmcSG0dldCBiaWxsaW5nIGFjY291bnQgZGV0YWlscxowR2V0IGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzIHRoYXQgY2FuIGJlIHVwZGF0ZWQugtPkkwI8EjovdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9kZXRhaWxzErECChtVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHMSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlIpIBkkFKCgdCaWxsaW5nEh5VcGRhdGUgYmlsbGluZyBhY2NvdW50IGRldGFpbHMaH1VwZGF0ZSBiaWxsaW5nIGFjY291bnQgZGV0YWlscy6C0+STAj8aOi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2RldGFpbHM6ASoS5wEKDkNyZWF0ZVByb3NwZWN0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9zcGVjdFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UmVzcG9uc2UicJJBSgoIUHJvc3BlY3QSD0NyZWF0ZSBwcm9zcGVjdBotQ3JlYXRlIHByb3NwZWN0IGZvciBnaXZlbiBlbWFpbCBhbmQgYWN0aXZpdHkugtPkkwIdIhgvdjFiZXRhMS9hZG1pbi9wcm9zcGVjdHM6ASoS/AEKDUxpc3RQcm9zcGVjdHMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9zcGVjdHNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvc3BlY3RzUmVzcG9uc2UihwGSQVgKCFByb3NwZWN0Eg5MaXN0IHByb3NwZWN0cxo8TGlzdCBwcm9zcGVjdHMgYW5kIHN1cHBvcnRzIGZpbHRlcnMsIHNvcnRpbmcgYW5kIHBhZ2luYXRpb24ugtPkkwImIh0vdjFiZXRhMS9hZG1pbi9wcm9zcGVjdHMvbGlzdDoFcXVlcnkSwgEKC0dldFByb3NwZWN0Ei0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9zcGVjdFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb3NwZWN0UmVzcG9uc2UiVJJBLAoIUHJvc3BlY3QSDEdldCBwcm9zcGVjdBoSR2V0IHByb3NwZWN0IGJ5IElEgtPkkwIfEh0vdjFiZXRhMS9hZG1pbi9wcm9zcGVjdHMve2lkfRLbAQoOVXBkYXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvc3BlY3RSZXNwb25zZSJkkkE5CghQcm9zcGVjdBIPVXBkYXRlIHByb3NwZWN0GhxVcGRhdGUgcHJvc3BlY3QgZm9yIGdpdmVuIElEgtPkkwIiGh0vdjFiZXRhMS9hZG1pbi9wcm9zcGVjdHMve2lkfToBKhLYAQoORGVsZXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvc3BlY3RSZXNwb25zZSJhkkE5CghQcm9zcGVjdBIPRGVsZXRlIHByb3NwZWN0GhxEZWxldGUgcHJvc3BlY3QgZm9yIGdpdmVuIElEgtPkkwIfKh0vdjFiZXRhMS9hZG1pbi9wcm9zcGVjdHMve2lkfRLaAQoOU2VhcmNoSW52b2ljZXMSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaEludm9pY2VzUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoSW52b2ljZXNSZXNwb25zZSJjkkEzCgdpbnZvaWNlEihTZWFyY2ggaW52b2ljZXMgYWNyb3NzIGFsbCBvcmdhbml6YXRpb25zgtPkkwInIh4vdjFiZXRhMS9hZG1pbi9pbnZvaWNlcy9zZWFyY2g6BXF1ZXJ5ErQCChNHZXRDdXJyZW50QWRtaW5Vc2VyEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50QWRtaW5Vc2VyUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q3VycmVudEFkbWluVXNlclJlc3BvbnNlIq0BkkGIAQoEVXNlchIWR2V0IGN1cnJlbnQgYWRtaW4gdXNlchpoUmV0dXJucyB0aGUgY3VycmVudCBhdXRoZW50aWNhdGVkIGFkbWluIHVzZXIgcHJvZmlsZS4gUmV0dXJucyA0MDMgRm9yYmlkZGVuIGlmIHRoZSB1c2VyIGlzIG5vdCBhbiBhZG1pbi6C0+STAhsSGS92MWJldGExL2FkbWluL3VzZXJzL3NlbGYSfQoQTGlzdFVzZXJTZXNzaW9ucxIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJTZXNzaW9uc1JlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyU2Vzc2lvbnNSZXNwb25zZSIAEoABChFSZXZva2VVc2VyU2Vzc2lvbhIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2b2tlVXNlclNlc3Npb25SZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VVc2VyU2Vzc2lvblJlc3BvbnNlIgBC8A4KI2lvLnJheXN0YWNrLnByb3Rvbi5mcm9udGllci52MWJldGExQghGcm9udGllclo7Z2l0aHViLmNvbS9yYXlzdGFjay9wcm90b24vZnJvbnRpZXIvdjFiZXRhMTtmcm9udGllcnYxYmV0YTGSQYAOEv4GChtGcm9udGllciBBZG1pbmlzdHJhdGlvbiBBUEkSzwVUaGUgRnJvbnRpZXIgQVBJcyBhZGhlcmUgdG8gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiwgYWxzbyBrbm93biBhcyBTd2FnZ2VyLCB3aGljaCBwcm92aWRlcyBhIHN0YW5kYXJkaXplZCBhcHByb2FjaCBmb3IgZGVzaWduaW5nLCBkb2N1bWVudGluZywgYW5kIGNvbnN1bWluZyBSRVNUZnVsIEFQSXMuIFdpdGggT3BlbkFQSSwgeW91IGdhaW4gYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBBUEkgZW5kcG9pbnRzLCByZXF1ZXN0L3Jlc3BvbnNlIHN0cnVjdHVyZXMsIGFuZCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIHN1cHBvcnRlZCBieSB0aGUgRnJvbnRpZXIgQVBJcy4gQnkgbGV2ZXJhZ2luZyB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBkZXZlbG9wZXJzIGNhbiBlYXNpbHkgZXhwbG9yZSBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgRnJvbnRpZXIgQVBJcyB1c2luZyBhIHZhcmlldHkgb2YgdG9vbHMgYW5kIGxpYnJhcmllcy4gVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBlbmFibGVzIGF1dG9tYXRpYyBjb2RlIGdlbmVyYXRpb24sIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9uLCBhbmQgc2VhbWxlc3MgaW50ZWdyYXRpb24gd2l0aCBBUEkgdGVzdGluZyBmcmFtZXdvcmtzLCBtYWtpbmcgaXQgZWFzaWVyIHRoYW4gZXZlciB0byBpbnRlZ3JhdGUgRnJvbnRpZXIgaW50byB5b3VyIGV4aXN0aW5nIGFwcGxpY2F0aW9ucyBhbmQgd29ya2Zsb3dzLiJAChNSYXlzdGFjayBGb3VuZGF0aW9uEhVodHRwczovL3JheXN0YWNrLm9yZy8aEmhlbGxvQHJheXN0YWNrLm9yZypECgpBcGFjaGUgMi4wEjZodHRwczovL2dpdGh1Yi5jb20vcmF5c3RhY2svZnJvbnRpZXIvYmxvYi9tYWluL0xJQ0VOU0UyBTAuMi4wGg4xMjcuMC4wLjE6NzQwMCoBATIQYXBwbGljYXRpb24vanNvbjoQYXBwbGljYXRpb24vanNvblI8CgMyMDASNQobT0sgLSBBIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmkKAzQwMBJiCkhCYWQgUmVxdWVzdCAtIFRoZSByZXF1ZXN0IHdhcyBtYWxmb3JtZWQgb3IgY29udGFpbmVkIGludmFsaWQgcGFyYW1ldGVycy4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSSgoDNDAxEkMKKVVuYXV0aG9yaXplZCAtIEF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmEKAzQwMxJaCkBGb3JiaWRkZW4gLSBVc2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlIHJlc291cmNlEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUlEKAzQwNBJKCjBOb3QgRm91bmQgLSBUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSdQoDNTAwEm4KVEludGVybmFsIFNlcnZlciBFcnJvci4gUmV0dXJuZWQgd2hlbiB0aGVyZXMgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggRnJvbnRpZXIgc2VydmVyLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1qoAQpOCgVCYXNpYxJFCAESN3VzZSBDbGllbnQgSUQgYXMgdXNlcm5hbWUgYW5kIENsaWVudCBTZWNyZXQgYXMgcGFzc3dvcmQaBkJhc2ljICACClYKBkJlYXJlchJMCAMSPUFjY2VzcyB0b2tlbiBvciBKV1QgdG9rZW4sIHByZWZpeGVkIGJ5IEJlYXJlcjogQmVhcmVyIDx0b2tlbj4aB0JlYXJlciAgAmIJCgcKBUJhc2ljYgoKCAoGQmVhcmVyagYKBFVzZXJqBwoFR3JvdXBqDgoMT3JnYW5pemF0aW9uagkKB1Byb2plY3RqCgoIUmVsYXRpb25qCgoIUmVzb3VyY2VqCAoGUG9saWN5agYKBFJvbGVqDAoKUGVybWlzc2lvbmIGcHJvdG8z", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
24
24
 
25
25
  /**
26
26
  * @generated from message raystack.frontier.v1beta1.ListAllUsersRequest
@@ -3081,6 +3081,75 @@ export type GetCurrentAdminUserResponse = Message<"raystack.frontier.v1beta1.Get
3081
3081
  export const GetCurrentAdminUserResponseSchema: GenMessage<GetCurrentAdminUserResponse> = /*@__PURE__*/
3082
3082
  messageDesc(file_raystack_frontier_v1beta1_admin, 109);
3083
3083
 
3084
+ /**
3085
+ * @generated from message raystack.frontier.v1beta1.ListUserSessionsRequest
3086
+ */
3087
+ export type ListUserSessionsRequest = Message<"raystack.frontier.v1beta1.ListUserSessionsRequest"> & {
3088
+ /**
3089
+ * @generated from field: string user_id = 1;
3090
+ */
3091
+ userId: string;
3092
+ };
3093
+
3094
+ /**
3095
+ * Describes the message raystack.frontier.v1beta1.ListUserSessionsRequest.
3096
+ * Use `create(ListUserSessionsRequestSchema)` to create a new message.
3097
+ */
3098
+ export const ListUserSessionsRequestSchema: GenMessage<ListUserSessionsRequest> = /*@__PURE__*/
3099
+ messageDesc(file_raystack_frontier_v1beta1_admin, 110);
3100
+
3101
+ /**
3102
+ * @generated from message raystack.frontier.v1beta1.ListUserSessionsResponse
3103
+ */
3104
+ export type ListUserSessionsResponse = Message<"raystack.frontier.v1beta1.ListUserSessionsResponse"> & {
3105
+ /**
3106
+ * @generated from field: repeated raystack.frontier.v1beta1.Session sessions = 1;
3107
+ */
3108
+ sessions: Session[];
3109
+ };
3110
+
3111
+ /**
3112
+ * Describes the message raystack.frontier.v1beta1.ListUserSessionsResponse.
3113
+ * Use `create(ListUserSessionsResponseSchema)` to create a new message.
3114
+ */
3115
+ export const ListUserSessionsResponseSchema: GenMessage<ListUserSessionsResponse> = /*@__PURE__*/
3116
+ messageDesc(file_raystack_frontier_v1beta1_admin, 111);
3117
+
3118
+ /**
3119
+ * @generated from message raystack.frontier.v1beta1.RevokeUserSessionRequest
3120
+ */
3121
+ export type RevokeUserSessionRequest = Message<"raystack.frontier.v1beta1.RevokeUserSessionRequest"> & {
3122
+ /**
3123
+ * @generated from field: string user_id = 1;
3124
+ */
3125
+ userId: string;
3126
+
3127
+ /**
3128
+ * @generated from field: string session_id = 2;
3129
+ */
3130
+ sessionId: string;
3131
+ };
3132
+
3133
+ /**
3134
+ * Describes the message raystack.frontier.v1beta1.RevokeUserSessionRequest.
3135
+ * Use `create(RevokeUserSessionRequestSchema)` to create a new message.
3136
+ */
3137
+ export const RevokeUserSessionRequestSchema: GenMessage<RevokeUserSessionRequest> = /*@__PURE__*/
3138
+ messageDesc(file_raystack_frontier_v1beta1_admin, 112);
3139
+
3140
+ /**
3141
+ * @generated from message raystack.frontier.v1beta1.RevokeUserSessionResponse
3142
+ */
3143
+ export type RevokeUserSessionResponse = Message<"raystack.frontier.v1beta1.RevokeUserSessionResponse"> & {
3144
+ };
3145
+
3146
+ /**
3147
+ * Describes the message raystack.frontier.v1beta1.RevokeUserSessionResponse.
3148
+ * Use `create(RevokeUserSessionResponseSchema)` to create a new message.
3149
+ */
3150
+ export const RevokeUserSessionResponseSchema: GenMessage<RevokeUserSessionResponse> = /*@__PURE__*/
3151
+ messageDesc(file_raystack_frontier_v1beta1_admin, 113);
3152
+
3084
3153
  /**
3085
3154
  * @generated from service raystack.frontier.v1beta1.AdminService
3086
3155
  */
@@ -3593,6 +3662,26 @@ export const AdminService: GenService<{
3593
3662
  input: typeof GetCurrentAdminUserRequestSchema;
3594
3663
  output: typeof GetCurrentAdminUserResponseSchema;
3595
3664
  },
3665
+ /**
3666
+ * Returns a list of all sessions for a specific user. Admin access required.
3667
+ *
3668
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.ListUserSessions
3669
+ */
3670
+ listUserSessions: {
3671
+ methodKind: "unary";
3672
+ input: typeof ListUserSessionsRequestSchema;
3673
+ output: typeof ListUserSessionsResponseSchema;
3674
+ },
3675
+ /**
3676
+ * Revoke a specific session for a specific user (admin only).
3677
+ *
3678
+ * @generated from rpc raystack.frontier.v1beta1.AdminService.RevokeUserSession
3679
+ */
3680
+ revokeUserSession: {
3681
+ methodKind: "unary";
3682
+ input: typeof RevokeUserSessionRequestSchema;
3683
+ output: typeof RevokeUserSessionResponseSchema;
3684
+ },
3596
3685
  }> = /*@__PURE__*/
3597
3686
  serviceDesc(file_raystack_frontier_v1beta1_admin, 0);
3598
3687