From 24bd304e3980ab1a895be0a28fcb4988ae4b1bc1 Mon Sep 17 00:00:00 2001 From: Tooling Builder Date: Thu, 9 Nov 2023 03:29:44 +0000 Subject: [PATCH] chore: Metadata build (updates to OpenAPI tooling metadata and site rebuild) --- docs/categories/all.html | 556 ++++++------ docs/categories/code-generators.html | 86 +- docs/categories/converters.html | 60 +- docs/categories/data-validators.html | 36 +- docs/categories/description-validators.html | 8 +- docs/categories/documentation.html | 48 +- docs/categories/dsl.html | 10 +- docs/categories/gateway.html | 12 +- docs/categories/gui-editors.html | 2 +- docs/categories/learning.html | 12 +- docs/categories/low-level-tooling.html | 6 +- docs/categories/mock-testing.html | 2 +- docs/categories/mock.html | 24 +- docs/categories/parsers.html | 214 ++--- docs/categories/sdk.html | 82 +- docs/categories/security.html | 12 +- docs/categories/server-implementations.html | 142 +-- docs/categories/server.html | 14 +- docs/categories/testing-tools.html | 14 +- docs/categories/testing.html | 64 +- docs/categories/text-editors.html | 8 +- docs/categories/unclassified.html | 2 +- docs/categories/user-interfaces.html | 16 +- src/_data/tools.yaml | 917 ++++++++++---------- 24 files changed, 1172 insertions(+), 1175 deletions(-) diff --git a/docs/categories/all.html b/docs/categories/all.html index 6bddc317..3be6839b 100644 --- a/docs/categories/all.html +++ b/docs/categories/all.html @@ -86,7 +86,7 @@

No Yes No - 433 + 435 @@ -109,7 +109,7 @@

Yes Yes Yes - 1119 + 1142 @@ -132,7 +132,7 @@

Yes Yes No - 1212 + 1211 @@ -535,7 +535,7 @@

Yes Yes Yes - 21339 + 21343 @@ -713,7 +713,7 @@

No Yes No - 4336 + 4353 @@ -759,7 +759,7 @@

No Yes Yes - 18079 + 18086 @@ -782,7 +782,7 @@

Yes Yes No - 71 + 72 @@ -805,7 +805,7 @@

No Yes Yes - 916 + 918 @@ -1001,7 +1001,7 @@

Yes Yes Yes - 8412 + 8413 @@ -1359,7 +1359,7 @@

Yes Yes No - 12 + 13 @@ -1382,7 +1382,7 @@

Yes Yes Yes - 3791 + 3795 @@ -1742,7 +1742,7 @@

No Yes No - 1592 + 1596 @@ -1855,7 +1855,7 @@

No Yes Yes - 4069 + 4070 @@ -1943,7 +1943,7 @@

No Yes No - 1352 + 1353 @@ -2165,7 +2165,7 @@

No Yes Yes - 709 + 710 @@ -2274,7 +2274,7 @@

No Yes No - 394 + 395 @@ -2297,7 +2297,7 @@

No Yes Yes - 2138 + 2139 @@ -2578,7 +2578,7 @@

No No Yes - 8962 + 8965 @@ -2647,7 +2647,7 @@

No Yes Yes - 6142 + 6147 @@ -2693,7 +2693,7 @@

No Yes Yes - 16086 + 16092 @@ -2714,7 +2714,7 @@

No Yes Yes - 4359 + 4363 @@ -3094,7 +3094,7 @@

No Yes No - 480 + 481 @@ -3428,7 +3428,7 @@

Yes Yes No - 68 + 69 @@ -3665,7 +3665,7 @@

No Yes No - 248 + 249 @@ -3711,7 +3711,7 @@

No Yes No - 26580 + 26586 @@ -3794,7 +3794,7 @@

No Yes No - 4 + 5 @@ -3886,7 +3886,7 @@

Yes Yes Yes - 1255 + 1258 @@ -4020,7 +4020,7 @@

Yes Yes No - 26 + 27 @@ -4108,7 +4108,7 @@

No Yes Yes - 1778 + 1780 @@ -4221,7 +4221,7 @@

Yes Yes Yes - 308 + 309 @@ -4265,7 +4265,7 @@

Yes Yes Yes - 3758 + 3768 @@ -4288,7 +4288,7 @@

Yes Yes Yes - 191 + 192 @@ -4491,7 +4491,7 @@

Yes Yes Yes - 65 + 66 @@ -4537,7 +4537,7 @@

Yes Yes Yes - 206 + 215 @@ -4703,7 +4703,7 @@

No Yes No - 1786 + 1787 @@ -4726,7 +4726,7 @@

No Yes Yes - 1946 + 1948 @@ -4749,7 +4749,7 @@

Yes Yes Yes - 24 + 25 @@ -4795,7 +4795,7 @@

No Yes No - 360 + 361 @@ -4841,7 +4841,7 @@

No Yes No - 64316 + 64357 @@ -4864,7 +4864,7 @@

Yes Yes No - 24740 + 24743 @@ -4887,7 +4887,7 @@

Yes Yes No - 21339 + 21343 @@ -4908,7 +4908,7 @@

No Yes No - 13353 + 13375 @@ -4950,7 +4950,7 @@

No Yes No - 5473 + 5478 @@ -4971,7 +4971,7 @@

No Yes No - 3665 + 3667 @@ -4992,7 +4992,7 @@

No Yes No - 3413 + 3414 @@ -5001,7 +5001,7 @@

openapi-devtools - Effortlessly discover API behaviour with a Chrome extension that automatically generates OpenAPI specifications in real time for any app or website + Chrome extension that generates API specs for any app or website No @@ -5013,7 +5013,7 @@

No Yes No - 3372 + 3383 @@ -5078,7 +5078,7 @@

No Yes No - 2391 + 2392 @@ -5101,7 +5101,7 @@

No Yes No - 1891 + 1892 @@ -5164,7 +5164,7 @@

No Yes No - 1457 + 1461 @@ -5206,7 +5206,7 @@

No Yes No - 1399 + 1400 @@ -5250,7 +5250,7 @@

No Yes No - 1139 + 1143 @@ -5313,7 +5313,7 @@

No Yes No - 807 + 810 @@ -5334,7 +5334,7 @@

No Yes No - 810 + 811 @@ -5397,7 +5397,7 @@

No Yes No - 681 + 683 @@ -5544,7 +5544,7 @@

No Yes No - 481 + 483 @@ -5649,7 +5649,7 @@

No Yes No - 418 + 419 @@ -5712,7 +5712,7 @@

No Yes No - 385 + 386 @@ -5733,7 +5733,7 @@

No Yes No - 360 + 361 @@ -5964,7 +5964,7 @@

No Yes No - 277 + 276 @@ -6493,7 +6493,7 @@

No Yes No - 174 + 175 @@ -6621,7 +6621,7 @@

No Yes No - 157 + 158 @@ -6770,7 +6770,7 @@

No Yes No - 147 + 154 @@ -6875,7 +6875,7 @@

No Yes No - 115 + 116 @@ -7001,7 +7001,7 @@

No Yes No - 103 + 104 @@ -7022,7 +7022,7 @@

No Yes No - 102 + 103 @@ -7232,7 +7232,7 @@

No Yes No - 79 + 80 @@ -7421,7 +7421,7 @@

No Yes No - 72 + 73 @@ -7484,7 +7484,7 @@

No Yes No - 73 + 74 @@ -8941,7 +8941,7 @@

No Yes No - 26 + 27 @@ -18609,7 +18609,7 @@

No Yes No - 1 + 2 @@ -28305,7 +28305,7 @@

No No No - 3434 + 3435 @@ -28821,7 +28821,7 @@

No Yes Yes - 4336 + 4338 @@ -29003,7 +29003,7 @@

No Yes No - 4667 + 4670 @@ -29700,7 +29700,7 @@

No Yes No - 1219 + 1222 @@ -29876,7 +29876,7 @@

oasdiff (link)

Stars - 433 + 435 Watchers @@ -29892,7 +29892,7 @@

oasdiff (link)

Last Updated - 2023-11-08T00:16:05Z + 2023-11-08T08:10:58Z Archived @@ -29928,11 +29928,11 @@

Scalar (link)

Stars - 1119 + 1142 Watchers - 7 + 8 Forks @@ -29944,7 +29944,7 @@

Scalar (link)

Last Updated - 2023-11-08T02:03:15Z + 2023-11-09T02:11:55Z Archived @@ -29980,7 +29980,7 @@

optic diff (link)

Stars - 1212 + 1211 Watchers @@ -29996,7 +29996,7 @@

optic diff (link)

Last Updated - 2023-11-08T02:11:26Z + 2023-11-08T21:26:03Z Archived @@ -30968,7 +30968,7 @@

ReDoc (link)

Stars - 21339 + 21343 Watchers @@ -30976,7 +30976,7 @@

ReDoc (link)

Forks - 2249 + 2250 Created @@ -30984,7 +30984,7 @@

ReDoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived @@ -31348,7 +31348,7 @@

Spot (link)

Last Updated - 2023-10-26T18:33:25Z + 2023-11-09T00:29:35Z Archived @@ -31384,7 +31384,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4336 + 4353 Watchers @@ -31392,7 +31392,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 734 + 736 Created @@ -31400,7 +31400,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-11-08T02:03:19Z + 2023-11-08T21:41:29Z Archived @@ -31488,7 +31488,7 @@

OpenAPI Generator (link)

Stars - 18079 + 18086 Watchers @@ -31496,7 +31496,7 @@

OpenAPI Generator (link)

Forks - 5743 + 5745 Created @@ -31504,7 +31504,7 @@

OpenAPI Generator (link)

Last Updated - 2023-11-08T03:22:50Z + 2023-11-08T21:34:03Z Archived @@ -31540,7 +31540,7 @@

OpenAPI JSON Schema Generator (link) Stars - 71 + 72 Watchers @@ -31556,7 +31556,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2023-11-07T14:44:33Z + 2023-11-08T13:19:57Z Archived @@ -31592,7 +31592,7 @@

Kiota Api Client Generator (link)

Stars - 916 + 918 Watchers @@ -31608,7 +31608,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-11-07T13:42:37Z + 2023-11-08T21:57:34Z Archived @@ -32060,7 +32060,7 @@

Swagger Editor (link)

Stars - 8412 + 8413 Watchers @@ -32068,7 +32068,7 @@

Swagger Editor (link)

Forks - 2210 + 2211 Created @@ -32076,7 +32076,7 @@

Swagger Editor (link)

Last Updated - 2023-11-07T21:26:27Z + 2023-11-08T19:20:58Z Archived @@ -32484,7 +32484,7 @@

Apicurio Studio (link)

Forks - 462 + 463 Created @@ -32944,7 +32944,7 @@

InducOapi (link)

Stars - 12 + 13 Watchers @@ -32960,7 +32960,7 @@

InducOapi (link)

Last Updated - 2023-09-15T14:25:18Z + 2023-11-08T20:14:57Z Archived @@ -32996,7 +32996,7 @@

Prism (link)

Stars - 3791 + 3795 Watchers @@ -33004,7 +33004,7 @@

Prism (link)

Forks - 315 + 316 Created @@ -33012,7 +33012,7 @@

Prism (link)

Last Updated - 2023-11-07T20:42:36Z + 2023-11-08T20:31:26Z Archived @@ -33108,7 +33108,7 @@

Microcks (link)

Forks - 176 + 177 Created @@ -33828,7 +33828,7 @@

Fusio (link)

Stars - 1592 + 1596 Watchers @@ -33844,7 +33844,7 @@

Fusio (link)

Last Updated - 2023-11-07T09:53:50Z + 2023-11-09T02:14:32Z Archived @@ -34088,7 +34088,7 @@

Dredd (link)

Stars - 4069 + 4070 Watchers @@ -34104,7 +34104,7 @@

Dredd (link)

Last Updated - 2023-11-07T12:36:33Z + 2023-11-08T12:39:07Z Archived @@ -34296,7 +34296,7 @@

Step CI (link)

Stars - 1352 + 1353 Watchers @@ -34304,7 +34304,7 @@

Step CI (link)

Forks - 52 + 53 Created @@ -34312,7 +34312,7 @@

Step CI (link)

Last Updated - 2023-11-07T23:08:26Z + 2023-11-08T11:03:06Z Archived @@ -34816,7 +34816,7 @@

swagger-parser (link)

Stars - 709 + 710 Watchers @@ -34832,7 +34832,7 @@

swagger-parser (link)

Last Updated - 2023-11-07T15:35:13Z + 2023-11-08T08:40:39Z Archived @@ -35076,7 +35076,7 @@

OpenAPI-TS (link)

Stars - 394 + 395 Watchers @@ -35092,7 +35092,7 @@

OpenAPI-TS (link)

Last Updated - 2023-11-03T09:21:56Z + 2023-11-08T20:02:20Z Archived @@ -35128,7 +35128,7 @@

kin-openapi (link)

Stars - 2138 + 2139 Watchers @@ -35144,7 +35144,7 @@

kin-openapi (link)

Last Updated - 2023-11-07T12:45:48Z + 2023-11-09T01:38:06Z Archived @@ -35804,7 +35804,7 @@

go-swagger (link)

Stars - 8962 + 8965 Watchers @@ -35812,7 +35812,7 @@

go-swagger (link)

Forks - 1264 + 1265 Created @@ -35820,7 +35820,7 @@

go-swagger (link)

Last Updated - 2023-11-08T02:01:01Z + 2023-11-08T23:04:31Z Archived @@ -35960,7 +35960,7 @@

NSwag (link)

Stars - 6142 + 6147 Watchers @@ -35968,7 +35968,7 @@

NSwag (link)

Forks - 1169 + 1171 Created @@ -35976,7 +35976,7 @@

NSwag (link)

Last Updated - 2023-11-07T12:40:29Z + 2023-11-08T22:22:23Z Archived @@ -36064,7 +36064,7 @@

Swagger-Codegen (link)

Stars - 16086 + 16092 Watchers @@ -36080,7 +36080,7 @@

Swagger-Codegen (link)

Last Updated - 2023-11-07T23:37:43Z + 2023-11-08T23:26:02Z Archived @@ -36116,11 +36116,11 @@

Azure AutoRest (link)

Stars - 4359 + 4363 Watchers - 816 + 817 Forks @@ -36132,7 +36132,7 @@

Azure AutoRest (link)

Last Updated - 2023-11-07T22:36:19Z + 2023-11-08T17:19:22Z Archived @@ -36800,7 +36800,7 @@

Tcases for OpenAPI (link)

Forks - 48 + 49 Created @@ -37052,7 +37052,7 @@

openapi-fuzzer (link)

Stars - 480 + 481 Watchers @@ -37068,7 +37068,7 @@

openapi-fuzzer (link)

Last Updated - 2023-11-06T16:12:28Z + 2023-11-08T11:37:29Z Archived @@ -37268,7 +37268,7 @@

JSON Schema to OpenAPI Schema (link) Forks - 14 + 15 Created @@ -37788,7 +37788,7 @@

openapi-to-postman (link)

Forks - 202 + 201 Created @@ -37832,7 +37832,7 @@

openapi-format (link)

Stars - 68 + 69 Watchers @@ -37848,7 +37848,7 @@

openapi-format (link)

Last Updated - 2023-10-25T12:19:16Z + 2023-11-08T08:35:48Z Archived @@ -37944,7 +37944,7 @@

SpringFox (link)

Forks - 1542 + 1543 Created @@ -38048,7 +38048,7 @@

OWASP ZAP (link)

Forks - 2149 + 2150 Created @@ -38056,7 +38056,7 @@

OWASP ZAP (link)

Last Updated - 2023-11-07T14:11:27Z + 2023-11-08T18:30:19Z Archived @@ -38404,7 +38404,7 @@

Spectator (link)

Stars - 248 + 249 Watchers @@ -38420,7 +38420,7 @@

Spectator (link)

Last Updated - 2023-11-06T14:39:34Z + 2023-11-08T11:02:20Z Archived @@ -38508,7 +38508,7 @@

Django REST Framework (link)

Stars - 26580 + 26586 Watchers @@ -38524,7 +38524,7 @@

Django REST Framework (link)

Last Updated - 2023-11-08T01:06:32Z + 2023-11-09T03:12:58Z Archived @@ -38716,11 +38716,11 @@

OAuth2 as OpenAPI Spec 3.0 components ( Stars - 4 + 5 Watchers - 1 + 2 Forks @@ -38732,7 +38732,7 @@

OAuth2 as OpenAPI Spec 3.0 components ( Last Updated - 2023-02-12T19:29:48Z + 2023-11-08T08:09:40Z Archived @@ -38924,7 +38924,7 @@

Elements (link)

Stars - 1255 + 1258 Watchers @@ -38932,7 +38932,7 @@

Elements (link)

Forks - 152 + 150 Created @@ -38940,7 +38940,7 @@

Elements (link)

Last Updated - 2023-11-07T21:26:21Z + 2023-11-08T16:05:51Z Archived @@ -39236,7 +39236,7 @@

BlocklyAutomation (link)

Stars - 26 + 27 Watchers @@ -39252,7 +39252,7 @@

BlocklyAutomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -39444,7 +39444,7 @@

orval (link)

Stars - 1778 + 1780 Watchers @@ -39452,7 +39452,7 @@

orval (link)

Forks - 214 + 215 Created @@ -39460,7 +39460,7 @@

orval (link)

Last Updated - 2023-11-06T19:27:05Z + 2023-11-08T17:36:20Z Archived @@ -39704,7 +39704,7 @@

vacuum (link)

Stars - 308 + 309 Watchers @@ -39720,7 +39720,7 @@

vacuum (link)

Last Updated - 2023-11-07T12:53:06Z + 2023-11-08T13:00:09Z Archived @@ -39808,7 +39808,7 @@

OpenAPI TypeScript (link)

Stars - 3758 + 3768 Watchers @@ -39816,7 +39816,7 @@

OpenAPI TypeScript (link)

Forks - 327 + 328 Created @@ -39824,7 +39824,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-11-08T02:51:04Z + 2023-11-09T03:05:11Z Archived @@ -39860,7 +39860,7 @@

libopenapi (link)

Stars - 191 + 192 Watchers @@ -39876,7 +39876,7 @@

libopenapi (link)

Last Updated - 2023-11-07T14:16:45Z + 2023-11-08T12:59:43Z Archived @@ -40328,7 +40328,7 @@

openapi-changes (link)

Stars - 65 + 66 Watchers @@ -40344,7 +40344,7 @@

openapi-changes (link)

Last Updated - 2023-11-07T13:01:41Z + 2023-11-08T12:59:34Z Archived @@ -40432,7 +40432,7 @@

kubb (link)

Stars - 206 + 215 Watchers @@ -40448,7 +40448,7 @@

kubb (link)

Last Updated - 2023-11-07T02:05:06Z + 2023-11-09T01:11:05Z Archived @@ -40848,7 +40848,7 @@

rswag (link)

Stars - 1786 + 1787 Watchers @@ -40856,7 +40856,7 @@

rswag (link)

Forks - 397 + 396 Created @@ -40864,7 +40864,7 @@

rswag (link)

Last Updated - 2023-11-07T18:58:19Z + 2023-11-08T07:54:11Z Archived @@ -40900,7 +40900,7 @@

Fern (link)

Stars - 1946 + 1948 Watchers @@ -40916,7 +40916,7 @@

Fern (link)

Last Updated - 2023-11-08T01:28:41Z + 2023-11-08T21:40:11Z Archived @@ -40952,7 +40952,7 @@

wiretap (link)

Stars - 24 + 25 Watchers @@ -40968,7 +40968,7 @@

wiretap (link)

Last Updated - 2023-11-07T12:52:57Z + 2023-11-08T12:59:24Z Archived @@ -41056,7 +41056,7 @@

typeconv (link)

Stars - 360 + 361 Watchers @@ -41072,7 +41072,7 @@

typeconv (link)

Last Updated - 2023-11-04T18:03:57Z + 2023-11-08T22:56:24Z Archived @@ -41160,15 +41160,15 @@

FastAPI (link)

Stars - 64316 + 64357 Watchers - 646 + 645 Forks - 5453 + 5455 Created @@ -41176,7 +41176,7 @@

FastAPI (link)

Last Updated - 2023-11-08T03:20:03Z + 2023-11-09T03:26:44Z Archived @@ -41212,11 +41212,11 @@

swagger-ui (link)

Stars - 24740 + 24743 Watchers - 652 + 653 Forks @@ -41228,7 +41228,7 @@

swagger-ui (link)

Last Updated - 2023-11-07T19:42:35Z + 2023-11-09T01:39:47Z Archived @@ -41264,7 +41264,7 @@

Redoc (link)

Stars - 21339 + 21343 Watchers @@ -41272,7 +41272,7 @@

Redoc (link)

Forks - 2249 + 2250 Created @@ -41280,7 +41280,7 @@

Redoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived @@ -41316,7 +41316,7 @@

full-stack-fastapi-postgresql (link) Stars - 13353 + 13375 Watchers @@ -41324,7 +41324,7 @@

full-stack-fastapi-postgresql (link) Forks - 2442 + 2449 Created @@ -41332,7 +41332,7 @@

full-stack-fastapi-postgresql (link) Last Updated - 2023-11-08T02:50:36Z + 2023-11-09T03:11:00Z Archived @@ -41420,7 +41420,7 @@

mockoon (link)

Stars - 5473 + 5478 Watchers @@ -41436,7 +41436,7 @@

mockoon (link)

Last Updated - 2023-11-08T02:07:18Z + 2023-11-09T01:05:56Z Archived @@ -41472,7 +41472,7 @@

knife4j (link)

Stars - 3665 + 3667 Watchers @@ -41488,7 +41488,7 @@

knife4j (link)

Last Updated - 2023-11-06T10:18:13Z + 2023-11-09T01:02:20Z Archived @@ -41524,7 +41524,7 @@

openapi-directory (link)

Stars - 3413 + 3414 Watchers @@ -41540,7 +41540,7 @@

openapi-directory (link)

Last Updated - 2023-11-07T12:39:09Z + 2023-11-08T06:57:53Z Archived @@ -41576,7 +41576,7 @@

openapi-devtools (link)

Stars - 3372 + 3383 Watchers @@ -41592,7 +41592,7 @@

openapi-devtools (link)

Last Updated - 2023-11-08T01:03:10Z + 2023-11-09T01:24:42Z Archived @@ -41732,7 +41732,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2391 + 2392 Watchers @@ -41740,7 +41740,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Forks - 312 + 311 Created @@ -41748,7 +41748,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2023-11-06T23:14:07Z + 2023-11-08T14:50:47Z Archived @@ -41784,7 +41784,7 @@

Schemathesis (link)

Stars - 1891 + 1892 Watchers @@ -41800,7 +41800,7 @@

Schemathesis (link)

Last Updated - 2023-11-07T16:15:41Z + 2023-11-08T09:30:04Z Archived @@ -41896,7 +41896,7 @@

gnostic (link)

Forks - 224 + 225 Created @@ -41940,7 +41940,7 @@

utoipa (link)

Stars - 1457 + 1461 Watchers @@ -41956,7 +41956,7 @@

utoipa (link)

Last Updated - 2023-11-07T22:17:22Z + 2023-11-08T19:11:44Z Archived @@ -42044,7 +42044,7 @@

msgspec (link)

Stars - 1399 + 1400 Watchers @@ -42060,7 +42060,7 @@

msgspec (link)

Last Updated - 2023-11-07T23:28:26Z + 2023-11-08T13:51:37Z Archived @@ -42148,11 +42148,11 @@

openapi-generator-cli (link)

Stars - 1139 + 1143 Watchers - 16 + 17 Forks @@ -42164,7 +42164,7 @@

openapi-generator-cli (link)

Last Updated - 2023-11-07T05:58:13Z + 2023-11-08T15:05:15Z Archived @@ -42304,7 +42304,7 @@

typespec (link)

Stars - 807 + 810 Watchers @@ -42312,7 +42312,7 @@

typespec (link)

Forks - 101 + 102 Created @@ -42320,7 +42320,7 @@

typespec (link)

Last Updated - 2023-11-01T11:43:19Z + 2023-11-08T17:48:50Z Archived @@ -42356,7 +42356,7 @@

ogen (link)

Stars - 810 + 811 Watchers @@ -42372,7 +42372,7 @@

ogen (link)

Last Updated - 2023-11-07T15:50:54Z + 2023-11-08T09:48:36Z Archived @@ -42416,7 +42416,7 @@

studio (link)

Forks - 49 + 50 Created @@ -42512,7 +42512,7 @@

openapi-diff (link)

Stars - 681 + 683 Watchers @@ -42528,7 +42528,7 @@

openapi-diff (link)

Last Updated - 2023-11-08T00:06:37Z + 2023-11-08T13:51:32Z Archived @@ -42572,7 +42572,7 @@

oas-kit (link)

Forks - 128 + 129 Created @@ -42876,7 +42876,7 @@

zod-to-openapi (link)

Stars - 481 + 483 Watchers @@ -42892,7 +42892,7 @@

zod-to-openapi (link)

Last Updated - 2023-11-07T23:41:23Z + 2023-11-08T14:02:18Z Archived @@ -43136,7 +43136,7 @@

oazapfts (link)

Stars - 418 + 419 Watchers @@ -43152,7 +43152,7 @@

oazapfts (link)

Last Updated - 2023-11-04T14:07:31Z + 2023-11-08T12:34:39Z Archived @@ -43292,7 +43292,7 @@

fastapi-gino-arq-uvicorn (link)

Stars - 385 + 386 Watchers @@ -43308,7 +43308,7 @@

fastapi-gino-arq-uvicorn (link)

Last Updated - 2023-10-19T20:40:22Z + 2023-11-09T02:53:44Z Archived @@ -43344,7 +43344,7 @@

typeconv (link)

Stars - 360 + 361 Watchers @@ -43360,7 +43360,7 @@

typeconv (link)

Last Updated - 2023-11-04T18:03:57Z + 2023-11-08T22:56:24Z Archived @@ -43768,7 +43768,7 @@

openapi-codegen (link)

Forks - 46 + 45 Created @@ -43820,7 +43820,7 @@

openapi-spec-validator (link)

Forks - 60 + 59 Created @@ -43916,7 +43916,7 @@

kui (link)

Stars - 277 + 276 Watchers @@ -43932,7 +43932,7 @@

kui (link)

Last Updated - 2023-11-06T03:19:37Z + 2023-11-08T20:01:51Z Archived @@ -44080,7 +44080,7 @@

openapi-core (link)

Forks - 119 + 118 Created @@ -44244,7 +44244,7 @@

apicat (link)

Last Updated - 2023-11-04T16:52:14Z + 2023-11-08T14:56:53Z Archived @@ -44548,7 +44548,7 @@

fastapi-clean-example (link)

Forks - 42 + 41 Created @@ -44860,7 +44860,7 @@

tcases (link)

Forks - 48 + 49 Created @@ -45216,7 +45216,7 @@

swurg (link)

Stars - 174 + 175 Watchers @@ -45232,7 +45232,7 @@

swurg (link)

Last Updated - 2023-10-20T09:05:13Z + 2023-11-08T13:54:10Z Archived @@ -45528,7 +45528,7 @@

openapi-go (link)

Stars - 157 + 158 Watchers @@ -45544,7 +45544,7 @@

openapi-go (link)

Last Updated - 2023-10-29T15:54:28Z + 2023-11-09T01:44:47Z Archived @@ -45588,7 +45588,7 @@

swagger-inflector (link)

Forks - 89 + 90 Created @@ -45892,7 +45892,7 @@

esmerald (link)

Stars - 147 + 154 Watchers @@ -45908,7 +45908,7 @@

esmerald (link)

Last Updated - 2023-11-07T20:51:51Z + 2023-11-09T02:55:22Z Archived @@ -46056,7 +46056,7 @@

apiclientcodegen (link)

Forks - 15 + 16 Created @@ -46152,7 +46152,7 @@

flask-openapi3 (link)

Stars - 115 + 116 Watchers @@ -46168,7 +46168,7 @@

flask-openapi3 (link)

Last Updated - 2023-11-07T15:52:41Z + 2023-11-08T22:32:22Z Archived @@ -46464,11 +46464,11 @@

speakeasy (link)

Stars - 103 + 104 Watchers - 9 + 8 Forks @@ -46480,7 +46480,7 @@

speakeasy (link)

Last Updated - 2023-11-07T15:19:11Z + 2023-11-08T20:04:03Z Archived @@ -46516,7 +46516,7 @@

openapi (link)

Stars - 102 + 103 Watchers @@ -46524,7 +46524,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -46532,7 +46532,7 @@

openapi (link)

Last Updated - 2023-10-26T11:42:46Z + 2023-11-08T16:30:23Z Archived @@ -47036,7 +47036,7 @@

swagger-converter (link)

Stars - 79 + 80 Watchers @@ -47044,7 +47044,7 @@

swagger-converter (link)

Forks - 21 + 22 Created @@ -47052,7 +47052,7 @@

swagger-converter (link)

Last Updated - 2023-11-07T19:46:50Z + 2023-11-08T18:04:33Z Archived @@ -47504,7 +47504,7 @@

awesome-jsonschema (link)

Stars - 72 + 73 Watchers @@ -47520,7 +47520,7 @@

awesome-jsonschema (link)

Last Updated - 2023-10-27T22:44:36Z + 2023-11-08T22:28:34Z Archived @@ -47616,7 +47616,7 @@

openapi-schema-validator (link)

Forks - 27 + 26 Created @@ -47660,7 +47660,7 @@

refitter (link)

Stars - 73 + 74 Watchers @@ -47676,7 +47676,7 @@

refitter (link)

Last Updated - 2023-11-07T21:44:58Z + 2023-11-08T04:08:41Z Archived @@ -47876,7 +47876,7 @@

paypal-rest-api-specifications (link) Forks - 58 + 59 Created @@ -48760,7 +48760,7 @@

openapi_first (link)

Forks - 6 + 7 Created @@ -51248,7 +51248,7 @@

blocklyautomation (link)

Stars - 26 + 27 Watchers @@ -51264,7 +51264,7 @@

blocklyautomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -57912,7 +57912,7 @@

plugin-openapi (link)

Forks - 2 + 3 Created @@ -58848,7 +58848,7 @@

mds-openapi (link)

Forks - 0 + 1 Created @@ -69048,7 +69048,7 @@

routefinder (link)

Last Updated - 2023-09-19T06:31:36Z + 2023-11-08T14:05:34Z Archived @@ -75168,7 +75168,7 @@

web_template (link)

Stars - 1 + 2 Watchers @@ -75184,7 +75184,7 @@

web_template (link)

Last Updated - 2023-10-09T09:28:01Z + 2023-11-08T20:55:50Z Archived @@ -98992,7 +98992,7 @@

Tcases for OpenAPI (link)

Forks - 48 + 49 Created @@ -99192,7 +99192,7 @@

PHP-CRUD-API (link)

Stars - 3434 + 3435 Watchers @@ -99208,7 +99208,7 @@

PHP-CRUD-API (link)

Last Updated - 2023-11-08T01:30:20Z + 2023-11-08T14:55:22Z Archived @@ -100440,7 +100440,7 @@

Connexion (link)

Stars - 4336 + 4338 Watchers @@ -100448,7 +100448,7 @@

Connexion (link)

Forks - 733 + 734 Created @@ -100456,7 +100456,7 @@

Connexion (link)

Last Updated - 2023-11-07T11:08:04Z + 2023-11-09T02:23:39Z Archived @@ -100856,7 +100856,7 @@

LoopBack 4 (link)

Stars - 4667 + 4670 Watchers @@ -100872,7 +100872,7 @@

LoopBack 4 (link)

Last Updated - 2023-11-07T19:59:20Z + 2023-11-08T17:35:16Z Archived @@ -100976,7 +100976,7 @@

RESTler (link)

Last Updated - 2023-11-07T20:41:14Z + 2023-11-08T21:59:51Z Archived @@ -102572,7 +102572,7 @@

go-doudou (link)

Stars - 1219 + 1222 Watchers @@ -102588,7 +102588,7 @@

go-doudou (link)

Last Updated - 2023-11-07T02:22:14Z + 2023-11-09T02:19:53Z Archived diff --git a/docs/categories/code-generators.html b/docs/categories/code-generators.html index 13f21be6..b7d7d390 100644 --- a/docs/categories/code-generators.html +++ b/docs/categories/code-generators.html @@ -86,7 +86,7 @@

No Yes No - 4336 + 4353 @@ -132,7 +132,7 @@

No Yes Yes - 18079 + 18086 @@ -155,7 +155,7 @@

Yes Yes No - 71 + 72 @@ -178,7 +178,7 @@

No Yes Yes - 916 + 918 @@ -266,7 +266,7 @@

No Yes Yes - 16086 + 16092 @@ -312,7 +312,7 @@

Yes Yes No - 26 + 27 @@ -335,7 +335,7 @@

No Yes Yes - 1778 + 1780 @@ -381,7 +381,7 @@

Yes Yes Yes - 206 + 215 @@ -404,7 +404,7 @@

No Yes Yes - 1946 + 1948 @@ -427,7 +427,7 @@

Yes Yes No - 24740 + 24743 @@ -490,7 +490,7 @@

No Yes No - 1139 + 1143 @@ -576,7 +576,7 @@

No Yes No - 79 + 80 @@ -2005,7 +2005,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4336 + 4353 Watchers @@ -2013,7 +2013,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 734 + 736 Created @@ -2021,7 +2021,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-11-08T02:03:19Z + 2023-11-08T21:41:29Z Archived @@ -2109,7 +2109,7 @@

OpenAPI Generator (link)

Stars - 18079 + 18086 Watchers @@ -2117,7 +2117,7 @@

OpenAPI Generator (link)

Forks - 5743 + 5745 Created @@ -2125,7 +2125,7 @@

OpenAPI Generator (link)

Last Updated - 2023-11-08T03:22:50Z + 2023-11-08T21:34:03Z Archived @@ -2161,7 +2161,7 @@

OpenAPI JSON Schema Generator (link) Stars - 71 + 72 Watchers @@ -2177,7 +2177,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2023-11-07T14:44:33Z + 2023-11-08T13:19:57Z Archived @@ -2213,7 +2213,7 @@

Kiota Api Client Generator (link)

Stars - 916 + 918 Watchers @@ -2229,7 +2229,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-11-07T13:42:37Z + 2023-11-08T21:57:34Z Archived @@ -2421,7 +2421,7 @@

Swagger-Codegen (link)

Stars - 16086 + 16092 Watchers @@ -2437,7 +2437,7 @@

Swagger-Codegen (link)

Last Updated - 2023-11-07T23:37:43Z + 2023-11-08T23:26:02Z Archived @@ -2525,7 +2525,7 @@

BlocklyAutomation (link)

Stars - 26 + 27 Watchers @@ -2541,7 +2541,7 @@

BlocklyAutomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -2577,7 +2577,7 @@

orval (link)

Stars - 1778 + 1780 Watchers @@ -2585,7 +2585,7 @@

orval (link)

Forks - 214 + 215 Created @@ -2593,7 +2593,7 @@

orval (link)

Last Updated - 2023-11-06T19:27:05Z + 2023-11-08T17:36:20Z Archived @@ -2681,7 +2681,7 @@

kubb (link)

Stars - 206 + 215 Watchers @@ -2697,7 +2697,7 @@

kubb (link)

Last Updated - 2023-11-07T02:05:06Z + 2023-11-09T01:11:05Z Archived @@ -2733,7 +2733,7 @@

Fern (link)

Stars - 1946 + 1948 Watchers @@ -2749,7 +2749,7 @@

Fern (link)

Last Updated - 2023-11-08T01:28:41Z + 2023-11-08T21:40:11Z Archived @@ -2785,11 +2785,11 @@

swagger-ui (link)

Stars - 24740 + 24743 Watchers - 652 + 653 Forks @@ -2801,7 +2801,7 @@

swagger-ui (link)

Last Updated - 2023-11-07T19:42:35Z + 2023-11-09T01:39:47Z Archived @@ -2941,11 +2941,11 @@

openapi-generator-cli (link)

Stars - 1139 + 1143 Watchers - 16 + 17 Forks @@ -2957,7 +2957,7 @@

openapi-generator-cli (link)

Last Updated - 2023-11-07T05:58:13Z + 2023-11-08T15:05:15Z Archived @@ -3149,7 +3149,7 @@

swagger-converter (link)

Stars - 79 + 80 Watchers @@ -3157,7 +3157,7 @@

swagger-converter (link)

Forks - 21 + 22 Created @@ -3165,7 +3165,7 @@

swagger-converter (link)

Last Updated - 2023-11-07T19:46:50Z + 2023-11-08T18:04:33Z Archived @@ -3209,7 +3209,7 @@

paypal-rest-api-specifications (link) Forks - 58 + 59 Created diff --git a/docs/categories/converters.html b/docs/categories/converters.html index 85118a92..6fbcef0f 100644 --- a/docs/categories/converters.html +++ b/docs/categories/converters.html @@ -262,7 +262,7 @@

No Yes No - 1352 + 1353 @@ -285,7 +285,7 @@

No No Yes - 8962 + 8965 @@ -463,7 +463,7 @@

Yes Yes No - 68 + 69 @@ -532,7 +532,7 @@

Yes Yes Yes - 3758 + 3768 @@ -597,7 +597,7 @@

No Yes No - 360 + 361 @@ -681,7 +681,7 @@

No Yes No - 102 + 103 @@ -702,7 +702,7 @@

No Yes No - 72 + 73 @@ -1550,7 +1550,7 @@

Step CI (link)

Stars - 1352 + 1353 Watchers @@ -1558,7 +1558,7 @@

Step CI (link)

Forks - 52 + 53 Created @@ -1566,7 +1566,7 @@

Step CI (link)

Last Updated - 2023-11-07T23:08:26Z + 2023-11-08T11:03:06Z Archived @@ -1602,7 +1602,7 @@

go-swagger (link)

Stars - 8962 + 8965 Watchers @@ -1610,7 +1610,7 @@

go-swagger (link)

Forks - 1264 + 1265 Created @@ -1618,7 +1618,7 @@

go-swagger (link)

Last Updated - 2023-11-08T02:01:01Z + 2023-11-08T23:04:31Z Archived @@ -1922,7 +1922,7 @@

JSON Schema to OpenAPI Schema (link) Forks - 14 + 15 Created @@ -1974,7 +1974,7 @@

openapi-to-postman (link)

Forks - 202 + 201 Created @@ -2018,7 +2018,7 @@

openapi-format (link)

Stars - 68 + 69 Watchers @@ -2034,7 +2034,7 @@

openapi-format (link)

Last Updated - 2023-10-25T12:19:16Z + 2023-11-08T08:35:48Z Archived @@ -2174,7 +2174,7 @@

OpenAPI TypeScript (link)

Stars - 3758 + 3768 Watchers @@ -2182,7 +2182,7 @@

OpenAPI TypeScript (link)

Forks - 327 + 328 Created @@ -2190,7 +2190,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-11-08T02:51:04Z + 2023-11-09T03:05:11Z Archived @@ -2330,7 +2330,7 @@

typeconv (link)

Stars - 360 + 361 Watchers @@ -2346,7 +2346,7 @@

typeconv (link)

Last Updated - 2023-11-04T18:03:57Z + 2023-11-08T22:56:24Z Archived @@ -2390,7 +2390,7 @@

gnostic (link)

Forks - 224 + 225 Created @@ -2442,7 +2442,7 @@

oas-kit (link)

Forks - 128 + 129 Created @@ -2494,7 +2494,7 @@

openapi-codegen (link)

Forks - 46 + 45 Created @@ -2538,7 +2538,7 @@

openapi (link)

Stars - 102 + 103 Watchers @@ -2546,7 +2546,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -2554,7 +2554,7 @@

openapi (link)

Last Updated - 2023-10-26T11:42:46Z + 2023-11-08T16:30:23Z Archived @@ -2590,7 +2590,7 @@

awesome-jsonschema (link)

Stars - 72 + 73 Watchers @@ -2606,7 +2606,7 @@

awesome-jsonschema (link)

Last Updated - 2023-10-27T22:44:36Z + 2023-11-08T22:28:34Z Archived diff --git a/docs/categories/data-validators.html b/docs/categories/data-validators.html index 7e30cff1..f8ca6533 100644 --- a/docs/categories/data-validators.html +++ b/docs/categories/data-validators.html @@ -130,7 +130,7 @@

No Yes No - 1352 + 1353 @@ -241,7 +241,7 @@

No Yes Yes - 2138 + 2139 @@ -440,7 +440,7 @@

Yes Yes Yes - 308 + 309 @@ -486,7 +486,7 @@

Yes Yes Yes - 65 + 66 @@ -553,7 +553,7 @@

Yes Yes Yes - 24 + 25 @@ -1914,7 +1914,7 @@

Step CI (link)

Stars - 1352 + 1353 Watchers @@ -1922,7 +1922,7 @@

Step CI (link)

Forks - 52 + 53 Created @@ -1930,7 +1930,7 @@

Step CI (link)

Last Updated - 2023-11-07T23:08:26Z + 2023-11-08T11:03:06Z Archived @@ -2174,7 +2174,7 @@

kin-openapi (link)

Stars - 2138 + 2139 Watchers @@ -2190,7 +2190,7 @@

kin-openapi (link)

Last Updated - 2023-11-07T12:45:48Z + 2023-11-09T01:38:06Z Archived @@ -2642,7 +2642,7 @@

vacuum (link)

Stars - 308 + 309 Watchers @@ -2658,7 +2658,7 @@

vacuum (link)

Last Updated - 2023-11-07T12:53:06Z + 2023-11-08T13:00:09Z Archived @@ -2746,7 +2746,7 @@

openapi-changes (link)

Stars - 65 + 66 Watchers @@ -2762,7 +2762,7 @@

openapi-changes (link)

Last Updated - 2023-11-07T13:01:41Z + 2023-11-08T12:59:34Z Archived @@ -2902,7 +2902,7 @@

wiretap (link)

Stars - 24 + 25 Watchers @@ -2918,7 +2918,7 @@

wiretap (link)

Last Updated - 2023-11-07T12:52:57Z + 2023-11-08T12:59:24Z Archived @@ -2962,7 +2962,7 @@

openapi-core (link)

Forks - 119 + 118 Created @@ -3274,7 +3274,7 @@

openapi_first (link)

Forks - 6 + 7 Created diff --git a/docs/categories/description-validators.html b/docs/categories/description-validators.html index dd4dbae9..1ec6cabf 100644 --- a/docs/categories/description-validators.html +++ b/docs/categories/description-validators.html @@ -369,7 +369,7 @@

Yes Yes Yes - 308 + 309 @@ -2176,7 +2176,7 @@

vacuum (link)

Stars - 308 + 309 Watchers @@ -2192,7 +2192,7 @@

vacuum (link)

Last Updated - 2023-11-07T12:53:06Z + 2023-11-08T13:00:09Z Archived @@ -2340,7 +2340,7 @@

studio (link)

Forks - 49 + 50 Created diff --git a/docs/categories/documentation.html b/docs/categories/documentation.html index a23d0f8f..891100be 100644 --- a/docs/categories/documentation.html +++ b/docs/categories/documentation.html @@ -86,7 +86,7 @@

Yes Yes Yes - 1119 + 1142 @@ -275,7 +275,7 @@

Yes Yes Yes - 21339 + 21343 @@ -582,7 +582,7 @@

Yes Yes Yes - 1255 + 1258 @@ -605,7 +605,7 @@

Yes Yes No - 26 + 27 @@ -714,7 +714,7 @@

Yes Yes Yes - 65 + 66 @@ -796,7 +796,7 @@

No Yes Yes - 1946 + 1948 @@ -903,7 +903,7 @@

No Yes No - 174 + 175 @@ -1999,11 +1999,11 @@

Scalar (link)

Stars - 1119 + 1142 Watchers - 7 + 8 Forks @@ -2015,7 +2015,7 @@

Scalar (link)

Last Updated - 2023-11-08T02:03:15Z + 2023-11-09T02:11:55Z Archived @@ -2467,7 +2467,7 @@

ReDoc (link)

Stars - 21339 + 21343 Watchers @@ -2475,7 +2475,7 @@

ReDoc (link)

Forks - 2249 + 2250 Created @@ -2483,7 +2483,7 @@

ReDoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived @@ -3195,7 +3195,7 @@

Elements (link)

Stars - 1255 + 1258 Watchers @@ -3203,7 +3203,7 @@

Elements (link)

Forks - 152 + 150 Created @@ -3211,7 +3211,7 @@

Elements (link)

Last Updated - 2023-11-07T21:26:21Z + 2023-11-08T16:05:51Z Archived @@ -3247,7 +3247,7 @@

BlocklyAutomation (link)

Stars - 26 + 27 Watchers @@ -3263,7 +3263,7 @@

BlocklyAutomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -3507,7 +3507,7 @@

openapi-changes (link)

Stars - 65 + 66 Watchers @@ -3523,7 +3523,7 @@

openapi-changes (link)

Last Updated - 2023-11-07T13:01:41Z + 2023-11-08T12:59:34Z Archived @@ -3715,7 +3715,7 @@

Fern (link)

Stars - 1946 + 1948 Watchers @@ -3731,7 +3731,7 @@

Fern (link)

Last Updated - 2023-11-08T01:28:41Z + 2023-11-08T21:40:11Z Archived @@ -3975,7 +3975,7 @@

swurg (link)

Stars - 174 + 175 Watchers @@ -3991,7 +3991,7 @@

swurg (link)

Last Updated - 2023-10-20T09:05:13Z + 2023-11-08T13:54:10Z Archived diff --git a/docs/categories/dsl.html b/docs/categories/dsl.html index 4e9a1b2a..37240abe 100644 --- a/docs/categories/dsl.html +++ b/docs/categories/dsl.html @@ -187,7 +187,7 @@

No Yes No - 1786 + 1787 @@ -405,7 +405,7 @@

Spot (link)

Last Updated - 2023-10-26T18:33:25Z + 2023-11-09T00:29:35Z Archived @@ -545,7 +545,7 @@

rswag (link)

Stars - 1786 + 1787 Watchers @@ -553,7 +553,7 @@

rswag (link)

Forks - 397 + 396 Created @@ -561,7 +561,7 @@

rswag (link)

Last Updated - 2023-11-07T18:58:19Z + 2023-11-08T07:54:11Z Archived diff --git a/docs/categories/gateway.html b/docs/categories/gateway.html index b9f45c83..3e1fcb0b 100644 --- a/docs/categories/gateway.html +++ b/docs/categories/gateway.html @@ -105,7 +105,7 @@

No Yes No - 1592 + 1596 @@ -189,7 +189,7 @@

Yes Yes Yes - 24 + 25 @@ -318,7 +318,7 @@

Fusio (link)

Stars - 1592 + 1596 Watchers @@ -334,7 +334,7 @@

Fusio (link)

Last Updated - 2023-11-07T09:53:50Z + 2023-11-09T02:14:32Z Archived @@ -526,7 +526,7 @@

wiretap (link)

Stars - 24 + 25 Watchers @@ -542,7 +542,7 @@

wiretap (link)

Last Updated - 2023-11-07T12:52:57Z + 2023-11-08T12:59:24Z Archived diff --git a/docs/categories/gui-editors.html b/docs/categories/gui-editors.html index 63cc40b2..145e11d3 100644 --- a/docs/categories/gui-editors.html +++ b/docs/categories/gui-editors.html @@ -642,7 +642,7 @@

Apicurio Studio (link)

Forks - 462 + 463 Created diff --git a/docs/categories/learning.html b/docs/categories/learning.html index d8df9036..3b252dea 100644 --- a/docs/categories/learning.html +++ b/docs/categories/learning.html @@ -86,7 +86,7 @@

Yes Yes No - 1212 + 1211 @@ -151,7 +151,7 @@

Yes Yes No - 12 + 13 @@ -318,7 +318,7 @@

optic diff (link)

Stars - 1212 + 1211 Watchers @@ -334,7 +334,7 @@

optic diff (link)

Last Updated - 2023-11-08T02:11:26Z + 2023-11-08T21:26:03Z Archived @@ -474,7 +474,7 @@

InducOapi (link)

Stars - 12 + 13 Watchers @@ -490,7 +490,7 @@

InducOapi (link)

Last Updated - 2023-09-15T14:25:18Z + 2023-11-08T20:14:57Z Archived diff --git a/docs/categories/low-level-tooling.html b/docs/categories/low-level-tooling.html index 190a3caf..f90c372a 100644 --- a/docs/categories/low-level-tooling.html +++ b/docs/categories/low-level-tooling.html @@ -151,7 +151,7 @@

No Yes No - 157 + 158 @@ -1654,7 +1654,7 @@

openapi-go (link)

Stars - 157 + 158 Watchers @@ -1670,7 +1670,7 @@

openapi-go (link)

Last Updated - 2023-10-29T15:54:28Z + 2023-11-09T01:44:47Z Archived diff --git a/docs/categories/mock-testing.html b/docs/categories/mock-testing.html index 11e06a76..61a800da 100644 --- a/docs/categories/mock-testing.html +++ b/docs/categories/mock-testing.html @@ -148,7 +148,7 @@

Microcks (link)

Forks - 176 + 177 Created diff --git a/docs/categories/mock.html b/docs/categories/mock.html index 1e53fa22..13d168f2 100644 --- a/docs/categories/mock.html +++ b/docs/categories/mock.html @@ -125,7 +125,7 @@

Yes Yes Yes - 3791 + 3795 @@ -345,7 +345,7 @@

No Yes Yes - 1778 + 1780 @@ -582,7 +582,7 @@

No Yes Yes - 4336 + 4338 @@ -828,7 +828,7 @@

Prism (link)

Stars - 3791 + 3795 Watchers @@ -836,7 +836,7 @@

Prism (link)

Forks - 315 + 316 Created @@ -844,7 +844,7 @@

Prism (link)

Last Updated - 2023-11-07T20:42:36Z + 2023-11-08T20:31:26Z Archived @@ -1348,7 +1348,7 @@

orval (link)

Stars - 1778 + 1780 Watchers @@ -1356,7 +1356,7 @@

orval (link)

Forks - 214 + 215 Created @@ -1364,7 +1364,7 @@

orval (link)

Last Updated - 2023-11-06T19:27:05Z + 2023-11-08T17:36:20Z Archived @@ -1920,7 +1920,7 @@

Connexion (link)

Stars - 4336 + 4338 Watchers @@ -1928,7 +1928,7 @@

Connexion (link)

Forks - 733 + 734 Created @@ -1936,7 +1936,7 @@

Connexion (link)

Last Updated - 2023-11-07T11:08:04Z + 2023-11-09T02:23:39Z Archived diff --git a/docs/categories/parsers.html b/docs/categories/parsers.html index 65071e2f..2202000e 100644 --- a/docs/categories/parsers.html +++ b/docs/categories/parsers.html @@ -86,7 +86,7 @@

No Yes No - 433 + 435 @@ -197,7 +197,7 @@

Yes Yes Yes - 21339 + 21343 @@ -310,7 +310,7 @@

No Yes No - 4336 + 4353 @@ -471,7 +471,7 @@

Yes Yes No - 12 + 13 @@ -718,7 +718,7 @@

No Yes Yes - 709 + 710 @@ -827,7 +827,7 @@

No Yes No - 394 + 395 @@ -850,7 +850,7 @@

No Yes Yes - 2138 + 2139 @@ -1049,7 +1049,7 @@

No No Yes - 8962 + 8965 @@ -1185,7 +1185,7 @@

No Yes No - 480 + 481 @@ -1388,7 +1388,7 @@

Yes Yes No - 68 + 69 @@ -1474,7 +1474,7 @@

No Yes No - 4 + 5 @@ -1658,7 +1658,7 @@

Yes Yes Yes - 3758 + 3768 @@ -1681,7 +1681,7 @@

Yes Yes Yes - 191 + 192 @@ -1773,7 +1773,7 @@

Yes Yes Yes - 65 + 66 @@ -1880,7 +1880,7 @@

No Yes No - 1786 + 1787 @@ -1903,7 +1903,7 @@

No Yes No - 360 + 361 @@ -1926,7 +1926,7 @@

Yes Yes No - 21339 + 21343 @@ -1947,7 +1947,7 @@

No Yes No - 1457 + 1461 @@ -1989,7 +1989,7 @@

No Yes No - 810 + 811 @@ -2031,7 +2031,7 @@

No Yes No - 681 + 683 @@ -2115,7 +2115,7 @@

No Yes No - 481 + 483 @@ -2157,7 +2157,7 @@

No Yes No - 418 + 419 @@ -2199,7 +2199,7 @@

No Yes No - 360 + 361 @@ -2453,7 +2453,7 @@

No Yes No - 174 + 175 @@ -2497,7 +2497,7 @@

No Yes No - 157 + 158 @@ -2688,7 +2688,7 @@

No Yes No - 103 + 104 @@ -2709,7 +2709,7 @@

No Yes No - 102 + 103 @@ -2877,7 +2877,7 @@

No Yes No - 79 + 80 @@ -2982,7 +2982,7 @@

No Yes No - 73 + 74 @@ -10225,7 +10225,7 @@

oasdiff (link)

Stars - 433 + 435 Watchers @@ -10241,7 +10241,7 @@

oasdiff (link)

Last Updated - 2023-11-08T00:16:05Z + 2023-11-08T08:10:58Z Archived @@ -10485,7 +10485,7 @@

ReDoc (link)

Stars - 21339 + 21343 Watchers @@ -10493,7 +10493,7 @@

ReDoc (link)

Forks - 2249 + 2250 Created @@ -10501,7 +10501,7 @@

ReDoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived @@ -10709,7 +10709,7 @@

Spot (link)

Last Updated - 2023-10-26T18:33:25Z + 2023-11-09T00:29:35Z Archived @@ -10745,7 +10745,7 @@

OpenAPI Server Code Generator (oapi-cod Stars - 4336 + 4353 Watchers @@ -10753,7 +10753,7 @@

OpenAPI Server Code Generator (oapi-cod Forks - 734 + 736 Created @@ -10761,7 +10761,7 @@

OpenAPI Server Code Generator (oapi-cod Last Updated - 2023-11-08T02:03:19Z + 2023-11-08T21:41:29Z Archived @@ -11109,7 +11109,7 @@

InducOapi (link)

Stars - 12 + 13 Watchers @@ -11125,7 +11125,7 @@

InducOapi (link)

Last Updated - 2023-09-15T14:25:18Z + 2023-11-08T20:14:57Z Archived @@ -11681,7 +11681,7 @@

swagger-parser (link)

Stars - 709 + 710 Watchers @@ -11697,7 +11697,7 @@

swagger-parser (link)

Last Updated - 2023-11-07T15:35:13Z + 2023-11-08T08:40:39Z Archived @@ -11941,7 +11941,7 @@

OpenAPI-TS (link)

Stars - 394 + 395 Watchers @@ -11957,7 +11957,7 @@

OpenAPI-TS (link)

Last Updated - 2023-11-03T09:21:56Z + 2023-11-08T20:02:20Z Archived @@ -11993,7 +11993,7 @@

kin-openapi (link)

Stars - 2138 + 2139 Watchers @@ -12009,7 +12009,7 @@

kin-openapi (link)

Last Updated - 2023-11-07T12:45:48Z + 2023-11-09T01:38:06Z Archived @@ -12461,7 +12461,7 @@

go-swagger (link)

Stars - 8962 + 8965 Watchers @@ -12469,7 +12469,7 @@

go-swagger (link)

Forks - 1264 + 1265 Created @@ -12477,7 +12477,7 @@

go-swagger (link)

Last Updated - 2023-11-08T02:01:01Z + 2023-11-08T23:04:31Z Archived @@ -12773,7 +12773,7 @@

openapi-fuzzer (link)

Stars - 480 + 481 Watchers @@ -12789,7 +12789,7 @@

openapi-fuzzer (link)

Last Updated - 2023-11-06T16:12:28Z + 2023-11-08T11:37:29Z Archived @@ -12885,7 +12885,7 @@

JSON Schema to OpenAPI Schema (link) Forks - 14 + 15 Created @@ -13197,7 +13197,7 @@

openapi-to-postman (link)

Forks - 202 + 201 Created @@ -13241,7 +13241,7 @@

openapi-format (link)

Stars - 68 + 69 Watchers @@ -13257,7 +13257,7 @@

openapi-format (link)

Last Updated - 2023-10-25T12:19:16Z + 2023-11-08T08:35:48Z Archived @@ -13449,11 +13449,11 @@

OAuth2 as OpenAPI Spec 3.0 components ( Stars - 4 + 5 Watchers - 1 + 2 Forks @@ -13465,7 +13465,7 @@

OAuth2 as OpenAPI Spec 3.0 components ( Last Updated - 2023-02-12T19:29:48Z + 2023-11-08T08:09:40Z Archived @@ -13865,7 +13865,7 @@

OpenAPI TypeScript (link)

Stars - 3758 + 3768 Watchers @@ -13873,7 +13873,7 @@

OpenAPI TypeScript (link)

Forks - 327 + 328 Created @@ -13881,7 +13881,7 @@

OpenAPI TypeScript (link)

Last Updated - 2023-11-08T02:51:04Z + 2023-11-09T03:05:11Z Archived @@ -13917,7 +13917,7 @@

libopenapi (link)

Stars - 191 + 192 Watchers @@ -13933,7 +13933,7 @@

libopenapi (link)

Last Updated - 2023-11-07T14:16:45Z + 2023-11-08T12:59:43Z Archived @@ -14125,7 +14125,7 @@

openapi-changes (link)

Stars - 65 + 66 Watchers @@ -14141,7 +14141,7 @@

openapi-changes (link)

Last Updated - 2023-11-07T13:01:41Z + 2023-11-08T12:59:34Z Archived @@ -14385,7 +14385,7 @@

rswag (link)

Stars - 1786 + 1787 Watchers @@ -14393,7 +14393,7 @@

rswag (link)

Forks - 397 + 396 Created @@ -14401,7 +14401,7 @@

rswag (link)

Last Updated - 2023-11-07T18:58:19Z + 2023-11-08T07:54:11Z Archived @@ -14437,7 +14437,7 @@

typeconv (link)

Stars - 360 + 361 Watchers @@ -14453,7 +14453,7 @@

typeconv (link)

Last Updated - 2023-11-04T18:03:57Z + 2023-11-08T22:56:24Z Archived @@ -14489,7 +14489,7 @@

Redoc (link)

Stars - 21339 + 21343 Watchers @@ -14497,7 +14497,7 @@

Redoc (link)

Forks - 2249 + 2250 Created @@ -14505,7 +14505,7 @@

Redoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived @@ -14541,7 +14541,7 @@

utoipa (link)

Stars - 1457 + 1461 Watchers @@ -14557,7 +14557,7 @@

utoipa (link)

Last Updated - 2023-11-07T22:17:22Z + 2023-11-08T19:11:44Z Archived @@ -14645,7 +14645,7 @@

ogen (link)

Stars - 810 + 811 Watchers @@ -14661,7 +14661,7 @@

ogen (link)

Last Updated - 2023-11-07T15:50:54Z + 2023-11-08T09:48:36Z Archived @@ -14749,7 +14749,7 @@

openapi-diff (link)

Stars - 681 + 683 Watchers @@ -14765,7 +14765,7 @@

openapi-diff (link)

Last Updated - 2023-11-08T00:06:37Z + 2023-11-08T13:51:32Z Archived @@ -14809,7 +14809,7 @@

oas-kit (link)

Forks - 128 + 129 Created @@ -14957,7 +14957,7 @@

zod-to-openapi (link)

Stars - 481 + 483 Watchers @@ -14973,7 +14973,7 @@

zod-to-openapi (link)

Last Updated - 2023-11-07T23:41:23Z + 2023-11-08T14:02:18Z Archived @@ -15061,7 +15061,7 @@

oazapfts (link)

Stars - 418 + 419 Watchers @@ -15077,7 +15077,7 @@

oazapfts (link)

Last Updated - 2023-11-04T14:07:31Z + 2023-11-08T12:34:39Z Archived @@ -15165,7 +15165,7 @@

typeconv (link)

Stars - 360 + 361 Watchers @@ -15181,7 +15181,7 @@

typeconv (link)

Last Updated - 2023-11-04T18:03:57Z + 2023-11-08T22:56:24Z Archived @@ -15381,7 +15381,7 @@

openapi-spec-validator (link)

Forks - 60 + 59 Created @@ -15433,7 +15433,7 @@

openapi-core (link)

Forks - 119 + 118 Created @@ -15789,7 +15789,7 @@

swurg (link)

Stars - 174 + 175 Watchers @@ -15805,7 +15805,7 @@

swurg (link)

Last Updated - 2023-10-20T09:05:13Z + 2023-11-08T13:54:10Z Archived @@ -15893,7 +15893,7 @@

openapi-go (link)

Stars - 157 + 158 Watchers @@ -15909,7 +15909,7 @@

openapi-go (link)

Last Updated - 2023-10-29T15:54:28Z + 2023-11-09T01:44:47Z Archived @@ -15953,7 +15953,7 @@

swagger-inflector (link)

Forks - 89 + 90 Created @@ -16361,11 +16361,11 @@

speakeasy (link)

Stars - 103 + 104 Watchers - 9 + 8 Forks @@ -16377,7 +16377,7 @@

speakeasy (link)

Last Updated - 2023-11-07T15:19:11Z + 2023-11-08T20:04:03Z Archived @@ -16413,7 +16413,7 @@

openapi (link)

Stars - 102 + 103 Watchers @@ -16421,7 +16421,7 @@

openapi (link)

Forks - 74 + 75 Created @@ -16429,7 +16429,7 @@

openapi (link)

Last Updated - 2023-10-26T11:42:46Z + 2023-11-08T16:30:23Z Archived @@ -16829,7 +16829,7 @@

swagger-converter (link)

Stars - 79 + 80 Watchers @@ -16837,7 +16837,7 @@

swagger-converter (link)

Forks - 21 + 22 Created @@ -16845,7 +16845,7 @@

swagger-converter (link)

Last Updated - 2023-11-07T19:46:50Z + 2023-11-08T18:04:33Z Archived @@ -17045,7 +17045,7 @@

openapi-schema-validator (link)

Forks - 27 + 26 Created @@ -17089,7 +17089,7 @@

refitter (link)

Stars - 73 + 74 Watchers @@ -17105,7 +17105,7 @@

refitter (link)

Last Updated - 2023-11-07T21:44:58Z + 2023-11-08T04:08:41Z Archived @@ -17565,7 +17565,7 @@

openapi_first (link)

Forks - 6 + 7 Created @@ -21517,7 +21517,7 @@

mds-openapi (link)

Forks - 0 + 1 Created diff --git a/docs/categories/sdk.html b/docs/categories/sdk.html index 5e2a02af..9fec3b7a 100644 --- a/docs/categories/sdk.html +++ b/docs/categories/sdk.html @@ -109,7 +109,7 @@

No Yes Yes - 18079 + 18086 @@ -132,7 +132,7 @@

Yes Yes No - 71 + 72 @@ -155,7 +155,7 @@

No Yes Yes - 916 + 918 @@ -308,7 +308,7 @@

No No Yes - 8962 + 8965 @@ -377,7 +377,7 @@

No Yes Yes - 6142 + 6147 @@ -421,7 +421,7 @@

No Yes Yes - 4359 + 4363 @@ -578,7 +578,7 @@

Yes Yes No - 26 + 27 @@ -735,7 +735,7 @@

No Yes Yes - 1946 + 1948 @@ -756,7 +756,7 @@

No Yes No - 3665 + 3667 @@ -777,7 +777,7 @@

No Yes No - 3413 + 3414 @@ -2753,7 +2753,7 @@

No Yes No - 1219 + 1222 @@ -2859,7 +2859,7 @@

OpenAPI Generator (link)

Stars - 18079 + 18086 Watchers @@ -2867,7 +2867,7 @@

OpenAPI Generator (link)

Forks - 5743 + 5745 Created @@ -2875,7 +2875,7 @@

OpenAPI Generator (link)

Last Updated - 2023-11-08T03:22:50Z + 2023-11-08T21:34:03Z Archived @@ -2911,7 +2911,7 @@

OpenAPI JSON Schema Generator (link) Stars - 71 + 72 Watchers @@ -2927,7 +2927,7 @@

OpenAPI JSON Schema Generator (link) Last Updated - 2023-11-07T14:44:33Z + 2023-11-08T13:19:57Z Archived @@ -2963,7 +2963,7 @@

Kiota Api Client Generator (link)

Stars - 916 + 918 Watchers @@ -2979,7 +2979,7 @@

Kiota Api Client Generator (link)

Last Updated - 2023-11-07T13:42:37Z + 2023-11-08T21:57:34Z Archived @@ -3127,7 +3127,7 @@

Microcks (link)

Forks - 176 + 177 Created @@ -3327,7 +3327,7 @@

go-swagger (link)

Stars - 8962 + 8965 Watchers @@ -3335,7 +3335,7 @@

go-swagger (link)

Forks - 1264 + 1265 Created @@ -3343,7 +3343,7 @@

go-swagger (link)

Last Updated - 2023-11-08T02:01:01Z + 2023-11-08T23:04:31Z Archived @@ -3483,7 +3483,7 @@

NSwag (link)

Stars - 6142 + 6147 Watchers @@ -3491,7 +3491,7 @@

NSwag (link)

Forks - 1169 + 1171 Created @@ -3499,7 +3499,7 @@

NSwag (link)

Last Updated - 2023-11-07T12:40:29Z + 2023-11-08T22:22:23Z Archived @@ -3587,11 +3587,11 @@

Azure AutoRest (link)

Stars - 4359 + 4363 Watchers - 816 + 817 Forks @@ -3603,7 +3603,7 @@

Azure AutoRest (link)

Last Updated - 2023-11-07T22:36:19Z + 2023-11-08T17:19:22Z Archived @@ -3855,7 +3855,7 @@

OWASP ZAP (link)

Forks - 2149 + 2150 Created @@ -3863,7 +3863,7 @@

OWASP ZAP (link)

Last Updated - 2023-11-07T14:11:27Z + 2023-11-08T18:30:19Z Archived @@ -3951,7 +3951,7 @@

BlocklyAutomation (link)

Stars - 26 + 27 Watchers @@ -3967,7 +3967,7 @@

BlocklyAutomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -4315,7 +4315,7 @@

Fern (link)

Stars - 1946 + 1948 Watchers @@ -4331,7 +4331,7 @@

Fern (link)

Last Updated - 2023-11-08T01:28:41Z + 2023-11-08T21:40:11Z Archived @@ -4367,7 +4367,7 @@

knife4j (link)

Stars - 3665 + 3667 Watchers @@ -4383,7 +4383,7 @@

knife4j (link)

Last Updated - 2023-11-06T10:18:13Z + 2023-11-09T01:02:20Z Archived @@ -4419,7 +4419,7 @@

openapi-directory (link)

Stars - 3413 + 3414 Watchers @@ -4435,7 +4435,7 @@

openapi-directory (link)

Last Updated - 2023-11-07T12:39:09Z + 2023-11-08T06:57:53Z Archived @@ -4791,7 +4791,7 @@

apiclientcodegen (link)

Forks - 15 + 16 Created @@ -9307,7 +9307,7 @@

go-doudou (link)

Stars - 1219 + 1222 Watchers @@ -9323,7 +9323,7 @@

go-doudou (link)

Last Updated - 2023-11-07T02:22:14Z + 2023-11-09T02:19:53Z Archived diff --git a/docs/categories/security.html b/docs/categories/security.html index 522bfaca..5afc9e15 100644 --- a/docs/categories/security.html +++ b/docs/categories/security.html @@ -147,7 +147,7 @@

No Yes No - 480 + 481 @@ -508,7 +508,7 @@

openapi-fuzzer (link)

Stars - 480 + 481 Watchers @@ -524,7 +524,7 @@

openapi-fuzzer (link)

Last Updated - 2023-11-06T16:12:28Z + 2023-11-08T11:37:29Z Archived @@ -672,7 +672,7 @@

OWASP ZAP (link)

Forks - 2149 + 2150 Created @@ -680,7 +680,7 @@

OWASP ZAP (link)

Last Updated - 2023-11-07T14:11:27Z + 2023-11-08T18:30:19Z Archived @@ -888,7 +888,7 @@

RESTler (link)

Last Updated - 2023-11-07T20:41:14Z + 2023-11-08T21:59:51Z Archived diff --git a/docs/categories/server-implementations.html b/docs/categories/server-implementations.html index 4be93e73..55230444 100644 --- a/docs/categories/server-implementations.html +++ b/docs/categories/server-implementations.html @@ -86,7 +86,7 @@

Yes Yes No - 1212 + 1211 @@ -224,7 +224,7 @@

Yes Yes Yes - 8412 + 8413 @@ -270,7 +270,7 @@

Yes Yes Yes - 3791 + 3795 @@ -339,7 +339,7 @@

No Yes No - 1592 + 1596 @@ -452,7 +452,7 @@

No Yes No - 26580 + 26586 @@ -544,7 +544,7 @@

No Yes No - 64316 + 64357 @@ -565,7 +565,7 @@

No Yes No - 13353 + 13375 @@ -574,7 +574,7 @@

openapi-devtools - Effortlessly discover API behaviour with a Chrome extension that automatically generates OpenAPI specifications in real time for any app or website + Chrome extension that generates API specs for any app or website No @@ -586,7 +586,7 @@

No Yes No - 3372 + 3383 @@ -630,7 +630,7 @@

No Yes No - 2391 + 2392 @@ -653,7 +653,7 @@

No Yes No - 1891 + 1892 @@ -716,7 +716,7 @@

No Yes No - 1399 + 1400 @@ -781,7 +781,7 @@

No Yes No - 807 + 810 @@ -865,7 +865,7 @@

No Yes No - 385 + 386 @@ -949,7 +949,7 @@

No Yes No - 277 + 276 @@ -1182,7 +1182,7 @@

No Yes No - 147 + 154 @@ -1203,7 +1203,7 @@

No Yes No - 115 + 116 @@ -5153,7 +5153,7 @@

No Yes No - 1 + 2 @@ -9210,7 +9210,7 @@

No No No - 3434 + 3435 @@ -9401,7 +9401,7 @@

No Yes Yes - 4336 + 4338 @@ -9736,7 +9736,7 @@

optic diff (link)

Stars - 1212 + 1211 Watchers @@ -9752,7 +9752,7 @@

optic diff (link)

Last Updated - 2023-11-08T02:11:26Z + 2023-11-08T21:26:03Z Archived @@ -10048,7 +10048,7 @@

Swagger Editor (link)

Stars - 8412 + 8413 Watchers @@ -10056,7 +10056,7 @@

Swagger Editor (link)

Forks - 2210 + 2211 Created @@ -10064,7 +10064,7 @@

Swagger Editor (link)

Last Updated - 2023-11-07T21:26:27Z + 2023-11-08T19:20:58Z Archived @@ -10108,7 +10108,7 @@

Apicurio Studio (link)

Forks - 462 + 463 Created @@ -10152,7 +10152,7 @@

Prism (link)

Stars - 3791 + 3795 Watchers @@ -10160,7 +10160,7 @@

Prism (link)

Forks - 315 + 316 Created @@ -10168,7 +10168,7 @@

Prism (link)

Last Updated - 2023-11-07T20:42:36Z + 2023-11-08T20:31:26Z Archived @@ -10308,7 +10308,7 @@

Fusio (link)

Stars - 1592 + 1596 Watchers @@ -10324,7 +10324,7 @@

Fusio (link)

Last Updated - 2023-11-07T09:53:50Z + 2023-11-09T02:14:32Z Archived @@ -10568,7 +10568,7 @@

Django REST Framework (link)

Stars - 26580 + 26586 Watchers @@ -10584,7 +10584,7 @@

Django REST Framework (link)

Last Updated - 2023-11-08T01:06:32Z + 2023-11-09T03:12:58Z Archived @@ -10776,15 +10776,15 @@

FastAPI (link)

Stars - 64316 + 64357 Watchers - 646 + 645 Forks - 5453 + 5455 Created @@ -10792,7 +10792,7 @@

FastAPI (link)

Last Updated - 2023-11-08T03:20:03Z + 2023-11-09T03:26:44Z Archived @@ -10828,7 +10828,7 @@

full-stack-fastapi-postgresql (link) Stars - 13353 + 13375 Watchers @@ -10836,7 +10836,7 @@

full-stack-fastapi-postgresql (link) Forks - 2442 + 2449 Created @@ -10844,7 +10844,7 @@

full-stack-fastapi-postgresql (link) Last Updated - 2023-11-08T02:50:36Z + 2023-11-09T03:11:00Z Archived @@ -10880,7 +10880,7 @@

openapi-devtools (link)

Stars - 3372 + 3383 Watchers @@ -10896,7 +10896,7 @@

openapi-devtools (link)

Last Updated - 2023-11-08T01:03:10Z + 2023-11-09T01:24:42Z Archived @@ -10984,7 +10984,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Stars - 2391 + 2392 Watchers @@ -10992,7 +10992,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Forks - 312 + 311 Created @@ -11000,7 +11000,7 @@

uvicorn-gunicorn-fastapi-docker (link)< Last Updated - 2023-11-06T23:14:07Z + 2023-11-08T14:50:47Z Archived @@ -11036,7 +11036,7 @@

Schemathesis (link)

Stars - 1891 + 1892 Watchers @@ -11052,7 +11052,7 @@

Schemathesis (link)

Last Updated - 2023-11-07T16:15:41Z + 2023-11-08T09:30:04Z Archived @@ -11192,7 +11192,7 @@

msgspec (link)

Stars - 1399 + 1400 Watchers @@ -11208,7 +11208,7 @@

msgspec (link)

Last Updated - 2023-11-07T23:28:26Z + 2023-11-08T13:51:37Z Archived @@ -11348,7 +11348,7 @@

typespec (link)

Stars - 807 + 810 Watchers @@ -11356,7 +11356,7 @@

typespec (link)

Forks - 101 + 102 Created @@ -11364,7 +11364,7 @@

typespec (link)

Last Updated - 2023-11-01T11:43:19Z + 2023-11-08T17:48:50Z Archived @@ -11408,7 +11408,7 @@

studio (link)

Forks - 49 + 50 Created @@ -11556,7 +11556,7 @@

fastapi-gino-arq-uvicorn (link)

Stars - 385 + 386 Watchers @@ -11572,7 +11572,7 @@

fastapi-gino-arq-uvicorn (link)

Last Updated - 2023-10-19T20:40:22Z + 2023-11-09T02:53:44Z Archived @@ -11764,7 +11764,7 @@

kui (link)

Stars - 277 + 276 Watchers @@ -11780,7 +11780,7 @@

kui (link)

Last Updated - 2023-11-06T03:19:37Z + 2023-11-08T20:01:51Z Archived @@ -11936,7 +11936,7 @@

apicat (link)

Last Updated - 2023-11-04T16:52:14Z + 2023-11-08T14:56:53Z Archived @@ -12032,7 +12032,7 @@

fastapi-clean-example (link)

Forks - 42 + 41 Created @@ -12336,7 +12336,7 @@

esmerald (link)

Stars - 147 + 154 Watchers @@ -12352,7 +12352,7 @@

esmerald (link)

Last Updated - 2023-11-07T20:51:51Z + 2023-11-09T02:55:22Z Archived @@ -12388,7 +12388,7 @@

flask-openapi3 (link)

Stars - 115 + 116 Watchers @@ -12404,7 +12404,7 @@

flask-openapi3 (link)

Last Updated - 2023-11-07T15:52:41Z + 2023-11-08T22:32:22Z Archived @@ -19892,7 +19892,7 @@

routefinder (link)

Last Updated - 2023-09-19T06:31:36Z + 2023-11-08T14:05:34Z Archived @@ -22164,7 +22164,7 @@

web_template (link)

Stars - 1 + 2 Watchers @@ -22180,7 +22180,7 @@

web_template (link)

Last Updated - 2023-10-09T09:28:01Z + 2023-11-08T20:55:50Z Archived @@ -32200,7 +32200,7 @@

PHP-CRUD-API (link)

Stars - 3434 + 3435 Watchers @@ -32216,7 +32216,7 @@

PHP-CRUD-API (link)

Last Updated - 2023-11-08T01:30:20Z + 2023-11-08T14:55:22Z Archived @@ -32668,7 +32668,7 @@

Connexion (link)

Stars - 4336 + 4338 Watchers @@ -32676,7 +32676,7 @@

Connexion (link)

Forks - 733 + 734 Created @@ -32684,7 +32684,7 @@

Connexion (link)

Last Updated - 2023-11-07T11:08:04Z + 2023-11-09T02:23:39Z Archived diff --git a/docs/categories/server.html b/docs/categories/server.html index e5531f24..90d24d71 100644 --- a/docs/categories/server.html +++ b/docs/categories/server.html @@ -247,7 +247,7 @@

No Yes No - 1592 + 1596 @@ -2584,7 +2584,7 @@

No Yes No - 4667 + 4670 @@ -3069,7 +3069,7 @@

Fusio (link)

Stars - 1592 + 1596 Watchers @@ -3085,7 +3085,7 @@

Fusio (link)

Last Updated - 2023-11-07T09:53:50Z + 2023-11-09T02:14:32Z Archived @@ -3441,7 +3441,7 @@

SpringFox (link)

Forks - 1542 + 1543 Created @@ -8789,7 +8789,7 @@

LoopBack 4 (link)

Stars - 4667 + 4670 Watchers @@ -8805,7 +8805,7 @@

LoopBack 4 (link)

Last Updated - 2023-11-07T19:59:20Z + 2023-11-08T17:35:16Z Archived diff --git a/docs/categories/testing-tools.html b/docs/categories/testing-tools.html index 5852bc45..814e119b 100644 --- a/docs/categories/testing-tools.html +++ b/docs/categories/testing-tools.html @@ -86,7 +86,7 @@

Yes Yes Yes - 24 + 25 @@ -109,7 +109,7 @@

No Yes No - 1891 + 1892 @@ -186,7 +186,7 @@

wiretap (link)

Stars - 24 + 25 Watchers @@ -202,7 +202,7 @@

wiretap (link)

Last Updated - 2023-11-07T12:52:57Z + 2023-11-08T12:59:24Z Archived @@ -238,7 +238,7 @@

Schemathesis (link)

Stars - 1891 + 1892 Watchers @@ -254,7 +254,7 @@

Schemathesis (link)

Last Updated - 2023-11-07T16:15:41Z + 2023-11-08T09:30:04Z Archived @@ -298,7 +298,7 @@

Tcases for OpenAPI (link)

Forks - 48 + 49 Created diff --git a/docs/categories/testing.html b/docs/categories/testing.html index e86d815f..0f33b01b 100644 --- a/docs/categories/testing.html +++ b/docs/categories/testing.html @@ -105,7 +105,7 @@

No Yes Yes - 4069 + 4070 @@ -172,7 +172,7 @@

No Yes No - 1352 + 1353 @@ -401,7 +401,7 @@

No Yes No - 248 + 249 @@ -490,7 +490,7 @@

Yes Yes No - 26 + 27 @@ -645,7 +645,7 @@

Yes Yes Yes - 65 + 66 @@ -691,7 +691,7 @@

Yes Yes Yes - 206 + 215 @@ -714,7 +714,7 @@

Yes Yes Yes - 24 + 25 @@ -735,7 +735,7 @@

No Yes No - 5473 + 5478 @@ -1008,7 +1008,7 @@

No Yes No - 26 + 27 @@ -2697,7 +2697,7 @@

Dredd (link)

Stars - 4069 + 4070 Watchers @@ -2713,7 +2713,7 @@

Dredd (link)

Last Updated - 2023-11-07T12:36:33Z + 2023-11-08T12:39:07Z Archived @@ -2853,7 +2853,7 @@

Step CI (link)

Stars - 1352 + 1353 Watchers @@ -2861,7 +2861,7 @@

Step CI (link)

Forks - 52 + 53 Created @@ -2869,7 +2869,7 @@

Step CI (link)

Last Updated - 2023-11-07T23:08:26Z + 2023-11-08T11:03:06Z Archived @@ -3225,7 +3225,7 @@

Tcases for OpenAPI (link)

Forks - 48 + 49 Created @@ -3425,7 +3425,7 @@

Spectator (link)

Stars - 248 + 249 Watchers @@ -3441,7 +3441,7 @@

Spectator (link)

Last Updated - 2023-11-06T14:39:34Z + 2023-11-08T11:02:20Z Archived @@ -3633,7 +3633,7 @@

BlocklyAutomation (link)

Stars - 26 + 27 Watchers @@ -3649,7 +3649,7 @@

BlocklyAutomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -3997,7 +3997,7 @@

openapi-changes (link)

Stars - 65 + 66 Watchers @@ -4013,7 +4013,7 @@

openapi-changes (link)

Last Updated - 2023-11-07T13:01:41Z + 2023-11-08T12:59:34Z Archived @@ -4101,7 +4101,7 @@

kubb (link)

Stars - 206 + 215 Watchers @@ -4117,7 +4117,7 @@

kubb (link)

Last Updated - 2023-11-07T02:05:06Z + 2023-11-09T01:11:05Z Archived @@ -4153,7 +4153,7 @@

wiretap (link)

Stars - 24 + 25 Watchers @@ -4169,7 +4169,7 @@

wiretap (link)

Last Updated - 2023-11-07T12:52:57Z + 2023-11-08T12:59:24Z Archived @@ -4205,7 +4205,7 @@

mockoon (link)

Stars - 5473 + 5478 Watchers @@ -4221,7 +4221,7 @@

mockoon (link)

Last Updated - 2023-11-08T02:07:18Z + 2023-11-09T01:05:56Z Archived @@ -4421,7 +4421,7 @@

tcases (link)

Forks - 48 + 49 Created @@ -4881,7 +4881,7 @@

blocklyautomation (link)

Stars - 26 + 27 Watchers @@ -4897,7 +4897,7 @@

blocklyautomation (link)

Last Updated - 2023-10-05T15:55:13Z + 2023-11-08T19:38:11Z Archived @@ -8321,7 +8321,7 @@

Tcases for OpenAPI (link)

Forks - 48 + 49 Created @@ -8693,7 +8693,7 @@

RESTler (link)

Last Updated - 2023-11-07T20:41:14Z + 2023-11-08T21:59:51Z Archived diff --git a/docs/categories/text-editors.html b/docs/categories/text-editors.html index b335ca7b..b7b23f9b 100644 --- a/docs/categories/text-editors.html +++ b/docs/categories/text-editors.html @@ -170,7 +170,7 @@

Yes Yes Yes - 8412 + 8413 @@ -580,7 +580,7 @@

Swagger Editor (link)

Stars - 8412 + 8413 Watchers @@ -588,7 +588,7 @@

Swagger Editor (link)

Forks - 2210 + 2211 Created @@ -596,7 +596,7 @@

Swagger Editor (link)

Last Updated - 2023-11-07T21:26:27Z + 2023-11-08T19:20:58Z Archived diff --git a/docs/categories/unclassified.html b/docs/categories/unclassified.html index 89a1b66c..c61028bb 100644 --- a/docs/categories/unclassified.html +++ b/docs/categories/unclassified.html @@ -1710,7 +1710,7 @@

plugin-openapi (link)

Forks - 2 + 3 Created diff --git a/docs/categories/user-interfaces.html b/docs/categories/user-interfaces.html index a29322cd..f0037445 100644 --- a/docs/categories/user-interfaces.html +++ b/docs/categories/user-interfaces.html @@ -86,7 +86,7 @@

Yes Yes No - 24740 + 24743 @@ -109,7 +109,7 @@

Yes Yes No - 21339 + 21343 @@ -291,11 +291,11 @@

swagger-ui (link)

Stars - 24740 + 24743 Watchers - 652 + 653 Forks @@ -307,7 +307,7 @@

swagger-ui (link)

Last Updated - 2023-11-07T19:42:35Z + 2023-11-09T01:39:47Z Archived @@ -343,7 +343,7 @@

Redoc (link)

Stars - 21339 + 21343 Watchers @@ -351,7 +351,7 @@

Redoc (link)

Forks - 2249 + 2250 Created @@ -359,7 +359,7 @@

Redoc (link)

Last Updated - 2023-11-07T22:31:48Z + 2023-11-09T02:52:09Z Archived diff --git a/src/_data/tools.yaml b/src/_data/tools.yaml index 64a99ef9..23a33a99 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-11-08T00:16:05Z' + updated: '2023-11-08T08:10:58Z' language: Go archived: false - stars: 433 + stars: 435 watchers: 10 forks: 39 owner: Tufin logo: https://avatars.githubusercontent.com/u/5352131?v=4 license: Apache-2.0 - repoEtag: '"7de67469e2abf5afd4f25af30ebf08349ebe447516933f543330ed5a2c0f8330"' - repoLastModified: Wed, 08 Nov 2023 00:16:05 GMT + repoEtag: '"0d25ee50266db1633dd246deac3bf4a9b797d66eba9082c9a355d5a6cb41fd81"' + repoLastModified: Wed, 08 Nov 2023 08:10:58 GMT foundInMaster: true name: oasdiff language: Go @@ -46,23 +46,23 @@ id: 9cad3caafc5e01c5c1cd167696f30f10 repositoryMetadata: base64Readme: >- - IyBTY2FsYXIgQVBJIFJlZmVyZW5jZQoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9hLW51bWJlcmVkLWNvbXBhbnkvYXBpLXJlZmVyZW5jZS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2EtbnVtYmVyZWQtY29tcGFueS9hcGktcmVmZXJlbmNlL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkKWyFbUmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL2EtbnVtYmVyZWQtY29tcGFueS9hcGktcmVmZXJlbmNlL2FjdGlvbnMvd29ya2Zsb3dzL3JlbGVhc2UueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hLW51bWJlcmVkLWNvbXBhbnkvYXBpLXJlZmVyZW5jZS9hY3Rpb25zL3dvcmtmbG93cy9yZWxlYXNlLnltbCkKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kaXNjb3JkLzExMzUzMzAyMDc5NjA2Nzg0MTA/c3R5bGU9ZmxhdCZjb2xvcj01ODY1RjIpXShodHRwczovL2Rpc2NvcmQuZ2cvOEhlWmNSR1BGUykKCkdlbmVyYXRlIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9ucyBmcm9tIFN3YWdnZXIgZmlsZXMuIFtUcnkgb3VyIERlbW9dKGh0dHBzOi8vZG9jcy5zY2FsYXIuY29tL3N3YWdnZXItZWRpdG9yKQoKWyFbU2NyZWVuc2hvdCBvZiBhbiBBUEkgUmVmZXJlbmNlXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci9hc3NldHMvNjIwMTQwNy9kOGJlYjVlMS1iZjY0LTQ1ODktOGNiMC05OTJiYTc5MjE1YTgpXShodHRwczovL2RvY3Muc2NhbGFyLmNvbS9zd2FnZ2VyLWVkaXRvcikKCiMjIEZlYXR1cmVzCgotIFVzZXMgU3dhZ2dlci9PcGVuQVBJIHNwZWMgZmlsZXMKLSBSZXF1ZXN0IGV4YW1wbGVzIGZvciBhIHRvbiBvZiBsYW5ndWFnZXMgKyBmcmFtZXdvcmtzCi0gSGFzIGFuIGludGVncmF0ZWQgQVBJIGNsaWVudAotIEVkaXQgeW91ciBTd2FnZ2VyIGZpbGVzIHdpdGggYSBsaXZlIHByZXZpZXcKLSBEb2VzbuKAmXQgbG9vayBsaWtlIGl04oCZcyAyMDExCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gW0Zyb20gYSBDRE5dKCNmcm9tLWEtY2RuKQogIC0gW1dpdGggVnVlLmpzXSgjd2l0aC12dWVqcykKICAtIFtXaXRoIFJlYWN0XSgjd2l0aC1yZWFjdCkKICAtIFtXaXRoIEZhc3RpZnldKCN3aXRoLWZhc3RpZnkpCi0gW1VzaW5nIG91ciBhbWF6aW5nIHNlcnZpY2VdKCN1c2luZy1vdXItYW1hemluZy1zZXJ2aWNlKQotIFtUaGVtZXNdKCN0aGVtZXMpCi0gW0FkdmFuY2VkOiBTdHlsaW5nXSgjYWR2YW5jZWQtc3R5bGluZykKLSBbQ29tbXVuaXR5XSgjY29tbXVuaXR5KQotIFtPdGhlciBwYWNrYWdlc10oI290aGVyLXBhY2thZ2VzKQotIFtDb250cmlidXRpbmddKCNjb250cmlidXRpbmcpCi0gW0xpY2Vuc2VdKCNsaWNlbnNlKQoKIyMgR2V0dGluZyBTdGFydGVkCgojIyMgRnJvbSBhIENETgoKYGBgaHRtbAo8IURPQ1RZUEUgaHRtbD4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+QVBJIFJlZmVyZW5jZTwvdGl0bGU+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KICAgIDxtZXRhCiAgICAgIG5hbWU9InZpZXdwb3J0IgogICAgICBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIgLz4KICAgIDxzdHlsZT4KICAgICAgYm9keSB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDwhLS0gQWRkIHlvdXIgb3duIE9wZW5BUEkvU3dhZ2dlciBzcGVjIGZpbGUgVVJMIGhlcmU6IC0tPgogICAgPHNjcmlwdAogICAgICBpZD0iYXBpLXJlZmVyZW5jZSIKICAgICAgZGF0YS11cmw9Imh0dHBzOi8vZXhhbXBsZS5jb20vc3dhZ2dlci5qc29uIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BzY2FsYXIvYXBpLXJlZmVyZW5jZSI+PC9zY3JpcHQ+CiAgPC9ib2R5Pgo8L2h0bWw+CmBgYAoKWW91IGNhbiBhbHNvIHVzZSB0aGUgZm9sbG93aW5nIHN5bnRheCB0byBkaXJlY3RseSBwYXNzIGFuIE9wZW5BUEkgc3BlYzoKCmBgYGh0bWwKPHNjcmlwdAogIGlkPSJhcGktcmVmZXJlbmNlIgogIHR5cGU9ImFwcGxpY2F0aW9uL2pzb24iPgogIHsg4oCmIH0KPC9zY3JpcHQ+CmBgYAoKSWYgeW914oCZZCBsaWtlIHRvIGFkZCBhIHJlcXVlc3QgcHJveHkgZm9yIHRoZSBBUEkgY2xpZW50ICh0byBhdm9pZCBDT1JTIGlzc3Vlcyk6CgpgYGBodG1sCjxzY3JpcHQKICBpZD0iYXBpLXJlZmVyZW5jZSIKICB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIgogIGRhdGEtcHJveHktdXJsPSJodHRwczovL2FwaS5zY2FsYXIuY29tL3JlcXVlc3QtcHJveHkiPgogIHsg4oCmIH0KPC9zY3JpcHQ+CmBgYAoKIyMjIFdpdGggVnVlLmpzCgpUaGUgQVBJIFJlZmVyZW5jZSBpcyBidWlsdCBpbiBWdWUuanMuIElmIHlvdeKAmXJlIHdvcmtpbmcgaW4gVnVlLmpzLCB0b28sIHlvdSBjYW4gZGlyZWN0bHkgdXNlIG91ciBWdWUgY29tcG9uZW50cy4gSnVzdCBpbnN0YWxsIHRoZW06CgpgYGBiYXNoCm5wbSBpbnN0YWxsIEBzY2FsYXIvYXBpLXJlZmVyZW5jZQpgYGAKCkFuZCBpbXBvcnQgdGhlIGBBcGlSZWZlcmVuY2VgIGNvbXBvbmVudCB0byB5b3VyIGFwcDoKCmBgYHZ1ZQo8c2NyaXB0IHNldHVwIGxhbmc9InRzIj4KaW1wb3J0IHsgQXBpUmVmZXJlbmNlIH0gZnJvbSAnQHNjYWxhci9hcGktcmVmZXJlbmNlJwo8L3NjcmlwdD4KCjx0ZW1wbGF0ZT4KICA8QXBpUmVmZXJlbmNlIC8+CjwvdGVtcGxhdGU+CmBgYAoKWW91IGNhbiBbcGFzcyBwcm9wcyB0byBjdXN0b21pemUgdGhlIEFQSSByZWZlcmVuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9hcGktcmVmZXJlbmNlKS4KCiMjIyBXaXRoIFJlYWN0CgpUaGUgQVBJIFJlZmVyZW5jZSBwYWNrYWdlIGlzIHdyaXR0ZW4gaW4gVnVlLiBUaGF0IHNob3VsZG7igJl0IHN0b3AgeW91IGZyb20gdXNpbmcgaXQgaW4gUmVhY3QsIHRob3VnaC4gWW91IGNhbiB1c2UgW3ZlYXVyeV0oaHR0cHM6Ly9naXRodWIuY29tL2Rldmlsd2pwL3ZlYXVyeSkgdG8gbG9hZCB0aGUgYDxBUElSZWZlcmVuY2UgLz5gIGNvbXBvbmVudCBpbiBSZWFjdDoKCmBgYHRzCmltcG9ydCB7IEFwaVJlZmVyZW5jZSBhcyBWdWVDb21wb25lbnQgfSBmcm9tICdAc2NhbGFyL2FwaS1yZWZlcmVuY2UnCmltcG9ydCB7IGFwcGx5VnVlSW5SZWFjdCB9IGZyb20gJ3ZlYXVyeScKCmNvbnN0IEFwaVJlZmVyZW5jZSA9IGFwcGx5VnVlSW5SZWFjdChWdWVDb21wb25lbnQpCgpmdW5jdGlvbiBBcHAoKSB7CiAgcmV0dXJuICgKICAgIDw+CiAgICAgIDxBcGlSZWZlcmVuY2UgY29uZmlndXJhdGlvbj17eyBpc0VkaXRhYmxlOiB0cnVlIH19IC8+CiAgICA8Lz4KICApCn0KCmV4cG9ydCBkZWZhdWx0IEFwcApgYGAKCiMjIyBXaXRoIEZhc3RpZnkKCk91ciBmYXN0aWZ5IHBsdWdpbiBtYWtlcyBpdCBzbyBlYXN5IHRvIHJlbmRlciBhIHJlZmVyZW5jZSwgdGhlcmXigJlzIG5vIGV4Y3VzZSB0byBub3QgaGF2ZSBhIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgQVBJLgoKYGBgdHMKYXdhaXQgZmFzdGlmeS5yZWdpc3RlcihyZXF1aXJlKCdAc2NhbGFyL2Zhc3RpZnktYXBpLXJlZmVyZW5jZScpLCB7CiAgcm91dGVQcmVmaXg6ICcvcmVmZXJlbmNlJywKICBhcGlSZWZlcmVuY2U6IHsKICAgIHNwZWM6ICgpID0+IGZhc3RpZnkuc3dhZ2dlcigpLAogIH0sCn0pCmBgYAoKQWN0dWFsbHksIGl04oCZcyBleGVjdXRpbmcgdGhlIGBmYXN0aWZ5LnN3YWdnZXIoKWAgY2FsbCBieSBkZWZhdWx0IChpZiBhdmFpbGFibGUpLiBTbyB0aGF04oCZcyBhbGwgeW91IG5lZWQgdG8gYWRkOgoKYGBgdHMKYXdhaXQgZmFzdGlmeS5yZWdpc3RlcihyZXF1aXJlKCdAc2NhbGFyL2Zhc3RpZnktYXBpLXJlZmVyZW5jZScpLCB7CiAgcm91dGVQcmVmaXg6ICcvcmVmZXJlbmNlJywKfSkKYGBgCgojIyBVc2luZyBvdXIgYW1hemluZyBzZXJ2aWNlCgpXYWl0LCB0aGlzIGlzIG9wZW4gc291cmNlIGFuZCB5b3UgY2FuIGRvIHdoYXRldmVyIHlvdSB3YW50LiBCdXQgaWYgeW91IHdhbnQgdG8gYWRkIGEgbmljZSwgY3VzdG9taXphYmxlIGd1aWRlLCBjb2xsYWJvcmF0ZSB3aXRoIHlvdXIgdGVhbSBhbmQgaGF2ZSBldmVyeXRoaW5nIHNlcnZlZCB0aHJvdWdoIGEgQ0ROLCBjcmVhdGUgYW4gYWNjb3VudCBvbiBbc2NhbGFyLmNvbV0oaHR0cHM6Ly9zY2FsYXIuY29tKS4KCiMjIFRoZW1lcwoKWW91IGRvbuKAmXQgbGlrZSB0aGUgY29sb3Igc2NoZW1lPyBXZeKAmXZlIHByZXBhcmVkIHNvbWUgdGhlbWVzIGZvciB5b3U6CgpgYGB2dWUKLyogdGhlbWU/OiAnYWx0ZXJuYXRlJyB8ICdkZWZhdWx0JyB8ICdtb29uJyB8ICdwdXJwbGUnIHwgJ3NvbGFyaXplZCcgKi8KPEFwaVJlZmVyZW5jZSA6Y29uZmlndXJhdGlvbj0ieyB0aGVtZTogJ21vb24nIH0iIC8+CmBgYAoK4oS577iPIFRoZSBgZGVmYXVsdGAgdGhlbWUgaXMg4oCmwqB0aGUgZGVmYXVsdCB0aGVtZS4gSWYgeW91IHdhbnQgdG8gbWFrZSBzdXJlIG5vIHRoZW1lIGlzIGFwcGxpZWQsIHBhc3MgYG5vbmVgLgoKIyMgQWR2YW5jZWQ6IFN0eWxpbmcKCk92ZXJ3cml0ZSBvdXIgQ1NTIHZhcmlhYmxlcy4gV2Ugd29u4oCZdCBqdWRnZS4KCmBgYAo6cm9vdCB7CiAgLS10aGVtZS1mb250OiAnQ29taWMgU2FucyBNUycsICdDb21pYyBTYW5zJywgY3Vyc2l2ZTsKfQpgYGAKCldl4oCZcmUgdXNpbmcgdGhlIGBkZWZhdWx0LWAgcHJlZml4IGZvciBvdXIgdmFyaWFibGVzIHRvIG5vdCBvdmVyd3JpdGUgeW91ciB2YXJpYWJsZXMuIFlvdSBjYW4gW3VzZSBhbGwgdmFyaWFibGVzIHdpdGhvdXQgYSBwcmVmaXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvYXBpLXJlZmVyZW5jZS9ibG9iL21haW4vcGFja2FnZXMvZGVmYXVsdC10aGVtZS9zcmMvdGhlbWUuY3NzKS4KCmBgYGNzcwovKiDinIUgR29vZCAod2l0aG91dCBgZGVmYXVsdGAgcHJlZml4KSAqLwotLXRoZW1lLWZvbnQ6ICdDb21pYyBTYW5zIE1TJywgJ0NvbWljIFNhbnMnLCBjdXJzaXZlOwovKiDinYwgQmFkICh3aXRoIGBkZWZhdWx0YCBwcmVmaXgpICovCi0tZGVmYXVsdC10aGVtZS1mb250OiAnQ29taWMgU2FucyBNUycsICdDb21pYyBTYW5zJywgY3Vyc2l2ZTsKYGBgCgpPdmVyd3JpdGUgb3VyIG5pZ2h0IG1vZGUgYW5kIGRheSBtb2RlIHZhcmlhYmxlcyB0byBidWlsZCB5b3VyIG93biB0aGVtZXMuIEhlcmUgYXJlIHNvbWUgb2YgdGhlIGJhc2ljIHZhcmlhYmxlcyB0byBnZXQgeW91IHN0YXJ0ZWQ6CgohW2Jhc2ljLXNjYWxhci12YXJpYWJsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL2Fzc2V0cy82MjAxNDA3LzYzNTI0MzIxLTY2ZDItNDRkMC04NTA5LTNkYjdlMDQ1YTMxNSkKCmBgYAoubGlnaHQtbW9kZSB7CiAgLS10aGVtZS1jb2xvci0xOiAjMTIxMjEyOwogIC0tdGhlbWUtY29sb3ItMjogcmdiYSgwLCAwLCAwLCAwLjYpOwogIC0tdGhlbWUtY29sb3ItMzogcmdiYSgwLCAwLCAwLCAwLjQpOwogIC0tdGhlbWUtY29sb3ItYWNjZW50OiAjMGE4NWQxOwogIC0tdGhlbWUtYmFja2dyb3VuZC0xOiAjZmZmOwogIC0tdGhlbWUtYmFja2dyb3VuZC0yOiAjZjZmNWY0OwogIC0tdGhlbWUtYmFja2dyb3VuZC0zOiAjZjFlZGU5OwogIC0tdGhlbWUtYmFja2dyb3VuZC1hY2NlbnQ6ICM1MzY5ZDIwZjsKICAtLXRoZW1lLWJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTsKfQouZGFyay1tb2RlIHsKICAtLXRoZW1lLWNvbG9yLTE6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44MSk7CiAgLS10aGVtZS1jb2xvci0yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQzKTsKICAtLXRoZW1lLWNvbG9yLTM6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yODIpOwogIC0tdGhlbWUtY29sb3ItYWNjZW50OiAjOGFiNGY4OwogIC0tdGhlbWUtYmFja2dyb3VuZC0xOiAjMjAyMDIwOwogIC0tdGhlbWUtYmFja2dyb3VuZC0yOiAjMjcyNzI3OwogIC0tdGhlbWUtYmFja2dyb3VuZC0zOiAjMzMzMzMzOwogIC0tdGhlbWUtYmFja2dyb3VuZC1hY2NlbnQ6ICM4YWI0ZjgxZjsKfQpgYGAKCk9yIGdldCBtb3JlIGFkdmFuY2VkIGJ5IHN0eWxpbmcgb3VyIHNpZGViYXIhCgohW3NjYWxhci1zaWRlYmFyLXZhcmlhYmxlc10oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvYXNzZXRzLzYyMDE0MDcvMmMzNjNjYmMtZjA2Zi00YWQzLWI0NGYtMDVjZWU4Yzk1YThiKQoKYGBgCi5saWdodC1tb2RlIC5zaWRlYmFyIHsKICAtLXNpZGViYXItYmFja2dyb3VuZC0xOiB2YXIoLS10aGVtZS1iYWNrZ3JvdW5kLTEpOwogIC0tc2lkZWJhci1pdGVtLWhvdmVyLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgLS1zaWRlYmFyLWl0ZW0taG92ZXItYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1ib3JkZXItY29sb3IpOwogIC0tc2lkZWJhci1jb2xvci0xOiB2YXIoLS10aGVtZS1jb2xvci0xKTsKICAtLXNpZGViYXItY29sb3ItMjogdmFyKC0tdGhlbWUtY29sb3ItMik7CiAgLS1zaWRlYmFyLWNvbG9yLWFjdGl2ZTogdmFyKC0tdGhlbWUtY29sb3ItMik7CiAgLS1zaWRlYmFyLXNlYXJjaC1iYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1iYWNrZ3JvdW5kLTIpOwogIC0tc2lkZWJhci1zZWFyY2gtYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1ib3JkZXItY29sb3IpOwogIC0tc2lkZWJhci1zZWFyY2gtLWNvbG9yOiB2YXIoLS10aGVtZS1jb2xvci0zKTsKfQouZGFyay1tb2RlIC5zaWRlYmFyIHsKICAtLXNpZGViYXItYmFja2dyb3VuZC0xOiB2YXIoLS10aGVtZS1iYWNrZ3JvdW5kLTEpOwogIC0tc2lkZWJhci1pdGVtLWhvdmVyLWNvbG9yOiBjdXJyZW50Q29sb3I7CiAgLS1zaWRlYmFyLWl0ZW0taG92ZXItYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItaXRlbS1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1ib3JkZXItY29sb3IpOwogIC0tc2lkZWJhci1jb2xvci0xOiB2YXIoLS10aGVtZS1jb2xvci0xKTsKICAtLXNpZGViYXItY29sb3ItMjogdmFyKC0tdGhlbWUtY29sb3ItMik7CiAgLS1zaWRlYmFyLWNvbG9yLWFjdGl2ZTogdmFyKC0tdGhlbWUtY29sb3ItMik7CiAgLS1zaWRlYmFyLXNlYXJjaC1iYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1iYWNrZ3JvdW5kLTIpOwogIC0tc2lkZWJhci1zZWFyY2gtYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1ib3JkZXItY29sb3IpOwogIC0tc2lkZWJhci1zZWFyY2gtLWNvbG9yOiB2YXIoLS10aGVtZS1jb2xvci0zKTsKfQpgYGAKCiMjIENvbW11bml0eQoKV2UgYXJlIEFQSSBuZXJkcy4gWW91IHRvbz8gTGV04oCZcyBjaGF0IG9uIERpc2NvcmQ6IGh0dHBzOi8vZGlzY29yZC5nZy84SGVaY1JHUEZTCgojIyBPdGhlciBwYWNrYWdlcwoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIGFsbCBvdXIgb3BlbiBzb3VyY2UgcHJvamVjdHMgYW5kIHRoZXJl4oCZcyBkZWZpbml0ZWx5IG1vcmUgdG8gZGlzY292ZXIuCgp8IFBhY2thZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKfCBbQHNjYWxhci9hcGktY2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci90cmVlL21haW4vcGFja2FnZXMvYXBpLWNsaWVudCkgICAgICAgICAgICAgICAgICAgICAgIHwgdGhlIG9wZW4gc291cmNlIEFQSSB0ZXN0aW5nIGNsaWVudCAgICAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL2FwaS1jbGllbnQtcHJveHldKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9hcGktY2xpZW50LXByb3h5KSAgICAgICAgICAgfCBhbiBhcGkgcmVxdWVzdCBwcm94eSBiYXNlZCBvbiBleHByZXNzICAgICAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvYXBpLXJlZmVyZW5jZV0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL2FwaS1yZWZlcmVuY2UpICAgICAgICAgICAgICAgICB8IGdlbmVyYXRlIGJlYXV0aWZ1bCBBUEkgcmVmZXJlbmNlcyAgICAgICAgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci9lY2hvLXNlcnZlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL2VjaG8tc2VydmVyKSAgICAgICAgICAgICAgICAgICAgIHwgYW4gZXhwcmVzcyBzZXJ2ZXIgd2hpY2ggcmVwbGllcyB3aXRoIHRoZSByZXF1ZXN0IGRhdGEgfAp8IFtAc2NhbGFyL2Zhc3RpZnktYXBpLXJlZmVyZW5jZV0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL2Zhc3RpZnktYXBpLXJlZmVyZW5jZSkgfCBhIGZhc3RpZnkgcGx1Z2luIHRvIHJlbmRlciBBUEkgcmVmZXJlbmNlcyAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvc3dhZ2dlci1lZGl0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9zd2FnZ2VyLWVkaXRvcikgICAgICAgICAgICAgICB8IGFuIGVkaXRvciB0YWlsb3JlZCB0byB3cml0ZSBPcGVuQVBJIHNwZWMgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci9zd2FnZ2VyLXBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL3N3YWdnZXItcGFyc2VyKSAgICAgICAgICAgICAgIHwgcGFyc2UgT3BlbkFQSSBzcGVjcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL3VzZS1jbGlwYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtY2xpcGJvYXJkKSAgICAgICAgICAgICAgICAgfCB0aW55IFZ1ZSB3cmFwcGVyIGFyb3VuZCB0aGUgY2xpcGJvYXJkIEFQSSAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvdXNlLWNvZGVtaXJyb3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtY29kZW1pcnJvcikgICAgICAgICAgICAgICB8IENvZGVNaXJyb3IgZm9yIFZ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci91c2Uta2V5Ym9hcmQtZXZlbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2Uta2V5Ym9hcmQtZXZlbnQpICAgICAgIHwga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBWdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL3VzZS10b2FzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtdG9hc3RzKSAgICAgICAgICAgICAgICAgICAgICAgfCBkaXNwbGF5IHRvYXN0cyBpbiBWdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvdXNlLXRvb2x0aXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtdG9vbHRpcCkgICAgICAgICAgICAgICAgICAgICB8IHRvb2x0aXBzIGluIFZ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZS4gV2XigJlyZSB1c2luZyBbcG5wbV0oaHR0cHM6Ly9wbnBtLmlvLykuCgpJbnN0YWxsIGFsbCBkZXBlbmRlbmNpZXM6CmAkIHBucG0gaW5zdGFsbGAKClJ1biB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyOgpgJCBwbnBtIHJ1biBkZXZgCgpCdWlsZCBhbGwgcGFja2FnZXM6CmAkIHBucG0gcnVuIGJ1aWxkYAoKIyMgTGljZW5zZQoKVGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgcmVwb3NpdG9yeSBpcyBsaWNlbnNlZCB1bmRlciBbTUlUXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL2FwaS1yZWZlcmVuY2UvYmxvYi9tYWluL0xJQ0VOU0UpLgo= - readmeEtag: '"0a6e9a8dbacc3927d1ae9c121bb708a9ddf8abeee647021aed6f5ae1a6d672f7"' - readmeLastModified: Mon, 30 Oct 2023 22:41:20 GMT + IyBTY2FsYXIgQVBJIFJlZmVyZW5jZQoKWyFbQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9hLW51bWJlcmVkLWNvbXBhbnkvYXBpLXJlZmVyZW5jZS9hY3Rpb25zL3dvcmtmbG93cy9jaS55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2EtbnVtYmVyZWQtY29tcGFueS9hcGktcmVmZXJlbmNlL2FjdGlvbnMvd29ya2Zsb3dzL2NpLnltbCkKWyFbUmVsZWFzZV0oaHR0cHM6Ly9naXRodWIuY29tL2EtbnVtYmVyZWQtY29tcGFueS9hcGktcmVmZXJlbmNlL2FjdGlvbnMvd29ya2Zsb3dzL3JlbGVhc2UueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hLW51bWJlcmVkLWNvbXBhbnkvYXBpLXJlZmVyZW5jZS9hY3Rpb25zL3dvcmtmbG93cy9yZWxlYXNlLnltbCkKWyFbRGlzY29yZF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9kaXNjb3JkLzExMzUzMzAyMDc5NjA2Nzg0MTA/c3R5bGU9ZmxhdCZjb2xvcj01ODY1RjIpXShodHRwczovL2Rpc2NvcmQuZ2cvOEhlWmNSR1BGUykKCkdlbmVyYXRlIGludGVyYWN0aXZlIEFQSSBkb2N1bWVudGF0aW9ucyBmcm9tIFN3YWdnZXIgZmlsZXMuIFtUcnkgb3VyIERlbW9dKGh0dHBzOi8vZG9jcy5zY2FsYXIuY29tL3N3YWdnZXItZWRpdG9yKQoKWyFbU2NyZWVuc2hvdCBvZiBhbiBBUEkgUmVmZXJlbmNlXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci9hc3NldHMvNjIwMTQwNy9kOGJlYjVlMS1iZjY0LTQ1ODktOGNiMC05OTJiYTc5MjE1YTgpXShodHRwczovL2RvY3Muc2NhbGFyLmNvbS9zd2FnZ2VyLWVkaXRvcikKCiMjIEZlYXR1cmVzCgotIFVzZXMgU3dhZ2dlci9PcGVuQVBJIHNwZWMgZmlsZXMKLSBSZXF1ZXN0IGV4YW1wbGVzIGZvciBhIHRvbiBvZiBsYW5ndWFnZXMgKyBmcmFtZXdvcmtzCi0gSGFzIGFuIGludGVncmF0ZWQgQVBJIGNsaWVudAotIEVkaXQgeW91ciBTd2FnZ2VyIGZpbGVzIHdpdGggYSBsaXZlIHByZXZpZXcKLSBEb2VzbuKAmXQgbG9vayBsaWtlIGl04oCZcyAyMDExCgojIyBUYWJsZSBvZiBDb250ZW50cwoKLSBbR2V0dGluZyBTdGFydGVkXSgjZ2V0dGluZy1zdGFydGVkKQogIC0gW0Zyb20gYSBDRE5dKCNmcm9tLWEtY2RuKQogIC0gW1dpdGggVnVlLmpzXSgjd2l0aC12dWVqcykKICAtIFtXaXRoIFJlYWN0XSgjd2l0aC1yZWFjdCkKICAtIFtXaXRoIEZhc3RpZnldKCN3aXRoLWZhc3RpZnkpCiAgLSBbV2l0aCBIb25vXSgjd2l0aC1ob25vKQotIFtVc2luZyBvdXIgYW1hemluZyBzZXJ2aWNlXSgjdXNpbmctb3VyLWFtYXppbmctc2VydmljZSkKLSBbVGhlbWVzXSgjdGhlbWVzKQotIFtBZHZhbmNlZDogU3R5bGluZ10oI2FkdmFuY2VkLXN0eWxpbmcpCi0gW0NvbW11bml0eV0oI2NvbW11bml0eSkKLSBbT3RoZXIgcGFja2FnZXNdKCNvdGhlci1wYWNrYWdlcykKLSBbQ29udHJpYnV0aW5nXSgjY29udHJpYnV0aW5nKQotIFtMaWNlbnNlXSgjbGljZW5zZSkKCiMjIEdldHRpbmcgU3RhcnRlZAoKIyMjIEZyb20gYSBDRE4KCmBgYGh0bWwKPCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkFQSSBSZWZlcmVuY2U8L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiAgICA8bWV0YQogICAgICBuYW1lPSJ2aWV3cG9ydCIKICAgICAgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8+CiAgICA8c3R5bGU+CiAgICAgIGJvZHkgewogICAgICAgIG1hcmdpbjogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8IS0tIEFkZCB5b3VyIG93biBPcGVuQVBJL1N3YWdnZXIgc3BlYyBmaWxlIFVSTCBoZXJlOiAtLT4KICAgIDxzY3JpcHQKICAgICAgaWQ9ImFwaS1yZWZlcmVuY2UiCiAgICAgIGRhdGEtdXJsPSJodHRwczovL2V4YW1wbGUuY29tL3N3YWdnZXIuanNvbiI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9Ac2NhbGFyL2FwaS1yZWZlcmVuY2UiPjwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPgpgYGAKCllvdSBjYW4gYWxzbyB1c2UgdGhlIGZvbGxvd2luZyBzeW50YXggdG8gZGlyZWN0bHkgcGFzcyBhbiBPcGVuQVBJIHNwZWM6CgpgYGBodG1sCjxzY3JpcHQKICBpZD0iYXBpLXJlZmVyZW5jZSIKICB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIj4KICB7IOKApiB9Cjwvc2NyaXB0PgpgYGAKCklmIHlvdeKAmWQgbGlrZSB0byBhZGQgYSByZXF1ZXN0IHByb3h5IGZvciB0aGUgQVBJIGNsaWVudCAodG8gYXZvaWQgQ09SUyBpc3N1ZXMpOgoKYGBgaHRtbAo8c2NyaXB0CiAgaWQ9ImFwaS1yZWZlcmVuY2UiCiAgdHlwZT0iYXBwbGljYXRpb24vanNvbiIKICBkYXRhLXByb3h5LXVybD0iaHR0cHM6Ly9hcGkuc2NhbGFyLmNvbS9yZXF1ZXN0LXByb3h5Ij4KICB7IOKApiB9Cjwvc2NyaXB0PgpgYGAKCiMjIyBXaXRoIFZ1ZS5qcwoKVGhlIEFQSSBSZWZlcmVuY2UgaXMgYnVpbHQgaW4gVnVlLmpzLiBJZiB5b3XigJlyZSB3b3JraW5nIGluIFZ1ZS5qcywgdG9vLCB5b3UgY2FuIGRpcmVjdGx5IHVzZSBvdXIgVnVlIGNvbXBvbmVudHMuIEp1c3QgaW5zdGFsbCB0aGVtOgoKYGBgYmFzaApucG0gaW5zdGFsbCBAc2NhbGFyL2FwaS1yZWZlcmVuY2UKYGBgCgpBbmQgaW1wb3J0IHRoZSBgQXBpUmVmZXJlbmNlYCBjb21wb25lbnQgdG8geW91ciBhcHA6CgpgYGB2dWUKPHNjcmlwdCBzZXR1cCBsYW5nPSJ0cyI+CmltcG9ydCB7IEFwaVJlZmVyZW5jZSB9IGZyb20gJ0BzY2FsYXIvYXBpLXJlZmVyZW5jZScKPC9zY3JpcHQ+Cgo8dGVtcGxhdGU+CiAgPEFwaVJlZmVyZW5jZSAvPgo8L3RlbXBsYXRlPgpgYGAKCllvdSBjYW4gW3Bhc3MgcHJvcHMgdG8gY3VzdG9taXplIHRoZSBBUEkgcmVmZXJlbmNlXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci90cmVlL21haW4vcGFja2FnZXMvYXBpLXJlZmVyZW5jZSkuCgojIyMgV2l0aCBSZWFjdAoKVGhlIEFQSSBSZWZlcmVuY2UgcGFja2FnZSBpcyB3cml0dGVuIGluIFZ1ZS4gVGhhdCBzaG91bGRu4oCZdCBzdG9wIHlvdSBmcm9tIHVzaW5nIGl0IGluIFJlYWN0LCB0aG91Z2guIFlvdSBjYW4gdXNlIFt2ZWF1cnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZXZpbHdqcC92ZWF1cnkpIHRvIGxvYWQgdGhlIGA8QVBJUmVmZXJlbmNlIC8+YCBjb21wb25lbnQgaW4gUmVhY3Q6CgpgYGB0cwppbXBvcnQgeyBBcGlSZWZlcmVuY2UgYXMgVnVlQ29tcG9uZW50IH0gZnJvbSAnQHNjYWxhci9hcGktcmVmZXJlbmNlJwppbXBvcnQgeyBhcHBseVZ1ZUluUmVhY3QgfSBmcm9tICd2ZWF1cnknCgpjb25zdCBBcGlSZWZlcmVuY2UgPSBhcHBseVZ1ZUluUmVhY3QoVnVlQ29tcG9uZW50KQoKZnVuY3Rpb24gQXBwKCkgewogIHJldHVybiAoCiAgICA8PgogICAgICA8QXBpUmVmZXJlbmNlIGNvbmZpZ3VyYXRpb249e3sgaXNFZGl0YWJsZTogdHJ1ZSB9fSAvPgogICAgPC8+CiAgKQp9CgpleHBvcnQgZGVmYXVsdCBBcHAKYGBgCgojIyMgV2l0aCBGYXN0aWZ5CgpPdXIgZmFzdGlmeSBwbHVnaW4gbWFrZXMgaXQgc28gZWFzeSB0byByZW5kZXIgYSByZWZlcmVuY2UsIHRoZXJl4oCZcyBubyBleGN1c2UgdG8gbm90IGhhdmUgYSBkb2N1bWVudGF0aW9uIGZvciB5b3VyIEFQSS4KCmBgYHRzCmF3YWl0IGZhc3RpZnkucmVnaXN0ZXIocmVxdWlyZSgnQHNjYWxhci9mYXN0aWZ5LWFwaS1yZWZlcmVuY2UnKSwgewogIHJvdXRlUHJlZml4OiAnL3JlZmVyZW5jZScsCiAgYXBpUmVmZXJlbmNlOiB7CiAgICBzcGVjOiAoKSA9PiBmYXN0aWZ5LnN3YWdnZXIoKSwKICB9LAp9KQpgYGAKCkFjdHVhbGx5LCBpdOKAmXMgZXhlY3V0aW5nIHRoZSBgZmFzdGlmeS5zd2FnZ2VyKClgIGNhbGwgYnkgZGVmYXVsdCAoaWYgYXZhaWxhYmxlKS4gU28gdGhhdOKAmXMgYWxsIHlvdSBuZWVkIHRvIGFkZDoKCmBgYHRzCmF3YWl0IGZhc3RpZnkucmVnaXN0ZXIocmVxdWlyZSgnQHNjYWxhci9mYXN0aWZ5LWFwaS1yZWZlcmVuY2UnKSwgewogIHJvdXRlUHJlZml4OiAnL3JlZmVyZW5jZScsCn0pCmBgYAoKIyMjIFdpdGggSG9ubwoKT3VyIEhvbm8gbWlkZGxld2FyZSBtYWtlcyBpdCBzbyBlYXN5IHRvIHJlbmRlciBhIHJlZmVyZW5jZToKCmBgYHRzCmltcG9ydCB7IGFwaVJlZmVyZW5jZSB9IGZyb20gJ0BzY2FsYXIvaG9uby1hcGktcmVmZXJlbmNlJwoKYXBwLmdldCgKICAnL3JlZmVyZW5jZScsCiAgYXBpUmVmZXJlbmNlKHsKICAgIHNwZWM6IHsKICAgICAgdXJsOiAnL3N3YWdnZXIuanNvbicsCiAgICB9LAogIH0pLAopCmBgYAoKIyMgVXNpbmcgb3VyIGFtYXppbmcgc2VydmljZQoKV2FpdCwgdGhpcyBpcyBvcGVuIHNvdXJjZSBhbmQgeW91IGNhbiBkbyB3aGF0ZXZlciB5b3Ugd2FudC4gQnV0IGlmIHlvdSB3YW50IHRvIGFkZCBhIG5pY2UsIGN1c3RvbWl6YWJsZSBndWlkZSwgY29sbGFib3JhdGUgd2l0aCB5b3VyIHRlYW0gYW5kIGhhdmUgZXZlcnl0aGluZyBzZXJ2ZWQgdGhyb3VnaCBhIENETiwgY3JlYXRlIGFuIGFjY291bnQgb24gW3NjYWxhci5jb21dKGh0dHBzOi8vc2NhbGFyLmNvbSkuCgojIyBUaGVtZXMKCllvdSBkb27igJl0IGxpa2UgdGhlIGNvbG9yIHNjaGVtZT8gV2XigJl2ZSBwcmVwYXJlZCBzb21lIHRoZW1lcyBmb3IgeW91OgoKYGBgdnVlCi8qIHRoZW1lPzogJ2FsdGVybmF0ZScgfCAnZGVmYXVsdCcgfCAnbW9vbicgfCAncHVycGxlJyB8ICdzb2xhcml6ZWQnICovCjxBcGlSZWZlcmVuY2UgOmNvbmZpZ3VyYXRpb249InsgdGhlbWU6ICdtb29uJyB9IiAvPgpgYGAKCuKEue+4jyBUaGUgYGRlZmF1bHRgIHRoZW1lIGlzIOKApsKgdGhlIGRlZmF1bHQgdGhlbWUuIElmIHlvdSB3YW50IHRvIG1ha2Ugc3VyZSBubyB0aGVtZSBpcyBhcHBsaWVkLCBwYXNzIGBub25lYC4KCiMjIEFkdmFuY2VkOiBTdHlsaW5nCgpPdmVyd3JpdGUgb3VyIENTUyB2YXJpYWJsZXMuIFdlIHdvbuKAmXQganVkZ2UuCgpgYGAKOnJvb3QgewogIC0tdGhlbWUtZm9udDogJ0NvbWljIFNhbnMgTVMnLCAnQ29taWMgU2FucycsIGN1cnNpdmU7Cn0KYGBgCgpXZeKAmXJlIHVzaW5nIHRoZSBgZGVmYXVsdC1gIHByZWZpeCBmb3Igb3VyIHZhcmlhYmxlcyB0byBub3Qgb3ZlcndyaXRlIHlvdXIgdmFyaWFibGVzLiBZb3UgY2FuIFt1c2UgYWxsIHZhcmlhYmxlcyB3aXRob3V0IGEgcHJlZml4XShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL2FwaS1yZWZlcmVuY2UvYmxvYi9tYWluL3BhY2thZ2VzL2RlZmF1bHQtdGhlbWUvc3JjL3RoZW1lLmNzcykuCgpgYGBjc3MKLyog4pyFIEdvb2QgKHdpdGhvdXQgYGRlZmF1bHRgIHByZWZpeCkgKi8KLS10aGVtZS1mb250OiAnQ29taWMgU2FucyBNUycsICdDb21pYyBTYW5zJywgY3Vyc2l2ZTsKLyog4p2MIEJhZCAod2l0aCBgZGVmYXVsdGAgcHJlZml4KSAqLwotLWRlZmF1bHQtdGhlbWUtZm9udDogJ0NvbWljIFNhbnMgTVMnLCAnQ29taWMgU2FucycsIGN1cnNpdmU7CmBgYAoKT3ZlcndyaXRlIG91ciBuaWdodCBtb2RlIGFuZCBkYXkgbW9kZSB2YXJpYWJsZXMgdG8gYnVpbGQgeW91ciBvd24gdGhlbWVzLiBIZXJlIGFyZSBzb21lIG9mIHRoZSBiYXNpYyB2YXJpYWJsZXMgdG8gZ2V0IHlvdSBzdGFydGVkOgoKIVtiYXNpYy1zY2FsYXItdmFyaWFibGVzXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci9hc3NldHMvNjIwMTQwNy82MzUyNDMyMS02NmQyLTQ0ZDAtODUwOS0zZGI3ZTA0NWEzMTUpCgpgYGAKLmxpZ2h0LW1vZGUgewogIC0tdGhlbWUtY29sb3ItMTogIzEyMTIxMjsKICAtLXRoZW1lLWNvbG9yLTI6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAtLXRoZW1lLWNvbG9yLTM6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAtLXRoZW1lLWNvbG9yLWFjY2VudDogIzBhODVkMTsKICAtLXRoZW1lLWJhY2tncm91bmQtMTogI2ZmZjsKICAtLXRoZW1lLWJhY2tncm91bmQtMjogI2Y2ZjVmNDsKICAtLXRoZW1lLWJhY2tncm91bmQtMzogI2YxZWRlOTsKICAtLXRoZW1lLWJhY2tncm91bmQtYWNjZW50OiAjNTM2OWQyMGY7CiAgLS10aGVtZS1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wOCk7Cn0KLmRhcmstbW9kZSB7CiAgLS10aGVtZS1jb2xvci0xOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODEpOwogIC0tdGhlbWUtY29sb3ItMjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ0Myk7CiAgLS10aGVtZS1jb2xvci0zOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjgyKTsKICAtLXRoZW1lLWNvbG9yLWFjY2VudDogIzhhYjRmODsKICAtLXRoZW1lLWJhY2tncm91bmQtMTogIzIwMjAyMDsKICAtLXRoZW1lLWJhY2tncm91bmQtMjogIzI3MjcyNzsKICAtLXRoZW1lLWJhY2tncm91bmQtMzogIzMzMzMzMzsKICAtLXRoZW1lLWJhY2tncm91bmQtYWNjZW50OiAjOGFiNGY4MWY7Cn0KYGBgCgpPciBnZXQgbW9yZSBhZHZhbmNlZCBieSBzdHlsaW5nIG91ciBzaWRlYmFyIQoKIVtzY2FsYXItc2lkZWJhci12YXJpYWJsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL2Fzc2V0cy82MjAxNDA3LzJjMzYzY2JjLWYwNmYtNGFkMy1iNDRmLTA1Y2VlOGM5NWE4YikKCmBgYAoubGlnaHQtbW9kZSAuc2lkZWJhciB7CiAgLS1zaWRlYmFyLWJhY2tncm91bmQtMTogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0xKTsKICAtLXNpZGViYXItaXRlbS1ob3Zlci1jb2xvcjogY3VycmVudENvbG9yOwogIC0tc2lkZWJhci1pdGVtLWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWJhY2tncm91bmQtMik7CiAgLS1zaWRlYmFyLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWJhY2tncm91bmQtMik7CiAgLS1zaWRlYmFyLWJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtYm9yZGVyLWNvbG9yKTsKICAtLXNpZGViYXItY29sb3ItMTogdmFyKC0tdGhlbWUtY29sb3ItMSk7CiAgLS1zaWRlYmFyLWNvbG9yLTI6IHZhcigtLXRoZW1lLWNvbG9yLTIpOwogIC0tc2lkZWJhci1jb2xvci1hY3RpdmU6IHZhcigtLXRoZW1lLWNvbG9yLTIpOwogIC0tc2lkZWJhci1zZWFyY2gtYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItc2VhcmNoLWJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtYm9yZGVyLWNvbG9yKTsKICAtLXNpZGViYXItc2VhcmNoLS1jb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItMyk7Cn0KLmRhcmstbW9kZSAuc2lkZWJhciB7CiAgLS1zaWRlYmFyLWJhY2tncm91bmQtMTogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0xKTsKICAtLXNpZGViYXItaXRlbS1ob3Zlci1jb2xvcjogY3VycmVudENvbG9yOwogIC0tc2lkZWJhci1pdGVtLWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWJhY2tncm91bmQtMik7CiAgLS1zaWRlYmFyLWl0ZW0tYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLXRoZW1lLWJhY2tncm91bmQtMik7CiAgLS1zaWRlYmFyLWJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtYm9yZGVyLWNvbG9yKTsKICAtLXNpZGViYXItY29sb3ItMTogdmFyKC0tdGhlbWUtY29sb3ItMSk7CiAgLS1zaWRlYmFyLWNvbG9yLTI6IHZhcigtLXRoZW1lLWNvbG9yLTIpOwogIC0tc2lkZWJhci1jb2xvci1hY3RpdmU6IHZhcigtLXRoZW1lLWNvbG9yLTIpOwogIC0tc2lkZWJhci1zZWFyY2gtYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYmFja2dyb3VuZC0yKTsKICAtLXNpZGViYXItc2VhcmNoLWJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtYm9yZGVyLWNvbG9yKTsKICAtLXNpZGViYXItc2VhcmNoLS1jb2xvcjogdmFyKC0tdGhlbWUtY29sb3ItMyk7Cn0KYGBgCgojIyBDb21tdW5pdHkKCldlIGFyZSBBUEkgbmVyZHMuIFlvdSB0b28/IExldOKAmXMgY2hhdCBvbiBEaXNjb3JkOiBodHRwczovL2Rpc2NvcmQuZ2cvOEhlWmNSR1BGUwoKIyMgT3RoZXIgcGFja2FnZXMKClRoaXMgcmVwb3NpdG9yeSBjb250YWlucyBhbGwgb3VyIG9wZW4gc291cmNlIHByb2plY3RzIGFuZCB0aGVyZeKAmXMgZGVmaW5pdGVseSBtb3JlIHRvIGRpc2NvdmVyLgoKfCBQYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgW0BzY2FsYXIvYXBpLWNsaWVudF0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL2FwaS1jbGllbnQpICAgICAgICAgICAgICAgICAgICAgICB8IHRoZSBvcGVuIHNvdXJjZSBBUEkgdGVzdGluZyBjbGllbnQgICAgICAgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci9hcGktY2xpZW50LXByb3h5XShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL3NjYWxhci90cmVlL21haW4vcGFja2FnZXMvYXBpLWNsaWVudC1wcm94eSkgICAgICAgICAgIHwgYW4gYXBpIHJlcXVlc3QgcHJveHkgYmFzZWQgb24gZXhwcmVzcyAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL2FwaS1yZWZlcmVuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9hcGktcmVmZXJlbmNlKSAgICAgICAgICAgICAgICAgfCBnZW5lcmF0ZSBiZWF1dGlmdWwgQVBJIHJlZmVyZW5jZXMgICAgICAgICAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvZWNoby1zZXJ2ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9lY2hvLXNlcnZlcikgICAgICAgICAgICAgICAgICAgICB8IGFuIGV4cHJlc3Mgc2VydmVyIHdoaWNoIHJlcGxpZXMgd2l0aCB0aGUgcmVxdWVzdCBkYXRhIHwKfCBbQHNjYWxhci9mYXN0aWZ5LWFwaS1yZWZlcmVuY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9mYXN0aWZ5LWFwaS1yZWZlcmVuY2UpIHwgYSBmYXN0aWZ5IHBsdWdpbiB0byByZW5kZXIgQVBJIHJlZmVyZW5jZXMgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL2hvbm8tYXBpLXJlZmVyZW5jZV0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL2hvbm8tYXBpLXJlZmVyZW5jZSkgICAgICAgfCBhIGhvbm8gbWlkZGxld2FyZSB0byByZW5kZXIgQVBJIHJlZmVyZW5jZXMgICAgICAgICAgICB8CnwgW0BzY2FsYXIvc3dhZ2dlci1lZGl0b3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy9zd2FnZ2VyLWVkaXRvcikgICAgICAgICAgICAgICB8IGFuIGVkaXRvciB0YWlsb3JlZCB0byB3cml0ZSBPcGVuQVBJIHNwZWMgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci9zd2FnZ2VyLXBhcnNlcl0oaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhci9zY2FsYXIvdHJlZS9tYWluL3BhY2thZ2VzL3N3YWdnZXItcGFyc2VyKSAgICAgICAgICAgICAgIHwgcGFyc2UgT3BlbkFQSSBzcGVjcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL3VzZS1jbGlwYm9hcmRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtY2xpcGJvYXJkKSAgICAgICAgICAgICAgICAgfCB0aW55IFZ1ZSB3cmFwcGVyIGFyb3VuZCB0aGUgY2xpcGJvYXJkIEFQSSAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvdXNlLWNvZGVtaXJyb3JdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtY29kZW1pcnJvcikgICAgICAgICAgICAgICB8IENvZGVNaXJyb3IgZm9yIFZ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCBbQHNjYWxhci91c2Uta2V5Ym9hcmQtZXZlbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2Uta2V5Ym9hcmQtZXZlbnQpICAgICAgIHwga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBWdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8IFtAc2NhbGFyL3VzZS10b2FzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtdG9hc3RzKSAgICAgICAgICAgICAgICAgICAgICAgfCBkaXNwbGF5IHRvYXN0cyBpbiBWdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgW0BzY2FsYXIvdXNlLXRvb2x0aXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zY2FsYXIvc2NhbGFyL3RyZWUvbWFpbi9wYWNrYWdlcy91c2UtdG9vbHRpcCkgICAgICAgICAgICAgICAgICAgICB8IHRvb2x0aXBzIGluIFZ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKCiMjIENvbnRyaWJ1dGluZwoKQ29udHJpYnV0aW9ucyBhcmUgd2VsY29tZS4gV2XigJlyZSB1c2luZyBbcG5wbV0oaHR0cHM6Ly9wbnBtLmlvLykuCgpJbnN0YWxsIGFsbCBkZXBlbmRlbmNpZXM6CmAkIHBucG0gaW5zdGFsbGAKClJ1biB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyOgpgJCBwbnBtIHJ1biBkZXZgCgpCdWlsZCBhbGwgcGFja2FnZXM6CmAkIHBucG0gcnVuIGJ1aWxkYAoKIyMgTGljZW5zZQoKVGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgcmVwb3NpdG9yeSBpcyBsaWNlbnNlZCB1bmRlciBbTUlUXShodHRwczovL2dpdGh1Yi5jb20vc2NhbGFyL2FwaS1yZWZlcmVuY2UvYmxvYi9tYWluL0xJQ0VOU0UpLgo= + readmeEtag: '"80fcd9b8d382f4ac76a625c39ba9af63bda0a0f70ea2db4f851f56aa6c352c45"' + readmeLastModified: Thu, 09 Nov 2023 02:45:03 GMT repositoryId: 679280065 description: Beautiful API references from Swagger/OpenAPI files ✨ created: '2023-08-16T13:42:32Z' - updated: '2023-11-08T02:03:15Z' + updated: '2023-11-09T02:11:55Z' language: Vue archived: false - stars: 1119 - watchers: 7 + stars: 1142 + watchers: 8 forks: 12 owner: scalar logo: https://avatars.githubusercontent.com/u/301879?v=4 license: MIT - repoEtag: '"0a7cb4eb87d75d3b9dd12570c69b19d45e4b414e1c6d54acc0dbc3c17b41c3ab"' - repoLastModified: Wed, 08 Nov 2023 02:03:15 GMT + repoEtag: '"0ac543110f9c6c4239ddc32ab09d9428e71e00416e59b514556d3829341fd3e3"' + repoLastModified: Thu, 09 Nov 2023 02:11:55 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -100,17 +100,17 @@ changes, publish accurate documentation and improve the design of your APIs. created: '2018-03-02T17:02:50Z' - updated: '2023-11-08T02:11:26Z' + updated: '2023-11-08T21:26:03Z' language: TypeScript archived: false - stars: 1212 + stars: 1211 watchers: 11 forks: 68 owner: opticdev logo: https://avatars.githubusercontent.com/u/34556970?v=4 license: MIT - repoEtag: '"ecbc5f7e7eae10a3223a69f59e1dbd47a114edc5b2f512c9a1d471b3f213d639"' - repoLastModified: Wed, 08 Nov 2023 02:11:26 GMT + repoEtag: '"9df35234b651af87b648e383b78a3ca555eab4aa1319284829487182a57d8457"' + repoLastModified: Wed, 08 Nov 2023 21:26:03 GMT foundInMaster: true id: 8c3d08406ca659662808d51ddc10b4e4 v3_1: true @@ -577,17 +577,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2023-11-07T22:31:48Z' + updated: '2023-11-09T02:52:09Z' language: TypeScript archived: false - stars: 21339 + stars: 21343 watchers: 285 - forks: 2249 + forks: 2250 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"3c970739026eaeeaef15cf298d002bdd3399de9f3e0362637bdf87c365352203"' - repoLastModified: Tue, 07 Nov 2023 22:31:48 GMT + repoEtag: '"1e336997010067f1d570450004aade8984cfc18f28833bdf3da19a4c87108b64"' + repoLastModified: Thu, 09 Nov 2023 02:52:09 GMT foundInMaster: true - source: https://openapi.tools/ name: oas3-api-snippet-enricher @@ -790,7 +790,7 @@ repositoryId: 152569547 description: Spot is a concise, developer-friendly way to describe your API contract. created: '2018-10-11T09:55:46Z' - updated: '2023-10-26T18:33:25Z' + updated: '2023-11-09T00:29:35Z' language: TypeScript archived: false stars: 497 @@ -799,8 +799,8 @@ owner: airtasker logo: https://avatars.githubusercontent.com/u/1745680?v=4 license: NOASSERTION - repoEtag: '"d27522fa2a5be79b89590b5a5f736dd7bbb0f4bbace6ef3b35b0d08675688771"' - repoLastModified: Thu, 26 Oct 2023 18:33:25 GMT + repoEtag: '"cd70c6209956612f3b226d3a857e9d227c8588b20e1e57158e978d750f269695"' + repoLastModified: Thu, 09 Nov 2023 00:29:35 GMT foundInMaster: true id: 7c28c31ae17b20b046f57bb6765c3939 - source: @@ -825,17 +825,17 @@ repositoryId: 173009358 description: Generate Go client and server boilerplate from OpenAPI 3 specifications created: '2019-02-27T23:59:59Z' - updated: '2023-11-08T02:03:19Z' + updated: '2023-11-08T21:41:29Z' language: Go archived: false - stars: 4336 + stars: 4353 watchers: 31 - forks: 734 + forks: 736 owner: deepmap logo: https://avatars.githubusercontent.com/u/47459865?v=4 license: Apache-2.0 - repoEtag: '"2bd6cb956d191328164deb95a2c000410d6380c7c8a4aef6af6f36389d413d6c"' - repoLastModified: Wed, 08 Nov 2023 02:03:19 GMT + repoEtag: '"03b9858de257cb146ce7e71bf630e9300c462815463c6cbb3592c628d295dfaa"' + repoLastModified: Wed, 08 Nov 2023 21:41:29 GMT foundInMaster: true id: bc996e9362e78defa2eca82e5765d2f3 - source: https://openapi.tools/ @@ -902,17 +902,17 @@ generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3) created: '2018-05-12T09:57:56Z' - updated: '2023-11-08T03:22:50Z' + updated: '2023-11-08T21:34:03Z' language: Java archived: false - stars: 18079 + stars: 18086 watchers: 213 - forks: 5743 + forks: 5745 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"8731a10692f3856804034e2d6795f058f683b3450ec271e8bcd8daeb3a71bb0a"' - repoLastModified: Wed, 08 Nov 2023 03:22:50 GMT + repoEtag: '"3f59ca3720601de3f653b9c5244fbf53babc17d147b07132c0d3e725d86e64eb"' + repoLastModified: Wed, 08 Nov 2023 21:34:03 GMT foundInMaster: true id: 0418f8afcd0196c648d1a46c0c5c20d1 v3_1_link: https://github.com/OpenAPITools/openapi-generator/issues/9083 @@ -931,17 +931,17 @@ repositoryId: 544314254 description: ' OpenAPI JSON Schema Generator allows auto-generation of API client libraries with a focus on JSON schema given an OpenAPI document' created: '2022-10-02T06:47:59Z' - updated: '2023-11-07T14:44:33Z' + updated: '2023-11-08T13:19:57Z' language: Java archived: false - stars: 71 + stars: 72 watchers: 3 forks: 6 owner: openapi-json-schema-tools logo: https://avatars.githubusercontent.com/u/114849992?v=4 license: Apache-2.0 - repoEtag: '"3b2a7c732ed095853a09c6c11e5934a43bf778bcfc6aeb26244332a5c94d944b"' - repoLastModified: Tue, 07 Nov 2023 14:44:33 GMT + repoEtag: '"ee273d8319a1c2e67a570f68a6b11d4ec0d9f39c1e10c7aa1735d54c4062e8c8"' + repoLastModified: Wed, 08 Nov 2023 13:19:57 GMT category: - Code Generators - SDK @@ -983,17 +983,17 @@ repositoryId: 323665366 description: OpenAPI based HTTP Client code generator created: '2020-12-22T15:35:49Z' - updated: '2023-11-07T13:42:37Z' + updated: '2023-11-08T21:57:34Z' language: C# archived: false - stars: 916 + stars: 918 watchers: 31 forks: 103 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"20e26fea703b64e339df3c466700f09d2866733e745c9a7c22bb00f42673ee6f"' - repoLastModified: Tue, 07 Nov 2023 13:42:37 GMT + repoEtag: '"6b4aabaedaa91b16fcbf080de9214bf9444afa8a642dd89e3e3eeb58f3b70f39"' + repoLastModified: Wed, 08 Nov 2023 21:57:34 GMT foundInMaster: true - source: https://openapi.tools/ name: FabriKt @@ -1055,7 +1055,7 @@ owner: bump-sh logo: https://avatars.githubusercontent.com/u/33217836?v=4 license: MIT - repoEtag: '"b46504c2190ba1d52138db9a36a16718aa84951289bdc5d50ed460800ed18be4"' + repoEtag: '"65f2908a9ae8a9304ae22ecc329aa50c77d5cc280f38331855b667f9a5a53593"' repoLastModified: Tue, 08 Aug 2023 23:03:21 GMT foundInMaster: true category: @@ -1154,7 +1154,7 @@ owner: 42Crunch logo: https://avatars.githubusercontent.com/u/25365245?v=4 license: AGPL-3.0 - repoEtag: '"51f54e073a87bfccb1f27f78010b72d3c12f17ddb7d6c697abea67085dcb4254"' + repoEtag: '"45ac615a3c65b5286693bc46a613ea74ae92c7b4377c8873cfe4a01ee4c998d7"' repoLastModified: Sat, 28 Oct 2023 01:50:02 GMT foundInMaster: true id: 782ecbb10f1ff8ac9685e0ed24e52e58 @@ -1245,17 +1245,17 @@ repositoryId: 19390712 description: Swagger Editor created: '2014-05-02T22:47:10Z' - updated: '2023-11-07T21:26:27Z' + updated: '2023-11-08T19:20:58Z' language: JavaScript archived: false - stars: 8412 + stars: 8413 watchers: 260 - forks: 2210 + forks: 2211 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"f4d67512ceb358ea888ff1c9d5d478a40962502723cc55f0ac19074222b3d6b0"' - repoLastModified: Tue, 07 Nov 2023 21:26:27 GMT + repoEtag: '"69c4d694bc113c3e21fed2963fca9b1c52d59728baba95b9dd7446c1c935d699"' + repoLastModified: Wed, 08 Nov 2023 19:20:58 GMT foundInMaster: true id: 951cf61d12c812ef9b201ad76b5d278d v3_1: true @@ -1462,11 +1462,11 @@ archived: false stars: 888 watchers: 43 - forks: 462 + forks: 463 owner: Apicurio logo: https://avatars.githubusercontent.com/u/28107283?v=4 license: Apache-2.0 - repoEtag: '"0211e7450c84ee03bd31efd2cb9073269f5d26108068e1e2991f2ae304b3ba1f"' + repoEtag: '"80a338b76db9bf9ebc81962f505c77d56cbfbd74842894b8ec4db8fcd6b26b13"' repoLastModified: Mon, 06 Nov 2023 02:45:26 GMT foundInMaster: true homepage: https://github.com/Apicurio/apicurio-studio @@ -1645,17 +1645,17 @@ A simple python module to generate OpenAPI Description Documents by supplying request/response bodies. created: '2020-01-09T17:43:54Z' - updated: '2023-09-15T14:25:18Z' + updated: '2023-11-08T20:14:57Z' language: Python archived: false - stars: 12 + stars: 13 watchers: 3 forks: 3 owner: TheWall89 logo: https://avatars.githubusercontent.com/u/2626117?v=4 license: Apache-2.0 - repoEtag: '"b6bc86848a48de4a163738c278a361bf85b66aaac8b816ae0dc4a3cbc5ad7773"' - repoLastModified: Fri, 15 Sep 2023 14:25:18 GMT + repoEtag: '"27ad92f6e857d5f6a1be60ba866fedaf47d40bada0b858c2b3c2e94da006e653"' + repoLastModified: Wed, 08 Nov 2023 20:14:57 GMT foundInMaster: true id: 2829ee121d0fb8321fc8c0dbe2c74103 v3_1: true @@ -1685,17 +1685,17 @@ Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations. created: '2016-03-18T03:52:09Z' - updated: '2023-11-07T20:42:36Z' + updated: '2023-11-08T20:31:26Z' language: TypeScript archived: false - stars: 3791 + stars: 3795 watchers: 55 - forks: 315 + forks: 316 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"4989d38062ca0b69f89293bd9ed2321527423e9d6feebca179ccfa4aae1d7395"' - repoLastModified: Tue, 07 Nov 2023 20:42:36 GMT + repoEtag: '"96ae709337c94b161bb74346646da8ce85dc1183bf8975bb4c12528001c5debe"' + repoLastModified: Wed, 08 Nov 2023 20:31:26 GMT foundInMaster: true id: 15aad8cd322242e03733b07f2a37890a - source: https://openapi.tools/ @@ -1768,11 +1768,11 @@ archived: false stars: 1021 watchers: 25 - forks: 176 + forks: 177 owner: microcks logo: https://avatars.githubusercontent.com/u/11051048?v=4 license: Apache-2.0 - repoEtag: '"7147073db915097039bf14b867a4187b19c172e38fbd82f8560a4e22f5d141b3"' + repoEtag: '"25ce945eb7b27a4bd42d0eaf307dd454069591e9a012bdcce0cd92adf92b92d7"' repoLastModified: Tue, 07 Nov 2023 21:35:05 GMT foundInMaster: true id: 1c0e918b5a733b0f1726199e3ea101d6 @@ -1979,7 +1979,7 @@ owner: lukeautry logo: https://avatars.githubusercontent.com/u/8770560?v=4 license: MIT - repoEtag: '"044c9060dfdb67238697ca5eac5f8b8be973c30aaece54aeebf393a21c7529c8"' + repoEtag: '"7ad43f46ec64b79a78fe634074d593723bdd75c08de338dac9147bec1e5b9056"' repoLastModified: Wed, 08 Nov 2023 02:16:31 GMT foundInMaster: true id: 2529db76d3d9f042b0c624f65b13fc41 @@ -2017,7 +2017,7 @@ owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"787a529ba26b7c1fe9169d5f718af71574b65ba0e718ad5e137fa32c7d26935e"' + repoEtag: '"1723cb7eb3dbce0bdc8944d8d42df3926679f8f6c5b6ecc460b8907c19cafb6b"' repoLastModified: Mon, 30 Oct 2023 00:07:52 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 @@ -2160,7 +2160,7 @@ owner: api-platform logo: https://avatars.githubusercontent.com/u/13420081?v=4 license: MIT - repoEtag: '"edb4d40e9493c2c7cf23ece07c2419f607e346a39a827802530f5e3829f815e2"' + repoEtag: '"77fb6ea455e6d2efdc4fcf48af24bb1f43f8d92691bc1916b67aebfed1635068"' repoLastModified: Tue, 07 Nov 2023 16:42:03 GMT foundInMaster: true id: d14f5904300aabf1ceef4660a6b3d57e @@ -2217,17 +2217,17 @@ repositoryId: 39904377 description: Open source API management platform created: '2015-07-29T16:34:52Z' - updated: '2023-11-07T09:53:50Z' + updated: '2023-11-09T02:14:32Z' language: PHP archived: false - stars: 1592 + stars: 1596 watchers: 59 forks: 203 owner: apioo logo: https://avatars.githubusercontent.com/u/18172950?v=4 license: Apache-2.0 - repoEtag: '"9e9949bc5a2a702a95fc508a94e2c07a075a794c78ebee882b7b5558e680f63f"' - repoLastModified: Tue, 07 Nov 2023 09:53:50 GMT + repoEtag: '"2dd8286f5fc448915f5cd842c29d92501d02e7c073bcbada52215beefc7bc54c"' + repoLastModified: Thu, 09 Nov 2023 02:14:32 GMT foundInMaster: true id: 5458da680012a142d20e79ac150bc4ab - source: @@ -2328,7 +2328,7 @@ owner: nestjs logo: https://avatars.githubusercontent.com/u/28507035?v=4 license: MIT - repoEtag: '"825fbe4ee690e469caf43cae65becf8f006f5abbcf2cab92eb574945f7c61dde"' + repoEtag: '"273687493f4cea8789ab6ddcb23bb1e79216f0215258922f970c58dda4f2a906"' repoLastModified: Tue, 07 Nov 2023 16:23:23 GMT foundInMaster: true id: 7071babd9853fc901c5decfa9b465b67 @@ -2392,17 +2392,17 @@ repositoryId: 12590052 description: Language-agnostic HTTP API Testing Tool created: '2013-09-04T12:21:35Z' - updated: '2023-11-07T12:36:33Z' + updated: '2023-11-08T12:39:07Z' language: JavaScript archived: false - stars: 4069 + stars: 4070 watchers: 75 forks: 305 owner: apiaryio logo: https://avatars.githubusercontent.com/u/765943?v=4 license: MIT - repoEtag: '"d642594d864e6732cc3dac9638dd51b8cab1a034c4f5a48e41c67877b4c4454b"' - repoLastModified: Tue, 07 Nov 2023 12:36:33 GMT + repoEtag: '"9ad082932094ebeef6d7d6a7d804322600da87246ea305de7677beb6956d9ad5"' + repoLastModified: Wed, 08 Nov 2023 12:39:07 GMT foundInMaster: true id: bb2e4b0879fce0d8706dcebfd2c10a4c - source: @@ -2537,17 +2537,17 @@ repositoryId: 537500924 description: Automated API Testing and Quality Assurance created: '2022-09-16T14:48:21Z' - updated: '2023-11-07T23:08:26Z' + updated: '2023-11-08T11:03:06Z' language: TypeScript archived: false - stars: 1352 + stars: 1353 watchers: 13 - forks: 52 + forks: 53 owner: stepci logo: https://avatars.githubusercontent.com/u/61350067?v=4 license: MPL-2.0 - repoEtag: '"b0aca54dffe567c74e199aeada3374ae52925ea189abc506e2b7a70b2e2cc459"' - repoLastModified: Tue, 07 Nov 2023 23:08:26 GMT + repoEtag: '"d504e4338662d8ccd30c24f21ef9b4f71936497d2d1c3718771f5179ff2db97b"' + repoLastModified: Wed, 08 Nov 2023 11:03:06 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -2704,9 +2704,9 @@ id: dc53a7154c15667d6f54d47cdb300949 repositoryMetadata: base64Readme: >- - IyBSZWRvY2x5IENMSQoKQ29tbWFuZC1saW5lIHV0aWxpdHkgZnJvbSBbQFJlZG9jbHldKGh0dHBzOi8vcmVkb2NseS5jb20pIHdpdGggT3BlbkFQSSBzdXBlcnBvd2Vycy4gQnVpbGQsIG1hbmFnZSBhbmQgcXVhbGl0eS1jaGVjayBPcGVuQVBJIGRlc2NyaXB0aW9ucywgY29uZmlndXJlIGFuZCBleGVjdXRlIEFQSSBnb3Zlcm5hbmNlLCBhbmQgcHVibGlzaCBiZWF1dGlmdWwgQVBJIGRvY3VtZW50YXRpb24uIFN1cHBvcnRzIE9wZW5BUEkgMy4xLCAzLjAgYW5kIE9wZW5BUEkgMi4wIChsZWdhY3kgU3dhZ2dlciBmb3JtYXQpLgoKIVtidWlsZCBhbmQgdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL3JlZG9jbHkvcmVkb2NseS1jbGkvYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueWFtbC9iYWRnZS5zdmcpCiFbbnBtIChzY29wZWQpXShodHRwczovL2ltZy5zaGllbGRzLmlvL25wbS92L0ByZWRvY2x5L2NsaSkKIVtOUE1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2wvQHJlZG9jbHkvY2xpKQoKIVtPcGVuQVBJIDMgQ0xJIHRvb2xzZXRdKC4vbWVkaWEvcmVkb2NseS1jbGkuZ2lmKQoKIyMgVXNhZ2UKCiMjIyBOb2RlCgpgYGAKbnB4IEByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpBbHRlcm5hdGl2ZWx5LCBpbnN0YWxsIGl0IGdsb2JhbGx5IHdpdGggYG5wbWA6CgpgYGAKbnBtIGluc3RhbGwgQHJlZG9jbHkvY2xpIC1nCmBgYAoKVGhlbiB5b3UgY2FuIHVzZSBpdCBhcyBgcmVkb2NseSBbY29tbWFuZF0gW29wdGlvbnNdYCwgZm9yIGV4YW1wbGU6CgpgYGAKcmVkb2NseSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpNaW5pbWFsIHJlcXVpcmVkIHZlcnNpb25zIG9mIE5vZGUuanMgYW5kIE5QTSBhcmUgMTQuMTkuMCBhbmQgNy4wLjAgcmVzcGVjdGl2ZWx5LgoKIyMjIERvY2tlcgoKVG8gZ2l2ZSB0aGUgRG9ja2VyIGNvbnRhaW5lciBhY2Nlc3MgdG8gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gZmlsZXMsIHlvdSBuZWVkIHRvCm1vdW50IHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBhcyBhIHZvbHVtZS4gQXNzdW1pbmcgdGhlIEFQSSBkZXNjcmlwdGlvbiBpcyByb290ZWQKaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnksIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovc3BlYyByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUbyBidWlsZCBhbmQgcnVuIHdpdGggYSBsb2NhbCBpbWFnZSwgcnVuIHRoZSBmb2xsb3dpbmcgZnJvbSB0aGUgcHJvamVjdCByb290OgoKYGBgCmRvY2tlciBidWlsZCAtdCByZWRvY2x5L2NsaSAuCmRvY2tlciBydW4gLS1ybSAtdiAkUFdEOi9zcGVjIHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKCiMjIENvbW1vbiB0YXNrcwoKIyMjIEdlbmVyYXRlIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbgoKUmVkb2NseSBDTEkgaXMgYSBncmVhdCB3YXkgdG8gcmVuZGVyIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbi4gSXQgdXNlcyBvcGVuIHNvdXJjZSBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWRvY2x5L3JlZG9jKSB0byBidWlsZCB5b3VyIGRvY3VtZW50YXRpb24uIFVzZSBhIGNvbW1hbmQgbGlrZSB0aGlzOgoKYGBgCnJlZG9jbHkgYnVpbGQtZG9jcyBvcGVuYXBpLnlhbWwKYGBgCgpZb3VyIEFQSSByZWZlcmVuY2UgZG9jcyBhcmUgaW4gYHJlZG9jLXN0YXRpYy5odG1sYCBieSBkZWZhdWx0LiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGluIG1hbnkgd2F5cy4gW1JlYWQgdGhlIG1haW4gZG9jc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9jb21tYW5kcy9idWlsZC1kb2NzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCj4gOmJ1bGI6IFJlZG9jbHkgYWxzbyBoYXMgW2hvc3RlZCBBUEkgcmVmZXJlbmNlIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVnaXN0cnkvZ3VpZGVzL2FwaS1yZWdpc3RyeS1xdWlja3N0YXJ0LyksIGEgKGNvbW1lcmNpYWwpIGFsdGVybmF0aXZlIHRvIFJlZG9jLiBCb3RoIFJlZG9jIGFuZCBSZWRvY2x5IEFQSSByZWZlcmVuY2UgZG9jcyBjYW4gYmUgd29ya2VkIG9uIGxvY2FsbHkgdXNpbmcgdGhlIGBwcmV2aWV3LWRvY3NgIGNvbW1hbmQuCgojIyMgTGludCBhbiBBUEkgZGVzY3JpcHRpb24gYWdhaW5zdCBhIHN0YW5kYXJkCgpDaGVjayB5b3VyIEFQSSBtZWV0cyB0aGUgZXhwZWN0ZWQgc3RhbmRhcmRzIHVzaW5nIGBsaW50YCB0byBlbnN1cmUgcXVhbGl0eSBpbiBldmVyeSB2ZXJzaW9uIG9mIHlvdXIgQVBJLiBPdXIgQVBJIGxpbnRlciBpcyBkZXNpZ25lZCBmb3Igc3BlZWQgb24gZXZlbiBsYXJnZSBkb2N1bWVudHMsIHNvIGl0J3MgZWFzeSB0byBydW4gbG9jYWxseSwgaW4gQ0ksIG9yIGFueXdoZXJlIHlvdSBuZWVkIGl0LiBJdCdzIGFsc28gZGVzaWduZWQgZm9yIGh1bWFucywgd2l0aCBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIHRvIGhlbHAgeW91IGdldCB5b3VyIEFQSSByaWdodCBldmVyeSB0aW1lLiBUcnkgaXQgbGlrZSB0aGlzOgoKYGBgCnJlZG9jbHkgbGludCBvcGVuYXBpLnlhbWwKYGBgCgoqKkNvbmZpZ3VyZSB0aGUgcnVsZXMqKiBhcyB5b3Ugd2lzaC4gTm8gSlNPTlBhdGggaGVyZSwganVzdCB0eXBlLWF3YXJlIGV4cHJlc3Npb25zIHRoYXQgdW5kZXJzdGFuZCB0aGUgT3BlbkFQSSBzdHJ1Y3R1cmUuIFlvdSBjYW4gZWl0aGVyIHVzZSB0aGUgW2J1aWx0LWluIHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzKSB0byBtaXgtYW5kLW1hdGNoIHlvdXIgaWRlYWwgQVBJIHN0YW5kYXJkLCBvciBicmVhayBvdXQgdGhlIHRvb2xzIHRvIGJ1aWxkIHlvdXIgb3duLgoKKipGb3JtYXQgdGhlIG91dHB1dCoqIGluIHdoYXRldmVyIHdheSB5b3UgbmVlZCwgdGhlIGBzdHlsaXNoYCBvdXRwdXQgaXMgYXMgZ29vZCBhcyBpdCBzb3VuZHMsIGJ1dCBpZiB5b3UgbmVlZCBKU09OIG9yIENoZWNrc3R5bGUgb3V0cHV0cyB0byBpbnRlZ3JhdGUgd2l0aCBvdGhlciB0b29scywgd2UndmUgZ290IHRob3NlIHRvby4KCioqTXVsdGlwbGUgZmlsZXMgc3VwcG9ydGVkKiogc28geW91IGRvbid0IG5lZWQgdG8gYnVuZGxlIHlvdXIgQVBJIGRlc2NyaXB0aW9uIHRvIGxpbnQgaXQsIGp1c3QgZ2l2ZSB0aGUgZW50cnkgcG9pbnQgYW5kIFJlZG9jbHkgQ0xJIGRvZXMgdGhlIHJlc3QuCgpbTGVhcm4gbW9yZSBhYm91dCBBUEkgc3RhbmRhcmRzIGFuZCBjb25maWd1cmluZyBSZWRvY2x5IHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL2FwaS1zdGFuZGFyZHMpLgoKIyMjIFRyYW5zZm9ybSBhbiBPcGVuQVBJIGRlc2NyaXB0aW9uCgpJZiB5b3VyIE9wZW5BUEkgZGVzY3JpcHRpb24gaXNuJ3QgZXZlcnl0aGluZyB5b3UgaG9wZWQgaXQgd291bGQgYmUsIGVuaGFuY2UgaXQgd2l0aCB0aGUgUmVkb2NseSBbZGVjb3JhdG9yc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9kZWNvcmF0b3JzKSBmZWF0dXJlLiBUaGlzIGFsbG93cyB5b3UgdG86CgotIFB1Ymxpc2ggcmVmZXJlbmNlIGRvY3Mgd2l0aCBhIHN1YnNldCBvZiBlbmRwb2ludHMgZm9yIHB1YmxpYyB1c2UKLSBJbXByb3ZlIHRoZSBkb2NzIGJ5IGFkZGluZyBleGFtcGxlcyBhbmQgZGVzY3JpcHRpb25zCi0gQWRhcHQgYW4gZXhpc3RpbmcgT3BlbkFQSSBkZXNjcmlwdGlvbiwgYW5kIHJlcGxhY2UgZGV0YWlscyBsaWtlIFVSTHMgZm9yIHVzZSBvbiBzdGFnaW5nIHBsYXRmb3JtcwoKIyMgRGF0YSBjb2xsZWN0aW9uCgpUaGlzIHRvb2wgW2NvbGxlY3RzIGRhdGFdKC4vZG9jcy91c2FnZS1kYXRhLm1kKSB0byBoZWxwIFJlZG9jbHkgaW1wcm92ZSBvdXIgcHJvZHVjdHMgYW5kIHNlcnZpY2VzLiBZb3UgY2FuIG9wdCBvdXQgYnkgc2V0dGluZyB0aGUgYFJFRE9DTFlfVEVMRU1FVFJZYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBgb2ZmYC4KCiMjIE1vcmUgcmVzb3VyY2VzCgpbUmVhZCB0aGUgZGV0YWlsZWQgZG9jc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS8pLgoKIyMgQ3JlZGl0cwoKVGhhbmtzIHRvIFtncmFwaHFsLWpzXShodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9ncmFwaHFsLWpzKSBhbmQgW2VzbGludF0oaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQpIGZvciBpbnNwaXJhdGlvbiBvZiB0aGUgQVBJIGRlc2NyaXB0aW9uIHRyYXZlcnNhbCBhcHByb2FjaCBhbmQgdG8gW1N3YWdnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWVkaXRvciksIFtTcGVjdHJhbF0oaHR0cHM6Ly9naXRodWIuY29tL3N0b3BsaWdodGlvL3NwZWN0cmFsKSwgYW5kIFtPQVMtS2l0XShodHRwczovL2dpdGh1Yi5jb20vTWVybWFkZS9vYXMta2l0KSBmb3IgaW5zcGlyaW5nIHRoZSByZWNvbW1lbmRlZCBydWxlc2V0LgoKIyMgRGV2ZWxvcG1lbnQKCkNvbnRyaWJ1dGlvbnMgYXJlIHdlbGNvbWUhIEFsbCB0aGUgaW5mb3JtYXRpb24geW91IG5lZWQgaXMgaW4gW0NPTlRSSUJVVElORy5tZF0oLmdpdGh1Yi9DT05UUklCVVRJTkcubWQpLgo= - readmeEtag: '"c685d555978564eaa81850eb95ac4e85ee86f7027fbbcd40d37ec023e1f110ce"' - readmeLastModified: Thu, 19 Oct 2023 14:02:17 GMT + IyBSZWRvY2x5IENMSQoKW0BSZWRvY2x5XShodHRwczovL3JlZG9jbHkuY29tKSBDTEkgaXMgeW91ciBhbGwtaW4tb25lIE9wZW5BUEkgdXRpbGl0eS4gSXQgYnVpbGRzLCBtYW5hZ2VzLCBpbXByb3ZlcywgYW5kIHF1YWxpdHktY2hlY2tzIHlvdXIgT3BlbkFQSSBkZXNjcmlwdGlvbnMsIGFsbCBvZiB3aGljaCBjb21lcyBpbiBoYW5keSBmb3IgdmFyaW91cyBwaGFzZXMgb2YgdGhlIEFQSSBMaWZlY3ljbGUuIENyZWF0ZSB5b3VyIG93biBydWxlc2V0cyB0byBtYWtlIEFQSSBnb3Zlcm5hbmNlIGVhc3ksIGFuZCBwdWJsaXNoIGJlYXV0aWZ1bCBBUEkgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24uIFN1cHBvcnRzIE9wZW5BUEkgMy4xLCAzLjAgYW5kIE9wZW5BUEkgMi4wIChsZWdhY3kgU3dhZ2dlcikuCgohW2J1aWxkIGFuZCB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vcmVkb2NseS9yZWRvY2x5LWNsaS9hY3Rpb25zL3dvcmtmbG93cy90ZXN0cy55YW1sL2JhZGdlLnN2ZykKIVtucG0gKHNjb3BlZCldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL3YvQHJlZG9jbHkvY2xpKQohW05QTV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9ucG0vbC9AcmVkb2NseS9jbGkpCgohW09wZW5BUEkgQ0xJIHRvb2xzZXRdKC4vbWVkaWEvcmVkb2NseS1jbGkuZ2lmKQoKIyMgVXNhZ2UKCiMjIyBOb2RlCgpgYGAKbnB4IEByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpBbHRlcm5hdGl2ZWx5LCBpbnN0YWxsIGl0IGdsb2JhbGx5IHdpdGggYG5wbWA6CgpgYGAKbnBtIGluc3RhbGwgQHJlZG9jbHkvY2xpIC1nCmBgYAoKVGhlbiB5b3UgY2FuIHVzZSBpdCBhcyBgcmVkb2NseSBbY29tbWFuZF0gW29wdGlvbnNdYCwgZm9yIGV4YW1wbGU6CgpgYGAKcmVkb2NseSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpNaW5pbWFsIHJlcXVpcmVkIHZlcnNpb25zIG9mIE5vZGUuanMgYW5kIE5QTSBhcmUgMTQuMTkuMCBhbmQgNy4wLjAgcmVzcGVjdGl2ZWx5LgoKIyMjIERvY2tlcgoKVG8gZ2l2ZSB0aGUgRG9ja2VyIGNvbnRhaW5lciBhY2Nlc3MgdG8gdGhlIE9wZW5BUEkgZGVzY3JpcHRpb24gZmlsZXMsIHlvdSBuZWVkIHRvCm1vdW50IHRoZSBjb250YWluaW5nIGRpcmVjdG9yeSBhcyBhIHZvbHVtZS4gQXNzdW1pbmcgdGhlIEFQSSBkZXNjcmlwdGlvbiBpcyByb290ZWQKaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnksIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKCmBgYApkb2NrZXIgcnVuIC0tcm0gLXYgJFBXRDovc3BlYyByZWRvY2x5L2NsaSBsaW50IHBhdGgtdG8tcm9vdC1maWxlLnlhbWwKYGBgCgpUbyBidWlsZCBhbmQgcnVuIHdpdGggYSBsb2NhbCBpbWFnZSwgcnVuIHRoZSBmb2xsb3dpbmcgZnJvbSB0aGUgcHJvamVjdCByb290OgoKYGBgCmRvY2tlciBidWlsZCAtdCByZWRvY2x5L2NsaSAuCmRvY2tlciBydW4gLS1ybSAtdiAkUFdEOi9zcGVjIHJlZG9jbHkvY2xpIGxpbnQgcGF0aC10by1yb290LWZpbGUueWFtbApgYGAKCiMjIENvbW1vbiB0YXNrcwoKIyMjIEdlbmVyYXRlIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbgoKUmVkb2NseSBDTEkgaXMgYSBncmVhdCB3YXkgdG8gcmVuZGVyIEFQSSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbi4gSXQgdXNlcyBvcGVuIHNvdXJjZSBbUmVkb2NdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWRvY2x5L3JlZG9jKSB0byBidWlsZCB5b3VyIGRvY3VtZW50YXRpb24uIFVzZSBhIGNvbW1hbmQgbGlrZSB0aGlzOgoKYGBgCnJlZG9jbHkgYnVpbGQtZG9jcyBvcGVuYXBpLnlhbWwKYGBgCgpZb3VyIEFQSSByZWZlcmVuY2UgZG9jcyBhcmUgaW4gYHJlZG9jLXN0YXRpYy5odG1sYCBieSBkZWZhdWx0LiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGluIG1hbnkgd2F5cy4gW1JlYWQgdGhlIG1haW4gZG9jc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9jb21tYW5kcy9idWlsZC1kb2NzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCj4gOmJ1bGI6IFJlZG9jbHkgYWxzbyBoYXMgW2hvc3RlZCBBUEkgcmVmZXJlbmNlIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9hcGktcmVnaXN0cnkvZ3VpZGVzL2FwaS1yZWdpc3RyeS1xdWlja3N0YXJ0LyksIGEgKGNvbW1lcmNpYWwpIGFsdGVybmF0aXZlIHRvIFJlZG9jLiBCb3RoIFJlZG9jIGFuZCBSZWRvY2x5IEFQSSByZWZlcmVuY2UgZG9jcyBjYW4gYmUgd29ya2VkIG9uIGxvY2FsbHkgdXNpbmcgdGhlIGBwcmV2aWV3LWRvY3NgIGNvbW1hbmQuCgojIyMgQnVuZGxlIG11bHRpcGxlIE9wZW5BUEkgZG9jdW1lbnRzCgpIYXZpbmcgb25lIG1hc3NpdmUgT3BlbkFQSSBkZXNjcmlwdGlvbiBjYW4gYmUgYW5ub3lpbmcsIHNvIG1vc3QgcGVvcGxlIHNwbGl0IHRoZW0gdXAgaW50byBtdWx0aXBsZSBkb2N1bWVudHMgdmlhIGAkcmVmYCwgb25seSB0byBsYXRlciBmaW5kIG91dCBzb21lIHRvb2xzIGRvbid0IHN1cHBvcnQgYCRyZWZgLCBvciBkb24ndCBzdXBwb3J0IG11bHRpcGxlIGRvY3VtZW50cz8hIFdlbGwgZmVhciBub3QsIGJlY2F1c2UgUmVkb2NseSBoYXMgYSBgYnVuZGxlYCBjb21tYW5kIHlvdSBjYW4gdXNlIHRvIHJlY29tYmluZSBhbGwgb2YgdGhvc2UgZG9jdW1lbnRzIGJhY2sgaW50byBvbmUgc2luZ2xlIGRvY3VtZW50LiBUaGUgYnVuZGxlZCBvdXRwdXQgUmVkb2NseSBDTEkgcHJvdmlkZXMgaXMgY2xlYW4sIHRpZHksIGFuZCBsb29rcyBsaWtlIGEgaHVtYW4gbWFkZSBpdC4KCiMjIyBBdXRvbWF0ZSBBUEkgZ3VpZGVsaW5lcyB3aXRoIExpbnRpbmcKCkNoZWNrIHlvdXIgQVBJIG1hdGNoZXMgdGhlIGV4cGVjdGVkIEFQSSBndWlkZWxpbmVzIGJ5IHVzaW5nIHRoZSBgbGludGAgY29tbWFuZC4gQVBJIGd1aWRlbGluZXMgYXJlIGFuIGltcG9ydGFudCBwaWVjZSBvZiBBUEkgZ292ZXJuYW5jZSwgaXQgaGVscHMgdG8ga2VlcCBBUElzIGNvbnNpc3RlbnQgKGVuZm9yY2luZyB0aGUgc2FtZSBzdGFuZGFyZHMgYW5kIG5hbWluZyBjb252ZW50aW9ucykgYnV0IGNhbiBhbHNvIGd1aWRlIEFQSSB0ZWFtcyB0aHJvdWdoIHBvdGVudGlhbCBzZWN1cml0eSBoYXphcmRzIGFuZCBvdGhlciBwaXRmYWxscy4gQXV0b21hdGluZyBBUEkgZ3VpZGVsaW5lcyBtZWFucyB5b3UgY2FuIGtlZXAgQVBJcyBjb25zaXN0ZW50IGFuZCBzZWN1cmUgdGhyb3VnaG91dCB0aGVpciBsaWZlY3ljbGUuIEV2ZW4gYmV0dGVyLCB5b3UgY2FuIHNoYXBlIHRoZSBkZXNpZ24gb2YgdGhlIEFQSSBiZWZvcmUgaXQgZXZlbiBleGlzdHMgaWYgeW91IGNvbWJpbmUgQVBJIGxpbnRpbmcgd2l0aCBhIGRlc2lnbi1maXJzdCBBUEkgd29ya2Zsb3chCgpPdXIgQVBJIGxpbnRlciBpcyBkZXNpZ25lZCBmb3Igc3BlZWQgb24gZXZlbiBsYXJnZSBkb2N1bWVudHMsIGFuZCBpdCdzIGVhc3kgdG8gcnVuIGxvY2FsbHksIGluIENJLCBvciBhbnl3aGVyZSB5b3UgbmVlZCBpdC4gSXQncyBhbHNvIGRlc2lnbmVkIGZvciBodW1hbnMsIHdpdGggbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyB0byBoZWxwIHlvdSBnZXQgeW91ciBBUEkgcmlnaHQgZXZlcnkgdGltZS4KClRyeSBpdCBsaWtlIHRoaXM6CgpgYGAKcmVkb2NseSBsaW50IG9wZW5hcGkueWFtbApgYGAKCioqQ29uZmlndXJlIHRoZSBydWxlcyoqIGFzIHlvdSB3aXNoLiBPdGhlciBBUEkgTGludGVycyB1c2UgY29tcGxpY2F0ZWQgaWRlbnRpZmllcnMgbGlrZSBKU09OUGF0aCwgYnV0IFJlZG9jbHkgbWFrZXMgbGlmZSBlYXN5IHdpdGggc2ltcGxlIGV4cHJlc3Npb25zIHRoYXQgdW5kZXJzdGFuZCB0aGUgT3BlbkFQSSBzdHJ1Y3R1cmUuIFlvdSBjYW4gZWl0aGVyIHVzZSB0aGUgW2J1aWx0LWluIHJ1bGVzXShodHRwczovL3JlZG9jbHkuY29tL2RvY3MvY2xpL3J1bGVzKSB0byBtaXgtYW5kLW1hdGNoIHlvdXIgaWRlYWwgQVBJIGd1aWRlbGluZXMsIG9yIGJyZWFrIG91dCB0aGUgdG9vbHMgdG8gYnVpbGQgeW91ciBvd24uCgoqKkZvcm1hdCB0aGUgb3V0cHV0KiogaW4gd2hhdGV2ZXIgd2F5IHlvdSBuZWVkLCB0aGUgYHN0eWxpc2hgIG91dHB1dCBpcyBhcyBnb29kIGFzIGl0IHNvdW5kcywgYnV0IGlmIHlvdSBuZWVkIEpTT04gb3IgQ2hlY2tzdHlsZSBvdXRwdXRzIHRvIGludGVncmF0ZSB3aXRoIG90aGVyIHRvb2xzLCB0aGUgbGludCBjb21tYW5kIGNhbiBvdXRwdXQgdGhvc2UgdG9vLgoKKipNdWx0aXBsZSBmaWxlcyBzdXBwb3J0ZWQqKiBzbyB5b3UgZG9uJ3QgbmVlZCB0byBidW5kbGUgeW91ciBBUEkgZGVzY3JpcHRpb24gdG8gbGludCBpdCwganVzdCBwb2ludCBSZWRvY2x5IENMSSBhdCB0aGUgImVudHJ5IHBvaW50IiAoZS5nLjogYG9wZW5hcGkueWFtbGApIGFuZCBpdCBoYW5kbGVzIHRoZSByZXN0LgoKW0xlYXJuIG1vcmUgYWJvdXQgQVBJIHN0YW5kYXJkcyBhbmQgY29uZmlndXJpbmcgUmVkb2NseSBydWxlc10oaHR0cHM6Ly9yZWRvY2x5LmNvbS9kb2NzL2NsaS9hcGktc3RhbmRhcmRzKS4KCiMjIyBUcmFuc2Zvcm0gYW4gT3BlbkFQSSBkZXNjcmlwdGlvbgoKSWYgeW91ciBPcGVuQVBJIGRlc2NyaXB0aW9uIGlzbid0IGV2ZXJ5dGhpbmcgeW91IGhvcGVkIGl0IHdvdWxkIGJlLCBlbmhhbmNlIGl0IHdpdGggdGhlIFJlZG9jbHkgW2RlY29yYXRvcnNdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvZGVjb3JhdG9ycykgZmVhdHVyZS4gVGhpcyBhbGxvd3MgeW91IHRvOgoKLSBQdWJsaXNoIHJlZmVyZW5jZSBkb2NzIHdpdGggYSBzdWJzZXQgb2YgZW5kcG9pbnRzIGZvciBwdWJsaWMgdXNlCi0gSW1wcm92ZSB0aGUgZG9jcyBieSBhZGRpbmcgZXhhbXBsZXMgYW5kIGRlc2NyaXB0aW9ucwotIEFkYXB0IGFuIGV4aXN0aW5nIE9wZW5BUEkgZGVzY3JpcHRpb24sIGFuZCByZXBsYWNlIGRldGFpbHMgbGlrZSBVUkxzIGZvciB1c2Ugb24gc3RhZ2luZyBwbGF0Zm9ybXMKCiMjIERhdGEgY29sbGVjdGlvbgoKVGhpcyB0b29sIFtjb2xsZWN0cyBkYXRhXSguL2RvY3MvdXNhZ2UtZGF0YS5tZCkgdG8gaGVscCBSZWRvY2x5IGltcHJvdmUgb3VyIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcy4gWW91IGNhbiBvcHQgb3V0IGJ5IHNldHRpbmcgdGhlIGBSRURPQ0xZX1RFTEVNRVRSWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYG9mZmAuCgojIyBNb3JlIHJlc291cmNlcwoKW1JlYWQgdGhlIGRldGFpbGVkIGRvY3NdKGh0dHBzOi8vcmVkb2NseS5jb20vZG9jcy9jbGkvKS4KCiMjIENyZWRpdHMKClRoYW5rcyB0byBbZ3JhcGhxbC1qc10oaHR0cHM6Ly9naXRodWIuY29tL2dyYXBocWwvZ3JhcGhxbC1qcykgYW5kIFtlc2xpbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50KSBmb3IgaW5zcGlyYXRpb24gb2YgdGhlIEFQSSBkZXNjcmlwdGlvbiB0cmF2ZXJzYWwgYXBwcm9hY2ggYW5kIHRvIFtTd2FnZ2VyXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1lZGl0b3IpLCBbU3BlY3RyYWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdG9wbGlnaHRpby9zcGVjdHJhbCksIGFuZCBbT0FTLUtpdF0oaHR0cHM6Ly9naXRodWIuY29tL01lcm1hZGUvb2FzLWtpdCkgZm9yIGluc3BpcmluZyB0aGUgcmVjb21tZW5kZWQgcnVsZXNldC4KCiMjIERldmVsb3BtZW50CgpDb250cmlidXRpb25zIGFyZSB3ZWxjb21lISBBbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIGlzIGluIFtDT05UUklCVVRJTkcubWRdKC5naXRodWIvQ09OVFJJQlVUSU5HLm1kKS4K + readmeEtag: '"4610d9d88949fe265d9296cadec02a852e06eb109afca8a29f063572d798f5ec"' + readmeLastModified: Wed, 08 Nov 2023 11:55:24 GMT repositoryId: 207588519 description: >- ⚒️ Redocly CLI makes OpenAPI easy. Lint/validate to any standard, generate @@ -2721,7 +2721,7 @@ owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"9a3ca02e431b7690acd59916c56f6d76b09580c01ede1305013400ddbc625589"' + repoEtag: '"3467520882ed59bd47ad333d3ea604c94848dcdcb79840e7f260bd0b42244cd4"' repoLastModified: Tue, 07 Nov 2023 20:39:33 GMT category: - Description Validators @@ -2906,17 +2906,17 @@ repositoryId: 18997610 description: Swagger Spec to Java POJOs created: '2014-04-21T16:00:22Z' - updated: '2023-11-07T15:35:13Z' + updated: '2023-11-08T08:40:39Z' language: Java archived: false - stars: 709 + stars: 710 watchers: 47 forks: 539 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"838d8a72c4368a39145405617b94b3a7d601d105412203c4be9e69c760b8c14b"' - repoLastModified: Tue, 07 Nov 2023 15:35:13 GMT + repoEtag: '"656e2800ada82a044725cf047f1e25578ad8644447d208166c27e97a3b657abd"' + repoLastModified: Wed, 08 Nov 2023 08:40:39 GMT foundInMaster: true id: 45f46a8f7ac698cfe3926303bf3dff9d v3_1_link: https://github.com/swagger-api/swagger-parser/pull/1730 @@ -3065,17 +3065,17 @@ repositoryId: 84108450 description: TS Model & utils for creating and exposing OpenAPI 3.x contracts. created: '2017-03-06T18:47:56Z' - updated: '2023-11-03T09:21:56Z' + updated: '2023-11-08T20:02:20Z' language: TypeScript archived: false - stars: 394 + stars: 395 watchers: 7 forks: 59 owner: metadevpro logo: https://avatars.githubusercontent.com/u/24300914?v=4 license: MIT - repoEtag: '"f424215c5f6372b5006d923621d0e0cdf129a2090865c0378be7826bafc46c36"' - repoLastModified: Fri, 03 Nov 2023 09:21:56 GMT + repoEtag: '"b449f7cf53200153cdc81ef9c470241b11989b8591a06011c5ff1fa46c9a62f7"' + repoLastModified: Wed, 08 Nov 2023 20:02:20 GMT foundInMaster: true id: 390339b2a28f2e5660519a2422c29196 - source: @@ -3102,17 +3102,17 @@ OpenAPI 3.0 (and Swagger v2) implementation for Go (parsing, converting, validation, and more) created: '2017-06-11T20:12:06Z' - updated: '2023-11-07T12:45:48Z' + updated: '2023-11-09T01:38:06Z' language: Go archived: false - stars: 2138 + stars: 2139 watchers: 22 forks: 372 owner: getkin logo: https://avatars.githubusercontent.com/u/40365715?v=4 license: MIT - repoEtag: '"810751310ac37d4ce494698b6c4374f8038babe6a1786c6e3f84c6f77ee850ff"' - repoLastModified: Tue, 07 Nov 2023 12:45:48 GMT + repoEtag: '"87f6482b84f35b12df81762b4a55518a3f8542faba0ca211bdbb827e787cf6ab"' + repoLastModified: Thu, 09 Nov 2023 01:38:06 GMT foundInMaster: true v2: true id: f6838ce08e87fa4c3dc813c97193ece3 @@ -3309,7 +3309,7 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"46e68d30dcf5f73f10d305a3daf8a779b8daf96edb18573cc0cfacc1dbb4c497"' + repoEtag: '"2066cba75b765510e6ceacbc79fd98a463fb7a38fc4fb3a5941733d2b8013cd4"' repoLastModified: Tue, 07 Nov 2023 11:51:56 GMT foundInMaster: true id: 1066748bb5b1f114a70856a29fee4aa7 @@ -3507,17 +3507,17 @@ repositoryId: 26726495 description: Swagger 2.0 implementation for go created: '2014-11-16T20:13:15Z' - updated: '2023-11-08T02:01:01Z' + updated: '2023-11-08T23:04:31Z' language: Go archived: false - stars: 8962 + stars: 8965 watchers: 119 - forks: 1264 + forks: 1265 owner: go-swagger logo: https://avatars.githubusercontent.com/u/10362650?v=4 license: Apache-2.0 - repoEtag: '"ca3bcdde95a1188e0640cb9faa02850899f58876dd5fd3e0dce6f67898d080d7"' - repoLastModified: Wed, 08 Nov 2023 02:01:01 GMT + repoEtag: '"7b3093a2a45fb5b10781b3338ca7d6bc19f332bef644438fa593403e0245f831"' + repoLastModified: Wed, 08 Nov 2023 23:04:31 GMT foundInMaster: true id: ef136df9ffb40bb33ccbd76665d8f5b4 - source: https://openapi.tools/ @@ -3610,17 +3610,17 @@ repositoryId: 41822320 description: 'The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript. ' created: '2015-09-02T19:11:57Z' - updated: '2023-11-07T12:40:29Z' + updated: '2023-11-08T22:22:23Z' language: C# archived: false - stars: 6142 + stars: 6147 watchers: 160 - forks: 1169 + forks: 1171 owner: RicoSuter logo: https://avatars.githubusercontent.com/u/2603405?v=4 license: MIT - repoEtag: '"1a512c340977c5fa85bfe19945866ac02de30d5a3104bd68ab752d7274cb3aaf"' - repoLastModified: Tue, 07 Nov 2023 12:40:29 GMT + repoEtag: '"067a2dec944e5fe83cfb9510c8b54ac3121aa3fa67e58765ed1ff9d8aa0a7305"' + repoLastModified: Wed, 08 Nov 2023 22:22:23 GMT foundInMaster: true id: 93636e95435e95198d7d15c9d507f0d3 - source: https://openapi.tools/ @@ -3683,17 +3683,17 @@ documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. created: '2011-07-06T14:26:48Z' - updated: '2023-11-07T23:37:43Z' + updated: '2023-11-08T23:26:02Z' language: Mustache archived: false - stars: 16086 + stars: 16092 watchers: 420 forks: 6024 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"05c1947d5edd3827d221c7c6800a76614a6cd1649188cb11ec89beaaa97f86d7"' - repoLastModified: Tue, 07 Nov 2023 23:37:43 GMT + repoEtag: '"1401e904d6e83e35e4c070ccb5334d23bccd2607ff878272fbaaaf8555bc3ccf"' + repoLastModified: Wed, 08 Nov 2023 23:26:02 GMT foundInMaster: true id: eda1e66e1b7805496e42f57851791a32 - source: https://openapi.tools/ @@ -3717,17 +3717,17 @@ OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python created: '2015-02-20T23:02:54Z' - updated: '2023-11-07T22:36:19Z' + updated: '2023-11-08T17:19:22Z' language: TypeScript archived: false - stars: 4359 - watchers: 816 + stars: 4363 + watchers: 817 forks: 750 owner: Azure logo: https://avatars.githubusercontent.com/u/6844498?v=4 license: MIT - repoEtag: '"25869917d0406d080927d242badb6ca4fd1b285b8dfa69f4c0ba3054e4e99572"' - repoLastModified: Tue, 07 Nov 2023 22:36:19 GMT + repoEtag: '"56a90673d3ccfd4f63ede89fa58d53a54f714dd0b5ad500907efc7b8296ea7b8"' + repoLastModified: Wed, 08 Nov 2023 17:19:22 GMT foundInMaster: true id: 648d92bca90bf58cd74407e0bcad2936 - source: https://openapi.tools/ @@ -3789,7 +3789,7 @@ owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT - repoEtag: '"c507c5def347cfa95ee4140d5972239663113da0ca53054b0df3466278a799e2"' + repoEtag: '"da17c6b718f3df5a2e0c2360338ef0286b3c024b087310cd10205bdb9830b36a"' repoLastModified: Tue, 07 Nov 2023 21:15:45 GMT foundInMaster: true id: 362a4b56c90877840a8032f920389bf6 @@ -3827,7 +3827,7 @@ owner: readmeio logo: https://avatars.githubusercontent.com/u/6878153?v=4 license: MIT - repoEtag: '"a666f77102618171dd9df9a7ee7d7c7079288ac7447821e9e631c18ce657049e"' + repoEtag: '"449478a25569ac0de20e11c5930d16c6d57a3c4d0416c0cda1c039483695d95a"' repoLastModified: Tue, 07 Nov 2023 21:53:15 GMT foundInMaster: true - source: https://openapi.tools/ @@ -3976,7 +3976,7 @@ owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT - repoEtag: '"852e79fbcfcdde33b6b6cb84283b57730f74af5c9f8384f8bc0d397350c8dc48"' + repoEtag: '"6154e886cf4b160521049b4d6ef6ae11f2c33b6988f0fb6dd77258eace0569b0"' repoLastModified: Thu, 05 Oct 2023 12:26:12 GMT foundInMaster: true id: b5cd9eb978510085ded374f60b8e1486 @@ -4008,7 +4008,7 @@ owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT - repoEtag: '"852e79fbcfcdde33b6b6cb84283b57730f74af5c9f8384f8bc0d397350c8dc48"' + repoEtag: '"6154e886cf4b160521049b4d6ef6ae11f2c33b6988f0fb6dd77258eace0569b0"' repoLastModified: Thu, 05 Oct 2023 12:26:12 GMT foundInMaster: true id: e77dbc0bddfdcddf31c2fb1cff63cb6c @@ -4097,11 +4097,11 @@ archived: false stars: 187 watchers: 18 - forks: 48 + forks: 49 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"843967c2d65d6100763266e680ab18609d7738815e1967e7d49878f5cd2f05a7"' + repoEtag: '"78678cbc446df5470d81ecd28cb8568eee6772c9870ed372f8e4dcf7b58dd1a7"' repoLastModified: Sun, 22 Oct 2023 19:40:21 GMT foundInMaster: true id: 64dc602f01798a9a39aba18c09d655ae @@ -4138,7 +4138,7 @@ owner: EMResearch logo: https://avatars.githubusercontent.com/u/29148026?v=4 license: LGPL-3.0 - repoEtag: '"9e194afd1950874648d6a332fca846d99368e6b590dcdbdf28525b659437b02c"' + repoEtag: '"d005667204a1a5eef952173be3c195ddd83a1342c21792370c9a2a23b31c110b"' repoLastModified: Mon, 06 Nov 2023 13:59:32 GMT foundInMaster: true id: eba0fd1e4a49eb507e337ad2266e9a16 @@ -4207,17 +4207,17 @@ Black-box fuzzer that fuzzes APIs based on OpenAPI specification. Find bugs for free! created: '2020-12-23T22:33:38Z' - updated: '2023-11-06T16:12:28Z' + updated: '2023-11-08T11:37:29Z' language: Rust archived: false - stars: 480 + stars: 481 watchers: 7 forks: 20 owner: matusf logo: https://avatars.githubusercontent.com/u/18228995?v=4 license: AGPL-3.0 - repoEtag: '"7c2acab314616965d88414adcfd962e0427a666d1bd8c94b8f91c8cb27dcddc6"' - repoLastModified: Mon, 06 Nov 2023 16:12:28 GMT + repoEtag: '"bdf4f007259a04a5e8d4838a3274282910bbcfe61b83a7d08e99937b79b428a6"' + repoLastModified: Wed, 08 Nov 2023 11:37:29 GMT id: 9e0191ba47403298459b30242dbfe9ad - source: https://openapi.tools/ name: cats @@ -4257,7 +4257,7 @@ owner: Endava logo: https://avatars.githubusercontent.com/u/19396140?v=4 license: Apache-2.0 - repoEtag: '"12a89107587e84f72e096b0ea862d0dfcb7c9c57af5e151ff430b0e14b4bf17c"' + repoEtag: '"c05ca07447d91c07ab22ed08dda0c33e7bd2a5da85142bace81ad421be88ca03"' repoLastModified: Tue, 07 Nov 2023 12:54:06 GMT foundInMaster: true - source: https://openapi.tools/ @@ -4336,11 +4336,11 @@ archived: false stars: 100 watchers: 4 - forks: 14 + forks: 15 owner: openapi-contrib logo: https://avatars.githubusercontent.com/u/49447320?v=4 license: MIT - repoEtag: '"ad4c87def3995cfa3b8678782fdafa8011aa431e57e87572cd983705440e552d"' + repoEtag: '"b8959da1fd42e949e854cdfda16107dc0345f37f018445702c2995a9fe575df2"' repoLastModified: Sat, 23 Sep 2023 01:48:07 GMT foundInMaster: true id: c443b19d564b9a8e21fe8b6192f75f8f @@ -4588,7 +4588,7 @@ owner: danielgtaylor logo: https://avatars.githubusercontent.com/u/106826?v=4 license: MIT - repoEtag: '"e70a2a3efbd5fc289482f488adfbf1a92b591ad5ce6aa1bedcd0983021b8278e"' + repoEtag: '"b19b41a1879f0b39f49a8f4d973a5abbdddd014aa081567bfa77afa692c3c64c"' repoLastModified: Tue, 07 Nov 2023 19:48:38 GMT foundInMaster: true id: 22a8c610015b1b9d89af39221beabe66 @@ -4623,7 +4623,7 @@ owner: codekie logo: https://avatars.githubusercontent.com/u/1512840?v=4 license: MIT - repoEtag: '"dc350b52f3155de3b5840185b454830952fe9b5f4d2d2ec33a78c96a8c3844cb"' + repoEtag: '"03c404d51b7a0d63c8e18a0774883d1cebcc091cbc2bb5a3297be3f721e32e59"' repoLastModified: Thu, 05 Oct 2023 13:43:22 GMT foundInMaster: true id: 301e3f380f248daf345a88c8971d2a71 @@ -4654,11 +4654,11 @@ archived: false stars: 804 watchers: 23 - forks: 202 + forks: 201 owner: postmanlabs logo: https://avatars.githubusercontent.com/u/10251060?v=4 license: Apache-2.0 - repoEtag: '"9c05a4f33cde0e924feec7d1dfbd4f62890aa6e44798e2e811890b674007fb1a"' + repoEtag: '"b424a66cbf482866ac25f8fba1b9483ce0f62b5b52ff48b4db2c1bd3a230b0e4"' repoLastModified: Wed, 08 Nov 2023 02:24:04 GMT foundInMaster: true id: 31b717a2084e3d92f6cda2c33484c789 @@ -4687,17 +4687,17 @@ repositoryId: 345077537 description: Format an OpenAPI document by ordering, formatting and filtering fields. created: '2021-03-06T11:31:52Z' - updated: '2023-10-25T12:19:16Z' + updated: '2023-11-08T08:35:48Z' language: JavaScript archived: false - stars: 68 + stars: 69 watchers: 3 forks: 14 owner: thim81 logo: https://avatars.githubusercontent.com/u/952446?v=4 license: MIT - repoEtag: '"ac89717587072c2aa3e1147d916af9830a7743396c711fc05b63afe1af4d4dc8"' - repoLastModified: Wed, 25 Oct 2023 12:19:16 GMT + repoEtag: '"1f10d5a6a5891388f6d72e2d263406651c014ae844147a24c82933af0aa7e6ce"' + repoLastModified: Wed, 08 Nov 2023 08:35:48 GMT foundInMaster: true id: 788dd625de099d0d3403fe30067f3743 v3_1: true @@ -4732,7 +4732,7 @@ owner: github logo: https://avatars.githubusercontent.com/u/9919?v=4 license: MIT - repoEtag: '"6d53f18b9703c7cd4c3773a12c406c4a939b8c054205f9478ce25a8fb129a2f8"' + repoEtag: '"3a4c844d034729e7d3ea7739fdc7d929d8067d49ed712cdb1129ed601361b368"' repoLastModified: Mon, 06 Nov 2023 15:49:20 GMT foundInMaster: true id: ec6a7a1e4a69a9beeb95bdebb88cb36d @@ -4763,11 +4763,11 @@ archived: false stars: 5860 watchers: 269 - forks: 1542 + forks: 1543 owner: springfox logo: https://avatars.githubusercontent.com/u/11529357?v=4 license: Apache-2.0 - repoEtag: '"76ef028ceb4c6849cb1a7aba6f2e963a487bca7d1e116d27edea2a71d5c4d36d"' + repoEtag: '"d0f8642d43f640dc58542587633329c7687120a92ba7ba1e7cbd7d70b9e52d20"' repoLastModified: Tue, 07 Nov 2023 12:35:02 GMT foundInMaster: true id: 2addde4c497bf582f20025ccac2cda86 @@ -4826,17 +4826,17 @@ repositoryId: 36817565 description: The ZAP core project created: '2015-06-03T16:55:01Z' - updated: '2023-11-07T14:11:27Z' + updated: '2023-11-08T18:30:19Z' language: Java archived: false stars: 11394 watchers: 397 - forks: 2149 + forks: 2150 owner: zaproxy logo: https://avatars.githubusercontent.com/u/6716868?v=4 license: Apache-2.0 - repoEtag: '"711df5f63f80c3e767270a95124bd78ad0fa8e26b80d8d450ef12901cb11c81f"' - repoLastModified: Tue, 07 Nov 2023 14:11:27 GMT + repoEtag: '"8f0cfda6360877e06379c69e38014910480918fd857b394dc7cda652aeff9ffc"' + repoLastModified: Wed, 08 Nov 2023 18:30:19 GMT foundInMaster: true id: 9eedc1be44837a65f912bcf562844f39 - source: https://openapi.tools/ @@ -5022,17 +5022,17 @@ repositoryId: 267042343 description: OpenAPI testing for PHP created: '2020-05-26T12:54:10Z' - updated: '2023-11-06T14:39:34Z' + updated: '2023-11-08T11:02:20Z' language: PHP archived: false - stars: 248 + stars: 249 watchers: 6 forks: 39 owner: hotmeteor logo: https://avatars.githubusercontent.com/u/378585?v=4 license: MIT - repoEtag: '"ab14702b944465fc5d42b4e4619fcc83bdd5d4be6465eb3fcd8cfb8d652abd29"' - repoLastModified: Mon, 06 Nov 2023 14:39:34 GMT + repoEtag: '"8033e2393b12fd6600925d3c0f1971a4b9bb7669509be0a10328d42d9f2856e8"' + repoLastModified: Wed, 08 Nov 2023 11:02:20 GMT foundInMaster: true v3_1_link: https://github.com/hotmeteor/spectator/issues/100 id: 21ebf4f7492590e7ac32e77be29af173 @@ -5089,17 +5089,17 @@ repositoryId: 1431547 description: Web APIs for Django. 🎸 created: '2011-03-02T17:13:56Z' - updated: '2023-11-08T01:06:32Z' + updated: '2023-11-09T03:12:58Z' language: Python archived: false - stars: 26580 + stars: 26586 watchers: 632 forks: 6789 owner: encode logo: https://avatars.githubusercontent.com/u/19159390?v=4 license: NOASSERTION - repoEtag: '"288fcd34cfcc3c3c368d6387ee70a16c87c90f6cbcd803c45deb2ef696e20b18"' - repoLastModified: Wed, 08 Nov 2023 01:06:32 GMT + repoEtag: '"f2a6444817910fab54d816c983354cc768fef755fc0253623c64cc37d18ef1d0"' + repoLastModified: Thu, 09 Nov 2023 03:12:58 GMT foundInMaster: true id: fb8994c078a380cc3510b024f6ed1202 category: Server Implementations @@ -5180,17 +5180,17 @@ repositoryId: 358547893 description: OAuth2 definitions as OpenAPI Spec 3.0 components created: '2021-04-16T09:35:37Z' - updated: '2023-02-12T19:29:48Z' + updated: '2023-11-08T08:09:40Z' language: null archived: false - stars: 4 - watchers: 1 + stars: 5 + watchers: 2 forks: 1 owner: ybelenko logo: https://avatars.githubusercontent.com/u/5541023?v=4 license: MIT - repoEtag: '"bcc00751dfaf9f33bfa7a2cd2ed2e054311ab40b7a24d119f5317a90591eee5a"' - repoLastModified: Sun, 12 Feb 2023 19:29:48 GMT + repoEtag: '"6e8b11231238208454fcac14b07ddf893361cd98a55680cbddd31bbc64470ee7"' + repoLastModified: Wed, 08 Nov 2023 08:09:40 GMT foundInMaster: true id: 943b84998524f65e45768ca73ecb3841 category: Parsers @@ -5319,17 +5319,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-11-07T21:26:21Z' + updated: '2023-11-08T16:05:51Z' language: TypeScript archived: false - stars: 1255 + stars: 1258 watchers: 22 - forks: 152 + forks: 150 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: Apache-2.0 - repoEtag: '"9171987aee2644091c2f9ccf9df312f8e55cf4a691a9859e09880751a83fb01a"' - repoLastModified: Tue, 07 Nov 2023 21:26:21 GMT + repoEtag: '"6c42c161cf1691c14c88ecd2198b82cd2fcd6e7d8c11cb97412973e4d6cdf263"' + repoLastModified: Wed, 08 Nov 2023 16:05:51 GMT foundInMaster: true id: 2f94cc1fc980953b17a9979d4ff2e7ec - source: @@ -5464,7 +5464,7 @@ owner: blst-security logo: https://avatars.githubusercontent.com/u/54233087?v=4 license: Apache-2.0 - repoEtag: '"dfd2271ac81aeaf34e0e7a3727c87c5acab773a58fc698fdad1896894cc4b4b0"' + repoEtag: '"82ca1948ebb6a13cc483d8e6b71d79c268a704433acdae79350af6e0d262779c"' repoLastModified: Sun, 05 Nov 2023 07:51:55 GMT foundInMaster: true name: Cherrybomb @@ -5517,17 +5517,17 @@ VisualAPI - LowCode Macros for YOUR API / HTTP Calls : https://visualapi.azurewebsites.net/ created: '2021-11-11T17:14:47Z' - updated: '2023-10-05T15:55:13Z' + updated: '2023-11-08T19:38:11Z' language: JavaScript archived: false - stars: 26 + stars: 27 watchers: 5 forks: 7 owner: ignatandrei logo: https://avatars.githubusercontent.com/u/153982?v=4 license: MIT - repoEtag: '"53c12645b5fb8734a719a8fd5dbf683d669e9cbcd7275e38fb6d6d07c23ffbb7"' - repoLastModified: Thu, 05 Oct 2023 15:55:13 GMT + repoEtag: '"7a31099d2c854a8e57913999a6b746547e2b00854ae2393dbdb51d7cfbe03807"' + repoLastModified: Wed, 08 Nov 2023 19:38:11 GMT foundInMaster: true id: aa2b2e89cc4f3ca16559d1e0a1cef89d - source: @@ -5654,17 +5654,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-11-06T19:27:05Z' + updated: '2023-11-08T17:36:20Z' language: TypeScript archived: false - stars: 1778 + stars: 1780 watchers: 7 - forks: 214 + forks: 215 owner: anymaniax logo: https://avatars.githubusercontent.com/u/10516382?v=4 license: MIT - repoEtag: '"451e5627f98b7c89cccfe7fa295fc78e8c1eb187cd96b04d0c32d1ae377ed101"' - repoLastModified: Mon, 06 Nov 2023 19:27:05 GMT + repoEtag: '"28549b2880ac351473e6861b06e280a6b80a4de2557315c9426617df4b8df6af"' + repoLastModified: Wed, 08 Nov 2023 17:36:20 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -5762,7 +5762,7 @@ owner: pmcelhaney logo: https://avatars.githubusercontent.com/u/51504?v=4 license: MIT - repoEtag: '"b978f6c0d7abe25828749df0ccd81402ccee509d5310113e07c692f66ad214f0"' + repoEtag: '"b0c7d83c14fc7ee5a356aeb0e180cd28919b981075440e54c7bfdcd95008895f"' repoLastModified: Mon, 06 Nov 2023 21:05:33 GMT category: - Parsers @@ -5816,17 +5816,17 @@ you can think. vacuum is compatible with Spectral rulesets and generates compatible reports. created: '2021-10-10T18:24:19Z' - updated: '2023-11-07T12:53:06Z' + updated: '2023-11-08T13:00:09Z' language: Go archived: false - stars: 308 + stars: 309 watchers: 5 forks: 24 owner: daveshanley logo: https://avatars.githubusercontent.com/u/187345?v=4 license: MIT - repoEtag: '"c1cdd98577e22bf6504e48b4ab5901f18c7012cb78fa34c836c8efd5de0d1ad8"' - repoLastModified: Tue, 07 Nov 2023 12:53:06 GMT + repoEtag: '"34f46239b699b82773bfc4df270ec67420f17b359714ceffb9e04c225f204246"' + repoLastModified: Wed, 08 Nov 2023 13:00:09 GMT foundInMaster: true category: - Description Validators @@ -5884,17 +5884,17 @@ repositoryId: 161691324 description: Generate TypeScript types from OpenAPI 3 specs created: '2018-12-13T20:28:01Z' - updated: '2023-11-08T02:51:04Z' + updated: '2023-11-09T03:05:11Z' language: TypeScript archived: false - stars: 3758 + stars: 3768 watchers: 26 - forks: 327 + forks: 328 owner: drwpow logo: https://avatars.githubusercontent.com/u/1369770?v=4 license: MIT - repoEtag: '"a70cacb297d1e805919959591bbde3d5d4406f899e35eacb1aef579a436e4682"' - repoLastModified: Wed, 08 Nov 2023 02:51:04 GMT + repoEtag: '"9b993178d40af254ac765ca9e8b1a5234b86e95cfd9e757c1c11f168640fbc9f"' + repoLastModified: Thu, 09 Nov 2023 03:05:11 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -5913,17 +5913,17 @@ libopenapi is a fully featured, high performance OpenAPI 3.1, 3.0 and Swagger parser, library, validator and toolkit for golang applications. created: '2022-07-17T19:41:10Z' - updated: '2023-11-07T14:16:45Z' + updated: '2023-11-08T12:59:43Z' language: Go archived: false - stars: 191 + stars: 192 watchers: 4 forks: 33 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"cfc927387592ff14f9ac4d0f05f05e2ba938a0a9e047b8f30960609ac4c444ff"' - repoLastModified: Tue, 07 Nov 2023 14:16:45 GMT + repoEtag: '"5b0fee3f2f120c311f2145b1be3c597a1db0aefc572777b3dfa33d6c0152dbe3"' + repoLastModified: Wed, 08 Nov 2023 12:59:43 GMT category: Parsers foundInMaster: true name: libopenapi @@ -6212,17 +6212,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-11-07T13:01:41Z' + updated: '2023-11-08T12:59:34Z' language: Go archived: false - stars: 65 + stars: 66 watchers: 1 forks: 6 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"4539bd5a410878e4f29fc6703715aa5f42304aad4b762e39903673a3168cd575"' - repoLastModified: Tue, 07 Nov 2023 13:01:41 GMT + repoEtag: '"6e5ba50dc0e0f7875adf780f94ce385f9c77edb2231db555bd79f42a0224a721"' + repoLastModified: Wed, 08 Nov 2023 12:59:34 GMT category: - Data Validators - Testing @@ -6305,17 +6305,17 @@ repositoryId: 586543156 description: OpenAPI to TypeScript, React-Query, Zod, Zodios, Faker.js, MSW and Axios. created: '2023-01-08T14:15:23Z' - updated: '2023-11-07T02:05:06Z' + updated: '2023-11-09T01:11:05Z' language: TypeScript archived: false - stars: 206 + stars: 215 watchers: 4 forks: 13 owner: kubb-project logo: https://avatars.githubusercontent.com/u/122118236?v=4 license: MIT - repoEtag: '"f1aa231c3ecb265f6389aca81d66578074de2e0c6864211ad61822aff90654e9"' - repoLastModified: Tue, 07 Nov 2023 02:05:06 GMT + repoEtag: '"f11f006f8c8c84d5bcbaa756bfa4aebe2c27f600505dc84ad71f255d514230c8"' + repoLastModified: Thu, 09 Nov 2023 01:11:05 GMT foundInMaster: true - source: https://openapi.tools/ name: KrakenD API Gateway @@ -6537,17 +6537,17 @@ repositoryId: 29151578 description: Seamlessly adds a Swagger to Rails-based API's created: '2015-01-12T19:08:10Z' - updated: '2023-11-07T18:58:19Z' + updated: '2023-11-08T07:54:11Z' language: Ruby archived: false - stars: 1786 + stars: 1787 watchers: 27 - forks: 397 + forks: 396 owner: rswag logo: https://avatars.githubusercontent.com/u/55741034?v=4 license: MIT - repoEtag: '"78fbb4a311a861cc11582f83ee7ad9c3df9d56e6b324c95a60c4113d9d858908"' - repoLastModified: Tue, 07 Nov 2023 18:58:19 GMT + repoEtag: '"6520f78ffe0be050b3b506dfd7ca8002b392fb0a21295f6a7a1877a4d207d501"' + repoLastModified: Wed, 08 Nov 2023 07:54:11 GMT foundInMaster: true - source: https://openapi.tools/ name: Fern @@ -6570,17 +6570,17 @@ repositoryId: 476820102 description: SDKs and Docs for your API created: '2022-04-01T17:56:54Z' - updated: '2023-11-08T01:28:41Z' + updated: '2023-11-08T21:40:11Z' language: TypeScript archived: false - stars: 1946 + stars: 1948 watchers: 12 forks: 77 owner: fern-api logo: https://avatars.githubusercontent.com/u/102944815?v=4 license: MIT - repoEtag: '"4e90b27be545c78aa01d4fdb93d3d80eae106c7555884b742a390b7165f5f998"' - repoLastModified: Wed, 08 Nov 2023 01:28:41 GMT + repoEtag: '"0c3326dd2772e0f31032cd823df0c82b943a6d9f2a0eac6110a9721266be1a72"' + repoLastModified: Wed, 08 Nov 2023 21:40:11 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -6598,17 +6598,17 @@ The world's coolest API Validation and compliance tool. Validate APIs against OpenAPI specifications and much more created: '2023-05-01T17:19:15Z' - updated: '2023-11-07T12:52:57Z' + updated: '2023-11-08T12:59:24Z' language: TypeScript archived: false - stars: 24 + stars: 25 watchers: 1 forks: 6 owner: pb33f logo: https://avatars.githubusercontent.com/u/104016643?v=4 license: NOASSERTION - repoEtag: '"658d4b1b77248bbad839b8e86b855dd23ff87e738d5bbb0398a457004d41a25b"' - repoLastModified: Tue, 07 Nov 2023 12:52:57 GMT + repoEtag: '"49ad03b783cd420ee5634cb63e90d1620093780cea4bb8f75e46cf2771a17726"' + repoLastModified: Wed, 08 Nov 2023 12:59:24 GMT category: - Testing Tools - Testing @@ -6685,17 +6685,17 @@ repositoryId: 293245471 description: Convert between JSON Schema, TypeScript, GraphQL, Open API and SureType created: '2020-09-06T09:40:04Z' - updated: '2023-11-04T18:03:57Z' + updated: '2023-11-08T22:56:24Z' language: TypeScript archived: false - stars: 360 + stars: 361 watchers: 5 forks: 9 owner: grantila logo: https://avatars.githubusercontent.com/u/5362579?v=4 license: MIT - repoEtag: '"43ec54f0e27476d4968c6d04f8db3ca6f5a96d32c6a907f4f4667bfa5536ee8e"' - repoLastModified: Sat, 04 Nov 2023 18:03:57 GMT + repoEtag: '"d33751f9f01a5bd8132380de59c7090a4007af69d9ce06ff0815daad3c436bed"' + repoLastModified: Wed, 08 Nov 2023 22:56:24 GMT foundInMaster: true - source: - https://openapi.tools/ @@ -6757,17 +6757,17 @@ FastAPI framework, high performance, easy to learn, fast to code, ready for production created: '2018-12-08T08:21:47Z' - updated: '2023-11-08T03:20:03Z' + updated: '2023-11-09T03:26:44Z' language: Python archived: false - stars: 64316 - watchers: 646 - forks: 5453 + stars: 64357 + watchers: 645 + forks: 5455 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"ae5d78e0b0fd382be1d73cb01e540c10a732688b4b031e1850ba56d8673b7982"' - repoLastModified: Wed, 08 Nov 2023 03:20:03 GMT + repoEtag: '"4114c99a7eae34e0ffb52dada1a4a4c81f049671ec17df879219ecd2eb50d39a"' + repoLastModified: Thu, 09 Nov 2023 03:26:44 GMT foundInMaster: true id: 8e11fa45d6f090aa2ed68317cf5a7215 - source: @@ -6785,17 +6785,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-11-07T19:42:35Z' + updated: '2023-11-09T01:39:47Z' language: JavaScript archived: false - stars: 24740 - watchers: 652 + stars: 24743 + watchers: 653 forks: 8818 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"22bec0138f2fcd79e280afb874534f6e5f50c431304e07d3901e92e8e8060b23"' - repoLastModified: Tue, 07 Nov 2023 19:42:35 GMT + repoEtag: '"32e6ab7b168053ee4ae265774a406dcc830568476dfe1faac7678928abd80e98"' + repoLastModified: Thu, 09 Nov 2023 01:39:47 GMT foundInMaster: true name: swagger-ui homepage: https://github.com/swagger-api/swagger-UI @@ -6828,17 +6828,17 @@ repositoryId: 45250726 description: 📘 OpenAPI/Swagger-generated API Reference Documentation created: '2015-10-30T12:53:02Z' - updated: '2023-11-07T22:31:48Z' + updated: '2023-11-09T02:52:09Z' language: TypeScript archived: false - stars: 21339 + stars: 21343 watchers: 285 - forks: 2249 + forks: 2250 owner: Redocly logo: https://avatars.githubusercontent.com/u/32099856?v=4 license: MIT - repoEtag: '"3c970739026eaeeaef15cf298d002bdd3399de9f3e0362637bdf87c365352203"' - repoLastModified: Tue, 07 Nov 2023 22:31:48 GMT + repoEtag: '"1e336997010067f1d570450004aade8984cfc18f28833bdf3da19a4c87108b64"' + repoLastModified: Thu, 09 Nov 2023 02:52:09 GMT foundInMaster: true v3_1: true id: 2725d6db6977c1dd12ceaf9701787e07 @@ -6857,17 +6857,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-11-08T02:50:36Z' + updated: '2023-11-09T03:11:00Z' language: Python archived: false - stars: 13353 + stars: 13375 watchers: 198 - forks: 2442 + forks: 2449 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"c5fa286c27876b1b54c984f752609c2151bd295b674fc9904ebee95fa725498c"' - repoLastModified: Wed, 08 Nov 2023 02:50:36 GMT + repoEtag: '"9c1d646bf7ca5f095a07da05d3fa1fb3ec02d2361918ecfa5ace93308c61a36d"' + repoLastModified: Thu, 09 Nov 2023 03:11:00 GMT foundInMaster: true category: Server Implementations id: fd87348d3e68e8838b35571b2a88b798 @@ -6893,7 +6893,7 @@ owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"0b2ab97110b932a4855b962e854fb593e49e3e426b7f8db6fc747e536f6983ab"' + repoEtag: '"188ef942b9ac10d28e305eef849b9bd04f4cd8f8855f5e0f7bfe7b83785dce18"' repoLastModified: Tue, 07 Nov 2023 12:34:24 GMT foundInMaster: true category: Code Generators @@ -6911,17 +6911,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-11-08T02:07:18Z' + updated: '2023-11-09T01:05:56Z' language: TypeScript archived: false - stars: 5473 + stars: 5478 watchers: 58 forks: 305 owner: mockoon logo: https://avatars.githubusercontent.com/u/49429147?v=4 license: NOASSERTION - repoEtag: '"e5c93a5147b34d169455aefe525c733c60e51901ee320bfb725b949dacbb546b"' - repoLastModified: Wed, 08 Nov 2023 02:07:18 GMT + repoEtag: '"256a0ea32f20b027972ee15b14465bb69642cb6134fbc10c9db300438b5a4897"' + repoLastModified: Thu, 09 Nov 2023 01:05:56 GMT foundInMaster: true category: Testing id: 8728dfca2c1908dbecdcddd31597fad4 @@ -6937,17 +6937,17 @@ repositoryId: 88701696 description: Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution created: '2017-04-19T04:44:28Z' - updated: '2023-11-06T10:18:13Z' + updated: '2023-11-09T01:02:20Z' language: HTML archived: false - stars: 3665 + stars: 3667 watchers: 74 forks: 580 owner: xiaoymin logo: https://avatars.githubusercontent.com/u/7894406?v=4 license: Apache-2.0 - repoEtag: '"404c19ab93c5846e53b774c0daaf2dba36d721171e2a9ce4da94c69e5cbe761c"' - repoLastModified: Mon, 06 Nov 2023 10:18:13 GMT + repoEtag: '"6d3a4f892515d09c54ae0ee9bb0cd6a2a6d0a83765abdfd1cc956e0f4ad923ca"' + repoLastModified: Thu, 09 Nov 2023 01:02:20 GMT category: SDK foundInMaster: true - source: openapi3 tags @@ -6963,17 +6963,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-11-07T12:39:09Z' + updated: '2023-11-08T06:57:53Z' language: null archived: false - stars: 3413 + stars: 3414 watchers: 110 forks: 560 owner: APIs-guru logo: https://avatars.githubusercontent.com/u/10975548?v=4 license: CC0-1.0 - repoEtag: '"8e9d7c50d35fc7572071888f5bb6665c4251f1e15e7c7b559e0d56dc9a9761a3"' - repoLastModified: Tue, 07 Nov 2023 12:39:09 GMT + repoEtag: '"2a5ce83bfff8b3777d837d8edb9db2ddcc87dee22e09669743031ee82409a1c4"' + repoLastModified: Wed, 08 Nov 2023 06:57:53 GMT foundInMaster: true category: SDK id: 667f2aef78d9d19418fbd6c0a7835abb @@ -6987,22 +6987,19 @@ readmeEtag: '"727e7e191d55ad928d06e16821cb35dc2f543c40eebe88e3a02ee589e7b4797f"' readmeLastModified: Mon, 06 Nov 2023 08:17:36 GMT repositoryId: 709571808 - description: >- - Effortlessly discover API behaviour with a Chrome extension that - automatically generates OpenAPI specifications in real time for any app or - website + description: Chrome extension that generates API specs for any app or website created: '2023-10-25T00:36:06Z' - updated: '2023-11-08T01:03:10Z' + updated: '2023-11-09T01:24:42Z' language: TypeScript archived: false - stars: 3372 + stars: 3383 watchers: 18 forks: 48 owner: AndrewWalsh logo: https://avatars.githubusercontent.com/u/15863952?v=4 license: MIT - repoEtag: '"71ba2012331583a2f42d8d37db724a9d05a8513f9ade8aea10152fe8ffdbf32f"' - repoLastModified: Wed, 08 Nov 2023 01:03:10 GMT + repoEtag: '"c2ba81126cca64021c8abd636f616351f108c512294215726640d8a1fad8fdd7"' + repoLastModified: Thu, 09 Nov 2023 01:24:42 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7034,7 +7031,7 @@ owner: springdoc logo: https://avatars.githubusercontent.com/u/52804136?v=4 license: Apache-2.0 - repoEtag: '"b31330dc6d2c454eb2373fe6414fdb537d721e2ae6f2629f26c990739ac5a161"' + repoEtag: '"db75f699704e950159538ff32019caa02043c71a2de6b6f45ca3614beab02c67"' repoLastModified: Tue, 07 Nov 2023 12:51:57 GMT foundInMaster: true id: 901410cec129651fcf7374c79f824f27 @@ -7082,17 +7079,17 @@ web applications in Python with performance auto-tuning. Optionally with Alpine Linux. created: '2019-01-04T17:33:29Z' - updated: '2023-11-06T23:14:07Z' + updated: '2023-11-08T14:50:47Z' language: Python archived: false - stars: 2391 + stars: 2392 watchers: 27 - forks: 312 + forks: 311 owner: tiangolo logo: https://avatars.githubusercontent.com/u/1326112?v=4 license: MIT - repoEtag: '"dfcabe28e247b8a1cc6c6a94ef2335334a92888e0664aa80e613a16cef911f29"' - repoLastModified: Mon, 06 Nov 2023 23:14:07 GMT + repoEtag: '"6a7ecba9c1e53e9fda906a75af25cebf544b35151151ee346151dcd1e993a5ed"' + repoLastModified: Wed, 08 Nov 2023 14:50:47 GMT foundInMaster: true category: Server Implementations id: d0f3fc0bd35fcadacc8ed2c531780739 @@ -7116,17 +7113,17 @@ repositoryId: 203157084 description: 'Automate your API Testing: catch crashes, validate specs, and save time' created: '2019-08-19T11:13:01Z' - updated: '2023-11-07T16:15:41Z' + updated: '2023-11-08T09:30:04Z' language: Python archived: false - stars: 1891 + stars: 1892 watchers: 19 forks: 140 owner: schemathesis logo: https://avatars.githubusercontent.com/u/70383271?v=4 license: MIT - repoEtag: '"7c4024e365c3ff2bda0f8828683cfb2d9037e80cb058d27f622e78fb86d906e8"' - repoLastModified: Tue, 07 Nov 2023 16:15:41 GMT + repoEtag: '"f9079f6595afd1f206d173a466deb0fc0962e07e48d71a5a8ba0f29ffd5fdcca"' + repoLastModified: Wed, 08 Nov 2023 09:30:04 GMT foundInMaster: true id: f4032fb371a703acffa691c0f1239d45 oldLocations: @@ -7174,11 +7171,11 @@ archived: false stars: 1868 watchers: 37 - forks: 224 + forks: 225 owner: google logo: https://avatars.githubusercontent.com/u/1342004?v=4 license: Apache-2.0 - repoEtag: '"f6ecbd050ed9e18ead50dbcca0fad94efb107190ed622a0f4a8282b9ae561178"' + repoEtag: '"5b33c4042b18e9596a3c0eceb6e159451cacac3dee12e01453f5e6f23a78f64a"' repoLastModified: Tue, 07 Nov 2023 20:47:26 GMT foundInMaster: true category: Converters @@ -7190,25 +7187,25 @@ v3: true repositoryMetadata: base64Readme: >- - IyB1dG9pcGEgLSBBdXRvLWdlbmVyYXRlZCBPcGVuQVBJIGRvY3VtZW50YXRpb24KClshW1V0b2lwYSBidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sKQpbIVtjcmF0ZXMuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvdXRvaXBhLnN2Zz9sYWJlbD1jcmF0ZXMuaW8mY29sb3I9b3JhbmdlJmxvZ289cnVzdCldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy91dG9pcGEpClshW2RvY3MucnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPWRvY3MucnMmbWVzc2FnZT11dG9pcGEmY29sb3I9Ymx1ZSZsb2dvPWRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QnliMnhsUFNKcGJXY2lJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkbWxsZDBKdmVEMGlNQ0F3SURVeE1pQTFNVElpUGp4d1lYUm9JR1pwYkd3OUlpTm1OV1kxWmpVaUlHUTlJazAwT0RndU5pQXlOVEF1TWt3ek9USWdNakUwVmpFd05TNDFZekF0TVRVdE9TNHpMVEk0TGpRdE1qTXVOQzB6TXk0M2JDMHhNREF0TXpjdU5XTXRPQzR4TFRNdU1TMHhOeTR4TFRNdU1TMHlOUzR6SURCc0xURXdNQ0F6Tnk0MVl5MHhOQzR4SURVdU15MHlNeTQwSURFNExqY3RNak11TkNBek15NDNWakl4Tkd3dE9UWXVOaUF6Tmk0eVF6a3VNeUF5TlRVdU5TQXdJREkyT0M0NUlEQWdNamd6TGpsV016azBZekFnTVRNdU5pQTNMamNnTWpZdU1TQXhPUzQ1SURNeUxqSnNNVEF3SURVd1l6RXdMakVnTlM0eElESXlMakVnTlM0eElETXlMaklnTUd3eE1ETXVPUzAxTWlBeE1ETXVPU0ExTW1NeE1DNHhJRFV1TVNBeU1pNHhJRFV1TVNBek1pNHlJREJzTVRBd0xUVXdZekV5TGpJdE5pNHhJREU1TGprdE1UZ3VOaUF4T1M0NUxUTXlMakpXTWpnekxqbGpNQzB4TlMwNUxqTXRNamd1TkMweU15NDBMVE16TGpkNlRUTTFPQ0F5TVRRdU9Hd3RPRFVnTXpFdU9YWXROamd1TW13NE5TMHpOM1kzTXk0emVrMHhOVFFnTVRBMExqRnNNVEF5TFRNNExqSWdNVEF5SURNNExqSjJMalpzTFRFd01pQTBNUzQwTFRFd01pMDBNUzQwZGkwdU5ucHRPRFFnTWpreExqRnNMVGcxSURReUxqVjJMVGM1TGpGc09EVXRNemd1T0hZM05TNDBlbTB3TFRFeE1td3RNVEF5SURReExqUXRNVEF5TFRReExqUjJMUzQyYkRFd01pMHpPQzR5SURFd01pQXpPQzR5ZGk0MmVtMHlOREFnTVRFeWJDMDROU0EwTWk0MWRpMDNPUzR4YkRnMUxUTTRMamgyTnpVdU5IcHRNQzB4TVRKc0xURXdNaUEwTVM0MExURXdNaTAwTVM0MGRpMHVObXd4TURJdE16Z3VNaUF4TURJZ016Z3VNbll1Tm5vaVBqd3ZjR0YwYUQ0OEwzTjJaejRLKV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhLykKIVtNU1JWXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1NU1JWJm1lc3NhZ2U9MS42MCUyQiZjb2xvcj1vcmFuZ2UmbG9nbz1ydXN0KQoKUHJvbm91bmNlZCAqKl8vanU6y4h0b8qKOmkucMmRL18qKiBvciAqKl8vanU6y4h0b8qKy4xhyaoucGnLiGXJqi9fKiogd2hhdGV2ZXIgd29ya3MgYmV0dGVyIGZvciB5b3UuCgpXYW50IHRvIGhhdmUgeW91ciBBUEkgZG9jdW1lbnRlZCB3aXRoIE9wZW5BUEk/IEJ1dCBkb24ndCB3YW50IHRvIGJlIGJvdGhlcmVkCndpdGggbWFudWFsIFlBTUwgb3IgSlNPTiB0d2Vha2luZz8gV291bGQgbGlrZSBpdCB0byBiZSBzbyBlYXN5IHRoYXQgaXQgd291bGQgYWxtb3N0CmJlIHV0b3BpYz8gRG9uJ3Qgd29ycnk6IHV0b2lwYSBpcyBoZXJlIHRvIGZpbGwgdGhpcyBnYXAuIEl0IGFpbXMgdG8gZG8sIGlmIG5vdCBhbGwsIHRoZW4KbW9zdCBvZiB0aGUgaGVhdnkgbGlmdGluZyBmb3IgeW91LCBlbmFibGluZyB5b3UgdG8gZm9jdXMgb24gd3JpdGluZyB0aGUgYWN0dWFsIEFQSSBsb2dpYyBpbnN0ZWFkIG9mCmRvY3VtZW50YXRpb24uIEl0IGFpbXMgdG8gYmUgX21pbmltYWxfLCBfc2ltcGxlXyBhbmQgX2Zhc3RfLiBJdCB1c2VzIHNpbXBsZSBgcHJvY2AgbWFjcm9zIHdoaWNoCnlvdSBjYW4gdXNlIHRvIGFubm90YXRlIHlvdXIgY29kZSB0byBoYXZlIGl0ZW1zIGRvY3VtZW50ZWQuCgpUaGUgYHV0b2lwYWAgY3JhdGUgcHJvdmlkZXMgYXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBkb2N1bWVudGF0aW9uIGZvciBSdXN0IFJFU1QgQVBJcy4gSXQgdHJlYXRzCmNvZGUtZmlyc3QgYXBwcm9hY2ggYXMgYSBmaXJzdCBjbGFzcyBjaXRpemVuIGFuZCBzaW1wbGlmaWVzIEFQSSBkb2N1bWVudGF0aW9uIGJ5IHByb3ZpZGluZwpzaW1wbGUgbWFjcm9zIGZvciBnZW5lcmF0aW5nIHRoZSBkb2N1bWVudGF0aW9uIGZyb20geW91ciBjb2RlLgoKSXQgYWxzbyBjb250YWlucyBSdXN0IHR5cGVzIG9mIHRoZSBPcGVuQVBJIHNwZWMsIGFsbG93aW5nIHlvdSB0byB3cml0ZSB0aGUgT3BlbkFQSSBzcGVjIG9ubHkgdXNpbmcKUnVzdCBpZiBhdXRvIGdlbmVyYXRpb24gaXMgbm90IHlvdXIgZmxhdm9yIG9yIGRvZXMgbm90IGZpdCB5b3VyIHB1cnBvc2UuCgpMb25nIHRlcm0gZ29hbCBvZiB0aGUgbGlicmFyeSBpcyB0byBiZSB0aGUgcGxhY2UgdG8gZ28gd2hlbiBPcGVuQVBJIGRvY3VtZW50YXRpb24gaXMgbmVlZGVkIGluIGFueSBSdXN0CmNvZGViYXNlLgoKVXRvaXBhIGlzIGZyYW1ld29yay1hZ25vc3RpYywgYW5kIGNvdWxkIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhbnkgd2ViIGZyYW1ld29yaywgb3IgZXZlbiB3aXRob3V0IG9uZS4gV2hpbGUKYmVpbmcgcG9ydGFibGUgYW5kIHN0YW5kYWxvbmUsIG9uZSBvZiBpdHMga2V5IGFzcGVjdHMgaXMgc2ltcGxlIGludGVncmF0aW9uIHdpdGggd2ViIGZyYW1ld29ya3MuCgojIyBDaG9vc2UgeW91ciBmbGF2b3IgYW5kIGRvY3VtZW50IHlvdXIgQVBJIHdpdGggaWNlLWNvbGQgSVBBCgpSZWZlciB0byB0aGUgZXhpc3RpbmcgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb3IgYnVpbGRpbmcgdGhlICJ0b2RvIiBhcHAgaW4gdGhlIGZvbGxvd2luZyBmcmFtZXdvcmtzOgoKLSAqKlthY3RpeC13ZWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY3RpeC9hY3RpeC13ZWIpKioKLSAqKltheHVtXShodHRwczovL2dpdGh1Yi5jb20vdG9raW8tcnMvYXh1bSkqKgotICoqW3dhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWFubW9uc3Rhci93YXJwKSoqCi0gKipbdGlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2h0dHAtcnMvdGlkZSkqKgotICoqW3JvY2tldF0oaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovUm9ja2V0KSoqIChgMC40YCBhbmQgYDAuNS4wLXJjM2ApCgpBbGwgZXhhbXBsZXMgaW5jbHVkZSBhIFtTd2FnZ2VyLVVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgdW5sZXNzIHN0YXRlZCBvdGhlcndpc2UuCgpUaGVyZSBhcmUgYWxzbyBleGFtcGxlcyBvZiBidWlsZGluZyBtdWx0aXBsZSBPcGVuQVBJIGRvY3MgaW4gb25lIGFwcGxpY2F0aW9uLCBlYWNoIHNlcGFyYXRlZCBpbiBTd2FnZ2VyIFVJLgpUaGVzZSBleGFtcGxlcyBleGlzdCBvbmx5IGZvciB0aGUgKiphY3RpeCoqIGFuZCAqKndhcnAqKiBmcmFtZXdvcmtzLgoKRXZlbiBpZiB0aGVyZSBpcyBubyBleGFtcGxlIGZvciB5b3VyIGZhdm91cml0ZSBmcmFtZXdvcmssIGB1dG9pcGFgIGNhbiBiZSB1c2VkIHdpdGggYW55CndlYiBmcmFtZXdvcmsgd2hpY2ggc3VwcG9ydHMgZGVjb3JhdGluZyBmdW5jdGlvbnMgd2l0aCBtYWNyb3Mgc2ltaWxhcmx5IHRvIHRoZSAqKndhcnAqKiBhbmQgKip0aWRlKiogZXhhbXBsZXMuCgojIyMgQ29tbXVuaXR5IGV4YW1wbGVzCgotICoqW2dyYXBodWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHVsLXJzL2dyYXBodWwvdHJlZS9tYWluL2V4YW1wbGVzL3V0b2lwYS1zd2FnZ2VyLXVpKSoqCi0gKipbc2Fsdm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9zYWx2by1ycy9zYWx2by90cmVlL21haW4vZXhhbXBsZXMvdG9kb3Mtb3BlbmFwaSkqKgotICoqW3Zpel0oaHR0cHM6Ly9naXRodWIuY29tL3Zpei1ycy92aXovdHJlZS9tYWluL2V4YW1wbGVzL3JvdXRpbmcvb3BlbmFwaSkqKgotICoqW250ZXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9sZW9uM3MvbnRleC1yZXN0LWFwaS1leGFtcGxlKSoqCgojIyBXaGF0J3MgdXAgd2l0aCB0aGUgd29yZCBwbGF5PwoKVGhlIG5hbWUgY29tZXMgZnJvbSB0aGUgd29yZHMgYHV0b3BpY2AgYW5kIGBhcGlgIHdoZXJlIGB1dG9gIGFyZSB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiBfdXRvcGljXwphbmQgdGhlIGBpcGFgIGlzIF9hcGlfIHJldmVyc2VkLiBBYWFuZC4uLiBgaXBhYCBpcyBhbHNvIGFuIGF3ZXNvbWUgdHlwZSBvZiBiZWVyIDpiZWVyOi4KCiMjIENyYXRlIEZlYXR1cmVzCgotICoqeWFtbCoqIEVuYWJsZXMgKipzZXJkZV95YW1sKiogc2VyaWFsaXphdGlvbiBvZiBPcGVuQVBJIG9iamVjdHMuCi0gKiphY3RpeF9leHRyYXMqKiBFbmhhbmNlcyBbYWN0aXgtd2ViXShodHRwczovL2dpdGh1Yi5jb20vYWN0aXgvYWN0aXgtd2ViLykgaW50ZWdyYXRpb24gd2l0aCBiZWluZyBhYmxlIHRvCiAgcGFyc2UgYHBhdGhgLCBgcGF0aGAgYW5kIGBxdWVyeWAgcGFyYW1ldGVycyBmcm9tIGFjdGl4IHdlYiBwYXRoIGF0dHJpYnV0ZSBtYWNyb3MuIFNlZQogIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvYXR0ci5wYXRoLmh0bWwjYWN0aXhfZXh0cmFzLXN1cHBvcnQtZm9yLWFjdGl4LXdlYikgb3IgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqcm9ja2V0X2V4dHJhcyoqIEVuaGFuY2VzIFtyb2NrZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L1JvY2tldCkgZnJhbWV3b3JrIGludGVncmF0aW9uIHdpdGggYmVpbmcKICBhYmxlIHRvIHBhcnNlIGBwYXRoYCwgYHBhdGhgIGFuZCBgcXVlcnlgIHBhcmFtZXRlcnMgZnJvbSByb2NrZXQgcGF0aCBhdHRyaWJ1dGUgbWFjcm9zLiBTZWUgW2RvY3NdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9hdHRyLnBhdGguaHRtbCNyb2NrZXRfZXh0cmFzLXN1cHBvcnQtZm9yLXJvY2tldCkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipheHVtX2V4dHJhcyoqIEVuaGFuY2VzIFtheHVtXShodHRwczovL2dpdGh1Yi5jb20vdG9raW8tcnMvYXh1bSkgZnJhbWV3b3JrIGludGVncmF0aW9uIGFsbG93aW5nIHVzZXJzIHRvIHVzZSBgSW50b1BhcmFtc2Agd2l0aG91dAogIGRlZmluaW5nIHRoZSBgcGFyYW1ldGVyX2luYCBhdHRyaWJ1dGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2F0dHIucGF0aC5odG1sI2F4dW1fZXh0cmFzLWZlYXR1cmUtc3VwcG9ydC1mb3ItYXh1bSkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipkZWJ1ZyoqIEFkZCBleHRyYSB0cmFpdHMgc3VjaCBhcyBkZWJ1ZyB0cmFpdHMgdG8gb3BlbmFwaSBkZWZpbml0aW9ucyBhbmQgZWxzZXdoZXJlLgotICoqY2hyb25vKiogQWRkIHN1cHBvcnQgZm9yIFtjaHJvbm9dKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9jaHJvbm8pIGBEYXRlVGltZWAsIGBEYXRlYCwgYE5haXZlRGF0ZWAsIGBOYWl2ZURhdGVUaW1lYCwgYE5haXZlVGltZWAgYW5kIGBEdXJhdGlvbmAKICB0eXBlcy4gQnkgZGVmYXVsdCB0aGVzZSB0eXBlcyBhcmUgcGFyc2VkIHRvIGBzdHJpbmdgIHR5cGVzIHdpdGggYWRkaXRpb25hbCBgZm9ybWF0YCBpbmZvcm1hdGlvbi4KICBgZm9ybWF0OiBkYXRlLXRpbWVgIGZvciBgRGF0ZVRpbWVgIGFuZCBgTmFpdmVEYXRlVGltZWAgYW5kIGBmb3JtYXQ6IGRhdGVgIGZvciBgRGF0ZWAgYW5kIGBOYWl2ZURhdGVgIGFjY29yZGluZwogIFtSRkMzMzM5XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMzMzOSNzZWN0aW9uLTUuNikgYXMgYElTTy04NjAxYC4gVG8KICBvdmVycmlkZSBkZWZhdWx0IGBzdHJpbmdgIHJlcHJlc2VudGF0aW9uIHVzZXJzIGhhdmUgdG8gdXNlIGB2YWx1ZV90eXBlYCBhdHRyaWJ1dGUgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvU2NoZW1hLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCi0gKip0aW1lKiogQWRkIHN1cHBvcnQgZm9yIFt0aW1lXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdGltZSkgYE9mZnNldERhdGVUaW1lYCwgYFByaW1pdGl2ZURhdGVUaW1lYCwgYERhdGVgLCBhbmQgYER1cmF0aW9uYCB0eXBlcy4KICBCeSBkZWZhdWx0IHRoZXNlIHR5cGVzIGFyZSBwYXJzZWQgYXMgYHN0cmluZ2AuIGBPZmZzZXREYXRlVGltZWAgYW5kIGBQcmltaXRpdmVEYXRlVGltZWAgd2lsbCB1c2UgYGRhdGUtdGltZWAgZm9ybWF0LiBgRGF0ZWAgd2lsbCB1c2UKICBgZGF0ZWAgZm9ybWF0IGFuZCBgRHVyYXRpb25gIHdpbGwgbm90IGhhdmUgYW55IGZvcm1hdC4gVG8gb3ZlcnJpZGUgZGVmYXVsdCBgc3RyaW5nYCByZXByZXNlbnRhdGlvbiB1c2VycyBoYXZlIHRvIHVzZSBgdmFsdWVfdHlwZWAgYXR0cmlidXRlCiAgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqZGVjaW1hbCoqIEFkZCBzdXBwb3J0IGZvciBbcnVzdF9kZWNpbWFsXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdF9kZWNpbWFsKSBgRGVjaW1hbGAgdHlwZS4gKipCeSBkZWZhdWx0KioKICBpdCBpcyBpbnRlcnByZXRlZCBhcyBgU3RyaW5nYC4gSWYgeW91IHdpc2ggdG8gY2hhbmdlIHRoZSBmb3JtYXQgeW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIHRoZSBgdmFsdWVfdHlwZWAgaW4gW2NvbXBvbmVudCBkZXJpdmUgZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKS4KLSAqKmRlY2ltYWxfZmxvYXQqKiBBZGQgc3VwcG9ydCBmb3IgW3J1c3RfZGVjaW1hbF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RfZGVjaW1hbCkgYERlY2ltYWxgIHR5cGUuICoqQnkgZGVmYXVsdCoqCiAgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYE51bWJlcmAuIFRoaXMgZmVhdHVyZSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCAqKmRlY2ltYWwqKiBhbmQgYWxsb3cgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHR5cGUgdXNlZCBpbiB5b3VyIAogIGRvY3VtZW50YXRpb24gZm9yIGBEZWNpbWFsYCBtdWNoIGxpa2UgYHNlcmRlX3dpdGhfZmxvYXRgIGZlYXR1cmUgZXhwb3NlZCBieSBydXN0X2RlY2ltYWwuCi0gKip1dWlkKiogQWRkIHN1cHBvcnQgZm9yIFt1dWlkXShodHRwczovL2dpdGh1Yi5jb20vdXVpZC1ycy91dWlkKS4gYFV1aWRgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdXVpZGAgaW4gT3BlbkFQSSBzcGVjLgotICoqdWxpZCoqIEFkZCBzdXBwb3J0IGZvciBbdWxpZF0oaHR0cHM6Ly9naXRodWIuY29tL2R5bGFuaGFydC91bGlkLXJzKS4gYFVsaWRgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdWxpZGAgaW4gT3BlbkFQSSBzcGVjLgotICoqdXJsKiogQWRkIHN1cHBvcnQgZm9yIFt1cmxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9ydXN0LXVybCkuIGBVcmxgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdXJpYCBpbiBPcGVuQVBJIHNwZWMuCi0gKipzbWFsbHZlYyoqIEFkZCBzdXBwb3J0IGZvciBbc21hbGx2ZWNdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9zbWFsbHZlYykuIGBTbWFsbFZlY2Agd2lsbCBiZSB0cmVhdGVkIGFzIGBWZWNgLgotICoqb3BlbmFwaV9leHRlbnNpb25zKiogQWRkcyB0cmFpdHMgYW5kIGZ1bmN0aW9ucyB0aGF0IHByb3ZpZGUgZXh0cmEgY29udmVuaWVuY2UgZnVuY3Rpb25zLgogIFNlZSB0aGUgW2ByZXF1ZXN0X2JvZHlgIGRvY3NdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9vcGVuYXBpL3JlcXVlc3RfYm9keSkgZm9yIGFuIGV4YW1wbGUuCi0gKipyZXByKiogQWRkIHN1cHBvcnQgZm9yIFtyZXByX3NlcmRlXShodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9zZXJkZS1yZXByKSdzIGByZXByKHUqKWAgYW5kIGByZXByKGkqKWAgYXR0cmlidXRlcyB0byB1bml0IHR5cGUgZW51bXMgZm9yCiAgQy1saWtlIGVudW0gcmVwcmVzZW50YXRpb24uIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqcHJlc2VydmVfb3JkZXIqKiBQcmVzZXJ2ZSBvcmRlciBvZiBwcm9wZXJ0aWVzIHdoZW4gc2VyaWFsaXppbmcgdGhlIHNjaGVtYSBmb3IgYSBjb21wb25lbnQuCiAgV2hlbiBlbmFibGVkLCB0aGUgcHJvcGVydGllcyBhcmUgbGlzdGVkIGluIG9yZGVyIG9mIGZpZWxkcyBpbiB0aGUgY29ycmVzcG9uZGluZyBzdHJ1Y3QgZGVmaW5pdGlvbi4KICBXaGVuIGRpc2FibGVkLCB0aGUgcHJvcGVydGllcyBhcmUgbGlzdGVkIGluIGFscGhhYmV0aWNhbCBvcmRlci4KLSAqKnByZXNlcnZlX3BhdGhfb3JkZXIqKiBQcmVzZXJ2ZSBvcmRlciBvZiBPcGVuQVBJIFBhdGhzIGFjY29yZGluZyB0byBvcmRlciB0aGV5IGhhdmUgYmVlbgogIGludHJvZHVjZWQgdG8gdGhlIGAjW29wZW5hcGkocGF0aHMoLi4uKSldYCBtYWNybyBhdHRyaWJ1dGUuIElmIGRpc2FibGVkIHRoZSBwYXRocyB3aWxsIGJlCiAgb3JkZXJlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIuCi0gKippbmRleG1hcCoqIEFkZCBzdXBwb3J0IGZvciBbaW5kZXhtYXBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9pbmRleG1hcCkuIFdoZW4gZW5hYmxlZCBgSW5kZXhNYXBgIHdpbGwgYmUgcmVuZGVyZWQgYXMgYSBtYXAgc2ltaWxhciB0bwogIGBCVHJlZU1hcGAgYW5kIGBIYXNoTWFwYC4KLSAqKm5vbl9zdHJpY3RfaW50ZWdlcnMqKiBBZGQgc3VwcG9ydCBmb3Igbm9uLXN0YW5kYXJkIGludGVnZXIgZm9ybWF0cyBgaW50OGAsIGBpbnQxNmAsIGB1aW50OGAsIGB1aW50MTZgLCBgdWludDMyYCwgYW5kIGB1aW50NjRgLgotICoqcmNfc2NoZW1hKiogQWRkIGBUb1NjaGVtYWAgc3VwcG9ydCBmb3IgYEFyYzxUPmAgYW5kIGBSYzxUPmAgdHlwZXMuICoqTm90ZSEqKiBzZXJkZSBgcmNgIGZlYXR1cmUgZmxhZyBtdXN0IGJlIGVuYWJsZWQgc2VwYXJhdGVseSB0byBhbGxvdyAKICBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgYEFyYzxUPmAgYW5kIGBSYzxUPmAgdHlwZXMuIFNlZSBtb3JlIGFib3V0IFtzZXJkZSBmZWF0dXJlIGZsYWdzXShodHRwczovL3NlcmRlLnJzL2ZlYXR1cmUtZmxhZ3MuaHRtbCkuCgpVdG9pcGEgaW1wbGljaXRseSBoYXMgcGFydGlhbCBzdXBwb3J0IGZvciBgc2VyZGVgIGF0dHJpYnV0ZXMuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sI3BhcnRpYWwtc2VyZGUtYXR0cmlidXRlcy1zdXBwb3J0KSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMgSW5zdGFsbAoKQWRkIG1pbmltYWwgZGVwZW5kZW5jeSBkZWNsYXJhdGlvbiB0byBDYXJnby50b21sLgoKYGBgdG9tbApbZGVwZW5kZW5jaWVzXQp1dG9pcGEgPSAiNCIKYGBgCgpUbyBlbmFibGUgbW9yZSBmZWF0dXJlcyBzdWNoIGFzIHVzZSBhY3RpeCBmcmFtZXdvcmsgZXh0cmFzIHlvdSBjb3VsZCBkZWZpbmUgdGhlCmRlcGVuZGVuY3kgYXMgZm9sbG93cy4KCmBgYHRvbWwKW2RlcGVuZGVuY2llc10KdXRvaXBhID0geyB2ZXJzaW9uID0gIjQiLCBmZWF0dXJlcyA9IFsiYWN0aXhfZXh0cmFzIl0gfQpgYGAKCioqTm90ZSEqKiBUbyB1c2UgYHV0b2lwYWAgdG9nZXRoZXIgd2l0aCBTd2FnZ2VyIFVJIHlvdSBjYW4gdXNlIHRoZSBbdXRvaXBhLXN3YWdnZXItdWldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEtc3dhZ2dlci11aS8pIGNyYXRlLgoKIyMgRXhhbXBsZXMKCkNyZWF0ZSBhIHN0cnVjdCwgb3IgaXQgY291bGQgYWxzbyBiZSBhbiBlbnVtLiBBZGQgYFRvU2NoZW1hYCBkZXJpdmUgbWFjcm8gdG8gaXQsIHNvIGl0IGNhbiBiZSByZWdpc3RlcmVkCmFzIGFuIE9wZW5BUEkgc2NoZW1hLgoKYGBgcnVzdAp1c2UgdXRvaXBhOjpUb1NjaGVtYTsKCiNbZGVyaXZlKFRvU2NoZW1hKV0Kc3RydWN0IFBldCB7CiAgIGlkOiB1NjQsCiAgIG5hbWU6IFN0cmluZywKICAgYWdlOiBPcHRpb248aTMyPiwKfQpgYGAKCkNyZWF0ZSBhIGhhbmRsZXIgdGhhdCB3b3VsZCBoYW5kbGUgeW91ciBidXNpbmVzcyBsb2dpYyBhbmQgYWRkIGBwYXRoYCBwcm9jIGF0dHJpYnV0ZSBtYWNybyBvdmVyIGl0LgoKYGBgcnVzdAptb2QgcGV0X2FwaSB7CiAgICAvLy8gR2V0IHBldCBieSBpZAogICAgLy8vCiAgICAvLy8gR2V0IHBldCBmcm9tIGRhdGFiYXNlIGJ5IHBldCBpZAogICAgI1t1dG9pcGE6OnBhdGgoCiAgICAgICAgZ2V0LAogICAgICAgIHBhdGggPSAiL3BldHMve2lkfSIsCiAgICAgICAgcmVzcG9uc2VzKAogICAgICAgICAgICAoc3RhdHVzID0gMjAwLCBkZXNjcmlwdGlvbiA9ICJQZXQgZm91bmQgc3VjY2VzZnVsbHkiLCBib2R5ID0gUGV0KSwKICAgICAgICAgICAgKHN0YXR1cyA9IE5PVF9GT1VORCwgZGVzY3JpcHRpb24gPSAiUGV0IHdhcyBub3QgZm91bmQiKQogICAgICAgICksCiAgICAgICAgcGFyYW1zKAogICAgICAgICAgICAoImlkIiA9IHU2NCwgUGF0aCwgZGVzY3JpcHRpb24gPSAiUGV0IGRhdGFiYXNlIGlkIHRvIGdldCBQZXQgZm9yIiksCiAgICAgICAgKQogICAgKV0KICAgIGFzeW5jIGZuIGdldF9wZXRfYnlfaWQocGV0X2lkOiB1NjQpIC0+IFBldCB7CiAgICAgICAgUGV0IHsKICAgICAgICAgICAgaWQ6IHBldF9pZCwKICAgICAgICAgICAgYWdlOiBOb25lLAogICAgICAgICAgICBuYW1lOiAibGlnaHRuaW5nIi50b19zdHJpbmcoKSwKICAgICAgICB9CiAgICB9Cn0KYGBgClV0b2lwYSBoYXMgc3VwcG9ydCBmb3IgW2h0dHBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9odHRwKSBgU3RhdHVzQ29kZWAgaW4gcmVzcG9uc2VzLgoKX1RoaXMgYXR0cmlidXRlIG1hY3JvIHdpbGwgY3JlYXRlIGFub3RoZXIgc3RydWN0IG5hbWVkIHdpdGggYF9fcGF0aF9gIHByZWZpeCArIGhhbmRsZXIgZnVuY3Rpb24gbmFtZS4KU28gd2hlbiB5b3UgaW1wbGVtZW50IGBzb21lX2hhbmRsZXJgIGZ1bmN0aW9uIGluIGRpZmZlcmVudCBmaWxlIGFuZCB3YW50IHRvIGV4cG9ydCB0aGlzLCBtYWtlIHN1cmUgYF9fcGF0aF9zb21lX2hhbmRsZXJgCmluIHRoZSBtb2R1bGUgY2FuIGFsc28gYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSByb290Ll8KClRpZSB0aGUgYFNjaGVtYWAgYW5kIHRoZSBlbmRwb2ludCBhYm92ZSB0byB0aGUgT3BlbkFQSSBzY2hlbWEgd2l0aCBmb2xsb3dpbmcgYE9wZW5BcGlgIGRlcml2ZSBwcm9jIG1hY3JvLgoKYGBgcnVzdAp1c2UgdXRvaXBhOjpPcGVuQXBpOwoKI1tkZXJpdmUoT3BlbkFwaSldCiNbb3BlbmFwaShwYXRocyhwZXRfYXBpOjpnZXRfcGV0X2J5X2lkKSwgY29tcG9uZW50cyhzY2hlbWFzKFBldCkpKV0Kc3RydWN0IEFwaURvYzsKCnByaW50bG4hKCJ7fSIsIEFwaURvYzo6b3BlbmFwaSgpLnRvX3ByZXR0eV9qc29uKCkudW53cmFwKCkpOwpgYGAKClRoaXMgd291bGQgcHJvZHVjZSBhcGkgZG9jIHNvbWV0aGluZyBzaW1pbGFyIHRvOgoKYGBganNvbgp7CiAgIm9wZW5hcGkiOiAiMy4wLjMiLAogICJpbmZvIjogewogICAgInRpdGxlIjogImFwcGxpY2F0aW9uIG5hbWUgZnJvbSBDYXJnby50b21sIiwKICAgICJkZXNjcmlwdGlvbiI6ICJkZXNjcmlwdGlvbiBmcm9tIENhcmdvLnRvbWwiLAogICAgImNvbnRhY3QiOiB7CiAgICAgICJuYW1lIjogImF1dGhvciBuYW1lIGZyb20gQ2FyZ28udG9tbCIsCiAgICAgICJlbWFpbCI6ICJhdXRob3IgZW1haWwgZnJvbSBDYXJnby50b21sIgogICAgfSwKICAgICJsaWNlbnNlIjogewogICAgICAibmFtZSI6ICJsaWNlbnNlIGZyb20gQ2FyZ28udG9tbCIKICAgIH0sCiAgICAidmVyc2lvbiI6ICJ2ZXJzaW9uIGZyb20gQ2FyZ28udG9tbCIKICB9LAogICJwYXRocyI6IHsKICAgICIvcGV0cy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJ0YWdzIjogWyJwZXRfYXBpIl0sCiAgICAgICAgInN1bW1hcnkiOiAiR2V0IHBldCBieSBpZCIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIkdldCBwZXQgYnkgaWRcblxuR2V0IHBldCBmcm9tIGRhdGFiYXNlIGJ5IHBldCBpZFxuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0X3BldF9ieV9pZCIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGV0IGRhdGFiYXNlIGlkIHRvIGdldCBQZXQgZm9yIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZSwKICAgICAgICAgICAgImRlcHJlY2F0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAuMCwKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQZXQgZm91bmQgc3VjY2VzZnVsbHkiLAogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1BldCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGV0IHdhcyBub3QgZm91bmQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiZGVwcmVjYXRlZCI6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJjb21wb25lbnRzIjogewogICAgInNjaGVtYXMiOiB7CiAgICAgICJQZXQiOiB7CiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicmVxdWlyZWQiOiBbImlkIiwgIm5hbWUiXSwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJmb3JtYXQiOiAiaW50NjQiLAogICAgICAgICAgICAibWluaW11bSI6IDAuMCwKICAgICAgICAgIH0sCiAgICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJhZ2UiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZm9ybWF0IjogImludDMyIiwKICAgICAgICAgICAgIm51bGxhYmxlIjogdHJ1ZSwKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgogIyMgTW9kaWZ5IE9wZW5BUEkgYXQgcnVudGltZQoKIFlvdSBjYW4gbW9kaWZ5IGdlbmVyYXRlZCBPcGVuQVBJIGF0IHJ1bnRpbWUgZWl0aGVyIHZpYSBnZW5lcmF0ZWQgdHlwZXMgZGlyZWN0bHkgb3IgdXNpbmcKIFtNb2RpZnldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS90cmFpdC5Nb2RpZnkuaHRtbCkgdHJhaXQuCgogX01vZGlmeSBnZW5lcmF0ZWQgT3BlbkFQSSB2aWEgdHlwZXMgZGlyZWN0bHkuXwogYGBgcnVzdAogI1tkZXJpdmUoT3BlbkFwaSldCiAjW29wZW5hcGkoCiAgICAgaW5mbyhkZXNjcmlwdGlvbiA9ICJNeSBBcGkgZGVzY3JpcHRpb24iKSwKICldCiBzdHJ1Y3QgQXBpRG9jOwoKIGxldCBtdXQgZG9jID0gQXBpRG9jOjpvcGVuYXBpKCk7CiBkb2MuaW5mby50aXRsZSA9IFN0cmluZzo6ZnJvbSgiTXkgQXBpIik7CiBgYGAKCiBfWW91IGNhbiBldmVuIGNvbnZlcnQgdGhlIGdlbmVyYXRlZCBbT3BlbkFwaV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL29wZW5hcGkvc3RydWN0Lk9wZW5BcGkuaHRtbCkgdG8gW09wZW5BcGlCdWlsZGVyXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvb3BlbmFwaS9zdHJ1Y3QuT3BlbkFwaUJ1aWxkZXIuaHRtbCkuXwogYGBgcnVzdAogbGV0IGJ1aWxkZXI6IE9wZW5BcGlCdWlsZGVyID0gQXBpRG9jOjpvcGVuYXBpKCkuaW50bygpOwogYGBgCgogU2VlIFtNb2RpZnldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS90cmFpdC5Nb2RpZnkuaHRtbCkgdHJhaXQgZm9yIGV4YW1wbGVzIG9uIGhvdyB0byBtb2RpZnkgZ2VuZXJhdGVkIE9wZW5BUEkgdmlhIGl0LgoKIyMgR28gYmV5b25kIHRoZSBzdXJmYWNlCgotIFNlZSBob3cgdG8gc2VydmUgT3BlbkFQSSBkb2MgdmlhIFN3YWdnZXIgVUkgY2hlY2sgW3V0b2lwYS1zd2FnZ2VyLXVpXShodHRwczovL2RvY3MucnMvdXRvaXBhLXN3YWdnZXItdWkvKSBjcmF0ZSBmb3IgbW9yZSBkZXRhaWxzLgotIEJyb3dzZSB0byBbZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL3RyZWUvbWFzdGVyL2V4YW1wbGVzKSBmb3IgbW9yZSBjb21wcmVoZW5zaXZlIGV4YW1wbGVzLgotIENoZWNrIFtJbnRvUmVzcG9uc2VzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLkludG9SZXNwb25zZXMuaHRtbCkgYW5kIFtUb1Jlc3BvbnNlXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvUmVzcG9uc2UuaHRtbCkgZm9yIGV4YW1wbGVzIG9uIGRlcml2aW5nIHJlc3BvbnNlcy4KLSBNb3JlIGFib3V0IE9wZW5BUEkgc2VjdXJpdHkgaW4gW3NlY3VyaXR5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9vcGVuYXBpL3NlY3VyaXR5L2luZGV4Lmh0bWwpLgotIER1bXAgZ2VuZXJhdGVkIEFQSSBkb2MgdG8gZmlsZSBhdCBidWlsZCB0aW1lLiBTZWUgW2lzc3VlIDIxNCBjb21tZW50XShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvMjE0I2lzc3VlY29tbWVudC0xMTc5NTg5MzczKS4KCiMjIEZBUQoKIyMjIFN3YWdnZXIgVUkgcmV0dXJucyA0MDQgTm90Rm91bmQgZnJvbSBidWlsdCBiaW5hcnkKClRoaXMgaXMgaGlnaGx5IHByb2JhYmx5IGR1ZSB0byBgUnVzdEVtYmVkYCBub3QgZW1iZWRkaW5nIHRoZSBTd2FnZ2VyIFVJIHRvIHRoZSBleGVjdXRhYmxlLiBUaGlzIGlzIG5hdHVyYWwgc2luY2UgdGhlIGBSdXN0RW1iZWRgCmxpYnJhcnkgKipkb2VzIG5vdCoqIGJ5IGRlZmF1bHQgZW1iZWQgZmlsZXMgb24gZGVidWcgYnVpbGRzLiBUbyBnZXQgYXJvdW5kIHRoaXMgeW91IGNhbiBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZy4KCjEuIEJ1aWxkIHlvdXIgZXhlY3V0YWJsZSBpbiBgLS1yZWxlYXNlYCBtb2RlCjIuIG9yIGFkZCBgZGVidWctZW1iZWRgIGZlYXR1cmUgZmxhZyB0byB5b3VyIGBDYXJnby50b21sYCBmb3IgYHV0b2lwYS1zd2FnZ2VyLXVpYC4gVGhpcyB3aWxsIGVuYWJsZSB0aGUgYGRlYnVnLWVtZWJlZGAgZmVhdHVyZSBmbGFnIGZvcgogICBgUnVzdEVtYmVkYCBhcyB3ZWxsLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzUyNyNpc3N1ZWNvbW1lbnQtMTQ3NDIxOTA5OCkgYW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvMjY4KS4KCkZpbmQgYHV0b2lwYS1zd2FnZ2VyLXVpYCBbZmVhdHVyZSBmbGFncyBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS90cmVlL21hc3Rlci91dG9pcGEtc3dhZ2dlci11aSNjcmF0ZS1mZWF0dXJlcykuCgoKIyMjIEhvdyB0byBpbXBsZW1lbnQgYFRvU2NoZW1hYCBmb3IgZXh0ZXJuYWwgdHlwZT8KClRoZXJlIGFyZSBmZXcgd2F5cyBhcm91bmQgdGhpcyB0aGF0IGFyZSBlbGFib3JhdGVkIFtoZXJlIGluIGRldGFpbF0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzc5MCNpc3N1ZWNvbW1lbnQtMTc4Nzc1NDE4NSkuCgojIyMgSG93IHRvIHVzZSBSdXN0J3MgdHlwZSBhbGlhc2VzPwoKQXQgdGhlIG1vbWVudCB0aGF0IGlzIG5vdCBwb3NzaWJsZSBkdWUgdG8gdGhlcmUgaXMgbm8gd2F5IHRvIGV2YWx1YXRlIHRoZSBhY3R1YWwgdHlwZSBiZWhpbmQgdGhlIHR5cGUgdG9rZW4gdGhhdCBpcyB2aXNpYmxlIHRvIHRoZSBwcm9jIG1hY3JvIGNvZGUgZ2VuZXJhdGlvbi4gClRoaXMgbWlnaHQgYmUgcG9zc2libGUgaW4gZnV0dXJlIGlmIGEgZ2xvYmFsIGFsaWFzIHJlZ2lzdHJ5IGNhbiBiZSBpbXBsZW1lbnRlZC4KCiMjIExpY2Vuc2UKCkxpY2Vuc2VkIHVuZGVyIGVpdGhlciBvZiBbQXBhY2hlIDIuMF0oTElDRU5TRS1BUEFDSEUpIG9yIFtNSVRdKExJQ0VOU0UtTUlUKSBsaWNlbnNlIGF0IHlvdXIgb3B0aW9uLgoKVW5sZXNzIHlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwgYW55IGNvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoaXMgY3JhdGUKYnkgeW91LCBzaGFsbCBiZSBkdWFsIGxpY2Vuc2VkLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCg== - readmeEtag: '"c85424043793fc42062d31fd8e34f3f599f3d092fd30afcaa7ccc0bd6d91b0f9"' - readmeLastModified: Fri, 03 Nov 2023 12:41:00 GMT + IyB1dG9pcGEgLSBBdXRvLWdlbmVyYXRlZCBPcGVuQVBJIGRvY3VtZW50YXRpb24KClshW1V0b2lwYSBidWlsZF0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvYWN0aW9ucy93b3JrZmxvd3MvYnVpbGQueWFtbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55YW1sKQpbIVtjcmF0ZXMuaW9dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvdXRvaXBhLnN2Zz9sYWJlbD1jcmF0ZXMuaW8mY29sb3I9b3JhbmdlJmxvZ289cnVzdCldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy91dG9pcGEpClshW2RvY3MucnNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vc3RhdGljL3YxP2xhYmVsPWRvY3MucnMmbWVzc2FnZT11dG9pcGEmY29sb3I9Ymx1ZSZsb2dvPWRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QnliMnhsUFNKcGJXY2lJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdkbWxsZDBKdmVEMGlNQ0F3SURVeE1pQTFNVElpUGp4d1lYUm9JR1pwYkd3OUlpTm1OV1kxWmpVaUlHUTlJazAwT0RndU5pQXlOVEF1TWt3ek9USWdNakUwVmpFd05TNDFZekF0TVRVdE9TNHpMVEk0TGpRdE1qTXVOQzB6TXk0M2JDMHhNREF0TXpjdU5XTXRPQzR4TFRNdU1TMHhOeTR4TFRNdU1TMHlOUzR6SURCc0xURXdNQ0F6Tnk0MVl5MHhOQzR4SURVdU15MHlNeTQwSURFNExqY3RNak11TkNBek15NDNWakl4Tkd3dE9UWXVOaUF6Tmk0eVF6a3VNeUF5TlRVdU5TQXdJREkyT0M0NUlEQWdNamd6TGpsV016azBZekFnTVRNdU5pQTNMamNnTWpZdU1TQXhPUzQ1SURNeUxqSnNNVEF3SURVd1l6RXdMakVnTlM0eElESXlMakVnTlM0eElETXlMaklnTUd3eE1ETXVPUzAxTWlBeE1ETXVPU0ExTW1NeE1DNHhJRFV1TVNBeU1pNHhJRFV1TVNBek1pNHlJREJzTVRBd0xUVXdZekV5TGpJdE5pNHhJREU1TGprdE1UZ3VOaUF4T1M0NUxUTXlMakpXTWpnekxqbGpNQzB4TlMwNUxqTXRNamd1TkMweU15NDBMVE16TGpkNlRUTTFPQ0F5TVRRdU9Hd3RPRFVnTXpFdU9YWXROamd1TW13NE5TMHpOM1kzTXk0emVrMHhOVFFnTVRBMExqRnNNVEF5TFRNNExqSWdNVEF5SURNNExqSjJMalpzTFRFd01pQTBNUzQwTFRFd01pMDBNUzQwZGkwdU5ucHRPRFFnTWpreExqRnNMVGcxSURReUxqVjJMVGM1TGpGc09EVXRNemd1T0hZM05TNDBlbTB3TFRFeE1td3RNVEF5SURReExqUXRNVEF5TFRReExqUjJMUzQyYkRFd01pMHpPQzR5SURFd01pQXpPQzR5ZGk0MmVtMHlOREFnTVRFeWJDMDROU0EwTWk0MWRpMDNPUzR4YkRnMUxUTTRMamgyTnpVdU5IcHRNQzB4TVRKc0xURXdNaUEwTVM0MExURXdNaTAwTVM0MGRpMHVObXd4TURJdE16Z3VNaUF4TURJZ016Z3VNbll1Tm5vaVBqd3ZjR0YwYUQ0OEwzTjJaejRLKV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhLykKIVtNU1JWXShodHRwczovL2ltZy5zaGllbGRzLmlvL3N0YXRpYy92MT9sYWJlbD1NU1JWJm1lc3NhZ2U9MS42MCUyQiZjb2xvcj1vcmFuZ2UmbG9nbz1ydXN0KQoKUHJvbm91bmNlZCAqKl8vanU6y4h0b8qKOmkucMmRL18qKiBvciAqKl8vanU6y4h0b8qKy4xhyaoucGnLiGXJqi9fKiogd2hhdGV2ZXIgd29ya3MgYmV0dGVyIGZvciB5b3UuCgpXYW50IHRvIGhhdmUgeW91ciBBUEkgZG9jdW1lbnRlZCB3aXRoIE9wZW5BUEk/IEJ1dCBkb24ndCB3YW50IHRvIGJlIGJvdGhlcmVkCndpdGggbWFudWFsIFlBTUwgb3IgSlNPTiB0d2Vha2luZz8gV291bGQgbGlrZSBpdCB0byBiZSBzbyBlYXN5IHRoYXQgaXQgd291bGQgYWxtb3N0CmJlIHV0b3BpYz8gRG9uJ3Qgd29ycnk6IHV0b2lwYSBpcyBoZXJlIHRvIGZpbGwgdGhpcyBnYXAuIEl0IGFpbXMgdG8gZG8sIGlmIG5vdCBhbGwsIHRoZW4KbW9zdCBvZiB0aGUgaGVhdnkgbGlmdGluZyBmb3IgeW91LCBlbmFibGluZyB5b3UgdG8gZm9jdXMgb24gd3JpdGluZyB0aGUgYWN0dWFsIEFQSSBsb2dpYyBpbnN0ZWFkIG9mCmRvY3VtZW50YXRpb24uIEl0IGFpbXMgdG8gYmUgX21pbmltYWxfLCBfc2ltcGxlXyBhbmQgX2Zhc3RfLiBJdCB1c2VzIHNpbXBsZSBgcHJvY2AgbWFjcm9zIHdoaWNoCnlvdSBjYW4gdXNlIHRvIGFubm90YXRlIHlvdXIgY29kZSB0byBoYXZlIGl0ZW1zIGRvY3VtZW50ZWQuCgpUaGUgYHV0b2lwYWAgY3JhdGUgcHJvdmlkZXMgYXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBkb2N1bWVudGF0aW9uIGZvciBSdXN0IFJFU1QgQVBJcy4gSXQgdHJlYXRzCmNvZGUtZmlyc3QgYXBwcm9hY2ggYXMgYSBmaXJzdCBjbGFzcyBjaXRpemVuIGFuZCBzaW1wbGlmaWVzIEFQSSBkb2N1bWVudGF0aW9uIGJ5IHByb3ZpZGluZwpzaW1wbGUgbWFjcm9zIGZvciBnZW5lcmF0aW5nIHRoZSBkb2N1bWVudGF0aW9uIGZyb20geW91ciBjb2RlLgoKSXQgYWxzbyBjb250YWlucyBSdXN0IHR5cGVzIG9mIHRoZSBPcGVuQVBJIHNwZWMsIGFsbG93aW5nIHlvdSB0byB3cml0ZSB0aGUgT3BlbkFQSSBzcGVjIG9ubHkgdXNpbmcKUnVzdCBpZiBhdXRvIGdlbmVyYXRpb24gaXMgbm90IHlvdXIgZmxhdm9yIG9yIGRvZXMgbm90IGZpdCB5b3VyIHB1cnBvc2UuCgpMb25nIHRlcm0gZ29hbCBvZiB0aGUgbGlicmFyeSBpcyB0byBiZSB0aGUgcGxhY2UgdG8gZ28gd2hlbiBPcGVuQVBJIGRvY3VtZW50YXRpb24gaXMgbmVlZGVkIGluIGFueSBSdXN0CmNvZGViYXNlLgoKVXRvaXBhIGlzIGZyYW1ld29yay1hZ25vc3RpYywgYW5kIGNvdWxkIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhbnkgd2ViIGZyYW1ld29yaywgb3IgZXZlbiB3aXRob3V0IG9uZS4gV2hpbGUKYmVpbmcgcG9ydGFibGUgYW5kIHN0YW5kYWxvbmUsIG9uZSBvZiBpdHMga2V5IGFzcGVjdHMgaXMgc2ltcGxlIGludGVncmF0aW9uIHdpdGggd2ViIGZyYW1ld29ya3MuCgojIyBDaG9vc2UgeW91ciBmbGF2b3IgYW5kIGRvY3VtZW50IHlvdXIgQVBJIHdpdGggaWNlLWNvbGQgSVBBCgpSZWZlciB0byB0aGUgZXhpc3RpbmcgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb3IgYnVpbGRpbmcgdGhlICJ0b2RvIiBhcHAgaW4gdGhlIGZvbGxvd2luZyBmcmFtZXdvcmtzOgoKLSAqKlthY3RpeC13ZWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hY3RpeC9hY3RpeC13ZWIpKioKLSAqKltheHVtXShodHRwczovL2dpdGh1Yi5jb20vdG9raW8tcnMvYXh1bSkqKgotICoqW3dhcnBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWFubW9uc3Rhci93YXJwKSoqCi0gKipbdGlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2h0dHAtcnMvdGlkZSkqKgotICoqW3JvY2tldF0oaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovUm9ja2V0KSoqIChgMC40YCBhbmQgYDAuNS4wLXJjM2ApCgpBbGwgZXhhbXBsZXMgaW5jbHVkZSBhIFtTd2FnZ2VyLVVJXShodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci11aSkgdW5sZXNzIHN0YXRlZCBvdGhlcndpc2UuCgpUaGVyZSBhcmUgYWxzbyBleGFtcGxlcyBvZiBidWlsZGluZyBtdWx0aXBsZSBPcGVuQVBJIGRvY3MgaW4gb25lIGFwcGxpY2F0aW9uLCBlYWNoIHNlcGFyYXRlZCBpbiBTd2FnZ2VyIFVJLgpUaGVzZSBleGFtcGxlcyBleGlzdCBvbmx5IGZvciB0aGUgKiphY3RpeCoqIGFuZCAqKndhcnAqKiBmcmFtZXdvcmtzLgoKRXZlbiBpZiB0aGVyZSBpcyBubyBleGFtcGxlIGZvciB5b3VyIGZhdm91cml0ZSBmcmFtZXdvcmssIGB1dG9pcGFgIGNhbiBiZSB1c2VkIHdpdGggYW55CndlYiBmcmFtZXdvcmsgd2hpY2ggc3VwcG9ydHMgZGVjb3JhdGluZyBmdW5jdGlvbnMgd2l0aCBtYWNyb3Mgc2ltaWxhcmx5IHRvIHRoZSAqKndhcnAqKiBhbmQgKip0aWRlKiogZXhhbXBsZXMuCgojIyMgQ29tbXVuaXR5IGV4YW1wbGVzCgotICoqW2dyYXBodWxdKGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHVsLXJzL2dyYXBodWwvdHJlZS9tYWluL2V4YW1wbGVzL3V0b2lwYS1zd2FnZ2VyLXVpKSoqCi0gKipbc2Fsdm9dKGh0dHBzOi8vZ2l0aHViLmNvbS9zYWx2by1ycy9zYWx2by90cmVlL21haW4vZXhhbXBsZXMvdG9kb3Mtb3BlbmFwaSkqKgotICoqW3Zpel0oaHR0cHM6Ly9naXRodWIuY29tL3Zpei1ycy92aXovdHJlZS9tYWluL2V4YW1wbGVzL3JvdXRpbmcvb3BlbmFwaSkqKgotICoqW250ZXhdKGh0dHBzOi8vZ2l0aHViLmNvbS9sZW9uM3MvbnRleC1yZXN0LWFwaS1leGFtcGxlKSoqCgojIyBXaGF0J3MgdXAgd2l0aCB0aGUgd29yZCBwbGF5PwoKVGhlIG5hbWUgY29tZXMgZnJvbSB0aGUgd29yZHMgYHV0b3BpY2AgYW5kIGBhcGlgIHdoZXJlIGB1dG9gIGFyZSB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiBfdXRvcGljXwphbmQgdGhlIGBpcGFgIGlzIF9hcGlfIHJldmVyc2VkLiBBYWFuZC4uLiBgaXBhYCBpcyBhbHNvIGFuIGF3ZXNvbWUgdHlwZSBvZiBiZWVyIDpiZWVyOi4KCiMjIENyYXRlIEZlYXR1cmVzCgotICoqeWFtbCoqIEVuYWJsZXMgKipzZXJkZV95YW1sKiogc2VyaWFsaXphdGlvbiBvZiBPcGVuQVBJIG9iamVjdHMuCi0gKiphY3RpeF9leHRyYXMqKiBFbmhhbmNlcyBbYWN0aXgtd2ViXShodHRwczovL2dpdGh1Yi5jb20vYWN0aXgvYWN0aXgtd2ViLykgaW50ZWdyYXRpb24gd2l0aCBiZWluZyBhYmxlIHRvCiAgcGFyc2UgYHBhdGhgLCBgcGF0aGAgYW5kIGBxdWVyeWAgcGFyYW1ldGVycyBmcm9tIGFjdGl4IHdlYiBwYXRoIGF0dHJpYnV0ZSBtYWNyb3MuIFNlZQogIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvYXR0ci5wYXRoLmh0bWwjYWN0aXhfZXh0cmFzLXN1cHBvcnQtZm9yLWFjdGl4LXdlYikgb3IgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqcm9ja2V0X2V4dHJhcyoqIEVuaGFuY2VzIFtyb2NrZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L1JvY2tldCkgZnJhbWV3b3JrIGludGVncmF0aW9uIHdpdGggYmVpbmcKICBhYmxlIHRvIHBhcnNlIGBwYXRoYCwgYHBhdGhgIGFuZCBgcXVlcnlgIHBhcmFtZXRlcnMgZnJvbSByb2NrZXQgcGF0aCBhdHRyaWJ1dGUgbWFjcm9zLiBTZWUgW2RvY3NdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9hdHRyLnBhdGguaHRtbCNyb2NrZXRfZXh0cmFzLXN1cHBvcnQtZm9yLXJvY2tldCkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipheHVtX2V4dHJhcyoqIEVuaGFuY2VzIFtheHVtXShodHRwczovL2dpdGh1Yi5jb20vdG9raW8tcnMvYXh1bSkgZnJhbWV3b3JrIGludGVncmF0aW9uIGFsbG93aW5nIHVzZXJzIHRvIHVzZSBgSW50b1BhcmFtc2Agd2l0aG91dAogIGRlZmluaW5nIHRoZSBgcGFyYW1ldGVyX2luYCBhdHRyaWJ1dGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2F0dHIucGF0aC5odG1sI2F4dW1fZXh0cmFzLWZlYXR1cmUtc3VwcG9ydC1mb3ItYXh1bSkKICBvciBbZXhhbXBsZXNdKC4vZXhhbXBsZXMpIGZvciBtb3JlIGRldGFpbHMuCi0gKipkZWJ1ZyoqIEFkZCBleHRyYSB0cmFpdHMgc3VjaCBhcyBkZWJ1ZyB0cmFpdHMgdG8gb3BlbmFwaSBkZWZpbml0aW9ucyBhbmQgZWxzZXdoZXJlLgotICoqY2hyb25vKiogQWRkIHN1cHBvcnQgZm9yIFtjaHJvbm9dKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9jaHJvbm8pIGBEYXRlVGltZWAsIGBEYXRlYCwgYE5haXZlRGF0ZWAsIGBOYWl2ZURhdGVUaW1lYCwgYE5haXZlVGltZWAgYW5kIGBEdXJhdGlvbmAKICB0eXBlcy4gQnkgZGVmYXVsdCB0aGVzZSB0eXBlcyBhcmUgcGFyc2VkIHRvIGBzdHJpbmdgIHR5cGVzIHdpdGggYWRkaXRpb25hbCBgZm9ybWF0YCBpbmZvcm1hdGlvbi4KICBgZm9ybWF0OiBkYXRlLXRpbWVgIGZvciBgRGF0ZVRpbWVgIGFuZCBgTmFpdmVEYXRlVGltZWAgYW5kIGBmb3JtYXQ6IGRhdGVgIGZvciBgRGF0ZWAgYW5kIGBOYWl2ZURhdGVgIGFjY29yZGluZwogIFtSRkMzMzM5XShodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMzMzOSNzZWN0aW9uLTUuNikgYXMgYElTTy04NjAxYC4gVG8KICBvdmVycmlkZSBkZWZhdWx0IGBzdHJpbmdgIHJlcHJlc2VudGF0aW9uIHVzZXJzIGhhdmUgdG8gdXNlIGB2YWx1ZV90eXBlYCBhdHRyaWJ1dGUgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIFtkb2NzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvU2NoZW1hLmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCi0gKip0aW1lKiogQWRkIHN1cHBvcnQgZm9yIFt0aW1lXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdGltZSkgYE9mZnNldERhdGVUaW1lYCwgYFByaW1pdGl2ZURhdGVUaW1lYCwgYERhdGVgLCBhbmQgYER1cmF0aW9uYCB0eXBlcy4KICBCeSBkZWZhdWx0IHRoZXNlIHR5cGVzIGFyZSBwYXJzZWQgYXMgYHN0cmluZ2AuIGBPZmZzZXREYXRlVGltZWAgYW5kIGBQcmltaXRpdmVEYXRlVGltZWAgd2lsbCB1c2UgYGRhdGUtdGltZWAgZm9ybWF0LiBgRGF0ZWAgd2lsbCB1c2UKICBgZGF0ZWAgZm9ybWF0IGFuZCBgRHVyYXRpb25gIHdpbGwgbm90IGhhdmUgYW55IGZvcm1hdC4gVG8gb3ZlcnJpZGUgZGVmYXVsdCBgc3RyaW5nYCByZXByZXNlbnRhdGlvbiB1c2VycyBoYXZlIHRvIHVzZSBgdmFsdWVfdHlwZWAgYXR0cmlidXRlCiAgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqZGVjaW1hbCoqIEFkZCBzdXBwb3J0IGZvciBbcnVzdF9kZWNpbWFsXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdF9kZWNpbWFsKSBgRGVjaW1hbGAgdHlwZS4gKipCeSBkZWZhdWx0KioKICBpdCBpcyBpbnRlcnByZXRlZCBhcyBgU3RyaW5nYC4gSWYgeW91IHdpc2ggdG8gY2hhbmdlIHRoZSBmb3JtYXQgeW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhlIHR5cGUuCiAgU2VlIHRoZSBgdmFsdWVfdHlwZWAgaW4gW2NvbXBvbmVudCBkZXJpdmUgZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKS4KLSAqKmRlY2ltYWxfZmxvYXQqKiBBZGQgc3VwcG9ydCBmb3IgW3J1c3RfZGVjaW1hbF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RfZGVjaW1hbCkgYERlY2ltYWxgIHR5cGUuICoqQnkgZGVmYXVsdCoqCiAgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYE51bWJlcmAuIFRoaXMgZmVhdHVyZSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCAqKmRlY2ltYWwqKiBhbmQgYWxsb3cgdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHR5cGUgdXNlZCBpbiB5b3VyIAogIGRvY3VtZW50YXRpb24gZm9yIGBEZWNpbWFsYCBtdWNoIGxpa2UgYHNlcmRlX3dpdGhfZmxvYXRgIGZlYXR1cmUgZXhwb3NlZCBieSBydXN0X2RlY2ltYWwuCi0gKip1dWlkKiogQWRkIHN1cHBvcnQgZm9yIFt1dWlkXShodHRwczovL2dpdGh1Yi5jb20vdXVpZC1ycy91dWlkKS4gYFV1aWRgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdXVpZGAgaW4gT3BlbkFQSSBzcGVjLgotICoqdWxpZCoqIEFkZCBzdXBwb3J0IGZvciBbdWxpZF0oaHR0cHM6Ly9naXRodWIuY29tL2R5bGFuaGFydC91bGlkLXJzKS4gYFVsaWRgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdWxpZGAgaW4gT3BlbkFQSSBzcGVjLgotICoqdXJsKiogQWRkIHN1cHBvcnQgZm9yIFt1cmxdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9ydXN0LXVybCkuIGBVcmxgIHR5cGUgd2lsbCBiZSBwcmVzZW50ZWQgYXMgYFN0cmluZ2Agd2l0aAogIGZvcm1hdCBgdXJpYCBpbiBPcGVuQVBJIHNwZWMuCi0gKipzbWFsbHZlYyoqIEFkZCBzdXBwb3J0IGZvciBbc21hbGx2ZWNdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9zbWFsbHZlYykuIGBTbWFsbFZlY2Agd2lsbCBiZSB0cmVhdGVkIGFzIGBWZWNgLgotICoqb3BlbmFwaV9leHRlbnNpb25zKiogQWRkcyB0cmFpdHMgYW5kIGZ1bmN0aW9ucyB0aGF0IHByb3ZpZGUgZXh0cmEgY29udmVuaWVuY2UgZnVuY3Rpb25zLgogIFNlZSB0aGUgW2ByZXF1ZXN0X2JvZHlgIGRvY3NdKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9vcGVuYXBpL3JlcXVlc3RfYm9keSkgZm9yIGFuIGV4YW1wbGUuCi0gKipyZXByKiogQWRkIHN1cHBvcnQgZm9yIFtyZXByX3NlcmRlXShodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9zZXJkZS1yZXByKSdzIGByZXByKHUqKWAgYW5kIGByZXByKGkqKWAgYXR0cmlidXRlcyB0byB1bml0IHR5cGUgZW51bXMgZm9yCiAgQy1saWtlIGVudW0gcmVwcmVzZW50YXRpb24uIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sKSBmb3IgbW9yZSBkZXRhaWxzLgotICoqcHJlc2VydmVfb3JkZXIqKiBQcmVzZXJ2ZSBvcmRlciBvZiBwcm9wZXJ0aWVzIHdoZW4gc2VyaWFsaXppbmcgdGhlIHNjaGVtYSBmb3IgYSBjb21wb25lbnQuCiAgV2hlbiBlbmFibGVkLCB0aGUgcHJvcGVydGllcyBhcmUgbGlzdGVkIGluIG9yZGVyIG9mIGZpZWxkcyBpbiB0aGUgY29ycmVzcG9uZGluZyBzdHJ1Y3QgZGVmaW5pdGlvbi4KICBXaGVuIGRpc2FibGVkLCB0aGUgcHJvcGVydGllcyBhcmUgbGlzdGVkIGluIGFscGhhYmV0aWNhbCBvcmRlci4KLSAqKnByZXNlcnZlX3BhdGhfb3JkZXIqKiBQcmVzZXJ2ZSBvcmRlciBvZiBPcGVuQVBJIFBhdGhzIGFjY29yZGluZyB0byBvcmRlciB0aGV5IGhhdmUgYmVlbgogIGludHJvZHVjZWQgdG8gdGhlIGAjW29wZW5hcGkocGF0aHMoLi4uKSldYCBtYWNybyBhdHRyaWJ1dGUuIElmIGRpc2FibGVkIHRoZSBwYXRocyB3aWxsIGJlCiAgb3JkZXJlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIuCi0gKippbmRleG1hcCoqIEFkZCBzdXBwb3J0IGZvciBbaW5kZXhtYXBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9pbmRleG1hcCkuIFdoZW4gZW5hYmxlZCBgSW5kZXhNYXBgIHdpbGwgYmUgcmVuZGVyZWQgYXMgYSBtYXAgc2ltaWxhciB0bwogIGBCVHJlZU1hcGAgYW5kIGBIYXNoTWFwYC4KLSAqKm5vbl9zdHJpY3RfaW50ZWdlcnMqKiBBZGQgc3VwcG9ydCBmb3Igbm9uLXN0YW5kYXJkIGludGVnZXIgZm9ybWF0cyBgaW50OGAsIGBpbnQxNmAsIGB1aW50OGAsIGB1aW50MTZgLCBgdWludDMyYCwgYW5kIGB1aW50NjRgLgotICoqcmNfc2NoZW1hKiogQWRkIGBUb1NjaGVtYWAgc3VwcG9ydCBmb3IgYEFyYzxUPmAgYW5kIGBSYzxUPmAgdHlwZXMuICoqTm90ZSEqKiBzZXJkZSBgcmNgIGZlYXR1cmUgZmxhZyBtdXN0IGJlIGVuYWJsZWQgc2VwYXJhdGVseSB0byBhbGxvdyAKICBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gb2YgYEFyYzxUPmAgYW5kIGBSYzxUPmAgdHlwZXMuIFNlZSBtb3JlIGFib3V0IFtzZXJkZSBmZWF0dXJlIGZsYWdzXShodHRwczovL3NlcmRlLnJzL2ZlYXR1cmUtZmxhZ3MuaHRtbCkuCgpVdG9pcGEgaW1wbGljaXRseSBoYXMgcGFydGlhbCBzdXBwb3J0IGZvciBgc2VyZGVgIGF0dHJpYnV0ZXMuIFNlZSBbZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL2Rlcml2ZS5Ub1NjaGVtYS5odG1sI3BhcnRpYWwtc2VyZGUtYXR0cmlidXRlcy1zdXBwb3J0KSBmb3IgbW9yZSBkZXRhaWxzLgoKIyMgSW5zdGFsbAoKQWRkIG1pbmltYWwgZGVwZW5kZW5jeSBkZWNsYXJhdGlvbiB0byBDYXJnby50b21sLgoKYGBgdG9tbApbZGVwZW5kZW5jaWVzXQp1dG9pcGEgPSAiNCIKYGBgCgpUbyBlbmFibGUgbW9yZSBmZWF0dXJlcyBzdWNoIGFzIHVzZSBhY3RpeCBmcmFtZXdvcmsgZXh0cmFzIHlvdSBjb3VsZCBkZWZpbmUgdGhlCmRlcGVuZGVuY3kgYXMgZm9sbG93cy4KCmBgYHRvbWwKW2RlcGVuZGVuY2llc10KdXRvaXBhID0geyB2ZXJzaW9uID0gIjQiLCBmZWF0dXJlcyA9IFsiYWN0aXhfZXh0cmFzIl0gfQpgYGAKCioqTm90ZSEqKiBUbyB1c2UgYHV0b2lwYWAgdG9nZXRoZXIgd2l0aCBTd2FnZ2VyIFVJIHlvdSBjYW4gdXNlIHRoZSBbdXRvaXBhLXN3YWdnZXItdWldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEtc3dhZ2dlci11aS8pIGNyYXRlLgoKIyMgRXhhbXBsZXMKCkNyZWF0ZSBhIHN0cnVjdCwgb3IgaXQgY291bGQgYWxzbyBiZSBhbiBlbnVtLiBBZGQgYFRvU2NoZW1hYCBkZXJpdmUgbWFjcm8gdG8gaXQsIHNvIGl0IGNhbiBiZSByZWdpc3RlcmVkCmFzIGFuIE9wZW5BUEkgc2NoZW1hLgoKYGBgcnVzdAp1c2UgdXRvaXBhOjpUb1NjaGVtYTsKCiNbZGVyaXZlKFRvU2NoZW1hKV0Kc3RydWN0IFBldCB7CiAgIGlkOiB1NjQsCiAgIG5hbWU6IFN0cmluZywKICAgYWdlOiBPcHRpb248aTMyPiwKfQpgYGAKCkNyZWF0ZSBhIGhhbmRsZXIgdGhhdCB3b3VsZCBoYW5kbGUgeW91ciBidXNpbmVzcyBsb2dpYyBhbmQgYWRkIGBwYXRoYCBwcm9jIGF0dHJpYnV0ZSBtYWNybyBvdmVyIGl0LgoKYGBgcnVzdAptb2QgcGV0X2FwaSB7CiAgICAvLy8gR2V0IHBldCBieSBpZAogICAgLy8vCiAgICAvLy8gR2V0IHBldCBmcm9tIGRhdGFiYXNlIGJ5IHBldCBpZAogICAgI1t1dG9pcGE6OnBhdGgoCiAgICAgICAgZ2V0LAogICAgICAgIHBhdGggPSAiL3BldHMve2lkfSIsCiAgICAgICAgcmVzcG9uc2VzKAogICAgICAgICAgICAoc3RhdHVzID0gMjAwLCBkZXNjcmlwdGlvbiA9ICJQZXQgZm91bmQgc3VjY2VzZnVsbHkiLCBib2R5ID0gUGV0KSwKICAgICAgICAgICAgKHN0YXR1cyA9IE5PVF9GT1VORCwgZGVzY3JpcHRpb24gPSAiUGV0IHdhcyBub3QgZm91bmQiKQogICAgICAgICksCiAgICAgICAgcGFyYW1zKAogICAgICAgICAgICAoImlkIiA9IHU2NCwgUGF0aCwgZGVzY3JpcHRpb24gPSAiUGV0IGRhdGFiYXNlIGlkIHRvIGdldCBQZXQgZm9yIiksCiAgICAgICAgKQogICAgKV0KICAgIGFzeW5jIGZuIGdldF9wZXRfYnlfaWQocGV0X2lkOiB1NjQpIC0+IFBldCB7CiAgICAgICAgUGV0IHsKICAgICAgICAgICAgaWQ6IHBldF9pZCwKICAgICAgICAgICAgYWdlOiBOb25lLAogICAgICAgICAgICBuYW1lOiAibGlnaHRuaW5nIi50b19zdHJpbmcoKSwKICAgICAgICB9CiAgICB9Cn0KYGBgClV0b2lwYSBoYXMgc3VwcG9ydCBmb3IgW2h0dHBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9odHRwKSBgU3RhdHVzQ29kZWAgaW4gcmVzcG9uc2VzLgoKX1RoaXMgYXR0cmlidXRlIG1hY3JvIHdpbGwgY3JlYXRlIGFub3RoZXIgc3RydWN0IG5hbWVkIHdpdGggYF9fcGF0aF9gIHByZWZpeCArIGhhbmRsZXIgZnVuY3Rpb24gbmFtZS4KU28gd2hlbiB5b3UgaW1wbGVtZW50IGBzb21lX2hhbmRsZXJgIGZ1bmN0aW9uIGluIGRpZmZlcmVudCBmaWxlIGFuZCB3YW50IHRvIGV4cG9ydCB0aGlzLCBtYWtlIHN1cmUgYF9fcGF0aF9zb21lX2hhbmRsZXJgCmluIHRoZSBtb2R1bGUgY2FuIGFsc28gYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSByb290Ll8KClRpZSB0aGUgYFNjaGVtYWAgYW5kIHRoZSBlbmRwb2ludCBhYm92ZSB0byB0aGUgT3BlbkFQSSBzY2hlbWEgd2l0aCBmb2xsb3dpbmcgYE9wZW5BcGlgIGRlcml2ZSBwcm9jIG1hY3JvLgoKYGBgcnVzdAp1c2UgdXRvaXBhOjpPcGVuQXBpOwoKI1tkZXJpdmUoT3BlbkFwaSldCiNbb3BlbmFwaShwYXRocyhwZXRfYXBpOjpnZXRfcGV0X2J5X2lkKSwgY29tcG9uZW50cyhzY2hlbWFzKFBldCkpKV0Kc3RydWN0IEFwaURvYzsKCnByaW50bG4hKCJ7fSIsIEFwaURvYzo6b3BlbmFwaSgpLnRvX3ByZXR0eV9qc29uKCkudW53cmFwKCkpOwpgYGAKClRoaXMgd291bGQgcHJvZHVjZSBhcGkgZG9jIHNvbWV0aGluZyBzaW1pbGFyIHRvOgoKYGBganNvbgp7CiAgIm9wZW5hcGkiOiAiMy4wLjMiLAogICJpbmZvIjogewogICAgInRpdGxlIjogImFwcGxpY2F0aW9uIG5hbWUgZnJvbSBDYXJnby50b21sIiwKICAgICJkZXNjcmlwdGlvbiI6ICJkZXNjcmlwdGlvbiBmcm9tIENhcmdvLnRvbWwiLAogICAgImNvbnRhY3QiOiB7CiAgICAgICJuYW1lIjogImF1dGhvciBuYW1lIGZyb20gQ2FyZ28udG9tbCIsCiAgICAgICJlbWFpbCI6ICJhdXRob3IgZW1haWwgZnJvbSBDYXJnby50b21sIgogICAgfSwKICAgICJsaWNlbnNlIjogewogICAgICAibmFtZSI6ICJsaWNlbnNlIGZyb20gQ2FyZ28udG9tbCIKICAgIH0sCiAgICAidmVyc2lvbiI6ICJ2ZXJzaW9uIGZyb20gQ2FyZ28udG9tbCIKICB9LAogICJwYXRocyI6IHsKICAgICIvcGV0cy97aWR9IjogewogICAgICAiZ2V0IjogewogICAgICAgICJ0YWdzIjogWyJwZXRfYXBpIl0sCiAgICAgICAgInN1bW1hcnkiOiAiR2V0IHBldCBieSBpZCIsCiAgICAgICAgImRlc2NyaXB0aW9uIjogIkdldCBwZXQgYnkgaWRcblxuR2V0IHBldCBmcm9tIGRhdGFiYXNlIGJ5IHBldCBpZFxuIiwKICAgICAgICAib3BlcmF0aW9uSWQiOiAiZ2V0X3BldF9ieV9pZCIsCiAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImlkIiwKICAgICAgICAgICAgImluIjogInBhdGgiLAogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGV0IGRhdGFiYXNlIGlkIHRvIGdldCBQZXQgZm9yIiwKICAgICAgICAgICAgInJlcXVpcmVkIjogdHJ1ZSwKICAgICAgICAgICAgImRlcHJlY2F0ZWQiOiBmYWxzZSwKICAgICAgICAgICAgInNjaGVtYSI6IHsKICAgICAgICAgICAgICAidHlwZSI6ICJpbnRlZ2VyIiwKICAgICAgICAgICAgICAiZm9ybWF0IjogImludDY0IiwKICAgICAgICAgICAgICAibWluaW11bSI6IDAuMCwKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInJlc3BvbnNlcyI6IHsKICAgICAgICAgICIyMDAiOiB7CiAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQZXQgZm91bmQgc3VjY2VzZnVsbHkiLAogICAgICAgICAgICAiY29udGVudCI6IHsKICAgICAgICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6IHsKICAgICAgICAgICAgICAgICJzY2hlbWEiOiB7CiAgICAgICAgICAgICAgICAgICIkcmVmIjogIiMvY29tcG9uZW50cy9zY2hlbWFzL1BldCIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiNDA0IjogewogICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGV0IHdhcyBub3QgZm91bmQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAiZGVwcmVjYXRlZCI6IGZhbHNlCiAgICAgIH0KICAgIH0KICB9LAogICJjb21wb25lbnRzIjogewogICAgInNjaGVtYXMiOiB7CiAgICAgICJQZXQiOiB7CiAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAicmVxdWlyZWQiOiBbImlkIiwgIm5hbWUiXSwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICJpZCI6IHsKICAgICAgICAgICAgInR5cGUiOiAiaW50ZWdlciIsCiAgICAgICAgICAgICJmb3JtYXQiOiAiaW50NjQiLAogICAgICAgICAgICAibWluaW11bSI6IDAuMCwKICAgICAgICAgIH0sCiAgICAgICAgICAibmFtZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgfSwKICAgICAgICAgICJhZ2UiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImludGVnZXIiLAogICAgICAgICAgICAiZm9ybWF0IjogImludDMyIiwKICAgICAgICAgICAgIm51bGxhYmxlIjogdHJ1ZSwKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KYGBgCgogIyMgTW9kaWZ5IE9wZW5BUEkgYXQgcnVudGltZQoKIFlvdSBjYW4gbW9kaWZ5IGdlbmVyYXRlZCBPcGVuQVBJIGF0IHJ1bnRpbWUgZWl0aGVyIHZpYSBnZW5lcmF0ZWQgdHlwZXMgZGlyZWN0bHkgb3IgdXNpbmcKIFtNb2RpZnldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS90cmFpdC5Nb2RpZnkuaHRtbCkgdHJhaXQuCgogX01vZGlmeSBnZW5lcmF0ZWQgT3BlbkFQSSB2aWEgdHlwZXMgZGlyZWN0bHkuXwogYGBgcnVzdAogI1tkZXJpdmUoT3BlbkFwaSldCiAjW29wZW5hcGkoCiAgICAgaW5mbyhkZXNjcmlwdGlvbiA9ICJNeSBBcGkgZGVzY3JpcHRpb24iKSwKICldCiBzdHJ1Y3QgQXBpRG9jOwoKIGxldCBtdXQgZG9jID0gQXBpRG9jOjpvcGVuYXBpKCk7CiBkb2MuaW5mby50aXRsZSA9IFN0cmluZzo6ZnJvbSgiTXkgQXBpIik7CiBgYGAKCiBfWW91IGNhbiBldmVuIGNvbnZlcnQgdGhlIGdlbmVyYXRlZCBbT3BlbkFwaV0oaHR0cHM6Ly9kb2NzLnJzL3V0b2lwYS9sYXRlc3QvdXRvaXBhL29wZW5hcGkvc3RydWN0Lk9wZW5BcGkuaHRtbCkgdG8gW09wZW5BcGlCdWlsZGVyXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvb3BlbmFwaS9zdHJ1Y3QuT3BlbkFwaUJ1aWxkZXIuaHRtbCkuXwogYGBgcnVzdAogbGV0IGJ1aWxkZXI6IE9wZW5BcGlCdWlsZGVyID0gQXBpRG9jOjpvcGVuYXBpKCkuaW50bygpOwogYGBgCgogU2VlIFtNb2RpZnldKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS90cmFpdC5Nb2RpZnkuaHRtbCkgdHJhaXQgZm9yIGV4YW1wbGVzIG9uIGhvdyB0byBtb2RpZnkgZ2VuZXJhdGVkIE9wZW5BUEkgdmlhIGl0LgoKIyMgR28gYmV5b25kIHRoZSBzdXJmYWNlCgotIFNlZSBob3cgdG8gc2VydmUgT3BlbkFQSSBkb2MgdmlhIFN3YWdnZXIgVUkgY2hlY2sgW3V0b2lwYS1zd2FnZ2VyLXVpXShodHRwczovL2RvY3MucnMvdXRvaXBhLXN3YWdnZXItdWkvKSBjcmF0ZSBmb3IgbW9yZSBkZXRhaWxzLgotIEJyb3dzZSB0byBbZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9qdWhha3UvdXRvaXBhL3RyZWUvbWFzdGVyL2V4YW1wbGVzKSBmb3IgbW9yZSBjb21wcmVoZW5zaXZlIGV4YW1wbGVzLgotIENoZWNrIFtJbnRvUmVzcG9uc2VzXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLkludG9SZXNwb25zZXMuaHRtbCkgYW5kIFtUb1Jlc3BvbnNlXShodHRwczovL2RvY3MucnMvdXRvaXBhL2xhdGVzdC91dG9pcGEvZGVyaXZlLlRvUmVzcG9uc2UuaHRtbCkgZm9yIGV4YW1wbGVzIG9uIGRlcml2aW5nIHJlc3BvbnNlcy4KLSBNb3JlIGFib3V0IE9wZW5BUEkgc2VjdXJpdHkgaW4gW3NlY3VyaXR5IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5ycy91dG9pcGEvbGF0ZXN0L3V0b2lwYS9vcGVuYXBpL3NlY3VyaXR5L2luZGV4Lmh0bWwpLgotIER1bXAgZ2VuZXJhdGVkIEFQSSBkb2MgdG8gZmlsZSBhdCBidWlsZCB0aW1lLiBTZWUgW2lzc3VlIDIxNCBjb21tZW50XShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvMjE0I2lzc3VlY29tbWVudC0xMTc5NTg5MzczKS4KCiMjIEZBUQoKIyMjIFN3YWdnZXIgVUkgcmV0dXJucyA0MDQgTm90Rm91bmQgZnJvbSBidWlsdCBiaW5hcnkKClRoaXMgaXMgaGlnaGx5IHByb2JhYmx5IGR1ZSB0byBgUnVzdEVtYmVkYCBub3QgZW1iZWRkaW5nIHRoZSBTd2FnZ2VyIFVJIHRvIHRoZSBleGVjdXRhYmxlLiBUaGlzIGlzIG5hdHVyYWwgc2luY2UgdGhlIGBSdXN0RW1iZWRgCmxpYnJhcnkgKipkb2VzIG5vdCoqIGJ5IGRlZmF1bHQgZW1iZWQgZmlsZXMgb24gZGVidWcgYnVpbGRzLiBUbyBnZXQgYXJvdW5kIHRoaXMgeW91IGNhbiBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZy4KCjEuIEJ1aWxkIHlvdXIgZXhlY3V0YWJsZSBpbiBgLS1yZWxlYXNlYCBtb2RlCjIuIG9yIGFkZCBgZGVidWctZW1iZWRgIGZlYXR1cmUgZmxhZyB0byB5b3VyIGBDYXJnby50b21sYCBmb3IgYHV0b2lwYS1zd2FnZ2VyLXVpYC4gVGhpcyB3aWxsIGVuYWJsZSB0aGUgYGRlYnVnLWVtZWJlZGAgZmVhdHVyZSBmbGFnIGZvcgogICBgUnVzdEVtYmVkYCBhcyB3ZWxsLiBSZWFkIG1vcmUgYWJvdXQgdGhpcyBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzUyNyNpc3N1ZWNvbW1lbnQtMTQ3NDIxOTA5OCkgYW5kIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS9pc3N1ZXMvMjY4KS4KCkZpbmQgYHV0b2lwYS1zd2FnZ2VyLXVpYCBbZmVhdHVyZSBmbGFncyBoZXJlXShodHRwczovL2dpdGh1Yi5jb20vanVoYWt1L3V0b2lwYS90cmVlL21hc3Rlci91dG9pcGEtc3dhZ2dlci11aSNjcmF0ZS1mZWF0dXJlcykuCgoKIyMjIEhvdyB0byBpbXBsZW1lbnQgYFRvU2NoZW1hYCBmb3IgZXh0ZXJuYWwgdHlwZT8KClRoZXJlIGFyZSBmZXcgd2F5cyBhcm91bmQgdGhpcyB0aGF0IGFyZSBlbGFib3JhdGVkIFtoZXJlIGluIGRldGFpbF0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzc5MCNpc3N1ZWNvbW1lbnQtMTc4Nzc1NDE4NSkuCgojIyMgSG93IHRvIHVzZSBSdXN0J3MgdHlwZSBhbGlhc2VzPwoKQXQgdGhlIG1vbWVudCB0aGF0IGlzIG5vdCBwb3NzaWJsZSBkdWUgdG8gdGhlcmUgaXMgbm8gd2F5IHRvIGV2YWx1YXRlIHRoZSBhY3R1YWwgdHlwZSBiZWhpbmQgdGhlIHR5cGUgdG9rZW4gdGhhdCBpcyB2aXNpYmxlIHRvIHRoZSBwcm9jIG1hY3JvIGNvZGUgZ2VuZXJhdGlvbi4gClRoaXMgbWlnaHQgYmUgcG9zc2libGUgaW4gZnV0dXJlIGlmIGEgZ2xvYmFsIGFsaWFzIHJlZ2lzdHJ5IGNhbiBiZSBpbXBsZW1lbnRlZC4gSGVyZSBpcyBhbiBpc3N1ZSByZWxhdGVkIHRvIHRoZSB0b3BpYyBbIzc2Nl0oaHR0cHM6Ly9naXRodWIuY29tL2p1aGFrdS91dG9pcGEvaXNzdWVzLzc2NikuCgojIyBMaWNlbnNlCgpMaWNlbnNlZCB1bmRlciBlaXRoZXIgb2YgW0FwYWNoZSAyLjBdKExJQ0VOU0UtQVBBQ0hFKSBvciBbTUlUXShMSUNFTlNFLU1JVCkgbGljZW5zZSBhdCB5b3VyIG9wdGlvbi4KClVubGVzcyB5b3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsIGFueSBjb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGlzIGNyYXRlCmJ5IHlvdSwgc2hhbGwgYmUgZHVhbCBsaWNlbnNlZCwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgo= + readmeEtag: '"74d22c91d090fe0b59a130d8a79db80395c346d2e199d8c1580437fc1e5918d5"' + readmeLastModified: Wed, 08 Nov 2023 08:52:18 GMT repositoryId: 412240914 description: >- Simple, Fast, Code first and Compile time generated OpenAPI documentation for Rust created: '2021-09-30T22:00:31Z' - updated: '2023-11-07T22:17:22Z' + updated: '2023-11-08T19:11:44Z' language: Rust archived: false - stars: 1457 + stars: 1461 watchers: 8 forks: 118 owner: juhaku logo: https://avatars.githubusercontent.com/u/26358664?v=4 license: Apache-2.0 - repoEtag: '"c2fc571f0a97729de90f7c09f88c95fb597af1d711ec68f5000fb46d0824d16d"' - repoLastModified: Tue, 07 Nov 2023 22:17:22 GMT + repoEtag: '"b8fbf52b7d811546dede5e2703bc962610e779d4a7c014c727b8e9df2567b3ea"' + repoLastModified: Wed, 08 Nov 2023 19:11:44 GMT foundInMaster: true category: Parsers id: 14269a89115b3be71493769fca4d995e @@ -7255,17 +7252,17 @@ A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML created: '2021-01-26T02:53:57Z' - updated: '2023-11-07T23:28:26Z' + updated: '2023-11-08T13:51:37Z' language: Python archived: false - stars: 1399 + stars: 1400 watchers: 14 forks: 43 owner: jcrist logo: https://avatars.githubusercontent.com/u/2783717?v=4 license: BSD-3-Clause - repoEtag: '"d56bdd43ec1f525326cc1953e89dbb66220dca8dc246a00161a9b66976a94f88"' - repoLastModified: Tue, 07 Nov 2023 23:28:26 GMT + repoEtag: '"484e055c094d62f34652ec1ea94313e112899f8b3ba323c7235ae60f9648d05e"' + repoLastModified: Wed, 08 Nov 2023 13:51:37 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7312,17 +7309,17 @@ A node package wrapper for https://github.com/OpenAPITools/openapi-generator created: '2018-10-26T10:21:23Z' - updated: '2023-11-07T05:58:13Z' + updated: '2023-11-08T15:05:15Z' language: TypeScript archived: false - stars: 1139 - watchers: 16 + stars: 1143 + watchers: 17 forks: 127 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"7380fd22588b9ef3b292b7ab536d387c1526dcc3d746546595a6ad9208c4c16b"' - repoLastModified: Tue, 07 Nov 2023 05:58:13 GMT + repoEtag: '"dbb657e5deba56ed93569c751af4c115b267ebc5cf62e998ab0d4baf93999d01"' + repoLastModified: Wed, 08 Nov 2023 15:05:15 GMT foundInMaster: true category: Code Generators id: 8f568f0b10837fef38571b68999adc0f @@ -7359,9 +7356,9 @@ id: 2c668cdfc766c1f598c7c7d845b9120c repositoryMetadata: base64Readme: >- - CiFbXShodHRwczovL2FwaWZsYXNrLmNvbS9fYXNzZXRzL2FwaWZsYXNrLWxvZ28ucG5nKQoKIyBBUElGbGFzawoKWyFbQnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vYXBpZmxhc2svYXBpZmxhc2svd29ya2Zsb3dzL2J1aWxkL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzay9hY3Rpb25zKSBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2svYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTJDRlBDWjFETVkpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2spCgpBUElGbGFzayBpcyBhIGxpZ2h0d2VpZ2h0IFB5dGhvbiB3ZWIgQVBJIGZyYW1ld29yayBiYXNlZCBvbiBbRmxhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxsZXRzL2ZsYXNrKSBhbmQgW21hcnNobWFsbG93LWNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlKSBwcm9qZWN0cy4gSXQncyBlYXN5IHRvIHVzZSwgaGlnaGx5IGN1c3RvbWl6YWJsZSwgT1JNL09ETS1hZ25vc3RpYywgYW5kIDEwMCUgY29tcGF0aWJsZSB3aXRoIHRoZSBGbGFzayBlY29zeXN0ZW0uCgpXaXRoIEFQSUZsYXNrLCB5b3Ugd2lsbCBoYXZlOgoKLSBNb3JlIHN1Z2FycyBmb3IgdmlldyBmdW5jdGlvbiAoYEBhcHAuaW5wdXQoKWAsIGBAYXBwLm91dHB1dCgpYCwgYEBhcHAuZ2V0KClgLCBgQGFwcC5wb3N0KClgIGFuZCBtb3JlKQotIEF1dG9tYXRpYyByZXF1ZXN0IHZhbGlkYXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbgotIEF1dG9tYXRpYyByZXNwb25zZSBmb3JtYXR0aW5nIGFuZCBzZXJpYWxpemF0aW9uCi0gQXV0b21hdGljIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoT0FTLCBmb3JtZXJseSBTd2FnZ2VyIFNwZWNpZmljYXRpb24pIGRvY3VtZW50IGdlbmVyYXRpb24KLSBBdXRvbWF0aWMgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24KLSBBUEkgYXV0aGVudGljYXRpb24gc3VwcG9ydCAod2l0aCBbRmxhc2stSFRUUEF1dGhdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWd1ZWxncmluYmVyZy9mbGFzay1odHRwYXV0aCkpCi0gQXV0b21hdGljIEpTT04gcmVzcG9uc2UgZm9yIEhUVFAgZXJyb3JzCgoKIyMgUmVxdWlyZW1lbnRzCgotIFB5dGhvbiAzLjgrCi0gRmxhc2sgMi4wKwoKCiMjIEluc3RhbGxhdGlvbgoKRm9yIExpbnV4IGFuZCBtYWNPUzoKCmBgYGJhc2gKJCBwaXAzIGluc3RhbGwgYXBpZmxhc2sKYGBgCgpGb3IgV2luZG93czoKCmBgYGJhc2gKPiBwaXAgaW5zdGFsbCBhcGlmbGFzawpgYGAKCgojIyBMaW5rcwoKLSBXZWJzaXRlOiA8aHR0cHM6Ly9hcGlmbGFzay5jb20+Ci0gRG9jdW1lbnRhdGlvbjogPGh0dHBzOi8vYXBpZmxhc2suY29tL2RvY3M+Ci0gUHlQSSBSZWxlYXNlczogPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvQVBJRmxhc2s+Ci0gQ2hhbmdlIExvZzogPGh0dHBzOi8vYXBpZmxhc2suY29tL2NoYW5nZWxvZz4KLSBTb3VyY2UgQ29kZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzaz4KLSBJc3N1ZSBUcmFja2VyOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2lzc3Vlcz4KLSBEaXNjdXNzaW9uOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2Rpc2N1c3Npb25zPgotIFR3aXR0ZXI6IDxodHRwczovL3R3aXR0ZXIuY29tL2FwaWZsYXNrPgotIE9wZW4gQ29sbGVjdGl2ZTogPGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrPgoKCiMjIERvbmF0ZQoKSWYgeW91IGZpbmQgQVBJRmxhc2sgdXNlZnVsLCBwbGVhc2UgY29uc2lkZXIgW2RvbmF0aW5nXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9hcGlmbGFzaykgdG9kYXkuIFlvdXIgZG9uYXRpb24ga2VlcHMgQVBJRmxhc2sgbWFpbnRhaW5lZCBhbmQgZXZvbHZpbmcuCgoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrLCBTY2hlbWEsIGFib3J0CmZyb20gYXBpZmxhc2suZmllbGRzIGltcG9ydCBJbnRlZ2VyLCBTdHJpbmcKZnJvbSBhcGlmbGFzay52YWxpZGF0b3JzIGltcG9ydCBMZW5ndGgsIE9uZU9mCgphcHAgPSBBUElGbGFzayhfX25hbWVfXykKCnBldHMgPSBbCiAgICB7J2lkJzogMCwgJ25hbWUnOiAnS2l0dHknLCAnY2F0ZWdvcnknOiAnY2F0J30sCiAgICB7J2lkJzogMSwgJ25hbWUnOiAnQ29jbycsICdjYXRlZ29yeSc6ICdkb2cnfQpdCgoKY2xhc3MgUGV0SW4oU2NoZW1hKToKICAgIG5hbWUgPSBTdHJpbmcocmVxdWlyZWQ9VHJ1ZSwgdmFsaWRhdGU9TGVuZ3RoKDAsIDEwKSkKICAgIGNhdGVnb3J5ID0gU3RyaW5nKHJlcXVpcmVkPVRydWUsIHZhbGlkYXRlPU9uZU9mKFsnZG9nJywgJ2NhdCddKSkKCgpjbGFzcyBQZXRPdXQoU2NoZW1hKToKICAgIGlkID0gSW50ZWdlcigpCiAgICBuYW1lID0gU3RyaW5nKCkKICAgIGNhdGVnb3J5ID0gU3RyaW5nKCkKCgpAYXBwLmdldCgnLycpCmRlZiBzYXlfaGVsbG8oKToKICAgICMgcmV0dXJuaW5nIGEgZGljdCBvciBsaXN0IGVxdWFscyB0byB1c2UganNvbmlmeSgpCiAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CgoKQGFwcC5nZXQoJy9wZXRzLzxpbnQ6cGV0X2lkPicpCkBhcHAub3V0cHV0KFBldE91dCkKZGVmIGdldF9wZXQocGV0X2lkKToKICAgIGlmIHBldF9pZCA+IGxlbihwZXRzKSAtIDE6CiAgICAgICAgYWJvcnQoNDA0KQogICAgIyB5b3UgY2FuIGFsc28gcmV0dXJuIGFuIE9STS9PRE0gbW9kZWwgY2xhc3MgaW5zdGFuY2UgZGlyZWN0bHkKICAgICMgQVBJRmxhc2sgd2lsbCBzZXJpYWxpemUgdGhlIG9iamVjdCBpbnRvIEpTT04gZm9ybWF0CiAgICByZXR1cm4gcGV0c1twZXRfaWRdCgoKQGFwcC5wYXRjaCgnL3BldHMvPGludDpwZXRfaWQ+JykKQGFwcC5pbnB1dChQZXRJbihwYXJ0aWFsPVRydWUpKSAgIyAtPiBqc29uX2RhdGEKQGFwcC5vdXRwdXQoUGV0T3V0KQpkZWYgdXBkYXRlX3BldChwZXRfaWQsIGpzb25fZGF0YSk6CiAgICAjIHRoZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZCBpbnB1dCBkYXRhIHdpbGwKICAgICMgYmUgaW5qZWN0ZWQgaW50byB0aGUgdmlldyBmdW5jdGlvbiBhcyBhIGRpY3QKICAgIGlmIHBldF9pZCA+IGxlbihwZXRzKSAtIDE6CiAgICAgICAgYWJvcnQoNDA0KQogICAgZm9yIGF0dHIsIHZhbHVlIGluIGpzb25fZGF0YS5pdGVtcygpOgogICAgICAgIHBldHNbcGV0X2lkXVthdHRyXSA9IHZhbHVlCiAgICByZXR1cm4gcGV0c1twZXRfaWRdCmBgYAoKPGRldGFpbHM+CjxzdW1tYXJ5PllvdSBjYW4gYWxzbyB1c2UgY2xhc3MtYmFzZWQgdmlld3MgYmFzZWQgb24gPGNvZGU+TWV0aG9kVmlldzwvY29kZT48L3N1bW1hcnk+CgpgYGBweXRob24KZnJvbSBhcGlmbGFzayBpbXBvcnQgQVBJRmxhc2ssIFNjaGVtYSwgYWJvcnQKZnJvbSBhcGlmbGFzay5maWVsZHMgaW1wb3J0IEludGVnZXIsIFN0cmluZwpmcm9tIGFwaWZsYXNrLnZhbGlkYXRvcnMgaW1wb3J0IExlbmd0aCwgT25lT2YKZnJvbSBmbGFzay52aWV3cyBpbXBvcnQgTWV0aG9kVmlldwoKYXBwID0gQVBJRmxhc2soX19uYW1lX18pCgpwZXRzID0gWwogICAgeydpZCc6IDAsICduYW1lJzogJ0tpdHR5JywgJ2NhdGVnb3J5JzogJ2NhdCd9LAogICAgeydpZCc6IDEsICduYW1lJzogJ0NvY28nLCAnY2F0ZWdvcnknOiAnZG9nJ30KXQoKCmNsYXNzIFBldEluKFNjaGVtYSk6CiAgICBuYW1lID0gU3RyaW5nKHJlcXVpcmVkPVRydWUsIHZhbGlkYXRlPUxlbmd0aCgwLCAxMCkpCiAgICBjYXRlZ29yeSA9IFN0cmluZyhyZXF1aXJlZD1UcnVlLCB2YWxpZGF0ZT1PbmVPZihbJ2RvZycsICdjYXQnXSkpCgoKY2xhc3MgUGV0T3V0KFNjaGVtYSk6CiAgICBpZCA9IEludGVnZXIoKQogICAgbmFtZSA9IFN0cmluZygpCiAgICBjYXRlZ29yeSA9IFN0cmluZygpCgoKY2xhc3MgSGVsbG8oTWV0aG9kVmlldyk6CgogICAgIyB1c2UgSFRUUCBtZXRob2QgbmFtZSBhcyBjbGFzcyBtZXRob2QgbmFtZQogICAgZGVmIGdldChzZWxmKToKICAgICAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CgoKY2xhc3MgUGV0KE1ldGhvZFZpZXcpOgoKICAgIEBhcHAub3V0cHV0KFBldE91dCkKICAgIGRlZiBnZXQoc2VsZiwgcGV0X2lkKToKICAgICAgICAiIiJHZXQgYSBwZXQiIiIKICAgICAgICBpZiBwZXRfaWQgPiBsZW4ocGV0cykgLSAxOgogICAgICAgICAgICBhYm9ydCg0MDQpCiAgICAgICAgcmV0dXJuIHBldHNbcGV0X2lkXQoKICAgIEBhcHAuaW5wdXQoUGV0SW4ocGFydGlhbD1UcnVlKSkKICAgIEBhcHAub3V0cHV0KFBldE91dCkKICAgIGRlZiBwYXRjaChzZWxmLCBwZXRfaWQsIGpzb25fZGF0YSk6CiAgICAgICAgIiIiVXBkYXRlIGEgcGV0IiIiCiAgICAgICAgaWYgcGV0X2lkID4gbGVuKHBldHMpIC0gMToKICAgICAgICAgICAgYWJvcnQoNDA0KQogICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBqc29uX2RhdGEuaXRlbXMoKToKICAgICAgICAgICAgcGV0c1twZXRfaWRdW2F0dHJdID0gdmFsdWUKICAgICAgICByZXR1cm4gcGV0c1twZXRfaWRdCgoKYXBwLmFkZF91cmxfcnVsZSgnLycsIHZpZXdfZnVuYz1IZWxsby5hc192aWV3KCdoZWxsbycpKQphcHAuYWRkX3VybF9ydWxlKCcvcGV0cy88aW50OnBldF9pZD4nLCB2aWV3X2Z1bmM9UGV0LmFzX3ZpZXcoJ3BldCcpKQpgYGAKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5Pk9yIHVzZSA8Y29kZT5hc3luYyBkZWY8L2NvZGU+PC9zdW1tYXJ5PgoKYGBgYmFzaAokIHBpcCBpbnN0YWxsIC1VICJhcGlmbGFza1thc3luY10iCmBgYAoKYGBgcHl0aG9uCmltcG9ydCBhc3luY2lvCgpmcm9tIGFwaWZsYXNrIGltcG9ydCBBUElGbGFzawoKYXBwID0gQVBJRmxhc2soX19uYW1lX18pCgoKQGFwcC5nZXQoJy8nKQphc3luYyBkZWYgc2F5X2hlbGxvKCk6CiAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDEpCiAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CmBgYAoKU2VlIDxlbT48YSBocmVmPSJodHRwczovL2ZsYXNrLnBhbGxldHNwcm9qZWN0cy5jb20vYXN5bmMtYXdhaXQiPlVzaW5nIGFzeW5jIGFuZCBhd2FpdDwvYT48L2VtPiBmb3IgdGhlIGRldGFpbHMgb2YgdGhlIGFzeW5jIHN1cHBvcnQgaW4gRmxhc2sgMi4wLgoKPC9kZXRhaWxzPgoKU2F2ZSB0aGlzIGFzIGBhcHAucHlgLCB0aGVuIHJ1biBpdCB3aXRoOgoKYGBgYmFzaAokIGZsYXNrIHJ1biAtLXJlbG9hZApgYGAKCk9yIHJ1biBpbiBkZWJ1ZyBtb2RlOgoKYGBgYmFzaAokIGZsYXNrIHJ1biAtLWRlYnVnCmBgYAoKTm93IHZpc2l0IHRoZSBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbiAoU3dhZ2dlciBVSSkgYXQgPGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9kb2NzPjoKCiFbXShodHRwczovL2FwaWZsYXNrLmNvbS9fYXNzZXRzL3N3YWdnZXItdWkucG5nKQoKT3IgeW91IGNhbiBjaGFuZ2UgdGhlIEFQSSBkb2N1bWVudGF0aW9uIFVJIHdoZW4gY3JlYXRpbmcgdGhlIEFQSUZsYXNrIGluc3RhbmNlIHdpdGggdGhlIGBkb2NzX3VpYCBwYXJhbWV0ZXI6CgpgYGBweQphcHAgPSBBUElGbGFzayhfX25hbWVfXywgZG9jc191aT0ncmVkb2MnKQpgYGAKCk5vdyA8aHR0cDovL2xvY2FsaG9zdDo1MDAwL2RvY3M+IHdpbGwgcmVuZGVyIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiB3aXRoIFJlZG9jLgoKU3VwcG9ydGVkIGBkb2NzX3VpYCB2YWx1ZXMgKFVJIGxpYnJhcmllcykgaW5jbHVkZToKCi0gYHN3YWdnZXItdWlgIChkZWZhdWx0IHZhbHVlKTogW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKQotIGByZWRvY2A6IFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpCi0gYGVsZW1lbnRzYDogW0VsZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vZWxlbWVudHMpCi0gYHJhcGlkb2NgOiBbUmFwaURvY10oaHR0cHM6Ly9naXRodWIuY29tL3JhcGktZG9jL1JhcGlEb2MpCi0gYHJhcGlwZGZgOiBbUmFwaVBERl0oaHR0cHM6Ly9naXRodWIuY29tL21yaW45L1JhcGlQZGYpCgpUaGUgYXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBzcGVjIGZpbGUgaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vbG9jYWxob3N0OjUwMDAvb3BlbmFwaS5qc29uPi4gWW91IGNhbiBhbHNvIGdldCB0aGUgc3BlYyB3aXRoIFt0aGUgYGZsYXNrIHNwZWNgIGNvbW1hbmRdKGh0dHBzOi8vYXBpZmxhc2suY29tL29wZW5hcGkvI3RoZS1mbGFzay1zcGVjLWNvbW1hbmQpOgoKYGBgYmFzaAokIGZsYXNrIHNwZWMKYGBgCgpGb3Igc29tZSBjb21wbGV0ZSBleGFtcGxlcywgc2VlIFsvZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzay90cmVlL21haW4vZXhhbXBsZXMpLgoKCiMjIFJlbGF0aW9uc2hpcCB3aXRoIEZsYXNrCgpBUElGbGFzayBpcyBhIHRoaW4gd3JhcHBlciBvbiB0b3Agb2YgRmxhc2suIFlvdSBvbmx5IG5lZWQgdG8gcmVtZW1iZXIgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyAoc2VlICpbTWlncmF0aW5nIGZyb20gRmxhc2tdKGh0dHBzOi8vYXBpZmxhc2suY29tL21pZ3JhdGluZykqIGZvciBtb3JlIGRldGFpbHMpOgoKLSBXaGVuIGNyZWF0aW5nIGFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLCB1c2UgYEFQSUZsYXNrYCBpbnN0ZWFkIG9mIGBGbGFza2AuCi0gV2hlbiBjcmVhdGluZyBhIGJsdWVwcmludCBpbnN0YW5jZSwgdXNlIGBBUElCbHVlcHJpbnRgIGluc3RlYWQgb2YgYEJsdWVwcmludGAuCi0gVGhlIGBhYm9ydCgpYCBmdW5jdGlvbiBmcm9tIEFQSUZsYXNrIChgYXBpZmxhc2suYWJvcnRgKSByZXR1cm5zIEpTT04gZXJyb3IgcmVzcG9uc2UuCgpGb3IgYSBtaW5pbWFsIEZsYXNrIGFwcGxpY2F0aW9uOgoKYGBgcHl0aG9uCmZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZXF1ZXN0CmZyb20gbWFya3Vwc2FmZSBpbXBvcnQgZXNjYXBlCgphcHAgPSBGbGFzayhfX25hbWVfXykKCkBhcHAucm91dGUoJy8nKQpkZWYgaGVsbG8oKToKICAgIG5hbWUgPSByZXF1ZXN0LmFyZ3MuZ2V0KCduYW1lJywgJ0h1bWFuJykKICAgIHJldHVybiBmJ0hlbGxvLCB7ZXNjYXBlKG5hbWUpfScKYGBgCgpOb3cgY2hhbmdlIHRvIEFQSUZsYXNrOgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrICAjIHN0ZXAgb25lCmZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QKZnJvbSBtYXJrdXBzYWZlIGltcG9ydCBlc2NhcGUKCmFwcCA9IEFQSUZsYXNrKF9fbmFtZV9fKSAgIyBzdGVwIHR3bwoKQGFwcC5yb3V0ZSgnLycpCmRlZiBoZWxsbygpOgogICAgbmFtZSA9IHJlcXVlc3QuYXJncy5nZXQoJ25hbWUnLCAnSHVtYW4nKQogICAgcmV0dXJuIGYnSGVsbG8sIHtlc2NhcGUobmFtZSl9JwpgYGAKCkluIGEgd29yZCwgdG8gbWFrZSBXZWIgQVBJIGRldmVsb3BtZW50IGluIEZsYXNrIG1vcmUgZWFzaWx5LCBBUElGbGFzayBwcm92aWRlcyBgQVBJRmxhc2tgIGFuZCBgQVBJQmx1ZXByaW50YCB0byBleHRlbmQgRmxhc2sncyBgRmxhc2tgIGFuZCBgQmx1ZXByaW50YCBvYmplY3RzIGFuZCBpdCBhbHNvIHNoaXBzIHdpdGggc29tZSBoZWxwZnVsIHV0aWxpdGllcy4gT3RoZXIgdGhhbiB0aGF0LCB5b3UgYXJlIGFjdHVhbGx5IHVzaW5nIEZsYXNrLgoKCiMjIFJlbGF0aW9uc2hpcCB3aXRoIG1hcnNobWFsbG93CgpBUElGbGFzayBhY2NlcHRzIG1hcnNobWFsbG93IHNjaGVtYSBhcyBkYXRhIHNjaGVtYSwgdXNlcyB3ZWJhcmdzIHRvIHZhbGlkYXRlIHRoZSByZXF1ZXN0IGRhdGEgYWdhaW5zdCB0aGUgc2NoZW1hLCBhbmQgdXNlcyBhcGlzcGVjIHRvIGdlbmVyYXRlIHRoZSBPcGVuQVBJIHJlcHJlc2VudGF0aW9uIGZyb20gdGhlIHNjaGVtYS4KCllvdSBjYW4gYnVpbGQgbWFyc2htYWxsb3cgc2NoZW1hcyBqdXN0IGxpa2UgYmVmb3JlLCBidXQgQVBJRmxhc2sgYWxzbyBleHBvc2VzIHNvbWUgbWFyc2htYWxsb3cgQVBJcyBmb3IgY29udmVuaWVuY2U6CgotIGBhcGlmbGFzay5TY2hlbWFgOiBUaGUgYmFzZSBtYXJzaG1hbGxvdyBzY2hlbWEgY2xhc3MuIE5vdGljZSBpdCBzZXRzIHRoZSBgc2V0X2NsYXNzYCB0byBgT3JkZXJlZFNldGAgYnkgZGVmYXVsdC4KLSBgYXBpZmxhc2suZmllbGRzYDogVGhlIG1hcnNobWFsbG93IGZpZWxkcywgY29udGFpbiB0aGUgZmllbGRzIGZyb20gYm90aCBtYXJzaG1hbGxvdyBhbmQgRmxhc2stTWFyc2htYWxsb3cuIEJld2FyZSB0aGF0IHRoZSBhbGlhc2VzIChgVXJsYCwgYFN0cmAsIGBJbnRgLCBgQm9vbGAsIGV0Yy4pIHdlcmUgcmVtb3ZlZC4KLSBgYXBpZmxhc2sudmFsaWRhdG9yc2A6IFRoZSBtYXJzaG1hbGxvdyB2YWxpZGF0b3JzLgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IFNjaGVtYQpmcm9tIGFwaWZsYXNrLmZpZWxkcyBpbXBvcnQgSW50ZWdlciwgU3RyaW5nCmZyb20gYXBpZmxhc2sudmFsaWRhdG9ycyBpbXBvcnQgTGVuZ3RoLCBPbmVPZgpmcm9tIG1hcnNobWFsbG93IGltcG9ydCBwcmVfbG9hZCwgcG9zdF9kdW1wLCBWYWxpZGF0aW9uRXJyb3IKYGBgCgojIyBDcmVkaXRzCgpBUElGbGFzayBzdGFydHMgYXMgYSBmb3JrIG9mIFtBUElGYWlyeV0oaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbGdyaW5iZXJnL0FQSUZhaXJ5KSBhbmQgaXMgaW5zcGlyZWQgYnkgW2ZsYXNrLXNtb3Jlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlL2ZsYXNrLXNtb3Jlc3QpIGFuZCBbRmFzdEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Zhc3RhcGkpIChzZWUgKltDb21wYXJpc29uIGFuZCBNb3RpdmF0aW9uc10oaHR0cHM6Ly9hcGlmbGFzay5jb20vY29tcGFyaXNvbikqIGZvciB0aGUgY29tcGFyaXNvbiBiZXR3ZWVuIHRoZXNlIHByb2plY3RzKS4K - readmeEtag: '"a3bc8391fdf80300d3c887e1e50d29cdcd81eb0014602709e43a39d04b91d9e3"' - readmeLastModified: Sun, 24 Sep 2023 03:02:37 GMT + CiFbXShodHRwczovL2FwaWZsYXNrLmNvbS9fYXNzZXRzL2FwaWZsYXNrLWxvZ28ucG5nKQoKIyBBUElGbGFzawoKWyFbQnVpbGQgc3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vYXBpZmxhc2svYXBpZmxhc2svYWN0aW9ucy93b3JrZmxvd3MvdGVzdHMueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzay9hY3Rpb25zKSBbIVtjb2RlY292XShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2svYnJhbmNoL21haW4vZ3JhcGgvYmFkZ2Uuc3ZnP3Rva2VuPTJDRlBDWjFETVkpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvYXBpZmxhc2svYXBpZmxhc2spCgpBUElGbGFzayBpcyBhIGxpZ2h0d2VpZ2h0IFB5dGhvbiB3ZWIgQVBJIGZyYW1ld29yayBiYXNlZCBvbiBbRmxhc2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxsZXRzL2ZsYXNrKSBhbmQgW21hcnNobWFsbG93LWNvZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlKSBwcm9qZWN0cy4gSXQncyBlYXN5IHRvIHVzZSwgaGlnaGx5IGN1c3RvbWl6YWJsZSwgT1JNL09ETS1hZ25vc3RpYywgYW5kIDEwMCUgY29tcGF0aWJsZSB3aXRoIHRoZSBGbGFzayBlY29zeXN0ZW0uCgpXaXRoIEFQSUZsYXNrLCB5b3Ugd2lsbCBoYXZlOgoKLSBNb3JlIHN1Z2FycyBmb3IgdmlldyBmdW5jdGlvbiAoYEBhcHAuaW5wdXQoKWAsIGBAYXBwLm91dHB1dCgpYCwgYEBhcHAuZ2V0KClgLCBgQGFwcC5wb3N0KClgIGFuZCBtb3JlKQotIEF1dG9tYXRpYyByZXF1ZXN0IHZhbGlkYXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbgotIEF1dG9tYXRpYyByZXNwb25zZSBmb3JtYXR0aW5nIGFuZCBzZXJpYWxpemF0aW9uCi0gQXV0b21hdGljIFtPcGVuQVBJIFNwZWNpZmljYXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9PQUkvT3BlbkFQSS1TcGVjaWZpY2F0aW9uKSAoT0FTLCBmb3JtZXJseSBTd2FnZ2VyIFNwZWNpZmljYXRpb24pIGRvY3VtZW50IGdlbmVyYXRpb24KLSBBdXRvbWF0aWMgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24KLSBBUEkgYXV0aGVudGljYXRpb24gc3VwcG9ydCAod2l0aCBbRmxhc2stSFRUUEF1dGhdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWd1ZWxncmluYmVyZy9mbGFzay1odHRwYXV0aCkpCi0gQXV0b21hdGljIEpTT04gcmVzcG9uc2UgZm9yIEhUVFAgZXJyb3JzCgoKIyMgUmVxdWlyZW1lbnRzCgotIFB5dGhvbiAzLjgrCi0gRmxhc2sgMi4wKwoKCiMjIEluc3RhbGxhdGlvbgoKRm9yIExpbnV4IGFuZCBtYWNPUzoKCmBgYGJhc2gKJCBwaXAzIGluc3RhbGwgYXBpZmxhc2sKYGBgCgpGb3IgV2luZG93czoKCmBgYGJhc2gKPiBwaXAgaW5zdGFsbCBhcGlmbGFzawpgYGAKCgojIyBMaW5rcwoKLSBXZWJzaXRlOiA8aHR0cHM6Ly9hcGlmbGFzay5jb20+Ci0gRG9jdW1lbnRhdGlvbjogPGh0dHBzOi8vYXBpZmxhc2suY29tL2RvY3M+Ci0gUHlQSSBSZWxlYXNlczogPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvQVBJRmxhc2s+Ci0gQ2hhbmdlIExvZzogPGh0dHBzOi8vYXBpZmxhc2suY29tL2NoYW5nZWxvZz4KLSBTb3VyY2UgQ29kZTogPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzaz4KLSBJc3N1ZSBUcmFja2VyOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2lzc3Vlcz4KLSBEaXNjdXNzaW9uOiA8aHR0cHM6Ly9naXRodWIuY29tL2FwaWZsYXNrL2FwaWZsYXNrL2Rpc2N1c3Npb25zPgotIFR3aXR0ZXI6IDxodHRwczovL3R3aXR0ZXIuY29tL2FwaWZsYXNrPgotIE9wZW4gQ29sbGVjdGl2ZTogPGh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2FwaWZsYXNrPgoKCiMjIERvbmF0ZQoKSWYgeW91IGZpbmQgQVBJRmxhc2sgdXNlZnVsLCBwbGVhc2UgY29uc2lkZXIgW2RvbmF0aW5nXShodHRwczovL29wZW5jb2xsZWN0aXZlLmNvbS9hcGlmbGFzaykgdG9kYXkuIFlvdXIgZG9uYXRpb24ga2VlcHMgQVBJRmxhc2sgbWFpbnRhaW5lZCBhbmQgZXZvbHZpbmcuCgoKIyMgRXhhbXBsZQoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrLCBTY2hlbWEsIGFib3J0CmZyb20gYXBpZmxhc2suZmllbGRzIGltcG9ydCBJbnRlZ2VyLCBTdHJpbmcKZnJvbSBhcGlmbGFzay52YWxpZGF0b3JzIGltcG9ydCBMZW5ndGgsIE9uZU9mCgphcHAgPSBBUElGbGFzayhfX25hbWVfXykKCnBldHMgPSBbCiAgICB7J2lkJzogMCwgJ25hbWUnOiAnS2l0dHknLCAnY2F0ZWdvcnknOiAnY2F0J30sCiAgICB7J2lkJzogMSwgJ25hbWUnOiAnQ29jbycsICdjYXRlZ29yeSc6ICdkb2cnfQpdCgoKY2xhc3MgUGV0SW4oU2NoZW1hKToKICAgIG5hbWUgPSBTdHJpbmcocmVxdWlyZWQ9VHJ1ZSwgdmFsaWRhdGU9TGVuZ3RoKDAsIDEwKSkKICAgIGNhdGVnb3J5ID0gU3RyaW5nKHJlcXVpcmVkPVRydWUsIHZhbGlkYXRlPU9uZU9mKFsnZG9nJywgJ2NhdCddKSkKCgpjbGFzcyBQZXRPdXQoU2NoZW1hKToKICAgIGlkID0gSW50ZWdlcigpCiAgICBuYW1lID0gU3RyaW5nKCkKICAgIGNhdGVnb3J5ID0gU3RyaW5nKCkKCgpAYXBwLmdldCgnLycpCmRlZiBzYXlfaGVsbG8oKToKICAgICMgcmV0dXJuaW5nIGEgZGljdCBvciBsaXN0IGVxdWFscyB0byB1c2UganNvbmlmeSgpCiAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CgoKQGFwcC5nZXQoJy9wZXRzLzxpbnQ6cGV0X2lkPicpCkBhcHAub3V0cHV0KFBldE91dCkKZGVmIGdldF9wZXQocGV0X2lkKToKICAgIGlmIHBldF9pZCA+IGxlbihwZXRzKSAtIDE6CiAgICAgICAgYWJvcnQoNDA0KQogICAgIyB5b3UgY2FuIGFsc28gcmV0dXJuIGFuIE9STS9PRE0gbW9kZWwgY2xhc3MgaW5zdGFuY2UgZGlyZWN0bHkKICAgICMgQVBJRmxhc2sgd2lsbCBzZXJpYWxpemUgdGhlIG9iamVjdCBpbnRvIEpTT04gZm9ybWF0CiAgICByZXR1cm4gcGV0c1twZXRfaWRdCgoKQGFwcC5wYXRjaCgnL3BldHMvPGludDpwZXRfaWQ+JykKQGFwcC5pbnB1dChQZXRJbihwYXJ0aWFsPVRydWUpKSAgIyAtPiBqc29uX2RhdGEKQGFwcC5vdXRwdXQoUGV0T3V0KQpkZWYgdXBkYXRlX3BldChwZXRfaWQsIGpzb25fZGF0YSk6CiAgICAjIHRoZSB2YWxpZGF0ZWQgYW5kIHBhcnNlZCBpbnB1dCBkYXRhIHdpbGwKICAgICMgYmUgaW5qZWN0ZWQgaW50byB0aGUgdmlldyBmdW5jdGlvbiBhcyBhIGRpY3QKICAgIGlmIHBldF9pZCA+IGxlbihwZXRzKSAtIDE6CiAgICAgICAgYWJvcnQoNDA0KQogICAgZm9yIGF0dHIsIHZhbHVlIGluIGpzb25fZGF0YS5pdGVtcygpOgogICAgICAgIHBldHNbcGV0X2lkXVthdHRyXSA9IHZhbHVlCiAgICByZXR1cm4gcGV0c1twZXRfaWRdCmBgYAoKPGRldGFpbHM+CjxzdW1tYXJ5PllvdSBjYW4gYWxzbyB1c2UgY2xhc3MtYmFzZWQgdmlld3MgYmFzZWQgb24gPGNvZGU+TWV0aG9kVmlldzwvY29kZT48L3N1bW1hcnk+CgpgYGBweXRob24KZnJvbSBhcGlmbGFzayBpbXBvcnQgQVBJRmxhc2ssIFNjaGVtYSwgYWJvcnQKZnJvbSBhcGlmbGFzay5maWVsZHMgaW1wb3J0IEludGVnZXIsIFN0cmluZwpmcm9tIGFwaWZsYXNrLnZhbGlkYXRvcnMgaW1wb3J0IExlbmd0aCwgT25lT2YKZnJvbSBmbGFzay52aWV3cyBpbXBvcnQgTWV0aG9kVmlldwoKYXBwID0gQVBJRmxhc2soX19uYW1lX18pCgpwZXRzID0gWwogICAgeydpZCc6IDAsICduYW1lJzogJ0tpdHR5JywgJ2NhdGVnb3J5JzogJ2NhdCd9LAogICAgeydpZCc6IDEsICduYW1lJzogJ0NvY28nLCAnY2F0ZWdvcnknOiAnZG9nJ30KXQoKCmNsYXNzIFBldEluKFNjaGVtYSk6CiAgICBuYW1lID0gU3RyaW5nKHJlcXVpcmVkPVRydWUsIHZhbGlkYXRlPUxlbmd0aCgwLCAxMCkpCiAgICBjYXRlZ29yeSA9IFN0cmluZyhyZXF1aXJlZD1UcnVlLCB2YWxpZGF0ZT1PbmVPZihbJ2RvZycsICdjYXQnXSkpCgoKY2xhc3MgUGV0T3V0KFNjaGVtYSk6CiAgICBpZCA9IEludGVnZXIoKQogICAgbmFtZSA9IFN0cmluZygpCiAgICBjYXRlZ29yeSA9IFN0cmluZygpCgoKY2xhc3MgSGVsbG8oTWV0aG9kVmlldyk6CgogICAgIyB1c2UgSFRUUCBtZXRob2QgbmFtZSBhcyBjbGFzcyBtZXRob2QgbmFtZQogICAgZGVmIGdldChzZWxmKToKICAgICAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CgoKY2xhc3MgUGV0KE1ldGhvZFZpZXcpOgoKICAgIEBhcHAub3V0cHV0KFBldE91dCkKICAgIGRlZiBnZXQoc2VsZiwgcGV0X2lkKToKICAgICAgICAiIiJHZXQgYSBwZXQiIiIKICAgICAgICBpZiBwZXRfaWQgPiBsZW4ocGV0cykgLSAxOgogICAgICAgICAgICBhYm9ydCg0MDQpCiAgICAgICAgcmV0dXJuIHBldHNbcGV0X2lkXQoKICAgIEBhcHAuaW5wdXQoUGV0SW4ocGFydGlhbD1UcnVlKSkKICAgIEBhcHAub3V0cHV0KFBldE91dCkKICAgIGRlZiBwYXRjaChzZWxmLCBwZXRfaWQsIGpzb25fZGF0YSk6CiAgICAgICAgIiIiVXBkYXRlIGEgcGV0IiIiCiAgICAgICAgaWYgcGV0X2lkID4gbGVuKHBldHMpIC0gMToKICAgICAgICAgICAgYWJvcnQoNDA0KQogICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBqc29uX2RhdGEuaXRlbXMoKToKICAgICAgICAgICAgcGV0c1twZXRfaWRdW2F0dHJdID0gdmFsdWUKICAgICAgICByZXR1cm4gcGV0c1twZXRfaWRdCgoKYXBwLmFkZF91cmxfcnVsZSgnLycsIHZpZXdfZnVuYz1IZWxsby5hc192aWV3KCdoZWxsbycpKQphcHAuYWRkX3VybF9ydWxlKCcvcGV0cy88aW50OnBldF9pZD4nLCB2aWV3X2Z1bmM9UGV0LmFzX3ZpZXcoJ3BldCcpKQpgYGAKPC9kZXRhaWxzPgoKPGRldGFpbHM+CjxzdW1tYXJ5Pk9yIHVzZSA8Y29kZT5hc3luYyBkZWY8L2NvZGU+PC9zdW1tYXJ5PgoKYGBgYmFzaAokIHBpcCBpbnN0YWxsIC1VICJhcGlmbGFza1thc3luY10iCmBgYAoKYGBgcHl0aG9uCmltcG9ydCBhc3luY2lvCgpmcm9tIGFwaWZsYXNrIGltcG9ydCBBUElGbGFzawoKYXBwID0gQVBJRmxhc2soX19uYW1lX18pCgoKQGFwcC5nZXQoJy8nKQphc3luYyBkZWYgc2F5X2hlbGxvKCk6CiAgICBhd2FpdCBhc3luY2lvLnNsZWVwKDEpCiAgICByZXR1cm4geydtZXNzYWdlJzogJ0hlbGxvISd9CmBgYAoKU2VlIDxlbT48YSBocmVmPSJodHRwczovL2ZsYXNrLnBhbGxldHNwcm9qZWN0cy5jb20vYXN5bmMtYXdhaXQiPlVzaW5nIGFzeW5jIGFuZCBhd2FpdDwvYT48L2VtPiBmb3IgdGhlIGRldGFpbHMgb2YgdGhlIGFzeW5jIHN1cHBvcnQgaW4gRmxhc2sgMi4wLgoKPC9kZXRhaWxzPgoKU2F2ZSB0aGlzIGFzIGBhcHAucHlgLCB0aGVuIHJ1biBpdCB3aXRoOgoKYGBgYmFzaAokIGZsYXNrIHJ1biAtLXJlbG9hZApgYGAKCk9yIHJ1biBpbiBkZWJ1ZyBtb2RlOgoKYGBgYmFzaAokIGZsYXNrIHJ1biAtLWRlYnVnCmBgYAoKTm93IHZpc2l0IHRoZSBpbnRlcmFjdGl2ZSBBUEkgZG9jdW1lbnRhdGlvbiAoU3dhZ2dlciBVSSkgYXQgPGh0dHA6Ly9sb2NhbGhvc3Q6NTAwMC9kb2NzPjoKCiFbXShodHRwczovL2FwaWZsYXNrLmNvbS9fYXNzZXRzL3N3YWdnZXItdWkucG5nKQoKT3IgeW91IGNhbiBjaGFuZ2UgdGhlIEFQSSBkb2N1bWVudGF0aW9uIFVJIHdoZW4gY3JlYXRpbmcgdGhlIEFQSUZsYXNrIGluc3RhbmNlIHdpdGggdGhlIGBkb2NzX3VpYCBwYXJhbWV0ZXI6CgpgYGBweQphcHAgPSBBUElGbGFzayhfX25hbWVfXywgZG9jc191aT0ncmVkb2MnKQpgYGAKCk5vdyA8aHR0cDovL2xvY2FsaG9zdDo1MDAwL2RvY3M+IHdpbGwgcmVuZGVyIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiB3aXRoIFJlZG9jLgoKU3VwcG9ydGVkIGBkb2NzX3VpYCB2YWx1ZXMgKFVJIGxpYnJhcmllcykgaW5jbHVkZToKCi0gYHN3YWdnZXItdWlgIChkZWZhdWx0IHZhbHVlKTogW1N3YWdnZXIgVUldKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLXVpKQotIGByZWRvY2A6IFtSZWRvY10oaHR0cHM6Ly9naXRodWIuY29tL1JlZG9jbHkvcmVkb2MpCi0gYGVsZW1lbnRzYDogW0VsZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vc3RvcGxpZ2h0aW8vZWxlbWVudHMpCi0gYHJhcGlkb2NgOiBbUmFwaURvY10oaHR0cHM6Ly9naXRodWIuY29tL3JhcGktZG9jL1JhcGlEb2MpCi0gYHJhcGlwZGZgOiBbUmFwaVBERl0oaHR0cHM6Ly9naXRodWIuY29tL21yaW45L1JhcGlQZGYpCgpUaGUgYXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBzcGVjIGZpbGUgaXMgYXZhaWxhYmxlIGF0IDxodHRwOi8vbG9jYWxob3N0OjUwMDAvb3BlbmFwaS5qc29uPi4gWW91IGNhbiBhbHNvIGdldCB0aGUgc3BlYyB3aXRoIFt0aGUgYGZsYXNrIHNwZWNgIGNvbW1hbmRdKGh0dHBzOi8vYXBpZmxhc2suY29tL29wZW5hcGkvI3RoZS1mbGFzay1zcGVjLWNvbW1hbmQpOgoKYGBgYmFzaAokIGZsYXNrIHNwZWMKYGBgCgpGb3Igc29tZSBjb21wbGV0ZSBleGFtcGxlcywgc2VlIFsvZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGlmbGFzay9hcGlmbGFzay90cmVlL21haW4vZXhhbXBsZXMpLgoKCiMjIFJlbGF0aW9uc2hpcCB3aXRoIEZsYXNrCgpBUElGbGFzayBpcyBhIHRoaW4gd3JhcHBlciBvbiB0b3Agb2YgRmxhc2suIFlvdSBvbmx5IG5lZWQgdG8gcmVtZW1iZXIgdGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyAoc2VlICpbTWlncmF0aW5nIGZyb20gRmxhc2tdKGh0dHBzOi8vYXBpZmxhc2suY29tL21pZ3JhdGluZykqIGZvciBtb3JlIGRldGFpbHMpOgoKLSBXaGVuIGNyZWF0aW5nIGFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLCB1c2UgYEFQSUZsYXNrYCBpbnN0ZWFkIG9mIGBGbGFza2AuCi0gV2hlbiBjcmVhdGluZyBhIGJsdWVwcmludCBpbnN0YW5jZSwgdXNlIGBBUElCbHVlcHJpbnRgIGluc3RlYWQgb2YgYEJsdWVwcmludGAuCi0gVGhlIGBhYm9ydCgpYCBmdW5jdGlvbiBmcm9tIEFQSUZsYXNrIChgYXBpZmxhc2suYWJvcnRgKSByZXR1cm5zIEpTT04gZXJyb3IgcmVzcG9uc2UuCgpGb3IgYSBtaW5pbWFsIEZsYXNrIGFwcGxpY2F0aW9uOgoKYGBgcHl0aG9uCmZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZXF1ZXN0CmZyb20gbWFya3Vwc2FmZSBpbXBvcnQgZXNjYXBlCgphcHAgPSBGbGFzayhfX25hbWVfXykKCkBhcHAucm91dGUoJy8nKQpkZWYgaGVsbG8oKToKICAgIG5hbWUgPSByZXF1ZXN0LmFyZ3MuZ2V0KCduYW1lJywgJ0h1bWFuJykKICAgIHJldHVybiBmJ0hlbGxvLCB7ZXNjYXBlKG5hbWUpfScKYGBgCgpOb3cgY2hhbmdlIHRvIEFQSUZsYXNrOgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IEFQSUZsYXNrICAjIHN0ZXAgb25lCmZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QKZnJvbSBtYXJrdXBzYWZlIGltcG9ydCBlc2NhcGUKCmFwcCA9IEFQSUZsYXNrKF9fbmFtZV9fKSAgIyBzdGVwIHR3bwoKQGFwcC5yb3V0ZSgnLycpCmRlZiBoZWxsbygpOgogICAgbmFtZSA9IHJlcXVlc3QuYXJncy5nZXQoJ25hbWUnLCAnSHVtYW4nKQogICAgcmV0dXJuIGYnSGVsbG8sIHtlc2NhcGUobmFtZSl9JwpgYGAKCkluIGEgd29yZCwgdG8gbWFrZSBXZWIgQVBJIGRldmVsb3BtZW50IGluIEZsYXNrIG1vcmUgZWFzaWx5LCBBUElGbGFzayBwcm92aWRlcyBgQVBJRmxhc2tgIGFuZCBgQVBJQmx1ZXByaW50YCB0byBleHRlbmQgRmxhc2sncyBgRmxhc2tgIGFuZCBgQmx1ZXByaW50YCBvYmplY3RzIGFuZCBpdCBhbHNvIHNoaXBzIHdpdGggc29tZSBoZWxwZnVsIHV0aWxpdGllcy4gT3RoZXIgdGhhbiB0aGF0LCB5b3UgYXJlIGFjdHVhbGx5IHVzaW5nIEZsYXNrLgoKCiMjIFJlbGF0aW9uc2hpcCB3aXRoIG1hcnNobWFsbG93CgpBUElGbGFzayBhY2NlcHRzIG1hcnNobWFsbG93IHNjaGVtYSBhcyBkYXRhIHNjaGVtYSwgdXNlcyB3ZWJhcmdzIHRvIHZhbGlkYXRlIHRoZSByZXF1ZXN0IGRhdGEgYWdhaW5zdCB0aGUgc2NoZW1hLCBhbmQgdXNlcyBhcGlzcGVjIHRvIGdlbmVyYXRlIHRoZSBPcGVuQVBJIHJlcHJlc2VudGF0aW9uIGZyb20gdGhlIHNjaGVtYS4KCllvdSBjYW4gYnVpbGQgbWFyc2htYWxsb3cgc2NoZW1hcyBqdXN0IGxpa2UgYmVmb3JlLCBidXQgQVBJRmxhc2sgYWxzbyBleHBvc2VzIHNvbWUgbWFyc2htYWxsb3cgQVBJcyBmb3IgY29udmVuaWVuY2U6CgotIGBhcGlmbGFzay5TY2hlbWFgOiBUaGUgYmFzZSBtYXJzaG1hbGxvdyBzY2hlbWEgY2xhc3MuIE5vdGljZSBpdCBzZXRzIHRoZSBgc2V0X2NsYXNzYCB0byBgT3JkZXJlZFNldGAgYnkgZGVmYXVsdC4KLSBgYXBpZmxhc2suZmllbGRzYDogVGhlIG1hcnNobWFsbG93IGZpZWxkcywgY29udGFpbiB0aGUgZmllbGRzIGZyb20gYm90aCBtYXJzaG1hbGxvdyBhbmQgRmxhc2stTWFyc2htYWxsb3cuIEJld2FyZSB0aGF0IHRoZSBhbGlhc2VzIChgVXJsYCwgYFN0cmAsIGBJbnRgLCBgQm9vbGAsIGV0Yy4pIHdlcmUgcmVtb3ZlZC4KLSBgYXBpZmxhc2sudmFsaWRhdG9yc2A6IFRoZSBtYXJzaG1hbGxvdyB2YWxpZGF0b3JzLgoKYGBgcHl0aG9uCmZyb20gYXBpZmxhc2sgaW1wb3J0IFNjaGVtYQpmcm9tIGFwaWZsYXNrLmZpZWxkcyBpbXBvcnQgSW50ZWdlciwgU3RyaW5nCmZyb20gYXBpZmxhc2sudmFsaWRhdG9ycyBpbXBvcnQgTGVuZ3RoLCBPbmVPZgpmcm9tIG1hcnNobWFsbG93IGltcG9ydCBwcmVfbG9hZCwgcG9zdF9kdW1wLCBWYWxpZGF0aW9uRXJyb3IKYGBgCgojIyBDcmVkaXRzCgpBUElGbGFzayBzdGFydHMgYXMgYSBmb3JrIG9mIFtBUElGYWlyeV0oaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbGdyaW5iZXJnL0FQSUZhaXJ5KSBhbmQgaXMgaW5zcGlyZWQgYnkgW2ZsYXNrLXNtb3Jlc3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJzaG1hbGxvdy1jb2RlL2ZsYXNrLXNtb3Jlc3QpIGFuZCBbRmFzdEFQSV0oaHR0cHM6Ly9naXRodWIuY29tL3RpYW5nb2xvL2Zhc3RhcGkpIChzZWUgKltDb21wYXJpc29uIGFuZCBNb3RpdmF0aW9uc10oaHR0cHM6Ly9hcGlmbGFzay5jb20vY29tcGFyaXNvbikqIGZvciB0aGUgY29tcGFyaXNvbiBiZXR3ZWVuIHRoZXNlIHByb2plY3RzKS4K + readmeEtag: '"a0c6df3b8655ecaa76a69f8640dce621ab2678a8d7892ada9b815207a4e0a316"' + readmeLastModified: Wed, 08 Nov 2023 13:58:50 GMT repositoryId: 329190167 description: A lightweight Python web API framework. created: '2021-01-13T04:08:48Z' @@ -7374,7 +7371,7 @@ owner: apiflask logo: https://avatars.githubusercontent.com/u/78075725?v=4 license: MIT - repoEtag: '"9215e14a800ea197af0f11214001c1203bc04e573ee7cc2fc8fc5aa31d637621"' + repoEtag: '"ef8a1dae3fe6b4a00c9f3dbc8279d5175685f5124053f1313c74efea3d92fd0a"' repoLastModified: Tue, 07 Nov 2023 12:56:32 GMT category: Server Implementations foundInMaster: true @@ -7392,17 +7389,17 @@ repositoryId: 381857226 description: null created: '2021-06-30T23:29:49Z' - updated: '2023-11-01T11:43:19Z' + updated: '2023-11-08T17:48:50Z' language: TypeScript archived: false - stars: 807 + stars: 810 watchers: 18 - forks: 101 + forks: 102 owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"a2609bd3270a655a6235347dd9447fc69e8c5fb1d141e359c9b5766d64243a82"' - repoLastModified: Wed, 01 Nov 2023 11:43:19 GMT + repoEtag: '"17544b6a95ff7a23ffcef341a60ab56b51019d5bba4ce116c3825ad75b032769"' + repoLastModified: Wed, 08 Nov 2023 17:48:50 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -7417,17 +7414,17 @@ repositoryId: 372032505 description: OpenAPI v3 code generator for go created: '2021-05-29T17:25:48Z' - updated: '2023-11-07T15:50:54Z' + updated: '2023-11-08T09:48:36Z' language: Go archived: false - stars: 810 + stars: 811 watchers: 13 forks: 55 owner: ogen-go logo: https://avatars.githubusercontent.com/u/85122432?v=4 license: Apache-2.0 - repoEtag: '"a31a07ee884ced5dbb6ad1799742d1c7018e9856d004b62b58147b887963e0a4"' - repoLastModified: Tue, 07 Nov 2023 15:50:54 GMT + repoEtag: '"2b55230dd8fa437559a641840f94a16ed1f088d57adfcda5010b9ca53e871395"' + repoLastModified: Wed, 08 Nov 2023 09:48:36 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -7446,11 +7443,11 @@ archived: false stars: 744 watchers: 31 - forks: 49 + forks: 50 owner: stoplightio logo: https://avatars.githubusercontent.com/u/10767217?v=4 license: NOASSERTION - repoEtag: '"ff2b5c6676c06f5d2b0364e320e41e3ac4abcf924a4e4d9ed8753c1f1a458867"' + repoEtag: '"d3667fb181363a26c5993c742c5d87bbeb341b2bb8badd3f421313712878b511"' repoLastModified: Mon, 06 Nov 2023 05:13:14 GMT foundInMaster: true category: @@ -7495,17 +7492,17 @@ repositoryId: 113924383 description: Utility for comparing two OpenAPI specifications. created: '2017-12-12T00:39:30Z' - updated: '2023-11-08T00:06:37Z' + updated: '2023-11-08T13:51:32Z' language: Java archived: false - stars: 681 + stars: 683 watchers: 21 forks: 149 owner: OpenAPITools logo: https://avatars.githubusercontent.com/u/37325267?v=4 license: Apache-2.0 - repoEtag: '"f7532d9200a3f121f24bb37093ce4fa54e0f910ba5fc2eea1e0f98849e8f4fe7"' - repoLastModified: Wed, 08 Nov 2023 00:06:37 GMT + repoEtag: '"02cad59d18433bd07dcc3e244a1a7cbc312f3c03c91b8d12f40430162cc5b68e"' + repoLastModified: Wed, 08 Nov 2023 13:51:32 GMT foundInMaster: true category: Parsers id: c128907e9d949a67c1bda0e0ceda755a @@ -7527,11 +7524,11 @@ archived: false stars: 673 watchers: 15 - forks: 128 + forks: 129 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: BSD-3-Clause - repoEtag: '"150c280586f66cb88facfe26f2cf056fa625be02a1d3f67ce73dbd11c39ab992"' + repoEtag: '"72f678f738cecb0693432ff73642985c421b71eb162f3ea40016e0241897a16d"' repoLastModified: Fri, 27 Oct 2023 15:42:16 GMT foundInMaster: true category: @@ -7695,17 +7692,17 @@ repositoryId: 481579846 description: A library that generates OpenAPI (Swagger) docs from Zod schemas created: '2022-04-14T11:32:57Z' - updated: '2023-11-07T23:41:23Z' + updated: '2023-11-08T14:02:18Z' language: TypeScript archived: false - stars: 481 + stars: 483 watchers: 9 forks: 40 owner: asteasolutions logo: https://avatars.githubusercontent.com/u/5244095?v=4 license: MIT - repoEtag: '"c6e14e5449a235617f18d08a7edcca1baf29d43c8675c5f087f5e9bbd5016882"' - repoLastModified: Tue, 07 Nov 2023 23:41:23 GMT + repoEtag: '"f42f012e9c4d277b9179d22501b6e9bed52d250463dd88a5f81d1edb649be96b"' + repoLastModified: Wed, 08 Nov 2023 14:02:18 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -7824,16 +7821,16 @@ repositoryId: 182983428 description: Generate TypeScript clients to tap into OpenAPI servers created: '2019-04-23T09:40:41Z' - updated: '2023-11-04T14:07:31Z' + updated: '2023-11-08T12:34:39Z' language: TypeScript archived: false - stars: 418 + stars: 419 watchers: 10 forks: 67 owner: oazapfts logo: https://avatars.githubusercontent.com/u/119607625?v=4 - repoEtag: '"0e7488047ef180bca6097ed3ed1eb8bc94272afe98ac82009bede3924c310ec0"' - repoLastModified: Sat, 04 Nov 2023 14:07:31 GMT + repoEtag: '"e6646265621de9bb6b8c79175e0e2eedb23748d72b4bccadca8bd587b3fa4ce3"' + repoLastModified: Wed, 08 Nov 2023 12:34:39 GMT category: Parsers foundInMaster: true oldLocations: @@ -7903,17 +7900,17 @@ High-performance Async REST API, in Python. FastAPI + GINO + Arq + Uvicorn (w/ Redis and PostgreSQL). created: '2019-06-23T18:44:16Z' - updated: '2023-10-19T20:40:22Z' + updated: '2023-11-09T02:53:44Z' language: Python archived: false - stars: 385 + stars: 386 watchers: 12 forks: 42 owner: leosussan logo: https://avatars.githubusercontent.com/u/7993496?v=4 license: MIT - repoEtag: '"c74629a81768566c3439bba252f3df11b3f3ba8e4ffebbcc4130adf21eaa992f"' - repoLastModified: Thu, 19 Oct 2023 20:40:22 GMT + repoEtag: '"cf027079e899c7378d27b888e9bd5131a846e7a9120d13beb82d6d9ad871ea75"' + repoLastModified: Thu, 09 Nov 2023 02:53:44 GMT foundInMaster: true category: Server Implementations id: ca4835106497a7abc28ad7ff8d789dfd @@ -7928,17 +7925,17 @@ repositoryId: 293245471 description: Convert between JSON Schema, TypeScript, GraphQL, Open API and SureType created: '2020-09-06T09:40:04Z' - updated: '2023-11-04T18:03:57Z' + updated: '2023-11-08T22:56:24Z' language: TypeScript archived: false - stars: 360 + stars: 361 watchers: 5 forks: 9 owner: grantila logo: https://avatars.githubusercontent.com/u/5362579?v=4 license: MIT - repoEtag: '"43ec54f0e27476d4968c6d04f8db3ca6f5a96d32c6a907f4f4667bfa5536ee8e"' - repoLastModified: Sat, 04 Nov 2023 18:03:57 GMT + repoEtag: '"d33751f9f01a5bd8132380de59c7090a4007af69d9ce06ff0815daad3c436bed"' + repoLastModified: Wed, 08 Nov 2023 22:56:24 GMT foundInMaster: true category: Parsers id: 31c759927a7f06228ec927500d9722c5 @@ -8148,11 +8145,11 @@ archived: false stars: 289 watchers: 12 - forks: 46 + forks: 45 owner: Mermade logo: https://avatars.githubusercontent.com/u/15950345?v=4 license: Apache-2.0 - repoEtag: '"ce0248fce51e2e132a2a18c2ec9408679009e306c6c34585aa8ac6d0b9aaffdc"' + repoEtag: '"c9736d8febc7191ec7d3c7120dddc12196f6397de4a5dfa7519d53830bc8a7c0"' repoLastModified: Tue, 19 Sep 2023 19:27:50 GMT foundInMaster: true category: Converters @@ -8179,11 +8176,11 @@ archived: false stars: 287 watchers: 9 - forks: 60 + forks: 59 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: Apache-2.0 - repoEtag: '"a37d8bd531b681ab2533478881733185f9519ae832d20370de1e6487f6b64df2"' + repoEtag: '"dbe4bbc1851079a02a0262949cfaceb37b5e956270fc531685862e38ee974100"' repoLastModified: Sun, 29 Oct 2023 05:35:25 GMT category: Parsers oldLocations: @@ -8231,17 +8228,17 @@ An easy-to-use web framework. Supports both WSGI and ASGI modes. Gevent or asyncio, this is the question. created: '2019-06-14T07:39:36Z' - updated: '2023-11-06T03:19:37Z' + updated: '2023-11-08T20:01:51Z' language: Python archived: false - stars: 277 + stars: 276 watchers: 6 forks: 25 owner: abersheeran logo: https://avatars.githubusercontent.com/u/25364828?v=4 license: Apache-2.0 - repoEtag: '"250a3309deff965a3f3df2335d89aceec106798d8727e24c6b57a139d3d51d4f"' - repoLastModified: Mon, 06 Nov 2023 03:19:37 GMT + repoEtag: '"4623d1ad81ce5cb5f01834d57a20187f92b994b020329bd2681099d9fe7d661d"' + repoLastModified: Wed, 08 Nov 2023 20:01:51 GMT category: Server Implementations foundInMaster: true oldLocations: @@ -8297,7 +8294,7 @@ owner: fsprojects logo: https://avatars.githubusercontent.com/u/6001315?v=4 license: Unlicense - repoEtag: '"c0fea096f44f5b4304061bbcab6d9b7975139d882493a50cd056dd3a719db19d"' + repoEtag: '"3389ee054c10282339da992a8f8b8792ab97462fca89efe1e32b1562424d8c11"' repoLastModified: Sun, 29 Oct 2023 01:18:59 GMT foundInMaster: true category: SDK @@ -8323,11 +8320,11 @@ archived: false stars: 243 watchers: 9 - forks: 119 + forks: 118 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause - repoEtag: '"23cd92887e89816ddc38ca4b06120d3ead65d76a99cd11d7379d69fc8861973a"' + repoEtag: '"8e429ce884ecc218d7b52b0262305e0cd344e22ae933ada53415d6e6367e74b9"' repoLastModified: Sun, 05 Nov 2023 04:35:00 GMT category: - Data Validators @@ -8407,7 +8404,7 @@ corresponding API documents and codes to help developers develop APIs more quickly and efficiently. created: '2022-05-05T06:44:36Z' - updated: '2023-11-04T16:52:14Z' + updated: '2023-11-08T14:56:53Z' language: Go archived: false stars: 224 @@ -8416,8 +8413,8 @@ owner: apicat logo: https://avatars.githubusercontent.com/u/64158984?v=4 license: MIT - repoEtag: '"2b622c789c7e33d73099e4147db09d87e3d7be77cde3a0c24af45b4ffb843d51"' - repoLastModified: Sat, 04 Nov 2023 16:52:14 GMT + repoEtag: '"a2d289e33461b105e01b58008caed6396b16004a42c0c91790fa768d868ac71e"' + repoLastModified: Wed, 08 Nov 2023 14:56:53 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -8524,7 +8521,7 @@ owner: asyncapi logo: https://avatars.githubusercontent.com/u/16401334?v=4 license: Apache-2.0 - repoEtag: '"b8972b42db0e2e20f118452f9cd2660d4b8b4e4e992137a401fbca2f1070e586"' + repoEtag: '"231bd1a3f4ce6b2e7b9968a8e99cd428926c883224bb7cfc3b43deeb60750665"' repoLastModified: Thu, 19 Oct 2023 11:26:15 GMT foundInMaster: true - source: openapi3 tags @@ -8569,11 +8566,11 @@ archived: false stars: 206 watchers: 3 - forks: 42 + forks: 41 owner: 0xTheProDev logo: https://avatars.githubusercontent.com/u/14367736?v=4 license: MIT - repoEtag: '"cec3870024a14b9b71909e119e638209f2cb66990b63db96a7bcb31b5e5e1446"' + repoEtag: '"ec6314aa0b54c245947cc9dc38915a03e4d4b494b49861da3188769a2ee13c5c"' repoLastModified: Mon, 06 Nov 2023 08:23:03 GMT category: Server Implementations foundInMaster: true @@ -8739,11 +8736,11 @@ archived: false stars: 187 watchers: 18 - forks: 48 + forks: 49 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"843967c2d65d6100763266e680ab18609d7738815e1967e7d49878f5cd2f05a7"' + repoEtag: '"78678cbc446df5470d81ecd28cb8568eee6772c9870ed372f8e4dcf7b58dd1a7"' repoLastModified: Sun, 22 Oct 2023 19:40:21 GMT foundInMaster: true category: Testing @@ -8795,7 +8792,7 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"f00cba83e834679b5d3a2a067dcf2a7a517e971630e96982e3cec722e122a7f1"' + repoEtag: '"701ca7cffc343216554a7a2b7e9fe0f53423eaeb1571c2c348a957c21dbe135b"' repoLastModified: Fri, 06 Oct 2023 14:07:48 GMT foundInMaster: true category: @@ -8822,7 +8819,7 @@ owner: openapi-library logo: https://avatars.githubusercontent.com/u/53815441?v=4 license: MIT - repoEtag: '"852e79fbcfcdde33b6b6cb84283b57730f74af5c9f8384f8bc0d397350c8dc48"' + repoEtag: '"6154e886cf4b160521049b4d6ef6ae11f2c33b6988f0fb6dd77258eace0569b0"' repoLastModified: Thu, 05 Oct 2023 12:26:12 GMT foundInMaster: true category: Testing @@ -8920,17 +8917,17 @@ security assessments (approved by PortSwigger for inclusion in their official BApp Store). created: '2016-10-05T09:32:42Z' - updated: '2023-10-20T09:05:13Z' + updated: '2023-11-08T13:54:10Z' language: Java archived: false - stars: 174 + stars: 175 watchers: 7 forks: 48 owner: aress31 logo: https://avatars.githubusercontent.com/u/11601622?v=4 license: Apache-2.0 - repoEtag: '"1472cf4b873b3abb998ac8eee0badbc5841b6fb71b8ea68e056736a8d877d66c"' - repoLastModified: Fri, 20 Oct 2023 09:05:13 GMT + repoEtag: '"051316949c6d821c08d79d5ef8ff783bcb089040a00f469fcee029d35820f3b4"' + repoLastModified: Wed, 08 Nov 2023 13:54:10 GMT foundInMaster: true category: - Documentation @@ -9084,17 +9081,17 @@ repositoryId: 232207964 description: OpenAPI structures for Go created: '2020-01-07T00:07:41Z' - updated: '2023-10-29T15:54:28Z' + updated: '2023-11-09T01:44:47Z' language: Go archived: false - stars: 157 + stars: 158 watchers: 3 forks: 18 owner: swaggest logo: https://avatars.githubusercontent.com/u/19609628?v=4 license: MIT - repoEtag: '"b9619640286a1a254f590e60987eb567d5236f443d043e741b701dff6e817d90"' - repoLastModified: Sun, 29 Oct 2023 15:54:28 GMT + repoEtag: '"c8d87abc9eac11a1d22397597085d3efa31f18acd321ca361562b81c8d882b48"' + repoLastModified: Thu, 09 Nov 2023 01:44:47 GMT foundInMaster: true id: 042e78fafa5f6cb0dbca01c64778ab3f - source: openapi3 tags @@ -9113,11 +9110,11 @@ archived: false stars: 156 watchers: 24 - forks: 89 + forks: 90 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"c5a9c7fa4ba3d6895a8b7bd9f95e995bb765f9d6d180a19885961246f0322600"' + repoEtag: '"a2cdba3581c97afb778d00759e29db3db446eded6872099d77ac23729b288f28"' repoLastModified: Tue, 31 Oct 2023 08:48:15 GMT foundInMaster: true category: Parsers @@ -9278,17 +9275,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-11-07T20:51:51Z' + updated: '2023-11-09T02:55:22Z' language: Python archived: false - stars: 147 + stars: 154 watchers: 4 forks: 8 owner: dymmond logo: https://avatars.githubusercontent.com/u/65982469?v=4 license: MIT - repoEtag: '"16f41dc7d89a0222d134204f5d1beb78b1a3e6e8ea810df3e1101e534149effd"' - repoLastModified: Tue, 07 Nov 2023 20:51:51 GMT + repoEtag: '"78d4c89c12b0366ab8e73e82dd5aac630e31cd7276b8707639926d80a0ebb874"' + repoLastModified: Thu, 09 Nov 2023 02:55:22 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -9347,9 +9344,9 @@ id: 30d6812808d99b1b58b61c10028cb8de repositoryMetadata: base64Readme: >- - WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2diMmRvZTN0Z3dqdDQ3Y24vYnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZSldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9icmFuY2gvbWFzdGVyKQohW0NMSSBUb29sXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi93b3JrZmxvd3MvQ0xJJTIwVG9vbC9iYWRnZS5zdmcpCiFbVlNJWF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTSVgvYmFkZ2Uuc3ZnKQohW1ZTIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTJTIwTWFjL2JhZGdlLnN2ZykKIVtTbW9rZSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1Ntb2tlJTIwVGVzdHMvYmFkZ2Uuc3ZnKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbikKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQoKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3YvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPU1hcmtldHBsYWNlKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQVBJQ2xpZW50Q29kZUdlbmVyYXRvcikgClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPVZTJTIwMjAxOSldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMj9sYWJlbD1WUyUyMDIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikgClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9yYXBpY2dlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9yYXBpY2dlbikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvcmFwaWNnZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW51Z2V0KV0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pCgpbIVtidXltZWFjb2ZmZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnV5JTIwbWUlMjBhJTIwY29mZmVlLWRvbmF0ZS15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9hcGljbGllbnRjb2RlZ2VuL2NvbW11bml0eV0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIFJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcgpBIGNvbGxlY3Rpb24gb2YgVmlzdWFsIFN0dWRpbyBDIyBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgZm9yIFN3YWdnZXIgLyBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZXMKCiMjIyMgRG93bmxvYWQKCi0gKipbVmlzdWFsIFN0dWRpbyAyMDIyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikqKgotICoqW1Zpc3VhbCBTdHVkaW8gMjAxOV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcikqKgotICoqW1Zpc3VhbCBTdHVkaW8gMjAxN10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMTcpKioKLSAqKltWaXN1YWwgU3R1ZGlvIGZvciBNYWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9hcGljbGllbnRjb2RlZ2VuL3JlbGVhc2VzL2xhdGVzdCkqKi4gRm9sbG93ICoqW3RoZXNlIGluc3RydWN0aW9uc10oI3Zpc3VhbC1zdHVkaW8tZm9yLW1hYy0xKSoqIGZvciB1cGRhdGUgY29udmVuaWVuY2Ugb24gVmlzdWFsIFN0dWRpbyBmb3IgTWFjCgojIyBGZWF0dXJlcwoKLSBTdXBwb3J0cyBWaXN1YWwgU3R1ZGlvIDIwMTcsIDIwMTksIDIwMjIsIGFuZCBbVmlzdWFsIFN0dWRpbyBmb3IgTWFjXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjLTEpCi0gQWRkIE5ldyBSRVNUIEFQSSBDbGllbnQgdG8gYSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIFVSTCAoZS5nIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24pIHVzaW5nIFtBdXRvUmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0KSwgW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKSwgW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbiksIG9yIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKLSBEZWZpbmUgY3VzdG9tIG5hbWVzcGFjZSBmb3IgdGhlIGdlbmVyYXRlZCBmaWxlCi0gQXV0by11cGRhdGluZyBvZiBnZW5lcmF0ZWQgY29kZSBmaWxlIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIEpTT04gb3IgWUFNTCBmaWxlCi0gR2VuZXJhdGUgY29kZSB1c2luZyBhbiBbTlN3YWdTdHVkaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykgc3BlY2lmaWNhdGlvbiBmaWxlIGJ5IGluY2x1ZGluZyBpdCBpbiB0aGUgcHJvamVjdCBhbmQgdXNpbmcgdGhlICoqR2VuZXJhdGUgd2l0aCBOU3dhZyoqIGNvbnRleHQgbWVudQoKCiMjIyBDdXN0b20gVG9vbHMKCi0gKioqTlN3YWdDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBbTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwXShodHRwczovL2dpdGh1Yi5jb20vUlN1dGVyL05Td2FnL3dpa2kvQ1NoYXJwQ2xpZW50R2VuZXJhdG9yKSBbbnVnZXQgcGFja2FnZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycC8pICoqdjEzLjIwLjAqKgoKLSAqKipPcGVuQXBpQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyAqKltPcGVuQVBJIEdlbmVyYXRvciB2Ny4wLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y3LjAuMSkqKi4KVGhlIG91dHB1dCBmaWxlIGlzIHRoZSByZXN1bHQgb2YgbWVyZ2luZyBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCB1c2luZyB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1nIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqS2lvdGFDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBNaWNyb3NvZnQgcHJvamVjdCAqKltLaW90YSB2MS44LjFdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9vcGVuYXBpL2tpb3RhLykqKiBnZW5lcmF0b3IuIApUaGUgb3V0cHV0IGZpbGUgaXMgdGhlIHJlc3VsdCBvZiBtZXJnaW5nIGFsbCB0aGUgZmlsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBLaW90YSBkb3RuZXQgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1sIENTaGFycCAtZCBbc3dhZ2dlciBmaWxlXSAtbyBbb3V0cHV0IGZpbGVdIC1uIFtkZWZhdWx0IG5hbWVzcGFjZV1gCgotICoqKlN3YWdnZXJDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqU3dhZ2dlciBDb2RlZ2VuIENMSSB2My4wLjM0KiouClRoZSBvdXRwdXQgZmlsZSBpcyB0aGUgcmVzdWx0IG9mIG1lcmdpbmcgYWxsIHRoZSBmaWxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIFN3YWdnZXIgQ29kZWdlbiBDTEkgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1sIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqQXV0b1Jlc3RDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqQXV0b1Jlc3QgdjMuMC4wLWJldGEuMjAyMTA1MDQuMioqIGZvciBPcGVuQVBJIHYzIGFuZCAqKkF1dG9SZXN0IHYyLjAuNDQxNyoqIGZvciBPcGVuQVBJIHYyLiAKVGhlIHJlc3VsdGluZyBmaWxlIGlzIHRoZSBlcXVpdmFsZW50IG9mIHVzaW5nIHRoZSBBdXRvUmVzdCBDTEkgdG9vbCB3aXRoOisKYCAtLWNzaGFycCAtLWlucHV0LWZpbGU9W3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQtZmlsZT1bb3V0cHV0IGZpbGVdIC0tbmFtZXNwYWNlPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1hZGQtY3JlZGVudGlhbHNgCgotICoqKlJlZml0dGVyQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCBpbnRlZmFjZSBmb3IgW1JlZml0XShodHRwczovL2dpdGh1Yi5jb20vcmVhY3RpdmV1aS9yZWZpdCkgdXNpbmcgW1JlZml0dGVyLkNvcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikgW251Z2V0IHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdHRlci5Db3JlLykgKip2MC44LjMqKi4KVGhlIG91dHB1dCBmaWxlIGNvbnRhaW5zIGEgUmVmaXQgaW50ZXJmYWNlIGdlbmVyYXRlZCBieSBbUmVmaXR0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikgYW5kIGNvbnRyYWN0cyBnZW5lcmF0ZWQgdXNpbmcgW05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycF0oaHR0cHM6Ly9naXRodWIuY29tL1JTdXRlci9OU3dhZy93aWtpL0NTaGFycENsaWVudEdlbmVyYXRvcikgW251Z2V0IHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnAvKQoKCiMjIyBEZXBlbmRlbmNpZXMKClRoZSBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgcGlnZ3kgYmFjayBvbiB0b3Agb2Ygd2VsbCBrbm93biBPcGVuIEFQSSBjbGllbnQgY29kZSBnZW5lcmF0b3JzIGxpa2UgKipBdXRvUmVzdCoqLCAqKk5Td2FnKiosICoqT3BlbkFQSSBHZW5lcmF0b3IqKiwgKipNaWNyb3NvZnQgS2lvdGEqKiwgKipSZWZpdHRlcioqLCBhbmQgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiouIFRoZXNlIHRvb2xzIHJlcXVpcmUgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFuZCB0aGUgW0phdmEgUnVudGltZSBFbnZpcm9ubWVudF0oaHR0cHM6Ly9qYXZhLmNvbS9lbi9kb3dubG9hZC9tYW51YWwuanNwKSB0byBiZSBpbnN0YWxsZWQgb24gdGhlIGRldmVsb3BlcnMgbWFjaGluZS4gQWx0ZXJuYXRpdmUgSmF2YSBTREsgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIFtPcGVuSkRLXShodHRwczovL2Fkb3B0b3Blbmpkay5uZXQpIHdvcmtzIGZpbmUgd2l0aCB0aGlzIGV4dGVuc2lvbi4gQnkgZGVmYXVsdCwgdGhlIHBhdGggdG8gKipqYXZhLmV4ZSoqIGlzIHJlYWQgZnJvbSB0aGUgKipKQVZBX0hPTUUqKiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IGlzIGFsc28gY29uZmlndXJhYmxlIGluIHRoZSBTZXR0aW5ncyBzY3JlZW4KClRoZSAqKlN3YWdnZXIgQ29kZWdlbiBDTEkqKiBhbmQgKipPcGVuQVBJIEdlbmVyYXRvcioqIGFyZSBkaXN0cmlidXRlZCBhcyBKQVIgZmlsZXMgYW5kIGFyZSBkb3dubG9hZGVkIG9uIGRlbWFuZCBidXQgcmVxdWlyZXMgdGhlIEphdmEgU0RLIHRvIGJlIGluc3RhbGxlZCBvbiB0aGUgbWFjaGluZS4gKipBdXRvUmVzdCoqIGlzIGluc3RhbGxlZCBvbi1kZW1hbmQgdmlhIFtOUE1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9nZXQtbnBtKSBhcyBhIGdsb2JhbCB0b29sIGFuZCB1c2VzIHRoZSBsYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24uICoqTWljcm9zb2Z0IEtpb3RhKiogaXMgaW5zdGFsbGVkIG9uLWRlbWFuZCBhcyBhIC5ORVQgVG9vbCBhbmQgcmVxdWlyZXMgLk5FVCA3LjAuIFRoaXMgbWVhbnMgdGhhdCB1c2luZyB0aGVzZSBjdXN0b20gdG9vbHMgaGF2ZSBhbiBpbml0aWFsIGRlbGF5IHVwb24gZmlyc3QgdGltZSB1c2UuIAoKKipOU3dhZ1N0dWRpbyoqIGlzIHN0YW5kIGFsb25lIFVJIHRvb2wgZm9yIGVkaXRpbmcgYSAqKi5uc3dhZyoqIHNwZWNpZmljYXRpb24gZmlsZSBmb3IgZ2VuZXJhdGluZyBjb2RlLiBUaGlzIHRvb2wgaXMgb3B0aW9uYWwgdG8gaW5zdGFsbCBhbmQgb2ZmaWNpYWwgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBbTlN3YWcgV2lraSBvbiBHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykuIElmICoqTlN3YWdTdHVkaW8qKiBpcyBub3QgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lIHRoZW4gdGhlIFZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uIHdpbGwgaW5zdGFsbCB0aGUgKipOU3dhZyBDTEkqKiB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFzIGEgZ2xvYmFsIHRvb2wgdXNpbmcgdGhlIGxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbi4gCgpUaGUgKipOU3dhZyoqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykgTnVHZXQgcGFja2FnZQoKVGhlICoqUmVmaXR0ZXIqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgW1JlZml0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXQvNy4wLjApIE51R2V0IHBhY2thZ2UKClRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIGZvbGxvd2luZyBOdUdldCBwYWNrYWdlczoKLSBbUmVzdFNoYXJwXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVzdFNoYXJwLzExMC4yLjApCi0gW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8yLjAuMSkKLSBbUG9sbHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Qb2xseS84LjEuMCkKLSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykKClRoZSBwcm9qZWN0ICoqS2lvdGEqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzCi0gW01pY3Jvc29mdC5LaW90YS5BYnN0cmFjdGlvbnNdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuQWJzdHJhY3Rpb25zKQotIFtNaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5IdHRwLkh0dHBDbGllbnRMaWJyYXJ5KQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Gb3JtXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybSkKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uVGV4dF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLlRleHQpCi0gW01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkpzb25dKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Kc29uKQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5NdWx0aXBhcnRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5NdWx0aXBhcnQpCi0gW01pY3Jvc29mdC5LaW90YS5BdXRoZW50aWNhdGlvbi5BenVyZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5BdXRoZW50aWNhdGlvbi5BenVyZSkKLSBbQXp1cmUuSWRlbnRpdHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9BenVyZS5JZGVudGl0eSkKClRoZSAqKlN3YWdnZXIgQ29kZWdlbiBDTEkqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgW1Jlc3RTaGFycF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL1Jlc3RTaGFycC8xMDUuMS4wKSBhbmQgW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8xLjIuMCkgTnVHZXQgcGFja2FnZXMKClRoZSAqKkF1dG9SZXN0KiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtNaWNyb3NvZnQuUmVzdC5DbGllbnRSdW50aW1lXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0LlJlc3QuQ2xpZW50UnVudGltZS8yLjMuMjQpIGFuZCBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykgTnVHZXQgcGFja2FnZXMKClRoaXMgVmlzdWFsIFN0dWRpbyBFeHRlbnNpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcmVxdWlyZWQgTnVHZXQgcGFja2FnZXMgdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZGVwZW5kcyBvbgoKCiMjIFNjcmVlbnNob3RzCgohW0FkZCAtIEFQSSBDbGllbnQgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGltYWdlcy9hZGQtbmV3LW1lbnUucG5nKQoKIVtFbnRlciBVUkwgdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvYWRkLW5ldy1kaWFsb2cucG5nKQoKIVtTb2x1dGlvbiBFeHBsb3JlciBDb250ZXh0IE1lbnVzXShpbWFnZXMvc29sdXRpb24tZXhwbG9yZXItY29udGV4dC1tZW51LmpwZykKCiFbTlN3YWcgU3R1ZGlvIENvbnRleHQgTWVudV0oaW1hZ2VzL25zd2Fnc3R1ZGlvLWNvbnRleHQtbWVudS5qcGcpCgoKIyMjIFNldHRpbmdzCgpUaGlzIGV4dGVuc2lvbiB3aWxsIGJ5IGRlZmF1bHQgbWFrZSBzb21lIGFzc3VtcHRpb25zIG9uIHRoZSBpbnN0YWxsYXRpb24gcGF0aHMgZm9yICoqSmF2YSoqLCAqKk5Td2FnKiogYW5kICoqTlBNKiogYnV0IGFsc28gcHJvdmlkZXMgb3B0aW9uIHBhZ2VzIGZvciBjb25maWd1cmluZyB0aGlzLiBUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogYW5kIHRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogSkFSIGZpbGVzIGFyZSBieSBkZWZhdWx0IGRvd25sb2FkZWQgdG8gdGhlIHVzZXIgVEVNUCBmb2xkZXIgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSB0byB1c2UgZXhpc3RpbmcgSkFSIGZpbGVzCgohW09wdGlvbnMgLSBHZW5lcmFsXShpbWFnZXMvb3B0aW9ucy1nZW5lcmFsLnBuZykKClN1cHBvcnRzIGN1c3RvbWlzaW5nIGhvdyBBdXRvUmVzdCBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiB0aGUgQyMgZ2VuZXJhdG9yIHNldHRpbmdzIHRoYXQgdGhlIEF1dG9SZXN0IENMSSB0b29sIHByb3ZpZGVzCgohW09wdGlvbnMgLSBBdXRvUmVzdF0oaW1hZ2VzL29wdGlvbnMtYXV0b3Jlc3QucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IE5Td2FnIGdlbmVyYXRlcyBjb2RlIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgYnkgdGhlIE5Td2FnIE51R2V0IHBhY2thZ2UKCiFbT3B0aW9ucyAtIE5Td2FnXShpbWFnZXMvb3B0aW9ucy1uc3dhZy5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgdGhlICoqLm5zd2FnKiogZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBzdWJzZXQgb2YgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGluIE5Td2FnIFN0dWRpbwoKIVtPcHRpb25zIC0gTlN3YWcgU3R1ZGlvXShpbWFnZXMvb3B0aW9ucy1uc3dhZ3N0dWRpby5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgT3BlbkFQSSBHZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgdXNpbmcgdGhlIGFkZGl0aW9uYWwgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHRoZSBPcGVuQVBJIEdlbmVyYXRvciBDTEkgdG9vbCBwcm92aWRlcwoKIVtPcHRpb25zIC0gT3BlbkFQSSBHZW5lcmF0b3JdKGltYWdlcy9vcHRpb25zLW9wZW5hcGlnZW5lcmF0b3IucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IFJlZml0dGVyIGdlbmVyYXRlcyB0aGUgUmVmaXQgaW50ZXJmYWNlLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSB0eXBlIGRpcmVjdGx5IG9yIHdyYXAgaXQgaW5zaWRlIGFuIGBJQXBpUmVzcG9uc2U8VD5gLiBZb3UgY2FuIGFsc28gZGlzYWJsZSBnZW5lcmF0aW5nIGNvbnRyYWN0cyBvciBYTUwgZG9jIHN0eWxlIGNvbW1lbnRzCgohW09wdGlvbnMgLSBSZWZpdHRlcl0oaW1hZ2VzL3JlZml0dGVyLW9wdGlvbnMucG5nKQoKVGhpcyBleHRlbnNpb24gY29sbGVjdHMgZXJyb3JzIGFuZCB0cmFja3MgZmVhdHVyZSB1c2FnZXMgdG8gYSBzZXJ2aWNlIGNhbGxlZCBbRXhjZXB0aW9ubGVzc10oaHR0cHM6Ly9leGNlcHRpb25sZXNzLmNvbSkgYW5kIFtBenVyZSBBcHBsaWNhdGlvbiBJbnNpZ2h0c10oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2F6dXJlLW1vbml0b3IvYXBwL2FwcC1pbnNpZ2h0cy1vdmVydmlldz9XVC5tY19pZD1EVC1NVlAtNTAwNDgyMikuIFRoaXMgaXMgZG9uZSBhbm9ueW1vdXNseSB1c2luZyBhIHN1cHBvcnQga2V5IGFuZCBhIGdlbmVyYXRlZCBhbm9ueW1vdXMgaWRlbnRpdHkgYmFzZWQgb24gYSBzZWN1cmUgaGFzaCBvZiB1c2VybmFtZUBob3N0CgohW09wdGlvbnMgLSBBbmFseXRpY3NdKGltYWdlcy9zdXBwb3J0LWtleS5wbmcpCgoKIyMjIFZpc3VhbCBTdHVkaW8gZm9yIE1hYwoKIVtBZGQgLSBBUEkgQ2xpZW50IGZyb20gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvdnNtYWMtYWRkLW5ldy1tZW51LnBuZykKCiFbRW50ZXIgVVJMIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaW1hZ2VzL3ZzbWFjLWFkZC1uZXctZGlhbG9nLnBuZykKCiFbU29sdXRpb24gRXhwbG9yZXIgQ29udGV4dCBNZW51c10oaW1hZ2VzL3ZzbWFjLWdlbmVyYXRlLWNvZGUucG5nKQoKIVtOU3dhZyBTdHVkaW8gQ29udGV4dCBNZW51XShpbWFnZXMvdnNtYWMtbnN3YWctc3R1ZGlvLnBuZykKCgojIEluc3RhbGxhdGlvbgoKVGhlIFZpc3VhbCBTdHVkaW8gZXh0ZW5zaW9uIGNhbiBiZSBpbnN0YWxsZWQgZGlyZWN0bHkgZnJvbSBWaXN1YWwgU3R1ZGlvIDIwMTkgYW5kIDIwMjIgdmlhIHRoZSAqKkV4dGVuc2lvbnMgRGlhbG9nIEJveCoqLiBUaGUgcHJvY2VzcyBpcyBiZXN0IGRlc2NyaWJlZCBpbiB0aGUgb2ZmaWNpYWwgTWljcm9zb2Z0IGRvY3VtZW50YXRpb24gZm9yIFtNYW5hZ2luZyBleHRlbnNpb25zIGZvciBWaXN1YWwgU3R1ZGlvXShodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy92aXN1YWxzdHVkaW8vaWRlL2ZpbmRpbmctYW5kLXVzaW5nLXZpc3VhbC1zdHVkaW8tZXh0ZW5zaW9ucz92aWV3PXZzLTIwMTkmV1QubWNfaWQ9RFQtTVZQLTUwMDQ4MjIpCgojIyBWaXN1YWwgU3R1ZGlvIGZvciBNYWMKClRoaXMgaW5zdGFsbGF0aW9uIHByb2Nlc3MgZm9yICoqVmlzdWFsIFN0dWRpbyBmb3IgTWFjKiogaXMgY3VycmVudGx5IGEgYml0IHRyb3VibGVzb21lIGFzIHRoZSBNb25vRGV2ZWxvcCBBZGRpbiBSZXBvc2l0b3J5IGlzIGN1cnJlbnRseSBub3QgYWNjZXB0aW5nIG5ldyB1c2VycyBzbyBJIGNhbid0IHJlYWxseSByZWdpc3RlciBhbmQgc2V0dXAgbXkgZXh0ZW5zaW9uLgoKVGhlcmUgYXJlIDIgd2F5cyBvZiBpbnN0YWxsaW5nIG15IGV4dGVuc2lvbiBvbiBWaXN1YWwgU3R1ZGlvIGZvciBNYWM6IEFkZGluZyBhIGN1c3RvbSBleHRlbnNpb24gcmVwb3NpdG9yeSBvciBJbnN0YWxsaW5nIHRoZSAqKi5tcGFjayoqIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgRXh0ZW5zaW9ucyBNYW5hZ2VyCgojIyMgQWRkaW5nIGEgbmV3IGV4dGVuc2lvbiByZXBvc2l0b3J5CgpIZXJlJ3Mgd2hhdCB5b3UgbmVlZCB0byBkbzoKCi0gT3BlbiB0aGUgVmlzdWFsIFN0dWRpbyBmb3IgTWFjICoqRXh0ZW5zaW9uIE1hbmFnZXIqKgotIFlvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBtZW51ICoqVmlzdWFsIFN0dWRpbyoqIC0+ICoqRXh0ZW50aW9ucyoqCgohW09wZW4gRXh0ZW5zaW9ucyBEaWFsb2cgQm94XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1tZW51LnBuZykKCi0gU2VsZWN0IHRoZSAqKkdhbGxlcnkqKiBUYWIKLSBFeHBhbmQgdGhlIFJlcG9zaXRvcnkgZHJvcCBkb3duIGJveCBhbmQgc2VsZWN0ICoqTWFuYWdlIFJlcG9zaXRvcmllcyoqCgohW01hbmFnZSBSZXBvc2l0b3JpZXNdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1hbmFnZS1yZXBvc2l0b3JpZXMucG5nKQoKLSBQcmVzcyBvbiB0aGUgKipBZGQqKiBidXR0b24gdG8gYWRkIGEgbmV3IGN1c3RvbSBleHRlbnNpb24gcmVwb3NpdG9yeQoKIVtNYW5hZ2UgUmVwb3NpdG9yaWVzXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1yZXBvc2l0b3JpZXMucG5nKQoKLSBSZWdpc3RlciBhbiBvbmxpbmUgcmVwb3NpdG9yeSBhdCAqKmh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tL3ZzbWFjL21haW4ubXJlcCoqCi0gQ2xpY2sgKipPSyoqCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1hZGQtcmVwb3NpdG9yeS5wbmcpCgotIE5vdyBteSBleHRlbnNpb24gcmVwb3NpdG9yeSBpcyBhZGRlZCB0byB0aGUgbGlzdAotIE1ha2Ugc3VyZSB0aGF0IHRoaXMgaXMgZW5hYmxlZCAoaW5kaWNhdGVkIGJ5IGEgY2hlY2sgYm94KQoKIVtBZGQgUmVwb3NpdG9yeSBEaWFsb2ddKGltYWdlcy92c21hYy1leHRlbnNpb25zLWFkZGVkLXJlcG9zaXRvcnkucG5nKQoKLSBZb3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIHNlZSBteSBleHRlbnNpb25zIGZyb20gdGhlICoqR2FsbGVyeSoqIHRhYgoKIVtBZGRlZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1nYWxsZXJ5LnBuZykKCi0gQnkgYWRkaW5nIG15IGV4dGVuc2lvbiByZXBvc2l0b3J5IHlvdSB3aWxsIGJlIGFibGUgdG8gY29udmVuaWVudGx5IHVwZGF0ZSBteSBleHRlbnNpb24gdXNpbmcgdGhlIFZpc3VhbCBTdHVkaW8gZm9yIE1hYyBFeHRlbnNpb24gTWFuYWdlcgoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZXMucG5nKQoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZS1pbnN0YWxsLnBuZykKCiFbQWRkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy11cGRhdGUtaW5zdGFsbC1wcm9ncmVzcy5wbmcpCgojIyMgSW5zdGFsbGluZyB0aGUgKioubXBhY2sqKiBmaWxlIGRpcmVjdGx5CgpIZXJlJ3Mgd2hhdCB5b3UgbmVlZCB0byBkbzoKLSBEb3dubG9hZCB0aGUgbGF0ZXN0ICoqLm1wYWNrIGZpbGUqKiBmcm9tIHRoZSBbTGF0ZXN0IEdpdGh1YiBSZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9yZWxlYXNlcy9sYXRlc3QpCi0gTm93IGZyb20gd2l0aGluIFZpc3VhbCBTdHVkaW8gZm9yIE1hYyB5b3UgbmVlZCB0byBsYXVuY2ggdGhlICoqRXh0ZW5zaW9ucyBEaWFsb2cgQm94KiouIFlvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBtZW51ICoqVmlzdWFsIFN0dWRpbyoqIC0+ICoqRXh0ZW50aW9ucyoqCgohW09wZW4gRXh0ZW5zaW9ucyBEaWFsb2cgQm94XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1tZW51LnBuZykKCi0gQ2xpY2sgb24gdGhlICoqSW5zdGFsbCBmcm9tIEZpbGUqKiBidXR0b24KCiFbTWFudWFsbHkgaW5zdGFsbCAubXBhY2sgZmlsZV0oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtaW5zdGFsbC5wbmcpCgotIEJyb3dzZSB0byB0aGUgLm1wYWNrIGZpbGUgYW5kIHNlbGVjdCBpdC4gWW91IHdpbGwgYmUgcHJvbXB0ZWQgd2l0aCBhIGNvbmZpcm1hdGlvbiBkaWFsb2cKCiFbQ29uZmlybSAubXBhY2sgZmlsZSBpbnN0YWxsXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1pbnN0YWxsLWNvbmZpcm0ucG5nKQoKLSBDbGljayAqKkluc3RhbGwqKiBhbmQgcmVzdGFydCBWaXN1YWwgU3R1ZGlvIGZvciBNYWMKLSBUbyBWZXJpZnkgdGhhdCB0aGUgQWRkLWluIHdhcyBpbnN0YWxsZWQgeW91IGNhbiByZS1vcGVuIHRoZSBFeHRlbnNpb25zIERpYWxvZyBCb3gsIHNlbGVjdCB0aGUgKipJbnN0YWxsZWQqKiB0YWIgYW5kIGV4cGFuZCB0aGUgKipJREUgRXh0ZW5zaW9ucyoqLiBZb3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIHRoZSAqKlJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcioqLgoKLSBVbmluc3RhbGxpbmcgdGhlIEFkZC1pbiBpcyBkb25lIGluIHRoaXMgc2FtZSBkaWFsb2cgYm94IGJ5IGNsaWNraW5nIHRoZSAqKlVuaW5zdGFsbCoqIGJ1dHRvbgoKIVtNYW51YWxseSB1bmluc3RhbGwgQWRkLWluXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy11bmluc3RhbGwucG5nKQoKCiMgQ3Jvc3MgUGxhdGZvcm0gQ29tbWFuZCBMaW5lIFRvb2wKQWxsIGN1c3RvbSB0b29scyBtZW50aW9uZWQgYWJvdmUgYXJlIGFsc28gaW1wbGVtZW50ZWQgaW4gYSBjcm9zcyBwbGF0Zm9ybSBjb21tYW5kIGxpbmUgYXBwbGljYXRpb24KCiMjIyMgUmVxdWlyZW1lbnRzCi0gLk5FVCA2LjAgcnVudGltZQotIEphdmEgUnVudGltZSBFbnZpcm9ubWVudAotIE5QTQoKIyMjIEluc3RhbGxhdGlvbgpUaGUgdG9vbCBjYW4gYmUgaW5zdGFsbGVkIGFzIGEgLk5FVCBDb3JlIGdsb2JhbCB0b29sIHRoYXQgeW91IGNhbiBjYWxsIGZyb20gdGhlIHNoZWxsIC8gY29tbWFuZCBsaW5lCmBgYApkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIHJhcGljZ2VuCmBgYApvciBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBbaGVyZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JhcGljZ2VuKSB0byBpbnN0YWxsIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0b29sCgojIyMgVXNhZ2UKU2luY2UgdGhlIHRvb2wgaXMgcHVibGlzaGVkIGFzIGEgLk5FVCBDb3JlIFRvb2wsIGl0IGNhbiBiZSBsYXVuY2hlZCBmcm9tIGFueXdoZXJlIHVzaW5nIGFueSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIGJ5IGNhbGxpbmcgKipyYXBpY2dlbioqLgpUaGUgaGVscCBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgd2hlbiBub3Qgc3BlY2lmeWluZyBhbnkgYXJndW1lbnRzIHRvICoqcmFwaWNnZW4qKgoKYGBgClVzYWdlOiByYXBpY2dlbiBbY29tbWFuZF0gW29wdGlvbnNdCgpPcHRpb25zOgogIC12fC0tdmVyYm9zZSAgICAgICBTaG93IHZlcmJvc2Ugb3V0cHV0CiAgLT98LWh8LS1oZWxwICAgICAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KCkNvbW1hbmRzOgogIGNzaGFycCAgICAgICAgICAgICBHZW5lcmF0ZSBDIyBBUEkgY2xpZW50cwogIGptZXRlciAgICAgICAgICAgICBHZW5lcmF0ZSBBcGFjaGUgSk1ldGVyIHRlc3QgcGxhbnMKICBvcGVuYXBpLWdlbmVyYXRvciAgR2VuZXJhdGUgY29kZSB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciAodjcuMC4xKS4KICAgICAgICAgICAgICAgICAgICAgU2VlIHN1cHBvcnRlZCBnZW5lcmF0b3JzIGF0IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9kb2NzL2dlbmVyYXRvcnMvCiAgdHlwZXNjcmlwdCAgICAgICAgIEdlbmVyYXRlIFR5cGVTY3JpcHQgQVBJIGNsaWVudHMKClJ1biAncmFwaWNnZW4gW2NvbW1hbmRdIC0/fC1ofC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21tYW5kLgpgYGAKClNvbWUgaGVscCBpbmZvcm1hdGlvbiBpcyBhbHNvIHByb3ZpZGVkIHBlciBjb21tYW5kIGFuZCBjYW4gYmUgbGF1bmNoZWQgYnkgCgpgYGAKcmFwaWNnZW4gW2NvbW1hbmQgbmFtZV0gLT8KYGBgCgpvcgoKYGBgCnJhcGljZ2VuIFtjb21tYW5kIG5hbWVdIFtzdWIgY29tbWFuZCBuYW1lXSAtPwpgYGAKCkZvciBleGFtcGxlOgoKYGBgCnJhcGljZ2VuIGNzaGFycCAtPwpgYGAgCgp3aWxsIG91dHB1dCB0aGlzOgoKYGBgCkdlbmVyYXRlIEMjIEFQSSBjbGllbnRzCgpVc2FnZTogcmFwaWNnZW4gY3NoYXJwIFtjb21tYW5kXSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLT98LWh8LS1oZWxwICBTaG93IGhlbHAgaW5mb3JtYXRpb24uCgpDb21tYW5kczoKICBhdXRvcmVzdCAgICAgIEF1dG9SZXN0ICh2My4wLjAtYmV0YS4yMDIxMDUwNC4yKQogIGtpb3RhICAgICAgICAgTWljcm9zb2Z0IEtpb3RhICh2MS44LjEpCiAgbnN3YWcgICAgICAgICBOU3dhZyAodjEzLjIwLjApCiAgb3BlbmFwaSAgICAgICBPcGVuQVBJIEdlbmVyYXRvciAodjcuMC4xKQogIHJlZml0dGVyICAgICAgUmVmaXR0ZXIgKHYwLjguMykKICBzd2FnZ2VyICAgICAgIFN3YWdnZXIgQ29kZWdlbiBDTEkgKHYzLjAuMzQpCgpSdW4gJ2NzaGFycCBbY29tbWFuZF0gLT98LWh8LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuCgpgYGAKCmFuZAoKYGBgCnJhcGljZ2VuIGNzaGFycCBhdXRvcmVzdCAtPwpgYGAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgU3dhZ2dlciAvIE9wZW4gQVBJIGNsaWVudCB1c2luZyBBdXRvUmVzdAoKVXNhZ2U6IHJ1biBhdXRvcmVzdCBbb3B0aW9uc10gPHN3YWdnZXJGaWxlPiA8bmFtZXNwYWNlPiA8b3V0cHV0RmlsZT4KCkFyZ3VtZW50czoKICBzd2FnZ2VyRmlsZSAgIFBhdGggdG8gdGhlIFN3YWdnZXIgLyBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIGZpbGUKICBuYW1lc3BhY2UgICAgIERlZmF1bHQgbmFtZXNwYWNlIHRvIGluIHRoZSBnZW5lcmF0ZWQgY29kZQogIG91dHB1dEZpbGUgICAgT3V0cHV0IGZpbGVuYW1lIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgY29kZSB0by4gRGVmYXVsdCBpcyB0aGUgc3dhZ2dlckZpbGUgLmNzCgpPcHRpb25zOgogIC0/fC1ofC0taGVscCAgU2hvdyBoZWxwIGluZm9ybWF0aW9uCmBgYAoKb3IgCgpgYGAKcmFwaWNnZW4gdHlwZXNjcmlwdCAtPwpgYGAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgVHlwZVNjcmlwdCBBUEkgY2xpZW50CgpVc2FnZTogcmFwaWNnZW4gdHlwZXNjcmlwdCBbb3B0aW9uc10gPGdlbmVyYXRvcj4gPHN3YWdnZXJGaWxlPiA8b3V0cHV0UGF0aD4KCkFyZ3VtZW50czoKICBnZW5lcmF0b3IgICAgICAgICBUaGUgdGVjaCBzdGFjayB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgY2xpZW50IGxpYnJhcnkKICAgICAgICAgICAgICAgICAgICBBbGxvd2VkIHZhbHVlcyBhcmU6IEFuZ3VsYXIsIEF1cmVsaWEsIEF4aW9zLCBGZXRjaCwgSW52ZXJzaWZ5LCBKUXVlcnksIE5lc3RKUywgTm9kZSwgUmVkdXhRdWVyeSwKICAgICAgICAgICAgICAgICAgICBSeGpzLgogICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWUgaXM6IEFuZ3VsYXIuCiAgc3dhZ2dlckZpbGUgICAgICAgUGF0aCB0byB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIG91dHB1dFBhdGggICAgICAgIE91dHB1dCBmb2xkZXIgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBjb2RlIHRvCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpczogdHlwZXNjcmlwdC1nZW5lcmF0ZWQtY29kZS4KCk9wdGlvbnM6CiAgLW5sfC0tbm8tbG9nZ2luZyAgRGlzYWJsZXMgQW5hbHl0aWNzIGFuZCBFcnJvciBSZXBvcnRpbmcKICAtP3wtaHwtLWhlbHAgICAgICBTaG93IGhlbHAgaW5mb3JtYXRpb24uCmBgYAoKIyMgVXNhZ2UgRXhhbXBsZXM6CgpMZXQncyBzYXkgd2UgaGF2ZSBhIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgY2FsbGVkICoqU3dhZ2dlci5qc29uKioKCkZvciBzdGFydGVycywgd2UgY2FuIHVzZSB0aGUgU3dhZ2dlciBQZXRzdG9yZSBzcGVjLiBIZXJlJ3MgYW4gZXhhbXBsZSBwb3dlcnNoZWxsIHNjcmlwdCBmb3IgZG93bmxvYWRpbmcgaXQKCmBgYApJbnZva2UtV2ViUmVxdWVzdCAtVXJpIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92My9zd2FnZ2VyLmpzb24gLU91dEZpbGUgU3dhZ2dlci5qc29uCmBgYAoKSW4gY2FzZSB5b3UgZG9uJ3QgaGF2ZSB0aGUgQ0xJIHRvb2wgaW5zdGFsbGVkIHlvdSBjYW4gaW5zdGFsbCBpdCBieQoKYGBgCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgcmFwaWNnZW4KYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKkF1dG9SZXN0KioKCmBgYApyYXBpY2dlbiBjc2hhcnAgYXV0b3Jlc3QgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9BdXRvUmVzdE91dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqS2lvdGEqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBraW90YSBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL09wZW5BcGlPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKk5Td2FnKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgbnN3YWcgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9OU3dhZ091dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqU3dhZ2dlciBDb2RlZ2VuIENMSSoqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIHN3YWdnZXIgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9Td2FnZ2VyT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipPcGVuQVBJIEdlbmVyYXRvcioqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIG9wZW5hcGkgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9PcGVuQXBpT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgKipKTWV0ZXIqKiB0ZXN0IHBsYW5zCgpgYGAKcmFwaWNnZW4gam1ldGVyIFN3YWdnZXIuanNvbgpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIGZvciAqKlR5cGVTY3JpcHQqKgoKYGBgCnJhcGljZ2VuIHR5cGVzY3JpcHQgQW5ndWxhciBTd2FnZ2VyLmpzb24KYGBgCgojCgpGb3IgdGlwcyBhbmQgdHJpY2tzIG9uIHNvZnR3YXJlIGRldmVsb3BtZW50LCBjaGVjayBvdXQgW215IGJsb2ddKGh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tKQoKSWYgeW91IGZpbmQgdGhpcyB1c2VmdWwgYW5kIGZlZWwgYSBiaXQgZ2VuZXJvdXMgdGhlbiBmZWVsIGZyZWUgdG8gW2J1eSBtZSBhIGNvZmZlZSDimJVdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vY2hyaXN0aWFuaGVsbGUpCgo= - readmeEtag: '"77fc012aca5ca35119cfd2b93220277bd41036f209fe9e4792d6a44edf9b6a85"' - readmeLastModified: Fri, 03 Nov 2023 14:29:31 GMT + WyFbQnVpbGQgc3RhdHVzXShodHRwczovL2NpLmFwcHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2diMmRvZTN0Z3dqdDQ3Y24vYnJhbmNoL21hc3Rlcj9zdmc9dHJ1ZSldKGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9icmFuY2gvbWFzdGVyKQohW0NMSSBUb29sXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi93b3JrZmxvd3MvQ0xJJTIwVG9vbC9iYWRnZS5zdmcpCiFbVlNJWF0oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTSVgvYmFkZ2Uuc3ZnKQohW1ZTIE1hY10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1ZTJTIwTWFjL2JhZGdlLnN2ZykKIVtTbW9rZSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdGlhbmhlbGxlL2FwaWNsaWVudGNvZGVnZW4vd29ya2Zsb3dzL1Ntb2tlJTIwVGVzdHMvYmFkZ2Uuc3ZnKQoKWyFbTWFpbnRhaW5hYmlsaXR5IFJhdGluZ10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9c3FhbGVfcmF0aW5nKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtSZWxpYWJpbGl0eSBSYXRpbmddKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPXJlbGlhYmlsaXR5X3JhdGluZyldKGh0dHBzOi8vc29uYXJjbG91ZC5pby9kYXNoYm9hcmQ/aWQ9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbikKWyFbU2VjdXJpdHkgUmF0aW5nXShodHRwczovL3NvbmFyY2xvdWQuaW8vYXBpL3Byb2plY3RfYmFkZ2VzL21lYXN1cmU/cHJvamVjdD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuJm1ldHJpYz1zZWN1cml0eV9yYXRpbmcpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW0J1Z3NdKGh0dHBzOi8vc29uYXJjbG91ZC5pby9hcGkvcHJvamVjdF9iYWRnZXMvbWVhc3VyZT9wcm9qZWN0PWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4mbWV0cmljPWJ1Z3MpXShodHRwczovL3NvbmFyY2xvdWQuaW8vZGFzaGJvYXJkP2lkPWNocmlzdGlhbmhlbGxlX2FwaWNsaWVudGNvZGVnZW4pClshW1Z1bG5lcmFiaWxpdGllc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9dnVsbmVyYWJpbGl0aWVzKV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2Rhc2hib2FyZD9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb2RlIFNtZWxsc10oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y29kZV9zbWVsbHMpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQpbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9zb25hcmNsb3VkLmlvL2FwaS9wcm9qZWN0X2JhZGdlcy9tZWFzdXJlP3Byb2plY3Q9Y2hyaXN0aWFuaGVsbGVfYXBpY2xpZW50Y29kZWdlbiZtZXRyaWM9Y292ZXJhZ2UpXShodHRwczovL3NvbmFyY2xvdWQuaW8vc3VtbWFyeS9uZXdfY29kZT9pZD1jaHJpc3RpYW5oZWxsZV9hcGljbGllbnRjb2RlZ2VuKQoKWyFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3YvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPU1hcmtldHBsYWNlKV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQVBJQ2xpZW50Q29kZUdlbmVyYXRvcikgClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yP2xhYmVsPVZTJTIwMjAxOSldKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcildKGh0dHBzOi8vbWFya2V0cGxhY2UudmlzdWFsc3R1ZGlvLmNvbS9pdGVtcz9pdGVtTmFtZT1DaHJpc3RpYW5SZXNtYUhlbGxlLkFQSUNsaWVudENvZGVHZW5lcmF0b3IpClshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL2QvQ2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMj9sYWJlbD1WUyUyMDIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikgClshW1JhdGluZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby92aXN1YWwtc3R1ZGlvLW1hcmtldHBsYWNlL3N0YXJzL0NocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMjIpXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BUElDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvdi9yYXBpY2dlbi5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9yYXBpY2dlbikKWyFbTnVHZXRdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnVnZXQvZHQvcmFwaWNnZW4uc3ZnP3N0eWxlPWZsYXQtc3F1YXJlJmxhYmVsPW51Z2V0KV0oaHR0cDovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvcmFwaWNnZW4pCgpbIVtidXltZWFjb2ZmZWVdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnV5JTIwbWUlMjBhJTIwY29mZmVlLWRvbmF0ZS15ZWxsb3cuc3ZnKV0oaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9jaHJpc3RpYW5oZWxsZSkKWyFbSm9pbiB0aGUgY2hhdCBhdCBodHRwczovL2dpdHRlci5pbS9hcGljbGllbnRjb2RlZ2VuL2NvbW11bml0eV0oaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5LnN2ZyldKGh0dHBzOi8vZ2l0dGVyLmltL2FwaWNsaWVudGNvZGVnZW4vY29tbXVuaXR5P3V0bV9zb3VyY2U9YmFkZ2UmdXRtX21lZGl1bT1iYWRnZSZ1dG1fY2FtcGFpZ249cHItYmFkZ2UmdXRtX2NvbnRlbnQ9YmFkZ2UpCgojIFJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcgpBIGNvbGxlY3Rpb24gb2YgVmlzdWFsIFN0dWRpbyBDIyBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgZm9yIFN3YWdnZXIgLyBPcGVuQVBJIHNwZWNpZmljYXRpb24gZmlsZXMKCiMjIyMgRG93bmxvYWQKCi0gKipbVmlzdWFsIFN0dWRpbyAyMDIyXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9Q2hyaXN0aWFuUmVzbWFIZWxsZS5BcGlDbGllbnRDb2RlR2VuZXJhdG9yMjAyMikqKgotICoqW1Zpc3VhbCBTdHVkaW8gMjAxOV0oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcikqKgotICoqW1Zpc3VhbCBTdHVkaW8gMjAxN10oaHR0cHM6Ly9tYXJrZXRwbGFjZS52aXN1YWxzdHVkaW8uY29tL2l0ZW1zP2l0ZW1OYW1lPUNocmlzdGlhblJlc21hSGVsbGUuQXBpQ2xpZW50Q29kZUdlbmVyYXRvcjIwMTcpKioKLSAqKltWaXN1YWwgU3R1ZGlvIGZvciBNYWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9hcGljbGllbnRjb2RlZ2VuL3JlbGVhc2VzL2xhdGVzdCkqKi4gRm9sbG93ICoqW3RoZXNlIGluc3RydWN0aW9uc10oI3Zpc3VhbC1zdHVkaW8tZm9yLW1hYy0xKSoqIGZvciB1cGRhdGUgY29udmVuaWVuY2Ugb24gVmlzdWFsIFN0dWRpbyBmb3IgTWFjCgojIyBGZWF0dXJlcwoKLSBTdXBwb3J0cyBWaXN1YWwgU3R1ZGlvIDIwMTcsIDIwMTksIDIwMjIsIGFuZCBbVmlzdWFsIFN0dWRpbyBmb3IgTWFjXSgjdmlzdWFsLXN0dWRpby1mb3ItbWFjLTEpCi0gQWRkIE5ldyBSRVNUIEFQSSBDbGllbnQgdG8gYSBwcm9qZWN0IGZyb20gYW4gT3BlbkFQSSBzcGVjaWZpY2F0aW9uIFVSTCAoZS5nIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92Mi9zd2FnZ2VyLmpzb24pIHVzaW5nIFtBdXRvUmVzdF0oaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F1dG9yZXN0KSwgW05Td2FnXShodHRwczovL2dpdGh1Yi5jb20vUmljb1N1dGVyL05Td2FnKSwgW1N3YWdnZXIgQ29kZWdlbl0oaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbiksIG9yIFtPcGVuQVBJIEdlbmVyYXRvcl0oaHR0cHM6Ly9naXRodWIuY29tL09wZW5BUElUb29scy9vcGVuYXBpLWdlbmVyYXRvcikKLSBEZWZpbmUgY3VzdG9tIG5hbWVzcGFjZSBmb3IgdGhlIGdlbmVyYXRlZCBmaWxlCi0gQXV0by11cGRhdGluZyBvZiBnZW5lcmF0ZWQgY29kZSBmaWxlIHdoZW4gY2hhbmdlcyBhcmUgbWFkZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIEpTT04gb3IgWUFNTCBmaWxlCi0gR2VuZXJhdGUgY29kZSB1c2luZyBhbiBbTlN3YWdTdHVkaW9dKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykgc3BlY2lmaWNhdGlvbiBmaWxlIGJ5IGluY2x1ZGluZyBpdCBpbiB0aGUgcHJvamVjdCBhbmQgdXNpbmcgdGhlICoqR2VuZXJhdGUgd2l0aCBOU3dhZyoqIGNvbnRleHQgbWVudQoKCiMjIyBDdXN0b20gVG9vbHMKCi0gKioqTlN3YWdDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBbTlN3YWcuQ29kZUdlbmVyYXRpb24uQ1NoYXJwXShodHRwczovL2dpdGh1Yi5jb20vUlN1dGVyL05Td2FnL3dpa2kvQ1NoYXJwQ2xpZW50R2VuZXJhdG9yKSBbbnVnZXQgcGFja2FnZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycC8pICoqdjEzLjIwLjAqKgoKLSAqKipPcGVuQXBpQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCB1c2luZyAqKltPcGVuQVBJIEdlbmVyYXRvciB2Ny4wLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuQVBJVG9vbHMvb3BlbmFwaS1nZW5lcmF0b3IvcmVsZWFzZXMvdGFnL3Y3LjAuMSkqKi4KVGhlIG91dHB1dCBmaWxlIGlzIHRoZSByZXN1bHQgb2YgbWVyZ2luZyBhbGwgdGhlIGZpbGVzIGdlbmVyYXRlZCB1c2luZyB0aGUgT3BlbkFQSSBHZW5lcmF0b3IgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1nIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqS2lvdGFDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nIHRoZSBNaWNyb3NvZnQgcHJvamVjdCAqKltLaW90YSB2MS44LjFdKGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9vcGVuYXBpL2tpb3RhLykqKiBnZW5lcmF0b3IuIApUaGUgb3V0cHV0IGZpbGUgaXMgdGhlIHJlc3VsdCBvZiBtZXJnaW5nIGFsbCB0aGUgZmlsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBLaW90YSBkb3RuZXQgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1sIENTaGFycCAtZCBbc3dhZ2dlciBmaWxlXSAtbyBbb3V0cHV0IGZpbGVdIC1uIFtkZWZhdWx0IG5hbWVzcGFjZV1gCgotICoqKlN3YWdnZXJDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqU3dhZ2dlciBDb2RlZ2VuIENMSSB2My4wLjM0KiouClRoZSBvdXRwdXQgZmlsZSBpcyB0aGUgcmVzdWx0IG9mIG1lcmdpbmcgYWxsIHRoZSBmaWxlcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIFN3YWdnZXIgQ29kZWdlbiBDTEkgdG9vbCB3aXRoOgpgIGdlbmVyYXRlIC1sIGNzaGFycCAtLWlucHV0LXNwZWMgW3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQgW291dHB1dCBmaWxlXSAtRGFwaVRlc3RzPWZhbHNlIC1EbW9kZWxUZXN0cz1mYWxzZSAtRHBhY2thZ2VOYW1lPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1za2lwLW92ZXJ3cml0ZWAKCi0gKioqQXV0b1Jlc3RDb2RlR2VuZXJhdG9yKioqIC0gR2VuZXJhdGVzIGEgc2luZ2xlIGZpbGUgQyMgUkVTVCBBUEkgQ2xpZW50IHVzaW5nICoqQXV0b1Jlc3QgdjMuMC4wLWJldGEuMjAyMTA1MDQuMioqIGZvciBPcGVuQVBJIHYzIGFuZCAqKkF1dG9SZXN0IHYyLjAuNDQxNyoqIGZvciBPcGVuQVBJIHYyLiAKVGhlIHJlc3VsdGluZyBmaWxlIGlzIHRoZSBlcXVpdmFsZW50IG9mIHVzaW5nIHRoZSBBdXRvUmVzdCBDTEkgdG9vbCB3aXRoOisKYCAtLWNzaGFycCAtLWlucHV0LWZpbGU9W3N3YWdnZXIgZmlsZV0gLS1vdXRwdXQtZmlsZT1bb3V0cHV0IGZpbGVdIC0tbmFtZXNwYWNlPVtkZWZhdWx0IG5hbWVzcGFjZV0gLS1hZGQtY3JlZGVudGlhbHNgCgotICoqKlJlZml0dGVyQ29kZUdlbmVyYXRvcioqKiAtIEdlbmVyYXRlcyBhIHNpbmdsZSBmaWxlIEMjIFJFU1QgQVBJIENsaWVudCBpbnRlZmFjZSBmb3IgW1JlZml0XShodHRwczovL2dpdGh1Yi5jb20vcmVhY3RpdmV1aS9yZWZpdCkgdXNpbmcgW1JlZml0dGVyLkNvcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikgW251Z2V0IHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9SZWZpdHRlci5Db3JlLykgKip2MC44LjQqKi4KVGhlIG91dHB1dCBmaWxlIGNvbnRhaW5zIGEgUmVmaXQgaW50ZXJmYWNlIGdlbmVyYXRlZCBieSBbUmVmaXR0ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RpYW5oZWxsZS9yZWZpdHRlcikgYW5kIGNvbnRyYWN0cyBnZW5lcmF0ZWQgdXNpbmcgW05Td2FnLkNvZGVHZW5lcmF0aW9uLkNTaGFycF0oaHR0cHM6Ly9naXRodWIuY29tL1JTdXRlci9OU3dhZy93aWtpL0NTaGFycENsaWVudEdlbmVyYXRvcikgW251Z2V0IHBhY2thZ2VdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9OU3dhZy5Db2RlR2VuZXJhdGlvbi5DU2hhcnAvKQoKCiMjIyBEZXBlbmRlbmNpZXMKClRoZSBjdXN0b20gdG9vbCBjb2RlIGdlbmVyYXRvcnMgcGlnZ3kgYmFjayBvbiB0b3Agb2Ygd2VsbCBrbm93biBPcGVuIEFQSSBjbGllbnQgY29kZSBnZW5lcmF0b3JzIGxpa2UgKipBdXRvUmVzdCoqLCAqKk5Td2FnKiosICoqT3BlbkFQSSBHZW5lcmF0b3IqKiwgKipNaWNyb3NvZnQgS2lvdGEqKiwgKipSZWZpdHRlcioqLCBhbmQgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiouIFRoZXNlIHRvb2xzIHJlcXVpcmUgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFuZCB0aGUgW0phdmEgUnVudGltZSBFbnZpcm9ubWVudF0oaHR0cHM6Ly9qYXZhLmNvbS9lbi9kb3dubG9hZC9tYW51YWwuanNwKSB0byBiZSBpbnN0YWxsZWQgb24gdGhlIGRldmVsb3BlcnMgbWFjaGluZS4gQWx0ZXJuYXRpdmUgSmF2YSBTREsgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIFtPcGVuSkRLXShodHRwczovL2Fkb3B0b3Blbmpkay5uZXQpIHdvcmtzIGZpbmUgd2l0aCB0aGlzIGV4dGVuc2lvbi4gQnkgZGVmYXVsdCwgdGhlIHBhdGggdG8gKipqYXZhLmV4ZSoqIGlzIHJlYWQgZnJvbSB0aGUgKipKQVZBX0hPTUUqKiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYnV0IGlzIGFsc28gY29uZmlndXJhYmxlIGluIHRoZSBTZXR0aW5ncyBzY3JlZW4KClRoZSAqKlN3YWdnZXIgQ29kZWdlbiBDTEkqKiBhbmQgKipPcGVuQVBJIEdlbmVyYXRvcioqIGFyZSBkaXN0cmlidXRlZCBhcyBKQVIgZmlsZXMgYW5kIGFyZSBkb3dubG9hZGVkIG9uIGRlbWFuZCBidXQgcmVxdWlyZXMgdGhlIEphdmEgU0RLIHRvIGJlIGluc3RhbGxlZCBvbiB0aGUgbWFjaGluZS4gKipBdXRvUmVzdCoqIGlzIGluc3RhbGxlZCBvbi1kZW1hbmQgdmlhIFtOUE1dKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9nZXQtbnBtKSBhcyBhIGdsb2JhbCB0b29sIGFuZCB1c2VzIHRoZSBsYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24uICoqTWljcm9zb2Z0IEtpb3RhKiogaXMgaW5zdGFsbGVkIG9uLWRlbWFuZCBhcyBhIC5ORVQgVG9vbCBhbmQgcmVxdWlyZXMgLk5FVCA3LjAuIFRoaXMgbWVhbnMgdGhhdCB1c2luZyB0aGVzZSBjdXN0b20gdG9vbHMgaGF2ZSBhbiBpbml0aWFsIGRlbGF5IHVwb24gZmlyc3QgdGltZSB1c2UuIAoKKipOU3dhZ1N0dWRpbyoqIGlzIHN0YW5kIGFsb25lIFVJIHRvb2wgZm9yIGVkaXRpbmcgYSAqKi5uc3dhZyoqIHNwZWNpZmljYXRpb24gZmlsZSBmb3IgZ2VuZXJhdGluZyBjb2RlLiBUaGlzIHRvb2wgaXMgb3B0aW9uYWwgdG8gaW5zdGFsbCBhbmQgb2ZmaWNpYWwgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBbTlN3YWcgV2lraSBvbiBHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SaWNvU3V0ZXIvTlN3YWcvd2lraS9OU3dhZ1N0dWRpbykuIElmICoqTlN3YWdTdHVkaW8qKiBpcyBub3QgaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lIHRoZW4gdGhlIFZpc3VhbCBTdHVkaW8gRXh0ZW5zaW9uIHdpbGwgaW5zdGFsbCB0aGUgKipOU3dhZyBDTEkqKiB2aWEgW05QTV0oaHR0cHM6Ly93d3cubnBtanMuY29tL2dldC1ucG0pIGFzIGEgZ2xvYmFsIHRvb2wgdXNpbmcgdGhlIGxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbi4gCgpUaGUgKipOU3dhZyoqIGNvZGUgZ2VuZXJhdG9yIHByb2R1Y2VzIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykgTnVHZXQgcGFja2FnZQoKVGhlICoqUmVmaXR0ZXIqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgW1JlZml0XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVmaXQvNy4wLjApIE51R2V0IHBhY2thZ2UKClRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIGZvbGxvd2luZyBOdUdldCBwYWNrYWdlczoKLSBbUmVzdFNoYXJwXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvUmVzdFNoYXJwLzExMC4yLjApCi0gW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8yLjAuMSkKLSBbUG9sbHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9Qb2xseS84LjEuMCkKLSBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykKClRoZSBwcm9qZWN0ICoqS2lvdGEqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgZm9sbG93aW5nIE51R2V0IHBhY2thZ2VzCi0gW01pY3Jvc29mdC5LaW90YS5BYnN0cmFjdGlvbnNdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuQWJzdHJhY3Rpb25zKQotIFtNaWNyb3NvZnQuS2lvdGEuSHR0cC5IdHRwQ2xpZW50TGlicmFyeV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5IdHRwLkh0dHBDbGllbnRMaWJyYXJ5KQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Gb3JtXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uRm9ybSkKLSBbTWljcm9zb2Z0Lktpb3RhLlNlcmlhbGl6YXRpb24uVGV4dF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLlRleHQpCi0gW01pY3Jvc29mdC5LaW90YS5TZXJpYWxpemF0aW9uLkpzb25dKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5Kc29uKQotIFtNaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5NdWx0aXBhcnRdKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9NaWNyb3NvZnQuS2lvdGEuU2VyaWFsaXphdGlvbi5NdWx0aXBhcnQpCi0gW01pY3Jvc29mdC5LaW90YS5BdXRoZW50aWNhdGlvbi5BenVyZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL01pY3Jvc29mdC5LaW90YS5BdXRoZW50aWNhdGlvbi5BenVyZSkKLSBbQXp1cmUuSWRlbnRpdHldKGh0dHBzOi8vd3d3Lm51Z2V0Lm9yZy9wYWNrYWdlcy9BenVyZS5JZGVudGl0eSkKClRoZSAqKlN3YWdnZXIgQ29kZWdlbiBDTEkqKiBjb2RlIGdlbmVyYXRvciBwcm9kdWNlcyBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgW1Jlc3RTaGFycF0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL1Jlc3RTaGFycC8xMDUuMS4wKSBhbmQgW0pzb25TdWJUeXBlc10oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL0pzb25TdWJUeXBlcy8xLjIuMCkgTnVHZXQgcGFja2FnZXMKClRoZSAqKkF1dG9SZXN0KiogY29kZSBnZW5lcmF0b3IgcHJvZHVjZXMgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIFtNaWNyb3NvZnQuUmVzdC5DbGllbnRSdW50aW1lXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTWljcm9zb2Z0LlJlc3QuQ2xpZW50UnVudGltZS8yLjMuMjQpIGFuZCBbTmV3dG9uc29mdC5Kc29uXShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvTmV3dG9uc29mdC5Kc29uLzEzLjAuMykgTnVHZXQgcGFja2FnZXMKClRoaXMgVmlzdWFsIFN0dWRpbyBFeHRlbnNpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgcmVxdWlyZWQgTnVHZXQgcGFja2FnZXMgdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZGVwZW5kcyBvbgoKCiMjIFNjcmVlbnNob3RzCgohW0FkZCAtIEFQSSBDbGllbnQgZnJvbSBPcGVuQVBJIFNwZWNpZmljYXRpb25dKGltYWdlcy9hZGQtbmV3LW1lbnUucG5nKQoKIVtFbnRlciBVUkwgdG8gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvYWRkLW5ldy1kaWFsb2cucG5nKQoKIVtTb2x1dGlvbiBFeHBsb3JlciBDb250ZXh0IE1lbnVzXShpbWFnZXMvc29sdXRpb24tZXhwbG9yZXItY29udGV4dC1tZW51LmpwZykKCiFbTlN3YWcgU3R1ZGlvIENvbnRleHQgTWVudV0oaW1hZ2VzL25zd2Fnc3R1ZGlvLWNvbnRleHQtbWVudS5qcGcpCgoKIyMjIFNldHRpbmdzCgpUaGlzIGV4dGVuc2lvbiB3aWxsIGJ5IGRlZmF1bHQgbWFrZSBzb21lIGFzc3VtcHRpb25zIG9uIHRoZSBpbnN0YWxsYXRpb24gcGF0aHMgZm9yICoqSmF2YSoqLCAqKk5Td2FnKiogYW5kICoqTlBNKiogYnV0IGFsc28gcHJvdmlkZXMgb3B0aW9uIHBhZ2VzIGZvciBjb25maWd1cmluZyB0aGlzLiBUaGUgKipTd2FnZ2VyIENvZGVnZW4gQ0xJKiogYW5kIHRoZSAqKk9wZW5BUEkgR2VuZXJhdG9yKiogSkFSIGZpbGVzIGFyZSBieSBkZWZhdWx0IGRvd25sb2FkZWQgdG8gdGhlIHVzZXIgVEVNUCBmb2xkZXIgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gc3BlY2lmeSB0byB1c2UgZXhpc3RpbmcgSkFSIGZpbGVzCgohW09wdGlvbnMgLSBHZW5lcmFsXShpbWFnZXMvb3B0aW9ucy1nZW5lcmFsLnBuZykKClN1cHBvcnRzIGN1c3RvbWlzaW5nIGhvdyBBdXRvUmVzdCBnZW5lcmF0ZXMgY29kZSBiYXNlZCBvbiB0aGUgQyMgZ2VuZXJhdG9yIHNldHRpbmdzIHRoYXQgdGhlIEF1dG9SZXN0IENMSSB0b29sIHByb3ZpZGVzCgohW09wdGlvbnMgLSBBdXRvUmVzdF0oaW1hZ2VzL29wdGlvbnMtYXV0b3Jlc3QucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IE5Td2FnIGdlbmVyYXRlcyBjb2RlIHVzaW5nIHRoZSBwcm9wZXJ0aWVzIGV4cG9zZWQgYnkgdGhlIE5Td2FnIE51R2V0IHBhY2thZ2UKCiFbT3B0aW9ucyAtIE5Td2FnXShpbWFnZXMvb3B0aW9ucy1uc3dhZy5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgdGhlICoqLm5zd2FnKiogZmlsZSBpcyBnZW5lcmF0ZWQgdXNpbmcgYSBzdWJzZXQgb2YgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGluIE5Td2FnIFN0dWRpbwoKIVtPcHRpb25zIC0gTlN3YWcgU3R1ZGlvXShpbWFnZXMvb3B0aW9ucy1uc3dhZ3N0dWRpby5wbmcpCgpTdXBwb3J0cyBjdXN0b21pc2luZyBob3cgT3BlbkFQSSBHZW5lcmF0b3IgZ2VuZXJhdGVzIGNvZGUgdXNpbmcgdGhlIGFkZGl0aW9uYWwgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHRoZSBPcGVuQVBJIEdlbmVyYXRvciBDTEkgdG9vbCBwcm92aWRlcwoKIVtPcHRpb25zIC0gT3BlbkFQSSBHZW5lcmF0b3JdKGltYWdlcy9vcHRpb25zLW9wZW5hcGlnZW5lcmF0b3IucG5nKQoKU3VwcG9ydHMgY3VzdG9taXNpbmcgaG93IFJlZml0dGVyIGdlbmVyYXRlcyB0aGUgUmVmaXQgaW50ZXJmYWNlLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHdoZXRoZXIgdG8gcmV0dXJuIHRoZSB0eXBlIGRpcmVjdGx5IG9yIHdyYXAgaXQgaW5zaWRlIGFuIGBJQXBpUmVzcG9uc2U8VD5gLiBZb3UgY2FuIGFsc28gZGlzYWJsZSBnZW5lcmF0aW5nIGNvbnRyYWN0cyBvciBYTUwgZG9jIHN0eWxlIGNvbW1lbnRzCgohW09wdGlvbnMgLSBSZWZpdHRlcl0oaW1hZ2VzL3JlZml0dGVyLW9wdGlvbnMucG5nKQoKVGhpcyBleHRlbnNpb24gY29sbGVjdHMgZXJyb3JzIGFuZCB0cmFja3MgZmVhdHVyZSB1c2FnZXMgdG8gYSBzZXJ2aWNlIGNhbGxlZCBbRXhjZXB0aW9ubGVzc10oaHR0cHM6Ly9leGNlcHRpb25sZXNzLmNvbSkgYW5kIFtBenVyZSBBcHBsaWNhdGlvbiBJbnNpZ2h0c10oaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2F6dXJlLW1vbml0b3IvYXBwL2FwcC1pbnNpZ2h0cy1vdmVydmlldz9XVC5tY19pZD1EVC1NVlAtNTAwNDgyMikuIFRoaXMgaXMgZG9uZSBhbm9ueW1vdXNseSB1c2luZyBhIHN1cHBvcnQga2V5IGFuZCBhIGdlbmVyYXRlZCBhbm9ueW1vdXMgaWRlbnRpdHkgYmFzZWQgb24gYSBzZWN1cmUgaGFzaCBvZiB1c2VybmFtZUBob3N0CgohW09wdGlvbnMgLSBBbmFseXRpY3NdKGltYWdlcy9zdXBwb3J0LWtleS5wbmcpCgoKIyMjIFZpc3VhbCBTdHVkaW8gZm9yIE1hYwoKIVtBZGQgLSBBUEkgQ2xpZW50IGZyb20gT3BlbkFQSSBTcGVjaWZpY2F0aW9uXShpbWFnZXMvdnNtYWMtYWRkLW5ldy1tZW51LnBuZykKCiFbRW50ZXIgVVJMIHRvIE9wZW5BUEkgU3BlY2lmaWNhdGlvbl0oaW1hZ2VzL3ZzbWFjLWFkZC1uZXctZGlhbG9nLnBuZykKCiFbU29sdXRpb24gRXhwbG9yZXIgQ29udGV4dCBNZW51c10oaW1hZ2VzL3ZzbWFjLWdlbmVyYXRlLWNvZGUucG5nKQoKIVtOU3dhZyBTdHVkaW8gQ29udGV4dCBNZW51XShpbWFnZXMvdnNtYWMtbnN3YWctc3R1ZGlvLnBuZykKCgojIEluc3RhbGxhdGlvbgoKVGhlIFZpc3VhbCBTdHVkaW8gZXh0ZW5zaW9uIGNhbiBiZSBpbnN0YWxsZWQgZGlyZWN0bHkgZnJvbSBWaXN1YWwgU3R1ZGlvIDIwMTkgYW5kIDIwMjIgdmlhIHRoZSAqKkV4dGVuc2lvbnMgRGlhbG9nIEJveCoqLiBUaGUgcHJvY2VzcyBpcyBiZXN0IGRlc2NyaWJlZCBpbiB0aGUgb2ZmaWNpYWwgTWljcm9zb2Z0IGRvY3VtZW50YXRpb24gZm9yIFtNYW5hZ2luZyBleHRlbnNpb25zIGZvciBWaXN1YWwgU3R1ZGlvXShodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy92aXN1YWxzdHVkaW8vaWRlL2ZpbmRpbmctYW5kLXVzaW5nLXZpc3VhbC1zdHVkaW8tZXh0ZW5zaW9ucz92aWV3PXZzLTIwMTkmV1QubWNfaWQ9RFQtTVZQLTUwMDQ4MjIpCgojIyBWaXN1YWwgU3R1ZGlvIGZvciBNYWMKClRoaXMgaW5zdGFsbGF0aW9uIHByb2Nlc3MgZm9yICoqVmlzdWFsIFN0dWRpbyBmb3IgTWFjKiogaXMgY3VycmVudGx5IGEgYml0IHRyb3VibGVzb21lIGFzIHRoZSBNb25vRGV2ZWxvcCBBZGRpbiBSZXBvc2l0b3J5IGlzIGN1cnJlbnRseSBub3QgYWNjZXB0aW5nIG5ldyB1c2VycyBzbyBJIGNhbid0IHJlYWxseSByZWdpc3RlciBhbmQgc2V0dXAgbXkgZXh0ZW5zaW9uLgoKVGhlcmUgYXJlIDIgd2F5cyBvZiBpbnN0YWxsaW5nIG15IGV4dGVuc2lvbiBvbiBWaXN1YWwgU3R1ZGlvIGZvciBNYWM6IEFkZGluZyBhIGN1c3RvbSBleHRlbnNpb24gcmVwb3NpdG9yeSBvciBJbnN0YWxsaW5nIHRoZSAqKi5tcGFjayoqIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgRXh0ZW5zaW9ucyBNYW5hZ2VyCgojIyMgQWRkaW5nIGEgbmV3IGV4dGVuc2lvbiByZXBvc2l0b3J5CgpIZXJlJ3Mgd2hhdCB5b3UgbmVlZCB0byBkbzoKCi0gT3BlbiB0aGUgVmlzdWFsIFN0dWRpbyBmb3IgTWFjICoqRXh0ZW5zaW9uIE1hbmFnZXIqKgotIFlvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBtZW51ICoqVmlzdWFsIFN0dWRpbyoqIC0+ICoqRXh0ZW50aW9ucyoqCgohW09wZW4gRXh0ZW5zaW9ucyBEaWFsb2cgQm94XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1tZW51LnBuZykKCi0gU2VsZWN0IHRoZSAqKkdhbGxlcnkqKiBUYWIKLSBFeHBhbmQgdGhlIFJlcG9zaXRvcnkgZHJvcCBkb3duIGJveCBhbmQgc2VsZWN0ICoqTWFuYWdlIFJlcG9zaXRvcmllcyoqCgohW01hbmFnZSBSZXBvc2l0b3JpZXNdKGltYWdlcy92c21hYy1leHRlbnNpb25zLW1hbmFnZS1yZXBvc2l0b3JpZXMucG5nKQoKLSBQcmVzcyBvbiB0aGUgKipBZGQqKiBidXR0b24gdG8gYWRkIGEgbmV3IGN1c3RvbSBleHRlbnNpb24gcmVwb3NpdG9yeQoKIVtNYW5hZ2UgUmVwb3NpdG9yaWVzXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1yZXBvc2l0b3JpZXMucG5nKQoKLSBSZWdpc3RlciBhbiBvbmxpbmUgcmVwb3NpdG9yeSBhdCAqKmh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tL3ZzbWFjL21haW4ubXJlcCoqCi0gQ2xpY2sgKipPSyoqCgohW0FkZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1hZGQtcmVwb3NpdG9yeS5wbmcpCgotIE5vdyBteSBleHRlbnNpb24gcmVwb3NpdG9yeSBpcyBhZGRlZCB0byB0aGUgbGlzdAotIE1ha2Ugc3VyZSB0aGF0IHRoaXMgaXMgZW5hYmxlZCAoaW5kaWNhdGVkIGJ5IGEgY2hlY2sgYm94KQoKIVtBZGQgUmVwb3NpdG9yeSBEaWFsb2ddKGltYWdlcy92c21hYy1leHRlbnNpb25zLWFkZGVkLXJlcG9zaXRvcnkucG5nKQoKLSBZb3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIHNlZSBteSBleHRlbnNpb25zIGZyb20gdGhlICoqR2FsbGVyeSoqIHRhYgoKIVtBZGRlZCBSZXBvc2l0b3J5XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1nYWxsZXJ5LnBuZykKCi0gQnkgYWRkaW5nIG15IGV4dGVuc2lvbiByZXBvc2l0b3J5IHlvdSB3aWxsIGJlIGFibGUgdG8gY29udmVuaWVudGx5IHVwZGF0ZSBteSBleHRlbnNpb24gdXNpbmcgdGhlIFZpc3VhbCBTdHVkaW8gZm9yIE1hYyBFeHRlbnNpb24gTWFuYWdlcgoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZXMucG5nKQoKIVtBZGQgUmVwb3NpdG9yeV0oaW1hZ2VzL3ZzbWFjLXVwZGF0ZS1pbnN0YWxsLnBuZykKCiFbQWRkIFJlcG9zaXRvcnldKGltYWdlcy92c21hYy11cGRhdGUtaW5zdGFsbC1wcm9ncmVzcy5wbmcpCgojIyMgSW5zdGFsbGluZyB0aGUgKioubXBhY2sqKiBmaWxlIGRpcmVjdGx5CgpIZXJlJ3Mgd2hhdCB5b3UgbmVlZCB0byBkbzoKLSBEb3dubG9hZCB0aGUgbGF0ZXN0ICoqLm1wYWNrIGZpbGUqKiBmcm9tIHRoZSBbTGF0ZXN0IEdpdGh1YiBSZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vY2hyaXN0aWFuaGVsbGUvYXBpY2xpZW50Y29kZWdlbi9yZWxlYXNlcy9sYXRlc3QpCi0gTm93IGZyb20gd2l0aGluIFZpc3VhbCBTdHVkaW8gZm9yIE1hYyB5b3UgbmVlZCB0byBsYXVuY2ggdGhlICoqRXh0ZW5zaW9ucyBEaWFsb2cgQm94KiouIFlvdSBjYW4gZG8gdGhpcyBmcm9tIHRoZSBtZW51ICoqVmlzdWFsIFN0dWRpbyoqIC0+ICoqRXh0ZW50aW9ucyoqCgohW09wZW4gRXh0ZW5zaW9ucyBEaWFsb2cgQm94XShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1tZW51LnBuZykKCi0gQ2xpY2sgb24gdGhlICoqSW5zdGFsbCBmcm9tIEZpbGUqKiBidXR0b24KCiFbTWFudWFsbHkgaW5zdGFsbCAubXBhY2sgZmlsZV0oaW1hZ2VzL3ZzbWFjLWV4dGVuc2lvbnMtaW5zdGFsbC5wbmcpCgotIEJyb3dzZSB0byB0aGUgLm1wYWNrIGZpbGUgYW5kIHNlbGVjdCBpdC4gWW91IHdpbGwgYmUgcHJvbXB0ZWQgd2l0aCBhIGNvbmZpcm1hdGlvbiBkaWFsb2cKCiFbQ29uZmlybSAubXBhY2sgZmlsZSBpbnN0YWxsXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy1pbnN0YWxsLWNvbmZpcm0ucG5nKQoKLSBDbGljayAqKkluc3RhbGwqKiBhbmQgcmVzdGFydCBWaXN1YWwgU3R1ZGlvIGZvciBNYWMKLSBUbyBWZXJpZnkgdGhhdCB0aGUgQWRkLWluIHdhcyBpbnN0YWxsZWQgeW91IGNhbiByZS1vcGVuIHRoZSBFeHRlbnNpb25zIERpYWxvZyBCb3gsIHNlbGVjdCB0aGUgKipJbnN0YWxsZWQqKiB0YWIgYW5kIGV4cGFuZCB0aGUgKipJREUgRXh0ZW5zaW9ucyoqLiBZb3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIHRoZSAqKlJFU1QgQVBJIENsaWVudCBDb2RlIEdlbmVyYXRvcioqLgoKLSBVbmluc3RhbGxpbmcgdGhlIEFkZC1pbiBpcyBkb25lIGluIHRoaXMgc2FtZSBkaWFsb2cgYm94IGJ5IGNsaWNraW5nIHRoZSAqKlVuaW5zdGFsbCoqIGJ1dHRvbgoKIVtNYW51YWxseSB1bmluc3RhbGwgQWRkLWluXShpbWFnZXMvdnNtYWMtZXh0ZW5zaW9ucy11bmluc3RhbGwucG5nKQoKCiMgQ3Jvc3MgUGxhdGZvcm0gQ29tbWFuZCBMaW5lIFRvb2wKQWxsIGN1c3RvbSB0b29scyBtZW50aW9uZWQgYWJvdmUgYXJlIGFsc28gaW1wbGVtZW50ZWQgaW4gYSBjcm9zcyBwbGF0Zm9ybSBjb21tYW5kIGxpbmUgYXBwbGljYXRpb24KCiMjIyMgUmVxdWlyZW1lbnRzCi0gLk5FVCA2LjAgcnVudGltZQotIEphdmEgUnVudGltZSBFbnZpcm9ubWVudAotIE5QTQoKIyMjIEluc3RhbGxhdGlvbgpUaGUgdG9vbCBjYW4gYmUgaW5zdGFsbGVkIGFzIGEgLk5FVCBDb3JlIGdsb2JhbCB0b29sIHRoYXQgeW91IGNhbiBjYWxsIGZyb20gdGhlIHNoZWxsIC8gY29tbWFuZCBsaW5lCmBgYApkb3RuZXQgdG9vbCBpbnN0YWxsIC0tZ2xvYmFsIHJhcGljZ2VuCmBgYApvciBieSBmb2xsb3dpbmcgdGhlIGluc3RydWN0aW9ucyBbaGVyZV0oaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzL3JhcGljZ2VuKSB0byBpbnN0YWxsIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0b29sCgojIyMgVXNhZ2UKU2luY2UgdGhlIHRvb2wgaXMgcHVibGlzaGVkIGFzIGEgLk5FVCBDb3JlIFRvb2wsIGl0IGNhbiBiZSBsYXVuY2hlZCBmcm9tIGFueXdoZXJlIHVzaW5nIGFueSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIGJ5IGNhbGxpbmcgKipyYXBpY2dlbioqLgpUaGUgaGVscCBpbmZvcm1hdGlvbiBpcyBkaXNwbGF5ZWQgd2hlbiBub3Qgc3BlY2lmeWluZyBhbnkgYXJndW1lbnRzIHRvICoqcmFwaWNnZW4qKgoKYGBgClVzYWdlOiByYXBpY2dlbiBbY29tbWFuZF0gW29wdGlvbnNdCgpPcHRpb25zOgogIC12fC0tdmVyYm9zZSAgICAgICBTaG93IHZlcmJvc2Ugb3V0cHV0CiAgLT98LWh8LS1oZWxwICAgICAgIFNob3cgaGVscCBpbmZvcm1hdGlvbi4KCkNvbW1hbmRzOgogIGNzaGFycCAgICAgICAgICAgICBHZW5lcmF0ZSBDIyBBUEkgY2xpZW50cwogIGptZXRlciAgICAgICAgICAgICBHZW5lcmF0ZSBBcGFjaGUgSk1ldGVyIHRlc3QgcGxhbnMKICBvcGVuYXBpLWdlbmVyYXRvciAgR2VuZXJhdGUgY29kZSB1c2luZyBPcGVuQVBJIEdlbmVyYXRvciAodjcuMC4xKS4KICAgICAgICAgICAgICAgICAgICAgU2VlIHN1cHBvcnRlZCBnZW5lcmF0b3JzIGF0IGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaC9kb2NzL2dlbmVyYXRvcnMvCiAgdHlwZXNjcmlwdCAgICAgICAgIEdlbmVyYXRlIFR5cGVTY3JpcHQgQVBJIGNsaWVudHMKClJ1biAncmFwaWNnZW4gW2NvbW1hbmRdIC0/fC1ofC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21tYW5kLgpgYGAKClNvbWUgaGVscCBpbmZvcm1hdGlvbiBpcyBhbHNvIHByb3ZpZGVkIHBlciBjb21tYW5kIGFuZCBjYW4gYmUgbGF1bmNoZWQgYnkgCgpgYGAKcmFwaWNnZW4gW2NvbW1hbmQgbmFtZV0gLT8KYGBgCgpvcgoKYGBgCnJhcGljZ2VuIFtjb21tYW5kIG5hbWVdIFtzdWIgY29tbWFuZCBuYW1lXSAtPwpgYGAKCkZvciBleGFtcGxlOgoKYGBgCnJhcGljZ2VuIGNzaGFycCAtPwpgYGAgCgp3aWxsIG91dHB1dCB0aGlzOgoKYGBgCkdlbmVyYXRlIEMjIEFQSSBjbGllbnRzCgpVc2FnZTogcmFwaWNnZW4gY3NoYXJwIFtjb21tYW5kXSBbb3B0aW9uc10KCk9wdGlvbnM6CiAgLT98LWh8LS1oZWxwICBTaG93IGhlbHAgaW5mb3JtYXRpb24uCgpDb21tYW5kczoKICBhdXRvcmVzdCAgICAgIEF1dG9SZXN0ICh2My4wLjAtYmV0YS4yMDIxMDUwNC4yKQogIGtpb3RhICAgICAgICAgTWljcm9zb2Z0IEtpb3RhICh2MS44LjEpCiAgbnN3YWcgICAgICAgICBOU3dhZyAodjEzLjIwLjApCiAgb3BlbmFwaSAgICAgICBPcGVuQVBJIEdlbmVyYXRvciAodjcuMC4xKQogIHJlZml0dGVyICAgICAgUmVmaXR0ZXIgKHYwLjguNCkKICBzd2FnZ2VyICAgICAgIFN3YWdnZXIgQ29kZWdlbiBDTEkgKHYzLjAuMzQpCgpSdW4gJ2NzaGFycCBbY29tbWFuZF0gLT98LWh8LS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuCgpgYGAKCmFuZAoKYGBgCnJhcGljZ2VuIGNzaGFycCBhdXRvcmVzdCAtPwpgYGAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgU3dhZ2dlciAvIE9wZW4gQVBJIGNsaWVudCB1c2luZyBBdXRvUmVzdAoKVXNhZ2U6IHJ1biBhdXRvcmVzdCBbb3B0aW9uc10gPHN3YWdnZXJGaWxlPiA8bmFtZXNwYWNlPiA8b3V0cHV0RmlsZT4KCkFyZ3VtZW50czoKICBzd2FnZ2VyRmlsZSAgIFBhdGggdG8gdGhlIFN3YWdnZXIgLyBPcGVuIEFQSSBzcGVjaWZpY2F0aW9uIGZpbGUKICBuYW1lc3BhY2UgICAgIERlZmF1bHQgbmFtZXNwYWNlIHRvIGluIHRoZSBnZW5lcmF0ZWQgY29kZQogIG91dHB1dEZpbGUgICAgT3V0cHV0IGZpbGVuYW1lIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgY29kZSB0by4gRGVmYXVsdCBpcyB0aGUgc3dhZ2dlckZpbGUgLmNzCgpPcHRpb25zOgogIC0/fC1ofC0taGVscCAgU2hvdyBoZWxwIGluZm9ybWF0aW9uCmBgYAoKb3IgCgpgYGAKcmFwaWNnZW4gdHlwZXNjcmlwdCAtPwpgYGAKCndpbGwgb3V0cHV0IHRoaXM6CgpgYGAKR2VuZXJhdGUgVHlwZVNjcmlwdCBBUEkgY2xpZW50CgpVc2FnZTogcmFwaWNnZW4gdHlwZXNjcmlwdCBbb3B0aW9uc10gPGdlbmVyYXRvcj4gPHN3YWdnZXJGaWxlPiA8b3V0cHV0UGF0aD4KCkFyZ3VtZW50czoKICBnZW5lcmF0b3IgICAgICAgICBUaGUgdGVjaCBzdGFjayB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgY2xpZW50IGxpYnJhcnkKICAgICAgICAgICAgICAgICAgICBBbGxvd2VkIHZhbHVlcyBhcmU6IEFuZ3VsYXIsIEF1cmVsaWEsIEF4aW9zLCBGZXRjaCwgSW52ZXJzaWZ5LCBKUXVlcnksIE5lc3RKUywgTm9kZSwgUmVkdXhRdWVyeSwKICAgICAgICAgICAgICAgICAgICBSeGpzLgogICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWUgaXM6IEFuZ3VsYXIuCiAgc3dhZ2dlckZpbGUgICAgICAgUGF0aCB0byB0aGUgU3dhZ2dlciAvIE9wZW4gQVBJIHNwZWNpZmljYXRpb24gZmlsZQogIG91dHB1dFBhdGggICAgICAgIE91dHB1dCBmb2xkZXIgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBjb2RlIHRvCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpczogdHlwZXNjcmlwdC1nZW5lcmF0ZWQtY29kZS4KCk9wdGlvbnM6CiAgLW5sfC0tbm8tbG9nZ2luZyAgRGlzYWJsZXMgQW5hbHl0aWNzIGFuZCBFcnJvciBSZXBvcnRpbmcKICAtP3wtaHwtLWhlbHAgICAgICBTaG93IGhlbHAgaW5mb3JtYXRpb24uCmBgYAoKIyMgVXNhZ2UgRXhhbXBsZXM6CgpMZXQncyBzYXkgd2UgaGF2ZSBhIE9wZW5BUEkgU3BlY2lmaWNhdGlvbnMgZG9jdW1lbnQgY2FsbGVkICoqU3dhZ2dlci5qc29uKioKCkZvciBzdGFydGVycywgd2UgY2FuIHVzZSB0aGUgU3dhZ2dlciBQZXRzdG9yZSBzcGVjLiBIZXJlJ3MgYW4gZXhhbXBsZSBwb3dlcnNoZWxsIHNjcmlwdCBmb3IgZG93bmxvYWRpbmcgaXQKCmBgYApJbnZva2UtV2ViUmVxdWVzdCAtVXJpIGh0dHBzOi8vcGV0c3RvcmUuc3dhZ2dlci5pby92My9zd2FnZ2VyLmpzb24gLU91dEZpbGUgU3dhZ2dlci5qc29uCmBgYAoKSW4gY2FzZSB5b3UgZG9uJ3QgaGF2ZSB0aGUgQ0xJIHRvb2wgaW5zdGFsbGVkIHlvdSBjYW4gaW5zdGFsbCBpdCBieQoKYGBgCmRvdG5ldCB0b29sIGluc3RhbGwgLS1nbG9iYWwgcmFwaWNnZW4KYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKkF1dG9SZXN0KioKCmBgYApyYXBpY2dlbiBjc2hhcnAgYXV0b3Jlc3QgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9BdXRvUmVzdE91dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqS2lvdGEqKgoKYGBgCnJhcGljZ2VuIGNzaGFycCBraW90YSBTd2FnZ2VyLmpzb24gR2VuZXJhdGVkQ29kZSAuL09wZW5BcGlPdXRwdXQuY3MKYGBgCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiBob3cgdG8gZ2VuZXJhdGUgY29kZSB1c2luZyAqKk5Td2FnKioKCmBgYApyYXBpY2dlbiBjc2hhcnAgbnN3YWcgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9OU3dhZ091dHB1dC5jcwpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIHVzaW5nICoqU3dhZ2dlciBDb2RlZ2VuIENMSSoqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIHN3YWdnZXIgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9Td2FnZ2VyT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgdXNpbmcgKipPcGVuQVBJIEdlbmVyYXRvcioqCgpgYGAKcmFwaWNnZW4gY3NoYXJwIG9wZW5hcGkgU3dhZ2dlci5qc29uIEdlbmVyYXRlZENvZGUgLi9PcGVuQXBpT3V0cHV0LmNzCmBgYAoKSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHRvIGdlbmVyYXRlIGNvZGUgKipKTWV0ZXIqKiB0ZXN0IHBsYW5zCgpgYGAKcmFwaWNnZW4gam1ldGVyIFN3YWdnZXIuanNvbgpgYGAKCkhlcmUncyBhbiBleGFtcGxlIG9mIGhvdyB0byBnZW5lcmF0ZSBjb2RlIGZvciAqKlR5cGVTY3JpcHQqKgoKYGBgCnJhcGljZ2VuIHR5cGVzY3JpcHQgQW5ndWxhciBTd2FnZ2VyLmpzb24KYGBgCgojCgpGb3IgdGlwcyBhbmQgdHJpY2tzIG9uIHNvZnR3YXJlIGRldmVsb3BtZW50LCBjaGVjayBvdXQgW215IGJsb2ddKGh0dHBzOi8vY2hyaXN0aWFuaGVsbGUuY29tKQoKSWYgeW91IGZpbmQgdGhpcyB1c2VmdWwgYW5kIGZlZWwgYSBiaXQgZ2VuZXJvdXMgdGhlbiBmZWVsIGZyZWUgdG8gW2J1eSBtZSBhIGNvZmZlZSDimJVdKGh0dHBzOi8vd3d3LmJ1eW1lYWNvZmZlZS5jb20vY2hyaXN0aWFuaGVsbGUpCgo= + readmeEtag: '"e8ab3b1bf35bdace6e6025d412564a3a596c235c6913511fc1d495eca959f664"' + readmeLastModified: Wed, 08 Nov 2023 20:02:06 GMT repositoryId: 166226127 description: >- A collection of Visual Studio custom tool code generators for Swagger / @@ -9360,11 +9357,11 @@ archived: false stars: 120 watchers: 5 - forks: 15 + forks: 16 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 - repoEtag: '"9b68eb1c1677c973490261d0753c9e5c00498e8f05dc8387a355dc004b2244a8"' + repoEtag: '"50b2847a2fc7d065ff713c4ad508d30ae64cabf23ac212038dc9ab09d668271b"' repoLastModified: Fri, 03 Nov 2023 20:39:53 GMT category: SDK foundInMaster: true @@ -9408,17 +9405,17 @@ repositoryId: 362315893 description: Generate REST API and OpenAPI documentation for your Flask project. created: '2021-04-28T02:39:57Z' - updated: '2023-11-07T15:52:41Z' + updated: '2023-11-08T22:32:22Z' language: Python archived: false - stars: 115 + stars: 116 watchers: 7 forks: 24 owner: luolingchun logo: https://avatars.githubusercontent.com/u/22740403?v=4 license: MIT - repoEtag: '"48303c555ba6590b5128951c4e932291b6341a7f521ce1843545c4e73f2e5711"' - repoLastModified: Tue, 07 Nov 2023 15:52:41 GMT + repoEtag: '"d85b8b2ed5e0cc2e0322a21d77436a014386f1589875d090f72a05c65ece9ee1"' + repoLastModified: Wed, 08 Nov 2023 22:32:22 GMT foundInMaster: true category: Server Implementations id: 7baa4046f5397a8fd006511115871ac0 @@ -9569,17 +9566,17 @@ repositoryId: 543052826 description: Speakeasy CLI - Launch developer experience for your API created: '2022-09-29T10:13:15Z' - updated: '2023-11-07T15:19:11Z' + updated: '2023-11-08T20:04:03Z' language: Go archived: false - stars: 103 - watchers: 9 + stars: 104 + watchers: 8 forks: 10 owner: speakeasy-api logo: https://avatars.githubusercontent.com/u/91446104?v=4 license: NOASSERTION - repoEtag: '"d0e3ff1bd83d3e967c7fde49a0de8c2a1bad706954f63df7f1f9741ea76c6be2"' - repoLastModified: Tue, 07 Nov 2023 15:19:11 GMT + repoEtag: '"305b0e168ff9b898a630e22e9a292f291d27ab9dc0eb1b59e96c438e1d4ec448"' + repoLastModified: Wed, 08 Nov 2023 20:04:03 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -9593,17 +9590,17 @@ repositoryId: 68995825 description: OpenAPI (fka Swagger) spec renderer for Sphinx. created: '2016-09-23T06:28:32Z' - updated: '2023-10-26T11:42:46Z' + updated: '2023-11-08T16:30:23Z' language: Python archived: false - stars: 102 + stars: 103 watchers: 12 - forks: 74 + forks: 75 owner: sphinx-contrib logo: https://avatars.githubusercontent.com/u/31936682?v=4 license: BSD-2-Clause - repoEtag: '"3d9bdf4edc5bb3dc731e1fdba9a14253e4fe3ef7babf9fefcd02c293189f9b1d"' - repoLastModified: Thu, 26 Oct 2023 11:42:46 GMT + repoEtag: '"ce0f1987d6c736e00da7a52310cfc0be179883bdda0bab98ad3fad2db7fd8100"' + repoLastModified: Wed, 08 Nov 2023 16:30:23 GMT foundInMaster: true category: - Converters @@ -9870,17 +9867,17 @@ repositoryId: 87553967 description: OpenAPI/Swagger 2.0 to OpenAPI 3.0 Converter WebService created: '2017-04-07T14:18:38Z' - updated: '2023-11-07T19:46:50Z' + updated: '2023-11-08T18:04:33Z' language: Python archived: false - stars: 79 + stars: 80 watchers: 10 - forks: 21 + forks: 22 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"976017fe3384407156e70aa6ca18dccc917826577bafb281515dba0bc0ce5180"' - repoLastModified: Tue, 07 Nov 2023 19:46:50 GMT + repoEtag: '"e476c53b57c93b09f409788734b5e6c5e8af50366b26c22f2598e18a64782097"' + repoLastModified: Wed, 08 Nov 2023 18:04:33 GMT foundInMaster: true category: - Code Generators @@ -10110,17 +10107,17 @@ A curated list of awesome JSON Schema resources, tutorials, tools, and more. created: '2021-09-09T11:39:06Z' - updated: '2023-10-27T22:44:36Z' + updated: '2023-11-08T22:28:34Z' language: Handlebars archived: false - stars: 72 + stars: 73 watchers: 7 forks: 2 owner: sourcemeta logo: https://avatars.githubusercontent.com/u/74150453?v=4 license: CC0-1.0 - repoEtag: '"4c948f28fe0ffd2675e8d66571d4df10ec1314b3542940d318154434884e1f9e"' - repoLastModified: Fri, 27 Oct 2023 22:44:36 GMT + repoEtag: '"8a65bc60036132395291be30d56925994d4fca9102f9a923d7329c964cef0a2c"' + repoLastModified: Wed, 08 Nov 2023 22:28:34 GMT foundInMaster: true category: Converters id: 40df0f4f4e0e95da0b9f4aeb27567a36 @@ -10177,11 +10174,11 @@ archived: false stars: 71 watchers: 4 - forks: 27 + forks: 26 owner: python-openapi logo: https://avatars.githubusercontent.com/u/126442889?v=4 license: BSD-3-Clause - repoEtag: '"6c629160da5f9f70af3a993ad089c0a868b5a6293421f01018356f7881c1a7ff"' + repoEtag: '"ed431861132f6a54af91619ea0ec8b074d3f6839a875468c3bf5222fc7db3eee"' repoLastModified: Tue, 24 Oct 2023 16:04:17 GMT category: Parsers oldLocations: @@ -10200,17 +10197,17 @@ repositoryId: 598846021 description: Refit Client API Generator for OpenAPI created: '2023-02-07T23:18:12Z' - updated: '2023-11-07T21:44:58Z' + updated: '2023-11-08T04:08:41Z' language: C# archived: false - stars: 73 + stars: 74 watchers: 6 forks: 15 owner: christianhelle logo: https://avatars.githubusercontent.com/u/710400?v=4 license: GPL-3.0 - repoEtag: '"abe7a6309cd25f1aed5705e8bba9e6a70d5d8f0fd0824551002dea3614b92918"' - repoLastModified: Tue, 07 Nov 2023 21:44:58 GMT + repoEtag: '"8d5998c143d9047c0d601b337336c6d385a6834252425305d5b62b065fceaf14"' + repoLastModified: Wed, 08 Nov 2023 04:08:41 GMT category: Parsers foundInMaster: true - source: openapi3 tags @@ -10314,11 +10311,11 @@ archived: false stars: 66 watchers: 11 - forks: 58 + forks: 59 owner: paypal logo: https://avatars.githubusercontent.com/u/476675?v=4 license: Apache-2.0 - repoEtag: '"ac320bc5745a38380dadb5cd5e6573cc9c339a710d5757cf148ee963907957fd"' + repoEtag: '"12c9249c9327cf9c6ac25354c32d69b0ffdca95078997a1f52de485ec4a35484"' repoLastModified: Sun, 05 Nov 2023 02:52:35 GMT category: Code Generators foundInMaster: true @@ -10421,7 +10418,7 @@ owner: samchungy logo: https://avatars.githubusercontent.com/u/18017094?v=4 license: MIT - repoEtag: '"ce397852a766c8cc3ab7e49db2ab7b2140dd6f4389a400f2e15aa9ef5639d955"' + repoEtag: '"07570163a0444c49c24cbe2a259a0648d47282637262cfe6bd8a982ca3accc44"' repoLastModified: Mon, 06 Nov 2023 14:20:05 GMT category: Parsers foundInMaster: true @@ -10651,7 +10648,7 @@ forks: 14 owner: OAI logo: https://avatars.githubusercontent.com/u/16343502?v=4 - repoEtag: '"a35f52f98682b331bba3806bde73728cff0e2c0902b1f99ae1eb6907a61a76b2"' + repoEtag: '"a60daf5893d807ed1a11c9dc9f572a692a3fb2edd556a12b2588eaaa74788520"' repoLastModified: Tue, 07 Nov 2023 12:59:02 GMT category: Server Implementations foundInMaster: true @@ -10752,11 +10749,11 @@ archived: false stars: 50 watchers: 2 - forks: 6 + forks: 7 owner: ahx logo: https://avatars.githubusercontent.com/u/8669?v=4 license: MIT - repoEtag: '"0a5678474331251115ec998634783b194ef08edde159c03fd05745944cbc3cea"' + repoEtag: '"f00ccb913b829c59a580a0de656c2c1c85a4c361e6ef54421197b0d79ebb91a5"' repoLastModified: Tue, 07 Nov 2023 19:24:27 GMT foundInMaster: true category: @@ -10786,7 +10783,7 @@ forks: 9 owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 - repoEtag: '"386dcc2ee7514925ea21d64456df0d4e93da781da501d66618c9d9ad68bbf206"' + repoEtag: '"7d88640b33ad18b2e6b3d7a7a445c340ec2fc91194c77f3ca5fe5fd19abe01f2"' repoLastModified: Tue, 07 Nov 2023 12:54:00 GMT category: Parsers foundInMaster: true @@ -11047,7 +11044,7 @@ forks: 25 owner: piomin logo: https://avatars.githubusercontent.com/u/2892502?v=4 - repoEtag: '"10ed98eaf9750bedb211c566485b22dcc4fddf77886017f86bca764f8cb44984"' + repoEtag: '"61e7216d22e7ce900bbb0fe7caaa0291b0055d055903346bf8c92bd21b842883"' repoLastModified: Mon, 02 Oct 2023 00:55:50 GMT foundInMaster: true category: SDK @@ -11691,7 +11688,7 @@ owner: JaredCE logo: https://avatars.githubusercontent.com/u/770400?v=4 license: MIT - repoEtag: '"9d6c6d33cb212a6fc2a01dfc7f7d0baee81d70e4bd627be40694b02f5b014f55"' + repoEtag: '"72b8bc9d90a667ee2855768ad843b5aa1ff072ec8bdac24ff030ab4ded2f6484"' repoLastModified: Tue, 31 Oct 2023 05:51:16 GMT category: Parsers foundInMaster: true @@ -12037,17 +12034,17 @@ VisualAPI - LowCode Macros for YOUR API / HTTP Calls : https://visualapi.azurewebsites.net/ created: '2021-11-11T17:14:47Z' - updated: '2023-10-05T15:55:13Z' + updated: '2023-11-08T19:38:11Z' language: JavaScript archived: false - stars: 26 + stars: 27 watchers: 5 forks: 7 owner: ignatandrei logo: https://avatars.githubusercontent.com/u/153982?v=4 license: MIT - repoEtag: '"53c12645b5fb8734a719a8fd5dbf683d669e9cbcd7275e38fb6d6d07c23ffbb7"' - repoLastModified: Thu, 05 Oct 2023 15:55:13 GMT + repoEtag: '"7a31099d2c854a8e57913999a6b746547e2b00854ae2393dbdb51d7cfbe03807"' + repoLastModified: Wed, 08 Nov 2023 19:38:11 GMT foundInMaster: true category: Testing id: 44b9d7b1e68471c05b67c3ff6c02172a @@ -12522,7 +12519,7 @@ forks: 16 owner: ShipEngine logo: https://avatars.githubusercontent.com/u/42709242?v=4 - repoEtag: '"3ff8a70c25eb95ea541a28d3e9497a3614cc302dcaa222f1919f79eb957f4e21"' + repoEtag: '"1d4ec897bf18bdb732c842110c6e3f2b2dea0d87a7b0c08b2ce71fb3fe54dac7"' repoLastModified: Wed, 18 Oct 2023 19:30:48 GMT foundInMaster: true category: Parsers @@ -12755,7 +12752,7 @@ owner: hei-school logo: https://avatars.githubusercontent.com/u/88576095?v=4 license: MIT - repoEtag: '"a985d538b66feceafe17d5c542a729e17cc18a5cb63b29bb96f0843207e60b24"' + repoEtag: '"056d4188a54dfd0eb978d63ba70e11e0763058f161927d19ce95f696c7c77ce2"' repoLastModified: Tue, 05 Sep 2023 12:48:46 GMT foundInMaster: true category: Code Generators @@ -15104,7 +15101,7 @@ owner: overflowdigital logo: https://avatars.githubusercontent.com/u/93914478?v=4 license: MIT - repoEtag: '"ff2e0bb7024b75511a5af9bc2c51ed54298fc92599d71db463c52d3fb6af7647"' + repoEtag: '"a437a42e2bad6ffdd3f68aac136de3817332b779defec641451b728108cef6da"' repoLastModified: Tue, 03 Oct 2023 10:36:08 GMT category: Server Implementations foundInMaster: true @@ -15467,11 +15464,11 @@ archived: false stars: 8 watchers: 3 - forks: 2 + forks: 3 owner: stepci logo: https://avatars.githubusercontent.com/u/61350067?v=4 license: MPL-2.0 - repoEtag: '"38965ebb6323c079222a594e5fe98a463d8b211f5db1d6b3c6a9986c845a28ec"' + repoEtag: '"0166cc7541968fb5b66cc17f03bcc2cc348ade0195f251a01b6c2f520d8441b1"' repoLastModified: Thu, 25 May 2023 16:49:05 GMT foundInMaster: true - source: openapi3 tags @@ -15596,7 +15593,7 @@ owner: mchangrh logo: https://avatars.githubusercontent.com/u/15132783?v=4 license: GPL-3.0 - repoEtag: '"5e182d24f7de70473da6150a128f024a2b7a3112c3eb83f8c2579beb30d1ff82"' + repoEtag: '"af164a45e7491b984f5c9babeb1cb74872ddea273e719b0a04484ab3657cdf24"' repoLastModified: Sat, 28 Oct 2023 05:14:45 GMT foundInMaster: true category: Documentation @@ -15932,11 +15929,11 @@ archived: false stars: 7 watchers: 2 - forks: 0 + forks: 1 owner: openmobilityfoundation logo: https://avatars.githubusercontent.com/u/52187191?v=4 license: NOASSERTION - repoEtag: '"953da9ad48415fd5b43938535af9f8d1b2b1b613654e3754676c2cb21c859580"' + repoEtag: '"33a523ae98f410fdfdf697ba49a7f8d0fff321c91a51404ff11f164c553d9dd0"' repoLastModified: Sun, 03 Sep 2023 22:09:27 GMT category: Parsers foundInMaster: true @@ -16762,7 +16759,7 @@ owner: meabed logo: https://avatars.githubusercontent.com/u/45731?v=4 license: MIT - repoEtag: '"76eaa24a50401d87ac91d20140d6e9ea60223e2af838327b813798f87ef25265"' + repoEtag: '"48b9a90b008631dbc9152cce7864ffb81ff2aa0e9ec89fbb336a21470f96163c"' repoLastModified: Sun, 02 Apr 2023 20:55:39 GMT foundInMaster: true category: @@ -17286,7 +17283,7 @@ owner: cerberauth logo: https://avatars.githubusercontent.com/u/127022998?v=4 license: MIT - repoEtag: '"e3ae095f1ce4ef7759c94d467161d11b8e3f67f0d3baf6197b536a8ca24fd51f"' + repoEtag: '"7ff4ad357a35385f0401c38c7c4087474d9f7231948f077293f77d408b46164d"' repoLastModified: Sun, 05 Nov 2023 17:08:23 GMT category: Parsers foundInMaster: true @@ -20576,7 +20573,7 @@ owner: SierraSoftworks logo: https://avatars.githubusercontent.com/u/5012716?v=4 license: MIT - repoEtag: '"aae157ef525089a67bea26cb1ced99f7a312920ce16540137748d7ce2f032c2c"' + repoEtag: '"c7804f5a60b6892bf54eff862d70e74aed76ae75fbb67d875f959f1fce8e6a24"' repoLastModified: Mon, 14 Nov 2022 17:18:07 GMT foundInMaster: true category: @@ -20753,7 +20750,7 @@ owner: tsingsun logo: https://avatars.githubusercontent.com/u/5848549?v=4 license: MIT - repoEtag: '"3e6e588d57ed4f55be9fe504062c36a99022bb0ec8839b944d92d483244de65a"' + repoEtag: '"1131b503aee603cf6bb1ad2c7e6b4791f9c53cdfdf2e2edf26fceba953d92faa"' repoLastModified: Sun, 20 Aug 2023 07:44:44 GMT category: Server Implementations foundInMaster: true @@ -21029,7 +21026,7 @@ Goal: Extract Joomla Api Routes to be able to auto-generate always up-to-date OpenAPI Schema created: '2023-09-15T20:49:49Z' - updated: '2023-09-19T06:31:36Z' + updated: '2023-11-08T14:05:34Z' language: PHP archived: false stars: 2 @@ -21038,8 +21035,8 @@ owner: alexandreelise logo: https://avatars.githubusercontent.com/u/51425450?v=4 license: AGPL-3.0 - repoEtag: '"7dfe8fa6a78baacad654596e39d95a3c721eb0b94fb2e14b3a4f0725b9999047"' - repoLastModified: Tue, 19 Sep 2023 06:31:36 GMT + repoEtag: '"00a7e5b723ae5529ff56c6cd261d87163ac85f94d9fdd1dccb4994263e1d54c1"' + repoLastModified: Wed, 08 Nov 2023 14:05:34 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -21847,7 +21844,7 @@ owner: fourcels logo: https://avatars.githubusercontent.com/u/1042568?v=4 license: MIT - repoEtag: '"1a7d251ecc31915019777653ac83b03ae4318cda07080add8ddcb717d2abc0b2"' + repoEtag: '"df591cff74136c62d2a0c804e43ed3ab004b83e0b33797fe037c3bfeed685e7d"' repoLastModified: Tue, 25 Apr 2023 11:01:23 GMT category: Server Implementations foundInMaster: true @@ -22026,7 +22023,7 @@ owner: igrek8 logo: https://avatars.githubusercontent.com/u/7078731?v=4 license: MIT - repoEtag: '"de801a21502237a64ea4f1d5438d0c4a0139abf9069b097955f175077bfcc6c9"' + repoEtag: '"68d1e120c443bf956d9aadfe9e59a77efcd0d7cfd830404eff7f577a820a2bfe"' repoLastModified: Thu, 15 Jun 2023 13:09:53 GMT category: Parsers foundInMaster: true @@ -22180,7 +22177,7 @@ owner: gabrielmaialva33 logo: https://avatars.githubusercontent.com/u/26732067?v=4 license: AGPL-3.0 - repoEtag: '"3644e90b12788e6228a851b8a694ab988daf2b6b2c74028cf1d8c284c88f7436"' + repoEtag: '"02abbc3bb83c98fa3106c34aac88ed15fbbc062f15a32454b1af3585554d267d"' repoLastModified: Thu, 24 Aug 2023 22:06:24 GMT category: Server Implementations foundInMaster: true @@ -22207,7 +22204,7 @@ owner: tidepool-org logo: https://avatars.githubusercontent.com/u/4390820?v=4 license: BSD-2-Clause - repoEtag: '"731a8e478bb6e4b0ef59a4b5e6b0f7904339addceb2aa1359f45682094e3d9fd"' + repoEtag: '"59477a0f29095479bceb0030a44bb620f575c84b2e415789f32467f8d74a41a9"' repoLastModified: Fri, 09 Jun 2023 22:26:47 GMT category: Server Implementations foundInMaster: true @@ -22788,7 +22785,7 @@ owner: listendev logo: https://avatars.githubusercontent.com/u/103680976?v=4 license: Apache-2.0 - repoEtag: '"f2af172f5843344969a8cb1227e40b36563fab6161c652153a15e01aae831232"' + repoEtag: '"0f3988fb7ff2e7c53ccb6730bcc814aa353e7abd4e34ad39150e991b768e39ed"' repoLastModified: Thu, 13 Jul 2023 22:06:02 GMT category: Parsers foundInMaster: true @@ -24099,17 +24096,17 @@ repositoryId: 356602391 description: Next.js / Django template for quick prototyping. created: '2021-04-10T14:15:56Z' - updated: '2023-10-09T09:28:01Z' + updated: '2023-11-08T20:55:50Z' language: TypeScript archived: false - stars: 1 + stars: 2 watchers: 1 forks: 0 owner: '0x29a' logo: https://avatars.githubusercontent.com/u/18251194?v=4 license: MIT - repoEtag: '"99353d50448ef78d7ce8be3424947a197d49b0d83481d9cf7b2bf595fda4d27b"' - repoLastModified: Mon, 09 Oct 2023 09:28:01 GMT + repoEtag: '"494c50eeb7cfbe5439853d8c91f1cbffb90cf8e8bc6a9409ad366cdf12c61a1e"' + repoLastModified: Wed, 08 Nov 2023 20:55:50 GMT category: Server Implementations foundInMaster: true - source: openapi3 tags @@ -24385,7 +24382,7 @@ owner: speakeasy-sdks logo: https://avatars.githubusercontent.com/u/121978464?v=4 license: MIT - repoEtag: '"3842065ac79514dd7d6d235e24acbb25196e0396a7091df56fe71dea09d630e4"' + repoEtag: '"93d95e8303f96eeffb8c7593c6507a591b898d1f66cc50713faefd14364a6d32"' repoLastModified: Fri, 20 Oct 2023 10:29:48 GMT category: Parsers foundInMaster: true @@ -25236,7 +25233,7 @@ forks: 0 owner: detain logo: https://avatars.githubusercontent.com/u/1364504?v=4 - repoEtag: '"7710f288842f7c4982308f77ed247a384910ac506d3175456a6b2c29306eafdd"' + repoEtag: '"2512ad6474a0e288ef4ab6df50ac4aa935ced681053ad879e08168eaffe1d873"' repoLastModified: Fri, 28 Apr 2023 04:23:19 GMT category: - SDK @@ -25548,7 +25545,7 @@ forks: 0 owner: TheAirBlow logo: https://avatars.githubusercontent.com/u/68467762?v=4 - repoEtag: '"65e9635fb091f4c57343fbb97f0ee1e2a64fac5f0c1bd7bff204ecd613c88c82"' + repoEtag: '"6b54562aafc7f640abca826b82b15f64bfafb343cef46db6b594cf1885303db8"' repoLastModified: Tue, 03 Jan 2023 13:13:05 GMT foundInMaster: true category: @@ -26069,7 +26066,7 @@ owner: ExpediaGroup logo: https://avatars.githubusercontent.com/u/38541875?v=4 license: Apache-2.0 - repoEtag: '"ef06326dcd0dfa1a835f40d53d1438f76a0e52ab86c117e5a82dc4c9ac7e49e5"' + repoEtag: '"e12f9c7dad8d736bbfb8bde1417691b20a9b6e63d8f0b3be8b7052251377e609"' repoLastModified: Wed, 01 Nov 2023 17:17:49 GMT category: Parsers foundInMaster: true @@ -26741,7 +26738,7 @@ owner: tada5hi logo: https://avatars.githubusercontent.com/u/13162758?v=4 license: MIT - repoEtag: '"0a9c3240ca05c4371e3e97584bd536328b643c0dd1aeecad982a860d431ba428"' + repoEtag: '"34c7ad634ab2546c6c852d4faa17cc6051e4d986f1b371d62241a04f11ff37c4"' repoLastModified: Fri, 17 Mar 2023 22:17:59 GMT category: Parsers foundInMaster: true @@ -27073,7 +27070,7 @@ owner: potjerodekool logo: https://avatars.githubusercontent.com/u/141829?v=4 license: Apache-2.0 - repoEtag: '"ed6c03758d93a9fa105471140be7055390968eb76e03dbc27f4ca6a454261bbf"' + repoEtag: '"368219d593b68bd27e3dfa8b6371e41f356aeb5d19c2fb5a844624ae4016310f"' repoLastModified: Tue, 26 Jul 2022 20:11:04 GMT category: Parsers foundInMaster: true @@ -31301,7 +31298,7 @@ owner: intellifi-nl logo: https://avatars.githubusercontent.com/u/9928538?v=4 license: MIT - repoEtag: '"b039dfb53e92fa049f72cc84bc0a0304f3166562792b6fad831c5a73ac5826e2"' + repoEtag: '"da89621db705a13f9c2de43eef273908ada4707010f8f92b294526b43f49bfc6"' repoLastModified: Tue, 19 Oct 2021 12:37:35 GMT foundInMaster: true category: @@ -34100,7 +34097,7 @@ forks: 0 owner: wasedatime logo: https://avatars.githubusercontent.com/u/32608719?v=4 - repoEtag: '"bce62cad823d908413464d1d9140834ffc9d6af74b581e2134225961a60dfc16"' + repoEtag: '"e2129ac85c7d9da602eebc46ecd14ab6628d32339698831e8036484bd6a499e0"' repoLastModified: Tue, 18 Jul 2023 09:13:10 GMT foundInMaster: true category: @@ -34681,7 +34678,7 @@ owner: AfshinParhizkari logo: https://avatars.githubusercontent.com/u/32636285?v=4 license: Apache-2.0 - repoEtag: '"6ca7be0e37c8acf49c9ba54deeda069ad1655ff838c06c3dcb4073775b38c318"' + repoEtag: '"f0db7dc58d26aeb35913bed13fa4378f61f7ce368f92f142ca9dfa34c65cd850"' repoLastModified: Thu, 05 May 2022 07:26:46 GMT foundInMaster: true category: @@ -35482,7 +35479,7 @@ owner: swagger-api logo: https://avatars.githubusercontent.com/u/7658037?v=4 license: Apache-2.0 - repoEtag: '"0b2ab97110b932a4855b962e854fb593e49e3e426b7f8db6fc747e536f6983ab"' + repoEtag: '"188ef942b9ac10d28e305eef849b9bd04f4cd8f8855f5e0f7bfe7b83785dce18"' repoLastModified: Tue, 07 Nov 2023 12:34:24 GMT id: 266d60df2d48ad8a47539de3c1071f3a - source: IMPLEMENTATIONS.md @@ -35515,7 +35512,7 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"46e68d30dcf5f73f10d305a3daf8a779b8daf96edb18573cc0cfacc1dbb4c497"' + repoEtag: '"2066cba75b765510e6ceacbc79fd98a463fb7a38fc4fb3a5941733d2b8013cd4"' repoLastModified: Tue, 07 Nov 2023 11:51:56 GMT id: f3215034d64cfcbcc28a4bdb0205a075 - source: IMPLEMENTATIONS.md @@ -35717,11 +35714,11 @@ archived: false stars: 187 watchers: 18 - forks: 48 + forks: 49 owner: Cornutum logo: https://avatars.githubusercontent.com/u/11477145?v=4 license: MIT - repoEtag: '"843967c2d65d6100763266e680ab18609d7738815e1967e7d49878f5cd2f05a7"' + repoEtag: '"78678cbc446df5470d81ecd28cb8568eee6772c9870ed372f8e4dcf7b58dd1a7"' repoLastModified: Sun, 22 Oct 2023 19:40:21 GMT id: 14da7572a7632f9a9fb1c1ab2acef586 - source: IMPLEMENTATIONS.md @@ -35815,17 +35812,17 @@ repositoryId: 30567860 description: Single file PHP script that adds a REST API to a SQL database created: '2015-02-10T01:08:52Z' - updated: '2023-11-08T01:30:20Z' + updated: '2023-11-08T14:55:22Z' language: PHP archived: false - stars: 3434 + stars: 3435 watchers: 178 forks: 1030 owner: mevdschee logo: https://avatars.githubusercontent.com/u/1288217?v=4 license: MIT - repoEtag: '"f8f832581677f50c08ff1b1d941889998d27c722ae2283c8cf0e7c35e17eccb1"' - repoLastModified: Wed, 08 Nov 2023 01:30:20 GMT + repoEtag: '"a1d86d2c870ef6b7339363a6fdbba66ef72c907479c9635933fabbe7491f2eb4"' + repoLastModified: Wed, 08 Nov 2023 14:55:22 GMT id: 84a7be428932f7789a8ad1a220b22216 - source: IMPLEMENTATIONS.md name: Fastify OpenAPI v3 @@ -36458,17 +36455,17 @@ Connexion is a modern Python web framework that makes spec-first and api-first development easy. created: '2015-05-19T13:05:58Z' - updated: '2023-11-07T11:08:04Z' + updated: '2023-11-09T02:23:39Z' language: Python archived: false - stars: 4336 + stars: 4338 watchers: 85 - forks: 733 + forks: 734 owner: spec-first logo: https://avatars.githubusercontent.com/u/58754196?v=4 license: Apache-2.0 - repoEtag: '"30b2caa9422643ed3354ab4b959a872a9101cfb87cec6f1bdaeff210190002b4"' - repoLastModified: Tue, 07 Nov 2023 11:08:04 GMT + repoEtag: '"76aac49fdf6fd9677c25553bfd5bd84376c9f5ed6dd66244e41dd3256fc45a85"' + repoLastModified: Thu, 09 Nov 2023 02:23:39 GMT foundInMaster: true homepage: https://github.com/zalando/connexion id: 2d575abdf2671028868058b2442d9131 @@ -36546,7 +36543,7 @@ owner: openclarity logo: https://avatars.githubusercontent.com/u/89657786?v=4 license: Apache-2.0 - repoEtag: '"5140dfe536d399559d6eee38acd20f8878eaac386f93aceb48119acb4399a305"' + repoEtag: '"d4283199bcae10f39f93730de7a686acc1eda466061bb017ec789a361c3a911d"' repoLastModified: Tue, 07 Nov 2023 12:04:14 GMT foundInMaster: true id: 68b981acc13af75d4eb8c04143885e13 @@ -36760,17 +36757,17 @@ LoopBack makes it easy to build modern API applications that require complex integrations. created: '2017-01-09T17:27:14Z' - updated: '2023-11-07T19:59:20Z' + updated: '2023-11-08T17:35:16Z' language: TypeScript archived: false - stars: 4667 + stars: 4670 watchers: 136 forks: 1041 owner: loopbackio logo: https://avatars.githubusercontent.com/u/22173486?v=4 license: NOASSERTION - repoEtag: '"b411caaafe3593070290ebaeafaa6fb19df708e11f3933ccd538e693e077eeb1"' - repoLastModified: Tue, 07 Nov 2023 19:59:20 GMT + repoEtag: '"25aacbc21fb54cb49c47ca5f90314f9a2dae868d7ca7a0d4b25628d4d4700f44"' + repoLastModified: Wed, 08 Nov 2023 17:35:16 GMT foundInMaster: true id: 9132c25ad468bed25b9dbbe3a352abc2 v3: true @@ -36842,7 +36839,7 @@ testing cloud services through their REST APIs and finding security and reliability bugs in these services. created: '2020-07-24T21:40:11Z' - updated: '2023-11-07T20:41:14Z' + updated: '2023-11-08T21:59:51Z' language: Python archived: false stars: 2320 @@ -36851,8 +36848,8 @@ owner: microsoft logo: https://avatars.githubusercontent.com/u/6154722?v=4 license: MIT - repoEtag: '"ad2d3abb0be51993207357d7ff72f469a6e4f12c05800fd318712c9232083c08"' - repoLastModified: Tue, 07 Nov 2023 20:41:14 GMT + repoEtag: '"eafcc4575e54d2d8a4495209c5c4657b736cfbbb4fe5c3f36adafb112243d0c9"' + repoLastModified: Wed, 08 Nov 2023 21:59:51 GMT foundInMaster: true oldLocations: - https://github.com/microsoft/restler @@ -37609,7 +37606,7 @@ owner: vert-x3 logo: https://avatars.githubusercontent.com/u/8124623?v=4 license: Apache-2.0 - repoEtag: '"787a529ba26b7c1fe9169d5f718af71574b65ba0e718ad5e137fa32c7d26935e"' + repoEtag: '"1723cb7eb3dbce0bdc8944d8d42df3926679f8f6c5b6ecc460b8907c19cafb6b"' repoLastModified: Mon, 30 Oct 2023 00:07:52 GMT foundInMaster: true v3_link: https://github.com/vert-x3/vertx-web/issues/1872 @@ -37641,17 +37638,17 @@ Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well. created: '2021-02-24T07:21:40Z' - updated: '2023-11-07T02:22:14Z' + updated: '2023-11-09T02:19:53Z' language: Go archived: false - stars: 1219 + stars: 1222 watchers: 84 forks: 248 owner: unionj-cloud logo: https://avatars.githubusercontent.com/u/79033021?v=4 license: MIT - repoEtag: '"575554b60c98b125fff033b8ed1167fb8819e3a4dcb7425cc03227f861f054f3"' - repoLastModified: Tue, 07 Nov 2023 02:22:14 GMT + repoEtag: '"771019b70fb135a473223b7cd748cf8958bc30a45f26d9241071ca47e9109323"' + repoLastModified: Thu, 09 Nov 2023 02:19:53 GMT foundInMaster: true category: SDK id: aab01f8bda6c542fdacf9ee8dfa7d20d @@ -37792,7 +37789,7 @@ owner: elasticio logo: https://avatars.githubusercontent.com/u/1560253?v=4 license: MIT - repoEtag: '"3816a3bbac1458d5cd6eb827bad81fe05dc038006a02684252ab16f417499889"' + repoEtag: '"513913d7ba85d680638731f1d550a41f9aba13a4a8bb190dc779ddb65aee4538"' repoLastModified: Wed, 06 Sep 2023 16:45:41 GMT foundInMaster: true id: deb9defcd95175a7029de6b81cf1ca78