@betterportal/config-manager 10.1.64 → 10.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/.bsb/clients/service-betterportal-config-manager.d.ts +1 -1
- package/lib/.bsb/clients/service-betterportal-config-manager.js +1 -1
- package/lib/bp-contracts/org.betterportal.config-manager.json +198 -14
- package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js +9 -4
- package/lib/plugins/service-betterportal-config-manager/.bp-generated/registry.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts +13 -4
- package/lib/plugins/service-betterportal-config-manager/adminApi.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/adminApi.js +37 -31
- package/lib/plugins/service-betterportal-config-manager/adminApi.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.d.ts +140 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.js +103 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.js +4 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/_renderer.bootstrap5/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.d.ts +43 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.js +67 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.embedded/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/_renderer.embedded/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.d.ts +32 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.js +31 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.d.ts +60 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.js +47 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.d.ts +48 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.js +39 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.d.ts +114 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.js +75 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js +5 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/_renderer.bootstrap5/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.d.ts +176 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.js +114 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.d.ts +101 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.js +92 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.d.ts +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.js +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/DELETE.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.d.ts +13 -4
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.js +6 -6
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/GET.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.d.ts +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.js +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/POST.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.d.ts +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.js +3 -3
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/PUT.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/_renderer.bootstrap5/GET.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/_renderer.bootstrap5/GET.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.d.ts +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.js +1 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.js +1 -0
- package/lib/plugins/service-betterportal-config-manager/fragmentsEditor.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/index.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/index.js +25 -4
- package/lib/plugins/service-betterportal-config-manager/index.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/menuEditor.js +2 -2
- package/lib/plugins/service-betterportal-config-manager/menuEditor.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/storage/core.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/storage/core.js +67 -2
- package/lib/plugins/service-betterportal-config-manager/storage/core.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts +22 -3
- package/lib/plugins/service-betterportal-config-manager/syncApi.d.ts.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/syncApi.js +164 -22
- package/lib/plugins/service-betterportal-config-manager/syncApi.js.map +1 -1
- package/lib/plugins/service-betterportal-config-manager/{bp-routes/tenants/route.impl.d.ts → tenantManagement.d.ts} +5 -5
- package/lib/plugins/service-betterportal-config-manager/tenantManagement.d.ts.map +1 -0
- package/lib/plugins/service-betterportal-config-manager/{bp-routes/tenants/route.impl.js → tenantManagement.js} +8 -7
- package/lib/plugins/service-betterportal-config-manager/tenantManagement.js.map +1 -0
- package/lib/schemas/service-betterportal-config-manager.json +1 -1
- package/lib/schemas/service-betterportal-config-manager.plugin.json +1 -1
- package/package.json +5 -5
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.d.ts +0 -118
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.js +0 -91
- package/lib/plugins/service-betterportal-config-manager/bp-routes/auth/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.d.ts +0 -43
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.js +0 -68
- package/lib/plugins/service-betterportal-config-manager/bp-routes/config/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.d.ts +0 -32
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.js +0 -32
- package/lib/plugins/service-betterportal-config-manager/bp-routes/fragments/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.d.ts +0 -60
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.js +0 -48
- package/lib/plugins/service-betterportal-config-manager/bp-routes/menu/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.d.ts +0 -48
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.js +0 -40
- package/lib/plugins/service-betterportal-config-manager/bp-routes/preview/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.d.ts +0 -104
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.js +0 -71
- package/lib/plugins/service-betterportal-config-manager/bp-routes/routes/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.d.ts +0 -176
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.js +0 -115
- package/lib/plugins/service-betterportal-config-manager/bp-routes/services/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.d.ts +0 -89
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.js +0 -93
- package/lib/plugins/service-betterportal-config-manager/bp-routes/settings/route.impl.js.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/route.impl.d.ts.map +0 -1
- package/lib/plugins/service-betterportal-config-manager/bp-routes/tenants/route.impl.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/plugins/service-betterportal-config-manager/storage/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA6B1D,MAAM,0BAA0B,GAAqC;IACnE,qCAAqC,EAAE,iCAAiC;IACxE,mCAAmC,EAAE,+BAA+B;IACpE,2BAA2B,EAAE,+BAA+B;IAC5D,uCAAuC,EAAE,mCAAmC;IAC5E,kCAAkC,EAAE,8BAA8B;IAClE,uCAAuC,EAAE,mCAAmC;IAC5E,+BAA+B,EAAE,mCAAmC;IACpE,qCAAqC,EAAE,iCAAiC;IACxE,gCAAgC,EAAE,4BAA4B;IAC9D,iCAAiC,EAAE,6BAA6B;CACjE,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAI,KAAQ;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAM,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAM,CAAC;IAC1F,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7E,CAAC;AACT,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAc;IAC9D,OAAO,GAAG,uBAAuB,GAAG,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,SAAS,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAKzC;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAwC;QACxH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IACxD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC;IACvF,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,KAAK,CAAC;IACxG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,wBAAwB,CAAC,IAA6B;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO;IAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAoC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IACpI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,KAAgC,CAAC;QAClD,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9C,SAAS,CAAC,MAAM,KAAK,KAAK;eACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;eACpC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;QAChE,OAAO,OAAO,SAAS,EAAE,WAAW,KAAK,QAAQ;YAC/C,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACtE,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAI,KAAQ;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAE,QAAoC,CAAC,MAAM,CAAC;YACxE,CAAC,CAAE,QAAoC,CAAC,MAAmB;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;gBAAE,SAAS;YAC5D,MAAM,KAAK,GAAG,UAAqC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtE,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnG,KAAK,CAAC,UAAU,GAAG,OAAO;qBACvB,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC;qBAChE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACrG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACtG,CAAC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,KAAK,MAAM,aAAa,IAAI,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ;YAAE,SAAS;QAClE,MAAM,SAAS,GAAI,aAAyC,CAAC,SAAS,CAAC;QACvE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QACtF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,SAAS;YAC1D,MAAM,UAAU,GAAI,SAAqC,CAAC,UAAU,CAAC;YACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,SAAS;YACzC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;oBAAE,SAAS;gBAC1D,MAAM,MAAM,GAAG,SAAoC,CAAC;gBACpD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChF,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,SAAoC,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,SAAS;YAC1D,MAAM,IAAI,GAAG,SAAoC,CAAC;YAClD,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ;wBAAE,SAAS;oBACpE,MAAM,SAAS,GAAG,cAAyC,CAAC;oBAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC1C,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU,KAAK,IAAI;4BACnD,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;4BACpD,CAAC,CAAC,EAAE,CAAC;oBACT,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC1C,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;4BACrE,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;gCAAE,OAAO,CAAC,UAAU,CAAC,CAAC;4BACtE,IAAI,OAAO,UAAU,KAAK,QAAQ;gCAAE,OAAO,EAAE,CAAC;4BAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;4BACjD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;gBACvF,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,UAAU,GAAG,OAAO;iBACtB,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC;iBAChE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAChB,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC9C,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;gBAC3D,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;gBAC7E,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpG,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;gBACxC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrD,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC5C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,UAAU,KAAK,QAAQ;wBACxE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC;wBACnF,CAAC,CAAC,EAAE,CAAC;oBACP,CAAC,CAAC,EAAE;gBACN,WAAW;gBACX,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBACvE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;aAC3E,CAAC,CAAC,CAAC;YACN,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CAChB,CAAC;AAEX,SAAS,mBAAmB,CAC1B,GAAoB,EACpB,SAAiB,EACjB,KAAyB,EACzB,IAAqC;IAErC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1C,SAAS,CAAC,SAAS,KAAK,SAAS;WAC9B,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACzF,CAAC;IACF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,SAAS;QACxB,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnG,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACtG,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAwB;IACnD,OAAO,IAAI,EAAE,OAAO,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA0B;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;YAC9C,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzD,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC3E,KAAK,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAE,CAAC,CAAC;YAChF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;gBAAE,QAAQ,CAAC,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAE,CAAC;QACzG,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,MAA0B,EAC1B,GAA6C;IAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9B,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACpI,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACtI,OAAO,IAAI,GAAG,CAAC;QACb,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,GAAG,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClG,GAAG,MAAM,CAAC,wBAAwB;aAC/B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,UAAU,CAAC,OAAO;eACf,UAAU,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ;eACpC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;eAClD,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAC1D;aACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAgB,WAAW;IACrB,SAAS,GAAoB,IAAI,GAAG,EAAE,CAAC;IAKvC,kBAAkB,CAAC,MAA0B;QACrD,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1C,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpF,IAAI,YAAY,EAAE,CAAC;oBACjB,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;oBAC9C,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC;oBAClD,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;oBACxC,IAAI,YAAY,CAAC,UAAU;wBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;gBAC7E,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,aAAa;gBAAE,SAAS;YACzD,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;YACrD,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,sBAAsB,CAAC,MAA0B;QACvD,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC;QAChE,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe;YAAE,OAAO;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,eAAe,IAAI,SAAS,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC;QACtH,IAAI,CAAC,GAAG,EAAE,IAAI;YAAE,OAAO;QACvB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,KAAK,eAAe,CAAC;YACnC,QAAQ,CAAC,WAAW,KAAK,4FAA4F,CAAC;YACtH,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClB,EAAE,EAAE,GAAG;YACP,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,4FAA4F;YACzG,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAES,wBAAwB,CAAC,MAA0B;QAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,MAAgB,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,sBAAsB,KAAK,EAAE,CAAC,CAAC;gBACzE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACpI,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACtI,IAAI,MAAM,CAAC,gBAAgB,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACrG,MAAM,CAAC,IAAI,CAAC,6DAA6D,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,4DAA4D,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC;YACrH,CAAC;iBAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,aAAa,IAAI,aAAa,CAAC,QAAQ,KAAK,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBACrH,MAAM,CAAC,IAAI,CAAC,kEAAkE,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAClF,KAAK,MAAM,iBAAiB,IAAI,MAAM,CAAC,yBAAyB,EAAE,CAAC;gBACjE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,EAAE,oDAAoD,iBAAiB,EAAE,CAAC,CAAC;gBAC1G,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACtG,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,wDAAwD,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,4EAA4E,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;YACxH,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,qDAAqD,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvF,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,eAAe,QAAQ,UAAU,CAAC,KAAK,8BAA8B,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,EAAE,2CAA2C,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,EAAE,4BAA4B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrF,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,EAAE,QAAQ,MAAM,CAAC,KAAK,8BAA8B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,KAAc,EAAe,EAAE;YAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,IAAI,GAAG,CAAC;gBACb,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC7F,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3G,GAAG,MAAM,CAAC,wBAAwB;qBAC/B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACrB,UAAU,CAAC,OAAO;uBACf,UAAU,CAAC,QAAQ,KAAK,QAAQ;uBAChC,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC;uBAC3D,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAC1D;qBACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;aACtC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACnF,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzH,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,gDAAgD,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACpH,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,2CAA2C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpG,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,4BAA4B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpF,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,KAAK,8BAA8B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,2CAA2C,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,EAAE,2CAA2C,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,6BAA6B,CAAC,CAAC;YACvH,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,gCAAgC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,WAAW,KAAK,CAAC,QAAQ,kCAAkC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClH,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,QAAQ,KAAK,CAAC,KAAK,+BAA+B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,+BAA+B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YACD,MAAM,gBAAgB,GAAG,oCAAoC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAE3E,IAAI,GAAG,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvE,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,6DAA6D,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/G,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAE9D,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI;oBAC1B,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;oBACpB,CAAC,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,CAAC;oBAChD,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC;oBAChC,CAAC,qBAAqB,EAAE,KAAK,CAAC,mBAAmB,CAAC;iBAC1C,EAAE,CAAC;oBACX,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,KAAK,CAAC,EAAE,IAAI,KAAK,yBAAyB,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;oBACpE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACrF,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,KAAK,CAAC,EAAE,iCAAiC,IAAI,EAAE,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,UAAU,KAAK,CAAC,EAAE,6CAA6C,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,CAAC,KAAoE,EAAE,IAAY,EAAQ,EAAE;gBAChH,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChD,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,cAAc,IAAI,CAAC,EAAE,8BAA8B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC9F,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACjC,YAAY,CAAC,IAAI,CAAC,QAAyE,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YACF,YAAY,CAAC,GAAG,CAAC,IAAqE,EAAE,MAAM,CAAC,CAAC;YAEhG,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,MAAM,6CAA6C,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,aAAa,QAAQ,IAAI,QAAQ,CAAC,UAAU,6CAA6C,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC1I,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,4DAA4D,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,mBAAmB,IAAI,6CAA6C,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBACnH,CAAC;YACH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,6CAA6C,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC3G,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QAMjC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAEvC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBACzC,+EAA+E;gBAC/E,kEAAkE;gBAClE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBACjD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,SAAS;YAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,SAAiB,EACjB,KAA4B,EAC5B,QAA4B,EAC5B,YAAoB,EACpB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,KAAK,QAAQ;YAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC;YACnH,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC;mBACpE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO;YAAE,OAAO,WAAW,CAAC;QACjC,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC,YAAY,KAAK,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACnG,CAAC;QACD,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;QACpC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,KAA4B,EAC5B,QAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,uEAAuE;QACvE,yEAAyE;QACzE,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,MAAM,CAAC,wBAAwB;aAC5B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,CAAC;aACtF,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CACtC,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS;eAC/B,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1F,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5C,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS;eAC9B,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACxF,CAAC;QACF,IAAI,KAAK,KAAK,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,aAAa,CACvB,MAAM,EACN,SAAS,EACT,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CACrF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CACvB,MAAM,EACN,SAAS,EACT,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,QAAoB;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBAAC,QAAQ,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,qBAAqB,CAC3B,MAA0B,EAC1B,SAAiB,EACjB,QAAgB,EAChB,aAAsB,EACtB,YAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAExH,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CACtE,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3E,UAAU,CAAC,OAAO;eACf,UAAU,CAAC,QAAQ,KAAK,QAAQ;eAChC,CAAC,UAAU,CAAC,EAAE,KAAK,SAAS,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,CAAC,CAC7E,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAEhK,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7E,CAAC,CAAC,gBAAgB;gBAChB,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,CAAC,eAAe,CAAC;gBAC3D,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAgB,MAAM,CAAC,IAAI;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACvC,4EAA4E;aAC3E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;aACtE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;aAC9E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9F,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;YACrD,iBAAiB;YACjB,OAAO,EAAE,CAAC,YAAY,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;YACtD,IAAI;SACL,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,MAA0B,EAC1B,SAAiB,EACjB,aAAsB,EACtB,YAAqB;QAErB,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAgB,EAAE,CAAC;QAE7B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,SAAS;YAE7B,IAAI,aAAa,EAAE,CAAC;gBAClB,8EAA8E;gBAC9E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CACtC,MAAM,CAAC,wBAAwB;qBAC5B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,CAAC;qBAC3H,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CACtC,CAAC;gBACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;qBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACZ,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE;uBACrB,CACD,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS;2BAC7B,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAClF,CACF;qBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAClD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAC1E,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC9G,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa;gBAAE,SAAS;YAEjD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CACxE,UAAU,CAAC,OAAO;uBACf,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE;uBACjC,UAAU,CAAC,eAAe,KAAK,aAAa,CAAC,EAAE,CACnD,CAAC;gBACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;qBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC;qBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBAC/F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;qBACzG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;qBACvG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9F,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,IACE,CAAC,eAAe;mBACb,CACD,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;uBAC3D,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CACzG;gBACD,SAAS;YAEX,MAAM,WAAW,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAEhH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAE/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;iBACtE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE7E,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;YACrD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACjD,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACpF,IAAI;SACL,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,MAA0B,EAC1B,SAAiB,EACjB,MAA2B;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC3F,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;gBACzD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzG,IAAI,UAAU,CAAC,OAAO,IAAI,YAAY,IAAI,UAAU,CAAC,eAAe,KAAK,MAAM,CAAC,EAAE;oBAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACtD,OAAO,CAAC,OAAO;eACZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC;eAChF,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;eAC5G,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;eAChE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;eAChE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAClG,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACrG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,QAAQ,GAAG,CAAC,GAAG,iBAAiB,CAAC;aACpC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,GAAoB;YAC3B,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;YACrC,QAAQ;YACR,QAAQ;YACR,MAAM;SACP,CAAC;QACF,OAAO;YACL,GAAG,MAAM;YACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACf,eAAe,EAAE;oBACf,EAAE,EAAE,SAAS;oBACb,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7E,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD;aACF,CAAC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG;SACJ,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACvB,MAA0B,EAC1B,SAAiB;QAEjB,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;eACrE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;eACvE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACvG,CAAC;IAEO,iBAAiB,CAAC,MAA0B,EAAE,SAAiB;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,CACvC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;eACpB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAyB,CAAC;eAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAmC,CAAC,CAAC,CACnH,CAAC;QACF,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;YAC5B,OAAO;gBACL,EAAE,EAAE,SAAS;gBACb,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;gBACjE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACxH,MAAM,MAAM,GAAG,UAAU;YACvB,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,CAAC;YACnH,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,SAAS;YACb,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;YACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,MAA0B,EAAE,QAAgB;QACtE,OAAO,MAAM,CAAC,IAAI;aACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;aAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,sBAAsB,CAAC,MAA0B;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC1G,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACzC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,eAAe;eACrD,SAAS,CAAC,QAAQ,KAAK,MAAM,EAAE,EAAE,CACrC,CAAC;QACF,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC,aAAa;YACpD,eAAe,EAAE,MAAM,CAAC,gBAAgB,CAAC,eAAe;YACxD,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;gBAClB,OAAO,EAAE;oBACP,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;oBACxC,GAAG,EAAE;wBACH,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC;wBAC/C,MAAM,EAAE,EAAE;wBACV,SAAS,EAAE,EAAE;wBACb,IAAI,EAAE,EAAE;wBACR,KAAK,EAAE,EAAE;wBACT,SAAS,EAAE,EAAE;wBACb,YAAY,EAAE,EAAE;wBAChB,cAAc,EAAE,EAAE;qBACnB;iBACF;aACF,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,MAA0B,EAAE,MAA2B;QACzE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,wBAAwB,IAAI,EAAE,CAAC;aAC5D,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC;aAC/E,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5H,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC9B,OAAO;gBACL,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;gBACxC,MAAM,EAAE,QAAiB;gBACzB,eAAe,EAAE,MAAM,CAAC,EAAE;gBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,cAAc,EAAE,WAAoB;gBACpC,SAAS,EAAE,UAAU,CAAC,WAAW;gBACjC,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,OAAO,EAA0C,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,0EAA0E;YAC1E,QAAQ,EAAE;gBACR,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;gBACpG,GAAG,cAAc;aAClB;YACD,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;SAC5D,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,MAA0B;QAClD,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAC5D,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;aAC/C,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAChB,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,CAAC,WAAW,QAAQ,EAAE,EAAE,UAAU,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC;YACF,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACnE,CAAC,CAAC;QAEL,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEO,QAAQ,CAAC,MAA0B,EAAE,GAAoB,EAAE,WAAqB,EAAE,aAAsB,EAAE,YAAqB;QACrI,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;YACnC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,wEAAwE;YACxE,MAAM,EAAE,aAAa,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7G,SAAS,EAAE,GAAG,CAAC,MAAM;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1F,SAAS,EAAE,aAAa;gBACtB,CAAC,CAAC,GAAG,CAAC,SAAS;gBACf,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;qBAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACjF,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAE,KAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1D;YACL,YAAY,EAAE,GAAG,CAAC,SAAS;YAC3B,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YACvD,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;CACF;AAED,SAAS,kCAAkC,CACzC,MAA0B,EAC1B,SAAiB;IAEjB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;SACjC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;SACpC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC/C,IAAI,aAAa,EAAE,YAAY;QAAE,OAAO,aAAa,CAAC,YAAY,CAAC;IAEnE,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC5F,IAAI,eAAe,EAAE,YAAY;QAAE,OAAO,eAAe,CAAC,YAAY,CAAC;IAEvE,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACxH,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,UAAU,CAAC,eAAe,CAAC,CAAC;QAC/G,IAAI,aAAa,EAAE,YAAY;YAAE,OAAO,aAAa,CAAC,YAAY,CAAC;IACrE,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ConfigSchemaDescriptor, ApiContractDescriptor, AuthProviderRuntimeMetadata, BetterPortalH3App, BetterPortalRegistry, PlatformConfigStore, JsonValue, M2MRequestDescriptor, BetterPortalRouteChrome, BetterPortalConfig, DeveloperResource, ShellManifest, ViewDemoScenario, WebhookEventDescriptor } from "@betterportal/framework";
|
|
1
|
+
import type { ConfigSchemaDescriptor, ApiContractDescriptor, AppAuthConfig, AppAuthPermissionAction, AuthProviderRuntimeMetadata, BetterPortalH3App, BetterPortalRegistry, PlatformConfigStore, JsonValue, M2MRequestDescriptor, BetterPortalRouteChrome, BetterPortalRouteMount, BetterPortalConfig, DeveloperResource, ShellManifest, OperationDependency, RenderMode, ViewDemoScenario, WebhookEventDescriptor } from "@betterportal/framework";
|
|
2
2
|
/**
|
|
3
3
|
* Hot manifest cache per service. The same data is persisted in platform config
|
|
4
4
|
* so app shell resolution remains deterministic after a control-plane restart.
|
|
@@ -17,6 +17,8 @@ export interface CachedManifestView {
|
|
|
17
17
|
fragments: Array<{
|
|
18
18
|
fragmentId: string;
|
|
19
19
|
targetPath: string;
|
|
20
|
+
operationId: string;
|
|
21
|
+
method: CachedManifestOperation["method"];
|
|
20
22
|
}>;
|
|
21
23
|
}
|
|
22
24
|
export interface CachedManifestOperation {
|
|
@@ -25,6 +27,7 @@ export interface CachedManifestOperation {
|
|
|
25
27
|
title: string;
|
|
26
28
|
description: string;
|
|
27
29
|
renderers: string[];
|
|
30
|
+
renderModes: RenderMode[];
|
|
28
31
|
role?: string;
|
|
29
32
|
authRequired: boolean;
|
|
30
33
|
sitemap?: {
|
|
@@ -39,12 +42,12 @@ export interface CachedManifestOperation {
|
|
|
39
42
|
crawlDelaySeconds?: number;
|
|
40
43
|
}>;
|
|
41
44
|
chrome?: BetterPortalRouteChrome;
|
|
42
|
-
dependencies:
|
|
45
|
+
dependencies: OperationDependency[];
|
|
43
46
|
/** Per-view permission requirements from the service's auth.permissions[]. */
|
|
44
47
|
permissions: Array<{
|
|
45
48
|
serviceId: string;
|
|
46
49
|
viewId: string;
|
|
47
|
-
permissions:
|
|
50
|
+
permissions: AppAuthPermissionAction[];
|
|
48
51
|
}>;
|
|
49
52
|
/** True if any UI renderer exists (page/fragment/component). API-only views = false. */
|
|
50
53
|
renderable: boolean;
|
|
@@ -57,6 +60,7 @@ export interface CachedManifestOperation {
|
|
|
57
60
|
/** Example payloads advertised by the service route. */
|
|
58
61
|
demoScenarios: ViewDemoScenario[];
|
|
59
62
|
}
|
|
63
|
+
export declare function isPageOperation(operation: Pick<CachedManifestOperation, "method" | "renderModes">): boolean;
|
|
60
64
|
export interface CachedManifest {
|
|
61
65
|
serviceId: string;
|
|
62
66
|
manifestVersion: string;
|
|
@@ -72,6 +76,21 @@ export interface CachedManifest {
|
|
|
72
76
|
webhooks: WebhookEventDescriptor[];
|
|
73
77
|
fetchedAt: number;
|
|
74
78
|
}
|
|
79
|
+
export interface DerivedRolePermission {
|
|
80
|
+
roleId: string;
|
|
81
|
+
serviceId: string;
|
|
82
|
+
viewId: string;
|
|
83
|
+
permissions: AppAuthPermissionAction[];
|
|
84
|
+
requiredBy: Array<{
|
|
85
|
+
serviceId: string;
|
|
86
|
+
operationId: string;
|
|
87
|
+
method: CachedManifestOperation["method"];
|
|
88
|
+
}>;
|
|
89
|
+
}
|
|
90
|
+
export declare function deriveRolePermissions(auth: AppAuthConfig, routes: BetterPortalRouteMount[], resolveManifest: (serviceId: string) => CachedManifest | undefined): {
|
|
91
|
+
auth: AppAuthConfig;
|
|
92
|
+
derived: DerivedRolePermission[];
|
|
93
|
+
};
|
|
75
94
|
/** Read-only accessor for the manifest cache. */
|
|
76
95
|
export declare function getManifestCache(): ReadonlyMap<string, CachedManifest>;
|
|
77
96
|
/** Resolve manifests for service instances, including shared-service activation aliases. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncApi.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/syncApi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"syncApi.d.ts","sourceRoot":"","sources":["../../../src/plugins/service-betterportal-config-manager/syncApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,94 @@ function validateServicePublicKey(publicKeyPem, keyId) {
|
|
|
15
15
|
throw new Error("S2S keyId does not match the public key");
|
|
16
16
|
return { publicKeyPem: normalized, keyId };
|
|
17
17
|
}
|
|
18
|
+
export function isPageOperation(operation) {
|
|
19
|
+
return operation.method === "GET" && operation.renderModes.includes("page");
|
|
20
|
+
}
|
|
21
|
+
export function deriveRolePermissions(auth, routes, resolveManifest) {
|
|
22
|
+
const mounted = routes.flatMap((route) => {
|
|
23
|
+
if (!route.enabled)
|
|
24
|
+
return [];
|
|
25
|
+
const manifest = resolveManifest(route.serviceId);
|
|
26
|
+
const view = manifest?.viewIndex[route.viewId];
|
|
27
|
+
return manifest && view
|
|
28
|
+
? view.operations
|
|
29
|
+
.filter((operation) => route.operations.includes(operation.operationId))
|
|
30
|
+
.map((operation) => ({ route, manifest, view, operation }))
|
|
31
|
+
: [];
|
|
32
|
+
});
|
|
33
|
+
const resolveDependency = (source, dependency) => {
|
|
34
|
+
const matches = mounted.filter((candidate) => candidate.operation.operationId === dependency.operationId
|
|
35
|
+
&& candidate.operation.method === dependency.method
|
|
36
|
+
&& (dependency.serviceId
|
|
37
|
+
? candidate.manifest.serviceId === dependency.serviceId
|
|
38
|
+
: candidate.route.serviceId === source.route.serviceId));
|
|
39
|
+
return matches.length === 1 ? matches[0] : undefined;
|
|
40
|
+
};
|
|
41
|
+
const instanceId = (serviceId) => {
|
|
42
|
+
const ids = [...new Set(mounted.filter((candidate) => candidate.manifest.serviceId === serviceId).map((candidate) => candidate.route.serviceId))];
|
|
43
|
+
return ids.length === 1 ? ids[0] : undefined;
|
|
44
|
+
};
|
|
45
|
+
const derived = [];
|
|
46
|
+
const roles = auth.roles.map((role) => {
|
|
47
|
+
const permissions = role.permissions.map((grant) => ({ ...grant, permissions: [...grant.permissions] }));
|
|
48
|
+
const queued = mounted.filter((candidate) => candidate.operation.permissions.every((required) => {
|
|
49
|
+
const serviceId = required.serviceId === candidate.manifest.serviceId
|
|
50
|
+
? candidate.route.serviceId
|
|
51
|
+
: instanceId(required.serviceId);
|
|
52
|
+
if (!serviceId)
|
|
53
|
+
return false;
|
|
54
|
+
const grant = permissions.find((value) => value.serviceId === serviceId && value.viewId === required.viewId);
|
|
55
|
+
return required.permissions.every((permission) => grant?.permissions.includes(permission));
|
|
56
|
+
}));
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
while (queued.length > 0) {
|
|
59
|
+
const source = queued.shift();
|
|
60
|
+
const sourceKey = `${source.route.serviceId}:${source.operation.operationId}:${source.operation.method}`;
|
|
61
|
+
if (seen.has(sourceKey))
|
|
62
|
+
continue;
|
|
63
|
+
seen.add(sourceKey);
|
|
64
|
+
for (const requirement of source.operation.dependencies) {
|
|
65
|
+
const target = resolveDependency(source, requirement);
|
|
66
|
+
if (!target)
|
|
67
|
+
continue;
|
|
68
|
+
queued.push(target);
|
|
69
|
+
for (const required of target.operation.permissions) {
|
|
70
|
+
const serviceId = required.serviceId === target.manifest.serviceId
|
|
71
|
+
? target.route.serviceId
|
|
72
|
+
: instanceId(required.serviceId);
|
|
73
|
+
if (!serviceId)
|
|
74
|
+
continue;
|
|
75
|
+
const grant = permissions.find((candidate) => candidate.serviceId === serviceId && candidate.viewId === required.viewId);
|
|
76
|
+
const additions = required.permissions.filter((permission) => !grant?.permissions.includes(permission));
|
|
77
|
+
if (grant)
|
|
78
|
+
grant.permissions = [...new Set([...grant.permissions, ...required.permissions])];
|
|
79
|
+
else if (required.permissions.length > 0)
|
|
80
|
+
permissions.push({ serviceId, viewId: required.viewId, permissions: [...required.permissions] });
|
|
81
|
+
if (additions.length > 0) {
|
|
82
|
+
const existing = derived.find((candidate) => candidate.roleId === role.id && candidate.serviceId === serviceId && candidate.viewId === required.viewId);
|
|
83
|
+
const requiredBy = {
|
|
84
|
+
serviceId: source.route.serviceId,
|
|
85
|
+
operationId: source.operation.operationId,
|
|
86
|
+
method: source.operation.method
|
|
87
|
+
};
|
|
88
|
+
if (existing) {
|
|
89
|
+
existing.permissions = [...new Set([...existing.permissions, ...additions])];
|
|
90
|
+
if (!existing.requiredBy.some((candidate) => candidate.serviceId === requiredBy.serviceId
|
|
91
|
+
&& candidate.operationId === requiredBy.operationId
|
|
92
|
+
&& candidate.method === requiredBy.method))
|
|
93
|
+
existing.requiredBy.push(requiredBy);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
derived.push({ roleId: role.id, serviceId, viewId: required.viewId, permissions: additions, requiredBy: [requiredBy] });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return { ...role, permissions };
|
|
103
|
+
});
|
|
104
|
+
return { auth: { ...auth, roles }, derived };
|
|
105
|
+
}
|
|
18
106
|
const manifestCache = new Map();
|
|
19
107
|
/** Read-only accessor for the manifest cache. */
|
|
20
108
|
export function getManifestCache() {
|
|
@@ -80,13 +168,19 @@ function normalizeManifest(input) {
|
|
|
80
168
|
operations: v.operations.map((operation) => ({
|
|
81
169
|
...operation,
|
|
82
170
|
renderers: Array.isArray(operation.renderers) ? operation.renderers : [],
|
|
171
|
+
renderModes: Array.isArray(operation.renderModes) ? operation.renderModes : operation.renderable
|
|
172
|
+
? [operation.method === "GET" ? "page" : "fragment"]
|
|
173
|
+
: [],
|
|
83
174
|
robots: Array.isArray(operation.robots) ? operation.robots : [],
|
|
84
175
|
dependencies: Array.isArray(operation.dependencies) ? operation.dependencies : [],
|
|
85
176
|
permissions: Array.isArray(operation.permissions) ? operation.permissions : [],
|
|
86
177
|
apiContracts: Array.isArray(operation.apiContracts) ? operation.apiContracts : [],
|
|
87
178
|
demoScenarios: Array.isArray(operation.demoScenarios) ? operation.demoScenarios : []
|
|
88
179
|
})),
|
|
89
|
-
fragments: Array.isArray(v.fragments) ? v.fragments.filter((fragment) => typeof fragment?.fragmentId === "string"
|
|
180
|
+
fragments: Array.isArray(v.fragments) ? v.fragments.filter((fragment) => typeof fragment?.fragmentId === "string"
|
|
181
|
+
&& typeof fragment?.targetPath === "string"
|
|
182
|
+
&& typeof fragment?.operationId === "string"
|
|
183
|
+
&& typeof fragment?.method === "string") : []
|
|
90
184
|
};
|
|
91
185
|
}
|
|
92
186
|
return {
|
|
@@ -142,12 +236,19 @@ export async function reconcileServiceRegistry(store, serviceId, registry, optio
|
|
|
142
236
|
|| set.components.some((renderer) => renderer.method === method)
|
|
143
237
|
|| set.fragments.some((renderer) => renderer.method === method)
|
|
144
238
|
|| (method === "GET" && Boolean(set.stream))).map(([renderer]) => renderer);
|
|
239
|
+
const renderModes = [...new Set(Object.values(route.renderers).flatMap((set) => [
|
|
240
|
+
...(set.pages.some((renderer) => renderer.method === method) ? ["page"] : []),
|
|
241
|
+
...(set.fragments.some((renderer) => renderer.method === method) || (method === "GET" && Boolean(set.stream))
|
|
242
|
+
? ["fragment"]
|
|
243
|
+
: [])
|
|
244
|
+
]))];
|
|
145
245
|
return {
|
|
146
246
|
operationId: operation.operationId,
|
|
147
247
|
method,
|
|
148
248
|
title: operation.title,
|
|
149
249
|
description: operation.description,
|
|
150
250
|
renderers,
|
|
251
|
+
renderModes,
|
|
151
252
|
...(operation.role ? { role: operation.role } : {}),
|
|
152
253
|
authRequired: operation.auth.required,
|
|
153
254
|
sitemap: sitemapMetadata(operation.sitemap),
|
|
@@ -189,10 +290,16 @@ export async function reconcileServiceRegistry(store, serviceId, registry, optio
|
|
|
189
290
|
};
|
|
190
291
|
}),
|
|
191
292
|
fragments: [...new Map(Object.values(route.renderers).flatMap((theme) => theme.fragments.flatMap((fragment) => {
|
|
293
|
+
if (!fragment.method)
|
|
294
|
+
return [];
|
|
295
|
+
const operation = route.methodRoutes?.[fragment.method];
|
|
296
|
+
if (!operation)
|
|
297
|
+
return [];
|
|
192
298
|
const fragmentId = fragment.fragmentLocation && fragment.fragmentId
|
|
193
299
|
? `${fragment.fragmentLocation}.${fragment.fragmentId}`
|
|
194
300
|
: fragment.rendererId;
|
|
195
|
-
|
|
301
|
+
const key = `${fragmentId}:${operation.operationId}:${fragment.method}`;
|
|
302
|
+
return [[key, { fragmentId, targetPath: route.path, operationId: operation.operationId, method: fragment.method }]];
|
|
196
303
|
}))).values()]
|
|
197
304
|
};
|
|
198
305
|
}
|
|
@@ -222,7 +329,7 @@ function injectResolvedServicePaths(scoped) {
|
|
|
222
329
|
const view = cached.viewIndex[route.viewId];
|
|
223
330
|
if (!view)
|
|
224
331
|
return route;
|
|
225
|
-
const operation = view.operations.find((candidate) => route.operations.includes(candidate.operationId) && candidate
|
|
332
|
+
const operation = view.operations.find((candidate) => route.operations.includes(candidate.operationId) && isPageOperation(candidate))
|
|
226
333
|
?? view.operations.find((candidate) => route.operations.includes(candidate.operationId));
|
|
227
334
|
if (!operation)
|
|
228
335
|
return route;
|
|
@@ -244,11 +351,17 @@ function injectResolvedServicePaths(scoped) {
|
|
|
244
351
|
...(chrome ? { chrome } : {})
|
|
245
352
|
};
|
|
246
353
|
});
|
|
247
|
-
const apps = scoped.apps.map((app) =>
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
354
|
+
const apps = scoped.apps.map((app) => {
|
|
355
|
+
const routes = resolveRoutes(app.routes);
|
|
356
|
+
return {
|
|
357
|
+
...app,
|
|
358
|
+
routes,
|
|
359
|
+
...(app.appRoutes ? { appRoutes: resolveRoutes(app.appRoutes) } : {}),
|
|
360
|
+
...(app.auth ? {
|
|
361
|
+
auth: deriveRolePermissions(app.auth, routes, (serviceId) => manifestCache.get(serviceId) ?? manifestCache.get(serviceManifestKeys.get(serviceId) ?? "")).auth
|
|
362
|
+
} : {})
|
|
363
|
+
};
|
|
364
|
+
});
|
|
252
365
|
return { ...scoped, apps };
|
|
253
366
|
}
|
|
254
367
|
export function registerSyncEndpoint(app, store) {
|
|
@@ -404,24 +517,33 @@ function sameOperations(left, right) {
|
|
|
404
517
|
function operationIndex(manifest) {
|
|
405
518
|
return new Map(Object.values(manifest.viewIndex).flatMap((view) => view.operations.map((operation) => [operation.operationId, { view, operation }])));
|
|
406
519
|
}
|
|
407
|
-
function addMissingDependencyRoutes(app, sourceRoute, manifest) {
|
|
520
|
+
function addMissingDependencyRoutes(config, app, sourceRoute, manifest) {
|
|
408
521
|
if (!sourceRoute.enabled)
|
|
409
522
|
return false;
|
|
410
523
|
const sourceView = manifest.viewIndex[sourceRoute.viewId];
|
|
411
524
|
if (!sourceView)
|
|
412
525
|
return false;
|
|
413
|
-
const operations = operationIndex(manifest);
|
|
414
526
|
const dependencies = sourceView.operations
|
|
415
527
|
.filter((operation) => sourceRoute.operations.includes(operation.operationId))
|
|
416
528
|
.flatMap((operation) => operation.dependencies);
|
|
417
529
|
let changed = false;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
530
|
+
const availableServiceIds = getAvailableServiceInstanceIdsForApp(config, app);
|
|
531
|
+
for (const requirement of dependencies) {
|
|
532
|
+
const targetServiceIds = requirement.serviceId
|
|
533
|
+
? [...availableServiceIds].filter((serviceId) => getCachedManifestForService(config, serviceId)?.serviceId === requirement.serviceId)
|
|
534
|
+
: [sourceRoute.serviceId];
|
|
535
|
+
if (targetServiceIds.length !== 1)
|
|
421
536
|
continue;
|
|
422
|
-
const
|
|
537
|
+
const targetServiceId = targetServiceIds[0];
|
|
538
|
+
const targetManifest = getCachedManifestForService(config, targetServiceId);
|
|
539
|
+
if (!targetManifest)
|
|
540
|
+
continue;
|
|
541
|
+
const dependency = operationIndex(targetManifest).get(requirement.operationId);
|
|
542
|
+
if (!dependency || dependency.operation.method !== requirement.method)
|
|
543
|
+
continue;
|
|
544
|
+
const existing = app.routes.find((route) => route.serviceId === targetServiceId && route.operations.includes(requirement.operationId));
|
|
423
545
|
if (existing) {
|
|
424
|
-
if (!existing.enabled) {
|
|
546
|
+
if (existing.enablement !== "disabled" && !existing.enabled) {
|
|
425
547
|
existing.enabled = true;
|
|
426
548
|
changed = true;
|
|
427
549
|
}
|
|
@@ -430,18 +552,37 @@ function addMissingDependencyRoutes(app, sourceRoute, manifest) {
|
|
|
430
552
|
app.routes.push({
|
|
431
553
|
id: uuidv7(),
|
|
432
554
|
kind: "api",
|
|
433
|
-
path: apiRoutePath(
|
|
434
|
-
serviceId:
|
|
555
|
+
path: apiRoutePath(targetManifest.serviceId, dependency.view.path),
|
|
556
|
+
serviceId: targetServiceId,
|
|
435
557
|
viewId: dependency.view.viewId,
|
|
436
558
|
targetPath: dependency.view.path,
|
|
437
559
|
title: dependency.operation.title,
|
|
438
560
|
enabled: true,
|
|
439
|
-
|
|
561
|
+
enablement: "auto",
|
|
562
|
+
operations: [requirement.operationId]
|
|
440
563
|
});
|
|
441
564
|
changed = true;
|
|
442
565
|
}
|
|
443
566
|
return changed;
|
|
444
567
|
}
|
|
568
|
+
function reconcileDependencyRoutes(config, app) {
|
|
569
|
+
const previous = new Map(app.routes.map((route) => [route.id, `${route.enabled}:${route.enablement ?? ""}`]));
|
|
570
|
+
for (const route of app.routes) {
|
|
571
|
+
if (route.kind === "api" && route.enablement === "auto")
|
|
572
|
+
route.enabled = false;
|
|
573
|
+
}
|
|
574
|
+
for (let pass = 0; pass <= app.routes.length; pass++) {
|
|
575
|
+
let passChanged = false;
|
|
576
|
+
for (const route of [...app.routes]) {
|
|
577
|
+
const manifest = getCachedManifestForService(config, route.serviceId);
|
|
578
|
+
if (manifest && addMissingDependencyRoutes(config, app, route, manifest))
|
|
579
|
+
passChanged = true;
|
|
580
|
+
}
|
|
581
|
+
if (!passChanged)
|
|
582
|
+
break;
|
|
583
|
+
}
|
|
584
|
+
return app.routes.length !== previous.size || app.routes.some((route) => previous.get(route.id) !== `${route.enabled}:${route.enablement ?? ""}`);
|
|
585
|
+
}
|
|
445
586
|
async function updateServiceMetadata(store, serviceInstanceId, manifest) {
|
|
446
587
|
const config = await store.loadConfig();
|
|
447
588
|
const persistedManifest = {
|
|
@@ -554,7 +695,7 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
|
|
|
554
695
|
changed = true;
|
|
555
696
|
}
|
|
556
697
|
const selectedOperations = validOperations.map((operationId) => manifestOperations.get(operationId).operation);
|
|
557
|
-
const pageOperation = selectedOperations.find(
|
|
698
|
+
const pageOperation = selectedOperations.find(isPageOperation);
|
|
558
699
|
const operation = pageOperation ?? selectedOperations[0];
|
|
559
700
|
if (route.operations.length > 1) {
|
|
560
701
|
route.operations = [operation.operationId];
|
|
@@ -608,12 +749,10 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
|
|
|
608
749
|
route.title = operation.title;
|
|
609
750
|
changed = true;
|
|
610
751
|
}
|
|
611
|
-
if (addMissingDependencyRoutes(app, route, manifest))
|
|
612
|
-
changed = true;
|
|
613
752
|
}
|
|
614
753
|
for (const serviceId of syncedServiceIds) {
|
|
615
754
|
for (const view of Object.values(manifest.viewIndex)) {
|
|
616
|
-
for (const operation of view.operations.filter((candidate) =>
|
|
755
|
+
for (const operation of view.operations.filter((candidate) => !isPageOperation(candidate))) {
|
|
617
756
|
if (app.routes.some((route) => route.serviceId === serviceId && route.operations.includes(operation.operationId)))
|
|
618
757
|
continue;
|
|
619
758
|
app.routes.push({
|
|
@@ -625,12 +764,15 @@ async function updateServiceMetadata(store, serviceInstanceId, manifest) {
|
|
|
625
764
|
targetPath: view.path,
|
|
626
765
|
title: operation.title,
|
|
627
766
|
enabled: false,
|
|
767
|
+
enablement: "auto",
|
|
628
768
|
operations: [operation.operationId]
|
|
629
769
|
});
|
|
630
770
|
changed = true;
|
|
631
771
|
}
|
|
632
772
|
}
|
|
633
773
|
}
|
|
774
|
+
if (reconcileDependencyRoutes(config, app))
|
|
775
|
+
changed = true;
|
|
634
776
|
}
|
|
635
777
|
if (changed)
|
|
636
778
|
await store.saveConfig(config);
|