@api-client/core 0.19.9 → 0.19.11
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/LICENSE.md +9 -63
- package/Testing.md +1 -1
- package/bin/test.ts +1 -12
- package/build/src/browser.d.ts +0 -15
- package/build/src/browser.d.ts.map +1 -1
- package/build/src/browser.js +0 -17
- package/build/src/browser.js.map +1 -1
- package/build/src/decorators/observed.d.ts.map +1 -1
- package/build/src/decorators/observed.js +91 -0
- package/build/src/decorators/observed.js.map +1 -1
- package/build/src/events/EventTypes.d.ts +0 -6
- package/build/src/events/EventTypes.d.ts.map +1 -1
- package/build/src/events/EventTypes.js +0 -2
- package/build/src/events/EventTypes.js.map +1 -1
- package/build/src/events/Events.d.ts +0 -2
- package/build/src/events/Events.d.ts.map +1 -1
- package/build/src/events/Events.js +0 -2
- package/build/src/events/Events.js.map +1 -1
- package/build/src/index.d.ts +0 -15
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +0 -17
- package/build/src/index.js.map +1 -1
- package/build/src/modeling/ApiModel.d.ts +21 -7
- package/build/src/modeling/ApiModel.d.ts.map +1 -1
- package/build/src/modeling/ApiModel.js +70 -29
- package/build/src/modeling/ApiModel.js.map +1 -1
- package/build/src/modeling/Bindings.d.ts +3 -3
- package/build/src/modeling/Bindings.d.ts.map +1 -1
- package/build/src/modeling/Bindings.js.map +1 -1
- package/build/src/modeling/DomainAssociation.d.ts +5 -5
- package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
- package/build/src/modeling/DomainAssociation.js.map +1 -1
- package/build/src/modeling/DomainEntity.d.ts +2 -3
- package/build/src/modeling/DomainEntity.d.ts.map +1 -1
- package/build/src/modeling/DomainEntity.js +1 -1
- package/build/src/modeling/DomainEntity.js.map +1 -1
- package/build/src/modeling/DomainProperty.d.ts +2 -3
- package/build/src/modeling/DomainProperty.d.ts.map +1 -1
- package/build/src/modeling/DomainProperty.js +1 -1
- package/build/src/modeling/DomainProperty.js.map +1 -1
- package/build/src/modeling/DomainValidation.d.ts +1 -1
- package/build/src/modeling/DomainValidation.d.ts.map +1 -1
- package/build/src/modeling/DomainValidation.js.map +1 -1
- package/build/src/modeling/ExposedEntity.d.ts +14 -0
- package/build/src/modeling/ExposedEntity.d.ts.map +1 -1
- package/build/src/modeling/ExposedEntity.js +59 -6
- package/build/src/modeling/ExposedEntity.js.map +1 -1
- package/build/src/modeling/actions/Action.d.ts +11 -1
- package/build/src/modeling/actions/Action.d.ts.map +1 -1
- package/build/src/modeling/actions/Action.js +21 -3
- package/build/src/modeling/actions/Action.js.map +1 -1
- package/build/src/modeling/actions/CreateAction.d.ts +2 -1
- package/build/src/modeling/actions/CreateAction.d.ts.map +1 -1
- package/build/src/modeling/actions/CreateAction.js +2 -2
- package/build/src/modeling/actions/CreateAction.js.map +1 -1
- package/build/src/modeling/actions/DeleteAction.d.ts +2 -1
- package/build/src/modeling/actions/DeleteAction.d.ts.map +1 -1
- package/build/src/modeling/actions/DeleteAction.js +2 -2
- package/build/src/modeling/actions/DeleteAction.js.map +1 -1
- package/build/src/modeling/actions/ListAction.d.ts +2 -1
- package/build/src/modeling/actions/ListAction.d.ts.map +1 -1
- package/build/src/modeling/actions/ListAction.js +2 -2
- package/build/src/modeling/actions/ListAction.js.map +1 -1
- package/build/src/modeling/actions/ReadAction.d.ts +2 -1
- package/build/src/modeling/actions/ReadAction.d.ts.map +1 -1
- package/build/src/modeling/actions/ReadAction.js +2 -2
- package/build/src/modeling/actions/ReadAction.js.map +1 -1
- package/build/src/modeling/actions/SearchAction.d.ts +2 -1
- package/build/src/modeling/actions/SearchAction.d.ts.map +1 -1
- package/build/src/modeling/actions/SearchAction.js +2 -2
- package/build/src/modeling/actions/SearchAction.js.map +1 -1
- package/build/src/modeling/actions/UpdateAction.d.ts +2 -1
- package/build/src/modeling/actions/UpdateAction.d.ts.map +1 -1
- package/build/src/modeling/actions/UpdateAction.js +2 -2
- package/build/src/modeling/actions/UpdateAction.js.map +1 -1
- package/build/src/modeling/actions/index.d.ts +2 -1
- package/build/src/modeling/actions/index.d.ts.map +1 -1
- package/build/src/modeling/actions/index.js +7 -7
- package/build/src/modeling/actions/index.js.map +1 -1
- package/build/src/modeling/ai/types.d.ts +2 -2
- package/build/src/modeling/ai/types.d.ts.map +1 -1
- package/build/src/modeling/ai/types.js.map +1 -1
- package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
- package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
- package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
- package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
- package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
- package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
- package/build/src/modeling/amf/ShapeGenerator.js +16 -18
- package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
- package/build/src/modeling/amf/core_types.d.ts +9 -0
- package/build/src/modeling/amf/core_types.d.ts.map +1 -0
- package/build/src/modeling/amf/core_types.js +45 -0
- package/build/src/modeling/amf/core_types.js.map +1 -0
- package/build/src/modeling/index.d.ts +1 -0
- package/build/src/modeling/index.d.ts.map +1 -1
- package/build/src/modeling/index.js +1 -0
- package/build/src/modeling/index.js.map +1 -1
- package/build/src/modeling/types.d.ts +67 -0
- package/build/src/modeling/types.d.ts.map +1 -1
- package/build/src/modeling/types.js.map +1 -1
- package/build/src/modeling/validation/api_model_rules.d.ts +15 -0
- package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -0
- package/build/src/modeling/validation/api_model_rules.js +599 -0
- package/build/src/modeling/validation/api_model_rules.js.map +1 -0
- package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/association_validation.js +1 -3
- package/build/src/modeling/validation/association_validation.js.map +1 -1
- package/build/src/models/http-flows/LegacyTranslator.js +1 -1
- package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
- package/build/src/runtime/http-runner/HttpFlows.js +1 -1
- package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.js +0 -2
- package/package.json +27 -135
- package/src/decorators/observed.ts +91 -0
- package/src/events/EventTypes.ts +0 -2
- package/src/events/Events.ts +0 -2
- package/src/modeling/ApiModel.ts +73 -33
- package/src/modeling/Bindings.ts +3 -3
- package/src/modeling/DomainAssociation.ts +5 -5
- package/src/modeling/DomainEntity.ts +3 -4
- package/src/modeling/DomainProperty.ts +3 -4
- package/src/modeling/DomainValidation.ts +1 -1
- package/src/modeling/ExposedEntity.ts +63 -9
- package/src/modeling/actions/Action.ts +25 -2
- package/src/modeling/actions/CreateAction.ts +3 -2
- package/src/modeling/actions/DeleteAction.ts +3 -2
- package/src/modeling/actions/ListAction.ts +3 -2
- package/src/modeling/actions/ReadAction.ts +3 -2
- package/src/modeling/actions/SearchAction.ts +3 -2
- package/src/modeling/actions/UpdateAction.ts +3 -2
- package/src/modeling/ai/types.ts +2 -2
- package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
- package/src/modeling/amf/ShapeGenerator.ts +45 -61
- package/src/modeling/amf/core_types.ts +47 -0
- package/src/modeling/types.ts +70 -0
- package/src/modeling/validation/api_model_rules.ts +640 -0
- package/src/modeling/validation/api_model_validation_rules.md +58 -0
- package/src/modeling/validation/association_validation.ts +1 -3
- package/src/models/http-flows/LegacyTranslator.ts +1 -1
- package/src/runtime/http-runner/HttpFlows.ts +1 -1
- package/tests/unit/modeling/actions/Action.spec.ts +40 -8
- package/tests/unit/modeling/actions/CreateAction.spec.ts +5 -5
- package/tests/unit/modeling/actions/DeleteAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/ListAction.spec.ts +7 -7
- package/tests/unit/modeling/actions/ReadAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/SearchAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/UpdateAction.spec.ts +6 -6
- package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
- package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
- package/tests/unit/modeling/api_model.spec.ts +190 -13
- package/tests/unit/modeling/api_model_expose_entity.spec.ts +43 -19
- package/tests/unit/modeling/api_model_remove_entity.spec.ts +6 -6
- package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
- package/tests/unit/modeling/exposed_entity.spec.ts +123 -3
- package/tests/unit/modeling/exposed_entity_actions.spec.ts +41 -18
- package/tests/unit/modeling/exposed_entity_setter_validation.spec.ts +1 -1
- package/tests/unit/modeling/rules/restoring_rules.spec.ts +9 -5
- package/tests/unit/modeling/validation/api_model_rules.spec.ts +324 -0
- package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
- package/tsconfig.browser.json +1 -1
- package/tsconfig.node.json +1 -1
- package/bin/test-web.ts +0 -6
- package/build/src/amf/AmfMixin.d.ts +0 -396
- package/build/src/amf/AmfMixin.d.ts.map +0 -1
- package/build/src/amf/AmfMixin.js +0 -1138
- package/build/src/amf/AmfMixin.js.map +0 -1
- package/build/src/amf/AmfSerializer.d.ts +0 -137
- package/build/src/amf/AmfSerializer.d.ts.map +0 -1
- package/build/src/amf/AmfSerializer.js +0 -1947
- package/build/src/amf/AmfSerializer.js.map +0 -1
- package/build/src/amf/AmfTypes.d.ts +0 -25
- package/build/src/amf/AmfTypes.d.ts.map +0 -1
- package/build/src/amf/AmfTypes.js +0 -143
- package/build/src/amf/AmfTypes.js.map +0 -1
- package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
- package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiExampleGenerator.js +0 -112
- package/build/src/amf/ApiExampleGenerator.js.map +0 -1
- package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
- package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
- package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
- package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
- package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiSchemaGenerator.js +0 -94
- package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
- package/build/src/amf/ApiSchemaValues.d.ts +0 -111
- package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
- package/build/src/amf/ApiSchemaValues.js +0 -463
- package/build/src/amf/ApiSchemaValues.js.map +0 -1
- package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
- package/build/src/amf/DataValueGenerator.js.map +0 -1
- package/build/src/amf/Parsing.d.ts +0 -48
- package/build/src/amf/Parsing.d.ts.map +0 -1
- package/build/src/amf/Parsing.js +0 -2
- package/build/src/amf/Parsing.js.map +0 -1
- package/build/src/amf/Utils.d.ts +0 -37
- package/build/src/amf/Utils.d.ts.map +0 -1
- package/build/src/amf/Utils.js +0 -169
- package/build/src/amf/Utils.js.map +0 -1
- package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
- package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
- package/build/src/amf/data-node/DataNodeBase.js +0 -77
- package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
- package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
- package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
- package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
- package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
- package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
- package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
- package/build/src/amf/definitions/Amf.d.ts +0 -363
- package/build/src/amf/definitions/Amf.d.ts.map +0 -1
- package/build/src/amf/definitions/Amf.js +0 -3
- package/build/src/amf/definitions/Amf.js.map +0 -1
- package/build/src/amf/definitions/Api.d.ts +0 -383
- package/build/src/amf/definitions/Api.d.ts.map +0 -1
- package/build/src/amf/definitions/Api.js +0 -2
- package/build/src/amf/definitions/Api.js.map +0 -1
- package/build/src/amf/definitions/Base.d.ts +0 -12
- package/build/src/amf/definitions/Base.d.ts.map +0 -1
- package/build/src/amf/definitions/Base.js +0 -2
- package/build/src/amf/definitions/Base.js.map +0 -1
- package/build/src/amf/definitions/Namespace.d.ts +0 -327
- package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
- package/build/src/amf/definitions/Namespace.js +0 -346
- package/build/src/amf/definitions/Namespace.js.map +0 -1
- package/build/src/amf/definitions/Shapes.d.ts +0 -312
- package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
- package/build/src/amf/definitions/Shapes.js +0 -87
- package/build/src/amf/definitions/Shapes.js.map +0 -1
- package/build/src/amf/models/AmfDataNode.d.ts +0 -67
- package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
- package/build/src/amf/models/AmfDataNode.js +0 -192
- package/build/src/amf/models/AmfDataNode.js.map +0 -1
- package/build/src/amf/shape/ShapeBase.d.ts +0 -74
- package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeBase.js +0 -93
- package/build/src/amf/shape/ShapeBase.js.map +0 -1
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
- package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
- package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
- package/build/src/events/amf/AmfEventTypes.js +0 -7
- package/build/src/events/amf/AmfEventTypes.js.map +0 -1
- package/build/src/events/amf/AmfEvents.d.ts +0 -34
- package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
- package/build/src/events/amf/AmfEvents.js +0 -63
- package/build/src/events/amf/AmfEvents.js.map +0 -1
- package/build/src/mocking/RandExp.d.ts +0 -55
- package/build/src/mocking/RandExp.d.ts.map +0 -1
- package/build/src/mocking/RandExp.js +0 -302
- package/build/src/mocking/RandExp.js.map +0 -1
- package/build/src/mocking/lib/ret.d.ts +0 -16
- package/build/src/mocking/lib/ret.d.ts.map +0 -1
- package/build/src/mocking/lib/ret.js +0 -284
- package/build/src/mocking/lib/ret.js.map +0 -1
- package/data/apis/APIC-187/APIC-187.raml +0 -21
- package/data/apis/APIC-187/dataType.raml +0 -132
- package/data/apis/APIC-187/example.raml +0 -84
- package/data/apis/APIC-188/APIC-188.raml +0 -21
- package/data/apis/APIC-188/dataType.raml +0 -132
- package/data/apis/APIC-188/example.raml +0 -84
- package/data/apis/APIC-233/APIC-233.raml +0 -15
- package/data/apis/APIC-391/APIC-391.raml +0 -44
- package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
- package/data/apis/APIC-483/APIC-483.raml +0 -16
- package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
- package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
- package/data/apis/APIC-487/APIC-487.raml +0 -36
- package/data/apis/APIC-655/APIC-655.raml +0 -44
- package/data/apis/APIC-655/delivery.json +0 -12
- package/data/apis/APIC-689/APIC-689.raml +0 -20
- package/data/apis/APIC-690/APIC-690.raml +0 -17
- package/data/apis/APIC-690/datatypes/Address.raml +0 -10
- package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
- package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
- package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
- package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
- package/data/apis/SE-10469/SE-10469.raml +0 -11
- package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
- package/data/apis/SE-13092/SE-13092.raml +0 -37
- package/data/apis/SE-13092/datatypes/Address.raml +0 -5
- package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
- package/data/apis/SE-13092/datatypes/Person.raml +0 -15
- package/data/apis/SE-22063/SE-22063.raml +0 -14
- package/data/apis/SE-22063/stock.raml +0 -41
- package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
- package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
- package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
- package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
- package/data/apis/amf-helper-api/examples/person.json +0 -14
- package/data/apis/amf-helper-api/examples/person.raml +0 -13
- package/data/apis/amf-helper-api/examples/person.xml +0 -14
- package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
- package/data/apis/amf-helper-api/library.raml +0 -7
- package/data/apis/amf-helper-api/schemas/person.json +0 -104
- package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
- package/data/apis/amf-helper-api/traits/file.raml +0 -33
- package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
- package/data/apis/amf-helper-api/traits/results.raml +0 -19
- package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
- package/data/apis/amf-helper-api/types/app-person.raml +0 -101
- package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
- package/data/apis/amf-helper-api/types/external-type.raml +0 -7
- package/data/apis/amf-helper-api/types/image.raml +0 -23
- package/data/apis/amf-helper-api/types/product.raml +0 -52
- package/data/apis/amf-helper-api/types/resource.raml +0 -11
- package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
- package/data/apis/amf-helper-api/types/user.raml +0 -37
- package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
- package/data/apis/arc-demo-api/examples/e400.xml +0 -4
- package/data/apis/arc-demo-api/examples/e401.xml +0 -4
- package/data/apis/arc-demo-api/examples/e404.xml +0 -4
- package/data/apis/arc-demo-api/examples/image.xml +0 -5
- package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
- package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
- package/data/apis/arc-demo-api/examples/person.json +0 -14
- package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
- package/data/apis/arc-demo-api/examples/person.xml +0 -14
- package/data/apis/arc-demo-api/examples/product.xml +0 -9
- package/data/apis/arc-demo-api/library.raml +0 -36
- package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
- package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
- package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
- package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
- package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
- package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
- package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
- package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
- package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
- package/data/apis/arc-demo-api/schemas/person.json +0 -104
- package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
- package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
- package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
- package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
- package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
- package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
- package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
- package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
- package/data/apis/async-api/async-api.yaml +0 -96
- package/data/apis/example-generator-api/contact-email-example.raml +0 -6
- package/data/apis/example-generator-api/contact-example.raml +0 -5
- package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
- package/data/apis/example-generator-api/contact-website-example.raml +0 -2
- package/data/apis/example-generator-api/example-1.raml +0 -6
- package/data/apis/example-generator-api/example-2.raml +0 -9
- package/data/apis/example-generator-api/example-3.raml +0 -4
- package/data/apis/example-generator-api/example-4.raml +0 -2
- package/data/apis/example-generator-api/example-5.raml +0 -4
- package/data/apis/example-generator-api/example-6.raml +0 -2
- package/data/apis/example-generator-api/example-7.raml +0 -5
- package/data/apis/example-generator-api/example-generator-api.raml +0 -423
- package/data/apis/example-generator-api/example.json +0 -14
- package/data/apis/example-generator-api/example.xml +0 -15
- package/data/apis/example-generator-api/example.xsd +0 -26
- package/data/apis/example-generator-api/examples/employee.raml +0 -7
- package/data/apis/example-generator-api/examples/employees.raml +0 -7
- package/data/apis/example-generator-api/linked-named-example.raml +0 -21
- package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
- package/data/apis/example-generator-api/named-example.raml +0 -9
- package/data/apis/example-generator-api/user-json-example.raml +0 -17
- package/data/apis/example-generator-api/user-raml-example.raml +0 -37
- package/data/apis/example-generator-api/user.json +0 -8
- package/data/apis/example-generator-api/user.raml +0 -18
- package/data/apis/example-generator-api/users-json-example.raml +0 -17
- package/data/apis/example-generator-api/users-raml-example.raml +0 -32
- package/data/apis/example-generator-api/users.json +0 -8
- package/data/apis/expanded-api/expanded-api.raml +0 -8
- package/data/apis/flattened-api/flattened-api.raml +0 -8
- package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
- package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
- package/data/apis/oas-date/oas-date.yaml +0 -28
- package/data/apis/oas-types/oas-types.yaml +0 -159
- package/data/apis/oas-unions/oas-unions.yaml +0 -75
- package/data/apis/petstore/petstore.yaml +0 -954
- package/data/apis/raml-date/raml-date.raml +0 -28
- package/data/apis/recursive/recursive.raml +0 -14
- package/data/apis/schema-api/examples/person.json +0 -14
- package/data/apis/schema-api/examples/person.raml +0 -14
- package/data/apis/schema-api/examples/person.url.encoded +0 -1
- package/data/apis/schema-api/examples/person.xml +0 -14
- package/data/apis/schema-api/library/demo-types.raml +0 -43
- package/data/apis/schema-api/schema-api.raml +0 -656
- package/data/apis/schema-api/schemas/person.json +0 -104
- package/data/apis/schema-api/schemas/person.xsd +0 -26
- package/data/apis/schema-api/types/DemoPerson.raml +0 -67
- package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
- package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
- package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
- package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
- package/data/apis/secured-api/oauth2-pkce.raml +0 -13
- package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
- package/data/apis/secured-api/oauth_1_0.raml +0 -8
- package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
- package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
- package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
- package/data/apis/secured-api/passthrough-querystring.raml +0 -16
- package/data/apis/secured-api/passthrough.raml +0 -24
- package/data/apis/secured-api/secured-api.raml +0 -231
- package/data/apis/secured-api/x-custom.raml +0 -33
- package/data/apis/secured-api/x-other.raml +0 -29
- package/data/apis/secured-api/x-query-string.raml +0 -16
- package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
- package/data/apis/tracked-examples/examples/employee.raml +0 -4
- package/data/apis/tracked-examples/examples/employees.raml +0 -8
- package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
- package/data/model.js +0 -129
- package/data/models/APIC-187.json +0 -11416
- package/data/models/APIC-188.json +0 -11416
- package/data/models/APIC-233.json +0 -539
- package/data/models/APIC-391.json +0 -1903
- package/data/models/APIC-483.json +0 -3110
- package/data/models/APIC-487.json +0 -1225
- package/data/models/APIC-655.json +0 -3145
- package/data/models/APIC-689.json +0 -797
- package/data/models/APIC-690.json +0 -5992
- package/data/models/SE-10469.json +0 -22898
- package/data/models/SE-13092.json +0 -2769
- package/data/models/SE-22063.json +0 -2314
- package/data/models/amf-helper-api.json +0 -84457
- package/data/models/arc-demo-api.json +0 -52041
- package/data/models/async-api.json +0 -3227
- package/data/models/example-generator-api.json +0 -45209
- package/data/models/expanded-api.json +0 -251
- package/data/models/flattened-api.json +0 -251
- package/data/models/multiple-servers.json +0 -2769
- package/data/models/oas-3-api.json +0 -10590
- package/data/models/oas-date.json +0 -637
- package/data/models/oas-types.json +0 -5352
- package/data/models/oas-unions.json +0 -1935
- package/data/models/petstore.json +0 -27712
- package/data/models/raml-date.json +0 -1114
- package/data/models/recursive.json +0 -610
- package/data/models/schema-api.json +0 -35527
- package/data/models/secured-api.json +0 -21071
- package/data/models/tracked-to-linked.json +0 -1914
- package/src/amf/AmfMixin.ts +0 -1726
- package/src/amf/AmfSerializer.ts +0 -2358
- package/src/amf/AmfTypes.ts +0 -147
- package/src/amf/ApiExampleGenerator.ts +0 -122
- package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
- package/src/amf/ApiSchemaGenerator.ts +0 -115
- package/src/amf/ApiSchemaValues.ts +0 -509
- package/src/amf/Parsing.ts +0 -50
- package/src/amf/Utils.ts +0 -172
- package/src/amf/data-node/DataNodeBase.ts +0 -83
- package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
- package/src/amf/data-node/README.md +0 -3
- package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
- package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
- package/src/amf/definitions/Amf.ts +0 -440
- package/src/amf/definitions/Api.ts +0 -445
- package/src/amf/definitions/Base.ts +0 -13
- package/src/amf/definitions/Namespace.ts +0 -357
- package/src/amf/definitions/Shapes.ts +0 -438
- package/src/amf/models/AmfDataNode.ts +0 -210
- package/src/amf/shape/README.md +0 -4
- package/src/amf/shape/ShapeBase.ts +0 -174
- package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
- package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
- package/src/events/amf/AmfEventTypes.ts +0 -6
- package/src/events/amf/AmfEvents.ts +0 -78
- package/src/mocking/RandExp.ts +0 -335
- package/src/mocking/lib/ret.ts +0 -279
- package/tests/unit/amf/APIC-187.spec.ts +0 -41
- package/tests/unit/amf/APIC-188.spec.ts +0 -30
- package/tests/unit/amf/APIC-233.spec.ts +0 -32
- package/tests/unit/amf/APIC-391.spec.ts +0 -39
- package/tests/unit/amf/APIC-487.spec.ts +0 -44
- package/tests/unit/amf/APIC-655.spec.ts +0 -41
- package/tests/unit/amf/APIC-689.spec.ts +0 -28
- package/tests/unit/amf/APIC-690.spec.ts +0 -93
- package/tests/unit/amf/AmfLoader.ts +0 -538
- package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
- package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
- package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
- package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
- package/tests/unit/amf/Namepsace.spec.ts +0 -494
- package/tests/unit/amf/SE-10469.spec.ts +0 -35
- package/tests/unit/amf/SE-13092.spec.ts +0 -64
- package/tests/unit/amf/SE-22063.spec.ts +0 -45
- package/tests/unit/amf/raml-examples.spec.ts +0 -43
- package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
- package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
- package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
- package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
- package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
- package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
- package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
- package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
- package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
- package/tests/unit/amf/serializer/Api.spec.ts +0 -210
- package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
- package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
- package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
- package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
- package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
- package/tests/unit/amf/serializer/Security.spec.ts +0 -626
- package/tests/unit/amf/serializer/Server.spec.ts +0 -78
- package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
- package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
- package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
- package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
- package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
- package/tests/unit/events/amf.spec.ts +0 -151
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmfSerializer.js","sourceRoot":"","sources":["../../../src/amf/AmfSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAqGpE,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAwB/D;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,QAAQ,CAAC,MAAM,CAAC;IACjD;;OAEG;IACH,YAAY,KAAyB;QACnC,KAAK,EAAE,CAAA;QACP,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;QAClB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAe,EAAE,OAAgC;QACzD,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,MAAe;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,MAAM,GAAgB;YAC1B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;YACpE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;YAClB,IAAI,EAAE,EAAE;SACT,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACzF,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACjF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAC/F,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,cAAc,GAAG,cAAc,CAAA;QACxC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAkB,CACtE,CAAA;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAa,CAAA;QAC5G,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAkB,CAAC,CAAA;QAClH,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAa,CAAA;QACpH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAkB,CAAC,CAAA;QACzG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAa,CAAA;QAC3G,CAAC;QACD,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAkB,CAE9E,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,CAAC;YAAA,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;QACxB,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAkB,CAE/E,CAAA;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,CAAC;YAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;QACtB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAkB,CAErF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAkB,CAExF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG,CAAC,MAAe,EAAE,OAAgC;QACnD,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAa,CAAA;QAClD,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;QACrB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;QACnB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QAEpB,MAAM,SAAS,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAkB,CAC5D,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAkB,CAGjG,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAkB,CAEjG,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,OAAgC;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ,CAAC,MAAwB,EAAE,OAAgC;QACjE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAqB;YAC/B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,MAAmB,EAAE,OAAgC;QAC3D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAgB;YAC1B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAkB,EAAE,OAAgC;QACzD,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAEnD,MAAM,GAAG,GAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAY,IAAI,EAAE,CAAA;QACzG,MAAM,MAAM,GAAe;YACzB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,GAAG;YACH,SAAS,EAAE,EAAE;YACb,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAqB,CAC1E,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAW,CAAA;QAC1G,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CACpC,MAAM,EACN,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,EAC/C,aAAa,CACJ,CAAA;QACX,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;QAC1C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAqB,CAC7D,CAAA;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAAqB,EAAE,OAAgC;QAC/D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChG,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QAC9G,IAAI,OAAO,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;QAC1C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACjG,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC9F,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAC1G,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;QACtC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QAC1F,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC9F,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAwB,CAC1E,CAAA;QAChB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;YACxB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAC/B,MAAM,EACN;gBACE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;aACzB,EACD,aAAa,CACd,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAwB,CAC9E,CAAA;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAwB,CAC7E,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,YAAY,CAAC,MAAiB,EAAE,OAAiC,EAAE,OAAgC;QACjG,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;QAE5D,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,MAAyB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAuB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAwB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAuB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,MAAyB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC5E,CAAC;QACD,qCAAqC;QACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAwB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1E,CAAC;QACD,IACE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;YACrD,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EACtD,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAwB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,cAAc,CAAC,MAA4B,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,iBAAiB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAsB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,MAAyB,EAAE,OAAgC;QAChE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAC7F,CAAC;IAED,aAAa,CAA8B,MAAS,EAAE,OAAgC;QACpF,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC7F,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,CAAkB,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,MAAiB,EAAE,OAAgC;QACvD,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrB,IAAI,SAA6B,CAAA;QACjC,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAW,CAAA;YACnG,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;YAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,CAA0B,CAAA;YAC3E,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAc;YACxB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,EAAE;YACR,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACpE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YACrF,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7C,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QAC1F,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;QAC1C,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC3F,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC7F,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAoB,CAAC,CAAA;QACpG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAiB,EAAE,aAAa,CAAC,CAAA;QACxF,CAAC;QACD,SAAS;QACT,oDAAoD;QACpD,uEAAuE;QACvE,IAAI;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAoB,CAAA;QAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAgB,CAAA;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAoB,CAAA;QACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAgB,CAAA;QAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAoB,CAAA;QACnF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAgB,CAAA;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;QACrF,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAoB,CAAC,CAAA;QAC5F,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;YAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAA;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAW,CAAA;YACtE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC5D,IAAI,KAAK,GAAI,MAAkD,CAAC,GAAG,CAAC,CAAA;oBACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,CAAC;wBAAA,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;oBAClB,CAAC;oBACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;oBAC5D,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,CAAoB,CAAA;QACjF,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAA0B,CAAA;QACjD,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,CAAC;gBAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;YACd,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC5E,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,QAAQ,CACN,MAAoB,EACpB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAiB,CAAA;QAChE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAA0B,CAAA;YAChF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACpB,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAuB,CAC9E,CAAA;QAElB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;gBACvF,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;gBACvE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;YAC7E,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CACjB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAuB,CAC3D,CAAA;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAChB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAuB,CAC/D,CAAA;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAsB,EAAE,aAAa,CAAC,CAAA;QAC1F,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,QAAuB,EAAE,SAAiB,EAAE,OAAgC;QAChG,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAsB,CAAA;QACtF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAiC,CAAA;QACzG,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QACnF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAA;YAClB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAkE,CAAA;YAC5F,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,CAAC;gBAAA,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC;YACD,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAA8D,CAAA;YACzF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChE,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,wBAAwB,CAAC,QAAuB,EAAE,OAAgC;QAChF,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAsB,CAAA;QACtF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAiC,CAAA;QACzG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAA;YAClB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAkE,CAAA;YAC5F,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,CAAC;gBAAA,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC;YACD,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAA8D,CAAA;YACzF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CACT,MAAuB,EACvB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAoB,CAAA;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAgC,CAAA;YACtF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChF,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACvF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;YAC7B,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;QACjC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;YAC7B,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;QACjC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS,CACP,MAAqB,EACrB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAkB,CAAA;QAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QACrG,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;QACtC,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;QAC/G,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YACjE,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACxE,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QAED,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAA;QACjC,MAAM,CAAC,8BAA8B,GAAG,EAAE,CAAA;QAC1C,MAAM,CAAC,YAAY,GAAG,EAAE,CAAA;QACxB,oCAAoC;QACpC,+BAA+B;QAC/B,kDAAkD;QAClD,IAAI;QACJ,+BAA+B;QAC/B,kDAAkD;QAClD,IAAI;QACJ,8EAA8E;QAC9E,iFAAiF;QACjF,WAAW;QACX,uCAAuC;QACvC,IAAI;QACJ,gGAAgG;QAChG,mGAAmG;QACnG,WAAW;QACX,gDAAgD;QAChD,IAAI;QACJ,MAAM,UAAU,GAAG,MAAM,CACvB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAwB,CACrD,CAAA;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,4DAA4D;QAC5D,+DAA+D;QAC/D,WAAW;QACX,8BAA8B;QAC9B,IAAI;QACJ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,MAAyB,EAAE,OAAgC;QACvE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAsB,CAAA;QACrE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACxE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC5E,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC5E,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,oCAAoC;QACpC,8CAA8C;QAC9C,IAAI;QAEJ,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAA4B,CAC7E,CAAA;QAChB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;YACtB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CACR,MAAsB,EACtB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,MAAM,CAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAyB,CAC1E,CAAA;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAmB,CAAA;QAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS,CACP,MAAqB,EACrB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAkB,CAAA;QAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1E,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAEnF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;YAC7B,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;QACjC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACpF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAA;YAC7B,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAA;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACvF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CACT,MAAuB,EACvB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAoB,CAAA;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC3F,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,OAAgC;QACzE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAuB,CAAA;QACtE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QACzF,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gBAAgB,CACd,MAA4B,EAC5B,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAyB,CAAA;QACpF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QACD,EAAE;QACF,sDAAsD;QACtD,0BAA0B;QAC1B,wCAAwC;QACxC,IAAI;QACJ,0BAA0B;QAC1B,wCAAwC;QACxC,IAAI;QACJ,6BAA6B;QAC7B,8CAA8C;QAC9C,IAAI;QACJ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CACR,MAAsB,EACtB,UAAmC,EAAE,EACrC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAmB,CAAA;QACtF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAyB,CAEhG,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;YACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CACR,MAAsB,EACtB,OAAiC,EACjC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,CAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAmB,CAAA;QACtF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAA;YAChB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAyB,CAEhG,CAAA;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAW,CAAA;QAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;YACjB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,CAAC;oBAAA,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBAChB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;qBACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;qBACnC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACf,IAAI,KAAK,GAAI,IAAuE,CAClF,GAAsB,CACV,CAAA;oBACd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,CAAC;wBAAA,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;oBAClB,CAAC;oBACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;oBAChE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1B,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,MAAwB,EAAE,OAAgC;QACtE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAmB,EAAE,OAAgC;QAC3D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrB,MAAM,MAAM,GAAoB;YAC9B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,MAAM,EAAE,KAAK;SACd,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACzF,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAA;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC7F,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,kCAAkC;QAClC,0CAA0C;QAC1C,IAAI;QACJ,MAAM,eAAe,GAAG,MAAM,CAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAsB,CACpE,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAA;YAC/B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,MAAyB,EAAE,OAAgC;QACvE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACnG,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAA;QACjC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC5F,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACtF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QAC5F,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;QAC1B,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC7F,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;QAC3B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,eAAe,CAAC,MAAoB,EAAE,OAAgC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;QAEtD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAwB,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAwB,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAuB,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;SACrE,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CAAC,MAAsB,EAAE,OAAgC;QACjE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAmB,CAAA;QAE/D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACnF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChF,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CAAC,MAAsB,EAAE,OAAgC;QACjE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAmB,CAAA;QAC/D,MAAM,CAAC,UAAU,GAAG,EAAE,CAAA;QACtB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA;QAC3C,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAA;QAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5D,IAAI,KAAK,GAAG,MAAM,CAAC,GAA2B,CAA6B,CAAA;gBAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,CAAC;oBAAA,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;gBAClB,CAAC;gBACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;gBAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAqB,EAAE,OAAO,CAAC,CAAA;gBACtE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;gBACrC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS,CAAC,MAAqB,EAAE,OAAgC;QAC/D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAkB,CAAA;QACpE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAmB,CAAA;QAC5F,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,MAAyB,EAAE,OAAgC;QAChF,MAAM,MAAM,GAA+B,EAAE,CAAA;QAC7C,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAA;QAC3G,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACrC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACjB,MAAM,GAAG,GAAG,WAAW,EAAE,EAAE,CAAA;gBAC3B,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,EAA6B,CAAC,IAAI,MAAM,CAAC,GAA8B,CAAC,CAG/E,CAAA;gBACb,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAM;gBACR,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,CAAC;oBAAA,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;gBAClB,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAuB,CAAA;gBAC/G,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACxB,OAAM;gBACR,CAAC;gBACD,MAAM,GAAG,GAA6B;oBACpC,EAAE,EAAE,GAAG;oBACP,IAAI;oBACJ,SAAS;iBACV,CAAA;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACxF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACvF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAA;QACjH,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAkB,EAAE,aAAa,CAAC,CAAC,CAAA;QAC9F,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACxG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC7E,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACpG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAgB,EAAE,aAAa,CAAC,CAAC,CAAA;QAC/G,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACnG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;YACnB,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACxB,IAAI,SAAS,GAAG,EAAE,CAAA;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,CAAC;oBAAA,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;gBAC1B,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,wBAAwB,EAAE,aAAa,CAAC,EAAE,CAAC;oBACtG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;gBAC9E,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,CAAC;oBACtG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;gBACvE,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,SAAS,CAAC,MAAqB,EAAE,OAAgC;QAC/D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC5F,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACjG,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAC7F,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QACtG,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAa,CAAA;QAC/G,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAa,CAAA;QAC9G,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CACrC,MAAM,EACN,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAC3C,aAAa,CACF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QAED,IAAI,OAAO,GAAG,MAAM,CAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAwB,CACpD,CAAA;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,CAAC;gBAAA,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,aAAa,GAAG,MAAM,CACxB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAwB,CACzC,CAAA;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,CAAC;gBAAA,CAAC,aAAa,CAAC,GAAG,aAAa,CAAA;YAClC,CAAC;YACD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAwB,CACjE,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAwB,CAClE,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAwB,CAClE,CAAA;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAwB,CACpD,CAAA;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAwB,CAEjG,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAwB,CACrD,CAAA;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,GAAG,CAAC,MAAe,EAAE,OAAgC;QACnD,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAY;YACtB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,EAAE;SACT,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SACnC,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACpG,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,IAAI,QAAQ,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAuB,CAClD,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,CAAC;gBAAA,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;YACxB,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,MAAmB,EAAE,OAAgC;QAC3D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAgB;YAC1B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAClC,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,EAAE;SACrB,CAAA;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAChG,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QACD,IAAI,WAAW,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAsB,CAC1D,CAAA;QACxC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,CAAC;gBAAA,CAAC,WAAW,CAAC,GAAG,WAAW,CAAA;YAC9B,CAAC;YACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC/E,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC7G,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QAC9G,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACnF,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QACpH,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC/D,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAEtF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;SACV,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACpG,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAEtF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAuB,CAClE,CAAA;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAuB,CAElG,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,MAAmB,EAAE,OAAgC;QAC3D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAgB;YAC1B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,QAAQ,EAAE,EAAE;YACZ,gBAAgB;SACjB,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC3F,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAsB,CAG7F,CAAA;QACb,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;gBAAA,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;YACpB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAC/B,MAAM,EACN;gBACE,SAAS,EAAE,MAAM,CAAC,EAAE;aACrB,EACD,aAAa,CACd,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAsB,CACjE,CAAA;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,oDAAoD;QACpD,iDAAiD;QACjD,IAAI;QACJ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,MAAyB,EAAE,OAAgC;QACvE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QACtG,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,IAAI,MAAM,GAAG,MAAM,CACjB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAA4B,CACzD,CAAA;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;gBAAA,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;YACpB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,OAAO,GAAG,MAAM,CAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAA4B,CAC3D,CAAA;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;YACrB,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QACD,iCAAiC;QACjC,wCAAwC;QACxC,IAAI;QACJ,oCAAoC;QACpC,8CAA8C;QAC9C,IAAI;QACJ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,kBAAkB,CAAC,MAA8B,EAAE,OAAgC;QACjF,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAA2B;YACrC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAChH,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC5C,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QAC5G,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,cAAc,GAAG,cAAc,CAAA;QACxC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,0BAA0B,CACxB,MAAsC,EACtC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAmC;YAC7C,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,IAAI,MAAM,GAAG,MAAM,CACjB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAyC,CACnD,CAAA;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;gBAAA,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;YACpB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC5D,CAAC;QACD,IAAI,QAAQ,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAyC,CACjE,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,CAAC;gBAAA,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;YACxB,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,sBAAsB,CAAC,MAA0B,EAAE,OAAgC;QACjF,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAEnD,MAAM,MAAM,GAA+B;YACzC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,IAAI,EAAE,EAAE;SACT,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,OAAgC;QACzE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,EAAE;YACnB,SAAS,EAAE,EAAE;SACd,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,IAAI,QAAQ,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAA6B,CACrD,CAAA;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,CAAC;gBAAA,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;YACxB,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,WAAW,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAA6B,CACjE,CAAA;QACxC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,CAAC;gBAAA,CAAC,WAAW,CAAC,GAAG,WAAW,CAAA;YAC9B,CAAC;YACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC/E,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAClG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC7G,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAExF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mBAAmB,CAAC,MAA+B,EAAE,OAAgC;QACnF,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAA4B;YACtC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAkC,CACtD,CAAA;QACjD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACxF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,MAAoB,EAAE,OAAgC;QACrE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;QAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,cAAc,CAAC,MAA4B,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,cAAc,CAAC,MAA4B,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,cAAc,CAAC,MAA4B,EAAE,aAAa,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,MAA0B,EAAE,aAAa,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAmC,EAAE,aAAa,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,MAAoB,EAAE,OAAgC;QAC7D,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAyB;YACnC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QACD,yDAAyD;QACzD,8EAA8E;QAC9E,IAAI;QACJ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,OAAgC;QACzE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA+B,CAAA;QAEjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAC7G,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC5C,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QAC3G,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;QAC1C,CAAC;QACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAA;QACnH,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAClD,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAa,CAAA;QACjH,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,GAAG,EAAE,CAAA;QACxB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,OAAgC;QACzE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA+B,CAAA;QAEjF,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAChC,MAAM,EACN,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,EAC/C,aAAa,CACF,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAA;QACjC,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAClB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAA6B,CAC/D,CAAA;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CAAC,MAAsB,EAAE,OAAgC;QACjE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAA2B;YACrC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAC7G,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC5C,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QACzG,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,cAAc,GAAG,cAAc,CAAA;QACxC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACrF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACjG,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAyB,CAChE,CAAA;QAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACjE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,MAAiB,EAAE,OAAgC;QACvD,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CAAC,MAA0B,EAAE,OAAgC;QACzE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA+B,CAAA;QAEjF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;QACtF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,EAAE,GAAG,OAAO,CAAA;QACrB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,YAAY,CAAC,MAAwB,EAAE,OAAgC;QACrE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAA6B,CAAA;QAE/E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACzF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACrG,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;QACpC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,qBAAqB,CACnB,MAAiC,EACjC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAsC,CAAA;QAExF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAChG,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;QAClB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAA8B,EAAE,OAAgC;QACxE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,IAAI,EAAE,GAAG,MAAM,CACb,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAiC,CACzC,CAAA;QAClE,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,CAAC;YAAA,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;QACZ,CAAC;QACD,MAAM,MAAM,GAA2B;YACrC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SACnC,CAAA;QACD,MAAM,gBAAgB,GAAG,EAAE,CACzB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAiC,CAC7E,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC/D,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAChG,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAChB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAiC,CACpE,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,cAAc,GAAG,EAAE,CACvB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAiC,CAC3E,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QACjF,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,CACjB,IAAI,CAAC,UAAU,CACb,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,iBAAiB,EACnD,aAAa,CACkB,CACI,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACzF,CAAC;QACD,MAAM,UAAU,GAAG,EAAE,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAiC,CAC7E,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QAC/E,CAAC;QACD,MAAM,eAAe,GAAG,EAAE,CACxB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAiC,CAC5E,CAAA;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gBAAgB,CAAC,MAA4B,EAAE,OAAgC;QAC7E,gBAAgB;QAChB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;gBACL,EAAE,EAAE,4BAA4B;gBAChC,KAAK,EAAE,MAAM;aACU,CAAA;QAC3B,CAAC;QACD,MAAM,MAAM,GAAyB;YACnC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,EAAE;SACV,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAEjG,CAAA;QACb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAE7F,CAAA;QACb,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,uBAAuB,CACrB,MAAmC,EACnC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAgC;YAC1C,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,SAAS,EAAE,EAAE;YACb,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;SAClD,CAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QACjF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CACtB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAsC,CACxE,CAAA;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;YAChE,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAsC,CAChE,CAAA;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;YACxB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QACjE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,iBAAiB,CAAC,MAA6B,EAAE,OAAgC;QAC/E,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAA0B,CAAA;QAC3F,OAAO,MAAM,CAAA;IACf,CAAC;IAED,wBAAwB,CACtB,MAAoC,EACpC,OAAgC;QAEhC,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAiC,CAAA;QAClG,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa,CAAC,MAAyB,EAAE,OAAgC;QACvE,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAW,CAAA;QAC3F,MAAM,MAAM,GAAsB;YAChC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,IAAI;SACL,CAAA;QACD,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAA4B,CAChE,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;YACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mBAAmB,CAAC,MAA+B,EAAE,OAAgC;QACnF,MAAM,aAAa,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;QAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAW,CAAA;QAC3F,MAAM,MAAM,GAA4B;YACtC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YACrD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;YACjD,IAAI;YACJ,SAAS,EAAE,EAAE;SACd,CAAA;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAa,CAAA;QAC/G,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC/F,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CACrB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAkC,CACzE,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;YACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,8BAA8B,CAC5B,MAAoB,EACpB,OAAgC;QAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAW,CAAA;QAC5F,MAAM,MAAM,GAAuC;YACjD,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,IAAI;YACJ,UAAU,EAAE,EAAE;SACf,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAE7F,CAAA;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/E,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAqB,EAAE,OAAgC;QACvE,MAAM,MAAM,GAA0B;YACpC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,EAAE;SACX,CAAA;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACtF,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF","sourcesContent":["import { AmfMixin, findAmfType, getArrayItems } from './AmfMixin.js'\nimport {\n IAmfAnyShape,\n IAmfApi,\n IAmfArrayNode,\n IAmfArrayShape,\n IAmfAsyncApi,\n IAmfCreativeWork,\n IAmfDataArrangeShape,\n IAmfDataNode,\n IAmfDocumentSourceMaps,\n IAmfDomainElement,\n IAmfEndPoint,\n IAmfExample,\n IAmfFileShape,\n IAmfLicense,\n IAmfNodeShape,\n IAmfObjectNode,\n IAmfOperation,\n IAmfOrganization,\n IAmfParameter,\n IAmfPropertyShape,\n IAmfRecursiveShape,\n IAmfScalarNode,\n IAmfScalarShape,\n IAmfSchemaShape,\n IAmfSecurityRequirement,\n IAmfServer,\n IAmfShape,\n IAmfSynthesizedField,\n IAmfTupleShape,\n IAmfUnionShape,\n IAmfWebApi,\n IAmfXMLSerializer,\n IAmfPayload,\n IAmfTag,\n IAmfCallback,\n IAmfRequest,\n IAmfResponse,\n IAmfTemplatedLink,\n IAmfIriTemplateMapping,\n IAmfParametrizedSecurityScheme,\n IAmfSecurityScheme,\n IAmfSettings,\n IAmfOAuth1Settings,\n IAmfOAuth2Settings,\n IAmfApiKeySettings,\n IAmfHttpSettings,\n IAmfOpenIdConnectSettings,\n IAmfOAuth2Flow,\n IAmfScope,\n IAmfParametrizedDeclaration,\n IAmfParametrizedTrait,\n IAmfParametrizedResourceType,\n IAmfVariableValue,\n IAmfAbstractDeclaration,\n} from './definitions/Amf.js'\nimport {\n IApiAbstractDeclaration,\n IApiAsync,\n IApiBase,\n IApiCallback,\n IApiDocumentation,\n IApiDocumentSourceMaps,\n IApiEndPoint,\n IApiEndPointWithOperationsListItem,\n IApiIriTemplateMapping,\n IApiLicense,\n IApiOperation,\n IApiOperationListItem,\n IApiOrganization,\n IApiParameter,\n IApiParametrizedDeclaration,\n IApiParametrizedResourceType,\n IApiParametrizedSecurityScheme,\n IApiParametrizedTrait,\n IApiPayload,\n IApiRequest,\n IApiResponse,\n IApiSecurityApiKeySettings,\n IApiSecurityHttpSettings,\n IApiSecurityOAuth1Settings,\n IApiSecurityOAuth2Flow,\n IApiSecurityOAuth2Settings,\n IApiSecurityOpenIdConnectSettings,\n IApiSecurityRequirement,\n IApiSecurityScheme,\n IApiSecuritySchemeListItem,\n IApiSecurityScope,\n IApiSecuritySettings,\n IApiSecuritySettingsUnion,\n IApiServer,\n IApiSummary,\n IApiSynthesizedField,\n IApiTag,\n IApiTemplatedLink,\n IApiVariableValue,\n IApiWeb,\n IShapeProcessingOptions,\n} from './definitions/Api.js'\nimport { IApiCustomDomainProperty } from './definitions/Base.js'\nimport { AmfNamespace as ns } from './definitions/Namespace.js'\nimport {\n IApiAnyShape,\n IApiArrayNode,\n IApiArrayShape,\n IApiDataArrangeShape,\n IApiDataExample,\n IApiDataNode,\n IApiDataNodeUnion,\n IApiFileShape,\n IApiNodeShape,\n IApiObjectNode,\n IApiPropertyShape,\n IApiRecursiveShape,\n IApiScalarNode,\n IApiScalarShape,\n IApiSchemaShape,\n IApiShape,\n IShapeUnion,\n IApiTupleShape,\n IApiUnionShape,\n IApiXmlSerializer,\n} from './definitions/Shapes.js'\n\n/**\n * A class that takes AMF's ld+json model and outputs JavaScript interface of it.\n */\nexport class AmfSerializer extends AmfMixin(Object) {\n /**\n * @param graph Optional AMF generated graph model.\n */\n constructor(graph?: IAmfDomainElement) {\n super()\n if (graph) {\n this.amf = graph\n }\n }\n\n /**\n * @param types The list of graph object types. When not defined it returns an empty array.\n * @returns The expanded types.\n */\n readTypes(types: string[], context?: Record<string, string>): string[] {\n let target = types\n if (typeof target === 'string') {\n target = [target]\n }\n if (!Array.isArray(target)) {\n return []\n }\n return target.map((type) => this._expandKey(type, context))\n }\n\n /**\n * @param object The API to serialize.\n * @returns API summary, without complex objects.\n */\n apiSummary(object: IAmfApi): IApiSummary {\n const context = object['@context']\n const result: IApiSummary = {\n id: object['@id'],\n types: this.readTypes(object['@type'], context),\n customDomainProperties: this.customDomainProperties(object, context),\n sourceMaps: this.sourceMap(object),\n schemes: [],\n accepts: [],\n contentType: [],\n documentations: [],\n tags: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, context)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, context)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const version = this._getValue(object, ns.aml.vocabularies.core.version, context)\n if (version && typeof version === 'string') {\n result.version = version\n }\n const termsOfService = this._getValue(object, ns.aml.vocabularies.core.termsOfService, context)\n if (termsOfService && typeof termsOfService === 'string') {\n result.termsOfService = termsOfService\n }\n const accepts = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.accepts, context) as keyof IAmfApi\n ] as unknown[]\n if (Array.isArray(accepts) && accepts.length) {\n result.accepts = this._getValueArray(object, ns.aml.vocabularies.apiContract.accepts, context) as string[]\n }\n const contentType = object[this._getAmfKey(ns.aml.vocabularies.apiContract.contentType, context) as keyof IAmfApi]\n if (Array.isArray(contentType) && contentType.length) {\n result.contentType = this._getValueArray(object, ns.aml.vocabularies.apiContract.contentType, context) as string[]\n }\n const schemes = object[this._getAmfKey(ns.aml.vocabularies.apiContract.scheme, context) as keyof IAmfApi]\n if (Array.isArray(schemes) && schemes.length) {\n result.schemes = this._getValueArray(object, ns.aml.vocabularies.apiContract.scheme, context) as string[]\n }\n let provider = object[this._getAmfKey(ns.aml.vocabularies.core.provider, context) as keyof IAmfApi] as\n | IAmfOrganization[]\n | IAmfOrganization\n if (Array.isArray(provider)) {\n ;[provider] = provider\n }\n if (provider) {\n result.provider = this.provider(provider)\n }\n let license = object[this._getAmfKey(ns.aml.vocabularies.core.license, context) as keyof IAmfApi] as\n | IAmfLicense\n | IAmfLicense[]\n if (Array.isArray(license)) {\n ;[license] = license\n }\n if (license) {\n result.license = this.license(license)\n }\n const tags = object[this._getAmfKey(ns.aml.vocabularies.apiContract.tag, context) as keyof IAmfApi] as\n | IAmfTag[]\n | undefined\n if (Array.isArray(tags) && tags.length) {\n result.tags = tags.map((t) => this.tag(t))\n }\n const docs = object[this._getAmfKey(ns.aml.vocabularies.core.documentation, context) as keyof IAmfApi] as\n | IAmfCreativeWork[]\n | undefined\n if (Array.isArray(docs) && docs.length) {\n result.documentations = docs.map((d) => this.documentation(d))\n }\n return result\n }\n\n api(object: IAmfApi, context?: Record<string, string>): IApiBase {\n const objectContext = context || object['@context']\n const result = this.apiSummary(object) as IApiBase\n result.endPoints = []\n result.servers = []\n result.security = []\n\n const endPoints = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.endpoint, objectContext) as keyof IAmfApi\n ] as IAmfEndPoint[] | undefined\n if (Array.isArray(endPoints) && endPoints.length) {\n result.endPoints = endPoints.map((e) => this.endPoint(e, objectContext))\n }\n const servers = object[this._getAmfKey(ns.aml.vocabularies.apiContract.server, objectContext) as keyof IAmfApi] as\n | IAmfServer\n | IAmfServer[]\n | undefined\n if (Array.isArray(servers) && servers.length) {\n result.servers = servers.map((s) => this.server(s, objectContext))\n }\n const security = object[this._getAmfKey(ns.aml.vocabularies.security.security, objectContext) as keyof IAmfApi] as\n | IAmfSecurityRequirement[]\n | undefined\n if (Array.isArray(security) && security.length) {\n result.security = security.map((s) => this.securityRequirement(s, objectContext))\n }\n return result\n }\n\n webApi(object: IAmfWebApi, context?: Record<string, string>): IApiWeb {\n return this.api(object, context)\n }\n\n asyncApi(object: IAmfAsyncApi, context?: Record<string, string>): IApiAsync {\n return this.api(object, context)\n }\n\n provider(object: IAmfOrganization, context?: Record<string, string>): IApiOrganization {\n const objectContext = context || object['@context']\n const result: IApiOrganization = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const url = this._getLinkValue(object, ns.aml.vocabularies.core.url, objectContext)\n if (url && typeof url === 'string') {\n result.url = url\n }\n const email = this._getValue(object, ns.aml.vocabularies.core.email, objectContext)\n if (email && typeof email === 'string') {\n result.email = email\n }\n return result\n }\n\n license(object: IAmfLicense, context?: Record<string, string>): IApiLicense {\n const objectContext = context || object['@context']\n const result: IApiLicense = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const url = this._getLinkValue(object, ns.aml.vocabularies.core.url, objectContext)\n if (url && typeof url === 'string') {\n result.url = url\n }\n return result\n }\n\n /**\n * @param object The AMF Server to serialize.\n * @returns Serialized Server\n */\n server(object: IAmfServer, context?: Record<string, string>): IApiServer {\n const objectContext = context || object['@context']\n\n const url = (this._getValue(object, ns.aml.vocabularies.core.urlTemplate, objectContext) as string) || ''\n const result: IApiServer = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n url,\n variables: [],\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const variables = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.variable, objectContext) as keyof IAmfServer\n ] as IAmfParameter[]\n if (Array.isArray(variables) && variables.length) {\n result.variables = variables.map((p) => this.parameter(p, objectContext))\n }\n const protocol = this._getValue(object, ns.aml.vocabularies.apiContract.protocol, objectContext) as string\n const protocolVersion = this._getValue(\n object,\n ns.aml.vocabularies.apiContract.protocolVersion,\n objectContext\n ) as string\n if (protocol) {\n result.protocol = protocol\n }\n if (protocolVersion) {\n result.protocolVersion = protocolVersion\n }\n const security = object[\n this._getAmfKey(ns.aml.vocabularies.security.security, objectContext) as keyof IAmfServer\n ] as IAmfSecurityRequirement[]\n if (Array.isArray(security) && security.length) {\n result.security = security.map((p) => this.securityRequirement(p, objectContext))\n }\n return result\n }\n\n /**\n * @param object The Parameter to serialize.\n * @returns Serialized Parameter\n */\n parameter(object: IAmfParameter, context?: Record<string, string>): IApiParameter {\n const objectContext = context || object['@context']\n const result: IApiParameter = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n payloads: [],\n examples: [],\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const paramName = this._getValue(object, ns.aml.vocabularies.apiContract.paramName, objectContext)\n if (paramName && typeof paramName === 'string') {\n result.paramName = paramName\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const required = this._getValue(object, ns.aml.vocabularies.apiContract.required, objectContext)\n if (typeof required === 'boolean') {\n result.required = required\n }\n const allowEmptyValue = this._getValue(object, ns.aml.vocabularies.apiContract.allowEmptyValue, objectContext)\n if (typeof allowEmptyValue === 'boolean') {\n result.allowEmptyValue = allowEmptyValue\n }\n const deprecated = this._getValue(object, ns.aml.vocabularies.document.deprecated, objectContext)\n if (typeof deprecated === 'boolean') {\n result.deprecated = deprecated\n }\n const explode = this._getValue(object, ns.aml.vocabularies.apiContract.explode, objectContext)\n if (typeof explode === 'boolean') {\n result.explode = explode\n }\n const allowReserved = this._getValue(object, ns.aml.vocabularies.apiContract.allowReserved, objectContext)\n if (typeof allowReserved === 'boolean') {\n result.allowReserved = allowReserved\n }\n const style = this._getValue(object, ns.aml.vocabularies.apiContract.style, objectContext)\n if (style && typeof style === 'string') {\n result.style = style\n }\n const binding = this._getValue(object, ns.aml.vocabularies.apiContract.binding, objectContext)\n if (binding && typeof binding === 'string') {\n result.binding = binding\n }\n const schemas = object[\n this._getAmfKey(ns.aml.vocabularies.shapes.schema, objectContext) as keyof IAmfParameter\n ] as IAmfShape[]\n if (Array.isArray(schemas) && schemas.length) {\n const [schema] = schemas\n result.schema = this.unknownShape(\n schema,\n {\n trackedId: object['@id'],\n },\n objectContext\n )\n }\n const payloads = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.payload, objectContext) as keyof IAmfParameter\n ] as IAmfPayload[]\n if (Array.isArray(payloads) && payloads.length) {\n result.payloads = payloads.map((p) => this.payload(p, objectContext))\n }\n const examples = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.examples, objectContext) as keyof IAmfParameter\n ] as IAmfParameter[]\n if (Array.isArray(examples) && examples.length) {\n result.examples = examples.map((e) => this.example(e, objectContext))\n }\n return result\n }\n\n unknownShape(object: IAmfShape, options?: IShapeProcessingOptions, context?: Record<string, string>): IShapeUnion {\n const objectContext = context || object['@context']\n const types = this.readTypes(object['@type'], objectContext)\n\n if (types.includes(ns.aml.vocabularies.shapes.ScalarShape)) {\n return this.scalarShape(object as IAmfScalarShape, options, objectContext)\n }\n if (types.includes(ns.w3.shacl.NodeShape)) {\n return this.nodeShape(object as IAmfNodeShape, options, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.shapes.UnionShape)) {\n return this.unionShape(object as IAmfUnionShape, options, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.shapes.FileShape)) {\n return this.fileShape(object as IAmfFileShape, options, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.shapes.SchemaShape)) {\n return this.schemaShape(object as IAmfSchemaShape, options, objectContext)\n }\n // this must be before the ArrayShape\n if (types.includes(ns.aml.vocabularies.shapes.TupleShape)) {\n return this.tupleShape(object as IAmfTupleShape, options, objectContext)\n }\n if (\n types.includes(ns.aml.vocabularies.shapes.ArrayShape) ||\n types.includes(ns.aml.vocabularies.shapes.MatrixShape)\n ) {\n return this.arrayShape(object as IAmfArrayShape, options, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.shapes.RecursiveShape)) {\n return this.recursiveShape(object as IAmfRecursiveShape, objectContext)\n }\n // recursiveShape\n return this.anyShape(object as IAmfAnyShape, options, objectContext)\n }\n\n isLink(object: IAmfDomainElement, context?: Record<string, string>): boolean {\n const objectContext = context || object['@context']\n return !!this._getLinkValue(object, ns.aml.vocabularies.document.linkTarget, objectContext)\n }\n\n getLinkTarget<T extends IAmfDomainElement>(object: T, context?: Record<string, string>): T | undefined {\n const objectContext = context || object['@context']\n const id = this._getLinkValue(object, ns.aml.vocabularies.document.linkTarget, objectContext)\n if (!id) {\n return undefined\n }\n return this[findAmfType](id, objectContext) as T | undefined\n }\n\n shape(object: IAmfShape, context?: Record<string, string>): IApiShape {\n const objectContext = context || object['@context']\n this._resolve(object)\n let linkLabel: string | undefined\n let target = object\n if (this.isLink(target)) {\n linkLabel = this._getValue(target, ns.aml.vocabularies.document.linkLabel, objectContext) as string\n const id = this._getLinkValue(target, ns.aml.vocabularies.document.linkTarget, objectContext)\n const value = this[findAmfType](id, objectContext) as IAmfShape | undefined\n if (value) {\n target = value\n }\n }\n const result: IApiShape = {\n id: target['@id'],\n types: this.readTypes(object['@type'], objectContext),\n values: [],\n inherits: [],\n or: [],\n and: [],\n xone: [],\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n if (linkLabel) {\n result.linkLabel = linkLabel\n }\n\n const name = this._getValue(target, ns.w3.shacl.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const displayName = this._getValue(target, ns.aml.vocabularies.core.displayName, objectContext)\n if (displayName && typeof displayName === 'string') {\n result.displayName = displayName\n } else {\n const coreName = this._getValue(target, ns.aml.vocabularies.core.name, objectContext)\n if (coreName && typeof coreName === 'string') {\n result.displayName = coreName\n }\n }\n const description = this._getValue(target, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const defaultValueStr = this._getValue(target, ns.w3.shacl.defaultValueStr, objectContext)\n if (defaultValueStr && typeof defaultValueStr === 'string') {\n result.defaultValueStr = defaultValueStr\n }\n const deprecated = this._getValue(target, ns.aml.vocabularies.shapes.deprecated, objectContext)\n if (typeof deprecated === 'boolean') {\n result.deprecated = deprecated\n }\n const readOnly = this._getValue(target, ns.aml.vocabularies.shapes.readOnly, objectContext)\n if (typeof readOnly === 'boolean') {\n result.readOnly = readOnly\n }\n const writeOnly = this._getValue(target, ns.aml.vocabularies.shapes.writeOnly, objectContext)\n if (typeof writeOnly === 'boolean') {\n result.writeOnly = writeOnly\n }\n const defValue = target[this._getAmfKey(ns.w3.shacl.defaultValue, objectContext) as keyof IAmfShape]\n if (Array.isArray(defValue) && defValue.length) {\n result.defaultValue = this.unknownDataNode(defValue[0] as IAmfDataNode, objectContext)\n }\n // @TODO:\n // if (Array.isArray(inherits) && inherits.length) {\n // result.inherits = inherits.map((item) => this.unknownShape(item));\n // }\n const orKey = this._getAmfKey(ns.w3.shacl.or, objectContext) as keyof IAmfShape\n const orGroup = target[orKey] as IAmfShape[]\n if (Array.isArray(orGroup) && orGroup.length) {\n result.or = orGroup.map((item) => this.unknownShape(item, undefined, objectContext))\n }\n const andKey = this._getAmfKey(ns.w3.shacl.and, objectContext) as keyof IAmfShape\n const andGroup = target[andKey] as IAmfShape[]\n if (Array.isArray(andGroup) && andGroup.length) {\n result.and = andGroup.map((item) => this.unknownShape(item, undefined, objectContext))\n }\n const xoneKey = this._getAmfKey(ns.w3.shacl.xone, objectContext) as keyof IAmfShape\n const xone = target[xoneKey] as IAmfShape[]\n if (Array.isArray(xone) && xone.length) {\n result.xone = xone.map((item) => this.unknownShape(item, undefined, objectContext))\n }\n\n const valuesList = target[this._getAmfKey(ns.w3.shacl.in, objectContext) as keyof IAmfShape]\n if (Array.isArray(valuesList) && valuesList.length) {\n const [values] = valuesList\n const prefix = ns.w3.rdfSchema.key\n const prefixCompact = this._getAmfKey(prefix, objectContext) as string\n Object.keys(values).forEach((key) => {\n if (key.startsWith(prefix) || key.startsWith(prefixCompact)) {\n let value = (values as unknown as Record<string, IAmfDataNode>)[key]\n if (Array.isArray(value)) {\n ;[value] = value\n }\n const processed = this.unknownDataNode(value, objectContext)\n if (processed) {\n result.values.push(processed)\n }\n }\n })\n }\n const notKey = this._getAmfKey(ns.w3.shacl.not, objectContext) as keyof IAmfShape\n let not = target[notKey] as IAmfShape | undefined\n if (not) {\n if (Array.isArray(not)) {\n ;[not] = not\n }\n result.not = this.unknownShape(not as IAmfShape, undefined, objectContext)\n }\n return result\n }\n\n anyShape(\n object: IAmfAnyShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiAnyShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.shape(target, objectContext) as IApiAnyShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext) as IAmfShape | undefined\n if (value) {\n target = value\n }\n }\n result.examples = []\n const examples = target[\n this._getAmfKey(ns.aml.vocabularies.apiContract.examples, objectContext) as keyof IAmfAnyShape\n ] as IAmfExample[]\n\n if (Array.isArray(examples) && examples.length) {\n if (options.trackedId) {\n const filtered = this.filterTrackedExamples(examples, options.trackedId, objectContext)\n result.examples = filtered.map((item) => this.example(item, objectContext))\n } else {\n const filtered = this.filterNonTrackedExamples(examples, objectContext)\n result.examples = filtered.map((item) => this.example(item, objectContext))\n }\n }\n const docs = target[\n this._getAmfKey(ns.aml.vocabularies.core.documentation, objectContext) as keyof IAmfAnyShape\n ] as IAmfCreativeWork[] | undefined\n if (Array.isArray(docs) && docs.length) {\n const [documentation] = docs\n result.documentation = this.documentation(documentation, objectContext)\n }\n const xml = target[\n this._getAmfKey(ns.aml.vocabularies.shapes.xmlSerialization, objectContext) as keyof IAmfAnyShape\n ] as IAmfXMLSerializer[] | undefined\n if (Array.isArray(xml) && xml.length) {\n result.xmlSerialization = this.xmlSerializer(xml[0] as IAmfXMLSerializer, objectContext)\n }\n return result\n }\n\n /**\n * Filters examples that should be rendered for a payload identified by `trackedId`.\n *\n * This function is copied from old `api-example-generator/ExampleGenerator`.\n */\n filterTrackedExamples(examples: IAmfExample[], trackedId: string, context?: Record<string, string>): IAmfExample[] {\n const { docSourceMaps } = ns.aml.vocabularies\n const sourceKey = this._getAmfKey(docSourceMaps.sources, context) as keyof IAmfExample\n const trackedKey = this._getAmfKey(docSourceMaps.trackedElement, context) as keyof IAmfDocumentSourceMaps\n const longId = trackedId.indexOf('amf') === -1 ? `amf://id${trackedId}` : trackedId\n return examples.filter((item) => {\n let example = item\n if (Array.isArray(example)) {\n ;[example] = example\n }\n let sm = example[sourceKey] as IAmfDocumentSourceMaps[] | IAmfDocumentSourceMaps | undefined\n if (!sm) {\n return true\n }\n if (Array.isArray(sm)) {\n ;[sm] = sm\n }\n let tracked = sm[trackedKey] as IAmfSynthesizedField[] | IAmfSynthesizedField | undefined\n if (!tracked) {\n return true\n }\n if (Array.isArray(tracked)) {\n ;[tracked] = tracked\n }\n const { value } = this.synthesizedField(tracked, context)\n if (!value) {\n return true\n }\n const ids = value.split(',')\n if (ids.indexOf(longId) !== -1 || ids.indexOf(trackedId) !== -1) {\n return true\n }\n return false\n })\n }\n\n /**\n * Kind of the opposite of the `filterTrackedExamples`. It gathers examples that only have been\n * defined for the parent Shape (ed in the type declaration). It filters out all examples\n * defined in a payload.\n */\n filterNonTrackedExamples(examples: IAmfExample[], context?: Record<string, string>): IAmfExample[] {\n const { docSourceMaps } = ns.aml.vocabularies\n const sourceKey = this._getAmfKey(docSourceMaps.sources, context) as keyof IAmfExample\n const trackedKey = this._getAmfKey(docSourceMaps.trackedElement, context) as keyof IAmfDocumentSourceMaps\n return examples.filter((item) => {\n let example = item\n if (Array.isArray(example)) {\n ;[example] = example\n }\n let sm = example[sourceKey] as IAmfDocumentSourceMaps[] | IAmfDocumentSourceMaps | undefined\n if (!sm) {\n return true\n }\n if (Array.isArray(sm)) {\n ;[sm] = sm\n }\n let tracked = sm[trackedKey] as IAmfSynthesizedField[] | IAmfSynthesizedField | undefined\n if (!tracked) {\n return true\n }\n if (Array.isArray(tracked)) {\n ;[tracked] = tracked\n }\n const { value } = this.synthesizedField(tracked, context)\n if (!value) {\n return true\n }\n return false\n })\n }\n\n scalarShape(\n object: IAmfScalarShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiScalarShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.anyShape(target, options, objectContext) as IApiScalarShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext) as IAmfScalarShape | undefined\n if (value) {\n target = value\n }\n }\n\n const pattern = this._getValue(target, ns.w3.shacl.pattern, objectContext)\n if (pattern && typeof pattern === 'string') {\n result.pattern = pattern\n }\n const dataType = this._getLinkValue(target, ns.w3.shacl.datatype, objectContext)\n if (dataType && typeof dataType === 'string') {\n result.dataType = dataType\n }\n const format = this._getValue(target, ns.aml.vocabularies.shapes.format, objectContext)\n if (format && typeof format === 'string') {\n result.format = format\n }\n const multipleOf = this._getValue(target, ns.aml.vocabularies.shapes.multipleOf, objectContext)\n if (typeof multipleOf === 'number') {\n result.multipleOf = multipleOf\n }\n const minInclusive = this._getValue(target, ns.w3.shacl.minInclusive, objectContext)\n if (typeof minInclusive === 'number') {\n result.minimum = minInclusive\n result.exclusiveMinimum = false\n }\n const maxInclusive = this._getValue(target, ns.w3.shacl.maxInclusive, objectContext)\n if (typeof maxInclusive === 'number') {\n result.maximum = maxInclusive\n result.exclusiveMaximum = false\n }\n const minLength = this._getValue(target, ns.w3.shacl.minLength, objectContext)\n if (typeof minLength === 'number') {\n result.minLength = minLength\n }\n const maxLength = this._getValue(target, ns.w3.shacl.maxLength, objectContext)\n if (typeof maxLength === 'number') {\n result.maxLength = maxLength\n }\n return result\n }\n\n nodeShape(\n object: IAmfNodeShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiNodeShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.anyShape(target, options, objectContext) as IApiNodeShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const discriminator = this._getValue(target, ns.aml.vocabularies.shapes.discriminator, objectContext)\n if (discriminator && typeof discriminator === 'string') {\n result.discriminator = discriminator\n }\n const discriminatorValue = this._getValue(target, ns.aml.vocabularies.shapes.discriminatorValue, objectContext)\n if (discriminatorValue && typeof discriminatorValue === 'string') {\n result.discriminatorValue = discriminatorValue\n }\n const closed = this._getValue(target, ns.w3.shacl.closed, objectContext)\n if (typeof closed === 'boolean') {\n result.closed = closed\n }\n\n result.customShapeProperties = []\n result.customShapePropertyDefinitions = []\n result.dependencies = []\n // todo: not sure what the keys are.\n // if (!minProperties.isNull) {\n // result.minProperties = minProperties.value();\n // }\n // if (!maxProperties.isNull) {\n // result.maxProperties = maxProperties.value();\n // }\n // if (Array.isArray(customShapeProperties) && customShapeProperties.length) {\n // result.customShapeProperties = customShapeProperties.map((item) => item.id);\n // } else {\n // result.customShapeProperties = [];\n // }\n // if (Array.isArray(customShapePropertyDefinitions) && customShapePropertyDefinitions.length) {\n // result.customShapePropertyDefinitions = customShapePropertyDefinitions.map((item) => item.id);\n // } else {\n // result.customShapePropertyDefinitions = [];\n // }\n const properties = target[\n this._getAmfKey(ns.w3.shacl.property, objectContext) as keyof IAmfNodeShape\n ] as IAmfPropertyShape[]\n if (Array.isArray(properties) && properties.length) {\n result.properties = properties.map((item) => this.propertyShape(item, objectContext))\n } else {\n result.properties = []\n }\n // if (Array.isArray(dependencies) && dependencies.length) {\n // result.dependencies = dependencies.map((item) => item.id);\n // } else {\n // result.dependencies = [];\n // }\n return result\n }\n\n propertyShape(object: IAmfPropertyShape, context?: Record<string, string>): IApiPropertyShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.shape(target, objectContext) as IApiPropertyShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const path = this._getLinkValue(target, ns.w3.shacl.path, objectContext)\n if (path && typeof path === 'string') {\n result.path = path\n }\n const minCount = this._getValue(target, ns.w3.shacl.minCount, objectContext)\n if (typeof minCount === 'number') {\n result.minCount = minCount\n }\n const maxCount = this._getValue(target, ns.w3.shacl.maxCount, objectContext)\n if (typeof maxCount === 'number') {\n result.maxCount = maxCount\n }\n // if (!patternName.isNullOrEmpty) {\n // result.patternName = patternName.value();\n // }\n\n const ranges = target[\n this._getAmfKey(ns.aml.vocabularies.shapes.range, objectContext) as keyof IAmfPropertyShape\n ] as IAmfShape[]\n if (Array.isArray(ranges) && ranges.length) {\n const [range] = ranges\n result.range = this.unknownShape(range, undefined, objectContext)\n }\n return result\n }\n\n unionShape(\n object: IAmfUnionShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiUnionShape {\n const objectContext = context || object['@context']\n const anyOf = object[\n this._getAmfKey(ns.aml.vocabularies.shapes.anyOf, objectContext) as keyof IAmfUnionShape\n ] as IAmfShape[]\n const result = this.anyShape(object, options, objectContext) as IApiUnionShape\n if (Array.isArray(anyOf) && anyOf.length) {\n const opt = { ...options, trackedId: undefined }\n result.anyOf = anyOf.map((shape) => this.unknownShape(shape, opt, objectContext))\n } else {\n result.anyOf = []\n }\n return result\n }\n\n fileShape(\n object: IAmfFileShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiFileShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.anyShape(target, options, objectContext) as IApiFileShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const pattern = this._getValue(target, ns.w3.shacl.pattern, objectContext)\n if (pattern && typeof pattern === 'string') {\n result.pattern = pattern\n }\n const fileTypes = this._getValueArray(target, ns.aml.vocabularies.shapes.fileType, objectContext) as\n | string[]\n | undefined\n if (Array.isArray(fileTypes) && fileTypes.length) {\n result.fileTypes = fileTypes\n }\n const minLength = this._getValue(target, ns.w3.shacl.minLength, objectContext)\n if (typeof minLength === 'number') {\n result.minLength = minLength\n }\n const maxLength = this._getValue(target, ns.w3.shacl.maxLength, objectContext)\n if (typeof maxLength === 'number') {\n result.maxLength = maxLength\n }\n const minInclusive = this._getValue(target, ns.w3.shacl.minInclusive, objectContext)\n if (typeof minInclusive === 'number') {\n result.minimum = minInclusive\n result.exclusiveMinimum = false\n }\n const maxInclusive = this._getValue(target, ns.w3.shacl.maxInclusive, objectContext)\n if (typeof maxInclusive === 'number') {\n result.maximum = maxInclusive\n result.exclusiveMaximum = false\n }\n const format = this._getValue(target, ns.aml.vocabularies.shapes.format, objectContext)\n if (format && typeof format === 'string') {\n result.format = format\n }\n const multipleOf = this._getValue(target, ns.aml.vocabularies.shapes.multipleOf, objectContext)\n if (typeof multipleOf === 'number') {\n result.multipleOf = multipleOf\n }\n return result\n }\n\n schemaShape(\n object: IAmfSchemaShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiSchemaShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.anyShape(target, options, objectContext) as IApiSchemaShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const mediaType = this._getValue(target, ns.aml.vocabularies.core.mediaType, objectContext)\n if (mediaType && typeof mediaType === 'string') {\n result.mediaType = mediaType\n }\n const raw = this._getValue(target, ns.aml.vocabularies.document.raw, objectContext)\n if (raw && typeof raw === 'string') {\n result.raw = raw\n }\n return result\n }\n\n recursiveShape(object: IAmfRecursiveShape, context?: Record<string, string>): IApiRecursiveShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.shape(target, objectContext) as IApiRecursiveShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const fp = this._getLinkValue(object, ns.aml.vocabularies.shapes.fixPoint, objectContext)\n if (fp && typeof fp === 'string') {\n result.fixPoint = fp\n }\n return result\n }\n\n dataArrangeShape(\n object: IAmfDataArrangeShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiDataArrangeShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.anyShape(target, options, objectContext) as IApiDataArrangeShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n //\n // const { minItems, maxItems, uniqueItems } = object;\n // if (!minItems.isNull) {\n // result.minItems = minItems.value();\n // }\n // if (!maxItems.isNull) {\n // result.maxItems = maxItems.value();\n // }\n // if (!uniqueItems.isNull) {\n // result.uniqueItems = uniqueItems.value();\n // }\n return result\n }\n\n arrayShape(\n object: IAmfArrayShape,\n options: IShapeProcessingOptions = {},\n context?: Record<string, string>\n ): IApiArrayShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.dataArrangeShape(target, options, objectContext) as IApiArrayShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n\n const items = target[this._getAmfKey(ns.aml.vocabularies.shapes.items, objectContext) as keyof IAmfArrayShape] as\n | IAmfShape[]\n | undefined\n if (Array.isArray(items) && items.length) {\n const [item] = items\n result.items = this.unknownShape(item, undefined, objectContext)\n }\n return result\n }\n\n tupleShape(\n object: IAmfTupleShape,\n options?: IShapeProcessingOptions,\n context?: Record<string, string>\n ): IApiTupleShape {\n const objectContext = context || object['@context']\n let target = object\n const result = this.dataArrangeShape(target, options, objectContext) as IApiTupleShape\n if (this.isLink(target)) {\n const value = this.getLinkTarget(target, objectContext)\n if (value) {\n target = value\n }\n }\n const items = target[this._getAmfKey(ns.aml.vocabularies.shapes.items, objectContext) as keyof IAmfTupleShape] as\n | IAmfShape[]\n | undefined\n const prefix = this._getAmfKey(ns.w3.rdfSchema.key, objectContext) as string\n if (Array.isArray(items) && items.length) {\n result.items = []\n items.forEach((item) => {\n if (Array.isArray(item)) {\n ;[item] = item\n }\n Object.keys(item)\n .filter((k) => k.startsWith(prefix))\n .forEach((key) => {\n let shape = (item as unknown as Record<string, IAmfShape | IAmfShape[] | undefined>)[\n key as keyof IAmfShape\n ] as IAmfShape\n if (Array.isArray(shape)) {\n ;[shape] = shape\n }\n const value = this.unknownShape(shape, undefined, objectContext)\n result.items.push(value)\n })\n })\n } else {\n result.items = []\n }\n return result\n }\n\n /**\n * @param object The CreativeWork to serialize.\n * @returns Serialized CreativeWork\n */\n documentation(object: IAmfCreativeWork, context?: Record<string, string>): IApiDocumentation {\n const objectContext = context || object['@context']\n const result: IApiDocumentation = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n const url = this._getLinkValue(object, ns.aml.vocabularies.core.url, objectContext)\n if (url && typeof url === 'string') {\n result.url = url\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const title = this._getValue(object, ns.aml.vocabularies.core.title, objectContext)\n if (title && typeof title === 'string') {\n result.title = title\n }\n return result\n }\n\n /**\n * @param object The Example to serialize.\n * @returns Serialized Example\n */\n example(object: IAmfExample, context?: Record<string, string>): IApiDataExample {\n const objectContext = context || object['@context']\n this._resolve(object)\n const result: IApiDataExample = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n strict: false,\n }\n\n const strict = this._getValue(object, ns.aml.vocabularies.document.strict, objectContext)\n if (typeof strict === 'boolean') {\n result.strict = strict\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const displayName = this._getValue(object, ns.aml.vocabularies.core.displayName, objectContext)\n if (displayName && typeof displayName === 'string') {\n result.displayName = displayName\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const raw = this._getValue(object, ns.aml.vocabularies.document.raw, objectContext)\n if (raw && typeof raw === 'string') {\n result.value = raw\n }\n const location = this._getValue(object, ns.aml.vocabularies.document.location, objectContext)\n if (location && typeof location === 'string') {\n result.location = location\n }\n // if (!mediaType.isNullOrEmpty) {\n // result.mediaType = mediaType.value();\n // }\n const structuredValue = object[\n this._getAmfKey(ns.aml.vocabularies.document.structuredValue, objectContext) as keyof IAmfExample\n ] as IAmfDataNode[] | undefined\n if (Array.isArray(structuredValue) && structuredValue.length) {\n const [value] = structuredValue\n result.structuredValue = this.unknownDataNode(value, objectContext)\n }\n return result\n }\n\n xmlSerializer(object: IAmfXMLSerializer, context?: Record<string, string>): IApiXmlSerializer {\n const objectContext = context || object['@context']\n const result: IApiXmlSerializer = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const xmlAttribute = this._getValue(object, ns.aml.vocabularies.shapes.xmlAttribute, objectContext)\n if (typeof xmlAttribute === 'boolean') {\n result.attribute = xmlAttribute\n }\n const wrapped = this._getValue(object, ns.aml.vocabularies.shapes.xmlWrapped, objectContext)\n if (typeof wrapped === 'boolean') {\n result.wrapped = wrapped\n }\n const name = this._getValue(object, ns.aml.vocabularies.shapes.xmlName, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const xmlNs = this._getValue(object, ns.aml.vocabularies.shapes.xmlNamespace, objectContext)\n if (xmlNs && typeof xmlNs === 'string') {\n result.namespace = xmlNs\n }\n const xmlPrefix = this._getValue(object, ns.aml.vocabularies.shapes.xmlPrefix, objectContext)\n if (xmlPrefix && typeof xmlPrefix === 'string') {\n result.prefix = xmlPrefix\n }\n return result\n }\n\n unknownDataNode(object: IAmfDataNode, context?: Record<string, string>): IApiDataNodeUnion | undefined {\n const types = this.readTypes(object['@type'], context)\n\n if (types.includes(ns.aml.vocabularies.data.Scalar)) {\n return this.scalarNode(object as IAmfScalarNode, context)\n }\n if (types.includes(ns.aml.vocabularies.data.Object)) {\n return this.objectNode(object as IAmfObjectNode, context)\n }\n if (types.includes(ns.aml.vocabularies.data.Array)) {\n return this.arrayNode(object as IAmfArrayNode, context)\n }\n return undefined\n }\n\n dataNode(object: IAmfDataNode, context?: Record<string, string>): IApiDataNode {\n const result: IApiDataNode = {\n id: object['@id'],\n types: this.readTypes(object['@type'], context),\n customDomainProperties: this.customDomainProperties(object, context),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, context)\n if (name && typeof name === 'string') {\n result.name = name\n }\n return result\n }\n\n scalarNode(object: IAmfScalarNode, context?: Record<string, string>): IApiScalarNode {\n const objectContext = context || object['@context']\n const result = this.dataNode(object, context) as IApiScalarNode\n\n const value = this._getValue(object, ns.aml.vocabularies.data.value, objectContext)\n if (value && typeof value === 'string') {\n result.value = value\n }\n const dataType = this._getLinkValue(object, ns.w3.shacl.datatype, objectContext)\n if (dataType && typeof dataType === 'string') {\n result.dataType = dataType\n }\n return result\n }\n\n objectNode(object: IAmfObjectNode, context?: Record<string, string>): IApiObjectNode {\n const objectContext = context || object['@context']\n const result = this.dataNode(object, context) as IApiObjectNode\n result.properties = {}\n const prefix = ns.aml.vocabularies.data.key\n const prefixCompact = `${this._getAmfKey(prefix, objectContext)}:`\n Object.keys(object).forEach((key) => {\n if (key.startsWith(prefix) || key.startsWith(prefixCompact)) {\n let value = object[key as keyof IAmfObjectNode] as IAmfDataNode | undefined\n if (Array.isArray(value)) {\n ;[value] = value\n }\n const name = key.replace(prefix, '').replace(prefixCompact, '')\n const nodeValue = this.unknownDataNode(value as IAmfDataNode, context)\n if (nodeValue) {\n result.properties[name] = nodeValue\n }\n }\n })\n return result\n }\n\n arrayNode(object: IAmfArrayNode, context?: Record<string, string>): IApiArrayNode {\n const objectContext = context || object['@context']\n const result = this.dataNode(object, objectContext) as IApiArrayNode\n result.members = []\n const members = this._computePropertyArray(object, ns.w3.rdfSchema.member) as IAmfDataNode[]\n if (Array.isArray(members) && members.length) {\n members.forEach((n) => {\n const item = this.unknownDataNode(n)\n if (item) {\n result.members.push(item)\n }\n })\n }\n return result\n }\n\n /**\n * Adds the custom domain properties to the currently processed property, a.k.a annotations.\n * @returns The list of custom domain properties.\n */\n customDomainProperties(object: IAmfDomainElement, context?: Record<string, string>): IApiCustomDomainProperty[] {\n const result: IApiCustomDomainProperty[] = []\n const objectContext = context || object['@context']\n const ids = this._getLinkValues(object, ns.aml.vocabularies.document.customDomainProperties, objectContext)\n if (Array.isArray(ids) && ids.length) {\n ids.forEach((id) => {\n const key = `amf://id${id}`\n let value = (object[id as keyof IAmfDomainElement] || object[key as keyof IAmfDomainElement]) as\n | IAmfDomainElement[]\n | IAmfDomainElement\n | undefined\n if (!value) {\n return\n }\n if (Array.isArray(value)) {\n ;[value] = value\n }\n const extension = this.unknownDataNode(value, objectContext)\n const name = this._getValue(value, ns.aml.vocabularies.core.extensionName, objectContext) as string | undefined\n if (!name || !extension) {\n return\n }\n const cdp: IApiCustomDomainProperty = {\n id: key,\n name,\n extension,\n }\n result.push(cdp)\n })\n }\n return result\n }\n\n endPoint(object: IAmfEndPoint, context?: Record<string, string>): IApiEndPoint {\n const objectContext = context || object['@context']\n const result: IApiEndPoint = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object),\n path: '',\n operations: [],\n parameters: [],\n payloads: [],\n servers: [],\n security: [],\n extends: [],\n }\n\n const path = this._getValue(object, ns.aml.vocabularies.apiContract.path, objectContext)\n if (path && typeof path === 'string') {\n result.path = path\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const summary = this._getValue(object, ns.aml.vocabularies.core.summary, objectContext)\n if (summary && typeof summary === 'string') {\n result.summary = summary\n }\n const operations = this[getArrayItems](object, ns.aml.vocabularies.apiContract.supportedOperation, objectContext)\n if (Array.isArray(operations) && operations.length) {\n result.operations = operations.map((i) => this.operation(i as IAmfOperation, objectContext))\n }\n const parameters = this[getArrayItems](object, ns.aml.vocabularies.apiContract.parameter, objectContext)\n if (Array.isArray(parameters) && parameters.length) {\n result.parameters = parameters.map((i) => this.parameter(i, objectContext))\n }\n const payloads = this[getArrayItems](object, ns.aml.vocabularies.apiContract.payload, objectContext)\n if (Array.isArray(payloads) && payloads.length) {\n result.payloads = payloads.map((i) => this.payload(/** @type IAmfPayload */ i as IAmfPayload, objectContext))\n }\n const servers = this[getArrayItems](object, ns.aml.vocabularies.apiContract.server, objectContext)\n if (Array.isArray(servers) && servers.length) {\n result.servers = servers.map((i) => this.server(i, objectContext))\n }\n const security = this[getArrayItems](object, ns.aml.vocabularies.security.security, objectContext)\n if (Array.isArray(security) && security.length) {\n result.security = security.map((i) => this.securityRequirement(i, objectContext))\n }\n const extensions = this[getArrayItems](object, ns.aml.vocabularies.document.extends, objectContext)\n if (Array.isArray(extensions) && extensions.length) {\n result.extends = []\n extensions.forEach((ex) => {\n let extension = ex\n if (Array.isArray(extension)) {\n ;[extension] = extension\n }\n if (this._hasType(extension, ns.aml.vocabularies.apiContract.ParametrizedResourceType, objectContext)) {\n result.extends.push(this.parametrizedResourceType(extension, objectContext))\n } else if (this._hasType(extension, ns.aml.vocabularies.apiContract.ParametrizedTrait, objectContext)) {\n result.extends.push(this.parametrizedTrait(extension, objectContext))\n }\n })\n }\n return result\n }\n\n operation(object: IAmfOperation, context?: Record<string, string>): IApiOperation {\n const objectContext = context || object['@context']\n const result: IApiOperation = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object),\n method: '',\n deprecated: false,\n callbacks: [],\n responses: [],\n servers: [],\n security: [],\n accepts: [],\n schemes: [],\n contentType: [],\n tags: [],\n extends: [],\n }\n\n const method = this._getValue(object, ns.aml.vocabularies.apiContract.method, objectContext)\n if (method && typeof method === 'string') {\n result.method = method\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const summary = this._getValue(object, ns.aml.vocabularies.apiContract.guiSummary, objectContext)\n if (summary && typeof summary === 'string') {\n result.summary = summary\n }\n const deprecated = this._getValue(object, ns.aml.vocabularies.core.deprecated, objectContext)\n if (typeof deprecated === 'boolean') {\n result.deprecated = deprecated\n }\n const operationId = this._getValue(object, ns.aml.vocabularies.apiContract.operationId, objectContext)\n if (operationId && typeof operationId === 'string') {\n result.operationId = operationId\n }\n const accepts = this._getValueArray(object, ns.aml.vocabularies.apiContract.accepts, objectContext) as string[]\n if (Array.isArray(accepts)) {\n result.accepts = accepts\n }\n const schemes = this._getValueArray(object, ns.aml.vocabularies.apiContract.scheme, objectContext) as string[]\n if (Array.isArray(schemes)) {\n result.schemes = schemes\n }\n const contentType = this._getValueArray(\n object,\n ns.aml.vocabularies.apiContract.contentType,\n objectContext\n ) as string[]\n if (Array.isArray(contentType)) {\n result.contentType = contentType\n }\n\n let expects = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.expects, objectContext) as keyof IAmfOperation\n ] as IAmfRequest[] | IAmfRequest | undefined\n if (expects) {\n if (Array.isArray(expects)) {\n ;[expects] = expects\n }\n result.request = this.request(expects, objectContext)\n }\n let documentation = object[\n this._getAmfKey(ns.aml.vocabularies.core.documentation, objectContext) as keyof IAmfOperation\n ] as IAmfCreativeWork[] | IAmfCreativeWork | undefined\n if (documentation) {\n if (Array.isArray(documentation)) {\n ;[documentation] = documentation\n }\n result.documentation = this.documentation(documentation, objectContext)\n }\n const responses = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.returns, objectContext) as keyof IAmfOperation\n ] as IAmfResponse[] | undefined\n if (Array.isArray(responses)) {\n result.responses = responses.map((r) => this.response(r, objectContext))\n }\n const callbacks = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.callback, objectContext) as keyof IAmfOperation\n ] as IAmfCallback[] | undefined\n if (Array.isArray(callbacks)) {\n result.callbacks = callbacks.map((c) => this.callback(c, objectContext))\n }\n const servers = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.server, objectContext) as keyof IAmfOperation\n ] as IAmfServer[] | undefined\n if (Array.isArray(servers)) {\n result.servers = servers.map((s) => this.server(s))\n }\n const security = object[\n this._getAmfKey(ns.aml.vocabularies.security.security, objectContext) as keyof IAmfOperation\n ] as IAmfSecurityRequirement[] | undefined\n if (Array.isArray(security)) {\n result.security = security.map((s) => this.securityRequirement(s, objectContext))\n }\n const tags = object[this._getAmfKey(ns.aml.vocabularies.apiContract.tag, objectContext) as keyof IAmfOperation] as\n | IAmfTag[]\n | undefined\n if (Array.isArray(tags) && tags.length) {\n result.tags = tags.map((s) => this.tag(s, objectContext))\n }\n const traits = object[\n this._getAmfKey(ns.aml.vocabularies.document.extends, objectContext) as keyof IAmfOperation\n ] as IAmfParametrizedTrait[] | undefined\n if (Array.isArray(traits) && traits.length) {\n result.extends = traits.map((t) => this.parametrizedTrait(t, objectContext))\n }\n return result\n }\n\n tag(object: IAmfTag, context?: Record<string, string>): IApiTag {\n const objectContext = context || object['@context']\n const result: IApiTag = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object),\n name: '',\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n return result\n }\n\n callback(object: IAmfCallback, context?: Record<string, string>): IApiCallback {\n const objectContext = context || object['@context']\n const result: IApiCallback = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const expression = this._getValue(object, ns.aml.vocabularies.apiContract.expression, objectContext)\n if (expression && typeof expression === 'string') {\n result.expression = expression\n }\n let endpoint = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.endpoint, objectContext) as keyof IAmfCallback\n ] as IAmfEndPoint[] | IAmfEndPoint | undefined\n if (endpoint) {\n if (Array.isArray(endpoint)) {\n ;[endpoint] = endpoint\n }\n result.endpoint = this.endPoint(endpoint, objectContext)\n }\n return result\n }\n\n request(object: IAmfRequest, context?: Record<string, string>): IApiRequest {\n const objectContext = context || object['@context']\n const result: IApiRequest = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object),\n required: false,\n headers: [],\n queryParameters: [],\n payloads: [],\n uriParameters: [],\n cookieParameters: [],\n }\n\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const required = this._getValue(object, ns.aml.vocabularies.apiContract.required, objectContext)\n if (required && typeof required === 'boolean') {\n result.required = required\n }\n let queryString = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.queryString, objectContext) as keyof IAmfRequest\n ] as IAmfShape[] | IAmfShape | undefined\n if (queryString) {\n if (Array.isArray(queryString)) {\n ;[queryString] = queryString\n }\n result.queryString = this.unknownShape(queryString, undefined, objectContext)\n }\n const headers = this[getArrayItems](object, ns.aml.vocabularies.apiContract.header, objectContext)\n if (Array.isArray(headers) && headers.length) {\n result.headers = headers.map((p) => this.parameter(p, objectContext))\n }\n const queryParameters = this[getArrayItems](object, ns.aml.vocabularies.apiContract.parameter, objectContext)\n if (Array.isArray(queryParameters) && queryParameters.length) {\n result.queryParameters = queryParameters.map((p) => this.parameter(p, objectContext))\n }\n const uriParameters = this[getArrayItems](object, ns.aml.vocabularies.apiContract.uriParameter, objectContext)\n if (Array.isArray(uriParameters) && uriParameters.length) {\n result.uriParameters = uriParameters.map((p) => this.parameter(p, objectContext))\n }\n const cookieParameters = this[getArrayItems](object, ns.aml.vocabularies.apiContract.cookieParameter, objectContext)\n if (Array.isArray(cookieParameters) && cookieParameters.length) {\n result.cookieParameters = cookieParameters.map((p) => this.parameter(p, objectContext))\n }\n const payloads = this[getArrayItems](object, ns.aml.vocabularies.apiContract.payload, objectContext) as\n | IAmfPayload[]\n | undefined\n if (Array.isArray(payloads) && payloads.length) {\n result.payloads = payloads.map((p) => this.payload(p, objectContext))\n }\n return result\n }\n\n response(object: IAmfResponse, context?: Record<string, string>): IApiResponse {\n const objectContext = context || object['@context']\n const result: IApiResponse = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n headers: [],\n payloads: [],\n examples: [],\n links: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const statusCode = this._getValue(object, ns.aml.vocabularies.apiContract.statusCode, objectContext)\n if (statusCode && typeof statusCode === 'string') {\n result.statusCode = statusCode\n }\n const headers = this[getArrayItems](object, ns.aml.vocabularies.apiContract.header, objectContext)\n if (Array.isArray(headers) && headers.length) {\n result.headers = headers.map((p) => this.parameter(p, objectContext))\n }\n const payloads = this[getArrayItems](object, ns.aml.vocabularies.apiContract.payload, objectContext) as\n | IAmfPayload[]\n | undefined\n if (Array.isArray(payloads) && payloads.length) {\n result.payloads = payloads.map((p) => this.payload(p, objectContext))\n }\n const examples = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.examples, objectContext) as keyof IAmfResponse\n ] as IAmfExample[] | undefined\n if (Array.isArray(examples) && examples.length) {\n result.examples = examples.map((e) => this.example(e, objectContext))\n }\n const links = object[this._getAmfKey(ns.aml.vocabularies.apiContract.link, objectContext) as keyof IAmfResponse] as\n | IAmfTemplatedLink[]\n | undefined\n if (Array.isArray(links) && links.length) {\n result.links = links.map((p) => this.templatedLink(p, objectContext))\n }\n return result\n }\n\n payload(object: IAmfPayload, context?: Record<string, string>): IApiPayload {\n const objectContext = context || object['@context']\n const result: IApiPayload = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n examples: [],\n // encoding: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const mediaType = this._getValue(object, ns.aml.vocabularies.core.mediaType, objectContext)\n if (mediaType && typeof mediaType === 'string') {\n result.mediaType = mediaType\n }\n let schema = object[this._getAmfKey(ns.aml.vocabularies.shapes.schema, objectContext) as keyof IAmfPayload] as\n | IAmfShape\n | IAmfShape[]\n | undefined\n if (schema) {\n if (Array.isArray(schema)) {\n ;[schema] = schema\n }\n result.schema = this.unknownShape(\n schema,\n {\n trackedId: result.id,\n },\n objectContext\n )\n }\n const examples = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.examples, objectContext) as keyof IAmfPayload\n ] as IAmfExample[] | undefined\n if (Array.isArray(examples) && examples.length) {\n result.examples = examples.map((e) => this.example(e, objectContext))\n }\n // if (Array.isArray(encoding) && encoding.length) {\n // result.encoding = encoding.map((p) => p.id);\n // }\n return result\n }\n\n templatedLink(object: IAmfTemplatedLink, context?: Record<string, string>): IApiTemplatedLink {\n const objectContext = context || object['@context']\n const result: IApiTemplatedLink = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n mapping: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const operationId = this._getValue(object, ns.aml.vocabularies.apiContract.operationId, objectContext)\n if (operationId && typeof operationId === 'string') {\n result.operationId = operationId\n }\n let server = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.server, objectContext) as keyof IAmfTemplatedLink\n ] as IAmfServer[] | IAmfServer | undefined\n if (server) {\n if (Array.isArray(server)) {\n ;[server] = server\n }\n result.server = this.server(server, objectContext)\n }\n let mapping = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.mapping, objectContext) as keyof IAmfTemplatedLink\n ] as IAmfIriTemplateMapping[] | undefined\n if (mapping) {\n if (mapping && !Array.isArray(mapping)) {\n mapping = [mapping]\n }\n if (mapping) {\n result.mapping = mapping.map((item) => this.iriTemplateMapping(item, objectContext))\n }\n }\n // if (!template.isNullOrEmpty) {\n // result.template = template.value();\n // }\n // if (!requestBody.isNullOrEmpty) {\n // result.requestBody = requestBody.value();\n // }\n return result\n }\n\n iriTemplateMapping(object: IAmfIriTemplateMapping, context?: Record<string, string>): IApiIriTemplateMapping {\n const objectContext = context || object['@context']\n const result: IApiIriTemplateMapping = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const templateVariable = this._getValue(object, ns.aml.vocabularies.apiContract.templateVariable, objectContext)\n if (templateVariable && typeof templateVariable === 'string') {\n result.templateVariable = templateVariable\n }\n const linkExpression = this._getValue(object, ns.aml.vocabularies.apiContract.linkExpression, objectContext)\n if (linkExpression && typeof linkExpression === 'string') {\n result.linkExpression = linkExpression\n }\n return result\n }\n\n parametrizedSecurityScheme(\n object: IAmfParametrizedSecurityScheme,\n context?: Record<string, string>\n ): IApiParametrizedSecurityScheme {\n const objectContext = context || object['@context']\n const result: IApiParametrizedSecurityScheme = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n let scheme = object[\n this._getAmfKey(ns.aml.vocabularies.security.scheme, objectContext) as keyof IAmfParametrizedSecurityScheme\n ] as IAmfSecurityScheme | IAmfSecurityScheme[] | undefined\n if (scheme) {\n if (Array.isArray(scheme)) {\n ;[scheme] = scheme\n }\n result.scheme = this.securityScheme(scheme, objectContext)\n }\n let settings = object[\n this._getAmfKey(ns.aml.vocabularies.security.settings, objectContext) as keyof IAmfParametrizedSecurityScheme\n ] as IAmfSettings | IAmfSettings[] | undefined\n if (settings) {\n if (Array.isArray(settings)) {\n ;[settings] = settings\n }\n result.settings = this.securitySettings(settings, objectContext)\n }\n return result\n }\n\n securitySchemeListItem(object: IAmfSecurityScheme, context?: Record<string, string>): IApiSecuritySchemeListItem {\n const objectContext = context || object['@context']\n\n const result: IApiSecuritySchemeListItem = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n type: '',\n }\n\n const type = this._getValue(object, ns.aml.vocabularies.security.type, objectContext)\n if (type && typeof type === 'string') {\n result.type = type\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const displayName = this._getValue(object, ns.aml.vocabularies.core.displayName, objectContext)\n if (displayName && typeof displayName === 'string') {\n result.displayName = displayName\n }\n return result\n }\n\n securityScheme(object: IAmfSecurityScheme, context?: Record<string, string>): IApiSecurityScheme {\n const objectContext = context || object['@context']\n const result: IApiSecurityScheme = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n headers: [],\n queryParameters: [],\n responses: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const displayName = this._getValue(object, ns.aml.vocabularies.core.displayName, objectContext)\n if (displayName && typeof displayName === 'string') {\n result.displayName = displayName\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const type = this._getValue(object, ns.aml.vocabularies.security.type, objectContext)\n if (type && typeof type === 'string') {\n result.type = type\n }\n let settings = object[\n this._getAmfKey(ns.aml.vocabularies.security.settings, objectContext) as keyof IAmfSecurityScheme\n ] as IAmfSettings[] | IAmfSettings | undefined\n if (settings) {\n if (Array.isArray(settings)) {\n ;[settings] = settings\n }\n result.settings = this.securitySettings(settings, objectContext)\n }\n let queryString = object[\n this._getAmfKey(ns.aml.vocabularies.apiContract.queryString, objectContext) as keyof IAmfSecurityScheme\n ] as IAmfShape[] | IAmfShape | undefined\n if (queryString) {\n if (Array.isArray(queryString)) {\n ;[queryString] = queryString\n }\n result.queryString = this.unknownShape(queryString, undefined, objectContext)\n }\n const headers = this[getArrayItems](object, ns.aml.vocabularies.apiContract.header, objectContext)\n if (Array.isArray(headers) && headers.length) {\n result.headers = headers.map((p) => this.parameter(p, objectContext))\n }\n const queryParameters = this[getArrayItems](object, ns.aml.vocabularies.apiContract.parameter, objectContext)\n if (Array.isArray(queryParameters) && queryParameters.length) {\n result.queryParameters = queryParameters.map((p) => this.parameter(p, objectContext))\n }\n const responses = this[getArrayItems](object, ns.aml.vocabularies.apiContract.response, objectContext) as\n | IAmfResponse[]\n | undefined\n if (Array.isArray(responses) && responses.length) {\n result.responses = responses.map((p) => this.response(p, objectContext))\n }\n return result\n }\n\n securityRequirement(object: IAmfSecurityRequirement, context?: Record<string, string>): IApiSecurityRequirement {\n const objectContext = context || object['@context']\n const result: IApiSecurityRequirement = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n schemes: [],\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const schemes = object[\n this._getAmfKey(ns.aml.vocabularies.security.schemes, objectContext) as keyof IAmfSecurityRequirement\n ] as IAmfParametrizedSecurityScheme[] | undefined\n if (Array.isArray(schemes) && schemes.length) {\n result.schemes = schemes.map((p) => this.parametrizedSecurityScheme(p, objectContext))\n }\n return result\n }\n\n securitySettings(object: IAmfSettings, context?: Record<string, string>): IApiSecuritySettingsUnion {\n const objectContext = context || object['@context']\n const types = this.readTypes(object['@type'], objectContext)\n if (types.includes(ns.aml.vocabularies.security.OAuth1Settings)) {\n return this.oAuth1Settings(object as IAmfOAuth1Settings, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.security.OAuth2Settings)) {\n return this.oAuth2Settings(object as IAmfOAuth2Settings, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.security.ApiKeySettings)) {\n return this.apiKeySettings(object as IAmfApiKeySettings, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.security.HttpSettings)) {\n return this.httpSettings(object as IAmfHttpSettings, objectContext)\n }\n if (types.includes(ns.aml.vocabularies.security.OpenIdConnectSettings)) {\n return this.openIdConnectSettings(object as IAmfOpenIdConnectSettings, objectContext)\n }\n return this.settings(object, objectContext)\n }\n\n /**\n * @param {IAmfSettings} object\n * @param context\n * @returns {IApiSecuritySettings}\n */\n settings(object: IAmfSettings, context?: Record<string, string>): IApiSecuritySettings {\n const objectContext = context || object['@context']\n const result: IApiSecuritySettings = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n // if (additionalProperties && additionalProperties.id) {\n // result.additionalProperties = this.unknownDataNode(additionalProperties);\n // }\n return result\n }\n\n oAuth1Settings(object: IAmfOAuth1Settings, context?: Record<string, string>): IApiSecurityOAuth1Settings {\n const objectContext = context || object['@context']\n const result = this.settings(object, objectContext) as IApiSecurityOAuth1Settings\n\n const authorizationUri = this._getValue(object, ns.aml.vocabularies.security.authorizationUri, objectContext)\n if (authorizationUri && typeof authorizationUri === 'string') {\n result.authorizationUri = authorizationUri\n }\n const requestTokenUri = this._getValue(object, ns.aml.vocabularies.security.requestTokenUri, objectContext)\n if (requestTokenUri && typeof requestTokenUri === 'string') {\n result.requestTokenUri = requestTokenUri\n }\n const tokenCredentialsUri = this._getValue(object, ns.aml.vocabularies.security.tokenCredentialsUri, objectContext)\n if (tokenCredentialsUri && typeof tokenCredentialsUri === 'string') {\n result.tokenCredentialsUri = tokenCredentialsUri\n }\n const signatures = this._getValueArray(object, ns.aml.vocabularies.security.signature, objectContext) as string[]\n if (Array.isArray(signatures) && signatures.length) {\n result.signatures = signatures\n } else {\n result.signatures = []\n }\n return result\n }\n\n oAuth2Settings(object: IAmfOAuth2Settings, context?: Record<string, string>): IApiSecurityOAuth2Settings {\n const objectContext = context || object['@context']\n const result = this.settings(object, objectContext) as IApiSecurityOAuth2Settings\n\n const grants = this._getValueArray(\n object,\n ns.aml.vocabularies.security.authorizationGrant,\n objectContext\n ) as string[]\n if (Array.isArray(grants) && grants.length) {\n result.authorizationGrants = grants\n } else {\n result.authorizationGrants = []\n }\n const flows = object[\n this._getAmfKey(ns.aml.vocabularies.security.flows, objectContext) as keyof IAmfOAuth2Settings\n ] as IAmfOAuth2Flow[] | undefined\n if (Array.isArray(flows) && flows.length) {\n result.flows = flows.map((p) => this.oAuth2Flow(p, objectContext))\n } else {\n result.flows = []\n }\n return result\n }\n\n oAuth2Flow(object: IAmfOAuth2Flow, context?: Record<string, string>): IApiSecurityOAuth2Flow {\n const objectContext = context || object['@context']\n const result: IApiSecurityOAuth2Flow = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n scopes: [],\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const authorizationUri = this._getValue(object, ns.aml.vocabularies.security.authorizationUri, objectContext)\n if (authorizationUri && typeof authorizationUri === 'string') {\n result.authorizationUri = authorizationUri\n }\n const accessTokenUri = this._getValue(object, ns.aml.vocabularies.security.accessTokenUri, objectContext)\n if (accessTokenUri && typeof accessTokenUri === 'string') {\n result.accessTokenUri = accessTokenUri\n }\n const flow = this._getValue(object, ns.aml.vocabularies.security.flow, objectContext)\n if (flow && typeof flow === 'string') {\n result.flow = flow\n }\n const refreshUri = this._getValue(object, ns.aml.vocabularies.security.refreshUri, objectContext)\n if (refreshUri && typeof refreshUri === 'string') {\n result.refreshUri = refreshUri\n }\n const scopes = object[\n this._getAmfKey(ns.aml.vocabularies.security.scope, objectContext) as keyof IAmfOAuth2Flow\n ] as IAmfScope[] | undefined\n if (Array.isArray(scopes) && scopes.length) {\n result.scopes = scopes.map((p) => this.scope(p, objectContext))\n }\n return result\n }\n\n scope(object: IAmfScope, context?: Record<string, string>): IApiSecurityScope {\n const objectContext = context || object['@context']\n const result: IApiSecurityScope = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n return result\n }\n\n apiKeySettings(object: IAmfApiKeySettings, context?: Record<string, string>): IApiSecurityApiKeySettings {\n const objectContext = context || object['@context']\n const result = this.settings(object, objectContext) as IApiSecurityApiKeySettings\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const inParam = this._getValue(object, ns.aml.vocabularies.security.in, objectContext)\n if (inParam && typeof inParam === 'string') {\n result.in = inParam\n }\n return result\n }\n\n httpSettings(object: IAmfHttpSettings, context?: Record<string, string>): IApiSecurityHttpSettings {\n const objectContext = context || object['@context']\n const result = this.settings(object, objectContext) as IApiSecurityHttpSettings\n\n const scheme = this._getValue(object, ns.aml.vocabularies.security.scheme, objectContext)\n if (scheme && typeof scheme === 'string') {\n result.scheme = scheme\n }\n const bearerFormat = this._getValue(object, ns.aml.vocabularies.security.bearerFormat, objectContext)\n if (bearerFormat && typeof bearerFormat === 'string') {\n result.bearerFormat = bearerFormat\n }\n return result\n }\n\n openIdConnectSettings(\n object: IAmfOpenIdConnectSettings,\n context?: Record<string, string>\n ): IApiSecurityOpenIdConnectSettings {\n const objectContext = context || object['@context']\n const result = this.settings(object, objectContext) as IApiSecurityOpenIdConnectSettings\n\n const url = this._getValue(object, ns.aml.vocabularies.security.openIdConnectUrl, objectContext)\n if (url && typeof url === 'string') {\n result.url = url\n }\n return result\n }\n\n /**\n * Serializes source maps, when available.\n */\n sourceMap(object: IAmfDocumentSourceMaps, context?: Record<string, string>): IApiDocumentSourceMaps | undefined {\n const objectContext = context || object['@context']\n let sm = object[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.sources, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfDocumentSourceMaps[] | IAmfDocumentSourceMaps | undefined\n if (!sm) {\n return undefined\n }\n if (Array.isArray(sm)) {\n ;[sm] = sm\n }\n const result: IApiDocumentSourceMaps = {\n id: sm['@id'],\n types: this.readTypes(sm['@type']),\n }\n const synthesizedField = sm[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.synthesizedField, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(synthesizedField) && synthesizedField.length) {\n result.synthesizedField = synthesizedField.map((i) => this.synthesizedField(i, objectContext))\n }\n const lexical = sm[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.lexical, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(lexical) && lexical.length) {\n result.lexical = lexical.map((i) => this.synthesizedField(i, objectContext))\n }\n const trackedElement = sm[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.trackedElement, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(trackedElement) && trackedElement.length) {\n result.trackedElement = this.synthesizedField(trackedElement[0], objectContext)\n }\n const autoName = sm[\n this._getAmfKey(\n ns.aml.vocabularies.docSourceMaps.autoGeneratedName,\n objectContext\n ) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(autoName) && autoName.length) {\n result.autoGeneratedName = autoName.map((i) => this.synthesizedField(i, objectContext))\n }\n const jsonSchema = sm[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.parsedJsonSchema, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(jsonSchema) && jsonSchema.length) {\n result.parsedJsonSchema = this.synthesizedField(jsonSchema[0], objectContext)\n }\n const declaredElement = sm[\n this._getAmfKey(ns.aml.vocabularies.docSourceMaps.declaredElement, objectContext) as keyof IAmfDocumentSourceMaps\n ] as IAmfSynthesizedField[] | undefined\n if (Array.isArray(declaredElement) && declaredElement.length) {\n result.declaredElement = this.synthesizedField(declaredElement[0], objectContext)\n }\n return result\n }\n\n synthesizedField(object: IAmfSynthesizedField, context?: Record<string, string>): IApiSynthesizedField {\n // compact model\n if (typeof object === 'string') {\n return {\n id: 'synthesizedField/generated',\n value: object,\n } as IApiSynthesizedField\n }\n const result: IApiSynthesizedField = {\n id: object['@id'],\n value: '',\n }\n const element = this._getValue(object as IAmfDomainElement, ns.aml.vocabularies.docSourceMaps.element, context) as\n | string\n | undefined\n if (typeof element === 'string') {\n result.element = element\n }\n const value = this._getValue(object as IAmfDomainElement, ns.aml.vocabularies.docSourceMaps.value, context) as\n | string\n | undefined\n if (typeof value === 'string') {\n result.value = value\n }\n return result\n }\n\n parametrizedDeclaration(\n object: IAmfParametrizedDeclaration,\n context?: Record<string, string>\n ): IApiParametrizedDeclaration {\n const objectContext = context || object['@context']\n const result: IApiParametrizedDeclaration = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n variables: [],\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n }\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext)\n if (name && typeof name === 'string') {\n result.name = name\n }\n const variables = object[\n this._getAmfKey(ns.aml.vocabularies.document.variable, objectContext) as keyof IAmfParametrizedDeclaration\n ] as IAmfVariableValue[] | undefined\n if (Array.isArray(variables)) {\n variables.forEach((item) => {\n result.variables.push(this.variableValue(item, objectContext))\n })\n }\n const targets = object[\n this._getAmfKey(ns.aml.vocabularies.document.target, objectContext) as keyof IAmfParametrizedDeclaration\n ] as IAmfAbstractDeclaration[] | undefined\n if (Array.isArray(targets) && targets.length) {\n const [target] = targets\n result.target = this.abstractDeclaration(target, objectContext)\n }\n return result\n }\n\n parametrizedTrait(object: IAmfParametrizedTrait, context?: Record<string, string>): IApiParametrizedTrait {\n const objectContext = context || object['@context']\n const result = this.parametrizedDeclaration(object, objectContext) as IApiParametrizedTrait\n return result\n }\n\n parametrizedResourceType(\n object: IAmfParametrizedResourceType,\n context?: Record<string, string>\n ): IApiParametrizedResourceType {\n const objectContext = context || object['@context']\n const result = this.parametrizedDeclaration(object, objectContext) as IApiParametrizedResourceType\n return result\n }\n\n variableValue(object: IAmfVariableValue, context?: Record<string, string>): IApiVariableValue {\n const objectContext = context || object['@context']\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext) as string\n const result: IApiVariableValue = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n name,\n }\n const values = object[\n this._getAmfKey(ns.aml.vocabularies.document.value, objectContext) as keyof IAmfVariableValue\n ] as IAmfDataNode[] | undefined\n if (Array.isArray(values)) {\n const [item] = values\n result.value = this.unknownDataNode(item, objectContext)\n }\n return result\n }\n\n abstractDeclaration(object: IAmfAbstractDeclaration, context?: Record<string, string>): IApiAbstractDeclaration {\n const objectContext = context || object['@context']\n\n const name = this._getValue(object, ns.aml.vocabularies.core.name, objectContext) as string\n const result: IApiAbstractDeclaration = {\n id: object['@id'],\n types: this.readTypes(object['@type'], objectContext),\n customDomainProperties: this.customDomainProperties(object, objectContext),\n sourceMaps: this.sourceMap(object, objectContext),\n name,\n variables: [],\n }\n const variables = this._getValueArray(object, ns.aml.vocabularies.document.variable, objectContext) as string[]\n if (Array.isArray(variables)) {\n result.variables = variables\n }\n const description = this._getValue(object, ns.aml.vocabularies.core.description, objectContext)\n if (description && typeof description === 'string') {\n result.description = description\n }\n const dataNode = object[\n this._getAmfKey(ns.aml.vocabularies.document.dataNode, objectContext) as keyof IAmfAbstractDeclaration\n ] as IAmfDataNode[] | undefined\n if (Array.isArray(dataNode)) {\n const [item] = dataNode\n result.dataNode = this.unknownDataNode(item, objectContext)\n }\n return result\n }\n\n /**\n * @param object The EndPoint to serialize as a list item.\n * @returns Serialized EndPoint as a list item.\n */\n endPointWithOperationsListItem(\n object: IAmfEndPoint,\n context?: Record<string, string>\n ): IApiEndPointWithOperationsListItem {\n const path = this._getValue(object, ns.aml.vocabularies.apiContract.path, context) as string\n const result: IApiEndPointWithOperationsListItem = {\n id: object['@id'],\n path,\n operations: [],\n }\n const operations = this[getArrayItems](object, ns.aml.vocabularies.apiContract.supportedOperation, context) as\n | IAmfOperation[]\n | undefined\n if (Array.isArray(operations) && operations.length) {\n result.operations = operations.map((i) => this.operationListItem(i, context))\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, context)\n if (name && typeof name === 'string') {\n result.name = name\n }\n return result\n }\n\n /**\n * @param object The Operation to serialize as a list item.\n * @param context A context to use. If not set, it looks for the context of the passed model\n * @returns Serialized Operation as a list item.\n */\n operationListItem(object: IAmfOperation, context?: Record<string, string>): IApiOperationListItem {\n const result: IApiOperationListItem = {\n id: object['@id'],\n method: '',\n }\n\n const method = this._getValue(object, ns.aml.vocabularies.apiContract.method, context)\n if (method && typeof method === 'string') {\n result.method = method\n }\n const name = this._getValue(object, ns.aml.vocabularies.core.name, context)\n if (name && typeof name === 'string') {\n result.name = name\n }\n return result\n }\n}\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type DomainPropertyType } from '../modeling/DataFormat.js';
|
|
2
|
-
import { PropertyWebBindings } from '../modeling/Bindings.js';
|
|
3
|
-
export declare const IAmfScalarTypes: string[];
|
|
4
|
-
export declare const IAmfArrayTypes: string[];
|
|
5
|
-
export declare const IAmfNodeTypes: string[];
|
|
6
|
-
export declare const IAmfPropertyTypes: string[];
|
|
7
|
-
export declare const IAmfNilTypes: string[];
|
|
8
|
-
export declare const IAmfUnionTypes: string[];
|
|
9
|
-
export declare const IAmfFileTypes: string[];
|
|
10
|
-
export declare const IAmfAnyTypes: string[];
|
|
11
|
-
export declare const IAmfSchemaTypes: string[];
|
|
12
|
-
export declare const IAmfTupleTypes: string[];
|
|
13
|
-
export declare const IAmfRecursiveTypes: string[];
|
|
14
|
-
export declare const IAmfXmlSerializationTypes: string[];
|
|
15
|
-
export declare const IAmfScalarNodeTypes: string[];
|
|
16
|
-
export declare const IAmfArrayNodeTypes: string[];
|
|
17
|
-
export declare const IAmfObjectNodeTypes: string[];
|
|
18
|
-
export declare const IAmfExampleTypes: string[];
|
|
19
|
-
/**
|
|
20
|
-
* Translates the DomainProperty type to an AMF data type.
|
|
21
|
-
* @param type The property data type
|
|
22
|
-
* @returns AMF shape dataType
|
|
23
|
-
*/
|
|
24
|
-
export declare function modelTypeToAmfDataType(type: DomainPropertyType, bindings?: PropertyWebBindings): string;
|
|
25
|
-
//# sourceMappingURL=AmfTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AmfTypes.d.ts","sourceRoot":"","sources":["../../../src/amf/AmfTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAG7D,eAAO,MAAM,eAAe,UAM3B,CAAA;AACD,eAAO,MAAM,cAAc,UAM1B,CAAA;AACD,eAAO,MAAM,aAAa,UAMzB,CAAA;AACD,eAAO,MAAM,iBAAiB,UAK7B,CAAA;AACD,eAAO,MAAM,YAAY,UAKxB,CAAA;AACD,eAAO,MAAM,cAAc,UAM1B,CAAA;AACD,eAAO,MAAM,aAAa,UAMzB,CAAA;AACD,eAAO,MAAM,YAAY,UAKxB,CAAA;AACD,eAAO,MAAM,eAAe,UAM3B,CAAA;AACD,eAAO,MAAM,cAAc,UAO1B,CAAA;AACD,eAAO,MAAM,kBAAkB,UAK9B,CAAA;AACD,eAAO,MAAM,yBAAyB,UAGrC,CAAA;AAED,eAAO,MAAM,mBAAmB,UAI/B,CAAA;AACD,eAAO,MAAM,kBAAkB,UAK9B,CAAA;AACD,eAAO,MAAM,mBAAmB,UAI/B,CAAA;AACD,eAAO,MAAM,gBAAgB,UAG5B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAqCvG"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { AmfNamespace } from './definitions/Namespace.js';
|
|
2
|
-
export const IAmfScalarTypes = [
|
|
3
|
-
AmfNamespace.aml.vocabularies.shapes.ScalarShape,
|
|
4
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
5
|
-
AmfNamespace.w3.shacl.Shape,
|
|
6
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
7
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
8
|
-
];
|
|
9
|
-
export const IAmfArrayTypes = [
|
|
10
|
-
AmfNamespace.aml.vocabularies.shapes.ArrayShape,
|
|
11
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
12
|
-
AmfNamespace.w3.shacl.Shape,
|
|
13
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
14
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
15
|
-
];
|
|
16
|
-
export const IAmfNodeTypes = [
|
|
17
|
-
AmfNamespace.w3.shacl.NodeShape,
|
|
18
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
19
|
-
AmfNamespace.w3.shacl.Shape,
|
|
20
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
21
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
22
|
-
];
|
|
23
|
-
export const IAmfPropertyTypes = [
|
|
24
|
-
AmfNamespace.w3.shacl.PropertyShape,
|
|
25
|
-
AmfNamespace.w3.shacl.Shape,
|
|
26
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
27
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
28
|
-
];
|
|
29
|
-
export const IAmfNilTypes = [
|
|
30
|
-
AmfNamespace.aml.vocabularies.shapes.NilShape,
|
|
31
|
-
AmfNamespace.w3.shacl.Shape,
|
|
32
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
33
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
34
|
-
];
|
|
35
|
-
export const IAmfUnionTypes = [
|
|
36
|
-
AmfNamespace.aml.vocabularies.shapes.UnionShape,
|
|
37
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
38
|
-
AmfNamespace.w3.shacl.Shape,
|
|
39
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
40
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
41
|
-
];
|
|
42
|
-
export const IAmfFileTypes = [
|
|
43
|
-
AmfNamespace.aml.vocabularies.shapes.FileShape,
|
|
44
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
45
|
-
AmfNamespace.w3.shacl.Shape,
|
|
46
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
47
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
48
|
-
];
|
|
49
|
-
export const IAmfAnyTypes = [
|
|
50
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
51
|
-
AmfNamespace.w3.shacl.Shape,
|
|
52
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
53
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
54
|
-
];
|
|
55
|
-
export const IAmfSchemaTypes = [
|
|
56
|
-
AmfNamespace.aml.vocabularies.shapes.SchemaShape,
|
|
57
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
58
|
-
AmfNamespace.w3.shacl.Shape,
|
|
59
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
60
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
61
|
-
];
|
|
62
|
-
export const IAmfTupleTypes = [
|
|
63
|
-
AmfNamespace.aml.vocabularies.shapes.TupleShape,
|
|
64
|
-
AmfNamespace.aml.vocabularies.shapes.ArrayShape,
|
|
65
|
-
AmfNamespace.aml.vocabularies.shapes.AnyShape,
|
|
66
|
-
AmfNamespace.w3.shacl.Shape,
|
|
67
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
68
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
69
|
-
];
|
|
70
|
-
export const IAmfRecursiveTypes = [
|
|
71
|
-
AmfNamespace.aml.vocabularies.shapes.RecursiveShape,
|
|
72
|
-
AmfNamespace.w3.shacl.Shape,
|
|
73
|
-
AmfNamespace.aml.vocabularies.shapes.Shape,
|
|
74
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
75
|
-
];
|
|
76
|
-
export const IAmfXmlSerializationTypes = [
|
|
77
|
-
AmfNamespace.aml.vocabularies.shapes.XMLSerializer,
|
|
78
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
79
|
-
];
|
|
80
|
-
export const IAmfScalarNodeTypes = [
|
|
81
|
-
AmfNamespace.aml.vocabularies.data.Scalar,
|
|
82
|
-
AmfNamespace.aml.vocabularies.data.Node,
|
|
83
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
84
|
-
];
|
|
85
|
-
export const IAmfArrayNodeTypes = [
|
|
86
|
-
AmfNamespace.aml.vocabularies.data.Array,
|
|
87
|
-
AmfNamespace.w3.rdfSchema.Seq,
|
|
88
|
-
AmfNamespace.aml.vocabularies.data.Node,
|
|
89
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
90
|
-
];
|
|
91
|
-
export const IAmfObjectNodeTypes = [
|
|
92
|
-
AmfNamespace.aml.vocabularies.data.Object,
|
|
93
|
-
AmfNamespace.aml.vocabularies.data.Node,
|
|
94
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
95
|
-
];
|
|
96
|
-
export const IAmfExampleTypes = [
|
|
97
|
-
AmfNamespace.aml.vocabularies.apiContract.Example,
|
|
98
|
-
AmfNamespace.aml.vocabularies.document.DomainElement,
|
|
99
|
-
];
|
|
100
|
-
/**
|
|
101
|
-
* Translates the DomainProperty type to an AMF data type.
|
|
102
|
-
* @param type The property data type
|
|
103
|
-
* @returns AMF shape dataType
|
|
104
|
-
*/
|
|
105
|
-
export function modelTypeToAmfDataType(type, bindings) {
|
|
106
|
-
if (type === 'number') {
|
|
107
|
-
if (bindings?.format === 'int32' || bindings?.format === 'int64') {
|
|
108
|
-
return AmfNamespace.w3.xmlSchema.integer;
|
|
109
|
-
}
|
|
110
|
-
return AmfNamespace.w3.xmlSchema.number;
|
|
111
|
-
}
|
|
112
|
-
if (type === 'boolean') {
|
|
113
|
-
return AmfNamespace.aml.vocabularies.shapes.boolean;
|
|
114
|
-
}
|
|
115
|
-
if (type === 'date') {
|
|
116
|
-
return AmfNamespace.w3.xmlSchema.date;
|
|
117
|
-
}
|
|
118
|
-
if (type === 'datetime') {
|
|
119
|
-
return AmfNamespace.w3.xmlSchema.dateTime;
|
|
120
|
-
}
|
|
121
|
-
if (type === 'time') {
|
|
122
|
-
return AmfNamespace.aml.vocabularies.shapes.dateTimeOnly;
|
|
123
|
-
}
|
|
124
|
-
if (type === 'binary' && bindings && bindings.format === 'base64') {
|
|
125
|
-
return AmfNamespace.w3.xmlSchema.base64Binary;
|
|
126
|
-
}
|
|
127
|
-
return AmfNamespace.w3.xmlSchema.string;
|
|
128
|
-
// switch (type) {
|
|
129
|
-
// // case 'nil':
|
|
130
|
-
// // return AmfNamespace.aml.vocabularies.shapes.nil
|
|
131
|
-
// // case 'any':
|
|
132
|
-
// // return AmfNamespace.aml.vocabularies.shapes.AnyShape
|
|
133
|
-
// default:
|
|
134
|
-
// if (type === 'binary' && bindings && bindings.format === 'base64') {
|
|
135
|
-
// return AmfNamespace.w3.xmlSchema.base64Binary
|
|
136
|
-
// }
|
|
137
|
-
// // if (bindings && bindings.format === 'binary') {
|
|
138
|
-
// // return AmfNamespace.w3.xmlSchema.base64Binary
|
|
139
|
-
// // }
|
|
140
|
-
// return AmfNamespace.w3.xmlSchema.string
|
|
141
|
-
// }
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=AmfTypes.js.map
|