diff --git a/docs/categories/all.html b/docs/categories/all.html index b596ac48..7ef2e23d 100644 --- a/docs/categories/all.html +++ b/docs/categories/all.html @@ -86,7 +86,7 @@

No Yes No - 298 + 299 @@ -109,7 +109,7 @@

Yes Yes No - 1187 + 1188 @@ -235,7 +235,7 @@

Yes Yes Yes - 165 + 166 @@ -323,7 +323,7 @@

No Yes Yes - 1024 + 1026 @@ -512,7 +512,7 @@

Yes Yes Yes - 223 + 224 @@ -535,7 +535,7 @@

Yes Yes Yes - 20919 + 20926 @@ -581,7 +581,7 @@

No Yes Yes - 1357 + 1359 @@ -713,7 +713,7 @@

No Yes No - 4063 + 4075 @@ -759,7 +759,7 @@

No Yes Yes - 17537 + 17542 @@ -805,7 +805,7 @@

No Yes Yes - 817 + 818 @@ -1001,7 +1001,7 @@

Yes Yes Yes - 8323 + 8325 @@ -1382,7 +1382,7 @@

Yes Yes Yes - 3708 + 3711 @@ -1428,7 +1428,7 @@

Yes Yes Yes - 931 + 932 @@ -1581,7 +1581,7 @@

No Yes Yes - 2865 + 2866 @@ -1719,7 +1719,7 @@

No Yes Yes - 8020 + 8021 @@ -1832,7 +1832,7 @@

No Yes No - 1469 + 1470 @@ -1878,7 +1878,7 @@

No Yes Yes - 4048 + 4049 @@ -1922,7 +1922,7 @@

No Yes No - 798 + 799 @@ -2010,7 +2010,7 @@

Yes Yes Yes - 2036 + 2038 @@ -2052,7 +2052,7 @@

No Yes Yes - 405 + 406 @@ -2142,7 +2142,7 @@

No Yes Yes - 817 + 818 @@ -2230,7 +2230,7 @@

No Yes Yes - 101 + 102 @@ -2297,7 +2297,7 @@

No Yes No - 388 + 389 @@ -2320,7 +2320,7 @@

No Yes Yes - 2084 + 2086 @@ -2362,7 +2362,7 @@

No Yes No - 444 + 445 @@ -2601,7 +2601,7 @@

No No Yes - 8870 + 8873 @@ -2670,7 +2670,7 @@

No Yes Yes - 6051 + 6055 @@ -2716,7 +2716,7 @@

No Yes Yes - 15960 + 15961 @@ -2827,7 +2827,7 @@

Yes Yes Yes - 30 + 31 @@ -2871,7 +2871,7 @@

No Yes No - 349 + 350 @@ -3453,7 +3453,7 @@

No Yes Yes - 5849 + 5850 @@ -3692,7 +3692,7 @@

No Yes No - 26284 + 26296 @@ -3844,7 +3844,7 @@

No Yes No - 815 + 817 @@ -3867,7 +3867,7 @@

Yes Yes Yes - 1175 + 1178 @@ -3959,7 +3959,7 @@

Yes Yes No - 948 + 949 @@ -4089,7 +4089,7 @@

No Yes Yes - 1622 + 1626 @@ -4202,7 +4202,7 @@

Yes Yes Yes - 273 + 276 @@ -4246,7 +4246,7 @@

Yes Yes Yes - 3506 + 3507 @@ -4472,7 +4472,7 @@

Yes Yes Yes - 40 + 42 @@ -4688,7 +4688,7 @@

No Yes Yes - 1816 + 1818 @@ -4780,7 +4780,7 @@

No Yes No - 62397 + 62432 @@ -4803,7 +4803,7 @@

Yes Yes No - 24399 + 24410 @@ -4826,7 +4826,7 @@

Yes Yes No - 20919 + 20926 @@ -4847,7 +4847,7 @@

No Yes No - 12914 + 12918 @@ -4889,7 +4889,7 @@

No Yes No - 5350 + 5353 @@ -4931,7 +4931,7 @@

No Yes No - 3350 + 3351 @@ -4954,7 +4954,7 @@

No Yes No - 2779 + 2781 @@ -4996,7 +4996,7 @@

No Yes No - 2338 + 2339 @@ -5019,7 +5019,7 @@

No Yes No - 1843 + 1844 @@ -5061,7 +5061,7 @@

No Yes No - 1820 + 1822 @@ -5082,7 +5082,7 @@

No Yes No - 1392 + 1393 @@ -5126,7 +5126,7 @@

No Yes No - 1270 + 1269 @@ -5147,7 +5147,7 @@

No Yes No - 1235 + 1238 @@ -5168,7 +5168,7 @@

No Yes No - 1059 + 1060 @@ -5210,7 +5210,7 @@

No Yes No - 838 + 840 @@ -5252,7 +5252,7 @@

No Yes No - 738 + 739 @@ -5273,7 +5273,7 @@

No Yes No - 673 + 674 @@ -5294,7 +5294,7 @@

No Yes No - 683 + 703 @@ -5357,7 +5357,7 @@

No Yes No - 645 + 646 @@ -5441,7 +5441,7 @@

No Yes No - 497 + 498 @@ -5525,7 +5525,7 @@

No Yes No - 413 + 414 @@ -5968,7 +5968,7 @@

No Yes No - 224 + 225 @@ -6073,7 +6073,7 @@

No Yes No - 200 + 201 @@ -6264,7 +6264,7 @@

No Yes No - 180 + 181 @@ -6495,7 +6495,7 @@

No Yes No - 152 + 153 @@ -6793,7 +6793,7 @@

Yes Yes No - 107 + 108 @@ -7423,7 +7423,7 @@

No Yes No - 61 + 62 @@ -7444,7 +7444,7 @@

No Yes No - 61 + 62 @@ -7654,7 +7654,7 @@

No Yes No - 51 + 52 @@ -9468,7 +9468,7 @@

No Yes No - 19 + 21 @@ -11196,7 +11196,7 @@

No Yes No - 8 + 9 @@ -12708,7 +12708,7 @@

No Yes No - 5 + 6 @@ -14556,7 +14556,7 @@

No Yes No - 3 + 33 @@ -28178,7 +28178,7 @@

No Yes No - 4622 + 4624 @@ -28222,7 +28222,7 @@

No Yes Yes - 2266 + 2269 @@ -29156,7 +29156,7 @@

oasdiff (link)

Stars - 298 + 299 Watchers @@ -29172,7 +29172,7 @@

oasdiff (link)

Last Updated - 2023-09-11T21:25:17Z + 2023-09-12T20:30:25Z Archived @@ -29208,7 +29208,7 @@

optic diff (link)

Stars - 1187 + 1188 Watchers @@ -29224,7 +29224,7 @@

optic diff (link)

Last Updated - 2023-09-11T22:37:31Z + 2023-09-12T20:27:01Z Archived @@ -29520,7 +29520,7 @@

OData OpenAPI (link)

Stars - 165 + 166 Watchers @@ -29536,7 +29536,7 @@

OData OpenAPI (link)

Last Updated - 2023-09-03T21:43:58Z + 2023-09-12T14:18:27Z Archived @@ -29728,7 +29728,7 @@

LucyBot api-spec-converter (link)

Stars - 1024 + 1026 Watchers @@ -29744,7 +29744,7 @@

LucyBot api-spec-converter (link)

Last Updated - 2023-09-09T04:26:24Z + 2023-09-12T23:20:01Z Archived @@ -30196,7 +30196,7 @@

OpenAPI Explorer (link)

Stars - 223 + 224 Watchers @@ -30212,7 +30212,7 @@

OpenAPI Explorer (link)

Last Updated - 2023-09-11T15:19:36Z + 2023-09-12T06:51:23Z Archived @@ -30248,7 +30248,7 @@

ReDoc (link)

Stars - 20919 + 20926 Watchers @@ -30256,7 +30256,7 @@

ReDoc (link)

Forks - 2220 + 2219 Created @@ -30264,7 +30264,7 @@

ReDoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived @@ -30352,7 +30352,7 @@

widdershins (link)

Stars - 1357 + 1359 Watchers @@ -30360,7 +30360,7 @@

widdershins (link)

Forks - 311 + 312 Created @@ -30368,7 +30368,7 @@

widdershins (link)

Last Updated - 2023-09-11T12:24:11Z + 2023-09-12T21:51:24Z Archived @@ -30664,7 +30664,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4063 + 4075 Watchers @@ -30680,7 +30680,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-09-12T02:35:34Z + 2023-09-13T01:39:20Z Archived @@ -30768,7 +30768,7 @@

OpenAPI Generator (link)

Stars - 17537 + 17542 Watchers @@ -30776,7 +30776,7 @@

OpenAPI Generator (link)

Forks - 5599 + 5602 Created @@ -30784,7 +30784,7 @@

OpenAPI Generator (link)

Last Updated - 2023-09-12T01:44:15Z + 2023-09-13T01:39:22Z Archived @@ -30872,7 +30872,7 @@

Kiota Api Client Generator (link)

Stars - 817 + 818 Watchers @@ -30888,7 +30888,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-09-12T02:14:45Z + 2023-09-13T01:23:19Z Archived @@ -31340,7 +31340,7 @@

Swagger Editor (link)

Stars - 8323 + 8325 Watchers @@ -31356,7 +31356,7 @@

Swagger Editor (link)

Last Updated - 2023-09-11T09:28:54Z + 2023-09-12T20:43:08Z Archived @@ -32276,7 +32276,7 @@

Prism (link)

Stars - 3708 + 3711 Watchers @@ -32292,7 +32292,7 @@

Prism (link)

Last Updated - 2023-09-10T18:25:44Z + 2023-09-12T21:24:57Z Archived @@ -32380,7 +32380,7 @@

Microcks (link)

Stars - 931 + 932 Watchers @@ -32396,7 +32396,7 @@

Microcks (link)

Last Updated - 2023-09-10T16:24:43Z + 2023-09-12T05:33:12Z Archived @@ -32744,7 +32744,7 @@

tsoa (link)

Stars - 2865 + 2866 Watchers @@ -32760,7 +32760,7 @@

tsoa (link)

Last Updated - 2023-09-11T21:13:23Z + 2023-09-12T17:47:54Z Archived @@ -33056,7 +33056,7 @@

API Platform (link)

Stars - 8020 + 8021 Watchers @@ -33072,7 +33072,7 @@

API Platform (link)

Last Updated - 2023-09-11T12:56:05Z + 2023-09-12T08:46:04Z Archived @@ -33316,7 +33316,7 @@

@nestjs/swagger (link)

Stars - 1469 + 1470 Watchers @@ -33324,7 +33324,7 @@

@nestjs/swagger (link)

Forks - 391 + 392 Created @@ -33332,7 +33332,7 @@

@nestjs/swagger (link)

Last Updated - 2023-09-10T10:49:17Z + 2023-09-12T11:47:11Z Archived @@ -33420,11 +33420,11 @@

Dredd (link)

Stars - 4048 + 4049 Watchers - 74 + 75 Forks @@ -33436,7 +33436,7 @@

Dredd (link)

Last Updated - 2023-09-11T19:39:14Z + 2023-09-12T12:19:09Z Archived @@ -33524,7 +33524,7 @@

express-openapi-validator (link)

Stars - 798 + 799 Watchers @@ -33540,7 +33540,7 @@

express-openapi-validator (link)

Last Updated - 2023-09-07T13:48:32Z + 2023-09-12T17:03:06Z Archived @@ -33732,7 +33732,7 @@

Spectral (link)

Stars - 2036 + 2038 Watchers @@ -33748,7 +33748,7 @@

Spectral (link)

Last Updated - 2023-09-11T05:40:37Z + 2023-09-12T15:08:11Z Archived @@ -33836,7 +33836,7 @@

OpenAPI Validator (link)

Stars - 405 + 406 Watchers @@ -33852,7 +33852,7 @@

OpenAPI Validator (link)

Last Updated - 2023-09-07T07:19:48Z + 2023-09-12T16:45:46Z Archived @@ -33896,7 +33896,7 @@

@redocly/redocly-cli (link)

Forks - 98 + 97 Created @@ -34044,7 +34044,7 @@

committee (link)

Stars - 817 + 818 Watchers @@ -34060,7 +34060,7 @@

committee (link)

Last Updated - 2023-09-07T15:14:44Z + 2023-09-13T01:39:29Z Archived @@ -34252,7 +34252,7 @@

openapi-snippet (link)

Stars - 101 + 102 Watchers @@ -34268,7 +34268,7 @@

openapi-snippet (link)

Last Updated - 2023-08-30T11:45:49Z + 2023-09-12T21:35:52Z Archived @@ -34408,7 +34408,7 @@

OpenAPI-TS (link)

Stars - 388 + 389 Watchers @@ -34424,7 +34424,7 @@

OpenAPI-TS (link)

Last Updated - 2023-09-11T17:16:09Z + 2023-09-12T07:54:00Z Archived @@ -34460,7 +34460,7 @@

kin-openapi (link)

Stars - 2084 + 2086 Watchers @@ -34468,7 +34468,7 @@

kin-openapi (link)

Forks - 361 + 362 Created @@ -34476,7 +34476,7 @@

kin-openapi (link)

Last Updated - 2023-09-11T21:43:26Z + 2023-09-12T08:15:03Z Archived @@ -34564,7 +34564,7 @@

php-openapi (link)

Stars - 444 + 445 Watchers @@ -34580,7 +34580,7 @@

php-openapi (link)

Last Updated - 2023-09-10T09:36:44Z + 2023-09-12T12:52:31Z Archived @@ -34624,7 +34624,7 @@

Object Oriented OpenAPI Specification ( Forks - 18 + 19 Created @@ -34780,7 +34780,7 @@

Microsoft/OpenAPI.NET (link)

Forks - 202 + 203 Created @@ -35136,7 +35136,7 @@

go-swagger (link)

Stars - 8870 + 8873 Watchers @@ -35152,7 +35152,7 @@

go-swagger (link)

Last Updated - 2023-09-12T03:02:53Z + 2023-09-13T03:05:36Z Archived @@ -35292,7 +35292,7 @@

NSwag (link)

Stars - 6051 + 6055 Watchers @@ -35308,7 +35308,7 @@

NSwag (link)

Last Updated - 2023-09-11T03:48:18Z + 2023-09-13T00:54:54Z Archived @@ -35396,7 +35396,7 @@

Swagger-Codegen (link)

Stars - 15960 + 15961 Watchers @@ -35404,7 +35404,7 @@

Swagger-Codegen (link)

Forks - 6011 + 6012 Created @@ -35412,7 +35412,7 @@

Swagger-Codegen (link)

Last Updated - 2023-09-11T09:05:29Z + 2023-09-12T12:03:31Z Archived @@ -35656,7 +35656,7 @@

oas-normalize (link)

Stars - 30 + 31 Watchers @@ -35664,7 +35664,7 @@

oas-normalize (link)

Forks - 5 + 6 Created @@ -35672,7 +35672,7 @@

oas-normalize (link)

Last Updated - 2023-09-11T14:10:55Z + 2023-09-12T16:46:45Z Archived @@ -35760,7 +35760,7 @@

laravel-openapi (link)

Stars - 349 + 350 Watchers @@ -35776,7 +35776,7 @@

laravel-openapi (link)

Last Updated - 2023-09-07T08:31:31Z + 2023-09-12T16:03:29Z Archived @@ -36340,7 +36340,7 @@

openapi-fuzzer (link)

Forks - 17 + 18 Created @@ -37024,7 +37024,7 @@

openapi-to-postman (link)

Last Updated - 2023-09-08T21:15:11Z + 2023-09-12T22:57:26Z Archived @@ -37128,7 +37128,7 @@

super-linter (link)

Last Updated - 2023-09-10T11:18:37Z + 2023-09-12T17:38:44Z Archived @@ -37164,7 +37164,7 @@

SpringFox (link)

Stars - 5849 + 5850 Watchers @@ -37180,7 +37180,7 @@

SpringFox (link)

Last Updated - 2023-09-10T18:13:44Z + 2023-09-13T02:06:05Z Archived @@ -37284,7 +37284,7 @@

OWASP ZAP (link)

Last Updated - 2023-09-11T16:35:16Z + 2023-09-13T00:06:16Z Archived @@ -37736,7 +37736,7 @@

Django REST Framework (link)

Stars - 26284 + 26296 Watchers @@ -37744,7 +37744,7 @@

Django REST Framework (link)

Forks - 6697 + 6701 Created @@ -37752,7 +37752,7 @@

Django REST Framework (link)

Last Updated - 2023-09-11T20:51:42Z + 2023-09-13T01:14:11Z Archived @@ -38100,7 +38100,7 @@

openapi-python-client (link)

Stars - 815 + 817 Watchers @@ -38116,7 +38116,7 @@

openapi-python-client (link)

Last Updated - 2023-09-11T17:17:19Z + 2023-09-12T20:22:24Z Archived @@ -38152,7 +38152,7 @@

Elements (link)

Stars - 1175 + 1178 Watchers @@ -38168,7 +38168,7 @@

Elements (link)

Last Updated - 2023-09-11T14:33:05Z + 2023-09-12T17:38:51Z Archived @@ -38360,7 +38360,7 @@

Cherrybomb (link)

Stars - 948 + 949 Watchers @@ -38376,7 +38376,7 @@

Cherrybomb (link)

Last Updated - 2023-09-11T17:24:35Z + 2023-09-12T06:40:20Z Archived @@ -38672,7 +38672,7 @@

orval (link)

Stars - 1622 + 1626 Watchers @@ -38680,7 +38680,7 @@

orval (link)

Forks - 184 + 185 Created @@ -38688,7 +38688,7 @@

orval (link)

Last Updated - 2023-09-11T15:51:18Z + 2023-09-12T13:36:55Z Archived @@ -38932,7 +38932,7 @@

vacuum (link)

Stars - 273 + 276 Watchers @@ -38948,7 +38948,7 @@

vacuum (link)

Last Updated - 2023-09-11T10:25:35Z + 2023-09-12T17:10:45Z Archived @@ -39036,7 +39036,7 @@

OpenAPI TypeScript (link)

Stars - 3506 + 3507 Watchers @@ -39052,7 +39052,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-09-12T03:07:44Z + 2023-09-12T18:55:38Z Archived @@ -39556,7 +39556,7 @@

openapi-changes (link)

Stars - 40 + 42 Watchers @@ -39572,7 +39572,7 @@

openapi-changes (link)

Last Updated - 2023-09-11T02:08:34Z + 2023-09-12T18:29:42Z Archived @@ -40076,7 +40076,7 @@

Fern (link)

Stars - 1816 + 1818 Watchers @@ -40092,7 +40092,7 @@

Fern (link)

Last Updated - 2023-09-11T16:41:46Z + 2023-09-13T00:38:36Z Archived @@ -40284,15 +40284,15 @@

FastAPI (link)

Stars - 62397 + 62432 Watchers - 638 + 639 Forks - 5263 + 5268 Created @@ -40300,7 +40300,7 @@

FastAPI (link)

Last Updated - 2023-09-12T03:14:38Z + 2023-09-13T03:18:35Z Archived @@ -40336,7 +40336,7 @@

swagger-ui (link)

Stars - 24399 + 24410 Watchers @@ -40352,7 +40352,7 @@

swagger-ui (link)

Last Updated - 2023-09-12T00:56:23Z + 2023-09-13T02:31:32Z Archived @@ -40388,7 +40388,7 @@

Redoc (link)

Stars - 20919 + 20926 Watchers @@ -40396,7 +40396,7 @@

Redoc (link)

Forks - 2220 + 2219 Created @@ -40404,7 +40404,7 @@

Redoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived @@ -40440,7 +40440,7 @@

full-stack-fastapi-postgresql (link) Stars - 12914 + 12918 Watchers @@ -40448,7 +40448,7 @@

full-stack-fastapi-postgresql (link) Forks - 2372 + 2370 Created @@ -40456,7 +40456,7 @@

full-stack-fastapi-postgresql (link) Last Updated - 2023-09-11T16:11:43Z + 2023-09-12T14:22:20Z Archived @@ -40544,7 +40544,7 @@

mockoon (link)

Stars - 5350 + 5353 Watchers @@ -40560,7 +40560,7 @@

mockoon (link)

Last Updated - 2023-09-11T19:51:09Z + 2023-09-12T22:46:27Z Archived @@ -40612,7 +40612,7 @@

knife4j (link)

Last Updated - 2023-09-10T03:57:54Z + 2023-09-12T10:01:18Z Archived @@ -40648,7 +40648,7 @@

openapi-directory (link)

Stars - 3350 + 3351 Watchers @@ -40664,7 +40664,7 @@

openapi-directory (link)

Last Updated - 2023-09-11T00:06:42Z + 2023-09-13T00:44:30Z Archived @@ -40700,7 +40700,7 @@

springdoc-openapi (link)

Stars - 2779 + 2781 Watchers @@ -40716,7 +40716,7 @@

springdoc-openapi (link)

Last Updated - 2023-09-12T01:30:54Z + 2023-09-12T19:36:22Z Archived @@ -40804,7 +40804,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2338 + 2339 Watchers @@ -40820,7 +40820,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2023-09-10T18:05:06Z + 2023-09-12T07:21:37Z Archived @@ -40856,7 +40856,7 @@

Schemathesis (link)

Stars - 1843 + 1844 Watchers @@ -40872,7 +40872,7 @@

Schemathesis (link)

Last Updated - 2023-09-11T22:54:27Z + 2023-09-12T23:05:54Z Archived @@ -40960,7 +40960,7 @@

drf-spectacular (link)

Stars - 1820 + 1822 Watchers @@ -40976,7 +40976,7 @@

drf-spectacular (link)

Last Updated - 2023-09-11T18:45:42Z + 2023-09-12T16:17:56Z Archived @@ -41012,7 +41012,7 @@

rapidoc (link)

Stars - 1392 + 1393 Watchers @@ -41028,7 +41028,7 @@

rapidoc (link)

Last Updated - 2023-09-10T09:39:47Z + 2023-09-12T05:44:11Z Archived @@ -41116,7 +41116,7 @@

OpenAPI-gui (link)

Stars - 1270 + 1269 Watchers @@ -41132,7 +41132,7 @@

OpenAPI-gui (link)

Last Updated - 2023-09-11T21:13:11Z + 2023-09-12T16:01:55Z Archived @@ -41168,7 +41168,7 @@

msgspec (link)

Stars - 1235 + 1238 Watchers @@ -41184,7 +41184,7 @@

msgspec (link)

Last Updated - 2023-09-11T17:25:27Z + 2023-09-12T13:36:45Z Archived @@ -41220,7 +41220,7 @@

openapi-generator-cli (link)

Stars - 1059 + 1060 Watchers @@ -41236,7 +41236,7 @@

openapi-generator-cli (link)

Last Updated - 2023-09-11T10:48:23Z + 2023-09-12T19:02:57Z Archived @@ -41324,7 +41324,7 @@

apiflask (link)

Stars - 838 + 840 Watchers @@ -41340,7 +41340,7 @@

apiflask (link)

Last Updated - 2023-09-07T15:03:40Z + 2023-09-13T03:04:40Z Archived @@ -41384,7 +41384,7 @@

typespec (link)

Forks - 96 + 97 Created @@ -41428,7 +41428,7 @@

studio (link)

Stars - 738 + 739 Watchers @@ -41444,7 +41444,7 @@

studio (link)

Last Updated - 2023-09-11T15:39:04Z + 2023-09-12T21:28:14Z Archived @@ -41480,7 +41480,7 @@

json-schema-validator (link)

Stars - 673 + 674 Watchers @@ -41488,7 +41488,7 @@

json-schema-validator (link)

Forks - 287 + 288 Created @@ -41496,7 +41496,7 @@

json-schema-validator (link)

Last Updated - 2023-09-11T11:49:44Z + 2023-09-12T04:19:29Z Archived @@ -41532,7 +41532,7 @@

ogen (link)

Stars - 683 + 703 Watchers @@ -41548,7 +41548,7 @@

ogen (link)

Last Updated - 2023-09-11T14:28:49Z + 2023-09-13T02:38:26Z Archived @@ -41688,7 +41688,7 @@

openapi-diff (link)

Stars - 645 + 646 Watchers @@ -41704,7 +41704,7 @@

openapi-diff (link)

Last Updated - 2023-09-11T23:53:50Z + 2023-09-12T10:36:10Z Archived @@ -41896,7 +41896,7 @@

hibiapi (link)

Stars - 497 + 498 Watchers @@ -41912,7 +41912,7 @@

hibiapi (link)

Last Updated - 2023-09-07T03:20:21Z + 2023-09-12T14:42:48Z Archived @@ -42104,7 +42104,7 @@

zod-to-openapi (link)

Stars - 413 + 414 Watchers @@ -42120,7 +42120,7 @@

zod-to-openapi (link)

Last Updated - 2023-09-11T13:37:49Z + 2023-09-12T04:56:46Z Archived @@ -42944,7 +42944,7 @@

beacon-apis (link)

Forks - 160 + 161 Created @@ -43196,7 +43196,7 @@

huma (link)

Stars - 224 + 225 Watchers @@ -43212,7 +43212,7 @@

huma (link)

Last Updated - 2023-09-08T05:33:40Z + 2023-09-12T13:05:31Z Archived @@ -43412,7 +43412,7 @@

express-jsdoc-swagger (link)

Forks - 25 + 26 Created @@ -43456,7 +43456,7 @@

thema (link)

Stars - 200 + 201 Watchers @@ -43472,7 +43472,7 @@

thema (link)

Last Updated - 2023-09-05T20:34:35Z + 2023-09-12T04:36:56Z Archived @@ -43924,7 +43924,7 @@

fastapi-clean-example (link)

Stars - 180 + 181 Watchers @@ -43932,7 +43932,7 @@

fastapi-clean-example (link)

Forks - 38 + 39 Created @@ -43940,7 +43940,7 @@

fastapi-clean-example (link)

Last Updated - 2023-09-05T17:54:52Z + 2023-09-12T21:56:10Z Archived @@ -44496,7 +44496,7 @@

swagger-inflector (link)

Stars - 152 + 153 Watchers @@ -44512,7 +44512,7 @@

swagger-inflector (link)

Last Updated - 2023-06-13T18:44:54Z + 2023-09-12T20:41:10Z Archived @@ -44712,7 +44712,7 @@

itty-router-openapi (link)

Forks - 25 + 26 Created @@ -45224,7 +45224,7 @@

openapi-starter (link)

Stars - 107 + 108 Watchers @@ -45240,7 +45240,7 @@

openapi-starter (link)

Last Updated - 2023-09-06T03:04:06Z + 2023-09-12T12:47:08Z Archived @@ -46784,7 +46784,7 @@

gnext (link)

Stars - 61 + 62 Watchers @@ -46800,7 +46800,7 @@

gnext (link)

Last Updated - 2023-06-20T06:51:27Z + 2023-09-12T04:29:53Z Archived @@ -46836,7 +46836,7 @@

esmerald (link)

Stars - 61 + 62 Watchers @@ -46852,7 +46852,7 @@

esmerald (link)

Last Updated - 2023-09-08T16:43:34Z + 2023-09-12T20:56:52Z Archived @@ -47356,7 +47356,7 @@

refitter (link)

Stars - 51 + 52 Watchers @@ -47372,7 +47372,7 @@

refitter (link)

Last Updated - 2023-09-10T09:41:38Z + 2023-09-12T14:40:31Z Archived @@ -49860,7 +49860,7 @@

selenium-openapi (link)

Forks - 11 + 10 Created @@ -50856,7 +50856,7 @@

apigen.springboot (link)

Last Updated - 2023-09-11T11:03:24Z + 2023-09-12T11:16:24Z Archived @@ -51828,11 +51828,11 @@

paypal-rest-api-specifications (link) Stars - 19 + 21 Watchers - 6 + 8 Forks @@ -51844,7 +51844,7 @@

paypal-rest-api-specifications (link) Last Updated - 2023-09-11T14:31:14Z + 2023-09-12T22:41:08Z Archived @@ -52248,7 +52248,7 @@

duckyapi (link)

Watchers - 3 + 4 Forks @@ -56092,7 +56092,7 @@

openapi-linter (link)

Stars - 8 + 9 Watchers @@ -56108,7 +56108,7 @@

openapi-linter (link)

Last Updated - 2023-08-22T18:00:54Z + 2023-09-12T06:33:43Z Archived @@ -59836,7 +59836,7 @@

aiohttp-deps (link)

Stars - 5 + 6 Watchers @@ -59852,7 +59852,7 @@

aiohttp-deps (link)

Last Updated - 2023-07-29T21:16:27Z + 2023-09-12T12:33:56Z Archived @@ -62284,7 +62284,7 @@

cardano-governance (link)

Watchers - 9 + 10 Forks @@ -64412,7 +64412,7 @@

goapi (link)

Stars - 3 + 33 Watchers @@ -64420,7 +64420,7 @@

goapi (link)

Forks - 0 + 2 Created @@ -64428,7 +64428,7 @@

goapi (link)

Last Updated - 2023-03-15T10:22:32Z + 2023-09-13T03:06:59Z Archived @@ -75400,7 +75400,7 @@

cibo (link)

Last Updated - 2023-07-31T12:22:15Z + 2023-09-12T09:44:57Z Archived @@ -95620,7 +95620,7 @@

Microsoft.OpenApi.net (link)

Forks - 202 + 203 Created @@ -96400,7 +96400,7 @@

PHP-CRUD-API (link)

Forks - 1006 + 1008 Created @@ -97700,7 +97700,7 @@

Connexion (link)

Forks - 733 + 732 Created @@ -98108,7 +98108,7 @@

LoopBack 4 (link)

Stars - 4622 + 4624 Watchers @@ -98116,7 +98116,7 @@

LoopBack 4 (link)

Forks - 1043 + 1044 Created @@ -98124,7 +98124,7 @@

LoopBack 4 (link)

Last Updated - 2023-09-11T10:03:12Z + 2023-09-12T14:50:31Z Archived @@ -98212,7 +98212,7 @@

RESTler (link)

Stars - 2266 + 2269 Watchers @@ -98228,7 +98228,7 @@

RESTler (link)

Last Updated - 2023-09-10T11:52:26Z + 2023-09-12T12:50:19Z Archived diff --git a/docs/categories/code-generators.html b/docs/categories/code-generators.html index 03fa8610..d012538a 100644 --- a/docs/categories/code-generators.html +++ b/docs/categories/code-generators.html @@ -86,7 +86,7 @@

No Yes No - 4063 + 4075 @@ -132,7 +132,7 @@

No Yes Yes - 17537 + 17542 @@ -178,7 +178,7 @@

No Yes Yes - 817 + 818 @@ -266,7 +266,7 @@

No Yes Yes - 15960 + 15961 @@ -358,7 +358,7 @@

No Yes Yes - 1622 + 1626 @@ -427,7 +427,7 @@

No Yes Yes - 1816 + 1818 @@ -450,7 +450,7 @@

Yes Yes No - 24399 + 24410 @@ -513,7 +513,7 @@

No Yes No - 1059 + 1060 @@ -769,7 +769,7 @@

No Yes No - 19 + 21 @@ -2007,7 +2007,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4063 + 4075 Watchers @@ -2023,7 +2023,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-09-12T02:35:34Z + 2023-09-13T01:39:20Z Archived @@ -2111,7 +2111,7 @@

OpenAPI Generator (link)

Stars - 17537 + 17542 Watchers @@ -2119,7 +2119,7 @@

OpenAPI Generator (link)

Forks - 5599 + 5602 Created @@ -2127,7 +2127,7 @@

OpenAPI Generator (link)

Last Updated - 2023-09-12T01:44:15Z + 2023-09-13T01:39:22Z Archived @@ -2215,7 +2215,7 @@

Kiota Api Client Generator (link)

Stars - 817 + 818 Watchers @@ -2231,7 +2231,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-09-12T02:14:45Z + 2023-09-13T01:23:19Z Archived @@ -2423,7 +2423,7 @@

Swagger-Codegen (link)

Stars - 15960 + 15961 Watchers @@ -2431,7 +2431,7 @@

Swagger-Codegen (link)

Forks - 6011 + 6012 Created @@ -2439,7 +2439,7 @@

Swagger-Codegen (link)

Last Updated - 2023-09-11T09:05:29Z + 2023-09-12T12:03:31Z Archived @@ -2631,7 +2631,7 @@

orval (link)

Stars - 1622 + 1626 Watchers @@ -2639,7 +2639,7 @@

orval (link)

Forks - 184 + 185 Created @@ -2647,7 +2647,7 @@

orval (link)

Last Updated - 2023-09-11T15:51:18Z + 2023-09-12T13:36:55Z Archived @@ -2787,7 +2787,7 @@

Fern (link)

Stars - 1816 + 1818 Watchers @@ -2803,7 +2803,7 @@

Fern (link)

Last Updated - 2023-09-11T16:41:46Z + 2023-09-13T00:38:36Z Archived @@ -2839,7 +2839,7 @@

swagger-ui (link)

Stars - 24399 + 24410 Watchers @@ -2855,7 +2855,7 @@

swagger-ui (link)

Last Updated - 2023-09-12T00:56:23Z + 2023-09-13T02:31:32Z Archived @@ -2995,7 +2995,7 @@

openapi-generator-cli (link)

Stars - 1059 + 1060 Watchers @@ -3011,7 +3011,7 @@

openapi-generator-cli (link)

Last Updated - 2023-09-11T10:48:23Z + 2023-09-12T19:02:57Z Archived @@ -3523,7 +3523,7 @@

selenium-openapi (link)

Forks - 11 + 10 Created @@ -3619,11 +3619,11 @@

paypal-rest-api-specifications (link) Stars - 19 + 21 Watchers - 6 + 8 Forks @@ -3635,7 +3635,7 @@

paypal-rest-api-specifications (link) Last Updated - 2023-09-11T14:31:14Z + 2023-09-12T22:41:08Z Archived diff --git a/docs/categories/converters.html b/docs/categories/converters.html index a30b5f0c..472e97d8 100644 --- a/docs/categories/converters.html +++ b/docs/categories/converters.html @@ -128,7 +128,7 @@

Yes Yes Yes - 165 + 166 @@ -216,7 +216,7 @@

No Yes Yes - 1024 + 1026 @@ -262,7 +262,7 @@

No No Yes - 8870 + 8873 @@ -329,7 +329,7 @@

Yes Yes Yes - 30 + 31 @@ -350,7 +350,7 @@

No Yes No - 349 + 350 @@ -463,7 +463,7 @@

No Yes No - 815 + 817 @@ -509,7 +509,7 @@

Yes Yes Yes - 3506 + 3507 @@ -1192,7 +1192,7 @@

OData OpenAPI (link)

Stars - 165 + 166 Watchers @@ -1208,7 +1208,7 @@

OData OpenAPI (link)

Last Updated - 2023-09-03T21:43:58Z + 2023-09-12T14:18:27Z Archived @@ -1400,7 +1400,7 @@

LucyBot api-spec-converter (link)

Stars - 1024 + 1026 Watchers @@ -1416,7 +1416,7 @@

LucyBot api-spec-converter (link)

Last Updated - 2023-09-09T04:26:24Z + 2023-09-12T23:20:01Z Archived @@ -1504,7 +1504,7 @@

go-swagger (link)

Stars - 8870 + 8873 Watchers @@ -1520,7 +1520,7 @@

go-swagger (link)

Last Updated - 2023-09-12T03:02:53Z + 2023-09-13T03:05:36Z Archived @@ -1660,7 +1660,7 @@

oas-normalize (link)

Stars - 30 + 31 Watchers @@ -1668,7 +1668,7 @@

oas-normalize (link)

Forks - 5 + 6 Created @@ -1676,7 +1676,7 @@

oas-normalize (link)

Last Updated - 2023-09-11T14:10:55Z + 2023-09-12T16:46:45Z Archived @@ -1712,7 +1712,7 @@

laravel-openapi (link)

Stars - 349 + 350 Watchers @@ -1728,7 +1728,7 @@

laravel-openapi (link)

Last Updated - 2023-09-07T08:31:31Z + 2023-09-12T16:03:29Z Archived @@ -1884,7 +1884,7 @@

openapi-to-postman (link)

Last Updated - 2023-09-08T21:15:11Z + 2023-09-12T22:57:26Z Archived @@ -1972,7 +1972,7 @@

openapi-python-client (link)

Stars - 815 + 817 Watchers @@ -1988,7 +1988,7 @@

openapi-python-client (link)

Last Updated - 2023-09-11T17:17:19Z + 2023-09-12T20:22:24Z Archived @@ -2076,7 +2076,7 @@

OpenAPI TypeScript (link)

Stars - 3506 + 3507 Watchers @@ -2092,7 +2092,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-09-12T03:07:44Z + 2023-09-12T18:55:38Z Archived diff --git a/docs/categories/data-validators.html b/docs/categories/data-validators.html index 731444c9..1cf3f98f 100644 --- a/docs/categories/data-validators.html +++ b/docs/categories/data-validators.html @@ -86,7 +86,7 @@

No Yes Yes - 2865 + 2866 @@ -130,7 +130,7 @@

No Yes No - 798 + 799 @@ -195,7 +195,7 @@

No Yes Yes - 817 + 818 @@ -241,7 +241,7 @@

No Yes Yes - 2084 + 2086 @@ -440,7 +440,7 @@

Yes Yes Yes - 273 + 276 @@ -486,7 +486,7 @@

Yes Yes Yes - 40 + 42 @@ -1785,7 +1785,7 @@

tsoa (link)

Stars - 2865 + 2866 Watchers @@ -1801,7 +1801,7 @@

tsoa (link)

Last Updated - 2023-09-11T21:13:23Z + 2023-09-12T17:47:54Z Archived @@ -1889,7 +1889,7 @@

express-openapi-validator (link)

Stars - 798 + 799 Watchers @@ -1905,7 +1905,7 @@

express-openapi-validator (link)

Last Updated - 2023-09-07T13:48:32Z + 2023-09-12T17:03:06Z Archived @@ -2045,7 +2045,7 @@

committee (link)

Stars - 817 + 818 Watchers @@ -2061,7 +2061,7 @@

committee (link)

Last Updated - 2023-09-07T15:14:44Z + 2023-09-13T01:39:29Z Archived @@ -2149,7 +2149,7 @@

kin-openapi (link)

Stars - 2084 + 2086 Watchers @@ -2157,7 +2157,7 @@

kin-openapi (link)

Forks - 361 + 362 Created @@ -2165,7 +2165,7 @@

kin-openapi (link)

Last Updated - 2023-09-11T21:43:26Z + 2023-09-12T08:15:03Z Archived @@ -2617,7 +2617,7 @@

vacuum (link)

Stars - 273 + 276 Watchers @@ -2633,7 +2633,7 @@

vacuum (link)

Last Updated - 2023-09-11T10:25:35Z + 2023-09-12T17:10:45Z Archived @@ -2721,7 +2721,7 @@

openapi-changes (link)

Stars - 40 + 42 Watchers @@ -2737,7 +2737,7 @@

openapi-changes (link)

Last Updated - 2023-09-11T02:08:34Z + 2023-09-12T18:29:42Z Archived @@ -4557,7 +4557,7 @@

cibo (link)

Last Updated - 2023-07-31T12:22:15Z + 2023-09-12T09:44:57Z Archived diff --git a/docs/categories/description-validators.html b/docs/categories/description-validators.html index 216f5a4d..660beb77 100644 --- a/docs/categories/description-validators.html +++ b/docs/categories/description-validators.html @@ -84,7 +84,7 @@

No Yes No - 798 + 799 @@ -128,7 +128,7 @@

Yes Yes Yes - 2036 + 2038 @@ -170,7 +170,7 @@

No Yes Yes - 405 + 406 @@ -237,7 +237,7 @@

No Yes No - 444 + 445 @@ -281,7 +281,7 @@

Yes Yes Yes - 30 + 31 @@ -346,7 +346,7 @@

Yes Yes No - 948 + 949 @@ -369,7 +369,7 @@

Yes Yes Yes - 273 + 276 @@ -436,7 +436,7 @@

No Yes No - 738 + 739 @@ -793,7 +793,7 @@

No Yes No - 8 + 9 @@ -1500,7 +1500,7 @@

express-openapi-validator (link)

Stars - 798 + 799 Watchers @@ -1516,7 +1516,7 @@

express-openapi-validator (link)

Last Updated - 2023-09-07T13:48:32Z + 2023-09-12T17:03:06Z Archived @@ -1604,7 +1604,7 @@

Spectral (link)

Stars - 2036 + 2038 Watchers @@ -1620,7 +1620,7 @@

Spectral (link)

Last Updated - 2023-09-11T05:40:37Z + 2023-09-12T15:08:11Z Archived @@ -1708,7 +1708,7 @@

OpenAPI Validator (link)

Stars - 405 + 406 Watchers @@ -1724,7 +1724,7 @@

OpenAPI Validator (link)

Last Updated - 2023-09-07T07:19:48Z + 2023-09-12T16:45:46Z Archived @@ -1768,7 +1768,7 @@

@redocly/redocly-cli (link)

Forks - 98 + 97 Created @@ -1864,7 +1864,7 @@

php-openapi (link)

Stars - 444 + 445 Watchers @@ -1880,7 +1880,7 @@

php-openapi (link)

Last Updated - 2023-09-10T09:36:44Z + 2023-09-12T12:52:31Z Archived @@ -1968,7 +1968,7 @@

oas-normalize (link)

Stars - 30 + 31 Watchers @@ -1976,7 +1976,7 @@

oas-normalize (link)

Forks - 5 + 6 Created @@ -1984,7 +1984,7 @@

oas-normalize (link)

Last Updated - 2023-09-11T14:10:55Z + 2023-09-12T16:46:45Z Archived @@ -2088,7 +2088,7 @@

super-linter (link)

Last Updated - 2023-09-10T11:18:37Z + 2023-09-12T17:38:44Z Archived @@ -2124,7 +2124,7 @@

Cherrybomb (link)

Stars - 948 + 949 Watchers @@ -2140,7 +2140,7 @@

Cherrybomb (link)

Last Updated - 2023-09-11T17:24:35Z + 2023-09-12T06:40:20Z Archived @@ -2176,7 +2176,7 @@

vacuum (link)

Stars - 273 + 276 Watchers @@ -2192,7 +2192,7 @@

vacuum (link)

Last Updated - 2023-09-11T10:25:35Z + 2023-09-12T17:10:45Z Archived @@ -2332,7 +2332,7 @@

studio (link)

Stars - 738 + 739 Watchers @@ -2348,7 +2348,7 @@

studio (link)

Last Updated - 2023-09-11T15:39:04Z + 2023-09-12T21:28:14Z Archived @@ -3216,7 +3216,7 @@

openapi-linter (link)

Stars - 8 + 9 Watchers @@ -3232,7 +3232,7 @@

openapi-linter (link)

Last Updated - 2023-08-22T18:00:54Z + 2023-09-12T06:33:43Z Archived diff --git a/docs/categories/documentation.html b/docs/categories/documentation.html index d8c3f929..e631d243 100644 --- a/docs/categories/documentation.html +++ b/docs/categories/documentation.html @@ -252,7 +252,7 @@

Yes Yes Yes - 223 + 224 @@ -275,7 +275,7 @@

Yes Yes Yes - 20919 + 20926 @@ -321,7 +321,7 @@

No Yes Yes - 1357 + 1359 @@ -538,7 +538,7 @@

Yes Yes Yes - 1175 + 1178 @@ -670,7 +670,7 @@

Yes Yes Yes - 40 + 42 @@ -733,7 +733,7 @@

No Yes Yes - 1816 + 1818 @@ -777,7 +777,7 @@

No Yes No - 1392 + 1393 @@ -2329,7 +2329,7 @@

OpenAPI Explorer (link)

Stars - 223 + 224 Watchers @@ -2345,7 +2345,7 @@

OpenAPI Explorer (link)

Last Updated - 2023-09-11T15:19:36Z + 2023-09-12T06:51:23Z Archived @@ -2381,7 +2381,7 @@

ReDoc (link)

Stars - 20919 + 20926 Watchers @@ -2389,7 +2389,7 @@

ReDoc (link)

Forks - 2220 + 2219 Created @@ -2397,7 +2397,7 @@

ReDoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived @@ -2485,7 +2485,7 @@

widdershins (link)

Stars - 1357 + 1359 Watchers @@ -2493,7 +2493,7 @@

widdershins (link)

Forks - 311 + 312 Created @@ -2501,7 +2501,7 @@

widdershins (link)

Last Updated - 2023-09-11T12:24:11Z + 2023-09-12T21:51:24Z Archived @@ -3005,7 +3005,7 @@

Elements (link)

Stars - 1175 + 1178 Watchers @@ -3021,7 +3021,7 @@

Elements (link)

Last Updated - 2023-09-11T14:33:05Z + 2023-09-12T17:38:51Z Archived @@ -3317,7 +3317,7 @@

openapi-changes (link)

Stars - 40 + 42 Watchers @@ -3333,7 +3333,7 @@

openapi-changes (link)

Last Updated - 2023-09-11T02:08:34Z + 2023-09-12T18:29:42Z Archived @@ -3473,7 +3473,7 @@

Fern (link)

Stars - 1816 + 1818 Watchers @@ -3489,7 +3489,7 @@

Fern (link)

Last Updated - 2023-09-11T16:41:46Z + 2023-09-13T00:38:36Z Archived @@ -3577,7 +3577,7 @@

rapidoc (link)

Stars - 1392 + 1393 Watchers @@ -3593,7 +3593,7 @@

rapidoc (link)

Last Updated - 2023-09-10T09:39:47Z + 2023-09-12T05:44:11Z Archived @@ -3637,7 +3637,7 @@

beacon-apis (link)

Forks - 160 + 161 Created diff --git a/docs/categories/editors.html b/docs/categories/editors.html index 1579b040..71ae8021 100644 --- a/docs/categories/editors.html +++ b/docs/categories/editors.html @@ -86,7 +86,7 @@

No Yes No - 1270 + 1269 @@ -256,7 +256,7 @@

OpenAPI-gui (link)

Stars - 1270 + 1269 Watchers @@ -272,7 +272,7 @@

OpenAPI-gui (link)

Last Updated - 2023-09-11T21:13:11Z + 2023-09-12T16:01:55Z Archived diff --git a/docs/categories/learning.html b/docs/categories/learning.html index b176c6fe..de74e2dd 100644 --- a/docs/categories/learning.html +++ b/docs/categories/learning.html @@ -86,7 +86,7 @@

Yes Yes No - 1187 + 1188 @@ -295,7 +295,7 @@

optic diff (link)

Stars - 1187 + 1188 Watchers @@ -311,7 +311,7 @@

optic diff (link)

Last Updated - 2023-09-11T22:37:31Z + 2023-09-12T20:27:01Z Archived diff --git a/docs/categories/low-level-tooling.html b/docs/categories/low-level-tooling.html index adf66c03..4e9eac4f 100644 --- a/docs/categories/low-level-tooling.html +++ b/docs/categories/low-level-tooling.html @@ -86,7 +86,7 @@

No Yes No - 2779 + 2781 @@ -1498,7 +1498,7 @@

springdoc-openapi (link)

Stars - 2779 + 2781 Watchers @@ -1514,7 +1514,7 @@

springdoc-openapi (link)

Last Updated - 2023-09-12T01:30:54Z + 2023-09-12T19:36:22Z Archived @@ -2698,7 +2698,7 @@

cardano-governance (link)

Watchers - 9 + 10 Forks @@ -4522,7 +4522,7 @@

Microsoft.OpenApi.net (link)

Forks - 202 + 203 Created diff --git a/docs/categories/mock-testing.html b/docs/categories/mock-testing.html index 3c1e4cbf..9796f30c 100644 --- a/docs/categories/mock-testing.html +++ b/docs/categories/mock-testing.html @@ -86,7 +86,7 @@

Yes Yes Yes - 931 + 932 @@ -140,7 +140,7 @@

Microcks (link)

Stars - 931 + 932 Watchers @@ -156,7 +156,7 @@

Microcks (link)

Last Updated - 2023-09-10T16:24:43Z + 2023-09-12T05:33:12Z Archived diff --git a/docs/categories/mock.html b/docs/categories/mock.html index 4c9934e4..99532c19 100644 --- a/docs/categories/mock.html +++ b/docs/categories/mock.html @@ -125,7 +125,7 @@

Yes Yes Yes - 3708 + 3711 @@ -345,7 +345,7 @@

No Yes Yes - 1622 + 1626 @@ -828,7 +828,7 @@

Prism (link)

Stars - 3708 + 3711 Watchers @@ -844,7 +844,7 @@

Prism (link)

Last Updated - 2023-09-10T18:25:44Z + 2023-09-12T21:24:57Z Archived @@ -1348,7 +1348,7 @@

orval (link)

Stars - 1622 + 1626 Watchers @@ -1356,7 +1356,7 @@

orval (link)

Forks - 184 + 185 Created @@ -1364,7 +1364,7 @@

orval (link)

Last Updated - 2023-09-11T15:51:18Z + 2023-09-12T13:36:55Z Archived @@ -1928,7 +1928,7 @@

Connexion (link)

Forks - 733 + 732 Created diff --git a/docs/categories/parsers.html b/docs/categories/parsers.html index fab76f09..402c1519 100644 --- a/docs/categories/parsers.html +++ b/docs/categories/parsers.html @@ -86,7 +86,7 @@

No Yes No - 298 + 299 @@ -197,7 +197,7 @@

Yes Yes Yes - 223 + 224 @@ -220,7 +220,7 @@

Yes Yes Yes - 20919 + 20926 @@ -266,7 +266,7 @@

No Yes Yes - 1357 + 1359 @@ -333,7 +333,7 @@

No Yes No - 4063 + 4075 @@ -607,7 +607,7 @@

No Yes Yes - 2865 + 2866 @@ -829,7 +829,7 @@

No Yes Yes - 101 + 102 @@ -896,7 +896,7 @@

No Yes No - 388 + 389 @@ -919,7 +919,7 @@

No Yes Yes - 2084 + 2086 @@ -940,7 +940,7 @@

No Yes No - 444 + 445 @@ -1118,7 +1118,7 @@

No No Yes - 8870 + 8873 @@ -1208,7 +1208,7 @@

Yes Yes Yes - 30 + 31 @@ -1566,7 +1566,7 @@

No Yes No - 815 + 817 @@ -1704,7 +1704,7 @@

Yes Yes Yes - 3506 + 3507 @@ -1819,7 +1819,7 @@

Yes Yes Yes - 40 + 42 @@ -1970,7 +1970,7 @@

Yes Yes No - 20919 + 20926 @@ -2033,7 +2033,7 @@

No Yes No - 673 + 674 @@ -2054,7 +2054,7 @@

No Yes No - 683 + 703 @@ -2117,7 +2117,7 @@

No Yes No - 645 + 646 @@ -2180,7 +2180,7 @@

No Yes No - 413 + 414 @@ -2518,7 +2518,7 @@

No Yes No - 152 + 153 @@ -2669,7 +2669,7 @@

Yes Yes No - 107 + 108 @@ -3131,7 +3131,7 @@

No Yes No - 51 + 52 @@ -9971,7 +9971,7 @@

oasdiff (link)

Stars - 298 + 299 Watchers @@ -9987,7 +9987,7 @@

oasdiff (link)

Last Updated - 2023-09-11T21:25:17Z + 2023-09-12T20:30:25Z Archived @@ -10231,7 +10231,7 @@

OpenAPI Explorer (link)

Stars - 223 + 224 Watchers @@ -10247,7 +10247,7 @@

OpenAPI Explorer (link)

Last Updated - 2023-09-11T15:19:36Z + 2023-09-12T06:51:23Z Archived @@ -10283,7 +10283,7 @@

ReDoc (link)

Stars - 20919 + 20926 Watchers @@ -10291,7 +10291,7 @@

ReDoc (link)

Forks - 2220 + 2219 Created @@ -10299,7 +10299,7 @@

ReDoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived @@ -10387,7 +10387,7 @@

widdershins (link)

Stars - 1357 + 1359 Watchers @@ -10395,7 +10395,7 @@

widdershins (link)

Forks - 311 + 312 Created @@ -10403,7 +10403,7 @@

widdershins (link)

Last Updated - 2023-09-11T12:24:11Z + 2023-09-12T21:51:24Z Archived @@ -10543,7 +10543,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4063 + 4075 Watchers @@ -10559,7 +10559,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-09-12T02:35:34Z + 2023-09-13T01:39:20Z Archived @@ -11167,7 +11167,7 @@

tsoa (link)

Stars - 2865 + 2866 Watchers @@ -11183,7 +11183,7 @@

tsoa (link)

Last Updated - 2023-09-11T21:13:23Z + 2023-09-12T17:47:54Z Archived @@ -11487,7 +11487,7 @@

@redocly/redocly-cli (link)

Forks - 98 + 97 Created @@ -11687,7 +11687,7 @@

openapi-snippet (link)

Stars - 101 + 102 Watchers @@ -11703,7 +11703,7 @@

openapi-snippet (link)

Last Updated - 2023-08-30T11:45:49Z + 2023-09-12T21:35:52Z Archived @@ -11843,7 +11843,7 @@

OpenAPI-TS (link)

Stars - 388 + 389 Watchers @@ -11859,7 +11859,7 @@

OpenAPI-TS (link)

Last Updated - 2023-09-11T17:16:09Z + 2023-09-12T07:54:00Z Archived @@ -11895,7 +11895,7 @@

kin-openapi (link)

Stars - 2084 + 2086 Watchers @@ -11903,7 +11903,7 @@

kin-openapi (link)

Forks - 361 + 362 Created @@ -11911,7 +11911,7 @@

kin-openapi (link)

Last Updated - 2023-09-11T21:43:26Z + 2023-09-12T08:15:03Z Archived @@ -11947,7 +11947,7 @@

php-openapi (link)

Stars - 444 + 445 Watchers @@ -11963,7 +11963,7 @@

php-openapi (link)

Last Updated - 2023-09-10T09:36:44Z + 2023-09-12T12:52:31Z Archived @@ -12007,7 +12007,7 @@

Object Oriented OpenAPI Specification ( Forks - 18 + 19 Created @@ -12163,7 +12163,7 @@

Microsoft/OpenAPI.NET (link)

Forks - 202 + 203 Created @@ -12363,7 +12363,7 @@

go-swagger (link)

Stars - 8870 + 8873 Watchers @@ -12379,7 +12379,7 @@

go-swagger (link)

Last Updated - 2023-09-12T03:02:53Z + 2023-09-13T03:05:36Z Archived @@ -12571,7 +12571,7 @@

oas-normalize (link)

Stars - 30 + 31 Watchers @@ -12579,7 +12579,7 @@

oas-normalize (link)

Forks - 5 + 6 Created @@ -12587,7 +12587,7 @@

oas-normalize (link)

Last Updated - 2023-09-11T14:10:55Z + 2023-09-12T16:46:45Z Archived @@ -12683,7 +12683,7 @@

openapi-fuzzer (link)

Forks - 17 + 18 Created @@ -13107,7 +13107,7 @@

openapi-to-postman (link)

Last Updated - 2023-09-08T21:15:11Z + 2023-09-12T22:57:26Z Archived @@ -13403,7 +13403,7 @@

openapi-python-client (link)

Stars - 815 + 817 Watchers @@ -13419,7 +13419,7 @@

openapi-python-client (link)

Last Updated - 2023-09-11T17:17:19Z + 2023-09-12T20:22:24Z Archived @@ -13715,7 +13715,7 @@

OpenAPI TypeScript (link)

Stars - 3506 + 3507 Watchers @@ -13731,7 +13731,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-09-12T03:07:44Z + 2023-09-12T18:55:38Z Archived @@ -13975,7 +13975,7 @@

openapi-changes (link)

Stars - 40 + 42 Watchers @@ -13991,7 +13991,7 @@

openapi-changes (link)

Last Updated - 2023-09-11T02:08:34Z + 2023-09-12T18:29:42Z Archived @@ -14339,7 +14339,7 @@

Redoc (link)

Stars - 20919 + 20926 Watchers @@ -14347,7 +14347,7 @@

Redoc (link)

Forks - 2220 + 2219 Created @@ -14355,7 +14355,7 @@

Redoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived @@ -14495,7 +14495,7 @@

json-schema-validator (link)

Stars - 673 + 674 Watchers @@ -14503,7 +14503,7 @@

json-schema-validator (link)

Forks - 287 + 288 Created @@ -14511,7 +14511,7 @@

json-schema-validator (link)

Last Updated - 2023-09-11T11:49:44Z + 2023-09-12T04:19:29Z Archived @@ -14547,7 +14547,7 @@

ogen (link)

Stars - 683 + 703 Watchers @@ -14563,7 +14563,7 @@

ogen (link)

Last Updated - 2023-09-11T14:28:49Z + 2023-09-13T02:38:26Z Archived @@ -14703,7 +14703,7 @@

openapi-diff (link)

Stars - 645 + 646 Watchers @@ -14719,7 +14719,7 @@

openapi-diff (link)

Last Updated - 2023-09-11T23:53:50Z + 2023-09-12T10:36:10Z Archived @@ -14859,7 +14859,7 @@

zod-to-openapi (link)

Stars - 413 + 414 Watchers @@ -14875,7 +14875,7 @@

zod-to-openapi (link)

Last Updated - 2023-09-11T13:37:49Z + 2023-09-12T04:56:46Z Archived @@ -15691,7 +15691,7 @@

swagger-inflector (link)

Stars - 152 + 153 Watchers @@ -15707,7 +15707,7 @@

swagger-inflector (link)

Last Updated - 2023-06-13T18:44:54Z + 2023-09-12T20:41:10Z Archived @@ -16055,7 +16055,7 @@

openapi-starter (link)

Stars - 107 + 108 Watchers @@ -16071,7 +16071,7 @@

openapi-starter (link)

Last Updated - 2023-09-06T03:04:06Z + 2023-09-12T12:47:08Z Archived @@ -17199,7 +17199,7 @@

refitter (link)

Stars - 51 + 52 Watchers @@ -17215,7 +17215,7 @@

refitter (link)

Last Updated - 2023-09-10T09:41:38Z + 2023-09-12T14:40:31Z Archived @@ -32651,7 +32651,7 @@

Microsoft.OpenApi.net (link)

Forks - 202 + 203 Created diff --git a/docs/categories/sdk.html b/docs/categories/sdk.html index 6d1cbdb8..3397290f 100644 --- a/docs/categories/sdk.html +++ b/docs/categories/sdk.html @@ -109,7 +109,7 @@

No Yes Yes - 17537 + 17542 @@ -155,7 +155,7 @@

No Yes Yes - 817 + 818 @@ -285,7 +285,7 @@

No No Yes - 8870 + 8873 @@ -354,7 +354,7 @@

No Yes Yes - 6051 + 6055 @@ -691,7 +691,7 @@

No Yes Yes - 1816 + 1818 @@ -733,7 +733,7 @@

No Yes No - 3350 + 3351 @@ -922,7 +922,7 @@

No Yes No - 61 + 62 @@ -2773,7 +2773,7 @@

OpenAPI Generator (link)

Stars - 17537 + 17542 Watchers @@ -2781,7 +2781,7 @@

OpenAPI Generator (link)

Forks - 5599 + 5602 Created @@ -2789,7 +2789,7 @@

OpenAPI Generator (link)

Last Updated - 2023-09-12T01:44:15Z + 2023-09-13T01:39:22Z Archived @@ -2877,7 +2877,7 @@

Kiota Api Client Generator (link)

Stars - 817 + 818 Watchers @@ -2893,7 +2893,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-09-12T02:14:45Z + 2023-09-13T01:23:19Z Archived @@ -3189,7 +3189,7 @@

go-swagger (link)

Stars - 8870 + 8873 Watchers @@ -3205,7 +3205,7 @@

go-swagger (link)

Last Updated - 2023-09-12T03:02:53Z + 2023-09-13T03:05:36Z Archived @@ -3345,7 +3345,7 @@

NSwag (link)

Stars - 6051 + 6055 Watchers @@ -3361,7 +3361,7 @@

NSwag (link)

Last Updated - 2023-09-11T03:48:18Z + 2023-09-13T00:54:54Z Archived @@ -3725,7 +3725,7 @@

OWASP ZAP (link)

Last Updated - 2023-09-11T16:35:16Z + 2023-09-13T00:06:16Z Archived @@ -4125,7 +4125,7 @@

Fern (link)

Stars - 1816 + 1818 Watchers @@ -4141,7 +4141,7 @@

Fern (link)

Last Updated - 2023-09-11T16:41:46Z + 2023-09-13T00:38:36Z Archived @@ -4193,7 +4193,7 @@

knife4j (link)

Last Updated - 2023-09-10T03:57:54Z + 2023-09-12T10:01:18Z Archived @@ -4229,7 +4229,7 @@

openapi-directory (link)

Stars - 3350 + 3351 Watchers @@ -4245,7 +4245,7 @@

openapi-directory (link)

Last Updated - 2023-09-11T00:06:42Z + 2023-09-13T00:44:30Z Archived @@ -4697,7 +4697,7 @@

gnext (link)

Stars - 61 + 62 Watchers @@ -4713,7 +4713,7 @@

gnext (link)

Last Updated - 2023-06-20T06:51:27Z + 2023-09-12T04:29:53Z Archived @@ -5181,7 +5181,7 @@

apigen.springboot (link)

Last Updated - 2023-09-11T11:03:24Z + 2023-09-12T11:16:24Z Archived diff --git a/docs/categories/security.html b/docs/categories/security.html index 69c39dbb..ec1db2fb 100644 --- a/docs/categories/security.html +++ b/docs/categories/security.html @@ -258,7 +258,7 @@

No Yes Yes - 2266 + 2269 @@ -424,7 +424,7 @@

openapi-fuzzer (link)

Forks - 17 + 18 Created @@ -588,7 +588,7 @@

OWASP ZAP (link)

Last Updated - 2023-09-11T16:35:16Z + 2023-09-13T00:06:16Z Archived @@ -728,7 +728,7 @@

RESTler (link)

Stars - 2266 + 2269 Watchers @@ -744,7 +744,7 @@

RESTler (link)

Last Updated - 2023-09-10T11:52:26Z + 2023-09-12T12:50:19Z Archived diff --git a/docs/categories/server-implementations.html b/docs/categories/server-implementations.html index 43e8ddae..16fb7005 100644 --- a/docs/categories/server-implementations.html +++ b/docs/categories/server-implementations.html @@ -86,7 +86,7 @@

Yes Yes No - 1187 + 1188 @@ -178,7 +178,7 @@

Yes Yes Yes - 8323 + 8325 @@ -224,7 +224,7 @@

Yes Yes Yes - 3708 + 3711 @@ -247,7 +247,7 @@

Yes Yes Yes - 931 + 932 @@ -293,7 +293,7 @@

No Yes Yes - 8020 + 8021 @@ -429,7 +429,7 @@

No Yes No - 26284 + 26296 @@ -521,7 +521,7 @@

No Yes No - 62397 + 62432 @@ -542,7 +542,7 @@

No Yes No - 12914 + 12918 @@ -565,7 +565,7 @@

No Yes No - 2779 + 2781 @@ -586,7 +586,7 @@

No Yes No - 2338 + 2339 @@ -609,7 +609,7 @@

No Yes No - 1843 + 1844 @@ -630,7 +630,7 @@

No Yes No - 1820 + 1822 @@ -653,7 +653,7 @@

No Yes No - 1270 + 1269 @@ -674,7 +674,7 @@

No Yes No - 1235 + 1238 @@ -695,7 +695,7 @@

No Yes No - 838 + 840 @@ -737,7 +737,7 @@

No Yes No - 738 + 739 @@ -928,7 +928,7 @@

No Yes No - 224 + 225 @@ -970,7 +970,7 @@

No Yes No - 200 + 201 @@ -991,7 +991,7 @@

No Yes No - 180 + 181 @@ -1222,7 +1222,7 @@

No Yes No - 61 + 62 @@ -1243,7 +1243,7 @@

No Yes No - 61 + 62 @@ -2967,7 +2967,7 @@

No Yes No - 5 + 6 @@ -3534,7 +3534,7 @@

No Yes No - 3 + 33 @@ -9251,7 +9251,7 @@

optic diff (link)

Stars - 1187 + 1188 Watchers @@ -9267,7 +9267,7 @@

optic diff (link)

Last Updated - 2023-09-11T22:37:31Z + 2023-09-12T20:27:01Z Archived @@ -9459,7 +9459,7 @@

Swagger Editor (link)

Stars - 8323 + 8325 Watchers @@ -9475,7 +9475,7 @@

Swagger Editor (link)

Last Updated - 2023-09-11T09:28:54Z + 2023-09-12T20:43:08Z Archived @@ -9563,7 +9563,7 @@

Prism (link)

Stars - 3708 + 3711 Watchers @@ -9579,7 +9579,7 @@

Prism (link)

Last Updated - 2023-09-10T18:25:44Z + 2023-09-12T21:24:57Z Archived @@ -9615,7 +9615,7 @@

Microcks (link)

Stars - 931 + 932 Watchers @@ -9631,7 +9631,7 @@

Microcks (link)

Last Updated - 2023-09-10T16:24:43Z + 2023-09-12T05:33:12Z Archived @@ -9719,7 +9719,7 @@

API Platform (link)

Stars - 8020 + 8021 Watchers @@ -9735,7 +9735,7 @@

API Platform (link)

Last Updated - 2023-09-11T12:56:05Z + 2023-09-12T08:46:04Z Archived @@ -9943,7 +9943,7 @@

super-linter (link)

Last Updated - 2023-09-10T11:18:37Z + 2023-09-12T17:38:44Z Archived @@ -10031,7 +10031,7 @@

Django REST Framework (link)

Stars - 26284 + 26296 Watchers @@ -10039,7 +10039,7 @@

Django REST Framework (link)

Forks - 6697 + 6701 Created @@ -10047,7 +10047,7 @@

Django REST Framework (link)

Last Updated - 2023-09-11T20:51:42Z + 2023-09-13T01:14:11Z Archived @@ -10239,15 +10239,15 @@

FastAPI (link)

Stars - 62397 + 62432 Watchers - 638 + 639 Forks - 5263 + 5268 Created @@ -10255,7 +10255,7 @@

FastAPI (link)

Last Updated - 2023-09-12T03:14:38Z + 2023-09-13T03:18:35Z Archived @@ -10291,7 +10291,7 @@

full-stack-fastapi-postgresql (link) Stars - 12914 + 12918 Watchers @@ -10299,7 +10299,7 @@

full-stack-fastapi-postgresql (link) Forks - 2372 + 2370 Created @@ -10307,7 +10307,7 @@

full-stack-fastapi-postgresql (link) Last Updated - 2023-09-11T16:11:43Z + 2023-09-12T14:22:20Z Archived @@ -10343,7 +10343,7 @@

springdoc-openapi (link)

Stars - 2779 + 2781 Watchers @@ -10359,7 +10359,7 @@

springdoc-openapi (link)

Last Updated - 2023-09-12T01:30:54Z + 2023-09-12T19:36:22Z Archived @@ -10395,7 +10395,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2338 + 2339 Watchers @@ -10411,7 +10411,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2023-09-10T18:05:06Z + 2023-09-12T07:21:37Z Archived @@ -10447,7 +10447,7 @@

Schemathesis (link)

Stars - 1843 + 1844 Watchers @@ -10463,7 +10463,7 @@

Schemathesis (link)

Last Updated - 2023-09-11T22:54:27Z + 2023-09-12T23:05:54Z Archived @@ -10499,7 +10499,7 @@

drf-spectacular (link)

Stars - 1820 + 1822 Watchers @@ -10515,7 +10515,7 @@

drf-spectacular (link)

Last Updated - 2023-09-11T18:45:42Z + 2023-09-12T16:17:56Z Archived @@ -10551,7 +10551,7 @@

OpenAPI-gui (link)

Stars - 1270 + 1269 Watchers @@ -10567,7 +10567,7 @@

OpenAPI-gui (link)

Last Updated - 2023-09-11T21:13:11Z + 2023-09-12T16:01:55Z Archived @@ -10603,7 +10603,7 @@

msgspec (link)

Stars - 1235 + 1238 Watchers @@ -10619,7 +10619,7 @@

msgspec (link)

Last Updated - 2023-09-11T17:25:27Z + 2023-09-12T13:36:45Z Archived @@ -10655,7 +10655,7 @@

apiflask (link)

Stars - 838 + 840 Watchers @@ -10671,7 +10671,7 @@

apiflask (link)

Last Updated - 2023-09-07T15:03:40Z + 2023-09-13T03:04:40Z Archived @@ -10715,7 +10715,7 @@

typespec (link)

Forks - 96 + 97 Created @@ -10759,7 +10759,7 @@

studio (link)

Stars - 738 + 739 Watchers @@ -10775,7 +10775,7 @@

studio (link)

Last Updated - 2023-09-11T15:39:04Z + 2023-09-12T21:28:14Z Archived @@ -11131,7 +11131,7 @@

beacon-apis (link)

Forks - 160 + 161 Created @@ -11227,7 +11227,7 @@

huma (link)

Stars - 224 + 225 Watchers @@ -11243,7 +11243,7 @@

huma (link)

Last Updated - 2023-09-08T05:33:40Z + 2023-09-12T13:05:31Z Archived @@ -11331,7 +11331,7 @@

thema (link)

Stars - 200 + 201 Watchers @@ -11347,7 +11347,7 @@

thema (link)

Last Updated - 2023-09-05T20:34:35Z + 2023-09-12T04:36:56Z Archived @@ -11383,7 +11383,7 @@

fastapi-clean-example (link)

Stars - 180 + 181 Watchers @@ -11391,7 +11391,7 @@

fastapi-clean-example (link)

Forks - 38 + 39 Created @@ -11399,7 +11399,7 @@

fastapi-clean-example (link)

Last Updated - 2023-09-05T17:54:52Z + 2023-09-12T21:56:10Z Archived @@ -11599,7 +11599,7 @@

itty-router-openapi (link)

Forks - 25 + 26 Created @@ -11955,7 +11955,7 @@

gnext (link)

Stars - 61 + 62 Watchers @@ -11971,7 +11971,7 @@

gnext (link)

Last Updated - 2023-06-20T06:51:27Z + 2023-09-12T04:29:53Z Archived @@ -12007,7 +12007,7 @@

esmerald (link)

Stars - 61 + 62 Watchers @@ -12023,7 +12023,7 @@

esmerald (link)

Last Updated - 2023-09-08T16:43:34Z + 2023-09-12T20:56:52Z Archived @@ -13003,7 +13003,7 @@

selenium-openapi (link)

Forks - 11 + 10 Created @@ -13623,7 +13623,7 @@

duckyapi (link)

Watchers - 3 + 4 Forks @@ -16271,7 +16271,7 @@

aiohttp-deps (link)

Stars - 5 + 6 Watchers @@ -16287,7 +16287,7 @@

aiohttp-deps (link)

Last Updated - 2023-07-29T21:16:27Z + 2023-09-12T12:33:56Z Archived @@ -17675,7 +17675,7 @@

goapi (link)

Stars - 3 + 33 Watchers @@ -17683,7 +17683,7 @@

goapi (link)

Forks - 0 + 2 Created @@ -17691,7 +17691,7 @@

goapi (link)

Last Updated - 2023-03-15T10:22:32Z + 2023-09-13T03:06:59Z Archived @@ -30423,7 +30423,7 @@

PHP-CRUD-API (link)

Forks - 1006 + 1008 Created @@ -30891,7 +30891,7 @@

Connexion (link)

Forks - 733 + 732 Created diff --git a/docs/categories/server.html b/docs/categories/server.html index 4d7d4df8..dd96d527 100644 --- a/docs/categories/server.html +++ b/docs/categories/server.html @@ -86,7 +86,7 @@

No Yes Yes - 2865 + 2866 @@ -224,7 +224,7 @@

No Yes Yes - 8020 + 8021 @@ -337,7 +337,7 @@

No Yes No - 1469 + 1470 @@ -428,7 +428,7 @@

No Yes Yes - 5849 + 5850 @@ -539,7 +539,7 @@

No Yes No - 200 + 201 @@ -2563,7 +2563,7 @@

No Yes No - 4622 + 4624 @@ -2684,7 +2684,7 @@

tsoa (link)

Stars - 2865 + 2866 Watchers @@ -2700,7 +2700,7 @@

tsoa (link)

Last Updated - 2023-09-11T21:13:23Z + 2023-09-12T17:47:54Z Archived @@ -2996,7 +2996,7 @@

API Platform (link)

Stars - 8020 + 8021 Watchers @@ -3012,7 +3012,7 @@

API Platform (link)

Last Updated - 2023-09-11T12:56:05Z + 2023-09-12T08:46:04Z Archived @@ -3256,7 +3256,7 @@

@nestjs/swagger (link)

Stars - 1469 + 1470 Watchers @@ -3264,7 +3264,7 @@

@nestjs/swagger (link)

Forks - 391 + 392 Created @@ -3272,7 +3272,7 @@

@nestjs/swagger (link)

Last Updated - 2023-09-10T10:49:17Z + 2023-09-12T11:47:11Z Archived @@ -3464,7 +3464,7 @@

SpringFox (link)

Stars - 5849 + 5850 Watchers @@ -3480,7 +3480,7 @@

SpringFox (link)

Last Updated - 2023-09-10T18:13:44Z + 2023-09-13T02:06:05Z Archived @@ -3724,7 +3724,7 @@

thema (link)

Stars - 200 + 201 Watchers @@ -3740,7 +3740,7 @@

thema (link)

Last Updated - 2023-09-05T20:34:35Z + 2023-09-12T04:36:56Z Archived @@ -8716,7 +8716,7 @@

LoopBack 4 (link)

Stars - 4622 + 4624 Watchers @@ -8724,7 +8724,7 @@

LoopBack 4 (link)

Forks - 1043 + 1044 Created @@ -8732,7 +8732,7 @@

LoopBack 4 (link)

Last Updated - 2023-09-11T10:03:12Z + 2023-09-12T14:50:31Z Archived diff --git a/docs/categories/testing-tools.html b/docs/categories/testing-tools.html index 349a2182..d7af38d3 100644 --- a/docs/categories/testing-tools.html +++ b/docs/categories/testing-tools.html @@ -109,7 +109,7 @@

No Yes No - 1843 + 1844 @@ -238,7 +238,7 @@

Schemathesis (link)

Stars - 1843 + 1844 Watchers @@ -254,7 +254,7 @@

Schemathesis (link)

Last Updated - 2023-09-11T22:54:27Z + 2023-09-12T23:05:54Z Archived diff --git a/docs/categories/testing.html b/docs/categories/testing.html index d745aa5d..5dcdadc2 100644 --- a/docs/categories/testing.html +++ b/docs/categories/testing.html @@ -105,7 +105,7 @@

No Yes Yes - 4048 + 4049 @@ -170,7 +170,7 @@

No Yes No - 349 + 350 @@ -622,7 +622,7 @@

Yes Yes Yes - 40 + 42 @@ -712,7 +712,7 @@

No Yes No - 5350 + 5353 @@ -733,7 +733,7 @@

No Yes No - 497 + 498 @@ -2484,7 +2484,7 @@

No Yes Yes - 2266 + 2269 @@ -2630,11 +2630,11 @@

Dredd (link)

Stars - 4048 + 4049 Watchers - 74 + 75 Forks @@ -2646,7 +2646,7 @@

Dredd (link)

Last Updated - 2023-09-11T19:39:14Z + 2023-09-12T12:19:09Z Archived @@ -2786,7 +2786,7 @@

laravel-openapi (link)

Stars - 349 + 350 Watchers @@ -2802,7 +2802,7 @@

laravel-openapi (link)

Last Updated - 2023-09-07T08:31:31Z + 2023-09-12T16:03:29Z Archived @@ -3878,7 +3878,7 @@

openapi-changes (link)

Stars - 40 + 42 Watchers @@ -3894,7 +3894,7 @@

openapi-changes (link)

Last Updated - 2023-09-11T02:08:34Z + 2023-09-12T18:29:42Z Archived @@ -4086,7 +4086,7 @@

mockoon (link)

Stars - 5350 + 5353 Watchers @@ -4102,7 +4102,7 @@

mockoon (link)

Last Updated - 2023-09-11T19:51:09Z + 2023-09-12T22:46:27Z Archived @@ -4138,7 +4138,7 @@

hibiapi (link)

Stars - 497 + 498 Watchers @@ -4154,7 +4154,7 @@

hibiapi (link)

Last Updated - 2023-09-07T03:20:21Z + 2023-09-12T14:42:48Z Archived @@ -4250,7 +4250,7 @@

express-jsdoc-swagger (link)

Forks - 25 + 26 Created @@ -8454,7 +8454,7 @@

RESTler (link)

Stars - 2266 + 2269 Watchers @@ -8470,7 +8470,7 @@

RESTler (link)

Last Updated - 2023-09-10T11:52:26Z + 2023-09-12T12:50:19Z Archived diff --git a/docs/categories/text-editors.html b/docs/categories/text-editors.html index 0a890e8b..6119134b 100644 --- a/docs/categories/text-editors.html +++ b/docs/categories/text-editors.html @@ -170,7 +170,7 @@

Yes Yes Yes - 8323 + 8325 @@ -580,7 +580,7 @@

Swagger Editor (link)

Stars - 8323 + 8325 Watchers @@ -596,7 +596,7 @@

Swagger Editor (link)

Last Updated - 2023-09-11T09:28:54Z + 2023-09-12T20:43:08Z Archived diff --git a/docs/categories/user-interfaces.html b/docs/categories/user-interfaces.html index 4c748281..3b03ef04 100644 --- a/docs/categories/user-interfaces.html +++ b/docs/categories/user-interfaces.html @@ -86,7 +86,7 @@

Yes Yes No - 24399 + 24410 @@ -109,7 +109,7 @@

Yes Yes No - 20919 + 20926 @@ -291,7 +291,7 @@

swagger-ui (link)

Stars - 24399 + 24410 Watchers @@ -307,7 +307,7 @@

swagger-ui (link)

Last Updated - 2023-09-12T00:56:23Z + 2023-09-13T02:31:32Z Archived @@ -343,7 +343,7 @@

Redoc (link)

Stars - 20919 + 20926 Watchers @@ -351,7 +351,7 @@

Redoc (link)

Forks - 2220 + 2219 Created @@ -359,7 +359,7 @@

Redoc (link)

Last Updated - 2023-09-11T17:46:53Z + 2023-09-12T23:20:26Z Archived diff --git a/src/_data/tools.yaml b/src/_data/tools.yaml index 49e942e8..e0c4ec14 100644 --- a/src/_data/tools.yaml +++ b/src/_data/tools.yaml @@ -11,17 +11,17 @@ repositoryId: 337689065 description: OpenAPI Diff and Breaking Changes created: '2021-02-10T10:28:36Z' - updated: '2023-09-11T21:25:17Z' + updated: '2023-09-12T20:30:25Z' language: Go archived: false - stars: 298 + stars: 299 watchers: 8 forks: 35 owner: Tufin logo: https://avatars.githubusercontent.com/u/5352131?v=4 license: Apache-2.0 - repoEtag: '"ba26771ff4f7cd026a751b7155f7d36740f6e512421f45fa8d1886457112fb26"' - repoLastModified: Mon, 11 Sep 2023 21:25:17 GMT + repoEtag: '"51d694e1a46921485f2853ef74cf80f4d87956e18d2ba8307cf3a1a9398722e6"' + repoLastModified: Tue, 12 Sep 2023 20:30:25 GMT foundInMaster: true name: oasdiff language: Go @@ -69,17 +69,17 @@ changes, publish accurate documentation and improve the design of your APIs. created: '2018-03-02T17:02:50Z' - updated: '2023-09-11T22:37:31Z' + updated: '2023-09-12T20:27:01Z' language: TypeScript archived: false - stars: 1187 + stars: 1188 watchers: 11 forks: 65 owner: opticdev logo: https://avatars.githubusercontent.com/u/34556970?v=4 license: MIT - repoEtag: '"043f9563720078445a8c749cf594bfcf220086c81388148a74336db93081cf49"' - repoLastModified: Mon, 11 Sep 2023 22:37:31 GMT + repoEtag: '"41633a8c618c1dbfa35943500d44ef940818617ff8de6b737898074b743d6e47"' + repoLastModified: Tue, 12 Sep 2023 20:27:01 GMT foundInMaster: true id: 8c3d08406ca659662808d51ddc10b4e4 v3_1: true @@ -205,17 +205,17 @@ OASIS OData TC: Tools for producing API descriptions for OData services that adhere to the OpenAPI Specification created: '2016-11-17T21:11:22Z' - updated: '2023-09-03T21:43:58Z' + updated: '2023-09-12T14:18:27Z' language: XSLT archived: false - stars: 165 + stars: 166 watchers: 20 forks: 71 owner: oasis-tcs logo: https://avatars.githubusercontent.com/u/20116735?v=4 license: NOASSERTION - repoEtag: '"5154461851825e40b36eab099bfa9d3480ca2e2cda9a09da8a549884f14a878d"' - repoLastModified: Sun, 03 Sep 2023 21:43:58 GMT + repoEtag: '"e8ff70f93c590d80e92f782fb78504e1158f74c77cb00a0c13cac14f4292d1ce"' + repoLastModified: Tue, 12 Sep 2023 14:18:27 GMT foundInMaster: true v3_1: true id: 9039f84e8e8b63849cbf15578564033e @@ -343,17 +343,17 @@ Convert API descriptions between popular formats such as OpenAPI(fka Swagger), RAML, API Blueprint, WADL, etc. created: '2015-05-05T18:30:05Z' - updated: '2023-09-09T04:26:24Z' + updated: '2023-09-12T23:20:01Z' language: JavaScript archived: false - stars: 1024 + stars: 1026 watchers: 21 forks: 165 owner: LucyBot-Inc logo: https://avatars.githubusercontent.com/u/26313641?v=4 license: MIT - repoEtag: '"e87e43a21122e2b31698db2c25c405ff037c5d307a5cda327359421491a5cf85"' - repoLastModified: Sat, 09 Sep 2023 04:26:24 GMT + repoEtag: '"9895887b893c0a6ed11c2a3e1afe9166d6e19aa858be65c7ee9af0308fe745c8"' + repoLastModified: Tue, 12 Sep 2023 23:20:01 GMT foundInMaster: true id: dccbe92257187d6d136bb4b5f304d6fe - source: https://openapi.tools/ @@ -549,17 +549,17 @@ repositoryId: 351849045 description: OpenAPI Web component to generate a UI from the spec. created: '2021-03-26T16:42:43Z' - updated: '2023-09-11T15:19:36Z' + updated: '2023-09-12T06:51:23Z' language: JavaScript archived: false - stars: 223 + stars: 224 watchers: 5 forks: 34 owner: Rhosys logo: https://avatars.githubusercontent.com/u/35577654?v=4 license: Apache-2.0 - repoEtag: '"fe252fb2b8ed3ea2e4a216fa8138c33321afc94d47c21184f6e0269db66249ea"' - repoLastModified: Mon, 11 Sep 2023 15:19:36 GMT + repoEtag: '"a096074c3a6977fb24ba3f914e8355bdfdbad3d0307116dc56c6af622bfc9c40"' + repoLastModified: Tue, 12 Sep 2023 06:51:23 GMT foundInMaster: true id: 0dd93303283cfb1f31037874c72079a7 - source: https://openapi.tools/ @@ -583,17 +583,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2023-09-11T17:46:53Z' + updated: '2023-09-12T23:20:26Z' language: TypeScript archived: false - stars: 20919 + stars: 20926 watchers: 284 - forks: 2220 + forks: 2219 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"66bce38bd5618fee7c31185874f9c69c6accac489cd4111ea26ab1eb59a16417"' - repoLastModified: Mon, 11 Sep 2023 17:46:53 GMT + repoEtag: '"7b3bdf7f9c6997fe4571254c82c775fc10c7c6ced2bbd9a22ab2a5ae40da48a3"' + repoLastModified: Tue, 12 Sep 2023 23:20:26 GMT foundInMaster: true - source: https://openapi.tools/ name: oas3-api-snippet-enricher @@ -649,17 +649,17 @@ OpenAPI / Swagger, AsyncAPI & Semoasa definitions to (re)Slate compatible markdown created: '2016-10-05T23:09:13Z' - updated: '2023-09-11T12:24:11Z' + updated: '2023-09-12T21:51:24Z' language: JavaScript archived: false - stars: 1357 + stars: 1359 watchers: 17 - forks: 311 + forks: 312 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: MIT - repoEtag: '"b2b47a9a667645b22edcb60f7649306d4eaefc0ae77723bf8ff2925a99a63f59"' - repoLastModified: Mon, 11 Sep 2023 12:24:11 GMT + repoEtag: '"3fd4e9954bc53d65ed57d7562d1875ae49b1ec9a92cf707c7890a1da979844d0"' + repoLastModified: Tue, 12 Sep 2023 21:51:24 GMT foundInMaster: true homepage: https://github.com/Mermade/widdershins id: ab4fb414065011325683c7b582a9e582 @@ -829,17 +829,17 @@ repositoryId: 173009358 description: Generate Go client and server boilerplate from OpenAPI 3 specifications created: '2019-02-27T23:59:59Z' - updated: '2023-09-12T02:35:34Z' + updated: '2023-09-13T01:39:20Z' language: Go archived: false - stars: 4063 + stars: 4075 watchers: 32 forks: 698 owner: deepmap logo: https://avatars.githubusercontent.com/u/47459865?v=4 license: Apache-2.0 - repoEtag: '"e4bc167763eae8a7f3470ba0a4533555619f217b9ec32197acece769dd09de03"' - repoLastModified: Tue, 12 Sep 2023 02:35:34 GMT + repoEtag: '"cec20e7f8c74c3017718bc9fb0c0cb013af90f47a76f355910e1e292ca990b7c"' + repoLastModified: Wed, 13 Sep 2023 01:39:20 GMT foundInMaster: true id: bc996e9362e78defa2eca82e5765d2f3 - source: https://openapi.tools/ @@ -906,17 +906,17 @@ generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3) created: '2018-05-12T09:57:56Z' - updated: '2023-09-12T01:44:15Z' + updated: '2023-09-13T01:39:22Z' language: Java archived: false - stars: 17537 + stars: 17542 watchers: 213 - forks: 5599 + forks: 5602 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"d47cfcff013bcf471291d443dbe68b9a917a105c6e3663b3d6b63fae792a60ff"' - repoLastModified: Tue, 12 Sep 2023 01:44:15 GMT + repoEtag: '"b3c41a5d183dcb7bff691ce278b3599c537ecd7b9f57de2c1346d892fef470b0"' + repoLastModified: Wed, 13 Sep 2023 01:39:22 GMT foundInMaster: true id: 0418f8afcd0196c648d1a46c0c5c20d1 v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083 @@ -943,7 +943,7 @@ owner: openapi-json-schema-tools logo: https://avatars.githubusercontent.com/u/114849992?v=4 license: Apache-2.0 - repoEtag: '"64b9b88b5dc138ea7547421ecf19040dc6623b569522a9d1126f91537f818616"' + repoEtag: '"679307fe03486166dd12af4e09f2a27f5a2a876ca7834f82f380e8ceae283b01"' repoLastModified: Mon, 11 Sep 2023 19:43:47 GMT category: - Code Generators @@ -985,17 +985,17 @@ repositoryId: 323665366 description: OpenAPI based HTTP Client code generator created: '2020-12-22T15:35:49Z' - updated: '2023-09-12T02:14:45Z' + updated: '2023-09-13T01:23:19Z' language: C# archived: false - stars: 817 + stars: 818 watchers: 31 forks: 93 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"f94f7e1b85de11aa7cb52247148396fd8b6d41b5e76bbd1e367a96fa66d64e30"' - repoLastModified: Tue, 12 Sep 2023 02:14:45 GMT + repoEtag: '"199a811ea930225178085436789d19f02ef6fafbdd34bb0e3c2863568b813518"' + repoLastModified: Wed, 13 Sep 2023 01:23:19 GMT foundInMaster: true - source: https://openapi.tools/ name: FabriKt @@ -1156,7 +1156,7 @@ owner: 42Crunch logo: https://avatars.githubusercontent.com/u/25365245?v=4 license: AGPL-3.0 - repoEtag: '"14dc405100de388d04ce8b72eaa1cae9f6c5ec9988f650e145ce1242a01e06d0"' + repoEtag: '"cb92046cb4341571019cd8d42e75185e63659cde5a8c2d717e8c0a852aaad628"' repoLastModified: Sun, 10 Sep 2023 16:22:06 GMT foundInMaster: true id: 782ecbb10f1ff8ac9685e0ed24e52e58 @@ -1247,17 +1247,17 @@ repositoryId: 19390712 description: Swagger Editor created: '2014-05-02T22:47:10Z' - updated: '2023-09-11T09:28:54Z' + updated: '2023-09-12T20:43:08Z' language: JavaScript archived: false - stars: 8323 + stars: 8325 watchers: 259 forks: 2193 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"f728b867270967f377f2bebb652ee564b5d318f072637685d12640ff9ce13cf0"' - repoLastModified: Mon, 11 Sep 2023 09:28:54 GMT + repoEtag: '"57b0e6a46945981d4ceeea619e9b575b3fab5cb5faeaca382684e43724697823"' + repoLastModified: Tue, 12 Sep 2023 20:43:08 GMT foundInMaster: true id: 951cf61d12c812ef9b201ad76b5d278d v3_1: true @@ -1468,7 +1468,7 @@ owner: Apicurio logo: https://avatars.githubusercontent.com/u/28107283?v=4 license: Apache-2.0 - repoEtag: '"0c9f736f11609516eff5f144b2595ba3d4281c1beb540d0f681d445d9e7ec337"' + repoEtag: '"1bc15db102d9b3e90740199f0ab2f0c634aacb6e8e9d566fe2aed000fe490b92"' repoLastModified: Fri, 08 Sep 2023 17:15:21 GMT foundInMaster: true homepage: https://github.com/Apicurio/apicurio-studio @@ -1687,17 +1687,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-09-10T18:25:44Z' + updated: '2023-09-12T21:24:57Z' language: TypeScript archived: false - stars: 3708 + stars: 3711 watchers: 52 forks: 311 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"8ec1564e90089de45bc02fae7dce90d7ef9d2984ab4592f5257ff58cfaaafeb6"' - repoLastModified: Sun, 10 Sep 2023 18:25:44 GMT + repoEtag: '"832ceaf70beb19ee820e42d63fef33912f056809a9a3da5f480c6e36463f100f"' + repoLastModified: Tue, 12 Sep 2023 21:24:57 GMT foundInMaster: true id: 15aad8cd322242e03733b07f2a37890a - source: https://openapi.tools/ @@ -1765,17 +1765,17 @@ Kubernetes native tool for mocking and testing API and micro-services. Microcks is a Cloud Native Computing Sandbox project 🚀 created: '2015-02-23T15:46:09Z' - updated: '2023-09-10T16:24:43Z' + updated: '2023-09-12T05:33:12Z' language: Java archived: false - stars: 931 + stars: 932 watchers: 27 forks: 168 owner: microcks logo: https://avatars.githubusercontent.com/u/11051048?v=4 license: Apache-2.0 - repoEtag: '"40afb52a61cda150bd7be8fc92e8dd3a9fd2927a5f6b0b214bf9510c60c47281"' - repoLastModified: Sun, 10 Sep 2023 16:24:43 GMT + repoEtag: '"4001f5fd92244a1a0b9321cb8c2a5efca6f40548f398ea300199fae5cb050f11"' + repoLastModified: Tue, 12 Sep 2023 05:33:12 GMT foundInMaster: true id: 1c0e918b5a733b0f1726199e3ea101d6 - source: @@ -1972,17 +1972,17 @@ repositoryId: 61366800 description: Build OpenAPI-compliant REST APIs using TypeScript and Node created: '2016-06-17T10:42:50Z' - updated: '2023-09-11T21:13:23Z' + updated: '2023-09-12T17:47:54Z' language: TypeScript archived: false - stars: 2865 + stars: 2866 watchers: 23 forks: 446 owner: lukeautry logo: https://avatars.githubusercontent.com/u/8770560?v=4 license: MIT - repoEtag: '"54b1f513622dd7511f51538fff3b10ae6ad12e88f3dce1b3402efb1ebad6caec"' - repoLastModified: Mon, 11 Sep 2023 21:13:23 GMT + repoEtag: '"a55ed8b5aeb75a04e98f8642bdad24ce263779fd2d0c602de4ac56b5d957caf0"' + repoLastModified: Tue, 12 Sep 2023 17:47:54 GMT foundInMaster: true id: 2529db76d3d9f042b0c624f65b13fc41 - source: https://openapi.tools/ @@ -2019,7 +2019,7 @@ owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"471971678ddaff2ab89895365fbb62c0abaaa6e405b1ed0146825519ba7ef18c"' + repoEtag: '"ab64a517ac87b50dfeecf764ed756766de7c502292cf613025cdf337c1336603"' repoLastModified: Sat, 09 Sep 2023 14:18:33 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 @@ -2187,17 +2187,17 @@ Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time. created: '2015-03-06T21:46:05Z' - updated: '2023-09-11T12:56:05Z' + updated: '2023-09-12T08:46:04Z' language: TypeScript archived: false - stars: 8020 + stars: 8021 watchers: 220 forks: 952 owner: api-platform logo: https://avatars.githubusercontent.com/u/13420081?v=4 license: MIT - repoEtag: '"6ccdb48133e5d511b56f03b7a3fab11445f2661544b61541f66ff74c6ab56906"' - repoLastModified: Mon, 11 Sep 2023 12:56:05 GMT + repoEtag: '"5b7000ab0bf7e1115a85abff8cf8125131549614965c08b8f4f5e4d803001528"' + repoLastModified: Tue, 12 Sep 2023 08:46:04 GMT foundInMaster: true id: d14f5904300aabf1ceef4660a6b3d57e - source: https://openapi.tools/ @@ -2355,17 +2355,17 @@ repositoryId: 105440153 description: 'OpenAPI (Swagger) module for Nest framework (node.js) :earth_americas:' created: '2017-10-01T12:20:24Z' - updated: '2023-09-10T10:49:17Z' + updated: '2023-09-12T11:47:11Z' language: TypeScript archived: false - stars: 1469 + stars: 1470 watchers: 31 - forks: 391 + forks: 392 owner: nestjs logo: https://avatars.githubusercontent.com/u/28507035?v=4 license: MIT - repoEtag: '"ada2a3e671241765f9ffa1285db7290883fce97c1556c4e9dd59f53fed525062"' - repoLastModified: Sun, 10 Sep 2023 10:49:17 GMT + repoEtag: '"ffc27120f61f167e003c4480df1bc1ae66c86f1445b39a083ce8443b40691395"' + repoLastModified: Tue, 12 Sep 2023 11:47:11 GMT foundInMaster: true id: 7071babd9853fc901c5decfa9b465b67 - source: @@ -2428,17 +2428,17 @@ repositoryId: 12590052 description: Language-agnostic HTTP API Testing Tool created: '2013-09-04T12:21:35Z' - updated: '2023-09-11T19:39:14Z' + updated: '2023-09-12T12:19:09Z' language: JavaScript archived: false - stars: 4048 - watchers: 74 + stars: 4049 + watchers: 75 forks: 304 owner: apiaryio logo: https://avatars.githubusercontent.com/u/765943?v=4 license: MIT - repoEtag: '"ab8d39fc3c312a179cbb91e19411038a1299f4241d779df6aa0bf5ea1671e0a7"' - repoLastModified: Mon, 11 Sep 2023 19:39:14 GMT + repoEtag: '"1865b8240ff0f723436b4886dd8a955d16aa511829d05acc6c2f45b4cb6a5e48"' + repoLastModified: Tue, 12 Sep 2023 12:19:09 GMT foundInMaster: true id: bb2e4b0879fce0d8706dcebfd2c10a4c - source: @@ -2501,17 +2501,17 @@ 🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification created: '2019-03-19T19:08:05Z' - updated: '2023-09-07T13:48:32Z' + updated: '2023-09-12T17:03:06Z' language: TypeScript archived: false - stars: 798 + stars: 799 watchers: 18 forks: 188 owner: cdimascio logo: https://avatars.githubusercontent.com/u/4706618?v=4 license: MIT - repoEtag: '"d3511e15bdddb35561d2e1082533fa5961c9419a6181fb55b7415b992aabdac4"' - repoLastModified: Thu, 07 Sep 2023 13:48:32 GMT + repoEtag: '"2593795ffe08c5b2cb1785363c45c37cd63a0c7563e2cf1ecf8b91773e7a6c2f"' + repoLastModified: Tue, 12 Sep 2023 17:03:06 GMT foundInMaster: true id: 3a27bc1a71642e0c1c020c41dc66e206 - source: https://openapi.tools/ @@ -2654,17 +2654,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-09-11T05:40:37Z' + updated: '2023-09-12T15:08:11Z' language: TypeScript archived: false - stars: 2036 + stars: 2038 watchers: 30 forks: 198 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"fb700b7bf31da62e49950413c48117821dd2b4d021aa2c5353d21c8dea15f1b0"' - repoLastModified: Mon, 11 Sep 2023 05:40:37 GMT + repoEtag: '"b6c3795a2b623e90169cdc015f54637fa6fb0c7bbb9659d79e55d3e38ad064a5"' + repoLastModified: Tue, 12 Sep 2023 15:08:11 GMT foundInMaster: true id: fab3cc58898cd8953a30e43cc622e0fe - source: https://openapi.tools/ @@ -2718,17 +2718,17 @@ repositoryId: 153173690 description: Configurable and extensible validator/linter for OpenAPI documents created: '2018-10-15T19:59:22Z' - updated: '2023-09-07T07:19:48Z' + updated: '2023-09-12T16:45:46Z' language: JavaScript archived: false - stars: 405 + stars: 406 watchers: 21 forks: 89 owner: IBM logo: https://avatars.githubusercontent.com/u/1459110?v=4 license: Apache-2.0 - repoEtag: '"aad44d1d34110835271c9d75744a3e77aeba6c4e63f41afbb3e1ed3718749ed5"' - repoLastModified: Thu, 07 Sep 2023 07:19:48 GMT + repoEtag: '"ea1cfcc38721ac0455208bdf91911f1bc0a419152ee80a8bbdecc10ad8483802"' + repoLastModified: Tue, 12 Sep 2023 16:45:46 GMT foundInMaster: true id: 0bf7dd29a9d07232135bb00764928296 - source: @@ -2754,11 +2754,11 @@ archived: false stars: 641 watchers: 27 - forks: 98 + forks: 97 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"157c2a5eb1c75da3fe8db385efa32cca2b98ce1953ab1948cba96680ce625f22"' + repoEtag: '"c91d9e0543a5c0edf226d6f934f36cfff734c89453438c046a83c71342329c1a"' repoLastModified: Thu, 07 Sep 2023 01:02:33 GMT category: - Description Validators @@ -2873,17 +2873,17 @@ repositoryId: 14134534 description: A collection of Rack middleware to support JSON Schema. created: '2013-11-05T07:05:45Z' - updated: '2023-09-07T15:14:44Z' + updated: '2023-09-13T01:39:29Z' language: Ruby archived: false - stars: 817 + stars: 818 watchers: 16 forks: 122 owner: interagent logo: https://avatars.githubusercontent.com/u/7388387?v=4 license: MIT - repoEtag: '"3d09a1fdb8fa8f71ff6def473d97bcc3f9c0ba4a7a2d8ba91f3ccb6b74fc9291"' - repoLastModified: Thu, 07 Sep 2023 15:14:44 GMT + repoEtag: '"09cf898c942253a74de44636b1d76e3d3c76d3404d5289272e99bf1f70b75cec"' + repoLastModified: Wed, 13 Sep 2023 01:39:29 GMT foundInMaster: true id: 64f8f7a816e2d8825abd1a213d9e3fb5 - source: https://openapi.tools/ @@ -3010,17 +3010,17 @@ repositoryId: 66855599 description: Generates code snippets for given Swagger / Open API documents created: '2016-08-29T15:24:00Z' - updated: '2023-08-30T11:45:49Z' + updated: '2023-09-12T21:35:52Z' language: JavaScript archived: false - stars: 101 + stars: 102 watchers: 6 forks: 61 owner: ErikWittern logo: https://avatars.githubusercontent.com/u/1745998?v=4 license: MIT - repoEtag: '"9995f69abb10af745c15dca6c8063847ad8c66af1baef8a1b05b229b77a2f991"' - repoLastModified: Wed, 30 Aug 2023 11:45:49 GMT + repoEtag: '"4b03326b1daf9d6726667ce5c8152fe3d9c727b82d41317e2392cfe679db04f6"' + repoLastModified: Tue, 12 Sep 2023 21:35:52 GMT foundInMaster: true id: fbf76c5bdaef3297eb35739ca2ca0954 - source: https://openapi.tools/ @@ -3100,17 +3100,17 @@ repositoryId: 84108450 description: TS Model & utils for creating and exposing OpenAPI 3.x contracts. created: '2017-03-06T18:47:56Z' - updated: '2023-09-11T17:16:09Z' + updated: '2023-09-12T07:54:00Z' language: TypeScript archived: false - stars: 388 + stars: 389 watchers: 7 forks: 59 owner: metadevpro logo: https://avatars.githubusercontent.com/u/24300914?v=4 license: MIT - repoEtag: '"6d61b12559b3629dfcafecf1b6e84d192d4404e360193622f58add9df9115518"' - repoLastModified: Mon, 11 Sep 2023 17:16:09 GMT + repoEtag: '"a78f325c6673b93a7cfb04d54fc929a08dd94342d70eb31fac4b2398211fdb03"' + repoLastModified: Tue, 12 Sep 2023 07:54:00 GMT foundInMaster: true id: 390339b2a28f2e5660519a2422c29196 - source: @@ -3137,17 +3137,17 @@ OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) created: '2017-06-11T20:12:06Z' - updated: '2023-09-11T21:43:26Z' + updated: '2023-09-12T08:15:03Z' language: Go archived: false - stars: 2084 + stars: 2086 watchers: 20 - forks: 361 + forks: 362 owner: getkin logo: https://avatars.githubusercontent.com/u/40365715?v=4 license: MIT - repoEtag: '"f845cb171149b4ef1da0c97c187e6f8eff20581459bb359c8a07fad6ba15d1b8"' - repoLastModified: Mon, 11 Sep 2023 21:43:26 GMT + repoEtag: '"345064cdda84c882c2f60f5a56cb2f312a28b4d1f26cef3ac5bce253ba342277"' + repoLastModified: Tue, 12 Sep 2023 08:15:03 GMT foundInMaster: true v2: true id: f6838ce08e87fa4c3dc813c97193ece3 @@ -3209,17 +3209,17 @@ Read and write OpenAPI yaml/json files and make the content accessible in PHP objects. created: '2018-10-23T10:46:11Z' - updated: '2023-09-10T09:36:44Z' + updated: '2023-09-12T12:52:31Z' language: PHP archived: false - stars: 444 + stars: 445 watchers: 24 forks: 91 owner: cebe logo: https://avatars.githubusercontent.com/u/189796?v=4 license: MIT - repoEtag: '"27ff06ded9d516f52077b79b36c62ca78f782534e1941f3420603b01c5561a63"' - repoLastModified: Sun, 10 Sep 2023 09:36:44 GMT + repoEtag: '"9c59b28365980bdd821a208814cda3bb29a8c7ab7fb047a4572eac313a86a828"' + repoLastModified: Tue, 12 Sep 2023 12:52:31 GMT foundInMaster: true v3_1_link: https://github.com/cebe/php-openapi/pull/128 id: 3a26d5049f03c42cb9771c179db0f35f @@ -3248,11 +3248,11 @@ archived: false stars: 210 watchers: 6 - forks: 18 + forks: 19 owner: goldspecdigital logo: https://avatars.githubusercontent.com/u/31162012?v=4 license: MIT - repoEtag: '"831117910501d19973f6395c976267750dbcae86c63194f5f720938a4f563625"' + repoEtag: '"1ddf4f028e7c8869ee18e6ef1d133e304b6fbe9ebdd22f6c3ac3120938aa8afa"' repoLastModified: Wed, 26 Jul 2023 17:16:10 GMT foundInMaster: true id: b572581c8e045165d5121ee9c5bc361e @@ -3340,11 +3340,11 @@ archived: false stars: 1198 watchers: 65 - forks: 202 + forks: 203 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"9d9f154d62295471f6c8f2fa178cbcd04d515a3ecd078acb48605c50caa418c4"' + repoEtag: '"627649fce424c0800af5e3c24c59fc5f1badc6d579502492d61b62905db99eee"' repoLastModified: Tue, 12 Sep 2023 00:13:06 GMT foundInMaster: true id: 1066748bb5b1f114a70856a29fee4aa7 @@ -3542,17 +3542,17 @@ repositoryId: 26726495 description: Swagger 2.0 implementation for go created: '2014-11-16T20:13:15Z' - updated: '2023-09-12T03:02:53Z' + updated: '2023-09-13T03:05:36Z' language: Go archived: false - stars: 8870 + stars: 8873 watchers: 119 forks: 1243 owner: go-swagger logo: https://avatars.githubusercontent.com/u/10362650?v=4 license: Apache-2.0 - repoEtag: '"22ad4e5740cfa71cce59a739153c32ac08ec8ea4b7b53afb353e8e32b94b6591"' - repoLastModified: Tue, 12 Sep 2023 03:02:53 GMT + repoEtag: '"2af4299346928121311b918580e6c323edfe7d114b1336f8fc5026d7fd6591cb"' + repoLastModified: Wed, 13 Sep 2023 03:05:36 GMT foundInMaster: true id: ef136df9ffb40bb33ccbd76665d8f5b4 - source: https://openapi.tools/ @@ -3645,17 +3645,17 @@ repositoryId: 41822320 description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ' created: '2015-09-02T19:11:57Z' - updated: '2023-09-11T03:48:18Z' + updated: '2023-09-13T00:54:54Z' language: C# archived: false - stars: 6051 + stars: 6055 watchers: 165 forks: 1149 owner: RicoSuter logo: https://avatars.githubusercontent.com/u/2603405?v=4 license: MIT - repoEtag: '"b7ceb3fc739178319c63fd9ce23658252b3ed075bc4a09b092781eb8b3398076"' - repoLastModified: Mon, 11 Sep 2023 03:48:18 GMT + repoEtag: '"51d1bed5ec09a0e2e9e42c7743839571e3979330ce83f1a7358bf0c8a5db4f2f"' + repoLastModified: Wed, 13 Sep 2023 00:54:54 GMT foundInMaster: true id: 93636e95435e95198d7d15c9d507f0d3 - source: https://openapi.tools/ @@ -3718,17 +3718,17 @@ documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. created: '2011-07-06T14:26:48Z' - updated: '2023-09-11T09:05:29Z' + updated: '2023-09-12T12:03:31Z' language: Mustache archived: false - stars: 15960 + stars: 15961 watchers: 421 - forks: 6011 + forks: 6012 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"abe942433d78b2624fae772dd67791e72e34bfaf98ac2f053846bb6083b91cb7"' - repoLastModified: Mon, 11 Sep 2023 09:05:29 GMT + repoEtag: '"c816d5b33bbc9f16c456a7ba8ab55fa52787fb84787ba691da0ed8426e21bec4"' + repoLastModified: Tue, 12 Sep 2023 12:03:31 GMT foundInMaster: true id: eda1e66e1b7805496e42f57851791a32 - source: https://openapi.tools/ @@ -3824,7 +3824,7 @@ owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT - repoEtag: '"5ccd75ad248fd6950b81d2d2a21974a7c19190e3818087608218f148c5c032d2"' + repoEtag: '"820d812c6f497504c5353d96f437eb85e7f41351c870e05731de70ebd818bb43"' repoLastModified: Sun, 10 Sep 2023 13:39:52 GMT foundInMaster: true id: 362a4b56c90877840a8032f920389bf6 @@ -3847,9 +3847,9 @@ id: fe3a10e114b8e1a8d9f03e70c963b89e repositoryMetadata: base64Readme: >- - PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iNDAwIiBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yZWFkbWVpby9hcGkvbWFpbi9kb2NzL2ltYWdlcy9sb2dvLnN2ZyIgLz4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgTWFnaWNhbCBTREsgZ2VuZXJhdGlvbiBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbiDwn6qECjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYXBpP3N0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iTlBNIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25vZGUvdi9hcGk/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJOb2RlIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL2FwaT9zdHlsZT1mb3ItdGhlLWJhZGdlIiBhbHQ9Ik1JVCBMaWNlbnNlIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JlYWRtZWlvL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3JlYWRtZWlvL2FwaS9jaS55bWw/YnJhbmNoPW1haW4mc3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJCdWlsZCBzdGF0dXMiPjwvYT4KPC9wPgoKLSBbSW5zdGFsbGF0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL3VzYWdlKQogIC0gW0F1dGhlbnRpY2F0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvYXV0aGVudGljYXRpb24pCiAgLSBbUGFyYW1ldGVycyBhbmQgUGF5bG9hZHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9wYXJhbWV0ZXJzLWFuZC1wYXlsb2FkcykKICAtIFtNYWtpbmcgcmVxdWVzdHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9tYWtpbmctcmVxdWVzdHMpCiAgLSBbU2VydmVyIGNvbmZpZ3VyYXRpb25zXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3Mvc2VydmVyLWNvbmZpZ3VyYXRpb25zKQotIFtIb3cgZG9lcyBpdCB3b3JrP10oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL2hvdy1pdC13b3JrcykKLSBbRkFRXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvZmFxKQoKYGFwaWAgaXMgYSBsaWJyYXJ5IHRoYXQgZmFjaWxpdGF0ZXMgY3JlYXRpbmcgYW4gU0RLIGZyb20gYW4gT3BlbkFQSSBkZWZpbml0aW9uLiBZb3UgY2FuIHVzZSBpdHMgY29kZWdlbiBvZmZlcmluZyB0byBjcmVhdGUgYW4gb3BpbmlvbmF0ZWQgU0RLIGZvciBUeXBlU2NyaXB0IG9yIEpTICgrIFR5cGVTY3JpcHQgdHlwZXMpLgoKYGBgc2gKJCBucHggYXBpIGluc3RhbGwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLmpzb24KYGBgCgpgYGBqcwpjb25zdCBwZXRzdG9yZSA9IHJlcXVpcmUoJ0BhcGkvcGV0c3RvcmUnKTsKCnBldHN0b3JlLmxpc3RQZXRzKCkudGhlbigoeyBkYXRhIH0pID0+IHsKICBjb25zb2xlLmxvZyhgTXkgcGV0cyBuYW1lIGlzICR7ZGF0YVswXS5uYW1lfSFgKTsKfSk7CmBgYAoKT3IgeW91IGNhbiB1c2UgaXQgZHluYW1pY2FsbHkgKHRob3VnaCB5b3Ugd29uJ3QgaGF2ZSBmYW5jeSBUeXBlU2NyaXB0IHR5cGVzIHRvIGhlbHAgeW91IG91dCEpOgoKYGBganMKY29uc3QgcGV0c3RvcmUgPSByZXF1aXJlKCdhcGknKSgKICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLmpzb24nLAopOwoKcGV0c3RvcmUubGlzdFBldHMoKS50aGVuKCh7IGRhdGEgfSkgPT4gewogIGNvbnNvbGUubG9nKGBNeSBwZXRzIG5hbWUgaXMgJHtkYXRhWzBdLm5hbWV9IWApOwp9KTsKYGBgCgpUaGUgRVNNIHN5bnRheCBpcyBzdXBwb3J0ZWQgYXMgd2VsbDoKCmBgYGpzCmltcG9ydCBhcGkgZnJvbSAnYXBpJzsKY29uc3QgcGV0c3RvcmUgPSBhcGkoJ0BwZXRzdG9yZS92MS4wI3RsMWU0a2wxY2w4ZWc4Jyk7CgpwZXRzdG9yZS5saXN0UGV0cygpLnRoZW4oKHsgZGF0YSB9KSA9PiB7CiAgY29uc29sZS5sb2coYE15IHBldHMgbmFtZSBpcyAke2RhdGFbMF0ubmFtZX0hYCk7Cn0pOwpgYGAK - readmeEtag: '"8c3ac7eabba18ddf785d00ee4763a89ecb3089ee859724aee2a41dbb97ad98e1"' - readmeLastModified: Fri, 04 Aug 2023 21:58:56 GMT + PHAgYWxpZ249ImNlbnRlciI+CiAgPGltZyB3aWR0aD0iNDAwIiBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yZWFkbWVpby9hcGkvbWFpbi9kb2NzL2ltYWdlcy9sb2dvLnN2ZyIgLz4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiAgTWFnaWNhbCBTREsgZ2VuZXJhdGlvbiBmcm9tIGFuIE9wZW5BUEkgZGVmaW5pdGlvbiDwn6qECjwvcD4KCjxwIGFsaWduPSJjZW50ZXIiPgogIDxhIGhyZWY9Imh0dHBzOi8vbnBtLmltL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvYXBpP3N0eWxlPWZvci10aGUtYmFkZ2UiIGFsdD0iTlBNIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25vZGUvdi9hcGk/c3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJOb2RlIFZlcnNpb24iPjwvYT4KICA8YSBocmVmPSJodHRwczovL25wbS5pbS9hcGkiPjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS9sL2FwaT9zdHlsZT1mb3ItdGhlLWJhZGdlIiBhbHQ9Ik1JVCBMaWNlbnNlIj48L2E+CiAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JlYWRtZWlvL2FwaSI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL3JlYWRtZWlvL2FwaS9jaS55bWw/YnJhbmNoPW1haW4mc3R5bGU9Zm9yLXRoZS1iYWRnZSIgYWx0PSJCdWlsZCBzdGF0dXMiPjwvYT4KPC9wPgoKLSBbSW5zdGFsbGF0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvaW5zdGFsbGF0aW9uKQotIFtVc2FnZV0oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL3VzYWdlKQogIC0gW0F1dGhlbnRpY2F0aW9uXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvYXV0aGVudGljYXRpb24pCiAgLSBbUGFyYW1ldGVycyBhbmQgUGF5bG9hZHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9wYXJhbWV0ZXJzLWFuZC1wYXlsb2FkcykKICAtIFtNYWtpbmcgcmVxdWVzdHNdKGh0dHBzOi8vYXBpLnJlYWRtZS5kZXYvZG9jcy9tYWtpbmctcmVxdWVzdHMpCiAgLSBbU2VydmVyIGNvbmZpZ3VyYXRpb25zXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3Mvc2VydmVyLWNvbmZpZ3VyYXRpb25zKQotIFtIb3cgZG9lcyBpdCB3b3JrP10oaHR0cHM6Ly9hcGkucmVhZG1lLmRldi9kb2NzL2hvdy1pdC13b3JrcykKLSBbRkFRXShodHRwczovL2FwaS5yZWFkbWUuZGV2L2RvY3MvZmFxKQoKYGFwaWAgaXMgYSBsaWJyYXJ5IHRoYXQgZmFjaWxpdGF0ZXMgY3JlYXRpbmcgYW4gU0RLIGZyb20gYW4gT3BlbkFQSSBkZWZpbml0aW9uLiBZb3UgY2FuIHVzZSBpdHMgY29kZWdlbiBvZmZlcmluZyB0byBjcmVhdGUgYW4gb3BpbmlvbmF0ZWQgU0RLIGZvciBUeXBlU2NyaXB0IG9yIEpTICgrIFR5cGVTY3JpcHQgdHlwZXMpLgoKYGBgc2gKJCBucHggYXBpIGluc3RhbGwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09BSS9PcGVuQVBJLVNwZWNpZmljYXRpb24vbWFpbi9leGFtcGxlcy92My4wL3BldHN0b3JlLmpzb24KYGBgCgpgYGBqcwpjb25zdCBwZXRzdG9yZSA9IHJlcXVpcmUoJ0BhcGkvcGV0c3RvcmUnKTsKCnBldHN0b3JlLmxpc3RQZXRzKCkudGhlbigoeyBkYXRhIH0pID0+IHsKICBjb25zb2xlLmxvZyhgTXkgcGV0cyBuYW1lIGlzICR7ZGF0YVswXS5uYW1lfSFgKTsKfSk7CmBgYAoKVGhlIEVTTSBzeW50YXggaXMgc3VwcG9ydGVkIGFzIHdlbGw6CgpgYGBqcwppbXBvcnQgYXBpIGZyb20gJ2FwaSc7CmNvbnN0IHBldHN0b3JlID0gYXBpKCdAcGV0c3RvcmUvdjEuMCN0bDFlNGtsMWNsOGVnOCcpOwoKcGV0c3RvcmUubGlzdFBldHMoKS50aGVuKCh7IGRhdGEgfSkgPT4gewogIGNvbnNvbGUubG9nKGBNeSBwZXRzIG5hbWUgaXMgJHtkYXRhWzBdLm5hbWV9IWApOwp9KTsKYGBgCg== + readmeEtag: '"0625f72ec3d510aadb6b113a1c9301c65c1f339eb6efee7c6e69e50ff356b30b"' + readmeLastModified: Tue, 12 Sep 2023 19:51:13 GMT repositoryId: 81140437 description: 🚀 Automatic SDK generation from an OpenAPI definition created: '2017-02-06T22:31:07Z' @@ -3862,7 +3862,7 @@ owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT - repoEtag: '"777b463c206baf799d4dda817b22703778fb19e1803c447a4cab335c9a0fc038"' + repoEtag: '"e7a3b44f90365a9f3fb1a0ec9c2dfd1696c5425abba5aa94175d7f3b2fbb92a9"' repoLastModified: Thu, 07 Sep 2023 19:23:51 GMT foundInMaster: true - source: https://openapi.tools/ @@ -3892,17 +3892,17 @@ Tooling for converting, validating, and parsing OpenAPI, Swagger, and Postman API definitions. created: '2018-05-25T00:48:24Z' - updated: '2023-09-11T14:10:55Z' + updated: '2023-09-12T16:46:45Z' language: TypeScript archived: false - stars: 30 + stars: 31 watchers: 17 - forks: 5 + forks: 6 owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT - repoEtag: '"1f5737e2f143db8a4b511f3016b76a437f21380ca155970c59d05ad8db2f6f35"' - repoLastModified: Mon, 11 Sep 2023 14:10:55 GMT + repoEtag: '"2088700878185b68229d29d35b8e493683994c4f3f02e6a8c49b580283c9bf76"' + repoLastModified: Tue, 12 Sep 2023 16:46:45 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -3958,17 +3958,17 @@ repositoryId: 182520856 description: Generate OpenAPI specification for Laravel Applications created: '2019-04-21T10:45:45Z' - updated: '2023-09-07T08:31:31Z' + updated: '2023-09-12T16:03:29Z' language: PHP archived: false - stars: 349 + stars: 350 watchers: 12 forks: 75 owner: vyuldashev logo: https://avatars.githubusercontent.com/u/1809081?v=4 license: MIT - repoEtag: '"4bd661efc3587762c1e07df9506d5c44c14367fc036054a83ac6198e9f3a7a7f"' - repoLastModified: Thu, 07 Sep 2023 08:31:31 GMT + repoEtag: '"10cc5196bd723f7de349abb37572b56f5df21412dd63029335e894bbd3993ab7"' + repoLastModified: Tue, 12 Sep 2023 16:03:29 GMT foundInMaster: true id: ee05a2f19f3fd6fc886e5e4711ef400f - source: https://openapi.tools/ @@ -4173,7 +4173,7 @@ owner: EMResearch logo: https://avatars.githubusercontent.com/u/29148026?v=4 license: LGPL-3.0 - repoEtag: '"477a9b4c44c2dfc7250c3d822f743802b10d9f21ac962186cb4b73ce31304283"' + repoEtag: '"3835152abbd885599e357c678c9f5629f0c09dbe44b4683d3b1b0d8603c59989"' repoLastModified: Fri, 08 Sep 2023 07:22:41 GMT foundInMaster: true id: eba0fd1e4a49eb507e337ad2266e9a16 @@ -4233,11 +4233,11 @@ archived: false stars: 460 watchers: 7 - forks: 17 + forks: 18 owner: matusf logo: https://avatars.githubusercontent.com/u/18228995?v=4 license: AGPL-3.0 - repoEtag: '"de141e6efe53687b5796523a1de2672114dc6b476c03ff634578d733c7f71132"' + repoEtag: '"551eb8263a9ff438d3a579debeb15ab8130af10e19e1f3e02cc9d476c26ffe4d"' repoLastModified: Thu, 07 Sep 2023 09:04:07 GMT id: 9e0191ba47403298459b30242dbfe9ad - source: https://openapi.tools/ @@ -4278,7 +4278,7 @@ owner: Endava logo: https://avatars.githubusercontent.com/u/19396140?v=4 license: Apache-2.0 - repoEtag: '"78e909d2310812278d0251075c3fe1f25dc7c9546a05a83bc3622ca482614b4b"' + repoEtag: '"7e3d6b3859eb1424589444c87ff2a24165ac1de9ddf18c812023718a61c61498"' repoLastModified: Tue, 12 Sep 2023 02:56:07 GMT foundInMaster: true - source: https://openapi.tools/ @@ -4630,7 +4630,7 @@ owner: codekie logo: https://avatars.githubusercontent.com/u/1512840?v=4 license: MIT - repoEtag: '"7883048718826618133fc41ff370b52fcd22543274042c8cb34fccb0b1e21795"' + repoEtag: '"6cffe05d7178e19567532c6e6853ad1697700d943d705e5c7b07175bdd09de50"' repoLastModified: Fri, 01 Sep 2023 05:51:40 GMT foundInMaster: true id: 301e3f380f248daf345a88c8971d2a71 @@ -4656,7 +4656,7 @@ Plugin for converting OpenAPI 3.0 specs to the Postman Collection (v2) format created: '2018-12-12T10:13:46Z' - updated: '2023-09-08T21:15:11Z' + updated: '2023-09-12T22:57:26Z' language: JavaScript archived: false stars: 778 @@ -4665,8 +4665,8 @@ owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 - repoEtag: '"cedad2b5c4308e0831e85b0bfab0e4ba4d1414d490d9f3f9c8396796e69692e8"' - repoLastModified: Fri, 08 Sep 2023 21:15:11 GMT + repoEtag: '"d4e45eb39931893023ac964788c9b7ae44b17a5ebe11514679eaf409457688f5"' + repoLastModified: Tue, 12 Sep 2023 22:57:26 GMT foundInMaster: true id: 31b717a2084e3d92f6cda2c33484c789 v3_link: true @@ -4730,7 +4730,7 @@ repositoryId: 633129333 description: Combination of multiple linters to install as a GitHub Action created: '2023-04-26T21:02:26Z' - updated: '2023-09-10T11:18:37Z' + updated: '2023-09-12T17:38:44Z' language: Shell archived: false stars: 68 @@ -4739,8 +4739,8 @@ owner: github logo: https://avatars.githubusercontent.com/u/9919?v=4 license: MIT - repoEtag: '"5ea62465845972e8fdf2e53d96f1cf567aded9c220a5aaa691e136f8af30bd80"' - repoLastModified: Sun, 10 Sep 2023 11:18:37 GMT + repoEtag: '"5bafb7a18d8a4a73c474ffc82548b6f43681c6c74df3168aa93aa10540cfec6e"' + repoLastModified: Tue, 12 Sep 2023 17:38:44 GMT foundInMaster: true id: ec6a7a1e4a69a9beeb95bdebb88cb36d - source: https://openapi.tools/ @@ -4765,17 +4765,17 @@ repositoryId: 4238977 description: Automated JSON API documentation for API's built with Spring created: '2012-05-06T06:38:57Z' - updated: '2023-09-10T18:13:44Z' + updated: '2023-09-13T02:06:05Z' language: Java archived: false - stars: 5849 + stars: 5850 watchers: 270 forks: 1541 owner: springfox logo: https://avatars.githubusercontent.com/u/11529357?v=4 license: Apache-2.0 - repoEtag: '"9aaa4f3a3a1b3a1818deffe06f2e3b635d05ab1e43d859fe9e147968f2ae4aa1"' - repoLastModified: Sun, 10 Sep 2023 18:13:44 GMT + repoEtag: '"ed966692fc721f5a7607f9730c8b2c58fdd39e49b3a8b0257db3f727eda24342"' + repoLastModified: Wed, 13 Sep 2023 02:06:05 GMT foundInMaster: true id: 2addde4c497bf582f20025ccac2cda86 - source: @@ -4833,7 +4833,7 @@ repositoryId: 36817565 description: The ZAP core project created: '2015-06-03T16:55:01Z' - updated: '2023-09-11T16:35:16Z' + updated: '2023-09-13T00:06:16Z' language: Java archived: false stars: 11220 @@ -4842,8 +4842,8 @@ owner: zaproxy logo: https://avatars.githubusercontent.com/u/6716868?v=4 license: Apache-2.0 - repoEtag: '"1816595ea85ca85aa74c1fe1d2d45e2e03e6ae432c7f9a82276740c8a3ba6751"' - repoLastModified: Mon, 11 Sep 2023 16:35:16 GMT + repoEtag: '"e5db7d84be8709a4010df2af13a58ea283cdf27ea1c4c190648bbb30afe18fdb"' + repoLastModified: Wed, 13 Sep 2023 00:06:16 GMT foundInMaster: true id: 9eedc1be44837a65f912bcf562844f39 - source: https://openapi.tools/ @@ -5096,17 +5096,17 @@ repositoryId: 1431547 description: Web APIs for Django. 🎸 created: '2011-03-02T17:13:56Z' - updated: '2023-09-11T20:51:42Z' + updated: '2023-09-13T01:14:11Z' language: Python archived: false - stars: 26284 + stars: 26296 watchers: 617 - forks: 6697 + forks: 6701 owner: encode logo: https://avatars.githubusercontent.com/u/19159390?v=4 license: NOASSERTION - repoEtag: '"943aef70126023c2cd6e80bcc4ce32593776ad513c1422fc9e56b3b85a3ffaa4"' - repoLastModified: Mon, 11 Sep 2023 20:51:42 GMT + repoEtag: '"fe30b03b2e8ee91742f2a46b51796af5f3deee23a45ba568e23b61c280fcd011"' + repoLastModified: Wed, 13 Sep 2023 01:14:11 GMT foundInMaster: true id: fb8994c078a380cc3510b024f6ed1202 category: Server Implementations @@ -5287,17 +5287,17 @@ repositoryId: 240776275 description: Generate modern Python clients from OpenAPI created: '2020-02-15T19:33:46Z' - updated: '2023-09-11T17:17:19Z' + updated: '2023-09-12T20:22:24Z' language: Python archived: false - stars: 815 + stars: 817 watchers: 13 forks: 158 owner: openapi-generators logo: https://avatars.githubusercontent.com/u/84925606?v=4 license: MIT - repoEtag: '"deff87ce759a5249ad8c90aea7ebd52687004c5a328be688fbdab1276a8ace10"' - repoLastModified: Mon, 11 Sep 2023 17:17:19 GMT + repoEtag: '"fedbc088972d0926c7f64814406641f9e678b3ad6c8db3fe2aa2492053ed0b36"' + repoLastModified: Tue, 12 Sep 2023 20:22:24 GMT foundInMaster: true id: 784ec4adac4e47e4211ea74ef36dd5a5 - source: @@ -5326,17 +5326,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-09-11T14:33:05Z' + updated: '2023-09-12T17:38:51Z' language: TypeScript archived: false - stars: 1175 + stars: 1178 watchers: 19 forks: 144 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"9c9457c8296a79942bcb32129baa622bd12e880fc6e2c50fa37a9b7852f1d7ee"' - repoLastModified: Mon, 11 Sep 2023 14:33:05 GMT + repoEtag: '"8d06159de8e63fd5e0ffc3e1759bf42fe3fd4c06ebc485dcded41a5e326f7291"' + repoLastModified: Tue, 12 Sep 2023 17:38:51 GMT foundInMaster: true id: 2f94cc1fc980953b17a9979d4ff2e7ec - source: @@ -5462,17 +5462,17 @@ undefined user behaviour by auditing your API specifications, validating them and running API security tests. created: '2021-11-17T07:02:22Z' - updated: '2023-09-11T17:24:35Z' + updated: '2023-09-12T06:40:20Z' language: Rust archived: false - stars: 948 + stars: 949 watchers: 13 forks: 75 owner: blst-security logo: https://avatars.githubusercontent.com/u/54233087?v=4 license: Apache-2.0 - repoEtag: '"a032fafeb30037ce3a30cd7650c2e8aa5125a3cea270f3a2e3f838235bf19f32"' - repoLastModified: Mon, 11 Sep 2023 17:24:35 GMT + repoEtag: '"4991bc4ba6520307cf2583764af10ddb6a3ac9a013f8c189fd35b3f060cb657b"' + repoLastModified: Tue, 12 Sep 2023 06:40:20 GMT foundInMaster: true name: Cherrybomb category: Description Validators @@ -5661,17 +5661,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-09-11T15:51:18Z' + updated: '2023-09-12T13:36:55Z' language: TypeScript archived: false - stars: 1622 + stars: 1626 watchers: 6 - forks: 184 + forks: 185 owner: anymaniax logo: https://avatars.githubusercontent.com/u/10516382?v=4 license: MIT - repoEtag: '"3c9de1d6e78072d90d46532b34d47258440097cfda09a79bf2b0922ea1609480"' - repoLastModified: Mon, 11 Sep 2023 15:51:18 GMT + repoEtag: '"2b522d684494c34b5fb86417ae6cccc14678c3c66cde8383971ef780a717a3a5"' + repoLastModified: Tue, 12 Sep 2023 13:36:55 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -5769,7 +5769,7 @@ owner: pmcelhaney logo: https://avatars.githubusercontent.com/u/51504?v=4 license: MIT - repoEtag: '"4029a7383e4799638267755c40b65bcd599a16d0c41dabee0d5d4999f0d0a26f"' + repoEtag: '"024c6cffed0554efa89535f8912d889b1ffe11b309534f921b8ccb14c1a1e37e"' repoLastModified: Wed, 06 Sep 2023 19:45:26 GMT category: - Parsers @@ -5823,17 +5823,17 @@ you can think. vacuum is compatible with Spectral rulesets and generates compatible reports. created: '2021-10-10T18:24:19Z' - updated: '2023-09-11T10:25:35Z' + updated: '2023-09-12T17:10:45Z' language: Go archived: false - stars: 273 + stars: 276 watchers: 4 forks: 21 owner: daveshanley logo: https://avatars.githubusercontent.com/u/187345?v=4 license: MIT - repoEtag: '"eeeefc5b16846a8acd88bac5b87721d737b073cbb0cf78808fd4422635a2802a"' - repoLastModified: Mon, 11 Sep 2023 10:25:35 GMT + repoEtag: '"667285665c4193177e7230ae640f4eee9bcf7b499e0962d0743d9ef26bd16c6d"' + repoLastModified: Tue, 12 Sep 2023 17:10:45 GMT foundInMaster: true category: - Description Validators @@ -5891,17 +5891,17 @@ repositoryId: 161691324 description: Generate TypeScript types from OpenAPI 3 specs created: '2018-12-13T20:28:01Z' - updated: '2023-09-12T03:07:44Z' + updated: '2023-09-12T18:55:38Z' language: TypeScript archived: false - stars: 3506 + stars: 3507 watchers: 25 forks: 305 owner: drwpow logo: https://avatars.githubusercontent.com/u/1369770?v=4 license: MIT - repoEtag: '"377dfb558e099efaaf99e97db7689edf17da69b95fc88448279e078c498b47cf"' - repoLastModified: Tue, 12 Sep 2023 03:07:44 GMT + repoEtag: '"28005bf484d5b72a3c4ca42688535c834da6030152fc336d45491fffb59ffb6b"' + repoLastModified: Tue, 12 Sep 2023 18:55:38 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -5929,7 +5929,7 @@ owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"1af2b03ca277ac5e4970802e6a16002fb37108477e6bf8234787f2ead5b5b230"' + repoEtag: '"a60cab157fe01551182f35222808ca1ac2820f253176dd06ba8fa7efaf4a956d"' repoLastModified: Mon, 11 Sep 2023 13:43:04 GMT category: Parsers foundInMaster: true @@ -6155,7 +6155,7 @@ owner: davidmbillie logo: https://avatars.githubusercontent.com/u/13511813?v=4 license: MIT-0 - repoEtag: '"23dc50955ef46c453c5b9f11233ed2326d288ec0fbba337951f8db4dbedff051"' + repoEtag: '"9d85af2dc8ef1113279e6cce74fba3ff6e77b01fe29506c6dc2722188d287506"' repoLastModified: Wed, 03 May 2023 20:26:16 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6199,7 +6199,7 @@ owner: znsio logo: https://avatars.githubusercontent.com/u/75619722?v=4 license: MIT - repoEtag: '"567c81d43eefc4ecc2c85bc60f9dbfbdcf555c7fe86a61a03472eff1673cc19e"' + repoEtag: '"5ee4a52dc3ece797048a5070de187becb2d9f37d6b711dabe780e52a899194a3"' repoLastModified: Wed, 06 Sep 2023 05:16:15 GMT foundInMaster: true - source: @@ -6219,17 +6219,17 @@ changed between two OpenAPI specs, or a single spec over time. Supports OpenAPI 3.1, 3.0 and Swagger created: '2022-11-28T16:53:14Z' - updated: '2023-09-11T02:08:34Z' + updated: '2023-09-12T18:29:42Z' language: Go archived: false - stars: 40 + stars: 42 watchers: 1 forks: 6 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"4a5dc125a36e31a18b577828da5333514d130090e8e1f3afc67a2787f4852e61"' - repoLastModified: Mon, 11 Sep 2023 02:08:34 GMT + repoEtag: '"85d9259578cbe5c9b8083194d3576fe94eb5d3f29c65631107093047dff6fb33"' + repoLastModified: Tue, 12 Sep 2023 18:29:42 GMT category: - Data Validators - Testing @@ -6306,9 +6306,9 @@ id: d7c678d60582165091a7cdc5e91cf045 repositoryMetadata: base64Readme: >- - PGRpdiBhbGlnbj0iY2VudGVyIj4KCiAgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9rdWJiLXByb2plY3Qva3ViYi9tYWluL2Fzc2V0cy9iYW5uZXIucG5nIiBhbHQ9ImxvZ28iICBoZWlnaHQ9ImF1dG8iIC8+CgogIDwhLS0gQmFkZ2VzIC0tPgogIDxwPgogIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmUiIHRhcmdldD0iX2JsYW5rIj4KICAgIDxpbWcgYWx0PSJucG0gdmVyc2lvbiIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BrdWJiL2NvcmU/c3R5bGU9Zm9yLXRoZS1iYWRnZSIvPgogIDwvYT4KCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBhbHQ9Im5wbSBkb3dubG9hZHMiIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQGt1YmIvY29yZT9zdHlsZT1mb3ItdGhlLWJhZGdlIi8+CiAgPC9hPgogIDwvcD4KICAgIAogIDxwPiAKICA8YSBocmVmPSJodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Aa3ViYi9jb3JlIiB0YXJnZXQ9Il9ibGFuayI+CiAgICA8aW1nIGFsdD0iTWluaWZpZWQgc2l6ZSIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2J1bmRsZXBob2JpYS9taW4vQGt1YmIvY29yZT9zdHlsZT1mb3ItdGhlLWJhZGdlIi8+CiAgPC9hPgogICAgCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBhbHQ9IkNvdmVyYWdlIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9rdWJiLXByb2plY3Qva3ViYj9zdHlsZT1mb3ItdGhlLWJhZGdlIi8+CiAgPC9hPgogICAgCiAgPGEgaHJlZj0iaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQGt1YmIvY29yZSIgdGFyZ2V0PSJfYmxhbmsiPgogICAgPGltZyBhbHQ9IkJ1aWxkIHN0YXR1cyIgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9hY3Rpb25zL3dvcmtmbG93L3N0YXR1cy9rdWJiLXByb2plY3Qva3ViYi9jaS55YW1sP3N0eWxlPWZvci10aGUtYmFkZ2UiLz4KICA8L2E+CiAgCiAgCiAgPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgogIDwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpFTkQgLS0+CiAgPC9wPgogICAKICA8aDQ+CiAgICA8YSBocmVmPSJodHRwczovL2NvZGVzYW5kYm94LmlvL3MvZ2l0aHViL2t1YmItcHJvamVjdC9rdWJiL3RyZWUvbWFpbi9leGFtcGxlcy90eXBlc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayI+VmlldyBEZW1vPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9rdWJiLmRldi8iIHRhcmdldD0iX2JsYW5rIj5Eb2N1bWVudGF0aW9uPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItcHJvamVjdC9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXBvcnQgQnVnPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItcHJvamVjdC9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXF1ZXN0IEZlYXR1cmU8L2E+CiAgPC9oND4KPC9kaXY+Cgo8YnIgLz4KCiMjIEZlYXR1cmVzCgo8ZGl2IGFsaWduPSJjZW50ZXIiPiAKICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmItcHJvamVjdC9rdWJiL21haW4vYXNzZXRzL2ZlYXR1cmVzLnBuZyIgYWx0PSJmZWF0dXJlcyIgIGhlaWdodD0iYXV0byIgLz4KPC9kaXY+CgojIyBDb250cmlidXRvcnMKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0Ym9keT4KICAgIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGlqbnZhbmh1bGxlLmJlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU5MDQ2ODE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlN0aWpuIFZhbiBIdWxsZSIvPjxiciAvPjxzdWI+PGI+U3Rpam4gVmFuIEh1bGxlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1wcm9qZWN0L2t1YmIvY29tbWl0cz9hdXRob3I9c3Rpam52YW5odWxsZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2Zvc3N0b2Rvbi5vcmcvQHhwaGVudG9tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUwOTY4Njc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IldvdXRlciBSb296ZWxlZXIiLz48YnIgLz48c3ViPjxiPldvdXRlciBSb296ZWxlZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWJiLXByb2plY3Qva3ViYi9jb21taXRzP2F1dGhvcj14UGhlbnRvbSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+Cgo= - readmeEtag: '"6c3484925b6a7fe0fd01452e405190ef8f31ad4b50951b863e627eb1d9ffe881"' - readmeLastModified: Mon, 10 Jul 2023 20:30:33 GMT + PGRpdiBhbGlnbj0iY2VudGVyIj4KCiAgPGltZyBzcmM9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9rdWJiLXByb2plY3Qva3ViYi9tYWluL2Fzc2V0cy9iYW5uZXIucG5nIiBhbHQ9ImxvZ28iICBoZWlnaHQ9ImF1dG8iIC8+ICAKCiAgWyFbbnBtIHZlcnNpb25dW25wbS12ZXJzaW9uLXNyY11dW25wbS12ZXJzaW9uLWhyZWZdCiAgWyFbbnBtIGRvd25sb2Fkc11bbnBtLWRvd25sb2Fkcy1zcmNdXVtucG0tZG93bmxvYWRzLWhyZWZdCiAgWyFbQ292ZXJhZ2VdW2NvdmVyYWdlLXNyY11dW2NvdmVyYWdlLWhyZWZdCiAgWyFbTGljZW5zZV1bbGljZW5zZS1zcmNdXVtsaWNlbnNlLWhyZWZdCiAgCiAgPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgogIDwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpFTkQgLS0+CiAgPC9wPgogICAKICA8aDQ+CiAgICA8YSBocmVmPSJodHRwczovL2NvZGVzYW5kYm94LmlvL3MvZ2l0aHViL2t1YmItcHJvamVjdC9rdWJiL3RyZWUvbWFpbi9leGFtcGxlcy90eXBlc2NyaXB0IiB0YXJnZXQ9Il9ibGFuayI+VmlldyBEZW1vPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9rdWJiLmRldi8iIHRhcmdldD0iX2JsYW5rIj5Eb2N1bWVudGF0aW9uPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItcHJvamVjdC9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXBvcnQgQnVnPC9hPgogICAgPHNwYW4+IMK3IDwvc3Bhbj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2t1YmItcHJvamVjdC9rdWJiL2lzc3Vlcy8iIHRhcmdldD0iX2JsYW5rIj5SZXF1ZXN0IEZlYXR1cmU8L2E+CiAgPC9oND4KPC9kaXY+Cgo8YnIgLz4KCiMjIEZlYXR1cmVzCgo8ZGl2IGFsaWduPSJjZW50ZXIiPiAKICA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmItcHJvamVjdC9rdWJiL21haW4vYXNzZXRzL2ZlYXR1cmVzLnBuZyIgYWx0PSJmZWF0dXJlcyIgIGhlaWdodD0iYXV0byIgLz4KPC9kaXY+CgojIyBDb250cmlidXRvcnMKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOlNUQVJUIC0gRG8gbm90IHJlbW92ZSBvciBtb2RpZnkgdGhpcyBzZWN0aW9uIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1zdGFydCAtLT4KPCEtLSBtYXJrZG93bmxpbnQtZGlzYWJsZSAtLT4KPHRhYmxlPgogIDx0Ym9keT4KICAgIDx0cj4KICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGlqbnZhbmh1bGxlLmJlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU5MDQ2ODE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlN0aWpuIFZhbiBIdWxsZSIvPjxiciAvPjxzdWI+PGI+U3Rpam4gVmFuIEh1bGxlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va3ViYi1wcm9qZWN0L2t1YmIvY29tbWl0cz9hdXRob3I9c3Rpam52YW5odWxsZSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2Zvc3N0b2Rvbi5vcmcvQHhwaGVudG9tIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUwOTY4Njc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IldvdXRlciBSb296ZWxlZXIiLz48YnIgLz48c3ViPjxiPldvdXRlciBSb296ZWxlZXI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9rdWJiLXByb2plY3Qva3ViYi9jb21taXRzP2F1dGhvcj14UGhlbnRvbSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+Cgo8IS0tIEJhZGdlcyAtLT4KCltucG0tdmVyc2lvbi1zcmNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0BrdWJiL2NvcmU/ZmxhdCZjb2xvckE9MTgxODFCJmNvbG9yQj1mNTg1MTcKW25wbS12ZXJzaW9uLWhyZWZdOiBodHRwczovL25wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmUKW25wbS1kb3dubG9hZHMtc3JjXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vZG0vQGt1YmIvY29yZT9mbGF0JmNvbG9yQT0xODE4MUImY29sb3JCPWY1ODUxNwpbbnBtLWRvd25sb2Fkcy1ocmVmXTogaHR0cHM6Ly9ucG1qcy5jb20vcGFja2FnZS9Aa3ViYi9jb3JlCltsaWNlbnNlLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2Uva3ViYi1wcm9qZWN0L2t1YmIuc3ZnP2ZsYXQmY29sb3JBPTE4MTgxQiZjb2xvckI9ZjU4NTE3CltsaWNlbnNlLWhyZWZdOiBodHRwczovL2dpdGh1Yi5jb20va3ViYi1wcm9qZWN0L2t1YmIvYmxvYi9tYWluL0xJQ0VOU0UKW2J1aWxkLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlvbnMvd29ya2Zsb3cvc3RhdHVzL2t1YmItcHJvamVjdC9rdWJiL2NpLnlhbWw/c3R5bGU9ZmxhdCZjb2xvckE9MTgxODFCJmNvbG9yQj1mNTg1MTcKW2J1aWxkLWhyZWZdOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9Aa3ViYi9jb3JlClttaW5pZmllZC1zcmNdOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2J1bmRsZXBob2JpYS9taW4vQGt1YmIvY29yZT9zdHlsZT1mbGF0JmNvbG9yQT0xODE4MUImY29sb3JCPWY1ODUxNwpbbWluaWZpZWQtaHJlZl06IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmUKW2NvdmVyYWdlLXNyY106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9rdWJiLXByb2plY3Qva3ViYj9zdHlsZT1mbGF0JmNvbG9yQT0xODE4MUImY29sb3JCPWY1ODUxNwpbY292ZXJhZ2UtaHJlZl06IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL0BrdWJiL2NvcmU= + readmeEtag: '"5b3d47e7c8b667661e7081ac327b2cc914163fe2c1b3432982b292f1b7aaf280"' + readmeLastModified: Tue, 12 Sep 2023 13:22:29 GMT repositoryId: 586543156 description: OpenAPI to TypeScript, React-Query, Zod, Zodios, Faker.js, MSW and Axios. created: '2023-01-08T14:15:23Z' @@ -6321,7 +6321,7 @@ owner: kubb-project logo: https://avatars.githubusercontent.com/u/122118236?v=4 license: MIT - repoEtag: '"20982d6c468ac1d0eb155fa166a0a1f2f330971c2f2aea88a3bb3f47a4552f14"' + repoEtag: '"3c2ab621e0317a20980a46da660456cff8f29290696e0cf8b14fad4edde30380"' repoLastModified: Sun, 10 Sep 2023 10:05:49 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6373,7 +6373,7 @@ owner: gcatanese logo: https://avatars.githubusercontent.com/u/1771700?v=4 license: Apache-2.0 - repoEtag: '"309eab437953692bf9203d63280a329f189d0f425467b22a57104965dea4b749"' + repoEtag: '"ebc733ef5e03bbdffdc5ff926f2e5d1caa2d698ce6e2e99577fa8dc062be6aee"' repoLastModified: Mon, 07 Aug 2023 09:34:05 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6472,7 +6472,7 @@ owner: udamir logo: https://avatars.githubusercontent.com/u/29271460?v=4 license: MIT - repoEtag: '"21048032a429ce0722f5233ae7bfe71baf04ef5d5411bd867c561733520e9396"' + repoEtag: '"da9596d197c8414c5db6ed30768e2588af904adfde7302300cc429b2e98f0fd9"' repoLastModified: Tue, 18 Jul 2023 09:31:40 GMT foundInMaster: true - source: https://openapi.tools/ @@ -6563,17 +6563,17 @@ repositoryId: 476820102 description: SDKs and Documentation for your API created: '2022-04-01T17:56:54Z' - updated: '2023-09-11T16:41:46Z' + updated: '2023-09-13T00:38:36Z' language: TypeScript archived: false - stars: 1816 + stars: 1818 watchers: 13 forks: 64 owner: fern-api logo: https://avatars.githubusercontent.com/u/102944815?v=4 license: MIT - repoEtag: '"58fc3622f182422c314d50cb9ae2c852d9555712e72203c4dc7441f4d6625fd8"' - repoLastModified: Mon, 11 Sep 2023 16:41:46 GMT + repoEtag: '"f8043bd416748441be5d055f080328fe2d4b8af9656e8c4877391a9050e50ccb"' + repoLastModified: Wed, 13 Sep 2023 00:38:36 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -6709,17 +6709,17 @@ FastAPI framework, high performance, easy to learn, fast to code, ready for production created: '2018-12-08T08:21:47Z' - updated: '2023-09-12T03:14:38Z' + updated: '2023-09-13T03:18:35Z' language: Python archived: false - stars: 62397 - watchers: 638 - forks: 5263 + stars: 62432 + watchers: 639 + forks: 5268 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"d24237af1b8f9722e6502865e9deee7a112ae696d5deec6d07943eb1fc6b9df6"' - repoLastModified: Tue, 12 Sep 2023 03:14:38 GMT + repoEtag: '"545069c899fc93ed5ef646d62f14cea7cb5b7f38126b03de177a551bb3b8bb8b"' + repoLastModified: Wed, 13 Sep 2023 03:18:35 GMT foundInMaster: true id: 8e11fa45d6f090aa2ed68317cf5a7215 - source: @@ -6737,17 +6737,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-09-12T00:56:23Z' + updated: '2023-09-13T02:31:32Z' language: JavaScript archived: false - stars: 24399 + stars: 24410 watchers: 655 forks: 8757 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"e3138d610f3f27c3bb47432d4e5ff520e0b1f909a0b41d94eb5011c4446d5622"' - repoLastModified: Tue, 12 Sep 2023 00:56:23 GMT + repoEtag: '"b4cd49cec65e35fabac7d9f1e469d6881553bdf02d96ba368dc3d87a585c8719"' + repoLastModified: Wed, 13 Sep 2023 02:31:32 GMT foundInMaster: true name: swagger-ui homepage: https://github.com/swagger-api/swagger-UI @@ -6780,17 +6780,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2023-09-11T17:46:53Z' + updated: '2023-09-12T23:20:26Z' language: TypeScript archived: false - stars: 20919 + stars: 20926 watchers: 284 - forks: 2220 + forks: 2219 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"66bce38bd5618fee7c31185874f9c69c6accac489cd4111ea26ab1eb59a16417"' - repoLastModified: Mon, 11 Sep 2023 17:46:53 GMT + repoEtag: '"7b3bdf7f9c6997fe4571254c82c775fc10c7c6ced2bbd9a22ab2a5ae40da48a3"' + repoLastModified: Tue, 12 Sep 2023 23:20:26 GMT foundInMaster: true v3_1: true id: 2725d6db6977c1dd12ceaf9701787e07 @@ -6809,17 +6809,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-09-11T16:11:43Z' + updated: '2023-09-12T14:22:20Z' language: Python archived: false - stars: 12914 + stars: 12918 watchers: 195 - forks: 2372 + forks: 2370 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"6b978e4601627456d1eb4a78782a51625134fa83ad510701eacc06d5d85fa134"' - repoLastModified: Mon, 11 Sep 2023 16:11:43 GMT + repoEtag: '"1a68e6131093242c085e0eb19665cc3eb160ef06cac9cf84383d5b3f98702d54"' + repoLastModified: Tue, 12 Sep 2023 14:22:20 GMT foundInMaster: true category: Server Implementations id: fd87348d3e68e8838b35571b2a88b798 @@ -6863,17 +6863,17 @@ 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-09-11T19:51:09Z' + updated: '2023-09-12T22:46:27Z' language: TypeScript archived: false - stars: 5350 + stars: 5353 watchers: 57 forks: 298 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"f0b1ab584547237a65fab2dc390f409d13268fd93ea5642de8b52b4b28ae7738"' - repoLastModified: Mon, 11 Sep 2023 19:51:09 GMT + repoEtag: '"d860f35e69828c8ed8e4e4a365b1348ae6fba615a6b078b3b1e403cc5d4cfc7a"' + repoLastModified: Tue, 12 Sep 2023 22:46:27 GMT foundInMaster: true category: Testing id: 8728dfca2c1908dbecdcddd31597fad4 @@ -6889,7 +6889,7 @@ repositoryId: 88701696 description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution created: '2017-04-19T04:44:28Z' - updated: '2023-09-10T03:57:54Z' + updated: '2023-09-12T10:01:18Z' language: HTML archived: false stars: 3601 @@ -6898,8 +6898,8 @@ owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 - repoEtag: '"753f1f01a53b3f4ffe6882e0779fefec3f70c61e9ed880cb7a19d252eee70262"' - repoLastModified: Sun, 10 Sep 2023 03:57:54 GMT + repoEtag: '"c4f3eaf9e1435a8dbf8e51e6d309debb8b95ce22a2484e7e60b3dc93fac53057"' + repoLastModified: Tue, 12 Sep 2023 10:01:18 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -6915,17 +6915,17 @@ 🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format created: '2015-02-22T19:58:12Z' - updated: '2023-09-11T00:06:42Z' + updated: '2023-09-13T00:44:30Z' language: null archived: false - stars: 3350 + stars: 3351 watchers: 110 forks: 555 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: CC0-1.0 - repoEtag: '"9158188a9583ce528751e61779ab21f01e56436652ae45fe4d11d7d49567ca9f"' - repoLastModified: Mon, 11 Sep 2023 00:06:42 GMT + repoEtag: '"f3b3ae084b0d835e763072c00c5286cf15fe0e9b03582054fa90402dfc4dd45e"' + repoLastModified: Wed, 13 Sep 2023 00:44:30 GMT foundInMaster: true category: SDK id: 667f2aef78d9d19418fbd6c0a7835abb @@ -6949,17 +6949,17 @@ repositoryId: 196475719 description: Library for OpenAPI 3 with spring-boot created: '2019-07-11T23:08:20Z' - updated: '2023-09-12T01:30:54Z' + updated: '2023-09-12T19:36:22Z' language: Java archived: false - stars: 2779 + stars: 2781 watchers: 42 forks: 417 owner: springdoc logo: https://avatars.githubusercontent.com/u/52804136?v=4 license: Apache-2.0 - repoEtag: '"19259d955960c8af9622efadec91141b183624b9d643e16a4567d36d1ac61f52"' - repoLastModified: Tue, 12 Sep 2023 01:30:54 GMT + repoEtag: '"30c0466baaf4fed8c0c89bd40a3d4fd9b0d22fe96cc13b0fa457bcd59fa10e90"' + repoLastModified: Tue, 12 Sep 2023 19:36:22 GMT foundInMaster: true id: 901410cec129651fcf7374c79f824f27 - source: @@ -6969,9 +6969,9 @@ v3: true repositoryMetadata: base64Readme: >- - IyBTd2FnZ2VyIENsaWVudCA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1ctbG9nby1jbHIucG5nIiBoZWlnaHQ9IjUwIiBhbGlnbj0icmlnaHQiPgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9hY3Rpb25zL3dvcmtmbG93cy9ub2RlanMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWpzL2FjdGlvbnMpCgoqKlN3YWdnZXIgQ2xpZW50KiogaXMgYSBKYXZhU2NyaXB0IG1vZHVsZSB0aGF0IGFsbG93cyB5b3UgdG8gZmV0Y2gsIHJlc29sdmUsIGFuZCBpbnRlcmFjdCB3aXRoIFN3YWdnZXIvT3BlbkFQSSBkb2N1bWVudHMuCgojIyBOZXchCgoqKlRoaXMgaXMgdGhlIG5ldyB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIDMueC4qKiBUaGUgbmV3IHZlcnNpb24gc3VwcG9ydHMgU3dhZ2dlciAyLjAgYXMgd2VsbCBhcyBPcGVuQVBJIDMuCgpXYW50IHRvIGxlYXJuIG1vcmU/IENoZWNrIG91dCBvdXIgW0ZBUV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpLgoKRm9yIGZlYXR1cmVzIGtub3duIHRvIGJlIG1pc3NpbmcgZnJvbSAzLnggcGxlYXNlIHNlZSB0aGUgW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkuCgoKRm9yIHRoZSBvbGRlciB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIHJlZmVyIHRvIHRoZSBbKjIueCBicmFuY2gqXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy90cmVlLzIueCkuCgo+ICpUaGUgbnBtIHBhY2thZ2UgaXMgY2FsbGVkIGBzd2FnZ2VyLWNsaWVudGAgYW5kIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBpcyBgc3dhZ2dlci1qc2AuCldlJ2xsIGJlIGNvbnNvbGlkYXRpbmcgdGhhdCBzb29uLiBKdXN0IGdpdmluZyB5b3UgdGhlIGhlYWRzLXVwLiBZb3UgbWF5IHNlZSByZWZlcmVuY2VzIHRvIGJvdGggbmFtZXMuKgoKIyMgQ29tcGF0aWJpbGl0eQpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgbXVsdGlwbGUgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gCkNvbXBhdGliaWxpdHkgYmV0d2VlbiBTd2FnZ2VyIENsaWVudCBhbmQgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBpcyBhcyBmb2xsb3dzOgoKU3dhZ2dlciBDbGllbnQgVmVyc2lvbiB8IFJlbGVhc2UgRGF0ZSB8IE9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5ICAgICAgICAgICAgIHwgTm90ZXMKLS0tLS0tLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAtLS0tLQozLjE5LnggfCAyMDIzLTAxLTIzICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zLCAzLjEuMCB8IFt0YWcgdjMuMTkuMC1hbHBoYS4zXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9yZWxlYXNlcy90YWcvdjMuMTkuMC1hbHBoYS4zKQozLjEwLnggfCAyMDIwLTAxLTE3ICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zICAgICAgICB8IFt0YWcgdjMuMTAuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92My4xMC4wKQoyLjEuMzIgfCAyMDE3LTAxLTEyICAgfCAxLjAsIDEuMSwgMS4yICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt0YWcgdjIuMS4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92Mi4xLjMyKS4gVGhpcyBbcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvcmVsZWFzZXMvdGFnL3YyLjEuMzIpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIEdpdEh1Yi4KCiMjIERvY3VtZW50YXRpb24KCiMjIyMgVXNhZ2UKCi0gW0luc3RhbGxhdGlvbl0oZG9jcy91c2FnZS9pbnN0YWxsYXRpb24ubWQpCi0gW1RhZ3MgSW50ZXJmYWNlXShkb2NzL3VzYWdlL3RhZ3MtaW50ZXJmYWNlLm1kKQotIFtIVFRQIGNsaWVudCBmb3IgT0FTIG9wZXJhdGlvbnNdKGRvY3MvdXNhZ2UvaHR0cC1jbGllbnQtZm9yLW9hcy1vcGVyYXRpb25zLm1kKQotIFtPcGVuQVBJIERlZmluaXRpb24gUmVzb2x2ZXJdKGRvY3MvdXNhZ2Uvb3BlbmFwaS1kZWZpbml0aW9uLXJlc29sdmVyLm1kKQotIFtIVFRQIENsaWVudF0oZG9jcy91c2FnZS9odHRwLWNsaWVudC5tZCkKLSBbU3dhZ2dlciBDbGllbnQgQVBJXShkb2NzL3VzYWdlL2FwaS5tZCkKCiMjIyMgRGV2ZWxvcG1lbnQKCi0gW0NvbnRyaWJ1dGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpLy5naXRodWIvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKQotIFtTZXR0aW5nIHVwXShkb2NzL2RldmVsb3BtZW50L3NldHRpbmctdXAubWQpCi0gW1NjcmlwdHNdKGRvY3MvZGV2ZWxvcG1lbnQvc2NyaXB0cy5tZCkKCiMjIyMgTWlncmF0aW9ucyAKCi0gW01pZ3JhdGlvbiBndWlkZV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpCi0gW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkKCiMjIyBSdW50aW1lIAoKLSBOb2RlLmpzIGA+PWAxMi4yMC4wCi0gYHN3YWdnZXItY2xpZW50YCB3b3JrcyBpbiB0aGUgbGF0ZXN0IHZlcnNpb25zIG9mIENocm9tZSwgU2FmYXJpLCBGaXJlZm94LCBhbmQgRWRnZS4KCiMjIFNlY3VyaXR5IGNvbnRhY3QKClBsZWFzZSBkaXNjbG9zZSBhbnkgc2VjdXJpdHktcmVsYXRlZCBpc3N1ZXMgb3IgdnVsbmVyYWJpbGl0aWVzIGJ5IGVtYWlsaW5nIFtzZWN1cml0eUBzd2FnZ2VyLmlvXShtYWlsdG86c2VjdXJpdHlAc3dhZ2dlci5pbyksIGluc3RlYWQgb2YgdXNpbmcgdGhlIHB1YmxpYyBpc3N1ZSB0cmFja2VyLgo= - readmeEtag: '"03ef6707fee0e7587d3a393f50cc4d6d1352972c18c1eeae856fafa578d65082"' - readmeLastModified: Tue, 07 Mar 2023 00:34:22 GMT + IyBTd2FnZ2VyIENsaWVudCA8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N3YWdnZXItYXBpL3N3YWdnZXIuaW8vd29yZHByZXNzL2ltYWdlcy9hc3NldHMvU1ctbG9nby1jbHIucG5nIiBoZWlnaHQ9IjUwIiBhbGlnbj0icmlnaHQiPgoKWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9hY3Rpb25zL3dvcmtmbG93cy9ub2RlanMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWpzL2FjdGlvbnMpCgoqKlN3YWdnZXIgQ2xpZW50KiogaXMgYSBKYXZhU2NyaXB0IG1vZHVsZSB0aGF0IGFsbG93cyB5b3UgdG8gZmV0Y2gsIHJlc29sdmUsIGFuZCBpbnRlcmFjdCB3aXRoIFN3YWdnZXIvT3BlbkFQSSBkb2N1bWVudHMuCgojIyBOZXchCgoqKlRoaXMgaXMgdGhlIG5ldyB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIDMueC4qKiBUaGUgbmV3IHZlcnNpb24gc3VwcG9ydHMgU3dhZ2dlciAyLjAgYXMgd2VsbCBhcyBPcGVuQVBJIDMuCgpXYW50IHRvIGxlYXJuIG1vcmU/IENoZWNrIG91dCBvdXIgW0ZBUV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpLgoKRm9yIGZlYXR1cmVzIGtub3duIHRvIGJlIG1pc3NpbmcgZnJvbSAzLnggcGxlYXNlIHNlZSB0aGUgW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkuCgoKRm9yIHRoZSBvbGRlciB2ZXJzaW9uIG9mIHN3YWdnZXItanMsIHJlZmVyIHRvIHRoZSBbKjIueCBicmFuY2gqXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy90cmVlLzIueCkuCgo+ICpUaGUgbnBtIHBhY2thZ2UgaXMgY2FsbGVkIGBzd2FnZ2VyLWNsaWVudGAgYW5kIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSBpcyBgc3dhZ2dlci1qc2AuCldlJ2xsIGJlIGNvbnNvbGlkYXRpbmcgdGhhdCBzb29uLiBKdXN0IGdpdmluZyB5b3UgdGhlIGhlYWRzLXVwLiBZb3UgbWF5IHNlZSByZWZlcmVuY2VzIHRvIGJvdGggbmFtZXMuKgoKIyMgQ29tcGF0aWJpbGl0eQpUaGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9uIGhhcyB1bmRlcmdvbmUgbXVsdGlwbGUgcmV2aXNpb25zIHNpbmNlIGluaXRpYWwgY3JlYXRpb24gaW4gMjAxMC4gCkNvbXBhdGliaWxpdHkgYmV0d2VlbiBTd2FnZ2VyIENsaWVudCBhbmQgdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBpcyBhcyBmb2xsb3dzOgoKU3dhZ2dlciBDbGllbnQgVmVyc2lvbiB8IFJlbGVhc2UgRGF0ZSB8IE9wZW5BUEkgU3BlYyBjb21wYXRpYmlsaXR5ICAgICAgICAgICAgIHwgTm90ZXMKLS0tLS0tLS0tLS0tLS0tLS0tIHwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAtLS0tLQozLjE5LnggfCAyMDIzLTAxLTIzICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zLCAzLjEuMCB8IFt0YWcgdjMuMTkuMC1hbHBoYS4zXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1qcy9yZWxlYXNlcy90YWcvdjMuMTkuMC1hbHBoYS4zKQozLjEwLnggfCAyMDIwLTAxLTE3ICAgfCAyLjAsIDMuMC4wLCAzLjAuMSwgMy4wLjIsIDMuMC4zICAgICAgICB8IFt0YWcgdjMuMTAuMF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92My4xMC4wKQoyLjEuMzIgfCAyMDE3LTAxLTEyICAgfCAxLjAsIDEuMSwgMS4yICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt0YWcgdjIuMS4zMl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvdHJlZS92Mi4xLjMyKS4gVGhpcyBbcmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItanMvcmVsZWFzZXMvdGFnL3YyLjEuMzIpIGlzIG9ubHkgYXZhaWxhYmxlIG9uIEdpdEh1Yi4KCiMjIERvY3VtZW50YXRpb24KCiMjIyMgVXNhZ2UKCi0gW0luc3RhbGxhdGlvbl0oZG9jcy91c2FnZS9pbnN0YWxsYXRpb24ubWQpCi0gW1RhZ3MgSW50ZXJmYWNlXShkb2NzL3VzYWdlL3RhZ3MtaW50ZXJmYWNlLm1kKQotIFtIVFRQIGNsaWVudCBmb3IgT0FTIG9wZXJhdGlvbnNdKGRvY3MvdXNhZ2UvaHR0cC1jbGllbnQtZm9yLW9hcy1vcGVyYXRpb25zLm1kKQotIFtPcGVuQVBJIERlZmluaXRpb24gUmVzb2x2ZXJdKGRvY3MvdXNhZ2Uvb3BlbmFwaS1kZWZpbml0aW9uLXJlc29sdmVyLm1kKQotIFtIVFRQIENsaWVudF0oZG9jcy91c2FnZS9odHRwLWNsaWVudC5tZCkKLSBbU3dhZ2dlciBDbGllbnQgQVBJXShkb2NzL3VzYWdlL2FwaS5tZCkKCiMjIyMgRGV2ZWxvcG1lbnQKCi0gW0NvbnRyaWJ1dGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpLy5naXRodWIvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kKQotIFtTZXR0aW5nIHVwXShkb2NzL2RldmVsb3BtZW50L3NldHRpbmctdXAubWQpCi0gW1NjcmlwdHNdKGRvY3MvZGV2ZWxvcG1lbnQvc2NyaXB0cy5tZCkKCiMjIyMgTWlncmF0aW9ucyAKCi0gW01pZ3JhdGlvbiBndWlkZV0oZG9jcy9taWdyYXRpb24vbWlncmF0aW9uLTIteC10by0zLXgubWQpCi0gW0dyYXZleWFyZF0oZG9jcy9taWdyYXRpb24vZ3JhdmV5YXJkLTMteC5tZCkKCiMjIyBSdW50aW1lIAoKIyMjIE5vZGUuanMKCmBzd2FnZ2VyLWNsaWVudGAgcmVxdWlyZXMgTm9kZS5qcyBgPj0xMi4yMC4wYCBhbmQgdXNlcyBkaWZmZXJlbnQgYGZldGNoYCBpbXBsZW1lbnRhdGlvbiBkZXBlbmRpbmcKb24gTm9kZS5qcyB2ZXJzaW9uLgoKLSBgPj0xMi4yMC4wIDwxNi44YCAtIFtub2RlLWZldGNoQDNdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL25vZGUtZmV0Y2gpCi0gYD49MTYuOCA8MThgIC0gW3VuZGljaV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdW5kaWNpKSAKLSBgPj0xOGAgLSBbbmF0aXZlIE5vZGUuanMgZmV0Y2hdKGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L2xhdGVzdC12MTgueC9kb2NzL2FwaS9nbG9iYWxzLmh0bWwjZmV0Y2gpCgo+IE5PVEU6IHN3YWdnZXItY2xpZW50IG1pbmltdW0gTm9kZS5qcyBydW50aW1lIHZlcnNpb24gYWxpZ25zIHdpdGggW05vZGUuanMgUmVsZWFzZXNdKGh0dHBzOi8vbm9kZWpzLm9yZy9lbi9hYm91dC9yZWxlYXNlcy8pCj4gd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW4gZHJvcCBzdXBwb3J0IGZvciAqKkVPTCoqIChFbmQgT2YgTGlmZSkgTm9kZS5qcyB2ZXJzaW9ucyB3aXRob3V0IGRvaW5nIG1ham9yIHZlcnNpb24gYnVtcC4KCiMjIyBCcm93c2VycwoKYHN3YWdnZXItY2xpZW50YCB3b3JrcyBpbiB0aGUgbGF0ZXN0IHZlcnNpb25zIG9mIENocm9tZSwgU2FmYXJpLCBGaXJlZm94LCBhbmQgRWRnZQphbmQgdXNlcyBbbmF0aXZlIGZldGNoXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmV0Y2hfQVBJKSBpbXBsZW1lbnRhdGlvbgpwcm92aWRlZCBieSBlYWNoIHN1cHBvcnRlZCBicm93c2VyLgoKCgojIyBTZWN1cml0eSBjb250YWN0CgpQbGVhc2UgZGlzY2xvc2UgYW55IHNlY3VyaXR5LXJlbGF0ZWQgaXNzdWVzIG9yIHZ1bG5lcmFiaWxpdGllcyBieSBlbWFpbGluZyBbc2VjdXJpdHlAc3dhZ2dlci5pb10obWFpbHRvOnNlY3VyaXR5QHN3YWdnZXIuaW8pLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBwdWJsaWMgaXNzdWUgdHJhY2tlci4K + readmeEtag: '"9e51fa97b3ed846e564c726cd89f7937ff0a70f8ba604437e28b42a2ad38bf98"' + readmeLastModified: Tue, 12 Sep 2023 23:30:00 GMT repositoryId: 3455070 description: >- Javascript library to connect to swagger-enabled APIs via browser or @@ -6986,7 +6986,7 @@ owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"1bb483a83579ebaf659002f61eb8497ca947cd20b5366bc233dfe63bf3a1310b"' + repoEtag: '"f3b6e198dd630fd8877e90dc1d76afc1bf4e6878fae99004dc47ee9d823988b5"' repoLastModified: Sat, 09 Sep 2023 06:22:38 GMT foundInMaster: true category: Code Generators @@ -7006,17 +7006,17 @@ web applications in Python with performance auto-tuning. Optionally with Alpine Linux. created: '2019-01-04T17:33:29Z' - updated: '2023-09-10T18:05:06Z' + updated: '2023-09-12T07:21:37Z' language: Python archived: false - stars: 2338 + stars: 2339 watchers: 28 forks: 309 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"e0b92ae3192e1bb6d638d12c6b337ae591246164eb94ff4ba44394bcd7b3728d"' - repoLastModified: Sun, 10 Sep 2023 18:05:06 GMT + repoEtag: '"b6bd87db927b4a5de7596054e9e339571dd90ac98515eb7b9b2a64f1583ceb1c"' + repoLastModified: Tue, 12 Sep 2023 07:21:37 GMT foundInMaster: true category: Server Implementations id: d0f3fc0bd35fcadacc8ed2c531780739 @@ -7042,17 +7042,17 @@ Guarantee flawless API functionality with thorough, high-quality test scenarios generated from your API specification. created: '2019-08-19T11:13:01Z' - updated: '2023-09-11T22:54:27Z' + updated: '2023-09-12T23:05:54Z' language: Python archived: false - stars: 1843 + stars: 1844 watchers: 21 forks: 135 owner: schemathesis logo: https://avatars.githubusercontent.com/u/70383271?v=4 license: MIT - repoEtag: '"2d56327fb0440a1b0273ee6ce17f91254ce50e04e2930b810748ecb299ee1953"' - repoLastModified: Mon, 11 Sep 2023 22:54:27 GMT + repoEtag: '"bcb2f61c34d0e00c491989229851f7f3cd11d4abad1ac3f71f221bcbebd0abb2"' + repoLastModified: Tue, 12 Sep 2023 23:05:54 GMT foundInMaster: true id: f4032fb371a703acffa691c0f1239d45 oldLocations: @@ -7097,17 +7097,17 @@ repositoryId: 244234763 description: Sane and flexible OpenAPI 3 schema generation for Django REST framework. created: '2020-03-01T22:36:54Z' - updated: '2023-09-11T18:45:42Z' + updated: '2023-09-12T16:17:56Z' language: Python archived: false - stars: 1820 + stars: 1822 watchers: 12 forks: 217 owner: tfranzel logo: https://avatars.githubusercontent.com/u/13507857?v=4 license: BSD-3-Clause - repoEtag: '"810806c20665e1b8bf033b20430c65782a71a922f4b14b2d92bcd74757b11655"' - repoLastModified: Mon, 11 Sep 2023 18:45:42 GMT + repoEtag: '"5e230e3a5589e1bf338e26159bfb79fdaecfa411affb1148b3b533d9aad518ff"' + repoLastModified: Tue, 12 Sep 2023 16:17:56 GMT foundInMaster: true category: Server Implementations id: 520f5c66c3e42a7b3fbface4f156c1dc @@ -7122,17 +7122,17 @@ repositoryId: 165951750 description: RapiDoc -WebComponent for OpenAPI Spec created: '2019-01-16T01:29:58Z' - updated: '2023-09-10T09:39:47Z' + updated: '2023-09-12T05:44:11Z' language: JavaScript archived: false - stars: 1392 + stars: 1393 watchers: 11 forks: 250 owner: rapi-doc logo: https://avatars.githubusercontent.com/u/104180085?v=4 license: MIT - repoEtag: '"c08566e7aa0691dcb5603f46341e13bb4f62f550eae62ca3cbb17bf2c27b5674"' - repoLastModified: Sun, 10 Sep 2023 09:39:47 GMT + repoEtag: '"9ac11fb0efdd9ac758182e121a3742d2cc2ee3387ad3b1c85688da17ddc5f5ee"' + repoLastModified: Tue, 12 Sep 2023 05:44:11 GMT foundInMaster: true category: Documentation id: b903cad8b99b490dbecf6c6951d5b500 @@ -7160,7 +7160,7 @@ owner: juhaku logo: https://avatars.githubusercontent.com/u/26358664?v=4 license: Apache-2.0 - repoEtag: '"7fa664600efeab1106b2412f33de16540a0f5d7e5d992af922c4b78e03c250f2"' + repoEtag: '"0f3d9492b7f9d14bebff2b1409ce105512639b6a0ba01ba35a7e5df687007434"' repoLastModified: Sun, 10 Sep 2023 16:03:42 GMT foundInMaster: true category: Parsers @@ -7183,17 +7183,17 @@ repositoryId: 71986592 description: GUI / visual editor for creating and editing OpenAPI / Swagger definitions created: '2016-10-26T09:15:55Z' - updated: '2023-09-11T21:13:11Z' + updated: '2023-09-12T16:01:55Z' language: JavaScript archived: false - stars: 1270 + stars: 1269 watchers: 43 forks: 161 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: MIT - repoEtag: '"fba4b61ed3df46aff7092201516fd732b94f5291ec2b73d3103f467c4f75ebfb"' - repoLastModified: Mon, 11 Sep 2023 21:13:11 GMT + repoEtag: '"a6c92cf8571dfac924ad6df6e35ba0827cf8d38f2239b1696f58518dd19aeb8e"' + repoLastModified: Tue, 12 Sep 2023 16:01:55 GMT foundInMaster: true id: 71f1a528dc0a6366fb580d1b8c703ea8 - source: openapi3 tags @@ -7210,17 +7210,17 @@ A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML created: '2021-01-26T02:53:57Z' - updated: '2023-09-11T17:25:27Z' + updated: '2023-09-12T13:36:45Z' language: Python archived: false - stars: 1235 + stars: 1238 watchers: 16 forks: 39 owner: jcrist logo: https://avatars.githubusercontent.com/u/2783717?v=4 license: BSD-3-Clause - repoEtag: '"cc51360b8adeb3df829ce178f9c4cbfdc50c48d7534345002f0ae29f42e7bd32"' - repoLastModified: Mon, 11 Sep 2023 17:25:27 GMT + repoEtag: '"21627ae3241f7a619d6d272ef0c136b0e1d9bf8d06a405064f68cb6cdbb5aa3a"' + repoLastModified: Tue, 12 Sep 2023 13:36:45 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7236,17 +7236,17 @@ A node package wrapper for https://github.com/OpenAPITools/openapi-generator created: '2018-10-26T10:21:23Z' - updated: '2023-09-11T10:48:23Z' + updated: '2023-09-12T19:02:57Z' language: TypeScript archived: false - stars: 1059 + stars: 1060 watchers: 15 forks: 117 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"d957fb6bf75fe79ecbcc2e3201f8151dbef92c83fd264927670e4d88678bdddd"' - repoLastModified: Mon, 11 Sep 2023 10:48:23 GMT + repoEtag: '"e5c3153cd273beee7c43bf57b69cfbdafd007ebefd5eb0c55a854a593bd6bece"' + repoLastModified: Tue, 12 Sep 2023 19:02:57 GMT foundInMaster: true category: Code Generators id: 8f568f0b10837fef38571b68999adc0f @@ -7272,7 +7272,7 @@ owner: marshmallow-code logo: https://avatars.githubusercontent.com/u/10334301?v=4 license: MIT - repoEtag: '"35f088ed726faf0f81933f80b81388e22262524d9059b5e37b39eca2bd593260"' + repoEtag: '"b9cea7a3458e2c985263a64b5a91eba74e8b094ee292762615ec3c88599711a0"' repoLastModified: Sat, 09 Sep 2023 13:46:34 GMT foundInMaster: true category: Parsers @@ -7289,17 +7289,17 @@ repositoryId: 329190167 description: A lightweight Python web API framework. created: '2021-01-13T04:08:48Z' - updated: '2023-09-07T15:03:40Z' + updated: '2023-09-13T03:04:40Z' language: Python archived: false - stars: 838 + stars: 840 watchers: 19 forks: 102 owner: apiflask logo: https://avatars.githubusercontent.com/u/78075725?v=4 license: MIT - repoEtag: '"f1501d14ef21dab08ca952b4de79e678ac7dfd2347a3726175d9206df5bb08ea"' - repoLastModified: Thu, 07 Sep 2023 15:03:40 GMT + repoEtag: '"13148283cbe4e26aa86d8f84909a12f237c4c04197a68059aaa8605e31841b64"' + repoLastModified: Wed, 13 Sep 2023 03:04:40 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -7321,11 +7321,11 @@ archived: false stars: 784 watchers: 18 - forks: 96 + forks: 97 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"29165e9a376d7f008eb1a77811ae88a2ee5f8f1f9a6c778ac05ae43a9883a9dc"' + repoEtag: '"634b5850e526de7af1816d5bd68b1fed9a948caa7884a4e8c8ca3c52e855a5dd"' repoLastModified: Sat, 09 Sep 2023 14:35:31 GMT category: Server Implementations foundInMaster: true @@ -7340,17 +7340,17 @@ repositoryId: 192797744 description: The modern editor for API Design and Technical Writing. created: '2019-06-19T20:09:49Z' - updated: '2023-09-11T15:39:04Z' + updated: '2023-09-12T21:28:14Z' language: null archived: false - stars: 738 + stars: 739 watchers: 29 forks: 46 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: NOASSERTION - repoEtag: '"922c80a24246f919d29ede4899d7e405bae07f442873a7d29238b13b4cccc223"' - repoLastModified: Mon, 11 Sep 2023 15:39:04 GMT + repoEtag: '"9a5ac00dcabd9133772cf18b9d9410d69f241dc39ada7a55597512d51950f30d"' + repoLastModified: Tue, 12 Sep 2023 21:28:14 GMT foundInMaster: true category: - Description Validators @@ -7369,17 +7369,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-09-11T11:49:44Z' + updated: '2023-09-12T04:19:29Z' language: Java archived: false - stars: 673 + stars: 674 watchers: 43 - forks: 287 + forks: 288 owner: networknt logo: https://avatars.githubusercontent.com/u/8740739?v=4 license: Apache-2.0 - repoEtag: '"76e83b6b784cf5cad3a8e36e2fbbc5bdc2335f492e3d3c2b98d07d1be2a20742"' - repoLastModified: Mon, 11 Sep 2023 11:49:44 GMT + repoEtag: '"882d516ca75f964c9c34f144d3210828f3c0fd02ca998fb18175f86cf69c81cf"' + repoLastModified: Tue, 12 Sep 2023 04:19:29 GMT foundInMaster: true category: Parsers id: 69c6f349899d198b4045edb7ffa3fb74 @@ -7395,17 +7395,17 @@ repositoryId: 372032505 description: OpenAPI v3 code generator for go created: '2021-05-29T17:25:48Z' - updated: '2023-09-11T14:28:49Z' + updated: '2023-09-13T02:38:26Z' language: Go archived: false - stars: 683 + stars: 703 watchers: 11 forks: 48 owner: ogen-go logo: https://avatars.githubusercontent.com/u/85122432?v=4 license: Apache-2.0 - repoEtag: '"dfed5e1fd262110676e5b1094198f5966dd2ec9ef14ce6fe475d7c61fed30701"' - repoLastModified: Mon, 11 Sep 2023 14:28:49 GMT + repoEtag: '"417d31d54a06f0c95965e032394bb395ecb6242ebc6684734c56c68c2c9cbb73"' + repoLastModified: Wed, 13 Sep 2023 02:38:26 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -7482,17 +7482,17 @@ repositoryId: 113924383 description: Utility for comparing two OpenAPI specifications. created: '2017-12-12T00:39:30Z' - updated: '2023-09-11T23:53:50Z' + updated: '2023-09-12T10:36:10Z' language: Java archived: false - stars: 645 + stars: 646 watchers: 20 forks: 146 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"bad7e25fde9f299c77b7baedbc8f024b11a71c5c4fe83adbc317029e5aa9d3f0"' - repoLastModified: Mon, 11 Sep 2023 23:53:50 GMT + repoEtag: '"e37359060c81f714bbeb30745d6375cfeb475a467979e3722e7d54b8cc8148d5"' + repoLastModified: Tue, 12 Sep 2023 10:36:10 GMT foundInMaster: true category: Parsers id: c128907e9d949a67c1bda0e0ceda755a @@ -7593,17 +7593,17 @@ 一个实现了多种常用站点的易用化API的程序 / A program that implements easy-to-use APIs for a variety of commonly used sites. created: '2020-12-18T14:56:31Z' - updated: '2023-09-07T03:20:21Z' + updated: '2023-09-12T14:42:48Z' language: Python archived: false - stars: 497 + stars: 498 watchers: 10 forks: 72 owner: mixmoe logo: https://avatars.githubusercontent.com/u/68723928?v=4 license: Apache-2.0 - repoEtag: '"7f3a3dda564a3072952819ed70b6046387664aefd8f15694bd0f48bd23b9359d"' - repoLastModified: Thu, 07 Sep 2023 03:20:21 GMT + repoEtag: '"355d6bce4e79260cc761b6c567867849a189aea4c35775d00d3f7faf34b2731a"' + repoLastModified: Tue, 12 Sep 2023 14:42:48 GMT foundInMaster: true category: Testing id: a5ce8925c7b03da0bff459d65f63458a @@ -7696,17 +7696,17 @@ repositoryId: 481579846 description: A library that generates OpenAPI (Swagger) docs from Zod schemas created: '2022-04-14T11:32:57Z' - updated: '2023-09-11T13:37:49Z' + updated: '2023-09-12T04:56:46Z' language: TypeScript archived: false - stars: 413 + stars: 414 watchers: 7 forks: 34 owner: asteasolutions logo: https://avatars.githubusercontent.com/u/5244095?v=4 license: MIT - repoEtag: '"704c60bb9db37993bf59f169259184a96ad686250c39ca06fe3acfb8b3d800fe"' - repoLastModified: Mon, 11 Sep 2023 13:37:49 GMT + repoEtag: '"9150a31d6c7fc8af3b99e1290e125a4f2f3adab209cfd085cfedb9f51a3c44ae"' + repoLastModified: Tue, 12 Sep 2023 04:56:46 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -7729,7 +7729,7 @@ forks: 66 owner: oazapfts logo: https://avatars.githubusercontent.com/u/119607625?v=4 - repoEtag: '"3056ef5c99ac8b4b1cf70951a9329670f5f3f4229aef02aaecebda07e529a332"' + repoEtag: '"1fad012fa7cd612c5cf88cc9650d46ec3e587bc0264769360c019f1f4d792686"' repoLastModified: Mon, 11 Sep 2023 11:05:54 GMT category: Parsers foundInMaster: true @@ -7892,7 +7892,7 @@ owner: swagger-autogen logo: https://avatars.githubusercontent.com/u/137681762?v=4 license: MIT - repoEtag: '"4f1a88f2d9762a19bc52032f9fb743fc200e93bc14d23235cb42b9848b658636"' + repoEtag: '"c23babfcaae5074097404bba76dbe6e16dd320043da82813e5cdcdbffb7d1047"' repoLastModified: Mon, 11 Sep 2023 13:33:06 GMT category: Parsers foundInMaster: true @@ -7948,7 +7948,7 @@ owner: akitasoftware logo: https://avatars.githubusercontent.com/u/44328574?v=4 license: Apache-2.0 - repoEtag: '"16e98f8ebf514cd21716a54736ca40e69de6725b2782a0cf6088eee7185a309c"' + repoEtag: '"f9b4168f9d4d6475edfd9c87e70c314a56f500637f25b35aba7c21c9ce0cb098"' repoLastModified: Wed, 23 Aug 2023 11:20:11 GMT foundInMaster: true category: @@ -7975,7 +7975,7 @@ forks: 37 owner: fabien0102 logo: https://avatars.githubusercontent.com/u/1761469?v=4 - repoEtag: '"d96002bdfe5187ae335ac2388f0a92c04ad2e6d98cd6542adb4fd1ea9d7fcd7c"' + repoEtag: '"725e6434793f94fd3992735174c1aec52d14d4bea9e0a0603b201186ab93aaa2"' repoLastModified: Wed, 06 Sep 2023 00:15:50 GMT category: Testing foundInMaster: true @@ -8130,11 +8130,11 @@ archived: false stars: 270 watchers: 35 - forks: 160 + forks: 161 owner: ethereum logo: https://avatars.githubusercontent.com/u/6250754?v=4 license: CC0-1.0 - repoEtag: '"52a9cac3a4915b8a63148fd7bbbc97fbca8b7dfb971e4cf6a3c5f2e8527030e3"' + repoEtag: '"dc80dbadd6f3f327038357761762ba2bfa2ef5659579e5312a1027897c4521bf"' repoLastModified: Sun, 10 Sep 2023 15:20:24 GMT foundInMaster: true category: @@ -8269,17 +8269,17 @@ repositoryId: 245763170 description: Huma REST/HTTP API Framework for Golang with OpenAPI 3 created: '2020-03-08T06:19:51Z' - updated: '2023-09-08T05:33:40Z' + updated: '2023-09-12T13:05:31Z' language: Go archived: false - stars: 224 + stars: 225 watchers: 11 forks: 29 owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"772824663d3b4ca77a1090611ad3f6695109898a4c8deba12fc2c60d0539f487"' - repoLastModified: Fri, 08 Sep 2023 05:33:40 GMT + repoEtag: '"12ea8b8227ecd6b6a1b4c45020375e280bfa59c03b39a88e3b98842d7d7352ee"' + repoLastModified: Tue, 12 Sep 2023 13:05:31 GMT foundInMaster: true category: Server Implementations id: 96ae035d7b486f67e7bae7f6208179f9 @@ -8308,7 +8308,7 @@ owner: testingisdocumenting logo: https://avatars.githubusercontent.com/u/54154955?v=4 license: Apache-2.0 - repoEtag: '"4565b8b2fc12bb709727f37a6ede16e8032e4ab79112e67f50efa0b3651e24a3"' + repoEtag: '"6810bc56108cffdeefd581506d34aa0899934507a8b74eac9255c1be339b7e3f"' repoLastModified: Tue, 05 Sep 2023 17:53:30 GMT foundInMaster: true category: Documentation @@ -8382,11 +8382,11 @@ archived: false stars: 204 watchers: 4 - forks: 25 + forks: 26 owner: BRIKEV logo: https://avatars.githubusercontent.com/u/59850028?v=4 license: MIT - repoEtag: '"d92f229b0c6d127a47805b75a3ba716f8cc65f8cab694c7f25859c5342299197"' + repoEtag: '"a8f7fc64b54416d2e23dfe7788539fbe26de9f9869ad0b9c932bbb6faca89e13"' repoLastModified: Tue, 12 Sep 2023 03:05:51 GMT foundInMaster: true category: Testing @@ -8402,17 +8402,17 @@ repositoryId: 419709887 description: A CUE-based framework for portable, evolvable schema created: '2021-10-21T12:16:22Z' - updated: '2023-09-05T20:34:35Z' + updated: '2023-09-12T04:36:56Z' language: Go archived: false - stars: 200 + stars: 201 watchers: 125 forks: 13 owner: grafana logo: https://avatars.githubusercontent.com/u/7195757?v=4 license: Apache-2.0 - repoEtag: '"cff85f7629b5234a8dff94471bfe827c8b33900c63862dec876972958bc11daf"' - repoLastModified: Tue, 05 Sep 2023 20:34:35 GMT + repoEtag: '"bcd8a44a39140c2b94281da2f53dfdaf216bdbe423299913ab0716e0b02bc669"' + repoLastModified: Tue, 12 Sep 2023 04:36:56 GMT foundInMaster: true category: - Server @@ -8501,7 +8501,7 @@ owner: asyncapi logo: https://avatars.githubusercontent.com/u/16401334?v=4 license: Apache-2.0 - repoEtag: '"38e3e75d7ab7aa3b71a3cc3fd88a5adac673bb4795ffb389170d3783f75a5eab"' + repoEtag: '"ccb16852bd422c63e3fdc140a57ed803bf2201b61282bf41b9cea69a20b04363"' repoLastModified: Mon, 11 Sep 2023 22:49:17 GMT foundInMaster: true - source: openapi3 tags @@ -8651,17 +8651,17 @@ repositoryId: 479982630 description: Clean Architecture Example using FastAPI framework created: '2022-04-10T10:23:51Z' - updated: '2023-09-05T17:54:52Z' + updated: '2023-09-12T21:56:10Z' language: Python archived: false - stars: 180 + stars: 181 watchers: 3 - forks: 38 + forks: 39 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT - repoEtag: '"7177b4fd1db6872a5e1f58b1d459d7fb7279dcb540afe70f13f73a7eb278c441"' - repoLastModified: Tue, 05 Sep 2023 17:54:52 GMT + repoEtag: '"1d176689864982381e2ad1110362f1d738abf2a562113d4bb4d2b7670a30ba91"' + repoLastModified: Tue, 12 Sep 2023 21:56:10 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -8794,7 +8794,7 @@ owner: aress31 logo: https://avatars.githubusercontent.com/u/11601622?v=4 license: Apache-2.0 - repoEtag: '"8e1f5fc938365c9274466cdd0944318193c1e1d9dff359c07647d648106ea6b1"' + repoEtag: '"8fa057a246db64f952c1d445eddefddf045b41778ac080f2eba1a0413c62a16b"' repoLastModified: Thu, 20 Jul 2023 06:04:02 GMT foundInMaster: true category: @@ -8899,7 +8899,7 @@ owner: seriousme logo: https://avatars.githubusercontent.com/u/3322396?v=4 license: MIT - repoEtag: '"975fe1a126097cd8e508af118170da63fe9181ffbef4c89cb8787fd028fbc70b"' + repoEtag: '"024d182cb7200f5c5be773d5246ba36f45e36762f09de526ba338fb03c38f3e9"' repoLastModified: Sun, 03 Sep 2023 07:31:37 GMT foundInMaster: true category: @@ -8929,7 +8929,7 @@ owner: sunrise-php logo: https://avatars.githubusercontent.com/u/41580063?v=4 license: MIT - repoEtag: '"cb11d753b78c051b66277dd3137cc25118e010d124d428030e4df4689e9b6c6f"' + repoEtag: '"33bd8361b19f8c7b983b594016a5ac444add6822064f72ac4b8ee0ff9105cf11"' repoLastModified: Wed, 30 Aug 2023 14:48:38 GMT foundInMaster: true category: Data Validators @@ -8945,17 +8945,17 @@ repositoryId: 39236124 description: null created: '2015-07-17T05:14:14Z' - updated: '2023-06-13T18:44:54Z' + updated: '2023-09-12T20:41:10Z' language: Java archived: false - stars: 152 + stars: 153 watchers: 24 forks: 88 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"6fcc1cc35e9c34baa325bb6d8bc8e79e216468696dee3f202d42cad249ea8873"' - repoLastModified: Tue, 13 Jun 2023 18:44:54 GMT + repoEtag: '"21b89b057a89daf195a09a0e5988d20d356629b784931b4a755d998e5add3cd3"' + repoLastModified: Tue, 12 Sep 2023 20:41:10 GMT foundInMaster: true category: Parsers id: 73bbfe691003c37a641d8864645f2425 @@ -9059,11 +9059,11 @@ archived: false stars: 141 watchers: 8 - forks: 25 + forks: 26 owner: cloudflare logo: https://avatars.githubusercontent.com/u/314135?v=4 license: MIT - repoEtag: '"e936fc1bae5f46b9377732a6af45cac744d8a9e1a494cfd31e3db1d05e38efdb"' + repoEtag: '"a1ecfec31b8a34355e77d011e80dbff95d392516c19253d7cc5c9c35e0fdf85b"' repoLastModified: Fri, 08 Sep 2023 21:12:22 GMT category: Server Implementations foundInMaster: true @@ -9282,7 +9282,7 @@ owner: luolingchun logo: https://avatars.githubusercontent.com/u/22740403?v=4 license: MIT - repoEtag: '"38c4d508d068fefdf6685655e3abfcec720c21682a21179d771662826296966d"' + repoEtag: '"85ff7d6451152352ab897fe2272a47a26f1b9f26a5a7481b8a347a387219f5bd"' repoLastModified: Tue, 12 Sep 2023 03:18:22 GMT foundInMaster: true category: Server Implementations @@ -9329,17 +9329,17 @@ repositoryId: 294444776 description: OpenAPI starter repository created: '2020-09-10T15:11:31Z' - updated: '2023-09-06T03:04:06Z' + updated: '2023-09-12T12:47:08Z' language: C# archived: false - stars: 107 + stars: 108 watchers: 21 forks: 85 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"22a8702e69f1735a70f344f5ca0f1483b47a95b1c9d7793bd660a95e352dc8d0"' - repoLastModified: Wed, 06 Sep 2023 03:04:06 GMT + repoEtag: '"12efa74d5dda1cea18ce831e5f8743e6962982ea26f0a1addab238a7c946cca4"' + repoLastModified: Tue, 12 Sep 2023 12:47:08 GMT foundInMaster: true v3_1: true category: Parsers @@ -9612,7 +9612,7 @@ owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 license: NOASSERTION - repoEtag: '"eea806afb3ccbe63e2aea60af89fd75f9f33a4d81e30514103e5c6293c5f814d"' + repoEtag: '"3a454ecc6388486a2ec532a72dfd35d688a934031517a309fdf5b2632ff5a272"' repoLastModified: Fri, 08 Sep 2023 14:42:37 GMT category: Parsers foundInMaster: true @@ -10142,17 +10142,17 @@ validation and generates documentation. It's fully compatible with the current Gin usages and Gin's middlewares. created: '2021-12-02T22:07:56Z' - updated: '2023-06-20T06:51:27Z' + updated: '2023-09-12T04:29:53Z' language: Go archived: false - stars: 61 + stars: 62 watchers: 6 forks: 5 owner: meteran logo: https://avatars.githubusercontent.com/u/2293924?v=4 license: MIT - repoEtag: '"e5bd241dbf640d92956084d263860b22230ecb29a49c65baf0c3c08fdfd0cc0f"' - repoLastModified: Tue, 20 Jun 2023 06:51:27 GMT + repoEtag: '"be13719e9572d39b25ffa49d52a573cb988eb1e82725ba496bc2f39b8754c06c"' + repoLastModified: Tue, 12 Sep 2023 04:29:53 GMT foundInMaster: true category: - SDK @@ -10172,17 +10172,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-09-08T16:43:34Z' + updated: '2023-09-12T20:56:52Z' language: Python archived: false - stars: 61 + stars: 62 watchers: 3 forks: 4 owner: dymmond logo: https://avatars.githubusercontent.com/u/65982469?v=4 license: MIT - repoEtag: '"d8ef244eb772e75cf64f9bfcca8ea93e8105dc3b7c47be3714f486a4b2ba28bc"' - repoLastModified: Fri, 08 Sep 2023 16:43:34 GMT + repoEtag: '"48526f9890d2052b738c31bf6752f2486a491a47b5bfc3bf39ef43b56c961f4d"' + repoLastModified: Tue, 12 Sep 2023 20:56:52 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -10422,23 +10422,23 @@ id: 17db61563d8b069fd3d4a63d36459a68 repositoryMetadata: base64Readme: >- - WyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbU21va2UgVGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9zbW9rZS10ZXN0cy55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL3Ntb2tlLXRlc3RzLnltbCkKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9yZWZpdHRlcj9jb2xvcj1ibHVlKV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JlZml0dGVyKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9yZWZpdHRlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9Y2hyaXN0aWFuaGVsbGVfcmVmaXR0ZXIpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49MjQyWVQxTjZUMildKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTE2LW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCiMgUmVmaXR0ZXIKUmVmaXR0ZXIgaXMgYSB0b29sIGZvciBnZW5lcmF0aW5nIGEgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBbUmVmaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGl2ZXVpL3JlZml0KSBsaWJyYXJ5LiBSZWZpdHRlciBjYW4gZ2VuZXJhdGUgdGhlIFJlZml0IGludGVyZmFjZSBhbmQgY29udHJhY3RzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gCgpSZWZpdHRlciBjb21lcyBpbiAyIGZvcm1zOgotIEEgWy5ORVQgQ0xJIFRvb2xdKCNjbGktdG9vbCkgZGlzdHJpYnV0ZWQgdmlhIFtudWdldC5vcmddKGh0dHA6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JlZml0dGVyKSB0aGF0IG91dHB1dHMgYSBzaW5nbGUgQyMgZmlsZSBvbiBkaXNrCi0gQSBbQyMgU291cmNlIEdlbmVyYXRvcl0oI3NvdXJjZS1nZW5lcmF0b3IpIHZpYSB0aGUgW1JlZml0dGVyLlNvdXJjZUdlbmVyYXRvcl0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmVmaXR0ZXIuc291cmNlZ2VuZXJhdG9yKSBwYWNrYWdlIHRoYXQgZ2VuZXJhdGVzIGNvZGUgb24gY29tcGlsZSB0aW1lIGJhc2VkIG9uIGEgWy5yZWZpdHRlcl0oIy5yZWZpdHRlci1maWxlLWZvcm1hdCkgd2l0aGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeS4KCiMjIENMSSBUb29sCgojIyMgSW5zdGFsbGF0aW9uOgoKVGhlIHRvb2wgaXMgcGFja2FnZWQgYXMgYSAuTkVUIFRvb2wgYW5kIGlzIHB1Ymxpc2hlZCB0byBudWdldC5vcmcuIFlvdSBjYW4gaW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyB0b29sIGxpa2UgdGhpczoKCmBgYHNoZWxsCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgUmVmaXR0ZXIKYGBgCgojIyMgVXNhZ2U6CgpgYGBzaGVsbAokIHJlZml0dGVyIC0taGVscApgYGAKCmBgYApVU0FHRToKICAgIHJlZml0dGVyIFtVUkwgb3IgaW5wdXQgZmlsZV0gW09QVElPTlNdCgpFWEFNUExFUzoKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uCiAgICByZWZpdHRlciBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLnlhbWwKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tc2V0dGluZ3MtZmlsZSAuL29wZW5hcGkucmVmaXR0ZXIKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbmFtZXNwYWNlICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIgLS1vdXRwdXQgLi9HZW5lcmF0ZWRDb2RlLmNzCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0taW50ZXJuYWwKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tb3V0cHV0IC4vSUdlbmVyYXRlZENvZGUuY3MgLS1pbnRlcmZhY2Utb25seQogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS11c2UtYXBpLXJlc3BvbnNlCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLWNhbmNlbGxhdGlvbi10b2tlbnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbm8tb3BlcmF0aW9uLWhlYWRlcnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbm8tYWNjZXB0LWhlYWRlcnMKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tdXNlLWlzby1kYXRlLWZvcm1hdAogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1hZGRpdGlvbmFsLW5hbWVzcGFjZSAiWW91ci5BZGRpdGlvbmFsLk5hbWVzcGFjZSIgLS1hZGRpdGlvbmFsLW5hbWVzcGFjZSAiWW91ci5PdGhlci5BZGRpdGlvbmFsLk5hbWVzcGFjZSIKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbXVsdGlwbGUtaW50ZXJmYWNlcyBCeUVuZHBvaW50CiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLXRhZyBQZXQgLS10YWcgU3RvcmUgLS10YWcgVXNlcgogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1tYXRjaC1wYXRoICdeL3BldC8uKicKCkFSR1VNRU5UUzoKICAgIFtVUkwgb3IgaW5wdXQgZmlsZV0gICAgVVJMIG9yIGZpbGUgcGF0aCB0byBPcGVuQVBJIFNwZWNpZmljYXRpb24gZmlsZQoKT1BUSU9OUzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW50cyBoZWxwIGluZm9ybWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC1zLCAtLXNldHRpbmdzLWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gLnJlZml0dGVyIHNldHRpbmdzIGZpbGUuIFNwZWNpZnlpbmcgdGhpcyB3aWxsIGlnbm9yZSBhbGwgb3RoZXIgc2V0dGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC1uLCAtLW5hbWVzcGFjZSAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZWRDb2RlICAgIERlZmF1bHQgbmFtZXNwYWNlIHRvIHVzZSBmb3IgZ2VuZXJhdGVkIHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIC1vLCAtLW91dHB1dCAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQuY3MgICAgICAgIFBhdGggdG8gT3V0cHV0IGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLW5vLWF1dG8tZ2VuZXJhdGVkLWhlYWRlciAgICAgICAgICAgICAgICAgICAgIERvbid0IGFkZCA8YXV0by1nZW5lcmF0ZWQ+IGhlYWRlciB0byBvdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLW5vLWFjY2VwdC1oZWFkZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbid0IGFkZCA8QWNjZXB0PiBoZWFkZXIgdG8gb3V0cHV0IGZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWludGVyZmFjZS1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbid0IGdlbmVyYXRlIGNvbnRyYWN0IHR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLXVzZS1hcGktcmVzcG9uc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiBUYXNrPElBcGlSZXNwb25zZTxUPj4gaW5zdGVhZCBvZiBUYXNrPFQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWludGVybmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGUgZ2VuZXJhdGVkIHR5cGVzIHRvICdpbnRlcm5hbCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWNhbmNlbGxhdGlvbi10b2tlbnMgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBjYW5jZWxsYXRpb24gdG9rZW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLW5vLW9wZXJhdGlvbi1oZWFkZXJzICAgICAgICAgICAgICAgICAgICAgICAgIERvbid0IGdlbmVyYXRlIG9wZXJhdGlvbiBoZWFkZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLW5vLWxvZ2dpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvbid0IGxvZyBlcnJvcnMgb3IgY29sbGVjdCB0ZWxlbWV0cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLWFkZGl0aW9uYWwtbmFtZXNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBhZGRpdGlvbmFsIG5hbWVzcGFjZSB0byBnZW5lcmF0ZWQgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLXVzZS1pc28tZGF0ZS1mb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGxpY2l0bHkgZm9ybWF0IGRhdGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgaW4gSVNPIDg2MDEgc3RhbmRhcmQgZGF0ZSBmb3JtYXQgdXNpbmcgZGVsaW1pdGVycyAoMjAyMy0wNi0xNSkKICAgICAgICAtLW11bHRpcGxlLWludGVyZmFjZXMgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlIGEgUmVmaXQgaW50ZXJmYWNlIGZvciBlYWNoIGVuZHBvaW50LiBNYXkgYmUgb25lIG9mIEJ5RW5kcG9pbnQsIEJ5VGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLW1hdGNoLXBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgaW5jbHVkZSBQYXRocyB0aGF0IG1hdGNoIHRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24uIE1heSBiZSBzZXQgbXVsdGlwbGUgdGltZXMgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAtLXRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgaW5jbHVkZSBFbmRwb2ludHMgdGhhdCBjb250YWluIHRoaXMgdGFnLiBNYXkgYmUgc2V0IG11bHRpcGxlIHRpbWVzIGFuZCByZXN1bHQgaW4gT1InZWQgZXZhbHVhdGlvbiAgICAgICAKICAgICAgICAtLXNraXAtdmFsaWRhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNraXAgdmFsaWRhdGlvbiBvZiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKYGBgCgpUbyBnZW5lcmF0ZSBjb2RlIGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucyBmaWxlLCBydW4gdGhlIGZvbGxvd2luZzoKCmBgYHNoZWxsCiQgcmVmaXR0ZXIgW3BhdGggdG8gT3BlbkFQSSBzcGVjIGZpbGVdIC0tbmFtZXNwYWNlICJbWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGVdIgpgYGAKClRoaXMgd2lsbCBnZW5lcmF0ZSBhIGZpbGUgY2FsbGVkIGBPdXRwdXQuY3NgIHdoaWNoIGNvbnRhaW5zIHRoZSBSZWZpdCBpbnRlcmZhY2UgYW5kIGNvbnRyYWN0IGNsYXNzZXMgZ2VuZXJhdGVkIHVzaW5nIFtOU3dhZ10oaHR0cHM6Ly9naXRodWIuY29tL1JpY29TdXRlci9OU3dhZykKCiMjIFNvdXJjZSBHZW5lcmF0b3IKClJlZml0dGVyIGlzIGF2YWlsYWJsZSBhcyBhIEMjIFNvdXJjZSBHZW5lcmF0b3IgdGhhdCB1c2VzIHRoZSBbUmVmaXR0ZXIuQ29yZV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyLmNvcmUpIGxpYnJhcnkgZm9yIGdlbmVyYXRpbmcgYSBSRVNUIEFQSSBDbGllbnQgdXNpbmcgdGhlIFtSZWZpdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0aXZldWkvcmVmaXQpIGxpYnJhcnkuIFJlZml0dGVyIGNhbiBnZW5lcmF0ZSB0aGUgUmVmaXQgaW50ZXJmYWNlIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucwoKVGhlIFJlZml0dGVyIHNvdXJjZSBnZW5lcmF0b3IgaXMgYSBiaXQgdW50cmFkaXRpb25hbCBpbiBhIHNlbnNlIHRoYXQgaXQgY3JlYXRlcyBhIGZvbGRlciBjYWxsZWQgYEdlbmVyYXRlZGAgaW4gdGhlIHNhbWUgbG9jYXRpb24gYXMgdGhlIGAucmVmaXR0ZXJgIGZpbGUgYW5kIGdlbmVyYXRlcyBmaWxlcyB0byBkaXNrIHVuZGVyIHRoZSBgR2VuZXJhdGVkYCBmb2xkZXIuIFRoZSBzb3VyY2UgZ2VuZXJhdG9yIG91dHB1dCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHByb2plY3QgYW5kIGNvbW1pdHRlZCB0byBzb3VyY2UgY29udHJvbC4gVGhpcyBpcyBkb25lIGJlY2F1c2UgdGhlcmUgaXMgbm8gb3RoZXIgd2F5IHRvIHRyaWdnZXIgdGhlIFJlZml0IHNvdXJjZSBnZW5lcmF0b3IgdG8gcGlja3VwIHRoZSBSZWZpdHRlciBnZW5lcmF0ZWQgY29kZSAKCioqKihUcmFuc2xhdGlvbjogSSBjb3VsZG4ndCBmb3IgdGhlIGxpZmUgb2YgbWUgZmlndXJlIGhvdyB0byBnZXQgdGhhdCB0byB3b3JrLCBzb3JyeSkqKioKCiMjIyBJbnN0YWxsYXRpb24KClRoZSBzb3VyY2UgZ2VuZXJhdG9yIGlzIGRpc3RyaWJ1dGVkIGFzIGEgTnVHZXQgcGFja2FnZSBhbmQgc2hvdWxkIGJlIGluc3RhbGxlZCB0byB0aGUgcHJvamVjdCB0aGF0IHdpbGwgY29udGFpbiB0aGUgZ2VuZXJhdGVkIGNvZGUKCmBgYHNoZWxsCmRvdG5ldCBhZGQgcGFja2FnZSBSZWZpdHRlci5Tb3VyY2VHZW5lcmF0b3IKYGBgCgojIyMgVXNhZ2UKClRoaXMgc291cmNlIGdlbmVyYXRvciBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiBhbnkgYC5yZWZpdHRlcmAgZmlsZSBpbmNsdWRlZCB0byB0aGUgcHJvamVjdCBhcyBgQWRkaXRpb25hbEZpbGVzYC4KClRoZSBnZW5lcmF0b3IgY2FuIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IGFsbCBgLnJlZml0dGVyYCBmaWxlcyBpbnNpZGUgdGhlIHByb2plY3QgdGhhdCByZWZlcmVuY2VkIHRoZSBgUmVmaXR0ZXIuU291cmNlR2VuZXJhdG9yYCBwYWNrYWdlIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIGluY2x1ZGUgdGhlbSBtYW51YWxseSBhcyBgQWRkaXRpb25hbEZpbGVzYAoKIyMjIC5SZWZpdHRlciBGaWxlIGZvcm1hdAoKVGhlIGZvbGxvd2luZyBpcyBhbiBleGFtcGxlIGAucmVmaXR0ZXJgIGZpbGUKCmBgYGpzCnsKICAib3BlbkFwaVBhdGgiOiAiL3BhdGgvdG8veW91ci9vcGVuQVBJIiwgLy8gUmVxdWlyZWQKICAibmFtZXNwYWNlIjogIk9yZy5TeXN0ZW0uU2VydmljZS5BcGkuR2VuZXJhdGVkQ29kZSIsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PUdlbmVyYXRlZENvZGUKICAibmFtaW5nIjogewogICAgInVzZU9wZW5BcGlUaXRsZSI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgICAiaW50ZXJmYWNlTmFtZSI6ICJNeUFwaUNsaWVudCIgLy8gT3B0aW9uYWwuIERlZmF1bHQ9QXBpQ2xpZW50CiAgfSwKICAiZ2VuZXJhdGVDb250cmFjdHMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgImdlbmVyYXRlWG1sRG9jQ29kZUNvbW1lbnRzIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9dHJ1ZQogICJhZGRBdXRvR2VuZXJhdGVkSGVhZGVyIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9dHJ1ZQogICJhZGRBY2NlcHRIZWFkZXJzIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9dHJ1ZQogICJyZXR1cm5JQXBpUmVzcG9uc2UiOiBmYWxzZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAiZ2VuZXJhdGVPcGVyYXRpb25IZWFkZXJzIjogdHJ1ZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9dHJ1ZQogICJ0eXBlQWNjZXNzaWJpbGl0eSI6ICJQdWJsaWMiLCAvLyBPcHRpb25hbC4gVmFsdWVzPVB1YmxpY3xJbnRlcm5hbC4gRGVmYXVsdD1QdWJsaWMKICAidXNlQ2FuY2VsbGF0aW9uVG9rZW5zIjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PWZhbHNlCiAgInVzZUlzb0RhdGVGb3JtYXQiOiBmYWxzZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAibXVsdGlwbGVJbnRlcmZhY2VzIjogIkJ5RW5kcG9pbnQiLCAvLyBPcHRpb25hbC4gTWF5IGJlIG9uZSBvZiAiQnlFbmRwb2ludCIgb3IgIkJ5VGFnIgogICJhZGRpdGlvbmFsTmFtZXNwYWNlcyI6IFsgLy8gT3B0aW9uYWwKICAgICJOYW1lc3BhY2UxIiwKICAgICJOYW1lc3BhY2UyIgogIF0sCiAgInRhZyI6IFsgLy8gT3B0aW9uYWwuIE9wZW5BUEkgVGFnIHRvIGluY2x1ZGUgd2hlbiBnZW5lcmF0aW5nIGNvZGUKICAgICJQZXQiLAogICAgIlN0b3JlIiwKICAgICJVc2VyIgogIF0sCiAgIm1hdGNoUGF0aCI6IFsgLy8gT3B0aW9uYWwuIE9ubHkgaW5jbHVkZSBQYXRocyB0aGF0IG1hdGNoIHRoZSBwcm92aWRlZCByZWd1bGFyIGV4cHJlc3Npb24KICAgICJeL3BldC8uKiIsCiAgICAiXi9zdG9yZS8uKiIKICBdCn0KYGBgCgotIGBvcGVuQXBpUGF0aGAgLSBwb2ludHMgdG8gdGhlIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZmlsZS4gVGhpcyBjYW4gYmUgdGhlIHBhdGggdG8gYSBmaWxlIHN0b3JlZCBvbiBkaXNrLCByZWxhdGl2ZSB0byB0aGUgYC5yZWZpdHRlcmAgZmlsZS4gVGhpcyBjYW4gYWxzbyBiZSBhIFVSTCB0byBhIHJlbW90ZSBmaWxlIHRoYXQgd2lsbCBiZSBkb3dubG9hZGVkIG92ZXIgSFRUUC9IVFRQUwotIGBuYW1lc3BhY2VgIC0gdGhlIG5hbWVzcGFjZSB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29kZS4gSWYgbm90IHNwZWNpZmllZCwgdGhpcyBkZWZhdWx0cyB0byBgR2VuZXJhdGVkQ29kZWAKLSBgbmFtaW5nLnVzZU9wZW5BcGlUaXRsZWAgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBPcGVuQXBpIHRpdGxlIHNob3VsZCBiZSB1c2VkLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBuYW1pbmcuaW50ZXJmYWNlTmFtZWAgLSB0aGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGludGVyZmFjZS4gVGhlIGdlbmVyYXRlZCBjb2RlIHdpbGwgYXV0b21hdGljYWxseSBwcmVmaXggdGhpcyB3aXRoIGBJYCBzbyBpZiB0aGlzIHNldCB0byBgTXlBcGlDbGllbnRgIHRoZW4gdGhlIGdlbmVyYXRlZCBpbnRlcmZhY2UgaXMgY2FsbGVkIGBJTXlBcGlDbGllbnRgLiBEZWZhdWx0IGlzIGBBcGlDbGllbnRgCi0gYGdlbmVyYXRlQ29udHJhY3RzYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgY29udHJhY3RzIHNob3VsZCBiZSBnZW5lcmF0ZWQuIEEgdXNlIGNhc2UgZm9yIHRoaXMgaXMgc2V2ZXJhbCBBUEkgY2xpZW50cyB1c2UgdGhlIHNhbWUgY29udHJhY3RzLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBnZW5lcmF0ZVhtbERvY0NvZGVDb21tZW50c2AgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIFhNTCBkb2MgY29tbWVudHMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgYWRkQXV0b0dlbmVyYXRlZEhlYWRlcmAgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIFhNTCBkb2MgY29tbWVudHMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgYWRkQWNjZXB0SGVhZGVyc2AgLSAgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byBhZGQgYWNjZXB0IGhlYWRlcnMgW0hlYWRlcnMoIkFjY2VwdDogYXBwbGljYXRpb24vanNvbiIpXS4gRGVmYXVsdCBpcyBgdHJ1ZWAKLSBgcmV0dXJuSUFwaVJlc3BvbnNlYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0dXJuIGBJQXBpUmVzcG9uc2U8VD5gIG9iamVjdHMuIERlZmF1bHQgaXMgYGZhbHNlYAotIGBnZW5lcmF0ZU9wZXJhdGlvbkhlYWRlcnNgIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byB1c2Ugb3BlcmF0aW9uIGhlYWRlcnMgaW4gdGhlIGdlbmVyYXRlZCBtZXRob2RzLiBEZWZhdWx0IGlzIGB0cnVlYAotIGB0eXBlQWNjZXNzaWJpbGl0eWAgLSB0aGUgZ2VuZXJhdGVkIHR5cGUgYWNjZXNzaWJpbGl0eS4gUG9zc2libGUgdmFsdWVzIGFyZSBgUHVibGljYCBhbmQgYEludGVybmFsYC4gRGVmYXVsdCBpcyBgUHVibGljYAotIGB1c2VDYW5jZWxsYXRpb25Ub2tlbnNgIC0gVXNlIGNhbmNlbGxhdGlvbiB0b2tlbnMgaW4gdGhlIGdlbmVyYXRlZCBtZXRob2RzLiBEZWZhdWx0IGlzIGBmYWxzZWAKLSBgdXNlSXNvRGF0ZUZvcm1hdGAgLSBTZXQgdG8gYHRydWVgIHRvIGV4cGxpY2l0bHkgZm9ybWF0IGRhdGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgaW4gSVNPIDg2MDEgc3RhbmRhcmQgZGF0ZSBmb3JtYXQgdXNpbmcgZGVsaW1pdGVycyAoZm9yIGV4YW1wbGU6IDIwMjMtMDYtMTUpLiBEZWZhdWx0IGlzIGBmYWxzZWAKLSBgbXVsdGlwbGVJbnRlcmZhY2VzYCAtIFNldCB0byBgQnlFbmRwb2ludGAgdG8gZ2VuZXJhdGUgYW4gaW50ZXJmYWNlIGZvciBlYWNoIGVuZHBvaW50LCBvciBgQnlUYWdgIHRvIGdyb3VwIEVuZHBvaW50cyBieSB0aGVpciBUYWcgKGxpa2UgU3dhZ2dlclVJIGdyb3VwcyB0aGVtKS4KLSBgYWRkaXRpb25hbE5hbWVzcGFjZXNgIC0gQSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbmFtZXNwYWNlcyB0byBpbmNsdWRlIGluIHRoZSBnZW5lcmF0ZWQgZmlsZS4gQSB1c2UgY2FzZSBmb3IgdGhpcyBpcyB3aGVuIHlvdSB3YW50IHRvIHJldXNlIGNvbnRyYWN0cyBmcm9tIGEgZGlmZmVyZW50IG5hbWVzcGFjZSB0aGFuIHRoZSBnZW5lcmF0ZWQgY29kZS4gRGVmYXVsdCBpcyBlbXB0eQotIGB0YWdgIC0gQSBjb2xsZWN0aW9uIG9mIHRhZ3MgdG8gdXNlIGEgZmlsdGVyIGZvciBpbmNsdWRpbmcgZW5kcG9pbnRzIHRoYXQgY29udGFpbiB0aGlzIHRhZy4KLSBgbWF0Y2gtcGF0aGAgLSBBIGNvbGxlY3Rpb24gb2YgcmVndWxhciBleHByZXNzaW9ucyB1c2VkIHRvIGZpbHRlciBwYXRocy4gCgoKIyBVc2luZyB0aGUgZ2VuZXJhdGVkIGNvZGUKCkhlcmUncyBhbiBleGFtcGxlIGdlbmVyYXRlZCBvdXRwdXQgZnJvbSB0aGUgW1N3YWdnZXIgUGV0c3RvcmUgZXhhbXBsZV0oaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pbykgdXNpbmcgdGhlIGRlZmF1bHQgc2V0dGluZ3MKCioqQ0xJIFRvb2wqKgoKYGBgYmFzaAokIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbmFtZXNwYWNlICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIKYGBgCgoqKlNvdXJjZSBHZW5lcmF0b3IgKioqLnJlZml0dGVyKioqIGZpbGUqKgoKYGBganNvbgp7CiAgIm9wZW5BcGlQYXRoIjogIi4vb3BlbmFwaS5qc29uIiwKICAibmFtZXNwYWNlIjogIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIgp9CmBgYAoKKipPdXRwdXQqKgoKYGBgY3MKdXNpbmcgUmVmaXQ7CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKbmFtZXNwYWNlIFlvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlCnsKICAgIHB1YmxpYyBpbnRlcmZhY2UgSVN3YWdnZXJQZXRzdG9yZQogICAgewogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVXBkYXRlIGFuIGV4aXN0aW5nIHBldCBieSBJZAogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1B1dCgiL3BldCIpXQogICAgICAgIFRhc2s8UGV0PiBVcGRhdGVQZXQoW0JvZHldIFBldCBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Bvc3QoIi9wZXQiKV0KICAgICAgICBUYXNrPFBldD4gQWRkUGV0KFtCb2R5XSBQZXQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gTXVsdGlwbGUgc3RhdHVzIHZhbHVlcyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgICAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlTdGF0dXMoW1F1ZXJ5XSBTdGF0dXM/IHN0YXR1cyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gTXVsdGlwbGUgdGFncyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncy4gVXNlIHRhZzEsIHRhZzIsIHRhZzMgZm9yIHRlc3RpbmcuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvcGV0L2ZpbmRCeVRhZ3MiKV0KICAgICAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEZpbmRQZXRzQnlUYWdzKFtRdWVyeShDb2xsZWN0aW9uRm9ybWF0Lk11bHRpKV0gSUVudW1lcmFibGU8c3RyaW5nPiB0YWdzKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBSZXR1cm5zIGEgc2luZ2xlIHBldAogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3BldC97cGV0SWR9IildCiAgICAgICAgVGFzazxQZXQ+IEdldFBldEJ5SWQobG9uZyBwZXRJZCk7CgogICAgICAgIFtQb3N0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrIFVwZGF0ZVBldFdpdGhGb3JtKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIG5hbWUsIFtRdWVyeV0gc3RyaW5nIHN0YXR1cyk7CgogICAgICAgIFtEZWxldGUoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2sgRGVsZXRlUGV0KGxvbmcgcGV0SWQsIFtIZWFkZXIoImFwaV9rZXkiKV0gc3RyaW5nIGFwaV9rZXkpOwoKICAgICAgICBbUG9zdCgiL3BldC97cGV0SWR9L3VwbG9hZEltYWdlIildCiAgICAgICAgVGFzazxBcGlSZXNwb25zZT4gVXBsb2FkRmlsZShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBhZGRpdGlvbmFsTWV0YWRhdGEsIFN0cmVhbVBhcnQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gUmV0dXJucyBhIG1hcCBvZiBzdGF0dXMgY29kZXMgdG8gcXVhbnRpdGllcwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3N0b3JlL2ludmVudG9yeSIpXQogICAgICAgIFRhc2s8SURpY3Rpb25hcnk8c3RyaW5nLCBpbnQ+PiBHZXRJbnZlbnRvcnkoKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBQbGFjZSBhIG5ldyBvcmRlciBpbiB0aGUgc3RvcmUKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvc3RvcmUvb3JkZXIiKV0KICAgICAgICBUYXNrPE9yZGVyPiBQbGFjZU9yZGVyKFtCb2R5XSBPcmRlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBGb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPD0gNSBvciA+IDEwLiBPdGhlciB2YWx1ZXMgd2lsbCBnZW5lcmF0ZWQgZXhjZXB0aW9ucwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3N0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIFRhc2s8T3JkZXI+IEdldE9yZGVyQnlJZChsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8IDEwMDAuIEFueXRoaW5nIGFib3ZlIDEwMDAgb3Igbm9uaW50ZWdlcnMgd2lsbCBnZW5lcmF0ZSBBUEkgZXJyb3JzCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbRGVsZXRlKCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICAgICAgVGFzayBEZWxldGVPcmRlcihsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUG9zdCgiL3VzZXIiKV0KICAgICAgICBUYXNrIENyZWF0ZVVzZXIoW0JvZHldIFVzZXIgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gQ3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXkKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvdXNlci9jcmVhdGVXaXRoTGlzdCIpXQogICAgICAgIFRhc2s8VXNlcj4gQ3JlYXRlVXNlcnNXaXRoTGlzdElucHV0KFtCb2R5XSBJRW51bWVyYWJsZTxVc2VyPiBib2R5KTsKCiAgICAgICAgW0dldCgiL3VzZXIvbG9naW4iKV0KICAgICAgICBUYXNrPHN0cmluZz4gTG9naW5Vc2VyKFtRdWVyeV0gc3RyaW5nIHVzZXJuYW1lLCBbUXVlcnldIHN0cmluZyBwYXNzd29yZCk7CgogICAgICAgIFtHZXQoIi91c2VyL2xvZ291dCIpXQogICAgICAgIFRhc2sgTG9nb3V0VXNlcigpOwoKICAgICAgICBbR2V0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzazxVc2VyPiBHZXRVc2VyQnlOYW1lKHN0cmluZyB1c2VybmFtZSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQdXQoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgICAgICBUYXNrIFVwZGF0ZVVzZXIoc3RyaW5nIHVzZXJuYW1lLCBbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0RlbGV0ZSgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgRGVsZXRlVXNlcihzdHJpbmcgdXNlcm5hbWUpOwogICAgfQp9CmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgZ2VuZXJhdGVkIG91dHB1dCBmcm9tIHRoZSBbU3dhZ2dlciBQZXRzdG9yZSBleGFtcGxlXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvKSBjb25maWd1cmVkIHRvIHdyYXAgdGhlIHJldHVybiB0eXBlIGluIGBJQXBpUmVzcG9uc2U8VD5gCgoqKkNMSSBUb29sKioKCmBgYGJhc2gKJCByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0tdXNlLWFwaS1yZXNwb25zZQpgYGAKCioqU291cmNlIEdlbmVyYXRvciAqKioucmVmaXR0ZXIqKiogZmlsZSoqCgpgYGBqc29uCnsKICAib3BlbkFwaVBhdGgiOiAiLi9vcGVuYXBpLmpzb24iLAogICJuYW1lc3BhY2UiOiAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiLAogICJyZXR1cm5JQXBpUmVzcG9uc2UiOiB0cnVlCn0KYGBgCgoqKk91dHB1dCoqCgpgYGBjcwp1c2luZyBSZWZpdDsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpuYW1lc3BhY2UgWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUuV2l0aEFwaVJlc3BvbnNlCnsKICAgIHB1YmxpYyBpbnRlcmZhY2UgSVN3YWdnZXJQZXRzdG9yZQogICAgewogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVXBkYXRlIGFuIGV4aXN0aW5nIHBldCBieSBJZAogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1B1dCgiL3BldCIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFBldD4+IFVwZGF0ZVBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUG9zdCgiL3BldCIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFBldD4+IEFkZFBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIE11bHRpcGxlIHN0YXR1cyB2YWx1ZXMgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3MKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtHZXQoIi9wZXQvZmluZEJ5U3RhdHVzIildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8SUNvbGxlY3Rpb248UGV0Pj4+IEZpbmRQZXRzQnlTdGF0dXMoW1F1ZXJ5XSBTdGF0dXM/IHN0YXR1cyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gTXVsdGlwbGUgdGFncyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncy4gVXNlIHRhZzEsIHRhZzIsIHRhZzMgZm9yIHRlc3RpbmcuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvcGV0L2ZpbmRCeVRhZ3MiKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxJQ29sbGVjdGlvbjxQZXQ+Pj4gRmluZFBldHNCeVRhZ3MoW1F1ZXJ5KENvbGxlY3Rpb25Gb3JtYXQuTXVsdGkpXSBJRW51bWVyYWJsZTxzdHJpbmc+IHRhZ3MpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFJldHVybnMgYSBzaW5nbGUgcGV0CiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxQZXQ+PiBHZXRQZXRCeUlkKGxvbmcgcGV0SWQpOwoKICAgICAgICBbUG9zdCgiL3BldC97cGV0SWR9IildCiAgICAgICAgVGFzayBVcGRhdGVQZXRXaXRoRm9ybShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBuYW1lLCBbUXVlcnldIHN0cmluZyBzdGF0dXMpOwoKICAgICAgICBbRGVsZXRlKCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrIERlbGV0ZVBldChsb25nIHBldElkLCBbSGVhZGVyKCJhcGlfa2V5IildIHN0cmluZyBhcGlfa2V5KTsKCiAgICAgICAgW1Bvc3QoIi9wZXQve3BldElkfS91cGxvYWRJbWFnZSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPEFwaVJlc3BvbnNlPj4gVXBsb2FkRmlsZShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBhZGRpdGlvbmFsTWV0YWRhdGEsIFN0cmVhbVBhcnQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gUmV0dXJucyBhIG1hcCBvZiBzdGF0dXMgY29kZXMgdG8gcXVhbnRpdGllcwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3N0b3JlL2ludmVudG9yeSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPElEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4+IEdldEludmVudG9yeSgpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFBsYWNlIGEgbmV3IG9yZGVyIGluIHRoZSBzdG9yZQogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Bvc3QoIi9zdG9yZS9vcmRlciIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPE9yZGVyPj4gUGxhY2VPcmRlcihbQm9keV0gT3JkZXIgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gRm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDw9IDUgb3IgPiAxMC4gT3RoZXIgdmFsdWVzIHdpbGwgZ2VuZXJhdGVkIGV4Y2VwdGlvbnMKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtHZXQoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxPcmRlcj4+IEdldE9yZGVyQnlJZChsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8IDEwMDAuIEFueXRoaW5nIGFib3ZlIDEwMDAgb3Igbm9uaW50ZWdlcnMgd2lsbCBnZW5lcmF0ZSBBUEkgZXJyb3JzCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbRGVsZXRlKCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICAgICAgVGFzayBEZWxldGVPcmRlcihsb25nIG9yZGVySWQpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUG9zdCgiL3VzZXIiKV0KICAgICAgICBUYXNrIENyZWF0ZVVzZXIoW0JvZHldIFVzZXIgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gQ3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXkKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvdXNlci9jcmVhdGVXaXRoTGlzdCIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFVzZXI+PiBDcmVhdGVVc2Vyc1dpdGhMaXN0SW5wdXQoW0JvZHldIElFbnVtZXJhYmxlPFVzZXI+IGJvZHkpOwoKICAgICAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPHN0cmluZz4+IExvZ2luVXNlcihbUXVlcnldIHN0cmluZyB1c2VybmFtZSwgW1F1ZXJ5XSBzdHJpbmcgcGFzc3dvcmQpOwoKICAgICAgICBbR2V0KCIvdXNlci9sb2dvdXQiKV0KICAgICAgICBUYXNrIExvZ291dFVzZXIoKTsKCiAgICAgICAgW0dldCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFVzZXI+PiBHZXRVc2VyQnlOYW1lKHN0cmluZyB1c2VybmFtZSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQdXQoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgICAgICBUYXNrIFVwZGF0ZVVzZXIoc3RyaW5nIHVzZXJuYW1lLCBbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0RlbGV0ZSgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgRGVsZXRlVXNlcihzdHJpbmcgdXNlcm5hbWUpOwogICAgfQp9CmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgZ2VuZXJhdGVkIG91dHB1dCBmcm9tIHRoZSBbU3dhZ2dlciBQZXRzdG9yZSBleGFtcGxlXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvKSBjb25maWd1cmVkIHRvIGdlbmVyYXRlIGFuIGludGVyZmFjZSBmb3IgZWFjaCBlbmRwb2ludAoKKipDTEkgVG9vbCoqCgpgYGBiYXNoCiQgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uYW1lc3BhY2UgIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIiAtLW11bHRpcGxlLWludGVyZmFjZXMgQnlFbmRwb2ludApgYGAKCioqU291cmNlIEdlbmVyYXRvciAqKioucmVmaXR0ZXIqKiogZmlsZSoqCgpgYGBqc29uCnsKICAib3BlbkFwaVBhdGgiOiAiLi9vcGVuYXBpLmpzb24iLAogICJuYW1lc3BhY2UiOiAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiLAogICJtdWx0aXBsZUludGVyZmFjZXMiOiAiQnlFbmRwb2ludCIKfQpgYGAKCioqT3V0cHV0KioKCmBgYGNzCi8vLyA8c3VtbWFyeT4KLy8vIFVwZGF0ZSBhbiBleGlzdGluZyBwZXQKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJVXBkYXRlUGV0RW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFVwZGF0ZSBhbiBleGlzdGluZyBwZXQgYnkgSWQKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUHV0KCIvcGV0IildCiAgICBUYXNrPFBldD4gRXhlY3V0ZShbQm9keV0gUGV0IGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElBZGRQZXRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUG9zdCgiL3BldCIpXQogICAgVGFzazxQZXQ+IEV4ZWN1dGUoW0JvZHldIFBldCBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRmluZHMgUGV0cyBieSBzdGF0dXMKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJRmluZFBldHNCeVN0YXR1c0VuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBNdWx0aXBsZSBzdGF0dXMgdmFsdWVzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgIFRhc2s8SUNvbGxlY3Rpb248UGV0Pj4gRXhlY3V0ZShbUXVlcnldIFN0YXR1cz8gc3RhdHVzKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRmluZHMgUGV0cyBieSB0YWdzCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUZpbmRQZXRzQnlUYWdzRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIE11bHRpcGxlIHRhZ3MgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3MuIFVzZSB0YWcxLCB0YWcyLCB0YWczIGZvciB0ZXN0aW5nLgogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtHZXQoIi9wZXQvZmluZEJ5VGFncyIpXQogICAgVGFzazxJQ29sbGVjdGlvbjxQZXQ+PiBFeGVjdXRlKFtRdWVyeShDb2xsZWN0aW9uRm9ybWF0Lk11bHRpKV0gSUVudW1lcmFibGU8c3RyaW5nPiB0YWdzKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRmluZCBwZXQgYnkgSUQKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJR2V0UGV0QnlJZEVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBSZXR1cm5zIGEgc2luZ2xlIHBldAogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtHZXQoIi9wZXQve3BldElkfSIpXQogICAgVGFzazxQZXQ+IEV4ZWN1dGUobG9uZyBwZXRJZCk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIFVwZGF0ZXMgYSBwZXQgaW4gdGhlIHN0b3JlIHdpdGggZm9ybSBkYXRhCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSVVwZGF0ZVBldFdpdGhGb3JtRW5kcG9pbnQKewogICAgW1Bvc3QoIi9wZXQve3BldElkfSIpXQogICAgVGFzayBFeGVjdXRlKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIG5hbWUsIFtRdWVyeV0gc3RyaW5nIHN0YXR1cyk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIERlbGV0ZXMgYSBwZXQKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJRGVsZXRlUGV0RW5kcG9pbnQKewogICAgW0RlbGV0ZSgiL3BldC97cGV0SWR9IildCiAgICBUYXNrIEV4ZWN1dGUobG9uZyBwZXRJZCwgW0hlYWRlcigiYXBpX2tleSIpXSBzdHJpbmcgYXBpX2tleSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIHVwbG9hZHMgYW4gaW1hZ2UKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJVXBsb2FkRmlsZUVuZHBvaW50CnsKICAgIFtQb3N0KCIvcGV0L3twZXRJZH0vdXBsb2FkSW1hZ2UiKV0KICAgIFRhc2s8QXBpUmVzcG9uc2U+IEV4ZWN1dGUobG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgYWRkaXRpb25hbE1ldGFkYXRhLCBTdHJlYW1QYXJ0IGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBSZXR1cm5zIHBldCBpbnZlbnRvcmllcyBieSBzdGF0dXMKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJR2V0SW52ZW50b3J5RW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFJldHVybnMgYSBtYXAgb2Ygc3RhdHVzIGNvZGVzIHRvIHF1YW50aXRpZXMKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbR2V0KCIvc3RvcmUvaW52ZW50b3J5IildCiAgICBUYXNrPElEaWN0aW9uYXJ5PHN0cmluZywgaW50Pj4gRXhlY3V0ZSgpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBQbGFjZSBhbiBvcmRlciBmb3IgYSBwZXQKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJUGxhY2VPcmRlckVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBQbGFjZSBhIG5ldyBvcmRlciBpbiB0aGUgc3RvcmUKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUG9zdCgiL3N0b3JlL29yZGVyIildCiAgICBUYXNrPE9yZGVyPiBFeGVjdXRlKFtCb2R5XSBPcmRlciBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRmluZCBwdXJjaGFzZSBvcmRlciBieSBJRAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElHZXRPcmRlckJ5SWRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gRm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDw9IDUgb3IgPiAxMC4gT3RoZXIgdmFsdWVzIHdpbGwgZ2VuZXJhdGVkIGV4Y2VwdGlvbnMKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbR2V0KCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICBUYXNrPE9yZGVyPiBFeGVjdXRlKGxvbmcgb3JkZXJJZCk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIERlbGV0ZSBwdXJjaGFzZSBvcmRlciBieSBJRAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElEZWxldGVPcmRlckVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBGb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPCAxMDAwLiBBbnl0aGluZyBhYm92ZSAxMDAwIG9yIG5vbmludGVnZXJzIHdpbGwgZ2VuZXJhdGUgQVBJIGVycm9ycwogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtEZWxldGUoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgIFRhc2sgRXhlY3V0ZShsb25nIG9yZGVySWQpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBDcmVhdGUgdXNlcgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElDcmVhdGVVc2VyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW1Bvc3QoIi91c2VyIildCiAgICBUYXNrIEV4ZWN1dGUoW0JvZHldIFVzZXIgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIENyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5Ci8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUNyZWF0ZVVzZXJzV2l0aExpc3RJbnB1dEVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheQogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtQb3N0KCIvdXNlci9jcmVhdGVXaXRoTGlzdCIpXQogICAgVGFzazxVc2VyPiBFeGVjdXRlKFtCb2R5XSBJRW51bWVyYWJsZTxVc2VyPiBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gTG9ncyB1c2VyIGludG8gdGhlIHN5c3RlbQovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElMb2dpblVzZXJFbmRwb2ludAp7CiAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgVGFzazxzdHJpbmc+IEV4ZWN1dGUoW1F1ZXJ5XSBzdHJpbmcgdXNlcm5hbWUsIFtRdWVyeV0gc3RyaW5nIHBhc3N3b3JkKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gTG9ncyBvdXQgY3VycmVudCBsb2dnZWQgaW4gdXNlciBzZXNzaW9uCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUxvZ291dFVzZXJFbmRwb2ludAp7CiAgICBbR2V0KCIvdXNlci9sb2dvdXQiKV0KICAgIFRhc2sgRXhlY3V0ZSgpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBHZXQgdXNlciBieSB1c2VyIG5hbWUKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJR2V0VXNlckJ5TmFtZUVuZHBvaW50CnsKICAgIFtHZXQoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgIFRhc2s8VXNlcj4gRXhlY3V0ZShzdHJpbmcgdXNlcm5hbWUpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBVcGRhdGUgdXNlcgovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElVcGRhdGVVc2VyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgVGFzayBFeGVjdXRlKHN0cmluZyB1c2VybmFtZSwgW0JvZHldIFVzZXIgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIERlbGV0ZSB1c2VyCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSURlbGV0ZVVzZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbRGVsZXRlKCIvdXNlci97dXNlcm5hbWV9IildCiAgICBUYXNrIEV4ZWN1dGUoc3RyaW5nIHVzZXJuYW1lKTsKfQpgYGAKCiMjIFJlc3RTZXJ2aWNlCgpIZXJlJ3MgYW4gZXhhbXBsZSB1c2FnZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUgYWJvdmUKCmBgYGNzCnVzaW5nIFJlZml0Owp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5UaHJlYWRpbmcuVGFza3M7CgpuYW1lc3BhY2UgWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGU7CgppbnRlcm5hbCBjbGFzcyBQcm9ncmFtCnsKICAgIHByaXZhdGUgc3RhdGljIGFzeW5jIFRhc2sgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIHZhciBjbGllbnQgPSBSZXN0U2VydmljZS5Gb3I8SVN3YWdnZXJQZXRzdG9yZT4oImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzIik7CiAgICAgICAgdmFyIHBldCA9IGF3YWl0IGNsaWVudC5HZXRQZXRCeUlkKDEpOwoKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiIyMgVXNpbmcgVGFzazxUPiBhcyByZXR1cm4gdHlwZSAjIyIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiTmFtZToge3BldC5OYW1lfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiQ2F0ZWdvcnk6IHtwZXQuQ2F0ZWdvcnkuTmFtZX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIlN0YXR1czoge3BldC5TdGF0dXN9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKCiAgICAgICAgdmFyIGNsaWVudDIgPSBSZXN0U2VydmljZS5Gb3I8V2l0aEFwaVJlc3BvbnNlLklTd2FnZ2VyUGV0c3RvcmU+KCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIpOwogICAgICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGNsaWVudDIuR2V0UGV0QnlJZCgyKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiMjIFVzaW5nIFRhc2s8SUFwaVJlc3BvbnNlPFQ+PiBhcyByZXR1cm4gdHlwZSAjIyIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiSFRUUCBTdGF0dXMgQ29kZToge3Jlc3BvbnNlLlN0YXR1c0NvZGV9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJOYW1lOiB7cmVzcG9uc2UuQ29udGVudC5OYW1lfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiQ2F0ZWdvcnk6IHtyZXNwb25zZS5Db250ZW50LkNhdGVnb3J5Lk5hbWV9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJTdGF0dXM6IHtyZXNwb25zZS5Db250ZW50LlN0YXR1c30iKTsKICAgIH0KfQpgYGAKClRoZSBgUmVzdFNlcnZpY2VgIGNsYXNzIGdlbmVyYXRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBgSVN3YWdnZXJQZXRzdG9yZWAgdGhhdCB1c2VzIGBIdHRwQ2xpZW50YCB0byBtYWtlIGl0cyBjYWxscy4gCgpUaGUgY29kZSBhYm92ZSB3aGVuIHJ1biB3aWxsIG91dHB1dCBzb21ldGhpbmcgbGlrZSB0aGlzOgoKYGBgCiMjIFVzaW5nIFRhc2s8VD4gYXMgcmV0dXJuIHR5cGUgIyMKTmFtZTogR2F0aXRvdG90b3RvCkNhdGVnb3J5OiBDaGF1Y2l0bwpTdGF0dXM6IFNvbGQKCiMjIFVzaW5nIFRhc2s8SUFwaVJlc3BvbnNlPFQ+PiBhcyByZXR1cm4gdHlwZSAjIwpIVFRQIFN0YXR1cyBDb2RlOiBPSwpOYW1lOiBHYXRpdG90b3RvdG8KQ2F0ZWdvcnk6IENoYXVjaXRvClN0YXR1czogU29sZApgYGAKCiMjIEFTUC5ORVQgQ29yZSBhbmQgSHR0cENsaWVudEZhY3RvcnkKCkhlcmUncyBhbiBleGFtcGxlIE1pbmltYWwgQVBJIHdpdGggdGhlIFtgUmVmaXQuSHR0cENsaWVudEZhY3RvcnlgXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXQuSHR0cENsaWVudEZhY3RvcnkpIGxpYnJhcnk6CgpgYGBjcwp1c2luZyBSZWZpdDsKdXNpbmcgWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGU7Cgp2YXIgYnVpbGRlciA9IFdlYkFwcGxpY2F0aW9uLkNyZWF0ZUJ1aWxkZXIoYXJncyk7CmJ1aWxkZXIuU2VydmljZXMuQWRkRW5kcG9pbnRzQXBpRXhwbG9yZXIoKTsKYnVpbGRlci5TZXJ2aWNlcy5BZGRTd2FnZ2VyR2VuKCk7CmJ1aWxkZXIuU2VydmljZXMKICAgIC5BZGRSZWZpdENsaWVudDxJU3dhZ2dlclBldHN0b3JlPigpCiAgICAuQ29uZmlndXJlSHR0cENsaWVudChjID0+IGMuQmFzZUFkZHJlc3MgPSBuZXcgVXJpKCJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92MyIpKTsKCnZhciBhcHAgPSBidWlsZGVyLkJ1aWxkKCk7CmFwcC5NYXBHZXQoCiAgICAgICAgIi9wZXQve2lkOmxvbmd9IiwKICAgICAgICBhc3luYyAoSVN3YWdnZXJQZXRzdG9yZSBwZXRzdG9yZSwgbG9uZyBpZCkgPT4KICAgICAgICB7CiAgICAgICAgICAgIHRyeQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0cy5Payhhd2FpdCBwZXRzdG9yZS5HZXRQZXRCeUlkKGlkKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggKFJlZml0LkFwaUV4Y2VwdGlvbiBlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0cy5TdGF0dXNDb2RlKChpbnQpZS5TdGF0dXNDb2RlKTsKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAuV2l0aE5hbWUoIkdldFBldEJ5SWQiKQogICAgLldpdGhPcGVuQXBpKCk7CgphcHAuVXNlSHR0cHNSZWRpcmVjdGlvbigpOwphcHAuVXNlU3dhZ2dlclVJKCk7CmFwcC5Vc2VTd2FnZ2VyKCk7CmFwcC5SdW4oKTsKYGBgCgouTkVUIENvcmUgc3VwcG9ydHMgcmVnaXN0ZXJpbmcgdGhlIGdlbmVyYXRlZCBgSVN3YWdnZXJQZXRzdG9yZWAgaW50ZXJmYWNlIHZpYSBgSHR0cENsaWVudEZhY3RvcnlgCgpUaGUgZm9sbG93aW5nIHJlcXVlc3QgdG8gdGhlIEFQSSBhYm92ZQpgYGBzaGVsbAokIGN1cmwgLVggJ0dFVCcgJ2h0dHBzOi8vbG9jYWxob3N0OjUwMDEvcGV0LzEnIC1IICdhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nCmBgYAoKUmV0dXJucyBhIHJlc3BvbnNlIHRoYXQgbG9va3Mgc29tZXRoaW5nIGxpa2UgdGhpczoKYGBganNvbgp7CiAgImlkIjogMSwKICAibmFtZSI6ICJTcGVjaWFsX2NoYXJfb3duZXJfIUAjJF4mKClgLnRlc3RpbmciLAogICJwaG90b1VybHMiOiBbCiAgICAiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9yZXNvdXJjZXMvcGhvdG9zLzYyMzM4OTA5NS5qcGciCiAgXSwKICAidGFncyI6IFtdLAogICJzdGF0dXMiOiAiU29sZCIKfQpgYGAKCiMjIFN5c3RlbSByZXF1aXJlbWVudHMKLk5FVCA2LjAgKExUUykKCiMjIENvbnRyaWJ1dG9ycwoKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUxJU1Q6U1RBUlQgLSBEbyBub3QgcmVtb3ZlIG9yIG1vZGlmeSB0aGlzIHNlY3Rpb24gLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLXN0YXJ0IC0tPgo8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIC0tPgo8dGFibGU+CiAgPHRib2R5PgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9uZW9HZW5ldmEiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODA0NzI0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJQaGlsaXAgQ294Ii8+PGJyIC8+PHN1Yj48Yj5QaGlsaXAgQ294PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9bmVvR2VuZXZhIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vY2FtLm1hY2Zhci5sYW5kLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMjk4ODQ3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJDYW1lcm9uIE1hY0ZhcmxhbmQiLz48YnIgLz48c3ViPjxiPkNhbWVyb24gTWFjRmFybGFuZDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWRpc3RhbnRjYW0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL2tnYW1lLnR3Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM2NDY1MzI/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImtnYW1lIi8+PGJyIC8+PHN1Yj48Yj5rZ2FtZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWtnYW1lY2FydGVyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHA6Ly95cmtpLm5vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNTczNjAxP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJUaG9tYXMgUGV0dGVyc2VuIC8gWXJraSIvPjxiciAvPjxzdWI+PGI+VGhvbWFzIFBldHRlcnNlbiAvIFlya2k8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj0iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tLzFrdmluIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ2NDI1OTgwP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJBcnRlbSIvPjxiciAvPjxzdWI+PGI+QXJ0ZW08L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0Exa3ZpbiIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL203Y2xhcmtlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3NDM5MTQ0P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJtN2NsYXJrZSIvPjxiciAvPjxzdWI+PGI+bTdjbGFya2U8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FtN2NsYXJrZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2tpcmlkZXMiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM2MDIxNDM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImtpcmlkZXMiLz48YnIgLz48c3ViPjxiPmtpcmlkZXM8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FraXJpZGVzIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1raXJpZGVzIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ3VpbGxhdW1lc2VyYWxlIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY2NzI0MDY/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Imd1aWxsYXVtZXNlcmFsZSIvPjxiciAvPjxzdWI+PGI+Z3VpbGxhdW1lc2VyYWxlPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Z3VpbGxhdW1lc2VyYWxlIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWd1aWxsYXVtZXNlcmFsZSIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1JvZmxpbmNvcHRlciI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjkwMjQzP3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEZW5uaXMgQnJlbnRqZXMiLz48YnIgLz48c3ViPjxiPkRlbm5pcyBCcmVudGplczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPVJvZmxpbmNvcHRlciIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+IDxhIGhyZWY9IiNpZGVhcy1Sb2ZsaW5jb3B0ZXIiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vaGlja2V5ZGFtaWFuLyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzQzNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGFtaWFuIEhpY2tleSIvPjxiciAvPjxzdWI+PGI+RGFtaWFuIEhpY2tleTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWRhbWlhbmgiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9yaWNoYXJkaHUtbG1nIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyNjQzMDc4Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0icmljaGFyZGh1LWxtZyIvPjxiciAvPjxzdWI+PGI+cmljaGFyZGh1LWxtZzwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQXJpY2hhcmRodS1sbWciIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9icmVhc2UtY29saW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDczNTg5MzU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9ImJyZWFzZS1jb2xpbiIvPjxiciAvPjxzdWI+PGI+YnJlYXNlLWNvbGluPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBYnJlYXNlLWNvbGluIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYW5nZWxvZmIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjAzMjI1Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYW5nZWxvZmIiLz48YnIgLz48c3ViPjxiPmFuZ2Vsb2ZiPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9YW5nZWxvZmIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL05vR1JvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2NjUyNzM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRpbSBOb2dybyIvPjxiciAvPjxzdWI+PGI+RGltIE5vZ3JvPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Tm9HUm8iIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS95YWRhbmlsb3YxOSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzE2MTA2NT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ieWFkYW5pbG92MTkiLz48YnIgLz48c3ViPjxiPnlhZGFuaWxvdjE5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSIjaWRlYXMteWFkYW5pbG92MTkiIHRpdGxlPSJJZGVhcywgUGxhbm5pbmcsICYgRmVlZGJhY2siPvCfpJQ8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFucG93ZWxsODgiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTEwMDM5Nz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGFuaWVsIFBvd2VsbCIvPjxiciAvPjxzdWI+PGI+RGFuaWVsIFBvd2VsbDwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWRhbnBvd2VsbDg4IiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwhLS0gbWFya2Rvd25saW50LXJlc3RvcmUgLS0+CjwhLS0gcHJldHRpZXItaWdub3JlLWVuZCAtLT4KCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1MSVNUOkVORCAtLT4KCiMKCkZvciB0aXBzIGFuZCB0cmlja3Mgb24gc29mdHdhcmUgZGV2ZWxvcG1lbnQsIGNoZWNrIG91dCBbbXkgYmxvZ10oaHR0cHM6Ly9jaHJpc3RpYW5oZWxsZS5jb20pCgpJZiB5b3UgZmluZCB0aGlzIHVzZWZ1bCBhbmQgZmVlbCBhIGJpdCBnZW5lcm91cyB0aGVuIGZlZWwgZnJlZSB0byBbYnV5IG1lIGEgY29mZmVlIOKYlV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkK - readmeEtag: '"1166004d25fa8d201e526d03bf4fe91fd841c35a4fd5d37f56bbe63759659181"' - readmeLastModified: Mon, 11 Sep 2023 08:53:14 GMT + WyFbQnVpbGRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbCkKWyFbU21va2UgVGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9hY3Rpb25zL3dvcmtmbG93cy9zbW9rZS10ZXN0cy55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2FjdGlvbnMvd29ya2Zsb3dzL3Ntb2tlLXRlc3RzLnltbCkKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9yZWZpdHRlcj9jb2xvcj1ibHVlKV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JlZml0dGVyKQpbIVtRdWFsaXR5IEdhdGUgU3RhdHVzXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9yZWZpdHRlciZtZXRyaWM9YWxlcnRfc3RhdHVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL3N1bW1hcnkvbmV3X2NvZGU/aWQ9Y2hyaXN0aWFuaGVsbGVfcmVmaXR0ZXIpClshW2NvZGVjb3ZdKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9ncmFwaC9iYWRnZS5zdmc/dG9rZW49MjQyWVQxTjZUMildKGh0dHBzOi8vY29kZWNvdi5pby9naC9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikKCjwhLS0gQUxMLUNPTlRSSUJVVE9SUy1CQURHRTpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KWyFbQWxsIENvbnRyaWJ1dG9yc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9hbGxfY29udHJpYnV0b3JzLTE3LW9yYW5nZS5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXSgjY29udHJpYnV0b3JzLSkKPCEtLSBBTEwtQ09OVFJJQlVUT1JTLUJBREdFOkVORCAtLT4KCiMgUmVmaXR0ZXIKUmVmaXR0ZXIgaXMgYSB0b29sIGZvciBnZW5lcmF0aW5nIGEgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBbUmVmaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGl2ZXVpL3JlZml0KSBsaWJyYXJ5LiBSZWZpdHRlciBjYW4gZ2VuZXJhdGUgdGhlIFJlZml0IGludGVyZmFjZSBhbmQgY29udHJhY3RzIGZyb20gT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gCgpSZWZpdHRlciBjb21lcyBpbiAyIGZvcm1zOgotIEEgWy5ORVQgQ0xJIFRvb2xdKCNjbGktdG9vbCkgZGlzdHJpYnV0ZWQgdmlhIFtudWdldC5vcmddKGh0dHA6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JlZml0dGVyKSB0aGF0IG91dHB1dHMgYSBzaW5nbGUgQyMgZmlsZSBvbiBkaXNrCi0gQSBbQyMgU291cmNlIEdlbmVyYXRvcl0oI3NvdXJjZS1nZW5lcmF0b3IpIHZpYSB0aGUgW1JlZml0dGVyLlNvdXJjZUdlbmVyYXRvcl0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmVmaXR0ZXIuc291cmNlZ2VuZXJhdG9yKSBwYWNrYWdlIHRoYXQgZ2VuZXJhdGVzIGNvZGUgb24gY29tcGlsZSB0aW1lIGJhc2VkIG9uIGEgWy5yZWZpdHRlcl0oIy5yZWZpdHRlci1maWxlLWZvcm1hdCkgd2l0aGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeS4KCiMjIENMSSBUb29sCgojIyMgSW5zdGFsbGF0aW9uOgoKVGhlIHRvb2wgaXMgcGFja2FnZWQgYXMgYSAuTkVUIFRvb2wgYW5kIGlzIHB1Ymxpc2hlZCB0byBudWdldC5vcmcuIFlvdSBjYW4gaW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyB0b29sIGxpa2UgdGhpczoKCmBgYHNoZWxsCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgUmVmaXR0ZXIKYGBgCgojIyMgVXNhZ2U6CgpgYGBzaGVsbAokIHJlZml0dGVyIC0taGVscApgYGAKCmBgYApVU0FHRToKICAgIHJlZml0dGVyIFtVUkwgb3IgaW5wdXQgZmlsZV0gW09QVElPTlNdCgpFWEFNUExFUzoKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uCiAgICByZWZpdHRlciBodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL2FwaS92My9vcGVuYXBpLnlhbWwKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tc2V0dGluZ3MtZmlsZSAuL29wZW5hcGkucmVmaXR0ZXIgLS1vdXRwdXQgLi9HZW5lcmF0ZWRDb2RlLmNzCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0tb3V0cHV0IC4vR2VuZXJhdGVkQ29kZS5jcwogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uYW1lc3BhY2UgIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIiAtLWludGVybmFsCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW91dHB1dCAuL0lHZW5lcmF0ZWRDb2RlLmNzIC0taW50ZXJmYWNlLW9ubHkKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tdXNlLWFwaS1yZXNwb25zZQogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1jYW5jZWxsYXRpb24tdG9rZW5zCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5vLW9wZXJhdGlvbi1oZWFkZXJzCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5vLWFjY2VwdC1oZWFkZXJzCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLXVzZS1pc28tZGF0ZS1mb3JtYXQKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tYWRkaXRpb25hbC1uYW1lc3BhY2UgIllvdXIuQWRkaXRpb25hbC5OYW1lc3BhY2UiIC0tYWRkaXRpb25hbC1uYW1lc3BhY2UgIllvdXIuT3RoZXIuQWRkaXRpb25hbC5OYW1lc3BhY2UiCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW11bHRpcGxlLWludGVyZmFjZXMgQnlFbmRwb2ludAogICAgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS10YWcgUGV0IC0tdGFnIFN0b3JlIC0tdGFnIFVzZXIKICAgIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbWF0Y2gtcGF0aCAnXi9wZXQvLionCiAgICByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5vLWRlcHJlY2F0ZWQtb3BlcmF0aW9ucwoKQVJHVU1FTlRTOgogICAgW1VSTCBvciBpbnB1dCBmaWxlXSAgICBVUkwgb3IgZmlsZSBwYXRoIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbiBmaWxlCgpPUFRJT05TOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRzIGhlbHAgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLXMsIC0tc2V0dGluZ3MtZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGF0aCB0byAucmVmaXR0ZXIgc2V0dGluZ3MgZmlsZS4gU3BlY2lmeWluZyB0aGlzIHdpbGwgaWdub3JlIGFsbCBvdGhlciBzZXR0aW5ncyAoZXhjZXB0IGZvciAtLW91dHB1dCkgICAgICAgIAogICAgLW4sIC0tbmFtZXNwYWNlICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlZENvZGUgICAgRGVmYXVsdCBuYW1lc3BhY2UgdG8gdXNlIGZvciBnZW5lcmF0ZWQgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLW8sIC0tb3V0cHV0ICAgICAgICAgICAgICAgICAgICAgIE91dHB1dC5jcyAgICAgICAgUGF0aCB0byBPdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbm8tYXV0by1nZW5lcmF0ZWQtaGVhZGVyICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgYWRkIDxhdXRvLWdlbmVyYXRlZD4gaGVhZGVyIHRvIG91dHB1dCBmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbm8tYWNjZXB0LWhlYWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgYWRkIDxBY2NlcHQ+IGhlYWRlciB0byBvdXRwdXQgZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0taW50ZXJmYWNlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgY29udHJhY3QgdHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tdXNlLWFwaS1yZXNwb25zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIFRhc2s8SUFwaVJlc3BvbnNlPFQ+PiBpbnN0ZWFkIG9mIFRhc2s8VD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0taW50ZXJuYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBhY2Nlc3NpYmlsaXR5IG9mIHRoZSBnZW5lcmF0ZWQgdHlwZXMgdG8gJ2ludGVybmFsJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tY2FuY2VsbGF0aW9uLXRva2VucyAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlIGNhbmNlbGxhdGlvbiB0b2tlbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbm8tb3BlcmF0aW9uLWhlYWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgb3BlcmF0aW9uIGhlYWRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbm8tbG9nZ2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgbG9nIGVycm9ycyBvciBjb2xsZWN0IHRlbGVtZXRyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tYWRkaXRpb25hbC1uYW1lc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIGFkZGl0aW9uYWwgbmFtZXNwYWNlIHRvIGdlbmVyYXRlZCB0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tdXNlLWlzby1kYXRlLWZvcm1hdCAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwbGljaXRseSBmb3JtYXQgZGF0ZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVycyBpbiBJU08gODYwMSBzdGFuZGFyZCBkYXRlIGZvcm1hdCB1c2luZyBkZWxpbWl0ZXJzICgyMDIzLTA2LTE1KQogICAgICAgIC0tbXVsdGlwbGUtaW50ZXJmYWNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgYSBSZWZpdCBpbnRlcmZhY2UgZm9yIGVhY2ggZW5kcG9pbnQuIE1heSBiZSBvbmUgb2YgQnlFbmRwb2ludCwgQnlUYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbWF0Y2gtcGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBpbmNsdWRlIFBhdGhzIHRoYXQgbWF0Y2ggdGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbi4gTWF5IGJlIHNldCBtdWx0aXBsZSB0aW1lcyAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tdGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT25seSBpbmNsdWRlIEVuZHBvaW50cyB0aGF0IGNvbnRhaW4gdGhpcyB0YWcuIE1heSBiZSBzZXQgbXVsdGlwbGUgdGltZXMgYW5kIHJlc3VsdCBpbiBPUidlZCBldmFsdWF0aW9uICAgICAgIAogICAgICAgIC0tc2tpcC12YWxpZGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCB2YWxpZGF0aW9uIG9mIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIC0tbm8tZGVwcmVjYXRlZC1vcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgZGVwcmVjYXRlZCBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApgYGAKClRvIGdlbmVyYXRlIGNvZGUgZnJvbSBhbiBPcGVuQVBJIHNwZWNpZmljYXRpb25zIGZpbGUsIHJ1biB0aGUgZm9sbG93aW5nOgoKYGBgc2hlbGwKJCByZWZpdHRlciBbcGF0aCB0byBPcGVuQVBJIHNwZWMgZmlsZV0gLS1uYW1lc3BhY2UgIltZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZV0iCmBgYAoKVGhpcyB3aWxsIGdlbmVyYXRlIGEgZmlsZSBjYWxsZWQgYE91dHB1dC5jc2Agd2hpY2ggY29udGFpbnMgdGhlIFJlZml0IGludGVyZmFjZSBhbmQgY29udHJhY3QgY2xhc3NlcyBnZW5lcmF0ZWQgdXNpbmcgW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKQoKIyMgU291cmNlIEdlbmVyYXRvcgoKUmVmaXR0ZXIgaXMgYXZhaWxhYmxlIGFzIGEgQyMgU291cmNlIEdlbmVyYXRvciB0aGF0IHVzZXMgdGhlIFtSZWZpdHRlci5Db3JlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIuY29yZSkgbGlicmFyeSBmb3IgZ2VuZXJhdGluZyBhIFJFU1QgQVBJIENsaWVudCB1c2luZyB0aGUgW1JlZml0XShodHRwczovL2dpdGh1Yi5jb20vcmVhY3RpdmV1aS9yZWZpdCkgbGlicmFyeS4gUmVmaXR0ZXIgY2FuIGdlbmVyYXRlIHRoZSBSZWZpdCBpbnRlcmZhY2UgZnJvbSBPcGVuQVBJIHNwZWNpZmljYXRpb25zCgpUaGUgUmVmaXR0ZXIgc291cmNlIGdlbmVyYXRvciBpcyBhIGJpdCB1bnRyYWRpdGlvbmFsIGluIGEgc2Vuc2UgdGhhdCBpdCBjcmVhdGVzIGEgZm9sZGVyIGNhbGxlZCBgR2VuZXJhdGVkYCBpbiB0aGUgc2FtZSBsb2NhdGlvbiBhcyB0aGUgYC5yZWZpdHRlcmAgZmlsZSBhbmQgZ2VuZXJhdGVzIGZpbGVzIHRvIGRpc2sgdW5kZXIgdGhlIGBHZW5lcmF0ZWRgIGZvbGRlci4gVGhlIHNvdXJjZSBnZW5lcmF0b3Igb3V0cHV0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcHJvamVjdCBhbmQgY29tbWl0dGVkIHRvIHNvdXJjZSBjb250cm9sLiBUaGlzIGlzIGRvbmUgYmVjYXVzZSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gdHJpZ2dlciB0aGUgUmVmaXQgc291cmNlIGdlbmVyYXRvciB0byBwaWNrdXAgdGhlIFJlZml0dGVyIGdlbmVyYXRlZCBjb2RlIAoKKioqKFRyYW5zbGF0aW9uOiBJIGNvdWxkbid0IGZvciB0aGUgbGlmZSBvZiBtZSBmaWd1cmUgaG93IHRvIGdldCB0aGF0IHRvIHdvcmssIHNvcnJ5KSoqKgoKIyMjIEluc3RhbGxhdGlvbgoKVGhlIHNvdXJjZSBnZW5lcmF0b3IgaXMgZGlzdHJpYnV0ZWQgYXMgYSBOdUdldCBwYWNrYWdlIGFuZCBzaG91bGQgYmUgaW5zdGFsbGVkIHRvIHRoZSBwcm9qZWN0IHRoYXQgd2lsbCBjb250YWluIHRoZSBnZW5lcmF0ZWQgY29kZQoKYGBgc2hlbGwKZG90bmV0IGFkZCBwYWNrYWdlIFJlZml0dGVyLlNvdXJjZUdlbmVyYXRvcgpgYGAKCiMjIyBVc2FnZQoKVGhpcyBzb3VyY2UgZ2VuZXJhdG9yIGdlbmVyYXRlcyBjb2RlIGJhc2VkIG9uIGFueSBgLnJlZml0dGVyYCBmaWxlIGluY2x1ZGVkIHRvIHRoZSBwcm9qZWN0IGFzIGBBZGRpdGlvbmFsRmlsZXNgLgoKVGhlIGdlbmVyYXRvciBjYW4gYXV0b21hdGljYWxseSBkZXRlY3QgYWxsIGAucmVmaXR0ZXJgIGZpbGVzIGluc2lkZSB0aGUgcHJvamVjdCB0aGF0IHJlZmVyZW5jZWQgdGhlIGBSZWZpdHRlci5Tb3VyY2VHZW5lcmF0b3JgIHBhY2thZ2UgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jbHVkZSB0aGVtIG1hbnVhbGx5IGFzIGBBZGRpdGlvbmFsRmlsZXNgCgojIyMgLlJlZml0dGVyIEZpbGUgZm9ybWF0CgpUaGUgZm9sbG93aW5nIGlzIGFuIGV4YW1wbGUgYC5yZWZpdHRlcmAgZmlsZQoKYGBganMKewogICJvcGVuQXBpUGF0aCI6ICIvcGF0aC90by95b3VyL29wZW5BUEkiLCAvLyBSZXF1aXJlZAogICJuYW1lc3BhY2UiOiAiT3JnLlN5c3RlbS5TZXJ2aWNlLkFwaS5HZW5lcmF0ZWRDb2RlIiwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9R2VuZXJhdGVkQ29kZQogICJuYW1pbmciOiB7CiAgICAidXNlT3BlbkFwaVRpdGxlIjogZmFsc2UsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAgICJpbnRlcmZhY2VOYW1lIjogIk15QXBpQ2xpZW50IiAvLyBPcHRpb25hbC4gRGVmYXVsdD1BcGlDbGllbnQKICB9LAogICJnZW5lcmF0ZUNvbnRyYWN0cyI6IHRydWUsIC8vIE9wdGlvbmFsLiBEZWZhdWx0PXRydWUKICAiZ2VuZXJhdGVYbWxEb2NDb2RlQ29tbWVudHMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgImFkZEF1dG9HZW5lcmF0ZWRIZWFkZXIiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgImFkZEFjY2VwdEhlYWRlcnMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgInJldHVybklBcGlSZXNwb25zZSI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD1mYWxzZQogICJnZW5lcmF0ZU9wZXJhdGlvbkhlYWRlcnMiOiB0cnVlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD10cnVlCiAgInR5cGVBY2Nlc3NpYmlsaXR5IjogIlB1YmxpYyIsIC8vIE9wdGlvbmFsLiBWYWx1ZXM9UHVibGljfEludGVybmFsLiBEZWZhdWx0PVB1YmxpYwogICJ1c2VDYW5jZWxsYXRpb25Ub2tlbnMiOiBmYWxzZSwgLy8gT3B0aW9uYWwuIERlZmF1bHQ9ZmFsc2UKICAidXNlSXNvRGF0ZUZvcm1hdCI6IGZhbHNlLCAvLyBPcHRpb25hbC4gRGVmYXVsdD1mYWxzZQogICJtdWx0aXBsZUludGVyZmFjZXMiOiAiQnlFbmRwb2ludCIsIC8vIE9wdGlvbmFsLiBNYXkgYmUgb25lIG9mICJCeUVuZHBvaW50IiBvciAiQnlUYWciCiAgImFkZGl0aW9uYWxOYW1lc3BhY2VzIjogWyAvLyBPcHRpb25hbAogICAgIk5hbWVzcGFjZTEiLAogICAgIk5hbWVzcGFjZTIiCiAgXSwKICAidGFnIjogWyAvLyBPcHRpb25hbC4gT3BlbkFQSSBUYWcgdG8gaW5jbHVkZSB3aGVuIGdlbmVyYXRpbmcgY29kZQogICAgIlBldCIsCiAgICAiU3RvcmUiLAogICAgIlVzZXIiCiAgXSwKICAibWF0Y2hQYXRoIjogWyAvLyBPcHRpb25hbC4gT25seSBpbmNsdWRlIFBhdGhzIHRoYXQgbWF0Y2ggdGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAgIl4vcGV0Ly4qIiwKICAgICJeL3N0b3JlLy4qIgogIF0KfQpgYGAKCi0gYG9wZW5BcGlQYXRoYCAtIHBvaW50cyB0byB0aGUgT3BlbkFQSSBTcGVjaWZpY2F0aW9ucyBmaWxlLiBUaGlzIGNhbiBiZSB0aGUgcGF0aCB0byBhIGZpbGUgc3RvcmVkIG9uIGRpc2ssIHJlbGF0aXZlIHRvIHRoZSBgLnJlZml0dGVyYCBmaWxlLiBUaGlzIGNhbiBhbHNvIGJlIGEgVVJMIHRvIGEgcmVtb3RlIGZpbGUgdGhhdCB3aWxsIGJlIGRvd25sb2FkZWQgb3ZlciBIVFRQL0hUVFBTCi0gYG5hbWVzcGFjZWAgLSB0aGUgbmFtZXNwYWNlIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGlzIGRlZmF1bHRzIHRvIGBHZW5lcmF0ZWRDb2RlYAotIGBuYW1pbmcudXNlT3BlbkFwaVRpdGxlYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIE9wZW5BcGkgdGl0bGUgc2hvdWxkIGJlIHVzZWQuIERlZmF1bHQgaXMgYHRydWVgCi0gYG5hbWluZy5pbnRlcmZhY2VOYW1lYCAtIHRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW50ZXJmYWNlLiBUaGUgZ2VuZXJhdGVkIGNvZGUgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZpeCB0aGlzIHdpdGggYElgIHNvIGlmIHRoaXMgc2V0IHRvIGBNeUFwaUNsaWVudGAgdGhlbiB0aGUgZ2VuZXJhdGVkIGludGVyZmFjZSBpcyBjYWxsZWQgYElNeUFwaUNsaWVudGAuIERlZmF1bHQgaXMgYEFwaUNsaWVudGAKLSBgZ2VuZXJhdGVDb250cmFjdHNgIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBjb250cmFjdHMgc2hvdWxkIGJlIGdlbmVyYXRlZC4gQSB1c2UgY2FzZSBmb3IgdGhpcyBpcyBzZXZlcmFsIEFQSSBjbGllbnRzIHVzZSB0aGUgc2FtZSBjb250cmFjdHMuIERlZmF1bHQgaXMgYHRydWVgCi0gYGdlbmVyYXRlWG1sRG9jQ29kZUNvbW1lbnRzYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgWE1MIGRvYyBjb21tZW50cyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBhZGRBdXRvR2VuZXJhdGVkSGVhZGVyYCAtIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgWE1MIGRvYyBjb21tZW50cyBzaG91bGQgYmUgZ2VuZXJhdGVkLiBEZWZhdWx0IGlzIGB0cnVlYAotIGBhZGRBY2NlcHRIZWFkZXJzYCAtICBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGFkZCBhY2NlcHQgaGVhZGVycyBbSGVhZGVycygiQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uIildLiBEZWZhdWx0IGlzIGB0cnVlYAotIGByZXR1cm5JQXBpUmVzcG9uc2VgIC0gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byByZXR1cm4gYElBcGlSZXNwb25zZTxUPmAgb2JqZWN0cy4gRGVmYXVsdCBpcyBgZmFsc2VgCi0gYGdlbmVyYXRlT3BlcmF0aW9uSGVhZGVyc2AgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIHVzZSBvcGVyYXRpb24gaGVhZGVycyBpbiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuIERlZmF1bHQgaXMgYHRydWVgCi0gYHR5cGVBY2Nlc3NpYmlsaXR5YCAtIHRoZSBnZW5lcmF0ZWQgdHlwZSBhY2Nlc3NpYmlsaXR5LiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGBQdWJsaWNgIGFuZCBgSW50ZXJuYWxgLiBEZWZhdWx0IGlzIGBQdWJsaWNgCi0gYHVzZUNhbmNlbGxhdGlvblRva2Vuc2AgLSBVc2UgY2FuY2VsbGF0aW9uIHRva2VucyBpbiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuIERlZmF1bHQgaXMgYGZhbHNlYAotIGB1c2VJc29EYXRlRm9ybWF0YCAtIFNldCB0byBgdHJ1ZWAgdG8gZXhwbGljaXRseSBmb3JtYXQgZGF0ZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVycyBpbiBJU08gODYwMSBzdGFuZGFyZCBkYXRlIGZvcm1hdCB1c2luZyBkZWxpbWl0ZXJzIChmb3IgZXhhbXBsZTogMjAyMy0wNi0xNSkuIERlZmF1bHQgaXMgYGZhbHNlYAotIGBtdWx0aXBsZUludGVyZmFjZXNgIC0gU2V0IHRvIGBCeUVuZHBvaW50YCB0byBnZW5lcmF0ZSBhbiBpbnRlcmZhY2UgZm9yIGVhY2ggZW5kcG9pbnQsIG9yIGBCeVRhZ2AgdG8gZ3JvdXAgRW5kcG9pbnRzIGJ5IHRoZWlyIFRhZyAobGlrZSBTd2FnZ2VyVUkgZ3JvdXBzIHRoZW0pLgotIGBhZGRpdGlvbmFsTmFtZXNwYWNlc2AgLSBBIGNvbGxlY3Rpb24gb2YgYWRkaXRpb25hbCBuYW1lc3BhY2VzIHRvIGluY2x1ZGUgaW4gdGhlIGdlbmVyYXRlZCBmaWxlLiBBIHVzZSBjYXNlIGZvciB0aGlzIGlzIHdoZW4geW91IHdhbnQgdG8gcmV1c2UgY29udHJhY3RzIGZyb20gYSBkaWZmZXJlbnQgbmFtZXNwYWNlIHRoYW4gdGhlIGdlbmVyYXRlZCBjb2RlLiBEZWZhdWx0IGlzIGVtcHR5Ci0gYHRhZ2AgLSBBIGNvbGxlY3Rpb24gb2YgdGFncyB0byB1c2UgYSBmaWx0ZXIgZm9yIGluY2x1ZGluZyBlbmRwb2ludHMgdGhhdCBjb250YWluIHRoaXMgdGFnLgotIGBtYXRjaC1wYXRoYCAtIEEgY29sbGVjdGlvbiBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgdG8gZmlsdGVyIHBhdGhzLiAKCgojIFVzaW5nIHRoZSBnZW5lcmF0ZWQgY29kZQoKSGVyZSdzIGFuIGV4YW1wbGUgZ2VuZXJhdGVkIG91dHB1dCBmcm9tIHRoZSBbU3dhZ2dlciBQZXRzdG9yZSBleGFtcGxlXShodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvKSB1c2luZyB0aGUgZGVmYXVsdCBzZXR0aW5ncwoKKipDTEkgVG9vbCoqCgpgYGBiYXNoCiQgcmVmaXR0ZXIgLi9vcGVuYXBpLmpzb24gLS1uYW1lc3BhY2UgIllvdXIuTmFtZXNwYWNlLk9mLkNob2ljZS5HZW5lcmF0ZWRDb2RlIgpgYGAKCioqU291cmNlIEdlbmVyYXRvciAqKioucmVmaXR0ZXIqKiogZmlsZSoqCgpgYGBqc29uCnsKICAib3BlbkFwaVBhdGgiOiAiLi9vcGVuYXBpLmpzb24iLAogICJuYW1lc3BhY2UiOiAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiCn0KYGBgCgoqKk91dHB1dCoqCgpgYGBjcwp1c2luZyBSZWZpdDsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpuYW1lc3BhY2UgWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUKewogICAgcHVibGljIGludGVyZmFjZSBJU3dhZ2dlclBldHN0b3JlCiAgICB7CiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBVcGRhdGUgYW4gZXhpc3RpbmcgcGV0IGJ5IElkCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUHV0KCIvcGV0IildCiAgICAgICAgVGFzazxQZXQ+IFVwZGF0ZVBldChbQm9keV0gUGV0IGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUG9zdCgiL3BldCIpXQogICAgICAgIFRhc2s8UGV0PiBBZGRQZXQoW0JvZHldIFBldCBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBNdWx0aXBsZSBzdGF0dXMgdmFsdWVzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvcGV0L2ZpbmRCeVN0YXR1cyIpXQogICAgICAgIFRhc2s8SUNvbGxlY3Rpb248UGV0Pj4gRmluZFBldHNCeVN0YXR1cyhbUXVlcnldIFN0YXR1cz8gc3RhdHVzKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBNdWx0aXBsZSB0YWdzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzLiBVc2UgdGFnMSwgdGFnMiwgdGFnMyBmb3IgdGVzdGluZy4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtHZXQoIi9wZXQvZmluZEJ5VGFncyIpXQogICAgICAgIFRhc2s8SUNvbGxlY3Rpb248UGV0Pj4gRmluZFBldHNCeVRhZ3MoW1F1ZXJ5KENvbGxlY3Rpb25Gb3JtYXQuTXVsdGkpXSBJRW51bWVyYWJsZTxzdHJpbmc+IHRhZ3MpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFJldHVybnMgYSBzaW5nbGUgcGV0CiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrPFBldD4gR2V0UGV0QnlJZChsb25nIHBldElkKTsKCiAgICAgICAgW1Bvc3QoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2sgVXBkYXRlUGV0V2l0aEZvcm0obG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgbmFtZSwgW1F1ZXJ5XSBzdHJpbmcgc3RhdHVzKTsKCiAgICAgICAgW0RlbGV0ZSgiL3BldC97cGV0SWR9IildCiAgICAgICAgVGFzayBEZWxldGVQZXQobG9uZyBwZXRJZCwgW0hlYWRlcigiYXBpX2tleSIpXSBzdHJpbmcgYXBpX2tleSk7CgogICAgICAgIFtQb3N0KCIvcGV0L3twZXRJZH0vdXBsb2FkSW1hZ2UiKV0KICAgICAgICBUYXNrPEFwaVJlc3BvbnNlPiBVcGxvYWRGaWxlKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIGFkZGl0aW9uYWxNZXRhZGF0YSwgU3RyZWFtUGFydCBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBSZXR1cm5zIGEgbWFwIG9mIHN0YXR1cyBjb2RlcyB0byBxdWFudGl0aWVzCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvc3RvcmUvaW52ZW50b3J5IildCiAgICAgICAgVGFzazxJRGljdGlvbmFyeTxzdHJpbmcsIGludD4+IEdldEludmVudG9yeSgpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFBsYWNlIGEgbmV3IG9yZGVyIGluIHRoZSBzdG9yZQogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Bvc3QoIi9zdG9yZS9vcmRlciIpXQogICAgICAgIFRhc2s8T3JkZXI+IFBsYWNlT3JkZXIoW0JvZHldIE9yZGVyIGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIEZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8PSA1IG9yID4gMTAuIE90aGVyIHZhbHVlcyB3aWxsIGdlbmVyYXRlZCBleGNlcHRpb25zCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvc3RvcmUvb3JkZXIve29yZGVySWR9IildCiAgICAgICAgVGFzazxPcmRlcj4gR2V0T3JkZXJCeUlkKGxvbmcgb3JkZXJJZCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gRm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDwgMTAwMC4gQW55dGhpbmcgYWJvdmUgMTAwMCBvciBub25pbnRlZ2VycyB3aWxsIGdlbmVyYXRlIEFQSSBlcnJvcnMKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtEZWxldGUoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgICAgICBUYXNrIERlbGV0ZU9yZGVyKGxvbmcgb3JkZXJJZCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvdXNlciIpXQogICAgICAgIFRhc2sgQ3JlYXRlVXNlcihbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheQogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Bvc3QoIi91c2VyL2NyZWF0ZVdpdGhMaXN0IildCiAgICAgICAgVGFzazxVc2VyPiBDcmVhdGVVc2Vyc1dpdGhMaXN0SW5wdXQoW0JvZHldIElFbnVtZXJhYmxlPFVzZXI+IGJvZHkpOwoKICAgICAgICBbR2V0KCIvdXNlci9sb2dpbiIpXQogICAgICAgIFRhc2s8c3RyaW5nPiBMb2dpblVzZXIoW1F1ZXJ5XSBzdHJpbmcgdXNlcm5hbWUsIFtRdWVyeV0gc3RyaW5nIHBhc3N3b3JkKTsKCiAgICAgICAgW0dldCgiL3VzZXIvbG9nb3V0IildCiAgICAgICAgVGFzayBMb2dvdXRVc2VyKCk7CgogICAgICAgIFtHZXQoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgICAgICBUYXNrPFVzZXI+IEdldFVzZXJCeU5hbWUoc3RyaW5nIHVzZXJuYW1lKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgVXBkYXRlVXNlcihzdHJpbmcgdXNlcm5hbWUsIFtCb2R5XSBVc2VyIGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbRGVsZXRlKCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzayBEZWxldGVVc2VyKHN0cmluZyB1c2VybmFtZSk7CiAgICB9Cn0KYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBnZW5lcmF0ZWQgb3V0cHV0IGZyb20gdGhlIFtTd2FnZ2VyIFBldHN0b3JlIGV4YW1wbGVdKGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8pIGNvbmZpZ3VyZWQgdG8gd3JhcCB0aGUgcmV0dXJuIHR5cGUgaW4gYElBcGlSZXNwb25zZTxUPmAKCioqQ0xJIFRvb2wqKgoKYGBgYmFzaAokIHJlZml0dGVyIC4vb3BlbmFwaS5qc29uIC0tbmFtZXNwYWNlICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIgLS11c2UtYXBpLXJlc3BvbnNlCmBgYAoKKipTb3VyY2UgR2VuZXJhdG9yICoqKi5yZWZpdHRlcioqKiBmaWxlKioKCmBgYGpzb24KewogICJvcGVuQXBpUGF0aCI6ICIuL29wZW5hcGkuanNvbiIsCiAgIm5hbWVzcGFjZSI6ICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIsCiAgInJldHVybklBcGlSZXNwb25zZSI6IHRydWUKfQpgYGAKCioqT3V0cHV0KioKCmBgYGNzCnVzaW5nIFJlZml0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCm5hbWVzcGFjZSBZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZS5XaXRoQXBpUmVzcG9uc2UKewogICAgcHVibGljIGludGVyZmFjZSBJU3dhZ2dlclBldHN0b3JlCiAgICB7CiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBVcGRhdGUgYW4gZXhpc3RpbmcgcGV0IGJ5IElkCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUHV0KCIvcGV0IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8UGV0Pj4gVXBkYXRlUGV0KFtCb2R5XSBQZXQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gQWRkIGEgbmV3IHBldCB0byB0aGUgc3RvcmUKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvcGV0IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8UGV0Pj4gQWRkUGV0KFtCb2R5XSBQZXQgYm9keSk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gTXVsdGlwbGUgc3RhdHVzIHZhbHVlcyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3BldC9maW5kQnlTdGF0dXMiKV0KICAgICAgICBUYXNrPElBcGlSZXNwb25zZTxJQ29sbGVjdGlvbjxQZXQ+Pj4gRmluZFBldHNCeVN0YXR1cyhbUXVlcnldIFN0YXR1cz8gc3RhdHVzKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBNdWx0aXBsZSB0YWdzIGNhbiBiZSBwcm92aWRlZCB3aXRoIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdzLiBVc2UgdGFnMSwgdGFnMiwgdGFnMyBmb3IgdGVzdGluZy4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtHZXQoIi9wZXQvZmluZEJ5VGFncyIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPElDb2xsZWN0aW9uPFBldD4+PiBGaW5kUGV0c0J5VGFncyhbUXVlcnkoQ29sbGVjdGlvbkZvcm1hdC5NdWx0aSldIElFbnVtZXJhYmxlPHN0cmluZz4gdGFncyk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gUmV0dXJucyBhIHNpbmdsZSBwZXQKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtHZXQoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPFBldD4+IEdldFBldEJ5SWQobG9uZyBwZXRJZCk7CgogICAgICAgIFtQb3N0KCIvcGV0L3twZXRJZH0iKV0KICAgICAgICBUYXNrIFVwZGF0ZVBldFdpdGhGb3JtKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIG5hbWUsIFtRdWVyeV0gc3RyaW5nIHN0YXR1cyk7CgogICAgICAgIFtEZWxldGUoIi9wZXQve3BldElkfSIpXQogICAgICAgIFRhc2sgRGVsZXRlUGV0KGxvbmcgcGV0SWQsIFtIZWFkZXIoImFwaV9rZXkiKV0gc3RyaW5nIGFwaV9rZXkpOwoKICAgICAgICBbUG9zdCgiL3BldC97cGV0SWR9L3VwbG9hZEltYWdlIildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8QXBpUmVzcG9uc2U+PiBVcGxvYWRGaWxlKGxvbmcgcGV0SWQsIFtRdWVyeV0gc3RyaW5nIGFkZGl0aW9uYWxNZXRhZGF0YSwgU3RyZWFtUGFydCBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBSZXR1cm5zIGEgbWFwIG9mIHN0YXR1cyBjb2RlcyB0byBxdWFudGl0aWVzCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbR2V0KCIvc3RvcmUvaW52ZW50b3J5IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8SURpY3Rpb25hcnk8c3RyaW5nLCBpbnQ+Pj4gR2V0SW52ZW50b3J5KCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gUGxhY2UgYSBuZXcgb3JkZXIgaW4gdGhlIHN0b3JlCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbUG9zdCgiL3N0b3JlL29yZGVyIildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8T3JkZXI+PiBQbGFjZU9yZGVyKFtCb2R5XSBPcmRlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBGb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPD0gNSBvciA+IDEwLiBPdGhlciB2YWx1ZXMgd2lsbCBnZW5lcmF0ZWQgZXhjZXB0aW9ucwogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW0dldCgiL3N0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgICAgIFRhc2s8SUFwaVJlc3BvbnNlPE9yZGVyPj4gR2V0T3JkZXJCeUlkKGxvbmcgb3JkZXJJZCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gRm9yIHZhbGlkIHJlc3BvbnNlIHRyeSBpbnRlZ2VyIElEcyB3aXRoIHZhbHVlIDwgMTAwMC4gQW55dGhpbmcgYWJvdmUgMTAwMCBvciBub25pbnRlZ2VycyB3aWxsIGdlbmVyYXRlIEFQSSBlcnJvcnMKICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtEZWxldGUoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgICAgICBUYXNrIERlbGV0ZU9yZGVyKGxvbmcgb3JkZXJJZCk7CgogICAgICAgIC8vLyA8c3VtbWFyeT4KICAgICAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgICAgICAvLy8gPC9zdW1tYXJ5PgogICAgICAgIFtQb3N0KCIvdXNlciIpXQogICAgICAgIFRhc2sgQ3JlYXRlVXNlcihbQm9keV0gVXNlciBib2R5KTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBDcmVhdGVzIGxpc3Qgb2YgdXNlcnMgd2l0aCBnaXZlbiBpbnB1dCBhcnJheQogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1Bvc3QoIi91c2VyL2NyZWF0ZVdpdGhMaXN0IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8VXNlcj4+IENyZWF0ZVVzZXJzV2l0aExpc3RJbnB1dChbQm9keV0gSUVudW1lcmFibGU8VXNlcj4gYm9keSk7CgogICAgICAgIFtHZXQoIi91c2VyL2xvZ2luIildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8c3RyaW5nPj4gTG9naW5Vc2VyKFtRdWVyeV0gc3RyaW5nIHVzZXJuYW1lLCBbUXVlcnldIHN0cmluZyBwYXNzd29yZCk7CgogICAgICAgIFtHZXQoIi91c2VyL2xvZ291dCIpXQogICAgICAgIFRhc2sgTG9nb3V0VXNlcigpOwoKICAgICAgICBbR2V0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzazxJQXBpUmVzcG9uc2U8VXNlcj4+IEdldFVzZXJCeU5hbWUoc3RyaW5nIHVzZXJuYW1lKTsKCiAgICAgICAgLy8vIDxzdW1tYXJ5PgogICAgICAgIC8vLyBUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLgogICAgICAgIC8vLyA8L3N1bW1hcnk+CiAgICAgICAgW1B1dCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgICAgIFRhc2sgVXBkYXRlVXNlcihzdHJpbmcgdXNlcm5hbWUsIFtCb2R5XSBVc2VyIGJvZHkpOwoKICAgICAgICAvLy8gPHN1bW1hcnk+CiAgICAgICAgLy8vIFRoaXMgY2FuIG9ubHkgYmUgZG9uZSBieSB0aGUgbG9nZ2VkIGluIHVzZXIuCiAgICAgICAgLy8vIDwvc3VtbWFyeT4KICAgICAgICBbRGVsZXRlKCIvdXNlci97dXNlcm5hbWV9IildCiAgICAgICAgVGFzayBEZWxldGVVc2VyKHN0cmluZyB1c2VybmFtZSk7CiAgICB9Cn0KYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBnZW5lcmF0ZWQgb3V0cHV0IGZyb20gdGhlIFtTd2FnZ2VyIFBldHN0b3JlIGV4YW1wbGVdKGh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8pIGNvbmZpZ3VyZWQgdG8gZ2VuZXJhdGUgYW4gaW50ZXJmYWNlIGZvciBlYWNoIGVuZHBvaW50CgoqKkNMSSBUb29sKioKCmBgYGJhc2gKJCByZWZpdHRlciAuL29wZW5hcGkuanNvbiAtLW5hbWVzcGFjZSAiWW91ci5OYW1lc3BhY2UuT2YuQ2hvaWNlLkdlbmVyYXRlZENvZGUiIC0tbXVsdGlwbGUtaW50ZXJmYWNlcyBCeUVuZHBvaW50CmBgYAoKKipTb3VyY2UgR2VuZXJhdG9yICoqKi5yZWZpdHRlcioqKiBmaWxlKioKCmBgYGpzb24KewogICJvcGVuQXBpUGF0aCI6ICIuL29wZW5hcGkuanNvbiIsCiAgIm5hbWVzcGFjZSI6ICJZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZSIsCiAgIm11bHRpcGxlSW50ZXJmYWNlcyI6ICJCeUVuZHBvaW50Igp9CmBgYAoKKipPdXRwdXQqKgoKYGBgY3MKLy8vIDxzdW1tYXJ5PgovLy8gVXBkYXRlIGFuIGV4aXN0aW5nIHBldAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElVcGRhdGVQZXRFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gVXBkYXRlIGFuIGV4aXN0aW5nIHBldCBieSBJZAogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtQdXQoIi9wZXQiKV0KICAgIFRhc2s8UGV0PiBFeGVjdXRlKFtCb2R5XSBQZXQgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIEFkZCBhIG5ldyBwZXQgdG8gdGhlIHN0b3JlCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUFkZFBldEVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBBZGQgYSBuZXcgcGV0IHRvIHRoZSBzdG9yZQogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtQb3N0KCIvcGV0IildCiAgICBUYXNrPFBldD4gRXhlY3V0ZShbQm9keV0gUGV0IGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBGaW5kcyBQZXRzIGJ5IHN0YXR1cwovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElGaW5kUGV0c0J5U3RhdHVzRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIE11bHRpcGxlIHN0YXR1cyB2YWx1ZXMgY2FuIGJlIHByb3ZpZGVkIHdpdGggY29tbWEgc2VwYXJhdGVkIHN0cmluZ3MKICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbR2V0KCIvcGV0L2ZpbmRCeVN0YXR1cyIpXQogICAgVGFzazxJQ29sbGVjdGlvbjxQZXQ+PiBFeGVjdXRlKFtRdWVyeV0gU3RhdHVzPyBzdGF0dXMpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBGaW5kcyBQZXRzIGJ5IHRhZ3MKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJRmluZFBldHNCeVRhZ3NFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gTXVsdGlwbGUgdGFncyBjYW4gYmUgcHJvdmlkZWQgd2l0aCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5ncy4gVXNlIHRhZzEsIHRhZzIsIHRhZzMgZm9yIHRlc3RpbmcuCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW0dldCgiL3BldC9maW5kQnlUYWdzIildCiAgICBUYXNrPElDb2xsZWN0aW9uPFBldD4+IEV4ZWN1dGUoW1F1ZXJ5KENvbGxlY3Rpb25Gb3JtYXQuTXVsdGkpXSBJRW51bWVyYWJsZTxzdHJpbmc+IHRhZ3MpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBGaW5kIHBldCBieSBJRAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElHZXRQZXRCeUlkRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFJldHVybnMgYSBzaW5nbGUgcGV0CiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW0dldCgiL3BldC97cGV0SWR9IildCiAgICBUYXNrPFBldD4gRXhlY3V0ZShsb25nIHBldElkKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gVXBkYXRlcyBhIHBldCBpbiB0aGUgc3RvcmUgd2l0aCBmb3JtIGRhdGEKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJVXBkYXRlUGV0V2l0aEZvcm1FbmRwb2ludAp7CiAgICBbUG9zdCgiL3BldC97cGV0SWR9IildCiAgICBUYXNrIEV4ZWN1dGUobG9uZyBwZXRJZCwgW1F1ZXJ5XSBzdHJpbmcgbmFtZSwgW1F1ZXJ5XSBzdHJpbmcgc3RhdHVzKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRGVsZXRlcyBhIHBldAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElEZWxldGVQZXRFbmRwb2ludAp7CiAgICBbRGVsZXRlKCIvcGV0L3twZXRJZH0iKV0KICAgIFRhc2sgRXhlY3V0ZShsb25nIHBldElkLCBbSGVhZGVyKCJhcGlfa2V5IildIHN0cmluZyBhcGlfa2V5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gdXBsb2FkcyBhbiBpbWFnZQovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElVcGxvYWRGaWxlRW5kcG9pbnQKewogICAgW1Bvc3QoIi9wZXQve3BldElkfS91cGxvYWRJbWFnZSIpXQogICAgVGFzazxBcGlSZXNwb25zZT4gRXhlY3V0ZShsb25nIHBldElkLCBbUXVlcnldIHN0cmluZyBhZGRpdGlvbmFsTWV0YWRhdGEsIFN0cmVhbVBhcnQgYm9keSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIFJldHVybnMgcGV0IGludmVudG9yaWVzIGJ5IHN0YXR1cwovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElHZXRJbnZlbnRvcnlFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gUmV0dXJucyBhIG1hcCBvZiBzdGF0dXMgY29kZXMgdG8gcXVhbnRpdGllcwogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtHZXQoIi9zdG9yZS9pbnZlbnRvcnkiKV0KICAgIFRhc2s8SURpY3Rpb25hcnk8c3RyaW5nLCBpbnQ+PiBFeGVjdXRlKCk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIFBsYWNlIGFuIG9yZGVyIGZvciBhIHBldAovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElQbGFjZU9yZGVyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIFBsYWNlIGEgbmV3IG9yZGVyIGluIHRoZSBzdG9yZQogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtQb3N0KCIvc3RvcmUvb3JkZXIiKV0KICAgIFRhc2s8T3JkZXI+IEV4ZWN1dGUoW0JvZHldIE9yZGVyIGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBGaW5kIHB1cmNoYXNlIG9yZGVyIGJ5IElECi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUdldE9yZGVyQnlJZEVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBGb3IgdmFsaWQgcmVzcG9uc2UgdHJ5IGludGVnZXIgSURzIHdpdGggdmFsdWUgPD0gNSBvciA+IDEwLiBPdGhlciB2YWx1ZXMgd2lsbCBnZW5lcmF0ZWQgZXhjZXB0aW9ucwogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtHZXQoIi9zdG9yZS9vcmRlci97b3JkZXJJZH0iKV0KICAgIFRhc2s8T3JkZXI+IEV4ZWN1dGUobG9uZyBvcmRlcklkKTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRGVsZXRlIHB1cmNoYXNlIG9yZGVyIGJ5IElECi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSURlbGV0ZU9yZGVyRW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIEZvciB2YWxpZCByZXNwb25zZSB0cnkgaW50ZWdlciBJRHMgd2l0aCB2YWx1ZSA8IDEwMDAuIEFueXRoaW5nIGFib3ZlIDEwMDAgb3Igbm9uaW50ZWdlcnMgd2lsbCBnZW5lcmF0ZSBBUEkgZXJyb3JzCiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW0RlbGV0ZSgiL3N0b3JlL29yZGVyL3tvcmRlcklkfSIpXQogICAgVGFzayBFeGVjdXRlKGxvbmcgb3JkZXJJZCk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIENyZWF0ZSB1c2VyCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUNyZWF0ZVVzZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUG9zdCgiL3VzZXIiKV0KICAgIFRhc2sgRXhlY3V0ZShbQm9keV0gVXNlciBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gQ3JlYXRlcyBsaXN0IG9mIHVzZXJzIHdpdGggZ2l2ZW4gaW5wdXQgYXJyYXkKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJQ3JlYXRlVXNlcnNXaXRoTGlzdElucHV0RW5kcG9pbnQKewogICAgLy8vIDxzdW1tYXJ5PgogICAgLy8vIENyZWF0ZXMgbGlzdCBvZiB1c2VycyB3aXRoIGdpdmVuIGlucHV0IGFycmF5CiAgICAvLy8gPC9zdW1tYXJ5PgogICAgW1Bvc3QoIi91c2VyL2NyZWF0ZVdpdGhMaXN0IildCiAgICBUYXNrPFVzZXI+IEV4ZWN1dGUoW0JvZHldIElFbnVtZXJhYmxlPFVzZXI+IGJvZHkpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBMb2dzIHVzZXIgaW50byB0aGUgc3lzdGVtCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSUxvZ2luVXNlckVuZHBvaW50CnsKICAgIFtHZXQoIi91c2VyL2xvZ2luIildCiAgICBUYXNrPHN0cmluZz4gRXhlY3V0ZShbUXVlcnldIHN0cmluZyB1c2VybmFtZSwgW1F1ZXJ5XSBzdHJpbmcgcGFzc3dvcmQpOwp9CgovLy8gPHN1bW1hcnk+Ci8vLyBMb2dzIG91dCBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHNlc3Npb24KLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJTG9nb3V0VXNlckVuZHBvaW50CnsKICAgIFtHZXQoIi91c2VyL2xvZ291dCIpXQogICAgVGFzayBFeGVjdXRlKCk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIEdldCB1c2VyIGJ5IHVzZXIgbmFtZQovLy8gPC9zdW1tYXJ5PgpwdWJsaWMgaW50ZXJmYWNlIElHZXRVc2VyQnlOYW1lRW5kcG9pbnQKewogICAgW0dldCgiL3VzZXIve3VzZXJuYW1lfSIpXQogICAgVGFzazxVc2VyPiBFeGVjdXRlKHN0cmluZyB1c2VybmFtZSk7Cn0KCi8vLyA8c3VtbWFyeT4KLy8vIFVwZGF0ZSB1c2VyCi8vLyA8L3N1bW1hcnk+CnB1YmxpYyBpbnRlcmZhY2UgSVVwZGF0ZVVzZXJFbmRwb2ludAp7CiAgICAvLy8gPHN1bW1hcnk+CiAgICAvLy8gVGhpcyBjYW4gb25seSBiZSBkb25lIGJ5IHRoZSBsb2dnZWQgaW4gdXNlci4KICAgIC8vLyA8L3N1bW1hcnk+CiAgICBbUHV0KCIvdXNlci97dXNlcm5hbWV9IildCiAgICBUYXNrIEV4ZWN1dGUoc3RyaW5nIHVzZXJuYW1lLCBbQm9keV0gVXNlciBib2R5KTsKfQoKLy8vIDxzdW1tYXJ5PgovLy8gRGVsZXRlIHVzZXIKLy8vIDwvc3VtbWFyeT4KcHVibGljIGludGVyZmFjZSBJRGVsZXRlVXNlckVuZHBvaW50CnsKICAgIC8vLyA8c3VtbWFyeT4KICAgIC8vLyBUaGlzIGNhbiBvbmx5IGJlIGRvbmUgYnkgdGhlIGxvZ2dlZCBpbiB1c2VyLgogICAgLy8vIDwvc3VtbWFyeT4KICAgIFtEZWxldGUoIi91c2VyL3t1c2VybmFtZX0iKV0KICAgIFRhc2sgRXhlY3V0ZShzdHJpbmcgdXNlcm5hbWUpOwp9CmBgYAoKIyMgUmVzdFNlcnZpY2UKCkhlcmUncyBhbiBleGFtcGxlIHVzYWdlIG9mIHRoZSBnZW5lcmF0ZWQgY29kZSBhYm92ZQoKYGBgY3MKdXNpbmcgUmVmaXQ7CnVzaW5nIFN5c3RlbTsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKCm5hbWVzcGFjZSBZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZTsKCmludGVybmFsIGNsYXNzIFByb2dyYW0KewogICAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgVGFzayBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgdmFyIGNsaWVudCA9IFJlc3RTZXJ2aWNlLkZvcjxJU3dhZ2dlclBldHN0b3JlPigiaHR0cHM6Ly9wZXRzdG9yZTMuc3dhZ2dlci5pby9hcGkvdjMiKTsKICAgICAgICB2YXIgcGV0ID0gYXdhaXQgY2xpZW50LkdldFBldEJ5SWQoMSk7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIjIyBVc2luZyBUYXNrPFQ+IGFzIHJldHVybiB0eXBlICMjIik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJOYW1lOiB7cGV0Lk5hbWV9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJDYXRlZ29yeToge3BldC5DYXRlZ29yeS5OYW1lfSIpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCQiU3RhdHVzOiB7cGV0LlN0YXR1c30iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwoKICAgICAgICB2YXIgY2xpZW50MiA9IFJlc3RTZXJ2aWNlLkZvcjxXaXRoQXBpUmVzcG9uc2UuSVN3YWdnZXJQZXRzdG9yZT4oImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzIik7CiAgICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgY2xpZW50Mi5HZXRQZXRCeUlkKDIpOwoKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiIyMgVXNpbmcgVGFzazxJQXBpUmVzcG9uc2U8VD4+IGFzIHJldHVybiB0eXBlICMjIik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJIVFRQIFN0YXR1cyBDb2RlOiB7cmVzcG9uc2UuU3RhdHVzQ29kZX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIk5hbWU6IHtyZXNwb25zZS5Db250ZW50Lk5hbWV9Iik7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoJCJDYXRlZ29yeToge3Jlc3BvbnNlLkNvbnRlbnQuQ2F0ZWdvcnkuTmFtZX0iKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgkIlN0YXR1czoge3Jlc3BvbnNlLkNvbnRlbnQuU3RhdHVzfSIpOwogICAgfQp9CmBgYAoKVGhlIGBSZXN0U2VydmljZWAgY2xhc3MgZ2VuZXJhdGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIGBJU3dhZ2dlclBldHN0b3JlYCB0aGF0IHVzZXMgYEh0dHBDbGllbnRgIHRvIG1ha2UgaXRzIGNhbGxzLiAKClRoZSBjb2RlIGFib3ZlIHdoZW4gcnVuIHdpbGwgb3V0cHV0IHNvbWV0aGluZyBsaWtlIHRoaXM6CgpgYGAKIyMgVXNpbmcgVGFzazxUPiBhcyByZXR1cm4gdHlwZSAjIwpOYW1lOiBHYXRpdG90b3RvdG8KQ2F0ZWdvcnk6IENoYXVjaXRvClN0YXR1czogU29sZAoKIyMgVXNpbmcgVGFzazxJQXBpUmVzcG9uc2U8VD4+IGFzIHJldHVybiB0eXBlICMjCkhUVFAgU3RhdHVzIENvZGU6IE9LCk5hbWU6IEdhdGl0b3RvdG90bwpDYXRlZ29yeTogQ2hhdWNpdG8KU3RhdHVzOiBTb2xkCmBgYAoKIyMgQVNQLk5FVCBDb3JlIGFuZCBIdHRwQ2xpZW50RmFjdG9yeQoKSGVyZSdzIGFuIGV4YW1wbGUgTWluaW1hbCBBUEkgd2l0aCB0aGUgW2BSZWZpdC5IdHRwQ2xpZW50RmFjdG9yeWBdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdC5IdHRwQ2xpZW50RmFjdG9yeSkgbGlicmFyeToKCmBgYGNzCnVzaW5nIFJlZml0Owp1c2luZyBZb3VyLk5hbWVzcGFjZS5PZi5DaG9pY2UuR2VuZXJhdGVkQ29kZTsKCnZhciBidWlsZGVyID0gV2ViQXBwbGljYXRpb24uQ3JlYXRlQnVpbGRlcihhcmdzKTsKYnVpbGRlci5TZXJ2aWNlcy5BZGRFbmRwb2ludHNBcGlFeHBsb3JlcigpOwpidWlsZGVyLlNlcnZpY2VzLkFkZFN3YWdnZXJHZW4oKTsKYnVpbGRlci5TZXJ2aWNlcwogICAgLkFkZFJlZml0Q2xpZW50PElTd2FnZ2VyUGV0c3RvcmU+KCkKICAgIC5Db25maWd1cmVIdHRwQ2xpZW50KGMgPT4gYy5CYXNlQWRkcmVzcyA9IG5ldyBVcmkoImh0dHBzOi8vcGV0c3RvcmUzLnN3YWdnZXIuaW8vYXBpL3YzIikpOwoKdmFyIGFwcCA9IGJ1aWxkZXIuQnVpbGQoKTsKYXBwLk1hcEdldCgKICAgICAgICAiL3BldC97aWQ6bG9uZ30iLAogICAgICAgIGFzeW5jIChJU3dhZ2dlclBldHN0b3JlIHBldHN0b3JlLCBsb25nIGlkKSA9PgogICAgICAgIHsKICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRzLk9rKGF3YWl0IHBldHN0b3JlLkdldFBldEJ5SWQoaWQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoUmVmaXQuQXBpRXhjZXB0aW9uIGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHRzLlN0YXR1c0NvZGUoKGludCllLlN0YXR1c0NvZGUpOwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgIC5XaXRoTmFtZSgiR2V0UGV0QnlJZCIpCiAgICAuV2l0aE9wZW5BcGkoKTsKCmFwcC5Vc2VIdHRwc1JlZGlyZWN0aW9uKCk7CmFwcC5Vc2VTd2FnZ2VyVUkoKTsKYXBwLlVzZVN3YWdnZXIoKTsKYXBwLlJ1bigpOwpgYGAKCi5ORVQgQ29yZSBzdXBwb3J0cyByZWdpc3RlcmluZyB0aGUgZ2VuZXJhdGVkIGBJU3dhZ2dlclBldHN0b3JlYCBpbnRlcmZhY2UgdmlhIGBIdHRwQ2xpZW50RmFjdG9yeWAKClRoZSBmb2xsb3dpbmcgcmVxdWVzdCB0byB0aGUgQVBJIGFib3ZlCmBgYHNoZWxsCiQgY3VybCAtWCAnR0VUJyAnaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMS9wZXQvMScgLUggJ2FjY2VwdDogYXBwbGljYXRpb24vanNvbicKYGBgCgpSZXR1cm5zIGEgcmVzcG9uc2UgdGhhdCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGlzOgpgYGBqc29uCnsKICAiaWQiOiAxLAogICJuYW1lIjogIlNwZWNpYWxfY2hhcl9vd25lcl8hQCMkXiYoKWAudGVzdGluZyIsCiAgInBob3RvVXJscyI6IFsKICAgICJodHRwczovL3BldHN0b3JlMy5zd2FnZ2VyLmlvL3Jlc291cmNlcy9waG90b3MvNjIzMzg5MDk1LmpwZyIKICBdLAogICJ0YWdzIjogW10sCiAgInN0YXR1cyI6ICJTb2xkIgp9CmBgYAoKIyMgU3lzdGVtIHJlcXVpcmVtZW50cwouTkVUIDYuMCAoTFRTKQoKIyMgQ29udHJpYnV0b3JzCgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpTVEFSVCAtIERvIG5vdCByZW1vdmUgb3IgbW9kaWZ5IHRoaXMgc2VjdGlvbiAtLT4KPCEtLSBwcmV0dGllci1pZ25vcmUtc3RhcnQgLS0+CjwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgLS0+Cjx0YWJsZT4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL25lb0dlbmV2YSI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MDQ3MjQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlBoaWxpcCBDb3giLz48YnIgLz48c3ViPjxiPlBoaWxpcCBDb3g8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1uZW9HZW5ldmEiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9jYW0ubWFjZmFyLmxhbmQvIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyOTg4NDc/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkNhbWVyb24gTWFjRmFybGFuZCIvPjxiciAvPjxzdWI+PGI+Q2FtZXJvbiBNYWNGYXJsYW5kPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9ZGlzdGFudGNhbSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwOi8va2dhbWUudHciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzY0NjUzMj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ia2dhbWUiLz48YnIgLz48c3ViPjxiPmtnYW1lPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9a2dhbWVjYXJ0ZXIiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cDovL3lya2kubm8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE1NzM2MDE/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IlRob21hcyBQZXR0ZXJzZW4gLyBZcmtpIi8+PGJyIC8+PHN1Yj48Yj5UaG9tYXMgUGV0dGVyc2VuIC8gWXJraTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPSIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vMWt2aW4iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDY0MjU5ODA/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkFydGVtIi8+PGJyIC8+PHN1Yj48Yj5BcnRlbTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQTFrdmluIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vbTdjbGFya2UiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDc0MzkxNDQ/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9Im03Y2xhcmtlIi8+PGJyIC8+PHN1Yj48Yj5tN2NsYXJrZTwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQW03Y2xhcmtlIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20va2lyaWRlcyI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzYwMjE0Mz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0ia2lyaWRlcyIvPjxiciAvPjxzdWI+PGI+a2lyaWRlczwvYj48L3N1Yj48L2E+PGJyIC8+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQWtpcmlkZXMiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2NvbW1pdHM/YXV0aG9yPWtpcmlkZXMiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ndWlsbGF1bWVzZXJhbGUiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjY3MjQwNj92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iZ3VpbGxhdW1lc2VyYWxlIi8+PGJyIC8+PHN1Yj48Yj5ndWlsbGF1bWVzZXJhbGU8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1ndWlsbGF1bWVzZXJhbGUiIHRpdGxlPSJDb2RlIj7wn5K7PC9hPiA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBZ3VpbGxhdW1lc2VyYWxlIiB0aXRsZT0iQnVnIHJlcG9ydHMiPvCfkJs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vUm9mbGluY29wdGVyIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE2OTAyNDM/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkRlbm5pcyBCcmVudGplcyIvPjxiciAvPjxzdWI+PGI+RGVubmlzIEJyZW50amVzPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9Um9mbGluY29wdGVyIiB0aXRsZT0iQ29kZSI+8J+SuzwvYT4gPGEgaHJlZj0iI2lkZWFzLVJvZmxpbmNvcHRlciIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9oaWNrZXlkYW1pYW4vIj48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU3NDM2P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYW1pYW4gSGlja2V5Ii8+PGJyIC8+PHN1Yj48Yj5EYW1pYW4gSGlja2V5PC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBZGFtaWFuaCIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3JpY2hhcmRodS1sbWciPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTI2NDMwNzg3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJyaWNoYXJkaHUtbG1nIi8+PGJyIC8+PHN1Yj48Yj5yaWNoYXJkaHUtbG1nPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBcmljaGFyZGh1LWxtZyIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2JyZWFzZS1jb2xpbiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NzM1ODkzNT92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iYnJlYXNlLWNvbGluIi8+PGJyIC8+PHN1Yj48Yj5icmVhc2UtY29saW48L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9pc3N1ZXM/cT1hdXRob3IlM0FicmVhc2UtY29saW4iIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbmdlbG9mYiI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMDMyMjU3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJhbmdlbG9mYiIvPjxiciAvPjxzdWI+PGI+YW5nZWxvZmI8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1hbmdlbG9mYiIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTQuMjglIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTm9HUm8iPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTY2NTI3Mz92PTQ/cz0xMDAiIHdpZHRoPSIxMDBweDsiIGFsdD0iRGltIE5vZ3JvIi8+PGJyIC8+PHN1Yj48Yj5EaW0gTm9ncm88L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlci9jb21taXRzP2F1dGhvcj1Ob0dSbyIgdGl0bGU9IkNvZGUiPvCfkrs8L2E+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249InRvcCIgd2lkdGg9IjE0LjI4JSI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3lhZGFuaWxvdjE5Ij48aW1nIHNyYz0iaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3MTYxMDY1P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJ5YWRhbmlsb3YxOSIvPjxiciAvPjxzdWI+PGI+eWFkYW5pbG92MTk8L2I+PC9zdWI+PC9hPjxiciAvPjxhIGhyZWY9IiNpZGVhcy15YWRhbmlsb3YxOSIgdGl0bGU9IklkZWFzLCBQbGFubmluZywgJiBGZWVkYmFjayI+8J+klDwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kYW5wb3dlbGw4OCI+PGltZyBzcmM9Imh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTAwMzk3P3Y9ND9zPTEwMCIgd2lkdGg9IjEwMHB4OyIgYWx0PSJEYW5pZWwgUG93ZWxsIi8+PGJyIC8+PHN1Yj48Yj5EYW5pZWwgUG93ZWxsPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvaXNzdWVzP3E9YXV0aG9yJTNBZGFucG93ZWxsODgiIHRpdGxlPSJCdWcgcmVwb3J0cyI+8J+QmzwvYT48L3RkPgogICAgICA8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNC4yOCUiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Fa2tlaXIiPjxpbWcgc3JjPSJodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzYxOTQ2ODU/dj00P3M9MTAwIiB3aWR0aD0iMTAwcHg7IiBhbHQ9IkVra2VpciIvPjxiciAvPjxzdWI+PGI+RWtrZWlyPC9iPjwvc3ViPjwvYT48YnIgLz48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvcmVmaXR0ZXIvY29tbWl0cz9hdXRob3I9RWtrZWlyIiB0aXRsZT0iRG9jdW1lbnRhdGlvbiI+8J+TljwvYT4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL3JlZml0dGVyL2lzc3Vlcz9xPWF1dGhvciUzQUVra2VpciIgdGl0bGU9IkJ1ZyByZXBvcnRzIj7wn5CbPC9hPjwvdGQ+CiAgICA8L3RyPgogIDwvdGJvZHk+CjwvdGFibGU+Cgo8IS0tIG1hcmtkb3dubGludC1yZXN0b3JlIC0tPgo8IS0tIHByZXR0aWVyLWlnbm9yZS1lbmQgLS0+Cgo8IS0tIEFMTC1DT05UUklCVVRPUlMtTElTVDpFTkQgLS0+CgojCgpGb3IgdGlwcyBhbmQgdHJpY2tzIG9uIHNvZnR3YXJlIGRldmVsb3BtZW50LCBjaGVjayBvdXQgW215IGJsb2ddKGh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tKQoKSWYgeW91IGZpbmQgdGhpcyB1c2VmdWwgYW5kIGZlZWwgYSBiaXQgZ2VuZXJvdXMgdGhlbiBmZWVsIGZyZWUgdG8gW2J1eSBtZSBhIGNvZmZlZSDimJVdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vY2hyaXN0aWFuaGVsbGUpCg== + readmeEtag: '"ef1299a5a12c37660330d01b8e8678e357adbef97ddaa612404341f4e3bbb64a"' + readmeLastModified: Tue, 12 Sep 2023 20:30:54 GMT repositoryId: 598846021 description: Refit Client API Generator for OpenAPI created: '2023-02-07T23:18:12Z' - updated: '2023-09-10T09:41:38Z' + updated: '2023-09-12T14:40:31Z' language: C# archived: false - stars: 51 + stars: 52 watchers: 5 forks: 12 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 - repoEtag: '"919ca7eca05cc9b39bf1a1d910545e6b01c5278aad8c79a111047e53b1cc0b5e"' - repoLastModified: Sun, 10 Sep 2023 09:41:38 GMT + repoEtag: '"994c1c50aee61592de2d1664932d7f79935a4ec0b6891fd32c38c05a89390e04"' + repoLastModified: Tue, 12 Sep 2023 14:40:31 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -10571,7 +10571,7 @@ forks: 12 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 - repoEtag: '"eadfdece0abb399e9089b73c3beb9ee572b3f908d71f14b28f325ffefa30c786"' + repoEtag: '"03ad454e87b57a5c3c0995f0091823bb1efed8f32e7a9273d663e12b48fb9e10"' repoLastModified: Thu, 07 Sep 2023 09:54:18 GMT category: Server Implementations foundInMaster: true @@ -10700,7 +10700,7 @@ forks: 8 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 - repoEtag: '"a770fc43f6400c2661fbd693800e84642f77733adc2e459fd324d7b09183fa17"' + repoEtag: '"f3289853974cf8d18eec08b7b68f325fc78a7c5b63f3d168976196d8a6090249"' repoLastModified: Fri, 08 Sep 2023 18:04:58 GMT category: Parsers foundInMaster: true @@ -10811,7 +10811,7 @@ owner: atlassian logo: https://avatars.githubusercontent.com/u/168166?v=4 license: NOASSERTION - repoEtag: '"0293f76386996588d58dc8709b11803121b91f9eed34d0dc74449506ada3166f"' + repoEtag: '"6d5d490687af3e5a901d4c8e117580e49bf2ff31bf437b50fa51c04bc682dba7"' repoLastModified: Fri, 01 Sep 2023 17:39:36 GMT foundInMaster: true id: 70270b46839e1466d6a425a8da6ded65 @@ -10892,7 +10892,7 @@ owner: samchungy logo: https://avatars.githubusercontent.com/u/18017094?v=4 license: MIT - repoEtag: '"56301e6d96a40e2c190e8f90b169adc254c8a5a81a2996a71b4b255518d31ed9"' + repoEtag: '"9f0b872f189b79270dc3fbee1ae0a42b1a89db08800a7ce697d99426bcc9a660"' repoLastModified: Sun, 10 Sep 2023 23:08:35 GMT category: Parsers foundInMaster: true @@ -11206,7 +11206,7 @@ owner: Backbase logo: https://avatars.githubusercontent.com/u/1914334?v=4 license: NOASSERTION - repoEtag: '"a1057526156e2f1713570bf6f5ab9654a0ac004b38411b8d9d83f4c18844d9db"' + repoEtag: '"2cf1412cf4a42c019ebba46e87717041e5fca3bac35a8cc04a2e397b701e605a"' repoLastModified: Sun, 27 Aug 2023 11:30:04 GMT foundInMaster: true category: SDK @@ -11455,7 +11455,7 @@ owner: data-fair logo: https://avatars.githubusercontent.com/u/83776320?v=4 license: AGPL-3.0 - repoEtag: '"9ec0afe3362a87a5839e52a9b710e9924a84a7923bfd3bc44cc0c9996845751a"' + repoEtag: '"fe07a1912d3ab0e6a3b2e29f6bad7c0b362f9e8e2f766cda3521fb6374f765e6"' repoLastModified: Sat, 05 Aug 2023 08:06:57 GMT foundInMaster: true category: @@ -11649,7 +11649,7 @@ owner: apibrew logo: https://avatars.githubusercontent.com/u/132176743?v=4 license: MIT - repoEtag: '"493a8bbb67185254e5ea82342b716db9843274ae683f6f31898a759657c179f9"' + repoEtag: '"8927c7f54235cdaf5ea655dff746cd4033e2e4236a50510653467494e9d9c847"' repoLastModified: Mon, 31 Jul 2023 02:26:20 GMT category: Server Implementations oldLocations: @@ -11723,11 +11723,11 @@ archived: false stars: 27 watchers: 6 - forks: 11 + forks: 10 owner: aerokube logo: https://avatars.githubusercontent.com/u/26328913?v=4 license: Apache-2.0 - repoEtag: '"0ffb8f9434b9d6be77a6c612840179d885d53ff0c9ff5b1ce9e733e62aaf9ea0"' + repoEtag: '"c277e86b4f67fec6f71447e20d543c2542dfdc7013ed0d250bd8a70005cf5605"' repoLastModified: Sun, 29 Jan 2023 06:21:22 GMT foundInMaster: true category: @@ -12214,15 +12214,15 @@ id: fd840bafced1deba1ac3d162e2c56928 repositoryMetadata: base64Readme: >- - CiMg8J+boO+4jyBBcGlnZW4gIVtSZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3JlbGVhc2UtMC40LjAtcHVycGxlKSAhW1N3YWdnZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLW9wZW5hcGktJTIzQ2xvanVyZT9zdHlsZT1mbGF0JmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9d2hpdGUpICFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPW9wZW5qZGsmbG9nb0NvbG9yPXdoaXRlKSAhW1NwcmluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zcHJpbmctJTIzNkRCMzNGLnN2Zz9zdHlsZT1mbGF0JmxvZ289c3ByaW5nJmxvZ29Db2xvcj13aGl0ZSkgWyFbTGljZW5zZTogTEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUxHUExfdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wKSAKCldlbGNvbWUgdG8gKiphcGlnZW4uc3ByaW5nYm9vdCoqLCBtYWRlIGluIHNwYWluICFbU3BhaW5dKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGV2ZW5yc2tlbHRvbi9mbGFnLWljb24vbWFzdGVyL3BuZy8xNi9jb3VudHJ5LTR4My9lcy5wbmcgIlNwYWluIiksICB0aGUgb3BlbnNvdXJjZSBwcm9qZWN0IGluIEphdmEgdGhhdCBhbGxvd3MgeW91IHRvIGdlbmVyYXRlIGFuIGFyY2hldHlwZSBvZiB0aGUgc3ByaW5nYm9vdCBmcmFtZXdvcmsgdXNpbmcgdGhlIG9wZW5hcGkgZmlsZSBhcyBhIG1hcHBpbmcgdG9vbCBiZXR3ZWVuIHRoZSBvcGVuYXBpIGRlZmluaXRpb24gYW5kIHRoZSBkYXRhYmFzZS4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqQXBpZ2VuKiogQWRvcHRlcnMgbGlzdCAK8J+ToiBJZiBBcGlnZW4gaXMgcGFydCBvZiB5b3VyIG9yZ2FuaXphdGlvbidzIHRvb2xraXQsIHdlIGtpbmRseSBlbmNvdXJhZ2UgeW91IHRvIGluY2x1ZGUgeW91ciBjb21wYW55J3MgbmFtZSBpbiBvdXIgQWRvcHRlcnMgbGlzdC4g8J+ZjyBUaGlzIG5vdCBvbmx5IHNpZ25pZmljYW50bHkgYm9vc3RzIHRoZSBwcm9qZWN0J3MgdmlzaWJpbGl0eSBhbmQgcmVwdXRhdGlvbiBidXQgYWxzbyByZXByZXNlbnRzIGEgc21hbGwgeWV0IGltcGFjdGZ1bCB3YXkgdG8gZ2l2ZSBiYWNrIHRvIHRoZSBwcm9qZWN0LgoKfCBPcmdhbml6YXRpb24gIHwgRGVzY3JpcHRpb24gb2YgVXNlIC8gUmVmZXJlbmMgfAp8LS0tfC0tLXwKfCAgW0Nsb3VkQXBwaV0oaHR0cHM6Ly9jbG91ZGFwcGkubmV0LykgIHwgQXBpZmljYXRpb24gYW5kIGdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyB8CnwgW0FjY2lvbmFdKGh0dHBzOi8vd3d3LmFjY2lvbmEuY29tLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzIHwKfCBbTWFkcmlkIERpZ2l0YWxdKGh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2VydmljaW9zL3NlZGUtZWxlY3Ryb25pY2EvbWFkcmlkLWRpZ2l0YWwvKSAgfCBHZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgIHwKfCBbQXBpcXVhbGl0eV0oaHR0cHM6Ly9hcGlxdWFsaXR5LmlvLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CgojIPCfkanwn4+94oCN8J+SuyAgQ29udHJpYnV0ZSB0byBBcGlBZGRpY3RzIAoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgLCBhbmQgdGhpcyBpbXBsaWVzIHRoYXQgeW91IHRvbyBjYW4gYmVjb21lIGEgcGFydCBvZiBvdXIgZWZmb3J0IHRvIGVuaGFuY2UgQXBpQWRkaWN0cyEKCldlJ3JlIGV4Y2l0ZWQgdG8gcHJpb3JpdGl6ZSB0YXNrcyBiYXNlZCBvbiBjb21tdW5pdHkgaW5wdXQ6IHlvdSBjYW4gcmV2aWV3IGFuZCBjb2xsYWJvcmF0ZSB0aHJvdWdoIG91ciBHaXRIdWIgaXNzdWUgdHJhY2tlci4KCkZlZWwgZnJlZSB0byBkcm9wIGJ5IGFuZCBncmVldCB1cyBvbiBvdXIgR2l0SHViIGRpc2N1c3Npb24gb3IgRGlzY29yZCBjaGF0LiBZb3UgY2FuIGFsc28gc2hvdyB5b3VyIHN1cHBvcnQgYnkgZ2l2aW5nIHVzIHNvbWUgR2l0SHViIHN0YXJzIOKtkO+4jywgb3IgYnkgZm9sbG93aW5nIHVzIG9uIFR3aXR0ZXIsIExpbmtlZEluLCBhbmQgc3Vic2NyaWJpbmcgdG8gb3VyIFlvdVR1YmUgY2hhbm5lbCEg8J+agAoKWyFbIkJ1eSBNZSBBIENvZmZlZSJdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXNzZXRzL2ltZy9jdXN0b21faW1hZ2VzL29yYW5nZV9pbWcucG5nKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hcGlhZGRpY3RzKQoKCiMg8J+TkSBHZXR0aW5nIHN0YXJ0ZWQgCgojIyDwn5CLIERvY2tlciBjb21wb3NlCgpgYGB5YW1sCnZlcnNpb246ICIzLjMiCnNlcnZpY2VzOgogIGFwaWdlbjoKICAgIGltYWdlOiAiYXBpYWRkaWN0cy9hcGl0b29scy1hcGlnZW46MC4yLjEiCiAgICBwb3J0czoKICAgICAgLSAiODA4MDo4MDgwIgpgYGAKCiMjIFByb2plY3QKCiMjIyBTY2hlbWUKICAgIHgtYXBpZ2VuLXByb2plY3Q6CiAgICAgIG5hbWU6IHN0cmluZwogICAgICBkZXNjcmlwdGlvbjogc3RyaW5nCiAgICAgIHZlcnNpb246IHN0cmluZwogICAgICBqYXZhLXByb3BlcnRpZXM6CiAgICAgICAgZ3JvdXAtaWQ6IHN0cmluZwogICAgICAgIGFydGlmYWN0LWlkOiBzdHJpbmcKCiMjIyBEZWZpbml0aW9uCi0gYHgtYXBpZ2VuLXByb2plY3RgOiBTZWN0aW9uIHdoZXJlIHByb2plY3QgaW5mb3JtYXRpb24gaXMgZGVmaW5lZAogICAtIGBuYW1lYDogUHJvamVjdCBuYW1lCiAgICAgLSBgZGVzY3JpcHRpb25gOiBCcmllZiBwcm9qZWN0IGRlc2NyaXB0aW9uCiAgICAgLSBgdmVyc2lvbmA6IFByb2plY3QgdmVyc2lvbgogICAgIC0gYGphdmEtcHJvcGVydGllc2A6IFNlY3Rpb24gd2hlcmUgc3BlY2lmaWMgSmF2YSBwcm9qZWN0IGluZm9ybWF0aW9uIGlzIGRlZmluZWQKICAgICAgIC0gYGdyb3VwLWlkYDogSW5pdGlhbCBwYWNrYWdlIG5hbWUgd2hlcmUgdGhlIHByb2plY3QgcmVzaWRlcy4gSWYgaXQgY29uc2lzdHMgb2YgbXVsdGlwbGUgd29yZHMsIHRoZXkgd2lsbCBiZSBzZXBhcmF0ZWQgYnkgYC5gCiAgICAgICAtIGBhcnRpZmFjdC1pZGA6IElkZW50aWZpZXIgbmFtZSBmb3IgdGhlIHByb2plY3QKICAgIAojIyMgU2FtcGxlcwogICAgeC1hcGlnZW4tcHJvamVjdDoKICAgICAgbmFtZTogQ29sb3JzCiAgICAgIGRlc2NyaXB0aW9uOiBUaGlzIHdvdWxkIGJlIHRoZSBDb2xvcnMgcHJvamVjdAogICAgICB2ZXJzaW9uOiAxLjAuMAogICAgICBqYXZhLXByb3BlcnRpZXM6CiAgICAgICAgZ3JvdXAtaWQ6IHRoZS5ncm91cAogICAgICAgIGFydGlmYWN0LWlkOiBhcHAKICAgICAgICAKIyMgTW9kZWxzCgojIyMgU2NoZW1lCiAgICB4LWFwaWdlbi1tb2RlbHM6CiAgICAgIDxtb2RlbF9uYW1lPjoKICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgdGFibGU6IHN0cmluZwogICAgICAgIGF0dHJpYnV0ZXM6CiAgICAgICAgICAtIG5hbWU6IHN0cmluZwogICAgICAgICAgICB0eXBlOiBzdHJpbmcgW0VOVU1bQXJyYXksIFN0cmluZywgQm9vbGVhbiwgRG91YmxlLCBGbG9hdCwgSW50ZWdlciwgTG9uZywgTG9jYWxEYXRlIHkgT2Zmc2V0RGF0ZVRpbWUsIENvbXBvc2VkSURdIG8gPG1vZGVsX25hbWU+XQogICAgICAgICAgICBpdGVtcy10eXBlOiBzdHJpbmcgWzxtb2RlbF9uYW1lPl0KICAgICAgICAgICAgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZToKICAgICAgICAgICAgICBjb2x1bW46IHN0cmluZwogICAgICAgICAgICAgIHByaW1hcnkta2V5OiBib29sZWFuCiAgICAgICAgICAgICAgZm9yZWlnbi1jb2x1bW46IHN0cmluZwogICAgICAgICAgICAgIGludGVybWVkaWF0ZS10YWJsZTogc3RyaW5nCiAgICAgICAgICAgICAgb3duZXI6IGJvb2xlYW4KICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgLSB0eXBlOiBzdHJpbmcgW0VOVU1bTm90TnVsbCwgU2l6ZSwgTWluLCBNYXgsIEVtYWlsLCBOb3RFbXB0eSwgTm90QmxhbmssIFBvc2l0aXZlLCBQb3NpdGl2ZU9yWmVybywgTmVnYXRpdmUsIE5lZ2F0aXZlT3JaZXJvLCBQYXN0LCBQYXN0T3JQcmVzZW50LCBGdXR1cmUsIEZ1dHVyZU9yUHJlc2VudCwgUGF0dGVybiwgRGlnaXRzLCBEZWNpbWFsTWluLCBEZWNpbWFsTWF4XV0KICAgICAgICAgICAgICAgIG1pbjogaW50ZWdlcgogICAgICAgICAgICAgICAgbWF4OiBpbnRlZ2VyCiAgICAgICAgICAgICAgICByZWdleDogc3RyaW5nCiAgICAgICAgICAgICAgICB2YWx1ZTogaW50ZWdlciB8IHN0cmluZwogICAgICAgICAgICAgICAgaW50ZWdlcjogaW50ZWdlcgogICAgICAgICAgICAgICAgZnJhY3Rpb246IGludGVnZXIKICAgICAgICAgICAgICAgIGluY2x1c2l2ZTogYm9vbGVhbiAgIAogICAgICAgICAgICAgICAgICAKIyMjIERlZmluaXRpb24KLSBgeC1hcGlnZW4tbW9kZWxzYDogU2VjdGlvbiB3aGVyZSBwcm9qZWN0IG1vZGVscyBhcmUgZGVmaW5lZAogIC0gYDxtb2RlbF9uYW1lPmA6IE5hbWUgb2YgdGhlIG1vZGVsCiAgICAtIGByZWxhdGlvbmFsLXBlcnNpc3RlbmNlYDogU2VjdGlvbiB3aGVyZSBhbGwgYXNwZWN0cyByZWxhdGVkIHRvIHRoZSBtb2RlbCdzIHJlbGF0aW9uYWwgcGVyc2lzdGVuY2UgYXJlIGluZGljYXRlZAogICAgICAtIGB0YWJsZWA6IE5hbWUgb2YgdGhlIHRhYmxlIGluIHRoZSBkYXRhYmFzZQogICAgLSBgYXR0cmlidXRlc2A6IFNlY3Rpb24gdGhhdCBjb250YWlucyB0aGUgbW9kZWwncyBhdHRyaWJ1dGVzCiAgICAgIC0gYG5hbWVgOiBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUKICAgICAgLSBgdHlwZWA6IFR5cGUgb2YgdGhlIGF0dHJpYnV0ZSwgc3VwcG9ydGVkIHR5cGVzIGFyZTogW0FycmF5LCBTdHJpbmcsIEJvb2xlYW4sIERvdWJsZSwgRmxvYXQsIEludGVnZXIsIExvbmcsIExvY2FsRGF0ZSwgT2Zmc2V0RGF0ZVRpbWUsIENvbXBvc2VkSURdLCBvciBpbiB0aGUgY2FzZSBvZiBhbm90aGVyIG1vZGVsLCB0aGUgbmFtZSBvZiB0aGF0IG1vZGVsCiAgICAgIC0gYGl0ZW1zLXR5cGVgOiBJbiB0aGUgY2FzZSBvZiB0aGUgYHR5cGVgIGJlaW5nIGFuIGBBcnJheWAsIHRoaXMgZmllbGQgc2hvdWxkIGJlIGRlZmluZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBtb2RlbAogICAgICAtIGBhdHRyaWJ1dGVzYDogU2ltaWxhciB0byB0aGUgYGF0dHJpYnV0ZXNgIG9mIHRoZSBtb2RlbCwgb25seSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBpcyBDb21wb3NlZElEIHRvIGluZGljYXRlIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgaWRlbnRpZmllcgogICAgICAtIGByZWxhdGlvbmFsLXBlcnNpc3RlbmNlYDogU2VjdGlvbiB3aGVyZSBhbGwgYXNwZWN0cyByZWxhdGVkIHRvIHRoZSByZWxhdGlvbmFsIHBlcnNpc3RlbmNlIG9mIHRoZSBtb2RlbCdzIGF0dHJpYnV0ZSBhcmUgaW5kaWNhdGVkCiAgICAgICAgLSBgY29sdW1uYDogTmFtZSBvZiB0aGUgY29sdW1uIGluIHRoZSBkYXRhYmFzZQogICAgICAgIC0gYGNvbHVtbnNgOiBSZWxhdGlvbnNoaXAgb2YgY29sdW1ucyBmcm9tIHRoZSBjdXJyZW50IHRhYmxlIHRvIGFub3RoZXIgcmVsYXRlZCB0YWJsZSB3aGVuIGRlYWxpbmcgd2l0aCBhIG1vZGVsIHdpdGggYSBjb21wb3NpdGUgaWRlbnRpZmllciAoZWFjaCBlbnRyeSBpcyBkZWZpbmVkIGFzIGtleTogdmFsdWUgd2hlcmUgdGhlIGtleSBpcyB0aGUgbmFtZSBpbiB0aGUgY3VycmVudCB0YWJsZSBhbmQgdGhlIHZhbHVlIGlzIHRoZSBuYW1lIGluIHRoZSByZWxhdGVkIHRhYmxlKQogICAgICAgIC0gYHByaW1hcnkta2V5YDogSW5kaWNhdGVzIGlmIGl0IGlzIHRoZSBwcmltYXJ5IGtleSwgaWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSBgZmFsc2VgCiAgICAgICAgLSBgZm9yZWlnbi1jb2x1bW5gOiBJbmRpY2F0ZXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBpbiB0aGUgcmVsYXRlZCB0YWJsZQogICAgICAgIC0gYGZvcmVpZ24tY29sdW1uc2A6IFJlbGF0aW9uc2hpcCBvZiBjb2x1bW5zIGluIHRoZSByZWxhdGVkIHRhYmxlIHRvIHRoZSBjdXJyZW50IHRhYmxlIHdoZW4gZGVhbGluZyB3aXRoIGEgbW9kZWwgd2l0aCBhIGNvbXBvc2l0ZSBpZGVudGlmaWVyIChlYWNoIGVudHJ5IGlzIGRlZmluZWQgYXMga2V5OiB2YWx1ZSB3aGVyZSB0aGUga2V5IGlzIHRoZSBuYW1lIGluIHRoZSByZWxhdGVkIHRhYmxlIGFuZCB0aGUgdmFsdWUgaXMgdGhlIG5hbWUgaW4gdGhlIGN1cnJlbnQgdGFibGUpCiAgICAgICAgLSBgaW50ZXJtZWRpYXRlLXRhYmxlYDogTmFtZSBvZiB0aGUgaW50ZXJtZWRpYXRlIHRhYmxlIGluIHRob3NlIGF0dHJpYnV0ZXMgdGhhdCByZXByZXNlbnQgYSBtYW55LXRvLW1hbnkgcmVsYXRpb25zaGlwCiAgICAgICAgLSBgb3duZXJgOiBJbmRpY2F0ZXMgaWYgdGhpcyBwYXJ0IG9mIHRoZSByZWxhdGlvbnNoaXAgaXMgdGhlIG93bmVyLCBuZWNlc3NhcnkgaW4gb25lLXRvLW9uZSBvciBvbmUtdG8tbWFueSByZWxhdGlvbnNoaXBzCiAgICAgICAgLSBgc2VxdWVuY2VgOiBTZWN0aW9uIHdoZXJlIHRoZSBvcHRpb25hbCBnZW5lcmF0b3IgdG8gdXNlIGZvciB0aGUgcHJpbWFyeSBrZXkgY2FuIGJlIGluZGljYXRlZAogICAgICAtIGB2YWxpZGF0aW9uc2A6IFNlY3Rpb24gd2hlcmUgYXR0cmlidXRlIHZhbGlkYXRpb25zIGFyZSBkZWZpbmVkCiAgICAgICAgLSBgdHlwZWA6IFRoZSBzdXBwb3J0ZWQgdHlwZXMgZm9yIHZhbGlkYXRpb24gYXJlIGFzIGZvbGxvd3M6IFtOb3ROdWxsLCBTaXplLCBNaW4sIE1heCwgRW1haWwsIE5vdEVtcHR5LCBOb3RCbGFuaywgUG9zaXRpdmUsIFBvc2l0aXZlT3JaZXJvLCBOZWdhdGl2ZSwgTmVnYXRpdmVPclplcm8sIFBhc3QsIFBhc3RPclByZXNlbnQsIEZ1dHVyZSwgRnV0dXJlT3JQcmVzZW50LCBQYXR0ZXJuLCBEaWdpdHMsIERlY2ltYWxNaW4sIERlY2ltYWxNYXhdCiAgICAgICAgLSBgbWluYDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYFNpemVgCiAgICAgICAgLSBgbWF4YDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYFNpemVgCiAgICAgICAgLSBgcmVnZXhgOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgUGF0dGVybmAKICAgICAgICAtIGB2YWx1ZWA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBNaW5gLCBgTWF4YCwgYERlY2ltYWxNaW5gLCBvciBgRGVjaW1hbE1heGAgCiAgICAgICAgLSBgaW50ZWdlcmA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBEaWdpdHNgLCByZXByZXNlbnRpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZSBudW1iZXIKICAgICAgICAtIGBmcmFjdGlvbmA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBEaWdpdHNgLCByZXByZXNlbnRpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbCBwYXJ0IG9mIHRoZSBudW1iZXIKICAgICAgICAtIGBpbmNsdXNpdmVgOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgRGVjaW1hbE1pbmAgb3IgYERlY2ltYWxNYXhgCgojIyMgU2FtcGxlcwogICAgeC1hcGlnZW4tbW9kZWxzOgogICAgICBDb2xvcjoKICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgdGFibGU6IGNvbG9ycwogICAgICAgIGF0dHJpYnV0ZXM6CiAgICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICAgIHR5cGU6IExvbmcKICAgICAgICAgICAgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZToKICAgICAgICAgICAgICBjb2x1bW46IGlkCiAgICAgICAgICAgICAgcHJpbWFyeS1rZXk6IHRydWUKICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgLSB0eXBlOiBOb3ROdWxsCiAgICAgICAgICAtIG5hbWU6IG5hbWUKICAgICAgICAgICAgdHlwZTogU3RyaW5nCiAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgY29sdW1uOiBuYW1lCiAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgIC0gdHlwZTogUGF0dGVybgogICAgICAgICAgICAgICAgcmVnZXg6IFtBLVpdKwogICAgICBDb21wb3NlZDoKICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgdGFibGU6IGNvbXBvc2VkCiAgICAgICAgYXR0cmlidXRyZXM6CiAgICAgICAgICAtIG5hbWU6IGlkCiAgICAgICAgICAgIHR5cGU6IENvbXBvc2VkSUQKICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgIC0gdHlwZTogTm90TnVsbAogICAgICAgICAgICBhdHRyaWJ1dGVzOgogICAgICAgICAgICAgIC0gbmFtZTogb25lCiAgICAgICAgICAgICAgICB0eXBlOiBTdHJpbmcKICAgICAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgICAgIGNvbHVtbjogY19vbmUKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgICAgIC0gdHlwZTogTm90TnVsbAogICAgICAgICAgICAgIC0gbmFtZTogdHdvCiAgICAgICAgICAgICAgICB0eXBlOiBJbnRlZ2VyICAgICAgCiAgICAgICAgICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgICAgICAgICBjb2x1bW46IGNfdHdvICAgICAgCiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uczoKICAgICAgICAgICAgICAgICAtIHR5cGU6IE5vdE51bGwKCiMjIFBhdGggZXhwYW5zaW9uCgojIyMgU2NoZW1lCiAgICBwYXRoczoKICAgICAgPHBhdGg+OgogICAgICAgIC4uLgogICAgICAgIHgtYXBpZ2VuLWJpbmRpbmc6CiAgICAgICAgICBtb2RlbDogc3RyaW5nCiAgICAgICAgICAKIyMjIERlZmluaXRpb24KLSBgeC1hcGlnZW4tYmluZGluZ2A6IFNlY3Rpb24gd2hlcmUgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgZW5kcG9pbnQgYW5kIHRoZSBtb2RlbCB3ZSB3aWxsIHVzZSBpcyBkZWZpbmVkCiAgIC0gYG1vZGVsYDogSW4gdGhpcyBmaWVsZCwgd2UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIG1vZGVsLgogCiMjIyBTYW1wbGUKICAgIHBhdGhzOgogICAgICAvY29sb3JzOgogICAgICAgIHgtYXBpZ2VuLWJpbmRpbmc6CiAgICAgICAgICBtb2RlbDogQ29sb3IKICAgICAgICAgIAojIyBFeHRlbnNpb24gb2YgdGhlIHNjaGVtYSBzZWN0aW9uIG9mIHRoZSByZXF1ZXN0Qm9keQoKIyMjIFNjaGVtZQoKICAgIHNjaGVtYXM6CiAgICAgIDxzY2hlbWE+OgogICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICBtb2RlbDogc3RyaW5nCiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIDxwcm9wX25hbWU+OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgICBtb2RlbDogc3RyaW5nCiAgICAgICAgICAgIGZpZWxkOiBzdHJpbmcKICAgICAgICA8cHJvcF9uYW1lXzI+OgogICAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgICAgbW9kZWw6IHN0cmluZwoKIyMjIERlZmluaXRpb24KCi0gYHgtYXBpZ2VuLW1hcHBpbmdgOiBTZWN0aW9uIHdoZXJlIGFsbCBtYXBwaW5nIGRhdGEgYmV0d2VlbiByZXNvdXJjZXMgYW5kIG1vZGVscyBhcmUgZGVmaW5lZC4gRWFjaCBhdHRyaWJ1dGUgb2YgYW4gaW5wdXQgcmVzb3VyY2UsIGluY2x1ZGluZyB0aGUgaW5wdXQgcmVzb3VyY2UgaXRzZWxmLCBjYW4gaGF2ZSB0aGlzIHNlY3Rpb24gZGVmaW5lZC4gSWYgaXQgaXMgbm90IGRlZmluZWQsIGl0IGlzIGFzc3VtZWQgdG8gaGF2ZSB0aGUgZGVmYXVsdCB2YWx1ZXMgaW5kaWNhdGVkIGluIGVhY2ggc2VjdGlvbi4KICAtIGBtb2RlbGA6IE5hbWUgb2YgdGhlIG1vZGVsIHRoYXQgdGhlIHJlc291cmNlIG9yIGF0dHJpYnV0ZSByZXByZXNlbnRzLiBJZiBub3Qgc3BlY2lmaWVkIGF0IHRoZSByZXNvdXJjZSBsZXZlbCwgaXQgaXMgbm90IGNvbnNpZGVyZWQgYSBzdGFuZGFyZCBpbnB1dCByZXNvdXJjZS4KICAtIGBmaWVsZGA6IE5hbWUgb2YgdGhlIG1vZGVsIGF0dHJpYnV0ZSB0byB3aGljaCB0aGUgcmVzb3VyY2UgYXR0cmlidXRlIHdpbGwgYmUgbWFwcGVkLiBCeSBkZWZhdWx0LCBpZiBub3RoaW5nIGlzIHNwZWNpZmllZCwgaXQgd2lsbCBiZSBtYXBwZWQgdG8gYW4gYXR0cmlidXRlIHdpdGggdGhlIHNhbWUgbmFtZSBpZiBpdCBleGlzdHM7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpZ25vcmVkLiBUaGVyZSBhcmUgdHdvIHNwZWNpZmljIGNhc2VzIGluIHdoaWNoIGl0IGlzIG1hbmRhdG9yeSB0byBkZWZpbmUgdGhpcyBmaWVsZDoKICAgIC0gV2hlbiB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGluIHRoZSByZXNvdXJjZSBhbmQgaW4gdGhlIG1vZGVsIGFyZSBkaWZmZXJlbnQ6CiAgICAgIGBgYHlhbWwKICAgICAgbm9tYnJlOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICBmaWVsZDogcHJpbWVyTm9tYnJlCiAgICAgIGBgYAogICAgLSBXaGVuIHRoZSBhdHRyaWJ1dGUgaW4gdGhlIHJlc291cmNlIGlzIGFuIGFiYnJldmlhdGlvbiBvZiB0aGUgaWRlbnRpZmllciBvZiBhIG5lc3RlZCBtb2RlbDoKICAgICAgYGBgeWFtbAogICAgICBjb2xvcjoKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgbW9kZWw6IGNvbG9yCiAgICAgICAgICBmaWVsZDogdmFsb3JDcm9tYXRpY28uaWQKICAgICAgYGBgCgojIyBFeHBhbnNpb24gb2YgdGhlIHJlc3BvbnNlIG91dGxpbmUgc2VjdGlvbgoKIyMjIFByZWNvbmRpdGlvbnMKClRoZSBBcGlnZW4gZXh0ZW5zaW9uIGZvciBPcGVuQVBJIGZvcmNlcyB1cyB0byB0YWtlIGludG8gYWNjb3VudCBhIHNlcmllcyBvZiBjb25kaXRpb25zIHNvIHRoYXQgZW5kcG9pbnQgcmVzcG9uc2VzIGNvbXBseSB3aXRoIHRoZSBzdGFuZGFyZC4KCiMjIyMgSGF2ZSBhIGRlZmluZWQgc3RhbmRhcmQgcmVzcG9uc2UKCmBgYGB5YW1sCiAgc2NoZW1hczoKICAgIHN0YW5kYXJkX3Jlc3BvbnNlX3Jlc3VsdDoKICAgICAgcHJvcGVydGllczoKICAgICAgICByZXN1bHQ6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHN0YXR1czoKICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgIGh0dHBfY29kZToKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGVycm9yczoKICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL3N0YW5kYXJkX2Vycm9yJwogICAgICAgICAgICBpbmZvOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICB0cmFjZV9pZDoKICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgbnVtX2VsZW1lbnRzOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHJlcXVpcmVkOgogICAgICAgICAgICAtIHN0YXR1cwogICAgICAgICAgICAtIGh0dHBfY29kZQogICAgICAgICAgICAtIHRyYWNlX2lkCiAgICBzdGFuZGFyZF9lcnJvcjoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY29kZToKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBtZXNzYWdlOgogICAgICAgICAgdHlwZTogc3RyaW5nCmBgYGAKCiMjIyMgSGF2ZSBhIHNpbmdsZSBzdGFuZGFyZCBjb2xsZWN0aW9uIHJlc3BvbnNlIGRlZmluZWQgZm9yIGVhY2ggbW9kZWwKCmBgYGB5YW1sCiAgc2NoZW1hczoKICAgIHN0YW5kYXJkX3Jlc3BvbnNlX2NvbGxlY3Rpb25fPG1vZGVsPjoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvc3RhbmRhcmRfcmVzcG9uc2VfcmVzdWx0IgogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBkYXRhOgogICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgICA8bW9kZWxfcGx1cmFsPjoKICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzLzxtb2RlbF9yZXNvdXJjZT4iCmBgYGAKCiMjIyMgSGF2ZSBhIHNpbmdsZSBzaW1wbGUgc3RhbmRhcmQgcmVzcG9uc2UgZGVmaW5lZCBmb3IgZWFjaCBtb2RlbAoKYGBgYHlhbWwKICBzY2hlbWFzOgogICAgc3RhbmRhcmRfcmVzcG9uc2VfPG1vZGVsPjoKICAgICAgYWxsT2Y6CiAgICAgICAgLSAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvc3RhbmRhcmRfcmVzcG9uc2VfcmVzdWx0IgogICAgICAgIC0gdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBkYXRhOgogICAgICAgICAgICAgICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy88bW9kZWxfcmVzb3VyY2U+IgpgYGBgCgojIyMgU2NoZW1lCgogICAgc2NoZW1hczoKICAgICAgPHNjaGVtYT46CiAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgIG1vZGVsOiBzdHJpbmcKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgPHByb3BfbmFtZT46CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICAgIGZpZWxkOiBzdHJpbmcKICAgICAgICAgICAgCiMjIyBEZWZpbml0aW9uCi0gYHgtYXBpZ2VuLW1hcHBpbmdgOiBTZWN0aW9uIHdoZXJlIGFsbCBtYXBwaW5nIGRhdGEgYmV0d2VlbiByZXNvdXJjZXMgYW5kIG1vZGVscyBhcmUgZGVmaW5lZC4gRWFjaCBvdXRwdXQgcmVzb3VyY2UgbXVzdCBoYXZlIHRoaXMgc2VjdGlvbiBkZWZpbmVkLgogIC0gYG1vZGVsYDogTmFtZSBvZiB0aGUgbW9kZWwgdGhhdCB0aGUgcmVzb3VyY2UgcmVwcmVzZW50cy4KICAtIGBmaWVsZGA6IE5hbWUgb2YgdGhlIG1vZGVsIGF0dHJpYnV0ZSB0byB3aGljaCB0aGUgcmVzb3VyY2UgYXR0cmlidXRlIHdpbGwgYmUgbWFwcGVkLgoKIyMjIFNhbXBsZQoKICAgIGNvbG9yOgogICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgIG1vZGVsOiBDb2xvcgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBqc29uX2lkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgICAgZmllbGQ6IGlkCiAgICAgICAgbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGZvcm1zOgogICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzL2Zvcm1zIgoKCiMjIPCfkpsgU3BvbnNvcnMKPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KPGltZyBzcmM9Imh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2l0ZXMvZGVmYXVsdC9maWxlcy9zdHlsZXMvYmxvY2tfdGVhc2VyX2ltYWdlL3B1YmxpYy9pbWcvbG9nb3Mtc2ltYm9sb3MvbG9nb19jZW50cmFkb19tZC5wbmc/aXRvaz00clRVaG1jaiIgYWx0PSJtZCIgd2lkdGg9IjE1MCIvPgo8aW1nIHNyYz0iaHR0cHM6Ly9hcGlxdWFsaXR5LmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5L2Nyb3BwZWQtbG9nby1hcGlxdWFsaXR5LXByaW5jaXBhbC0xLTE3MHg3MC5wbmciIGhlaWdodCA9ICI3NSI+CjxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMtd2ViLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzAzLzE3MTU1NzM2L2Nyb3BwZWQtQVBJQWRkaWN0cy1sb2dvdGlwb19yb2pvLnBuZyIgaGVpZ2h0ID0gIjc1Ij4= - readmeEtag: '"d0d654a61e5eda0b8cf4051635afcd1d75233d4e05d32c5666a33692e3d9290d"' - readmeLastModified: Mon, 11 Sep 2023 09:54:39 GMT + CiMg8J+boO+4jyBBcGlnZW4gIVtSZWxlYXNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3JlbGVhc2UtMC40LjAtcHVycGxlKSAhW1N3YWdnZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvLW9wZW5hcGktJTIzQ2xvanVyZT9zdHlsZT1mbGF0JmxvZ289c3dhZ2dlciZsb2dvQ29sb3I9d2hpdGUpICFbSmF2YV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhLSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPW9wZW5qZGsmbG9nb0NvbG9yPXdoaXRlKSAhW1NwcmluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zcHJpbmctJTIzNkRCMzNGLnN2Zz9zdHlsZT1mbGF0JmxvZ289c3ByaW5nJmxvZ29Db2xvcj13aGl0ZSkgWyFbTGljZW5zZTogTEdQTCB2M10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saWNlbnNlLUxHUExfdjMtYmx1ZS5zdmcpXShodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wKSAKCldlbGNvbWUgdG8gKiphcGlnZW4uc3ByaW5nYm9vdCoqLCBtYWRlIGluIHNwYWluICFbU3BhaW5dKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGV2ZW5yc2tlbHRvbi9mbGFnLWljb24vbWFzdGVyL3BuZy8xNi9jb3VudHJ5LTR4My9lcy5wbmcgIlNwYWluIiksIHRoZSBvcGVuc291cmNlIHByb2plY3QgaW4gSmF2YSB0aGF0IGFsbG93cyB5b3UgdG8gZ2VuZXJhdGUgYW4gYXJjaGV0eXBlIG9mIHRoZSBzcHJpbmdib290IGZyYW1ld29yayB1c2luZyB0aGUgb3BlbmFwaSBmaWxlIGFzIGEgbWFwcGluZyB0b29sIGJldHdlZW4gdGhlIG9wZW5hcGkgZGVmaW5pdGlvbiBhbmQgdGhlIGRhdGFiYXNlLiBDbGljayBtYXZlbiB0byBzZWUgYXZhaWxhYmxlIG12bnJlcG9zaXRvcnkgZGVwZW5kZW5jaWVzLgoKPGEgdGl0bGU9Im12bnJlcG9zaXRvcnkiIGhyZWY9Imh0dHBzOi8vbXZucmVwb3NpdG9yeS5jb20vYXJ0aWZhY3Qvb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMuYXBpZ2VuL2FwaWdlbiI+CiAgICA8aW1nIHdpZHRoPSIxNTAiICBzcmM9Imh0dHBzOi8vYmxvZy5pcm9udGVjLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOS8xMi8xMjgwcHgtTWF2ZW5fbG9nby5zdmdfLTMwMHg3Ni5wbmciPgo8L2E+CgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwoKWyFbVHdpdHRlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Ud2l0dGVyLSUyMzAwMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXgmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9BUElBZGRpY3RzKSAKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLSUyMzU4NjVGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL1pkYkdxTUJZeTgpClshW0xpbmtlZEluXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpbmtlZGluLSUyMzAwNzdCNS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWxpbmtlZGluJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2FwaWFkZGljdHMvKQpbIVtGYWNlYm9va10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9GYWNlYm9vay0lMjMxODc3RjIuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1GYWNlYm9vayZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5mYWNlYm9vay5jb20vYXBpYWRkaWN0cykKWyFbWW91VHViZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Zb3VUdWJlLSUyM0ZGMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPVlvdVR1YmUmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQEFQSUFkZGljdHNsbWFvbykKCiMg8J+ZjCBKb2luIHRoZSAqKkFwaWdlbioqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgQXBpZ2VuIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtBY2Npb25hXShodHRwczovL3d3dy5hY2Npb25hLmNvbS8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyB8CnwgW01hZHJpZCBEaWdpdGFsXShodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NlcnZpY2lvcy9zZWRlLWVsZWN0cm9uaWNhL21hZHJpZC1kaWdpdGFsLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CnwgW0FwaXF1YWxpdHldKGh0dHBzOi8vYXBpcXVhbGl0eS5pby8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksIHdlbGNvbWluZyB5b3UgdG8gam9pbiBvdXIgZWZmb3J0IHRvIGVuaGFuY2UgQXBpQWRkaWN0cywgYW5kIHdlJ3JlIGV4Y2l0ZWQgdG8gcHJpb3JpdGl6ZSB0YXNrcyBiYXNlZCBvbiBjb21tdW5pdHkgaW5wdXQsIGludml0aW5nIHlvdSB0byByZXZpZXcgYW5kIGNvbGxhYm9yYXRlIHRocm91Z2ggb3VyIEdpdEh1YiBpc3N1ZSB0cmFja2VyLgoKRmVlbCBmcmVlIHRvIGRyb3AgYnkgYW5kIGdyZWV0IHVzIG9uIG91ciBHaXRIdWIgZGlzY3Vzc2lvbiBvciBEaXNjb3JkIGNoYXQuIFlvdSBjYW4gYWxzbyBzaG93IHlvdXIgc3VwcG9ydCBieSBnaXZpbmcgdXMgc29tZSBHaXRIdWIgc3RhcnMg4q2Q77iPLCBvciBieSBmb2xsb3dpbmcgdXMgb24gVHdpdHRlciwgTGlua2VkSW4sIGFuZCBzdWJzY3JpYmluZyB0byBvdXIgWW91VHViZSBjaGFubmVsISDwn5qACgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FwaWFkZGljdHMpCgoKIyDwn5ORIEdldHRpbmcgc3RhcnRlZCAKCiMjIPCfkIsgRG9ja2VyIGNvbXBvc2UKCmBgYHlhbWwKdmVyc2lvbjogIjMuMyIKc2VydmljZXM6CiAgYXBpZ2VuOgogICAgaW1hZ2U6ICJhcGlhZGRpY3RzL2FwaXRvb2xzLWFwaWdlbjowLjIuMSIKICAgIHBvcnRzOgogICAgICAtICI4MDgwOjgwODAiCmBgYAoKIyMgUHJvamVjdAoKIyMjIFNjaGVtZQogICAgeC1hcGlnZW4tcHJvamVjdDoKICAgICAgbmFtZTogc3RyaW5nCiAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcKICAgICAgdmVyc2lvbjogc3RyaW5nCiAgICAgIGphdmEtcHJvcGVydGllczoKICAgICAgICBncm91cC1pZDogc3RyaW5nCiAgICAgICAgYXJ0aWZhY3QtaWQ6IHN0cmluZwoKIyMjIERlZmluaXRpb24KLSBgeC1hcGlnZW4tcHJvamVjdGA6IFNlY3Rpb24gd2hlcmUgcHJvamVjdCBpbmZvcm1hdGlvbiBpcyBkZWZpbmVkCiAgIC0gYG5hbWVgOiBQcm9qZWN0IG5hbWUKICAgICAtIGBkZXNjcmlwdGlvbmA6IEJyaWVmIHByb2plY3QgZGVzY3JpcHRpb24KICAgICAtIGB2ZXJzaW9uYDogUHJvamVjdCB2ZXJzaW9uCiAgICAgLSBgamF2YS1wcm9wZXJ0aWVzYDogU2VjdGlvbiB3aGVyZSBzcGVjaWZpYyBKYXZhIHByb2plY3QgaW5mb3JtYXRpb24gaXMgZGVmaW5lZAogICAgICAgLSBgZ3JvdXAtaWRgOiBJbml0aWFsIHBhY2thZ2UgbmFtZSB3aGVyZSB0aGUgcHJvamVjdCByZXNpZGVzLiBJZiBpdCBjb25zaXN0cyBvZiBtdWx0aXBsZSB3b3JkcywgdGhleSB3aWxsIGJlIHNlcGFyYXRlZCBieSBgLmAKICAgICAgIC0gYGFydGlmYWN0LWlkYDogSWRlbnRpZmllciBuYW1lIGZvciB0aGUgcHJvamVjdAogICAgCiMjIyBTYW1wbGVzCiAgICB4LWFwaWdlbi1wcm9qZWN0OgogICAgICBuYW1lOiBDb2xvcnMKICAgICAgZGVzY3JpcHRpb246IFRoaXMgd291bGQgYmUgdGhlIENvbG9ycyBwcm9qZWN0CiAgICAgIHZlcnNpb246IDEuMC4wCiAgICAgIGphdmEtcHJvcGVydGllczoKICAgICAgICBncm91cC1pZDogdGhlLmdyb3VwCiAgICAgICAgYXJ0aWZhY3QtaWQ6IGFwcAogICAgICAgIAojIyBNb2RlbHMKCiMjIyBTY2hlbWUKICAgIHgtYXBpZ2VuLW1vZGVsczoKICAgICAgPG1vZGVsX25hbWU+OgogICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICB0YWJsZTogc3RyaW5nCiAgICAgICAgYXR0cmlidXRlczoKICAgICAgICAgIC0gbmFtZTogc3RyaW5nCiAgICAgICAgICAgIHR5cGU6IHN0cmluZyBbRU5VTVtBcnJheSwgU3RyaW5nLCBCb29sZWFuLCBEb3VibGUsIEZsb2F0LCBJbnRlZ2VyLCBMb25nLCBMb2NhbERhdGUgeSBPZmZzZXREYXRlVGltZSwgQ29tcG9zZWRJRF0gbyA8bW9kZWxfbmFtZT5dCiAgICAgICAgICAgIGl0ZW1zLXR5cGU6IHN0cmluZyBbPG1vZGVsX25hbWU+XQogICAgICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgICAgIGNvbHVtbjogc3RyaW5nCiAgICAgICAgICAgICAgcHJpbWFyeS1rZXk6IGJvb2xlYW4KICAgICAgICAgICAgICBmb3JlaWduLWNvbHVtbjogc3RyaW5nCiAgICAgICAgICAgICAgaW50ZXJtZWRpYXRlLXRhYmxlOiBzdHJpbmcKICAgICAgICAgICAgICBvd25lcjogYm9vbGVhbgogICAgICAgICAgICB2YWxpZGF0aW9uczoKICAgICAgICAgICAgICAtIHR5cGU6IHN0cmluZyBbRU5VTVtOb3ROdWxsLCBTaXplLCBNaW4sIE1heCwgRW1haWwsIE5vdEVtcHR5LCBOb3RCbGFuaywgUG9zaXRpdmUsIFBvc2l0aXZlT3JaZXJvLCBOZWdhdGl2ZSwgTmVnYXRpdmVPclplcm8sIFBhc3QsIFBhc3RPclByZXNlbnQsIEZ1dHVyZSwgRnV0dXJlT3JQcmVzZW50LCBQYXR0ZXJuLCBEaWdpdHMsIERlY2ltYWxNaW4sIERlY2ltYWxNYXhdXQogICAgICAgICAgICAgICAgbWluOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICBtYXg6IGludGVnZXIKICAgICAgICAgICAgICAgIHJlZ2V4OiBzdHJpbmcKICAgICAgICAgICAgICAgIHZhbHVlOiBpbnRlZ2VyIHwgc3RyaW5nCiAgICAgICAgICAgICAgICBpbnRlZ2VyOiBpbnRlZ2VyCiAgICAgICAgICAgICAgICBmcmFjdGlvbjogaW50ZWdlcgogICAgICAgICAgICAgICAgaW5jbHVzaXZlOiBib29sZWFuICAgCiAgICAgICAgICAgICAgICAgIAojIyMgRGVmaW5pdGlvbgotIGB4LWFwaWdlbi1tb2RlbHNgOiBTZWN0aW9uIHdoZXJlIHByb2plY3QgbW9kZWxzIGFyZSBkZWZpbmVkCiAgLSBgPG1vZGVsX25hbWU+YDogTmFtZSBvZiB0aGUgbW9kZWwKICAgIC0gYHJlbGF0aW9uYWwtcGVyc2lzdGVuY2VgOiBTZWN0aW9uIHdoZXJlIGFsbCBhc3BlY3RzIHJlbGF0ZWQgdG8gdGhlIG1vZGVsJ3MgcmVsYXRpb25hbCBwZXJzaXN0ZW5jZSBhcmUgaW5kaWNhdGVkCiAgICAgIC0gYHRhYmxlYDogTmFtZSBvZiB0aGUgdGFibGUgaW4gdGhlIGRhdGFiYXNlCiAgICAtIGBhdHRyaWJ1dGVzYDogU2VjdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBtb2RlbCdzIGF0dHJpYnV0ZXMKICAgICAgLSBgbmFtZWA6IE5hbWUgb2YgdGhlIGF0dHJpYnV0ZQogICAgICAtIGB0eXBlYDogVHlwZSBvZiB0aGUgYXR0cmlidXRlLCBzdXBwb3J0ZWQgdHlwZXMgYXJlOiBbQXJyYXksIFN0cmluZywgQm9vbGVhbiwgRG91YmxlLCBGbG9hdCwgSW50ZWdlciwgTG9uZywgTG9jYWxEYXRlLCBPZmZzZXREYXRlVGltZSwgQ29tcG9zZWRJRF0sIG9yIGluIHRoZSBjYXNlIG9mIGFub3RoZXIgbW9kZWwsIHRoZSBuYW1lIG9mIHRoYXQgbW9kZWwKICAgICAgLSBgaXRlbXMtdHlwZWA6IEluIHRoZSBjYXNlIG9mIHRoZSBgdHlwZWAgYmVpbmcgYW4gYEFycmF5YCwgdGhpcyBmaWVsZCBzaG91bGQgYmUgZGVmaW5lZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIG1vZGVsCiAgICAgIC0gYGF0dHJpYnV0ZXNgOiBTaW1pbGFyIHRvIHRoZSBgYXR0cmlidXRlc2Agb2YgdGhlIG1vZGVsLCBvbmx5IHVzZWQgd2hlbiB0aGUgYHR5cGVgIGlzIENvbXBvc2VkSUQgdG8gaW5kaWNhdGUgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBpZGVudGlmaWVyCiAgICAgIC0gYHJlbGF0aW9uYWwtcGVyc2lzdGVuY2VgOiBTZWN0aW9uIHdoZXJlIGFsbCBhc3BlY3RzIHJlbGF0ZWQgdG8gdGhlIHJlbGF0aW9uYWwgcGVyc2lzdGVuY2Ugb2YgdGhlIG1vZGVsJ3MgYXR0cmlidXRlIGFyZSBpbmRpY2F0ZWQKICAgICAgICAtIGBjb2x1bW5gOiBOYW1lIG9mIHRoZSBjb2x1bW4gaW4gdGhlIGRhdGFiYXNlCiAgICAgICAgLSBgY29sdW1uc2A6IFJlbGF0aW9uc2hpcCBvZiBjb2x1bW5zIGZyb20gdGhlIGN1cnJlbnQgdGFibGUgdG8gYW5vdGhlciByZWxhdGVkIHRhYmxlIHdoZW4gZGVhbGluZyB3aXRoIGEgbW9kZWwgd2l0aCBhIGNvbXBvc2l0ZSBpZGVudGlmaWVyIChlYWNoIGVudHJ5IGlzIGRlZmluZWQgYXMga2V5OiB2YWx1ZSB3aGVyZSB0aGUga2V5IGlzIHRoZSBuYW1lIGluIHRoZSBjdXJyZW50IHRhYmxlIGFuZCB0aGUgdmFsdWUgaXMgdGhlIG5hbWUgaW4gdGhlIHJlbGF0ZWQgdGFibGUpCiAgICAgICAgLSBgcHJpbWFyeS1rZXlgOiBJbmRpY2F0ZXMgaWYgaXQgaXMgdGhlIHByaW1hcnkga2V5LCBpZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGBmYWxzZWAKICAgICAgICAtIGBmb3JlaWduLWNvbHVtbmA6IEluZGljYXRlcyB0aGUgbmFtZSBvZiB0aGUgY29sdW1uIGluIHRoZSByZWxhdGVkIHRhYmxlCiAgICAgICAgLSBgZm9yZWlnbi1jb2x1bW5zYDogUmVsYXRpb25zaGlwIG9mIGNvbHVtbnMgaW4gdGhlIHJlbGF0ZWQgdGFibGUgdG8gdGhlIGN1cnJlbnQgdGFibGUgd2hlbiBkZWFsaW5nIHdpdGggYSBtb2RlbCB3aXRoIGEgY29tcG9zaXRlIGlkZW50aWZpZXIgKGVhY2ggZW50cnkgaXMgZGVmaW5lZCBhcyBrZXk6IHZhbHVlIHdoZXJlIHRoZSBrZXkgaXMgdGhlIG5hbWUgaW4gdGhlIHJlbGF0ZWQgdGFibGUgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgbmFtZSBpbiB0aGUgY3VycmVudCB0YWJsZSkKICAgICAgICAtIGBpbnRlcm1lZGlhdGUtdGFibGVgOiBOYW1lIG9mIHRoZSBpbnRlcm1lZGlhdGUgdGFibGUgaW4gdGhvc2UgYXR0cmlidXRlcyB0aGF0IHJlcHJlc2VudCBhIG1hbnktdG8tbWFueSByZWxhdGlvbnNoaXAKICAgICAgICAtIGBvd25lcmA6IEluZGljYXRlcyBpZiB0aGlzIHBhcnQgb2YgdGhlIHJlbGF0aW9uc2hpcCBpcyB0aGUgb3duZXIsIG5lY2Vzc2FyeSBpbiBvbmUtdG8tb25lIG9yIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcHMKICAgICAgICAtIGBzZXF1ZW5jZWA6IFNlY3Rpb24gd2hlcmUgdGhlIG9wdGlvbmFsIGdlbmVyYXRvciB0byB1c2UgZm9yIHRoZSBwcmltYXJ5IGtleSBjYW4gYmUgaW5kaWNhdGVkCiAgICAgIC0gYHZhbGlkYXRpb25zYDogU2VjdGlvbiB3aGVyZSBhdHRyaWJ1dGUgdmFsaWRhdGlvbnMgYXJlIGRlZmluZWQKICAgICAgICAtIGB0eXBlYDogVGhlIHN1cHBvcnRlZCB0eXBlcyBmb3IgdmFsaWRhdGlvbiBhcmUgYXMgZm9sbG93czogW05vdE51bGwsIFNpemUsIE1pbiwgTWF4LCBFbWFpbCwgTm90RW1wdHksIE5vdEJsYW5rLCBQb3NpdGl2ZSwgUG9zaXRpdmVPclplcm8sIE5lZ2F0aXZlLCBOZWdhdGl2ZU9yWmVybywgUGFzdCwgUGFzdE9yUHJlc2VudCwgRnV0dXJlLCBGdXR1cmVPclByZXNlbnQsIFBhdHRlcm4sIERpZ2l0cywgRGVjaW1hbE1pbiwgRGVjaW1hbE1heF0KICAgICAgICAtIGBtaW5gOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgU2l6ZWAKICAgICAgICAtIGBtYXhgOiBWYWx1ZSB1c2VkIHdoZW4gdGhlIGB0eXBlYCBmaWVsZCBpcyBgU2l6ZWAKICAgICAgICAtIGByZWdleGA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBQYXR0ZXJuYAogICAgICAgIC0gYHZhbHVlYDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYE1pbmAsIGBNYXhgLCBgRGVjaW1hbE1pbmAsIG9yIGBEZWNpbWFsTWF4YCAKICAgICAgICAtIGBpbnRlZ2VyYDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYERpZ2l0c2AsIHJlcHJlc2VudGluZyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlIG51bWJlcgogICAgICAgIC0gYGZyYWN0aW9uYDogVmFsdWUgdXNlZCB3aGVuIHRoZSBgdHlwZWAgZmllbGQgaXMgYERpZ2l0c2AsIHJlcHJlc2VudGluZyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBkZWNpbWFsIHBhcnQgb2YgdGhlIG51bWJlcgogICAgICAgIC0gYGluY2x1c2l2ZWA6IFZhbHVlIHVzZWQgd2hlbiB0aGUgYHR5cGVgIGZpZWxkIGlzIGBEZWNpbWFsTWluYCBvciBgRGVjaW1hbE1heGAKCiMjIyBTYW1wbGVzCiAgICB4LWFwaWdlbi1tb2RlbHM6CiAgICAgIENvbG9yOgogICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICB0YWJsZTogY29sb3JzCiAgICAgICAgYXR0cmlidXRlczoKICAgICAgICAgIC0gbmFtZTogaWQKICAgICAgICAgICAgdHlwZTogTG9uZwogICAgICAgICAgICByZWxhdGlvbmFsLXBlcnNpc3RlbmNlOgogICAgICAgICAgICAgIGNvbHVtbjogaWQKICAgICAgICAgICAgICBwcmltYXJ5LWtleTogdHJ1ZQogICAgICAgICAgICB2YWxpZGF0aW9uczoKICAgICAgICAgICAgICAtIHR5cGU6IE5vdE51bGwKICAgICAgICAgIC0gbmFtZTogbmFtZQogICAgICAgICAgICB0eXBlOiBTdHJpbmcKICAgICAgICAgICAgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZToKICAgICAgICAgICAgICBjb2x1bW46IG5hbWUKICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgLSB0eXBlOiBQYXR0ZXJuCiAgICAgICAgICAgICAgICByZWdleDogW0EtWl0rCiAgICAgIENvbXBvc2VkOgogICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICB0YWJsZTogY29tcG9zZWQKICAgICAgICBhdHRyaWJ1dHJlczoKICAgICAgICAgIC0gbmFtZTogaWQKICAgICAgICAgICAgdHlwZTogQ29tcG9zZWRJRAogICAgICAgICAgICB2YWxpZGF0aW9uczoKICAgICAgICAgICAgICAgLSB0eXBlOiBOb3ROdWxsCiAgICAgICAgICAgIGF0dHJpYnV0ZXM6CiAgICAgICAgICAgICAgLSBuYW1lOiBvbmUKICAgICAgICAgICAgICAgIHR5cGU6IFN0cmluZwogICAgICAgICAgICAgICAgcmVsYXRpb25hbC1wZXJzaXN0ZW5jZToKICAgICAgICAgICAgICAgICAgY29sdW1uOiBjX29uZQogICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6CiAgICAgICAgICAgICAgICAgLSB0eXBlOiBOb3ROdWxsCiAgICAgICAgICAgICAgLSBuYW1lOiB0d28KICAgICAgICAgICAgICAgIHR5cGU6IEludGVnZXIgICAgICAKICAgICAgICAgICAgICAgIHJlbGF0aW9uYWwtcGVyc2lzdGVuY2U6CiAgICAgICAgICAgICAgICAgIGNvbHVtbjogY190d28gICAgICAKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zOgogICAgICAgICAgICAgICAgIC0gdHlwZTogTm90TnVsbAoKIyMgUGF0aCBleHBhbnNpb24KCiMjIyBTY2hlbWUKICAgIHBhdGhzOgogICAgICA8cGF0aD46CiAgICAgICAgLi4uCiAgICAgICAgeC1hcGlnZW4tYmluZGluZzoKICAgICAgICAgIG1vZGVsOiBzdHJpbmcKICAgICAgICAgIAojIyMgRGVmaW5pdGlvbgotIGB4LWFwaWdlbi1iaW5kaW5nYDogU2VjdGlvbiB3aGVyZSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBlbmRwb2ludCBhbmQgdGhlIG1vZGVsIHdlIHdpbGwgdXNlIGlzIGRlZmluZWQKICAgLSBgbW9kZWxgOiBJbiB0aGlzIGZpZWxkLCB3ZSBjYW4gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgbW9kZWwuCiAKIyMjIFNhbXBsZQogICAgcGF0aHM6CiAgICAgIC9jb2xvcnM6CiAgICAgICAgeC1hcGlnZW4tYmluZGluZzoKICAgICAgICAgIG1vZGVsOiBDb2xvcgogICAgICAgICAgCiMjIEV4dGVuc2lvbiBvZiB0aGUgc2NoZW1hIHNlY3Rpb24gb2YgdGhlIHJlcXVlc3RCb2R5CgojIyMgU2NoZW1lCgogICAgc2NoZW1hczoKICAgICAgPHNjaGVtYT46CiAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgIG1vZGVsOiBzdHJpbmcKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgPHByb3BfbmFtZT46CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICAgIG1vZGVsOiBzdHJpbmcKICAgICAgICAgICAgZmllbGQ6IHN0cmluZwogICAgICAgIDxwcm9wX25hbWVfMj46CiAgICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgICBtb2RlbDogc3RyaW5nCgojIyMgRGVmaW5pdGlvbgoKLSBgeC1hcGlnZW4tbWFwcGluZ2A6IFNlY3Rpb24gd2hlcmUgYWxsIG1hcHBpbmcgZGF0YSBiZXR3ZWVuIHJlc291cmNlcyBhbmQgbW9kZWxzIGFyZSBkZWZpbmVkLiBFYWNoIGF0dHJpYnV0ZSBvZiBhbiBpbnB1dCByZXNvdXJjZSwgaW5jbHVkaW5nIHRoZSBpbnB1dCByZXNvdXJjZSBpdHNlbGYsIGNhbiBoYXZlIHRoaXMgc2VjdGlvbiBkZWZpbmVkLiBJZiBpdCBpcyBub3QgZGVmaW5lZCwgaXQgaXMgYXNzdW1lZCB0byBoYXZlIHRoZSBkZWZhdWx0IHZhbHVlcyBpbmRpY2F0ZWQgaW4gZWFjaCBzZWN0aW9uLgogIC0gYG1vZGVsYDogTmFtZSBvZiB0aGUgbW9kZWwgdGhhdCB0aGUgcmVzb3VyY2Ugb3IgYXR0cmlidXRlIHJlcHJlc2VudHMuIElmIG5vdCBzcGVjaWZpZWQgYXQgdGhlIHJlc291cmNlIGxldmVsLCBpdCBpcyBub3QgY29uc2lkZXJlZCBhIHN0YW5kYXJkIGlucHV0IHJlc291cmNlLgogIC0gYGZpZWxkYDogTmFtZSBvZiB0aGUgbW9kZWwgYXR0cmlidXRlIHRvIHdoaWNoIHRoZSByZXNvdXJjZSBhdHRyaWJ1dGUgd2lsbCBiZSBtYXBwZWQuIEJ5IGRlZmF1bHQsIGlmIG5vdGhpbmcgaXMgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIG1hcHBlZCB0byBhbiBhdHRyaWJ1dGUgd2l0aCB0aGUgc2FtZSBuYW1lIGlmIGl0IGV4aXN0czsgb3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGlnbm9yZWQuIFRoZXJlIGFyZSB0d28gc3BlY2lmaWMgY2FzZXMgaW4gd2hpY2ggaXQgaXMgbWFuZGF0b3J5IHRvIGRlZmluZSB0aGlzIGZpZWxkOgogICAgLSBXaGVuIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgaW4gdGhlIHJlc291cmNlIGFuZCBpbiB0aGUgbW9kZWwgYXJlIGRpZmZlcmVudDoKICAgICAgYGBgeWFtbAogICAgICBub21icmU6CiAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgIGZpZWxkOiBwcmltZXJOb21icmUKICAgICAgYGBgCiAgICAtIFdoZW4gdGhlIGF0dHJpYnV0ZSBpbiB0aGUgcmVzb3VyY2UgaXMgYW4gYWJicmV2aWF0aW9uIG9mIHRoZSBpZGVudGlmaWVyIG9mIGEgbmVzdGVkIG1vZGVsOgogICAgICBgYGB5YW1sCiAgICAgIGNvbG9yOgogICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgICBtb2RlbDogY29sb3IKICAgICAgICAgIGZpZWxkOiB2YWxvckNyb21hdGljby5pZAogICAgICBgYGAKCiMjIEV4cGFuc2lvbiBvZiB0aGUgcmVzcG9uc2Ugb3V0bGluZSBzZWN0aW9uCgojIyMgUHJlY29uZGl0aW9ucwoKVGhlIEFwaWdlbiBleHRlbnNpb24gZm9yIE9wZW5BUEkgZm9yY2VzIHVzIHRvIHRha2UgaW50byBhY2NvdW50IGEgc2VyaWVzIG9mIGNvbmRpdGlvbnMgc28gdGhhdCBlbmRwb2ludCByZXNwb25zZXMgY29tcGx5IHdpdGggdGhlIHN0YW5kYXJkLgoKIyMjIyBIYXZlIGEgZGVmaW5lZCBzdGFuZGFyZCByZXNwb25zZQoKYGBgYHlhbWwKICBzY2hlbWFzOgogICAgc3RhbmRhcmRfcmVzcG9uc2VfcmVzdWx0OgogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHJlc3VsdDoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgc3RhdHVzOgogICAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgICAgaHR0cF9jb2RlOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgZXJyb3JzOgogICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvc3RhbmRhcmRfZXJyb3InCiAgICAgICAgICAgIGluZm86CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIHRyYWNlX2lkOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBudW1fZWxlbWVudHM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgcmVxdWlyZWQ6CiAgICAgICAgICAgIC0gc3RhdHVzCiAgICAgICAgICAgIC0gaHR0cF9jb2RlCiAgICAgICAgICAgIC0gdHJhY2VfaWQKICAgIHN0YW5kYXJkX2Vycm9yOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBjb2RlOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1lc3NhZ2U6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKYGBgYAoKIyMjIyBIYXZlIGEgc2luZ2xlIHN0YW5kYXJkIGNvbGxlY3Rpb24gcmVzcG9uc2UgZGVmaW5lZCBmb3IgZWFjaCBtb2RlbAoKYGBgYHlhbWwKICBzY2hlbWFzOgogICAgc3RhbmRhcmRfcmVzcG9uc2VfY29sbGVjdGlvbl88bW9kZWw+OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9zdGFuZGFyZF9yZXNwb25zZV9yZXN1bHQiCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGRhdGE6CiAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgIDxtb2RlbF9wbHVyYWw+OgogICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvPG1vZGVsX3Jlc291cmNlPiIKYGBgYAoKIyMjIyBIYXZlIGEgc2luZ2xlIHNpbXBsZSBzdGFuZGFyZCByZXNwb25zZSBkZWZpbmVkIGZvciBlYWNoIG1vZGVsCgpgYGBgeWFtbAogIHNjaGVtYXM6CiAgICBzdGFuZGFyZF9yZXNwb25zZV88bW9kZWw+OgogICAgICBhbGxPZjoKICAgICAgICAtICRyZWY6ICIjL2NvbXBvbmVudHMvc2NoZW1hcy9zdGFuZGFyZF9yZXNwb25zZV9yZXN1bHQiCiAgICAgICAgLSB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIGRhdGE6CiAgICAgICAgICAgICAgJHJlZjogIiMvY29tcG9uZW50cy9zY2hlbWFzLzxtb2RlbF9yZXNvdXJjZT4iCmBgYGAKCiMjIyBTY2hlbWUKCiAgICBzY2hlbWFzOgogICAgICA8c2NoZW1hPjoKICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgbW9kZWw6IHN0cmluZwogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICA8cHJvcF9uYW1lPjoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgeC1hcGlnZW4tbWFwcGluZzoKICAgICAgICAgICAgZmllbGQ6IHN0cmluZwogICAgICAgICAgICAKIyMjIERlZmluaXRpb24KLSBgeC1hcGlnZW4tbWFwcGluZ2A6IFNlY3Rpb24gd2hlcmUgYWxsIG1hcHBpbmcgZGF0YSBiZXR3ZWVuIHJlc291cmNlcyBhbmQgbW9kZWxzIGFyZSBkZWZpbmVkLiBFYWNoIG91dHB1dCByZXNvdXJjZSBtdXN0IGhhdmUgdGhpcyBzZWN0aW9uIGRlZmluZWQuCiAgLSBgbW9kZWxgOiBOYW1lIG9mIHRoZSBtb2RlbCB0aGF0IHRoZSByZXNvdXJjZSByZXByZXNlbnRzLgogIC0gYGZpZWxkYDogTmFtZSBvZiB0aGUgbW9kZWwgYXR0cmlidXRlIHRvIHdoaWNoIHRoZSByZXNvdXJjZSBhdHRyaWJ1dGUgd2lsbCBiZSBtYXBwZWQuCgojIyMgU2FtcGxlCgogICAgY29sb3I6CiAgICAgIHgtYXBpZ2VuLW1hcHBpbmc6CiAgICAgICAgbW9kZWw6IENvbG9yCiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGpzb25faWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICB4LWFwaWdlbi1tYXBwaW5nOgogICAgICAgICAgICBmaWVsZDogaWQKICAgICAgICBuYW1lOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZm9ybXM6CiAgICAgICAgICAkcmVmOiAiIy9jb21wb25lbnRzL3NjaGVtYXMvZm9ybXMiCgoKIyMg8J+SmyBTcG9uc29ycwo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vYXBpYWRkaWN0cy5vcmcvIj4KICAgIAk8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLmNsb3VkYXBwaS5uZXQvd2ViL2ltYWdlLzQyNDgvTE9HT0Nsb3VkYXBwaTIwMjBWZXJzaW9uZXMtMDEucG5nIiBhbHQ9ImNsb3VkYXBwaSIgd2lkdGg9IjE1MCIvPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3R5bGVzL2Jsb2NrX3RlYXNlcl9pbWFnZS9wdWJsaWMvaW1nL2xvZ29zLXNpbWJvbG9zL2xvZ29fY2VudHJhZG9fbWQucG5nP2l0b2s9NHJUVWhtY2oiIGFsdD0ibWQiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGlxdWFsaXR5LmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5L2Nyb3BwZWQtbG9nby1hcGlxdWFsaXR5LXByaW5jaXBhbC0xLTE3MHg3MC5wbmciIGhlaWdodCA9ICI3NSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+ + readmeEtag: '"9508a07b6a44d5e5d5fb30a76d9e9fe174daa46d89eec1a906f1c4baf63de0c4"' + readmeLastModified: Tue, 12 Sep 2023 11:14:53 GMT repositoryId: 317847354 description: >- Apigen allow generate springboot archetipe using openapi file as mapping tool between the openapi definition and the database. created: '2020-12-02T11:56:38Z' - updated: '2023-09-11T11:03:24Z' + updated: '2023-09-12T11:16:24Z' language: Java archived: false stars: 21 @@ -12231,8 +12231,8 @@ owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 - repoEtag: '"1c535b8ece767862204767d076cfc49e2e79e3be57478c676e9930709cfc46c8"' - repoLastModified: Mon, 11 Sep 2023 11:03:24 GMT + repoEtag: '"4f69a13a8fea220a9cd6ecd1abe83b00d1b1bb0c60846fa7fc85fe9ac74125de"' + repoLastModified: Tue, 12 Sep 2023 11:16:24 GMT category: SDK foundInMaster: true oldLocations: @@ -12358,7 +12358,7 @@ forks: 1 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 - repoEtag: '"b303427ec3ff25bd28d94097e1639aceb59310e2acd511044d0b41a15ae718ce"' + repoEtag: '"f88bd080a856814a3a26a8113a69f9fd39c2b68c31ad43bf4126c1495ec60cae"' repoLastModified: Sun, 03 Sep 2023 01:56:39 GMT category: Server Implementations foundInMaster: true @@ -12436,7 +12436,7 @@ owner: hei-school logo: https://avatars.githubusercontent.com/u/88576095?v=4 license: MIT - repoEtag: '"af8916706651188f9497b3c81aa069b6119b66d0687976d3cccaf905f025e313"' + repoEtag: '"d3bc1ea34472a3266f4169940c78e3970c9b6605ad0c02f91e3de525a11a96e9"' repoLastModified: Tue, 05 Sep 2023 12:48:46 GMT foundInMaster: true category: Code Generators @@ -12712,17 +12712,17 @@ repositoryId: 673944158 description: This repository contains the specification files for PayPal REST APIs. created: '2023-08-02T19:26:26Z' - updated: '2023-09-11T14:31:14Z' + updated: '2023-09-12T22:41:08Z' language: null archived: false - stars: 19 - watchers: 6 + stars: 21 + watchers: 8 forks: 21 owner: paypal logo: https://avatars.githubusercontent.com/u/476675?v=4 license: Apache-2.0 - repoEtag: '"65972c1f4bf656a3fb0c2ac02d3ac48c2e8979e1f62eb0108318fa7a3b5a44f8"' - repoLastModified: Mon, 11 Sep 2023 14:31:14 GMT + repoEtag: '"64e1e6d548297923a97b1dca2aa3c4dbfb25431815926843c4d84c33f4ca5320"' + repoLastModified: Tue, 12 Sep 2023 22:41:08 GMT category: Code Generators foundInMaster: true - source: openapi3 tags @@ -12923,12 +12923,12 @@ language: TypeScript archived: false stars: 17 - watchers: 3 + watchers: 4 forks: 12 owner: louis-lau logo: https://avatars.githubusercontent.com/u/1346804?v=4 license: AGPL-3.0 - repoEtag: '"8374af10fa6c2080ba8805143caea6125cc71a43f70af78fdbbbccfe484d2ef4"' + repoEtag: '"285f7372058b883b37c1c7530f3ab3e25c1768e8c4af5d4a0e6c8196fcff8f49"' repoLastModified: Fri, 01 Sep 2023 09:54:20 GMT foundInMaster: true category: Server Implementations @@ -13223,7 +13223,7 @@ owner: F0rzend logo: https://avatars.githubusercontent.com/u/50886859?v=4 license: MIT - repoEtag: '"6fcc1cb5daa2661557c356aa1b894381c466a433eb2bd31bfed21a8ab1ca0f9b"' + repoEtag: '"5dbbfd3a893d2656b66d54323b9e4e4d5766f9f0bfc90d9c75acea6a6ba6ca24"' repoLastModified: Mon, 06 Feb 2023 05:38:13 GMT category: Server Implementations foundInMaster: true @@ -13465,7 +13465,7 @@ owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"e861972fce4b68b5c67876f18685136b9844ba3203833a549d03e64ab93298ef"' + repoEtag: '"7e645448bfab4dad6c601f895e3a3411c962a3810dfbb3de0b21183f827f9f80"' repoLastModified: Fri, 25 Aug 2023 19:26:20 GMT foundInMaster: true category: Testing @@ -13793,7 +13793,7 @@ owner: prince-chrismc logo: https://avatars.githubusercontent.com/u/16867443?v=4 license: MIT - repoEtag: '"320b646337f7bebfd3e02d966babcb39d2e109a4d2deed09a4018b5f57f76138"' + repoEtag: '"e4cce0de896f7219e3016bc344c9c0caee3a7cd573b8681977d404c2176bc6b1"' repoLastModified: Sun, 03 Sep 2023 18:18:42 GMT foundInMaster: true category: Server @@ -14057,7 +14057,7 @@ forks: 2 owner: yapily logo: https://avatars.githubusercontent.com/u/36482918?v=4 - repoEtag: '"c0ec2fd1540722d546f133bd4a9e7030f424404fcd8c09c972e81b1665031576"' + repoEtag: '"4b5571aa4f6b5360aff93fab2d925f7db818d53344ff3e12774411261c9d789c"' repoLastModified: Fri, 11 Aug 2023 03:09:03 GMT foundInMaster: true category: @@ -14704,7 +14704,7 @@ owner: Jnig logo: https://avatars.githubusercontent.com/u/3729585?v=4 license: MIT - repoEtag: '"2e7909896df36f6337a0e9861902135cda2e79b7ade163847b91ea51b29da727"' + repoEtag: '"b0d911ac5e8bbe38a0858e511e07da02855fda9ddc848ef01cf0106b88336ea1"' repoLastModified: Mon, 21 Aug 2023 21:29:33 GMT category: - Data Validators @@ -14773,9 +14773,9 @@ id: 582d0c64ef558eda3703792449bdfa30 repositoryMetadata: base64Readme: >- - IyDwn5ug77iPIE9wZW5hcGkycG9zdG1hbiAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0wLjEuMC1wdXJwbGUpICFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tb3BlbmFwaS0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSkgIVtKc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhc2NyaXB0LSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPWphdmFzY3JpcHQmbG9nb0NvbG9yPXdoaXRlKSAhW1Bvc3RtYW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUG9zdG1hbi1GRjZDMzc/c3R5bGU9ZmxhdCZsb2dvPXBvc3RtYW4mbG9nb0NvbG9yPXdoaXRlKSBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKKipPcGVuYXBpMnBvc3RtYW4qKiBjcmVhdGVzIGF1dG9tYXRpYyB0ZXN0cyBmcm9tIE9wZW5hcGkgMy4wIHVzaW5nIHBvc3RtYW4gZm9ybWF0LiBBbHNvLCBpdCBjcmVhdGVzIGVudmlyb25tZW50cyBmaWxlcywgZGVwZW5kaW5nIG9mIGNvbmZpZ3VyYXRpb24uClRob3NlIGNvbGxlY3Rpb25zIGNhbiBiZSBpbXBvcnRlbmQgaW4gcG9zdGFuIGFwcGxpY2F0aW9uLiAgVGhlIHRlc3RzIGluY2x1ZGVzIHRlc3RzIGZvciAyeHgsIDR4eC4uLiBhbmQgdGVzdHMgdG8gdmFsaWRhdGUgb3V0cHV0IGZvcm1hdHMuCgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwoKWyFbVHdpdHRlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Ud2l0dGVyLSUyMzAwMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXgmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9BUElBZGRpY3RzKSAKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLSUyMzU4NjVGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL1pkYkdxTUJZeTgpClshW0xpbmtlZEluXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpbmtlZGluLSUyMzAwNzdCNS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWxpbmtlZGluJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2FwaWFkZGljdHMvKQpbIVtGYWNlYm9va10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9GYWNlYm9vay0lMjMxODc3RjIuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1GYWNlYm9vayZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5mYWNlYm9vay5jb20vYXBpYWRkaWN0cykKWyFbWW91VHViZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Zb3VUdWJlLSUyM0ZGMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPVlvdVR1YmUmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQEFQSUFkZGljdHNsbWFvbykKCiMg8J+ZjCBKb2luIHRoZSAqKk9wZW5hcGkycG9zdG1hbioqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgT3BlbmFwaTJwb3N0bWFuIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtNYWRyaWQgRGlnaXRhbF0oaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9zZXJ2aWNpb3Mvc2VkZS1lbGVjdHJvbmljYS9tYWRyaWQtZGlnaXRhbC8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksICwgYW5kIHRoaXMgaW1wbGllcyB0aGF0IHlvdSB0b28gY2FuIGJlY29tZSBhIHBhcnQgb2Ygb3VyIGVmZm9ydCB0byBlbmhhbmNlIEFwaUFkZGljdHMhCgpXZSdyZSBleGNpdGVkIHRvIHByaW9yaXRpemUgdGFza3MgYmFzZWQgb24gY29tbXVuaXR5IGlucHV0OiB5b3UgY2FuIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIPCfk5EgR2V0dGluZyBzdGFydGVkIAojIyBUYWJsZSBvZiBjb250ZW50CgoqIFtTdHJ1Y3R1cmUgYW5kIHN1Ym1vZHVsZXNdKCNzdHJ1Y3R1cmUtYW5kLXN1Ym1vZHVsZXMpCiogW0J1aWxkIGFuZCBydW5dKCNidWlsZC1hbmQtcnVuKQogICogW1ByZXJlcXVpc2l0ZXNdKCNwcmVyZXF1aXNpdGVzKQogICogW0dldCB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBmaXJzdCB0aW1lXSgjZ2V0LXRoZS1zb3VyY2UtY29kZS1mb3ItdGhlLWZpcnN0LXRpbWUpCiAgKiBbUnVuXSgjcnVuKQogICogW0dldCB0aGUgbGF0ZXN0IGNoYW5nZXNdKCNnZXQtdGhlLWxhdGVzdC1jaGFuZ2VzKQoqIFtDb250cmlidXRlXSgjY29udHJpYnV0ZSkKICAqIFtJREUgc3VwcG9ydF0oI2lkZS1zdXBwb3J0KQogICAgKiBbSW50ZWxsaUogSURFQV0oI2ludGVsbGlqLWlkZWEpCiAgICAqIFtFY2xpcHNlXSgjZWNsaXBzZSkKKiBbRG9jdW1lbnRhdGlvbl0oI2RvY3VtZW50YXRpb24pCiogW0FkdmFuY2VkIEZ1bmN0aW9uYWxpdHldKCNhZHZhbmNlZC1mdW5jdGlvbmFsaXR5KQoqIFtBZGRpdGlvbmFsIHJlc291cmNlc10oI2FkZGl0aW9uYWwtcmVzb3VyY2VzKQoKCiMjIFN0cnVjdHVyZSBhbmQgc3VibW9kdWxlcwoKKiAqW2RvY3NdKGRvY3MpKiAtIFRoaXMgbW9kdWxlIGNvbnRlbnRzIHRoZSBndWlkZXMgdG8gY29uZmlndXJhdGUgYW5kIHJ1biB0aGUgcHJvZHVjdC4KKiAqW2V4YW1wbGVdKGV4YW1wbGUpKiAtIEludGVncmF0aW9uIGFuZCBzeXN0ZW0gdGVzdHMgZm9yIFNvYXBVSS4KKiAqW3NyY10oc3JjKSog4oCTIFNvdXJjZSBjb2RlCiogKlt0ZXN0XShzb2FwdWktbWF2ZW4tcGx1Z2luLXRlc3RlcikqIC0gVGVzdGluZyBmb2xkZXIKCiMjIEJ1aWxkIGFuZCBydW4KIyMjIFByZXJlcXVpc2l0ZXMKWW91IG5lZWQgbm9kZSB2MTAgb3IgbGF0ZXIuCgoKIyMjIHJ1bgoKUGxlYXNlIHJldmlldyB0aGUgczJwX2NvbmZpZ19maWxlLmpzb24gYmVmb3JlIHRvIGV4ZWN1dGUgdGhlIGNvbW1hbmQKRXhlY3V0ZSAKbm9kZSBpbmRleC5qcyAtLWNvbmZpZ3VyYXRpb24gczJwX2NvbmZpZ19maWxlLmpzb24gLS1maWxlIGV4YW1wbGUvc3dhZ2dlcl9wcm92aW5jaWFzLnltbAoKVGhlIG91dHB1dCBmaWxlcyBhcmUgdGhlIGZvbGxvd2luZyAoaW4gZXhhbXBsZSBmb2xkZXIpOiAKKiBTV0FHR0VSX0FQSV9UZXN0U3VpdGVfREVWLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uCiogU1dBR0dFUl9BUElfVGVzdFN1aXRlRW52X0RFVi5wb3N0bWFuX2Vudmlyb25tZW50Lmpzb24KKiBTV0FHR0VSX0FQSV9UZXN0U3VpdGVfUFJPRC5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbgoqIFNXQUdHRVJfQVBJX1Rlc3RTdWl0ZUVudl9QUk9ELnBvc3RtYW5fZW52aXJvbm1lbnQuanNvbgoKCkluIHBvc3RtYW46CgoqIGltcG9ydCBnZW5lcmF0ZWQgcG9zdG1hbiBjb2xsZWN0aW9uIGZpbGUgaW4gcG9zdG1hbiAKKiBpbXBvcnQgZ2VuZXJhdGVkIHBvc3RtYW4gZW52aXJvbm1lbnQgZmlsZSBpbiBwb3N0bWFuCgoKKiB1cGRhdGUgdmFyaWFibGVzIGluIHRoZSBlbnZpcm5vbWVudCB0byB0ZXN0IGFsbCBjYXNlcwoKIyMjIEdldCB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBmaXJzdCB0aW1lCgpUbyBnZXQgdGhlIHNvdXJjZSBjb2RlLCBydW4gYGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXBpYWRkaWN0cy9vcGVuYXBpMnBvc3RtYW4uZ2l0YCBpbiB0aGUgZm9sZGVyIHdoZXJlIHlvdSB3YW50IHRvIGNsb25lIHRoZSByb290IGZvbGRlciBvZiB0aGUgT3BlbmFwaTJwb3N0bWFuIHByb2plY3QuCgoKIyMjIENvbmZpZ3VyYXRpb24gZmlsZQoKQ29sbGVjdGlvbnMgYW5kIGVudmlyb25tZW50cyB0byBnZW5lcmF0ZSBjYW4gYmUgY29uZmlndXJlZCB1c2luZyBhIEpTT04gY29uZmlndXJhdGlvbiBmaWxlLiBDb2xsZWN0aW9uIGFuZCBlbnZpcm9ubWVudCBuYW1lIGNhbiBiZSBzcGVjaWZpZWQsIGFzIHdlbGwgYXMgdGhlIHRhcmdldCBmb2xkZXIgZm9yIHJlc3VsdGluZyBmaWxlcywgdGhlIGF1dGhvcml6YXRpb25zIGNvbGxlY3Rpb24gdG8gYmUgdXNlZCBhbmQgc29tZSBvdGhlciBjaGFyYWN0ZXJpc3RpY3MuIFRoaXMgY29uZmlndXJhdGlvbiBmaWxlIGhhcyBhbiBzcGVjaWZpY2F0aW9uIGFuZCBleGFtcGxlcyB0aGF0IGNhbiBiZSByZWFkIG9uIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnQ6ICAKW0NvbmZpZ3VyYXRpb24gZmlsZSBvcGVuYXBpMnBvc3RtYW5dKC4vZG9jcy9vcGVuYXBpMnBvc3RtYW4tQXJjaGl2b19kZV9jb25maWd1cmFjaW9uLnBkZikuIFRoaXMgZG9jdW1lbnQgaXMgb25seSBhdmFpbGFibGUgaW4gc3BhbmlzaCBieSBub3cuIGl0IHdpbGwgYmUgc29vbiB0cmFuc2xhdGVkIHRvIGVuZ2xpc2guCgphbiBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBpbmNsdWRlZCBpbiBmaWxlIHN0cnVjdHVyZS4KCiMjIyBXb3Jrc3BhY2UgY29uZmlndXJhdGlvbgoKTm9kZS5qcyBhbmQgbnBtIHBhY2thZ2UgbWFuYWdlciBhcmUgcmVxdWlyZWQgdG8gcnVuIHRoZSB0b29sLiBJdHMgYWR2aWNlZCB0byB1c2UgcHJlY29uZmlndXJlZCBpbnN0YWxsYXRpb24gdG9vbHMgcHJvdmlkZWQgYnkgdGhlIG1hbnVmYWN0dXJlcjoKW2h0dHBzOi8vbm9kZWpzLm9yZy9lcy9kb3dubG9hZC9dKGh0dHBzOi8vbm9kZWpzLm9yZy9lcy9kb3dubG9hZC8pCgojIyDwn5KbIFNwb25zb3JzCjxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMuY2xvdWRhcHBpLm5ldC93ZWIvaW1hZ2UvNDI0OC9MT0dPQ2xvdWRhcHBpMjAyMFZlcnNpb25lcy0wMS5wbmciIGFsdD0iY2xvdWRhcHBpIiB3aWR0aD0iMTUwIi8+CjxpbWcgc3JjPSJodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3R5bGVzL2Jsb2NrX3RlYXNlcl9pbWFnZS9wdWJsaWMvaW1nL2xvZ29zLXNpbWJvbG9zL2xvZ29fY2VudHJhZG9fbWQucG5nP2l0b2s9NHJUVWhtY2oiIGFsdD0ibWQiIHdpZHRoPSIxNTAiLz4KPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoK - readmeEtag: '"c2a66200e3290ce50e2e8df7e838f6848b93bc03baa7463cc02edc0a44c4fd4b"' - readmeLastModified: Mon, 11 Sep 2023 10:08:28 GMT + IyDwn5ug77iPIE9wZW5hcGkycG9zdG1hbiAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0wLjEuMC1wdXJwbGUpICFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tb3BlbmFwaS0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSkgIVtKc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qYXZhc2NyaXB0LSUyM0VEOEIwMC5zdmc/c3R5bGU9ZmxhdCZsb2dvPWphdmFzY3JpcHQmbG9nb0NvbG9yPXdoaXRlKSAhW1Bvc3RtYW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvUG9zdG1hbi1GRjZDMzc/c3R5bGU9ZmxhdCZsb2dvPXBvc3RtYW4mbG9nb0NvbG9yPXdoaXRlKSBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKKipPcGVuYXBpMnBvc3RtYW4qKiBjcmVhdGVzIGF1dG9tYXRpYyB0ZXN0cyBmcm9tIE9wZW5hcGkgMy4wIHVzaW5nIHBvc3RtYW4gZm9ybWF0LiBBbHNvLCBpdCBjcmVhdGVzIGVudmlyb25tZW50cyBmaWxlcywgZGVwZW5kaW5nIG9mIGNvbmZpZ3VyYXRpb24uClRob3NlIGNvbGxlY3Rpb25zIGNhbiBiZSBpbXBvcnRlbmQgaW4gcG9zdGFuIGFwcGxpY2F0aW9uLiAgVGhlIHRlc3RzIGluY2x1ZGVzIHRlc3RzIGZvciAyeHgsIDR4eC4uLiBhbmQgdGVzdHMgdG8gdmFsaWRhdGUgb3V0cHV0IGZvcm1hdHMuCgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwoKWyFbVHdpdHRlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Ud2l0dGVyLSUyMzAwMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPXgmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly90d2l0dGVyLmNvbS9BUElBZGRpY3RzKSAKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9EaXNjb3JkLSUyMzU4NjVGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWRpc2NvcmQmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly9kaXNjb3JkLmdnL1pkYkdxTUJZeTgpClshW0xpbmtlZEluXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpbmtlZGluLSUyMzAwNzdCNS5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPWxpbmtlZGluJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2FwaWFkZGljdHMvKQpbIVtGYWNlYm9va10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9GYWNlYm9vay0lMjMxODc3RjIuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1GYWNlYm9vayZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5mYWNlYm9vay5jb20vYXBpYWRkaWN0cykKWyFbWW91VHViZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9Zb3VUdWJlLSUyM0ZGMDAwMC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPVlvdVR1YmUmbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vQEFQSUFkZGljdHNsbWFvbykKCiMg8J+ZjCBKb2luIHRoZSAqKk9wZW5hcGkycG9zdG1hbioqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgT3BlbmFwaTJwb3N0bWFuIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtNYWRyaWQgRGlnaXRhbF0oaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9zZXJ2aWNpb3Mvc2VkZS1lbGVjdHJvbmljYS9tYWRyaWQtZGlnaXRhbC8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksIHdlbGNvbWluZyB5b3UgdG8gam9pbiBvdXIgZWZmb3J0IHRvIGVuaGFuY2UgQXBpQWRkaWN0cywgYW5kIHdlJ3JlIGV4Y2l0ZWQgdG8gcHJpb3JpdGl6ZSB0YXNrcyBiYXNlZCBvbiBjb21tdW5pdHkgaW5wdXQsIGludml0aW5nIHlvdSB0byByZXZpZXcgYW5kIGNvbGxhYm9yYXRlIHRocm91Z2ggb3VyIEdpdEh1YiBpc3N1ZSB0cmFja2VyLgoKRmVlbCBmcmVlIHRvIGRyb3AgYnkgYW5kIGdyZWV0IHVzIG9uIG91ciBHaXRIdWIgZGlzY3Vzc2lvbiBvciBEaXNjb3JkIGNoYXQuIFlvdSBjYW4gYWxzbyBzaG93IHlvdXIgc3VwcG9ydCBieSBnaXZpbmcgdXMgc29tZSBHaXRIdWIgc3RhcnMg4q2Q77iPLCBvciBieSBmb2xsb3dpbmcgdXMgb24gVHdpdHRlciwgTGlua2VkSW4sIGFuZCBzdWJzY3JpYmluZyB0byBvdXIgWW91VHViZSBjaGFubmVsISDwn5qACgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FwaWFkZGljdHMpCgoKIyDwn5ORIEdldHRpbmcgc3RhcnRlZCAKIyMgVGFibGUgb2YgY29udGVudAoKKiBbU3RydWN0dXJlIGFuZCBzdWJtb2R1bGVzXSgjc3RydWN0dXJlLWFuZC1zdWJtb2R1bGVzKQoqIFtCdWlsZCBhbmQgcnVuXSgjYnVpbGQtYW5kLXJ1bikKICAqIFtQcmVyZXF1aXNpdGVzXSgjcHJlcmVxdWlzaXRlcykKICAqIFtHZXQgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgZmlyc3QgdGltZV0oI2dldC10aGUtc291cmNlLWNvZGUtZm9yLXRoZS1maXJzdC10aW1lKQogICogW1J1bl0oI3J1bikKICAqIFtHZXQgdGhlIGxhdGVzdCBjaGFuZ2VzXSgjZ2V0LXRoZS1sYXRlc3QtY2hhbmdlcykKKiBbQ29udHJpYnV0ZV0oI2NvbnRyaWJ1dGUpCiAgKiBbSURFIHN1cHBvcnRdKCNpZGUtc3VwcG9ydCkKICAgICogW0ludGVsbGlKIElERUFdKCNpbnRlbGxpai1pZGVhKQogICAgKiBbRWNsaXBzZV0oI2VjbGlwc2UpCiogW0RvY3VtZW50YXRpb25dKCNkb2N1bWVudGF0aW9uKQoqIFtBZHZhbmNlZCBGdW5jdGlvbmFsaXR5XSgjYWR2YW5jZWQtZnVuY3Rpb25hbGl0eSkKKiBbQWRkaXRpb25hbCByZXNvdXJjZXNdKCNhZGRpdGlvbmFsLXJlc291cmNlcykKCgojIyBTdHJ1Y3R1cmUgYW5kIHN1Ym1vZHVsZXMKCiogKltkb2NzXShkb2NzKSogLSBUaGlzIG1vZHVsZSBjb250ZW50cyB0aGUgZ3VpZGVzIHRvIGNvbmZpZ3VyYXRlIGFuZCBydW4gdGhlIHByb2R1Y3QuCiogKltleGFtcGxlXShleGFtcGxlKSogLSBJbnRlZ3JhdGlvbiBhbmQgc3lzdGVtIHRlc3RzIGZvciBTb2FwVUkuCiogKltzcmNdKHNyYykqIOKAkyBTb3VyY2UgY29kZQoqICpbdGVzdF0oc29hcHVpLW1hdmVuLXBsdWdpbi10ZXN0ZXIpKiAtIFRlc3RpbmcgZm9sZGVyCgojIyBCdWlsZCBhbmQgcnVuCiMjIyBQcmVyZXF1aXNpdGVzCllvdSBuZWVkIG5vZGUgdjEwIG9yIGxhdGVyLgoKCiMjIyBydW4KClBsZWFzZSByZXZpZXcgdGhlIHMycF9jb25maWdfZmlsZS5qc29uIGJlZm9yZSB0byBleGVjdXRlIHRoZSBjb21tYW5kCkV4ZWN1dGUgCm5vZGUgaW5kZXguanMgLS1jb25maWd1cmF0aW9uIHMycF9jb25maWdfZmlsZS5qc29uIC0tZmlsZSBleGFtcGxlL3N3YWdnZXJfcHJvdmluY2lhcy55bWwKClRoZSBvdXRwdXQgZmlsZXMgYXJlIHRoZSBmb2xsb3dpbmcgKGluIGV4YW1wbGUgZm9sZGVyKTogCiogU1dBR0dFUl9BUElfVGVzdFN1aXRlX0RFVi5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbgoqIFNXQUdHRVJfQVBJX1Rlc3RTdWl0ZUVudl9ERVYucG9zdG1hbl9lbnZpcm9ubWVudC5qc29uCiogU1dBR0dFUl9BUElfVGVzdFN1aXRlX1BST0QucG9zdG1hbl9jb2xsZWN0aW9uLmpzb24KKiBTV0FHR0VSX0FQSV9UZXN0U3VpdGVFbnZfUFJPRC5wb3N0bWFuX2Vudmlyb25tZW50Lmpzb24KCgpJbiBwb3N0bWFuOgoKKiBpbXBvcnQgZ2VuZXJhdGVkIHBvc3RtYW4gY29sbGVjdGlvbiBmaWxlIGluIHBvc3RtYW4gCiogaW1wb3J0IGdlbmVyYXRlZCBwb3N0bWFuIGVudmlyb25tZW50IGZpbGUgaW4gcG9zdG1hbgoKCiogdXBkYXRlIHZhcmlhYmxlcyBpbiB0aGUgZW52aXJub21lbnQgdG8gdGVzdCBhbGwgY2FzZXMKCiMjIyBHZXQgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUgZmlyc3QgdGltZQoKVG8gZ2V0IHRoZSBzb3VyY2UgY29kZSwgcnVuIGBnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2FwaWFkZGljdHMvb3BlbmFwaTJwb3N0bWFuLmdpdGAgaW4gdGhlIGZvbGRlciB3aGVyZSB5b3Ugd2FudCB0byBjbG9uZSB0aGUgcm9vdCBmb2xkZXIgb2YgdGhlIE9wZW5hcGkycG9zdG1hbiBwcm9qZWN0LgoKCiMjIyBDb25maWd1cmF0aW9uIGZpbGUKCkNvbGxlY3Rpb25zIGFuZCBlbnZpcm9ubWVudHMgdG8gZ2VuZXJhdGUgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgYSBKU09OIGNvbmZpZ3VyYXRpb24gZmlsZS4gQ29sbGVjdGlvbiBhbmQgZW52aXJvbm1lbnQgbmFtZSBjYW4gYmUgc3BlY2lmaWVkLCBhcyB3ZWxsIGFzIHRoZSB0YXJnZXQgZm9sZGVyIGZvciByZXN1bHRpbmcgZmlsZXMsIHRoZSBhdXRob3JpemF0aW9ucyBjb2xsZWN0aW9uIHRvIGJlIHVzZWQgYW5kIHNvbWUgb3RoZXIgY2hhcmFjdGVyaXN0aWNzLiBUaGlzIGNvbmZpZ3VyYXRpb24gZmlsZSBoYXMgYW4gc3BlY2lmaWNhdGlvbiBhbmQgZXhhbXBsZXMgdGhhdCBjYW4gYmUgcmVhZCBvbiB0aGUgZm9sbG93aW5nIGRvY3VtZW50OiAgCltDb25maWd1cmF0aW9uIGZpbGUgb3BlbmFwaTJwb3N0bWFuXSguL2RvY3Mvb3BlbmFwaTJwb3N0bWFuLUFyY2hpdm9fZGVfY29uZmlndXJhY2lvbi5wZGYpLiBUaGlzIGRvY3VtZW50IGlzIG9ubHkgYXZhaWxhYmxlIGluIHNwYW5pc2ggYnkgbm93LiBpdCB3aWxsIGJlIHNvb24gdHJhbnNsYXRlZCB0byBlbmdsaXNoLgoKYW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgaW5jbHVkZWQgaW4gZmlsZSBzdHJ1Y3R1cmUuCgojIyMgV29ya3NwYWNlIGNvbmZpZ3VyYXRpb24KCk5vZGUuanMgYW5kIG5wbSBwYWNrYWdlIG1hbmFnZXIgYXJlIHJlcXVpcmVkIHRvIHJ1biB0aGUgdG9vbC4gSXRzIGFkdmljZWQgdG8gdXNlIHByZWNvbmZpZ3VyZWQgaW5zdGFsbGF0aW9uIHRvb2xzIHByb3ZpZGVkIGJ5IHRoZSBtYW51ZmFjdHVyZXI6CltodHRwczovL25vZGVqcy5vcmcvZXMvZG93bmxvYWQvXShodHRwczovL25vZGVqcy5vcmcvZXMvZG93bmxvYWQvKQoKIyMg8J+SmyBTcG9uc29ycwo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vYXBpYWRkaWN0cy5vcmcvIj4KICAgIAk8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLmNsb3VkYXBwaS5uZXQvd2ViL2ltYWdlLzQyNDgvTE9HT0Nsb3VkYXBwaTIwMjBWZXJzaW9uZXMtMDEucG5nIiBhbHQ9ImNsb3VkYXBwaSIgd2lkdGg9IjE1MCIvPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3R5bGVzL2Jsb2NrX3RlYXNlcl9pbWFnZS9wdWJsaWMvaW1nL2xvZ29zLXNpbWJvbG9zL2xvZ29fY2VudHJhZG9fbWQucG5nP2l0b2s9NHJUVWhtY2oiIGFsdD0ibWQiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLXdlYi5zMy5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMi8wMy8xNzE1NTczNi9jcm9wcGVkLUFQSUFkZGljdHMtbG9nb3RpcG9fcm9qby5wbmciIGhlaWdodCA9ICI3NSI+Cgk8L2E+CjwvcD4KCg== + readmeEtag: '"d7db5d87950c77cfd49896798cc74281af02ed30030ca8f3578a3693e8498624"' + readmeLastModified: Tue, 12 Sep 2023 10:54:31 GMT repositoryId: 259690576 description: >- Project open source financed by Madrid Digital (Spain) and CloudAPPi S.L @@ -14792,7 +14792,7 @@ owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 - repoEtag: '"00d4381f7f504b49ca5e19ec31ec610bc962d175a261f0308efcff952510eae1"' + repoEtag: '"b412a893c29a19444f3ed7984ae7d3e13bc75a0073330e520c0ccc04132cf953"' repoLastModified: Thu, 23 Feb 2023 10:42:11 GMT category: Server Implementations foundInMaster: true @@ -14853,7 +14853,7 @@ owner: commonism logo: https://avatars.githubusercontent.com/u/164513?v=4 license: BSD-3-Clause - repoEtag: '"9c7087b01e58d9204774219ff4373cd865e662cfd4d3011e0c9937607c598450"' + repoEtag: '"0df2ce108c28ebc4f458c0648420504139579787d430adea5887e80536c0c7d2"' repoLastModified: Mon, 28 Aug 2023 11:31:36 GMT foundInMaster: true id: f7fe65d08545a563279e1526fe797380 @@ -14922,17 +14922,17 @@ An open source implementation of Spectral for applying linting rules to an OpenAPI which can be deployed to AWS, Azure, and Heroku. created: '2021-11-23T21:07:39Z' - updated: '2023-08-22T18:00:54Z' + updated: '2023-09-12T06:33:43Z' language: TypeScript archived: false - stars: 8 + stars: 9 watchers: 2 forks: 4 owner: postman-open-technologies logo: https://avatars.githubusercontent.com/u/79494470?v=4 license: Apache-2.0 - repoEtag: '"93ebdecd96a47b8ce250cc19670745c13493ea81b2d65f61c7ecb0321cbb7068"' - repoLastModified: Tue, 22 Aug 2023 18:00:54 GMT + repoEtag: '"1af3ed608321873e6730ebd20d960b2ca05440cb7c7e94bc62f1c5b6c21052eb"' + repoLastModified: Tue, 12 Sep 2023 06:33:43 GMT foundInMaster: true category: Description Validators id: 651ef44cefb0498286e46666d0f496cf @@ -15761,7 +15761,7 @@ owner: mchangrh logo: https://avatars.githubusercontent.com/u/15132783?v=4 license: GPL-3.0 - repoEtag: '"4a7dfa91c014bd55c6f0a9dba06ff17af9c424abd8572f9821976384323bc582"' + repoEtag: '"0d7adb58a46c2922cf8e8a57674d35b9cdf1b7b07835e373c8f96abb141c45f5"' repoLastModified: Fri, 08 Sep 2023 18:26:10 GMT foundInMaster: true category: Documentation @@ -16057,7 +16057,7 @@ forks: 0 owner: stackql logo: https://avatars.githubusercontent.com/u/95105302?v=4 - repoEtag: '"1d84f28ffc960498c8636ca8af0984307f5bf5f591d9af9c0df297fa8f37501f"' + repoEtag: '"45776bceccd33f7d968f6bf7916dbacb9dd9ddb30b45579bb1d31893a93ed954"' repoLastModified: Tue, 25 Jul 2023 15:04:03 GMT category: Server Implementations foundInMaster: true @@ -16485,7 +16485,7 @@ owner: meabed logo: https://avatars.githubusercontent.com/u/45731?v=4 license: MIT - repoEtag: '"49af1d8a802abb20df26a23a30bd5212f7709e7106338ae862a0098b64acb1f7"' + repoEtag: '"9efb7ef70d3267e4f371c3b55da525599221dad411e2852179672d0539f1abf9"' repoLastModified: Sun, 02 Apr 2023 20:55:39 GMT foundInMaster: true category: @@ -16814,17 +16814,17 @@ repositoryId: 630692437 description: Dependency injection for AioHTTP created: '2023-04-21T00:08:54Z' - updated: '2023-07-29T21:16:27Z' + updated: '2023-09-12T12:33:56Z' language: Python archived: false - stars: 5 + stars: 6 watchers: 1 forks: 0 owner: taskiq-python logo: https://avatars.githubusercontent.com/u/109470701?v=4 license: MIT - repoEtag: '"3746ff83ef939012987a3d1c99eeccbd015e423750a516531cdbe7ca14fc8b48"' - repoLastModified: Sat, 29 Jul 2023 21:16:27 GMT + repoEtag: '"55312d239dcd802ed2cf05b481984d46c55e67f536fb9794a276034220d03be8"' + repoLastModified: Tue, 12 Sep 2023 12:33:56 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -17065,9 +17065,9 @@ id: 9d4c1981e20f0c421731b1a708ab85cd repositoryMetadata: base64Readme: >- - CiMg8J+boO+4jyBPcGVuQVBJMlNvYXBVSSAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0wLjEuMC1wdXJwbGUpICFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tc29hcC0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSkgIVtKYXZhXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmEtJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mbGF0JmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpICBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKW0FQSV0oLi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2FwaS55YW1sKSB0byBnZW5lcmF0ZSBhIFNvYXBVSSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChma2EgU3dhZ2dlciBTcGVjaWZpY2F0aW9uKQoKR2l2ZW4gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uLCBlaXRoZXIgdjIgb3IgdjMsIGEgU29hcFVJIHByb2plY3QgaXMgZ2VuZXJhdGVkIHdpdGggdGhlIF9yZXF1ZXN0c18gZm9yIGVhY2ggcmVzb3VyY2Ugb3BlcmF0aW9uIGFuZCBhIF90ZXN0IHN1aXRlXy4gVGhlIHJlc3BvbnNlIGlzIHRoZSBjb250ZW50IG9mIHRoZSBTb2FwVUkgcHJvamVjdCBpbiBYTUwgZm9ybWF0IHRvIHNhdmUgYXMgZmlsZSBhbmQgaW1wb3J0IGludG8gdGhlIFNvYXBVSSBhcHBsaWNhdGlvbi4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqT3BlbkFQSTJTb2FwVUkqKiBBZG9wdGVycyBsaXN0IArwn5OiIElmIE9wZW5BUEkyU29hcFVJIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtSU0ldKGh0dHBzOi8vd3d3LnJ1cmFsc2VydmljaW9zaW5mb3JtYXRpY29zLmNvbS8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksICwgYW5kIHRoaXMgaW1wbGllcyB0aGF0IHlvdSB0b28gY2FuIGJlY29tZSBhIHBhcnQgb2Ygb3VyIGVmZm9ydCB0byBlbmhhbmNlIEFwaUFkZGljdHMhCgpXZSdyZSBleGNpdGVkIHRvIHByaW9yaXRpemUgdGFza3MgYmFzZWQgb24gY29tbXVuaXR5IGlucHV0OiB5b3UgY2FuIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCiMg4pqZ77iPIEZ1bmN0aW9uYWxpdGllcwoKW0hlcmVdKC4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9hcGkueWFtbCkgeW91IGNhbiBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgQVBJIFN3YWdnZXIgdG8gU29hcFVJCgotIEJhc2U2NCBEZWNvZGluZyBvZiBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIENvbnRlbnQKLSBQYXJzZSBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uIENvbnRlbnQgaW50byBzd2FnZ2VyLWNvcmUgcmVwcmVzZW50YXRpb24gYXMgSmF2YSBQT0pPCi0gQ3JlYXRlIFNvYXBVSSBQcm9qZWN0CiAgLSBBZGQgT0F1dGggMi4wIFByb2ZpbGVzIHRvIFNvYXBVSSBQcm9qZWN0CiAgLSBBZGQgbmV3IFJFU1QgU2VydmljZSB0byBTb2FwVUkgUHJvamVjdAogICAgLSBBZGQgRW5kcG9pbnRzIHRvIFJFU1QgU2VydmljZQogICAgLSBTZXQgYmFzZVBhdGggdG8gUkVTVCBTZXJ2aWNlCiAgICAtIEFkZCBSZXNvdXJjZXMgKFBhdGhzKSB0byBSRVNUIFNlcnZpY2UKICAgICAgLSBBZGQgTWV0aG9kcyAoVmVyYnMgLyBPcGVyYXRpb25zKSB0byBlYWNoIFJlc291cmNlCiAgICAgICAgLSBTZXQgUkVTVCBSZXF1ZXN0IHRvIGVhY2ggTWV0aG9kCiAgICAgICAgICAtIFNldCBDcmVkZW50aWFscyAoT0F1dGggMi4wIFByb2ZpbGUpCiAgICAgICAgICAtIFNldCBQYXJhbWV0ZXJzIGV4YW1wbGVzIHRvIFJFU1QgUmVxdWVzdAogICAgICAgICAgLSBTZXQgUmVxdWVzdCBCb2R5IGV4YW1wbGUgdG8gUkVTVCBSZXF1ZXN0CiAgICAgICAgICAtIFNldCBDdXN0b20gSGVhZGVycyB0byBSRVNUIFJlcXVlc3QKICAtIEFkZCBuZXcgVGVzdFN1aXRlcyB0byBTb2FwVUkgUHJvamVjdCBmb3IgZWFjaCBNZXRob2QKICAgIC0gQWRkIFRlc3RDYXNlcyB0byBUZXN0U3VpdGUKICAgICAgLSBBZGQgRXhlY3V0aW9uIFRlc3QgU3RlcCAoUkVTVCBSZXF1ZXN0KQoKTm9tZW5jbGF0dXJlIHVzZWQ6Ci0gU29hcFVJIFByb2plY3Q6IHthcGlOYW1lfVxfe2FwaVZlcnNpb259Ci0gUkVTVCBTZXJ2aWNlOiB7YXBpTmFtZX0KLSBSZXNvdXJjZToge3BhdGh9Ci0gTWV0aG9kOiB7aHR0cE1ldGhvZEluVXBwZXJjYXNlfQotIFJlcXVlc3Q6IHtkZWZhdWx0UmVxdWVzdE5hbWV9Ci0gVGVzdCBTdWl0ZToge3BhdGh9XF97aHR0cE1ldGhvZEluVXBwZXJjYXNlfVxfVGVzdFN1aXRlCi0gVGVzdCBDYXNlIChEZWZhdWx0KTogU3VjY2Vzc1xfVGVzdENhc2UKLSBUZXN0IENhc2U6IHt0ZXN0Q2FzZU5hbWV9XF9UZXN0Q2FzZQotIFRlc3QgU3RlcDogRXhlY3V0aW9uXF97aHR0cE1ldGhvZEluVXBwZXJjYXNlfVxfVGVzdFN0ZXAKClRoZSB2YXJpYWJsZXMgYXJlIG9idGFpbmVkIGZyb206Ci0gYXBpTmFtZTogcHJvcGVydHkgYXBpTmFtZSBvZiByZXF1ZXN0IGJvZHkKLSBhcGlWZXJzaW9uOiB2ZXJzaW9uIGRlZmluZWQgaW4gdGhlICdpbmZvJyBzZWN0aW9uIG9mIHRoZSBPcGVuQVBJIFNwZWMKLSBwYXRoOiBlYWNoIHBhdGggZGVmaW5lZCBpbiB0aGUgT3BlbkFQSSBTcGVjCi0gaHR0cE1ldGhvZEluVXBwZXJjYXNlOiBlYWNoIEhUVFAgbWV0aG9kcyBvZiBwYXRocyBkZWZpbmVkIGluIE9wZW5BUEkgU3BlYwotIHRlc3RDYXNlTmFtZTogZWFjaCB0ZXN0IGNhc2UgbmFtZSBkZWZpbmVkIGluIHRoZSBwcm9wZXJ0eSB0ZXN0Q2FzZU5hbWVzIG9mIHJlcXVlc3QgYm9keQoKIyMgVGVjaG5vbG9neSBzdGFjawojIyMgT3ZlcnZpZXcKCnxUZWNobm9sb2d5ICAgICAgICAgICAgICB8RGVzY3JpcHRpb24gICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8Q29yZSBGcmFtZXdvcmsgICAgICAgICAgfFNwcmluZyBCb290IDIgICAgICAgICAgICAgICB8CgojIyMgU2VydmVyIC0gQmFja2VuZAoKfFRlY2hub2xvZ3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8W0pESyAxMV0oaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vZW4vamF2YS9qYXZhc2UvMTEvKSAgICAgICAgICAgICAgICAgICAgICAgfEphdmEgRGV2ZWxvcG1lbnQgS2l0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfFtTcHJpbmcgQm9vdCAyXShodHRwczovL3NwcmluZy5pby9wcm9qZWN0cy9zcHJpbmctYm9vdCkgIHxGcmFtZXdvcmsgdG8gZWFzZSB0aGUgYm9vdHN0cmFwcGluZyBhbmQgZGV2ZWxvcG1lbnQgb2YgbmV3IFNwcmluZyBBcHBsaWNhdGlvbnN8CnxbTWF2ZW4gM10oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnKSAgICAgICAgICAgICAgICAgICAgICB8RGVwZW5kZW5jeSBNYW5hZ2VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8W1RvbWNhdCA5XShodHRwczovL3RvbWNhdC5hcGFjaGUub3JnKSAgICAgICAgICAgICAgICAgICAgfFNlcnZlciBkZXBsb3kgV0FSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIyAgTGlicmFyaWVzIGFuZCBQbHVnaW5zCnxUZWNobm9sb2d5ICAgICAgICAgICAgICB8RGVzY3JpcHRpb24gICAgICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAp8W0xvbWJva10oaHR0cHM6Ly9wcm9qZWN0bG9tYm9rLm9yZy8pIHxOZXZlciB3cml0ZSBhbm90aGVyIGdldHRlciBvciBlcXVhbHMgbWV0aG9kIGFnYWluLCB3aXRoIG9uZSBhbm5vdGF0aW9uIHlvdXIgY2xhc3MgaGFzIGEgZnVsbHkgZmVhdHVyZWQgYnVpbGRlciwgQXV0b21hdGUgeW91ciBsb2dnaW5nIHZhcmlhYmxlcywgYW5kIG11Y2ggbW9yZS4gICAgICAgICAgICAgIHwKfFtIaWJlcm5hdGUgVmFsaWRhdG9yXShodHRwczovL2hpYmVybmF0ZS5vcmcvdmFsaWRhdG9yLyl8RXhwcmVzcyB2YWxpZGF0aW9uIHJ1bGVzIGluIGEgc3RhbmRhcmRpemVkIHdheSB1c2luZyBhbm5vdGF0aW9uLWJhc2VkIGNvbnN0cmFpbnRzIGFuZCBiZW5lZml0IGZyb20gdHJhbnNwYXJlbnQgaW50ZWdyYXRpb24gd2l0aCBhIHdpZGUgdmFyaWV0eSBvZiBmcmFtZXdvcmtzLnwKfFtTcHJpbmdkb2MgT3BlbkFQSSBVSV0oaHR0cHM6Ly9zcHJpbmdkb2Mub3JnLyl8T3BlbkFQSSAzIExpYnJhcnkgZm9yIHNwcmluZyBib290IHByb2plY3RzLiBJcyBiYXNlZCBvbiBzd2FnZ2VyLXVpLCB0byBkaXNwbGF5IHRoZSBPcGVuQVBJIGRlc2NyaXB0aW9uLnwKfFtTb2FwVUkgY29yZSBtb2R1bGVdKGh0dHBzOi8vd3d3LnNvYXB1aS5vcmcvb3Blbi1zb3VyY2UvKXxTb2FwVUkgaXMgdGhlIHdvcmxkJ3MgbGVhZGluZyBGdW5jdGlvbmFsIFRlc3RpbmcgdG9vbCBmb3IgU09BUCBhbmQgUkVTVCB0ZXN0aW5nLnwKfFtTd2FnZ2VyIFBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItcGFyc2VyKXxQYXJzZXMgT3BlbkFQSSBkZWZpbml0aW9ucyBpbiBKU09OIG9yIFlBTUwgZm9ybWF0IGludG8gc3dhZ2dlci1jb3JlIHJlcHJlc2VudGF0aW9uIGFzIEphdmEgUE9KTywgcmV0dXJuaW5nIGFueSB2YWxpZGF0aW9uIHdhcm5pbmdzL2Vycm9ycy58CgojIPCfk5EgR2V0dGluZyBzdGFydGVkIAoKVGhlc2UgaW5zdHJ1Y3Rpb25zIHdpbGwgZ2V0IHlvdSBhIGNvcHkgb2YgdGhlIHByb2plY3QgdXAgYW5kIHJ1bm5pbmcgb24geW91ciBsb2NhbCBtYWNoaW5lIGZvciBkZXZlbG9wbWVudCBhbmQgdGVzdGluZyBwdXJwb3Nlcy4KCiMjIyBQcmVyZXF1aXNpdGVzCgoqIFtKREsgSW5zdGFsbGF0aW9uXShodHRwczovL2RvY3Mub3JhY2xlLmNvbS9lbi9qYXZhL2phdmFzZS8xMS9pbnN0YWxsL292ZXJ2aWV3LWpkay1pbnN0YWxsYXRpb24uaHRtbCNHVUlELTg2NzdBNzdGLTIzMUEtNDBGNy05OEI5LTFGRDBCNDhDMzQ2QSkKKiBbQXBhY2hlIE1hdmVuIEluc3RhbGxhdGlvbl0oaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2luc3RhbGwuaHRtbCkKKiBbU2V0dGluZyB1cCBMb21ib2tdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvb3ZlcnZpZXcpCiAgKiBbRWNsaXBzZSBhbmQgaXRzIG9mZnNob290c10oaHR0cHM6Ly9wcm9qZWN0bG9tYm9rLm9yZy9zZXR1cC9lY2xpcHNlKQogICogW0ludGVsbGlqIElERUFdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvaW50ZWxsaWopCiAgKiBbTmV0YmVhbnNdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvbmV0YmVhbnMpCiAgKiBbTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gQ29kZV0oaHR0cHM6Ly9wcm9qZWN0bG9tYm9rLm9yZy9zZXR1cC92c2NvZGUpCgojIyMgRXh0ZXJuYWwgZGVwZW5kZW5jaWVzCgpUaGUgcHJvamVjdCB1c2UgX18iU29hcFVJIENvcmUgTW9kdWxlIl9fIGRlcGVuZGVuY3ksIHdoaWNoIGlzIG5vdCBtYXZlbiBkZXBlbmRlbmN5LCBzbyB5b3UgbXVzdCBoYXZlIGludGVybmV0IGFjY2VzcyB0byBkb3dubG9hZCB0aGUgZGVwZW5kZW5jeSBmcm9tIHRoZSBleHRlcm5hbCByZXBvc2l0b3J5LCBiZWxvdyBpcyB0aGUgcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uIGluc2lkZSB0aGUgcG9tLnhtbCBmaWxlLgoKYGBgeG1sCiAgLi4uCgogIDxyZXBvc2l0b3JpZXM+CiAgICA8cmVwb3NpdG9yeT4KICAgICAgPGlkPlNtYXJ0QmVhclBsdWdpblJlcG9zaXRvcnk8L2lkPgogICAgICA8dXJsPmh0dHBzOi8vcmFwaS50b29scy5vcHMuc21hcnRiZWFyLmlvL25leHVzL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYy88L3VybD4JCQkKICAgIDwvcmVwb3NpdG9yeT4KICA8L3JlcG9zaXRvcmllcz4KICAKICAuLi4KYGBgCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIElERQoKVGhlcmUgYXJlIHNldmVyYWwgd2F5cyB0byBydW4gYSBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbiBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIE9uZSB3YXkgaXMgdG8gZXhlY3V0ZSB0aGUgYG1haW5gIG1ldGhvZCBpbiB0aGUgYE9wZW5hcGkyU29hcFVJQXBwbGljYXRpb25gIGNsYXNzIGZyb20geW91ciBJREUuCgojIyMjIEV4YW1wbGUgKEVjbGlwc2UgYW5kIGl0cyBvZmZzaG9vdHMpIDoKKiBEb3dubG9hZCB0aGUgemlwIG9yIGNsb25lIHRoZSBHaXQgcmVwb3NpdG9yeS4KKiBVbnppcCB0aGUgemlwIGZpbGUgKGlmIHlvdSBkb3dubG9hZGVkIG9uZSkKKiBPcGVuIElERQoJKiBGaWxlIC0+IEltcG9ydCAtPiBFeGlzdGluZyBNYXZlbiBQcm9qZWN0IC0+IE5hdmlnYXRlIHRvIHRoZSBmb2xkZXIgcHJvamVjdCAKCSogU2VsZWN0IHRoZSBwcm9qZWN0CiogQ2hvb3NlIHRoZSBTcHJpbmcgQm9vdCBBcHBsaWNhdGlvbiBmaWxlIChzZWFyY2ggZm9yIEBTcHJpbmdCb290QXBwbGljYXRpb24pCiogUmlnaHQgQ2xpY2sgb24gdGhlIGZpbGUgYW5kIFJ1biBhcyBKYXZhIEFwcGxpY2F0aW9uCiogVVJMIHRvIGFjY2VzczogKipodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpLW9wZW5hcGktdG8tc29hcHVpL3YxL3NvYXAtdWktcHJvamVjdHMqKgoKIyMjIFJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uIGxvY2FsbHkgd2l0aCBNYXZlbgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHVzZSB0aGUgW1NwcmluZyBCb290IE1hdmVuIHBsdWdpbl0oaHR0cHM6Ly9kb2NzLnNwcmluZy5pby9zcHJpbmctYm9vdC9kb2NzL2N1cnJlbnQvcmVmZXJlbmNlL2h0bWwvYnVpbGQtdG9vbC1wbHVnaW5zLW1hdmVuLXBsdWdpbi5odG1sKSBsaWtlIHNvOgoKKiBEb3dubG9hZCB0aGUgemlwIG9yIGNsb25lIHRoZSBHaXQgcmVwb3NpdG9yeS4KKiBVbnppcCB0aGUgemlwIGZpbGUgKGlmIHlvdSBkb3dubG9hZGVkIG9uZSkKKiBPcGVuIENvbW1hbmQgUHJvbXB0IGFuZCBDaGFuZ2UgZGlyZWN0b3J5IChjZCkgdG8gZm9sZGVyIGNvbnRhaW5pbmcgcG9tLnhtbAoqIFRvIGJ1aWxkIGFuZCBzdGFydCB0aGUgc2VydmVyIHR5cGUKCmBgYHNoZWxsCiQgbXZuIHNwcmluZy1ib290OnJ1bgpgYGAKCiogVVJMIHRvIGFjY2VzczogKipodHRwOi8vbG9jYWxob3N0OjgwODAvYXBpLW9wZW5hcGktdG8tc29hcHVpL3YxL3NvYXAtdWktcHJvamVjdHMqKgoKIyMjIFJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uIGluIERvY2tlcgoKKiBEb3dubG9hZCB0aGUgemlwIG9yIGNsb25lIHRoZSBHaXQgcmVwb3NpdG9yeS4KKiBVbnppcCB0aGUgemlwIGZpbGUgKGlmIHlvdSBkb3dubG9hZGVkIG9uZSkKKiBPcGVuIENvbW1hbmQgUHJvbXB0IGFuZCBDaGFuZ2UgZGlyZWN0b3J5IChjZCkgdG8gZm9sZGVyIGNvbnRhaW5pbmcgcG9tLnhtbAoqIFRvIGJ1aWxkIGFuZCBzdGFydCB0aGUgZG9ja2VyIGNvbnRhaW5lciB0eXBlCgpgYGBzaGVsbAokIG12biBjbGVhbiBwYWNrYWdlIC1QamFyCiQgZG9ja2VyLWNvbXBvc2UgdXAgLWQKYGBgCgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBkZXBsb3lpbmcgV0FSIG9uIFRvbWNhdAoKVGhlIGNvZGUgY2FuIGFsc28gYmUgYnVpbHQgaW50byBhIHdhciBhbmQgdGhlbiBkZXBsb3llZCBvbiBhIFRvbWNhdCBzZXJ2ZXIuCgoqIAlEb3dubG9hZCB0aGUgemlwIG9yIGNsb25lIHRoZSBHaXQgcmVwb3NpdG9yeS4KKiAJVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogCU9wZW4gQ29tbWFuZCBQcm9tcHQgYW5kIENoYW5nZSBkaXJlY3RvcnkgKGNkKSB0byBmb2xkZXIgY29udGFpbmluZyBwb20ueG1sCiogCVRvIGJ1aWxkIHRoZSB3YXIgdHlwZQoKYGBgc2gKJCBtdm4gY2xlYW4gcGFja2FnZQpgYGAKCiogCU9uY2UgdGhlIHdhciBpcyBidWlsdCwgY29weSB0aGUgb3V0cHV0IFdBUiB0byBUb21jYXQncyB3ZWJhcHBzIGRpcmVjdG9yeS4KCmBgYHNoCiRDQVRBTElOQV9IT01FL3dlYmFwcHMvb3BlbmFwaTJzb2FwdWktPHZlcnNpb24+LndhcgpgYGAKCiogUmVzdGFydCBUb21jYXQgU2VydmVyCiogVVJMIHRvIGFjY2VzczogKipodHRwOi8vbG9jYWxob3N0OjgwODAvb3BlbmFwaTJzb2FwdWkvYXBpLW9wZW5hcGktdG8tc29hcHVpL3YxL3NvYXAtdWktcHJvamVjdHMqKgojIyBGaWxlcyBhbmQgRGlyZWN0b3JpZXMgU3RydWN0dXJlCgpUaGUgcHJvamVjdCBkaXJlY3RvcnkgaGFzIGEgcGFydGljdWxhciBkaXJlY3Rvcnkgc3RydWN0dXJlLiBBIHJlcHJlc2VudGF0aXZlIHByb2plY3QgaXMgc2hvd24gYmVsb3c6CgojIyMgUHJvamVjdCBTdHJ1Y3R1cmUKCmBgYHRleHQKLgrilJzilIDilIAgc3JjCuKUgiAgIOKUlOKUgOKUgCBtYWluCuKUgiAgICAgICDilJTilIDilIAgamF2YQrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aQrilIIgICAgICAgICAgIOKUgiAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuY29uZmlnCuKUgiAgICAgICAgICAg4pSCICAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuY29uc3RhbnRzCuKUgiAgICAgICAgICAg4pSCIArilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5jb250cm9sbGVyCuKUgiAgICAgICAgICAg4pSCIArilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5lcnJvcgrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5lcnJvci5leGNlcHRpb25zCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLmVycm9yLnZhbGlkYXRvcnMK4pSCICAgICAgICAgICDilIIgICAgIArilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5tb2RlbArilIIgICAgICAgICAgIOKUggrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5yZXF1ZXN0CuKUgiAgICAgICAgICAg4pSCCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLnNlcnZpY2UK4pSCICAgICAgICAgICDilIIK4pSCICAgICAgICAgICDilJTilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkudXRpbArilJzilIDilIAgc3JjCuKUgiAgIOKUlOKUgOKUgCBtYWluCuKUgiAgICAgICDilJTilIDilIAgcmVzb3VyY2VzCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIHN0YXRpYwrilIIgICAgICAgICAgIOKUgiAgIOKUlOKUgOKUgCBhcGkueWFtbArilIIgICAgICAgICAgIOKUgiAgIArilIIgICAgICAgICAgIOKUnOKUgOKUgCBhcHBsaWNhdGlvbi5wcm9wZXJ0aWVzCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIGxvZzRqLnByb3BlcnRpZXMK4pSCICAgICAgICAgICDilJTilIDilIAgbWVzc2FnZXMucHJvcGVydGllcwrilJzilIDilIAgSlJFIFN5c3RlbSBMaWJyYXJ5CuKUnOKUgOKUgCBNYXZlbiBEZXBlbmRlbmNpZXMK4pSc4pSA4pSAIHNyYwrilJzilIDilIAgdGFyZ2V0CuKUgiAgIOKUlOKUgOKUgG9wZW5hcGkyc29hcHVpLTEuMC4yCuKUnOKUgOKUgCAuZ2l0bGFiLWNpLnlhbWwK4pSc4pSA4pSAIGxvbWJvay5jb25maWcK4pSc4pSA4pSAIG12bncK4pSc4pSA4pSAIG12bncuY21kCuKUnOKUgOKUgCBwb20ueG1sCuKUlOKUgOKUgCBSRUFETUUubWQKYGBgCgojIyMgUGFja2FnZXMKCiogCWBjb25maWdgIC0gYXBwIGNvbmZpZ3VyYXRpb25zOwoqIAlgY29uc3RhbnRzYCAtIGFwcCBjb250YW50czsKKiAJYGNvbnRyb2xsZXJgIC0gbGlzdGVuIHRvIHRoZSBjbGllbnQ7CiogCWBlcnJvcmAgLSBtYW5hZ2UgZXJyb3JzOwoqIAlgZXhjZXB0aW9uc2AgLSBjdXN0b20gZXhjZXB0aW9uIGhhbmRsaW5nOwoqIAlgdmFsaWRhdG9yc2AgLSBjdXN0b20gdmFsaWRhdGlvbnM7CiogCWBtb2RlbGAgLSBlbnRpdGllczsKKiAJYHJlcXVlc3RgIC0gYm9keSByZXF1ZXN0IG1vZGVsL2VudGl0aWVzOwoqIAlgc2VydmljZWAgLSBidXNpbmVzcyBsb2dpYzsKKiAJYHV0aWxgIC0gdXRpbGl0eSBjbGFzc2VzOwoKCiMjIyBSZXNvdXJjZXMKKiAJYHJlc291cmNlcy9gIC0gY29udGFpbnMgYWxsIHRoZSBzdGF0aWMgcmVzb3VyY2VzLCB0ZW1wbGF0ZXMgYW5kIHByb3BlcnR5IGZpbGVzLgoqIAlgcmVzb3VyY2VzL3N0YXRpY2AgLSBjb250YWlucyBzdGF0aWMgcmVzb3VyY2VzLgoqIAlgcmVzb3VyY2VzL3N0YXRpYy9hcGkueWFtbGAgLSBjb250YWlucyBPcGVuIEFQSSBTcGVjaWZpY2F0aW9uLgoqIAlgcmVzb3VyY2VzL2FwcGxpY2F0aW9uLnByb3BlcnRpZXNgIC0gY29udGFpbnMgYXBwbGljYXRpb24td2lkZSBwcm9wZXJ0aWVzLiBTcHJpbmcgcmVhZHMgdGhlIHByb3BlcnRpZXMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgdG8gY29uZmlndXJlIHlvdXIgYXBwbGljYXRpb24uIFlvdSBjYW4gZGVmaW5lIHNlcnZlcuKAmXMgZGVmYXVsdCBwb3J0LCBzZXJ2ZXLigJlzIGNvbnRleHQgcGF0aCwgZGF0YWJhc2UgVVJMcyBldGMsIGluIHRoaXMgZmlsZS4KKiAJYHJlc291cmNlcy9sb2c0ai5wcm9wZXJ0aWVzYCAtIGNvbnRhaW5zIGNvbnRhaW5zIHRoZSBlbnRpcmUgcnVudGltZSBjb25maWd1cmF0aW9uIHVzZWQgYnkgbG9nNGouIFRoaXMgZmlsZSB3aWxsIGNvbnRhaW4gbG9nNGogYXBwZW5kZXJzIGluZm9ybWF0aW9uLCBsb2cgbGV2ZWwgaW5mb3JtYXRpb24gYW5kIG91dHB1dCBmaWxlIG5hbWVzIGZvciBmaWxlIGFwcGVuZGVycy4KKiAJYHJlc291cmNlcy9tZXNzYWdlcy5wcm9wZXJ0aWVzYCAtIGNvbnRhaW5zIHRoZSBlcnJvciBtZXNzYWdlcyB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi4KKiBtdm53IC8gbXZudy5jbWQgLSBUaGlzIGFsbG93cyB5b3UgdG8gcnVuIHRoZSBNYXZlbiBwcm9qZWN0IHdpdGhvdXQgaGF2aW5nIE1hdmVuIGluc3RhbGxlZCBhbmQgcHJlc2VudCBpbiB0aGUgcGF0aC4gRG93bmxvYWQgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBNYXZlbiBpZiBpdCBjYW4ndCBiZSBmb3VuZCAoYXMgZmFyIGFzIEkga25vdyBieSBkZWZhdWx0IGluIHlvdXIgdXNlciBob21lIGRpcmVjdG9yeSkuIFRoZSBtdm53IGZpbGUgaXMgZm9yIExpbnV4IChiYXNoKSBhbmQgbXZudy5jbWQgaXMgZm9yIHRoZSBXaW5kb3dzIGVudmlyb25tZW50LgoqIAlgcG9tLnhtbGAgLSBjb250YWlucyBhbGwgdGhlIHByb2plY3QgZGVwZW5kZW5jaWVzCgojIyBEZXBsb3kKCiogCUJ1aWxkIHRoZSB3YXIgdHlwZQoKYGBgc2gKJCBtdm4gY2xlYW4gcGFja2FnZQpgYGAKCiogCU9uY2UgdGhlIHdhciBpcyBidWlsdCwgY29weSB0aGUgb3V0cHV0IFdBUiB0byBUb21jYXQncyB3ZWJhcHBzIGRpcmVjdG9yeS4KCmBgYHNoCiRDQVRBTElOQV9IT01FL3dlYmFwcHMvb3BlbmFwaTJzb2FwdWkud2FyCmBgYAoKKiBSZXN0YXJ0IFRvbWNhdCBTZXJ2ZXIKKiBVUkwgdG8gYWNjZXNzOiAqKlw8cHJvdG9jb2xcPjovL1w8aG9zdFw+Olw8cG9ydFw+L29wZW5hcGkyc29hcHVpL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIERvY3VtZW50YXRpb24KCi0gW2NVUkwgRXhhbXBsZV0oZXhhbXBsZS5zaCkKLSBbT3BlbiBBUEkgU3BlY2lmaWNhdGlvbl0oLi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2FwaS55YW1sKQotIFtTd2FnZ2VyIFVJXShodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sKSAtIGBodHRwOi8vbG9jYWxob3N0OjgwODAvc3dhZ2dlci11aS5odG1sYAotIEZpbmQgSmF2YSBEb2MgaW4gKipqYXZhZG9jKiogZm9sZGVyCi0gSmF2YSBEb2MgaXMgZ2VuZXJhdGVkIGluIC4vdGFyZ2V0L3NpdGUvYXBpZG9jc2AgZm9sZGVyIHVzaW5nIHRoZSBNYXZlbiBjb21tYW5kIAoKYGBgc2gKbXZuIGphdmFkb2M6amF2YWRvYwpgYGAKCiMjIPCfkpsgU3BvbnNvcnMKPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPg== - readmeEtag: '"b083e17c51059110704dd0d05d46aac9044a69acd9e43ef2cc60f30c2cad99be"' - readmeLastModified: Mon, 11 Sep 2023 10:16:39 GMT + CiMg8J+boO+4jyBPcGVuQVBJMlNvYXBVSSAhW1JlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvcmVsZWFzZS0wLjEuMC1wdXJwbGUpICFbU3dhZ2dlcl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS8tc29hcC0lMjNDbG9qdXJlP3N0eWxlPWZsYXQmbG9nbz1zd2FnZ2VyJmxvZ29Db2xvcj13aGl0ZSkgIVtKYXZhXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmEtJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mbGF0JmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpICBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKW0FQSV0oLi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RhdGljL2FwaS55YW1sKSB0byBnZW5lcmF0ZSBhIFNvYXBVSSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uIChma2EgU3dhZ2dlciBTcGVjaWZpY2F0aW9uKQoKR2l2ZW4gYW4gT3BlbkFQSSBTcGVjaWZpY2F0aW9uLCBlaXRoZXIgdjIgb3IgdjMsIGEgU29hcFVJIHByb2plY3QgaXMgZ2VuZXJhdGVkIHdpdGggdGhlIF9yZXF1ZXN0c18gZm9yIGVhY2ggcmVzb3VyY2Ugb3BlcmF0aW9uIGFuZCBhIF90ZXN0IHN1aXRlXy4gVGhlIHJlc3BvbnNlIGlzIHRoZSBjb250ZW50IG9mIHRoZSBTb2FwVUkgcHJvamVjdCBpbiBYTUwgZm9ybWF0IHRvIHNhdmUgYXMgZmlsZSBhbmQgaW1wb3J0IGludG8gdGhlIFNvYXBVSSBhcHBsaWNhdGlvbi4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqT3BlbkFQSTJTb2FwVUkqKiBBZG9wdGVycyBsaXN0IArwn5OiIElmIE9wZW5BUEkyU29hcFVJIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtSU0ldKGh0dHBzOi8vd3d3LnJ1cmFsc2VydmljaW9zaW5mb3JtYXRpY29zLmNvbS8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAoKIyDwn5Gp8J+PveKAjfCfkrsgIENvbnRyaWJ1dGUgdG8gQXBpQWRkaWN0cyAKCldlJ3JlIGFuIGluY2x1c2l2ZSBhbmQgb3BlbiBjb21tdW5pdHksIHdlbGNvbWluZyB5b3UgdG8gam9pbiBvdXIgZWZmb3J0IHRvIGVuaGFuY2UgQXBpQWRkaWN0cywgYW5kIHdlJ3JlIGV4Y2l0ZWQgdG8gcHJpb3JpdGl6ZSB0YXNrcyBiYXNlZCBvbiBjb21tdW5pdHkgaW5wdXQsIGludml0aW5nIHlvdSB0byByZXZpZXcgYW5kIGNvbGxhYm9yYXRlIHRocm91Z2ggb3VyIEdpdEh1YiBpc3N1ZSB0cmFja2VyLgoKRmVlbCBmcmVlIHRvIGRyb3AgYnkgYW5kIGdyZWV0IHVzIG9uIG91ciBHaXRIdWIgZGlzY3Vzc2lvbiBvciBEaXNjb3JkIGNoYXQuIFlvdSBjYW4gYWxzbyBzaG93IHlvdXIgc3VwcG9ydCBieSBnaXZpbmcgdXMgc29tZSBHaXRIdWIgc3RhcnMg4q2Q77iPLCBvciBieSBmb2xsb3dpbmcgdXMgb24gVHdpdHRlciwgTGlua2VkSW4sIGFuZCBzdWJzY3JpYmluZyB0byBvdXIgWW91VHViZSBjaGFubmVsISDwn5qACgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FwaWFkZGljdHMpCgojIOKame+4jyBGdW5jdGlvbmFsaXRpZXMKCltIZXJlXSguL3NyYy9tYWluL3Jlc291cmNlcy9zdGF0aWMvYXBpLnlhbWwpIHlvdSBjYW4gY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhlIEFQSSBTd2FnZ2VyIHRvIFNvYXBVSQoKLSBCYXNlNjQgRGVjb2Rpbmcgb2YgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBDb250ZW50Ci0gUGFyc2UgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbiBDb250ZW50IGludG8gc3dhZ2dlci1jb3JlIHJlcHJlc2VudGF0aW9uIGFzIEphdmEgUE9KTwotIENyZWF0ZSBTb2FwVUkgUHJvamVjdAogIC0gQWRkIE9BdXRoIDIuMCBQcm9maWxlcyB0byBTb2FwVUkgUHJvamVjdAogIC0gQWRkIG5ldyBSRVNUIFNlcnZpY2UgdG8gU29hcFVJIFByb2plY3QKICAgIC0gQWRkIEVuZHBvaW50cyB0byBSRVNUIFNlcnZpY2UKICAgIC0gU2V0IGJhc2VQYXRoIHRvIFJFU1QgU2VydmljZQogICAgLSBBZGQgUmVzb3VyY2VzIChQYXRocykgdG8gUkVTVCBTZXJ2aWNlCiAgICAgIC0gQWRkIE1ldGhvZHMgKFZlcmJzIC8gT3BlcmF0aW9ucykgdG8gZWFjaCBSZXNvdXJjZQogICAgICAgIC0gU2V0IFJFU1QgUmVxdWVzdCB0byBlYWNoIE1ldGhvZAogICAgICAgICAgLSBTZXQgQ3JlZGVudGlhbHMgKE9BdXRoIDIuMCBQcm9maWxlKQogICAgICAgICAgLSBTZXQgUGFyYW1ldGVycyBleGFtcGxlcyB0byBSRVNUIFJlcXVlc3QKICAgICAgICAgIC0gU2V0IFJlcXVlc3QgQm9keSBleGFtcGxlIHRvIFJFU1QgUmVxdWVzdAogICAgICAgICAgLSBTZXQgQ3VzdG9tIEhlYWRlcnMgdG8gUkVTVCBSZXF1ZXN0CiAgLSBBZGQgbmV3IFRlc3RTdWl0ZXMgdG8gU29hcFVJIFByb2plY3QgZm9yIGVhY2ggTWV0aG9kCiAgICAtIEFkZCBUZXN0Q2FzZXMgdG8gVGVzdFN1aXRlCiAgICAgIC0gQWRkIEV4ZWN1dGlvbiBUZXN0IFN0ZXAgKFJFU1QgUmVxdWVzdCkKCk5vbWVuY2xhdHVyZSB1c2VkOgotIFNvYXBVSSBQcm9qZWN0OiB7YXBpTmFtZX1cX3thcGlWZXJzaW9ufQotIFJFU1QgU2VydmljZToge2FwaU5hbWV9Ci0gUmVzb3VyY2U6IHtwYXRofQotIE1ldGhvZDoge2h0dHBNZXRob2RJblVwcGVyY2FzZX0KLSBSZXF1ZXN0OiB7ZGVmYXVsdFJlcXVlc3ROYW1lfQotIFRlc3QgU3VpdGU6IHtwYXRofVxfe2h0dHBNZXRob2RJblVwcGVyY2FzZX1cX1Rlc3RTdWl0ZQotIFRlc3QgQ2FzZSAoRGVmYXVsdCk6IFN1Y2Nlc3NcX1Rlc3RDYXNlCi0gVGVzdCBDYXNlOiB7dGVzdENhc2VOYW1lfVxfVGVzdENhc2UKLSBUZXN0IFN0ZXA6IEV4ZWN1dGlvblxfe2h0dHBNZXRob2RJblVwcGVyY2FzZX1cX1Rlc3RTdGVwCgpUaGUgdmFyaWFibGVzIGFyZSBvYnRhaW5lZCBmcm9tOgotIGFwaU5hbWU6IHByb3BlcnR5IGFwaU5hbWUgb2YgcmVxdWVzdCBib2R5Ci0gYXBpVmVyc2lvbjogdmVyc2lvbiBkZWZpbmVkIGluIHRoZSAnaW5mbycgc2VjdGlvbiBvZiB0aGUgT3BlbkFQSSBTcGVjCi0gcGF0aDogZWFjaCBwYXRoIGRlZmluZWQgaW4gdGhlIE9wZW5BUEkgU3BlYwotIGh0dHBNZXRob2RJblVwcGVyY2FzZTogZWFjaCBIVFRQIG1ldGhvZHMgb2YgcGF0aHMgZGVmaW5lZCBpbiBPcGVuQVBJIFNwZWMKLSB0ZXN0Q2FzZU5hbWU6IGVhY2ggdGVzdCBjYXNlIG5hbWUgZGVmaW5lZCBpbiB0aGUgcHJvcGVydHkgdGVzdENhc2VOYW1lcyBvZiByZXF1ZXN0IGJvZHkKCiMjIFRlY2hub2xvZ3kgc3RhY2sKIyMjIE92ZXJ2aWV3Cgp8VGVjaG5vbG9neSAgICAgICAgICAgICAgfERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfENvcmUgRnJhbWV3b3JrICAgICAgICAgIHxTcHJpbmcgQm9vdCAyICAgICAgICAgICAgICAgfAoKIyMjIFNlcnZlciAtIEJhY2tlbmQKCnxUZWNobm9sb2d5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8RGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfFtKREsgMTFdKGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2VuL2phdmEvamF2YXNlLzExLykgICAgICAgICAgICAgICAgICAgICAgIHxKYXZhIERldmVsb3BtZW50IEtpdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnxbU3ByaW5nIEJvb3QgMl0oaHR0cHM6Ly9zcHJpbmcuaW8vcHJvamVjdHMvc3ByaW5nLWJvb3QpICB8RnJhbWV3b3JrIHRvIGVhc2UgdGhlIGJvb3RzdHJhcHBpbmcgYW5kIGRldmVsb3BtZW50IG9mIG5ldyBTcHJpbmcgQXBwbGljYXRpb25zfAp8W01hdmVuIDNdKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZykgICAgICAgICAgICAgICAgICAgICAgfERlcGVuZGVuY3kgTWFuYWdlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfFtUb21jYXQgOV0oaHR0cHM6Ly90b21jYXQuYXBhY2hlLm9yZykgICAgICAgICAgICAgICAgICAgIHxTZXJ2ZXIgZGVwbG95IFdBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgojIyMgIExpYnJhcmllcyBhbmQgUGx1Z2lucwp8VGVjaG5vbG9neSAgICAgICAgICAgICAgfERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKfFtMb21ib2tdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvKSB8TmV2ZXIgd3JpdGUgYW5vdGhlciBnZXR0ZXIgb3IgZXF1YWxzIG1ldGhvZCBhZ2Fpbiwgd2l0aCBvbmUgYW5ub3RhdGlvbiB5b3VyIGNsYXNzIGhhcyBhIGZ1bGx5IGZlYXR1cmVkIGJ1aWxkZXIsIEF1dG9tYXRlIHlvdXIgbG9nZ2luZyB2YXJpYWJsZXMsIGFuZCBtdWNoIG1vcmUuICAgICAgICAgICAgICB8CnxbSGliZXJuYXRlIFZhbGlkYXRvcl0oaHR0cHM6Ly9oaWJlcm5hdGUub3JnL3ZhbGlkYXRvci8pfEV4cHJlc3MgdmFsaWRhdGlvbiBydWxlcyBpbiBhIHN0YW5kYXJkaXplZCB3YXkgdXNpbmcgYW5ub3RhdGlvbi1iYXNlZCBjb25zdHJhaW50cyBhbmQgYmVuZWZpdCBmcm9tIHRyYW5zcGFyZW50IGludGVncmF0aW9uIHdpdGggYSB3aWRlIHZhcmlldHkgb2YgZnJhbWV3b3Jrcy58CnxbU3ByaW5nZG9jIE9wZW5BUEkgVUldKGh0dHBzOi8vc3ByaW5nZG9jLm9yZy8pfE9wZW5BUEkgMyBMaWJyYXJ5IGZvciBzcHJpbmcgYm9vdCBwcm9qZWN0cy4gSXMgYmFzZWQgb24gc3dhZ2dlci11aSwgdG8gZGlzcGxheSB0aGUgT3BlbkFQSSBkZXNjcmlwdGlvbi58CnxbU29hcFVJIGNvcmUgbW9kdWxlXShodHRwczovL3d3dy5zb2FwdWkub3JnL29wZW4tc291cmNlLyl8U29hcFVJIGlzIHRoZSB3b3JsZCdzIGxlYWRpbmcgRnVuY3Rpb25hbCBUZXN0aW5nIHRvb2wgZm9yIFNPQVAgYW5kIFJFU1QgdGVzdGluZy58CnxbU3dhZ2dlciBQYXJzZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXBhcnNlcil8UGFyc2VzIE9wZW5BUEkgZGVmaW5pdGlvbnMgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBpbnRvIHN3YWdnZXItY29yZSByZXByZXNlbnRhdGlvbiBhcyBKYXZhIFBPSk8sIHJldHVybmluZyBhbnkgdmFsaWRhdGlvbiB3YXJuaW5ncy9lcnJvcnMufAoKIyDwn5ORIEdldHRpbmcgc3RhcnRlZCAKClRoZXNlIGluc3RydWN0aW9ucyB3aWxsIGdldCB5b3UgYSBjb3B5IG9mIHRoZSBwcm9qZWN0IHVwIGFuZCBydW5uaW5nIG9uIHlvdXIgbG9jYWwgbWFjaGluZSBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcgcHVycG9zZXMuCgojIyMgUHJlcmVxdWlzaXRlcwoKKiBbSkRLIEluc3RhbGxhdGlvbl0oaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vZW4vamF2YS9qYXZhc2UvMTEvaW5zdGFsbC9vdmVydmlldy1qZGstaW5zdGFsbGF0aW9uLmh0bWwjR1VJRC04Njc3QTc3Ri0yMzFBLTQwRjctOThCOS0xRkQwQjQ4QzM0NkEpCiogW0FwYWNoZSBNYXZlbiBJbnN0YWxsYXRpb25dKGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9pbnN0YWxsLmh0bWwpCiogW1NldHRpbmcgdXAgTG9tYm9rXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL292ZXJ2aWV3KQogICogW0VjbGlwc2UgYW5kIGl0cyBvZmZzaG9vdHNdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvZWNsaXBzZSkKICAqIFtJbnRlbGxpaiBJREVBXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL2ludGVsbGlqKQogICogW05ldGJlYW5zXShodHRwczovL3Byb2plY3Rsb21ib2sub3JnL3NldHVwL25ldGJlYW5zKQogICogW01pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIENvZGVdKGh0dHBzOi8vcHJvamVjdGxvbWJvay5vcmcvc2V0dXAvdnNjb2RlKQoKIyMjIEV4dGVybmFsIGRlcGVuZGVuY2llcwoKVGhlIHByb2plY3QgdXNlIF9fIlNvYXBVSSBDb3JlIE1vZHVsZSJfXyBkZXBlbmRlbmN5LCB3aGljaCBpcyBub3QgbWF2ZW4gZGVwZW5kZW5jeSwgc28geW91IG11c3QgaGF2ZSBpbnRlcm5ldCBhY2Nlc3MgdG8gZG93bmxvYWQgdGhlIGRlcGVuZGVuY3kgZnJvbSB0aGUgZXh0ZXJuYWwgcmVwb3NpdG9yeSwgYmVsb3cgaXMgdGhlIHJlcG9zaXRvcnkgY29uZmlndXJhdGlvbiBpbnNpZGUgdGhlIHBvbS54bWwgZmlsZS4KCmBgYHhtbAogIC4uLgoKICA8cmVwb3NpdG9yaWVzPgogICAgPHJlcG9zaXRvcnk+CiAgICAgIDxpZD5TbWFydEJlYXJQbHVnaW5SZXBvc2l0b3J5PC9pZD4KICAgICAgPHVybD5odHRwczovL3JhcGkudG9vbHMub3BzLnNtYXJ0YmVhci5pby9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMvPC91cmw+CQkJCiAgICA8L3JlcG9zaXRvcnk+CiAgPC9yZXBvc2l0b3JpZXM+CiAgCiAgLi4uCmBgYAojIyMgUnVubmluZyB0aGUgYXBwbGljYXRpb24gd2l0aCBJREUKClRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gcnVuIGEgU3ByaW5nIEJvb3QgYXBwbGljYXRpb24gb24geW91ciBsb2NhbCBtYWNoaW5lLiBPbmUgd2F5IGlzIHRvIGV4ZWN1dGUgdGhlIGBtYWluYCBtZXRob2QgaW4gdGhlIGBPcGVuYXBpMlNvYXBVSUFwcGxpY2F0aW9uYCBjbGFzcyBmcm9tIHlvdXIgSURFLgoKIyMjIyBFeGFtcGxlIChFY2xpcHNlIGFuZCBpdHMgb2Zmc2hvb3RzKSA6CiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBJREUKCSogRmlsZSAtPiBJbXBvcnQgLT4gRXhpc3RpbmcgTWF2ZW4gUHJvamVjdCAtPiBOYXZpZ2F0ZSB0byB0aGUgZm9sZGVyIHByb2plY3QgCgkqIFNlbGVjdCB0aGUgcHJvamVjdAoqIENob29zZSB0aGUgU3ByaW5nIEJvb3QgQXBwbGljYXRpb24gZmlsZSAoc2VhcmNoIGZvciBAU3ByaW5nQm9vdEFwcGxpY2F0aW9uKQoqIFJpZ2h0IENsaWNrIG9uIHRoZSBmaWxlIGFuZCBSdW4gYXMgSmF2YSBBcHBsaWNhdGlvbgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGx5IHdpdGggTWF2ZW4KCkFsdGVybmF0aXZlbHkgeW91IGNhbiB1c2UgdGhlIFtTcHJpbmcgQm9vdCBNYXZlbiBwbHVnaW5dKGh0dHBzOi8vZG9jcy5zcHJpbmcuaW8vc3ByaW5nLWJvb3QvZG9jcy9jdXJyZW50L3JlZmVyZW5jZS9odG1sL2J1aWxkLXRvb2wtcGx1Z2lucy1tYXZlbi1wbHVnaW4uaHRtbCkgbGlrZSBzbzoKCiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBDb21tYW5kIFByb21wdCBhbmQgQ2hhbmdlIGRpcmVjdG9yeSAoY2QpIHRvIGZvbGRlciBjb250YWluaW5nIHBvbS54bWwKKiBUbyBidWlsZCBhbmQgc3RhcnQgdGhlIHNlcnZlciB0eXBlCgpgYGBzaGVsbAokIG12biBzcHJpbmctYm9vdDpydW4KYGBgCgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKCiMjIyBSdW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBpbiBEb2NrZXIKCiogRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogVW56aXAgdGhlIHppcCBmaWxlIChpZiB5b3UgZG93bmxvYWRlZCBvbmUpCiogT3BlbiBDb21tYW5kIFByb21wdCBhbmQgQ2hhbmdlIGRpcmVjdG9yeSAoY2QpIHRvIGZvbGRlciBjb250YWluaW5nIHBvbS54bWwKKiBUbyBidWlsZCBhbmQgc3RhcnQgdGhlIGRvY2tlciBjb250YWluZXIgdHlwZQoKYGBgc2hlbGwKJCBtdm4gY2xlYW4gcGFja2FnZSAtUGphcgokIGRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKKiBVUkwgdG8gYWNjZXNzOiAqKmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcGktb3BlbmFwaS10by1zb2FwdWkvdjEvc29hcC11aS1wcm9qZWN0cyoqCgojIyMgUnVubmluZyB0aGUgYXBwbGljYXRpb24gZGVwbG95aW5nIFdBUiBvbiBUb21jYXQKClRoZSBjb2RlIGNhbiBhbHNvIGJlIGJ1aWx0IGludG8gYSB3YXIgYW5kIHRoZW4gZGVwbG95ZWQgb24gYSBUb21jYXQgc2VydmVyLgoKKiAJRG93bmxvYWQgdGhlIHppcCBvciBjbG9uZSB0aGUgR2l0IHJlcG9zaXRvcnkuCiogCVVuemlwIHRoZSB6aXAgZmlsZSAoaWYgeW91IGRvd25sb2FkZWQgb25lKQoqIAlPcGVuIENvbW1hbmQgUHJvbXB0IGFuZCBDaGFuZ2UgZGlyZWN0b3J5IChjZCkgdG8gZm9sZGVyIGNvbnRhaW5pbmcgcG9tLnhtbAoqIAlUbyBidWlsZCB0aGUgd2FyIHR5cGUKCmBgYHNoCiQgbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgoqIAlPbmNlIHRoZSB3YXIgaXMgYnVpbHQsIGNvcHkgdGhlIG91dHB1dCBXQVIgdG8gVG9tY2F0J3Mgd2ViYXBwcyBkaXJlY3RvcnkuCgpgYGBzaAokQ0FUQUxJTkFfSE9NRS93ZWJhcHBzL29wZW5hcGkyc29hcHVpLTx2ZXJzaW9uPi53YXIKYGBgCgoqIFJlc3RhcnQgVG9tY2F0IFNlcnZlcgoqIFVSTCB0byBhY2Nlc3M6ICoqaHR0cDovL2xvY2FsaG9zdDo4MDgwL29wZW5hcGkyc29hcHVpL2FwaS1vcGVuYXBpLXRvLXNvYXB1aS92MS9zb2FwLXVpLXByb2plY3RzKioKIyMgRmlsZXMgYW5kIERpcmVjdG9yaWVzIFN0cnVjdHVyZQoKVGhlIHByb2plY3QgZGlyZWN0b3J5IGhhcyBhIHBhcnRpY3VsYXIgZGlyZWN0b3J5IHN0cnVjdHVyZS4gQSByZXByZXNlbnRhdGl2ZSBwcm9qZWN0IGlzIHNob3duIGJlbG93OgoKIyMjIFByb2plY3QgU3RydWN0dXJlCgpgYGB0ZXh0Ci4K4pSc4pSA4pSAIHNyYwrilIIgICDilJTilIDilIAgbWFpbgrilIIgICAgICAg4pSU4pSA4pSAIGphdmEK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkK4pSCICAgICAgICAgICDilIIgCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLmNvbmZpZwrilIIgICAgICAgICAgIOKUgiAgCuKUgiAgICAgICAgICAg4pSc4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLmNvbnN0YW50cwrilIIgICAgICAgICAgIOKUgiAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuY29udHJvbGxlcgrilIIgICAgICAgICAgIOKUgiAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuZXJyb3IK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkuZXJyb3IuZXhjZXB0aW9ucwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5lcnJvci52YWxpZGF0b3JzCuKUgiAgICAgICAgICAg4pSCICAgICAK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkubW9kZWwK4pSCICAgICAgICAgICDilIIK4pSCICAgICAgICAgICDilJzilIDilIAgb3JnLmFwaWFkZGljdHMuYXBpdG9vbHMub3BlbmFwaTJzb2FwdWkucmVxdWVzdArilIIgICAgICAgICAgIOKUggrilIIgICAgICAgICAgIOKUnOKUgOKUgCBvcmcuYXBpYWRkaWN0cy5hcGl0b29scy5vcGVuYXBpMnNvYXB1aS5zZXJ2aWNlCuKUgiAgICAgICAgICAg4pSCCuKUgiAgICAgICAgICAg4pSU4pSA4pSAIG9yZy5hcGlhZGRpY3RzLmFwaXRvb2xzLm9wZW5hcGkyc29hcHVpLnV0aWwK4pSc4pSA4pSAIHNyYwrilIIgICDilJTilIDilIAgbWFpbgrilIIgICAgICAg4pSU4pSA4pSAIHJlc291cmNlcwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBzdGF0aWMK4pSCICAgICAgICAgICDilIIgICDilJTilIDilIAgYXBpLnlhbWwK4pSCICAgICAgICAgICDilIIgICAK4pSCICAgICAgICAgICDilJzilIDilIAgYXBwbGljYXRpb24ucHJvcGVydGllcwrilIIgICAgICAgICAgIOKUnOKUgOKUgCBsb2c0ai5wcm9wZXJ0aWVzCuKUgiAgICAgICAgICAg4pSU4pSA4pSAIG1lc3NhZ2VzLnByb3BlcnRpZXMK4pSc4pSA4pSAIEpSRSBTeXN0ZW0gTGlicmFyeQrilJzilIDilIAgTWF2ZW4gRGVwZW5kZW5jaWVzCuKUnOKUgOKUgCBzcmMK4pSc4pSA4pSAIHRhcmdldArilIIgICDilJTilIDilIBvcGVuYXBpMnNvYXB1aS0xLjAuMgrilJzilIDilIAgLmdpdGxhYi1jaS55YW1sCuKUnOKUgOKUgCBsb21ib2suY29uZmlnCuKUnOKUgOKUgCBtdm53CuKUnOKUgOKUgCBtdm53LmNtZArilJzilIDilIAgcG9tLnhtbArilJTilIDilIAgUkVBRE1FLm1kCmBgYAoKIyMjIFBhY2thZ2VzCgoqIAlgY29uZmlnYCAtIGFwcCBjb25maWd1cmF0aW9uczsKKiAJYGNvbnN0YW50c2AgLSBhcHAgY29udGFudHM7CiogCWBjb250cm9sbGVyYCAtIGxpc3RlbiB0byB0aGUgY2xpZW50OwoqIAlgZXJyb3JgIC0gbWFuYWdlIGVycm9yczsKKiAJYGV4Y2VwdGlvbnNgIC0gY3VzdG9tIGV4Y2VwdGlvbiBoYW5kbGluZzsKKiAJYHZhbGlkYXRvcnNgIC0gY3VzdG9tIHZhbGlkYXRpb25zOwoqIAlgbW9kZWxgIC0gZW50aXRpZXM7CiogCWByZXF1ZXN0YCAtIGJvZHkgcmVxdWVzdCBtb2RlbC9lbnRpdGllczsKKiAJYHNlcnZpY2VgIC0gYnVzaW5lc3MgbG9naWM7CiogCWB1dGlsYCAtIHV0aWxpdHkgY2xhc3NlczsKCgojIyMgUmVzb3VyY2VzCiogCWByZXNvdXJjZXMvYCAtIGNvbnRhaW5zIGFsbCB0aGUgc3RhdGljIHJlc291cmNlcywgdGVtcGxhdGVzIGFuZCBwcm9wZXJ0eSBmaWxlcy4KKiAJYHJlc291cmNlcy9zdGF0aWNgIC0gY29udGFpbnMgc3RhdGljIHJlc291cmNlcy4KKiAJYHJlc291cmNlcy9zdGF0aWMvYXBpLnlhbWxgIC0gY29udGFpbnMgT3BlbiBBUEkgU3BlY2lmaWNhdGlvbi4KKiAJYHJlc291cmNlcy9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVzYCAtIGNvbnRhaW5zIGFwcGxpY2F0aW9uLXdpZGUgcHJvcGVydGllcy4gU3ByaW5nIHJlYWRzIHRoZSBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhpcyBmaWxlIHRvIGNvbmZpZ3VyZSB5b3VyIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGRlZmluZSBzZXJ2ZXLigJlzIGRlZmF1bHQgcG9ydCwgc2VydmVy4oCZcyBjb250ZXh0IHBhdGgsIGRhdGFiYXNlIFVSTHMgZXRjLCBpbiB0aGlzIGZpbGUuCiogCWByZXNvdXJjZXMvbG9nNGoucHJvcGVydGllc2AgLSBjb250YWlucyBjb250YWlucyB0aGUgZW50aXJlIHJ1bnRpbWUgY29uZmlndXJhdGlvbiB1c2VkIGJ5IGxvZzRqLiBUaGlzIGZpbGUgd2lsbCBjb250YWluIGxvZzRqIGFwcGVuZGVycyBpbmZvcm1hdGlvbiwgbG9nIGxldmVsIGluZm9ybWF0aW9uIGFuZCBvdXRwdXQgZmlsZSBuYW1lcyBmb3IgZmlsZSBhcHBlbmRlcnMuCiogCWByZXNvdXJjZXMvbWVzc2FnZXMucHJvcGVydGllc2AgLSBjb250YWlucyB0aGUgZXJyb3IgbWVzc2FnZXMgdXNlZCBpbiB0aGUgYXBwbGljYXRpb24uCiogbXZudyAvIG12bncuY21kIC0gVGhpcyBhbGxvd3MgeW91IHRvIHJ1biB0aGUgTWF2ZW4gcHJvamVjdCB3aXRob3V0IGhhdmluZyBNYXZlbiBpbnN0YWxsZWQgYW5kIHByZXNlbnQgaW4gdGhlIHBhdGguIERvd25sb2FkIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgTWF2ZW4gaWYgaXQgY2FuJ3QgYmUgZm91bmQgKGFzIGZhciBhcyBJIGtub3cgYnkgZGVmYXVsdCBpbiB5b3VyIHVzZXIgaG9tZSBkaXJlY3RvcnkpLiBUaGUgbXZudyBmaWxlIGlzIGZvciBMaW51eCAoYmFzaCkgYW5kIG12bncuY21kIGlzIGZvciB0aGUgV2luZG93cyBlbnZpcm9ubWVudC4KKiAJYHBvbS54bWxgIC0gY29udGFpbnMgYWxsIHRoZSBwcm9qZWN0IGRlcGVuZGVuY2llcwoKIyMgRGVwbG95CgoqIAlCdWlsZCB0aGUgd2FyIHR5cGUKCmBgYHNoCiQgbXZuIGNsZWFuIHBhY2thZ2UKYGBgCgoqIAlPbmNlIHRoZSB3YXIgaXMgYnVpbHQsIGNvcHkgdGhlIG91dHB1dCBXQVIgdG8gVG9tY2F0J3Mgd2ViYXBwcyBkaXJlY3RvcnkuCgpgYGBzaAokQ0FUQUxJTkFfSE9NRS93ZWJhcHBzL29wZW5hcGkyc29hcHVpLndhcgpgYGAKCiogUmVzdGFydCBUb21jYXQgU2VydmVyCiogVVJMIHRvIGFjY2VzczogKipcPHByb3RvY29sXD46Ly9cPGhvc3RcPjpcPHBvcnRcPi9vcGVuYXBpMnNvYXB1aS9hcGktb3BlbmFwaS10by1zb2FwdWkvdjEvc29hcC11aS1wcm9qZWN0cyoqCgojIyBEb2N1bWVudGF0aW9uCgotIFtjVVJMIEV4YW1wbGVdKGV4YW1wbGUuc2gpCi0gW09wZW4gQVBJIFNwZWNpZmljYXRpb25dKC4vc3JjL21haW4vcmVzb3VyY2VzL3N0YXRpYy9hcGkueWFtbCkKLSBbU3dhZ2dlciBVSV0oaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbCkgLSBgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3N3YWdnZXItdWkuaHRtbGAKLSBGaW5kIEphdmEgRG9jIGluICoqamF2YWRvYyoqIGZvbGRlcgotIEphdmEgRG9jIGlzIGdlbmVyYXRlZCBpbiAuL3RhcmdldC9zaXRlL2FwaWRvY3NgIGZvbGRlciB1c2luZyB0aGUgTWF2ZW4gY29tbWFuZCAKCmBgYHNoCm12biBqYXZhZG9jOmphdmFkb2MKYGBgCgojIyDwn5KbIFNwb25zb3JzCjxwIGFsaWduPSJjZW50ZXIiPgoJPGEgaHJlZj0iaHR0cHM6Ly9hcGlhZGRpY3RzLm9yZy8iPgogICAgCTxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMuY2xvdWRhcHBpLm5ldC93ZWIvaW1hZ2UvNDI0OC9MT0dPQ2xvdWRhcHBpMjAyMFZlcnNpb25lcy0wMS5wbmciIGFsdD0iY2xvdWRhcHBpIiB3aWR0aD0iMTUwIi8+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+Cgo= + readmeEtag: '"c633fc9ce013cd4e955c0d3380f6ccd960652fb4eb55067de088c5e13fa740bf"' + readmeLastModified: Tue, 12 Sep 2023 10:57:37 GMT repositoryId: 352716389 description: >- API to generate a SoapUI project from an OpenAPI Specification (fka @@ -17085,7 +17085,7 @@ owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 - repoEtag: '"4be9d7a0af5f271568b28045705a2cc22fb96ce3a08ae28bf44d2e6c35e6fa7d"' + repoEtag: '"5606556d2d3d21bb605d49f6b76705bbd69bc0a76ba515232796526da1ab95d4"' repoLastModified: Thu, 25 May 2023 16:49:03 GMT category: Server Implementations foundInMaster: true @@ -18026,11 +18026,11 @@ language: null archived: false stars: 4 - watchers: 9 + watchers: 10 forks: 0 owner: input-output-hk logo: https://avatars.githubusercontent.com/u/12909177?v=4 - repoEtag: '"f3383271b289da93ae5e94c484482db5c58de6ca3732cc67a9df234f8d99d7e0"' + repoEtag: '"f8610a30e9413e0971e4071306c0e53a5a5e18d6d695bd4e99fe56df498f3b92"' repoLastModified: Tue, 24 Jan 2023 18:29:16 GMT foundInMaster: true category: Low-level Tooling @@ -18614,9 +18614,9 @@ id: 514c0837da7b67edc46795a00a5e8da2 repositoryMetadata: base64Readme: >- - CiMg8J+boO+4jyBkb1NvbmFyQVBJICFbUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9yZWxlYXNlLTEuMC41LXB1cnBsZSkgIVtTd2FnZ2VyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLy1vcGVuYXBpLSUyM0Nsb2p1cmU/c3R5bGU9ZmxhdCZsb2dvPXN3YWdnZXImbG9nb0NvbG9yPXdoaXRlKSAhW0phdmFdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvamF2YS0lMjNFRDhCMDAuc3ZnP3N0eWxlPWZsYXQmbG9nbz1vcGVuamRrJmxvZ29Db2xvcj13aGl0ZSkgIFshW0xpY2Vuc2U6IExHUEwgdjNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMX3YzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLTMuMCkgCgpkb1NvbmFyQVBJIGlzIGEgY29kZSBhbmFseXplciBmb3IgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucywgIGlzIHRoZSBzcGlyaXR1YWwgc3VjY2Vzc29yIG9mIFtTb25hck9wZW5BcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NpZXRlLWdlbmVyYWxlL3NvbmFyLW9wZW5hcGkpLCBjYXJyeWluZyBvbiBmcm9tIHRoZSBwb2ludCB3aGVyZSBpdCBsZWZ0IG9mZiB3aXRoIHN1cHBvcnQgb2YgQXBpYWRkaWN0cyBjb21tdW5pdHkuCgrwn5KhIElmIHlvdSBoYXZlIGFuIGlkZWEgZm9yIGEgcnVsZSBidXQgeW91IGFyZSBub3Qgc3VyZSB0aGF0IGV2ZXJ5b25lIG5lZWRzIGl0IHlvdSBjYW4gaW1wbGVtZW50IGEgW2N1c3RvbSBydWxlXShDdXN0b21SdWxlcy5tZCkKYXZhaWxhYmxlIG9ubHkgZm9yIHlvdS4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqZG9Tb25hckFQSSoqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgZG9Tb25hckFQSSBpcyBwYXJ0IG9mIHlvdXIgb3JnYW5pemF0aW9uJ3MgdG9vbGtpdCwgd2Uga2luZGx5IGVuY291cmFnZSB5b3UgdG8gaW5jbHVkZSB5b3VyIGNvbXBhbnkncyBuYW1lIGluIG91ciBBZG9wdGVycyBsaXN0LiDwn5mPIFRoaXMgbm90IG9ubHkgc2lnbmlmaWNhbnRseSBib29zdHMgdGhlIHByb2plY3QncyB2aXNpYmlsaXR5IGFuZCByZXB1dGF0aW9uIGJ1dCBhbHNvIHJlcHJlc2VudHMgYSBzbWFsbCB5ZXQgaW1wYWN0ZnVsIHdheSB0byBnaXZlIGJhY2sgdG8gdGhlIHByb2plY3QuCgp8IE9yZ2FuaXphdGlvbiAgfCBEZXNjcmlwdGlvbiBvZiBVc2UgLyBSZWZlcmVuYyB8CnwtLS18LS0tfAp8ICBbQ2xvdWRBcHBpXShodHRwczovL2Nsb3VkYXBwaS5uZXQvKSAgfCBBcGlmaWNhdGlvbiBhbmQgZ2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzIHwKCiMg8J+RqfCfj73igI3wn5K7ICBDb250cmlidXRlIHRvIEFwaUFkZGljdHMgCgpXZSdyZSBhbiBpbmNsdXNpdmUgYW5kIG9wZW4gY29tbXVuaXR5LCAsIGFuZCB0aGlzIGltcGxpZXMgdGhhdCB5b3UgdG9vIGNhbiBiZWNvbWUgYSBwYXJ0IG9mIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzIQoKV2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dDogeW91IGNhbiByZXZpZXcgYW5kIGNvbGxhYm9yYXRlIHRocm91Z2ggb3VyIEdpdEh1YiBpc3N1ZSB0cmFja2VyLgoKRmVlbCBmcmVlIHRvIGRyb3AgYnkgYW5kIGdyZWV0IHVzIG9uIG91ciBHaXRIdWIgZGlzY3Vzc2lvbiBvciBEaXNjb3JkIGNoYXQuIFlvdSBjYW4gYWxzbyBzaG93IHlvdXIgc3VwcG9ydCBieSBnaXZpbmcgdXMgc29tZSBHaXRIdWIgc3RhcnMg4q2Q77iPLCBvciBieSBmb2xsb3dpbmcgdXMgb24gVHdpdHRlciwgTGlua2VkSW4sIGFuZCBzdWJzY3JpYmluZyB0byBvdXIgWW91VHViZSBjaGFubmVsISDwn5qACgpbIVsiQnV5IE1lIEEgQ29mZmVlIl0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hc3NldHMvaW1nL2N1c3RvbV9pbWFnZXMvb3JhbmdlX2ltZy5wbmcpXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2FwaWFkZGljdHMpCgoKIyMg4pqZ77iPIEZlYXR1cmVzCgoqIEZ1bGwgY29tcGF0aWJpbGl0eSB3aXRoIE9wZW5BUEkgdjIuMCwgdjMuMC4wLCB2My4wLjEsIHYzLjAuMiBhbmQgdjMuMC4zCgohW1NvbmFyT3BlbkFwaSBpbiBhY3Rpb25dKHNvbmFycXViZS5qcGcpCgo8YSBuYW1lPSJpbnN0YWxsIj48L2E+CiMjIEluc3RhbGxpbmcKClRvIGluc3RhbGwgdGhlIHBsdWdpbiwgeW91IG5lZWQgdG8gY29tcGlsZSBpdCwgdGhlbiBpbnN0YWxsIGl0IGluIHlvdXIgU29uYXJRdWJlIHNlcnZlci4KCjEuIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhdCBsZWFzdCBKREsxLjggaW5zdGFsbGVkLCBhcyB3ZWxsIGFzIE1hdmVuIDMuMC41IG9yIGxhdGVyLiBUaGV5IG11c3QgYmUgcHJlc2VudCBpbiB5b3VyIFBBVEguCjIuIEluIHRoZSBtYXN0ZXIgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LCB0eXBlIGBtdm4gaW5zdGFsbGAuIFRoaXMgd2lsbCBjb21waWxlIHRoZSBwcm9qZWN0IGFuZCBnZW5lcmF0ZSB0aGUgYXJ0aWZhY3RzLgozLiBDb3B5IHRoZSBmaWxlIGBzb25hci1vcGVuYXBpLXBsdWdpbi90YXJnZXQvc29uYXItb3BlbmFwaS1wbHVnaW4tPHZlcnNpb24+LmphcmAgaW50byBkaXJlY3RvcnkgYGV4dGVuc2lvbnMvcGx1Z2lucy9gb2YKICAgeW91ciBTb25hclF1YmUgaW5zdGFsbGF0aW9uICh5b3UgY2FuIGluc3RhbGwgYSBsb2NhbCBjb3B5IFtmcm9tIGhlcmVdKGh0dHBzOi8vd3d3LnNvbmFycXViZS5vcmcvZG93bmxvYWRzLykgZm9yIHRlc3RpbmcpLgo0LiBSZXN0YXJ0IHlvdXIgU29uYXJRdWJlIHNlcnZlci4KCiMjIEFuYWx5emluZyB5b3VyIHByb2plY3RzCgpUbyBhbmFseXplIHlvdXIgcHJvamVjdHMsIHlvdSBtdXN0IGZpcnN0IFtpbnN0YWxsXSgjaW5zdGFsbCkgdGhlIHBsdWdpbi4KCiMjIyBDb25maWd1cmluZyBzb25hci1zY2FubmVyCgpPbmNlIGluc3RhbGxlZCwgY29uZmlndXJlIHRoZSBhbmFseXNpcyBwcm9wZXJ0aWVzIGJ5IGNyZWF0aW5nIHRoZSBgc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzYCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QuCltTb25hci1zY2FubmVyXShodHRwczovL2RvY3Muc29uYXJxdWJlLm9yZy9sYXRlc3QvYW5hbHlzaXMvc2Nhbi9zb25hcnNjYW5uZXIvKSB3aWxsIGxvb2sgZm9yIHRoaXMgZmlsZSB3aGVuIApsYXVuY2hpbmcgdGhlIGFuYWx5c2lzLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGRlZmluZSB0aGVzZSBwcm9wZXJ0aWVzIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciB1c2luZyB0aGUgU29uYXIgTWF2ZW4gcGx1Z2luLgoKQW4gZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgcHJvdmlkZWQgYmVsb3cgZm9yIHJlZmVyZW5jZToKCmBgYHByb3BlcnRpZXMKIyBtdXN0IGJlIHVuaXF1ZSBpbiBhIGdpdmVuIFNvbmFyUXViZSBpbnN0YW5jZQpzb25hci5wcm9qZWN0S2V5PXRlc3Q6b3BlbmFwaQojIHRoaXMgaXMgdGhlIG5hbWUgYW5kIHZlcnNpb24gZGlzcGxheWVkIGluIHRoZSBTb25hclF1YmUgVUkuIFdhcyBtYW5kYXRvcnkgcHJpb3IgdG8gU29uYXJRdWJlIDYuMS4Kc29uYXIucHJvamVjdE5hbWU9T3BlbkFQSSBwbHVnaW4gdGVzdHMKc29uYXIucHJvamVjdFZlcnNpb249MS4wCiAKIyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzb25hci1wcm9qZWN0LnByb3BlcnRpZXMgZmlsZS4gUmVwbGFjZSAiXCIgYnkgIi8iIG9uIFdpbmRvd3MuCiMgVGhpcyBwcm9wZXJ0eSBpcyBvcHRpb25hbCBpZiBzb25hci5tb2R1bGVzIGlzIHNldC4gCnNvbmFyLnNvdXJjZXM9LgogIAojIEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgY29kZS4gRGVmYXVsdCBpcyBkZWZhdWx0IHN5c3RlbSBlbmNvZGluZwpzb25hci5zb3VyY2VFbmNvZGluZz1VVEYtOAojIFNlbGVjdCB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGZvciBhbmFseXNpcyAKc29uYXIubGFuZ3VhZ2U9b3BlbmFwaQpgYGAKCkZvciBkZXRhaWxzIGFib3V0IGhvdyB0byBjb25maWd1cmUgU29uYXJRdWJlIFNjYW5uZXIgdG8gYW5hbHl6ZSB5b3VyIHByb2plY3RzLCBzZWUgW3RoZSBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3Muc29uYXJxdWJlLm9yZy9kaXNwbGF5L1NDQU4vQW5hbHl6aW5nK3dpdGgrU29uYXJRdWJlK1NjYW5uZXIpLgoKIyMjIENvbmZpZ3VyaW5nIHRoZSBwbHVnaW4KClRoZSBwbHVnaW4gYXV0b21hdGljYWxseSBzY2FucyBhbGwgYC55YW1sYCBhbmQgYC5qc29uYCBmaWxlcyB0aGF0IGFyZSBjb21wYXRpYmxlIHdpdGggdGhlIE9wZW5BUEkgc3BlYy4KCklzIGNvbnNpZGVyZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIE9wZW5BUEkgdjIgc3BlYyBpZiB0aGUgZmlsZSBjb250YWlucyB0aGUgcm9vdCBrZXkgYHN3YWdnZXJgIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIHYzIGlmIGNvbnRhaW5zIGBvcGVuYXBpYC4KCiMjIyBSdW5uaW5nIHRoZSBhbmFseXNpcwoKKiBNYWtlIHN1cmUgdGhlIFNvbmFyUXViZSBzZXJ2ZXIgaXMgcnVubmluZwoqIFtHZW5lcmF0ZSBhIHRva2VuXShodHRwczovL2RvY3Muc29uYXJxdWJlLm9yZy9sYXRlc3QvdXNlci1ndWlkZS91c2VyLXRva2VuLykgdG8gYXV0aGVudGljYXRlIHRvIHRoZSBzZXJ2ZXIsIG9yIGFzayBmb3Igb25lIHRvIHlvdXIgYWRtaW5pc3RyYXRvcgoqIFdpdGggYHNvbmFyLXNjYW5uZXJgIGluIHlvdSBwYXRoLCBqdXN0IGxhdW5jaCB0aGUgdG9vbCBmcm9tIHRoZSBkaXJlY3Rvcnkgd2hlcmUgeW91IGhhdmUgY3JlYXRlZCBgc29uYXItcHJvamVjdC5wcm9wZXJ0aWVzYC4KKiBNYWtlIHN1cmUgeW91IHNwZWNpZnkgdGhlIHNvbmFyIHNlcnZlciBhbmQgdG9rZW4gd2hlbiBsYXVuY2hpbmcgdGhlIGFuYWx5c2lzCgpZb3Ugc2hvdWxkIG9idGFpbiBhbiBvdXRwdXQgc2ltaWxhciB0byB0aGF0OgoKYGBgdGV4dApEOlxnaXRcdGVzdFNvbmFyPnNvbmFyLXNjYW5uZXIgLURzb25hci5ob3N0LnVybD08eW91ciBTb25hciBzZXJ2ZXI+IC1Ec29uYXIubG9naW49PGF1dGhvcml6YXRpb24gdG9rZW4+CklORk86IC0tLS0tLS0tLS0tLS0gIFNjYW4gT3BlbkFQSSBwbHVnaW4gdGVzdHMKSU5GTzogQmFzZSBkaXI6IEQ6XGdpdFx0ZXN0U29uYXIKSU5GTzogV29ya2luZyBkaXI6IGQ6XGdpdFx0ZXN0U29uYXJcLnNvbmFyCklORk86IFNvdXJjZSBwYXRoczogLgpJTkZPOiBTb3VyY2UgZW5jb2Rpbmc6IFVURi04LCBkZWZhdWx0IGxvY2FsZTogZW5fVVMKSU5GTzogTG9hZCBzZXJ2ZXIgcnVsZXMKSU5GTzogTG9hZCBzZXJ2ZXIgcnVsZXMgKGRvbmUpIHwgdGltZT0yMjltcwpJTkZPOiBJbmRleCBmaWxlcwpJTkZPOiA0IGZpbGVzIGluZGV4ZWQKSU5GTzogUXVhbGl0eSBwcm9maWxlIGZvciBvcGVuYXBpOiBTb25hciB3YXkKSU5GTzogU2Vuc29yIFNvbmFySmF2YVhtbEZpbGVTZW5zb3IgW2phdmFdCklORk86IFNlbnNvciBTb25hckphdmFYbWxGaWxlU2Vuc29yIFtqYXZhXSAoZG9uZSkgfCB0aW1lPTFtcwpJTkZPOiBTZW5zb3IgT3BlbkFQSSBTY2FubmVyIFNlbnNvciBbb3BlbmFwaV0KSU5GTzogU2Vuc29yIE9wZW5BUEkgU2Nhbm5lciBTZW5zb3IgW29wZW5hcGldIChkb25lKSB8IHRpbWU9MjcwbXMKSU5GTzogU2Vuc29yIFplcm8gQ292ZXJhZ2UgU2Vuc29yCklORk86IFNlbnNvciBaZXJvIENvdmVyYWdlIFNlbnNvciAoZG9uZSkgfCB0aW1lPThtcwpJTkZPOiBObyBTQ00gc3lzdGVtIHdhcyBkZXRlY3RlZC4gWW91IGNhbiB1c2UgdGhlICdzb25hci5zY20ucHJvdmlkZXInIHByb3BlcnR5IHRvIGV4cGxpY2l0bHkgc3BlY2lmeSBpdC4KSU5GTzogQ2FsY3VsYXRpbmcgQ1BEIGZvciA2IGZpbGVzCklORk86IENQRCBjYWxjdWxhdGlvbiBmaW5pc2hlZApJTkZPOiBBbmFseXNpcyByZXBvcnQgZ2VuZXJhdGVkIGluIDIxNW1zLCBkaXIgc2l6ZT05MiBLQgpJTkZPOiBBbmFseXNpcyByZXBvcnRzIGNvbXByZXNzZWQgaW4gMzdtcywgemlwIHNpemU9MTcgS0IKSU5GTzogQW5hbHlzaXMgcmVwb3J0IHVwbG9hZGVkIGluIDc1bXMKSU5GTzogQU5BTFlTSVMgU1VDQ0VTU0ZVTCwgeW91IGNhbiBicm93c2UgPHlvdXIgU29uYXIgc2VydmVyPi9kYXNoYm9hcmQ/aWQ9dGVzdCUzQW9wZW5hcGkKSU5GTzogTm90ZSB0aGF0IHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoZSB1cGRhdGVkIGRhc2hib2FyZCBvbmNlIHRoZSBzZXJ2ZXIgaGFzIHByb2Nlc3NlZCB0aGUgc3VibWl0dGVkIGFuYWx5c2lzIHJlcG9ydApJTkZPOiBNb3JlIGFib3V0IHRoZSByZXBvcnQgcHJvY2Vzc2luZyBhdCA8eW91ciBTb25hciBzZXJ2ZXI+L2FwaS9jZS90YXNrP2lkPUFXWlpFNU1kZWhFYV9DVE1RQTNtCklORk86IFRhc2sgdG90YWwgdGltZTogMy4zNTYgcwpJTkZPOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSU5GTzogRVhFQ1VUSU9OIFNVQ0NFU1MKSU5GTzogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmBgYAoKVGhlbiwgbG9nIGludG8geW91ciBTb25hclF1YmUgc2VydmVyIGFuZCBnbyB0byB5b3VyIHByb2plY3QgdG8gc2VlIHRoZSBmb3VuZCB2aW9sYXRpb25zIChpZiBhbnkpLgoKIyMjIFNraXBwaW5nIHJ1bGVzCgpTb21ldGltZXMsIGl0IG1ha2VzIHNlbnNlIHRvIGRpc2FibGUgYSBydWxlIGFsdG9nZXRoZXIuIFRoZSBwbHVnaW4gY29tZXMgd2l0aCBhIHdheSB0byBjb250cm9sIHdoaWNoIHJ1bGUgaXMgZW5hYmxlZCBvbgphIHNwZWNpZmljIGZpbGUuIFVzZSBpdCB3aXRoIGNhdXRpb24gYXMgaXQgaXMgZ2VuZXJhbGx5IGEgYmFkIHByYWN0aWNlIHRvIGRpc2FibGUgYSBydWxlIGZyb20gY29kZSEKClRoZSBgeC1ub3NvbmFyYCBPcGVuQVBJIGV4dGVuc2lvbiBjb21wbGV0ZWx5IGRpc2FibGVzIGEgcnVsZS4gQWRkIGl0IHRvIHRoZSB0b3AtbGV2ZWwgT3BlbkFQSSBkb2N1bWVudCB0byBkaXNhYmxlIGEgcnVsZQpvciBhIHNldCBvZiBydWxlczoKCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFN3YWdnZXIgUGV0c3RvcmUKICBsaWNlbnNlOgogICAgbmFtZTogTUlUCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YxCngtbm9zb25hcjogWyBSdWxlSWQxLCBSdWxlSWQyIF0KYGBgCgpZb3UgY2FuIHBhc3MgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZyB0byB0aGUgZXh0ZW5zaW9uLgoKVG8gZGlzYWJsZSBhIHJ1bGUgb25seSBpbiBhIHNwZWNpZmljIEFQSSBlbGVtZW50LCB1c2UgdGhlIGB4LXNvbmFyLWRpc2FibGVgIGV4dGVuc2lvbi4gVG8gZW5hYmxlIGFuIG90aGVyd2lzZSBnbG9iYWxseQpkaXNhYmxlIHJ1bGUsIHVzZSB0aGUgYHgtc29uYXItZW5hYmxlYCBleHRlbnNpb24uIFRoZXkgYXJlIHJlY29nbml6ZWQgaW4gYW55IEFQSSBlbGVtZW50IHRoYXQgc3VwcG9ydHMgZXh0ZW5zaW9ucywgZXhjZXB0Cm9uIHRoZSB0b3AtbGV2ZWwgZG9jdW1lbnQuCgpgYGB5YW1sCm9wZW5hcGk6ICIzLjAuMCIKaW5mbzoKICB2ZXJzaW9uOiAxLjAuMAogIHRpdGxlOiBTd2FnZ2VyIFBldHN0b3JlCiAgbGljZW5zZToKICAgIG5hbWU6IE1JVApzZXJ2ZXJzOgogIC0gdXJsOiBodHRwOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92MQp4LW5vc29uYXI6IFsgUnVsZUlkMSwgUnVsZUlkMiBdCnBhdGhzOgogIC9wZXRzOgogICAgZ2V0OgogICAgICAjIFRoaXMgcmUtZW5hYmxlcyBSdWxlSWQxIGluIHRoaXMgb3BlcmF0aW9uIG9ubHkgKGl0IGlzIG5vdCBpbmhlcml0ZWQgYnkgY2hpbGQgZWxlbWVudHMgbGlrZSB0YWdzIG9yIHBhcmFtZXRlcnMpCiAgICAgIHgtc29uYXItZW5hYmxlOiBSdWxlSWQxCiAgICAgIHN1bW1hcnk6IExpc3QgYWxsIHBldHMKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RQZXRzCiAgICAgIHRhZ3M6CiAgICAgICAgLSBwZXRzCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBuYW1lOiBmaWx0ZXIKICAgICAgICAgIGluOiBxdWVyeQogICAgICAgICAgZGVzY3JpcHRpb246IGF0dHJpYnV0ZSBvbiB3aGljaCB0byBmaWx0ZXIKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICMgVGhpcyBkaXNhYmxlcyBSdWxlSWQzIGxvY2FsbHkgaW4gdGhpcyBwYXJhbWV0ZXIgKGl0IGlzIG5vdCBpbmhlcml0ZWQgYnkgY2hpbGQgZWxlbWVudHMgbGlrZSBzY2hlbWEpCiAgICAgICAgICB4LXNvbmFyLWRpc2FibGU6IFJ1bGVJZDMKYGBgCgpBcyBmb3IgYHgtbm9zb25hcmAsIHRoZSBgeC1zb25hci1kaXNhYmxlYCBhbmQgYHgtc29uYXItZW5hYmxlYCBleHRlbnNpb25zIGFjY2VwdCBhIHNpbmdsZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy4KCjxhIG5hbWU9InRlc3RpbmciPjwvYT4KIyMgVGVzdGluZwoKVG8gcnVuIHRlc3RzIGxvY2FsbHkgZm9sbG93IHRoZXNlIGluc3RydWN0aW9ucy4KCiMjIyBCdWlsZCB0aGUgUHJvamVjdCBhbmQgUnVuIFVuaXQgVGVzdHMKClRvIGJ1aWxkIHRoZSBwbHVnaW4gYW5kIHJ1biBpdHMgdW5pdCB0ZXN0cywgZXhlY3V0ZSB0aGlzIGNvbW1hbmQgZnJvbSB0aGUgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5OgoKICAgIG12biBjbGVhbiBpbnN0YWxsCgojIyMgSW50ZWdyYXRpb24gVGVzdHMKCkludGVncmF0aW9uIHRlc3RzIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBwbHVnaW4uIFRvIGluY2x1ZGUgdGhlbSwgdXNlIHRoZSAiaXRzIiBwcm9maWxlOgoKICAgIG12biAtUGl0cyBjbGVhbiBpbnN0YWxsCgpJZiB5b3UgYXJlIHJ1bm5pbmcgYmVoaW5kIGFuIGVudGVycHJpc2UgcHJveHksIHNwZWNpZnkgdGhlIGphdmEgcHJveHkgb3B0aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lOgoKLSBodHRwLnByb3h5SG9zdAotIGh0dHAucHJveHlQb3J0Ci0gaHR0cC5wcm94eVVzZXIKLSBodHRwLnByb3h5UGFzc3dvcmQKLSBodHRwcy5wcm94eUhvc3QKLSBodHRwcy5wcm94eVBvcnQKLSBodHRwcy5wcm94eVVzZXIKLSBodHRwcy5wcm94eVBhc3N3b3JkCgojIyMgUGVyZm9ybWluZyBhIG5ldyByZWxlYXNlCgpWYWxpZGF0ZSB0aGF0IGFsbCBpcyBjb3JyZWN0OgoKYG12biBjbGVhbiBwYWNrYWdlIC1QcmVsZWFzZWAKCkRlcGxveToKCmBtdm4gY2xlYW4gZGVwbG95IC1QcmVsZWFzZWAKCiMjIPCfkpsgU3BvbnNvcnMKPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy5jbG91ZGFwcGkubmV0L3dlYi9pbWFnZS80MjQ4L0xPR09DbG91ZGFwcGkyMDIwVmVyc2lvbmVzLTAxLnBuZyIgYWx0PSJjbG91ZGFwcGkiIHdpZHRoPSIxNTAiLz4KPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPg== - readmeEtag: '"f49f43fb3e02d953daf38a49b0a6230c31d06bd1cd4049ba4934d58b63eb858b"' - readmeLastModified: Mon, 11 Sep 2023 10:30:19 GMT + CiMg8J+boO+4jyBTb25hciBPcGVuQXBpIChwbHVnaW4pICFbUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9yZWxlYXNlLTEuMC41LXB1cnBsZSkgIVtTd2FnZ2VyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlLy1vcGVuYXBpLSUyM0Nsb2p1cmU/c3R5bGU9ZmxhdCZsb2dvPXN3YWdnZXImbG9nb0NvbG9yPXdoaXRlKSAhW0phdmFdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvamF2YS0lMjNFRDhCMDAuc3ZnP3N0eWxlPWZsYXQmbG9nbz1vcGVuamRrJmxvZ29Db2xvcj13aGl0ZSkgIFshW0xpY2Vuc2U6IExHUEwgdjNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1MR1BMX3YzLWJsdWUuc3ZnKV0oaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLTMuMCkgCgpTb25hciBPcGVuQXBpIChwbHVnaW4pIGlzIGEgY29kZSBhbmFseXplciBmb3IgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucywgIGlzIHRoZSBzcGlyaXR1YWwgc3VjY2Vzc29yIG9mIFtTb25hck9wZW5BcGldKGh0dHBzOi8vZ2l0aHViLmNvbS9zb2NpZXRlLWdlbmVyYWxlL3NvbmFyLW9wZW5hcGkpLCBjYXJyeWluZyBvbiBmcm9tIHRoZSBwb2ludCB3aGVyZSBpdCBsZWZ0IG9mZiB3aXRoIHN1cHBvcnQgb2YgQXBpYWRkaWN0cyBjb21tdW5pdHkuCgojIyMgVGhpcyByZXBvc2l0b3J5IGlzIGludGVuZGVkIGZvciA6b2N0b2NhdDogKipjb21tdW5pdHkqKiB1c2UsIGl0IGNhbiBiZSBtb2RpZmllZCBhbmQgYWRhcHRlZCB3aXRob3V0IGNvbW1lcmNpYWwgdXNlLiBJZiB5b3UgbmVlZCBhIHZlcnNpb24sIHN1cHBvcnQgb3IgaGVscCBmb3IgeW91ciAqKmVudGVycHJpc2UqKiBvciBwcm9qZWN0LCBwbGVhc2UgY29udGFjdCB1cyDwn5OnIGRldnJlbEBhcGlhZGRpY3RzLm9yZwojIyMg8J+SoSBJZiB5b3UgaGF2ZSBhbiBpZGVhIGZvciBhIHJ1bGUgYnV0IHlvdSBhcmUgbm90IHN1cmUgdGhhdCBldmVyeW9uZSBuZWVkcyBpdCB5b3UgY2FuIGltcGxlbWVudCBhIFtjdXN0b20gcnVsZV0oQ3VzdG9tUnVsZXMubWQpIGF2YWlsYWJsZSBvbmx5IGZvciB5b3UuCgpbIVtUd2l0dGVyXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1R3aXR0ZXItJTIzMDAwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289eCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3R3aXR0ZXIuY29tL0FQSUFkZGljdHMpIApbIVtEaXNjb3JkXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0Rpc2NvcmQtJTIzNTg2NUYyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289ZGlzY29yZCZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL2Rpc2NvcmQuZ2cvWmRiR3FNQll5OCkKWyFbTGlua2VkSW5dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGlua2VkaW4tJTIzMDA3N0I1LnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289bGlua2VkaW4mbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2NvbXBhbnkvYXBpYWRkaWN0cy8pClshW0ZhY2Vib29rXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0ZhY2Vib29rLSUyMzE4NzdGMi5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsb2dvPUZhY2Vib29rJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9hcGlhZGRpY3RzKQpbIVtZb3VUdWJlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL1lvdVR1YmUtJTIzRkYwMDAwLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289WW91VHViZSZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9AQVBJQWRkaWN0c2xtYW9vKQoKIyDwn5mMIEpvaW4gdGhlICoqU29uYXIgT3BlbkFwaSAocGx1Z2luKSoqIEFkb3B0ZXJzIGxpc3QgCvCfk6IgSWYgU29uYXIgT3BlbkFwaSBpcyBwYXJ0IG9mIHlvdXIgb3JnYW5pemF0aW9uJ3MgdG9vbGtpdCwgd2Uga2luZGx5IGVuY291cmFnZSB5b3UgdG8gaW5jbHVkZSB5b3VyIGNvbXBhbnkncyBuYW1lIGluIG91ciBBZG9wdGVycyBsaXN0LiDwn5mPIFRoaXMgbm90IG9ubHkgc2lnbmlmaWNhbnRseSBib29zdHMgdGhlIHByb2plY3QncyB2aXNpYmlsaXR5IGFuZCByZXB1dGF0aW9uIGJ1dCBhbHNvIHJlcHJlc2VudHMgYSBzbWFsbCB5ZXQgaW1wYWN0ZnVsIHdheSB0byBnaXZlIGJhY2sgdG8gdGhlIHByb2plY3QuCgp8IE9yZ2FuaXphdGlvbiAgfCBEZXNjcmlwdGlvbiBvZiBVc2UgLyBSZWZlcmVuYyB8CnwtLS18LS0tfAp8ICBbQ2xvdWRBcHBpXShodHRwczovL2Nsb3VkYXBwaS5uZXQvKSAgfCBBcGlmaWNhdGlvbiBhbmQgZ2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzIHwKfCBbTWFkcmlkIERpZ2l0YWxdKGh0dHBzOi8vd3d3LmNvbXVuaWRhZC5tYWRyaWQvc2VydmljaW9zL3NlZGUtZWxlY3Ryb25pY2EvbWFkcmlkLWRpZ2l0YWwvKSAgfCBHZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgIHwKfCBbQXBpcXVhbGl0eV0oaHR0cHM6Ly9hcGlxdWFsaXR5LmlvLykgIHwgR2VuZXJhdGlvbiBvZiBtaWNyb3NlcnZpY2VzICB8CgojIPCfkanwn4+94oCN8J+SuyAgQ29udHJpYnV0ZSB0byBBcGlBZGRpY3RzIAoKV2UncmUgYW4gaW5jbHVzaXZlIGFuZCBvcGVuIGNvbW11bml0eSwgd2VsY29taW5nIHlvdSB0byBqb2luIG91ciBlZmZvcnQgdG8gZW5oYW5jZSBBcGlBZGRpY3RzLCBhbmQgd2UncmUgZXhjaXRlZCB0byBwcmlvcml0aXplIHRhc2tzIGJhc2VkIG9uIGNvbW11bml0eSBpbnB1dCwgaW52aXRpbmcgeW91IHRvIHJldmlldyBhbmQgY29sbGFib3JhdGUgdGhyb3VnaCBvdXIgR2l0SHViIGlzc3VlIHRyYWNrZXIuCgpGZWVsIGZyZWUgdG8gZHJvcCBieSBhbmQgZ3JlZXQgdXMgb24gb3VyIEdpdEh1YiBkaXNjdXNzaW9uIG9yIERpc2NvcmQgY2hhdC4gWW91IGNhbiBhbHNvIHNob3cgeW91ciBzdXBwb3J0IGJ5IGdpdmluZyB1cyBzb21lIEdpdEh1YiBzdGFycyDirZDvuI8sIG9yIGJ5IGZvbGxvd2luZyB1cyBvbiBUd2l0dGVyLCBMaW5rZWRJbiwgYW5kIHN1YnNjcmliaW5nIHRvIG91ciBZb3VUdWJlIGNoYW5uZWwhIPCfmoAKClshWyJCdXkgTWUgQSBDb2ZmZWUiXShodHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2Fzc2V0cy9pbWcvY3VzdG9tX2ltYWdlcy9vcmFuZ2VfaW1nLnBuZyldKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXBpYWRkaWN0cykKCgojIyDimpnvuI8gRmVhdHVyZXMKCiogRnVsbCBjb21wYXRpYmlsaXR5IHdpdGggT3BlbkFQSSB2Mi4wLCB2My4wLjAsIHYzLjAuMSwgdjMuMC4yIGFuZCB2My4wLjMKCiFbU29uYXJPcGVuQXBpIGluIGFjdGlvbl0oc29uYXJxdWJlLmpwZykKCjxhIG5hbWU9Imluc3RhbGwiPjwvYT4KIyMgSW5zdGFsbGluZwoKVG8gaW5zdGFsbCB0aGUgcGx1Z2luLCB5b3UgbmVlZCB0byBjb21waWxlIGl0LCB0aGVuIGluc3RhbGwgaXQgaW4geW91ciBTb25hclF1YmUgc2VydmVyLgoKMS4gTWFrZSBzdXJlIHlvdSBoYXZlIGF0IGxlYXN0IEpESzEuOCBpbnN0YWxsZWQsIGFzIHdlbGwgYXMgTWF2ZW4gMy4wLjUgb3IgbGF0ZXIuIFRoZXkgbXVzdCBiZSBwcmVzZW50IGluIHlvdXIgUEFUSC4KMi4gSW4gdGhlIG1hc3RlciBkaXJlY3Rvcnkgb2YgdGhlIHByb2plY3QsIHR5cGUgYG12biBpbnN0YWxsYC4gVGhpcyB3aWxsIGNvbXBpbGUgdGhlIHByb2plY3QgYW5kIGdlbmVyYXRlIHRoZSBhcnRpZmFjdHMuCjMuIENvcHkgdGhlIGZpbGUgYHNvbmFyLW9wZW5hcGktcGx1Z2luL3RhcmdldC9zb25hci1vcGVuYXBpLXBsdWdpbi08dmVyc2lvbj4uamFyYCBpbnRvIGRpcmVjdG9yeSBgZXh0ZW5zaW9ucy9wbHVnaW5zL2BvZgogICB5b3VyIFNvbmFyUXViZSBpbnN0YWxsYXRpb24gKHlvdSBjYW4gaW5zdGFsbCBhIGxvY2FsIGNvcHkgW2Zyb20gaGVyZV0oaHR0cHM6Ly93d3cuc29uYXJxdWJlLm9yZy9kb3dubG9hZHMvKSBmb3IgdGVzdGluZykuCjQuIFJlc3RhcnQgeW91ciBTb25hclF1YmUgc2VydmVyLgoKIyMgQW5hbHl6aW5nIHlvdXIgcHJvamVjdHMKClRvIGFuYWx5emUgeW91ciBwcm9qZWN0cywgeW91IG11c3QgZmlyc3QgW2luc3RhbGxdKCNpbnN0YWxsKSB0aGUgcGx1Z2luLgoKIyMjIENvbmZpZ3VyaW5nIHNvbmFyLXNjYW5uZXIKCk9uY2UgaW5zdGFsbGVkLCBjb25maWd1cmUgdGhlIGFuYWx5c2lzIHByb3BlcnRpZXMgYnkgY3JlYXRpbmcgdGhlIGBzb25hci1wcm9qZWN0LnByb3BlcnRpZXNgIGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdC4KW1NvbmFyLXNjYW5uZXJdKGh0dHBzOi8vZG9jcy5zb25hcnF1YmUub3JnL2xhdGVzdC9hbmFseXNpcy9zY2FuL3NvbmFyc2Nhbm5lci8pIHdpbGwgbG9vayBmb3IgdGhpcyBmaWxlIHdoZW4gCmxhdW5jaGluZyB0aGUgYW5hbHlzaXMuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gZGVmaW5lIHRoZXNlIHByb3BlcnRpZXMgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9yIHVzaW5nIHRoZSBTb25hciBNYXZlbiBwbHVnaW4uCgpBbiBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBwcm92aWRlZCBiZWxvdyBmb3IgcmVmZXJlbmNlOgoKYGBgcHJvcGVydGllcwojIG11c3QgYmUgdW5pcXVlIGluIGEgZ2l2ZW4gU29uYXJRdWJlIGluc3RhbmNlCnNvbmFyLnByb2plY3RLZXk9dGVzdDpvcGVuYXBpCiMgdGhpcyBpcyB0aGUgbmFtZSBhbmQgdmVyc2lvbiBkaXNwbGF5ZWQgaW4gdGhlIFNvbmFyUXViZSBVSS4gV2FzIG1hbmRhdG9yeSBwcmlvciB0byBTb25hclF1YmUgNi4xLgpzb25hci5wcm9qZWN0TmFtZT1PcGVuQVBJIHBsdWdpbiB0ZXN0cwpzb25hci5wcm9qZWN0VmVyc2lvbj0xLjAKIAojIFBhdGggaXMgcmVsYXRpdmUgdG8gdGhlIHNvbmFyLXByb2plY3QucHJvcGVydGllcyBmaWxlLiBSZXBsYWNlICJcIiBieSAiLyIgb24gV2luZG93cy4KIyBUaGlzIHByb3BlcnR5IGlzIG9wdGlvbmFsIGlmIHNvbmFyLm1vZHVsZXMgaXMgc2V0LiAKc29uYXIuc291cmNlcz0uCiAgCiMgRW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBjb2RlLiBEZWZhdWx0IGlzIGRlZmF1bHQgc3lzdGVtIGVuY29kaW5nCnNvbmFyLnNvdXJjZUVuY29kaW5nPVVURi04CiMgU2VsZWN0IHRoZSBsYW5ndWFnZSB0byB1c2UgZm9yIGFuYWx5c2lzIApzb25hci5sYW5ndWFnZT1vcGVuYXBpCmBgYAoKRm9yIGRldGFpbHMgYWJvdXQgaG93IHRvIGNvbmZpZ3VyZSBTb25hclF1YmUgU2Nhbm5lciB0byBhbmFseXplIHlvdXIgcHJvamVjdHMsIHNlZSBbdGhlIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5zb25hcnF1YmUub3JnL2Rpc3BsYXkvU0NBTi9BbmFseXppbmcrd2l0aCtTb25hclF1YmUrU2Nhbm5lcikuCgojIyMgQ29uZmlndXJpbmcgdGhlIHBsdWdpbgoKVGhlIHBsdWdpbiBhdXRvbWF0aWNhbGx5IHNjYW5zIGFsbCBgLnlhbWxgIGFuZCBgLmpzb25gIGZpbGVzIHRoYXQgYXJlIGNvbXBhdGlibGUgd2l0aCB0aGUgT3BlbkFQSSBzcGVjLgoKSXMgY29uc2lkZXJlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggT3BlbkFQSSB2MiBzcGVjIGlmIHRoZSBmaWxlIGNvbnRhaW5zIHRoZSByb290IGtleSBgc3dhZ2dlcmAgYW5kIGNvbXBhdGlibGUgd2l0aCB0aGUgdjMgaWYgY29udGFpbnMgYG9wZW5hcGlgLgoKIyMjIFJ1bm5pbmcgdGhlIGFuYWx5c2lzCgoqIE1ha2Ugc3VyZSB0aGUgU29uYXJRdWJlIHNlcnZlciBpcyBydW5uaW5nCiogW0dlbmVyYXRlIGEgdG9rZW5dKGh0dHBzOi8vZG9jcy5zb25hcnF1YmUub3JnL2xhdGVzdC91c2VyLWd1aWRlL3VzZXItdG9rZW4vKSB0byBhdXRoZW50aWNhdGUgdG8gdGhlIHNlcnZlciwgb3IgYXNrIGZvciBvbmUgdG8geW91ciBhZG1pbmlzdHJhdG9yCiogV2l0aCBgc29uYXItc2Nhbm5lcmAgaW4geW91IHBhdGgsIGp1c3QgbGF1bmNoIHRoZSB0b29sIGZyb20gdGhlIGRpcmVjdG9yeSB3aGVyZSB5b3UgaGF2ZSBjcmVhdGVkIGBzb25hci1wcm9qZWN0LnByb3BlcnRpZXNgLgoqIE1ha2Ugc3VyZSB5b3Ugc3BlY2lmeSB0aGUgc29uYXIgc2VydmVyIGFuZCB0b2tlbiB3aGVuIGxhdW5jaGluZyB0aGUgYW5hbHlzaXMKCllvdSBzaG91bGQgb2J0YWluIGFuIG91dHB1dCBzaW1pbGFyIHRvIHRoYXQ6CgpgYGB0ZXh0CkQ6XGdpdFx0ZXN0U29uYXI+c29uYXItc2Nhbm5lciAtRHNvbmFyLmhvc3QudXJsPTx5b3VyIFNvbmFyIHNlcnZlcj4gLURzb25hci5sb2dpbj08YXV0aG9yaXphdGlvbiB0b2tlbj4KSU5GTzogLS0tLS0tLS0tLS0tLSAgU2NhbiBPcGVuQVBJIHBsdWdpbiB0ZXN0cwpJTkZPOiBCYXNlIGRpcjogRDpcZ2l0XHRlc3RTb25hcgpJTkZPOiBXb3JraW5nIGRpcjogZDpcZ2l0XHRlc3RTb25hclwuc29uYXIKSU5GTzogU291cmNlIHBhdGhzOiAuCklORk86IFNvdXJjZSBlbmNvZGluZzogVVRGLTgsIGRlZmF1bHQgbG9jYWxlOiBlbl9VUwpJTkZPOiBMb2FkIHNlcnZlciBydWxlcwpJTkZPOiBMb2FkIHNlcnZlciBydWxlcyAoZG9uZSkgfCB0aW1lPTIyOW1zCklORk86IEluZGV4IGZpbGVzCklORk86IDQgZmlsZXMgaW5kZXhlZApJTkZPOiBRdWFsaXR5IHByb2ZpbGUgZm9yIG9wZW5hcGk6IFNvbmFyIHdheQpJTkZPOiBTZW5zb3IgU29uYXJKYXZhWG1sRmlsZVNlbnNvciBbamF2YV0KSU5GTzogU2Vuc29yIFNvbmFySmF2YVhtbEZpbGVTZW5zb3IgW2phdmFdIChkb25lKSB8IHRpbWU9MW1zCklORk86IFNlbnNvciBPcGVuQVBJIFNjYW5uZXIgU2Vuc29yIFtvcGVuYXBpXQpJTkZPOiBTZW5zb3IgT3BlbkFQSSBTY2FubmVyIFNlbnNvciBbb3BlbmFwaV0gKGRvbmUpIHwgdGltZT0yNzBtcwpJTkZPOiBTZW5zb3IgWmVybyBDb3ZlcmFnZSBTZW5zb3IKSU5GTzogU2Vuc29yIFplcm8gQ292ZXJhZ2UgU2Vuc29yIChkb25lKSB8IHRpbWU9OG1zCklORk86IE5vIFNDTSBzeXN0ZW0gd2FzIGRldGVjdGVkLiBZb3UgY2FuIHVzZSB0aGUgJ3NvbmFyLnNjbS5wcm92aWRlcicgcHJvcGVydHkgdG8gZXhwbGljaXRseSBzcGVjaWZ5IGl0LgpJTkZPOiBDYWxjdWxhdGluZyBDUEQgZm9yIDYgZmlsZXMKSU5GTzogQ1BEIGNhbGN1bGF0aW9uIGZpbmlzaGVkCklORk86IEFuYWx5c2lzIHJlcG9ydCBnZW5lcmF0ZWQgaW4gMjE1bXMsIGRpciBzaXplPTkyIEtCCklORk86IEFuYWx5c2lzIHJlcG9ydHMgY29tcHJlc3NlZCBpbiAzN21zLCB6aXAgc2l6ZT0xNyBLQgpJTkZPOiBBbmFseXNpcyByZXBvcnQgdXBsb2FkZWQgaW4gNzVtcwpJTkZPOiBBTkFMWVNJUyBTVUNDRVNTRlVMLCB5b3UgY2FuIGJyb3dzZSA8eW91ciBTb25hciBzZXJ2ZXI+L2Rhc2hib2FyZD9pZD10ZXN0JTNBb3BlbmFwaQpJTkZPOiBOb3RlIHRoYXQgeW91IHdpbGwgYmUgYWJsZSB0byBhY2Nlc3MgdGhlIHVwZGF0ZWQgZGFzaGJvYXJkIG9uY2UgdGhlIHNlcnZlciBoYXMgcHJvY2Vzc2VkIHRoZSBzdWJtaXR0ZWQgYW5hbHlzaXMgcmVwb3J0CklORk86IE1vcmUgYWJvdXQgdGhlIHJlcG9ydCBwcm9jZXNzaW5nIGF0IDx5b3VyIFNvbmFyIHNlcnZlcj4vYXBpL2NlL3Rhc2s/aWQ9QVdaWkU1TWRlaEVhX0NUTVFBM20KSU5GTzogVGFzayB0b3RhbCB0aW1lOiAzLjM1NiBzCklORk86IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJTkZPOiBFWEVDVVRJT04gU1VDQ0VTUwpJTkZPOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KYGBgCgpUaGVuLCBsb2cgaW50byB5b3VyIFNvbmFyUXViZSBzZXJ2ZXIgYW5kIGdvIHRvIHlvdXIgcHJvamVjdCB0byBzZWUgdGhlIGZvdW5kIHZpb2xhdGlvbnMgKGlmIGFueSkuCgojIyMgU2tpcHBpbmcgcnVsZXMKClNvbWV0aW1lcywgaXQgbWFrZXMgc2Vuc2UgdG8gZGlzYWJsZSBhIHJ1bGUgYWx0b2dldGhlci4gVGhlIHBsdWdpbiBjb21lcyB3aXRoIGEgd2F5IHRvIGNvbnRyb2wgd2hpY2ggcnVsZSBpcyBlbmFibGVkIG9uCmEgc3BlY2lmaWMgZmlsZS4gVXNlIGl0IHdpdGggY2F1dGlvbiBhcyBpdCBpcyBnZW5lcmFsbHkgYSBiYWQgcHJhY3RpY2UgdG8gZGlzYWJsZSBhIHJ1bGUgZnJvbSBjb2RlIQoKVGhlIGB4LW5vc29uYXJgIE9wZW5BUEkgZXh0ZW5zaW9uIGNvbXBsZXRlbHkgZGlzYWJsZXMgYSBydWxlLiBBZGQgaXQgdG8gdGhlIHRvcC1sZXZlbCBPcGVuQVBJIGRvY3VtZW50IHRvIGRpc2FibGUgYSBydWxlCm9yIGEgc2V0IG9mIHJ1bGVzOgoKYGBgeWFtbApvcGVuYXBpOiAiMy4wLjAiCmluZm86CiAgdmVyc2lvbjogMS4wLjAKICB0aXRsZTogU3dhZ2dlciBQZXRzdG9yZQogIGxpY2Vuc2U6CiAgICBuYW1lOiBNSVQKc2VydmVyczoKICAtIHVybDogaHR0cDovL3BldHN0b3JlLnN3YWdnZXIuaW8vdjEKeC1ub3NvbmFyOiBbIFJ1bGVJZDEsIFJ1bGVJZDIgXQpgYGAKCllvdSBjYW4gcGFzcyBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5nIHRvIHRoZSBleHRlbnNpb24uCgpUbyBkaXNhYmxlIGEgcnVsZSBvbmx5IGluIGEgc3BlY2lmaWMgQVBJIGVsZW1lbnQsIHVzZSB0aGUgYHgtc29uYXItZGlzYWJsZWAgZXh0ZW5zaW9uLiBUbyBlbmFibGUgYW4gb3RoZXJ3aXNlIGdsb2JhbGx5CmRpc2FibGUgcnVsZSwgdXNlIHRoZSBgeC1zb25hci1lbmFibGVgIGV4dGVuc2lvbi4gVGhleSBhcmUgcmVjb2duaXplZCBpbiBhbnkgQVBJIGVsZW1lbnQgdGhhdCBzdXBwb3J0cyBleHRlbnNpb25zLCBleGNlcHQKb24gdGhlIHRvcC1sZXZlbCBkb2N1bWVudC4KCmBgYHlhbWwKb3BlbmFwaTogIjMuMC4wIgppbmZvOgogIHZlcnNpb246IDEuMC4wCiAgdGl0bGU6IFN3YWdnZXIgUGV0c3RvcmUKICBsaWNlbnNlOgogICAgbmFtZTogTUlUCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHA6Ly9wZXRzdG9yZS5zd2FnZ2VyLmlvL3YxCngtbm9zb25hcjogWyBSdWxlSWQxLCBSdWxlSWQyIF0KcGF0aHM6CiAgL3BldHM6CiAgICBnZXQ6CiAgICAgICMgVGhpcyByZS1lbmFibGVzIFJ1bGVJZDEgaW4gdGhpcyBvcGVyYXRpb24gb25seSAoaXQgaXMgbm90IGluaGVyaXRlZCBieSBjaGlsZCBlbGVtZW50cyBsaWtlIHRhZ3Mgb3IgcGFyYW1ldGVycykKICAgICAgeC1zb25hci1lbmFibGU6IFJ1bGVJZDEKICAgICAgc3VtbWFyeTogTGlzdCBhbGwgcGV0cwogICAgICBvcGVyYXRpb25JZDogbGlzdFBldHMKICAgICAgdGFnczoKICAgICAgICAtIHBldHMKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIG5hbWU6IGZpbHRlcgogICAgICAgICAgaW46IHF1ZXJ5CiAgICAgICAgICBkZXNjcmlwdGlvbjogYXR0cmlidXRlIG9uIHdoaWNoIHRvIGZpbHRlcgogICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgIyBUaGlzIGRpc2FibGVzIFJ1bGVJZDMgbG9jYWxseSBpbiB0aGlzIHBhcmFtZXRlciAoaXQgaXMgbm90IGluaGVyaXRlZCBieSBjaGlsZCBlbGVtZW50cyBsaWtlIHNjaGVtYSkKICAgICAgICAgIHgtc29uYXItZGlzYWJsZTogUnVsZUlkMwpgYGAKCkFzIGZvciBgeC1ub3NvbmFyYCwgdGhlIGB4LXNvbmFyLWRpc2FibGVgIGFuZCBgeC1zb25hci1lbmFibGVgIGV4dGVuc2lvbnMgYWNjZXB0IGEgc2luZ2xlIHN0cmluZyBvciBhbiBhcnJheSBvZiBzdHJpbmdzLgoKPGEgbmFtZT0idGVzdGluZyI+PC9hPgojIyBUZXN0aW5nCgpUbyBydW4gdGVzdHMgbG9jYWxseSBmb2xsb3cgdGhlc2UgaW5zdHJ1Y3Rpb25zLgoKIyMjIEJ1aWxkIHRoZSBQcm9qZWN0IGFuZCBSdW4gVW5pdCBUZXN0cwoKVG8gYnVpbGQgdGhlIHBsdWdpbiBhbmQgcnVuIGl0cyB1bml0IHRlc3RzLCBleGVjdXRlIHRoaXMgY29tbWFuZCBmcm9tIHRoZSBwcm9qZWN0J3Mgcm9vdCBkaXJlY3Rvcnk6CgogICAgbXZuIGNsZWFuIGluc3RhbGwKCiMjIyBJbnRlZ3JhdGlvbiBUZXN0cwoKSW50ZWdyYXRpb24gdGVzdHMgYXJlIHByb3ZpZGVkIHdpdGggdGhlIHBsdWdpbi4gVG8gaW5jbHVkZSB0aGVtLCB1c2UgdGhlICJpdHMiIHByb2ZpbGU6CgogICAgbXZuIC1QaXRzIGNsZWFuIGluc3RhbGwKCklmIHlvdSBhcmUgcnVubmluZyBiZWhpbmQgYW4gZW50ZXJwcmlzZSBwcm94eSwgc3BlY2lmeSB0aGUgamF2YSBwcm94eSBvcHRpb25zIG9uIHRoZSBjb21tYW5kIGxpbmU6CgotIGh0dHAucHJveHlIb3N0Ci0gaHR0cC5wcm94eVBvcnQKLSBodHRwLnByb3h5VXNlcgotIGh0dHAucHJveHlQYXNzd29yZAotIGh0dHBzLnByb3h5SG9zdAotIGh0dHBzLnByb3h5UG9ydAotIGh0dHBzLnByb3h5VXNlcgotIGh0dHBzLnByb3h5UGFzc3dvcmQKCiMjIyBQZXJmb3JtaW5nIGEgbmV3IHJlbGVhc2UKClZhbGlkYXRlIHRoYXQgYWxsIGlzIGNvcnJlY3Q6CgpgbXZuIGNsZWFuIHBhY2thZ2UgLVByZWxlYXNlYAoKRGVwbG95OgoKYG12biBjbGVhbiBkZXBsb3kgLVByZWxlYXNlYAoKIyMg8J+SmyBTcG9uc29ycwo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vYXBpYWRkaWN0cy5vcmcvIj4KICAgIAk8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLmNsb3VkYXBwaS5uZXQvd2ViL2ltYWdlLzQyNDgvTE9HT0Nsb3VkYXBwaTIwMjBWZXJzaW9uZXMtMDEucG5nIiBhbHQ9ImNsb3VkYXBwaSIgd2lkdGg9IjE1MCIvPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3R5bGVzL2Jsb2NrX3RlYXNlcl9pbWFnZS9wdWJsaWMvaW1nL2xvZ29zLXNpbWJvbG9zL2xvZ29fY2VudHJhZG9fbWQucG5nP2l0b2s9NHJUVWhtY2oiIGFsdD0ibWQiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGlxdWFsaXR5LmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5L2Nyb3BwZWQtbG9nby1hcGlxdWFsaXR5LXByaW5jaXBhbC0xLTE3MHg3MC5wbmciIGhlaWdodCA9ICI3NSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+ + readmeEtag: '"6183c2530d2815ac7b66b771a7522e72f25cfa3fed62553953b9d7ebbc5f2532"' + readmeLastModified: Tue, 12 Sep 2023 10:33:16 GMT repositoryId: 474063683 description: 'doSonarAPI: static analyzer for OpenAPI contracts' created: '2022-03-25T15:25:42Z' @@ -18629,7 +18629,7 @@ owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 - repoEtag: '"f866560d4e40e22f8af17ab57b53fa53ab975fd39dc17a2964fbc826f12f6b33"' + repoEtag: '"afa3ec26718c0c09d6b59879b6fcb24ddfb43111f9e367166aa412b9c157717b"' repoLastModified: Fri, 08 Sep 2023 15:54:24 GMT category: Server Implementations foundInMaster: true @@ -18800,9 +18800,9 @@ id: b66cdba4561e1b20dccc1ab8c494b7c9 repositoryMetadata: base64Readme: >- - PHAgYWxpZ249ImNlbnRlciI+Cgk8YSBocmVmPSJodHRwczovL2FwaWFkZGljdHMub3JnLyI+CgkgIDxpbWcgc3JjPSJodHRwczovL2FwaWFkZGljdHMtd2ViLnMzLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzAzLzE3MTU1NzM2L2Nyb3BwZWQtQVBJQWRkaWN0cy1sb2dvdGlwb19yb2pvLTIwNDh4NTIzLnBuZyI+Cgk8L2E+CjwvcD4KCiMjIENvbnRyaWJ1dG9ycwojIyMgQ2xvdWRBUFBpCkNsb3VkQXBwaSBpcyBvbmUgbGVhZGVyIGluIEFQSXMgaW4gZ2xvYmFsIHdvcmQuIFNlZSB0aGUgW0Nsb3VkQVBQaSBTZXJ2aWNlc10oaHR0cHM6Ly9jbG91ZGFwcGkubmV0KSAKCiMjIyBNYWRyaWQgRGlnaXRhbApNYWRyaWQgRGlnaXRhbCBpcyBhIHB1YmxpYyBhZG1pbmlzdHJhdGlvbiBpbiBTcGFpbi4gU2VlIHRoZSBbQ29tdW5pZGFkIGRlIE1hZHJpZCB3ZWJzaXRlXShodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkLykKCiMjIENvbmZpZ3VyZSBzY2FubmVyCgojIyMgTWF2ZW4gcGx1Z2luCgojIyMjIENvbmZpZ3VyZSBwcm9wZXJ0aWVzCgpJbiBgcG9tLnhtbGAgY29uZmlndXJlOgoKYGBgYHhtbAogICAgPHByb3BlcnRpZXM+CiAgICAgICAgPCEtLSBPcHRpb25hbCwgV2hlbiBpcyBzZXQgb25seSB0aGUgbGFuZ3VhZ2Ugc3BlY2lmaWVkIGlzIGFuYWx5emVkIC0tPgogICAgICAgIDxzb25hci5sYW5ndWFnZT5vcGVuYXBpPC9zb25hci5sYW5ndWFnZT4KICAgICAgICA8IS0tIE9wdGlvbmFsLCBEZWZhdWx0IHZhbHVlIGlzIHNyYy9tYWluLHBvbS54bWwgLS0+CiAgICAgICAgPHNvbmFyLnNvdXJjZXM+Ljwvc29uYXIuc291cmNlcz4KICAgIDwvcHJvcGVydGllcz4KYGBgYAoKIyMjIyBSdW4gc2Nhbm5lcgoKYG12biBzb25hcjpzb25hciAtRHNvbmFyLmhvc3QudXJsPTxIT1NUPiAtRHNvbmFyLmxvZ2luPTxLRVk+YAoKIyMjIEV4dGVybmFsIGBzb25hci1zY2FubmVyYAoKIyMjIyBJbnN0YWxsIGBzb25hci1zY2FubmVyYAoKRG93bmxvYWQgdGhlIGBzb25hci1zY2FubmVyYCBmcm9tIGh0dHBzOi8vZG9jcy5zb25hcnF1YmUub3JnL2xhdGVzdC9hbmFseXNpcy9zY2FuL3NvbmFyc2Nhbm5lci8gYW5kIG1ha2UgaXQgYWNjZXNzaWJsZS4KCiMjIyMgQ29uZmlndXJlIHByb3BlcnRpZXMKCkluIGBzb25hci1wcm9qZWN0LnByb3BlcnRpZXNgIChmaWxlIGluIHJvb3QgcHJvamVjdCBmb2xkZXIpIGNvbmZpZ3VyZToKCmBgYGBwcm9wZXJ0aWVzCiMgbXVzdCBiZSB1bmlxdWUgaW4gYSBnaXZlbiBTb25hclF1YmUgaW5zdGFuY2UKc29uYXIucHJvamVjdEtleT10ZXN0OnRlc3QKIyB0aGlzIGlzIHRoZSBuYW1lIGFuZCB2ZXJzaW9uIGRpc3BsYXllZCBpbiB0aGUgU29uYXJRdWJlIFVJLiBXYXMgbWFuZGF0b3J5IHByaW9yIHRvIFNvbmFyUXViZSA2LjEuCnNvbmFyLnByb2plY3ROYW1lPU9wZW5BUEkgcGx1Z2luIHRlc3RzCnNvbmFyLnByb2plY3RWZXJzaW9uPTEuMC1TTkFQU0hPVAoKIyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzb25hci1wcm9qZWN0LnByb3BlcnRpZXMgZmlsZS4gUmVwbGFjZSAiXCIgYnkgIi8iIG9uIFdpbmRvd3MuCiMgVGhpcyBwcm9wZXJ0eSBpcyBvcHRpb25hbCBpZiBzb25hci5tb2R1bGVzIGlzIHNldC4Kc29uYXIuc291cmNlcz0uCgojIEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgY29kZS4gRGVmYXVsdCBpcyBkZWZhdWx0IHN5c3RlbSBlbmNvZGluZwpzb25hci5zb3VyY2VFbmNvZGluZz1VVEYtOAojIFNlbGVjdCB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGZvciBhbmFseXNpcwpzb25hci5sYW5ndWFnZT1vcGVuYXBpCmBgYGAKCiMjIyMgUnVuIHNjYW5uZXIKCmBzb25hci1zY2FubmVyIC1Ec29uYXIuaG9zdC51cmw9PEhPU1Q+IC1Ec29uYXIubG9naW49PEtFWT5gCgojIyBDb21wYXRpYmlsaXR5CgpUaGlzIHBsdWdpbiBpcyBzdXBwb3J0ZWQgYnkgU29uYXJRdWJlIHZlcnNpb25zIGdyZWF0ZXIgb3IgZXF1YWwgdG8gYDYuNy40YAoKIyMjIEV4cGxpY2l0IGNvbXBhdGliaWxpdHkgdmVyc2lvbnMgdGVzdGVkCgp8IFZlcnNpb24gfAp8LS0tLS0tLS0tfAp8IGA2LjcuNGAgfAp8IGA3LjktY29tbXVuaXR5YCB8CnwgYDguMy1jb21tdW5pdHlgIHwK - readmeEtag: '"ed94ffc3bb87c7c3ee6927e9ab6efdaf1a2e74074c0a65ffe1a4ce0ea641f7a0"' - readmeLastModified: Thu, 15 Dec 2022 08:59:48 GMT + CgojIPCfm6DvuI8gZG9Tb25hckFwaSAoUnVsZXMpICFbUmVsZWFzZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9yZWxlYXNlLTEuMC4zLXB1cnBsZSkgIVtKYXZhXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2phdmEtJTIzRUQ4QjAwLnN2Zz9zdHlsZT1mbGF0JmxvZ289b3BlbmpkayZsb2dvQ29sb3I9d2hpdGUpICBbIVtMaWNlbnNlOiBMR1BMIHYzXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTEdQTF92My1ibHVlLnN2ZyldKGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjApIAoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIGEgc2V0IG9mIGN1c3RvbSBTb25hclF1YmUgcnVsZXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGFuYWx5emUgYW5kIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgT3BlbkFQSSBzcGVjaWZpY2F0aW9ucy4gQnkgaW50ZWdyYXRpbmcgdGhlc2UgcnVsZXMsIHRlYW1zIGNhbiBlbnN1cmUgYmVzdCBwcmFjdGljZXMsIG1haW50YWluYWJpbGl0eSwgYW5kIGNvbnNpc3RlbmN5IGluIHRoZWlyIEFQSSBkZWZpbml0aW9ucy4KCiMjIyBUaGlzIHJlcG9zaXRvcnkgaXMgaW50ZW5kZWQgZm9yIDpvY3RvY2F0OiAqKmNvbW11bml0eSoqIHVzZSwgaXQgY2FuIGJlIG1vZGlmaWVkIGFuZCBhZGFwdGVkIHdpdGhvdXQgY29tbWVyY2lhbCB1c2UuIElmIHlvdSBuZWVkIGEgdmVyc2lvbiwgc3VwcG9ydCBvciBoZWxwIGZvciB5b3VyICoqZW50ZXJwcmlzZSoqIG9yIHByb2plY3QsIHBsZWFzZSBjb250YWN0IHVzIPCfk6cgZGV2cmVsQGFwaWFkZGljdHMub3JnCiMjIyDwn5KhIElmIHlvdSBoYXZlIGFuIGlkZWEgZm9yIGEgcnVsZSBidXQgeW91IGFyZSBub3Qgc3VyZSB0aGF0IGV2ZXJ5b25lIG5lZWRzIGl0IHlvdSBjYW4gaW1wbGVtZW50IGEgW2N1c3RvbSBydWxlXShDdXN0b21SdWxlcy5tZCkgYXZhaWxhYmxlIG9ubHkgZm9yIHlvdS4KClshW1R3aXR0ZXJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvVHdpdHRlci0lMjMwMDAwMDAuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz14JmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vdHdpdHRlci5jb20vQVBJQWRkaWN0cykgClshW0Rpc2NvcmRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRGlzY29yZC0lMjM1ODY1RjIuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1kaXNjb3JkJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vZGlzY29yZC5nZy9aZGJHcU1CWXk4KQpbIVtMaW5rZWRJbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9saW5rZWRpbi0lMjMwMDc3QjUuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1saW5rZWRpbiZsb2dvQ29sb3I9d2hpdGUpXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9hcGlhZGRpY3RzLykKWyFbRmFjZWJvb2tdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvRmFjZWJvb2stJTIzMTg3N0YyLnN2Zz9zdHlsZT1mb3ItdGhlLWJhZGdlJmxvZ289RmFjZWJvb2smbG9nb0NvbG9yPXdoaXRlKV0oaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2FwaWFkZGljdHMpClshW1lvdVR1YmVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvWW91VHViZS0lMjNGRjAwMDAuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UmbG9nbz1Zb3VUdWJlJmxvZ29Db2xvcj13aGl0ZSldKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL0BBUElBZGRpY3RzbG1hb28pCgojIPCfmYwgSm9pbiB0aGUgKipkb1NvbmFyQXBpKiogQWRvcHRlcnMgbGlzdCAK8J+ToiBJZiBkb1NvbmFyQXBpIGlzIHBhcnQgb2YgeW91ciBvcmdhbml6YXRpb24ncyB0b29sa2l0LCB3ZSBraW5kbHkgZW5jb3VyYWdlIHlvdSB0byBpbmNsdWRlIHlvdXIgY29tcGFueSdzIG5hbWUgaW4gb3VyIEFkb3B0ZXJzIGxpc3QuIPCfmY8gVGhpcyBub3Qgb25seSBzaWduaWZpY2FudGx5IGJvb3N0cyB0aGUgcHJvamVjdCdzIHZpc2liaWxpdHkgYW5kIHJlcHV0YXRpb24gYnV0IGFsc28gcmVwcmVzZW50cyBhIHNtYWxsIHlldCBpbXBhY3RmdWwgd2F5IHRvIGdpdmUgYmFjayB0byB0aGUgcHJvamVjdC4KCnwgT3JnYW5pemF0aW9uICB8IERlc2NyaXB0aW9uIG9mIFVzZSAvIFJlZmVyZW5jIHwKfC0tLXwtLS18CnwgIFtDbG91ZEFwcGldKGh0dHBzOi8vY2xvdWRhcHBpLm5ldC8pICB8IEFwaWZpY2F0aW9uIGFuZCBnZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgfAp8IFtNYWRyaWQgRGlnaXRhbF0oaHR0cHM6Ly93d3cuY29tdW5pZGFkLm1hZHJpZC9zZXJ2aWNpb3Mvc2VkZS1lbGVjdHJvbmljYS9tYWRyaWQtZGlnaXRhbC8pICB8IEdlbmVyYXRpb24gb2YgbWljcm9zZXJ2aWNlcyAgfAp8IFtBcGlxdWFsaXR5XShodHRwczovL2FwaXF1YWxpdHkuaW8vKSAgfCBHZW5lcmF0aW9uIG9mIG1pY3Jvc2VydmljZXMgIHwKCiMg8J+RqfCfj73igI3wn5K7ICBDb250cmlidXRlIHRvIEFwaUFkZGljdHMgCgpXZSdyZSBhbiBpbmNsdXNpdmUgYW5kIG9wZW4gY29tbXVuaXR5LCB3ZWxjb21pbmcgeW91IHRvIGpvaW4gb3VyIGVmZm9ydCB0byBlbmhhbmNlIEFwaUFkZGljdHMsIGFuZCB3ZSdyZSBleGNpdGVkIHRvIHByaW9yaXRpemUgdGFza3MgYmFzZWQgb24gY29tbXVuaXR5IGlucHV0LCBpbnZpdGluZyB5b3UgdG8gcmV2aWV3IGFuZCBjb2xsYWJvcmF0ZSB0aHJvdWdoIG91ciBHaXRIdWIgaXNzdWUgdHJhY2tlci4KCkZlZWwgZnJlZSB0byBkcm9wIGJ5IGFuZCBncmVldCB1cyBvbiBvdXIgR2l0SHViIGRpc2N1c3Npb24gb3IgRGlzY29yZCBjaGF0LiBZb3UgY2FuIGFsc28gc2hvdyB5b3VyIHN1cHBvcnQgYnkgZ2l2aW5nIHVzIHNvbWUgR2l0SHViIHN0YXJzIOKtkO+4jywgb3IgYnkgZm9sbG93aW5nIHVzIG9uIFR3aXR0ZXIsIExpbmtlZEluLCBhbmQgc3Vic2NyaWJpbmcgdG8gb3VyIFlvdVR1YmUgY2hhbm5lbCEg8J+agAoKWyFbIkJ1eSBNZSBBIENvZmZlZSJdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vYXNzZXRzL2ltZy9jdXN0b21faW1hZ2VzL29yYW5nZV9pbWcucG5nKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9hcGlhZGRpY3RzKQoKCiMg8J+TkSBHZXR0aW5nIHN0YXJ0ZWQgCgojIyDwn5SNIENvbmZpZ3VyZSBzY2FubmVyCgojIyMgTWF2ZW4gcGx1Z2luCgojIyMjIENvbmZpZ3VyZSBwcm9wZXJ0aWVzCgpJbiBgcG9tLnhtbGAgY29uZmlndXJlOgoKYGBgYHhtbAogICAgPHByb3BlcnRpZXM+CiAgICAgICAgPCEtLSBPcHRpb25hbCwgV2hlbiBpcyBzZXQgb25seSB0aGUgbGFuZ3VhZ2Ugc3BlY2lmaWVkIGlzIGFuYWx5emVkIC0tPgogICAgICAgIDxzb25hci5sYW5ndWFnZT5vcGVuYXBpPC9zb25hci5sYW5ndWFnZT4KICAgICAgICA8IS0tIE9wdGlvbmFsLCBEZWZhdWx0IHZhbHVlIGlzIHNyYy9tYWluLHBvbS54bWwgLS0+CiAgICAgICAgPHNvbmFyLnNvdXJjZXM+Ljwvc29uYXIuc291cmNlcz4KICAgIDwvcHJvcGVydGllcz4KYGBgYAoKIyMjIyBSdW4gc2Nhbm5lcgoKYG12biBzb25hcjpzb25hciAtRHNvbmFyLmhvc3QudXJsPTxIT1NUPiAtRHNvbmFyLmxvZ2luPTxLRVk+YAoKIyMjIEV4dGVybmFsIGBzb25hci1zY2FubmVyYAoKIyMjIyBJbnN0YWxsIGBzb25hci1zY2FubmVyYAoKRG93bmxvYWQgdGhlIGBzb25hci1zY2FubmVyYCBmcm9tIGh0dHBzOi8vZG9jcy5zb25hcnF1YmUub3JnL2xhdGVzdC9hbmFseXNpcy9zY2FuL3NvbmFyc2Nhbm5lci8gYW5kIG1ha2UgaXQgYWNjZXNzaWJsZS4KCiMjIyMgQ29uZmlndXJlIHByb3BlcnRpZXMKCkluIGBzb25hci1wcm9qZWN0LnByb3BlcnRpZXNgIChmaWxlIGluIHJvb3QgcHJvamVjdCBmb2xkZXIpIGNvbmZpZ3VyZToKCmBgYGBwcm9wZXJ0aWVzCiMgbXVzdCBiZSB1bmlxdWUgaW4gYSBnaXZlbiBTb25hclF1YmUgaW5zdGFuY2UKc29uYXIucHJvamVjdEtleT10ZXN0OnRlc3QKIyB0aGlzIGlzIHRoZSBuYW1lIGFuZCB2ZXJzaW9uIGRpc3BsYXllZCBpbiB0aGUgU29uYXJRdWJlIFVJLiBXYXMgbWFuZGF0b3J5IHByaW9yIHRvIFNvbmFyUXViZSA2LjEuCnNvbmFyLnByb2plY3ROYW1lPU9wZW5BUEkgcGx1Z2luIHRlc3RzCnNvbmFyLnByb2plY3RWZXJzaW9uPTEuMC1TTkFQU0hPVAoKIyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzb25hci1wcm9qZWN0LnByb3BlcnRpZXMgZmlsZS4gUmVwbGFjZSAiXCIgYnkgIi8iIG9uIFdpbmRvd3MuCiMgVGhpcyBwcm9wZXJ0eSBpcyBvcHRpb25hbCBpZiBzb25hci5tb2R1bGVzIGlzIHNldC4Kc29uYXIuc291cmNlcz0uCgojIEVuY29kaW5nIG9mIHRoZSBzb3VyY2UgY29kZS4gRGVmYXVsdCBpcyBkZWZhdWx0IHN5c3RlbSBlbmNvZGluZwpzb25hci5zb3VyY2VFbmNvZGluZz1VVEYtOAojIFNlbGVjdCB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGZvciBhbmFseXNpcwpzb25hci5sYW5ndWFnZT1vcGVuYXBpCmBgYGAKCiMjIyMg4pa277iPIFJ1biBzY2FubmVyCgpgc29uYXItc2Nhbm5lciAtRHNvbmFyLmhvc3QudXJsPTxIT1NUPiAtRHNvbmFyLmxvZ2luPTxLRVk+YAoKIyMg4pyFIENvbXBhdGliaWxpdHkKClRoaXMgcGx1Z2luIGlzIHN1cHBvcnRlZCBieSBTb25hclF1YmUgdmVyc2lvbnMgZ3JlYXRlciBvciBlcXVhbCB0byBgNi43LjRgCgojIyMgRXhwbGljaXQgY29tcGF0aWJpbGl0eSB2ZXJzaW9ucyB0ZXN0ZWQKCnwgVmVyc2lvbiB8CnwtLS0tLS0tLS18CnwgYDYuNy40YCB8CnwgYDcuOS1jb21tdW5pdHlgIHwKfCBgOC4zLWNvbW11bml0eWAgfAoKIyMg8J+SmyBTcG9uc29ycwo8cCBhbGlnbj0iY2VudGVyIj4KCTxhIGhyZWY9Imh0dHBzOi8vYXBpYWRkaWN0cy5vcmcvIj4KICAgIAk8aW1nIHNyYz0iaHR0cHM6Ly9hcGlhZGRpY3RzLmNsb3VkYXBwaS5uZXQvd2ViL2ltYWdlLzQyNDgvTE9HT0Nsb3VkYXBwaTIwMjBWZXJzaW9uZXMtMDEucG5nIiBhbHQ9ImNsb3VkYXBwaSIgd2lkdGg9IjE1MCIvPgogICAgICAgIDxpbWcgc3JjPSJodHRwczovL3d3dy5jb211bmlkYWQubWFkcmlkL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3R5bGVzL2Jsb2NrX3RlYXNlcl9pbWFnZS9wdWJsaWMvaW1nL2xvZ29zLXNpbWJvbG9zL2xvZ29fY2VudHJhZG9fbWQucG5nP2l0b2s9NHJUVWhtY2oiIGFsdD0ibWQiIHdpZHRoPSIxNTAiLz4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hcGlxdWFsaXR5LmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5L2Nyb3BwZWQtbG9nby1hcGlxdWFsaXR5LXByaW5jaXBhbC0xLTE3MHg3MC5wbmciIGhlaWdodCA9ICI3NSI+CiAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXBpYWRkaWN0cy13ZWIuczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjIvMDMvMTcxNTU3MzYvY3JvcHBlZC1BUElBZGRpY3RzLWxvZ290aXBvX3Jvam8ucG5nIiBoZWlnaHQgPSAiNzUiPgoJPC9hPgo8L3A+ + readmeEtag: '"f22354cd52422b6d70312e10735dd616278270ef05dec693b98d38baac9fc390"' + readmeLastModified: Tue, 12 Sep 2023 10:49:47 GMT repositoryId: 317901907 description: >- doSonarAPI is a set of rules to validate OpenAPI / Swagger api definitions @@ -18817,7 +18817,7 @@ owner: apiaddicts logo: https://avatars.githubusercontent.com/u/31730093?v=4 license: LGPL-3.0 - repoEtag: '"223fd0a63c02ba5857b480f5c816075c7be2ad0f2823b9d5da70dd7a097f6bb8"' + repoEtag: '"455e4667a3578471fc76a56d89578a395a5dcb8e8c28b253f7016fbde7771763"' repoLastModified: Fri, 24 Feb 2023 09:20:19 GMT category: Code Generators foundInMaster: true @@ -19098,17 +19098,17 @@ repositoryId: 601809698 description: GoAPI - A Fast and Easy-to-use Web Framework for Building APIs in Go created: '2023-02-14T21:41:22Z' - updated: '2023-03-15T10:22:32Z' + updated: '2023-09-13T03:06:59Z' language: Go archived: false - stars: 3 + stars: 33 watchers: 1 - forks: 0 + forks: 2 owner: hvuhsg logo: https://avatars.githubusercontent.com/u/34660046?v=4 license: MIT - repoEtag: '"1e00bfdcf599e489cd9b001c0d69d4bc014f8cc4bdec33499c81378580c8b0c8"' - repoLastModified: Wed, 15 Mar 2023 10:22:32 GMT + repoEtag: '"c66637e60db9be3e038d39af60dc9333b2958e2341c0af657296f8e17b2112d1"' + repoLastModified: Wed, 13 Sep 2023 03:06:59 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -19462,7 +19462,7 @@ owner: AfshinParhizkari logo: https://avatars.githubusercontent.com/u/32636285?v=4 license: LGPL-2.1 - repoEtag: '"245a95bffb5a8a9c26abbfe789fa00d90fd5323266d5b86171dfcf2c6f4ddcaf"' + repoEtag: '"ea4858ba623c337b2ed5839be822322e738720b9aef959f84f536586906ebfe7"' repoLastModified: Thu, 03 Nov 2022 07:13:50 GMT foundInMaster: true category: @@ -19515,7 +19515,7 @@ owner: sergeyklay logo: https://avatars.githubusercontent.com/u/1256298?v=4 license: MIT - repoEtag: '"101b1be2860b76558a033ba9d44586272f057ae686970da2ce46279a456eeda7"' + repoEtag: '"65ae9ffcbebebc6603c134fe89676a000c04cb2a5e2b416454fcc07b7d4b3e1c"' repoLastModified: Sat, 08 Jul 2023 08:42:03 GMT category: Server Implementations foundInMaster: true @@ -20235,7 +20235,7 @@ owner: tsingsun logo: https://avatars.githubusercontent.com/u/5848549?v=4 license: MIT - repoEtag: '"1d9869b2781f05b05a3815e4aac2f3a590f9bfa81bd5390b7ba60d089c47adcc"' + repoEtag: '"d8f789da224dd4e32bb3875c53cfaa41fc6a61b423f4042b8bfcdcea4b8798dd"' repoLastModified: Sun, 20 Aug 2023 07:44:44 GMT category: Server Implementations foundInMaster: true @@ -20384,7 +20384,7 @@ owner: abassel logo: https://avatars.githubusercontent.com/u/11035784?v=4 license: MIT - repoEtag: '"f8aba66a9f064e24649d3f01590a22c4c4c986d963682957cc4a63c2cfc6e1a6"' + repoEtag: '"c7673ecee257c2455247bc69b00d8868bdeb9809148870078fce304bc31f283a"' repoLastModified: Fri, 07 Jul 2023 06:57:53 GMT foundInMaster: true category: Server Implementations @@ -21586,7 +21586,7 @@ owner: tidepool-org logo: https://avatars.githubusercontent.com/u/4390820?v=4 license: BSD-2-Clause - repoEtag: '"445d2bf9fe4075d72c0f8d7f87ce69c8d7718f913bfd14ec0643ee2029f519b8"' + repoEtag: '"95eec59056a012441170dc6e792be44d7a24d9c62ed32e412504ae1d0086547c"' repoLastModified: Fri, 09 Jun 2023 22:26:47 GMT category: Server Implementations foundInMaster: true @@ -21795,7 +21795,7 @@ owner: igrek8 logo: https://avatars.githubusercontent.com/u/7078731?v=4 license: MIT - repoEtag: '"1cf425109ebdbec01040a22f3874d797b93302ab771f6185bfeee3d793e838a5"' + repoEtag: '"6f8454f31809c7dddc2b1b4f61b9f3ccf5be00c43ebaa363aef19d3a3b9cbf06"' repoLastModified: Thu, 15 Jun 2023 13:09:53 GMT category: Parsers foundInMaster: true @@ -24554,7 +24554,7 @@ repositoryId: 359301009 description: A web framework that is composed of flask, pydantic, and openapi 3. created: '2021-04-19T02:07:52Z' - updated: '2023-07-31T12:22:15Z' + updated: '2023-09-12T09:44:57Z' language: Python archived: true stars: 1 @@ -24563,8 +24563,8 @@ owner: yangfan9702 logo: https://avatars.githubusercontent.com/u/41955644?v=4 license: MIT - repoEtag: '"8a639610ea74a5cd83be1b9840eb04cfba4d0732429a05020e18956adeb51375"' - repoLastModified: Mon, 31 Jul 2023 12:22:15 GMT + repoEtag: '"b1b004088bfdd91df9e183ad61b57472da9c25f047329834e6a6ba1bfaefadbd"' + repoLastModified: Tue, 12 Sep 2023 09:44:57 GMT foundInMaster: true category: Data Validators id: 60d588df8cebf2352d767550219d6c8c @@ -24666,7 +24666,7 @@ owner: ExpediaGroup logo: https://avatars.githubusercontent.com/u/38541875?v=4 license: Apache-2.0 - repoEtag: '"8f6f19cd51dddca7af67efa18aead4d3a67ab2aff371f224e2c77f5558bf03d9"' + repoEtag: '"fb019f6b4ac2ae1737ff0abc6daed99e54f63f0d5375d4ee68aedf793838cc39"' repoLastModified: Tue, 18 Jul 2023 09:30:33 GMT category: Parsers foundInMaster: true @@ -24932,7 +24932,7 @@ forks: 0 owner: TheAirBlow logo: https://avatars.githubusercontent.com/u/68467762?v=4 - repoEtag: '"b708aff4d4f528eafdfc40b0260f1c942632d5cff95e4bcf0027a4dfc37ca0a9"' + repoEtag: '"326ee4ab91c029b70a465be9a5a46aa13d7e908a06ab52082bda23992362cc94"' repoLastModified: Tue, 03 Jan 2023 13:13:05 GMT foundInMaster: true category: @@ -25074,9 +25074,9 @@ id: bf23379a010e0d69a29b65a9831316fd repositoryMetadata: base64Readme: >- - IyBBcGlCYWtlCgpDb252ZXJ0IE9wZW5BUEkgc3BlYyB0byBQREYuIFN1cHBvcnRzIE9wZW5BUEkgMy4wLjArIGpzb24gYW5kIHlhbWwuCgoqKlF1aWNrIHN0YXJ0OioqCgpgYGAKbnBtIGluc3RhbGwgLWcgYXBpYmFrZQoKYXBpYmFrZSA8b3BlbmFwaS5qc29ufC55YW1sfGZvbGRlci1uYW1lPiBbPGZpbGUtb3ItZm9sZGVyMj4gPGZpbGUtb3ItZm9sZGVyMz4gLi4uXSBbPG9wdGlvbnM+XQpgYGAKCioqT3B0aW9uczoqKgoKYGBgCiAtLW91dCA8c3RyaW5nPjogT3V0cHV0IFBERiBmaWxlIG5hbWUuCiAtLXRpdGxlIDxzdHJpbmc+OiBEb2N1bWVudCB0aXRsZS4KIC0tc3VidGl0bGUgPHN0cmluZz46IERvY3VtZW50IHN1YiB0aXRsZS4KIC0tc2VwYXJhdGUtc2NoZW1hczogV2hlbiBtdWx0aXBsZSBBUEkgZmlsZXMgcGFyc2VkLCBjcmVhdGUgc2VwYXJhdGUgc2NoZW1hcyBzZWN0aW9uIGZvciBlYWNoLgogLS1jb25maWcgPHN0cmluZz46IFBhdGggdG8gYXBpYmFrZS1jb25maWcuanNvbi4gU2VlIC0tZXhwb3J0LWNvbmZpZy4KIC0tZXhwb3J0LWNvbmZpZzogU2F2ZSBkZWZhdWx0IGNvbmZpZyBpbnRvIGpzb24gZmlsZSBmb3IgZWRpdGluZy4KIC1oOiBTaG93IHRoaXMgaGVscC4KYGBgCgoqKkV4YW1wbGVzOioqCgpTcGVjaWZ5IHRpdGxlIGFuZCBzdWJ0aXRsZSBmb3IgeW91ciBQREY6CgpgYGAKYXBpYmFrZSBvcGVuYXBpLmpzb24gLS10aXRsZSAnUkVTVCBBUEkgU3BlYycgLS1zdWJ0aXRsZSAnY3JlYXRlZCBieSBBcGlCYWtlJwpgYGAKCkNvbWJpbmUgc2V2ZXJhbCBPcGVuQVBJIHNwZWNzIGludG8gb25lIFBERjoKCmBgYAphcGliYWtlIGFwaTEuanNvbiBhcGkyLnlhbWwgLS10aXRsZSAnUkVTVCBBUEkgU3BlYycKYXBpYmFrZSBkaXIvd2l0aC9vcGVuYXBpLXNwZWNzIC0tdGl0bGUgJ1JFU1QgQVBJIFNwZWMnCmBgYAoKQ3VzdG9tIGNvbmZpZyAoY29sb3JzLCBtYXJnaW5zLCBmb250IHNpemUpOgoKYGBgCmFwaWJha2UgLS1leHBvcnQtY29uZmlnCmFwaWJha2UgYXBpMS5qc29uIC0tdGl0bGUgJ1JFU1QgQVBJIFNwZWMnIC0tY29uZmlnIGFwaWJha2UtY29uZmlnLmpzb24KYGBgCgojIE1JVCBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMjMgQ3VydmVkTmVidWxhLmNvbQoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4K - readmeEtag: '"869a773c323a9926a5092f98c83689a46db94ec1734a1f98c01c0f95e587bdd3"' - readmeLastModified: Mon, 11 Sep 2023 19:24:38 GMT + IyBBcGlCYWtlCgpDb252ZXJ0IE9wZW5BUEkgc3BlYyB0byBQREYuIFN1cHBvcnRzIE9wZW5BUEkgMy4wLjArIGpzb24gYW5kIHlhbWwuCgojIyBRdWljayBTdGFydAoKTm9kZS5qcyAxNisgcmVxdWlyZWQuCgpgYGAKbnBtIGluc3RhbGwgLWcgYXBpYmFrZQoKYXBpYmFrZSA8b3BlbmFwaS5qc29ufC55YW1sfGZvbGRlci1uYW1lPiBbPGZpbGUtb3ItZm9sZGVyMj4gPGZpbGUtb3ItZm9sZGVyMz4gLi4uXSBbPG9wdGlvbnM+XQpgYGAKCioqT3B0aW9uczoqKgoKYGBgCiAtLW91dCA8c3RyaW5nPjogT3V0cHV0IFBERiBmaWxlIG5hbWUuCiAtLXRpdGxlIDxzdHJpbmc+OiBEb2N1bWVudCB0aXRsZS4KIC0tc3VidGl0bGUgPHN0cmluZz46IERvY3VtZW50IHN1YiB0aXRsZS4KIC0tc2VwYXJhdGUtc2NoZW1hczogV2hlbiBtdWx0aXBsZSBBUEkgZmlsZXMgcGFyc2VkLCBjcmVhdGUgc2VwYXJhdGUgc2NoZW1hcyBzZWN0aW9uIGZvciBlYWNoLgogLS1jb25maWcgPHN0cmluZz46IFBhdGggdG8gYXBpYmFrZS1jb25maWcuanNvbi4gU2VlIC0tZXhwb3J0LWNvbmZpZy4KIC0tZXhwb3J0LWNvbmZpZzogU2F2ZSBkZWZhdWx0IGNvbmZpZyBpbnRvIGpzb24gZmlsZSBmb3IgZWRpdGluZy4KIC1oOiBTaG93IHRoaXMgaGVscC4KYGBgCgojIyBFeGFtcGxlcwoKU3BlY2lmeSB0aXRsZSBhbmQgc3VidGl0bGUgZm9yIHlvdXIgUERGOgoKYGBgCmFwaWJha2Ugb3BlbmFwaS5qc29uIC0tdGl0bGUgJ1JFU1QgQVBJIFNwZWMnIC0tc3VidGl0bGUgJ2NyZWF0ZWQgd2l0aCBBcGlCYWtlJwpgYGAKCkNvbWJpbmUgc2V2ZXJhbCBPcGVuQVBJIHNwZWNzIGludG8gb25lIFBERjoKCmBgYAphcGliYWtlIGFwaTEuanNvbiBhcGkyLnlhbWwgLS10aXRsZSAnUkVTVCBBUEkgU3BlYycKYXBpYmFrZSBkaXIvd2l0aC9vcGVuYXBpLXNwZWNzIC0tdGl0bGUgJ1JFU1QgQVBJIFNwZWMnCmBgYAoKIyMgQ3VzdG9tIGNvbmZpZzogZm9udHMsIGNvbG9ycywgcGFnZSBtYXJnaW5zLgoKVG8gbW9kaWZ5IGRlZmF1bHQgYXBpYmFrZSBjb25maWcgLSBmaXJzdCBleHBvcnQgaXQgaW50byBhIGZpbGU6CgpgYGAKYXBpYmFrZSAtLWV4cG9ydC1jb25maWcKYGBgCgpNb2RpZnkgYXBpYmFrZS1jb25maWcuanNvbiBhbmQgdGVsbCBhcGliYWtlIHRvIHVzZSBpdDoKCmBgYAphcGliYWtlIG9wZW5hcGkuanNvbiAtLWNvbmZpZyBhcGliYWtlLWNvbmZpZy5qc29uCmBgYAoKUERGIGRlZmF1bHQgZm9udHMgY2FuIGJlIHNwZWNpZmllZCBieSB0aGVpciBuYW1lczoKCiAtIENvdXJpZXIKIC0gQ291cmllci1Cb2xkCiAtIENvdXJpZXItT2JsaXF1ZQogLSBDb3VyaWVyLUJvbGRPYmxpcXVlCiAtIEhlbHZldGljYQogLSBIZWx2ZXRpY2EtQm9sZAogLSBIZWx2ZXRpY2EtT2JsaXF1ZQogLSBIZWx2ZXRpY2EtQm9sZE9ibGlxdWUKIC0gU3ltYm9sCiAtIFRpbWVzLVJvbWFuCiAtIFRpbWVzLUJvbGQKIC0gVGltZXMtSXRhbGljCiAtIFRpbWVzLUJvbGRJdGFsaWMKIC0gWmFwZkRpbmdiYXRzCgpBbHRlcm5hdGl2ZWx5LCBleHRlcm5hbCBmb250IGZpbGVzIGNhbiBiZSBzcGVjaWZpZWQuIFN1cHBvcnRlZCBmb250IGZvcm1hdHM6IFRydWVUeXBlICgudHRmKSwgT3BlblR5cGUgKC5vdGYpLCBXT0ZGLCBXT0ZGMiwgVHJ1ZVR5cGUgQ29sbGVjdGlvbiAoLnR0YyksIGFuZCBEYXRhZm9yayBUcnVlVHlwZSAoLmRmb250KSBmb250cy4KCkV4YW1wbGU6CgpgYGAKewogICJmb250IjogewogICAgImJhc2VTaXplIjogMTAsCiAgICAibWFpbiI6IHsKICAgICAgIm5vcm0iOiB7CiAgICAgICAgImZhY2UiOiAiZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmIgogICAgICB9LAogICAgICAiYm9sZCI6IHsKICAgICAgICAiZmFjZSI6ICJmb250cy9Sb2JvdG8tQm9sZC50dGYiCiAgICAgIH0sCiAgICAgICJpdGFsaWMiOiB7CiAgICAgICAgImZhY2UiOiAiZm9udHMvUm9ib3RvLUl0YWxpYy50dGYiCiAgICAgIH0KICAgIH0sCiAgICAibW9ubyI6IHsKICAgICAgIm5vcm0iOiB7CiAgICAgICAgImZhY2UiOiAiQ291cmllciIKICAgICAgfSwKICAgICAgImJvbGQiOiB7CiAgICAgICAgImZhY2UiOiAiQ291cmllci1Cb2xkIgogICAgICB9LAogICAgICAiaXRhbGljIjogewogICAgICAgICJmYWNlIjogIkNvdXJpZXItT2JsaXF1ZSIKICAgICAgfQogICAgfQogIH0sCiAgLi4uCn0KYGBgCgpOb3RlOiBpZiBmb250IGZpbGUgaXMgYSBjb2xsZWN0aW9uICgudHRjKSAtIHRoZW4gZm9udCBzdHlsZSBtdXN0IGJlIGFsc28gc3BlY2lmaWVkLiBFeGFtcGxlOgoKYGBgCiAiZm9udCI6IHsKICAgICJtYWluIjogewogICAgICAibm9ybSI6IHsKICAgICAgICAiZmFjZSI6ICJmb250cy9Sb2JvdG8udHRjIiwKICAgICAgICAic3R5bGUiOiAiUm9ib3RvLVJlZ3VsYXIiCiAgICAgIH0sCiAgICAgICJib2xkIjogewogICAgICAgICJmYWNlIjogImZvbnRzL1JvYm90by50dGMiLAogICAgICAgICJzdHlsZSI6ICJSb2JvdG8tQm9sZCIKICAgICAgfSwKICAgIH0sCiAgICAuLi4KIH0KYGBgCgojIE1JVCBMaWNlbnNlCgpDb3B5cmlnaHQgKGMpIDIwMjMgQ3VydmVkTmVidWxhLmNvbQoKUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQpvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAppbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgpUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KClRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLApGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgpMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLApPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQpTT0ZUV0FSRS4K + readmeEtag: '"455f73b651fc20b3e3ab2f8b3568fcfa1a87cd855d9d70a07266fbdae545da4c"' + readmeLastModified: Tue, 12 Sep 2023 20:01:35 GMT repositoryId: 683452181 description: Convert OpenAPI to PDF. created: '2023-08-26T16:09:46Z' @@ -25088,7 +25088,7 @@ forks: 0 owner: curvednebula logo: https://avatars.githubusercontent.com/u/1443238?v=4 - repoEtag: '"20ae33f572f237b32748f5cf6d1fb03d2c8bcdbe9a6d63cc33ec2a0b19f6b87a"' + repoEtag: '"45381009adba26bbcb0dda83f9ce1b5b1d060ddccf57b795a92afe628f6ef3e2"' repoLastModified: Tue, 12 Sep 2023 01:46:11 GMT category: Parsers foundInMaster: true @@ -25540,7 +25540,7 @@ owner: hiroyoshii logo: https://avatars.githubusercontent.com/u/40140638?v=4 license: Apache-2.0 - repoEtag: '"a6b362df339738711c82305f33f3084a5f366e72ce352657345281f69a85ed46"' + repoEtag: '"86772b1e16909780f8a2e2f207d7d78524090ef48e96401f1b9c0ac4ec65a9b6"' repoLastModified: Sat, 02 Sep 2023 16:28:12 GMT category: Server Implementations foundInMaster: true @@ -25719,7 +25719,7 @@ owner: protung logo: https://avatars.githubusercontent.com/u/81255167?v=4 license: MIT - repoEtag: '"8f98f07f0e20acc5d510f1bcd60c8f597c37c40b7e4b6c4dd9c75bf2a316dd8d"' + repoEtag: '"91cb1265c971e292519bb280c8138b359c88db7caf219abacde56e9e78811d9a"' repoLastModified: Fri, 16 Dec 2022 13:24:18 GMT category: - Server @@ -26726,7 +26726,7 @@ owner: experienced-dev logo: https://avatars.githubusercontent.com/u/61656932?v=4 license: MIT - repoEtag: '"f9c87c267a545846d2367aa87ac9ad95eab3aba5f2f8b4fcf4dac63deef3b778"' + repoEtag: '"8620a92442b7650a6fef7640dd94639fa568c450a54ef1234a7528b735fab5e5"' repoLastModified: Sat, 26 Aug 2023 14:47:42 GMT category: Parsers foundInMaster: true @@ -28164,7 +28164,7 @@ owner: aosolorzano logo: https://avatars.githubusercontent.com/u/5817871?v=4 license: Apache-2.0 - repoEtag: '"b0d6debbe350dc7589d40baf1467a9360e19245e33eefcde504ec4c37ba242ef"' + repoEtag: '"77d348b1636ade52b4e6db57198eef4c031da572890102f4b1787008ba6168d8"' repoLastModified: Sun, 20 Aug 2023 18:25:09 GMT category: Server Implementations foundInMaster: true @@ -30385,7 +30385,7 @@ owner: intellifi-nl logo: https://avatars.githubusercontent.com/u/9928538?v=4 license: MIT - repoEtag: '"3694d0faa7fdeef80419a510524f75360e140f45812e08cfcc3c9cf9c3322648"' + repoEtag: '"f68bd672c93d55217db5660c4254a65e5964a126a47da0f0a09f8152036e9bc9"' repoLastModified: Tue, 19 Oct 2021 12:37:35 GMT foundInMaster: true category: @@ -31815,7 +31815,7 @@ forks: 0 owner: aliakkas006 logo: https://avatars.githubusercontent.com/u/75372387?v=4 - repoEtag: '"3baa420d91718e6376710a33b7c0f930d196499118c38004637cd360af40e433"' + repoEtag: '"c049463efb45c6d21df5efb604e620c85d98b1547570d5a7e6cd0db0cd649f5b"' repoLastModified: Fri, 25 Aug 2023 11:48:14 GMT category: Testing foundInMaster: true @@ -32772,7 +32772,7 @@ forks: 0 owner: wasedatime logo: https://avatars.githubusercontent.com/u/32608719?v=4 - repoEtag: '"73eed0a49067e87749bc7bd3760d754b66f144085c65567de988a5cd5d40199f"' + repoEtag: '"763d5e2421e5ff36953a3ff9c7f4d8b9b824e0eb0eb5454b99dec66595c30177"' repoLastModified: Tue, 18 Jul 2023 09:13:10 GMT foundInMaster: true category: @@ -34421,11 +34421,11 @@ archived: false stars: 1198 watchers: 65 - forks: 202 + forks: 203 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"9d9f154d62295471f6c8f2fa178cbcd04d515a3ecd078acb48605c50caa418c4"' + repoEtag: '"627649fce424c0800af5e3c24c59fc5f1badc6d579502492d61b62905db99eee"' repoLastModified: Tue, 12 Sep 2023 00:13:06 GMT id: f3215034d64cfcbcc28a4bdb0205a075 - source: IMPLEMENTATIONS.md @@ -34730,11 +34730,11 @@ archived: false stars: 3402 watchers: 180 - forks: 1006 + forks: 1008 owner: mevdschee logo: https://avatars.githubusercontent.com/u/1288217?v=4 license: MIT - repoEtag: '"cf60a32d5c844f9ac14d81bc0a1f254d1ba5c0f3a12f7b50246ba6d8bcbf66e7"' + repoEtag: '"3e77cf32b0a96edbbdef72fc11626f60919a1a56781b0b8315b3e4f73040ad32"' repoLastModified: Mon, 11 Sep 2023 05:35:14 GMT id: 84a7be428932f7789a8ad1a220b22216 - source: IMPLEMENTATIONS.md @@ -35397,11 +35397,11 @@ archived: false stars: 4279 watchers: 88 - forks: 733 + forks: 732 owner: spec-first logo: https://avatars.githubusercontent.com/u/58754196?v=4 license: NOASSERTION - repoEtag: '"00384c9d400c9581cff85a733dff94d922c9603bf4a671348a5d1267796a5110"' + repoEtag: '"e9daec57a7ef369e99040b6b092e140b9d87644eead627ef220f19cb4ce23d66"' repoLastModified: Mon, 11 Sep 2023 18:04:05 GMT foundInMaster: true homepage: https://github.com/zalando/connexion @@ -35441,7 +35441,7 @@ owner: j-d-carmichael logo: https://avatars.githubusercontent.com/u/49351986?v=4 license: MIT - repoEtag: '"c303dba7cc35635c8c72ca285ccd8ec56fab73943fb6a1958409ed8db94849e9"' + repoEtag: '"7081d5de9e27a44bc9be13534b5ed70551335880983e727aafabd1e606f4b01e"' repoLastModified: Mon, 21 Aug 2023 04:50:10 GMT foundInMaster: true id: 8049f9d9f009ed969457a47b97bb22a5 @@ -35694,17 +35694,17 @@ LoopBack makes it easy to build modern API applications that require complex integrations. created: '2017-01-09T17:27:14Z' - updated: '2023-09-11T10:03:12Z' + updated: '2023-09-12T14:50:31Z' language: TypeScript archived: false - stars: 4622 + stars: 4624 watchers: 135 - forks: 1043 + forks: 1044 owner: loopbackio logo: https://avatars.githubusercontent.com/u/22173486?v=4 license: NOASSERTION - repoEtag: '"5cb9b9cb59130b7d4fd4cd8658e8668aaa95fc355a14ee7ae64f465e41ca88bf"' - repoLastModified: Mon, 11 Sep 2023 10:03:12 GMT + repoEtag: '"048a85a41d123f22121bb5dbd30375f9f306abd61474c585a702c3f505754700"' + repoLastModified: Tue, 12 Sep 2023 14:50:31 GMT foundInMaster: true id: 9132c25ad468bed25b9dbbe3a352abc2 v3: true @@ -35776,17 +35776,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-09-10T11:52:26Z' + updated: '2023-09-12T12:50:19Z' language: Python archived: false - stars: 2266 + stars: 2269 watchers: 35 forks: 260 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"edd0058ad44d41c03c237f8555b977dfe6c38c2c943d9b8b5a5419f4c580f205"' - repoLastModified: Sun, 10 Sep 2023 11:52:26 GMT + repoEtag: '"a7b1830a71c27ccfb579368fb2ec3afd29e14467c403de0ecdb12e13f521a4cb"' + repoLastModified: Tue, 12 Sep 2023 12:50:19 GMT foundInMaster: true oldLocations: - https://github.com/microsoft/restler @@ -35939,7 +35939,7 @@ owner: weikangchia logo: https://avatars.githubusercontent.com/u/2174882?v=4 license: MIT - repoEtag: '"e1954322523bbe46403de98707a8cd13ac7037cbaad4356a8a4186b47e11d983"' + repoEtag: '"c8e385787190fd15779af707e47bb18015e9fd1ed5361352ede772e604cc20ca"' repoLastModified: Sat, 20 Nov 2021 15:06:15 GMT foundInMaster: true category: @@ -36678,7 +36678,7 @@ owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"471971678ddaff2ab89895365fbb62c0abaaa6e405b1ed0146825519ba7ef18c"' + repoEtag: '"ab64a517ac87b50dfeecf764ed756766de7c502292cf613025cdf337c1336603"' repoLastModified: Sat, 09 Sep 2023 14:18:33 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872