diff --git a/docs/categories/all.html b/docs/categories/all.html
index f3c9bd07..9b7ede64 100644
--- a/docs/categories/all.html
+++ b/docs/categories/all.html
@@ -109,7 +109,7 @@
Yes
Yes
Yes
- 1964
+ 1993
More Details
@@ -535,7 +535,7 @@ Yes
Yes
Yes
- 21681
+ 21685
More Details
@@ -581,7 +581,7 @@ No
Yes
Yes
- 1410
+ 1411
More Details
@@ -713,7 +713,7 @@ No
Yes
No
- 4660
+ 4661
More Details
@@ -759,7 +759,7 @@ No
Yes
Yes
- 18589
+ 18597
More Details
@@ -805,7 +805,7 @@ No
Yes
Yes
- 1058
+ 1059
More Details
@@ -917,7 +917,7 @@ No
Yes
Yes
- 294
+ 295
More Details
@@ -1001,7 +1001,7 @@ Yes
Yes
Yes
- 8472
+ 8474
More Details
@@ -1382,7 +1382,7 @@ Yes
Yes
Yes
- 3845
+ 3844
More Details
@@ -1581,7 +1581,7 @@ No
Yes
Yes
- 2994
+ 2995
More Details
@@ -1696,7 +1696,7 @@ No
Yes
Yes
- 8164
+ 8163
More Details
@@ -1742,7 +1742,7 @@ No
Yes
No
- 1630
+ 1629
More Details
@@ -1855,7 +1855,7 @@ No
Yes
Yes
- 4093
+ 4092
More Details
@@ -1920,7 +1920,7 @@ No
Yes
No
- 592
+ 591
More Details
@@ -1987,7 +1987,7 @@ Yes
Yes
Yes
- 2123
+ 2124
More Details
@@ -2052,7 +2052,7 @@ Yes
Yes
Yes
- 723
+ 724
More Details
@@ -2297,7 +2297,7 @@ No
Yes
Yes
- 2201
+ 2202
More Details
@@ -2318,7 +2318,7 @@ Yes
Yes
No
- 478
+ 479
More Details
@@ -2578,7 +2578,7 @@ No
No
Yes
- 9059
+ 9062
More Details
@@ -2647,7 +2647,7 @@ No
Yes
Yes
- 6242
+ 6245
More Details
@@ -2693,7 +2693,7 @@ No
Yes
Yes
- 16226
+ 16230
More Details
@@ -2714,7 +2714,7 @@ No
Yes
Yes
- 4395
+ 4394
More Details
@@ -2848,7 +2848,7 @@ No
Yes
No
- 367
+ 368
More Details
@@ -3010,7 +3010,7 @@ No
Yes
Yes
- 389
+ 390
More Details
@@ -3117,7 +3117,7 @@ Yes
Yes
Yes
- 1032
+ 1033
More Details
@@ -3159,7 +3159,7 @@ No
Yes
No
- 210
+ 209
More Details
@@ -3182,7 +3182,7 @@ No
Yes
No
- 102
+ 101
More Details
@@ -3472,7 +3472,7 @@ No
Yes
Yes
- 5882
+ 5881
More Details
@@ -3516,7 +3516,7 @@ No
Yes
Yes
- 11574
+ 11576
More Details
@@ -3711,7 +3711,7 @@ No
Yes
No
- 26875
+ 26879
More Details
@@ -3886,7 +3886,7 @@ Yes
Yes
Yes
- 1327
+ 1329
More Details
@@ -3978,7 +3978,7 @@ Yes
Yes
No
- 1002
+ 1004
More Details
@@ -4108,7 +4108,7 @@ No
Yes
Yes
- 1922
+ 1923
More Details
@@ -4265,7 +4265,7 @@ Yes
Yes
Yes
- 3989
+ 3991
More Details
@@ -4537,7 +4537,7 @@ Yes
Yes
Yes
- 281
+ 282
More Details
@@ -4659,7 +4659,7 @@ Yes
Yes
No
- 6
+ 7
More Details
@@ -4680,7 +4680,7 @@ Yes
Yes
Yes
- 7
+ 8
More Details
@@ -4703,7 +4703,7 @@ No
Yes
No
- 1809
+ 1810
More Details
@@ -4726,7 +4726,7 @@ Yes
Yes
Yes
- 2022
+ 2025
More Details
@@ -4818,7 +4818,7 @@ No
Yes
Yes
- 1
+ 2
More Details
@@ -4841,7 +4841,7 @@ Yes
Yes
No
- 311
+ 312
More Details
@@ -4864,7 +4864,7 @@ No
Yes
No
- 66386
+ 66423
More Details
@@ -4887,7 +4887,7 @@ Yes
Yes
No
- 24960
+ 24964
More Details
@@ -4910,7 +4910,7 @@ Yes
Yes
No
- 21681
+ 21685
More Details
@@ -4931,7 +4931,7 @@ No
Yes
No
- 13996
+ 14017
More Details
@@ -4973,7 +4973,7 @@ No
Yes
No
- 5597
+ 5598
More Details
@@ -4994,7 +4994,7 @@ No
Yes
No
- 3721
+ 3726
More Details
@@ -5015,7 +5015,7 @@ Yes
Yes
No
- 3586
+ 3589
More Details
@@ -5059,7 +5059,7 @@ No
Yes
No
- 2942
+ 2941
More Details
@@ -5101,7 +5101,7 @@ No
Yes
No
- 2434
+ 2435
More Details
@@ -5124,7 +5124,7 @@ No
Yes
No
- 1951
+ 1952
More Details
@@ -5145,7 +5145,7 @@ No
Yes
No
- 1935
+ 1937
More Details
@@ -5187,7 +5187,7 @@ No
Yes
No
- 1592
+ 1595
More Details
@@ -5208,7 +5208,7 @@ No
Yes
No
- 1579
+ 1584
More Details
@@ -5229,7 +5229,7 @@ No
Yes
No
- 1474
+ 1475
More Details
@@ -5294,7 +5294,7 @@ No
Yes
No
- 1066
+ 1065
More Details
@@ -5315,7 +5315,7 @@ No
Yes
No
- 897
+ 896
More Details
@@ -5336,7 +5336,7 @@ No
Yes
No
- 878
+ 880
More Details
@@ -5399,7 +5399,7 @@ No
Yes
No
- 719
+ 720
More Details
@@ -5462,7 +5462,7 @@ Yes
Yes
No
- 656
+ 657
More Details
@@ -5546,7 +5546,7 @@ No
Yes
No
- 532
+ 533
More Details
@@ -5588,7 +5588,7 @@ No
Yes
No
- 443
+ 444
More Details
@@ -5630,7 +5630,7 @@ No
Yes
No
- 443
+ 442
More Details
@@ -5651,7 +5651,7 @@ No
Yes
No
- 426
+ 427
More Details
@@ -6010,7 +6010,7 @@ No
Yes
No
- 273
+ 272
More Details
@@ -6115,7 +6115,7 @@ No
Yes
No
- 227
+ 229
More Details
@@ -6199,7 +6199,7 @@ No
Yes
No
- 214
+ 213
More Details
@@ -6432,7 +6432,7 @@ No
Yes
No
- 186
+ 187
More Details
@@ -6503,14 +6503,14 @@
- swurg
+ openapi-parser
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).
No
- Link
+ Link
No
@@ -6519,7 +6519,7 @@ 177
- More Details
+ More Details
@@ -6621,7 +6621,7 @@ No
Yes
No
- 168
+ 169
More Details
@@ -6644,7 +6644,7 @@ No
Yes
No
- 165
+ 168
More Details
@@ -6814,7 +6814,7 @@ No
Yes
No
- 130
+ 129
More Details
@@ -6856,7 +6856,7 @@ No
Yes
No
- 125
+ 126
More Details
@@ -7087,7 +7087,7 @@ No
Yes
No
- 100
+ 99
More Details
@@ -7192,7 +7192,7 @@ No
Yes
No
- 88
+ 89
More Details
@@ -7318,7 +7318,7 @@ No
Yes
No
- 82
+ 83
More Details
@@ -7360,7 +7360,7 @@ No
Yes
No
- 82
+ 81
More Details
@@ -7444,7 +7444,7 @@ No
Yes
No
- 77
+ 78
More Details
@@ -15503,7 +15503,7 @@ No
Yes
No
- 4
+ 5
More Details
@@ -26093,7 +26093,7 @@ Yes
Yes
No
- 552
+ 551
More Details
@@ -28645,7 +28645,7 @@ No
No
No
- 3466
+ 3467
More Details
@@ -29140,7 +29140,7 @@ No
Yes
Yes
- 4357
+ 4358
More Details
@@ -29366,7 +29366,7 @@ No
Yes
Yes
- 2363
+ 2362
More Details
@@ -29387,7 +29387,7 @@ No
Yes
No
- 60
+ 61
More Details
@@ -29998,7 +29998,7 @@ No
Yes
No
- 1257
+ 1261
More Details
@@ -30226,7 +30226,7 @@ Scalar (link)
Stars
- 1964
+ 1993
Watchers
@@ -30242,7 +30242,7 @@ Scalar (link)
Last Updated
- 2023-12-29T03:05:53Z
+ 2023-12-30T03:30:17Z
Archived
@@ -31266,7 +31266,7 @@ ReDoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -31282,7 +31282,7 @@ ReDoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
@@ -31370,7 +31370,7 @@ widdershins (link)
Stars
- 1410
+ 1411
Watchers
@@ -31386,7 +31386,7 @@ widdershins (link)
Last Updated
- 2023-12-28T18:25:21Z
+ 2023-12-29T11:57:02Z
Archived
@@ -31682,7 +31682,7 @@ OpenAPI Server Code Generator (oapi-cod
Stars
- 4660
+ 4661
Watchers
@@ -31698,7 +31698,7 @@ OpenAPI Server Code Generator (oapi-cod
Last Updated
- 2023-12-28T20:22:33Z
+ 2023-12-29T23:48:54Z
Archived
@@ -31786,7 +31786,7 @@ OpenAPI Generator (link)
Stars
- 18589
+ 18597
Watchers
@@ -31794,7 +31794,7 @@ OpenAPI Generator (link)
Forks
- 5880
+ 5883
Created
@@ -31802,7 +31802,7 @@ OpenAPI Generator (link)
Last Updated
- 2023-12-29T02:43:39Z
+ 2023-12-30T01:06:32Z
Archived
@@ -31890,7 +31890,7 @@ Kiota Api Client Generator (link)
Stars
- 1058
+ 1059
Watchers
@@ -31906,7 +31906,7 @@ Kiota Api Client Generator (link)
Last Updated
- 2023-12-27T09:52:00Z
+ 2023-12-29T07:06:50Z
Archived
@@ -32150,7 +32150,7 @@ VSCode OpenAPI (link)
Stars
- 294
+ 295
Watchers
@@ -32166,7 +32166,7 @@ VSCode OpenAPI (link)
Last Updated
- 2023-12-15T00:34:17Z
+ 2023-12-29T03:30:57Z
Archived
@@ -32358,7 +32358,7 @@ Swagger Editor (link)
Stars
- 8472
+ 8474
Watchers
@@ -32374,7 +32374,7 @@ Swagger Editor (link)
Last Updated
- 2023-12-28T14:33:35Z
+ 2023-12-29T14:09:27Z
Archived
@@ -33294,7 +33294,7 @@ Prism (link)
Stars
- 3845
+ 3844
Watchers
@@ -33310,7 +33310,7 @@ Prism (link)
Last Updated
- 2023-12-27T21:57:32Z
+ 2023-12-29T13:41:07Z
Archived
@@ -33762,7 +33762,7 @@ tsoa (link)
Stars
- 2994
+ 2995
Watchers
@@ -33770,7 +33770,7 @@ tsoa (link)
Forks
- 460
+ 461
Created
@@ -33778,7 +33778,7 @@ tsoa (link)
Last Updated
- 2023-12-28T23:22:55Z
+ 2023-12-29T21:39:20Z
Archived
@@ -33874,7 +33874,7 @@ express-openapi (link)
Forks
- 230
+ 231
Created
@@ -34022,7 +34022,7 @@ API Platform (link)
Stars
- 8164
+ 8163
Watchers
@@ -34038,7 +34038,7 @@ API Platform (link)
Last Updated
- 2023-12-28T20:20:50Z
+ 2023-12-29T15:29:28Z
Archived
@@ -34126,7 +34126,7 @@ Fusio (link)
Stars
- 1630
+ 1629
Watchers
@@ -34142,7 +34142,7 @@ Fusio (link)
Last Updated
- 2023-12-28T12:53:22Z
+ 2023-12-29T08:56:31Z
Archived
@@ -34386,7 +34386,7 @@ Dredd (link)
Stars
- 4093
+ 4092
Watchers
@@ -34402,7 +34402,7 @@ Dredd (link)
Last Updated
- 2023-12-28T11:59:16Z
+ 2023-12-29T08:57:10Z
Archived
@@ -34542,7 +34542,7 @@ portman (link)
Stars
- 592
+ 591
Watchers
@@ -34558,7 +34558,7 @@ portman (link)
Last Updated
- 2023-12-25T03:03:51Z
+ 2023-12-29T09:00:51Z
Archived
@@ -34698,7 +34698,7 @@ Spectral (link)
Stars
- 2123
+ 2124
Watchers
@@ -34714,7 +34714,7 @@ Spectral (link)
Last Updated
- 2023-12-27T09:48:09Z
+ 2023-12-29T09:17:45Z
Archived
@@ -34854,7 +34854,7 @@ Redocly CLI (link)
Stars
- 723
+ 724
Watchers
@@ -34870,7 +34870,7 @@ Redocly CLI (link)
Last Updated
- 2023-12-28T14:56:10Z
+ 2023-12-29T11:35:20Z
Archived
@@ -35426,7 +35426,7 @@ kin-openapi (link)
Stars
- 2201
+ 2202
Watchers
@@ -35442,7 +35442,7 @@ kin-openapi (link)
Last Updated
- 2023-12-28T23:57:08Z
+ 2023-12-29T04:31:27Z
Archived
@@ -35478,7 +35478,7 @@ openapi-psr7-validator (link)
Stars
- 478
+ 479
Watchers
@@ -35494,7 +35494,7 @@ openapi-psr7-validator (link)
Last Updated
- 2023-12-28T12:48:10Z
+ 2023-12-29T14:13:19Z
Archived
@@ -36102,7 +36102,7 @@ go-swagger (link)
Stars
- 9059
+ 9062
Watchers
@@ -36118,7 +36118,7 @@ go-swagger (link)
Last Updated
- 2023-12-29T02:13:57Z
+ 2023-12-29T18:47:23Z
Archived
@@ -36258,7 +36258,7 @@ NSwag (link)
Stars
- 6242
+ 6245
Watchers
@@ -36266,7 +36266,7 @@ NSwag (link)
Forks
- 1180
+ 1181
Created
@@ -36274,7 +36274,7 @@ NSwag (link)
Last Updated
- 2023-12-28T19:10:15Z
+ 2023-12-29T19:53:37Z
Archived
@@ -36362,7 +36362,7 @@ Swagger-Codegen (link)
Stars
- 16226
+ 16230
Watchers
@@ -36378,7 +36378,7 @@ Swagger-Codegen (link)
Last Updated
- 2023-12-29T03:04:36Z
+ 2023-12-29T22:01:23Z
Archived
@@ -36414,7 +36414,7 @@ Azure AutoRest (link)
Stars
- 4395
+ 4394
Watchers
@@ -36422,7 +36422,7 @@ Azure AutoRest (link)
Forks
- 755
+ 756
Created
@@ -36430,7 +36430,7 @@ Azure AutoRest (link)
Last Updated
- 2023-12-28T15:58:32Z
+ 2023-12-29T08:56:02Z
Archived
@@ -36726,7 +36726,7 @@ laravel-openapi (link)
Stars
- 367
+ 368
Watchers
@@ -36742,7 +36742,7 @@ laravel-openapi (link)
Last Updated
- 2023-12-23T16:17:39Z
+ 2023-12-29T07:44:29Z
Archived
@@ -37142,7 +37142,7 @@ EvoMaster (link)
Stars
- 389
+ 390
Watchers
@@ -37158,7 +37158,7 @@ EvoMaster (link)
Last Updated
- 2023-12-22T03:01:08Z
+ 2023-12-29T16:12:34Z
Archived
@@ -37402,7 +37402,7 @@ cats (link)
Stars
- 1032
+ 1033
Watchers
@@ -37418,7 +37418,7 @@ cats (link)
Last Updated
- 2023-12-20T03:50:38Z
+ 2023-12-30T02:41:07Z
Archived
@@ -37506,7 +37506,7 @@ OpenAPI Schema to JSON Schema (link)
Stars
- 210
+ 209
Watchers
@@ -37522,7 +37522,7 @@ OpenAPI Schema to JSON Schema (link)
Last Updated
- 2023-12-26T07:02:01Z
+ 2023-12-29T09:00:17Z
Archived
@@ -37558,7 +37558,7 @@ JSON Schema to OpenAPI Schema (link)
Stars
- 102
+ 101
Watchers
@@ -37574,7 +37574,7 @@ JSON Schema to OpenAPI Schema (link)
Last Updated
- 2023-12-19T11:42:05Z
+ 2023-12-29T09:00:09Z
Archived
@@ -38234,7 +38234,7 @@ SpringFox (link)
Stars
- 5882
+ 5881
Watchers
@@ -38250,7 +38250,7 @@ SpringFox (link)
Last Updated
- 2023-12-28T12:52:31Z
+ 2023-12-29T17:35:08Z
Archived
@@ -38338,7 +38338,7 @@ OWASP ZAP (link)
Stars
- 11574
+ 11576
Watchers
@@ -38354,7 +38354,7 @@ OWASP ZAP (link)
Last Updated
- 2023-12-28T13:58:22Z
+ 2023-12-29T22:53:11Z
Archived
@@ -38806,7 +38806,7 @@ Django REST Framework (link)
Stars
- 26875
+ 26879
Watchers
@@ -38814,7 +38814,7 @@ Django REST Framework (link)
Forks
- 6835
+ 6836
Created
@@ -38822,7 +38822,7 @@ Django REST Framework (link)
Last Updated
- 2023-12-28T21:50:27Z
+ 2023-12-29T17:28:05Z
Archived
@@ -39222,7 +39222,7 @@ Elements (link)
Stars
- 1327
+ 1329
Watchers
@@ -39238,7 +39238,7 @@ Elements (link)
Last Updated
- 2023-12-28T12:18:56Z
+ 2023-12-29T16:40:48Z
Archived
@@ -39430,7 +39430,7 @@ Cherrybomb (link)
Stars
- 1002
+ 1004
Watchers
@@ -39446,7 +39446,7 @@ Cherrybomb (link)
Last Updated
- 2023-12-27T10:08:03Z
+ 2023-12-29T21:36:37Z
Archived
@@ -39742,7 +39742,7 @@ orval (link)
Stars
- 1922
+ 1923
Watchers
@@ -39758,7 +39758,7 @@ orval (link)
Last Updated
- 2023-12-28T22:31:15Z
+ 2023-12-29T11:08:29Z
Archived
@@ -40106,7 +40106,7 @@ OpenAPI TypeScript (link)
Stars
- 3989
+ 3991
Watchers
@@ -40122,7 +40122,7 @@ OpenAPI TypeScript (link)
Last Updated
- 2023-12-29T02:32:01Z
+ 2023-12-29T15:14:11Z
Archived
@@ -40730,7 +40730,7 @@ kubb (link)
Stars
- 281
+ 282
Watchers
@@ -40746,7 +40746,7 @@ kubb (link)
Last Updated
- 2023-12-28T18:11:43Z
+ 2023-12-29T06:38:25Z
Archived
@@ -41042,11 +41042,11 @@ allof-merge (link)
Stars
- 6
+ 7
Watchers
- 1
+ 2
Forks
@@ -41058,7 +41058,7 @@ allof-merge (link)
Last Updated
- 2023-12-26T08:03:55Z
+ 2023-12-29T22:01:11Z
Archived
@@ -41094,11 +41094,11 @@ api-ref-bundler (link)
Stars
- 7
+ 8
Watchers
- 1
+ 2
Forks
@@ -41110,7 +41110,7 @@ api-ref-bundler (link)
Last Updated
- 2023-12-04T20:40:02Z
+ 2023-12-29T22:00:56Z
Archived
@@ -41146,7 +41146,7 @@ rswag (link)
Stars
- 1809
+ 1810
Watchers
@@ -41162,7 +41162,7 @@ rswag (link)
Last Updated
- 2023-12-29T00:44:29Z
+ 2023-12-29T18:00:25Z
Archived
@@ -41198,7 +41198,7 @@ 🌿 Fern (link)
Stars
- 2022
+ 2025
Watchers
@@ -41214,7 +41214,7 @@ 🌿 Fern (link)
Last Updated
- 2023-12-27T15:24:02Z
+ 2023-12-29T22:44:53Z
Archived
@@ -41406,7 +41406,7 @@ Traefik Hub (link)
Stars
- 1
+ 2
Watchers
@@ -41422,7 +41422,7 @@ Traefik Hub (link)
Last Updated
- 2023-10-31T07:57:41Z
+ 2023-12-30T02:45:12Z
Archived
@@ -41458,7 +41458,7 @@ Huma (link)
Stars
- 311
+ 312
Watchers
@@ -41474,7 +41474,7 @@ Huma (link)
Last Updated
- 2023-12-25T23:05:36Z
+ 2023-12-29T13:46:45Z
Archived
@@ -41510,7 +41510,7 @@ FastAPI (link)
Stars
- 66386
+ 66423
Watchers
@@ -41518,7 +41518,7 @@ FastAPI (link)
Forks
- 5613
+ 5617
Created
@@ -41526,7 +41526,7 @@ FastAPI (link)
Last Updated
- 2023-12-29T02:56:50Z
+ 2023-12-30T03:27:16Z
Archived
@@ -41562,7 +41562,7 @@ swagger-ui (link)
Stars
- 24960
+ 24964
Watchers
@@ -41578,7 +41578,7 @@ swagger-ui (link)
Last Updated
- 2023-12-29T03:01:09Z
+ 2023-12-30T02:42:50Z
Archived
@@ -41614,7 +41614,7 @@ Redoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -41630,7 +41630,7 @@ Redoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
@@ -41666,11 +41666,11 @@ full-stack-fastapi-postgresql (link)
Stars
- 13996
+ 14017
Watchers
- 229
+ 231
Forks
@@ -41682,7 +41682,7 @@ full-stack-fastapi-postgresql (link)
Last Updated
- 2023-12-28T23:26:22Z
+ 2023-12-30T01:50:42Z
Archived
@@ -41770,7 +41770,7 @@ mockoon (link)
Stars
- 5597
+ 5598
Watchers
@@ -41786,7 +41786,7 @@ mockoon (link)
Last Updated
- 2023-12-28T14:04:11Z
+ 2023-12-29T23:41:50Z
Archived
@@ -41822,7 +41822,7 @@ knife4j (link)
Stars
- 3721
+ 3726
Watchers
@@ -41838,7 +41838,7 @@ knife4j (link)
Last Updated
- 2023-12-29T00:50:14Z
+ 2023-12-30T01:25:09Z
Archived
@@ -41874,7 +41874,7 @@ openapi-devtools (link)
Stars
- 3586
+ 3589
Watchers
@@ -41890,7 +41890,7 @@ openapi-devtools (link)
Last Updated
- 2023-12-28T13:59:19Z
+ 2023-12-29T15:13:49Z
Archived
@@ -41942,7 +41942,7 @@ openapi-directory (link)
Last Updated
- 2023-12-28T22:30:31Z
+ 2023-12-30T02:12:07Z
Archived
@@ -41978,7 +41978,7 @@ springdoc-openapi (link)
Stars
- 2942
+ 2941
Watchers
@@ -41994,7 +41994,7 @@ springdoc-openapi (link)
Last Updated
- 2023-12-29T01:40:25Z
+ 2023-12-30T02:31:45Z
Archived
@@ -42082,7 +42082,7 @@ uvicorn-gunicorn-fastapi-docker (link)<
Stars
- 2434
+ 2435
Watchers
@@ -42098,7 +42098,7 @@ uvicorn-gunicorn-fastapi-docker (link)<
Last Updated
- 2023-12-27T02:47:16Z
+ 2023-12-29T09:47:02Z
Archived
@@ -42134,7 +42134,7 @@ Schemathesis (link)
Stars
- 1951
+ 1952
Watchers
@@ -42150,7 +42150,7 @@ Schemathesis (link)
Last Updated
- 2023-12-26T09:45:22Z
+ 2023-12-29T19:58:21Z
Archived
@@ -42186,7 +42186,7 @@ drf-spectacular (link)
Stars
- 1935
+ 1937
Watchers
@@ -42202,7 +42202,7 @@ drf-spectacular (link)
Last Updated
- 2023-12-27T08:39:55Z
+ 2023-12-29T18:34:29Z
Archived
@@ -42246,7 +42246,7 @@ gnostic (link)
Forks
- 236
+ 237
Created
@@ -42290,7 +42290,7 @@ msgspec (link)
Stars
- 1592
+ 1595
Watchers
@@ -42306,7 +42306,7 @@ msgspec (link)
Last Updated
- 2023-12-29T02:22:43Z
+ 2023-12-29T18:14:53Z
Archived
@@ -42342,7 +42342,7 @@ utoipa (link)
Stars
- 1579
+ 1584
Watchers
@@ -42350,7 +42350,7 @@ utoipa (link)
Forks
- 127
+ 128
Created
@@ -42358,7 +42358,7 @@ utoipa (link)
Last Updated
- 2023-12-28T22:30:24Z
+ 2023-12-30T02:11:37Z
Archived
@@ -42394,7 +42394,7 @@ rapidoc (link)
Stars
- 1474
+ 1475
Watchers
@@ -42410,7 +42410,7 @@ rapidoc (link)
Last Updated
- 2023-12-28T18:30:47Z
+ 2023-12-29T11:10:19Z
Archived
@@ -42550,7 +42550,7 @@ apispec (link)
Stars
- 1066
+ 1065
Watchers
@@ -42566,7 +42566,7 @@ apispec (link)
Last Updated
- 2023-12-29T01:00:29Z
+ 2023-12-29T08:57:44Z
Archived
@@ -42602,7 +42602,7 @@ apiflask (link)
Stars
- 897
+ 896
Watchers
@@ -42618,7 +42618,7 @@ apiflask (link)
Last Updated
- 2023-12-28T05:59:13Z
+ 2023-12-29T09:00:44Z
Archived
@@ -42654,7 +42654,7 @@ ogen (link)
Stars
- 878
+ 880
Watchers
@@ -42670,7 +42670,7 @@ ogen (link)
Last Updated
- 2023-12-27T01:38:25Z
+ 2023-12-29T15:02:30Z
Archived
@@ -42810,7 +42810,7 @@ json-schema-validator (link)
Stars
- 719
+ 720
Watchers
@@ -42818,7 +42818,7 @@ json-schema-validator (link)
Forks
- 306
+ 305
Created
@@ -42826,7 +42826,7 @@ json-schema-validator (link)
Last Updated
- 2023-12-28T15:52:56Z
+ 2023-12-29T06:33:29Z
Archived
@@ -42966,7 +42966,7 @@ create-openapi-repo (link)
Stars
- 656
+ 657
Watchers
@@ -42982,7 +42982,7 @@ create-openapi-repo (link)
Last Updated
- 2023-12-22T20:37:21Z
+ 2023-12-29T07:13:06Z
Archived
@@ -43126,7 +43126,7 @@ openapi.tools (link)
Watchers
- 30
+ 29
Forks
@@ -43174,7 +43174,7 @@ zod-to-openapi (link)
Stars
- 532
+ 533
Watchers
@@ -43190,7 +43190,7 @@ zod-to-openapi (link)
Last Updated
- 2023-12-28T22:54:44Z
+ 2023-12-29T04:54:31Z
Archived
@@ -43278,7 +43278,7 @@ docusaurus-openapi (link)
Stars
- 443
+ 444
Watchers
@@ -43294,7 +43294,7 @@ docusaurus-openapi (link)
Last Updated
- 2023-12-27T23:01:36Z
+ 2023-12-29T17:21:41Z
Archived
@@ -43382,7 +43382,7 @@ openapi-mock (link)
Stars
- 443
+ 442
Watchers
@@ -43398,7 +43398,7 @@ openapi-mock (link)
Last Updated
- 2023-12-27T10:15:34Z
+ 2023-12-29T10:08:39Z
Archived
@@ -43434,7 +43434,7 @@ oazapfts (link)
Stars
- 426
+ 427
Watchers
@@ -43450,7 +43450,7 @@ oazapfts (link)
Last Updated
- 2023-12-22T07:58:00Z
+ 2023-12-29T14:50:30Z
Archived
@@ -44318,7 +44318,7 @@ rest (link)
Stars
- 273
+ 272
Watchers
@@ -44334,7 +44334,7 @@ rest (link)
Last Updated
- 2023-12-28T00:17:38Z
+ 2023-12-29T08:55:21Z
Archived
@@ -44578,7 +44578,7 @@ fastapi-clean-example (link)
Stars
- 227
+ 229
Watchers
@@ -44594,7 +44594,7 @@ fastapi-clean-example (link)
Last Updated
- 2023-12-26T20:35:35Z
+ 2023-12-30T00:52:17Z
Archived
@@ -44786,7 +44786,7 @@ prance (link)
Stars
- 214
+ 213
Watchers
@@ -44802,7 +44802,7 @@ prance (link)
Last Updated
- 2023-12-22T02:13:36Z
+ 2023-12-29T08:57:55Z
Archived
@@ -45358,7 +45358,7 @@ esmerald (link)
Stars
- 186
+ 187
Watchers
@@ -45374,7 +45374,7 @@ esmerald (link)
Last Updated
- 2023-12-27T05:06:52Z
+ 2023-12-30T02:36:10Z
Archived
@@ -45547,10 +45547,10 @@ dummy (link)
-
Last Updated
- 2023-12-01T17:18:59Z
+ 2023-12-29T14:25:26Z
Archived
@@ -45826,7 +45826,7 @@ openapi-psr7-validator (link)
Stars
- 168
+ 169
Watchers
@@ -45842,7 +45842,7 @@ openapi-psr7-validator (link)
Last Updated
- 2023-11-11T04:59:45Z
+ 2023-12-29T14:12:28Z
Archived
@@ -45878,7 +45878,7 @@ openapi-go (link)
Stars
- 165
+ 168
Watchers
@@ -45894,7 +45894,7 @@ openapi-go (link)
Last Updated
- 2023-12-28T22:22:33Z
+ 2023-12-29T22:08:59Z
Archived
@@ -46294,7 +46294,7 @@ flask-openapi3 (link)
Stars
- 130
+ 129
Watchers
@@ -46310,7 +46310,7 @@ flask-openapi3 (link)
Last Updated
- 2023-12-27T06:36:51Z
+ 2023-12-29T09:00:50Z
Archived
@@ -46398,7 +46398,7 @@ apiclientcodegen (link)
Stars
- 125
+ 126
Watchers
@@ -46414,7 +46414,7 @@ apiclientcodegen (link)
Last Updated
- 2023-12-18T22:24:49Z
+ 2023-12-29T22:40:50Z
Archived
@@ -46770,7 +46770,7 @@ api-docs (link)
Forks
- 183
+ 184
Created
@@ -46970,7 +46970,7 @@ openapi-schema-pydantic (link)
Stars
- 100
+ 99
Watchers
@@ -46986,7 +46986,7 @@ openapi-schema-pydantic (link)
Last Updated
- 2023-12-20T14:20:01Z
+ 2023-12-29T09:00:26Z
Archived
@@ -47230,7 +47230,7 @@ openapi-generator-go (link)
Stars
- 88
+ 89
Watchers
@@ -47246,7 +47246,7 @@ openapi-generator-go (link)
Last Updated
- 2023-12-12T20:43:13Z
+ 2023-12-29T15:54:46Z
Archived
@@ -47542,7 +47542,7 @@ oatpp-swagger (link)
Stars
- 82
+ 83
Watchers
@@ -47558,7 +47558,7 @@ oatpp-swagger (link)
Last Updated
- 2023-12-16T06:51:15Z
+ 2023-12-29T15:09:47Z
Archived
@@ -47646,7 +47646,7 @@ zod-openapi (link)
Stars
- 82
+ 81
Watchers
@@ -47662,7 +47662,7 @@ zod-openapi (link)
Last Updated
- 2023-12-28T23:48:57Z
+ 2023-12-29T09:01:34Z
Archived
@@ -47854,7 +47854,7 @@ moclojer (link)
Stars
- 77
+ 78
Watchers
@@ -47870,7 +47870,7 @@ moclojer (link)
Last Updated
- 2023-12-23T04:22:51Z
+ 2023-12-30T01:41:35Z
Archived
@@ -48590,7 +48590,7 @@ tooling (link)
Forks
- 17
+ 18
Created
@@ -49266,7 +49266,7 @@ openapi-petstore (link)
Forks
- 47
+ 48
Created
@@ -53998,7 +53998,7 @@ duckyapi (link)
Forks
- 12
+ 13
Created
@@ -55826,7 +55826,7 @@ swagger-docs (link)
Last Updated
- 2023-06-23T06:54:37Z
+ 2023-12-29T16:18:25Z
Archived
@@ -56438,7 +56438,7 @@ openapi3-typescript-codegen (link)
Watchers
- 2
+ 3
Forks
@@ -58270,11 +58270,11 @@ express-gateway-plugin-openapi3-mock-se
Last Updated
- 2020-08-17T14:14:25Z
+ 2023-12-29T11:39:42Z
Archived
- No
+ Yes
Language
@@ -67770,7 +67770,7 @@ go-openapi-example (link)
Stars
- 4
+ 5
Watchers
@@ -67786,7 +67786,7 @@ go-openapi-example (link)
Last Updated
- 2023-12-26T06:54:15Z
+ 2023-12-29T15:46:43Z
Archived
@@ -69698,7 +69698,7 @@ appstoreconnectcerts (link)
Watchers
- 1
+ 2
Forks
@@ -93978,7 +93978,7 @@ openapi-backend (link)
Stars
- 552
+ 551
Watchers
@@ -93994,7 +93994,7 @@ openapi-backend (link)
Last Updated
- 2023-12-23T09:55:10Z
+ 2023-12-29T08:59:38Z
Archived
@@ -100322,7 +100322,7 @@ PHP-CRUD-API (link)
Stars
- 3466
+ 3467
Watchers
@@ -100338,7 +100338,7 @@ PHP-CRUD-API (link)
Last Updated
- 2023-12-26T16:58:36Z
+ 2023-12-29T13:21:49Z
Archived
@@ -101518,7 +101518,7 @@ Connexion (link)
Stars
- 4357
+ 4358
Watchers
@@ -101534,7 +101534,7 @@ Connexion (link)
Last Updated
- 2023-12-27T09:44:43Z
+ 2023-12-30T00:18:46Z
Archived
@@ -101950,7 +101950,7 @@ LoopBack 4 (link)
Last Updated
- 2023-12-27T10:08:47Z
+ 2023-12-29T15:21:20Z
Archived
@@ -102038,7 +102038,7 @@ RESTler (link)
Stars
- 2363
+ 2362
Watchers
@@ -102054,7 +102054,7 @@ RESTler (link)
Last Updated
- 2023-12-28T11:54:06Z
+ 2023-12-29T13:13:19Z
Archived
@@ -102090,7 +102090,7 @@ swagger-bootstrap-ui (link)
Stars
- 60
+ 61
Watchers
@@ -102106,7 +102106,7 @@ swagger-bootstrap-ui (link)
Last Updated
- 2023-12-26T07:31:44Z
+ 2023-12-29T05:36:31Z
Archived
@@ -103598,7 +103598,7 @@ go-doudou (link)
Stars
- 1257
+ 1261
Watchers
@@ -103614,7 +103614,7 @@ go-doudou (link)
Last Updated
- 2023-12-28T09:39:43Z
+ 2023-12-29T22:15:24Z
Archived
@@ -108232,10 +108232,10 @@ odata2openapi (link)
document
- .getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-open-button")
+ .getElementById("3dd0465c78eeb00e652527da7f6ec81a-open-button")
.onclick = function () {
const wrapper = document.getElementById("tool-content")
- const content = document.getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-info")
+ const content = document.getElementById("3dd0465c78eeb00e652527da7f6ec81a-info")
content.removeAttribute("hidden")
diff --git a/docs/categories/auto-generators.html b/docs/categories/auto-generators.html
index 34efc504..729ccbca 100644
--- a/docs/categories/auto-generators.html
+++ b/docs/categories/auto-generators.html
@@ -153,7 +153,7 @@ Yes
Yes
No
- 311
+ 312
More Details
@@ -363,7 +363,7 @@ Huma (link)
Stars
- 311
+ 312
Watchers
@@ -379,7 +379,7 @@ Huma (link)
Last Updated
- 2023-12-25T23:05:36Z
+ 2023-12-29T13:46:45Z
Archived
diff --git a/docs/categories/code-generators.html b/docs/categories/code-generators.html
index 94fe8911..cb8ad6b0 100644
--- a/docs/categories/code-generators.html
+++ b/docs/categories/code-generators.html
@@ -86,7 +86,7 @@ No
Yes
No
- 4660
+ 4661
More Details
@@ -132,7 +132,7 @@ No
Yes
Yes
- 18589
+ 18597
More Details
@@ -178,7 +178,7 @@ No
Yes
Yes
- 1058
+ 1059
More Details
@@ -266,7 +266,7 @@ No
Yes
Yes
- 16226
+ 16230
More Details
@@ -335,7 +335,7 @@ No
Yes
Yes
- 1922
+ 1923
More Details
@@ -381,7 +381,7 @@ Yes
Yes
Yes
- 281
+ 282
More Details
@@ -404,7 +404,7 @@ Yes
Yes
Yes
- 2022
+ 2025
More Details
@@ -427,7 +427,7 @@ Yes
Yes
No
- 24960
+ 24964
More Details
@@ -511,7 +511,7 @@ Yes
Yes
No
- 656
+ 657
More Details
@@ -2028,7 +2028,7 @@ OpenAPI Server Code Generator (oapi-cod
Stars
- 4660
+ 4661
Watchers
@@ -2044,7 +2044,7 @@ OpenAPI Server Code Generator (oapi-cod
Last Updated
- 2023-12-28T20:22:33Z
+ 2023-12-29T23:48:54Z
Archived
@@ -2132,7 +2132,7 @@ OpenAPI Generator (link)
Stars
- 18589
+ 18597
Watchers
@@ -2140,7 +2140,7 @@ OpenAPI Generator (link)
Forks
- 5880
+ 5883
Created
@@ -2148,7 +2148,7 @@ OpenAPI Generator (link)
Last Updated
- 2023-12-29T02:43:39Z
+ 2023-12-30T01:06:32Z
Archived
@@ -2236,7 +2236,7 @@ Kiota Api Client Generator (link)
Stars
- 1058
+ 1059
Watchers
@@ -2252,7 +2252,7 @@ Kiota Api Client Generator (link)
Last Updated
- 2023-12-27T09:52:00Z
+ 2023-12-29T07:06:50Z
Archived
@@ -2444,7 +2444,7 @@ Swagger-Codegen (link)
Stars
- 16226
+ 16230
Watchers
@@ -2460,7 +2460,7 @@ Swagger-Codegen (link)
Last Updated
- 2023-12-29T03:04:36Z
+ 2023-12-29T22:01:23Z
Archived
@@ -2600,7 +2600,7 @@ orval (link)
Stars
- 1922
+ 1923
Watchers
@@ -2616,7 +2616,7 @@ orval (link)
Last Updated
- 2023-12-28T22:31:15Z
+ 2023-12-29T11:08:29Z
Archived
@@ -2704,7 +2704,7 @@ kubb (link)
Stars
- 281
+ 282
Watchers
@@ -2720,7 +2720,7 @@ kubb (link)
Last Updated
- 2023-12-28T18:11:43Z
+ 2023-12-29T06:38:25Z
Archived
@@ -2756,7 +2756,7 @@ 🌿 Fern (link)
Stars
- 2022
+ 2025
Watchers
@@ -2772,7 +2772,7 @@ 🌿 Fern (link)
Last Updated
- 2023-12-27T15:24:02Z
+ 2023-12-29T22:44:53Z
Archived
@@ -2808,7 +2808,7 @@ swagger-ui (link)
Stars
- 24960
+ 24964
Watchers
@@ -2824,7 +2824,7 @@ swagger-ui (link)
Last Updated
- 2023-12-29T03:01:09Z
+ 2023-12-30T02:42:50Z
Archived
@@ -3016,7 +3016,7 @@ create-openapi-repo (link)
Stars
- 656
+ 657
Watchers
@@ -3032,7 +3032,7 @@ create-openapi-repo (link)
Last Updated
- 2023-12-22T20:37:21Z
+ 2023-12-29T07:13:06Z
Archived
@@ -3336,7 +3336,7 @@ openapi-petstore (link)
Forks
- 47
+ 48
Created
diff --git a/docs/categories/converters.html b/docs/categories/converters.html
index f2421b31..92151efe 100644
--- a/docs/categories/converters.html
+++ b/docs/categories/converters.html
@@ -239,7 +239,7 @@ No
Yes
No
- 592
+ 591
More Details
@@ -285,7 +285,7 @@ No
No
Yes
- 9059
+ 9062
More Details
@@ -373,7 +373,7 @@ No
Yes
No
- 367
+ 368
More Details
@@ -396,7 +396,7 @@ No
Yes
No
- 210
+ 209
More Details
@@ -419,7 +419,7 @@ No
Yes
No
- 102
+ 101
More Details
@@ -532,7 +532,7 @@ Yes
Yes
Yes
- 3989
+ 3991
More Details
@@ -553,7 +553,7 @@ Yes
Yes
No
- 6
+ 7
More Details
@@ -574,7 +574,7 @@ Yes
Yes
Yes
- 7
+ 8
More Details
@@ -1498,7 +1498,7 @@ portman (link)
Stars
- 592
+ 591
Watchers
@@ -1514,7 +1514,7 @@ portman (link)
Last Updated
- 2023-12-25T03:03:51Z
+ 2023-12-29T09:00:51Z
Archived
@@ -1602,7 +1602,7 @@ go-swagger (link)
Stars
- 9059
+ 9062
Watchers
@@ -1618,7 +1618,7 @@ go-swagger (link)
Last Updated
- 2023-12-29T02:13:57Z
+ 2023-12-29T18:47:23Z
Archived
@@ -1810,7 +1810,7 @@ laravel-openapi (link)
Stars
- 367
+ 368
Watchers
@@ -1826,7 +1826,7 @@ laravel-openapi (link)
Last Updated
- 2023-12-23T16:17:39Z
+ 2023-12-29T07:44:29Z
Archived
@@ -1862,7 +1862,7 @@ OpenAPI Schema to JSON Schema (link)
Stars
- 210
+ 209
Watchers
@@ -1878,7 +1878,7 @@ OpenAPI Schema to JSON Schema (link)
Last Updated
- 2023-12-26T07:02:01Z
+ 2023-12-29T09:00:17Z
Archived
@@ -1914,7 +1914,7 @@ JSON Schema to OpenAPI Schema (link)
Stars
- 102
+ 101
Watchers
@@ -1930,7 +1930,7 @@ JSON Schema to OpenAPI Schema (link)
Last Updated
- 2023-12-19T11:42:05Z
+ 2023-12-29T09:00:09Z
Archived
@@ -2174,7 +2174,7 @@ OpenAPI TypeScript (link)
Stars
- 3989
+ 3991
Watchers
@@ -2190,7 +2190,7 @@ OpenAPI TypeScript (link)
Last Updated
- 2023-12-29T02:32:01Z
+ 2023-12-29T15:14:11Z
Archived
@@ -2226,11 +2226,11 @@ allof-merge (link)
Stars
- 6
+ 7
Watchers
- 1
+ 2
Forks
@@ -2242,7 +2242,7 @@ allof-merge (link)
Last Updated
- 2023-12-26T08:03:55Z
+ 2023-12-29T22:01:11Z
Archived
@@ -2278,11 +2278,11 @@ api-ref-bundler (link)
Stars
- 7
+ 8
Watchers
- 1
+ 2
Forks
@@ -2294,7 +2294,7 @@ api-ref-bundler (link)
Last Updated
- 2023-12-04T20:40:02Z
+ 2023-12-29T22:00:56Z
Archived
@@ -2390,7 +2390,7 @@ gnostic (link)
Forks
- 236
+ 237
Created
diff --git a/docs/categories/data-validators.html b/docs/categories/data-validators.html
index 660c3695..ebabae63 100644
--- a/docs/categories/data-validators.html
+++ b/docs/categories/data-validators.html
@@ -86,7 +86,7 @@ No
Yes
Yes
- 2994
+ 2995
More Details
@@ -241,7 +241,7 @@ No
Yes
Yes
- 2201
+ 2202
More Details
@@ -262,7 +262,7 @@ Yes
Yes
No
- 478
+ 479
More Details
@@ -576,7 +576,7 @@ Yes
Yes
No
- 311
+ 312
More Details
@@ -1833,7 +1833,7 @@ tsoa (link)
Stars
- 2994
+ 2995
Watchers
@@ -1841,7 +1841,7 @@ tsoa (link)
Forks
- 460
+ 461
Created
@@ -1849,7 +1849,7 @@ tsoa (link)
Last Updated
- 2023-12-28T23:22:55Z
+ 2023-12-29T21:39:20Z
Archived
@@ -2197,7 +2197,7 @@ kin-openapi (link)
Stars
- 2201
+ 2202
Watchers
@@ -2213,7 +2213,7 @@ kin-openapi (link)
Last Updated
- 2023-12-28T23:57:08Z
+ 2023-12-29T04:31:27Z
Archived
@@ -2249,7 +2249,7 @@ openapi-psr7-validator (link)
Stars
- 478
+ 479
Watchers
@@ -2265,7 +2265,7 @@ openapi-psr7-validator (link)
Last Updated
- 2023-12-28T12:48:10Z
+ 2023-12-29T14:13:19Z
Archived
@@ -2977,7 +2977,7 @@ Huma (link)
Stars
- 311
+ 312
Watchers
@@ -2993,7 +2993,7 @@ Huma (link)
Last Updated
- 2023-12-25T23:05:36Z
+ 2023-12-29T13:46:45Z
Archived
diff --git a/docs/categories/description-validators.html b/docs/categories/description-validators.html
index ef967830..5922cea4 100644
--- a/docs/categories/description-validators.html
+++ b/docs/categories/description-validators.html
@@ -128,7 +128,7 @@ Yes
Yes
Yes
- 2123
+ 2124
More Details
@@ -193,7 +193,7 @@ Yes
Yes
Yes
- 723
+ 724
More Details
@@ -346,7 +346,7 @@ Yes
Yes
No
- 1002
+ 1004
More Details
@@ -499,7 +499,7 @@ No
Yes
No
- 443
+ 442
More Details
@@ -1604,7 +1604,7 @@ Spectral (link)
Stars
- 2123
+ 2124
Watchers
@@ -1620,7 +1620,7 @@ Spectral (link)
Last Updated
- 2023-12-27T09:48:09Z
+ 2023-12-29T09:17:45Z
Archived
@@ -1760,7 +1760,7 @@ Redocly CLI (link)
Stars
- 723
+ 724
Watchers
@@ -1776,7 +1776,7 @@ Redocly CLI (link)
Last Updated
- 2023-12-28T14:56:10Z
+ 2023-12-29T11:35:20Z
Archived
@@ -2124,7 +2124,7 @@ Cherrybomb (link)
Stars
- 1002
+ 1004
Watchers
@@ -2140,7 +2140,7 @@ Cherrybomb (link)
Last Updated
- 2023-12-27T10:08:03Z
+ 2023-12-29T21:36:37Z
Archived
@@ -2440,7 +2440,7 @@ openapi.tools (link)
Watchers
- 30
+ 29
Forks
@@ -2488,7 +2488,7 @@ openapi-mock (link)
Stars
- 443
+ 442
Watchers
@@ -2504,7 +2504,7 @@ openapi-mock (link)
Last Updated
- 2023-12-27T10:15:34Z
+ 2023-12-29T10:08:39Z
Archived
diff --git a/docs/categories/documentation.html b/docs/categories/documentation.html
index 31337ff4..4b9d5714 100644
--- a/docs/categories/documentation.html
+++ b/docs/categories/documentation.html
@@ -86,7 +86,7 @@ Yes
Yes
Yes
- 1964
+ 1993
More Details
@@ -275,7 +275,7 @@ Yes
Yes
Yes
- 21681
+ 21685
More Details
@@ -321,7 +321,7 @@ No
Yes
Yes
- 1410
+ 1411
More Details
@@ -496,7 +496,7 @@ Yes
Yes
Yes
- 723
+ 724
More Details
@@ -582,7 +582,7 @@ Yes
Yes
Yes
- 1327
+ 1329
More Details
@@ -796,7 +796,7 @@ Yes
Yes
Yes
- 2022
+ 2025
More Details
@@ -819,7 +819,7 @@ No
Yes
Yes
- 1
+ 2
More Details
@@ -840,7 +840,7 @@ No
Yes
No
- 1474
+ 1475
More Details
@@ -890,14 +890,14 @@
- swurg
+ openapi-parser
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).
No
- Link
+ Link
No
@@ -906,7 +906,7 @@ 177
- More Details
+ More Details
@@ -2022,7 +2022,7 @@ Scalar (link)
Stars
- 1964
+ 1993
Watchers
@@ -2038,7 +2038,7 @@ Scalar (link)
Last Updated
- 2023-12-29T03:05:53Z
+ 2023-12-30T03:30:17Z
Archived
@@ -2490,7 +2490,7 @@ ReDoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -2506,7 +2506,7 @@ ReDoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
@@ -2594,7 +2594,7 @@ widdershins (link)
Stars
- 1410
+ 1411
Watchers
@@ -2610,7 +2610,7 @@ widdershins (link)
Last Updated
- 2023-12-28T18:25:21Z
+ 2023-12-29T11:57:02Z
Archived
@@ -3010,7 +3010,7 @@ Redocly CLI (link)
Stars
- 723
+ 724
Watchers
@@ -3026,7 +3026,7 @@ Redocly CLI (link)
Last Updated
- 2023-12-28T14:56:10Z
+ 2023-12-29T11:35:20Z
Archived
@@ -3218,7 +3218,7 @@ Elements (link)
Stars
- 1327
+ 1329
Watchers
@@ -3234,7 +3234,7 @@ Elements (link)
Last Updated
- 2023-12-28T12:18:56Z
+ 2023-12-29T16:40:48Z
Archived
@@ -3738,7 +3738,7 @@ 🌿 Fern (link)
Stars
- 2022
+ 2025
Watchers
@@ -3754,7 +3754,7 @@ 🌿 Fern (link)
Last Updated
- 2023-12-27T15:24:02Z
+ 2023-12-29T22:44:53Z
Archived
@@ -3790,7 +3790,7 @@ Traefik Hub (link)
Stars
- 1
+ 2
Watchers
@@ -3806,7 +3806,7 @@ Traefik Hub (link)
Last Updated
- 2023-10-31T07:57:41Z
+ 2023-12-30T02:45:12Z
Archived
@@ -3842,7 +3842,7 @@ rapidoc (link)
Stars
- 1474
+ 1475
Watchers
@@ -3858,7 +3858,7 @@ rapidoc (link)
Last Updated
- 2023-12-28T18:30:47Z
+ 2023-12-29T11:10:19Z
Archived
@@ -3979,10 +3979,10 @@ znai (link)
-
Last Updated
- 2023-12-01T17:18:59Z
+ 2023-12-29T14:25:26Z
Archived
@@ -7240,10 +7240,10 @@ Stoplight Docs (link)
document
- .getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-open-button")
+ .getElementById("3dd0465c78eeb00e652527da7f6ec81a-open-button")
.onclick = function () {
const wrapper = document.getElementById("tool-content")
- const content = document.getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-info")
+ const content = document.getElementById("3dd0465c78eeb00e652527da7f6ec81a-info")
content.removeAttribute("hidden")
diff --git a/docs/categories/dsl.html b/docs/categories/dsl.html
index 5982859f..b6d8e363 100644
--- a/docs/categories/dsl.html
+++ b/docs/categories/dsl.html
@@ -187,7 +187,7 @@ No
Yes
No
- 1809
+ 1810
More Details
@@ -545,7 +545,7 @@ rswag (link)
Stars
- 1809
+ 1810
Watchers
@@ -561,7 +561,7 @@ rswag (link)
Last Updated
- 2023-12-29T00:44:29Z
+ 2023-12-29T18:00:25Z
Archived
diff --git a/docs/categories/gateway.html b/docs/categories/gateway.html
index 368bfec8..728efbdb 100644
--- a/docs/categories/gateway.html
+++ b/docs/categories/gateway.html
@@ -105,7 +105,7 @@ No
Yes
No
- 1630
+ 1629
More Details
@@ -212,7 +212,7 @@ No
Yes
Yes
- 1
+ 2
More Details
@@ -318,7 +318,7 @@ Fusio (link)
Stars
- 1630
+ 1629
Watchers
@@ -334,7 +334,7 @@ Fusio (link)
Last Updated
- 2023-12-28T12:53:22Z
+ 2023-12-29T08:56:31Z
Archived
@@ -578,7 +578,7 @@ Traefik Hub (link)
Stars
- 1
+ 2
Watchers
@@ -594,7 +594,7 @@ Traefik Hub (link)
Last Updated
- 2023-10-31T07:57:41Z
+ 2023-12-30T02:45:12Z
Archived
diff --git a/docs/categories/low-level-tooling.html b/docs/categories/low-level-tooling.html
index b904eb8b..c00a38c5 100644
--- a/docs/categories/low-level-tooling.html
+++ b/docs/categories/low-level-tooling.html
@@ -86,7 +86,7 @@ No
Yes
No
- 2942
+ 2941
More Details
@@ -151,7 +151,7 @@ No
Yes
No
- 165
+ 168
More Details
@@ -235,7 +235,7 @@ No
Yes
No
- 82
+ 83
More Details
@@ -1444,7 +1444,7 @@ No
Yes
No
- 60
+ 61
More Details
@@ -1498,7 +1498,7 @@ springdoc-openapi (link)
Stars
- 2942
+ 2941
Watchers
@@ -1514,7 +1514,7 @@ springdoc-openapi (link)
Last Updated
- 2023-12-29T01:40:25Z
+ 2023-12-30T02:31:45Z
Archived
@@ -1654,7 +1654,7 @@ openapi-go (link)
Stars
- 165
+ 168
Watchers
@@ -1670,7 +1670,7 @@ openapi-go (link)
Last Updated
- 2023-12-28T22:22:33Z
+ 2023-12-29T22:08:59Z
Archived
@@ -1818,7 +1818,7 @@ api-docs (link)
Forks
- 183
+ 184
Created
@@ -1862,7 +1862,7 @@ oatpp-swagger (link)
Stars
- 82
+ 83
Watchers
@@ -1878,7 +1878,7 @@ oatpp-swagger (link)
Last Updated
- 2023-12-16T06:51:15Z
+ 2023-12-29T15:09:47Z
Archived
@@ -4826,7 +4826,7 @@ swagger-bootstrap-ui (link)
Stars
- 60
+ 61
Watchers
@@ -4842,7 +4842,7 @@ swagger-bootstrap-ui (link)
Last Updated
- 2023-12-26T07:31:44Z
+ 2023-12-29T05:36:31Z
Archived
diff --git a/docs/categories/mock.html b/docs/categories/mock.html
index 218c15be..3471eec9 100644
--- a/docs/categories/mock.html
+++ b/docs/categories/mock.html
@@ -125,7 +125,7 @@ Yes
Yes
Yes
- 3845
+ 3844
More Details
@@ -345,7 +345,7 @@ No
Yes
Yes
- 1922
+ 1923
More Details
@@ -582,7 +582,7 @@ No
Yes
Yes
- 4357
+ 4358
More Details
@@ -828,7 +828,7 @@ Prism (link)
Stars
- 3845
+ 3844
Watchers
@@ -844,7 +844,7 @@ Prism (link)
Last Updated
- 2023-12-27T21:57:32Z
+ 2023-12-29T13:41:07Z
Archived
@@ -1348,7 +1348,7 @@ orval (link)
Stars
- 1922
+ 1923
Watchers
@@ -1364,7 +1364,7 @@ orval (link)
Last Updated
- 2023-12-28T22:31:15Z
+ 2023-12-29T11:08:29Z
Archived
@@ -1920,7 +1920,7 @@ Connexion (link)
Stars
- 4357
+ 4358
Watchers
@@ -1936,7 +1936,7 @@ Connexion (link)
Last Updated
- 2023-12-27T09:44:43Z
+ 2023-12-30T00:18:46Z
Archived
diff --git a/docs/categories/parsers.html b/docs/categories/parsers.html
index ae625936..0027625b 100644
--- a/docs/categories/parsers.html
+++ b/docs/categories/parsers.html
@@ -174,7 +174,7 @@ Yes
Yes
Yes
- 21681
+ 21685
More Details
@@ -220,7 +220,7 @@ No
Yes
Yes
- 1410
+ 1411
More Details
@@ -264,7 +264,7 @@ No
Yes
No
- 4660
+ 4661
More Details
@@ -515,7 +515,7 @@ No
Yes
Yes
- 2994
+ 2995
More Details
@@ -605,7 +605,7 @@ Yes
Yes
Yes
- 723
+ 724
More Details
@@ -783,7 +783,7 @@ No
Yes
Yes
- 2201
+ 2202
More Details
@@ -982,7 +982,7 @@ No
No
Yes
- 9059
+ 9062
More Details
@@ -1118,7 +1118,7 @@ No
Yes
No
- 210
+ 209
More Details
@@ -1141,7 +1141,7 @@ No
Yes
No
- 102
+ 101
More Details
@@ -1725,7 +1725,7 @@ No
Yes
No
- 1809
+ 1810
More Details
@@ -1771,7 +1771,7 @@ Yes
Yes
No
- 21681
+ 21685
More Details
@@ -1792,7 +1792,7 @@ No
Yes
No
- 1579
+ 1584
More Details
@@ -1834,7 +1834,7 @@ No
Yes
No
- 1066
+ 1065
More Details
@@ -1855,7 +1855,7 @@ No
Yes
No
- 878
+ 880
More Details
@@ -1876,7 +1876,7 @@ No
Yes
No
- 719
+ 720
More Details
@@ -1939,7 +1939,7 @@ Yes
Yes
No
- 656
+ 657
More Details
@@ -1981,7 +1981,7 @@ No
Yes
No
- 532
+ 533
More Details
@@ -2002,7 +2002,7 @@ No
Yes
No
- 443
+ 442
More Details
@@ -2023,7 +2023,7 @@ No
Yes
No
- 426
+ 427
More Details
@@ -2306,14 +2306,14 @@
- swurg
+ openapi-parser
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs security assessments (approved by PortSwigger for inclusion in their official BApp Store).
No
- Link
+ Link
No
@@ -2322,7 +2322,7 @@ 177
- More Details
+ More Details
@@ -2363,7 +2363,7 @@ No
Yes
No
- 165
+ 168
More Details
@@ -2617,7 +2617,7 @@ No
Yes
No
- 100
+ 99
More Details
@@ -2785,7 +2785,7 @@ No
Yes
No
- 82
+ 81
More Details
@@ -5987,7 +5987,7 @@ No
Yes
No
- 4
+ 5
More Details
@@ -10383,7 +10383,7 @@ ReDoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -10399,7 +10399,7 @@ ReDoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
@@ -10487,7 +10487,7 @@ widdershins (link)
Stars
- 1410
+ 1411
Watchers
@@ -10503,7 +10503,7 @@ widdershins (link)
Last Updated
- 2023-12-28T18:25:21Z
+ 2023-12-29T11:57:02Z
Archived
@@ -10591,7 +10591,7 @@ OpenAPI Server Code Generator (oapi-cod
Stars
- 4660
+ 4661
Watchers
@@ -10607,7 +10607,7 @@ OpenAPI Server Code Generator (oapi-cod
Last Updated
- 2023-12-28T20:22:33Z
+ 2023-12-29T23:48:54Z
Archived
@@ -11163,7 +11163,7 @@ tsoa (link)
Stars
- 2994
+ 2995
Watchers
@@ -11171,7 +11171,7 @@ tsoa (link)
Forks
- 460
+ 461
Created
@@ -11179,7 +11179,7 @@ tsoa (link)
Last Updated
- 2023-12-28T23:22:55Z
+ 2023-12-29T21:39:20Z
Archived
@@ -11371,7 +11371,7 @@ Redocly CLI (link)
Stars
- 723
+ 724
Watchers
@@ -11387,7 +11387,7 @@ Redocly CLI (link)
Last Updated
- 2023-12-28T14:56:10Z
+ 2023-12-29T11:35:20Z
Archived
@@ -11787,7 +11787,7 @@ kin-openapi (link)
Stars
- 2201
+ 2202
Watchers
@@ -11803,7 +11803,7 @@ kin-openapi (link)
Last Updated
- 2023-12-28T23:57:08Z
+ 2023-12-29T04:31:27Z
Archived
@@ -12255,7 +12255,7 @@ go-swagger (link)
Stars
- 9059
+ 9062
Watchers
@@ -12271,7 +12271,7 @@ go-swagger (link)
Last Updated
- 2023-12-29T02:13:57Z
+ 2023-12-29T18:47:23Z
Archived
@@ -12567,7 +12567,7 @@ OpenAPI Schema to JSON Schema (link)
Stars
- 210
+ 209
Watchers
@@ -12583,7 +12583,7 @@ OpenAPI Schema to JSON Schema (link)
Last Updated
- 2023-12-26T07:02:01Z
+ 2023-12-29T09:00:17Z
Archived
@@ -12619,7 +12619,7 @@ JSON Schema to OpenAPI Schema (link)
Stars
- 102
+ 101
Watchers
@@ -12635,7 +12635,7 @@ JSON Schema to OpenAPI Schema (link)
Last Updated
- 2023-12-19T11:42:05Z
+ 2023-12-29T09:00:09Z
Archived
@@ -13971,7 +13971,7 @@ rswag (link)
Stars
- 1809
+ 1810
Watchers
@@ -13987,7 +13987,7 @@ rswag (link)
Last Updated
- 2023-12-29T00:44:29Z
+ 2023-12-29T18:00:25Z
Archived
@@ -14075,7 +14075,7 @@ Redoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -14091,7 +14091,7 @@ Redoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
@@ -14127,7 +14127,7 @@ utoipa (link)
Stars
- 1579
+ 1584
Watchers
@@ -14135,7 +14135,7 @@ utoipa (link)
Forks
- 127
+ 128
Created
@@ -14143,7 +14143,7 @@ utoipa (link)
Last Updated
- 2023-12-28T22:30:24Z
+ 2023-12-30T02:11:37Z
Archived
@@ -14231,7 +14231,7 @@ apispec (link)
Stars
- 1066
+ 1065
Watchers
@@ -14247,7 +14247,7 @@ apispec (link)
Last Updated
- 2023-12-29T01:00:29Z
+ 2023-12-29T08:57:44Z
Archived
@@ -14283,7 +14283,7 @@ ogen (link)
Stars
- 878
+ 880
Watchers
@@ -14299,7 +14299,7 @@ ogen (link)
Last Updated
- 2023-12-27T01:38:25Z
+ 2023-12-29T15:02:30Z
Archived
@@ -14335,7 +14335,7 @@ json-schema-validator (link)
Stars
- 719
+ 720
Watchers
@@ -14343,7 +14343,7 @@ json-schema-validator (link)
Forks
- 306
+ 305
Created
@@ -14351,7 +14351,7 @@ json-schema-validator (link)
Last Updated
- 2023-12-28T15:52:56Z
+ 2023-12-29T06:33:29Z
Archived
@@ -14491,7 +14491,7 @@ create-openapi-repo (link)
Stars
- 656
+ 657
Watchers
@@ -14507,7 +14507,7 @@ create-openapi-repo (link)
Last Updated
- 2023-12-22T20:37:21Z
+ 2023-12-29T07:13:06Z
Archived
@@ -14595,7 +14595,7 @@ zod-to-openapi (link)
Stars
- 532
+ 533
Watchers
@@ -14611,7 +14611,7 @@ zod-to-openapi (link)
Last Updated
- 2023-12-28T22:54:44Z
+ 2023-12-29T04:54:31Z
Archived
@@ -14647,7 +14647,7 @@ openapi-mock (link)
Stars
- 443
+ 442
Watchers
@@ -14663,7 +14663,7 @@ openapi-mock (link)
Last Updated
- 2023-12-27T10:15:34Z
+ 2023-12-29T10:08:39Z
Archived
@@ -14699,7 +14699,7 @@ oazapfts (link)
Stars
- 426
+ 427
Watchers
@@ -14715,7 +14715,7 @@ oazapfts (link)
Last Updated
- 2023-12-22T07:58:00Z
+ 2023-12-29T14:50:30Z
Archived
@@ -15408,10 +15408,10 @@ openapi.net.odata (link)
-
Last Updated
- 2023-12-01T17:18:59Z
+ 2023-12-29T14:25:26Z
Archived
@@ -15531,7 +15531,7 @@ openapi-go (link)
Stars
- 165
+ 168
Watchers
@@ -15547,7 +15547,7 @@ openapi-go (link)
Last Updated
- 2023-12-28T22:22:33Z
+ 2023-12-29T22:08:59Z
Archived
@@ -16155,7 +16155,7 @@ openapi-schema-pydantic (link)
Stars
- 100
+ 99
Watchers
@@ -16171,7 +16171,7 @@ openapi-schema-pydantic (link)
Last Updated
- 2023-12-20T14:20:01Z
+ 2023-12-29T09:00:26Z
Archived
@@ -16571,7 +16571,7 @@ zod-openapi (link)
Stars
- 82
+ 81
Watchers
@@ -16587,7 +16587,7 @@ zod-openapi (link)
Last Updated
- 2023-12-28T23:48:57Z
+ 2023-12-29T09:01:34Z
Archived
@@ -20371,7 +20371,7 @@ openapi3-typescript-codegen (link)
Watchers
- 2
+ 3
Forks
@@ -24475,7 +24475,7 @@ go-openapi-example (link)
Stars
- 4
+ 5
Watchers
@@ -24491,7 +24491,7 @@ go-openapi-example (link)
Last Updated
- 2023-12-26T06:54:15Z
+ 2023-12-29T15:46:43Z
Archived
@@ -36421,10 +36421,10 @@ prettyrestdoc (link)
document
- .getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-open-button")
+ .getElementById("3dd0465c78eeb00e652527da7f6ec81a-open-button")
.onclick = function () {
const wrapper = document.getElementById("tool-content")
- const content = document.getElementById("254da4f4bca5a9824a6fa5c1b56c80ee-info")
+ const content = document.getElementById("3dd0465c78eeb00e652527da7f6ec81a-info")
content.removeAttribute("hidden")
diff --git a/docs/categories/sdk.html b/docs/categories/sdk.html
index b56e8ebf..cbd2a13f 100644
--- a/docs/categories/sdk.html
+++ b/docs/categories/sdk.html
@@ -109,7 +109,7 @@ No
Yes
Yes
- 18589
+ 18597
More Details
@@ -155,7 +155,7 @@ No
Yes
Yes
- 1058
+ 1059
More Details
@@ -308,7 +308,7 @@ No
No
Yes
- 9059
+ 9062
More Details
@@ -377,7 +377,7 @@ No
Yes
Yes
- 6242
+ 6245
More Details
@@ -421,7 +421,7 @@ No
Yes
Yes
- 4395
+ 4394
More Details
@@ -532,7 +532,7 @@ No
Yes
Yes
- 11574
+ 11576
More Details
@@ -670,7 +670,7 @@ Yes
Yes
Yes
- 3989
+ 3991
More Details
@@ -758,7 +758,7 @@ Yes
Yes
Yes
- 2022
+ 2025
More Details
@@ -779,7 +779,7 @@ No
Yes
No
- 3721
+ 3726
More Details
@@ -821,7 +821,7 @@ No
Yes
No
- 443
+ 444
More Details
@@ -947,7 +947,7 @@ No
Yes
No
- 125
+ 126
More Details
@@ -2778,7 +2778,7 @@ No
Yes
No
- 60
+ 61
More Details
@@ -2841,7 +2841,7 @@ No
Yes
No
- 1257
+ 1261
More Details
@@ -2947,7 +2947,7 @@ OpenAPI Generator (link)
Stars
- 18589
+ 18597
Watchers
@@ -2955,7 +2955,7 @@ OpenAPI Generator (link)
Forks
- 5880
+ 5883
Created
@@ -2963,7 +2963,7 @@ OpenAPI Generator (link)
Last Updated
- 2023-12-29T02:43:39Z
+ 2023-12-30T01:06:32Z
Archived
@@ -3051,7 +3051,7 @@ Kiota Api Client Generator (link)
Stars
- 1058
+ 1059
Watchers
@@ -3067,7 +3067,7 @@ Kiota Api Client Generator (link)
Last Updated
- 2023-12-27T09:52:00Z
+ 2023-12-29T07:06:50Z
Archived
@@ -3415,7 +3415,7 @@ go-swagger (link)
Stars
- 9059
+ 9062
Watchers
@@ -3431,7 +3431,7 @@ go-swagger (link)
Last Updated
- 2023-12-29T02:13:57Z
+ 2023-12-29T18:47:23Z
Archived
@@ -3571,7 +3571,7 @@ NSwag (link)
Stars
- 6242
+ 6245
Watchers
@@ -3579,7 +3579,7 @@ NSwag (link)
Forks
- 1180
+ 1181
Created
@@ -3587,7 +3587,7 @@ NSwag (link)
Last Updated
- 2023-12-28T19:10:15Z
+ 2023-12-29T19:53:37Z
Archived
@@ -3675,7 +3675,7 @@ Azure AutoRest (link)
Stars
- 4395
+ 4394
Watchers
@@ -3683,7 +3683,7 @@ Azure AutoRest (link)
Forks
- 755
+ 756
Created
@@ -3691,7 +3691,7 @@ Azure AutoRest (link)
Last Updated
- 2023-12-28T15:58:32Z
+ 2023-12-29T08:56:02Z
Archived
@@ -3935,7 +3935,7 @@ OWASP ZAP (link)
Stars
- 11574
+ 11576
Watchers
@@ -3951,7 +3951,7 @@ OWASP ZAP (link)
Last Updated
- 2023-12-28T13:58:22Z
+ 2023-12-29T22:53:11Z
Archived
@@ -4247,7 +4247,7 @@ OpenAPI TypeScript (link)
Stars
- 3989
+ 3991
Watchers
@@ -4263,7 +4263,7 @@ OpenAPI TypeScript (link)
Last Updated
- 2023-12-29T02:32:01Z
+ 2023-12-29T15:14:11Z
Archived
@@ -4455,7 +4455,7 @@ 🌿 Fern (link)
Stars
- 2022
+ 2025
Watchers
@@ -4471,7 +4471,7 @@ 🌿 Fern (link)
Last Updated
- 2023-12-27T15:24:02Z
+ 2023-12-29T22:44:53Z
Archived
@@ -4507,7 +4507,7 @@ knife4j (link)
Stars
- 3721
+ 3726
Watchers
@@ -4523,7 +4523,7 @@ knife4j (link)
Last Updated
- 2023-12-29T00:50:14Z
+ 2023-12-30T01:25:09Z
Archived
@@ -4575,7 +4575,7 @@ openapi-directory (link)
Last Updated
- 2023-12-28T22:30:31Z
+ 2023-12-30T02:12:07Z
Archived
@@ -4611,7 +4611,7 @@ docusaurus-openapi (link)
Stars
- 443
+ 444
Watchers
@@ -4627,7 +4627,7 @@ docusaurus-openapi (link)
Last Updated
- 2023-12-27T23:01:36Z
+ 2023-12-29T17:21:41Z
Archived
@@ -4923,7 +4923,7 @@ apiclientcodegen (link)
Stars
- 125
+ 126
Watchers
@@ -4939,7 +4939,7 @@ apiclientcodegen (link)
Last Updated
- 2023-12-18T22:24:49Z
+ 2023-12-29T22:40:50Z
Archived
@@ -9447,7 +9447,7 @@ swagger-bootstrap-ui (link)
Stars
- 60
+ 61
Watchers
@@ -9463,7 +9463,7 @@ swagger-bootstrap-ui (link)
Last Updated
- 2023-12-26T07:31:44Z
+ 2023-12-29T05:36:31Z
Archived
@@ -9603,7 +9603,7 @@ go-doudou (link)
Stars
- 1257
+ 1261
Watchers
@@ -9619,7 +9619,7 @@ go-doudou (link)
Last Updated
- 2023-12-28T09:39:43Z
+ 2023-12-29T22:15:24Z
Archived
diff --git a/docs/categories/security.html b/docs/categories/security.html
index a986a2c8..a4485854 100644
--- a/docs/categories/security.html
+++ b/docs/categories/security.html
@@ -170,7 +170,7 @@ Yes
Yes
Yes
- 1032
+ 1033
More Details
@@ -212,7 +212,7 @@ No
Yes
Yes
- 11574
+ 11576
More Details
@@ -298,7 +298,7 @@ No
Yes
Yes
- 2363
+ 2362
More Details
@@ -560,7 +560,7 @@ cats (link)
Stars
- 1032
+ 1033
Watchers
@@ -576,7 +576,7 @@ cats (link)
Last Updated
- 2023-12-20T03:50:38Z
+ 2023-12-30T02:41:07Z
Archived
@@ -664,7 +664,7 @@ OWASP ZAP (link)
Stars
- 11574
+ 11576
Watchers
@@ -680,7 +680,7 @@ OWASP ZAP (link)
Last Updated
- 2023-12-28T13:58:22Z
+ 2023-12-29T22:53:11Z
Archived
@@ -872,7 +872,7 @@ RESTler (link)
Stars
- 2363
+ 2362
Watchers
@@ -888,7 +888,7 @@ RESTler (link)
Last Updated
- 2023-12-28T11:54:06Z
+ 2023-12-29T13:13:19Z
Archived
diff --git a/docs/categories/server-implementations.html b/docs/categories/server-implementations.html
index 38e81f22..03ab2eb1 100644
--- a/docs/categories/server-implementations.html
+++ b/docs/categories/server-implementations.html
@@ -247,7 +247,7 @@ No
Yes
Yes
- 294
+ 295
More Details
@@ -270,7 +270,7 @@ Yes
Yes
Yes
- 8472
+ 8474
More Details
@@ -316,7 +316,7 @@ Yes
Yes
Yes
- 3845
+ 3844
More Details
@@ -362,7 +362,7 @@ No
Yes
Yes
- 8164
+ 8163
More Details
@@ -385,7 +385,7 @@ No
Yes
No
- 1630
+ 1629
More Details
@@ -475,7 +475,7 @@ Yes
Yes
Yes
- 1032
+ 1033
More Details
@@ -542,7 +542,7 @@ No
Yes
No
- 26875
+ 26879
More Details
@@ -657,7 +657,7 @@ No
Yes
No
- 66386
+ 66423
More Details
@@ -678,7 +678,7 @@ No
Yes
No
- 13996
+ 14017
More Details
@@ -699,7 +699,7 @@ Yes
Yes
No
- 3586
+ 3589
More Details
@@ -722,7 +722,7 @@ No
Yes
No
- 2942
+ 2941
More Details
@@ -743,7 +743,7 @@ No
Yes
No
- 2434
+ 2435
More Details
@@ -766,7 +766,7 @@ No
Yes
No
- 1951
+ 1952
More Details
@@ -787,7 +787,7 @@ No
Yes
No
- 1935
+ 1937
More Details
@@ -808,7 +808,7 @@ No
Yes
No
- 1592
+ 1595
More Details
@@ -829,7 +829,7 @@ No
Yes
No
- 1474
+ 1475
More Details
@@ -873,7 +873,7 @@ No
Yes
No
- 897
+ 896
More Details
@@ -1085,7 +1085,7 @@ No
Yes
No
- 273
+ 272
More Details
@@ -1127,7 +1127,7 @@ No
Yes
No
- 227
+ 229
More Details
@@ -1211,7 +1211,7 @@ No
Yes
No
- 186
+ 187
More Details
@@ -1316,7 +1316,7 @@ No
Yes
No
- 130
+ 129
More Details
@@ -1379,7 +1379,7 @@ No
Yes
No
- 88
+ 89
More Details
@@ -9596,7 +9596,7 @@ No
No
No
- 3466
+ 3467
More Details
@@ -9787,7 +9787,7 @@ No
Yes
Yes
- 4357
+ 4358
More Details
@@ -10465,7 +10465,7 @@ VSCode OpenAPI (link)
Stars
- 294
+ 295
Watchers
@@ -10481,7 +10481,7 @@ VSCode OpenAPI (link)
Last Updated
- 2023-12-15T00:34:17Z
+ 2023-12-29T03:30:57Z
Archived
@@ -10517,7 +10517,7 @@ Swagger Editor (link)
Stars
- 8472
+ 8474
Watchers
@@ -10533,7 +10533,7 @@ Swagger Editor (link)
Last Updated
- 2023-12-28T14:33:35Z
+ 2023-12-29T14:09:27Z
Archived
@@ -10621,7 +10621,7 @@ Prism (link)
Stars
- 3845
+ 3844
Watchers
@@ -10637,7 +10637,7 @@ Prism (link)
Last Updated
- 2023-12-27T21:57:32Z
+ 2023-12-29T13:41:07Z
Archived
@@ -10725,7 +10725,7 @@ API Platform (link)
Stars
- 8164
+ 8163
Watchers
@@ -10741,7 +10741,7 @@ API Platform (link)
Last Updated
- 2023-12-28T20:20:50Z
+ 2023-12-29T15:29:28Z
Archived
@@ -10777,7 +10777,7 @@ Fusio (link)
Stars
- 1630
+ 1629
Watchers
@@ -10793,7 +10793,7 @@ Fusio (link)
Last Updated
- 2023-12-28T12:53:22Z
+ 2023-12-29T08:56:31Z
Archived
@@ -10985,7 +10985,7 @@ cats (link)
Stars
- 1032
+ 1033
Watchers
@@ -11001,7 +11001,7 @@ cats (link)
Last Updated
- 2023-12-20T03:50:38Z
+ 2023-12-30T02:41:07Z
Archived
@@ -11141,7 +11141,7 @@ Django REST Framework (link)
Stars
- 26875
+ 26879
Watchers
@@ -11149,7 +11149,7 @@ Django REST Framework (link)
Forks
- 6835
+ 6836
Created
@@ -11157,7 +11157,7 @@ Django REST Framework (link)
Last Updated
- 2023-12-28T21:50:27Z
+ 2023-12-29T17:28:05Z
Archived
@@ -11401,7 +11401,7 @@ FastAPI (link)
Stars
- 66386
+ 66423
Watchers
@@ -11409,7 +11409,7 @@ FastAPI (link)
Forks
- 5613
+ 5617
Created
@@ -11417,7 +11417,7 @@ FastAPI (link)
Last Updated
- 2023-12-29T02:56:50Z
+ 2023-12-30T03:27:16Z
Archived
@@ -11453,11 +11453,11 @@ full-stack-fastapi-postgresql (link)
Stars
- 13996
+ 14017
Watchers
- 229
+ 231
Forks
@@ -11469,7 +11469,7 @@ full-stack-fastapi-postgresql (link)
Last Updated
- 2023-12-28T23:26:22Z
+ 2023-12-30T01:50:42Z
Archived
@@ -11505,7 +11505,7 @@ openapi-devtools (link)
Stars
- 3586
+ 3589
Watchers
@@ -11521,7 +11521,7 @@ openapi-devtools (link)
Last Updated
- 2023-12-28T13:59:19Z
+ 2023-12-29T15:13:49Z
Archived
@@ -11557,7 +11557,7 @@ springdoc-openapi (link)
Stars
- 2942
+ 2941
Watchers
@@ -11573,7 +11573,7 @@ springdoc-openapi (link)
Last Updated
- 2023-12-29T01:40:25Z
+ 2023-12-30T02:31:45Z
Archived
@@ -11609,7 +11609,7 @@ uvicorn-gunicorn-fastapi-docker (link)<
Stars
- 2434
+ 2435
Watchers
@@ -11625,7 +11625,7 @@ uvicorn-gunicorn-fastapi-docker (link)<
Last Updated
- 2023-12-27T02:47:16Z
+ 2023-12-29T09:47:02Z
Archived
@@ -11661,7 +11661,7 @@ Schemathesis (link)
Stars
- 1951
+ 1952
Watchers
@@ -11677,7 +11677,7 @@ Schemathesis (link)
Last Updated
- 2023-12-26T09:45:22Z
+ 2023-12-29T19:58:21Z
Archived
@@ -11713,7 +11713,7 @@ drf-spectacular (link)
Stars
- 1935
+ 1937
Watchers
@@ -11729,7 +11729,7 @@ drf-spectacular (link)
Last Updated
- 2023-12-27T08:39:55Z
+ 2023-12-29T18:34:29Z
Archived
@@ -11765,7 +11765,7 @@ msgspec (link)
Stars
- 1592
+ 1595
Watchers
@@ -11781,7 +11781,7 @@ msgspec (link)
Last Updated
- 2023-12-29T02:22:43Z
+ 2023-12-29T18:14:53Z
Archived
@@ -11817,7 +11817,7 @@ rapidoc (link)
Stars
- 1474
+ 1475
Watchers
@@ -11833,7 +11833,7 @@ rapidoc (link)
Last Updated
- 2023-12-28T18:30:47Z
+ 2023-12-29T11:10:19Z
Archived
@@ -11921,7 +11921,7 @@ apiflask (link)
Stars
- 897
+ 896
Watchers
@@ -11937,7 +11937,7 @@ apiflask (link)
Last Updated
- 2023-12-28T05:59:13Z
+ 2023-12-29T09:00:44Z
Archived
@@ -12441,7 +12441,7 @@ rest (link)
Stars
- 273
+ 272
Watchers
@@ -12457,7 +12457,7 @@ rest (link)
Last Updated
- 2023-12-28T00:17:38Z
+ 2023-12-29T08:55:21Z
Archived
@@ -12545,7 +12545,7 @@ fastapi-clean-example (link)
Stars
- 227
+ 229
Watchers
@@ -12561,7 +12561,7 @@ fastapi-clean-example (link)
Last Updated
- 2023-12-26T20:35:35Z
+ 2023-12-30T00:52:17Z
Archived
@@ -12753,7 +12753,7 @@ esmerald (link)
Stars
- 186
+ 187
Watchers
@@ -12769,7 +12769,7 @@ esmerald (link)
Last Updated
- 2023-12-27T05:06:52Z
+ 2023-12-30T02:36:10Z
Archived
@@ -13013,7 +13013,7 @@ flask-openapi3 (link)
Stars
- 130
+ 129
Watchers
@@ -13029,7 +13029,7 @@ flask-openapi3 (link)
Last Updated
- 2023-12-27T06:36:51Z
+ 2023-12-29T09:00:50Z
Archived
@@ -13169,7 +13169,7 @@ openapi-generator-go (link)
Stars
- 88
+ 89
Watchers
@@ -13185,7 +13185,7 @@ openapi-generator-go (link)
Last Updated
- 2023-12-12T20:43:13Z
+ 2023-12-29T15:54:46Z
Archived
@@ -13385,7 +13385,7 @@ tooling (link)
Forks
- 17
+ 18
Created
@@ -13645,7 +13645,7 @@ openapi-petstore (link)
Forks
- 47
+ 48
Created
@@ -15049,7 +15049,7 @@ duckyapi (link)
Forks
- 12
+ 13
Created
@@ -15785,7 +15785,7 @@ swagger-docs (link)
Last Updated
- 2023-06-23T06:54:37Z
+ 2023-12-29T16:18:25Z
Archived
@@ -16669,11 +16669,11 @@ express-gateway-plugin-openapi3-mock-se
Last Updated
- 2020-08-17T14:14:25Z
+ 2023-12-29T11:39:42Z
Archived
- No
+ Yes
Language
@@ -20609,7 +20609,7 @@ appstoreconnectcerts (link)
Watchers
- 1
+ 2
Forks
@@ -33501,7 +33501,7 @@ PHP-CRUD-API (link)
Stars
- 3466
+ 3467
Watchers
@@ -33517,7 +33517,7 @@ PHP-CRUD-API (link)
Last Updated
- 2023-12-26T16:58:36Z
+ 2023-12-29T13:21:49Z
Archived
@@ -33969,7 +33969,7 @@ Connexion (link)
Stars
- 4357
+ 4358
Watchers
@@ -33985,7 +33985,7 @@ Connexion (link)
Last Updated
- 2023-12-27T09:44:43Z
+ 2023-12-30T00:18:46Z
Archived
diff --git a/docs/categories/server.html b/docs/categories/server.html
index 3ee4e11c..096d5d4e 100644
--- a/docs/categories/server.html
+++ b/docs/categories/server.html
@@ -86,7 +86,7 @@ No
Yes
Yes
- 2994
+ 2995
More Details
@@ -201,7 +201,7 @@ No
Yes
Yes
- 8164
+ 8163
More Details
@@ -247,7 +247,7 @@ No
Yes
No
- 1630
+ 1629
More Details
@@ -405,7 +405,7 @@ No
Yes
Yes
- 5882
+ 5881
More Details
@@ -518,7 +518,7 @@ Yes
Yes
No
- 311
+ 312
More Details
@@ -2223,7 +2223,7 @@ Yes
Yes
No
- 552
+ 551
More Details
@@ -2728,7 +2728,7 @@ tsoa (link)
Stars
- 2994
+ 2995
Watchers
@@ -2736,7 +2736,7 @@ tsoa (link)
Forks
- 460
+ 461
Created
@@ -2744,7 +2744,7 @@ tsoa (link)
Last Updated
- 2023-12-28T23:22:55Z
+ 2023-12-29T21:39:20Z
Archived
@@ -2840,7 +2840,7 @@ express-openapi (link)
Forks
- 230
+ 231
Created
@@ -2988,7 +2988,7 @@ API Platform (link)
Stars
- 8164
+ 8163
Watchers
@@ -3004,7 +3004,7 @@ API Platform (link)
Last Updated
- 2023-12-28T20:20:50Z
+ 2023-12-29T15:29:28Z
Archived
@@ -3092,7 +3092,7 @@ Fusio (link)
Stars
- 1630
+ 1629
Watchers
@@ -3108,7 +3108,7 @@ Fusio (link)
Last Updated
- 2023-12-28T12:53:22Z
+ 2023-12-29T08:56:31Z
Archived
@@ -3456,7 +3456,7 @@ SpringFox (link)
Stars
- 5882
+ 5881
Watchers
@@ -3472,7 +3472,7 @@ SpringFox (link)
Last Updated
- 2023-12-28T12:52:31Z
+ 2023-12-29T17:35:08Z
Archived
@@ -3716,7 +3716,7 @@ Huma (link)
Stars
- 311
+ 312
Watchers
@@ -3732,7 +3732,7 @@ Huma (link)
Last Updated
- 2023-12-25T23:05:36Z
+ 2023-12-29T13:46:45Z
Archived
@@ -4616,11 +4616,11 @@ express-gateway-plugin-openapi3-mock-se
Last Updated
- 2020-08-17T14:14:25Z
+ 2023-12-29T11:39:42Z
Archived
- No
+ Yes
Language
@@ -7928,7 +7928,7 @@ openapi-backend (link)
Stars
- 552
+ 551
Watchers
@@ -7944,7 +7944,7 @@ openapi-backend (link)
Last Updated
- 2023-12-23T09:55:10Z
+ 2023-12-29T08:59:38Z
Archived
@@ -8880,7 +8880,7 @@ LoopBack 4 (link)
Last Updated
- 2023-12-27T10:08:47Z
+ 2023-12-29T15:21:20Z
Archived
diff --git a/docs/categories/testing-tools.html b/docs/categories/testing-tools.html
index 7410634e..f1202d0d 100644
--- a/docs/categories/testing-tools.html
+++ b/docs/categories/testing-tools.html
@@ -109,7 +109,7 @@ No
Yes
No
- 1951
+ 1952
More Details
@@ -238,7 +238,7 @@ Schemathesis (link)
Stars
- 1951
+ 1952
Watchers
@@ -254,7 +254,7 @@ Schemathesis (link)
Last Updated
- 2023-12-26T09:45:22Z
+ 2023-12-29T19:58:21Z
Archived
diff --git a/docs/categories/testing.html b/docs/categories/testing.html
index 1f180b4b..31b20323 100644
--- a/docs/categories/testing.html
+++ b/docs/categories/testing.html
@@ -105,7 +105,7 @@ No
Yes
Yes
- 4093
+ 4092
More Details
@@ -149,7 +149,7 @@ No
Yes
No
- 592
+ 591
More Details
@@ -193,7 +193,7 @@ No
Yes
No
- 367
+ 368
More Details
@@ -336,7 +336,7 @@ No
Yes
Yes
- 389
+ 390
More Details
@@ -691,7 +691,7 @@ Yes
Yes
Yes
- 281
+ 282
More Details
@@ -735,7 +735,7 @@ No
Yes
No
- 5597
+ 5598
More Details
@@ -924,7 +924,7 @@ No
Yes
No
- 77
+ 78
More Details
@@ -2532,7 +2532,7 @@ No
Yes
Yes
- 2363
+ 2362
More Details
@@ -2678,7 +2678,7 @@ Dredd (link)
Stars
- 4093
+ 4092
Watchers
@@ -2694,7 +2694,7 @@ Dredd (link)
Last Updated
- 2023-12-28T11:59:16Z
+ 2023-12-29T08:57:10Z
Archived
@@ -2782,7 +2782,7 @@ portman (link)
Stars
- 592
+ 591
Watchers
@@ -2798,7 +2798,7 @@ portman (link)
Last Updated
- 2023-12-25T03:03:51Z
+ 2023-12-29T09:00:51Z
Archived
@@ -2886,7 +2886,7 @@ laravel-openapi (link)
Stars
- 367
+ 368
Watchers
@@ -2902,7 +2902,7 @@ laravel-openapi (link)
Last Updated
- 2023-12-23T16:17:39Z
+ 2023-12-29T07:44:29Z
Archived
@@ -3250,7 +3250,7 @@ EvoMaster (link)
Stars
- 389
+ 390
Watchers
@@ -3266,7 +3266,7 @@ EvoMaster (link)
Last Updated
- 2023-12-22T03:01:08Z
+ 2023-12-29T16:12:34Z
Archived
@@ -4082,7 +4082,7 @@ kubb (link)
Stars
- 281
+ 282
Watchers
@@ -4098,7 +4098,7 @@ kubb (link)
Last Updated
- 2023-12-28T18:11:43Z
+ 2023-12-29T06:38:25Z
Archived
@@ -4186,7 +4186,7 @@ mockoon (link)
Stars
- 5597
+ 5598
Watchers
@@ -4202,7 +4202,7 @@ mockoon (link)
Last Updated
- 2023-12-28T14:04:11Z
+ 2023-12-29T23:41:50Z
Archived
@@ -4654,7 +4654,7 @@ moclojer (link)
Stars
- 77
+ 78
Watchers
@@ -4670,7 +4670,7 @@ moclojer (link)
Last Updated
- 2023-12-23T04:22:51Z
+ 2023-12-30T01:41:35Z
Archived
@@ -8606,7 +8606,7 @@ RESTler (link)
Stars
- 2363
+ 2362
Watchers
@@ -8622,7 +8622,7 @@ RESTler (link)
Last Updated
- 2023-12-28T11:54:06Z
+ 2023-12-29T13:13:19Z
Archived
diff --git a/docs/categories/text-editors.html b/docs/categories/text-editors.html
index 1f5007ea..6a1ecb24 100644
--- a/docs/categories/text-editors.html
+++ b/docs/categories/text-editors.html
@@ -86,7 +86,7 @@ No
Yes
Yes
- 294
+ 295
More Details
@@ -170,7 +170,7 @@ Yes
Yes
Yes
- 8472
+ 8474
More Details
@@ -372,7 +372,7 @@ VSCode OpenAPI (link)
Stars
- 294
+ 295
Watchers
@@ -388,7 +388,7 @@ VSCode OpenAPI (link)
Last Updated
- 2023-12-15T00:34:17Z
+ 2023-12-29T03:30:57Z
Archived
@@ -580,7 +580,7 @@ Swagger Editor (link)
Stars
- 8472
+ 8474
Watchers
@@ -596,7 +596,7 @@ Swagger Editor (link)
Last Updated
- 2023-12-28T14:33:35Z
+ 2023-12-29T14:09:27Z
Archived
diff --git a/docs/categories/unclassified.html b/docs/categories/unclassified.html
index bb772c12..a9c9d9d0 100644
--- a/docs/categories/unclassified.html
+++ b/docs/categories/unclassified.html
@@ -147,7 +147,7 @@ No
Yes
No
- 214
+ 213
More Details
@@ -168,7 +168,7 @@ No
Yes
No
- 168
+ 169
More Details
@@ -1359,7 +1359,7 @@ prance (link)
Stars
- 214
+ 213
Watchers
@@ -1375,7 +1375,7 @@ prance (link)
Last Updated
- 2023-12-22T02:13:36Z
+ 2023-12-29T08:57:55Z
Archived
@@ -1411,7 +1411,7 @@ openapi-psr7-validator (link)
Stars
- 168
+ 169
Watchers
@@ -1427,7 +1427,7 @@ openapi-psr7-validator (link)
Last Updated
- 2023-11-11T04:59:45Z
+ 2023-12-29T14:12:28Z
Archived
diff --git a/docs/categories/user-interfaces.html b/docs/categories/user-interfaces.html
index 2038de13..2e01fe20 100644
--- a/docs/categories/user-interfaces.html
+++ b/docs/categories/user-interfaces.html
@@ -86,7 +86,7 @@ Yes
Yes
No
- 24960
+ 24964
More Details
@@ -109,7 +109,7 @@ Yes
Yes
No
- 21681
+ 21685
More Details
@@ -291,7 +291,7 @@ swagger-ui (link)
Stars
- 24960
+ 24964
Watchers
@@ -307,7 +307,7 @@ swagger-ui (link)
Last Updated
- 2023-12-29T03:01:09Z
+ 2023-12-30T02:42:50Z
Archived
@@ -343,7 +343,7 @@ Redoc (link)
Stars
- 21681
+ 21685
Watchers
@@ -359,7 +359,7 @@ Redoc (link)
Last Updated
- 2023-12-29T00:22:04Z
+ 2023-12-30T01:54:04Z
Archived
diff --git a/src/_data/tools.yaml b/src/_data/tools.yaml
index b6cabf5b..d1ccfec8 100644
--- a/src/_data/tools.yaml
+++ b/src/_data/tools.yaml
@@ -20,7 +20,7 @@
owner: Tufin
logo: https://avatars.githubusercontent.com/u/5352131?v=4
license: Apache-2.0
- repoEtag: '"9ce288b49984282bd4cb9137cdb8bd5e9d6466900f3c6ab526a13abd5fa1057d"'
+ repoEtag: '"c2571ec668121eec3560969790b7ccc4e4b01dba6014bc08fa7dd17a8b3e58e5"'
repoLastModified: Thu, 28 Dec 2023 08:39:41 GMT
foundInMaster: true
name: oasdiff
@@ -52,17 +52,17 @@
repositoryId: 679280065
description: Beautiful API references from Swagger/OpenAPI files ✨
created: '2023-08-16T13:42:32Z'
- updated: '2023-12-29T03:05:53Z'
+ updated: '2023-12-30T03:30:17Z'
language: Vue
archived: false
- stars: 1964
+ stars: 1993
watchers: 8
forks: 30
owner: scalar
logo: https://avatars.githubusercontent.com/u/301879?v=4
license: MIT
- repoEtag: '"da7d8411b76068095af5a04eac3483a1f52f9a40e5c67d217a8a01badd8c6546"'
- repoLastModified: Fri, 29 Dec 2023 03:05:53 GMT
+ repoEtag: '"31dc2e16814b1b98e75194833fdd2e0247fdbf9bbe5c503dd10d33ed127f2bde"'
+ repoLastModified: Sat, 30 Dec 2023 03:30:17 GMT
foundInMaster: true
- source:
- https://openapi.tools/
@@ -109,7 +109,7 @@
owner: opticdev
logo: https://avatars.githubusercontent.com/u/34556970?v=4
license: MIT
- repoEtag: '"3d0ebeb08cd298368361719c6d06c865ec2f3fdb42c14e26c75b9c40bdef8ec0"'
+ repoEtag: '"b9b9f346f244248705efda5c1312b44e72ef693417f54285673eefe9528a1b58"'
repoLastModified: Wed, 27 Dec 2023 19:00:52 GMT
foundInMaster: true
id: 8c3d08406ca659662808d51ddc10b4e4
@@ -577,17 +577,17 @@
repositoryId: 45250726
description: 📘 OpenAPI/Swagger-generated API Reference Documentation
created: '2015-10-30T12:53:02Z'
- updated: '2023-12-29T00:22:04Z'
+ updated: '2023-12-30T01:54:04Z'
language: TypeScript
archived: false
- stars: 21681
+ stars: 21685
watchers: 288
forks: 2266
owner: Redocly
logo: https://avatars.githubusercontent.com/u/32099856?v=4
license: MIT
- repoEtag: '"009437877ceca4e7c1e70b24e483e8b1b28a4c9946265fbeefd748aba4b17128"'
- repoLastModified: Fri, 29 Dec 2023 00:22:04 GMT
+ repoEtag: '"9aae777dd5a7184cfb1b6d8a513da4e140646e9aa55fef48b66724652887e93d"'
+ repoLastModified: Sat, 30 Dec 2023 01:54:04 GMT
foundInMaster: true
- source: https://openapi.tools/
name: oas3-api-snippet-enricher
@@ -643,17 +643,17 @@
OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible
markdown
created: '2016-10-05T23:09:13Z'
- updated: '2023-12-28T18:25:21Z'
+ updated: '2023-12-29T11:57:02Z'
language: JavaScript
archived: false
- stars: 1410
+ stars: 1411
watchers: 16
forks: 317
owner: Mermade
logo: https://avatars.githubusercontent.com/u/15950345?v=4
license: MIT
- repoEtag: '"ca3afa0803dc30e9becfd23b0fee95e55de4c62d76a837487dca88992e62aabe"'
- repoLastModified: Thu, 28 Dec 2023 18:25:21 GMT
+ repoEtag: '"afdaf4418074228f4f1c39a4af3aeb602c34a098e23d376733c68c99cb23a92c"'
+ repoLastModified: Fri, 29 Dec 2023 11:57:02 GMT
foundInMaster: true
homepage: https://github.com/Mermade/widdershins
id: ab4fb414065011325683c7b582a9e582
@@ -825,17 +825,17 @@
repositoryId: 173009358
description: Generate Go client and server boilerplate from OpenAPI 3 specifications
created: '2019-02-27T23:59:59Z'
- updated: '2023-12-28T20:22:33Z'
+ updated: '2023-12-29T23:48:54Z'
language: Go
archived: false
- stars: 4660
+ stars: 4661
watchers: 32
forks: 767
owner: deepmap
logo: https://avatars.githubusercontent.com/u/47459865?v=4
license: Apache-2.0
- repoEtag: '"2be451d7de17b210d82b5cecd004107a28ec2bb825b16de43d0926c04a6903f9"'
- repoLastModified: Thu, 28 Dec 2023 20:22:33 GMT
+ repoEtag: '"745c4faff54d9573d08a03f766266700979064d6d2b2516b27354b0f155222a7"'
+ repoLastModified: Fri, 29 Dec 2023 23:48:54 GMT
foundInMaster: true
id: bc996e9362e78defa2eca82e5765d2f3
- source: https://openapi.tools/
@@ -893,26 +893,26 @@
v3: true
repositoryMetadata:
base64Readme: >-
- PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy4zLjBgKToKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/YnJhbmNoPW1hc3RlciZzdGF0dXM9cGFzc2VkKV0oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9naXRodWIvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2J1aWxkcykKWyFbSW50ZWdyYXRpb24gVGVzdDJdKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtXaW5kb3dzIFRlc3RdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvZ2l0aHViL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcj9icmFuY2g9bWFzdGVyJnN2Zz10cnVlJnBhc3NpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyME9LJmZhaWxpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyMEZhaWxzKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9XaWxsaWFtQ2hlbmcvb3BlbmFwaS1nZW5lcmF0b3IpClshW0JpdHJpc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYml0cmlzZS80YTJiMTBhODE5ZDEyYjY3L21hc3Rlcj9sYWJlbD1iaXRyaXNlJTNBJTIwU3dpZnQrNCw1JnRva2VuPTg1OUZNRFI4UUh3YWJDend2Wks2dlEpXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC80YTJiMTBhODE5ZDEyYjY3KQoKPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLiA6c3Rhcjo6c3Rhcjo6c3RhcjoKCjpiYW5nYmFuZzogVG8gbWlncmF0ZSBmcm9tIFN3YWdnZXIgQ29kZWdlbiB0byBPcGVuQVBJIEdlbmVyYXRvciwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbbWlncmF0aW9uIGd1aWRlXShkb2NzL21pZ3JhdGlvbi1mcm9tLXN3YWdnZXItY29kZWdlbi5tZCkgOmJhbmdiYW5nOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9vaykgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBiZWdpbm5lcnMgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSSBzcGVjLCB0ZW1wbGF0ZXMgb3IgYW55IGlucHV0IChlLmcuIG9wdGlvbnMsIGVudmlyb25tZW50IHZhcmlhYmxlcykgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlIG9yIGVudmlyb25tZW50LCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGVzZSBpbnB1dHMgYmVmb3JlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMgKGUuZy4gW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikpLiBGb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLCBwbGVhc2UgY29udGFjdCBbdGVhbUBvcGVuYXBpdG9vbHMub3JnXShtYWlsdG86dGVhbUBvcGVuYXBpdG9vbHMub3JnKS4gOndhcm5pbmc6Cgo6YmFuZ2Jhbmc6IEJvdGggIk9wZW5BUEkgVG9vbHMiIChodHRwczovL09wZW5BUElUb29scy5vcmcgLSB0aGUgcGFyZW50IG9yZ2FuaXphdGlvbiBvZiBPcGVuQVBJIEdlbmVyYXRvcikgYW5kICJPcGVuQVBJIEdlbmVyYXRvciIgYXJlIG5vdCBhZmZpbGlhdGVkIHdpdGggT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpIDpiYW5nYmFuZzoKCjwvZGl2PgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIE9wZW5BUEkgR2VuZXJhdG9yIHVzZWZ1bCBmb3Igd29yaywgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIE9wZW4gU291cmNlIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLiBZb3UgY2FuIGFsc28gaW5kaXZpZHVhbGx5IHNwb25zb3IgdGhlIHByb2plY3QgYnkgW2JlY29taW5nIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpX2dlbmVyYXRvcikuCgojIyMjIFRoYW5rIHlvdSB0byBvdXIgYnJvbnplIHNwb25zb3JzIQoKWyFbTmFtU29yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9uYW1zb3IucG5nKV0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaWdodEJvd10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbGlnaHRib3cucG5nKV0oaHR0cHM6Ly93d3cubGlnaHRib3cubmV0Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG9jc3ByaW5nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGF0YWRvZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZGF0YWRvZ2hxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3RoYWxlcy5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vY3BsLnRoYWxlc2dyb3VwLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FwaWRlY2suanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5hcGlkZWNrLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3BleGEucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5wZXhhLmNvbS5hdS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL251bWFyeS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3Lm51bWFyeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9vbmVzaWduYWwucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvdmlydHVhbGFuc29mdHdhcmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy52aXJ0dWFsYW5zb2Z0d2FyZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9tZXJnZWRldi5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5tZXJnZS5kZXYvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9idXJrZXJ0LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYnVya2VydC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9maW5ib3VybmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5maW5ib3VybmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVtcHNoLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9idW1wLnNoLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYmlsZXRvLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYmlsZXRvLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JhaXJlc2Rldi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJhaXJlc2Rldi5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RtdGVjaC5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kbS1qb2JzLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FkeWVuLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9hZHllbi5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9mb3JuZXgucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2Zvcm5leC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKCiMjIyMgVGhhbmsgeW91IEdvRGFkZHkgZm9yIHNwb25zb3JpbmcgdGhlIGRvbWFpbiBuYW1lcywgTGlub2RlIGZvciBzcG9uc29yaW5nIHRoZSBWUFMsIENoZWNrbHkgZm9yIHNwb25zb3JpbmcgdGhlIEFQSSBtb25pdG9yaW5nIGFuZCBHcmFkbGUgZm9yIHNwb25zb3JpbmcgRGV2ZWxvY2l0eQoKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9nb2RhZGR5LnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL3d3dy5nb2RhZGR5LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL2VuY3J5cHRlZC10Ym4wLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibiUzQUFOZDlHY1JBaEVZYWRVeVpZekdVb3RaaVNkWGtWTXFxTEd1b2h5aXhMbDRlVXBVVjZwQWJVVUxMIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vY2hlY2tseWhxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvYy9jYi9HcmFkbGVfbG9nby5wbmcvMzIwcHgtR3JhZGxlX2xvZ28ucG5nIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vZ3JhZGxlLm9yZz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCgojIyBPdmVydmlldwoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCAgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VzL0ZyYW1ld29ya3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipBUEkgY2xpZW50cyoqICAgICAgICAgICAgICAgICAgfCAqKkFjdGlvblNjcmlwdCoqLCAqKkFkYSoqLCAqKkFwZXgqKiwgKipCYXNoKiosICoqQyoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIsIC5ORVQgU3RhbmRhcmQgMS4zIC0gMi4xLCAuTkVUIENvcmUgMy4xLCAuTkVUIDUuMC4gTGlicmFyaWVzOiBSZXN0U2hhcnAsIEdlbmVyaWNIb3N0LCBIdHRwQ2xpZW50KSwgKipDKysqKiAoQXJkdWlubywgY3BwLXJlc3RzZGssIFF0NSwgVGl6ZW4sIFVucmVhbCBFbmdpbmUgNCksICoqQ2xvanVyZSoqLCAqKkNyeXN0YWwqKiwgKipEYXJ0KiosICoqRWxpeGlyKiosICoqRWxtKiosICoqRWlmZmVsKiosICoqRXJsYW5nKiosICoqR28qKiwgKipHcm9vdnkqKiwgKipIYXNrZWxsKiogKGh0dHAtY2xpZW50LCBTZXJ2YW50KSwgKipKYXZhKiogKEFwYWNoZSBIdHRwQ2xpZW50IDQueCwgQXBhY2hlIEh0dHBDbGllbnQgNS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCwgU3ByaW5nIDUgV2ViIENsaWVudCwgTWljcm9Qcm9maWxlIFJlc3QgQ2xpZW50LCBIZWxpZG9uKSwgKipKZXRicmFpbnMgSFRUUCBDbGllbnQqKiwgKipKdWxpYSoqLCAqKms2KiosICoqS290bGluKiosICoqTHVhKiosICoqTjRKUyoqLCAqKk5pbSoqLCAqKk5vZGUuanMvSmF2YVNjcmlwdCoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMsIEZsb3cgdHlwZXMsIEFwb2xsbyBHcmFwaFFMIERhdGFTdG9yZSksICoqT2JqZWN0aXZlLUMqKiwgKipPQ2FtbCoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKGh5cGVyLCByZXF3ZXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzY2FsYXosIHN0dHAsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCwgcGVra28pLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE2LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3JzKiogfCAqKkhUTUwqKiwgKipDb25mbHVlbmNlIFdpa2kqKiwgKipBc2NpaWRvYyoqLCAqKk1hcmtkb3duKiosICoqUGxhbnRVTUwqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqQ29uZmlndXJhdGlvbiBmaWxlcyoqICAgICAgICAgIHwgWyoqQXBhY2hlMioqXShodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKk90aGVycyoqICAgICAgICAgICAgICAgICAgICAgICB8ICoqR3JhcGhRTCoqLCAqKkpNZXRlcioqLCAqKkt0b3JtKiosICoqTXlTUUwgU2NoZW1hKiosICoqUG9zdG1hbiBDb2xsZWN0aW9uKiosICoqUHJvdG9jb2wgQnVmZmVyKiosICoqV1NETCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyBUYWJsZSBvZiBjb250ZW50cwoKICAtIFtPcGVuQVBJIEdlbmVyYXRvcl0oI29wZW5hcGktZ2VuZXJhdG9yKQogIC0gW092ZXJ2aWV3XSgjb3ZlcnZpZXcpCiAgLSBbVGFibGUgb2YgQ29udGVudHNdKCN0YWJsZS1vZi1jb250ZW50cykKICAtIFsxIC0gSW5zdGFsbGF0aW9uXSgjMS0tLWluc3RhbGxhdGlvbikKICAgIC0gWzEuMSAtIENvbXBhdGliaWxpdHldKCMxMS0tLWNvbXBhdGliaWxpdHkpCiAgICAtIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oIzEyLS0tYXJ0aWZhY3RzLW9uLW1hdmVuLWNlbnRyYWwpCiAgICAtIFsxLjMgLSBEb3dubG9hZCBKQVJdKCMxMy0tLWRvd25sb2FkLWphcikKICAgIC0gWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjMTQtLS1idWlsZC1wcm9qZWN0cykKICAgIC0gWzEuNSAtIEhvbWVicmV3XSgjMTUtLS1ob21lYnJldykKICAgIC0gWzEuNiAtIERvY2tlcl0oIzE2LS0tZG9ja2VyKQogICAgLSBbMS43IC0gTlBNXSgjMTctLS1ucG0pCiAgLSBbMiAtIEdldHRpbmcgU3RhcnRlZF0oIzItLS1nZXR0aW5nLXN0YXJ0ZWQpCiAgLSBbMyAtIFVzYWdlXSgjMy0tLXVzYWdlKQogICAgLSBbMy4xIC0gQ3VzdG9taXphdGlvbl0oIzMxLS0tY3VzdG9taXphdGlvbikKICAgIC0gWzMuMiAtIFdvcmtmbG93IEludGVncmF0aW9uXSgjMzItLS13b3JrZmxvdy1pbnRlZ3JhdGlvbi1tYXZlbi1ncmFkbGUtZ2l0aHViLWNpY2QpCiAgICAtIFszLjMgLSBPbmxpbmUgR2VuZXJhdG9yc10oIzMzLS0tb25saW5lLW9wZW5hcGktZ2VuZXJhdG9yKQogICAgLSBbMy40IC0gTGljZW5zZSBJbmZvcm1hdGlvbiBvbiBHZW5lcmF0ZWQgQ29kZV0oIzM0LS0tbGljZW5zZS1pbmZvcm1hdGlvbi1vbi1nZW5lcmF0ZWQtY29kZSkKICAgIC0gWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oIzM1LS0taWRlLWludGVncmF0aW9uKQogIC0gWzQgLSBDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKCM0LS0tY29tcGFuaWVzcHJvamVjdHMtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oIzUtLS1wcmVzZW50YXRpb25zdmlkZW9zdHV0b3JpYWxzYm9va3MpCiAgLSBbNiAtIEFib3V0IFVzXSgjNi0tLWFib3V0LXVzKQogICAgLSBbNi4xIC0gT3BlbkFQSSBHZW5lcmF0b3IgQ29yZSBUZWFtXSgjNjEtLS1vcGVuYXBpLWdlbmVyYXRvci1jb3JlLXRlYW0pCiAgICAtIFs2LjIgLSBPcGVuQVBJIEdlbmVyYXRvciBUZWNobmljYWwgQ29tbWl0dGVlXSgjNjItLS1vcGVuYXBpLWdlbmVyYXRvci10ZWNobmljYWwtY29tbWl0dGVlKQogICAgLSBbNi4zIC0gSGlzdG9yeSBvZiBPcGVuQVBJIEdlbmVyYXRvcl0oIzYzLS0taGlzdG9yeS1vZi1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs3IC0gTGljZW5zZV0oIzctLS1saWNlbnNlKQoKIyMgWzEgLSBJbnN0YWxsYXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBoYXMgdW5kZXJnb25lIDMgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gIFRoZSBvcGVuYXBpLWdlbmVyYXRvciBwcm9qZWN0IGhhcyB0aGUgZm9sbG93aW5nIGNvbXBhdGliaWxpdGllcyB3aXRoIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb246Cgp8IE9wZW5BUEkgR2VuZXJhdG9yIFZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlbGVhc2UgRGF0ZSB8IE5vdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IDcuMy4wICh1cGNvbWluZyBtaW5vciByZWxlYXNlKSBbU05BUFNIT1RdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4zLjAtU05BUFNIT1QvKSB8IDMwLjAxLjIwMjQgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzcuMi4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny4yLjApIChsYXRlc3Qgc3RhYmxlIHJlbGVhc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIuMTIuMjAyMyAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNi42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y2LjYuMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMS4wNS4yMDIzICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs1LjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjUuNC4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMxLjAxLjIwMjIgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzQuMy4xXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NC4zLjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMDYuMDUuMjAyMCAgIHwgUGF0Y2ggcmVsZWFzZSAoZW5oYW5jZW1lbnRzLCBidWcgZml4ZXMsIGV0YykgICAgICAgICAgICAgICAgICAgICAgIHwKCk9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5OiAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCwgMy4xIChiZXRhIHN1cHBvcnQpCgooV2UgZG8gbm90IHB1Ymxpc2ggZGFpbHkvbmlnaHRseSBidWlsZC4gUGxlYXNlIHVzZSBTTkFQU0hPVCBpbnN0ZWFkKQoKRm9yIG9sZCByZWxlYXNlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBbKipSZWxlYXNlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMpIHBhZ2UuCgpGb3IgZGVjb21pc3Npb25lZCBnZW5lcmF0b3JzL2xpYnJhcmllcy9mcmFtZXdvcmtzLCBwbGVhc2UgcmVmZXIgdG8gW3RoZSAiRGVjb21taXNzaW9uIiBsYWJlbF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1sYWJlbCUzQURlY29tbWlzc2lvbitpcyUzQW1lcmdlZCspIGluIHRoZSBwdWxsIHJlcXVlc3QgcGFnZS4KCiMjIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKWW91IGNhbiBmaW5kIG91ciByZWxlYXNlZCBhcnRpZmFjdHMgb24gbWF2ZW4gY2VudHJhbDoKCioqQ29yZToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3I8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKkNsaToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItY2xpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1jbGldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKk1hdmVuIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbl0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luL1JFQURNRS5tZCkKCioqR3JhZGxlIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCiogU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi9SRUFETUUuYWRvYykKCiMjIyBbMS4zIC0gRG93bmxvYWQgSkFSXSgjdGFibGUtb2YtY29udGVudHMpCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDExIHJ1bnRpbWUgYXQgYSBtaW5pbXVtKToKCkpBUiBsb2NhdGlvbjogYGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjIuMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy4yLjAuamFyYAoKRm9yICoqTWFjL0xpbnV4KiogdXNlcnM6CmBgYHNoCndnZXQgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuMi4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjIuMC5qYXIgLU8gb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcgpgYGAKCkZvciAqKldpbmRvd3MqKiB1c2VycywgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIFt3Z2V0XShodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0L3BhY2thZ2VzL3dnZXQuaHRtKSBvciB5b3UgY2FuIHVzZSBJbnZva2UtV2ViUmVxdWVzdCBpbiBQb3dlclNoZWxsICgzLjArKSwgZS5nLgpgYGAKSW52b2tlLVdlYlJlcXVlc3QgLU91dEZpbGUgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4yLjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuMi4wLmphcgpgYGAKCkFmdGVyIGRvd25sb2FkaW5nIHRoZSBKQVIsIHJ1biBgamF2YSAtamFyIG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgaGVscGAgdG8gc2hvdyB0aGUgdXNhZ2UuCgpGb3IgTWFjIHVzZXJzLCBwbGVhc2UgbWFrZSBzdXJlIEphdmEgMTEgaXMgaW5zdGFsbGVkIChUaXBzOiBydW4gYGphdmEgLXZlcnNpb25gIHRvIGNoZWNrIHRoZSB2ZXJzaW9uKSwgYW5kIGV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMS4xMWAKZXhwb3J0IFBBVEg9JHtKQVZBX0hPTUV9L2JpbjokUEFUSApgYGAKCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KIyMjIExhdW5jaGVyIFNjcmlwdAoKT25lIGRvd25zaWRlIHRvIG1hbnVhbCBqYXIgZG93bmxvYWRzIGlzIHRoYXQgeW91IGRvbid0IGtlZXAgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbi4gV2UgaGF2ZSBhIEJhc2ggbGF1bmNoZXIgc2NyaXB0IGF0IFtiaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3IuY2xpLnNoXSguL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2gpIHdoaWNoIHJlc29sdmVzIHRoaXMgaXNzdWUuCgpUbyBpbnN0YWxsIHRoZSBsYXVuY2hlciBzY3JpcHQsIGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JpcHQgdG8gYSBsb2NhdGlvbiBvbiB5b3VyIHBhdGggYW5kIG1ha2UgdGhlIHNjcmlwdCBleGVjdXRhYmxlLgoKQW4gZXhhbXBsZSBvZiBzZXR0aW5nIHRoaXMgdXAgKE5PVEU6IEFsd2F5cyBldmFsdWF0ZSBzY3JpcHRzIGN1cmxlZCBmcm9tIGV4dGVybmFsIHN5c3RlbXMgYmVmb3JlIGV4ZWN1dGluZyB0aGVtKS4KCmBgYApta2RpciAtcCB+L2Jpbi9vcGVuYXBpdG9vbHMKY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9iaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLnNoID4gfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpjaG1vZCB1K3ggfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpleHBvcnQgUEFUSD0kUEFUSDp+L2Jpbi9vcGVuYXBpdG9vbHMvCmBgYAoKTm93LCBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBpcyAiaW5zdGFsbGVkIi4gT24gaW52b2NhdGlvbiwgaXQgd2lsbCBxdWVyeSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIHRoZSBtb3N0IHJlY2VudGx5IHJlbGVhc2VkIHZlcnNpb24uIElmIHRoaXMgbWF0Y2hlcyB0aGUgbGFzdCBkb3dubG9hZGVkIGphciwKaXQgd2lsbCBleGVjdXRlIGFzIG5vcm1hbC4gSWYgYSBuZXdlciB2ZXJzaW9uIGlzIGZvdW5kLCB0aGUgc2NyaXB0IHdpbGwgZG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlIGFuZCBleGVjdXRlIGl0LgoKSWYgeW91IG5lZWQgdG8gaW52b2tlIGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGdlbmVyYXRvciwgeW91IGNhbiBkZWZpbmUgdGhlIHZhcmlhYmxlIGBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OYCBlaXRoZXIgYWQgaG9jIG9yIGdsb2JhbGx5LiBZb3UgY2FuIGV4cG9ydCB0aGlzIHZhcmlhYmxlIGlmIHlvdSdkIGxpa2UgdG8gcGVyc2lzdCBhIHNwZWNpZmljIHJlbGVhc2UgdmVyc2lvbi4KCkV4YW1wbGVzOgoKYGBgCiMgRXhlY3V0ZSBsYXRlc3QgcmVsZWFzZWQgb3BlbmFwaS1nZW5lcmF0b3ItY2xpCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4xLjAtU05BUFNIT1QgZm9yIHRoZSBjdXJyZW50IGludm9jYXRpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMC1TTkFQU0hPVCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4wLjIgZm9yIGV2ZXJ5IGludm9jYXRpb24gaW4gdGhlIGN1cnJlbnQgc2hlbGwgc2Vzc2lvbgpleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMgpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIDQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgYWxzbyA0LjAuMgoKIyBUbyAiaW5zdGFsbCIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBzZXQgdGhlIHZhcmlhYmxlIGluIC5iYXNocmMvLmJhc2hfcHJvZmlsZQplY2hvICJleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMiIgPj4gfi8uYmFzaHJjCnNvdXJjZSB+Ly5iYXNocmMKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHdheXMgNC4wLjIsIHVubGVzcyBhbnkgb2YgdGhlIGFib3ZlIG92ZXJyaWRlcyBhcmUgZG9uZSBhZCBob2MKYGBgCgojIyMgWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBidWlsZCBmcm9tIHNvdXJjZSwgeW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyIGAkUEFUSDpgCgoqIFtKYXZhIDExXShodHRwczovL2Fkb3B0aXVtLm5ldC8pCgoqIFtBcGFjaGUgTWF2ZW4gMy4zLjQgb3IgZ3JlYXRlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykgKG9wdGlvbmFsKQoKQWZ0ZXIgY2xvbmluZyB0aGUgcHJvamVjdCwgeW91IGNhbiBidWlsZCBpdCBmcm9tIHNvdXJjZSB1c2luZyBbbWF2ZW4gd3JhcHBlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3dyYXBwZXIvKToKCi0gTGludXg6IGAuL212bncgY2xlYW4gaW5zdGFsbGAKLSBXaW5kb3dzOiBgbXZudy5jbWQgY2xlYW4gaW5zdGFsbGAKCiMjIyMgTml4IHVzZXJzCgpJZiB5b3UncmUgYSBuaXggdXNlciwgeW91IGNhbiBlbnRlciBPcGVuQVBJIEdlbmVyYXRvciBzaGVsbCwgYnkgdHlwaW5nOgpgYGBzaApuaXggZGV2ZWxvcApgYGAKSXQgd2lsbCBlbnRlciBhIHNoZWxsIHdpdGggSmF2YSAxMSBpbnN0YWxsZWQuCgpEaXJlbnYgc3VwcG9ydHMgYXV0b21hdGljYWxseSBsb2FkaW5nIG9mIHRoZSBuaXggZGV2ZWxvcGVyIHNoZWxsLCBzbyBpZiB5b3UncmUgdXNpbmcgZGlyZW52IHRvbywgdHlwZToKYGBgc2gKZGlyZW52IGFsbG93CmBgYAphbmQgaGF2ZSBgamF2YWAgYW5kIGBtdm5gIHNldCB1cCB3aXRoIGNvcnJlY3QgdmVyc2lvbnMgZWFjaCB0aW1lIHlvdSBlbnRlciBwcm9qZWN0IGRpcmVjdG9yeS4KClRoZSBkZWZhdWx0IGJ1aWxkIGNvbnRhaW5zIG1pbmltYWwgc3RhdGljIGFuYWx5c2lzICh2aWEgQ2hlY2tTdHlsZSkuIFRvIHJ1biB5b3VyIGJ1aWxkIHdpdGggUE1EIGFuZCBTcG90YnVncywgdXNlIHRoZSBgc3RhdGljLWFuYWx5c2lzYCBwcm9maWxlOgoKLSBMaW51eDogYC4vbXZudyAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAoKIyMjIFsxLjUgLSBIb21lYnJld10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3JgCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNhZ2UgdG8gZ2VuZXJhdGUgYSBSdWJ5IGNsaWVudDoKYGBgc2gKb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcnVieSAtbyAvdG1wL3Rlc3QvCmBgYAoKVG8gcmVpbnN0YWxsIHdpdGggdGhlIGxhdGVzdCBtYXN0ZXIsIHJ1biBgYnJldyB1bmluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3IgJiYgYnJldyBpbnN0YWxsIC0tSEVBRCBvcGVuYXBpLWdlbmVyYXRvcmAKClRvIGluc3RhbGwgT3BlbkpESyAocHJlLXJlcXVpc2l0ZXMpLCBwbGVhc2UgcnVuCmBgYHNoCmJyZXcgdGFwIEFkb3B0T3BlbkpESy9vcGVuamRrCmJyZXcgaW5zdGFsbCAtLWNhc2sgYWRvcHRvcGVuamRrMTEKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApgYGAKCm9yIGRvd25sb2FkIGluc3RhbGxlciB2aWEgaHR0cHM6Ly9hZG9wdGl1bS5uZXQvCgpUbyBpbnN0YWxsIE1hdmVuIChvcHRpb25hbCksIHBsZWFzZSBydW4KYGBgc2gKYnJldyBpbnN0YWxsIG1hdmVuCmBgYAoKIyMjIFsxLjYgLSBEb2NrZXJdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBbaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS8pIChvZmZpY2lhbCBDTEkpCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lLykgKG9mZmljaWFsIHdlYiBzZXJ2aWNlKQoKCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgQ0xJIERvY2tlciBJbWFnZQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgIiR7UFdEfTovbG9jYWwiIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gXAogICAgLW8gL2xvY2FsL291dC9nbwpgYGAKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyMjIE9wZW5BUEkgR2VuZXJhdG9yIE9ubGluZSBEb2NrZXIgSW1hZ2UKClRoZSBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUgaW1hZ2UgY2FuIGFjdCBhcyBhIHNlbGYtaG9zdGVkIHdlYiBhcHBsaWNhdGlvbiBhbmQgQVBJIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgY29udGFpbmVyIGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZToKCmBgYHNoCiMgU3RhcnQgY29udGFpbmVyIGF0IHBvcnQgODg4OCBhbmQgc2F2ZSB0aGUgY29udGFpbmVyIGlkCj4gQ0lEPSQoZG9ja2VyIHJ1biAtZCAtcCA4ODg4OjgwODAgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSkKCiMgYWxsb3cgZm9yIHN0YXJ0dXAKPiBzbGVlcCAxMAoKIyBHZXQgdGhlIElQIG9mIHRoZSBydW5uaW5nIGNvbnRhaW5lciAob3B0aW9uYWwpCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQoKIyBFeGVjdXRlIGFuIEhUVFAgcmVxdWVzdCB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50Cj4gY3VybCAtWCBQT1NUIC0taGVhZGVyICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC0taGVhZGVyICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIFwKLWQgJ3sib3BlbkFQSVVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCJ9JyBcCidodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9jbGllbnRzL3J1YnknCgp7ImNvZGUiOiJjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgiLCJsaW5rIjoiaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4In0KCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgZmlsZQo+IHdnZXQgaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFVuemlwIHRoZSBmaWxlCj4gdW56aXAgYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFNodXRkb3duIHRoZSBvcGVuYXBpIGdlbmVyYXRvciBpbWFnZQo+IGRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIHBhY2thZ2UKYGBgCgpCdWlsZCBhcnRpZmFjdHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuCgpPbmNlIGJ1aWx0LCBgcnVuLWluLWRvY2tlci5zaGAgd2lsbCBhY3QgYXMgYW4gZXhlY3V0YWJsZSBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpLiBUbyBnZW5lcmF0ZSBjb2RlLCB5b3UnbGwgbmVlZCB0byBvdXRwdXQgdG8gYSBkaXJlY3RvcnkgdW5kZXIgYC9nZW5gIChlLmcuIGAvZ2VuL291dGApLiBGb3IgZXhhbXBsZToKCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCBoZWxwICMgRXhlY3V0ZXMgJ2hlbHAnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGlzdCAjIEV4ZWN1dGVzICdsaXN0JyBjb21tYW5kIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIGdlbmVyYXRlIC1pIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIGdvIC1vIC9nZW4vb3V0L2dvLXBldHN0b3JlIC1wIHBhY2thZ2VOYW1lPXBldHN0b3JlICMgZ2VuZXJhdGVzIGdvIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L2dvLXBldHN0b3JlCmBgYAoKIyMjIyMgVHJvdWJsZXNob290aW5nCgpJZiBhbiBlcnJvciBsaWtlIHRoaXMgb2NjdXJzLCBqdXN0IGV4ZWN1dGUgdGhlICoqLi9tdm53IGNsZWFuIGluc3RhbGwgLVUqKiBjb21tYW5kOgoKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjE5LjE6dGVzdCAoZGVmYXVsdC10ZXN0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yOiBBIHR5cGUgaW5jb21wYXRpYmlsaXR5IG9jY3VycmVkIHdoaWxlIGV4ZWN1dGluZyBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0OiBqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGNhbm5vdCBiZSBjYXN0IHRvIGphdmEuaW8uSU9FeGNlcHRpb24KCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCAuL212bncgY2xlYW4gaW5zdGFsbCAtVQpgYGAKCj4gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuZm9ydGFzb2Z0OmdyYWRsZS1tYXZlbi1wbHVnaW46MS4wLjg6aW52b2tlIChkZWZhdWx0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4tbXZuLXdyYXBwZXI6IG9yZy5ncmFkbGUudG9vbGluZy5CdWlsZEV4Y2VwdGlvbjogQ291bGQgbm90IGV4ZWN1dGUgYnVpbGQgdXNpbmcgR3JhZGxlIGRpc3RyaWJ1dGlvbiAnaHR0cHM6Ly9zZXJ2aWNlcy5ncmFkbGUub3JnL2Rpc3RyaWJ1dGlvbnMvZ3JhZGxlLTQuNy1iaW4uemlwJwoKUmlnaHQgbm93OiBubyBzb2x1dGlvbiBmb3IgdGhpcyBvbmUgOnwKCiMjIyMgUnVuIERvY2tlciBpbiBWYWdyYW50ClByZXJlcXVpc2l0ZTogaW5zdGFsbCBbVmFncmFudF0oaHR0cHM6Ly93d3cudmFncmFudHVwLmNvbS9kb3dubG9hZHMuaHRtbCkgYW5kIFtWaXJ0dWFsQm94XShodHRwczovL3d3dy52aXJ0dWFsYm94Lm9yZy93aWtpL0Rvd25sb2FkcykuCiBgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci5naXQKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKdmFncmFudCB1cAp2YWdyYW50IHNzaApjZCAvdmFncmFudAouL3J1bi1pbi1kb2NrZXIuc2ggLi9tdm53IHBhY2thZ2UKYGBgCgojIyMgWzEuNyAtIE5QTV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlcmUgaXMgYWxzbyBhbiBbTlBNIHBhY2thZ2Ugd3JhcHBlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIGF2YWlsYWJsZSBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyAoZS5nLiBMaW51eCwgTWFjLCBXaW5kb3dzKS4gKEpWTSBpcyBzdGlsbCByZXF1aXJlZCkKUGxlYXNlIHNlZSB0aGUgW3Byb2plY3QncyBSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSB0aGVyZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkluc3RhbGwgaXQgZ2xvYmFsbHkgdG8gZ2V0IHRoZSBDTEkgYXZhaWxhYmxlIG9uIHRoZSBjb21tYW5kIGxpbmU6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtZwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgpgYGAKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpUbyB1c2UgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mICJvcGVuYXBpLWdlbmVyYXRvci1jbGkiCgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIHNldCA3LjAuMQpgYGAKCk9yIGluc3RhbGwgaXQgYXMgZGV2LWRlcGVuZGVuY3k6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtRApgYGAKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgojIyBbMiAtIEdldHRpbmcgU3RhcnRlZF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gZ2VuZXJhdGUgYSBQSFAgY2xpZW50IGZvciBbcGV0c3RvcmUueWFtbF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwpLCBwbGVhc2UgcnVuIHRoZSBmb2xsb3dpbmcKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKLi9tdm53IGNsZWFuIHBhY2thZ2UKamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAtZyBwaHAgXAogICAtbyAvdmFyL3RtcC9waHBfYXBpX2NsaWVudApgYGAKKGlmIHlvdSdyZSBvbiBXaW5kb3dzLCByZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQgd2l0aCBgamF2YSAtamFyIG1vZHVsZXNcb3BlbmFwaS1nZW5lcmF0b3ItY2xpXHRhcmdldFxvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIC1nIHBocCAtbyBjOlx0ZW1wXHBocF9hcGlfY2xpZW50YCkKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpZb3UgY2FuIGFsc28gZG93bmxvYWQgdGhlIEpBUiAobGF0ZXN0IHJlbGVhc2UpIGRpcmVjdGx5IGZyb20gW21hdmVuLm9yZ10oaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuMC4xL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjAuMS5qYXIpCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KClRvIGdldCBhIGxpc3Qgb2YgKipnZW5lcmFsKiogb3B0aW9ucyBhdmFpbGFibGUsIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBoZWxwIGdlbmVyYXRlYAoKVG8gZ2V0IGEgbGlzdCBvZiBQSFAgc3BlY2lmaWVkIG9wdGlvbnMgKHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gdGhlIGdlbmVyYXRvciB3aXRoIGEgY29uZmlnIGZpbGUgdmlhIHRoZSBgLWNgIG9wdGlvbiksIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBjb25maWctaGVscCAtZyBwaHBgCgojIyBbMyAtIFVzYWdlXSgjdGFibGUtb2YtY29udGVudHMpCgojIyMgVG8gZ2VuZXJhdGUgYSBzYW1wbGUgY2xpZW50IGxpYnJhcnkKWW91IGNhbiBidWlsZCBhIGNsaWVudCBhZ2FpbnN0IHRoZSBbUGV0c3RvcmUgQVBJXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCkgYXMgZm9sbG93czoKCmBgYHNoCi4vYmluL2dlbmVyYXRlLXNhbXBsZXMuc2ggLi9iaW4vY29uZmlncy9qYXZhLW9raHR0cC1nc29uLnlhbWwKYGBgCgooT24gV2luZG93cywgcGxlYXNlIGluc3RhbGwgW0dJVCBCYXNoIGZvciBXaW5kb3dzXShodHRwczovL2dpdGZvcndpbmRvd3Mub3JnLykgdG8gcnVuIHRoZSBjb21tYW5kIGFib3ZlKQoKVGhpcyBzY3JpcHQgdXNlcyB0aGUgZGVmYXVsdCBsaWJyYXJ5LCB3aGljaCBpcyBgb2todHRwLWdzb25gLiBJdCB3aWxsIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgLWcgamF2YSBcCiAgLXQgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvbWFpbi9yZXNvdXJjZXMvSmF2YSBcCiAgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXMgYXJ0aWZhY3RJZD1wZXRzdG9yZS1va2h0dHAtZ3NvbixoaWRlR2VuZXJhdGlvblRpbWVzdGFtcD10cnVlIFwKICAtbyBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhL29raHR0cC1nc29uCmBgYAoKd2l0aCBhIG51bWJlciBvZiBvcHRpb25zLiBbVGhlIGphdmEgb3B0aW9ucyBhcmUgZG9jdW1lbnRlZCBoZXJlLl0oZG9jcy9nZW5lcmF0b3JzL2phdmEubWQpCgpZb3UgY2FuIGFsc28gZ2V0IHRoZSBvcHRpb25zIHdpdGggdGhlIGBoZWxwIGdlbmVyYXRlYCBjb21tYW5kIChiZWxvdyBvbmx5IHNob3dzIHBhcnRpYWwgcmVzdWx0cyk6CgpgYGAKTkFNRQogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtIEdlbmVyYXRlIGNvZGUgd2l0aCB0aGUgc3BlY2lmaWVkCiAgICAgICAgZ2VuZXJhdG9yLgoKU1lOT1BTSVMKICAgICAgICBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUKICAgICAgICAgICAgICAgIFsoLWEgPGF1dGhvcml6YXRpb24+IHwgLS1hdXRoIDxhdXRob3JpemF0aW9uPildCiAgICAgICAgICAgICAgICBbLS1hcGktbmFtZS1zdWZmaXggPGFwaSBuYW1lIHN1ZmZpeD5dIFstLWFwaS1wYWNrYWdlIDxhcGkgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1hcnRpZmFjdC1pZCA8YXJ0aWZhY3QgaWQ+XSBbLS1hcnRpZmFjdC12ZXJzaW9uIDxhcnRpZmFjdCB2ZXJzaW9uPl0KICAgICAgICAgICAgICAgIFsoLWMgPGNvbmZpZ3VyYXRpb24gZmlsZT4gfCAtLWNvbmZpZyA8Y29uZmlndXJhdGlvbiBmaWxlPildIFstLWRyeS1ydW5dCiAgICAgICAgICAgICAgICBbKC1lIDx0ZW1wbGF0aW5nIGVuZ2luZT4gfCAtLWVuZ2luZSA8dGVtcGxhdGluZyBlbmdpbmU+KV0KICAgICAgICAgICAgICAgIFstLWVuYWJsZS1wb3N0LXByb2Nlc3MtZmlsZV0KICAgICAgICAgICAgICAgIFsoLWcgPGdlbmVyYXRvciBuYW1lPiB8IC0tZ2VuZXJhdG9yLW5hbWUgPGdlbmVyYXRvciBuYW1lPildCiAgICAgICAgICAgICAgICBbLS1nZW5lcmF0ZS1hbGlhcy1hcy1tb2RlbF0gWy0tZ2l0LWhvc3QgPGdpdCBob3N0Pl0KICAgICAgICAgICAgICAgIFstLWdpdC1yZXBvLWlkIDxnaXQgcmVwbyBpZD5dIFstLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD5dCiAgICAgICAgICAgICAgICBbLS1nbG9iYWwtcHJvcGVydHkgPGdsb2JhbCBwcm9wZXJ0aWVzPi4uLl0gWy0tZ3JvdXAtaWQgPGdyb3VwIGlkPl0KICAgICAgICAgICAgICAgIFstLWh0dHAtdXNlci1hZ2VudCA8aHR0cCB1c2VyIGFnZW50Pl0KICAgICAgICAgICAgICAgIFsoLWkgPHNwZWMgZmlsZT4gfCAtLWlucHV0LXNwZWMgPHNwZWMgZmlsZT4pXQogICAgICAgICAgICAgICAgWy0taWdub3JlLWZpbGUtb3ZlcnJpZGUgPGlnbm9yZSBmaWxlIG92ZXJyaWRlIGxvY2F0aW9uPl0KICAgICAgICAgICAgICAgIFstLWltcG9ydC1tYXBwaW5ncyA8aW1wb3J0IG1hcHBpbmdzPi4uLl0KICAgICAgICAgICAgICAgIFstLWluc3RhbnRpYXRpb24tdHlwZXMgPGluc3RhbnRpYXRpb24gdHlwZXM+Li4uXQogICAgICAgICAgICAgICAgWy0taW52b2tlci1wYWNrYWdlIDxpbnZva2VyIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWy0tbGFuZ3VhZ2Utc3BlY2lmaWMtcHJpbWl0aXZlcyA8bGFuZ3VhZ2Ugc3BlY2lmaWMgcHJpbWl0aXZlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1sZWdhY3ktZGlzY3JpbWluYXRvci1iZWhhdmlvcl0gWy0tbGlicmFyeSA8bGlicmFyeT5dCiAgICAgICAgICAgICAgICBbLS1sb2ctdG8tc3RkZXJyXSBbLS1taW5pbWFsLXVwZGF0ZV0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtcHJlZml4IDxtb2RlbCBuYW1lIHByZWZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1uYW1lLXN1ZmZpeCA8bW9kZWwgbmFtZSBzdWZmaXg+XQogICAgICAgICAgICAgICAgWy0tbW9kZWwtcGFja2FnZSA8bW9kZWwgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbKC1vIDxvdXRwdXQgZGlyZWN0b3J5PiB8IC0tb3V0cHV0IDxvdXRwdXQgZGlyZWN0b3J5PildIFsoLXAgPGFkZGl0aW9uYWwgcHJvcGVydGllcz4gfCAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPikuLi5dCiAgICAgICAgICAgICAgICBbLS1wYWNrYWdlLW5hbWUgPHBhY2thZ2UgbmFtZT5dIFstLXJlbGVhc2Utbm90ZSA8cmVsZWFzZSBub3RlPl0KICAgICAgICAgICAgICAgIFstLXJlbW92ZS1vcGVyYXRpb24taWQtcHJlZml4XQogICAgICAgICAgICAgICAgWy0tcmVzZXJ2ZWQtd29yZHMtbWFwcGluZ3MgPHJlc2VydmVkIHdvcmQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWygtcyB8IC0tc2tpcC1vdmVyd3JpdGUpXSBbLS1zZXJ2ZXItdmFyaWFibGVzIDxzZXJ2ZXIgdmFyaWFibGVzPi4uLl0KICAgICAgICAgICAgICAgIFstLXNraXAtdmFsaWRhdGUtc3BlY10gWy0tc3RyaWN0LXNwZWMgPHRydWUvZmFsc2Ugc3RyaWN0IGJlaGF2aW9yPl0KICAgICAgICAgICAgICAgIFsoLXQgPHRlbXBsYXRlIGRpcmVjdG9yeT4gfCAtLXRlbXBsYXRlLWRpciA8dGVtcGxhdGUgZGlyZWN0b3J5PildCiAgICAgICAgICAgICAgICBbLS10eXBlLW1hcHBpbmdzIDx0eXBlIG1hcHBpbmdzPi4uLl0gWygtdiB8IC0tdmVyYm9zZSldCgpPUFRJT05TCiAgICAgICAgLWEgPGF1dGhvcml6YXRpb24+LCAtLWF1dGggPGF1dGhvcml6YXRpb24+CiAgICAgICAgICAgIGFkZHMgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHdoZW4gZmV0Y2hpbmcgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbnMKICAgICAgICAgICAgcmVtb3RlbHkuIFBhc3MgaW4gYSBVUkwtZW5jb2RlZCBzdHJpbmcgb2YgbmFtZTpoZWFkZXIgd2l0aCBhIGNvbW1hCiAgICAgICAgICAgIHNlcGFyYXRpbmcgbXVsdGlwbGUgdmFsdWVzCgouLi4uLi4gKHJlc3VsdHMgb21pdHRlZCkKCiAgICAgICAgLXYsIC0tdmVyYm9zZQogICAgICAgICAgICB2ZXJib3NlIG1vZGUKCmBgYAoKWW91IGNhbiB0aGVuIGNvbXBpbGUgYW5kIHJ1biB0aGUgY2xpZW50LCBhcyB3ZWxsIGFzIHVuaXQgdGVzdHMgYWdhaW5zdCBpdDoKCmBgYHNoCmNkIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KbXZuIHBhY2thZ2UKYGBgCgpPdGhlciBnZW5lcmF0b3JzIGhhdmUgW3NhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIvc2FtcGxlcykgdG9vLgoKIyMjIFszLjEgLSBDdXN0b21pemF0aW9uXSgjdGFibGUtb2YtY29udGVudHMpCgpQbGVhc2UgcmVmZXIgdG8gW2N1c3RvbWl6YXRpb24ubWRdKGRvY3MvY3VzdG9taXphdGlvbi5tZCkgb24gaG93IHRvIGN1c3RvbWl6ZSB0aGUgb3V0cHV0IChlLmcuIHBhY2thZ2UgbmFtZSwgdmVyc2lvbikKCiMjIyBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb24gKE1hdmVuLCBHcmFkbGUsIEdpdGh1YiwgQ0kvQ0QpXSgjdGFibGUtb2YtY29udGVudHMpCgpQbGVhc2UgcmVmZXIgdG8gW2ludGVncmF0aW9uLm1kXShkb2NzL2ludGVncmF0aW9uLm1kKSBvbiBob3cgdG8gaW50ZWdyYXRlIE9wZW5BUEkgZ2VuZXJhdG9yIHdpdGggTWF2ZW4sIEdyYWRsZSwgc2J0LCBCYXplbCwgR2l0aHViIGFuZCBDSS9DRC4KCiMjIyBbMy4zIC0gT25saW5lIE9wZW5BUEkgZ2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCgpIZXJlIGFyZSB0aGUgcHVibGljIG9ubGluZSBzZXJ2aWNlczoKCi0gbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uOiBodHRwczovL2FwaS5vcGVuYXBpLWdlbmVyYXRvci50ZWNoCi0gbGF0ZXN0IG1hc3RlcjogaHR0cHM6Ly9hcGktbGF0ZXN0LW1hc3Rlci5vcGVuYXBpLWdlbmVyYXRvci50ZWNoICh1cGRhdGVkIHdpdGggbGF0ZXN0IG1hc3RlciBldmVyeSBob3VyKQoKVGhlIHNlcnZlciBpcyBzcG9uc29yZWQgYnkgW0xpbm9kZV0oaHR0cHM6Ly93d3cubGlub2RlLmNvbS8pIFshW0xpbm9kZSBMb2dvXShodHRwczovL3d3dy5saW5vZGUuY29tL21lZGlhL2ltYWdlcy9sb2dvcy9zdGFuZGFyZC9saWdodC9saW5vZGUtbG9nb19zdGFuZGFyZF9saWdodF9zbWFsbC5wbmcpXShodHRwczovL3d3dy5saW5vZGUuY29tLykKCihUaGVzZSBzZXJ2aWNlcyBhcmUgYmV0YSBhbmQgZG8gbm90IGhhdmUgYW55IGd1YXJhbnRlZSBvbiBzZXJ2aWNlIGxldmVsKQoKUGxlYXNlIHJlZmVyIHRvIFtvbmxpbmUubWRdKGRvY3Mvb25saW5lLm1kKSBvbiBob3cgdG8gcnVuIGFuZCB1c2UgdGhlIGBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmVgIC0gYSB3ZWIgc2VydmljZSBmb3IgYG9wZW5hcGktZ2VuZXJhdG9yYC4KCiMjIyBbMy40IC0gTGljZW5zZSBpbmZvcm1hdGlvbiBvbiBHZW5lcmF0ZWQgQ29kZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIHByb2plY3QgaXMgaW50ZW5kZWQgYXMgYSBiZW5lZml0IGZvciB1c2VycyBvZiB0aGUgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbi4gIFRoZSBwcm9qZWN0IGl0c2VsZiBoYXMgdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkuCiogR2VuZXJhdGVkIGNvZGUgaXMgaW50ZW50aW9uYWxseSBfbm90XyBzdWJqZWN0IHRvIHRoZSBwYXJlbnQgcHJvamVjdCBsaWNlbnNlCgpXaGVuIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBwcm9qZWN0LCBpdCBzaGFsbCBiZSBjb25zaWRlcmVkICoqQVMgSVMqKiBhbmQgb3duZWQgYnkgdGhlIHVzZXIgb2YgdGhlIHNvZnR3YXJlLiAgVGhlcmUgYXJlIG5vIHdhcnJhbnRpZXMtLWV4cHJlc3NlZCBvciBpbXBsaWVkLS1mb3IgZ2VuZXJhdGVkIGNvZGUuICBZb3UgY2FuIGRvIHdoYXQgeW91IHdpc2ggd2l0aCBpdCwgYW5kIG9uY2UgZ2VuZXJhdGVkLCB0aGUgY29kZSBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IGFuZCBzdWJqZWN0IHRvIHRoZSBsaWNlbnNpbmcgdGVybXMgdGhhdCB5b3UgZGVlbSBhcHByb3ByaWF0ZS4KCiMjIyBbMy41IC0gSURFIEludGVncmF0aW9uXSgjdGFibGUtb2YtY29udGVudHMpCgpIZXJlIGlzIGEgbGlzdCBvZiBjb21tdW5pdHktY29udHJpYnV0ZWQgSURFIHBsdWctaW5zIHRoYXQgaW50ZWdyYXRlIHdpdGggT3BlbkFQSSBHZW5lcmF0b3I6CgotIEVjbGlwc2U6IFtDb2Rld2luZCBPcGVuQVBJIFRvb2xzIGZvciBFY2xpcHNlXShodHRwczovL3d3dy5lY2xpcHNlLm9yZy9jb2Rld2luZC9vcGVuLWFwaS10b29scy1mb3ItZWNsaXBzZS5odG1sKSBieSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tKQotIEludGVsbGlKIElERUE6IFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzg0MzMtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vamltc2NodWJlcnQudXMvIy8pCi0gSW50ZWxsaUogSURFQTogW1NlbnlhIEVkaXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzEwNjkwLXNlbnlhLWVkaXRvcikgYnkgW3NlbnlhLmlvXShodHRwczovL3NlbnlhLmlvKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vKQotIFZpc3VhbCBTdHVkaW86IFtSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3JdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IpIGJ5IFtDaHJpc3RpYW4gUmVzbWEgSGVsbGVdKGh0dHBzOi8vY2hyaXN0aWFuLWhlbGxlLmJsb2dzcG90LmNvbS8pCi0gVmlzdWFsIFN0dWRpbyBDb2RlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBieSBbSUJNXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vcHVibGlzaGVycy9JQk0pCgoKIyMgWzQgLSBDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKSGVyZSBhcmUgc29tZSBjb21wYW5pZXMvcHJvamVjdHMgKGFscGhhYmV0aWNhbCBvcmRlcikgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgaW4gcHJvZHVjdGlvbi4gVG8gYWRkIHlvdXIgY29tcGFueS9wcm9qZWN0IHRvIHRoZSBsaXN0LCBwbGVhc2UgdmlzaXQgW1JFQURNRS5tZF0oUkVBRE1FLm1kKSBhbmQgY2xpY2sgb24gdGhlIGljb24gdG8gZWRpdCB0aGUgcGFnZS4KCi0gW0FhbGJvcmcgVW5pdmVyc2l0eV0oaHR0cHM6Ly93d3cuYWF1LmRrKQotIFtBZGFwdGFudCBTb2x1dGlvbnMgQUddKGh0dHBzOi8vd3d3LmFkYXB0YW50LmlvLykKLSBbYWRlc3NvIFNFXShodHRwczovL3d3dy5hZGVzc28uZGUvKQotIFtBZHllbl0oaHR0cHM6Ly93d3cuYWR5ZW4uY29tLykKLSBbQWdvZGFdKGh0dHBzOi8vd3d3LmFnb2RhLmNvbS8pCi0gW0FpcnRoaW5nc10oaHR0cHM6Ly93d3cuYWlydGhpbmdzLmNvbS8pCi0gW0FsZXJpIFNvbHV0aW9ucyBHbWJoXShodHRwczovL3d3dy5hbGVyaS5kZS8pCi0gW0FsbGlhbnpdKGh0dHBzOi8vd3d3LmFsbGlhbnouY29tKQotIFtBbmd1bGFyLlNjaHVsZV0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS8pCi0gW0Fxb3ZpYV0oaHR0cHM6Ly9hcW92aWEuY29tLykKLSBbQXVzdHJhbGlhIGFuZCBOZXcgWmVhbGFuZCBCYW5raW5nIEdyb3VwIChBTlopXShodHRwOi8vd3d3LmFuei5jb20vKQotIFtBcmR1aW5vXShodHRwczovL3d3dy5hcmR1aW5vLmNjLykKLSBbQVNLVUxdKGh0dHBzOi8vd3d3LmFza3VsLmNvLmpwKQotIFtBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpXShodHRwczovL2F3cy5hbWF6b24uY29tLykKLSBbYjw+Y29tXShodHRwczovL2ItY29tLmNvbS9lbikKLSBb55m+5bqm6JCl6ZSAXShodHRwczovL2UuYmFpZHUuY29tKQotIFtCYW5kd2lkdGhdKGh0dHBzOi8vZGV2LmJhbmR3aWR0aC5jb20pCi0gW0JhbnphaSBDbG91ZF0oaHR0cHM6Ly9iYW56YWljbG91ZC5jb20pCi0gW0JJTURhdGEuaW9dKGh0dHBzOi8vYmltZGF0YS5pbykKLSBbQml0aG9zdCBHbWJIXShodHRwczovL3d3dy5iaXRob3N0LmNoKQotIFtCb3NjaCBDb25uZWN0ZWQgSW5kdXN0cnldKGh0dHBzOi8vd3d3LmJvc2NoLWNvbm5lY3RlZC1pbmR1c3RyeS5jb20pCi0gW0JveGV2ZXJdKGh0dHBzOi8vd3d3LmJveGV2ZXIuY29tLykKLSBbQnJldnldKGh0dHBzOi8vd3d3LmJyZXZ5LmNvbSkKLSBbQnVua2VyIEhvbGRpbmcgR3JvdXBdKGh0dHBzOi8vd3d3LmJ1bmtlci1ob2xkaW5nLmNvbS8pCi0gW0NhbGlmb3JuaWEgU3RhdGUgVW5pdmVyc2l0eSwgTm9ydGhyaWRnZV0oaHR0cHM6Ly93d3cuY3N1bi5lZHUpCi0gW0NBTV0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gW0NhbXB0b2NhbXBdKGh0dHBzOi8vd3d3LmNhbXB0b2NhbXAuY29tL2VuKQotIFtDaXNjb10oaHR0cHM6Ly93d3cuY2lzY28uY29tLykKLSBbY29kZWNlbnRyaWMgQUddKGh0dHBzOi8vd3d3LmNvZGVjZW50cmljLmRlLykKLSBbQ29pbkFQSV0oaHR0cHM6Ly93d3cuY29pbmFwaS5pby8pCi0gW0NvbW1lbmNpc10oaHR0cHM6Ly93d3cuY29tbWVuY2lzLmNvbS8pCi0gW2Nyb25uIEdtYkhdKGh0dHBzOi8vd3d3LmNyb25uLmRlLykKLSBbQ3Jvc3NvdmVyIEhlYWx0aF0oaHR0cHM6Ly9jcm9zc292ZXJoZWFsdGguY29tLykKLSBbQ3VwaXhdKGh0dHBzOi8vd3d3LmN1cGl4LmNvbS8pCi0gW0RhdGFkb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20pCi0gW0RCIFN5c3RlbF0oaHR0cHM6Ly93d3cuZGJzeXN0ZWwuZGUpCi0gW0RlZXBvcnV0ZS5haV0oaHR0cHM6Ly93d3cuZGVlcHJvdXRlLmFpLykKLSBbRGV2c3VwcGx5XShodHRwczovL3d3dy5kZXZzdXBwbHkuY29tLykKLSBbZG1URUNIIEdtYkhdKGh0dHBzOi8vd3d3LmRtVEVDSC5kZSkKLSBbRG9jU3ByaW5nXShodHRwczovL2RvY3NwcmluZy5jb20vKQotIFtkd2FuZ29dKGh0dHBzOi8vZHdhbmdvLmNvLmpwLykKLSBbRWRnZSBJbXB1bHNlXShodHRwczovL3d3dy5lZGdlaW1wdWxzZS5jb20vKQotIFtFbGVtZW50IEFJXShodHRwczovL3d3dy5lbGVtZW50YWkuY29tLykKLSBbRW1ib3RpY3NdKGh0dHBzOi8vd3d3LmVtYm90aWNzLmNvbS8pCi0gW2VtaW5lb10oaHR0cHM6Ly93d3cuZW1pbmVvLmNoKQotIFtmYXN0bHldKGh0dHBzOi8vd3d3LmZhc3RseS5jb20vKQotIFtGZW5lcmdvXShodHRwczovL3d3dy5mZW5lcmdvLmNvbS8pCi0gW2ZyZWVlXShodHRwczovL2NvcnAuZnJlZWUuY28uanAvZW4vKQotIFtGcmVzaENlbGxzXShodHRwczovL3d3dy5mcmVzaGNlbGxzLmRlLykKLSBbRnVzZV0oaHR0cHM6Ly93d3cuZnVzZS5uby8pCi0gW0dhbnRuZXJdKGh0dHBzOi8vd3d3LmdhbnRuZXIuY29tKQotIFtHZW5GbG93XShodHRwczovL2dpdGh1Yi5jb20vUmVwcmVaZW4vR2VuRmxvdykKLSBbR2V0WW91ckd1aWRlXShodHRwczovL3d3dy5nZXR5b3VyZ3VpZGUuY29tLykKLSBbR2xvdm9dKGh0dHBzOi8vZ2xvdm9hcHAuY29tLykKLSBbR01PIFBlcGFib10oaHR0cHM6Ly9wZXBhYm8uY29tL2VuLykKLSBbR29EYWRkeV0oaHR0cHM6Ly9nb2RhZGR5LmNvbSkKLSBbR3VtdHJlZV0oaHR0cHM6Ly9ndW10cmVlLmNvbSkKLSBbSGVyZV0oaHR0cHM6Ly9kZXZlbG9wZXIuaGVyZS5jb20vKQotIFtJQk1dKGh0dHBzOi8vd3d3LmlibS5jb20vKQotIFtJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbSkKLSBbSW50ZXJ4aW9uXShodHRwczovL3d3dy5pbnRlcnhpb24uY29tKQotIFtJbnF1aXNpY29dKGh0dHBzOi8vaW5xdWlzaWNvLmNvbSkKLSBbSnVzdFN0YXJdKGh0dHBzOi8vd3d3Lmp1c3RzdGFyaW5mby5jb20pCi0gW2s2LmlvXShodHRwczovL2s2LmlvLykKLSBbS2xhcm5hXShodHRwczovL3d3dy5rbGFybmEuY29tLykKLSBbS3JvbnNvZnQgRGV2ZWxvcG1lbnRdKGh0dHBzOi8vd3d3Lmtyb25zb2Z0LnJvL2hvbWUvKQotIFtLdWJlcm5ldGVzXShodHRwczovL2t1YmVybmV0ZXMuaW8pCi0gW0xhbmRlc2hhdXB0c3RhZHQgTcO8bmNoZW4gLSBpdEBNXShodHRwczovL211ZW5jaGVuLmRpZ2l0YWwvaXQtYXQtbS8pCi0gW0xpbm9kZV0oaHR0cHM6Ly93d3cubGlub2RlLmNvbS8pCi0gW0xvZ2ljZHJvcF0oaHR0cHM6Ly93d3cubG9naWNkcm9wLmNvbSkKLSBbTHVtZXJpc10oaHR0cHM6Ly93d3cubHVtZXJpcy5jb20pCi0gW0xWTSBWZXJzaWNoZXJ1bmdlbl0oaHR0cHM6Ly93d3cubHZtLmRlKQotIFtNYWlsU2x1cnBdKGh0dHBzOi8vd3d3Lm1haWxzbHVycC5jb20pCi0gW01hbnRpY29yZSBTZWFyY2hdKGh0dHBzOi8vbWFudGljb3Jlc2VhcmNoLmNvbSkKLSBbTWFzdGVyY2FyZF0oaHR0cHM6Ly9kZXZlbG9wZXJzLm1hc3RlcmNhcmQuY29tKQotIFtNw6lkaWF2aXNpb25dKGh0dHBzOi8vd3d3Lm1lZGlhdmlzaW9uLmZyLykKLSBbTWV0YXN3aXRjaF0oaHR0cHM6Ly93d3cubWV0YXN3aXRjaC5jb20vKQotIFtNb29uVmlzaW9uXShodHRwczovL3d3dy5tb29udmlzaW9uLmlvLykKLSBbTXl3b3Jrb3V0XShodHRwczovL215d29ya291dC5jb20pCi0gW05hbVNvcl0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8pCi0gW05ldmVyZmFpbF0oaHR0cHM6Ly93d3cubmV2ZXJmYWlsLmNvbS8pCi0gW05ldWVyRW5lcmd5XShodHRwczovL25ldWVyZW5lcmd5LmNvbSkKLSBbTm9raWFdKGh0dHBzOi8vd3d3Lm5va2lhLmNvbS8pCi0gW09uZVNpZ25hbF0oaHR0cHM6Ly93d3cub25lc2lnbmFsLmNvbS8pCi0gW09wdGlvbnMgQ2xlYXJpbmcgQ29ycG9yYXRpb24gKE9DQyldKGh0dHBzOi8vd3d3LnRoZW9jYy5jb20vKQotIFtPcGVuZXRdKGh0dHBzOi8vd3d3Lm9wZW5ldC5jb20vKQotIFtvcGVuVkFMSURBVElPTl0oaHR0cHM6Ly9vcGVudmFsaWRhdGlvbi5pby8pCi0gW09yYWNsZV0oaHR0cHM6Ly93d3cub3JhY2xlLmNvbS8pCi0gW1BheG9zXShodHRwczovL3d3dy5wYXhvcy5jb20pCi0gW1BsYWlkXShodHRwczovL3BsYWlkLmNvbSkKLSBbUExBSUQsIEluYy5dKGh0dHBzOi8vcGxhaWQuY28uanAvKQotIFtQaW50ZXJlc3RdKGh0dHBzOi8vd3d3LnBpbnRlcmVzdC5jb20pCi0gW1Bvbmljb2RlXShodHRwczovL3Bvbmljb2RlLmRldi8pCi0gW1ByaWNlZnhdKGh0dHBzOi8vd3d3LnByaWNlZnguY29tLykKLSBbUHJpbnROYW5ueV0oaHR0cHM6Ly93d3cucHJpbnQtbmFubnkuY29tLykKLSBbUHJvbWV0aGV1cy9BbGVydG1hbmFnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9tZXRoZXVzL2FsZXJ0bWFuYWdlcikKLSBbUWF2YXJdKGh0dHBzOi8vd3d3LnFhdmFyLmNvbSkKLSBbUUVESVRdKGh0dHBzOi8vcWVkLWl0LmNvbSkKLSBbUW92ZXJ5XShodHRwczovL3FvdmVyeS5jb20pCi0gW1F1bGl4IFN5c3RlbXNdKGh0dHBzOi8vd3d3LnF1bGl4LmNvbSkKLSBbUmFrc3VsXShodHRwczovL2NvcnAucmFrc3VsLmNvbSkKLSBbUmFpZmZlaXNlbiBTY2h3ZWl6IEdlbm9zc2Vuc2NoYWZ0XShodHRwczovL3d3dy5yYWlmZmVpc2VuLmNoKQotIFtSZWRIYXRdKGh0dHBzOi8vd3d3LnJlZGhhdC5jb20pCi0gW1JlcHJlWmVuIEFQSSBTdHVkaW9dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9zd2FnZ2VyLW9wZW5hcGktY29kZS1nZW5lcmF0aW9uLWFwaS1maXJzdC1taWNyb3NlcnZpY2VzLWVudGVycHJpc2UtZGV2ZWxvcG1lbnQpCi0gW1JFU1QgVW5pdGVkXShodHRwczovL3Jlc3R1bml0ZWQuY29tKQotIFtSb2JvY29ycF0oaHR0cHM6Ly93d3cucm9ib2NvcnAuY29tKQotIFtSb2JvdGluZnJhXShodHRwczovL3d3dy5yb2JvdGluZnJhLmNvbSkKLSBbU21hcnRIUl0oaHR0cHM6Ly9zbWFydGhyLmNvLmpwLykKLSBbU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50XShodHRwczovL3d3dy5zaWUuY29tL2VuL2luZGV4Lmh0bWwpCi0gW1NwbGl0aXRdKGh0dHBzOi8vd3d3LnNwbGl0aXQuY29tLykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdXZhXShodHRwczovL3d3dy5zdXZhLmNoLykKLSBbVGVsc3RyYV0oaHR0cHM6Ly9kZXYudGVsc3RyYS5jb20pCi0gW1RlbmNlbnRdKGh0dHBzOi8vd3d3LnRlbmNlbnQuY29tKQotIFtUaGUgVW5pdmVyc2l0eSBvZiBBaXp1XShodHRwczovL3d3dy51LWFpenUuYWMuanAvZW4vKQotIFtUcmFuc2x1Y2VudCBBcFNdKGh0dHBzOi8vd3d3LnRyYW5zbHVjZW50LmRrKQotIFtUcmF2ZWxUaW1lIHBsYXRmb3JtXShodHRwczovL3d3dy50cmF2ZWx0aW1lcGxhdGZvcm0uY29tLykKLSBbVHJpYmFsU2NhbGVdKGh0dHBzOi8vd3d3LnRyaWJhbHNjYWxlLmNvbSkKLSBbVHJpZm9ya10oaHR0cHM6Ly90cmlmb3JrLmNvbSkKLSBbVFVJIEluZm9UZWMgR21iSF0oaHR0cDovL3d3dy50dWktaW5mb3RlYy5jb20vKQotIFtUd2lsaW9dKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vKQotIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tKQotIFt1bmJsdSBpbmMuXShodHRwczovL3d3dy51bmJsdS5jb20vKQotIFtWZWFtbHldKGh0dHBzOi8vd3d3LnZlYW1seS5jb20vKQotIFtWTVdhcmVdKGh0dHBzOi8vd3d3LnZtd2FyZS5jb20vKQotIFt3YnQtc29sdXRpb25zXShodHRwczovL3d3dy53YnQtc29sdXRpb25zLmRlLykKLSBbV29sZWV0XShodHRwczovL3d3dy53b2xlZXQuaW8vKQotIFtXU08yXShodHRwczovL3dzbzIuY29tLykKLSBbVm91Y2hlcnkuaW9dKGh0dHBzOi8vdm91Y2hlcnkuaW8pCi0gW1hlcm9dKGh0dHBzOi8vd3d3Lnhlcm8uY29tLykKLSBbWWFob28gSmFwYW5dKGh0dHBzOi8vd3d3LnlhaG9vLmNvLmpwLykKLSBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvKQotIFtWb25hZ2VdKGh0dHBzOi8vdm9uYWdlLmNvbSkKLSBbWUlUVSBUZWNobm9sb2d5XShodHRwczovL3d3dy55aXR1dGVjaC5jb20vKQotIFtZZWxwXShodHRwczovL3d3dy55ZWxwLmNvbS8pCi0gW1phbGFuZG9dKGh0dHBzOi8vd3d3LnphbGFuZG8uY29tKQotIFszRFMgT3V0c2NhbGVdKGh0dHBzOi8vd3d3Lm91dHNjYWxlLmNvbS8pCgojIyBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLSAyMDE4LzA1LzEyIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gY29tbXVuaXR5IGRyaXZlbuOBp+aIkOmVt+OBmeOCi+OCs+ODvOODieOCuOOCp+ODjeODrOODvOOCv10oaHR0cHM6Ly9hY2tpbnRvc2guZ2l0aHViLmlvL2Jsb2cvMjAxOC8wNS8xMi9vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gMjAxOC8wNS8xNSAtIFtTdGFydGluZyBhIG5ldyBvcGVuLXNvdXJjZSBwcm9qZWN0XShodHRwOi8vam1pbmkuZ2l0aHViLmlvL2Jsb2cvMjAxOC8yMDE4LTA1LTE1X25ldy1vcGVuLXNvdXJjZS1wcm9qZWN0Lmh0bWwpIGJ5IFtKZXJlbWllIEJyZXNzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkKLSAyMDE4LzA1LzE1IC0gW1JFU1QgQVBJ5LuV5qeY44GL44KJQVBJ44Kv44Op44Kk44Ki44Oz44OI44KE44K544K/44OW44K144O844OQ44KS6Ieq5YuV55Sf5oiQ44GZ44KL44CMT3BlbkFQSSBHZW5lcmF0b3LjgI3jgqrjg7zjg5fjg7Pjgr3jg7zjgrnjgaflhazplovjgIJTd2FnZ2VyIENvZGVnZW7jgYvjgonjga7jg5Xjgqnjg7zjgq9dKGh0dHBzOi8vd3d3LnB1YmxpY2tleTEuanAvYmxvZy8xOC9yZXN0X2FwaWFwaW9wZW5hcGlfZ2VuZXJhdG9yc3dhZ2dlcl9nZW5lcmF0b3IuaHRtbCkgYnkgW1B1YmxpY2tleV0oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcCkKLSAyMDE4LzA2LzA4IC0gW1N3YWdnZXIgQ29kZWdlbiBpcyBub3cgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvYmxvZy8yMDE4LTA2LXN3YWdnZXItY29kZWdlbi1pcy1ub3ctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKb2hhbm5lc0hvcHBlXShodHRwczovL2dpdGh1Yi5jb20vSm9oYW5uZXNIb3BwZSkKLSAyMDE4LzA2LzIxIC0gW0Nvbm5lY3QgeW91ciBKSGlwc3RlciBhcHBzIHRvIHRoZSB3b3JsZCBvZiBBUElzIHdpdGggT3BlbkFQSSBhbmQgZ1JQQ10oaHR0cHM6Ly9mci5zbGlkZXNoYXJlLm5ldC9jaGJvcm5ldC9qaGlwc3Rlci1jb25mLTIwMTgtY29ubmVjdC15b3VyLWpoaXBzdGVyLWFwcHMtdG8tdGhlLXdvcmxkLW9mLWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1ncnBjKSBieSBbQ2hyaXN0b3BoZSBCb3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE4XShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE4LzA2LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBHYXRsaW5nIENsaWVudCDjgpLnlJ/miJDjgZfjgabjgb/jgZ9dKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8wNi8yMi8wNzMwMDApIGF0IFvjgr3jg6LjgrXjg7NdKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vKQotIDIwMTgvMDYvMjcgLSBbTGVzc29ucyBMZWFybmVkIGZyb20gTGVhZGluZyBhbiBPcGVuLVNvdXJjZSBQcm9qZWN0IFN1cHBvcnRpbmcgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9sZXNzb25zLWxlYXJuZWQtZnJvbS1sZWFkaW5nLWFuLW9wZW4tc291cmNlLXByb2plY3Qtc3VwcG9ydGluZy0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykgLSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtMaW51eENvbiArIENvbnRhaW5lckNvbiArIENsb3VkT3BlbiBDaGluYSAyMDE4XShodHRwOi8vYml0Lmx5LzJ3YURLS1gpCi0gMjAxOC8wNy8xOSAtIFtPcGVuQVBJIEdlbmVyYXRvciBDb250cmlidXRpb24gUXVpY2tzdGFydCAtIFJpbmdDZW50cmFsIEdvIFNES10oaHR0cHM6Ly9tZWRpdW0uY29tL3JpbmdjZW50cmFsLWRldmVsb3BlcnMvb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWdvLWNvbnRyaWJ1dGlvbi1xdWlja3N0YXJ0LThjYzcyYmYzN2I1MykgYnkgW0pvaG4gV2FuZ10oaHR0cHM6Ly9naXRodWIuY29tL2dyb2tpZnkpCi0gMjAxOC8wOC8yMiAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBruODl+ODreOCuOOCp+OCr+ODiOani+aIkOOBquOBqeOBruODoeODol0oaHR0cHM6Ly95aW5tLmluZm8vMjAxODA4MjIvKSBieSBbWXVzdWtlIElpbnVtYV0oaHR0cHM6Ly9naXRodWIuY29tL3lpbm0pCi0gMjAxOC8wOS8xMiAtIFtSZXByZVplbiBhbmQgT3BlbkFQSSAzLjA6IE5vdyBpcyB0aGUgVGltZV0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvcmVwcmV6ZW4tb3BlbmFwaS0zLjAtdXBncmFkZS1ub3ctaXMtdGhlLXRpbWUpIGJ5IFtNaWxlcyBEYWZmaW5dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9ibG9nL2F1dGhvci9taWxlcy1kYWZmaW4pCi0gMjAxOC8xMC8zMSAtIFtBIG5vZGUgcGFja2FnZSB3cmFwcGVyIGZvciBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hhcm1vV2F0Y2gvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKQotIDIwMTgvMTEvMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgKyBnb2xhbmcgKyBGbHV0dGVyIOOBp+OCouODl+ODqumWi+eZul0oaHR0cDovL3J5dWljaGkxMTFzdGQuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8xMS8wMy8yMTQwMDUpIGJ5IFtSeXVpY2hpIERhaWdvXShodHRwczovL2dpdGh1Yi5jb20vcnl1aWNoaTExMSkKLSAyMDE4LzExLzE1IC0gW+WfuuS6jm9wZW5hcGkzLjDnmoR5YW1s5paH5Lu255Sf5oiQamF2YeS7o+eggeeahOS4gOasoeWunui3tV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l6eTE5OTM5MS9hcnRpY2xlL2RldGFpbHMvODQwMjM5ODIpIGJ5IFvnhLHprZTnjotdKGh0dHBzOi8vbWUuY3Nkbi5uZXQveXp5MTk5MzkxKQotIDIwMTgvMTEvMTggLSBbR2VuZXJhdGluZyBQSFAgbGlicmFyeSBjb2RlIGZyb20gT3BlbkFQSV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0L3Bvc3RzLzIwMTgvZ2VuZXJhdGluZy1waHAtbGlicmFyeS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW0xvcm5hIEphbmVdKGh0dHBzOi8vbG9ybmFqYW5lLm5ldC8pIGF0IFtMT1JOQUpBTkUgQmxvZ10oaHR0cHM6Ly9sb3JuYWphbmUubmV0L2Jsb2cpCi0gMjAxOC8xMS8xOSAtIFtPcGVuQVBJcyBhcmUgZXZlcnl3aGVyZV0oaHR0cHM6Ly95b3V0dS5iZS8tbERvdDRZbjdEZykgYnkgW0plcmVtaWUgQnJlc3NvbiAoVW5ibHUpXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtFY2xpcHNlQ29uIEV1cm9wZSAyMDE4XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE4KQotIDIwMTgvMTIvMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44KS44Kr44K544K/44Oe44Kk44K644GZ44KL5pa55rOVXShodHRwczovL3FpaXRhLmNvbS93YXRpa28vaXRlbXMvMDk2MTI4N2MwMmVhYzkyMTE1NzIpIGJ5IFtAd2F0aWtvXShodHRwczovL3FpaXRhLmNvbS93YXRpa28pCi0gMjAxOS8wMS8wMyAtIFtDYWxsaW5nIGEgU3dhZ2dlciBzZXJ2aWNlIGZyb20gQXBleCB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9sZWtraW13b3JsZC5jb20vMjAxOS8wMS8wMy9jYWxsaW5nLWEtc3dhZ2dlci1zZXJ2aWNlLWZyb20tYXBleC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtNaWtrZWwgRmxpbmR0IEhlaXN0ZXJiZXJnXShodHRwczovL2xla2tpbXdvcmxkLmNvbSkKLSAyMDE5LzAxLzEzIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnUkVTVGZ1bCBBUEnjga7lrprnvqnmm7jjgYvjgonoibLjgIXoh6rli5XnlJ/miJDjgZnjgotdKGh0dHBzOi8va3kteWstZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzAxLzEzLzIzNDEwOCkgYnkgW0BreV95a19kXShodHRwczovL3R3aXR0ZXIuY29tL2t5X3lrX2QpCi0gMjAxOS8wMS8yMCAtIFtDb250cmFjdC1GaXJzdCBBUEkgRGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIEdlbmVyYXRvciBhbmQgQ29ubmV4aW9uXShodHRwczovL21lZGl1bS5jb20vY29tbWVuY2lzL2NvbnRyYWN0LWZpcnN0LWFwaS1kZXZlbG9wbWVudC13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWFuZC1jb25uZXhpb24tYjIxYmJmMmY5MjQ0KSBieSBbQW5pbCBDYW4gQXlkaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmxjbnlkbikKLSAyMDE5LzAxLzMwIC0gW1JhcGlkIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IFdpdGggQVBJIEZpcnN0IEFwcHJvYWNoIFVzaW5nIE9wZW4tQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9kem9uZS5jb20vYXJ0aWNsZXMvcmFwaWQtYXBpLWRldmVsb3BtZW50LXVzaW5nLW9wZW4tYXBpLWdlbmVyYXRvcikgYnkgW01pbGFuIFNvbmthcl0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvODI4MzI5L21pbGFuX3Nvbmthci5odG1sKQotIDIwMTkvMDIvMDIgLSBb5bmz6Z2Z44KS5L+d44Gh44CB44Kz44O844OJ44KS55Sf5oiQ44Gb44KIIOOAnCBPcGVuQVBJIEdlbmVyYXRvcuiqleeUn+OBruiDjOaZr+OBqOi7jOi3oSDjgJxdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL2d1bm1hd2ViMzQpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtHdW5tYS53ZWIgIzM0IOOCueOCreODvOODnumnhuWLlemWi+eZul0oaHR0cHM6Ly9ndW5tYXdlYi5jb25ucGFzcy5jb20vZXZlbnQvMTEzOTc0LykKLSAyMDE5LzAyLzIwIC0gW0FuIGFkdmVudHVyZSBpbiBPcGVuQVBJIFYzIGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tdXguY29tL2Jsb2cvYW4tYWR2ZW50dXJlLWluLW9wZW5hcGktdjMtYXBpLWNvZGUtZ2VuZXJhdGlvbi8pIGJ5IFtQaGlsIENsdWZmXShodHRwczovL211eC5jb20vYmxvZy9hdXRob3IvcGhpbGMvKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJIFNlcnZpY2VzOiBBIEJlZ2lubmVy4oCZcyBHdWlkZV0oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZC9idWlsZGluZy1hcGktc2VydmljZXMtYS1iZWdpbm5lcnMtZ3VpZGUtNzI3NGFlNGM1NDdmKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LzAyLzI2IC0gW0J1aWxkaW5nIEFQSXMgd2l0aCBPcGVuQVBJOiBDb250aW51ZWRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeS9idWlsZGluZy1hcGlzLXdpdGgtb3BlbmFwaS1jb250aW51ZWQtNWQwZmFhZWQzMmViKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LTAzLTA3IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBTcHJpbmcgQm9vdCDjgaggQW5ndWxhciDjgpLjgr/jgqTjg5fjgrvjg7zjg5XjgavnuYvjgZBdKGh0dHBzOi8vcWlpdGEuY29tL2NoaWJhdG8vaXRlbXMvZTRhNzQ4ZGIxMjQwOWI0MGMwMmYpIGJ5IFtUb21vZnVtaSBDaGliYV0oaHR0cHM6Ly9naXRodWIuY29tL2NoaWJhdCkKLSAyMDE5LTAzLTE2IC0gW0EgUXVpY2sgaW50cm9kdWN0aW9uIHRvIG1hbnVhbCBPcGVuQVBJIFYzXShodHRwczovL3ZhZG9zd2FyZS5pby9wb3N0L3F1aWNrLWludHJvLXRvLW1hbnVhbC1vcGVuYXBpLXYzLykgYnkgW3ZhZG9zXShodHRwczovL2dpdGh1Yi5jb20vdDNobXJtYW4pIGF0IFtWQURPU1dBUkVdKGh0dHBzOi8vdmFkb3N3YXJlLmlvKQotIDIwMTktMDMtMjUgLSBbQWNjZXNzIGFueSBSRVNUIHNlcnZpY2Ugd2l0aCB0aGUgU0FQIFMvNEhBTkEgQ2xvdWQgU0RLXShodHRwczovL2Jsb2dzLnNhcC5jb20vMjAxOS8wMy8yNS9pbnRlZ3JhdGUtc2FwLXM0aGFuYS1jbG91ZC1zZGstd2l0aC1vcGVuLWFwaS8pIGJ5IFtBbGV4YW5kZXIgRHVlbW9udF0oaHR0cHM6Ly9wZW9wbGUuc2FwLmNvbS9hbGV4YW5kZXIuZHVlbW9udCkKLSAyMDE5LTAzLTI1IC0gW09wZW5BUEkgZ2VuZXJhdG9y44KS6Kmm44GX44Gm44G/44KLXShodHRwczovL3FpaXRhLmNvbS9hbXV5aWthbS9pdGVtcy9lOGE0NWRhYWU1OWM2OGJlMGZjOCkgYnkgW0BhbXV5aWthbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9hbXV5aWthbSkKLSAyMDE5LTAzLTI3IC0gW09wZW5BUEkz44KS5L2/44Gj44Gm44G/44KI44GG77yBR2/oqIDoqp7jgafjgq/jg6njgqTjgqLjg7Pjg4jjgajjgrnjgr/jg5bjga7oh6rli5XnlJ/miJDjgb7jgafvvIFdKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvb3BlbmFwaTMvZ28pIGJ5IFtAZ29sZF9rb3VdKGh0dHBzOi8vdHdpdHRlci5jb20vZ29sZF9rb3UpCi0gMjAxOS0wNC0xNyAtIFtPcGVuQVBJ44Gr44KI44KL44K544Kt44O844Oe44OV44Kh44O844K544OI6ZaL55m644Gu5a6f5pa944K144Oz44OX44Or44GoQ2xvdWQgUnVu44Gr44Gk44GE44GmXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDE5LzA0LzE3LzE3NDAwMCkgYnkgW0B5dWtleTEwMzFdKGh0dHBzOi8vdHdpdHRlci5jb20veXVrZXkxMDMxKQotIDIwMTktMDQtMTggLSBbSG93IHRvIHVzZSBPcGVuQVBJMyBmb3IgQVBJIGRldmVsb3BlciAoUnVieUthaWdpIDIwMTkpXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9vdGE0MnkvaG93LXRvLXVzZS1vcGVuYXBpMy1mb3ItYXBpLWRldmVsb3BlcikgYnkgW0BvdGE0MnldKGh0dHBzOi8vdHdpdHRlci5jb20vb3RhNDJ5KSBhdCBbUnVieUthaWdpIDIwMTldKGh0dHBzOi8vcnVieWthaWdpLm9yZy8yMDE5KQotIDIwMTktMDQtMjkgLSBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDUtMDEgLSBbRGVzaWduIGFuZCBnZW5lcmF0ZSBhIFJFU1QgQVBJIGZyb20gU3dhZ2dlciAvIE9wZW5BUEkgaW4gSmF2YSwgUHl0aG9uLCBDIyBhbmQgbW9yZV0oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS9kZXNpZ24tYW5kLWdlbmVyYXRlLWFwaS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW1NpbXBseSBIb3ddKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vKQotIDIwMTktMDUtMTcgLSBbR2VuZXJhdGUgU3ByaW5nIEJvb3QgUkVTVCBBUEkgdXNpbmcgU3dhZ2dlci9PcGVuQVBJXShodHRwczovL3d3dy40N25vcnRobGFicy5jb20va25vd2xlZGdlLWJhc2UvZ2VuZXJhdGUtc3ByaW5nLWJvb3QtcmVzdC1hcGktdXNpbmctc3dhZ2dlci1vcGVuYXBpLykgYnkgW0FudG9uaWUgWmFmaXJvdl0oaHR0cHM6Ly93d3cuNDdub3J0aGxhYnMuY29tL2F1dGhvci9hbnRvbmllLXphZmlyb3YvKQotIDIwMTktMDUtMjIgLSBbUkVTVCBBUElz5Luj56CB55Sf5oiQ5oyH5Y2XKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfZ2IpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpCi0gMjAxOS0wNS0yNCAtIFtSRVNUIEFQSSDku6PnorznlJ/miJDmjIfljZcgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkKLSAyMDE5LTA2LTI0IC0gW0t1YmVybmV0ZXMgQ2xpZW50cyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgva3ViZXJuZXRlcy1jbGllbnRzLWFuZC1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkgYXQgW0t1YmVybmV0ZXMgQ29udHJpYnV0b3IgU3VtbWl0cyBTaGFuZ2hhaSAyMDE5XShodHRwczovL3d3dy5sZmFzaWFsbGMuY29tL2V2ZW50cy9jb250cmlidXRvcnMtc3VtbWl0LWNoaW5hLTIwMTkvKQotIDIwMTktMDYtMjggW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbRWNsaXBzZSBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy8pIGJ5IElCTQotIDIwMTktMDYtMjkgW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgaW4gW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS8pIGJ5IElCTQotIDIwMTktMDctMDQgLSBbUkVTVCBBUEkg44Gu44Gf44KB44Gu44Kz44O844OI44KZ55Sf5oiQ5YWl6ZaAIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rX2JpZzUpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSwgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikKLSAyMDE5LTA3LTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBq+OCs+ODs+ODiOODquODk+ODpeODvOODiOOBl+OBn+OCieekvuWQjeOBjOi8ieOBo+OBn+ipseOAgihDQU0pIC0gQ0FNIFRFQ0ggQkxPR10oaHR0cHM6Ly90ZWNoLmNhbS1pbmMuY28uanAvZW50cnkvMjAxOS8wNy8wOC8xNDAwMDApIGJ5IFtDQU0sIEluYy5dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIDIwMTktMDctMTQgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadQeXRob27jga7jgq/jg6njgqTjgqLjg7Pjg4jjg6njgqTjg5bjg6njg6rjgpLkvZzmiJDjgZfjgZ9dKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvZGZiOTI5MzE2YTEzMzVhMTYxYzApIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMTktMDctMTkgLSBbRGV2ZWxvcGVyIEV4cGVyaWVuY2UgKERYKSBmb3IgT3Blbi1Tb3VyY2UgUHJvamVjdHM6IEhvdyB0byBFbmdhZ2UgRGV2ZWxvcGVycyBhbmQgQnVpbGQgYSBHcm93aW5nIERldmVsb3BlciBDb21tdW5pdHldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvZGV2ZWxvcGVyLWV4cGVyaWVuY2UtZHgtZm9yLW9wZW4tc291cmNlLXByb2plY3RzLWVuZ2xpc2gtamFwYW5lc2UpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuIDIwMTldKGh0dHBzOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvZXZlbnRzL29wZW4tc291cmNlLXN1bW1pdC1qYXBhbi0yMDE5LykKLSAyMDE5LTA4LTE0IC0gW091ciBPcGVuQVBJIGpvdXJuZXkgd2l0aCBTdGFuZGFyZGl6aW5nIFNES3NdKGh0dHBzOi8vYml0bW92aW4uY29tL291ci1vcGVuYXBpLWpvdXJuZXktd2l0aC1zdGFuZGFyZGl6aW5nLXNka3MvKSBieSBbU2ViYXN0aWFuIEJ1cmdzdGFsbGVyXShodHRwczovL2JpdG1vdmluLmNvbS9hdXRob3Ivc2J1cmdzdGFsbGVyLykgYXQgW0JpdG1vdmluXShodHRwczovL3d3dy5iaXRtb3Zpbi5jb20pCi0gMjAxOS0wOC0xNSAtIFtBUEnjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJDjgZXjgZvjgZ/jgYTjgaDjgZHjgarjgolnUlBD44Gn44Gq44GP44Gm44KC44KI44GP44Gq44GEP10oaHR0cHM6Ly93d3cubTN0ZWNoLmJsb2cvZW50cnkvMjAxOS8wOC8xNS8xMTAwMDApIGJ5IFtNMywgSW5jLl0oaHR0cHM6Ly9jb3Jwb3JhdGUubTMuY29tLykKLSAyMDE5LTA4LTIyIC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOBq+OBiuOBkeOCi1dlYiBBUEnjgrnjgq3jg7zjg57jga7nrqHnkIbilIAgR3JhcGhRTOOAgWdSUEPjgIFPcGVuQVBJ44Gu54m55b6044Go5L2/44GE44Gp44GT44KNXShodHRwczovL2VtcGxveW1lbnQuZW4tamFwYW4uY29tL2VuZ2luZWVyaHViL2VudHJ5LzIwMTkvMDgvMjIvMTAzMDAwKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOC0yNCAtIFtTd2FnZ2Vy44OJ44Kt44Ol44Oh44Oz44OI44GL44KJT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgaPjgabjg6Ljg4Pjgq/jgrXjg7zjg5Djg7zkvZzmiJBdKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIvaXRlbXMvNDg0NWU0YzcxNWQwNDU4N2MxMDQpIGJ5IFvlnYLmnKzmraPnvqldKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIpCi0gMjAxOS0wOC0yOSAtIFtPcGVuQVBJ5Yid5o6iXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE0OTU5ODYpIGJ5IFtwZWFreGllXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci91c2VyLzExMTMxNTIpIGF0IFvohb7orq/kupHnpL7ljLpdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyKQotIDIwMTktMDgtMjkgLSBb5YWo6Z2i6L+b5YyW77yaS3ViZXJuZXRlcyBDUkQgMS4xNiBHQeWJjeeeu10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy9rdWJlcm5ldGVzLTEuMTYtY3JkLWdhLXByZXZpZXcvKSBieSBbTWluIEtpbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1ZTk5NDQ4ODIpIGF0IFtTZXJ2aWNlTWVzaGVyIEJsb2ddKGh0dHBzOi8vd3d3LnNlcnZpY2VtZXNoZXIuY29tL2Jsb2cvKQotIDIwMTktMDktMDEgLSBbQ3JlYXRpbmcgYSBQSFAtU2xpbSBzZXJ2ZXIgdXNpbmcgT3BlbkFQSSAoWW91dHViZSB2aWRlbyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NWNKdGJJcnNZa2cpIGJ5IFtEYW5pZWwgUGVyc3Nvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ25HLVROMjNsc3dPNlFidldoTXR4cEEpCi0gMjAxOS0wOS0wNiAtIFtWZXJ0LnggYW5kIE9wZW5BUEldKGh0dHBzOi8vd2lzc2VsLm5ldC9ibG9nLzIwMTkvMDkvdmVydHgtYW5kLW9wZW5hcGkuaHRtbCkgYnkgW1N0ZXBoYW4gSCBXaXNzZWxdKGh0dHBzOi8vdHdpdHRlci5jb20vbm90ZXNzZW5zZWkpIGF0IFt3aXNzZWwubmV0IGJsb2ddKGh0dHBzOi8vd2lzc2VsLm5ldCkKLSAyMDE5LTA5LTA5IC0gW0Nsb3VkLW5hdGl2ZSBkZXZlbG9wbWVudCAtIENyZWF0aW5nIFJFU1RmdWwgbWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9jbG91ZC5pYm0uY29tL2RvY3MvY2xvdWQtbmF0aXZlP3RvcGljPWNsb3VkLW5hdGl2ZS1yZXN0LWFwaSkgaW4gW0lCTSBDbG91ZCBEb2NzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcykKLSAyMDE5LTA5LTE0IC0gW0dlbmVyYXRpbmcgYW5kIENvbmZpZ3VyaW5nIGEgTWFzdGVyY2FyZCBBUEkgQ2xpZW50XShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uL2dlbmVyYXRpbmctYW5kLWNvbmZpZ3VyaW5nLWEtbWFzdGVyY2FyZC1hcGktY2xpZW50LykgYXQgW01hc3RlcmNhcmQgRGV2ZWxvcGVycyBQbGF0Zm9ybV0oaHR0cHM6Ly9kZXZlbG9wZXIubWFzdGVyY2FyZC5jb20vcGxhdGZvcm0vZG9jdW1lbnRhdGlvbi8pCi0gMjAxOS0wOS0xNSAtIFtPcGVuQVBJKFN3YWdnZXIp5bCO5YWl5LiL6Kq/44G5XShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYS9pdGVtcy9mMWY3YTNjMjM3NmY3Y2Q5YzU2YSkgYnkgW1Nob2ljaGkgS3VyYW9rYV0oaHR0cHM6Ly9xaWl0YS5jb20vU2hvaWNoaUt1cmFva2EpCi0gMjAxOS0wOS0xNyAtIFtUdXRvcmlhbDogRG9jdW1lbnRpbmcgaHR0cDRrIEFQSXMgd2l0aCBPcGVuQXBpM10oaHR0cHM6Ly93d3cuaHR0cDRrLm9yZy90dXRvcmlhbHMvZG9jdW1lbnRpbmdfYXBpc193aXRoX29wZW5hcGkvKSBieSBbaHR0cDRrXShodHRwczovL3d3dy5odHRwNGsub3JnLykKLSAyMDE5LTA5LTIyIC0gW09wZW5BUEkgM+OCkuWujOWFqOOBq+eQhuino+OBp+OBjeOCi+acrF0oaHR0cHM6Ly9ib290aC5wbS9qYS9pdGVtcy8xNTcxOTAyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOS0yMiAtIFtSRVNUZnVsIEFQSXM6IFR1dG9yaWFsIG9mIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaS9yZXN0ZnVsLWFwaXMtdHV0b3JpYWwtb2Ytb3BlbmFwaS1zcGVjaWZpY2F0aW9uLWVlYWRhMGUzOTAxZCkgYnkgW0FtaXIgTGF2YXNhbmldKGh0dHBzOi8vbWVkaXVtLmNvbS9AYW1pcm0ubGF2YXNhbmkpCi0gMjAxOS0wOS0yMiAtIFtSZWRlZmluaW5nIFNES3MgYXMgc29mdHdhcmUgZGl2ZXJzaXR5IGtpdHNdKGh0dHBzOi8vZGV2cmVsLm5ldC9kZXYtcmVsL3JlZGVmaW5pbmctc2Rrcy1hcy1zb2Z0d2FyZS1kaXZlcnNpdHkta2l0cykgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikgYXQgW0RldlJlbENvbiBTYW4gRnJhbmNpc2NvIDIwMTldKGh0dHBzOi8vc2YyMDE5LmRldnJlbC5uZXQvKQotIDIwMTktMDktMjMgLSBbc3dhZ2dlcuOBi+OCiU9wZW5BcGkgR2VuZXJhdG9y44GnU3ByaW5n44Gu44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9saXR0bGVGZWV0L2l0ZW1zLzQ5MmRmMmFkNjhhMDc5OWE1ZTVlKSBieSBbQGxpdHRsZUZlZXRdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQpIGF0IFtRaWl0YV0oaHR0cHM6Ly9xaWl0YS5jb20vKQotIDIwMTktMDktMjQgLSBbRWluZSBTdHVuZGUgd2FzIG1pdCBBcGkgRmlyc3QhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9KYW5XZWluc2NoZW5rZXIvZWluZS1zdHVuZGUtd2FzLW1pdC1hcGktZmlyc3QpIGJ5IFtAamFud2VpbnNjaGVua2VyXShodHRwczovL3R3aXR0ZXIuY29tL2phbndlaW5zY2hlbmtlcikgYXQgW0phdmEgRm9ydW0gTm9yZF0oaHR0cHM6Ly9qYXZhZm9ydW1ub3JkLmRlLykKLSAyMDE5LTEwLTA5IC0gW29wZW5hcGktZ2VuZXJhdG9yIOOBp+eUn+aIkOOBl+OBnyBHbyDjgq/jg6njgqTjgqLjg7Pjg4jjgacgQmVhcmVyIOiqjeiovOOCkuOBmeOCi10oaHR0cHM6Ly9hdXRvcHAtdGVjaC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzEwLzA5LzIyMjAzOSkgYnkgW0FraXJhIFRhbmltdXJhXShodHRwczovL2dpdGh1Yi5jb20vYXV0b3BwKQotIDIwMTktMTAtMTAgLSBbQXV0b21hdGljIEdlbmVyYXRpb24gb2YgUkVTVCBDbGllbnRzXShodHRwczovL3d3dy5tZWV0dXAuY29tL2ZyLUZSL0NyaXRlby1MYWJzLVRlY2gtVGFsa3MvZXZlbnRzLzI2NDc3NTc2OC8pIGJ5IFRob21hcyBQZXlyYXJkLCBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIgYXQgQ3JpdGVvIGluIFtGdWxsLVN0YWNrIFRlY2ggVGFsa3MgKE1lZXR1cCldKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykKLSAyMDE5LTEwLTEyIC0gW09wZW5BcGnoh6rliqjnlJ/miJBjbGllbnRdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC93eGlkMjc5ODIyNi9hcnRpY2xlL2RldGFpbHMvMTAyNTI3NDY3KSBieSBb6YOR5rO95rSyXShodHRwczovL21lLmNzZG4ubmV0L3d4aWQyNzk4MjI2KQotIDIwMTktMTAtMTYgLSBbSG93IHRvIHNoaXAgQVBJcyBmYXN0ZXI/XShodHRwczovL21lZGl1bS5jb20vQGFjY291bnRzXzc2MjI0L2hvdy10by1zaGlwLWFwaXMtZmFzdGVyLWNhYmVmMmY4MTllNCkgYnkgW1NpbW9uIEd1aWxsaWFtcyBAIFBvbmlDb2RlXShodHRwczovL3Bvbmljb2RlLmRldikKLSAyMDE5LTEwLTIyIC0gW09wZW5BUEkgKyBTcHJpbmcgQm9vdChLb3RsaW4p44Gn44OV44Kh44Kk44Or44OA44Km44Oz44Ot44O844OJQVBJ44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9ib3Jvbm5nby9pdGVtcy80Yjc4YjkyNTI2MjA5ZGFlYWVlOSkgYnkgW1l1a2kgRnVydWthd2FdKGh0dHBzOi8vdHdpdHRlci5jb20veXVraV9mdXJ1a2F3YTUpCi0gMjAxOS0xMC0yNCAtIFtNaWNyb3Byb2ZpbGUgT3BlbkFQSSAtIENvZGUgRmlyc3Qgb3IgRGVzaWduIEZpcnN0P10oaHR0cHM6Ly9naXRodWIuY29tL3BlLXN0L2FwaWRvY3MvYmxvYi9tYXN0ZXIvTWljcm9Qcm9maWxlLU9wZW5BUEktYWxsLXNsaWRlcy5wZGYpIGJ5IFtQZXRlciBbcMmbyoPJmV0gU3RlaW5lcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9wZXNjaGUpIGF0IFtlY2xpcHNlY29uIEV1cm9wZSAyMDE5XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE5L3Nlc3Npb25zL21pY3JvcHJvZmlsZS1vcGVuYXBpLWNvZGUtZmlyc3Qtb3ItZGVzaWduLWZpcnN0KQotIDIwMTktMTEtMDYgLSBbR2VuZXJhdGluZyBBUEkgY2xpZW50cyBiYXNlZCBvbiBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb25zXShodHRwczovLzk4ZWxlbWVudHMuY29tL2Jsb2cvZ2VuZXJhdGluZy1hcGktY2xpZW50cy1iYXNlZC1vbi1vcGVuYXBpLXYzLXNwZWNpZmljYXRpb25zKSBieSBbRG9taW5payBKYXN0cnrEmWJza2kgQCA5OGVsZW1lbnRzXShodHRwczovLzk4ZWxlbWVudHMuY29tKQotIDIwMTktMTEtMDYgLSBbT3BlbkFQSeOCkuWIqeeUqOOBl+OBpuiHquWJjeOBrkFQSeOCteODvOODkOODvChTaW5hdHJhKeOCkuenu+akjeOBl+OBn+aZguOBruODoeODol0oaHR0cHM6Ly9xaWl0YS5jb20vWWFzdWhpcm9BQkUvaXRlbXMvYzczOTIwZWFiMmQ5ZDZlOTdmZDkpIGJ5IFtZYXN1aGlybyBBQkVdKGh0dHBzOi8vdHdpdHRlci5jb20vWWFzdWhpcm9BQkUpCi0gMjAxOS0xMS0wNyAtIFtBUEkgRmlyc3QgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIC0gWW91IHNob3VsZCB5b3UgcHJhY3Rpc2UgaXQgIT9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RjlpRjNhMVo4WTgpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL3d3dy5uaWNrdmFuaG9vZi5jb20vKSBhdCBbRGV2b3h4IEJlbGdpdW0gMjAxOV0oaHR0cHM6Ly9kZXZveHguYmUvKQotIDIwMTktMTEtMDggLSBbSkhpcHN0ZXIgYmV5b25kIENSVUQgLSBBUEktRmlyc3QgZm9yIEVudGVycHJpc2VzIGJ5IEVucmljbyBDb3N0YW56aV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tMjhKRm92S1EyMCkgYnkgW0VucmljbyBDb3N0YW56aV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9lbnJpY29jb3N0YW56aSkgYXQgW0pIaXBzdGVyIENvbmYgMjAxOSBpbiBQYXJpc10oaHR0cHM6Ly9qaGlwc3Rlci1jb25mLmdpdGh1Yi5pby8pCi0gMjAxOS0xMS0xMSAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJ44Kv44Op44Kk44Ki44Oz44OIXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQvaXRlbXMvN2I3NGY3ZDNjNDM1NDVkYWRkMmIpIGJ5IFtAdW5odXJyaWVkXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQpCi0gMjAxOS0xMS0xMSAtIFtPbmUgU3BlYyB0byBSdWxlIHRoZW0gYWxsIC0gT3BlbkFQSSBpbiBBY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TU1heV9uaHQ4ZWMpIGJ5IFtBbmRyZWFzIExpdHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9saXR0bGRyKSBhdCBbY29kZS50YWxrcyAyMDE5XShodHRwczovL3d3dy5jb2RldGFsa3MuY29tLykKLSAyMDE5LTExLTEzIC0gW09wZW5BUEkgMy4wIEVkaXRvciBBbmQgR2VuZXJhdG9yIFdpdGggQSBTcHJpbmcgQm9vdCBFeGFtcGxlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBhdCBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0xMS0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciBZb3VUdWJlIHBsYXlsaXN0XShodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMdEp5SFZNZHpmRjZmQmtPVVY1VkRWRXJQMjNDR2dISXkpIGF0IFtZb3VUdWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbSkKLSAyMDE5LTExLTIwIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL25vdGkuc3QvbG9ybmFqYW5lL0h2REg3VS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaSkgYnkgW0xvcm5hIE1pdGNoZWxsXShodHRwczovL3R3aXR0ZXIuY29tL2xvcm5hamFuZSkgYXQgW0dPVE8gQ29wZW5oYWdlbiAyMDE5XShodHRwczovL2dvdG9jcGguY29tLzIwMTkvKQotIDIwMTktMTEtMjAgLSBbSG93IHRvIEdlbmVyYXRlIEFuZ3VsYXIgY29kZSBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG90bmV0dGhvdWdodHMubmV0L2hvdy10by1nZW5lcmF0ZS1hbmd1bGFyLWNvZGUtZnJvbS1vcGVuYXBpLXNwZWNpZmljYXRpb25zLykgYnkgQW51cmFqCi0gMjAxOS0xMS0yMyAtIFtTd2FnZ2VyIOOBp+OBr+OBquOBhCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIOOBq+OCiOOCiyBBUEkg44K144O844OQ44O86ZaL55m6XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC90ZWNoYmxvZ3lhaG9vL3N3YWdnZXItb3BlbmFwaS1zcGVjaWZpY2F0aW9uLTMwLWFwaSkgYnkgW1RldHN1eWEgTW9yaW1vdG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90MnkpIGF0IFtKSlVHIENDQyAyMDE5IEZhbGxdKGh0dHBzOi8vY2NjMjAxOWZhbGwuamF2YS11c2Vycy5qcC8pCi0gMjAxOS0xMS0yNCAtIFtBY2NlbGVyYXRlIEZsdXR0ZXIgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIGFuZCBEYXJ0IGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BpcmluYXNvdXRod2VsbF8yMjAvYWNjZWxlcmF0ZS1mbHV0dGVyLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1hbmQtZGFydC1jb2RlLWdlbmVyYXRpb24tMWYxNmY4MzI5YTZhKSBieSBbSXJpbmEgU291dGh3ZWxsXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMCkKLSAyMDE5LTExLTI1IC0gW29wZW5hcGktZ2VuZXJhdG9y44Gn5omL6Lu944Gr44K544K/44OW44K144O844OQ44Go44Kv44Op44Kk44Ki44Oz44OI44Gu55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9wb2Nob3BvY2hvMTMvaXRlbXMvOGRiNjYyZTE5MzRmYjJiNDA4YjgpIGJ5IFtAcG9jaG9wb2NobzEzXShodHRwczovL3R3aXR0ZXIuY29tL3BvY2hvcG9jaG8xMykKLSAyMDE5LTExLTI2IC0gW0NvcmRhQ29uIDIwMTkgSGlnaGxpZ2h0czogQnJhaWQgU2VydmVyIGFuZCBPcGVuQVBJIEdlbmVyYXRvciBmb3IgQ29yZGEgQ2xpZW50IEFQSeKAmXNdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vY29yZGFjb24tMjAxOS1oaWdobGlnaHRzLWJyYWlkLXNlcnZlci1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWNvcmRhLWZsb3dzLWFwaS1zLWQyNDE3OWNjYjI3YykgYnkgW0FkZWwgUnVzdHVtXShodHRwczovL2Jsb2cuYjlsYWIuY29tL0BhZGVscmVzdG9tKSBhdCBbQjlsYWJdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vKQotIDIwMTktMTItMDMgLSBbQSBSb2FkIHRvIExlc3MgQ29kaW5nOiBBdXRvLUdlbmVyYXRlIEFQSUxpYnJhcnldKGh0dHBzOi8vd3d3LmNvcmRhLm5ldC9ibG9nL2Etcm9hZC10by1sZXNzLWNvZGluZy1hdXRvLWdlbmVyYXRlLWFwaWxpYnJhcnkvKSBhdCBbQ29yZGEgQmxvZ10oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvKQotIDIwMTktMTItMDQgLSBbQW5ndWxhcu+8i05lc3RKU++8i09wZW5BUEnvvIhTd2FnZ2Vy77yJ44Gn44Oe44Kk44Kv44Ot44K144O844OT44K544KS6KaW6YeO44Gr5YWl44KM44Gf55Kw5aKD44KS6ICD44GI44KLXShodHRwczovL3FpaXRhLmNvbS90ZXJhY3k1NS9pdGVtcy8wMzI3YzdhMTcwZWM3NzI5NzBjNikgYnkgW+OBpuOCieOBl+ODvF0oaHR0cHM6Ly90d2l0dGVyLmNvbS90ZXJhY3k1NSkKLSAyMDE5LTEyLTA1IC0gW0NvZGUgZ2VuZXJhdGlvbiBvbiB0aGUgSmF2YSBWTV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzL2NvZGUtZ2VuZXJhdGlvbi1vbi10aGUtamF2YS12bS0yMDE5LTEyLTA1KSBieSBbU2VhbiBTdWxsaXZhbl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzKQotIDIwMTktMTItMTcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIE9BdXRoMiDjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7PnmbrooYzjga7jgrPjg7zjg4njgb7jgafnlJ/miJDjgZfjgabjgb/jgotdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8yMDE5LzEyLzE3L29wZW5hcGktZ2VuZXJhdG9yLW9hdXRoMi1hY2Nlc3N0b2tlbi8pIGJ5IFtURUNIU0NPUkVdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8pCi0gMjAxOS0xMi0yMyAtIFtVc2UgQWRhIGZvciBZb3VyIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cuZWxlY3Ryb25pY2Rlc2lnbi5jb20vdGVjaG5vbG9naWVzL2VtYmVkZGVkLXJldm9sdXRpb24vYXJ0aWNsZS8yMTExOTE3Ny91c2UtYWRhLWZvci15b3VyLXdlYi1kZXZlbG9wbWVudCkgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KQotIDIwMTktMTItMjMgLSBbT3BlbkFQSeOBruOCueOCreODvOODnuOCkuWIhuWJsuODu+ani+mAoOWMluOBl+OBpuOBhOOBj+aWueazlV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvYXJ0aWNsZXMvc3RydWN0dXJlZC1vcGVuYXBpLXNjaGVtYSkgYnkgW+Wwj+mjr+WhmumBlOS5n10oaHR0cHM6Ly9naXRodWIuY29tL3QyaDUpIGF0IFtHaUZULCBJbmNdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwLykKLSAyMDIwLTAxLTE3IC0gW09wZW5BUEkgZGVtbyBmb3IgUHVscCAzLjAgR0FdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bUZCUC1NMFpQZncmdD0xNzhzKSBieSBbUHVscF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0k0M0ZmczRWUER2N2F3WHZ2QkpmUlEpIGF0IFtZb3V0dWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbS8pCi0gMjAyMC0wMS0xOSAtIFtXaHkgZG9jdW1lbnQgYSBSRVNUIEFQSSBhcyBjb2RlP10oaHR0cHM6Ly9kZXYudG8vcm9sZnN0cmVlZmtlcmsvd2h5LWRvY3VtZW50LWEtcmVzdC1hcGktYXMtY29kZS01ZTdwKSBieSBbUm9sZiBTdHJlZWZrZXJrXShodHRwczovL2dpdGh1Yi5jb20vcnBzdHJlZWYpIGF0IFtERVYgQ29tbXVuaXR5XShodHRwczovL2Rldi50bykKLSAyMDIwLTAxLTI4IC0gW0dldCBZb3VyIFNlcnZlcmxlc3MgU3dhZ2dlciBCYWNrIHdpdGggT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyL2dldC15b3VyLXNlcnZlcmxlc3Mtc3dhZ2dlci1iYWNrLXdpdGgtb3BlbmFwaS00OGdjKSBieSBbTWF0dCBUeWxlcl0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyKQotIDIwMjAtMDEtMzAgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljgbjjga7jgrPjg7Pjg4jjg6rjg5Pjg6Xjg7zjg4hdKGh0dHBzOi8vd3d3Lnl1dGFrYTBtLndvcmsvZW50cnkvMjAyMC8wMS8zMC8xNjM5MDUpIGJ5IFt5dXRha2EwbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1dGFrYTBtKQotIDIwMjAtMDItMDEgLSBbVXNpbmcgT3BlbkFQSSB0byBNYXhpbWlzZSBZb3VyIFB1bHAgMyBFeHBlcmllbmNlXShodHRwczovL2Zvc2RlbS5vcmcvMjAyMC9zY2hlZHVsZS9ldmVudC9vcGVuYXBpLykgYnkgW0Rlbm5pcyBLbGliYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ka2xpYmFuLykgYXQgW0ZPU0RFTV0oaHR0cHM6Ly9mb3NkZW0ub3JnLykKLSAyMDIwLTAyLTA3IC0gW1doeSB5b3Ugc2hvdWxkIHVzZSBPcGVuQVBJIGZvciB5b3VyIEFQSSBkZXNpZ25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9emhiN3ZVQXBMVzgmdD05MjdzKSBieSBbTmljayBWYW4gSG9vZl0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC9zcGVha2VyL25pY2stdmFuLWhvb2YvKSBhdCBbQVBJIENvbmZlcmVuY2VdKGh0dHBzOi8vYXBpY29uZmVyZW5jZS5uZXQvKQotIDIwMjAtMDItMTcgLSBbUnVieW5ldGVzOiB1c2luZyBPcGVuQVBJIHRvIHZhbGlkYXRlIEt1YmVybmV0ZXMgY29uZmlnc10oaHR0cHM6Ly93d3cuYnJpZ2h0Ym94LmNvbS9ibG9nLzIwMjAvMDIvMTcvdXNpbmctb3BlbmFwaS10by12YWxpZGF0ZS1rdWJlcm5ldGVzLWNvbmZpZ3MvKSBieSBOZWlsIFdpbHNvbiBhdCBbQnJpZ2h0Ym94XShodHRwczovL3d3dy5icmlnaHRib3guY29tLykKLSAyMDIwLTAyLTIwIC0gW0J1aWxkaW5nIFNES3MgZm9yIHRoZSBmdXR1cmVdKGh0dHBzOi8vZGV2YmxvZy54ZXJvLmNvbS9idWlsZGluZy1zZGtzLWZvci10aGUtZnV0dXJlLWI3OWZmNzI2ZGZkNikgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikKLSAyMDIwLTAyLTI3IC0gW051eHTliKnnlKjjg5fjg63jg4Djgq/jg4jjgadJRTEx44Go5Luy6Imv44GP44GZ44KL44Gf44KB44GuRTJFXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC9lbnRyeS9lMmUtaWUxMSkgYXQgW01lZHBlZXIuY28uanAgVGVjaCBCbG9nXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC8pCi0gMjAyMC0wMi0yOSAtIFtQcm92aWRpbmcgU3VwcG9ydCB0byBJb1QgRGV2aWNlcyBEZXBsb3llZCBpbiBEaXNjb25uZWN0ZWQgUnVyYWwgRW52aXJvbm1lbnQgKENvbmZlcmVuY2UgcGFwZXIpXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzAtNDE0OTQtOF8xNCkgYnkgU2VyZ2lvIExhc28sIERhbmllbCBGbG9yZXMtTWFydMOtbiwgSnVhbiBMdWlzIEhlcnJlcmFDYXJsb3MsIENhbmFsSnVhbiBNYW51ZWwsIE11cmlsbG9KYXZpZXIgQmVycm9jYWwKLSAyMDIwLTAzLTAyIC0gW0hvdyBUbyBHZW5lcmF0ZSBBbmd1bGFyICYgU3ByaW5nIENvZGUgRnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlL2Jsb2cvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItYW5kLXNwcmluZy1jb2RlLWZyb20tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi8pIGJ5IFtNaWNoYWVsIEhvZmZtYW5uXShodHRwczovL3d3dy5tb2trYXBwcy5kZS8pCi0gMjAyMC0wMy0wMiAtIFtPcGVuQVBJIEdlbmVyYXRvciArIFR5cGVTY3JpcHQg44Gn5aeL44KB44KL6Ieq5YuV55Sf5oiQ44Gu5Z6L44Gr5a6I44KJ44KM44Gf6LGK44GL44Gq44Kv44Op44Kk44Ki44Oz44OI55Sf5rS7XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci10eXBlc2NyaXB0KSBieSBb5LqU55m+6JS1IOebtOaouV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvbWVtYmVycy9uYW9raWlvcm9pKSBhdCBbR2lGVOagquW8j+S8muekvl0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDMtMTAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgTWVldHVwICMxXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9ha2loaXRvX25ha2Fuby9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAtbnVtYmVyLTEpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3ItbWVldHVwLmNvbm5wYXNzLmNvbS9ldmVudC8xNjgxODcvKQotIDIwMjAtMDMtMTUgLSBbTG9hZCBUZXN0aW5nIFlvdXIgQVBJIHdpdGggU3dhZ2dlci9PcGVuQVBJIGFuZCBrNl0oaHR0cHM6Ly9rNi5pby9ibG9nL2xvYWQtdGVzdGluZy15b3VyLWFwaS13aXRoLXN3YWdnZXItb3BlbmFwaS1hbmQtazYpCi0gMjAyMC0wNC0xMyAtIFvkv7rnmoTjgJBPQVPjgJHjgajjga7lkJHjgY3lkIjjgYTmlrkgKOeIhumAn+OBp09wZW5BUEnjgajlj4vpgZTjgavjgarjgo3jgYYpXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDIwLzA0LzEzLzEwMDAwMCkgaW4gW09QVGltIEJsb2ddKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwLykKLSAyMDIwLTA0LTIyIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS3Jpc3RvcGhlciBTYW5kb3ZhbF0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9hdXRob3Ivc2FuZG92YWxlZmZlY3QvKSBpbiBbTm9yZGljIEFQSXNdKGh0dHBzOi8vbm9yZGljYXBpcy5jb20vKQotIDIwMjAtMDQtMjcgLSBbSG93IHdlIHVzZSBPcGVuIEFQSSB2MyBzcGVjaWZpY2F0aW9uIHRvIGF1dG8tZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24sIGNvZGUtc25pcHBldHMgYW5kIGNsaWVudHNdKGh0dHBzOi8vbWVkaXVtLmNvbS9wZGYtZ2VuZXJhdG9yLWFwaS9ob3ctd2UtdXNlLW9wZW4tYXBpLXYzLXNwZWNpZmljYXRpb24tdG8tYXV0by1nZW5lcmF0ZS1hcGktZG9jdW1lbnRhdGlvbi1jb2RlLXNuaXBwZXRzLWFuZC1jbGllbnRzLWQxMjdhM2NlYTc4NCkgYnkgW1RhbmVsIFTDpGhlcMO1bGRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AdGFuZWwudGFoZXBvbGQpCi0gMjAyMC0wNS0wOSAtIFtPcGVuQVBJ44Gn44GK5omL6Lu944Gr44Oi44OD44KvQVBJ44K144O844OQ44O844KS5YuV44GL44GZXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlL2l0ZW1zLzk3Y2E2YThkZDQ2MDU2OTVjMjVjKSBieSBbU2FjaGllIEthbWJhXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlKQotIDIwMjAtMDUtMTggLSBbU3ByaW5nIEJvb3QgUkVTVCB3aXRoIE9wZW5BUEkgM10oaHR0cHM6Ly9kZXYudG8vYWxmb256amFuZnJpdGh6L3NwcmluZy1ib290LXJlc3Qtd2l0aC1vcGVuYXBpLTMtNTlqbSkgYnkgW0FsZm9ueiBKYW4gRnJpdGh6XShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHopCi0gMjAyMC0wNS0xOSAtIFtEZWFkIFNpbXBsZSBBUElzIHdpdGggT3BlbiBBUEldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9c0lhWG1SNnhSQXcpIGJ5IFtDaHJpcyBUYW5rZXJzbGV5XShodHRwczovL2dpdGh1Yi5jb20vZHJhZ29ubWFudGFuaykgYXQgW05leG1vXShodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vKQotIDIwMjAtMDUtMjIgLSBbVHlwZVNjcmlwdCBSRVNUIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZC90eXBlc2NyaXB0LXJlc3QtYXBpLWNsaWVudC00aW4zKSBieSBbInVuaHVycmllZCJdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZCkKLSAyMDIwLTA1LTI4IC0gW+OAkOS9v+eUqCBsb3RpZnkgKyBTd2FnZ2VyIOW7uue9ruWPr+WFseeUqOeahCBMSU5FIE5vdGlmeSBib3TjgJEgLSAjTmlKaWEgQCBDaGF0Ym90IERldmVsb3BlciBUYWl3YW4g56ysICMxOSDlsI/ogZpdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YWdZVno2ZHpoMUkpIGJ5IFtDaGF0Ym90IERldmVsb3BlciBUYWl3YW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUN4ZVlVeVpObkhtcFgyM1lORi1ld3Z3KQotIDIwMjAtMDUtMjggLSBbQnVpbGRpbmcgQVBJcyB3aXRoIExhcmF2ZWwgdXNpbmcgT3BlbkFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj14ZXhMdlFxQWhpQSkgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTGFyYWNvbiBFVV0oaHR0cHM6Ly9sYXJhY29uLmV1LykKLSAyMDIwLTA2LTEyIC0gW0ludGVyb3BlcmFiaWxpdHkgYnkgY29uc3RydWN0aW9uOiBjb2RlIGdlbmVyYXRpb24gZm9yIEFycm93aGVhZCBDbGllbnRzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTI3NDc0NikgYnkgTWljaGVsZSBBbGJhbm8sIEJyaWFuIE5pZWxzZW4gYXQgWzIwMjAgSUVFRSBDb25mZXJlbmNlIG9uIEluZHVzdHJpYWwgQ3liZXJwaHlzaWNhbCBTeXN0ZW1zIChJQ1BTKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkyNzQ1NDQvcHJvY2VlZGluZykKLSAyMDIwLTA2LTIzIC0gW+aWsOimj+OCteODvOODkOODvOOCouODl+ODquOCseODvOOCt+ODp+ODs+OBq1R5cGVTY3JpcHTjgpLmjqHnlKjjgZfjgabjgb/jgZ9dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy8yMDIwMDYyMykgYXQgW0NBTSBUZWNoIEJsb2ddKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy90ZWNoLWJsb2cvKQotIDIwMjAtMDYtMjkgLSBbQXJ0aWZhY3QgQWJzdHJhY3Q6IERlcGxveW1lbnQgb2YgQVBJcyBvbiBBbmRyb2lkIE1vYmlsZSBEZXZpY2VzIGFuZCBNaWNyb2NvbnRyb2xsZXJzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1MykgYnkgW1NlcmdpbyBMYXNvIDsgTWFyaW5vIExpbmFqZSA7IEpvc2UgR2FyY2lhLUFsb25zbyA7IEp1YW4gTS4gTXVyaWxsbyA7IEphdmllciBCZXJyb2NhbF0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50LzkxMjczNTMvYXV0aG9ycyNhdXRob3JzKSBhdCBbMjAyMCBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBQZXJ2YXNpdmUgQ29tcHV0aW5nIGFuZCBDb21tdW5pY2F0aW9ucyAoUGVyQ29tKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkxMjU0NDkvcHJvY2VlZGluZykKLSAyMDIwLTA3LTA3IC0gWzUgQmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBUb29sc10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vNS1iZXN0LWFwaS1kb2N1bWVudGF0aW9uLXRvb2xzLykgYnkgU3VzYW5uYSBCb3VzZSBhdCBbRHJlYW1GYWN0b3J5IEJsb2ddKGh0dHBzOi8vYmxvZy5kcmVhbWZhY3RvcnkuY29tLykKLSAyMDIwLTA3LTEyIC0gW09wZW4gQVBJIDMuMOOBruWumue+qeOBi+OCiWdvbGFuZ+OBruOCteODvOODkOOCs+ODvOODieOBruOCueOCseODq+ODiOODs+OCkuS9nOaIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yL2l0ZW1zLzRjYmQwNGVjMDg0ZDEzMDU3YmMyKSBieSBbQHByb2Zlc3NvciAoUWlpdGEgQmxvZyldKGh0dHBzOi8vcWlpdGEuY29tL3Byb2Zlc3NvcikKLSAyMDIwLTA3LTIwIC0gW0RhdGFkb2cgQVBJIGNsaWVudCBsaWJyYXJpZXMgbm93IGF2YWlsYWJsZSBmb3IgSmF2YSBhbmQgR29dKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZy9qYXZhLWdvLWxpYnJhcmllcy8pIGJ5IEpvcmRhbiBPYmV5IGF0IFtEYXRhZG9nIEJsb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZykKLSAyMDIwLTA3LTIzIC0gW0dlbmVyYXRlIENsaWVudCBTREsgZm9yIC5ORVQgQ29yZSB1c2luZyBPcGVuIEFwaV0oaHR0cHM6Ly9kZXYudG8vbm8wbGF3MS9nZW5lcmF0ZS1jbGllbnQtc2RrLWZvci1uZXQtY29yZS11c2luZy1vcGVuLWFwaS0yZGdoKSBieSBbTnVubyBSZWlzXShodHRwczovL2Rldi50by9ubzBsYXcxKQotIDIwMjAtMDctMjYgLSBbRGFydOOBrmh0dHBfaW50ZXJjZXB0b3Ljg6njgqTjg5bjg6njg6rjgpLkvb/jgYbjgajphY3liJfjga7jgq/jgqjjg6rjg5Hjg6njg6Hjg7zjgr/jgYzmtojjgYjjgabjgZfjgb7jgYbku7bjga7lv5zmgKXlh6bnva5dKGh0dHBzOi8vcWlpdGEuY29tL2d5YW1vdG8vaXRlbXMvZWVlZmY4MWI2NzcwNDg3MzE5ZWQpIGJ5IFtAZ3lhbW90b10oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90bykKLSAyMDIwLTA4LTAxIC0gW0dlbmVyYXRlIEFuZ3VsYXIgUmVhY3RpdmVGb3JtcyBmcm9tIFN3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyL2dlbmVyYXRlLWFuZ3VsYXItcmVhY3RpdmVmb3Jtcy1mcm9tLXN3YWdnZXItb3BlbmFwaS0zNWg5KSBieSBbTWFydGluIE1jV2hvcnRlcl0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyKQotIDIwMjAtMDgtMDMgLSBbQ3JpYW5kbyBCaWJsaW90ZWNhcyBwYXJhIEFQSXMgUkVTVGZ1bCBjb20gT3BlbkFQSSwgU3dhZ2dlciBFZGl0b3IgZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BldmVyaXNCcmFzaWwvY3JpYW5kby1iaWJsaW90ZWNhcy1wYXJhLWFwaXMtcmVzdGZ1bC1jb20tb3BlbmFwaS1zd2FnZ2VyLWVkaXRvci1lLW9wZW5hcGktZ2VuZXJhdG9yLTc1MzQ5YTY0MjBmZCkgYnkgW2V2ZXJpcyBCcmFzaWwgKGFuIE5UVCBEQVRBIENvbXBhbnkpXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbCkKLSAyMDIwLTA4LTE5IC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOCkumAo+aQuuOBl+OBpuOBv+OCiOOBhl0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2FydGljbGUvMTc3MDQpIGJ5IFvlsqHkupUg6KOV55+iKOOBiuOBi+OBhCDjgobjgYbjgoQpXShodHRwczovL3RoaW5raXQuY28uanAvYXV0aG9yLzE3NTg4KSwgW+aziSDli50o44GE44Ga44G/IOOBvuOBleOCiyldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc3MDUpIGF0IFtUaGluayBJVO+8iOOCt+ODs+OCr+OCpOODg+ODiO+8iV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwLykKLSAyMDIwLTA4LTI1IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBqCBUeXBlU2NyaXB0IOOBp+Wei+WuieWFqOOBq+ODleODreODs+ODiOOCqOODs+ODiemWi+eZuuOCkuOBl+OBpuOBhOOCi+ipsV0oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvZW50cnkvMjAyMC8wOC8yNS8xMzU2MzEpIGF0IFtTbWFydEhSIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvKQotIDIwMjAtMDktMTAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgd2l0aCBJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLXdpdGgtaW5zdGFuYS8pIGJ5IFtDZWRyaWMgWmllbF0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy9hdXRob3IvY2VkcmljemllbC8pIGF0IFtJbnN0YW5hIEJsb2ddKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvKQotIDIwMjAtMDktMTcgLSBbR2VuZXJhdGUgUG93ZXJTaGVsbFNESyB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnaHVmei5sZWFybi9nZW5lcmF0ZS1wb3dlcnNoZWxsc2RrLXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLTMzYjcwMDg5MWUzMykgYnkgW0dodWZyYW4gWmFoaWRpXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuKQotIDIwMjAtMDktMjQgLSBbSG93IHRvIGF1dG9tYXRlIEFQSSBjb2RlIGdlbmVyYXRpb24gKE9wZW5BUEkvU3dhZ2dlcikgYW5kIGJvb3N0IHByb2R1Y3Rpdml0eSAtIFR1dG9yaWFsIHdpdGggUmVhY3QgTmF0aXZlIGZlYXR1cmluZyBUeXBlU2NyaXB0XShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpL2hvdy10by1hdXRvbWF0ZS1hcGktY29kZS1nZW5lcmF0aW9uLW9wZW5hcGktc3dhZ2dlci1hbmQtYm9vc3QtcHJvZHVjdGl2aXR5LTExNzZhMDA1NmQ4YSkgYnkgW1NhbmppbiBDZWxlc2tpXShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpKQotIDIwMjAtMDktMjUgLSBbR2VuZXJhdGUgT3BlbkFQSSBBbmd1bGFyIENsaWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3Vzby9nZW5lcmF0ZS1vcGVuYXBpLWFuZ3VsYXItY2xpZW50LThjOTI4OGU4YmJkNCkgYnkgW1BhdHJpY10oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3VzbykKLSAyMDIwLTEwLTI0IC0gW1dvcmtpbmcgd2l0aCBNaWNyb3NvZnQgSWRlbnRpdHkgLSBSZWFjdCBOYXRpdmUgQ2xpZW50XShodHRwczovL3d3dy5qb3NlcGhndWFkYWduby5uZXQvMjAyMC8xMC8yNC93b3JraW5nLXdpdGgtbWljcm9zb2Z0LWlkZW50aXR5LXJlYWN0LW5hdGl2ZS1jbGllbnQpIGJ5IFtKb3NlcGggR3VhZGFnbm9dKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8pCi0gMjAyMC0xMC0zMSAtIFtbQjJdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbuycvOuhnCDtg4DsnoUt7IS47J207ZSE7ZWY6rKMIEFQSSDqsJzrsJztlZjquLA6IO2drOunne2OuCBWUyDsoIjrp53tjrhdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SjRKSExFU0FpRmspIGJ5IOy1nO2DnOqxtCBhdCBbRkVDb25mIDIwMjBdKGh0dHBzOi8vMjAyMC5mZWNvbmYua3IvKQotIDIwMjAtMTEtMDUgLSBbQXV0b21hdGVkIFJFU1QtQXBpIENvZGUgR2VuZXJhdGlvbjogV2llIElULVN5c3RlbWUgbWl0ZWluYW5kZXIgc3ByZWNoZW5dKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cvYXV0b21hdGVkLXJlc3QtYXBpLWNvZGUtZ2VuZXJhdGlvbi13aWUtaXQtc3lzdGVtZS1taXRlaW5hbmRlci1zcHJlY2hlbikgYnkgU3RlZmFuIFJvdHRlbnN0ZWluZXIgYXQgW01BU1NJVkUgQVJUIEJsb2ddKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cpCi0gMjAyMC0xMi0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp0dv44GuQVBJ44K144O844OQ44O8L+OCr+ODqeOCpOOCouODs+ODiOOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vc2FraS1lbmdpbmVlcmluZy9pdGVtcy9iMjBkOGI2MDc0YzRkYTk2NjRhNSkgYnkgW0BzYWtpLWVuZ2luZWVyaW5nXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nKQotIDIwMjAtMTItMDQgLSBbU2NhbGluZyB0aGUgVGVzdCBDb3ZlcmFnZSBvZiBPcGVuQVBJIEdlbmVyYXRvciBmb3IgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03TGtlOWRIUnFUMCkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuICsgQXV0b21vdGl2ZSBMaW51eCBTdW1taXQgMjAyMF0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9hcmNoaXZlLzIwMjAvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLykgKFtTbGlkZXNdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvc2NhbGluZy10aGUtdGVzdC1jb3ZlcmFnZS1vZi1vcGVuYXBpLWdlbmVyYXRvci1mb3ItMzAtcGx1cy1wcm9ncmFtbWluZy1sYW5ndWFnZXMpKQotIDIwMjAtMTItMDkgLSBb44OX44Ot44K444Kn44Kv44OI44GrT3BlbkFQSSBHZW5lcmF0b3Ljgafoh6rli5XnlJ/miJDjgZXjgozjgZ/lnovku5jjgY1BUEkgQ2xpZW5044KS5bCO5YWl44GX44Gf6KmxXShodHRwczovL3FpaXRhLmNvbS95b3NoaWZ1amlUL2l0ZW1zLzkwNWMxODcwMGVkZTIzZjQwODQwKSBieSBbQHlvc2hpZnVqaVRdKGh0dHBzOi8vZ2l0aHViLmNvbS95b3NoaWZ1amlUKQotIDIwMjAtMTItMTUgLSBbTmV4dC5qcyArIE5lc3RKUyArIEdyYXBoUUzjgaflpInljJbjgavov73lvpPjgZnjgovjg5Xjg63jg7Pjg4jjgqjjg7Pjg4njgbgg44CcIOOCt+ODp+ODg+ODlOODs+OCsOOCr+ODvOODneODs+OBruS6i+S+i+e0ueS7i10oaHR0cHM6Ly90ZWNoYmxvZy55YWhvby5jby5qcC9lbnRyeS8yMDIwMTIxNTMwMDUyOTUyLykgYnkgW+Wwj+WAiSDpmbhdKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ3VndTkpIGF0IFtZYWhvbyEgSkFQQU4gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwLykKLSAyMDIxLTAxLTA4IC0gW0hlbGxvLCBOZXcgQVBJIOKAkyBQYXJ0IDFdKGh0dHBzOi8vd3d3Lm5naW54LmNvbS9ibG9nL2hlbGxvLW5ldy1hcGktcGFydC0xLykgYnkgW0plcmVteSBTY2h1bG1hbl0oaHR0cHM6Ly93d3cubmdpbnguY29tL3Blb3BsZS9qZXJlbXktc2NodWxtYW4vKSBhdCBbTWFqb3IgTGVhZ3VlIEJhc2ViYWxsXShodHRwczovL3d3dy5tbGIuY29tKQotIDIwMjEtMDEtMTggLSBb44CM44Ki44OX44Oq6ZaL55m644GC44KL44GC44KL44CN44KS55aR44GG44GT44Go44GL44KJ5aeL44G+44Gj44Gf44CBQVBJIENsaWVudOOCs+ODvOODieOBruiHquWLleeUn+aIkOOAkOODh+ODluOCueODiDIwMjDjgJFdKGh0dHBzOi8vY29kZXppbmUuanAvYXJ0aWNsZS9kZXRhaWwvMTM0MDY/cD0yKSBieSBbQ29kZVppbmXnt6jpm4bpg6hdKGh0dHBzOi8vY29kZXppbmUuanAvYXV0aG9yLzEpCi0gMjAyMS0wMi0wNSAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jsb2cudmlhZGVlLmRlL2VuL3Jlc3QtYXBpLXJvdW5kdHJpcCkgYnkgW0JlbmphbWluIEtsYXR0XShodHRwczovL3R3aXR0ZXIuY29tL2JlbmtsYXR0KSBhdCBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvZW4vKQotIDIwMjEtMDItMTcgLSBbUkVTVC1BUEktUm91bmR0cmlwIHdpdGggU3ByaW5nRG9jIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL25lcmQtZm9yLXRlY2gvcmVzdC1hcGktcm91bmR0cmlwLXdpdGgtc3ByaW5nZG9jLWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zMGJkMjdjY2Y2OTgpIGJ5IFtjbG91ZCBAdmlhZGVlXShodHRwczovL2Nsb3VkLXZpYWRlZS5tZWRpdW0uY29tLykKLSAyMDIxLTAzLTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOW3peWFt+eahOi6uuWdkeWwneivlV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEvYXJ0aWNsZS9kZXRhaWxzLzExNDUzMTk3NSkgYnkgW+eLrOWutumbqOWkqV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEpIGF0IFtDU0RO5a6Y5pa55Y2a5a6iXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvKQotIDIwMjEtMDMtMTYgLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE4MDI3MDQpIGJ5IFvpq5jmpbxaZWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvNTgzNjI1NSkgYXQgW+iFvuiur+S6keS4k+agj10oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvY29sdW1uKQotIDIwMjEtMDMtMjQgLSBbb3BlbmFwaS1nZW5lcmF0b3ItY2xpIOOBq+OCiOOCiyBUeXBlU2NyaXB0IOWei+Wumue+qV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZS9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGktdHMpIGJ5IFtUYWtlZnVtaSBZb3NoaWldKGh0dHBzOi8vemVubi5kZXYvdGFrZXBlcGUpCi0gMjAyMS0wMy0yOCAtIFtUcnlpbmcgb3V0IE5lc3RKUyBwYXJ0IDQ6IEdlbmVyYXRlIFR5cGVzY3JpcHQgY2xpZW50cyBmcm9tIE9wZW5BUEkgZG9jdW1lbnRzXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZS90cnlpbmctb3V0LW5lc3Rqcy1wYXJ0LTQtZ2VuZXJhdGUtdHlwZXNjcmlwdC1jbGllbnRzLWZyb20tb3BlbmFwaS1kb2N1bWVudHMtMjhtaykgYnkgW0FybmF1ZCBDb3J0aXNzZV0oaHR0cHM6Ly9kZXYudG8vYXJuYXVkY29ydGlzc2UpCi0gMjAyMS0wMy0zMSAtIFtPcGVuIEFQSSBTZXJ2ZXIgSW1wbGVtZW50YXRpb24gVXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW0JhZWxkdW5nXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vKQotIDIwMjEtMDMtMzEgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3Llr6bnj75PcGVuIEFQSSBTZXJ2ZXJdKGh0dHBzOi8vd3d3LjFqdS5vcmcvYXJ0aWNsZS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW+WEhOiBmue2sl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy8pCi0gMjAyMS0wNC0xOSAtIFtJbnRyb2R1Y2luZyBUd2lsaW/igJlzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBCZXRhXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvaW50cm9kdWNpbmctdHdpbGlvLW9wZW4tYXBpLXNwZWNpZmljYXRpb24tYmV0YSkgYnkgW0dBUkVUSCBQQVVMIEpPTkVTXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvYXV0aG9yL2dwaikgYXQgW1R3aWxpbyBCbG9nXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cpCi0gMjAyMS0wNC0yMiAtIFtMZXZlcmFnaW5nIE9wZW5BcGkgc3RyZW5ndGhzIGluIGEgTWljcm8tU2VydmljZSBlbnZpcm9ubWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZy9sZXZlcmFnaW5nLW9wZW5hcGktc3RyZW5ndGhzLWluLWEtbWljcm8tc2VydmljZS1lbnZpcm9ubWVudC0zZDdmOWU3YzI2ZmYpIGJ5IE5pY29sYXMgSmVsbGFiIGF0IFtVbmlidWRkeSBUZWNobm9sb2d5IEJsb2ddKGh0dHBzOi8vbWVkaXVtLmNvbS91bmlidWRkeS10ZWNobm9sb2d5LWJsb2cpCi0gMjAyMS0wNC0yNyAtIFtGcm9tIHplcm8gdG8gcHVibGlzaGluZyBQb3dlclNoZWxsIEFQSSBjbGllbnRzIGluIFBvd2VyU2hlbGwgR2FsbGVyeSB3aXRoaW4gbWludXRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9mcm9tLXplcm8tdG8tcHVibGlzaGluZy1wb3dlcnNoZWxsLWFwaS1jbGllbnRzLWluLXBvd2Vyc2hlbGwtZ2FsbGVyeS13aXRoaW4tbWludXRlcykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbUG93ZXJTaGVsbCArIERldk9wcyBHbG9iYWwgU3VtbWl0IDIwMjFdKGh0dHBzOi8vZXZlbnRzLmRldm9wc2NvbGxlY3RpdmUub3JnL2V2ZW50L3Bvd2Vyc2hlbGwtZGV2b3BzLWdsb2JhbC1zdW1taXQtMjAyMS8pCi0gMjAyMS0wNS0zMSAtIFtGbHV0dGVy44GnT3BlbiBBcGkgR2VuZXJhdG9yKFN3YWdnZXIp44KS5L2/44GGXShodHRwczovL2Fha2lyYS5hcHAvYmxvZy8yMDIxLzA1L2ZsdXR0ZXItb3Blbi1hcGkvKSBieSBbQUFraXJhXShodHRwczovL3R3aXR0ZXIuY29tL19hX2FraXJhKQotIDIwMjEtMDYtMjIgLSBbUmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBhbmQgQ2xpZW50IEdlbmVyYXRpb24gV2l0aCBPcGVuQVBJXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yZXN0LWFwaS1kb2N1bWVudGF0aW9uLWFuZC1jbGllbnQtZ2VuZXJhdGlvbi13aXRoKSBieSBbUHJhc2FudGggR3VsbGFwYWxsaV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvMTAxMTc5Ny9wcmFzYW50aG5hdGguZ0BnbWFpbC5jb20uaHRtbCkKLSAyMDIxLTA3LTE2IC0gW+mKgOihjOS6i+alreOBruOCteODvOODkOODvOOCteOCpOODiemWi+eZuuOBq+OBpOOBhOOBpiAvIExJTkUg5Lqs6YO96ZaL55m65a6kIOOCqOODs+OCuOODi+OCouaOoeeUqOiqrOaYjuS8ml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZcnJLUUh4TFBwUSkgYnkg6YeO55Sw6Kqg5Lq6LCBSb2JlcnQgTWl0Y2hlbGwKLSAyMDIxLTA3LTE5IC0gW09wZW5BUEkgY29kZSBnZW5lcmF0aW9uIHdpdGgga290bGluXShodHRwczovL3N5bGhhcmUuZ2l0aHViLmlvLzIwMjEvMDcvMTkvT3BlbmFwaS1zd2FnZ2VyLWNvZGVnZW4td2l0aC1rb3RsaW4uaHRtbCkgYnkgW3N5bGhhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zeWxoYXJlKQotIDIwMjEtMDctMjkgLSBbSG93IFRvIFJld3JpdGUgYSBIdWdlIENvZGViYXNlXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9ob3ctdG8tcmV3cml0ZS1hLWh1Z2UtY29kZS1iYXNlKSBieSBbQ3VydGlzIFBvZV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvNDU2NTQ0Ni9wdWJsaXVzb3ZpZGl1cy5odG1sKQotIDIwMjEtMDgtMjEgLSBbR2VuZXJhdGluZyBDbGllbnQgQVBJcyB1c2luZyBTd2FnZ2VyIFBhcnQgMV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQvZ2VuZXJhdGluZy1jbGllbnQtYXBpcy11c2luZy1zd2FnZ2VyLXBhcnQtMS0yZDQ2ZjEzZjVlOTIpIGJ5IFtGbG93U3F1YWQuaW9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AZmxvd3NxdWFkKQotIDIwMjEtMDktMTEgLSBbSW52b2tpbmcgQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkgYXQgW0FXUyBQYXJhbGxlbENsdXN0ZXIgQVBJIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkKLSAyMDIxLTA5LTIwIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gVGhlIEJhYmVsIEZpc2ggb2YgdGhlIEFQSSBXb3JsZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zMnpNdHdkNWtsZykgYnkgW0NsaWZmYW5vIFN1YmFnaW8gKFByaW5jaXBhbCBFbmdpbmVlciBhdCBTaGluZSBTb2x1dGlvbnMpXShodHRwczovL2dpdGh1Yi5jb20vY2xpZmZhbm8pIGF0IFtBcGlkYXlzIExJVkUgQXVzdHJhbGlhIDIwMjFdKGh0dHBzOi8vd3d3LmFwaWRheXMuZ2xvYmFsL2F1c3RyYWxpYTIwMjEvKQotIDIwMjEtMTAtMDIgLSBbSG93IHRvIFdyaXRlIEZld2VyIExpbmVzIG9mIENvZGUgd2l0aCB0aGUgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vaG93LXRvLXdyaXRlLWZld2VyLWxpbmVzLW9mLWNvZGUtd2l0aC10aGUtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtNaWtoYWlsIEFsZmFdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vdS9hbHBoYW1pa2xlKQotIDIwMjEtMTAtMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgOiA0MDAwIMOpdG9pbGVzIHN1ciBHaXRIdWIgZXQgZGVzIHNwYWdoZXR0aXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OWhFc05CU3FURmspIGJ5IFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBhdCBbRGV2b3h4IEZSIDIwMjFdKGh0dHBzOi8vY2ZwLmRldm94eC5mci8yMDIxL3NwZWFrZXIvamVyZW1pZV9icmVzc29uKQotIDIwMjEtMTAtMTcgLSBbR2VuZXJhdGUgYSBUeXBlU2NyaXB0IEhUVFAgQ2xpZW50IEZyb20gQW4gT3BlbkFQSSBTcGVjIEluIERvdE5FVCA1XShodHRwczovL3JpY2hhcmR3aWxsaXMuaW5mby9ibG9nL2dlbmVyYXRlLWEtdHlwZS1zY3JpcHQtaHR0cC1jbGllbnQtZnJvbS1hbi1vcGVuLWFwaS1zcGVjLWluLWRvdC1uZXQtNSkgYnkgW1JpY2hhcmQgV2lsbGlzXShodHRwczovL2dpdGh1Yi5jb20vYmFkc3ludGF4KQotIDIwMjEtMTEtMDYgLSBb44K544K/44O844OI44Ki44OD44OX44Gu6ZaL55m644Gn5oSP6K2Y44GX44Gf44GT44GoXShodHRwczovL3plbm4uZGV2L3dvb19ub28vYXJ0aWNsZXMvNWNiMDlmOGUyODk5YWU3ODJhZDEpIGJ5IFt3b28tbm9vXShodHRwczovL3plbm4uZGV2L3dvb19ub28pCi0gMjAyMS0xMS0wOSAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9lZmZlY3RpdmUtc29mdHdhcmUtZGV2ZWxvcG1lbnQtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IEFqaWwgT29tbWUKLSAyMDIxLTEyLTA3IC0gW0FuIEludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL2JldHRlcnByb2dyYW1taW5nLnB1Yi80LXVzZS1jYXNlcy1vZi1vcGVuYXBpLXdoaWNoLWFyZS1nb29kLXRvLWtub3ctMWEwNDFmNGFkNzFlKSBieSBbTmEnYW1hbiBIaXJzY2hmZWxkXShodHRwczovL25hYW1hbmhpcnNjaGZlbGQubWVkaXVtLmNvbS8pCi0gMjAyMi0wMS0wMiAtIFtUb3dhcmRzIGEgc2VjdXJlIEFQSSBjbGllbnQgZ2VuZXJhdG9yIGZvciBJb1QgZGV2aWNlc10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMDEuMDAyNzApIGJ5IEFuZGVycyBBYWVuIFNwcmluZ2JvcmcsIE1hcnRpbiBLYWxkYWhsIEFuZGVyc2VuLCBLYWFyZSBIb2xsYW5kIEhhdHRlbCwgTWljaGVsZSBBbGJhbm8KLSAyMDIyLTAyLTAyIC0gW1VzZSBPcGVuQXBpIGdlbmVyYXRvciB0byBzaGFyZSB5b3VyIG1vZGVscyBiZXR3ZWVuIEZsdXR0ZXIgYW5kIHlvdXIgYmFja2VuZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1rUFc3Y2N1OVl2aykgYnkgW0d1aWxsYXVtZSBCZXJub3NdKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vc3BlYWtlcnMvZ3VpbGxhdW1lX2Jlcm5vcykgYXQgW0ZsdXR0ZXIgVmlraW5ncyBDb25mZXJlbmNlIDIwMjIgKEh5YnJpZCldKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vKQotIDIwMjItMDMtMTUgLSBbT3BlbkFQSSBTcGVj44Gn44OP44Kk44OV44Oz5Yy65YiH44KK44GuRW51beWApOOCkk9wZW5BUEkgR2VuZXJhdG9y44Gn5Ye65Yqb44GZ44KL44Go44CB44OP44Kk44OV44Oz5Yy65YiH44KK44Gu44G+44G+5Ye65Yqb44GV44KM44KLXShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210L2l0ZW1zLzgyNGQ3NGQ0ODg5MDU1YWIzN2Q4KSBieSBbeXVqaTM4a3dtdF0oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdCkKLSAyMDIyLTA0LTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44Kz44O844OJ55Sf5oiQ44GoU3ByaW5nIEZyYW1ld29ya+OBruOCq+OCueOCv+ODoOODh+ODvOOCv+ODkOOCpOODs+ODh+OCo+ODs+OCsOOCkuWFseWtmOOBleOBm+OCi10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9jb2V4aXN0ZW5jZS1vZi1vcGVuYXBpLWFuZC1zcHJpbmcpIGluIFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMi0wNC0wNiAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZW4gKFNlbmlvciBGbHV0dGVyIERldmVsb3BlcikKLSAyMDIyLTA1LTEzIC0gW0EgUGF0aCBGcm9tIGFuIEFQSSBUbyBDbGllbnQgTGlicmFyaWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVhDOG9Wbl9lZlR3KSBieSBbRmlsaXAgU3JuZWNdKGh0dHBzOi8vd3d3LmRldm94eC5jby51ay90YWxrLz9pZD0xMTIxMSkgYXQgSW5mb2JpcAotIDIwMjItMDYtMDEgLSBbQVBJIEZpcnN0LCB1c2luZyBPcGVuQVBJIGFuZCBTcHJpbmcgQm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL3hnZWVrcy9hcGktZmlyc3QtdXNpbmctb3BlbmFwaS1hbmQtc3ByaW5nLWJvb3QtMjYwMmMwNGJiMGQzKSBieSBbTWljYWVsIEVzdHLDoXp1bGFzIFZpYW5uYV0oaHR0cHM6Ly9lc3RyYXp1bGFzLm1lZGl1bS5jb20vKQotIDIwMjItMDYtMTIgLSBbTXVzdGFjaGUgdGVtcGxhdGVzIHdpdGggT3BlbkFQSSBzcGVjc10oaHR0cHM6Ly9tZWRpdW0uY29tL2dlZWtjdWx0dXJlL211c3RhY2hlLXRlbXBsYXRlcy13aXRoLW9wZW5hcGktc3BlY3MtZjI0NzExYzY3ZGVjKSBieSBbQmVwcGUgQ2F0YW5lc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9nY2F0YW5lc2UpCi0gMjAyMi0wNy0wMSAtIFtHZW5lcmF0ZSBBUEkgY29udHJhY3QgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2luXShodHRwczovL2h1b25nZGFuamF2YS5jb20vZ2VuZXJhdGUtYXBpLWNvbnRyYWN0LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbi5odG1sKSBieSBbS2hhbmggTmd1eWVuXShodHRwczovL2h1b25nZGFuamF2YS5jb20vKQotIDIwMjItMDctMjIgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2lu5byA5Y+RYXBp5LyY5YWI55qEamF2YeWuouaIt+err+WSjOacjeWKoeerr+S7o+eggV0oaHR0cHM6Ly9ibG9nLnJvY2Nvc2hpLnRvcC8yMDIyL2phdmEvb3BlbmFwaS1nZW5lcmF0b3IlRTclOUElODQlRTQlQkQlQkYlRTclOTQlQTgvKSBieSBbTGluY2VzdF0oaHR0cHM6Ly9naXRodWIuY29tL0xpbmNlc3QpCi0gMjAyMi0wOC0wMSAtIFtUdXRvcmlhbDogRXRzeSBPcGVuIEFQSSB2MyAocnVieSldKGh0dHBzOi8vYmxvZy50am95YWwuZGV2L2V0c3ktb3Blbi1hcGktdjMvKSBieSBbVGhpZXJyeSBKb3lhbF0oaHR0cHM6Ly9naXRodWIuY29tL3Rqb3lhbCkKLSAyMDIyLTA5LTAzIC0gW09wZW5BUEkgR2VuZXJhdG9yIEZvciBHbyBXZWIgRGV2ZWxvcG1lbnRdKGh0dHBzOi8vYmxvZy5rZXZpbmh1Lm1lLzIwMjIvMDkvMDMvMDMtb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS2V2aW4gSHVdKGh0dHBzOi8vdHdpdHRlci5jb20vT2xkZ3VuaXgpCi0gMjAyMi0xMC0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOCkuOCq+OCueOCv+ODnuOCpOOCuuOBl+OBn+OCs+ODvOODieOCkueUn+aIkOOBmeOCi++8iFN3YWdnZXIgQ29kZWdlbuOBqOOBu+OBvOWQjOOBmO+8iV0oaHR0cHM6Ly9uYWluYWlzdGFyLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMjIvMTAvMDMvMTIwMDAwKSBieSBb44GN44KK5Li4XShodHRwczovL3R3aXR0ZXIuY29tL25haW5haXN0YXIpCi0gMjAyMi0xMC0yMSAtIFtLb3RsaW7vvIhTcHJpbmcgQm9vdO+8ieOBriBBUEkg44KSIE9wZW5BUEkgR2VuZXJhdG9yIOOBp+iHquWLleeUn+aIkF0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20vYXJ0aWNsZXMvMjAyMjEwMjEta290bGluLXNwcmluZy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW21za3NnbV0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20pCi0gMjAyMi0xMC0yNiAtIFtRdWFya3VzIEluc2lnaHRzICMxMDY6IFF1YXJraXZlcnNlIEV4dGVuc2lvbiBTcG90bGlnaHQ6IE9wZW5BcGkgR2VuZXJhdG9yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PV9zX2lmNjl0MmlRKSBieSBbUXVhcmt1c2lvXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jL1F1YXJrdXNpbykKLSAyMDIyLTExLTI4IC0gW1RoZSBSRVNUIEFQSSBpbXBsZW1lbnRhdGlvbiBmbG93XShodHRwczovL3Rtc3ZyLmNvbS9vcGVuYXBpLWNvZGUtZ2VuZXJhdGlvbi1mb3ItcmVzdC1hcGlzLykgYnkgW0ltcmUgVMO2bcO2c3bDoXJpXShodHRwczovL3Rtc3ZyLmNvbS9hdXRob3IvaW1yZS8pCi0gMjAyMi0xMi0xMyAtIFtBUEktRmlyc3Qgd2l0aCBTcHJpbmcgV2ViRmx1eCBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYm9vdHRlY2hub2xvZ2llcy1jaS5tZWRpdW0uY29tL2FwaS1maXJzdC13aXRoLXNwcmluZy13ZWJmbHV4LWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zOGI3ODA0YzRlZDQpIGJ5IFtFcmljIEFuaWNldF0oaHR0cHM6Ly9ib290dGVjaG5vbG9naWVzLWNpLm1lZGl1bS5jb20vKQotIDIwMjMtMDEtMDYgLSBbTWFqb3IgSW1wcm92ZW1lbnRzIHdpdGggSGVsaWRvbiBhbmQgT3BlbkFQSV0oaHR0cHM6Ly9tZWRpdW0uY29tL2hlbGlkb24vbWFqb3ItaW1wcm92ZW1lbnRzLXdpdGgtaGVsaWRvbi1hbmQtb3BlbmFwaS1mNzZhMDk1MTUwOGUpIGJ5IFtUaW0gUXVpbm5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AdHF1aW5ubzYwMCkKLSAyMDIzLTAyLTAyIC0gW1JlcGxhY2luZyBQb3N0bWFuIHdpdGggdGhlIEpldGJyYWlucyBIVFRQIENsaWVudF0oaHR0cHM6Ly9sZW5ncmFuZC5mci9yZXBsYWNpbmctcG9zdG1hbi1pbi1zZWNvbmRzLXdpdGgtdGhlLWpldGJyYWlucy1odHRwLWNsaWVudC8pIGJ5IFtqdWxpZW4gTGVuZ3JhbmQtTGFtYmVydF0oaHR0cHM6Ly9naXRodWIuY29tL2psZW5ncmFuZCkKLSAyMDIzLTAzLTE1IC0gW09wZW5BUEkgR2VuZXJhdG9y44Gr6YGp44GX44GfT3BlbkFQSeOBruabuOOBjeaWuV0oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9ob3ctdG8td3JpdGUtb3BlbmFwaS1mb3Itb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMy0wMy0xOSAtIFtFWE9HRU06IEV4dGVuZGluZyBPcGVuQVBJIEdlbmVyYXRvciBmb3IgTW9uaXRvcmluZyBvZiBSRVNUZnVsIEFQSXNdKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMS0yNjUwNy01XzEwKSBieSBEYW5pZWwgRnJpaXMgSG9sdGVibywgSmFubmlrIEx1Y2FzIFNvbW1lciwgTWFnbnVzIE3DuGxnYWFyZCBMdW5kLCBBbGVzc2FuZHJvIFRpYm8sIEp1bmlvciBEb25nbyAmIE1pY2hlbGUgQWxiYW5vIGF0ICJJQ1NPQyAyMDIyOiBTZXJ2aWNlLU9yaWVudGVkIENvbXB1dGluZyDigJMgSUNTT0MgMjAyMiBXb3Jrc2hvcHMiCi0gMjAyMy0wMy0yOCAtIFtBUEktRmlyc3QgRGVzaWduIHdpdGggT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9wdWxzZS9hcGktZmlyc3QtZGVzaWduLW9wZW5hcGktZ2VuZXJhdG9yLWpvbmF0aGFuLW1hbmVyYS8pIGJ5IFtKb25hdGhhbiBNYW5lcmFdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9tYW5lcmFqb25hLykKLSAyMDIzLTAzLTI4IC0gW+ODj+ODs+OCuuOCquODs+OBp+WtpuOBtuOCteODvOODkOODvOOCteOCpOODiSBLb3RsaW7vvIhTcHJpbmcgQm9vdCZBcnJvdyZPcGVuQVBJIEdlbmVyYXRvcu+8iXYxLjAuMV0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20vYm9va3MvaW1wbGVtZW50aW5nLXNlcnZlci1zaWRlLWtvdGxpbi1kZXZlbG9wbWVudCkgYnkgW21za10oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20pCi0gMjAyMy0wNC0wMSAtIFtPcGVuQVBJIENsaWVudCBDb2RlIEdlbmVyYXRpb25dKGh0dHBzOi8vdGVzdGluZ2Jvc3MuY29tL2Jsb2cvb3BlbmFwaS1jbGllbnQtZ2VuZXJhdGlvbi8pIGJ5IEt3byBEaW5nCi0gMjAyMy0wNC0yNyAtIFtDcmVhdGUgYW4gQW5ndWxhciBDbGllbnQgdXNpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9uc10oQ3JlYXRlIGFuIEFuZ3VsYXIgQ2xpZW50IHVzaW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMpIGJ5IFtQYXRyaWNdKGh0dHBzOi8vcGd1c28ubWVkaXVtLmNvbS8pCi0gMjAyMy0wNS0xNiAtIFtBZHllbiBmb3IgSmF2YSBkZXZlbG9wZXJzXShodHRwczovL3d3dy5hZHllbi5jb20vYmxvZy9hZHllbi1qYXZhLWxpYnJhcnkpIGJ5IFtCZXBwZSBDYXRhbmVzZSwgRGV2ZWxvcGVyIEFkdm9jYXRlLCBBZHllbl0oaHR0cHM6Ly9naXRodWIuY29tL2djYXRhbmVzZSkKLSAyMDIzLTA1LTE4IC0gW+WmguS9leWfuuS6jiBTd2FnZ2VyIOS9v+eUqCBPcGVuQVBJIEdlbmVyYXRvciDnlJ/miJAgSk1ldGVyIOiEmuacrO+8n10oaHR0cHM6Ly9ibG9nLjUxY3RvLmNvbS91XzE1MTgxNTcyLzYyOTQ5NzQpIGJ5IFvpq5jmpbzvvIhaZWUpXShodHRwczovL2Jsb2cuNTFjdG8uY29tL3VfMTUxODE1NzIpCi0gMjAyMy0wNi0yOCAtIFtHZW5lcmF0ZSBBUEkgY29udHJhY3QgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2luXShodHRwczovL2h1b25nZGFuamF2YS5jb20vZ2VuZXJhdGUtYXBpLWNvbnRyYWN0LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbi5odG1sKSBieSBbS2hhbmggTmd1eWVuXShodHRwczovL2h1b25nZGFuamF2YS5jb20vKQotIDIwMjMtMDYtMzAgLSBbR2VuZXJhdGUgQ2xpZW50IFNES3Mgd2l0aCBPcGVuQXBpIEdlbmVyYXRvciBpbiBTcHJpbmdib290XShodHRwczovL21lZGl1bS5jb20vQHJhbWF2YXRodmluYXlhay9nZW5lcmF0ZS1jbGllbnQtc2Rrcy13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWluLXNwcmluZ2Jvb3QtZjlmMDEyZTczYzBiKSBieSBbVmluYXlhayBSYW1hdmF0aF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYW1hdmF0aHZpbmF5YWspCgojIyBbNiAtIEFib3V0IFVzXSgjdGFibGUtb2YtY29udGVudHMpCgpXaGF0J3MgdGhlIGRlc2lnbiBwaGlsb3NvcGh5IG9yIHByaW5jaXBsZSBiZWhpbmQgT3BlbkFQSSBHZW5lcmF0b3I/CgpXZSBmb2N1cyBvbiBkZXZlbG9wZXIgZXhwZXJpZW5jZS4gVGhlIGdlbmVyYXRvcnMgc2hvdWxkIHByb2R1Y2UgY29kZSwgY29uZmlnLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZSB0aGF0IGFyZSBlYXNpbHkgdW5kZXJzdGFuZGFibGUgYW5kIGNvbnN1bWFibGUgYnkgdXNlcnMuIFdlIGZvY3VzZWQgb24gc2ltcGxlIHVzZSBjYXNlcyB0byBzdGFydCB3aXRoIChib3R0b20tdXAgYXBwcm9hY2gpLiBTaW5jZSB0aGVuIHRoZSBwcm9qZWN0IGFuZCB0aGUgY29tbXVuaXR5IGhhdmUgZ3Jvd24gYSBsb3Q6IDMwMGsgd2Vla2x5IGRvd25sb2FkcyB2aWEgTlBNIENMSSB3cmFwcGVyLCAyME0gZG93bmxvYWRzIHZpYSBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZG9ja2VyIGltYWdlIGp1c3QgdG8gaGlnaGxpZ2h0IGEgZmV3LiBXZSd2ZSBncmFkdWFsbHkgc3VwcG9ydGVkIG1vcmUgZmVhdHVyZXMgKGUuZy4gb25lT2YsIGFueU9mIGludHJvZHVjZWQgaW4gT3BlbkFQSSAzLjApIGluIHZhcmlvdXMgZ2VuZXJhdG9ycyBhbmQgd2Ugd2lsbCBjb250aW51ZSB0aGlzIGFwcHJvYWNoIHRvIGRlbGl2ZXIgc29tZXRoaW5nIGJhc2VkIG9uIG91ciB1bmRlcnN0YW5kaW5nIG9mIHVzZXIgZGVtYW5kIGFuZCB3aGF0IHRoZXkgd2FudCwgYW5kIGNvbnRpbnVlIHRvIGFkZCBzdXBwb3J0IG9mIG5ldyBmZWF0dXJlcyBpbnRyb2R1Y2VkIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAoc3VjaCBhcyB2My4xIGFuZCBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbikuCgojIyMgWzYuMSAtIE9wZW5BUEkgR2VuZXJhdG9yIENvcmUgVGVhbV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKT3BlbkFQSSBHZW5lcmF0b3IgY29yZSB0ZWFtIG1lbWJlcnMgYXJlIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBiZWVuIG1ha2luZyBzaWduaWZpY2FudCBjb250cmlidXRpb25zIChyZXZpZXcgaXNzdWVzLCBmaXggYnVncywgbWFrZSBlbmhhbmNlbWVudHMsIGV0YykgdG8gdGhlIHByb2plY3Qgb24gYSByZWd1bGFyIGJhc2lzLgoKIyMjIyBDb3JlIFRlYW0gTWVtYmVycwoqIFtAd2luZzMyOF0oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpICgyMDE1LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKKiBbQGppbXNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpICgyMDE2LzA1KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiogW0BjYm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkgKDIwMTYvMDUpCiogW0BqbWluaV0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSAoMjAxOC8wNCkgIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKKiBbQGV0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpICgyMDE5LzA2KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgVGVtcGxhdGUgQ3JlYXRvcgoKKipOT1RFKio6IEVtYmVkZGVkIHRlbXBsYXRlcyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gX011c3RhY2hlXyBmb3JtYXQuIFN1cHBvcnQgZm9yIGFsbCBvdGhlciBmb3JtYXRzIGlzIGV4cGVyaW1lbnRhbCBhbmQgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHRpbWUuCgpIZXJlIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBjcmVhdG9yczoKICogQVBJIENsaWVudHM6CiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBBcGV4OiBAYXNuZWxsaW5nCiAgICogQmFzaDogQGJrcnl6YQogICAqIEM6IEBQb3dlck9mQ3JlYXRpb24gQHpoZW1hbnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3poZW1hbnQpCiAgICogQysrIFJFU1Q6IEBEYW5pZWxrdTE1CiAgICogQysrIFRpbnk6IEBBbmRlcnNTcHJpbmdib3JnIEBrYWFyZUhIIEBtaWNoZWxlYWxiYW5vIEBta2FrYmFzCiAgICogQysrIFVFNDogQEthaG5jb2RlCiAgICogQyMgKC5ORVQgMi4wKTogQHdobwogICAqIEMjICguTkVUIFN0YW5kYXJkIDEuMyApOiBAR3JvbnNhawogICAqIEMjICguTkVUIDQuNSByZWZhY3RvcmVkKTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyAoR2VuZXJpY0hvc3QpOiBAZGV2aGwtbGFicwogICAqIEMjIChIdHRwQ2xpZW50KTogQEJsYWNrY2xhd3MKICAgKiBDbG9qdXJlOiBAeGhoCiAgICogQ3J5c3RhbDogQHdpbmczMjgKICAgKiBEYXJ0OiBAeWlzc2FjaGFyCiAgICogRGFydCAocmVmYWN0b3IpOiBAam9lcm5haHJlbnMKICAgKiBEYXJ0IDI6IEBzd2lwZXNpZ2h0CiAgICogRGFydCAoSmFndWFyKTogQGphdW1hcmQKICAgKiBEYXJ0IChEaW8pOiBAam9zaC1idXJ0b24KICAgKiBFbGl4aXI6IEBuaWt1CiAgICogRWxtOiBAZXJpa3RpbQogICAqIEVpZmZlbDogQGp2ZWxpbGxhCiAgICogRXJsYW5nOiBAdHNsb3VnaHRlcgogICAqIEVybGFuZyAoUHJvcEVyKTogQGpmYWNvcnJvIEByb2JlcnRvYWxvaQogICAqIEdyb292eTogQHZpY3RvcmdpdAogICAqIEdvOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBHbyAocmV3cml0dGVuIGluIDIuMy4wKTogQGFudGloYXgKICAgKiBIYXNrZWxsIChodHRwLWNsaWVudCk6IEBqb25zY2hvbmluZwogICAqIEphdmEgKEZlaWduKTogQGRhdmlka2lzcwogICAqIEphdmEgKFJldHJvZml0KTogQDBsZWdnCiAgICogSmF2YSAoUmV0cm9maXQyKTogQGVtaWxpYW5vYm9uYXNzaQogICAqIEphdmEgKEplcnNleTIpOiBAeGhoCiAgICogSmF2YSAob2todHRwLWdzb24pOiBAeGhoCiAgICogSmF2YSAoUmVzdFRlbXBsYXRlKTogQG5icnVubwogICAqIEphdmEgKFNwcmluZyA1IFdlYkNsaWVudCk6IEBkYW9ub21pYwogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhIChKYXZhIDExIE5hdGl2ZSBIVFRQIGNsaWVudCk6IEBiYmRvdWdsYXMKICAgKiBKYXZhIChBcGFjaGUgSHR0cENsaWVudCA1LngpOiBAaGFycnl3aGl0ZTQgQGFuZHJldmVnYXMKICAgKiBKYXZhIChIZWxpZG9uKTogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YVNjcmlwdCAoQXBvbGxvIERhdGFTb3VyY2UpOiBAZXJpdGhtZXRpYwogICAqIEphdmFTY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSmF2YVNjcmlwdCAoRmxvdyB0eXBlcykgQGpheXBlYQogICAqIEpldGJyYWlucyBIVFRQIENsaWVudCA6IEBqbGVuZ3JhbmQKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoTXVsdGlQbGF0Zm9ybSk6IEBhbmRyZXdlbWVyeQogICAqIEtvdGxpbiAoVm9sbGV5KTogQGFsaXN0ZXJzCiAgICogS290bGluIChqdm0tc3ByaW5nLXdlYmNsaWVudCk6IEBzdGVmYW5rb3BwaWVyCiAgICogS290bGluIChqdm0tc3ByaW5nLXJlc3RjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogTjRKUzogQG1tZXdzLW40CiAgICogTmltOiBAaG9rYW1vdG8KICAgKiBPQ2FtbDogQGNnZW5zb3VsCiAgICogUGVybDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQSFAgKHdpdGggRGF0YSBUcmFuc2Zlcik6IEBBcnRpY3VzCiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUG93ZXJTaGVsbCAocmVmYWN0b3JlZCBpbiA1LjAuMCk6IEB3aW5nMzI4CiAgICogUHl0aG9uOiBAc3BhY2V0aGVyIFs6aGVhcnQ6XVtzcGFjZXRoZXIgc3BvbnNvcnNoaXBdCiAgICogUHl0aG9uLUV4cGVyaW1lbnRhbDogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbiAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEB3aW5nMzI4CiAgICogUjogQHJhbW5vdgogICAqIFJ1YnkgKEZhcmFkYXkpOiBAbWVnYW5lbXVyYSBAZGtsaWJhbgogICAqIFJ1YnkgKEhUVFBYKTogQGhvbmV5cnlkZXJjaHVjawogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU2NhbGEgKEFra2EpOiBAY2NoYWZlcgogICAqIFNjYWxhIChzdHRwKTogQGNoYW1lbGVvbjgyCiAgICogU2NhbGEgKHN0dHA0KTogQGZsc2g4NgogICAqIFNjYWxhIChQZWtrbyk6IEBtaWNrYWVsbWFnbmllegogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogU3dpZnQgNTogQDRicnVudQogICAqIFN3aWZ0IENvbWJpbmU6IEBkeWR1czB4MTQKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMSk6IEBtaGFyZG9yZgogICAqIFR5cGVTY3JpcHQgKEFuZ3VsYXIyKTogQHJvbmktZnJhbnRjaGkKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNik6IEBha2VoaXIKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNyk6IEB0b3BjZQogICAqIFR5cGVTY3JpcHQgKEF4aW9zKTogQG5pY29rb2VuaWcKICAgKiBUeXBlU2NyaXB0IChGZXRjaCk6IEBsZW9ueXUKICAgKiBUeXBlU2NyaXB0IChJbnZlcnNpZnkpOiBAZ3VhbHRpZXJpbQogICAqIFR5cGVTY3JpcHQgKGpRdWVyeSk6IEBiaGVyaWxhCiAgICogVHlwZVNjcmlwdCAoTmVzdGpzKTogQHZmcmFuazY2CiAgICogVHlwZVNjcmlwdCAoTm9kZSk6ICBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChSeGpzKTogQGRlbnlvCiAgICogVHlwZVNjcmlwdCAocmVkdXgtcXVlcnkpOiBAcGV0ZWpvaGFuc29ueG8KICAgKiBYb2pvOiBAVG9waGVlZQogICAqIFphcGllcjogQHZhbG1veiwgQGVtYWpvCiAqIFNlcnZlciBTdHVicwogICAqIEFkYTogQHN0Y2FycmV6CiAgICogQyMgQVNQLk5FVCA1OiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIEFTUC5ORVQgQ29yZSAzLjA6IEBBLUpvc2hpCiAgICogQyMgQVBTLk5FVCBDb3JlIDMuMTogQHBoYXRjaGVyCiAgICogQyMgQXp1cmUgZnVuY3Rpb25zOiBAQWJyaG03Nzg2CiAgICogQyMgTmFuY3lGWDogQG1zdGVmYW5pdWsKICAgKiBDKysgKFF0NSBRSHR0cEVuZ2luZSk6IEBldGhlcmVhbGpveQogICAqIEMrKyBQaXN0YWNoZTogQHNlYnltaWFubwogICAqIEMrKyBSZXN0YmVkOiBAc3RrcndvcmsKICAgKiBFcmxhbmcgU2VydmVyOiBAZ2FsYXhpZQogICAqIEYjIChHaXJhZmZlKSBTZXJ2ZXI6IEBubWZpc2hlcgogICAqIEdvIFNlcnZlcjogQGd1b2h1YW5nCiAgICogR28gU2VydmVyIChyZWZhY3RvcmVkIGluIDcuMC4wKTogQGx3ajUKICAgKiBHbyAoRWNobykgU2VydmVyOiBAcGg0cjVoNGQKICAgKiBHbyAoR2luKSBTZXJ2ZXI6IEBrZW1va2VtbwogICAqIEdyYXBoUUwgRXhwcmVzcyBTZXJ2ZXI6IEByZW5lcGFyZG9uCiAgICogSGFza2VsbCBTZXJ2YW50OiBAYWxnYXMKICAgKiBIYXNrZWxsIFllc29kOiBAeW90c3V5YQogICAqIEphdmEgQ2FtZWw6IEBjYXJuZXZhbGVnaWFjb21vCiAgICogSmF2YSBNU0Y0SjogQHNhbmplZXdhLW1hbGFsZ29kYQogICAqIEphdmEgU3ByaW5nIEJvb3Q6IEBkaXlmcgogICAqIEphdmEgVW5kZXJ0b3c6IEBzdGV2ZWh1CiAgICogSmF2YSBQbGF5IEZyYW1ld29yazogQEpGQ290ZQogICAqIEphdmEgUEtNU1Q6IEBhbnNodTIxODUgQHNhbnNodW1hbiBAcmt1bWFyLXBrIEBuaW5vZHBpbGxhaQogICAqIEphdmEgVmVydC54OiBAbHdsZWUyNjA4CiAgICogSmF2YSBNaWNyb25hdXQ6IEBhbmRyaXktZG15dHJ1awogICAqIEphdmEgSGVsaWRvbjogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEpBWC1SUyBSZXN0RWFzeTogQGNoYW1lbGVvbjgyCiAgICogSkFYLVJTIENYRjogQGhpdmVzaGlwCiAgICogSkFYLVJTIENYRiAoQ0RJKTogQG5pY2tjbWF5bmFyZAogICAqIEpBWC1SUyBSZXN0RWFzeSAoSkJvc3MgRUFQKTogQGpmaWFsYQogICAqIEp1bGlhOiBAdGFubWF5a20KICAgKiBLb3RsaW46IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogS290bGluIChTcHJpbmcgQm9vdCk6IEBkcjRrZTYxNgogICAqIEtvdGxpbiAoVmVydHgpOiBAV29veW1lCiAgICogS290bGluIChKQVgtUlMpOiBAYW50dGlsZXBwYQogICAqIE5vZGVKUyBFeHByZXNzOiBAWWlzaFRpc2gKICAgKiBQSFAgTGFyYXZlbDogQHJlbmVwYXJkb24KICAgKiBQSFAgTHVtZW46IEBhYmNzdW4KICAgKiBQSFAgTWV6emlvICh3aXRoIFBhdGggSGFuZGxlcik6IEBBcnRpY3VzCiAgICogUEhQIFNsaW06IEBqZmFzdG5hY2h0CiAgICogUEhQIFNsaW00OiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUEhQIFN5bWZvbnk6IEBrc20yCiAgICogUEhQIFN5bWZvbnk2OiBAQmVuamFtaW5IYWUKICAgKiBQeXRob24gRmFzdEFQSTogQGtyamFrYnJqYWsKICAgKiBQeXRob24gQUlPSFRUUDoKICAgKiBSdWJ5IG9uIFJhaWxzIDU6IEB6bHgKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgQWtrYTogQEJvdWlsbGllCiAgICogU2NhbGEgRmluY2g6IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogU2NhbGEgTGFnb206IEBnbWt1bWFyMjAwNQogICAqIFNjYWxhIFBsYXk6IEBhZGlnZXJiZXIKICogRG9jdW1lbnRhdGlvbgogICAqIEFzY2lpRG9jOiBAbWFuLWF0LWhvbWUKICAgKiBIVE1MIERvYyAyOiBAamhpdGNoY29jawogICAqIENvbmZsdWVuY2UgV2lraTogQGpoaXRjaGNvY2sKICAgKiBQbGFudFVNTDogQHBidXJscwogKiBDb25maWd1cmF0aW9uCiAgICogQXBhY2hlMjogQHN0a3J3b3JrCiAgICogazY6IEBtb3N0YWZhCiAqIFNjaGVtYQogICAqIEF2cm86IEBzZ2Fkb3VhcgogICAqIEdyYXBoUUw6IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEt0b3JtOiBATHVpei1Nb25hZAogICAqIE15U1FMOiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUHJvdG9jb2wgQnVmZmVyOiBAd2luZzMyOAogICAqIFdTREwgQGFkZXNzb0RwZAoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgSG93IHRvIGpvaW4gdGhlIGNvcmUgdGVhbQoKSGVyZSBhcmUgdGhlIHJlcXVpcmVtZW50cyB0byBiZWNvbWUgYSBjb3JlIHRlYW0gbWVtYmVyOgotIHJhbmsgd2l0aGluIHRvcCA1MCBpbiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2dyYXBocy9jb250cmlidXRvcnMKICAtIHRvIGNvbnRyaWJ1dGUsIGhlcmUgYXJlIHNvbWUgZ29vZCBbc3RhcnRpbmcgcG9pbnRzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpCi0gcmVndWxhciBjb250cmlidXRpb25zIHRvIHRoZSBwcm9qZWN0CiAgLSBhYm91dCAzIGhvdXJzIHBlciB3ZWVrCiAgLSBmb3IgY29udHJpYnV0aW9uLCBpdCBjYW4gYmUgYWRkcmVzc2luZyBpc3N1ZXMsIHJldmlld2luZyBQUnMgc3VibWl0dGVkIGJ5IG90aGVycywgc3VibWl0dGluZyBQUiB0byBmaXggYnVncyBvciBtYWtlIGVuaGFuY2VtZW50cywgZXRjCiAgLSBtdXN0IGJlIGFjdGl2ZSBpbiB0aGUgcGFzdCAzIG1vbnRocyBhdCB0aGUgdGltZSBvZiBhcHBsaWNhdGlvbgoKIFRvIGpvaW4gdGhlIGNvcmUgdGVhbSwgcGxlYXNlIHJlYWNoIG91dCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogVG8gYmVjb21lIGEgVGVtcGxhdGUgQ3JlYXRvciwgc2ltcGx5IHN1Ym1pdCBhIFBSIGZvciBuZXcgQVBJIGNsaWVudCAoZS5nLiBSdXN0LCBFbGl4aXIpIG9yIHNlcnZlciBzdHViIChlLmcuIFJ1YnkgR3JhcGUpIGdlbmVyYXRvci4KCiMjIyBbNi4yIC0gT3BlbkFQSSBHZW5lcmF0b3IgVGVjaG5pY2FsIENvbW1pdHRlZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKTWVtYmVycyBvZiB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdGVjaG5pY2FsIGNvbW1pdHRlZSBzaG91bGRlciB0aGUgZm9sbG93aW5nIHJlc3BvbnNpYmlsaXRpZXM6CgotIFByb3ZpZGVzIGd1aWRhbmNlIGFuZCBkaXJlY3Rpb24gdG8gb3RoZXIgdXNlcnMKLSBSZXZpZXdzIHB1bGwgcmVxdWVzdHMgYW5kIGlzc3VlcwotIEltcHJvdmVzIHRoZSBnZW5lcmF0b3IgYnkgbWFraW5nIGVuaGFuY2VtZW50cywgZml4aW5nIGJ1Z3Mgb3IgdXBkYXRpbmcgZG9jdW1lbnRhdGlvbnMKLSBTZXRzIHRoZSB0ZWNobmljYWwgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmF0b3IKCldobyBpcyBlbGlnaWJsZT8gVGhvc2Ugd2hvIHdhbnQgdG8gam9pbiBtdXN0IGhhdmUgYXQgbGVhc3QgMyBQUnMgbWVyZ2VkIGludG8gYSBnZW5lcmF0b3IuIChFeGNlcHRpb25zIGNhbiBiZSBncmFudGVkIHRvIHRlbXBsYXRlIGNyZWF0b3JzIG9yIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBtYWRlIGEgbG90IG9mIGNvZGUgY2hhbmdlcyB3aXRoIGxlc3MgdGhhbiAzIG1lcmdlZCBQUnMpCgpJZiB5b3Ugd2FudCB0byBqb2luIHRoZSBjb21taXR0ZWUsIHBsZWFzZSBraW5kbHkgYXBwbHkgYnkgc2VuZGluZyBhbiBlbWFpbCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgd2l0aCB5b3VyIEdpdGh1YiBJRC4KCiMjIyMgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlCgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgQWN0aW9uU2NyaXB0ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFkYSAgICAgICAgICAgICAgICAgICB8IEBzdGNhcnJleiAoMjAxOC8wMikgQG1pY2hlbGVhbGJhbm8gKDIwMTgvMDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBbmRyb2lkICAgICAgICAgICAgICAgfCBAamF6LWFoICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQXBleCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEJhc2ggICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAYmtyeXphICgyMDE3LzA4KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDICAgICAgICAgICAgICAgICAgICAgfCBAemhlbWFudCAoMjAxOC8xMSkgQGl0eXVodWkgKDIwMTkvMTIpIEBtaWNoZWxlYWxiYW5vICgyMDIwLzAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQysrICAgICAgICAgICAgICAgICAgIHwgQHJhdmluaWthbSAoMjAxNy8wNykgQHN0a3J3b3JrICgyMDE3LzA3KSBAZXRoZXJlYWxqb3kgKDIwMTgvMDIpIEBtYXJ0aW5kZWxpbGxlICgyMDE4LzAzKSBAbXV0dGxleXhkICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMjICAgICAgICAgICAgICAgICAgICB8IEBtYW5kcmVhbiAoMjAxNy8wOCkgQHNoaWJheWFuICgyMDIwLzAyKSBAQmxhY2tjbGF3cyAoMjAyMS8wMykgQGx1Y2FtYXp6YW50aSAoMjAyMS8wNSkgQGlCaWNoYSAoMjAyMy8wNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ2xvanVyZSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IENyeXN0YWwgICAgICAgICAgICAgICB8IEBjeWFuZ2xlICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYXJ0ICAgICAgICAgICAgICAgICAgfCBAamF1bWFyZCAoMjAxOC8wOSkgQGpvc2gtYnVydG9uICgyMDE5LzEyKSBAYW1vbmRuZXQgKDIwMTkvMTIpIEBzYnUtV0JUICgyMDIwLzEyKSBAa3VobnJveWFsICgyMDIwLzEyKSBAYWdpbG9iICgyMDIwLzEyKSBAYWhtZWRuZndlbGEgKDIwMjEvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWlmZmVsICAgICAgICAgICAgICAgIHwgQGp2ZWxpbGxhICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsaXhpciAgICAgICAgICAgICAgICB8IEBtcm1zdG4gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFbG0gICAgICAgICAgICAgICAgICAgfCBAZXJpa3RpbSAoMjAxOC8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRXJsYW5nICAgICAgICAgICAgICAgIHwgQHRzbG91Z2h0ZXIgKDIwMTcvMTEpIEBqZmFjb3JybyAoMjAxOC8xMCkgQHJvYmVydG9hbG9pICgyMDE4LzEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEYjICAgICAgICAgICAgICAgICAgICB8IEBubWZpc2hlciAoMjAxOS8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHbyAgICAgICAgICAgICAgICAgICAgfCBAYW50aWhheCAoMjAxNy8xMSkgQGdyb2tpZnkgKDIwMTgvMDcpIEBrZW1va2VtbyAoMjAxOC8wOSkgQGppcmlrdW5jYXIgKDIwMjEvMDEpIEBwaDRyNWg0ZCAoMjAyMS8wNCkgQGx3ajUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyYXBoUUwgICAgICAgICAgICAgICB8IEByZW5lcGFyZG9uICgyMDE4LzEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcm9vdnkgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSGFza2VsbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEphdmEgICAgICAgICAgICAgICAgICB8IEBiYmRvdWdsYXMgKDIwMTcvMDcpIEBzcmVlc2hhcyAoMjAxNy8wOCkgQGpmaWFsYSAoMjAxNy8wOCkgQGx1a295YW5vdiAoMjAxNy8wOSkgQGNib3JuZXQgKDIwMTcvMDkpIEBqZWZmOWZpbmdlciAoMjAxOC8wMSkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGx3bGVlMjYwOCAoMjAxOS8xMCkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSBTcHJpbmcgICAgICAgICAgIHwgQGNhY2hlc2NydWJiZXIgKDIwMjIvMDIpIEB3ZWxzaG0gKDIwMjIvMDIpIEBNZWxsZUQgKDIwMjIvMDIpIEBhdGV4dG9yICgyMDIyLzAyKSBAbWFuZWRldjc5ICgyMDIyLzAyKSBAamF2aXNzdCAoMjAyMi8wMikgQGJvcnNjaCAoMjAyMi8wMikgQGJhbmxldmVudGUgKDIwMjIvMDIpIEBab216b2cgKDIwMjIvMDkpIEBtYXJ0aW4tbWZnICgyMDIzLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKTWV0ZXIgICAgICAgICAgICAgICAgfCBAa2Fubmt5byAoMjAyMS8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmV0YnJhaW5zIEhUVFAgQ2xpZW50IHwgQGpsZW5ncmFuZCAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEp1bGlhICAgICAgICAgICAgICAgICB8IEB0YW5tYXlrbSAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBLb3RsaW4gICAgICAgICAgICAgICAgfCBAamltc2NodWJlcnQgKDIwMTcvMDkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCksIEBkcjRrZTYxNiAoMjAxOC8wOCkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGFuZHJld2VtZXJ5ICgyMDE5LzEwKSBANGJydW51ICgyMDE5LzExKSBAeXV0YWthMG0gKDIwMjAvMDMpIEBzdGVmYW5rb3BwaWVyICgyMDIyLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1YSAgICAgICAgICAgICAgICAgICB8IEBkYXVybmltYXRvciAoMjAxNy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBONEpTICAgICAgICAgICAgICAgICAgfCBAbW1ld3MtbjQgKDIwMjMvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTmltICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE5vZGVKUy9KYXZhc2NyaXB0ICAgICB8IEBDb2RlTmluamFpICgyMDE3LzA3KSBAZnJvbCAoMjAxNy8wNykgQGNsaWZmYW5vICgyMDE3LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPYmpDICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgT0NhbWwgICAgICAgICAgICAgICAgIHwgQGNnZW5zb3VsICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBlcmwgICAgICAgICAgICAgICAgICB8IEB3aW5nMzI4ICgyMDE3LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkgQHl1ZTk5NDQ4ODIgKDIwMTkvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQSFAgICAgICAgICAgICAgICAgICAgfCBAamViZW50aWVyICgyMDE3LzA3KSwgQGRrYXJsb3ZpICgyMDE3LzA3KSwgQG1hbmRyZWFuICgyMDE3LzA4KSwgQGpmYXN0bmFjaHQgKDIwMTcvMDkpLCBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pICgyMDE4LzA3KSwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUG93ZXJTaGVsbCAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMjAvMDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFB5dGhvbiAgICAgICAgICAgICAgICB8IEBjYm9ybmV0ICgyMDE3LzA5KSBAdG9tcGx1cyAoMjAxOC8xMCkgQGtyamFrYnJqYWsgKDIwMjMvMDIpIEBmYTAzMTEgKDIwMjMvMTApIEBtdWx0YW5pICgyMDIzLzEwKSB8CnwgUiAgICAgICAgICAgICAgICAgICAgIHwgQFJhbWFudGggKDIwMTkvMDcpIEBzYWlnaXJpZGhhcjIxICgyMDE5LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1YnkgICAgICAgICAgICAgICAgICB8IEBjbGlmZmFubyAoMjAxNy8wNykgQHpseCAoMjAxNy8wOSkgQGF1dG9wcCAoMjAxOS8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBSdXN0ICAgICAgICAgICAgICAgICAgfCBAZnJvbCAoMjAxNy8wNykgQGZhcmNhbGxlciAoMjAxNy8wOCkgQHJpY2hhcmR3aGl1ayAoMjAxOS8wNykgQHBhbGFkaW56aCAoMjAyMC8wNSkgQGphY29iLXBybyAoMjAyMi8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2NhbGEgICAgICAgICAgICAgICAgIHwgQGNsYXNuYWtlICgyMDE3LzA3KSwgQGppbXNjaHViZXJ0ICgyMDE3LzA5KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpLCBAc2hpamlua3VpICAoMjAxOC8wMSksIEByYW16aW1hYWxlaiAoMjAxOC8wMyksIEBjaGFtZWxlb244MiAoMjAyMC8wMyksIEBCb3VpbGxpZSAoMjAyMC8wNCkgQGZpc2g4NiAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3dpZnQgICAgICAgICAgICAgICAgIHwgQGpnYXZyaXMgKDIwMTcvMDcpIEBlaHljaGUgKDIwMTcvMDgpIEBFZHViaXRzICgyMDE3LzA5KSBAamF6LWFoICgyMDE3LzA5KSBANGJydW51ICgyMDE5LzExKSBAZHlkdXMweDE0ICgyMDIzLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFR5cGVTY3JpcHQgICAgICAgICAgICB8IEBUaUZ1ICgyMDE3LzA3KSBAdGF4cG9uICgyMDE3LzA3KSBAc2ViYXN0aWFuaGFhcyAoMjAxNy8wNykgQGtlbmlzdGV3YXJkICgyMDE3LzA3KSBAVnJvbGlqa3ggKDIwMTcvMDkpIEBtYWNqb2hubnkgKDIwMTgvMDEpIEB0b3BjZSAoMjAxOC8xMCkgQGFrZWhpciAoMjAxOS8wNykgQHBldGVqb2hhbnNvbnhvICgyMDE5LzExKSBAYW1ha2hyb3YgKDIwMjAvMDIpIEBkYXZpZGdhbWVybyAoMjAyMi8wMykgQG1rdXNha2EgKDIwMjIvMDQpIHwKfCBYb2pvICAgICAgICAgICAgICAgICAgfCBAVG9waGVlZSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKUGFzdCBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWU6CnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgICAgICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFB5dGhvbiAgICAgICAgICAgIHwgQHRheHBvbiAoMjAxNy8wNykgQGZyb2wgKDIwMTcvMDcpIEBtYm9obG9vbCAoMjAxNy8wNykgQGNib3JuZXQgKDIwMTcvMDkpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSkgQHRvbXBsdXMgKDIwMTgvMTApIEBhcnVuLW5hbGxhICgyMDE5LzExKSAgfAoKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMgWzYuMyAtIEhpc3Rvcnkgb2YgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCk9wZW5BUEkgR2VuZXJhdG9yIGlzIGEgZm9yayBvZiBbU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKS4gSW4gdmlldyBvZiB0aGUgaXNzdWVzIHdpdGggdGhlIFN3YWdnZXIgQ29kZWdlbiAzLjAuMCAoYmV0YSkgcmVsZWFzZSBhbmQgdGhlIGRpc2FncmVlbWVudCBvbiB0aGUgcHJvamVjdCdzIGRpcmVjdGlvbiwgbW9yZSB0aGFuIDQwIHRvcCBjb250cmlidXRvcnMgYW5kIHRlbXBsYXRlIGNyZWF0b3JzIG9mIFN3YWdnZXIgQ29kZWdlbiBkZWNpZGVkIHRvIGZvcmsgU3dhZ2dlciBDb2RlZ2VuIGFuZCBtYWludGFpbiBhIGNvbW11bml0eS1kcml2ZW4gdmVyc2lvbiBjYWxsZWQgIk9wZW5BUEkgR2VuZXJhdG9yIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbUSZBXShkb2NzL3FuYS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIEZvdW5kaW5nIE1lbWJlcnMgKGFscGhhYmV0aWNhbCBvcmRlcik6CgotIFtBa2loaXRvIE5ha2Fub10oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSBbQXJ0ZW0gT2NoZXJlZGtvXShodHRwczovL2dpdGh1Yi5jb20vZ2FsYXhpZSkKLSBbQXJ0aHVyIE1vZ2xpZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcnRpY3VzKQotIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gW0JlbiBXZWxsc10oaHR0cHM6Ly9naXRodWIuY29tL2J2d2VsbHMpCi0gW0JlbmphbWluIEdpbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iamdpbGwpCi0gW0NocmlzdG9waGUgQm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkKLSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmYW5vKQotIFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gW0RhbmllbF0oaHR0cHM6Ly9naXRodWIuY29tL0RhbmllbGt1MTUpCi0gW0VtaWxpYW5vIEJvbmFzc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbWlsaWFub2JvbmFzc2kpCi0gW0VyaWsgVGltbWVyc10oaHR0cHM6Ly9naXRodWIuY29tL2VyaWt0aW0pCi0gW0VzdGViYW4gR2VocmluZ10oaHR0cHM6Ly9naXRodWIuY29tL21hY2pvaG5ueSkKLSBbR3VzdGF2byBQYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndXN0YXZvYXBheikKLSBbSmF2aWVyIFZlbGlsbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmVsaWxsYSkKLSBbSmVhbi1GcmFuw6dvaXMgQ8O0dMOpXShodHRwczovL2dpdGh1Yi5jb20vSkZDb3RlKQotIFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkKLSBbSm9uIFNjaG9uaW5nXShodHRwczovL2dpdGh1Yi5jb20vam9uc2Nob25pbmcpCi0gW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKLSBbSsO2cm4gQWhyZW5zXShodHRwczovL2dpdGh1Yi5jb20vamF5ZWFybikKLSBbS2VuaSBTdGV3YXJkXShodHRwczovL2dpdGh1Yi5jb20va2VuaXN0ZXdhcmQpCi0gW01hcmNpbiBTdGVmYW5pdWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlZmFuaXVrKQotIFtNYXJ0aW4gRGVsaWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbkRlbGlsbGUpCi0gW01hc2FoaXJvIFlhbWF1Y2hpXShodHRwczovL2dpdGh1Yi5jb20vYWxnYXMpCi0gW01pY2hlbGUgQWxiYW5vXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWFsYmFubykKLSBbUmFtemkgTWFhbGVqXShodHRwczovL2dpdGh1Yi5jb20vcmFtemltYWFsZWopCi0gW1JhdmluZHJhIE5pa2FtXShodHRwczovL2dpdGh1Yi5jb20vcmF2aW5pa2FtKQotIFtSaWNhcmRvIENhcmRvbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaWNhcmRvbmEpCi0gW1NlYmFzdGlhbiBIYWFzXShodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuaGFhcykKLSBbU2ViYXN0aWFuIE1hbmRyZWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFuZHJlYW4pCi0gW1NyZWVuaWRoaSBTcmVlc2hhXShodHRwczovL2dpdGh1Yi5jb20vc3JlZXNoYXMpCi0gW1N0ZWZhbiBLcmlzbWFubl0oaHR0cHM6Ly9naXRodWIuY29tL3N0a3J3b3JrKQotIFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSBbVGFrdXJvIFdhZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCi0gW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cykKLSBbVHJpc3RhbiBTbG91Z2h0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90c2xvdWdodGVyKQotIFtWaWN0b3IgT3Jsb3Zza3ldKGh0dHBzOi8vZ2l0aHViLmNvbS92aWNsb3Zza3kpCi0gW1ZpY3RvciBUcmFraHRlbmJlcmddKGh0dHBzOi8vZ2l0aHViLmNvbS92aWN0b3JnaXQpCi0gW1ZsYWQgRnJvbG92XShodHRwczovL2dpdGh1Yi5jb20vZnJvbCkKLSBbVmxhZGltaXIgUG91emFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXJjYWxsZXIpCi0gW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KQotIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3VzZXIvb3ZlcnZpZXc/dT0xNjQzNTM4NSkKLSBbWHUgSHVpIEh1aV0oaHR0cHM6Ly9naXRodWIuY29tL3hoaCkKLSBbYW50aWhheF0oaHR0cHM6Ly9naXRodWIuY29tL2FudGloYXgpCi0gW2JlYXRjcmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYmVhdGNyYWNrZXIpCi0gW2RhdXJuaW1hdG9yXShodHRwczovZ2l0aHViLmNvbS9kYXVybmltYXRvcikKLSBbZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkKLSBbamZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKQotIFtsdWtveWFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtveWFub3YpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMgWzcgLSBMaWNlbnNlXSgjdGFibGUtb2YtY29udGVudHMpCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE4IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycyAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQpDb3B5cmlnaHQgMjAxOCBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgotLS0K
- readmeEtag: '"02488410df70175924b83b8ee3710cc96f07058d5ca6f7b6cd5fe42ed3b7c752"'
- readmeLastModified: Wed, 27 Dec 2023 07:11:16 GMT
+ PGgxIGFsaWduPSJjZW50ZXIiPk9wZW5BUEkgR2VuZXJhdG9yPC9oMT4KCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKWyFbU3RhYmxlIHJlbGVhc2VzIGluIE1hdmVuIENlbnRyYWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbWF2ZW4tbWV0YWRhdGEvdi9odHRwcy9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWF2ZW4tbWV0YWRhdGEueG1sLnN2ZyldKGh0dHA6Ly9zZWFyY2gubWF2ZW4ub3JnLyNzZWFyY2glN0NnYXYlN0MxJTdDZyUzQSUyMm9yZy5vcGVuYXBpdG9vbHMlMjIlMjBBTkQlMjBhJTNBJTIyb3BlbmFwaS1nZW5lcmF0b3IlMjIpClshW0FwYWNoZSAyLjAgTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MaWNlbnNlLUFwYWNoZSUyMDIuMC1vcmFuZ2UpXSguL0xJQ0VOU0UpClshW09wZW4gQ29sbGVjdGl2ZSBiYWNrZXJzXShodHRwczovL2ltZy5zaGllbGRzLmlvL29wZW5jb2xsZWN0aXZlL2JhY2tlcnMvb3BlbmFwaV9nZW5lcmF0b3I/Y29sb3I9b3JhbmdlJmxhYmVsPU9wZW5Db2xsZWN0aXZlJTIwQmFja2VycyldKGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL29wZW5hcGlfZ2VuZXJhdG9yKQpbIVtKb2luIHRoZSBTbGFjayBjaGF0IHJvb21dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvU2xhY2stSm9pbiUyMHRoZSUyMGNoYXQlMjByb29tLW9yYW5nZSldKGh0dHBzOi8vam9pbi5zbGFjay5jb20vdC9vcGVuYXBpLWdlbmVyYXRvci9zaGFyZWRfaW52aXRlL3p0LTEyanh4ZDdwMi1YVWVRTX40cHpzVTl4fmVHTFFxWDJnKQpbIVtGb2xsb3cgT3BlbkFQSSBHZW5lcmF0b3IgVHdpdHRlciBhY2NvdW50IHRvIGdldCB0aGUgbGF0ZXN0IHVwZGF0ZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90d2l0dGVyL2ZvbGxvdy9vYXNfZ2VuZXJhdG9yLnN2Zz9zdHlsZT1zb2NpYWwmbGFiZWw9Rm9sbG93KV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vYXNfZ2VuZXJhdG9yKQpbIVtDb250cmlidXRlIHdpdGggR2l0cG9kXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0NvbnRyaWJ1dGUlMjB3aXRoLUdpdHBvZC05MDhhODU/bG9nbz1naXRwb2QpXShodHRwczovL2dpdHBvZC5pby8jaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKWyFbQ29uYW4gQ2VudGVyXShodHRwczovL3NoaWVsZHMuaW8vY29uYW4vdi9vcGVuYXBpLWdlbmVyYXRvcildKGh0dHBzOi8vY29uYW4uaW8vY2VudGVyL3JlY2lwZXMvb3BlbmFwaS1nZW5lcmF0b3IpClshW1JldnZlZCB1cCBieSBEZXZlbG9jaXR5XShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1JldnZlZCUyMHVwJTIwYnktRGV2ZWxvY2l0eS0wNkEwQ0U/bG9nbz1HcmFkbGUmbGFiZWxDb2xvcj0wMjMwM0EpXShodHRwczovL2dlLm9wZW5hcGktZ2VuZXJhdG9yLnRlY2gvc2NhbnMpCjwvZGl2PgoKPGRpdiBhbGlnbj0iY2VudGVyIj4KCltNYXN0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIpIChgNy4zLjBgKToKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2FwaS50cmF2aXMtY2kuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/YnJhbmNoPW1hc3RlciZzdGF0dXM9cGFzc2VkKV0oaHR0cHM6Ly9hcHAudHJhdmlzLWNpLmNvbS9naXRodWIvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2J1aWxkcykKWyFbSW50ZWdyYXRpb24gVGVzdDJdKGh0dHBzOi8vY2lyY2xlY2kuY29tL2doL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci5zdmc/c3R5bGU9c2hpZWxkKV0oaHR0cHM6Ly9jaXJjbGVjaS5jb20vZ2gvT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yKQpbIVtXaW5kb3dzIFRlc3RdKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9zdGF0dXMvZ2l0aHViL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcj9icmFuY2g9bWFzdGVyJnN2Zz10cnVlJnBhc3NpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyME9LJmZhaWxpbmdUZXh0PVdpbmRvd3MlMjBUZXN0JTIwLSUyMEZhaWxzKV0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9XaWxsaWFtQ2hlbmcvb3BlbmFwaS1nZW5lcmF0b3IpClshW0JpdHJpc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYml0cmlzZS80YTJiMTBhODE5ZDEyYjY3L21hc3Rlcj9sYWJlbD1iaXRyaXNlJTNBJTIwU3dpZnQrNCw1JnRva2VuPTg1OUZNRFI4UUh3YWJDend2Wks2dlEpXShodHRwczovL2FwcC5iaXRyaXNlLmlvL2FwcC80YTJiMTBhODE5ZDEyYjY3KQoKPC9kaXY+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgoKOnN0YXI6OnN0YXI6OnN0YXI6IElmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIHBsZWFzZSByZWZlciB0byBbZ3VpZGVsaW5lc10oQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLiA6c3Rhcjo6c3Rhcjo6c3RhcjoKCjpiYW5nYmFuZzogVG8gbWlncmF0ZSBmcm9tIFN3YWdnZXIgQ29kZWdlbiB0byBPcGVuQVBJIEdlbmVyYXRvciwgcGxlYXNlIHJlZmVyIHRvIHRoZSBbbWlncmF0aW9uIGd1aWRlXShkb2NzL21pZ3JhdGlvbi1mcm9tLXN3YWdnZXItY29kZWdlbi5tZCkgOmJhbmdiYW5nOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bS5jby9vcGVuYXBpX2dlbmVyYXRvcl9lYm9vaykgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBiZWdpbm5lcnMgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSSBzcGVjLCB0ZW1wbGF0ZXMgb3IgYW55IGlucHV0IChlLmcuIG9wdGlvbnMsIGVudmlyb25tZW50IHZhcmlhYmxlcykgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlIG9yIGVudmlyb25tZW50LCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGVzZSBpbnB1dHMgYmVmb3JlIHVzaW5nIE9wZW5BUEkgR2VuZXJhdG9yIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIHRvIGF2b2lkIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMgKGUuZy4gW2NvZGUgaW5qZWN0aW9uXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db2RlX2luamVjdGlvbikpLiBGb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzLCBwbGVhc2UgY29udGFjdCBbdGVhbUBvcGVuYXBpdG9vbHMub3JnXShtYWlsdG86dGVhbUBvcGVuYXBpdG9vbHMub3JnKS4gOndhcm5pbmc6Cgo6YmFuZ2Jhbmc6IEJvdGggIk9wZW5BUEkgVG9vbHMiIChodHRwczovL09wZW5BUElUb29scy5vcmcgLSB0aGUgcGFyZW50IG9yZ2FuaXphdGlvbiBvZiBPcGVuQVBJIEdlbmVyYXRvcikgYW5kICJPcGVuQVBJIEdlbmVyYXRvciIgYXJlIG5vdCBhZmZpbGlhdGVkIHdpdGggT3BlbkFQSSBJbml0aWF0aXZlIChPQUkpIDpiYW5nYmFuZzoKCjwvZGl2PgoKIyMgU3BvbnNvcnMKCklmIHlvdSBmaW5kIE9wZW5BUEkgR2VuZXJhdG9yIHVzZWZ1bCBmb3Igd29yaywgcGxlYXNlIGNvbnNpZGVyIGFza2luZyB5b3VyIGNvbXBhbnkgdG8gc3VwcG9ydCB0aGlzIE9wZW4gU291cmNlIHByb2plY3QgYnkgW2JlY29taW5nIGEgc3BvbnNvcl0oaHR0cHM6Ly9vcGVuY29sbGVjdGl2ZS5jb20vb3BlbmFwaV9nZW5lcmF0b3IpLiBZb3UgY2FuIGFsc28gaW5kaXZpZHVhbGx5IHNwb25zb3IgdGhlIHByb2plY3QgYnkgW2JlY29taW5nIGEgYmFja2VyXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9vcGVuYXBpX2dlbmVyYXRvcikuCgojIyMjIFRoYW5rIHlvdSB0byBvdXIgYnJvbnplIHNwb25zb3JzIQoKWyFbTmFtU29yXShodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9uYW1zb3IucG5nKV0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaWdodEJvd10oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvbGlnaHRib3cucG5nKV0oaHR0cHM6Ly93d3cubGlnaHRib3cubmV0Lz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZG9jc3ByaW5nLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9kb2NzcHJpbmcuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvZGF0YWRvZy5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vZGF0YWRvZ2hxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3RoYWxlcy5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vY3BsLnRoYWxlc2dyb3VwLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FwaWRlY2suanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5hcGlkZWNrLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL3BleGEucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5wZXhhLmNvbS5hdS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL251bWFyeS5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3Lm51bWFyeS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9vbmVzaWduYWwucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5vbmVzaWduYWwuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvdmlydHVhbGFuc29mdHdhcmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy52aXJ0dWFsYW5zb2Z0d2FyZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9tZXJnZWRldi5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5tZXJnZS5kZXYvP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9idXJrZXJ0LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYnVya2VydC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9maW5ib3VybmUucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5maW5ib3VybmUuY29tLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYnVtcHNoLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9idW1wLnNoLz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCls8aW1nIHNyYz0iaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2ltZy9jb21wYW5pZXMvYmlsZXRvLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly93d3cuYmlsZXRvLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2JhaXJlc2Rldi5wbmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4Ij5dKGh0dHBzOi8vd3d3LmJhaXJlc2Rldi5jb20vc3BvbnNvcmluZy1vcGVuLXNvdXJjZS1wcm9qZWN0cy8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2RtdGVjaC5qcGVnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL3d3dy5kbS1qb2JzLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9pbWcvY29tcGFuaWVzL2FkeWVuLnBuZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPl0oaHR0cHM6Ly9hZHllbi5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9mb3JuZXgucG5nIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+XShodHRwczovL2Zvcm5leC5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKCiMjIyMgVGhhbmsgeW91IEdvRGFkZHkgZm9yIHNwb25zb3JpbmcgdGhlIGRvbWFpbiBuYW1lcywgTGlub2RlIGZvciBzcG9uc29yaW5nIHRoZSBWUFMsIENoZWNrbHkgZm9yIHNwb25zb3JpbmcgdGhlIEFQSSBtb25pdG9yaW5nIGFuZCBHcmFkbGUgZm9yIHNwb25zb3JpbmcgRGV2ZWxvY2l0eQoKWzxpbWcgc3JjPSJodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gvaW1nL2NvbXBhbmllcy9nb2RhZGR5LnBuZyIgd2lkdGg9IjE1MCI+XShodHRwczovL3d3dy5nb2RhZGR5LmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbIVtMaW5vZGVdKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vbWVkaWEvaW1hZ2VzL2xvZ29zL3N0YW5kYXJkL2xpZ2h0L2xpbm9kZS1sb2dvX3N0YW5kYXJkX2xpZ2h0X3NtYWxsLnBuZyldKGh0dHBzOi8vd3d3Lmxpbm9kZS5jb20vP3V0bV9zb3VyY2U9b3BlbmFwaV9nZW5lcmF0b3ImdXRtX21lZGl1bT1naXRodWJfd2VicGFnZSZ1dG1fY2FtcGFpZ249c3BvbnNvcikKWzxpbWcgc3JjPSJodHRwczovL2VuY3J5cHRlZC10Ym4wLmdzdGF0aWMuY29tL2ltYWdlcz9xPXRibiUzQUFOZDlHY1JBaEVZYWRVeVpZekdVb3RaaVNkWGtWTXFxTEd1b2h5aXhMbDRlVXBVVjZwQWJVVUxMIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vY2hlY2tseWhxLmNvbS8/dXRtX3NvdXJjZT1vcGVuYXBpX2dlbmVyYXRvciZ1dG1fbWVkaXVtPWdpdGh1Yl93ZWJwYWdlJnV0bV9jYW1wYWlnbj1zcG9uc29yKQpbPGltZyBzcmM9Imh0dHBzOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvdGh1bWIvYy9jYi9HcmFkbGVfbG9nby5wbmcvMzIwcHgtR3JhZGxlX2xvZ28ucG5nIiB3aWR0aD0iMTUwIj5dKGh0dHBzOi8vZ3JhZGxlLm9yZz91dG1fc291cmNlPW9wZW5hcGlfZ2VuZXJhdG9yJnV0bV9tZWRpdW09Z2l0aHViX3dlYnBhZ2UmdXRtX2NhbXBhaWduPXNwb25zb3IpCgojIyBPdmVydmlldwoKT3BlbkFQSSBHZW5lcmF0b3IgYWxsb3dzIGdlbmVyYXRpb24gb2YgQVBJIGNsaWVudCBsaWJyYXJpZXMgKFNESyBnZW5lcmF0aW9uKSwgc2VydmVyIHN0dWJzLCAgZG9jdW1lbnRhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBhdXRvbWF0aWNhbGx5IGdpdmVuIGFuIFtPcGVuQVBJIFNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoYm90aCAyLjAgYW5kIDMuMCBhcmUgc3VwcG9ydGVkKS4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGxhbmd1YWdlcy9mcmFtZXdvcmtzIGFyZSBzdXBwb3J0ZWQ6Cgp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGFuZ3VhZ2VzL0ZyYW1ld29ya3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgKipBUEkgY2xpZW50cyoqICAgICAgICAgICAgICAgICAgfCAqKkFjdGlvblNjcmlwdCoqLCAqKkFkYSoqLCAqKkFwZXgqKiwgKipCYXNoKiosICoqQyoqLCAqKkMjKiogKC5uZXQgMi4wLCAzLjUgb3IgbGF0ZXIsIC5ORVQgU3RhbmRhcmQgMS4zIC0gMi4xLCAuTkVUIENvcmUgMy4xLCAuTkVUIDUuMC4gTGlicmFyaWVzOiBSZXN0U2hhcnAsIEdlbmVyaWNIb3N0LCBIdHRwQ2xpZW50KSwgKipDKysqKiAoQXJkdWlubywgY3BwLXJlc3RzZGssIFF0NSwgVGl6ZW4sIFVucmVhbCBFbmdpbmUgNCksICoqQ2xvanVyZSoqLCAqKkNyeXN0YWwqKiwgKipEYXJ0KiosICoqRWxpeGlyKiosICoqRWxtKiosICoqRWlmZmVsKiosICoqRXJsYW5nKiosICoqR28qKiwgKipHcm9vdnkqKiwgKipIYXNrZWxsKiogKGh0dHAtY2xpZW50LCBTZXJ2YW50KSwgKipKYXZhKiogKEFwYWNoZSBIdHRwQ2xpZW50IDQueCwgQXBhY2hlIEh0dHBDbGllbnQgNS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCwgU3ByaW5nIDUgV2ViIENsaWVudCwgTWljcm9Qcm9maWxlIFJlc3QgQ2xpZW50LCBIZWxpZG9uKSwgKipKZXRicmFpbnMgSFRUUCBDbGllbnQqKiwgKipKdWxpYSoqLCAqKms2KiosICoqS290bGluKiosICoqTHVhKiosICoqTjRKUyoqLCAqKk5pbSoqLCAqKk5vZGUuanMvSmF2YVNjcmlwdCoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMsIEZsb3cgdHlwZXMsIEFwb2xsbyBHcmFwaFFMIERhdGFTdG9yZSksICoqT2JqZWN0aXZlLUMqKiwgKipPQ2FtbCoqLCAqKlBlcmwqKiwgKipQSFAqKiwgKipQb3dlclNoZWxsKiosICoqUHl0aG9uKiosICoqUioqLCAqKlJ1YnkqKiwgKipSdXN0KiogKGh5cGVyLCByZXF3ZXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzY2FsYXosIHN0dHAsIHN3YWdnZXItYXN5bmMtaHR0cGNsaWVudCwgcGVra28pLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFySlMsIEFuZ3VsYXIgKDkueCAtIDE2LngpLCBBdXJlbGlhLCBBeGlvcywgRmV0Y2gsIEludmVyc2lmeSwgalF1ZXJ5LCBOZXN0anMsIE5vZGUsIHJlZHV4LXF1ZXJ5LCBSeGpzKSwgKipYb0pvKiosICoqWmFwaWVyKiogfAp8ICoqU2VydmVyIHN0dWJzKiogICAgICAgICAgICAgICAgIHwgKipBZGEqKiwgKipDIyoqIChBU1AuTkVUIENvcmUsIEF6dXJlIEZ1bmN0aW9ucyksICoqQysrKiogKFBpc3RhY2hlLCBSZXN0YmVkLCBRdDUgUUhUVFBFbmdpbmUpLCAqKkVybGFuZyoqLCAqKkYjKiogKEdpcmFmZmUpLCAqKkdvKiogKG5ldC9odHRwLCBHaW4sIEVjaG8pLCAqKkhhc2tlbGwqKiAoU2VydmFudCwgWWVzb2QpLCAqKkphdmEqKiAoTVNGNEosIFNwcmluZywgVW5kZXJ0b3csIEpBWC1SUzogQ0RJLCBDWEYsIEluZmxlY3RvciwgSmVyc2V5LCBSZXN0RWFzeSwgUGxheSBGcmFtZXdvcmssIFtQS01TVF0oaHR0cHM6Ly9naXRodWIuY29tL1Byb0thcm1hLUluYy9wa21zdC1nZXR0aW5nLXN0YXJ0ZWQtZXhhbXBsZXMpLCBbVmVydC54XShodHRwczovL3ZlcnR4LmlvLyksIFtBcGFjaGUgQ2FtZWxdKGh0dHBzOi8vY2FtZWwuYXBhY2hlLm9yZy8pLCBbSGVsaWRvbl0oaHR0cHM6Ly9oZWxpZG9uLmlvLykpLCAqKkp1bGlhKiosICoqS290bGluKiogKFNwcmluZyBCb290LCBbS3Rvcl0oaHR0cHM6Ly9naXRodWIuY29tL2t0b3Jpby9rdG9yKSwgW1ZlcnQueF0oaHR0cHM6Ly92ZXJ0eC5pby8pKSwgKipQSFAqKiAoTGFyYXZlbCwgTHVtZW4sIFtNZXp6aW8gKGZrYSBaZW5kIEV4cHJlc3NpdmUpXShodHRwczovL2dpdGh1Yi5jb20vbWV6emlvL21lenppbyksIFNsaW0sIFNpbGV4LCBbU3ltZm9ueV0oaHR0cHM6Ly9zeW1mb255LmNvbS8pKSwgKipQeXRob24qKiAoRmFzdEFQSSwgRmxhc2spLCAqKk5vZGVKUyoqLCAqKlJ1YnkqKiAoU2luYXRyYSwgUmFpbHM1KSwgKipSdXN0KiogKFtydXN0LXNlcnZlcl0oaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoL2RvY3MvZ2VuZXJhdG9ycy9ydXN0LXNlcnZlci8pKSwgKipTY2FsYSoqIChBa2thLCBbRmluY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9maW5hZ2xlL2ZpbmNoKSwgW0xhZ29tXShodHRwczovL2dpdGh1Yi5jb20vbGFnb20vbGFnb20pLCBbUGxheV0oaHR0cHM6Ly93d3cucGxheWZyYW1ld29yay5jb20vKSwgU2NhbGF0cmEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgKipBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3JzKiogfCAqKkhUTUwqKiwgKipDb25mbHVlbmNlIFdpa2kqKiwgKipBc2NpaWRvYyoqLCAqKk1hcmtkb3duKiosICoqUGxhbnRVTUwqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICoqQ29uZmlndXJhdGlvbiBmaWxlcyoqICAgICAgICAgIHwgWyoqQXBhY2hlMioqXShodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAqKk90aGVycyoqICAgICAgICAgICAgICAgICAgICAgICB8ICoqR3JhcGhRTCoqLCAqKkpNZXRlcioqLCAqKkt0b3JtKiosICoqTXlTUUwgU2NoZW1hKiosICoqUG9zdG1hbiBDb2xsZWN0aW9uKiosICoqUHJvdG9jb2wgQnVmZmVyKiosICoqV1NETCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyBUYWJsZSBvZiBjb250ZW50cwoKICAtIFtPcGVuQVBJIEdlbmVyYXRvcl0oI29wZW5hcGktZ2VuZXJhdG9yKQogIC0gW092ZXJ2aWV3XSgjb3ZlcnZpZXcpCiAgLSBbVGFibGUgb2YgQ29udGVudHNdKCN0YWJsZS1vZi1jb250ZW50cykKICAtIFsxIC0gSW5zdGFsbGF0aW9uXSgjMS0tLWluc3RhbGxhdGlvbikKICAgIC0gWzEuMSAtIENvbXBhdGliaWxpdHldKCMxMS0tLWNvbXBhdGliaWxpdHkpCiAgICAtIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oIzEyLS0tYXJ0aWZhY3RzLW9uLW1hdmVuLWNlbnRyYWwpCiAgICAtIFsxLjMgLSBEb3dubG9hZCBKQVJdKCMxMy0tLWRvd25sb2FkLWphcikKICAgIC0gWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjMTQtLS1idWlsZC1wcm9qZWN0cykKICAgIC0gWzEuNSAtIEhvbWVicmV3XSgjMTUtLS1ob21lYnJldykKICAgIC0gWzEuNiAtIERvY2tlcl0oIzE2LS0tZG9ja2VyKQogICAgLSBbMS43IC0gTlBNXSgjMTctLS1ucG0pCiAgLSBbMiAtIEdldHRpbmcgU3RhcnRlZF0oIzItLS1nZXR0aW5nLXN0YXJ0ZWQpCiAgLSBbMyAtIFVzYWdlXSgjMy0tLXVzYWdlKQogICAgLSBbMy4xIC0gQ3VzdG9taXphdGlvbl0oIzMxLS0tY3VzdG9taXphdGlvbikKICAgIC0gWzMuMiAtIFdvcmtmbG93IEludGVncmF0aW9uXSgjMzItLS13b3JrZmxvdy1pbnRlZ3JhdGlvbi1tYXZlbi1ncmFkbGUtZ2l0aHViLWNpY2QpCiAgICAtIFszLjMgLSBPbmxpbmUgR2VuZXJhdG9yc10oIzMzLS0tb25saW5lLW9wZW5hcGktZ2VuZXJhdG9yKQogICAgLSBbMy40IC0gTGljZW5zZSBJbmZvcm1hdGlvbiBvbiBHZW5lcmF0ZWQgQ29kZV0oIzM0LS0tbGljZW5zZS1pbmZvcm1hdGlvbi1vbi1nZW5lcmF0ZWQtY29kZSkKICAgIC0gWzMuNSAtIElERSBJbnRlZ3JhdGlvbl0oIzM1LS0taWRlLWludGVncmF0aW9uKQogIC0gWzQgLSBDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKCM0LS0tY29tcGFuaWVzcHJvamVjdHMtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpCiAgLSBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oIzUtLS1wcmVzZW50YXRpb25zdmlkZW9zdHV0b3JpYWxzYm9va3MpCiAgLSBbNiAtIEFib3V0IFVzXSgjNi0tLWFib3V0LXVzKQogICAgLSBbNi4xIC0gT3BlbkFQSSBHZW5lcmF0b3IgQ29yZSBUZWFtXSgjNjEtLS1vcGVuYXBpLWdlbmVyYXRvci1jb3JlLXRlYW0pCiAgICAtIFs2LjIgLSBPcGVuQVBJIEdlbmVyYXRvciBUZWNobmljYWwgQ29tbWl0dGVlXSgjNjItLS1vcGVuYXBpLWdlbmVyYXRvci10ZWNobmljYWwtY29tbWl0dGVlKQogICAgLSBbNi4zIC0gSGlzdG9yeSBvZiBPcGVuQVBJIEdlbmVyYXRvcl0oIzYzLS0taGlzdG9yeS1vZi1vcGVuYXBpLWdlbmVyYXRvcikKICAtIFs3IC0gTGljZW5zZV0oIzctLS1saWNlbnNlKQoKIyMgWzEgLSBJbnN0YWxsYXRpb25dKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyBbMS4xIC0gQ29tcGF0aWJpbGl0eV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBoYXMgdW5kZXJnb25lIDMgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gIFRoZSBvcGVuYXBpLWdlbmVyYXRvciBwcm9qZWN0IGhhcyB0aGUgZm9sbG93aW5nIGNvbXBhdGliaWxpdGllcyB3aXRoIHRoZSBPcGVuQVBJIFNwZWNpZmljYXRpb246Cgp8IE9wZW5BUEkgR2VuZXJhdG9yIFZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlbGVhc2UgRGF0ZSB8IE5vdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IDcuMy4wICh1cGNvbWluZyBtaW5vciByZWxlYXNlKSBbU05BUFNIT1RdKGh0dHBzOi8vb3NzLnNvbmF0eXBlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4zLjAtU05BUFNIT1QvKSB8IDMwLjAxLjIwMjQgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzcuMi4wXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92Ny4yLjApIChsYXRlc3Qgc3RhYmxlIHJlbGVhc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjIuMTIuMjAyMyAgIHwgTWlub3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMgKHdpdGggZmFsbGJhY2spIHwKfCBbNi42LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y2LjYuMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMS4wNS4yMDIzICAgfCBNaW5vciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcyAod2l0aCBmYWxsYmFjaykgfAp8IFs1LjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9yZWxlYXNlcy90YWcvdjUuNC4wKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMxLjAxLjIwMjIgICB8IE1pbm9yIHJlbGVhc2Ugd2l0aCBicmVha2luZyBjaGFuZ2VzICh3aXRoIGZhbGxiYWNrKSB8CnwgWzQuMy4xXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL3JlbGVhc2VzL3RhZy92NC4zLjEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMDYuMDUuMjAyMCAgIHwgUGF0Y2ggcmVsZWFzZSAoZW5oYW5jZW1lbnRzLCBidWcgZml4ZXMsIGV0YykgICAgICAgICAgICAgICAgICAgICAgIHwKCk9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5OiAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCwgMy4xIChiZXRhIHN1cHBvcnQpCgooV2UgZG8gbm90IHB1Ymxpc2ggZGFpbHkvbmlnaHRseSBidWlsZC4gUGxlYXNlIHVzZSBTTkFQU0hPVCBpbnN0ZWFkKQoKRm9yIG9sZCByZWxlYXNlcywgcGxlYXNlIHJlZmVyIHRvIHRoZSBbKipSZWxlYXNlKipdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMpIHBhZ2UuCgpGb3IgZGVjb21pc3Npb25lZCBnZW5lcmF0b3JzL2xpYnJhcmllcy9mcmFtZXdvcmtzLCBwbGVhc2UgcmVmZXIgdG8gW3RoZSAiRGVjb21taXNzaW9uIiBsYWJlbF0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvci9pc3N1ZXM/cT1sYWJlbCUzQURlY29tbWlzc2lvbitpcyUzQW1lcmdlZCspIGluIHRoZSBwdWxsIHJlcXVlc3QgcGFnZS4KCiMjIFsxLjIgLSBBcnRpZmFjdHMgb24gTWF2ZW4gQ2VudHJhbF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKWW91IGNhbiBmaW5kIG91ciByZWxlYXNlZCBhcnRpZmFjdHMgb24gbWF2ZW4gY2VudHJhbDoKCioqQ29yZToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3I8L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4ke29wZW5hcGktZ2VuZXJhdG9yLXZlcnNpb259PC92ZXJzaW9uPgo8L2RlcGVuZGVuY3k+CmBgYApTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcikgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKkNsaToqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItY2xpPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1jbGldKGh0dHBzOi8vc2VhcmNoLm1hdmVuLm9yZy9hcnRpZmFjdC9vcmcub3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSkgYXJ0aWZhY3QgYXZhaWxhYmxlIG9uIG1hdmVuIGNlbnRyYWwuCgoqKk1hdmVuIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+JHtvcGVuYXBpLWdlbmVyYXRvci12ZXJzaW9ufTwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgpgYGAKKiBTZWUgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgW29wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbl0oaHR0cHM6Ly9zZWFyY2gubWF2ZW4ub3JnL2FydGlmYWN0L29yZy5vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItbWF2ZW4tcGx1Z2luL1JFQURNRS5tZCkKCioqR3JhZGxlIHBsdWdpbjoqKgpgYGB4bWwKPGRlcGVuZGVuY3k+CiAgICA8Z3JvdXBJZD5vcmcub3BlbmFwaXRvb2xzPC9ncm91cElkPgogICAgPGFydGlmYWN0SWQ+b3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgIDx2ZXJzaW9uPiR7b3BlbmFwaS1nZW5lcmF0b3ItdmVyc2lvbn08L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCiogU2VlIHRoZSBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIFtvcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luXShodHRwczovL3NlYXJjaC5tYXZlbi5vcmcvYXJ0aWZhY3Qvb3JnLm9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1ncmFkbGUtcGx1Z2luKSBhcnRpZmFjdCBhdmFpbGFibGUgb24gbWF2ZW4gY2VudHJhbC4KKiBbUmVhZG1lXShodHRwczovL2dpdGh1Yi5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2Jsb2IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItZ3JhZGxlLXBsdWdpbi9SRUFETUUuYWRvYykKCiMjIyBbMS4zIC0gRG93bmxvYWQgSkFSXSgjdGFibGUtb2YtY29udGVudHMpCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDExIHJ1bnRpbWUgYXQgYSBtaW5pbXVtKToKCkpBUiBsb2NhdGlvbjogYGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9vcmcvb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS83LjIuMC9vcGVuYXBpLWdlbmVyYXRvci1jbGktNy4yLjAuamFyYAoKRm9yICoqTWFjL0xpbnV4KiogdXNlcnM6CmBgYHNoCndnZXQgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuMi4wL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjIuMC5qYXIgLU8gb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphcgpgYGAKCkZvciAqKldpbmRvd3MqKiB1c2VycywgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIFt3Z2V0XShodHRwOi8vZ251d2luMzIuc291cmNlZm9yZ2UubmV0L3BhY2thZ2VzL3dnZXQuaHRtKSBvciB5b3UgY2FuIHVzZSBJbnZva2UtV2ViUmVxdWVzdCBpbiBQb3dlclNoZWxsICgzLjArKSwgZS5nLgpgYGAKSW52b2tlLVdlYlJlcXVlc3QgLU91dEZpbGUgb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvb3JnL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvNy4yLjAvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLTcuMi4wLmphcgpgYGAKCkFmdGVyIGRvd25sb2FkaW5nIHRoZSBKQVIsIHJ1biBgamF2YSAtamFyIG9wZW5hcGktZ2VuZXJhdG9yLWNsaS5qYXIgaGVscGAgdG8gc2hvdyB0aGUgdXNhZ2UuCgpGb3IgTWFjIHVzZXJzLCBwbGVhc2UgbWFrZSBzdXJlIEphdmEgMTEgaXMgaW5zdGFsbGVkIChUaXBzOiBydW4gYGphdmEgLXZlcnNpb25gIHRvIGNoZWNrIHRoZSB2ZXJzaW9uKSwgYW5kIGV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMS4xMWAKZXhwb3J0IFBBVEg9JHtKQVZBX0hPTUV9L2JpbjokUEFUSApgYGAKCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KIyMjIExhdW5jaGVyIFNjcmlwdAoKT25lIGRvd25zaWRlIHRvIG1hbnVhbCBqYXIgZG93bmxvYWRzIGlzIHRoYXQgeW91IGRvbid0IGtlZXAgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZWQgdmVyc2lvbi4gV2UgaGF2ZSBhIEJhc2ggbGF1bmNoZXIgc2NyaXB0IGF0IFtiaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3IuY2xpLnNoXSguL2Jpbi91dGlscy9vcGVuYXBpLWdlbmVyYXRvci1jbGkuc2gpIHdoaWNoIHJlc29sdmVzIHRoaXMgaXNzdWUuCgpUbyBpbnN0YWxsIHRoZSBsYXVuY2hlciBzY3JpcHQsIGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JpcHQgdG8gYSBsb2NhdGlvbiBvbiB5b3VyIHBhdGggYW5kIG1ha2UgdGhlIHNjcmlwdCBleGVjdXRhYmxlLgoKQW4gZXhhbXBsZSBvZiBzZXR0aW5nIHRoaXMgdXAgKE5PVEU6IEFsd2F5cyBldmFsdWF0ZSBzY3JpcHRzIGN1cmxlZCBmcm9tIGV4dGVybmFsIHN5c3RlbXMgYmVmb3JlIGV4ZWN1dGluZyB0aGVtKS4KCmBgYApta2RpciAtcCB+L2Jpbi9vcGVuYXBpdG9vbHMKY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vT3BlbkFQSVRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9iaW4vdXRpbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLnNoID4gfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpjaG1vZCB1K3ggfi9iaW4vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaQpleHBvcnQgUEFUSD0kUEFUSDp+L2Jpbi9vcGVuYXBpdG9vbHMvCmBgYAoKTm93LCBgb3BlbmFwaS1nZW5lcmF0b3ItY2xpYCBpcyAiaW5zdGFsbGVkIi4gT24gaW52b2NhdGlvbiwgaXQgd2lsbCBxdWVyeSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIHRoZSBtb3N0IHJlY2VudGx5IHJlbGVhc2VkIHZlcnNpb24uIElmIHRoaXMgbWF0Y2hlcyB0aGUgbGFzdCBkb3dubG9hZGVkIGphciwKaXQgd2lsbCBleGVjdXRlIGFzIG5vcm1hbC4gSWYgYSBuZXdlciB2ZXJzaW9uIGlzIGZvdW5kLCB0aGUgc2NyaXB0IHdpbGwgZG93bmxvYWQgdGhlIGxhdGVzdCByZWxlYXNlIGFuZCBleGVjdXRlIGl0LgoKSWYgeW91IG5lZWQgdG8gaW52b2tlIGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGdlbmVyYXRvciwgeW91IGNhbiBkZWZpbmUgdGhlIHZhcmlhYmxlIGBPUEVOQVBJX0dFTkVSQVRPUl9WRVJTSU9OYCBlaXRoZXIgYWQgaG9jIG9yIGdsb2JhbGx5LiBZb3UgY2FuIGV4cG9ydCB0aGlzIHZhcmlhYmxlIGlmIHlvdSdkIGxpa2UgdG8gcGVyc2lzdCBhIHNwZWNpZmljIHJlbGVhc2UgdmVyc2lvbi4KCkV4YW1wbGVzOgoKYGBgCiMgRXhlY3V0ZSBsYXRlc3QgcmVsZWFzZWQgb3BlbmFwaS1nZW5lcmF0b3ItY2xpCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uCgojIEV4ZWN1dGUgdmVyc2lvbiA0LjEuMCBmb3IgdGhlIGN1cnJlbnQgaW52b2NhdGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4xLjAtU05BUFNIT1QgZm9yIHRoZSBjdXJyZW50IGludm9jYXRpb24KT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjEuMC1TTkFQU0hPVCBvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgoKIyBFeGVjdXRlIHZlcnNpb24gNC4wLjIgZm9yIGV2ZXJ5IGludm9jYXRpb24gaW4gdGhlIGN1cnJlbnQgc2hlbGwgc2Vzc2lvbgpleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMgpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbiAjIGlzIDQuMC4yCm9wZW5hcGktZ2VuZXJhdG9yLWNsaSB2ZXJzaW9uICMgaXMgYWxzbyA0LjAuMgoKIyBUbyAiaW5zdGFsbCIgYSBzcGVjaWZpYyB2ZXJzaW9uLCBzZXQgdGhlIHZhcmlhYmxlIGluIC5iYXNocmMvLmJhc2hfcHJvZmlsZQplY2hvICJleHBvcnQgT1BFTkFQSV9HRU5FUkFUT1JfVkVSU0lPTj00LjAuMiIgPj4gfi8uYmFzaHJjCnNvdXJjZSB+Ly5iYXNocmMKb3BlbmFwaS1nZW5lcmF0b3ItY2xpIHZlcnNpb24gIyBpcyBhbHdheXMgNC4wLjIsIHVubGVzcyBhbnkgb2YgdGhlIGFib3ZlIG92ZXJyaWRlcyBhcmUgZG9uZSBhZCBob2MKYGBgCgojIyMgWzEuNCAtIEJ1aWxkIFByb2plY3RzXSgjdGFibGUtb2YtY29udGVudHMpCgpUbyBidWlsZCBmcm9tIHNvdXJjZSwgeW91IG5lZWQgdGhlIGZvbGxvd2luZyBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBpbiB5b3VyIGAkUEFUSDpgCgoqIFtKYXZhIDExXShodHRwczovL2Fkb3B0aXVtLm5ldC8pCgoqIFtBcGFjaGUgTWF2ZW4gMy4zLjQgb3IgZ3JlYXRlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLykgKG9wdGlvbmFsKQoKQWZ0ZXIgY2xvbmluZyB0aGUgcHJvamVjdCwgeW91IGNhbiBidWlsZCBpdCBmcm9tIHNvdXJjZSB1c2luZyBbbWF2ZW4gd3JhcHBlcl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3dyYXBwZXIvKToKCi0gTGludXg6IGAuL212bncgY2xlYW4gaW5zdGFsbGAKLSBXaW5kb3dzOiBgbXZudy5jbWQgY2xlYW4gaW5zdGFsbGAKCiMjIyMgTml4IHVzZXJzCgpJZiB5b3UncmUgYSBuaXggdXNlciwgeW91IGNhbiBlbnRlciBPcGVuQVBJIEdlbmVyYXRvciBzaGVsbCwgYnkgdHlwaW5nOgpgYGBzaApuaXggZGV2ZWxvcApgYGAKSXQgd2lsbCBlbnRlciBhIHNoZWxsIHdpdGggSmF2YSAxMSBpbnN0YWxsZWQuCgpEaXJlbnYgc3VwcG9ydHMgYXV0b21hdGljYWxseSBsb2FkaW5nIG9mIHRoZSBuaXggZGV2ZWxvcGVyIHNoZWxsLCBzbyBpZiB5b3UncmUgdXNpbmcgZGlyZW52IHRvbywgdHlwZToKYGBgc2gKZGlyZW52IGFsbG93CmBgYAphbmQgaGF2ZSBgamF2YWAgYW5kIGBtdm5gIHNldCB1cCB3aXRoIGNvcnJlY3QgdmVyc2lvbnMgZWFjaCB0aW1lIHlvdSBlbnRlciBwcm9qZWN0IGRpcmVjdG9yeS4KClRoZSBkZWZhdWx0IGJ1aWxkIGNvbnRhaW5zIG1pbmltYWwgc3RhdGljIGFuYWx5c2lzICh2aWEgQ2hlY2tTdHlsZSkuIFRvIHJ1biB5b3VyIGJ1aWxkIHdpdGggUE1EIGFuZCBTcG90YnVncywgdXNlIHRoZSBgc3RhdGljLWFuYWx5c2lzYCBwcm9maWxlOgoKLSBMaW51eDogYC4vbXZudyAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAotIFdpbmRvd3M6IGBtdm53LmNtZCAtUHN0YXRpYy1hbmFseXNpcyBjbGVhbiBpbnN0YWxsYAoKIyMjIFsxLjUgLSBIb21lYnJld10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3JgCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNhZ2UgdG8gZ2VuZXJhdGUgYSBSdWJ5IGNsaWVudDoKYGBgc2gKb3BlbmFwaS1nZW5lcmF0b3IgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgLWcgcnVieSAtbyAvdG1wL3Rlc3QvCmBgYAoKVG8gcmVpbnN0YWxsIHdpdGggdGhlIGxhdGVzdCBtYXN0ZXIsIHJ1biBgYnJldyB1bmluc3RhbGwgb3BlbmFwaS1nZW5lcmF0b3IgJiYgYnJldyBpbnN0YWxsIC0tSEVBRCBvcGVuYXBpLWdlbmVyYXRvcmAKClRvIGluc3RhbGwgT3BlbkpESyAocHJlLXJlcXVpc2l0ZXMpLCBwbGVhc2UgcnVuCmBgYHNoCmJyZXcgdGFwIEFkb3B0T3BlbkpESy9vcGVuamRrCmJyZXcgaW5zdGFsbCAtLWNhc2sgYWRvcHRvcGVuamRrMTEKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxLjExYApgYGAKCm9yIGRvd25sb2FkIGluc3RhbGxlciB2aWEgaHR0cHM6Ly9hZG9wdGl1bS5uZXQvCgpUbyBpbnN0YWxsIE1hdmVuIChvcHRpb25hbCksIHBsZWFzZSBydW4KYGBgc2gKYnJldyBpbnN0YWxsIG1hdmVuCmBgYAoKIyMjIFsxLjYgLSBEb2NrZXJdKCN0YWJsZS1vZi1jb250ZW50cykKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBbaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkvXShodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS8pIChvZmZpY2lhbCBDTEkpCiAtIFtodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZS9dKGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3Itb25saW5lLykgKG9mZmljaWFsIHdlYiBzZXJ2aWNlKQoKCiMjIyMgT3BlbkFQSSBHZW5lcmF0b3IgQ0xJIERvY2tlciBJbWFnZQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgIiR7UFdEfTovbG9jYWwiIG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAgLWcgZ28gXAogICAgLW8gL2xvY2FsL291dC9nbwpgYGAKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyMjIE9wZW5BUEkgR2VuZXJhdG9yIE9ubGluZSBEb2NrZXIgSW1hZ2UKClRoZSBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmUgaW1hZ2UgY2FuIGFjdCBhcyBhIHNlbGYtaG9zdGVkIHdlYiBhcHBsaWNhdGlvbiBhbmQgQVBJIGZvciBnZW5lcmF0aW5nIGNvZGUuIFRoaXMgY29udGFpbmVyIGNhbiBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZToKCmBgYHNoCiMgU3RhcnQgY29udGFpbmVyIGF0IHBvcnQgODg4OCBhbmQgc2F2ZSB0aGUgY29udGFpbmVyIGlkCj4gQ0lEPSQoZG9ja2VyIHJ1biAtZCAtcCA4ODg4OjgwODAgb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLW9ubGluZSkKCiMgYWxsb3cgZm9yIHN0YXJ0dXAKPiBzbGVlcCAxMAoKIyBHZXQgdGhlIElQIG9mIHRoZSBydW5uaW5nIGNvbnRhaW5lciAob3B0aW9uYWwpCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQoKIyBFeGVjdXRlIGFuIEhUVFAgcmVxdWVzdCB0byBnZW5lcmF0ZSBhIFJ1YnkgY2xpZW50Cj4gY3VybCAtWCBQT1NUIC0taGVhZGVyICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIC0taGVhZGVyICdBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIFwKLWQgJ3sib3BlbkFQSVVybCI6ICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCJ9JyBcCidodHRwOi8vbG9jYWxob3N0Ojg4ODgvYXBpL2dlbi9jbGllbnRzL3J1YnknCgp7ImNvZGUiOiJjMmQ0ODMuMy40NjcyLTQwZTktOTFkZi1iOWZmZDE4ZDIyYjgiLCJsaW5rIjoiaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4In0KCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgZmlsZQo+IHdnZXQgaHR0cDovL2xvY2FsaG9zdDo4ODg4L2FwaS9nZW4vZG93bmxvYWQvYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFVuemlwIHRoZSBmaWxlCj4gdW56aXAgYzJkNDgzLjMuNDY3Mi00MGU5LTkxZGYtYjlmZmQxOGQyMmI4CgojIFNodXRkb3duIHRoZSBvcGVuYXBpIGdlbmVyYXRvciBpbWFnZQo+IGRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvcgpjZCBvcGVuYXBpLWdlbmVyYXRvcgouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIHBhY2thZ2UKYGBgCgpCdWlsZCBhcnRpZmFjdHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuCgpPbmNlIGJ1aWx0LCBgcnVuLWluLWRvY2tlci5zaGAgd2lsbCBhY3QgYXMgYW4gZXhlY3V0YWJsZSBmb3Igb3BlbmFwaS1nZW5lcmF0b3ItY2xpLiBUbyBnZW5lcmF0ZSBjb2RlLCB5b3UnbGwgbmVlZCB0byBvdXRwdXQgdG8gYSBkaXJlY3RvcnkgdW5kZXIgYC9nZW5gIChlLmcuIGAvZ2VuL291dGApLiBGb3IgZXhhbXBsZToKCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCBoZWxwICMgRXhlY3V0ZXMgJ2hlbHAnIGNvbW1hbmQgZm9yIG9wZW5hcGktZ2VuZXJhdG9yLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGlzdCAjIEV4ZWN1dGVzICdsaXN0JyBjb21tYW5kIGZvciBvcGVuYXBpLWdlbmVyYXRvci1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIGdlbmVyYXRlIC1pIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIFwKICAgIC1nIGdvIC1vIC9nZW4vb3V0L2dvLXBldHN0b3JlIC1wIHBhY2thZ2VOYW1lPXBldHN0b3JlICMgZ2VuZXJhdGVzIGdvIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L2dvLXBldHN0b3JlCmBgYAoKIyMjIyMgVHJvdWJsZXNob290aW5nCgpJZiBhbiBlcnJvciBsaWtlIHRoaXMgb2NjdXJzLCBqdXN0IGV4ZWN1dGUgdGhlICoqLi9tdm53IGNsZWFuIGluc3RhbGwgLVUqKiBjb21tYW5kOgoKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjE5LjE6dGVzdCAoZGVmYXVsdC10ZXN0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yOiBBIHR5cGUgaW5jb21wYXRpYmlsaXR5IG9jY3VycmVkIHdoaWxlIGV4ZWN1dGluZyBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luOjIuMTkuMTp0ZXN0OiBqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGNhbm5vdCBiZSBjYXN0IHRvIGphdmEuaW8uSU9FeGNlcHRpb24KCmBgYHNoCi4vcnVuLWluLWRvY2tlci5zaCAuL212bncgY2xlYW4gaW5zdGFsbCAtVQpgYGAKCj4gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuZm9ydGFzb2Z0OmdyYWRsZS1tYXZlbi1wbHVnaW46MS4wLjg6aW52b2tlIChkZWZhdWx0KSBvbiBwcm9qZWN0IG9wZW5hcGktZ2VuZXJhdG9yLWdyYWRsZS1wbHVnaW4tbXZuLXdyYXBwZXI6IG9yZy5ncmFkbGUudG9vbGluZy5CdWlsZEV4Y2VwdGlvbjogQ291bGQgbm90IGV4ZWN1dGUgYnVpbGQgdXNpbmcgR3JhZGxlIGRpc3RyaWJ1dGlvbiAnaHR0cHM6Ly9zZXJ2aWNlcy5ncmFkbGUub3JnL2Rpc3RyaWJ1dGlvbnMvZ3JhZGxlLTQuNy1iaW4uemlwJwoKUmlnaHQgbm93OiBubyBzb2x1dGlvbiBmb3IgdGhpcyBvbmUgOnwKCiMjIyMgUnVuIERvY2tlciBpbiBWYWdyYW50ClByZXJlcXVpc2l0ZTogaW5zdGFsbCBbVmFncmFudF0oaHR0cHM6Ly93d3cudmFncmFudHVwLmNvbS9kb3dubG9hZHMuaHRtbCkgYW5kIFtWaXJ0dWFsQm94XShodHRwczovL3d3dy52aXJ0dWFsYm94Lm9yZy93aWtpL0Rvd25sb2FkcykuCiBgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci5naXQKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKdmFncmFudCB1cAp2YWdyYW50IHNzaApjZCAvdmFncmFudAouL3J1bi1pbi1kb2NrZXIuc2ggLi9tdm53IHBhY2thZ2UKYGBgCgojIyMgWzEuNyAtIE5QTV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlcmUgaXMgYWxzbyBhbiBbTlBNIHBhY2thZ2Ugd3JhcHBlcl0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG9wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci1jbGkpIGF2YWlsYWJsZSBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyAoZS5nLiBMaW51eCwgTWFjLCBXaW5kb3dzKS4gKEpWTSBpcyBzdGlsbCByZXF1aXJlZCkKUGxlYXNlIHNlZSB0aGUgW3Byb2plY3QncyBSRUFETUVdKGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKSB0aGVyZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCkluc3RhbGwgaXQgZ2xvYmFsbHkgdG8gZ2V0IHRoZSBDTEkgYXZhaWxhYmxlIG9uIHRoZSBjb21tYW5kIGxpbmU6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtZwpvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbgpgYGAKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpUbyB1c2UgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mICJvcGVuYXBpLWdlbmVyYXRvci1jbGkiCgpgYGBzaApvcGVuYXBpLWdlbmVyYXRvci1jbGkgdmVyc2lvbi1tYW5hZ2VyIHNldCA3LjAuMQpgYGAKCk9yIGluc3RhbGwgaXQgYXMgZGV2LWRlcGVuZGVuY3k6CgpgYGBzaApucG0gaW5zdGFsbCBAb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yLWNsaSAtRApgYGAKPCEtLSAvUkVMRUFTRV9WRVJTSU9OIC0tPgojIyBbMiAtIEdldHRpbmcgU3RhcnRlZF0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVG8gZ2VuZXJhdGUgYSBQSFAgY2xpZW50IGZvciBbcGV0c3RvcmUueWFtbF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwpLCBwbGVhc2UgcnVuIHRoZSBmb2xsb3dpbmcKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IKY2Qgb3BlbmFwaS1nZW5lcmF0b3IKLi9tdm53IGNsZWFuIHBhY2thZ2UKamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAgLWkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29wZW5hcGl0b29scy9vcGVuYXBpLWdlbmVyYXRvci9tYXN0ZXIvbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvdGVzdC9yZXNvdXJjZXMvM18wL3BldHN0b3JlLnlhbWwgXAogICAtZyBwaHAgXAogICAtbyAvdmFyL3RtcC9waHBfYXBpX2NsaWVudApgYGAKKGlmIHlvdSdyZSBvbiBXaW5kb3dzLCByZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQgd2l0aCBgamF2YSAtamFyIG1vZHVsZXNcb3BlbmFwaS1nZW5lcmF0b3ItY2xpXHRhcmdldFxvcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIC1pIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvbWFzdGVyL21vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3Ivc3JjL3Rlc3QvcmVzb3VyY2VzLzNfMC9wZXRzdG9yZS55YW1sIC1nIHBocCAtbyBjOlx0ZW1wXHBocF9hcGlfY2xpZW50YCkKCjwhLS0gUkVMRUFTRV9WRVJTSU9OIC0tPgpZb3UgY2FuIGFsc28gZG93bmxvYWQgdGhlIEpBUiAobGF0ZXN0IHJlbGVhc2UpIGRpcmVjdGx5IGZyb20gW21hdmVuLm9yZ10oaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL29yZy9vcGVuYXBpdG9vbHMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLzcuMC4xL29wZW5hcGktZ2VuZXJhdG9yLWNsaS03LjAuMS5qYXIpCjwhLS0gL1JFTEVBU0VfVkVSU0lPTiAtLT4KClRvIGdldCBhIGxpc3Qgb2YgKipnZW5lcmFsKiogb3B0aW9ucyBhdmFpbGFibGUsIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBoZWxwIGdlbmVyYXRlYAoKVG8gZ2V0IGEgbGlzdCBvZiBQSFAgc3BlY2lmaWVkIG9wdGlvbnMgKHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gdGhlIGdlbmVyYXRvciB3aXRoIGEgY29uZmlnIGZpbGUgdmlhIHRoZSBgLWNgIG9wdGlvbiksIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yLWNsaS90YXJnZXQvb3BlbmFwaS1nZW5lcmF0b3ItY2xpLmphciBjb25maWctaGVscCAtZyBwaHBgCgojIyBbMyAtIFVzYWdlXSgjdGFibGUtb2YtY29udGVudHMpCgojIyMgVG8gZ2VuZXJhdGUgYSBzYW1wbGUgY2xpZW50IGxpYnJhcnkKWW91IGNhbiBidWlsZCBhIGNsaWVudCBhZ2FpbnN0IHRoZSBbUGV0c3RvcmUgQVBJXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCkgYXMgZm9sbG93czoKCmBgYHNoCi4vYmluL2dlbmVyYXRlLXNhbXBsZXMuc2ggLi9iaW4vY29uZmlncy9qYXZhLW9raHR0cC1nc29uLnlhbWwKYGBgCgooT24gV2luZG93cywgcGxlYXNlIGluc3RhbGwgW0dJVCBCYXNoIGZvciBXaW5kb3dzXShodHRwczovL2dpdGZvcndpbmRvd3Mub3JnLykgdG8gcnVuIHRoZSBjb21tYW5kIGFib3ZlKQoKVGhpcyBzY3JpcHQgdXNlcyB0aGUgZGVmYXVsdCBsaWJyYXJ5LCB3aGljaCBpcyBgb2todHRwLWdzb25gLiBJdCB3aWxsIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvb3BlbmFwaS1nZW5lcmF0b3ItY2xpL3RhcmdldC9vcGVuYXBpLWdlbmVyYXRvci1jbGkuamFyIGdlbmVyYXRlIFwKICAtaSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL21hc3Rlci9tb2R1bGVzL29wZW5hcGktZ2VuZXJhdG9yL3NyYy90ZXN0L3Jlc291cmNlcy8zXzAvcGV0c3RvcmUueWFtbCBcCiAgLWcgamF2YSBcCiAgLXQgbW9kdWxlcy9vcGVuYXBpLWdlbmVyYXRvci9zcmMvbWFpbi9yZXNvdXJjZXMvSmF2YSBcCiAgLS1hZGRpdGlvbmFsLXByb3BlcnRpZXMgYXJ0aWZhY3RJZD1wZXRzdG9yZS1va2h0dHAtZ3NvbixoaWRlR2VuZXJhdGlvblRpbWVzdGFtcD10cnVlIFwKICAtbyBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhL29raHR0cC1nc29uCmBgYAoKd2l0aCBhIG51bWJlciBvZiBvcHRpb25zLiBbVGhlIGphdmEgb3B0aW9ucyBhcmUgZG9jdW1lbnRlZCBoZXJlLl0oZG9jcy9nZW5lcmF0b3JzL2phdmEubWQpCgpZb3UgY2FuIGFsc28gZ2V0IHRoZSBvcHRpb25zIHdpdGggdGhlIGBoZWxwIGdlbmVyYXRlYCBjb21tYW5kIChiZWxvdyBvbmx5IHNob3dzIHBhcnRpYWwgcmVzdWx0cyk6CgpgYGAKTkFNRQogICAgICAgIG9wZW5hcGktZ2VuZXJhdG9yLWNsaSBnZW5lcmF0ZSAtIEdlbmVyYXRlIGNvZGUgd2l0aCB0aGUgc3BlY2lmaWVkCiAgICAgICAgZ2VuZXJhdG9yLgoKU1lOT1BTSVMKICAgICAgICBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZ2VuZXJhdGUKICAgICAgICAgICAgICAgIFsoLWEgPGF1dGhvcml6YXRpb24+IHwgLS1hdXRoIDxhdXRob3JpemF0aW9uPildCiAgICAgICAgICAgICAgICBbLS1hcGktbmFtZS1zdWZmaXggPGFwaSBuYW1lIHN1ZmZpeD5dIFstLWFwaS1wYWNrYWdlIDxhcGkgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbLS1hcnRpZmFjdC1pZCA8YXJ0aWZhY3QgaWQ+XSBbLS1hcnRpZmFjdC12ZXJzaW9uIDxhcnRpZmFjdCB2ZXJzaW9uPl0KICAgICAgICAgICAgICAgIFsoLWMgPGNvbmZpZ3VyYXRpb24gZmlsZT4gfCAtLWNvbmZpZyA8Y29uZmlndXJhdGlvbiBmaWxlPildIFstLWRyeS1ydW5dCiAgICAgICAgICAgICAgICBbKC1lIDx0ZW1wbGF0aW5nIGVuZ2luZT4gfCAtLWVuZ2luZSA8dGVtcGxhdGluZyBlbmdpbmU+KV0KICAgICAgICAgICAgICAgIFstLWVuYWJsZS1wb3N0LXByb2Nlc3MtZmlsZV0KICAgICAgICAgICAgICAgIFsoLWcgPGdlbmVyYXRvciBuYW1lPiB8IC0tZ2VuZXJhdG9yLW5hbWUgPGdlbmVyYXRvciBuYW1lPildCiAgICAgICAgICAgICAgICBbLS1nZW5lcmF0ZS1hbGlhcy1hcy1tb2RlbF0gWy0tZ2l0LWhvc3QgPGdpdCBob3N0Pl0KICAgICAgICAgICAgICAgIFstLWdpdC1yZXBvLWlkIDxnaXQgcmVwbyBpZD5dIFstLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD5dCiAgICAgICAgICAgICAgICBbLS1nbG9iYWwtcHJvcGVydHkgPGdsb2JhbCBwcm9wZXJ0aWVzPi4uLl0gWy0tZ3JvdXAtaWQgPGdyb3VwIGlkPl0KICAgICAgICAgICAgICAgIFstLWh0dHAtdXNlci1hZ2VudCA8aHR0cCB1c2VyIGFnZW50Pl0KICAgICAgICAgICAgICAgIFsoLWkgPHNwZWMgZmlsZT4gfCAtLWlucHV0LXNwZWMgPHNwZWMgZmlsZT4pXQogICAgICAgICAgICAgICAgWy0taWdub3JlLWZpbGUtb3ZlcnJpZGUgPGlnbm9yZSBmaWxlIG92ZXJyaWRlIGxvY2F0aW9uPl0KICAgICAgICAgICAgICAgIFstLWltcG9ydC1tYXBwaW5ncyA8aW1wb3J0IG1hcHBpbmdzPi4uLl0KICAgICAgICAgICAgICAgIFstLWluc3RhbnRpYXRpb24tdHlwZXMgPGluc3RhbnRpYXRpb24gdHlwZXM+Li4uXQogICAgICAgICAgICAgICAgWy0taW52b2tlci1wYWNrYWdlIDxpbnZva2VyIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWy0tbGFuZ3VhZ2Utc3BlY2lmaWMtcHJpbWl0aXZlcyA8bGFuZ3VhZ2Ugc3BlY2lmaWMgcHJpbWl0aXZlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1sZWdhY3ktZGlzY3JpbWluYXRvci1iZWhhdmlvcl0gWy0tbGlicmFyeSA8bGlicmFyeT5dCiAgICAgICAgICAgICAgICBbLS1sb2ctdG8tc3RkZXJyXSBbLS1taW5pbWFsLXVwZGF0ZV0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtcHJlZml4IDxtb2RlbCBuYW1lIHByZWZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1uYW1lLXN1ZmZpeCA8bW9kZWwgbmFtZSBzdWZmaXg+XQogICAgICAgICAgICAgICAgWy0tbW9kZWwtcGFja2FnZSA8bW9kZWwgcGFja2FnZT5dCiAgICAgICAgICAgICAgICBbKC1vIDxvdXRwdXQgZGlyZWN0b3J5PiB8IC0tb3V0cHV0IDxvdXRwdXQgZGlyZWN0b3J5PildIFsoLXAgPGFkZGl0aW9uYWwgcHJvcGVydGllcz4gfCAtLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPikuLi5dCiAgICAgICAgICAgICAgICBbLS1wYWNrYWdlLW5hbWUgPHBhY2thZ2UgbmFtZT5dIFstLXJlbGVhc2Utbm90ZSA8cmVsZWFzZSBub3RlPl0KICAgICAgICAgICAgICAgIFstLXJlbW92ZS1vcGVyYXRpb24taWQtcHJlZml4XQogICAgICAgICAgICAgICAgWy0tcmVzZXJ2ZWQtd29yZHMtbWFwcGluZ3MgPHJlc2VydmVkIHdvcmQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWygtcyB8IC0tc2tpcC1vdmVyd3JpdGUpXSBbLS1zZXJ2ZXItdmFyaWFibGVzIDxzZXJ2ZXIgdmFyaWFibGVzPi4uLl0KICAgICAgICAgICAgICAgIFstLXNraXAtdmFsaWRhdGUtc3BlY10gWy0tc3RyaWN0LXNwZWMgPHRydWUvZmFsc2Ugc3RyaWN0IGJlaGF2aW9yPl0KICAgICAgICAgICAgICAgIFsoLXQgPHRlbXBsYXRlIGRpcmVjdG9yeT4gfCAtLXRlbXBsYXRlLWRpciA8dGVtcGxhdGUgZGlyZWN0b3J5PildCiAgICAgICAgICAgICAgICBbLS10eXBlLW1hcHBpbmdzIDx0eXBlIG1hcHBpbmdzPi4uLl0gWygtdiB8IC0tdmVyYm9zZSldCgpPUFRJT05TCiAgICAgICAgLWEgPGF1dGhvcml6YXRpb24+LCAtLWF1dGggPGF1dGhvcml6YXRpb24+CiAgICAgICAgICAgIGFkZHMgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHdoZW4gZmV0Y2hpbmcgdGhlIE9wZW5BUEkgZGVmaW5pdGlvbnMKICAgICAgICAgICAgcmVtb3RlbHkuIFBhc3MgaW4gYSBVUkwtZW5jb2RlZCBzdHJpbmcgb2YgbmFtZTpoZWFkZXIgd2l0aCBhIGNvbW1hCiAgICAgICAgICAgIHNlcGFyYXRpbmcgbXVsdGlwbGUgdmFsdWVzCgouLi4uLi4gKHJlc3VsdHMgb21pdHRlZCkKCiAgICAgICAgLXYsIC0tdmVyYm9zZQogICAgICAgICAgICB2ZXJib3NlIG1vZGUKCmBgYAoKWW91IGNhbiB0aGVuIGNvbXBpbGUgYW5kIHJ1biB0aGUgY2xpZW50LCBhcyB3ZWxsIGFzIHVuaXQgdGVzdHMgYWdhaW5zdCBpdDoKCmBgYHNoCmNkIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEvb2todHRwLWdzb24KbXZuIHBhY2thZ2UKYGBgCgpPdGhlciBnZW5lcmF0b3JzIGhhdmUgW3NhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvdHJlZS9tYXN0ZXIvc2FtcGxlcykgdG9vLgoKIyMjIFszLjEgLSBDdXN0b21pemF0aW9uXSgjdGFibGUtb2YtY29udGVudHMpCgpQbGVhc2UgcmVmZXIgdG8gW2N1c3RvbWl6YXRpb24ubWRdKGRvY3MvY3VzdG9taXphdGlvbi5tZCkgb24gaG93IHRvIGN1c3RvbWl6ZSB0aGUgb3V0cHV0IChlLmcuIHBhY2thZ2UgbmFtZSwgdmVyc2lvbikKCiMjIyBbMy4yIC0gV29ya2Zsb3cgSW50ZWdyYXRpb24gKE1hdmVuLCBHcmFkbGUsIEdpdGh1YiwgQ0kvQ0QpXSgjdGFibGUtb2YtY29udGVudHMpCgpQbGVhc2UgcmVmZXIgdG8gW2ludGVncmF0aW9uLm1kXShkb2NzL2ludGVncmF0aW9uLm1kKSBvbiBob3cgdG8gaW50ZWdyYXRlIE9wZW5BUEkgZ2VuZXJhdG9yIHdpdGggTWF2ZW4sIEdyYWRsZSwgc2J0LCBCYXplbCwgR2l0aHViIGFuZCBDSS9DRC4KCiMjIyBbMy4zIC0gT25saW5lIE9wZW5BUEkgZ2VuZXJhdG9yXSgjdGFibGUtb2YtY29udGVudHMpCgpIZXJlIGFyZSB0aGUgcHVibGljIG9ubGluZSBzZXJ2aWNlczoKCi0gbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uOiBodHRwczovL2FwaS5vcGVuYXBpLWdlbmVyYXRvci50ZWNoCi0gbGF0ZXN0IG1hc3RlcjogaHR0cHM6Ly9hcGktbGF0ZXN0LW1hc3Rlci5vcGVuYXBpLWdlbmVyYXRvci50ZWNoICh1cGRhdGVkIHdpdGggbGF0ZXN0IG1hc3RlciBldmVyeSBob3VyKQoKVGhlIHNlcnZlciBpcyBzcG9uc29yZWQgYnkgW0xpbm9kZV0oaHR0cHM6Ly93d3cubGlub2RlLmNvbS8pIFshW0xpbm9kZSBMb2dvXShodHRwczovL3d3dy5saW5vZGUuY29tL21lZGlhL2ltYWdlcy9sb2dvcy9zdGFuZGFyZC9saWdodC9saW5vZGUtbG9nb19zdGFuZGFyZF9saWdodF9zbWFsbC5wbmcpXShodHRwczovL3d3dy5saW5vZGUuY29tLykKCihUaGVzZSBzZXJ2aWNlcyBhcmUgYmV0YSBhbmQgZG8gbm90IGhhdmUgYW55IGd1YXJhbnRlZSBvbiBzZXJ2aWNlIGxldmVsKQoKUGxlYXNlIHJlZmVyIHRvIFtvbmxpbmUubWRdKGRvY3Mvb25saW5lLm1kKSBvbiBob3cgdG8gcnVuIGFuZCB1c2UgdGhlIGBvcGVuYXBpLWdlbmVyYXRvci1vbmxpbmVgIC0gYSB3ZWIgc2VydmljZSBmb3IgYG9wZW5hcGktZ2VuZXJhdG9yYC4KCiMjIyBbMy40IC0gTGljZW5zZSBpbmZvcm1hdGlvbiBvbiBHZW5lcmF0ZWQgQ29kZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKVGhlIE9wZW5BUEkgR2VuZXJhdG9yIHByb2plY3QgaXMgaW50ZW5kZWQgYXMgYSBiZW5lZml0IGZvciB1c2VycyBvZiB0aGUgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbi4gIFRoZSBwcm9qZWN0IGl0c2VsZiBoYXMgdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkgYXMgc3BlY2lmaWVkLiBJbiBhZGRpdGlvbiwgcGxlYXNlIHVuZGVyc3RhbmQgdGhlIGZvbGxvd2luZyBwb2ludHM6CgoqIFRoZSB0ZW1wbGF0ZXMgaW5jbHVkZWQgd2l0aCB0aGlzIHByb2plY3QgYXJlIHN1YmplY3QgdG8gdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkuCiogR2VuZXJhdGVkIGNvZGUgaXMgaW50ZW50aW9uYWxseSBfbm90XyBzdWJqZWN0IHRvIHRoZSBwYXJlbnQgcHJvamVjdCBsaWNlbnNlCgpXaGVuIGNvZGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhpcyBwcm9qZWN0LCBpdCBzaGFsbCBiZSBjb25zaWRlcmVkICoqQVMgSVMqKiBhbmQgb3duZWQgYnkgdGhlIHVzZXIgb2YgdGhlIHNvZnR3YXJlLiAgVGhlcmUgYXJlIG5vIHdhcnJhbnRpZXMtLWV4cHJlc3NlZCBvciBpbXBsaWVkLS1mb3IgZ2VuZXJhdGVkIGNvZGUuICBZb3UgY2FuIGRvIHdoYXQgeW91IHdpc2ggd2l0aCBpdCwgYW5kIG9uY2UgZ2VuZXJhdGVkLCB0aGUgY29kZSBpcyB5b3VyIHJlc3BvbnNpYmlsaXR5IGFuZCBzdWJqZWN0IHRvIHRoZSBsaWNlbnNpbmcgdGVybXMgdGhhdCB5b3UgZGVlbSBhcHByb3ByaWF0ZS4KCiMjIyBbMy41IC0gSURFIEludGVncmF0aW9uXSgjdGFibGUtb2YtY29udGVudHMpCgpIZXJlIGlzIGEgbGlzdCBvZiBjb21tdW5pdHktY29udHJpYnV0ZWQgSURFIHBsdWctaW5zIHRoYXQgaW50ZWdyYXRlIHdpdGggT3BlbkFQSSBHZW5lcmF0b3I6CgotIEVjbGlwc2U6IFtDb2Rld2luZCBPcGVuQVBJIFRvb2xzIGZvciBFY2xpcHNlXShodHRwczovL3d3dy5lY2xpcHNlLm9yZy9jb2Rld2luZC9vcGVuLWFwaS10b29scy1mb3ItZWNsaXBzZS5odG1sKSBieSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tKQotIEludGVsbGlKIElERUE6IFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzg0MzMtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vamltc2NodWJlcnQudXMvIy8pCi0gSW50ZWxsaUogSURFQTogW1NlbnlhIEVkaXRvcl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzEwNjkwLXNlbnlhLWVkaXRvcikgYnkgW3NlbnlhLmlvXShodHRwczovL3NlbnlhLmlvKQotIFtSZXByZVplbiBBUEkgU3R1ZGlvXShodHRwczovL3d3dy5yZXByZXplbi5jb20vKQotIFZpc3VhbCBTdHVkaW86IFtSRVNUIEFQSSBDbGllbnQgQ29kZSBHZW5lcmF0b3JdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFwaUNsaWVudENvZGVHZW5lcmF0b3IpIGJ5IFtDaHJpc3RpYW4gUmVzbWEgSGVsbGVdKGh0dHBzOi8vY2hyaXN0aWFuLWhlbGxlLmJsb2dzcG90LmNvbS8pCi0gVmlzdWFsIFN0dWRpbyBDb2RlOiBbQ29kZXdpbmQgT3BlbkFQSSBUb29sc10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUlCTS5jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBieSBbSUJNXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vcHVibGlzaGVycy9JQk0pCgoKIyMgWzQgLSBDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKSGVyZSBhcmUgc29tZSBjb21wYW5pZXMvcHJvamVjdHMgKGFscGhhYmV0aWNhbCBvcmRlcikgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgaW4gcHJvZHVjdGlvbi4gVG8gYWRkIHlvdXIgY29tcGFueS9wcm9qZWN0IHRvIHRoZSBsaXN0LCBwbGVhc2UgdmlzaXQgW1JFQURNRS5tZF0oUkVBRE1FLm1kKSBhbmQgY2xpY2sgb24gdGhlIGljb24gdG8gZWRpdCB0aGUgcGFnZS4KCi0gW0FhbGJvcmcgVW5pdmVyc2l0eV0oaHR0cHM6Ly93d3cuYWF1LmRrKQotIFtBZGFwdGFudCBTb2x1dGlvbnMgQUddKGh0dHBzOi8vd3d3LmFkYXB0YW50LmlvLykKLSBbYWRlc3NvIFNFXShodHRwczovL3d3dy5hZGVzc28uZGUvKQotIFtBZHllbl0oaHR0cHM6Ly93d3cuYWR5ZW4uY29tLykKLSBbQWdvZGFdKGh0dHBzOi8vd3d3LmFnb2RhLmNvbS8pCi0gW0FpcnRoaW5nc10oaHR0cHM6Ly93d3cuYWlydGhpbmdzLmNvbS8pCi0gW0FsZXJpIFNvbHV0aW9ucyBHbWJoXShodHRwczovL3d3dy5hbGVyaS5kZS8pCi0gW0FsbGlhbnpdKGh0dHBzOi8vd3d3LmFsbGlhbnouY29tKQotIFtBbmd1bGFyLlNjaHVsZV0oaHR0cHM6Ly9hbmd1bGFyLnNjaHVsZS8pCi0gW0Fxb3ZpYV0oaHR0cHM6Ly9hcW92aWEuY29tLykKLSBbQXVzdHJhbGlhIGFuZCBOZXcgWmVhbGFuZCBCYW5raW5nIEdyb3VwIChBTlopXShodHRwOi8vd3d3LmFuei5jb20vKQotIFtBcmR1aW5vXShodHRwczovL3d3dy5hcmR1aW5vLmNjLykKLSBbQVNLVUxdKGh0dHBzOi8vd3d3LmFza3VsLmNvLmpwKQotIFtBbWF6b24gV2ViIFNlcnZpY2VzIChBV1MpXShodHRwczovL2F3cy5hbWF6b24uY29tLykKLSBbYjw+Y29tXShodHRwczovL2ItY29tLmNvbS9lbikKLSBb55m+5bqm6JCl6ZSAXShodHRwczovL2UuYmFpZHUuY29tKQotIFtCYW5kd2lkdGhdKGh0dHBzOi8vZGV2LmJhbmR3aWR0aC5jb20pCi0gW0JhbnphaSBDbG91ZF0oaHR0cHM6Ly9iYW56YWljbG91ZC5jb20pCi0gW0JJTURhdGEuaW9dKGh0dHBzOi8vYmltZGF0YS5pbykKLSBbQml0aG9zdCBHbWJIXShodHRwczovL3d3dy5iaXRob3N0LmNoKQotIFtCb3NjaCBDb25uZWN0ZWQgSW5kdXN0cnldKGh0dHBzOi8vd3d3LmJvc2NoLWNvbm5lY3RlZC1pbmR1c3RyeS5jb20pCi0gW0JveGV2ZXJdKGh0dHBzOi8vd3d3LmJveGV2ZXIuY29tLykKLSBbQnJldnldKGh0dHBzOi8vd3d3LmJyZXZ5LmNvbSkKLSBbQnVua2VyIEhvbGRpbmcgR3JvdXBdKGh0dHBzOi8vd3d3LmJ1bmtlci1ob2xkaW5nLmNvbS8pCi0gW0NhbGlmb3JuaWEgU3RhdGUgVW5pdmVyc2l0eSwgTm9ydGhyaWRnZV0oaHR0cHM6Ly93d3cuY3N1bi5lZHUpCi0gW0NBTV0oaHR0cHM6Ly93d3cuY2FtLWluYy5jby5qcC8pCi0gW0NhbXB0b2NhbXBdKGh0dHBzOi8vd3d3LmNhbXB0b2NhbXAuY29tL2VuKQotIFtDaHJpc3RvcGhlciBRdWVlbiBDb25zdWx0aW5nXShodHRwczovL3d3dy5jaHJpc3RvcGhlcnF1ZWVuY29uc3VsdGluZy5jb20vKQotIFtDaXNjb10oaHR0cHM6Ly93d3cuY2lzY28uY29tLykKLSBbY29kZWNlbnRyaWMgQUddKGh0dHBzOi8vd3d3LmNvZGVjZW50cmljLmRlLykKLSBbQ29pbkFQSV0oaHR0cHM6Ly93d3cuY29pbmFwaS5pby8pCi0gW0NvbW1lbmNpc10oaHR0cHM6Ly93d3cuY29tbWVuY2lzLmNvbS8pCi0gW2Nyb25uIEdtYkhdKGh0dHBzOi8vd3d3LmNyb25uLmRlLykKLSBbQ3Jvc3NvdmVyIEhlYWx0aF0oaHR0cHM6Ly9jcm9zc292ZXJoZWFsdGguY29tLykKLSBbQ3VwaXhdKGh0dHBzOi8vd3d3LmN1cGl4LmNvbS8pCi0gW0RhdGFkb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20pCi0gW0RCIFN5c3RlbF0oaHR0cHM6Ly93d3cuZGJzeXN0ZWwuZGUpCi0gW0RlZXBvcnV0ZS5haV0oaHR0cHM6Ly93d3cuZGVlcHJvdXRlLmFpLykKLSBbRGV2c3VwcGx5XShodHRwczovL3d3dy5kZXZzdXBwbHkuY29tLykKLSBbZG1URUNIIEdtYkhdKGh0dHBzOi8vd3d3LmRtVEVDSC5kZSkKLSBbRG9jU3ByaW5nXShodHRwczovL2RvY3NwcmluZy5jb20vKQotIFtkd2FuZ29dKGh0dHBzOi8vZHdhbmdvLmNvLmpwLykKLSBbRWRnZSBJbXB1bHNlXShodHRwczovL3d3dy5lZGdlaW1wdWxzZS5jb20vKQotIFtFbGVtZW50IEFJXShodHRwczovL3d3dy5lbGVtZW50YWkuY29tLykKLSBbRW1ib3RpY3NdKGh0dHBzOi8vd3d3LmVtYm90aWNzLmNvbS8pCi0gW2VtaW5lb10oaHR0cHM6Ly93d3cuZW1pbmVvLmNoKQotIFtmYXN0bHldKGh0dHBzOi8vd3d3LmZhc3RseS5jb20vKQotIFtGZW5lcmdvXShodHRwczovL3d3dy5mZW5lcmdvLmNvbS8pCi0gW2ZyZWVlXShodHRwczovL2NvcnAuZnJlZWUuY28uanAvZW4vKQotIFtGcmVzaENlbGxzXShodHRwczovL3d3dy5mcmVzaGNlbGxzLmRlLykKLSBbRnVzZV0oaHR0cHM6Ly93d3cuZnVzZS5uby8pCi0gW0dhbnRuZXJdKGh0dHBzOi8vd3d3LmdhbnRuZXIuY29tKQotIFtHZW5GbG93XShodHRwczovL2dpdGh1Yi5jb20vUmVwcmVaZW4vR2VuRmxvdykKLSBbR2V0WW91ckd1aWRlXShodHRwczovL3d3dy5nZXR5b3VyZ3VpZGUuY29tLykKLSBbR2xvdm9dKGh0dHBzOi8vZ2xvdm9hcHAuY29tLykKLSBbR01PIFBlcGFib10oaHR0cHM6Ly9wZXBhYm8uY29tL2VuLykKLSBbR29EYWRkeV0oaHR0cHM6Ly9nb2RhZGR5LmNvbSkKLSBbR3VtdHJlZV0oaHR0cHM6Ly9ndW10cmVlLmNvbSkKLSBbSGVyZV0oaHR0cHM6Ly9kZXZlbG9wZXIuaGVyZS5jb20vKQotIFtJQk1dKGh0dHBzOi8vd3d3LmlibS5jb20vKQotIFtJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbSkKLSBbSW50ZXJ4aW9uXShodHRwczovL3d3dy5pbnRlcnhpb24uY29tKQotIFtJbnF1aXNpY29dKGh0dHBzOi8vaW5xdWlzaWNvLmNvbSkKLSBbSnVzdFN0YXJdKGh0dHBzOi8vd3d3Lmp1c3RzdGFyaW5mby5jb20pCi0gW2s2LmlvXShodHRwczovL2s2LmlvLykKLSBbS2xhcm5hXShodHRwczovL3d3dy5rbGFybmEuY29tLykKLSBbS3JvbnNvZnQgRGV2ZWxvcG1lbnRdKGh0dHBzOi8vd3d3Lmtyb25zb2Z0LnJvL2hvbWUvKQotIFtLdWJlcm5ldGVzXShodHRwczovL2t1YmVybmV0ZXMuaW8pCi0gW0xhbmRlc2hhdXB0c3RhZHQgTcO8bmNoZW4gLSBpdEBNXShodHRwczovL211ZW5jaGVuLmRpZ2l0YWwvaXQtYXQtbS8pCi0gW0xpbm9kZV0oaHR0cHM6Ly93d3cubGlub2RlLmNvbS8pCi0gW0xvZ2ljZHJvcF0oaHR0cHM6Ly93d3cubG9naWNkcm9wLmNvbSkKLSBbTHVtZXJpc10oaHR0cHM6Ly93d3cubHVtZXJpcy5jb20pCi0gW0xWTSBWZXJzaWNoZXJ1bmdlbl0oaHR0cHM6Ly93d3cubHZtLmRlKQotIFtNYWlsU2x1cnBdKGh0dHBzOi8vd3d3Lm1haWxzbHVycC5jb20pCi0gW01hbnRpY29yZSBTZWFyY2hdKGh0dHBzOi8vbWFudGljb3Jlc2VhcmNoLmNvbSkKLSBbTWFzdGVyY2FyZF0oaHR0cHM6Ly9kZXZlbG9wZXJzLm1hc3RlcmNhcmQuY29tKQotIFtNw6lkaWF2aXNpb25dKGh0dHBzOi8vd3d3Lm1lZGlhdmlzaW9uLmZyLykKLSBbTWV0YXN3aXRjaF0oaHR0cHM6Ly93d3cubWV0YXN3aXRjaC5jb20vKQotIFtNb29uVmlzaW9uXShodHRwczovL3d3dy5tb29udmlzaW9uLmlvLykKLSBbTXl3b3Jrb3V0XShodHRwczovL215d29ya291dC5jb20pCi0gW05hbVNvcl0oaHR0cHM6Ly93d3cubmFtc29yLmNvbS8pCi0gW05ldmVyZmFpbF0oaHR0cHM6Ly93d3cubmV2ZXJmYWlsLmNvbS8pCi0gW05ldWVyRW5lcmd5XShodHRwczovL25ldWVyZW5lcmd5LmNvbSkKLSBbTm9raWFdKGh0dHBzOi8vd3d3Lm5va2lhLmNvbS8pCi0gW09uZVNpZ25hbF0oaHR0cHM6Ly93d3cub25lc2lnbmFsLmNvbS8pCi0gW09wdGlvbnMgQ2xlYXJpbmcgQ29ycG9yYXRpb24gKE9DQyldKGh0dHBzOi8vd3d3LnRoZW9jYy5jb20vKQotIFtPcGVuZXRdKGh0dHBzOi8vd3d3Lm9wZW5ldC5jb20vKQotIFtvcGVuVkFMSURBVElPTl0oaHR0cHM6Ly9vcGVudmFsaWRhdGlvbi5pby8pCi0gW09yYWNsZV0oaHR0cHM6Ly93d3cub3JhY2xlLmNvbS8pCi0gW1BheG9zXShodHRwczovL3d3dy5wYXhvcy5jb20pCi0gW1BsYWlkXShodHRwczovL3BsYWlkLmNvbSkKLSBbUExBSUQsIEluYy5dKGh0dHBzOi8vcGxhaWQuY28uanAvKQotIFtQaW50ZXJlc3RdKGh0dHBzOi8vd3d3LnBpbnRlcmVzdC5jb20pCi0gW1Bvbmljb2RlXShodHRwczovL3Bvbmljb2RlLmRldi8pCi0gW1ByaWNlZnhdKGh0dHBzOi8vd3d3LnByaWNlZnguY29tLykKLSBbUHJpbnROYW5ueV0oaHR0cHM6Ly93d3cucHJpbnQtbmFubnkuY29tLykKLSBbUHJvbWV0aGV1cy9BbGVydG1hbmFnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9tZXRoZXVzL2FsZXJ0bWFuYWdlcikKLSBbUWF2YXJdKGh0dHBzOi8vd3d3LnFhdmFyLmNvbSkKLSBbUUVESVRdKGh0dHBzOi8vcWVkLWl0LmNvbSkKLSBbUW92ZXJ5XShodHRwczovL3FvdmVyeS5jb20pCi0gW1F1bGl4IFN5c3RlbXNdKGh0dHBzOi8vd3d3LnF1bGl4LmNvbSkKLSBbUmFrc3VsXShodHRwczovL2NvcnAucmFrc3VsLmNvbSkKLSBbUmFpZmZlaXNlbiBTY2h3ZWl6IEdlbm9zc2Vuc2NoYWZ0XShodHRwczovL3d3dy5yYWlmZmVpc2VuLmNoKQotIFtSZWRIYXRdKGh0dHBzOi8vd3d3LnJlZGhhdC5jb20pCi0gW1JlcHJlWmVuIEFQSSBTdHVkaW9dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9zd2FnZ2VyLW9wZW5hcGktY29kZS1nZW5lcmF0aW9uLWFwaS1maXJzdC1taWNyb3NlcnZpY2VzLWVudGVycHJpc2UtZGV2ZWxvcG1lbnQpCi0gW1JFU1QgVW5pdGVkXShodHRwczovL3Jlc3R1bml0ZWQuY29tKQotIFtSb2JvY29ycF0oaHR0cHM6Ly93d3cucm9ib2NvcnAuY29tKQotIFtSb2JvdGluZnJhXShodHRwczovL3d3dy5yb2JvdGluZnJhLmNvbSkKLSBbU21hcnRIUl0oaHR0cHM6Ly9zbWFydGhyLmNvLmpwLykKLSBbU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50XShodHRwczovL3d3dy5zaWUuY29tL2VuL2luZGV4Lmh0bWwpCi0gW1NwbGl0aXRdKGh0dHBzOi8vd3d3LnNwbGl0aXQuY29tLykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdXZhXShodHRwczovL3d3dy5zdXZhLmNoLykKLSBbVGVsc3RyYV0oaHR0cHM6Ly9kZXYudGVsc3RyYS5jb20pCi0gW1RlbmNlbnRdKGh0dHBzOi8vd3d3LnRlbmNlbnQuY29tKQotIFtUaGUgVW5pdmVyc2l0eSBvZiBBaXp1XShodHRwczovL3d3dy51LWFpenUuYWMuanAvZW4vKQotIFtUcmFuc2x1Y2VudCBBcFNdKGh0dHBzOi8vd3d3LnRyYW5zbHVjZW50LmRrKQotIFtUcmF2ZWxUaW1lIHBsYXRmb3JtXShodHRwczovL3d3dy50cmF2ZWx0aW1lcGxhdGZvcm0uY29tLykKLSBbVHJpYmFsU2NhbGVdKGh0dHBzOi8vd3d3LnRyaWJhbHNjYWxlLmNvbSkKLSBbVHJpZm9ya10oaHR0cHM6Ly90cmlmb3JrLmNvbSkKLSBbVFVJIEluZm9UZWMgR21iSF0oaHR0cDovL3d3dy50dWktaW5mb3RlYy5jb20vKQotIFtUd2lsaW9dKGh0dHBzOi8vd3d3LnR3aWxpby5jb20vKQotIFtUd2l0dGVyXShodHRwczovL3R3aXR0ZXIuY29tKQotIFt1bmJsdSBpbmMuXShodHRwczovL3d3dy51bmJsdS5jb20vKQotIFtWZWFtbHldKGh0dHBzOi8vd3d3LnZlYW1seS5jb20vKQotIFtWTVdhcmVdKGh0dHBzOi8vd3d3LnZtd2FyZS5jb20vKQotIFt3YnQtc29sdXRpb25zXShodHRwczovL3d3dy53YnQtc29sdXRpb25zLmRlLykKLSBbV29sZWV0XShodHRwczovL3d3dy53b2xlZXQuaW8vKQotIFtXU08yXShodHRwczovL3dzbzIuY29tLykKLSBbVm91Y2hlcnkuaW9dKGh0dHBzOi8vdm91Y2hlcnkuaW8pCi0gW1hlcm9dKGh0dHBzOi8vd3d3Lnhlcm8uY29tLykKLSBbWWFob28gSmFwYW5dKGh0dHBzOi8vd3d3LnlhaG9vLmNvLmpwLykKLSBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvKQotIFtWb25hZ2VdKGh0dHBzOi8vdm9uYWdlLmNvbSkKLSBbWUlUVSBUZWNobm9sb2d5XShodHRwczovL3d3dy55aXR1dGVjaC5jb20vKQotIFtZZWxwXShodHRwczovL3d3dy55ZWxwLmNvbS8pCi0gW1phbGFuZG9dKGh0dHBzOi8vd3d3LnphbGFuZG8uY29tKQotIFszRFMgT3V0c2NhbGVdKGh0dHBzOi8vd3d3Lm91dHNjYWxlLmNvbS8pCgojIyBbNSAtIFByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3RhYmxlLW9mLWNvbnRlbnRzKQoKLSAyMDE4LzA1LzEyIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gY29tbXVuaXR5IGRyaXZlbuOBp+aIkOmVt+OBmeOCi+OCs+ODvOODieOCuOOCp+ODjeODrOODvOOCv10oaHR0cHM6Ly9hY2tpbnRvc2guZ2l0aHViLmlvL2Jsb2cvMjAxOC8wNS8xMi9vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpCi0gMjAxOC8wNS8xNSAtIFtTdGFydGluZyBhIG5ldyBvcGVuLXNvdXJjZSBwcm9qZWN0XShodHRwOi8vam1pbmkuZ2l0aHViLmlvL2Jsb2cvMjAxOC8yMDE4LTA1LTE1X25ldy1vcGVuLXNvdXJjZS1wcm9qZWN0Lmh0bWwpIGJ5IFtKZXJlbWllIEJyZXNzb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9qbWluaSkKLSAyMDE4LzA1LzE1IC0gW1JFU1QgQVBJ5LuV5qeY44GL44KJQVBJ44Kv44Op44Kk44Ki44Oz44OI44KE44K544K/44OW44K144O844OQ44KS6Ieq5YuV55Sf5oiQ44GZ44KL44CMT3BlbkFQSSBHZW5lcmF0b3LjgI3jgqrjg7zjg5fjg7Pjgr3jg7zjgrnjgaflhazplovjgIJTd2FnZ2VyIENvZGVnZW7jgYvjgonjga7jg5Xjgqnjg7zjgq9dKGh0dHBzOi8vd3d3LnB1YmxpY2tleTEuanAvYmxvZy8xOC9yZXN0X2FwaWFwaW9wZW5hcGlfZ2VuZXJhdG9yc3dhZ2dlcl9nZW5lcmF0b3IuaHRtbCkgYnkgW1B1YmxpY2tleV0oaHR0cHM6Ly93d3cucHVibGlja2V5MS5qcCkKLSAyMDE4LzA2LzA4IC0gW1N3YWdnZXIgQ29kZWdlbiBpcyBub3cgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYW5ndWxhci5zY2h1bGUvYmxvZy8yMDE4LTA2LXN3YWdnZXItY29kZWdlbi1pcy1ub3ctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtKb2hhbm5lc0hvcHBlXShodHRwczovL2dpdGh1Yi5jb20vSm9oYW5uZXNIb3BwZSkKLSAyMDE4LzA2LzIxIC0gW0Nvbm5lY3QgeW91ciBKSGlwc3RlciBhcHBzIHRvIHRoZSB3b3JsZCBvZiBBUElzIHdpdGggT3BlbkFQSSBhbmQgZ1JQQ10oaHR0cHM6Ly9mci5zbGlkZXNoYXJlLm5ldC9jaGJvcm5ldC9qaGlwc3Rlci1jb25mLTIwMTgtY29ubmVjdC15b3VyLWpoaXBzdGVyLWFwcHMtdG8tdGhlLXdvcmxkLW9mLWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1ncnBjKSBieSBbQ2hyaXN0b3BoZSBCb3JuZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jYm9ybmV0KSBhdCBbSkhpcHN0ZXIgQ29uZiAyMDE4XShodHRwczovL2poaXBzdGVyLWNvbmYuZ2l0aHViLmlvLykKLSAyMDE4LzA2LzIyIC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBHYXRsaW5nIENsaWVudCDjgpLnlJ/miJDjgZfjgabjgb/jgZ9dKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8wNi8yMi8wNzMwMDApIGF0IFvjgr3jg6LjgrXjg7NdKGh0dHBzOi8vcm9oa2kuaGF0ZW5hYmxvZy5jb20vKQotIDIwMTgvMDYvMjcgLSBbTGVzc29ucyBMZWFybmVkIGZyb20gTGVhZGluZyBhbiBPcGVuLVNvdXJjZSBQcm9qZWN0IFN1cHBvcnRpbmcgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9sZXNzb25zLWxlYXJuZWQtZnJvbS1sZWFkaW5nLWFuLW9wZW4tc291cmNlLXByb2plY3Qtc3VwcG9ydGluZy0zMC1wbHVzLXByb2dyYW1taW5nLWxhbmd1YWdlcykgLSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpIGF0IFtMaW51eENvbiArIENvbnRhaW5lckNvbiArIENsb3VkT3BlbiBDaGluYSAyMDE4XShodHRwOi8vYml0Lmx5LzJ3YURLS1gpCi0gMjAxOC8wNy8xOSAtIFtPcGVuQVBJIEdlbmVyYXRvciBDb250cmlidXRpb24gUXVpY2tzdGFydCAtIFJpbmdDZW50cmFsIEdvIFNES10oaHR0cHM6Ly9tZWRpdW0uY29tL3JpbmdjZW50cmFsLWRldmVsb3BlcnMvb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWdvLWNvbnRyaWJ1dGlvbi1xdWlja3N0YXJ0LThjYzcyYmYzN2I1MykgYnkgW0pvaG4gV2FuZ10oaHR0cHM6Ly9naXRodWIuY29tL2dyb2tpZnkpCi0gMjAxOC8wOC8yMiAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBruODl+ODreOCuOOCp+OCr+ODiOani+aIkOOBquOBqeOBruODoeODol0oaHR0cHM6Ly95aW5tLmluZm8vMjAxODA4MjIvKSBieSBbWXVzdWtlIElpbnVtYV0oaHR0cHM6Ly9naXRodWIuY29tL3lpbm0pCi0gMjAxOC8wOS8xMiAtIFtSZXByZVplbiBhbmQgT3BlbkFQSSAzLjA6IE5vdyBpcyB0aGUgVGltZV0oaHR0cHM6Ly93d3cucmVwcmV6ZW4uY29tL2Jsb2cvcmVwcmV6ZW4tb3BlbmFwaS0zLjAtdXBncmFkZS1ub3ctaXMtdGhlLXRpbWUpIGJ5IFtNaWxlcyBEYWZmaW5dKGh0dHBzOi8vd3d3LnJlcHJlemVuLmNvbS9ibG9nL2F1dGhvci9taWxlcy1kYWZmaW4pCi0gMjAxOC8xMC8zMSAtIFtBIG5vZGUgcGFja2FnZSB3cmFwcGVyIGZvciBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL0hhcm1vV2F0Y2gvb3BlbmFwaS1nZW5lcmF0b3ItY2xpKQotIDIwMTgvMTEvMDMgLSBbT3BlbkFQSSBHZW5lcmF0b3IgKyBnb2xhbmcgKyBGbHV0dGVyIOOBp+OCouODl+ODqumWi+eZul0oaHR0cDovL3J5dWljaGkxMTFzdGQuaGF0ZW5hYmxvZy5jb20vZW50cnkvMjAxOC8xMS8wMy8yMTQwMDUpIGJ5IFtSeXVpY2hpIERhaWdvXShodHRwczovL2dpdGh1Yi5jb20vcnl1aWNoaTExMSkKLSAyMDE4LzExLzE1IC0gW+WfuuS6jm9wZW5hcGkzLjDnmoR5YW1s5paH5Lu255Sf5oiQamF2YeS7o+eggeeahOS4gOasoeWunui3tV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l6eTE5OTM5MS9hcnRpY2xlL2RldGFpbHMvODQwMjM5ODIpIGJ5IFvnhLHprZTnjotdKGh0dHBzOi8vbWUuY3Nkbi5uZXQveXp5MTk5MzkxKQotIDIwMTgvMTEvMTggLSBbR2VuZXJhdGluZyBQSFAgbGlicmFyeSBjb2RlIGZyb20gT3BlbkFQSV0oaHR0cHM6Ly9sb3JuYWphbmUubmV0L3Bvc3RzLzIwMTgvZ2VuZXJhdGluZy1waHAtbGlicmFyeS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW0xvcm5hIEphbmVdKGh0dHBzOi8vbG9ybmFqYW5lLm5ldC8pIGF0IFtMT1JOQUpBTkUgQmxvZ10oaHR0cHM6Ly9sb3JuYWphbmUubmV0L2Jsb2cpCi0gMjAxOC8xMS8xOSAtIFtPcGVuQVBJcyBhcmUgZXZlcnl3aGVyZV0oaHR0cHM6Ly95b3V0dS5iZS8tbERvdDRZbjdEZykgYnkgW0plcmVtaWUgQnJlc3NvbiAoVW5ibHUpXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIGF0IFtFY2xpcHNlQ29uIEV1cm9wZSAyMDE4XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE4KQotIDIwMTgvMTIvMDkgLSBbb3BlbmFwaS1nZW5lcmF0b3Ig44KS44Kr44K544K/44Oe44Kk44K644GZ44KL5pa55rOVXShodHRwczovL3FpaXRhLmNvbS93YXRpa28vaXRlbXMvMDk2MTI4N2MwMmVhYzkyMTE1NzIpIGJ5IFtAd2F0aWtvXShodHRwczovL3FpaXRhLmNvbS93YXRpa28pCi0gMjAxOS8wMS8wMyAtIFtDYWxsaW5nIGEgU3dhZ2dlciBzZXJ2aWNlIGZyb20gQXBleCB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9sZWtraW13b3JsZC5jb20vMjAxOS8wMS8wMy9jYWxsaW5nLWEtc3dhZ2dlci1zZXJ2aWNlLWZyb20tYXBleC11c2luZy1vcGVuYXBpLWdlbmVyYXRvci8pIGJ5IFtNaWtrZWwgRmxpbmR0IEhlaXN0ZXJiZXJnXShodHRwczovL2xla2tpbXdvcmxkLmNvbSkKLSAyMDE5LzAxLzEzIC0gW09wZW5BUEkgR2VuZXJhdG9y44GnUkVTVGZ1bCBBUEnjga7lrprnvqnmm7jjgYvjgonoibLjgIXoh6rli5XnlJ/miJDjgZnjgotdKGh0dHBzOi8va3kteWstZC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzAxLzEzLzIzNDEwOCkgYnkgW0BreV95a19kXShodHRwczovL3R3aXR0ZXIuY29tL2t5X3lrX2QpCi0gMjAxOS8wMS8yMCAtIFtDb250cmFjdC1GaXJzdCBBUEkgRGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIEdlbmVyYXRvciBhbmQgQ29ubmV4aW9uXShodHRwczovL21lZGl1bS5jb20vY29tbWVuY2lzL2NvbnRyYWN0LWZpcnN0LWFwaS1kZXZlbG9wbWVudC13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWFuZC1jb25uZXhpb24tYjIxYmJmMmY5MjQ0KSBieSBbQW5pbCBDYW4gQXlkaW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9hbmxjbnlkbikKLSAyMDE5LzAxLzMwIC0gW1JhcGlkIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IFdpdGggQVBJIEZpcnN0IEFwcHJvYWNoIFVzaW5nIE9wZW4tQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9kem9uZS5jb20vYXJ0aWNsZXMvcmFwaWQtYXBpLWRldmVsb3BtZW50LXVzaW5nLW9wZW4tYXBpLWdlbmVyYXRvcikgYnkgW01pbGFuIFNvbmthcl0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvODI4MzI5L21pbGFuX3Nvbmthci5odG1sKQotIDIwMTkvMDIvMDIgLSBb5bmz6Z2Z44KS5L+d44Gh44CB44Kz44O844OJ44KS55Sf5oiQ44Gb44KIIOOAnCBPcGVuQVBJIEdlbmVyYXRvcuiqleeUn+OBruiDjOaZr+OBqOi7jOi3oSDjgJxdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2FraWhpdG9fbmFrYW5vL2d1bm1hd2ViMzQpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtHdW5tYS53ZWIgIzM0IOOCueOCreODvOODnumnhuWLlemWi+eZul0oaHR0cHM6Ly9ndW5tYXdlYi5jb25ucGFzcy5jb20vZXZlbnQvMTEzOTc0LykKLSAyMDE5LzAyLzIwIC0gW0FuIGFkdmVudHVyZSBpbiBPcGVuQVBJIFYzIGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tdXguY29tL2Jsb2cvYW4tYWR2ZW50dXJlLWluLW9wZW5hcGktdjMtYXBpLWNvZGUtZ2VuZXJhdGlvbi8pIGJ5IFtQaGlsIENsdWZmXShodHRwczovL211eC5jb20vYmxvZy9hdXRob3IvcGhpbGMvKQotIDIwMTkvMDIvMjYgLSBbQnVpbGRpbmcgQVBJIFNlcnZpY2VzOiBBIEJlZ2lubmVy4oCZcyBHdWlkZV0oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZC9idWlsZGluZy1hcGktc2VydmljZXMtYS1iZWdpbm5lcnMtZ3VpZGUtNzI3NGFlNGM1NDdmKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LzAyLzI2IC0gW0J1aWxkaW5nIEFQSXMgd2l0aCBPcGVuQVBJOiBDb250aW51ZWRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AcmF0cm9zeS9idWlsZGluZy1hcGlzLXdpdGgtb3BlbmFwaS1jb250aW51ZWQtNWQwZmFhZWQzMmViKSBieSBbUmF0cm9zIFkuXShodHRwczovL21lZGl1bS5jb20vQHJhdHJvc3kpIGluIFtHb29nbGUgQ2xvdWQgUGxhdGZvcm0gQmxvZ10oaHR0cHM6Ly9tZWRpdW0uY29tL2dvb2dsZS1jbG91ZCkKLSAyMDE5LTAzLTA3IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBpyBTcHJpbmcgQm9vdCDjgaggQW5ndWxhciDjgpLjgr/jgqTjg5fjgrvjg7zjg5XjgavnuYvjgZBdKGh0dHBzOi8vcWlpdGEuY29tL2NoaWJhdG8vaXRlbXMvZTRhNzQ4ZGIxMjQwOWI0MGMwMmYpIGJ5IFtUb21vZnVtaSBDaGliYV0oaHR0cHM6Ly9naXRodWIuY29tL2NoaWJhdCkKLSAyMDE5LTAzLTE2IC0gW0EgUXVpY2sgaW50cm9kdWN0aW9uIHRvIG1hbnVhbCBPcGVuQVBJIFYzXShodHRwczovL3ZhZG9zd2FyZS5pby9wb3N0L3F1aWNrLWludHJvLXRvLW1hbnVhbC1vcGVuYXBpLXYzLykgYnkgW3ZhZG9zXShodHRwczovL2dpdGh1Yi5jb20vdDNobXJtYW4pIGF0IFtWQURPU1dBUkVdKGh0dHBzOi8vdmFkb3N3YXJlLmlvKQotIDIwMTktMDMtMjUgLSBbQWNjZXNzIGFueSBSRVNUIHNlcnZpY2Ugd2l0aCB0aGUgU0FQIFMvNEhBTkEgQ2xvdWQgU0RLXShodHRwczovL2Jsb2dzLnNhcC5jb20vMjAxOS8wMy8yNS9pbnRlZ3JhdGUtc2FwLXM0aGFuYS1jbG91ZC1zZGstd2l0aC1vcGVuLWFwaS8pIGJ5IFtBbGV4YW5kZXIgRHVlbW9udF0oaHR0cHM6Ly9wZW9wbGUuc2FwLmNvbS9hbGV4YW5kZXIuZHVlbW9udCkKLSAyMDE5LTAzLTI1IC0gW09wZW5BUEkgZ2VuZXJhdG9y44KS6Kmm44GX44Gm44G/44KLXShodHRwczovL3FpaXRhLmNvbS9hbXV5aWthbS9pdGVtcy9lOGE0NWRhYWU1OWM2OGJlMGZjOCkgYnkgW0BhbXV5aWthbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9hbXV5aWthbSkKLSAyMDE5LTAzLTI3IC0gW09wZW5BUEkz44KS5L2/44Gj44Gm44G/44KI44GG77yBR2/oqIDoqp7jgafjgq/jg6njgqTjgqLjg7Pjg4jjgajjgrnjgr/jg5bjga7oh6rli5XnlJ/miJDjgb7jgafvvIFdKGh0dHBzOi8vdGVjaGJsb2cuem96by5jb20vZW50cnkvb3BlbmFwaTMvZ28pIGJ5IFtAZ29sZF9rb3VdKGh0dHBzOi8vdHdpdHRlci5jb20vZ29sZF9rb3UpCi0gMjAxOS0wNC0xNyAtIFtPcGVuQVBJ44Gr44KI44KL44K544Kt44O844Oe44OV44Kh44O844K544OI6ZaL55m644Gu5a6f5pa944K144Oz44OX44Or44GoQ2xvdWQgUnVu44Gr44Gk44GE44GmXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDE5LzA0LzE3LzE3NDAwMCkgYnkgW0B5dWtleTEwMzFdKGh0dHBzOi8vdHdpdHRlci5jb20veXVrZXkxMDMxKQotIDIwMTktMDQtMTggLSBbSG93IHRvIHVzZSBPcGVuQVBJMyBmb3IgQVBJIGRldmVsb3BlciAoUnVieUthaWdpIDIwMTkpXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9vdGE0MnkvaG93LXRvLXVzZS1vcGVuYXBpMy1mb3ItYXBpLWRldmVsb3BlcikgYnkgW0BvdGE0MnldKGh0dHBzOi8vdHdpdHRlci5jb20vb3RhNDJ5KSBhdCBbUnVieUthaWdpIDIwMTldKGh0dHBzOi8vcnVieWthaWdpLm9yZy8yMDE5KQotIDIwMTktMDQtMjkgLSBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly90d2l0dGVyLmNvbS93aW5nMzI4KQotIDIwMTktMDUtMDEgLSBbRGVzaWduIGFuZCBnZW5lcmF0ZSBhIFJFU1QgQVBJIGZyb20gU3dhZ2dlciAvIE9wZW5BUEkgaW4gSmF2YSwgUHl0aG9uLCBDIyBhbmQgbW9yZV0oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS9kZXNpZ24tYW5kLWdlbmVyYXRlLWFwaS1jb2RlLWZyb20tb3BlbmFwaSkgYnkgW1NpbXBseSBIb3ddKGh0dHBzOi8vc2ltcGx5LWhvdy5jb20vKQotIDIwMTktMDUtMTcgLSBbR2VuZXJhdGUgU3ByaW5nIEJvb3QgUkVTVCBBUEkgdXNpbmcgU3dhZ2dlci9PcGVuQVBJXShodHRwczovL3d3dy40N25vcnRobGFicy5jb20va25vd2xlZGdlLWJhc2UvZ2VuZXJhdGUtc3ByaW5nLWJvb3QtcmVzdC1hcGktdXNpbmctc3dhZ2dlci1vcGVuYXBpLykgYnkgW0FudG9uaWUgWmFmaXJvdl0oaHR0cHM6Ly93d3cuNDdub3J0aGxhYnMuY29tL2F1dGhvci9hbnRvbmllLXphZmlyb3YvKQotIDIwMTktMDUtMjIgLSBbUkVTVCBBUElz5Luj56CB55Sf5oiQ5oyH5Y2XKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfZ2IpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBbWGluIE1lbmddKGh0dHBzOi8vZ2l0aHViLmNvbS94bWVuZzEpCi0gMjAxOS0wNS0yNCAtIFtSRVNUIEFQSSDku6PnorznlJ/miJDmjIfljZcgKE9wZW5BUEkgR2VuZXJhdG9yKV0oaHR0cHM6Ly9ndW0uY28vb3BlbmFwaV9nZW5lcmF0b3JfZWJvb2tfYmlnNSkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkKLSAyMDE5LTA2LTI0IC0gW0t1YmVybmV0ZXMgQ2xpZW50cyBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgva3ViZXJuZXRlcy1jbGllbnRzLWFuZC1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkgYXQgW0t1YmVybmV0ZXMgQ29udHJpYnV0b3IgU3VtbWl0cyBTaGFuZ2hhaSAyMDE5XShodHRwczovL3d3dy5sZmFzaWFsbGMuY29tL2V2ZW50cy9jb250cmlidXRvcnMtc3VtbWl0LWNoaW5hLTIwMTkvKQotIDIwMTktMDYtMjggW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UuZWNsaXBzZS5vcmcvY29udGVudC9jb2Rld2luZC1vcGVuYXBpLXRvb2xzKSBpbiBbRWNsaXBzZSBNYXJrZXRwbGFjZV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy8pIGJ5IElCTQotIDIwMTktMDYtMjkgW0NvZGV3aW5kIE9wZW5BUEkgVG9vbHNdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1JQk0uY29kZXdpbmQtb3BlbmFwaS10b29scykgaW4gW1Zpc3VhbCBTdHVkaW8gTWFya2V0cGxhY2VdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS8pIGJ5IElCTQotIDIwMTktMDctMDQgLSBbUkVTVCBBUEkg44Gu44Gf44KB44Gu44Kz44O844OI44KZ55Sf5oiQ5YWl6ZaAIChPcGVuQVBJIEdlbmVyYXRvcildKGh0dHBzOi8vZ3VtLmNvL29wZW5hcGlfZ2VuZXJhdG9yX2Vib29rX2JpZzUpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSwgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikKLSAyMDE5LTA3LTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBq+OCs+ODs+ODiOODquODk+ODpeODvOODiOOBl+OBn+OCieekvuWQjeOBjOi8ieOBo+OBn+ipseOAgihDQU0pIC0gQ0FNIFRFQ0ggQkxPR10oaHR0cHM6Ly90ZWNoLmNhbS1pbmMuY28uanAvZW50cnkvMjAxOS8wNy8wOC8xNDAwMDApIGJ5IFtDQU0sIEluYy5dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvKQotIDIwMTktMDctMTQgLSBbT3BlbkFQSSBHZW5lcmF0b3LjgadQeXRob27jga7jgq/jg6njgqTjgqLjg7Pjg4jjg6njgqTjg5bjg6njg6rjgpLkvZzmiJDjgZfjgZ9dKGh0dHBzOi8vcWlpdGEuY29tL3l1amkzOGt3bXQvaXRlbXMvZGZiOTI5MzE2YTEzMzVhMTYxYzApIGJ5IFt5dWppMzhrd210XShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210KQotIDIwMTktMDctMTkgLSBbRGV2ZWxvcGVyIEV4cGVyaWVuY2UgKERYKSBmb3IgT3Blbi1Tb3VyY2UgUHJvamVjdHM6IEhvdyB0byBFbmdhZ2UgRGV2ZWxvcGVycyBhbmQgQnVpbGQgYSBHcm93aW5nIERldmVsb3BlciBDb21tdW5pdHldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvZGV2ZWxvcGVyLWV4cGVyaWVuY2UtZHgtZm9yLW9wZW4tc291cmNlLXByb2plY3RzLWVuZ2xpc2gtamFwYW5lc2UpIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpLCBb5Lit6YeO5pqB5Lq6XShodHRwczovL2dpdGh1Yi5jb20vYWNraW50b3NoKSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuIDIwMTldKGh0dHBzOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvZXZlbnRzL29wZW4tc291cmNlLXN1bW1pdC1qYXBhbi0yMDE5LykKLSAyMDE5LTA4LTE0IC0gW091ciBPcGVuQVBJIGpvdXJuZXkgd2l0aCBTdGFuZGFyZGl6aW5nIFNES3NdKGh0dHBzOi8vYml0bW92aW4uY29tL291ci1vcGVuYXBpLWpvdXJuZXktd2l0aC1zdGFuZGFyZGl6aW5nLXNka3MvKSBieSBbU2ViYXN0aWFuIEJ1cmdzdGFsbGVyXShodHRwczovL2JpdG1vdmluLmNvbS9hdXRob3Ivc2J1cmdzdGFsbGVyLykgYXQgW0JpdG1vdmluXShodHRwczovL3d3dy5iaXRtb3Zpbi5jb20pCi0gMjAxOS0wOC0xNSAtIFtBUEnjga7jgrPjg7zjg4njgpLoh6rli5XnlJ/miJDjgZXjgZvjgZ/jgYTjgaDjgZHjgarjgolnUlBD44Gn44Gq44GP44Gm44KC44KI44GP44Gq44GEP10oaHR0cHM6Ly93d3cubTN0ZWNoLmJsb2cvZW50cnkvMjAxOS8wOC8xNS8xMTAwMDApIGJ5IFtNMywgSW5jLl0oaHR0cHM6Ly9jb3Jwb3JhdGUubTMuY29tLykKLSAyMDE5LTA4LTIyIC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOBq+OBiuOBkeOCi1dlYiBBUEnjgrnjgq3jg7zjg57jga7nrqHnkIbilIAgR3JhcGhRTOOAgWdSUEPjgIFPcGVuQVBJ44Gu54m55b6044Go5L2/44GE44Gp44GT44KNXShodHRwczovL2VtcGxveW1lbnQuZW4tamFwYW4uY29tL2VuZ2luZWVyaHViL2VudHJ5LzIwMTkvMDgvMjIvMTAzMDAwKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOC0yNCAtIFtTd2FnZ2Vy44OJ44Kt44Ol44Oh44Oz44OI44GL44KJT3BlbkFQSSBHZW5lcmF0b3LjgpLkvb/jgaPjgabjg6Ljg4Pjgq/jgrXjg7zjg5Djg7zkvZzmiJBdKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIvaXRlbXMvNDg0NWU0YzcxNWQwNDU4N2MxMDQpIGJ5IFvlnYLmnKzmraPnvqldKGh0dHBzOi8vcWlpdGEuY29tL21hc2F5b3NoaTAyMjIpCi0gMjAxOS0wOC0yOSAtIFtPcGVuQVBJ5Yid5o6iXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE0OTU5ODYpIGJ5IFtwZWFreGllXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci91c2VyLzExMTMxNTIpIGF0IFvohb7orq/kupHnpL7ljLpdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyKQotIDIwMTktMDgtMjkgLSBb5YWo6Z2i6L+b5YyW77yaS3ViZXJuZXRlcyBDUkQgMS4xNiBHQeWJjeeeu10oaHR0cHM6Ly93d3cuc2VydmljZW1lc2hlci5jb20vYmxvZy9rdWJlcm5ldGVzLTEuMTYtY3JkLWdhLXByZXZpZXcvKSBieSBbTWluIEtpbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1ZTk5NDQ4ODIpIGF0IFtTZXJ2aWNlTWVzaGVyIEJsb2ddKGh0dHBzOi8vd3d3LnNlcnZpY2VtZXNoZXIuY29tL2Jsb2cvKQotIDIwMTktMDktMDEgLSBbQ3JlYXRpbmcgYSBQSFAtU2xpbSBzZXJ2ZXIgdXNpbmcgT3BlbkFQSSAoWW91dHViZSB2aWRlbyldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NWNKdGJJcnNZa2cpIGJ5IFtEYW5pZWwgUGVyc3Nvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ25HLVROMjNsc3dPNlFidldoTXR4cEEpCi0gMjAxOS0wOS0wNiAtIFtWZXJ0LnggYW5kIE9wZW5BUEldKGh0dHBzOi8vd2lzc2VsLm5ldC9ibG9nLzIwMTkvMDkvdmVydHgtYW5kLW9wZW5hcGkuaHRtbCkgYnkgW1N0ZXBoYW4gSCBXaXNzZWxdKGh0dHBzOi8vdHdpdHRlci5jb20vbm90ZXNzZW5zZWkpIGF0IFt3aXNzZWwubmV0IGJsb2ddKGh0dHBzOi8vd2lzc2VsLm5ldCkKLSAyMDE5LTA5LTA5IC0gW0Nsb3VkLW5hdGl2ZSBkZXZlbG9wbWVudCAtIENyZWF0aW5nIFJFU1RmdWwgbWljcm9zZXJ2aWNlc10oaHR0cHM6Ly9jbG91ZC5pYm0uY29tL2RvY3MvY2xvdWQtbmF0aXZlP3RvcGljPWNsb3VkLW5hdGl2ZS1yZXN0LWFwaSkgaW4gW0lCTSBDbG91ZCBEb2NzXShodHRwczovL2Nsb3VkLmlibS5jb20vZG9jcykKLSAyMDE5LTA5LTE0IC0gW0dlbmVyYXRpbmcgYW5kIENvbmZpZ3VyaW5nIGEgTWFzdGVyY2FyZCBBUEkgQ2xpZW50XShodHRwczovL2RldmVsb3Blci5tYXN0ZXJjYXJkLmNvbS9wbGF0Zm9ybS9kb2N1bWVudGF0aW9uL2dlbmVyYXRpbmctYW5kLWNvbmZpZ3VyaW5nLWEtbWFzdGVyY2FyZC1hcGktY2xpZW50LykgYXQgW01hc3RlcmNhcmQgRGV2ZWxvcGVycyBQbGF0Zm9ybV0oaHR0cHM6Ly9kZXZlbG9wZXIubWFzdGVyY2FyZC5jb20vcGxhdGZvcm0vZG9jdW1lbnRhdGlvbi8pCi0gMjAxOS0wOS0xNSAtIFtPcGVuQVBJKFN3YWdnZXIp5bCO5YWl5LiL6Kq/44G5XShodHRwczovL3FpaXRhLmNvbS9TaG9pY2hpS3VyYW9rYS9pdGVtcy9mMWY3YTNjMjM3NmY3Y2Q5YzU2YSkgYnkgW1Nob2ljaGkgS3VyYW9rYV0oaHR0cHM6Ly9xaWl0YS5jb20vU2hvaWNoaUt1cmFva2EpCi0gMjAxOS0wOS0xNyAtIFtUdXRvcmlhbDogRG9jdW1lbnRpbmcgaHR0cDRrIEFQSXMgd2l0aCBPcGVuQXBpM10oaHR0cHM6Ly93d3cuaHR0cDRrLm9yZy90dXRvcmlhbHMvZG9jdW1lbnRpbmdfYXBpc193aXRoX29wZW5hcGkvKSBieSBbaHR0cDRrXShodHRwczovL3d3dy5odHRwNGsub3JnLykKLSAyMDE5LTA5LTIyIC0gW09wZW5BUEkgM+OCkuWujOWFqOOBq+eQhuino+OBp+OBjeOCi+acrF0oaHR0cHM6Ly9ib290aC5wbS9qYS9pdGVtcy8xNTcxOTAyKSBieSBbQG90YTQyeV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9vdGE0MnkpCi0gMjAxOS0wOS0yMiAtIFtSRVNUZnVsIEFQSXM6IFR1dG9yaWFsIG9mIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BhbWlybS5sYXZhc2FuaS9yZXN0ZnVsLWFwaXMtdHV0b3JpYWwtb2Ytb3BlbmFwaS1zcGVjaWZpY2F0aW9uLWVlYWRhMGUzOTAxZCkgYnkgW0FtaXIgTGF2YXNhbmldKGh0dHBzOi8vbWVkaXVtLmNvbS9AYW1pcm0ubGF2YXNhbmkpCi0gMjAxOS0wOS0yMiAtIFtSZWRlZmluaW5nIFNES3MgYXMgc29mdHdhcmUgZGl2ZXJzaXR5IGtpdHNdKGh0dHBzOi8vZGV2cmVsLm5ldC9kZXYtcmVsL3JlZGVmaW5pbmctc2Rrcy1hcy1zb2Z0d2FyZS1kaXZlcnNpdHkta2l0cykgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikgYXQgW0RldlJlbENvbiBTYW4gRnJhbmNpc2NvIDIwMTldKGh0dHBzOi8vc2YyMDE5LmRldnJlbC5uZXQvKQotIDIwMTktMDktMjMgLSBbc3dhZ2dlcuOBi+OCiU9wZW5BcGkgR2VuZXJhdG9y44GnU3ByaW5n44Gu44Kz44O844OJ44KS6Ieq5YuV55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9saXR0bGVGZWV0L2l0ZW1zLzQ5MmRmMmFkNjhhMDc5OWE1ZTVlKSBieSBbQGxpdHRsZUZlZXRdKGh0dHBzOi8vcWlpdGEuY29tL2xpdHRsZUZlZXQpIGF0IFtRaWl0YV0oaHR0cHM6Ly9xaWl0YS5jb20vKQotIDIwMTktMDktMjQgLSBbRWluZSBTdHVuZGUgd2FzIG1pdCBBcGkgRmlyc3QhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9KYW5XZWluc2NoZW5rZXIvZWluZS1zdHVuZGUtd2FzLW1pdC1hcGktZmlyc3QpIGJ5IFtAamFud2VpbnNjaGVua2VyXShodHRwczovL3R3aXR0ZXIuY29tL2phbndlaW5zY2hlbmtlcikgYXQgW0phdmEgRm9ydW0gTm9yZF0oaHR0cHM6Ly9qYXZhZm9ydW1ub3JkLmRlLykKLSAyMDE5LTEwLTA5IC0gW29wZW5hcGktZ2VuZXJhdG9yIOOBp+eUn+aIkOOBl+OBnyBHbyDjgq/jg6njgqTjgqLjg7Pjg4jjgacgQmVhcmVyIOiqjeiovOOCkuOBmeOCi10oaHR0cHM6Ly9hdXRvcHAtdGVjaC5oYXRlbmFibG9nLmNvbS9lbnRyeS8yMDE5LzEwLzA5LzIyMjAzOSkgYnkgW0FraXJhIFRhbmltdXJhXShodHRwczovL2dpdGh1Yi5jb20vYXV0b3BwKQotIDIwMTktMTAtMTAgLSBbQXV0b21hdGljIEdlbmVyYXRpb24gb2YgUkVTVCBDbGllbnRzXShodHRwczovL3d3dy5tZWV0dXAuY29tL2ZyLUZSL0NyaXRlby1MYWJzLVRlY2gtVGFsa3MvZXZlbnRzLzI2NDc3NTc2OC8pIGJ5IFRob21hcyBQZXlyYXJkLCBTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIgYXQgQ3JpdGVvIGluIFtGdWxsLVN0YWNrIFRlY2ggVGFsa3MgKE1lZXR1cCldKGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvQ3JpdGVvLUxhYnMtVGVjaC1UYWxrcy9ldmVudHMvMjY0Nzc1NzY4LykKLSAyMDE5LTEwLTEyIC0gW09wZW5BcGnoh6rliqjnlJ/miJBjbGllbnRdKGh0dHBzOi8vYmxvZy5jc2RuLm5ldC93eGlkMjc5ODIyNi9hcnRpY2xlL2RldGFpbHMvMTAyNTI3NDY3KSBieSBb6YOR5rO95rSyXShodHRwczovL21lLmNzZG4ubmV0L3d4aWQyNzk4MjI2KQotIDIwMTktMTAtMTYgLSBbSG93IHRvIHNoaXAgQVBJcyBmYXN0ZXI/XShodHRwczovL21lZGl1bS5jb20vQGFjY291bnRzXzc2MjI0L2hvdy10by1zaGlwLWFwaXMtZmFzdGVyLWNhYmVmMmY4MTllNCkgYnkgW1NpbW9uIEd1aWxsaWFtcyBAIFBvbmlDb2RlXShodHRwczovL3Bvbmljb2RlLmRldikKLSAyMDE5LTEwLTIyIC0gW09wZW5BUEkgKyBTcHJpbmcgQm9vdChLb3RsaW4p44Gn44OV44Kh44Kk44Or44OA44Km44Oz44Ot44O844OJQVBJ44KS5L2c5oiQ44GZ44KLXShodHRwczovL3FpaXRhLmNvbS9ib3Jvbm5nby9pdGVtcy80Yjc4YjkyNTI2MjA5ZGFlYWVlOSkgYnkgW1l1a2kgRnVydWthd2FdKGh0dHBzOi8vdHdpdHRlci5jb20veXVraV9mdXJ1a2F3YTUpCi0gMjAxOS0xMC0yNCAtIFtNaWNyb3Byb2ZpbGUgT3BlbkFQSSAtIENvZGUgRmlyc3Qgb3IgRGVzaWduIEZpcnN0P10oaHR0cHM6Ly9naXRodWIuY29tL3BlLXN0L2FwaWRvY3MvYmxvYi9tYXN0ZXIvTWljcm9Qcm9maWxlLU9wZW5BUEktYWxsLXNsaWRlcy5wZGYpIGJ5IFtQZXRlciBbcMmbyoPJmV0gU3RlaW5lcl0oaHR0cHM6Ly90d2l0dGVyLmNvbS9wZXNjaGUpIGF0IFtlY2xpcHNlY29uIEV1cm9wZSAyMDE5XShodHRwczovL3d3dy5lY2xpcHNlY29uLm9yZy9ldXJvcGUyMDE5L3Nlc3Npb25zL21pY3JvcHJvZmlsZS1vcGVuYXBpLWNvZGUtZmlyc3Qtb3ItZGVzaWduLWZpcnN0KQotIDIwMTktMTEtMDYgLSBbR2VuZXJhdGluZyBBUEkgY2xpZW50cyBiYXNlZCBvbiBPcGVuQVBJIHYzIHNwZWNpZmljYXRpb25zXShodHRwczovLzk4ZWxlbWVudHMuY29tL2Jsb2cvZ2VuZXJhdGluZy1hcGktY2xpZW50cy1iYXNlZC1vbi1vcGVuYXBpLXYzLXNwZWNpZmljYXRpb25zKSBieSBbRG9taW5payBKYXN0cnrEmWJza2kgQCA5OGVsZW1lbnRzXShodHRwczovLzk4ZWxlbWVudHMuY29tKQotIDIwMTktMTEtMDYgLSBbT3BlbkFQSeOCkuWIqeeUqOOBl+OBpuiHquWJjeOBrkFQSeOCteODvOODkOODvChTaW5hdHJhKeOCkuenu+akjeOBl+OBn+aZguOBruODoeODol0oaHR0cHM6Ly9xaWl0YS5jb20vWWFzdWhpcm9BQkUvaXRlbXMvYzczOTIwZWFiMmQ5ZDZlOTdmZDkpIGJ5IFtZYXN1aGlybyBBQkVdKGh0dHBzOi8vdHdpdHRlci5jb20vWWFzdWhpcm9BQkUpCi0gMjAxOS0xMS0wNyAtIFtBUEkgRmlyc3QgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIC0gWW91IHNob3VsZCB5b3UgcHJhY3Rpc2UgaXQgIT9dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RjlpRjNhMVo4WTgpIGJ5IFtOaWNrIFZhbiBIb29mXShodHRwczovL3d3dy5uaWNrdmFuaG9vZi5jb20vKSBhdCBbRGV2b3h4IEJlbGdpdW0gMjAxOV0oaHR0cHM6Ly9kZXZveHguYmUvKQotIDIwMTktMTEtMDggLSBbSkhpcHN0ZXIgYmV5b25kIENSVUQgLSBBUEktRmlyc3QgZm9yIEVudGVycHJpc2VzIGJ5IEVucmljbyBDb3N0YW56aV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1tMjhKRm92S1EyMCkgYnkgW0VucmljbyBDb3N0YW56aV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9lbnJpY29jb3N0YW56aSkgYXQgW0pIaXBzdGVyIENvbmYgMjAxOSBpbiBQYXJpc10oaHR0cHM6Ly9qaGlwc3Rlci1jb25mLmdpdGh1Yi5pby8pCi0gMjAxOS0xMS0xMSAtIFtUeXBlU2NyaXB0IFJFU1QgQVBJ44Kv44Op44Kk44Ki44Oz44OIXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQvaXRlbXMvN2I3NGY3ZDNjNDM1NDVkYWRkMmIpIGJ5IFtAdW5odXJyaWVkXShodHRwczovL3FpaXRhLmNvbS91bmh1cnJpZWQpCi0gMjAxOS0xMS0xMSAtIFtPbmUgU3BlYyB0byBSdWxlIHRoZW0gYWxsIC0gT3BlbkFQSSBpbiBBY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TU1heV9uaHQ4ZWMpIGJ5IFtBbmRyZWFzIExpdHRdKGh0dHBzOi8vZ2l0aHViLmNvbS9saXR0bGRyKSBhdCBbY29kZS50YWxrcyAyMDE5XShodHRwczovL3d3dy5jb2RldGFsa3MuY29tLykKLSAyMDE5LTExLTEzIC0gW09wZW5BUEkgMy4wIEVkaXRvciBBbmQgR2VuZXJhdG9yIFdpdGggQSBTcHJpbmcgQm9vdCBFeGFtcGxlXShodHRwczovL3NpbXBseS1ob3cuY29tL2Rlc2lnbi1hbmQtZ2VuZXJhdGUtYXBpLWNvZGUtZnJvbS1vcGVuYXBpKSBhdCBbU2ltcGx5IEhvd10oaHR0cHM6Ly9zaW1wbHktaG93LmNvbS8pCi0gMjAxOS0xMS0xNyAtIFtPcGVuQVBJIEdlbmVyYXRvciBZb3VUdWJlIHBsYXlsaXN0XShodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMdEp5SFZNZHpmRjZmQmtPVVY1VkRWRXJQMjNDR2dISXkpIGF0IFtZb3VUdWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbSkKLSAyMDE5LTExLTIwIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL25vdGkuc3QvbG9ybmFqYW5lL0h2REg3VS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaSkgYnkgW0xvcm5hIE1pdGNoZWxsXShodHRwczovL3R3aXR0ZXIuY29tL2xvcm5hamFuZSkgYXQgW0dPVE8gQ29wZW5oYWdlbiAyMDE5XShodHRwczovL2dvdG9jcGguY29tLzIwMTkvKQotIDIwMTktMTEtMjAgLSBbSG93IHRvIEdlbmVyYXRlIEFuZ3VsYXIgY29kZSBmcm9tIE9wZW5BUEkgc3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG90bmV0dGhvdWdodHMubmV0L2hvdy10by1nZW5lcmF0ZS1hbmd1bGFyLWNvZGUtZnJvbS1vcGVuYXBpLXNwZWNpZmljYXRpb25zLykgYnkgQW51cmFqCi0gMjAxOS0xMS0yMyAtIFtTd2FnZ2VyIOOBp+OBr+OBquOBhCBPcGVuQVBJIFNwZWNpZmljYXRpb24gMy4wIOOBq+OCiOOCiyBBUEkg44K144O844OQ44O86ZaL55m6XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC90ZWNoYmxvZ3lhaG9vL3N3YWdnZXItb3BlbmFwaS1zcGVjaWZpY2F0aW9uLTMwLWFwaSkgYnkgW1RldHN1eWEgTW9yaW1vdG9dKGh0dHBzOi8vZ2l0aHViLmNvbS90MnkpIGF0IFtKSlVHIENDQyAyMDE5IEZhbGxdKGh0dHBzOi8vY2NjMjAxOWZhbGwuamF2YS11c2Vycy5qcC8pCi0gMjAxOS0xMS0yNCAtIFtBY2NlbGVyYXRlIEZsdXR0ZXIgZGV2ZWxvcG1lbnQgd2l0aCBPcGVuQVBJIGFuZCBEYXJ0IGNvZGUgZ2VuZXJhdGlvbl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BpcmluYXNvdXRod2VsbF8yMjAvYWNjZWxlcmF0ZS1mbHV0dGVyLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1hbmQtZGFydC1jb2RlLWdlbmVyYXRpb24tMWYxNmY4MzI5YTZhKSBieSBbSXJpbmEgU291dGh3ZWxsXShodHRwczovL21lZGl1bS5jb20vQGlyaW5hc291dGh3ZWxsXzIyMCkKLSAyMDE5LTExLTI1IC0gW29wZW5hcGktZ2VuZXJhdG9y44Gn5omL6Lu944Gr44K544K/44OW44K144O844OQ44Go44Kv44Op44Kk44Ki44Oz44OI44Gu55Sf5oiQXShodHRwczovL3FpaXRhLmNvbS9wb2Nob3BvY2hvMTMvaXRlbXMvOGRiNjYyZTE5MzRmYjJiNDA4YjgpIGJ5IFtAcG9jaG9wb2NobzEzXShodHRwczovL3R3aXR0ZXIuY29tL3BvY2hvcG9jaG8xMykKLSAyMDE5LTExLTI2IC0gW0NvcmRhQ29uIDIwMTkgSGlnaGxpZ2h0czogQnJhaWQgU2VydmVyIGFuZCBPcGVuQVBJIEdlbmVyYXRvciBmb3IgQ29yZGEgQ2xpZW50IEFQSeKAmXNdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vY29yZGFjb24tMjAxOS1oaWdobGlnaHRzLWJyYWlkLXNlcnZlci1hbmQtb3BlbmFwaS1nZW5lcmF0b3ItZm9yLWNvcmRhLWZsb3dzLWFwaS1zLWQyNDE3OWNjYjI3YykgYnkgW0FkZWwgUnVzdHVtXShodHRwczovL2Jsb2cuYjlsYWIuY29tL0BhZGVscmVzdG9tKSBhdCBbQjlsYWJdKGh0dHBzOi8vYmxvZy5iOWxhYi5jb20vKQotIDIwMTktMTItMDMgLSBbQSBSb2FkIHRvIExlc3MgQ29kaW5nOiBBdXRvLUdlbmVyYXRlIEFQSUxpYnJhcnldKGh0dHBzOi8vd3d3LmNvcmRhLm5ldC9ibG9nL2Etcm9hZC10by1sZXNzLWNvZGluZy1hdXRvLWdlbmVyYXRlLWFwaWxpYnJhcnkvKSBhdCBbQ29yZGEgQmxvZ10oaHR0cHM6Ly93d3cuY29yZGEubmV0L2Jsb2cvKQotIDIwMTktMTItMDQgLSBbQW5ndWxhcu+8i05lc3RKU++8i09wZW5BUEnvvIhTd2FnZ2Vy77yJ44Gn44Oe44Kk44Kv44Ot44K144O844OT44K544KS6KaW6YeO44Gr5YWl44KM44Gf55Kw5aKD44KS6ICD44GI44KLXShodHRwczovL3FpaXRhLmNvbS90ZXJhY3k1NS9pdGVtcy8wMzI3YzdhMTcwZWM3NzI5NzBjNikgYnkgW+OBpuOCieOBl+ODvF0oaHR0cHM6Ly90d2l0dGVyLmNvbS90ZXJhY3k1NSkKLSAyMDE5LTEyLTA1IC0gW0NvZGUgZ2VuZXJhdGlvbiBvbiB0aGUgSmF2YSBWTV0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzL2NvZGUtZ2VuZXJhdGlvbi1vbi10aGUtamF2YS12bS0yMDE5LTEyLTA1KSBieSBbU2VhbiBTdWxsaXZhbl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vc3VsbGlzKQotIDIwMTktMTItMTcgLSBbT3BlbkFQSSBHZW5lcmF0b3Ig44GnIE9BdXRoMiDjgqLjgq/jgrvjgrnjg4jjg7zjgq/jg7PnmbrooYzjga7jgrPjg7zjg4njgb7jgafnlJ/miJDjgZfjgabjgb/jgotdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8yMDE5LzEyLzE3L29wZW5hcGktZ2VuZXJhdG9yLW9hdXRoMi1hY2Nlc3N0b2tlbi8pIGJ5IFtURUNIU0NPUkVdKGh0dHBzOi8vd3d3LnRlY2hzY29yZS5jb20vYmxvZy8pCi0gMjAxOS0xMi0yMyAtIFtVc2UgQWRhIGZvciBZb3VyIFdlYiBEZXZlbG9wbWVudF0oaHR0cHM6Ly93d3cuZWxlY3Ryb25pY2Rlc2lnbi5jb20vdGVjaG5vbG9naWVzL2VtYmVkZGVkLXJldm9sdXRpb24vYXJ0aWNsZS8yMTExOTE3Ny91c2UtYWRhLWZvci15b3VyLXdlYi1kZXZlbG9wbWVudCkgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KQotIDIwMTktMTItMjMgLSBbT3BlbkFQSeOBruOCueOCreODvOODnuOCkuWIhuWJsuODu+ani+mAoOWMluOBl+OBpuOBhOOBj+aWueazlV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvYXJ0aWNsZXMvc3RydWN0dXJlZC1vcGVuYXBpLXNjaGVtYSkgYnkgW+Wwj+mjr+WhmumBlOS5n10oaHR0cHM6Ly9naXRodWIuY29tL3QyaDUpIGF0IFtHaUZULCBJbmNdKGh0dHBzOi8vZ2lmdC10ZWNoLmNvLmpwLykKLSAyMDIwLTAxLTE3IC0gW09wZW5BUEkgZGVtbyBmb3IgUHVscCAzLjAgR0FdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bUZCUC1NMFpQZncmdD0xNzhzKSBieSBbUHVscF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ0k0M0ZmczRWUER2N2F3WHZ2QkpmUlEpIGF0IFtZb3V0dWJlXShodHRwczovL3d3dy55b3V0dWJlLmNvbS8pCi0gMjAyMC0wMS0xOSAtIFtXaHkgZG9jdW1lbnQgYSBSRVNUIEFQSSBhcyBjb2RlP10oaHR0cHM6Ly9kZXYudG8vcm9sZnN0cmVlZmtlcmsvd2h5LWRvY3VtZW50LWEtcmVzdC1hcGktYXMtY29kZS01ZTdwKSBieSBbUm9sZiBTdHJlZWZrZXJrXShodHRwczovL2dpdGh1Yi5jb20vcnBzdHJlZWYpIGF0IFtERVYgQ29tbXVuaXR5XShodHRwczovL2Rldi50bykKLSAyMDIwLTAxLTI4IC0gW0dldCBZb3VyIFNlcnZlcmxlc3MgU3dhZ2dlciBCYWNrIHdpdGggT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyL2dldC15b3VyLXNlcnZlcmxlc3Mtc3dhZ2dlci1iYWNrLXdpdGgtb3BlbmFwaS00OGdjKSBieSBbTWF0dCBUeWxlcl0oaHR0cHM6Ly9kZXYudG8vbWF0dHR5bGVyKQotIDIwMjAtMDEtMzAgLSBbT3BlbkFQSSBHZW5lcmF0b3Ljgbjjga7jgrPjg7Pjg4jjg6rjg5Pjg6Xjg7zjg4hdKGh0dHBzOi8vd3d3Lnl1dGFrYTBtLndvcmsvZW50cnkvMjAyMC8wMS8zMC8xNjM5MDUpIGJ5IFt5dXRha2EwbV0oaHR0cHM6Ly9naXRodWIuY29tL3l1dGFrYTBtKQotIDIwMjAtMDItMDEgLSBbVXNpbmcgT3BlbkFQSSB0byBNYXhpbWlzZSBZb3VyIFB1bHAgMyBFeHBlcmllbmNlXShodHRwczovL2Zvc2RlbS5vcmcvMjAyMC9zY2hlZHVsZS9ldmVudC9vcGVuYXBpLykgYnkgW0Rlbm5pcyBLbGliYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ka2xpYmFuLykgYXQgW0ZPU0RFTV0oaHR0cHM6Ly9mb3NkZW0ub3JnLykKLSAyMDIwLTAyLTA3IC0gW1doeSB5b3Ugc2hvdWxkIHVzZSBPcGVuQVBJIGZvciB5b3VyIEFQSSBkZXNpZ25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9emhiN3ZVQXBMVzgmdD05MjdzKSBieSBbTmljayBWYW4gSG9vZl0oaHR0cHM6Ly9hcGljb25mZXJlbmNlLm5ldC9zcGVha2VyL25pY2stdmFuLWhvb2YvKSBhdCBbQVBJIENvbmZlcmVuY2VdKGh0dHBzOi8vYXBpY29uZmVyZW5jZS5uZXQvKQotIDIwMjAtMDItMTcgLSBbUnVieW5ldGVzOiB1c2luZyBPcGVuQVBJIHRvIHZhbGlkYXRlIEt1YmVybmV0ZXMgY29uZmlnc10oaHR0cHM6Ly93d3cuYnJpZ2h0Ym94LmNvbS9ibG9nLzIwMjAvMDIvMTcvdXNpbmctb3BlbmFwaS10by12YWxpZGF0ZS1rdWJlcm5ldGVzLWNvbmZpZ3MvKSBieSBOZWlsIFdpbHNvbiBhdCBbQnJpZ2h0Ym94XShodHRwczovL3d3dy5icmlnaHRib3guY29tLykKLSAyMDIwLTAyLTIwIC0gW0J1aWxkaW5nIFNES3MgZm9yIHRoZSBmdXR1cmVdKGh0dHBzOi8vZGV2YmxvZy54ZXJvLmNvbS9idWlsZGluZy1zZGtzLWZvci10aGUtZnV0dXJlLWI3OWZmNzI2ZGZkNikgYnkgW1NpZCBNYWVzdHJlIChYZXJvKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9zaWRuZXlhbGxlbikKLSAyMDIwLTAyLTI3IC0gW051eHTliKnnlKjjg5fjg63jg4Djgq/jg4jjgadJRTEx44Go5Luy6Imv44GP44GZ44KL44Gf44KB44GuRTJFXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC9lbnRyeS9lMmUtaWUxMSkgYXQgW01lZHBlZXIuY28uanAgVGVjaCBCbG9nXShodHRwczovL3RlY2gubWVkcGVlci5jby5qcC8pCi0gMjAyMC0wMi0yOSAtIFtQcm92aWRpbmcgU3VwcG9ydCB0byBJb1QgRGV2aWNlcyBEZXBsb3llZCBpbiBEaXNjb25uZWN0ZWQgUnVyYWwgRW52aXJvbm1lbnQgKENvbmZlcmVuY2UgcGFwZXIpXShodHRwczovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy85NzgtMy0wMzAtNDE0OTQtOF8xNCkgYnkgU2VyZ2lvIExhc28sIERhbmllbCBGbG9yZXMtTWFydMOtbiwgSnVhbiBMdWlzIEhlcnJlcmFDYXJsb3MsIENhbmFsSnVhbiBNYW51ZWwsIE11cmlsbG9KYXZpZXIgQmVycm9jYWwKLSAyMDIwLTAzLTAyIC0gW0hvdyBUbyBHZW5lcmF0ZSBBbmd1bGFyICYgU3ByaW5nIENvZGUgRnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vd3d3Lm1va2thcHBzLmRlL2Jsb2cvaG93LXRvLWdlbmVyYXRlLWFuZ3VsYXItYW5kLXNwcmluZy1jb2RlLWZyb20tb3Blbi1hcGktc3BlY2lmaWNhdGlvbi8pIGJ5IFtNaWNoYWVsIEhvZmZtYW5uXShodHRwczovL3d3dy5tb2trYXBwcy5kZS8pCi0gMjAyMC0wMy0wMiAtIFtPcGVuQVBJIEdlbmVyYXRvciArIFR5cGVTY3JpcHQg44Gn5aeL44KB44KL6Ieq5YuV55Sf5oiQ44Gu5Z6L44Gr5a6I44KJ44KM44Gf6LGK44GL44Gq44Kv44Op44Kk44Ki44Oz44OI55Sf5rS7XShodHRwczovL2dpZnQtdGVjaC5jby5qcC9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci10eXBlc2NyaXB0KSBieSBb5LqU55m+6JS1IOebtOaouV0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvbWVtYmVycy9uYW9raWlvcm9pKSBhdCBbR2lGVOagquW8j+S8muekvl0oaHR0cHM6Ly9naWZ0LXRlY2guY28uanAvKQotIDIwMjAtMDMtMTAgLSBbT3BlbkFQSSBHZW5lcmF0b3IgTWVldHVwICMxXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9ha2loaXRvX25ha2Fuby9vcGVuYXBpLWdlbmVyYXRvci1tZWV0dXAtbnVtYmVyLTEpIGJ5IFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpIGF0IFtPcGVuQVBJIEdlbmVyYXRvciBNZWV0dXAgIzFdKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3ItbWVldHVwLmNvbm5wYXNzLmNvbS9ldmVudC8xNjgxODcvKQotIDIwMjAtMDMtMTUgLSBbTG9hZCBUZXN0aW5nIFlvdXIgQVBJIHdpdGggU3dhZ2dlci9PcGVuQVBJIGFuZCBrNl0oaHR0cHM6Ly9rNi5pby9ibG9nL2xvYWQtdGVzdGluZy15b3VyLWFwaS13aXRoLXN3YWdnZXItb3BlbmFwaS1hbmQtazYpCi0gMjAyMC0wNC0xMyAtIFvkv7rnmoTjgJBPQVPjgJHjgajjga7lkJHjgY3lkIjjgYTmlrkgKOeIhumAn+OBp09wZW5BUEnjgajlj4vpgZTjgavjgarjgo3jgYYpXShodHRwczovL3RlY2gtYmxvZy5vcHRpbS5jby5qcC9lbnRyeS8yMDIwLzA0LzEzLzEwMDAwMCkgaW4gW09QVGltIEJsb2ddKGh0dHBzOi8vdGVjaC1ibG9nLm9wdGltLmNvLmpwLykKLSAyMDIwLTA0LTIyIC0gW0ludHJvZHVjdGlvbiB0byBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9pbnRyb2R1Y3Rpb24tdG8tb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS3Jpc3RvcGhlciBTYW5kb3ZhbF0oaHR0cHM6Ly9ub3JkaWNhcGlzLmNvbS9hdXRob3Ivc2FuZG92YWxlZmZlY3QvKSBpbiBbTm9yZGljIEFQSXNdKGh0dHBzOi8vbm9yZGljYXBpcy5jb20vKQotIDIwMjAtMDQtMjcgLSBbSG93IHdlIHVzZSBPcGVuIEFQSSB2MyBzcGVjaWZpY2F0aW9uIHRvIGF1dG8tZ2VuZXJhdGUgQVBJIGRvY3VtZW50YXRpb24sIGNvZGUtc25pcHBldHMgYW5kIGNsaWVudHNdKGh0dHBzOi8vbWVkaXVtLmNvbS9wZGYtZ2VuZXJhdG9yLWFwaS9ob3ctd2UtdXNlLW9wZW4tYXBpLXYzLXNwZWNpZmljYXRpb24tdG8tYXV0by1nZW5lcmF0ZS1hcGktZG9jdW1lbnRhdGlvbi1jb2RlLXNuaXBwZXRzLWFuZC1jbGllbnRzLWQxMjdhM2NlYTc4NCkgYnkgW1RhbmVsIFTDpGhlcMO1bGRdKGh0dHBzOi8vbWVkaXVtLmNvbS9AdGFuZWwudGFoZXBvbGQpCi0gMjAyMC0wNS0wOSAtIFtPcGVuQVBJ44Gn44GK5omL6Lu944Gr44Oi44OD44KvQVBJ44K144O844OQ44O844KS5YuV44GL44GZXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlL2l0ZW1zLzk3Y2E2YThkZDQ2MDU2OTVjMjVjKSBieSBbU2FjaGllIEthbWJhXShodHRwczovL3FpaXRhLmNvbS9rYXNhX2xlKQotIDIwMjAtMDUtMTggLSBbU3ByaW5nIEJvb3QgUkVTVCB3aXRoIE9wZW5BUEkgM10oaHR0cHM6Ly9kZXYudG8vYWxmb256amFuZnJpdGh6L3NwcmluZy1ib290LXJlc3Qtd2l0aC1vcGVuYXBpLTMtNTlqbSkgYnkgW0FsZm9ueiBKYW4gRnJpdGh6XShodHRwczovL2Rldi50by9hbGZvbnpqYW5mcml0aHopCi0gMjAyMC0wNS0xOSAtIFtEZWFkIFNpbXBsZSBBUElzIHdpdGggT3BlbiBBUEldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9c0lhWG1SNnhSQXcpIGJ5IFtDaHJpcyBUYW5rZXJzbGV5XShodHRwczovL2dpdGh1Yi5jb20vZHJhZ29ubWFudGFuaykgYXQgW05leG1vXShodHRwczovL2RldmVsb3Blci5uZXhtby5jb20vKQotIDIwMjAtMDUtMjIgLSBbVHlwZVNjcmlwdCBSRVNUIEFQSSBDbGllbnRdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZC90eXBlc2NyaXB0LXJlc3QtYXBpLWNsaWVudC00aW4zKSBieSBbInVuaHVycmllZCJdKGh0dHBzOi8vZGV2LnRvL3VuaHVycmllZCkKLSAyMDIwLTA1LTI4IC0gW+OAkOS9v+eUqCBsb3RpZnkgKyBTd2FnZ2VyIOW7uue9ruWPr+WFseeUqOeahCBMSU5FIE5vdGlmeSBib3TjgJEgLSAjTmlKaWEgQCBDaGF0Ym90IERldmVsb3BlciBUYWl3YW4g56ysICMxOSDlsI/ogZpdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YWdZVno2ZHpoMUkpIGJ5IFtDaGF0Ym90IERldmVsb3BlciBUYWl3YW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2NoYW5uZWwvVUN4ZVlVeVpObkhtcFgyM1lORi1ld3Z3KQotIDIwMjAtMDUtMjggLSBbQnVpbGRpbmcgQVBJcyB3aXRoIExhcmF2ZWwgdXNpbmcgT3BlbkFQSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj14ZXhMdlFxQWhpQSkgYnkgW0NocmlzIFRhbmtlcnNsZXldKGh0dHBzOi8vZ2l0aHViLmNvbS9kcmFnb25tYW50YW5rKSBhdCBbTGFyYWNvbiBFVV0oaHR0cHM6Ly9sYXJhY29uLmV1LykKLSAyMDIwLTA2LTEyIC0gW0ludGVyb3BlcmFiaWxpdHkgYnkgY29uc3RydWN0aW9uOiBjb2RlIGdlbmVyYXRpb24gZm9yIEFycm93aGVhZCBDbGllbnRzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTI3NDc0NikgYnkgTWljaGVsZSBBbGJhbm8sIEJyaWFuIE5pZWxzZW4gYXQgWzIwMjAgSUVFRSBDb25mZXJlbmNlIG9uIEluZHVzdHJpYWwgQ3liZXJwaHlzaWNhbCBTeXN0ZW1zIChJQ1BTKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkyNzQ1NDQvcHJvY2VlZGluZykKLSAyMDIwLTA2LTIzIC0gW+aWsOimj+OCteODvOODkOODvOOCouODl+ODquOCseODvOOCt+ODp+ODs+OBq1R5cGVTY3JpcHTjgpLmjqHnlKjjgZfjgabjgb/jgZ9dKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy8yMDIwMDYyMykgYXQgW0NBTSBUZWNoIEJsb2ddKGh0dHBzOi8vd3d3LmNhbS1pbmMuY28uanAvbmV3cy90ZWNoLWJsb2cvKQotIDIwMjAtMDYtMjkgLSBbQXJ0aWZhY3QgQWJzdHJhY3Q6IERlcGxveW1lbnQgb2YgQVBJcyBvbiBBbmRyb2lkIE1vYmlsZSBEZXZpY2VzIGFuZCBNaWNyb2NvbnRyb2xsZXJzXShodHRwczovL2llZWV4cGxvcmUuaWVlZS5vcmcvZG9jdW1lbnQvOTEyNzM1MykgYnkgW1NlcmdpbyBMYXNvIDsgTWFyaW5vIExpbmFqZSA7IEpvc2UgR2FyY2lhLUFsb25zbyA7IEp1YW4gTS4gTXVyaWxsbyA7IEphdmllciBCZXJyb2NhbF0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50LzkxMjczNTMvYXV0aG9ycyNhdXRob3JzKSBhdCBbMjAyMCBJRUVFIEludGVybmF0aW9uYWwgQ29uZmVyZW5jZSBvbiBQZXJ2YXNpdmUgQ29tcHV0aW5nIGFuZCBDb21tdW5pY2F0aW9ucyAoUGVyQ29tKV0oaHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3hwbC9jb25ob21lLzkxMjU0NDkvcHJvY2VlZGluZykKLSAyMDIwLTA3LTA3IC0gWzUgQmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBUb29sc10oaHR0cHM6Ly9ibG9nLmRyZWFtZmFjdG9yeS5jb20vNS1iZXN0LWFwaS1kb2N1bWVudGF0aW9uLXRvb2xzLykgYnkgU3VzYW5uYSBCb3VzZSBhdCBbRHJlYW1GYWN0b3J5IEJsb2ddKGh0dHBzOi8vYmxvZy5kcmVhbWZhY3RvcnkuY29tLykKLSAyMDIwLTA3LTEyIC0gW09wZW4gQVBJIDMuMOOBruWumue+qeOBi+OCiWdvbGFuZ+OBruOCteODvOODkOOCs+ODvOODieOBruOCueOCseODq+ODiOODs+OCkuS9nOaIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vcHJvZmVzc29yL2l0ZW1zLzRjYmQwNGVjMDg0ZDEzMDU3YmMyKSBieSBbQHByb2Zlc3NvciAoUWlpdGEgQmxvZyldKGh0dHBzOi8vcWlpdGEuY29tL3Byb2Zlc3NvcikKLSAyMDIwLTA3LTIwIC0gW0RhdGFkb2cgQVBJIGNsaWVudCBsaWJyYXJpZXMgbm93IGF2YWlsYWJsZSBmb3IgSmF2YSBhbmQgR29dKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZy9qYXZhLWdvLWxpYnJhcmllcy8pIGJ5IEpvcmRhbiBPYmV5IGF0IFtEYXRhZG9nIEJsb2ddKGh0dHBzOi8vd3d3LmRhdGFkb2docS5jb20vYmxvZykKLSAyMDIwLTA3LTIzIC0gW0dlbmVyYXRlIENsaWVudCBTREsgZm9yIC5ORVQgQ29yZSB1c2luZyBPcGVuIEFwaV0oaHR0cHM6Ly9kZXYudG8vbm8wbGF3MS9nZW5lcmF0ZS1jbGllbnQtc2RrLWZvci1uZXQtY29yZS11c2luZy1vcGVuLWFwaS0yZGdoKSBieSBbTnVubyBSZWlzXShodHRwczovL2Rldi50by9ubzBsYXcxKQotIDIwMjAtMDctMjYgLSBbRGFydOOBrmh0dHBfaW50ZXJjZXB0b3Ljg6njgqTjg5bjg6njg6rjgpLkvb/jgYbjgajphY3liJfjga7jgq/jgqjjg6rjg5Hjg6njg6Hjg7zjgr/jgYzmtojjgYjjgabjgZfjgb7jgYbku7bjga7lv5zmgKXlh6bnva5dKGh0dHBzOi8vcWlpdGEuY29tL2d5YW1vdG8vaXRlbXMvZWVlZmY4MWI2NzcwNDg3MzE5ZWQpIGJ5IFtAZ3lhbW90b10oaHR0cHM6Ly9xaWl0YS5jb20vZ3lhbW90bykKLSAyMDIwLTA4LTAxIC0gW0dlbmVyYXRlIEFuZ3VsYXIgUmVhY3RpdmVGb3JtcyBmcm9tIFN3YWdnZXIvT3BlbkFQSV0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyL2dlbmVyYXRlLWFuZ3VsYXItcmVhY3RpdmVmb3Jtcy1mcm9tLXN3YWdnZXItb3BlbmFwaS0zNWg5KSBieSBbTWFydGluIE1jV2hvcnRlcl0oaHR0cHM6Ly9kZXYudG8vbWFydGlubWN3aG9ydGVyKQotIDIwMjAtMDgtMDMgLSBbQ3JpYW5kbyBCaWJsaW90ZWNhcyBwYXJhIEFQSXMgUkVTVGZ1bCBjb20gT3BlbkFQSSwgU3dhZ2dlciBFZGl0b3IgZSBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BldmVyaXNCcmFzaWwvY3JpYW5kby1iaWJsaW90ZWNhcy1wYXJhLWFwaXMtcmVzdGZ1bC1jb20tb3BlbmFwaS1zd2FnZ2VyLWVkaXRvci1lLW9wZW5hcGktZ2VuZXJhdG9yLTc1MzQ5YTY0MjBmZCkgYnkgW2V2ZXJpcyBCcmFzaWwgKGFuIE5UVCBEQVRBIENvbXBhbnkpXShodHRwczovL21lZGl1bS5jb20vQGV2ZXJpc0JyYXNpbCkKLSAyMDIwLTA4LTE5IC0gW+ODnuOCpOOCr+ODreOCteODvOODk+OCueOCkumAo+aQuuOBl+OBpuOBv+OCiOOBhl0oaHR0cHM6Ly90aGlua2l0LmNvLmpwL2FydGljbGUvMTc3MDQpIGJ5IFvlsqHkupUg6KOV55+iKOOBiuOBi+OBhCDjgobjgYbjgoQpXShodHRwczovL3RoaW5raXQuY28uanAvYXV0aG9yLzE3NTg4KSwgW+aziSDli50o44GE44Ga44G/IOOBvuOBleOCiyldKGh0dHBzOi8vdGhpbmtpdC5jby5qcC9hdXRob3IvMTc3MDUpIGF0IFtUaGluayBJVO+8iOOCt+ODs+OCr+OCpOODg+ODiO+8iV0oaHR0cHM6Ly90aGlua2l0LmNvLmpwLykKLSAyMDIwLTA4LTI1IC0gW09wZW5BUEkgR2VuZXJhdG9yIOOBqCBUeXBlU2NyaXB0IOOBp+Wei+WuieWFqOOBq+ODleODreODs+ODiOOCqOODs+ODiemWi+eZuuOCkuOBl+OBpuOBhOOCi+ipsV0oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvZW50cnkvMjAyMC8wOC8yNS8xMzU2MzEpIGF0IFtTbWFydEhSIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoLnNtYXJ0aHIuanAvKQotIDIwMjAtMDktMTAgLSBbSW50cm9kdWN0aW9uIHRvIE9wZW5BUEkgd2l0aCBJbnN0YW5hXShodHRwczovL3d3dy5pbnN0YW5hLmNvbS9ibG9nL2ludHJvZHVjdGlvbi10by1vcGVuYXBpLXdpdGgtaW5zdGFuYS8pIGJ5IFtDZWRyaWMgWmllbF0oaHR0cHM6Ly93d3cuaW5zdGFuYS5jb20vYmxvZy9hdXRob3IvY2VkcmljemllbC8pIGF0IFtJbnN0YW5hIEJsb2ddKGh0dHBzOi8vd3d3Lmluc3RhbmEuY29tL2Jsb2cvKQotIDIwMjAtMDktMTcgLSBbR2VuZXJhdGUgUG93ZXJTaGVsbFNESyB1c2luZyBvcGVuYXBpLWdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL0BnaHVmei5sZWFybi9nZW5lcmF0ZS1wb3dlcnNoZWxsc2RrLXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLTMzYjcwMDg5MWUzMykgYnkgW0dodWZyYW4gWmFoaWRpXShodHRwczovL21lZGl1bS5jb20vQGdodWZ6LmxlYXJuKQotIDIwMjAtMDktMjQgLSBbSG93IHRvIGF1dG9tYXRlIEFQSSBjb2RlIGdlbmVyYXRpb24gKE9wZW5BUEkvU3dhZ2dlcikgYW5kIGJvb3N0IHByb2R1Y3Rpdml0eSAtIFR1dG9yaWFsIHdpdGggUmVhY3QgTmF0aXZlIGZlYXR1cmluZyBUeXBlU2NyaXB0XShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpL2hvdy10by1hdXRvbWF0ZS1hcGktY29kZS1nZW5lcmF0aW9uLW9wZW5hcGktc3dhZ2dlci1hbmQtYm9vc3QtcHJvZHVjdGl2aXR5LTExNzZhMDA1NmQ4YSkgYnkgW1NhbmppbiBDZWxlc2tpXShodHRwczovL21lZGl1bS5jb20vQHNjZWxlc2tpKQotIDIwMjAtMDktMjUgLSBbR2VuZXJhdGUgT3BlbkFQSSBBbmd1bGFyIENsaWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3Vzby9nZW5lcmF0ZS1vcGVuYXBpLWFuZ3VsYXItY2xpZW50LThjOTI4OGU4YmJkNCkgYnkgW1BhdHJpY10oaHR0cHM6Ly9tZWRpdW0uY29tL0BwZ3VzbykKLSAyMDIwLTEwLTI0IC0gW1dvcmtpbmcgd2l0aCBNaWNyb3NvZnQgSWRlbnRpdHkgLSBSZWFjdCBOYXRpdmUgQ2xpZW50XShodHRwczovL3d3dy5qb3NlcGhndWFkYWduby5uZXQvMjAyMC8xMC8yNC93b3JraW5nLXdpdGgtbWljcm9zb2Z0LWlkZW50aXR5LXJlYWN0LW5hdGl2ZS1jbGllbnQpIGJ5IFtKb3NlcGggR3VhZGFnbm9dKGh0dHBzOi8vd3d3Lmpvc2VwaGd1YWRhZ25vLm5ldC8pCi0gMjAyMC0xMC0zMSAtIFtbQjJdIE9wZW5BUEkgU3BlY2lmaWNhdGlvbuycvOuhnCDtg4DsnoUt7IS47J207ZSE7ZWY6rKMIEFQSSDqsJzrsJztlZjquLA6IO2drOunne2OuCBWUyDsoIjrp53tjrhdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9SjRKSExFU0FpRmspIGJ5IOy1nO2DnOqxtCBhdCBbRkVDb25mIDIwMjBdKGh0dHBzOi8vMjAyMC5mZWNvbmYua3IvKQotIDIwMjAtMTEtMDUgLSBbQXV0b21hdGVkIFJFU1QtQXBpIENvZGUgR2VuZXJhdGlvbjogV2llIElULVN5c3RlbWUgbWl0ZWluYW5kZXIgc3ByZWNoZW5dKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cvYXV0b21hdGVkLXJlc3QtYXBpLWNvZGUtZ2VuZXJhdGlvbi13aWUtaXQtc3lzdGVtZS1taXRlaW5hbmRlci1zcHJlY2hlbikgYnkgU3RlZmFuIFJvdHRlbnN0ZWluZXIgYXQgW01BU1NJVkUgQVJUIEJsb2ddKGh0dHBzOi8vd3d3Lm1hc3NpdmVhcnQuY29tL2Jsb2cpCi0gMjAyMC0xMi0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOBp0dv44GuQVBJ44K144O844OQ44O8L+OCr+ODqeOCpOOCouODs+ODiOOCs+ODvOODieOCkuiHquWLleeUn+aIkOOBmeOCi10oaHR0cHM6Ly9xaWl0YS5jb20vc2FraS1lbmdpbmVlcmluZy9pdGVtcy9iMjBkOGI2MDc0YzRkYTk2NjRhNSkgYnkgW0BzYWtpLWVuZ2luZWVyaW5nXShodHRwczovL3FpaXRhLmNvbS9zYWtpLWVuZ2luZWVyaW5nKQotIDIwMjAtMTItMDQgLSBbU2NhbGluZyB0aGUgVGVzdCBDb3ZlcmFnZSBvZiBPcGVuQVBJIEdlbmVyYXRvciBmb3IgMzArIFByb2dyYW1taW5nIExhbmd1YWdlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03TGtlOWRIUnFUMCkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbT3BlbiBTb3VyY2UgU3VtbWl0IEphcGFuICsgQXV0b21vdGl2ZSBMaW51eCBTdW1taXQgMjAyMF0oaHR0cHM6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9hcmNoaXZlLzIwMjAvb3Blbi1zb3VyY2Utc3VtbWl0LWphcGFuLykgKFtTbGlkZXNdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dpbmczMjgvc2NhbGluZy10aGUtdGVzdC1jb3ZlcmFnZS1vZi1vcGVuYXBpLWdlbmVyYXRvci1mb3ItMzAtcGx1cy1wcm9ncmFtbWluZy1sYW5ndWFnZXMpKQotIDIwMjAtMTItMDkgLSBb44OX44Ot44K444Kn44Kv44OI44GrT3BlbkFQSSBHZW5lcmF0b3Ljgafoh6rli5XnlJ/miJDjgZXjgozjgZ/lnovku5jjgY1BUEkgQ2xpZW5044KS5bCO5YWl44GX44Gf6KmxXShodHRwczovL3FpaXRhLmNvbS95b3NoaWZ1amlUL2l0ZW1zLzkwNWMxODcwMGVkZTIzZjQwODQwKSBieSBbQHlvc2hpZnVqaVRdKGh0dHBzOi8vZ2l0aHViLmNvbS95b3NoaWZ1amlUKQotIDIwMjAtMTItMTUgLSBbTmV4dC5qcyArIE5lc3RKUyArIEdyYXBoUUzjgaflpInljJbjgavov73lvpPjgZnjgovjg5Xjg63jg7Pjg4jjgqjjg7Pjg4njgbgg44CcIOOCt+ODp+ODg+ODlOODs+OCsOOCr+ODvOODneODs+OBruS6i+S+i+e0ueS7i10oaHR0cHM6Ly90ZWNoYmxvZy55YWhvby5jby5qcC9lbnRyeS8yMDIwMTIxNTMwMDUyOTUyLykgYnkgW+Wwj+WAiSDpmbhdKGh0dHBzOi8vZ2l0aHViLmNvbS9vZ3VndTkpIGF0IFtZYWhvbyEgSkFQQU4gVGVjaCBCbG9nXShodHRwczovL3RlY2hibG9nLnlhaG9vLmNvLmpwLykKLSAyMDIxLTAxLTA4IC0gW0hlbGxvLCBOZXcgQVBJIOKAkyBQYXJ0IDFdKGh0dHBzOi8vd3d3Lm5naW54LmNvbS9ibG9nL2hlbGxvLW5ldy1hcGktcGFydC0xLykgYnkgW0plcmVteSBTY2h1bG1hbl0oaHR0cHM6Ly93d3cubmdpbnguY29tL3Blb3BsZS9qZXJlbXktc2NodWxtYW4vKSBhdCBbTWFqb3IgTGVhZ3VlIEJhc2ViYWxsXShodHRwczovL3d3dy5tbGIuY29tKQotIDIwMjEtMDEtMTggLSBb44CM44Ki44OX44Oq6ZaL55m644GC44KL44GC44KL44CN44KS55aR44GG44GT44Go44GL44KJ5aeL44G+44Gj44Gf44CBQVBJIENsaWVudOOCs+ODvOODieOBruiHquWLleeUn+aIkOOAkOODh+ODluOCueODiDIwMjDjgJFdKGh0dHBzOi8vY29kZXppbmUuanAvYXJ0aWNsZS9kZXRhaWwvMTM0MDY/cD0yKSBieSBbQ29kZVppbmXnt6jpm4bpg6hdKGh0dHBzOi8vY29kZXppbmUuanAvYXV0aG9yLzEpCi0gMjAyMS0wMi0wNSAtIFtSRVNULUFQSS1Sb3VuZHRyaXAgd2l0aCBTcHJpbmdEb2MgYW5kIE9wZW5BUEkgR2VuZXJhdG9yXShodHRwczovL2Jsb2cudmlhZGVlLmRlL2VuL3Jlc3QtYXBpLXJvdW5kdHJpcCkgYnkgW0JlbmphbWluIEtsYXR0XShodHRwczovL3R3aXR0ZXIuY29tL2JlbmtsYXR0KSBhdCBbdmlhZGVlXShodHRwczovL3d3dy52aWFkZWUuZGUvZW4vKQotIDIwMjEtMDItMTcgLSBbUkVTVC1BUEktUm91bmR0cmlwIHdpdGggU3ByaW5nRG9jIGFuZCBPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9tZWRpdW0uY29tL25lcmQtZm9yLXRlY2gvcmVzdC1hcGktcm91bmR0cmlwLXdpdGgtc3ByaW5nZG9jLWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zMGJkMjdjY2Y2OTgpIGJ5IFtjbG91ZCBAdmlhZGVlXShodHRwczovL2Nsb3VkLXZpYWRlZS5tZWRpdW0uY29tLykKLSAyMDIxLTAzLTA4IC0gW09wZW5BUEkgR2VuZXJhdG9yIOW3peWFt+eahOi6uuWdkeWwneivlV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEvYXJ0aWNsZS9kZXRhaWxzLzExNDUzMTk3NSkgYnkgW+eLrOWutumbqOWkqV0oaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwMTk3MDEpIGF0IFtDU0RO5a6Y5pa55Y2a5a6iXShodHRwczovL2Jsb2cuY3Nkbi5uZXQvKQotIDIwMjEtMDMtMTYgLSBb5aaC5L2V5Z+65LqOIFN3YWdnZXIg5L2/55SoIE9wZW5BUEkgR2VuZXJhdG9yIOeUn+aIkCBKTWV0ZXIg6ISa5pys77yfXShodHRwczovL2Nsb3VkLnRlbmNlbnQuY29tL2RldmVsb3Blci9hcnRpY2xlLzE4MDI3MDQpIGJ5IFvpq5jmpbxaZWVdKGh0dHBzOi8vY2xvdWQudGVuY2VudC5jb20vZGV2ZWxvcGVyL3VzZXIvNTgzNjI1NSkgYXQgW+iFvuiur+S6keS4k+agj10oaHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9kZXZlbG9wZXIvY29sdW1uKQotIDIwMjEtMDMtMjQgLSBbb3BlbmFwaS1nZW5lcmF0b3ItY2xpIOOBq+OCiOOCiyBUeXBlU2NyaXB0IOWei+Wumue+qV0oaHR0cHM6Ly96ZW5uLmRldi90YWtlcGVwZS9hcnRpY2xlcy9vcGVuYXBpLWdlbmVyYXRvci1jbGktdHMpIGJ5IFtUYWtlZnVtaSBZb3NoaWldKGh0dHBzOi8vemVubi5kZXYvdGFrZXBlcGUpCi0gMjAyMS0wMy0yOCAtIFtUcnlpbmcgb3V0IE5lc3RKUyBwYXJ0IDQ6IEdlbmVyYXRlIFR5cGVzY3JpcHQgY2xpZW50cyBmcm9tIE9wZW5BUEkgZG9jdW1lbnRzXShodHRwczovL2Rldi50by9hcm5hdWRjb3J0aXNzZS90cnlpbmctb3V0LW5lc3Rqcy1wYXJ0LTQtZ2VuZXJhdGUtdHlwZXNjcmlwdC1jbGllbnRzLWZyb20tb3BlbmFwaS1kb2N1bWVudHMtMjhtaykgYnkgW0FybmF1ZCBDb3J0aXNzZV0oaHR0cHM6Ly9kZXYudG8vYXJuYXVkY29ydGlzc2UpCi0gMjAyMS0wMy0zMSAtIFtPcGVuIEFQSSBTZXJ2ZXIgSW1wbGVtZW50YXRpb24gVXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmJhZWxkdW5nLmNvbS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW0JhZWxkdW5nXShodHRwczovL3d3dy5iYWVsZHVuZy5jb20vKQotIDIwMjEtMDMtMzEgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3Llr6bnj75PcGVuIEFQSSBTZXJ2ZXJdKGh0dHBzOi8vd3d3LjFqdS5vcmcvYXJ0aWNsZS9qYXZhLW9wZW5hcGktZ2VuZXJhdG9yLXNlcnZlcikgYXQgW+WEhOiBmue2sl0oaHR0cHM6Ly93d3cuMWp1Lm9yZy8pCi0gMjAyMS0wNC0xOSAtIFtJbnRyb2R1Y2luZyBUd2lsaW/igJlzIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBCZXRhXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvaW50cm9kdWNpbmctdHdpbGlvLW9wZW4tYXBpLXNwZWNpZmljYXRpb24tYmV0YSkgYnkgW0dBUkVUSCBQQVVMIEpPTkVTXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cvYXV0aG9yL2dwaikgYXQgW1R3aWxpbyBCbG9nXShodHRwczovL3d3dy50d2lsaW8uY29tL2Jsb2cpCi0gMjAyMS0wNC0yMiAtIFtMZXZlcmFnaW5nIE9wZW5BcGkgc3RyZW5ndGhzIGluIGEgTWljcm8tU2VydmljZSBlbnZpcm9ubWVudF0oaHR0cHM6Ly9tZWRpdW0uY29tL3VuaWJ1ZGR5LXRlY2hub2xvZ3ktYmxvZy9sZXZlcmFnaW5nLW9wZW5hcGktc3RyZW5ndGhzLWluLWEtbWljcm8tc2VydmljZS1lbnZpcm9ubWVudC0zZDdmOWU3YzI2ZmYpIGJ5IE5pY29sYXMgSmVsbGFiIGF0IFtVbmlidWRkeSBUZWNobm9sb2d5IEJsb2ddKGh0dHBzOi8vbWVkaXVtLmNvbS91bmlidWRkeS10ZWNobm9sb2d5LWJsb2cpCi0gMjAyMS0wNC0yNyAtIFtGcm9tIHplcm8gdG8gcHVibGlzaGluZyBQb3dlclNoZWxsIEFQSSBjbGllbnRzIGluIFBvd2VyU2hlbGwgR2FsbGVyeSB3aXRoaW4gbWludXRlc10oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vd2luZzMyOC9mcm9tLXplcm8tdG8tcHVibGlzaGluZy1wb3dlcnNoZWxsLWFwaS1jbGllbnRzLWluLXBvd2Vyc2hlbGwtZ2FsbGVyeS13aXRoaW4tbWludXRlcykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSBhdCBbUG93ZXJTaGVsbCArIERldk9wcyBHbG9iYWwgU3VtbWl0IDIwMjFdKGh0dHBzOi8vZXZlbnRzLmRldm9wc2NvbGxlY3RpdmUub3JnL2V2ZW50L3Bvd2Vyc2hlbGwtZGV2b3BzLWdsb2JhbC1zdW1taXQtMjAyMS8pCi0gMjAyMS0wNS0zMSAtIFtGbHV0dGVy44GnT3BlbiBBcGkgR2VuZXJhdG9yKFN3YWdnZXIp44KS5L2/44GGXShodHRwczovL2Fha2lyYS5hcHAvYmxvZy8yMDIxLzA1L2ZsdXR0ZXItb3Blbi1hcGkvKSBieSBbQUFraXJhXShodHRwczovL3R3aXR0ZXIuY29tL19hX2FraXJhKQotIDIwMjEtMDYtMjIgLSBbUmVzdCBBUEkgRG9jdW1lbnRhdGlvbiBhbmQgQ2xpZW50IEdlbmVyYXRpb24gV2l0aCBPcGVuQVBJXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9yZXN0LWFwaS1kb2N1bWVudGF0aW9uLWFuZC1jbGllbnQtZ2VuZXJhdGlvbi13aXRoKSBieSBbUHJhc2FudGggR3VsbGFwYWxsaV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvMTAxMTc5Ny9wcmFzYW50aG5hdGguZ0BnbWFpbC5jb20uaHRtbCkKLSAyMDIxLTA3LTE2IC0gW+mKgOihjOS6i+alreOBruOCteODvOODkOODvOOCteOCpOODiemWi+eZuuOBq+OBpOOBhOOBpiAvIExJTkUg5Lqs6YO96ZaL55m65a6kIOOCqOODs+OCuOODi+OCouaOoeeUqOiqrOaYjuS8ml0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1ZcnJLUUh4TFBwUSkgYnkg6YeO55Sw6Kqg5Lq6LCBSb2JlcnQgTWl0Y2hlbGwKLSAyMDIxLTA3LTE5IC0gW09wZW5BUEkgY29kZSBnZW5lcmF0aW9uIHdpdGgga290bGluXShodHRwczovL3N5bGhhcmUuZ2l0aHViLmlvLzIwMjEvMDcvMTkvT3BlbmFwaS1zd2FnZ2VyLWNvZGVnZW4td2l0aC1rb3RsaW4uaHRtbCkgYnkgW3N5bGhhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zeWxoYXJlKQotIDIwMjEtMDctMjkgLSBbSG93IFRvIFJld3JpdGUgYSBIdWdlIENvZGViYXNlXShodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9ob3ctdG8tcmV3cml0ZS1hLWh1Z2UtY29kZS1iYXNlKSBieSBbQ3VydGlzIFBvZV0oaHR0cHM6Ly9kem9uZS5jb20vdXNlcnMvNDU2NTQ0Ni9wdWJsaXVzb3ZpZGl1cy5odG1sKQotIDIwMjEtMDgtMjEgLSBbR2VuZXJhdGluZyBDbGllbnQgQVBJcyB1c2luZyBTd2FnZ2VyIFBhcnQgMV0oaHR0cHM6Ly9tZWRpdW0uY29tL0BmbG93c3F1YWQvZ2VuZXJhdGluZy1jbGllbnQtYXBpcy11c2luZy1zd2FnZ2VyLXBhcnQtMS0yZDQ2ZjEzZjVlOTIpIGJ5IFtGbG93U3F1YWQuaW9dKGh0dHBzOi8vbWVkaXVtLmNvbS9AZmxvd3NxdWFkKQotIDIwMjEtMDktMTEgLSBbSW52b2tpbmcgQVdTIFBhcmFsbGVsQ2x1c3RlciBBUEldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkgYXQgW0FXUyBQYXJhbGxlbENsdXN0ZXIgQVBJIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9wYXJhbGxlbGNsdXN0ZXIvbGF0ZXN0L3VnL2FwaS1yZWZlcmVuY2UtdjMuaHRtbCkKLSAyMDIxLTA5LTIwIC0gW09wZW5BUEkgR2VuZXJhdG9yIC0gVGhlIEJhYmVsIEZpc2ggb2YgdGhlIEFQSSBXb3JsZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zMnpNdHdkNWtsZykgYnkgW0NsaWZmYW5vIFN1YmFnaW8gKFByaW5jaXBhbCBFbmdpbmVlciBhdCBTaGluZSBTb2x1dGlvbnMpXShodHRwczovL2dpdGh1Yi5jb20vY2xpZmZhbm8pIGF0IFtBcGlkYXlzIExJVkUgQXVzdHJhbGlhIDIwMjFdKGh0dHBzOi8vd3d3LmFwaWRheXMuZ2xvYmFsL2F1c3RyYWxpYTIwMjEvKQotIDIwMjEtMTAtMDIgLSBbSG93IHRvIFdyaXRlIEZld2VyIExpbmVzIG9mIENvZGUgd2l0aCB0aGUgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vaG93LXRvLXdyaXRlLWZld2VyLWxpbmVzLW9mLWNvZGUtd2l0aC10aGUtb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtNaWtoYWlsIEFsZmFdKGh0dHBzOi8vaGFja2Vybm9vbi5jb20vdS9hbHBoYW1pa2xlKQotIDIwMjEtMTAtMTIgLSBbT3BlbkFQSSBHZW5lcmF0b3IgOiA0MDAwIMOpdG9pbGVzIHN1ciBHaXRIdWIgZXQgZGVzIHNwYWdoZXR0aXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OWhFc05CU3FURmspIGJ5IFtKw6lyw6ltaWUgQnJlc3Nvbl0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSBhdCBbRGV2b3h4IEZSIDIwMjFdKGh0dHBzOi8vY2ZwLmRldm94eC5mci8yMDIxL3NwZWFrZXIvamVyZW1pZV9icmVzc29uKQotIDIwMjEtMTAtMTcgLSBbR2VuZXJhdGUgYSBUeXBlU2NyaXB0IEhUVFAgQ2xpZW50IEZyb20gQW4gT3BlbkFQSSBTcGVjIEluIERvdE5FVCA1XShodHRwczovL3JpY2hhcmR3aWxsaXMuaW5mby9ibG9nL2dlbmVyYXRlLWEtdHlwZS1zY3JpcHQtaHR0cC1jbGllbnQtZnJvbS1hbi1vcGVuLWFwaS1zcGVjLWluLWRvdC1uZXQtNSkgYnkgW1JpY2hhcmQgV2lsbGlzXShodHRwczovL2dpdGh1Yi5jb20vYmFkc3ludGF4KQotIDIwMjEtMTEtMDYgLSBb44K544K/44O844OI44Ki44OD44OX44Gu6ZaL55m644Gn5oSP6K2Y44GX44Gf44GT44GoXShodHRwczovL3plbm4uZGV2L3dvb19ub28vYXJ0aWNsZXMvNWNiMDlmOGUyODk5YWU3ODJhZDEpIGJ5IFt3b28tbm9vXShodHRwczovL3plbm4uZGV2L3dvb19ub28pCi0gMjAyMS0xMS0wOSAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9lZmZlY3RpdmUtc29mdHdhcmUtZGV2ZWxvcG1lbnQtdXNpbmctb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IEFqaWwgT29tbWUKLSAyMDIxLTEyLTA3IC0gW0FuIEludHJvZHVjdGlvbiB0byBPcGVuQVBJXShodHRwczovL2JldHRlcnByb2dyYW1taW5nLnB1Yi80LXVzZS1jYXNlcy1vZi1vcGVuYXBpLXdoaWNoLWFyZS1nb29kLXRvLWtub3ctMWEwNDFmNGFkNzFlKSBieSBbTmEnYW1hbiBIaXJzY2hmZWxkXShodHRwczovL25hYW1hbmhpcnNjaGZlbGQubWVkaXVtLmNvbS8pCi0gMjAyMi0wMS0wMiAtIFtUb3dhcmRzIGEgc2VjdXJlIEFQSSBjbGllbnQgZ2VuZXJhdG9yIGZvciBJb1QgZGV2aWNlc10oaHR0cHM6Ly9hcnhpdi5vcmcvYWJzLzIyMDEuMDAyNzApIGJ5IEFuZGVycyBBYWVuIFNwcmluZ2JvcmcsIE1hcnRpbiBLYWxkYWhsIEFuZGVyc2VuLCBLYWFyZSBIb2xsYW5kIEhhdHRlbCwgTWljaGVsZSBBbGJhbm8KLSAyMDIyLTAyLTAyIC0gW1VzZSBPcGVuQXBpIGdlbmVyYXRvciB0byBzaGFyZSB5b3VyIG1vZGVscyBiZXR3ZWVuIEZsdXR0ZXIgYW5kIHlvdXIgYmFja2VuZF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1rUFc3Y2N1OVl2aykgYnkgW0d1aWxsYXVtZSBCZXJub3NdKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vc3BlYWtlcnMvZ3VpbGxhdW1lX2Jlcm5vcykgYXQgW0ZsdXR0ZXIgVmlraW5ncyBDb25mZXJlbmNlIDIwMjIgKEh5YnJpZCldKGh0dHBzOi8vZmViMjAyMi5mbHV0dGVydmlraW5ncy5jb20vKQotIDIwMjItMDMtMTUgLSBbT3BlbkFQSSBTcGVj44Gn44OP44Kk44OV44Oz5Yy65YiH44KK44GuRW51beWApOOCkk9wZW5BUEkgR2VuZXJhdG9y44Gn5Ye65Yqb44GZ44KL44Go44CB44OP44Kk44OV44Oz5Yy65YiH44KK44Gu44G+44G+5Ye65Yqb44GV44KM44KLXShodHRwczovL3FpaXRhLmNvbS95dWppMzhrd210L2l0ZW1zLzgyNGQ3NGQ0ODg5MDU1YWIzN2Q4KSBieSBbeXVqaTM4a3dtdF0oaHR0cHM6Ly9xaWl0YS5jb20veXVqaTM4a3dtdCkKLSAyMDIyLTA0LTAxIC0gW09wZW5BUEkgR2VuZXJhdG9y44Gu44Kz44O844OJ55Sf5oiQ44GoU3ByaW5nIEZyYW1ld29ya+OBruOCq+OCueOCv+ODoOODh+ODvOOCv+ODkOOCpOODs+ODh+OCo+ODs+OCsOOCkuWFseWtmOOBleOBm+OCi10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9jb2V4aXN0ZW5jZS1vZi1vcGVuYXBpLWFuZC1zcHJpbmcpIGluIFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMi0wNC0wNiAtIFtFZmZlY3RpdmUgU29mdHdhcmUgRGV2ZWxvcG1lbnQgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYXBleGxhYnMuYWkvcG9zdC9vcGVuYXBpLWdlbmVyYXRvcikgYnkgQWppbCBPb21tZW4gKFNlbmlvciBGbHV0dGVyIERldmVsb3BlcikKLSAyMDIyLTA1LTEzIC0gW0EgUGF0aCBGcm9tIGFuIEFQSSBUbyBDbGllbnQgTGlicmFyaWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVhDOG9Wbl9lZlR3KSBieSBbRmlsaXAgU3JuZWNdKGh0dHBzOi8vd3d3LmRldm94eC5jby51ay90YWxrLz9pZD0xMTIxMSkgYXQgSW5mb2JpcAotIDIwMjItMDYtMDEgLSBbQVBJIEZpcnN0LCB1c2luZyBPcGVuQVBJIGFuZCBTcHJpbmcgQm9vdF0oaHR0cHM6Ly9tZWRpdW0uY29tL3hnZWVrcy9hcGktZmlyc3QtdXNpbmctb3BlbmFwaS1hbmQtc3ByaW5nLWJvb3QtMjYwMmMwNGJiMGQzKSBieSBbTWljYWVsIEVzdHLDoXp1bGFzIFZpYW5uYV0oaHR0cHM6Ly9lc3RyYXp1bGFzLm1lZGl1bS5jb20vKQotIDIwMjItMDYtMTIgLSBbTXVzdGFjaGUgdGVtcGxhdGVzIHdpdGggT3BlbkFQSSBzcGVjc10oaHR0cHM6Ly9tZWRpdW0uY29tL2dlZWtjdWx0dXJlL211c3RhY2hlLXRlbXBsYXRlcy13aXRoLW9wZW5hcGktc3BlY3MtZjI0NzExYzY3ZGVjKSBieSBbQmVwcGUgQ2F0YW5lc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9nY2F0YW5lc2UpCi0gMjAyMi0wNy0wMSAtIFtHZW5lcmF0ZSBBUEkgY29udHJhY3QgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2luXShodHRwczovL2h1b25nZGFuamF2YS5jb20vZ2VuZXJhdGUtYXBpLWNvbnRyYWN0LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbi5odG1sKSBieSBbS2hhbmggTmd1eWVuXShodHRwczovL2h1b25nZGFuamF2YS5jb20vKQotIDIwMjItMDctMjIgLSBb5L2/55SoT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2lu5byA5Y+RYXBp5LyY5YWI55qEamF2YeWuouaIt+err+WSjOacjeWKoeerr+S7o+eggV0oaHR0cHM6Ly9ibG9nLnJvY2Nvc2hpLnRvcC8yMDIyL2phdmEvb3BlbmFwaS1nZW5lcmF0b3IlRTclOUElODQlRTQlQkQlQkYlRTclOTQlQTgvKSBieSBbTGluY2VzdF0oaHR0cHM6Ly9naXRodWIuY29tL0xpbmNlc3QpCi0gMjAyMi0wOC0wMSAtIFtUdXRvcmlhbDogRXRzeSBPcGVuIEFQSSB2MyAocnVieSldKGh0dHBzOi8vYmxvZy50am95YWwuZGV2L2V0c3ktb3Blbi1hcGktdjMvKSBieSBbVGhpZXJyeSBKb3lhbF0oaHR0cHM6Ly9naXRodWIuY29tL3Rqb3lhbCkKLSAyMDIyLTA5LTAzIC0gW09wZW5BUEkgR2VuZXJhdG9yIEZvciBHbyBXZWIgRGV2ZWxvcG1lbnRdKGh0dHBzOi8vYmxvZy5rZXZpbmh1Lm1lLzIwMjIvMDkvMDMvMDMtb3BlbmFwaS1nZW5lcmF0b3IvKSBieSBbS2V2aW4gSHVdKGh0dHBzOi8vdHdpdHRlci5jb20vT2xkZ3VuaXgpCi0gMjAyMi0xMC0wMSAtIFtPcGVuQVBJIEdlbmVyYXRvcuOCkuOCq+OCueOCv+ODnuOCpOOCuuOBl+OBn+OCs+ODvOODieOCkueUn+aIkOOBmeOCi++8iFN3YWdnZXIgQ29kZWdlbuOBqOOBu+OBvOWQjOOBmO+8iV0oaHR0cHM6Ly9uYWluYWlzdGFyLmhhdGVuYWJsb2cuY29tL2VudHJ5LzIwMjIvMTAvMDMvMTIwMDAwKSBieSBb44GN44KK5Li4XShodHRwczovL3R3aXR0ZXIuY29tL25haW5haXN0YXIpCi0gMjAyMi0xMC0yMSAtIFtLb3RsaW7vvIhTcHJpbmcgQm9vdO+8ieOBriBBUEkg44KSIE9wZW5BUEkgR2VuZXJhdG9yIOOBp+iHquWLleeUn+aIkF0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20vYXJ0aWNsZXMvMjAyMjEwMjEta290bGluLXNwcmluZy1vcGVuYXBpLWdlbmVyYXRvcikgYnkgW21za3NnbV0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20pCi0gMjAyMi0xMC0yNiAtIFtRdWFya3VzIEluc2lnaHRzICMxMDY6IFF1YXJraXZlcnNlIEV4dGVuc2lvbiBTcG90bGlnaHQ6IE9wZW5BcGkgR2VuZXJhdG9yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PV9zX2lmNjl0MmlRKSBieSBbUXVhcmt1c2lvXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jL1F1YXJrdXNpbykKLSAyMDIyLTExLTI4IC0gW1RoZSBSRVNUIEFQSSBpbXBsZW1lbnRhdGlvbiBmbG93XShodHRwczovL3Rtc3ZyLmNvbS9vcGVuYXBpLWNvZGUtZ2VuZXJhdGlvbi1mb3ItcmVzdC1hcGlzLykgYnkgW0ltcmUgVMO2bcO2c3bDoXJpXShodHRwczovL3Rtc3ZyLmNvbS9hdXRob3IvaW1yZS8pCi0gMjAyMi0xMi0xMyAtIFtBUEktRmlyc3Qgd2l0aCBTcHJpbmcgV2ViRmx1eCBhbmQgT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vYm9vdHRlY2hub2xvZ2llcy1jaS5tZWRpdW0uY29tL2FwaS1maXJzdC13aXRoLXNwcmluZy13ZWJmbHV4LWFuZC1vcGVuYXBpLWdlbmVyYXRvci0zOGI3ODA0YzRlZDQpIGJ5IFtFcmljIEFuaWNldF0oaHR0cHM6Ly9ib290dGVjaG5vbG9naWVzLWNpLm1lZGl1bS5jb20vKQotIDIwMjMtMDEtMDYgLSBbTWFqb3IgSW1wcm92ZW1lbnRzIHdpdGggSGVsaWRvbiBhbmQgT3BlbkFQSV0oaHR0cHM6Ly9tZWRpdW0uY29tL2hlbGlkb24vbWFqb3ItaW1wcm92ZW1lbnRzLXdpdGgtaGVsaWRvbi1hbmQtb3BlbmFwaS1mNzZhMDk1MTUwOGUpIGJ5IFtUaW0gUXVpbm5dKGh0dHBzOi8vbWVkaXVtLmNvbS9AdHF1aW5ubzYwMCkKLSAyMDIzLTAyLTAyIC0gW1JlcGxhY2luZyBQb3N0bWFuIHdpdGggdGhlIEpldGJyYWlucyBIVFRQIENsaWVudF0oaHR0cHM6Ly9sZW5ncmFuZC5mci9yZXBsYWNpbmctcG9zdG1hbi1pbi1zZWNvbmRzLXdpdGgtdGhlLWpldGJyYWlucy1odHRwLWNsaWVudC8pIGJ5IFtqdWxpZW4gTGVuZ3JhbmQtTGFtYmVydF0oaHR0cHM6Ly9naXRodWIuY29tL2psZW5ncmFuZCkKLSAyMDIzLTAzLTE1IC0gW09wZW5BUEkgR2VuZXJhdG9y44Gr6YGp44GX44GfT3BlbkFQSeOBruabuOOBjeaWuV0oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS9lbnRyeS9ob3ctdG8td3JpdGUtb3BlbmFwaS1mb3Itb3BlbmFwaS1nZW5lcmF0b3IpIGJ5IFtaT1pPIFRlY2ggQmxvZ10oaHR0cHM6Ly90ZWNoYmxvZy56b3pvLmNvbS8pCi0gMjAyMy0wMy0xOSAtIFtFWE9HRU06IEV4dGVuZGluZyBPcGVuQVBJIEdlbmVyYXRvciBmb3IgTW9uaXRvcmluZyBvZiBSRVNUZnVsIEFQSXNdKGh0dHBzOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3Lzk3OC0zLTAzMS0yNjUwNy01XzEwKSBieSBEYW5pZWwgRnJpaXMgSG9sdGVibywgSmFubmlrIEx1Y2FzIFNvbW1lciwgTWFnbnVzIE3DuGxnYWFyZCBMdW5kLCBBbGVzc2FuZHJvIFRpYm8sIEp1bmlvciBEb25nbyAmIE1pY2hlbGUgQWxiYW5vIGF0ICJJQ1NPQyAyMDIyOiBTZXJ2aWNlLU9yaWVudGVkIENvbXB1dGluZyDigJMgSUNTT0MgMjAyMiBXb3Jrc2hvcHMiCi0gMjAyMy0wMy0yOCAtIFtBUEktRmlyc3QgRGVzaWduIHdpdGggT3BlbkFQSSBHZW5lcmF0b3JdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9wdWxzZS9hcGktZmlyc3QtZGVzaWduLW9wZW5hcGktZ2VuZXJhdG9yLWpvbmF0aGFuLW1hbmVyYS8pIGJ5IFtKb25hdGhhbiBNYW5lcmFdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9tYW5lcmFqb25hLykKLSAyMDIzLTAzLTI4IC0gW+ODj+ODs+OCuuOCquODs+OBp+WtpuOBtuOCteODvOODkOODvOOCteOCpOODiSBLb3RsaW7vvIhTcHJpbmcgQm9vdCZBcnJvdyZPcGVuQVBJIEdlbmVyYXRvcu+8iXYxLjAuMV0oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20vYm9va3MvaW1wbGVtZW50aW5nLXNlcnZlci1zaWRlLWtvdGxpbi1kZXZlbG9wbWVudCkgYnkgW21za10oaHR0cHM6Ly96ZW5uLmRldi9tc2tzZ20pCi0gMjAyMy0wNC0wMSAtIFtPcGVuQVBJIENsaWVudCBDb2RlIEdlbmVyYXRpb25dKGh0dHBzOi8vdGVzdGluZ2Jvc3MuY29tL2Jsb2cvb3BlbmFwaS1jbGllbnQtZ2VuZXJhdGlvbi8pIGJ5IEt3byBEaW5nCi0gMjAyMy0wNC0yNyAtIFtDcmVhdGUgYW4gQW5ndWxhciBDbGllbnQgdXNpbmcgT3BlbkFQSSBTcGVjaWZpY2F0aW9uc10oQ3JlYXRlIGFuIEFuZ3VsYXIgQ2xpZW50IHVzaW5nIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMpIGJ5IFtQYXRyaWNdKGh0dHBzOi8vcGd1c28ubWVkaXVtLmNvbS8pCi0gMjAyMy0wNS0xNiAtIFtBZHllbiBmb3IgSmF2YSBkZXZlbG9wZXJzXShodHRwczovL3d3dy5hZHllbi5jb20vYmxvZy9hZHllbi1qYXZhLWxpYnJhcnkpIGJ5IFtCZXBwZSBDYXRhbmVzZSwgRGV2ZWxvcGVyIEFkdm9jYXRlLCBBZHllbl0oaHR0cHM6Ly9naXRodWIuY29tL2djYXRhbmVzZSkKLSAyMDIzLTA1LTE4IC0gW+WmguS9leWfuuS6jiBTd2FnZ2VyIOS9v+eUqCBPcGVuQVBJIEdlbmVyYXRvciDnlJ/miJAgSk1ldGVyIOiEmuacrO+8n10oaHR0cHM6Ly9ibG9nLjUxY3RvLmNvbS91XzE1MTgxNTcyLzYyOTQ5NzQpIGJ5IFvpq5jmpbzvvIhaZWUpXShodHRwczovL2Jsb2cuNTFjdG8uY29tL3VfMTUxODE1NzIpCi0gMjAyMy0wNi0yOCAtIFtHZW5lcmF0ZSBBUEkgY29udHJhY3QgdXNpbmcgT3BlbkFQSSBHZW5lcmF0b3IgTWF2ZW4gcGx1Z2luXShodHRwczovL2h1b25nZGFuamF2YS5jb20vZ2VuZXJhdGUtYXBpLWNvbnRyYWN0LXVzaW5nLW9wZW5hcGktZ2VuZXJhdG9yLW1hdmVuLXBsdWdpbi5odG1sKSBieSBbS2hhbmggTmd1eWVuXShodHRwczovL2h1b25nZGFuamF2YS5jb20vKQotIDIwMjMtMDYtMzAgLSBbR2VuZXJhdGUgQ2xpZW50IFNES3Mgd2l0aCBPcGVuQXBpIEdlbmVyYXRvciBpbiBTcHJpbmdib290XShodHRwczovL21lZGl1bS5jb20vQHJhbWF2YXRodmluYXlhay9nZW5lcmF0ZS1jbGllbnQtc2Rrcy13aXRoLW9wZW5hcGktZ2VuZXJhdG9yLWluLXNwcmluZ2Jvb3QtZjlmMDEyZTczYzBiKSBieSBbVmluYXlhayBSYW1hdmF0aF0oaHR0cHM6Ly9tZWRpdW0uY29tL0ByYW1hdmF0aHZpbmF5YWspCgojIyBbNiAtIEFib3V0IFVzXSgjdGFibGUtb2YtY29udGVudHMpCgpXaGF0J3MgdGhlIGRlc2lnbiBwaGlsb3NvcGh5IG9yIHByaW5jaXBsZSBiZWhpbmQgT3BlbkFQSSBHZW5lcmF0b3I/CgpXZSBmb2N1cyBvbiBkZXZlbG9wZXIgZXhwZXJpZW5jZS4gVGhlIGdlbmVyYXRvcnMgc2hvdWxkIHByb2R1Y2UgY29kZSwgY29uZmlnLCBkb2N1bWVudGF0aW9uLCBhbmQgbW9yZSB0aGF0IGFyZSBlYXNpbHkgdW5kZXJzdGFuZGFibGUgYW5kIGNvbnN1bWFibGUgYnkgdXNlcnMuIFdlIGZvY3VzZWQgb24gc2ltcGxlIHVzZSBjYXNlcyB0byBzdGFydCB3aXRoIChib3R0b20tdXAgYXBwcm9hY2gpLiBTaW5jZSB0aGVuIHRoZSBwcm9qZWN0IGFuZCB0aGUgY29tbXVuaXR5IGhhdmUgZ3Jvd24gYSBsb3Q6IDMwMGsgd2Vla2x5IGRvd25sb2FkcyB2aWEgTlBNIENMSSB3cmFwcGVyLCAyME0gZG93bmxvYWRzIHZpYSBvcGVuYXBpLWdlbmVyYXRvci1jbGkgZG9ja2VyIGltYWdlIGp1c3QgdG8gaGlnaGxpZ2h0IGEgZmV3LiBXZSd2ZSBncmFkdWFsbHkgc3VwcG9ydGVkIG1vcmUgZmVhdHVyZXMgKGUuZy4gb25lT2YsIGFueU9mIGludHJvZHVjZWQgaW4gT3BlbkFQSSAzLjApIGluIHZhcmlvdXMgZ2VuZXJhdG9ycyBhbmQgd2Ugd2lsbCBjb250aW51ZSB0aGlzIGFwcHJvYWNoIHRvIGRlbGl2ZXIgc29tZXRoaW5nIGJhc2VkIG9uIG91ciB1bmRlcnN0YW5kaW5nIG9mIHVzZXIgZGVtYW5kIGFuZCB3aGF0IHRoZXkgd2FudCwgYW5kIGNvbnRpbnVlIHRvIGFkZCBzdXBwb3J0IG9mIG5ldyBmZWF0dXJlcyBpbnRyb2R1Y2VkIGluIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiAoc3VjaCBhcyB2My4xIGFuZCBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbikuCgojIyMgWzYuMSAtIE9wZW5BUEkgR2VuZXJhdG9yIENvcmUgVGVhbV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKT3BlbkFQSSBHZW5lcmF0b3IgY29yZSB0ZWFtIG1lbWJlcnMgYXJlIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBiZWVuIG1ha2luZyBzaWduaWZpY2FudCBjb250cmlidXRpb25zIChyZXZpZXcgaXNzdWVzLCBmaXggYnVncywgbWFrZSBlbmhhbmNlbWVudHMsIGV0YykgdG8gdGhlIHByb2plY3Qgb24gYSByZWd1bGFyIGJhc2lzLgoKIyMjIyBDb3JlIFRlYW0gTWVtYmVycwoqIFtAd2luZzMyOF0oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpICgyMDE1LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKKiBbQGppbXNjaHViZXJ0XShodHRwczovL2dpdGh1Yi5jb20vamltc2NodWJlcnQpICgyMDE2LzA1KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiogW0BjYm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkgKDIwMTYvMDUpCiogW0BqbWluaV0oaHR0cHM6Ly9naXRodWIuY29tL2ptaW5pKSAoMjAxOC8wNCkgIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKKiBbQGV0aGVyZWFsam95XShodHRwczovL2dpdGh1Yi5jb20vZXRoZXJlYWxqb3kpICgyMDE5LzA2KQoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgVGVtcGxhdGUgQ3JlYXRvcgoKKipOT1RFKio6IEVtYmVkZGVkIHRlbXBsYXRlcyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gX011c3RhY2hlXyBmb3JtYXQuIFN1cHBvcnQgZm9yIGFsbCBvdGhlciBmb3JtYXRzIGlzIGV4cGVyaW1lbnRhbCBhbmQgc3ViamVjdCB0byBjaGFuZ2UgYXQgYW55IHRpbWUuCgpIZXJlIGlzIGEgbGlzdCBvZiB0ZW1wbGF0ZSBjcmVhdG9yczoKICogQVBJIENsaWVudHM6CiAgICogQWRhOiBAc3RjYXJyZXoKICAgKiBBcGV4OiBAYXNuZWxsaW5nCiAgICogQmFzaDogQGJrcnl6YQogICAqIEM6IEBQb3dlck9mQ3JlYXRpb24gQHpoZW1hbnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3poZW1hbnQpCiAgICogQysrIFJFU1Q6IEBEYW5pZWxrdTE1CiAgICogQysrIFRpbnk6IEBBbmRlcnNTcHJpbmdib3JnIEBrYWFyZUhIIEBtaWNoZWxlYWxiYW5vIEBta2FrYmFzCiAgICogQysrIFVFNDogQEthaG5jb2RlCiAgICogQyMgKC5ORVQgMi4wKTogQHdobwogICAqIEMjICguTkVUIFN0YW5kYXJkIDEuMyApOiBAR3JvbnNhawogICAqIEMjICguTkVUIDQuNSByZWZhY3RvcmVkKTogQGppbXNjaHViZXJ0IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCkKICAgKiBDIyAoR2VuZXJpY0hvc3QpOiBAZGV2aGwtbGFicwogICAqIEMjIChIdHRwQ2xpZW50KTogQEJsYWNrY2xhd3MKICAgKiBDbG9qdXJlOiBAeGhoCiAgICogQ3J5c3RhbDogQHdpbmczMjgKICAgKiBEYXJ0OiBAeWlzc2FjaGFyCiAgICogRGFydCAocmVmYWN0b3IpOiBAam9lcm5haHJlbnMKICAgKiBEYXJ0IDI6IEBzd2lwZXNpZ2h0CiAgICogRGFydCAoSmFndWFyKTogQGphdW1hcmQKICAgKiBEYXJ0IChEaW8pOiBAam9zaC1idXJ0b24KICAgKiBFbGl4aXI6IEBuaWt1CiAgICogRWxtOiBAZXJpa3RpbQogICAqIEVpZmZlbDogQGp2ZWxpbGxhCiAgICogRXJsYW5nOiBAdHNsb3VnaHRlcgogICAqIEVybGFuZyAoUHJvcEVyKTogQGpmYWNvcnJvIEByb2JlcnRvYWxvaQogICAqIEdyb292eTogQHZpY3RvcmdpdAogICAqIEdvOiBAd2luZzMyOCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkKICAgKiBHbyAocmV3cml0dGVuIGluIDIuMy4wKTogQGFudGloYXgKICAgKiBIYXNrZWxsIChodHRwLWNsaWVudCk6IEBqb25zY2hvbmluZwogICAqIEphdmEgKEZlaWduKTogQGRhdmlka2lzcwogICAqIEphdmEgKFJldHJvZml0KTogQDBsZWdnCiAgICogSmF2YSAoUmV0cm9maXQyKTogQGVtaWxpYW5vYm9uYXNzaQogICAqIEphdmEgKEplcnNleTIpOiBAeGhoCiAgICogSmF2YSAob2todHRwLWdzb24pOiBAeGhoCiAgICogSmF2YSAoUmVzdFRlbXBsYXRlKTogQG5icnVubwogICAqIEphdmEgKFNwcmluZyA1IFdlYkNsaWVudCk6IEBkYW9ub21pYwogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhIChKYXZhIDExIE5hdGl2ZSBIVFRQIGNsaWVudCk6IEBiYmRvdWdsYXMKICAgKiBKYXZhIChBcGFjaGUgSHR0cENsaWVudCA1LngpOiBAaGFycnl3aGl0ZTQgQGFuZHJldmVnYXMKICAgKiBKYXZhIChIZWxpZG9uKTogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEphdmFzY3JpcHQvTm9kZUpTOiBAamZpYWxhCiAgICogSmF2YVNjcmlwdCAoQXBvbGxvIERhdGFTb3VyY2UpOiBAZXJpdGhtZXRpYwogICAqIEphdmFTY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSmF2YVNjcmlwdCAoRmxvdyB0eXBlcykgQGpheXBlYQogICAqIEpldGJyYWlucyBIVFRQIENsaWVudCA6IEBqbGVuZ3JhbmQKICAgKiBKTWV0ZXI6IEBkYXZpZGtpc3MKICAgKiBKdWxpYTogQHRhbm1heWttCiAgICogS290bGluOiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEtvdGxpbiAoTXVsdGlQbGF0Zm9ybSk6IEBhbmRyZXdlbWVyeQogICAqIEtvdGxpbiAoVm9sbGV5KTogQGFsaXN0ZXJzCiAgICogS290bGluIChqdm0tc3ByaW5nLXdlYmNsaWVudCk6IEBzdGVmYW5rb3BwaWVyCiAgICogS290bGluIChqdm0tc3ByaW5nLXJlc3RjbGllbnQpOiBAc3RlZmFua29wcGllcgogICAqIEx1YTogQGRhdXJuaW1hdG9yCiAgICogTjRKUzogQG1tZXdzLW40CiAgICogTmltOiBAaG9rYW1vdG8KICAgKiBPQ2FtbDogQGNnZW5zb3VsCiAgICogUGVybDogQHdpbmczMjggWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3dpbmczMjgpCiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQSFAgKHdpdGggRGF0YSBUcmFuc2Zlcik6IEBBcnRpY3VzCiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUG93ZXJTaGVsbCAocmVmYWN0b3JlZCBpbiA1LjAuMCk6IEB3aW5nMzI4CiAgICogUHl0aG9uOiBAc3BhY2V0aGVyIFs6aGVhcnQ6XVtzcGFjZXRoZXIgc3BvbnNvcnNoaXBdCiAgICogUHl0aG9uLUV4cGVyaW1lbnRhbDogQHNwYWNldGhlciBbOmhlYXJ0Ol1bc3BhY2V0aGVyIHNwb25zb3JzaGlwXQogICAqIFB5dGhvbiAocmVmYWN0b3JlZCBpbiA3LjAuMCk6IEB3aW5nMzI4CiAgICogUjogQHJhbW5vdgogICAqIFJ1YnkgKEZhcmFkYXkpOiBAbWVnYW5lbXVyYSBAZGtsaWJhbgogICAqIFJ1YnkgKEhUVFBYKTogQGhvbmV5cnlkZXJjaHVjawogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU2NhbGEgKEFra2EpOiBAY2NoYWZlcgogICAqIFNjYWxhIChzdHRwKTogQGNoYW1lbGVvbjgyCiAgICogU2NhbGEgKHN0dHA0KTogQGZsc2g4NgogICAqIFNjYWxhIChQZWtrbyk6IEBtaWNrYWVsbWFnbmllegogICAqIFN3aWZ0OiBAdGtxdWJvCiAgICogU3dpZnQgMzogQGhleGVsb24KICAgKiBTd2lmdCA0OiBAZWh5Y2hlCiAgICogU3dpZnQgNTogQDRicnVudQogICAqIFN3aWZ0IENvbWJpbmU6IEBkeWR1czB4MTQKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyMSk6IEBtaGFyZG9yZgogICAqIFR5cGVTY3JpcHQgKEFuZ3VsYXIyKTogQHJvbmktZnJhbnRjaGkKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNik6IEBha2VoaXIKICAgKiBUeXBlU2NyaXB0IChBbmd1bGFyNyk6IEB0b3BjZQogICAqIFR5cGVTY3JpcHQgKEF4aW9zKTogQG5pY29rb2VuaWcKICAgKiBUeXBlU2NyaXB0IChGZXRjaCk6IEBsZW9ueXUKICAgKiBUeXBlU2NyaXB0IChJbnZlcnNpZnkpOiBAZ3VhbHRpZXJpbQogICAqIFR5cGVTY3JpcHQgKGpRdWVyeSk6IEBiaGVyaWxhCiAgICogVHlwZVNjcmlwdCAoTmVzdGpzKTogQHZmcmFuazY2CiAgICogVHlwZVNjcmlwdCAoTm9kZSk6ICBAbWhhcmRvcmYKICAgKiBUeXBlU2NyaXB0IChSeGpzKTogQGRlbnlvCiAgICogVHlwZVNjcmlwdCAocmVkdXgtcXVlcnkpOiBAcGV0ZWpvaGFuc29ueG8KICAgKiBYb2pvOiBAVG9waGVlZQogICAqIFphcGllcjogQHZhbG1veiwgQGVtYWpvCiAqIFNlcnZlciBTdHVicwogICAqIEFkYTogQHN0Y2FycmV6CiAgICogQyMgQVNQLk5FVCA1OiBAamltc2NodWJlcnQgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL2ppbXNjaHViZXJ0KQogICAqIEMjIEFTUC5ORVQgQ29yZSAzLjA6IEBBLUpvc2hpCiAgICogQyMgQVBTLk5FVCBDb3JlIDMuMTogQHBoYXRjaGVyCiAgICogQyMgQXp1cmUgZnVuY3Rpb25zOiBAQWJyaG03Nzg2CiAgICogQyMgTmFuY3lGWDogQG1zdGVmYW5pdWsKICAgKiBDKysgKFF0NSBRSHR0cEVuZ2luZSk6IEBldGhlcmVhbGpveQogICAqIEMrKyBQaXN0YWNoZTogQHNlYnltaWFubwogICAqIEMrKyBSZXN0YmVkOiBAc3RrcndvcmsKICAgKiBFcmxhbmcgU2VydmVyOiBAZ2FsYXhpZQogICAqIEYjIChHaXJhZmZlKSBTZXJ2ZXI6IEBubWZpc2hlcgogICAqIEdvIFNlcnZlcjogQGd1b2h1YW5nCiAgICogR28gU2VydmVyIChyZWZhY3RvcmVkIGluIDcuMC4wKTogQGx3ajUKICAgKiBHbyAoRWNobykgU2VydmVyOiBAcGg0cjVoNGQKICAgKiBHbyAoR2luKSBTZXJ2ZXI6IEBrZW1va2VtbwogICAqIEdyYXBoUUwgRXhwcmVzcyBTZXJ2ZXI6IEByZW5lcGFyZG9uCiAgICogSGFza2VsbCBTZXJ2YW50OiBAYWxnYXMKICAgKiBIYXNrZWxsIFllc29kOiBAeW90c3V5YQogICAqIEphdmEgQ2FtZWw6IEBjYXJuZXZhbGVnaWFjb21vCiAgICogSmF2YSBNU0Y0SjogQHNhbmplZXdhLW1hbGFsZ29kYQogICAqIEphdmEgU3ByaW5nIEJvb3Q6IEBkaXlmcgogICAqIEphdmEgVW5kZXJ0b3c6IEBzdGV2ZWh1CiAgICogSmF2YSBQbGF5IEZyYW1ld29yazogQEpGQ290ZQogICAqIEphdmEgUEtNU1Q6IEBhbnNodTIxODUgQHNhbnNodW1hbiBAcmt1bWFyLXBrIEBuaW5vZHBpbGxhaQogICAqIEphdmEgVmVydC54OiBAbHdsZWUyNjA4CiAgICogSmF2YSBNaWNyb25hdXQ6IEBhbmRyaXktZG15dHJ1awogICAqIEphdmEgSGVsaWRvbjogQHNwZXJpY2FzIEB0anF1aW5ubyBAdHZhbGxpbgogICAqIEpBWC1SUyBSZXN0RWFzeTogQGNoYW1lbGVvbjgyCiAgICogSkFYLVJTIENYRjogQGhpdmVzaGlwCiAgICogSkFYLVJTIENYRiAoQ0RJKTogQG5pY2tjbWF5bmFyZAogICAqIEpBWC1SUyBSZXN0RWFzeSAoSkJvc3MgRUFQKTogQGpmaWFsYQogICAqIEp1bGlhOiBAdGFubWF5a20KICAgKiBLb3RsaW46IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogS290bGluIChTcHJpbmcgQm9vdCk6IEBkcjRrZTYxNgogICAqIEtvdGxpbiAoVmVydHgpOiBAV29veW1lCiAgICogS290bGluIChKQVgtUlMpOiBAYW50dGlsZXBwYQogICAqIE5vZGVKUyBFeHByZXNzOiBAWWlzaFRpc2gKICAgKiBQSFAgTGFyYXZlbDogQHJlbmVwYXJkb24KICAgKiBQSFAgTHVtZW46IEBhYmNzdW4KICAgKiBQSFAgTWV6emlvICh3aXRoIFBhdGggSGFuZGxlcik6IEBBcnRpY3VzCiAgICogUEhQIFNsaW06IEBqZmFzdG5hY2h0CiAgICogUEhQIFNsaW00OiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUEhQIFN5bWZvbnk6IEBrc20yCiAgICogUEhQIFN5bWZvbnk2OiBAQmVuamFtaW5IYWUKICAgKiBQeXRob24gRmFzdEFQSTogQGtyamFrYnJqYWsKICAgKiBQeXRob24gQUlPSFRUUDoKICAgKiBSdWJ5IG9uIFJhaWxzIDU6IEB6bHgKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgQWtrYTogQEJvdWlsbGllCiAgICogU2NhbGEgRmluY2g6IEBqaW1zY2h1YmVydCBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpCiAgICogU2NhbGEgTGFnb206IEBnbWt1bWFyMjAwNQogICAqIFNjYWxhIFBsYXk6IEBhZGlnZXJiZXIKICogRG9jdW1lbnRhdGlvbgogICAqIEFzY2lpRG9jOiBAbWFuLWF0LWhvbWUKICAgKiBIVE1MIERvYyAyOiBAamhpdGNoY29jawogICAqIENvbmZsdWVuY2UgV2lraTogQGpoaXRjaGNvY2sKICAgKiBQbGFudFVNTDogQHBidXJscwogKiBDb25maWd1cmF0aW9uCiAgICogQXBhY2hlMjogQHN0a3J3b3JrCiAgICogazY6IEBtb3N0YWZhCiAqIFNjaGVtYQogICAqIEF2cm86IEBzZ2Fkb3VhcgogICAqIEdyYXBoUUw6IEB3aW5nMzI4IFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS93aW5nMzI4KQogICAqIEt0b3JtOiBATHVpei1Nb25hZAogICAqIE15U1FMOiBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pCiAgICogUHJvdG9jb2wgQnVmZmVyOiBAd2luZzMyOAogICAqIFdTREwgQGFkZXNzb0RwZAoKOmhlYXJ0OiA9IExpbmsgdG8gc3VwcG9ydCB0aGUgY29udHJpYnV0b3IgZGlyZWN0bHkKCiMjIyMgSG93IHRvIGpvaW4gdGhlIGNvcmUgdGVhbQoKSGVyZSBhcmUgdGhlIHJlcXVpcmVtZW50cyB0byBiZWNvbWUgYSBjb3JlIHRlYW0gbWVtYmVyOgotIHJhbmsgd2l0aGluIHRvcCA1MCBpbiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2dyYXBocy9jb250cmlidXRvcnMKICAtIHRvIGNvbnRyaWJ1dGUsIGhlcmUgYXJlIHNvbWUgZ29vZCBbc3RhcnRpbmcgcG9pbnRzXShodHRwczovL2dpdGh1Yi5jb20vb3BlbmFwaXRvb2xzL29wZW5hcGktZ2VuZXJhdG9yL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpCi0gcmVndWxhciBjb250cmlidXRpb25zIHRvIHRoZSBwcm9qZWN0CiAgLSBhYm91dCAzIGhvdXJzIHBlciB3ZWVrCiAgLSBmb3IgY29udHJpYnV0aW9uLCBpdCBjYW4gYmUgYWRkcmVzc2luZyBpc3N1ZXMsIHJldmlld2luZyBQUnMgc3VibWl0dGVkIGJ5IG90aGVycywgc3VibWl0dGluZyBQUiB0byBmaXggYnVncyBvciBtYWtlIGVuaGFuY2VtZW50cywgZXRjCiAgLSBtdXN0IGJlIGFjdGl2ZSBpbiB0aGUgcGFzdCAzIG1vbnRocyBhdCB0aGUgdGltZSBvZiBhcHBsaWNhdGlvbgoKIFRvIGpvaW4gdGhlIGNvcmUgdGVhbSwgcGxlYXNlIHJlYWNoIG91dCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgogVG8gYmVjb21lIGEgVGVtcGxhdGUgQ3JlYXRvciwgc2ltcGx5IHN1Ym1pdCBhIFBSIGZvciBuZXcgQVBJIGNsaWVudCAoZS5nLiBSdXN0LCBFbGl4aXIpIG9yIHNlcnZlciBzdHViIChlLmcuIFJ1YnkgR3JhcGUpIGdlbmVyYXRvci4KCiMjIyBbNi4yIC0gT3BlbkFQSSBHZW5lcmF0b3IgVGVjaG5pY2FsIENvbW1pdHRlZV0oI3RhYmxlLW9mLWNvbnRlbnRzKQoKTWVtYmVycyBvZiB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdGVjaG5pY2FsIGNvbW1pdHRlZSBzaG91bGRlciB0aGUgZm9sbG93aW5nIHJlc3BvbnNpYmlsaXRpZXM6CgotIFByb3ZpZGVzIGd1aWRhbmNlIGFuZCBkaXJlY3Rpb24gdG8gb3RoZXIgdXNlcnMKLSBSZXZpZXdzIHB1bGwgcmVxdWVzdHMgYW5kIGlzc3VlcwotIEltcHJvdmVzIHRoZSBnZW5lcmF0b3IgYnkgbWFraW5nIGVuaGFuY2VtZW50cywgZml4aW5nIGJ1Z3Mgb3IgdXBkYXRpbmcgZG9jdW1lbnRhdGlvbnMKLSBTZXRzIHRoZSB0ZWNobmljYWwgZGlyZWN0aW9uIG9mIHRoZSBnZW5lcmF0b3IKCldobyBpcyBlbGlnaWJsZT8gVGhvc2Ugd2hvIHdhbnQgdG8gam9pbiBtdXN0IGhhdmUgYXQgbGVhc3QgMyBQUnMgbWVyZ2VkIGludG8gYSBnZW5lcmF0b3IuIChFeGNlcHRpb25zIGNhbiBiZSBncmFudGVkIHRvIHRlbXBsYXRlIGNyZWF0b3JzIG9yIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBtYWRlIGEgbG90IG9mIGNvZGUgY2hhbmdlcyB3aXRoIGxlc3MgdGhhbiAzIG1lcmdlZCBQUnMpCgpJZiB5b3Ugd2FudCB0byBqb2luIHRoZSBjb21taXR0ZWUsIHBsZWFzZSBraW5kbHkgYXBwbHkgYnkgc2VuZGluZyBhbiBlbWFpbCB0byB0ZWFtQG9wZW5hcGl0b29scy5vcmcgd2l0aCB5b3VyIEdpdGh1YiBJRC4KCiMjIyMgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlCgp8IExhbmd1YWdlcy9HZW5lcmF0b3JzICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CnwgQWN0aW9uU2NyaXB0ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEFkYSAgICAgICAgICAgICAgICAgICB8IEBzdGNhcnJleiAoMjAxOC8wMikgQG1pY2hlbGVhbGJhbm8gKDIwMTgvMDIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBBbmRyb2lkICAgICAgICAgICAgICAgfCBAamF6LWFoICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQXBleCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEJhc2ggICAgICAgICAgICAgICAgICB8IEBmcm9sICgyMDE3LzA3KSBAYmtyeXphICgyMDE3LzA4KSBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMDkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBDICAgICAgICAgICAgICAgICAgICAgfCBAemhlbWFudCAoMjAxOC8xMSkgQGl0eXVodWkgKDIwMTkvMTIpIEBtaWNoZWxlYWxiYW5vICgyMDIwLzAzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQysrICAgICAgICAgICAgICAgICAgIHwgQHJhdmluaWthbSAoMjAxNy8wNykgQHN0a3J3b3JrICgyMDE3LzA3KSBAZXRoZXJlYWxqb3kgKDIwMTgvMDIpIEBtYXJ0aW5kZWxpbGxlICgyMDE4LzAzKSBAbXV0dGxleXhkICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEMjICAgICAgICAgICAgICAgICAgICB8IEBtYW5kcmVhbiAoMjAxNy8wOCkgQHNoaWJheWFuICgyMDIwLzAyKSBAQmxhY2tjbGF3cyAoMjAyMS8wMykgQGx1Y2FtYXp6YW50aSAoMjAyMS8wNSkgQGlCaWNoYSAoMjAyMy8wNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgQ2xvanVyZSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IENyeXN0YWwgICAgICAgICAgICAgICB8IEBjeWFuZ2xlICgyMDIxLzAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBEYXJ0ICAgICAgICAgICAgICAgICAgfCBAamF1bWFyZCAoMjAxOC8wOSkgQGpvc2gtYnVydG9uICgyMDE5LzEyKSBAYW1vbmRuZXQgKDIwMTkvMTIpIEBzYnUtV0JUICgyMDIwLzEyKSBAa3VobnJveWFsICgyMDIwLzEyKSBAYWdpbG9iICgyMDIwLzEyKSBAYWhtZWRuZndlbGEgKDIwMjEvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRWlmZmVsICAgICAgICAgICAgICAgIHwgQGp2ZWxpbGxhICgyMDE3LzA5KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEVsaXhpciAgICAgICAgICAgICAgICB8IEBtcm1zdG4gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBFbG0gICAgICAgICAgICAgICAgICAgfCBAZXJpa3RpbSAoMjAxOC8wOSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgRXJsYW5nICAgICAgICAgICAgICAgIHwgQHRzbG91Z2h0ZXIgKDIwMTcvMTEpIEBqZmFjb3JybyAoMjAxOC8xMCkgQHJvYmVydG9hbG9pICgyMDE4LzEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEYjICAgICAgICAgICAgICAgICAgICB8IEBubWZpc2hlciAoMjAxOS8wNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHbyAgICAgICAgICAgICAgICAgICAgfCBAYW50aWhheCAoMjAxNy8xMSkgQGdyb2tpZnkgKDIwMTgvMDcpIEBrZW1va2VtbyAoMjAxOC8wOSkgQGppcmlrdW5jYXIgKDIwMjEvMDEpIEBwaDRyNWg0ZCAoMjAyMS8wNCkgQGx3ajUgKDIwMjMvMDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEdyYXBoUUwgICAgICAgICAgICAgICB8IEByZW5lcGFyZG9uICgyMDE4LzEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBHcm9vdnkgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSGFza2VsbCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEphdmEgICAgICAgICAgICAgICAgICB8IEBiYmRvdWdsYXMgKDIwMTcvMDcpIEBzcmVlc2hhcyAoMjAxNy8wOCkgQGpmaWFsYSAoMjAxNy8wOCkgQGx1a295YW5vdiAoMjAxNy8wOSkgQGNib3JuZXQgKDIwMTcvMDkpIEBqZWZmOWZpbmdlciAoMjAxOC8wMSkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGx3bGVlMjYwOCAoMjAxOS8xMCkgQG1hcnRpbi1tZmcgKDIwMjMvMDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmF2YSBTcHJpbmcgICAgICAgICAgIHwgQGNhY2hlc2NydWJiZXIgKDIwMjIvMDIpIEB3ZWxzaG0gKDIwMjIvMDIpIEBNZWxsZUQgKDIwMjIvMDIpIEBhdGV4dG9yICgyMDIyLzAyKSBAbWFuZWRldjc5ICgyMDIyLzAyKSBAamF2aXNzdCAoMjAyMi8wMikgQGJvcnNjaCAoMjAyMi8wMikgQGJhbmxldmVudGUgKDIwMjIvMDIpIEBab216b2cgKDIwMjIvMDkpIEBtYXJ0aW4tbWZnICgyMDIzLzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBKTWV0ZXIgICAgICAgICAgICAgICAgfCBAa2Fubmt5byAoMjAyMS8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgSmV0YnJhaW5zIEhUVFAgQ2xpZW50IHwgQGpsZW5ncmFuZCAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEp1bGlhICAgICAgICAgICAgICAgICB8IEB0YW5tYXlrbSAoMjAyMy8wMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBLb3RsaW4gICAgICAgICAgICAgICAgfCBAamltc2NodWJlcnQgKDIwMTcvMDkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qaW1zY2h1YmVydCksIEBkcjRrZTYxNiAoMjAxOC8wOCkgQGthcmlzbWFubiAoMjAxOS8wMykgQFpvbXpvZyAoMjAxOS8wNCkgQGFuZHJld2VtZXJ5ICgyMDE5LzEwKSBANGJydW51ICgyMDE5LzExKSBAeXV0YWthMG0gKDIwMjAvMDMpIEBzdGVmYW5rb3BwaWVyICgyMDIyLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IEx1YSAgICAgICAgICAgICAgICAgICB8IEBkYXVybmltYXRvciAoMjAxNy8wOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBONEpTICAgICAgICAgICAgICAgICAgfCBAbW1ld3MtbjQgKDIwMjMvMDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgTmltICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IE5vZGVKUy9KYXZhc2NyaXB0ICAgICB8IEBDb2RlTmluamFpICgyMDE3LzA3KSBAZnJvbCAoMjAxNy8wNykgQGNsaWZmYW5vICgyMDE3LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBPYmpDICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgT0NhbWwgICAgICAgICAgICAgICAgIHwgQGNnZW5zb3VsICgyMDE5LzA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFBlcmwgICAgICAgICAgICAgICAgICB8IEB3aW5nMzI4ICgyMDE3LzA3KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vd2luZzMyOCkgQHl1ZTk5NDQ4ODIgKDIwMTkvMDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBQSFAgICAgICAgICAgICAgICAgICAgfCBAamViZW50aWVyICgyMDE3LzA3KSwgQGRrYXJsb3ZpICgyMDE3LzA3KSwgQG1hbmRyZWFuICgyMDE3LzA4KSwgQGpmYXN0bmFjaHQgKDIwMTcvMDkpLCBbQHliZWxlbmtvXShodHRwczovL2dpdGh1Yi5jb20veWJlbGVua28pICgyMDE4LzA3KSwgQHJlbmVwYXJkb24gKDIwMTgvMTIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgUG93ZXJTaGVsbCAgICAgICAgICAgIHwgQHdpbmczMjggKDIwMjAvMDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFB5dGhvbiAgICAgICAgICAgICAgICB8IEBjYm9ybmV0ICgyMDE3LzA5KSBAdG9tcGx1cyAoMjAxOC8xMCkgQGtyamFrYnJqYWsgKDIwMjMvMDIpIEBmYTAzMTEgKDIwMjMvMTApIEBtdWx0YW5pICgyMDIzLzEwKSB8CnwgUiAgICAgICAgICAgICAgICAgICAgIHwgQFJhbWFudGggKDIwMTkvMDcpIEBzYWlnaXJpZGhhcjIxICgyMDE5LzA3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFJ1YnkgICAgICAgICAgICAgICAgICB8IEBjbGlmZmFubyAoMjAxNy8wNykgQHpseCAoMjAxNy8wOSkgQGF1dG9wcCAoMjAxOS8wMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBSdXN0ICAgICAgICAgICAgICAgICAgfCBAZnJvbCAoMjAxNy8wNykgQGZhcmNhbGxlciAoMjAxNy8wOCkgQHJpY2hhcmR3aGl1ayAoMjAxOS8wNykgQHBhbGFkaW56aCAoMjAyMC8wNSkgQGphY29iLXBybyAoMjAyMi8xMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU2NhbGEgICAgICAgICAgICAgICAgIHwgQGNsYXNuYWtlICgyMDE3LzA3KSwgQGppbXNjaHViZXJ0ICgyMDE3LzA5KSBbOmhlYXJ0Ol0oaHR0cHM6Ly93d3cucGF0cmVvbi5jb20vamltc2NodWJlcnQpLCBAc2hpamlua3VpICAoMjAxOC8wMSksIEByYW16aW1hYWxlaiAoMjAxOC8wMyksIEBjaGFtZWxlb244MiAoMjAyMC8wMyksIEBCb3VpbGxpZSAoMjAyMC8wNCkgQGZpc2g4NiAoMjAyMy8wNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgU3dpZnQgICAgICAgICAgICAgICAgIHwgQGpnYXZyaXMgKDIwMTcvMDcpIEBlaHljaGUgKDIwMTcvMDgpIEBFZHViaXRzICgyMDE3LzA5KSBAamF6LWFoICgyMDE3LzA5KSBANGJydW51ICgyMDE5LzExKSBAZHlkdXMweDE0ICgyMDIzLzA2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFR5cGVTY3JpcHQgICAgICAgICAgICB8IEBUaUZ1ICgyMDE3LzA3KSBAdGF4cG9uICgyMDE3LzA3KSBAc2ViYXN0aWFuaGFhcyAoMjAxNy8wNykgQGtlbmlzdGV3YXJkICgyMDE3LzA3KSBAVnJvbGlqa3ggKDIwMTcvMDkpIEBtYWNqb2hubnkgKDIwMTgvMDEpIEB0b3BjZSAoMjAxOC8xMCkgQGFrZWhpciAoMjAxOS8wNykgQHBldGVqb2hhbnNvbnhvICgyMDE5LzExKSBAYW1ha2hyb3YgKDIwMjAvMDIpIEBkYXZpZGdhbWVybyAoMjAyMi8wMykgQG1rdXNha2EgKDIwMjIvMDQpIHwKfCBYb2pvICAgICAgICAgICAgICAgICAgfCBAVG9waGVlZSAoMjAyMy8wNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgoKUGFzdCBNZW1iZXJzIG9mIFRlY2huaWNhbCBDb21taXR0ZWU6CnwgTGFuZ3VhZ2VzL0dlbmVyYXRvcnMgICAgICAgICB8IE1lbWJlciAoam9pbiBkYXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgOi0tLS0tLS0tLS0tLS0tLS0gfCA6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAp8IFB5dGhvbiAgICAgICAgICAgIHwgQHRheHBvbiAoMjAxNy8wNykgQGZyb2wgKDIwMTcvMDcpIEBtYm9obG9vbCAoMjAxNy8wNykgQGNib3JuZXQgKDIwMTcvMDkpIEBrZW5qb25lcy1jaXNjbyAoMjAxNy8xMSkgQHRvbXBsdXMgKDIwMTgvMTApIEBhcnVuLW5hbGxhICgyMDE5LzExKSAgfAoKCjpoZWFydDogPSBMaW5rIHRvIHN1cHBvcnQgdGhlIGNvbnRyaWJ1dG9yIGRpcmVjdGx5CgojIyMgWzYuMyAtIEhpc3Rvcnkgb2YgT3BlbkFQSSBHZW5lcmF0b3JdKCN0YWJsZS1vZi1jb250ZW50cykKCk9wZW5BUEkgR2VuZXJhdG9yIGlzIGEgZm9yayBvZiBbU3dhZ2dlciBDb2RlZ2VuXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKS4gSW4gdmlldyBvZiB0aGUgaXNzdWVzIHdpdGggdGhlIFN3YWdnZXIgQ29kZWdlbiAzLjAuMCAoYmV0YSkgcmVsZWFzZSBhbmQgdGhlIGRpc2FncmVlbWVudCBvbiB0aGUgcHJvamVjdCdzIGRpcmVjdGlvbiwgbW9yZSB0aGFuIDQwIHRvcCBjb250cmlidXRvcnMgYW5kIHRlbXBsYXRlIGNyZWF0b3JzIG9mIFN3YWdnZXIgQ29kZWdlbiBkZWNpZGVkIHRvIGZvcmsgU3dhZ2dlciBDb2RlZ2VuIGFuZCBtYWludGFpbiBhIGNvbW11bml0eS1kcml2ZW4gdmVyc2lvbiBjYWxsZWQgIk9wZW5BUEkgR2VuZXJhdG9yIi4gUGxlYXNlIHJlZmVyIHRvIHRoZSBbUSZBXShkb2NzL3FuYS5tZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIEZvdW5kaW5nIE1lbWJlcnMgKGFscGhhYmV0aWNhbCBvcmRlcik6CgotIFtBa2loaXRvIE5ha2Fub10oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCkKLSBbQXJ0ZW0gT2NoZXJlZGtvXShodHRwczovL2dpdGh1Yi5jb20vZ2FsYXhpZSkKLSBbQXJ0aHVyIE1vZ2xpZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9BcnRpY3VzKQotIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gW0JlbiBXZWxsc10oaHR0cHM6Ly9naXRodWIuY29tL2J2d2VsbHMpCi0gW0JlbmphbWluIEdpbGxdKGh0dHBzOi8vZ2l0aHViLmNvbS9iamdpbGwpCi0gW0NocmlzdG9waGUgQm9ybmV0XShodHRwczovL2dpdGh1Yi5jb20vY2Jvcm5ldCkKLSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmYW5vKQotIFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gW0RhbmllbF0oaHR0cHM6Ly9naXRodWIuY29tL0RhbmllbGt1MTUpCi0gW0VtaWxpYW5vIEJvbmFzc2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbWlsaWFub2JvbmFzc2kpCi0gW0VyaWsgVGltbWVyc10oaHR0cHM6Ly9naXRodWIuY29tL2VyaWt0aW0pCi0gW0VzdGViYW4gR2VocmluZ10oaHR0cHM6Ly9naXRodWIuY29tL21hY2pvaG5ueSkKLSBbR3VzdGF2byBQYXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9ndXN0YXZvYXBheikKLSBbSmF2aWVyIFZlbGlsbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdmVsaWxsYSkKLSBbSmVhbi1GcmFuw6dvaXMgQ8O0dMOpXShodHRwczovL2dpdGh1Yi5jb20vSkZDb3RlKQotIFtKaW0gU2NodWJlcnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9qaW1zY2h1YmVydCkKLSBbSm9uIFNjaG9uaW5nXShodHRwczovL2dpdGh1Yi5jb20vam9uc2Nob25pbmcpCi0gW0rDqXLDqW1pZSBCcmVzc29uXShodHRwczovL2dpdGh1Yi5jb20vam1pbmkpIFs6aGVhcnQ6XShodHRwczovL3d3dy5wYXRyZW9uLmNvbS9qbWluaSkKLSBbSsO2cm4gQWhyZW5zXShodHRwczovL2dpdGh1Yi5jb20vamF5ZWFybikKLSBbS2VuaSBTdGV3YXJkXShodHRwczovL2dpdGh1Yi5jb20va2VuaXN0ZXdhcmQpCi0gW01hcmNpbiBTdGVmYW5pdWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9tc3RlZmFuaXVrKQotIFtNYXJ0aW4gRGVsaWxsZV0oaHR0cHM6Ly9naXRodWIuY29tL01hcnRpbkRlbGlsbGUpCi0gW01hc2FoaXJvIFlhbWF1Y2hpXShodHRwczovL2dpdGh1Yi5jb20vYWxnYXMpCi0gW01pY2hlbGUgQWxiYW5vXShodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWFsYmFubykKLSBbUmFtemkgTWFhbGVqXShodHRwczovL2dpdGh1Yi5jb20vcmFtemltYWFsZWopCi0gW1JhdmluZHJhIE5pa2FtXShodHRwczovL2dpdGh1Yi5jb20vcmF2aW5pa2FtKQotIFtSaWNhcmRvIENhcmRvbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9yaWNhcmRvbmEpCi0gW1NlYmFzdGlhbiBIYWFzXShodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuaGFhcykKLSBbU2ViYXN0aWFuIE1hbmRyZWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFuZHJlYW4pCi0gW1NyZWVuaWRoaSBTcmVlc2hhXShodHRwczovL2dpdGh1Yi5jb20vc3JlZXNoYXMpCi0gW1N0ZWZhbiBLcmlzbWFubl0oaHR0cHM6Ly9naXRodWIuY29tL3N0a3J3b3JrKQotIFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSBbVGFrdXJvIFdhZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCi0gW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cykKLSBbVHJpc3RhbiBTbG91Z2h0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90c2xvdWdodGVyKQotIFtWaWN0b3IgT3Jsb3Zza3ldKGh0dHBzOi8vZ2l0aHViLmNvbS92aWNsb3Zza3kpCi0gW1ZpY3RvciBUcmFraHRlbmJlcmddKGh0dHBzOi8vZ2l0aHViLmNvbS92aWN0b3JnaXQpCi0gW1ZsYWQgRnJvbG92XShodHRwczovL2dpdGh1Yi5jb20vZnJvbCkKLSBbVmxhZGltaXIgUG91emFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYXJjYWxsZXIpCi0gW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KQotIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkgWzpoZWFydDpdKGh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3VzZXIvb3ZlcnZpZXc/dT0xNjQzNTM4NSkKLSBbWHUgSHVpIEh1aV0oaHR0cHM6Ly9naXRodWIuY29tL3hoaCkKLSBbYW50aWhheF0oaHR0cHM6Ly9naXRodWIuY29tL2FudGloYXgpCi0gW2JlYXRjcmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYmVhdGNyYWNrZXIpCi0gW2RhdXJuaW1hdG9yXShodHRwczovZ2l0aHViLmNvbS9kYXVybmltYXRvcikKLSBbZXRoZXJlYWxqb3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ldGhlcmVhbGpveSkKLSBbamZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKQotIFtsdWtveWFub3ZdKGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtveWFub3YpCgo6aGVhcnQ6ID0gTGluayB0byBzdXBwb3J0IHRoZSBjb250cmlidXRvciBkaXJlY3RseQoKIyMgWzcgLSBMaWNlbnNlXSgjdGFibGUtb2YtY29udGVudHMpCi0tLS0tLS0KCkNvcHlyaWdodCAyMDE4IE9wZW5BUEktR2VuZXJhdG9yIENvbnRyaWJ1dG9ycyAoaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoKQpDb3B5cmlnaHQgMjAxOCBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgotLS0K
+ readmeEtag: '"83008aecbbb3028d07e9b6e11c7c74070cc565f394bc67e825ddff08a373933e"'
+ readmeLastModified: Sat, 30 Dec 2023 03:27:10 GMT
repositoryId: 133134007
description: >-
OpenAPI Generator allows generation of API client libraries (SDK
generation), server stubs, documentation and configuration automatically
given an OpenAPI Spec (v2, v3)
created: '2018-05-12T09:57:56Z'
- updated: '2023-12-29T02:43:39Z'
+ updated: '2023-12-30T01:06:32Z'
language: Java
archived: false
- stars: 18589
+ stars: 18597
watchers: 213
- forks: 5880
+ forks: 5883
owner: OpenAPITools
logo: https://avatars.githubusercontent.com/u/37325267?v=4
license: Apache-2.0
- repoEtag: '"b7bad9d554721d9bab9d6e2364d43dfcbd5f6e2cd0cf5f5e6db528ba2427745b"'
- repoLastModified: Fri, 29 Dec 2023 02:43:39 GMT
+ repoEtag: '"8a6300d0cdb8010ff9a95c10a856e4221df3d7feb87a00ba4e66ebdfa71ca305"'
+ repoLastModified: Sat, 30 Dec 2023 01:06:32 GMT
foundInMaster: true
id: 0418f8afcd0196c648d1a46c0c5c20d1
v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083
@@ -940,7 +940,7 @@
owner: openapi-json-schema-tools
logo: https://avatars.githubusercontent.com/u/114849992?v=4
license: Apache-2.0
- repoEtag: '"59bfbbfab91a65a677ca383078f4fd7067b1073916d9ea4913e9f5f8c0d1e1b7"'
+ repoEtag: '"68c29a6072bf9e87dc09ba52b70b773a5b5669596a478f55e22cab3902cee20d"'
repoLastModified: Tue, 26 Dec 2023 08:04:03 GMT
category:
- Code Generators
@@ -983,17 +983,17 @@
repositoryId: 323665366
description: OpenAPI based HTTP Client code generator
created: '2020-12-22T15:35:49Z'
- updated: '2023-12-27T09:52:00Z'
+ updated: '2023-12-29T07:06:50Z'
language: C#
archived: false
- stars: 1058
+ stars: 1059
watchers: 33
forks: 114
owner: microsoft
logo: https://avatars.githubusercontent.com/u/6154722?v=4
license: MIT
- repoEtag: '"371a244ecd5474b4d5e154b6aeba190fae755775874158510d30cb2ab29bec4c"'
- repoLastModified: Wed, 27 Dec 2023 09:52:00 GMT
+ repoEtag: '"5242766900f5baa3cb0f979d958f14fbaea15ef6be1ce6453c1edeeb059ab728"'
+ repoLastModified: Fri, 29 Dec 2023 07:06:50 GMT
foundInMaster: true
- source: https://openapi.tools/
name: FabriKt
@@ -1055,7 +1055,7 @@
owner: bump-sh
logo: https://avatars.githubusercontent.com/u/33217836?v=4
license: MIT
- repoEtag: '"bb005e9715d811b4a2bd6d0fded9ee47b0ea8a272f19a424d484365b973da1aa"'
+ repoEtag: '"80b0e1184c35fe96bec520587a5c527b2250a4bb9482bab701a183242f61732c"'
repoLastModified: Fri, 22 Dec 2023 22:54:44 GMT
foundInMaster: true
category:
@@ -1145,17 +1145,17 @@
repositoryId: 190430086
description: VisualStudio Code OpenAPI tools
created: '2019-06-05T16:27:53Z'
- updated: '2023-12-15T00:34:17Z'
+ updated: '2023-12-29T03:30:57Z'
language: TypeScript
archived: false
- stars: 294
+ stars: 295
watchers: 9
forks: 42
owner: 42Crunch
logo: https://avatars.githubusercontent.com/u/25365245?v=4
license: AGPL-3.0
- repoEtag: '"97c646c95a5d8a5f903a2b7da322343767dfeea198bf6487b3b73c19c4e59c0a"'
- repoLastModified: Fri, 15 Dec 2023 00:34:17 GMT
+ repoEtag: '"65de079e282b7447b25d99161fb90375402a00f7dfed4b42e688e2fc6c94d65e"'
+ repoLastModified: Fri, 29 Dec 2023 03:30:57 GMT
foundInMaster: true
id: 782ecbb10f1ff8ac9685e0ed24e52e58
- source:
@@ -1245,17 +1245,17 @@
repositoryId: 19390712
description: Swagger Editor
created: '2014-05-02T22:47:10Z'
- updated: '2023-12-28T14:33:35Z'
+ updated: '2023-12-29T14:09:27Z'
language: JavaScript
archived: false
- stars: 8472
+ stars: 8474
watchers: 257
forks: 2218
owner: swagger-api
logo: https://avatars.githubusercontent.com/u/7658037?v=4
license: Apache-2.0
- repoEtag: '"d8d0a790928597d2ba6b610328393ba4ac91be7e394ec0f951bbb5056c8962a5"'
- repoLastModified: Thu, 28 Dec 2023 14:33:35 GMT
+ repoEtag: '"b94b4725f76ec22857de5d1ed626cd89e4af33934fcb44d6c38fa559872e44ba"'
+ repoLastModified: Fri, 29 Dec 2023 14:09:27 GMT
foundInMaster: true
id: 951cf61d12c812ef9b201ad76b5d278d
v3_1: true
@@ -1466,7 +1466,7 @@
owner: Apicurio
logo: https://avatars.githubusercontent.com/u/28107283?v=4
license: Apache-2.0
- repoEtag: '"c47ce1292c07533bcd5f3fc7de9a7997787db04a231a2d729e6fcfcd6f5cc553"'
+ repoEtag: '"f5a3391f5793bbc9bf66008b10747ef563c7ca03eaa2de68e985469598509c61"'
repoLastModified: Tue, 12 Dec 2023 21:41:37 GMT
foundInMaster: true
homepage: https://github.com/Apicurio/apicurio-studio
@@ -1685,17 +1685,17 @@
Turn any OpenAPI2/3 and Postman Collection file into an API server with
mocking, transformations and validations.
created: '2016-03-18T03:52:09Z'
- updated: '2023-12-27T21:57:32Z'
+ updated: '2023-12-29T13:41:07Z'
language: TypeScript
archived: false
- stars: 3845
+ stars: 3844
watchers: 54
forks: 318
owner: stoplightio
logo: https://avatars.githubusercontent.com/u/10767217?v=4
license: Apache-2.0
- repoEtag: '"f0dae39948b4f73a4f5b48469d9141e057ceb880e047fad0f6a1183c169c66c9"'
- repoLastModified: Wed, 27 Dec 2023 21:57:32 GMT
+ repoEtag: '"d2ecc34510ed24faab728cad61198c5f1e27fe1a5cd8ab57c0d86d709238c4ca"'
+ repoLastModified: Fri, 29 Dec 2023 13:41:07 GMT
foundInMaster: true
id: 15aad8cd322242e03733b07f2a37890a
- source: https://openapi.tools/
@@ -1970,17 +1970,17 @@
repositoryId: 61366800
description: Build OpenAPI-compliant REST APIs using TypeScript and Node
created: '2016-06-17T10:42:50Z'
- updated: '2023-12-28T23:22:55Z'
+ updated: '2023-12-29T21:39:20Z'
language: TypeScript
archived: false
- stars: 2994
+ stars: 2995
watchers: 25
- forks: 460
+ forks: 461
owner: lukeautry
logo: https://avatars.githubusercontent.com/u/8770560?v=4
license: MIT
- repoEtag: '"a581e022eecf1ec2de879a4bcf8379aa50070451fb61a2064fb26879a176ab4a"'
- repoLastModified: Thu, 28 Dec 2023 23:22:55 GMT
+ repoEtag: '"c247540d25a9d0b9ba04a12a013ae64d74266e611ebbf81448dac7a50d1b11a6"'
+ repoLastModified: Fri, 29 Dec 2023 21:39:20 GMT
foundInMaster: true
id: 2529db76d3d9f042b0c624f65b13fc41
- source: https://openapi.tools/
@@ -2051,11 +2051,11 @@
archived: false
stars: 868
watchers: 12
- forks: 230
+ forks: 231
owner: kogosoftwarellc
logo: https://avatars.githubusercontent.com/u/15419153?v=4
license: MIT
- repoEtag: '"c06826a908477d4dbf50ea52d5b4f1f1119ff560202a580c1c824ff0789fa6f5"'
+ repoEtag: '"aceadd7c1784b9f4f3e3cfc51c2867305112e621f9055705f13661b31f1cd1c8"'
repoLastModified: Thu, 28 Dec 2023 22:19:59 GMT
foundInMaster: true
- source: https://openapi.tools/
@@ -2151,17 +2151,17 @@
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in
real-time.
created: '2015-03-06T21:46:05Z'
- updated: '2023-12-28T20:20:50Z'
+ updated: '2023-12-29T15:29:28Z'
language: TypeScript
archived: false
- stars: 8164
+ stars: 8163
watchers: 220
forks: 974
owner: api-platform
logo: https://avatars.githubusercontent.com/u/13420081?v=4
license: MIT
- repoEtag: '"b4a6f77cf10fe54ce0cb10447cbf41e5acdab3b19f8de142705658ff616f9a36"'
- repoLastModified: Thu, 28 Dec 2023 20:20:50 GMT
+ repoEtag: '"01f977647a803e59c0c4bc39f0285d1c7491a35134ff8b9ed29873df58885d55"'
+ repoLastModified: Fri, 29 Dec 2023 15:29:28 GMT
foundInMaster: true
id: d14f5904300aabf1ceef4660a6b3d57e
- source: https://openapi.tools/
@@ -2217,17 +2217,17 @@
repositoryId: 39904377
description: Open source API management platform
created: '2015-07-29T16:34:52Z'
- updated: '2023-12-28T12:53:22Z'
+ updated: '2023-12-29T08:56:31Z'
language: PHP
archived: false
- stars: 1630
+ stars: 1629
watchers: 58
forks: 206
owner: apioo
logo: https://avatars.githubusercontent.com/u/18172950?v=4
license: Apache-2.0
- repoEtag: '"efbf4f1c4fb1698de2f696b0aa41d4df7f6fc2fa7161fce19a0352de81bc8ec5"'
- repoLastModified: Thu, 28 Dec 2023 12:53:22 GMT
+ repoEtag: '"ea56c6bb4841082f0323a7741412b4e83e12d7d029826c778c8ad97ddc810129"'
+ repoLastModified: Fri, 29 Dec 2023 08:56:31 GMT
foundInMaster: true
id: 5458da680012a142d20e79ac150bc4ab
- source:
@@ -2328,7 +2328,7 @@
owner: nestjs
logo: https://avatars.githubusercontent.com/u/28507035?v=4
license: MIT
- repoEtag: '"ecf2f8086072b49582834bd5fa3b0561e0d66d72f82ca7191a183665df06cc4e"'
+ repoEtag: '"10c955f8625fc42fae39b92d80337e720981afb9fbfb9ba1b438e41c986b906a"'
repoLastModified: Thu, 28 Dec 2023 05:57:00 GMT
foundInMaster: true
id: 7071babd9853fc901c5decfa9b465b67
@@ -2392,17 +2392,17 @@
repositoryId: 12590052
description: Language-agnostic HTTP API Testing Tool
created: '2013-09-04T12:21:35Z'
- updated: '2023-12-28T11:59:16Z'
+ updated: '2023-12-29T08:57:10Z'
language: JavaScript
archived: false
- stars: 4093
+ stars: 4092
watchers: 75
forks: 306
owner: apiaryio
logo: https://avatars.githubusercontent.com/u/765943?v=4
license: MIT
- repoEtag: '"4074d2900cf93c1627bb3cb805b4fef1e9052a76ab8bb06dacfd178260948d25"'
- repoLastModified: Thu, 28 Dec 2023 11:59:16 GMT
+ repoEtag: '"1fa12095983b862f9649b2e9ed3a6896b1e9dcd11fb04713045b5eaf5c053685"'
+ repoLastModified: Fri, 29 Dec 2023 08:57:10 GMT
foundInMaster: true
id: bb2e4b0879fce0d8706dcebfd2c10a4c
- source:
@@ -2436,7 +2436,7 @@
owner: cdimascio
logo: https://avatars.githubusercontent.com/u/4706618?v=4
license: MIT
- repoEtag: '"497801addc9fd8ba0851aaa6908f627c8152c982ac5532db376b9d74f7fd598b"'
+ repoEtag: '"27b5df4d31e414b1e567c4df16ab267d7fa58d93b4d43da16d42e70fed3f2e5d"'
repoLastModified: Thu, 28 Dec 2023 22:36:45 GMT
foundInMaster: true
id: 3a27bc1a71642e0c1c020c41dc66e206
@@ -2499,17 +2499,17 @@
Port OpenAPI Specs to Postman Collections, inject test suite and run via
Newman 👨🏽🚀
created: '2021-05-05T10:42:29Z'
- updated: '2023-12-25T03:03:51Z'
+ updated: '2023-12-29T09:00:51Z'
language: TypeScript
archived: false
- stars: 592
+ stars: 591
watchers: 11
forks: 56
owner: apideck-libraries
logo: https://avatars.githubusercontent.com/u/73573473?v=4
license: Apache-2.0
- repoEtag: '"9afa8d36d982237262e7d6cc19ad79acf8e522bce52399370f5262f899d53192"'
- repoLastModified: Mon, 25 Dec 2023 03:03:51 GMT
+ repoEtag: '"44901f54b9782ad593666d604e489da3d68c501a82351b5bc39090a60e796c22"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:51 GMT
foundInMaster: true
id: a03cdb329f630a946a946dfe26802c43
- source: https://openapi.tools/
@@ -2546,7 +2546,7 @@
owner: stepci
logo: https://avatars.githubusercontent.com/u/61350067?v=4
license: MPL-2.0
- repoEtag: '"83227a496ad446279d0aa7f9381ec4a0ddeb3b20deca28ac95ecd15cc3490a77"'
+ repoEtag: '"0b881b430e74d1f4072d04f8e515b30a611ad061ae67d06a5ab2f464259fe6eb"'
repoLastModified: Thu, 28 Dec 2023 03:11:48 GMT
foundInMaster: true
- source:
@@ -2617,17 +2617,17 @@
baked in support for OpenAPI v3.1, v3.0, and v2.0 as well as AsyncAPI
v2.x.
created: '2018-08-15T18:43:18Z'
- updated: '2023-12-27T09:48:09Z'
+ updated: '2023-12-29T09:17:45Z'
language: TypeScript
archived: false
- stars: 2123
+ stars: 2124
watchers: 32
forks: 205
owner: stoplightio
logo: https://avatars.githubusercontent.com/u/10767217?v=4
license: Apache-2.0
- repoEtag: '"a5065d9babfe626f1c21f99e7b2eed57580650a9faf96ae71e2d0d3e386114cb"'
- repoLastModified: Wed, 27 Dec 2023 09:48:09 GMT
+ repoEtag: '"65e9b759ab4dae843d1793597449a380841eb02c27ac0113e1b9f795ccb407ce"'
+ repoLastModified: Fri, 29 Dec 2023 09:17:45 GMT
foundInMaster: true
id: fab3cc58898cd8953a30e43cc622e0fe
- source: https://openapi.tools/
@@ -2704,25 +2704,25 @@
id: dc53a7154c15667d6f54d47cdb300949
repositoryMetadata:
base64Readme: >-
- IyBSZWRvY2x5IENMSQoKW0BSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tKSBDTEkgaXMgeW91ciBhbGwtaW4tb25lIE9wZW5BUEkgdXRpbGl0eS4gSXQgYnVpbGRzLCBtYW5hZ2VzLCBpbXByb3ZlcywgYW5kIHF1YWxpdHktY2hlY2tzIHlvdXIgT3BlbkFQSSBkZXNjcmlwdGlvbnMsIGFsbCBvZiB3aGljaCBjb21lcyBpbiBoYW5keSBmb3IgdmFyaW91cyBwaGFzZXMgb2YgdGhlIEFQSSBMaWZlY3ljbGUuIENyZWF0ZSB5b3VyIG93biBydWxlc2V0cyB0byBtYWtlIEFQSSBnb3Zlcm5hbmNlIGVhc3ksIGFuZCBwdWJsaXNoIGJlYXV0aWZ1bCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24uIFN1cHBvcnRzIE9wZW5BUEkgMy4xLCAzLjAgYW5kIE9wZW5BUEkgMi4wIChsZWdhY3kgU3dhZ2dlcikuCgohW2J1aWxkIGFuZCB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vcmVkb2NseS9yZWRvY2x5LWNsaS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sL2JhZGdlLnN2ZykKIVtucG0gKHNjb3BlZCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHJlZG9jbHkvY2xpKQohW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AcmVkb2NseS9jbGkpCgohW09wZW5BUEkgQ0xJIHRvb2xzZXRdKC4vbWVkaWEvcmVkb2NseS1jbGkuZ2lmKQoKIyMgVXNhZ2UKCiMjIyBOb2RlCgpgYGBzaApucHggQHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKCkFsdGVybmF0aXZlbHksIGluc3RhbGwgaXQgZ2xvYmFsbHkgd2l0aCBgbnBtYDoKCmBgYHNoCm5wbSBpbnN0YWxsIEByZWRvY2x5L2NsaSAtZwpgYGAKClRoZW4geW91IGNhbiB1c2UgaXQgYXMgYHJlZG9jbHkgW2NvbW1hbmRdIFtvcHRpb25zXWAsIGZvciBleGFtcGxlOgoKYGBgc2gKcmVkb2NseSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpNaW5pbWFsIHJlcXVpcmVkIHZlcnNpb25zIG9mIE5vZGUuanMgYW5kIE5QTSBhcmUgMTQuMTkuMCBhbmQgNy4wLjAgcmVzcGVjdGl2ZWx5LgoKIyMjIERvY2tlcgoKVG8gZ2l2ZSB0aGUgRG9ja2VyIGNvbnRhaW5lciBhY2Nlc3MgdG8gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gZmlsZXMsIHlvdSBuZWVkIHRvCm1vdW50IHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBhcyBhIHZvbHVtZS4gQXNzdW1pbmcgdGhlIEFQSSBkZXNjcmlwdGlvbiBpcyByb290ZWQKaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnksIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtdiAkUFdEOi9zcGVjIHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKClRvIGJ1aWxkIGFuZCBydW4gd2l0aCBhIGxvY2FsIGltYWdlLCBydW4gdGhlIGZvbGxvd2luZyBmcm9tIHRoZSBwcm9qZWN0IHJvb3Q6CgpgYGBzaApkb2NrZXIgYnVpbGQgLXQgcmVkb2NseS9jbGkgLgpkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovc3BlYyByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgojIyBDb21tb24gdGFza3MKCiMjIyBHZW5lcmF0ZSBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24KClJlZG9jbHkgQ0xJIGlzIGEgZ3JlYXQgd2F5IHRvIHJlbmRlciBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24uIEl0IHVzZXMgb3BlbiBzb3VyY2UgW1JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vcmVkb2NseS9yZWRvYykgdG8gYnVpbGQgeW91ciBkb2N1bWVudGF0aW9uLiBVc2UgYSBjb21tYW5kIGxpa2UgdGhpczoKCmBgYHNoCnJlZG9jbHkgYnVpbGQtZG9jcyBvcGVuYXBpLnlhbWwKYGBgCgpZb3VyIEFQSSByZWZlcmVuY2UgZG9jcyBhcmUgaW4gYHJlZG9jLXN0YXRpYy5odG1sYCBieSBkZWZhdWx0LiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGluIG1hbnkgd2F5cy4gW1JlYWQgdGhlIG1haW4gZG9jc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9jb21tYW5kcy9idWlsZC1kb2NzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCj4gOmJ1bGI6IFJlZG9jbHkgYWxzbyBoYXMgW2hvc3RlZCBBUEkgcmVmZXJlbmNlIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVnaXN0cnkvZ3VpZGVzL2FwaS1yZWdpc3RyeS1xdWlja3N0YXJ0LyksIGEgKGNvbW1lcmNpYWwpIGFsdGVybmF0aXZlIHRvIFJlZG9jLiBCb3RoIFJlZG9jIGFuZCBSZWRvY2x5IEFQSSByZWZlcmVuY2UgZG9jcyBjYW4gYmUgd29ya2VkIG9uIGxvY2FsbHkgdXNpbmcgdGhlIGBwcmV2aWV3LWRvY3NgIGNvbW1hbmQuCgojIyMgQnVuZGxlIG11bHRpcGxlIE9wZW5BUEkgZG9jdW1lbnRzCgpIYXZpbmcgb25lIG1hc3NpdmUgT3BlbkFQSSBkZXNjcmlwdGlvbiBjYW4gYmUgYW5ub3lpbmcsIHNvIG1vc3QgcGVvcGxlIHNwbGl0IHRoZW0gdXAgaW50byBtdWx0aXBsZSBkb2N1bWVudHMgdmlhIGAkcmVmYCwgb25seSB0byBsYXRlciBmaW5kIG91dCBzb21lIHRvb2xzIGRvbid0IHN1cHBvcnQgYCRyZWZgLCBvciBkb24ndCBzdXBwb3J0IG11bHRpcGxlIGRvY3VtZW50cz8hIFdlbGwgZmVhciBub3QsIGJlY2F1c2UgUmVkb2NseSBoYXMgYSBgYnVuZGxlYCBjb21tYW5kIHlvdSBjYW4gdXNlIHRvIHJlY29tYmluZSBhbGwgb2YgdGhvc2UgZG9jdW1lbnRzIGJhY2sgaW50byBvbmUgc2luZ2xlIGRvY3VtZW50LiBUaGUgYnVuZGxlZCBvdXRwdXQgUmVkb2NseSBDTEkgcHJvdmlkZXMgaXMgY2xlYW4sIHRpZHksIGFuZCBsb29rcyBsaWtlIGEgaHVtYW4gbWFkZSBpdC4KCiMjIyBBdXRvbWF0ZSBBUEkgZ3VpZGVsaW5lcyB3aXRoIExpbnRpbmcKCkNoZWNrIHlvdXIgQVBJIG1hdGNoZXMgdGhlIGV4cGVjdGVkIEFQSSBndWlkZWxpbmVzIGJ5IHVzaW5nIHRoZSBgbGludGAgY29tbWFuZC4gQVBJIGd1aWRlbGluZXMgYXJlIGFuIGltcG9ydGFudCBwaWVjZSBvZiBBUEkgZ292ZXJuYW5jZSwgaXQgaGVscHMgdG8ga2VlcCBBUElzIGNvbnNpc3RlbnQgKGVuZm9yY2luZyB0aGUgc2FtZSBzdGFuZGFyZHMgYW5kIG5hbWluZyBjb252ZW50aW9ucykgYnV0IGNhbiBhbHNvIGd1aWRlIEFQSSB0ZWFtcyB0aHJvdWdoIHBvdGVudGlhbCBzZWN1cml0eSBoYXphcmRzIGFuZCBvdGhlciBwaXRmYWxscy4gQXV0b21hdGluZyBBUEkgZ3VpZGVsaW5lcyBtZWFucyB5b3UgY2FuIGtlZXAgQVBJcyBjb25zaXN0ZW50IGFuZCBzZWN1cmUgdGhyb3VnaG91dCB0aGVpciBsaWZlY3ljbGUuIEV2ZW4gYmV0dGVyLCB5b3UgY2FuIHNoYXBlIHRoZSBkZXNpZ24gb2YgdGhlIEFQSSBiZWZvcmUgaXQgZXZlbiBleGlzdHMgaWYgeW91IGNvbWJpbmUgQVBJIGxpbnRpbmcgd2l0aCBhIGRlc2lnbi1maXJzdCBBUEkgd29ya2Zsb3chCgpPdXIgQVBJIGxpbnRlciBpcyBkZXNpZ25lZCBmb3Igc3BlZWQgb24gZXZlbiBsYXJnZSBkb2N1bWVudHMsIGFuZCBpdCdzIGVhc3kgdG8gcnVuIGxvY2FsbHksIGluIENJLCBvciBhbnl3aGVyZSB5b3UgbmVlZCBpdC4gSXQncyBhbHNvIGRlc2lnbmVkIGZvciBodW1hbnMsIHdpdGggbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyB0byBoZWxwIHlvdSBnZXQgeW91ciBBUEkgcmlnaHQgZXZlcnkgdGltZS4KClRyeSBpdCBsaWtlIHRoaXM6CgpgYGBzaApyZWRvY2x5IGxpbnQgb3BlbmFwaS55YW1sCmBgYAoKKipDb25maWd1cmUgdGhlIHJ1bGVzKiogYXMgeW91IHdpc2guIE90aGVyIEFQSSBMaW50ZXJzIHVzZSBjb21wbGljYXRlZCBpZGVudGlmaWVycyBsaWtlIEpTT05QYXRoLCBidXQgUmVkb2NseSBtYWtlcyBsaWZlIGVhc3kgd2l0aCBzaW1wbGUgZXhwcmVzc2lvbnMgdGhhdCB1bmRlcnN0YW5kIHRoZSBPcGVuQVBJIHN0cnVjdHVyZS4gWW91IGNhbiBlaXRoZXIgdXNlIHRoZSBbYnVpbHQtaW4gcnVsZXNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvcnVsZXMpIHRvIG1peC1hbmQtbWF0Y2ggeW91ciBpZGVhbCBBUEkgZ3VpZGVsaW5lcywgb3IgYnJlYWsgb3V0IHRoZSB0b29scyB0byBidWlsZCB5b3VyIG93bi4KCioqRm9ybWF0IHRoZSBvdXRwdXQqKiBpbiB3aGF0ZXZlciB3YXkgeW91IG5lZWQsIHRoZSBgc3R5bGlzaGAgb3V0cHV0IGlzIGFzIGdvb2QgYXMgaXQgc291bmRzLCBidXQgaWYgeW91IG5lZWQgSlNPTiBvciBDaGVja3N0eWxlIG91dHB1dHMgdG8gaW50ZWdyYXRlIHdpdGggb3RoZXIgdG9vbHMsIHRoZSBsaW50IGNvbW1hbmQgY2FuIG91dHB1dCB0aG9zZSB0b28uCgoqKk11bHRpcGxlIGZpbGVzIHN1cHBvcnRlZCoqIHNvIHlvdSBkb24ndCBuZWVkIHRvIGJ1bmRsZSB5b3VyIEFQSSBkZXNjcmlwdGlvbiB0byBsaW50IGl0LCBqdXN0IHBvaW50IFJlZG9jbHkgQ0xJIGF0IHRoZSAiZW50cnkgcG9pbnQiIChlLmcuOiBgb3BlbmFwaS55YW1sYCkgYW5kIGl0IGhhbmRsZXMgdGhlIHJlc3QuCgpbTGVhcm4gbW9yZSBhYm91dCBBUEkgc3RhbmRhcmRzIGFuZCBjb25maWd1cmluZyBSZWRvY2x5IHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL2FwaS1zdGFuZGFyZHMpLgoKIyMjIFRyYW5zZm9ybSBhbiBPcGVuQVBJIGRlc2NyaXB0aW9uCgpJZiB5b3VyIE9wZW5BUEkgZGVzY3JpcHRpb24gaXNuJ3QgZXZlcnl0aGluZyB5b3UgaG9wZWQgaXQgd291bGQgYmUsIGVuaGFuY2UgaXQgd2l0aCB0aGUgUmVkb2NseSBbZGVjb3JhdG9yc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9kZWNvcmF0b3JzKSBmZWF0dXJlLiBUaGlzIGFsbG93cyB5b3UgdG86CgotIFB1Ymxpc2ggcmVmZXJlbmNlIGRvY3Mgd2l0aCBhIHN1YnNldCBvZiBlbmRwb2ludHMgZm9yIHB1YmxpYyB1c2UKLSBJbXByb3ZlIHRoZSBkb2NzIGJ5IGFkZGluZyBleGFtcGxlcyBhbmQgZGVzY3JpcHRpb25zCi0gQWRhcHQgYW4gZXhpc3RpbmcgT3BlbkFQSSBkZXNjcmlwdGlvbiwgYW5kIHJlcGxhY2UgZGV0YWlscyBsaWtlIFVSTHMgZm9yIHVzZSBvbiBzdGFnaW5nIHBsYXRmb3JtcwoKIyMgRGF0YSBjb2xsZWN0aW9uCgpUaGlzIHRvb2wgW2NvbGxlY3RzIGRhdGFdKC4vZG9jcy91c2FnZS1kYXRhLm1kKSB0byBoZWxwIFJlZG9jbHkgaW1wcm92ZSBvdXIgcHJvZHVjdHMgYW5kIHNlcnZpY2VzLiBZb3UgY2FuIG9wdCBvdXQgYnkgc2V0dGluZyB0aGUgYFJFRE9DTFlfVEVMRU1FVFJZYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgb2ZmYC4KCiMjIE1vcmUgcmVzb3VyY2VzCgpbUmVhZCB0aGUgZGV0YWlsZWQgZG9jc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS8pLgoKIyMgQ3JlZGl0cwoKVGhhbmtzIHRvIFtncmFwaHFsLWpzXShodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9ncmFwaHFsLWpzKSBhbmQgW2VzbGludF0oaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQpIGZvciBpbnNwaXJhdGlvbiBvZiB0aGUgQVBJIGRlc2NyaXB0aW9uIHRyYXZlcnNhbCBhcHByb2FjaCBhbmQgdG8gW1N3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvciksIFtTcGVjdHJhbF0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3NwZWN0cmFsKSwgYW5kIFtPQVMtS2l0XShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9vYXMta2l0KSBmb3IgaW5zcGlyaW5nIHRoZSByZWNvbW1lbmRlZCBydWxlc2V0LgoKIyMgRGV2ZWxvcG1lbnQKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhIEFsbCB0aGUgaW5mb3JtYXRpb24geW91IG5lZWQgaXMgaW4gW0NPTlRSSUJVVElORy5tZF0oQ09OVFJJQlVUSU5HLm1kKS4K
- readmeEtag: '"2331cca7f6fbb1f605506387a5e728eec9df68b8fe0d3cba789b793173f8cf5a"'
- readmeLastModified: Fri, 24 Nov 2023 14:18:58 GMT
+ IyBSZWRvY2x5IENMSQoKW0BSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tKSBDTEkgaXMgeW91ciBhbGwtaW4tb25lIE9wZW5BUEkgdXRpbGl0eS4gSXQgYnVpbGRzLCBtYW5hZ2VzLCBpbXByb3ZlcywgYW5kIHF1YWxpdHktY2hlY2tzIHlvdXIgT3BlbkFQSSBkZXNjcmlwdGlvbnMsIGFsbCBvZiB3aGljaCBjb21lcyBpbiBoYW5keSBmb3IgdmFyaW91cyBwaGFzZXMgb2YgdGhlIEFQSSBMaWZlY3ljbGUuIENyZWF0ZSB5b3VyIG93biBydWxlc2V0cyB0byBtYWtlIEFQSSBnb3Zlcm5hbmNlIGVhc3ksIGFuZCBwdWJsaXNoIGJlYXV0aWZ1bCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24uIFN1cHBvcnRzIE9wZW5BUEkgMy4xLCAzLjAgYW5kIE9wZW5BUEkgMi4wIChsZWdhY3kgU3dhZ2dlcikuCgohW2J1aWxkIGFuZCB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vcmVkb2NseS9yZWRvY2x5LWNsaS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sL2JhZGdlLnN2ZykKIVtucG0gKHNjb3BlZCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHJlZG9jbHkvY2xpKQohW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AcmVkb2NseS9jbGkpCgohW09wZW5BUEkgQ0xJIHRvb2xzZXRdKC4vbWVkaWEvcmVkb2NseS1jbGkuZ2lmKQoKIyMgVXNhZ2UKCiMjIyBOb2RlCgpgYGBzaApucHggQHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKCkFsdGVybmF0aXZlbHksIGluc3RhbGwgaXQgZ2xvYmFsbHkgd2l0aCBgbnBtYDoKCmBgYHNoCm5wbSBpbnN0YWxsIEByZWRvY2x5L2NsaSAtZwpgYGAKClRoZW4geW91IGNhbiB1c2UgaXQgYXMgYHJlZG9jbHkgW2NvbW1hbmRdIFtvcHRpb25zXWAsIGZvciBleGFtcGxlOgoKYGBgc2gKcmVkb2NseSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUaGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9ucyBvZiBOb2RlLmpzIGFuZCBOUE0gYXJlIDE0LjE5LjAgYW5kIDcuMC4wIHJlc3BlY3RpdmVseS4KCiMjIyBEb2NrZXIKClRvIGdpdmUgdGhlIERvY2tlciBjb250YWluZXIgYWNjZXNzIHRvIHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uIGZpbGVzLCB5b3UgbmVlZCB0bwptb3VudCB0aGUgY29udGFpbmluZyBkaXJlY3RvcnkgYXMgYSB2b2x1bWUuIEFzc3VtaW5nIHRoZSBBUEkgZGVzY3JpcHRpb24gaXMgcm9vdGVkCmluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovc3BlYyByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUbyBidWlsZCBhbmQgcnVuIHdpdGggYSBsb2NhbCBpbWFnZSwgcnVuIHRoZSBmb2xsb3dpbmcgZnJvbSB0aGUgcHJvamVjdCByb290OgoKYGBgc2gKZG9ja2VyIGJ1aWxkIC10IHJlZG9jbHkvY2xpIC4KZG9ja2VyIHJ1biAtLXJtIC12ICRQV0Q6L3NwZWMgcmVkb2NseS9jbGkgbGludCBwYXRoLXRvLXJvb3QtZmlsZS55YW1sCmBgYAoKIyMgQ29tbW9uIHRhc2tzCgojIyMgR2VuZXJhdGUgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uCgpSZWRvY2x5IENMSSBpcyBhIGdyZWF0IHdheSB0byByZW5kZXIgQVBJIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uLiBJdCB1c2VzIG9wZW4gc291cmNlIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL3JlZG9jbHkvcmVkb2MpIHRvIGJ1aWxkIHlvdXIgZG9jdW1lbnRhdGlvbi4gVXNlIGEgY29tbWFuZCBsaWtlIHRoaXM6CgpgYGBzaApyZWRvY2x5IGJ1aWxkLWRvY3Mgb3BlbmFwaS55YW1sCmBgYAoKWW91ciBBUEkgcmVmZXJlbmNlIGRvY3MgYXJlIGluIGByZWRvYy1zdGF0aWMuaHRtbGAgYnkgZGVmYXVsdC4gWW91IGNhbiBjdXN0b21pemUgdGhpcyBpbiBtYW55IHdheXMuIFtSZWFkIHRoZSBtYWluIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvY29tbWFuZHMvYnVpbGQtZG9jcykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgo+IDpidWxiOiBSZWRvY2x5IGFsc28gaGFzIFtob3N0ZWQgQVBJIHJlZmVyZW5jZSBkb2NzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvYXBpLXJlZ2lzdHJ5L2d1aWRlcy9hcGktcmVnaXN0cnktcXVpY2tzdGFydC8pLCBhIChjb21tZXJjaWFsKSBhbHRlcm5hdGl2ZSB0byBSZWRvYy4gQm90aCBSZWRvYyBhbmQgUmVkb2NseSBBUEkgcmVmZXJlbmNlIGRvY3MgY2FuIGJlIHdvcmtlZCBvbiBsb2NhbGx5IHVzaW5nIHRoZSBgcHJldmlldy1kb2NzYCBjb21tYW5kLgoKIyMjIEJ1bmRsZSBtdWx0aXBsZSBPcGVuQVBJIGRvY3VtZW50cwoKSGF2aW5nIG9uZSBtYXNzaXZlIE9wZW5BUEkgZGVzY3JpcHRpb24gY2FuIGJlIGFubm95aW5nLCBzbyBtb3N0IHBlb3BsZSBzcGxpdCB0aGVtIHVwIGludG8gbXVsdGlwbGUgZG9jdW1lbnRzIHZpYSBgJHJlZmAsIG9ubHkgdG8gbGF0ZXIgZmluZCBvdXQgc29tZSB0b29scyBkb24ndCBzdXBwb3J0IGAkcmVmYCBvciBkb24ndCBzdXBwb3J0IG11bHRpcGxlIGRvY3VtZW50cy4gUmVkb2NseSBDTEkgdG8gdGhlIHJlc2N1ZSEgSXQgaGFzIGEgYGJ1bmRsZWAgY29tbWFuZCB5b3UgY2FuIHVzZSB0byByZWNvbWJpbmUgYWxsIG9mIHRob3NlIGRvY3VtZW50cyBiYWNrIGludG8gb25lIHNpbmdsZSBkb2N1bWVudC4gVGhlIGJ1bmRsZWQgb3V0cHV0IHRoYXQgUmVkb2NseSBDTEkgcHJvdmlkZXMgaXMgY2xlYW4sIHRpZHksIGFuZCBsb29rcyBsaWtlIGEgaHVtYW4gbWFkZSBpdC4KCiMjIyBBdXRvbWF0ZSBBUEkgZ3VpZGVsaW5lcyB3aXRoIExpbnRpbmcKCkNoZWNrIHRoYXQgeW91ciBBUEkgbWF0Y2hlcyB0aGUgZXhwZWN0ZWQgQVBJIGd1aWRlbGluZXMgYnkgdXNpbmcgdGhlIGBsaW50YCBjb21tYW5kLiBBUEkgZ3VpZGVsaW5lcyBhcmUgYW4gaW1wb3J0YW50IHBpZWNlIG9mIEFQSSBnb3Zlcm5hbmNlLiBUaGV5IGhlbHAgdG8ga2VlcCBBUElzIGNvbnNpc3RlbnQgYnkgZW5mb3JjaW5nIHRoZSBzYW1lIHN0YW5kYXJkcyBhbmQgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgdGhleSBjYW4gYWxzbyBndWlkZSBBUEkgdGVhbXMgdGhyb3VnaCBwb3RlbnRpYWwgc2VjdXJpdHkgaGF6YXJkcyBhbmQgb3RoZXIgcGl0ZmFsbHMuIEF1dG9tYXRpbmcgQVBJIGd1aWRlbGluZXMgbWVhbnMgeW91IGNhbiBrZWVwIEFQSXMgY29uc2lzdGVudCBhbmQgc2VjdXJlIHRocm91Z2hvdXQgdGhlaXIgbGlmZWN5Y2xlLiBFdmVuIGJldHRlciwgeW91IGNhbiBzaGFwZSB0aGUgZGVzaWduIG9mIHRoZSBBUEkgYmVmb3JlIGl0IGV2ZW4gZXhpc3RzIGJ5IGNvbWJpbmluZyBBUEkgbGludGluZyB3aXRoIGEgZGVzaWduLWZpcnN0IEFQSSB3b3JrZmxvdy4KCk91ciBBUEkgbGludGVyIGlzIGRlc2lnbmVkIGZvciBzcGVlZCBvbiBldmVuIGxhcmdlIGRvY3VtZW50cywgYW5kIGl0J3MgZWFzeSB0byBydW4gbG9jYWxseSwgaW4gQ0ksIG9yIGFueXdoZXJlIHlvdSBuZWVkIGl0LiBJdCdzIGFsc28gZGVzaWduZWQgZm9yIGh1bWFucywgd2l0aCBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIHRvIGhlbHAgeW91IGdldCB5b3VyIEFQSSByaWdodCBldmVyeSB0aW1lLgoKVHJ5IGl0IGxpa2UgdGhpczoKCmBgYHNoCnJlZG9jbHkgbGludCBvcGVuYXBpLnlhbWwKYGBgCgoqKkNvbmZpZ3VyZSB0aGUgcnVsZXMqKiBhcyB5b3Ugd2lzaC4gT3RoZXIgQVBJIExpbnRlcnMgdXNlIGNvbXBsaWNhdGVkIGlkZW50aWZpZXJzIGxpa2UgSlNPTlBhdGgsIGJ1dCBSZWRvY2x5IG1ha2VzIGxpZmUgZWFzeSB3aXRoIHNpbXBsZSBleHByZXNzaW9ucyB0aGF0IHVuZGVyc3RhbmQgdGhlIE9wZW5BUEkgc3RydWN0dXJlLiBZb3UgY2FuIGVpdGhlciB1c2UgdGhlIFtidWlsdC1pbiBydWxlc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9ydWxlcykgdG8gbWl4LWFuZC1tYXRjaCB5b3VyIGlkZWFsIEFQSSBndWlkZWxpbmVzLCBvciBicmVhayBvdXQgdGhlIHRvb2xzIHRvIGJ1aWxkIHlvdXIgb3duLgoKKipGb3JtYXQgdGhlIG91dHB1dCoqIGluIHdoYXRldmVyIHdheSB5b3UgbmVlZC4gVGhlIGBzdHlsaXNoYCBvdXRwdXQgaXMgYXMgZ29vZCBhcyBpdCBzb3VuZHMsIGJ1dCBpZiB5b3UgbmVlZCBKU09OIG9yIENoZWNrc3R5bGUgb3V0cHV0cyB0byBpbnRlZ3JhdGUgd2l0aCBvdGhlciB0b29scywgdGhlIGBsaW50YCBjb21tYW5kIGNhbiBvdXRwdXQgdGhvc2UgdG9vLgoKKipNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQqKiBzbyB5b3UgZG9uJ3QgbmVlZCB0byBidW5kbGUgeW91ciBBUEkgZGVzY3JpcHRpb24gdG8gbGludCBpdDsganVzdCBwb2ludCBSZWRvY2x5IENMSSBhdCB0aGUgImVudHJ5IHBvaW50IiAoZS5nLjogYG9wZW5hcGkueWFtbGApIGFuZCBpdCBoYW5kbGVzIHRoZSByZXN0LgoKW0xlYXJuIG1vcmUgYWJvdXQgQVBJIHN0YW5kYXJkcyBhbmQgY29uZmlndXJpbmcgUmVkb2NseSBydWxlc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9hcGktc3RhbmRhcmRzKS4KCiMjIyBUcmFuc2Zvcm0gYW4gT3BlbkFQSSBkZXNjcmlwdGlvbgoKSWYgeW91ciBPcGVuQVBJIGRlc2NyaXB0aW9uIGlzbid0IGV2ZXJ5dGhpbmcgeW91IGhvcGVkIGl0IHdvdWxkIGJlLCBlbmhhbmNlIGl0IHdpdGggdGhlIFJlZG9jbHkgW2RlY29yYXRvcnNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvZGVjb3JhdG9ycykgZmVhdHVyZS4gVGhpcyBhbGxvd3MgeW91IHRvOgoKLSBQdWJsaXNoIHJlZmVyZW5jZSBkb2NzIHdpdGggYSBzdWJzZXQgb2YgZW5kcG9pbnRzIGZvciBwdWJsaWMgdXNlCi0gSW1wcm92ZSB0aGUgZG9jcyBieSBhZGRpbmcgZXhhbXBsZXMgYW5kIGRlc2NyaXB0aW9ucwotIEFkYXB0IGFuIGV4aXN0aW5nIE9wZW5BUEkgZGVzY3JpcHRpb24sIGFuZCByZXBsYWNlIGRldGFpbHMgbGlrZSBVUkxzIGZvciB1c2Ugb24gc3RhZ2luZyBwbGF0Zm9ybXMKCiMjIERhdGEgY29sbGVjdGlvbgoKVGhpcyB0b29sIFtjb2xsZWN0cyBkYXRhXSguL2RvY3MvdXNhZ2UtZGF0YS5tZCkgdG8gaGVscCBSZWRvY2x5IGltcHJvdmUgb3VyIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcy4gWW91IGNhbiBvcHQgb3V0IGJ5IHNldHRpbmcgdGhlIGBSRURPQ0xZX1RFTEVNRVRSWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYG9mZmAuCgojIyBNb3JlIHJlc291cmNlcwoKW1JlYWQgdGhlIGRldGFpbGVkIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvKS4KCiMjIENyZWRpdHMKClRoYW5rcyB0byBbZ3JhcGhxbC1qc10oaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZ3JhcGhxbC1qcykgYW5kIFtlc2xpbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50KSBmb3IgaW5zcGlyYXRpb24gb2YgdGhlIEFQSSBkZXNjcmlwdGlvbiB0cmF2ZXJzYWwgYXBwcm9hY2ggYW5kIHRvIFtTd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpLCBbU3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCksIGFuZCBbT0FTLUtpdF0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdCkgZm9yIGluc3BpcmluZyB0aGUgcmVjb21tZW5kZWQgcnVsZXNldC4KCiMjIERldmVsb3BtZW50CgpDb250cmlidXRpb25zIGFyZSB3ZWxjb21lISBBbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIGlzIGluIFtDT05UUklCVVRJTkcubWRdKENPTlRSSUJVVElORy5tZCkuCg==
+ readmeEtag: '"d80fd0273e830084e2931ec52c3274866d6321d76d5a4262b379deaffdd669c8"'
+ readmeLastModified: Fri, 29 Dec 2023 11:02:14 GMT
repositoryId: 207588519
description: >-
⚒️ Redocly CLI makes OpenAPI easy. Lint/validate to any standard, generate
beautiful docs, and more.
created: '2019-09-10T14:56:25Z'
- updated: '2023-12-28T14:56:10Z'
+ updated: '2023-12-29T11:35:20Z'
language: TypeScript
archived: false
- stars: 723
+ stars: 724
watchers: 26
forks: 111
owner: Redocly
logo: https://avatars.githubusercontent.com/u/32099856?v=4
license: MIT
- repoEtag: '"64e1794cf1f20dea149e118c1a80a0b15a8694e0906fd14acefd0f6368e0f519"'
- repoLastModified: Thu, 28 Dec 2023 14:56:10 GMT
+ repoEtag: '"711901ba901fb3996211aa82f29e085a494e5b4e18d42cd527ac03719ad65d98"'
+ repoLastModified: Fri, 29 Dec 2023 11:35:20 GMT
category:
- Description Validators
- Documentation
@@ -3102,17 +3102,17 @@
OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting,
validation, and more)
created: '2017-06-11T20:12:06Z'
- updated: '2023-12-28T23:57:08Z'
+ updated: '2023-12-29T04:31:27Z'
language: Go
archived: false
- stars: 2201
+ stars: 2202
watchers: 23
forks: 377
owner: getkin
logo: https://avatars.githubusercontent.com/u/40365715?v=4
license: MIT
- repoEtag: '"d1da765b803eb2e37d84c4e0e93b5cc9673cc276b14bed685180d3d74d2843b1"'
- repoLastModified: Thu, 28 Dec 2023 23:57:08 GMT
+ repoEtag: '"cf94f22ae144ef0e6375bedd03a35132a05f42b1857c15879c60b4215c236384"'
+ repoLastModified: Fri, 29 Dec 2023 04:31:27 GMT
foundInMaster: true
v2: true
id: f6838ce08e87fa4c3dc813c97193ece3
@@ -3138,17 +3138,17 @@
It validates PSR-7 messages (HTTP request/response) against OpenAPI
specifications
created: '2019-09-19T05:57:05Z'
- updated: '2023-12-28T12:48:10Z'
+ updated: '2023-12-29T14:13:19Z'
language: PHP
archived: false
- stars: 478
+ stars: 479
watchers: 22
forks: 85
owner: thephpleague
logo: https://avatars.githubusercontent.com/u/527621?v=4
license: MIT
- repoEtag: '"6d4f9a1875aa9b46b59a40050cd855e1bfaf975d3e806226bd7325fb9442af45"'
- repoLastModified: Thu, 28 Dec 2023 12:48:10 GMT
+ repoEtag: '"78231640036fbc8d53caa9c83a38fef748d95f83cf0dd36aa23cdd9c7cd43153"'
+ repoLastModified: Fri, 29 Dec 2023 14:13:19 GMT
foundInMaster: true
v3_1_link: https://github.com/thephpleague/openapi-psr7-validator/issues/163
id: 5db76a91d3b4f650045f409b9e0f4e9b
@@ -3309,7 +3309,7 @@
owner: microsoft
logo: https://avatars.githubusercontent.com/u/6154722?v=4
license: MIT
- repoEtag: '"21d5391b25a7a15d80485e993ca2501fec1bf6e3a41b013809cc33a58f9031eb"'
+ repoEtag: '"bb09468cc97c85945b88b090bf9f6e0b1e270f6d1c31a92079e63e8a349db7cd"'
repoLastModified: Wed, 27 Dec 2023 09:46:50 GMT
foundInMaster: true
id: 1066748bb5b1f114a70856a29fee4aa7
@@ -3507,17 +3507,17 @@
repositoryId: 26726495
description: Swagger 2.0 implementation for go
created: '2014-11-16T20:13:15Z'
- updated: '2023-12-29T02:13:57Z'
+ updated: '2023-12-29T18:47:23Z'
language: Go
archived: false
- stars: 9059
+ stars: 9062
watchers: 119
forks: 1274
owner: go-swagger
logo: https://avatars.githubusercontent.com/u/10362650?v=4
license: Apache-2.0
- repoEtag: '"3a4ea4736f00fef3670c99981d948e9ce235002a311415ab1f182f5d12211291"'
- repoLastModified: Fri, 29 Dec 2023 02:13:57 GMT
+ repoEtag: '"ad6fc51e40d916f013818b47f961cc91b43c34108c2db3875c67f1bec1557b04"'
+ repoLastModified: Fri, 29 Dec 2023 18:47:23 GMT
foundInMaster: true
id: ef136df9ffb40bb33ccbd76665d8f5b4
- source: https://openapi.tools/
@@ -3610,17 +3610,17 @@
repositoryId: 41822320
description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. '
created: '2015-09-02T19:11:57Z'
- updated: '2023-12-28T19:10:15Z'
+ updated: '2023-12-29T19:53:37Z'
language: C#
archived: false
- stars: 6242
+ stars: 6245
watchers: 160
- forks: 1180
+ forks: 1181
owner: RicoSuter
logo: https://avatars.githubusercontent.com/u/2603405?v=4
license: MIT
- repoEtag: '"a1d6c272c589bd8fe44a9d7aafd63d7ed6cfd3949f4d20bafaed287fd1cf2e91"'
- repoLastModified: Thu, 28 Dec 2023 19:10:15 GMT
+ repoEtag: '"983f3cf87506f62199c7d0b6a50ccb88b21ba73beb73d6f36b48516ef8bf65eb"'
+ repoLastModified: Fri, 29 Dec 2023 19:53:37 GMT
foundInMaster: true
id: 93636e95435e95198d7d15c9d507f0d3
- source: https://openapi.tools/
@@ -3674,26 +3674,26 @@
v3: true
repositoryMetadata:
base64Readme: >-
- IyA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1dDLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI4MCI+CgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vamVua2lucy9idWlsZC5zdmc/am9iVXJsPWh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyL2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci8pCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyLWphdmE3L2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQlMjAtJTIwamF2YSUyMDcpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci1qYXZhNy8pCgotIE1hc3RlciAoMi40LjM4LVNOQVBTSE9UKTogWyFbSmF2YSBUZXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2plbmtpbnMvYnVpbGQuc3ZnP2pvYlVybD1odHRwczovL2plbmtpbnMuc3dhZ2dlci5pby9qb2Ivb3NzLXN3YWdnZXItY29kZWdlbi1tYXN0ZXIpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3RlcikKWyFbV2luZG93cyBUZXN0XShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2dpdGh1Yi9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4/YnJhbmNoPW1hc3RlciZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3Qvc3dhZ2dlcmh1Yi1ib3Qvc3dhZ2dlci1jb2RlZ2VuKQoKLSAzLjAuNTEtU05BUFNIT1Q6ICBbIVtKYXZhIFRlc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vamVua2lucy9idWlsZC5zdmc/am9iVXJsPWh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLTMpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLTMpClshW1dpbmRvd3MgVGVzdF0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9naXRodWIvc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuP2JyYW5jaD0zLjAuMCZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3Qvc3dhZ2dlcmh1Yi1ib3Qvc3dhZ2dlci1jb2RlZ2VuKQoKCltNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tcHJvamVjdCkKCjpzdGFyOjpzdGFyOjpzdGFyOiBJZiB5b3Ugd291bGQgbGlrZSB0byBjb250cmlidXRlLCBwbGVhc2UgcmVmZXIgdG8gW2d1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLjpzdGFyOjpzdGFyOjpzdGFyOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSS9Td2FnZ2VyIHNwZWMgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlLCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGUgc3BlYyBiZWZvcmUgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIGFzIFtjb2RlIGluamVjdGlvbl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29kZV9pbmplY3Rpb24pIG1heSBvY2N1ciA6d2FybmluZzoKCjpyb2NrZXQ6IFByb2R1Y3RIdW50OiBodHRwczovL3Byb2R1Y3RodW50LmNvbS9wb3N0cy9zd2FnZ2VyLWNvZGVnZW4gOnJvY2tldDoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bXJvYWQuY29tL2wvc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyKSBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGJlZ2lubmVycy4KCiMjIFZlcnNpb25pbmcKCioqTk9URToqKiB2ZXJzaW9uIDIuWCAoYGlvLnN3YWdnZXJgKSBhbmQgMy5YIChgaW8uc3dhZ2dlci5jb2RlZ2VuLnYzYCkgaGF2ZSAqKmRpZmZlcmVudCoqIGdyb3VwIGlkcy4KCjIuWCBhbmQgMy5YIHZlcnNpb24gbGluZXMgb2YgU3dhZ2dlciBDb2RlZ2VuIGFyZSBhdmFpbGFibGU7IDIuWCAoYG1hc3RlcmAgYnJhbmNoKSBzdXBwb3J0cyBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyLAp3aGlsZSAzLlggKFtgMy4wLjBgIGJyYW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wKSkgc3VwcG9ydHMgT3BlbkFQSSB2ZXJzaW9uIDMgKGFuZCB2ZXJzaW9uIDIgdmlhIHNwZWMgY29udmVyc2lvbiB0byB2ZXJzaW9uIDMpLgpbT25saW5lIGdlbmVyYXRvciBvZiB2ZXJzaW9uIDMuWF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wI29ubGluZS1nZW5lcmF0b3JzKSBzdXBwb3J0cyBib3RoIGdlbmVyYXRpb24gZnJvbSBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyIChieSB1c2luZyBlbmdpbmUgKyBnZW5lcmF0b3JzIG9mIDIuWCkgYW5kIHZlcnNpb24gMyBzcGVjaWZpY2F0aW9ucy4KCgoqKk5PVEU6KiogdGhpcyBkb2N1bWVudCByZWZlcnMgdG8gdmVyc2lvbiAyLlgsIGNoZWNrIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApIGZvciAzLlguCgoKIyMjIFN3YWdnZXIgQ29kZWdlbiAyLlggKFtgbWFzdGVyYCBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS9tYXN0ZXIpKQoKU3dhZ2dlciBDb2RlZ2VuIDIuWCBzdXBwb3J0cyBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyLgoKZ3JvdXAgaWQ6IGBpby5zd2FnZ2VyYAptYXZlbiBjZW50cmFsIChtYXZlbiBwbHVnaW4pOiBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2lvLnN3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLW1hdmVuLXBsdWdpbgoKZGVwZW5kZW5jeSBleGFtcGxlOgoKYGBgCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+aW8uc3dhZ2dlcjwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnN3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4yLjQuMzc8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMgU3dhZ2dlciBDb2RlZ2VuIDMuWCAoW2AzLjAuMGAgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApKQoKU3dhZ2dlciBDb2RlZ2VuIDMuWCBzdXBwb3J0cyBPcGVuQVBJIHZlcnNpb24gMyAoYW5kIHZlcnNpb24gMiB2aWEgc3BlYyBjb252ZXJzaW9uIHRvIHZlcnNpb24gMykKW09ubGluZSBnZW5lcmF0b3Igb2YgdmVyc2lvbiAzLlhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8zLjAuMCNvbmxpbmUtZ2VuZXJhdG9ycykgc3VwcG9ydHMgYm90aCBnZW5lcmF0aW9uIGZyb20gU3dhZ2dlci9PcGVuQVBJIHZlcnNpb24gMiAoYnkgdXNpbmcgZW5naW5lICsgZ2VuZXJhdG9ycyBvZiAyLlgpIGFuZCB2ZXJzaW9uIDMgc3BlY2lmaWNhdGlvbnMuCgpncm91cCBpZDogYGlvLnN3YWdnZXIuY29kZWdlbi52M2AKbWF2ZW4gY2VudHJhbDogaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9pby5zd2FnZ2VyLmNvZGVnZW4udjMKCmRlcGVuZGVuY3kgZXhhbXBsZToKCmBgYAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmlvLnN3YWdnZXIuY29kZWdlbi52MzwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnN3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4zLjAuNTE8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgoKCiMjIE92ZXJ2aWV3ClRoaXMgaXMgdGhlIFN3YWdnZXIgQ29kZWdlbiBwcm9qZWN0LCB3aGljaCBhbGxvd3MgZ2VuZXJhdGlvbiBvZiBBUEkgY2xpZW50IGxpYnJhcmllcyAoU0RLIGdlbmVyYXRpb24pLCBzZXJ2ZXIgc3R1YnMgYW5kIGRvY3VtZW50YXRpb24gYXV0b21hdGljYWxseSBnaXZlbiBhbiBbT3BlbkFQSSBTcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBsYW5ndWFnZXMvZnJhbWV3b3JrcyBhcmUgc3VwcG9ydGVkOgoKLSAqKkFQSSBjbGllbnRzKio6ICoqQWN0aW9uU2NyaXB0KiosICoqQWRhKiosICoqQXBleCoqLCAqKkJhc2gqKiwgKipDIyoqICgubmV0IDIuMCwgMy41IG9yIGxhdGVyKSwgKipDKysqKiAoY3BwcmVzdCwgUXQ1LCBUaXplbiksICoqQ2xvanVyZSoqLCAqKkRhcnQqKiwgKipFbGl4aXIqKiwgKipFbG0qKiwgKipFaWZmZWwqKiwgKipFcmxhbmcqKiwgKipHbyoqLCAqKkdyb292eSoqLCAqKkhhc2tlbGwqKiAoaHR0cC1jbGllbnQsIFNlcnZhbnQpLCAqKkphdmEqKiAoSmVyc2V5MS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCksICoqS290bGluKiosICoqTHVhKiosICoqTm9kZS5qcyoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMpICoqT2JqZWN0aXZlLUMqKiwgKipQZXJsKiosICoqUEhQKiosICoqUG93ZXJTaGVsbCoqLCAqKlB5dGhvbioqLCAqKlIqKiwgKipSdWJ5KiosICoqUnVzdCoqIChydXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzd2FnZ2VyLWFzeW5jLWh0dHBjbGllbnQpLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFyMS54LCBBbmd1bGFyMi54LCBGZXRjaCwgalF1ZXJ5LCBOb2RlKQotICoqU2VydmVyIHN0dWJzKio6ICoqQWRhKiosICoqQyMqKiAoQVNQLk5FVCBDb3JlLCBOYW5jeUZ4KSwgKipDKysqKiAoUGlzdGFjaGUsIFJlc3RiZWQpLCAqKkVybGFuZyoqLCAqKkdvKiosICoqSGFza2VsbCoqIChTZXJ2YW50KSwgKipKYXZhKiogKE1TRjRKLCBTcHJpbmcsIFVuZGVydG93LCBKQVgtUlM6IENESSwgQ1hGLCBJbmZsZWN0b3IsIFJlc3RFYXN5LCBQbGF5IEZyYW1ld29yaywgW1BLTVNUXShodHRwczovL2dpdGh1Yi5jb20vUHJvS2FybWEtSW5jL3BrbXN0LWdldHRpbmctc3RhcnRlZC1leGFtcGxlcykpLCAqKktvdGxpbioqLCAqKlBIUCoqIChMdW1lbiwgU2xpbSwgU2lsZXgsIFtTeW1mb255XShodHRwczovL3N5bWZvbnkuY29tLyksIFtaZW5kIEV4cHJlc3NpdmVdKGh0dHBzOi8vZ2l0aHViLmNvbS96ZW5kZnJhbWV3b3JrL3plbmQtZXhwcmVzc2l2ZSkpLCAqKlB5dGhvbioqIChGbGFzayksICoqTm9kZUpTKiosICoqUnVieSoqIChTaW5hdHJhLCBSYWlsczUpLCAqKlJ1c3QqKiAocnVzdC1zZXJ2ZXIpLCAqKlNjYWxhKiogKFtGaW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL2ZpbmFnbGUvZmluY2gpLCBbTGFnb21dKGh0dHBzOi8vZ2l0aHViLmNvbS9sYWdvbS9sYWdvbSksIFNjYWxhdHJhKQotICoqQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9ycyoqOiAqKkhUTUwqKiwgKipDb25mbHVlbmNlIFdpa2kqKgotICoqQ29uZmlndXJhdGlvbiBmaWxlcyoqOiBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pCi0gKipPdGhlcnMqKjogKipKTWV0ZXIqKgoKQ2hlY2sgb3V0IFtPcGVuQVBJLVNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgT3BlbkFQSSBwcm9qZWN0LgoKIyBUYWJsZSBvZiBjb250ZW50cwoKICAtIFtWZXJzaW9uaW5nXSgjdmVyc2lvbmluZykKICAtIFtPdmVydmlld10oI292ZXJ2aWV3KQogIC0gW1RhYmxlIG9mIENvbnRlbnRzXSgjdGFibGUtb2YtY29udGVudHMpCiAgLSBJbnN0YWxsYXRpb24KICAgIC0gW0NvbXBhdGliaWxpdHldKCNjb21wYXRpYmlsaXR5KQogICAgLSBbUHJlcmVxdWlzaXRlc10oI3ByZXJlcXVpc2l0ZXMpCiAgICAgIC0gW09TIFggVXNlcnNdKCNvcy14LXVzZXJzKQogICAgLSBbQnVpbGRpbmddKCNidWlsZGluZykKICAgIC0gW0RvY2tlcl0oI2RvY2tlcikKICAgICAgLSBbRGV2ZWxvcG1lbnQgaW4gRG9ja2VyXSgjZGV2ZWxvcG1lbnQtaW4tZG9ja2VyKQogICAgICAtIFtSdW4gZG9ja2VyIGluIFZhZ3JhbnRdKCNydW4tZG9ja2VyLWluLXZhZ3JhbnQpCiAgICAgIC0gW1B1YmxpYyBwcmUtYnVpbHQgRG9ja2VyIGltYWdlc10oI3B1YmxpYy1wcmUtYnVpbHQtZG9ja2VyLWltYWdlcykKICAgIC0gW0hvbWVicmV3XSgjaG9tZWJyZXcpCiAgLSBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gR2VuZXJhdG9ycwogICAgLSBbVG8gZ2VuZXJhdGUgYSBzYW1wbGUgY2xpZW50IGxpYnJhcnldKCN0by1nZW5lcmF0ZS1hLXNhbXBsZS1jbGllbnQtbGlicmFyeSkKICAgIC0gW0dlbmVyYXRpbmcgbGlicmFyaWVzIGZyb20geW91ciBzZXJ2ZXJdKCNnZW5lcmF0aW5nLWxpYnJhcmllcy1mcm9tLXlvdXItc2VydmVyKQogICAgLSBbTW9kaWZ5aW5nIHRoZSBjbGllbnQgbGlicmFyeSBmb3JtYXRdKCNtb2RpZnlpbmctdGhlLWNsaWVudC1saWJyYXJ5LWZvcm1hdCkKICAgIC0gW01ha2luZyB5b3VyIG93biBjb2RlZ2VuIG1vZHVsZXNdKCNtYWtpbmcteW91ci1vd24tY29kZWdlbi1tb2R1bGVzKQogICAgLSBbV2hlcmUgaXMgSmF2YXNjcmlwdD8/P10oI3doZXJlLWlzLWphdmFzY3JpcHQpCiAgICAtIFtHZW5lcmF0aW5nIGEgY2xpZW50IGZyb20gbG9jYWwgZmlsZXNdKCNnZW5lcmF0aW5nLWEtY2xpZW50LWZyb20tbG9jYWwtZmlsZXMpCiAgICAtIFtDdXN0b21pemluZyB0aGUgZ2VuZXJhdG9yXSgjY3VzdG9taXppbmctdGhlLWdlbmVyYXRvcikKICAgIC0gW1ZhbGlkYXRpbmcgeW91ciBPcGVuQVBJIFNwZWNdKCN2YWxpZGF0aW5nLXlvdXItb3BlbmFwaS1zcGVjKQogICAgLSBbR2VuZXJhdGluZyBkeW5hbWljIGh0bWwgYXBpIGRvY3VtZW50YXRpb25dKCNnZW5lcmF0aW5nLWR5bmFtaWMtaHRtbC1hcGktZG9jdW1lbnRhdGlvbikKICAgIC0gW0dlbmVyYXRpbmcgc3RhdGljIGh0bWwgYXBpIGRvY3VtZW50YXRpb25dKCNnZW5lcmF0aW5nLXN0YXRpYy1odG1sLWFwaS1kb2N1bWVudGF0aW9uKQogICAgLSBbVG8gYnVpbGQgYSBzZXJ2ZXIgc3R1Yl0oI3RvLWJ1aWxkLWEtc2VydmVyLXN0dWIpCiAgICAtIFtUbyBidWlsZCB0aGUgY29kZWdlbiBsaWJyYXJ5XSgjdG8tYnVpbGQtdGhlLWNvZGVnZW4tbGlicmFyeSkKICAtIFtXb3JrZmxvdyBJbnRlZ3JhdGlvbl0oI3dvcmtmbG93LWludGVncmF0aW9uKQogICAgLSBbTWF2ZW4gSW50ZWdyYXRpb25dKCNtYXZlbi1pbnRlZ3JhdGlvbikKICAgIC0gW0dyYWRsZSBJbnRlZ3JhdGlvbl0oI2dyYWRsZS1pbnRlZ3JhdGlvbikKICAtIFtHaXRodWIgSW50ZWdyYXRpb25dKCNnaXRodWItaW50ZWdyYXRpb24pCiAgLSBbT25saW5lIEdlbmVyYXRvcnNdKCNvbmxpbmUtZ2VuZXJhdG9ycykKICAtIFtHdWlkZWxpbmVzIGZvciBDb250cmlidXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2d1aWRlbGluZXMtZm9yLWNvbnRyaWJ1dGluZykKICAtIFtDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuXSgjY29tcGFuaWVzcHJvamVjdHMtdXNpbmctc3dhZ2dlci1jb2RlZ2VuKQogIC0gW1ByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3ByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFtTd2FnZ2VyIENvZGVnZW4gQ29yZSBUZWFtXSgjc3dhZ2dlci1jb2RlZ2VuLWNvcmUtdGVhbSkKICAtIFtTd2FnZ2VyIENvZGVnZW4gVGVjaG5pY2FsIENvbW1pdHRlZV0oI3N3YWdnZXItY29kZWdlbi10ZWNobmljYWwtY29tbWl0dGVlKQogIC0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKCiMjIENvbXBhdGliaWxpdHkKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBoYXMgdW5kZXJnb25lIDMgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gIFRoZSBTd2FnZ2VyIENvZGVnZW4gcHJvamVjdCBoYXMgdGhlIGZvbGxvd2luZyBjb21wYXRpYmlsaXRpZXMgd2l0aCB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uOgoKU3dhZ2dlciBDb2RlZ2VuIFZlcnNpb24gICAgfCBSZWxlYXNlIERhdGUgfCBPcGVuQVBJIFNwZWMgY29tcGF0aWJpbGl0eSB8IE5vdGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLQozLjAuNTItU05BUFNIT1QgKGN1cnJlbnQgMy4wLjAsIHVwY29taW5nIG1pbm9yIHJlbGVhc2UpIFtTTkFQU0hPVF0oaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9pby9zd2FnZ2VyL2NvZGVnZW4vdjMvc3dhZ2dlci1jb2RlZ2VuLWNsaS8zLjAuNTItU05BUFNIT1QvKXwgVEJEICAgICAgICAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNaW5vciByZWxlYXNlClszLjAuNTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNTEpICgqKmN1cnJlbnQgc3RhYmxlKiopIHwgMjAyMy0xMS0yMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNTEpClszLjAuNTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNTApIHwgMjAyMy0xMC0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNTApClszLjAuNDldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDkpIHwgMjAyMy0xMC0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40OV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDkpClszLjAuNDhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDgpIHwgMjAyMy0xMC0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40OF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDgpClszLjAuNDddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDcpIHwgMjAyMy0xMC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40N10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDcpClszLjAuNDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDYpIHwgMjAyMy0wNi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40Nl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDYpClszLjAuNDVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDUpIHwgMjAyMy0wNi0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40NV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDUpClszLjAuNDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDQpIHwgMjAyMy0wNS0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40NF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDQpClszLjAuNDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDMpIHwgMjAyMy0wNS0xNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDMpClszLjAuNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDIpIHwgMjAyMy0wNC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDIpClszLjAuNDFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDEpIHwgMjAyMy0wMi0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDEpClszLjAuNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDApIHwgMjAyMy0wMS0yNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDApClszLjAuMzldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzkpIHwgMjAyMy0wMS0yNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzkpClszLjAuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzgpIHwgMjAyMy0wMS0yMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzgpClszLjAuMzddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzcpIHwgMjAyMy0wMS0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzcpClszLjAuMzZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzYpIHwgMjAyMi0xMS0xMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzYpClszLjAuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzUpIHwgMjAyMi0wOC0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzUpClszLjAuMzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzQpIHwgMjAyMi0wNC0xMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzQpClszLjAuMzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzMpIHwgMjAyMi0wMi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzMpClszLjAuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzIpIHwgMjAyMi0wMS0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzIpClszLjAuMzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzEpIHwgMjAyMS0xMi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzEpClszLjAuMzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzApIHwgMjAyMS0xMS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzApClszLjAuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjkpIHwgMjAyMS0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjkpClszLjAuMjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjgpIHwgMjAyMS0wOS0zMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjgpClszLjAuMjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjcpIHwgMjAyMS0wNi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjcpClszLjAuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjYpIHwgMjAyMS0wNS0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjYpClszLjAuMjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjUpIHwgMjAyMS0wMy0wNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjUpClszLjAuMjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjQpIHwgMjAyMC0xMi0yOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjQpClszLjAuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjMpIHwgMjAyMC0xMS0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjMpClszLjAuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjIpIHwgMjAyMC0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjIpClszLjAuMjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjEpIHwgMjAyMC0wNy0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjEpClszLjAuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjApIHwgMjAyMC0wNS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjApClszLjAuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTkpIHwgMjAyMC0wNC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTkpClszLjAuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTgpIHwgMjAyMC0wMi0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTgpClszLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTcpIHwgMjAyMC0wMi0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTcpClszLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTYpIHwgMjAyMC0wMS0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTYpClszLjAuMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTUpIHwgMjAyMC0wMS0wMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTUpClszLjAuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTQpIHwgMjAxOS0xMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTQpClszLjAuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTMpIHwgMjAxOS0xMC0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTMpClszLjAuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTIpIHwgMjAxOS0xMC0xNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTIpClszLjAuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTEpIHwgMjAxOS0wOC0yNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTEpClszLjAuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTApIHwgMjAxOS0wNy0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTApClszLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC45KSB8IDIwMTktMDYtMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuOSkKWzMuMC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjgpIHwgMjAxOS0wNC0yNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC44KQpbMy4wLjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNykgfCAyMDE5LTAzLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjcpClszLjAuNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41KSB8IDIwMTktMDItMTggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNSkKWzMuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjQpIHwgMjAxOS0wMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40KQpbMy4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMykgfCAyMDE4LTExLTMwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjMpClszLjAuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yKXwgMjAxOC0xMC0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNaW5vciByZWxlYXNlClszLjAuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xKXwgMjAxOC0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNYWpvciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcwpbMy4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMCl8IDIwMTgtMDktMDYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wIHwgTWFqb3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMKMi40LjM4LVNOQVBTSE9UIChjdXJyZW50IG1hc3RlciwgdXBjb21pbmcgbWlub3IgcmVsZWFzZSkgW1NOQVBTSE9UXShodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzL2lvL3N3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLWNsaS8yLjQuMzgtU05BUFNIT1QvKXwgVEJEICAgICAgICAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBNaW5vciByZWxlYXNlClsyLjQuMzddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzcpICgqKmN1cnJlbnQgc3RhYmxlKiopIHwgMjAyMy0xMS0yMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM3KQpbMi40LjM2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjM2KSB8IDIwMjMtMTAtMjYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjM2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zNikKWzIuNC4zNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zNSkgfCAyMDIzLTEwLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzUpClsyLjQuMzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzQpIHwgMjAyMy0xMC0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM0KQpbMi40LjMzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjMzKSB8IDIwMjMtMTAtMDIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjMzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zMykKWzIuNC4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zMikgfCAyMDIzLTA1LTE3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzIpClsyLjQuMzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzEpIHwgMjAyMy0wNC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjMxKQpbMi40LjMwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjMwKSB8IDIwMjMtMDItMTYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjMwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zMCkKWzIuNC4yOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yOSkgfCAyMDIyLTExLTEwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjkpClsyLjQuMjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjgpIHwgMjAyMi0wOC0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI4KQpbMi40LjI3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI3KSB8IDIwMjItMDQtMTIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yNykKWzIuNC4yNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yNikgfCAyMDIyLTAyLTA3ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjYpClsyLjQuMjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjUpIHwgMjAyMS0xMi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI1KQpbMi40LjI0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI0KSB8IDIwMjEtMTEtMTggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yNCkKWzIuNC4yM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yMykgfCAyMDIxLTEwLTA4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjMpClsyLjQuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjIpIHwgMjAyMS0wOS0zMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIyKQpbMi40LjIxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjIxKSB8IDIwMjEtMDYtMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjIxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yMSkKWzIuNC4yMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yMCkgfCAyMDIxLTA1LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjApClsyLjQuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTkpIHwgMjAyMS0wMy0wNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE5KQpbMi40LjE4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE4KSB8IDIwMjAtMTItMjkgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xOCkKWzIuNC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xNykgfCAyMDIwLTExLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTcpClsyLjQuMTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTYpIHwgMjAyMC0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE2KQpbMi40LjE1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE1KSB8IDIwMjAtMDctMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xNSkKWzIuNC4xNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xNCkgfCAyMDIwLTA1LTE4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTQpClsyLjQuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTMpIHwgMjAyMC0wNC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjEzKQpbMi40LjEyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEyKSB8IDIwMjAtMDEtMTUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjEyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xMikKWzIuNC4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xMSkgfCAyMDIwLTAxLTAzICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTEpClsyLjQuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTApIHwgMjAxOS0xMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjEwKQpbMi40LjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuOSkgfCAyMDE5LTEwLTE0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC45XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC45KQpbMi40LjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuOCkgfCAyMDE5LTA4LTI0ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC44KQpbMi40LjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuNykgfCAyMDE5LTA3LTExICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC43XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC43KQpbMi40LjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuNikgfCAyMDE5LTA2LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC42XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC42KQpbMi40LjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuNSkgIHwgMjAxOS0wNC0yNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNSkKWzIuNC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjQpIHwgMjAxOS0wMy0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNCkKWzIuNC4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjIpIHwgMjAxOS0wMi0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMikKWzIuNC4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEpIHwgMjAxOS0wMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMSkKWzIuNC4wXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjApIHwgMjAxOC0xMS0zMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMCkKWzIuMy4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4zLjEpIHwgMjAxOC0wMS0xNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjMuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjMuMSkKWzIuMy4wXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4zLjApIHwgMjAxNy0xMi0yMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjMuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjMuMCkKWzIuMi4zXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4yLjMpIHwgMjAxNy0wNy0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjIuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjIuMykKWzIuMi4yXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4yLjIpIHwgMjAxNy0wMy0wMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjIuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjIuMikKWzIuMi4xXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4yLjEpIHwgMjAxNi0wOC0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjIuMSkKWzIuMS42XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi4xLjYpIHwgMjAxNi0wNC0wNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjEuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjEuNikKMi4wLjE3ICAgICAgICAgICAgICAgICAgICAgfCAyMDE0LTA4LTIyICAgfCAxLjEsIDEuMiAgICAgICAgICAgICB8IFt0YWcgdjIuMC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzIuMC4xNykKMS4wLjQgICAgICAgICAgICAgICAgICAgICAgfCAyMDEyLTA0LTEyICAgfCAxLjAsIDEuMSAgICAgICAgICAgICB8IFt0YWcgdjEuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvc3dhZ2dlci1jb2RlZ2VuXzIuOS4xLTEuMSkKCiMjIyBQcmVyZXF1aXNpdGVzCklmIHlvdSdyZSBsb29raW5nIGZvciB0aGUgbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uLCB5b3UgY2FuIGdyYWIgaXQgZGlyZWN0bHkgZnJvbSBNYXZlbi5vcmcgKEphdmEgOCBydW50aW1lIGF0IGEgbWluaW11bSk6CgpgYGBzaAojIERvd25sb2FkIGN1cnJlbnQgc3RhYmxlIDIueC54IGJyYW5jaCAoU3dhZ2dlciBhbmQgT3BlbkFQSSB2ZXJzaW9uIDIpCndnZXQgaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL2lvL3N3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLWNsaS8yLjQuMzcvc3dhZ2dlci1jb2RlZ2VuLWNsaS0yLjQuMzcuamFyIC1PIHN3YWdnZXItY29kZWdlbi1jbGkuamFyCgpqYXZhIC1qYXIgc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgaGVscAoKIyBEb3dubG9hZCBjdXJyZW50IHN0YWJsZSAzLngueCBicmFuY2ggKE9wZW5BUEkgdmVyc2lvbiAzKQp3Z2V0IGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9pby9zd2FnZ2VyL2NvZGVnZW4vdjMvc3dhZ2dlci1jb2RlZ2VuLWNsaS8zLjAuNTEvc3dhZ2dlci1jb2RlZ2VuLWNsaS0zLjAuNTEuamFyIC1PIHN3YWdnZXItY29kZWdlbi1jbGkuamFyCgpqYXZhIC1qYXIgc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgLS1oZWxwCmBgYAoKRm9yIFdpbmRvd3MgdXNlcnMsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBbd2dldF0oaHR0cDovL2dudXdpbjMyLnNvdXJjZWZvcmdlLm5ldC9wYWNrYWdlcy93Z2V0Lmh0bSkgb3IgeW91IGNhbiB1c2UgSW52b2tlLVdlYlJlcXVlc3QgaW4gUG93ZXJTaGVsbCAoMy4wKyksIGUuZy4gYEludm9rZS1XZWJSZXF1ZXN0IC1PdXRGaWxlIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9pby9zd2FnZ2VyL3N3YWdnZXItY29kZWdlbi1jbGkvMi40LjM3L3N3YWdnZXItY29kZWdlbi1jbGktMi40LjM3LmphcmAKCk9uIGEgbWFjLCBpdCdzIGV2ZW4gZWFzaWVyIHdpdGggYGJyZXdgOgpgYGBzaApicmV3IGluc3RhbGwgc3dhZ2dlci1jb2RlZ2VuCmBgYAoKVG8gYnVpbGQgZnJvbSBzb3VyY2UsIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgaW5zdGFsbGVkIGFuZCBhdmFpbGFibGUgaW4geW91ciBgJFBBVEg6YAoKKiBbSmF2YSAxMStdKGh0dHA6Ly9qYXZhLm9yYWNsZS5jb20pCgoqIFtBcGFjaGUgbWF2ZW4gMy42LjIgb3IgZ3JlYXRlcl0oaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvKQoKIyMjIyBPUyBYIFVzZXJzCkRvbid0IGZvcmdldCB0byBpbnN0YWxsIEphdmEgMTErLgoKRXhwb3J0IGBKQVZBX0hPTUVgIGluIG9yZGVyIHRvIHVzZSB0aGUgc3VwcG9ydGVkIEphdmEgdmVyc2lvbjoKYGBgc2gKZXhwb3J0IEpBVkFfSE9NRT1gL3Vzci9saWJleGVjL2phdmFfaG9tZSAtdiAxMWAKZXhwb3J0IFBBVEg9JHtKQVZBX0hPTUV9L2JpbjokUEFUSApgYGAKCiMjIyBCdWlsZGluZwoKQWZ0ZXIgY2xvbmluZyB0aGUgcHJvamVjdCwgeW91IGNhbiBidWlsZCBpdCBmcm9tIHNvdXJjZSB3aXRoIHRoaXMgY29tbWFuZDoKYGBgc2gKbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgpJZiB5b3UgZG9uJ3QgaGF2ZSBtYXZlbiBpbnN0YWxsZWQsIHlvdSBtYXkgZGlyZWN0bHkgdXNlIHRoZSBpbmNsdWRlZCBbbWF2ZW4gd3JhcHBlcl0oaHR0cHM6Ly9naXRodWIuY29tL3Rha2FyaS9tYXZlbi13cmFwcGVyKSwgYW5kIGJ1aWxkIHdpdGggdGhlIGNvbW1hbmQ6CmBgYHNoCi4vbXZudyBjbGVhbiBwYWNrYWdlCmBgYAoKIyMjIEhvbWVicmV3CgpUbyBpbnN0YWxsLCBydW4gYGJyZXcgaW5zdGFsbCBzd2FnZ2VyLWNvZGVnZW5gCgpIZXJlIGlzIGFuIGV4YW1wbGUgdXNhZ2U6CmBgYHNoCnN3YWdnZXItY29kZWdlbiBnZW5lcmF0ZSAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIC1sIHJ1YnkgLW8gL3RtcC90ZXN0LwpgYGAKCiMjIyBEb2NrZXIKCiMjIyMgRGV2ZWxvcG1lbnQgaW4gZG9ja2VyCgpZb3UgY2FuIHVzZSBgcnVuLWluLWRvY2tlci5zaGAgdG8gZG8gYWxsIGRldmVsb3BtZW50LiBUaGlzIHNjcmlwdCBtYXBzIHlvdXIgbG9jYWwgcmVwb3NpdG9yeSB0byBgL2dlbmAKaW4gdGhlIGRvY2tlciBjb250YWluZXIuIEl0IGFsc28gbWFwcyBgfi8ubTIvcmVwb3NpdG9yeWAgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbnRhaW5lciBsb2NhdGlvbi4KClRvIGV4ZWN1dGUgYG12biBwYWNrYWdlYDoKCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuCmNkIHN3YWdnZXItY29kZWdlbgouL3J1bi1pbi1kb2NrZXIuc2ggbXZuIHBhY2thZ2UKYGBgCgpCdWlsZCBhcnRpZmFjdHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuCgpPbmNlIGJ1aWx0LCBgcnVuLWluLWRvY2tlci5zaGAgd2lsbCBhY3QgYXMgYW4gZXhlY3V0YWJsZSBmb3Igc3dhZ2dlci1jb2RlZ2VuLWNsaS4gVG8gZ2VuZXJhdGUgY29kZSwgeW91J2xsIG5lZWQgdG8gb3V0cHV0IHRvIGEgZGlyZWN0b3J5IHVuZGVyIGAvZ2VuYCAoZS5nLiBgL2dlbi9vdXRgKS4gRm9yIGV4YW1wbGU6CgpgYGBzaAouL3J1bi1pbi1kb2NrZXIuc2ggaGVscCAjIEV4ZWN1dGVzICdoZWxwJyBjb21tYW5kIGZvciBzd2FnZ2VyLWNvZGVnZW4tY2xpCi4vcnVuLWluLWRvY2tlci5zaCBsYW5ncyAjIEV4ZWN1dGVzICdsYW5ncycgY29tbWFuZCBmb3Igc3dhZ2dlci1jb2RlZ2VuLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggL2dlbi9iaW4vZ28tcGV0c3RvcmUuc2ggICMgQnVpbGRzIHRoZSBHbyBjbGllbnQKLi9ydW4taW4tZG9ja2VyLnNoIGdlbmVyYXRlIC1pIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy90ZXN0L3Jlc291cmNlcy8yXzAvcGV0c3RvcmUueWFtbCBcCiAgICAtbCBnbyAtbyAvZ2VuL291dC9nby1wZXRzdG9yZSAtRHBhY2thZ2VOYW1lPXBldHN0b3JlICMgZ2VuZXJhdGVzIGdvIGNsaWVudCwgb3V0cHV0cyBsb2NhbGx5IHRvIC4vb3V0L2dvLXBldHN0b3JlCmBgYAojIyMjIFN0YW5kYWxvbmUgZ2VuZXJhdG9yIERldmVsb3BtZW50IGluIGRvY2tlcgoKU2VlIFtzdGFuZGFsb25lIGdlbmVyYXRvciBkZXZlbG9wbWVudF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9zdGFuZGFsb25lLWdlbi1kZXYvc3RhbmRhbG9uZS1nZW5lcmF0b3ItZGV2ZWxvcG1lbnQubWQpCgojIyMjIFJ1biBEb2NrZXIgaW4gVmFncmFudApQcmVyZXF1aXNpdGU6IGluc3RhbGwgW1ZhZ3JhbnRdKGh0dHBzOi8vd3d3LnZhZ3JhbnR1cC5jb20vZG93bmxvYWRzLmh0bWwpIGFuZCBbVmlydHVhbEJveF0oaHR0cHM6Ly93d3cudmlydHVhbGJveC5vcmcvd2lraS9Eb3dubG9hZHMpLgogYGBgc2gKZ2l0IGNsb25lIGh0dHA6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXQKY2Qgc3dhZ2dlci1jb2RlZ2VuCnZhZ3JhbnQgdXAKdmFncmFudCBzc2gKY2QgL3ZhZ3JhbnQKLi9ydW4taW4tZG9ja2VyLnNoIG12biBwYWNrYWdlCiBgYGAKCiMjIyMgUHVibGljIFByZS1idWlsdCBEb2NrZXIgaW1hZ2VzCgogLSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivc3dhZ2dlcmFwaS9zd2FnZ2VyLWdlbmVyYXRvci8gKG9mZmljaWFsIHdlYiBzZXJ2aWNlKQogLSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3Ivc3dhZ2dlcmFwaS9zd2FnZ2VyLWNvZGVnZW4tY2xpLyAob2ZmaWNpYWwgQ0xJKQoKCiMjIyMjIFN3YWdnZXIgR2VuZXJhdG9yIERvY2tlciBJbWFnZQoKVGhlIFN3YWdnZXIgR2VuZXJhdG9yIGltYWdlIGNhbiBhY3QgYXMgYSBzZWxmLWhvc3RlZCB3ZWIgYXBwbGljYXRpb24gYW5kIEFQSSBmb3IgZ2VuZXJhdGluZyBjb2RlLiBUaGlzIGNvbnRhaW5lciBjYW4gYmUgIGluY29ycG9yYXRlZCBpbnRvIGEgQ0kgcGlwZWxpbmUsIGFuZCByZXF1aXJlcyBhdCBsZWFzdCB0d28gSFRUUCByZXF1ZXN0cyBhbmQgc29tZSBkb2NrZXIgb3JjaGVzdHJhdGlvbiB0byBhY2Nlc3MgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlIHVzYWdlIChub3RlIHRoaXMgYXNzdW1lcyBganFgIGlzIGluc3RhbGxlZCBmb3IgY29tbWFuZCBsaW5lIHByb2Nlc3Npbmcgb2YgSlNPTik6CgpgYGBzaAojIFN0YXJ0IGNvbnRhaW5lciBhbmQgc2F2ZSB0aGUgY29udGFpbmVyIGlkCkNJRD0kKGRvY2tlciBydW4gLWQgc3dhZ2dlcmFwaS9zd2FnZ2VyLWdlbmVyYXRvcikKIyBhbGxvdyBmb3Igc3RhcnR1cApzbGVlcCA1CiMgR2V0IHRoZSBJUCBvZiB0aGUgcnVubmluZyBjb250YWluZXIKR0VOX0lQPSQoZG9ja2VyIGluc3BlY3QgLS1mb3JtYXQgJ3t7Lk5ldHdvcmtTZXR0aW5ncy5JUEFkZHJlc3N9fScgICRDSUQpCiMgRXhlY3V0ZSBhbiBIVFRQIHJlcXVlc3QgYW5kIHN0b3JlIHRoZSBkb3dubG9hZCBsaW5rClJFU1VMVD0kKGN1cmwgLVggUE9TVCAtLWhlYWRlciAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyAtLWhlYWRlciAnQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uJyAtZCAnewogICJzd2FnZ2VyVXJsIjogImh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24iCn0nICdodHRwOi8vbG9jYWxob3N0OjgxODgvYXBpL2dlbi9jbGllbnRzL2phdmFzY3JpcHQnIHwganEgJy5saW5rJyB8IHRyIC1kICciJykKIyBEb3dubG9hZCB0aGUgZ2VuZXJhdGVkIHppcCBhbmQgcmVkaXJlY3QgdG8gYSBmaWxlCmN1cmwgJFJFU1VMVCA+IHJlc3VsdC56aXAKIyBTaHV0ZG93biB0aGUgc3dhZ2dlciBnZW5lcmF0b3IgaW1hZ2UKZG9ja2VyIHN0b3AgJENJRCAmJiBkb2NrZXIgcm0gJENJRApgYGAKCkluIHRoZSBleGFtcGxlIGFib3ZlLCBgcmVzdWx0LnppcGAgd2lsbCBjb250YWluIHRoZSBnZW5lcmF0ZWQgY2xpZW50LgoKIyMjIyMgU3dhZ2dlciBDb2RlZ2VuIENMSSBEb2NrZXIgSW1hZ2UKClRoZSBTd2FnZ2VyIENvZGVnZW4gaW1hZ2UgYWN0cyBhcyBhIHN0YW5kYWxvbmUgZXhlY3V0YWJsZS4gSXQgY2FuIGJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gaW5zdGFsbGluZyB2aWEgaG9tZWJyZXcsIG9yIGZvciBkZXZlbG9wZXJzIHdobyBhcmUgdW5hYmxlIHRvIGluc3RhbGwgSmF2YSBvciB1cGdyYWRlIHRoZSBpbnN0YWxsZWQgdmVyc2lvbi4KClRvIGdlbmVyYXRlIGNvZGUgd2l0aCB0aGlzIGltYWdlLCB5b3UnbGwgbmVlZCB0byBtb3VudCBhIGxvY2FsIGxvY2F0aW9uIGFzIGEgdm9sdW1lLgoKRXhhbXBsZToKCmBgYHNoCmRvY2tlciBydW4gLS1ybSAtdiAke1BXRH06L2xvY2FsIHN3YWdnZXJhcGkvc3dhZ2dlci1jb2RlZ2VuLWNsaSBnZW5lcmF0ZSBcCiAgICAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIFwKICAgIC1sIGdvIFwKICAgIC1vIC9sb2NhbC9vdXQvZ28KYGBgCgooT24gV2luZG93cyByZXBsYWNlIGAke1BXRH1gIHdpdGggYCVDRCVgKQoKVGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwgYmUgbG9jYXRlZCB1bmRlciBgLi9vdXQvZ29gIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCiMjIEdldHRpbmcgU3RhcnRlZAoKVG8gZ2VuZXJhdGUgYSBQSFAgY2xpZW50IGZvciBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uLCBwbGVhc2UgcnVuIHRoZSBmb2xsb3dpbmcKYGBgc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4KY2Qgc3dhZ2dlci1jb2RlZ2VuCm12biBjbGVhbiBwYWNrYWdlCmphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGdlbmVyYXRlIFwKICAgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiBcCiAgIC1sIHBocCBcCiAgIC1vIC92YXIvdG1wL3BocF9hcGlfY2xpZW50CmBgYAooaWYgeW91J3JlIG9uIFdpbmRvd3MsIHJlcGxhY2UgdGhlIGxhc3QgY29tbWFuZCB3aXRoIGBqYXZhIC1qYXIgbW9kdWxlc1xzd2FnZ2VyLWNvZGVnZW4tY2xpXHRhcmdldFxzd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIC1sIHBocCAtbyBjOlx0ZW1wXHBocF9hcGlfY2xpZW50YCkKCllvdSBjYW4gYWxzbyBkb3dubG9hZCB0aGUgSkFSIChsYXRlc3QgcmVsZWFzZSkgZGlyZWN0bHkgZnJvbSBbbWF2ZW4ub3JnXShodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tY2xpLzIuNC4zNy9zd2FnZ2VyLWNvZGVnZW4tY2xpLTIuNC4zNy5qYXIpCgpUbyBnZXQgYSBsaXN0IG9mICoqZ2VuZXJhbCoqIG9wdGlvbnMgYXZhaWxhYmxlLCBwbGVhc2UgcnVuIGBqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBoZWxwIGdlbmVyYXRlYCAoZm9yIHZlcnNpb24gMy54IGNoZWNrIFszLjAuMCBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8zLjAuMCkpCgpUbyBnZXQgYSBsaXN0IG9mIFBIUCBzcGVjaWZpZWQgb3B0aW9ucyAod2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ2VuZXJhdG9yIHdpdGggYSBjb25maWcgZmlsZSB2aWEgdGhlIGAtY2Agb3B0aW9uKSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgY29uZmlnLWhlbHAgLWwgcGhwYAoKIyMgR2VuZXJhdG9ycwoKIyMjIFRvIGdlbmVyYXRlIGEgc2FtcGxlIGNsaWVudCBsaWJyYXJ5CllvdSBjYW4gYnVpbGQgYSBjbGllbnQgYWdhaW5zdCB0aGUgc3dhZ2dlciBzYW1wbGUgW3BldHN0b3JlXShodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8pIEFQSSBhcyBmb2xsb3dzOgoKYGBgc2gKLi9iaW4vamF2YS1wZXRzdG9yZS5zaApgYGAKCihPbiBXaW5kb3dzLCBydW4gYC5cYmluXHdpbmRvd3NcamF2YS1wZXRzdG9yZS5iYXRgIGluc3RlYWQpCgpUaGlzIHdpbGwgcnVuIHRoZSBnZW5lcmF0b3Igd2l0aCB0aGlzIGNvbW1hbmQ6CgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSBcCiAgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiBcCiAgLWwgamF2YSBcCiAgLW8gc2FtcGxlcy9jbGllbnQvcGV0c3RvcmUvamF2YQpgYGAKCndpdGggYSBudW1iZXIgb2Ygb3B0aW9ucy4gWW91IGNhbiBnZXQgdGhlIG9wdGlvbnMgd2l0aCB0aGUgYGhlbHAgZ2VuZXJhdGVgIGNvbW1hbmQgKGJlbG93IG9ubHkgc2hvd3MgcGFydGlhbCByZXN1bHRzKToKCmBgYApOQU1FCiAgICAgICAgc3dhZ2dlci1jb2RlZ2VuLWNsaSBnZW5lcmF0ZSAtIEdlbmVyYXRlIGNvZGUgd2l0aCBjaG9zZW4gbGFuZwoKU1lOT1BTSVMKICAgICAgICBzd2FnZ2VyLWNvZGVnZW4tY2xpIGdlbmVyYXRlCiAgICAgICAgICAgICAgICBbKC1hIDxhdXRob3JpemF0aW9uPiB8IC0tYXV0aCA8YXV0aG9yaXphdGlvbj4pXQogICAgICAgICAgICAgICAgWy0tYWRkaXRpb25hbC1wcm9wZXJ0aWVzIDxhZGRpdGlvbmFsIHByb3BlcnRpZXM+Li4uXQogICAgICAgICAgICAgICAgWy0tYXBpLXBhY2thZ2UgPGFwaSBwYWNrYWdlPl0gWy0tYXJ0aWZhY3QtaWQgPGFydGlmYWN0IGlkPl0KICAgICAgICAgICAgICAgIFstLWFydGlmYWN0LXZlcnNpb24gPGFydGlmYWN0IHZlcnNpb24+XQogICAgICAgICAgICAgICAgWygtYyA8Y29uZmlndXJhdGlvbiBmaWxlPiB8IC0tY29uZmlnIDxjb25maWd1cmF0aW9uIGZpbGU+KV0KICAgICAgICAgICAgICAgIFstRCA8c3lzdGVtIHByb3BlcnRpZXM+Li4uXSBbLS1naXQtcmVwby1pZCA8Z2l0IHJlcG8gaWQ+XQogICAgICAgICAgICAgICAgWy0tZ2l0LXVzZXItaWQgPGdpdCB1c2VyIGlkPl0gWy0tZ3JvdXAtaWQgPGdyb3VwIGlkPl0KICAgICAgICAgICAgICAgIFstLWh0dHAtdXNlci1hZ2VudCA8aHR0cCB1c2VyIGFnZW50Pl0KICAgICAgICAgICAgICAgICgtaSA8c3BlYyBmaWxlPiB8IC0taW5wdXQtc3BlYyA8c3BlYyBmaWxlPikKICAgICAgICAgICAgICAgIFstLWlnbm9yZS1maWxlLW92ZXJyaWRlIDxpZ25vcmUgZmlsZSBvdmVycmlkZSBsb2NhdGlvbj5dCiAgICAgICAgICAgICAgICBbLS1pbXBvcnQtbWFwcGluZ3MgPGltcG9ydCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnN0YW50aWF0aW9uLXR5cGVzIDxpbnN0YW50aWF0aW9uIHR5cGVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWludm9rZXItcGFja2FnZSA8aW52b2tlciBwYWNrYWdlPl0KICAgICAgICAgICAgICAgICgtbCA8bGFuZ3VhZ2U+IHwgLS1sYW5nIDxsYW5ndWFnZT4pCiAgICAgICAgICAgICAgICBbLS1sYW5ndWFnZS1zcGVjaWZpYy1wcmltaXRpdmVzIDxsYW5ndWFnZSBzcGVjaWZpYyBwcmltaXRpdmVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWxpYnJhcnkgPGxpYnJhcnk+XSBbLS1tb2RlbC1uYW1lLXByZWZpeCA8bW9kZWwgbmFtZSBwcmVmaXg+XQogICAgICAgICAgICAgICAgWy0tbW9kZWwtbmFtZS1zdWZmaXggPG1vZGVsIG5hbWUgc3VmZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLXBhY2thZ2UgPG1vZGVsIHBhY2thZ2U+XQogICAgICAgICAgICAgICAgWygtbyA8b3V0cHV0IGRpcmVjdG9yeT4gfCAtLW91dHB1dCA8b3V0cHV0IGRpcmVjdG9yeT4pXQogICAgICAgICAgICAgICAgWy0tcmVsZWFzZS1ub3RlIDxyZWxlYXNlIG5vdGU+XSBbLS1yZW1vdmUtb3BlcmF0aW9uLWlkLXByZWZpeF0KICAgICAgICAgICAgICAgIFstLXJlc2VydmVkLXdvcmRzLW1hcHBpbmdzIDxyZXNlcnZlZCB3b3JkIG1hcHBpbmdzPi4uLl0KICAgICAgICAgICAgICAgIFsoLXMgfCAtLXNraXAtb3ZlcndyaXRlKV0KICAgICAgICAgICAgICAgIFsoLXQgPHRlbXBsYXRlIGRpcmVjdG9yeT4gfCAtLXRlbXBsYXRlLWRpciA8dGVtcGxhdGUgZGlyZWN0b3J5PildCiAgICAgICAgICAgICAgICBbLS10eXBlLW1hcHBpbmdzIDx0eXBlIG1hcHBpbmdzPi4uLl0gWygtdiB8IC0tdmVyYm9zZSldCgpPUFRJT05TCiAgICAgICAgLWEgPGF1dGhvcml6YXRpb24+LCAtLWF1dGggPGF1dGhvcml6YXRpb24+CiAgICAgICAgICAgIGFkZHMgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHdoZW4gZmV0Y2hpbmcgdGhlIHN3YWdnZXIgZGVmaW5pdGlvbnMKICAgICAgICAgICAgcmVtb3RlbHkuIFBhc3MgaW4gYSBVUkwtZW5jb2RlZCBzdHJpbmcgb2YgbmFtZTpoZWFkZXIgd2l0aCBhIGNvbW1hCiAgICAgICAgICAgIHNlcGFyYXRpbmcgbXVsdGlwbGUgdmFsdWVzCgouLi4uLi4gKHJlc3VsdHMgb21pdHRlZCkKCiAgICAgICAgLXYsIC0tdmVyYm9zZQogICAgICAgICAgICB2ZXJib3NlIG1vZGUKCmBgYAoKWW91IGNhbiB0aGVuIGNvbXBpbGUgYW5kIHJ1biB0aGUgY2xpZW50LCBhcyB3ZWxsIGFzIHVuaXQgdGVzdHMgYWdhaW5zdCBpdDoKCmBgYHNoCmNkIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEKbXZuIHBhY2thZ2UKYGBgCgpPdGhlciBsYW5ndWFnZXMgaGF2ZSBwZXRzdG9yZSBzYW1wbGVzLCB0b286CmBgYHNoCi4vYmluL2FuZHJvaWQtcGV0c3RvcmUuc2gKLi9iaW4vamF2YS1wZXRzdG9yZS5zaAouL2Jpbi9vYmpjLXBldHN0b3JlLnNoCmBgYAoKIyMjIEdlbmVyYXRpbmcgbGlicmFyaWVzIGZyb20geW91ciBzZXJ2ZXIKSXQncyBqdXN0IGFzIGVhc3ktLWp1c3QgdXNlIHRoZSBgLWlgIGZsYWcgdG8gcG9pbnQgdG8gZWl0aGVyIGEgc2VydmVyIG9yIGZpbGUuCgojIyMgTW9kaWZ5aW5nIHRoZSBjbGllbnQgbGlicmFyeSBmb3JtYXQKRG9uJ3QgbGlrZSB0aGUgZGVmYXVsdCBzd2FnZ2VyIGNsaWVudCBzeW50YXg/ICBXYW50IGEgZGlmZmVyZW50IGxhbmd1YWdlIHN1cHBvcnRlZD8gIE5vIHByb2JsZW0hICBTd2FnZ2VyIENvZGVnZW4gcHJvY2Vzc2VzIG11c3RhY2hlIHRlbXBsYXRlcyB3aXRoIHRoZSBbam11c3RhY2hlXShodHRwczovL2dpdGh1Yi5jb20vc2Ftc2tpdmVydC9qbXVzdGFjaGUpIGVuZ2luZS4gIFlvdSBjYW4gbW9kaWZ5IG91ciB0ZW1wbGF0ZXMgb3IgbWFrZSB5b3VyIG93bi4KCllvdSBjYW4gbG9vayBhdCBgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4vc3JjL21haW4vcmVzb3VyY2VzLyR7eW91ci1sYW5ndWFnZX1gIGZvciBleGFtcGxlcy4gIFRvIG1ha2UgeW91ciBvd24gdGVtcGxhdGVzLCBjcmVhdGUgeW91ciBvd24gZmlsZXMgYW5kIHVzZSB0aGUgYC10YCBmbGFnIHRvIHNwZWNpZnkgeW91ciB0ZW1wbGF0ZSBmb2xkZXIuICBJdCBhY3R1YWxseSBpcyB0aGF0IGVhc3kuCgojIyMgTWFraW5nIHlvdXIgb3duIGNvZGVnZW4gbW9kdWxlcwpJZiB5b3UncmUgc3RhcnRpbmcgYSBwcm9qZWN0IHdpdGggYSBuZXcgbGFuZ3VhZ2UgYW5kIGRvbid0IHNlZSB3aGF0IHlvdSBuZWVkLCBTd2FnZ2VyIENvZGVnZW4gY2FuIGhlbHAgeW91IGNyZWF0ZSBhIHByb2plY3QgdG8gZ2VuZXJhdGUgeW91ciBvd24gbGlicmFyaWVzOgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgbWV0YSBcCiAgLW8gb3V0cHV0L215TGlicmFyeSAtbiBteUNsaWVudENvZGVnZW4gLXAgY29tLm15LmNvbXBhbnkuY29kZWdlbgpgYGAKClRoaXMgd2lsbCB3cml0ZSwgaW4gdGhlIGZvbGRlciBgb3V0cHV0L215TGlicmFyeWAsIGFsbCB0aGUgZmlsZXMgeW91IG5lZWQgdG8gZ2V0IHN0YXJ0ZWQsIGluY2x1ZGluZyBhIGBSRUFETUUubWQuIE9uY2UgbW9kaWZpZWQgYW5kIGNvbXBpbGVkLCB5b3UgY2FuIGxvYWQgeW91ciBsaWJyYXJ5IHdpdGggdGhlIGNvZGVnZW4gYW5kIGdlbmVyYXRlIGNsaWVudHMgd2l0aCB5b3VyIG93biwgY3VzdG9tLXJvbGxlZCBsb2dpYy4KCllvdSB3b3VsZCB0aGVuIGNvbXBpbGUgeW91ciBsaWJyYXJ5IGluIHRoZSBgb3V0cHV0L215TGlicmFyeWAgZm9sZGVyIHdpdGggYG12biBwYWNrYWdlYCBhbmQgZXhlY3V0ZSB0aGUgY29kZWdlbiBsaWtlIHN1Y2g6CgpgYGBzaApqYXZhIC1jcCBvdXRwdXQvbXlMaWJyYXJ5L3RhcmdldC9teUNsaWVudENvZGVnZW4tc3dhZ2dlci1jb2RlZ2VuLTEuMC4wLmphcjptb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGlvLnN3YWdnZXIuY29kZWdlbi5Td2FnZ2VyQ29kZWdlbgpgYGAKRm9yIFdpbmRvd3MgdXNlcnMsIHlvdSB3aWxsIG5lZWQgdG8gdXNlIGA7YCBpbnN0ZWFkIG9mIGA6YCBpbiB0aGUgY2xhc3NwYXRoLCBlLmcuCmBgYApqYXZhIC1jcCBvdXRwdXQvbXlMaWJyYXJ5L3RhcmdldC9teUNsaWVudENvZGVnZW4tc3dhZ2dlci1jb2RlZ2VuLTEuMC4wLmphcjttb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGlvLnN3YWdnZXIuY29kZWdlbi5Td2FnZ2VyQ29kZWdlbgpgYGAKCk5vdGUgdGhlIGBteUNsaWVudENvZGVnZW5gIGlzIGFuIG9wdGlvbiBub3csIGFuZCB5b3UgY2FuIHVzZSB0aGUgdXN1YWwgYXJndW1lbnRzIGZvciBnZW5lcmF0aW5nIHlvdXIgbGlicmFyeToKCmBgYHNoCmphdmEgLWNwIG91dHB1dC9teUxpYnJhcnkvdGFyZ2V0L215Q2xpZW50Q29kZWdlbi1zd2FnZ2VyLWNvZGVnZW4tMS4wLjAuamFyOm1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgXAogIGlvLnN3YWdnZXIuY29kZWdlbi5Td2FnZ2VyQ29kZWdlbiBnZW5lcmF0ZSAtbCBteUNsaWVudENvZGVnZW5cCiAgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiBcCiAgLW8gbXlDbGllbnQKYGBgCgpTZWUgYWxzbyBbc3RhbmRhbG9uZSBnZW5lcmF0b3IgZGV2ZWxvcG1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvc3RhbmRhbG9uZS1nZW4tZGV2L3N0YW5kYWxvbmUtZ2VuZXJhdG9yLWRldmVsb3BtZW50Lm1kKQoKIyMjIFdoZXJlIGlzIEphdmFzY3JpcHQ/Pz8KU2VlIG91ciBbamF2YXNjcmlwdCBsaWJyYXJ5XShodHRwOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWpzKS0taXQncyBjb21wbGV0ZWx5IGR5bmFtaWMgYW5kIGRvZXNuJ3QgcmVxdWlyZQpzdGF0aWMgY29kZSBnZW5lcmF0aW9uLgpUaGVyZSBpcyBhIHRoaXJkLXBhcnR5IGNvbXBvbmVudCBjYWxsZWQgW3N3YWdnZXItanMtY29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3djYW5kaWxsb24vc3dhZ2dlci1qcy1jb2RlZ2VuKSB0aGF0IGNhbiBnZW5lcmF0ZSBhbmd1bGFyanMgb3Igbm9kZWpzIHNvdXJjZSBjb2RlIGZyb20gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uLgoKOmV4Y2xhbWF0aW9uOiBPbiBEZWMgN3RoIDIwMTUsIGEgSmF2YXNjcmlwdCBBUEkgY2xpZW50IGdlbmVyYXRvciBoYXMgYmVlbiBhZGRlZCBieSBAamZpYWxhLgoKIyMjIEdlbmVyYXRpbmcgYSBjbGllbnQgZnJvbSBsb2NhbCBmaWxlcwpJZiB5b3UgZG9uJ3Qgd2FudCB0byBjYWxsIHlvdXIgc2VydmVyLCB5b3UgY2FuIHNhdmUgdGhlIE9wZW5BUEkgU3BlYyBmaWxlcyBpbnRvIGEgZGlyZWN0b3J5IGFuZCBwYXNzIGFuIGFyZ3VtZW50CnRvIHRoZSBjb2RlIGdlbmVyYXRvciBsaWtlIHRoaXM6CgpgYGAKLWkgLi9tb2R1bGVzL3N3YWdnZXItY29kZWdlbi9zcmMvdGVzdC9yZXNvdXJjZXMvMl8wL3BldHN0b3JlLmpzb24KYGBgCgpHcmVhdCBmb3IgY3JlYXRpbmcgbGlicmFyaWVzIG9uIHlvdXIgY2kgc2VydmVyLCBmcm9tIHRoZSBbU3dhZ2dlciBFZGl0b3JdKGh0dHA6Ly9lZGl0b3Iuc3dhZ2dlci5pbykuLi4gb3Igd2hpbGUgY29kaW5nIG9uIGFuIGFpcnBsYW5lLgoKIyMjIFNlbGVjdGl2ZSBnZW5lcmF0aW9uCllvdSBtYXkgbm90IHdhbnQgdG8gZ2VuZXJhdGUgKmFsbCogbW9kZWxzIGluIHlvdXIgcHJvamVjdC4gIExpa2V3aXNlIHlvdSBtYXkgd2FudCBqdXN0IG9uZSBvciB0d28gYXBpcyB0byBiZSB3cml0dGVuLiAgSWYgdGhhdCdzIHRoZSBjYXNlLCB5b3UgY2FuIHVzZSBzeXN0ZW0gcHJvcGVydGllcyB0byBjb250cm9sIHRoZSBvdXRwdXQ6CgpUaGUgZGVmYXVsdCBpcyBnZW5lcmF0ZSAqZXZlcnl0aGluZyogc3VwcG9ydGVkIGJ5IHRoZSBzcGVjaWZpYyBsaWJyYXJ5LiAgT25jZSB5b3UgZW5hYmxlIGEgZmVhdHVyZSwgaXQgd2lsbCByZXN0cmljdCB0aGUgY29udGVudHMgZ2VuZXJhdGVkOgoKYGBgc2gKIyBnZW5lcmF0ZSBvbmx5IG1vZGVscwpqYXZhIC1EbW9kZWxzIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IGFwaXMKamF2YSAtRGFwaXMge29wdHN9CgojIGdlbmVyYXRlIG9ubHkgc3VwcG9ydGluZyBmaWxlcwpqYXZhIC1Ec3VwcG9ydGluZ0ZpbGVzCgojIGdlbmVyYXRlIG1vZGVscyBhbmQgc3VwcG9ydGluZyBmaWxlcwpqYXZhIC1EbW9kZWxzIC1Ec3VwcG9ydGluZ0ZpbGVzCmBgYAoKVG8gY29udHJvbCB0aGUgc3BlY2lmaWMgZmlsZXMgYmVpbmcgZ2VuZXJhdGVkLCB5b3UgY2FuIHBhc3MgYSBDU1YgbGlzdCBvZiB3aGF0IHlvdSB3YW50OgpgYGBzaAojIGdlbmVyYXRlIHRoZSBVc2VyIGFuZCBQZXQgbW9kZWxzIG9ubHkKLURtb2RlbHM9VXNlcixQZXQKCiMgZ2VuZXJhdGUgdGhlIFVzZXIgbW9kZWwgYW5kIHRoZSBzdXBwb3J0aW5nRmlsZSBgU3RyaW5nVXRpbC5qYXZhYDoKLURtb2RlbHM9VXNlciAtRHN1cHBvcnRpbmdGaWxlcz1TdHJpbmdVdGlsLmphdmEKYGBgCgpUbyBjb250cm9sIGdlbmVyYXRpb24gb2YgZG9jcyBhbmQgdGVzdHMgZm9yIGFwaSBhbmQgbW9kZWxzLCBwYXNzIGZhbHNlIHRvIHRoZSBvcHRpb24uIEZvciBhcGksIHRoZXNlIG9wdGlvbnMgYXJlICBgLURhcGlUZXN0cz1mYWxzZWAgYW5kIGAtRGFwaURvY3M9ZmFsc2VgLiBGb3IgbW9kZWxzLCBgLURtb2RlbFRlc3RzPWZhbHNlYCBhbmQgYC1EbW9kZWxEb2NzPWZhbHNlYC4KVGhlc2Ugb3B0aW9ucyBkZWZhdWx0IHRvIHRydWUgYW5kIGRvbid0IGxpbWl0IHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBmZWF0dXJlIG9wdGlvbnMgbGlzdGVkIGFib3ZlIChsaWtlIGAtRGFwaWApOgoKYGBgc2gKIyBnZW5lcmF0ZSBvbmx5IG1vZGVscyAod2l0aCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbikKamF2YSAtRG1vZGVscyB7b3B0c30KCiMgZ2VuZXJhdGUgb25seSBtb2RlbHMgKHdpdGggdGVzdHMgYnV0IG5vIGRvY3VtZW50YXRpb24pCmphdmEgLURtb2RlbHMgLURtb2RlbERvY3M9ZmFsc2Uge29wdHN9CgojIGdlbmVyYXRlIG9ubHkgVXNlciBhbmQgUGV0IG1vZGVscyAobm8gdGVzdHMgYW5kIG5vIGRvY3VtZW50YXRpb24pCmphdmEgLURtb2RlbHM9VXNlcixQZXQgLURtb2RlbFRlc3RzPWZhbHNlIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IGFwaXMgKHdpdGhvdXQgdGVzdHMpCmphdmEgLURhcGlzIC1EYXBpVGVzdHM9ZmFsc2Uge29wdHN9CgojIGdlbmVyYXRlIG9ubHkgYXBpcyAobW9kZWxUZXN0cyBvcHRpb24gaXMgaWdub3JlZCkKamF2YSAtRGFwaXMgLURtb2RlbFRlc3RzPWZhbHNlIHtvcHRzfQpgYGAKCldoZW4gdXNpbmcgc2VsZWN0aXZlIGdlbmVyYXRpb24sIF9vbmx5XyB0aGUgdGVtcGxhdGVzIG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGdlbmVyYXRpb24gd2lsbCBiZSB1c2VkLgoKIyMjIElnbm9yZSBmaWxlIGZvcm1hdAoKU3dhZ2dlciBDb2RlZ2VuIHN1cHBvcnRzIGEgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlLCBzaW1pbGFyIHRvIGAuZ2l0aWdub3JlYCBvciBgLmRvY2tlcmlnbm9yZWAgeW91J3JlIHByb2JhYmx5IGFscmVhZHkgZmFtaWxpYXIgd2l0aC4KClRoZSBpZ25vcmUgZmlsZSBhbGxvd3MgZm9yIGJldHRlciBjb250cm9sIG92ZXIgb3ZlcndyaXRpbmcgZXhpc3RpbmcgZmlsZXMgdGhhbiB0aGUgYC0tc2tpcC1vdmVyd3JpdGVgIGZsYWcuIFdpdGggdGhlIGlnbm9yZSBmaWxlLCB5b3UgY2FuIHNwZWNpZnkgaW5kaXZpZHVhbCBmaWxlcyBvciBkaXJlY3RvcmllcyBjYW4gYmUgaWdub3JlZC4gVGhpcyBjYW4gYmUgdXNlZnVsLCBmb3IgZXhhbXBsZSBpZiB5b3Ugb25seSB3YW50IGEgc3Vic2V0IG9mIHRoZSBnZW5lcmF0ZWQgY29kZS4KCkV4YW1wbGVzOgoKYGBgc2gKIyBTd2FnZ2VyIENvZGVnZW4gSWdub3JlCiMgTGluZXMgYmVnaW5uaW5nIHdpdGggYSAjIGFyZSBjb21tZW50cwoKIyBUaGlzIHNob3VsZCBtYXRjaCBidWlsZC5zaCBsb2NhdGVkIGFueXdoZXJlLgpidWlsZC5zaAoKIyBNYXRjaGVzIGJ1aWxkLnNoIGluIHRoZSByb290Ci9idWlsZC5zaAoKIyBFeGNsdWRlIGFsbCByZWN1cnNpdmVseQpkb2NzLyoqCgojIEV4cGxpY2l0bHkgYWxsb3cgZmlsZXMgZXhjbHVkZWQgYnkgb3RoZXIgcnVsZXMKIWRvY3MvVXNlckFwaS5tZAoKIyBSZWN1cnNpdmVseSBleGNsdWRlIGRpcmVjdG9yaWVzIG5hbWVkIEFwaQojIFlvdSBjYW4ndCBuZWdhdGUgZmlsZXMgYmVsb3cgdGhpcyBkaXJlY3RvcnkuCnNyYy8qKi9BcGkvCgojIFdoZW4gdGhpcyBmaWxlIGlzIG5lc3RlZCB1bmRlciAvQXBpIChleGNsdWRlZCBhYm92ZSksCiMgdGhpcyBydWxlIGlzIGlnbm9yZWQgYmVjYXVzZSBwYXJlbnQgZGlyZWN0b3J5IGlzIGV4Y2x1ZGVkIGJ5IHByZXZpb3VzIHJ1bGUuCiFzcmMvKiovUGV0QXBpVGVzdHMuY3MKCiMgRXhjbHVkZSBhIHNpbmdsZSwgbmVzdGVkIGZpbGUgZXhwbGljaXRseQpzcmMvSU8uU3dhZ2dlci5UZXN0L01vZGVsL0FuaW1hbEZhcm1UZXN0cy5jcwpgYGAKClRoZSBgLnN3YWdnZXItY29kZWdlbi1pZ25vcmVgIGZpbGUgbXVzdCBleGlzdCBpbiB0aGUgcm9vdCBvZiB0aGUgb3V0cHV0IGRpcmVjdG9yeS4KClVwb24gZmlyc3QgY29kZSBnZW5lcmF0aW9uLCB5b3UgbWF5IGFsc28gcGFzcyB0aGUgQ0xJIG9wdGlvbiBgLS1pZ25vcmUtZmlsZS1vdmVycmlkZT0vcGF0aC90by9pZ25vcmVfZmlsZWAgZm9yIGdyZWF0ZXIgY29udHJvbCBvdmVyIGdlbmVyYXRlZCBvdXRwdXRzLiBOb3RlIHRoYXQgdGhpcyBpcyBhIGNvbXBsZXRlIG92ZXJyaWRlLCBhbmQgd2lsbCBvdmVycmlkZSB0aGUgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlIGluIGFuIG91dHB1dCBkaXJlY3Rvcnkgd2hlbiByZWdlbmVyYXRpbmcgY29kZS4KCkVkaXRvciBzdXBwb3J0IGZvciBgLnN3YWdnZXItY29kZWdlbi1pZ25vcmVgIGZpbGVzIGlzIGF2YWlsYWJsZSBpbiBJbnRlbGxpSiB2aWEgdGhlIFsuaWdub3JlIHBsdWdpbl0oaHR0cHM6Ly9wbHVnaW5zLmpldGJyYWlucy5jb20vcGx1Z2luLzc0OTUtLWlnbm9yZSkuCgojIyMgQ3VzdG9taXppbmcgdGhlIGdlbmVyYXRvcgoKVGhlcmUgYXJlIGRpZmZlcmVudCBhc3BlY3RzIG9mIGN1c3RvbWl6aW5nIHRoZSBjb2RlIGdlbmVyYXRvciBiZXlvbmQganVzdCBjcmVhdGluZyBvciBtb2RpZnlpbmcgdGVtcGxhdGVzLiAgRWFjaCBsYW5ndWFnZSBoYXMgYSBzdXBwb3J0aW5nIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBoYW5kbGUgZGlmZmVyZW50IHR5cGUgbWFwcGluZ3MsIGV0YzoKCmBgYHNoCiQgbHMgLTEgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4vc3JjL21haW4vamF2YS9pby9zd2FnZ2VyL2NvZGVnZW4vbGFuZ3VhZ2VzLwpBYnN0cmFjdEphdmFKQVhSU1NlcnZlckNvZGVnZW4uamF2YQpBYnN0cmFjdFR5cGVTY3JpcHRDbGllbnRDb2RlZ2VuLmphdmEKLi4uIChyZXN1bHRzIG9taXR0ZWQpClR5cGVTY3JpcHRBbmd1bGFyQ2xpZW50Q29kZWdlbi5qYXZhClR5cGVTY3JpcHROb2RlQ2xpZW50Q29kZWdlbi5qYXZhCmBgYAoKRWFjaCBvZiB0aGVzZSBmaWxlcyBjcmVhdGVzIHJlYXNvbmFibGUgZGVmYXVsdHMgc28geW91IGNhbiBnZXQgcnVubmluZyBxdWlja2x5LiAgQnV0IGlmIHlvdSB3YW50IHRvIGNvbmZpZ3VyZSBwYWNrYWdlIG5hbWVzLCBwcmVmaXhlcywgbW9kZWwgZm9sZGVycywgZXRjLiB5b3UgY2FuIHVzZSBhIGpzb24gY29uZmlnIGZpbGUgdG8gcGFzcyB0aGUgdmFsdWVzLgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogIC1sIGphdmEgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEgXAogIC1jIHBhdGgvdG8vY29uZmlnLmpzb24KYGBgCmFuZCBgY29uZmlnLmpzb25gIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgYXMgYW4gZXhhbXBsZToKYGBganNvbgp7CiAgImFwaVBhY2thZ2UiIDogInBldHN0b3JlIgp9CmBgYAoKU3VwcG9ydGVkIGNvbmZpZyBvcHRpb25zIGNhbiBiZSBkaWZmZXJlbnQgcGVyIGxhbmd1YWdlLiBSdW5uaW5nIGBjb25maWctaGVscCAtbCB7bGFuZ31gIHdpbGwgc2hvdyBhdmFpbGFibGUgb3B0aW9ucy4KKipUaGVzZSBvcHRpb25zIGFyZSBhcHBsaWVkIHZpYSBjb25maWd1cmF0aW9uIGZpbGUgKGUuZy4gY29uZmlnLmpzb24pIG9yIGJ5IHBhc3NpbmcgdGhlbSB3aXRoIGBqYXZhIC1qYXIgc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgLUR7b3B0aW9uTmFtZX09e29wdGlvblZhbHVlfWAqKi4gKElmIGAtRHtvcHRpb25OYW1lfWAgZG9lcyBub3Qgd29yaywgcGxlYXNlIG9wZW4gYSBbdGlja2V0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2lzc3Vlcy9uZXcpIGFuZCB3ZSdsbCBsb29rIGludG8gaXQpCgpgYGBzaApqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBjb25maWctaGVscCAtbCBqYXZhCmBgYAoKT3V0cHV0CgpgYGAKQ09ORklHIE9QVElPTlMKCW1vZGVsUGFja2FnZQoJICAgIHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBtb2RlbHMKCglhcGlQYWNrYWdlCgkgICAgcGFja2FnZSBmb3IgZ2VuZXJhdGVkIGFwaSBjbGFzc2VzCi4uLi4uLiAocmVzdWx0cyBvbWl0dGVkKQoJbGlicmFyeQoJICAgIGxpYnJhcnkgdGVtcGxhdGUgKHN1Yi10ZW1wbGF0ZSkgdG8gdXNlOgoJICAgIGplcnNleTEgLSBIVFRQIGNsaWVudDogSmVyc2V5IGNsaWVudCAxLjE4LiBKU09OIHByb2Nlc3Npbmc6IEphY2tzb24gMi40LjIKCSAgICBqZXJzZXkyIC0gSFRUUCBjbGllbnQ6IEplcnNleSBjbGllbnQgMi42CgkgICAgZmVpZ24gLSBIVFRQIGNsaWVudDogTmV0ZmxpeCBGZWlnbiA4LjEuMS4gIEpTT04gcHJvY2Vzc2luZzogSmFja3NvbiAyLjYuMwoJICAgIG9raHR0cC1nc29uIChkZWZhdWx0KSAtIEhUVFAgY2xpZW50OiBPa0h0dHAgMi40LjAuIEpTT04gcHJvY2Vzc2luZzogR3NvbiAyLjMuMQoJICAgIHJldHJvZml0IC0gSFRUUCBjbGllbnQ6IE9rSHR0cCAyLjQuMC4gSlNPTiBwcm9jZXNzaW5nOiBHc29uIDIuMy4xIChSZXRyb2ZpdCAxLjkuMCkKICAgICAgICByZXRyb2ZpdDIgLSBIVFRQIGNsaWVudDogT2tIdHRwIDIuNS4wLiBKU09OIHByb2Nlc3Npbmc6IEdzb24gMi40IChSZXRyb2ZpdCAyLjAuMC1iZXRhMikKICAgICAgICBnb29nbGUtYXBpLWNsaWVudCAtIEhUVFAgY2xpZW50OiBnb29nbGUtYXBpLWNsaWVudCAxLjIzLjAuIEpTT04gcHJvY2Vzc2luZzogSmFja3NvbiAyLjguOQogICAgICAgIHJlc3QtYXNzdXJlZCAtIEhUVFAgY2xpZW50OiByZXN0LWFzc3VyZWQgOiAzLjEuMC4gSlNPTiBwcm9jZXNzaW5nOiBHc29uIDIuNi4xLiBPbmx5IGZvciBKYXZhOApgYGAKCllvdXIgY29uZmlnIGZpbGUgZm9yIEphdmEgY2FuIGxvb2sgbGlrZQoKYGBganNvbgp7CiAgImdyb3VwSWQiOiAiY29tLm15LmNvbXBhbnkiLAogICJhcnRpZmFjdElkIjogIk15Q2xpZW50IiwKICAiYXJ0aWZhY3RWZXJzaW9uIjogIjEuMi4wIiwKICAibGlicmFyeSI6ICJmZWlnbiIKfQpgYGAKCkZvciBhbGwgdGhlIHVuc3BlY2lmaWVkIG9wdGlvbnMgZGVmYXVsdCB2YWx1ZXMgd2lsbCBiZSB1c2VkLgoKQW5vdGhlciB3YXkgdG8gb3ZlcnJpZGUgZGVmYXVsdCBvcHRpb25zIGlzIHRvIGV4dGVuZCB0aGUgY29uZmlnIGNsYXNzIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UuClRvIGNoYW5nZSwgZm9yIGV4YW1wbGUsIHRoZSBwcmVmaXggZm9yIHRoZSBPYmplY3RpdmUtQyBnZW5lcmF0ZWQgZmlsZXMsIHNpbXBseSBzdWJjbGFzcyB0aGUgYE9iamNDbGllbnRDb2RlZ2VuLmphdmFgOgoKYGBgamF2YQpwYWNrYWdlIGNvbS5teWNvbXBhbnkuc3dhZ2dlci5jb2RlZ2VuOwoKaW1wb3J0IGlvLnN3YWdnZXIuY29kZWdlbi5sYW5ndWFnZXMuKjsKCnB1YmxpYyBjbGFzcyBNeU9iamNDb2RlZ2VuIGV4dGVuZHMgT2JqY0NsaWVudENvZGVnZW4gewogICAgc3RhdGljIHsKICAgICAgICBQUkVGSVggPSAiSEVMTyI7CiAgICB9Cn0KYGBgCgphbmQgc3BlY2lmeSB0aGUgYGNsYXNzbmFtZWAgd2hlbiBydW5uaW5nIHRoZSBnZW5lcmF0b3I6CgpgYGAKLWwgY29tLm15Y29tcGFueS5zd2FnZ2VyLmNvZGVnZW4uTXlPYmpjQ29kZWdlbgpgYGAKCllvdXIgc3ViY2xhc3Mgd2lsbCBub3cgYmUgbG9hZGVkIGFuZCBvdmVycmlkZXMgdGhlIGBQUkVGSVhgIHZhbHVlIGluIHRoZSBzdXBlcmNsYXNzLgoKIyMjIEJyaW5naW5nIHlvdXIgb3duIG1vZGVscwoKU29tZXRpbWVzIHlvdSBkb24ndCB3YW50IGEgbW9kZWwgZ2VuZXJhdGVkLiAgSW4gdGhpcyBjYXNlLCB5b3UgY2FuIHNpbXBseSBzcGVjaWZ5IGFuIGltcG9ydCBtYXBwaW5nIHRvIHRlbGwKdGhlIGNvZGVnZW4gd2hhdCBfbm90XyB0byBjcmVhdGUuICBXaGVuIGRvaW5nIHRoaXMsIGV2ZXJ5IGxvY2F0aW9uIHRoYXQgcmVmZXJlbmNlcyBhIHNwZWNpZmljIG1vZGVsIHdpbGwKcmVmZXIgYmFjayB0byB5b3VyIGNsYXNzZXMuICBOb3RlLCB0aGlzIG1heSBub3QgYXBwbHkgdG8gYWxsIGxhbmd1YWdlcy4uLgoKVG8gc3BlY2lmeSBhbiBpbXBvcnQgbWFwcGluZywgdXNlIHRoZSBgLS1pbXBvcnQtbWFwcGluZ3NgIGFyZ3VtZW50IGFuZCBzcGVjaWZ5IHRoZSBtb2RlbC10by1pbXBvcnQgbG9naWMgYXMgc3VjaDoKCmBgYAotLWltcG9ydC1tYXBwaW5ncyBQZXQ9bXkubW9kZWxzLk15UGV0CmBgYAoKT3IgZm9yIG11bHRpcGxlIG1hcHBpbmdzOgoKYGBgCi0taW1wb3J0LW1hcHBpbmdzIFBldD1teS5tb2RlbHMuTXlQZXQsT3JkZXI9bXkubW9kZWxzLk15T3JkZXIKYGBgCm9yCmBgYAotLWltcG9ydC1tYXBwaW5ncyBQZXQ9bXkubW9kZWxzLk15UGV0IC0taW1wb3J0LW1hcHBpbmdzIE9yZGVyPW15Lm1vZGVscy5NeU9yZGVyCmBgYAoKCiMjIyBWYWxpZGF0aW5nIHlvdXIgT3BlbkFQSSBTcGVjCgpZb3UgaGF2ZSBvcHRpb25zLiAgVGhlIGVhc2llc3QgaXMgdG8gdXNlIG91ciBbb25saW5lIHZhbGlkYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3ZhbGlkYXRvci1iYWRnZSkgd2hpY2ggbm90IG9ubHkgd2lsbCBsZXQgeW91IHZhbGlkYXRlIHlvdXIgc3BlYywgYnV0IHdpdGggdGhlIGRlYnVnIGZsYWcsIHlvdSBjYW4gc2VlIHdoYXQncyB3cm9uZyB3aXRoIHlvdXIgc3BlYy4gIEZvciBleGFtcGxlOgoKaHR0cDovL29ubGluZS5zd2FnZ2VyLmlvL3ZhbGlkYXRvci9kZWJ1Zz91cmw9aHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbgoKIyMjIEdlbmVyYXRpbmcgZHluYW1pYyBodG1sIGFwaSBkb2N1bWVudGF0aW9uCgpUbyBkbyBzbywganVzdCB1c2UgdGhlIGAtbCBkeW5hbWljLWh0bWxgIGZsYWcgd2hlbiByZWFkaW5nIGEgc3BlYyBmaWxlLiAgVGhpcyBjcmVhdGVzIEhUTUwgZG9jdW1lbnRhdGlvbiB0aGF0IGlzIGF2YWlsYWJsZSBhcyBhIHNpbmdsZS1wYWdlIGFwcGxpY2F0aW9uIHdpdGggQUpBWC4gIFRvIHZpZXcgdGhlIGRvY3VtZW50YXRpb246CgpgYGBzaApjZCBzYW1wbGVzL2R5bmFtaWMtaHRtbC8KbnBtIGluc3RhbGwKbm9kZSAuCmBgYAoKV2hpY2ggbGF1bmNoZXMgYSBub2RlLmpzIHNlcnZlciBzbyB0aGUgQUpBWCBjYWxscyBoYXZlIGEgcGxhY2UgdG8gZ28uCgoKIyMjIEdlbmVyYXRpbmcgc3RhdGljIGh0bWwgYXBpIGRvY3VtZW50YXRpb24KClRvIGRvIHNvLCBqdXN0IHVzZSB0aGUgYC1sIGh0bWxgIGZsYWcgd2hlbiByZWFkaW5nIGEgc3BlYyBmaWxlLiAgVGhpcyBjcmVhdGVzIGEgc2luZ2xlLCBzaW1wbGUgSFRNTCBmaWxlIHdpdGggZW1iZWRkZWQgY3NzIHNvIHlvdSBjYW4gc2hpcCBpdCBhcyBhbiBlbWFpbCBhdHRhY2htZW50LCBvciBsb2FkIGl0IGZyb20geW91ciBmaWxlc3lzdGVtOgoKYGBgc2gKY2Qgc2FtcGxlcy9odG1sLwpvcGVuIGluZGV4Lmh0bWwKYGBgCgoKIyMjIFRvIGJ1aWxkIGEgc2VydmVyIHN0dWIKClBsZWFzZSByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3dpa2kvU2VydmVyLXN0dWItZ2VuZXJhdG9yLUhPV1RPIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIFRvIGJ1aWxkIHRoZSBjb2RlZ2VuIGxpYnJhcnkKClRoaXMgd2lsbCBjcmVhdGUgdGhlIFN3YWdnZXIgQ29kZWdlbiBsaWJyYXJ5IGZyb20gc291cmNlLgoKYGBgc2gKbXZuIHBhY2thZ2UKYGBgCgpOb3RlISAgVGhlIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkgZ2VuZXJhdGVkLiAgSWYgeW91IHdhbnQgdG8gbW9kaWZ5IHRoZSB0ZW1wbGF0ZXMsIHlvdSdsbCBuZWVkIHRvIGVpdGhlciByZXBhY2thZ2UgdGhlIGxpYnJhcnkgT1Igc3BlY2lmeSBhIHBhdGggdG8geW91ciBzY3JpcHRzCgojIyBXb3JrZmxvdyBJbnRlZ3JhdGlvbgoKIyMjIE1hdmVuIEludGVncmF0aW9uCgpZb3UgY2FuIHVzZSB0aGUgW3N3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW5dKG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLW1hdmVuLXBsdWdpbi9SRUFETUUubWQpIGZvciBpbnRlZ3JhdGluZyB3aXRoIHlvdXIgd29ya2Zsb3csIGFuZCBnZW5lcmF0aW5nIGFueSBjb2RlZ2VuIHRhcmdldC4KCiMjIyBHcmFkbGUgSW50ZWdyYXRpb24KCltHcmFkbGUgU3dhZ2dlciBHZW5lcmF0b3IgUGx1Z2luXShodHRwczovL2dpdGh1Yi5jb20vaW50MTI4L2dyYWRsZS1zd2FnZ2VyLWdlbmVyYXRvci1wbHVnaW4pIGlzIGF2YWlsYWJsZSBmb3IgZ2VuZXJhdGluZyBzb3VyY2UgY29kZSBhbmQgQVBJIGRvY3VtZW50LgoKIyMgR2l0SHViIEludGVncmF0aW9uCgpUbyBwdXNoIHRoZSBhdXRvLWdlbmVyYXRlZCBTREsgdG8gR2l0SHViLCB3ZSBwcm92aWRlIGBnaXRfcHVzaC5zaGAgdG8gc3RyZWFtbGluZSB0aGUgcHJvY2Vzcy4gRm9yIGV4YW1wbGU6CgogMSkgQ3JlYXRlIGEgbmV3IHJlcG9zaXRvcnkgaW4gR2l0SHViIChSZWY6IGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2NyZWF0aW5nLWEtbmV3LXJlcG9zaXRvcnkvKQoKIDIpIEdlbmVyYXRlIHRoZSBTREsKYGBgc2gKIGphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGdlbmVyYXRlIFwKIC1pIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy90ZXN0L3Jlc291cmNlcy8yXzAvcGV0c3RvcmUuanNvbiAtbCBwZXJsIFwKIC0tZ2l0LXVzZXItaWQgInN3YWdnZXJhcGkiIFwKIC0tZ2l0LXJlcG8taWQgInBldHN0b3JlLXBlcmwiIFwKIC0tcmVsZWFzZS1ub3RlICJHaXRodWIgaW50ZWdyYXRpb24gZGVtbyIgXAogLW8gL3Zhci90bXAvcGVybC9wZXRzdG9yZQpgYGAKIDMpIFB1c2ggdGhlIFNESyB0byBHaXRIdWIKYGBgc2gKY2QgL3Zhci90bXAvcGVybC9wZXRzdG9yZQovYmluL3NoIC4vZ2l0X3B1c2guc2gKYGBgCgojIyBPbmxpbmUgZ2VuZXJhdG9ycwoKT25lIGNhbiBhbHNvIGdlbmVyYXRlIEFQSSBjbGllbnQgb3Igc2VydmVyIHVzaW5nIHRoZSBvbmxpbmUgZ2VuZXJhdG9ycyAoaHR0cHM6Ly9nZW5lcmF0b3Iuc3dhZ2dlci5pbykKCkZvciBleGFtcGxlLCB0byBnZW5lcmF0ZSBSdWJ5IEFQSSBjbGllbnQsIHNpbXBseSBzZW5kIHRoZSBmb2xsb3dpbmcgSFRUUCByZXF1ZXN0IHVzaW5nIGN1cmw6CmBgYHNoCmN1cmwgLVggUE9TVCAtSCAiY29udGVudC10eXBlOmFwcGxpY2F0aW9uL2pzb24iIC1kICd7InN3YWdnZXJVcmwiOiJodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIn0nIGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vYXBpL2dlbi9jbGllbnRzL3J1YnkKYGBgClRoZW4geW91IHdpbGwgcmVjZWl2ZSBhIEpTT04gcmVzcG9uc2Ugd2l0aCB0aGUgVVJMIHRvIGRvd25sb2FkIHRoZSB6aXBwZWQgY29kZS4KClRvIGN1c3RvbWl6ZSB0aGUgU0RLLCB5b3UgY2FuIGBQT1NUYCB0byBgaHR0cHM6Ly9nZW5lcmF0b3Iuc3dhZ2dlci5pby9hcGkvZ2VuL2NsaWVudHMve2xhbmd1YWdlfWAgd2l0aCB0aGUgZm9sbG93aW5nIEhUVFAgYm9keToKYGBganNvbgp7CiAgIm9wdGlvbnMiOiAge30sCiAgInN3YWdnZXJVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiIKfQpgYGAKaW4gd2hpY2ggdGhlIGBvcHRpb25zYCBmb3IgYSBsYW5ndWFnZSBjYW4gYmUgb2J0YWluZWQgYnkgc3VibWl0dGluZyBhIGBHRVRgIHJlcXVlc3QgdG8gYGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vYXBpL2dlbi9jbGllbnRzL3tsYW5ndWFnZX1gOgoKRm9yIGV4YW1wbGUsIGBjdXJsIGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vYXBpL2dlbi9jbGllbnRzL3B5dGhvbmAgcmV0dXJucwpgYGBqc29uCnsKICAicGFja2FnZU5hbWUiOiB7CiAgICAib3B0IjogInBhY2thZ2VOYW1lIiwKICAgICJkZXNjcmlwdGlvbiI6ICJweXRob24gcGFja2FnZSBuYW1lIChjb252ZW50aW9uOiBzbmFrZV9jYXNlKS4iLAogICAgInR5cGUiOiAic3RyaW5nIiwKICAgICJkZWZhdWx0IjogInN3YWdnZXJfY2xpZW50IgogIH0sCiAgInBhY2thZ2VWZXJzaW9uIjogewogICAgIm9wdCI6ICJwYWNrYWdlVmVyc2lvbiIsCiAgICAiZGVzY3JpcHRpb24iOiAicHl0aG9uIHBhY2thZ2UgdmVyc2lvbi4iLAogICAgInR5cGUiOiAic3RyaW5nIiwKICAgICJkZWZhdWx0IjogIjEuMC4wIgogIH0sCiAgInNvcnRQYXJhbXNCeVJlcXVpcmVkRmxhZyI6IHsKICAgICJvcHQiOiAic29ydFBhcmFtc0J5UmVxdWlyZWRGbGFnIiwKICAgICJkZXNjcmlwdGlvbiI6ICJTb3J0IG1ldGhvZCBhcmd1bWVudHMgdG8gcGxhY2UgcmVxdWlyZWQgcGFyYW1ldGVycyBiZWZvcmUgb3B0aW9uYWwgcGFyYW1ldGVycy4iLAogICAgInR5cGUiOiAiYm9vbGVhbiIsCiAgICAiZGVmYXVsdCI6ICJ0cnVlIgogIH0KfQpgYGAKVG8gc2V0IHBhY2thZ2UgbmFtZSB0byBgcGV0X3N0b3JlYCwgdGhlIEhUVFAgYm9keSBvZiB0aGUgcmVxdWVzdCBpcyBhcyBmb2xsb3dzOgpgYGBqc29uCnsKICAib3B0aW9ucyI6IHsKICAgICJwYWNrYWdlTmFtZSI6ICJwZXRfc3RvcmUiCiAgfSwKICAic3dhZ2dlclVybCI6ICJodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIgp9CmBgYAphbmQgaGVyZSBpcyB0aGUgY3VybCBjb21tYW5kOgpgYGBzaApjdXJsIC1IICJDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIC1YIFBPU1QgLWQgJ3sib3B0aW9ucyI6IHsicGFja2FnZU5hbWUiOiAicGV0X3N0b3JlIn0sInN3YWdnZXJVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiJ9JyBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy9weXRob24KYGBgCgpJbnN0ZWFkIG9mIHVzaW5nIGBzd2FnZ2VyVXJsYCB3aXRoIGFuIFVSTCB0byB0aGUgT3BlbkFQSS9Td2FnZ2VyIHNwZWMsIG9uZSBjYW4gaW5jbHVkZSB0aGUgc3BlYyBpbiB0aGUgSlNPTiBwYXlsb2FkIHdpdGggYHNwZWNgLCBlLmcuCmBgYGpzb24KewogICJvcHRpb25zIjoge30sCiAgInNwZWMiOiB7CiAgICAic3dhZ2dlciI6ICIyLjAiLAogICAgImluZm8iOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInRpdGxlIjogIlRlc3QgQVBJIgogICAgfSwKICAgIC4uLgogIH0KfQpgYGAKCkd1aWRlbGluZXMgZm9yIENvbnRyaWJ1dGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClBsZWFzZSByZWZlciB0byB0aGlzIFtwYWdlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCkKCkNvbXBhbmllcy9Qcm9qZWN0cyB1c2luZyBTd2FnZ2VyIENvZGVnZW4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpIZXJlIGFyZSBzb21lIGNvbXBhbmllcy9wcm9qZWN0cyB1c2luZyBTd2FnZ2VyIENvZGVnZW4gaW4gcHJvZHVjdGlvbi4gVG8gYWRkIHlvdXIgY29tcGFueS9wcm9qZWN0IHRvIHRoZSBsaXN0LCBwbGVhc2UgdmlzaXQgW1JFQURNRS5tZF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9SRUFETUUubWQpIGFuZCBjbGljayBvbiB0aGUgaWNvbiB0byBlZGl0IHRoZSBwYWdlLgotIFtBY2FuZG9dKGh0dHBzOi8vd3d3LmFjYW5kby5kZS8pCi0gW0FjY2VuZ2FnZV0oaHR0cHM6Ly93d3cuYWNjZW5nYWdlLmNvbS8pCi0gW0FjY3J1ZW50XShodHRwczovL3d3dy5hY2NydWVudC5jb20vKQotIFtBY3RpdmVob3Vyc10oaHR0cHM6Ly93d3cuYWN0aXZlaG91cnMuY29tLykKLSBbQWN0b25pY2FdKGh0dHBzOi8vd3d3LmFjdG9uaWNhLmNvbSkKLSBbQWN1bmV0aXhdKGh0dHBzOi8vd3d3LmFjdW5ldGl4LmNvbS8pCi0gW0FkYXB0YW50XShodHRwczovL3d3dy5hZGFwdGFudC5pby8pCi0gW0F0bGFzc2lhbl0oaHR0cHM6Ly93d3cuYXRsYXNzaWFuLmNvbS8pCi0gW0F1dG9kZXNrXShodHRwOi8vd3d3LmF1dG9kZXNrLmNvbS8pCi0gW0F2ZW5pZGEgQ29tcHJhcyBTLkEuXShodHRwczovL3d3dy5hdmVuaWRhLmNvbS5hcikKLSBbQVlMSUVOXShodHRwOi8vYXlsaWVuLmNvbS8pCi0gW0JhbGFuY2UgSW50ZXJuZXRdKGh0dHBzOi8vd3d3LmJhbGFuY2VpbnRlcm5ldC5jb20uYXUvKQotIFtiZWVtb10oaHR0cDovL3d3dy5iZWVtby5ldSkKLSBbYml0bHldKGh0dHBzOi8vYml0bHkuY29tKQotIFtCZWV6VVBdKGh0dHA6Ly93d3cuYmVlenVwLmNvbSkKLSBbQm94XShodHRwczovL2JveC5jb20pCi0gW0J1ZmZlcmZseSBOZXR3b3JrXShodHRwczovL3d3dy5idXR0ZXJmbHluZXRpbmMuY29tLykKLSBbQ2FjaGV0IEZpbmFuY2lhbF0oaHR0cDovL3d3dy5jYWNoZXRmaW5hbmNpYWwuY29tLykKLSBbY2FycG9sb10oaHR0cDovL3d3dy5jYXJwb2xvLmNvLykKLSBbQ2FydXNdKGh0dHBzOi8vd3d3LmNhcnVzLmNvbS8pCi0gW0Npc2NvXShodHRwOi8vd3d3LmNpc2NvLmNvbS8pCi0gW0Nsb3VkQm9vc3RdKGh0dHBzOi8vd3d3LkNsb3VkQm9vc3QuaW8vKQotIFtDbG91ZHNtaXRoXShodHRwczovL2Nsb3Vkc21pdGguaW8vKQotIFtDb25wbGVtZW50XShodHRwOi8vd3d3LmNvbnBsZW1lbnQuZGUvKQotIFtDdW1taW5zXShodHRwOi8vd3d3LmN1bW1pbnMuY29tLykKLSBbQ3VwaXhdKGh0dHA6Ly93d3cuY3VwaXguY29tKQotIFtEQkJlc3QgVGVjaG5vbG9naWVzXShodHRwczovL3d3dy5kYmJlc3QuY29tKQotIFtEZWNlbnRGb1hdKGh0dHA6Ly9kZWNlbnRmb3guY29tLykKLSBbRG9jUmFwdG9yXShodHRwczovL2RvY3JhcHRvci5jb20pCi0gW0RvY3VTaWduXShodHRwczovL3d3dy5kb2N1c2lnbi5jb20pCi0gW0VsYXN0aWNdKGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vKQotIFtFcmdvbl0oaHR0cDovL3d3dy5lcmdvbi5jaC8pCi0gW0RlbGwgRU1DXShodHRwczovL3d3dy5lbWMuY29tLykKLSBbZXVyZWthXShodHRwOi8vZXVyZS5qcC8pCi0gW2V2ZXJ5c3RvcnkudXNdKGh0dHA6Ly9ldmVyeXN0b3J5LnVzKQotIFtFeHBlY3RlZCBCZWhhdmlvcl0oaHR0cDovL3d3dy5leHBlY3RlZGJlaGF2aW9yLmNvbS8pCi0gW2Zhc2hpb25UcmFkZV0oaHR0cHM6Ly93d3cuZmFzaGlvbnRyYWRlLmNvbS8pCi0gW0Zhc3RseV0oaHR0cHM6Ly93d3cuZmFzdGx5LmNvbS8pCi0gW0ZJTlJBXShodHRwczovL2dpdGh1Yi5jb20vRklOUkFPUy9oZXJkLykKLSBbRmxhdF0oaHR0cHM6Ly9mbGF0LmlvKQotIFtGaW5kZXJdKGh0dHA6Ly9lbi5maW5kZXIucGwvKQotIFtGaXR3ZWxsXShodHRwczovL2ZpdHdlbGwuY28vKQotIFtGSCBNw7xuc3RlciAtIFVuaXZlcnNpdHkgb2YgQXBwbGllZCBTY2llbmNlc10oaHR0cDovL3d3dy5maC1tdWVuc3Rlci5kZSkKLSBbRm9ybUFQSV0oaHR0cHM6Ly9mb3JtYXBpLmlvLykKLSBbRm90aXRpb25dKGh0dHBzOi8vd3d3LmZvdGl0aW9uLmNvbS8pCi0gW0dlYXIgWmVybyBOZXR3b3JrXShodHRwczovL3d3dy5nZWFyemVyby5jYSkKLSBbR2VuZXJhbCBFbGVjdHJpY10oaHR0cHM6Ly93d3cuZ2UuY29tLykKLSBbR2VuZXN5cyAtIFB1cmVDbG91ZF0oaHR0cDovL2RldmVsb3Blci5teXB1cmVjbG91ZC5jb20vKQotIFtHZXJtaW44XShodHRwOi8vd3d3Lmdlcm1pbjguY29tKQotIFtHaWdhU3BhY2VzXShodHRwOi8vd3d3LmdpZ2FzcGFjZXMuY29tKQotIFtHTU8gUGVwYWJvXShodHRwczovL3BlcGFiby5jb20vZW4vKQotIFtnb1RyYW5zdmVyc2VdKGh0dHA6Ly93d3cuZ290cmFuc3ZlcnNlLmNvbS9hcGkpCi0gW0dyYXBoSG9wcGVyXShodHRwczovL2dyYXBoaG9wcGVyLmNvbS8pCi0gW0dyYXZpdGF0ZSBTb2x1dGlvbnNdKGh0dHA6Ly9ncmF2aXRhdGVzb2x1dGlvbnMuY29tLykKLSBbSGFzaERhdGFdKGh0dHA6Ly93d3cuaGFzaGRhdGEuY24vKQotIFtIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZV0oaHR0cHM6Ly9ocGUuY29tKQotIFtIaWdoIFRlY2hub2xvZ2llcyBDZW50ZXJdKGh0dHA6Ly9odGMtY3MuY29tKQotIFtIb290c3VpdGVdKGh0dHBzOi8vaG9vdHN1aXRlLmNvbS8pCi0gW0h1YXdlaSBDbG91ZF0oaHR0cDovL3d3dy5odWF3ZWljbG91ZC5jb20vZW4tdXMvcHJvZHVjdC9jcy5odG1sKQotIFtIdXNiYW5rZW5dKGh0dHBzOi8vd3d3Lmh1c2Jhbmtlbi5ubykKLSBbSUJNXShodHRwczovL3d3dy5pYm0uY29tKQotIFtJTVMgSGVhbHRoXShodHRwOi8vd3d3Lmltc2hlYWx0aC5jb20vZW4vc29sdXRpb24tYXJlYXMvdGVjaG5vbG9neS1hbmQtYXBwbGljYXRpb25zKQotIFtJbmRpdmlkdWFsIFN0YW5kYXJkIElWU10oaHR0cDovL3d3dy5pbmRpdmlkdWFsLXN0YW5kYXJkLmNvbSkKLSBbSU5TUElERV0oaHR0cDovL3d3dy5pbnNwaWRlLmNvbSkKLSBbSW50ZW50IEhRXShodHRwOi8vd3d3LmludGVudGhxLmNvbSkKLSBbS2FidWt1XShodHRwOi8vd3d3LmthYnVrdS5jby5qcC9lbikKLSBbS3VyaW9dKGh0dHBzOi8va3VyaW8uY28uaWQpCi0gW0t1cm9pXShodHRwOi8va3Vyb2l3ZWJkZXNpZ24uY29tLykKLSBbS3VhcnldKGh0dHBzOi8va3VhcnkuY29tLykKLSBbS3ViZXJuZXRlc10oaHR0cHM6Ly9rdWJlcm5ldGVzLmlvLykKLSBbTEFORFIgQXVkaW9dKGh0dHBzOi8vd3d3LmxhbmRyLmNvbS8pCi0gW0xhc2NhdXhdKGh0dHA6Ly93d3cubGFzY2F1eC5pdC8pCi0gW0xlYW5peF0oaHR0cDovL3d3dy5sZWFuaXgubmV0LykKLSBbTGVpY2EgR2Vvc3lzdGVtcyBBR10oaHR0cDovL2xlaWNhLWdlb3N5c3RlbXMuY29tKQotIFtMaXZlQWdlbnRdKGh0dHBzOi8vd3d3LmxhZGVzay5jb20vKQotIFtMWEwgVGVjaF0oaHR0cDovL2x4bHRlY2guY29tKQotIFtMeWZ0XShodHRwczovL3d3dy5seWZ0LmNvbS9kZXZlbG9wZXJzKQotIFtNYWlsTW9qb10oaHR0cHM6Ly9tYWlsbW9qby5uby8pCi0gW01ldGFzd2l0Y2hdKGh0dHBzOi8vd3d3Lm1ldGFzd2l0Y2guY29tLykKLSBbTWluZGVyYV0oaHR0cDovL21pbmRlcmEuY29tLykKLSBbTW9kdWxlUV0oaHR0cHM6Ly9tb2R1bGVxLmNvbSkKLSBbTXBvcml1bV0oaHR0cDovL21wb3JpdW0uY29tLykKLSBbTmV2ZXJmYWlsXShodHRwczovL25ldmVyZmFpbC5jb20vKQotIFtOZXhDYXBdKGh0dHA6Ly93d3cubmV4ZXNzLXNvbHV0aW9ucy5jb20vZnIvcGxhdGVmb3JtZS1pb3QvKQotIFtOaXRyb2JveF0oaHR0cHM6Ly93d3cubml0cm9ib3guY29tKQotIFtOb3J3ZWdpYW4gQWlyIFNodXR0bGVdKGh0dHBzOi8vd3d3Lm5vcndlZ2lhbi5jb20vKQotIFtOVFQgREFUQV0oaHR0cDovL3d3dy5udHRkYXRhLmNvbS8pCi0gW25WaXNvXShodHRwOi8vd3d3Lm52aXNvLmNoLykKLSBbTkhTRF0oaHR0cHM6Ly9kaWdpdGFsLm5ocy51ay8pCi0gW09raW9rXShodHRwczovL3d3dy5va2lvay5jb20pCi0gW09uZWRhdGFdKGh0dHA6Ly9vbmVkYXRhLm9yZykKLSBbT3BlbiBJbnRlcm5hdGlvbmFsIFN5c3RlbXNdKGh0dHBzOi8vb3BlbmludGwuY29tLykKLSBbT3JkZXJDbG91ZC5pb10oaHR0cDovL29yZGVyY2xvdWQuaW8pCi0gW09TRE5dKGh0dHBzOi8vb3Nkbi5qcCkKLSBbUGFnZXJEdXR5XShodHRwczovL3d3dy5wYWdlcmR1dHkuY29tKQotIFtQYWdlclRyZWVdKGh0dHBzOi8vcGFnZXJ0cmVlLmNvbSkKLSBbUGVwaXBvc3RdKGh0dHBzOi8vd3d3LnBlcGlwb3N0LmNvbSkKLSBbUGVhdGlvIFRlY2hdKGh0dHBzOi8vd3d3LnBlYXRpby50ZWNoKQotIFtQbGV4eGldKGh0dHA6Ly93d3cucGxleHhpLmNvbSkKLSBbUGl4b25leWVdKGh0dHA6Ly93d3cucGl4b25leWUuY29tLykKLSBbUG9zdEFmZmlsaWF0ZVByb10oaHR0cHM6Ly93d3cucG9zdGFmZmlsaWF0ZXByby5jb20vKQotIFtQcmFjdGljZUJpcmRdKGh0dHBzOi8vd3d3LnByYWN0aWNlYmlyZC5jb20vKQotIFtQcmlsbCBUZWNub2xvZ2lhXShodHRwOi8vd3d3LnByaWxsLmNvbS5icikKLSBbUHJva2FybWFdKGh0dHBzOi8vd3d3LnByb2thcm1hLmNvbSkKLSBbUUFkZXB0XShodHRwOi8vcWFkZXB0LmNvbS8pCi0gW1F1YW50aU1vZG9dKGh0dHBzOi8vcXVhbnRpbW8uZG8vKQotIFtRdWlja0Jsb3hdKGh0dHBzOi8vcXVpY2tibG94LmNvbS8pCi0gW1JhcGlkN10oaHR0cHM6Ly9yYXBpZDcuY29tLykKLSBbUmVkIEhhdF0oaHR0cHM6Ly93d3cucmVkaGF0LmNvbS8pCi0gW1JlbG9hZCEgQS9TXShodHRwczovL3JlbG9hZC5kay8pCi0gW1JFc3RvcmVdKGh0dHBzOi8vd3d3LnJlc3RvcmUuZXUpCi0gW1JFU1QgVW5pdGVkXShodHRwczovL3Jlc3R1bml0ZWQuY29tKQotIFtSZXZhdWx0IFPDoHJsXShodHRwOi8vcmV2YXVsdC5jaCkKLSBbUmlmZnluXShodHRwczovL3JpZmZ5bi5jb20pCi0gW1JveWFsIEJhbmsgb2YgQ2FuYWRhIChSQkMpXShodHRwOi8vd3d3LnJiYy5jb20vY2FuYWRhLmh0bWwpCi0gW1Nhcml0YXNhXShodHRwczovL3d3dy5zYXJpdGFzYS5jb20vKQotIFtTQVNdKGh0dHBzOi8vd3d3LnNhcy5jb20pCi0gW1NDT09QIFNvZnR3YXJlIEdtYkhdKGh0dHA6Ly93d3cuc2Nvb3Atc29mdHdhcmUuZGUpCi0gW1Nlc3Npb25NXShodHRwczovL3d3dy5zZXNzaW9ubS5jb20vKQotIFtTaGluZSBTb2x1dGlvbnNdKGh0dHBzOi8vc2hpbmVzb2x1dGlvbnMuY29tLykKLSBbU2ltcGZvbnldKGh0dHBzOi8vd3d3LnNpbXBmb255LmNvbS8pCi0gW1NrdXJ0XShodHRwOi8vd3d3LnNrdXJ0LmNvbSkKLSBbU2xhbWJ5XShodHRwczovL3d3dy5zbGFtYnkuY29tLykKLSBbU21hcnRSZWNydWl0ZXJzXShodHRwczovL3d3dy5zbWFydHJlY3J1aXRlcnMuY29tLykKLSBbc25hcENYXShodHRwczovL3NuYXBjeC5pbykKLSBbU1BJTkVOXShodHRwOi8vd3d3LnNwaW5lbi5jb20pCi0gW1Nwb25zb29dKGh0dHBzOi8vd3d3LnNwb25zb28uZGUpCi0gW1NSQ10oaHR0cHM6Ly93d3cuc3JjLnNpLykKLSBbU3RhcmRvZyBWZW50dXJlc10oaHR0cHM6Ly93d3cuc3RhcmRvZy5pbykKLSBbU3RpbmdyYXldKGh0dHA6Ly93d3cuc3RpbmdyYXkuY29tKQotIFtTdHlsZVJlY2lwZV0oaHR0cDovL3N0eWxlcmVjaXBlLmNvLmpwKQotIFtTdmVuc2thIFNwZWwgQUJdKGh0dHBzOi8vd3d3LnN2ZW5za2FzcGVsLnNlLykKLSBbU3dpdGNoIERhdGFiYXNlXShodHRwczovL3d3dy5zd2l0Y2hkYXRhYmFzZS5jb20vKQotIFtUYXNrRGF0YV0oaHR0cDovL3d3dy50YXNrZGF0YS5jb20vKQotIFtUaGlyZFdhdGNoLmFpXShodHRwczovL3d3dy50aGlyZHdhdGNoLmFpLykKLSBbVGhvdWdodFdvcmtzXShodHRwczovL3d3dy50aG91Z2h0d29ya3MuY29tKQotIFtUcGF5XShodHRwczovL3RwYXkuY29tKQotIFtUcmV4bGVdKGh0dHBzOi8vdHJleGxlLmNvbS8pCi0gW1Vwd29ya10oaHR0cDovL3Vwd29yay5jb20vKQotIFt1U2hpcF0oaHR0cHM6Ly93d3cudXNoaXAuY29tLykKLSBbVmFyaW9ncmFtYV0oaHR0cHM6Ly92YXJpb2dyYW1hLnB0KQotIFtWTXdhcmVdKGh0dHBzOi8vdm13YXJlLmNvbS8pCi0gW1ZpYXZpIFNvbHV0aW9ucyBJbmMuXShodHRwczovL3d3dy52aWF2aXNvbHV0aW9ucy5jb20pCi0gW1cuVVBdKGh0dHA6Ly93dXAuaHUvP3NpdGVMYW5nPWVuKQotIFtXZWFsdGhmcm9udF0oaHR0cHM6Ly93d3cud2VhbHRoZnJvbnQuY29tLykKLSBbV2ViZXZlciBHbWJIXShodHRwczovL3d3dy53ZWJldmVyLmRlLykKLSBbV0VYTyBBL1NdKGh0dHBzOi8vd3d3LndleG8uZGsvKQotIFtYU2t5XShodHRwOi8vd3d3Lnhza3kuY29tLykKLSBbWWVscF0oaHR0cDovL3d3dy55ZWxwLmNvbS8pCi0gW1phbGFuZG9dKGh0dHBzOi8vdGVjaC56YWxhbmRvLmNvbSkKLSBbWkVFRi5jb21dKGh0dHBzOi8vemVlZi5jb20vKQotIFt6b29wbHVzXShodHRwczovL3d3dy56b29wbHVzLmNvbS8pCi0gW1RyaWZvcmtdKGh0dHBzOi8vd3d3LnRyaWZvcmsuY29tLykKClByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMjAxMS8wOC8zMSAtIFtJbnRyb2R1Y2luZyBTd2FnZ2VyXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9mZWhndXkvaW50cm9kdWNpbmctc3dhZ2dlcikgYnkgW1RvbnkgVGFtXShodHRwczovL3R3aXR0ZXIuY29tL2ZlaGd1eSkKLSAyMDE0LzA1LzIyIC0gW1N3YWdnZXIgQVBJcyBmb3IgSHVtYW5zIGFuZCBSb2JvdHNdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L2ZlaGd1eS9zd2FnZ2VyLWFwaXMtZm9yLWh1bWFucy1hbmQtcm9ib3RzLWdsdWVjb24pIGJ5IFtUb255IFRhbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9mZWhndXkpIGF0IFtHbHVlY29uXShodHRwOi8vZ2x1ZWNvbi5jb20vKQotIDIwMTQvMTEvMTEgLSBbR2VuaWUgMi4wOiBTZWNvbmQgV2lzaCBHcmFudGVkIV0oaHR0cHM6Ly9tZWRpdW0uY29tL25ldGZsaXgtdGVjaGJsb2cvZ2VuaWUtMi0wLXNlY29uZC13aXNoLWdyYW50ZWQtZDg4OGQ3OTQ1NWM2KSBieSBbVG9tIEdpYW5vc10oaHR0cDovL3d3dy5saW5rZWRpbi5jb20vaW4vdGhvbWFzZ2lhbm9zLykgYW5kIFtBbWl0IFNoYXJtYV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL3B1Yi9hbWl0LXNoYXJtYS81LzE2My9hODMpIEAgW05ldGZsaXhdKGh0dHBzOi8vd3d3Lm5ldGZsaXguY29tLykgQmlnIERhdGEgUGxhdGZvcm0gVGVhbQotIDIwMTUvMDcvMjggLSBbRW5yaWNoaW5nIFJFU1RmdWwgU2VydmljZXMgd2l0aCBTd2FnZ2VyXShodHRwczovL2Jsb2cucGhpbGlwcGhhdWVyLmRlL2VucmljaGluZy1yZXN0ZnVsLXNlcnZpY2VzLXN3YWdnZXIvKSBieSBbUGhpbGlwcCBIYXVlcl0oaHR0cHM6Ly9ibG9nLnBoaWxpcHBoYXVlci5kZS8pCi0gMjAxNS8xMS8xMSAtIFtHZW5lcmF0ZSBjbGllbnQgc3R1YnMgJiBkb2N1bWVudCB5b3VyIFJFU1QtQVBJIHVzaW5nIFN3YWdnZXIgJiBTcHJpbmddKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9NDNHaEJiUC0tb0kpIGJ5IFtKb2hhbm5lcyBGaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkgQCBEZXZveHggQmVsZ2l1bSAyMDE1Ci0gMjAxNS8xMi8wMyAtIFvjgZPjgpPjgarjgavnsKHljZghIFN3YWdnZXIgQ29kZWdlbuOBruOCq+OCueOCv+ODnuOCpOOCul0oaHR0cDovL3FpaXRhLmNvbS9RdXJhbXkvaXRlbXMvYzU4M2YzMjEzZjBiNzdmZjFiYWMpIGJ5IFtRdXJhbXldKGh0dHA6Ly9xaWl0YS5jb20vUXVyYW15KQotIDIwMTYvMDEvMTIgLSBbR2VuZXJhdGUgY2xpZW50IHNpZGUgY29kZSB1c2luZyBTd2FnZ2VyIENvZGVnZW5dKGh0dHA6Ly9ybmF2YWdhbXV3YS5jb20vb3Blbi1zb3VyY2UvZ2VuZXJhdGUtY2xpZW50LXNpZGUtY29kZS11c2luZy1zd2FnZ2VyLWNvZGVnZW4vKSBieSBbUk5BVkFHQU1VV0FdKGh0dHA6Ly9ybmF2YWdhbXV3YS5jb20vYXV0aG9yL2FkbWluLykKLSAyMDE2LzAxLzE1IC0gW0hvdyB0byBlbmQgbWFudWFsIFJFU1QtQVBJIGNsaWVudCBjb2RpbmddKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UnpaUmRxWnA2T28pIGJ5IFtKb2hhbm5lcyBGaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkgQCBkb3RKUyAyMDE1Ci0gMjAxNi8wNC8yNyAtIFtBdXRvbWF0ZWQgUkVTVCBBUEkgRGV2ZWxvcG1lbnRdKGh0dHBzOi8veW9zLmlvLzIwMTYvMDQvMjcvYXV0b21hdGVkLWFwaS1kZXZlbG9wbWVudC8pIGJ5IFtZb3MgUmlhZHldKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi95b3NyaWFkeSkKLSAyMDE2LzA1LzI5IC0gW0dlbmVyYXRpbmcgSmF2YSBTcHJpbmctTVZDIGNvZGUgZnJvbSBTd2FnZ2VyIFNwZWNdKGh0dHBzOi8vd3d3LmNsaWFuei5jb20vMjAxNi8wNS8yOS9qYXZhLW12Yy1zd2FnZ2VyLWdlbi8pIGJ5IFtAaWNoYTAyNF0oaHR0cHM6Ly9naXRodWIuY29tL2ljaGEwMjQpCi0gMjAxNi8wNy8yMiAtIFtCdWlsZGluZyBNaWNyb3NlcnZpY2VzPyBIZXJlIGlzIHdoYXQgeW91IHNob3VsZCBrbm93XShodHRwczovL2Nsb3VkbmNvZGUuYmxvZy8yMDE2LzA3LzIyL21zYS1nZXR0aW5nLXN0YXJ0ZWQvKSBieSBTdW1pdCBNYWluZ2kKLSAyMDE2LzA4LzIzIC0gW0dlbmVyYXRpbmcgRHJlYW1mYWN0b3J5IENsaWVudCBTREtzIGJhc2VkIG9uIFN3YWdnZXIgQVBJIERlZmluaXRpb25zXShodHRwOi8vYmxvZy5kcmVhbWZhY3RvcnkuY29tL2dlbmVyYXRpbmctZHJlYW1mYWN0b3J5LWNsaWVudC1zZGtzLWJhc2VkLW9uLXN3YWdnZXItYXBpLWRlZmluaXRpb25zKSBieSBbUGhpbCBTY2h1bGVyXShodHRwczovL2dpdGh1Yi5jb20vcGhpbGljaW91cy8pCi0gMjAxNi8wOS8yOCAtIFsxIFVOQkVMSUVWQUJMRSBUUklDSyBUTyBDUkVBVEUgQU4gRUFTWSBUTyBDT05TVU1FIEFQSSBJTiAuTkVUXShodHRwczovL3N0YXBwLnNwYWNlLzEtc2ltcGxlLXRyaWNrLXRvLWNyZWF0ZS1hLWdvb2QtYXBpLWluLW5ldC8pIGJ5IFtQaW90ciBTdGFwcF0oaHR0cHM6Ly9zdGFwcC5zcGFjZS9hdXRob3IvcGlvdHItc3RhcHAvKQotIDIwMTYvMTAvMTAgLSBbVXNpbmcgc3dhZ2dlci1jb2RlZ2VuIHdpdGggTWFya2V0b10oaHR0cDovL2RldmVsb3BlcnMubWFya2V0by5jb20vYmxvZy91c2luZy1zd2FnZ2VyLWNvZGVnZW4td2l0aC1tYXJrZXRvLykgYnkgW0tlbm55IEVsa2luZ3Rvbl0oaHR0cDovL2RldmVsb3BlcnMubWFya2V0by5jb20vYmxvZy91c2luZy1zd2FnZ2VyLWNvZGVnZW4td2l0aC1tYXJrZXRvLykKLSAyMDE2LzEwLzEyIC0gW0Rlc2lnbmluZyBhIFN3YWdnZXIgQVBJXShodHRwczovL3Nvb2tvY2hlZmYuY29tL3Bvc3QvYXBpL3N3YWdnZXIvKSBieSBbS2V2aW4gU29va29jaGVmZl0oaHR0cHM6Ly9zb29rb2NoZWZmLmNvbS8pCi0gMjAxNi8xMS8wNSAtIFtIb3cgdG8gZ2VuZXJhdGUgYSBSRVNUIEFwcGxpY2F0aW9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWl5QzlCV01lNzVRKSBieSBbSm9oYW5uZXMgRmlhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlhbGEpIEAgRGV2RmVzdCBWaWVubmEgMjAxNgotIDIwMTYvMTEvMTAgLSBbQnVpbGRpbmcgYW4gQUVNIEFQSSBjbGllbnRzIGVjb3N5c3RlbV0oaHR0cDovL2Jsb2cuY2xpZmZhbm8uY29tLzIwMTYvMTEvMTAvYWRvYmUtbWFya2V0aW5nLWNsb3VkLWNvbW11bml0eS1leHBvLykgYnkgQ2xpZmZhbm8gU3ViYWdpbywgTWljaGFlbCBEaWVuZGVyLCBTdGVwaGVuIFNoaW0gZnJvbSBbU2hpbmUgU29sdXRpb25zXShodHRwczovL3NoaW5lc29sdXRpb25zLmNvbS8pIEAgW0Fkb2JlIE1hcmtldGluZyBDbG91ZCBDb21tdW5pdHkgRXhwbyAoQU1DQ0UpXShodHRwczovL3d3dy5tZWV0dXAuY29tL01lbGJvdXJuZS1BRU0tQ1EtTWVldHVwL2V2ZW50cy8yMzMzNjMxMDEvKQotIDIwMTYvMTEvMTggLSBbSG93IHRvIGdlbmVyYXRlIGEgUkVTVCBDWEYzIGFwcGxpY2F0aW9uIGZyb20gU3dhZ2dlci1Db250cmFjdF0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvam9oYW5uZXNfZmlhbGEvaG93LXRvLWdlbmVyYXRlLWEtcmVzdC1jeGYzLWFwcGxpY2F0aW9uLWZyb20tc3dhZ2dlci1hcGFjaGVjb25ldS0yMDE2KSBieSBbSm9oYW5uZXMgRmlhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlhbGEpIEAgQXBhY2hlQ29uRVUgMjAxNgotIDIwMTYvMTEvMjUgLSBbU3dhZ2dlciBDb2RlZ2VuIGZvciBTd2lmdDMgYW5kIE5vZGVKU10oaHR0cHM6Ly9ub3JtYW5kMS5naXRodWIuaW8vYmxvZy9zd2lmdC9zd2FnZ2VyL2NvZGVnZW4vMjAxNi8xMS8yNS9Td2FnZ2VyLUNvZGVnZW4tZm9yLVN3aWZ0My1hbmQtTm9kZUpTLmh0bWwpIGJ5IFtEYXZpZCBOb3JtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9ub3JtYW5kMSkKLSAyMDE2LzEyLzA4IC0gW0J1aWxkaW5nIGFuIEFQSSB3aXRoIFN3YWdnZXJdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UGJ3UVd3N3hTT00pCi0gMjAxNi8xMi8wOCAtIFtHZW5lcmF0ZSBjbGllbnQgc2lkZSBjb2RlIHVzaW5nIFN3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9jYXJyYS1sdWNpYS1sdGQuY28udWsvMjAxNi8xMi8wOC9nZW5lcmF0ZS1jbGllbnQtc2lkZS1jb2RlLXVzaW5nLXN3YWdnZXItY29kZWdlbi8pIGJ5IFt0aGVGZXJrZWxdKGh0dHBzOi8vY2FycmEtbHVjaWEtbHRkLmNvLnVrL2F1dGhvci90aGVmZXJrZWwvKQotIDIwMTcvMDEvMTYgLSBbWmVybyB0byBBUEkgaW4gNCBtaW51dGVzXShodHRwczovL2NpZHJibG9jay5naXRodWIuaW8vemVyby10by1hcGktaW4tNC1taW51dGVzLmh0bWwpIGJ5IFtCcmFkbGV5IEEuIFRob3JudG9uXShodHRwczovL2dpdGh1Yi5jb20vY2lkcmJsb2NrKQotIDIwMTcvMDIvMDkgLSBb44CMU3dhZ2dlcuOCkuWIqeeUqOOBl+OBn+aWsOimj+OCteODvOODk+OCuemWi+eZuuOAjeOBqOOBhOOBhuOCv+OCpOODiOODq+OBp+eZu+Wjh+OBl+OBpuadpeOBvuOBl+OBn10oaHR0cHM6Ly90ZWNoYmxvZy5yZWNvY2hva3UuanAvMTA1NSkgYnkgW3JlY290ZWNoXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9yZWNvdGVjaCkKLSAyMDE3LzAzLzAzIC0gW1N3YWdnZXIgQ29kZWdlbiDjga7kvb/jgYTmlrnjga7nsKHljZjjgaroqqzmmI7jgafjgZldKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL3dhZ3l1Mjk4L3N3YWdnZXItY29kZWdlbikgYnkgW3dhZ3l1Mjk4XShodHRwczovL2dpdGh1Yi5jb20vd2FneXUyOTgpCi0gMjAxNy8wMy8yNCAtIFtVc2luZyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIFRvIFB1dCBMeWZ0IFNESyBTdXBwb3J0IGluIHRoZSBGYXN0IExhbmVdKGh0dHBzOi8vbWVkaXVtLmNvbS9seWZ0LWRldmVsb3Blci1wbGF0Zm9ybS91c2luZy1vcGVuLWFwaS1zcGVjaWZpY2F0aW9uLXRvLXB1dC1seWZ0LXNkay1zdXBwb3J0LWluLXRoZS1mYXN0LWxhbmUtN2I2MjMyMThlNGVlKSBieSBbVmFsIFBvbG91Y2hraW5lXShodHRwczovL2dpdGh1Yi5jb20vdnBvbG91Y2hraW5lKQotIDIwMTcvMDQvMTMgLSBbQXV0b21hdGljYWxseSBHZW5lcmF0aW5nIHlvdXIgQVBJIENsaWVudCB3aXRoIFN3YWdnZXIgYW5kIFN3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1Fekt3aS11OWpRbykgYnkgW0plc3NlIENvbGxpc10oaHR0cHM6Ly9naXRodWIuY29tL2plc3NlZGMpIEAgTWVsYm91cm5lIENvY29haGVhZHMKLSAyMDE3LzA0LzI3IC0gW1N3YWdnZXIgQ29kZWdlbiDjga5QSFDlrp/oo4XjgYzjgYLjgb7jgorjgavjgqLjg6zjgaDjgaPjgZ/jga7jgafjgIHjg6njgqTjg5bjg6njg6roh6rkvZzjgZfjgablhazplovjgZfjgabjgb/jgZ9dKGh0dHA6Ly9xaWl0YS5jb20vaW11bmV3L2l0ZW1zLzJlOWM0NzJlMDA5N2UzMjlmMmNkKSBieSBbaW11bmV3XShodHRwOi8vcWlpdGEuY29tL2ltdW5ldykKLSAyMDE3LzA1LzE3IC0gW0Rpc2XDsW8gZGUgQVBJcyBjb24gT3BlbkFQSV0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvcGptb2xpbmEvZGlzZW8tZGUtYXBpcy1jb24tb3BlbmFwaSkgYnkgW1BlZHJvIEouIE1vbGluYV0oaHR0cHM6Ly9naXRodWIuY29tL3BqbW9saW5hKSBAIFtKU0RheUVTIDIwMTddKGh0dHA6Ly8yMDE3LmpzZGF5LmVzLykKLSAyMDE3LzA1LzIyIC0gW1ByZXNlbnRhdGlvbiBvZiB0aGUgVmVydC54LVN3YWdnZXIgcHJvamVjdF0oaHR0cDovL3ZlcnR4LmlvL2Jsb2cvcHJlc2VudGF0aW9uLW9mLXRoZS12ZXJ0LXgtc3dhZ2dlci1wcm9qZWN0LykgYnkgW0BwaGl6NzFdKGh0dHA6Ly9naXRodWIuY29tL3BoaXo3MSkKLSAyMDE3LzA1LzIyIC0gW0F1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyB5b3VyIEFQSSBmcm9tIGEgc3dhZ2dlciBmaWxlIHVzaW5nIGdyYWRsZV0oaHR0cHM6Ly93d3cuamNvcmUuY29tLzIwMTcvMDUvMjIvYXV0b21hdGljYWxseS1nZW5lcmF0aW5nLWFwaS11c2luZy1zd2FnZ2VyLWFuZC1ncmFkbGUvKSBieSBbRGVuaXogVHVyYW5dKGh0dHBzOi8vd3d3Lmpjb3JlLmNvbS9hdXRob3IvZGVuaXovKQotIDIwMTcvMDYvMjEgLSBbU3dhZ2dlciBQcmVzZW50YXRpb24gLSBXYXJzYXcgUnVieSBVc2VycyBHcm91cF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj11Q25uRE1GUUI4VSkgYnkgW0ByYWZhbHBldHJ5a2FdKGh0dHA6Ly9naXRodWIuY29tL3JhZmFscGV0cnlrYSkKLSAyMDE3LzA2LzI5IC0gW01ha2luZyBTREtzOiB0aGUgYmVzcG9rZSwgdGhlIGhvcGVmdWwgYW5kIHRoZSBnZW5lcmF0ZWRdKGh0dHBzOi8vZGV2cmVsLm5ldC9kZXZlbG9wZXItZXhwZXJpZW5jZS9tYWtpbmctc2Rrcy1iZXNwb2tlLWhvcGVmdWwtZ2VuZXJhdGVkKSBieSBbVHJpc3RhbiBTb2tvbF0oaHR0cHM6Ly9naXRodWIuY29tL3RyaXN0YW5zb2tvbCkgKFtTcXVhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVhcmUpKSBhdCBEZXZYY29uIDIwMTcKLSAyMDE3LzA3LzExIC0gW09wZW5BUEkgZGV2ZWxvcG1lbnQgd2l0aCBQeXRob25dKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L1Rha3Vyb1dhZGEvMjAxNzA3MTEtZXVyby1weXRob24yMDE3KSBieSBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKSBhdCBbRXVyb1B5dGhvbiAyMDE3XShodHRwczovL2VwMjAxNy5ldXJvcHl0aG9uLmV1L2VuLykKLSAyMDE3LzA3LzI5IC0gW0hvdyBTcXVhcmUgbWFrZXMgaXRzIFNES3NdKGh0dHBzOi8vbWVkaXVtLmNvbS9zcXVhcmUtY29ybmVyLWJsb2cvaG93LXNxdWFyZS1tYWtlcy1pdHMtc2Rrcy02YTBmZDdlYTRiMmQpIGJ5IFtUcmlzdGFuIFNva29sXShodHRwczovL2dpdGh1Yi5jb20vdHJpc3RhbnNva29sKSAoW1NxdWFyZV0oaHR0cHM6Ly9naXRodWIuY29tL3NxdWFyZSkpCi0gMjAxNy8wNy8zMSAtIFtIb3cgdG8gR2VuZXJhdGUgYSBEZXBsb3lhYmxlIFJFU1QgQ1hGMyBBcHBsaWNhdGlvbiBmcm9tIGEgU3dhZ2dlci1Db250cmFjdF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1nTTYzckpsVUhaUSkgYnkgW0pvaGFubmVzIEZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKSBAIFZveHhlZCBEYXlzIFZpZW5uYQotIDIwMTcvMDgvMTEgLSBbU3dhZ2dlciBDb2RlZ2VuIOiHquWKqOeUn+aIkFJldHJvZml0IOS7o+eggV0oaHR0cHM6Ly9qdWVqaW4uaW0vZW50cnkvNTk4ZDhlYjg2ZmI5YTAzYzUyNDU5ZTJhKSBieSBb5b6Q56OKXShodHRwOi8vd3d3LmppYW5zaHUuY29tL3UvNzkyYzczOGIzM2ZjKQotIDIwMTcvMDgvMjQgLSBbQVBJcyBGaXJzdF0oaHR0cHM6Ly9lbmdpbmVlcmluZy5zcXVhcmVzcGFjZS5jb20vYmxvZy8yMDE3L2FwaXMtZmlyc3QpIGJ5IFtyb3lrYWNob3VoXShodHRwczovL2dpdGh1Yi5jb20vcm95a2FjaG91aCkgKFtTcXVhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVhcmUpKQotIDIwMTcvMDgvMzEgLSBbQnJpbmdpbmcgSmVua2lucyBSZW1vdGUgQWNjZXNzIEFQSSBUbyBUaGUgTWFzc2VzXShodHRwOi8vYmxvZy5jbGlmZmFuby5jb20vMjAxNy8wOS8wMS9qZW5raW5zLXdvcmxkLTIwMTcvKSBieSBbQ2xpZmZhbm8gU3ViYWdpb10oaHR0cDovL2NsaWZmYW5vLmNvbSkgZnJvbSBbU2hpbmUgU29sdXRpb25zXShodHRwczovL3NoaW5lc29sdXRpb25zLmNvbS8pIEAgW0plbmtpbnMgV29ybGQgMjAxN10oaHR0cHM6Ly9qZW5raW5zd29ybGQyMDE2MjAxNy5zY2hlZC5jb20vKQotIDIwMTcvMDkvMDggLSBbU3dhZ2dlciBDb2RlZ2VuIOOBp+iHquWLleeUn+aIkOOBl+OBn+OCr+ODqeOCpOOCouODs+ODiFNES+OCkuS9v+OBhihpT1Pnt6gpXShodHRwOi8vYmxvZy50ZWNoaXVtLmpwL2VudHJ5LzIwMTcvMDkvMDgvMDcxNjUwKSBieSBba2Z1cnVlXShodHRwOi8vcHJvZmlsZS5oYXRlbmEubmUuanAva2Z1cnVlLykKLSAyMDE3LzA5LzA5IC0gW1N3YWdnZXIgQ29kZWdlbiDjgafoh6rli5XnlJ/miJDjgZfjgZ/jgq/jg6njgqTjgqLjg7Pjg4hTREvjgpLkvb/jgYYoUnhTd2lmdCDnt6gpXShodHRwOi8vYmxvZy50ZWNoaXVtLmpwL2VudHJ5LzIwMTcvMDkvMDkvMTEzMDAzKSBieSBba2Z1cnVlXShodHRwOi8vcHJvZmlsZS5oYXRlbmEubmUuanAva2Z1cnVlLykKLSAyMDE3LzA5LzA5IC0gW09wZW5BUEnjgpLliKnnlKjjgZfjgZ9QeXRob25XZWLjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7PplovnmbpdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L1Rha3Vyb1dhZGEvb3BlbmFwaXB5dGhvbndlYikgYnkgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikgYXQgW1B5Q29uIEpQIDIwMTddKGh0dHBzOi8vcHljb24uanAvMjAxNy9qYS8pCi0gMjAxNy8wOS8yMSAtIFtHZW5lcmF0aW5nIGFuIEVsYXN0aWMgQ2xvdWQgRW50ZXJwcmlzZSBDbGllbnRdKGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vYmxvZy9nZW5lcmF0aW5nLWFuLWVsYXN0aWMtY2xvdWQtZW50ZXJwcmlzZS1jbGllbnQpIGJ5IFtHcmVnIE1hcnpvdWthXShodHRwczovL2dpdGh1Yi5jb20vZ21hcnopIChbRWxhc3RpY10oaHR0cHM6Ly93d3cuZWxhc3RpYy5jby8pKQotIDIwMTcvMDkvMjYgLSBbSG93IHRvIFVzZSBJb1QgQXBwbGljYXRpb24gRW5hYmxlbWVudCBBcGkgSHViIEpTT04gRGVzY3JpcHRvciBpbiBQb3N0bWFuIGFuZCBIb3cgdG8gR2VuZXJhdGUgQ2xpZW50IENvZGVdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9yYWR1LXNpbWVuLykgYnkgW1JhZHUgU2ltZW5dKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9yYWR1LXNpbWVuLykgKFtTQVBdKGh0dHBzOi8vd3d3LnNhcC5jb20vKSkKLSAyMDE3LzA5LzI4IC0gW1N3YWdnZXIgQ29kZWdlbuOBpyBBUEnjgq/jg6njgqTjgqLjg7Pjg4hnZW0g6Ieq5YuV55Sf5oiQICNtM2t0XShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9qdW50YWtpL3N3YWdnZXItY29kZWdlbmRlLWFwaWt1cmFpYW50b2dlbS16aS1kb25nLXNoZW5nLWNoZW5nLW51bWJlci1tM2t0KSBieSBbSnVtcGVpIFRha2l5YXN1XShodHRwczovL2dpdGh1Yi5jb20vanVudGFraSkKLSAyMDE3LzA5LzMwIC0gW1N3YWdnZXLjga7jg4bjg7Pjg5fjg6zjg7zjg4jjgpLprZTmlLnpgKDjgZfjgZ/oqbEgI+a4i+iwt2phdmFdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L2ludDEyOC9zd2FnZ2VyLTgwMzA5MjI0KSBieSBbSGlkZXRha2UgSXdhdGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9pbnQxMjgpIChbTlRUIERBVEEgQ29ycG9yYXRpb25dKGh0dHA6Ly93d3cubnR0ZGF0YS5jb20vZ2xvYmFsL2VuLykpCi0gMjAxNy8xMC8wNCAtIFtFbnRlcnByaXNlLWZyaWVuZGx5IEphdmEgY2xpZW50IGZvciBNaWNyb3NvZnQgTWFjaGluZSBMZWFybmluZyBTZXJ2ZXJdKGh0dHBzOi8vYmxvZ3MubXNkbi5taWNyb3NvZnQuY29tL21sc2VydmVyLzIwMTcvMTAvMDQvZW50ZXJwcmlzZS1mcmllbmRseS1qYXZhLWNsaWVudC1mb3ItbWljcm9zb2Z0LW1hY2hpbmUtbGVhcm5pbmctc2VydmVyLykgYnkgW1ByYXRpayBQYWxuaXRrYXJdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9wcmF0aWtwYWxuaXRrYXIvKSAoW01pY3Jvc29mdF0oaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS8pKQotIDIwMTcvMTAvMDggLSBbR2VuZXJhdGluZyBhIFJFU1QgQWRhIGNsaWVudCB3aXRoIE9wZW5BUEkgYW5kIFN3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9ibG9nLnZhY3MuZnIvdmFjcy9ibG9ncy9wb3N0Lmh0bWw/cG9zdD0yMDE3LzEwLzA4L0dlbmVyYXRpbmctYS1SRVNULUFkYS1jbGllbnQtd2l0aC1PcGVuQVBJLWFuZC1Td2FnZ2VyLUNvZGVnZW4pIGJ5IFtTdGVwaGFuZSBDYXJyZXpdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGNhcnJleikKLSAyMDE3LzExLzA4IC0gW0EgQmVnaW5uZXIncyBHdWlkZSB0byBDb2RlIEdlbmVyYXRpb24gZm9yIFJFU1QgQVBJc10oaHR0cHM6Ly9ndW0uY28vc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyKShlQm9vaykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vdHdpdHRlci5jb20vd2luZzMyOCkKLSAyMDE3LzExLzE4IC0gWzEw5bm05YmN44Gu44Os44Ks44K344O844K344K544OG44Og44KS44K144O844OQ44O844K144Kk44OJS290bGlu44Gn44OV44Or44Oq44OL44Ol44O844Ki44Or44GX44Gm44GE44KL6KmxICNqanVnX2NjYyAjY2NjX2cyXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9tYWVoYXJpbi8xMG5pYW4tcWlhbi1mYWxzZXJlZ2FzaXNpc3V0ZW11d29zYWJhc2FpZG9rb3RsaW5kZWh1cnVyaW5peXVhcnVzaXRlaXJ1aHVhLW51bWJlci1qanVnLWNjYy1udW1iZXItY2NjLWcyKSBieSBbSGlkZW5vcmkgTWFlaGFyYV0oaHR0cHM6Ly9naXRodWIuY29tL21hZWhhcmluKQotIDIwMTcvMTEvMjEgLSBbc3dhZ2dlci1jb2RlZ2VuIOOBi+OCieecuuOCgeOCiyBTd2lmdDRdKGh0dHBzOi8vc3BlYWtlcmRlY2suY29tL2RfZGF0ZS9zd2FnZ2VyLWNvZGVnZW4ta2FyYXRpYW8tbWVydS1zd2lmdDQpIGJ5IFtEYWlraSBNYXRzdWRhdGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kLWRhdGUpCi0gMjAxNy8xMi8wNyAtIFtBUEktZHJpdmVuIGRldmVsb3BtZW50IHdpdGggT3BlbkFQSSBhbmQgU3dhZ2dlciwgUGFydCAyXShodHRwczovL3d3dy5pdHdvcmxkLmNvbS9hcnRpY2xlLzMxOTkxOTAvYXBpcy9hcGktZHJpdmVuLWRldmVsb3BtZW50LXdpdGgtb3BlbmFwaS1hbmQtc3dhZ2dlci1wYXJ0LTIuaHRtbCkgYnkgTWF0dGhldyBUeXNvbgotIDIwMTcvMTIvMjkgLSBbUkVTVCBBUElz5Luj56CB55Sf5oiQ5oyH5Y2XXShodHRwczovL2d1bXJvYWQuY29tL2wvc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyX3poKShlQm9vaykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSwgW1hpbiBNZW5nXShodHRwczovL2dpdGh1Yi5jb20veG1lbmcxKQotIDIwMTcvMTIvMjEgLSBbVXNpbmcgUHJvdG9jb2wgQnVmZmVyIHRvIEdlbmVyYXRlIFNESyBhdCBIb290c3VpdGVdKGh0dHA6Ly9jb2RlLmhvb3RzdWl0ZS5jb20vdXNpbmctcHJvdG9jb2wtYnVmZmVyLXRvLWdlbmVyYXRlLXNkay1hdC1ob29zdWl0ZS8/bGlwaT11cm4lM0FsaSUzQXBhZ2UlM0FkX2ZsYWdzaGlwM19tZXNzYWdpbmclM0J5NEFUejNTRFJYeXZYSkoxNExReXNRJTNEJTNEKSBieSBbSm95IFpoYW5nXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vam95OHpoYW5nLykKLSAyMDE4LzAxLzExIC0gW1N3YWdnZXIg5bel5YW3566x5LuL57uN5Y+K5Luj56CB6Ieq5Yqo55Sf5oiQ56S65L6LXShodHRwczovL2dpdGh1Yi5jb20vcWN0L3N3YWdnZXItZXhhbXBsZSkgYnkgW3FjdF0oaHR0cHM6Ly9naXRodWIuY29tL3FjdCkKLSAyMDE4LzAxLzE5IC0gW0dlbmVyb3dhbmllIGtvZHUgdXPFgnVnIFJFU1QgLSBwcnpld29kbmlrIGRsYSBwb2N6xIV0a3VqxIVjeWNoXShodHRwczovL2d1bS5jby9zd2FnZ2VyX2NvZGVnZW5fYmVnaW5uZXJfcGwpKGVCb29rKSBieSBbV2lsbGlhbSBDaGVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3dpbmczMjgpLCBbVG9tYXN6IFBydXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90b21wbHVzKSwgW0JhcnRlayBLcnl6YV0oaHR0cHM6Ly9naXRodWIuY29tL2Jrcnl6YSkKLSAyMDE4LzAyLzAzIC0gW1dyaXRpbmcgUkVTVCBBUElzIHdpdGggT3BlbkFQSSBhbmQgU3dhZ2dlciBBZGFdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L1N0ZXBoYW5lQ2FycmV6MS93cml0aW5nLXJlc3QtYXBpcy13aXRoLW9wZW5hcGktYW5kLXN3YWdnZXItYWRhL1N0ZXBoYW5lQ2FycmV6MS93cml0aW5nLXJlc3QtYXBpcy13aXRoLW9wZW5hcGktYW5kLXN3YWdnZXItYWRhKSBieSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopIGF0IFtGT1NERU0gMjAxOF0oaHR0cHM6Ly9mb3NkZW0ub3JnLzIwMTgpCi0gMjAxOC8wMi8yOCAtIFtPcGVuQVBJ4oCTQW4gZUJheSBQZXJzcGVjdGl2ZV0oaHR0cHM6Ly93d3cuZWJheWluYy5jb20vc3Rvcmllcy9ibG9ncy90ZWNoL29wZW5hcGktYW4tZWJheS1wZXJzcGVjdGl2ZS8pIGJ5IFNoZWtoYXIgQmFuZXJqZWUgKGVCYXkpCi0gMjAxOC8wMy8xNiAtIFtSRVNUIEFQSeOBruOBn+OCgeOBruOCs+ODvOODieeUn+aIkOWFpemWgF0oaHR0cHM6Ly9ndW1yb2FkLmNvbS9sL3N3YWdnZXJfY29kZWdlbl9iZWdpbm5lcl9qcCkgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSwgW+S4remHjuaageS6ul0oaHR0cHM6Ly9naXRodWIuY29tL2Fja2ludG9zaCksIFvlkoznlLDmi5PmnJddKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pCgojIFN3YWdnZXIgQ29kZWdlbiBDb3JlIFRlYW0KClN3YWdnZXIgQ29kZWdlbiBjb3JlIHRlYW0gbWVtYmVycyBhcmUgY29udHJpYnV0b3JzIHdobyBoYXZlIGJlZW4gbWFraW5nIHNpZ25pZmljYW50IGNvbnRyaWJ1dGlvbnMgKHJldmlldyBpc3N1ZXMsIGZpeCBidWdzLCBtYWtlIGVuaGFuY2VtZW50cywgZXRjKSB0byB0aGUgcHJvamVjdCBvbiBhIHJlZ3VsYXIgYmFzaXMuCgojIyBDb3JlIFRlYW0gTWVtYmVycwoKCiMjIFRlbXBsYXRlIENyZWF0b3IKSGVyZSBpcyBhIGxpc3Qgb2YgdGVtcGxhdGUgY3JlYXRvcnM6CiAqIEFQSSBDbGllbnRzOgogICAqIEFkYTogQHN0Y2FycmV6CiAgICogQWtrYS1TY2FsYTogQGNjaGFmZXIKICAgKiBBcGV4OiBAYXNuZWxsaW5nCiAgICogQmFzaDogQGJrcnl6YQogICAqIEMrKyBSRVNUOiBARGFuaWVsa3UxNQogICAqIEMjICguTkVUIDIuMCk6IEB3aG8KICAgKiBDIyAoLk5FVCBTdGFuZGFyZCAxLjMgKTogQEdyb25zYWsKICAgKiBDIyAoLk5FVCA0LjUgcmVmYWN0b3JlZCk6IEBqaW1zY2h1YmVydAogICAqIENsb2p1cmU6IEB4aGgKICAgKiBEYXJ0OiBAeWlzc2FjaGFyCiAgICogRGFydCAocmVmYWN0b3JlZCBpbiAyLjQuMCk6IEBqb2VybmFocmVucwogICAqIEVsaXhpcjogQG5pa3UKICAgKiBFbG06IEB0cmVubmVtYW4KICAgKiBFaWZmZWw6IEBqdmVsaWxsYQogICAqIEVybGFuZzogQHRzbG91Z2h0ZXIKICAgKiBHcm9vdnk6IEB2aWN0b3JnaXQKICAgKiBHbzogQHdpbmczMjgKICAgKiBHbyAocmV3cml0dGVuIGluIDIuMy4wKTogQGFudGloYXgKICAgKiBIYXNrZWxsIChodHRwLWNsaWVudCk6IEBqb25zY2hvbmluZwogICAqIEphdmEgKEZlaWduKTogQGRhdmlka2lzcwogICAqIEphdmEgKFJldHJvZml0KTogQDBsZWdnCiAgICogSmF2YSAoUmV0cm9maXQyKTogQGVtaWxpYW5vYm9uYXNzaQogICAqIEphdmEgKEplcnNleTIpOiBAeGhoCiAgICogSmF2YSAob2todHRwLWdzb24pOiBAeGhoCiAgICogSmF2YSAoUmVzdFRlbXBsYXRlKTogQG5icnVubwogICAqIEphdmEgKFJFU1RFYXN5KTogQGdheWF0aHJpZ3MKICAgKiBKYXZhIChWZXJ0eCk6IEBsb3Blc21jYwogICAqIEphdmEgKEdvb2dsZSBBUElzIENsaWVudCBMaWJyYXJ5KTogQGNoYXJsZXNjYXBwcwogICAqIEphdmEgKFJlc3QtYXNzdXJlZCk6IEB2aWNsb3Zza3kKICAgKiBKYXZhc2NyaXB0L05vZGVKUzogQGpmaWFsYQogICAqIEphdmFzY3JpcHQgKENsb3N1cmUtYW5ub3RhdGVkIEFuZ3VsYXIpIEBhY2hldzIyCiAgICogSk1ldGVyOiBAZGF2aWRraXNzCiAgICogS290bGluOiBAamltc2NodWJlcnQKICAgKiBMdWE6IEBkYXVybmltYXRvcgogICAqIFBlcmw6IEB3aW5nMzI4CiAgICogUEhQIChHdXp6bGUpOiBAYmFhcnRvc3oKICAgKiBQb3dlclNoZWxsOiBAYmVhdGNyYWNrZXIKICAgKiBSOiBAcmFtbm92CiAgICogUnVzdDogQGZhcmNhbGxlcgogICAqIFJ1c3QgKHJ1c3Qtc2VydmVyKTogQG1ldGFzd2l0Y2gKICAgKiBTY2FsYSAoc2NhbGF6ICYgaHR0cDRzKTogQHRicm93bjE5NzkKICAgKiBTd2lmdDogQHRrcXVibwogICAqIFN3aWZ0IDM6IEBoZXhlbG9uCiAgICogU3dpZnQgNDogQGVoeWNoZQogICAqIFR5cGVTY3JpcHQgKE5vZGUpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjEpOiAgQG1oYXJkb3JmCiAgICogVHlwZVNjcmlwdCAoRmV0Y2gpOiBAbGVvbnl1CiAgICogVHlwZVNjcmlwdCAoQW5ndWxhcjIpOiBAcm9uaS1mcmFudGNoaQogICAqIFR5cGVTY3JpcHQgKGpRdWVyeSk6IEBiaGVyaWxhCiAqIFNlcnZlciBTdHVicwogICAqIEFkYTogQHN0Y2FycmV6CiAgICogQyMgQVNQLk5FVDU6IEBqaW1zY2h1YmVydAogICAqIEMjIE5hbmN5Rlg6IEBtc3RlZmFuaXVrCiAgICogQysrIFBpc3RhY2hlOiBAc2VieW1pYW5vCiAgICogQysrIFJlc3RiZWQ6IEBzdGtyd29yawogICAqIEVybGFuZyBTZXJ2ZXI6IEBnYWxheGllCiAgICogR28gU2VydmVyOiBAZ3VvaHVhbmcKICAgKiBIYXNrZWxsIFNlcnZhbnQ6IEBhbGdhcwogICAqIEphdmEgTVNGNEo6IEBzYW5qZWV3YS1tYWxhbGdvZGEKICAgKiBKYXZhIFNwcmluZyBCb290OiBAZGl5ZnIKICAgKiBKYXZhIFVuZGVydG93OiBAc3RldmVodQogICAqIEphdmEgUGxheSBGcmFtZXdvcms6IEBKRkNvdGUKICAgKiBKYXZhIFBLTVNUOiBAYW5zaHUyMTg1IEBzYW5zaHVtYW4gQHJrdW1hci1wayBAbmlub2RwaWxsYWkKICAgKiBKQVgtUlMgUmVzdEVhc3k6IEBjaGFtZWxlb244MgogICAqIEpBWC1SUyBDWEY6IEBoaXZlc2hpcAogICAqIEpBWC1SUyBDWEYgKENESSk6IEBuaWNrY21heW5hcmQKICAgKiBKQVgtUlMgUmVzdEVhc3kgKEpCb3NzIEVBUCk6IEBqZmlhbGEKICAgKiBLb3RsaW46IEBqaW1zY2h1YmVydAogICAqIFBIUCBMdW1lbjogQGFiY3N1bgogICAqIFBIUCBTbGltOiBAamZhc3RuYWNodAogICAqIFBIUCBTeW1mb255OiBAa3NtMgogICAqIFBIUCBaZW5kIEV4cHJlc3NpdmUgKHdpdGggUGF0aCBIYW5kbGVyKTogQEFydGljdXMKICAgKiBSdWJ5IG9uIFJhaWxzIDU6IEB6bHgKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgRmluY2g6IEBqaW1zY2h1YmVydAogICAqIFNjYWxhIExhZ29tOiBAZ21rdW1hcjIwMDUKICogRG9jdW1lbnRhdGlvbgogICAqIEhUTUwgRG9jIDI6IEBqaGl0Y2hjb2NrCiAgICogQ29uZmx1ZW5jZSBXaWtpOiBAamhpdGNoY29jawogKiBDb25maWd1cmF0aW9uCiAgICogQXBhY2hlMjogQHN0a3J3b3JrCgojIyBIb3cgdG8gam9pbiB0aGUgY29yZSB0ZWFtCgpIZXJlIGFyZSB0aGUgcmVxdWlyZW1lbnRzIHRvIGJlY29tZSBhIGNvcmUgdGVhbSBtZW1iZXI6Ci0gcmFuayB3aXRoaW4gdG9wIDUwIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vZ3JhcGhzL2NvbnRyaWJ1dG9ycwogIC0gdG8gY29udHJpYnV0ZSwgaGVyZSBhcmUgc29tZSBnb29kIFtzdGFydGluZyBwb2ludHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vaXNzdWVzP3E9aXMlM0FvcGVuK2lzJTNBaXNzdWUrbGFiZWwlM0ElMjJoZWxwK3dhbnRlZCUyMikKLSByZWd1bGFyIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHByb2plY3QKICAtIGFib3V0IDMgaG91cnMgcGVyIHdlZWsKICAtIGZvciBjb250cmlidXRpb24sIGl0IGNhbiBiZSBhZGRyZXNzaW5nIGlzc3VlcywgcmV2aWV3aW5nIFBScyBzdWJtaXR0ZWQgYnkgb3RoZXJzLCBzdWJtaXR0aW5nIFBSIHRvIGZpeCBidWdzIG9yIG1ha2UgZW5oYW5jZW1lbnRzLCBldGMKCiBUbyBiZWNvbWUgYSBUZW1wbGF0ZSBDcmVhdG9yLCBzaW1wbHkgc3VibWl0IGEgUFIgZm9yIG5ldyBBUEkgY2xpZW50IChlLmcuIFJ1c3QsIEVsaXhpcikgb3Igc2VydmVyIHN0dWIgKGUuZy4gUnVieSBHcmFwZSkgZ2VuZXJhdG9yLgoKIyBTd2FnZ2VyIENvZGVnZW4gVGVjaG5pY2FsIENvbW1pdHRlZQoKTWVtYmVycyBvZiB0aGUgU3dhZ2dlciBDb2RlZ2VuIHRlY2huaWNhbCBjb21taXR0ZWUgc2hvdWxkZXIgdGhlIGZvbGxvd2luZyByZXNwb25zaWJpbGl0aWVzOgoKLSBQcm92aWRlcyBndWlkYW5jZSBhbmQgZGlyZWN0aW9uIHRvIG90aGVyIHVzZXJzCi0gUmV2aWV3cyBwdWxsIHJlcXVlc3RzIGFuZCBpc3N1ZXMKLSBJbXByb3ZlcyB0aGUgZ2VuZXJhdG9yIGJ5IG1ha2luZyBlbmhhbmNlbWVudHMsIGZpeGluZyBidWdzIG9yIHVwZGF0aW5nIGRvY3VtZW50YXRpb25zCi0gU2V0cyB0aGUgdGVjaG5pY2FsIGRpcmVjdGlvbiBvZiB0aGUgZ2VuZXJhdG9yCgpXaG8gaXMgZWxpZ2libGU/IFRob3NlIHdobyB3YW50IHRvIGpvaW4gbXVzdCBoYXZlIGF0IGxlYXN0IDMgUFJzIG1lcmdlZCBpbnRvIGEgZ2VuZXJhdG9yLiAoRXhjZXB0aW9ucyBjYW4gYmUgZ3JhbnRlZCB0byB0ZW1wbGF0ZSBjcmVhdG9ycyBvciBjb250cmlidXRvcnMgd2hvIGhhdmUgbWFkZSBhIGxvdCBvZiBjb2RlIGNoYW5nZXMgd2l0aCBsZXNzIHRoYW4gMyBtZXJnZWQgUFJzKQoKIyMgTWVtYmVycyBvZiBUZWNobmljYWwgQ29tbWl0dGVlCgp8IExhbmd1YWdlcyAgICAgfCBNZW1iZXIgKGpvaW4gZGF0ZSkgfAp8Oi0tLS0tLS0tLS0tLS18Oi0tLS0tLS0tLS0tLS18CnwgQWN0aW9uU2NyaXB0IHwgICAgICB8CnwgQWRhIHwgQHN0Y2FycmV6ICgyMDE4LzAyKSB8CnwgQW5kcm9pZCB8ICB8CnwgQXBleCAgfCAgICAgfAp8IEJhc2ggIHwgQGtlbmpvbmVzLWNpc2NvICgyMDE3LzA5KSB8CnwgQysrICAgICAgfCB8CnwgQyMgICAgICAgIHwgQG1hbmRyZWFuICgyMDE3LzA4KSB8CnwgQ2xvanVyZSAgIHwgIHwKfCBEYXJ0ICAgICAgfCBAaXJjZWNobyAoMjAxNy8wNykgfAp8IEVpZmZlbCAgICB8IHwKfCBFbGl4aXIgICAgfCAgfAp8IEVsbSAgICAgICB8ICB8CnwgRXJsYW5nICAgIHwgfAp8IEdyb292eSAgICB8ICB8CnwgR28gICAgICAgIHwgfAp8IEhhc2tlbGwgICB8IHwKfCBKYXZhICAgICAgfCB8CnwgS290bGluICAgICB8IHwKfCBMdWEgICAgIHwgfAp8IE5vZGVKUy9KYXZhc2NyaXB0IHwgQENvZGVOaW5qYWkgKDIwMTcvMDcpIHwKfCBPYmpDICAgICAgfCAgfAp8IFBlcmwgICAgICB8IHwKfCBQSFAgICAgICB8IEBka2FybG92aSAoMjAxNy8wNykgQG1hbmRyZWFuICgyMDE3LzA4KSB8CnwgUHl0aG9uICAgfCBAa2Vuam9uZXMtY2lzY28gKDIwMTcvMTEpfAp8IFIgICAgICAgIHwgIHwKfCBSdWJ5ICAgICAgfCBAemx4ICgyMDE3LzA5KSB8CnwgUnVzdCAgICAgIHwgfAp8IFNjYWxhICAgICB8IHwKfCBTd2lmdCAgICAgfCBAZWh5Y2hlICgyMDE3LzA4KSB8CnwgVHlwZVNjcmlwdCB8IHwKCiMgU2VjdXJpdHkgY29udGFjdAoKUGxlYXNlIGRpc2Nsb3NlIGFueSBzZWN1cml0eS1yZWxhdGVkIGlzc3VlcyBvciB2dWxuZXJhYmlsaXRpZXMgYnkgZW1haWxpbmcgW3NlY3VyaXR5QHN3YWdnZXIuaW9dKG1haWx0bzpzZWN1cml0eUBzd2FnZ2VyLmlvKSwgaW5zdGVhZCBvZiB1c2luZyB0aGUgcHVibGljIGlzc3VlIHRyYWNrZXIuCgojIExpY2Vuc2UgaW5mb3JtYXRpb24gb24gR2VuZXJhdGVkIENvZGUKClRoZSBTd2FnZ2VyIENvZGVnZW4gcHJvamVjdCBpcyBpbnRlbmRlZCBhcyBhIGJlbmVmaXQgZm9yIHVzZXJzIG9mIHRoZSBTd2FnZ2VyIC8gT3BlbiBBUEkgU3BlY2lmaWNhdGlvbi4gIFRoZSBwcm9qZWN0IGl0c2VsZiBoYXMgdGhlIFtMaWNlbnNlXSgjbGljZW5zZSkgYXMgc3BlY2lmaWVkLiAgSW4gYWRkaXRpb24sIHBsZWFzZSB1bmRlcnN0YW5kIHRoZSBmb2xsb3dpbmcgcG9pbnRzOgoKKiBUaGUgdGVtcGxhdGVzIGluY2x1ZGVkIHdpdGggdGhpcyBwcm9qZWN0IGFyZSBzdWJqZWN0IHRvIHRoZSBbTGljZW5zZV0oI2xpY2Vuc2UpLgoqIEdlbmVyYXRlZCBjb2RlIGlzIGludGVudGlvbmFsbHkgX25vdF8gc3ViamVjdCB0byB0aGUgcGFyZW50IHByb2plY3QgbGljZW5zZQoKV2hlbiBjb2RlIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgcHJvamVjdCwgaXQgc2hhbGwgYmUgY29uc2lkZXJlZCAqKkFTIElTKiogYW5kIG93bmVkIGJ5IHRoZSB1c2VyIG9mIHRoZSBzb2Z0d2FyZS4gIFRoZXJlIGFyZSBubyB3YXJyYW50aWVzLS1leHByZXNzZWQgb3IgaW1wbGllZC0tZm9yIGdlbmVyYXRlZCBjb2RlLiAgWW91IGNhbiBkbyB3aGF0IHlvdSB3aXNoIHdpdGggaXQsIGFuZCBvbmNlIGdlbmVyYXRlZCwgdGhlIGNvZGUgaXMgeW91ciByZXNwb25zaWJpbGl0eSBhbmQgc3ViamVjdCB0byB0aGUgbGljZW5zaW5nIHRlcm1zIHRoYXQgeW91IGRlZW0gYXBwcm9wcmlhdGUuCgojIExpY2Vuc2UKCmBgYApDb3B5cmlnaHQgMjAxOSBTbWFydEJlYXIgU29mdHdhcmUKCkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwp5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBbYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMF0oaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQoKVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQpkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLApXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZApsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KYGBgCg==
- readmeEtag: '"e7cbb82477ffa2303ff2522d82016afefcd1b96e00c90933702143a751ed1f67"'
- readmeLastModified: Tue, 21 Nov 2023 11:47:59 GMT
+ IyA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1dDLWxvZ28tY2xyLnBuZyIgaGVpZ2h0PSI4MCI+CgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vamVua2lucy9idWlsZC5zdmc/am9iVXJsPWh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb3JlLW1hc3Rlci1qYXZhLTgpCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyL2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci8pCgpbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL3ZpZXcvT1NTJTIwLSUyMEphdmEvam9iL29zcy1zd2FnZ2VyLWNvZGVnZW4tbWFzdGVyLWphdmE3L2JhZGdlL2ljb24/c3ViamVjdD1qZW5raW5zJTIwYnVpbGQlMjAtJTIwamF2YSUyMDcpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3Rlci1qYXZhNy8pCgotIE1hc3RlciAoMi40LjM5LVNOQVBTSE9UKTogWyFbSmF2YSBUZXN0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2plbmtpbnMvYnVpbGQuc3ZnP2pvYlVybD1odHRwczovL2plbmtpbnMuc3dhZ2dlci5pby9qb2Ivb3NzLXN3YWdnZXItY29kZWdlbi1tYXN0ZXIpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLW1hc3RlcikKWyFbV2luZG93cyBUZXN0XShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2dpdGh1Yi9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4/YnJhbmNoPW1hc3RlciZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3Qvc3dhZ2dlcmh1Yi1ib3Qvc3dhZ2dlci1jb2RlZ2VuKQoKLSAzLjAuNTItU05BUFNIT1Q6ICBbIVtKYXZhIFRlc3RdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vamVua2lucy9idWlsZC5zdmc/am9iVXJsPWh0dHBzOi8vamVua2lucy5zd2FnZ2VyLmlvL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLTMpXShodHRwczovL2plbmtpbnMuc3dhZ2dlci5pby92aWV3L09TUyUyMC0lMjBKYXZhL2pvYi9vc3Mtc3dhZ2dlci1jb2RlZ2VuLTMpClshW1dpbmRvd3MgVGVzdF0oaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9naXRodWIvc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuP2JyYW5jaD0zLjAuMCZzdmc9dHJ1ZSZwYXNzaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBPSyZmYWlsaW5nVGV4dD1XaW5kb3dzJTIwVGVzdCUyMC0lMjBGYWlscyldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3Qvc3dhZ2dlcmh1Yi1ib3Qvc3dhZ2dlci1jb2RlZ2VuKQoKCltNYXZlbiBDZW50cmFsXShodHRwczovL21hdmVuLWJhZGdlcy5oZXJva3VhcHAuY29tL21hdmVuLWNlbnRyYWwvaW8uc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tcHJvamVjdCkKCjpzdGFyOjpzdGFyOjpzdGFyOiBJZiB5b3Ugd291bGQgbGlrZSB0byBjb250cmlidXRlLCBwbGVhc2UgcmVmZXIgdG8gW2d1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKSBhbmQgYSBsaXN0IG9mIFtvcGVuIHRhc2tzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpLjpzdGFyOjpzdGFyOjpzdGFyOgoKOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byB0aGUgW1dpa2kgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpKSBhbmQgW0ZBUV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpL0ZBUSkgOm5vdGVib29rX3dpdGhfZGVjb3JhdGl2ZV9jb3ZlcjoKCjp3YXJuaW5nOiBJZiB0aGUgT3BlbkFQSS9Td2FnZ2VyIHNwZWMgaXMgb2J0YWluZWQgZnJvbSBhbiB1bnRydXN0ZWQgc291cmNlLCBwbGVhc2UgbWFrZSBzdXJlIHlvdSd2ZSByZXZpZXdlZCB0aGUgc3BlYyBiZWZvcmUgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuIHRvIGdlbmVyYXRlIHRoZSBBUEkgY2xpZW50LCBzZXJ2ZXIgc3R1YiBvciBkb2N1bWVudGF0aW9uIGFzIFtjb2RlIGluamVjdGlvbl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29kZV9pbmplY3Rpb24pIG1heSBvY2N1ciA6d2FybmluZzoKCjpyb2NrZXQ6IFByb2R1Y3RIdW50OiBodHRwczovL3Byb2R1Y3RodW50LmNvbS9wb3N0cy9zd2FnZ2VyLWNvZGVnZW4gOnJvY2tldDoKCjpub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXI6IFRoZSBlQm9vayBbQSBCZWdpbm5lcidzIEd1aWRlIHRvIENvZGUgR2VuZXJhdGlvbiBmb3IgUkVTVCBBUElzXShodHRwczovL2d1bXJvYWQuY29tL2wvc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyKSBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGJlZ2lubmVycy4KCiMjIFZlcnNpb25pbmcKCioqTk9URToqKiB2ZXJzaW9uIDIuWCAoYGlvLnN3YWdnZXJgKSBhbmQgMy5YIChgaW8uc3dhZ2dlci5jb2RlZ2VuLnYzYCkgaGF2ZSAqKmRpZmZlcmVudCoqIGdyb3VwIGlkcy4KCjIuWCBhbmQgMy5YIHZlcnNpb24gbGluZXMgb2YgU3dhZ2dlciBDb2RlZ2VuIGFyZSBhdmFpbGFibGU7IDIuWCAoYG1hc3RlcmAgYnJhbmNoKSBzdXBwb3J0cyBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyLAp3aGlsZSAzLlggKFtgMy4wLjBgIGJyYW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wKSkgc3VwcG9ydHMgT3BlbkFQSSB2ZXJzaW9uIDMgKGFuZCB2ZXJzaW9uIDIgdmlhIHNwZWMgY29udmVyc2lvbiB0byB2ZXJzaW9uIDMpLgpbT25saW5lIGdlbmVyYXRvciBvZiB2ZXJzaW9uIDMuWF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlLzMuMC4wI29ubGluZS1nZW5lcmF0b3JzKSBzdXBwb3J0cyBib3RoIGdlbmVyYXRpb24gZnJvbSBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyIChieSB1c2luZyBlbmdpbmUgKyBnZW5lcmF0b3JzIG9mIDIuWCkgYW5kIHZlcnNpb24gMyBzcGVjaWZpY2F0aW9ucy4KCgoqKk5PVEU6KiogdGhpcyBkb2N1bWVudCByZWZlcnMgdG8gdmVyc2lvbiAyLlgsIGNoZWNrIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApIGZvciAzLlguCgoKIyMjIFN3YWdnZXIgQ29kZWdlbiAyLlggKFtgbWFzdGVyYCBicmFuY2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS9tYXN0ZXIpKQoKU3dhZ2dlciBDb2RlZ2VuIDIuWCBzdXBwb3J0cyBTd2FnZ2VyL09wZW5BUEkgdmVyc2lvbiAyLgoKZ3JvdXAgaWQ6IGBpby5zd2FnZ2VyYAptYXZlbiBjZW50cmFsIChtYXZlbiBwbHVnaW4pOiBodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0L2lvLnN3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLW1hdmVuLXBsdWdpbgoKZGVwZW5kZW5jeSBleGFtcGxlOgoKYGBgCjxkZXBlbmRlbmN5PgogICAgPGdyb3VwSWQ+aW8uc3dhZ2dlcjwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnN3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4yLjQuMzg8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgojIyMgU3dhZ2dlciBDb2RlZ2VuIDMuWCAoW2AzLjAuMGAgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApKQoKU3dhZ2dlciBDb2RlZ2VuIDMuWCBzdXBwb3J0cyBPcGVuQVBJIHZlcnNpb24gMyAoYW5kIHZlcnNpb24gMiB2aWEgc3BlYyBjb252ZXJzaW9uIHRvIHZlcnNpb24gMykKW09ubGluZSBnZW5lcmF0b3Igb2YgdmVyc2lvbiAzLlhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8zLjAuMCNvbmxpbmUtZ2VuZXJhdG9ycykgc3VwcG9ydHMgYm90aCBnZW5lcmF0aW9uIGZyb20gU3dhZ2dlci9PcGVuQVBJIHZlcnNpb24gMiAoYnkgdXNpbmcgZW5naW5lICsgZ2VuZXJhdG9ycyBvZiAyLlgpIGFuZCB2ZXJzaW9uIDMgc3BlY2lmaWNhdGlvbnMuCgpncm91cCBpZDogYGlvLnN3YWdnZXIuY29kZWdlbi52M2AKbWF2ZW4gY2VudHJhbDogaHR0cHM6Ly9tdm5yZXBvc2l0b3J5LmNvbS9hcnRpZmFjdC9pby5zd2FnZ2VyLmNvZGVnZW4udjMKCmRlcGVuZGVuY3kgZXhhbXBsZToKCmBgYAo8ZGVwZW5kZW5jeT4KICAgIDxncm91cElkPmlvLnN3YWdnZXIuY29kZWdlbi52MzwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnN3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4zLjAuNTI8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KYGBgCgoKCiMjIE92ZXJ2aWV3ClRoaXMgaXMgdGhlIFN3YWdnZXIgQ29kZWdlbiBwcm9qZWN0LCB3aGljaCBhbGxvd3MgZ2VuZXJhdGlvbiBvZiBBUEkgY2xpZW50IGxpYnJhcmllcyAoU0RLIGdlbmVyYXRpb24pLCBzZXJ2ZXIgc3R1YnMgYW5kIGRvY3VtZW50YXRpb24gYXV0b21hdGljYWxseSBnaXZlbiBhbiBbT3BlbkFQSSBTcGVjXShodHRwczovL2dpdGh1Yi5jb20vT0FJL09wZW5BUEktU3BlY2lmaWNhdGlvbikuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBsYW5ndWFnZXMvZnJhbWV3b3JrcyBhcmUgc3VwcG9ydGVkOgoKLSAqKkFQSSBjbGllbnRzKio6ICoqQWN0aW9uU2NyaXB0KiosICoqQWRhKiosICoqQXBleCoqLCAqKkJhc2gqKiwgKipDIyoqICgubmV0IDIuMCwgMy41IG9yIGxhdGVyKSwgKipDKysqKiAoY3BwcmVzdCwgUXQ1LCBUaXplbiksICoqQ2xvanVyZSoqLCAqKkRhcnQqKiwgKipFbGl4aXIqKiwgKipFbG0qKiwgKipFaWZmZWwqKiwgKipFcmxhbmcqKiwgKipHbyoqLCAqKkdyb292eSoqLCAqKkhhc2tlbGwqKiAoaHR0cC1jbGllbnQsIFNlcnZhbnQpLCAqKkphdmEqKiAoSmVyc2V5MS54LCBKZXJzZXkyLngsIE9rSHR0cCwgUmV0cm9maXQxLngsIFJldHJvZml0Mi54LCBGZWlnbiwgUmVzdFRlbXBsYXRlLCBSRVNURWFzeSwgVmVydHgsIEdvb2dsZSBBUEkgQ2xpZW50IExpYnJhcnkgZm9yIEphdmEsIFJlc3QtYXNzdXJlZCksICoqS290bGluKiosICoqTHVhKiosICoqTm9kZS5qcyoqIChFUzUsIEVTNiwgQW5ndWxhckpTIHdpdGggR29vZ2xlIENsb3N1cmUgQ29tcGlsZXIgYW5ub3RhdGlvbnMpICoqT2JqZWN0aXZlLUMqKiwgKipQZXJsKiosICoqUEhQKiosICoqUG93ZXJTaGVsbCoqLCAqKlB5dGhvbioqLCAqKlIqKiwgKipSdWJ5KiosICoqUnVzdCoqIChydXN0LCBydXN0LXNlcnZlciksICoqU2NhbGEqKiAoYWtrYSwgaHR0cDRzLCBzd2FnZ2VyLWFzeW5jLWh0dHBjbGllbnQpLCAqKlN3aWZ0KiogKDIueCwgMy54LCA0LngsIDUueCksICoqVHlwZXNjcmlwdCoqIChBbmd1bGFyMS54LCBBbmd1bGFyMi54LCBGZXRjaCwgalF1ZXJ5LCBOb2RlKQotICoqU2VydmVyIHN0dWJzKio6ICoqQWRhKiosICoqQyMqKiAoQVNQLk5FVCBDb3JlLCBOYW5jeUZ4KSwgKipDKysqKiAoUGlzdGFjaGUsIFJlc3RiZWQpLCAqKkVybGFuZyoqLCAqKkdvKiosICoqSGFza2VsbCoqIChTZXJ2YW50KSwgKipKYXZhKiogKE1TRjRKLCBTcHJpbmcsIFVuZGVydG93LCBKQVgtUlM6IENESSwgQ1hGLCBJbmZsZWN0b3IsIFJlc3RFYXN5LCBQbGF5IEZyYW1ld29yaywgW1BLTVNUXShodHRwczovL2dpdGh1Yi5jb20vUHJvS2FybWEtSW5jL3BrbXN0LWdldHRpbmctc3RhcnRlZC1leGFtcGxlcykpLCAqKktvdGxpbioqLCAqKlBIUCoqIChMdW1lbiwgU2xpbSwgU2lsZXgsIFtTeW1mb255XShodHRwczovL3N5bWZvbnkuY29tLyksIFtaZW5kIEV4cHJlc3NpdmVdKGh0dHBzOi8vZ2l0aHViLmNvbS96ZW5kZnJhbWV3b3JrL3plbmQtZXhwcmVzc2l2ZSkpLCAqKlB5dGhvbioqIChGbGFzayksICoqTm9kZUpTKiosICoqUnVieSoqIChTaW5hdHJhLCBSYWlsczUpLCAqKlJ1c3QqKiAocnVzdC1zZXJ2ZXIpLCAqKlNjYWxhKiogKFtGaW5jaF0oaHR0cHM6Ly9naXRodWIuY29tL2ZpbmFnbGUvZmluY2gpLCBbTGFnb21dKGh0dHBzOi8vZ2l0aHViLmNvbS9sYWdvbS9sYWdvbSksIFNjYWxhdHJhKQotICoqQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9ycyoqOiAqKkhUTUwqKiwgKipDb25mbHVlbmNlIFdpa2kqKgotICoqQ29uZmlndXJhdGlvbiBmaWxlcyoqOiBbKipBcGFjaGUyKipdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pCi0gKipPdGhlcnMqKjogKipKTWV0ZXIqKgoKQ2hlY2sgb3V0IFtPcGVuQVBJLVNwZWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgT3BlbkFQSSBwcm9qZWN0LgoKIyBUYWJsZSBvZiBjb250ZW50cwoKICAtIFtWZXJzaW9uaW5nXSgjdmVyc2lvbmluZykKICAtIFtPdmVydmlld10oI292ZXJ2aWV3KQogIC0gW1RhYmxlIG9mIENvbnRlbnRzXSgjdGFibGUtb2YtY29udGVudHMpCiAgLSBJbnN0YWxsYXRpb24KICAgIC0gW0NvbXBhdGliaWxpdHldKCNjb21wYXRpYmlsaXR5KQogICAgLSBbUHJlcmVxdWlzaXRlc10oI3ByZXJlcXVpc2l0ZXMpCiAgICAgIC0gW09TIFggVXNlcnNdKCNvcy14LXVzZXJzKQogICAgLSBbQnVpbGRpbmddKCNidWlsZGluZykKICAgIC0gW0RvY2tlcl0oI2RvY2tlcikKICAgICAgLSBbRGV2ZWxvcG1lbnQgaW4gRG9ja2VyXSgjZGV2ZWxvcG1lbnQtaW4tZG9ja2VyKQogICAgICAtIFtSdW4gZG9ja2VyIGluIFZhZ3JhbnRdKCNydW4tZG9ja2VyLWluLXZhZ3JhbnQpCiAgICAgIC0gW1B1YmxpYyBwcmUtYnVpbHQgRG9ja2VyIGltYWdlc10oI3B1YmxpYy1wcmUtYnVpbHQtZG9ja2VyLWltYWdlcykKICAgIC0gW0hvbWVicmV3XSgjaG9tZWJyZXcpCiAgLSBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gR2VuZXJhdG9ycwogICAgLSBbVG8gZ2VuZXJhdGUgYSBzYW1wbGUgY2xpZW50IGxpYnJhcnldKCN0by1nZW5lcmF0ZS1hLXNhbXBsZS1jbGllbnQtbGlicmFyeSkKICAgIC0gW0dlbmVyYXRpbmcgbGlicmFyaWVzIGZyb20geW91ciBzZXJ2ZXJdKCNnZW5lcmF0aW5nLWxpYnJhcmllcy1mcm9tLXlvdXItc2VydmVyKQogICAgLSBbTW9kaWZ5aW5nIHRoZSBjbGllbnQgbGlicmFyeSBmb3JtYXRdKCNtb2RpZnlpbmctdGhlLWNsaWVudC1saWJyYXJ5LWZvcm1hdCkKICAgIC0gW01ha2luZyB5b3VyIG93biBjb2RlZ2VuIG1vZHVsZXNdKCNtYWtpbmcteW91ci1vd24tY29kZWdlbi1tb2R1bGVzKQogICAgLSBbV2hlcmUgaXMgSmF2YXNjcmlwdD8/P10oI3doZXJlLWlzLWphdmFzY3JpcHQpCiAgICAtIFtHZW5lcmF0aW5nIGEgY2xpZW50IGZyb20gbG9jYWwgZmlsZXNdKCNnZW5lcmF0aW5nLWEtY2xpZW50LWZyb20tbG9jYWwtZmlsZXMpCiAgICAtIFtDdXN0b21pemluZyB0aGUgZ2VuZXJhdG9yXSgjY3VzdG9taXppbmctdGhlLWdlbmVyYXRvcikKICAgIC0gW1ZhbGlkYXRpbmcgeW91ciBPcGVuQVBJIFNwZWNdKCN2YWxpZGF0aW5nLXlvdXItb3BlbmFwaS1zcGVjKQogICAgLSBbR2VuZXJhdGluZyBkeW5hbWljIGh0bWwgYXBpIGRvY3VtZW50YXRpb25dKCNnZW5lcmF0aW5nLWR5bmFtaWMtaHRtbC1hcGktZG9jdW1lbnRhdGlvbikKICAgIC0gW0dlbmVyYXRpbmcgc3RhdGljIGh0bWwgYXBpIGRvY3VtZW50YXRpb25dKCNnZW5lcmF0aW5nLXN0YXRpYy1odG1sLWFwaS1kb2N1bWVudGF0aW9uKQogICAgLSBbVG8gYnVpbGQgYSBzZXJ2ZXIgc3R1Yl0oI3RvLWJ1aWxkLWEtc2VydmVyLXN0dWIpCiAgICAtIFtUbyBidWlsZCB0aGUgY29kZWdlbiBsaWJyYXJ5XSgjdG8tYnVpbGQtdGhlLWNvZGVnZW4tbGlicmFyeSkKICAtIFtXb3JrZmxvdyBJbnRlZ3JhdGlvbl0oI3dvcmtmbG93LWludGVncmF0aW9uKQogICAgLSBbTWF2ZW4gSW50ZWdyYXRpb25dKCNtYXZlbi1pbnRlZ3JhdGlvbikKICAgIC0gW0dyYWRsZSBJbnRlZ3JhdGlvbl0oI2dyYWRsZS1pbnRlZ3JhdGlvbikKICAtIFtHaXRodWIgSW50ZWdyYXRpb25dKCNnaXRodWItaW50ZWdyYXRpb24pCiAgLSBbT25saW5lIEdlbmVyYXRvcnNdKCNvbmxpbmUtZ2VuZXJhdG9ycykKICAtIFtHdWlkZWxpbmVzIGZvciBDb250cmlidXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2d1aWRlbGluZXMtZm9yLWNvbnRyaWJ1dGluZykKICAtIFtDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuXSgjY29tcGFuaWVzcHJvamVjdHMtdXNpbmctc3dhZ2dlci1jb2RlZ2VuKQogIC0gW1ByZXNlbnRhdGlvbnMvVmlkZW9zL1R1dG9yaWFscy9Cb29rc10oI3ByZXNlbnRhdGlvbnN2aWRlb3N0dXRvcmlhbHNib29rcykKICAtIFtTd2FnZ2VyIENvZGVnZW4gQ29yZSBUZWFtXSgjc3dhZ2dlci1jb2RlZ2VuLWNvcmUtdGVhbSkKICAtIFtTd2FnZ2VyIENvZGVnZW4gVGVjaG5pY2FsIENvbW1pdHRlZV0oI3N3YWdnZXItY29kZWdlbi10ZWNobmljYWwtY29tbWl0dGVlKQogIC0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKCiMjIENvbXBhdGliaWxpdHkKVGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBoYXMgdW5kZXJnb25lIDMgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gIFRoZSBTd2FnZ2VyIENvZGVnZW4gcHJvamVjdCBoYXMgdGhlIGZvbGxvd2luZyBjb21wYXRpYmlsaXRpZXMgd2l0aCB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uOgoKU3dhZ2dlciBDb2RlZ2VuIFZlcnNpb24gICAgfCBSZWxlYXNlIERhdGUgfCBPcGVuQVBJIFNwZWMgY29tcGF0aWJpbGl0eSB8IE5vdGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLQozLjAuNTMtU05BUFNIT1QgKGN1cnJlbnQgMy4wLjAsIHVwY29taW5nIG1pbm9yIHJlbGVhc2UpIFtTTkFQU0hPVF0oaHR0cHM6Ly9vc3Muc29uYXR5cGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cy9pby9zd2FnZ2VyL2NvZGVnZW4vdjMvc3dhZ2dlci1jb2RlZ2VuLWNsaS8zLjAuNTMtU05BUFNIT1QvKXwgVEJEICAgICAgICAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNaW5vciByZWxlYXNlClszLjAuNTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNTIpICgqKmN1cnJlbnQgc3RhYmxlKiopIHwgMjAyMy0xMi0zMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNTIpClszLjAuNTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNTEpIHwgMjAyMy0xMS0yMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNTEpClszLjAuNTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNTApIHwgMjAyMy0xMC0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC41MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNTApClszLjAuNDldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDkpIHwgMjAyMy0xMC0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40OV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDkpClszLjAuNDhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDgpIHwgMjAyMy0xMC0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40OF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDgpClszLjAuNDddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDcpIHwgMjAyMy0xMC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40N10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDcpClszLjAuNDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDYpIHwgMjAyMy0wNi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40Nl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDYpClszLjAuNDVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDUpIHwgMjAyMy0wNi0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40NV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDUpClszLjAuNDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDQpIHwgMjAyMy0wNS0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40NF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDQpClszLjAuNDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDMpIHwgMjAyMy0wNS0xNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40M10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDMpClszLjAuNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDIpIHwgMjAyMy0wNC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40Ml0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDIpClszLjAuNDFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDEpIHwgMjAyMy0wMi0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40MV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDEpClszLjAuNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNDApIHwgMjAyMy0wMS0yNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40MF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNDApClszLjAuMzldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzkpIHwgMjAyMy0wMS0yNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzkpClszLjAuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzgpIHwgMjAyMy0wMS0yMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzgpClszLjAuMzddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzcpIHwgMjAyMy0wMS0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzcpClszLjAuMzZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzYpIHwgMjAyMi0xMS0xMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzYpClszLjAuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzUpIHwgMjAyMi0wOC0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzUpClszLjAuMzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzQpIHwgMjAyMi0wNC0xMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzQpClszLjAuMzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzMpIHwgMjAyMi0wMi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzMpClszLjAuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzIpIHwgMjAyMi0wMS0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzIpClszLjAuMzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzEpIHwgMjAyMS0xMi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzEpClszLjAuMzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMzApIHwgMjAyMS0xMS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMzApClszLjAuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjkpIHwgMjAyMS0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjkpClszLjAuMjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjgpIHwgMjAyMS0wOS0zMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjgpClszLjAuMjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjcpIHwgMjAyMS0wNi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjcpClszLjAuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjYpIHwgMjAyMS0wNS0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjYpClszLjAuMjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjUpIHwgMjAyMS0wMy0wNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjUpClszLjAuMjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjQpIHwgMjAyMC0xMi0yOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjQpClszLjAuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjMpIHwgMjAyMC0xMS0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjMpClszLjAuMjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjIpIHwgMjAyMC0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjIpClszLjAuMjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjEpIHwgMjAyMC0wNy0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjEpClszLjAuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMjApIHwgMjAyMC0wNS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4yMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMjApClszLjAuMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTkpIHwgMjAyMC0wNC0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTkpClszLjAuMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTgpIHwgMjAyMC0wMi0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTgpClszLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTcpIHwgMjAyMC0wMi0yMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTcpClszLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTYpIHwgMjAyMC0wMS0xNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTYpClszLjAuMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTUpIHwgMjAyMC0wMS0wMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTUpClszLjAuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTQpIHwgMjAxOS0xMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTQpClszLjAuMTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTMpIHwgMjAxOS0xMC0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTMpClszLjAuMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTIpIHwgMjAxOS0xMC0xNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTIpClszLjAuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTEpIHwgMjAxOS0wOC0yNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTEpClszLjAuMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMTApIHwgMjAxOS0wNy0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC4xMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuMTApClszLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC45KSB8IDIwMTktMDYtMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuOSkKWzMuMC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjgpIHwgMjAxOS0wNC0yNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC44KQpbMy4wLjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuNykgfCAyMDE5LTAzLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjcpClszLjAuNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC41KSB8IDIwMTktMDItMTggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wICAgfCBbdGFnIHYzLjAuNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YzLjAuNSkKWzMuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92My4wLjQpIHwgMjAxOS0wMS0xNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgICB8IFt0YWcgdjMuMC40XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjMuMC40KQpbMy4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMykgfCAyMDE4LTExLTMwICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAsIDMuMCAgIHwgW3RhZyB2My4wLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92My4wLjMpClszLjAuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4yKXwgMjAxOC0xMC0xOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNaW5vciByZWxlYXNlClszLjAuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjMuMC4xKXwgMjAxOC0xMC0wNSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wLCAzLjAgfCBNYWpvciByZWxlYXNlIHdpdGggYnJlYWtpbmcgY2hhbmdlcwpbMy4wLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YzLjAuMCl8IDIwMTgtMDktMDYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCwgMy4wIHwgTWFqb3IgcmVsZWFzZSB3aXRoIGJyZWFraW5nIGNoYW5nZXMKMi40LjM5LVNOQVBTSE9UIChjdXJyZW50IG1hc3RlciwgdXBjb21pbmcgbWlub3IgcmVsZWFzZSkgW1NOQVBTSE9UXShodHRwczovL29zcy5zb25hdHlwZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzL2lvL3N3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLWNsaS8yLjQuMzktU05BUFNIT1QvKXwgVEJEICAgICAgICAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBNaW5vciByZWxlYXNlClsyLjQuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzgpICgqKmN1cnJlbnQgc3RhYmxlKiopIHwgMjAyMy0xMi0yOSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM4KQpbMi40LjM3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjM3KSB8IDIwMjMtMTEtMjEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjM3XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zNykKWzIuNC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zNikgfCAyMDIzLTEwLTI2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzYpClsyLjQuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzUpIHwgMjAyMy0xMC0yNiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjM1KQpbMi40LjM0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjM0KSB8IDIwMjMtMTAtMTkgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjM0XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zNCkKWzIuNC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zMykgfCAyMDIzLTEwLTAyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzMpClsyLjQuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMzIpIHwgMjAyMy0wNS0xNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjMyKQpbMi40LjMxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjMxKSB8IDIwMjMtMDQtMDIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjMxXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4zMSkKWzIuNC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4zMCkgfCAyMDIzLTAyLTE2ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4zMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMzApClsyLjQuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjkpIHwgMjAyMi0xMS0xMCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI5KQpbMi40LjI4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI4KSB8IDIwMjItMDgtMTUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI4XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yOCkKWzIuNC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yNykgfCAyMDIyLTA0LTEyICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjcpClsyLjQuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjYpIHwgMjAyMi0wMi0wNyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjI2KQpbMi40LjI1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjI1KSB8IDIwMjEtMTItMjggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjI1XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yNSkKWzIuNC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yNCkgfCAyMDIxLTExLTE4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjQpClsyLjQuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjMpIHwgMjAyMS0xMC0wOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIzKQpbMi40LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjIyKSB8IDIwMjEtMDktMzAgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjIyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4yMikKWzIuNC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yMSkgfCAyMDIxLTA2LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4yMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMjEpClsyLjQuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMjApIHwgMjAyMS0wNS0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIwKQpbMi40LjE5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE5KSB8IDIwMjEtMDMtMDQgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE5XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xOSkKWzIuNC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xOCkgfCAyMDIwLTEyLTI5ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTgpClsyLjQuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTcpIHwgMjAyMC0xMS0wMiAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE3KQpbMi40LjE2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjE2KSB8IDIwMjAtMTAtMDUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjE2XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xNikKWzIuNC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xNSkgfCAyMDIwLTA3LTI4ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xNV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTUpClsyLjQuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTQpIHwgMjAyMC0wNS0xOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjE0KQpbMi40LjEzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEzKSB8IDIwMjAtMDQtMDIgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjEzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xMykKWzIuNC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xMikgfCAyMDIwLTAxLTE1ICAgfCAxLjAsIDEuMSwgMS4yLCAyLjAgICB8IFt0YWcgdjIuNC4xMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuMTIpClsyLjQuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vcmVsZWFzZXMvdGFnL3YyLjQuMTEpIHwgMjAyMC0wMS0wMyAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjExKQpbMi40LjEwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjEwKSB8IDIwMTktMTEtMTYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjEwXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvdjIuNC4xMCkKWzIuNC45XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjkpIHwgMjAxOS0xMC0xNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuOV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuOSkKWzIuNC44XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjgpIHwgMjAxOS0wOC0yNCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuOF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuOCkKWzIuNC43XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjcpIHwgMjAxOS0wNy0xMSAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuN10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNykKWzIuNC42XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjYpIHwgMjAxOS0wNi0yOCAgIHwgMS4wLCAxLjEsIDEuMiwgMi4wICAgfCBbdGFnIHYyLjQuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3YyLjQuNikKWzIuNC41XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3JlbGVhc2VzL3RhZy92Mi40LjUpICB8IDIwMTktMDQtMjUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjUpClsyLjQuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC40KSB8IDIwMTktMDMtMjYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjQpClsyLjQuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4yKSB8IDIwMTktMDItMTggICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjIpClsyLjQuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4xKSB8IDIwMTktMDEtMTYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjEpClsyLjQuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuNC4wKSB8IDIwMTgtMTEtMzAgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi40LjApClsyLjMuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMy4xKSB8IDIwMTgtMDEtMTcgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4zLjEpClsyLjMuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMy4wKSB8IDIwMTctMTItMjEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4zLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4zLjApClsyLjIuM10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4zKSB8IDIwMTctMDctMTUgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjMpClsyLjIuMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4yKSB8IDIwMTctMDMtMDEgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjIpClsyLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMi4xKSB8IDIwMTYtMDgtMDcgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4yLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4yLjEpClsyLjEuNl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9yZWxlYXNlcy90YWcvdjIuMS42KSB8IDIwMTYtMDQtMDYgICB8IDEuMCwgMS4xLCAxLjIsIDIuMCAgIHwgW3RhZyB2Mi4xLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS92Mi4xLjYpCjIuMC4xNyAgICAgICAgICAgICAgICAgICAgIHwgMjAxNC0wOC0yMiAgIHwgMS4xLCAxLjIgICAgICAgICAgICAgfCBbdGFnIHYyLjAuMTddKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vdHJlZS8yLjAuMTcpCjEuMC40ICAgICAgICAgICAgICAgICAgICAgIHwgMjAxMi0wNC0xMiAgIHwgMS4wLCAxLjEgICAgICAgICAgICAgfCBbdGFnIHYxLjAuNF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi90cmVlL3N3YWdnZXItY29kZWdlbl8yLjkuMS0xLjEpCgojIyMgUHJlcmVxdWlzaXRlcwpJZiB5b3UncmUgbG9va2luZyBmb3IgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiwgeW91IGNhbiBncmFiIGl0IGRpcmVjdGx5IGZyb20gTWF2ZW4ub3JnIChKYXZhIDggcnVudGltZSBhdCBhIG1pbmltdW0pOgoKYGBgc2gKIyBEb3dubG9hZCBjdXJyZW50IHN0YWJsZSAyLngueCBicmFuY2ggKFN3YWdnZXIgYW5kIE9wZW5BUEkgdmVyc2lvbiAyKQp3Z2V0IGh0dHBzOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMi9pby9zd2FnZ2VyL3N3YWdnZXItY29kZWdlbi1jbGkvMi40LjM4L3N3YWdnZXItY29kZWdlbi1jbGktMi40LjM4LmphciAtTyBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphcgoKamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIGhlbHAKCiMgRG93bmxvYWQgY3VycmVudCBzdGFibGUgMy54LnggYnJhbmNoIChPcGVuQVBJIHZlcnNpb24gMykKd2dldCBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vc3dhZ2dlci9jb2RlZ2VuL3YzL3N3YWdnZXItY29kZWdlbi1jbGkvMy4wLjUyL3N3YWdnZXItY29kZWdlbi1jbGktMy4wLjUyLmphciAtTyBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphcgoKamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIC0taGVscApgYGAKCkZvciBXaW5kb3dzIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgW3dnZXRdKGh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQvcGFja2FnZXMvd2dldC5odG0pIG9yIHlvdSBjYW4gdXNlIEludm9rZS1XZWJSZXF1ZXN0IGluIFBvd2VyU2hlbGwgKDMuMCspLCBlLmcuIGBJbnZva2UtV2ViUmVxdWVzdCAtT3V0RmlsZSBzd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIvaW8vc3dhZ2dlci9zd2FnZ2VyLWNvZGVnZW4tY2xpLzIuNC4zOC9zd2FnZ2VyLWNvZGVnZW4tY2xpLTIuNC4zOC5qYXJgCgpPbiBhIG1hYywgaXQncyBldmVuIGVhc2llciB3aXRoIGBicmV3YDoKYGBgc2gKYnJldyBpbnN0YWxsIHN3YWdnZXItY29kZWdlbgpgYGAKClRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgbmVlZCB0aGUgZm9sbG93aW5nIGluc3RhbGxlZCBhbmQgYXZhaWxhYmxlIGluIHlvdXIgYCRQQVRIOmAKCiogW0phdmEgMTErXShodHRwOi8vamF2YS5vcmFjbGUuY29tKQoKKiBbQXBhY2hlIG1hdmVuIDMuNi4yIG9yIGdyZWF0ZXJdKGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnLykKCiMjIyMgT1MgWCBVc2VycwpEb24ndCBmb3JnZXQgdG8gaW5zdGFsbCBKYXZhIDExKy4KCkV4cG9ydCBgSkFWQV9IT01FYCBpbiBvcmRlciB0byB1c2UgdGhlIHN1cHBvcnRlZCBKYXZhIHZlcnNpb246CmBgYHNoCmV4cG9ydCBKQVZBX0hPTUU9YC91c3IvbGliZXhlYy9qYXZhX2hvbWUgLXYgMTFgCmV4cG9ydCBQQVRIPSR7SkFWQV9IT01FfS9iaW46JFBBVEgKYGBgCgojIyMgQnVpbGRpbmcKCkFmdGVyIGNsb25pbmcgdGhlIHByb2plY3QsIHlvdSBjYW4gYnVpbGQgaXQgZnJvbSBzb3VyY2Ugd2l0aCB0aGlzIGNvbW1hbmQ6CmBgYHNoCm12biBjbGVhbiBwYWNrYWdlCmBgYAoKSWYgeW91IGRvbid0IGhhdmUgbWF2ZW4gaW5zdGFsbGVkLCB5b3UgbWF5IGRpcmVjdGx5IHVzZSB0aGUgaW5jbHVkZWQgW21hdmVuIHdyYXBwZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvbWF2ZW4td3JhcHBlciksIGFuZCBidWlsZCB3aXRoIHRoZSBjb21tYW5kOgpgYGBzaAouL212bncgY2xlYW4gcGFja2FnZQpgYGAKCiMjIyBIb21lYnJldwoKVG8gaW5zdGFsbCwgcnVuIGBicmV3IGluc3RhbGwgc3dhZ2dlci1jb2RlZ2VuYAoKSGVyZSBpcyBhbiBleGFtcGxlIHVzYWdlOgpgYGBzaApzd2FnZ2VyLWNvZGVnZW4gZ2VuZXJhdGUgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiAtbCBydWJ5IC1vIC90bXAvdGVzdC8KYGBgCgojIyMgRG9ja2VyCgojIyMjIERldmVsb3BtZW50IGluIGRvY2tlcgoKWW91IGNhbiB1c2UgYHJ1bi1pbi1kb2NrZXIuc2hgIHRvIGRvIGFsbCBkZXZlbG9wbWVudC4gVGhpcyBzY3JpcHQgbWFwcyB5b3VyIGxvY2FsIHJlcG9zaXRvcnkgdG8gYC9nZW5gCmluIHRoZSBkb2NrZXIgY29udGFpbmVyLiBJdCBhbHNvIG1hcHMgYH4vLm0yL3JlcG9zaXRvcnlgIHRvIHRoZSBhcHByb3ByaWF0ZSBjb250YWluZXIgbG9jYXRpb24uCgpUbyBleGVjdXRlIGBtdm4gcGFja2FnZWA6CgpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbgpjZCBzd2FnZ2VyLWNvZGVnZW4KLi9ydW4taW4tZG9ja2VyLnNoIG12biBwYWNrYWdlCmBgYAoKQnVpbGQgYXJ0aWZhY3RzIGFyZSBub3cgYWNjZXNzaWJsZSBpbiB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5LgoKT25jZSBidWlsdCwgYHJ1bi1pbi1kb2NrZXIuc2hgIHdpbGwgYWN0IGFzIGFuIGV4ZWN1dGFibGUgZm9yIHN3YWdnZXItY29kZWdlbi1jbGkuIFRvIGdlbmVyYXRlIGNvZGUsIHlvdSdsbCBuZWVkIHRvIG91dHB1dCB0byBhIGRpcmVjdG9yeSB1bmRlciBgL2dlbmAgKGUuZy4gYC9nZW4vb3V0YCkuIEZvciBleGFtcGxlOgoKYGBgc2gKLi9ydW4taW4tZG9ja2VyLnNoIGhlbHAgIyBFeGVjdXRlcyAnaGVscCcgY29tbWFuZCBmb3Igc3dhZ2dlci1jb2RlZ2VuLWNsaQouL3J1bi1pbi1kb2NrZXIuc2ggbGFuZ3MgIyBFeGVjdXRlcyAnbGFuZ3MnIGNvbW1hbmQgZm9yIHN3YWdnZXItY29kZWdlbi1jbGkKLi9ydW4taW4tZG9ja2VyLnNoIC9nZW4vYmluL2dvLXBldHN0b3JlLnNoICAjIEJ1aWxkcyB0aGUgR28gY2xpZW50Ci4vcnVuLWluLWRvY2tlci5zaCBnZW5lcmF0ZSAtaSBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi9zcmMvdGVzdC9yZXNvdXJjZXMvMl8wL3BldHN0b3JlLnlhbWwgXAogICAgLWwgZ28gLW8gL2dlbi9vdXQvZ28tcGV0c3RvcmUgLURwYWNrYWdlTmFtZT1wZXRzdG9yZSAjIGdlbmVyYXRlcyBnbyBjbGllbnQsIG91dHB1dHMgbG9jYWxseSB0byAuL291dC9nby1wZXRzdG9yZQpgYGAKIyMjIyBTdGFuZGFsb25lIGdlbmVyYXRvciBEZXZlbG9wbWVudCBpbiBkb2NrZXIKClNlZSBbc3RhbmRhbG9uZSBnZW5lcmF0b3IgZGV2ZWxvcG1lbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvc3RhbmRhbG9uZS1nZW4tZGV2L3N0YW5kYWxvbmUtZ2VuZXJhdG9yLWRldmVsb3BtZW50Lm1kKQoKIyMjIyBSdW4gRG9ja2VyIGluIFZhZ3JhbnQKUHJlcmVxdWlzaXRlOiBpbnN0YWxsIFtWYWdyYW50XShodHRwczovL3d3dy52YWdyYW50dXAuY29tL2Rvd25sb2Fkcy5odG1sKSBhbmQgW1ZpcnR1YWxCb3hdKGh0dHBzOi8vd3d3LnZpcnR1YWxib3gub3JnL3dpa2kvRG93bmxvYWRzKS4KIGBgYHNoCmdpdCBjbG9uZSBodHRwOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0CmNkIHN3YWdnZXItY29kZWdlbgp2YWdyYW50IHVwCnZhZ3JhbnQgc3NoCmNkIC92YWdyYW50Ci4vcnVuLWluLWRvY2tlci5zaCBtdm4gcGFja2FnZQogYGBgCgojIyMjIFB1YmxpYyBQcmUtYnVpbHQgRG9ja2VyIGltYWdlcwoKIC0gaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci1nZW5lcmF0b3IvIChvZmZpY2lhbCB3ZWIgc2VydmljZSkKIC0gaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL3N3YWdnZXJhcGkvc3dhZ2dlci1jb2RlZ2VuLWNsaS8gKG9mZmljaWFsIENMSSkKCgojIyMjIyBTd2FnZ2VyIEdlbmVyYXRvciBEb2NrZXIgSW1hZ2UKClRoZSBTd2FnZ2VyIEdlbmVyYXRvciBpbWFnZSBjYW4gYWN0IGFzIGEgc2VsZi1ob3N0ZWQgd2ViIGFwcGxpY2F0aW9uIGFuZCBBUEkgZm9yIGdlbmVyYXRpbmcgY29kZS4gVGhpcyBjb250YWluZXIgY2FuIGJlICBpbmNvcnBvcmF0ZWQgaW50byBhIENJIHBpcGVsaW5lLCBhbmQgcmVxdWlyZXMgYXQgbGVhc3QgdHdvIEhUVFAgcmVxdWVzdHMgYW5kIHNvbWUgZG9ja2VyIG9yY2hlc3RyYXRpb24gdG8gYWNjZXNzIGdlbmVyYXRlZCBjb2RlLgoKRXhhbXBsZSB1c2FnZSAobm90ZSB0aGlzIGFzc3VtZXMgYGpxYCBpcyBpbnN0YWxsZWQgZm9yIGNvbW1hbmQgbGluZSBwcm9jZXNzaW5nIG9mIEpTT04pOgoKYGBgc2gKIyBTdGFydCBjb250YWluZXIgYW5kIHNhdmUgdGhlIGNvbnRhaW5lciBpZApDSUQ9JChkb2NrZXIgcnVuIC1kIHN3YWdnZXJhcGkvc3dhZ2dlci1nZW5lcmF0b3IpCiMgYWxsb3cgZm9yIHN0YXJ0dXAKc2xlZXAgNQojIEdldCB0aGUgSVAgb2YgdGhlIHJ1bm5pbmcgY29udGFpbmVyCkdFTl9JUD0kKGRvY2tlciBpbnNwZWN0IC0tZm9ybWF0ICd7ey5OZXR3b3JrU2V0dGluZ3MuSVBBZGRyZXNzfX0nICAkQ0lEKQojIEV4ZWN1dGUgYW4gSFRUUCByZXF1ZXN0IGFuZCBzdG9yZSB0aGUgZG93bmxvYWQgbGluawpSRVNVTFQ9JChjdXJsIC1YIFBPU1QgLS1oZWFkZXIgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgLS1oZWFkZXIgJ0FjY2VwdDogYXBwbGljYXRpb24vanNvbicgLWQgJ3sKICAic3dhZ2dlclVybCI6ICJodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIgp9JyAnaHR0cDovL2xvY2FsaG9zdDo4MTg4L2FwaS9nZW4vY2xpZW50cy9qYXZhc2NyaXB0JyB8IGpxICcubGluaycgfCB0ciAtZCAnIicpCiMgRG93bmxvYWQgdGhlIGdlbmVyYXRlZCB6aXAgYW5kIHJlZGlyZWN0IHRvIGEgZmlsZQpjdXJsICRSRVNVTFQgPiByZXN1bHQuemlwCiMgU2h1dGRvd24gdGhlIHN3YWdnZXIgZ2VuZXJhdG9yIGltYWdlCmRvY2tlciBzdG9wICRDSUQgJiYgZG9ja2VyIHJtICRDSUQKYGBgCgpJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYHJlc3VsdC56aXBgIHdpbGwgY29udGFpbiB0aGUgZ2VuZXJhdGVkIGNsaWVudC4KCiMjIyMjIFN3YWdnZXIgQ29kZWdlbiBDTEkgRG9ja2VyIEltYWdlCgpUaGUgU3dhZ2dlciBDb2RlZ2VuIGltYWdlIGFjdHMgYXMgYSBzdGFuZGFsb25lIGV4ZWN1dGFibGUuIEl0IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIGluc3RhbGxpbmcgdmlhIGhvbWVicmV3LCBvciBmb3IgZGV2ZWxvcGVycyB3aG8gYXJlIHVuYWJsZSB0byBpbnN0YWxsIEphdmEgb3IgdXBncmFkZSB0aGUgaW5zdGFsbGVkIHZlcnNpb24uCgpUbyBnZW5lcmF0ZSBjb2RlIHdpdGggdGhpcyBpbWFnZSwgeW91J2xsIG5lZWQgdG8gbW91bnQgYSBsb2NhbCBsb2NhdGlvbiBhcyBhIHZvbHVtZS4KCkV4YW1wbGU6CgpgYGBzaApkb2NrZXIgcnVuIC0tcm0gLXYgJHtQV0R9Oi9sb2NhbCBzd2FnZ2VyYXBpL3N3YWdnZXItY29kZWdlbi1jbGkgZ2VuZXJhdGUgXAogICAgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiBcCiAgICAtbCBnbyBcCiAgICAtbyAvbG9jYWwvb3V0L2dvCmBgYAoKKE9uIFdpbmRvd3MgcmVwbGFjZSBgJHtQV0R9YCB3aXRoIGAlQ0QlYCkKClRoZSBnZW5lcmF0ZWQgY29kZSB3aWxsIGJlIGxvY2F0ZWQgdW5kZXIgYC4vb3V0L2dvYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgojIyBHZXR0aW5nIFN0YXJ0ZWQKClRvIGdlbmVyYXRlIGEgUEhQIGNsaWVudCBmb3IgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiwgcGxlYXNlIHJ1biB0aGUgZm9sbG93aW5nCmBgYHNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuCmNkIHN3YWdnZXItY29kZWdlbgptdm4gY2xlYW4gcGFja2FnZQpqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSBcCiAgIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogICAtbCBwaHAgXAogICAtbyAvdmFyL3RtcC9waHBfYXBpX2NsaWVudApgYGAKKGlmIHlvdSdyZSBvbiBXaW5kb3dzLCByZXBsYWNlIHRoZSBsYXN0IGNvbW1hbmQgd2l0aCBgamF2YSAtamFyIG1vZHVsZXNcc3dhZ2dlci1jb2RlZ2VuLWNsaVx0YXJnZXRcc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgZ2VuZXJhdGUgLWkgaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiAtbCBwaHAgLW8gYzpcdGVtcFxwaHBfYXBpX2NsaWVudGApCgpZb3UgY2FuIGFsc28gZG93bmxvYWQgdGhlIEpBUiAobGF0ZXN0IHJlbGVhc2UpIGRpcmVjdGx5IGZyb20gW21hdmVuLm9yZ10oaHR0cHM6Ly9yZXBvMS5tYXZlbi5vcmcvbWF2ZW4yL2lvL3N3YWdnZXIvc3dhZ2dlci1jb2RlZ2VuLWNsaS8yLjQuMzgvc3dhZ2dlci1jb2RlZ2VuLWNsaS0yLjQuMzguamFyKQoKVG8gZ2V0IGEgbGlzdCBvZiAqKmdlbmVyYWwqKiBvcHRpb25zIGF2YWlsYWJsZSwgcGxlYXNlIHJ1biBgamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgaGVscCBnZW5lcmF0ZWAgKGZvciB2ZXJzaW9uIDMueCBjaGVjayBbMy4wLjAgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL3RyZWUvMy4wLjApKQoKVG8gZ2V0IGEgbGlzdCBvZiBQSFAgc3BlY2lmaWVkIG9wdGlvbnMgKHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gdGhlIGdlbmVyYXRvciB3aXRoIGEgY29uZmlnIGZpbGUgdmlhIHRoZSBgLWNgIG9wdGlvbiksIHBsZWFzZSBydW4gYGphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGNvbmZpZy1oZWxwIC1sIHBocGAKCiMjIEdlbmVyYXRvcnMKCiMjIyBUbyBnZW5lcmF0ZSBhIHNhbXBsZSBjbGllbnQgbGlicmFyeQpZb3UgY2FuIGJ1aWxkIGEgY2xpZW50IGFnYWluc3QgdGhlIHN3YWdnZXIgc2FtcGxlIFtwZXRzdG9yZV0oaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvKSBBUEkgYXMgZm9sbG93czoKCmBgYHNoCi4vYmluL2phdmEtcGV0c3RvcmUuc2gKYGBgCgooT24gV2luZG93cywgcnVuIGAuXGJpblx3aW5kb3dzXGphdmEtcGV0c3RvcmUuYmF0YCBpbnN0ZWFkKQoKVGhpcyB3aWxsIHJ1biB0aGUgZ2VuZXJhdG9yIHdpdGggdGhpcyBjb21tYW5kOgoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgZ2VuZXJhdGUgXAogIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogIC1sIGphdmEgXAogIC1vIHNhbXBsZXMvY2xpZW50L3BldHN0b3JlL2phdmEKYGBgCgp3aXRoIGEgbnVtYmVyIG9mIG9wdGlvbnMuIFlvdSBjYW4gZ2V0IHRoZSBvcHRpb25zIHdpdGggdGhlIGBoZWxwIGdlbmVyYXRlYCBjb21tYW5kIChiZWxvdyBvbmx5IHNob3dzIHBhcnRpYWwgcmVzdWx0cyk6CgpgYGAKTkFNRQogICAgICAgIHN3YWdnZXItY29kZWdlbi1jbGkgZ2VuZXJhdGUgLSBHZW5lcmF0ZSBjb2RlIHdpdGggY2hvc2VuIGxhbmcKClNZTk9QU0lTCiAgICAgICAgc3dhZ2dlci1jb2RlZ2VuLWNsaSBnZW5lcmF0ZQogICAgICAgICAgICAgICAgWygtYSA8YXV0aG9yaXphdGlvbj4gfCAtLWF1dGggPGF1dGhvcml6YXRpb24+KV0KICAgICAgICAgICAgICAgIFstLWFkZGl0aW9uYWwtcHJvcGVydGllcyA8YWRkaXRpb25hbCBwcm9wZXJ0aWVzPi4uLl0KICAgICAgICAgICAgICAgIFstLWFwaS1wYWNrYWdlIDxhcGkgcGFja2FnZT5dIFstLWFydGlmYWN0LWlkIDxhcnRpZmFjdCBpZD5dCiAgICAgICAgICAgICAgICBbLS1hcnRpZmFjdC12ZXJzaW9uIDxhcnRpZmFjdCB2ZXJzaW9uPl0KICAgICAgICAgICAgICAgIFsoLWMgPGNvbmZpZ3VyYXRpb24gZmlsZT4gfCAtLWNvbmZpZyA8Y29uZmlndXJhdGlvbiBmaWxlPildCiAgICAgICAgICAgICAgICBbLUQgPHN5c3RlbSBwcm9wZXJ0aWVzPi4uLl0gWy0tZ2l0LXJlcG8taWQgPGdpdCByZXBvIGlkPl0KICAgICAgICAgICAgICAgIFstLWdpdC11c2VyLWlkIDxnaXQgdXNlciBpZD5dIFstLWdyb3VwLWlkIDxncm91cCBpZD5dCiAgICAgICAgICAgICAgICBbLS1odHRwLXVzZXItYWdlbnQgPGh0dHAgdXNlciBhZ2VudD5dCiAgICAgICAgICAgICAgICAoLWkgPHNwZWMgZmlsZT4gfCAtLWlucHV0LXNwZWMgPHNwZWMgZmlsZT4pCiAgICAgICAgICAgICAgICBbLS1pZ25vcmUtZmlsZS1vdmVycmlkZSA8aWdub3JlIGZpbGUgb3ZlcnJpZGUgbG9jYXRpb24+XQogICAgICAgICAgICAgICAgWy0taW1wb3J0LW1hcHBpbmdzIDxpbXBvcnQgbWFwcGluZ3M+Li4uXQogICAgICAgICAgICAgICAgWy0taW5zdGFudGlhdGlvbi10eXBlcyA8aW5zdGFudGlhdGlvbiB0eXBlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1pbnZva2VyLXBhY2thZ2UgPGludm9rZXIgcGFja2FnZT5dCiAgICAgICAgICAgICAgICAoLWwgPGxhbmd1YWdlPiB8IC0tbGFuZyA8bGFuZ3VhZ2U+KQogICAgICAgICAgICAgICAgWy0tbGFuZ3VhZ2Utc3BlY2lmaWMtcHJpbWl0aXZlcyA8bGFuZ3VhZ2Ugc3BlY2lmaWMgcHJpbWl0aXZlcz4uLi5dCiAgICAgICAgICAgICAgICBbLS1saWJyYXJ5IDxsaWJyYXJ5Pl0gWy0tbW9kZWwtbmFtZS1wcmVmaXggPG1vZGVsIG5hbWUgcHJlZml4Pl0KICAgICAgICAgICAgICAgIFstLW1vZGVsLW5hbWUtc3VmZml4IDxtb2RlbCBuYW1lIHN1ZmZpeD5dCiAgICAgICAgICAgICAgICBbLS1tb2RlbC1wYWNrYWdlIDxtb2RlbCBwYWNrYWdlPl0KICAgICAgICAgICAgICAgIFsoLW8gPG91dHB1dCBkaXJlY3Rvcnk+IHwgLS1vdXRwdXQgPG91dHB1dCBkaXJlY3Rvcnk+KV0KICAgICAgICAgICAgICAgIFstLXJlbGVhc2Utbm90ZSA8cmVsZWFzZSBub3RlPl0gWy0tcmVtb3ZlLW9wZXJhdGlvbi1pZC1wcmVmaXhdCiAgICAgICAgICAgICAgICBbLS1yZXNlcnZlZC13b3Jkcy1tYXBwaW5ncyA8cmVzZXJ2ZWQgd29yZCBtYXBwaW5ncz4uLi5dCiAgICAgICAgICAgICAgICBbKC1zIHwgLS1za2lwLW92ZXJ3cml0ZSldCiAgICAgICAgICAgICAgICBbKC10IDx0ZW1wbGF0ZSBkaXJlY3Rvcnk+IHwgLS10ZW1wbGF0ZS1kaXIgPHRlbXBsYXRlIGRpcmVjdG9yeT4pXQogICAgICAgICAgICAgICAgWy0tdHlwZS1tYXBwaW5ncyA8dHlwZSBtYXBwaW5ncz4uLi5dIFsoLXYgfCAtLXZlcmJvc2UpXQoKT1BUSU9OUwogICAgICAgIC1hIDxhdXRob3JpemF0aW9uPiwgLS1hdXRoIDxhdXRob3JpemF0aW9uPgogICAgICAgICAgICBhZGRzIGF1dGhvcml6YXRpb24gaGVhZGVycyB3aGVuIGZldGNoaW5nIHRoZSBzd2FnZ2VyIGRlZmluaXRpb25zCiAgICAgICAgICAgIHJlbW90ZWx5LiBQYXNzIGluIGEgVVJMLWVuY29kZWQgc3RyaW5nIG9mIG5hbWU6aGVhZGVyIHdpdGggYSBjb21tYQogICAgICAgICAgICBzZXBhcmF0aW5nIG11bHRpcGxlIHZhbHVlcwoKLi4uLi4uIChyZXN1bHRzIG9taXR0ZWQpCgogICAgICAgIC12LCAtLXZlcmJvc2UKICAgICAgICAgICAgdmVyYm9zZSBtb2RlCgpgYGAKCllvdSBjYW4gdGhlbiBjb21waWxlIGFuZCBydW4gdGhlIGNsaWVudCwgYXMgd2VsbCBhcyB1bml0IHRlc3RzIGFnYWluc3QgaXQ6CgpgYGBzaApjZCBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhCm12biBwYWNrYWdlCmBgYAoKT3RoZXIgbGFuZ3VhZ2VzIGhhdmUgcGV0c3RvcmUgc2FtcGxlcywgdG9vOgpgYGBzaAouL2Jpbi9hbmRyb2lkLXBldHN0b3JlLnNoCi4vYmluL2phdmEtcGV0c3RvcmUuc2gKLi9iaW4vb2JqYy1wZXRzdG9yZS5zaApgYGAKCiMjIyBHZW5lcmF0aW5nIGxpYnJhcmllcyBmcm9tIHlvdXIgc2VydmVyCkl0J3MganVzdCBhcyBlYXN5LS1qdXN0IHVzZSB0aGUgYC1pYCBmbGFnIHRvIHBvaW50IHRvIGVpdGhlciBhIHNlcnZlciBvciBmaWxlLgoKIyMjIE1vZGlmeWluZyB0aGUgY2xpZW50IGxpYnJhcnkgZm9ybWF0CkRvbid0IGxpa2UgdGhlIGRlZmF1bHQgc3dhZ2dlciBjbGllbnQgc3ludGF4PyAgV2FudCBhIGRpZmZlcmVudCBsYW5ndWFnZSBzdXBwb3J0ZWQ/ICBObyBwcm9ibGVtISAgU3dhZ2dlciBDb2RlZ2VuIHByb2Nlc3NlcyBtdXN0YWNoZSB0ZW1wbGF0ZXMgd2l0aCB0aGUgW2ptdXN0YWNoZV0oaHR0cHM6Ly9naXRodWIuY29tL3NhbXNraXZlcnQvam11c3RhY2hlKSBlbmdpbmUuICBZb3UgY2FuIG1vZGlmeSBvdXIgdGVtcGxhdGVzIG9yIG1ha2UgeW91ciBvd24uCgpZb3UgY2FuIGxvb2sgYXQgYG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy9tYWluL3Jlc291cmNlcy8ke3lvdXItbGFuZ3VhZ2V9YCBmb3IgZXhhbXBsZXMuICBUbyBtYWtlIHlvdXIgb3duIHRlbXBsYXRlcywgY3JlYXRlIHlvdXIgb3duIGZpbGVzIGFuZCB1c2UgdGhlIGAtdGAgZmxhZyB0byBzcGVjaWZ5IHlvdXIgdGVtcGxhdGUgZm9sZGVyLiAgSXQgYWN0dWFsbHkgaXMgdGhhdCBlYXN5LgoKIyMjIE1ha2luZyB5b3VyIG93biBjb2RlZ2VuIG1vZHVsZXMKSWYgeW91J3JlIHN0YXJ0aW5nIGEgcHJvamVjdCB3aXRoIGEgbmV3IGxhbmd1YWdlIGFuZCBkb24ndCBzZWUgd2hhdCB5b3UgbmVlZCwgU3dhZ2dlciBDb2RlZ2VuIGNhbiBoZWxwIHlvdSBjcmVhdGUgYSBwcm9qZWN0IHRvIGdlbmVyYXRlIHlvdXIgb3duIGxpYnJhcmllczoKCmBgYHNoCmphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIG1ldGEgXAogIC1vIG91dHB1dC9teUxpYnJhcnkgLW4gbXlDbGllbnRDb2RlZ2VuIC1wIGNvbS5teS5jb21wYW55LmNvZGVnZW4KYGBgCgpUaGlzIHdpbGwgd3JpdGUsIGluIHRoZSBmb2xkZXIgYG91dHB1dC9teUxpYnJhcnlgLCBhbGwgdGhlIGZpbGVzIHlvdSBuZWVkIHRvIGdldCBzdGFydGVkLCBpbmNsdWRpbmcgYSBgUkVBRE1FLm1kLiBPbmNlIG1vZGlmaWVkIGFuZCBjb21waWxlZCwgeW91IGNhbiBsb2FkIHlvdXIgbGlicmFyeSB3aXRoIHRoZSBjb2RlZ2VuIGFuZCBnZW5lcmF0ZSBjbGllbnRzIHdpdGggeW91ciBvd24sIGN1c3RvbS1yb2xsZWQgbG9naWMuCgpZb3Ugd291bGQgdGhlbiBjb21waWxlIHlvdXIgbGlicmFyeSBpbiB0aGUgYG91dHB1dC9teUxpYnJhcnlgIGZvbGRlciB3aXRoIGBtdm4gcGFja2FnZWAgYW5kIGV4ZWN1dGUgdGhlIGNvZGVnZW4gbGlrZSBzdWNoOgoKYGBgc2gKamF2YSAtY3Agb3V0cHV0L215TGlicmFyeS90YXJnZXQvbXlDbGllbnRDb2RlZ2VuLXN3YWdnZXItY29kZWdlbi0xLjAuMC5qYXI6bW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4KYGBgCkZvciBXaW5kb3dzIHVzZXJzLCB5b3Ugd2lsbCBuZWVkIHRvIHVzZSBgO2AgaW5zdGVhZCBvZiBgOmAgaW4gdGhlIGNsYXNzcGF0aCwgZS5nLgpgYGAKamF2YSAtY3Agb3V0cHV0L215TGlicmFyeS90YXJnZXQvbXlDbGllbnRDb2RlZ2VuLXN3YWdnZXItY29kZWdlbi0xLjAuMC5qYXI7bW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4KYGBgCgpOb3RlIHRoZSBgbXlDbGllbnRDb2RlZ2VuYCBpcyBhbiBvcHRpb24gbm93LCBhbmQgeW91IGNhbiB1c2UgdGhlIHVzdWFsIGFyZ3VtZW50cyBmb3IgZ2VuZXJhdGluZyB5b3VyIGxpYnJhcnk6CgpgYGBzaApqYXZhIC1jcCBvdXRwdXQvbXlMaWJyYXJ5L3RhcmdldC9teUNsaWVudENvZGVnZW4tc3dhZ2dlci1jb2RlZ2VuLTEuMC4wLmphcjptb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIFwKICBpby5zd2FnZ2VyLmNvZGVnZW4uU3dhZ2dlckNvZGVnZW4gZ2VuZXJhdGUgLWwgbXlDbGllbnRDb2RlZ2VuXAogIC1pIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24gXAogIC1vIG15Q2xpZW50CmBgYAoKU2VlIGFsc28gW3N0YW5kYWxvbmUgZ2VuZXJhdG9yIGRldmVsb3BtZW50XShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2Jsb2IvbWFzdGVyL3N0YW5kYWxvbmUtZ2VuLWRldi9zdGFuZGFsb25lLWdlbmVyYXRvci1kZXZlbG9wbWVudC5tZCkKCiMjIyBXaGVyZSBpcyBKYXZhc2NyaXB0Pz8/ClNlZSBvdXIgW2phdmFzY3JpcHQgbGlicmFyeV0oaHR0cDovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcyktLWl0J3MgY29tcGxldGVseSBkeW5hbWljIGFuZCBkb2Vzbid0IHJlcXVpcmUKc3RhdGljIGNvZGUgZ2VuZXJhdGlvbi4KVGhlcmUgaXMgYSB0aGlyZC1wYXJ0eSBjb21wb25lbnQgY2FsbGVkIFtzd2FnZ2VyLWpzLWNvZGVnZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS93Y2FuZGlsbG9uL3N3YWdnZXItanMtY29kZWdlbikgdGhhdCBjYW4gZ2VuZXJhdGUgYW5ndWxhcmpzIG9yIG5vZGVqcyBzb3VyY2UgY29kZSBmcm9tIGFuIE9wZW5BUEkgU3BlY2lmaWNhdGlvbi4KCjpleGNsYW1hdGlvbjogT24gRGVjIDd0aCAyMDE1LCBhIEphdmFzY3JpcHQgQVBJIGNsaWVudCBnZW5lcmF0b3IgaGFzIGJlZW4gYWRkZWQgYnkgQGpmaWFsYS4KCiMjIyBHZW5lcmF0aW5nIGEgY2xpZW50IGZyb20gbG9jYWwgZmlsZXMKSWYgeW91IGRvbid0IHdhbnQgdG8gY2FsbCB5b3VyIHNlcnZlciwgeW91IGNhbiBzYXZlIHRoZSBPcGVuQVBJIFNwZWMgZmlsZXMgaW50byBhIGRpcmVjdG9yeSBhbmQgcGFzcyBhbiBhcmd1bWVudAp0byB0aGUgY29kZSBnZW5lcmF0b3IgbGlrZSB0aGlzOgoKYGBgCi1pIC4vbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4vc3JjL3Rlc3QvcmVzb3VyY2VzLzJfMC9wZXRzdG9yZS5qc29uCmBgYAoKR3JlYXQgZm9yIGNyZWF0aW5nIGxpYnJhcmllcyBvbiB5b3VyIGNpIHNlcnZlciwgZnJvbSB0aGUgW1N3YWdnZXIgRWRpdG9yXShodHRwOi8vZWRpdG9yLnN3YWdnZXIuaW8pLi4uIG9yIHdoaWxlIGNvZGluZyBvbiBhbiBhaXJwbGFuZS4KCiMjIyBTZWxlY3RpdmUgZ2VuZXJhdGlvbgpZb3UgbWF5IG5vdCB3YW50IHRvIGdlbmVyYXRlICphbGwqIG1vZGVscyBpbiB5b3VyIHByb2plY3QuICBMaWtld2lzZSB5b3UgbWF5IHdhbnQganVzdCBvbmUgb3IgdHdvIGFwaXMgdG8gYmUgd3JpdHRlbi4gIElmIHRoYXQncyB0aGUgY2FzZSwgeW91IGNhbiB1c2Ugc3lzdGVtIHByb3BlcnRpZXMgdG8gY29udHJvbCB0aGUgb3V0cHV0OgoKVGhlIGRlZmF1bHQgaXMgZ2VuZXJhdGUgKmV2ZXJ5dGhpbmcqIHN1cHBvcnRlZCBieSB0aGUgc3BlY2lmaWMgbGlicmFyeS4gIE9uY2UgeW91IGVuYWJsZSBhIGZlYXR1cmUsIGl0IHdpbGwgcmVzdHJpY3QgdGhlIGNvbnRlbnRzIGdlbmVyYXRlZDoKCmBgYHNoCiMgZ2VuZXJhdGUgb25seSBtb2RlbHMKamF2YSAtRG1vZGVscyB7b3B0c30KCiMgZ2VuZXJhdGUgb25seSBhcGlzCmphdmEgLURhcGlzIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IHN1cHBvcnRpbmcgZmlsZXMKamF2YSAtRHN1cHBvcnRpbmdGaWxlcwoKIyBnZW5lcmF0ZSBtb2RlbHMgYW5kIHN1cHBvcnRpbmcgZmlsZXMKamF2YSAtRG1vZGVscyAtRHN1cHBvcnRpbmdGaWxlcwpgYGAKClRvIGNvbnRyb2wgdGhlIHNwZWNpZmljIGZpbGVzIGJlaW5nIGdlbmVyYXRlZCwgeW91IGNhbiBwYXNzIGEgQ1NWIGxpc3Qgb2Ygd2hhdCB5b3Ugd2FudDoKYGBgc2gKIyBnZW5lcmF0ZSB0aGUgVXNlciBhbmQgUGV0IG1vZGVscyBvbmx5Ci1EbW9kZWxzPVVzZXIsUGV0CgojIGdlbmVyYXRlIHRoZSBVc2VyIG1vZGVsIGFuZCB0aGUgc3VwcG9ydGluZ0ZpbGUgYFN0cmluZ1V0aWwuamF2YWA6Ci1EbW9kZWxzPVVzZXIgLURzdXBwb3J0aW5nRmlsZXM9U3RyaW5nVXRpbC5qYXZhCmBgYAoKVG8gY29udHJvbCBnZW5lcmF0aW9uIG9mIGRvY3MgYW5kIHRlc3RzIGZvciBhcGkgYW5kIG1vZGVscywgcGFzcyBmYWxzZSB0byB0aGUgb3B0aW9uLiBGb3IgYXBpLCB0aGVzZSBvcHRpb25zIGFyZSAgYC1EYXBpVGVzdHM9ZmFsc2VgIGFuZCBgLURhcGlEb2NzPWZhbHNlYC4gRm9yIG1vZGVscywgYC1EbW9kZWxUZXN0cz1mYWxzZWAgYW5kIGAtRG1vZGVsRG9jcz1mYWxzZWAuClRoZXNlIG9wdGlvbnMgZGVmYXVsdCB0byB0cnVlIGFuZCBkb24ndCBsaW1pdCB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgZmVhdHVyZSBvcHRpb25zIGxpc3RlZCBhYm92ZSAobGlrZSBgLURhcGlgKToKCmBgYHNoCiMgZ2VuZXJhdGUgb25seSBtb2RlbHMgKHdpdGggdGVzdHMgYW5kIGRvY3VtZW50YXRpb24pCmphdmEgLURtb2RlbHMge29wdHN9CgojIGdlbmVyYXRlIG9ubHkgbW9kZWxzICh3aXRoIHRlc3RzIGJ1dCBubyBkb2N1bWVudGF0aW9uKQpqYXZhIC1EbW9kZWxzIC1EbW9kZWxEb2NzPWZhbHNlIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IFVzZXIgYW5kIFBldCBtb2RlbHMgKG5vIHRlc3RzIGFuZCBubyBkb2N1bWVudGF0aW9uKQpqYXZhIC1EbW9kZWxzPVVzZXIsUGV0IC1EbW9kZWxUZXN0cz1mYWxzZSB7b3B0c30KCiMgZ2VuZXJhdGUgb25seSBhcGlzICh3aXRob3V0IHRlc3RzKQpqYXZhIC1EYXBpcyAtRGFwaVRlc3RzPWZhbHNlIHtvcHRzfQoKIyBnZW5lcmF0ZSBvbmx5IGFwaXMgKG1vZGVsVGVzdHMgb3B0aW9uIGlzIGlnbm9yZWQpCmphdmEgLURhcGlzIC1EbW9kZWxUZXN0cz1mYWxzZSB7b3B0c30KYGBgCgpXaGVuIHVzaW5nIHNlbGVjdGl2ZSBnZW5lcmF0aW9uLCBfb25seV8gdGhlIHRlbXBsYXRlcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBnZW5lcmF0aW9uIHdpbGwgYmUgdXNlZC4KCiMjIyBJZ25vcmUgZmlsZSBmb3JtYXQKClN3YWdnZXIgQ29kZWdlbiBzdXBwb3J0cyBhIGAuc3dhZ2dlci1jb2RlZ2VuLWlnbm9yZWAgZmlsZSwgc2ltaWxhciB0byBgLmdpdGlnbm9yZWAgb3IgYC5kb2NrZXJpZ25vcmVgIHlvdSdyZSBwcm9iYWJseSBhbHJlYWR5IGZhbWlsaWFyIHdpdGguCgpUaGUgaWdub3JlIGZpbGUgYWxsb3dzIGZvciBiZXR0ZXIgY29udHJvbCBvdmVyIG92ZXJ3cml0aW5nIGV4aXN0aW5nIGZpbGVzIHRoYW4gdGhlIGAtLXNraXAtb3ZlcndyaXRlYCBmbGFnLiBXaXRoIHRoZSBpZ25vcmUgZmlsZSwgeW91IGNhbiBzcGVjaWZ5IGluZGl2aWR1YWwgZmlsZXMgb3IgZGlyZWN0b3JpZXMgY2FuIGJlIGlnbm9yZWQuIFRoaXMgY2FuIGJlIHVzZWZ1bCwgZm9yIGV4YW1wbGUgaWYgeW91IG9ubHkgd2FudCBhIHN1YnNldCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCgpFeGFtcGxlczoKCmBgYHNoCiMgU3dhZ2dlciBDb2RlZ2VuIElnbm9yZQojIExpbmVzIGJlZ2lubmluZyB3aXRoIGEgIyBhcmUgY29tbWVudHMKCiMgVGhpcyBzaG91bGQgbWF0Y2ggYnVpbGQuc2ggbG9jYXRlZCBhbnl3aGVyZS4KYnVpbGQuc2gKCiMgTWF0Y2hlcyBidWlsZC5zaCBpbiB0aGUgcm9vdAovYnVpbGQuc2gKCiMgRXhjbHVkZSBhbGwgcmVjdXJzaXZlbHkKZG9jcy8qKgoKIyBFeHBsaWNpdGx5IGFsbG93IGZpbGVzIGV4Y2x1ZGVkIGJ5IG90aGVyIHJ1bGVzCiFkb2NzL1VzZXJBcGkubWQKCiMgUmVjdXJzaXZlbHkgZXhjbHVkZSBkaXJlY3RvcmllcyBuYW1lZCBBcGkKIyBZb3UgY2FuJ3QgbmVnYXRlIGZpbGVzIGJlbG93IHRoaXMgZGlyZWN0b3J5LgpzcmMvKiovQXBpLwoKIyBXaGVuIHRoaXMgZmlsZSBpcyBuZXN0ZWQgdW5kZXIgL0FwaSAoZXhjbHVkZWQgYWJvdmUpLAojIHRoaXMgcnVsZSBpcyBpZ25vcmVkIGJlY2F1c2UgcGFyZW50IGRpcmVjdG9yeSBpcyBleGNsdWRlZCBieSBwcmV2aW91cyBydWxlLgohc3JjLyoqL1BldEFwaVRlc3RzLmNzCgojIEV4Y2x1ZGUgYSBzaW5nbGUsIG5lc3RlZCBmaWxlIGV4cGxpY2l0bHkKc3JjL0lPLlN3YWdnZXIuVGVzdC9Nb2RlbC9BbmltYWxGYXJtVGVzdHMuY3MKYGBgCgpUaGUgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlIG11c3QgZXhpc3QgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3RvcnkuCgpVcG9uIGZpcnN0IGNvZGUgZ2VuZXJhdGlvbiwgeW91IG1heSBhbHNvIHBhc3MgdGhlIENMSSBvcHRpb24gYC0taWdub3JlLWZpbGUtb3ZlcnJpZGU9L3BhdGgvdG8vaWdub3JlX2ZpbGVgIGZvciBncmVhdGVyIGNvbnRyb2wgb3ZlciBnZW5lcmF0ZWQgb3V0cHV0cy4gTm90ZSB0aGF0IHRoaXMgaXMgYSBjb21wbGV0ZSBvdmVycmlkZSwgYW5kIHdpbGwgb3ZlcnJpZGUgdGhlIGAuc3dhZ2dlci1jb2RlZ2VuLWlnbm9yZWAgZmlsZSBpbiBhbiBvdXRwdXQgZGlyZWN0b3J5IHdoZW4gcmVnZW5lcmF0aW5nIGNvZGUuCgpFZGl0b3Igc3VwcG9ydCBmb3IgYC5zd2FnZ2VyLWNvZGVnZW4taWdub3JlYCBmaWxlcyBpcyBhdmFpbGFibGUgaW4gSW50ZWxsaUogdmlhIHRoZSBbLmlnbm9yZSBwbHVnaW5dKGh0dHBzOi8vcGx1Z2lucy5qZXRicmFpbnMuY29tL3BsdWdpbi83NDk1LS1pZ25vcmUpLgoKIyMjIEN1c3RvbWl6aW5nIHRoZSBnZW5lcmF0b3IKClRoZXJlIGFyZSBkaWZmZXJlbnQgYXNwZWN0cyBvZiBjdXN0b21pemluZyB0aGUgY29kZSBnZW5lcmF0b3IgYmV5b25kIGp1c3QgY3JlYXRpbmcgb3IgbW9kaWZ5aW5nIHRlbXBsYXRlcy4gIEVhY2ggbGFuZ3VhZ2UgaGFzIGEgc3VwcG9ydGluZyBjb25maWd1cmF0aW9uIGZpbGUgdG8gaGFuZGxlIGRpZmZlcmVudCB0eXBlIG1hcHBpbmdzLCBldGM6CgpgYGBzaAokIGxzIC0xIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuL3NyYy9tYWluL2phdmEvaW8vc3dhZ2dlci9jb2RlZ2VuL2xhbmd1YWdlcy8KQWJzdHJhY3RKYXZhSkFYUlNTZXJ2ZXJDb2RlZ2VuLmphdmEKQWJzdHJhY3RUeXBlU2NyaXB0Q2xpZW50Q29kZWdlbi5qYXZhCi4uLiAocmVzdWx0cyBvbWl0dGVkKQpUeXBlU2NyaXB0QW5ndWxhckNsaWVudENvZGVnZW4uamF2YQpUeXBlU2NyaXB0Tm9kZUNsaWVudENvZGVnZW4uamF2YQpgYGAKCkVhY2ggb2YgdGhlc2UgZmlsZXMgY3JlYXRlcyByZWFzb25hYmxlIGRlZmF1bHRzIHNvIHlvdSBjYW4gZ2V0IHJ1bm5pbmcgcXVpY2tseS4gIEJ1dCBpZiB5b3Ugd2FudCB0byBjb25maWd1cmUgcGFja2FnZSBuYW1lcywgcHJlZml4ZXMsIG1vZGVsIGZvbGRlcnMsIGV0Yy4geW91IGNhbiB1c2UgYSBqc29uIGNvbmZpZyBmaWxlIHRvIHBhc3MgdGhlIHZhbHVlcy4KCmBgYHNoCmphdmEgLWphciBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1jbGkvdGFyZ2V0L3N3YWdnZXItY29kZWdlbi1jbGkuamFyIGdlbmVyYXRlIFwKICAtaSBodHRwczovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjIvc3dhZ2dlci5qc29uIFwKICAtbCBqYXZhIFwKICAtbyBzYW1wbGVzL2NsaWVudC9wZXRzdG9yZS9qYXZhIFwKICAtYyBwYXRoL3RvL2NvbmZpZy5qc29uCmBgYAphbmQgYGNvbmZpZy5qc29uYCBjb250YWlucyB0aGUgZm9sbG93aW5nIGFzIGFuIGV4YW1wbGU6CmBgYGpzb24KewogICJhcGlQYWNrYWdlIiA6ICJwZXRzdG9yZSIKfQpgYGAKClN1cHBvcnRlZCBjb25maWcgb3B0aW9ucyBjYW4gYmUgZGlmZmVyZW50IHBlciBsYW5ndWFnZS4gUnVubmluZyBgY29uZmlnLWhlbHAgLWwge2xhbmd9YCB3aWxsIHNob3cgYXZhaWxhYmxlIG9wdGlvbnMuCioqVGhlc2Ugb3B0aW9ucyBhcmUgYXBwbGllZCB2aWEgY29uZmlndXJhdGlvbiBmaWxlIChlLmcuIGNvbmZpZy5qc29uKSBvciBieSBwYXNzaW5nIHRoZW0gd2l0aCBgamF2YSAtamFyIHN3YWdnZXItY29kZWdlbi1jbGkuamFyIC1Ee29wdGlvbk5hbWV9PXtvcHRpb25WYWx1ZX1gKiouIChJZiBgLUR7b3B0aW9uTmFtZX1gIGRvZXMgbm90IHdvcmssIHBsZWFzZSBvcGVuIGEgW3RpY2tldF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9pc3N1ZXMvbmV3KSBhbmQgd2UnbGwgbG9vayBpbnRvIGl0KQoKYGBgc2gKamF2YSAtamFyIG1vZHVsZXMvc3dhZ2dlci1jb2RlZ2VuLWNsaS90YXJnZXQvc3dhZ2dlci1jb2RlZ2VuLWNsaS5qYXIgY29uZmlnLWhlbHAgLWwgamF2YQpgYGAKCk91dHB1dAoKYGBgCkNPTkZJRyBPUFRJT05TCgltb2RlbFBhY2thZ2UKCSAgICBwYWNrYWdlIGZvciBnZW5lcmF0ZWQgbW9kZWxzCgoJYXBpUGFja2FnZQoJICAgIHBhY2thZ2UgZm9yIGdlbmVyYXRlZCBhcGkgY2xhc3NlcwouLi4uLi4gKHJlc3VsdHMgb21pdHRlZCkKCWxpYnJhcnkKCSAgICBsaWJyYXJ5IHRlbXBsYXRlIChzdWItdGVtcGxhdGUpIHRvIHVzZToKCSAgICBqZXJzZXkxIC0gSFRUUCBjbGllbnQ6IEplcnNleSBjbGllbnQgMS4xOC4gSlNPTiBwcm9jZXNzaW5nOiBKYWNrc29uIDIuNC4yCgkgICAgamVyc2V5MiAtIEhUVFAgY2xpZW50OiBKZXJzZXkgY2xpZW50IDIuNgoJICAgIGZlaWduIC0gSFRUUCBjbGllbnQ6IE5ldGZsaXggRmVpZ24gOC4xLjEuICBKU09OIHByb2Nlc3Npbmc6IEphY2tzb24gMi42LjMKCSAgICBva2h0dHAtZ3NvbiAoZGVmYXVsdCkgLSBIVFRQIGNsaWVudDogT2tIdHRwIDIuNC4wLiBKU09OIHByb2Nlc3Npbmc6IEdzb24gMi4zLjEKCSAgICByZXRyb2ZpdCAtIEhUVFAgY2xpZW50OiBPa0h0dHAgMi40LjAuIEpTT04gcHJvY2Vzc2luZzogR3NvbiAyLjMuMSAoUmV0cm9maXQgMS45LjApCiAgICAgICAgcmV0cm9maXQyIC0gSFRUUCBjbGllbnQ6IE9rSHR0cCAyLjUuMC4gSlNPTiBwcm9jZXNzaW5nOiBHc29uIDIuNCAoUmV0cm9maXQgMi4wLjAtYmV0YTIpCiAgICAgICAgZ29vZ2xlLWFwaS1jbGllbnQgLSBIVFRQIGNsaWVudDogZ29vZ2xlLWFwaS1jbGllbnQgMS4yMy4wLiBKU09OIHByb2Nlc3Npbmc6IEphY2tzb24gMi44LjkKICAgICAgICByZXN0LWFzc3VyZWQgLSBIVFRQIGNsaWVudDogcmVzdC1hc3N1cmVkIDogMy4xLjAuIEpTT04gcHJvY2Vzc2luZzogR3NvbiAyLjYuMS4gT25seSBmb3IgSmF2YTgKYGBgCgpZb3VyIGNvbmZpZyBmaWxlIGZvciBKYXZhIGNhbiBsb29rIGxpa2UKCmBgYGpzb24KewogICJncm91cElkIjogImNvbS5teS5jb21wYW55IiwKICAiYXJ0aWZhY3RJZCI6ICJNeUNsaWVudCIsCiAgImFydGlmYWN0VmVyc2lvbiI6ICIxLjIuMCIsCiAgImxpYnJhcnkiOiAiZmVpZ24iCn0KYGBgCgpGb3IgYWxsIHRoZSB1bnNwZWNpZmllZCBvcHRpb25zIGRlZmF1bHQgdmFsdWVzIHdpbGwgYmUgdXNlZC4KCkFub3RoZXIgd2F5IHRvIG92ZXJyaWRlIGRlZmF1bHQgb3B0aW9ucyBpcyB0byBleHRlbmQgdGhlIGNvbmZpZyBjbGFzcyBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlLgpUbyBjaGFuZ2UsIGZvciBleGFtcGxlLCB0aGUgcHJlZml4IGZvciB0aGUgT2JqZWN0aXZlLUMgZ2VuZXJhdGVkIGZpbGVzLCBzaW1wbHkgc3ViY2xhc3MgdGhlIGBPYmpjQ2xpZW50Q29kZWdlbi5qYXZhYDoKCmBgYGphdmEKcGFja2FnZSBjb20ubXljb21wYW55LnN3YWdnZXIuY29kZWdlbjsKCmltcG9ydCBpby5zd2FnZ2VyLmNvZGVnZW4ubGFuZ3VhZ2VzLio7CgpwdWJsaWMgY2xhc3MgTXlPYmpjQ29kZWdlbiBleHRlbmRzIE9iamNDbGllbnRDb2RlZ2VuIHsKICAgIHN0YXRpYyB7CiAgICAgICAgUFJFRklYID0gIkhFTE8iOwogICAgfQp9CmBgYAoKYW5kIHNwZWNpZnkgdGhlIGBjbGFzc25hbWVgIHdoZW4gcnVubmluZyB0aGUgZ2VuZXJhdG9yOgoKYGBgCi1sIGNvbS5teWNvbXBhbnkuc3dhZ2dlci5jb2RlZ2VuLk15T2JqY0NvZGVnZW4KYGBgCgpZb3VyIHN1YmNsYXNzIHdpbGwgbm93IGJlIGxvYWRlZCBhbmQgb3ZlcnJpZGVzIHRoZSBgUFJFRklYYCB2YWx1ZSBpbiB0aGUgc3VwZXJjbGFzcy4KCiMjIyBCcmluZ2luZyB5b3VyIG93biBtb2RlbHMKClNvbWV0aW1lcyB5b3UgZG9uJ3Qgd2FudCBhIG1vZGVsIGdlbmVyYXRlZC4gIEluIHRoaXMgY2FzZSwgeW91IGNhbiBzaW1wbHkgc3BlY2lmeSBhbiBpbXBvcnQgbWFwcGluZyB0byB0ZWxsCnRoZSBjb2RlZ2VuIHdoYXQgX25vdF8gdG8gY3JlYXRlLiAgV2hlbiBkb2luZyB0aGlzLCBldmVyeSBsb2NhdGlvbiB0aGF0IHJlZmVyZW5jZXMgYSBzcGVjaWZpYyBtb2RlbCB3aWxsCnJlZmVyIGJhY2sgdG8geW91ciBjbGFzc2VzLiAgTm90ZSwgdGhpcyBtYXkgbm90IGFwcGx5IHRvIGFsbCBsYW5ndWFnZXMuLi4KClRvIHNwZWNpZnkgYW4gaW1wb3J0IG1hcHBpbmcsIHVzZSB0aGUgYC0taW1wb3J0LW1hcHBpbmdzYCBhcmd1bWVudCBhbmQgc3BlY2lmeSB0aGUgbW9kZWwtdG8taW1wb3J0IGxvZ2ljIGFzIHN1Y2g6CgpgYGAKLS1pbXBvcnQtbWFwcGluZ3MgUGV0PW15Lm1vZGVscy5NeVBldApgYGAKCk9yIGZvciBtdWx0aXBsZSBtYXBwaW5nczoKCmBgYAotLWltcG9ydC1tYXBwaW5ncyBQZXQ9bXkubW9kZWxzLk15UGV0LE9yZGVyPW15Lm1vZGVscy5NeU9yZGVyCmBgYApvcgpgYGAKLS1pbXBvcnQtbWFwcGluZ3MgUGV0PW15Lm1vZGVscy5NeVBldCAtLWltcG9ydC1tYXBwaW5ncyBPcmRlcj1teS5tb2RlbHMuTXlPcmRlcgpgYGAKCgojIyMgVmFsaWRhdGluZyB5b3VyIE9wZW5BUEkgU3BlYwoKWW91IGhhdmUgb3B0aW9ucy4gIFRoZSBlYXNpZXN0IGlzIHRvIHVzZSBvdXIgW29ubGluZSB2YWxpZGF0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS92YWxpZGF0b3ItYmFkZ2UpIHdoaWNoIG5vdCBvbmx5IHdpbGwgbGV0IHlvdSB2YWxpZGF0ZSB5b3VyIHNwZWMsIGJ1dCB3aXRoIHRoZSBkZWJ1ZyBmbGFnLCB5b3UgY2FuIHNlZSB3aGF0J3Mgd3Jvbmcgd2l0aCB5b3VyIHNwZWMuICBGb3IgZXhhbXBsZToKCmh0dHA6Ly9vbmxpbmUuc3dhZ2dlci5pby92YWxpZGF0b3IvZGVidWc/dXJsPWh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24KCiMjIyBHZW5lcmF0aW5nIGR5bmFtaWMgaHRtbCBhcGkgZG9jdW1lbnRhdGlvbgoKVG8gZG8gc28sIGp1c3QgdXNlIHRoZSBgLWwgZHluYW1pYy1odG1sYCBmbGFnIHdoZW4gcmVhZGluZyBhIHNwZWMgZmlsZS4gIFRoaXMgY3JlYXRlcyBIVE1MIGRvY3VtZW50YXRpb24gdGhhdCBpcyBhdmFpbGFibGUgYXMgYSBzaW5nbGUtcGFnZSBhcHBsaWNhdGlvbiB3aXRoIEFKQVguICBUbyB2aWV3IHRoZSBkb2N1bWVudGF0aW9uOgoKYGBgc2gKY2Qgc2FtcGxlcy9keW5hbWljLWh0bWwvCm5wbSBpbnN0YWxsCm5vZGUgLgpgYGAKCldoaWNoIGxhdW5jaGVzIGEgbm9kZS5qcyBzZXJ2ZXIgc28gdGhlIEFKQVggY2FsbHMgaGF2ZSBhIHBsYWNlIHRvIGdvLgoKCiMjIyBHZW5lcmF0aW5nIHN0YXRpYyBodG1sIGFwaSBkb2N1bWVudGF0aW9uCgpUbyBkbyBzbywganVzdCB1c2UgdGhlIGAtbCBodG1sYCBmbGFnIHdoZW4gcmVhZGluZyBhIHNwZWMgZmlsZS4gIFRoaXMgY3JlYXRlcyBhIHNpbmdsZSwgc2ltcGxlIEhUTUwgZmlsZSB3aXRoIGVtYmVkZGVkIGNzcyBzbyB5b3UgY2FuIHNoaXAgaXQgYXMgYW4gZW1haWwgYXR0YWNobWVudCwgb3IgbG9hZCBpdCBmcm9tIHlvdXIgZmlsZXN5c3RlbToKCmBgYHNoCmNkIHNhbXBsZXMvaHRtbC8Kb3BlbiBpbmRleC5odG1sCmBgYAoKCiMjIyBUbyBidWlsZCBhIHNlcnZlciBzdHViCgpQbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi93aWtpL1NlcnZlci1zdHViLWdlbmVyYXRvci1IT1dUTyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiMjIyBUbyBidWlsZCB0aGUgY29kZWdlbiBsaWJyYXJ5CgpUaGlzIHdpbGwgY3JlYXRlIHRoZSBTd2FnZ2VyIENvZGVnZW4gbGlicmFyeSBmcm9tIHNvdXJjZS4KCmBgYHNoCm12biBwYWNrYWdlCmBgYAoKTm90ZSEgIFRoZSB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5IGdlbmVyYXRlZC4gIElmIHlvdSB3YW50IHRvIG1vZGlmeSB0aGUgdGVtcGxhdGVzLCB5b3UnbGwgbmVlZCB0byBlaXRoZXIgcmVwYWNrYWdlIHRoZSBsaWJyYXJ5IE9SIHNwZWNpZnkgYSBwYXRoIHRvIHlvdXIgc2NyaXB0cwoKIyMgV29ya2Zsb3cgSW50ZWdyYXRpb24KCiMjIyBNYXZlbiBJbnRlZ3JhdGlvbgoKWW91IGNhbiB1c2UgdGhlIFtzd2FnZ2VyLWNvZGVnZW4tbWF2ZW4tcGx1Z2luXShtb2R1bGVzL3N3YWdnZXItY29kZWdlbi1tYXZlbi1wbHVnaW4vUkVBRE1FLm1kKSBmb3IgaW50ZWdyYXRpbmcgd2l0aCB5b3VyIHdvcmtmbG93LCBhbmQgZ2VuZXJhdGluZyBhbnkgY29kZWdlbiB0YXJnZXQuCgojIyMgR3JhZGxlIEludGVncmF0aW9uCgpbR3JhZGxlIFN3YWdnZXIgR2VuZXJhdG9yIFBsdWdpbl0oaHR0cHM6Ly9naXRodWIuY29tL2ludDEyOC9ncmFkbGUtc3dhZ2dlci1nZW5lcmF0b3ItcGx1Z2luKSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYXRpbmcgc291cmNlIGNvZGUgYW5kIEFQSSBkb2N1bWVudC4KCiMjIEdpdEh1YiBJbnRlZ3JhdGlvbgoKVG8gcHVzaCB0aGUgYXV0by1nZW5lcmF0ZWQgU0RLIHRvIEdpdEh1Yiwgd2UgcHJvdmlkZSBgZ2l0X3B1c2guc2hgIHRvIHN0cmVhbWxpbmUgdGhlIHByb2Nlc3MuIEZvciBleGFtcGxlOgoKIDEpIENyZWF0ZSBhIG5ldyByZXBvc2l0b3J5IGluIEdpdEh1YiAoUmVmOiBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9jcmVhdGluZy1hLW5ldy1yZXBvc2l0b3J5LykKCiAyKSBHZW5lcmF0ZSB0aGUgU0RLCmBgYHNoCiBqYXZhIC1qYXIgbW9kdWxlcy9zd2FnZ2VyLWNvZGVnZW4tY2xpL3RhcmdldC9zd2FnZ2VyLWNvZGVnZW4tY2xpLmphciBnZW5lcmF0ZSBcCiAtaSBtb2R1bGVzL3N3YWdnZXItY29kZWdlbi9zcmMvdGVzdC9yZXNvdXJjZXMvMl8wL3BldHN0b3JlLmpzb24gLWwgcGVybCBcCiAtLWdpdC11c2VyLWlkICJzd2FnZ2VyYXBpIiBcCiAtLWdpdC1yZXBvLWlkICJwZXRzdG9yZS1wZXJsIiBcCiAtLXJlbGVhc2Utbm90ZSAiR2l0aHViIGludGVncmF0aW9uIGRlbW8iIFwKIC1vIC92YXIvdG1wL3BlcmwvcGV0c3RvcmUKYGBgCiAzKSBQdXNoIHRoZSBTREsgdG8gR2l0SHViCmBgYHNoCmNkIC92YXIvdG1wL3BlcmwvcGV0c3RvcmUKL2Jpbi9zaCAuL2dpdF9wdXNoLnNoCmBgYAoKIyMgT25saW5lIGdlbmVyYXRvcnMKCk9uZSBjYW4gYWxzbyBnZW5lcmF0ZSBBUEkgY2xpZW50IG9yIHNlcnZlciB1c2luZyB0aGUgb25saW5lIGdlbmVyYXRvcnMgKGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8pCgpGb3IgZXhhbXBsZSwgdG8gZ2VuZXJhdGUgUnVieSBBUEkgY2xpZW50LCBzaW1wbHkgc2VuZCB0aGUgZm9sbG93aW5nIEhUVFAgcmVxdWVzdCB1c2luZyBjdXJsOgpgYGBzaApjdXJsIC1YIFBPU1QgLUggImNvbnRlbnQtdHlwZTphcHBsaWNhdGlvbi9qc29uIiAtZCAneyJzd2FnZ2VyVXJsIjoiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiJ9JyBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy9ydWJ5CmBgYApUaGVuIHlvdSB3aWxsIHJlY2VpdmUgYSBKU09OIHJlc3BvbnNlIHdpdGggdGhlIFVSTCB0byBkb3dubG9hZCB0aGUgemlwcGVkIGNvZGUuCgpUbyBjdXN0b21pemUgdGhlIFNESywgeW91IGNhbiBgUE9TVGAgdG8gYGh0dHBzOi8vZ2VuZXJhdG9yLnN3YWdnZXIuaW8vYXBpL2dlbi9jbGllbnRzL3tsYW5ndWFnZX1gIHdpdGggdGhlIGZvbGxvd2luZyBIVFRQIGJvZHk6CmBgYGpzb24KewogICJvcHRpb25zIjogIHt9LAogICJzd2FnZ2VyVXJsIjogImh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24iCn0KYGBgCmluIHdoaWNoIHRoZSBgb3B0aW9uc2AgZm9yIGEgbGFuZ3VhZ2UgY2FuIGJlIG9idGFpbmVkIGJ5IHN1Ym1pdHRpbmcgYSBgR0VUYCByZXF1ZXN0IHRvIGBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy97bGFuZ3VhZ2V9YDoKCkZvciBleGFtcGxlLCBgY3VybCBodHRwczovL2dlbmVyYXRvci5zd2FnZ2VyLmlvL2FwaS9nZW4vY2xpZW50cy9weXRob25gIHJldHVybnMKYGBganNvbgp7CiAgInBhY2thZ2VOYW1lIjogewogICAgIm9wdCI6ICJwYWNrYWdlTmFtZSIsCiAgICAiZGVzY3JpcHRpb24iOiAicHl0aG9uIHBhY2thZ2UgbmFtZSAoY29udmVudGlvbjogc25ha2VfY2FzZSkuIiwKICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAiZGVmYXVsdCI6ICJzd2FnZ2VyX2NsaWVudCIKICB9LAogICJwYWNrYWdlVmVyc2lvbiI6IHsKICAgICJvcHQiOiAicGFja2FnZVZlcnNpb24iLAogICAgImRlc2NyaXB0aW9uIjogInB5dGhvbiBwYWNrYWdlIHZlcnNpb24uIiwKICAgICJ0eXBlIjogInN0cmluZyIsCiAgICAiZGVmYXVsdCI6ICIxLjAuMCIKICB9LAogICJzb3J0UGFyYW1zQnlSZXF1aXJlZEZsYWciOiB7CiAgICAib3B0IjogInNvcnRQYXJhbXNCeVJlcXVpcmVkRmxhZyIsCiAgICAiZGVzY3JpcHRpb24iOiAiU29ydCBtZXRob2QgYXJndW1lbnRzIHRvIHBsYWNlIHJlcXVpcmVkIHBhcmFtZXRlcnMgYmVmb3JlIG9wdGlvbmFsIHBhcmFtZXRlcnMuIiwKICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgImRlZmF1bHQiOiAidHJ1ZSIKICB9Cn0KYGBgClRvIHNldCBwYWNrYWdlIG5hbWUgdG8gYHBldF9zdG9yZWAsIHRoZSBIVFRQIGJvZHkgb2YgdGhlIHJlcXVlc3QgaXMgYXMgZm9sbG93czoKYGBganNvbgp7CiAgIm9wdGlvbnMiOiB7CiAgICAicGFja2FnZU5hbWUiOiAicGV0X3N0b3JlIgogIH0sCiAgInN3YWdnZXJVcmwiOiAiaHR0cHM6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YyL3N3YWdnZXIuanNvbiIKfQpgYGAKYW5kIGhlcmUgaXMgdGhlIGN1cmwgY29tbWFuZDoKYGBgc2gKY3VybCAtSCAiQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uIiAtWCBQT1NUIC1kICd7Im9wdGlvbnMiOiB7InBhY2thZ2VOYW1lIjogInBldF9zdG9yZSJ9LCJzd2FnZ2VyVXJsIjogImh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24ifScgaHR0cHM6Ly9nZW5lcmF0b3Iuc3dhZ2dlci5pby9hcGkvZ2VuL2NsaWVudHMvcHl0aG9uCmBgYAoKSW5zdGVhZCBvZiB1c2luZyBgc3dhZ2dlclVybGAgd2l0aCBhbiBVUkwgdG8gdGhlIE9wZW5BUEkvU3dhZ2dlciBzcGVjLCBvbmUgY2FuIGluY2x1ZGUgdGhlIHNwZWMgaW4gdGhlIEpTT04gcGF5bG9hZCB3aXRoIGBzcGVjYCwgZS5nLgpgYGBqc29uCnsKICAib3B0aW9ucyI6IHt9LAogICJzcGVjIjogewogICAgInN3YWdnZXIiOiAiMi4wIiwKICAgICJpbmZvIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJ0aXRsZSI6ICJUZXN0IEFQSSIKICAgIH0sCiAgICAuLi4KICB9Cn0KYGBgCgpHdWlkZWxpbmVzIGZvciBDb250cmlidXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpQbGVhc2UgcmVmZXIgdG8gdGhpcyBbcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQpCgpDb21wYW5pZXMvUHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSGVyZSBhcmUgc29tZSBjb21wYW5pZXMvcHJvamVjdHMgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuIGluIHByb2R1Y3Rpb24uIFRvIGFkZCB5b3VyIGNvbXBhbnkvcHJvamVjdCB0byB0aGUgbGlzdCwgcGxlYXNlIHZpc2l0IFtSRUFETUUubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4vYmxvYi9tYXN0ZXIvUkVBRE1FLm1kKSBhbmQgY2xpY2sgb24gdGhlIGljb24gdG8gZWRpdCB0aGUgcGFnZS4KLSBbQWNhbmRvXShodHRwczovL3d3dy5hY2FuZG8uZGUvKQotIFtBY2NlbmdhZ2VdKGh0dHBzOi8vd3d3LmFjY2VuZ2FnZS5jb20vKQotIFtBY2NydWVudF0oaHR0cHM6Ly93d3cuYWNjcnVlbnQuY29tLykKLSBbQWN0aXZlaG91cnNdKGh0dHBzOi8vd3d3LmFjdGl2ZWhvdXJzLmNvbS8pCi0gW0FjdG9uaWNhXShodHRwczovL3d3dy5hY3RvbmljYS5jb20pCi0gW0FjdW5ldGl4XShodHRwczovL3d3dy5hY3VuZXRpeC5jb20vKQotIFtBZGFwdGFudF0oaHR0cHM6Ly93d3cuYWRhcHRhbnQuaW8vKQotIFtBdGxhc3NpYW5dKGh0dHBzOi8vd3d3LmF0bGFzc2lhbi5jb20vKQotIFtBdXRvZGVza10oaHR0cDovL3d3dy5hdXRvZGVzay5jb20vKQotIFtBdmVuaWRhIENvbXByYXMgUy5BLl0oaHR0cHM6Ly93d3cuYXZlbmlkYS5jb20uYXIpCi0gW0FZTElFTl0oaHR0cDovL2F5bGllbi5jb20vKQotIFtCYWxhbmNlIEludGVybmV0XShodHRwczovL3d3dy5iYWxhbmNlaW50ZXJuZXQuY29tLmF1LykKLSBbYmVlbW9dKGh0dHA6Ly93d3cuYmVlbW8uZXUpCi0gW2JpdGx5XShodHRwczovL2JpdGx5LmNvbSkKLSBbQmVlelVQXShodHRwOi8vd3d3LmJlZXp1cC5jb20pCi0gW0JveF0oaHR0cHM6Ly9ib3guY29tKQotIFtCdWZmZXJmbHkgTmV0d29ya10oaHR0cHM6Ly93d3cuYnV0dGVyZmx5bmV0aW5jLmNvbS8pCi0gW0NhY2hldCBGaW5hbmNpYWxdKGh0dHA6Ly93d3cuY2FjaGV0ZmluYW5jaWFsLmNvbS8pCi0gW2NhcnBvbG9dKGh0dHA6Ly93d3cuY2FycG9sby5jby8pCi0gW0NhcnVzXShodHRwczovL3d3dy5jYXJ1cy5jb20vKQotIFtDaXNjb10oaHR0cDovL3d3dy5jaXNjby5jb20vKQotIFtDbG91ZEJvb3N0XShodHRwczovL3d3dy5DbG91ZEJvb3N0LmlvLykKLSBbQ2xvdWRzbWl0aF0oaHR0cHM6Ly9jbG91ZHNtaXRoLmlvLykKLSBbQ29ucGxlbWVudF0oaHR0cDovL3d3dy5jb25wbGVtZW50LmRlLykKLSBbQ3VtbWluc10oaHR0cDovL3d3dy5jdW1taW5zLmNvbS8pCi0gW0N1cGl4XShodHRwOi8vd3d3LmN1cGl4LmNvbSkKLSBbREJCZXN0IFRlY2hub2xvZ2llc10oaHR0cHM6Ly93d3cuZGJiZXN0LmNvbSkKLSBbRGVjZW50Rm9YXShodHRwOi8vZGVjZW50Zm94LmNvbS8pCi0gW0RvY1JhcHRvcl0oaHR0cHM6Ly9kb2NyYXB0b3IuY29tKQotIFtEb2N1U2lnbl0oaHR0cHM6Ly93d3cuZG9jdXNpZ24uY29tKQotIFtFbGFzdGljXShodHRwczovL3d3dy5lbGFzdGljLmNvLykKLSBbRXJnb25dKGh0dHA6Ly93d3cuZXJnb24uY2gvKQotIFtEZWxsIEVNQ10oaHR0cHM6Ly93d3cuZW1jLmNvbS8pCi0gW2V1cmVrYV0oaHR0cDovL2V1cmUuanAvKQotIFtldmVyeXN0b3J5LnVzXShodHRwOi8vZXZlcnlzdG9yeS51cykKLSBbRXhwZWN0ZWQgQmVoYXZpb3JdKGh0dHA6Ly93d3cuZXhwZWN0ZWRiZWhhdmlvci5jb20vKQotIFtmYXNoaW9uVHJhZGVdKGh0dHBzOi8vd3d3LmZhc2hpb250cmFkZS5jb20vKQotIFtGYXN0bHldKGh0dHBzOi8vd3d3LmZhc3RseS5jb20vKQotIFtGSU5SQV0oaHR0cHM6Ly9naXRodWIuY29tL0ZJTlJBT1MvaGVyZC8pCi0gW0ZsYXRdKGh0dHBzOi8vZmxhdC5pbykKLSBbRmluZGVyXShodHRwOi8vZW4uZmluZGVyLnBsLykKLSBbRml0d2VsbF0oaHR0cHM6Ly9maXR3ZWxsLmNvLykKLSBbRkggTcO8bnN0ZXIgLSBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXNdKGh0dHA6Ly93d3cuZmgtbXVlbnN0ZXIuZGUpCi0gW0Zvcm1BUEldKGh0dHBzOi8vZm9ybWFwaS5pby8pCi0gW0ZvdGl0aW9uXShodHRwczovL3d3dy5mb3RpdGlvbi5jb20vKQotIFtHZWFyIFplcm8gTmV0d29ya10oaHR0cHM6Ly93d3cuZ2Vhcnplcm8uY2EpCi0gW0dlbmVyYWwgRWxlY3RyaWNdKGh0dHBzOi8vd3d3LmdlLmNvbS8pCi0gW0dlbmVzeXMgLSBQdXJlQ2xvdWRdKGh0dHA6Ly9kZXZlbG9wZXIubXlwdXJlY2xvdWQuY29tLykKLSBbR2VybWluOF0oaHR0cDovL3d3dy5nZXJtaW44LmNvbSkKLSBbR2lnYVNwYWNlc10oaHR0cDovL3d3dy5naWdhc3BhY2VzLmNvbSkKLSBbR01PIFBlcGFib10oaHR0cHM6Ly9wZXBhYm8uY29tL2VuLykKLSBbZ29UcmFuc3ZlcnNlXShodHRwOi8vd3d3LmdvdHJhbnN2ZXJzZS5jb20vYXBpKQotIFtHcmFwaEhvcHBlcl0oaHR0cHM6Ly9ncmFwaGhvcHBlci5jb20vKQotIFtHcmF2aXRhdGUgU29sdXRpb25zXShodHRwOi8vZ3Jhdml0YXRlc29sdXRpb25zLmNvbS8pCi0gW0hhc2hEYXRhXShodHRwOi8vd3d3Lmhhc2hkYXRhLmNuLykKLSBbSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2VdKGh0dHBzOi8vaHBlLmNvbSkKLSBbSGlnaCBUZWNobm9sb2dpZXMgQ2VudGVyXShodHRwOi8vaHRjLWNzLmNvbSkKLSBbSG9vdHN1aXRlXShodHRwczovL2hvb3RzdWl0ZS5jb20vKQotIFtIdWF3ZWkgQ2xvdWRdKGh0dHA6Ly93d3cuaHVhd2VpY2xvdWQuY29tL2VuLXVzL3Byb2R1Y3QvY3MuaHRtbCkKLSBbSHVzYmFua2VuXShodHRwczovL3d3dy5odXNiYW5rZW4ubm8pCi0gW0lCTV0oaHR0cHM6Ly93d3cuaWJtLmNvbSkKLSBbSU1TIEhlYWx0aF0oaHR0cDovL3d3dy5pbXNoZWFsdGguY29tL2VuL3NvbHV0aW9uLWFyZWFzL3RlY2hub2xvZ3ktYW5kLWFwcGxpY2F0aW9ucykKLSBbSW5kaXZpZHVhbCBTdGFuZGFyZCBJVlNdKGh0dHA6Ly93d3cuaW5kaXZpZHVhbC1zdGFuZGFyZC5jb20pCi0gW0lOU1BJREVdKGh0dHA6Ly93d3cuaW5zcGlkZS5jb20pCi0gW0ludGVudCBIUV0oaHR0cDovL3d3dy5pbnRlbnRocS5jb20pCi0gW0thYnVrdV0oaHR0cDovL3d3dy5rYWJ1a3UuY28uanAvZW4pCi0gW0t1cmlvXShodHRwczovL2t1cmlvLmNvLmlkKQotIFtLdXJvaV0oaHR0cDovL2t1cm9pd2ViZGVzaWduLmNvbS8pCi0gW0t1YXJ5XShodHRwczovL2t1YXJ5LmNvbS8pCi0gW0t1YmVybmV0ZXNdKGh0dHBzOi8va3ViZXJuZXRlcy5pby8pCi0gW0xBTkRSIEF1ZGlvXShodHRwczovL3d3dy5sYW5kci5jb20vKQotIFtMYXNjYXV4XShodHRwOi8vd3d3Lmxhc2NhdXguaXQvKQotIFtMZWFuaXhdKGh0dHA6Ly93d3cubGVhbml4Lm5ldC8pCi0gW0xlaWNhIEdlb3N5c3RlbXMgQUddKGh0dHA6Ly9sZWljYS1nZW9zeXN0ZW1zLmNvbSkKLSBbTGl2ZUFnZW50XShodHRwczovL3d3dy5sYWRlc2suY29tLykKLSBbTFhMIFRlY2hdKGh0dHA6Ly9seGx0ZWNoLmNvbSkKLSBbTHlmdF0oaHR0cHM6Ly93d3cubHlmdC5jb20vZGV2ZWxvcGVycykKLSBbTWFpbE1vam9dKGh0dHBzOi8vbWFpbG1vam8ubm8vKQotIFtNZXRhc3dpdGNoXShodHRwczovL3d3dy5tZXRhc3dpdGNoLmNvbS8pCi0gW01pbmRlcmFdKGh0dHA6Ly9taW5kZXJhLmNvbS8pCi0gW01vZHVsZVFdKGh0dHBzOi8vbW9kdWxlcS5jb20pCi0gW01wb3JpdW1dKGh0dHA6Ly9tcG9yaXVtLmNvbS8pCi0gW05ldmVyZmFpbF0oaHR0cHM6Ly9uZXZlcmZhaWwuY29tLykKLSBbTmV4Q2FwXShodHRwOi8vd3d3Lm5leGVzcy1zb2x1dGlvbnMuY29tL2ZyL3BsYXRlZm9ybWUtaW90LykKLSBbTml0cm9ib3hdKGh0dHBzOi8vd3d3Lm5pdHJvYm94LmNvbSkKLSBbTm9yd2VnaWFuIEFpciBTaHV0dGxlXShodHRwczovL3d3dy5ub3J3ZWdpYW4uY29tLykKLSBbTlRUIERBVEFdKGh0dHA6Ly93d3cubnR0ZGF0YS5jb20vKQotIFtuVmlzb10oaHR0cDovL3d3dy5udmlzby5jaC8pCi0gW05IU0RdKGh0dHBzOi8vZGlnaXRhbC5uaHMudWsvKQotIFtPa2lva10oaHR0cHM6Ly93d3cub2tpb2suY29tKQotIFtPbmVkYXRhXShodHRwOi8vb25lZGF0YS5vcmcpCi0gW09wZW4gSW50ZXJuYXRpb25hbCBTeXN0ZW1zXShodHRwczovL29wZW5pbnRsLmNvbS8pCi0gW09yZGVyQ2xvdWQuaW9dKGh0dHA6Ly9vcmRlcmNsb3VkLmlvKQotIFtPU0ROXShodHRwczovL29zZG4uanApCi0gW1BhZ2VyRHV0eV0oaHR0cHM6Ly93d3cucGFnZXJkdXR5LmNvbSkKLSBbUGFnZXJUcmVlXShodHRwczovL3BhZ2VydHJlZS5jb20pCi0gW1BlcGlwb3N0XShodHRwczovL3d3dy5wZXBpcG9zdC5jb20pCi0gW1BlYXRpbyBUZWNoXShodHRwczovL3d3dy5wZWF0aW8udGVjaCkKLSBbUGxleHhpXShodHRwOi8vd3d3LnBsZXh4aS5jb20pCi0gW1BpeG9uZXllXShodHRwOi8vd3d3LnBpeG9uZXllLmNvbS8pCi0gW1Bvc3RBZmZpbGlhdGVQcm9dKGh0dHBzOi8vd3d3LnBvc3RhZmZpbGlhdGVwcm8uY29tLykKLSBbUHJhY3RpY2VCaXJkXShodHRwczovL3d3dy5wcmFjdGljZWJpcmQuY29tLykKLSBbUHJpbGwgVGVjbm9sb2dpYV0oaHR0cDovL3d3dy5wcmlsbC5jb20uYnIpCi0gW1Byb2thcm1hXShodHRwczovL3d3dy5wcm9rYXJtYS5jb20pCi0gW1FBZGVwdF0oaHR0cDovL3FhZGVwdC5jb20vKQotIFtRdWFudGlNb2RvXShodHRwczovL3F1YW50aW1vLmRvLykKLSBbUXVpY2tCbG94XShodHRwczovL3F1aWNrYmxveC5jb20vKQotIFtSYXBpZDddKGh0dHBzOi8vcmFwaWQ3LmNvbS8pCi0gW1JlZCBIYXRdKGh0dHBzOi8vd3d3LnJlZGhhdC5jb20vKQotIFtSZWxvYWQhIEEvU10oaHR0cHM6Ly9yZWxvYWQuZGsvKQotIFtSRXN0b3JlXShodHRwczovL3d3dy5yZXN0b3JlLmV1KQotIFtSRVNUIFVuaXRlZF0oaHR0cHM6Ly9yZXN0dW5pdGVkLmNvbSkKLSBbUmV2YXVsdCBTw6BybF0oaHR0cDovL3JldmF1bHQuY2gpCi0gW1JpZmZ5bl0oaHR0cHM6Ly9yaWZmeW4uY29tKQotIFtSb3lhbCBCYW5rIG9mIENhbmFkYSAoUkJDKV0oaHR0cDovL3d3dy5yYmMuY29tL2NhbmFkYS5odG1sKQotIFtTYXJpdGFzYV0oaHR0cHM6Ly93d3cuc2FyaXRhc2EuY29tLykKLSBbU0FTXShodHRwczovL3d3dy5zYXMuY29tKQotIFtTQ09PUCBTb2Z0d2FyZSBHbWJIXShodHRwOi8vd3d3LnNjb29wLXNvZnR3YXJlLmRlKQotIFtTZXNzaW9uTV0oaHR0cHM6Ly93d3cuc2Vzc2lvbm0uY29tLykKLSBbU2hpbmUgU29sdXRpb25zXShodHRwczovL3NoaW5lc29sdXRpb25zLmNvbS8pCi0gW1NpbXBmb255XShodHRwczovL3d3dy5zaW1wZm9ueS5jb20vKQotIFtTa3VydF0oaHR0cDovL3d3dy5za3VydC5jb20pCi0gW1NsYW1ieV0oaHR0cHM6Ly93d3cuc2xhbWJ5LmNvbS8pCi0gW1NtYXJ0UmVjcnVpdGVyc10oaHR0cHM6Ly93d3cuc21hcnRyZWNydWl0ZXJzLmNvbS8pCi0gW3NuYXBDWF0oaHR0cHM6Ly9zbmFwY3guaW8pCi0gW1NQSU5FTl0oaHR0cDovL3d3dy5zcGluZW4uY29tKQotIFtTcG9uc29vXShodHRwczovL3d3dy5zcG9uc29vLmRlKQotIFtTUkNdKGh0dHBzOi8vd3d3LnNyYy5zaS8pCi0gW1N0YXJkb2cgVmVudHVyZXNdKGh0dHBzOi8vd3d3LnN0YXJkb2cuaW8pCi0gW1N0aW5ncmF5XShodHRwOi8vd3d3LnN0aW5ncmF5LmNvbSkKLSBbU3R5bGVSZWNpcGVdKGh0dHA6Ly9zdHlsZXJlY2lwZS5jby5qcCkKLSBbU3ZlbnNrYSBTcGVsIEFCXShodHRwczovL3d3dy5zdmVuc2thc3BlbC5zZS8pCi0gW1N3aXRjaCBEYXRhYmFzZV0oaHR0cHM6Ly93d3cuc3dpdGNoZGF0YWJhc2UuY29tLykKLSBbVGFza0RhdGFdKGh0dHA6Ly93d3cudGFza2RhdGEuY29tLykKLSBbVGhpcmRXYXRjaC5haV0oaHR0cHM6Ly93d3cudGhpcmR3YXRjaC5haS8pCi0gW1Rob3VnaHRXb3Jrc10oaHR0cHM6Ly93d3cudGhvdWdodHdvcmtzLmNvbSkKLSBbVHBheV0oaHR0cHM6Ly90cGF5LmNvbSkKLSBbVHJleGxlXShodHRwczovL3RyZXhsZS5jb20vKQotIFtVcHdvcmtdKGh0dHA6Ly91cHdvcmsuY29tLykKLSBbdVNoaXBdKGh0dHBzOi8vd3d3LnVzaGlwLmNvbS8pCi0gW1ZhcmlvZ3JhbWFdKGh0dHBzOi8vdmFyaW9ncmFtYS5wdCkKLSBbVk13YXJlXShodHRwczovL3Ztd2FyZS5jb20vKQotIFtWaWF2aSBTb2x1dGlvbnMgSW5jLl0oaHR0cHM6Ly93d3cudmlhdmlzb2x1dGlvbnMuY29tKQotIFtXLlVQXShodHRwOi8vd3VwLmh1Lz9zaXRlTGFuZz1lbikKLSBbV2VhbHRoZnJvbnRdKGh0dHBzOi8vd3d3LndlYWx0aGZyb250LmNvbS8pCi0gW1dlYmV2ZXIgR21iSF0oaHR0cHM6Ly93d3cud2ViZXZlci5kZS8pCi0gW1dFWE8gQS9TXShodHRwczovL3d3dy53ZXhvLmRrLykKLSBbWFNreV0oaHR0cDovL3d3dy54c2t5LmNvbS8pCi0gW1llbHBdKGh0dHA6Ly93d3cueWVscC5jb20vKQotIFtaYWxhbmRvXShodHRwczovL3RlY2guemFsYW5kby5jb20pCi0gW1pFRUYuY29tXShodHRwczovL3plZWYuY29tLykKLSBbem9vcGx1c10oaHR0cHM6Ly93d3cuem9vcGx1cy5jb20vKQotIFtUcmlmb3JrXShodHRwczovL3d3dy50cmlmb3JrLmNvbS8pCgpQcmVzZW50YXRpb25zL1ZpZGVvcy9UdXRvcmlhbHMvQm9va3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDIwMTEvMDgvMzEgLSBbSW50cm9kdWNpbmcgU3dhZ2dlcl0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvZmVoZ3V5L2ludHJvZHVjaW5nLXN3YWdnZXIpIGJ5IFtUb255IFRhbV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9mZWhndXkpCi0gMjAxNC8wNS8yMiAtIFtTd2FnZ2VyIEFQSXMgZm9yIEh1bWFucyBhbmQgUm9ib3RzXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9mZWhndXkvc3dhZ2dlci1hcGlzLWZvci1odW1hbnMtYW5kLXJvYm90cy1nbHVlY29uKSBieSBbVG9ueSBUYW1dKGh0dHBzOi8vdHdpdHRlci5jb20vZmVoZ3V5KSBhdCBbR2x1ZWNvbl0oaHR0cDovL2dsdWVjb24uY29tLykKLSAyMDE0LzExLzExIC0gW0dlbmllIDIuMDogU2Vjb25kIFdpc2ggR3JhbnRlZCFdKGh0dHBzOi8vbWVkaXVtLmNvbS9uZXRmbGl4LXRlY2hibG9nL2dlbmllLTItMC1zZWNvbmQtd2lzaC1ncmFudGVkLWQ4ODhkNzk0NTVjNikgYnkgW1RvbSBHaWFub3NdKGh0dHA6Ly93d3cubGlua2VkaW4uY29tL2luL3Rob21hc2dpYW5vcy8pIGFuZCBbQW1pdCBTaGFybWFdKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9wdWIvYW1pdC1zaGFybWEvNS8xNjMvYTgzKSBAIFtOZXRmbGl4XShodHRwczovL3d3dy5uZXRmbGl4LmNvbS8pIEJpZyBEYXRhIFBsYXRmb3JtIFRlYW0KLSAyMDE1LzA3LzI4IC0gW0VucmljaGluZyBSRVNUZnVsIFNlcnZpY2VzIHdpdGggU3dhZ2dlcl0oaHR0cHM6Ly9ibG9nLnBoaWxpcHBoYXVlci5kZS9lbnJpY2hpbmctcmVzdGZ1bC1zZXJ2aWNlcy1zd2FnZ2VyLykgYnkgW1BoaWxpcHAgSGF1ZXJdKGh0dHBzOi8vYmxvZy5waGlsaXBwaGF1ZXIuZGUvKQotIDIwMTUvMTEvMTEgLSBbR2VuZXJhdGUgY2xpZW50IHN0dWJzICYgZG9jdW1lbnQgeW91ciBSRVNULUFQSSB1c2luZyBTd2FnZ2VyICYgU3ByaW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTQzR2hCYlAtLW9JKSBieSBbSm9oYW5uZXMgRmlhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlhbGEpIEAgRGV2b3h4IEJlbGdpdW0gMjAxNQotIDIwMTUvMTIvMDMgLSBb44GT44KT44Gq44Gr57Ch5Y2YISBTd2FnZ2VyIENvZGVnZW7jga7jgqvjgrnjgr/jg57jgqTjgrpdKGh0dHA6Ly9xaWl0YS5jb20vUXVyYW15L2l0ZW1zL2M1ODNmMzIxM2YwYjc3ZmYxYmFjKSBieSBbUXVyYW15XShodHRwOi8vcWlpdGEuY29tL1F1cmFteSkKLSAyMDE2LzAxLzEyIC0gW0dlbmVyYXRlIGNsaWVudCBzaWRlIGNvZGUgdXNpbmcgU3dhZ2dlciBDb2RlZ2VuXShodHRwOi8vcm5hdmFnYW11d2EuY29tL29wZW4tc291cmNlL2dlbmVyYXRlLWNsaWVudC1zaWRlLWNvZGUtdXNpbmctc3dhZ2dlci1jb2RlZ2VuLykgYnkgW1JOQVZBR0FNVVdBXShodHRwOi8vcm5hdmFnYW11d2EuY29tL2F1dGhvci9hZG1pbi8pCi0gMjAxNi8wMS8xNSAtIFtIb3cgdG8gZW5kIG1hbnVhbCBSRVNULUFQSSBjbGllbnQgY29kaW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVJ6WlJkcVpwNk9vKSBieSBbSm9oYW5uZXMgRmlhbGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZmlhbGEpIEAgZG90SlMgMjAxNQotIDIwMTYvMDQvMjcgLSBbQXV0b21hdGVkIFJFU1QgQVBJIERldmVsb3BtZW50XShodHRwczovL3lvcy5pby8yMDE2LzA0LzI3L2F1dG9tYXRlZC1hcGktZGV2ZWxvcG1lbnQvKSBieSBbWW9zIFJpYWR5XShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4veW9zcmlhZHkpCi0gMjAxNi8wNS8yOSAtIFtHZW5lcmF0aW5nIEphdmEgU3ByaW5nLU1WQyBjb2RlIGZyb20gU3dhZ2dlciBTcGVjXShodHRwczovL3d3dy5jbGlhbnouY29tLzIwMTYvMDUvMjkvamF2YS1tdmMtc3dhZ2dlci1nZW4vKSBieSBbQGljaGEwMjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9pY2hhMDI0KQotIDIwMTYvMDcvMjIgLSBbQnVpbGRpbmcgTWljcm9zZXJ2aWNlcz8gSGVyZSBpcyB3aGF0IHlvdSBzaG91bGQga25vd10oaHR0cHM6Ly9jbG91ZG5jb2RlLmJsb2cvMjAxNi8wNy8yMi9tc2EtZ2V0dGluZy1zdGFydGVkLykgYnkgU3VtaXQgTWFpbmdpCi0gMjAxNi8wOC8yMyAtIFtHZW5lcmF0aW5nIERyZWFtZmFjdG9yeSBDbGllbnQgU0RLcyBiYXNlZCBvbiBTd2FnZ2VyIEFQSSBEZWZpbml0aW9uc10oaHR0cDovL2Jsb2cuZHJlYW1mYWN0b3J5LmNvbS9nZW5lcmF0aW5nLWRyZWFtZmFjdG9yeS1jbGllbnQtc2Rrcy1iYXNlZC1vbi1zd2FnZ2VyLWFwaS1kZWZpbml0aW9ucykgYnkgW1BoaWwgU2NodWxlcl0oaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpY2lvdXMvKQotIDIwMTYvMDkvMjggLSBbMSBVTkJFTElFVkFCTEUgVFJJQ0sgVE8gQ1JFQVRFIEFOIEVBU1kgVE8gQ09OU1VNRSBBUEkgSU4gLk5FVF0oaHR0cHM6Ly9zdGFwcC5zcGFjZS8xLXNpbXBsZS10cmljay10by1jcmVhdGUtYS1nb29kLWFwaS1pbi1uZXQvKSBieSBbUGlvdHIgU3RhcHBdKGh0dHBzOi8vc3RhcHAuc3BhY2UvYXV0aG9yL3Bpb3RyLXN0YXBwLykKLSAyMDE2LzEwLzEwIC0gW1VzaW5nIHN3YWdnZXItY29kZWdlbiB3aXRoIE1hcmtldG9dKGh0dHA6Ly9kZXZlbG9wZXJzLm1hcmtldG8uY29tL2Jsb2cvdXNpbmctc3dhZ2dlci1jb2RlZ2VuLXdpdGgtbWFya2V0by8pIGJ5IFtLZW5ueSBFbGtpbmd0b25dKGh0dHA6Ly9kZXZlbG9wZXJzLm1hcmtldG8uY29tL2Jsb2cvdXNpbmctc3dhZ2dlci1jb2RlZ2VuLXdpdGgtbWFya2V0by8pCi0gMjAxNi8xMC8xMiAtIFtEZXNpZ25pbmcgYSBTd2FnZ2VyIEFQSV0oaHR0cHM6Ly9zb29rb2NoZWZmLmNvbS9wb3N0L2FwaS9zd2FnZ2VyLykgYnkgW0tldmluIFNvb2tvY2hlZmZdKGh0dHBzOi8vc29va29jaGVmZi5jb20vKQotIDIwMTYvMTEvMDUgLSBbSG93IHRvIGdlbmVyYXRlIGEgUkVTVCBBcHBsaWNhdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1peUM5QldNZTc1USkgYnkgW0pvaGFubmVzIEZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKSBAIERldkZlc3QgVmllbm5hIDIwMTYKLSAyMDE2LzExLzEwIC0gW0J1aWxkaW5nIGFuIEFFTSBBUEkgY2xpZW50cyBlY29zeXN0ZW1dKGh0dHA6Ly9ibG9nLmNsaWZmYW5vLmNvbS8yMDE2LzExLzEwL2Fkb2JlLW1hcmtldGluZy1jbG91ZC1jb21tdW5pdHktZXhwby8pIGJ5IENsaWZmYW5vIFN1YmFnaW8sIE1pY2hhZWwgRGllbmRlciwgU3RlcGhlbiBTaGltIGZyb20gW1NoaW5lIFNvbHV0aW9uc10oaHR0cHM6Ly9zaGluZXNvbHV0aW9ucy5jb20vKSBAIFtBZG9iZSBNYXJrZXRpbmcgQ2xvdWQgQ29tbXVuaXR5IEV4cG8gKEFNQ0NFKV0oaHR0cHM6Ly93d3cubWVldHVwLmNvbS9NZWxib3VybmUtQUVNLUNRLU1lZXR1cC9ldmVudHMvMjMzMzYzMTAxLykKLSAyMDE2LzExLzE4IC0gW0hvdyB0byBnZW5lcmF0ZSBhIFJFU1QgQ1hGMyBhcHBsaWNhdGlvbiBmcm9tIFN3YWdnZXItQ29udHJhY3RdKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L2pvaGFubmVzX2ZpYWxhL2hvdy10by1nZW5lcmF0ZS1hLXJlc3QtY3hmMy1hcHBsaWNhdGlvbi1mcm9tLXN3YWdnZXItYXBhY2hlY29uZXUtMjAxNikgYnkgW0pvaGFubmVzIEZpYWxhXShodHRwczovL2dpdGh1Yi5jb20vamZpYWxhKSBAIEFwYWNoZUNvbkVVIDIwMTYKLSAyMDE2LzExLzI1IC0gW1N3YWdnZXIgQ29kZWdlbiBmb3IgU3dpZnQzIGFuZCBOb2RlSlNdKGh0dHBzOi8vbm9ybWFuZDEuZ2l0aHViLmlvL2Jsb2cvc3dpZnQvc3dhZ2dlci9jb2RlZ2VuLzIwMTYvMTEvMjUvU3dhZ2dlci1Db2RlZ2VuLWZvci1Td2lmdDMtYW5kLU5vZGVKUy5odG1sKSBieSBbRGF2aWQgTm9ybWFuXShodHRwczovL2dpdGh1Yi5jb20vbm9ybWFuZDEpCi0gMjAxNi8xMi8wOCAtIFtCdWlsZGluZyBhbiBBUEkgd2l0aCBTd2FnZ2VyXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVBid1FXdzd4U09NKQotIDIwMTYvMTIvMDggLSBbR2VuZXJhdGUgY2xpZW50IHNpZGUgY29kZSB1c2luZyBTd2FnZ2VyIENvZGVnZW5dKGh0dHBzOi8vY2FycmEtbHVjaWEtbHRkLmNvLnVrLzIwMTYvMTIvMDgvZ2VuZXJhdGUtY2xpZW50LXNpZGUtY29kZS11c2luZy1zd2FnZ2VyLWNvZGVnZW4vKSBieSBbdGhlRmVya2VsXShodHRwczovL2NhcnJhLWx1Y2lhLWx0ZC5jby51ay9hdXRob3IvdGhlZmVya2VsLykKLSAyMDE3LzAxLzE2IC0gW1plcm8gdG8gQVBJIGluIDQgbWludXRlc10oaHR0cHM6Ly9jaWRyYmxvY2suZ2l0aHViLmlvL3plcm8tdG8tYXBpLWluLTQtbWludXRlcy5odG1sKSBieSBbQnJhZGxleSBBLiBUaG9ybnRvbl0oaHR0cHM6Ly9naXRodWIuY29tL2NpZHJibG9jaykKLSAyMDE3LzAyLzA5IC0gW+OAjFN3YWdnZXLjgpLliKnnlKjjgZfjgZ/mlrDopo/jgrXjg7zjg5PjgrnplovnmbrjgI3jgajjgYTjgYbjgr/jgqTjg4jjg6vjgafnmbvlo4fjgZfjgabmnaXjgb7jgZfjgZ9dKGh0dHBzOi8vdGVjaGJsb2cucmVjb2Nob2t1LmpwLzEwNTUpIGJ5IFtyZWNvdGVjaF0oaHR0cHM6Ly93d3cuc2xpZGVzaGFyZS5uZXQvcmVjb3RlY2gpCi0gMjAxNy8wMy8wMyAtIFtTd2FnZ2VyIENvZGVnZW4g44Gu5L2/44GE5pa544Gu57Ch5Y2Y44Gq6Kqs5piO44Gn44GZXShodHRwczovL3NwZWFrZXJkZWNrLmNvbS93YWd5dTI5OC9zd2FnZ2VyLWNvZGVnZW4pIGJ5IFt3YWd5dTI5OF0oaHR0cHM6Ly9naXRodWIuY29tL3dhZ3l1Mjk4KQotIDIwMTcvMDMvMjQgLSBbVXNpbmcgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBUbyBQdXQgTHlmdCBTREsgU3VwcG9ydCBpbiB0aGUgRmFzdCBMYW5lXShodHRwczovL21lZGl1bS5jb20vbHlmdC1kZXZlbG9wZXItcGxhdGZvcm0vdXNpbmctb3Blbi1hcGktc3BlY2lmaWNhdGlvbi10by1wdXQtbHlmdC1zZGstc3VwcG9ydC1pbi10aGUtZmFzdC1sYW5lLTdiNjIzMjE4ZTRlZSkgYnkgW1ZhbCBQb2xvdWNoa2luZV0oaHR0cHM6Ly9naXRodWIuY29tL3Zwb2xvdWNoa2luZSkKLSAyMDE3LzA0LzEzIC0gW0F1dG9tYXRpY2FsbHkgR2VuZXJhdGluZyB5b3VyIEFQSSBDbGllbnQgd2l0aCBTd2FnZ2VyIGFuZCBTd2FnZ2VyIENvZGVnZW5dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9RXpLd2ktdTlqUW8pIGJ5IFtKZXNzZSBDb2xsaXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qZXNzZWRjKSBAIE1lbGJvdXJuZSBDb2NvYWhlYWRzCi0gMjAxNy8wNC8yNyAtIFtTd2FnZ2VyIENvZGVnZW4g44GuUEhQ5a6f6KOF44GM44GC44G+44KK44Gr44Ki44Os44Gg44Gj44Gf44Gu44Gn44CB44Op44Kk44OW44Op44Oq6Ieq5L2c44GX44Gm5YWs6ZaL44GX44Gm44G/44GfXShodHRwOi8vcWlpdGEuY29tL2ltdW5ldy9pdGVtcy8yZTljNDcyZTAwOTdlMzI5ZjJjZCkgYnkgW2ltdW5ld10oaHR0cDovL3FpaXRhLmNvbS9pbXVuZXcpCi0gMjAxNy8wNS8xNyAtIFtEaXNlw7FvIGRlIEFQSXMgY29uIE9wZW5BUEldKGh0dHBzOi8vd3d3LnNsaWRlc2hhcmUubmV0L3BqbW9saW5hL2Rpc2VvLWRlLWFwaXMtY29uLW9wZW5hcGkpIGJ5IFtQZWRybyBKLiBNb2xpbmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9wam1vbGluYSkgQCBbSlNEYXlFUyAyMDE3XShodHRwOi8vMjAxNy5qc2RheS5lcy8pCi0gMjAxNy8wNS8yMiAtIFtQcmVzZW50YXRpb24gb2YgdGhlIFZlcnQueC1Td2FnZ2VyIHByb2plY3RdKGh0dHA6Ly92ZXJ0eC5pby9ibG9nL3ByZXNlbnRhdGlvbi1vZi10aGUtdmVydC14LXN3YWdnZXItcHJvamVjdC8pIGJ5IFtAcGhpejcxXShodHRwOi8vZ2l0aHViLmNvbS9waGl6NzEpCi0gMjAxNy8wNS8yMiAtIFtBdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgeW91ciBBUEkgZnJvbSBhIHN3YWdnZXIgZmlsZSB1c2luZyBncmFkbGVdKGh0dHBzOi8vd3d3Lmpjb3JlLmNvbS8yMDE3LzA1LzIyL2F1dG9tYXRpY2FsbHktZ2VuZXJhdGluZy1hcGktdXNpbmctc3dhZ2dlci1hbmQtZ3JhZGxlLykgYnkgW0Rlbml6IFR1cmFuXShodHRwczovL3d3dy5qY29yZS5jb20vYXV0aG9yL2Rlbml6LykKLSAyMDE3LzA2LzIxIC0gW1N3YWdnZXIgUHJlc2VudGF0aW9uIC0gV2Fyc2F3IFJ1YnkgVXNlcnMgR3JvdXBdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dUNubkRNRlFCOFUpIGJ5IFtAcmFmYWxwZXRyeWthXShodHRwOi8vZ2l0aHViLmNvbS9yYWZhbHBldHJ5a2EpCi0gMjAxNy8wNi8yOSAtIFtNYWtpbmcgU0RLczogdGhlIGJlc3Bva2UsIHRoZSBob3BlZnVsIGFuZCB0aGUgZ2VuZXJhdGVkXShodHRwczovL2RldnJlbC5uZXQvZGV2ZWxvcGVyLWV4cGVyaWVuY2UvbWFraW5nLXNka3MtYmVzcG9rZS1ob3BlZnVsLWdlbmVyYXRlZCkgYnkgW1RyaXN0YW4gU29rb2xdKGh0dHBzOi8vZ2l0aHViLmNvbS90cmlzdGFuc29rb2wpIChbU3F1YXJlXShodHRwczovL2dpdGh1Yi5jb20vc3F1YXJlKSkgYXQgRGV2WGNvbiAyMDE3Ci0gMjAxNy8wNy8xMSAtIFtPcGVuQVBJIGRldmVsb3BtZW50IHdpdGggUHl0aG9uXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9UYWt1cm9XYWRhLzIwMTcwNzExLWV1cm8tcHl0aG9uMjAxNykgYnkgW+WSjOeUsOaLk+acl10oaHR0cHM6Ly9naXRodWIuY29tL3RheHBvbikgYXQgW0V1cm9QeXRob24gMjAxN10oaHR0cHM6Ly9lcDIwMTcuZXVyb3B5dGhvbi5ldS9lbi8pCi0gMjAxNy8wNy8yOSAtIFtIb3cgU3F1YXJlIG1ha2VzIGl0cyBTREtzXShodHRwczovL21lZGl1bS5jb20vc3F1YXJlLWNvcm5lci1ibG9nL2hvdy1zcXVhcmUtbWFrZXMtaXRzLXNka3MtNmEwZmQ3ZWE0YjJkKSBieSBbVHJpc3RhbiBTb2tvbF0oaHR0cHM6Ly9naXRodWIuY29tL3RyaXN0YW5zb2tvbCkgKFtTcXVhcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVhcmUpKQotIDIwMTcvMDcvMzEgLSBbSG93IHRvIEdlbmVyYXRlIGEgRGVwbG95YWJsZSBSRVNUIENYRjMgQXBwbGljYXRpb24gZnJvbSBhIFN3YWdnZXItQ29udHJhY3RdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Z002M3JKbFVIWlEpIGJ5IFtKb2hhbm5lcyBGaWFsYV0oaHR0cHM6Ly9naXRodWIuY29tL2pmaWFsYSkgQCBWb3h4ZWQgRGF5cyBWaWVubmEKLSAyMDE3LzA4LzExIC0gW1N3YWdnZXIgQ29kZWdlbiDoh6rliqjnlJ/miJBSZXRyb2ZpdCDku6PnoIFdKGh0dHBzOi8vanVlamluLmltL2VudHJ5LzU5OGQ4ZWI4NmZiOWEwM2M1MjQ1OWUyYSkgYnkgW+W+kOejil0oaHR0cDovL3d3dy5qaWFuc2h1LmNvbS91Lzc5MmM3MzhiMzNmYykKLSAyMDE3LzA4LzI0IC0gW0FQSXMgRmlyc3RdKGh0dHBzOi8vZW5naW5lZXJpbmcuc3F1YXJlc3BhY2UuY29tL2Jsb2cvMjAxNy9hcGlzLWZpcnN0KSBieSBbcm95a2FjaG91aF0oaHR0cHM6Ly9naXRodWIuY29tL3JveWthY2hvdWgpIChbU3F1YXJlXShodHRwczovL2dpdGh1Yi5jb20vc3F1YXJlKSkKLSAyMDE3LzA4LzMxIC0gW0JyaW5naW5nIEplbmtpbnMgUmVtb3RlIEFjY2VzcyBBUEkgVG8gVGhlIE1hc3Nlc10oaHR0cDovL2Jsb2cuY2xpZmZhbm8uY29tLzIwMTcvMDkvMDEvamVua2lucy13b3JsZC0yMDE3LykgYnkgW0NsaWZmYW5vIFN1YmFnaW9dKGh0dHA6Ly9jbGlmZmFuby5jb20pIGZyb20gW1NoaW5lIFNvbHV0aW9uc10oaHR0cHM6Ly9zaGluZXNvbHV0aW9ucy5jb20vKSBAIFtKZW5raW5zIFdvcmxkIDIwMTddKGh0dHBzOi8vamVua2luc3dvcmxkMjAxNjIwMTcuc2NoZWQuY29tLykKLSAyMDE3LzA5LzA4IC0gW1N3YWdnZXIgQ29kZWdlbiDjgafoh6rli5XnlJ/miJDjgZfjgZ/jgq/jg6njgqTjgqLjg7Pjg4hTREvjgpLkvb/jgYYoaU9T57eoKV0oaHR0cDovL2Jsb2cudGVjaGl1bS5qcC9lbnRyeS8yMDE3LzA5LzA4LzA3MTY1MCkgYnkgW2tmdXJ1ZV0oaHR0cDovL3Byb2ZpbGUuaGF0ZW5hLm5lLmpwL2tmdXJ1ZS8pCi0gMjAxNy8wOS8wOSAtIFtTd2FnZ2VyIENvZGVnZW4g44Gn6Ieq5YuV55Sf5oiQ44GX44Gf44Kv44Op44Kk44Ki44Oz44OIU0RL44KS5L2/44GGKFJ4U3dpZnQg57eoKV0oaHR0cDovL2Jsb2cudGVjaGl1bS5qcC9lbnRyeS8yMDE3LzA5LzA5LzExMzAwMykgYnkgW2tmdXJ1ZV0oaHR0cDovL3Byb2ZpbGUuaGF0ZW5hLm5lLmpwL2tmdXJ1ZS8pCi0gMjAxNy8wOS8wOSAtIFtPcGVuQVBJ44KS5Yip55So44GX44GfUHl0aG9uV2Vi44Ki44OX44Oq44Kx44O844K344On44Oz6ZaL55m6XShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9UYWt1cm9XYWRhL29wZW5hcGlweXRob253ZWIpIGJ5IFvlkoznlLDmi5PmnJddKGh0dHBzOi8vZ2l0aHViLmNvbS90YXhwb24pIGF0IFtQeUNvbiBKUCAyMDE3XShodHRwczovL3B5Y29uLmpwLzIwMTcvamEvKQotIDIwMTcvMDkvMjEgLSBbR2VuZXJhdGluZyBhbiBFbGFzdGljIENsb3VkIEVudGVycHJpc2UgQ2xpZW50XShodHRwczovL3d3dy5lbGFzdGljLmNvL2Jsb2cvZ2VuZXJhdGluZy1hbi1lbGFzdGljLWNsb3VkLWVudGVycHJpc2UtY2xpZW50KSBieSBbR3JlZyBNYXJ6b3VrYV0oaHR0cHM6Ly9naXRodWIuY29tL2dtYXJ6KSAoW0VsYXN0aWNdKGh0dHBzOi8vd3d3LmVsYXN0aWMuY28vKSkKLSAyMDE3LzA5LzI2IC0gW0hvdyB0byBVc2UgSW9UIEFwcGxpY2F0aW9uIEVuYWJsZW1lbnQgQXBpIEh1YiBKU09OIERlc2NyaXB0b3IgaW4gUG9zdG1hbiBhbmQgSG93IHRvIEdlbmVyYXRlIENsaWVudCBDb2RlXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcmFkdS1zaW1lbi8pIGJ5IFtSYWR1IFNpbWVuXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcmFkdS1zaW1lbi8pIChbU0FQXShodHRwczovL3d3dy5zYXAuY29tLykpCi0gMjAxNy8wOS8yOCAtIFtTd2FnZ2VyIENvZGVnZW7jgacgQVBJ44Kv44Op44Kk44Ki44Oz44OIZ2VtIOiHquWLleeUn+aIkCAjbTNrdF0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vanVudGFraS9zd2FnZ2VyLWNvZGVnZW5kZS1hcGlrdXJhaWFudG9nZW0temktZG9uZy1zaGVuZy1jaGVuZy1udW1iZXItbTNrdCkgYnkgW0p1bXBlaSBUYWtpeWFzdV0oaHR0cHM6Ly9naXRodWIuY29tL2p1bnRha2kpCi0gMjAxNy8wOS8zMCAtIFtTd2FnZ2Vy44Gu44OG44Oz44OX44Os44O844OI44KS6a2U5pS56YCg44GX44Gf6KmxICPmuIvosLdqYXZhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9pbnQxMjgvc3dhZ2dlci04MDMwOTIyNCkgYnkgW0hpZGV0YWtlIEl3YXRhXShodHRwczovL2dpdGh1Yi5jb20vaW50MTI4KSAoW05UVCBEQVRBIENvcnBvcmF0aW9uXShodHRwOi8vd3d3Lm50dGRhdGEuY29tL2dsb2JhbC9lbi8pKQotIDIwMTcvMTAvMDQgLSBbRW50ZXJwcmlzZS1mcmllbmRseSBKYXZhIGNsaWVudCBmb3IgTWljcm9zb2Z0IE1hY2hpbmUgTGVhcm5pbmcgU2VydmVyXShodHRwczovL2Jsb2dzLm1zZG4ubWljcm9zb2Z0LmNvbS9tbHNlcnZlci8yMDE3LzEwLzA0L2VudGVycHJpc2UtZnJpZW5kbHktamF2YS1jbGllbnQtZm9yLW1pY3Jvc29mdC1tYWNoaW5lLWxlYXJuaW5nLXNlcnZlci8pIGJ5IFtQcmF0aWsgUGFsbml0a2FyXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcHJhdGlrcGFsbml0a2FyLykgKFtNaWNyb3NvZnRdKGh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vKSkKLSAyMDE3LzEwLzA4IC0gW0dlbmVyYXRpbmcgYSBSRVNUIEFkYSBjbGllbnQgd2l0aCBPcGVuQVBJIGFuZCBTd2FnZ2VyIENvZGVnZW5dKGh0dHBzOi8vYmxvZy52YWNzLmZyL3ZhY3MvYmxvZ3MvcG9zdC5odG1sP3Bvc3Q9MjAxNy8xMC8wOC9HZW5lcmF0aW5nLWEtUkVTVC1BZGEtY2xpZW50LXdpdGgtT3BlbkFQSS1hbmQtU3dhZ2dlci1Db2RlZ2VuKSBieSBbU3RlcGhhbmUgQ2FycmV6XShodHRwczovL2dpdGh1Yi5jb20vc3RjYXJyZXopCi0gMjAxNy8xMS8wOCAtIFtBIEJlZ2lubmVyJ3MgR3VpZGUgdG8gQ29kZSBHZW5lcmF0aW9uIGZvciBSRVNUIEFQSXNdKGh0dHBzOi8vZ3VtLmNvL3N3YWdnZXJfY29kZWdlbl9iZWdpbm5lcikoZUJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL3R3aXR0ZXIuY29tL3dpbmczMjgpCi0gMjAxNy8xMS8xOCAtIFsxMOW5tOWJjeOBruODrOOCrOOCt+ODvOOCt+OCueODhuODoOOCkuOCteODvOODkOODvOOCteOCpOODiUtvdGxpbuOBp+ODleODq+ODquODi+ODpeODvOOCouODq+OBl+OBpuOBhOOCi+ipsSAjamp1Z19jY2MgI2NjY19nMl0oaHR0cHM6Ly9zcGVha2VyZGVjay5jb20vbWFlaGFyaW4vMTBuaWFuLXFpYW4tZmFsc2VyZWdhc2lzaXN1dGVtdXdvc2FiYXNhaWRva290bGluZGVodXJ1cmluaXl1YXJ1c2l0ZWlydWh1YS1udW1iZXItamp1Zy1jY2MtbnVtYmVyLWNjYy1nMikgYnkgW0hpZGVub3JpIE1hZWhhcmFdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWVoYXJpbikKLSAyMDE3LzExLzIxIC0gW3N3YWdnZXItY29kZWdlbiDjgYvjgonnnLrjgoHjgosgU3dpZnQ0XShodHRwczovL3NwZWFrZXJkZWNrLmNvbS9kX2RhdGUvc3dhZ2dlci1jb2RlZ2VuLWthcmF0aWFvLW1lcnUtc3dpZnQ0KSBieSBbRGFpa2kgTWF0c3VkYXRlXShodHRwczovL2dpdGh1Yi5jb20vZC1kYXRlKQotIDIwMTcvMTIvMDcgLSBbQVBJLWRyaXZlbiBkZXZlbG9wbWVudCB3aXRoIE9wZW5BUEkgYW5kIFN3YWdnZXIsIFBhcnQgMl0oaHR0cHM6Ly93d3cuaXR3b3JsZC5jb20vYXJ0aWNsZS8zMTk5MTkwL2FwaXMvYXBpLWRyaXZlbi1kZXZlbG9wbWVudC13aXRoLW9wZW5hcGktYW5kLXN3YWdnZXItcGFydC0yLmh0bWwpIGJ5IE1hdHRoZXcgVHlzb24KLSAyMDE3LzEyLzI5IC0gW1JFU1QgQVBJc+S7o+eggeeUn+aIkOaMh+WNl10oaHR0cHM6Ly9ndW1yb2FkLmNvbS9sL3N3YWdnZXJfY29kZWdlbl9iZWdpbm5lcl96aCkoZUJvb2spIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCksIFtYaW4gTWVuZ10oaHR0cHM6Ly9naXRodWIuY29tL3htZW5nMSkKLSAyMDE3LzEyLzIxIC0gW1VzaW5nIFByb3RvY29sIEJ1ZmZlciB0byBHZW5lcmF0ZSBTREsgYXQgSG9vdHN1aXRlXShodHRwOi8vY29kZS5ob290c3VpdGUuY29tL3VzaW5nLXByb3RvY29sLWJ1ZmZlci10by1nZW5lcmF0ZS1zZGstYXQtaG9vc3VpdGUvP2xpcGk9dXJuJTNBbGklM0FwYWdlJTNBZF9mbGFnc2hpcDNfbWVzc2FnaW5nJTNCeTRBVHozU0RSWHl2WEpKMTRMUXlzUSUzRCUzRCkgYnkgW0pveSBaaGFuZ10oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL2pveTh6aGFuZy8pCi0gMjAxOC8wMS8xMSAtIFtTd2FnZ2VyIOW3peWFt+euseS7i+e7jeWPiuS7o+eggeiHquWKqOeUn+aIkOekuuS+i10oaHR0cHM6Ly9naXRodWIuY29tL3FjdC9zd2FnZ2VyLWV4YW1wbGUpIGJ5IFtxY3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9xY3QpCi0gMjAxOC8wMS8xOSAtIFtHZW5lcm93YW5pZSBrb2R1IHVzxYJ1ZyBSRVNUIC0gcHJ6ZXdvZG5payBkbGEgcG9jesSFdGt1asSFY3ljaF0oaHR0cHM6Ly9ndW0uY28vc3dhZ2dlcl9jb2RlZ2VuX2JlZ2lubmVyX3BsKShlQm9vaykgYnkgW1dpbGxpYW0gQ2hlbmddKGh0dHBzOi8vZ2l0aHViLmNvbS93aW5nMzI4KSwgW1RvbWFzeiBQcnVzXShodHRwczovL2dpdGh1Yi5jb20vdG9tcGx1cyksIFtCYXJ0ZWsgS3J5emFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ia3J5emEpCi0gMjAxOC8wMi8wMyAtIFtXcml0aW5nIFJFU1QgQVBJcyB3aXRoIE9wZW5BUEkgYW5kIFN3YWdnZXIgQWRhXShodHRwczovL3d3dy5zbGlkZXNoYXJlLm5ldC9TdGVwaGFuZUNhcnJlejEvd3JpdGluZy1yZXN0LWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1zd2FnZ2VyLWFkYS9TdGVwaGFuZUNhcnJlejEvd3JpdGluZy1yZXN0LWFwaXMtd2l0aC1vcGVuYXBpLWFuZC1zd2FnZ2VyLWFkYSkgYnkgW1N0ZXBoYW5lIENhcnJlel0oaHR0cHM6Ly9naXRodWIuY29tL3N0Y2FycmV6KSBhdCBbRk9TREVNIDIwMThdKGh0dHBzOi8vZm9zZGVtLm9yZy8yMDE4KQotIDIwMTgvMDIvMjggLSBbT3BlbkFQSeKAk0FuIGVCYXkgUGVyc3BlY3RpdmVdKGh0dHBzOi8vd3d3LmViYXlpbmMuY29tL3N0b3JpZXMvYmxvZ3MvdGVjaC9vcGVuYXBpLWFuLWViYXktcGVyc3BlY3RpdmUvKSBieSBTaGVraGFyIEJhbmVyamVlIChlQmF5KQotIDIwMTgvMDMvMTYgLSBbUkVTVCBBUEnjga7jgZ/jgoHjga7jgrPjg7zjg4nnlJ/miJDlhaXploBdKGh0dHBzOi8vZ3Vtcm9hZC5jb20vbC9zd2FnZ2VyX2NvZGVnZW5fYmVnaW5uZXJfanApIGJ5IFtXaWxsaWFtIENoZW5nXShodHRwczovL2dpdGh1Yi5jb20vd2luZzMyOCksIFvkuK3ph47mmoHkurpdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY2tpbnRvc2gpLCBb5ZKM55Sw5ouT5pyXXShodHRwczovL2dpdGh1Yi5jb20vdGF4cG9uKQoKIyBTd2FnZ2VyIENvZGVnZW4gQ29yZSBUZWFtCgpTd2FnZ2VyIENvZGVnZW4gY29yZSB0ZWFtIG1lbWJlcnMgYXJlIGNvbnRyaWJ1dG9ycyB3aG8gaGF2ZSBiZWVuIG1ha2luZyBzaWduaWZpY2FudCBjb250cmlidXRpb25zIChyZXZpZXcgaXNzdWVzLCBmaXggYnVncywgbWFrZSBlbmhhbmNlbWVudHMsIGV0YykgdG8gdGhlIHByb2plY3Qgb24gYSByZWd1bGFyIGJhc2lzLgoKIyMgQ29yZSBUZWFtIE1lbWJlcnMKCgojIyBUZW1wbGF0ZSBDcmVhdG9yCkhlcmUgaXMgYSBsaXN0IG9mIHRlbXBsYXRlIGNyZWF0b3JzOgogKiBBUEkgQ2xpZW50czoKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEFra2EtU2NhbGE6IEBjY2hhZmVyCiAgICogQXBleDogQGFzbmVsbGluZwogICAqIEJhc2g6IEBia3J5emEKICAgKiBDKysgUkVTVDogQERhbmllbGt1MTUKICAgKiBDIyAoLk5FVCAyLjApOiBAd2hvCiAgICogQyMgKC5ORVQgU3RhbmRhcmQgMS4zICk6IEBHcm9uc2FrCiAgICogQyMgKC5ORVQgNC41IHJlZmFjdG9yZWQpOiBAamltc2NodWJlcnQKICAgKiBDbG9qdXJlOiBAeGhoCiAgICogRGFydDogQHlpc3NhY2hhcgogICAqIERhcnQgKHJlZmFjdG9yZWQgaW4gMi40LjApOiBAam9lcm5haHJlbnMKICAgKiBFbGl4aXI6IEBuaWt1CiAgICogRWxtOiBAdHJlbm5lbWFuCiAgICogRWlmZmVsOiBAanZlbGlsbGEKICAgKiBFcmxhbmc6IEB0c2xvdWdodGVyCiAgICogR3Jvb3Z5OiBAdmljdG9yZ2l0CiAgICogR286IEB3aW5nMzI4CiAgICogR28gKHJld3JpdHRlbiBpbiAyLjMuMCk6IEBhbnRpaGF4CiAgICogSGFza2VsbCAoaHR0cC1jbGllbnQpOiBAam9uc2Nob25pbmcKICAgKiBKYXZhIChGZWlnbik6IEBkYXZpZGtpc3MKICAgKiBKYXZhIChSZXRyb2ZpdCk6IEAwbGVnZwogICAqIEphdmEgKFJldHJvZml0Mik6IEBlbWlsaWFub2JvbmFzc2kKICAgKiBKYXZhIChKZXJzZXkyKTogQHhoaAogICAqIEphdmEgKG9raHR0cC1nc29uKTogQHhoaAogICAqIEphdmEgKFJlc3RUZW1wbGF0ZSk6IEBuYnJ1bm8KICAgKiBKYXZhIChSRVNURWFzeSk6IEBnYXlhdGhyaWdzCiAgICogSmF2YSAoVmVydHgpOiBAbG9wZXNtY2MKICAgKiBKYXZhIChHb29nbGUgQVBJcyBDbGllbnQgTGlicmFyeSk6IEBjaGFybGVzY2FwcHMKICAgKiBKYXZhIChSZXN0LWFzc3VyZWQpOiBAdmljbG92c2t5CiAgICogSmF2YXNjcmlwdC9Ob2RlSlM6IEBqZmlhbGEKICAgKiBKYXZhc2NyaXB0IChDbG9zdXJlLWFubm90YXRlZCBBbmd1bGFyKSBAYWNoZXcyMgogICAqIEpNZXRlcjogQGRhdmlka2lzcwogICAqIEtvdGxpbjogQGppbXNjaHViZXJ0CiAgICogTHVhOiBAZGF1cm5pbWF0b3IKICAgKiBQZXJsOiBAd2luZzMyOAogICAqIFBIUCAoR3V6emxlKTogQGJhYXJ0b3N6CiAgICogUG93ZXJTaGVsbDogQGJlYXRjcmFja2VyCiAgICogUjogQHJhbW5vdgogICAqIFJ1c3Q6IEBmYXJjYWxsZXIKICAgKiBSdXN0IChydXN0LXNlcnZlcik6IEBtZXRhc3dpdGNoCiAgICogU2NhbGEgKHNjYWxheiAmIGh0dHA0cyk6IEB0YnJvd24xOTc5CiAgICogU3dpZnQ6IEB0a3F1Ym8KICAgKiBTd2lmdCAzOiBAaGV4ZWxvbgogICAqIFN3aWZ0IDQ6IEBlaHljaGUKICAgKiBUeXBlU2NyaXB0IChOb2RlKTogIEBtaGFyZG9yZgogICAqIFR5cGVTY3JpcHQgKEFuZ3VsYXIxKTogIEBtaGFyZG9yZgogICAqIFR5cGVTY3JpcHQgKEZldGNoKTogQGxlb255dQogICAqIFR5cGVTY3JpcHQgKEFuZ3VsYXIyKTogQHJvbmktZnJhbnRjaGkKICAgKiBUeXBlU2NyaXB0IChqUXVlcnkpOiBAYmhlcmlsYQogKiBTZXJ2ZXIgU3R1YnMKICAgKiBBZGE6IEBzdGNhcnJlegogICAqIEMjIEFTUC5ORVQ1OiBAamltc2NodWJlcnQKICAgKiBDIyBOYW5jeUZYOiBAbXN0ZWZhbml1awogICAqIEMrKyBQaXN0YWNoZTogQHNlYnltaWFubwogICAqIEMrKyBSZXN0YmVkOiBAc3RrcndvcmsKICAgKiBFcmxhbmcgU2VydmVyOiBAZ2FsYXhpZQogICAqIEdvIFNlcnZlcjogQGd1b2h1YW5nCiAgICogSGFza2VsbCBTZXJ2YW50OiBAYWxnYXMKICAgKiBKYXZhIE1TRjRKOiBAc2FuamVld2EtbWFsYWxnb2RhCiAgICogSmF2YSBTcHJpbmcgQm9vdDogQGRpeWZyCiAgICogSmF2YSBVbmRlcnRvdzogQHN0ZXZlaHUKICAgKiBKYXZhIFBsYXkgRnJhbWV3b3JrOiBASkZDb3RlCiAgICogSmF2YSBQS01TVDogQGFuc2h1MjE4NSBAc2Fuc2h1bWFuIEBya3VtYXItcGsgQG5pbm9kcGlsbGFpCiAgICogSkFYLVJTIFJlc3RFYXN5OiBAY2hhbWVsZW9uODIKICAgKiBKQVgtUlMgQ1hGOiBAaGl2ZXNoaXAKICAgKiBKQVgtUlMgQ1hGIChDREkpOiBAbmlja2NtYXluYXJkCiAgICogSkFYLVJTIFJlc3RFYXN5IChKQm9zcyBFQVApOiBAamZpYWxhCiAgICogS290bGluOiBAamltc2NodWJlcnQKICAgKiBQSFAgTHVtZW46IEBhYmNzdW4KICAgKiBQSFAgU2xpbTogQGpmYXN0bmFjaHQKICAgKiBQSFAgU3ltZm9ueTogQGtzbTIKICAgKiBQSFAgWmVuZCBFeHByZXNzaXZlICh3aXRoIFBhdGggSGFuZGxlcik6IEBBcnRpY3VzCiAgICogUnVieSBvbiBSYWlscyA1OiBAemx4CiAgICogUnVzdCAocnVzdC1zZXJ2ZXIpOiBAbWV0YXN3aXRjaAogICAqIFNjYWxhIEZpbmNoOiBAamltc2NodWJlcnQKICAgKiBTY2FsYSBMYWdvbTogQGdta3VtYXIyMDA1CiAqIERvY3VtZW50YXRpb24KICAgKiBIVE1MIERvYyAyOiBAamhpdGNoY29jawogICAqIENvbmZsdWVuY2UgV2lraTogQGpoaXRjaGNvY2sKICogQ29uZmlndXJhdGlvbgogICAqIEFwYWNoZTI6IEBzdGtyd29yawoKIyMgSG93IHRvIGpvaW4gdGhlIGNvcmUgdGVhbQoKSGVyZSBhcmUgdGhlIHJlcXVpcmVtZW50cyB0byBiZWNvbWUgYSBjb3JlIHRlYW0gbWVtYmVyOgotIHJhbmsgd2l0aGluIHRvcCA1MCBpbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2dyYXBocy9jb250cmlidXRvcnMKICAtIHRvIGNvbnRyaWJ1dGUsIGhlcmUgYXJlIHNvbWUgZ29vZCBbc3RhcnRpbmcgcG9pbnRzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuL2lzc3Vlcz9xPWlzJTNBb3BlbitpcyUzQWlzc3VlK2xhYmVsJTNBJTIyaGVscCt3YW50ZWQlMjIpCi0gcmVndWxhciBjb250cmlidXRpb25zIHRvIHRoZSBwcm9qZWN0CiAgLSBhYm91dCAzIGhvdXJzIHBlciB3ZWVrCiAgLSBmb3IgY29udHJpYnV0aW9uLCBpdCBjYW4gYmUgYWRkcmVzc2luZyBpc3N1ZXMsIHJldmlld2luZyBQUnMgc3VibWl0dGVkIGJ5IG90aGVycywgc3VibWl0dGluZyBQUiB0byBmaXggYnVncyBvciBtYWtlIGVuaGFuY2VtZW50cywgZXRjCgogVG8gYmVjb21lIGEgVGVtcGxhdGUgQ3JlYXRvciwgc2ltcGx5IHN1Ym1pdCBhIFBSIGZvciBuZXcgQVBJIGNsaWVudCAoZS5nLiBSdXN0LCBFbGl4aXIpIG9yIHNlcnZlciBzdHViIChlLmcuIFJ1YnkgR3JhcGUpIGdlbmVyYXRvci4KCiMgU3dhZ2dlciBDb2RlZ2VuIFRlY2huaWNhbCBDb21taXR0ZWUKCk1lbWJlcnMgb2YgdGhlIFN3YWdnZXIgQ29kZWdlbiB0ZWNobmljYWwgY29tbWl0dGVlIHNob3VsZGVyIHRoZSBmb2xsb3dpbmcgcmVzcG9uc2liaWxpdGllczoKCi0gUHJvdmlkZXMgZ3VpZGFuY2UgYW5kIGRpcmVjdGlvbiB0byBvdGhlciB1c2VycwotIFJldmlld3MgcHVsbCByZXF1ZXN0cyBhbmQgaXNzdWVzCi0gSW1wcm92ZXMgdGhlIGdlbmVyYXRvciBieSBtYWtpbmcgZW5oYW5jZW1lbnRzLCBmaXhpbmcgYnVncyBvciB1cGRhdGluZyBkb2N1bWVudGF0aW9ucwotIFNldHMgdGhlIHRlY2huaWNhbCBkaXJlY3Rpb24gb2YgdGhlIGdlbmVyYXRvcgoKV2hvIGlzIGVsaWdpYmxlPyBUaG9zZSB3aG8gd2FudCB0byBqb2luIG11c3QgaGF2ZSBhdCBsZWFzdCAzIFBScyBtZXJnZWQgaW50byBhIGdlbmVyYXRvci4gKEV4Y2VwdGlvbnMgY2FuIGJlIGdyYW50ZWQgdG8gdGVtcGxhdGUgY3JlYXRvcnMgb3IgY29udHJpYnV0b3JzIHdobyBoYXZlIG1hZGUgYSBsb3Qgb2YgY29kZSBjaGFuZ2VzIHdpdGggbGVzcyB0aGFuIDMgbWVyZ2VkIFBScykKCiMjIE1lbWJlcnMgb2YgVGVjaG5pY2FsIENvbW1pdHRlZQoKfCBMYW5ndWFnZXMgICAgIHwgTWVtYmVyIChqb2luIGRhdGUpIHwKfDotLS0tLS0tLS0tLS0tfDotLS0tLS0tLS0tLS0tfAp8IEFjdGlvblNjcmlwdCB8ICAgICAgfAp8IEFkYSB8IEBzdGNhcnJleiAoMjAxOC8wMikgfAp8IEFuZHJvaWQgfCAgfAp8IEFwZXggIHwgICAgIHwKfCBCYXNoICB8IEBrZW5qb25lcy1jaXNjbyAoMjAxNy8wOSkgfAp8IEMrKyAgICAgIHwgfAp8IEMjICAgICAgICB8IEBtYW5kcmVhbiAoMjAxNy8wOCkgfAp8IENsb2p1cmUgICB8ICB8CnwgRGFydCAgICAgIHwgQGlyY2VjaG8gKDIwMTcvMDcpIHwKfCBFaWZmZWwgICAgfCB8CnwgRWxpeGlyICAgIHwgIHwKfCBFbG0gICAgICAgfCAgfAp8IEVybGFuZyAgICB8IHwKfCBHcm9vdnkgICAgfCAgfAp8IEdvICAgICAgICB8IHwKfCBIYXNrZWxsICAgfCB8CnwgSmF2YSAgICAgIHwgfAp8IEtvdGxpbiAgICAgfCB8CnwgTHVhICAgICB8IHwKfCBOb2RlSlMvSmF2YXNjcmlwdCB8IEBDb2RlTmluamFpICgyMDE3LzA3KSB8CnwgT2JqQyAgICAgIHwgIHwKfCBQZXJsICAgICAgfCB8CnwgUEhQICAgICAgfCBAZGthcmxvdmkgKDIwMTcvMDcpIEBtYW5kcmVhbiAoMjAxNy8wOCkgfAp8IFB5dGhvbiAgIHwgQGtlbmpvbmVzLWNpc2NvICgyMDE3LzExKXwKfCBSICAgICAgICB8ICB8CnwgUnVieSAgICAgIHwgQHpseCAoMjAxNy8wOSkgfAp8IFJ1c3QgICAgICB8IHwKfCBTY2FsYSAgICAgfCB8CnwgU3dpZnQgICAgIHwgQGVoeWNoZSAoMjAxNy8wOCkgfAp8IFR5cGVTY3JpcHQgfCB8CgojIFNlY3VyaXR5IGNvbnRhY3QKClBsZWFzZSBkaXNjbG9zZSBhbnkgc2VjdXJpdHktcmVsYXRlZCBpc3N1ZXMgb3IgdnVsbmVyYWJpbGl0aWVzIGJ5IGVtYWlsaW5nIFtzZWN1cml0eUBzd2FnZ2VyLmlvXShtYWlsdG86c2VjdXJpdHlAc3dhZ2dlci5pbyksIGluc3RlYWQgb2YgdXNpbmcgdGhlIHB1YmxpYyBpc3N1ZSB0cmFja2VyLgoKIyBMaWNlbnNlIGluZm9ybWF0aW9uIG9uIEdlbmVyYXRlZCBDb2RlCgpUaGUgU3dhZ2dlciBDb2RlZ2VuIHByb2plY3QgaXMgaW50ZW5kZWQgYXMgYSBiZW5lZml0IGZvciB1c2VycyBvZiB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIFNwZWNpZmljYXRpb24uICBUaGUgcHJvamVjdCBpdHNlbGYgaGFzIHRoZSBbTGljZW5zZV0oI2xpY2Vuc2UpIGFzIHNwZWNpZmllZC4gIEluIGFkZGl0aW9uLCBwbGVhc2UgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIHBvaW50czoKCiogVGhlIHRlbXBsYXRlcyBpbmNsdWRlZCB3aXRoIHRoaXMgcHJvamVjdCBhcmUgc3ViamVjdCB0byB0aGUgW0xpY2Vuc2VdKCNsaWNlbnNlKS4KKiBHZW5lcmF0ZWQgY29kZSBpcyBpbnRlbnRpb25hbGx5IF9ub3RfIHN1YmplY3QgdG8gdGhlIHBhcmVudCBwcm9qZWN0IGxpY2Vuc2UKCldoZW4gY29kZSBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIHByb2plY3QsIGl0IHNoYWxsIGJlIGNvbnNpZGVyZWQgKipBUyBJUyoqIGFuZCBvd25lZCBieSB0aGUgdXNlciBvZiB0aGUgc29mdHdhcmUuICBUaGVyZSBhcmUgbm8gd2FycmFudGllcy0tZXhwcmVzc2VkIG9yIGltcGxpZWQtLWZvciBnZW5lcmF0ZWQgY29kZS4gIFlvdSBjYW4gZG8gd2hhdCB5b3Ugd2lzaCB3aXRoIGl0LCBhbmQgb25jZSBnZW5lcmF0ZWQsIHRoZSBjb2RlIGlzIHlvdXIgcmVzcG9uc2liaWxpdHkgYW5kIHN1YmplY3QgdG8gdGhlIGxpY2Vuc2luZyB0ZXJtcyB0aGF0IHlvdSBkZWVtIGFwcHJvcHJpYXRlLgoKIyBMaWNlbnNlCgpgYGAKQ29weXJpZ2h0IDIwMTkgU21hcnRCZWFyIFNvZnR3YXJlCgpMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgpZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgW2FwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBdKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKClVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuClNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmBgYAo=
+ readmeEtag: '"3d4ae3ab0a17717662bf9cf105c22beafa71ae152baadfdd2c52ec08f6c9a78a"'
+ readmeLastModified: Fri, 29 Dec 2023 14:06:49 GMT
repositoryId: 2006876
description: >-
swagger-codegen contains a template-driven engine to generate
documentation, API clients and server stubs in different languages by
parsing your OpenAPI / Swagger definition.
created: '2011-07-06T14:26:48Z'
- updated: '2023-12-29T03:04:36Z'
+ updated: '2023-12-29T22:01:23Z'
language: Mustache
archived: false
- stars: 16226
+ stars: 16230
watchers: 418
forks: 6033
owner: swagger-api
logo: https://avatars.githubusercontent.com/u/7658037?v=4
license: Apache-2.0
- repoEtag: '"a4cb67365f55882286f468cf1fefa824db938e61f6be2967921954a78fa3a0b5"'
- repoLastModified: Fri, 29 Dec 2023 03:04:36 GMT
+ repoEtag: '"0338174125ecbc9e03301be860c4022f0b79e715f16a1650693d76d1157ab2e3"'
+ repoLastModified: Fri, 29 Dec 2023 22:01:23 GMT
foundInMaster: true
id: eda1e66e1b7805496e42f57851791a32
- source: https://openapi.tools/
@@ -3717,17 +3717,17 @@
OpenAPI (f.k.a Swagger) Specification code generator. Supports C#,
PowerShell, Go, Java, Node.js, TypeScript, Python
created: '2015-02-20T23:02:54Z'
- updated: '2023-12-28T15:58:32Z'
+ updated: '2023-12-29T08:56:02Z'
language: TypeScript
archived: false
- stars: 4395
+ stars: 4394
watchers: 819
- forks: 755
+ forks: 756
owner: Azure
logo: https://avatars.githubusercontent.com/u/6844498?v=4
license: MIT
- repoEtag: '"1b92beede8de63c1260557fea8ed62905e2b790b2eb79d79c2b248188b700564"'
- repoLastModified: Thu, 28 Dec 2023 15:58:32 GMT
+ repoEtag: '"3b98f57aebb37f2117b8e638fddaba87ff87f65061f4c33f97274254f1ee03f2"'
+ repoLastModified: Fri, 29 Dec 2023 08:56:02 GMT
foundInMaster: true
id: 648d92bca90bf58cd74407e0bcad2936
- source: https://openapi.tools/
@@ -3923,17 +3923,17 @@
repositoryId: 182520856
description: Generate OpenAPI specification for Laravel Applications
created: '2019-04-21T10:45:45Z'
- updated: '2023-12-23T16:17:39Z'
+ updated: '2023-12-29T07:44:29Z'
language: PHP
archived: false
- stars: 367
+ stars: 368
watchers: 12
forks: 79
owner: vyuldashev
logo: https://avatars.githubusercontent.com/u/1809081?v=4
license: MIT
- repoEtag: '"eac3ea2759258dc1296ce322459f6c1a8849db85b556b7c44a1398f5919c2d9b"'
- repoLastModified: Sat, 23 Dec 2023 16:17:39 GMT
+ repoEtag: '"cb54c0cca814cfe5f9c9598792965dcfb25a9e952bb92fecb0abd9dde4101675"'
+ repoLastModified: Fri, 29 Dec 2023 07:44:29 GMT
foundInMaster: true
id: ee05a2f19f3fd6fc886e5e4711ef400f
- source: https://openapi.tools/
@@ -4129,17 +4129,17 @@
applications. Currently targeting whitebox and blackbox testing of Web
APIs, like REST, GraphQL and RPC (e.g., gRPC and Thrift).
created: '2017-05-25T09:11:23Z'
- updated: '2023-12-22T03:01:08Z'
+ updated: '2023-12-29T16:12:34Z'
language: Kotlin
archived: false
- stars: 389
+ stars: 390
watchers: 23
forks: 71
owner: EMResearch
logo: https://avatars.githubusercontent.com/u/29148026?v=4
license: LGPL-3.0
- repoEtag: '"dcf9d2ca418c07dc7f9e315f8d80fe1ce70023716a5290cfe5604fa47ae13cce"'
- repoLastModified: Fri, 22 Dec 2023 03:01:08 GMT
+ repoEtag: '"ba13ae9bff8e1d3507b6287b82e0ae5d72a082b10263ef2f6103857b3a280983"'
+ repoLastModified: Fri, 29 Dec 2023 16:12:34 GMT
foundInMaster: true
id: eba0fd1e4a49eb507e337ad2266e9a16
- source: https://openapi.tools/
@@ -4248,17 +4248,17 @@
configuration and no coding effort. Tests are self-healing and do not
require maintenance.
created: '2020-04-02T13:14:39Z'
- updated: '2023-12-20T03:50:38Z'
+ updated: '2023-12-30T02:41:07Z'
language: Java
archived: false
- stars: 1032
+ stars: 1033
watchers: 11
forks: 71
owner: Endava
logo: https://avatars.githubusercontent.com/u/19396140?v=4
license: Apache-2.0
- repoEtag: '"9f313f9b98ab1fe91094605674209ca9dacd05e698734d405e943d50f0069ce0"'
- repoLastModified: Wed, 20 Dec 2023 03:50:38 GMT
+ repoEtag: '"1a1a72b81ddc38b5a54a81055a11e04119703f0b61f6f96b0475e3660fbe3ab0"'
+ repoLastModified: Sat, 30 Dec 2023 02:41:07 GMT
foundInMaster: true
- source: https://openapi.tools/
name: API Insights
@@ -4296,17 +4296,17 @@
Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS
library to convert OpenAPI Schema objects to proper JSON Schema.
created: '2020-01-17T21:37:32Z'
- updated: '2023-12-26T07:02:01Z'
+ updated: '2023-12-29T09:00:17Z'
language: TypeScript
archived: false
- stars: 210
+ stars: 209
watchers: 5
forks: 19
owner: openapi-contrib
logo: https://avatars.githubusercontent.com/u/49447320?v=4
license: MIT
- repoEtag: '"c2d4c88f2ea72650911cbe166caa10e0adb99ad3d2f9141ce170e271957cb568"'
- repoLastModified: Tue, 26 Dec 2023 07:02:01 GMT
+ repoEtag: '"d4be8f214df8b78d1adce90d18c849635b7c12c511740f20649bc49acca8242c"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:17 GMT
foundInMaster: true
id: f6608d418f20d73a1e15b74206edd45a
- source: https://openapi.tools/
@@ -4331,17 +4331,17 @@
Due to the OpenAPI v3.0 and JSON Schema discrepancy, you can use this JS
library to convert JSON Schema objects to OpenAPI Schema.
created: '2019-10-04T15:44:03Z'
- updated: '2023-12-19T11:42:05Z'
+ updated: '2023-12-29T09:00:09Z'
language: TypeScript
archived: false
- stars: 102
+ stars: 101
watchers: 4
forks: 15
owner: openapi-contrib
logo: https://avatars.githubusercontent.com/u/49447320?v=4
license: MIT
- repoEtag: '"575ff8809ca8e52e685c77bbc9ec83aafddac29a82a9b16c1e1a92328038c6e5"'
- repoLastModified: Tue, 19 Dec 2023 11:42:05 GMT
+ repoEtag: '"46ce846b58402e6ab464d204a7d095c4f84a015d5ce2b270d39b33e737ba9ce9"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:09 GMT
foundInMaster: true
id: c443b19d564b9a8e21fe8b6192f75f8f
- source:
@@ -4431,7 +4431,7 @@
owner: openapi-processor
logo: https://avatars.githubusercontent.com/u/66728774?v=4
license: Apache-2.0
- repoEtag: '"19a4b5a5187a20529768bcb56c99a152389b723bc59a7b9b15be84d53cc1fdbf"'
+ repoEtag: '"d91ea58dbaf50a82eacad73d24dce6dd7a992ea40d984e85227691868626ace4"'
repoLastModified: Mon, 25 Dec 2023 13:34:16 GMT
foundInMaster: true
- source: https://openapi.tools/
@@ -4548,7 +4548,7 @@
owner: ninofiliu
logo: https://avatars.githubusercontent.com/u/29477588?v=4
license: MIT
- repoEtag: '"0dbe30cfaaab1750d5aa31c54e1b75db8e05593942689ed098378d175e5f08af"'
+ repoEtag: '"00a5f13822729f5ba2660d09a8a0263a550bcc612d6c934cc8a8795f470fbc91"'
repoLastModified: Sun, 17 Sep 2023 20:53:12 GMT
foundInMaster: true
id: 90d109eb23c36d0136638c20f8f43cd3
@@ -4623,7 +4623,7 @@
owner: codekie
logo: https://avatars.githubusercontent.com/u/1512840?v=4
license: MIT
- repoEtag: '"9efc8dc231d899ac7a81fc21c86b27353e961b7732bd02001bc771155c14bbe1"'
+ repoEtag: '"bdd7e479097e337d3fbd7034966e5bfe9d116f19891a74c2afe4bb6d42cc62b6"'
repoLastModified: Fri, 22 Dec 2023 06:24:39 GMT
foundInMaster: true
id: 301e3f380f248daf345a88c8971d2a71
@@ -4732,7 +4732,7 @@
owner: github
logo: https://avatars.githubusercontent.com/u/9919?v=4
license: MIT
- repoEtag: '"6187fed26cc756c5a127368f3cc4ce7a51604bde67ad94031b7fe5947c1b7236"'
+ repoEtag: '"7b3c8c751c7c5006586f89b300ea4192a63bef103efac4dc5b342039b9836bb6"'
repoLastModified: Tue, 19 Dec 2023 10:49:43 GMT
foundInMaster: true
id: ec6a7a1e4a69a9beeb95bdebb88cb36d
@@ -4758,17 +4758,17 @@
repositoryId: 4238977
description: Automated JSON API documentation for API's built with Spring
created: '2012-05-06T06:38:57Z'
- updated: '2023-12-28T12:52:31Z'
+ updated: '2023-12-29T17:35:08Z'
language: Java
archived: false
- stars: 5882
+ stars: 5881
watchers: 269
forks: 1548
owner: springfox
logo: https://avatars.githubusercontent.com/u/11529357?v=4
license: Apache-2.0
- repoEtag: '"bd375162f8f083e7e08b1a5cb0347b0d193dc8ef5f6df79d7c7b7f5a4e37ca22"'
- repoLastModified: Thu, 28 Dec 2023 12:52:31 GMT
+ repoEtag: '"d81c5dfc2b4ac492dae8824ff88fd28426ef3a7056d4b01b33ca848798c9fd0f"'
+ repoLastModified: Fri, 29 Dec 2023 17:35:08 GMT
foundInMaster: true
id: 2addde4c497bf582f20025ccac2cda86
- source:
@@ -4826,17 +4826,17 @@
repositoryId: 36817565
description: The ZAP core project
created: '2015-06-03T16:55:01Z'
- updated: '2023-12-28T13:58:22Z'
+ updated: '2023-12-29T22:53:11Z'
language: Java
archived: false
- stars: 11574
+ stars: 11576
watchers: 400
forks: 2177
owner: zaproxy
logo: https://avatars.githubusercontent.com/u/6716868?v=4
license: Apache-2.0
- repoEtag: '"f4f3307ce8bf390961e3bc0bb04aed2413138a54731c2e229669d321b7a50477"'
- repoLastModified: Thu, 28 Dec 2023 13:58:22 GMT
+ repoEtag: '"409323a14ece702258d42469e794175be2a4433bf3f642f72bdd24b352850091"'
+ repoLastModified: Fri, 29 Dec 2023 22:53:11 GMT
foundInMaster: true
id: 9eedc1be44837a65f912bcf562844f39
- source: https://openapi.tools/
@@ -5089,17 +5089,17 @@
repositoryId: 1431547
description: Web APIs for Django. 🎸
created: '2011-03-02T17:13:56Z'
- updated: '2023-12-28T21:50:27Z'
+ updated: '2023-12-29T17:28:05Z'
language: Python
archived: false
- stars: 26875
+ stars: 26879
watchers: 622
- forks: 6835
+ forks: 6836
owner: encode
logo: https://avatars.githubusercontent.com/u/19159390?v=4
license: NOASSERTION
- repoEtag: '"550486d7949c5f4ce23350863985b523fb276963675ba89f11c7bfaa777dd01b"'
- repoLastModified: Thu, 28 Dec 2023 21:50:27 GMT
+ repoEtag: '"e6cd8d95fa78b8d24803fe30973c71be0d6791b2b854a513df7ca131e38ea0b1"'
+ repoLastModified: Fri, 29 Dec 2023 17:28:05 GMT
foundInMaster: true
id: fb8994c078a380cc3510b024f6ed1202
category: Server Implementations
@@ -5290,7 +5290,7 @@
owner: openapi-generators
logo: https://avatars.githubusercontent.com/u/84925606?v=4
license: MIT
- repoEtag: '"e5276f7167e8cbacc26a8c597ce64b59c3c42e673e75f975ebff9a37040303d9"'
+ repoEtag: '"e208262fb461b8b3e2f3c56212b84625870e7177c06411db0b4410b2f0060768"'
repoLastModified: Thu, 28 Dec 2023 06:48:17 GMT
foundInMaster: true
id: 784ec4adac4e47e4211ea74ef36dd5a5
@@ -5320,17 +5320,17 @@
Build beautiful, interactive API Docs with embeddable React or Web
Components, powered by OpenAPI and Markdown.
created: '2019-05-03T01:05:01Z'
- updated: '2023-12-28T12:18:56Z'
+ updated: '2023-12-29T16:40:48Z'
language: TypeScript
archived: false
- stars: 1327
+ stars: 1329
watchers: 20
forks: 158
owner: stoplightio
logo: https://avatars.githubusercontent.com/u/10767217?v=4
license: Apache-2.0
- repoEtag: '"c09fe60062360d50576835c9f5d72982b735c49836b845da9705aecabf02829d"'
- repoLastModified: Thu, 28 Dec 2023 12:18:56 GMT
+ repoEtag: '"cc7aecec76272b7e1ee82eaa3c8eb20286507a914eb2ff06758afe8237ce3d62"'
+ repoLastModified: Fri, 29 Dec 2023 16:40:48 GMT
foundInMaster: true
id: 2f94cc1fc980953b17a9979d4ff2e7ec
- source:
@@ -5456,17 +5456,17 @@
undefined user behaviour by auditing your API specifications, validating
them and running API security tests.
created: '2021-11-17T07:02:22Z'
- updated: '2023-12-27T10:08:03Z'
+ updated: '2023-12-29T21:36:37Z'
language: Rust
archived: false
- stars: 1002
+ stars: 1004
watchers: 13
forks: 80
owner: blst-security
logo: https://avatars.githubusercontent.com/u/54233087?v=4
license: Apache-2.0
- repoEtag: '"3c2bcb552edd790c0edd9bd5c42281613e4475dbba05c310c991701e5aba333b"'
- repoLastModified: Wed, 27 Dec 2023 10:08:03 GMT
+ repoEtag: '"01319849bbe536b275feeaf1e09608c3d2764fa3ac2d7debd9e8adb49d79f64b"'
+ repoLastModified: Fri, 29 Dec 2023 21:36:37 GMT
foundInMaster: true
name: Cherrybomb
category: Description Validators
@@ -5657,17 +5657,17 @@
(TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either
in yaml or json formats. 🍺
created: '2020-02-05T08:31:50Z'
- updated: '2023-12-28T22:31:15Z'
+ updated: '2023-12-29T11:08:29Z'
language: TypeScript
archived: false
- stars: 1922
+ stars: 1923
watchers: 9
forks: 235
owner: anymaniax
logo: https://avatars.githubusercontent.com/u/10516382?v=4
license: MIT
- repoEtag: '"9c5cfc354d24984803dfb54dbc20c164309ec2881ff42c389ea2e53e4468448d"'
- repoLastModified: Thu, 28 Dec 2023 22:31:15 GMT
+ repoEtag: '"7964b2cdb8a528b1af47197b5f8d7383a7fc2ec070003d81ff774a273491f5e7"'
+ repoLastModified: Fri, 29 Dec 2023 11:08:29 GMT
foundInMaster: true
- source:
- https://openapi.tools/
@@ -5765,7 +5765,7 @@
owner: pmcelhaney
logo: https://avatars.githubusercontent.com/u/51504?v=4
license: MIT
- repoEtag: '"0eff2a6fc471d9543512e877508babbfd31c05304573a987bfd741f8d73bc960"'
+ repoEtag: '"3ebf3ec0e6507dc495bf19d4eed017e8710d08fb340c6dbbdc82bb85a4079d1c"'
repoLastModified: Wed, 20 Dec 2023 22:37:00 GMT
category:
- Parsers
@@ -5887,17 +5887,17 @@
repositoryId: 161691324
description: Generate TypeScript types from OpenAPI 3 specs
created: '2018-12-13T20:28:01Z'
- updated: '2023-12-29T02:32:01Z'
+ updated: '2023-12-29T15:14:11Z'
language: TypeScript
archived: false
- stars: 3989
+ stars: 3991
watchers: 25
forks: 338
owner: drwpow
logo: https://avatars.githubusercontent.com/u/1369770?v=4
license: MIT
- repoEtag: '"eceed21437f3a8c09d276a191174c19cf1b5c5430c8b08aead676e3ae000d80a"'
- repoLastModified: Fri, 29 Dec 2023 02:32:01 GMT
+ repoEtag: '"69f3af6cd6cb3de19a8a44a80befe4332fc90f1d35c999b596fd0cda8136ab6d"'
+ repoLastModified: Fri, 29 Dec 2023 15:14:11 GMT
foundInMaster: true
- source:
- https://openapi.tools/
@@ -6195,7 +6195,7 @@
owner: znsio
logo: https://avatars.githubusercontent.com/u/75619722?v=4
license: MIT
- repoEtag: '"309b7719ce59ff2c506eca13e4e893b1662c3dc786baeb78b3be55ec3fbb0d42"'
+ repoEtag: '"6fe6071690848d899524234e3c0538d66c699bf38eb182cc61f0e8058c849eff"'
repoLastModified: Thu, 21 Dec 2023 08:45:36 GMT
foundInMaster: true
- source:
@@ -6308,17 +6308,17 @@
repositoryId: 586543156
description: OpenAPI to TypeScript, React-Query, Zod, Zodios, Faker.js, MSW and Axios.
created: '2023-01-08T14:15:23Z'
- updated: '2023-12-28T18:11:43Z'
+ updated: '2023-12-29T06:38:25Z'
language: TypeScript
archived: false
- stars: 281
+ stars: 282
watchers: 5
forks: 20
owner: kubb-project
logo: https://avatars.githubusercontent.com/u/122118236?v=4
license: MIT
- repoEtag: '"8d254d8242f96d5e7a12436bf91908d41eb14f59805ce1042201994f6bd80a98"'
- repoLastModified: Thu, 28 Dec 2023 18:11:43 GMT
+ repoEtag: '"b2af8a0cb4ab399b89c4af027e4594e7972f59ebf6e512ac5ef932de67e6cdaf"'
+ repoLastModified: Fri, 29 Dec 2023 06:38:25 GMT
foundInMaster: true
- source: https://openapi.tools/
name: KrakenD API Gateway
@@ -6472,17 +6472,17 @@
repositoryId: 654923338
description: Simplify your JsonSchema by combining allOf safely.
created: '2023-06-17T10:45:41Z'
- updated: '2023-12-26T08:03:55Z'
+ updated: '2023-12-29T22:01:11Z'
language: TypeScript
archived: false
- stars: 6
- watchers: 1
+ stars: 7
+ watchers: 2
forks: 3
owner: udamir
logo: https://avatars.githubusercontent.com/u/29271460?v=4
license: MIT
- repoEtag: '"669e49278dab3c4acf7346108ec292493bd8e50734562352f098723e0e74d09b"'
- repoLastModified: Tue, 26 Dec 2023 08:03:55 GMT
+ repoEtag: '"c1f6f2b9a23750eb37b8b7e2ba84dbd73dfdf88eab92886bc2de3966f5178e06"'
+ repoLastModified: Fri, 29 Dec 2023 22:01:11 GMT
foundInMaster: true
- source: https://openapi.tools/
name: api-ref-bundler
@@ -6503,17 +6503,17 @@
repositoryId: 507419359
description: Bundle all external $ref in Json based API document into single document
created: '2022-06-25T21:21:05Z'
- updated: '2023-12-04T20:40:02Z'
+ updated: '2023-12-29T22:00:56Z'
language: TypeScript
archived: false
- stars: 7
- watchers: 1
+ stars: 8
+ watchers: 2
forks: 1
owner: udamir
logo: https://avatars.githubusercontent.com/u/29271460?v=4
license: MIT
- repoEtag: '"d89a5b8b94107bdb71faa0beca8bc5479fd2e36deaf2db6569e1cd96de31e8de"'
- repoLastModified: Mon, 04 Dec 2023 20:40:02 GMT
+ repoEtag: '"355361c36f24d97eee014f679847de498c184d31a5d6fe4ba1b1b88aeacea6ce"'
+ repoLastModified: Fri, 29 Dec 2023 22:00:56 GMT
foundInMaster: true
- source: https://openapi.tools/
name: rswag
@@ -6538,17 +6538,17 @@
repositoryId: 29151578
description: Seamlessly adds a Swagger to Rails-based API's
created: '2015-01-12T19:08:10Z'
- updated: '2023-12-29T00:44:29Z'
+ updated: '2023-12-29T18:00:25Z'
language: Ruby
archived: false
- stars: 1809
+ stars: 1810
watchers: 27
forks: 403
owner: rswag
logo: https://avatars.githubusercontent.com/u/55741034?v=4
license: MIT
- repoEtag: '"5e86dcb7e48ffb8b81ffac75cba585eb8c341bf01d517c81610e15afbbe324a1"'
- repoLastModified: Fri, 29 Dec 2023 00:44:29 GMT
+ repoEtag: '"07d02d76decbeb62d3dbbd686b427b93af2244b487d69d175005ec4a7f4a61ff"'
+ repoLastModified: Fri, 29 Dec 2023 18:00:25 GMT
foundInMaster: true
- source: https://openapi.tools/
name: 🌿 Fern
@@ -6582,17 +6582,17 @@
repositoryId: 476820102
description: SDKs and Docs for your API
created: '2022-04-01T17:56:54Z'
- updated: '2023-12-27T15:24:02Z'
+ updated: '2023-12-29T22:44:53Z'
language: TypeScript
archived: false
- stars: 2022
+ stars: 2025
watchers: 10
forks: 85
owner: fern-api
logo: https://avatars.githubusercontent.com/u/102944815?v=4
license: MIT
- repoEtag: '"5d3a28740f7003eb46db13384c09490299f4eec3384ec0f3fa9cae18329b2e57"'
- repoLastModified: Wed, 27 Dec 2023 15:24:02 GMT
+ repoEtag: '"10858b01f902e7e2b06ecf5c28d37c0437657a54ab28999bc06dc9ea2f094c3e"'
+ repoLastModified: Fri, 29 Dec 2023 22:44:53 GMT
foundInMaster: true
sponsored: true
testimonial: >
@@ -6732,17 +6732,17 @@
securing, and managing APIs. Configuration is driven by Kubernetes CRDs,
labels, and selectors for effective GitOps.
created: '2023-07-04T15:34:00Z'
- updated: '2023-10-31T07:57:41Z'
+ updated: '2023-12-30T02:45:12Z'
language: Makefile
archived: false
- stars: 1
+ stars: 2
watchers: 10
forks: 6
owner: traefik
logo: https://avatars.githubusercontent.com/u/14280338?v=4
license: Apache-2.0
- repoEtag: '"372f8160b6fd7cae6daaf6b675bf0ce77f6426cca5495f9444c4ad4c05c90203"'
- repoLastModified: Tue, 31 Oct 2023 07:57:41 GMT
+ repoEtag: '"4ace86714bad3c62461f29f65fe9a133e999595181ecf843d8ef0455a97030f4"'
+ repoLastModified: Sat, 30 Dec 2023 02:45:12 GMT
category:
- Documentation
- Gateway
@@ -6769,17 +6769,17 @@
repositoryId: 245763170
description: Huma REST/HTTP API Framework for Golang with OpenAPI 3
created: '2020-03-08T06:19:51Z'
- updated: '2023-12-25T23:05:36Z'
+ updated: '2023-12-29T13:46:45Z'
language: Go
archived: false
- stars: 311
+ stars: 312
watchers: 12
forks: 37
owner: danielgtaylor
logo: https://avatars.githubusercontent.com/u/106826?v=4
license: MIT
- repoEtag: '"484dfa8b98eb9e488c431e69488681eca688fbf8a474b2d3fe402b34d6802aa2"'
- repoLastModified: Mon, 25 Dec 2023 23:05:36 GMT
+ repoEtag: '"7ba12be440d869e7cc67c0c82fa3e6b42cc37fb124a69c1e9b1c137cce11045a"'
+ repoLastModified: Fri, 29 Dec 2023 13:46:45 GMT
foundInMaster: true
category:
- Auto Generators
@@ -6813,17 +6813,17 @@
FastAPI framework, high performance, easy to learn, fast to code, ready
for production
created: '2018-12-08T08:21:47Z'
- updated: '2023-12-29T02:56:50Z'
+ updated: '2023-12-30T03:27:16Z'
language: Python
archived: false
- stars: 66386
+ stars: 66423
watchers: 655
- forks: 5613
+ forks: 5617
owner: tiangolo
logo: https://avatars.githubusercontent.com/u/1326112?v=4
license: MIT
- repoEtag: '"76aaaa5ea6af7347bdf34051d34d15f91457b56cd8ca495e8633cef9875bd69f"'
- repoLastModified: Fri, 29 Dec 2023 02:56:50 GMT
+ repoEtag: '"a5fa6d4460a0d163c383cb8d70477b9a61ca63914e7df0bc326c1e99c1fa6b29"'
+ repoLastModified: Sat, 30 Dec 2023 03:27:16 GMT
foundInMaster: true
id: 8e11fa45d6f090aa2ed68317cf5a7215
- source:
@@ -6841,17 +6841,17 @@
Swagger UI is a collection of HTML, JavaScript, and CSS assets that
dynamically generate beautiful documentation from a Swagger-compliant API.
created: '2011-07-15T22:56:39Z'
- updated: '2023-12-29T03:01:09Z'
+ updated: '2023-12-30T02:42:50Z'
language: JavaScript
archived: false
- stars: 24960
+ stars: 24964
watchers: 651
forks: 8848
owner: swagger-api
logo: https://avatars.githubusercontent.com/u/7658037?v=4
license: Apache-2.0
- repoEtag: '"b0fd62a6fd8cfee9b29ff9c1b8ef56143c5e41cf6ee4e6a599d3e3c2d166df23"'
- repoLastModified: Fri, 29 Dec 2023 03:01:09 GMT
+ repoEtag: '"2dad1e8db97ee3e1ee855c6b478cdd0dac1dfbe0ab7efd6c5e41e815424d3bdc"'
+ repoLastModified: Sat, 30 Dec 2023 02:42:50 GMT
foundInMaster: true
name: swagger-ui
homepage: https://github.com/swagger-api/swagger-UI
@@ -6884,17 +6884,17 @@
repositoryId: 45250726
description: 📘 OpenAPI/Swagger-generated API Reference Documentation
created: '2015-10-30T12:53:02Z'
- updated: '2023-12-29T00:22:04Z'
+ updated: '2023-12-30T01:54:04Z'
language: TypeScript
archived: false
- stars: 21681
+ stars: 21685
watchers: 288
forks: 2266
owner: Redocly
logo: https://avatars.githubusercontent.com/u/32099856?v=4
license: MIT
- repoEtag: '"009437877ceca4e7c1e70b24e483e8b1b28a4c9946265fbeefd748aba4b17128"'
- repoLastModified: Fri, 29 Dec 2023 00:22:04 GMT
+ repoEtag: '"9aae777dd5a7184cfb1b6d8a513da4e140646e9aa55fef48b66724652887e93d"'
+ repoLastModified: Sat, 30 Dec 2023 01:54:04 GMT
foundInMaster: true
v3_1: true
id: 2725d6db6977c1dd12ceaf9701787e07
@@ -6913,17 +6913,17 @@
Full stack, modern web application generator. Using FastAPI, PostgreSQL as
database, Docker, automatic HTTPS and more.
created: '2019-02-23T15:08:34Z'
- updated: '2023-12-28T23:26:22Z'
+ updated: '2023-12-30T01:50:42Z'
language: TypeScript
archived: false
- stars: 13996
- watchers: 229
+ stars: 14017
+ watchers: 231
forks: 2507
owner: tiangolo
logo: https://avatars.githubusercontent.com/u/1326112?v=4
license: MIT
- repoEtag: '"fa1a8922cb69b09ac617efd87479df522db5c3fd5a47ae2ab16b2d2943b2f7f0"'
- repoLastModified: Thu, 28 Dec 2023 23:26:22 GMT
+ repoEtag: '"62eac25520f16576d12af22d5e337a5ebb2d2a1cd64340c1916d376e02560336"'
+ repoLastModified: Sat, 30 Dec 2023 01:50:42 GMT
foundInMaster: true
category: Server Implementations
id: fd87348d3e68e8838b35571b2a88b798
@@ -6959,25 +6959,25 @@
v3: true
repositoryMetadata:
base64Readme: >-
- PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tIiBhbHQ9Im1vY2tvb24gbG9nbyI+CiAgICA8aW1nIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL2xvZ28tc3F1YXJlLWFwcC5wbmciPgogIDwvYT4KICA8YnI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1dlYnNpdGUtR28tZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xOTk3YzYiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTmV3c2xldHRlci1TdWJzY3JpYmUtZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlIi8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vR2V0TW9ja29vbiI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHdpdHRlcl9AR2V0TW9ja29vbi1mb2xsb3ctYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTFkYTFmMiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL2Rpc2NvcmQuZ2cvRnRKamtlaktHcCI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1nby1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NmM4NGQ5JmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGJyPgogIDxicj4KICA8aDE+TW9ja29vbjogYXdlc29tZSBBUEkgbW9ja2luZzwvaDE+CjwvZGl2PgoKTW9ja29vbiBpcyB0aGUgZWFzaWVzdCBhbmQgcXVpY2tlc3Qgd2F5IHRvIHJ1biBtb2NrIEFQSXMgbG9jYWxseS4gTm8gcmVtb3RlIGRlcGxveW1lbnQsIG5vIGFjY291bnQgcmVxdWlyZWQsIGZyZWUgYW5kIG9wZW4tc291cmNlLgoKSXQncyBhIGRlc2t0b3AgYXBwbGljYXRpb24gYW5kIGEgW0NMSV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9jbGkvKSB0aGF0IGhlbHAgeW91IHdvcmsgZmFzdGVyIHdpdGggQVBJcyBieSBtb2NraW5nIHRoZW0uIEludGVncmF0ZSB0aGlyZC1wYXJ0eSBBUElzIHF1aWNrZXIsIGltcHJvdmUgeW91ciBpbnRlZ3JhdGlvbiB0ZXN0cywgc3BlZWQgdXAgeW91ciBkZXZlbG9wbWVudCwgZXRjLgoK4p6h77iPIFtEb3dubG9hZF0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb3dubG9hZC8pCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgd2lkdGg9IjUwJSIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9oZXJvLXJlcG8ucG5nIj4KPC9kaXY+CgojIyBGZWF0dXJlcwoKTW9ja29vbiBvZmZlcnMgbWFueSBmZWF0dXJlczoKCi0gdW5saW1pdGVkIG51bWJlciBvZiBtb2NrIGxvY2FsIHNlcnZlcnMgYW5kIHJvdXRlcwotIENMSSB0byBydW4geW91ciBtb2NrIGluIGhlYWRsZXNzIGVudmlyb25tZW50cywgQ0ksIGV0Yy4KLSBjb21wbGV0ZSBjb250cm9sIG9uIHJvdXRlcyBkZWZpbml0aW9uOiBIVFRQIG1ldGhvZHMgYW5kIHN0YXR1c2VzLCByZWdleCBwYXRocywgZmlsZSBzZXJ2aW5nLCBjdXN0b20gaGVhZGVycywgZXRjLgotIE9wZW5BUEkgY29tcGF0aWJpbGl0eQotIFJlY29yZC9sb2dzIG9mIGFsbCBlbnRlcmluZyBhbmQgZm9yd2FyZGVkIHJlcXVlc3RzCi0gSlNPTiB0ZW1wbGF0aW5nCi0gcHJveHkgZm9yd2FyZGluZyBtb2RlCi0gSFRUUFMgc3VwcG9ydAoKWW91IGNhbiBjaGVjayB0aGUgW2NvbXBsZXRlIGxpc3RdKGh0dHBzOi8vbW9ja29vbi5jb20vZmVhdHVyZXMvKSBvbiB0aGUgd2Vic2l0ZS4KCi0tLQoKIyMgT3VyIHNwb25zb3JzCgojIyMgUGxhdGludW0KCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ij4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5ibG9nLzIwMjMtMDQtMTItZ2l0aHViLWFjY2VsZXJhdG9yLW91ci1maXJzdC1jb2hvcnQtYW5kLXdoYXRzLW5leHQvIj4KICAgICAgPHBpY3R1cmU+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2dpdGh1Yi5wbmciPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyIgYWx0PSJHaXRIdWIgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSJodHRwczovL2xvY2FsYXp5LmNvbS9yZWdpc3Rlcj9yZWY9YTlDaURDNjFnT2FjLWF6TyI+CiAgICAgIDxwaWN0dXJlPgogICAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xpZ2h0L2xvY2FsYXp5LnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xvY2FsYXp5LnBuZyI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9saWdodC9sb2NhbGF6eS5wbmciIGFsdD0iTG9jYWxhenkgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSJodHRwczovL3d3dy5wZWFrY3J5cHRvLmNvbS8iPgogICAgICA8cGljdHVyZT4KICAgICAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9saWdodC9wZWFrY3J5cHRvLnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL3BlYWtjcnlwdG8ucG5nIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xpZ2h0L3BlYWtjcnlwdG8ucG5nIiBhbHQ9IlBlYWtjcnlwdG8gbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4KPC9kaXY+CgojIyMgR29sZAoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MjBweDsiPiAgCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZGV2bWFyay5haS9mZXJuLz91dG1fc291cmNlPW1vY2tvb24mdXRtX2xvYz1yZWFkbWUmdXRtX3R5cGU9bG9nbyI+ICAKICAgICAgPGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2Zlcm4ucG5nIiBhbHQ9IkZlcm4gbG9nbyIgLz4KICA8L2E+CjwvZGl2PgoKIyMjIFNpbHZlcgoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MjBweDsiPiAgCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZW1xeC5pby8iPiAgCiAgICAgIDxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9lbXF4LnBuZyIgYWx0PSJQZWFrY3J5cHRvIGxvZ28iIC8+CiAgPC9hPgo8L2Rpdj4KCk1vY2tvb24gaXMgYW4gb3Blbi1zb3VyY2UgcHJvamVjdCBidWlsdCBieSB2b2x1bnRlZXIgbWFpbnRhaW5lcnMuIElmIHlvdSBsaWtlIG91ciBhcHBsaWNhdGlvbiwgcGxlYXNlIGNvbnNpZGVyIHNwb25zb3JpbmcgdXMgYW5kIGpvaW4gYWxsIHRoZSBbU3BvbnNvcnMgYW5kIEJhY2tlcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL2JhY2tlcnMubWQpIHdobyBoZWxwZWQgdGhpcyBwcm9qZWN0IG92ZXIgdGltZSEKCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ij4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL21vY2tvb24iPjxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29yLWJ0bi5wbmc/IiB3aWR0aD0iMjUwIiBhbHQ9InNwb25zb3IgYnV0dG9uIiAvPjwvYT4KPC9kaXY+CgotLS0KCiMjIERvd25sb2FkIHRoZSBkZXNrdG9wIGFwcGxpY2F0aW9uCgpZb3UgY2FuIGdldCBNb2Nrb29uIGRlc2t0b3AncyBbbGF0ZXN0IHJlbGVhc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vcmVsZWFzZXMvbGF0ZXN0KSBkaXJlY3RseSBmcm9tIHRoaXMgcmVwb3NpdG9yeSBvciBvbiB0aGUgb2ZmaWNpYWwgW3dlYnNpdGVdKGh0dHBzOi8vbW9ja29vbi5jb20vZG93bmxvYWQvKS4gTW9ja29vbiBkZXNrdG9wIGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2g6CgpNYWNPUzoKCi0gW19Ib21lYnJld19dKGh0dHBzOi8vZm9ybXVsYWUuYnJldy5zaC9jYXNrL21vY2tvb24pOiBgYnJldyBpbnN0YWxsIC0tY2FzayBtb2Nrb29uYC4KCldpbmRvd3M6CgotIF93aW5nZXRfOiBgd2luZ2V0IGluc3RhbGwgbW9ja29vbmAuCi0gW19DaG9jb2xhdGV5X10oaHR0cHM6Ly9jb21tdW5pdHkuY2hvY29sYXRleS5vcmcvcGFja2FnZXMvbW9ja29vbik6IGBjaG9jbyBpbnN0YWxsIG1vY2tvb25gLgotIFtfV2luZG93cyBTdG9yZV9dKGh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vZW4tdXMvcC9tb2Nrb29uLzlwazhkbXNuMDBqaikKCkxpbnV4OgoKLSBbX1NuYXAgc3RvcmVfXShodHRwczovL3NuYXBjcmFmdC5pby9tb2Nrb29uKTogYHNuYXAgaW5zdGFsbCBtb2Nrb29uYC4KLSBbX0FVUl9dKGh0dHBzOi8vYXVyLmFyY2hsaW51eC5vcmcvcGFja2FnZXMvbW9ja29vbi1iaW4pOiBgeWF5IC1TIG1vY2tvb24tYmluYC4KCiMjIEluc3RhbGwgdGhlIENMSQoKTW9ja29vbiBDTEkgaXMgYXZhaWxhYmxlIGFzIGFuIFtOUE0gcGFja2FnZV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG1vY2tvb24vY2xpKS4gUGxlYXNlIGNoZWNrIG91ciBbZGVkaWNhdGVkIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL3BhY2thZ2VzL2NsaS9SRUFETUUubWQpIHRvIGxlYXJuIGhvdyB0byBpbnN0YWxsIGFuZCB1c2UgaXQuCgojIyBVc2UgaW4gY2xvdWQgZnVuY3Rpb25zIGFuZCBzZXJ2ZXJsZXNzIGVudmlyb25tZW50cwoKTW9ja29vbidzIFNlcnZlcmxlc3MgW05QTSBwYWNrYWdlXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbW9ja29vbi9zZXJ2ZXJsZXNzKSBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBydW4gTW9ja29vbidzIG1vY2sgQVBJcyBpbiBjbG91ZCBmdW5jdGlvbnMgYW5kIHNlcnZlcmxlc3MgZW52aXJvbm1lbnRzOiBBV1MgTGFtYmRhLCBHQ1AgRnVuY3Rpb25zLCBGaXJlYmFzZSBGdW5jdGlvbnMsIGV0Yy4KClBsZWFzZSBjaGVjayBvdXIgW2RlZGljYXRlZCBkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Jsb2IvbWFpbi9wYWNrYWdlcy9zZXJ2ZXJsZXNzL1JFQURNRS5tZCkgdG8gbGVhcm4gaG93IHRvIHVzZSBpdC4KCiMjIFN1YnNjcmliZSB0byBNb2Nrb29uIFBybwoKV2l0aCBhZHZhbmNlZCBmZWF0dXJlcyBmb3Igc29sbyBkZXZlbG9wZXJzIGFuZCB0ZWFtcywgTW9ja29vbiBQcm8gc3VwZXJjaGFyZ2VzIHlvdXIgQVBJIGRldmVsb3BtZW50OgoKLSDwn6SWIFtBSSBwb3dlcmVkIEFQSSBtb2NraW5nXShodHRwczovL21vY2tvb24uY29tL2FpLXBvd2VyZWQtYXBpLW1vY2tpbmcvKQotIPCfk4MgQWNjZXNzIHRvIGRvemVucyBvZiBbcmVhZHkgdG8gdXNlIEpTT04gdGVtcGxhdGVzXShodHRwczovL21vY2tvb24uY29tL3RlbXBsYXRlcy8pLgotIPCfkqwgUHJpb3JpdHkgc3VwcG9ydCBhbmQgdHJhaW5pbmcuCgpVcGdyYWRlIHRvZGF5IGFuZCB0YWtlIHlvdXIgQVBJIGRldmVsb3BtZW50IHRvIHRoZSBuZXh0IGxldmVsLgoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MjBweDsiPgo8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tL3Byby8iPjxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9wcm8tYnRuLnBuZz8iIHdpZHRoPSIyNTAiIGFsdD0icHJvIGJ1dHRvbiIgLz48L2E+CjwvZGl2PgoKIyMgTW9ja29vbidzIGRvY3VtZW50YXRpb24KCllvdSB3aWxsIGZpbmQgTW9ja29vbidzIFtkb2N1bWVudGF0aW9uXShodHRwczovL21vY2tvb24uY29tL2RvY3MvbGF0ZXN0KSBvbiB0aGUgb2ZmaWNpYWwgd2Vic2l0ZS4gSXQgY292ZXJzIE1vY2tvb24ncyBtb3N0IGNvbXBsZXggZmVhdHVyZXMuIEZlZWwgZnJlZSB0byBjb250cmlidXRlIG9yIGFzayBmb3IgbmV3IHRvcGljcyB0byBiZSBjb3ZlcmVkLgoKIyMgQ2hhbmdlbG9ncwoKWW91IHdpbGwgZmluZCBNb2Nrb29uIGFwcGxpY2F0aW9ucyBbY2hhbmdlbG9nc10oaHR0cHM6Ly9tb2Nrb29uLmNvbS9yZWxlYXNlcy8pIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLgoKIyMgU3VwcG9ydC9mZWVkYmFjawoKWW91IGNhbiBkaXNjdXNzIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBNb2Nrb29uLCBhbmQgYXNrIGZvciBoZWxwLCBvbiB0aGUgW29mZmljaWFsIGNvbW11bml0eV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9kaXNjdXNzaW9ucykuIEl0J3MgYWxzbyBhIGdvb2QgcGxhY2UgdG8gZGlzY3VzcyBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIGJlZm9yZSBvcGVuaW5nIGFuIGlzc3VlIG9uIHRoaXMgcmVwb3NpdG9yeS4gRm9yIG1vcmUgY2hhdC1saWtlIGRpc2N1c3Npb25zLCB5b3UgY2FuIGFsc28gam9pbiBvdXIgW0Rpc2NvcmQgc2VydmVyXShodHRwczovL2Rpc2NvcmQuZ2cvRnRKamtlaktHcCkuCgojIyBDb250cmlidXRpbmcKCklmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBjb250cmlidXRpbmcgdG8gTW9ja29vbiwgcGxlYXNlIHRha2UgYSBsb29rIGF0IHRoZSBbY29udHJpYnV0aW5nIGd1aWRlbGluZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL0NPTlRSSUJVVElORy5tZCkuCgpQbGVhc2UgYWxzbyB0YWtlIGEgbG9vayBhdCBvdXIgW0NvZGUgb2YgQ29uZHVjdF0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vQ09ERV9PRl9DT05EVUNULm1kKS4KCiMjIFJvYWRtYXAKCklmIHlvdSB3YW50IHRvIGtub3cgd2hhdCB3aWxsIGJlIGNvbWluZyBpbiB0aGUgbmV4dCByZWxlYXNlIHlvdSBjYW4gY2hlY2sgdGhlIGdsb2JhbCBbUm9hZG1hcF0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9wdWJsaWMtcm9hZG1hcC8pLgoKTmV3IHJlbGVhc2VzIHdpbGwgYmUgYW5ub3VuY2VkIG9uIE1vY2tvb24ncyBbVHdpdHRlciBhY2NvdW50IEBHZXRNb2Nrb29uXShodHRwczovL3R3aXR0ZXIuY29tL0dldE1vY2tvb24pIGFuZCB0aHJvdWdoIHRoZSBuZXdzbGV0dGVyIHRvIHdoaWNoIHlvdSBjYW4gc3Vic2NyaWJlIFtoZXJlXShodHRwczovL21vY2tvb24uY29tL25ld3NsZXR0ZXIvKS4K
- readmeEtag: '"84ee88c43eea5474df46dc04413799e3c5985e034aca4e491071b0ecf613b80e"'
- readmeLastModified: Thu, 02 Nov 2023 18:58:20 GMT
+ PGRpdiBhbGlnbj0iY2VudGVyIj4KICA8YSBocmVmPSJodHRwczovL21vY2tvb24uY29tIiBhbHQ9Im1vY2tvb24gbG9nbyI+CiAgICA8aW1nIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL2xvZ28tc3F1YXJlLWFwcC5wbmciPgogIDwvYT4KICA8YnI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS8iPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1dlYnNpdGUtR28tZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmNvbG9yQj0xOTk3YzYiLz48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9uZXdzbGV0dGVyLyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTmV3c2xldHRlci1TdWJzY3JpYmUtZ3JlZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlIi8+PC9hPgogIDxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vR2V0TW9ja29vbiI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHdpdHRlcl9AR2V0TW9ja29vbi1mb2xsb3ctYmx1ZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUmY29sb3JCPTFkYTFmMiIvPjwvYT4KICA8YSBocmVmPSJodHRwczovL2Rpc2NvcmQuZ2cvRnRKamtlaktHcCI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC1nby1ibHVlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSZjb2xvckE9NmM4NGQ5JmNvbG9yQj0xZGExZjIiLz48L2E+CiAgPGJyPgogIDxicj4KICA8aDE+TW9ja29vbjogYXdlc29tZSBBUEkgbW9ja2luZzwvaDE+CjwvZGl2PgoKTW9ja29vbiBpcyB0aGUgZWFzaWVzdCBhbmQgcXVpY2tlc3Qgd2F5IHRvIHJ1biBtb2NrIEFQSXMgbG9jYWxseS4gTm8gcmVtb3RlIGRlcGxveW1lbnQsIG5vIGFjY291bnQgcmVxdWlyZWQsIGZyZWUgYW5kIG9wZW4tc291cmNlLgoKSXQncyBhIGRlc2t0b3AgYXBwbGljYXRpb24gYW5kIGEgW0NMSV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9jbGkvKSB0aGF0IGhlbHAgeW91IHdvcmsgZmFzdGVyIHdpdGggQVBJcyBieSBtb2NraW5nIHRoZW0uIEludGVncmF0ZSB0aGlyZC1wYXJ0eSBBUElzIHF1aWNrZXIsIGltcHJvdmUgeW91ciBpbnRlZ3JhdGlvbiB0ZXN0cywgc3BlZWQgdXAgeW91ciBkZXZlbG9wbWVudCwgZXRjLgoK4p6h77iPIFtEb3dubG9hZF0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb3dubG9hZC8pCgo8ZGl2IGFsaWduPSJjZW50ZXIiPgogIDxpbWcgd2lkdGg9IjUwJSIgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9oZXJvLXJlcG8ucG5nIj4KPC9kaXY+CgojIyBGZWF0dXJlcwoKTW9ja29vbiBvZmZlcnMgbWFueSBmZWF0dXJlczoKCi0gdW5saW1pdGVkIG51bWJlciBvZiBtb2NrIGxvY2FsIHNlcnZlcnMgYW5kIHJvdXRlcwotIENMSSB0byBydW4geW91ciBtb2NrIGluIGhlYWRsZXNzIGVudmlyb25tZW50cywgQ0ksIGV0Yy4KLSBjb21wbGV0ZSBjb250cm9sIG9uIHJvdXRlcyBkZWZpbml0aW9uOiBIVFRQIG1ldGhvZHMgYW5kIHN0YXR1c2VzLCByZWdleCBwYXRocywgZmlsZSBzZXJ2aW5nLCBjdXN0b20gaGVhZGVycywgZXRjLgotIE9wZW5BUEkgY29tcGF0aWJpbGl0eQotIFJlY29yZC9sb2dzIG9mIGFsbCBlbnRlcmluZyBhbmQgZm9yd2FyZGVkIHJlcXVlc3RzCi0gSlNPTiB0ZW1wbGF0aW5nCi0gcHJveHkgZm9yd2FyZGluZyBtb2RlCi0gSFRUUFMgc3VwcG9ydAoKWW91IGNhbiBjaGVjayB0aGUgW2NvbXBsZXRlIGxpc3RdKGh0dHBzOi8vbW9ja29vbi5jb20vZmVhdHVyZXMvKSBvbiB0aGUgd2Vic2l0ZS4KCi0tLQoKIyMgT3VyIHNwb25zb3JzCgojIyMgUGxhdGludW0KCjxkaXYgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjIwcHg7Ij4KICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5ibG9nLzIwMjMtMDQtMTItZ2l0aHViLWFjY2VsZXJhdG9yLW91ci1maXJzdC1jb2hvcnQtYW5kLXdoYXRzLW5leHQvIj4KICAgICAgPHBpY3R1cmU+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiIHNyY3NldD0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2dpdGh1Yi5wbmciPgogICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9tb2Nrb29uLmNvbS9pbWFnZXMvc3BvbnNvcnMvbGlnaHQvZ2l0aHViLnBuZyIgYWx0PSJHaXRIdWIgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSJodHRwczovL2xvY2FsYXp5LmNvbS9yZWdpc3Rlcj9yZWY9YTlDaURDNjFnT2FjLWF6TyI+CiAgICAgIDxwaWN0dXJlPgogICAgICA8c291cmNlIG1lZGlhPSIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xpZ2h0L2xvY2FsYXp5LnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xvY2FsYXp5LnBuZyI+CiAgICAgIDxpbWcgc3JjPSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9saWdodC9sb2NhbGF6eS5wbmciIGFsdD0iTG9jYWxhenkgbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKICA8YSBocmVmPSJodHRwczovL3d3dy5wZWFrY3J5cHRvLmNvbS8iPgogICAgICA8cGljdHVyZT4KICAgICAgPHNvdXJjZSBtZWRpYT0iKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIgc3Jjc2V0PSJodHRwczovL21vY2tvb24uY29tL2ltYWdlcy9zcG9uc29ycy9saWdodC9wZWFrY3J5cHRvLnBuZyI+CiAgICAgIDxzb3VyY2UgbWVkaWE9IihwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpIiBzcmNzZXQ9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL3BlYWtjcnlwdG8ucG5nIj4KICAgICAgPGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2xpZ2h0L3BlYWtjcnlwdG8ucG5nIiBhbHQ9IlBlYWtjcnlwdG8gbG9nbyIgLz4KICAgICAgPC9waWN0dXJlPgogIDwvYT4KPC9kaXY+CgojIyMgU2lsdmVyCgo8ZGl2IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWJvdHRvbToyMHB4OyI+ICAKICA8YSBocmVmPSJodHRwczovL3d3dy5lbXF4LmlvLyI+ICAKICAgICAgPGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3JzL2VtcXgucG5nIiBhbHQ9IlBlYWtjcnlwdG8gbG9nbyIgLz4KICA8L2E+CjwvZGl2PgoKTW9ja29vbiBpcyBhbiBvcGVuLXNvdXJjZSBwcm9qZWN0IGJ1aWx0IGJ5IHZvbHVudGVlciBtYWludGFpbmVycy4gSWYgeW91IGxpa2Ugb3VyIGFwcGxpY2F0aW9uLCBwbGVhc2UgY29uc2lkZXIgc3BvbnNvcmluZyB1cyBhbmQgam9pbiBhbGwgdGhlIFtTcG9uc29ycyBhbmQgQmFja2Vyc10oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vYmFja2Vycy5tZCkgd2hvIGhlbHBlZCB0aGlzIHByb2plY3Qgb3ZlciB0aW1lIQoKPGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O21hcmdpbi1ib3R0b206MjBweDsiPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvbW9ja29vbiI+PGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Nwb25zb3ItYnRuLnBuZz8iIHdpZHRoPSIyNTAiIGFsdD0ic3BvbnNvciBidXR0b24iIC8+PC9hPgo8L2Rpdj4KCi0tLQoKIyMgRG93bmxvYWQgdGhlIGRlc2t0b3AgYXBwbGljYXRpb24KCllvdSBjYW4gZ2V0IE1vY2tvb24gZGVza3RvcCdzIFtsYXRlc3QgcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9yZWxlYXNlcy9sYXRlc3QpIGRpcmVjdGx5IGZyb20gdGhpcyByZXBvc2l0b3J5IG9yIG9uIHRoZSBvZmZpY2lhbCBbd2Vic2l0ZV0oaHR0cHM6Ly9tb2Nrb29uLmNvbS9kb3dubG9hZC8pLiBNb2Nrb29uIGRlc2t0b3AgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaDoKCk1hY09TOgoKLSBbX0hvbWVicmV3X10oaHR0cHM6Ly9mb3JtdWxhZS5icmV3LnNoL2Nhc2svbW9ja29vbik6IGBicmV3IGluc3RhbGwgLS1jYXNrIG1vY2tvb25gLgoKV2luZG93czoKCi0gX3dpbmdldF86IGB3aW5nZXQgaW5zdGFsbCBtb2Nrb29uYC4KLSBbX0Nob2NvbGF0ZXlfXShodHRwczovL2NvbW11bml0eS5jaG9jb2xhdGV5Lm9yZy9wYWNrYWdlcy9tb2Nrb29uKTogYGNob2NvIGluc3RhbGwgbW9ja29vbmAuCi0gW19XaW5kb3dzIFN0b3JlX10oaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9lbi11cy9wL21vY2tvb24vOXBrOGRtc24wMGpqKQoKTGludXg6CgotIFtfU25hcCBzdG9yZV9dKGh0dHBzOi8vc25hcGNyYWZ0LmlvL21vY2tvb24pOiBgc25hcCBpbnN0YWxsIG1vY2tvb25gLgotIFtfQVVSX10oaHR0cHM6Ly9hdXIuYXJjaGxpbnV4Lm9yZy9wYWNrYWdlcy9tb2Nrb29uLWJpbik6IGB5YXkgLVMgbW9ja29vbi1iaW5gLgoKIyMgSW5zdGFsbCB0aGUgQ0xJCgpNb2Nrb29uIENMSSBpcyBhdmFpbGFibGUgYXMgYW4gW05QTSBwYWNrYWdlXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbW9ja29vbi9jbGkpLiBQbGVhc2UgY2hlY2sgb3VyIFtkZWRpY2F0ZWQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vcGFja2FnZXMvY2xpL1JFQURNRS5tZCkgdG8gbGVhcm4gaG93IHRvIGluc3RhbGwgYW5kIHVzZSBpdC4KCiMjIFVzZSBpbiBjbG91ZCBmdW5jdGlvbnMgYW5kIHNlcnZlcmxlc3MgZW52aXJvbm1lbnRzCgpNb2Nrb29uJ3MgU2VydmVybGVzcyBbTlBNIHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0Btb2Nrb29uL3NlcnZlcmxlc3MpIHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIHJ1biBNb2Nrb29uJ3MgbW9jayBBUElzIGluIGNsb3VkIGZ1bmN0aW9ucyBhbmQgc2VydmVybGVzcyBlbnZpcm9ubWVudHM6IEFXUyBMYW1iZGEsIEdDUCBGdW5jdGlvbnMsIEZpcmViYXNlIEZ1bmN0aW9ucywgZXRjLgoKUGxlYXNlIGNoZWNrIG91ciBbZGVkaWNhdGVkIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9tb2Nrb29uL21vY2tvb24vYmxvYi9tYWluL3BhY2thZ2VzL3NlcnZlcmxlc3MvUkVBRE1FLm1kKSB0byBsZWFybiBob3cgdG8gdXNlIGl0LgoKIyMgU3Vic2NyaWJlIHRvIE1vY2tvb24gUHJvCgpXaXRoIGFkdmFuY2VkIGZlYXR1cmVzIGZvciBzb2xvIGRldmVsb3BlcnMgYW5kIHRlYW1zLCBNb2Nrb29uIFBybyBzdXBlcmNoYXJnZXMgeW91ciBBUEkgZGV2ZWxvcG1lbnQ6CgotIPCfpJYgW0FJIHBvd2VyZWQgQVBJIG1vY2tpbmddKGh0dHBzOi8vbW9ja29vbi5jb20vYWktcG93ZXJlZC1hcGktbW9ja2luZy8pCi0g8J+TgyBBY2Nlc3MgdG8gZG96ZW5zIG9mIFtyZWFkeSB0byB1c2UgSlNPTiB0ZW1wbGF0ZXNdKGh0dHBzOi8vbW9ja29vbi5jb20vdGVtcGxhdGVzLykuCi0g8J+SrCBQcmlvcml0eSBzdXBwb3J0IGFuZCB0cmFpbmluZy4KClVwZ3JhZGUgdG9kYXkgYW5kIHRha2UgeW91ciBBUEkgZGV2ZWxvcG1lbnQgdG8gdGhlIG5leHQgbGV2ZWwuCgo8ZGl2IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWJvdHRvbToyMHB4OyI+CjxhIGhyZWY9Imh0dHBzOi8vbW9ja29vbi5jb20vcHJvLyI+PGltZyBzcmM9Imh0dHBzOi8vbW9ja29vbi5jb20vaW1hZ2VzL3Byby1idG4ucG5nPyIgd2lkdGg9IjI1MCIgYWx0PSJwcm8gYnV0dG9uIiAvPjwvYT4KPC9kaXY+CgojIyBNb2Nrb29uJ3MgZG9jdW1lbnRhdGlvbgoKWW91IHdpbGwgZmluZCBNb2Nrb29uJ3MgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vbW9ja29vbi5jb20vZG9jcy9sYXRlc3QpIG9uIHRoZSBvZmZpY2lhbCB3ZWJzaXRlLiBJdCBjb3ZlcnMgTW9ja29vbidzIG1vc3QgY29tcGxleCBmZWF0dXJlcy4gRmVlbCBmcmVlIHRvIGNvbnRyaWJ1dGUgb3IgYXNrIGZvciBuZXcgdG9waWNzIHRvIGJlIGNvdmVyZWQuCgojIyBDaGFuZ2Vsb2dzCgpZb3Ugd2lsbCBmaW5kIE1vY2tvb24gYXBwbGljYXRpb25zIFtjaGFuZ2Vsb2dzXShodHRwczovL21vY2tvb24uY29tL3JlbGVhc2VzLykgb24gdGhlIG9mZmljaWFsIHdlYnNpdGUuCgojIyBTdXBwb3J0L2ZlZWRiYWNrCgpZb3UgY2FuIGRpc2N1c3MgYWxsIHRoaW5ncyByZWxhdGVkIHRvIE1vY2tvb24sIGFuZCBhc2sgZm9yIGhlbHAsIG9uIHRoZSBbb2ZmaWNpYWwgY29tbXVuaXR5XShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Rpc2N1c3Npb25zKS4gSXQncyBhbHNvIGEgZ29vZCBwbGFjZSB0byBkaXNjdXNzIGJ1Z3MgYW5kIGZlYXR1cmUgcmVxdWVzdHMgYmVmb3JlIG9wZW5pbmcgYW4gaXNzdWUgb24gdGhpcyByZXBvc2l0b3J5LiBGb3IgbW9yZSBjaGF0LWxpa2UgZGlzY3Vzc2lvbnMsIHlvdSBjYW4gYWxzbyBqb2luIG91ciBbRGlzY29yZCBzZXJ2ZXJdKGh0dHBzOi8vZGlzY29yZC5nZy9GdEpqa2VqS0dwKS4KCiMjIENvbnRyaWJ1dGluZwoKSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGNvbnRyaWJ1dGluZyB0byBNb2Nrb29uLCBwbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIFtjb250cmlidXRpbmcgZ3VpZGVsaW5lc10oaHR0cHM6Ly9naXRodWIuY29tL21vY2tvb24vbW9ja29vbi9ibG9iL21haW4vQ09OVFJJQlVUSU5HLm1kKS4KClBsZWFzZSBhbHNvIHRha2UgYSBsb29rIGF0IG91ciBbQ29kZSBvZiBDb25kdWN0XShodHRwczovL2dpdGh1Yi5jb20vbW9ja29vbi9tb2Nrb29uL2Jsb2IvbWFpbi9DT0RFX09GX0NPTkRVQ1QubWQpLgoKIyMgUm9hZG1hcAoKSWYgeW91IHdhbnQgdG8ga25vdyB3aGF0IHdpbGwgYmUgY29taW5nIGluIHRoZSBuZXh0IHJlbGVhc2UgeW91IGNhbiBjaGVjayB0aGUgZ2xvYmFsIFtSb2FkbWFwXShodHRwczovL21vY2tvb24uY29tL3B1YmxpYy1yb2FkbWFwLykuCgpOZXcgcmVsZWFzZXMgd2lsbCBiZSBhbm5vdW5jZWQgb24gTW9ja29vbidzIFtUd2l0dGVyIGFjY291bnQgQEdldE1vY2tvb25dKGh0dHBzOi8vdHdpdHRlci5jb20vR2V0TW9ja29vbikgYW5kIHRocm91Z2ggdGhlIG5ld3NsZXR0ZXIgdG8gd2hpY2ggeW91IGNhbiBzdWJzY3JpYmUgW2hlcmVdKGh0dHBzOi8vbW9ja29vbi5jb20vbmV3c2xldHRlci8pLgo=
+ readmeEtag: '"9b00475f394092ec382af7bc915fbf73f055ec1d46c1f18163253cd714714597"'
+ readmeLastModified: Fri, 29 Dec 2023 16:38:52 GMT
repositoryId: 97478419
description: >-
Mockoon is the easiest and quickest way to run mock APIs locally. No
remote deployment, no account required, open source.
created: '2017-07-17T13:19:16Z'
- updated: '2023-12-28T14:04:11Z'
+ updated: '2023-12-29T23:41:50Z'
language: TypeScript
archived: false
- stars: 5597
+ stars: 5598
watchers: 59
forks: 315
owner: mockoon
logo: https://avatars.githubusercontent.com/u/49429147?v=4
license: NOASSERTION
- repoEtag: '"f9002267a5dcb0e7c8b64873c76e51fec56066895bee35e638dd155348e9e155"'
- repoLastModified: Thu, 28 Dec 2023 14:04:11 GMT
+ repoEtag: '"0ac82c083a08885a82e6ffa3836fef6cf51dabcc7611fd0a038c921ce3dc4adc"'
+ repoLastModified: Fri, 29 Dec 2023 23:41:50 GMT
foundInMaster: true
category: Testing
id: 8728dfca2c1908dbecdcddd31597fad4
@@ -6993,17 +6993,17 @@
repositoryId: 88701696
description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution
created: '2017-04-19T04:44:28Z'
- updated: '2023-12-29T00:50:14Z'
+ updated: '2023-12-30T01:25:09Z'
language: HTML
archived: false
- stars: 3721
+ stars: 3726
watchers: 73
forks: 586
owner: xiaoymin
logo: https://avatars.githubusercontent.com/u/7894406?v=4
license: Apache-2.0
- repoEtag: '"4d92a055e13f5dbbcafd6383f224a334cb8fdbbff39e84c27c6276b38a1f2866"'
- repoLastModified: Fri, 29 Dec 2023 00:50:14 GMT
+ repoEtag: '"1c8368e5bdb0a517374ab3de0a00686c968acfd18d7a55d755dc5f259ae0fa14"'
+ repoLastModified: Sat, 30 Dec 2023 01:25:09 GMT
category: SDK
foundInMaster: true
- source:
@@ -7020,17 +7020,17 @@
repositoryId: 709571808
description: Chrome extension that generates API specs for any app or website
created: '2023-10-25T00:36:06Z'
- updated: '2023-12-28T13:59:19Z'
+ updated: '2023-12-29T15:13:49Z'
language: TypeScript
archived: false
- stars: 3586
+ stars: 3589
watchers: 18
forks: 57
owner: AndrewWalsh
logo: https://avatars.githubusercontent.com/u/15863952?v=4
license: MIT
- repoEtag: '"d3cc976783b38bb6d2f6e75c61233abd5a076775d2ddec867b6a82982dd58c39"'
- repoLastModified: Thu, 28 Dec 2023 13:59:19 GMT
+ repoEtag: '"1cec785f4c258a2cba25538a155036abf74a4f02c6a09eb4fe6241289c3e0e50"'
+ repoLastModified: Fri, 29 Dec 2023 15:13:49 GMT
category: Server Implementations
foundInMaster: true
v3_1: true
@@ -7047,7 +7047,7 @@
🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI
2.0/3.x format
created: '2015-02-22T19:58:12Z'
- updated: '2023-12-28T22:30:31Z'
+ updated: '2023-12-30T02:12:07Z'
language: null
archived: false
stars: 3491
@@ -7056,8 +7056,8 @@
owner: APIs-guru
logo: https://avatars.githubusercontent.com/u/10975548?v=4
license: CC0-1.0
- repoEtag: '"943e2dcbe6504adf01b5df21e0515f15c09814ecdc1537b3cbf4d0a1b0b84845"'
- repoLastModified: Thu, 28 Dec 2023 22:30:31 GMT
+ repoEtag: '"c1172cde84645fc734df980a6cd30ee1dc8b84c7806800eefd563887fc49c89c"'
+ repoLastModified: Sat, 30 Dec 2023 02:12:07 GMT
foundInMaster: true
category: SDK
id: 667f2aef78d9d19418fbd6c0a7835abb
@@ -7081,17 +7081,17 @@
repositoryId: 196475719
description: Library for OpenAPI 3 with spring-boot
created: '2019-07-11T23:08:20Z'
- updated: '2023-12-29T01:40:25Z'
+ updated: '2023-12-30T02:31:45Z'
language: Java
archived: false
- stars: 2942
+ stars: 2941
watchers: 41
forks: 438
owner: springdoc
logo: https://avatars.githubusercontent.com/u/52804136?v=4
license: Apache-2.0
- repoEtag: '"8977ef900de899e5fbd80533329f456f0d25003c7c43be4ddd85b65423e5a9b6"'
- repoLastModified: Fri, 29 Dec 2023 01:40:25 GMT
+ repoEtag: '"156ba5dc22ba9eda127ae6fdcdc7c4cc2e84a39e9112414deca201c681b80041"'
+ repoLastModified: Sat, 30 Dec 2023 02:31:45 GMT
foundInMaster: true
id: 901410cec129651fcf7374c79f824f27
- source:
@@ -7118,7 +7118,7 @@
owner: swagger-api
logo: https://avatars.githubusercontent.com/u/7658037?v=4
license: Apache-2.0
- repoEtag: '"32ab89cc174c024d9b436427ef435f1b02a1409d04ccfadaac5148d3a76b0c40"'
+ repoEtag: '"6d287ae5bfe2f482701ec10b28b1fe15062bbccbc476b8f03dea3db66790f4a5"'
repoLastModified: Fri, 22 Dec 2023 14:11:56 GMT
foundInMaster: true
category: Code Generators
@@ -7138,17 +7138,17 @@
web applications in Python with performance auto-tuning. Optionally with
Alpine Linux.
created: '2019-01-04T17:33:29Z'
- updated: '2023-12-27T02:47:16Z'
+ updated: '2023-12-29T09:47:02Z'
language: Python
archived: false
- stars: 2434
+ stars: 2435
watchers: 27
forks: 313
owner: tiangolo
logo: https://avatars.githubusercontent.com/u/1326112?v=4
license: MIT
- repoEtag: '"5488a390a8b47f2852c7709ba48f2962f7bbbe2904809bbd416648f61bc3ef7b"'
- repoLastModified: Wed, 27 Dec 2023 02:47:16 GMT
+ repoEtag: '"d5d8fdc7bb1a3c211272ddcc3df8a768478f978a220cff3214d54cd0bbcc72f3"'
+ repoLastModified: Fri, 29 Dec 2023 09:47:02 GMT
foundInMaster: true
category: Server Implementations
id: d0f3fc0bd35fcadacc8ed2c531780739
@@ -7172,17 +7172,17 @@
repositoryId: 203157084
description: 'Automate your API Testing: catch crashes, validate specs, and save time'
created: '2019-08-19T11:13:01Z'
- updated: '2023-12-26T09:45:22Z'
+ updated: '2023-12-29T19:58:21Z'
language: Python
archived: false
- stars: 1951
+ stars: 1952
watchers: 19
forks: 143
owner: schemathesis
logo: https://avatars.githubusercontent.com/u/70383271?v=4
license: MIT
- repoEtag: '"38b21ed7fffb70f127028178ad4574410f17af5be8dc7a08e8300f4ac7837204"'
- repoLastModified: Tue, 26 Dec 2023 09:45:22 GMT
+ repoEtag: '"4d94511958211700266b82284155bf3a18cf4afd9a70a72595602e153d40acb2"'
+ repoLastModified: Fri, 29 Dec 2023 19:58:21 GMT
foundInMaster: true
id: f4032fb371a703acffa691c0f1239d45
oldLocations:
@@ -7198,17 +7198,17 @@
repositoryId: 244234763
description: Sane and flexible OpenAPI 3 schema generation for Django REST framework.
created: '2020-03-01T22:36:54Z'
- updated: '2023-12-27T08:39:55Z'
+ updated: '2023-12-29T18:34:29Z'
language: Python
archived: false
- stars: 1935
+ stars: 1937
watchers: 13
forks: 226
owner: tfranzel
logo: https://avatars.githubusercontent.com/u/13507857?v=4
license: BSD-3-Clause
- repoEtag: '"805f2b1ae856abf0a9807161f08305bdff7687d992172032c8c80a680ade0ed0"'
- repoLastModified: Wed, 27 Dec 2023 08:39:55 GMT
+ repoEtag: '"1b3e6651b86c92f06d0e33563fc416261ef5633b9a082f92473867594ef6e51c"'
+ repoLastModified: Fri, 29 Dec 2023 18:34:29 GMT
foundInMaster: true
category: Server Implementations
id: 520f5c66c3e42a7b3fbface4f156c1dc
@@ -7230,11 +7230,11 @@
archived: false
stars: 1906
watchers: 37
- forks: 236
+ forks: 237
owner: google
logo: https://avatars.githubusercontent.com/u/1342004?v=4
license: Apache-2.0
- repoEtag: '"5a0a34efd50e954b3e53182d9c7e7b9ee0bf8b280db9df82287b29b6105bfe24"'
+ repoEtag: '"45788100f02c137247e80c1e6ef85b3c3a4d5bcf42e035bf7da45de217e390d9"'
repoLastModified: Wed, 27 Dec 2023 01:57:24 GMT
foundInMaster: true
category: Converters
@@ -7255,17 +7255,17 @@
A fast serialization and validation library, with builtin support for
JSON, MessagePack, YAML, and TOML
created: '2021-01-26T02:53:57Z'
- updated: '2023-12-29T02:22:43Z'
+ updated: '2023-12-29T18:14:53Z'
language: Python
archived: false
- stars: 1592
+ stars: 1595
watchers: 14
forks: 47
owner: jcrist
logo: https://avatars.githubusercontent.com/u/2783717?v=4
license: BSD-3-Clause
- repoEtag: '"52c3e6ca3317798195bf2c2102e1034a2553cfd30e61c3f44220a5c01d17a471"'
- repoLastModified: Fri, 29 Dec 2023 02:22:43 GMT
+ repoEtag: '"42d61aafacb498db6cc2c2485868943042f4747766fd5d2da528184c151f06a8"'
+ repoLastModified: Fri, 29 Dec 2023 18:14:53 GMT
category: Server Implementations
foundInMaster: true
- source: openapi3 tags
@@ -7281,17 +7281,17 @@
Simple, Fast, Code first and Compile time generated OpenAPI documentation
for Rust
created: '2021-09-30T22:00:31Z'
- updated: '2023-12-28T22:30:24Z'
+ updated: '2023-12-30T02:11:37Z'
language: Rust
archived: false
- stars: 1579
+ stars: 1584
watchers: 8
- forks: 127
+ forks: 128
owner: juhaku
logo: https://avatars.githubusercontent.com/u/26358664?v=4
license: Apache-2.0
- repoEtag: '"c09f7b5fc00d6d742bd69d301ad22d62a4e534c4a060d84046198fcbc163c2b3"'
- repoLastModified: Thu, 28 Dec 2023 22:30:24 GMT
+ repoEtag: '"5984503d4039248269205a8079c73d541d60978df9027cb01b05e682528cd99c"'
+ repoLastModified: Sat, 30 Dec 2023 02:11:37 GMT
foundInMaster: true
category: Parsers
id: 14269a89115b3be71493769fca4d995e
@@ -7306,17 +7306,17 @@
repositoryId: 165951750
description: RapiDoc -WebComponent for OpenAPI Spec
created: '2019-01-16T01:29:58Z'
- updated: '2023-12-28T18:30:47Z'
+ updated: '2023-12-29T11:10:19Z'
language: JavaScript
archived: false
- stars: 1474
+ stars: 1475
watchers: 13
forks: 262
owner: rapi-doc
logo: https://avatars.githubusercontent.com/u/104180085?v=4
license: MIT
- repoEtag: '"5a05f5acc410e28024b36e285d7bd71b021fd9710de5a8260328c2ad6db1e7d3"'
- repoLastModified: Thu, 28 Dec 2023 18:30:47 GMT
+ repoEtag: '"f07130e3bbbfc14127425c0cfbc3b4dd4012fb49c26834a7ce670362bfae1c77"'
+ repoLastModified: Fri, 29 Dec 2023 11:10:19 GMT
foundInMaster: true
category:
- Documentation
@@ -7377,7 +7377,7 @@
owner: OpenAPITools
logo: https://avatars.githubusercontent.com/u/37325267?v=4
license: Apache-2.0
- repoEtag: '"4f440cb92eb71a53f4d0f47b6a239f0bbc9c2de8d0ae9faad841d37d3452cc45"'
+ repoEtag: '"be3d79b420b3767b102d790f8d35d9b530bb7fd378bd31d934c0d1a860c2ef90"'
repoLastModified: Wed, 27 Dec 2023 07:25:18 GMT
foundInMaster: true
category:
@@ -7397,17 +7397,17 @@
A pluggable API specification generator. Currently supports the OpenAPI
Specification (f.k.a. the Swagger specification)..
created: '2014-10-18T23:48:49Z'
- updated: '2023-12-29T01:00:29Z'
+ updated: '2023-12-29T08:57:44Z'
language: Python
archived: false
- stars: 1066
+ stars: 1065
watchers: 25
forks: 170
owner: marshmallow-code
logo: https://avatars.githubusercontent.com/u/10334301?v=4
license: MIT
- repoEtag: '"322afca5aa3029e56c54eb70d18e3937523574c135fa11bf2e05c5a14f8e7cba"'
- repoLastModified: Fri, 29 Dec 2023 01:00:29 GMT
+ repoEtag: '"390a92e4c38d75497f46b687d3b95fddf1eb3b15b508b0a034cb3545c4100fc8"'
+ repoLastModified: Fri, 29 Dec 2023 08:57:44 GMT
foundInMaster: true
category: Parsers
id: c1528764f05dd585ca47886dd6dabb86
@@ -7423,17 +7423,17 @@
repositoryId: 329190167
description: A lightweight Python web API framework.
created: '2021-01-13T04:08:48Z'
- updated: '2023-12-28T05:59:13Z'
+ updated: '2023-12-29T09:00:44Z'
language: Python
archived: false
- stars: 897
+ stars: 896
watchers: 19
forks: 109
owner: apiflask
logo: https://avatars.githubusercontent.com/u/78075725?v=4
license: MIT
- repoEtag: '"f9cc595984597a58f749e1729e4fd6ffc6035bdc295405b6d050b4b33f8182ac"'
- repoLastModified: Thu, 28 Dec 2023 05:59:13 GMT
+ repoEtag: '"63981f5dae6e3a25240e49f8ed365c88856aa1a3db236a32f38ff2fe7144786c"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:44 GMT
category: Server Implementations
foundInMaster: true
oldLocations:
@@ -7450,17 +7450,17 @@
repositoryId: 372032505
description: OpenAPI v3 code generator for go
created: '2021-05-29T17:25:48Z'
- updated: '2023-12-27T01:38:25Z'
+ updated: '2023-12-29T15:02:30Z'
language: Go
archived: false
- stars: 878
+ stars: 880
watchers: 13
forks: 61
owner: ogen-go
logo: https://avatars.githubusercontent.com/u/85122432?v=4
license: Apache-2.0
- repoEtag: '"f7025e6cd4da1347bd708cded43098fd61e84061b0d76bcf1106e7e3a6ea7fd7"'
- repoLastModified: Wed, 27 Dec 2023 01:38:25 GMT
+ repoEtag: '"7fdf08ef3fb8cb96d132e81e11392d72e1766f6bd4803ff3f1fd3021b183c2da"'
+ repoLastModified: Fri, 29 Dec 2023 15:02:30 GMT
category: Parsers
foundInMaster: true
- source: openapi3 tags
@@ -7528,17 +7528,17 @@
A fast Java JSON schema validator that supports draft V4, V6, V7, V2019-09
and V2020-12
created: '2016-09-15T12:24:16Z'
- updated: '2023-12-28T15:52:56Z'
+ updated: '2023-12-29T06:33:29Z'
language: Java
archived: false
- stars: 719
+ stars: 720
watchers: 43
- forks: 306
+ forks: 305
owner: networknt
logo: https://avatars.githubusercontent.com/u/8740739?v=4
license: Apache-2.0
- repoEtag: '"e61bb378091a0ebd61339e8adbc3e0ffc03d6de40c485707c31dabef8239eec0"'
- repoLastModified: Thu, 28 Dec 2023 15:52:56 GMT
+ repoEtag: '"8f673ad331cfb065f9e824049eee03bc1c803500892d4854daa7ed8d3870b237"'
+ repoLastModified: Fri, 29 Dec 2023 06:33:29 GMT
foundInMaster: true
category: Parsers
id: 69c6f349899d198b4045edb7ffa3fb74
@@ -7562,7 +7562,7 @@
owner: OpenAPITools
logo: https://avatars.githubusercontent.com/u/37325267?v=4
license: Apache-2.0
- repoEtag: '"ca09f8ddeb17b65ccd75f22991a7a6294a5d25a6ea77b8cf9e4eea84defc61ae"'
+ repoEtag: '"c26aa29af490d320354cfc31a8542dc190efc1343aeb12167cb66c21241a2ac0"'
repoLastModified: Thu, 28 Dec 2023 03:21:22 GMT
foundInMaster: true
category: Parsers
@@ -7613,17 +7613,17 @@
🤖 Generator for GH repo to help you manage the OpenAPI definition
lifecycle
created: '2016-05-16T22:45:23Z'
- updated: '2023-12-22T20:37:21Z'
+ updated: '2023-12-29T07:13:06Z'
language: JavaScript
archived: false
- stars: 656
+ stars: 657
watchers: 26
forks: 119
owner: Redocly
logo: https://avatars.githubusercontent.com/u/32099856?v=4
license: MIT
- repoEtag: '"10f7603fd275fe9231100c69bfa115a654469f6cc56f9c344c65fe3ff20b35ea"'
- repoLastModified: Fri, 22 Dec 2023 20:37:21 GMT
+ repoEtag: '"70c99926605ba8ac7ad2148295e187ffd201656efed5313e3d3379225139f825"'
+ repoLastModified: Fri, 29 Dec 2023 07:13:06 GMT
foundInMaster: true
v3_1: true
category:
@@ -7703,12 +7703,12 @@
language: HTML
archived: false
stars: 583
- watchers: 30
+ watchers: 29
forks: 286
owner: apisyouwonthate
logo: https://avatars.githubusercontent.com/u/35378327?v=4
license: MIT
- repoEtag: '"c90aa7df6f95ea89f2d451bcce66668beccac3af3fb060f8493382568505aa07"'
+ repoEtag: '"4dc28b027cb5ffde6fffbcdb1ff10a13731fd285c915b8d540e51ecb1b2f9e41"'
repoLastModified: Sun, 24 Dec 2023 17:43:04 GMT
foundInMaster: true
category: Description Validators
@@ -7726,17 +7726,17 @@
repositoryId: 481579846
description: A library that generates OpenAPI (Swagger) docs from Zod schemas
created: '2022-04-14T11:32:57Z'
- updated: '2023-12-28T22:54:44Z'
+ updated: '2023-12-29T04:54:31Z'
language: TypeScript
archived: false
- stars: 532
+ stars: 533
watchers: 10
forks: 43
owner: asteasolutions
logo: https://avatars.githubusercontent.com/u/5244095?v=4
license: MIT
- repoEtag: '"ee0793ec1379fb5a0f633538b385af3725976525574e39352e0fbbe465315dec"'
- repoLastModified: Thu, 28 Dec 2023 22:54:44 GMT
+ repoEtag: '"49872c4afebf62b27ca0369d4352bf89543f0794b1e20309ab0f997132740b95"'
+ repoLastModified: Fri, 29 Dec 2023 04:54:31 GMT
category: Parsers
foundInMaster: true
- source: openapi3 tags
@@ -7777,17 +7777,17 @@
repositoryId: 273958287
description: 🦕 OpenAPI plugin for generating API reference docs in Docusaurus v2.
created: '2020-06-21T18:06:52Z'
- updated: '2023-12-27T23:01:36Z'
+ updated: '2023-12-29T17:21:41Z'
language: TypeScript
archived: false
- stars: 443
+ stars: 444
watchers: 9
forks: 75
owner: cloud-annotations
logo: https://avatars.githubusercontent.com/u/47490031?v=4
license: MIT
- repoEtag: '"7554c8570fe77c42f42658bdcf4d813bdf62e1573feb58e620813455e09b47f8"'
- repoLastModified: Wed, 27 Dec 2023 23:01:36 GMT
+ repoEtag: '"a140fdb479411a8c6431383f784a71143dc24d39672f1190f23acc4ceb9f52b7"'
+ repoLastModified: Fri, 29 Dec 2023 17:21:41 GMT
foundInMaster: true
category: SDK
id: 5acf9bbe5338a800925f2b0e23eca0a1
@@ -7827,17 +7827,17 @@
repositoryId: 145602302
description: OpenAPI mock server with random data generation
created: '2018-08-21T18:16:27Z'
- updated: '2023-12-27T10:15:34Z'
+ updated: '2023-12-29T10:08:39Z'
language: Go
archived: false
- stars: 443
+ stars: 442
watchers: 9
forks: 53
owner: muonsoft
logo: https://avatars.githubusercontent.com/u/32521718?v=4
license: MIT
- repoEtag: '"6dfd0e719505a7b7d1a5b47395661f58c8e38ccf8ba993f9b5a855eea7d648d6"'
- repoLastModified: Wed, 27 Dec 2023 10:15:34 GMT
+ repoEtag: '"da729a2625e3329de9ec8bc65441c2978bcc2fcdd5f90bc7bab8703c26b69029"'
+ repoLastModified: Fri, 29 Dec 2023 10:08:39 GMT
foundInMaster: true
category:
- Description Validators
@@ -7855,16 +7855,16 @@
repositoryId: 182983428
description: Generate TypeScript clients to tap into OpenAPI servers
created: '2019-04-23T09:40:41Z'
- updated: '2023-12-22T07:58:00Z'
+ updated: '2023-12-29T14:50:30Z'
language: TypeScript
archived: false
- stars: 426
+ stars: 427
watchers: 10
forks: 70
owner: oazapfts
logo: https://avatars.githubusercontent.com/u/119607625?v=4
- repoEtag: '"0c91cfffafd3ee92f6c8601d95c79a5a8f01ffcf00588ef3fd2cdc72a9b858e2"'
- repoLastModified: Fri, 22 Dec 2023 07:58:00 GMT
+ repoEtag: '"8db2067723347fc000c6c09b557189b3fbeda0ad5ad0745f9b937d9fca130a7f"'
+ repoLastModified: Fri, 29 Dec 2023 14:50:30 GMT
category: Parsers
foundInMaster: true
oldLocations:
@@ -8322,17 +8322,17 @@
repositoryId: 306110879
description: Web services with OpenAPI and JSON Schema done quick in Go
created: '2020-10-21T18:16:16Z'
- updated: '2023-12-28T00:17:38Z'
+ updated: '2023-12-29T08:55:21Z'
language: Go
archived: false
- stars: 273
+ stars: 272
watchers: 4
forks: 13
owner: swaggest
logo: https://avatars.githubusercontent.com/u/19609628?v=4
license: MIT
- repoEtag: '"35166a39c1e58fe32fdea77c7a753c5314a0ef4aefb8a27c1e579bb5fabaf401"'
- repoLastModified: Thu, 28 Dec 2023 00:17:38 GMT
+ repoEtag: '"23916ccb2fbf0b24e5f049c666ce06c63e0ff7cbd2270d36821e2ddf6bb97972"'
+ repoLastModified: Fri, 29 Dec 2023 08:55:21 GMT
foundInMaster: true
id: ecd2fef7bb4079bda209503f9fb9820b
- source:
@@ -8446,7 +8446,7 @@
owner: apicat
logo: https://avatars.githubusercontent.com/u/64158984?v=4
license: MIT
- repoEtag: '"f2919ac262744fdd0e124ed692ec96c3df85b40c958c6b372d2ff8ce01d96999"'
+ repoEtag: '"d41fe2f22da8e305e9759648060bec431622cca9e8a104d07fa70b94dba91923"'
repoLastModified: Thu, 28 Dec 2023 00:19:14 GMT
category: Server Implementations
foundInMaster: true
@@ -8462,17 +8462,17 @@
repositoryId: 479982630
description: Clean Architecture Example using FastAPI framework
created: '2022-04-10T10:23:51Z'
- updated: '2023-12-26T20:35:35Z'
+ updated: '2023-12-30T00:52:17Z'
language: Python
archived: false
- stars: 227
+ stars: 229
watchers: 3
forks: 45
owner: 0xTheProDev
logo: https://avatars.githubusercontent.com/u/14367736?v=4
license: MIT
- repoEtag: '"9b4044d6d12bfe0b120f37b85940f5287f40ec640e4e2decc782a58e5ae6d6da"'
- repoLastModified: Tue, 26 Dec 2023 20:35:35 GMT
+ repoEtag: '"27c76e3e23d4aed6fded4745ad636ba1c5c71758d74b4657a148e9e41daf1da1"'
+ repoLastModified: Sat, 30 Dec 2023 00:52:17 GMT
category: Server Implementations
foundInMaster: true
oldLocations:
@@ -8514,9 +8514,9 @@
id: 8525db62087986733db0fc4221c4b719
repositoryMetadata:
base64Readme: >-
- WyFbQXN5bmNBUEkgTW9kZWxpbmFdKC4vZG9jcy9pbWcvcmVhZG1lLWJhbm5lci5wbmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW2JsYWNrYm94IHBpcGVsaW5lIHN0YXR1c10oPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL2FzeW5jYXBpL21vZGVsaW5hL2JsYWNrYm94LXRlc3RpbmcueW1sP2xhYmVsPWJsYWNrYm94JTIwdGVzdGluZz4pXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYWN0aW9ucy93b3JrZmxvd3MvYmxhY2tib3gtdGVzdGluZy55bWw/cXVlcnk9YnJhbmNoJTNBbWFzdGVyKyspClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hP2JyYW5jaD1tYXN0ZXIpClshW1Byb2plY3QgU3RhdHVzOiBBY3RpdmUg4oCTIFRoZSBwcm9qZWN0IGhhcyByZWFjaGVkIGEgc3RhYmxlLCB1c2FibGUgc3RhdGUgYW5kIGlzIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZC5dKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnL2JhZGdlcy9sYXRlc3QvYWN0aXZlLnN2ZyldKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnLyNhY3RpdmUpCiFbTWFpbnRlbmFuY2Ugc2NvcmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtcy1pby9tYWludGVuYW5jZS1zY29yZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW05wbSBsYXRlc3QgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbbGFzdCBjb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2FzeW5jYXBpL21vZGVsaW5hKV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHMvbWFzdGVyKQpbIVtEaXNjdXNzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZGlzY3Vzc2lvbnMvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvZGlzY3Vzc2lvbnMpClshW1dlYnNpdGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD13ZWJzaXRlJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW1BsYXlncm91bmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD1wbGF5Z3JvdW5kJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmclMkZwbGF5Z3JvdW5kKV0oaHR0cHM6Ly93d3cubW9kZWxpbmEub3JnL3BsYXlncm91bmQpIDwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTc2LW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCllvdXIgb25lLXN0b3AgdG9vbCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSBhbmQgd2VsbC10ZXN0ZWQgbW9kZWxzIGZvciByZXByZXNlbnRpbmcgdGhlIG1lc3NhZ2UgcGF5bG9hZHMuIFVzZSBpdCBhcyBhIHRvb2wgaW4geW91ciBkZXZlbG9wbWVudCB3b3JrZmxvdywgb3IgYSBsaWJyYXJ5IGluIGEgbGFyZ2VyIGludGVncmF0aW9ucywgZW50aXJlbHkgaW4geW91ciBjb250cm9sLgoKLS0tCgo8IS0tIHRvYyBpcyBnZW5lcmF0ZWQgd2l0aCBHaXRIdWIgQWN0aW9ucyBkbyBub3QgcmVtb3ZlIHRvYyBtYXJrZXJzIC0tPgoKPCEtLSB0b2MgLS0+CgotIFtJbnN0YWxsaW5nIE1vZGVsaW5hXSgjaW5zdGFsbGluZy1tb2RlbGluYSkKLSBbQXN5bmNBUEkgQ0xJXSgjYXN5bmNhcGktY2xpKQotIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQotIFtSZXF1aXJlbWVudHNdKCNyZXF1aXJlbWVudHMpCi0gW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQotIFtFeGFtcGxlc10oI2V4YW1wbGVzKQotIFtWZXJzaW9uaW5nIGFuZCBtYWludGVuYW5jZV0oI3ZlcnNpb25pbmctYW5kLW1haW50ZW5hbmNlKQotIFtEZXZlbG9wbWVudF0oI2RldmVsb3BtZW50KQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0NvbnRyaWJ1dG9yc10oI2NvbnRyaWJ1dG9ycykKCjwhLS0gdG9jc3RvcCAtLT4KCiMjIEluc3RhbGxpbmcgTW9kZWxpbmEKClJ1biB0aGlzIGNvbW1hbmQgdG8gaW5zdGFsbCBNb2RlbGluYSBpbiB5b3VyIHByb2plY3Q6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBhc3luY2FwaS9tb2RlbGluYQpgYGAKCiMjIEFzeW5jQVBJIENMSQoKSWYgeW91IGhhdmUgdGhlIFtBc3luY0FQSSBDTEkgaW5zdGFsbGVkXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvY2xpI2luc3RhbGxhdGlvbikgKE9OTFkgc3VwcG9ydCBBc3luY0FQSSBpbnB1dHMpLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gdXNlIFtNb2RlbGluYV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL2NsaSN1c2FnZSk6CgpgYGBiYXNoCmFzeW5jYXBpIGdlbmVyYXRlIG1vZGVscyA8bGFuZ3VhZ2U+IC4vYXN5bmNhcGkuanNvbgpgYGAKCjxoMiBhbGlnbj0iY2VudGVyIj5XaGF0IERvZXMgTW9kZWxpbmEgRG8/PC9oMj4KCjxwIGFsaWduPSJjZW50ZXIiPk1vZGVsaW5hIHB1dCBZT1UgaW4gY29udHJvbCBvZiB5b3VyIGRhdGEgbW9kZWxzLCBoZXJlIGlzIGhvdy4uLjwvcD4KCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkPjxiPk1vZGVsaW5hIGxldHMgeW91IGdlbmVyYXRlIGRhdGEgbW9kZWxzIGZyb20gbWFueSB0eXBlcyBvZiA8YSBocmVmPSIjaW5wdXRzIj5pbnB1dHM8L2E+PC9iPjwvdGQ+Cjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgYXN5bmNhcGkgPSAuLi4KY29uc3QganNvbnNjaGVtYSA9IC4uLgpjb25zdCBvcGVuYXBpID0gLi4uIApjb25zdCBtZXRhbW9kZWwgPSAuLi4gCi4uLgpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoCiAgYXN5bmNhcGkgfCBqc29uc2NoZW1hIHwgb3BlbmFwaSB8IG1ldGFtb2RlbAopOwpgYGAKPC90ZD4KICA8L3RyPgogICAgPHRyPgogICAgPHRkPjxiPlVzZSB0aGUgc2FtZSBpbnB1dHMgYWNyb3NzIGEgcmFuZ2Ugb2YgZGlmZmVyZW50IDxhIGhyZWY9IiNvdXRwdXRzIj5nZW5lcmF0b3JzPC9hPjwvYj48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKCk7CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBDc2hhcnBHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IEphdmFHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFJ1c3RHZW5lcmF0b3IoKTsKLi4uCmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgICA8dHI+CiAgICA8dGQ+PGI+RWFzaWx5IGxldCB5b3UgaW50ZXJhY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIG1vZGVscy48L2I+IAoKLSBXYW50IHRvIHNob3cgdGhlIGdlbmVyYXRlZCBtb2RlbHMgb24gYSB3ZWJzaXRlPyBTdXJlISAKLSBXYW50IHRvIGdlbmVyYXRlIHRoZSBtb2RlbHMgaW50byBmaWxlcz8gU3VyZSEgCi0gV2FudCB0byBjb21iaW5lIGFsbCB0aGUgbW9kZWxzIGludG8gb25lIHNpbmdsZSBmaWxlPyBTdXJlISAKCldoYXRldmVyIGludGVyYWN0aW9uIHlvdSBuZWVkLCB5b3UgY2FuIGNyZWF0ZS48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmZvciAoY29uc3QgbW9kZWwgaW4gbW9kZWxzKSB7IAogIGNvbnN0IGdlbmVyYXRlZENvZGUgPSBnZW5lcmF0ZWRNb2RlbC5yZXN1bHQ7CiAgY29uc3QgZGVwZW5kZW5jaWVzID0gZ2VuZXJhdGVkTW9kZWwuZGVwZW5kZW5jaWVzOwogIGNvbnN0IG1vZGVsdHlwZSA9IGdlbmVyYXRlZE1vZGVsLm1vZGVsLnR5cGU7CiAgY29uc3QgbW9kZWxOYW1lID0gZ2VuZXJhdGVkTW9kZWwubW9kZWxOYW1lOwogIC4uLgp9CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPkVhc2lseSBtb2RpZnkgaG93IG1vZGVscyBhcmUgPGEgaHJlZj0iLi9kb2NzL2NvbnN0cmFpbnRzLm1kIj5jb25zdHJhaW5lZDwvYT4gaW50byB0aGUgb3V0cHV0PC9iPjwvdGQ+Cgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKHsKICBjb25zdHJhaW50czogewogICAgbW9kZWxOYW1lOiAoe21vZGVsTmFtZX0pID0+IHsKICAgICAgLy8gSW1wbGVtZW50IHlvdXIgb3duIGNvbnN0cmFpbmluZyBsb2dpYwogICAgICByZXR1cm4gbW9kZWxOYW1lOwogICAgfQogIH0KfSk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGF5ZXIgYWRkaXRpb25hbCBvciByZXBsYWNlbWVudCBjb2RlIDxhIGhyZWY9Ii4vZG9jcy9wcmVzZXRzLm1kIj5vbiB0b3Agb2YgZWFjaCBvdGhlciB0byBjdXN0b21pemUgdGhlIG1vZGVsczwvYT4gdG8geW91ciB1c2UtY2FzZTwvYj48L3RkPgoKPHRkPgoKYGBgdHlwZXNjcmlwdApjb25zdCBnZW5lcmF0b3IgPSBuZXcgVHlwZVNjcmlwdEdlbmVyYXRvcih7CiAgcHJlc2V0czogWwogICAgewogICAgICBjbGFzczogewogICAgICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgICAgICByZXR1cm4gYCR7Y29udGVudH0KcHVibGljIG15Q3VzdG9tRnVuY3Rpb24oKTogc3RyaW5nIHsKICByZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICAgICAgfSwKICAgICAgfQogICAgfQogIF0KfSk7CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGV0cyB5b3UgPGEgaHJlZj0iLi9kb2NzL3ByZXNldHMubWQiPmNvbWJpbmUgbXVsdGlwbGUgbGF5ZXJzIG9mIGFkZGl0aW9uYWwgb3IgcmVwbGFjZW1lbnQgY29kZTwvYT48L2I+PC90ZD4KCjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgbXlDdXN0b21GdW5jdGlvbjEgPSB7CiAgY2xhc3M6IHsKICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgIHJldHVybiBgJHtjb250ZW50fQpwdWJsaWMgbXlDdXN0b21GdW5jdGlvbigpOiBzdHJpbmcgewpyZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICB9LAogIH0KfTsKY29uc3QgbXlDdXN0b21GdW5jdGlvbjIgPSB7Li4ufTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFR5cGVTY3JpcHRHZW5lcmF0b3IoewogIHByZXNldHM6IFsKICAgIG15Q3VzdG9tRnVuY3Rpb24xLAogICAgbXlDdXN0b21GdW5jdGlvbjIKICBdCn0pOwpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoaW5wdXQpOwpgYGAKPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKIyMgRmVhdHVyZXMKClRoZSBmb2xsb3dpbmcgdGFibGUgcHJvdmlkZXMgYSBzaG9ydCBzdW1tYXJ5IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBmb3Igc3VwcG9ydGVkIG91dHB1dCBsYW5ndWFnZXMuIFRvIHNlZSB0aGUgY29tcGxldGUgZmVhdHVyZSBsaXN0IGZvciBlYWNoIGxhbmd1YWdlLCBwbGVhc2UgY2xpY2sgdGhlIGluZGl2aWR1YWwgbGlua3MgZm9yIGVhY2ggbGFuZ3VhZ2UuCgo8YSBpZD0iaW5wdXRzIj48L2E+Cgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0cj4KICAgIDx0aD5TdXBwb3J0ZWQgaW5wdXRzPC90aD4KICAgIDx0aD48L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1hc3luY2FwaS1kb2N1bWVudHMiPkFzeW5jQVBJPC9hPjwvdGQ+CiAgICA8dGQ+V2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIEFzeW5jQVBJIHZlcnNpb25zOiA8ZW0+Mi4wLjAgLT4gMi42LjA8L2VtPiwgd2hpY2ggZ2VuZXJhdGVzIG1vZGVscyBmb3IgYWxsIHRoZSBkZWZpbmVkIG1lc3NhZ2UgcGF5bG9hZHMuIEl0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc2NoZW1hRm9ybWF0cyBBc3luY0FQSSBTY2hlbWEgb2JqZWN0LCBKU09OIFNjaGVtYSBkcmFmdCA3LCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLWF2cm8tc2NoZW1hIj5BVlJPIDEuOTwvYT4sIDxhIGhyZWY9Ii4vZXhhbXBsZXMvYXN5bmNhcGktcmFtbC1zY2hlbWEiPlJBTUwgMS4wIGRhdGEgdHlwZTwvYT4sIGFuZCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLW9wZW5hcGktc2NoZW1hIj5PcGVuQVBJIDMuMCBTY2hlbWE8L2E+LjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLWpzb24tc2NoZW1hLWRvY3VtZW50cyI+SlNPTiBTY2hlbWE8L2E+PC90ZD4KICAgIDx0ZD5XZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgSlNPTiBTY2hlbWEgdmVyc2lvbnM6IDxlbT5EcmFmdC00LCBEcmFmdC02IGFuZCBEcmFmdC03PC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPk9wZW5BUEk8L3RkPgogICAgPHRkPldlIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIHZlcnNpb25zOiA8ZW0+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLXN3YWdnZXItMjAtZG9jdW1lbnRzIj5Td2FnZ2VyIDIuMDwvYT4gYW5kIDxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cyI+T3BlbkFQSSAzLjA8L2E+PC9lbT4sIHdoaWNoIGdlbmVyYXRlcyBtb2RlbHMgZm9yIGFsbCB0aGUgZGVmaW5lZCByZXF1ZXN0IGFuZCByZXNwb25zZSBwYXlsb2Fkcy48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbC1mcm9tLXR5cGVzY3JpcHQtdHlwZS1maWxlcyI+VHlwZVNjcmlwdDwvYT48L3RkPgogICAgPHRkPldlIGN1cnJlbnRseSBzdXBwb3J0IFR5cGVTY3JpcHQgdHlwZXMgYXMgZmlsZSBpbnB1dCBmb3IgbW9kZWwgZ2VuZXJhdGlvbjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLW1ldGEtbW9kZWxzIj5NZXRhIG1vZGVsPC9hPjwvdGQ+CiAgICA8dGQ+VGhpcyBpcyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYSBtb2RlbCBmb3IgTW9kZWxpbmEsIGl0IGlzIHdoYXQgaW5wdXRzIGdldHMgY29udmVydGVkIHRvLCBhbmQgd2hhdCBnZW5lcmF0b3JzIGFyZSBwcm92aWRlZCB0byBnZW5lcmF0ZSBjb2RlLiBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gYW4gaW5wdXQgcHJvY2Vzc29yLCB5b3UgY2FuIGNyZWF0ZSB5b3VyIG93biBtb2RlbHMgZnJvbSBzY3JhdGNoIGFuZCBzdGlsbCB0YWtlIGFkdmFudGFnZSBvbiB0aGUgZ2VuZXJhdG9ycyBhbmQgdGhlIGZlYXR1cmVzLjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCjxhIGlkPSJvdXRwdXRzIj48L2E+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRoPlN1cHBvcnRlZCBvdXRwdXRzPC90aD4KICAgIDx0aD48L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1qYXZhLW1vZGVscyI+SmF2YTwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5nZW5lcmF0aW9uIG9mIGVxdWFscywgaGFzaENvZGUsIHRvU3RyaW5nLCBKYWNrc29uIGFubm90YXRpb24sIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXR5cGVzY3JpcHQtbW9kZWxzIj5UeXBlU2NyaXB0PC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MsIGludGVyZmFjZSBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Z2VuZXJhdGlvbiBvZiBleGFtcGxlIGNvZGUsIHVuL21hcnNoYWwgZnVuY3Rpb25zLCBjdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1jIy1tb2RlbHMiPkMjPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmdlbmVyYXRpb24gb2YgZXhhbXBsZSBjb2RlLCBzZXJpYWxpemVyIGFuZCBkZXNlcmlhbGl6ZXIgZnVuY3Rpb25zLCBjdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1nby1tb2RlbHMiPkdvPC9hPjwvdGQ+CiAgICA8dGQ+U3RydWN0IGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtamF2YXNjcmlwdC1tb2RlbHMiPkphdmFTY3JpcHQ8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBnZW5lcmF0aW9uOiA8ZW0+Y3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YzwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtZGFydC1tb2RlbHMiPkRhcnQ8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiBqc29uX2Fubm90YXRpb248L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1ydXN0LW1vZGVscyI+UnVzdDwvYT48L3RkPgogICAgPHRkPlN0cnVjdC90dXBsZSBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Z2VuZXJhdGlvbiBvZiBgaW1wbGVtZW50IERlZmF1bHRgLCBnZW5lcmF0ZSBzZXJkZSBtYWNyb3MsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXB5dGhvbi1tb2RlbHMiPlB5dGhvbjwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUta290bGluLW1vZGVscyI+S290bGluPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPnVzZSBvZiBkYXRhIGNsYXNzZXMgd2hlcmUgYXBwcm9wcmlhdGUsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1jcGx1c3BsdXMtbW9kZWxzIj5DKys8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Y3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXBocC1tb2RlbHMiPlBIUDwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZGVzY3JpcHRpb25zLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1zY2FsYS1tb2RlbHMiPlNjYWxhPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBkZXNjcmlwdGlvbnMsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCiMjIFJlcXVpcmVtZW50cwpUaGUgZm9sbG93aW5nIGFyZSBhIHJlcXVpcmVtZW50IGluIG9yZGVyIHRvIHVzZSBNb2RlbGluYS4KCi0gW05vZGVKU10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykgPj0gMTgKCiMjIERvY3VtZW50YXRpb24KQSBmZWF0dXJlIGluIE1vZGVsaW5hIGNhbm5vdCBleGlzdHMgd2l0aG91dCBhbiBleGFtcGxlIGFuZCBkb2N1bWVudGF0aW9uIGZvciBpdC4gWW91IGNhbiBmaW5kIGFsbCB0aGUgW2RvY3VtZW50YXRpb24gaGVyZV0oLi9kb2NzL1JFQURNRS5tZCkuCgojIyBFeGFtcGxlcwpEbyB5b3UgbmVlZCB0byBrbm93IGhvdyB0byB1c2UgdGhlIGxpYnJhcnkgaW4gY2VydGFpbiBzY2VuYXJpb3M/IAoKV2UgaGF2ZSBnYXRoZXJlZCBhbGwgdGhlIGV4YW1wbGVzIGluIGEgc2VwYXJhdGUgZm9sZGVyIGFuZCB0aGV5IGNhbiBiZSBmb3VuZCB1bmRlciB0aGUgW2V4YW1wbGVzIGZvbGRlcl0oLi9leGFtcGxlcykuIAoKIyMgVmVyc2lvbmluZyBhbmQgbWFpbnRlbmFuY2UKQXMgb2YgdmVyc2lvbiAxLCBNb2RlbGluYSBoYXMgYSB2ZXJ5IHN0cmljdCBzZXQgb2YgY2hhbmdlcyB3ZSBhcmUgYWxsb3dlZCB0byBkbyBiZWZvcmUgaXQgcmVxdWlyZXMgYSBtYWpvciB2ZXJzaW9uIGNoYW5nZS4gSW4gc2hvcnQsIGFueSBjaGFuZ2VzIHRoYXQgY2hhbmdlIHRoZSBnZW5lcmF0ZWQgb3V0Y29tZSBhcmUgbm90IGFsbG93ZWQgYXMgaXQncyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgdGhlIGNvbnN1bWVyIG9mIHRoZSBnZW5lcmF0ZWQgbW9kZWxzLiAKCkhlcmUgaXMgYSBsaXN0IG9mIGNoYW5nZXMgd2UgYXJlIGFsbG93ZWQgdG8gZG8gdGhhdCB3b3VsZCBub3QgcmVxdWlyZSBhIGJyZWFraW5nIGNoYW5nZToKLSBBZGRpbmcgbmV3IGZlYXR1cmVzICh0aGF0IGRvIG5vdCBjaGFuZ2UgZXhpc3Rpbmcgb3V0cHV0KSwgc3VjaCBhcyBnZW5lcmF0b3JzLCBwcmVzZXRzLCBpbnB1dCBwcm9jZXNzb3JzLCBldGMuCi0gQ2hhbmdlIGV4aXN0aW5nIGZlYXR1cmVzLCBieSBwcm92aWRpbmcgb3B0aW9ucyB0aGF0IGRlZmF1bHQgdG8gY3VycmVudCBiZWhhdmlvci4gVGhpcyBjb3VsZCBiZSBhIHByZXNldCB0aGF0IGFkYXB0cyB0aGUgb3V0cHV0IGJhc2VkIG9uIG9wdGlvbnMsIGFzIGxvbmcgYXMgdGhlIEFQSSBvZiBNb2RlbGluYSBhbmQgdGhlIEFQSSBvZiB0aGUgZ2VuZXJhdGVkIG1vZGVscyBkb2VzIG5vdCBoYXZlIGFueSBicmVha2luZyBjaGFuZ2VzLgotIEJ1ZyBmaXhlcyB3aGVyZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgb3RoZXJ3aXNlIHVudXNhYmxlIChzeW50YXggZXJyb3JzLCBldGMpLgoKQnJlYWtpbmcgY2hhbmdlcyBhcmUgYWxsb3dlZCBhbmQgZXhwZWN0ZWQgYXQgYSBmcmVxdWVudCByYXRlLCBvZiBjb3Vyc2Ugd2hlcmUgaXQgbWFrZXMgc2Vuc2Ugd2Ugd2lsbCB0cnkgdG8gYnVuZGxlIG11bHRpcGxlIGNoYW5nZXMgdG9nZXRoZXIuCgpXZSBvZiBjb3Vyc2Ugd2lsbCBkbyBvdXIgYmVzdCB0byB1cGhvbGQgdGhpcywgYnV0IG1pc3Rha2VzIGNhbiBoYXBwZW4sIGFuZCBpZiB5b3Ugbm90aWNlIGFueSBicmVha2luZyBjaGFuZ2VzIHBsZWFzZSBsZXQgdXMga25vdyEKCkJlY2F1c2Ugb2YgdGhlIG51bWJlciBvZiB0aGUgbGltaXRlZCBudW1iZXIgb2YgY2hhbXBpb25zLCBvbmx5IHRoZSBtb3N0IHJlY2VudCBtYWpvciB2ZXJzaW9uIHdpbGwgYmUgbWFpbnRhaW5lZC4KCk1ham9yIHZlcnNpb25zIGFyZSBjdXJyZW50bHkgaGFwcGVuaW5nIGF0IGEgMy1tb250aCBjYWRlbmNlIChpbiBhIHNpbWlsYXIgZmFzaGlvbiBhcyB0aGUgQXN5bmNBUEkgc3BlY2lmaWNhdGlvbiksIHRoaXMgd2lsbCBoYXBwZW4gaW4gSmFudWFyeSwgQXByaWwsIEp1bmUsIGFuZCBTZXB0ZW1iZXIuIAoKIyMgRGV2ZWxvcG1lbnQKV2UgdHJ5IHRvIG1ha2UgaXQgYXMgZWFzeSBmb3IgeW91IGFzIHBvc3NpYmxlIHRvIHNldCB1cCB5b3VyIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRvIGNvbnRyaWJ1dGUgdG8gTW9kZWxpbmEuIFlvdSBjYW4gZmluZCB0aGUgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiBbaGVyZV0oLi9kb2NzL2RldmVsb3BtZW50Lm1kKS4KCiMjIENvbnRyaWJ1dGluZwpXaXRob3V0IGNvbnRyaWJ1dGlvbnMsIE1vZGVsaW5hIHdvdWxkIG5vdCBleGlzdCwgaXQncyBhIGNvbW11bml0eSBwcm9qZWN0IHdlIGJ1aWxkIHRvZ2V0aGVyIHRvIGNyZWF0ZSB0aGUgYmVzdCBwb3NzaWJsZSBidWlsZGluZyBibG9ja3MsIGFuZCB3ZSBkbyB0aGlzIHRocm91Z2ggW2NoYW1waW9uc10oLi9kb2NzL2NoYW1waW9ucy5tZCkuCgpXZSBoYXZlIG1hZGUgcXVpdGUgYSBbY29tcHJlaGVuc2l2ZSBjb250cmlidXRpb24gZ3VpZGVdKC4vZG9jcy9jb250cmlidXRpbmcubWQpIHRvIGdpdmUgeW91IGEgbGVuZGluZyBoYW5kIGluIGhvdyBkaWZmZXJlbnQgZmVhdHVyZXMgYW5kIGNoYW5nZXMgYXJlIGludHJvZHVjZWQuCgpJZiBubyBkb2N1bWVudGF0aW9uIGhlbHBzIHlvdSwgaGVyZSBpcyBob3cgeW91IGNhbiByZWFjaCBvdXQgdG8gZ2V0IGhlbHA6Ci0gT24gdGhlIFtvZmZpY2lhbCBBc3ljbkFQSSBzbGFja10oaHR0cHM6Ly9hc3luY2FwaS5jb20vc2xhY2staW52aXRlKSB1bmRlciB0aGUgYCMwNF90b29saW5nYCBjaGFubmVsCi0gVGFnIGEgc3BlY2lmaWMgW0NPREVPV05FUl0oLi9DT0RFT1dORVJTKSBpbiB5b3VyIFBSCi0gR2VuZXJhbGx5LCBpdCdzIGFsd2F5cyBhIGdvb2QgaWRlYSB0byBkbyBldmVyeXRoaW5nIGluIHB1YmxpYywgYnV0IGluIHNvbWUgY2FzZXMsIGl0IG1pZ2h0IG5vdCBiZSBwb3NzaWJsZS4gSW4gdGhvc2UgY2lyY3Vtc3RhbmNlcyB5b3UgY2FuIGNvbnRhY3QgdGhlIGZvbGxvd2luZzogCiAgLSBbam9uYXNsYWdvbmldKGh0dHBzOi8vZ2l0aHViLmNvbS9qb25hc2xhZ29uaSkgKG9uIFtBc3luY0FQSSBTbGFja10oaHR0cHM6Ly9hc3luY2FwaS5jb20vc2xhY2staW52aXRlKSwgW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vam9uYXNsYWdvbmkpLCBbRW1haWxdKG1haWx0bzpqb25hcy1sdEBsaXZlLmRrKSwgW0xpbmtlZEluXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vam9uYXNsYWdvbmkvKSkKCiMjIENvbnRyaWJ1dG9ycyAKClRoYW5rcyBnbyBvdXQgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9hbGxjb250cmlidXRvcnMub3JnL2RvY3MvZW4vZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21hZ2ljbWF0YXRqYWh1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIwNDA0OTQ1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYWNpZWogVXJiYcWEY3p5ayIvPjxiciAvPjxzdWI+PGI+TWFjaWVqIFVyYmHFhGN6eWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FtYWdpY21hdGF0amFodSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjaWRlYXMtbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1tYWdpY21hdGF0amFodSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSIjcXVlc3Rpb24tbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJBbnN3ZXJpbmcgUXVlc3Rpb25zIj7wn5KsPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2N6bG93aWVrNDg4Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM0NjIwMTA5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJjemxvd2llazQ4OCIvPjxiciAvPjxzdWI+PGI+Y3psb3dpZWs0ODg8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0Fjemxvd2llazQ4OCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBY3psb3dpZWs0ODgiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSIjaWRlYXMtY3psb3dpZWs0ODgiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc21veWEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA4MzI5Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2VyZ2lvIE1veWEiLz48YnIgLz48c3ViPjxiPlNlcmdpbyBNb3lhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc21veWEiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQXNtb3lhIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qb25hc2xhZ29uaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzM5NjE4OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSm9uYXMgTGFnb25pIi8+PGJyIC8+PHN1Yj48Yj5Kb25hcyBMYWdvbmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0Fqb25hc2xhZ29uaSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjaWRlYXMtam9uYXNsYWdvbmkiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1qb25hc2xhZ29uaSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSIjcXVlc3Rpb24tam9uYXNsYWdvbmkiIHRpdGxlPSJBbnN3ZXJpbmcgUXVlc3Rpb25zIj7wn5KsPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBam9uYXNsYWdvbmkiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9kZXYudG8vZGVyYmVyZyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTk1OTI3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMdWthc3ogR29ybmlja2kiLz48YnIgLz48c3ViPjxiPkx1a2FzeiBHb3JuaWNraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQWRlcmJlcmciIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBZGVyYmVyZyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGVyYmVyZyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJqdW5nYXJnMDciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTMwMDk3MjI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFyanVuIEdhcmciLz48YnIgLz48c3ViPjxiPkFyanVuIEdhcmc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcmp1bmdhcmcwNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vd3d3LmZtdmlsYXMuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI0MjExOT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRnJhbiBNw6luZGV6Ii8+PGJyIC8+PHN1Yj48Yj5GcmFuIE3DqW5kZXo8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FmbXZpbGFzIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQmxha2VsaXN0NyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NDUyNTk2MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iS2Fud2FsIFNpbmdoIi8+PGJyIC8+PHN1Yj48Yj5LYW53YWwgU2luZ2g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1CbGFrZWxpc3Q3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxlamFuZHJhcXVldHphbGxpLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xOTk2NDQwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQWxlamFuZHJhIFF1ZXR6YWxsaSAiLz48YnIgLz48c3ViPjxiPkFsZWphbmRyYSBRdWV0emFsbGkgPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBYWxlcXVldHphbGxpIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFsZXF1ZXR6YWxsaSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWQtc2FpZi1odXNhaW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA2ODI5Njg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1EIFNBSUYgIEhVU0FJTiIvPjxiciAvPjxzdWI+PGI+TUQgU0FJRiAgSFVTQUlOPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZXhhbXBsZS1tZC1zYWlmLWh1c2FpbiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9zdWRpcHRvLmdob3NoLnBybyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTIzMjk0MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU3VkaXB0byBHaG9zaCIvPjxiciAvPjxzdWI+PGI+U3VkaXB0byBHaG9zaDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtc3VkaXB0b2c4MSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c3VkaXB0b2c4MSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1zdWRpcHRvZzgxIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9wYW53YXV1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYyNTk3MjIzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJwYW53YXV1Ii8+PGJyIC8+PHN1Yj48Yj5wYW53YXV1PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cGFud2F1dSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wYW53YXV1IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtcGFud2F1dSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cGFud2F1dSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FwYW53YXV1IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vc3RlZmFuZW1heWVyLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTAzMTk1MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU3RlZmFuIEUuIE1heWVyIi8+PGJyIC8+PHN1Yj48Yj5TdGVmYW4gRS4gTWF5ZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FzdGVmYW5lcndpbm1heWVyIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSGFzaFRhbG1peiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NTAxODI4MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iVGFsbWl6IEFobWVkIi8+PGJyIC8+PHN1Yj48Yj5UYWxtaXogQWhtZWQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1IYXNoVGFsbWl6IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhc2hUYWxtaXoiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1IYXNoVGFsbWl6IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1RoYW5rc0ZvckFsbFRoZUZpc2giPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjE2OTY1NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWFyY28iLz48YnIgLz48c3ViPjxiPk1hcmNvPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBVGhhbmtzRm9yQWxsVGhlRmlzaCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3F1YWRycmVtIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg0NTA4NzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InF1YWRycmVtIi8+PGJyIC8+PHN1Yj48Yj5xdWFkcnJlbTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXF1YWRycmVtIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXF1YWRycmVtIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8va2Fta28uZGV2Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3MDc0Mzc1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLYW1pbCBKYW5lxI1layIvPjxiciAvPjxzdWI+PGI+S2FtaWwgSmFuZcSNZWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rYW1rbyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FrYW1rbyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2Fta28iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21haGFrcG9yd2FsMDIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTY0ODY2ODI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Im1haGFrcG9yd2FsMDIiLz48YnIgLz48c3ViPjxiPm1haGFrcG9yd2FsMDI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNleGFtcGxlLW1haGFrcG9yd2FsMDIiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1haGFrcG9yd2FsMDIiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFoYWtwb3J3YWwwMiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWhha3BvcndhbDAyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yb24tZGViYWp5b3RpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIyNTcxNjY0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZWJhanlvdGkgSGFsZGVyIi8+PGJyIC8+PHN1Yj48Yj5EZWJhanlvdGkgSGFsZGVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm9uLWRlYmFqeW90aSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yb24tZGViYWp5b3RpIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJvbi1kZWJhanlvdGkiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1yb24tZGViYWp5b3RpIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1yb24tZGViYWp5b3RpIiB0aXRsZT0iTWFpbnRlbmFuY2UiPvCfmqc8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3JpdGlrMzA3LmdpdGh1Yi5pby9wb3J0Zm9saW8vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIyMzc0ODI5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJSaXRpayBSYXdhbCIvPjxiciAvPjxzdWI+PGI+Uml0aWsgUmF3YWw8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLXJpdGlrMzA3IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSXNoYW4tU2FpbmkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQ1MjU2MDI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IklzaGFuIi8+PGJyIC8+PHN1Yj48Yj5Jc2hhbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUlzaGFuLVNhaW5pIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUlzaGFuLVNhaW5pIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3NhbXJpZGhpLTk4LmdpdGh1Yi5pby9Qb3J0Zm9saW8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQ0NjYwNDE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlNhbXJpZGRoaSIvPjxiciAvPjxzdWI+PGI+U2FtcmlkZGhpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1TYW1yaWRoaS05OCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtU2FtcmlkaGktOTgiIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9nYWJvcm1hZ3lhciI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82MzM5NzMwMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iR8OhYm9yIE1hZ3lhciIvPjxiciAvPjxzdWI+PGI+R8OhYm9yIE1hZ3lhcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtZ2Fib3JtYWd5YXIiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pYmVybmFiZXVkZXYiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzQyMTUwNzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImliZXJuYWJldWRldiIvPjxiciAvPjxzdWI+PGI+aWJlcm5hYmV1ZGV2PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aWJlcm5hYmV1ZGV2IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWliZXJuYWJldWRldiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWliZXJuYWJldWRldiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aWJlcm5hYmV1ZGV2IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zbG93aWtvd3NraWFya2FkaXVzeiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85NzUwODkzMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXJrYWRpdXN6IFPFgm93aWtvd3NraSIvPjxiciAvPjxzdWI+PGI+QXJrYWRpdXN6IFPFgm93aWtvd3NraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtc2xvd2lrb3dza2lhcmthZGl1c3oiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Qb2x5Z2VucyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTgyMzE4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJXaWxsZW0gR2lsbGlzIi8+PGJyIC8+PHN1Yj48Yj5XaWxsZW0gR2lsbGlzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UG9seWdlbnMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UG9seWdlbnMiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBUG9seWdlbnMiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ybWFzYXJvdmljIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1MjI4MzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InJtYXNhcm92aWMiLz48YnIgLz48c3ViPjxiPnJtYXNhcm92aWM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ybWFzYXJvdmljIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJtYXNhcm92aWMiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm1hc2Fyb3ZpYyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLXJtYXNhcm92aWMiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vd2FpczM0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjM4NzU5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJPd2FpcyBIYXNuYXRoIEFobWVkIi8+PGJyIC8+PHN1Yj48Yj5Pd2FpcyBIYXNuYXRoIEFobWVkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9b3dhaXMzNCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1vd2FpczM0IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW93YWlzMzQiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QYW5NYW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTc4NTAxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQYW5NYW4iLz48YnIgLz48c3ViPjxiPlBhbk1hbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVBhbk1hbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJ0dXItY2lvY2FudSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83NDMxOTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImFydHVyLWNpb2NhbnUiLz48YnIgLz48c3ViPjxiPmFydHVyLWNpb2NhbnU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnR1ci1jaW9jYW51IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWFydHVyLWNpb2NhbnUiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtYXJ0dXItY2lvY2FudSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YXJ0dXItY2lvY2FudSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnR1ci1jaW9jYW51IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbWljcm8tanVtYm8uZXUvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTExNjk3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJDeXByaWFuIEdyYWN6Ii8+PGJyIC8+PHN1Yj48Yj5DeXByaWFuIEdyYWN6PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWljcm8tanVtYm8iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWljcm8tanVtYm8iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBbWljcm8tanVtYm8iIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnByaW50bmFubnkuYWkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjYwMTgxOT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTGVpZ2ggSm9obnNvbiIvPjxiciAvPjxzdWI+PGI+TGVpZ2ggSm9obnNvbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWxlaWdoLWpvaG5zb24iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bGVpZ2gtam9obnNvbiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWxlaWdoLWpvaG5zb24iIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWxlaWdoLWpvaG5zb24iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtbGVpZ2gtam9obnNvbiIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBbGVpZ2gtam9obnNvbiIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbml0aW50ZWp1amEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTUzNDc5MjQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik5pdGluIFRlanVqYSIvPjxiciAvPjxzdWI+PGI+Tml0aW4gVGVqdWphPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bml0aW50ZWp1amEiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1uaXRpbnRlanVqYSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2tlbm5ldGhhYXNhbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDM3Mzk0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLZW5uZXRoIEFhc2FuIi8+PGJyIC8+PHN1Yj48Yj5LZW5uZXRoIEFhc2FuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2VubmV0aGFhc2FuIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWtlbm5ldGhhYXNhbiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1rZW5uZXRoYWFzYW4iIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWtlbm5ldGhhYXNhbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW1pdC1rc2giPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTE5NDcwMzc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFtaXQgS3VtYXIgU2hhcm1hIi8+PGJyIC8+PHN1Yj48Yj5BbWl0IEt1bWFyIFNoYXJtYTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFtaXQta3NoIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFtaXQta3NoIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtYW1pdC1rc2giIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vemF5dHNldmFuZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjA3NzQ4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbmRyZXkgWmF5dHNldiIvPjxiciAvPjxzdWI+PGI+QW5kcmV5IFpheXRzZXY8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj16YXl0c2V2YW5kIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtemF5dHNldmFuZCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9emF5dHNldmFuZCIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj16YXl0c2V2YW5kIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jb2Rpbmd0ZW5zaGkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE2Mzc3NjMwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUZW5zaGkgQ29kZXMiLz48YnIgLz48c3ViPjxiPlRlbnNoaSBDb2RlczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2luZnJhLWNvZGluZ3RlbnNoaSIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly95dXNoaW9tb3RlLm9yZy8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzczMzkxNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iWXVzaGkgT01PVEUiLz48YnIgLz48c3ViPjxiPll1c2hpIE9NT1RFPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBWXVzaGlPTU9URSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9WXVzaGlPTU9URSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL21hbGNoZXJjenlrLnBsIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3NTM0NTA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJaYmlnbmlldyBNYWxjaGVyY3p5ayIvPjxiciAvPjxzdWI+PGI+WmJpZ25pZXcgTWFsY2hlcmN6eWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FGZXJyb3IiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iI2luZnJhLUZlcnJvciIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUZlcnJvciIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNleGFtcGxlLUZlcnJvciIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9RmVycm9yIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQUZlcnJvciIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vMjAwUHVscyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTE4MzYwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIyMDBQdWxzIi8+PGJyIC8+PHN1Yj48Yj4yMDBQdWxzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9MjAwUHVscyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj0yMDBQdWxzIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbGlua3RyLmVlL2FuYXlzYXJrYXI3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUzMzQxMTgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbmF5IFNhcmthciIvPjxiciAvPjxzdWI+PGI+QW5heSBTYXJrYXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNleGFtcGxlLWFuYXlzYXJrYXI3IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hbmF5c2Fya2FyNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hbmF5c2Fya2FyNyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTG91aXNYaGFmZXJpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyMzk3Njc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMb3VpcyBYaGFmZXJpIi8+PGJyIC8+PHN1Yj48Yj5Mb3VpcyBYaGFmZXJpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9TG91aXNYaGFmZXJpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2FtYmhhdmd1cHRhMDcwNSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MTg3MDg2Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2FtYmhhdiBHdXB0YSIvPjxiciAvPjxzdWI+PGI+U2FtYmhhdiBHdXB0YTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNhbWJoYXZndXB0YTA3MDUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+IDxhIGhyZWY9IiNkZXNpZ24tc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNhbWJoYXZndXB0YTA3MDUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3ByYXl1dHN1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0NjM2NTI1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBYmhheSBHYXJnIi8+PGJyIC8+PHN1Yj48Yj5BYmhheSBHYXJnPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZXhhbXBsZS1wcmF5dXRzdSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2hlbnJpa2pvbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNzIxMjIzMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iaGVucmlram9uIi8+PGJyIC8+PHN1Yj48Yj5oZW5yaWtqb248L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1oZW5yaWtqb24iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aGVucmlram9uIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWhlbnJpa2pvbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNleGFtcGxlLWhlbnJpa2pvbiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly95YXNpcmRldmVsb3Blci5uZXRsaWZ5LmFwcC8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzQ2MDA3NDU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1vaGFtbWFkIFlhc2lyIi8+PGJyIC8+PHN1Yj48Yj5Nb2hhbW1hZCBZYXNpcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVlhc2lyNzYxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9TYXZpbzYyOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85MTM2MjU4OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2F2aW8gRGlhcyIvPjxiciAvPjxzdWI+PGI+U2F2aW8gRGlhczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNhdmlvNjI5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2luZnJhLVNhdmlvNjI5IiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBU2F2aW82MjkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pc2hhYW44MTIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzAxOTA1MzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IklzaGFhbiBTaGFoIi8+PGJyIC8+PHN1Yj48Yj5Jc2hhYW4gU2hhaDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWlzaGFhbjgxMiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vU2hyZXlhczA0MTAiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA3OTU4Njc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlNocmV5YXMwNDEwIi8+PGJyIC8+PHN1Yj48Yj5TaHJleWFzMDQxMDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNocmV5YXMwNDEwIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYmVrdS1lcGl0b21lIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTE1MTUxMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYmVrdS1lcGl0b21lIi8+PGJyIC8+PHN1Yj48Yj5iZWt1LWVwaXRvbWU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1iZWt1LWVwaXRvbWUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBYmVrdS1lcGl0b21lIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWJla3UtZXBpdG9tZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3dvcmRtYXN0ZXIyayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMzU0MDE2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb3NodWEgTWljaGFlbCBEYWx5Ii8+PGJyIC8+PHN1Yj48Yj5Kb3NodWEgTWljaGFlbCBEYWx5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc3dvcmRtYXN0ZXIyayIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Rsa2oiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjQzMDU5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYW5pZWwgS0oiLz48YnIgLz48c3ViPjxiPkRhbmllbCBLSjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWRsa2oiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGxraiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWRsa2oiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQWRsa2oiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9jb2RleXQuY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MzAzMzUxMT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQmhhdmlrIEFnYXJ3YWwiLz48YnIgLz48c3ViPjxiPkJoYXZpayBBZ2Fyd2FsPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZGVzaWduLUJoYXZpay1hZyIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rYXVzaGlrLXJpc2hpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyNDk4NjE3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJSaXNoaSIvPjxiciAvPjxzdWI+PGI+UmlzaGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rYXVzaGlrLXJpc2hpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2Rlc2lnbi1rYXVzaGlrLXJpc2hpIiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9yb2hpdGhib3BwZXkubmV0bGlmeS5hcHAiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzM1Mzg5NzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlJvaGl0aCBCb3BwZXkiLz48YnIgLz48c3ViPjxiPlJvaGl0aCBCb3BwZXk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Sb2hpdGhCb3BwZXkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLVJvaGl0aEJvcHBleSIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9hc2hpc2hwYWRoeS5saXZlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwMDQ4NDQwMT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXNoaXNoIFBhZGh5Ii8+PGJyIC8+PHN1Yj48Yj5Bc2hpc2ggUGFkaHk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TaHVydHUtZ2FsIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNodXJ0dS1nYWwiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjaW5mcmEtU2h1cnR1LWdhbCIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vamZjb3RlLmdpdGh1Yi5pbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDMzNjkwMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSmVhbi1GcmFuw6dvaXMgQ8O0dMOpIi8+PGJyIC8+PHN1Yj48Yj5KZWFuLUZyYW7Dp29pcyBDw7R0w6k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1KRkNvdGUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SkZDb3RlIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtSkZDb3RlIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1KRkNvdGUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1N1bWFudHhEIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY1ODEwNDI0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdW1hbnQueEQiLz48YnIgLz48c3ViPjxiPlN1bWFudC54RDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVN1bWFudHhEIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2luZnJhLVN1bWFudHhEIiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U3VtYW50eEQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FyeWFuYXMxNTkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE0MzMwOTMxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBcnlhbiBTaW5naCIvPjxiciAvPjxzdWI+PGI+QXJ5YW4gU2luZ2g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnlhbmFzMTU5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9tYXJrdXMucG9lcnNjaGtlLm5ydyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMjIyMzc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYXJrdXMgUG9lcnNjaGtlIi8+PGJyIC8+PHN1Yj48Yj5NYXJrdXMgUG9lcnNjaGtlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1hcmt1c3BvZXJzY2hrZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLW1hcmt1c3BvZXJzY2hrZSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qYW1lc21vZXkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDU3NDcyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKYW1lcyBNb2V5Ii8+PGJyIC8+PHN1Yj48Yj5KYW1lcyBNb2V5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9amFtZXNtb2V5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWphbWVzbW9leSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdG9td29sYW5za2kiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjgwODU2NTM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InRvbXdvbGFuc2tpIi8+PGJyIC8+PHN1Yj48Yj50b213b2xhbnNraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQXRvbXdvbGFuc2tpIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vS3Npc2EiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTM0MDQ3NzE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IktyaXN0dXBhcyIvPjxiciAvPjxzdWI+PGI+S3Jpc3R1cGFzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9S3Npc2EiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9EZXZhbnNoLUJoYXR0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzk0NzMyMDc5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZXZhbnNoLUJoYXR0Ii8+PGJyIC8+PHN1Yj48Yj5EZXZhbnNoLUJoYXR0PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9RGV2YW5zaC1CaGF0dCIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNpbmZyYS1EZXZhbnNoLUJoYXR0IiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3BpcGxpeWEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTYxODYxNDI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFuc2ggUGFuY2hvbGkiLz48YnIgLz48c3ViPjxiPkFuc2ggUGFuY2hvbGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1waXBsaXlhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ReXBvbDM0MiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzQ5NzAwNz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWFlZ2h0IExvYW4iLz48YnIgLz48c3ViPjxiPk1hZWdodCBMb2FuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UXlwb2wzNDIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UXlwb2wzNDIiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3ByaW5jZXJhanBvb3QuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0NTg1NDUyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQcmluY2UgUmFqcG9vdCIvPjxiciAvPjxzdWI+PGI+UHJpbmNlIFJhanBvb3Q8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wcmluY2VyYWpwb290MjAiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoaXQtc2VucGFpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkzMDc1MDY4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJoYXJzaGl0IG1pc2hyYSAiLz48YnIgLz48c3ViPjxiPmhhcnNoaXQgbWlzaHJhIDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWhhcnNoaXQtc2VucGFpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QZXRlQXVkaW5hdGUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTkyNzQ4NzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlBldGVBdWRpbmF0ZSIvPjxiciAvPjxzdWI+PGI+UGV0ZUF1ZGluYXRlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UGV0ZUF1ZGluYXRlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qYW5vLXBldHJhcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTQ3ODQ4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJqYW5vLXBldHJhcyIvPjxiciAvPjxzdWI+PGI+amFuby1wZXRyYXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25pbGthbnRoOTg3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNDEzNTgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJOaWxrYW50aCBQYXJtYXIiLz48YnIgLz48c3ViPjxiPk5pbGthbnRoIFBhcm1hcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtbmlsa2FudGg5ODciIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vamFpc2FyaXRhLnZlcmNlbC5hcHAvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNjM5MzQxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBc2htaXQgSmFpU2FyaXRhIEd1cHRhIi8+PGJyIC8+PHN1Yj48Yj5Bc2htaXQgSmFpU2FyaXRhIEd1cHRhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2aWxraWxsZXItYWciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLWRldmlsa2lsbGVyLWFnIiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2aWxraWxsZXItYWciIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtZGV2aWxraWxsZXItYWciIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9oYXJzaGlsLnByb3NlLnNoIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc5MzY3ODgzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJIYXJzaGlsIEphbmkiLz48YnIgLz48c3ViPjxiPkhhcnNoaWwgSmFuaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhcnNoaWwtSmFuaSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1IYXJzaGlsLUphbmkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9taW50dS1wb3J0Zm9saW8ubmV0bGlmeS5hcHAvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNzkyNTQ2NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWludHUgR29nb2kiLz48YnIgLz48c3ViPjxiPk1pbnR1IEdvZ29pPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9TWluMndobyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGV2YW5zaC1tMTIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODYxOTUxNjI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRldmFuc2ggTWFoYW50Ii8+PGJyIC8+PHN1Yj48Yj5EZXZhbnNoIE1haGFudDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWRldmFuc2gtbTEyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vZmZpY2lhbGFzaXNoa3VtYXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODc4NzQ3NzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFzaXNoIEt1bWFyIi8+PGJyIC8+PHN1Yj48Yj5Bc2lzaCBLdW1hcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW9mZmljaWFsYXNpc2hrdW1hciIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KClRoaXMgcHJvamVjdCBmb2xsb3dzIHRoZSBbYWxsLWNvbnRyaWJ1dG9yc10oaHR0cHM6Ly9naXRodWIuY29tL2FsbC1jb250cmlidXRvcnMvYWxsLWNvbnRyaWJ1dG9ycykgc3BlY2lmaWNhdGlvbi4gQ29udHJpYnV0aW9ucyBvZiBhbnkga2luZCBhcmUgd2VsY29tZSEK
- readmeEtag: '"fe2a3a4942f2f5fb5e89b73d3c10df01bb89cdc1e5255d88bb5b9aaee40928d6"'
- readmeLastModified: Wed, 27 Dec 2023 16:27:09 GMT
+ WyFbQXN5bmNBUEkgTW9kZWxpbmFdKC4vZG9jcy9pbWcvcmVhZG1lLWJhbm5lci5wbmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW2JsYWNrYm94IHBpcGVsaW5lIHN0YXR1c10oPGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL2FzeW5jYXBpL21vZGVsaW5hL2JsYWNrYm94LXRlc3RpbmcueW1sP2xhYmVsPWJsYWNrYm94JTIwdGVzdGluZz4pXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYWN0aW9ucy93b3JrZmxvd3MvYmxhY2tib3gtdGVzdGluZy55bWw/cXVlcnk9YnJhbmNoJTNBbWFzdGVyKyspClshW0NvdmVyYWdlIFN0YXR1c10oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyKV0oaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vZ2l0aHViL2FzeW5jYXBpL21vZGVsaW5hP2JyYW5jaD1tYXN0ZXIpClshW1Byb2plY3QgU3RhdHVzOiBBY3RpdmUg4oCTIFRoZSBwcm9qZWN0IGhhcyByZWFjaGVkIGEgc3RhYmxlLCB1c2FibGUgc3RhdGUgYW5kIGlzIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZC5dKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnL2JhZGdlcy9sYXRlc3QvYWN0aXZlLnN2ZyldKGh0dHBzOi8vd3d3LnJlcG9zdGF0dXMub3JnLyNhY3RpdmUpCiFbTWFpbnRlbmFuY2Ugc2NvcmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtcy1pby9tYWludGVuYW5jZS1zY29yZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW05wbSBsYXRlc3QgdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vdi9AYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AYXN5bmNhcGkvbW9kZWxpbmEpClshW0xpY2Vuc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvYmxvYi9tYXN0ZXIvTElDRU5TRSkKWyFbbGFzdCBjb21taXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xhc3QtY29tbWl0L2FzeW5jYXBpL21vZGVsaW5hKV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHMvbWFzdGVyKQpbIVtEaXNjdXNzaW9uc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZGlzY3Vzc2lvbnMvYXN5bmNhcGkvbW9kZWxpbmEpXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvZGlzY3Vzc2lvbnMpClshW1dlYnNpdGVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD13ZWJzaXRlJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmcpXShodHRwczovL3d3dy5tb2RlbGluYS5vcmcpClshW1BsYXlncm91bmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vd2Vic2l0ZT9sYWJlbD1wbGF5Z3JvdW5kJnVybD1odHRwcyUzQSUyRiUyRnd3dy5tb2RlbGluYS5vcmclMkZwbGF5Z3JvdW5kKV0oaHR0cHM6Ly93d3cubW9kZWxpbmEub3JnL3BsYXlncm91bmQpIDwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTc3LW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCllvdXIgb25lLXN0b3AgdG9vbCBmb3IgZ2VuZXJhdGluZyBhY2N1cmF0ZSBhbmQgd2VsbC10ZXN0ZWQgbW9kZWxzIGZvciByZXByZXNlbnRpbmcgdGhlIG1lc3NhZ2UgcGF5bG9hZHMuIFVzZSBpdCBhcyBhIHRvb2wgaW4geW91ciBkZXZlbG9wbWVudCB3b3JrZmxvdywgb3IgYSBsaWJyYXJ5IGluIGEgbGFyZ2VyIGludGVncmF0aW9ucywgZW50aXJlbHkgaW4geW91ciBjb250cm9sLgoKLS0tCgo8IS0tIHRvYyBpcyBnZW5lcmF0ZWQgd2l0aCBHaXRIdWIgQWN0aW9ucyBkbyBub3QgcmVtb3ZlIHRvYyBtYXJrZXJzIC0tPgoKPCEtLSB0b2MgLS0+CgotIFtJbnN0YWxsaW5nIE1vZGVsaW5hXSgjaW5zdGFsbGluZy1tb2RlbGluYSkKLSBbQXN5bmNBUEkgQ0xJXSgjYXN5bmNhcGktY2xpKQotIFtGZWF0dXJlc10oI2ZlYXR1cmVzKQotIFtSZXF1aXJlbWVudHNdKCNyZXF1aXJlbWVudHMpCi0gW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQotIFtFeGFtcGxlc10oI2V4YW1wbGVzKQotIFtWZXJzaW9uaW5nIGFuZCBtYWludGVuYW5jZV0oI3ZlcnNpb25pbmctYW5kLW1haW50ZW5hbmNlKQotIFtEZXZlbG9wbWVudF0oI2RldmVsb3BtZW50KQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0NvbnRyaWJ1dG9yc10oI2NvbnRyaWJ1dG9ycykKCjwhLS0gdG9jc3RvcCAtLT4KCiMjIEluc3RhbGxpbmcgTW9kZWxpbmEKClJ1biB0aGlzIGNvbW1hbmQgdG8gaW5zdGFsbCBNb2RlbGluYSBpbiB5b3VyIHByb2plY3Q6CgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBhc3luY2FwaS9tb2RlbGluYQpgYGAKCiMjIEFzeW5jQVBJIENMSQoKSWYgeW91IGhhdmUgdGhlIFtBc3luY0FQSSBDTEkgaW5zdGFsbGVkXShodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvY2xpI2luc3RhbGxhdGlvbikgKE9OTFkgc3VwcG9ydCBBc3luY0FQSSBpbnB1dHMpLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gdXNlIFtNb2RlbGluYV0oaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL2NsaSN1c2FnZSk6CgpgYGBiYXNoCmFzeW5jYXBpIGdlbmVyYXRlIG1vZGVscyA8bGFuZ3VhZ2U+IC4vYXN5bmNhcGkuanNvbgpgYGAKCjxoMiBhbGlnbj0iY2VudGVyIj5XaGF0IERvZXMgTW9kZWxpbmEgRG8/PC9oMj4KCjxwIGFsaWduPSJjZW50ZXIiPk1vZGVsaW5hIHB1dCBZT1UgaW4gY29udHJvbCBvZiB5b3VyIGRhdGEgbW9kZWxzLCBoZXJlIGlzIGhvdy4uLjwvcD4KCjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRkPjxiPk1vZGVsaW5hIGxldHMgeW91IGdlbmVyYXRlIGRhdGEgbW9kZWxzIGZyb20gbWFueSB0eXBlcyBvZiA8YSBocmVmPSIjaW5wdXRzIj5pbnB1dHM8L2E+PC9iPjwvdGQ+Cjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgYXN5bmNhcGkgPSAuLi4KY29uc3QganNvbnNjaGVtYSA9IC4uLgpjb25zdCBvcGVuYXBpID0gLi4uIApjb25zdCBtZXRhbW9kZWwgPSAuLi4gCi4uLgpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoCiAgYXN5bmNhcGkgfCBqc29uc2NoZW1hIHwgb3BlbmFwaSB8IG1ldGFtb2RlbAopOwpgYGAKPC90ZD4KICA8L3RyPgogICAgPHRyPgogICAgPHRkPjxiPlVzZSB0aGUgc2FtZSBpbnB1dHMgYWNyb3NzIGEgcmFuZ2Ugb2YgZGlmZmVyZW50IDxhIGhyZWY9IiNvdXRwdXRzIj5nZW5lcmF0b3JzPC9hPjwvYj48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKCk7CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBDc2hhcnBHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IEphdmFHZW5lcmF0b3IoKTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFJ1c3RHZW5lcmF0b3IoKTsKLi4uCmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgICA8dHI+CiAgICA8dGQ+PGI+RWFzaWx5IGxldCB5b3UgaW50ZXJhY3Qgd2l0aCB0aGUgZ2VuZXJhdGVkIG1vZGVscy48L2I+IAoKLSBXYW50IHRvIHNob3cgdGhlIGdlbmVyYXRlZCBtb2RlbHMgb24gYSB3ZWJzaXRlPyBTdXJlISAKLSBXYW50IHRvIGdlbmVyYXRlIHRoZSBtb2RlbHMgaW50byBmaWxlcz8gU3VyZSEgCi0gV2FudCB0byBjb21iaW5lIGFsbCB0aGUgbW9kZWxzIGludG8gb25lIHNpbmdsZSBmaWxlPyBTdXJlISAKCldoYXRldmVyIGludGVyYWN0aW9uIHlvdSBuZWVkLCB5b3UgY2FuIGNyZWF0ZS48L3RkPgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmZvciAoY29uc3QgbW9kZWwgaW4gbW9kZWxzKSB7IAogIGNvbnN0IGdlbmVyYXRlZENvZGUgPSBnZW5lcmF0ZWRNb2RlbC5yZXN1bHQ7CiAgY29uc3QgZGVwZW5kZW5jaWVzID0gZ2VuZXJhdGVkTW9kZWwuZGVwZW5kZW5jaWVzOwogIGNvbnN0IG1vZGVsdHlwZSA9IGdlbmVyYXRlZE1vZGVsLm1vZGVsLnR5cGU7CiAgY29uc3QgbW9kZWxOYW1lID0gZ2VuZXJhdGVkTW9kZWwubW9kZWxOYW1lOwogIC4uLgp9CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPkVhc2lseSBtb2RpZnkgaG93IG1vZGVscyBhcmUgPGEgaHJlZj0iLi9kb2NzL2NvbnN0cmFpbnRzLm1kIj5jb25zdHJhaW5lZDwvYT4gaW50byB0aGUgb3V0cHV0PC9iPjwvdGQ+Cgo8dGQ+CgpgYGB0eXBlc2NyaXB0CmNvbnN0IGdlbmVyYXRvciA9IG5ldyBUeXBlU2NyaXB0R2VuZXJhdG9yKHsKICBjb25zdHJhaW50czogewogICAgbW9kZWxOYW1lOiAoe21vZGVsTmFtZX0pID0+IHsKICAgICAgLy8gSW1wbGVtZW50IHlvdXIgb3duIGNvbnN0cmFpbmluZyBsb2dpYwogICAgICByZXR1cm4gbW9kZWxOYW1lOwogICAgfQogIH0KfSk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGF5ZXIgYWRkaXRpb25hbCBvciByZXBsYWNlbWVudCBjb2RlIDxhIGhyZWY9Ii4vZG9jcy9wcmVzZXRzLm1kIj5vbiB0b3Agb2YgZWFjaCBvdGhlciB0byBjdXN0b21pemUgdGhlIG1vZGVsczwvYT4gdG8geW91ciB1c2UtY2FzZTwvYj48L3RkPgoKPHRkPgoKYGBgdHlwZXNjcmlwdApjb25zdCBnZW5lcmF0b3IgPSBuZXcgVHlwZVNjcmlwdEdlbmVyYXRvcih7CiAgcHJlc2V0czogWwogICAgewogICAgICBjbGFzczogewogICAgICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgICAgICByZXR1cm4gYCR7Y29udGVudH0KcHVibGljIG15Q3VzdG9tRnVuY3Rpb24oKTogc3RyaW5nIHsKICByZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICAgICAgfSwKICAgICAgfQogICAgfQogIF0KfSk7CmNvbnN0IG1vZGVscyA9IGF3YWl0IGdlbmVyYXRvci5nZW5lcmF0ZShpbnB1dCk7CmBgYAo8L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxiPlNlYW1sZXNzbHkgbGV0cyB5b3UgPGEgaHJlZj0iLi9kb2NzL3ByZXNldHMubWQiPmNvbWJpbmUgbXVsdGlwbGUgbGF5ZXJzIG9mIGFkZGl0aW9uYWwgb3IgcmVwbGFjZW1lbnQgY29kZTwvYT48L2I+PC90ZD4KCjx0ZD4KCmBgYHR5cGVzY3JpcHQKY29uc3QgbXlDdXN0b21GdW5jdGlvbjEgPSB7CiAgY2xhc3M6IHsKICAgIGFkZGl0aW9uYWxDb250ZW50KHsgY29udGVudCB9KSB7CiAgICAgIHJldHVybiBgJHtjb250ZW50fQpwdWJsaWMgbXlDdXN0b21GdW5jdGlvbigpOiBzdHJpbmcgewpyZXR1cm4gJ0EgY3VzdG9tIGZ1bmN0aW9uIGZvciBlYWNoIGNsYXNzJzsKfWA7CiAgICB9LAogIH0KfTsKY29uc3QgbXlDdXN0b21GdW5jdGlvbjIgPSB7Li4ufTsKY29uc3QgZ2VuZXJhdG9yID0gbmV3IFR5cGVTY3JpcHRHZW5lcmF0b3IoewogIHByZXNldHM6IFsKICAgIG15Q3VzdG9tRnVuY3Rpb24xLAogICAgbXlDdXN0b21GdW5jdGlvbjIKICBdCn0pOwpjb25zdCBtb2RlbHMgPSBhd2FpdCBnZW5lcmF0b3IuZ2VuZXJhdGUoaW5wdXQpOwpgYGAKPC90ZD4KICA8L3RyPgo8L3RhYmxlPgoKIyMgRmVhdHVyZXMKClRoZSBmb2xsb3dpbmcgdGFibGUgcHJvdmlkZXMgYSBzaG9ydCBzdW1tYXJ5IG9mIGF2YWlsYWJsZSBmZWF0dXJlcyBmb3Igc3VwcG9ydGVkIG91dHB1dCBsYW5ndWFnZXMuIFRvIHNlZSB0aGUgY29tcGxldGUgZmVhdHVyZSBsaXN0IGZvciBlYWNoIGxhbmd1YWdlLCBwbGVhc2UgY2xpY2sgdGhlIGluZGl2aWR1YWwgbGlua3MgZm9yIGVhY2ggbGFuZ3VhZ2UuCgo8YSBpZD0iaW5wdXRzIj48L2E+Cgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0cj4KICAgIDx0aD5TdXBwb3J0ZWQgaW5wdXRzPC90aD4KICAgIDx0aD48L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1hc3luY2FwaS1kb2N1bWVudHMiPkFzeW5jQVBJPC9hPjwvdGQ+CiAgICA8dGQ+V2Ugc3VwcG9ydCB0aGUgZm9sbG93aW5nIEFzeW5jQVBJIHZlcnNpb25zOiA8ZW0+Mi4wLjAgLT4gMi42LjA8L2VtPiwgd2hpY2ggZ2VuZXJhdGVzIG1vZGVscyBmb3IgYWxsIHRoZSBkZWZpbmVkIG1lc3NhZ2UgcGF5bG9hZHMuIEl0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc2NoZW1hRm9ybWF0cyBBc3luY0FQSSBTY2hlbWEgb2JqZWN0LCBKU09OIFNjaGVtYSBkcmFmdCA3LCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLWF2cm8tc2NoZW1hIj5BVlJPIDEuOTwvYT4sIDxhIGhyZWY9Ii4vZXhhbXBsZXMvYXN5bmNhcGktcmFtbC1zY2hlbWEiPlJBTUwgMS4wIGRhdGEgdHlwZTwvYT4sIGFuZCA8YSBocmVmPSIuL2V4YW1wbGVzL2FzeW5jYXBpLW9wZW5hcGktc2NoZW1hIj5PcGVuQVBJIDMuMCBTY2hlbWE8L2E+LjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLWpzb24tc2NoZW1hLWRvY3VtZW50cyI+SlNPTiBTY2hlbWE8L2E+PC90ZD4KICAgIDx0ZD5XZSBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgSlNPTiBTY2hlbWEgdmVyc2lvbnM6IDxlbT5EcmFmdC00LCBEcmFmdC02IGFuZCBEcmFmdC03PC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPk9wZW5BUEk8L3RkPgogICAgPHRkPldlIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBPcGVuQVBJIHZlcnNpb25zOiA8ZW0+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLXN3YWdnZXItMjAtZG9jdW1lbnRzIj5Td2FnZ2VyIDIuMDwvYT4gYW5kIDxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbHMtZnJvbS1vcGVuYXBpLWRvY3VtZW50cyI+T3BlbkFQSSAzLjA8L2E+PC9lbT4sIHdoaWNoIGdlbmVyYXRlcyBtb2RlbHMgZm9yIGFsbCB0aGUgZGVmaW5lZCByZXF1ZXN0IGFuZCByZXNwb25zZSBwYXlsb2Fkcy48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1tb2RlbC1mcm9tLXR5cGVzY3JpcHQtdHlwZS1maWxlcyI+VHlwZVNjcmlwdDwvYT48L3RkPgogICAgPHRkPldlIGN1cnJlbnRseSBzdXBwb3J0IFR5cGVTY3JpcHQgdHlwZXMgYXMgZmlsZSBpbnB1dCBmb3IgbW9kZWwgZ2VuZXJhdGlvbjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLW1vZGVscy1mcm9tLW1ldGEtbW9kZWxzIj5NZXRhIG1vZGVsPC9hPjwvdGQ+CiAgICA8dGQ+VGhpcyBpcyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYSBtb2RlbCBmb3IgTW9kZWxpbmEsIGl0IGlzIHdoYXQgaW5wdXRzIGdldHMgY29udmVydGVkIHRvLCBhbmQgd2hhdCBnZW5lcmF0b3JzIGFyZSBwcm92aWRlZCB0byBnZW5lcmF0ZSBjb2RlLiBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gYW4gaW5wdXQgcHJvY2Vzc29yLCB5b3UgY2FuIGNyZWF0ZSB5b3VyIG93biBtb2RlbHMgZnJvbSBzY3JhdGNoIGFuZCBzdGlsbCB0YWtlIGFkdmFudGFnZSBvbiB0aGUgZ2VuZXJhdG9ycyBhbmQgdGhlIGZlYXR1cmVzLjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCjxhIGlkPSJvdXRwdXRzIj48L2E+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRyPgogICAgPHRoPlN1cHBvcnRlZCBvdXRwdXRzPC90aD4KICAgIDx0aD48L3RoPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1qYXZhLW1vZGVscyI+SmF2YTwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5nZW5lcmF0aW9uIG9mIGVxdWFscywgaGFzaENvZGUsIHRvU3RyaW5nLCBKYWNrc29uIGFubm90YXRpb24sIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXR5cGVzY3JpcHQtbW9kZWxzIj5UeXBlU2NyaXB0PC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MsIGludGVyZmFjZSBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Z2VuZXJhdGlvbiBvZiBleGFtcGxlIGNvZGUsIHVuL21hcnNoYWwgZnVuY3Rpb25zLCBjdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1jIy1tb2RlbHMiPkMjPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmdlbmVyYXRpb24gb2YgZXhhbXBsZSBjb2RlLCBzZXJpYWxpemVyIGFuZCBkZXNlcmlhbGl6ZXIgZnVuY3Rpb25zLCBjdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1nby1tb2RlbHMiPkdvPC9hPjwvdGQ+CiAgICA8dGQ+U3RydWN0IGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtamF2YXNjcmlwdC1tb2RlbHMiPkphdmFTY3JpcHQ8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBnZW5lcmF0aW9uOiA8ZW0+Y3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YzwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUtZGFydC1tb2RlbHMiPkRhcnQ8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiBqc29uX2Fubm90YXRpb248L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1ydXN0LW1vZGVscyI+UnVzdDwvYT48L3RkPgogICAgPHRkPlN0cnVjdC90dXBsZSBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Z2VuZXJhdGlvbiBvZiBgaW1wbGVtZW50IERlZmF1bHRgLCBnZW5lcmF0ZSBzZXJkZSBtYWNyb3MsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGM8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXB5dGhvbi1tb2RlbHMiPlB5dGhvbjwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZXRjIDwvZW0+PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD48YSBocmVmPSIuL2RvY3MvdXNhZ2UubWQjZ2VuZXJhdGUta290bGluLW1vZGVscyI+S290bGluPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPnVzZSBvZiBkYXRhIGNsYXNzZXMgd2hlcmUgYXBwcm9wcmlhdGUsIGN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1jcGx1c3BsdXMtbW9kZWxzIj5DKys8L2E+PC90ZD4KICAgIDx0ZD5DbGFzcyBhbmQgZW51bSBnZW5lcmF0aW9uOiA8ZW0+Y3VzdG9tIGluZGVudGF0aW9uIHR5cGUgYW5kIHNpemUsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+PGEgaHJlZj0iLi9kb2NzL3VzYWdlLm1kI2dlbmVyYXRlLXBocC1tb2RlbHMiPlBIUDwvYT48L3RkPgogICAgPHRkPkNsYXNzIGFuZCBlbnVtIGdlbmVyYXRpb246IDxlbT5jdXN0b20gaW5kZW50YXRpb24gdHlwZSBhbmQgc2l6ZSwgZGVzY3JpcHRpb25zLCBldGMgPC9lbT48L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPjxhIGhyZWY9Ii4vZG9jcy91c2FnZS5tZCNnZW5lcmF0ZS1zY2FsYS1tb2RlbHMiPlNjYWxhPC9hPjwvdGQ+CiAgICA8dGQ+Q2xhc3MgYW5kIGVudW0gZ2VuZXJhdGlvbjogPGVtPmN1c3RvbSBpbmRlbnRhdGlvbiB0eXBlIGFuZCBzaXplLCBkZXNjcmlwdGlvbnMsIGV0YyA8L2VtPjwvdGQ+CiAgPC90cj4KPC90YWJsZT4KCiMjIFJlcXVpcmVtZW50cwpUaGUgZm9sbG93aW5nIGFyZSBhIHJlcXVpcmVtZW50IGluIG9yZGVyIHRvIHVzZSBNb2RlbGluYS4KCi0gW05vZGVKU10oaHR0cHM6Ly9ub2RlanMub3JnL2VuLykgPj0gMTgKCiMjIERvY3VtZW50YXRpb24KQSBmZWF0dXJlIGluIE1vZGVsaW5hIGNhbm5vdCBleGlzdHMgd2l0aG91dCBhbiBleGFtcGxlIGFuZCBkb2N1bWVudGF0aW9uIGZvciBpdC4gWW91IGNhbiBmaW5kIGFsbCB0aGUgW2RvY3VtZW50YXRpb24gaGVyZV0oLi9kb2NzL1JFQURNRS5tZCkuCgojIyBFeGFtcGxlcwpEbyB5b3UgbmVlZCB0byBrbm93IGhvdyB0byB1c2UgdGhlIGxpYnJhcnkgaW4gY2VydGFpbiBzY2VuYXJpb3M/IAoKV2UgaGF2ZSBnYXRoZXJlZCBhbGwgdGhlIGV4YW1wbGVzIGluIGEgc2VwYXJhdGUgZm9sZGVyIGFuZCB0aGV5IGNhbiBiZSBmb3VuZCB1bmRlciB0aGUgW2V4YW1wbGVzIGZvbGRlcl0oLi9leGFtcGxlcykuIAoKIyMgVmVyc2lvbmluZyBhbmQgbWFpbnRlbmFuY2UKQXMgb2YgdmVyc2lvbiAxLCBNb2RlbGluYSBoYXMgYSB2ZXJ5IHN0cmljdCBzZXQgb2YgY2hhbmdlcyB3ZSBhcmUgYWxsb3dlZCB0byBkbyBiZWZvcmUgaXQgcmVxdWlyZXMgYSBtYWpvciB2ZXJzaW9uIGNoYW5nZS4gSW4gc2hvcnQsIGFueSBjaGFuZ2VzIHRoYXQgY2hhbmdlIHRoZSBnZW5lcmF0ZWQgb3V0Y29tZSBhcmUgbm90IGFsbG93ZWQgYXMgaXQncyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgdGhlIGNvbnN1bWVyIG9mIHRoZSBnZW5lcmF0ZWQgbW9kZWxzLiAKCkhlcmUgaXMgYSBsaXN0IG9mIGNoYW5nZXMgd2UgYXJlIGFsbG93ZWQgdG8gZG8gdGhhdCB3b3VsZCBub3QgcmVxdWlyZSBhIGJyZWFraW5nIGNoYW5nZToKLSBBZGRpbmcgbmV3IGZlYXR1cmVzICh0aGF0IGRvIG5vdCBjaGFuZ2UgZXhpc3Rpbmcgb3V0cHV0KSwgc3VjaCBhcyBnZW5lcmF0b3JzLCBwcmVzZXRzLCBpbnB1dCBwcm9jZXNzb3JzLCBldGMuCi0gQ2hhbmdlIGV4aXN0aW5nIGZlYXR1cmVzLCBieSBwcm92aWRpbmcgb3B0aW9ucyB0aGF0IGRlZmF1bHQgdG8gY3VycmVudCBiZWhhdmlvci4gVGhpcyBjb3VsZCBiZSBhIHByZXNldCB0aGF0IGFkYXB0cyB0aGUgb3V0cHV0IGJhc2VkIG9uIG9wdGlvbnMsIGFzIGxvbmcgYXMgdGhlIEFQSSBvZiBNb2RlbGluYSBhbmQgdGhlIEFQSSBvZiB0aGUgZ2VuZXJhdGVkIG1vZGVscyBkb2VzIG5vdCBoYXZlIGFueSBicmVha2luZyBjaGFuZ2VzLgotIEJ1ZyBmaXhlcyB3aGVyZSB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgb3RoZXJ3aXNlIHVudXNhYmxlIChzeW50YXggZXJyb3JzLCBldGMpLgoKQnJlYWtpbmcgY2hhbmdlcyBhcmUgYWxsb3dlZCBhbmQgZXhwZWN0ZWQgYXQgYSBmcmVxdWVudCByYXRlLCBvZiBjb3Vyc2Ugd2hlcmUgaXQgbWFrZXMgc2Vuc2Ugd2Ugd2lsbCB0cnkgdG8gYnVuZGxlIG11bHRpcGxlIGNoYW5nZXMgdG9nZXRoZXIuCgpXZSBvZiBjb3Vyc2Ugd2lsbCBkbyBvdXIgYmVzdCB0byB1cGhvbGQgdGhpcywgYnV0IG1pc3Rha2VzIGNhbiBoYXBwZW4sIGFuZCBpZiB5b3Ugbm90aWNlIGFueSBicmVha2luZyBjaGFuZ2VzIHBsZWFzZSBsZXQgdXMga25vdyEKCkJlY2F1c2Ugb2YgdGhlIG51bWJlciBvZiB0aGUgbGltaXRlZCBudW1iZXIgb2YgY2hhbXBpb25zLCBvbmx5IHRoZSBtb3N0IHJlY2VudCBtYWpvciB2ZXJzaW9uIHdpbGwgYmUgbWFpbnRhaW5lZC4KCk1ham9yIHZlcnNpb25zIGFyZSBjdXJyZW50bHkgaGFwcGVuaW5nIGF0IGEgMy1tb250aCBjYWRlbmNlIChpbiBhIHNpbWlsYXIgZmFzaGlvbiBhcyB0aGUgQXN5bmNBUEkgc3BlY2lmaWNhdGlvbiksIHRoaXMgd2lsbCBoYXBwZW4gaW4gSmFudWFyeSwgQXByaWwsIEp1bmUsIGFuZCBTZXB0ZW1iZXIuIAoKIyMgRGV2ZWxvcG1lbnQKV2UgdHJ5IHRvIG1ha2UgaXQgYXMgZWFzeSBmb3IgeW91IGFzIHBvc3NpYmxlIHRvIHNldCB1cCB5b3VyIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRvIGNvbnRyaWJ1dGUgdG8gTW9kZWxpbmEuIFlvdSBjYW4gZmluZCB0aGUgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiBbaGVyZV0oLi9kb2NzL2RldmVsb3BtZW50Lm1kKS4KCiMjIENvbnRyaWJ1dGluZwpXaXRob3V0IGNvbnRyaWJ1dGlvbnMsIE1vZGVsaW5hIHdvdWxkIG5vdCBleGlzdCwgaXQncyBhIGNvbW11bml0eSBwcm9qZWN0IHdlIGJ1aWxkIHRvZ2V0aGVyIHRvIGNyZWF0ZSB0aGUgYmVzdCBwb3NzaWJsZSBidWlsZGluZyBibG9ja3MsIGFuZCB3ZSBkbyB0aGlzIHRocm91Z2ggW2NoYW1waW9uc10oLi9kb2NzL2NoYW1waW9ucy5tZCkuCgpXZSBoYXZlIG1hZGUgcXVpdGUgYSBbY29tcHJlaGVuc2l2ZSBjb250cmlidXRpb24gZ3VpZGVdKC4vZG9jcy9jb250cmlidXRpbmcubWQpIHRvIGdpdmUgeW91IGEgbGVuZGluZyBoYW5kIGluIGhvdyBkaWZmZXJlbnQgZmVhdHVyZXMgYW5kIGNoYW5nZXMgYXJlIGludHJvZHVjZWQuCgpJZiBubyBkb2N1bWVudGF0aW9uIGhlbHBzIHlvdSwgaGVyZSBpcyBob3cgeW91IGNhbiByZWFjaCBvdXQgdG8gZ2V0IGhlbHA6Ci0gT24gdGhlIFtvZmZpY2lhbCBBc3ljbkFQSSBzbGFja10oaHR0cHM6Ly9hc3luY2FwaS5jb20vc2xhY2staW52aXRlKSB1bmRlciB0aGUgYCMwNF90b29saW5nYCBjaGFubmVsCi0gVGFnIGEgc3BlY2lmaWMgW0NPREVPV05FUl0oLi9DT0RFT1dORVJTKSBpbiB5b3VyIFBSCi0gR2VuZXJhbGx5LCBpdCdzIGFsd2F5cyBhIGdvb2QgaWRlYSB0byBkbyBldmVyeXRoaW5nIGluIHB1YmxpYywgYnV0IGluIHNvbWUgY2FzZXMsIGl0IG1pZ2h0IG5vdCBiZSBwb3NzaWJsZS4gSW4gdGhvc2UgY2lyY3Vtc3RhbmNlcyB5b3UgY2FuIGNvbnRhY3QgdGhlIGZvbGxvd2luZzogCiAgLSBbam9uYXNsYWdvbmldKGh0dHBzOi8vZ2l0aHViLmNvbS9qb25hc2xhZ29uaSkgKG9uIFtBc3luY0FQSSBTbGFja10oaHR0cHM6Ly9hc3luY2FwaS5jb20vc2xhY2staW52aXRlKSwgW1R3aXR0ZXJdKGh0dHBzOi8vdHdpdHRlci5jb20vam9uYXNsYWdvbmkpLCBbRW1haWxdKG1haWx0bzpqb25hcy1sdEBsaXZlLmRrKSwgW0xpbmtlZEluXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vam9uYXNsYWdvbmkvKSkKCiMjIENvbnRyaWJ1dG9ycyAKClRoYW5rcyBnbyBvdXQgdG8gdGhlc2Ugd29uZGVyZnVsIHBlb3BsZSAoW2Vtb2ppIGtleV0oaHR0cHM6Ly9hbGxjb250cmlidXRvcnMub3JnL2RvY3MvZW4vZW1vamkta2V5KSk6Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21hZ2ljbWF0YXRqYWh1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIwNDA0OTQ1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYWNpZWogVXJiYcWEY3p5ayIvPjxiciAvPjxzdWI+PGI+TWFjaWVqIFVyYmHFhGN6eWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FtYWdpY21hdGF0amFodSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjaWRlYXMtbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1tYWdpY21hdGF0amFodSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSIjcXVlc3Rpb24tbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJBbnN3ZXJpbmcgUXVlc3Rpb25zIj7wn5KsPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFnaWNtYXRhdGphaHUiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBbWFnaWNtYXRhdGphaHUiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2N6bG93aWVrNDg4Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM0NjIwMTA5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJjemxvd2llazQ4OCIvPjxiciAvPjxzdWI+PGI+Y3psb3dpZWs0ODg8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0Fjemxvd2llazQ4OCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBY3psb3dpZWs0ODgiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSIjaWRlYXMtY3psb3dpZWs0ODgiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc21veWEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA4MzI5Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2VyZ2lvIE1veWEiLz48YnIgLz48c3ViPjxiPlNlcmdpbyBNb3lhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc21veWEiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNtb3lhIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQXNtb3lhIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qb25hc2xhZ29uaSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzM5NjE4OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSm9uYXMgTGFnb25pIi8+PGJyIC8+PHN1Yj48Yj5Kb25hcyBMYWdvbmk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0Fqb25hc2xhZ29uaSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjaWRlYXMtam9uYXNsYWdvbmkiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1qb25hc2xhZ29uaSIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSIjcXVlc3Rpb24tam9uYXNsYWdvbmkiIHRpdGxlPSJBbnN3ZXJpbmcgUXVlc3Rpb25zIj7wn5KsPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9am9uYXNsYWdvbmkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBam9uYXNsYWdvbmkiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9kZXYudG8vZGVyYmVyZyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTk1OTI3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMdWthc3ogR29ybmlja2kiLz48YnIgLz48c3ViPjxiPkx1a2FzeiBHb3JuaWNraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQWRlcmJlcmciIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBZGVyYmVyZyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGVyYmVyZyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJqdW5nYXJnMDciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTMwMDk3MjI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFyanVuIEdhcmciLz48YnIgLz48c3ViPjxiPkFyanVuIEdhcmc8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcmp1bmdhcmcwNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vd3d3LmZtdmlsYXMuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI0MjExOT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRnJhbiBNw6luZGV6Ii8+PGJyIC8+PHN1Yj48Yj5GcmFuIE3DqW5kZXo8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9wdWxscz9xPWlzJTNBcHIrcmV2aWV3ZWQtYnklM0FmbXZpbGFzIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vQmxha2VsaXN0NyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NDUyNTk2MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iS2Fud2FsIFNpbmdoIi8+PGJyIC8+PHN1Yj48Yj5LYW53YWwgU2luZ2g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1CbGFrZWxpc3Q3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYWxlamFuZHJhcXVldHphbGxpLmNvbSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xOTk2NDQwMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQWxlamFuZHJhIFF1ZXR6YWxsaSAiLz48YnIgLz48c3ViPjxiPkFsZWphbmRyYSBRdWV0emFsbGkgPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBYWxlcXVldHphbGxpIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFsZXF1ZXR6YWxsaSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbWQtc2FpZi1odXNhaW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA2ODI5Njg/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1EIFNBSUYgIEhVU0FJTiIvPjxiciAvPjxzdWI+PGI+TUQgU0FJRiAgSFVTQUlOPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZXhhbXBsZS1tZC1zYWlmLWh1c2FpbiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWQtc2FpZi1odXNhaW4iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9zdWRpcHRvLmdob3NoLnBybyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTIzMjk0MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU3VkaXB0byBHaG9zaCIvPjxiciAvPjxzdWI+PGI+U3VkaXB0byBHaG9zaDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2V4YW1wbGUtc3VkaXB0b2c4MSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9c3VkaXB0b2c4MSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1zdWRpcHRvZzgxIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9wYW53YXV1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYyNTk3MjIzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJwYW53YXV1Ii8+PGJyIC8+PHN1Yj48Yj5wYW53YXV1PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cGFud2F1dSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wYW53YXV1IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtcGFud2F1dSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cGFud2F1dSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FwYW53YXV1IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vc3RlZmFuZW1heWVyLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTAzMTk1MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU3RlZmFuIEUuIE1heWVyIi8+PGJyIC8+PHN1Yj48Yj5TdGVmYW4gRS4gTWF5ZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FzdGVmYW5lcndpbm1heWVyIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSGFzaFRhbG1peiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NTAxODI4MD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iVGFsbWl6IEFobWVkIi8+PGJyIC8+PHN1Yj48Yj5UYWxtaXogQWhtZWQ8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1IYXNoVGFsbWl6IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhc2hUYWxtaXoiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1IYXNoVGFsbWl6IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1RoYW5rc0ZvckFsbFRoZUZpc2giPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjE2OTY1NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWFyY28iLz48YnIgLz48c3ViPjxiPk1hcmNvPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBVGhhbmtzRm9yQWxsVGhlRmlzaCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3F1YWRycmVtIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg0NTA4NzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InF1YWRycmVtIi8+PGJyIC8+PHN1Yj48Yj5xdWFkcnJlbTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXF1YWRycmVtIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXF1YWRycmVtIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8va2Fta28uZGV2Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3MDc0Mzc1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLYW1pbCBKYW5lxI1layIvPjxiciAvPjxzdWI+PGI+S2FtaWwgSmFuZcSNZWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rYW1rbyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FrYW1rbyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2Fta28iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL21haGFrcG9yd2FsMDIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTY0ODY2ODI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Im1haGFrcG9yd2FsMDIiLz48YnIgLz48c3ViPjxiPm1haGFrcG9yd2FsMDI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNleGFtcGxlLW1haGFrcG9yd2FsMDIiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1haGFrcG9yd2FsMDIiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFoYWtwb3J3YWwwMiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1tYWhha3BvcndhbDAyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yb24tZGViYWp5b3RpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIyNTcxNjY0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZWJhanlvdGkgSGFsZGVyIi8+PGJyIC8+PHN1Yj48Yj5EZWJhanlvdGkgSGFsZGVyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm9uLWRlYmFqeW90aSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yb24tZGViYWp5b3RpIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJvbi1kZWJhanlvdGkiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1yb24tZGViYWp5b3RpIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1yb24tZGViYWp5b3RpIiB0aXRsZT0iTWFpbnRlbmFuY2UiPvCfmqc8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3JpdGlrMzA3LmdpdGh1Yi5pby9wb3J0Zm9saW8vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIyMzc0ODI5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJSaXRpayBSYXdhbCIvPjxiciAvPjxzdWI+PGI+Uml0aWsgUmF3YWw8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1yaXRpazMwNyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLXJpdGlrMzA3IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vSXNoYW4tU2FpbmkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQ1MjU2MDI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IklzaGFuIi8+PGJyIC8+PHN1Yj48Yj5Jc2hhbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUlzaGFuLVNhaW5pIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUlzaGFuLVNhaW5pIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3NhbXJpZGhpLTk4LmdpdGh1Yi5pby9Qb3J0Zm9saW8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTQ0NjYwNDE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlNhbXJpZGRoaSIvPjxiciAvPjxzdWI+PGI+U2FtcmlkZGhpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U2FtcmlkaGktOTgiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1TYW1yaWRoaS05OCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtU2FtcmlkaGktOTgiIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9nYWJvcm1hZ3lhciI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82MzM5NzMwMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iR8OhYm9yIE1hZ3lhciIvPjxiciAvPjxzdWI+PGI+R8OhYm9yIE1hZ3lhcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWdhYm9ybWFneWFyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtZ2Fib3JtYWd5YXIiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pYmVybmFiZXVkZXYiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzQyMTUwNzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImliZXJuYWJldWRldiIvPjxiciAvPjxzdWI+PGI+aWJlcm5hYmV1ZGV2PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aWJlcm5hYmV1ZGV2IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWliZXJuYWJldWRldiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWliZXJuYWJldWRldiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aWJlcm5hYmV1ZGV2IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zbG93aWtvd3NraWFya2FkaXVzeiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85NzUwODkzMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXJrYWRpdXN6IFPFgm93aWtvd3NraSIvPjxiciAvPjxzdWI+PGI+QXJrYWRpdXN6IFPFgm93aWtvd3NraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtc2xvd2lrb3dza2lhcmthZGl1c3oiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNsb3dpa293c2tpYXJrYWRpdXN6IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Qb2x5Z2VucyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTgyMzE4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJXaWxsZW0gR2lsbGlzIi8+PGJyIC8+PHN1Yj48Yj5XaWxsZW0gR2lsbGlzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UG9seWdlbnMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UG9seWdlbnMiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBUG9seWdlbnMiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ybWFzYXJvdmljIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1MjI4MzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InJtYXNhcm92aWMiLz48YnIgLz48c3ViPjxiPnJtYXNhcm92aWM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1ybWFzYXJvdmljIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXJtYXNhcm92aWMiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cm1hc2Fyb3ZpYyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLXJtYXNhcm92aWMiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vd2FpczM0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjM4NzU5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJPd2FpcyBIYXNuYXRoIEFobWVkIi8+PGJyIC8+PHN1Yj48Yj5Pd2FpcyBIYXNuYXRoIEFobWVkPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9b3dhaXMzNCIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1vd2FpczM0IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW93YWlzMzQiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QYW5NYW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTc4NTAxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQYW5NYW4iLz48YnIgLz48c3ViPjxiPlBhbk1hbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVBhbk1hbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXJ0dXItY2lvY2FudSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83NDMxOTI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImFydHVyLWNpb2NhbnUiLz48YnIgLz48c3ViPjxiPmFydHVyLWNpb2NhbnU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnR1ci1jaW9jYW51IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQWFydHVyLWNpb2NhbnUiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtYXJ0dXItY2lvY2FudSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9YXJ0dXItY2lvY2FudSIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnR1ci1jaW9jYW51IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbWljcm8tanVtYm8uZXUvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTExNjk3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJDeXByaWFuIEdyYWN6Ii8+PGJyIC8+PHN1Yj48Yj5DeXByaWFuIEdyYWN6PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWljcm8tanVtYm8iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWljcm8tanVtYm8iIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBbWljcm8tanVtYm8iIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnByaW50bmFubnkuYWkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjYwMTgxOT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTGVpZ2ggSm9obnNvbiIvPjxiciAvPjxzdWI+PGI+TGVpZ2ggSm9obnNvbjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWxlaWdoLWpvaG5zb24iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bGVpZ2gtam9obnNvbiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWxlaWdoLWpvaG5zb24iIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWxlaWdoLWpvaG5zb24iIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtbGVpZ2gtam9obnNvbiIgdGl0bGU9Ik1haW50ZW5hbmNlIj7wn5qnPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBbGVpZ2gtam9obnNvbiIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbml0aW50ZWp1amEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTUzNDc5MjQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik5pdGluIFRlanVqYSIvPjxiciAvPjxzdWI+PGI+Tml0aW4gVGVqdWphPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bml0aW50ZWp1amEiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjZXhhbXBsZS1uaXRpbnRlanVqYSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2tlbm5ldGhhYXNhbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDM3Mzk0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJLZW5uZXRoIEFhc2FuIi8+PGJyIC8+PHN1Yj48Yj5LZW5uZXRoIEFhc2FuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9a2VubmV0aGFhc2FuIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWtlbm5ldGhhYXNhbiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNtYWludGVuYW5jZS1rZW5uZXRoYWFzYW4iIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWtlbm5ldGhhYXNhbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW1pdC1rc2giPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTE5NDcwMzc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFtaXQgS3VtYXIgU2hhcm1hIi8+PGJyIC8+PHN1Yj48Yj5BbWl0IEt1bWFyIFNoYXJtYTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFtaXQta3NoIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWFtaXQta3NoIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtYW1pdC1rc2giIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vemF5dHNldmFuZCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjA3NzQ4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbmRyZXkgWmF5dHNldiIvPjxiciAvPjxzdWI+PGI+QW5kcmV5IFpheXRzZXY8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj16YXl0c2V2YW5kIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtemF5dHNldmFuZCIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9emF5dHNldmFuZCIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj16YXl0c2V2YW5kIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jb2Rpbmd0ZW5zaGkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE2Mzc3NjMwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUZW5zaGkgQ29kZXMiLz48YnIgLz48c3ViPjxiPlRlbnNoaSBDb2RlczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iI2luZnJhLWNvZGluZ3RlbnNoaSIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly95dXNoaW9tb3RlLm9yZy8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzczMzkxNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iWXVzaGkgT01PVEUiLz48YnIgLz48c3ViPjxiPll1c2hpIE9NT1RFPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBWXVzaGlPTU9URSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9WXVzaGlPTU9URSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL21hbGNoZXJjenlrLnBsIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3NTM0NTA0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJaYmlnbmlldyBNYWxjaGVyY3p5ayIvPjxiciAvPjxzdWI+PGI+WmJpZ25pZXcgTWFsY2hlcmN6eWs8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9pc3N1ZXM/cT1hdXRob3IlM0FGZXJyb3IiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iI2luZnJhLUZlcnJvciIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUZlcnJvciIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNleGFtcGxlLUZlcnJvciIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9RmVycm9yIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQUZlcnJvciIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vMjAwUHVscyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTE4MzYwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSIyMDBQdWxzIi8+PGJyIC8+PHN1Yj48Yj4yMDBQdWxzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9MjAwUHVscyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj0yMDBQdWxzIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vbGlua3RyLmVlL2FuYXlzYXJrYXI3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUzMzQxMTgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbmF5IFNhcmthciIvPjxiciAvPjxzdWI+PGI+QW5heSBTYXJrYXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNleGFtcGxlLWFuYXlzYXJrYXI3IiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hbmF5c2Fya2FyNyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hbmF5c2Fya2FyNyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTG91aXNYaGFmZXJpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyMzk3Njc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJMb3VpcyBYaGFmZXJpIi8+PGJyIC8+PHN1Yj48Yj5Mb3VpcyBYaGFmZXJpPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9TG91aXNYaGFmZXJpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2FtYmhhdmd1cHRhMDcwNSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MTg3MDg2Nj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2FtYmhhdiBHdXB0YSIvPjxiciAvPjxzdWI+PGI+U2FtYmhhdiBHdXB0YTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNhbWJoYXZndXB0YTA3MDUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IlJldmlld2VkIFB1bGwgUmVxdWVzdHMiPvCfkYA8L2E+IDxhIGhyZWY9IiNkZXNpZ24tc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPXNhbWJoYXZndXB0YTA3MDUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc2FtYmhhdmd1cHRhMDcwNSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3ByYXl1dHN1Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU0NjM2NTI1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBYmhheSBHYXJnIi8+PGJyIC8+PHN1Yj48Yj5BYmhheSBHYXJnPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZXhhbXBsZS1wcmF5dXRzdSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9cHJheXV0c3UiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2hlbnJpa2pvbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNzIxMjIzMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iaGVucmlram9uIi8+PGJyIC8+PHN1Yj48Yj5oZW5yaWtqb248L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1oZW5yaWtqb24iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9aGVucmlram9uIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWhlbnJpa2pvbiIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9IiNleGFtcGxlLWhlbnJpa2pvbiIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly95YXNpcmRldmVsb3Blci5uZXRsaWZ5LmFwcC8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzQ2MDA3NDU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Ik1vaGFtbWFkIFlhc2lyIi8+PGJyIC8+PHN1Yj48Yj5Nb2hhbW1hZCBZYXNpcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVlhc2lyNzYxIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9TYXZpbzYyOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85MTM2MjU4OT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iU2F2aW8gRGlhcyIvPjxiciAvPjxzdWI+PGI+U2F2aW8gRGlhczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNhdmlvNjI5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2luZnJhLVNhdmlvNjI5IiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBU2F2aW82MjkiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9pc2hhYW44MTIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzAxOTA1MzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IklzaGFhbiBTaGFoIi8+PGJyIC8+PHN1Yj48Yj5Jc2hhYW4gU2hhaDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWlzaGFhbjgxMiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vU2hyZXlhczA0MTAiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA3OTU4Njc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlNocmV5YXMwNDEwIi8+PGJyIC8+PHN1Yj48Yj5TaHJleWFzMDQxMDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNocmV5YXMwNDEwIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYmVrdS1lcGl0b21lIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTE1MTUxMz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYmVrdS1lcGl0b21lIi8+PGJyIC8+PHN1Yj48Yj5iZWt1LWVwaXRvbWU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1iZWt1LWVwaXRvbWUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvcHVsbHM/cT1pcyUzQXByK3Jldmlld2VkLWJ5JTNBYmVrdS1lcGl0b21lIiB0aXRsZT0iUmV2aWV3ZWQgUHVsbCBSZXF1ZXN0cyI+8J+RgDwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWJla3UtZXBpdG9tZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc3dvcmRtYXN0ZXIyayI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMzU0MDE2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKb3NodWEgTWljaGFlbCBEYWx5Ii8+PGJyIC8+PHN1Yj48Yj5Kb3NodWEgTWljaGFlbCBEYWx5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvaXNzdWVzP3E9YXV0aG9yJTNBc3dvcmRtYXN0ZXIyayIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Rsa2oiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjQzMDU5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYW5pZWwgS0oiLz48YnIgLz48c3ViPjxiPkRhbmllbCBLSjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWRsa2oiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGxraiIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLWRsa2oiIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL3B1bGxzP3E9aXMlM0FwcityZXZpZXdlZC1ieSUzQWRsa2oiIHRpdGxlPSJSZXZpZXdlZCBQdWxsIFJlcXVlc3RzIj7wn5GAPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9jb2RleXQuY29tLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MzAzMzUxMT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQmhhdmlrIEFnYXJ3YWwiLz48YnIgLz48c3ViPjxiPkJoYXZpayBBZ2Fyd2FsPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjZGVzaWduLUJoYXZpay1hZyIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rYXVzaGlrLXJpc2hpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyNDk4NjE3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJSaXNoaSIvPjxiciAvPjxzdWI+PGI+UmlzaGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1rYXVzaGlrLXJpc2hpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2Rlc2lnbi1rYXVzaGlrLXJpc2hpIiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9yb2hpdGhib3BwZXkubmV0bGlmeS5hcHAiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzM1Mzg5NzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlJvaGl0aCBCb3BwZXkiLz48YnIgLz48c3ViPjxiPlJvaGl0aCBCb3BwZXk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1Sb2hpdGhCb3BwZXkiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLVJvaGl0aEJvcHBleSIgdGl0bGU9IkRlc2lnbiI+8J+OqDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9hc2hpc2hwYWRoeS5saXZlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwMDQ4NDQwMT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iQXNoaXNoIFBhZGh5Ii8+PGJyIC8+PHN1Yj48Yj5Bc2hpc2ggUGFkaHk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1TaHVydHUtZ2FsIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVNodXJ0dS1nYWwiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPiA8YSBocmVmPSIjaW5mcmEtU2h1cnR1LWdhbCIgdGl0bGU9IkluZnJhc3RydWN0dXJlIChIb3N0aW5nLCBCdWlsZC1Ub29scywgZXRjKSI+8J+ahzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8vamZjb3RlLmdpdGh1Yi5pbyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDMzNjkwMD92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iSmVhbi1GcmFuw6dvaXMgQ8O0dMOpIi8+PGJyIC8+PHN1Yj48Yj5KZWFuLUZyYW7Dp29pcyBDw7R0w6k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1KRkNvdGUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9SkZDb3RlIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtSkZDb3RlIiB0aXRsZT0iRXhhbXBsZXMiPvCfkqE8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1KRkNvdGUiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1N1bWFudHhEIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY1ODEwNDI0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJTdW1hbnQueEQiLz48YnIgLz48c3ViPjxiPlN1bWFudC54RDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPVN1bWFudHhEIiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2luZnJhLVN1bWFudHhEIiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9U3VtYW50eEQiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FyeWFuYXMxNTkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE0MzMwOTMxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBcnlhbiBTaW5naCIvPjxiciAvPjxzdWI+PGI+QXJ5YW4gU2luZ2g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hcnlhbmFzMTU5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9tYXJrdXMucG9lcnNjaGtlLm5ydyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMjIyMzc3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJNYXJrdXMgUG9lcnNjaGtlIi8+PGJyIC8+PHN1Yj48Yj5NYXJrdXMgUG9lcnNjaGtlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW1hcmt1c3BvZXJzY2hrZSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNleGFtcGxlLW1hcmt1c3BvZXJzY2hrZSIgdGl0bGU9IkV4YW1wbGVzIj7wn5KhPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9bWFya3VzcG9lcnNjaGtlIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qYW1lc21vZXkiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDU3NDcyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJKYW1lcyBNb2V5Ii8+PGJyIC8+PHN1Yj48Yj5KYW1lcyBNb2V5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9amFtZXNtb2V5IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWphbWVzbW9leSIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdG9td29sYW5za2kiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjgwODU2NTM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9InRvbXdvbGFuc2tpIi8+PGJyIC8+PHN1Yj48Yj50b213b2xhbnNraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2lzc3Vlcz9xPWF1dGhvciUzQXRvbXdvbGFuc2tpIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vS3Npc2EiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTM0MDQ3NzE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IktyaXN0dXBhcyIvPjxiciAvPjxzdWI+PGI+S3Jpc3R1cGFzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9S3Npc2EiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9EZXZhbnNoLUJoYXR0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzk0NzMyMDc5P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZXZhbnNoLUJoYXR0Ii8+PGJyIC8+PHN1Yj48Yj5EZXZhbnNoLUJoYXR0PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9RGV2YW5zaC1CaGF0dCIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+IDxhIGhyZWY9IiNpbmZyYS1EZXZhbnNoLUJoYXR0IiB0aXRsZT0iSW5mcmFzdHJ1Y3R1cmUgKEhvc3RpbmcsIEJ1aWxkLVRvb2xzLCBldGMpIj7wn5qHPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3BpcGxpeWEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTYxODYxNDI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFuc2ggUGFuY2hvbGkiLz48YnIgLz48c3ViPjxiPkFuc2ggUGFuY2hvbGk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1waXBsaXlhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ReXBvbDM0MiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzQ5NzAwNz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWFlZ2h0IExvYW4iLz48YnIgLz48c3ViPjxiPk1hZWdodCBMb2FuPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UXlwb2wzNDIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UXlwb2wzNDIiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3ByaW5jZXJhanBvb3QuY29tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0NTg1NDUyP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQcmluY2UgUmFqcG9vdCIvPjxiciAvPjxzdWI+PGI+UHJpbmNlIFJhanBvb3Q8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1wcmluY2VyYWpwb290MjAiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoaXQtc2VucGFpIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkzMDc1MDY4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJoYXJzaGl0IG1pc2hyYSAiLz48YnIgLz48c3ViPjxiPmhhcnNoaXQgbWlzaHJhIDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWhhcnNoaXQtc2VucGFpIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9QZXRlQXVkaW5hdGUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTkyNzQ4NzQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlBldGVBdWRpbmF0ZSIvPjxiciAvPjxzdWI+PGI+UGV0ZUF1ZGluYXRlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9UGV0ZUF1ZGluYXRlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9qYW5vLXBldHJhcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTQ3ODQ4P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJqYW5vLXBldHJhcyIvPjxiciAvPjxzdWI+PGI+amFuby1wZXRyYXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1qYW5vLXBldHJhcyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25pbGthbnRoOTg3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNDEzNTgxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJOaWxrYW50aCBQYXJtYXIiLz48YnIgLz48c3ViPjxiPk5pbGthbnRoIFBhcm1hcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iVGVzdHMiPuKaoO+4jzwvYT4gPGEgaHJlZj0iI2V4YW1wbGUtbmlsa2FudGg5ODciIHRpdGxlPSJFeGFtcGxlcyI+8J+SoTwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW5pbGthbnRoOTg3IiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vamFpc2FyaXRhLnZlcmNlbC5hcHAvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNjM5MzQxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBc2htaXQgSmFpU2FyaXRhIEd1cHRhIi8+PGJyIC8+PHN1Yj48Yj5Bc2htaXQgSmFpU2FyaXRhIEd1cHRhPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2aWxraWxsZXItYWciIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSIjZGVzaWduLWRldmlsa2lsbGVyLWFnIiB0aXRsZT0iRGVzaWduIj7wn46oPC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9ZGV2aWxraWxsZXItYWciIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPiA8YSBocmVmPSIjbWFpbnRlbmFuY2UtZGV2aWxraWxsZXItYWciIHRpdGxlPSJNYWludGVuYW5jZSI+8J+apzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly9oYXJzaGlsLnByb3NlLnNoIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc5MzY3ODgzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJIYXJzaGlsIEphbmkiLz48YnIgLz48c3ViPjxiPkhhcnNoaWwgSmFuaTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPUhhcnNoaWwtSmFuaSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1IYXJzaGlsLUphbmkiIHRpdGxlPSJUZXN0cyI+4pqg77iPPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9taW50dS1wb3J0Zm9saW8ubmV0bGlmeS5hcHAvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNzkyNTQ2NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iTWludHUgR29nb2kiLz48YnIgLz48c3ViPjxiPk1pbnR1IEdvZ29pPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYXN5bmNhcGkvbW9kZWxpbmEvY29tbWl0cz9hdXRob3I9TWluMndobyIgdGl0bGU9IlRlc3RzIj7imqDvuI88L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGV2YW5zaC1tMTIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODYxOTUxNjI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRldmFuc2ggTWFoYW50Ii8+PGJyIC8+PHN1Yj48Yj5EZXZhbnNoIE1haGFudDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPWRldmFuc2gtbTEyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9vZmZpY2lhbGFzaXNoa3VtYXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODc4NzQ3NzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFzaXNoIEt1bWFyIi8+PGJyIC8+PHN1Yj48Yj5Bc2lzaCBLdW1hcjwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FzeW5jYXBpL21vZGVsaW5hL2NvbW1pdHM/YXV0aG9yPW9mZmljaWFsYXNpc2hrdW1hciIgdGl0bGU9IkRvY3VtZW50YXRpb24iPvCfk5Y8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW5rdXIwOTA0Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzk4MzQ2ODk2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBbmt1ciBTaW5naCIvPjxiciAvPjxzdWI+PGI+QW5rdXIgU2luZ2g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hc3luY2FwaS9tb2RlbGluYS9jb21taXRzP2F1dGhvcj1hbmt1cjA5MDQiIHRpdGxlPSJEb2N1bWVudGF0aW9uIj7wn5OWPC9hPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+CgpUaGlzIHByb2plY3QgZm9sbG93cyB0aGUgW2FsbC1jb250cmlidXRvcnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGwtY29udHJpYnV0b3JzL2FsbC1jb250cmlidXRvcnMpIHNwZWNpZmljYXRpb24uIENvbnRyaWJ1dGlvbnMgb2YgYW55IGtpbmQgYXJlIHdlbGNvbWUhCg==
+ readmeEtag: '"4fe2cb248028e9f6a1026d4d873beb23b980076df3d77ae62cfde00c93ef4a40"'
+ readmeLastModified: Sat, 30 Dec 2023 00:46:36 GMT
repositoryId: 331620831
description: >-
A library for generating data models based on inputs such as AsyncAPI,
@@ -8531,7 +8531,7 @@
owner: asyncapi
logo: https://avatars.githubusercontent.com/u/16401334?v=4
license: Apache-2.0
- repoEtag: '"f0d86b587102de4c46a4f05817d00665766d87f6bc235bd26650f4282f7410da"'
+ repoEtag: '"d2a5b3e6a0df09cab57f285934358e23f2c5455624535d64052442e227788f24"'
repoLastModified: Thu, 28 Dec 2023 19:13:56 GMT
foundInMaster: true
- source: openapi3 tags
@@ -8572,17 +8572,17 @@
repositoryId: 67692955
description: Resolving Swagger/OpenAPI 2.0 and 3.0 Parser
created: '2016-09-08T10:23:39Z'
- updated: '2023-12-22T02:13:36Z'
+ updated: '2023-12-29T08:57:55Z'
language: Python
archived: false
- stars: 214
+ stars: 213
watchers: 9
forks: 40
owner: RonnyPfannschmidt
logo: https://avatars.githubusercontent.com/u/156838?v=4
license: NOASSERTION
- repoEtag: '"64504351a92145490a67df704311a1915cd44b3fd2780acfac864cef01a13ebe"'
- repoLastModified: Fri, 22 Dec 2023 02:13:36 GMT
+ repoEtag: '"1f3d1035befc58a2fdb5b34fbefa76b6aedc332c494294b8d17454b60f4ca2f1"'
+ repoLastModified: Fri, 29 Dec 2023 08:57:55 GMT
foundInMaster: true
id: 06b2469a97224b07993ee5f7d921ea36
- source: openapi3 tags
@@ -8828,7 +8828,7 @@
owner: stackql
logo: https://avatars.githubusercontent.com/u/95105302?v=4
license: MIT
- repoEtag: '"3631fd00b2006289666bd9ec3157acd01ac419e68ede5278c02e5d142507e894"'
+ repoEtag: '"83ef2b4fc32bc383c047abb43e1266b80f9662a6e6246a5415aa27fcc2152294"'
repoLastModified: Mon, 18 Dec 2023 10:02:51 GMT
category: Server Implementations
foundInMaster: true
@@ -8873,17 +8873,17 @@
Esmerald framework - Highly scalable, performant, easy to learn, easy to
code and for every sizeable and complex application
created: '2022-10-18T11:50:26Z'
- updated: '2023-12-27T05:06:52Z'
+ updated: '2023-12-30T02:36:10Z'
language: Python
archived: false
- stars: 186
+ stars: 187
watchers: 6
forks: 11
owner: dymmond
logo: https://avatars.githubusercontent.com/u/65982469?v=4
license: MIT
- repoEtag: '"fb53cb66137e74d6c28f37f8a4fe2a789fcea16173924bf41dfb5a327177e628"'
- repoLastModified: Wed, 27 Dec 2023 05:06:52 GMT
+ repoEtag: '"6feaaac15d4343676ae406360fe8f3b5961c57ea5cb496c097e70c017e352061"'
+ repoLastModified: Sat, 30 Dec 2023 02:36:10 GMT
category: Server Implementations
foundInMaster: true
- source: openapi3 tags
@@ -8964,20 +8964,20 @@
oldLocations:
- https://github.com/go-dummy/dummy
- source: openapi3 tags
- repository: https://github.com/aress31/swurg
+ repository: https://github.com/aress31/openapi-parser
v3: true
repositoryMetadata:
base64Readme: >-
- IyBzd3VyZwoKWyFbSmF2YSBDSSB3aXRoIEdyYWRsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvc3d1cmcvYWN0aW9ucy93b3JrZmxvd3MvZ3JhZGxlLWJ1aWxkLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9zd3VyZy9hY3Rpb25zL3dvcmtmbG93cy9ncmFkbGUtYnVpbGQueW1sKQo8YSBocmVmPSJodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MiPjxpbWcgYWx0PSJiYXBwIHN0b3JlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQkFwcC1QdWJsaXNoZWQtb3JhbmdlLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5qYXZhLmNvbSI+PGltZyBhbHQ9ImxhbmciIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MYW5nLUphdmEtYmx1ZS5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wIj48aW1nIGFsdD0ibGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlJTIwMi4wLXJlZC5zdmciPjwvYT4KPGltZyBhbHQ9InZlcnNpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9WZXJzaW9uLTIuMy1ncmVlbi5zdmciPgoKPiBbIVVQREFURV0KPiBUaGlzIGV4dGVuc2lvbiBoYXMgYmVlbiB1cGRhdGVkIHRvIHVzZSB0aGUgbGF0ZXN0IFtCdXJwIE1vbnRveWEgSmF2YSBBUEldKGh0dHBzOi8vcG9ydHN3aWdnZXIuZ2l0aHViLmlvL2J1cnAtZXh0ZW5zaW9ucy1tb250b3lhLWFwaS9qYXZhZG9jL2J1cnAvYXBpL21vbnRveWEvcGFja2FnZS1zdW1tYXJ5Lmh0bWwpLiBUaGUgZXh0ZW5zaW9uIGhhcyB1bmRlcmdvbmUgYSBjb21wbGV0ZSBvdmVyaGF1bCB0byBpbXByb3ZlIGJvdGggaXRzIGBVSWAvYFVYYCBhbmQgcGVyZm9ybWFuY2UuIFRoZXNlIGNoYW5nZXMgZW5zdXJlIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBtb2Rlcm4gYW5kIG9wdGltaXNlZCBmb3IgdXNlLgoKIyMgU3d1cmcgaXMgYSBgQnVycCBTdWl0ZWAgZXh0ZW5zaW9uIGRlc2lnbmVkIGZvciBgT3BlbkFQSWAtYmFzZWQgYEFQSWAgdGVzdGluZwoKPiBUaGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gKGBPQVNgKSBkZWZpbmVzIGEgc3RhbmRhcmQsIHByb2dyYW1taW5nIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSBkZXNjcmlwdGlvbiBmb3IgYFJFU1RgIGBBUElzYCwgd2hpY2ggYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiBhIHNlcnZpY2Ugd2l0aG91dCByZXF1aXJpbmcgYWNjZXNzIHRvIHNvdXJjZSBjb2RlLCBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24sIG9yIGluc3BlY3Rpb24gb2YgbmV0d29yayB0cmFmZmljLiBXaGVuIHByb3Blcmx5IGRlZmluZWQgdmlhIGBPcGVuQVBJYCwgYSBjb25zdW1lciBjYW4gdW5kZXJzdGFuZCBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgcmVtb3RlIHNlcnZpY2Ugd2l0aCBhIG1pbmltYWwgYW1vdW50IG9mIGltcGxlbWVudGF0aW9uIGxvZ2ljLiBTaW1pbGFyIHRvIHdoYXQgaW50ZXJmYWNlIGRlc2NyaXB0aW9ucyBoYXZlIGRvbmUgZm9yIGxvd2VyLWxldmVsIHByb2dyYW1taW5nLCB0aGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gcmVtb3ZlcyBndWVzc3dvcmsgaW4gY2FsbGluZyBhIHNlcnZpY2UuCj4KPiBVc2UgY2FzZXMgZm9yIG1hY2hpbmUtcmVhZGFibGUgYEFQSWAgZGVmaW5pdGlvbiBkb2N1bWVudHMgaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bzogaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbjsgY29kZSBnZW5lcmF0aW9uIGZvciBkb2N1bWVudGF0aW9uLCBjbGllbnRzLCBhbmQgc2VydmVyczsgYW5kIGF1dG9tYXRpb24gb2YgdGVzdCBjYXNlcy4gYE9wZW5BUElgIGRvY3VtZW50cyBkZXNjcmliZSBhbiBgQVBJYCdzIHNlcnZpY2VzIGFuZCBhcmUgcmVwcmVzZW50ZWQgaW4gZWl0aGVyIGBZQU1MYCBvciBgSlNPTmAgZm9ybWF0cy4gVGhlc2UgZG9jdW1lbnRzIG1heSBlaXRoZXIgYmUgcHJvZHVjZWQgYW5kIHNlcnZlZCBzdGF0aWNhbGx5IG9yIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseSBmcm9tIGFuIGFwcGxpY2F0aW9uLgo+Cj4gXC0gW2BPcGVuQVBJYCBJbml0aWF0aXZlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL2BPcGVuQVBJYC1TcGVjaWZpY2F0aW9uKQoKUGVyZm9ybWluZyBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AgY2FuIGJlIGEgdGVkaW91cyB0YXNrIGR1ZSB0byBgQnVycCBTdWl0ZWAgKGluZHVzdHJ5IHN0YW5kYXJkKSBsYWNraW5nIG5hdGl2ZSBgT3BlbkFQSWAgcGFyc2luZyBjYXBhYmlsaXRpZXMuIEEgc29sdXRpb24gdG8gdGhpcyBzaXR1YXRpb24sIGlzIHRvIHVzZSB0aGlyZC1wYXJ0eSB0b29scyAoZS5nLiBgU09BUC1VSWApIG9yIHRvIGltcGxlbWVudCBjdXN0b20gc2NyaXB0cyAob2Z0ZW4gb24gYSBwZXIgZW5nYWdlbWVudCBiYXNpcykgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIGBPcGVuQVBJYCBkb2N1bWVudHMgYW5kIGludGVncmF0ZS9jaGFpbiB0aGUgcmVzdWx0cyB0byBgQnVycCBTdWl0ZWAgdG8gdXNlIGl0cyBmaXJzdCBjbGFzcyBzY2FubmluZyBjYXBhYmlsaXRpZXMuCgpTd3VyZyBpcyBhbiBgT3BlbkFQSWAgcGFyc2VyIHRoYXQgYWltcyB0byBzdHJlYW1saW5lIHRoaXMgZW50aXJlIHByb2Nlc3MgYnkgYWxsb3dpbmcgc2VjdXJpdHkgcHJvZmVzc2lvbmFscyB0byB1c2UgYEJ1cnAgU3VpdGVgIGFzIGEgc3RhbmRhbG9uZSB0b29sIGZvciBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AuCgojIyBGZWF0dXJlcwoKLSBgT3BlbkFQSWAgZG9jdW1lbnRzIGNhbiBiZSBwYXJzZWQgZWl0aGVyIGZyb20gYSBzdXBwbGllZCBmaWxlIG9yIFVSTC4gVGhlIGV4dGVuc2lvbiBjYW4gZmV0Y2ggYE9wZW5BUElgIGRvY3VtZW50cyBkaXJlY3RseSBmcm9tIGEgVVJMIHVzaW5nIHRoZSBgU2VuZCB0byBTd2FnZ2VyIFBhcnNlcmAgZmVhdHVyZSB1bmRlciB0aGUgYFRhcmdldCAtPiBTaXRlIG1hcGAgY29udGV4dCBtZW51LgotIFBhcnNlIGBPcGVuQVBJYCBkb2N1bWVudHMsIGZvcm1lcmx5IGtub3duIGFzIHRoZSBgU3dhZ2dlciBzcGVjaWZpY2F0aW9uYCwgZnVsbHkgY29tcGxpYW50IHdpdGggYE9wZW5BUElgIDIuMC8zLjAgU3BlY2lmaWNhdGlvbnMgKGBPQVNgKS4KLSBSZXF1ZXN0cyBjYW4gYmUgZGlyZWN0bHkgdmlld2VkL2VkaXRlZCB3aXRoaW4gdGhlIGV4dGVuc2lvbiBwcmlvciB0byBzZW5kaW5nIHRoZW0gdG8gb3RoZXIgQnVycCB0b29scy4KLSBSZXF1ZXN0cyBjYW4gYmUgc2VudCB0byB0aGUgYENvbXBhcmVyYCwgYEludHJ1ZGVyYCwgYE9yZ2FuaXplcmAsIGBSZXBlYXRlcmAsIGBTY2FubmVyYCwgYFNpdGUgbWFwYCBhbmQgYFNjb3BlYCBCdXJwIHRvb2xzLgotIFJlcXVlc3RzIG1hdGNoaW5nIHNwZWNpZmljIGNyaXRlcmlhcyAoZGV0YWlsZWQgaW4gdGhlICdQYXJhbWV0ZXJzJyB0YWIpIGNhbiBiZSBpbnRlcmNlcHRlZCB0byBhdXRvbWF0aWNhbGx5IG1hdGNoIGFuZCByZXBsYWNlIHRoZSBwYXJzZWQgcGFyYW1ldGVycyBkZWZhdWx0IHZhbHVlcyBkZWZpbmVkIGluIHRoZSAnUGFyYW1ldGVycycgdGFiLiBUaGlzIGZlYXR1cmUgYWxsb3dzIGZvciBmaW5lLXR1bmluZyBvZiB0aGUgcmVxdWVzdHMgcHJpb3IgdG8gc2VuZGluZyB0aGVtIHRvIG90aGVyIEJ1cnAgdG9vbHMgKGUuZy4sIHNjYW5uZXIpLiBFZGl0ZWQgcmVxdWVzdHMgY2FuIGJlIHZpZXdlZCB3aXRoaW4gdGhlICdNb2RpZmllZCBSZXF1ZXN0IChgT3BlbkFQSWAgUGFyc2VyKScgdGFiIG9mIEJ1cnAncyBtZXNzYWdlIGVkaXRvci4KLSBSb3cgaGlnaGxpZ2h0aW5nIGFsbG93aW5nIHBlbnRlc3RlcnMgdG8gaGlnaGxpZ2h0ICJpbnRlcmVzdGluZyIgYEFQSWAgY2FsbHMgYW5kL29yIGNvbG91ciBjb2RlIHRoZW0gZm9yIHJlcG9ydGluZyBwdXJwb3Nlcy4KLSBJbmNsdWRlcyBhbiBleHBvcnQgdG8gYENTVmAgZmVhdHVyZSwgYWxsb3dpbmcgdXNlcnMgdG8gZWFzaWx5IGV4cG9ydCBzZWxlY3RlZCBgQVBJYCByZXF1ZXN0cyBpbiBgQ1NWYCBmb3JtYXQgZm9yIGZ1cnRoZXIgYW5hbHlzaXMgb3IgcmVwb3J0aW5nLgotIFN1cHBvcnRzIGJvdGggYEpTT05gIGFuZCBgWUFNTGAgZm9ybWF0cy4KCiMjIFJlcXVpcmVtZW50cwoKIyMjIDEuIFN5c3RlbSByZXF1aXJlbWVudHMKCi0gT3BlcmF0aW5nIFN5c3RlbTogQ29tcGF0aWJsZSB3aXRoIGBMaW51eGAsIGBtYWNPU2AsIGFuZCBgV2luZG93c2Agb3BlcmF0aW5nIHN5c3RlbXMuCi0gSmF2YSBEZXZlbG9wbWVudCBLaXQgKEpESyk6IGBWZXJzaW9uIDExYCBvciBsYXRlci4KLSBCdXJwIFN1aXRlIFByb2Zlc3Npb25hbCBvciBDb21tdW5pdHkgRWRpdGlvbjogYFZlcnNpb24gMjAyMy4xMS4xLjNgIG9yIGxhdGVyLgoKICA+IFshSU1QT1JUQU5UXQogID4gUGxlYXNlIG5vdGUgdGhhdCB1c2luZyBhbnkgdmVyc2lvbiBsb3dlciB0aGFuIGAyMDIzLjMuMmAgbWF5IHJlc3VsdCBpbiBhIFtqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXJyb3JdKGh0dHBzOi8vZm9ydW0ucG9ydHN3aWdnZXIubmV0L3RocmVhZC9tb250b3lhLWFwaS1ub3N1Y2htZXRob2RlcnJvci0yNzUwNDhiZSkuIEl0IGlzIGNydWNpYWwgdG8gdXNlIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBhIG1vcmUgcmVjZW50IG9uZSB0byBhdm9pZCB0aGlzIGlzc3VlLgoKIyMjIDIuIEJ1aWxkIHRvb2wKCi0gR3JhZGxlOiBgVmVyc2lvbiA4LjVgIG9yIGxhdGVyIChyZWNvbW1lbmRlZCkuIFRoZSBbYnVpbGQuZ3JhZGxlXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9zd3VyZy9ibG9iL21haW4vbGliL2J1aWxkLmdyYWRsZSkgZmlsZSBpcyBwcm92aWRlZCBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMjIDMuIEVudmlyb25tZW50IHZhcmlhYmxlcwoKLSBTZXQgdXAgdGhlIGBKQVZBX0hPTUVgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50IHRvIHRoZSBgSkRLYCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgoKUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBzeXN0ZW0gcmVxdWlyZW1lbnRzLCBpbmNsdWRpbmcgYSBjb21wYXRpYmxlIHZlcnNpb24gb2YgYEJ1cnAgU3VpdGVgLCBhcmUgbWV0IGJlZm9yZSBidWlsZGluZyBhbmQgcnVubmluZyB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IHRoZSBwcm9qZWN0J3MgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBtYW5hZ2VkIGFuZCBpbnN0YWxsZWQgYnkgYEdyYWRsZWAgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLiBBZGhlcmluZyB0byB0aGUgcmVxdWlyZW1lbnRzIHdpbGwgaGVscCBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIGFuZCByZWR1Y2UgdGhlIG5lZWQgZm9yIG9wZW5pbmcgbmV3IGlzc3VlcyBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgMS4gQ29tcGlsYXRpb24KCjEuIEVuc3VyZSB5b3UgaGF2ZSBbR3JhZGxlXShodHRwczovL2dyYWRsZS5vcmcvKSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuCgoyLiBEb3dubG9hZCB0aGUgYHN3dXJnYCByZXBvc2l0b3J5OgoKICAgYGBgYmFzaAogICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvc3d1cmcKICAgY2QgLlxzd3VyZ1wKICAgYGBgCgozLiBCdWlsZCB0aGUgc3RhbmRhbG9uZSBgamFyYDoKCiAgIGBgYGJhc2gKICAgLi9ncmFkbGV3IGZhdEphcgogICBgYGAKCiMjIyAyLiBMb2FkaW5nIHRoZSBFeHRlbnNpb24gSW50byBgQnVycCBTdWl0ZWAKClRvIGluc3RhbGwgYHN3dXJnYCBpbiBgQnVycCBTdWl0ZWAsIGZpcnN0IGdvIHRvIHRoZSBgRXh0ZW5zaW9uc2AgdGFiIGFuZCBjbGljayBvbiB0aGUgYEFkZGAgYnV0dG9uLiBUaGVuLCBzZWxlY3QgdGhlIGBzd3VyZy1hbGxgIGphciBmaWxlIGxvY2F0ZWQgaW4gdGhlIGAuXGJ1aWxkXGxpYnNgIGZvbGRlciB0byBsb2FkIHRoZSBleHRlbnNpb24uCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNraXAgdGhlIFtDb21waWxhdGlvbl0oIzEtY29tcGlsYXRpb24pIHN0ZXAgZW50aXJlbHkgYW5kIGRvd25sb2FkIHRoZSBleHRlbnNpb24gZGlyZWN0bHkgZnJvbSB0aGUgW0JBcHAgU3RvcmVdKGh0dHBzOi8vcG9ydHN3aWdnZXIubmV0L2JhcHBzdG9yZS82YmY3NTc0YjYzMjg0N2ZhYWFhNGViNWU0MmYxNzU3YykuCgpfTm90ZTogVGhlIHZlcnNpb24gZGlzdHJpYnV0ZWQgb24gdGhlIFtCQXBwIFN0b3JlXShodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MpIG1pZ2h0IGJlIGxhZ2dpbmcgYmVoaW5kIHRoZSB2ZXJzaW9uIGF2YWlsYWJsZSBvbiB0aGlzIHJlcG9zaXRvcnkuXwoKIyMgUm9hZG1hcAoKLSBbIF0gQmVhdXRpZnkgdGhlIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZS4KLSBbIF0gRGVlcCBwYXJzaW5nIG9mIGBPcGVuQVBJYCBzY2hlbWFzIHRvIGNvbGxlY3QgYWxsIG5lc3RlZCBwYXJhbWV0ZXJzIGFsb25nIHdpdGggdGhlaXIgZXhhbXBsZS90eXBlLgotIFsgXSBDb2RlIHNpbXBsaWZpY2F0aW9uL3JlZmFjdG9yaW5nLgogIC0gWyBdIFVzZSBgTXlIdHRwUmVxdWVzdGAgaW5zdGVhZCBvZiBgUmVxdWVzdFdpdGhNZXRhZGF0YWAuCi0gW3hdIEVuYWJsZSBjZWxscyBlZGl0aW5nIHRvIGNoYW5nZSBgQVBJYCBjYWxscyBkaXJlY3RseSBmcm9tIHRoZSBgR1VJYC4KLSBbIF0gRml4IHRoZSBjdXN0b20gcmVxdWVzdCBlZGl0b3IgdGFiIHRvIHdvcmsgcHJvcGVybHkgd2l0aCBpbnRlcmNlcHRlZCByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgbWF0Y2ggYW5kIHJlcGxhY2UgcnVsZXNldHMuCi0gW3hdIEZ1cnRoZXIgb3B0aW1pc2UgdGhlIHNvdXJjZSBjb2RlLgotIFsgXSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgYXV0aGVudGljYXRlZCB0ZXN0aW5nICh2aWEgdXNlci1zdXBwbGllZCBgQVBJYC1rZXlzKS4KLSBbeF0gSW1wcm92ZSB0aGUgYFBhcmFtYCBjb2x1bW4gYnkgYWRkaW5nIHBhcmFtZXRlcnMgdHlwZSAoZS5nLiBgaW5xdWVyeWAsIGBpbmJvZHlgKS4KLSBbIF0gSW1wcm92ZSB0aGUgdGFibGVzIGFuZCBjb250ZXh0IG1lbnVzLgotIFt4XSBJbmNyZWFzZSB0aGUgZXh0ZW5zaW9uIHZlcmJvc2l0eSAodmlhIHRoZSBib3R0b20gcGFuZWwpLgoKIyMgUHJvamVjdCBJbmZvcm1hdGlvbgoKSW4gSnVseSAyMDE2LCBhZnRlciBwb3N0aW5nIGEgcmVxdWVzdCBmb3IgaW1wcm92ZW1lbnQgb24gdGhlIFtQb3J0U3dpZ2dlciBzdXBwb3J0IGZvcnVtXShodHRwczovL3N1cHBvcnQucG9ydHN3aWdnZXIubmV0L2N1c3RvbWVyL3BvcnRhbC9xdWVzdGlvbnMvMTYzNTgyNzgtc3dhZ2dlci1wYXJzZXItYW5kLXdzZGxlci1pbXByb3ZlbWVudCksIEkgZGVjaWRlZCB0byB0YWtlIHRoZSBpbml0aWF0aXZlIGFuZCB0byBpbXBsZW1lbnQgYSBzb2x1dGlvbiBteXNlbGYuCgpUaGUgZXh0ZW5zaW9uIGlzIHN0aWxsIGluIGRldmVsb3BtZW50LCBmZWVkYmFjaywgY29tbWVudHMgYW5kIGNvbnRyaWJ1dGlvbnMgYXJlIHRoZXJlZm9yZSBtdWNoIGFwcHJlY2lhdGVkLgoKIyMgU3BvbnNvciDwn5KWCgpJZiB0aGlzIGV4dGVuc2lvbiBoYXMgc2F2ZWQgeW91IHRpbWUgYW5kIGhhc3NsZSBkdXJpbmcgYSBzZWN1cml0eSBhc3Nlc3NtZW50LCBjb25zaWRlciBzaG93aW5nIHNvbWUgbG92ZSBieSBzcG9uc29yaW5nIGEgY3VwIG9mIGNvZmZlZSDimJUgZm9yIHRoZSBkZXZlbG9wZXIuIEl0J3MgdGhlIGZ1ZWwgdGhhdCBwb3dlcnMgZGV2ZWxvcG1lbnQsIGFmdGVyIGFsbC4gSnVzdCBoaXQgdGhhdCBzaGlueSBgU3BvbnNvcmAgYnV0dG9uIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2Ugb3IgW2NsaWNrIGhlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hcmVzczMxKSB0byBjb250cmlidXRlIGFuZCBrZWVwIHRoZSBjYWZmZWluZSBmbG93aW5nLiDwn5K4CgojIyBSZXBvcnRpbmcgSXNzdWVzCgpEaWQgeW91IGZpbmQgYSBidWc/IFdlbGwsIGRvbid0IGp1c3QgbGV0IGl0IGNyYXdsIGFyb3VuZCEgTGV0J3Mgc3F1YXNoIGl0IHRvZ2V0aGVyIGxpa2UgYSBjb3VwbGUgb2YgYnVnIHdoaXNwZXJlcnMhIPCfkJvwn5KqCgpQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgb24gdGhlIFtHaXRIdWIgaXNzdWVzIHRyYWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcmVzczMxL3N3dXJnL2lzc3VlcykuIFRvZ2V0aGVyLCB3ZSdsbCBtYWtlIHRoaXMgZXh0ZW5zaW9uIGFzIHJlbGlhYmxlIGFzIGEgY29ja3JvYWNoIHN1cnZpdmluZyBhIG51Y2xlYXIgYXBvY2FseXBzZSEg8J+agAoKIyMgQ29udHJpYnV0aW5nCgpMb29raW5nIHRvIG1ha2UgYSBzcGxhc2ggd2l0aCB5b3VyIG1hZCBjb2Rpbmcgc2tpbGxzPyDwn5K7CgpBd2Vzb21lISBDb250cmlidXRpb25zIGFyZSB3ZWxjb21lIGFuZCBncmVhdGx5IGFwcHJlY2lhdGVkLiBQbGVhc2Ugc3VibWl0IGFsbCBQUnMgb24gdGhlIFtHaXRIdWIgcHVsbCByZXF1ZXN0cyB0cmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9zd3VyZy9wdWxscykuIFRvZ2V0aGVyIHdlIGNhbiBtYWtlIHRoaXMgZXh0ZW5zaW9uIGV2ZW4gbW9yZSBhbWF6aW5nISDwn5qACgojIyBMaWNlbnNlCgpTZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
- readmeEtag: '"91db567c2956a92adae20b79e86c6f9c42fc2c55e126ce17016ecaf3a3c45770"'
- readmeLastModified: Tue, 19 Dec 2023 01:50:26 GMT
+ IyBvcGVuYXBpLXBhcnNlcgoKWyFbSmF2YSBDSSB3aXRoIEdyYWRsZV0oaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIvYWN0aW9ucy93b3JrZmxvd3MvZ3JhZGxlLWJ1aWxkLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9hY3Rpb25zL3dvcmtmbG93cy9ncmFkbGUtYnVpbGQueW1sKQo8YSBocmVmPSJodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MiPjxpbWcgYWx0PSJiYXBwIHN0b3JlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvQkFwcC1QdWJsaXNoZWQtb3JhbmdlLnN2ZyI+PC9hPgo8YSBocmVmPSJodHRwczovL3d3dy5qYXZhLmNvbSI+PGltZyBhbHQ9ImxhbmciIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9MYW5nLUphdmEtYmx1ZS5zdmciPjwvYT4KPGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wIj48aW1nIGFsdD0ibGljZW5zZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtQXBhY2hlJTIwMi4wLXJlZC5zdmciPjwvYT4KPGltZyBhbHQ9InZlcnNpb24iIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9WZXJzaW9uLTIuMy1ncmVlbi5zdmciPgoKPiBbIVVQREFURV0KPiBUaGlzIGV4dGVuc2lvbiBoYXMgYmVlbiB1cGRhdGVkIHRvIHVzZSB0aGUgbGF0ZXN0IFtCdXJwIE1vbnRveWEgSmF2YSBBUEldKGh0dHBzOi8vcG9ydHN3aWdnZXIuZ2l0aHViLmlvL2J1cnAtZXh0ZW5zaW9ucy1tb250b3lhLWFwaS9qYXZhZG9jL2J1cnAvYXBpL21vbnRveWEvcGFja2FnZS1zdW1tYXJ5Lmh0bWwpLiBUaGUgZXh0ZW5zaW9uIGhhcyB1bmRlcmdvbmUgYSBjb21wbGV0ZSBvdmVyaGF1bCB0byBpbXByb3ZlIGJvdGggaXRzIGBVSWAvYFVYYCBhbmQgcGVyZm9ybWFuY2UuIFRoZXNlIGNoYW5nZXMgZW5zdXJlIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBtb2Rlcm4gYW5kIG9wdGltaXNlZCBmb3IgdXNlLgoKIyMgb3BlbmFwaS1wYXJzZXIgaXMgYSBgQnVycCBTdWl0ZWAgZXh0ZW5zaW9uIGRlc2lnbmVkIGZvciBgT3BlbkFQSWAtYmFzZWQgYEFQSWAgdGVzdGluZwoKPiBUaGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gKGBPQVNgKSBkZWZpbmVzIGEgc3RhbmRhcmQsIHByb2dyYW1taW5nIGxhbmd1YWdlLWFnbm9zdGljIGludGVyZmFjZSBkZXNjcmlwdGlvbiBmb3IgYFJFU1RgIGBBUElzYCwgd2hpY2ggYWxsb3dzIGJvdGggaHVtYW5zIGFuZCBjb21wdXRlcnMgdG8gZGlzY292ZXIgYW5kIHVuZGVyc3RhbmQgdGhlIGNhcGFiaWxpdGllcyBvZiBhIHNlcnZpY2Ugd2l0aG91dCByZXF1aXJpbmcgYWNjZXNzIHRvIHNvdXJjZSBjb2RlLCBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24sIG9yIGluc3BlY3Rpb24gb2YgbmV0d29yayB0cmFmZmljLiBXaGVuIHByb3Blcmx5IGRlZmluZWQgdmlhIGBPcGVuQVBJYCwgYSBjb25zdW1lciBjYW4gdW5kZXJzdGFuZCBhbmQgaW50ZXJhY3Qgd2l0aCB0aGUgcmVtb3RlIHNlcnZpY2Ugd2l0aCBhIG1pbmltYWwgYW1vdW50IG9mIGltcGxlbWVudGF0aW9uIGxvZ2ljLiBTaW1pbGFyIHRvIHdoYXQgaW50ZXJmYWNlIGRlc2NyaXB0aW9ucyBoYXZlIGRvbmUgZm9yIGxvd2VyLWxldmVsIHByb2dyYW1taW5nLCB0aGUgYE9wZW5BUElgIFNwZWNpZmljYXRpb24gcmVtb3ZlcyBndWVzc3dvcmsgaW4gY2FsbGluZyBhIHNlcnZpY2UuCj4KPiBVc2UgY2FzZXMgZm9yIG1hY2hpbmUtcmVhZGFibGUgYEFQSWAgZGVmaW5pdGlvbiBkb2N1bWVudHMgaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bzogaW50ZXJhY3RpdmUgZG9jdW1lbnRhdGlvbjsgY29kZSBnZW5lcmF0aW9uIGZvciBkb2N1bWVudGF0aW9uLCBjbGllbnRzLCBhbmQgc2VydmVyczsgYW5kIGF1dG9tYXRpb24gb2YgdGVzdCBjYXNlcy4gYE9wZW5BUElgIGRvY3VtZW50cyBkZXNjcmliZSBhbiBgQVBJYCdzIHNlcnZpY2VzIGFuZCBhcmUgcmVwcmVzZW50ZWQgaW4gZWl0aGVyIGBZQU1MYCBvciBgSlNPTmAgZm9ybWF0cy4gVGhlc2UgZG9jdW1lbnRzIG1heSBlaXRoZXIgYmUgcHJvZHVjZWQgYW5kIHNlcnZlZCBzdGF0aWNhbGx5IG9yIGJlIGdlbmVyYXRlZCBkeW5hbWljYWxseSBmcm9tIGFuIGFwcGxpY2F0aW9uLgo+Cj4gXC0gW2BPcGVuQVBJYCBJbml0aWF0aXZlXShodHRwczovL2dpdGh1Yi5jb20vT0FJL2BPcGVuQVBJYC1TcGVjaWZpY2F0aW9uKQoKUGVyZm9ybWluZyBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AgY2FuIGJlIGEgdGVkaW91cyB0YXNrIGR1ZSB0byBgQnVycCBTdWl0ZWAgKGluZHVzdHJ5IHN0YW5kYXJkKSBsYWNraW5nIG5hdGl2ZSBgT3BlbkFQSWAgcGFyc2luZyBjYXBhYmlsaXRpZXMuIEEgc29sdXRpb24gdG8gdGhpcyBzaXR1YXRpb24sIGlzIHRvIHVzZSB0aGlyZC1wYXJ0eSB0b29scyAoZS5nLiBgU09BUC1VSWApIG9yIHRvIGltcGxlbWVudCBjdXN0b20gc2NyaXB0cyAob2Z0ZW4gb24gYSBwZXIgZW5nYWdlbWVudCBiYXNpcykgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIGBPcGVuQVBJYCBkb2N1bWVudHMgYW5kIGludGVncmF0ZS9jaGFpbiB0aGUgcmVzdWx0cyB0byBgQnVycCBTdWl0ZWAgdG8gdXNlIGl0cyBmaXJzdCBjbGFzcyBzY2FubmluZyBjYXBhYmlsaXRpZXMuCgpvcGVuYXBpLXBhcnNlciBpcyBhbiBgT3BlbkFQSWAgcGFyc2VyIHRoYXQgYWltcyB0byBzdHJlYW1saW5lIHRoaXMgZW50aXJlIHByb2Nlc3MgYnkgYWxsb3dpbmcgc2VjdXJpdHkgcHJvZmVzc2lvbmFscyB0byB1c2UgYEJ1cnAgU3VpdGVgIGFzIGEgc3RhbmRhbG9uZSB0b29sIGZvciBzZWN1cml0eSBhc3Nlc3NtZW50IG9mIGBPcGVuQVBJYC1iYXNlZCBgQVBJc2AuCgojIyBGZWF0dXJlcwoKLSBgT3BlbkFQSWAgZG9jdW1lbnRzIGNhbiBiZSBwYXJzZWQgZWl0aGVyIGZyb20gYSBzdXBwbGllZCBmaWxlIG9yIFVSTC4gVGhlIGV4dGVuc2lvbiBjYW4gZmV0Y2ggYE9wZW5BUElgIGRvY3VtZW50cyBkaXJlY3RseSBmcm9tIGEgVVJMIHVzaW5nIHRoZSBgU2VuZCB0byBTd2FnZ2VyIFBhcnNlcmAgZmVhdHVyZSB1bmRlciB0aGUgYFRhcmdldCAtPiBTaXRlIG1hcGAgY29udGV4dCBtZW51LgotIFBhcnNlIGBPcGVuQVBJYCBkb2N1bWVudHMsIGZvcm1lcmx5IGtub3duIGFzIHRoZSBgU3dhZ2dlciBzcGVjaWZpY2F0aW9uYCwgZnVsbHkgY29tcGxpYW50IHdpdGggYE9wZW5BUElgIDIuMC8zLjAgU3BlY2lmaWNhdGlvbnMgKGBPQVNgKS4KLSBSZXF1ZXN0cyBjYW4gYmUgZGlyZWN0bHkgdmlld2VkL2VkaXRlZCB3aXRoaW4gdGhlIGV4dGVuc2lvbiBwcmlvciB0byBzZW5kaW5nIHRoZW0gdG8gb3RoZXIgQnVycCB0b29scy4KLSBSZXF1ZXN0cyBjYW4gYmUgc2VudCB0byB0aGUgYENvbXBhcmVyYCwgYEludHJ1ZGVyYCwgYE9yZ2FuaXplcmAsIGBSZXBlYXRlcmAsIGBTY2FubmVyYCwgYFNpdGUgbWFwYCBhbmQgYFNjb3BlYCBCdXJwIHRvb2xzLgotIFJlcXVlc3RzIG1hdGNoaW5nIHNwZWNpZmljIGNyaXRlcmlhcyAoZGV0YWlsZWQgaW4gdGhlICdQYXJhbWV0ZXJzJyB0YWIpIGNhbiBiZSBpbnRlcmNlcHRlZCB0byBhdXRvbWF0aWNhbGx5IG1hdGNoIGFuZCByZXBsYWNlIHRoZSBwYXJzZWQgcGFyYW1ldGVycyBkZWZhdWx0IHZhbHVlcyBkZWZpbmVkIGluIHRoZSAnUGFyYW1ldGVycycgdGFiLiBUaGlzIGZlYXR1cmUgYWxsb3dzIGZvciBmaW5lLXR1bmluZyBvZiB0aGUgcmVxdWVzdHMgcHJpb3IgdG8gc2VuZGluZyB0aGVtIHRvIG90aGVyIEJ1cnAgdG9vbHMgKGUuZy4sIHNjYW5uZXIpLiBFZGl0ZWQgcmVxdWVzdHMgY2FuIGJlIHZpZXdlZCB3aXRoaW4gdGhlICdNb2RpZmllZCBSZXF1ZXN0IChgT3BlbkFQSWAgUGFyc2VyKScgdGFiIG9mIEJ1cnAncyBtZXNzYWdlIGVkaXRvci4KLSBSb3cgaGlnaGxpZ2h0aW5nIGFsbG93aW5nIHBlbnRlc3RlcnMgdG8gaGlnaGxpZ2h0ICJpbnRlcmVzdGluZyIgYEFQSWAgY2FsbHMgYW5kL29yIGNvbG91ciBjb2RlIHRoZW0gZm9yIHJlcG9ydGluZyBwdXJwb3Nlcy4KLSBJbmNsdWRlcyBhbiBleHBvcnQgdG8gYENTVmAgZmVhdHVyZSwgYWxsb3dpbmcgdXNlcnMgdG8gZWFzaWx5IGV4cG9ydCBzZWxlY3RlZCBgQVBJYCByZXF1ZXN0cyBpbiBgQ1NWYCBmb3JtYXQgZm9yIGZ1cnRoZXIgYW5hbHlzaXMgb3IgcmVwb3J0aW5nLgotIFN1cHBvcnRzIGJvdGggYEpTT05gIGFuZCBgWUFNTGAgZm9ybWF0cy4KCiMjIFJlcXVpcmVtZW50cwoKIyMjIDEuIFN5c3RlbSByZXF1aXJlbWVudHMKCi0gT3BlcmF0aW5nIFN5c3RlbTogQ29tcGF0aWJsZSB3aXRoIGBMaW51eGAsIGBtYWNPU2AsIGFuZCBgV2luZG93c2Agb3BlcmF0aW5nIHN5c3RlbXMuCi0gSmF2YSBEZXZlbG9wbWVudCBLaXQgKEpESyk6IGBWZXJzaW9uIDExYCBvciBsYXRlci4KLSBCdXJwIFN1aXRlIFByb2Zlc3Npb25hbCBvciBDb21tdW5pdHkgRWRpdGlvbjogYFZlcnNpb24gMjAyMy4xMS4xLjNgIG9yIGxhdGVyLgoKICA+IFshSU1QT1JUQU5UXQogID4gUGxlYXNlIG5vdGUgdGhhdCB1c2luZyBhbnkgdmVyc2lvbiBsb3dlciB0aGFuIGAyMDIzLjMuMmAgbWF5IHJlc3VsdCBpbiBhIFtqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXJyb3JdKGh0dHBzOi8vZm9ydW0ucG9ydHN3aWdnZXIubmV0L3RocmVhZC9tb250b3lhLWFwaS1ub3N1Y2htZXRob2RlcnJvci0yNzUwNDhiZSkuIEl0IGlzIGNydWNpYWwgdG8gdXNlIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiBvciBhIG1vcmUgcmVjZW50IG9uZSB0byBhdm9pZCB0aGlzIGlzc3VlLgoKIyMjIDIuIEJ1aWxkIHRvb2wKCi0gR3JhZGxlOiBgVmVyc2lvbiA4LjVgIG9yIGxhdGVyIChyZWNvbW1lbmRlZCkuIFRoZSBbYnVpbGQuZ3JhZGxlXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9ibG9iL21haW4vbGliL2J1aWxkLmdyYWRsZSkgZmlsZSBpcyBwcm92aWRlZCBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMjIDMuIEVudmlyb25tZW50IHZhcmlhYmxlcwoKLSBTZXQgdXAgdGhlIGBKQVZBX0hPTUVgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50IHRvIHRoZSBgSkRLYCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgoKUGxlYXNlIGVuc3VyZSB0aGF0IGFsbCBzeXN0ZW0gcmVxdWlyZW1lbnRzLCBpbmNsdWRpbmcgYSBjb21wYXRpYmxlIHZlcnNpb24gb2YgYEJ1cnAgU3VpdGVgLCBhcmUgbWV0IGJlZm9yZSBidWlsZGluZyBhbmQgcnVubmluZyB0aGUgcHJvamVjdC4gTm90ZSB0aGF0IHRoZSBwcm9qZWN0J3MgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBtYW5hZ2VkIGFuZCBpbnN0YWxsZWQgYnkgYEdyYWRsZWAgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzLiBBZGhlcmluZyB0byB0aGUgcmVxdWlyZW1lbnRzIHdpbGwgaGVscCBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIGFuZCByZWR1Y2UgdGhlIG5lZWQgZm9yIG9wZW5pbmcgbmV3IGlzc3VlcyBpbiB0aGUgcHJvamVjdCByZXBvc2l0b3J5LgoKIyMgSW5zdGFsbGF0aW9uCgojIyMgMS4gQ29tcGlsYXRpb24KCjEuIEVuc3VyZSB5b3UgaGF2ZSBbR3JhZGxlXShodHRwczovL2dyYWRsZS5vcmcvKSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuCgoyLiBEb3dubG9hZCB0aGUgYG9wZW5hcGktcGFyc2VyYCByZXBvc2l0b3J5OgoKICAgYGBgYmFzaAogICBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIKICAgY2QgLlxvcGVuYXBpLXBhcnNlclwKICAgYGBgCgozLiBCdWlsZCB0aGUgc3RhbmRhbG9uZSBgamFyYDoKCiAgIGBgYGJhc2gKICAgLi9ncmFkbGV3IGZhdEphcgogICBgYGAKCiMjIyAyLiBMb2FkaW5nIHRoZSBFeHRlbnNpb24gSW50byBgQnVycCBTdWl0ZWAKClRvIGluc3RhbGwgYG9wZW5hcGktcGFyc2VyYCBpbiBgQnVycCBTdWl0ZWAsIGZpcnN0IGdvIHRvIHRoZSBgRXh0ZW5zaW9uc2AgdGFiIGFuZCBjbGljayBvbiB0aGUgYEFkZGAgYnV0dG9uLiBUaGVuLCBzZWxlY3QgdGhlIGBvcGVuYXBpLXBhcnNlci1hbGxgIGphciBmaWxlIGxvY2F0ZWQgaW4gdGhlIGAuXGJ1aWxkXGxpYnNgIGZvbGRlciB0byBsb2FkIHRoZSBleHRlbnNpb24uCgpBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNraXAgdGhlIFtDb21waWxhdGlvbl0oIzEtY29tcGlsYXRpb24pIHN0ZXAgZW50aXJlbHkgYW5kIGRvd25sb2FkIHRoZSBleHRlbnNpb24gZGlyZWN0bHkgZnJvbSB0aGUgW0JBcHAgU3RvcmVdKGh0dHBzOi8vcG9ydHN3aWdnZXIubmV0L2JhcHBzdG9yZS82YmY3NTc0YjYzMjg0N2ZhYWFhNGViNWU0MmYxNzU3YykuCgpfTm90ZTogVGhlIHZlcnNpb24gZGlzdHJpYnV0ZWQgb24gdGhlIFtCQXBwIFN0b3JlXShodHRwczovL3BvcnRzd2lnZ2VyLm5ldC9iYXBwc3RvcmUvNmJmNzU3NGI2MzI4NDdmYWFhYTRlYjVlNDJmMTc1N2MpIG1pZ2h0IGJlIGxhZ2dpbmcgYmVoaW5kIHRoZSB2ZXJzaW9uIGF2YWlsYWJsZSBvbiB0aGlzIHJlcG9zaXRvcnkuXwoKIyMgUm9hZG1hcAoKLSBbIF0gQmVhdXRpZnkgdGhlIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZS4KLSBbIF0gRGVlcCBwYXJzaW5nIG9mIGBPcGVuQVBJYCBzY2hlbWFzIHRvIGNvbGxlY3QgYWxsIG5lc3RlZCBwYXJhbWV0ZXJzIGFsb25nIHdpdGggdGhlaXIgZXhhbXBsZS90eXBlLgotIFsgXSBDb2RlIHNpbXBsaWZpY2F0aW9uL3JlZmFjdG9yaW5nLgogIC0gW3hdIFVzZSBgTXlIdHRwUmVxdWVzdGAgaW5zdGVhZCBvZiBgUmVxdWVzdFdpdGhNZXRhZGF0YWAuCi0gW3hdIEVuYWJsZSBjZWxscyBlZGl0aW5nIHRvIGNoYW5nZSBgQVBJYCBjYWxscyBkaXJlY3RseSBmcm9tIHRoZSBgR1VJYC4KLSBbIF0gRml4IHRoZSBjdXN0b20gcmVxdWVzdCBlZGl0b3IgdGFiIHRvIHdvcmsgcHJvcGVybHkgd2l0aCBpbnRlcmNlcHRlZCByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgbWF0Y2ggYW5kIHJlcGxhY2UgcnVsZXNldHMuCi0gW3hdIEZ1cnRoZXIgb3B0aW1pc2UgdGhlIHNvdXJjZSBjb2RlLgotIFsgXSBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgYXV0aGVudGljYXRlZCB0ZXN0aW5nICh2aWEgdXNlci1zdXBwbGllZCBgQVBJYC1rZXlzKS4KLSBbeF0gSW1wcm92ZSB0aGUgYFBhcmFtYCBjb2x1bW4gYnkgYWRkaW5nIHBhcmFtZXRlcnMgdHlwZSAoZS5nLiBgaW5xdWVyeWAsIGBpbmJvZHlgKS4KLSBbeF0gSW1wcm92ZSB0aGUgdGFibGVzIGFuZCBjb250ZXh0IG1lbnVzLgotIFt4XSBJbmNyZWFzZSB0aGUgZXh0ZW5zaW9uIHZlcmJvc2l0eSAodmlhIHRoZSBib3R0b20gcGFuZWwpLgoKU2VlIFtUT0RPXShUT0RPLm1kKSBmb3IgYWRkaXRpb25hbCBvdXRzdGFuZGluZyB0YXNrcy4KCiMjIFByb2plY3QgSW5mb3JtYXRpb24KCkluIEp1bHkgMjAxNiwgYWZ0ZXIgcG9zdGluZyBhIHJlcXVlc3QgZm9yIGltcHJvdmVtZW50IG9uIHRoZSBbUG9ydFN3aWdnZXIgc3VwcG9ydCBmb3J1bV0oaHR0cHM6Ly9zdXBwb3J0LnBvcnRzd2lnZ2VyLm5ldC9jdXN0b21lci9wb3J0YWwvcXVlc3Rpb25zLzE2MzU4Mjc4LXN3YWdnZXItcGFyc2VyLWFuZC13c2RsZXItaW1wcm92ZW1lbnQpLCBJIGRlY2lkZWQgdG8gdGFrZSB0aGUgaW5pdGlhdGl2ZSBhbmQgdG8gaW1wbGVtZW50IGEgc29sdXRpb24gbXlzZWxmLgoKVGhlIGV4dGVuc2lvbiBpcyBzdGlsbCBpbiBkZXZlbG9wbWVudCwgZmVlZGJhY2ssIGNvbW1lbnRzIGFuZCBjb250cmlidXRpb25zIGFyZSB0aGVyZWZvcmUgbXVjaCBhcHByZWNpYXRlZC4KCiMjIFNwb25zb3Ig8J+SlgoKSWYgdGhpcyBleHRlbnNpb24gaGFzIHNhdmVkIHlvdSB0aW1lIGFuZCBoYXNzbGUgZHVyaW5nIGEgc2VjdXJpdHkgYXNzZXNzbWVudCwgY29uc2lkZXIgc2hvd2luZyBzb21lIGxvdmUgYnkgc3BvbnNvcmluZyBhIGN1cCBvZiBjb2ZmZWUg4piVIGZvciB0aGUgZGV2ZWxvcGVyLiBJdCdzIHRoZSBmdWVsIHRoYXQgcG93ZXJzIGRldmVsb3BtZW50LCBhZnRlciBhbGwuIEp1c3QgaGl0IHRoYXQgc2hpbnkgYFNwb25zb3JgIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIG9yIFtjbGljayBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvYXJlc3MzMSkgdG8gY29udHJpYnV0ZSBhbmQga2VlcCB0aGUgY2FmZmVpbmUgZmxvd2luZy4g8J+SuAoKIyMgUmVwb3J0aW5nIElzc3VlcwoKRGlkIHlvdSBmaW5kIGEgYnVnPyBXZWxsLCBkb24ndCBqdXN0IGxldCBpdCBjcmF3bCBhcm91bmQhIExldCdzIHNxdWFzaCBpdCB0b2dldGhlciBsaWtlIGEgY291cGxlIG9mIGJ1ZyB3aGlzcGVyZXJzISDwn5Cb8J+SqgoKUGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIHRoZSBbR2l0SHViIGlzc3VlcyB0cmFja2VyXShodHRwczovL2dpdGh1Yi5jb20vYXJlc3MzMS9vcGVuYXBpLXBhcnNlci9pc3N1ZXMpLiBUb2dldGhlciwgd2UnbGwgbWFrZSB0aGlzIGV4dGVuc2lvbiBhcyByZWxpYWJsZSBhcyBhIGNvY2tyb2FjaCBzdXJ2aXZpbmcgYSBudWNsZWFyIGFwb2NhbHlwc2UhIPCfmoAKCiMjIENvbnRyaWJ1dGluZwoKTG9va2luZyB0byBtYWtlIGEgc3BsYXNoIHdpdGggeW91ciBtYWQgY29kaW5nIHNraWxscz8g8J+SuwoKQXdlc29tZSEgQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZSBhbmQgZ3JlYXRseSBhcHByZWNpYXRlZC4gUGxlYXNlIHN1Ym1pdCBhbGwgUFJzIG9uIHRoZSBbR2l0SHViIHB1bGwgcmVxdWVzdHMgdHJhY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2FyZXNzMzEvb3BlbmFwaS1wYXJzZXIvcHVsbHMpLiBUb2dldGhlciB3ZSBjYW4gbWFrZSB0aGlzIGV4dGVuc2lvbiBldmVuIG1vcmUgYW1hemluZyEg8J+agAoKIyMgTGljZW5zZQoKU2VlIFtMSUNFTlNFXShMSUNFTlNFKS4K
+ readmeEtag: '"70103e25f4a53ec46c81e387210205ea642199fbab747227ed711fc973ef356c"'
+ readmeLastModified: Fri, 29 Dec 2023 14:40:06 GMT
repositoryId: 70046718
description: >-
Parse OpenAPI documents into Burp Suite for automating OpenAPI-based APIs
security assessments (approved by PortSwigger for inclusion in their
official BApp Store).
created: '2016-10-05T09:32:42Z'
- updated: '2023-12-01T17:18:59Z'
+ updated: '2023-12-29T14:25:26Z'
language: Java
archived: false
stars: 177
@@ -8986,13 +8986,15 @@
owner: aress31
logo: https://avatars.githubusercontent.com/u/11601622?v=4
license: Apache-2.0
- repoEtag: '"c7c2a293956f59d17a791f8a4012623c681b223383e0e68aa90ffd6ddffa9c1f"'
- repoLastModified: Fri, 01 Dec 2023 17:18:59 GMT
+ repoEtag: '"d01fe4ed1d96d2385b133fa3c6bcdec8dae4b30d9cc9246f00732115ced02343"'
+ repoLastModified: Fri, 29 Dec 2023 14:25:26 GMT
foundInMaster: true
category:
- Documentation
- Parsers
- id: 254da4f4bca5a9824a6fa5c1b56c80ee
+ id: 3dd0465c78eeb00e652527da7f6ec81a
+ oldLocations:
+ - https://github.com/aress31/swurg
- source: openapi3 tags
repository: https://github.com/himenon/openapi-typescript-code-generator
v3: true
@@ -9110,17 +9112,17 @@
It validates PSR-7 messages (HTTP request/response) against OpenAPI
specifications
created: '2019-05-01T13:32:30Z'
- updated: '2023-11-11T04:59:45Z'
+ updated: '2023-12-29T14:12:28Z'
language: PHP
archived: false
- stars: 168
+ stars: 169
watchers: 13
forks: 10
owner: lezhnev74
logo: https://avatars.githubusercontent.com/u/10206110?v=4
license: MIT
- repoEtag: '"6581082e6c6dc1a5bea8758f1d64f4523555fbf2c5dcf42139bb21d21465b974"'
- repoLastModified: Sat, 11 Nov 2023 04:59:45 GMT
+ repoEtag: '"4f29c63433d2e76a222a02629b2baeef5a99b4acf0766bb062646f1a31b11cf7"'
+ repoLastModified: Fri, 29 Dec 2023 14:12:28 GMT
foundInMaster: true
id: 827ca67e948986acbbe7941175945bd7
- source: openapi3 tags
@@ -9141,17 +9143,17 @@
repositoryId: 232207964
description: OpenAPI structures for Go
created: '2020-01-07T00:07:41Z'
- updated: '2023-12-28T22:22:33Z'
+ updated: '2023-12-29T22:08:59Z'
language: Go
archived: false
- stars: 165
+ stars: 168
watchers: 3
forks: 17
owner: swaggest
logo: https://avatars.githubusercontent.com/u/19609628?v=4
license: MIT
- repoEtag: '"1bc09be341d3c33cf8fde43f3e06dcbc4418cd447cf357d6c46486095db9f919"'
- repoLastModified: Thu, 28 Dec 2023 22:22:33 GMT
+ repoEtag: '"f1509aea5ad7848a765a8d063191c03b23e08bb156833641d8f03a47a3a67a9e"'
+ repoLastModified: Fri, 29 Dec 2023 22:08:59 GMT
foundInMaster: true
id: 042e78fafa5f6cb0dbca01c64778ab3f
- source: openapi3 tags
@@ -9357,17 +9359,17 @@
repositoryId: 362315893
description: Generate REST API and OpenAPI documentation for your Flask project.
created: '2021-04-28T02:39:57Z'
- updated: '2023-12-27T06:36:51Z'
+ updated: '2023-12-29T09:00:50Z'
language: Python
archived: false
- stars: 130
+ stars: 129
watchers: 7
forks: 25
owner: luolingchun
logo: https://avatars.githubusercontent.com/u/22740403?v=4
license: MIT
- repoEtag: '"013085d9e732744a932f369217db00586b809365c617163179eaa12e7adb3237"'
- repoLastModified: Wed, 27 Dec 2023 06:36:51 GMT
+ repoEtag: '"396847c8cdfc454bb9616733e4bbc7cfe873a6f33f86f59b88238f7fd4d6867e"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:50 GMT
foundInMaster: true
category: Server Implementations
id: 7baa4046f5397a8fd006511115871ac0
@@ -9410,17 +9412,17 @@
A collection of Visual Studio custom tool code generators for Swagger /
OpenAPI specification files
created: '2019-01-17T12:58:50Z'
- updated: '2023-12-18T22:24:49Z'
+ updated: '2023-12-29T22:40:50Z'
language: C#
archived: false
- stars: 125
+ stars: 126
watchers: 6
forks: 16
owner: christianhelle
logo: https://avatars.githubusercontent.com/u/710400?v=4
license: GPL-3.0
- repoEtag: '"eb597a01161750af2c847826ff6e1e4cc0599afccd931ba90f17f3eca9c483da"'
- repoLastModified: Mon, 18 Dec 2023 22:24:49 GMT
+ repoEtag: '"393b3be38df4e249ee9cc84fedc141cc82ab08264eddd62f2b02e4bf713ed8f7"'
+ repoLastModified: Fri, 29 Dec 2023 22:40:50 GMT
category: SDK
foundInMaster: true
- source:
@@ -9602,10 +9604,10 @@
archived: false
stars: 106
watchers: 13
- forks: 183
+ forks: 184
owner: hummingbird-me
logo: https://avatars.githubusercontent.com/u/7648832?v=4
- repoEtag: '"0476a14de3ad0d267e0ab5fcf210c9386e619b37322c576ce67564529c19d022"'
+ repoEtag: '"0590ae75e86b97a846d20e684e3debbd5045ba98ce3148c46f87af1bfb2ca1c4"'
repoLastModified: Wed, 20 Dec 2023 11:30:09 GMT
foundInMaster: true
category: Low-level Tooling
@@ -9709,17 +9711,17 @@
repositoryId: 263836606
description: 'OpenAPI (v3) specification schema as pydantic class '
created: '2020-05-14T06:42:49Z'
- updated: '2023-12-20T14:20:01Z'
+ updated: '2023-12-29T09:00:26Z'
language: Python
archived: false
- stars: 100
+ stars: 99
watchers: 4
forks: 16
owner: kuimono
logo: https://avatars.githubusercontent.com/u/16016416?v=4
license: MIT
- repoEtag: '"4bdf39d9e35581910cef8f83a4e11b62e7b07d16b21bc51450a061378f961b4a"'
- repoLastModified: Wed, 20 Dec 2023 14:20:01 GMT
+ repoEtag: '"d401b66392244de5d7808016a716f6aaf939e12ddeaa84f33ed0d002f7e32e47"'
+ repoLastModified: Fri, 29 Dec 2023 09:00:26 GMT
foundInMaster: true
category: Parsers
id: db4e005af8e10dd51fade90218a598f9
@@ -9846,17 +9848,17 @@
An opinionated OpenAPI v3 code generator for Go. Use this to generate API
models and router scaffolding.
created: '2020-11-12T15:04:52Z'
- updated: '2023-12-12T20:43:13Z'
+ updated: '2023-12-29T15:54:46Z'
language: Go
archived: false
- stars: 88
+ stars: 89
watchers: 6
forks: 11
owner: contiamo
logo: https://avatars.githubusercontent.com/u/862286?v=4
license: MIT
- repoEtag: '"0a1e9d89c6b309cdee0240284dca59fde5cf4c9a2e16bbde87bc42d38b1ee8af"'
- repoLastModified: Tue, 12 Dec 2023 20:43:13 GMT
+ repoEtag: '"e4573c4f34f55b45418e14ad0d5dfa3c1723b6b111224b59435c01f68ba18804"'
+ repoLastModified: Fri, 29 Dec 2023 15:54:46 GMT
foundInMaster: true
category: Server Implementations
id: eef90532aca60fba2399f8da8d25e5f2
@@ -10004,17 +10006,17 @@
repositoryId: 142623136
description: OpenApi 3.0.0 docs + Swagger UI for oatpp services
created: '2018-07-27T20:59:35Z'
- updated: '2023-12-16T06:51:15Z'
+ updated: '2023-12-29T15:09:47Z'
language: C++
archived: false
- stars: 82
+ stars: 83
watchers: 8
forks: 52
owner: oatpp
logo: https://avatars.githubusercontent.com/u/37167448?v=4
license: Apache-2.0
- repoEtag: '"35074f37c1fd08438977e32ef52ac8ad792a1ab9bd6ed944ca5bc519deff6e0e"'
- repoLastModified: Sat, 16 Dec 2023 06:51:15 GMT
+ repoEtag: '"9c221305f3296d551f800c53a8de257a9c5e274dacbf602ccbeaad09c3a6afee"'
+ repoLastModified: Fri, 29 Dec 2023 15:09:47 GMT
foundInMaster: true
category: Low-level Tooling
id: e2b5ed322cb3283e7ad1edd0b0634fc4
@@ -10055,17 +10057,17 @@
repositoryId: 628179878
description: Use Zod Schemas to create OpenAPI v3.x documentation
created: '2023-04-15T06:28:51Z'
- updated: '2023-12-28T23:48:57Z'
+ updated: '2023-12-29T09:01:34Z'
language: TypeScript
archived: false
- stars: 82
+ stars: 81
watchers: 2
forks: 6
owner: samchungy
logo: https://avatars.githubusercontent.com/u/18017094?v=4
license: MIT
- repoEtag: '"b15ea185203f9a2a3c4054a37ceddb2c5be70ffb1e3d13e0b36c9da07aeb16d5"'
- repoLastModified: Thu, 28 Dec 2023 23:48:57 GMT
+ repoEtag: '"a821c963b0442b6a25c4d14559f4bd1fae50cd26c0e09e3101ee85a1fa021ac4"'
+ repoLastModified: Fri, 29 Dec 2023 09:01:34 GMT
category: Parsers
foundInMaster: true
- source: openapi3 tags
@@ -10168,17 +10170,17 @@
Simple and efficient HTTP mock server with specification in yaml, edn or
OpenAPI
created: '2022-02-23T10:49:57Z'
- updated: '2023-12-23T04:22:51Z'
+ updated: '2023-12-30T01:41:35Z'
language: Clojure
archived: false
- stars: 77
+ stars: 78
watchers: 2
forks: 7
owner: moclojer
logo: https://avatars.githubusercontent.com/u/103039458?v=4
license: MIT
- repoEtag: '"8cb39d3a281faac3e46bcf0ee7df49a0928904cb45902cbadcbd45f191d320dc"'
- repoLastModified: Sat, 23 Dec 2023 04:22:51 GMT
+ repoEtag: '"81c2582427956bb5735a6ed590f78ef42df6d3670978cda04233a535adec4d01"'
+ repoLastModified: Sat, 30 Dec 2023 01:41:35 GMT
category: Testing
foundInMaster: true
oldLocations:
@@ -10368,7 +10370,7 @@
owner: davidmoten
logo: https://avatars.githubusercontent.com/u/318187?v=4
license: Apache-2.0
- repoEtag: '"7dc15aa12d80f5a2c7b5f76caa63b640d411df049ab25460c8f1d5b89ddaec04"'
+ repoEtag: '"a9c822fe1b7537c743b0e06d5d98646b650fefdd8de99804b801fbcc297e7bbd"'
repoLastModified: Tue, 26 Dec 2023 07:18:50 GMT
foundInMaster: true
category: SDK
@@ -10500,7 +10502,7 @@
owner: parvez3019
logo: https://avatars.githubusercontent.com/u/10362597?v=4
license: GPL-3.0
- repoEtag: '"e769a636c70a029dd208fc61848fb2cb29f4fa800c964864250e7818dd96bbda"'
+ repoEtag: '"a784bace326e77c4fe97ac28867e68bd49107115566fbd666199b29501bdf236"'
repoLastModified: Thu, 21 Dec 2023 09:23:12 GMT
foundInMaster: true
category: Server Implementations
@@ -10551,10 +10553,10 @@
archived: false
stars: 59
watchers: 8
- forks: 17
+ forks: 18
owner: OAI
logo: https://avatars.githubusercontent.com/u/16343502?v=4
- repoEtag: '"44be09a3a4430f6dabfa69ab53ae64cef0c304f8e99a934c3c1ee3e76970b659"'
+ repoEtag: '"cfc9f982d9d1e31cc8f9344a5f3d5d57fdd494850f4ce6ade4e4f7f98b4bd0d1"'
repoLastModified: Fri, 22 Dec 2023 18:20:34 GMT
category: Server Implementations
foundInMaster: true
@@ -10867,7 +10869,7 @@
forks: 12
owner: swagger-api
logo: https://avatars.githubusercontent.com/u/7658037?v=4
- repoEtag: '"13111ad52b854283ed0023558d3a7c2f1163e625750febfce61004dbcc23b569"'
+ repoEtag: '"21e90d79a06e6aafdb3cce0ef0b6596dbcec0e70b1d930483a2c49317045d0d3"'
repoLastModified: Thu, 28 Dec 2023 04:34:11 GMT
category: Parsers
foundInMaster: true
@@ -10887,11 +10889,11 @@
archived: false
stars: 45
watchers: 6
- forks: 47
+ forks: 48
owner: OpenAPITools
logo: https://avatars.githubusercontent.com/u/37325267?v=4
license: Apache-2.0
- repoEtag: '"27a7e5c432a941b28d709b6451fb236cdc0a50ae52e43a96e35d4dc5478075b7"'
+ repoEtag: '"c4d57a287bc94023d679d5f54c04279be3ad9aea0858edbc634f08a05a5aca2f"'
repoLastModified: Fri, 27 Oct 2023 06:47:41 GMT
foundInMaster: true
category:
@@ -11082,7 +11084,7 @@
owner: atlassian
logo: https://avatars.githubusercontent.com/u/168166?v=4
license: NOASSERTION
- repoEtag: '"f66fc2bc8ed752a317860f2642333e84cde8591da8856f9c359ad3f5b34bc815"'
+ repoEtag: '"4f4e787f8219a4fc9ee8907625812c8064ad7f56e5a87124efb26e834b3a4cc2"'
repoLastModified: Fri, 01 Sep 2023 17:39:36 GMT
foundInMaster: true
id: 70270b46839e1466d6a425a8da6ded65
@@ -11243,7 +11245,7 @@
owner: cocreators-ee
logo: https://avatars.githubusercontent.com/u/25827530?v=4
license: MIT
- repoEtag: '"491c1fe85bd30e77fe3293031109e87d70298cddbe0ef53169ba0d428835f859"'
+ repoEtag: '"8a2f5988c4224634323fd87b73a2a588e5acd2f5ed1c2e512307235c003026be"'
repoLastModified: Wed, 27 Dec 2023 03:17:57 GMT
category: Parsers
foundInMaster: true
@@ -11319,7 +11321,7 @@
owner: Backbase
logo: https://avatars.githubusercontent.com/u/1914334?v=4
license: NOASSERTION
- repoEtag: '"001e2b68891b91e8eee73353109dc1ccdebc2c595f79fd05bd4c6f52b2ee3908"'
+ repoEtag: '"d77c2f30cfac8c578f62f47e01fb19a2fb04a0c95d9780452451f597f39557b6"'
repoLastModified: Fri, 20 Oct 2023 12:33:10 GMT
foundInMaster: true
category: SDK
@@ -11613,7 +11615,7 @@
owner: quantmind
logo: https://avatars.githubusercontent.com/u/144099?v=4
license: BSD-3-Clause
- repoEtag: '"dba7fb23c5b02f687f7d4c7640d1be71e6f60f5765bad8ce7e68542aba8e410a"'
+ repoEtag: '"06c2ea89d339f9c115aef89a8c30a1bc28e07146604a6ad7f40035b2405e22b8"'
repoLastModified: Fri, 16 Jun 2023 06:44:28 GMT
foundInMaster: true
category: Server Implementations
@@ -11743,7 +11745,7 @@
owner: JaredCE
logo: https://avatars.githubusercontent.com/u/770400?v=4
license: MIT
- repoEtag: '"63c0e5d5f5161ee8435f2ce0f23b9ec4738ab5e5fe6ebfea9eb238e08312c181"'
+ repoEtag: '"b79424214d944c91602f408184b5a64a02453150f3469055f95a324a38e6a3ad"'
repoLastModified: Thu, 14 Dec 2023 00:50:36 GMT
category: Parsers
foundInMaster: true
@@ -11778,7 +11780,7 @@
owner: openapi-processor
logo: https://avatars.githubusercontent.com/u/66728774?v=4
license: Apache-2.0
- repoEtag: '"1e7a6b6b401cfa8e472b4d0bfa311c5c855eb9b5dc87bb9885896a3d2ae74949"'
+ repoEtag: '"b3b210beda98b867e297051c6c33ab04c3348bee9e5b64b290f106875e849682"'
repoLastModified: Sun, 24 Dec 2023 20:24:36 GMT
foundInMaster: true
id: 544de493e48dbce482dd3fcfc87ad568
@@ -13302,11 +13304,11 @@
archived: false
stars: 17
watchers: 4
- forks: 12
+ forks: 13
owner: louis-lau
logo: https://avatars.githubusercontent.com/u/1346804?v=4
license: AGPL-3.0
- repoEtag: '"1f97e84943228b9a4e13cc13a7fb16f006c0b3d75c1583fa45cd5f1c325f2c4c"'
+ repoEtag: '"8db8be33ca41b1f02f70581f1f95854030cf29f3129f2888ae240f3870a009f5"'
repoLastModified: Fri, 01 Sep 2023 09:54:20 GMT
foundInMaster: true
category: Server Implementations
@@ -13358,7 +13360,7 @@
owner: mockoon
logo: https://avatars.githubusercontent.com/u/49429147?v=4
license: NOASSERTION
- repoEtag: '"b0b1a7d2dbe8c819cdb44e1601d0a83a677aeb76c7138d98bab9a42e54556cd2"'
+ repoEtag: '"cf7f44d87d3b82f9e868ed905184c02e46f5b4fe5b6915c4b2cf584a2e060045"'
repoLastModified: Thu, 07 Dec 2023 13:58:03 GMT
foundInMaster: true
category: Testing
@@ -13682,7 +13684,7 @@
owner: marcelthole
logo: https://avatars.githubusercontent.com/u/850125?v=4
license: MIT
- repoEtag: '"c8025b16cdbf6d05333bb05fb643fd83dc363928e1c2691077f860bfb1ad54b9"'
+ repoEtag: '"f994feaabf873a28f565fcb9e6f70d914a355ce86b918149b6bd9e4a3de3db99"'
repoLastModified: Sat, 23 Dec 2023 21:47:47 GMT
foundInMaster: true
category: Description Validators
@@ -13904,7 +13906,7 @@
owner: Redocly
logo: https://avatars.githubusercontent.com/u/32099856?v=4
license: MIT
- repoEtag: '"d0b83c062e77a5a65d452e2dd5d231d912af56637140d78d337be6ad22cf2449"'
+ repoEtag: '"e042972014ff80438778a7913912a597fef26e35fdcd8792cc4fbd1925fa9e21"'
repoLastModified: Fri, 22 Dec 2023 20:37:35 GMT
category: Server Implementations
foundInMaster: true
@@ -13958,7 +13960,7 @@
owner: bcgov
logo: https://avatars.githubusercontent.com/u/916280?v=4
license: Apache-2.0
- repoEtag: '"a122b87917b2646f96a52fc297be13fc5a8f24ba731f9e169ca425591cb34c05"'
+ repoEtag: '"db6b82b73390ae0c99d689703a1ff1ce043f326a88837c4df13f292328b01dc3"'
repoLastModified: Wed, 04 Oct 2023 21:10:59 GMT
category: Documentation
foundInMaster: true
@@ -14247,7 +14249,7 @@
repositoryId: 528825705
description: A node.js package used to build swagger docs hassle free
created: '2022-08-25T11:45:33Z'
- updated: '2023-06-23T06:54:37Z'
+ updated: '2023-12-29T16:18:25Z'
language: TypeScript
archived: false
stars: 12
@@ -14256,8 +14258,8 @@
owner: AmishFaldu
logo: https://avatars.githubusercontent.com/u/46478801?v=4
license: Apache-2.0
- repoEtag: '"56daff182d1ee74675d7ae07fcb8a48e463cccf5b5eaa5556c5daf16a8117625"'
- repoLastModified: Fri, 23 Jun 2023 06:54:37 GMT
+ repoEtag: '"156fbd8a744a739e641052b9d2e9024e9dd1a7680b7f8ac5ec23aef0d923b3e6"'
+ repoLastModified: Fri, 29 Dec 2023 16:18:25 GMT
category: Server Implementations
foundInMaster: true
- source: openapi3 tags
@@ -14576,11 +14578,11 @@
language: TypeScript
archived: false
stars: 11
- watchers: 2
+ watchers: 3
forks: 10
owner: foxel
logo: https://avatars.githubusercontent.com/u/1551926?v=4
- repoEtag: '"f865fbd994c796f667f128b50e2c10c8c90195eadd6c938421d3b42fd1950cbd"'
+ repoEtag: '"fca0ae17f397f8a2120b5e45212cc575dee82af6371e0f3e9ce0198a3fb97087"'
repoLastModified: Wed, 30 Sep 2020 02:42:23 GMT
foundInMaster: true
category: Parsers
@@ -14870,7 +14872,7 @@
owner: commonism
logo: https://avatars.githubusercontent.com/u/164513?v=4
license: BSD-3-Clause
- repoEtag: '"1df9e9b2e2935fa0b9494e1df4e37cb8e2c6af1a10b52272519b428a8bebe74a"'
+ repoEtag: '"359df49e5d5313c9d734450cb15614a960f52b533661b3e12160fc1b57b9d729"'
repoLastModified: Tue, 26 Dec 2023 02:25:45 GMT
foundInMaster: true
id: f7fe65d08545a563279e1526fe797380
@@ -15213,7 +15215,7 @@
owner: Jnig
logo: https://avatars.githubusercontent.com/u/3729585?v=4
license: MIT
- repoEtag: '"722fbe3f9760a6eac48e0415b9037fa138747e71d19b140a2f0a68a9a9077dd7"'
+ repoEtag: '"56e8d2f5bf80a195dc649db1035bcfae02bbe65bfbdb00cd54969a4af2418287"'
repoLastModified: Mon, 21 Aug 2023 21:29:33 GMT
category:
- Data Validators
@@ -15499,7 +15501,7 @@
owner: matchID-project
logo: https://avatars.githubusercontent.com/u/32673019?v=4
license: LGPL-3.0
- repoEtag: '"72a622c8b4c9ce09318e201217b03e9f5511d4fe4caba4ce0a330a1a2fc2a259"'
+ repoEtag: '"97311074b427e56935494646fd7a989fbd81ab0c9e2b14f2fcbadfe7a16a7215"'
repoLastModified: Wed, 23 Aug 2023 16:39:42 GMT
foundInMaster: true
category: Server
@@ -15509,23 +15511,23 @@
v3: true
repositoryMetadata:
base64Readme: >-
- IyBFeHByZXNzIEdhdGV3YXkgT3BlbkFQSSAzIE1vY2sgU2VydmVyIFBsdWdpbgoKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyKQoKKipfVGhpcyBwbHVnaW4gaXMgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50LiBXb3VsZCB5b3UgbWVldCBhbnkgcHJvYmxlbXMsIHBsZWFzZSBvcGVuIGEgbmV3IGlzc3VlCmFmdGVyIHZlcmlmeWluZyB0aGF0IHRoZXJlIGlzbid0IG9uZSBhbHJlYWR5Ll8qKgoKIyMgUHJlcmVxdWlzaXRlcwoKUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEV4cHJlc3MgR2F0ZXdheSdzIFtHZXR0aW5nIHN0YXJ0ZWRdKGh0dHA6Ly93d3cuZXhwcmVzcy1nYXRld2F5LmlvL2dldHRpbmctc3RhcnRlZC8pIHBhZ2UuCgpBbHNvIHBsZWFzZSB0YWtlIGEgbG9vayBhdCBob3cgcGx1Z2lucyBhcmUgW2luc3RhbGxlZCBhbmQgZW5hYmxlZF0oaHR0cDovL3d3dy5leHByZXNzLWdhdGV3YXkuaW8vZG9jcy9wbHVnaW5zLykuCgojIyBJbnN0YWxsYXRpb24KCmBlZyBwbHVnaW4gaW5zdGFsbCBleHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyYAoKIyMgQ29uZmlndXJhdGlvbgoKWW91IGNhbiB1c2UgYHNhbXBsZXMvYmFzZS1wYXRocy55bWxgIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBJZiBzbywgcGxlYXNlIGNyZWF0ZSBhIGBkZWZpbml0aW9uc2AgZm9sZGVyCmluIHRoZSBwcm9qZWN0IHJvb3QgYW5kIGNvcHkgdGhlIHNhbXBsZSBZQU1MIHRoZXJlLgoKX3N5c3RlbS5jb25maWcueW1sXwoKYGBgeWFtbAojIHNvbWUgY29uZmlnIGluIGZyb250IG9mIHRoZSBwbHVnaW5zIHNlY3Rpb24KCnBsdWdpbnM6CiAgZXhwcmVzcy1nYXRld2F5LXBsdWdpbi1vcGVuYXBpMy1tb2NrLXNlcnZlcjoKICAgIGRlZmluaXRpb25GaWxlOiAnZGVmaW5pdGlvbnMveW91cmRlZmluaXRpb24ueW1sJyAjIFRoZSBmaWxlIGNvbnRhaW5pbmcgeW91ciBBUEkncyBzcGVjaWZpY2F0aW9uCgojIHNvbWUgY29uZmlnIGFmdGVyIHRoZSBwbHVnaW5zIHNlY3Rpb24KYGBgCgpfZ2F0ZXdheS5jb25maWcueW1sXyAoQSBiYXJlYm9uZSBleGFtcGxlLCBpZiBub3RoaW5nIGVsc2UgaXMgdXNlZC4pCgpgYGB5YW1sCmh0dHA6CiAgcG9ydDogODAKYXBpRW5kcG9pbnRzOgogIGFwaToKICAgIGhvc3Q6ICcqJwpwb2xpY2llczoKICAtIG1vY2sKcGlwZWxpbmVzOgogIGFwaToKICAgIGFwaUVuZHBvaW50czoKICAgICAgICAtIGFwaQogICAgcG9saWNpZXM6CiAgICAgICAgLSBtb2NrOgogICAgICAgICAgLSBhY3Rpb24KYGBgClRoZSBhYm92ZSBjb25maWd1cmF0aW9uIGRpc2FibGVzIHRoZSBBZG1pbiBDTEkgYW5kIHdpbGwgZG8gbm90aGluZyBidXQgcHJvdmlkZSBhIGR1bW15IHJlc3BvbmRlciBiYXNlZCBvbiB5b3VyIApPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBGZWF0dXJlcwoKKiBFbmRwb2ludHMgd2l0aCBhcHByb3ByaWF0ZSByZXF1ZXN0IHR5cGVzIGFyZSBwYXJzZWQgYW5kIHRoZSBmaXJzdCByZXNwb25zZSBleGFtcGxlIGlzIHVzZWQgYXMgYSByZXNwb25zZSBib2R5LgoqIEhUVFAgYW5kIGFwaUtleSBhdXRoIGhlYWRlciBjaGVjayBzdXBwb3J0CgojIyMgVG8gZG8KCiogQWNjZXB0IGhlYWRlciBjaGVja3MgdG8gcmV0dXJuIGFwcHJvcHJpYXRlIHJlc3BvbnNlIGV4YW1wbGUKKiBYLSogaGVhZGVycyBmb3IgdGVzdGluZyBlcnJvciByZXNwb25zZXMKKiBYLSogaGVhZGVycyBmb3IgcmVzcG9uc2UgZXhhbXBsZSBzZWxlY3Rpb24KKiBJbnB1dCBwYXJhbWV0ZXIgdmFsaWRhdGlvbgoqIEdlbmVyYXRvcnMgZm9yIHJhbmRvbSByZXNwb25zZSBkYXRhIGJhc2VkIG9uIHByb3ZpZGVkIHNjaGVtYQo=
- readmeEtag: '"5c73554553cbec9ab3150dbcf308e90f10e0e55133113f39aad663a96a366367"'
- readmeLastModified: Tue, 28 Nov 2017 08:12:51 GMT
+ IyBFeHByZXNzIEdhdGV3YXkgT3BlbkFQSSAzIE1vY2sgU2VydmVyIFBsdWdpbgoKWyFbbnBtIHZlcnNpb25dKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyLnN2ZyldKGh0dHBzOi8vYmFkZ2UuZnVyeS5pby9qcy9leHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyKQoKPiAqKkRFUFJFQ0FUSU9OIE5PVElDRSoqIEZvbGxvd2luZyB0aGUgbWFpbiBFeHByZXNzIEdhdGV3YXkncyBkZXByZWNhdGlvbiwgdGhpcyBwcm9qZWN0IGlzIG5vIGxvbmdlciBtYWludGFpbmVkLgoKIyMgUHJlcmVxdWlzaXRlcwoKUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEV4cHJlc3MgR2F0ZXdheSdzIFtHZXR0aW5nIHN0YXJ0ZWRdKGh0dHA6Ly93d3cuZXhwcmVzcy1nYXRld2F5LmlvL2dldHRpbmctc3RhcnRlZC8pIHBhZ2UuCgpBbHNvIHBsZWFzZSB0YWtlIGEgbG9vayBhdCBob3cgcGx1Z2lucyBhcmUgW2luc3RhbGxlZCBhbmQgZW5hYmxlZF0oaHR0cDovL3d3dy5leHByZXNzLWdhdGV3YXkuaW8vZG9jcy9wbHVnaW5zLykuCgojIyBJbnN0YWxsYXRpb24KCmBlZyBwbHVnaW4gaW5zdGFsbCBleHByZXNzLWdhdGV3YXktcGx1Z2luLW9wZW5hcGkzLW1vY2stc2VydmVyYAoKIyMgQ29uZmlndXJhdGlvbgoKWW91IGNhbiB1c2UgYHNhbXBsZXMvYmFzZS1wYXRocy55bWxgIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBJZiBzbywgcGxlYXNlIGNyZWF0ZSBhIGBkZWZpbml0aW9uc2AgZm9sZGVyCmluIHRoZSBwcm9qZWN0IHJvb3QgYW5kIGNvcHkgdGhlIHNhbXBsZSBZQU1MIHRoZXJlLgoKX3N5c3RlbS5jb25maWcueW1sXwoKYGBgeWFtbAojIHNvbWUgY29uZmlnIGluIGZyb250IG9mIHRoZSBwbHVnaW5zIHNlY3Rpb24KCnBsdWdpbnM6CiAgZXhwcmVzcy1nYXRld2F5LXBsdWdpbi1vcGVuYXBpMy1tb2NrLXNlcnZlcjoKICAgIGRlZmluaXRpb25GaWxlOiAnZGVmaW5pdGlvbnMveW91cmRlZmluaXRpb24ueW1sJyAjIFRoZSBmaWxlIGNvbnRhaW5pbmcgeW91ciBBUEkncyBzcGVjaWZpY2F0aW9uCgojIHNvbWUgY29uZmlnIGFmdGVyIHRoZSBwbHVnaW5zIHNlY3Rpb24KYGBgCgpfZ2F0ZXdheS5jb25maWcueW1sXyAoQSBiYXJlYm9uZSBleGFtcGxlLCBpZiBub3RoaW5nIGVsc2UgaXMgdXNlZC4pCgpgYGB5YW1sCmh0dHA6CiAgcG9ydDogODAKYXBpRW5kcG9pbnRzOgogIGFwaToKICAgIGhvc3Q6ICcqJwpwb2xpY2llczoKICAtIG1vY2sKcGlwZWxpbmVzOgogIGFwaToKICAgIGFwaUVuZHBvaW50czoKICAgICAgICAtIGFwaQogICAgcG9saWNpZXM6CiAgICAgICAgLSBtb2NrOgogICAgICAgICAgLSBhY3Rpb24KYGBgClRoZSBhYm92ZSBjb25maWd1cmF0aW9uIGRpc2FibGVzIHRoZSBBZG1pbiBDTEkgYW5kIHdpbGwgZG8gbm90aGluZyBidXQgcHJvdmlkZSBhIGR1bW15IHJlc3BvbmRlciBiYXNlZCBvbiB5b3VyIApPcGVuQVBJIHNwZWNpZmljYXRpb24uCgojIyBGZWF0dXJlcwoKKiBFbmRwb2ludHMgd2l0aCBhcHByb3ByaWF0ZSByZXF1ZXN0IHR5cGVzIGFyZSBwYXJzZWQgYW5kIHRoZSBmaXJzdCByZXNwb25zZSBleGFtcGxlIGlzIHVzZWQgYXMgYSByZXNwb25zZSBib2R5LgoqIEhUVFAgYW5kIGFwaUtleSBhdXRoIGhlYWRlciBjaGVjayBzdXBwb3J0CgojIyMgVG8gZG8KCiogQWNjZXB0IGhlYWRlciBjaGVja3MgdG8gcmV0dXJuIGFwcHJvcHJpYXRlIHJlc3BvbnNlIGV4YW1wbGUKKiBYLSogaGVhZGVycyBmb3IgdGVzdGluZyBlcnJvciByZXNwb25zZXMKKiBYLSogaGVhZGVycyBmb3IgcmVzcG9uc2UgZXhhbXBsZSBzZWxlY3Rpb24KKiBJbnB1dCBwYXJhbWV0ZXIgdmFsaWRhdGlvbgoqIEdlbmVyYXRvcnMgZm9yIHJhbmRvbSByZXNwb25zZSBkYXRhIGJhc2VkIG9uIHByb3ZpZGVkIHNjaGVtYQo=
+ readmeEtag: '"773cd89e83240e9f8a9045f61260b8ac09f84a91ad686b9c629e45c4759e1f97"'
+ readmeLastModified: Fri, 29 Dec 2023 11:38:45 GMT
repositoryId: 106981465
description: An OpenAPI 3 mock server plugin for Express Gateway
created: '2017-10-15T03:42:06Z'
- updated: '2020-08-17T14:14:25Z'
+ updated: '2023-12-29T11:39:42Z'
language: JavaScript
- archived: false
+ archived: true
stars: 8
watchers: 2
forks: 1
owner: Szasza
logo: https://avatars.githubusercontent.com/u/911466?v=4
license: NOASSERTION
- repoEtag: '"4c8f4a41668d1403bbb53f3c1f3b0a43fb12d39bad7ccf9fe17e34b25e7b79b0"'
- repoLastModified: Mon, 17 Aug 2020 14:14:25 GMT
+ repoEtag: '"d74892a11df235a942d3191067f6059ce05d87fd75169cd2327916a11f0470af"'
+ repoLastModified: Fri, 29 Dec 2023 11:39:42 GMT
foundInMaster: true
category:
- Server
@@ -15836,7 +15838,7 @@
owner: danicc097
logo: https://avatars.githubusercontent.com/u/71724149?v=4
license: Apache-2.0
- repoEtag: '"f22cf36367a39148609cca574385d64d23e0853f9d447a7bdf6773d5ac2caccb"'
+ repoEtag: '"09cf88344c32f252a6f021b62e9121ffb8ee5a08c6e96da3bd1bb3389185ae41"'
repoLastModified: Sat, 11 Nov 2023 00:21:23 GMT
category: Parsers
foundInMaster: true
@@ -16581,9 +16583,9 @@
id: 9f3eecc809978e3f45543f2ae1e80852
repositoryMetadata:
base64Readme: >-
- IyBzdGFja3FsLXJlZ2lzdHJ5LWRvY3MKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBkb2N1bWVudGF0aW9uIGZvciBTdGFja1FMIHByb3ZpZGVycywgd2hpY2ggaXMgcHVibGlzaGVkIHRvIFtyZWdpc3RyeS5zdGFja3FsLmlvXShodHRwczovL3JlZ2lzdHJ5LnN0YWNrcWwuaW8pLiAgVGhpcyB3ZWJzaXRlIGlzIGJ1aWx0IHVzaW5nIFtEb2N1c2F1cnVzIDJdKGh0dHBzOi8vZG9jdXNhdXJ1cy5pby8pLCBhIG1vZGVybiBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IuICAKCiMjIEJ1aWxkIGFuZCBEZXBsb3kgU3RhdHVzCgp8IFR5cGUgfCBTdGF0dXMgfCBMaW5rIHwKfCAtLS0gfCAtLS0gfCAtLSB8CnwgR2l0SHViIEFjdGlvbnMgQnVpbGQgfCBbIVtHaXRIdWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLWRvY3MueWFtbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQtZG9jcy55YW1sKSB8IFtzdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMpIHwKfCBOZXRsaWZ5IERlcGxveSBCYXNlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNzVmODM4YTktNzllYS00MWRjLTk2ZjktYTQwZGZmNTBjZmNhL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvZGVwbG95cykgfCBbcmVnaXN0cnkuc3RhY2txbC5pb10oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgQVdTIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvZWYxNjFjNGEtNjNlYS00YmNjLWE1Y2ItNWVhZWQzMGVkNTVmL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF3cy1kb2NzL2RlcGxveXMpIHwgW2F3cy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vYXdzLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthd3Muc3RhY2txbC5pb10oaHR0cHM6Ly9hd3Muc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEF6dXJlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNWUyY2NlMmQtM2M1MS00NGRmLWJiMTQtNGVlOWM2MjZjYTAyL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF6dXJlLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthenVyZS5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBBenVyZSBFeHRyYXMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMThkZmM1MC1lMWVmLTQ3NDItYmQ5NS0xOTljNjdmNGVhOTUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtYXp1cmUtZXh0cmFzLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZXh0cmFzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9henVyZS1leHRyYXMtZG9jcy5zdGFja3FsLmlvKTxici8+W2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRmlyZWJhc2UgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82ZDhmZWM0Mi1mYmEyLTRkNjItYWZlZi0zMGE4MjE4NjMzMTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZmlyZWJhc2UtZG9jcy9kZXBsb3lzKSB8IFtmaXJlYmFzZS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2UtZG9jcy5zdGFja3FsLmlvKTxici8+W2ZpcmViYXNlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2Uuc3RhY2txbC5pbykgfCAgCnwgTmV0bGlmeSBEZXBsb3kgR2l0SHViIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNjI1ZDdkMzgtMzdhOS00MjI0LWE5YzgtNmVlNTgxNDFiMTA5L2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWdpdGh1Yi1kb2NzL2RlcGxveXMpIHwgW2dpdGh1Yi1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ2l0aHViLWRvY3Muc3RhY2txbC5pbyk8YnIvPltnaXRodWIuc3RhY2txbC5pb10oaHR0cHM6Ly9naXRodWIuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvb2dsZSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzAyOGUwZDMxLTYwNGItNDg1Mi04YjliLTc3YTcxZWFkNmI5My9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1nb29nbGUtZG9jcy9kZXBsb3lzKSB8IFtnb29nbGUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvb2dsZS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZ29vZ2xlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ29vZ2xlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBLOFMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMTFlYTZjNS03YTQzLTQyZDUtYWM3Ni01NTUxMTIyOTViOWIvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtazhzLWRvY3MvZGVwbG95cykgfCBbazhzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9rOHMtZG9jcy5zdGFja3FsLmlvKTxici8+W2s4cy5zdGFja3FsLmlvXShodHRwczovL2s4cy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgTmV0bGlmeSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzdkODFlNTlmLWUxZGUtNDgwZi1hNmQ1LTVhNTJmODNkZWI0MC9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1uZXRsaWZ5LWRvY3MvZGVwbG95cykgfCBbbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bbmV0bGlmeS5zdGFja3FsLmlvXShodHRwczovL25ldGxpZnkuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IE9rdGEgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84M2QzNzg4ZC1iYmNmLTQwNjMtYTJlNy02NTU3N2UzZjEzZjUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtb2t0YS1kb2NzL2RlcGxveXMpIHwgW29rdGEtZG9jcy5zdGFja3FsLmlvXShodHRwczovL29rdGEtZG9jcy5zdGFja3FsLmlvKTxici8+W29rdGEuc3RhY2txbC5pb10oaHR0cHM6Ly9va3RhLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBTdW1vbG9naWMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82Yzg2NDc3NC04NDk0LTQxYmUtOGUyYy00NDFiNmQxZTM2OGMvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtc3Vtb2xvZ2ljLWRvY3MvZGVwbG95cykgfCBbc3Vtb2xvZ2ljLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9zdW1vbG9naWMtZG9jcy5zdGFja3FsLmlvKTxici8+W3N1bW9sb2dpYy5zdGFja3FsLmlvXShodHRwczovL3N1bW9sb2dpYy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRGlnaXRhbCBPY2VhbiB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzL2ViY2FiNGVmLWQ2MTAtNDg4OC1hNDJmLTMxNDk0MmQ2OGMzMi9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1kaWdpdGFsb2NlYW4tZG9jcy9kZXBsb3lzKSB8IFtkaWdpdGFsb2NlYW4tZG9jcy5zdGFja3FsLmlvXShodHRwczovL2RpZ2l0YWxvY2Vhbi1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW9dKGh0dHBzOi8vZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBMaW5vZGUgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMGI1NzNiZS0zZGZiLTQ5NWMtYTBjZS00NzhlYzdhY2VjZDgvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtbGlub2RlLWRvY3MvZGVwbG95cykgfCBbbGlub2RlLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9saW5vZGUtZG9jcy5zdGFja3FsLmlvKTxici8+W2xpbm9kZS5zdGFja3FsLmlvXShodHRwczovL2xpbm9kZS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgVmVyY2VsIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvOTFjYzMxYjctMGMyNS00NDNmLWJiMmYtNzE5MjFlZjcwODRlL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXZlcmNlbC1kb2NzL2RlcGxveXMpIHwgW3ZlcmNlbC1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vdmVyY2VsLWRvY3Muc3RhY2txbC5pbyk8YnIvPlt2ZXJjZWwuc3RhY2txbC5pb10oaHR0cHM6Ly92ZXJjZWwuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvZGFkZHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84MjMyNDU4ZS04ZTRmLTQ3ZjItODFiZi1iZDRhYWQ4YjI1ZDYvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZ29kYWRkeS1kb2NzL2RlcGxveXMpIHwgW2dvZGFkZHktZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvZGFkZHktZG9jcy5zdGFja3FsLmlvKTxici8+W2dvZGFkZHkuc3RhY2txbC5pb10oaHR0cHM6Ly9nb2RhZGR5LnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBQYWdlckR1dHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy83NmM4NzUyYS0zMmQ4LTQ4ZTItODFhZC0yOWI5ZThmNTNlZGQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtcGFnZXJkdXR5LWRvY3MvZGVwbG95cykgfCBbcGFnZXJkdXR5LWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9wYWdlcmR1dHktZG9jcy5zdGFja3FsLmlvKTxici8+W3BhZ2VyZHV0eS5zdGFja3FsLmlvXShodHRwczovL3BhZ2VyZHV0eS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgSG9tZWJyZXcgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMzQzZDM0ZC01MDYxLTRkODMtOThlNi00NzVmYjIxNTBjOTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtaG9tZWJyZXctZG9jcy9kZXBsb3lzKSB8IFtob21lYnJldy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXctZG9jcy5zdGFja3FsLmlvKTxici8+W2hvbWVicmV3LnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXcuc3RhY2txbC5pbykgfAoKCiMjIEFkZGluZyBEb2NzIGZvciBhIE5ldyBQcm92aWRlcgoKQWRkaW5nIGRvY3MgZm9yIGEgbmV3IHByb3ZpZGVyIHJlcXVpcmVzIGNyZWF0aW5nIGEgbmV3IHdlYiBwcm9wZXJ0eSAoc3ViZG9tYWluKSBhbmQgd2lsbCBmb3JjZSBhbiB1cGRhdGUgdG8gdGhlIHJvb3QvYmFzZSBzaXRlIGFuZCBhbGwgb3RoZXIgcHJvdmlkZXJzLiAgVGhlIHN0ZXBzIGFyZTogIAoKLSBbIF0gdXBkYXRlIGBzY3JpcHRzL2RvY2dlbi9wcm92aWRlcl9kYXRhLnB5YCB3aXRoIG1ldGFkYXRhIGZvciBuZXcgcHJvdmlkZXIKLSBbIF0gZ2VuZXJhdGUgZG9jcyBmb3IgcHJvdmlkZXIgdXNpbmcgYGNkIHNjcmlwdHM7IHNoIGRvY2dlbi5zaCB7cHJvdmlkZXJ9YAotIFsgXSBwdWJsaXNoIGRvY3MgZm9yIHByb3ZpZGVyIHVzaW5nIGBjZCBzY3JpcHRzOyBzaCBwdWJsaXNoLnNoIHtwcm92aWRlcn1gCi0gW3hdIGFkZCB0aGUgbmV3IHByb3ZpZGVyIGRvY3MgdG8gYGRvY3Mve3Byb3ZpZGVyfS1kb2NzYCAoZm9sbG93aW5nIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgZXhpc3RpbmcgcHJvdmlkZXJzKSAoZG9uZSBhdXRvbWF0aWNhbGx5IGJ5IGBzY3JpcHRzL3B1Ymxpc2guc2hgKQotIFt4XSB1cGRhdGUgZnJvbnRtYXR0ZXIgaW4gdGhlIGBpbmRleC5tZGAgYXQgdGhlIHJvb3Qgb2YgdGhlIG5ldyBwcm92aWRlcnMgZG9jcywgc2V0IGBzbHVnYCB0byBgL3Byb3ZpZGVycy97cHJvdmlkZXJ9YCBhbmQgYGlkYCB0byBge3Byb3ZpZGVyfS1kb2NgIChkb25lIGF1dG9tYXRpY2FsbHkgYnkgYHNjcmlwdHMvZG9jZ2VuLnNoYCkKLSBbeF0gdXBkYXRlIGBzdGFja3FsLXByb3ZpZGVyLXJlZ2lzdHJ5Lm1keGAgaW4gdGhlIHJvb3Qgb2YgdGhlIG5ldyBwcm92aWRlciB0byBhZGQgdGhlIGBjdXJyZW50UHJvdmlkZXJgIHByb3AsIGUuZy4gYDxSZWdpc3RyeVBhZ2UgY3VycmVudFByb3ZpZGVyPSJva3RhIiAvPmAgKGRvbmUgYXV0b21hdGljYWxseSBieSBgc2NyaXB0cy9kb2NnZW4uc2hgKQotIFsgXSBjcmVhdGUgYSBuZXcgbmV0bGlmeSBzaXRlIChgc3RhY2txbC17cHJvdmlkZXJ9LWRvY3NgKSAtIHVzZSBgeWFybiBidWlsZDp7cHJvdmlkZXJ9YCBhcyB0aGUgYGJ1aWxkIGNvbW1hbmRgCi0gWyBdIHN0b3AgYXV0b21hdGljIGJ1aWxkcyBmb3Igc2l0ZSBpbiBOZXRsaWZ5Ci0gWyBdIGFkZCBgTkVUTElGWWAgcmVjb3JkIGluIE5ldGxpZnkgRE5TIChtYXBwaW5nIGB7cHJvdmlkZXJ9LWRvY3Muc3RhY2txbC5pb2AgKFByaW1hcnkgRG9tYWluKSBhbmQgYHtwcm92aWRlcn0uc3RhY2txbC5pb2AgKERvbWFpbiBBbGlhcykgdG8gYHN0YWNrcWwte3Byb3ZpZGVyfS1kb2NzLm5ldGxpZnkuYXBwYCksIHNlbGVjdCBgRm9yY2UgSFRUUFNgCi0gWyBdIGFkZCBHaXRIdWIgQWN0aW9ucyBzZWNyZXQgZm9yIG5ldGxpZnkgc2l0ZSBpZCAtIGBORVRMSUZZX1NJVEVfSURfe1BST1ZJREVSfWAKLSBbIF0gYWRkIHRoZSBOZXRsaWZ5IGRlcGxveSBzdGF0dXMgYmFkZ2UgdG8gdGhlIHRhYmxlIGluIHRoaXMgYFJFQURNRWAgKHNlZSBhYm92ZSkKLSBbIF0gdXBkYXRlIHRoZSBgcHJvdmlkZXJzYCBhcnJheSBpbiBgc2lkZWJhcnMuanNgIHdpdGggdGhlIG5ldyBwcm92aWRlcgotIFsgXSB1cGRhdGUgdGhlIGBwcm92aWRlcnNgIGFycmF5IGBzcmMvY29uZmlncy9wcm92aWRlcnMudHNgIHdpdGggdGhlIG5ldyBwcm92aWRlcgotIFsgXSB1cGRhdGUgYHBhY2thZ2UuanNvbmAgd2l0aCBuZXcgYHN0YXJ0YCBhbmQgYGJ1aWxkYCBzY3JpcHRzCi0gWyBdIHVwZGF0ZSBgYWxsUHJvdmlkZXJzYCBpbiBgY2ktc2NyaXB0cy9nZXQtcHJvdmlkZXJzLXRvLWRlcGxveS5qc2Agd2l0aCB0aGUgbmV3IHByb3ZpZGVyCi0gWyBdIGFkZCB0aGUgcm9vdCBzaXRlIHJlZGlyZWN0cyBmb3IgcHJvdmlkZXIgdmFuaXR5IHVybHMgdG8gYC5naXRodWIvd29ya2Zsb3dzL2J1aWxkLWRvY3MueWFtbGAgdG8gdGhlIGBhZGQgcmVkaXJlY3RzIHRvIHJvb3Qgc2l0ZWAgc3RlcCBvZiB0aGUgYGRlcGxveS10by1uZXRsaWZ5YCBqb2IKCiMjIFVwZGF0aW5nIEV4aXN0aW5nIFByb3ZpZGVyIERvY3MKClRvIHVwZGF0ZSB0aGUgZG9jcyBmb3IgYW4gZXhpc3RpbmcgcHJvdmlkZXIsIGVkaXQgdGhlIGNvcnJlc3BvbmRpbmcgbWFya2Rvd24gZmlsZSBvciBmaWxlcyBpbiB0aGUgYHtwcm92aWRlcn0tZG9jc2AgZGlyZWN0b3J5LiAgUmFpc2UgYSBwdWxsIHJlcXVlc3QgaW50byB0aGUgYG1haW5gIGJyYW5jaC4gIE9uY2UgbWVyZ2VkLCB0aGUgdXBkYXRlZCBkb2NzIHdpbGwgYmUgYXV0b21hdGljYWxseSBwdWJsaXNoZWQuICAKCiMjIyBSdW5uaW5nIExvY2FsbHkKCkluc3RhbGwgcGFja2FnZXM6ICAKCmBgYGJhc2gKeWFybgpgYGAKClRvIGJ1aWxkIGEgbWljcm9zaXRlIGxvY2FsbHksIHVzZSBgeWFybiBidWlsZDp7cHJvdmlkZXJ9YC4gIEZvciBleGFtcGxlLCB0byBidWlsZCB0aGUgQVdTIG1pY3Jvc2l0ZSBsb2NhbGx5LCBydW46CgpgYGAKZXhwb3J0IE5PREVfT1BUSU9OUz0tLW1heF9vbGRfc3BhY2Vfc2l6ZT00MDk2Cnlhcm4gcnVuIGJ1aWxkOmF3cwpgYGAKClRvIHJ1biBhIG1pY3Jvc2l0ZSBsb2NhbGx5LCB1c2UgYHlhcm4gc3RhcnQ6e3Byb3ZpZGVyfWAuICBGb3IgZXhhbXBsZSwgdG8gcnVuIHRoZSBBV1MgbWljcm9zaXRlIGxvY2FsbHksIHJ1bjogIAoKYGBgYmFzaAp5YXJuIHN0YXJ0OmF3cwpgYGA=
- readmeEtag: '"a3708fcc41c95bae9cb0e9ff6c4ffeed633c03067dd66e5cc9772725ab848b5e"'
- readmeLastModified: Fri, 29 Dec 2023 03:02:13 GMT
+ IyBzdGFja3FsLXJlZ2lzdHJ5LWRvY3MKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBkb2N1bWVudGF0aW9uIGZvciBTdGFja1FMIHByb3ZpZGVycywgd2hpY2ggaXMgcHVibGlzaGVkIHRvIFtyZWdpc3RyeS5zdGFja3FsLmlvXShodHRwczovL3JlZ2lzdHJ5LnN0YWNrcWwuaW8pLiAgVGhpcyB3ZWJzaXRlIGlzIGJ1aWx0IHVzaW5nIFtEb2N1c2F1cnVzIDJdKGh0dHBzOi8vZG9jdXNhdXJ1cy5pby8pLCBhIG1vZGVybiBzdGF0aWMgd2Vic2l0ZSBnZW5lcmF0b3IuICAKCiMjIEJ1aWxkIGFuZCBEZXBsb3kgU3RhdHVzCgp8IFR5cGUgfCBTdGF0dXMgfCBMaW5rIHwKfCAtLS0gfCAtLS0gfCAtLSB8CnwgR2l0SHViIEFjdGlvbnMgQnVpbGQgfCBbIVtHaXRIdWIgQWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLWRvY3MueWFtbC9iYWRnZS5zdmc/YnJhbmNoPW1haW4pXShodHRwczovL2dpdGh1Yi5jb20vc3RhY2txbC9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQtZG9jcy55YW1sKSB8IFtzdGFja3FsLXJlZ2lzdHJ5LWRvY3MvYWN0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrcWwvc3RhY2txbC1yZWdpc3RyeS1kb2NzL2FjdGlvbnMpIHwKfCBOZXRsaWZ5IERlcGxveSBCYXNlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNzVmODM4YTktNzllYS00MWRjLTk2ZjktYTQwZGZmNTBjZmNhL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXJlZ2lzdHJ5LWRvY3MvZGVwbG95cykgfCBbcmVnaXN0cnkuc3RhY2txbC5pb10oaHR0cHM6Ly9yZWdpc3RyeS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgQVdTIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvZWYxNjFjNGEtNjNlYS00YmNjLWE1Y2ItNWVhZWQzMGVkNTVmL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF3cy1kb2NzL2RlcGxveXMpIHwgW2F3cy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vYXdzLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthd3Muc3RhY2txbC5pb10oaHR0cHM6Ly9hd3Muc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEF6dXJlIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNWUyY2NlMmQtM2M1MS00NGRmLWJiMTQtNGVlOWM2MjZjYTAyL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWF6dXJlLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWRvY3Muc3RhY2txbC5pbyk8YnIvPlthenVyZS5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBBenVyZSBFeHRyYXMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMThkZmM1MC1lMWVmLTQ3NDItYmQ5NS0xOTljNjdmNGVhOTUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtYXp1cmUtZXh0cmFzLWRvY3MvZGVwbG95cykgfCBbYXp1cmUtZXh0cmFzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9henVyZS1leHRyYXMtZG9jcy5zdGFja3FsLmlvKTxici8+W2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvXShodHRwczovL2F6dXJlLWV4dHJhcy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRmlyZWJhc2UgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82ZDhmZWM0Mi1mYmEyLTRkNjItYWZlZi0zMGE4MjE4NjMzMTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZmlyZWJhc2UtZG9jcy9kZXBsb3lzKSB8IFtmaXJlYmFzZS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2UtZG9jcy5zdGFja3FsLmlvKTxici8+W2ZpcmViYXNlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZmlyZWJhc2Uuc3RhY2txbC5pbykgfCAgCnwgTmV0bGlmeSBEZXBsb3kgR2l0SHViIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvNjI1ZDdkMzgtMzdhOS00MjI0LWE5YzgtNmVlNTgxNDFiMTA5L2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLWdpdGh1Yi1kb2NzL2RlcGxveXMpIHwgW2dpdGh1Yi1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ2l0aHViLWRvY3Muc3RhY2txbC5pbyk8YnIvPltnaXRodWIuc3RhY2txbC5pb10oaHR0cHM6Ly9naXRodWIuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvb2dsZSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzAyOGUwZDMxLTYwNGItNDg1Mi04YjliLTc3YTcxZWFkNmI5My9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1nb29nbGUtZG9jcy9kZXBsb3lzKSB8IFtnb29nbGUtZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvb2dsZS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZ29vZ2xlLnN0YWNrcWwuaW9dKGh0dHBzOi8vZ29vZ2xlLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBLOFMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMTFlYTZjNS03YTQzLTQyZDUtYWM3Ni01NTUxMTIyOTViOWIvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtazhzLWRvY3MvZGVwbG95cykgfCBbazhzLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9rOHMtZG9jcy5zdGFja3FsLmlvKTxici8+W2s4cy5zdGFja3FsLmlvXShodHRwczovL2s4cy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgTmV0bGlmeSB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzLzdkODFlNTlmLWUxZGUtNDgwZi1hNmQ1LTVhNTJmODNkZWI0MC9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1uZXRsaWZ5LWRvY3MvZGVwbG95cykgfCBbbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vbmV0bGlmeS1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bbmV0bGlmeS5zdGFja3FsLmlvXShodHRwczovL25ldGxpZnkuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IE9rdGEgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84M2QzNzg4ZC1iYmNmLTQwNjMtYTJlNy02NTU3N2UzZjEzZjUvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtb2t0YS1kb2NzL2RlcGxveXMpIHwgW29rdGEtZG9jcy5zdGFja3FsLmlvXShodHRwczovL29rdGEtZG9jcy5zdGFja3FsLmlvKTxici8+W29rdGEuc3RhY2txbC5pb10oaHR0cHM6Ly9va3RhLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBTdW1vbG9naWMgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy82Yzg2NDc3NC04NDk0LTQxYmUtOGUyYy00NDFiNmQxZTM2OGMvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtc3Vtb2xvZ2ljLWRvY3MvZGVwbG95cykgfCBbc3Vtb2xvZ2ljLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9zdW1vbG9naWMtZG9jcy5zdGFja3FsLmlvKTxici8+W3N1bW9sb2dpYy5zdGFja3FsLmlvXShodHRwczovL3N1bW9sb2dpYy5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgRGlnaXRhbCBPY2VhbiB8IFshW05ldGxpZnkgU3RhdHVzXShodHRwczovL2FwaS5uZXRsaWZ5LmNvbS9hcGkvdjEvYmFkZ2VzL2ViY2FiNGVmLWQ2MTAtNDg4OC1hNDJmLTMxNDk0MmQ2OGMzMi9kZXBsb3ktc3RhdHVzKV0oaHR0cHM6Ly9hcHAubmV0bGlmeS5jb20vc2l0ZXMvc3RhY2txbC1kaWdpdGFsb2NlYW4tZG9jcy9kZXBsb3lzKSB8IFtkaWdpdGFsb2NlYW4tZG9jcy5zdGFja3FsLmlvXShodHRwczovL2RpZ2l0YWxvY2Vhbi1kb2NzLnN0YWNrcWwuaW8pPGJyLz5bZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW9dKGh0dHBzOi8vZGlnaXRhbG9jZWFuLnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBMaW5vZGUgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy9kMGI1NzNiZS0zZGZiLTQ5NWMtYTBjZS00NzhlYzdhY2VjZDgvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtbGlub2RlLWRvY3MvZGVwbG95cykgfCBbbGlub2RlLWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9saW5vZGUtZG9jcy5zdGFja3FsLmlvKTxici8+W2xpbm9kZS5zdGFja3FsLmlvXShodHRwczovL2xpbm9kZS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgVmVyY2VsIHwgWyFbTmV0bGlmeSBTdGF0dXNdKGh0dHBzOi8vYXBpLm5ldGxpZnkuY29tL2FwaS92MS9iYWRnZXMvOTFjYzMxYjctMGMyNS00NDNmLWJiMmYtNzE5MjFlZjcwODRlL2RlcGxveS1zdGF0dXMpXShodHRwczovL2FwcC5uZXRsaWZ5LmNvbS9zaXRlcy9zdGFja3FsLXZlcmNlbC1kb2NzL2RlcGxveXMpIHwgW3ZlcmNlbC1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vdmVyY2VsLWRvY3Muc3RhY2txbC5pbyk8YnIvPlt2ZXJjZWwuc3RhY2txbC5pb10oaHR0cHM6Ly92ZXJjZWwuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IEdvZGFkZHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy84MjMyNDU4ZS04ZTRmLTQ3ZjItODFiZi1iZDRhYWQ4YjI1ZDYvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZ29kYWRkeS1kb2NzL2RlcGxveXMpIHwgW2dvZGFkZHktZG9jcy5zdGFja3FsLmlvXShodHRwczovL2dvZGFkZHktZG9jcy5zdGFja3FsLmlvKTxici8+W2dvZGFkZHkuc3RhY2txbC5pb10oaHR0cHM6Ly9nb2RhZGR5LnN0YWNrcWwuaW8pIHwKfCBOZXRsaWZ5IERlcGxveSBQYWdlckR1dHkgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy83NmM4NzUyYS0zMmQ4LTQ4ZTItODFhZC0yOWI5ZThmNTNlZGQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtcGFnZXJkdXR5LWRvY3MvZGVwbG95cykgfCBbcGFnZXJkdXR5LWRvY3Muc3RhY2txbC5pb10oaHR0cHM6Ly9wYWdlcmR1dHktZG9jcy5zdGFja3FsLmlvKTxici8+W3BhZ2VyZHV0eS5zdGFja3FsLmlvXShodHRwczovL3BhZ2VyZHV0eS5zdGFja3FsLmlvKSB8CnwgTmV0bGlmeSBEZXBsb3kgSG9tZWJyZXcgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy8yMzQzZDM0ZC01MDYxLTRkODMtOThlNi00NzVmYjIxNTBjOTQvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtaG9tZWJyZXctZG9jcy9kZXBsb3lzKSB8IFtob21lYnJldy1kb2NzLnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXctZG9jcy5zdGFja3FsLmlvKTxici8+W2hvbWVicmV3LnN0YWNrcWwuaW9dKGh0dHBzOi8vaG9tZWJyZXcuc3RhY2txbC5pbykgfAp8IE5ldGxpZnkgRGVwbG95IERhdGFkb2cgfCBbIVtOZXRsaWZ5IFN0YXR1c10oaHR0cHM6Ly9hcGkubmV0bGlmeS5jb20vYXBpL3YxL2JhZGdlcy85ZTc2MTIyZC0wOWJkLTQ5MzgtYTUwZi0zYjQxOTZlOTRmMGMvZGVwbG95LXN0YXR1cyldKGh0dHBzOi8vYXBwLm5ldGxpZnkuY29tL3NpdGVzL3N0YWNrcWwtZGF0YWRvZy1kb2NzL2RlcGxveXMpIHwgW2RhdGFkb2ctZG9jcy5zdGFja3FsLmlvXShodHRwczovL2RhdGFkb2ctZG9jcy5zdGFja3FsLmlvKTxici8+W2RhdGFkb2cuc3RhY2txbC5pb10oaHR0cHM6Ly9kYXRhZG9nLnN0YWNrcWwuaW8pIHwKCgojIyBBZGRpbmcgRG9jcyBmb3IgYSBOZXcgUHJvdmlkZXIKCkFkZGluZyBkb2NzIGZvciBhIG5ldyBwcm92aWRlciByZXF1aXJlcyBjcmVhdGluZyBhIG5ldyB3ZWIgcHJvcGVydHkgKHN1YmRvbWFpbikgYW5kIHdpbGwgZm9yY2UgYW4gdXBkYXRlIHRvIHRoZSByb290L2Jhc2Ugc2l0ZSBhbmQgYWxsIG90aGVyIHByb3ZpZGVycy4gIFRoZSBzdGVwcyBhcmU6ICAKCi0gWyBdIHVwZGF0ZSBgc2NyaXB0cy9kb2NnZW4vcHJvdmlkZXJfZGF0YS5weWAgd2l0aCBtZXRhZGF0YSBmb3IgbmV3IHByb3ZpZGVyCi0gWyBdIGdlbmVyYXRlIGRvY3MgZm9yIHByb3ZpZGVyIHVzaW5nIGBjZCBzY3JpcHRzOyBzaCBkb2NnZW4uc2gge3Byb3ZpZGVyfWAKLSBbIF0gcHVibGlzaCBkb2NzIGZvciBwcm92aWRlciB1c2luZyBgY2Qgc2NyaXB0czsgc2ggcHVibGlzaC5zaCB7cHJvdmlkZXJ9YAotIFt4XSBhZGQgdGhlIG5ldyBwcm92aWRlciBkb2NzIHRvIGBkb2NzL3twcm92aWRlcn0tZG9jc2AgKGZvbGxvd2luZyBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIGV4aXN0aW5nIHByb3ZpZGVycykgKGRvbmUgYXV0b21hdGljYWxseSBieSBgc2NyaXB0cy9wdWJsaXNoLnNoYCkKLSBbeF0gdXBkYXRlIGZyb250bWF0dGVyIGluIHRoZSBgaW5kZXgubWRgIGF0IHRoZSByb290IG9mIHRoZSBuZXcgcHJvdmlkZXJzIGRvY3MsIHNldCBgc2x1Z2AgdG8gYC9wcm92aWRlcnMve3Byb3ZpZGVyfWAgYW5kIGBpZGAgdG8gYHtwcm92aWRlcn0tZG9jYCAoZG9uZSBhdXRvbWF0aWNhbGx5IGJ5IGBzY3JpcHRzL2RvY2dlbi5zaGApCi0gW3hdIHVwZGF0ZSBgc3RhY2txbC1wcm92aWRlci1yZWdpc3RyeS5tZHhgIGluIHRoZSByb290IG9mIHRoZSBuZXcgcHJvdmlkZXIgdG8gYWRkIHRoZSBgY3VycmVudFByb3ZpZGVyYCBwcm9wLCBlLmcuIGA8UmVnaXN0cnlQYWdlIGN1cnJlbnRQcm92aWRlcj0ib2t0YSIgLz5gIChkb25lIGF1dG9tYXRpY2FsbHkgYnkgYHNjcmlwdHMvZG9jZ2VuLnNoYCkKLSBbIF0gY3JlYXRlIGEgbmV3IG5ldGxpZnkgc2l0ZSAoYHN0YWNrcWwte3Byb3ZpZGVyfS1kb2NzYCkgLSB1c2UgYHlhcm4gYnVpbGQ6e3Byb3ZpZGVyfWAgYXMgdGhlIGBidWlsZCBjb21tYW5kYAotIFsgXSBzdG9wIGF1dG9tYXRpYyBidWlsZHMgZm9yIHNpdGUgaW4gTmV0bGlmeQotIFsgXSBhZGQgYE5FVExJRllgIHJlY29yZCBpbiBOZXRsaWZ5IEROUyAobWFwcGluZyBge3Byb3ZpZGVyfS1kb2NzLnN0YWNrcWwuaW9gIChQcmltYXJ5IERvbWFpbikgYW5kIGB7cHJvdmlkZXJ9LnN0YWNrcWwuaW9gIChEb21haW4gQWxpYXMpIHRvIGBzdGFja3FsLXtwcm92aWRlcn0tZG9jcy5uZXRsaWZ5LmFwcGApLCBzZWxlY3QgYEZvcmNlIEhUVFBTYAotIFsgXSBhZGQgR2l0SHViIEFjdGlvbnMgc2VjcmV0IGZvciBuZXRsaWZ5IHNpdGUgaWQgLSBgTkVUTElGWV9TSVRFX0lEX3tQUk9WSURFUn1gCi0gWyBdIGFkZCB0aGUgTmV0bGlmeSBkZXBsb3kgc3RhdHVzIGJhZGdlIHRvIHRoZSB0YWJsZSBpbiB0aGlzIGBSRUFETUVgIChzZWUgYWJvdmUpCi0gWyBdIHVwZGF0ZSB0aGUgYHByb3ZpZGVyc2AgYXJyYXkgaW4gYHNpZGViYXJzLmpzYCB3aXRoIHRoZSBuZXcgcHJvdmlkZXIKLSBbIF0gdXBkYXRlIHRoZSBgcHJvdmlkZXJzYCBhcnJheSBgc3JjL2NvbmZpZ3MvcHJvdmlkZXJzLnRzYCB3aXRoIHRoZSBuZXcgcHJvdmlkZXIKLSBbIF0gdXBkYXRlIGBwYWNrYWdlLmpzb25gIHdpdGggbmV3IGBzdGFydGAgYW5kIGBidWlsZGAgc2NyaXB0cwotIFsgXSB1cGRhdGUgYGFsbFByb3ZpZGVyc2AgaW4gYGNpLXNjcmlwdHMvZ2V0LXByb3ZpZGVycy10by1kZXBsb3kuanNgIHdpdGggdGhlIG5ldyBwcm92aWRlcgotIFsgXSBhZGQgdGhlIHJvb3Qgc2l0ZSByZWRpcmVjdHMgZm9yIHByb3ZpZGVyIHZhbml0eSB1cmxzIHRvIGAuZ2l0aHViL3dvcmtmbG93cy9idWlsZC1kb2NzLnlhbWxgIHRvIHRoZSBgYWRkIHJlZGlyZWN0cyB0byByb290IHNpdGVgIHN0ZXAgb2YgdGhlIGBkZXBsb3ktdG8tbmV0bGlmeWAgam9iCgojIyBVcGRhdGluZyBFeGlzdGluZyBQcm92aWRlciBEb2NzCgpUbyB1cGRhdGUgdGhlIGRvY3MgZm9yIGFuIGV4aXN0aW5nIHByb3ZpZGVyLCBlZGl0IHRoZSBjb3JyZXNwb25kaW5nIG1hcmtkb3duIGZpbGUgb3IgZmlsZXMgaW4gdGhlIGB7cHJvdmlkZXJ9LWRvY3NgIGRpcmVjdG9yeS4gIFJhaXNlIGEgcHVsbCByZXF1ZXN0IGludG8gdGhlIGBtYWluYCBicmFuY2guICBPbmNlIG1lcmdlZCwgdGhlIHVwZGF0ZWQgZG9jcyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcHVibGlzaGVkLiAgCgojIyMgUnVubmluZyBMb2NhbGx5CgpJbnN0YWxsIHBhY2thZ2VzOiAgCgpgYGBiYXNoCnlhcm4KYGBgCgpUbyBidWlsZCBhIG1pY3Jvc2l0ZSBsb2NhbGx5LCB1c2UgYHlhcm4gYnVpbGQ6e3Byb3ZpZGVyfWAuICBGb3IgZXhhbXBsZSwgdG8gYnVpbGQgdGhlIEFXUyBtaWNyb3NpdGUgbG9jYWxseSwgcnVuOgoKYGBgCmV4cG9ydCBOT0RFX09QVElPTlM9LS1tYXhfb2xkX3NwYWNlX3NpemU9NDA5Ngp5YXJuIHJ1biBidWlsZDphd3MKYGBgCgpUbyBydW4gYSBtaWNyb3NpdGUgbG9jYWxseSwgdXNlIGB5YXJuIHN0YXJ0Ontwcm92aWRlcn1gLiAgRm9yIGV4YW1wbGUsIHRvIHJ1biB0aGUgQVdTIG1pY3Jvc2l0ZSBsb2NhbGx5LCBydW46ICAKCmBgYGJhc2gKeWFybiBzdGFydDphd3MKYGBg
+ readmeEtag: '"b0910b301bb64f257ad010cd0f565e6867f3492df34476301f5dcb670500a5b8"'
+ readmeLastModified: Fri, 29 Dec 2023 04:25:43 GMT
repositoryId: 566164202
description: >-
StackQL provider documentation for cloud and SaaS providers available in
@@ -16597,7 +16599,7 @@
forks: 0
owner: stackql
logo: https://avatars.githubusercontent.com/u/95105302?v=4
- repoEtag: '"52f11dcd0f6253053fa7f7db887c929ea6aae689391212a7c9a89dadf0888d86"'
+ repoEtag: '"e3762480f2bd27472bfbdc0a48e09b70fb2b1dc42ed34a60e3795c28349a28f6"'
repoLastModified: Tue, 25 Jul 2023 15:04:03 GMT
category: Server Implementations
foundInMaster: true
@@ -16675,7 +16677,7 @@
owner: lornajane
logo: https://avatars.githubusercontent.com/u/172607?v=4
license: Apache-2.0
- repoEtag: '"a1461faac05a567ce58830a86c66efe731256b31a3b538866e2452632faa9f92"'
+ repoEtag: '"ad3ccd820f67f550462d6d704c8c94a1a1baa84b71ca4cc7a22eae2ff5b3bcc7"'
repoLastModified: Wed, 13 Dec 2023 16:35:09 GMT
category: Parsers
foundInMaster: true
@@ -17777,7 +17779,7 @@
owner: mulesoft-consulting
logo: https://avatars.githubusercontent.com/u/7331519?v=4
license: Unlicense
- repoEtag: '"90781cf2c767e6e00dd5fe9591638718c21453644af9e07043e4f5be87cc7bad"'
+ repoEtag: '"fb8a6c362b4999bf5fdd1f681998f6288af4a65b14563de8142e84306f63c962"'
repoLastModified: Tue, 28 Feb 2023 10:05:33 GMT
foundInMaster: true
category: Parsers
@@ -17959,7 +17961,7 @@
owner: ruiaraujo012
logo: https://avatars.githubusercontent.com/u/16304685?v=4
license: MIT
- repoEtag: '"d3f38f6dea43edca1e7504fb19d63aa820c749a258d026e53dc446bb30e14a34"'
+ repoEtag: '"17ac223015dc13ff22722df20a5aeca4b9c98f962e8969399aba0c49c15362c5"'
repoLastModified: Wed, 25 Oct 2023 22:29:05 GMT
category: Parsers
foundInMaster: true
@@ -20290,16 +20292,16 @@
Example implementations of Go servers based on generated code from OpenAPI
3 definitions
created: '2023-05-31T11:34:44Z'
- updated: '2023-12-26T06:54:15Z'
+ updated: '2023-12-29T15:46:43Z'
language: Go
archived: false
- stars: 4
+ stars: 5
watchers: 1
forks: 1
owner: ldej
logo: https://avatars.githubusercontent.com/u/18293312?v=4
- repoEtag: '"cadb6307a7c56e494f2e123a6a87a642b9a522bb7261d16b7259306a5ac1f4fa"'
- repoLastModified: Tue, 26 Dec 2023 06:54:15 GMT
+ repoEtag: '"abd58b3f7165d498191e0e8664ca565a40013eabd4c536b11a05f53edb78c788"'
+ repoLastModified: Fri, 29 Dec 2023 15:46:43 GMT
category: Parsers
foundInMaster: true
- source: openapi3 tags
@@ -21264,12 +21266,12 @@
language: C
archived: false
stars: 2
- watchers: 1
+ watchers: 2
forks: 1
owner: 37MobileTeam
logo: https://avatars.githubusercontent.com/u/85087913?v=4
license: GPL-3.0
- repoEtag: '"e9d081e2ced1e9f514e1301fd4daf669e0d1294acb04a0845624df24f84242e4"'
+ repoEtag: '"1b2d5edca1796ec3cfd13bc60a353e42cae11a5b87152b8182d36f9669f18fde"'
repoLastModified: Wed, 27 Sep 2023 03:53:43 GMT
category: Server Implementations
foundInMaster: true
@@ -22817,9 +22819,9 @@
v3: true
repositoryMetadata:
base64Readme: >-
- T3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbiBmb3IgQXp1cmUgU3RhbmRhcmQncyBBUEkuCgojIyBTdHlsZSBndWlkZQoKYHN1bW1hcnlgIHZhbHVlcyBhcmUgZXNzZW50aWFsbHkgaGVhZGluZ3MuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBzaG91bGQgYWx3YXlzIGJlIGNhcGl0YWxpemVkLiBUaGV5IHNob3VsZCBuZXZlciBlbmQgaW4gYSBwZXJpb2QuCgpgZGVzY3JpcHRpb25gIHZhbHVlcyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm9ybWFsIHNlbnRlbmNlIGZvcm1hdHRpbmcuIFRoZXkgc2hvdWxkIGFsd2F5cyBlbmQgd2l0aCBhIHBlcmlvZC4gTWFya2Rvd24gaXMgc3VwcG9ydGVkIGZvciByaWNoLXRleHQgZm9ybWF0dGluZy4gVXNlIG9uZSBzcGFjZSBiZXR3ZWVuIHNlbnRlbmNlcyAobm90IHR3bykuCgojIyBEb2NzIHNpdGUKClVSTDogaHR0cHM6Ly9henVyZS1hcGktZG9jcy5uZXRsaWZ5LmFwcC8KClVzZXMgW1JlZG9jXShodHRwczovL2dpdGh1Yi5jb20vUmVkb2NseS9yZWRvYykuCgojIyBTdG9wbGlnaHQgU3R1ZGlvCgpXZSBoYXZlIGFuIGFjY291bnQgYXQgW3N0b3BsaWdodC5pb10oaHR0cHM6Ly9zdG9wbGlnaHQuaW8vKSwgd2hpY2ggaW5jbHVkZXMgdGhlaXIgIlN0dWRpbyIgKGEgdmlzdWFsIE9wZW5BUEkgZWRpdG9yKS4KClN0b3BsaWdodCBhY2NvdW50OiBodHRwczovL2F6dXJlc3RhbmRhcmQuc3RvcGxpZ2h0LmlvLyAgClN0b3BsaWdodCBTdHVkaW86IGh0dHBzOi8vYXp1cmVzdGFuZGFyZC5zdG9wbGlnaHQuaW8vc3R1ZGlvL2FwaS1zcGVjL2VkaXQK
- readmeEtag: '"a1a3fe766808bd6451efe270ce3a2e5d1ca64c6e93317abcab1a7b323e1c1cf7"'
- readmeLastModified: Fri, 07 Jul 2023 11:08:03 GMT
+ T3BlbkFQSSAzLjAgU3BlY2lmaWNhdGlvbiBmb3IgQXp1cmUgU3RhbmRhcmQncyBBUEkuCgojIyBTdHlsZSBndWlkZQoKYHN1bW1hcnlgIHZhbHVlcyBhcmUgZXNzZW50aWFsbHkgaGVhZGluZ3MuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZyBzaG91bGQgYWx3YXlzIGJlIGNhcGl0YWxpemVkLiBUaGV5IHNob3VsZCBuZXZlciBlbmQgaW4gYSBwZXJpb2QuCgpgZGVzY3JpcHRpb25gIHZhbHVlcyBzaG91bGQgYmUgZm9ybWF0dGVkIHdpdGggbm9ybWFsIHNlbnRlbmNlIGZvcm1hdHRpbmcuIFRoZXkgc2hvdWxkIGFsd2F5cyBlbmQgd2l0aCBhIHBlcmlvZC4gTWFya2Rvd24gaXMgc3VwcG9ydGVkIGZvciByaWNoLXRleHQgZm9ybWF0dGluZy4gVXNlIG9uZSBzcGFjZSBiZXR3ZWVuIHNlbnRlbmNlcyAobm90IHR3bykuCgojIyBEb2NzIHNpdGUKClVSTDogaHR0cHM6Ly9hcGktc3BlYy0yYXQucGFnZXMuZGV2CgpVc2VzIFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpLgoKIyMgU3RvcGxpZ2h0IFN0dWRpbwoKV2UgaGF2ZSBhbiBhY2NvdW50IGF0IFtzdG9wbGlnaHQuaW9dKGh0dHBzOi8vc3RvcGxpZ2h0LmlvLyksIHdoaWNoIGluY2x1ZGVzIHRoZWlyICJTdHVkaW8iIChhIHZpc3VhbCBPcGVuQVBJIGVkaXRvcikuCgpTdG9wbGlnaHQgYWNjb3VudDogaHR0cHM6Ly9henVyZXN0YW5kYXJkLnN0b3BsaWdodC5pby8gIApTdG9wbGlnaHQgU3R1ZGlvOiBodHRwczovL2F6dXJlc3RhbmRhcmQuc3RvcGxpZ2h0LmlvL3N0dWRpby9hcGktc3BlYy9lZGl0Cg==
+ readmeEtag: '"1a9f2db910bf853e0e26e4b3ff8e3f937b75db55a6bed857f28c0f8786ad3b0b"'
+ readmeLastModified: Fri, 29 Dec 2023 09:53:35 GMT
repositoryId: 26563142
description: OpenAPI 3.0 Specification for Azure Standard’s API.
created: '2014-11-13T00:35:58Z'
@@ -22831,7 +22833,7 @@
forks: 1
owner: azurestandard
logo: https://avatars.githubusercontent.com/u/4581874?v=4
- repoEtag: '"79bbdd39dbb67329d0bdd75b95400d6534fbb6e26202818ea59642827ab9c63d"'
+ repoEtag: '"274cff1facb4e86ace080cde01e3c71845d7b18edc59ac4b412d0581206c78e7"'
repoLastModified: Sun, 20 Feb 2022 23:10:42 GMT
foundInMaster: true
category:
@@ -23649,9 +23651,9 @@
id: 263be96f5acdb8019bb4aa99faf938b6
repositoryMetadata:
base64Readme: >-
- IyBJbnRlclNlcnZlciBNeUFkbWluIENsaWVudCBJbnRlcmZhY2UKCiMjIEltcHJvdmVtZW50cyBhbmQgQmVuZWZpdHMgb3ZlciBjdXJyZW50IENsaWVudCBJbnRlcmZhY2UKCiogKipQZXJmb3JtYW5jZSBCb29zdCoqOiBTdGF0aWMgSFRNTCBnZW5lcmF0ZWQgYnkgVnVlIGNhbiBiZSBoaWdobHkgb3B0aW1pemVkIGZvciBzcGVlZCwgcmVzdWx0aW5nIGluIGZhc3RlciBwYWdlIGxvYWQgdGltZXMgYW5kIGEgbW9yZSByZXNwb25zaXZlIHVzZXIgZXhwZXJpZW5jZS4KKiAqKlJlZHVjZWQgU2VydmVyIExvYWQqKjogU2VydmluZyBzdGF0aWMgZmlsZXMgcmVxdWlyZXMgbGVzcyBzZXJ2ZXIgcHJvY2Vzc2luZyBjb21wYXJlZCB0byBkeW5hbWljYWxseSBnZW5lcmF0ZWQgcGFnZXMsIGxlYWRpbmcgdG8gcmVkdWNlZCBzZXJ2ZXIgbG9hZCBhbmQgaW1wcm92ZWQgc2NhbGFiaWxpdHkuCiogKipJbXByb3ZlZCBTRU8qKjogUHJlLXJlbmRlcmVkIHN0YXRpYyBIVE1MIGNhbiBlbmhhbmNlIHNlYXJjaCBlbmdpbmUgb3B0aW1pemF0aW9uIChTRU8pIGJ5IHByb3ZpZGluZyBjb250ZW50IHRoYXQgc2VhcmNoIGVuZ2luZXMgY2FuIGVhc2lseSBjcmF3bCBhbmQgaW5kZXguCiogKipDRE4gQ29tcGF0aWJpbGl0eSoqOiBTdGF0aWMgZmlsZXMgYXJlIHdlbGwtc3VpdGVkIGZvciBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmtzIChDRE5zKSwgd2hpY2ggY2FuIGRpc3RyaWJ1dGUgeW91ciBjb250ZW50IGdsb2JhbGx5LCByZWR1Y2luZyBsYXRlbmN5IGFuZCBpbXByb3ZpbmcgcGFnZSBsb2FkIHRpbWVzIGZvciB1c2VycyBhY3Jvc3MgdGhlIHdvcmxkLgoqICoqRW5oYW5jZWQgU2VjdXJpdHkqKjogU2VwYXJhdGluZyB0aGUgZnJvbnRlbmQgZnJvbSB0aGUgYmFja2VuZCBtaW5pbWl6ZXMgdGhlIGV4cG9zdXJlIG9mIHNlbnNpdGl2ZSBiYWNrZW5kIGxvZ2ljLCBpbXByb3ZpbmcgdGhlIG92ZXJhbGwgc2VjdXJpdHkgcG9zdHVyZSBvZiB5b3VyIGFwcGxpY2F0aW9uLgoqICoqU2NhbGFiaWxpdHkqKjogU3RhdGljIGZpbGVzIGNhbiBiZSBjYWNoZWQgZWZmaWNpZW50bHksIGFsbG93aW5nIGZvciBlYXN5IGhvcml6b250YWwgc2NhbGluZyB3aXRob3V0IHRoZSBuZWVkIHRvIHdvcnJ5IGFib3V0IHNlcnZlci1zaWRlIHN0YXRlLgoqICoqU2ltcGxpZmllZCBEZXBsb3ltZW50Kio6IERlcGxveWluZyBhIHN0YXRpYyBmcm9udGVuZCBpcyBvZnRlbiBzaW1wbGVyIGFuZCBtb3JlIHByZWRpY3RhYmxlIHRoYW4gZGVwbG95aW5nIGNvbXBsZXggc2VydmVyLXNpZGUgYXBwbGljYXRpb25zLCBsZWFkaW5nIHRvIHNtb290aGVyIHJlbGVhc2UgY3ljbGVzLgoqICoqUmVkdWNlZCBBUEkgT3ZlcmhlYWQqKjogVXRpbGl6aW5nIHRoZSBQSFAgcGxhdGZvcm0gc29sZWx5IGZvciBoYW5kbGluZyBPcGVuQVBJIEFQSSByZXF1ZXN0cyBtZWFucyB0aGF0IHRoZSBiYWNrZW5kIHNlcnZlciBpcyBvbmx5IHVzZWQgZm9yIG5lY2Vzc2FyeSBkYXRhIHJldHJpZXZhbCBhbmQgcHJvY2Vzc2luZy4KKiAqKkRldmVsb3BlciBDb2xsYWJvcmF0aW9uKio6IENsZWFyIHNlcGFyYXRpb24gb2YgZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29uY2VybnMgZW5hYmxlcyBmcm9udGVuZCBkZXZlbG9wZXJzIGFuZCBQSFAgZGV2ZWxvcGVycyB0byB3b3JrIG1vcmUgaW5kZXBlbmRlbnRseSBhbmQgY29sbGFib3JhdGl2ZWx5LgoqICoqRW5oYW5jZWQgVXNlciBFeHBlcmllbmNlKio6IFZ1ZSdzIHJlYWN0aXZlIGNvbXBvbmVudHMgYW5kIGludGVyYWN0aXZpdHkgY2FuIHN0aWxsIHByb3ZpZGUgYSBkeW5hbWljIHVzZXIgZXhwZXJpZW5jZSBldmVuIGluIGEgc3RhdGljIEhUTUwgY29udGV4dCwgbGVhZGluZyB0byBoaWdoZXIgdXNlciBlbmdhZ2VtZW50LgoqICoqTW9kdWxhciBBcmNoaXRlY3R1cmUqKjogVnVlJ3MgY29tcG9uZW50LWJhc2VkIHN0cnVjdHVyZSBwcm9tb3RlcyBtb2R1bGFyIGRlc2lnbiwgd2hpY2ggZW5oYW5jZXMgY29kZSBtYWludGFpbmFiaWxpdHkgYW5kIGFsbG93cyBmb3IgZWFzaWVyIGZ1dHVyZSB1cGRhdGVzLgoqICoqQ3Jvc3MtUGxhdGZvcm0gQ29uc2lzdGVuY3kqKjogQSBzZXBhcmF0ZSBzdGF0aWMgZnJvbnRlbmQgY2FuIGVuc3VyZSBjb25zaXN0ZW50IHVzZXIgZXhwZXJpZW5jZXMgYWNyb3NzIGRpZmZlcmVudCBkZXZpY2VzIGFuZCBwbGF0Zm9ybXMsIGNvbnRyaWJ1dGluZyB0byB1c2VyIHNhdGlzZmFjdGlvbi4KKiAqKkZyb250ZW5kIElubm92YXRpb24qKjogRm9jdXNpbmcgb24gYSBzZXBhcmF0ZSBzdGF0aWMgZnJvbnRlbmQgYWxsb3dzIGZyb250ZW5kIGRldmVsb3BlcnMgdG8gZXhwZXJpbWVudCB3aXRoIG5ldyBmZWF0dXJlcyBhbmQgVUkgaW1wcm92ZW1lbnRzIHdpdGhvdXQgZGlyZWN0bHkgaW1wYWN0aW5nIHRoZSBiYWNrZW5kLgoqICoqUmVzb3VyY2UgRWZmaWNpZW5jeSoqOiBXaXRoIGZld2VyIHNlcnZlci1zaWRlIGNvbXB1dGF0aW9ucywgdGhlIGJhY2tlbmQgY2FuIHV0aWxpemUgaXRzIHJlc291cmNlcyBtb3JlIGVmZmljaWVudGx5LCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGNvc3Qgc2F2aW5ncy4KKiAqKkVhc2llciBEZWJ1Z2dpbmcqKjogQ2xlYXIgc2VwYXJhdGlvbiBvZiByZXNwb25zaWJpbGl0aWVzIHNpbXBsaWZpZXMgZGVidWdnaW5nIGFuZCB0cm91Ymxlc2hvb3RpbmcgZWZmb3J0cywgbWFraW5nIGlzc3VlIGlkZW50aWZpY2F0aW9uIGFuZCByZXNvbHV0aW9uIG1vcmUgc3RyYWlnaHRmb3J3YXJkLgoqICoqRmxleGliaWxpdHkgaW4gSG9zdGluZyoqOiBIb3N0aW5nIGEgc3RhdGljIGZyb250ZW5kIGlzIG9mdGVuIG1vcmUgZmxleGlibGUgYW5kIGNvc3QtZWZmZWN0aXZlLCBhcyBpdCBjYW4gYmUgZGVwbG95ZWQgb24gdmFyaW91cyBob3N0aW5nIHNvbHV0aW9ucywgaW5jbHVkaW5nIHN0YXRpYyBzaXRlIGhvc3RzLgoqICoqRnV0dXJlLVByb29maW5nKio6IEEgc3RhdGljIEhUTUwgZnJvbnRlbmQgY2FuIGVuc3VyZSBsb25nLXRlcm0gc3RhYmlsaXR5IGFuZCBjb21wYXRpYmlsaXR5LCBhcyBpdCdzIGxlc3MgcHJvbmUgdG8gZGVwZW5kZW5jaWVzIGFuZCB0ZWNobm9sb2d5IGNoYW5nZXMuCiogKipPZmZsaW5lIEFjY2Vzc2liaWxpdHkqKjogQnkgc2VydmluZyBzdGF0aWMgYXNzZXRzLCB5b3UgY2FuIGVuYWJsZSB5b3VyIGFwcGxpY2F0aW9uIHRvIHdvcmsgaW4gb2ZmbGluZSBvciBsb3ctY29ubmVjdGl2aXR5IHNjZW5hcmlvcywgcHJvdmlkaW5nIGEgbW9yZSByb2J1c3QgdXNlciBleHBlcmllbmNlLgoqICoqT2ZmbGluZSBDYXBhYmlsaXRpZXMqKjogQSBzdGF0aWMgSFRNTCBmcm9udGVuZCBjYW4gYmUgZGVzaWduZWQgdG8gd29yayBvZmZsaW5lIG9yIHdpdGggaW50ZXJtaXR0ZW50IGNvbm5lY3Rpdml0eSwgZW5oYW5jaW5nIHVzZXIgZXhwZXJpZW5jZSBpbiBzaXR1YXRpb25zIHdpdGggbGltaXRlZCBpbnRlcm5ldCBhY2Nlc3MuCiogKipDYWNoaW5nIEFkdmFudGFnZXMqKjogU3RhdGljIGFzc2V0cyBjYW4gYmUgY2FjaGVkIGF0IHZhcmlvdXMgbGV2ZWxzLCBmcm9tIHRoZSBicm93c2VyIHRvIENETnMsIHJlZHVjaW5nIHRoZSBuZWVkIGZvciByZXBlYXRlZCBkYXRhIHJlcXVlc3RzIGFuZCBpbXByb3Zpbmcgb3ZlcmFsbCBsb2FkIHRpbWVzLgoqICoqVmVyc2lvbiBDb250cm9sKio6IFN0YXRpYyBhc3NldHMgY2FuIGJlIGVhc2lseSB2ZXJzaW9uZWQgYW5kIG1hbmFnZWQgdGhyb3VnaCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywgZW5zdXJpbmcgY29uc2lzdGVudCBhbmQgY29udHJvbGxlZCB1cGRhdGVzLgoqICoqSW50ZXJuYXRpb25hbGl6YXRpb24qKjogQSBzdGF0aWMgZnJvbnRlbmQgY2FuIGJlIHN0cnVjdHVyZWQgdG8gc3VwcG9ydCBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9uLCBjYXRlcmluZyB0byBhIGdsb2JhbCBhdWRpZW5jZSB3aXRoIGVhc2UuCiogKipDb3N0IFNhdmluZ3MqKjogUmVkdWNlZCBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGNhbiBsZWFkIHRvIGNvc3Qgc2F2aW5ncyBvbiBzZXJ2ZXIgcmVzb3VyY2VzLCBlc3BlY2lhbGx5IHdoZW4gZGVwbG95aW5nIG9uIGNsb3VkIHBsYXRmb3JtcyBvciBob3N0aW5nIHNlcnZpY2VzLgoqICoqUHJlZGljdGFibGUgQmVoYXZpb3IqKjogU3RhdGljIGZyb250ZW5kcyB0ZW5kIHRvIG9mZmVyIG1vcmUgcHJlZGljdGFibGUgYmVoYXZpb3IsIGFzIHRoZXkgYXJlIG5vdCBhZmZlY3RlZCBieSBzZXJ2ZXItc2lkZSBjaGFuZ2VzIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSB1c2VyIGludGVyZmFjZS4KKiAqKkJyb3dzZXIgQ29tcGF0aWJpbGl0eSoqOiBBIHdlbGwtZGVzaWduZWQgc3RhdGljIGZyb250ZW5kIGNhbiBlbnN1cmUgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IHdlYiBicm93c2VycywgcmVkdWNpbmcgdGhlIG5lZWQgZm9yIGV4dGVuc2l2ZSBjcm9zcy1icm93c2VyIHRlc3RpbmcuCiogKipUaGlyZC1QYXJ0eSBJbnRlZ3JhdGlvbioqOiBJbnRlZ3JhdGluZyB0aGlyZC1wYXJ0eSBzZXJ2aWNlcyBhbmQgd2lkZ2V0cyBpbnRvIGEgc3RhdGljIGZyb250ZW5kIGlzIG9mdGVuIHNpbXBsZXIgYW5kIGxlc3MgcHJvbmUgdG8gY29uZmxpY3RzLgoqICoqTWljcm9zZXJ2aWNlcyBDb21wYXRpYmlsaXR5Kio6IEEgbW9kdWxhciBzdGF0aWMgZnJvbnRlbmQgYWxpZ25zIHdlbGwgd2l0aCBtaWNyb3NlcnZpY2VzIGFyY2hpdGVjdHVyZSwgYWxsb3dpbmcgZm9yIHNlcGFyYXRlIGRldmVsb3BtZW50IGFuZCBkZXBsb3ltZW50IG9mIHZhcmlvdXMgY29tcG9uZW50cy4KKiAqKlNlY3VyaXR5IFBhdGNoaW5nKio6IFNlcGFyYXRpbmcgdGhlIGZyb250ZW5kIGZyb20gdGhlIGJhY2tlbmQgc2ltcGxpZmllcyBzZWN1cml0eSB1cGRhdGVzIGFuZCBwYXRjaGluZywgYXMgdnVsbmVyYWJpbGl0aWVzIGluIHRoZSBmcm9udGVuZCB3b24ndCBkaXJlY3RseSBpbXBhY3QgdGhlIGJhY2tlbmQgbG9naWMuCiogKipRdWljayBEZXBsb3ltZW50Kio6IERlcGxveWluZyBzdGF0aWMgZmlsZXMgaXMgZ2VuZXJhbGx5IGZhc3RlciBhbmQgcmVxdWlyZXMgZmV3ZXIgcmVzb3VyY2VzIGNvbXBhcmVkIHRvIGRlcGxveWluZyBjb21wbGV4IHNlcnZlci1zaWRlIGFwcGxpY2F0aW9ucy4KKiAqKkNvbnRpbnVvdXMgSW50ZWdyYXRpb24vQ29udGludW91cyBEZXBsb3ltZW50IChDSS9DRCkqKjogQ0kvQ0QgcGlwZWxpbmVzIGZvciBhIHN0YXRpYyBmcm9udGVuZCBjYW4gYmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBlYXNpbHkgYXV0b21hdGVkLCBsZWFkaW5nIHRvIG1vcmUgZWZmaWNpZW50IGRldmVsb3BtZW50IHdvcmtmbG93cy4KKiAqKlJlZHVjZWQgTGF0ZW5jeSoqOiBXaXRoIHJlZHVjZWQgc2VydmVyLXNpZGUgcHJvY2Vzc2luZywgbGF0ZW5jeSBjYW4gYmUgbWluaW1pemVkLCBjb250cmlidXRpbmcgdG8gYSBtb3JlIHJlc3BvbnNpdmUgdXNlciBleHBlcmllbmNlLgoqICoqRWFzaWVyIEEvQiBUZXN0aW5nKio6IEEgc3RhdGljIGZyb250ZW5kIGNhbiBmYWNpbGl0YXRlIEEvQiB0ZXN0aW5nIGFuZCBleHBlcmltZW50YXRpb24gd2l0aG91dCB0aGUgY29tcGxleGl0aWVzIG9mIGR5bmFtaWMgc2VydmVyLXNpZGUgcmVuZGVyaW5nLgoqICoqQ29udGVudCBNYW5hZ2VtZW50Kio6IFNlcGFyYXRpbmcgZnJvbnRlbmQgYW5kIGJhY2tlbmQgYWxsb3dzIGNvbnRlbnQgbWFuYWdlbWVudCBzeXN0ZW1zIChDTVMpIHRvIGZvY3VzIG9uIGNvbnRlbnQgd2l0aG91dCBiZWluZyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGxvZ2ljLgoqICoqU2ltcGxpZmllZCBCYWNrZW5kKio6IEJ5IG9mZmxvYWRpbmcgZnJvbnRlbmQgcmVuZGVyaW5nIHRvIFZ1ZSwgdGhlIFBIUCBiYWNrZW5kIGNhbiBmb2N1cyBvbiBkYXRhIHByb2Nlc3NpbmcgYW5kIEFQSSBmdW5jdGlvbmFsaXR5LCBzaW1wbGlmeWluZyBpdHMgcm9sZS4KKiAqKkNsaWVudC1TaWRlIEVuaGFuY2VtZW50cyoqOiBWdWUncyBjbGllbnQtc2lkZSByb3V0aW5nIGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGNhbiBlbmhhbmNlIG5hdmlnYXRpb24gYW5kIGRhdGEgaGFuZGxpbmcgd2l0aGluIHRoZSBmcm9udGVuZC4KKiAqKlJlZHVjZWQgQ29tcGxleGl0eSoqOiBBIHN0YXRpYyBmcm9udGVuZCBzaW1wbGlmaWVzIHRoZSB0ZWNobmljYWwgc3RhY2ssIHJlZHVjaW5nIHRoZSBvdmVyYWxsIGNvbXBsZXhpdHkgb2YgdGhlIGFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZS4KKiAqKkVhc2llciBDb2RlIEF1ZGl0cyoqOiBDbGVhciBzZXBhcmF0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29kZSBtYWtlcyBjb2RlIGF1ZGl0cyBhbmQgc2VjdXJpdHkgcmV2aWV3cyBtb3JlIG1hbmFnZWFibGUuCiogKipCcmFuZGluZyBhbmQgQ3VzdG9taXphdGlvbioqOiBBIHNlcGFyYXRlIGZyb250ZW5kIGFsbG93cyBmb3IgZWFzaWVyIGJyYW5kaW5nIGFuZCBjdXN0b21pemF0aW9uLCBhcyBmcm9udGVuZCBjaGFuZ2VzIHdvbid0IGRpcmVjdGx5IGFmZmVjdCBiYWNrZW5kIGZ1bmN0aW9uYWxpdHkuCgojIyBGQVEKCiMjIyBHZXR0aW5nIGEgYmxhbmsgcGFnZSB3aGVuIGxvYWRpbmcgdGhlIHNpdGUKCkNoZWNrIHlvdXIgYWQgYmxvY2tlciBvciBwcml2YWN5IGFkZG9ucywgdGhleSBtaWdodCBuZWVkIHRvIGJlIGRpc2FibGVkIGZvciB0aGlzIHNpdGUuCgojIyBEZXZlbG9wbWVudAoKKiBbdml0ZWpzL2F3ZXNvbWUtdml0ZTog4pqh77iPIEEgY3VyYXRlZCBsaXN0IG9mIGF3ZXNvbWUgdGhpbmdzIHJlbGF0ZWQgdG8gVml0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL3ZpdGVqcy9hd2Vzb21lLXZpdGUpCgojIyMgT3BlbkFQSSBTcGVjCgojIyMjIEFQSSBHVUkgRGVzaWduZXJzCgoqIFtGcmVlIE9ubGluZSBWaXN1YWwgQVBJIERlc2lnbmVyIGZvciBPcGVuQVBJIGFuZCBBc3luY0FQSSBTcGVjaWZpY2F0aW9ucyAtIEFwaUJsZHJdKGh0dHBzOi8vd3d3LmFwaWJsZHIuY29tLykKKiBbbXkgSW50ZXJTZXJ2ZXIgU2VydmljZXMgTWFuYWdlbWVudCBBUEkgLSBteWFkbWluYXBpIC0gRWRpdCAtIEZyb2dtZW50XShodHRwczovL3d3dy5mcm9nbWVudC5jb20vZWRpdC9teWFkbWluYXBpL2ludGVyc2VydmVyX215YWRtaW5fYXBpLmpzb24jaW5mby55YW1sKQoqIFtBUElHaXQgLSBBUEkgRG9jdW1lbnRdKGh0dHBzOi8vYXBwLmFwaWdpdC5jb20vcmVwb3NpdG9yeS9kZXRhaW4vbXlhZG1pbi1vcGVuYXBpLXNwZWMvYXBpL29wZW5hcGkueWFtbCkKKiBbQXBpY3VyaW8gU3R1ZGlvIC0gQVBJIEVkaXRvciA6OiBteSBJbnRlclNlcnZlciBTZXJ2aWNlcyBNYW5hZ2VtZW50IEFQSV0oaHR0cHM6Ly9zdHVkaW8uYXBpY3VyLmlvL2FwaXMvOTM2MTgvZWRpdG9yKQoKQWZ0ZXIgdGhpcyBpcyBkb25lIG9uIGFsbCBvZiB0aGUgcmVwb3MgcGljayB0aGUgYmVzdCBvbmUgYW5kIHNldGl0IHVwIC4uIHRyeSB0byBwcmVzZXJ2ZSBnaXQgaGlzdG9yeQoKIyMjIFRPRE8gUm9hZC1NYXAKCiogKioxLjAtYWxwaGEqKiBNaWxlU3RvbmUKICAqIG9yZGVyIHNlcnZpY2UgcGFnZXMKICAgICogWyBdIHNlcnZlcgogICAgKiBbIF0gZG9tYWluCiAgKiBbIF0gY2FydC9paWRzIHBhcnNlZCBhbmQgaGFuZGxlZAoqICoqMS4wLWJldGEqKiBNaWxlU3RvbmUKICAqIFsgXSB1cGRhdGUgcmVzcG9uc2UgY29kZXMgdG8gbWF0Y2ggdGFibGUgYmVsb3cKICAqIFsgXSBsb2FkaW5nIC8gbm8gZW50cmllcyBtZXNzYWdlcwogICogc2VydmljZXMgbGlzdCBwYWdlcwogICAgKiBkYXRhdGFibGVzIG9yIGVxdWl2YWxlbnQKICAgICAgKiBbeF0gZmlsdGVyaW5nCiAgICAgICogWyBdIHNvcnRpbmcKICAgICAgKiBbIF0gcGFnaW5hdGlvbgogICAgICAqIFsgXSBwcmludC9leHBvcnQKKiAqKjEuMC1zdGFibGUqKiBNaWxlU3RvbmUKICAqIFsgXSBzZXR1cCBnaXRodWIgYWN0aW9ucyBhbmQgaG9va3MgZm9yIGF1dG9tYXRlZCB0ZXN0aW5nCiAgKiBbIF0gbWFrZSBzdXJlIGFmZmlsaWF0ZSB0cmFja2luZyBzdGlsbCB3b3JrcwogICogWyBdIGFuYWx5dGljcwogICogWyBdIGdldCB2YXJpb3VzIGxpYnMgbG9hZGluZyB3aXRoIGltcG9ydHMgaW5zdGVhZWQgb2YgZGlyZWN0bHkgY2FsbGVkIHdpdGggc2NyaXRwdHMgYW5kIGxpbmsgdGFncwogICogWyBdIG1pbmltaXplIGFwaSBmaWVsZHMgaW4gcmVxdWVzdHMvcmVzcG9uc2VzIGFuZCBmaWx0ZXIgdGhlbSBmb3Igc2VjdXJpdHkKICAqIFsgXSBhcGkgZmluYWxpemVkCiogRnV0dXJlIFRhc2tzCiAgKiBbIF0gaW1wcm92ZSB3ZWJwYWNraW5nCiAgKiBbIF0gbW92ZSB0eXBlIGRlZmluaXRpb25zIGludG8gL3R5cGVzPwogICogWyBdIHV0aWxpemUgdGhlIGZvcm0gdmFsaWRhdGlvbiBzdHVmZgogICogWyBdIHJlcGxhY2UganF1ZXJ5IHR5cGUgY2FsbHMgd2l0aCBidWlsdCBpbiB0ZW1wbGF0ZSBoYW5kbGluZyBhbmQgc3VjaAogICogWyBdIGJzNS9hZG1pbmx0ZTQgaHR0cHM6Ly9naXRodWIuY29tL2NvbGlmZi9ib290c3RyYXAtNS1taWdyYXRlLXRvb2wvYmxvYi9tYWluL2d1bHBmaWxlLmpzICBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9KdWFuLWVzY29iYXI5NC9mNzY1MzVhMTI2NGFjNmY3MjUxYzY0M2FmNTBjMTg0ZAogICogWyBdIGlvbmljIGNhcGFjaXRvcgogICAgKiBbIF0gYW5kcm9pZCBidWlsZAogICAgKiBbIF0gaW9zIGJ1aWxkCiAgKiBbeF0gZWxlY3Ryb24gYnVpbGQKICAgICogW3hdIHdpbmRvd3MvbGludXgvbWFjIGJ1aWxkcwogICAgKiBbIF0gYXV0b21hdGVkIGJ1aWxkcwogICAgKiBbeF0ganMvY3NzIGFzc2V0cyBsb2FkZWQgbG9jYWxseQoKCltlbGVjdHJvbi12aXRlL2VsZWN0cm9uLXZpdGUtdnVlOiDwn6WzIFJlYWxseSBzaW1wbGUgRWxlY3Ryb24gKyBWaXRlICsgVnVlIGJvaWxlcnBsYXRlLl0oaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uLXZpdGUvZWxlY3Ryb24tdml0ZS12dWUpCltjYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZTog8J+TmiBSZWFsbHkgc2ltcGxlIEVsZWN0cm9uICsgVml0ZSBib2lsZXJwbGF0ZS5dKGh0dHBzOi8vZ2l0aHViLmNvbS9jYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZSkKW3lpbmdwZW5nc2hhL2VsZWN0cm9uLXZpdGUtcXVpY2stc3RhcnQ6IOKaoSBGdWxsIHN0YWNrIHVzZXMgVml0ZSB0byBydW4gRWxlY3Ryb24gYXBwbGljYXRpb24sIGluY2x1ZGluZyBtYWluIHByb2Nlc3MuXShodHRwczovL2dpdGh1Yi5jb20veWluZ3BlbmdzaGEvZWxlY3Ryb24tdml0ZS1xdWljay1zdGFydCkKW3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZTogVGhpcyBwcm9qZWN0IGlzIGEgdnVlMyArIFZpdGUgKyBlbGVjdHJvbiBwcm9qZWN0IHRlbXBsYXRlIGNvbXBvc2VkIG9mIFZpdGUgYW5kIHJvbGx1cC4gSXQgaGFzIHRoZSBzYW1lIGZ1bmN0aW9ucyBhcyBteSBwcmV2aW91cyBlbGVjdHJvbitWdWUrdGVtcGxhdGUgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZSkKW0FyY2hlckd1L2Zhc3Qtdml0ZS1lbGVjdHJvbjogVml0ZSArIEVsZWN0cm9uIHdpdGggZXNidWlsZCwgc28gZmFzdCEg4pqhXShodHRwczovL2dpdGh1Yi5jb20vQXJjaGVyR3UvZmFzdC12aXRlLWVsZWN0cm9uKQpbY2F3YS05My92aXRlLWVsZWN0cm9uLWJ1aWxkZXI6IFNlY3VyZSBib2lsZXJwbGF0ZSBmb3IgRWxlY3Ryb24gYXBwIGJhc2VkIG9uIFZpdGUuIFR5cGVTY3JpcHQgKyBWdWUvUmVhY3QvQW5ndWxhci9TdmVsdGUvVmFuaWxsYV0oaHR0cHM6Ly9naXRodWIuY29tL2Nhd2EtOTMvdml0ZS1lbGVjdHJvbi1idWlsZGVyLykKW2VsZWN0cm9uLXZpdGUvdml0ZS1wbHVnaW4tZWxlY3Ryb24tcmVuZGVyZXI6IFN1cHBvcnQgdXNlIE5vZGUuanMgQVBJIGluIEVsZWN0cm9uLVJlbmRlcmVyXShodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24tdml0ZS92aXRlLXBsdWdpbi1lbGVjdHJvbi1yZW5kZXJlcikKW0RlbHV6ZS9lbGVjdHJvbi12dWUtdGVtcGxhdGU6IFNpbXBsZSBWdWUzICsgRWxlY3Ryb24gc3RhcnRlciB0ZW1wbGF0ZSBpbiBUeXBlU2NyaXB0LCBpbmNsdWRpbmcgVml0ZUpTIGFuZCBFbGVjdHJvbiBCdWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vRGVsdXplL2VsZWN0cm9uLXZ1ZS10ZW1wbGF0ZSkKW3RhZGE1aGkvdml0cm9uOiBUaGlzIGlzIGEgbGlicmFyeSB0byBidWlsZCAod2luLCBsaW51eCwgbWFjKSBkZXNrdG9wIGFwcHMgZm9yIG1vZGVybiB3ZWIgcHJvamVjdHMgd2l0aCB2aXRlIGFuZCBlbGVjdHJvbi5dKGh0dHBzOi8vZ2l0aHViLmNvbS90YWRhNWhpL3ZpdHJvbikKW2pvb3kyL3Z1dHJvbjog8J+SmiBRdWljayBTdGFydCBUZW1wbGF0ZXMgZm9yIFZpdGUgKyBFbGVjdHJvbiArIFZ1ZSAzICsgVnVldGlmeSArIFR5cGVTY3JpcHQuIFZ1dHJvbiBpcyBhIHByZWNvbmZpZ3VyZWQgdGVtcGxhdGUgZm9yIGRldmVsb3BpbmcgRWxlY3Ryb24gY3Jvc3MtcGxhdGZvcm0gZGVza3RvcCBhcHBzLiBJdCB1c2VzIFZ1ZSAzIGFuZCBhbGxvd3MgeW91IHRvIGJ1aWxkIGEgZmFzdCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB3aXRoIGxpdHRsZSBlZmZvcnQuXShodHRwczovL2dpdGh1Yi5jb20vam9veTIvdnV0cm9uKQpbY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luOiBIaWdoLXBlcmZvcm1hbmNlLCBlc2J1aWxkLWJhc2VkIFZpdGUgRWxlY3Ryb24gcGx1Z2luXShodHRwczovL2dpdGh1Yi5jb20vY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luKQoKIyMjIFBhZ2UgU3RhdHVzCgpBUEkgU3BlYyBDaGVja3MKKiBSZXF1ZXN0IEJvZHkKKiBTdWNjZXNzIFJlc3BvbnNlCiogRXJyb3IgUmVzcG9uc2VzCiogRXhhbXBsZXMKKiBEZXRhaWxlZCBEb2N1bWVudGF0aW9uCiogT3B0aW1pemUgVHlwZXMKKiBQYXRocwogICogc3VtbWFyeSBzZXQKICAqIGRlc2NyaXB0aW9uIHNldAogICogcGFyYW1ldGVycwogICAgKiBkZXNjcmlwdGlvbgogICAgKiBzY2hlbWEgdHlwZQogICAgKiBleGFtcGxlCiAgICAqIGxpbmtzCiAgKiBtZXRob2RzCiAgICAqIHN1bW1hcnkgc2V0CiAgICAqIGRlc2NyaXB0aW9uIHNldAogICAgKiB0YWcgc2V0CiAgICAqIHJlcXVlc3QgdHlwZXMganNvbitmb3JtCiAgICAqIHJlcXVlc3QgYm9keSBkZWZpbnRpb24KICAgICogcmVxdWVzdCBib2R5IGRlc2NyaXB0aW9uIChpbmhlcml0YWJsZSkKICAgICogcmVxdWVzdCBib2R5IGV4YW1wbGUgKGluaGVyaXRhYmxlKQogICAgKiByZXNwb25zZSBzdWNjZXNzIGRlZmluaXRpb24gKGluaGVyaXRhYmxlKQogICAgKiByZXNwb25zZSBzdWNjZXNzIGV4YW1wbGUgKGluaGVyaXRhYmxlKQogICAgKiBsaW5rcwoqIFNjaGVtYXMKICAgICogc3VtbWFyeSBzZXQKICAgICogZGVzY3JpcHRpb24gc2V0CiAgICAqIGV4YW1wbGUgc2V0CiAgICAqIHJlcXVpcmVkIHNldAogICAgKiBsaW5rcwoqIFRhZ3MKICAqIGRldGFpbGVkIGRlc2NyaXB0aW9ucwoKQVBJIENhbGwgQ2hlY2tzCiogV29ya2luZwoqIFNlY3VyZQogICogZGIgZXNjYXBpbmcKICAqIGh0bWwgZmlsdGVyaW5nCiogU3VjY2VzcyBSZXNwb25zZQoqIEVycm9yIFJlc3Nwb25zZXMKKiBPcHRpbWl6ZSBUeXBlcwoKCiogV29ya2luZyBzdGF0dXMgZG9lcyBub3QgaW5jbHVkZSB0aGUgZXhwb3J0L3NvcnRpbmcgcmVsYXRlZCBvcHRpb25zIG9uIHRoZSB2aWV3IHNlcnZpY2UgbGlzdCB0eXBlIHBhZ2VzCgp8IFVybCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgV29ya2luZyB8IEFQSSBDYWxsIHwgQVBJIFNwZWMgfCBCcmVhZGNydW0gfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLSB8IC0tLS0tLS0tIHwgLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAp8IC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9sb2dpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCAgICAgICAgICAgfAp8IC9yZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCAgICAgICAgICAgfAp8IC9zdWRvLzpzZXNzaW9uSWQgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfAp8IC9hY2NvdW50L2luZm8gICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hY2NvdW50L3Bhc3MgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hY2NvdW50L3NldHRpbmdzICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9hY2NvdW50L3VzZXJuYW1lICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9jYXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9jYXJ0Lzo6aWlkcyAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9pbnZvaWNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9wYXltZW50X3R5cGVzICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9wcmVwYXlzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9wYXkvOm1ldGhvZC86aW52b2ljZXMgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC90aWNrZXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC90aWNrZXRzLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC90aWNrZXRzL25ldyAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kbnMvOmlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUvYmFubmVyLzppZCAgICAgICAgICAgICAgIHwgWyBdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvYmFubmVycyAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvZmFxICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUvbGFuZGluZ19wZyAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvcGF5bWVudF9zZXR1cCAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvcmljaF9yZXBvcnQgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvc2FsZXNfZ3JhcGggICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvc2FsZXNfcmVwb3J0ICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvc3RhdHVzX2xlZ2VuZCAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUvdG9zICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUvdHJhZmZpY19ncmFwaCAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvd2ViX3RyYWZmaWMgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzL29yZGVyICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC9jb250YWN0ICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9kbnNzZWMgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC9uYW1lc2VydmVycyAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9yZW5ldyAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC90cmFuc2ZlciAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC93aG9pcyAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zL29yZGVyICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zL29yZGVyLzpkb21haW4gICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zL29yZGVyLzpkb21haW4vOnJlZ1R5cGUgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL2NhbmNlbCAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL2NoYW5nZV9pcCAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL2ludm9pY2VzICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL3dlbGNvbWVfZW1haWwgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvb3JkZXIgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvY2FuY2VsICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvY2hhbmdlX2lwICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvY2hhbmdlX29zICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy9vcmRlciAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy9vcmRlci86Y2F0VGFnICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9tYWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZC9hbGVydHMgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9tYWlsLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZC9kZW55X3J1bGVzICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9tYWlsLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsL29yZGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQvYmFja3VwICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvYmFja3VwcyAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvY2FuY2VsICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQvY2hhbmdlX3RpbWV6b25lICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvZWplY3RfY2QgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvaW5zZXJ0X2NkICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQvcmVpbnN0YWxsX29zICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVzZXRfcGFzc3dvcmQgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVzdGFydCAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVzdG9yZSAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmV2ZXJzZV9kbnMgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvc2V0dXBfdm5jICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvc3RhcnQgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvc3RvcCAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvdHJhZmZpY191c2FnZSAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvdmlld19kZXNrdG9wICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy9vcmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9iYW5kd2lkdGhfZ3JhcGggICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9pcG1pX2xpdmUgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9yZXZlcnNlX2RucyAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9zZXJ2ZXJzL29yZGVyICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkL2NhbmNlbCAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zc2wvOmlkL2NoYW5nZV9hcHByb3Zlcl9lbWFpbCAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkL2ludm9pY2VzICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zc2wvOmlkL3Jlc2VuZF9hcHByb3Zlcl9lbWFpbCAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkL3dlbGNvbWVfZW1haWwgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9zc2wvb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2JhY2t1cCAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2JhY2t1cHMgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2Jsb2NrX3NtdHAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2J1eV9oZF9zcGFjZSAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2J1eV9pcCAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NhbmNlbCAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV9ob3N0bmFtZSAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV9yb290X3Bhc3N3b3JkICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV90aW1lem9uZSAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV93ZWJ1em9fcGFzc3dvcmQgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2Rpc2FibGVfY2QgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2Rpc2FibGVfcXVvdGEgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2VqZWN0X2NkICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2VuYWJsZV9xdW90YSAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2luc2VydF9jZCAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2ludm9pY2VzICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3JlaW5zdGFsbF9vcyAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc2V0X3Bhc3N3b3JkICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc3RhcnQgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc3RvcmUgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3JldmVyc2VfZG5zICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3NldHVwX3ZuYyAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3NsaWNlcyAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3N0b3AgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3RyYWZmaWNfdXNhZ2UgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3ZpZXdfZGVza3RvcCAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL3dlbGNvbWVfZW1haWwgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvYnV5X2lwICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvY2FuY2VsICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvZG93bmxvYWRfYmFja3VwcyAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvbG9naW4gICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvbWlncmF0aW9uICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvcmV2ZXJzZV9kbnMgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy9vcmRlciAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAoKIyMjIEFQSSBSZXNwb25zZSBIVFRQIFN0YXR1cyBDb2RlcwoKIyMjIyBDb21tb25seSBVc2VkIHdpdGggQVBJCgp8IEhUVFAgVmVyYiB8IENSVUQgICAgICAgICAgIHwgRW50aXJlIENvbGxlY3Rpb24gKGUuZy4gL3ZwcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNwZWNpZmljIEl0ZW0gKGUuZy4gL3Zwcy97aWR9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAtLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgUE9TVCAgICAgIHwgQ3JlYXRlICAgICAgICAgfCAyMDEgKENyZWF0ZWQpLCAnTG9jYXRpb24nIGhlYWRlciB3aXRoIGxpbmsgdG8gL2N1c3RvbWVycy97aWR9IGNvbnRhaW5pbmcgbmV3IElELiAgICAgICAgICAgICAgICAgICAgIHwgNDA0IChOb3QgRm91bmQpLCA0MDkgKENvbmZsaWN0KSBpZiByZXNvdXJjZSBhbHJlYWR5IGV4aXN0cy4uICAgICAgICAgICAgICAgfAp8IEdFVCAgICAgICB8IFJlYWQgICAgICAgICAgIHwgMjAwIChPSyksIGxpc3Qgb2YgY3VzdG9tZXJzLiBVc2UgcGFnaW5hdGlvbiwgc29ydGluZyBhbmQgZmlsdGVyaW5nIHRvIG5hdmlnYXRlIGJpZyBsaXN0cy4gICAgICAgICAgICB8IDIwMCAoT0spLCBzaW5nbGUgY3VzdG9tZXIuIDQwNCAoTm90IEZvdW5kKSwgaWYgSUQgbm90IGZvdW5kIG9yIGludmFsaWQuICAgIHwKfCBQVVQgICAgICAgfCBVcGRhdGUvUmVwbGFjZSB8IDQwNSAoTWV0aG9kIE5vdCBBbGxvd2VkKSwgdW5sZXNzIHlvdSB3YW50IHRvIHVwZGF0ZS9yZXBsYWNlIGV2ZXJ5IHJlc291cmNlIGluIHRoZSBlbnRpcmUgY29sbGVjdGlvbi4gfCAyMDAgKE9LKSBvciAyMDQgKE5vIENvbnRlbnQpLiA0MDQgKE5vdCBGb3VuZCksIGlmIElEIG5vdCBmb3VuZCBvciBpbnZhbGlkLiB8CnwgUEFUQ0ggICAgIHwgVXBkYXRlL01vZGlmeSAgfCA0MDUgKE1ldGhvZCBOb3QgQWxsb3dlZCksIHVubGVzcyB5b3Ugd2FudCB0byBtb2RpZnkgdGhlIGNvbGxlY3Rpb24gaXRzZWxmLiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAwIChPSykgb3IgMjA0IChObyBDb250ZW50KS4gNDA0IChOb3QgRm91bmQpLCBpZiBJRCBub3QgZm91bmQgb3IgaW52YWxpZC4gfAp8IERFTEVURSAgICB8IERlbGV0ZSAgICAgICAgIHwgNDA1IChNZXRob2QgTm90IEFsbG93ZWQpLCB1bmxlc3MgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSB3aG9sZSBjb2xsZWN0aW9uLS0tbm90IG9mdGVuIGRlc2lyYWJsZS4gICAgICB8IDIwMCAoT0spLiA0MDQgKE5vdCBGb3VuZCksIGlmIElEIG5vdCBmb3VuZCBvciBpbnZhbGlkLiAgICAgICAgICAgICAgICAgICAgIHwKCiogKioyMDAgKE9LKSoqIEl0IGluZGljYXRlcyB0aGF0IHRoZSBSRVNUIEFQSSBzdWNjZXNzZnVsbHkgY2FycmllZCBvdXQgd2hhdGV2ZXIgYWN0aW9uIHRoZSBjbGllbnQgcmVxdWVzdGVkIGFuZCB0aGF0IG5vIG1vcmUgc3BlY2lmaWMgY29kZSBpbiB0aGUgMnh4IHNlcmllcyBpcyBhcHByb3ByaWF0ZS4gVW5saWtlIHRoZSAyMDQgc3RhdHVzIGNvZGUsIGEgMjAwIHJlc3BvbnNlIHNob3VsZCBpbmNsdWRlIGEgcmVzcG9uc2UgYm9keS4gVGhlIGluZm9ybWF0aW9uIHJldHVybmVkIHdpdGggdGhlIHJlc3BvbnNlIGlzIGRlcGVuZGVudCBvbiB0aGUgbWV0aG9kIHVzZWQgaW4gdGhlIHJlcXVlc3QsIGZvciBleGFtcGxlOiAgR0VUIGFuIGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgaXMgc2VudCBpbiB0aGUgcmVzcG9uc2UsIEhFQUQgdGhlIGVudGl0eS1oZWFkZXIgZmllbGRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBhcmUgc2VudCBpbiB0aGUgcmVzcG9uc2Ugd2l0aG91dCBhbnkgbWVzc2FnZS1ib2R5LCBQT1NUIGFuIGVudGl0eSBkZXNjcmliaW5nIG9yIGNvbnRhaW5pbmcgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aW9uLCBhbmQgVFJBQ0UgYW4gZW50aXR5IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcyByZWNlaXZlZCBieSB0aGUgZW5kIHNlcnZlci4KKiAqKjIwMSAoQ3JlYXRlZCkqKiBBIFJFU1QgQVBJIHJlc3BvbmRzIHdpdGggdGhlIDIwMSBzdGF0dXMgY29kZSB3aGVuZXZlciBhIHJlc291cmNlIGlzIGNyZWF0ZWQgaW5zaWRlIGEgY29sbGVjdGlvbi4gVGhlcmUgbWF5IGFsc28gYmUgdGltZXMgd2hlbiBhIG5ldyByZXNvdXJjZSBpcyBjcmVhdGVkIGFzIGEgcmVzdWx0IG9mIHNvbWUgY29udHJvbGxlciBhY3Rpb24sIGluIHdoaWNoIGNhc2UgMjAxIHdvdWxkIGFsc28gYmUgYW4gYXBwcm9wcmlhdGUgcmVzcG9uc2UuIFRoZSBuZXdseSBjcmVhdGVkIHJlc291cmNlIGNhbiBiZSByZWZlcmVuY2VkIGJ5IHRoZSBVUkkocykgcmV0dXJuZWQgaW4gdGhlIGVudGl0eSBvZiB0aGUgcmVzcG9uc2UsIHdpdGggdGhlIG1vc3Qgc3BlY2lmaWMgVVJJIGZvciB0aGUgcmVzb3VyY2UgZ2l2ZW4gYnkgYSBMb2NhdGlvbiBoZWFkZXIgZmllbGQuIFRoZSBvcmlnaW4gc2VydmVyIE1VU1QgY3JlYXRlIHRoZSByZXNvdXJjZSBiZWZvcmUgcmV0dXJuaW5nIHRoZSAyMDEgc3RhdHVzIGNvZGUuIElmIHRoZSBhY3Rpb24gY2Fubm90IGJlIGNhcnJpZWQgb3V0IGltbWVkaWF0ZWx5LCB0aGUgc2VydmVyIFNIT1VMRCByZXNwb25kIHdpdGggYSAyMDIgKEFjY2VwdGVkKSByZXNwb25zZSBpbnN0ZWFkLgoqICoqMjAyIChBY2NlcHRlZCkqKiBBIDIwMiByZXNwb25zZSBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgYWN0aW9ucyB0aGF0IHRha2UgYSBsb25nIHdoaWxlIHRvIHByb2Nlc3MuIEl0IGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0IGhhcyBiZWVuIGFjY2VwdGVkIGZvciBwcm9jZXNzaW5nLCBidXQgdGhlIHByb2Nlc3NpbmcgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZC4gVGhlIHJlcXVlc3QgbWlnaHQgb3IgbWlnaHQgbm90IGJlIGV2ZW50dWFsbHkgYWN0ZWQgdXBvbiwgb3IgZXZlbiBtYXliZSBkaXNhbGxvd2VkIHdoZW4gcHJvY2Vzc2luZyBvY2N1cnMuIEl0cyBwdXJwb3NlIGlzIHRvIGFsbG93IGEgc2VydmVyIHRvIGFjY2VwdCBhIHJlcXVlc3QgZm9yIHNvbWUgb3RoZXIgcHJvY2VzcyAocGVyaGFwcyBhIGJhdGNoLW9yaWVudGVkIHByb2Nlc3MgdGhhdCBpcyBvbmx5IHJ1biBvbmNlIHBlciBkYXkpIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQgdGhlIHVzZXIgYWdlbnQncyBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgcGVyc2lzdCB1bnRpbCB0aGUgcHJvY2VzcyBpcyBjb21wbGV0ZWQuIFRoZSBlbnRpdHkgcmV0dXJuZWQgd2l0aCB0aGlzIHJlc3BvbnNlIFNIT1VMRCBpbmNsdWRlIGFuIGluZGljYXRpb24gb2YgdGhlIHJlcXVlc3QncyBjdXJyZW50IHN0YXR1cyBhbmQgZWl0aGVyIGEgcG9pbnRlciB0byBhIHN0YXR1cyBtb25pdG9yIChqb2IgcXVldWUgbG9jYXRpb24pIG9yIHNvbWUgZXN0aW1hdGUgb2Ygd2hlbiB0aGUgdXNlciBjYW4gZXhwZWN0IHRoZSByZXF1ZXN0IHRvIGJlIGZ1bGZpbGxlZC4KKiAqKjIwNCAoTm8gQ29udGVudCkqKiBUaGUgMjA0IHN0YXR1cyBjb2RlIGlzIHVzdWFsbHkgc2VudCBvdXQgaW4gcmVzcG9uc2UgdG8gYSBgUFVUYCwgYFBPU1RgLCBvciBgREVMRVRFYCByZXF1ZXN0IHdoZW4gdGhlIFJFU1QgQVBJIGRlY2xpbmVzIHRvIHNlbmQgYmFjayBhbnkgc3RhdHVzIG1lc3NhZ2Ugb3IgcmVwcmVzZW50YXRpb24gaW4gdGhlIHJlc3BvbnNlIG1lc3NhZ2UncyBib2R5LiBBbiBBUEkgbWF5IGFsc28gc2VuZCAyMDQgaW4gY29uanVuY3Rpb24gd2l0aCBhIEdFVCByZXF1ZXN0IHRvIGluZGljYXRlIHRoYXQgdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBleGlzdHMsIGJ1dCBoYXMgbm8gc3RhdGUgcmVwcmVzZW50YXRpb24gdG8gaW5jbHVkZSBpbiB0aGUgYm9keS4gSWYgdGhlIGNsaWVudCBpcyBhIHVzZXIgYWdlbnQsIGl0IFNIT1VMRCBOT1QgY2hhbmdlIGl0cyBkb2N1bWVudCB2aWV3IGZyb20gdGhhdCB3aGljaCBjYXVzZWQgdGhlIHJlcXVlc3QgdG8gYmUgc2VudC4gVGhpcyByZXNwb25zZSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYWxsb3cgaW5wdXQgZm9yIGFjdGlvbnMgdG8gdGFrZSBwbGFjZSB3aXRob3V0IGNhdXNpbmcgYSBjaGFuZ2UgdG8gdGhlIHVzZXIgYWdlbnQncyBhY3RpdmUgZG9jdW1lbnQgdmlldy4gSG93ZXZlciwgYW55IG5ldyBvciB1cGRhdGVkIG1ldGFpbmZvcm1hdGlvbiBTSE9VTEQgYmUgYXBwbGllZCB0byB0aGUgZG9jdW1lbnQgY3VycmVudGx5IGluIHRoZSB1c2VyIGFnZW50J3MgZHluYW1pYyB2aWV3LiBUaGUgMjA0IHJlc3BvbnNlIE1VU1QgTk9UIGluY2x1ZGUgYSBtZXNzYWdlLWJvZHkgYW5kIHRodXMgaXMgYWx3YXlzIHRlcm1pbmF0ZWQgYnkgdGhlIGZpcnN0IGVtcHR5IGxpbmUgYWZ0ZXIgdGhlIGhlYWRlciBmaWVsZHMuCiogKiozMDEgKE1vdmVkIFBlcm1hbmVudGx5KSoqIFRoZSAzMDEgc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIFJFU1QgQVBJJ3MgcmVzb3VyY2UgbW9kZWwgaGFzIGJlZW4gc2lnbmlmaWNhbnRseSByZWRlc2lnbmVkLCBhbmQgYSBuZXcgcGVybWFuZW50IFVSSSBoYXMgYmVlbiBhc3NpZ25lZCB0byB0aGUgY2xpZW50J3MgcmVxdWVzdGVkIHJlc291cmNlLiBUaGUgUkVTVCBBUEkgc2hvdWxkIHNwZWNpZnkgdGhlIG5ldyBVUkkgaW4gdGhlIHJlc3BvbnNlJ3MgTG9jYXRpb24gaGVhZGVyLCBhbmQgYWxsIGZ1dHVyZSByZXF1ZXN0cyBzaG91bGQgYmUgZGlyZWN0ZWQgdG8gdGhlIGdpdmVuIFVSSS4gWW91IHdpbGwgaGFyZGx5IHVzZSB0aGlzIHJlc3BvbnNlIGNvZGUgaW4geW91ciBBUEkgYXMgeW91IGNhbiBhbHdheXMgdXNlIHRoZSBBUEkgdmVyc2lvbmluZyBmb3IgdGhlIG5ldyBBUEkgd2hpbGUgcmV0YWluaW5nIHRoZSBvbGQgb25lLgoqICoqMzAyIChGb3VuZCkqKiBUaGUgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZSAzMDIgRm91bmQgaXMgYSBjb21tb24gd2F5IG9mIHBlcmZvcm1pbmcgVVJMIHJlZGlyZWN0aW9uLiBBbiBIVFRQIHJlc3BvbnNlIHdpdGggdGhpcyBzdGF0dXMgY29kZSB3aWxsIGFkZGl0aW9uYWxseSBwcm92aWRlIGEgVVJMIGluIHRoZSBMb2NhdGlvbiBoZWFkZXIgZmllbGQuIFRoZSB1c2VyIGFnZW50IChlLmcuLCBhIHdlYiBicm93c2VyKSBpcyBpbnZpdGVkIGJ5IGEgcmVzcG9uc2Ugd2l0aCB0aGlzIGNvZGUgdG8gbWFrZSBhIHNlY29uZC4gT3RoZXJ3aXNlIGlkZW50aWNhbCwgcmVxdWVzdCB0byB0aGUgbmV3IFVSTCBzcGVjaWZpZWQgaW4gdGhlIGxvY2F0aW9uIGZpZWxkLiBNYW55IHdlYiBicm93c2VycyBpbXBsZW1lbnRlZCB0aGlzIGNvZGUgaW4gYSBtYW5uZXIgdGhhdCB2aW9sYXRlZCB0aGlzIHN0YW5kYXJkLCBjaGFuZ2luZyB0aGUgcmVxdWVzdCB0eXBlIG9mIHRoZSBuZXcgcmVxdWVzdCB0byBHRVQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHR5cGUgZW1wbG95ZWQgaW4gdGhlIG9yaWdpbmFsIHJlcXVlc3QgKGUuZy4sIFBPU1QpLiBSRkMgMTk0NSBhbmQgUkZDIDIwNjggc3BlY2lmeSB0aGF0IHRoZSBjbGllbnQgaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoZSBtZXRob2Qgb24gdGhlIHJlZGlyZWN0ZWQgcmVxdWVzdC4gVGhlIHN0YXR1cyBjb2RlcyAzMDMgYW5kIDMwNyBoYXZlIGJlZW4gYWRkZWQgZm9yIHNlcnZlcnMgdGhhdCB3aXNoIHRvIG1ha2UgdW5hbWJpZ3VvdXNseSBjbGVhciB3aGljaCBraW5kIG9mIHJlYWN0aW9uIGlzIGV4cGVjdGVkIG9mIHRoZSBjbGllbnQuCiogKiozMDMgKFNlZSBPdGhlcikqKiBBIDMwMyByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCBhIGNvbnRyb2xsZXIgcmVzb3VyY2UgaGFzIGZpbmlzaGVkIGl0cyB3b3JrLCBidXQgaW5zdGVhZCBvZiBzZW5kaW5nIGEgcG90ZW50aWFsbHkgdW53YW50ZWQgcmVzcG9uc2UgYm9keSwgaXQgc2VuZHMgdGhlIGNsaWVudCB0aGUgVVJJIG9mIGEgcmVzcG9uc2UgcmVzb3VyY2UuIFRoZSByZXNwb25zZSBjYW4gYmUgdGhlIFVSSSBvZiB0aGUgdGVtcG9yYXJ5IHN0YXR1cyBtZXNzYWdlLCBvciB0aGUgVVJJIHRvIHNvbWUgYWxyZWFkeSBleGlzdGluZywgbW9yZSBwZXJtYW5lbnQsIHJlc291cmNlLiBHZW5lcmFsbHkgc3BlYWtpbmcsIHRoZSAzMDMgc3RhdHVzIGNvZGUgYWxsb3dzIGEgUkVTVCBBUEkgdG8gc2VuZCBhIHJlZmVyZW5jZSB0byBhIHJlc291cmNlIHdpdGhvdXQgZm9yY2luZyB0aGUgY2xpZW50IHRvIGRvd25sb2FkIGl0cyBzdGF0ZS4gSW5zdGVhZCwgdGhlIGNsaWVudCBtYXkgc2VuZCBhIEdFVCByZXF1ZXN0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgTG9jYXRpb24gaGVhZGVyLiBUaGUgMzAzIHJlc3BvbnNlIE1VU1QgTk9UIGJlIGNhY2hlZCwgYnV0IHRoZSByZXNwb25zZSB0byB0aGUgc2Vjb25kIChyZWRpcmVjdGVkKSByZXF1ZXN0IG1pZ2h0IGJlIGNhY2hlYWJsZS4KKiAqKjMwNCAoTm90IE1vZGlmaWVkKSoqIFRoaXMgc3RhdHVzIGNvZGUgaXMgc2ltaWxhciB0byAyMDQgKCJObyBDb250ZW50IikgaW4gdGhhdCB0aGUgcmVzcG9uc2UgYm9keSBtdXN0IGJlIGVtcHR5LiBUaGUgY3JpdGljYWwgZGlzdGluY3Rpb24gaXMgdGhhdCAyMDQgaXMgdXNlZCB3aGVuIHRoZXJlIGlzIG5vdGhpbmcgdG8gc2VuZCBpbiB0aGUgYm9keSwgd2hlcmVhcyAzMDQgaXMgdXNlZCB3aGVuIHRoZSByZXNvdXJjZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIHZlcnNpb24gc3BlY2lmaWVkIGJ5IHRoZSByZXF1ZXN0IGhlYWRlcnMgSWYtTW9kaWZpZWQtU2luY2Ugb3IgSWYtTm9uZS1NYXRjaC4gSW4gc3VjaCBhIGNhc2UsIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmV0cmFuc21pdCB0aGUgcmVzb3VyY2Ugc2luY2UgdGhlIGNsaWVudCBzdGlsbCBoYXMgYSBwcmV2aW91c2x5LWRvd25sb2FkZWQgY29weS4gVXNpbmcgdGhpcyBzYXZlcyBiYW5kd2lkdGggYW5kIHJlcHJvY2Vzc2luZyBvbiBib3RoIHRoZSBzZXJ2ZXIgYW5kIGNsaWVudCwgYXMgb25seSB0aGUgaGVhZGVyIGRhdGEgbXVzdCBiZSBzZW50IGFuZCByZWNlaXZlZCBpbiBjb21wYXJpc29uIHRvIHRoZSBlbnRpcmV0eSBvZiB0aGUgcGFnZSBiZWluZyByZS1wcm9jZXNzZWQgYnkgdGhlIHNlcnZlciwgdGhlbiBzZW50IGFnYWluIHVzaW5nIG1vcmUgYmFuZHdpZHRoIG9mIHRoZSBzZXJ2ZXIgYW5kIGNsaWVudC4KKiAqKjMwNyAoVGVtcG9yYXJ5IFJlZGlyZWN0KSoqIEEgMzA3IHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBSRVNUIEFQSSBpcyBub3QgZ29pbmcgdG8gcHJvY2VzcyB0aGUgY2xpZW50J3MgcmVxdWVzdC4gSW5zdGVhZCwgdGhlIGNsaWVudCBzaG91bGQgcmVzdWJtaXQgdGhlIHJlcXVlc3QgdG8gdGhlIFVSSSBzcGVjaWZpZWQgYnkgdGhlIHJlc3BvbnNlIG1lc3NhZ2UncyBMb2NhdGlvbiBoZWFkZXIuIEhvd2V2ZXIsIGZ1dHVyZSByZXF1ZXN0cyBzaG91bGQgc3RpbGwgdXNlIHRoZSBvcmlnaW5hbCBVUkkuIEEgUkVTVCBBUEkgY2FuIHVzZSB0aGlzIHN0YXR1cyBjb2RlIHRvIGFzc2lnbiBhIHRlbXBvcmFyeSBVUkkgdG8gdGhlIGNsaWVudCdzIHJlcXVlc3RlZCByZXNvdXJjZS4gRm9yIGV4YW1wbGUsIGEgMzA3IHJlc3BvbnNlIGNhbiBiZSB1c2VkIHRvIHNoaWZ0IGEgY2xpZW50IHJlcXVlc3Qgb3ZlciB0byBhbm90aGVyIGhvc3QuIFRoZSB0ZW1wb3JhcnkgVVJJIFNIT1VMRCBiZSBnaXZlbiBieSB0aGUgTG9jYXRpb24gZmllbGQgaW4gdGhlIHJlc3BvbnNlLiBVbmxlc3MgdGhlIHJlcXVlc3QgbWV0aG9kIHdhcyBIRUFELCB0aGUgZW50aXR5IG9mIHRoZSByZXNwb25zZSBTSE9VTEQgY29udGFpbiBhIHNob3J0IGh5cGVydGV4dCBub3RlIHdpdGggYSBoeXBlcmxpbmsgdG8gdGhlIG5ldyBVUkkocykuIElmIHRoZSAzMDcgc3RhdHVzIGNvZGUgaXMgcmVjZWl2ZWQgaW4gcmVzcG9uc2UgdG8gYSByZXF1ZXN0IG90aGVyIHRoYW4gYEdFVGAgb3IgYEhFQURgLCB0aGUgdXNlciBhZ2VudCBNVVNUIE5PVCBhdXRvbWF0aWNhbGx5IHJlZGlyZWN0IHRoZSByZXF1ZXN0IHVubGVzcyBpdCBjYW4gYmUgY29uZmlybWVkIGJ5IHRoZSB1c2VyLCBzaW5jZSB0aGlzIG1pZ2h0IGNoYW5nZSB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGUgcmVxdWVzdCB3YXMgaXNzdWVkLgoqICoqNDAwIChCYWQgUmVxdWVzdCkqKiA0MDAgaXMgdGhlIGdlbmVyaWMgY2xpZW50LXNpZGUgZXJyb3Igc3RhdHVzLCB1c2VkIHdoZW4gbm8gb3RoZXIgNHh4IGVycm9yIGNvZGUgaXMgYXBwcm9wcmlhdGUuIEVycm9ycyBjYW4gYmUgbGlrZSBtYWxmb3JtZWQgcmVxdWVzdCBzeW50YXgsIGludmFsaWQgcmVxdWVzdCBtZXNzYWdlIHBhcmFtZXRlcnMsIG9yIGRlY2VwdGl2ZSByZXF1ZXN0IHJvdXRpbmcgZXRjLiBUaGUgY2xpZW50IFNIT1VMRCBOT1QgcmVwZWF0IHRoZSByZXF1ZXN0IHdpdGhvdXQgbW9kaWZpY2F0aW9ucy4KKiAqKjQwMSAoVW5hdXRob3JpemVkKSoqIEEgNDAxIGVycm9yIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgdHJpZWQgdG8gb3BlcmF0ZSBvbiBhIHByb3RlY3RlZCByZXNvdXJjZSB3aXRob3V0IHByb3ZpZGluZyB0aGUgcHJvcGVyIGF1dGhvcml6YXRpb24uIEl0IG1heSBoYXZlIHByb3ZpZGVkIHRoZSB3cm9uZyBjcmVkZW50aWFscyBvciBub25lIGF0IGFsbC4gVGhlIHJlc3BvbnNlIG11c3QgaW5jbHVkZSBhIFdXVy1BdXRoZW50aWNhdGUgaGVhZGVyIGZpZWxkIGNvbnRhaW5pbmcgYSBjaGFsbGVuZ2UgYXBwbGljYWJsZSB0byB0aGUgcmVxdWVzdGVkIHJlc291cmNlLiBUaGUgY2xpZW50IE1BWSByZXBlYXQgdGhlIHJlcXVlc3Qgd2l0aCBhIHN1aXRhYmxlIEF1dGhvcml6YXRpb24gaGVhZGVyIGZpZWxkLiBJZiB0aGUgcmVxdWVzdCBhbHJlYWR5IGluY2x1ZGVkIEF1dGhvcml6YXRpb24gY3JlZGVudGlhbHMsIHRoZW4gdGhlIDQwMSByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCBhdXRob3JpemF0aW9uIGhhcyBiZWVuIHJlZnVzZWQgZm9yIHRob3NlIGNyZWRlbnRpYWxzLiBJZiB0aGUgNDAxIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBzYW1lIGNoYWxsZW5nZSBhcyB0aGUgcHJpb3IgcmVzcG9uc2UsIGFuZCB0aGUgdXNlciBhZ2VudCBoYXMgYWxyZWFkeSBhdHRlbXB0ZWQgYXV0aGVudGljYXRpb24gYXQgbGVhc3Qgb25jZSwgdGhlbiB0aGUgdXNlciBTSE9VTEQgYmUgcHJlc2VudGVkIHRoZSBlbnRpdHkgdGhhdCB3YXMgZ2l2ZW4gaW4gdGhlIHJlc3BvbnNlLCBzaW5jZSB0aGF0IGVudGl0eSBtaWdodCBpbmNsdWRlIHJlbGV2YW50IGRpYWdub3N0aWMgaW5mb3JtYXRpb24uCiogKio0MDMgKEZvcmJpZGRlbikqKiBBIDQwMyBlcnJvciByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50J3MgcmVxdWVzdCBpcyBmb3JtZWQgY29ycmVjdGx5LCBidXQgdGhlIFJFU1QgQVBJIHJlZnVzZXMgdG8gaG9ub3IgaXQsIGkuZS4sIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyBmb3IgdGhlIHJlc291cmNlLiBBIDQwMyByZXNwb25zZSBpcyBub3QgYSBjYXNlIG9mIGluc3VmZmljaWVudCBjbGllbnQgY3JlZGVudGlhbHM7IHRoYXQgd291bGQgYmUgNDAxICgiVW5hdXRob3JpemVkIikuIEF1dGhlbnRpY2F0aW9uIHdpbGwgbm90IGhlbHAsIGFuZCB0aGUgcmVxdWVzdCBTSE9VTEQgTk9UIGJlIHJlcGVhdGVkLiBVbmxpa2UgYSA0MDEgVW5hdXRob3JpemVkIHJlc3BvbnNlLCBhdXRoZW50aWNhdGluZyB3aWxsIG1ha2Ugbm8gZGlmZmVyZW5jZS4KKiAqKjQwNCAoTm90IEZvdW5kKSoqIFRoZSA0MDQgZXJyb3Igc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIFJFU1QgQVBJIGNhbid0IG1hcCB0aGUgY2xpZW50J3MgVVJJIHRvIGEgcmVzb3VyY2UgYnV0IG1heSBiZSBhdmFpbGFibGUgaW4gdGhlIGZ1dHVyZS4gU3Vic2VxdWVudCByZXF1ZXN0cyBieSB0aGUgY2xpZW50IGFyZSBwZXJtaXNzaWJsZS4gTm8gaW5kaWNhdGlvbiBpcyBnaXZlbiBvZiB3aGV0aGVyIHRoZSBjb25kaXRpb24gaXMgdGVtcG9yYXJ5IG9yIHBlcm1hbmVudC4gVGhlIDQxMCAoR29uZSkgc3RhdHVzIGNvZGUgU0hPVUxEIGJlIHVzZWQgaWYgdGhlIHNlcnZlciBrbm93cywgdGhyb3VnaCBzb21lIGludGVybmFsbHkgY29uZmlndXJhYmxlIG1lY2hhbmlzbSwgdGhhdCBhbiBvbGQgcmVzb3VyY2UgaXMgcGVybWFuZW50bHkgdW5hdmFpbGFibGUgYW5kIGhhcyBubyBmb3J3YXJkaW5nIGFkZHJlc3MuIFRoaXMgc3RhdHVzIGNvZGUgaXMgY29tbW9ubHkgdXNlZCB3aGVuIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgd2lzaCB0byByZXZlYWwgZXhhY3RseSB3aHkgdGhlIHJlcXVlc3QgaGFzIGJlZW4gcmVmdXNlZCwgb3Igd2hlbiBubyBvdGhlciByZXNwb25zZSBpcyBhcHBsaWNhYmxlLgoqICoqNDA1IChNZXRob2QgTm90IEFsbG93ZWQpKiogVGhlIEFQSSByZXNwb25kcyB3aXRoIGEgNDA1IGVycm9yIHRvIGluZGljYXRlIHRoYXQgdGhlIGNsaWVudCB0cmllZCB0byB1c2UgYW4gSFRUUCBtZXRob2QgdGhhdCB0aGUgcmVzb3VyY2UgZG9lcyBub3QgYWxsb3cuIEZvciBpbnN0YW5jZSwgYSByZWFkLW9ubHkgcmVzb3VyY2UgY291bGQgc3VwcG9ydCBvbmx5IEdFVCBhbmQgSEVBRCwgd2hpbGUgYSBjb250cm9sbGVyIHJlc291cmNlIG1pZ2h0IGFsbG93IEdFVCBhbmQgUE9TVCwgYnV0IG5vdCBQVVQgb3IgREVMRVRFLiBBIDQwNSByZXNwb25zZSBtdXN0IGluY2x1ZGUgdGhlIEFsbG93IGhlYWRlciwgd2hpY2ggbGlzdHMgdGhlIEhUVFAgbWV0aG9kcyB0aGF0IHRoZSByZXNvdXJjZSBzdXBwb3J0cy4gRm9yIGV4YW1wbGU6IEFsbG93OiBHRVQsIFBPU1QKKiAqKjQwNiAoTm90IEFjY2VwdGFibGUpKiogVGhlIDQwNiBlcnJvciByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCB0aGUgQVBJIGlzIG5vdCBhYmxlIHRvIGdlbmVyYXRlIGFueSBvZiB0aGUgY2xpZW50J3MgcHJlZmVycmVkIG1lZGlhIHR5cGVzLCBhcyBpbmRpY2F0ZWQgYnkgdGhlIEFjY2VwdCByZXF1ZXN0IGhlYWRlci4gRm9yIGV4YW1wbGUsIGEgY2xpZW50IHJlcXVlc3QgZm9yIGRhdGEgZm9ybWF0dGVkIGFzIGBhcHBsaWNhdGlvbi94bWxgIHdpbGwgcmVjZWl2ZSBhIDQwNiByZXNwb25zZSBpZiB0aGUgQVBJIGlzIG9ubHkgd2lsbGluZyB0byBmb3JtYXQgZGF0YSBhcyBgYXBwbGljYXRpb24vanNvbmAuIElmIHRoZSByZXNwb25zZSBjb3VsZCBiZSB1bmFjY2VwdGFibGUsIGEgdXNlciBhZ2VudCBTSE9VTEQgdGVtcG9yYXJpbHkgc3RvcCByZWNlaXB0IG9mIG1vcmUgZGF0YSBhbmQgcXVlcnkgdGhlIHVzZXIgZm9yIGEgZGVjaXNpb24gb24gZnVydGhlciBhY3Rpb25zLgoqICoqNDEyIChQcmVjb25kaXRpb24gRmFpbGVkKSoqIFRoZSA0MTIgZXJyb3IgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgdGhlIGNsaWVudCBzcGVjaWZpZWQgb25lIG9yIG1vcmUgcHJlY29uZGl0aW9ucyBpbiBpdHMgcmVxdWVzdCBoZWFkZXJzLCBlZmZlY3RpdmVseSB0ZWxsaW5nIHRoZSBSRVNUIEFQSSB0byBjYXJyeSBvdXQgaXRzIHJlcXVlc3Qgb25seSBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgd2VyZSBtZXQuIEEgNDEyIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRob3NlIGNvbmRpdGlvbnMgd2VyZSBub3QgbWV0LCBzbyBpbnN0ZWFkIG9mIGNhcnJ5aW5nIG91dCB0aGUgcmVxdWVzdCwgdGhlIEFQSSBzZW5kcyB0aGlzIHN0YXR1cyBjb2RlLgoqICoqNDE1IChVbnN1cHBvcnRlZCBNZWRpYSBUeXBlKSoqIFRoZSA0MTUgZXJyb3IgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgdGhlIEFQSSBpcyBub3QgYWJsZSB0byBwcm9jZXNzIHRoZSBjbGllbnQncyBzdXBwbGllZCBtZWRpYSB0eXBlLCBhcyBpbmRpY2F0ZWQgYnkgdGhlIENvbnRlbnQtVHlwZSByZXF1ZXN0IGhlYWRlci4gRm9yIGV4YW1wbGUsIGEgY2xpZW50IHJlcXVlc3QgaW5jbHVkaW5nIGRhdGEgZm9ybWF0dGVkIGFzIGBhcHBsaWNhdGlvbi94bWxgIHdpbGwgcmVjZWl2ZSBhIDQxNSByZXNwb25zZSBpZiB0aGUgQVBJIGlzIG9ubHkgd2lsbGluZyB0byBwcm9jZXNzIGRhdGEgZm9ybWF0dGVkIGFzIGBhcHBsaWNhdGlvbi9qc29uYC4gRm9yIGV4YW1wbGUsIHRoZSBjbGllbnQgdXBsb2FkcyBhbiBpbWFnZSBhcyBpbWFnZS9zdmcreG1sLCBidXQgdGhlIHNlcnZlciByZXF1aXJlcyB0aGF0IGltYWdlcyB1c2UgYSBkaWZmZXJlbnQgZm9ybWF0LgoqICoqNTAwIChJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IpKiogNTAwIGlzIHRoZSBnZW5lcmljIFJFU1QgQVBJIGVycm9yIHJlc3BvbnNlLiBNb3N0IHdlYiBmcmFtZXdvcmtzIGF1dG9tYXRpY2FsbHkgcmVzcG9uZCB3aXRoIHRoaXMgcmVzcG9uc2Ugc3RhdHVzIGNvZGUgd2hlbmV2ZXIgdGhleSBleGVjdXRlIHNvbWUgcmVxdWVzdCBoYW5kbGVyIGNvZGUgdGhhdCByYWlzZXMgYW4gZXhjZXB0aW9uLiBBIDUwMCBlcnJvciBpcyBuZXZlciB0aGUgY2xpZW50J3MgZmF1bHQsIGFuZCB0aGVyZWZvcmUsIGl0IGlzIHJlYXNvbmFibGUgZm9yIHRoZSBjbGllbnQgdG8gcmV0cnkgdGhlIHNhbWUgcmVxdWVzdCB0aGF0IHRyaWdnZXJlZCB0aGlzIHJlc3BvbnNlIGFuZCBob3BlIHRvIGdldCBhIGRpZmZlcmVudCByZXNwb25zZS4gVGhlIEFQSSByZXNwb25zZSBpcyB0aGUgZ2VuZXJpYyBlcnJvciBtZXNzYWdlLCBnaXZlbiB3aGVuIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uIHdhcyBlbmNvdW50ZXJlZCBhbmQgbm8gbW9yZSBzcGVjaWZpYyBtZXNzYWdlIGlzIHN1aXRhYmxlLgoqICoqNTAxIChOb3QgSW1wbGVtZW50ZWQpKiogVGhlIHNlcnZlciBlaXRoZXIgZG9lcyBub3QgcmVjb2duaXplIHRoZSByZXF1ZXN0IG1ldGhvZCwgb3IgaXQgY2Fubm90IGZ1bGZpbGwgdGhlIHJlcXVlc3QuIFVzdWFsbHksIHRoaXMgaW1wbGllcyBmdXR1cmUgYXZhaWxhYmlsaXR5IChlLmcuLCBhIG5ldyBmZWF0dXJlIG9mIGEgd2ViLXNlcnZpY2UgQVBJKS4KCiMjIyBIb3cgaXQgV29ya3MKCldlIHVzZSBWdWUgMyB3aXRoIHRoZSBDb21wb3NpdGlvbiBBUEkgdG8gcHJvdmlkZSBhbiBlbnRpcmUgd2Vic2l0ZS9hcHBsaWNhdGlvbiBpbiBhIHNpbmdsZSBwYWdlLiAgVGhpcyBpcyBkb25lIHVzaW5nIGEgY29tYmluYXRpb24gb2YgVnVlIFNGQydzIChTaW5nbGUgRmlsZSBDb21wb25lbnRzKSB3aGljaCBhbmQgdGhlIFZ1ZSBSb3V0ZXIgdG8gY2hhbmdlIHRoZSB1cmwgaW4gdGhlIGJyb3dzZXIgd2l0aG91dCBhY3R1YWxseSBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuCgpWYXJpYWJsZXMgYXJlIG1vc3RseSBoYW5kbGVkIGJ5IHJlZmVyZW5jZSAobGlrZSBhIHBvaW50ZXIpLiAgVGhpcyBhbGxvd3MgdXMgdG8gcGFzcyBhcm91bmQgdmFyaWFibGVzIHRoYXQgYXJlIHVrZXB0IHVwIHRvIGRhdGUgd2hlbiBjaGFuZ2VkIGluIG90aGVyIHNlY3Rpb25zIG9mIHRoZSBzaXRlLgoKIyMjIyBDb3JlIEZ1bmN0aW9uYWxpdHkKClRoZXNlIGFyZSB0aGUgbGlicyB3aGljaCBwb3dlciB0aGUgbWFqb3JpdHkgb2YgdGhlIHNpdGVzIGZ1bmN0aW9uYWxpdHkuICBZb3Ugc2hvdWxkIGF0IGxlYXN0IGJyZWlmbHkgcmVhZCBvcHZlciBlYWNoIG9mIHRoZW0uCgoqIFsqKlZ1ZSAzKipdKGh0dHBzOi8vdnVlanMub3JnL2d1aWRlL2ludHJvZHVjdGlvbi5odG1sKSBpcyB0aGUgKipUZW1wbGF0ZSBFbmdpbmUqKiB3aXRoIGFsbCB0aGUgbW9kZXJuIGJlbGxzIGFuZCB3aGlzdGxlcyBsaWtlIGF1dG9tYXRpY2FsbHkgdXBkYXRpbmcgdGhlIGRpc3BsYXkgcmVuZGVyIGFzIGRhdGEgY2hhbmdlcy4KKiBbKipQaW5pYSoqXShodHRwczovL3BpbmlhLnZ1ZWpzLm9yZy9pbnRyb2R1Y3Rpb24uaHRtbCkgaXMgdXNlZCB0byBwcm92aWRlICoqRGF0YSBTdG9yZXMqKiB3aGljaCBhbGxvdyB1cyB0byBsb2FkIGRhdGEgdGhhdCBpcyByZXVzYWJsZSBiZXR3ZWVuIHBhZ2VzIHdpdGhvdXQgaGF2aW5nIHRvIHJlbG9hZCB0aGUgZGF0YS4KKiBbKipWdWUgUm91dGVyKipdKGh0dHBzOi8vcm91dGVyLnZ1ZWpzLm9yZy9pbnN0YWxsYXRpb24uaHRtbCkgaXMgdXNlZCBmb3IgKipSb3V0aW5nKiogdG8gdHJpZ2dlciBjYWxsaW5nIHBhZ2VzIGJhc2VkIG9uIHRoZSB1cmwgd2hpbGUgYWxsIGJlaW5nIGluIGEgc2luZ2xlIHBhZ2UpLgoKIyMjIyBBZGRpdGlvbmFsIEZ1bmN0aW9uYWxpdHkKClRoaXMgc3R1ZmYgcHJvdmlkZXMgZ29vZCBmZWF0dXJlcyBidXQgZG9lcyBub3QgcmVxdWlyZSB5b3UgdG8gcmVhbGx5IGJlIGZhbWlpYXIgd2l0aCBpdC4gIFNraXAgb3ZlciB0aGVzZSB1bmxlc3MgeW91IGZpbmQgeW91IG5lZWQgdG8ga25vdyBtb3JlIGFib3V0IG9uZSBvZiB0aGVtIGZvciBzb21lIHJlYXNvbi4KCiogWyoqVml0ZSoqXShodHRwczovL3ZpdGVqcy5kZXYvZ3VpZGUvKSBpcyBvdXIgKipGcm9udGVuZCBUb29saW5nKiogc3lzdGVtIHdoaWNoIHByb3ZpZGVzIGEgbmljZSBkZXYgc2V0dXAgYW5kIGhhbmRsZXMgYnVpbGRpbmcgdGhlIHByb2plY3QgZm9yIHByb2R1Y3Rpb24gdXNlLgoqIFsqKlZpdGUgUFdBKipdKGh0dHBzOi8vdml0ZS1wd2Etb3JnLm5ldGxpZnkuYXBwL2d1aWRlLykgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgdGhlIHRoZSBmaWxlcyBuZWVkZWQgc28gd2UgYXJlIGEgWyoqUFdBKipdKGh0dHBzOi8vd2ViLmRldi9sZWFybi9wd2EvKSAoKipQcm9ncmVzc2l2ZSBXZWIgQXBwKiopLgoqIFsqKkVsZWN0cm9uKipdKGh0dHBzOi8vd3d3LmVsZWN0cm9uanMub3JnLykgYWxsb3dzIHVzIHRvIGJ1aWxkIGEgKipEZXNrdG9wIEFwcCoqIGZvciBtYWNPUywgV2luZG93cywgTGludXgsIGFzIHdlbGwgYXMgTW9iaWxlIERldmljZSB2ZXJzaW9ucy4KKiBbKipFU0xpbnQqKl0oaHR0cHM6Ly9lc2xpbnQub3JnLykgaXMgb3VyICoqTGludGVyKiogd2hpY2ggY2FuIGRldGVjdCBhIHdpZGUgcmFuZ2Ugb2YgcHJvYmxlbXMgeW91ciBjb2RlLgoqIFsqKlByZXR0aWVyKipdKGh0dHBzOi8vcHJldHRpZXIuaW8vKSBpcyBvdXIgKipDb2RlIEZvcm1hdHRlcioqIGFsbG93aW5nIGF1dG9tYXRpYyBmb3JtYXR0aW5nIG9mIGNvZGUgYmFzZWQgb24gb3VyIHNldCBvZiBwcmVkZWZpbmVkIHJ1bGVzLgoqIFsqKlZpdGVzdCoqXShodHRwczovL3ZpdGVzdC5kZXYvZ3VpZGUvKSBpcyBvdXIgKipVbml0IFRlc3RpbmcqKiBmcmFtZXdvcmsuCiogWyoqVmVlVmFsaWRhdGUqKl0oaHR0cHM6Ly92ZWUtdmFsaWRhdGUubG9nYXJldG0uY29tL3Y0L2d1aWRlL292ZXJ2aWV3LykgaXMgaW5zdGFsbGVkIGZvciAqKkZvcm0gVmFsaWRhdGlvbioqCiogWyoqVnVlLWkxOG4qKl0oaHR0cHM6Ly92dWUtaTE4bi5pbnRsaWZ5LmRldi9ndWlkZS9pbnRyb2R1Y3Rpb24uaHRtbCkgaXMgb3VyICoqVHJhbnNsYXRpb24qKiBsaWIuCgojIyMjIEluc3BlY3RpbmcgYW5kIERlYnVnZ2luZyBUaGUgTGl2ZSBEYXRhCgpUaGVyZSBhcmUgc2V2ZXJhbCBEZXZlbG9wZXIgQ29uc29sZSB0eXBlIGludGVyZmFjZXMgc2V0dXAgd2hpY2ggd2UgY2FuIHVzZSB0byB2aWV3IGFuZCBtb2RpZnkgdGhlIGxpdmUgdmFyaWFibGVzIGdlbmVyYXRpbmcgdGhlIHNpdGUuCgpCcm93c2VyIEV4dGVuc2lvbiBbVnVlIERldnRvb2xzXShodHRwczovL2RldnRvb2xzLnZ1ZWpzLm9yZy9ndWlkZS9pbnN0YWxsYXRpb24uaHRtbCkKIVt2dWUtZGV2dG9vbHMtZXh0ZW5zaW9uXShodHRwczovL2dpdGh1Yi5jb20vZGV0YWluL215YWRtaW4tY2xpZW50LXZ1ZS9hc3NldHMvMTM2NDUwNC81MzZlMDViZS05NjUzLTQzZmYtYWNjZS0yYjIwODBmNzZhOTQpCgpUaGUgb3RoZXIgd2F5IGlzCiFbdnVlLWRldnRvb2xzLXBvcHVwXShodHRwczovL2dpdGh1Yi5jb20vZGV0YWluL215YWRtaW4tY2xpZW50LXZ1ZS9hc3NldHMvMTM2NDUwNC85YjUwMmE2OS0wOWM0LTQ4YjctYWM4OC0yZmU1MGQ0YWIxNWMpCgojIyBSZWNvbW1lbmRlZCBJREUgU2V0dXAKCltWU0NvZGVdKGh0dHBzOi8vY29kZS52aXN1YWxzdHVkaW8uY29tLykgKyBbVm9sYXJdKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1WdWUudm9sYXIpIChhbmQgZGlzYWJsZSBWZXR1cikgKyBbVHlwZVNjcmlwdCBWdWUgUGx1Z2luIChWb2xhcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1WdWUudnNjb2RlLXR5cGVzY3JpcHQtdnVlLXBsdWdpbikuCgojIyBDdXN0b21pemUgY29uZmlndXJhdGlvbgoKU2VlIFtWaXRlIENvbmZpZ3VyYXRpb24gUmVmZXJlbmNlXShodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnLykuCgojIyBQcm9qZWN0IFNldHVwCgpgYGBzaApucG0gaW5zdGFsbApgYGAKCiMjIyBDb21waWxlIGFuZCBIb3QtUmVsb2FkIGZvciBEZXZlbG9wbWVudAoKYGBgc2gKbnBtIHJ1biBkZXYKYGBgCgojIyMgQ29tcGlsZSBhbmQgTWluaWZ5IGZvciBQcm9kdWN0aW9uCgpgYGBzaApucG0gcnVuIGJ1aWxkCmBgYAoKIyMjIExpbnQgd2l0aCBbRVNMaW50XShodHRwczovL2VzbGludC5vcmcvKQoKYGBgc2gKbnBtIHJ1biBsaW50CmBgYAo=
- readmeEtag: '"6e31d86772a4175734cccecde67437c12dbc43f08140842671484669aedad425"'
- readmeLastModified: Fri, 15 Dec 2023 04:11:07 GMT
+ IyBJbnRlclNlcnZlciBNeUFkbWluIENsaWVudCBJbnRlcmZhY2UKCiMjIEltcHJvdmVtZW50cyBhbmQgQmVuZWZpdHMgb3ZlciBjdXJyZW50IENsaWVudCBJbnRlcmZhY2UKCiogKipQZXJmb3JtYW5jZSBCb29zdCoqOiBTdGF0aWMgSFRNTCBnZW5lcmF0ZWQgYnkgVnVlIGNhbiBiZSBoaWdobHkgb3B0aW1pemVkIGZvciBzcGVlZCwgcmVzdWx0aW5nIGluIGZhc3RlciBwYWdlIGxvYWQgdGltZXMgYW5kIGEgbW9yZSByZXNwb25zaXZlIHVzZXIgZXhwZXJpZW5jZS4KKiAqKlJlZHVjZWQgU2VydmVyIExvYWQqKjogU2VydmluZyBzdGF0aWMgZmlsZXMgcmVxdWlyZXMgbGVzcyBzZXJ2ZXIgcHJvY2Vzc2luZyBjb21wYXJlZCB0byBkeW5hbWljYWxseSBnZW5lcmF0ZWQgcGFnZXMsIGxlYWRpbmcgdG8gcmVkdWNlZCBzZXJ2ZXIgbG9hZCBhbmQgaW1wcm92ZWQgc2NhbGFiaWxpdHkuCiogKipJbXByb3ZlZCBTRU8qKjogUHJlLXJlbmRlcmVkIHN0YXRpYyBIVE1MIGNhbiBlbmhhbmNlIHNlYXJjaCBlbmdpbmUgb3B0aW1pemF0aW9uIChTRU8pIGJ5IHByb3ZpZGluZyBjb250ZW50IHRoYXQgc2VhcmNoIGVuZ2luZXMgY2FuIGVhc2lseSBjcmF3bCBhbmQgaW5kZXguCiogKipDRE4gQ29tcGF0aWJpbGl0eSoqOiBTdGF0aWMgZmlsZXMgYXJlIHdlbGwtc3VpdGVkIGZvciBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmtzIChDRE5zKSwgd2hpY2ggY2FuIGRpc3RyaWJ1dGUgeW91ciBjb250ZW50IGdsb2JhbGx5LCByZWR1Y2luZyBsYXRlbmN5IGFuZCBpbXByb3ZpbmcgcGFnZSBsb2FkIHRpbWVzIGZvciB1c2VycyBhY3Jvc3MgdGhlIHdvcmxkLgoqICoqRW5oYW5jZWQgU2VjdXJpdHkqKjogU2VwYXJhdGluZyB0aGUgZnJvbnRlbmQgZnJvbSB0aGUgYmFja2VuZCBtaW5pbWl6ZXMgdGhlIGV4cG9zdXJlIG9mIHNlbnNpdGl2ZSBiYWNrZW5kIGxvZ2ljLCBpbXByb3ZpbmcgdGhlIG92ZXJhbGwgc2VjdXJpdHkgcG9zdHVyZSBvZiB5b3VyIGFwcGxpY2F0aW9uLgoqICoqU2NhbGFiaWxpdHkqKjogU3RhdGljIGZpbGVzIGNhbiBiZSBjYWNoZWQgZWZmaWNpZW50bHksIGFsbG93aW5nIGZvciBlYXN5IGhvcml6b250YWwgc2NhbGluZyB3aXRob3V0IHRoZSBuZWVkIHRvIHdvcnJ5IGFib3V0IHNlcnZlci1zaWRlIHN0YXRlLgoqICoqU2ltcGxpZmllZCBEZXBsb3ltZW50Kio6IERlcGxveWluZyBhIHN0YXRpYyBmcm9udGVuZCBpcyBvZnRlbiBzaW1wbGVyIGFuZCBtb3JlIHByZWRpY3RhYmxlIHRoYW4gZGVwbG95aW5nIGNvbXBsZXggc2VydmVyLXNpZGUgYXBwbGljYXRpb25zLCBsZWFkaW5nIHRvIHNtb290aGVyIHJlbGVhc2UgY3ljbGVzLgoqICoqUmVkdWNlZCBBUEkgT3ZlcmhlYWQqKjogVXRpbGl6aW5nIHRoZSBQSFAgcGxhdGZvcm0gc29sZWx5IGZvciBoYW5kbGluZyBPcGVuQVBJIEFQSSByZXF1ZXN0cyBtZWFucyB0aGF0IHRoZSBiYWNrZW5kIHNlcnZlciBpcyBvbmx5IHVzZWQgZm9yIG5lY2Vzc2FyeSBkYXRhIHJldHJpZXZhbCBhbmQgcHJvY2Vzc2luZy4KKiAqKkRldmVsb3BlciBDb2xsYWJvcmF0aW9uKio6IENsZWFyIHNlcGFyYXRpb24gb2YgZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29uY2VybnMgZW5hYmxlcyBmcm9udGVuZCBkZXZlbG9wZXJzIGFuZCBQSFAgZGV2ZWxvcGVycyB0byB3b3JrIG1vcmUgaW5kZXBlbmRlbnRseSBhbmQgY29sbGFib3JhdGl2ZWx5LgoqICoqRW5oYW5jZWQgVXNlciBFeHBlcmllbmNlKio6IFZ1ZSdzIHJlYWN0aXZlIGNvbXBvbmVudHMgYW5kIGludGVyYWN0aXZpdHkgY2FuIHN0aWxsIHByb3ZpZGUgYSBkeW5hbWljIHVzZXIgZXhwZXJpZW5jZSBldmVuIGluIGEgc3RhdGljIEhUTUwgY29udGV4dCwgbGVhZGluZyB0byBoaWdoZXIgdXNlciBlbmdhZ2VtZW50LgoqICoqTW9kdWxhciBBcmNoaXRlY3R1cmUqKjogVnVlJ3MgY29tcG9uZW50LWJhc2VkIHN0cnVjdHVyZSBwcm9tb3RlcyBtb2R1bGFyIGRlc2lnbiwgd2hpY2ggZW5oYW5jZXMgY29kZSBtYWludGFpbmFiaWxpdHkgYW5kIGFsbG93cyBmb3IgZWFzaWVyIGZ1dHVyZSB1cGRhdGVzLgoqICoqQ3Jvc3MtUGxhdGZvcm0gQ29uc2lzdGVuY3kqKjogQSBzZXBhcmF0ZSBzdGF0aWMgZnJvbnRlbmQgY2FuIGVuc3VyZSBjb25zaXN0ZW50IHVzZXIgZXhwZXJpZW5jZXMgYWNyb3NzIGRpZmZlcmVudCBkZXZpY2VzIGFuZCBwbGF0Zm9ybXMsIGNvbnRyaWJ1dGluZyB0byB1c2VyIHNhdGlzZmFjdGlvbi4KKiAqKkZyb250ZW5kIElubm92YXRpb24qKjogRm9jdXNpbmcgb24gYSBzZXBhcmF0ZSBzdGF0aWMgZnJvbnRlbmQgYWxsb3dzIGZyb250ZW5kIGRldmVsb3BlcnMgdG8gZXhwZXJpbWVudCB3aXRoIG5ldyBmZWF0dXJlcyBhbmQgVUkgaW1wcm92ZW1lbnRzIHdpdGhvdXQgZGlyZWN0bHkgaW1wYWN0aW5nIHRoZSBiYWNrZW5kLgoqICoqUmVzb3VyY2UgRWZmaWNpZW5jeSoqOiBXaXRoIGZld2VyIHNlcnZlci1zaWRlIGNvbXB1dGF0aW9ucywgdGhlIGJhY2tlbmQgY2FuIHV0aWxpemUgaXRzIHJlc291cmNlcyBtb3JlIGVmZmljaWVudGx5LCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGNvc3Qgc2F2aW5ncy4KKiAqKkVhc2llciBEZWJ1Z2dpbmcqKjogQ2xlYXIgc2VwYXJhdGlvbiBvZiByZXNwb25zaWJpbGl0aWVzIHNpbXBsaWZpZXMgZGVidWdnaW5nIGFuZCB0cm91Ymxlc2hvb3RpbmcgZWZmb3J0cywgbWFraW5nIGlzc3VlIGlkZW50aWZpY2F0aW9uIGFuZCByZXNvbHV0aW9uIG1vcmUgc3RyYWlnaHRmb3J3YXJkLgoqICoqRmxleGliaWxpdHkgaW4gSG9zdGluZyoqOiBIb3N0aW5nIGEgc3RhdGljIGZyb250ZW5kIGlzIG9mdGVuIG1vcmUgZmxleGlibGUgYW5kIGNvc3QtZWZmZWN0aXZlLCBhcyBpdCBjYW4gYmUgZGVwbG95ZWQgb24gdmFyaW91cyBob3N0aW5nIHNvbHV0aW9ucywgaW5jbHVkaW5nIHN0YXRpYyBzaXRlIGhvc3RzLgoqICoqRnV0dXJlLVByb29maW5nKio6IEEgc3RhdGljIEhUTUwgZnJvbnRlbmQgY2FuIGVuc3VyZSBsb25nLXRlcm0gc3RhYmlsaXR5IGFuZCBjb21wYXRpYmlsaXR5LCBhcyBpdCdzIGxlc3MgcHJvbmUgdG8gZGVwZW5kZW5jaWVzIGFuZCB0ZWNobm9sb2d5IGNoYW5nZXMuCiogKipPZmZsaW5lIEFjY2Vzc2liaWxpdHkqKjogQnkgc2VydmluZyBzdGF0aWMgYXNzZXRzLCB5b3UgY2FuIGVuYWJsZSB5b3VyIGFwcGxpY2F0aW9uIHRvIHdvcmsgaW4gb2ZmbGluZSBvciBsb3ctY29ubmVjdGl2aXR5IHNjZW5hcmlvcywgcHJvdmlkaW5nIGEgbW9yZSByb2J1c3QgdXNlciBleHBlcmllbmNlLgoqICoqT2ZmbGluZSBDYXBhYmlsaXRpZXMqKjogQSBzdGF0aWMgSFRNTCBmcm9udGVuZCBjYW4gYmUgZGVzaWduZWQgdG8gd29yayBvZmZsaW5lIG9yIHdpdGggaW50ZXJtaXR0ZW50IGNvbm5lY3Rpdml0eSwgZW5oYW5jaW5nIHVzZXIgZXhwZXJpZW5jZSBpbiBzaXR1YXRpb25zIHdpdGggbGltaXRlZCBpbnRlcm5ldCBhY2Nlc3MuCiogKipDYWNoaW5nIEFkdmFudGFnZXMqKjogU3RhdGljIGFzc2V0cyBjYW4gYmUgY2FjaGVkIGF0IHZhcmlvdXMgbGV2ZWxzLCBmcm9tIHRoZSBicm93c2VyIHRvIENETnMsIHJlZHVjaW5nIHRoZSBuZWVkIGZvciByZXBlYXRlZCBkYXRhIHJlcXVlc3RzIGFuZCBpbXByb3Zpbmcgb3ZlcmFsbCBsb2FkIHRpbWVzLgoqICoqVmVyc2lvbiBDb250cm9sKio6IFN0YXRpYyBhc3NldHMgY2FuIGJlIGVhc2lseSB2ZXJzaW9uZWQgYW5kIG1hbmFnZWQgdGhyb3VnaCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywgZW5zdXJpbmcgY29uc2lzdGVudCBhbmQgY29udHJvbGxlZCB1cGRhdGVzLgoqICoqSW50ZXJuYXRpb25hbGl6YXRpb24qKjogQSBzdGF0aWMgZnJvbnRlbmQgY2FuIGJlIHN0cnVjdHVyZWQgdG8gc3VwcG9ydCBpbnRlcm5hdGlvbmFsaXphdGlvbiBhbmQgbG9jYWxpemF0aW9uLCBjYXRlcmluZyB0byBhIGdsb2JhbCBhdWRpZW5jZSB3aXRoIGVhc2UuCiogKipDb3N0IFNhdmluZ3MqKjogUmVkdWNlZCBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nIGNhbiBsZWFkIHRvIGNvc3Qgc2F2aW5ncyBvbiBzZXJ2ZXIgcmVzb3VyY2VzLCBlc3BlY2lhbGx5IHdoZW4gZGVwbG95aW5nIG9uIGNsb3VkIHBsYXRmb3JtcyBvciBob3N0aW5nIHNlcnZpY2VzLgoqICoqUHJlZGljdGFibGUgQmVoYXZpb3IqKjogU3RhdGljIGZyb250ZW5kcyB0ZW5kIHRvIG9mZmVyIG1vcmUgcHJlZGljdGFibGUgYmVoYXZpb3IsIGFzIHRoZXkgYXJlIG5vdCBhZmZlY3RlZCBieSBzZXJ2ZXItc2lkZSBjaGFuZ2VzIHRoYXQgbWlnaHQgaW1wYWN0IHRoZSB1c2VyIGludGVyZmFjZS4KKiAqKkJyb3dzZXIgQ29tcGF0aWJpbGl0eSoqOiBBIHdlbGwtZGVzaWduZWQgc3RhdGljIGZyb250ZW5kIGNhbiBlbnN1cmUgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IHdlYiBicm93c2VycywgcmVkdWNpbmcgdGhlIG5lZWQgZm9yIGV4dGVuc2l2ZSBjcm9zcy1icm93c2VyIHRlc3RpbmcuCiogKipUaGlyZC1QYXJ0eSBJbnRlZ3JhdGlvbioqOiBJbnRlZ3JhdGluZyB0aGlyZC1wYXJ0eSBzZXJ2aWNlcyBhbmQgd2lkZ2V0cyBpbnRvIGEgc3RhdGljIGZyb250ZW5kIGlzIG9mdGVuIHNpbXBsZXIgYW5kIGxlc3MgcHJvbmUgdG8gY29uZmxpY3RzLgoqICoqTWljcm9zZXJ2aWNlcyBDb21wYXRpYmlsaXR5Kio6IEEgbW9kdWxhciBzdGF0aWMgZnJvbnRlbmQgYWxpZ25zIHdlbGwgd2l0aCBtaWNyb3NlcnZpY2VzIGFyY2hpdGVjdHVyZSwgYWxsb3dpbmcgZm9yIHNlcGFyYXRlIGRldmVsb3BtZW50IGFuZCBkZXBsb3ltZW50IG9mIHZhcmlvdXMgY29tcG9uZW50cy4KKiAqKlNlY3VyaXR5IFBhdGNoaW5nKio6IFNlcGFyYXRpbmcgdGhlIGZyb250ZW5kIGZyb20gdGhlIGJhY2tlbmQgc2ltcGxpZmllcyBzZWN1cml0eSB1cGRhdGVzIGFuZCBwYXRjaGluZywgYXMgdnVsbmVyYWJpbGl0aWVzIGluIHRoZSBmcm9udGVuZCB3b24ndCBkaXJlY3RseSBpbXBhY3QgdGhlIGJhY2tlbmQgbG9naWMuCiogKipRdWljayBEZXBsb3ltZW50Kio6IERlcGxveWluZyBzdGF0aWMgZmlsZXMgaXMgZ2VuZXJhbGx5IGZhc3RlciBhbmQgcmVxdWlyZXMgZmV3ZXIgcmVzb3VyY2VzIGNvbXBhcmVkIHRvIGRlcGxveWluZyBjb21wbGV4IHNlcnZlci1zaWRlIGFwcGxpY2F0aW9ucy4KKiAqKkNvbnRpbnVvdXMgSW50ZWdyYXRpb24vQ29udGludW91cyBEZXBsb3ltZW50IChDSS9DRCkqKjogQ0kvQ0QgcGlwZWxpbmVzIGZvciBhIHN0YXRpYyBmcm9udGVuZCBjYW4gYmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBlYXNpbHkgYXV0b21hdGVkLCBsZWFkaW5nIHRvIG1vcmUgZWZmaWNpZW50IGRldmVsb3BtZW50IHdvcmtmbG93cy4KKiAqKlJlZHVjZWQgTGF0ZW5jeSoqOiBXaXRoIHJlZHVjZWQgc2VydmVyLXNpZGUgcHJvY2Vzc2luZywgbGF0ZW5jeSBjYW4gYmUgbWluaW1pemVkLCBjb250cmlidXRpbmcgdG8gYSBtb3JlIHJlc3BvbnNpdmUgdXNlciBleHBlcmllbmNlLgoqICoqRWFzaWVyIEEvQiBUZXN0aW5nKio6IEEgc3RhdGljIGZyb250ZW5kIGNhbiBmYWNpbGl0YXRlIEEvQiB0ZXN0aW5nIGFuZCBleHBlcmltZW50YXRpb24gd2l0aG91dCB0aGUgY29tcGxleGl0aWVzIG9mIGR5bmFtaWMgc2VydmVyLXNpZGUgcmVuZGVyaW5nLgoqICoqQ29udGVudCBNYW5hZ2VtZW50Kio6IFNlcGFyYXRpbmcgZnJvbnRlbmQgYW5kIGJhY2tlbmQgYWxsb3dzIGNvbnRlbnQgbWFuYWdlbWVudCBzeXN0ZW1zIChDTVMpIHRvIGZvY3VzIG9uIGNvbnRlbnQgd2l0aG91dCBiZWluZyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGFwcGxpY2F0aW9uIGxvZ2ljLgoqICoqU2ltcGxpZmllZCBCYWNrZW5kKio6IEJ5IG9mZmxvYWRpbmcgZnJvbnRlbmQgcmVuZGVyaW5nIHRvIFZ1ZSwgdGhlIFBIUCBiYWNrZW5kIGNhbiBmb2N1cyBvbiBkYXRhIHByb2Nlc3NpbmcgYW5kIEFQSSBmdW5jdGlvbmFsaXR5LCBzaW1wbGlmeWluZyBpdHMgcm9sZS4KKiAqKkNsaWVudC1TaWRlIEVuaGFuY2VtZW50cyoqOiBWdWUncyBjbGllbnQtc2lkZSByb3V0aW5nIGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGNhbiBlbmhhbmNlIG5hdmlnYXRpb24gYW5kIGRhdGEgaGFuZGxpbmcgd2l0aGluIHRoZSBmcm9udGVuZC4KKiAqKlJlZHVjZWQgQ29tcGxleGl0eSoqOiBBIHN0YXRpYyBmcm9udGVuZCBzaW1wbGlmaWVzIHRoZSB0ZWNobmljYWwgc3RhY2ssIHJlZHVjaW5nIHRoZSBvdmVyYWxsIGNvbXBsZXhpdHkgb2YgdGhlIGFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZS4KKiAqKkVhc2llciBDb2RlIEF1ZGl0cyoqOiBDbGVhciBzZXBhcmF0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29kZSBtYWtlcyBjb2RlIGF1ZGl0cyBhbmQgc2VjdXJpdHkgcmV2aWV3cyBtb3JlIG1hbmFnZWFibGUuCiogKipCcmFuZGluZyBhbmQgQ3VzdG9taXphdGlvbioqOiBBIHNlcGFyYXRlIGZyb250ZW5kIGFsbG93cyBmb3IgZWFzaWVyIGJyYW5kaW5nIGFuZCBjdXN0b21pemF0aW9uLCBhcyBmcm9udGVuZCBjaGFuZ2VzIHdvbid0IGRpcmVjdGx5IGFmZmVjdCBiYWNrZW5kIGZ1bmN0aW9uYWxpdHkuCgojIyBGQVEKCiMjIyBHZXR0aW5nIGEgYmxhbmsgcGFnZSB3aGVuIGxvYWRpbmcgdGhlIHNpdGUKCkNoZWNrIHlvdXIgYWQgYmxvY2tlciBvciBwcml2YWN5IGFkZG9ucywgdGhleSBtaWdodCBuZWVkIHRvIGJlIGRpc2FibGVkIGZvciB0aGlzIHNpdGUuCgojIyBEZXZlbG9wbWVudAoKKiBbdml0ZWpzL2F3ZXNvbWUtdml0ZTog4pqh77iPIEEgY3VyYXRlZCBsaXN0IG9mIGF3ZXNvbWUgdGhpbmdzIHJlbGF0ZWQgdG8gVml0ZS5qc10oaHR0cHM6Ly9naXRodWIuY29tL3ZpdGVqcy9hd2Vzb21lLXZpdGUpCgojIyMgT3BlbkFQSSBTcGVjCgojIyMjIEFQSSBHVUkgRGVzaWduZXJzCgoqIFtGcmVlIE9ubGluZSBWaXN1YWwgQVBJIERlc2lnbmVyIGZvciBPcGVuQVBJIGFuZCBBc3luY0FQSSBTcGVjaWZpY2F0aW9ucyAtIEFwaUJsZHJdKGh0dHBzOi8vd3d3LmFwaWJsZHIuY29tLykKKiBbbXkgSW50ZXJTZXJ2ZXIgU2VydmljZXMgTWFuYWdlbWVudCBBUEkgLSBteWFkbWluYXBpIC0gRWRpdCAtIEZyb2dtZW50XShodHRwczovL3d3dy5mcm9nbWVudC5jb20vZWRpdC9teWFkbWluYXBpL2ludGVyc2VydmVyX215YWRtaW5fYXBpLmpzb24jaW5mby55YW1sKQoqIFtBUElHaXQgLSBBUEkgRG9jdW1lbnRdKGh0dHBzOi8vYXBwLmFwaWdpdC5jb20vcmVwb3NpdG9yeS9kZXRhaW4vbXlhZG1pbi1vcGVuYXBpLXNwZWMvYXBpL29wZW5hcGkueWFtbCkKKiBbQXBpY3VyaW8gU3R1ZGlvIC0gQVBJIEVkaXRvciA6OiBteSBJbnRlclNlcnZlciBTZXJ2aWNlcyBNYW5hZ2VtZW50IEFQSV0oaHR0cHM6Ly9zdHVkaW8uYXBpY3VyLmlvL2FwaXMvOTM2MTgvZWRpdG9yKQoKQWZ0ZXIgdGhpcyBpcyBkb25lIG9uIGFsbCBvZiB0aGUgcmVwb3MgcGljayB0aGUgYmVzdCBvbmUgYW5kIHNldGl0IHVwIC4uIHRyeSB0byBwcmVzZXJ2ZSBnaXQgaGlzdG9yeQoKIyMjIFRPRE8gUm9hZC1NYXAKCiogKioxLjAtYWxwaGEqKiBNaWxlU3RvbmUKICAqIG9yZGVyIHNlcnZpY2UgcGFnZXMKICAgICogWyBdIHNlcnZlcgogICAgKiBbIF0gZG9tYWluCiAgKiBbIF0gY2FydC9paWRzIHBhcnNlZCBhbmQgaGFuZGxlZAoqICoqMS4wLWJldGEqKiBNaWxlU3RvbmUKICAqIFsgXSB1cGRhdGUgcmVzcG9uc2UgY29kZXMgdG8gbWF0Y2ggdGFibGUgYmVsb3cKICAqIFsgXSBsb2FkaW5nIC8gbm8gZW50cmllcyBtZXNzYWdlcwogICogc2VydmljZXMgbGlzdCBwYWdlcwogICAgKiBkYXRhdGFibGVzIG9yIGVxdWl2YWxlbnQKICAgICAgKiBbeF0gZmlsdGVyaW5nCiAgICAgICogWyBdIHNvcnRpbmcKICAgICAgKiBbIF0gcGFnaW5hdGlvbgogICAgICAqIFsgXSBwcmludC9leHBvcnQKKiAqKjEuMC1zdGFibGUqKiBNaWxlU3RvbmUKICAqIFsgXSBzZXR1cCBnaXRodWIgYWN0aW9ucyBhbmQgaG9va3MgZm9yIGF1dG9tYXRlZCB0ZXN0aW5nCiAgKiBbIF0gbWFrZSBzdXJlIGFmZmlsaWF0ZSB0cmFja2luZyBzdGlsbCB3b3JrcwogICogWyBdIGFuYWx5dGljcwogICogWyBdIGdldCB2YXJpb3VzIGxpYnMgbG9hZGluZyB3aXRoIGltcG9ydHMgaW5zdGVhZWQgb2YgZGlyZWN0bHkgY2FsbGVkIHdpdGggc2NyaXRwdHMgYW5kIGxpbmsgdGFncwogICogWyBdIG1pbmltaXplIGFwaSBmaWVsZHMgaW4gcmVxdWVzdHMvcmVzcG9uc2VzIGFuZCBmaWx0ZXIgdGhlbSBmb3Igc2VjdXJpdHkKICAqIFsgXSBhcGkgZmluYWxpemVkCiogRnV0dXJlIFRhc2tzCiAgKiBbIF0gaW1wcm92ZSB3ZWJwYWNraW5nCiAgKiBbIF0gbW92ZSB0eXBlIGRlZmluaXRpb25zIGludG8gL3R5cGVzPwogICogWyBdIHV0aWxpemUgdGhlIGZvcm0gdmFsaWRhdGlvbiBzdHVmZgogICogWyBdIHJlcGxhY2UganF1ZXJ5IHR5cGUgY2FsbHMgd2l0aCBidWlsdCBpbiB0ZW1wbGF0ZSBoYW5kbGluZyBhbmQgc3VjaAogICogWyBdIGJzNS9hZG1pbmx0ZTQgaHR0cHM6Ly9naXRodWIuY29tL2NvbGlmZi9ib290c3RyYXAtNS1taWdyYXRlLXRvb2wvYmxvYi9tYWluL2d1bHBmaWxlLmpzICBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9KdWFuLWVzY29iYXI5NC9mNzY1MzVhMTI2NGFjNmY3MjUxYzY0M2FmNTBjMTg0ZAogICogWyBdIGlvbmljIGNhcGFjaXRvcgogICAgKiBbIF0gYW5kcm9pZCBidWlsZAogICAgKiBbIF0gaW9zIGJ1aWxkCiAgKiBbeF0gZWxlY3Ryb24gYnVpbGQKICAgICogW3hdIHdpbmRvd3MvbGludXgvbWFjIGJ1aWxkcwogICAgKiBbIF0gYXV0b21hdGVkIGJ1aWxkcwogICAgKiBbeF0ganMvY3NzIGFzc2V0cyBsb2FkZWQgbG9jYWxseQoKCltlbGVjdHJvbi12aXRlL2VsZWN0cm9uLXZpdGUtdnVlOiDwn6WzIFJlYWxseSBzaW1wbGUgRWxlY3Ryb24gKyBWaXRlICsgVnVlIGJvaWxlcnBsYXRlLl0oaHR0cHM6Ly9naXRodWIuY29tL2VsZWN0cm9uLXZpdGUvZWxlY3Ryb24tdml0ZS12dWUpCltjYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZTog8J+TmiBSZWFsbHkgc2ltcGxlIEVsZWN0cm9uICsgVml0ZSBib2lsZXJwbGF0ZS5dKGh0dHBzOi8vZ2l0aHViLmNvbS9jYW94aWVtZWloYW8vZWxlY3Ryb24tdml0ZS1ib2lsZXJwbGF0ZSkKW3lpbmdwZW5nc2hhL2VsZWN0cm9uLXZpdGUtcXVpY2stc3RhcnQ6IOKaoSBGdWxsIHN0YWNrIHVzZXMgVml0ZSB0byBydW4gRWxlY3Ryb24gYXBwbGljYXRpb24sIGluY2x1ZGluZyBtYWluIHByb2Nlc3MuXShodHRwczovL2dpdGh1Yi5jb20veWluZ3BlbmdzaGEvZWxlY3Ryb24tdml0ZS1xdWljay1zdGFydCkKW3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZTogVGhpcyBwcm9qZWN0IGlzIGEgdnVlMyArIFZpdGUgKyBlbGVjdHJvbiBwcm9qZWN0IHRlbXBsYXRlIGNvbXBvc2VkIG9mIFZpdGUgYW5kIHJvbGx1cC4gSXQgaGFzIHRoZSBzYW1lIGZ1bmN0aW9ucyBhcyBteSBwcmV2aW91cyBlbGVjdHJvbitWdWUrdGVtcGxhdGUgcHJvamVjdF0oaHR0cHM6Ly9naXRodWIuY29tL3VtYnJlbGxhMjIvZWxlY3Ryb24tdml0ZS10ZW1wbGF0ZSkKW0FyY2hlckd1L2Zhc3Qtdml0ZS1lbGVjdHJvbjogVml0ZSArIEVsZWN0cm9uIHdpdGggZXNidWlsZCwgc28gZmFzdCEg4pqhXShodHRwczovL2dpdGh1Yi5jb20vQXJjaGVyR3UvZmFzdC12aXRlLWVsZWN0cm9uKQpbY2F3YS05My92aXRlLWVsZWN0cm9uLWJ1aWxkZXI6IFNlY3VyZSBib2lsZXJwbGF0ZSBmb3IgRWxlY3Ryb24gYXBwIGJhc2VkIG9uIFZpdGUuIFR5cGVTY3JpcHQgKyBWdWUvUmVhY3QvQW5ndWxhci9TdmVsdGUvVmFuaWxsYV0oaHR0cHM6Ly9naXRodWIuY29tL2Nhd2EtOTMvdml0ZS1lbGVjdHJvbi1idWlsZGVyLykKW2VsZWN0cm9uLXZpdGUvdml0ZS1wbHVnaW4tZWxlY3Ryb24tcmVuZGVyZXI6IFN1cHBvcnQgdXNlIE5vZGUuanMgQVBJIGluIEVsZWN0cm9uLVJlbmRlcmVyXShodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24tdml0ZS92aXRlLXBsdWdpbi1lbGVjdHJvbi1yZW5kZXJlcikKW0RlbHV6ZS9lbGVjdHJvbi12dWUtdGVtcGxhdGU6IFNpbXBsZSBWdWUzICsgRWxlY3Ryb24gc3RhcnRlciB0ZW1wbGF0ZSBpbiBUeXBlU2NyaXB0LCBpbmNsdWRpbmcgVml0ZUpTIGFuZCBFbGVjdHJvbiBCdWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vRGVsdXplL2VsZWN0cm9uLXZ1ZS10ZW1wbGF0ZSkKW3RhZGE1aGkvdml0cm9uOiBUaGlzIGlzIGEgbGlicmFyeSB0byBidWlsZCAod2luLCBsaW51eCwgbWFjKSBkZXNrdG9wIGFwcHMgZm9yIG1vZGVybiB3ZWIgcHJvamVjdHMgd2l0aCB2aXRlIGFuZCBlbGVjdHJvbi5dKGh0dHBzOi8vZ2l0aHViLmNvbS90YWRhNWhpL3ZpdHJvbikKW2pvb3kyL3Z1dHJvbjog8J+SmiBRdWljayBTdGFydCBUZW1wbGF0ZXMgZm9yIFZpdGUgKyBFbGVjdHJvbiArIFZ1ZSAzICsgVnVldGlmeSArIFR5cGVTY3JpcHQuIFZ1dHJvbiBpcyBhIHByZWNvbmZpZ3VyZWQgdGVtcGxhdGUgZm9yIGRldmVsb3BpbmcgRWxlY3Ryb24gY3Jvc3MtcGxhdGZvcm0gZGVza3RvcCBhcHBzLiBJdCB1c2VzIFZ1ZSAzIGFuZCBhbGxvd3MgeW91IHRvIGJ1aWxkIGEgZmFzdCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB3aXRoIGxpdHRsZSBlZmZvcnQuXShodHRwczovL2dpdGh1Yi5jb20vam9veTIvdnV0cm9uKQpbY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luOiBIaWdoLXBlcmZvcm1hbmNlLCBlc2J1aWxkLWJhc2VkIFZpdGUgRWxlY3Ryb24gcGx1Z2luXShodHRwczovL2dpdGh1Yi5jb20vY2FveGllbWVpaGFvL3ZpdGUtZWxlY3Ryb24tcGx1Z2luKQoKIyMjIFBhZ2UgU3RhdHVzCgpBUEkgU3BlYyBDaGVja3MKKiBSZXF1ZXN0IEJvZHkKKiBTdWNjZXNzIFJlc3BvbnNlCiogRXJyb3IgUmVzcG9uc2VzCiogRXhhbXBsZXMKKiBEZXRhaWxlZCBEb2N1bWVudGF0aW9uCiogT3B0aW1pemUgVHlwZXMKKiBQYXRocwogICogc3VtbWFyeSBzZXQKICAqIGRlc2NyaXB0aW9uIHNldAogICogcGFyYW1ldGVycwogICAgKiBkZXNjcmlwdGlvbgogICAgKiBzY2hlbWEgdHlwZQogICAgKiBleGFtcGxlCiAgICAqIGxpbmtzCiAgKiBtZXRob2RzCiAgICAqIHN1bW1hcnkgc2V0CiAgICAqIGRlc2NyaXB0aW9uIHNldAogICAgKiB0YWcgc2V0CiAgICAqIHJlcXVlc3QgdHlwZXMganNvbitmb3JtCiAgICAqIHJlcXVlc3QgYm9keSBkZWZpbnRpb24KICAgICogcmVxdWVzdCBib2R5IGRlc2NyaXB0aW9uIChpbmhlcml0YWJsZSkKICAgICogcmVxdWVzdCBib2R5IGV4YW1wbGUgKGluaGVyaXRhYmxlKQogICAgKiByZXNwb25zZSBzdWNjZXNzIGRlZmluaXRpb24gKGluaGVyaXRhYmxlKQogICAgKiByZXNwb25zZSBzdWNjZXNzIGV4YW1wbGUgKGluaGVyaXRhYmxlKQogICAgKiBsaW5rcwoqIFNjaGVtYXMKICAgICogc3VtbWFyeSBzZXQKICAgICogZGVzY3JpcHRpb24gc2V0CiAgICAqIGV4YW1wbGUgc2V0CiAgICAqIHJlcXVpcmVkIHNldAogICAgKiBsaW5rcwoqIFRhZ3MKICAqIGRldGFpbGVkIGRlc2NyaXB0aW9ucwoKQVBJIENhbGwgQ2hlY2tzCiogV29ya2luZwoqIFNlY3VyZQogICogZGIgZXNjYXBpbmcKICAqIGh0bWwgZmlsdGVyaW5nCiogU3VjY2VzcyBSZXNwb25zZQoqIEVycm9yIFJlc3Nwb25zZXMKKiBPcHRpbWl6ZSBUeXBlcwoKCiogV29ya2luZyBzdGF0dXMgZG9lcyBub3QgaW5jbHVkZSB0aGUgZXhwb3J0L3NvcnRpbmcgcmVsYXRlZCBvcHRpb25zIG9uIHRoZSB2aWV3IHNlcnZpY2UgbGlzdCB0eXBlIHBhZ2VzCgp8IFVybCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBXb3JraW5nIHwgQVBJIENhbGwgfCBBUEkgU3BlYyB8IEJyZWFkY3J1bSB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwKfCAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9sb2dpbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8ICAgICAgICAgICB8CnwgL3JlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgICAgICAgICAgIHwKfCAvc3Vkby86c2Vzc2lvbklkICAgICAgICAgICAgICAgIHwgW3hdICAgICB8ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfAp8IC9hY2NvdW50L2luZm8gICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2FjY291bnQvcGFzcyAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYWNjb3VudC9zZXR0aW5ncyAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9hY2NvdW50L3VzZXJuYW1lICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2NhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvY2FydC86OmlpZHMgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9pbnZvaWNlcyAgICAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3BheW1lbnRfdHlwZXMgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvcHJlcGF5cyAgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9wYXkvOm1ldGhvZC86aW52b2ljZXMgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3RpY2tldHMgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdGlja2V0cy86aWQgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC90aWNrZXRzL25ldyAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RucyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG5zLzppZCAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9hZmZpbGlhdGUgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2FmZmlsaWF0ZS9iYW5uZXIvOmlkICAgICAgICAgICB8IFsgXSAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL2Jhbm5lcnMgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvZmFxICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2FmZmlsaWF0ZS9sYW5kaW5nX3BnICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL3BheW1lbnRfc2V0dXAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvcmljaF9yZXBvcnQgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2FmZmlsaWF0ZS9zYWxlc19ncmFwaCAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvYWZmaWxpYXRlL3NhbGVzX3JlcG9ydCAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvc3RhdHVzX2xlZ2VuZCAgICAgICAgfCBbeF0gICAgIHwgICAgICAgICAgfCAgICAgICAgICB8IFt4XSAgICAgICB8CnwgL2FmZmlsaWF0ZS90b3MgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCAgICAgICAgICB8ICAgICAgICAgIHwgW3hdICAgICAgIHwKfCAvYWZmaWxpYXRlL3RyYWZmaWNfZ3JhcGggICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9hZmZpbGlhdGUvd2ViX3RyYWZmaWMgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2JhY2t1cHMgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYmFja3Vwcy86aWQgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzLzppZC9jYW5jZWwgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2JhY2t1cHMvOmlkL2ludm9pY2VzICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvYmFja3Vwcy86aWQvd2VsY29tZV9lbWFpbCAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9iYWNrdXBzL29yZGVyICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG9tYWlucy86aWQgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9kb21haW5zLzppZC9jYW5jZWwgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL2NvbnRhY3QgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy86aWQvZG5zc2VjICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC9pbnZvaWNlcyAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL25hbWVzZXJ2ZXJzICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy86aWQvcmVuZXcgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zLzppZC90cmFuc2ZlciAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMvOmlkL3dlbGNvbWVfZW1haWwgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvZG9tYWlucy86aWQvd2hvaXMgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9kb21haW5zL29yZGVyICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2RvbWFpbnMvb3JkZXIvOmRvbWFpbiAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZG9tYWlucy9vcmRlci86ZG9tYWluLzpyZWdUeXBlIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2Zsb2F0aW5nX2lwcy86aWQgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvZmxvYXRpbmdfaXBzLzppZC9jYW5jZWwgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvOmlkL2NoYW5nZV9pcCAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2Zsb2F0aW5nX2lwcy86aWQvaW52b2ljZXMgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvZmxvYXRpbmdfaXBzLzppZC93ZWxjb21lX2VtYWlsIHwgW3hdICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgfCBbeF0gICAgICAgfAp8IC9mbG9hdGluZ19pcHMvb3JkZXIgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL2xpY2Vuc2VzICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbGljZW5zZXMvOmlkICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvY2FuY2VsICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2xpY2Vuc2VzLzppZC9jaGFuZ2VfaXAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvbGljZW5zZXMvOmlkL2NoYW5nZV9vcyAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy86aWQvaW52b2ljZXMgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL2xpY2Vuc2VzLzppZC93ZWxjb21lX2VtYWlsICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvbGljZW5zZXMvb3JkZXIgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9saWNlbnNlcy9vcmRlci86Y2F0VGFnICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL21haWwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbWFpbC86aWQgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9tYWlsLzppZC9hbGVydHMgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL21haWwvOmlkL2NhbmNlbCAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvbWFpbC86aWQvZGVueV9ydWxlcyAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9tYWlsLzppZC9pbnZvaWNlcyAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL21haWwvOmlkL3dlbGNvbWVfZW1haWwgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvbWFpbC9vcmRlciAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3FzLzppZCAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvcXMvOmlkL2JhY2t1cCAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvYmFja3VwcyAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvcXMvOmlkL2NoYW5nZV90aW1lem9uZSAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvZWplY3RfY2QgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9pbnNlcnRfY2QgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL2ludm9pY2VzICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9xcy86aWQvcmVpbnN0YWxsX29zICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9yZXNldF9wYXNzd29yZCAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3Jlc3RhcnQgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvcmVzdG9yZSAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9yZXZlcnNlX2RucyAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3NldHVwX3ZuYyAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvc3RhcnQgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC9zdG9wICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvcXMvOmlkL3RyYWZmaWNfdXNhZ2UgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC9xcy86aWQvdmlld19kZXNrdG9wICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3FzLzppZC93ZWxjb21lX2VtYWlsICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvcXMvb3JkZXIgICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3NlcnZlcnMvOmlkICAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc2VydmVycy86aWQvYmFuZHdpZHRoX2dyYXBoICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9jYW5jZWwgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3NlcnZlcnMvOmlkL2ludm9pY2VzICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc2VydmVycy86aWQvaXBtaV9saXZlICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zZXJ2ZXJzLzppZC9yZXZlcnNlX2RucyAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NlcnZlcnMvOmlkL3dlbGNvbWVfZW1haWwgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvc2VydmVycy9vcmRlciAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NzbC86aWQgICAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvc3NsLzppZC9jYW5jZWwgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC9zc2wvOmlkL2NoYW5nZV9hcHByb3Zlcl9lbWFpbCAgfCBbIF0gICAgIHwgWyBdICAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgICB8CnwgL3NzbC86aWQvaW52b2ljZXMgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvc3NsLzppZC9yZXNlbmRfYXBwcm92ZXJfZW1haWwgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC9zc2wvOmlkL3dlbGNvbWVfZW1haWwgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbIF0gICAgICB8IFt4XSAgICAgICB8CnwgL3NzbC9vcmRlciAgICAgICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvYmFja3VwICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9iYWNrdXBzICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2Jsb2NrX3NtdHAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvYnV5X2hkX3NwYWNlICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9idXlfaXAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NhbmNlbCAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvY2hhbmdlX2hvc3RuYW1lICAgICAgICB8IFsgXSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9jaGFuZ2Vfcm9vdF9wYXNzd29yZCAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL2NoYW5nZV90aW1lem9uZSAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvY2hhbmdlX3dlYnV6b19wYXNzd29yZCB8IFsgXSAgICAgfCBbIF0gICAgICB8IFt4XSAgICAgIHwgWyBdICAgICAgIHwKfCAvdnBzLzppZC9kaXNhYmxlX2NkICAgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2Rpc2FibGVfcXVvdGEgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvZWplY3RfY2QgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9lbmFibGVfcXVvdGEgICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC92cHMvOmlkL2luc2VydF9jZCAgICAgICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy86aWQvaW52b2ljZXMgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9yZWluc3RhbGxfb3MgICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3Jlc2V0X3Bhc3N3b3JkICAgICAgICAgfCBbIF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgICB8CnwgL3Zwcy86aWQvcmVzdGFydCAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9yZXN0b3JlICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3JldmVyc2VfZG5zICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvc2V0dXBfdm5jICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC9zbGljZXMgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3N0YXJ0ICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvc3RvcCAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzLzppZC90cmFmZmljX3VzYWdlICAgICAgICAgIHwgWyBdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbIF0gICAgICAgfAp8IC92cHMvOmlkL3ZpZXdfZGVza3RvcCAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3Zwcy86aWQvd2VsY29tZV9lbWFpbCAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFsgXSAgICAgIHwgW3hdICAgICAgIHwKfCAvdnBzL29yZGVyICAgICAgICAgICAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcyAgICAgICAgICAgICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzLzppZCAgICAgICAgICAgICAgICAgICB8IFt4XSAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL2J1eV9pcCAgICAgICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvY2FuY2VsICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzLzppZC9kb3dubG9hZF9iYWNrdXBzICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL2ludm9pY2VzICAgICAgICAgIHwgW3hdICAgICB8IFt4XSAgICAgIHwgW3hdICAgICAgfCBbeF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvbG9naW4gICAgICAgICAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbeF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzLzppZC9taWdyYXRpb24gICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKfCAvd2Vic2l0ZXMvOmlkL3JldmVyc2VfZG5zICAgICAgIHwgWyBdICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgfCBbIF0gICAgICAgfAp8IC93ZWJzaXRlcy86aWQvd2VsY29tZV9lbWFpbCAgICAgfCBbeF0gICAgIHwgW3hdICAgICAgfCBbIF0gICAgICB8IFt4XSAgICAgICB8CnwgL3dlYnNpdGVzL29yZGVyICAgICAgICAgICAgICAgICB8IFsgXSAgICAgfCBbIF0gICAgICB8IFsgXSAgICAgIHwgWyBdICAgICAgIHwKCiMjIyBBUEkgUmVzcG9uc2UgSFRUUCBTdGF0dXMgQ29kZXMKCiMjIyMgQ29tbW9ubHkgVXNlZCB3aXRoIEFQSQoKfCBIVFRQIFZlcmIgfCBDUlVEICAgICAgICAgICB8IEVudGlyZSBDb2xsZWN0aW9uIChlLmcuIC92cHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTcGVjaWZpYyBJdGVtIChlLmcuIC92cHMve2lkfSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8IFBPU1QgICAgICB8IENyZWF0ZSAgICAgICAgIHwgMjAxIChDcmVhdGVkKSwgJ0xvY2F0aW9uJyBoZWFkZXIgd2l0aCBsaW5rIHRvIC9jdXN0b21lcnMve2lkfSBjb250YWluaW5nIG5ldyBJRC4gICAgICAgICAgICAgICAgICAgICB8IDQwNCAoTm90IEZvdW5kKSwgNDA5IChDb25mbGljdCkgaWYgcmVzb3VyY2UgYWxyZWFkeSBleGlzdHMuLiAgICAgICAgICAgICAgIHwKfCBHRVQgICAgICAgfCBSZWFkICAgICAgICAgICB8IDIwMCAoT0spLCBsaXN0IG9mIGN1c3RvbWVycy4gVXNlIHBhZ2luYXRpb24sIHNvcnRpbmcgYW5kIGZpbHRlcmluZyB0byBuYXZpZ2F0ZSBiaWcgbGlzdHMuICAgICAgICAgICAgfCAyMDAgKE9LKSwgc2luZ2xlIGN1c3RvbWVyLiA0MDQgKE5vdCBGb3VuZCksIGlmIElEIG5vdCBmb3VuZCBvciBpbnZhbGlkLiAgICB8CnwgUFVUICAgICAgIHwgVXBkYXRlL1JlcGxhY2UgfCA0MDUgKE1ldGhvZCBOb3QgQWxsb3dlZCksIHVubGVzcyB5b3Ugd2FudCB0byB1cGRhdGUvcmVwbGFjZSBldmVyeSByZXNvdXJjZSBpbiB0aGUgZW50aXJlIGNvbGxlY3Rpb24uIHwgMjAwIChPSykgb3IgMjA0IChObyBDb250ZW50KS4gNDA0IChOb3QgRm91bmQpLCBpZiBJRCBub3QgZm91bmQgb3IgaW52YWxpZC4gfAp8IFBBVENIICAgICB8IFVwZGF0ZS9Nb2RpZnkgIHwgNDA1IChNZXRob2QgTm90IEFsbG93ZWQpLCB1bmxlc3MgeW91IHdhbnQgdG8gbW9kaWZ5IHRoZSBjb2xsZWN0aW9uIGl0c2VsZi4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwMCAoT0spIG9yIDIwNCAoTm8gQ29udGVudCkuIDQwNCAoTm90IEZvdW5kKSwgaWYgSUQgbm90IGZvdW5kIG9yIGludmFsaWQuIHwKfCBERUxFVEUgICAgfCBEZWxldGUgICAgICAgICB8IDQwNSAoTWV0aG9kIE5vdCBBbGxvd2VkKSwgdW5sZXNzIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgd2hvbGUgY29sbGVjdGlvbi0tLW5vdCBvZnRlbiBkZXNpcmFibGUuICAgICAgfCAyMDAgKE9LKS4gNDA0IChOb3QgRm91bmQpLCBpZiBJRCBub3QgZm91bmQgb3IgaW52YWxpZC4gICAgICAgICAgICAgICAgICAgICB8CgoqICoqMjAwIChPSykqKiBJdCBpbmRpY2F0ZXMgdGhhdCB0aGUgUkVTVCBBUEkgc3VjY2Vzc2Z1bGx5IGNhcnJpZWQgb3V0IHdoYXRldmVyIGFjdGlvbiB0aGUgY2xpZW50IHJlcXVlc3RlZCBhbmQgdGhhdCBubyBtb3JlIHNwZWNpZmljIGNvZGUgaW4gdGhlIDJ4eCBzZXJpZXMgaXMgYXBwcm9wcmlhdGUuIFVubGlrZSB0aGUgMjA0IHN0YXR1cyBjb2RlLCBhIDIwMCByZXNwb25zZSBzaG91bGQgaW5jbHVkZSBhIHJlc3BvbnNlIGJvZHkuIFRoZSBpbmZvcm1hdGlvbiByZXR1cm5lZCB3aXRoIHRoZSByZXNwb25zZSBpcyBkZXBlbmRlbnQgb24gdGhlIG1ldGhvZCB1c2VkIGluIHRoZSByZXF1ZXN0LCBmb3IgZXhhbXBsZTogIEdFVCBhbiBlbnRpdHkgY29ycmVzcG9uZGluZyB0byB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGlzIHNlbnQgaW4gdGhlIHJlc3BvbnNlLCBIRUFEIHRoZSBlbnRpdHktaGVhZGVyIGZpZWxkcyBjb3JyZXNwb25kaW5nIHRvIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgYXJlIHNlbnQgaW4gdGhlIHJlc3BvbnNlIHdpdGhvdXQgYW55IG1lc3NhZ2UtYm9keSwgUE9TVCBhbiBlbnRpdHkgZGVzY3JpYmluZyBvciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgdGhlIGFjdGlvbiwgYW5kIFRSQUNFIGFuIGVudGl0eSBjb250YWluaW5nIHRoZSByZXF1ZXN0IG1lc3NhZ2UgYXMgcmVjZWl2ZWQgYnkgdGhlIGVuZCBzZXJ2ZXIuCiogKioyMDEgKENyZWF0ZWQpKiogQSBSRVNUIEFQSSByZXNwb25kcyB3aXRoIHRoZSAyMDEgc3RhdHVzIGNvZGUgd2hlbmV2ZXIgYSByZXNvdXJjZSBpcyBjcmVhdGVkIGluc2lkZSBhIGNvbGxlY3Rpb24uIFRoZXJlIG1heSBhbHNvIGJlIHRpbWVzIHdoZW4gYSBuZXcgcmVzb3VyY2UgaXMgY3JlYXRlZCBhcyBhIHJlc3VsdCBvZiBzb21lIGNvbnRyb2xsZXIgYWN0aW9uLCBpbiB3aGljaCBjYXNlIDIwMSB3b3VsZCBhbHNvIGJlIGFuIGFwcHJvcHJpYXRlIHJlc3BvbnNlLiBUaGUgbmV3bHkgY3JlYXRlZCByZXNvdXJjZSBjYW4gYmUgcmVmZXJlbmNlZCBieSB0aGUgVVJJKHMpIHJldHVybmVkIGluIHRoZSBlbnRpdHkgb2YgdGhlIHJlc3BvbnNlLCB3aXRoIHRoZSBtb3N0IHNwZWNpZmljIFVSSSBmb3IgdGhlIHJlc291cmNlIGdpdmVuIGJ5IGEgTG9jYXRpb24gaGVhZGVyIGZpZWxkLiBUaGUgb3JpZ2luIHNlcnZlciBNVVNUIGNyZWF0ZSB0aGUgcmVzb3VyY2UgYmVmb3JlIHJldHVybmluZyB0aGUgMjAxIHN0YXR1cyBjb2RlLiBJZiB0aGUgYWN0aW9uIGNhbm5vdCBiZSBjYXJyaWVkIG91dCBpbW1lZGlhdGVseSwgdGhlIHNlcnZlciBTSE9VTEQgcmVzcG9uZCB3aXRoIGEgMjAyIChBY2NlcHRlZCkgcmVzcG9uc2UgaW5zdGVhZC4KKiAqKjIwMiAoQWNjZXB0ZWQpKiogQSAyMDIgcmVzcG9uc2UgaXMgdHlwaWNhbGx5IHVzZWQgZm9yIGFjdGlvbnMgdGhhdCB0YWtlIGEgbG9uZyB3aGlsZSB0byBwcm9jZXNzLiBJdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBhY2NlcHRlZCBmb3IgcHJvY2Vzc2luZywgYnV0IHRoZSBwcm9jZXNzaW5nIGhhcyBub3QgYmVlbiBjb21wbGV0ZWQuIFRoZSByZXF1ZXN0IG1pZ2h0IG9yIG1pZ2h0IG5vdCBiZSBldmVudHVhbGx5IGFjdGVkIHVwb24sIG9yIGV2ZW4gbWF5YmUgZGlzYWxsb3dlZCB3aGVuIHByb2Nlc3Npbmcgb2NjdXJzLiBJdHMgcHVycG9zZSBpcyB0byBhbGxvdyBhIHNlcnZlciB0byBhY2NlcHQgYSByZXF1ZXN0IGZvciBzb21lIG90aGVyIHByb2Nlc3MgKHBlcmhhcHMgYSBiYXRjaC1vcmllbnRlZCBwcm9jZXNzIHRoYXQgaXMgb25seSBydW4gb25jZSBwZXIgZGF5KSB3aXRob3V0IHJlcXVpcmluZyB0aGF0IHRoZSB1c2VyIGFnZW50J3MgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIHBlcnNpc3QgdW50aWwgdGhlIHByb2Nlc3MgaXMgY29tcGxldGVkLiBUaGUgZW50aXR5IHJldHVybmVkIHdpdGggdGhpcyByZXNwb25zZSBTSE9VTEQgaW5jbHVkZSBhbiBpbmRpY2F0aW9uIG9mIHRoZSByZXF1ZXN0J3MgY3VycmVudCBzdGF0dXMgYW5kIGVpdGhlciBhIHBvaW50ZXIgdG8gYSBzdGF0dXMgbW9uaXRvciAoam9iIHF1ZXVlIGxvY2F0aW9uKSBvciBzb21lIGVzdGltYXRlIG9mIHdoZW4gdGhlIHVzZXIgY2FuIGV4cGVjdCB0aGUgcmVxdWVzdCB0byBiZSBmdWxmaWxsZWQuCiogKioyMDQgKE5vIENvbnRlbnQpKiogVGhlIDIwNCBzdGF0dXMgY29kZSBpcyB1c3VhbGx5IHNlbnQgb3V0IGluIHJlc3BvbnNlIHRvIGEgYFBVVGAsIGBQT1NUYCwgb3IgYERFTEVURWAgcmVxdWVzdCB3aGVuIHRoZSBSRVNUIEFQSSBkZWNsaW5lcyB0byBzZW5kIGJhY2sgYW55IHN0YXR1cyBtZXNzYWdlIG9yIHJlcHJlc2VudGF0aW9uIGluIHRoZSByZXNwb25zZSBtZXNzYWdlJ3MgYm9keS4gQW4gQVBJIG1heSBhbHNvIHNlbmQgMjA0IGluIGNvbmp1bmN0aW9uIHdpdGggYSBHRVQgcmVxdWVzdCB0byBpbmRpY2F0ZSB0aGF0IHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UgZXhpc3RzLCBidXQgaGFzIG5vIHN0YXRlIHJlcHJlc2VudGF0aW9uIHRvIGluY2x1ZGUgaW4gdGhlIGJvZHkuIElmIHRoZSBjbGllbnQgaXMgYSB1c2VyIGFnZW50LCBpdCBTSE9VTEQgTk9UIGNoYW5nZSBpdHMgZG9jdW1lbnQgdmlldyBmcm9tIHRoYXQgd2hpY2ggY2F1c2VkIHRoZSByZXF1ZXN0IHRvIGJlIHNlbnQuIFRoaXMgcmVzcG9uc2UgaXMgcHJpbWFyaWx5IGludGVuZGVkIHRvIGFsbG93IGlucHV0IGZvciBhY3Rpb25zIHRvIHRha2UgcGxhY2Ugd2l0aG91dCBjYXVzaW5nIGEgY2hhbmdlIHRvIHRoZSB1c2VyIGFnZW50J3MgYWN0aXZlIGRvY3VtZW50IHZpZXcuIEhvd2V2ZXIsIGFueSBuZXcgb3IgdXBkYXRlZCBtZXRhaW5mb3JtYXRpb24gU0hPVUxEIGJlIGFwcGxpZWQgdG8gdGhlIGRvY3VtZW50IGN1cnJlbnRseSBpbiB0aGUgdXNlciBhZ2VudCdzIGR5bmFtaWMgdmlldy4gVGhlIDIwNCByZXNwb25zZSBNVVNUIE5PVCBpbmNsdWRlIGEgbWVzc2FnZS1ib2R5IGFuZCB0aHVzIGlzIGFsd2F5cyB0ZXJtaW5hdGVkIGJ5IHRoZSBmaXJzdCBlbXB0eSBsaW5lIGFmdGVyIHRoZSBoZWFkZXIgZmllbGRzLgoqICoqMzAxIChNb3ZlZCBQZXJtYW5lbnRseSkqKiBUaGUgMzAxIHN0YXR1cyBjb2RlIGluZGljYXRlcyB0aGF0IHRoZSBSRVNUIEFQSSdzIHJlc291cmNlIG1vZGVsIGhhcyBiZWVuIHNpZ25pZmljYW50bHkgcmVkZXNpZ25lZCwgYW5kIGEgbmV3IHBlcm1hbmVudCBVUkkgaGFzIGJlZW4gYXNzaWduZWQgdG8gdGhlIGNsaWVudCdzIHJlcXVlc3RlZCByZXNvdXJjZS4gVGhlIFJFU1QgQVBJIHNob3VsZCBzcGVjaWZ5IHRoZSBuZXcgVVJJIGluIHRoZSByZXNwb25zZSdzIExvY2F0aW9uIGhlYWRlciwgYW5kIGFsbCBmdXR1cmUgcmVxdWVzdHMgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIHRoZSBnaXZlbiBVUkkuIFlvdSB3aWxsIGhhcmRseSB1c2UgdGhpcyByZXNwb25zZSBjb2RlIGluIHlvdXIgQVBJIGFzIHlvdSBjYW4gYWx3YXlzIHVzZSB0aGUgQVBJIHZlcnNpb25pbmcgZm9yIHRoZSBuZXcgQVBJIHdoaWxlIHJldGFpbmluZyB0aGUgb2xkIG9uZS4KKiAqKjMwMiAoRm91bmQpKiogVGhlIEhUVFAgcmVzcG9uc2Ugc3RhdHVzIGNvZGUgMzAyIEZvdW5kIGlzIGEgY29tbW9uIHdheSBvZiBwZXJmb3JtaW5nIFVSTCByZWRpcmVjdGlvbi4gQW4gSFRUUCByZXNwb25zZSB3aXRoIHRoaXMgc3RhdHVzIGNvZGUgd2lsbCBhZGRpdGlvbmFsbHkgcHJvdmlkZSBhIFVSTCBpbiB0aGUgTG9jYXRpb24gaGVhZGVyIGZpZWxkLiBUaGUgdXNlciBhZ2VudCAoZS5nLiwgYSB3ZWIgYnJvd3NlcikgaXMgaW52aXRlZCBieSBhIHJlc3BvbnNlIHdpdGggdGhpcyBjb2RlIHRvIG1ha2UgYSBzZWNvbmQuIE90aGVyd2lzZSBpZGVudGljYWwsIHJlcXVlc3QgdG8gdGhlIG5ldyBVUkwgc3BlY2lmaWVkIGluIHRoZSBsb2NhdGlvbiBmaWVsZC4gTWFueSB3ZWIgYnJvd3NlcnMgaW1wbGVtZW50ZWQgdGhpcyBjb2RlIGluIGEgbWFubmVyIHRoYXQgdmlvbGF0ZWQgdGhpcyBzdGFuZGFyZCwgY2hhbmdpbmcgdGhlIHJlcXVlc3QgdHlwZSBvZiB0aGUgbmV3IHJlcXVlc3QgdG8gR0VULCByZWdhcmRsZXNzIG9mIHRoZSB0eXBlIGVtcGxveWVkIGluIHRoZSBvcmlnaW5hbCByZXF1ZXN0IChlLmcuLCBQT1NUKS4gUkZDIDE5NDUgYW5kIFJGQyAyMDY4IHNwZWNpZnkgdGhhdCB0aGUgY2xpZW50IGlzIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGUgbWV0aG9kIG9uIHRoZSByZWRpcmVjdGVkIHJlcXVlc3QuIFRoZSBzdGF0dXMgY29kZXMgMzAzIGFuZCAzMDcgaGF2ZSBiZWVuIGFkZGVkIGZvciBzZXJ2ZXJzIHRoYXQgd2lzaCB0byBtYWtlIHVuYW1iaWd1b3VzbHkgY2xlYXIgd2hpY2gga2luZCBvZiByZWFjdGlvbiBpcyBleHBlY3RlZCBvZiB0aGUgY2xpZW50LgoqICoqMzAzIChTZWUgT3RoZXIpKiogQSAzMDMgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgYSBjb250cm9sbGVyIHJlc291cmNlIGhhcyBmaW5pc2hlZCBpdHMgd29yaywgYnV0IGluc3RlYWQgb2Ygc2VuZGluZyBhIHBvdGVudGlhbGx5IHVud2FudGVkIHJlc3BvbnNlIGJvZHksIGl0IHNlbmRzIHRoZSBjbGllbnQgdGhlIFVSSSBvZiBhIHJlc3BvbnNlIHJlc291cmNlLiBUaGUgcmVzcG9uc2UgY2FuIGJlIHRoZSBVUkkgb2YgdGhlIHRlbXBvcmFyeSBzdGF0dXMgbWVzc2FnZSwgb3IgdGhlIFVSSSB0byBzb21lIGFscmVhZHkgZXhpc3RpbmcsIG1vcmUgcGVybWFuZW50LCByZXNvdXJjZS4gR2VuZXJhbGx5IHNwZWFraW5nLCB0aGUgMzAzIHN0YXR1cyBjb2RlIGFsbG93cyBhIFJFU1QgQVBJIHRvIHNlbmQgYSByZWZlcmVuY2UgdG8gYSByZXNvdXJjZSB3aXRob3V0IGZvcmNpbmcgdGhlIGNsaWVudCB0byBkb3dubG9hZCBpdHMgc3RhdGUuIEluc3RlYWQsIHRoZSBjbGllbnQgbWF5IHNlbmQgYSBHRVQgcmVxdWVzdCB0byB0aGUgdmFsdWUgb2YgdGhlIExvY2F0aW9uIGhlYWRlci4gVGhlIDMwMyByZXNwb25zZSBNVVNUIE5PVCBiZSBjYWNoZWQsIGJ1dCB0aGUgcmVzcG9uc2UgdG8gdGhlIHNlY29uZCAocmVkaXJlY3RlZCkgcmVxdWVzdCBtaWdodCBiZSBjYWNoZWFibGUuCiogKiozMDQgKE5vdCBNb2RpZmllZCkqKiBUaGlzIHN0YXR1cyBjb2RlIGlzIHNpbWlsYXIgdG8gMjA0ICgiTm8gQ29udGVudCIpIGluIHRoYXQgdGhlIHJlc3BvbnNlIGJvZHkgbXVzdCBiZSBlbXB0eS4gVGhlIGNyaXRpY2FsIGRpc3RpbmN0aW9uIGlzIHRoYXQgMjA0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBub3RoaW5nIHRvIHNlbmQgaW4gdGhlIGJvZHksIHdoZXJlYXMgMzA0IGlzIHVzZWQgd2hlbiB0aGUgcmVzb3VyY2UgaGFzIG5vdCBiZWVuIG1vZGlmaWVkIHNpbmNlIHRoZSB2ZXJzaW9uIHNwZWNpZmllZCBieSB0aGUgcmVxdWVzdCBoZWFkZXJzIElmLU1vZGlmaWVkLVNpbmNlIG9yIElmLU5vbmUtTWF0Y2guIEluIHN1Y2ggYSBjYXNlLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJldHJhbnNtaXQgdGhlIHJlc291cmNlIHNpbmNlIHRoZSBjbGllbnQgc3RpbGwgaGFzIGEgcHJldmlvdXNseS1kb3dubG9hZGVkIGNvcHkuIFVzaW5nIHRoaXMgc2F2ZXMgYmFuZHdpZHRoIGFuZCByZXByb2Nlc3Npbmcgb24gYm90aCB0aGUgc2VydmVyIGFuZCBjbGllbnQsIGFzIG9ubHkgdGhlIGhlYWRlciBkYXRhIG11c3QgYmUgc2VudCBhbmQgcmVjZWl2ZWQgaW4gY29tcGFyaXNvbiB0byB0aGUgZW50aXJldHkgb2YgdGhlIHBhZ2UgYmVpbmcgcmUtcHJvY2Vzc2VkIGJ5IHRoZSBzZXJ2ZXIsIHRoZW4gc2VudCBhZ2FpbiB1c2luZyBtb3JlIGJhbmR3aWR0aCBvZiB0aGUgc2VydmVyIGFuZCBjbGllbnQuCiogKiozMDcgKFRlbXBvcmFyeSBSZWRpcmVjdCkqKiBBIDMwNyByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCB0aGUgUkVTVCBBUEkgaXMgbm90IGdvaW5nIHRvIHByb2Nlc3MgdGhlIGNsaWVudCdzIHJlcXVlc3QuIEluc3RlYWQsIHRoZSBjbGllbnQgc2hvdWxkIHJlc3VibWl0IHRoZSByZXF1ZXN0IHRvIHRoZSBVUkkgc3BlY2lmaWVkIGJ5IHRoZSByZXNwb25zZSBtZXNzYWdlJ3MgTG9jYXRpb24gaGVhZGVyLiBIb3dldmVyLCBmdXR1cmUgcmVxdWVzdHMgc2hvdWxkIHN0aWxsIHVzZSB0aGUgb3JpZ2luYWwgVVJJLiBBIFJFU1QgQVBJIGNhbiB1c2UgdGhpcyBzdGF0dXMgY29kZSB0byBhc3NpZ24gYSB0ZW1wb3JhcnkgVVJJIHRvIHRoZSBjbGllbnQncyByZXF1ZXN0ZWQgcmVzb3VyY2UuIEZvciBleGFtcGxlLCBhIDMwNyByZXNwb25zZSBjYW4gYmUgdXNlZCB0byBzaGlmdCBhIGNsaWVudCByZXF1ZXN0IG92ZXIgdG8gYW5vdGhlciBob3N0LiBUaGUgdGVtcG9yYXJ5IFVSSSBTSE9VTEQgYmUgZ2l2ZW4gYnkgdGhlIExvY2F0aW9uIGZpZWxkIGluIHRoZSByZXNwb25zZS4gVW5sZXNzIHRoZSByZXF1ZXN0IG1ldGhvZCB3YXMgSEVBRCwgdGhlIGVudGl0eSBvZiB0aGUgcmVzcG9uc2UgU0hPVUxEIGNvbnRhaW4gYSBzaG9ydCBoeXBlcnRleHQgbm90ZSB3aXRoIGEgaHlwZXJsaW5rIHRvIHRoZSBuZXcgVVJJKHMpLiBJZiB0aGUgMzA3IHN0YXR1cyBjb2RlIGlzIHJlY2VpdmVkIGluIHJlc3BvbnNlIHRvIGEgcmVxdWVzdCBvdGhlciB0aGFuIGBHRVRgIG9yIGBIRUFEYCwgdGhlIHVzZXIgYWdlbnQgTVVTVCBOT1QgYXV0b21hdGljYWxseSByZWRpcmVjdCB0aGUgcmVxdWVzdCB1bmxlc3MgaXQgY2FuIGJlIGNvbmZpcm1lZCBieSB0aGUgdXNlciwgc2luY2UgdGhpcyBtaWdodCBjaGFuZ2UgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggdGhlIHJlcXVlc3Qgd2FzIGlzc3VlZC4KKiAqKjQwMCAoQmFkIFJlcXVlc3QpKiogNDAwIGlzIHRoZSBnZW5lcmljIGNsaWVudC1zaWRlIGVycm9yIHN0YXR1cywgdXNlZCB3aGVuIG5vIG90aGVyIDR4eCBlcnJvciBjb2RlIGlzIGFwcHJvcHJpYXRlLiBFcnJvcnMgY2FuIGJlIGxpa2UgbWFsZm9ybWVkIHJlcXVlc3Qgc3ludGF4LCBpbnZhbGlkIHJlcXVlc3QgbWVzc2FnZSBwYXJhbWV0ZXJzLCBvciBkZWNlcHRpdmUgcmVxdWVzdCByb3V0aW5nIGV0Yy4gVGhlIGNsaWVudCBTSE9VTEQgTk9UIHJlcGVhdCB0aGUgcmVxdWVzdCB3aXRob3V0IG1vZGlmaWNhdGlvbnMuCiogKio0MDEgKFVuYXV0aG9yaXplZCkqKiBBIDQwMSBlcnJvciByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50IHRyaWVkIHRvIG9wZXJhdGUgb24gYSBwcm90ZWN0ZWQgcmVzb3VyY2Ugd2l0aG91dCBwcm92aWRpbmcgdGhlIHByb3BlciBhdXRob3JpemF0aW9uLiBJdCBtYXkgaGF2ZSBwcm92aWRlZCB0aGUgd3JvbmcgY3JlZGVudGlhbHMgb3Igbm9uZSBhdCBhbGwuIFRoZSByZXNwb25zZSBtdXN0IGluY2x1ZGUgYSBXV1ctQXV0aGVudGljYXRlIGhlYWRlciBmaWVsZCBjb250YWluaW5nIGEgY2hhbGxlbmdlIGFwcGxpY2FibGUgdG8gdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4gVGhlIGNsaWVudCBNQVkgcmVwZWF0IHRoZSByZXF1ZXN0IHdpdGggYSBzdWl0YWJsZSBBdXRob3JpemF0aW9uIGhlYWRlciBmaWVsZC4gSWYgdGhlIHJlcXVlc3QgYWxyZWFkeSBpbmNsdWRlZCBBdXRob3JpemF0aW9uIGNyZWRlbnRpYWxzLCB0aGVuIHRoZSA0MDEgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgYXV0aG9yaXphdGlvbiBoYXMgYmVlbiByZWZ1c2VkIGZvciB0aG9zZSBjcmVkZW50aWFscy4gSWYgdGhlIDQwMSByZXNwb25zZSBjb250YWlucyB0aGUgc2FtZSBjaGFsbGVuZ2UgYXMgdGhlIHByaW9yIHJlc3BvbnNlLCBhbmQgdGhlIHVzZXIgYWdlbnQgaGFzIGFscmVhZHkgYXR0ZW1wdGVkIGF1dGhlbnRpY2F0aW9uIGF0IGxlYXN0IG9uY2UsIHRoZW4gdGhlIHVzZXIgU0hPVUxEIGJlIHByZXNlbnRlZCB0aGUgZW50aXR5IHRoYXQgd2FzIGdpdmVuIGluIHRoZSByZXNwb25zZSwgc2luY2UgdGhhdCBlbnRpdHkgbWlnaHQgaW5jbHVkZSByZWxldmFudCBkaWFnbm9zdGljIGluZm9ybWF0aW9uLgoqICoqNDAzIChGb3JiaWRkZW4pKiogQSA0MDMgZXJyb3IgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgdGhlIGNsaWVudCdzIHJlcXVlc3QgaXMgZm9ybWVkIGNvcnJlY3RseSwgYnV0IHRoZSBSRVNUIEFQSSByZWZ1c2VzIHRvIGhvbm9yIGl0LCBpLmUuLCB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnMgZm9yIHRoZSByZXNvdXJjZS4gQSA0MDMgcmVzcG9uc2UgaXMgbm90IGEgY2FzZSBvZiBpbnN1ZmZpY2llbnQgY2xpZW50IGNyZWRlbnRpYWxzOyB0aGF0IHdvdWxkIGJlIDQwMSAoIlVuYXV0aG9yaXplZCIpLiBBdXRoZW50aWNhdGlvbiB3aWxsIG5vdCBoZWxwLCBhbmQgdGhlIHJlcXVlc3QgU0hPVUxEIE5PVCBiZSByZXBlYXRlZC4gVW5saWtlIGEgNDAxIFVuYXV0aG9yaXplZCByZXNwb25zZSwgYXV0aGVudGljYXRpbmcgd2lsbCBtYWtlIG5vIGRpZmZlcmVuY2UuCiogKio0MDQgKE5vdCBGb3VuZCkqKiBUaGUgNDA0IGVycm9yIHN0YXR1cyBjb2RlIGluZGljYXRlcyB0aGF0IHRoZSBSRVNUIEFQSSBjYW4ndCBtYXAgdGhlIGNsaWVudCdzIFVSSSB0byBhIHJlc291cmNlIGJ1dCBtYXkgYmUgYXZhaWxhYmxlIGluIHRoZSBmdXR1cmUuIFN1YnNlcXVlbnQgcmVxdWVzdHMgYnkgdGhlIGNsaWVudCBhcmUgcGVybWlzc2libGUuIE5vIGluZGljYXRpb24gaXMgZ2l2ZW4gb2Ygd2hldGhlciB0aGUgY29uZGl0aW9uIGlzIHRlbXBvcmFyeSBvciBwZXJtYW5lbnQuIFRoZSA0MTAgKEdvbmUpIHN0YXR1cyBjb2RlIFNIT1VMRCBiZSB1c2VkIGlmIHRoZSBzZXJ2ZXIga25vd3MsIHRocm91Z2ggc29tZSBpbnRlcm5hbGx5IGNvbmZpZ3VyYWJsZSBtZWNoYW5pc20sIHRoYXQgYW4gb2xkIHJlc291cmNlIGlzIHBlcm1hbmVudGx5IHVuYXZhaWxhYmxlIGFuZCBoYXMgbm8gZm9yd2FyZGluZyBhZGRyZXNzLiBUaGlzIHN0YXR1cyBjb2RlIGlzIGNvbW1vbmx5IHVzZWQgd2hlbiB0aGUgc2VydmVyIGRvZXMgbm90IHdpc2ggdG8gcmV2ZWFsIGV4YWN0bHkgd2h5IHRoZSByZXF1ZXN0IGhhcyBiZWVuIHJlZnVzZWQsIG9yIHdoZW4gbm8gb3RoZXIgcmVzcG9uc2UgaXMgYXBwbGljYWJsZS4KKiAqKjQwNSAoTWV0aG9kIE5vdCBBbGxvd2VkKSoqIFRoZSBBUEkgcmVzcG9uZHMgd2l0aCBhIDQwNSBlcnJvciB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjbGllbnQgdHJpZWQgdG8gdXNlIGFuIEhUVFAgbWV0aG9kIHRoYXQgdGhlIHJlc291cmNlIGRvZXMgbm90IGFsbG93LiBGb3IgaW5zdGFuY2UsIGEgcmVhZC1vbmx5IHJlc291cmNlIGNvdWxkIHN1cHBvcnQgb25seSBHRVQgYW5kIEhFQUQsIHdoaWxlIGEgY29udHJvbGxlciByZXNvdXJjZSBtaWdodCBhbGxvdyBHRVQgYW5kIFBPU1QsIGJ1dCBub3QgUFVUIG9yIERFTEVURS4gQSA0MDUgcmVzcG9uc2UgbXVzdCBpbmNsdWRlIHRoZSBBbGxvdyBoZWFkZXIsIHdoaWNoIGxpc3RzIHRoZSBIVFRQIG1ldGhvZHMgdGhhdCB0aGUgcmVzb3VyY2Ugc3VwcG9ydHMuIEZvciBleGFtcGxlOiBBbGxvdzogR0VULCBQT1NUCiogKio0MDYgKE5vdCBBY2NlcHRhYmxlKSoqIFRoZSA0MDYgZXJyb3IgcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgdGhlIEFQSSBpcyBub3QgYWJsZSB0byBnZW5lcmF0ZSBhbnkgb2YgdGhlIGNsaWVudCdzIHByZWZlcnJlZCBtZWRpYSB0eXBlcywgYXMgaW5kaWNhdGVkIGJ5IHRoZSBBY2NlcHQgcmVxdWVzdCBoZWFkZXIuIEZvciBleGFtcGxlLCBhIGNsaWVudCByZXF1ZXN0IGZvciBkYXRhIGZvcm1hdHRlZCBhcyBgYXBwbGljYXRpb24veG1sYCB3aWxsIHJlY2VpdmUgYSA0MDYgcmVzcG9uc2UgaWYgdGhlIEFQSSBpcyBvbmx5IHdpbGxpbmcgdG8gZm9ybWF0IGRhdGEgYXMgYGFwcGxpY2F0aW9uL2pzb25gLiBJZiB0aGUgcmVzcG9uc2UgY291bGQgYmUgdW5hY2NlcHRhYmxlLCBhIHVzZXIgYWdlbnQgU0hPVUxEIHRlbXBvcmFyaWx5IHN0b3AgcmVjZWlwdCBvZiBtb3JlIGRhdGEgYW5kIHF1ZXJ5IHRoZSB1c2VyIGZvciBhIGRlY2lzaW9uIG9uIGZ1cnRoZXIgYWN0aW9ucy4KKiAqKjQxMiAoUHJlY29uZGl0aW9uIEZhaWxlZCkqKiBUaGUgNDEyIGVycm9yIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgc3BlY2lmaWVkIG9uZSBvciBtb3JlIHByZWNvbmRpdGlvbnMgaW4gaXRzIHJlcXVlc3QgaGVhZGVycywgZWZmZWN0aXZlbHkgdGVsbGluZyB0aGUgUkVTVCBBUEkgdG8gY2Fycnkgb3V0IGl0cyByZXF1ZXN0IG9ubHkgaWYgY2VydGFpbiBjb25kaXRpb25zIHdlcmUgbWV0LiBBIDQxMiByZXNwb25zZSBpbmRpY2F0ZXMgdGhhdCB0aG9zZSBjb25kaXRpb25zIHdlcmUgbm90IG1ldCwgc28gaW5zdGVhZCBvZiBjYXJyeWluZyBvdXQgdGhlIHJlcXVlc3QsIHRoZSBBUEkgc2VuZHMgdGhpcyBzdGF0dXMgY29kZS4KKiAqKjQxNSAoVW5zdXBwb3J0ZWQgTWVkaWEgVHlwZSkqKiBUaGUgNDE1IGVycm9yIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBBUEkgaXMgbm90IGFibGUgdG8gcHJvY2VzcyB0aGUgY2xpZW50J3Mgc3VwcGxpZWQgbWVkaWEgdHlwZSwgYXMgaW5kaWNhdGVkIGJ5IHRoZSBDb250ZW50LVR5cGUgcmVxdWVzdCBoZWFkZXIuIEZvciBleGFtcGxlLCBhIGNsaWVudCByZXF1ZXN0IGluY2x1ZGluZyBkYXRhIGZvcm1hdHRlZCBhcyBgYXBwbGljYXRpb24veG1sYCB3aWxsIHJlY2VpdmUgYSA0MTUgcmVzcG9uc2UgaWYgdGhlIEFQSSBpcyBvbmx5IHdpbGxpbmcgdG8gcHJvY2VzcyBkYXRhIGZvcm1hdHRlZCBhcyBgYXBwbGljYXRpb24vanNvbmAuIEZvciBleGFtcGxlLCB0aGUgY2xpZW50IHVwbG9hZHMgYW4gaW1hZ2UgYXMgaW1hZ2Uvc3ZnK3htbCwgYnV0IHRoZSBzZXJ2ZXIgcmVxdWlyZXMgdGhhdCBpbWFnZXMgdXNlIGEgZGlmZmVyZW50IGZvcm1hdC4KKiAqKjUwMCAoSW50ZXJuYWwgU2VydmVyIEVycm9yKSoqIDUwMCBpcyB0aGUgZ2VuZXJpYyBSRVNUIEFQSSBlcnJvciByZXNwb25zZS4gTW9zdCB3ZWIgZnJhbWV3b3JrcyBhdXRvbWF0aWNhbGx5IHJlc3BvbmQgd2l0aCB0aGlzIHJlc3BvbnNlIHN0YXR1cyBjb2RlIHdoZW5ldmVyIHRoZXkgZXhlY3V0ZSBzb21lIHJlcXVlc3QgaGFuZGxlciBjb2RlIHRoYXQgcmFpc2VzIGFuIGV4Y2VwdGlvbi4gQSA1MDAgZXJyb3IgaXMgbmV2ZXIgdGhlIGNsaWVudCdzIGZhdWx0LCBhbmQgdGhlcmVmb3JlLCBpdCBpcyByZWFzb25hYmxlIGZvciB0aGUgY2xpZW50IHRvIHJldHJ5IHRoZSBzYW1lIHJlcXVlc3QgdGhhdCB0cmlnZ2VyZWQgdGhpcyByZXNwb25zZSBhbmQgaG9wZSB0byBnZXQgYSBkaWZmZXJlbnQgcmVzcG9uc2UuIFRoZSBBUEkgcmVzcG9uc2UgaXMgdGhlIGdlbmVyaWMgZXJyb3IgbWVzc2FnZSwgZ2l2ZW4gd2hlbiBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbiB3YXMgZW5jb3VudGVyZWQgYW5kIG5vIG1vcmUgc3BlY2lmaWMgbWVzc2FnZSBpcyBzdWl0YWJsZS4KKiAqKjUwMSAoTm90IEltcGxlbWVudGVkKSoqIFRoZSBzZXJ2ZXIgZWl0aGVyIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgcmVxdWVzdCBtZXRob2QsIG9yIGl0IGNhbm5vdCBmdWxmaWxsIHRoZSByZXF1ZXN0LiBVc3VhbGx5LCB0aGlzIGltcGxpZXMgZnV0dXJlIGF2YWlsYWJpbGl0eSAoZS5nLiwgYSBuZXcgZmVhdHVyZSBvZiBhIHdlYi1zZXJ2aWNlIEFQSSkuCgojIyMgSG93IGl0IFdvcmtzCgpXZSB1c2UgVnVlIDMgd2l0aCB0aGUgQ29tcG9zaXRpb24gQVBJIHRvIHByb3ZpZGUgYW4gZW50aXJlIHdlYnNpdGUvYXBwbGljYXRpb24gaW4gYSBzaW5nbGUgcGFnZS4gIFRoaXMgaXMgZG9uZSB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIFZ1ZSBTRkMncyAoU2luZ2xlIEZpbGUgQ29tcG9uZW50cykgd2hpY2ggYW5kIHRoZSBWdWUgUm91dGVyIHRvIGNoYW5nZSB0aGUgdXJsIGluIHRoZSBicm93c2VyIHdpdGhvdXQgYWN0dWFsbHkgbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlLgoKVmFyaWFibGVzIGFyZSBtb3N0bHkgaGFuZGxlZCBieSByZWZlcmVuY2UgKGxpa2UgYSBwb2ludGVyKS4gIFRoaXMgYWxsb3dzIHVzIHRvIHBhc3MgYXJvdW5kIHZhcmlhYmxlcyB0aGF0IGFyZSB1a2VwdCB1cCB0byBkYXRlIHdoZW4gY2hhbmdlZCBpbiBvdGhlciBzZWN0aW9ucyBvZiB0aGUgc2l0ZS4KCiMjIyMgQ29yZSBGdW5jdGlvbmFsaXR5CgpUaGVzZSBhcmUgdGhlIGxpYnMgd2hpY2ggcG93ZXIgdGhlIG1ham9yaXR5IG9mIHRoZSBzaXRlcyBmdW5jdGlvbmFsaXR5LiAgWW91IHNob3VsZCBhdCBsZWFzdCBicmVpZmx5IHJlYWQgb3B2ZXIgZWFjaCBvZiB0aGVtLgoKKiBbKipWdWUgMyoqXShodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9pbnRyb2R1Y3Rpb24uaHRtbCkgaXMgdGhlICoqVGVtcGxhdGUgRW5naW5lKiogd2l0aCBhbGwgdGhlIG1vZGVybiBiZWxscyBhbmQgd2hpc3RsZXMgbGlrZSBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nIHRoZSBkaXNwbGF5IHJlbmRlciBhcyBkYXRhIGNoYW5nZXMuCiogWyoqUGluaWEqKl0oaHR0cHM6Ly9waW5pYS52dWVqcy5vcmcvaW50cm9kdWN0aW9uLmh0bWwpIGlzIHVzZWQgdG8gcHJvdmlkZSAqKkRhdGEgU3RvcmVzKiogd2hpY2ggYWxsb3cgdXMgdG8gbG9hZCBkYXRhIHRoYXQgaXMgcmV1c2FibGUgYmV0d2VlbiBwYWdlcyB3aXRob3V0IGhhdmluZyB0byByZWxvYWQgdGhlIGRhdGEuCiogWyoqVnVlIFJvdXRlcioqXShodHRwczovL3JvdXRlci52dWVqcy5vcmcvaW5zdGFsbGF0aW9uLmh0bWwpIGlzIHVzZWQgZm9yICoqUm91dGluZyoqIHRvIHRyaWdnZXIgY2FsbGluZyBwYWdlcyBiYXNlZCBvbiB0aGUgdXJsIHdoaWxlIGFsbCBiZWluZyBpbiBhIHNpbmdsZSBwYWdlKS4KCiMjIyMgQWRkaXRpb25hbCBGdW5jdGlvbmFsaXR5CgpUaGlzIHN0dWZmIHByb3ZpZGVzIGdvb2QgZmVhdHVyZXMgYnV0IGRvZXMgbm90IHJlcXVpcmUgeW91IHRvIHJlYWxseSBiZSBmYW1paWFyIHdpdGggaXQuICBTa2lwIG92ZXIgdGhlc2UgdW5sZXNzIHlvdSBmaW5kIHlvdSBuZWVkIHRvIGtub3cgbW9yZSBhYm91dCBvbmUgb2YgdGhlbSBmb3Igc29tZSByZWFzb24uCgoqIFsqKlZpdGUqKl0oaHR0cHM6Ly92aXRlanMuZGV2L2d1aWRlLykgaXMgb3VyICoqRnJvbnRlbmQgVG9vbGluZyoqIHN5c3RlbSB3aGljaCBwcm92aWRlcyBhIG5pY2UgZGV2IHNldHVwIGFuZCBoYW5kbGVzIGJ1aWxkaW5nIHRoZSBwcm9qZWN0IGZvciBwcm9kdWN0aW9uIHVzZS4KKiBbKipWaXRlIFBXQSoqXShodHRwczovL3ZpdGUtcHdhLW9yZy5uZXRsaWZ5LmFwcC9ndWlkZS8pIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHRoZSB0aGUgZmlsZXMgbmVlZGVkIHNvIHdlIGFyZSBhIFsqKlBXQSoqXShodHRwczovL3dlYi5kZXYvbGVhcm4vcHdhLykgKCoqUHJvZ3Jlc3NpdmUgV2ViIEFwcCoqKS4KKiBbKipFbGVjdHJvbioqXShodHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy8pIGFsbG93cyB1cyB0byBidWlsZCBhICoqRGVza3RvcCBBcHAqKiBmb3IgbWFjT1MsIFdpbmRvd3MsIExpbnV4LCBhcyB3ZWxsIGFzIE1vYmlsZSBEZXZpY2UgdmVyc2lvbnMuCiogWyoqRVNMaW50KipdKGh0dHBzOi8vZXNsaW50Lm9yZy8pIGlzIG91ciAqKkxpbnRlcioqIHdoaWNoIGNhbiBkZXRlY3QgYSB3aWRlIHJhbmdlIG9mIHByb2JsZW1zIHlvdXIgY29kZS4KKiBbKipQcmV0dGllcioqXShodHRwczovL3ByZXR0aWVyLmlvLykgaXMgb3VyICoqQ29kZSBGb3JtYXR0ZXIqKiBhbGxvd2luZyBhdXRvbWF0aWMgZm9ybWF0dGluZyBvZiBjb2RlIGJhc2VkIG9uIG91ciBzZXQgb2YgcHJlZGVmaW5lZCBydWxlcy4KKiBbKipWaXRlc3QqKl0oaHR0cHM6Ly92aXRlc3QuZGV2L2d1aWRlLykgaXMgb3VyICoqVW5pdCBUZXN0aW5nKiogZnJhbWV3b3JrLgoqIFsqKlZlZVZhbGlkYXRlKipdKGh0dHBzOi8vdmVlLXZhbGlkYXRlLmxvZ2FyZXRtLmNvbS92NC9ndWlkZS9vdmVydmlldy8pIGlzIGluc3RhbGxlZCBmb3IgKipGb3JtIFZhbGlkYXRpb24qKgoqIFsqKlZ1ZS1pMThuKipdKGh0dHBzOi8vdnVlLWkxOG4uaW50bGlmeS5kZXYvZ3VpZGUvaW50cm9kdWN0aW9uLmh0bWwpIGlzIG91ciAqKlRyYW5zbGF0aW9uKiogbGliLgoKIyMjIyBJbnNwZWN0aW5nIGFuZCBEZWJ1Z2dpbmcgVGhlIExpdmUgRGF0YQoKVGhlcmUgYXJlIHNldmVyYWwgRGV2ZWxvcGVyIENvbnNvbGUgdHlwZSBpbnRlcmZhY2VzIHNldHVwIHdoaWNoIHdlIGNhbiB1c2UgdG8gdmlldyBhbmQgbW9kaWZ5IHRoZSBsaXZlIHZhcmlhYmxlcyBnZW5lcmF0aW5nIHRoZSBzaXRlLgoKQnJvd3NlciBFeHRlbnNpb24gW1Z1ZSBEZXZ0b29sc10oaHR0cHM6Ly9kZXZ0b29scy52dWVqcy5vcmcvZ3VpZGUvaW5zdGFsbGF0aW9uLmh0bWwpCiFbdnVlLWRldnRvb2xzLWV4dGVuc2lvbl0oaHR0cHM6Ly9naXRodWIuY29tL2RldGFpbi9teWFkbWluLWNsaWVudC12dWUvYXNzZXRzLzEzNjQ1MDQvNTM2ZTA1YmUtOTY1My00M2ZmLWFjY2UtMmIyMDgwZjc2YTk0KQoKVGhlIG90aGVyIHdheSBpcwohW3Z1ZS1kZXZ0b29scy1wb3B1cF0oaHR0cHM6Ly9naXRodWIuY29tL2RldGFpbi9teWFkbWluLWNsaWVudC12dWUvYXNzZXRzLzEzNjQ1MDQvOWI1MDJhNjktMDljNC00OGI3LWFjODgtMmZlNTBkNGFiMTVjKQoKIyMgUmVjb21tZW5kZWQgSURFIFNldHVwCgpbVlNDb2RlXShodHRwczovL2NvZGUudmlzdWFsc3R1ZGlvLmNvbS8pICsgW1ZvbGFyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9VnVlLnZvbGFyKSAoYW5kIGRpc2FibGUgVmV0dXIpICsgW1R5cGVTY3JpcHQgVnVlIFBsdWdpbiAoVm9sYXIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9VnVlLnZzY29kZS10eXBlc2NyaXB0LXZ1ZS1wbHVnaW4pLgoKIyMgQ3VzdG9taXplIGNvbmZpZ3VyYXRpb24KClNlZSBbVml0ZSBDb25maWd1cmF0aW9uIFJlZmVyZW5jZV0oaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy8pLgoKIyMgUHJvamVjdCBTZXR1cAoKYGBgc2gKbnBtIGluc3RhbGwKYGBgCgojIyMgQ29tcGlsZSBhbmQgSG90LVJlbG9hZCBmb3IgRGV2ZWxvcG1lbnQKCmBgYHNoCm5wbSBydW4gZGV2CmBgYAoKIyMjIENvbXBpbGUgYW5kIE1pbmlmeSBmb3IgUHJvZHVjdGlvbgoKYGBgc2gKbnBtIHJ1biBidWlsZApgYGAKCiMjIyBMaW50IHdpdGggW0VTTGludF0oaHR0cHM6Ly9lc2xpbnQub3JnLykKCmBgYHNoCm5wbSBydW4gbGludApgYGAK
+ readmeEtag: '"ea04de2ec91510ed32ffdf627a60a91eac333b4b00fc18db5b42f8cf9e8517bd"'
+ readmeLastModified: Fri, 29 Dec 2023 15:40:38 GMT
repositoryId: 614741193
description: MyAdmin Vue3 Client Frontend
created: '2023-03-16T08:15:57Z'
@@ -23663,7 +23665,7 @@
forks: 0
owner: detain
logo: https://avatars.githubusercontent.com/u/1364504?v=4
- repoEtag: '"fac2c70165dac807c758fd39a0aa1b9dfb79d0c5ccb093d167be235c4e5c58ff"'
+ repoEtag: '"be2ab193a71c127724c29bd27addb28634078d930a8594c1a5ab8dc6e30b2e87"'
repoLastModified: Fri, 28 Apr 2023 04:23:19 GMT
category:
- SDK
@@ -24522,7 +24524,7 @@
owner: hiroyoshii
logo: https://avatars.githubusercontent.com/u/40140638?v=4
license: Apache-2.0
- repoEtag: '"52b43521b8d48b663e55f39c1a881f48979b0d22847805cca7a1a4b08eb18b0d"'
+ repoEtag: '"f2dd35e55cf84df3a48f8605094c6d56241ac15a839b0cf937aba389f9776999"'
repoLastModified: Sat, 02 Sep 2023 16:28:12 GMT
category: Server Implementations
foundInMaster: true
@@ -25849,7 +25851,7 @@
owner: Sudokuru
logo: https://avatars.githubusercontent.com/u/114212382?v=4
license: GPL-3.0
- repoEtag: '"6bc73619fd98e050ecbd7cad83dcf4788acd226b2dbcbb82448e092904265cda"'
+ repoEtag: '"efa3f11ffa5579b5941fc048608e1ff72013547b1926a6b64a709c429bac766e"'
repoLastModified: Sat, 19 Aug 2023 13:05:54 GMT
category: Server Implementations
foundInMaster: true
@@ -25878,7 +25880,7 @@
owner: tada5hi
logo: https://avatars.githubusercontent.com/u/13162758?v=4
license: MIT
- repoEtag: '"3eb22e3870c91d228f7d790a9ec4b837055b000f41df6c964883576fa84b2014"'
+ repoEtag: '"928714ca0a624547f1bc550018946e81a62ad7a0091baad3673961bad8e4f386"'
repoLastModified: Fri, 17 Mar 2023 22:17:59 GMT
category: Parsers
foundInMaster: true
@@ -30248,7 +30250,7 @@
owner: tsingsun
logo: https://avatars.githubusercontent.com/u/5848549?v=4
license: Apache-2.0
- repoEtag: '"1199dd7fa099455897fd49d4af38d075adf6e35864f333dadafa79d579aecf3e"'
+ repoEtag: '"29c1f9cc4bb65f4c3ced3373f62c65b80a20bf3efd16ac3d4ee89280ef881efc"'
repoLastModified: Tue, 26 Dec 2023 07:02:08 GMT
category: Server Implementations
foundInMaster: true
@@ -33259,17 +33261,17 @@
repositoryId: 154916760
description: Build, Validate, Route, Authenticate and Mock using OpenAPI
created: '2018-10-27T02:31:25Z'
- updated: '2023-12-23T09:55:10Z'
+ updated: '2023-12-29T08:59:38Z'
language: TypeScript
archived: false
- stars: 552
+ stars: 551
watchers: 6
forks: 81
owner: openapistack
logo: https://avatars.githubusercontent.com/u/147298423?v=4
license: MIT
- repoEtag: '"45f4f32377f2b2a167b3effc52488518547a5f5a257534a3d330867cd677565c"'
- repoLastModified: Sat, 23 Dec 2023 09:55:10 GMT
+ repoEtag: '"4a882ad1618b296264a5609b9c0d12214713bfb84b93e468cc2f462f5add27e8"'
+ repoLastModified: Fri, 29 Dec 2023 08:59:38 GMT
foundInMaster: true
id: 13cdf61fc6370ba6543e5a21256c2dfb
oldLocations:
@@ -35650,9 +35652,9 @@
id: 589a36843824543c6b39b9e4a63c23bb
repositoryMetadata:
base64Readme: >-
- PGRpdiBhbGlnbj0nY2VudGVyJz4KCiFbcHl3c3NdKC4vcHl3c3MucG5nKQogIAo8YnIvPgogIAohW1Byb2plY3Qgc3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjYrLWdyZWVuLnN2ZykKIVtQeVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9weXdzcz9jb2xvcj1ncmVlbikKIVtDb2RlY292XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvY3phc2cvcHl3c3M/dG9rZW49SlNYSVFYWTFFUSkKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2N6YXNnL3B5d3NzKV0oaHR0cHM6Ly9naXRodWIuY29tL2N6YXNnL3B5d3NzL2lzc3VlcykKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzLWNsb3NlZC9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9pc3N1ZXMtY2xvc2VkKQpbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9ibG9iL21haW4vTElDRU5TRSkKICAKPGJyLz4KICAKPC9kaXY+CgojIyBQeXdzcyDnroDku4sKClB5d3Nz77yI5Y+R6Z+zIC9wacuQd2HJqnov77yM57G75Ly8ICoqcH53aHlzKirvvInmmK/kuIDkuKrovbvph4/nuqfnmoQgUHl0aG9uIFdlYiDmoYbmnrbvvIzlroPln7rkuo4gUHl0aG9uMy42KyDnibnmgKfmnoTlu7rjgIIKCuS4jiBGbGFza+OAgURqYW5nbyDnrYnkuLvmtYHmoYbmnrbkuI3lkIznmoTmmK/vvIxQeXdzcyDnmoTlupXlsYLlubbmsqHmnInlrp7njrAgV1NHSSDmjqXlj6PljY/orq7jgIIK5YW257yW56iL6aOO5qC85Lmf5pu057G75Ly85LqOIEdpbuOAgUlyaXMg562J5qGG5p6277yM5Zug5q2k5a+55LqO54af5oKJ6L+Z5Lqb5qGG5p6255qE5byA5Y+R6ICF5p2l6K+077yMUHl3c3Mg5piv5LiA5Liq6Z2e5bi45YC85b6X5o6i57Si55qE6aG555uu44CCCgrlhbblhbPplK7nibnmgKfmnInvvJoKLSAqKueugOWNlSoq77ya5ouS57ud5rW36YeP5Y+C5pWw77yM5YeP5bCR5b+D5pm66LSf5ouF44CC5LqG6Kej5LiK5LiL5paHIGBweXdzcy5Db250ZXh0YCDljbPliLvlkK/nqIvjgIIKLSAqKuW/q+mAnyoq77ya54us54m555qE5a6e546w5LqG57q/56iL5rGg5py65Yi277yM5bm26IO95aSf5Zyo56m66Zey5pe25Li75Yqo5Zue5pS25aSa5L2Z55qE57q/56iL5rGg6LWE5rqQ44CCCi0gKirkvJjpm4UqKu+8mmBjdHgubmV4dGAg55yf55qE5aSq5LyY6ZuF5LqG44CC5aaC5p6c5L2g5Lmf5ZKM5oiR5LiA5qC35Zac5qyi77yM6YKj5oiR6KeJ5b6X6L+Z5Lu25LqL5oOF77yMKirms7Doo6TovqPvvIHvvIEqKgotICoq5qCH5YeG5YyWKirvvJrpm4bmiJDkuobpg6jliIYgT3BlbkFQSe+8iFN3YWdnZXLvvInog73lipvvvIzmlrnkvr/lvIDlj5HogIXlv6vpgJ/nlJ/miJAgQVBJIOaWh+aho+W5tui/m+ihjOiwg+ivleOAggotICoq5pSv5oyBV2ViU29ja2V0KirvvJrlvIDnrrHljbPnlKjnmoQgKipXZWJTb2NrZXQqKiDog73lipvjgIIKLSAqKuaOpeWPo+a1i+ivlSoq77ya5byA566x5Y2z55So55qEICoqQVBJIOa1i+ivleaooeWdlyoq77yM5LiN5ZCv5Yqo5pyN5Yqh5Lmf6IO95rWL6K+V5o6l5Y+j5Yqf6IO96L6j77yBCgoqKl/lnKjnur/mlofmoaNfKiogWyoqX2h0dHBzOi8vY3phc2cuZ2l0aHViLmlvL3B5d3NzL18qKl0oaHR0cHM6Ly9jemFzZy5naXRodWIuaW8vcHl3c3MvKQoKPGJyLz4KCiMjIOW/q+mAn+W8gOWniwoKIyMjIDHjgIHlronoo4UgcHl3c3MKYGBgc2hlbGwKcGlwMyBpbnN0YWxsIHB5d3NzCmBgYAoKIyMjIDLjgIHmkK3lu7ogd2ViIOW6lOeUqCAgICAK6aaW5YWI5Yib5bu6IGBtYWluLnB5YCDmlofku7bvvIzlubblhpnlhaXku6XkuIvku6PnoIHvvJoKYGBgcHl0aG9uCmltcG9ydCBweXdzcwoKZGVmIGhhbmRsZXIoY3R4OiBweXdzcy5Db250ZXh0KToKICBjdHgud3JpdGUoImhlbGxvfiIpCgpkZWYgbWFpbihwb3J0ID0gODA4MCk6CiAgICBhcHAgPSBweXdzcy5BcHAoKQogICAgYXBwLmdldCgiL2hpIiwgbGFtYmRhIGN0eDogY3R4LndyaXRlKCJoaX4iKSkgICMgY3VybCBsb2NhbGhvc3Q6ODA4MC9oaQogICAgYXBwLnBvc3QoIi9oZWxsbyIsIGhhbmRsZXIpICAjIGN1cmwgLVggUE9TVCBsb2NhbGhvc3Q6ODA4MC9oZWxsbwogICAgYXBwLnJ1bihwb3J0PXBvcnQpCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgbWFpbigpCmBgYArmjqXnnYDlkK/liqjmnI3liqE6CmBgYHNoZWxsCnB5dGhvbjMgbWFpbi5weQpgYGAKCuiHs+atpO+8jOS4gOS4queugOWNleeahCB3ZWIg5bqU55So5pyN5Yqh5bCx5a6M5oiQ5LqG44CCCgrmm7TlpJrlip/og73op4Fb5Zyo57q/5paH5qGjXShodHRwczovL2N6YXNnLmdpdGh1Yi5pby9weXdzcy8p44CCCgo8YnIvPgoKIyMg54m55oCn6YCf6KeICgojIyMg6L275ben55qE5Lit6Ze05Lu25py65Yi2CmBgYHB5dGhvbgppbXBvcnQgdGltZQppbXBvcnQgcHl3c3MKCiMg6K+35rGC5pel5b+X5Lit6Ze05Lu2CmRlZiBsb2dIYW5kbGVyKGN0eDogcHl3c3MuQ29udGV4dCk6CiAgICBzdGFydFRpbWUgPSB0aW1lLnRpbWUoKQogICAgY3R4Lm5leHQoKQogICAgY29zdCA9IHRpbWUudGltZSgpIC0gc3RhcnRUaW1lCiAgICBwcmludChmIntjdHgubWV0aG9kfSAtIHtjdHgucm91dGV9IC0gY29zdDoge2Nvc3Q6IC4yZn0iKQoKYXBwID0gcHl3c3MuQXBwKCkKYXBwLnVzZShsb2dIYW5kbGVyKSAgIyDms6jlhozlhajlsYDml6Xlv5fkuK3pl7Tku7YKYXBwLnJ1bigpCmBgYAoKIyMjIOWOn+eUn+eahOS+nei1luazqOWFpeS9k+mqjApgYGBweXRob24KaW1wb3J0IHB5d3NzCgpjbGFzcyBSZXBvOgogICAgZGVmIGdldChzZWxmKToKICAgICAgICByZXR1cm4gInJlcG8iCgpjbGFzcyBTZXJ2aWNlOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvOiBSZXBvKTogICMgU2VydmljZSDkvp3otZYgUmVwbwogICAgICAgIHNlbGYucmVwbyA9IHJlcG8KCiAgICBkZWYgZ2V0KHNlbGYpOgogICAgICAgIHJldHVybiAicG93ZXIgYnkgIiArIHNlbGYucmVwby5nZXQoKQoKY2xhc3MgVXNlclZpZXc6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcnZpY2U6IFNlcnZpY2UpOiAgIyBVc2VyVmlldyDkvp3otZYgU2VydmljZQogICAgICAgIHNlbGYuc3J2ID0gc2VydmljZQoKICAgIGRlZiBodHRwX2dldChzZWxmLCBjdHgpOgogICAgICAgIGN0eC53cml0ZShzZWxmLnNydi5nZXQoKSkKCmFwcCA9IHB5d3NzLkFwcCgpCmFwcC52aWV3KCIvdXNlciIsIFVzZXJWaWV3KSAgIyDms6jlhozop4blm77ot6/nlLEtPuiHquWKqOazqOWFpeS+nei1lgphcHAucnVuKCkKYGBgCgojIyMg5by65aSn55qE5paH5Lu26Lev55Sx5py65Yi2CuingSBb5paH5Lu26Lev55SxXShodHRwczovL2N6YXNnLmdpdGh1Yi5pby9weXdzcy9hZHZhbmNlL2ZpbGUtcm91dGUpCg==
- readmeEtag: '"608a8ac45f06a5758adfc10d9323268c7f387d3e195acc32cdc7a278bbe9a9fa"'
- readmeLastModified: Thu, 21 Dec 2023 09:17:03 GMT
+ PGRpdiBhbGlnbj0nY2VudGVyJz4KCiFbcHl3c3NdKC4vcHl3c3MucG5nKQogIAo8YnIvPgogIAohW1Byb2plY3Qgc3RhdHVzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3B5dGhvbi0zLjYrLWdyZWVuLnN2ZykKIVtQeVBJXShodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9weXdzcz9jb2xvcj1ncmVlbikKIVtDb2RlY292XShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjb3YvYy9naXRodWIvY3phc2cvcHl3c3M/dG9rZW49SlNYSVFYWTFFUSkKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzL2N6YXNnL3B5d3NzKV0oaHR0cHM6Ly9naXRodWIuY29tL2N6YXNnL3B5d3NzL2lzc3VlcykKWyFbR2l0SHViIGlzc3Vlc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvaXNzdWVzLWNsb3NlZC9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9pc3N1ZXMtY2xvc2VkKQpbIVtHaXRIdWIgbGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9jemFzZy9weXdzcyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jemFzZy9weXdzcy9ibG9iL21haW4vTElDRU5TRSkKICAKPGJyLz4KICAKPC9kaXY+CgojIyBQeXdzcyDnroDku4sKClB5d3Nz77yI5Y+R6Z+zIC9wacuQd2HJqnov77yM57G75Ly8ICoqcH53aHlzKirvvInmmK/kuIDkuKrovbvph4/nuqfnmoQgUHl0aG9uIFdlYiDmoYbmnrbvvIzlroPln7rkuo4gUHl0aG9uMy42KyDnibnmgKfmnoTlu7rjgIIKCuS4jiBGbGFza+OAgURqYW5nbyDnrYnkuLvmtYHmoYbmnrbkuI3lkIznmoTmmK/vvIxQeXdzcyDnmoTlupXlsYLlubbmsqHmnInlrp7njrAgV1NHSSDmjqXlj6PljY/orq7jgIIK5YW257yW56iL6aOO5qC85Lmf5pu057G75Ly85LqOIEdpbuOAgUlyaXMg562J5qGG5p6277yM5Zug5q2k5a+55LqO54af5oKJ6L+Z5Lqb5qGG5p6255qE5byA5Y+R6ICF5p2l6K+077yMUHl3c3Mg5piv5LiA5Liq6Z2e5bi45YC85b6X5o6i57Si55qE6aG555uu44CCCgrlhbblhbPplK7nibnmgKfmnInvvJoKLSAqKueugOWNlSoq77ya5ouS57ud5rW36YeP5Y+C5pWw77yM5YeP5bCR5b+D5pm66LSf5ouF44CC5LqG6Kej5LiK5LiL5paHIGBweXdzcy5Db250ZXh0YCDljbPliLvlkK/nqIvjgIIKLSAqKuW/q+mAnyoq77ya54us54m555qE5a6e546w5LqG57q/56iL5rGg5py65Yi277yM5bm26IO95aSf5Zyo56m66Zey5pe25Li75Yqo5Zue5pS25aSa5L2Z55qE57q/56iL5rGg6LWE5rqQ44CCCi0gKirkvJjpm4UqKu+8mmBjdHgubmV4dGAg55yf55qE5aSq5LyY6ZuF5LqG44CC5aaC5p6c5L2g5Lmf5ZKM5oiR5LiA5qC35Zac5qyi77yM6YKj5oiR6KeJ5b6X6L+Z5Lu25LqL5oOF77yMKirms7Doo6TovqPvvIHvvIEqKgotICoq5qCH5YeG5YyWKirvvJrpm4bmiJDkuobpg6jliIYgT3BlbkFQSe+8iFN3YWdnZXLvvInog73lipvvvIzmlrnkvr/lvIDlj5HogIXlv6vpgJ/nlJ/miJAgQVBJIOaWh+aho+W5tui/m+ihjOiwg+ivleOAggotICoq5pSv5oyBV2ViU29ja2V0KirvvJrlvIDnrrHljbPnlKjnmoQgKipXZWJTb2NrZXQqKiDog73lipvjgIIKLSAqKuaOpeWPo+a1i+ivlSoq77ya5byA566x5Y2z55So55qEICoqQVBJIOa1i+ivleaooeWdlyoq77yM5LiN5ZCv5Yqo5pyN5Yqh5Lmf6IO95rWL6K+V5o6l5Y+j5Yqf6IO96L6j77yBCgoqKl/lnKjnur/mlofmoaNfKiogWyoqX2h0dHBzOi8vY3phc2cuZ2l0aHViLmlvL3B5d3NzL18qKl0oaHR0cHM6Ly9jemFzZy5naXRodWIuaW8vcHl3c3MvKQoKPGJyLz4KCiMjIOW/q+mAn+W8gOWniwoKIyMjIDHjgIHlronoo4UgcHl3c3MKYGBgc2hlbGwKcGlwMyBpbnN0YWxsIHB5d3NzCmBgYAoKIyMjIDLjgIHmkK3lu7ogd2ViIOW6lOeUqCAgICAK6aaW5YWI5Yib5bu6IGBtYWluLnB5YCDmlofku7bvvIzlubblhpnlhaXku6XkuIvku6PnoIHvvJoKYGBgcHl0aG9uCmltcG9ydCB0aW1lCmltcG9ydCBweXdzcwoKZGVmIGxvZ19oYW5kbGVyKGN0eDogcHl3c3MuQ29udGV4dCk6CiAgICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKICAgIGN0eC5uZXh0KCkKICAgIHByaW50KAogICAgICAgIGYiUm91dGU6IHtjdHgucm91dGV9LCAiCiAgICAgICAgZiJNZXRob2Q6IHtjdHgubWV0aG9kfSwgIgogICAgICAgIGYiU3RhdHVzOiB7Y3R4LnJlc3BvbnNlX3N0YXR1c19jb2RlfSwgIgogICAgICAgIGYiVGltZToge3RpbWUudGltZSgpIC0gc3RhcnRfdGltZTouM2Z9cyIKICAgICkKCmRlZiBoYW5kbGVyKGN0eDogcHl3c3MuQ29udGV4dCk6CiAgY3R4LndyaXRlKCJoZWxsb34iKQoKZGVmIG1haW4oKToKICAgIGFwcCA9IHB5d3NzLkFwcCgpCiAgICBhcHAuZ2V0KCIvaGVsbG8iLCBoYW5kbGVyKSAgIyBjdXJsIGxvY2FsaG9zdDo4MDgwL2hlbGxvCiAgICBhcHAuYW55KCIqIiwgbG9nX2hhbmRsZXIsIGhhbmRsZXIpICAjIGN1cmwgLVggUE9TVCBsb2NhbGhvc3Q6ODA4MC9oZWxsbwogICAgYXBwLnJ1bigpCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgbWFpbigpCmBgYArmjqXnnYDlkK/liqjmnI3liqE6CmBgYHNoZWxsCnB5dGhvbjMgbWFpbi5weQpgYGAKCuiHs+atpO+8jOS4gOS4queugOWNleeahCB3ZWIg5bqU55So5pyN5Yqh5bCx5a6M5oiQ5LqG44CCCgrmm7TlpJrlip/og73op4Fb5Zyo57q/5paH5qGjXShodHRwczovL2N6YXNnLmdpdGh1Yi5pby9weXdzcy8p44CCCg==
+ readmeEtag: '"ea5d8eded3530c95406f4299be5861668f67d9c431d7f9f46080e7fc66b25bb5"'
+ readmeLastModified: Fri, 29 Dec 2023 07:22:00 GMT
repositoryId: 214977479
description: 一个轻量级的 Python Web 框架
created: '2019-10-14T07:33:17Z'
@@ -35665,7 +35667,7 @@
owner: czasg
logo: https://avatars.githubusercontent.com/u/44974561?v=4
license: MIT
- repoEtag: '"052588ae6d71b255e07dc5abc689d9d88dd5550d3ed0d84bc338f74b12d621a5"'
+ repoEtag: '"d5628c15174bab7cd6ba4e9b3b7585593875ad58b6bf45061df4d91fd7e72454"'
repoLastModified: Thu, 21 Dec 2023 01:57:56 GMT
category: Server Implementations
foundInMaster: true
@@ -35994,7 +35996,7 @@
owner: microsoft
logo: https://avatars.githubusercontent.com/u/6154722?v=4
license: MIT
- repoEtag: '"21d5391b25a7a15d80485e993ca2501fec1bf6e3a41b013809cc33a58f9031eb"'
+ repoEtag: '"bb09468cc97c85945b88b090bf9f6e0b1e270f6d1c31a92079e63e8a349db7cd"'
repoLastModified: Wed, 27 Dec 2023 09:46:50 GMT
id: f3215034d64cfcbcc28a4bdb0205a075
- source: IMPLEMENTATIONS.md
@@ -36294,17 +36296,17 @@
repositoryId: 30567860
description: Single file PHP script that adds a REST API to a SQL database
created: '2015-02-10T01:08:52Z'
- updated: '2023-12-26T16:58:36Z'
+ updated: '2023-12-29T13:21:49Z'
language: PHP
archived: false
- stars: 3466
+ stars: 3467
watchers: 179
forks: 1031
owner: mevdschee
logo: https://avatars.githubusercontent.com/u/1288217?v=4
license: MIT
- repoEtag: '"7cbbbc364219d7f8f4c97667128350a46239ea8464b9c6801926e940335c74d9"'
- repoLastModified: Tue, 26 Dec 2023 16:58:36 GMT
+ repoEtag: '"dd3a9f9831de404e9b3a850abaab8658cb0c204f44d159152ea4a83873ca7c71"'
+ repoLastModified: Fri, 29 Dec 2023 13:21:49 GMT
id: 84a7be428932f7789a8ad1a220b22216
- source: IMPLEMENTATIONS.md
name: Fastify OpenAPI v3
@@ -36913,17 +36915,17 @@
Connexion is a modern Python web framework that makes spec-first and
api-first development easy.
created: '2015-05-19T13:05:58Z'
- updated: '2023-12-27T09:44:43Z'
+ updated: '2023-12-30T00:18:46Z'
language: Python
archived: false
- stars: 4357
+ stars: 4358
watchers: 87
forks: 739
owner: spec-first
logo: https://avatars.githubusercontent.com/u/58754196?v=4
license: Apache-2.0
- repoEtag: '"ca811cded8d274271b9bc8a85bc6731dc911eee30f2284d7b0b648c578d74f2a"'
- repoLastModified: Wed, 27 Dec 2023 09:44:43 GMT
+ repoEtag: '"2f94fedfca87a1f6cfe2eafd86bd4fccb2cc53747448471ae6699f0f09476f45"'
+ repoLastModified: Sat, 30 Dec 2023 00:18:46 GMT
foundInMaster: true
homepage: https://github.com/zalando/connexion
id: 2d575abdf2671028868058b2442d9131
@@ -37215,7 +37217,7 @@
LoopBack makes it easy to build modern API applications that require
complex integrations.
created: '2017-01-09T17:27:14Z'
- updated: '2023-12-27T10:08:47Z'
+ updated: '2023-12-29T15:21:20Z'
language: TypeScript
archived: false
stars: 4706
@@ -37224,8 +37226,8 @@
owner: loopbackio
logo: https://avatars.githubusercontent.com/u/22173486?v=4
license: NOASSERTION
- repoEtag: '"0f8b262fb5fb7da108955c815443fcbcf4338f1c8a5fde61e1995db8c0939415"'
- repoLastModified: Wed, 27 Dec 2023 10:08:47 GMT
+ repoEtag: '"402a5f90f1cadabecc58dc0ff58efd9dbfe3bf4e11cad1bc1b514af9b77e7e98"'
+ repoLastModified: Fri, 29 Dec 2023 15:21:20 GMT
foundInMaster: true
id: 9132c25ad468bed25b9dbbe3a352abc2
v3: true
@@ -37297,17 +37299,17 @@
testing cloud services through their REST APIs and finding security and
reliability bugs in these services.
created: '2020-07-24T21:40:11Z'
- updated: '2023-12-28T11:54:06Z'
+ updated: '2023-12-29T13:13:19Z'
language: Python
archived: false
- stars: 2363
+ stars: 2362
watchers: 36
forks: 272
owner: microsoft
logo: https://avatars.githubusercontent.com/u/6154722?v=4
license: MIT
- repoEtag: '"347d2727abf6d3db934984c9c8b687940066d95cbc9a71adf8f4cb0d080f36bb"'
- repoLastModified: Thu, 28 Dec 2023 11:54:06 GMT
+ repoEtag: '"b13f0c89e09931340c205fecb4df73db0f91140b5b416a998e04a3c4e7fc056f"'
+ repoLastModified: Fri, 29 Dec 2023 13:13:19 GMT
foundInMaster: true
oldLocations:
- https://github.com/microsoft/restler
@@ -37323,17 +37325,17 @@
repositoryId: 528459414
description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution
created: '2022-08-24T14:26:52Z'
- updated: '2023-12-26T07:31:44Z'
+ updated: '2023-12-29T05:36:31Z'
language: HTML
archived: false
- stars: 60
+ stars: 61
watchers: 2
forks: 19
owner: xiaoymin
logo: https://avatars.githubusercontent.com/u/7894406?v=4
license: Apache-2.0
- repoEtag: '"06e7161e74e7a3febb6c776b18eaea01b70c647438da68ac7d24070cbbbf6b0b"'
- repoLastModified: Tue, 26 Dec 2023 07:31:44 GMT
+ repoEtag: '"4ee774b20593fd714ac9efbe7f40e06c3a0d1725ea2873c264a8f154afa0940f"'
+ repoLastModified: Fri, 29 Dec 2023 05:36:31 GMT
category:
- Low-level Tooling
- SDK
@@ -37460,7 +37462,7 @@
owner: weikangchia
logo: https://avatars.githubusercontent.com/u/2174882?v=4
license: MIT
- repoEtag: '"932f76073c5c3d69e502dd09fc476ee2d32e2797c5a6cec2410e2747dd02041f"'
+ repoEtag: '"b9d660552dc288d7cb04a39349df8996155862a608cb516b0d6342c6d3682824"'
repoLastModified: Sat, 20 Nov 2021 15:06:15 GMT
foundInMaster: true
category:
@@ -38069,17 +38071,17 @@
Protobuf v3 (for grpc) based lightweight microservice framework. It
supports monolith service application as well.
created: '2021-02-24T07:21:40Z'
- updated: '2023-12-28T09:39:43Z'
+ updated: '2023-12-29T22:15:24Z'
language: Go
archived: false
- stars: 1257
+ stars: 1261
watchers: 85
forks: 258
owner: unionj-cloud
logo: https://avatars.githubusercontent.com/u/79033021?v=4
license: MIT
- repoEtag: '"824932d9d31f4f82fbc19d3213b5f832ad0410a6a49fdba350b549d2328b0cba"'
- repoLastModified: Thu, 28 Dec 2023 09:39:43 GMT
+ repoEtag: '"d8131ab5857ff26ff08129ae45b41b709cff523057b39b7c85c8efa09e8b96ae"'
+ repoLastModified: Fri, 29 Dec 2023 22:15:24 GMT
foundInMaster: true
category: SDK
id: aab01f8bda6c542fdacf9ee8dfa7d20d