ldap-rest 1.2.1 → 1.3.0
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/bin/sync-james.mjs +13 -2
- package/dist/abstract/ldapFlat.js +1 -1
- package/dist/abstract/plugin.js +1 -1
- package/dist/abstract/twakePlugin.js +1 -1
- package/dist/bin/index.js +1 -1
- package/dist/config/args.js +1 -1
- package/dist/config/options.js +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/lib/auth/base.js +1 -1
- package/dist/lib/authz/base.js +1 -1
- package/dist/lib/entitySchema/validator.js +1 -1
- package/dist/lib/errors.js +1 -1
- package/dist/lib/expressFormatedResponses.js +1 -1
- package/dist/lib/health.js +1 -1
- package/dist/lib/hookBus.js +1 -0
- package/dist/lib/instanceProviders.js +1 -1
- package/dist/lib/ldapActions.js +1 -1
- package/dist/lib/ldapSchema.js +1 -1
- package/dist/lib/parseConfig.js +1 -1
- package/dist/lib/route.js +1 -0
- package/dist/lib/schemaFile.js +1 -1
- package/dist/lib/storage/store.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/lib/version.js +1 -0
- package/dist/logger/winston.js +1 -1
- package/dist/plugins/auth/auth.options.js +1 -0
- package/dist/plugins/auth/authzDynamic.js +1 -1
- package/dist/plugins/auth/authzLinid1.js +1 -1
- package/dist/plugins/auth/authzPerBranch.js +1 -1
- package/dist/plugins/auth/authzPerRoute.js +1 -1
- package/dist/plugins/auth/authzScope.js +1 -1
- package/dist/plugins/auth/crowdsec.js +1 -1
- package/dist/plugins/auth/fake.js +1 -1
- package/dist/plugins/auth/hmac.js +1 -1
- package/dist/plugins/auth/llng.js +1 -1
- package/dist/plugins/auth/openidconnect.js +1 -1
- package/dist/plugins/auth/rateLimit.js +1 -1
- package/dist/plugins/auth/token.js +1 -1
- package/dist/plugins/auth/totp.js +1 -1
- package/dist/plugins/auth/trustedProxy.js +1 -1
- package/dist/plugins/bcl.js +1 -1
- package/dist/plugins/bcl.options.js +1 -0
- package/dist/plugins/configApi.js +1 -1
- package/dist/plugins/demo/helloworld.js +1 -1
- package/dist/plugins/ldap/accountLifecycle.js +1 -1
- package/dist/plugins/ldap/bulkImport.js +1 -1
- package/dist/plugins/ldap/departmentSync.js +1 -1
- package/dist/plugins/ldap/enterpriseRules.js +1 -1
- package/dist/plugins/ldap/externalUsersInGroups.js +1 -1
- package/dist/plugins/ldap/flatGeneric.js +1 -1
- package/dist/plugins/ldap/groups.js +1 -1
- package/dist/plugins/ldap/ldap.options.js +1 -0
- package/dist/plugins/ldap/onChange.js +1 -1
- package/dist/plugins/ldap/organizations.js +1 -1
- package/dist/plugins/ldap/passwordPolicy.js +1 -1
- package/dist/plugins/ldap/raw.js +1 -1
- package/dist/plugins/ldap/trash.js +1 -1
- package/dist/plugins/metrics.js +1 -1
- package/dist/plugins/metrics.options.js +1 -0
- package/dist/plugins/rabbitmq.js +1 -1
- package/dist/plugins/rabbitmq.options.js +1 -0
- package/dist/plugins/scim/baseResolver.js +1 -1
- package/dist/plugins/scim/bulk.js +1 -1
- package/dist/plugins/scim/discovery.js +1 -1
- package/dist/plugins/scim/errors.js +1 -1
- package/dist/plugins/scim/filter.js +1 -1
- package/dist/plugins/scim/groups.js +1 -1
- package/dist/plugins/scim/mapping.js +1 -1
- package/dist/plugins/scim/patch.js +1 -1
- package/dist/plugins/scim/scim.js +1 -1
- package/dist/plugins/scim/scim.options.js +1 -0
- package/dist/plugins/scim/users.js +1 -1
- package/dist/plugins/static.js +1 -1
- package/dist/plugins/static.options.js +1 -0
- package/dist/plugins/storage/file.js +1 -1
- package/dist/plugins/storage/ldap.js +1 -1
- package/dist/plugins/storage/postgres.js +1 -1
- package/dist/plugins/storage/valkey.js +1 -1
- package/dist/plugins/storage.js +1 -1
- package/dist/plugins/storage.options.js +1 -0
- package/dist/plugins/twake/appAccounts.options.js +1 -0
- package/dist/plugins/twake/appAccountsApi.js +1 -1
- package/dist/plugins/twake/appAccountsConsistency.js +1 -1
- package/dist/plugins/twake/calendar.js +1 -1
- package/dist/plugins/twake/calendar.options.js +1 -0
- package/dist/plugins/twake/calendarResources.js +1 -1
- package/dist/plugins/twake/cloudery.options.js +1 -0
- package/dist/plugins/twake/clouderyProvision.js +1 -1
- package/dist/plugins/twake/cozy.options.js +1 -0
- package/dist/plugins/twake/cozyProvision.js +1 -1
- package/dist/plugins/twake/drive.js +1 -1
- package/dist/plugins/twake/drive.options.js +1 -0
- package/dist/plugins/twake/groups.js +1 -1
- package/dist/plugins/twake/instances.js +1 -1
- package/dist/plugins/twake/james.js +1 -1
- package/dist/plugins/twake/james.options.js +1 -0
- package/dist/plugins/twake/lifecycleAttributes.js +1 -1
- package/dist/plugins/twake/lifecycleEvents.js +1 -1
- package/dist/plugins/twake/migrationProxy.js +1 -1
- package/dist/plugins/twake/migrationProxy.options.js +1 -0
- package/dist/plugins/twake/spaces.js +1 -1
- package/dist/plugins/twake/tombstone.js +1 -1
- package/dist/plugins/twake/twakeGroups.options.js +1 -0
- package/dist/plugins/twake/twakeInstances.options.js +1 -0
- package/dist/plugins/twake/twakeLifecycle.options.js +1 -0
- package/dist/plugins/twake/twakeSpaces.options.js +1 -0
- package/dist/plugins/twake/twakeTombstone.options.js +1 -0
- package/dist/plugins/weblogs.js +1 -1
- package/dist/src/abstract/ldapFlat.d.ts +28 -10
- package/dist/src/abstract/plugin.d.ts +10 -5
- package/dist/src/abstract/twakePlugin.d.ts +14 -4
- package/dist/src/bin/index.d.ts +17 -4
- package/dist/src/config/args.d.ts +2 -4
- package/dist/src/config/options.d.ts +89 -0
- package/dist/src/config/schema.d.ts +50 -1
- package/dist/src/hooks.d.ts +60 -22
- package/dist/src/lib/authz/base.d.ts +4 -51
- package/dist/src/lib/authz/composition.d.ts +2 -2
- package/dist/src/lib/entitySchema/validator.d.ts +63 -6
- package/dist/src/lib/errors.d.ts +56 -1
- package/dist/src/lib/expressFormatedResponses.d.ts +49 -7
- package/dist/src/lib/hookBus.d.ts +226 -0
- package/dist/src/lib/instanceProviders.d.ts +0 -8
- package/dist/src/lib/ldapActions.d.ts +7 -0
- package/dist/src/lib/parseConfig.d.ts +5 -0
- package/dist/src/lib/route.d.ts +99 -0
- package/dist/src/lib/utils.d.ts +31 -36
- package/dist/src/lib/version.d.ts +12 -0
- package/dist/src/plugins/auth/auth.options.d.ts +88 -0
- package/dist/src/plugins/auth/authzDynamic.d.ts +10 -1
- package/dist/src/plugins/auth/authzLinid1.d.ts +6 -0
- package/dist/src/plugins/auth/authzPerBranch.d.ts +9 -0
- package/dist/src/plugins/auth/authzPerRoute.d.ts +3 -0
- package/dist/src/plugins/auth/authzScope.d.ts +23 -14
- package/dist/src/plugins/auth/crowdsec.d.ts +5 -0
- package/dist/src/plugins/auth/fake.d.ts +3 -0
- package/dist/src/plugins/auth/hmac.d.ts +4 -0
- package/dist/src/plugins/auth/llng.d.ts +4 -0
- package/dist/src/plugins/auth/openidconnect.d.ts +7 -0
- package/dist/src/plugins/auth/rateLimit.d.ts +4 -0
- package/dist/src/plugins/auth/token.d.ts +3 -0
- package/dist/src/plugins/auth/totp.d.ts +5 -0
- package/dist/src/plugins/auth/trustedProxy.d.ts +4 -0
- package/dist/src/plugins/bcl.d.ts +3 -0
- package/dist/src/plugins/bcl.options.d.ts +8 -0
- package/dist/src/plugins/configApi.d.ts +24 -5
- package/dist/src/plugins/demo/helloworld.d.ts +8 -19
- package/dist/src/plugins/ldap/accountLifecycle.d.ts +17 -0
- package/dist/src/plugins/ldap/bulkImport.d.ts +6 -76
- package/dist/src/plugins/ldap/departmentSync.d.ts +1 -0
- package/dist/src/plugins/ldap/enterpriseRules.d.ts +8 -1
- package/dist/src/plugins/ldap/externalUsersInGroups.d.ts +4 -0
- package/dist/src/plugins/ldap/flatGeneric.d.ts +4 -0
- package/dist/src/plugins/ldap/groups.d.ts +27 -11
- package/dist/src/plugins/ldap/ldap.options.d.ts +75 -0
- package/dist/src/plugins/ldap/onChange.d.ts +10 -2
- package/dist/src/plugins/ldap/organizations.d.ts +16 -0
- package/dist/src/plugins/ldap/passwordPolicy.d.ts +32 -1
- package/dist/src/plugins/ldap/raw.d.ts +50 -19
- package/dist/src/plugins/ldap/trash.d.ts +6 -0
- package/dist/src/plugins/metrics.d.ts +3 -0
- package/dist/src/plugins/metrics.options.d.ts +8 -0
- package/dist/src/plugins/rabbitmq.d.ts +3 -0
- package/dist/src/plugins/rabbitmq.options.d.ts +8 -0
- package/dist/src/plugins/scim/baseResolver.d.ts +2 -1
- package/dist/src/plugins/scim/bulk.d.ts +6 -7
- package/dist/src/plugins/scim/discovery.d.ts +3 -0
- package/dist/src/plugins/scim/errors.d.ts +2 -1
- package/dist/src/plugins/scim/groups.d.ts +6 -4
- package/dist/src/plugins/scim/scim.d.ts +37 -3
- package/dist/src/plugins/scim/scim.options.d.ts +35 -0
- package/dist/src/plugins/scim/users.d.ts +6 -7
- package/dist/src/plugins/static.d.ts +9 -0
- package/dist/src/plugins/static.options.d.ts +13 -0
- package/dist/src/plugins/storage.d.ts +12 -1
- package/dist/src/plugins/storage.options.d.ts +16 -0
- package/dist/src/plugins/twake/appAccounts.options.d.ts +13 -0
- package/dist/src/plugins/twake/appAccountsApi.d.ts +18 -0
- package/dist/src/plugins/twake/appAccountsConsistency.d.ts +8 -0
- package/dist/src/plugins/twake/calendar.d.ts +25 -2
- package/dist/src/plugins/twake/calendar.options.d.ts +19 -0
- package/dist/src/plugins/twake/cloudery.options.d.ts +26 -0
- package/dist/src/plugins/twake/clouderyProvision.d.ts +18 -0
- package/dist/src/plugins/twake/cozy.options.d.ts +23 -0
- package/dist/src/plugins/twake/cozyProvision.d.ts +14 -0
- package/dist/src/plugins/twake/drive.d.ts +7 -0
- package/dist/src/plugins/twake/drive.options.d.ts +15 -0
- package/dist/src/plugins/twake/groups.d.ts +29 -1
- package/dist/src/plugins/twake/instances.d.ts +43 -10
- package/dist/src/plugins/twake/james.d.ts +17 -0
- package/dist/src/plugins/twake/james.options.d.ts +21 -0
- package/dist/src/plugins/twake/lifecycleEvents.d.ts +12 -0
- package/dist/src/plugins/twake/migrationProxy.d.ts +11 -11
- package/dist/src/plugins/twake/migrationProxy.options.d.ts +16 -0
- package/dist/src/plugins/twake/spaces.d.ts +30 -0
- package/dist/src/plugins/twake/tombstone.d.ts +16 -14
- package/dist/src/plugins/twake/twakeGroups.options.d.ts +20 -0
- package/dist/src/plugins/twake/twakeInstances.options.d.ts +43 -0
- package/dist/src/plugins/twake/twakeLifecycle.options.d.ts +21 -0
- package/dist/src/plugins/twake/twakeSpaces.options.d.ts +19 -0
- package/dist/src/plugins/twake/twakeTombstone.options.d.ts +17 -0
- package/docs/README.md +1 -0
- package/docs/client-development/api/rest-api.md +9 -3
- package/docs/client-development/schemas/README.md +96 -32
- package/docs/plugin-development/README.md +45 -94
- package/docs/plugin-development/dependencies.md +11 -6
- package/docs/plugin-development/hooks.md +142 -23
- package/docs/plugin-development/openapi.md +14 -1
- package/docs/plugin-development/options.md +109 -0
- package/docs/plugin-development/routes.md +152 -0
- package/docs/plugin-development/testing.md +3 -3
- package/docs/usage/configuration.md +18 -11
- package/docs/usage/operations.md +19 -4
- package/docs/usage/plugins/ldap/enterprise-rules.md +10 -1
- package/docs/usage/plugins/ldap/flat-generic.md +4 -0
- package/docs/usage/plugins/ldap/raw.md +17 -1
- package/docs/usage/upgrading.md +194 -0
- package/package.json +358 -277
- package/static/browser/ldap-browser/LdapBrowser.js +8 -6
- package/static/browser/ldap-browser/LdapBrowser.js.map +1 -1
- package/static/browser/ldap-browser/api/RawApiClient.js +2 -0
- package/static/browser/ldap-browser/api/RawApiClient.js.map +1 -1
- package/static/browser/ldap-browser/components/EntryTree.js +9 -5
- package/static/browser/ldap-browser/components/EntryTree.js.map +1 -1
- package/static/browser/ldap-browser/components/EntryView.js +2 -0
- package/static/browser/ldap-browser/components/EntryView.js.map +1 -1
- package/static/browser/ldap-browser/schema.js +3 -2
- package/static/browser/ldap-browser/schema.js.map +1 -1
- package/static/browser/ldap-browser.esm.js +27 -18
- package/static/browser/ldap-browser.esm.js.map +1 -1
- package/static/browser/ldap-browser.js +27 -18
- package/static/browser/ldap-browser.js.map +1 -1
- package/static/browser/ldap-browser.min.js +1 -1
- package/static/browser/ldap-browser.min.js.map +1 -1
- package/static/browser/ldap-group-editor/LdapGroupEditor.js +8 -6
- package/static/browser/ldap-group-editor/LdapGroupEditor.js.map +1 -1
- package/static/browser/ldap-group-editor/api/GroupApiClient.js +1 -0
- package/static/browser/ldap-group-editor/api/GroupApiClient.js.map +1 -1
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js +5 -1
- package/static/browser/ldap-group-editor/components/CreateGroupModal.js.map +1 -1
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js +6 -3
- package/static/browser/ldap-group-editor/components/GroupPropertyEditor.js.map +1 -1
- package/static/browser/ldap-group-editor/components/GroupTree.js +6 -3
- package/static/browser/ldap-group-editor/components/GroupTree.js.map +1 -1
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js +6 -3
- package/static/browser/ldap-group-editor/components/MoveGroupModal.js.map +1 -1
- package/static/browser/ldap-group-editor.esm.js +32 -16
- package/static/browser/ldap-group-editor.esm.js.map +1 -1
- package/static/browser/ldap-group-editor.js +32 -16
- package/static/browser/ldap-group-editor.js.map +1 -1
- package/static/browser/ldap-group-editor.min.js +1 -1
- package/static/browser/ldap-group-editor.min.js.map +1 -1
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js +3 -0
- package/static/browser/ldap-resource-editor/api/ResourceApiClient.js.map +1 -1
- package/static/browser/ldap-resource-editor/cache/CacheManager.js +3 -1
- package/static/browser/ldap-resource-editor/cache/CacheManager.js.map +1 -1
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js +6 -1
- package/static/browser/ldap-tree-viewer/LdapTreeViewer.js.map +1 -1
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js +2 -0
- package/static/browser/ldap-tree-viewer/api/LdapApiClient.js.map +1 -1
- package/static/browser/ldap-tree-viewer/components/TreeNode.js +4 -0
- package/static/browser/ldap-tree-viewer/components/TreeNode.js.map +1 -1
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js +3 -0
- package/static/browser/ldap-tree-viewer/components/TreeRoot.js.map +1 -1
- package/static/browser/ldap-tree-viewer/store/Store.js +3 -1
- package/static/browser/ldap-tree-viewer/store/Store.js.map +1 -1
- package/static/browser/ldap-tree-viewer.esm.js +18 -2
- package/static/browser/ldap-tree-viewer.esm.js.map +1 -1
- package/static/browser/ldap-tree-viewer.js +18 -2
- package/static/browser/ldap-tree-viewer.js.map +1 -1
- package/static/browser/ldap-tree-viewer.min.js +1 -1
- package/static/browser/ldap-tree-viewer.min.js.map +1 -1
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js +7 -5
- package/static/browser/ldap-unit-editor/LdapUnitEditor.js.map +1 -1
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js +1 -0
- package/static/browser/ldap-unit-editor/api/UnitApiClient.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js +7 -4
- package/static/browser/ldap-unit-editor/components/MoveUnitModal.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js +7 -4
- package/static/browser/ldap-unit-editor/components/UnitPropertyEditor.js.map +1 -1
- package/static/browser/ldap-unit-editor/components/UnitTree.js +6 -3
- package/static/browser/ldap-unit-editor/components/UnitTree.js.map +1 -1
- package/static/browser/ldap-unit-editor.esm.js +28 -16
- package/static/browser/ldap-unit-editor.esm.js.map +1 -1
- package/static/browser/ldap-unit-editor.js +28 -16
- package/static/browser/ldap-unit-editor.js.map +1 -1
- package/static/browser/ldap-unit-editor.min.js +1 -1
- package/static/browser/ldap-unit-editor.min.js.map +1 -1
- package/static/browser/ldap-user-editor/LdapUserEditor.js +9 -7
- package/static/browser/ldap-user-editor/LdapUserEditor.js.map +1 -1
- package/static/browser/ldap-user-editor/api/UserApiClient.js +2 -0
- package/static/browser/ldap-user-editor/api/UserApiClient.js.map +1 -1
- package/static/browser/ldap-user-editor/cache/CacheManager.js +3 -1
- package/static/browser/ldap-user-editor/cache/CacheManager.js.map +1 -1
- package/static/browser/ldap-user-editor/components/MoveUserModal.js +7 -4
- package/static/browser/ldap-user-editor/components/MoveUserModal.js.map +1 -1
- package/static/browser/ldap-user-editor/components/PointerField.js +6 -1
- package/static/browser/ldap-user-editor/components/PointerField.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserEditor.js +10 -5
- package/static/browser/ldap-user-editor/components/UserEditor.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserList.js +8 -4
- package/static/browser/ldap-user-editor/components/UserList.js.map +1 -1
- package/static/browser/ldap-user-editor/components/UserTree.js +7 -3
- package/static/browser/ldap-user-editor/components/UserTree.js.map +1 -1
- package/static/browser/ldap-user-editor.esm.js +55 -30
- package/static/browser/ldap-user-editor.esm.js.map +1 -1
- package/static/browser/ldap-user-editor.js +55 -30
- package/static/browser/ldap-user-editor.js.map +1 -1
- package/static/browser/ldap-user-editor.min.js +1 -1
- package/static/browser/ldap-user-editor.min.js.map +1 -1
- package/static/browser/shared/components/DisposableComponent.js +3 -5
- package/static/browser/shared/components/DisposableComponent.js.map +1 -1
- package/static/browser/shared/components/Modal.js +2 -1
- package/static/browser/shared/components/Modal.js.map +1 -1
- package/static/browser/shared/components/StatusMessage.js +3 -2
- package/static/browser/shared/components/StatusMessage.js.map +1 -1
- package/static/browser/shared/utils/form.js.map +1 -1
- package/static/browser/shared/utils/hmac.js +1 -0
- package/static/browser/shared/utils/hmac.js.map +1 -1
- package/static/browser/shared/utils/totp.js +1 -0
- package/static/browser/shared/utils/totp.js.map +1 -1
- package/static/browser/shared.esm.js +9 -8
- package/static/browser/shared.esm.js.map +1 -1
- package/static/browser/shared.js +9 -8
- package/static/browser/shared.js.map +1 -1
- package/static/browser/shared.min.js +1 -1
- package/static/browser/shared.min.js.map +1 -1
- package/static/schemas/ad/groups.json +1 -1
- package/static/schemas/ad/users.json +3 -3
- package/static/schemas/example/organizations.json +2 -2
- package/static/schemas/example/users.json +2 -2
- package/static/schemas/obm/users.json +2 -2
- package/static/schemas/standard/groups.json +1 -1
- package/static/schemas/standard/users.json +2 -2
- package/static/schemas/twake/groups.json +4 -4
- package/static/schemas/twake/teamMailboxes.json +3 -3
- package/static/schemas/twake/users.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ldap-user-editor.js","sources":["../../../../src/browser/ldap-user-editor/cache/CacheManager.ts","../../../../src/browser/shared/utils/schema.ts","../../../../src/browser/ldap-user-editor/api/UserApiClient.ts","../../../../src/browser/shared/components/DisposableComponent.ts","../../../../src/browser/ldap-user-editor/components/UserTree.ts","../../../../src/browser/ldap-user-editor/components/PointerField.ts","../../../../src/browser/ldap-user-editor/components/MoveUserModal.ts","../../../../src/browser/shared/utils/form.ts","../../../../src/browser/ldap-user-editor/components/UserEditor.ts","../../../../src/browser/ldap-user-editor/components/UserList.ts","../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ldap-user-editor.js","sources":["../../../../src/browser/ldap-user-editor/cache/CacheManager.ts","../../../../src/browser/shared/utils/schema.ts","../../../../src/browser/ldap-user-editor/api/UserApiClient.ts","../../../../src/browser/shared/components/DisposableComponent.ts","../../../../src/browser/ldap-user-editor/components/UserTree.ts","../../../../src/browser/ldap-user-editor/components/PointerField.ts","../../../../src/browser/ldap-user-editor/components/MoveUserModal.ts","../../../../src/browser/shared/utils/form.ts","../../../../src/browser/ldap-user-editor/components/UserEditor.ts","../../../../src/browser/ldap-user-editor/components/UserList.ts","../../../../src/browser/ldap-user-editor/LdapUserEditor.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;IAAA;;;IAGG;UAmBU,YAAY,CAAA;IACf,IAAA,KAAK,GAAqC,IAAI,GAAG,EAAE;IACnD,IAAA,GAAG;IACH,IAAA,UAAU;IAElB,IAAA,WAAA,CAAY,UAAwB,EAAE,EAAA;IACpC,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC9C;IAEA;;;IAGG;IACH,IAAA,GAAG,CAAI,GAAW,EAAA;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAA8B;IAC9D,QAAA,IAAI,CAAC,KAAK;IAAE,YAAA,OAAO,IAAI;;IAGvB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;IAC5C,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IACtB,YAAA,OAAO,IAAI;YACb;;YAGA,KAAK,CAAC,WAAW,EAAE;IACnB,QAAA,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAC5B,OAAO,KAAK,CAAC,IAAI;QACnB;IAEA;;;IAGG;QACH,GAAG,CAAI,GAAW,EAAE,IAAO,EAAA;;YAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC9D,IAAI,CAAC,QAAQ,EAAE;YACjB;IAEA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBAClB,IAAI;IACJ,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;IACrB,YAAA,WAAW,EAAE,CAAC;IACf,SAAA,CAAC;QACJ;IAEA;;IAEG;IACH,IAAA,GAAG,CAAC,GAAW,EAAA;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;QAC/B;IAEA;;IAEG;IACH,IAAA,UAAU,CAAC,GAAW,EAAA;IACpB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACxB;IAEA;;;IAGG;IACH,IAAA,iBAAiB,CAAC,OAAe,EAAA;YAC/B,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAC7D;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;IACnC,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IACnB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;gBACxB;YACF;QACF;IAEA;;IAEG;QACH,KAAK,GAAA;IACH,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB;IAEA;;IAEG;QACH,QAAQ,GAAA;YAMN,OAAO;IACL,YAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aACpC;QACH;IAEA;;IAEG;QACK,QAAQ,GAAA;YACd,IAAI,MAAM,GAAkB,IAAI;YAChC,IAAI,OAAO,GAAG,QAAQ;YACtB,IAAI,QAAQ,GAAG,QAAQ;IAEvB,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;;IAE/C,YAAA,IACE,KAAK,CAAC,WAAW,GAAG,QAAQ;IAC5B,iBAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,EAC7D;oBACA,MAAM,GAAG,GAAG;IACZ,gBAAA,OAAO,GAAG,KAAK,CAAC,SAAS;IACzB,gBAAA,QAAQ,GAAG,KAAK,CAAC,WAAW;gBAC9B;YACF;YAEA,IAAI,MAAM,EAAE;IACV,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3B;QACF;IAEA;;;IAGG;QACH,YAAY,GAAA;IACV,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,OAAO,GAAG,CAAC;IAEf,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC/C,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;IACrC,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IACtB,gBAAA,OAAO,EAAE;gBACX;YACF;IAEA,QAAA,OAAO,OAAO;QAChB;IACD;;ICpKD;;;IAGG;IAIH;;IAEG;IA+IH;;;;;;IAMG;IACG,SAAU,OAAO,CACrB,IAA+C,EAC/C,IAAY,EAAA;IAEZ,IAAA,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI;QACxB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI;IACrE;IAEA;;;;;;;;;IASG;aACa,aAAa,CAC3B,IAA+B,EAC/B,QAAQ,GAAG,IAAI,EAAA;IAEf,IAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;IAAE,QAAA,OAAO,SAAS;QACzD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,IAAI,SAAS;IACtD,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;QACpD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;YAAE,IAAI,IAAI,CAAC,GAAG,CAAC;IAAE,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC;QAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IAC1C;;IC1LA;;IAEG;UAMU,aAAa,CAAA;IAChB,IAAA,OAAO;IACP,IAAA,KAAK;QAEb,WAAA,CACE,OAAA,GAAkB,EAAE,EACpB,YAAoD,EAAA;IAEpD,QAAA,IAAI,CAAC,OAAO;IACV,YAAA,OAAO,KAAK,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;YAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC;;IAG3C,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,YAAA,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACpE;QACF;QAEQ,UAAU,GAAA;IAChB,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,SAAS;QACjC;IAEQ,IAAA,aAAa,CAAC,KAAc,EAAA;IAClC,QAAA,IAAI,CAAC,KAAK;IAAE,YAAA,OAAO,EAAE;IACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;IAC/C,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;IAEA;;IAEG;IACK,IAAA,MAAM,WAAW,CAAI,GAAW,EAAE,OAAqB,EAAA;IAC7D,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK;;IAGvC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC;IACrC,YAAA,IAAI,MAAM,KAAK,IAAI,EAAE;IACnB,gBAAA,OAAO,MAAM;gBACf;YACF;YAEA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAC,UAAU,CAAA,CAAE,CAAC;YAC1D;YAEA,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM;;IAGpC,QAAA,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;YAC3B;IAEA,QAAA,OAAO,IAAI;QACb;IAEA,IAAA,MAAM,SAAS,GAAA;YACb,OAAO,IAAI,CAAC,WAAW,CAAS,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,OAAA,CAAS,CAAC;QAChE;QAEA,MAAM,SAAS,CAAC,SAAiB,EAAA;;IAE/B,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM;IACrC,cAAE;kBACA,GAAG,IAAI,CAAC,OAAO,CAAA,EAAG,SAAS,EAAE;IACjC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAS,GAAG,CAAC;QACtC;IAEA,IAAA,MAAM,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAA;YACxB,MAAM,GAAG,GAAG;kBACR,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,kBAAA,EAAqB,kBAAkB,CAAC,MAAM,CAAC,CAAA,cAAA;IACrE,cAAE,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,aAAa;YACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,GAAG,CACJ;;IAED,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACzD;QAEA,MAAM,OAAO,CAAC,EAAU,EAAA;IACtB,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,EAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;IACvE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAW,GAAG,CAAC;QACxC;IAEA;;;;;IAKG;IACH,IAAA,MAAM,UAAU,CACd,EAAU,EACV,OAAgC,EAAA;IAEhC,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC3D;IACE,YAAA,MAAM,EAAE,KAAK;IACb,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IAClC,SAAA,CACF;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;YACnD;IACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;IAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;IACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;IAEhE,QAAA,OAAO,MAAM;QACf;QAEA,MAAM,UAAU,CAAC,IAAuB,EAAA;YACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,WAAA,CAAa,EAAE;IACzD,YAAA,MAAM,EAAE,MAAM;IACd,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;IAC/C,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3B,SAAA,CAAC;IACF,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;YACnD;IACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;IAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;IAEhE,QAAA,OAAO,MAAM;QACf;QAEA,MAAM,UAAU,CAAC,EAAU,EAAA;IACzB,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAC3D;IACE,YAAA,MAAM,EAAE,QAAQ;IACjB,SAAA,CACF;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;YACnD;;IAGA,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;IACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;QAClE;IAEA,IAAA,MAAM,QAAQ,CACZ,EAAU,EACV,WAAmB,EAAA;IAEnB,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAChE;IACE,YAAA,MAAM,EAAE,MAAM;IACd,YAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IACtC,SAAA,CACF;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,qBAAqB,CAAC;YACjD;IACA,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;IAG/B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACnB,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAC5D;IACD,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,EAAG,IAAI,CAAC,UAAU,EAAE,CAAA,YAAA,CAAc,CAAC;IAEhE,QAAA,OAAO,MAAM;QACf;QAEA,MAAM,iBAAiB,CAAC,MAAc,EAAA;IACpC,QAAA,IAAI;;IAEF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;;IAGrC,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,CACpE,CAAC,IAAG;;IAEF,gBAAA,OAAO,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,YAAA,CAAC,CACF;gBAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;;IAExC,gBAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;oBACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAEjC,GAAG,CAAC;;oBAGN,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;IAG9D,gBAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,gBAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa;IAE9C,gBAAA,IAAI,QAAQ,CAAC,SAAS,EAAE;IACtB,oBAAA,IAAI;4BACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;;IAEvD,wBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACzD,CAAC,GAAG,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAC3C;4BACD,IAAI,YAAY,EAAE;IAChB,4BAAA,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC;4BACpC;;wBAEF;wBAAE,OAAO,CAAC,EAAE;;wBAEZ;oBACF;IAEA,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAc,KAAI;wBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC5D,OAAO;4BACL,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,wBAAA,KAAK,EAAE,WAAW,IAAI,UAAU,IAAI,IAAI,CAAC,EAAE;yBAC5C;IACH,gBAAA,CAAC,CAAC;gBACJ;;IAGA,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,CAAA,CAAE,CAAC;YAC1E;YAAE,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CACX,4CAA4C,EAC5C,MAAM,EACN,KAAK,CACN;IACD,YAAA,OAAO,EAAE;YACX;QACF;IAEA;;IAEG;IAEH;;IAEG;QACH,UAAU,GAAA;IACR,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB;IAEA;;IAEG;IACH,IAAA,eAAe,CAAC,OAAe,EAAA;IAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACvC;IAEA;;IAEG;QACH,aAAa,GAAA;IAMX,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC9B;IAEA;;IAEG;QACH,QAAQ,GAAA;YACN,OAAO,IAAI,CAAC,KAAK;QACnB;IACD;;ICnSD;;;;IAIG;UASmB,mBAAmB,CAAA;QAC/B,eAAe,GAAyB,EAAE;QAC1C,UAAU,GAAqC,EAAE;QACjD,YAAY,GAAG,KAAK;IAE5B;;;IAGG;IACO,IAAA,uBAAuB,CAC/B,MAAmB,EACnB,IAAY,EACZ,QAA4C,EAC5C,OAA2C,EAAA;YAE3C,IAAI,IAAI,CAAC,YAAY;gBAAE;YACvB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;IAChD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAChE;IAEA;;;IAGG;QACO,kBAAkB,CAC1B,QAAoB,EACpB,EAAU,EAAA;YAEV,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,QAAA,OAAO,EAAE;QACX;IAEA;;IAEG;IACH,IAAA,IAAc,WAAW,GAAA;YACvB,OAAO,IAAI,CAAC,YAAY;QAC1B;IAEA;;;IAGG;QACH,OAAO,GAAA;YACL,IAAI,IAAI,CAAC,YAAY;gBAAE;IACvB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;IAGxB,QAAA,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtE,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;YACrD;IACA,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;;IAGzB,QAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;gBAChC,aAAa,CAAC,EAAE,CAAC;YACnB;IACA,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;QACtB;IACD;;ICzED;;;IAGG;IAMG,MAAO,QAAS,SAAQ,mBAAmB,CAAA;IACvC,IAAA,SAAS;IACT,IAAA,OAAO;IACP,IAAA,WAAW;IACX,IAAA,aAAa,GAAgB,IAAI,GAAG,EAAE;QACtC,UAAU,GAAkB,IAAI;QAChC,MAAM,GAAkB,IAAI;IAC5B,IAAA,KAAK;IAEb,IAAA,WAAA,CACE,SAAsB,EACtB,OAAe,EACf,WAAiC,EAAA;IAEjC,QAAA,KAAK,EAAE;IACP,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,EAAE;;IAG/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACzE;IAEA;;IAEG;QACK,MAAM,WAAW,CAAI,GAAW,EAAA;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC;IACrC,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;IACnB,YAAA,OAAO,MAAM;YACf;IAEA,QAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;IAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;IACX,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAC,UAAU,CAAA,CAAE,CAAC;YAC1D;YAEA,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;IACzB,QAAA,OAAO,IAAI;QACb;IAEA,IAAA,MAAM,IAAI,GAAA;IACR,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;;;;;;;;;;KAY1B;IAED,QAAA,IAAI;;IAEF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,8BAAA,CAAgC,CAChD;IACD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;IACvB,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE;YACzB;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBAC/D,IAAI,MAAM,EAAE;IACV,gBAAA,MAAM,CAAC,SAAS;IACd,oBAAA,iHAAiH;gBACrH;YACF;QACF;IAEQ,IAAA,MAAM,UAAU,GAAA;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC/D,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;IAE7B,QAAA,IAAI;IACF,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,YAAA,MAAM,CAAC,SAAS,GAAG,IAAI;gBACvB,IAAI,CAAC,oBAAoB,EAAE;YAC7B;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;IAC9C,YAAA,MAAM,CAAC,SAAS;IACd,gBAAA,qGAAqG;YACzG;QACF;IAEQ,IAAA,MAAM,UAAU,CAAC,EAAU,EAAE,KAAa,EAAA;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,EAAE;IACzC,QAAA,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE;;IAGzB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,CAAA,EAAG,IAAI,CAAC,OAAO,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CACtE;;YAGD,IAAI,WAAW,GAAG,EAAE;IACpB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;gBACX,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;YAC7D;IAAO,aAAA,IAAI,IAAI,CAAC,EAAE,EAAE;gBAClB,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;YAC7D;IAEA,QAAA,IAAI,IAAI,GAAG;8BACe,UAAU,GAAG,QAAQ,GAAG,EAAE,CAAA,uBAAA,EAA0B,MAAM,CAAA;iEACvB,EAAE,CAAA;AACvD,UAAA,EAAA,UAAU,GAAG,aAAa,GAAG,eAAe;;;AAGP,+CAAA,EAAA,EAAE,KAAK,WAAW,CAAA;;KAE9D;YAED,IAAI,UAAU,EAAE;IACd,YAAA,IAAI;;IAEF,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,CAAA,EAAG,IAAI,CAAC,OAAO,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,CAAA,SAAA,CAAW,CAC/E;oBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAW,KAAI;wBAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;8BACvC,CAAC,CAAC;8BACF,CAAC,CAAC;IACF,8BAAE,CAAC,CAAC,CAAC,WAAW;kCACd,EAAE;IACR,oBAAA,QACE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACtC,wBAAA,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAEpC,gBAAA,CAAC,CAAC;IAEF,gBAAA,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;IAC1B,oBAAA,IAAI,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;oBACtD;gBACF;gBAAE,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,EAAE,KAAK,CAAC;gBACzD;YACF;IAEA,QAAA,OAAO,IAAI;QACb;QAEQ,oBAAoB,GAAA;;IAE1B,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;gBAChE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAM,CAAC,KAAG;oBACrC,CAAC,CAAC,eAAe,EAAE;oBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;IACrC,gBAAA,IAAI,CAAC,EAAE;wBAAE;oBAET,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;IAC9B,oBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B;yBAAO;IACL,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B;IACA,gBAAA,MAAM,IAAI,CAAC,UAAU,EAAE;IACzB,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;;IAGF,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;IAC/D,YAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAG;oBAC/B,CAAC,CAAC,eAAe,EAAE;oBACnB,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;IACrC,gBAAA,IAAI,CAAC,EAAE;wBAAE;IAET,gBAAA,IAAI,CAAC,UAAU,GAAG,EAAE;oBACpB,IAAI,CAAC,UAAU,EAAE;IACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;IACtB,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;QACJ;IAEA,IAAA,MAAM,OAAO,GAAA;IACX,QAAA,MAAM,IAAI,CAAC,UAAU,EAAE;QACzB;QAES,OAAO,GAAA;IACd,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE;YAC7B,KAAK,CAAC,OAAO,EAAE;QACjB;IACD;;ICnMD;;IAEG;UAKU,YAAY,CAAA;IACf,IAAA,GAAG;IACH,IAAA,SAAS;IACT,IAAA,SAAS;IACT,IAAA,KAAK;IACL,IAAA,QAAQ;QACR,OAAO,GAAoB,EAAE;QAErC,WAAA,CACE,GAAkB,EAClB,SAAiB,EACjB,SAA0B,EAC1B,KAAwB,EACxB,QAA4C,EAAA;IAE5C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACd,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QAC1B;IAEA,IAAA,MAAM,IAAI,GAAA;IACR,QAAA,MAAM,IAAI,CAAC,WAAW,EAAE;QAC1B;IAEQ,IAAA,MAAM,WAAW,GAAA;IACvB,QAAA,IAAI;gBACF,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK;sBACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;sBAChC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEhC,IAAI,CAAC,MAAM,EAAE;IACX,gBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;oBACjB;gBACF;IAEA,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACzD;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;IACvD,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;YACnB;QACF;QAEA,MAAM,GAAA;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK;YAEnD,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACrC;IACA,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;QACtC;IAEQ,IAAA,YAAY,CAAC,QAAiB,EAAA;YACpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;kBACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;IACnB,cAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YAEpB,OAAO;;;AAGC,UAAA,EAAA,IAAI,CAAC,SAAS;AACd,UAAA,EAAA,QAAQ,GAAG,iCAAiC,GAAG,EAAE;;;;AAIrC,sBAAA,EAAA,IAAI,CAAC,SAAS,CAAA;AAC1B,UAAA,EAAA,QAAQ,GAAG,UAAU,GAAG,EAAE;;;AAG1B,UAAA,EAAA,IAAI,CAAC;AACJ,aAAA,GAAG,CACF,GAAG,IAAI;AACQ,2BAAA,EAAA,GAAG,CAAC,EAAE,CAAA,EAAA,EAAK,YAAY,KAAK,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,CAAA;AACjE,cAAA,EAAA,GAAG,CAAC,KAAK;;WAEd;aAEE,IAAI,CAAC,EAAE,CAAC;;;KAGhB;QACH;IAEQ,IAAA,WAAW,CAAC,QAAiB,EAAA;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;YAE1D,OAAO;;;AAGC,UAAA,EAAA,IAAI,CAAC,SAAS;AACd,UAAA,EAAA,QAAQ,GAAG,iCAAiC,GAAG,EAAE;;AAEd,6CAAA,EAAA,IAAI,CAAC,SAAS,CAAA;YACjD;AACC,aAAA,GAAG,CACF,CAAC,GAAG,EAAE,GAAG,KAAK;kDACsB,GAAG,CAAA;;;AAGnC,gBAAA,EAAA,IAAI,CAAC;AACJ,aAAA,GAAG,CACF,GAAG,IAAI;AACQ,iCAAA,EAAA,GAAG,CAAC,EAAE,CAAA,EAAA,EAAK,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,CAAA;AACxD,oBAAA,EAAA,GAAG,CAAC,KAAK;;iBAEd;aAEE,IAAI,CAAC,EAAE,CAAC;;;;;;WAMhB;aAEE,IAAI,CAAC,EAAE,CAAC;;;AAGH,gBAAA,EAAA,IAAI,CAAC,SAAS;;;;KAI3B;QACH;IAEA,IAAA,cAAc,CAAC,SAAsB,EAAA;YACnC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;IACnC,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;YACrC;iBAAO;IACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;YACtC;QACF;IAEQ,IAAA,oBAAoB,CAAC,SAAsB,EAAA;IACjD,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CACpC,CAAA,mBAAA,EAAsB,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI,CACpB;IAEtB,QAAA,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,MAAK;IACtC,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,QAAA,CAAC,CAAC;QACJ;IAEQ,IAAA,mBAAmB,CAAC,SAAsB,EAAA;IAChD,QAAA,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAC5C,CAAA,yBAAA,EAA4B,IAAI,CAAC,SAAS,CAAA,EAAA,CAAI,CAC/C;IACD,QAAA,IAAI,CAAC,cAAc;gBAAE;;YAGrB;iBACG,gBAAgB,CAAC,qBAAqB;IACtC,aAAA,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAI;IACvB,YAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;oBACrC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/D,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAI,MAA4B,CAAC,KAAK;IACjD,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;;YAGJ;iBACG,gBAAgB,CAAC,oBAAoB;IACrC,aAAA,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;IACpB,YAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;oBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/D,gBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACrB,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;;YAGJ,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAC9D,QAAA,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAK;gBACrC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/D,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACf,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACvB,QAAA,CAAC,CAAC;QACJ;IACD;;IC7LD;;;IAGG;UAIU,aAAa,CAAA;QAChB,KAAK,GAAuB,IAAI;IAChC,IAAA,GAAG;IACH,IAAA,YAAY;QACZ,aAAa,GAAkB,IAAI;IACnC,IAAA,MAAM;IACN,IAAA,aAAa,GAAgB,IAAI,GAAG,EAAE;QACtC,MAAM,GAAkB,IAAI;IAEpC,IAAA,WAAA,CACE,GAAkB,EAClB,YAAoB,EACpB,MAAqC,EAAA;IAErC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACd,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACtB;IAEA;;IAEG;QACK,OAAO,UAAU,CAAC,IAAa,EAAA;YACrC,IAAI,IAAI,IAAI,IAAI;IAAE,YAAA,OAAO,EAAE;IAC3B,QAAA,MAAM,GAAG,GAA2B;IAClC,YAAA,GAAG,EAAE,OAAO;IACZ,YAAA,GAAG,EAAE,MAAM;IACX,YAAA,GAAG,EAAE,MAAM;IACX,YAAA,GAAG,EAAE,QAAQ;IACb,YAAA,GAAG,EAAE,QAAQ;IACb,YAAA,GAAG,EAAE,QAAQ;aACd;IACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD;IAEA,IAAA,MAAM,IAAI,GAAA;;YAER,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB;IAC7C,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCtB;YAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,cAAc,EAAE;IACrB,QAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE;QACnC;QAEQ,cAAc,GAAA;YACpB,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE;;YAGjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC7D,QAAA,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;;YAGvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAC/D,QAAA,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;;YAGxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAC3D,QAAA,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;;YAG3D,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAG;gBACvC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;oBAC3B,IAAI,CAAC,KAAK,EAAE;gBACd;IACF,QAAA,CAAC,CAAC;;IAGF,QAAA,MAAM,YAAY,GAAG,CAAC,CAAgB,KAAU;IAC9C,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;oBACtB,IAAI,CAAC,KAAK,EAAE;IACZ,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;gBACvD;IACF,QAAA,CAAC;IACD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;QACpD;IAEQ,IAAA,MAAM,oBAAoB,GAAA;IAChC,QAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,8BAA8B,CAAC;YAC3E,IAAI,CAAC,SAAS,EAAE;IACd,YAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAClC;YACF;IAEA,QAAA,IAAI;IACF,YAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;;gBAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAC1C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA,8BAAA,CAAgC,CACjF;IACD,YAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;IAC/B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;;gBAGvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAEnC,YAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACpC,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE;IACvB,YAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACrC;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC;gBACtD,SAAS,CAAC,SAAS,GAAG;;;AAGmB,6CAAA,EAAA,aAAa,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;OAE1F;YACH;QACF;IAEQ,IAAA,MAAM,UAAU,GAAA;IACtB,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,8BAA8B,CAAC;YAC3E,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAC9B,YAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE;oBAChD,SAAS;oBACT,MAAM,EAAE,IAAI,CAAC,MAAM;IACpB,aAAA,CAAC;gBACF;YACF;IAEA,QAAA,IAAI;gBACF,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,MAAM,CAAC;IAC9D,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,MAAM,CAAC;IACzD,YAAA,SAAS,CAAC,SAAS,GAAG,IAAI;IAC1B,YAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC;gBACvD,IAAI,CAAC,kBAAkB,EAAE;IACzB,YAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;YAC9C;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC;gBAC5C,SAAS,CAAC,SAAS,GAAG;;;AAGW,qCAAA,EAAA,aAAa,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;OAElF;YACH;QACF;IAEQ,IAAA,MAAM,UAAU,CAAC,EAAU,EAAE,KAAa,EAAA;YAChD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7C,QAAA,MAAM,YAAY,GAAG,EAAE,KAAK,IAAI,CAAC,YAAY;IAC7C,QAAA,MAAM,UAAU,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa;IAC5C,QAAA,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE;;IAGzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;IAC7D,QAAA,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B,CAAA,EAAG,OAAO,CAAA,2BAAA,EAA8B,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CACjE;IACD,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAIvC,CAAA,EAAG,OAAO,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,CAAA,CAAE,CAAC;IACpE,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;;YAG9B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE;IACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC;kBACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB;IACtC,kBAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;sBAC1B,IAAI,CAAC;kBACP,SAAS;IACb,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE;IAEpC,QAAA,IAAI,IAAI,GAAG;;AAEW,wBAAA,EAAA,YAAY,GAAG,aAAa,GAAG,EAAE,CAAA,CAAA,EAAI,UAAU,GAAG,cAAc,GAAG,EAAE,CAAA;AACxE,qBAAA,EAAA,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;;;AAGzB,wBAAA,EAAA,MAAM,GAAG,CAAC,CAAA;AAChB,kBAAA,EAAA,YAAY,GAAG,aAAa,GAAG,SAAS,CAAA;AACpC,sBAAA,EAAA,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAA;AAC9D,mBAAA,EAAA,YAAY,GAAG,KAAK,GAAG,GAAG,CAAA;;;;AAIZ,iCAAA,EAAA,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;;;AAGb,0DAAA,EAAA,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;AAC5E,UAAA,EAAA,UAAU,GAAG,aAAa,GAAG,eAAe;;AAEgB,sEAAA,EAAA,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAC7F,UAAA,EAAA,YAAY,GAAG,UAAU,GAAG,QAAQ;;AAEH,2CAAA,EAAA,UAAU,GAAG,KAAK,GAAG,KAAK,CAAA;AAC3D,UAAA,EAAA,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;AACrC,UAAA,EAAA,YAAY,GAAG,sFAAsF,GAAG,EAAE;;AAE5G,QAAA,EAAA,UAAU,GAAG,0EAA0E,GAAG,EAAE;;KAEjG;;YAGD,IAAI,UAAU,EAAE;IACd,YAAA,IAAI;IACF,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAG5C,CAAA,EAAG,OAAO,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,CAAA,wCAAA,CAA0C,CACzG;IAED,gBAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;IAC9B,oBAAA,IAAI,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC;oBACtD;gBACF;IAAE,YAAA,MAAM;;gBAER;YACF;IAEA,QAAA,OAAO,IAAI;QACb;QAEQ,kBAAkB,GAAA;;YAExB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC;IAC5D,QAAA,OAAO,EAAE,OAAO,CAAC,MAAM,IAAG;gBACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAM,CAAC,KAAG;oBACzC,CAAC,CAAC,eAAe,EAAE;oBACnB,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;IACzC,gBAAA,IAAI,CAAC,EAAE;wBAAE;oBAET,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;IAC9B,oBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B;yBAAO;IACL,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B;IAEA,gBAAA,MAAM,IAAI,CAAC,UAAU,EAAE;IACzB,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;;YAGF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACvD,QAAA,KAAK,EAAE,OAAO,CAAC,IAAI,IAAG;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC9C,YAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY;oBAAE;IAE3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IAClC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAChC,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;QACJ;QAEQ,MAAM,kBAAkB,CAAC,KAAa,EAAA;IAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;IAG1B,QAAA,MAAM,IAAI,CAAC,UAAU,EAAE;;YAGvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CACvC,iBAAiB,CACG;YACtB,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;YAC1B;QACF;IAEQ,IAAA,MAAM,UAAU,GAAA;YACtB,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE;YAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CACvC,iBAAiB,CACG;YACtB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC;YAErE,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,CAAC,QAAQ,GAAG,IAAI;gBACvB,OAAO,CAAC,SAAS,GAAG;;;OAGnB;YACH;IAEA,QAAA,IAAI;IACF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE;YACd;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;AAGH,8BAAA,EAAA,aAAa,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;SAEzE;gBACH;gBAEA,IAAI,OAAO,EAAE;IACX,gBAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;oBACxB,OAAO,CAAC,SAAS,GAAG;;;SAGnB;gBACH;YACF;QACF;QAEA,KAAK,GAAA;IACH,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;IACnB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACnB;QACF;IACD;;IChWD;;;IAGG;IA+QH,MAAM,OAAO,GAAG,CAAC,KAAc,KAC7B,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;IAEvD;IACA,MAAM,SAAS,GAAG,CAAC,KAAc,KAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnE;;;;;;IAMG;IACI,MAAM,UAAU,GAAG,CAAC,KAAc,KACvC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IAqB9B;;;;;;;;;IASG;IACG,SAAU,iBAAiB,CAC/B,QAAoD,EACpD,MAA+B,EAAA;QAE/B,MAAM,OAAO,GAA4B,EAAE;IAC3C,IAAA,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,IAAI,IAAI,KAAK,IAAI;gBAAE;IACnB,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;IAClC,QAAA,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;YACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE;IAC5D,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,EAAE;QAC1E;IACA,IAAA,OAAO,OAAO;IAChB;;IC9UA;;IAEG;UASU,UAAU,CAAA;IACb,IAAA,SAAS;IACT,IAAA,GAAG;IACH,IAAA,MAAM;QACN,IAAI,GAAoB,IAAI;QAC5B,MAAM,GAAkB,IAAI;QAC5B,QAAQ,GAAsB,EAAE;IAChC,IAAA,aAAa,GAA8B,IAAI,GAAG,EAAE;IACpD,IAAA,OAAO;IACP,IAAA,SAAS;QACT,QAAQ,GAAW,EAAE;IAE7B;;;IAGG;QACK,OAAO,UAAU,CAAC,IAAa,EAAA;YACrC,IAAI,IAAI,IAAI,IAAI;IAAE,YAAA,OAAO,EAAE;IAC3B,QAAA,MAAM,GAAG,GAA2B;IAClC,YAAA,GAAG,EAAE,OAAO;IACZ,YAAA,GAAG,EAAE,MAAM;IACX,YAAA,GAAG,EAAE,MAAM;IACX,YAAA,GAAG,EAAE,QAAQ;IACb,YAAA,GAAG,EAAE,QAAQ;IACb,YAAA,GAAG,EAAE,QAAQ;aACd;IACD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD;QAEA,WAAA,CACE,SAAsB,EACtB,GAAkB,EAClB,MAAc,EACd,OAAoB,EACpB,SAAsB,EAAA;IAEtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACd,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACpB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;IAEA,IAAA,MAAM,IAAI,GAAA;IACR,QAAA,IAAI;gBACF,IAAI,CAAC,WAAW,EAAE;IAClB,YAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,IAAI,CAAC,MAAM,EAAE;IACb,YAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,IAAI,CAAC,cAAc,EAAE;YACvB;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,SAAS,CAAE,KAAe,CAAC,OAAO,CAAC;YAC1C;QACF;QAEQ,WAAW,GAAA;IACjB,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;;;KAK1B;QACH;IAEQ,IAAA,SAAS,CAAC,OAAe,EAAA;IAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;AAGhB,aAAA,EAAA,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;;KAExC;QACH;IAEQ,IAAA,MAAM,iBAAiB,GAAA;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;IACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;;IAG/B,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,CACzE,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CACpD;IAED,QAAA,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS;YAE1C,IAAI,CAAC,SAAS,EAAE;IACd,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;YAChD;IAEA,QAAA,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;IAC3C,YAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9B,SAAA,CAAC;;IAGF,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;IACf,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YACvC;YAEA,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;;;IAGhC,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;IACtE,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS;IAC5D,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3D;IAEQ,IAAA,mBAAmB,CAAC,MAAc,EAAA;IACxC,QAAA,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;IACnD,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAC7B,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC3C;gBACH;IACA,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;IACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IACzC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC3C;gBACH;YACF;QACF;IAEQ,IAAA,aAAa,CAAC,KAAc,EAAA;IAClC,QAAA,IAAI,CAAC,KAAK;IAAE,YAAA,OAAO,EAAE;IACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;IAC/C,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;IAEQ,IAAA,cAAc,CAAC,IAAY,EAAA;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI;IAAE,YAAA,OAAO,EAAE;IAEzC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KACjE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CACpB;IAED,QAAA,IAAI,CAAC,KAAK;IAAE,YAAA,OAAO,EAAE;IACrB,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD;QAEQ,MAAM,GAAA;YACZ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;YAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IACtD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAC5C;IACD,QAAA,MAAM,QAAQ,GAAG,WAAW,IAAI,UAAU,IAAI,MAAM;IAEpD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;;;AAKb,gBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACnB,4BAAA,EAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;;;;;;;YAOpD,IAAI,CAAC,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;KAoBhC;QACH;QAEQ,kBAAkB,GAAA;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM;IAAE,YAAA,OAAO,EAAE;;YAG3B,MAAM,aAAa,GAA6B,EAAE;YAClD,MAAM,eAAe,GAAa,EAAE;IAEpC,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;;gBAEtE,IAAI,SAAS,KAAK,aAAa;oBAAE;gBAEjC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,IAAI,KAAK,EAAE;IACT,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;IACzB,oBAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE;oBAC3B;oBACA,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtC;qBAAO;IACL,gBAAA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC;YACF;;IAGA,QAAA,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa;iBACpC,GAAG,CACF,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK;;AAEa,wCAAA,EAAA,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;;YAE1D;aACC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACpC,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC;aACb,IAAI,CAAC,EAAE,CAAC;;;KAGhB;iBAEE,IAAI,CAAC,EAAE,CAAC;;IAGX,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9B,YAAA,IAAI,IAAI;;;;YAIF;iBACC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACpC,iBAAA,MAAM,CAAC,CAAC,IAAI,CAAC;iBACb,IAAI,CAAC,EAAE,CAAC;;;KAGhB;YACD;IAEA,QAAA,OAAO,IAAI;QACb;IAEQ,IAAA,WAAW,CAAC,SAAiB,EAAA;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;IAC/C,QAAA,IAAI,CAAC,IAAI;IAAE,YAAA,OAAO,EAAE;;IAGpB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;IACd,YAAA,OAAO,EAAE;YACX;;IAGA,QAAA,IACE,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC;IACjC,YAAA,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,EACjC;IACA,YAAA,OAAO,EAAE;YACX;;IAGA,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;IAC/B,YAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAC9C;;IAGA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE;gBAC7D,OAAO,CAAA,iBAAA,EAAoB,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU;YACvE;;IAGA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC;YAC/C;;IAGA,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;YAChD;;YAGA,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC;QAChD;IAEQ,IAAA,qBAAqB,CAAC,SAAiB,EAAA;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACtC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,EAAE;YAElE,OAAO;;AAEyB,kCAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;;;AAIjD,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;;;;KAIjD;QACH;QAEQ,iBAAiB,CAAC,SAAiB,EAAE,IAAqB,EAAA;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IACvC,cAAE;kBACA,SAAS,KAAK;IACd,kBAAE;sBACA,MAAM;YAEZ,OAAO;;;AAGC,UAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,iCAAiC,GAAG,EAAE;;;AAGhD,gBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;AAEhC,gBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAC/B,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;;;KAGtC;QACH;QAEQ,iBAAiB,CAAC,SAAiB,EAAE,IAAqB,EAAA;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;YAE5C,OAAO;;;AAGC,UAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,iCAAiC,GAAG,EAAE;;;;;AAKhD,gBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AAC/B,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;;;KAGtC;QACH;QAEQ,gBAAgB,CAAC,SAAiB,EAAE,IAAqB,EAAA;IAC/D,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACnD,cAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;kBACxB,EAAE;IAEN,QAAA,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG;IAC7D,cAAE;kBACA,MAAM;YAEZ,OAAO;;;AAGC,UAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,iCAAiC,GAAG,EAAE;;AAEnB,6CAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YACnE;AACC,aAAA,GAAG,CACF,CAAC,GAAG,EAAE,GAAG,KAAK;kDACsB,GAAG,CAAA;;AAE7B,sBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;AAE/B,uBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;;;;;;WAMxC;aAEE,IAAI,CAAC,EAAE,CAAC;AACkE,qFAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;AAErG,gBAAA,EAAA,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;;;;KAI7C;QACH;IAEQ,IAAA,MAAM,iBAAiB,GAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;YAElB,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;iBAC5D,MAAM,CACL,CAAC,GAAG,IAAI,CAAC,KACP,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS;gBAC1D,CAAC,IAAI,CAAC,KAAK;iBAEd,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAExB,QAAA,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAE3D,YAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,IAAI,CAAC,GAAG,EACR,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,IAAG;IACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ;IACnC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;IACtC,YAAA,CAAC,CACF;IAED,YAAA,MAAM,YAAY,CAAC,IAAI,EAAE;gBACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC;;IAG/C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA,SAAA,EAAY,SAAS,CAAA,CAAE,CAAC;gBACzE,IAAI,WAAW,EAAE;IACf,gBAAA,WAAW,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE;IAC7C,gBAAA,YAAY,CAAC,cAAc,CAAC,WAA0B,CAAC;gBACzD;YACF;QACF;IAEQ,IAAA,oBAAoB,CAAC,SAAiB,EAAA;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;IACtD,QAAA,IAAI,CAAC,YAAY;gBAAE;IAEnB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA,SAAA,EAAY,SAAS,CAAA,CAAE,CAAC;YACzE,IAAI,WAAW,EAAE;IACf,YAAA,WAAW,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE;IAC7C,YAAA,YAAY,CAAC,cAAc,CAAC,WAA0B,CAAC;YACzD;QACF;QAEQ,cAAc,GAAA;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAC5D,QAAA,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;;YAG3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC9D,QAAA,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;;YAG3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAClE,QAAA,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;;IAG/D,QAAA,IAAI,CAAC;iBACF,gBAAgB,CAAmB,aAAa;iBAChD,OAAO,CAAC,KAAK,IAAG;IACf,YAAA,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACnC,gBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI;oBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;IAE/C,gBAAA,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE;wBACvD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;8BAC7B,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;8BACxB,EAAE;oBACR;yBAAO;wBACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK;oBACxC;IACF,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;;YAGJ,IAAI,CAAC,wBAAwB,EAAE;QACjC;QAEQ,wBAAwB,GAAA;;IAE9B,QAAA,IAAI,CAAC;iBACF,gBAAgB,CAAC,cAAc;IAC/B,aAAA,OAAO,CAAC,CAAC,cAAuB,KAAI;gBACnC,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC;IAC3D,YAAA,IAAI,CAAC,SAAS;oBAAE;gBAEhB;qBACG,gBAAgB,CAAC,oBAAoB;IACrC,iBAAA,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;IACtB,gBAAA,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACnC,oBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;8BACjD,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAc;8BAC1C,EAAE;IACN,oBAAA,MAAM,CAAC,GAAG,CAAC,GAAI,KAA0B,CAAC,KAAK;IAC/C,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM;IACnC,gBAAA,CAAC,CAAC;IACJ,YAAA,CAAC,CAAC;gBAEJ;qBACG,gBAAgB,CAAC,oBAAoB;IACrC,iBAAA,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;IACpB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACjC,oBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;8BACjD,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAc;8BAC1C,EAAE;IACN,oBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACrB,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM;IACjC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;IACpC,gBAAA,CAAC,CAAC;IACJ,YAAA,CAAC,CAAC;IACN,QAAA,CAAC,CAAC;;IAGJ,QAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;IAC/D,YAAA,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;oBACjC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;IAChD,gBAAA,IAAI,CAAC,SAAS;wBAAE;IAEhB,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;0BACjD,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAc;0BAC1C,EAAE;IACN,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM;IACjC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;IACpC,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;QACJ;IAEQ,IAAA,kBAAkB,CAAC,SAAiB,EAAA;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC;IAC/C,QAAA,IAAI,CAAC,IAAI;gBAAE;IAEX,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CACjD,CAAA,yBAAA,EAA4B,SAAS,CAAA,EAAA,CAAI,CAC1C,EAAE,aAAa;YAEhB,IAAI,cAAc,EAAE;IAClB,YAAA,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK;IAC9C,kBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI;sBAC/C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC;IAE5C,YAAA,cAAc,CAAC,SAAS,GAAG,OAAO;;IAGlC,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE;IAC7D,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAC9C,CAAA,SAAA,EAAY,SAAS,CAAA,CAAE,CACxB;oBACD,IAAI,WAAW,EAAE;wBACf,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;IACtD,oBAAA,YAAY,EAAE,cAAc,CAAC,WAA0B,CAAC;oBAC1D;gBACF;qBAAO;oBACL,IAAI,CAAC,wBAAwB,EAAE;gBACjC;YACF;QACF;QAEQ,MAAM,YAAY,CAAC,CAAQ,EAAA;YACjC,CAAC,CAAC,cAAc,EAAE;YAElB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAC5C,uBAAuB,CACH;IAEtB,QAAA,IAAI,cAAc;IAAE,YAAA,cAAc,CAAC,SAAS,GAAG,EAAE;IACjD,QAAA,IAAI,SAAS;IAAE,YAAA,SAAS,CAAC,QAAQ,GAAG,IAAI;IAExC,QAAA,IAAI;IACF,YAAA,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC3D,YAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;IAC7B,gBAAA,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEjD,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;;;SAK1B;gBACH;gBAEA,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,EAAE;YAClC;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;AAGhB,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;SAEzD;gBACH;YACF;oBAAU;IACR,YAAA,IAAI,SAAS;IAAE,gBAAA,SAAS,CAAC,QAAQ,GAAG,KAAK;YAC3C;QACF;IAEQ,IAAA,MAAM,UAAU,GAAA;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE;;IAGhC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9D,CAAC,GAAG,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAChD;YAED,IAAI,CAAC,YAAY,EAAE;gBACjB,KAAK,CAAC,8DAA8D,CAAC;gBACrE;YACF;IAEA,QAAA,MAAM,CAAC,gBAAgB,CAAC,GAAG,YAAY;IACvC,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC5D,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvC,cAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAE7C,IAAI,CAAC,YAAY,EAAE;gBACjB,KAAK,CAAC,yCAAyC,CAAC;gBAChD;YACF;IAEA,QAAA,MAAM,KAAK,GAAG,IAAI,aAAa,CAC7B,IAAI,CAAC,GAAG,EACR,YAAY,EACZ,OAAO,WAAmB,KAAI;IAC5B,YAAA,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;IACrC,QAAA,CAAC,CACF;IAED,QAAA,MAAM,KAAK,CAAC,IAAI,EAAE;QACpB;QAEQ,MAAM,WAAW,CAAC,WAAmB,EAAA;YAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAC1C,gBAAgB,CACI;IAEtB,QAAA,IAAI,cAAc;IAAE,YAAA,cAAc,CAAC,SAAS,GAAG,EAAE;YACjD,IAAI,OAAO,EAAE;IACX,YAAA,OAAO,CAAC,QAAQ,GAAG,IAAI;gBACvB,OAAO,CAAC,SAAS,GAAG;;;OAGnB;YACH;IAEA,QAAA,IAAI;IACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;;IAGhE,YAAA,IAAI,MAAM,CAAC,KAAK,EAAE;IAChB,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;gBAC5B;;;IAIA,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE;gBAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBAC9D,IAAI,KAAK,EAAE;oBACT,KAAK,CAAC,SAAS,GAAG;;;;;SAKjB;gBACH;gBAEA,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,EAAE;YAClC;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;AAGhB,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;SAEzD;gBACH;;gBAGA,IAAI,OAAO,EAAE;IACX,gBAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;oBACxB,OAAO,CAAC,SAAS,GAAG;;;SAGnB;gBACH;IAEA,YAAA,MAAM,KAAK;YACb;QACF;IAEQ,IAAA,MAAM,YAAY,GAAA;YACxB,IACE,CAAC,OAAO,CAAC,CAAA,8CAAA,EAAiD,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC,EACxE;gBACA;YACF;YAEA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAC5C,kBAAkB,CACE;IAEtB,QAAA,IAAI,cAAc;IAAE,YAAA,cAAc,CAAC,SAAS,GAAG,EAAE;IACjD,QAAA,IAAI,SAAS;IAAE,YAAA,SAAS,CAAC,QAAQ,GAAG,IAAI;IAExC,QAAA,IAAI;gBACF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBAEtC,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;;;SAK1B;gBACH;gBAEA,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,EAAE;YACtC;YAAE,OAAO,KAAK,EAAE;gBACd,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,SAAS,GAAG;;;AAGhB,iBAAA,EAAA,UAAU,CAAC,UAAU,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;;SAEzD;gBACH;IACA,YAAA,IAAI,SAAS;IAAE,gBAAA,SAAS,CAAC,QAAQ,GAAG,KAAK;YAC3C;QACF;IAEA,IAAA,MAAM,OAAO,GAAA;IACX,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;QACnB;IACD;;ICpuBD;;;IAGG;UAMU,QAAQ,CAAA;IACX,IAAA,SAAS;IACT,IAAA,GAAG;QACH,KAAK,GAAe,EAAE;IACtB,IAAA,KAAK;QACL,WAAW,GAAG,EAAE;IAChB,IAAA,YAAY;QACZ,MAAM,GAAkB,IAAI;QAC5B,MAAM,GAAkB,IAAI;IAEpC,IAAA,WAAA,CACE,SAAsB,EACtB,GAAkB,EAClB,KAAa,EACb,YAAkC,EAAA;IAElC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IAClB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAClC;IAEA,IAAA,MAAM,IAAI,GAAA;;YAER,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;IACxC,QAAA,MAAM,aAAa,GACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,CACxD,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CACpD;IACH,QAAA,IAAI,aAAa,EAAE,SAAS,EAAE;IAC5B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;YACjE;YAEA,IAAI,CAAC,MAAM,EAAE;IACb,QAAA,MAAM,IAAI,CAAC,SAAS,EAAE;QACxB;QAEQ,MAAM,GAAA;IACZ,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;KAsB1B;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAC9C,yBAAyB,CACN;IACrB,QAAA,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAG;gBACzC,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK;gBACvD,IAAI,CAAC,cAAc,EAAE;IACvB,QAAA,CAAC,CAAC;QACJ;IAEQ,IAAA,MAAM,SAAS,GAAA;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC/D,QAAA,IAAI,CAAC,MAAM;gBAAE;IAEb,QAAA,IAAI;IACF,YAAA,MAAM,CAAC,SAAS;IACd,gBAAA,wDAAwD;;;IAI1D,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;IAC7D,YAAA,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC;gBAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,CAAA,EAAG,OAAO,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,kBAAkB,CAAC,WAAW,CAAC,CAAA,CAAE,CACjI;gBACD,IAAI,CAAC,GAAG,CAAC,EAAE;IAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;gBAElE,MAAM,KAAK,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,CAAe;;;gBAI9C,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE;gBACpE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,IAAI,EAAE;gBAE9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;oBAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;0BAC9C,IAAI,CAAC;IACP,sBAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;IAGtB,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IAAE,oBAAA,OAAO,KAAK;;IAGtC,gBAAA,OAAO,qBAAqB,CAAC,KAAK,CAAC,QAAQ,IACzC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC/B;IACH,YAAA,CAAC,CAAC;gBAEF,IAAI,CAAC,cAAc,EAAE;YACvB;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;IAC7C,YAAA,MAAM,CAAC,SAAS;IACd,gBAAA,qGAAqG;YACzG;QACF;IAEQ,IAAA,aAAa,CAAC,KAAc,EAAA;IAClC,QAAA,IAAI,CAAC,KAAK;IAAE,YAAA,OAAO,EAAE;IACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAAE,YAAA,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;IAC/C,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB;IAEQ,IAAA,kBAAkB,CAAC,IAAY,EAAA;YACrC,IAAI,CAAC,IAAI,CAAC,MAAM;IAAE,YAAA,OAAO,IAAI;IAE7B,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KACjE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CACpB;IAED,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;QAChC;QAEQ,mBAAmB,CAAC,IAAc,EAAE,IAAY,EAAA;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;IAC/C,QAAA,IAAI,CAAC,SAAS;IAAE,YAAA,OAAO,EAAE;YACzB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C;QAEQ,cAAc,GAAA;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC/D,QAAA,IAAI,CAAC,MAAM;gBAAE;;YAGb,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC;YAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,IAAI,EAAE;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;;IAG1D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC;kBACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;oBACvB,MAAM,WAAW,GAAG;IAClB,sBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW;0BACtD,EAAE;IACN,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACnC,IAAI,CAAC,eAAe,CAAC,CACtB,CAAC,WAAW,EAAE;oBACf,MAAM,KAAK,GAAG;IACZ,sBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;0BAChD,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAC5C,gBAAA,QACE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC3B,oBAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC1B,oBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEzB,YAAA,CAAC;IACH,cAAE,IAAI,CAAC,KAAK;IAEd,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,YAAA,MAAM,CAAC,SAAS;IACd,gBAAA,uGAAuG;gBACzG;YACF;YAEA,MAAM,CAAC,SAAS,GAAG;iBAChB,GAAG,CAAC,IAAI,IAAG;gBACV,MAAM,WAAW,GAAG;sBAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC;sBACzC,EAAE;gBACN,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5D,YAAA,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;IACpE,YAAA,MAAM,IAAI,GAAG,WAAW,IAAI,UAAU,IAAI,SAAS;gBAEnD,OAAO;;;AAGI,iBAAA,EAAA,IAAI,CAAC,EAAE,CAAA;;;;;cAKZ,IAAI;;YAEN,KAAK,GAAG,CAAA,6BAAA,EAAgC,KAAK,CAAA,MAAA,CAAQ,GAAG,EAAE;;;KAGjE;IACC,QAAA,CAAC;iBACA,IAAI,CAAC,EAAE,CAAC;;YAGX,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;IACnD,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;oBAClC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;oBACvC,IAAI,EAAE,EAAE;IACN,oBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;oBACvB;IACF,YAAA,CAAC,CAAC;IACJ,QAAA,CAAC,CAAC;QACJ;IAEA,IAAA,MAAM,OAAO,GAAA;IACX,QAAA,MAAM,IAAI,CAAC,SAAS,EAAE;QACxB;IACD;;ICjOD;;;IAGG;UAQU,cAAc,CAAA;IACjB,IAAA,OAAO;IACP,IAAA,GAAG;QACH,SAAS,GAAuB,IAAI;QACpC,QAAQ,GAAoB,IAAI;QAChC,UAAU,GAAsB,IAAI;QACpC,QAAQ,GAAoB,IAAI;QAChC,aAAa,GAAkB,IAAI;QACnC,YAAY,GAAkB,IAAI;QAClC,MAAM,GAAkB,IAAI;IAEpC,IAAA,WAAA,CAAY,OAAsB,EAAA;YAChC,IAAI,CAAC,OAAO,GAAG;IACb,YAAA,UAAU,EAAE,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;IACvE,YAAA,GAAG,OAAO;aACX;IAED,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACvD;IAEA,IAAA,MAAM,IAAI,GAAA;IACR,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClE,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA,UAAA,CAAY,CAAC;YACrE;;YAGA,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAExC,IAAI,CAAC,MAAM,EAAE;IACb,QAAA,MAAM,IAAI,CAAC,cAAc,EAAE;QAC7B;QAEQ,MAAM,GAAA;YACZ,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE;IAErB,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG;;;;;;;;;;;;KAY1B;QACH;IAEQ,IAAA,MAAM,cAAc,GAAA;YAC1B,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC;IACpE,QAAA,IAAI,CAAC,aAAa;gBAAE;IAEpB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAC1B,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EACjD,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAC5C;IAED,QAAA,IAAI;IACF,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC5B;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC;YAClC;QACF;QAEQ,MAAM,sBAAsB,CAAC,EAAU,EAAA;YAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;IACxE,QAAA,IAAI,CAAC,eAAe;gBAAE;IAEtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;IACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAEzB,QAAA,IAAI;;gBAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,IAChE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAC5B;IACD,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC5B;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC;gBAChC,eAAe,CAAC,SAAS,GAAG;;;;;OAK3B;YACH;QACF;QAEQ,MAAM,cAAc,CAAC,EAAU,EAAA;IACrC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;YAEvB,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;IACxE,QAAA,IAAI,CAAC,eAAe;gBAAE;IAEtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC9B,eAAe,EACf,IAAI,CAAC,GAAG,EACR,EAAE,EACF,MAAK;IACH,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B;;gBAEA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;IACtC,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACzB;YACF,CAAC;;YAED,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAChC;IAED,QAAA,IAAI;IACF,YAAA,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAC9B;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC;YAClC;QACF;IAEQ,IAAA,WAAW,CAAC,KAAY,EAAA;IAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;IAC/C,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B;QACF;IAEA,IAAA,MAAM,OAAO,GAAA;IACX,QAAA,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;IAC9B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;IACtB,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;YAClC;QACF;QAEA,OAAO,GAAA;IACL,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;IAClB,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE;YAC/B;IACA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;QAEA,MAAM,UAAU,CAAC,QAA2B,EAAA;IAC1C,QAAA,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;;IAElD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjB,gBAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC/B;IACA,YAAA,OAAO,MAAM;YACf;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC;IAChC,YAAA,MAAM,KAAK;YACb;QACF;QAEA,MAAM,UAAU,CAAC,EAAU,EAAA;IACzB,QAAA,IAAI;gBACF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IAC7B,YAAA,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B;YAAE,OAAO,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC;IAChC,YAAA,MAAM,KAAK;YACb;QACF;;QAGQ,MAAM,WAAW,CAAC,EAAU,EAAA;IAClC,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;gBACzB,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC;gBACxE,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,SAAS,GAAG;;;;;SAK3B;gBACH;YACF;IACA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjB,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC/B;QACF;QAEA,SAAS,GAAA;YACP,OAAO,IAAI,CAAC,MAAM;QACpB;QAEA,MAAM,GAAA;YACJ,OAAO,IAAI,CAAC,GAAG;QACjB;QAEA,eAAe,GAAA;YACb,OAAO,IAAI,CAAC,YAAY;QAC1B;QAEA,gBAAgB,GAAA;YACd,OAAO,IAAI,CAAC,aAAa;QAC3B;IACD;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).LdapUserEditor={})}(this,function(e){"use strict";class t{constructor(e={}){this.cache=new Map,this.ttl=e.ttl??3e5,this.maxEntries=e.maxEntries??200}get(e){const t=this.cache.get(e);return t?Date.now()-t.timestamp>=this.ttl?(this.cache.delete(e),null):(t.accessCount++,t.timestamp=Date.now(),t.data):null}set(e,t){this.cache.size>=this.maxEntries&&!this.cache.has(e)&&this.evictLRU(),this.cache.set(e,{data:t,timestamp:Date.now(),accessCount:0})}has(e){return null!==this.get(e)}invalidate(e){this.cache.delete(e)}invalidatePattern(e){const t=new RegExp("^"+e.replace(/\*/g,".*").replace(/\?/g,".")+"$");for(const e of this.cache.keys())t.test(e)&&this.cache.delete(e)}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxEntries,ttl:this.ttl,keys:Array.from(this.cache.keys())}}evictLRU(){let e=null,t=1/0,n=1/0;for(const[s,r]of this.cache.entries())(r.accessCount<n||r.accessCount===n&&r.timestamp<t)&&(e=s,t=r.timestamp,n=r.accessCount);e&&this.cache.delete(e)}cleanExpired(){const e=Date.now();let t=0;for(const[n,s]of this.cache.entries())e-s.timestamp>=this.ttl&&(this.cache.delete(n),t++);return t}}function n(e,t){const n=e?.role;return Array.isArray(n)?n.includes(t):n===t}function s(e,t="en"){if(null==e)return;if("string"==typeof e)return e||void 0;const n=t.split("-")[0].toLowerCase();for(const s of[t,n,"en"])if(e[s])return e[s];return Object.values(e).find(Boolean)}class r{constructor(e="",n){this.baseUrl=e||("undefined"!=typeof window?window.location.origin:""),this.cache=new t(n),"undefined"!=typeof window&&window.setInterval(()=>this.cache.cleanExpired(),3e5)}getApiBase(){return`${this.baseUrl}/api/v1`}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}async cachedFetch(e,t){const n=t?.method||"GET";if("GET"===n){const t=this.cache.get(e);if(null!==t)return t}const s=await fetch(e,t);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);const r=await s.json();return"GET"===n&&this.cache.set(e,r),r}async getConfig(){return this.cachedFetch(`${this.getApiBase()}/config`)}async getSchema(e){const t=e.startsWith("http")?e:`${this.baseUrl}${e}`;return this.cachedFetch(t)}async getUsers(e=""){const t=e?`${this.getApiBase()}/ldap/users?match=${encodeURIComponent(e)}&attribute=uid`:`${this.getApiBase()}/ldap/users`,n=await this.cachedFetch(t);return Array.isArray(n)?n:Object.values(n)}async getUser(e){const t=`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`;return this.cachedFetch(t)}async updateUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({replace:t})});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to update user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async createUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to create user")}const n=await t.json();return this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),n}async deleteUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to delete user")}this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`)}async moveUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetOrgDn:t})});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to move user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async getPointerOptions(e){try{const t=await this.getConfig(),s=t.features?.ldapFlatGeneric?.flatResources?.find(t=>e===t.base||e.startsWith(t.base));if(s&&s.endpoints?.list){const e=`${this.baseUrl}${s.endpoints.list}`,t=await this.cachedFetch(e),r=Array.isArray(t)?t:Object.values(t);let i="cn";const a=s.mainAttribute;if(s.schemaUrl)try{const e=await this.getSchema(s.schemaUrl),t=Object.entries(e.attributes).find(([,e])=>n(e,"displayName"));t&&(i=t[0])}catch(e){}return r.map(e=>{const t=this.getFirstValue(e[i]),n=this.getFirstValue(e[a]);return{dn:e.dn,label:t||n||e.dn}})}throw new Error(`No flatResource found in config for branch: ${e}`)}catch(t){return console.error("Failed to load pointer options for branch:",e,t),[]}}clearCache(){this.cache.clear()}invalidateCache(e){this.cache.invalidatePattern(e)}getCacheStats(){return this.cache.getStats()}getCache(){return this.cache}}class i{constructor(){this._eventListeners=[],this._intervals=[],this._isDestroyed=!1}addManagedEventListener(e,t,n,s){this._isDestroyed||(e.addEventListener(t,n,s),this._eventListeners.push({target:e,type:t,listener:n,options:s}))}addManagedInterval(e,t){const n=setInterval(e,t);return this._intervals.push(n),n}get isDestroyed(){return this._isDestroyed}destroy(){if(!this._isDestroyed){this._isDestroyed=!0;for(const{target:e,type:t,listener:n,options:s}of this._eventListeners)e.removeEventListener(t,n,s);this._eventListeners=[];for(const e of this._intervals)clearInterval(e);this._intervals=[]}}}class a extends i{constructor(e,n,s){super(),this.expandedNodes=new Set,this.selectedDn=null,this.rootDn=null,this.container=e,this.baseUrl=n,this.onSelectOrg=s,this.cache=new t,this.addManagedInterval(()=>this.cache.cleanExpired(),3e5)}async cachedFetch(e){const t=this.cache.get(e);if(null!==t)return t;const n=await fetch(e);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const s=await n.json();return this.cache.set(e,s),s}async init(){this.container.innerHTML='\n <div class="sidebar">\n <div class="sidebar-header">\n <h2>\n <span class="material-icons">account_tree</span>\n Organizations\n </h2>\n </div>\n <div id="org-tree-viewer" class="user-tree">\n <div class="loading"><div class="spinner"></div></div>\n </div>\n </div>\n ';try{const e=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/top`);this.rootDn=e.dn,await this.renderTree()}catch(e){console.error("Failed to init tree:",e);const t=this.container.querySelector("#org-tree-viewer");t&&(t.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load organization tree</p></div>')}}async renderTree(){const e=this.container.querySelector("#org-tree-viewer");if(e&&this.rootDn)try{const t=await this.renderNode(this.rootDn,0);e.innerHTML=t,this.attachEventListeners()}catch(t){console.error("Failed to render tree:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Error rendering tree</p></div>'}}async renderNode(e,t){const n=this.expandedNodes.has(e),s=this.selectedDn===e,r=20*t,i=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);let a=e;i.ou?a=Array.isArray(i.ou)?i.ou[0]:i.ou:i.cn&&(a=Array.isArray(i.cn)?i.cn[0]:i.cn);let o=`\n <div class="tree-node ${s?"active":""}" style="padding-left: ${r}px">\n <span class="material-icons tree-node-toggle" data-dn="${e}">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons">business</span>\n <span class="tree-node-label" data-dn="${e}">${a}</span>\n </div>\n `;if(n)try{const n=(await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes`)).filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:e.objectClass?[e.objectClass]:[];return t.includes("organizationalUnit")||t.includes("organization")});for(const e of n)o+=await this.renderNode(e.dn,t+1)}catch(t){console.error("Failed to load subnodes for",e,t)}return o}attachEventListeners(){this.container.querySelectorAll(".tree-node-toggle").forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})}),this.container.querySelectorAll(".tree-node-label").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.selectedDn=n,this.renderTree(),this.onSelectOrg(n))})})}async refresh(){await this.renderTree()}destroy(){this.container.innerHTML="",super.destroy()}}class o{constructor(e,t,n,s,r){this.options=[],this.api=e,this.fieldName=t,this.attribute=n,this.value=s,this.onChange=r}async init(){await this.loadOptions()}async loadOptions(){try{const e="array"===this.attribute.type?this.attribute.items?.branch?.[0]:this.attribute.branch?.[0];if(!e)return void(this.options=[]);this.options=await this.api.getPointerOptions(e)}catch(e){console.error("Failed to load pointer options:",e),this.options=[]}}render(){const e="array"===this.attribute.type,t=this.attribute.required||!1;return e?this.renderArray(t):this.renderSingle(t)}renderSingle(e){const t=Array.isArray(this.value)?this.value[0]||"":this.value||"";return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <select\n class="form-select pointer-field-select"\n data-field="${this.fieldName}"\n ${e?"required":""}\n >\n <option value="">Select...</option>\n ${this.options.map(e=>`\n <option value="${e.dn}" ${t===e.dn?"selected":""}>\n ${e.label}\n </option>\n `).join("")}\n </select>\n </div>\n `}renderArray(e){const t=Array.isArray(this.value)?this.value:[];return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${this.fieldName}">\n ${t.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <select class="form-select pointer-array-item">\n <option value="">Select...</option>\n ${this.options.map(t=>`\n <option value="${t.dn}" ${e===t.dn?"selected":""}>\n ${t.label}\n </option>\n `).join("")}\n </select>\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item">\n <span class="material-icons">add</span>\n Add ${this.fieldName}\n </button>\n </div>\n </div>\n `}attachHandlers(e){"array"===this.attribute.type?this.attachArrayHandlers(e):this.attachSingleHandlers(e)}attachSingleHandlers(e){const t=e.querySelector(`select[data-field="${this.fieldName}"]`);t?.addEventListener("change",()=>{this.onChange(t.value)})}attachArrayHandlers(e){const t=e.querySelector(`.array-field[data-field="${this.fieldName}"]`);if(!t)return;t.querySelectorAll(".pointer-array-item").forEach((e,t)=>{e.addEventListener("change",()=>{const n=Array.isArray(this.value)?[...this.value]:[];n[t]=e.value,this.onChange(n)})}),t.querySelectorAll(".remove-array-item").forEach((e,t)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.splice(t,1),this.onChange(e)})});const n=t.querySelector(".add-array-item");n?.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.push(""),this.onChange(e)})}}class c{constructor(e,t,n){this.modal=null,this.selectedOrgDn=null,this.expandedNodes=new Set,this.rootDn=null,this.api=e,this.currentOrgDn=t,this.onMove=n}static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}async show(){this.modal=document.createElement("div"),this.modal.className="modal-overlay active",this.modal.innerHTML='\n <div class="modal-container" style="max-width: 600px;">\n <div class="modal-header">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 0.5rem;">\n <span class="material-icons">folder_open</span>\n Move User to Organization\n </h3>\n <button class="modal-close" id="modal-close-btn">\n <span class="material-icons">close</span>\n </button>\n </div>\n <div class="modal-body">\n <div id="move-modal-alert"></div>\n <div style="margin-bottom: 1rem; color: #666; font-size: 0.9rem;">\n Select the target organization where you want to move this user.\n </div>\n <div id="organization-tree-container" style="max-height: 400px; overflow-y: auto; border: 1px solid #ddd; border-radius: 4px; padding: 0.5rem;">\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading organizations...</p>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" id="modal-cancel-btn">\n Cancel\n </button>\n <button type="button" class="btn btn-primary" id="modal-move-btn" disabled>\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n </div>\n </div>\n ',document.body.appendChild(this.modal),this.attachHandlers(),await this.loadOrganizationTree()}attachHandlers(){if(!this.modal)return;const e=this.modal.querySelector("#modal-close-btn");e?.addEventListener("click",()=>this.close());const t=this.modal.querySelector("#modal-cancel-btn");t?.addEventListener("click",()=>this.close());const n=this.modal.querySelector("#modal-move-btn");n?.addEventListener("click",()=>this.handleMove()),this.modal.addEventListener("click",e=>{e.target===this.modal&&this.close()});const s=e=>{"Escape"===e.key&&(this.close(),document.removeEventListener("keydown",s))};document.addEventListener("keydown",s)}async loadOrganizationTree(){console.log("loadOrganizationTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e)try{console.log("Fetching top organization...");const e=await this.api.cachedFetch(`${this.api.baseUrl||window.location.origin}/api/v1/ldap/organizations/top`);console.log("Top org:",e),this.rootDn=e.dn,this.expandedNodes.add(this.rootDn),console.log("Calling renderTree..."),await this.renderTree(),console.log("renderTree completed")}catch(t){console.error("Error in loadOrganizationTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Failed to load organizations: ${c.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("Container not found")}async renderTree(){console.log("renderTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e&&this.rootDn)try{console.log("renderTree: calling renderNode for",this.rootDn);const t=await this.renderNode(this.rootDn,0);console.log("renderTree: got html, length:",t.length),e.innerHTML=t,console.log("renderTree: html set, attaching handlers"),this.attachTreeHandlers(),console.log("renderTree: handlers attached")}catch(t){console.error("Error in renderTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Error rendering tree: ${c.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("renderTree: no container or rootDn",{container:e,rootDn:this.rootDn})}async renderNode(e,t){console.log("renderNode called for",e,"level",t);const n=this.expandedNodes.has(e),s=e===this.currentOrgDn,r=e===this.selectedOrgDn,i=20*t,a=this.api.baseUrl||window.location.origin;console.log("Fetching node details from:",`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);const o=await this.api.cachedFetch(`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);console.log("Got node:",o);const l=Array.isArray(o.ou)?o.ou[0]:o.ou,d=(o.twakeDepartmentPath?Array.isArray(o.twakeDepartmentPath)?o.twakeDepartmentPath[0]:o.twakeDepartmentPath:void 0)||l||e;let h=`\n <div\n class="org-node ${s?"org-current":""} ${r?"org-selected":""}"\n data-org-dn="${c.escapeHtml(e)}"\n style="\n padding: 0.5rem;\n padding-left: ${i+8}px;\n cursor: ${s?"not-allowed":"pointer"};\n background: ${s?"#f5f5f5":r?"#e3f2fd":"white"};\n opacity: ${s?"0.6":"1"};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-left: 2px solid ${r?"#2196f3":"transparent"};\n "\n >\n <span class="material-icons tree-toggle" data-dn="${c.escapeHtml(e)}" style="cursor: pointer; font-size: 1.2rem;">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 1.2rem; color: ${s?"#999":"#2196f3"};">\n ${s?"business":"folder"}\n </span>\n <span style="flex: 1; font-weight: ${r?"600":"500"};">\n ${c.escapeHtml(d)}\n ${s?'<span style="font-size: 0.85rem; color: #666; margin-left: 0.5rem;">(current)</span>':""}\n </span>\n ${r?'<span class="material-icons" style="color: #2196f3;">check_circle</span>':""}\n </div>\n `;if(n)try{const n=await this.api.cachedFetch(`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes?objectClass=organizationalUnit`);for(const e of n)h+=await this.renderNode(e.dn,t+1)}catch{}return h}attachTreeHandlers(){const e=this.modal?.querySelectorAll(".tree-toggle");e?.forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})});const t=this.modal?.querySelectorAll(".org-node");t?.forEach(e=>{const t=e.getAttribute("data-org-dn");t&&t!==this.currentOrgDn&&e.addEventListener("click",()=>{this.selectOrganization(t)})})}async selectOrganization(e){this.selectedOrgDn=e,await this.renderTree();const t=this.modal?.querySelector("#modal-move-btn");t&&(t.disabled=!1)}async handleMove(){if(!this.selectedOrgDn)return;const e=this.modal?.querySelector("#modal-move-btn"),t=this.modal?.querySelector("#move-modal-alert");e&&(e.disabled=!0,e.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{this.onMove(this.selectedOrgDn),this.close()}catch(n){t&&(t.innerHTML=`\n <div class="alert alert-error" style="margin-bottom: 1rem;">\n <span class="material-icons">error</span>\n <div>Move failed: ${c.escapeHtml(n.message)}</div>\n </div>\n `),e&&(e.disabled=!1,e.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n ')}}close(){this.modal&&(this.modal.remove(),this.modal=null)}}const l=e=>(Array.isArray(e)?e:[e]).filter(e=>!(e=>null==e||""===e)(e)),d=e=>l(e).map(String);class h{static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}constructor(e,t,n,s,r){this.user=null,this.schema=null,this.formData={},this.pointerFields=new Map,this.ldapBase="",this.container=e,this.api=t,this.userDn=n,this.onSaved=s,this.onDeleted=r}async init(){try{this.showLoading(),await this.loadUserAndSchema(),this.render(),await this.initPointerFields(),this.attachHandlers()}catch(e){this.showError(e.message)}}showLoading(){this.container.innerHTML='\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading user data...</p>\n </div>\n '}showError(e){this.container.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e)}</div>\n </div>\n `}async loadUserAndSchema(){const e=await this.api.getConfig();this.ldapBase=e.ldapBase;const t=e.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name),n=t?.schemaUrl;if(!n)throw new Error("Users schema not configured");[this.schema,this.user]=await Promise.all([this.api.getSchema(n),this.api.getUser(this.userDn)]),this.schema&&this.replacePlaceholders(this.schema),this.formData={...this.user};for(const[e,t]of Object.entries(this.schema?.attributes??{}))"array"===t.type&&void 0!==this.formData[e]&&(this.formData[e]=d(this.formData[e]))}replacePlaceholders(e){for(const t of Object.values(e.attributes))t.branch&&(t.branch=t.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase))),t.items?.branch&&(t.items.branch=t.items.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase)))}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldByRole(e){if(!this.schema||!this.user)return"";const t=Object.entries(this.schema.attributes).find(([,t])=>n(t,e));if(!t)return"";const[s]=t;return this.getFirstValue(this.user[s])}render(){if(!this.user||!this.schema)return;const e=this.getFieldByRole("displayName"),t=this.getFirstValue(this.user[this.schema.entity.mainAttribute]),n=e||t||"User";this.container.innerHTML=`\n <div class="editor-container">\n <div class="editor-header">\n <span class="material-icons">person</span>\n <div class="editor-title">\n <h3>${h.escapeHtml(n)}</h3>\n <div class="dn">${h.escapeHtml(this.userDn)}</div>\n </div>\n </div>\n\n <div id="alert-container"></div>\n\n <form id="user-edit-form" class="editor-form">\n ${this.renderFormSections()}\n\n <div class="editor-actions" style="margin-top: 2rem; display: flex; justify-content: space-between; align-items: center;">\n <div style="display: flex; gap: 0.5rem;">\n <button type="button" class="btn btn-secondary" id="move-user-btn">\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n <button type="button" class="btn btn-secondary" id="delete-user-btn" style="background: #d32f2f; color: white;">\n <span class="material-icons">person_remove</span>\n Delete User\n </button>\n </div>\n <button type="submit" class="btn btn-primary">\n <span class="material-icons">save</span>\n Save Changes\n </button>\n </div>\n </form>\n </div>\n `}renderFormSections(){if(!this.schema)return"";const e={},t=[];for(const[n,r]of Object.entries(this.schema.attributes)){if("objectClass"===n)continue;const i=s(r.group);i?(e[i]||(e[i]=[]),e[i].push(n)):t.push(n)}let n=Object.entries(e).map(([e,t])=>`\n <div class="form-section">\n <div class="form-section-title">${h.escapeHtml(e)}</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `).join("");return t.length>0&&(n+=`\n <div class="form-section">\n <div class="form-section-title">Other Fields</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `),n}renderField(e){const t=this.schema?.attributes[e];return t?t.fixed||n(t,"organizationLink")||n(t,"organizationPath")?"":n(t,"identifier")?this.renderIdentifierField(e):"pointer"===t.type||"pointer"===t.items?.type?`<div id="pointer-${h.escapeHtml(e)}"></div>`:"array"===t.type?this.renderArrayField(e,t):"number"===t.type||"integer"===t.type?this.renderNumberField(e,t):this.renderStringField(e,t):""}renderIdentifierField(e){const t=this.formData[e],n=Array.isArray(t)?t[0]:t||"";return`\n <div class="form-group">\n <label class="form-label">${h.escapeHtml(e)}</label>\n <input\n type="text"\n class="form-input"\n value="${h.escapeHtml(n)}"\n disabled\n />\n </div>\n `}renderStringField(e,t){const n=this.formData[e]||"",s=t.test?.includes("@")?"email":"userPassword"===e?"password":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="${h.escapeHtml(s)}"\n class="form-input"\n name="${h.escapeHtml(e)}"\n value="${h.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderNumberField(e,t){const n=this.formData[e]||"";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="number"\n class="form-input"\n name="${h.escapeHtml(e)}"\n value="${h.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderArrayField(e,t){const n=Array.isArray(this.formData[e])?this.formData[e]:[],s="string"===t.items?.type&&t.items?.test?.includes("@")?"email":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${h.escapeHtml(e)}">\n ${n.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <input\n type="${h.escapeHtml(s)}"\n class="form-input array-string-item"\n value="${h.escapeHtml(e)}"\n />\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item" data-field="${h.escapeHtml(e)}">\n <span class="material-icons">add</span>\n Add ${h.escapeHtml(e)}\n </button>\n </div>\n </div>\n `}async initPointerFields(){if(!this.schema)return;const e=Object.entries(this.schema.attributes).filter(([,e])=>("pointer"===e.type||"pointer"===e.items?.type)&&!e.fixed).map(([e])=>e);for(const t of e){const e=this.schema.attributes[t],n=this.formData[t],s=new o(this.api,t,e,n,e=>{this.formData[t]=e,this.rerenderPointerField(t)});await s.init(),this.pointerFields.set(t,s);const r=this.container.querySelector(`#pointer-${t}`);r&&(r.innerHTML=s.render(),s.attachHandlers(r))}}rerenderPointerField(e){const t=this.pointerFields.get(e);if(!t)return;const n=this.container.querySelector(`#pointer-${e}`);n&&(n.innerHTML=t.render(),t.attachHandlers(n))}attachHandlers(){const e=this.container.querySelector("#user-edit-form");e?.addEventListener("submit",e=>this.handleSubmit(e));const t=this.container.querySelector("#move-user-btn");t?.addEventListener("click",()=>this.handleMove());const n=this.container.querySelector("#delete-user-btn");n?.addEventListener("click",()=>this.handleDelete()),this.container.querySelectorAll("input[name]").forEach(e=>{e.addEventListener("input",()=>{const t=e.name,n=this.schema?.attributes[t];this.formData[t]="number"===n?.type||"integer"===n?.type?e.value?parseInt(e.value,10):"":e.value})}),this.attachArrayFieldHandlers()}attachArrayFieldHandlers(){this.container.querySelectorAll(".array-field").forEach(e=>{const t=e.getAttribute("data-field");t&&(e.querySelectorAll(".array-string-item").forEach((e,n)=>{e.addEventListener("input",()=>{const s=Array.isArray(this.formData[t])?[...this.formData[t]]:[];s[n]=e.value,this.formData[t]=s})}),e.querySelectorAll(".remove-array-item").forEach((e,n)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.formData[t])?[...this.formData[t]]:[];e.splice(n,1),this.formData[t]=e,this.rerenderArrayField(t)})}))}),this.container.querySelectorAll(".add-array-item").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-field");if(!t)return;const n=Array.isArray(this.formData[t])?[...this.formData[t]]:[];n.push(""),this.formData[t]=n,this.rerenderArrayField(t)})})}rerenderArrayField(e){const t=this.schema?.attributes[e];if(!t)return;const n=this.container.querySelector(`.array-field[data-field="${e}"]`)?.parentElement;if(n){const s="pointer"===t.type||"pointer"===t.items?.type?this.pointerFields.get(e)?.render()||"":this.renderArrayField(e,t);if(n.outerHTML=s,"pointer"===t.type||"pointer"===t.items?.type){const t=this.container.querySelector(`#pointer-${e}`);if(t){const n=this.pointerFields.get(e);n?.attachHandlers(t)}}else this.attachArrayFieldHandlers()}}async handleSubmit(e){e.preventDefault();const t=this.container.querySelector("#alert-container"),n=this.container.querySelector('button[type="submit"]');t&&(t.innerHTML=""),n&&(n.disabled=!0);try{const e=function(e,t){const n={};for(const[s,r]of Object.entries(t)){if("dn"===s)continue;const t=l(r),i=t.map(String).sort(),a=l(e?.[s]).map(String).sort();i.length===a.length&&i.every((e,t)=>e===a[t])||(n[s]=Array.isArray(r)?t:t.length?r:[])}return n}(this.user,this.formData);Object.keys(e).length&&await this.api.updateUser(this.userDn,e),t&&(t.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User updated successfully!</div>\n </div>\n '),this.onSaved&&this.onSaved()}catch(e){t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e.message)}</div>\n </div>\n `)}finally{n&&(n.disabled=!1)}}async handleMove(){if(!this.user||!this.schema)return;const e=Object.entries(this.schema.attributes).find(([,e])=>n(e,"organizationLink"));if(!e)return void alert("This user type does not support moving between organizations");const[t]=e,s=Array.isArray(this.user[t])?String(this.user[t][0]):String(this.user[t]||"");if(!s)return void alert("User does not have an organization link");const r=new c(this.api,s,async e=>{await this.performMove(e)});await r.show()}async performMove(e){const t=this.container.querySelector("#alert-container"),n=this.container.querySelector("#move-user-btn");t&&(t.innerHTML=""),n&&(n.disabled=!0,n.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{const t=await this.api.moveUser(this.userDn,e);t.newDn&&(this.userDn=t.newDn),await this.init();const n=this.container.querySelector("#alert-container");n&&(n.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User moved successfully!</div>\n </div>\n '),this.onSaved&&this.onSaved()}catch(e){throw t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e.message)}</div>\n </div>\n `),n&&(n.disabled=!1,n.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n '),e}}async handleDelete(){if(!confirm(`Are you sure you want to delete this user?\n\n${this.userDn}`))return;const e=this.container.querySelector("#alert-container"),t=this.container.querySelector("#delete-user-btn");e&&(e.innerHTML=""),t&&(t.disabled=!0);try{await this.api.deleteUser(this.userDn),e&&(e.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User deleted successfully!</div>\n </div>\n '),this.onDeleted&&this.onDeleted()}catch(n){e&&(e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(n.message)}</div>\n </div>\n `),t&&(t.disabled=!1)}}async refresh(){await this.init()}}class u{constructor(e,t,n,s){this.users=[],this.searchQuery="",this.schema=null,this.config=null,this.container=e,this.api=t,this.orgDn=n,this.onSelectUser=s}async init(){this.config=await this.api.getConfig();const e=this.config.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name);e?.schemaUrl&&(this.schema=await this.api.getSchema(e.schemaUrl)),this.render(),await this.loadUsers()}render(){this.container.innerHTML='\n <div class="user-list-container">\n <div class="user-list-header">\n <h2>\n <span class="material-icons">people</span>\n Users\n </h2>\n <div class="search-box">\n <span class="material-icons">search</span>\n <input\n type="text"\n placeholder="Search users in this organization..."\n id="user-list-search-input"\n />\n </div>\n </div>\n <div class="user-list" id="user-list-items">\n <div class="loading">\n <div class="spinner"></div>\n </div>\n </div>\n </div>\n ';const e=this.container.querySelector("#user-list-search-input");e?.addEventListener("input",e=>{this.searchQuery=e.target.value,this.renderUserList()})}async loadUsers(){const e=this.container.querySelector("#user-list-items");if(e)try{e.innerHTML='<div class="loading"><div class="spinner"></div></div>';const t=this.api.baseUrl||window.location.origin,n=this.schema?.entity?.objectClass?.[1]||"twakeAccount",s=await fetch(`${t}/api/v1/ldap/organizations/${encodeURIComponent(this.orgDn)}/subnodes?objectClass=${encodeURIComponent(n)}`);if(!s.ok)throw new Error("Failed to fetch organization users");const r=await s.json(),i=this.schema?.entity?.objectClass||[],a=this.schema?.entity?.mainAttribute||"";this.users=r.filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:[e.objectClass];return!!e[a]&&i.every(e=>t.includes(e))}),this.renderUserList()}catch(t){console.error("Failed to load users:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load users</p></div>'}}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldNameByRole(e){if(!this.schema)return null;const t=Object.entries(this.schema.attributes).find(([,t])=>n(t,e));return t?t[0]:null}getFieldValueByRole(e,t){const n=this.getFieldNameByRole(t);return n?this.getFirstValue(e[n]):""}renderUserList(){const e=this.container.querySelector("#user-list-items");if(!e)return;const t=this.getFieldNameByRole("displayName"),n=this.schema?.entity?.mainAttribute||"",s=this.getFieldNameByRole("primaryEmail"),r=this.searchQuery?this.users.filter(e=>{const r=t?this.getFirstValue(e[t]).toLowerCase():"",i=this.getFirstValue(e[n]).toLowerCase(),a=s?this.getFirstValue(e[s]).toLowerCase():"",o=this.searchQuery.toLowerCase();return r.includes(o)||i.includes(o)||a.includes(o)}):this.users;0!==r.length?(e.innerHTML=r.map(e=>{const r=t?this.getFirstValue(e[t]):"",i=this.getFirstValue(e[n]),a=s?this.getFirstValue(e[s]):"",o=r||i||"Unknown";return`\n <div\n class="tree-node"\n data-dn="${e.dn}"\n >\n <span class="material-icons">person</span>\n <div class="tree-node-content">\n <div class="tree-node-name">\n ${o}\n </div>\n ${a?`<div class="tree-node-email">${a}</div>`:""}\n </div>\n </div>\n `}).join(""),e.querySelectorAll(".tree-node").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-dn");t&&this.onSelectUser(t)})})):e.innerHTML='<div class="empty-state"><span class="material-icons">person_search</span><p>No users found</p></div>'}async refresh(){await this.loadUsers()}}e.LdapUserEditor=class{constructor(e){this.container=null,this.userTree=null,this.userEditor=null,this.userList=null,this.currentUserDn=null,this.currentOrgDn=null,this.config=null,this.options={apiBaseUrl:"undefined"!=typeof window?window.location.origin:"",...e},this.api=new r(this.options.apiBaseUrl)}async init(){if(this.container=document.getElementById(this.options.containerId),!this.container)throw new Error(`Container #${this.options.containerId} not found`);this.config=await this.api.getConfig(),this.render(),await this.initComponents()}render(){this.container&&(this.container.innerHTML='\n <div class="ldap-user-editor">\n <div class="editor-layout">\n <div id="user-tree-container" class="demo-panel"></div>\n <div id="user-editor-container" class="demo-panel">\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n </div>\n </div>\n </div>\n ')}async initComponents(){const e=document.getElementById("user-tree-container");if(e){this.userTree=new a(e,this.options.apiBaseUrl||window.location.origin,e=>this.onOrganizationSelected(e));try{await this.userTree.init()}catch(e){this.handleError(e)}}}async onOrganizationSelected(e){const t=document.getElementById("user-editor-container");if(t){this.currentOrgDn=e,this.currentUserDn=null;try{this.userList=new u(t,this.api,e,e=>this.onUserSelected(e)),await this.userList.init()}catch(e){this.handleError(e),t.innerHTML='\n <div class="empty-state">\n <span class="material-icons">error</span>\n <p>Failed to load users for this organization</p>\n </div>\n '}}}async onUserSelected(e){this.currentUserDn=e;const t=document.getElementById("user-editor-container");if(t){this.userEditor=new h(t,this.api,e,()=>{this.options.onUserSaved&&this.options.onUserSaved(e),this.currentOrgDn&&this.userList&&this.userList.refresh()},()=>{this.userDeleted(e)});try{await this.userEditor.init()}catch(e){this.handleError(e)}}}handleError(e){console.error("LDAP User Editor error:",e),this.options.onError&&this.options.onError(e)}async refresh(){await(this.userTree?.refresh()),this.currentUserDn&&await(this.userEditor?.refresh())}destroy(){this.container&&(this.container.innerHTML=""),this.userTree=null,this.userEditor=null,this.currentUserDn=null}async createUser(e){try{const t=await this.api.createUser(e);return this.userList&&await this.userList.refresh(),t}catch(e){throw this.handleError(e),e}}async deleteUser(e){try{await this.api.deleteUser(e),await this.userDeleted(e)}catch(e){throw this.handleError(e),e}}async userDeleted(e){if(this.currentUserDn===e){this.currentUserDn=null;const e=document.getElementById("user-editor-container");e&&(e.innerHTML='\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n ')}this.userList&&await this.userList.refresh()}getConfig(){return this.config}getApi(){return this.api}getCurrentOrgDn(){return this.currentOrgDn}getCurrentUserDn(){return this.currentUserDn}}});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).LdapUserEditor={})}(this,function(e){"use strict";class t{cache=new Map;ttl;maxEntries;constructor(e={}){this.ttl=e.ttl??3e5,this.maxEntries=e.maxEntries??200}get(e){const t=this.cache.get(e);return t?Date.now()-t.timestamp>=this.ttl?(this.cache.delete(e),null):(t.accessCount++,t.timestamp=Date.now(),t.data):null}set(e,t){this.cache.size>=this.maxEntries&&!this.cache.has(e)&&this.evictLRU(),this.cache.set(e,{data:t,timestamp:Date.now(),accessCount:0})}has(e){return null!==this.get(e)}invalidate(e){this.cache.delete(e)}invalidatePattern(e){const t=new RegExp("^"+e.replace(/\*/g,".*").replace(/\?/g,".")+"$");for(const e of this.cache.keys())t.test(e)&&this.cache.delete(e)}clear(){this.cache.clear()}getStats(){return{size:this.cache.size,maxSize:this.maxEntries,ttl:this.ttl,keys:Array.from(this.cache.keys())}}evictLRU(){let e=null,t=1/0,n=1/0;for(const[s,r]of this.cache.entries())(r.accessCount<n||r.accessCount===n&&r.timestamp<t)&&(e=s,t=r.timestamp,n=r.accessCount);e&&this.cache.delete(e)}cleanExpired(){const e=Date.now();let t=0;for(const[n,s]of this.cache.entries())e-s.timestamp>=this.ttl&&(this.cache.delete(n),t++);return t}}function n(e,t){const n=e?.role;return Array.isArray(n)?n.includes(t):n===t}function s(e,t="en"){if(null==e)return;if("string"==typeof e)return e||void 0;const n=t.split("-")[0].toLowerCase();for(const s of[t,n,"en"])if(e[s])return e[s];return Object.values(e).find(Boolean)}class r{baseUrl;cache;constructor(e="",n){this.baseUrl=e||("undefined"!=typeof window?window.location.origin:""),this.cache=new t(n),"undefined"!=typeof window&&window.setInterval(()=>this.cache.cleanExpired(),3e5)}getApiBase(){return`${this.baseUrl}/api/v1`}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}async cachedFetch(e,t){const n=t?.method||"GET";if("GET"===n){const t=this.cache.get(e);if(null!==t)return t}const s=await fetch(e,t);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);const r=await s.json();return"GET"===n&&this.cache.set(e,r),r}async getConfig(){return this.cachedFetch(`${this.getApiBase()}/config`)}async getSchema(e){const t=e.startsWith("http")?e:`${this.baseUrl}${e}`;return this.cachedFetch(t)}async getUsers(e=""){const t=e?`${this.getApiBase()}/ldap/users?match=${encodeURIComponent(e)}&attribute=uid`:`${this.getApiBase()}/ldap/users`,n=await this.cachedFetch(t);return Array.isArray(n)?n:Object.values(n)}async getUser(e){const t=`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`;return this.cachedFetch(t)}async updateUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({replace:t})});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to update user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async createUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to create user")}const n=await t.json();return this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),n}async deleteUser(e){const t=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const e=await t.text();throw new Error(e||"Failed to delete user")}this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`)}async moveUser(e,t){const n=await fetch(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetOrgDn:t})});if(!n.ok){const e=await n.text();throw new Error(e||"Failed to move user")}const s=await n.json();return this.cache.invalidate(`${this.getApiBase()}/ldap/users/${encodeURIComponent(e)}`),this.cache.invalidatePattern(`${this.getApiBase()}/ldap/users*`),s}async getPointerOptions(e){try{const t=await this.getConfig(),s=t.features?.ldapFlatGeneric?.flatResources?.find(t=>e===t.base||e.startsWith(t.base));if(s&&s.endpoints?.list){const e=`${this.baseUrl}${s.endpoints.list}`,t=await this.cachedFetch(e),r=Array.isArray(t)?t:Object.values(t);let i="cn";const a=s.mainAttribute;if(s.schemaUrl)try{const e=await this.getSchema(s.schemaUrl),t=Object.entries(e.attributes).find(([,e])=>n(e,"displayName"));t&&(i=t[0])}catch(e){}return r.map(e=>{const t=this.getFirstValue(e[i]),n=this.getFirstValue(e[a]);return{dn:e.dn,label:t||n||e.dn}})}throw new Error(`No flatResource found in config for branch: ${e}`)}catch(t){return console.error("Failed to load pointer options for branch:",e,t),[]}}clearCache(){this.cache.clear()}invalidateCache(e){this.cache.invalidatePattern(e)}getCacheStats(){return this.cache.getStats()}getCache(){return this.cache}}class i{_eventListeners=[];_intervals=[];_isDestroyed=!1;addManagedEventListener(e,t,n,s){this._isDestroyed||(e.addEventListener(t,n,s),this._eventListeners.push({target:e,type:t,listener:n,options:s}))}addManagedInterval(e,t){const n=setInterval(e,t);return this._intervals.push(n),n}get isDestroyed(){return this._isDestroyed}destroy(){if(!this._isDestroyed){this._isDestroyed=!0;for(const{target:e,type:t,listener:n,options:s}of this._eventListeners)e.removeEventListener(t,n,s);this._eventListeners=[];for(const e of this._intervals)clearInterval(e);this._intervals=[]}}}class a extends i{container;baseUrl;onSelectOrg;expandedNodes=new Set;selectedDn=null;rootDn=null;cache;constructor(e,n,s){super(),this.container=e,this.baseUrl=n,this.onSelectOrg=s,this.cache=new t,this.addManagedInterval(()=>this.cache.cleanExpired(),3e5)}async cachedFetch(e){const t=this.cache.get(e);if(null!==t)return t;const n=await fetch(e);if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const s=await n.json();return this.cache.set(e,s),s}async init(){this.container.innerHTML='\n <div class="sidebar">\n <div class="sidebar-header">\n <h2>\n <span class="material-icons">account_tree</span>\n Organizations\n </h2>\n </div>\n <div id="org-tree-viewer" class="user-tree">\n <div class="loading"><div class="spinner"></div></div>\n </div>\n </div>\n ';try{const e=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/top`);this.rootDn=e.dn,await this.renderTree()}catch(e){console.error("Failed to init tree:",e);const t=this.container.querySelector("#org-tree-viewer");t&&(t.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load organization tree</p></div>')}}async renderTree(){const e=this.container.querySelector("#org-tree-viewer");if(e&&this.rootDn)try{const t=await this.renderNode(this.rootDn,0);e.innerHTML=t,this.attachEventListeners()}catch(t){console.error("Failed to render tree:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Error rendering tree</p></div>'}}async renderNode(e,t){const n=this.expandedNodes.has(e),s=this.selectedDn===e,r=20*t,i=await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);let a=e;i.ou?a=Array.isArray(i.ou)?i.ou[0]:i.ou:i.cn&&(a=Array.isArray(i.cn)?i.cn[0]:i.cn);let o=`\n <div class="tree-node ${s?"active":""}" style="padding-left: ${r}px">\n <span class="material-icons tree-node-toggle" data-dn="${e}">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons">business</span>\n <span class="tree-node-label" data-dn="${e}">${a}</span>\n </div>\n `;if(n)try{const n=(await this.cachedFetch(`${this.baseUrl}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes`)).filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:e.objectClass?[e.objectClass]:[];return t.includes("organizationalUnit")||t.includes("organization")});for(const e of n)o+=await this.renderNode(e.dn,t+1)}catch(t){console.error("Failed to load subnodes for",e,t)}return o}attachEventListeners(){this.container.querySelectorAll(".tree-node-toggle").forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})}),this.container.querySelectorAll(".tree-node-label").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.selectedDn=n,this.renderTree(),this.onSelectOrg(n))})})}async refresh(){await this.renderTree()}destroy(){this.container.innerHTML="",super.destroy()}}class o{api;attribute;fieldName;value;onChange;options=[];constructor(e,t,n,s,r){this.api=e,this.fieldName=t,this.attribute=n,this.value=s,this.onChange=r}async init(){await this.loadOptions()}async loadOptions(){try{const e="array"===this.attribute.type?this.attribute.items?.branch?.[0]:this.attribute.branch?.[0];if(!e)return void(this.options=[]);this.options=await this.api.getPointerOptions(e)}catch(e){console.error("Failed to load pointer options:",e),this.options=[]}}render(){const e="array"===this.attribute.type,t=this.attribute.required||!1;return e?this.renderArray(t):this.renderSingle(t)}renderSingle(e){const t=Array.isArray(this.value)?this.value[0]||"":this.value||"";return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <select\n class="form-select pointer-field-select"\n data-field="${this.fieldName}"\n ${e?"required":""}\n >\n <option value="">Select...</option>\n ${this.options.map(e=>`\n <option value="${e.dn}" ${t===e.dn?"selected":""}>\n ${e.label}\n </option>\n `).join("")}\n </select>\n </div>\n `}renderArray(e){const t=Array.isArray(this.value)?this.value:[];return`\n <div class="form-group">\n <label class="form-label">\n ${this.fieldName}\n ${e?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${this.fieldName}">\n ${t.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <select class="form-select pointer-array-item">\n <option value="">Select...</option>\n ${this.options.map(t=>`\n <option value="${t.dn}" ${e===t.dn?"selected":""}>\n ${t.label}\n </option>\n `).join("")}\n </select>\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item">\n <span class="material-icons">add</span>\n Add ${this.fieldName}\n </button>\n </div>\n </div>\n `}attachHandlers(e){"array"===this.attribute.type?this.attachArrayHandlers(e):this.attachSingleHandlers(e)}attachSingleHandlers(e){const t=e.querySelector(`select[data-field="${this.fieldName}"]`);t?.addEventListener("change",()=>{this.onChange(t.value)})}attachArrayHandlers(e){const t=e.querySelector(`.array-field[data-field="${this.fieldName}"]`);if(!t)return;t.querySelectorAll(".pointer-array-item").forEach((e,t)=>{e.addEventListener("change",()=>{const n=Array.isArray(this.value)?[...this.value]:[];n[t]=e.value,this.onChange(n)})}),t.querySelectorAll(".remove-array-item").forEach((e,t)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.splice(t,1),this.onChange(e)})});const n=t.querySelector(".add-array-item");n?.addEventListener("click",()=>{const e=Array.isArray(this.value)?[...this.value]:[];e.push(""),this.onChange(e)})}}class c{modal=null;api;currentOrgDn;selectedOrgDn=null;onMove;expandedNodes=new Set;rootDn=null;constructor(e,t,n){this.api=e,this.currentOrgDn=t,this.onMove=n}static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}async show(){this.modal=document.createElement("div"),this.modal.className="modal-overlay active",this.modal.innerHTML='\n <div class="modal-container" style="max-width: 600px;">\n <div class="modal-header">\n <h3 style="margin: 0; display: flex; align-items: center; gap: 0.5rem;">\n <span class="material-icons">folder_open</span>\n Move User to Organization\n </h3>\n <button class="modal-close" id="modal-close-btn">\n <span class="material-icons">close</span>\n </button>\n </div>\n <div class="modal-body">\n <div id="move-modal-alert"></div>\n <div style="margin-bottom: 1rem; color: #666; font-size: 0.9rem;">\n Select the target organization where you want to move this user.\n </div>\n <div id="organization-tree-container" style="max-height: 400px; overflow-y: auto; border: 1px solid #ddd; border-radius: 4px; padding: 0.5rem;">\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading organizations...</p>\n </div>\n </div>\n </div>\n <div class="modal-footer">\n <button type="button" class="btn btn-secondary" id="modal-cancel-btn">\n Cancel\n </button>\n <button type="button" class="btn btn-primary" id="modal-move-btn" disabled>\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n </div>\n </div>\n ',document.body.appendChild(this.modal),this.attachHandlers(),await this.loadOrganizationTree()}attachHandlers(){if(!this.modal)return;const e=this.modal.querySelector("#modal-close-btn");e?.addEventListener("click",()=>this.close());const t=this.modal.querySelector("#modal-cancel-btn");t?.addEventListener("click",()=>this.close());const n=this.modal.querySelector("#modal-move-btn");n?.addEventListener("click",()=>this.handleMove()),this.modal.addEventListener("click",e=>{e.target===this.modal&&this.close()});const s=e=>{"Escape"===e.key&&(this.close(),document.removeEventListener("keydown",s))};document.addEventListener("keydown",s)}async loadOrganizationTree(){console.log("loadOrganizationTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e)try{console.log("Fetching top organization...");const e=await this.api.cachedFetch(`${this.api.baseUrl||window.location.origin}/api/v1/ldap/organizations/top`);console.log("Top org:",e),this.rootDn=e.dn,this.expandedNodes.add(this.rootDn),console.log("Calling renderTree..."),await this.renderTree(),console.log("renderTree completed")}catch(t){console.error("Error in loadOrganizationTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Failed to load organizations: ${c.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("Container not found")}async renderTree(){console.log("renderTree called");const e=this.modal?.querySelector("#organization-tree-container");if(e&&this.rootDn)try{console.log("renderTree: calling renderNode for",this.rootDn);const t=await this.renderNode(this.rootDn,0);console.log("renderTree: got html, length:",t.length),e.innerHTML=t,console.log("renderTree: html set, attaching handlers"),this.attachTreeHandlers(),console.log("renderTree: handlers attached")}catch(t){console.error("Error in renderTree:",t),e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>Error rendering tree: ${c.escapeHtml(t.message)}</div>\n </div>\n `}else console.log("renderTree: no container or rootDn",{container:e,rootDn:this.rootDn})}async renderNode(e,t){console.log("renderNode called for",e,"level",t);const n=this.expandedNodes.has(e),s=e===this.currentOrgDn,r=e===this.selectedOrgDn,i=20*t,a=this.api.baseUrl||window.location.origin;console.log("Fetching node details from:",`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);const o=await this.api.cachedFetch(`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}`);console.log("Got node:",o);const l=Array.isArray(o.ou)?o.ou[0]:o.ou,d=(o.twakeDepartmentPath?Array.isArray(o.twakeDepartmentPath)?o.twakeDepartmentPath[0]:o.twakeDepartmentPath:void 0)||l||e;let h=`\n <div\n class="org-node ${s?"org-current":""} ${r?"org-selected":""}"\n data-org-dn="${c.escapeHtml(e)}"\n style="\n padding: 0.5rem;\n padding-left: ${i+8}px;\n cursor: ${s?"not-allowed":"pointer"};\n background: ${s?"#f5f5f5":r?"#e3f2fd":"white"};\n opacity: ${s?"0.6":"1"};\n display: flex;\n align-items: center;\n gap: 0.5rem;\n border-left: 2px solid ${r?"#2196f3":"transparent"};\n "\n >\n <span class="material-icons tree-toggle" data-dn="${c.escapeHtml(e)}" style="cursor: pointer; font-size: 1.2rem;">\n ${n?"expand_more":"chevron_right"}\n </span>\n <span class="material-icons" style="font-size: 1.2rem; color: ${s?"#999":"#2196f3"};">\n ${s?"business":"folder"}\n </span>\n <span style="flex: 1; font-weight: ${r?"600":"500"};">\n ${c.escapeHtml(d)}\n ${s?'<span style="font-size: 0.85rem; color: #666; margin-left: 0.5rem;">(current)</span>':""}\n </span>\n ${r?'<span class="material-icons" style="color: #2196f3;">check_circle</span>':""}\n </div>\n `;if(n)try{const n=await this.api.cachedFetch(`${a}/api/v1/ldap/organizations/${encodeURIComponent(e)}/subnodes?objectClass=organizationalUnit`);for(const e of n)h+=await this.renderNode(e.dn,t+1)}catch{}return h}attachTreeHandlers(){const e=this.modal?.querySelectorAll(".tree-toggle");e?.forEach(e=>{e.addEventListener("click",async t=>{t.stopPropagation();const n=e.getAttribute("data-dn");n&&(this.expandedNodes.has(n)?this.expandedNodes.delete(n):this.expandedNodes.add(n),await this.renderTree())})});const t=this.modal?.querySelectorAll(".org-node");t?.forEach(e=>{const t=e.getAttribute("data-org-dn");t&&t!==this.currentOrgDn&&e.addEventListener("click",()=>{this.selectOrganization(t)})})}async selectOrganization(e){this.selectedOrgDn=e,await this.renderTree();const t=this.modal?.querySelector("#modal-move-btn");t&&(t.disabled=!1)}async handleMove(){if(!this.selectedOrgDn)return;const e=this.modal?.querySelector("#modal-move-btn"),t=this.modal?.querySelector("#move-modal-alert");e&&(e.disabled=!0,e.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{this.onMove(this.selectedOrgDn),this.close()}catch(n){t&&(t.innerHTML=`\n <div class="alert alert-error" style="margin-bottom: 1rem;">\n <span class="material-icons">error</span>\n <div>Move failed: ${c.escapeHtml(n.message)}</div>\n </div>\n `),e&&(e.disabled=!1,e.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n ')}}close(){this.modal&&(this.modal.remove(),this.modal=null)}}const l=e=>(Array.isArray(e)?e:[e]).filter(e=>!(e=>null==e||""===e)(e)),d=e=>l(e).map(String);class h{container;api;userDn;user=null;schema=null;formData={};pointerFields=new Map;onSaved;onDeleted;ldapBase="";static escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(e).replace(/[&<>"'/]/g,e=>t[e])}constructor(e,t,n,s,r){this.container=e,this.api=t,this.userDn=n,this.onSaved=s,this.onDeleted=r}async init(){try{this.showLoading(),await this.loadUserAndSchema(),this.render(),await this.initPointerFields(),this.attachHandlers()}catch(e){this.showError(e.message)}}showLoading(){this.container.innerHTML='\n <div class="loading">\n <div class="spinner"></div>\n <p style="margin-top: 1rem">Loading user data...</p>\n </div>\n '}showError(e){this.container.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e)}</div>\n </div>\n `}async loadUserAndSchema(){const e=await this.api.getConfig();this.ldapBase=e.ldapBase;const t=e.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name),n=t?.schemaUrl;if(!n)throw new Error("Users schema not configured");[this.schema,this.user]=await Promise.all([this.api.getSchema(n),this.api.getUser(this.userDn)]),this.schema&&this.replacePlaceholders(this.schema),this.formData={...this.user};for(const[e,t]of Object.entries(this.schema?.attributes??{}))"array"===t.type&&void 0!==this.formData[e]&&(this.formData[e]=d(this.formData[e]))}replacePlaceholders(e){for(const t of Object.values(e.attributes))t.branch&&(t.branch=t.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase))),t.items?.branch&&(t.items.branch=t.items.branch.map(e=>e.replace(/__LDAP_BASE__/g,this.ldapBase)))}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldByRole(e){if(!this.schema||!this.user)return"";const t=Object.entries(this.schema.attributes).find(([,t])=>n(t,e));if(!t)return"";const[s]=t;return this.getFirstValue(this.user[s])}render(){if(!this.user||!this.schema)return;const e=this.getFieldByRole("displayName"),t=this.getFirstValue(this.user[this.schema.entity.mainAttribute]),n=e||t||"User";this.container.innerHTML=`\n <div class="editor-container">\n <div class="editor-header">\n <span class="material-icons">person</span>\n <div class="editor-title">\n <h3>${h.escapeHtml(n)}</h3>\n <div class="dn">${h.escapeHtml(this.userDn)}</div>\n </div>\n </div>\n\n <div id="alert-container"></div>\n\n <form id="user-edit-form" class="editor-form">\n ${this.renderFormSections()}\n\n <div class="editor-actions" style="margin-top: 2rem; display: flex; justify-content: space-between; align-items: center;">\n <div style="display: flex; gap: 0.5rem;">\n <button type="button" class="btn btn-secondary" id="move-user-btn">\n <span class="material-icons">drive_file_move</span>\n Move User\n </button>\n <button type="button" class="btn btn-secondary" id="delete-user-btn" style="background: #d32f2f; color: white;">\n <span class="material-icons">person_remove</span>\n Delete User\n </button>\n </div>\n <button type="submit" class="btn btn-primary">\n <span class="material-icons">save</span>\n Save Changes\n </button>\n </div>\n </form>\n </div>\n `}renderFormSections(){if(!this.schema)return"";const e={},t=[];for(const[n,r]of Object.entries(this.schema.attributes)){if("objectClass"===n)continue;const i=s(r.group);i?(e[i]||(e[i]=[]),e[i].push(n)):t.push(n)}let n=Object.entries(e).map(([e,t])=>`\n <div class="form-section">\n <div class="form-section-title">${h.escapeHtml(e)}</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `).join("");return t.length>0&&(n+=`\n <div class="form-section">\n <div class="form-section-title">Other Fields</div>\n <div class="form-row">\n ${t.map(e=>this.renderField(e)).filter(e=>e).join("")}\n </div>\n </div>\n `),n}renderField(e){const t=this.schema?.attributes[e];return t?t.fixed||n(t,"organizationLink")||n(t,"organizationPath")?"":n(t,"identifier")?this.renderIdentifierField(e):"pointer"===t.type||"pointer"===t.items?.type?`<div id="pointer-${h.escapeHtml(e)}"></div>`:"array"===t.type?this.renderArrayField(e,t):"number"===t.type||"integer"===t.type?this.renderNumberField(e,t):this.renderStringField(e,t):""}renderIdentifierField(e){const t=this.formData[e],n=Array.isArray(t)?t[0]:t||"";return`\n <div class="form-group">\n <label class="form-label">${h.escapeHtml(e)}</label>\n <input\n type="text"\n class="form-input"\n value="${h.escapeHtml(n)}"\n disabled\n />\n </div>\n `}renderStringField(e,t){const n=this.formData[e]||"",s=t.test?.includes("@")?"email":"userPassword"===e?"password":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="${h.escapeHtml(s)}"\n class="form-input"\n name="${h.escapeHtml(e)}"\n value="${h.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderNumberField(e,t){const n=this.formData[e]||"";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <input\n type="number"\n class="form-input"\n name="${h.escapeHtml(e)}"\n value="${h.escapeHtml(n)}"\n ${t.required?"required":""}\n />\n </div>\n `}renderArrayField(e,t){const n=Array.isArray(this.formData[e])?this.formData[e]:[],s="string"===t.items?.type&&t.items?.test?.includes("@")?"email":"text";return`\n <div class="form-group">\n <label class="form-label">\n ${h.escapeHtml(e)}\n ${t.required?'<span class="required">*</span>':""}\n </label>\n <div class="array-field" data-field="${h.escapeHtml(e)}">\n ${n.map((e,t)=>`\n <div class="array-item" data-index="${t}">\n <input\n type="${h.escapeHtml(s)}"\n class="form-input array-string-item"\n value="${h.escapeHtml(e)}"\n />\n <button type="button" class="btn btn-secondary btn-icon remove-array-item">\n <span class="material-icons">remove</span>\n </button>\n </div>\n `).join("")}\n <button type="button" class="btn btn-secondary add-array-item" data-field="${h.escapeHtml(e)}">\n <span class="material-icons">add</span>\n Add ${h.escapeHtml(e)}\n </button>\n </div>\n </div>\n `}async initPointerFields(){if(!this.schema)return;const e=Object.entries(this.schema.attributes).filter(([,e])=>("pointer"===e.type||"pointer"===e.items?.type)&&!e.fixed).map(([e])=>e);for(const t of e){const e=this.schema.attributes[t],n=this.formData[t],s=new o(this.api,t,e,n,e=>{this.formData[t]=e,this.rerenderPointerField(t)});await s.init(),this.pointerFields.set(t,s);const r=this.container.querySelector(`#pointer-${t}`);r&&(r.innerHTML=s.render(),s.attachHandlers(r))}}rerenderPointerField(e){const t=this.pointerFields.get(e);if(!t)return;const n=this.container.querySelector(`#pointer-${e}`);n&&(n.innerHTML=t.render(),t.attachHandlers(n))}attachHandlers(){const e=this.container.querySelector("#user-edit-form");e?.addEventListener("submit",e=>this.handleSubmit(e));const t=this.container.querySelector("#move-user-btn");t?.addEventListener("click",()=>this.handleMove());const n=this.container.querySelector("#delete-user-btn");n?.addEventListener("click",()=>this.handleDelete()),this.container.querySelectorAll("input[name]").forEach(e=>{e.addEventListener("input",()=>{const t=e.name,n=this.schema?.attributes[t];this.formData[t]="number"===n?.type||"integer"===n?.type?e.value?parseInt(e.value,10):"":e.value})}),this.attachArrayFieldHandlers()}attachArrayFieldHandlers(){this.container.querySelectorAll(".array-field").forEach(e=>{const t=e.getAttribute("data-field");t&&(e.querySelectorAll(".array-string-item").forEach((e,n)=>{e.addEventListener("input",()=>{const s=Array.isArray(this.formData[t])?[...this.formData[t]]:[];s[n]=e.value,this.formData[t]=s})}),e.querySelectorAll(".remove-array-item").forEach((e,n)=>{e.addEventListener("click",()=>{const e=Array.isArray(this.formData[t])?[...this.formData[t]]:[];e.splice(n,1),this.formData[t]=e,this.rerenderArrayField(t)})}))}),this.container.querySelectorAll(".add-array-item").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-field");if(!t)return;const n=Array.isArray(this.formData[t])?[...this.formData[t]]:[];n.push(""),this.formData[t]=n,this.rerenderArrayField(t)})})}rerenderArrayField(e){const t=this.schema?.attributes[e];if(!t)return;const n=this.container.querySelector(`.array-field[data-field="${e}"]`)?.parentElement;if(n){const s="pointer"===t.type||"pointer"===t.items?.type?this.pointerFields.get(e)?.render()||"":this.renderArrayField(e,t);if(n.outerHTML=s,"pointer"===t.type||"pointer"===t.items?.type){const t=this.container.querySelector(`#pointer-${e}`);if(t){const n=this.pointerFields.get(e);n?.attachHandlers(t)}}else this.attachArrayFieldHandlers()}}async handleSubmit(e){e.preventDefault();const t=this.container.querySelector("#alert-container"),n=this.container.querySelector('button[type="submit"]');t&&(t.innerHTML=""),n&&(n.disabled=!0);try{const e=function(e,t){const n={};for(const[s,r]of Object.entries(t)){if("dn"===s)continue;const t=l(r),i=t.map(String).sort(),a=l(e?.[s]).map(String).sort();i.length===a.length&&i.every((e,t)=>e===a[t])||(n[s]=Array.isArray(r)?t:t.length?r:[])}return n}(this.user,this.formData);Object.keys(e).length&&await this.api.updateUser(this.userDn,e),t&&(t.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User updated successfully!</div>\n </div>\n '),this.onSaved&&this.onSaved()}catch(e){t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e.message)}</div>\n </div>\n `)}finally{n&&(n.disabled=!1)}}async handleMove(){if(!this.user||!this.schema)return;const e=Object.entries(this.schema.attributes).find(([,e])=>n(e,"organizationLink"));if(!e)return void alert("This user type does not support moving between organizations");const[t]=e,s=Array.isArray(this.user[t])?String(this.user[t][0]):String(this.user[t]||"");if(!s)return void alert("User does not have an organization link");const r=new c(this.api,s,async e=>{await this.performMove(e)});await r.show()}async performMove(e){const t=this.container.querySelector("#alert-container"),n=this.container.querySelector("#move-user-btn");t&&(t.innerHTML=""),n&&(n.disabled=!0,n.innerHTML='\n <span class="spinner" style="width: 1rem; height: 1rem; border-width: 2px;"></span>\n Moving...\n ');try{const t=await this.api.moveUser(this.userDn,e);t.newDn&&(this.userDn=t.newDn),await this.init();const n=this.container.querySelector("#alert-container");n&&(n.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User moved successfully!</div>\n </div>\n '),this.onSaved&&this.onSaved()}catch(e){throw t&&(t.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(e.message)}</div>\n </div>\n `),n&&(n.disabled=!1,n.innerHTML='\n <span class="material-icons">drive_file_move</span>\n Move User\n '),e}}async handleDelete(){if(!confirm(`Are you sure you want to delete this user?\n\n${this.userDn}`))return;const e=this.container.querySelector("#alert-container"),t=this.container.querySelector("#delete-user-btn");e&&(e.innerHTML=""),t&&(t.disabled=!0);try{await this.api.deleteUser(this.userDn),e&&(e.innerHTML='\n <div class="alert alert-success">\n <span class="material-icons">check_circle</span>\n <div>User deleted successfully!</div>\n </div>\n '),this.onDeleted&&this.onDeleted()}catch(n){e&&(e.innerHTML=`\n <div class="alert alert-error">\n <span class="material-icons">error</span>\n <div>${h.escapeHtml(n.message)}</div>\n </div>\n `),t&&(t.disabled=!1)}}async refresh(){await this.init()}}class u{container;api;users=[];orgDn;searchQuery="";onSelectUser;schema=null;config=null;constructor(e,t,n,s){this.container=e,this.api=t,this.orgDn=n,this.onSelectUser=s}async init(){this.config=await this.api.getConfig();const e=this.config.features?.ldapFlatGeneric?.flatResources?.find(e=>"users"===e.pluralName||"users"===e.name);e?.schemaUrl&&(this.schema=await this.api.getSchema(e.schemaUrl)),this.render(),await this.loadUsers()}render(){this.container.innerHTML='\n <div class="user-list-container">\n <div class="user-list-header">\n <h2>\n <span class="material-icons">people</span>\n Users\n </h2>\n <div class="search-box">\n <span class="material-icons">search</span>\n <input\n type="text"\n placeholder="Search users in this organization..."\n id="user-list-search-input"\n />\n </div>\n </div>\n <div class="user-list" id="user-list-items">\n <div class="loading">\n <div class="spinner"></div>\n </div>\n </div>\n </div>\n ';const e=this.container.querySelector("#user-list-search-input");e?.addEventListener("input",e=>{this.searchQuery=e.target.value,this.renderUserList()})}async loadUsers(){const e=this.container.querySelector("#user-list-items");if(e)try{e.innerHTML='<div class="loading"><div class="spinner"></div></div>';const t=this.api.baseUrl||window.location.origin,n=this.schema?.entity?.objectClass?.[1]||"twakeAccount",s=await fetch(`${t}/api/v1/ldap/organizations/${encodeURIComponent(this.orgDn)}/subnodes?objectClass=${encodeURIComponent(n)}`);if(!s.ok)throw new Error("Failed to fetch organization users");const r=await s.json(),i=this.schema?.entity?.objectClass||[],a=this.schema?.entity?.mainAttribute||"";this.users=r.filter(e=>{const t=Array.isArray(e.objectClass)?e.objectClass:[e.objectClass];return!!e[a]&&i.every(e=>t.includes(e))}),this.renderUserList()}catch(t){console.error("Failed to load users:",t),e.innerHTML='<div class="empty-state"><span class="material-icons">error</span><p>Failed to load users</p></div>'}}getFirstValue(e){return e?Array.isArray(e)?e[0]||"":String(e):""}getFieldNameByRole(e){if(!this.schema)return null;const t=Object.entries(this.schema.attributes).find(([,t])=>n(t,e));return t?t[0]:null}getFieldValueByRole(e,t){const n=this.getFieldNameByRole(t);return n?this.getFirstValue(e[n]):""}renderUserList(){const e=this.container.querySelector("#user-list-items");if(!e)return;const t=this.getFieldNameByRole("displayName"),n=this.schema?.entity?.mainAttribute||"",s=this.getFieldNameByRole("primaryEmail"),r=this.searchQuery?this.users.filter(e=>{const r=t?this.getFirstValue(e[t]).toLowerCase():"",i=this.getFirstValue(e[n]).toLowerCase(),a=s?this.getFirstValue(e[s]).toLowerCase():"",o=this.searchQuery.toLowerCase();return r.includes(o)||i.includes(o)||a.includes(o)}):this.users;0!==r.length?(e.innerHTML=r.map(e=>{const r=t?this.getFirstValue(e[t]):"",i=this.getFirstValue(e[n]),a=s?this.getFirstValue(e[s]):"",o=r||i||"Unknown";return`\n <div\n class="tree-node"\n data-dn="${e.dn}"\n >\n <span class="material-icons">person</span>\n <div class="tree-node-content">\n <div class="tree-node-name">\n ${o}\n </div>\n ${a?`<div class="tree-node-email">${a}</div>`:""}\n </div>\n </div>\n `}).join(""),e.querySelectorAll(".tree-node").forEach(e=>{e.addEventListener("click",()=>{const t=e.getAttribute("data-dn");t&&this.onSelectUser(t)})})):e.innerHTML='<div class="empty-state"><span class="material-icons">person_search</span><p>No users found</p></div>'}async refresh(){await this.loadUsers()}}e.LdapUserEditor=class{options;api;container=null;userTree=null;userEditor=null;userList=null;currentUserDn=null;currentOrgDn=null;config=null;constructor(e){this.options={apiBaseUrl:"undefined"!=typeof window?window.location.origin:"",...e},this.api=new r(this.options.apiBaseUrl)}async init(){if(this.container=document.getElementById(this.options.containerId),!this.container)throw new Error(`Container #${this.options.containerId} not found`);this.config=await this.api.getConfig(),this.render(),await this.initComponents()}render(){this.container&&(this.container.innerHTML='\n <div class="ldap-user-editor">\n <div class="editor-layout">\n <div id="user-tree-container" class="demo-panel"></div>\n <div id="user-editor-container" class="demo-panel">\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n </div>\n </div>\n </div>\n ')}async initComponents(){const e=document.getElementById("user-tree-container");if(e){this.userTree=new a(e,this.options.apiBaseUrl||window.location.origin,e=>this.onOrganizationSelected(e));try{await this.userTree.init()}catch(e){this.handleError(e)}}}async onOrganizationSelected(e){const t=document.getElementById("user-editor-container");if(t){this.currentOrgDn=e,this.currentUserDn=null;try{this.userList=new u(t,this.api,e,e=>this.onUserSelected(e)),await this.userList.init()}catch(e){this.handleError(e),t.innerHTML='\n <div class="empty-state">\n <span class="material-icons">error</span>\n <p>Failed to load users for this organization</p>\n </div>\n '}}}async onUserSelected(e){this.currentUserDn=e;const t=document.getElementById("user-editor-container");if(t){this.userEditor=new h(t,this.api,e,()=>{this.options.onUserSaved&&this.options.onUserSaved(e),this.currentOrgDn&&this.userList&&this.userList.refresh()},()=>{this.userDeleted(e)});try{await this.userEditor.init()}catch(e){this.handleError(e)}}}handleError(e){console.error("LDAP User Editor error:",e),this.options.onError&&this.options.onError(e)}async refresh(){await(this.userTree?.refresh()),this.currentUserDn&&await(this.userEditor?.refresh())}destroy(){this.container&&(this.container.innerHTML=""),this.userTree=null,this.userEditor=null,this.currentUserDn=null}async createUser(e){try{const t=await this.api.createUser(e);return this.userList&&await this.userList.refresh(),t}catch(e){throw this.handleError(e),e}}async deleteUser(e){try{await this.api.deleteUser(e),await this.userDeleted(e)}catch(e){throw this.handleError(e),e}}async userDeleted(e){if(this.currentUserDn===e){this.currentUserDn=null;const e=document.getElementById("user-editor-container");e&&(e.innerHTML='\n <div class="empty-state">\n <span class="material-icons">person_search</span>\n <p>Select a user from the list to edit</p>\n </div>\n ')}this.userList&&await this.userList.refresh()}getConfig(){return this.config}getApi(){return this.api}getCurrentOrgDn(){return this.currentOrgDn}getCurrentUserDn(){return this.currentUserDn}}});
|
|
2
2
|
//# sourceMappingURL=ldap-user-editor.min.js.map
|