@azure/data-tables 13.3.0-alpha.20241029.1 → 13.3.0-alpha.20241030.1

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.
Files changed (39) hide show
  1. package/dist/index.js +0 -5
  2. package/dist/index.js.map +1 -1
  3. package/dist-esm/src/TableClient.js +1 -1
  4. package/dist-esm/src/TableClient.js.map +1 -1
  5. package/dist-esm/src/TablePolicies.js +1 -1
  6. package/dist-esm/src/TablePolicies.js.map +1 -1
  7. package/dist-esm/src/TableServiceClient.js +1 -1
  8. package/dist-esm/src/TableServiceClient.js.map +1 -1
  9. package/dist-esm/src/TableTransaction.js +2 -2
  10. package/dist-esm/src/TableTransaction.js.map +1 -1
  11. package/dist-esm/src/cosmosPathPolicy.js.map +1 -1
  12. package/dist-esm/src/logger.js.map +1 -1
  13. package/dist-esm/src/models.js.map +1 -1
  14. package/dist-esm/src/sas/accountSasSignatureValues.js.map +1 -1
  15. package/dist-esm/src/sas/generateAccountSas.js +1 -1
  16. package/dist-esm/src/sas/generateAccountSas.js.map +1 -1
  17. package/dist-esm/src/sas/generateTableSas.js +1 -1
  18. package/dist-esm/src/sas/generateTableSas.js.map +1 -1
  19. package/dist-esm/src/sas/sasQueryParameters.js.map +1 -1
  20. package/dist-esm/src/sas/tableSasSignatureValues.js +0 -5
  21. package/dist-esm/src/sas/tableSasSignatureValues.js.map +1 -1
  22. package/dist-esm/src/secondaryEndpointPolicy.js.map +1 -1
  23. package/dist-esm/src/serialization.js.map +1 -1
  24. package/dist-esm/src/tablesNamedCredentialPolicy.browser.js.map +1 -1
  25. package/dist-esm/src/tablesNamedCredentialPolicy.js.map +1 -1
  26. package/dist-esm/src/tablesSASTokenPolicy.js.map +1 -1
  27. package/dist-esm/src/utils/accountConnectionString.browser.js.map +1 -1
  28. package/dist-esm/src/utils/accountConnectionString.js.map +1 -1
  29. package/dist-esm/src/utils/apiVersionPolicy.js.map +1 -1
  30. package/dist-esm/src/utils/baseTransactionHeaders.js.map +1 -1
  31. package/dist-esm/src/utils/challengeAuthenticationUtils.js.map +1 -1
  32. package/dist-esm/src/utils/connectionString.js.map +1 -1
  33. package/dist-esm/src/utils/errorHelpers.js.map +1 -1
  34. package/dist-esm/src/utils/internalModels.js.map +1 -1
  35. package/dist-esm/src/utils/isCredential.js +1 -1
  36. package/dist-esm/src/utils/isCredential.js.map +1 -1
  37. package/dist-esm/src/utils/transactionHeaders.js.map +1 -1
  38. package/package.json +1 -1
  39. package/types/latest/data-tables.d.ts +6 -6
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/generated/models/index.ts","../src/sas/accountSasPermissions.ts","../src/sas/accountSasServices.ts","../src/sas/sasIPRange.ts","../src/utils/truncateISO8061Date.ts","../src/sas/sasQueryParameters.ts","../src/sas/accountSasResourceTypes.ts","../src/utils/constants.ts","../src/utils/computeHMACSHA256.ts","../src/sas/accountSasSignatureValues.ts","../src/sas/generateAccountSas.ts","../src/sas/tableSasPermisions.ts","../src/sas/tableSasSignatureValues.ts","../src/sas/generateTableSas.ts","../src/secondaryEndpointPolicy.ts","../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/table.ts","../src/generated/operations/service.ts","../src/generated/generatedClient.ts","../src/utils/apiVersionPolicy.ts","../src/utils/accountConnectionString.ts","../src/utils/connectionString.ts","../src/utils/errorHelpers.ts","../src/utils/isCredential.ts","../src/logger.ts","../src/utils/challengeAuthenticationUtils.ts","../src/tablesNamedCredentialPolicy.ts","../src/tablesSASTokenPolicy.ts","../src/utils/tracing.ts","../src/utils/isCosmosEndpoint.ts","../src/TableServiceClient.ts","../src/utils/transactionHelpers.ts","../src/TablePolicies.ts","../src/cosmosPathPolicy.ts","../src/utils/baseTransactionHeaders.ts","../src/utils/transactionHeaders.ts","../src/TableTransaction.ts","../src/utils/bufferSerializer.ts","../src/utils/continuationToken.ts","../src/serialization.ts","../src/utils/uuid.ts","../src/odata.ts","../src/TableClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\n/** The properties for the table query response. */\nexport interface TableQueryResponse {\n /** The metadata response of the table. */\n odataMetadata?: string;\n /** List of tables. */\n value?: TableResponseProperties[];\n}\n\n/** The properties for the table response. */\nexport interface TableResponseProperties {\n /** The name of the table. */\n name?: string;\n /** The odata type of the table. */\n odataType?: string;\n /** The id of the table. */\n odataId?: string;\n /** The edit link of the table. */\n odataEditLink?: string;\n}\n\n/** Table Service error. */\nexport interface TableServiceError {\n /** The odata error. */\n odataError?: TableServiceErrorOdataError;\n}\n\n/** The odata error. */\nexport interface TableServiceErrorOdataError {\n /** The service error code. The error codes possible are listed in: https://docs.microsoft.com/rest/api/storageservices/table-service-error-codes */\n code?: string;\n /** The service error message. */\n message?: TableServiceErrorOdataErrorMessage;\n}\n\n/** The service error message. */\nexport interface TableServiceErrorOdataErrorMessage {\n /** Language code of the error message. */\n lang?: string;\n /** The error message. */\n value?: string;\n}\n\n/** The properties for creating a table. */\nexport interface TableProperties {\n /** The name of the table to create. */\n name?: string;\n}\n\n/** The properties for the table entity query response. */\nexport interface TableEntityQueryResponse {\n /** The metadata response of the table. */\n odataMetadata?: string;\n /** List of table entities. */\n value?: { [propertyName: string]: any }[];\n}\n\n/** A signed identifier. */\nexport interface SignedIdentifier {\n /** A unique id. */\n id: string;\n /** The access policy. */\n accessPolicy?: AccessPolicy;\n}\n\n/** An Access policy. */\nexport interface AccessPolicy {\n /** The start datetime from which the policy is active. */\n start?: string;\n /** The datetime that the policy expires. */\n expiry?: string;\n /** The permissions for the acl policy. */\n permission?: string;\n}\n\n/** Table Service Properties. */\nexport interface TableServiceProperties {\n /** Azure Analytics Logging settings. */\n logging?: Logging;\n /** A summary of request statistics grouped by API in hourly aggregates for tables. */\n hourMetrics?: Metrics;\n /** A summary of request statistics grouped by API in minute aggregates for tables. */\n minuteMetrics?: Metrics;\n /** The set of CORS rules. */\n cors?: CorsRule[];\n}\n\n/** Azure Analytics Logging settings. */\nexport interface Logging {\n /** The version of Analytics to configure. */\n version: string;\n /** Indicates whether all delete requests should be logged. */\n delete: boolean;\n /** Indicates whether all read requests should be logged. */\n read: boolean;\n /** Indicates whether all write requests should be logged. */\n write: boolean;\n /** The retention policy. */\n retentionPolicy: RetentionPolicy;\n}\n\n/** The retention policy. */\nexport interface RetentionPolicy {\n /** Indicates whether a retention policy is enabled for the service. */\n enabled: boolean;\n /** Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted. */\n days?: number;\n}\n\n/** A summary of request statistics grouped by API */\nexport interface Metrics {\n /** The version of Analytics to configure. */\n version?: string;\n /** Indicates whether metrics are enabled for the Table service. */\n enabled: boolean;\n /** Indicates whether metrics should generate summary statistics for called API operations. */\n includeAPIs?: boolean;\n /** The retention policy. */\n retentionPolicy?: RetentionPolicy;\n}\n\n/** CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain. */\nexport interface CorsRule {\n /** The origin domains that are permitted to make a request against the service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS. */\n allowedOrigins: string;\n /** The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated) */\n allowedMethods: string;\n /** The request headers that the origin domain may specify on the CORS request. */\n allowedHeaders: string;\n /** The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer. */\n exposedHeaders: string;\n /** The maximum amount time that a browser should cache the preflight OPTIONS request. */\n maxAgeInSeconds: number;\n}\n\n/** Stats for the service. */\nexport interface TableServiceStats {\n /** Geo-Replication information for the Secondary Storage Service. */\n geoReplication?: GeoReplication;\n}\n\n/** Geo-Replication information for the Secondary Storage Service */\nexport interface GeoReplication {\n /** The status of the secondary location. */\n status: GeoReplicationStatusType;\n /** A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads. */\n lastSyncTime: Date;\n}\n\n/** The response for a single table. */\nexport type TableResponse = TableResponseProperties & {\n /** The metadata response of the table. */\n odataMetadata?: string;\n};\n\n/** Defines headers for Table_query operation. */\nexport interface TableQueryHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** This header contains the continuation token value. */\n xMsContinuationNextTableName?: string;\n}\n\n/** Defines headers for Table_query operation. */\nexport interface TableQueryExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_create operation. */\nexport interface TableCreateHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** Indicates whether the Prefer request header was honored. If the response does not include this header, then the Prefer header was not honored. If this header is returned, its value will either be return-content or return-no-content. */\n preferenceApplied?: string;\n}\n\n/** Defines headers for Table_create operation. */\nexport interface TableCreateExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_delete operation. */\nexport interface TableDeleteHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_delete operation. */\nexport interface TableDeleteExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_queryEntities operation. */\nexport interface TableQueryEntitiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** This header contains the continuation token value for partition key. */\n xMsContinuationNextPartitionKey?: string;\n /** This header contains the continuation token value for row key. */\n xMsContinuationNextRowKey?: string;\n}\n\n/** Defines headers for Table_queryEntities operation. */\nexport interface TableQueryEntitiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_queryEntitiesWithPartitionAndRowKey operation. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated */\n etag?: string;\n /** This header contains the continuation token value for partition key. */\n xMsContinuationNextPartitionKey?: string;\n /** This header contains the continuation token value for row key. */\n xMsContinuationNextRowKey?: string;\n}\n\n/** Defines headers for Table_queryEntitiesWithPartitionAndRowKey operation. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_updateEntity operation. */\nexport interface TableUpdateEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n}\n\n/** Defines headers for Table_updateEntity operation. */\nexport interface TableUpdateEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_mergeEntity operation. */\nexport interface TableMergeEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n}\n\n/** Defines headers for Table_mergeEntity operation. */\nexport interface TableMergeEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_deleteEntity operation. */\nexport interface TableDeleteEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_deleteEntity operation. */\nexport interface TableDeleteEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_insertEntity operation. */\nexport interface TableInsertEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n /** Indicates whether the Prefer request header was honored. If the response does not include this header, then the Prefer header was not honored. If this header is returned, its value will either be return-content or return-no-content. */\n preferenceApplied?: string;\n /** Indicates the content type of the payload. The value depends on the value specified for the Accept request header. */\n contentType?: string;\n}\n\n/** Defines headers for Table_insertEntity operation. */\nexport interface TableInsertEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_getAccessPolicy operation. */\nexport interface TableGetAccessPolicyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_getAccessPolicy operation. */\nexport interface TableGetAccessPolicyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_setAccessPolicy operation. */\nexport interface TableSetAccessPolicyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_setAccessPolicy operation. */\nexport interface TableSetAccessPolicyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_setProperties operation. */\nexport interface ServiceSetPropertiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n}\n\n/** Defines headers for Service_setProperties operation. */\nexport interface ServiceSetPropertiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_getProperties operation. */\nexport interface ServiceGetPropertiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n}\n\n/** Defines headers for Service_getProperties operation. */\nexport interface ServiceGetPropertiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_getStatistics operation. */\nexport interface ServiceGetStatisticsHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Service_getStatistics operation. */\nexport interface ServiceGetStatisticsExceptionHeaders {\n errorCode?: string;\n}\n\n/** Parameter group */\nexport interface QueryOptions {\n /** Specifies the media type for the response. */\n format?: OdataMetadataFormat;\n /** Maximum number of records to return. */\n top?: number;\n /** Select expression using OData notation. Limits the columns on each record to just those requested, e.g. \"$select=PolicyAssignmentId, ResourceId\". */\n select?: string;\n /** OData filter expression. */\n filter?: string;\n}\n\n/** Known values of {@link OdataMetadataFormat} that the service accepts. */\nexport enum KnownOdataMetadataFormat {\n ApplicationJsonOdataNometadata = \"application/json;odata=nometadata\",\n ApplicationJsonOdataMinimalmetadata = \"application/json;odata=minimalmetadata\",\n ApplicationJsonOdataFullmetadata = \"application/json;odata=fullmetadata\"\n}\n\n/**\n * Defines values for OdataMetadataFormat. \\\n * {@link KnownOdataMetadataFormat} can be used interchangeably with OdataMetadataFormat,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **application\\/json;odata=nometadata** \\\n * **application\\/json;odata=minimalmetadata** \\\n * **application\\/json;odata=fullmetadata**\n */\nexport type OdataMetadataFormat = string;\n\n/** Known values of {@link ResponseFormat} that the service accepts. */\nexport enum KnownResponseFormat {\n ReturnNoContent = \"return-no-content\",\n ReturnContent = \"return-content\"\n}\n\n/**\n * Defines values for ResponseFormat. \\\n * {@link KnownResponseFormat} can be used interchangeably with ResponseFormat,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **return-no-content** \\\n * **return-content**\n */\nexport type ResponseFormat = string;\n\n/** Known values of {@link GeoReplicationStatusType} that the service accepts. */\nexport enum KnownGeoReplicationStatusType {\n Live = \"live\",\n Bootstrap = \"bootstrap\",\n Unavailable = \"unavailable\"\n}\n\n/**\n * Defines values for GeoReplicationStatusType. \\\n * {@link KnownGeoReplicationStatusType} can be used interchangeably with GeoReplicationStatusType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **live** \\\n * **bootstrap** \\\n * **unavailable**\n */\nexport type GeoReplicationStatusType = string;\n\n/** Optional parameters. */\nexport interface TableQueryOptionalParams extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** A table query continuation token from a previous call. */\n nextTableName?: string;\n}\n\n/** Contains response data for the query operation. */\nexport type TableQueryOperationResponse = TableQueryHeaders &\n TableQueryResponse;\n\n/** Optional parameters. */\nexport interface TableCreateOptionalParams extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** Specifies whether the response should include the inserted entity in the payload. Possible values are return-no-content and return-content. */\n responsePreference?: ResponseFormat;\n}\n\n/** Contains response data for the create operation. */\nexport type TableCreateResponse = TableCreateHeaders & TableResponse;\n\n/** Optional parameters. */\nexport interface TableDeleteOptionalParams extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n}\n\n/** Contains response data for the delete operation. */\nexport type TableDeleteResponse = TableDeleteHeaders;\n\n/** Optional parameters. */\nexport interface TableQueryEntitiesOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** An entity query continuation token from a previous call. */\n nextPartitionKey?: string;\n /** An entity query continuation token from a previous call. */\n nextRowKey?: string;\n}\n\n/** Contains response data for the queryEntities operation. */\nexport type TableQueryEntitiesResponse = TableQueryEntitiesHeaders &\n TableEntityQueryResponse;\n\n/** Optional parameters. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the queryEntitiesWithPartitionAndRowKey operation. */\nexport type TableQueryEntitiesWithPartitionAndRowKeyResponse = TableQueryEntitiesWithPartitionAndRowKeyHeaders & {\n [propertyName: string]: any;\n};\n\n/** Optional parameters. */\nexport interface TableUpdateEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n /** Match condition for an entity to be updated. If specified and a matching entity is not found, an error will be raised. To force an unconditional update, set to the wildcard character (*). If not specified, an insert will be performed when no existing entity is found to update and a replace will be performed if an existing entity is found. */\n ifMatch?: string;\n}\n\n/** Contains response data for the updateEntity operation. */\nexport type TableUpdateEntityResponse = TableUpdateEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableMergeEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n /** Match condition for an entity to be updated. If specified and a matching entity is not found, an error will be raised. To force an unconditional update, set to the wildcard character (*). If not specified, an insert will be performed when no existing entity is found to update and a merge will be performed if an existing entity is found. */\n ifMatch?: string;\n}\n\n/** Contains response data for the mergeEntity operation. */\nexport type TableMergeEntityResponse = TableMergeEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableDeleteEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the deleteEntity operation. */\nexport type TableDeleteEntityResponse = TableDeleteEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableInsertEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** Specifies whether the response should include the inserted entity in the payload. Possible values are return-no-content and return-content. */\n responsePreference?: ResponseFormat;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n}\n\n/** Contains response data for the insertEntity operation. */\nexport type TableInsertEntityResponse = TableInsertEntityHeaders & {\n [propertyName: string]: any;\n};\n\n/** Optional parameters. */\nexport interface TableGetAccessPolicyOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getAccessPolicy operation. */\nexport type TableGetAccessPolicyResponse = TableGetAccessPolicyHeaders &\n SignedIdentifier[];\n\n/** Optional parameters. */\nexport interface TableSetAccessPolicyOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The acls for the table. */\n tableAcl?: SignedIdentifier[];\n}\n\n/** Contains response data for the setAccessPolicy operation. */\nexport type TableSetAccessPolicyResponse = TableSetAccessPolicyHeaders;\n\n/** Optional parameters. */\nexport interface ServiceSetPropertiesOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the setProperties operation. */\nexport type ServiceSetPropertiesResponse = ServiceSetPropertiesHeaders;\n\n/** Optional parameters. */\nexport interface ServiceGetPropertiesOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getProperties operation. */\nexport type ServiceGetPropertiesResponse = ServiceGetPropertiesHeaders &\n TableServiceProperties;\n\n/** Optional parameters. */\nexport interface ServiceGetStatisticsOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getStatistics operation. */\nexport type ServiceGetStatisticsResponse = ServiceGetStatisticsHeaders &\n TableServiceStats;\n\n/** Optional parameters. */\nexport interface GeneratedClientOptionalParams\n extends coreClient.ServiceClientOptions {\n /** Specifies the version of the operation to use for this request. */\n version?: string;\n /** Overrides client endpoint. */\n endpoint?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Parse initializes the AccountSASPermissions fields from a string.\n *\n * @param permissions -\n */\nexport function accountSasPermissionsFromString(permissions: string): AccountSasPermissions {\n const accountSasPermissions: AccountSasPermissions = {};\n\n for (const c of permissions) {\n switch (c) {\n case \"r\":\n accountSasPermissions.query = true;\n break;\n case \"w\":\n accountSasPermissions.write = true;\n break;\n case \"d\":\n accountSasPermissions.delete = true;\n break;\n case \"l\":\n accountSasPermissions.list = true;\n break;\n case \"a\":\n accountSasPermissions.add = true;\n break;\n case \"u\":\n accountSasPermissions.update = true;\n break;\n\n default:\n throw new RangeError(`Invalid permission character: ${c}`);\n }\n }\n\n return accountSasPermissions;\n}\n\n/**\n * Produces the SAS permissions string for an Azure Storage account.\n * Call this method to set AccountSASSignatureValues Permissions field.\n *\n * Using this method will guarantee the resource types are in\n * an order accepted by the service.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\nexport function accountSasPermissionsToString(permissions: AccountSasPermissions): string {\n // The order of the characters should be as specified here to ensure correctness:\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n // Use a string array instead of string concatenating += operator for performance\n const permissionString: string[] = [];\n if (permissions.query) {\n permissionString.push(\"r\");\n }\n if (permissions.write) {\n permissionString.push(\"w\");\n }\n if (permissions.delete) {\n permissionString.push(\"d\");\n }\n if (permissions.list) {\n permissionString.push(\"l\");\n }\n if (permissions.add) {\n permissionString.push(\"a\");\n }\n if (permissions.update) {\n permissionString.push(\"u\");\n }\n\n return permissionString.join(\"\");\n}\n\n/**\n * A type that looks like an account SAS permission.\n * Used in {@link AccountSasPermissions} to parse SAS permissions from raw objects.\n */\nexport interface AccountSasPermissions {\n /**\n * Grants permission to list entities.\n */\n query?: boolean;\n\n /**\n * Grants permission to create tables\n */\n write?: boolean;\n\n /**\n * Grants permission to delete tables and entities\n */\n delete?: boolean;\n\n /**\n * Grants permission to list tables\n */\n list?: boolean;\n\n /**\n * Grants permission to create entities\n */\n add?: boolean;\n\n /**\n * Permissions to update messages and table entities granted.\n */\n update?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates an {@link AccountSasServices} from the specified services string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid service.\n *\n * @param services -\n */\nexport function accountSasServicesFromString(services: string): AccountSasServices {\n const accountSasServices: AccountSasServices = {};\n\n for (const c of services) {\n switch (c) {\n case \"b\":\n accountSasServices.blob = true;\n break;\n case \"f\":\n accountSasServices.file = true;\n break;\n case \"q\":\n accountSasServices.queue = true;\n break;\n case \"t\":\n accountSasServices.table = true;\n break;\n default:\n throw new RangeError(`Invalid service character: ${c}`);\n }\n }\n\n return accountSasServices;\n}\n\n/**\n * Converts the given services to a string.\n *\n */\nexport function accountSasServicesToString(services: AccountSasServices = { table: true }): string {\n const servicesString: string[] = [];\n if (services.blob) {\n servicesString.push(\"b\");\n }\n if (services.table) {\n servicesString.push(\"t\");\n }\n if (services.queue) {\n servicesString.push(\"q\");\n }\n if (services.file) {\n servicesString.push(\"f\");\n }\n return servicesString.join(\"\");\n}\n/**\n * Services that the SAS token can access\n */\nexport interface AccountSasServices {\n /**\n * Permission to access blob resources granted.\n */\n blob?: boolean;\n\n /**\n * Permission to access file resources granted.\n */\n file?: boolean;\n\n /**\n * Permission to access queue resources granted.\n */\n\n queue?: boolean;\n /**\n * Permission to access table resources granted.\n */\n table?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange?: SasIPRange): string {\n if (!ipRange) {\n return \"\";\n }\n\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { SasIPRange, ipRangeToString } from \"./sasIPRange\";\nimport { UserDelegationKey } from \"./models\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * Protocols for generated SAS.\n */\nexport type SasProtocol = \"https\" | \"https,http\";\n\n/**\n * Represents the components that make up an Azure SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSasSignatureValues} and {@link TableSasSignatureValues}\n * types. Once generated, it can be encoded into a `string` and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SasQueryParameters {\n /**\n * The Tables API version.\n */\n public readonly version: string;\n\n /**\n * Optional. Table name to generate the SAS for\n */\n public readonly tableName?: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SasProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The table services being accessed (only for Account SAS). Please refer to {@link AccountSasServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The table resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSasResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link TableSasSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * The Azure Active Directory object ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedOid?: string;\n\n /**\n * The Azure Active Directory tenant ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedTenantId?: string;\n\n /**\n * The date-time the key is active.\n * Property of user delegation key.\n */\n private readonly signedStartsOn?: Date;\n\n /**\n * The date-time the key expires.\n * Property of user delegation key.\n */\n private readonly signedExpiresOn?: Date;\n\n /**\n * Abbreviation of the Azure Table service that accepts the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedService?: string;\n\n /**\n * The service version that created the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedVersion?: string;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the table diagnostic logs and can be used to correlate SAS generation with table resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n public readonly startPartitionKey?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n public readonly startRowKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n public readonly endPartitionKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n public readonly endRowKey?: string;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the table service version\n * @param signature - Representing the signature for the SAS token\n * @param options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options: SasQueryParametersOptions = {}) {\n this.version = version;\n this.signature = signature;\n\n this.permissions = options.permissions;\n this.services = options.services;\n this.resourceTypes = options.resourceTypes;\n this.protocol = options.protocol;\n this.startsOn = options.startsOn;\n this.expiresOn = options.expiresOn;\n this.ipRangeInner = options.ipRange;\n this.identifier = options.identifier;\n this.tableName = options.tableName;\n this.endPartitionKey = options.endPartitionKey;\n this.endRowKey = options.endRowKey;\n this.startPartitionKey = options.startPartitionKey;\n this.startRowKey = options.startRowKey;\n\n if (options.userDelegationKey) {\n this.signedOid = options.userDelegationKey.signedObjectId;\n this.signedTenantId = options.userDelegationKey.signedTenantId;\n this.signedStartsOn = options.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = options.userDelegationKey.signedExpiresOn;\n this.signedService = options.userDelegationKey.signedService;\n this.signedVersion = options.userDelegationKey.signedVersion;\n\n this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId;\n this.correlationId = options.correlationId;\n }\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\", // SignedVersion\n \"ss\", // SignedServices\n \"srt\", // SignedResourceTypes\n \"spr\", // SignedProtocol\n \"st\", // SignedStart\n \"se\", // SignedExpiry\n \"sip\", // SignedIP\n \"si\", // SignedIdentifier\n \"skoid\", // Signed object ID\n \"sktid\", // Signed tenant ID\n \"skt\", // Signed key start time\n \"ske\", // Signed key expiry time\n \"sks\", // Signed key service\n \"skv\", // Signed key version\n \"sr\", // signedResource\n \"sp\", // SignedPermission\n \"sig\", // Signature\n \"rscc\", // Cache-Control\n \"rscd\", // Content-Disposition\n \"rsce\", // Content-Encoding\n \"rscl\", // Content-Language\n \"rsct\", // Content-Type\n \"saoid\", // signedAuthorizedObjectId\n \"scid\", // signedCorrelationId\n \"tn\", // TableName,\n \"srk\", // StartRowKey\n \"spk\", // StartPartitionKey\n \"epk\", // EndPartitionKey\n \"erk\", // EndRowKey\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"skoid\": // Signed object ID\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined,\n );\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined,\n );\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\n break;\n case \"tn\":\n this.tryAppendQueryParameter(queries, param, this.tableName);\n break;\n case \"spk\":\n this.tryAppendQueryParameter(queries, param, this.startPartitionKey);\n break;\n case \"srk\":\n this.tryAppendQueryParameter(queries, param, this.startRowKey);\n break;\n case \"epk\":\n this.tryAppendQueryParameter(queries, param, this.endPartitionKey);\n break;\n case \"erk\":\n this.tryAppendQueryParameter(queries, param, this.endRowKey);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n\n/**\n * Options to construct {@link SasQueryParameters}.\n */\nexport interface SasQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. Table name to generate the SAS for\n */\n tableName?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSasServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSasResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SasProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier for access policy\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link AccountSasSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n startPartitionKey?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n startRowKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n endPartitionKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n endRowKey?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates an {@link accountSasResourceTypesFromString} from the specified resource types string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid resource type.\n *\n * @param resourceTypes -\n */\nexport function accountSasResourceTypesFromString(resourceTypes: string): AccountSasResourceTypes {\n const accountSasResourceTypes: AccountSasResourceTypes = {};\n\n for (const c of resourceTypes) {\n switch (c) {\n case \"s\":\n accountSasResourceTypes.service = true;\n break;\n case \"c\":\n accountSasResourceTypes.container = true;\n break;\n case \"o\":\n accountSasResourceTypes.object = true;\n break;\n default:\n throw new RangeError(`Invalid resource type: ${c}`);\n }\n }\n\n return accountSasResourceTypes;\n}\n\n/**\n * Converts the given resource types to a string.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\nexport function accountSasResourceTypesToString(resourceTypes: AccountSasResourceTypes): string {\n const resourceTypesString: string[] = [];\n if (resourceTypes.service) {\n resourceTypesString.push(\"s\");\n }\n if (resourceTypes.container) {\n resourceTypesString.push(\"c\");\n }\n if (resourceTypes.object) {\n resourceTypesString.push(\"o\");\n }\n return resourceTypesString.join(\"\");\n}\n\n/**\n * Represents the Resources that are accessible by the SAS token\n */\nexport interface AccountSasResourceTypes {\n /**\n * Permission to access service level APIs granted.\n */\n service?: boolean;\n\n /**\n * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares) granted.\n */\n container?: boolean;\n\n /**\n * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files) granted.\n */\n object?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SERVICE_VERSION = \"2019-02-02\";\nexport const TRANSACTION_HTTP_VERSION_1_1 = \"HTTP/1.1\";\nexport const TRANSACTION_HTTP_LINE_ENDING = \"\\r\\n\";\n\nexport const STORAGE_SCOPE = \"https://storage.azure.com/.default\";\nexport const COSMOS_SCOPE = \"https://cosmos.azure.com/.default\";\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"authorization\",\n CONTENT_LENGTH: \"content-length\",\n CONTENT_MD5: \"content-md5\",\n CONTENT_TYPE: \"content-type\",\n CONTENT_TRANSFER_ENCODING: \"content-transfer-encoding\",\n DATE: \"date\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_VERSION: \"x-ms-version\",\n};\n\nexport const TablesLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Prefer\",\n \"Preference-Applied\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-user-agent\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Accept\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-continuation-NextTableName\",\n \"x-ms-continuation-NextPartitionKey\",\n \"x-ms-continuation-NextRowKey\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"crypto\";\n\nexport function computeHMACSHA256(stringToSign: string, accountKey: string): string {\n const key = Buffer.from(accountKey, \"base64\");\n return createHmac(\"sha256\", key).update(stringToSign, \"utf8\").digest(\"base64\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSasPermissions, accountSasPermissionsToString } from \"./accountSasPermissions\";\nimport { SasIPRange, ipRangeToString } from \"./sasIPRange\";\nimport { SasProtocol, SasQueryParameters } from \"./sasQueryParameters\";\nimport {\n accountSasResourceTypesFromString,\n accountSasResourceTypesToString,\n} from \"./accountSasResourceTypes\";\nimport { accountSasServicesFromString, accountSasServicesToString } from \"./accountSasServices\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { computeHMACSHA256 } from \"../utils/computeHMACSHA256\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call {@link generateAccountSasQueryParameters} to obtain a representation\n * of the SAS which can actually be applied to table urls. Note: that both this class and {@link SasQueryParameters}\n * exist because the former is mutable and a logical representation while the latter is immutable and used to generate\n * actual REST requests.\n *\n * @see https://docs.microsoft.com/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSasSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SasProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSasPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSasPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSasServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSasResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SasQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSasSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateAccountSasQueryParameters(\n accountSasSignatureValues: AccountSasSignatureValues,\n credential: NamedKeyCredential,\n): SasQueryParameters {\n const version = accountSasSignatureValues.version\n ? accountSasSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = accountSasPermissionsToString(accountSasSignatureValues.permissions);\n const parsedServices = accountSasServicesToString(\n accountSasServicesFromString(accountSasSignatureValues.services),\n );\n // to and from string to guarantee the correct order of resoruce types is generated\n const parsedResourceTypes = accountSasResourceTypesToString(\n accountSasResourceTypesFromString(accountSasSignatureValues.resourceTypes),\n );\n\n const stringToSign = [\n credential.name,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSasSignatureValues.startsOn\n ? truncatedISO8061Date(accountSasSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSasSignatureValues.expiresOn, false),\n accountSasSignatureValues.ipRange ? ipRangeToString(accountSasSignatureValues.ipRange) : \"\",\n accountSasSignatureValues.protocol ? accountSasSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n\n const signature: string = computeHMACSHA256(stringToSign, credential.key);\n\n return new SasQueryParameters(version, signature, {\n permissions: parsedPermissions.toString(),\n services: parsedServices,\n resourceTypes: parsedResourceTypes,\n protocol: accountSasSignatureValues.protocol,\n startsOn: accountSasSignatureValues.startsOn,\n expiresOn: accountSasSignatureValues.expiresOn,\n ipRange: accountSasSignatureValues.ipRange,\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSasPermissions, accountSasPermissionsFromString } from \"./accountSasPermissions\";\nimport {\n AccountSasServices,\n accountSasServicesFromString,\n accountSasServicesToString,\n} from \"./accountSasServices\";\nimport { NamedKeyCredential, isNamedKeyCredential } from \"@azure/core-auth\";\nimport { SasIPRange } from \"./sasIPRange\";\nimport { SasProtocol } from \"./sasQueryParameters\";\nimport { generateAccountSasQueryParameters } from \"./accountSasSignatureValues\";\n\n/**\n * Generates a Table Account Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param options - Optional parameters.\n * @returns An account SAS token\n */\nexport function generateAccountSas(\n credential: NamedKeyCredential,\n options: AccountSasOptions = {},\n): string {\n const {\n expiresOn,\n permissions = accountSasPermissionsFromString(\"rl\"),\n resourceTypes = \"sco\",\n services = accountSasServicesFromString(\"t\"),\n ...rest\n } = options;\n if (!isNamedKeyCredential(credential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n let expiry = expiresOn;\n\n if (expiry === undefined) {\n const now = new Date();\n expiry = new Date(now.getTime() + 3600 * 1000);\n }\n\n const sas = generateAccountSasQueryParameters(\n {\n permissions,\n expiresOn: expiry,\n resourceTypes,\n services: accountSasServicesToString(services),\n ...rest,\n },\n credential,\n ).toString();\n\n return sas;\n}\n\n/**\n * Options to configure {@link generateAccountSas} operation.\n */\nexport interface AccountSasOptions {\n /**\n * The time at which the shared access signature becomes invalid. Default to an hour later if not provided.\n */\n expiresOn?: Date;\n /**\n * Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: AccountSasPermissions;\n /**\n * Specifies the resource types associated with the shared access signature.\n */\n resourceTypes?: string;\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * SAS protocols allowed.\n */\n protocol?: SasProtocol;\n\n /**\n * When the SAS will take effect.\n */\n startsOn?: Date;\n /**\n * IP range allowed.\n */\n ipRange?: SasIPRange;\n /**\n * Account services\n */\n services?: AccountSasServices;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates a {@link TableSasPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\nexport function tableSasPermissionsFromString(permissions: string): TableSasPermissions {\n const tableSasPermissions: TableSasPermissions = {};\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n tableSasPermissions.query = true;\n break;\n case \"a\":\n tableSasPermissions.add = true;\n break;\n case \"u\":\n tableSasPermissions.update = true;\n break;\n case \"d\":\n tableSasPermissions.delete = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n\n return tableSasPermissions;\n}\n\n/**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the TableSasPermissions\n */\nexport function tableSasPermissionsToString(permissions?: TableSasPermissions): string {\n if (!permissions) {\n return \"\";\n }\n\n const permissionsString: string[] = [];\n if (permissions.query) {\n permissionsString.push(\"r\");\n }\n if (permissions.add) {\n permissionsString.push(\"a\");\n }\n if (permissions.update) {\n permissionsString.push(\"u\");\n }\n\n if (permissions.delete) {\n permissionsString.push(\"d\");\n }\n return permissionsString.join(\"\");\n}\n\n/**\n * A type that looks like a Table SAS permission.\n * Used in {@link TableSasPermissions} to parse SAS permissions from raw objects.\n */\nexport interface TableSasPermissions {\n /**\n * Specifies Query access granted.\n */\n query?: boolean;\n\n /**\n * Specifies Add access granted.\n */\n add?: boolean;\n\n /**\n * Specifies Update access granted.\n */\n update?: boolean;\n\n /**\n * Specifies Delete access granted.\n */\n delete?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * TableSASSignatureValues is used to help generating SAS tokens for tables.\n */\n\nimport { SasIPRange, ipRangeToString } from \"./sasIPRange\";\nimport { SasProtocol, SasQueryParameters } from \"./sasQueryParameters\";\nimport { TableSasPermissions, tableSasPermissionsToString } from \"./tableSasPermisions\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { computeHMACSHA256 } from \"../utils/computeHMACSHA256\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * TableSASSignatureValues is used to help generating Table service SAS tokens for tables\n */\nexport interface TableSasSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SasProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional. If identifier is not provided has a default value of one hour from the time the token is generated.\n * The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional. If identifier is not provided has a default value of \"read\"\n * Please refer to {@link TableSasPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: TableSasPermissions;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Define the start of a Partition Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n startPartitionKey?: string;\n /**\n * Define the end of a Partition Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n endPartitionKey?: string;\n /**\n * Define the start of a Row Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n startRowKey?: string;\n /**\n * Define the end of a Row Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n endRowKey?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * **Note**: When identifier is not provided, permissions has a default value of \"read\" and expiresOn of one hour from the time the token is generated.\n */\nexport function generateTableSasQueryParameters(\n tableName: string,\n credential: NamedKeyCredential,\n tableSasSignatureValues: TableSasSignatureValues,\n): SasQueryParameters {\n const version = tableSasSignatureValues.version ?? SERVICE_VERSION;\n\n if (credential === undefined) {\n throw TypeError(\"Invalid NamedKeyCredential\");\n }\n\n if (!tableName) {\n throw new Error(\"Must provide a 'tableName'\");\n }\n\n const signedPermissions = tableSasPermissionsToString(tableSasSignatureValues.permissions);\n const signedStart = tableSasSignatureValues.startsOn\n ? truncatedISO8061Date(tableSasSignatureValues.startsOn, false /** withMilliseconds */)\n : \"\";\n const signedExpiry = tableSasSignatureValues.expiresOn\n ? truncatedISO8061Date(tableSasSignatureValues.expiresOn, false /** withMilliseconds */)\n : \"\";\n const canonicalizedResource = getCanonicalName(credential.name, tableName);\n const signedIdentifier = tableSasSignatureValues.identifier ?? \"\";\n const signedIP = ipRangeToString(tableSasSignatureValues.ipRange);\n const signedProtocol = tableSasSignatureValues.protocol || \"\";\n const startingPartitionKey = tableSasSignatureValues.startPartitionKey ?? \"\";\n const startingRowKey = tableSasSignatureValues.startRowKey ?? \"\";\n const endingPartitionKey = tableSasSignatureValues.endPartitionKey ?? \"\";\n const endingRowKey = tableSasSignatureValues.endRowKey ?? \"\";\n\n const stringToSign = [\n signedPermissions,\n signedStart,\n signedExpiry,\n canonicalizedResource,\n signedIdentifier,\n signedIP,\n signedProtocol,\n version,\n startingPartitionKey,\n startingRowKey,\n endingPartitionKey,\n endingRowKey,\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return new SasQueryParameters(version, signature, {\n permissions: signedPermissions,\n protocol: tableSasSignatureValues.protocol,\n startsOn: tableSasSignatureValues.startsOn,\n expiresOn: tableSasSignatureValues.expiresOn,\n ipRange: tableSasSignatureValues.ipRange,\n identifier: tableSasSignatureValues.identifier,\n tableName,\n startPartitionKey: tableSasSignatureValues.startPartitionKey,\n startRowKey: tableSasSignatureValues.startRowKey,\n endPartitionKey: tableSasSignatureValues.endPartitionKey,\n endRowKey: tableSasSignatureValues.endRowKey,\n });\n}\n\nfunction getCanonicalName(accountName: string, tableName: string): string {\n // Sample CanonicalName for URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price'):\n // canonicalizedResource = \"/table/myaccount/employees\"\n return `/table/${accountName}/${tableName.toLowerCase()}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { NamedKeyCredential, isNamedKeyCredential } from \"@azure/core-auth\";\nimport {\n TableSasSignatureValues,\n generateTableSasQueryParameters,\n} from \"./tableSasSignatureValues\";\nimport { tableSasPermissionsFromString } from \"./tableSasPermisions\";\n\n/**\n * Generates a Table Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\nexport function generateTableSas(\n tableName: string,\n credential: NamedKeyCredential,\n options: TableSasSignatureValues = {},\n): string {\n let { expiresOn, permissions } = options;\n\n if (!isNamedKeyCredential(credential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n // expiresOn and permissions are optional if an identifier is provided\n // set defaults when no identifier and no values were provided\n if (!options.identifier) {\n if (!permissions) {\n permissions = tableSasPermissionsFromString(\"r\");\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n }\n\n const sas = generateTableSasQueryParameters(tableName, credential, {\n ...options,\n expiresOn,\n permissions,\n }).toString();\n\n return sas;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { OperationOptions } from \"@azure/core-client\";\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\n/**\n * The programmatic identifier of the tablesSecondaryEndpointPolicy.\n */\nexport const tablesSecondaryEndpointPolicyName = \"tablesSecondaryEndpointPolicy\";\nexport const SecondaryLocationHeaderName = \"tables-secondary-endpoint\";\nconst SecondaryLocationAccountSuffix = \"-secondary\";\n\n/**\n * Policy that would replace the Primary Endpoint with the secondary endpoint\n * when the `tables-secondary-endpoint` is set in the request\n */\nexport const tablesSecondaryEndpointPolicy: PipelinePolicy = {\n name: tablesSecondaryEndpointPolicyName,\n sendRequest: async (req, next) => {\n // Only replace the URL if the SecondaryLocationHeader is set\n if (req.headers.get(SecondaryLocationHeaderName)) {\n // Since the header is for internal use only, clean it up.\n req.headers.delete(SecondaryLocationHeaderName);\n // Calculate and update the secondary url\n req.url = getSecondaryUrlFromPrimary(req.url);\n }\n\n return next(req);\n },\n};\n\n/**\n * Utility function that injects the SecondaryEndpointHeader into an operation options\n */\nexport function injectSecondaryEndpointHeader(options: OperationOptions): OperationOptions {\n const headerToInject = { [SecondaryLocationHeaderName]: \"true\" };\n return {\n ...options,\n requestOptions: {\n ...options.requestOptions,\n customHeaders: {\n ...options.requestOptions?.customHeaders,\n ...headerToInject,\n },\n },\n };\n}\n\n/**\n * Utility function that calculates the secondary URL for a table instance given the primary URL.\n */\nfunction getSecondaryUrlFromPrimary(primaryUrl: string): string {\n const parsedPrimaryUrl = new URL(primaryUrl);\n const host = parsedPrimaryUrl.hostname.split(\".\");\n if (host.length > 1) {\n host[0] = `${host[0]}${SecondaryLocationAccountSuffix}`;\n }\n parsedPrimaryUrl.hostname = host.join(\".\");\n\n return parsedPrimaryUrl.toString();\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const TableQueryResponse: coreClient.CompositeMapper = {\n serializedName: \"TableQueryResponse\",\n type: {\n name: \"Composite\",\n className: \"TableQueryResponse\",\n modelProperties: {\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n xmlElementName: \"TableResponseProperties\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"TableResponseProperties\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const TableResponseProperties: coreClient.CompositeMapper = {\n serializedName: \"TableResponseProperties\",\n type: {\n name: \"Composite\",\n className: \"TableResponseProperties\",\n modelProperties: {\n name: {\n serializedName: \"TableName\",\n xmlName: \"TableName\",\n type: {\n name: \"String\"\n }\n },\n odataType: {\n serializedName: \"odata\\\\.type\",\n xmlName: \"odata\\\\.type\",\n type: {\n name: \"String\"\n }\n },\n odataId: {\n serializedName: \"odata\\\\.id\",\n xmlName: \"odata\\\\.id\",\n type: {\n name: \"String\"\n }\n },\n odataEditLink: {\n serializedName: \"odata\\\\.editLink\",\n xmlName: \"odata\\\\.editLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableServiceError: coreClient.CompositeMapper = {\n serializedName: \"TableServiceError\",\n type: {\n name: \"Composite\",\n className: \"TableServiceError\",\n modelProperties: {\n odataError: {\n serializedName: \"odata\\\\.error\",\n xmlName: \"odata\\\\.error\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataError\"\n }\n }\n }\n }\n};\n\nexport const TableServiceErrorOdataError: coreClient.CompositeMapper = {\n serializedName: \"TableServiceErrorOdataError\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n xmlName: \"code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n xmlName: \"message\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataErrorMessage\"\n }\n }\n }\n }\n};\n\nexport const TableServiceErrorOdataErrorMessage: coreClient.CompositeMapper = {\n serializedName: \"TableServiceErrorOdataErrorMessage\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataErrorMessage\",\n modelProperties: {\n lang: {\n serializedName: \"lang\",\n xmlName: \"lang\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableProperties: coreClient.CompositeMapper = {\n serializedName: \"TableProperties\",\n type: {\n name: \"Composite\",\n className: \"TableProperties\",\n modelProperties: {\n name: {\n serializedName: \"TableName\",\n xmlName: \"TableName\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableEntityQueryResponse: coreClient.CompositeMapper = {\n serializedName: \"TableEntityQueryResponse\",\n type: {\n name: \"Composite\",\n className: \"TableEntityQueryResponse\",\n modelProperties: {\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n xmlElementName: \"TableEntityProperties\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"any\" } }\n }\n }\n }\n }\n }\n }\n};\n\nexport const SignedIdentifier: coreClient.CompositeMapper = {\n serializedName: \"SignedIdentifier\",\n xmlName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n serializedName: \"Id\",\n required: true,\n xmlName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\n\nexport const AccessPolicy: coreClient.CompositeMapper = {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n start: {\n serializedName: \"Start\",\n xmlName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiry: {\n serializedName: \"Expiry\",\n xmlName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permission: {\n serializedName: \"Permission\",\n xmlName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableServiceProperties: coreClient.CompositeMapper = {\n serializedName: \"TableServiceProperties\",\n xmlName: \"StorageServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"TableServiceProperties\",\n modelProperties: {\n logging: {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n serializedName: \"HourMetrics\",\n xmlName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n serializedName: \"MinuteMetrics\",\n xmlName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n serializedName: \"Cors\",\n xmlName: \"Cors\",\n xmlIsWrapped: true,\n xmlElementName: \"CorsRule\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Logging: coreClient.CompositeMapper = {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n required: true,\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n delete: {\n serializedName: \"Delete\",\n required: true,\n xmlName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n serializedName: \"Read\",\n required: true,\n xmlName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n serializedName: \"Write\",\n required: true,\n xmlName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const RetentionPolicy: coreClient.CompositeMapper = {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"Days\",\n xmlName: \"Days\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const Metrics: coreClient.CompositeMapper = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n serializedName: \"IncludeAPIs\",\n xmlName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const CorsRule: coreClient.CompositeMapper = {\n serializedName: \"CorsRule\",\n xmlName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n serializedName: \"AllowedOrigins\",\n required: true,\n xmlName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n serializedName: \"AllowedMethods\",\n required: true,\n xmlName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n serializedName: \"AllowedHeaders\",\n required: true,\n xmlName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n serializedName: \"ExposedHeaders\",\n required: true,\n xmlName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"MaxAgeInSeconds\",\n required: true,\n xmlName: \"MaxAgeInSeconds\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const TableServiceStats: coreClient.CompositeMapper = {\n serializedName: \"TableServiceStats\",\n xmlName: \"StorageServiceStats\",\n type: {\n name: \"Composite\",\n className: \"TableServiceStats\",\n modelProperties: {\n geoReplication: {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\n\nexport const GeoReplication: coreClient.CompositeMapper = {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n serializedName: \"Status\",\n required: true,\n xmlName: \"Status\",\n type: {\n name: \"String\"\n }\n },\n lastSyncTime: {\n serializedName: \"LastSyncTime\",\n required: true,\n xmlName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableResponse: coreClient.CompositeMapper = {\n serializedName: \"TableResponse\",\n type: {\n name: \"Composite\",\n className: \"TableResponse\",\n modelProperties: {\n ...TableResponseProperties.type.modelProperties,\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContinuationNextTableName: {\n serializedName: \"x-ms-continuation-nexttablename\",\n xmlName: \"x-ms-continuation-nexttablename\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableCreateHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableCreateHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n preferenceApplied: {\n serializedName: \"preference-applied\",\n xmlName: \"preference-applied\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableCreateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContinuationNextPartitionKey: {\n serializedName: \"x-ms-continuation-nextpartitionkey\",\n xmlName: \"x-ms-continuation-nextpartitionkey\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextRowKey: {\n serializedName: \"x-ms-continuation-nextrowkey\",\n xmlName: \"x-ms-continuation-nextrowkey\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesWithPartitionAndRowKeyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesWithPartitionAndRowKeyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesWithPartitionAndRowKeyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextPartitionKey: {\n serializedName: \"x-ms-continuation-nextpartitionkey\",\n xmlName: \"x-ms-continuation-nextpartitionkey\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextRowKey: {\n serializedName: \"x-ms-continuation-nextrowkey\",\n xmlName: \"x-ms-continuation-nextrowkey\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesWithPartitionAndRowKeyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableUpdateEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_updateEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableUpdateEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableUpdateEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_updateEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableUpdateEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableMergeEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_mergeEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableMergeEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableMergeEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_mergeEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableMergeEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableInsertEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_insertEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableInsertEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n preferenceApplied: {\n serializedName: \"preference-applied\",\n xmlName: \"preference-applied\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableInsertEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_insertEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableInsertEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableGetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_getAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableGetAccessPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableGetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_getAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableGetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableSetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_setAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableSetAccessPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableSetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_setAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableSetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\nimport {\n TableProperties as TablePropertiesMapper,\n TableServiceProperties as TableServicePropertiesMapper\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json;odata=minimalmetadata\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const url: OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n serializedName: \"url\",\n required: true,\n xmlName: \"url\",\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const version: OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n defaultValue: \"2019-02-02\",\n isConstant: true,\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const requestId: OperationParameter = {\n parameterPath: [\"options\", \"requestId\"],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const dataServiceVersion: OperationParameter = {\n parameterPath: \"dataServiceVersion\",\n mapper: {\n defaultValue: \"3.0\",\n isConstant: true,\n serializedName: \"DataServiceVersion\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const format: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"format\"],\n mapper: {\n serializedName: \"$format\",\n xmlName: \"$format\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const top: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"top\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"$top\",\n xmlName: \"$top\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const select: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"select\"],\n mapper: {\n serializedName: \"$select\",\n xmlName: \"$select\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"filter\"],\n mapper: {\n serializedName: \"$filter\",\n xmlName: \"$filter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextTableName: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextTableName\"],\n mapper: {\n serializedName: \"NextTableName\",\n xmlName: \"NextTableName\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json;odata=nometadata\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableProperties: OperationParameter = {\n parameterPath: \"tableProperties\",\n mapper: TablePropertiesMapper\n};\n\nexport const responsePreference: OperationParameter = {\n parameterPath: [\"options\", \"responsePreference\"],\n mapper: {\n serializedName: \"Prefer\",\n xmlName: \"Prefer\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const table: OperationURLParameter = {\n parameterPath: \"table\",\n mapper: {\n serializedName: \"table\",\n required: true,\n xmlName: \"table\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const timeout: OperationQueryParameter = {\n parameterPath: [\"options\", \"timeout\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"timeout\",\n xmlName: \"timeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const nextPartitionKey: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextPartitionKey\"],\n mapper: {\n serializedName: \"NextPartitionKey\",\n xmlName: \"NextPartitionKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextRowKey: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextRowKey\"],\n mapper: {\n serializedName: \"NextRowKey\",\n xmlName: \"NextRowKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const partitionKey: OperationURLParameter = {\n parameterPath: \"partitionKey\",\n mapper: {\n serializedName: \"partitionKey\",\n required: true,\n xmlName: \"partitionKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const rowKey: OperationURLParameter = {\n parameterPath: \"rowKey\",\n mapper: {\n serializedName: \"rowKey\",\n required: true,\n xmlName: \"rowKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableEntityProperties: OperationParameter = {\n parameterPath: [\"options\", \"tableEntityProperties\"],\n mapper: {\n serializedName: \"tableEntityProperties\",\n xmlName: \"tableEntityProperties\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"any\" } }\n }\n }\n};\n\nexport const ifMatch: OperationParameter = {\n parameterPath: [\"options\", \"ifMatch\"],\n mapper: {\n serializedName: \"If-Match\",\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifMatch1: OperationParameter = {\n parameterPath: \"ifMatch\",\n mapper: {\n serializedName: \"If-Match\",\n required: true,\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"acl\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableAcl: OperationParameter = {\n parameterPath: [\"options\", \"tableAcl\"],\n mapper: {\n serializedName: \"tableAcl\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n }\n};\n\nexport const accept3: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableServiceProperties: OperationParameter = {\n parameterPath: \"tableServiceProperties\",\n mapper: TableServicePropertiesMapper\n};\n\nexport const restype: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"service\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp1: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"properties\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp2: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"stats\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Table } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n TableQueryOptionalParams,\n TableQueryOperationResponse,\n TableProperties,\n TableCreateOptionalParams,\n TableCreateResponse,\n TableDeleteOptionalParams,\n TableDeleteResponse,\n TableQueryEntitiesOptionalParams,\n TableQueryEntitiesResponse,\n TableQueryEntitiesWithPartitionAndRowKeyOptionalParams,\n TableQueryEntitiesWithPartitionAndRowKeyResponse,\n TableUpdateEntityOptionalParams,\n TableUpdateEntityResponse,\n TableMergeEntityOptionalParams,\n TableMergeEntityResponse,\n TableDeleteEntityOptionalParams,\n TableDeleteEntityResponse,\n TableInsertEntityOptionalParams,\n TableInsertEntityResponse,\n TableGetAccessPolicyOptionalParams,\n TableGetAccessPolicyResponse,\n TableSetAccessPolicyOptionalParams,\n TableSetAccessPolicyResponse\n} from \"../models\";\n\n/** Class containing Table operations. */\nexport class TableImpl implements Table {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class Table class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Queries tables under the given account.\n * @param options The options parameters.\n */\n query(\n options?: TableQueryOptionalParams\n ): Promise<TableQueryOperationResponse> {\n return this.client.sendOperationRequest({ options }, queryOperationSpec);\n }\n\n /**\n * Creates a new table under the given account.\n * @param tableProperties The Table properties.\n * @param options The options parameters.\n */\n create(\n tableProperties: TableProperties,\n options?: TableCreateOptionalParams\n ): Promise<TableCreateResponse> {\n return this.client.sendOperationRequest(\n { tableProperties, options },\n createOperationSpec\n );\n }\n\n /**\n * Operation permanently deletes the specified table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n delete(\n table: string,\n options?: TableDeleteOptionalParams\n ): Promise<TableDeleteResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Queries entities in a table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n queryEntities(\n table: string,\n options?: TableQueryEntitiesOptionalParams\n ): Promise<TableQueryEntitiesResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n queryEntitiesOperationSpec\n );\n }\n\n /**\n * Queries entities in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n queryEntitiesWithPartitionAndRowKey(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableQueryEntitiesWithPartitionAndRowKeyOptionalParams\n ): Promise<TableQueryEntitiesWithPartitionAndRowKeyResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n queryEntitiesWithPartitionAndRowKeyOperationSpec\n );\n }\n\n /**\n * Update entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n updateEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableUpdateEntityOptionalParams\n ): Promise<TableUpdateEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n updateEntityOperationSpec\n );\n }\n\n /**\n * Merge entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n mergeEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableMergeEntityOptionalParams\n ): Promise<TableMergeEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n mergeEntityOperationSpec\n );\n }\n\n /**\n * Deletes the specified entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param ifMatch Match condition for an entity to be deleted. If specified and a matching entity is\n * not found, an error will be raised. To force an unconditional delete, set to the wildcard character\n * (*).\n * @param options The options parameters.\n */\n deleteEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n ifMatch: string,\n options?: TableDeleteEntityOptionalParams\n ): Promise<TableDeleteEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, ifMatch, options },\n deleteEntityOperationSpec\n );\n }\n\n /**\n * Insert entity in a table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n insertEntity(\n table: string,\n options?: TableInsertEntityOptionalParams\n ): Promise<TableInsertEntityResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n insertEntityOperationSpec\n );\n }\n\n /**\n * Retrieves details about any stored access policies specified on the table that may be used with\n * Shared Access Signatures.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n getAccessPolicy(\n table: string,\n options?: TableGetAccessPolicyOptionalParams\n ): Promise<TableGetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n getAccessPolicyOperationSpec\n );\n }\n\n /**\n * Sets stored access policies for the table that may be used with Shared Access Signatures.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n setAccessPolicy(\n table: string,\n options?: TableSetAccessPolicyOptionalParams\n ): Promise<TableSetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n setAccessPolicyOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst queryOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableQueryResponse,\n headersMapper: Mappers.TableQueryHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableQueryExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.top,\n Parameters.select,\n Parameters.filter,\n Parameters.nextTableName\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst createOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.TableResponse,\n headersMapper: Mappers.TableCreateHeaders\n },\n 204: {\n headersMapper: Mappers.TableCreateHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableCreateExceptionHeaders\n }\n },\n requestBody: Parameters.tableProperties,\n queryParameters: [Parameters.format],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.contentType,\n Parameters.responsePreference\n ],\n mediaType: \"json\",\n serializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables('{table}')\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.TableDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableDeleteExceptionHeaders\n }\n },\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n serializer\n};\nconst queryEntitiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}()\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableEntityQueryResponse,\n headersMapper: Mappers.TableQueryEntitiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableQueryEntitiesExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.top,\n Parameters.select,\n Parameters.filter,\n Parameters.timeout,\n Parameters.nextPartitionKey,\n Parameters.nextRowKey\n ],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst queryEntitiesWithPartitionAndRowKeyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Dictionary\", value: { type: { name: \"any\" } } }\n },\n headersMapper: Mappers.TableQueryEntitiesWithPartitionAndRowKeyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper:\n Mappers.TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.select,\n Parameters.filter,\n Parameters.timeout\n ],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst updateEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.TableUpdateEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableUpdateEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.accept1,\n Parameters.contentType1,\n Parameters.ifMatch\n ],\n mediaType: \"json\",\n serializer\n};\nconst mergeEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {\n headersMapper: Mappers.TableMergeEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableMergeEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.accept1,\n Parameters.contentType1,\n Parameters.ifMatch\n ],\n mediaType: \"json\",\n serializer\n};\nconst deleteEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.TableDeleteEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableDeleteEntityExceptionHeaders\n }\n },\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.ifMatch1\n ],\n serializer\n};\nconst insertEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: {\n type: { name: \"Dictionary\", value: { type: { name: \"any\" } } }\n },\n headersMapper: Mappers.TableInsertEntityHeaders\n },\n 204: {\n headersMapper: Mappers.TableInsertEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableInsertEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.contentType,\n Parameters.responsePreference\n ],\n mediaType: \"json\",\n serializer\n};\nconst getAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: {\n type: { name: \"Composite\", className: \"SignedIdentifier\" }\n }\n },\n serializedName: \"SignedIdentifiers\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\"\n },\n headersMapper: Mappers.TableGetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableGetAccessPolicyExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.comp],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.TableSetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableSetAccessPolicyExceptionHeaders\n }\n },\n requestBody: Parameters.tableAcl,\n queryParameters: [Parameters.timeout, Parameters.comp],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.contentType2,\n Parameters.accept3\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Service } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n TableServiceProperties,\n ServiceSetPropertiesOptionalParams,\n ServiceSetPropertiesResponse,\n ServiceGetPropertiesOptionalParams,\n ServiceGetPropertiesResponse,\n ServiceGetStatisticsOptionalParams,\n ServiceGetStatisticsResponse\n} from \"../models\";\n\n/** Class containing Service operations. */\nexport class ServiceImpl implements Service {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class Service class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Sets properties for an account's Table service endpoint, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param tableServiceProperties The Table Service properties.\n * @param options The options parameters.\n */\n setProperties(\n tableServiceProperties: TableServiceProperties,\n options?: ServiceSetPropertiesOptionalParams\n ): Promise<ServiceSetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { tableServiceProperties, options },\n setPropertiesOperationSpec\n );\n }\n\n /**\n * Gets the properties of an account's Table service, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param options The options parameters.\n */\n getProperties(\n options?: ServiceGetPropertiesOptionalParams\n ): Promise<ServiceGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Table service. It is only available on the\n * secondary location endpoint when read-access geo-redundant replication is enabled for the account.\n * @param options The options parameters.\n */\n getStatistics(\n options?: ServiceGetStatisticsOptionalParams\n ): Promise<ServiceGetStatisticsResponse> {\n return this.client.sendOperationRequest(\n { options },\n getStatisticsOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst setPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.ServiceSetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceSetPropertiesExceptionHeaders\n }\n },\n requestBody: Parameters.tableServiceProperties,\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.contentType2,\n Parameters.accept3\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableServiceProperties,\n headersMapper: Mappers.ServiceGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getStatisticsOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableServiceStats,\n headersMapper: Mappers.ServiceGetStatisticsHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceGetStatisticsExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp2],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { TableImpl, ServiceImpl } from \"./operations\";\nimport { Table, Service } from \"./operationsInterfaces\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.1.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2019-02-02\";\n this.table = new TableImpl(this);\n this.service = new ServiceImpl(this);\n }\n\n table: Table;\n service: Service;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\n/**\n * Name of the apiVersion Policy\n * @internal\n */\nexport const apiVersionPolicyName = \"apiVersionPolicy\";\n\n/**\n * Pipeline policy that enables users to override the default api version\n * @internal\n */\nexport const apiVersionPolicy: (apiVersion: string) => PipelinePolicy = (apiVersion: string) => {\n return {\n name: apiVersionPolicyName,\n sendRequest: async (req, next) => {\n req.headers.set(\"x-ms-version\", apiVersion);\n return next(req);\n },\n };\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { AzureNamedKeyCredential } from \"@azure/core-auth\";\nimport { TableServiceClientOptions } from \"..\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param extractedCreds - parsed connection string\n * @param options - TablesServiceClient options\n */\nexport function fromAccountConnectionString(\n extractedCreds: ConnectionString,\n options: TableServiceClientOptions = {},\n): ClientParamsFromConnectionString {\n const sharedKeyCredential = new AzureNamedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n\n return {\n url: extractedCreds.url,\n options,\n credential: sharedKeyCredential,\n };\n}\n\nexport function getAccountConnectionString(\n accountName: string,\n accountKey: string,\n defaultEndpointsProtocol: string,\n endpointSuffix?: string,\n tableEndpoint?: string,\n): ConnectionString {\n if (!tableEndpoint) {\n // TableEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`\n const protocol = defaultEndpointsProtocol.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\",\n );\n }\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n tableEndpoint = `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: tableEndpoint,\n accountName,\n accountKey,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { fromAccountConnectionString, getAccountConnectionString } from \"./accountConnectionString\";\n\nimport { TableServiceClientOptions } from \"../models\";\n\nconst DevelopmentConnectionString =\n \"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1\";\n\n/**\n * This function parses a connection string into a set of\n * parameters to pass to be passed to TableClientService,\n * depending on the connection string type these parameter would\n * contain:\n * - Account Connection String: A pipeline to sign the request with a SharedKey\n * - SAS Connection String: Attach a SAS token to the storage account url for authentication\n * @param connectionString - Connection string to parse\n * @param options - TableService client options\n */\nexport function getClientParamsFromConnectionString(\n connectionString: string,\n options: TableServiceClientOptions = {},\n): ClientParamsFromConnectionString {\n if (connectionString.toLowerCase().indexOf(\"usedevelopmentstorage=true\") !== -1) {\n connectionString = DevelopmentConnectionString;\n options.allowInsecureConnection = true;\n }\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n return fromAccountConnectionString(extractedCreds, options);\n } else if (extractedCreds.kind === \"SASConnString\") {\n return {\n url: `${extractedCreds.url}?${extractedCreds.accountSas}`,\n options,\n };\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n}\n\n/**\n * Extracts the parts of an Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n // Matching TableEndpoint in the Account connection string\n let tableEndpoint = getValueInConnString(connectionString, \"TableEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n tableEndpoint = tableEndpoint.endsWith(\"/\") ? tableEndpoint.slice(0, -1) : tableEndpoint;\n\n if (isAccountConnectionString(connectionString)) {\n return getAccountConnectionString(\n getValueInConnString(connectionString, \"AccountName\"),\n getValueInConnString(connectionString, \"AccountKey\"),\n getValueInConnString(connectionString, \"DefaultEndpointsProtocol\"),\n getValueInConnString(connectionString, \"EndpointSuffix\"),\n tableEndpoint,\n );\n } else {\n return getSASConnectionString(connectionString, tableEndpoint);\n }\n}\n\n/**\n * Checks whether a connection string is an Account Connection string or not\n */\nfunction isAccountConnectionString(connectionString: string) {\n const lowercaseConnectionString = connectionString.toLowerCase();\n return (\n lowercaseConnectionString.search(\"defaultendpointsprotocol=\") !== -1 &&\n lowercaseConnectionString.search(\"accountkey=\") !== -1\n );\n}\n\nfunction getSASConnectionString(connectionString: string, tableEndpoint: string): ConnectionString {\n const accountName = getAccountNameFromUrl(tableEndpoint);\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n if (!tableEndpoint) {\n throw new Error(\"Invalid TableEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n } else if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: tableEndpoint, accountName, accountSas };\n}\n\nfunction getValueInConnString(\n connectionString: string,\n argument:\n | \"TableEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\",\n): string {\n const searchKey = argument.toLowerCase();\n const elements = connectionString.split(\";\").filter((e) => Boolean(e));\n for (const element of elements) {\n const trimmedElement = element.trim();\n const [elementKey, value] = getValuePair(trimmedElement);\n const key = elementKey.toLowerCase();\n if (key === searchKey) {\n return value;\n }\n }\n return \"\";\n}\n\nfunction getValuePair(kvp: string): string[] {\n // If the string is not in kvp format <key>=<valye> return an empty array\n if (!kvp || kvp.indexOf(\"=\") === -1) {\n return [];\n }\n // Get the substring before the first '='\n const key = kvp.substr(0, kvp.indexOf(\"=\"));\n // Get the substring after the first '='\n const value = kvp.substr(kvp.indexOf(\"=\") + 1);\n\n return [key, value];\n}\n\n/**\n * Extracts account name from the url\n * @param url - URL to extract the account name from\n * @returns The account name\n */\nfunction getAccountNameFromUrl(url: string): string {\n if (!url) {\n return url;\n }\n\n const parsedUrl = new URL(url);\n let accountName;\n\n const host = parsedUrl.host || \"\";\n const path = parsedUrl.pathname || \"\";\n const hostParts = host.split(\".\");\n const pathParts = path.split(\"/\");\n\n if (hostParts.length >= 1 && hostParts[1] === \"table\") {\n // `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n // Slicing off '/' at the end if exists\n url = url.endsWith(\"/\") ? url.slice(0, -1) : url;\n accountName = host.split(\".\")[0];\n } else if (pathParts.length >= 1) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = pathParts[1];\n } else {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n\n return accountName;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { OperationOptions, OperationRequest } from \"@azure/core-client\";\nimport { PipelineResponse, RestError } from \"@azure/core-rest-pipeline\";\nimport { AzureLogger } from \"@azure/logger\";\nimport { TableServiceError } from \"../generated\";\n\nexport type TableServiceErrorResponse = PipelineResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders?: Record<string, unknown>;\n /**\n * The response body as parsed JSON or XML.\n */\n parsedBody: TableServiceError;\n /**\n * The request that generated the response.\n */\n request: OperationRequest;\n};\n\nexport function handleTableAlreadyExists(\n error: unknown,\n options: OperationOptions & { tableName?: string; logger?: AzureLogger } = {},\n): void {\n const responseError = getErrorResponse(error);\n if (\n responseError &&\n responseError.status === 409 &&\n responseError.parsedBody.odataError?.code === \"TableAlreadyExists\"\n ) {\n options.logger?.info(`Table ${options.tableName} already Exists`);\n\n if (options.onResponse) {\n options.onResponse(responseError, {});\n }\n } else {\n throw error;\n }\n}\n\nfunction getErrorResponse(error: unknown): TableServiceErrorResponse | undefined {\n if (!isRestError(error)) {\n return undefined;\n }\n\n const errorResponse: TableServiceErrorResponse = error.response as TableServiceErrorResponse;\n\n if (!errorResponse || !isTableServiceErrorResponse(errorResponse.parsedBody)) {\n return undefined;\n }\n\n return errorResponse;\n}\n\nfunction isRestError(error: unknown): error is RestError {\n return (error as RestError).name === \"RestError\";\n}\n\nfunction isTableServiceErrorResponse(\n errorResponseBody: any,\n): errorResponseBody is TableServiceError {\n return Boolean(errorResponseBody?.odataError);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n NamedKeyCredential,\n SASCredential,\n TokenCredential,\n isNamedKeyCredential,\n isSASCredential,\n isTokenCredential,\n} from \"@azure/core-auth\";\n\nexport function isCredential(\n credential: unknown,\n): credential is NamedKeyCredential | SASCredential | TokenCredential {\n return (\n isSASCredential(credential) || isNamedKeyCredential(credential) || isTokenCredential(credential)\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AzureLogger, createClientLogger } from \"@azure/logger\";\n\n/**\n * The \\@azure/logger configuration for this package.\n */\nexport const logger: AzureLogger = createClientLogger(\"data-tables\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Pipeline, bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\n\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { authorizeRequestOnTenantChallenge } from \"@azure/core-client\";\n\n/**\n * @internal\n * Setups the challenge authentication policy for the provided token credential.\n */\nexport function setTokenChallengeAuthenticationPolicy(\n pipeline: Pipeline,\n credential: TokenCredential,\n scopes: string | string[],\n): void {\n // Make sure no bearerTokenPolicy is set.\n pipeline.removePolicy({ name: \"bearerTokenPolicy\" });\n pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n {\n phase: \"Sign\",\n },\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"./utils/constants\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { computeHMACSHA256 } from \"./utils/computeHMACSHA256\";\n\n/**\n * The programmatic identifier of the tablesNamedKeyCredentialPolicy.\n */\nexport const tablesNamedKeyCredentialPolicyName = \"tablesNamedKeyCredentialPolicy\";\n\n/**\n * tablesNamedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesNamedKeyCredentialPolicy(credential: NamedKeyCredential): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n const headerValue = getAuthorizationHeader(request, credential);\n request.headers.set(HeaderConstants.AUTHORIZATION, headerValue);\n }\n\n return {\n name: tablesNamedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n },\n };\n}\n\nexport function getAuthorizationHeader(\n request: PipelineRequest,\n credential: NamedKeyCredential,\n): string {\n if (!request.headers.has(HeaderConstants.X_MS_DATE)) {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n }\n\n if (request.body && typeof request.body === \"string\" && request.body.length > 0) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n // If x-ms-date is present, use it otherwise date\n const dateHeader = getHeaderValueToSign(request, HeaderConstants.X_MS_DATE);\n\n if (!dateHeader) {\n throw new Error(\"Failed to sign request: x-ms-date or date header must be present\");\n }\n\n const stringToSign: string = [\n dateHeader,\n getCanonicalizedResourceString(request, credential),\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return `SharedKeyLite ${credential.name}:${signature}`;\n}\n\nfunction getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n return value;\n}\n\nfunction getCanonicalizedResourceString(\n request: PipelineRequest,\n credential: NamedKeyCredential,\n): string {\n // https://docs.microsoft.com/rest/api/storageservices/authorize-with-shared-key#shared-key-lite-and-table-service-format-for-2009-09-19-and-later\n const url = new URL(request.url);\n const path = url.pathname || \"/\";\n let canonicalizedResourceString = \"/\" + credential.name + path;\n\n // The query string should include the question mark and the comp parameter (for example, ?comp=metadata). No other parameters should be included on the query string.\n const comp = url.searchParams.get(\"comp\");\n\n if (comp) {\n canonicalizedResourceString = `${canonicalizedResourceString}?comp=${comp}`;\n }\n\n return canonicalizedResourceString;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { SASCredential } from \"@azure/core-auth\";\n\n/**\n * The programmatic identifier of the tablesSASTokenPolicy.\n */\nexport const tablesSASTokenPolicyName = \"tablesSASTokenPolicy\";\n\n/**\n * tablesSASTokenPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesSASTokenPolicy(credential: SASCredential): PipelinePolicy {\n return {\n name: tablesSASTokenPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signURLWithSAS(request, credential);\n return next(request);\n },\n };\n}\n\nexport function signURLWithSAS(request: PipelineRequest, credential: SASCredential): void {\n const sasParams = new URLSearchParams(credential.signature);\n const url = new URL(request.url);\n\n for (const [name, value] of sasParams) {\n url.searchParams.append(name, value);\n }\n request.url = url.toString();\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * A tracing client that can be used to manage spans.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.Data.Tables\",\n packageName: \"@azure/data-tables\",\n packageVersion: \"13.3.0\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport function isCosmosEndpoint(url: string): boolean {\n const parsedURL = new URL(url);\n if (parsedURL.hostname.indexOf(\".table.cosmosdb.\") !== -1) {\n return true;\n }\n\n if (parsedURL.hostname.indexOf(\".table.cosmos.\") !== -1) {\n return true;\n }\n\n if (parsedURL.hostname === \"localhost\" && parsedURL.port !== \"10002\") {\n return true;\n }\n\n return false;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n GetPropertiesResponse,\n GetStatisticsResponse,\n ServiceProperties,\n SetPropertiesOptions,\n SetPropertiesResponse,\n} from \"./generatedModels\";\nimport {\n InternalClientPipelineOptions,\n OperationOptions,\n ServiceClientOptions,\n} from \"@azure/core-client\";\nimport {\n ListTableItemsOptions,\n TableItem,\n TableQueryOptions,\n TableServiceClientOptions,\n} from \"./models\";\nimport {\n NamedKeyCredential,\n SASCredential,\n TokenCredential,\n isNamedKeyCredential,\n isSASCredential,\n isTokenCredential,\n} from \"@azure/core-auth\";\nimport { COSMOS_SCOPE, STORAGE_SCOPE, TablesLoggingAllowedHeaderNames } from \"./utils/constants\";\nimport { Service, Table } from \"./generated\";\nimport {\n injectSecondaryEndpointHeader,\n tablesSecondaryEndpointPolicy,\n} from \"./secondaryEndpointPolicy\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\n\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { TableItemResultPage } from \"./models\";\nimport { apiVersionPolicy } from \"./utils/apiVersionPolicy\";\nimport { getClientParamsFromConnectionString } from \"./utils/connectionString\";\nimport { handleTableAlreadyExists } from \"./utils/errorHelpers\";\nimport { isCredential } from \"./utils/isCredential\";\nimport { logger } from \"./logger\";\nimport { setTokenChallengeAuthenticationPolicy } from \"./utils/challengeAuthenticationUtils\";\nimport { tablesNamedKeyCredentialPolicy } from \"./tablesNamedCredentialPolicy\";\nimport { tablesSASTokenPolicy } from \"./tablesSASTokenPolicy\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\n\n/**\n * A TableServiceClient represents a Client to the Azure Tables service allowing you\n * to perform operations on the tables and the entities.\n */\nexport class TableServiceClient {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n * Pipelines can have multiple policies to manage manipulating each request before and after it is made to the server.\n */\n public pipeline: Pipeline;\n private table: Table;\n private service: Service;\n\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - NamedKeyCredential | SASCredential used to authenticate requests. Only Supported for Node\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using an account name/key:\n *\n * ```js\n * const { AzureNamedKeyCredential, TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, \"<account key>\");\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * sharedKeyCredential\n * );\n * ```\n */\n constructor(url: string, credential: NamedKeyCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - SASCredential used to authenticate requests\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using a SAS Token.\n *\n * ```js\n * const { AzureSASCredential, TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const sasCredential = new AzureSASCredential(account, \"<account key>\");\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * sasCredential\n * );\n * ```\n */\n constructor(url: string, credential: SASCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - Azure Active Directory credential used to authenticate requests\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using an Azure Active Directory credential:\n *\n * ```js\n * cons { DefaultAzureCredential } = require(\"@azure/identity\");\n * const { TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const credential = new DefaultAzureCredential();\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * credential\n * );\n * ```\n */\n constructor(url: string, credential: TokenCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as\n * \"https://myaccount.table.core.windows.net\". You can append a SAS,\n * such as \"https://myaccount.table.core.windows.net?sasString\".\n * @param options - Options to configure the HTTP pipeline.\n * Example appending a SAS token:\n *\n * ```js\n * const account = \"<storage account name>\";\n * const sasToken = \"<SAS token>\";\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net?${sasToken}`,\n * );\n * ```\n */\n constructor(url: string, options?: TableServiceClientOptions);\n constructor(\n url: string,\n credentialOrOptions?:\n | NamedKeyCredential\n | SASCredential\n | TokenCredential\n | TableServiceClientOptions,\n options?: TableServiceClientOptions,\n ) {\n this.url = url;\n const isCosmos = isCosmosEndpoint(this.url);\n const credential = isCredential(credentialOrOptions) ? credentialOrOptions : undefined;\n const clientOptions =\n (!isCredential(credentialOrOptions) ? credentialOrOptions : options) || {};\n\n const internalPipelineOptions: ServiceClientOptions & InternalClientPipelineOptions = {\n ...clientOptions,\n endpoint: clientOptions.endpoint || this.url,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [...TablesLoggingAllowedHeaderNames],\n },\n deserializationOptions: {\n parseXML,\n },\n serializationOptions: {\n stringifyXML,\n },\n };\n const client = new GeneratedClient(this.url, internalPipelineOptions);\n client.pipeline.addPolicy(tablesSecondaryEndpointPolicy);\n\n if (isNamedKeyCredential(credential)) {\n client.pipeline.addPolicy(tablesNamedKeyCredentialPolicy(credential));\n } else if (isSASCredential(credential)) {\n client.pipeline.addPolicy(tablesSASTokenPolicy(credential));\n }\n\n if (isTokenCredential(credential)) {\n const scope = isCosmos ? COSMOS_SCOPE : STORAGE_SCOPE;\n setTokenChallengeAuthenticationPolicy(client.pipeline, credential, scope);\n }\n\n if (options?.version) {\n client.pipeline.addPolicy(apiVersionPolicy(options.version));\n }\n\n this.pipeline = client.pipeline;\n this.table = client.table;\n this.service = client.service;\n }\n\n /**\n * Retrieves statistics related to replication for the Table service. It is only available on the\n * secondary location endpoint when read-access geo-redundant replication is enabled for the account.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async getStatistics(options: OperationOptions = {}): Promise<GetStatisticsResponse> {\n return tracingClient.withSpan(\"TableServiceClient.getStatistics\", options, (updatedOptions) =>\n this.service.getStatistics(injectSecondaryEndpointHeader(updatedOptions)),\n );\n }\n\n /**\n * Gets the properties of an account's Table service, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getProperties(options: OperationOptions = {}): Promise<GetPropertiesResponse> {\n return tracingClient.withSpan(\"TableServiceClient.getProperties\", options, (updatedOptions) =>\n this.service.getProperties(updatedOptions),\n );\n }\n\n /**\n * Sets properties for an account's Table service endpoint, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param properties - The Table Service properties.\n * @param options - The options parameters.\n */\n public setProperties(\n properties: ServiceProperties,\n options: SetPropertiesOptions = {},\n ): Promise<SetPropertiesResponse> {\n return tracingClient.withSpan(\"TableServiceClient.setProperties\", options, (updatedOptions) =>\n this.service.setProperties(properties, updatedOptions),\n );\n }\n\n /**\n * Creates a new table under the given account.\n * @param name - The name of the table.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public createTable(name: string, options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"TableServiceClient.createTable\",\n options,\n async (updatedOptions) => {\n try {\n await this.table.create({ name }, updatedOptions);\n } catch (e: any) {\n handleTableAlreadyExists(e, { ...updatedOptions, logger, tableName: name });\n }\n },\n );\n }\n\n /**\n * Operation permanently deletes the specified table.\n * @param name - The name of the table.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public deleteTable(name: string, options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"TableServiceClient.deleteTable\",\n options,\n async (updatedOptions) => {\n try {\n await this.table.delete(name, updatedOptions);\n } catch (e: any) {\n if (e.statusCode === 404) {\n logger.info(\"TableServiceClient.deleteTable: Table doesn't exist\");\n } else {\n throw e;\n }\n }\n },\n );\n }\n\n /**\n * Queries tables under the given account.\n * @param options - The options parameters.\n */\n public listTables(\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: ListTableItemsOptions,\n ): PagedAsyncIterableIterator<TableItem, TableItemResultPage> {\n const iter = this.listTablesAll(options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings) => {\n const pageOptions: InternalListTablesOptions = {\n ...options,\n queryOptions: { ...options?.queryOptions, top: settings?.maxPageSize },\n };\n\n if (settings?.continuationToken) {\n pageOptions.continuationToken = settings.continuationToken;\n }\n\n return this.listTablesPage(pageOptions);\n },\n };\n }\n\n private async *listTablesAll(\n options?: InternalListTablesOptions,\n ): AsyncIterableIterator<TableItem> {\n const firstPage = await this._listTables(options);\n const { continuationToken } = firstPage;\n yield* firstPage;\n if (continuationToken) {\n const optionsWithContinuation: InternalListTablesOptions = {\n ...options,\n continuationToken,\n };\n for await (const page of this.listTablesPage(optionsWithContinuation)) {\n yield* page;\n }\n }\n }\n\n private async *listTablesPage(\n options: InternalListTablesOptions = {},\n ): AsyncIterableIterator<TableItemResultPage> {\n let result = await tracingClient.withSpan(\n \"TableServiceClient.listTablesPage\",\n options,\n (updatedOptions) => this._listTables(updatedOptions),\n );\n\n yield result;\n\n while (result.continuationToken) {\n const optionsWithContinuation: InternalListTablesOptions = {\n ...options,\n continuationToken: result.continuationToken,\n };\n result = await tracingClient.withSpan(\n \"TableServiceClient.listTablesPage\",\n optionsWithContinuation,\n async (updatedOptions, span) => {\n span.setAttribute(\"continuationToken\", updatedOptions.continuationToken);\n return this._listTables(updatedOptions);\n },\n );\n yield result;\n }\n }\n\n private async _listTables(options: InternalListTablesOptions = {}): Promise<TableItemResultPage> {\n const { continuationToken: nextTableName, ...listOptions } = options;\n const { xMsContinuationNextTableName: continuationToken, value = [] } = await this.table.query({\n ...listOptions,\n nextTableName,\n });\n return Object.assign([...value], { continuationToken });\n }\n\n /**\n *\n * Creates an instance of TableServiceClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.table.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Options to configure the HTTP pipeline.\n * @returns A new TableServiceClient from the given connection string.\n */\n public static fromConnectionString(\n connectionString: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: TableServiceClientOptions,\n ): TableServiceClient {\n const {\n url,\n options: clientOptions,\n credential,\n } = getClientParamsFromConnectionString(connectionString, options);\n\n if (credential) {\n return new TableServiceClient(url, credential, clientOptions);\n } else {\n return new TableServiceClient(url, clientOptions);\n }\n }\n}\n\ntype InternalListTablesOptions = ListTableItemsOptions & {\n queryOptions?: TableQueryOptions & { top?: number };\n /**\n * A table query continuation token from a previous call.\n */\n continuationToken?: string;\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { HeaderConstants, TRANSACTION_HTTP_LINE_ENDING } from \"./constants\";\n\n/**\n * Builds a transaction change set boundary to be added to the transaction request body\n * @param changesetId - Id of the transaction changeset\n */\nexport function getChangeSetBoundary(changesetId: string): string {\n return `changeset_${changesetId}`;\n}\n\n/**\n * Builds a transaction boundary to be added to the transaction request body\n * @param transactionId - Id of the transaction\n */\nexport function getTransactionBoundary(transactionId: string): string {\n return `batch_${transactionId}`;\n}\n\n/**\n * Returns an initial representation of the Transaction body.\n * @param transactionId - Id of the transaction\n * @param changesetId - Id of the transaction changeset\n */\nexport function getInitialTransactionBody(transactionId: string, changesetId: string): string[] {\n const transactionBoundary = `batch_${transactionId}`;\n return [\n `--${transactionBoundary}${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: multipart/mixed; boundary=changeset_${changesetId}${TRANSACTION_HTTP_LINE_ENDING}${TRANSACTION_HTTP_LINE_ENDING}`,\n ];\n}\n\n/**\n * Build the Transaction http request body to send to the service.\n * @param bodyParts - Parts of the transaction body, containing information about the actions to be included in the transaction request\n * @param transactionId - Id of the transaction\n * @param changesetId - Id of the transaction changeset\n */\nexport function getTransactionHttpRequestBody(\n bodyParts: string[],\n transactionId: string,\n changesetId: string,\n): string {\n const transactionBoundary = getTransactionBoundary(transactionId);\n const changesetBoundary = getChangeSetBoundary(changesetId);\n const changesetEnding = `--${changesetBoundary}--`;\n const transactionEnding = `--${transactionBoundary}--`;\n const bodyContent = bodyParts.join(TRANSACTION_HTTP_LINE_ENDING);\n return `${bodyContent}${TRANSACTION_HTTP_LINE_ENDING}${changesetEnding}${TRANSACTION_HTTP_LINE_ENDING}${transactionEnding}${TRANSACTION_HTTP_LINE_ENDING}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n HeaderConstants,\n TRANSACTION_HTTP_LINE_ENDING,\n TRANSACTION_HTTP_VERSION_1_1,\n} from \"./utils/constants\";\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { getChangeSetBoundary } from \"./utils/transactionHelpers\";\n\nexport const transactionRequestAssemblePolicyName = \"transactionRequestAssemblePolicy\";\n\nconst dummyResponse: PipelineResponse = {\n request: createPipelineRequest({ url: \"FAKE\" }),\n status: 200,\n headers: createHttpHeaders(),\n};\n\nexport function transactionRequestAssemblePolicy(\n bodyParts: string[],\n changesetId: string,\n): PipelinePolicy {\n return {\n name: transactionRequestAssemblePolicyName,\n async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const subRequest = getNextSubrequestBodyPart(request, changesetId);\n bodyParts.push(subRequest);\n // Intercept request from going to wire\n return dummyResponse;\n },\n };\n}\n\nexport const transactionHeaderFilterPolicyName = \"transactionHeaderFilterPolicy\";\n\nexport function transactionHeaderFilterPolicy(): PipelinePolicy {\n return {\n name: transactionHeaderFilterPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n // The subrequests should not have the x-ms-version header.\n request.headers.delete(HeaderConstants.X_MS_VERSION);\n return next(request);\n },\n };\n}\n\nfunction getSubRequestUrl(url: string): string {\n const sasTokenParts = [\"sv\", \"ss\", \"srt\", \"sp\", \"se\", \"st\", \"spr\", \"sig\"];\n const urlParsed = new URL(url);\n sasTokenParts.forEach((part) => urlParsed.searchParams.delete(part));\n return urlParsed.toString();\n}\n\nfunction getNextSubrequestBodyPart(request: PipelineRequest, changesetId: string) {\n const changesetBoundary = getChangeSetBoundary(changesetId);\n const subRequestPrefix = `--${changesetBoundary}${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`;\n\n const subRequestUrl = getSubRequestUrl(request.url);\n // Start to assemble sub request\n const subRequest = [\n subRequestPrefix, // sub request constant prefix\n \"\", // empty line after sub request's content ID\n `${request.method.toString()} ${subRequestUrl} ${TRANSACTION_HTTP_VERSION_1_1}`, // sub request start line with method,\n ];\n\n // Add required headers\n for (const [name, value] of request.headers) {\n subRequest.push(`${name}: ${value}`);\n }\n\n // Append sub-request body\n subRequest.push(`${TRANSACTION_HTTP_LINE_ENDING}`); // sub request's headers need end with an empty line\n if (request.body) {\n subRequest.push(String(request.body));\n }\n\n // Add subrequest to transaction body\n return subRequest.join(TRANSACTION_HTTP_LINE_ENDING);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\nconst cosmosPatchPolicyName = \"cosmosPatchPolicy\";\n\nexport function cosmosPatchPolicy(): PipelinePolicy {\n return {\n name: cosmosPatchPolicyName,\n sendRequest: (request, next) => {\n if (request.method === \"PATCH\") {\n request.method = \"POST\";\n request.headers.set(\"X-HTTP-Method\", \"MERGE\");\n }\n\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/**\n * @internal\n * Builds an object with the required headers for a Transaction request. For both Node and Browser\n */\nexport function getBaseTransactionHeaders(transactionGuid: string): RawHttpHeaders {\n return {\n accept: \"application/json\",\n \"x-ms-version\": \"2019-02-02\",\n DataServiceVersion: \"3.0;\",\n MaxDataServiceVersion: \"3.0;NetFx\",\n \"Content-Type\": `multipart/mixed; boundary=batch_${transactionGuid}`,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { getBaseTransactionHeaders } from \"./baseTransactionHeaders\";\n\n/**\n * @internal\n * Builds an object with the required headers for a Transaction request. For Node\n */\nexport function getTransactionHeaders(transactionGuid: string): RawHttpHeaders {\n const baseHeaders = getBaseTransactionHeaders(transactionGuid);\n return {\n ...baseHeaders,\n // The below headers are not supported in the browser as they are flagged as \"unsafe headers\"\n \"Accept-Charset\": \"UTF-8\",\n Connection: \"Keep-Alive\",\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n DeleteTableEntityOptions,\n TableEntity,\n TableTransactionEntityResponse,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models\";\nimport { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport {\n OperationOptions,\n ServiceClient,\n serializationPolicy,\n serializationPolicyName,\n} from \"@azure/core-client\";\nimport {\n Pipeline,\n PipelineRequest,\n PipelineResponse,\n RestError,\n createHttpHeaders,\n createPipelineRequest,\n} from \"@azure/core-rest-pipeline\";\nimport {\n getInitialTransactionBody,\n getTransactionHttpRequestBody,\n} from \"./utils/transactionHelpers\";\nimport {\n transactionHeaderFilterPolicy,\n transactionHeaderFilterPolicyName,\n transactionRequestAssemblePolicy,\n transactionRequestAssemblePolicyName,\n} from \"./TablePolicies\";\n\nimport { TableClientLike } from \"./utils/internalModels\";\nimport { TableServiceErrorOdataError } from \"./generated\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy\";\nimport { getTransactionHeaders } from \"./utils/transactionHeaders\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\nimport { tracingClient } from \"./utils/tracing\";\n\n/**\n * Helper to build a list of transaction actions\n */\nexport class TableTransaction {\n /**\n * List of actions to perform in a transaction\n */\n public actions: TransactionAction[];\n\n constructor(actions?: TransactionAction[]) {\n this.actions = actions ?? [];\n }\n\n /**\n * Adds a create action to the transaction\n * @param entity - entity to create\n */\n createEntity<T extends object = Record<string, unknown>>(entity: TableEntity<T>): void {\n this.actions.push([\"create\", entity]);\n }\n\n /**\n * Adds a delete action to the transaction\n * @param partitionKey - partition key of the entity to delete\n * @param rowKey - rowKey of the entity to delete\n */\n deleteEntity(partitionKey: string, rowKey: string): void {\n this.actions.push([\"delete\", { partitionKey, rowKey }]);\n }\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateMode - update mode\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateModeOrOptions - update mode or update options\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateModeOrOptions: UpdateMode | UpdateTableEntityOptions | undefined,\n updateOptions?: UpdateTableEntityOptions,\n ): void {\n // UpdateMode is a string union\n const realUpdateMode: UpdateMode | undefined =\n typeof updateModeOrOptions === \"string\" ? updateModeOrOptions : undefined;\n const realUpdateOptions: UpdateTableEntityOptions | undefined =\n typeof updateModeOrOptions === \"object\" ? updateModeOrOptions : updateOptions;\n this.actions.push([\"update\", entity, realUpdateMode ?? \"Merge\", realUpdateOptions ?? {}]);\n }\n\n /**\n * Adds an upsert action to the transaction, which inserts if the entity doesn't exist or updates the existing one\n * @param entity - entity to upsert\n * @param updateMode - update mode\n */\n upsertEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode = \"Merge\",\n ): void {\n this.actions.push([\"upsert\", entity, updateMode]);\n }\n}\n\n/**\n * TableTransaction collects sub-operations that can be submitted together via submitTransaction\n */\nexport class InternalTableTransaction {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * State that holds the information about a particular transation\n */\n private state: {\n transactionId: string;\n changesetId: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n partitionKey: string;\n };\n private interceptClient: TableClientLike;\n private allowInsecureConnection: boolean;\n private client: ServiceClient;\n\n /**\n * @param url - Tables account url\n * @param partitionKey - partition key\n * @param credential - credential to authenticate the transaction request\n */\n constructor(\n url: string,\n partitionKey: string,\n transactionId: string,\n changesetId: string,\n client: ServiceClient,\n interceptClient: TableClientLike,\n credential?: NamedKeyCredential | SASCredential | TokenCredential,\n allowInsecureConnection: boolean = false,\n ) {\n this.client = client;\n this.url = url;\n this.interceptClient = interceptClient;\n this.allowInsecureConnection = allowInsecureConnection;\n\n // Initialize the state\n this.state = this.initializeState(transactionId, changesetId, partitionKey);\n\n // Depending on the auth method used we need to build the url\n if (!credential) {\n // When the SAS token is provided as part of the URL we need to move it after $batch\n const urlParts = url.split(\"?\");\n this.url = urlParts[0];\n const sas = urlParts.length > 1 ? `?${urlParts[1]}` : \"\";\n this.url = `${this.getUrlWithSlash()}$batch${sas}`;\n } else {\n // When using a SharedKey credential no SAS token is needed\n this.url = `${this.getUrlWithSlash()}$batch`;\n }\n }\n\n private initializeState(transactionId: string, changesetId: string, partitionKey: string) {\n const pendingOperations: Promise<any>[] = [];\n const bodyParts = getInitialTransactionBody(transactionId, changesetId);\n const isCosmos = isCosmosEndpoint(this.url);\n prepateTransactionPipeline(this.interceptClient.pipeline, bodyParts, changesetId, isCosmos);\n\n return {\n transactionId,\n changesetId,\n partitionKey,\n pendingOperations,\n bodyParts,\n };\n }\n\n /**\n * Adds a createEntity operation to the transaction\n * @param entity - Entity to create\n */\n public createEntity<T extends object>(entity: TableEntity<T>): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n\n /**\n * Adds a createEntity operation to the transaction per each entity in the entities array\n * @param entities - Array of entities to create\n */\n public createEntities<T extends object>(entities: TableEntity<T>[]): void {\n for (const entity of entities) {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n }\n\n /**\n * Adds a deleteEntity operation to the transaction\n * @param partitionKey - Partition key of the entity to delete\n * @param rowKey - Row key of the entity to delete\n * @param options - Options for the delete operation\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions,\n ): void {\n this.checkPartitionKey(partitionKey);\n this.state.pendingOperations.push(\n this.interceptClient.deleteEntity(partitionKey, rowKey, options),\n );\n }\n\n /**\n * Adds an updateEntity operation to the transaction\n * @param entity - Entity to update\n * @param mode - Update mode (Merge or Replace)\n * @param options - Options for the update operation\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.updateEntity(entity, mode, options));\n }\n\n /**\n * Adds an upsertEntity operation to the transaction\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.upsertEntity(entity, mode, options));\n }\n\n /**\n * Submits the operations in the transaction\n */\n public async submitTransaction(): Promise<TableTransactionResponse> {\n await Promise.all(this.state.pendingOperations);\n const body = getTransactionHttpRequestBody(\n this.state.bodyParts,\n this.state.transactionId,\n this.state.changesetId,\n );\n\n const headers = getTransactionHeaders(this.state.transactionId);\n\n return tracingClient.withSpan(\n \"TableTransaction.submitTransaction\",\n {} as OperationOptions,\n async (updatedOptions) => {\n const request = createPipelineRequest({\n url: this.url,\n method: \"POST\",\n body,\n headers: createHttpHeaders(headers),\n tracingOptions: updatedOptions.tracingOptions,\n allowInsecureConnection: this.allowInsecureConnection,\n });\n\n const rawTransactionResponse = await this.client.sendRequest(request);\n return parseTransactionResponse(rawTransactionResponse);\n },\n );\n }\n\n private checkPartitionKey(partitionKey: string): void {\n if (this.state.partitionKey !== partitionKey) {\n throw new Error(\"All operations in a transaction must target the same partitionKey\");\n }\n }\n\n private getUrlWithSlash(): string {\n return this.url.endsWith(\"/\") ? this.url : `${this.url}/`;\n }\n}\n\nexport function parseTransactionResponse(\n transactionResponse: PipelineResponse,\n): TableTransactionResponse {\n const subResponsePrefix = `--changesetresponse_`;\n const status = transactionResponse.status;\n const rawBody = transactionResponse.bodyAsText || \"\";\n const splitBody = rawBody.split(subResponsePrefix);\n const isSuccessByStatus = 200 <= status && status < 300;\n\n if (!isSuccessByStatus) {\n handleBodyError(rawBody, status, transactionResponse.request, transactionResponse);\n }\n\n // Dropping the first and last elements as they are the boundaries\n // we just care about sub request content\n const subResponses = splitBody.slice(1, splitBody.length - 1);\n\n const responses: TableTransactionEntityResponse[] = subResponses.map((subResponse) => {\n const statusMatch = subResponse.match(/HTTP\\/1.1 ([0-9]*)/);\n if (statusMatch?.length !== 2) {\n throw new Error(`Couldn't extract status from sub-response:\\n ${subResponse}`);\n }\n const subResponseStatus = Number.parseInt(statusMatch[1]);\n if (!Number.isInteger(subResponseStatus)) {\n throw new Error(`Expected sub-response status to be an integer ${subResponseStatus}`);\n }\n\n const bodyMatch = subResponse.match(/\\{(.*)\\}/);\n if (bodyMatch?.length === 2) {\n handleBodyError(\n bodyMatch[0],\n subResponseStatus,\n transactionResponse.request,\n transactionResponse,\n );\n }\n\n const etagMatch = subResponse.match(/ETag: (.*)/);\n const rowKeyMatch = subResponse.match(/RowKey='(.*)'/);\n\n return {\n status: subResponseStatus,\n ...(rowKeyMatch?.length === 2 && { rowKey: rowKeyMatch[1] }),\n ...(etagMatch?.length === 2 && { etag: etagMatch[1] }),\n };\n });\n\n return {\n status,\n subResponses: responses,\n getResponseForEntity: (rowKey: string) => responses.find((r) => r.rowKey === rowKey),\n };\n}\n\nfunction handleBodyError(\n bodyAsText: string,\n statusCode: number,\n request: PipelineRequest,\n response: PipelineResponse,\n) {\n let parsedError;\n\n try {\n parsedError = JSON.parse(bodyAsText);\n } catch {\n parsedError = {};\n }\n\n let message = \"Transaction Failed\";\n let code: string | undefined;\n // Only transaction sub-responses return body\n if (parsedError && parsedError[\"odata.error\"]) {\n const error: TableServiceErrorOdataError = parsedError[\"odata.error\"];\n message = error.message?.value ?? message;\n code = error.code;\n }\n\n throw new RestError(message, {\n code,\n statusCode,\n request,\n response,\n });\n}\n\n/**\n * Prepares the transaction pipeline to intercept operations\n * @param pipeline - Client pipeline\n */\nexport function prepateTransactionPipeline(\n pipeline: Pipeline,\n bodyParts: string[],\n changesetId: string,\n isCosmos: boolean,\n): void {\n // Fist, we need to clear all the existing policies to make sure we start\n // with a fresh state.\n const policies = pipeline.getOrderedPolicies();\n for (const policy of policies) {\n pipeline.removePolicy({\n name: policy.name,\n });\n }\n\n // With the clear state we now initialize the pipelines required for intercepting the requests.\n // Use transaction assemble policy to assemble request and intercept request from going to wire\n\n pipeline.addPolicy(serializationPolicy(), { phase: \"Serialize\" });\n pipeline.addPolicy(transactionHeaderFilterPolicy());\n pipeline.addPolicy(transactionRequestAssemblePolicy(bodyParts, changesetId));\n if (isCosmos) {\n pipeline.addPolicy(cosmosPatchPolicy(), {\n afterPolicies: [transactionHeaderFilterPolicyName],\n beforePolicies: [serializationPolicyName, transactionRequestAssemblePolicyName],\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Encodes a byte array in base64 format.\n * @param value - The Uint8Aray or string to encode\n */\nexport function base64Encode(value: Uint8Array | string): string {\n if (value instanceof Uint8Array) {\n const bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer);\n return bufferValue.toString(\"base64\");\n } else {\n return Buffer.from(value).toString(\"base64\");\n }\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value - The base64 string to decode\n */\nexport function base64Decode(value: string): Uint8Array {\n return Buffer.from(value, \"base64\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { base64Decode, base64Encode } from \"./bufferSerializer\";\n\ninterface ContinuationToken {\n nextPartitionKey: string;\n nextRowKey?: string;\n}\n\n/**\n * Encodes the nextPartitionKey and nextRowKey into a single continuation token\n */\nexport function encodeContinuationToken(\n nextPartitionKey?: string,\n nextRowKey?: string,\n): string | undefined {\n if (!nextPartitionKey) {\n return undefined;\n }\n\n const continuationToken = {\n nextPartitionKey,\n // Only add nextRowKey if the value is not null, undefined or empty string.\n ...(nextRowKey && { nextRowKey }),\n };\n\n return base64Encode(JSON.stringify(continuationToken));\n}\n\n/**\n * Decodes a continuationToken into an object containing a nextPartitionKey and nextRowKey\n */\nexport function decodeContinuationToken(encodedToken: string): ContinuationToken {\n const decodedToken = base64Decode(encodedToken);\n let tokenStr = \"\";\n\n for (const byte of decodedToken) {\n tokenStr += String.fromCharCode(byte);\n }\n const continuationToken: ContinuationToken = JSON.parse(tokenStr);\n\n return continuationToken;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models\";\nimport {\n QueryOptions as GeneratedQueryOptions,\n SignedIdentifier as GeneratedSignedIdentifier,\n} from \"./generated/models\";\nimport { base64Decode, base64Encode } from \"./utils/bufferSerializer\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date\";\n\nconst propertyCaseMap: Map<string, string> = new Map<string, string>([\n [\"PartitionKey\", \"partitionKey\"],\n [\"RowKey\", \"rowKey\"],\n [\"odata.etag\", \"etag\"],\n [\"Timestamp\", \"timestamp\"],\n]);\n\nconst Edm = {\n Binary: \"Edm.Binary\",\n Boolean: \"Edm.Boolean\",\n DateTime: \"Edm.DateTime\",\n Double: \"Edm.Double\",\n Guid: \"Edm.Guid\",\n Int32: \"Edm.Int32\",\n Int64: \"Edm.Int64\",\n String: \"Edm.String\",\n} as const;\n\ntype supportedTypes = boolean | string | number | Date | Uint8Array | bigint;\n\ntype serializedType = {\n value: supportedTypes;\n type?: string;\n};\n\nfunction serializePrimitive(value: any): serializedType {\n const serializedValue: serializedType = { value };\n if (\n value === undefined ||\n value === null ||\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n serializedValue.value = value;\n } else if (typeof value === \"bigint\") {\n serializedValue.value = value.toString();\n serializedValue.type = Edm.Int64;\n } else if (value instanceof Date) {\n serializedValue.value = value;\n serializedValue.type = Edm.DateTime;\n } else if (value instanceof Uint8Array) {\n serializedValue.value = base64Encode(value);\n serializedValue.type = Edm.Binary;\n } else {\n throw new Error(`Unknown EDM type ${typeof value}`);\n }\n\n return serializedValue;\n}\n\nfunction serializeObject(obj: { value: any; type: EdmTypes }): serializedType {\n const serializedValue: serializedType = { value: obj.value };\n if (\n obj.type === \"Boolean\" ||\n obj.type === \"DateTime\" ||\n obj.type === \"Double\" ||\n obj.type === \"Guid\" ||\n obj.type === \"Int32\" ||\n obj.type === \"Int64\" ||\n obj.type === \"String\" ||\n obj.type === \"Binary\"\n ) {\n serializedValue.value = obj.value;\n serializedValue.type = Edm[obj.type];\n } else {\n throw new Error(`Unknown EDM type ${typeof obj.value}`);\n }\n\n return serializedValue;\n}\n\nfunction getSerializedValue(value: any): serializedType {\n if (typeof value === \"object\" && value?.value !== undefined && value?.type !== undefined) {\n return serializeObject(value);\n } else {\n return serializePrimitive(value);\n }\n}\n\nfunction translatePropertyNameForSerialization(propertyName: string): string {\n for (const [original, internal] of propertyCaseMap) {\n if (internal === propertyName) {\n return original;\n }\n }\n\n return propertyName;\n}\n\nexport function serialize(obj: object): Record<string, Record<string, unknown>> {\n const serialized: any = {};\n for (const [propertyName, propertyValue] of Object.entries(obj)) {\n const transformedKey = translatePropertyNameForSerialization(propertyName);\n const serializedVal = getSerializedValue(propertyValue);\n serialized[transformedKey] = serializedVal.value;\n if (serializedVal.type) {\n serialized[`${transformedKey}@odata.type`] = serializedVal.type;\n }\n }\n return serialized;\n}\n\nfunction getTypedObject(value: any, type: string, disableTypeConversion: boolean): any {\n switch (type) {\n case Edm.Boolean:\n return disableTypeConversion ? { value, type: \"Boolean\" } : value;\n case Edm.Double:\n return disableTypeConversion ? { value, type: \"Double\" } : value;\n case Edm.Int32:\n return disableTypeConversion ? { value, type: \"Int32\" } : value;\n case Edm.String:\n return disableTypeConversion ? { value, type: \"String\" } : value;\n case Edm.DateTime:\n return disableTypeConversion ? { value, type: \"DateTime\" } : new Date(value);\n case Edm.Int64:\n return disableTypeConversion ? { value, type: \"Int64\" } : BigInt(value);\n case Edm.Guid:\n return { value, type: \"Guid\" };\n case Edm.Binary:\n return disableTypeConversion ? { value, type: \"Binary\" } : base64Decode(value);\n default:\n throw new Error(`Unknown EDM type ${type}`);\n }\n}\n\nexport function deserialize<T extends object = Record<string, any>>(\n obj: object,\n disableTypeConversion: boolean = false,\n): T {\n const deserialized: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key.indexOf(\"@odata.type\") === -1) {\n const transformedKey = propertyCaseMap.get(key) ?? key;\n let typedValue = value;\n if (`${key}@odata.type` in obj) {\n const type = (obj as any)[`${key}@odata.type`];\n typedValue = getTypedObject(value, type, disableTypeConversion);\n } else if (disableTypeConversion && [\"number\", \"string\", \"boolean\"].includes(typeof value)) {\n // The service, doesn't return type metadata for number, strings or booleans\n // if automatic type conversion is disabled we'll infer the EDM object\n typedValue = inferTypedObject(key, value);\n }\n\n deserialized[transformedKey] = typedValue;\n }\n }\n return deserialized;\n}\n\nfunction inferTypedObject(propertyName: string, value: number | string | boolean) {\n // We need to skip service metadata fields such as partitionKey and rowKey and use the same value returned by the service\n if (propertyCaseMap.has(propertyName)) {\n return value;\n }\n\n switch (typeof value) {\n case \"boolean\":\n return { value: String(value), type: \"Boolean\" };\n case \"number\":\n return getTypedNumber(value);\n case \"string\":\n return { value, type: \"String\" };\n default:\n return value;\n }\n}\n\n/**\n * Returns the number when typeConversion is enabled or the EDM object with the correct number format Double or Int32 if disabled\n */\nfunction getTypedNumber(value: number): { value: string; type: \"Int32\" | \"Double\" } {\n const valueStr = String(value);\n if (Number.isSafeInteger(value)) {\n return { value: valueStr, type: \"Int32\" };\n } else {\n return { value: valueStr, type: \"Double\" };\n }\n}\n\nexport function deserializeObjectsArray<T extends object>(\n objArray: object[],\n disableTypeConversion: boolean,\n): T[] {\n return objArray.map((obj) => deserialize<T>(obj, disableTypeConversion));\n}\n\n/**\n * For ACL endpoints the Tables Service takes an ISO Date without decimals however\n * serializing a JavaScript date gives us a date with decimals 2021-07-08T09:10:09.000Z\n * which makes the XML request body invalid, these 2 functions serialize and deserialize the\n * dates so that they are in the expected format\n */\nexport function serializeSignedIdentifiers(\n signedIdentifiers: SignedIdentifier[],\n): GeneratedSignedIdentifier[] {\n return signedIdentifiers.map((acl) => {\n const { id, accessPolicy } = acl;\n const { start, expiry, ...rest } = accessPolicy ?? {};\n const serializedStart = start\n ? truncatedISO8061Date(start, false /** withMilliseconds */)\n : undefined;\n const serializedExpiry = expiry\n ? truncatedISO8061Date(expiry, false /** withMilliseconds */)\n : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(serializedExpiry && { expiry: serializedExpiry }),\n ...(serializedStart && { start: serializedStart }),\n ...rest,\n },\n };\n });\n}\n\nexport function deserializeSignedIdentifier(\n signedIdentifiers: GeneratedSignedIdentifier[],\n): SignedIdentifier[] {\n return signedIdentifiers.map((si) => {\n const { id, accessPolicy } = si;\n const { start, expiry, ...restAcl } = accessPolicy ?? {};\n const deserializedStart = start ? new Date(start) : undefined;\n const deserializedExpiry = expiry ? new Date(expiry) : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(deserializedExpiry && { expiry: deserializedExpiry }),\n ...(deserializedStart && { start: deserializedStart }),\n ...restAcl,\n },\n };\n });\n}\n\nexport function serializeQueryOptions(query: TableEntityQueryOptions): GeneratedQueryOptions {\n const { select, ...queryOptions } = query;\n const mappedQuery: GeneratedQueryOptions = { ...queryOptions };\n // Properties that are always returned by the service but are not allowed in select\n const excludeFromSelect = [\"etag\", \"odata.etag\"];\n if (select) {\n mappedQuery.select = select\n .filter((p) => !excludeFromSelect.includes(p))\n .map(translatePropertyNameForSerialization)\n .join(\",\");\n }\n return mappedQuery;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"@azure/core-util\";\n\n// This is used as a workaround to be able to stub generateUuid\n// during testing.\nexport class Uuid {\n public static generateUuid(): string {\n return randomUUID();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nfunction escapeQuotesIfString(input: unknown, previous: string): string | unknown {\n let result = input;\n\n if (typeof input === \"string\") {\n result = escapeQuotes(input);\n // check if we need to escape this literal\n if (previous !== \"\" && !previous.trim().endsWith(\"'\")) {\n result = `'${result}'`;\n }\n }\n return result;\n}\n\nexport function escapeQuotes(input: string): string {\n return input.replace(/'/g, \"''\");\n}\n\nfunction encodeDate(input: unknown): string | unknown {\n return input instanceof Date ? `datetime'${input.toISOString()}'` : input;\n}\n\n/**\n * Escapes an odata filter expression to avoid errors with quoting string literals.\n * Encodes Date objects.\n */\nexport function odata(strings: TemplateStringsArray, ...values: unknown[]): string {\n const fixEncoding = (value: unknown, string: string): string | unknown => {\n return encodeDate(escapeQuotesIfString(value, string));\n };\n const results = [];\n for (let i = 0; i < strings.length; i++) {\n results.push(strings[i]);\n if (i < values.length) {\n results.push(fixEncoding(values[i], strings[i]));\n }\n }\n return results.join(\"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n CreateTableEntityResponse,\n DeleteTableEntityOptions,\n GetAccessPolicyResponse,\n GetTableEntityOptions,\n GetTableEntityResponse,\n ListTableEntitiesOptions,\n SignedIdentifier,\n TableServiceClientOptions as TableClientOptions,\n TableEntity,\n TableEntityQueryOptions,\n TableEntityResult,\n TableEntityResultPage,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models\";\nimport {\n DeleteTableEntityResponse,\n SetAccessPolicyResponse,\n UpdateEntityResponse,\n UpsertEntityResponse,\n} from \"./generatedModels\";\nimport {\n FullOperationResponse,\n InternalClientPipelineOptions,\n OperationOptions,\n ServiceClient,\n ServiceClientOptions,\n} from \"@azure/core-client\";\nimport { GeneratedClient, TableDeleteEntityOptionalParams } from \"./generated\";\nimport {\n NamedKeyCredential,\n SASCredential,\n TokenCredential,\n isNamedKeyCredential,\n isSASCredential,\n isTokenCredential,\n} from \"@azure/core-auth\";\nimport { COSMOS_SCOPE, STORAGE_SCOPE, TablesLoggingAllowedHeaderNames } from \"./utils/constants\";\nimport { decodeContinuationToken, encodeContinuationToken } from \"./utils/continuationToken\";\nimport {\n deserialize,\n deserializeObjectsArray,\n deserializeSignedIdentifier,\n serialize,\n serializeQueryOptions,\n serializeSignedIdentifiers,\n} from \"./serialization\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\n\nimport { InternalTableTransaction } from \"./TableTransaction\";\nimport { ListEntitiesResponse } from \"./utils/internalModels\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { Table } from \"./generated/operationsInterfaces\";\nimport { TableQueryEntitiesOptionalParams } from \"./generated/models\";\nimport { Uuid } from \"./utils/uuid\";\nimport { apiVersionPolicy } from \"./utils/apiVersionPolicy\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy\";\nimport { escapeQuotes } from \"./odata\";\nimport { getClientParamsFromConnectionString } from \"./utils/connectionString\";\nimport { handleTableAlreadyExists } from \"./utils/errorHelpers\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\nimport { isCredential } from \"./utils/isCredential\";\nimport { logger } from \"./logger\";\nimport { setTokenChallengeAuthenticationPolicy } from \"./utils/challengeAuthenticationUtils\";\nimport { tablesNamedKeyCredentialPolicy } from \"./tablesNamedCredentialPolicy\";\nimport { tablesSASTokenPolicy } from \"./tablesSASTokenPolicy\";\nimport { tracingClient } from \"./utils/tracing\";\n\n/**\n * A TableClient represents a Client to the Azure Tables service allowing you\n * to perform operations on a single table.\n */\nexport class TableClient {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n * Pipelines can have multiple policies to manage manipulating each request before and after it is made to the server.\n */\n public pipeline: Pipeline;\n private table: Table;\n private generatedClient: ServiceClient;\n private credential?: NamedKeyCredential | SASCredential | TokenCredential;\n private clientOptions: TableClientOptions;\n private readonly allowInsecureConnection: boolean;\n\n /**\n * Name of the table to perform operations on.\n */\n public readonly tableName: string;\n\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - NamedKeyCredential used to authenticate requests. Only Supported for Node\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using an account name/key:\n *\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * sharedKeyCredential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: NamedKeyCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - SASCredential used to authenticate requests\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using a SAS Token:\n *\n * ```js\n * const { AzureSASCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<sas-token>\";\n * const tableName = \"<table name>\";\n * const sasCredential = new AzureSASCredential(sasToken);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * sasCredential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: SASCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - Azure Active Directory credential used to authenticate requests\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using an Azure Active Directory credential:\n *\n * ```js\n * cons { DefaultAzureCredential } = require(\"@azure/identity\");\n * const { AzureSASCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<sas-token>\";\n * const tableName = \"<table name>\";\n * const credential = new DefaultAzureCredential();\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * credential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: TokenCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates an instance of TableClient.\n *\n * @param url - A Client string pointing to Azure Storage table service, such as\n * \"https://myaccount.table.core.windows.net\". You can append a SAS,\n * such as \"https://myaccount.table.core.windows.net?sasString\".\n * @param tableName - the name of the table\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example appending a SAS token:\n *\n * ```js\n * const { TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<SAS token>\";\n * const tableName = \"<table name>\";\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net?${sasToken}`,\n * `${tableName}`\n * );\n * ```\n */\n constructor(url: string, tableName: string, options?: TableClientOptions);\n constructor(\n url: string,\n tableName: string,\n credentialOrOptions?: NamedKeyCredential | SASCredential | TableClientOptions | TokenCredential,\n options: TableClientOptions = {},\n ) {\n this.url = url;\n this.tableName = tableName;\n const isCosmos = isCosmosEndpoint(this.url);\n\n const credential = isCredential(credentialOrOptions) ? credentialOrOptions : undefined;\n this.credential = credential;\n\n this.clientOptions = (!isCredential(credentialOrOptions) ? credentialOrOptions : options) || {};\n\n this.allowInsecureConnection = this.clientOptions.allowInsecureConnection ?? false;\n\n const internalPipelineOptions: ServiceClientOptions & InternalClientPipelineOptions = {\n ...this.clientOptions,\n endpoint: this.clientOptions.endpoint || this.url,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [...TablesLoggingAllowedHeaderNames],\n },\n deserializationOptions: {\n parseXML,\n },\n serializationOptions: {\n stringifyXML,\n },\n };\n\n const generatedClient = new GeneratedClient(this.url, internalPipelineOptions);\n if (isNamedKeyCredential(credential)) {\n generatedClient.pipeline.addPolicy(tablesNamedKeyCredentialPolicy(credential));\n } else if (isSASCredential(credential)) {\n generatedClient.pipeline.addPolicy(tablesSASTokenPolicy(credential));\n }\n\n if (isTokenCredential(credential)) {\n const scope = isCosmos ? COSMOS_SCOPE : STORAGE_SCOPE;\n setTokenChallengeAuthenticationPolicy(generatedClient.pipeline, credential, scope);\n }\n\n if (isCosmos) {\n generatedClient.pipeline.addPolicy(cosmosPatchPolicy());\n }\n\n if (options.version) {\n generatedClient.pipeline.addPolicy(apiVersionPolicy(options.version));\n }\n\n this.generatedClient = generatedClient;\n this.table = generatedClient.table;\n this.pipeline = generatedClient.pipeline;\n }\n\n /**\n * Permanently deletes the current table with all of its entities.\n * @param options - The options parameters.\n *\n * ### Example deleting a table\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // calling deleteTable will delete the table used\n * // to instantiate the TableClient.\n * // Note: If the table doesn't exist this function doesn't fail.\n * await client.deleteTable();\n * ```\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public deleteTable(options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"TableClient.deleteTable\", options, async (updatedOptions) => {\n try {\n await this.table.delete(this.tableName, updatedOptions);\n } catch (e: any) {\n if (e.statusCode === 404) {\n logger.info(\"TableClient.deleteTable: Table doesn't exist\");\n } else {\n throw e;\n }\n }\n });\n }\n\n /**\n * Creates a table with the tableName passed to the client constructor\n * @param options - The options parameters.\n *\n * ### Example creating a table\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // calling create table will create the table used\n * // to instantiate the TableClient.\n * // Note: If the table already\n * // exists this function doesn't throw.\n * await client.createTable();\n * ```\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public createTable(options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"TableClient.createTable\", options, async (updatedOptions) => {\n try {\n await this.table.create({ name: this.tableName }, updatedOptions);\n } catch (e: any) {\n handleTableAlreadyExists(e, { ...updatedOptions, logger, tableName: this.tableName });\n }\n });\n }\n\n /**\n * Returns a single entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n *\n * ### Example getting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // getEntity will get a single entity stored in the service that\n * // matches exactly the partitionKey and rowKey used as parameters\n * // to the method.\n * const entity = await client.getEntity(\"<partitionKey>\", \"<rowKey>\");\n * console.log(entity);\n * ```\n */\n public getEntity<T extends object = Record<string, unknown>>(\n partitionKey: string,\n rowKey: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: GetTableEntityOptions = {},\n ): Promise<GetTableEntityResponse<TableEntityResult<T>>> {\n return tracingClient.withSpan(\"TableClient.getEntity\", options, async (updatedOptions) => {\n let parsedBody: any;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n parsedBody = rawResponse.parsedBody;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n const { disableTypeConversion, queryOptions, ...getEntityOptions } = updatedOptions;\n await this.table.queryEntitiesWithPartitionAndRowKey(\n this.tableName,\n escapeQuotes(partitionKey),\n escapeQuotes(rowKey),\n {\n ...getEntityOptions,\n queryOptions: serializeQueryOptions(queryOptions || {}),\n onResponse,\n },\n );\n const tableEntity = deserialize<TableEntityResult<T>>(\n parsedBody,\n disableTypeConversion ?? false,\n );\n\n return tableEntity;\n });\n }\n\n /**\n * Queries entities in a table.\n * @param options - The options parameters.\n *\n * Example listing entities\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // list entities returns a AsyncIterableIterator\n * // this helps consuming paginated responses by\n * // automatically handling getting the next pages\n * const entities = client.listEntities();\n *\n * // this loop will get all the entities from all the pages\n * // returned by the service\n * for await (const entity of entities) {\n * console.log(entity);\n * }\n * ```\n */\n public listEntities<T extends object = Record<string, unknown>>(\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: ListTableEntitiesOptions = {},\n ): PagedAsyncIterableIterator<TableEntityResult<T>, TableEntityResultPage<T>> {\n const tableName = this.tableName;\n const iter = this.listEntitiesAll<T>(tableName, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings) => {\n const pageOptions: InternalListTableEntitiesOptions = {\n ...options,\n queryOptions: { ...options.queryOptions, top: settings?.maxPageSize },\n };\n\n if (settings?.continuationToken) {\n pageOptions.continuationToken = settings.continuationToken;\n }\n\n return this.listEntitiesPage(tableName, pageOptions);\n },\n };\n }\n\n private async *listEntitiesAll<T extends object>(\n tableName: string,\n options?: InternalListTableEntitiesOptions,\n ): AsyncIterableIterator<TableEntityResult<T>> {\n const firstPage = await this._listEntities<T>(tableName, options);\n yield* firstPage;\n if (firstPage.continuationToken) {\n const optionsWithContinuation: InternalListTableEntitiesOptions = {\n ...options,\n continuationToken: firstPage.continuationToken,\n };\n for await (const page of this.listEntitiesPage<T>(tableName, optionsWithContinuation)) {\n yield* page;\n }\n }\n }\n\n private async *listEntitiesPage<T extends object>(\n tableName: string,\n options: InternalListTableEntitiesOptions = {},\n ): AsyncIterableIterator<ListEntitiesResponse<TableEntityResult<T>>> {\n let result = await tracingClient.withSpan(\n \"TableClient.listEntitiesPage\",\n options,\n (updatedOptions) => this._listEntities<T>(tableName, updatedOptions),\n );\n\n yield result;\n\n while (result.continuationToken) {\n const optionsWithContinuation: InternalListTableEntitiesOptions = {\n ...options,\n continuationToken: result.continuationToken,\n };\n\n result = await tracingClient.withSpan(\n \"TableClient.listEntitiesPage\",\n optionsWithContinuation,\n (updatedOptions, span) => {\n span.setAttribute(\"continuationToken\", result.continuationToken);\n return this._listEntities<T>(tableName, updatedOptions);\n },\n );\n yield result;\n }\n }\n\n private async _listEntities<T extends object>(\n tableName: string,\n options: InternalListTableEntitiesOptions = {},\n ): Promise<TableEntityResultPage<T>> {\n const { disableTypeConversion = false } = options;\n const queryOptions = serializeQueryOptions(options.queryOptions || {});\n const listEntitiesOptions: TableQueryEntitiesOptionalParams = {\n ...options,\n queryOptions,\n };\n\n // If a continuation token is used, decode it and set the next row and partition key\n if (options.continuationToken) {\n const continuationToken = decodeContinuationToken(options.continuationToken);\n listEntitiesOptions.nextRowKey = continuationToken.nextRowKey;\n listEntitiesOptions.nextPartitionKey = continuationToken.nextPartitionKey;\n }\n\n const {\n xMsContinuationNextPartitionKey: nextPartitionKey,\n xMsContinuationNextRowKey: nextRowKey,\n value,\n } = await this.table.queryEntities(tableName, listEntitiesOptions);\n\n const tableEntities = deserializeObjectsArray<TableEntityResult<T>>(\n value ?? [],\n disableTypeConversion,\n );\n\n // Encode nextPartitionKey and nextRowKey as a single continuation token and add it as a\n // property to the page.\n const continuationToken = encodeContinuationToken(nextPartitionKey, nextRowKey);\n const page: TableEntityResultPage<T> = Object.assign([...tableEntities], {\n continuationToken,\n });\n\n return page;\n }\n\n /**\n * Insert entity in the table.\n * @param entity - The properties for the table entity.\n * @param options - The options parameters.\n *\n * ### Example creating an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // partitionKey and rowKey are required properties of the entity to create\n * // and accepts any other properties\n * await client.createEntity({partitionKey: \"p1\", rowKey: \"r1\", foo: \"Hello!\"});\n * ```\n */\n public createEntity<T extends object>(\n entity: TableEntity<T>,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<CreateTableEntityResponse> {\n return tracingClient.withSpan(\"TableClient.createEntity\", options, (updatedOptions) => {\n const { ...createTableEntity } = updatedOptions || {};\n return this.table.insertEntity(this.tableName, {\n ...createTableEntity,\n tableEntityProperties: serialize(entity),\n responsePreference: \"return-no-content\",\n });\n });\n }\n\n /**\n * Deletes the specified entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n *\n * ### Example deleting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // deleteEntity deletes the entity that matches\n * // exactly the partitionKey and rowKey passed as parameters\n * await client.deleteEntity(\"<partitionKey>\", \"<rowKey>\")\n * ```\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: DeleteTableEntityOptions = {},\n ): Promise<DeleteTableEntityResponse> {\n return tracingClient.withSpan(\"TableClient.deleteEntity\", options, (updatedOptions) => {\n const { etag = \"*\", ...rest } = updatedOptions;\n const deleteOptions: TableDeleteEntityOptionalParams = {\n ...rest,\n };\n return this.table.deleteEntity(\n this.tableName,\n escapeQuotes(partitionKey),\n escapeQuotes(rowKey),\n etag,\n deleteOptions,\n );\n });\n }\n\n /**\n * Update an entity in the table.\n * @param entity - The properties of the entity to be updated.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n *\n * ### Example updating an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * const entity = {partitionKey: \"p1\", rowKey: \"r1\", bar: \"updatedBar\"};\n *\n * // Update uses update mode \"Merge\" as default\n * // merge means that update will match a stored entity\n * // that has the same partitionKey and rowKey as the entity\n * // passed to the method and then will only update the properties present in it.\n * // Any other properties that are not defined in the entity passed to updateEntity\n * // will remain as they are in the service\n * await client.updateEntity(entity)\n *\n * // We can also set the update mode to Replace, which will match the entity passed\n * // to updateEntity with one stored in the service and replace with the new one.\n * // If there are any missing properties in the entity passed to updateEntity, they\n * // will be removed from the entity stored in the service\n * await client.updateEntity(entity, \"Replace\")\n * ```\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode = \"Merge\",\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: UpdateTableEntityOptions = {},\n ): Promise<UpdateEntityResponse> {\n return tracingClient.withSpan(\n \"TableClient.updateEntity\",\n options,\n async (updatedOptions) => {\n const partitionKey = escapeQuotes(entity.partitionKey);\n const rowKey = escapeQuotes(entity.rowKey);\n\n const { etag = \"*\", ...updateEntityOptions } = updatedOptions || {};\n if (mode === \"Merge\") {\n return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ifMatch: etag,\n ...updateEntityOptions,\n });\n }\n if (mode === \"Replace\") {\n return this.table.updateEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ifMatch: etag,\n ...updateEntityOptions,\n });\n }\n\n throw new Error(`Unexpected value for update mode: ${mode}`);\n },\n {\n spanAttributes: {\n updateEntityMode: mode,\n },\n },\n );\n }\n\n /**\n * Upsert an entity in the table.\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n *\n * ### Example upserting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * const entity = {partitionKey: \"p1\", rowKey: \"r1\", bar: \"updatedBar\"};\n *\n * // Upsert uses update mode \"Merge\" as default.\n * // This behaves similarly to update but creates the entity\n * // if it doesn't exist in the service\n * await client.upsertEntity(entity)\n *\n * // We can also set the update mode to Replace.\n * // This behaves similarly to update but creates the entity\n * // if it doesn't exist in the service\n * await client.upsertEntity(entity, \"Replace\")\n * ```\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode = \"Merge\",\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<UpsertEntityResponse> {\n return tracingClient.withSpan(\n \"TableClient.upsertEntity\",\n options,\n async (updatedOptions) => {\n const partitionKey = escapeQuotes(entity.partitionKey);\n const rowKey = escapeQuotes(entity.rowKey);\n\n if (mode === \"Merge\") {\n return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ...updatedOptions,\n });\n }\n\n if (mode === \"Replace\") {\n return this.table.updateEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ...updatedOptions,\n });\n }\n throw new Error(`Unexpected value for update mode: ${mode}`);\n },\n {\n spanAttributes: {\n upsertEntityMode: mode,\n },\n },\n );\n }\n\n /**\n * Retrieves details about any stored access policies specified on the table that may be used with\n * Shared Access Signatures.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getAccessPolicy(options: OperationOptions = {}): Promise<GetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"TableClient.getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const signedIdentifiers = await this.table.getAccessPolicy(this.tableName, updatedOptions);\n return deserializeSignedIdentifier(signedIdentifiers);\n },\n );\n }\n\n /**\n * Sets stored access policies for the table that may be used with Shared Access Signatures.\n * @param tableAcl - The Access Control List for the table.\n * @param options - The options parameters.\n */\n public setAccessPolicy(\n tableAcl: SignedIdentifier[],\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<SetAccessPolicyResponse> {\n return tracingClient.withSpan(\"TableClient.setAccessPolicy\", options, (updatedOptions) => {\n const serlializedAcl = serializeSignedIdentifiers(tableAcl);\n return this.table.setAccessPolicy(this.tableName, {\n ...updatedOptions,\n tableAcl: serlializedAcl,\n });\n });\n }\n\n /**\n * Submits a Transaction which is composed of a set of actions. You can provide the actions as a list\n * or you can use {@link TableTransaction} to help building the transaction.\n *\n * Example usage:\n * ```typescript\n * const { TableClient } = require(\"@azure/data-tables\");\n * const connectionString = \"<connection-string>\"\n * const tableName = \"<tableName>\"\n * const client = TableClient.fromConnectionString(connectionString, tableName);\n * const actions = [\n * [\"create\", {partitionKey: \"p1\", rowKey: \"1\", data: \"test1\"}],\n * [\"delete\", {partitionKey: \"p1\", rowKey: \"2\"}],\n * [\"update\", {partitionKey: \"p1\", rowKey: \"3\", data: \"newTest\"}, \"Merge\"]\n * ]\n * const result = await client.submitTransaction(actions);\n * ```\n *\n * Example usage with TableTransaction:\n * ```js\n * const { TableClient } = require(\"@azure/data-tables\");\n * const connectionString = \"<connection-string>\"\n * const tableName = \"<tableName>\"\n * const client = TableClient.fromConnectionString(connectionString, tableName);\n * const transaction = new TableTransaction();\n * // Call the available action in the TableTransaction object\n * transaction.create({partitionKey: \"p1\", rowKey: \"1\", data: \"test1\"});\n * transaction.delete(\"p1\", \"2\");\n * transaction.update({partitionKey: \"p1\", rowKey: \"3\", data: \"newTest\"}, \"Merge\")\n * // submitTransaction with the actions list on the transaction.\n * const result = await client.submitTransaction(transaction.actions);\n * ```\n *\n * @param actions - tuple that contains the action to perform, and the entity to perform the action with\n */\n public async submitTransaction(actions: TransactionAction[]): Promise<TableTransactionResponse> {\n const partitionKey = actions[0][1].partitionKey;\n const transactionId = Uuid.generateUuid();\n const changesetId = Uuid.generateUuid();\n\n // Add pipeline\n const transactionClient = new InternalTableTransaction(\n this.url,\n partitionKey,\n transactionId,\n changesetId,\n this.generatedClient,\n new TableClient(this.url, this.tableName),\n this.credential,\n this.allowInsecureConnection,\n );\n\n for (const item of actions) {\n const [action, entity, updateMode = \"Merge\", updateOptions] = item;\n switch (action) {\n case \"create\":\n transactionClient.createEntity(entity);\n break;\n case \"delete\":\n transactionClient.deleteEntity(entity.partitionKey, entity.rowKey);\n break;\n case \"update\":\n transactionClient.updateEntity(entity, updateMode, updateOptions);\n break;\n case \"upsert\":\n transactionClient.upsertEntity(entity, updateMode);\n }\n }\n\n return transactionClient.submitTransaction();\n }\n\n /**\n *\n * Creates an instance of TableClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.table.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Options to configure the HTTP pipeline.\n * @returns A new TableClient from the given connection string.\n */\n public static fromConnectionString(\n connectionString: string,\n tableName: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: TableClientOptions,\n ): TableClient {\n const {\n url,\n options: clientOptions,\n credential,\n } = getClientParamsFromConnectionString(connectionString, options);\n if (credential) {\n return new TableClient(url, tableName, credential, clientOptions);\n } else {\n return new TableClient(url, tableName, clientOptions);\n }\n }\n}\n\ntype InternalQueryOptions = TableEntityQueryOptions & { top?: number };\ninterface InternalListTableEntitiesOptions extends ListTableEntitiesOptions {\n queryOptions?: InternalQueryOptions;\n /**\n * An entity query continuation token from a previous call.\n */\n continuationToken?: string;\n /**\n * If true, automatic type conversion will be disabled and entity properties will\n * be represented by full metadata types. For example, an Int32 value will be \\{value: \"123\", type: \"Int32\"\\} instead of 123.\n * This option applies for all the properties\n */\n disableTypeConversion?: boolean;\n}\n"],"names":["KnownGeoReplicationStatusType","createHmac","__rest","isNamedKeyCredential","TablePropertiesMapper","TableServicePropertiesMapper","xmlSerializer","coreClient","Mappers.TableQueryResponse","Mappers.TableQueryHeaders","Mappers.TableServiceError","Mappers.TableQueryExceptionHeaders","Parameters.format","Parameters.top","Parameters.select","Parameters.filter","Parameters.nextTableName","Parameters.url","Parameters.accept","Parameters.version","Parameters.requestId","Parameters.dataServiceVersion","Mappers.TableResponse","Mappers.TableCreateHeaders","Mappers.TableCreateExceptionHeaders","Parameters.tableProperties","Parameters.contentType","Parameters.responsePreference","Mappers.TableDeleteHeaders","Mappers.TableDeleteExceptionHeaders","Parameters.table","Parameters.accept1","Mappers.TableEntityQueryResponse","Mappers.TableQueryEntitiesHeaders","Mappers.TableQueryEntitiesExceptionHeaders","Parameters.timeout","Parameters.nextPartitionKey","Parameters.nextRowKey","Mappers.TableQueryEntitiesWithPartitionAndRowKeyHeaders","Mappers.TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders","Parameters.partitionKey","Parameters.rowKey","Mappers.TableUpdateEntityHeaders","Mappers.TableUpdateEntityExceptionHeaders","Parameters.tableEntityProperties","Parameters.contentType1","Parameters.ifMatch","Mappers.TableMergeEntityHeaders","Mappers.TableMergeEntityExceptionHeaders","Mappers.TableDeleteEntityHeaders","Mappers.TableDeleteEntityExceptionHeaders","Parameters.ifMatch1","Mappers.TableInsertEntityHeaders","Mappers.TableInsertEntityExceptionHeaders","Mappers.TableGetAccessPolicyHeaders","Mappers.TableGetAccessPolicyExceptionHeaders","Parameters.comp","Parameters.accept2","Mappers.TableSetAccessPolicyHeaders","Mappers.TableSetAccessPolicyExceptionHeaders","Parameters.tableAcl","Parameters.contentType2","Parameters.accept3","Mappers.ServiceSetPropertiesHeaders","Mappers.ServiceSetPropertiesExceptionHeaders","Parameters.tableServiceProperties","Parameters.restype","Parameters.comp1","Mappers.TableServiceProperties","Mappers.ServiceGetPropertiesHeaders","Mappers.ServiceGetPropertiesExceptionHeaders","Mappers.TableServiceStats","Mappers.ServiceGetStatisticsHeaders","Mappers.ServiceGetStatisticsExceptionHeaders","Parameters.comp2","AzureNamedKeyCredential","isSASCredential","isTokenCredential","createClientLogger","bearerTokenAuthenticationPolicy","authorizeRequestOnTenantChallenge","createTracingClient","parseXML","stringifyXML","__await","__asyncDelegator","__asyncValues","__asyncGenerator","createPipelineRequest","createHttpHeaders","RestError","serializationPolicy","serializationPolicyName","randomUUID"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAMG;AA4aH;AACA,IAAY,wBAIX;AAJD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,gCAAA,CAAA,GAAA,mCAAoE;AACpE,IAAA,wBAAA,CAAA,qCAAA,CAAA,GAAA,wCAA8E;AAC9E,IAAA,wBAAA,CAAA,kCAAA,CAAA,GAAA,qCAAwE;AAC1E,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,GAInC,EAAA,CAAA,CAAA;AAaD;AACA,IAAY,mBAGX;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,mBAAqC;AACrC,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC;AAClC,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA;AAYD;AACYA;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,6BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,6BAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EAJWA,qCAA6B,KAA7BA,qCAA6B,GAIxC,EAAA,CAAA,CAAA;;ACzdD;AACA;AAEA;;;;AAIG;AACG,SAAU,+BAA+B,CAAC,WAAmB,EAAA;IACjE,MAAM,qBAAqB,GAA0B,EAAE;AAEvD,IAAA,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;QAC3B,QAAQ,CAAC;AACP,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,KAAK,GAAG,IAAI;gBAClC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,KAAK,GAAG,IAAI;gBAClC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,MAAM,GAAG,IAAI;gBACnC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,IAAI,GAAG,IAAI;gBACjC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,GAAG,GAAG,IAAI;gBAChC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,qBAAqB,CAAC,MAAM,GAAG,IAAI;gBACnC;AAEF,YAAA;AACE,gBAAA,MAAM,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAA,CAAE,CAAC;;;AAIhE,IAAA,OAAO,qBAAqB;AAC9B;AAEA;;;;;;;;;AASG;AACG,SAAU,6BAA6B,CAAC,WAAkC,EAAA;;;;IAI9E,MAAM,gBAAgB,GAAa,EAAE;AACrC,IAAA,IAAI,WAAW,CAAC,KAAK,EAAE;AACrB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5B,IAAA,IAAI,WAAW,CAAC,KAAK,EAAE;AACrB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5B,IAAA,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5B,IAAA,IAAI,WAAW,CAAC,IAAI,EAAE;AACpB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5B,IAAA,IAAI,WAAW,CAAC,GAAG,EAAE;AACnB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE5B,IAAA,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,QAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG5B,IAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AAClC;;AC3EA;AACA;AAEA;;;;;AAKG;AACG,SAAU,4BAA4B,CAAC,QAAgB,EAAA;IAC3D,MAAM,kBAAkB,GAAuB,EAAE;AAEjD,IAAA,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;QACxB,QAAQ,CAAC;AACP,YAAA,KAAK,GAAG;AACN,gBAAA,kBAAkB,CAAC,IAAI,GAAG,IAAI;gBAC9B;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,kBAAkB,CAAC,IAAI,GAAG,IAAI;gBAC9B;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,kBAAkB,CAAC,KAAK,GAAG,IAAI;gBAC/B;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,kBAAkB,CAAC,KAAK,GAAG,IAAI;gBAC/B;AACF,YAAA;AACE,gBAAA,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAA,CAAE,CAAC;;;AAI7D,IAAA,OAAO,kBAAkB;AAC3B;AAEA;;;AAGG;AACG,SAAU,0BAA0B,CAAC,QAAA,GAA+B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAA;IACvF,MAAM,cAAc,GAAa,EAAE;AACnC,IAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjB,QAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE1B,IAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,QAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE1B,IAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,QAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE1B,IAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjB,QAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE1B,IAAA,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAChC;;ACrDA;AACA;AAkBA;;;;;;AAMG;AACG,SAAU,eAAe,CAAC,OAAoB,EAAA;IAClD,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,EAAE;;IAGX,OAAO,OAAO,CAAC,GAAG,GAAG,CAAA,EAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAE,CAAA,GAAG,OAAO,CAAC,KAAK;AACxE;;AChCA;AACA;AAEA;;;;;;;AAOG;SACa,oBAAoB,CAAC,IAAU,EAAE,mBAA4B,IAAI,EAAA;;AAE/E,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE;AAErC,IAAA,OAAO;AACL,UAAE,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG;AAC5D,UAAE,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AAC1D;;AClBA;AACA;AAWA;;;;;;;;AAQG;MACU,kBAAkB,CAAA;AAwI7B;;;;AAIG;AACH,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO;AACL,gBAAA,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;AAC1B,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;aAC/B;;AAEH,QAAA,OAAO,SAAS;;AAGlB;;;;;;AAMG;AACH,IAAA,WAAA,CAAY,OAAe,EAAE,SAAiB,EAAE,UAAqC,EAAE,EAAA;AACrF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAE1B,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AAClC,QAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AAEtC,QAAA,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc;YACzD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc;YAC9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc;YAC9D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe;YAChE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa;YAC5D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa;AAE5D,YAAA,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B;AACpE,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;;;AAI9C;;;AAGG;IACI,QAAQ,GAAA;AACb,QAAA,MAAM,MAAM,GAAa;AACvB,YAAA,IAAI;AACJ,YAAA,IAAI;AACJ,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,IAAI;AACJ,YAAA,IAAI;AACJ,YAAA,KAAK;AACL,YAAA,IAAI;AACJ,YAAA,OAAO;AACP,YAAA,OAAO;AACP,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,IAAI;AACJ,YAAA,IAAI;AACJ,YAAA,KAAK;AACL,YAAA,MAAM;AACN,YAAA,MAAM;AACN,YAAA,MAAM;AACN,YAAA,MAAM;AACN,YAAA,MAAM;AACN,YAAA,OAAO;AACP,YAAA,MAAM;AACN,YAAA,IAAI;AACJ,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,KAAK;AACL,YAAA,KAAK;SACN;QACD,MAAM,OAAO,GAAa,EAAE;AAE5B,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,KAAK;AACX,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;oBAC1D;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;oBAC3D;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;oBAChE;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;oBAC3D;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,SAAS,CACvE;oBACD;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,SAAS,CACzE;oBACD;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CACzD;oBACD;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;oBAC7D;gBACF,KAAK,OAAO;oBACV,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC5D;gBACF,KAAK,OAAO;oBACV,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;oBACjE;gBACF,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,SAAS,CACnF;oBACD;gBACF,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAC1B,OAAO,EACP,KAAK,EACL,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS,CACrF;oBACD;gBACF,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;oBAChE;gBACF,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;oBAChE;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;oBAC9D;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC5D;AACF,gBAAA,KAAK,OAAO;oBACV,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC;oBAC7E;AACF,gBAAA,KAAK,MAAM;oBACT,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;oBAChE;AACF,gBAAA,KAAK,IAAI;oBACP,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC5D;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;oBACpE;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;oBAC9D;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;oBAClE;AACF,gBAAA,KAAK,KAAK;oBACR,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;oBAC5D;;;AAGN,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG1B;;;;;;AAMG;AACK,IAAA,uBAAuB,CAAC,OAAiB,EAAE,GAAW,EAAE,KAAc,EAAA;QAC5E,IAAI,CAAC,KAAK,EAAE;YACV;;AAGF,QAAA,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,CAAA,EAAG,GAAG,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,CAAC;;;AAGpC;;AC1WD;AACA;AAEA;;;;;AAKG;AACG,SAAU,iCAAiC,CAAC,aAAqB,EAAA;IACrE,MAAM,uBAAuB,GAA4B,EAAE;AAE3D,IAAA,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE;QAC7B,QAAQ,CAAC;AACP,YAAA,KAAK,GAAG;AACN,gBAAA,uBAAuB,CAAC,OAAO,GAAG,IAAI;gBACtC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,uBAAuB,CAAC,SAAS,GAAG,IAAI;gBACxC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,uBAAuB,CAAC,MAAM,GAAG,IAAI;gBACrC;AACF,YAAA;AACE,gBAAA,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAA,CAAE,CAAC;;;AAIzD,IAAA,OAAO,uBAAuB;AAChC;AAEA;;;;;AAKG;AACG,SAAU,+BAA+B,CAAC,aAAsC,EAAA;IACpF,MAAM,mBAAmB,GAAa,EAAE;AACxC,IAAA,IAAI,aAAa,CAAC,OAAO,EAAE;AACzB,QAAA,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE/B,IAAA,IAAI,aAAa,CAAC,SAAS,EAAE;AAC3B,QAAA,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE/B,IAAA,IAAI,aAAa,CAAC,MAAM,EAAE;AACxB,QAAA,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE/B,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC;;ACjDA;AACA;AAEO,MAAM,eAAe,GAAG,YAAY;AACpC,MAAM,4BAA4B,GAAG,UAAU;AAC/C,MAAM,4BAA4B,GAAG,MAAM;AAE3C,MAAM,aAAa,GAAG,oCAAoC;AAC1D,MAAM,YAAY,GAAG,mCAAmC;AAExD,MAAM,eAAe,GAAG;AAC7B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,yBAAyB,EAAE,2BAA2B;AACtD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,YAAY,EAAE,cAAc;CAC7B;AAEM,MAAM,+BAA+B,GAAG;IAC7C,6BAA6B;IAC7B,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,QAAQ;IACR,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,YAAY;IACZ,wBAAwB;IACxB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,iBAAiB;IACjB,+BAA+B;IAC/B,cAAc;IACd,eAAe;IACf,QAAQ;IACR,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,MAAM;IACN,eAAe;IACf,QAAQ;IACR,MAAM;IACN,oBAAoB;IACpB,kBAAkB;IAClB,2BAA2B;IAC3B,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,iCAAiC;IACjC,oCAAoC;IACpC,8BAA8B;IAC9B,8BAA8B;IAC9B,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,YAAY;IACZ,+BAA+B;IAC/B,uBAAuB;IACvB,eAAe;IACf,mBAAmB;IACnB,UAAU;IACV,mBAAmB;IACnB,eAAe;IACf,qBAAqB;IACrB,kBAAkB;IAClB,8BAA8B;IAC9B,2BAA2B;IAC3B,mBAAmB;IACnB,qBAAqB;IACrB,gCAAgC;IAChC,oBAAoB;IACpB,+BAA+B;IAC/B,4BAA4B;IAC5B,qCAAqC;IACrC,2BAA2B;IAC3B,uBAAuB;IACvB,mBAAmB;IACnB,yBAAyB;IACzB,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,wBAAwB;IACxB,4BAA4B;IAC5B,yBAAyB;IACzB,6BAA6B;IAC7B,eAAe;IACf,yBAAyB;IACzB,sBAAsB;IACtB,+BAA+B;IAC/B,2BAA2B;IAC3B,iCAAiC;IACjC,gBAAgB;IAChB,4BAA4B;CAC7B;;ACvGD;AACA;AAIgB,SAAA,iBAAiB,CAAC,YAAoB,EAAE,UAAkB,EAAA;IACxE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC7C,IAAA,OAAOC,iBAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChF;;ACRA;AACA;AA2EA;;;;;;;;;;AAUG;AACa,SAAA,iCAAiC,CAC/C,yBAAoD,EACpD,UAA8B,EAAA;AAE9B,IAAA,MAAM,OAAO,GAAG,yBAAyB,CAAC;UACtC,yBAAyB,CAAC;UAC1B,eAAe;IAEnB,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,yBAAyB,CAAC,WAAW,CAAC;IAC9F,MAAM,cAAc,GAAG,0BAA0B,CAC/C,4BAA4B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CACjE;;IAED,MAAM,mBAAmB,GAAG,+BAA+B,CACzD,iCAAiC,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAC3E;AAED,IAAA,MAAM,YAAY,GAAG;AACnB,QAAA,UAAU,CAAC,IAAI;QACf,iBAAiB;QACjB,cAAc;QACd,mBAAmB;AACnB,QAAA,yBAAyB,CAAC;cACtB,oBAAoB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK;AAChE,cAAE,EAAE;AACN,QAAA,oBAAoB,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC;AAChE,QAAA,yBAAyB,CAAC,OAAO,GAAG,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3F,yBAAyB,CAAC,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,GAAG,EAAE;QAC5E,OAAO;AACP,QAAA,EAAE;AACH,KAAA,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,MAAM,SAAS,GAAW,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;AAEzE,IAAA,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE;AAChD,QAAA,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AACzC,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,aAAa,EAAE,mBAAmB;QAClC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;QAC5C,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;QAC5C,SAAS,EAAE,yBAAyB,CAAC,SAAS;QAC9C,OAAO,EAAE,yBAAyB,CAAC,OAAO;AAC3C,KAAA,CAAC;AACJ;;AClIA;AACA;AAaA;;;;;;;;AAQG;SACa,kBAAkB,CAChC,UAA8B,EAC9B,UAA6B,EAAE,EAAA;AAE/B,IAAA,MAAM,EACJ,SAAS,EACT,WAAW,GAAG,+BAA+B,CAAC,IAAI,CAAC,EACnD,aAAa,GAAG,KAAK,EACrB,QAAQ,GAAG,4BAA4B,CAAC,GAAG,CAAC,EAE1C,GAAA,OAAO,EADN,IAAI,GACLC,YAAA,CAAA,OAAO,EANL,CAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,CAML,CAAU;AACX,IAAA,IAAI,CAACC,6BAAoB,CAAC,UAAU,CAAC,EAAE;AACrC,QAAA,MAAM,UAAU,CACd,+FAA+F,CAChG;;IAGH,IAAI,MAAM,GAAG,SAAS;AAEtB,IAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;;IAGhD,MAAM,GAAG,GAAG,iCAAiC,CAEzC,MAAA,CAAA,MAAA,CAAA,EAAA,WAAW,EACX,SAAS,EAAE,MAAM,EACjB,aAAa,EACb,QAAQ,EAAE,0BAA0B,CAAC,QAAQ,CAAC,EAC3C,EAAA,IAAI,CAET,EAAA,UAAU,CACX,CAAC,QAAQ,EAAE;AAEZ,IAAA,OAAO,GAAG;AACZ;;AC3DA;AACA;AAEA;;;;;AAKG;AACG,SAAU,6BAA6B,CAAC,WAAmB,EAAA;IAC/D,MAAM,mBAAmB,GAAwB,EAAE;AACnD,IAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC9B,QAAQ,IAAI;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,mBAAmB,CAAC,KAAK,GAAG,IAAI;gBAChC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,mBAAmB,CAAC,GAAG,GAAG,IAAI;gBAC9B;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,mBAAmB,CAAC,MAAM,GAAG,IAAI;gBACjC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,mBAAmB,CAAC,MAAM,GAAG,IAAI;gBACjC;AACF,YAAA;AACE,gBAAA,MAAM,IAAI,UAAU,CAAC,uBAAuB,IAAI,CAAA,CAAE,CAAC;;;AAIzD,IAAA,OAAO,mBAAmB;AAC5B;AAEA;;;;;AAKG;AACG,SAAU,2BAA2B,CAAC,WAAiC,EAAA;IAC3E,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,OAAO,EAAE;;IAGX,MAAM,iBAAiB,GAAa,EAAE;AACtC,IAAA,IAAI,WAAW,CAAC,KAAK,EAAE;AACrB,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE7B,IAAA,IAAI,WAAW,CAAC,GAAG,EAAE;AACnB,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE7B,IAAA,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG7B,IAAA,IAAI,WAAW,CAAC,MAAM,EAAE;AACtB,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE7B,IAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;AACnC;;AC3DA;AACA;AAEA;;;;AAIG;AAsFH;;;;;;AAMG;SACa,+BAA+B,CAC7C,SAAiB,EACjB,UAA8B,EAC9B,uBAAgD,EAAA;;IAEhD,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,eAAe;AAElE,IAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAC5B,QAAA,MAAM,SAAS,CAAC,4BAA4B,CAAC;;IAG/C,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;;IAG/C,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,uBAAuB,CAAC,WAAW,CAAC;AAC1F,IAAA,MAAM,WAAW,GAAG,uBAAuB,CAAC;UACxC,oBAAoB,CAAC,uBAAuB,CAAC,QAAQ,EAAE,KAAK;UAC5D,EAAE;AACN,IAAA,MAAM,YAAY,GAAG,uBAAuB,CAAC;UACzC,oBAAoB,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK;UAC7D,EAAE;IACN,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1E,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;IACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,uBAAuB,CAAC,OAAO,CAAC;AACjE,IAAA,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,IAAI,EAAE;IAC7D,MAAM,oBAAoB,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;IAC5E,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;IAChE,MAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;IACxE,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,uBAAuB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;AAE5D,IAAA,MAAM,YAAY,GAAG;QACnB,iBAAiB;QACjB,WAAW;QACX,YAAY;QACZ,qBAAqB;QACrB,gBAAgB;QAChB,QAAQ;QACR,cAAc;QACd,OAAO;QACP,oBAAoB;QACpB,cAAc;QACd,kBAAkB;QAClB,YAAY;AACb,KAAA,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;AAEjE,IAAA,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE;AAChD,QAAA,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;QAC1C,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;QAC1C,SAAS,EAAE,uBAAuB,CAAC,SAAS;QAC5C,OAAO,EAAE,uBAAuB,CAAC,OAAO;QACxC,UAAU,EAAE,uBAAuB,CAAC,UAAU;QAC9C,SAAS;QACT,iBAAiB,EAAE,uBAAuB,CAAC,iBAAiB;QAC5D,WAAW,EAAE,uBAAuB,CAAC,WAAW;QAChD,eAAe,EAAE,uBAAuB,CAAC,eAAe;QACxD,SAAS,EAAE,uBAAuB,CAAC,SAAS;AAC7C,KAAA,CAAC;AACJ;AAEA,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB,EAAA;;;IAG9D,OAAO,CAAA,OAAA,EAAU,WAAW,CAAI,CAAA,EAAA,SAAS,CAAC,WAAW,EAAE,EAAE;AAC3D;;ACvKA;AACA;AASA;;;;;;;;AAQG;AACG,SAAU,gBAAgB,CAC9B,SAAiB,EACjB,UAA8B,EAC9B,UAAmC,EAAE,EAAA;AAErC,IAAA,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO;AAExC,IAAA,IAAI,CAACA,6BAAoB,CAAC,UAAU,CAAC,EAAE;AACrC,QAAA,MAAM,UAAU,CACd,+FAA+F,CAChG;;;;AAKH,IAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QACvB,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,WAAW,GAAG,6BAA6B,CAAC,GAAG,CAAC;;AAGlD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;;;IAIrD,MAAM,GAAG,GAAG,+BAA+B,CAAC,SAAS,EAAE,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC5D,OAAO,CAAA,EAAA,EACV,SAAS;AACT,QAAA,WAAW,EACX,CAAA,CAAA,CAAC,QAAQ,EAAE;AAEb,IAAA,OAAO,GAAG;AACZ;;ACpDA;AACA;AAKA;;AAEG;AACI,MAAM,iCAAiC,GAAG,+BAA+B;AACzE,MAAM,2BAA2B,GAAG,2BAA2B;AACtE,MAAM,8BAA8B,GAAG,YAAY;AAEnD;;;AAGG;AACI,MAAM,6BAA6B,GAAmB;AAC3D,IAAA,IAAI,EAAE,iCAAiC;AACvC,IAAA,WAAW,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;;QAE/B,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE;;AAEhD,YAAA,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC;;YAE/C,GAAG,CAAC,GAAG,GAAG,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC;;AAG/C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;CACF;AAED;;AAEG;AACG,SAAU,6BAA6B,CAAC,OAAyB,EAAA;;IACrE,MAAM,cAAc,GAAG,EAAE,CAAC,2BAA2B,GAAG,MAAM,EAAE;AAChE,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,OAAO,CACV,EAAA,EAAA,cAAc,kCACT,OAAO,CAAC,cAAc,CACzB,EAAA,EAAA,aAAa,EACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,EAAA,GAAA,OAAO,CAAC,cAAc,0CAAE,aAAa,CAAA,EACrC,cAAc,CAGrB,EAAA,CAAA,EAAA,CAAA;AACJ;AAEA;;AAEG;AACH,SAAS,0BAA0B,CAAC,UAAkB,EAAA;AACpD,IAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;IAC5C,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,IAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAG,EAAA,IAAI,CAAC,CAAC,CAAC,CAAA,EAAG,8BAA8B,CAAA,CAAE;;IAEzD,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAE1C,IAAA,OAAO,gBAAgB,CAAC,QAAQ,EAAE;AACpC;;AC7DA;;;;;;AAMG;AAII,MAAM,kBAAkB,GAA+B;AAC5D,IAAA,cAAc,EAAE,oBAAoB;AACpC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,eAAe,EAAE;AACf,YAAA,aAAa,EAAE;AACb,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,cAAc,EAAE,yBAAyB;AACzC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;AACF;AACF;CACF;AAEM,MAAM,uBAAuB,GAA+B;AACjE,IAAA,cAAc,EAAE,yBAAyB;AACzC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,WAAW;AAC3B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,iBAAiB,GAA+B;AAC3D,IAAA,cAAc,EAAE,mBAAmB;AACnC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,eAAe,EAAE;AACf,YAAA,UAAU,EAAE;AACV,gBAAA,cAAc,EAAE,eAAe;AAC/B,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,6BAA6B;AAC7C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,kCAAkC,GAA+B;AAC5E,IAAA,cAAc,EAAE,oCAAoC;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oCAAoC;AAC/C,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,eAAe,GAA+B;AACzD,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,WAAW;AAC3B,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,wBAAwB,GAA+B;AAClE,IAAA,cAAc,EAAE,0BAA0B;AAC1C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,eAAe,EAAE;AACf,YAAA,aAAa,EAAE;AACb,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,cAAc,EAAE,uBAAuB;AACvC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B;AACF;AACF;AACF;AACF;AACF;CACF;AAEM,MAAM,gBAAgB,GAA+B;AAC1D,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,OAAO,EAAE,kBAAkB;AAC3B,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,kBAAkB;AAC7B,QAAA,eAAe,EAAE;AACf,YAAA,EAAE,EAAE;AACF,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,YAAY,GAA+B;AACtD,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,eAAe,EAAE;AACf,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,cAAc,EAAE,YAAY;AAC5B,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,sBAAsB,GAA+B;AAChE,IAAA,cAAc,EAAE,wBAAwB;AACxC,IAAA,OAAO,EAAE,0BAA0B;AACnC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,cAAc,EAAE,eAAe;AAC/B,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,cAAc,EAAE,UAAU;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;AACF;AACF;CACF;AAEM,MAAM,OAAO,GAA+B;AACjD,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EAAE,OAAO;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,eAAe,GAA+B;AACzD,IAAA,cAAc,EAAE,iBAAiB;AACjC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE;AACX,oBAAA,gBAAgB,EAAE;AACnB,iBAAA;AACD,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,OAAO,GAA+B;AACjD,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,SAAS;AACzB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,QAAQ,GAA+B;AAClD,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,eAAe,EAAE;AACf,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,gBAAgB;AAChC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,gBAAgB;AAChC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,gBAAgB;AAChC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,gBAAgB;AAChC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,eAAe,EAAE;AACf,gBAAA,WAAW,EAAE;AACX,oBAAA,gBAAgB,EAAE;AACnB,iBAAA;AACD,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,iBAAiB,GAA+B;AAC3D,IAAA,cAAc,EAAE,mBAAmB;AACnC,IAAA,OAAO,EAAE,qBAAqB;AAC9B,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,eAAe,EAAE;AACf,YAAA,cAAc,EAAE;AACd,gBAAA,cAAc,EAAE,gBAAgB;AAChC,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,cAAc,GAA+B;AACxD,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,gBAAgB;AAC3B,QAAA,eAAe,EAAE;AACf,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,aAAa,GAA+B;AACvD,IAAA,cAAc,EAAE,eAAe;AAC/B,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,eAAe;QAC1B,eAAe,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACV,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAA,EAAA,EAC/C,aAAa,EAAE;AACb,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;aACF,EACF;AACF;CACF;AAEM,MAAM,iBAAiB,GAA+B;AAC3D,IAAA,cAAc,EAAE,oBAAoB;AACpC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,4BAA4B,EAAE;AAC5B,gBAAA,cAAc,EAAE,iCAAiC;AACjD,gBAAA,OAAO,EAAE,iCAAiC;AAC1C,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,0BAA0B,GAA+B;AACpE,IAAA,cAAc,EAAE,6BAA6B;AAC7C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,kBAAkB,GAA+B;AAC5D,IAAA,cAAc,EAAE,qBAAqB;AACrC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,kBAAkB,GAA+B;AAC5D,IAAA,cAAc,EAAE,qBAAqB;AACrC,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,yBAAyB,GAA+B;AACnE,IAAA,cAAc,EAAE,4BAA4B;AAC5C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,2BAA2B;AACtC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,+BAA+B,EAAE;AAC/B,gBAAA,cAAc,EAAE,oCAAoC;AACpD,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,yBAAyB,EAAE;AACzB,gBAAA,cAAc,EAAE,8BAA8B;AAC9C,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,kCAAkC,GAA+B;AAC5E,IAAA,cAAc,EAAE,qCAAqC;AACrD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,oCAAoC;AAC/C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,+CAA+C,GAA+B;AACzF,IAAA,cAAc,EAAE,kDAAkD;AAClE,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,iDAAiD;AAC5D,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,+BAA+B,EAAE;AAC/B,gBAAA,cAAc,EAAE,oCAAoC;AACpD,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,yBAAyB,EAAE;AACzB,gBAAA,cAAc,EAAE,8BAA8B;AAC9C,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,wDAAwD,GAA+B;AAClG,IAAA,cAAc,EAAE,2DAA2D;AAC3E,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0DAA0D;AACrE,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,wBAAwB,GAA+B;AAClE,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,iCAAiC,GAA+B;AAC3E,IAAA,cAAc,EAAE,oCAAoC;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mCAAmC;AAC9C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,uBAAuB,GAA+B;AACjE,IAAA,cAAc,EAAE,0BAA0B;AAC1C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,yBAAyB;AACpC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,gCAAgC,GAA+B;AAC1E,IAAA,cAAc,EAAE,mCAAmC;AACnD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,kCAAkC;AAC7C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,wBAAwB,GAA+B;AAClE,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,iCAAiC,GAA+B;AAC3E,IAAA,cAAc,EAAE,oCAAoC;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mCAAmC;AAC9C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,wBAAwB,GAA+B;AAClE,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,iBAAiB,EAAE;AACjB,gBAAA,cAAc,EAAE,oBAAoB;AACpC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,iCAAiC,GAA+B;AAC3E,IAAA,cAAc,EAAE,oCAAoC;AACpD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,mCAAmC;AAC9C,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,oCAAoC,GAA+B;AAC9E,IAAA,cAAc,EAAE,uCAAuC;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,oCAAoC,GAA+B;AAC9E,IAAA,cAAc,EAAE,uCAAuC;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,oCAAoC,GAA+B;AAC9E,IAAA,cAAc,EAAE,uCAAuC;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,oCAAoC,GAA+B;AAC9E,IAAA,cAAc,EAAE,uCAAuC;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,2BAA2B,GAA+B;AACrE,IAAA,cAAc,EAAE,8BAA8B;AAC9C,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,6BAA6B;AACxC,QAAA,eAAe,EAAE;AACf,YAAA,eAAe,EAAE;AACf,gBAAA,cAAc,EAAE,wBAAwB;AACxC,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,cAAc;AAC9B,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,cAAc,EAAE,MAAM;AACtB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;AAEM,MAAM,oCAAoC,GAA+B;AAC9E,IAAA,cAAc,EAAE,uCAAuC;AACvD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,sCAAsC;AACjD,QAAA,eAAe,EAAE;AACf,YAAA,SAAS,EAAE;AACT,gBAAA,cAAc,EAAE,iBAAiB;AACjC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE;AACP;AACF;AACF;AACF;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn2CD;;;;;;AAMG;AAYI,MAAM,MAAM,GAAuB;AACxC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,wCAAwC;AACtD,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,GAAG,GAA0B;AACxC,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF,KAAA;AACD,IAAA,YAAY,EAAE;CACf;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,SAAS,GAAuB;AAC3C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AACvC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,wBAAwB;AACxC,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,kBAAkB,GAAuB;AACpD,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC;AACpD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,GAAG,GAA4B;AAC1C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC;AACjD,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,gBAAgB,EAAE;AACnB,SAAA;AACD,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC;AACpD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,MAAM,GAA4B;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,CAAC;AACpD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,aAAa,GAA4B;AACpD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;AAC3C,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,WAAW,GAAuB;AAC7C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AACzC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,mCAAmC;AACjD,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,eAAe,GAAuB;AACjD,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,MAAM,EAAEC;CACT;AAEM,MAAM,kBAAkB,GAAuB;AACpD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC;AAChD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,KAAK,GAA0B;AAC1C,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,OAAO,GAA4B;AAC9C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACrC,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,gBAAgB,EAAE;AACnB,SAAA;AACD,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,gBAAgB,GAA4B;AACvD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC;AAC9C,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,UAAU,GAA4B;AACjD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;AACxC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,YAAY,GAA0B;AACjD,IAAA,aAAa,EAAE,cAAc;AAC7B,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,MAAM,GAA0B;AAC3C,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,YAAY,GAAuB;AAC9C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AACzC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,qBAAqB,GAAuB;AACvD,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC;AACnD,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,OAAO,EAAE,uBAAuB;AAChC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC/B;AACF;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACrC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,QAAQ,GAAuB;AAC1C,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,IAAI,GAA4B;AAC3C,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,YAAY,GAAuB;AAC9C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;AACzC,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,cAAc;AAC9B,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,QAAQ,GAAuB;AAC1C,IAAA,aAAa,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;AACtC,IAAA,MAAM,EAAE;AACN,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,SAAS,EAAE;AACZ;AACF;AACF;AACF;CACF;AAEM,MAAM,OAAO,GAAuB;AACzC,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,sBAAsB,GAAuB;AACxD,IAAA,aAAa,EAAE,wBAAwB;AACvC,IAAA,MAAM,EAAEC;CACT;AAEM,MAAM,OAAO,GAA4B;AAC9C,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,KAAK,GAA4B;AAC5C,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;AAEM,MAAM,KAAK,GAA4B;AAC5C,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,MAAM,EAAE;AACN,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE;AACP;AACF;CACF;;ACjZD;;;;;;AAMG;AAiCH;MACa,SAAS,CAAA;AAGpB;;;AAGG;AACH,IAAA,WAAA,CAAY,MAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGtB;;;AAGG;AACH,IAAA,KAAK,CACH,OAAkC,EAAA;AAElC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC;;AAG1E;;;;AAIG;IACH,MAAM,CACJ,eAAgC,EAChC,OAAmC,EAAA;AAEnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,eAAe,EAAE,OAAO,EAAE,EAC5B,mBAAmB,CACpB;;AAGH;;;;AAIG;IACH,MAAM,CACJ,KAAa,EACb,OAAmC,EAAA;AAEnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,mBAAmB,CACpB;;AAGH;;;;AAIG;IACH,aAAa,CACX,KAAa,EACb,OAA0C,EAAA;AAE1C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,0BAA0B,CAC3B;;AAGH;;;;;;AAMG;AACH,IAAA,mCAAmC,CACjC,KAAa,EACb,YAAoB,EACpB,MAAc,EACd,OAAgE,EAAA;AAEhE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,EACxC,gDAAgD,CACjD;;AAGH;;;;;;AAMG;AACH,IAAA,YAAY,CACV,KAAa,EACb,YAAoB,EACpB,MAAc,EACd,OAAyC,EAAA;AAEzC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,EACxC,yBAAyB,CAC1B;;AAGH;;;;;;AAMG;AACH,IAAA,WAAW,CACT,KAAa,EACb,YAAoB,EACpB,MAAc,EACd,OAAwC,EAAA;AAExC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,EACxC,wBAAwB,CACzB;;AAGH;;;;;;;;;AASG;IACH,YAAY,CACV,KAAa,EACb,YAAoB,EACpB,MAAc,EACd,OAAe,EACf,OAAyC,EAAA;QAEzC,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EACjD,yBAAyB,CAC1B;;AAGH;;;;AAIG;IACH,YAAY,CACV,KAAa,EACb,OAAyC,EAAA;AAEzC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,yBAAyB,CAC1B;;AAGH;;;;;AAKG;IACH,eAAe,CACb,KAAa,EACb,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,4BAA4B,CAC7B;;AAGH;;;;AAIG;IACH,eAAe,CACb,KAAa,EACb,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,KAAK,EAAE,OAAO,EAAE,EAClB,4BAA4B,CAC7B;;AAEJ;AACD;AACA,MAAMC,eAAa,GAAGC,qBAAU,CAAC,gBAAgB,CAAC,OAAO,cAAc,IAAI,CAAC;AAE5E,MAAM,UAAU,GAAGA,qBAAU,CAAC,gBAAgB,CAAC,OAAO,cAAc,KAAK,CAAC;AAE1E,MAAM,kBAAkB,GAA6B;AACnD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEC,kBAA0B;YACtC,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEC,iBAAyB;YACrC,aAAa,EAAEC;AAChB;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAC,MAAiB;AACjB,QAAAC,GAAc;AACd,QAAAC,MAAiB;AACjB,QAAAC,MAAiB;AACjB,QAAAC;AACD,KAAA;AACD,IAAA,aAAa,EAAE,CAACC,GAAc,CAAC;AAC/B,IAAA,gBAAgB,EAAE;AAChB,QAAAC,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC;AACD,KAAA;IACD;CACD;AACD,MAAM,mBAAmB,GAA6B;AACpD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEC,aAAqB;YACjC,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,GAAG,EAAE;YACH,aAAa,EAAEA;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEb,iBAAyB;YACrC,aAAa,EAAEc;AAChB;AACF,KAAA;IACD,WAAW,EAAEC,eAA0B;AACvC,IAAA,eAAe,EAAE,CAACb,MAAiB,CAAC;AACpC,IAAA,aAAa,EAAE,CAACK,GAAc,CAAC;AAC/B,IAAA,gBAAgB,EAAE;AAChB,QAAAC,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC,kBAA6B;AAC7B,QAAAK,WAAsB;AACtB,QAAAC;AACD,KAAA;AACD,IAAA,SAAS,EAAE,MAAM;IACjB;CACD;AACD,MAAM,mBAAmB,GAA6B;AACpD,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAElB,iBAAyB;YACrC,aAAa,EAAEmB;AAChB;AACF,KAAA;IACD,aAAa,EAAE,CAACZ,GAAc,EAAEa,KAAgB,CAAC;AACjD,IAAA,gBAAgB,EAAE;AAChB,QAAAX,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAW;AACD,KAAA;IACD;CACD;AACD,MAAM,0BAA0B,GAA6B;AAC3D,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEC,wBAAgC;YAC5C,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEvB,iBAAyB;YACrC,aAAa,EAAEwB;AAChB;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAAtB,MAAiB;AACjB,QAAAC,GAAc;AACd,QAAAC,MAAiB;AACjB,QAAAC,MAAiB;AACjB,QAAAoB,OAAkB;AAClB,QAAAC,gBAA2B;AAC3B,QAAAC;AACD,KAAA;IACD,aAAa,EAAE,CAACpB,GAAc,EAAEa,KAAgB,CAAC;AACjD,IAAA,gBAAgB,EAAE;AAChB,QAAAZ,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC;AACD,KAAA;IACD;CACD;AACD,MAAM,gDAAgD,GAA6B;AACjF,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7D,aAAA;YACD,aAAa,EAAEiB;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5B,iBAAyB;YACrC,aAAa,EACX6B;AACH;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA3B,MAAiB;AACjB,QAAAE,MAAiB;AACjB,QAAAC,MAAiB;AACjB,QAAAoB;AACD,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAAlB,GAAc;AACd,QAAAa,KAAgB;AAChB,QAAAU,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAAvB,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC;AACD,KAAA;IACD;CACD;AACD,MAAM,yBAAyB,GAA6B;AAC1D,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEqB;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEhC,iBAAyB;YACrC,aAAa,EAAEiC;AAChB;AACF,KAAA;IACD,WAAW,EAAEC,qBAAgC;IAC7C,eAAe,EAAE,CAAChC,MAAiB,EAAEuB,OAAkB,CAAC;AACxD,IAAA,aAAa,EAAE;AACb,QAAAlB,GAAc;AACd,QAAAa,KAAgB;AAChB,QAAAU,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAAtB,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC,kBAA6B;AAC7B,QAAAU,OAAkB;AAClB,QAAAc,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,SAAS,EAAE,MAAM;IACjB;CACD;AACD,MAAM,wBAAwB,GAA6B;AACzD,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAErC,iBAAyB;YACrC,aAAa,EAAEsC;AAChB;AACF,KAAA;IACD,WAAW,EAAEJ,qBAAgC;IAC7C,eAAe,EAAE,CAAChC,MAAiB,EAAEuB,OAAkB,CAAC;AACxD,IAAA,aAAa,EAAE;AACb,QAAAlB,GAAc;AACd,QAAAa,KAAgB;AAChB,QAAAU,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAAtB,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC,kBAA6B;AAC7B,QAAAU,OAAkB;AAClB,QAAAc,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,SAAS,EAAE,MAAM;IACjB;CACD;AACD,MAAM,yBAAyB,GAA6B;AAC1D,IAAA,IAAI,EAAE,2DAA2D;AACjE,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEG;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEvC,iBAAyB;YACrC,aAAa,EAAEwC;AAChB;AACF,KAAA;IACD,eAAe,EAAE,CAACtC,MAAiB,EAAEuB,OAAkB,CAAC;AACxD,IAAA,aAAa,EAAE;AACb,QAAAlB,GAAc;AACd,QAAAa,KAAgB;AAChB,QAAAU,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAAvB,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC,kBAA6B;AAC7B,QAAA8B;AACD,KAAA;IACD;CACD;AACD,MAAM,yBAAyB,GAA6B;AAC1D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7D,aAAA;YACD,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,GAAG,EAAE;YACH,aAAa,EAAEA;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAE1C,iBAAyB;YACrC,aAAa,EAAE2C;AAChB;AACF,KAAA;IACD,WAAW,EAAET,qBAAgC;IAC7C,eAAe,EAAE,CAAChC,MAAiB,EAAEuB,OAAkB,CAAC;IACxD,aAAa,EAAE,CAAClB,GAAc,EAAEa,KAAgB,CAAC;AACjD,IAAA,gBAAgB,EAAE;AAChB,QAAAZ,MAAiB;AACjB,QAAAC,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAC,kBAA6B;AAC7B,QAAAK,WAAsB;AACtB,QAAAC;AACD,KAAA;AACD,IAAA,SAAS,EAAE,MAAM;IACjB;CACD;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;AACH,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,OAAO,EAAE;wBACP,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB;AACzD;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE,mBAAmB;AACnC,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,aAAa,EAAE2B;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAE5C,iBAAyB;YACrC,aAAa,EAAE6C;AAChB;AACF,KAAA;IACD,eAAe,EAAE,CAACpB,OAAkB,EAAEqB,IAAe,CAAC;IACtD,aAAa,EAAE,CAACvC,GAAc,EAAEa,KAAgB,CAAC;AACjD,IAAA,gBAAgB,EAAE;AAChB,QAAAX,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAqC;AACD,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,UAAU,EAAEnD;CACb;AACD,MAAM,4BAA4B,GAA6B;AAC7D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEoD;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAEhD,iBAAyB;YACrC,aAAa,EAAEiD;AAChB;AACF,KAAA;IACD,WAAW,EAAEC,QAAmB;IAChC,eAAe,EAAE,CAACzB,OAAkB,EAAEqB,IAAe,CAAC;IACtD,aAAa,EAAE,CAACvC,GAAc,EAAEa,KAAgB,CAAC;AACjD,IAAA,gBAAgB,EAAE;AAChB,QAAAX,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAyC,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,gCAAgC;AAC7C,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAExD;CACb;;ACpjBD;;;;;;AAMG;AAiBH;MACa,WAAW,CAAA;AAGtB;;;AAGG;AACH,IAAA,WAAA,CAAY,MAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;AAGtB;;;;;AAKG;IACH,aAAa,CACX,sBAA8C,EAC9C,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,sBAAsB,EAAE,OAAO,EAAE,EACnC,0BAA0B,CAC3B;;AAGH;;;;AAIG;AACH,IAAA,aAAa,CACX,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,OAAO,EAAE,EACX,0BAA0B,CAC3B;;AAGH;;;;AAIG;AACH,IAAA,aAAa,CACX,OAA4C,EAAA;AAE5C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CACrC,EAAE,OAAO,EAAE,EACX,0BAA0B,CAC3B;;AAEJ;AACD;AACA,MAAM,aAAa,GAAGC,qBAAU,CAAC,gBAAgB,CAAC,OAAO,cAAc,IAAI,CAAC;AAE5E,MAAM,0BAA0B,GAA6B;AAC3D,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,aAAa,EAAEwD;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAErD,iBAAyB;YACrC,aAAa,EAAEsD;AAChB;AACF,KAAA;IACD,WAAW,EAAEC,sBAAiC;AAC9C,IAAA,eAAe,EAAE,CAAC9B,OAAkB,EAAE+B,OAAkB,EAAEC,KAAgB,CAAC;AAC3E,IAAA,aAAa,EAAE,CAAClD,GAAc,CAAC;AAC/B,IAAA,gBAAgB,EAAE;AAChB,QAAAE,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAyC,YAAuB;AACvB,QAAAC;AACD,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,gCAAgC;AAC7C,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAE;CACb;AACD,MAAM,0BAA0B,GAA6B;AAC3D,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEM,sBAA8B;YAC1C,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAE3D,iBAAyB;YACrC,aAAa,EAAE4D;AAChB;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACnC,OAAkB,EAAE+B,OAAkB,EAAEC,KAAgB,CAAC;AAC3E,IAAA,aAAa,EAAE,CAAClD,GAAc,CAAC;AAC/B,IAAA,gBAAgB,EAAE;AAChB,QAAAE,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAqC;AACD,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,UAAU,EAAE;CACb;AACD,MAAM,0BAA0B,GAA6B;AAC3D,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE;YACH,UAAU,EAAEc,iBAAyB;YACrC,aAAa,EAAEC;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;YACP,UAAU,EAAE9D,iBAAyB;YACrC,aAAa,EAAE+D;AAChB;AACF,KAAA;AACD,IAAA,eAAe,EAAE,CAACtC,OAAkB,EAAE+B,OAAkB,EAAEQ,KAAgB,CAAC;AAC3E,IAAA,aAAa,EAAE,CAACzD,GAAc,CAAC;AAC/B,IAAA,gBAAgB,EAAE;AAChB,QAAAE,OAAkB;AAClB,QAAAC,SAAoB;AACpB,QAAAqC;AACD,KAAA;AACD,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,UAAU,EAAE;CACb;;ACzJD;;;;;;AAMG;AAOH;AACa,MAAA,eAAgB,SAAQlD,qBAAU,CAAC,aAAa,CAAA;AAI3D;;;;AAIG;IACH,WAAY,CAAA,GAAW,EAAE,OAAuC,EAAA;;AAC9D,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;;;QAIzC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,EAAE;;AAEd,QAAA,MAAM,QAAQ,GAAkC;AAC9C,YAAA,kBAAkB,EAAE;SACrB;QAED,MAAM,cAAc,GAAG,CAAA,2BAAA,CAA6B;QACpD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;cACjD,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAI,CAAA,EAAA,cAAc,CAAE;AACjE,cAAE,CAAA,EAAG,cAAc,CAAA,CAAE;AAEzB,QAAA,MAAM,mBAAmB,GACpB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,GACR,OAAO,CAAA,EAAA,EACV,gBAAgB,EAAE;gBAChB;AACD,aAAA,EACD,OAAO,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO,GACxD;QACD,KAAK,CAAC,mBAAmB,CAAC;;AAE1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;;QAGd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;;AAKvC;;AC9DD;AACA;AAIA;;;AAGG;AACI,MAAM,oBAAoB,GAAG,kBAAkB;AAEtD;;;AAGG;AACI,MAAM,gBAAgB,GAA2C,CAAC,UAAkB,KAAI;IAC7F,OAAO;AACL,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,WAAW,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;YAC/B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC;AAC3C,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC;SACjB;KACF;AACH,CAAC;;ACvBD;AACA;AAMA;;;;;AAKG;SACa,2BAA2B,CACzC,cAAgC,EAChC,UAAqC,EAAE,EAAA;AAEvC,IAAA,MAAM,mBAAmB,GAAG,IAAIoE,gCAAuB,CACrD,cAAc,CAAC,WAAY,EAC3B,cAAc,CAAC,UAAU,CAC1B;IAED,OAAO;QACL,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,OAAO;AACP,QAAA,UAAU,EAAE,mBAAmB;KAChC;AACH;AAEM,SAAU,0BAA0B,CACxC,WAAmB,EACnB,UAAkB,EAClB,wBAAgC,EAChC,cAAuB,EACvB,aAAsB,EAAA;IAEtB,IAAI,CAAC,aAAa,EAAE;;;AAGlB,QAAA,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE;QACvD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG;;QAEH,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;;QAE7E,aAAa,GAAG,GAAG,wBAAwB,CAAA,GAAA,EAAM,WAAW,CAAU,OAAA,EAAA,cAAc,EAAE;;IAGxF,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;;AACnE,SAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,QAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;;IAGzE,OAAO;AACL,QAAA,IAAI,EAAE,mBAAmB;AACzB,QAAA,GAAG,EAAE,aAAa;QAClB,WAAW;QACX,UAAU;KACX;AACH;;AC/DA;AACA;AAOA,MAAM,2BAA2B,GAC/B,sNAAsN;AAExN;;;;;;;;;AASG;SACa,mCAAmC,CACjD,gBAAwB,EACxB,UAAqC,EAAE,EAAA;AAEvC,IAAA,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE;QAC/E,gBAAgB,GAAG,2BAA2B;AAC9C,QAAA,OAAO,CAAC,uBAAuB,GAAG,IAAI;;AAExC,IAAA,MAAM,cAAc,GAAG,4BAA4B,CAAC,gBAAgB,CAAC;AACrE,IAAA,IAAI,cAAc,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC/C,QAAA,OAAO,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC;;AACtD,SAAA,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE;QAClD,OAAO;YACL,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,CAAI,CAAA,EAAA,cAAc,CAAC,UAAU,CAAE,CAAA;YACzD,OAAO;SACR;;SACI;AACL,QAAA,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F;;AAEL;AAEA;;;;;AAKG;AACG,SAAU,4BAA4B,CAAC,gBAAwB,EAAA;;IAEnE,IAAI,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,eAAe,CAAC;;;IAG3E,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa;AAExF,IAAA,IAAI,yBAAyB,CAAC,gBAAgB,CAAC,EAAE;AAC/C,QAAA,OAAO,0BAA0B,CAC/B,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,EACrD,oBAAoB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EACpD,oBAAoB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,EAClE,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EACxD,aAAa,CACd;;SACI;AACL,QAAA,OAAO,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC;;AAElE;AAEA;;AAEG;AACH,SAAS,yBAAyB,CAAC,gBAAwB,EAAA;AACzD,IAAA,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,WAAW,EAAE;IAChE,QACE,yBAAyB,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACpE,yBAAyB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAE1D;AAEA,SAAS,sBAAsB,CAAC,gBAAwB,EAAE,aAAqB,EAAA;AAC7E,IAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,aAAa,CAAC;IACxD,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;IAClF,IAAI,CAAC,aAAa,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;;SACzE,IAAI,CAAC,UAAU,EAAE;AACtB,QAAA,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC;;SACjF,IAAI,CAAC,WAAW,EAAE;AACvB,QAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;;AAG9E,IAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE;AAC/E;AAEA,SAAS,oBAAoB,CAC3B,gBAAwB,EACxB,QAM2B,EAAA;AAE3B,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE;IACxC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACtE,IAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE;QACrC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC;AACxD,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE;AACpC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,YAAA,OAAO,KAAK;;;AAGhB,IAAA,OAAO,EAAE;AACX;AAEA,SAAS,YAAY,CAAC,GAAW,EAAA;;AAE/B,IAAA,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AACnC,QAAA,OAAO,EAAE;;;AAGX,IAAA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;AAE3C,IAAA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE9C,IAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AACrB;AAEA;;;;AAIG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAA;IACxC,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,GAAG;;AAGZ,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC9B,IAAA,IAAI,WAAW;AAEf,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE;AACjC,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAEjC,IAAA,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;;;QAGrD,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QAChD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;AAC3B,SAAA,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;;;;AAIhC,QAAA,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;;SACrB;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;;AAG7E,IAAA,OAAO,WAAW;AACpB;;ACpKA;AACA;SAsBgB,wBAAwB,CACtC,KAAc,EACd,UAA2E,EAAE,EAAA;;AAE7E,IAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC7C,IAAA,IACE,aAAa;QACb,aAAa,CAAC,MAAM,KAAK,GAAG;QAC5B,CAAA,CAAA,EAAA,GAAA,aAAa,CAAC,UAAU,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAK,oBAAoB,EAClE;AACA,QAAA,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAS,MAAA,EAAA,OAAO,CAAC,SAAS,CAAiB,eAAA,CAAA,CAAC;AAEjE,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;;;SAElC;AACL,QAAA,MAAM,KAAK;;AAEf;AAEA,SAAS,gBAAgB,CAAC,KAAc,EAAA;AACtC,IAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,SAAS;;AAGlB,IAAA,MAAM,aAAa,GAA8B,KAAK,CAAC,QAAqC;IAE5F,IAAI,CAAC,aAAa,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;AAC5E,QAAA,OAAO,SAAS;;AAGlB,IAAA,OAAO,aAAa;AACtB;AAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,IAAA,OAAQ,KAAmB,CAAC,IAAI,KAAK,WAAW;AAClD;AAEA,SAAS,2BAA2B,CAClC,iBAAsB,EAAA;IAEtB,OAAO,OAAO,CAAC,iBAAiB,KAAjB,IAAA,IAAA,iBAAiB,uBAAjB,iBAAiB,CAAE,UAAU,CAAC;AAC/C;;ACjEA;AACA;AAWM,SAAU,YAAY,CAC1B,UAAmB,EAAA;AAEnB,IAAA,QACEC,wBAAe,CAAC,UAAU,CAAC,IAAIzE,6BAAoB,CAAC,UAAU,CAAC,IAAI0E,0BAAiB,CAAC,UAAU,CAAC;AAEpG;;AClBA;AACA;AAIA;;AAEG;AACI,MAAM,MAAM,GAAgBC,2BAAkB,CAAC,aAAa,CAAC;;ACRpE;AACA;AAOA;;;AAGG;SACa,qCAAqC,CACnD,QAAkB,EAClB,UAA2B,EAC3B,MAAyB,EAAA;;IAGzB,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AACpD,IAAA,QAAQ,CAAC,SAAS,CAChBC,gDAA+B,CAAC;QAC9B,UAAU;QACV,MAAM;AACN,QAAA,kBAAkB,EAAE,EAAE,2BAA2B,EAAEC,4CAAiC,EAAE;AACvF,KAAA,CAAC,EACF;AACE,QAAA,KAAK,EAAE,MAAM;AACd,KAAA,CACF;AACH;;AC7BA;AACA;AAYA;;AAEG;AACI,MAAM,kCAAkC,GAAG,gCAAgC;AAElF;;AAEG;AACG,SAAU,8BAA8B,CAAC,UAA8B,EAAA;IAC3E,SAAS,WAAW,CAAC,OAAwB,EAAA;QAC3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC;;IAGjE,OAAO;AACL,QAAA,IAAI,EAAE,kCAAkC;AACxC,QAAA,MAAM,WAAW,CAAC,OAAwB,EAAE,IAAiB,EAAA;YAC3D,WAAW,CAAC,OAAO,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;AAEgB,SAAA,sBAAsB,CACpC,OAAwB,EACxB,UAA8B,EAAA;AAE9B,IAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;AACnD,QAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;;AAG1E,IAAA,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/E,QAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;IAItF,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC;IAE3E,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC;;AAGrF,IAAA,MAAM,YAAY,GAAW;QAC3B,UAAU;AACV,QAAA,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC;AACpD,KAAA,CAAC,IAAI,CAAC,IAAI,CAAC;IAEZ,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;AAEjE,IAAA,OAAO,iBAAiB,UAAU,CAAC,IAAI,CAAI,CAAA,EAAA,SAAS,EAAE;AACxD;AAEA,SAAS,oBAAoB,CAAC,OAAwB,EAAE,UAAkB,EAAA;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,EAAE;;AAEX,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,8BAA8B,CACrC,OAAwB,EACxB,UAA8B,EAAA;;IAG9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,IAAA,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG;IAChC,IAAI,2BAA2B,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI;;IAG9D,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;IAEzC,IAAI,IAAI,EAAE;AACR,QAAA,2BAA2B,GAAG,CAAG,EAAA,2BAA2B,CAAS,MAAA,EAAA,IAAI,EAAE;;AAG7E,IAAA,OAAO,2BAA2B;AACpC;;AC3FA;AACA;AAUA;;AAEG;AACI,MAAM,wBAAwB,GAAG,sBAAsB;AAE9D;;AAEG;AACG,SAAU,oBAAoB,CAAC,UAAyB,EAAA;IAC5D,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,MAAM,WAAW,CAAC,OAAwB,EAAE,IAAiB,EAAA;AAC3D,YAAA,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC;AACnC,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;AAEgB,SAAA,cAAc,CAAC,OAAwB,EAAE,UAAyB,EAAA;IAChF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAEhC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;QACrC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;;AAEtC,IAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE;AAC9B;;ACrCA;AACA;AAIA;;;AAGG;AACI,MAAM,aAAa,GAAGC,+BAAmB,CAAC;AAC/C,IAAA,SAAS,EAAE,uBAAuB;AAClC,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,cAAc,EAAE,QAAQ;AACzB,CAAA,CAAC;;ACbF;AACA;AAEM,SAAU,gBAAgB,CAAC,GAAW,EAAA;AAC1C,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC9B,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE;AACzD,QAAA,OAAO,IAAI;;AAGb,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AACvD,QAAA,OAAO,IAAI;;AAGb,IAAA,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;AACpE,QAAA,OAAO,IAAI;;AAGb,IAAA,OAAO,KAAK;AACd;;AClBA;AACA;AAmDA;;;AAGG;MACU,kBAAkB,CAAA;AAgG7B,IAAA,WAAA,CACE,GAAW,EACX,mBAI6B,EAC7B,OAAmC,EAAA;AAEnC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;QACd,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,GAAG,SAAS;AACtF,QAAA,MAAM,aAAa,GACjB,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,GAAG,OAAO,KAAK,EAAE;AAE5E,QAAA,MAAM,uBAAuB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACxB,aAAa,CAAA,EAAA,EAChB,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAC5C,cAAc,EAAE;gBACd,MAAM,EAAE,MAAM,CAAC,IAAI;AACnB,gBAAA,4BAA4B,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACnE,aAAA,EACD,sBAAsB,EAAE;0BACtBC,gBAAQ;AACT,aAAA,EACD,oBAAoB,EAAE;8BACpBC,oBAAY;AACb,aAAA,EAAA,CACF;QACD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC;AACrE,QAAA,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,6BAA6B,CAAC;AAExD,QAAA,IAAIhF,6BAAoB,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;;AAChE,aAAA,IAAIyE,wBAAe,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;AAG7D,QAAA,IAAIC,0BAAiB,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa;YACrD,qCAAqC,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;;QAG3E,IAAI,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,EAAE;AACpB,YAAA,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;AAG9D,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;;AAG/B;;;;AAIG;;AAEI,IAAA,MAAM,aAAa,CAAC,OAAA,GAA4B,EAAE,EAAA;QACvD,OAAO,aAAa,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,EAAE,CAAC,cAAc,KACxF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAC1E;;AAGH;;;;AAIG;;IAEI,aAAa,CAAC,UAA4B,EAAE,EAAA;QACjD,OAAO,aAAa,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,EAAE,CAAC,cAAc,KACxF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAC3C;;AAGH;;;;;AAKG;AACI,IAAA,aAAa,CAClB,UAA6B,EAC7B,OAAA,GAAgC,EAAE,EAAA;QAElC,OAAO,aAAa,CAAC,QAAQ,CAAC,kCAAkC,EAAE,OAAO,EAAE,CAAC,cAAc,KACxF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CACvD;;AAGH;;;;AAIG;;AAEI,IAAA,WAAW,CAAC,IAAY,EAAE,OAAA,GAA4B,EAAE,EAAA;AAC7D,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,gCAAgC,EAChC,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC;;YACjD,OAAO,CAAM,EAAE;gBACf,wBAAwB,CAAC,CAAC,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,cAAc,CAAA,EAAA,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAA,CAAA,CAAG;;AAE/E,SAAC,CACF;;AAGH;;;;AAIG;;AAEI,IAAA,WAAW,CAAC,IAAY,EAAE,OAAA,GAA4B,EAAE,EAAA;AAC7D,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,gCAAgC,EAChC,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,IAAI;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC;;YAC7C,OAAO,CAAM,EAAE;AACf,gBAAA,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE;AACxB,oBAAA,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC;;qBAC7D;AACL,oBAAA,MAAM,CAAC;;;AAGb,SAAC,CACF;;AAGH;;;AAGG;IACI,UAAU;;IAEf,OAA+B,EAAA;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAExC,OAAO;YACL,IAAI,GAAA;AACF,gBAAA,OAAO,IAAI,CAAC,IAAI,EAAE;aACnB;YACD,CAAC,MAAM,CAAC,aAAa,CAAC,GAAA;AACpB,gBAAA,OAAO,IAAI;aACZ;AACD,YAAA,MAAM,EAAE,CAAC,QAAQ,KAAI;gBACnB,MAAM,WAAW,GACZ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,YAAY,kCAAO,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,YAAY,CAAE,EAAA,EAAA,GAAG,EAAE,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAA,CAAA,EAAA,CACrE;gBAED,IAAI,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,iBAAiB,EAAE;AAC/B,oBAAA,WAAW,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB;;AAG5D,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;aACxC;SACF;;AAGY,IAAA,aAAa,CAC1B,OAAmC,EAAA;;;YAEnC,MAAM,SAAS,GAAG,MAAAO,aAAA,CAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AACjD,YAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,SAAS;YACvC,MAAAA,aAAA,CAAA,OAAOC,sBAAA,CAAAC,oBAAA,SAAS,CAAA,CAAA,CAAA;YAChB,IAAI,iBAAiB,EAAE;AACrB,gBAAA,MAAM,uBAAuB,GACxB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,iBAAiB,GAClB;;AACD,oBAAA,KAAyB,IAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAAA,mBAAA,CAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,MAAAF,aAAA,CAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAE;wBAA9C,EAA4C,GAAA,EAAA,CAAA,KAAA;wBAA5C,EAA4C,GAAA,KAAA;wBAA1D,MAAM,IAAI,KAAA;wBACnB,MAAAA,aAAA,CAAA,OAAOC,sBAAA,CAAAC,oBAAA,IAAI,CAAA,CAAA,CAAA;;;;;;;;;;;SAGhB,CAAA;AAAA;IAEc,cAAc,GAAA;AAC3B,QAAA,OAAAC,sBAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,gBAAA,CAAA,OAAA,GAAqC,EAAE,EAAA;YAEvC,IAAI,MAAM,GAAG,MAAAH,aAAA,CAAM,aAAa,CAAC,QAAQ,CACvC,mCAAmC,EACnC,OAAO,EACP,CAAC,cAAc,KAAK,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CACrD,CAAA;YAED,MAAM,MAAAA,aAAA,CAAA,MAAM,CAAA;AAEZ,YAAA,OAAO,MAAM,CAAC,iBAAiB,EAAE;gBAC/B,MAAM,uBAAuB,GACxB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAA,CAC5C;AACD,gBAAA,MAAM,GAAG,MAAMA,aAAA,CAAA,aAAa,CAAC,QAAQ,CACnC,mCAAmC,EACnC,uBAAuB,EACvB,OAAO,cAAc,EAAE,IAAI,KAAI;oBAC7B,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,cAAc,CAAC,iBAAiB,CAAC;AACxE,oBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;iBACxC,CACF,CAAA;gBACD,MAAM,MAAAA,aAAA,CAAA,MAAM,CAAA;;SAEf,CAAA;AAAA;AAEO,IAAA,MAAM,WAAW,CAAC,OAAA,GAAqC,EAAE,EAAA;AAC/D,QAAA,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAqB,GAAA,OAAO,EAAvB,WAAW,GAAKlF,YAAA,CAAA,OAAO,EAA9D,CAAA,mBAAA,CAAoD,CAAU;QACpE,MAAM,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,iCACzF,WAAW,CAAA,EAAA,EACd,aAAa,EAAA,CAAA,CACb;AACF,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC;;AAGzD;;;;;;;;;;;;AAYG;IACI,OAAO,oBAAoB,CAChC,gBAAwB;;IAExB,OAAmC,EAAA;AAEnC,QAAA,MAAM,EACJ,GAAG,EACH,OAAO,EAAE,aAAa,EACtB,UAAU,GACX,GAAG,mCAAmC,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAElE,IAAI,UAAU,EAAE;YACd,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC;;aACxD;AACL,YAAA,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC;;;AAGtD;;ACnZD;AACA;AAIA;;;AAGG;AACG,SAAU,oBAAoB,CAAC,WAAmB,EAAA;IACtD,OAAO,CAAA,UAAA,EAAa,WAAW,CAAA,CAAE;AACnC;AAEA;;;AAGG;AACG,SAAU,sBAAsB,CAAC,aAAqB,EAAA;IAC1D,OAAO,CAAA,MAAA,EAAS,aAAa,CAAA,CAAE;AACjC;AAEA;;;;AAIG;AACa,SAAA,yBAAyB,CAAC,aAAqB,EAAE,WAAmB,EAAA;AAClF,IAAA,MAAM,mBAAmB,GAAG,CAAS,MAAA,EAAA,aAAa,EAAE;IACpD,OAAO;AACL,QAAA,CAAA,EAAA,EAAK,mBAAmB,CAAA,EAAG,4BAA4B,CAAA,EAAG,eAAe,CAAC,YAAY,CAAA,sCAAA,EAAyC,WAAW,CAAA,EAAG,4BAA4B,CAAA,EAAG,4BAA4B,CAAE,CAAA;KAC3M;AACH;AAEA;;;;;AAKG;SACa,6BAA6B,CAC3C,SAAmB,EACnB,aAAqB,EACrB,WAAmB,EAAA;AAEnB,IAAA,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,aAAa,CAAC;AACjE,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,CAAC;AAC3D,IAAA,MAAM,eAAe,GAAG,CAAK,EAAA,EAAA,iBAAiB,IAAI;AAClD,IAAA,MAAM,iBAAiB,GAAG,CAAK,EAAA,EAAA,mBAAmB,IAAI;IACtD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAChE,IAAA,OAAO,CAAG,EAAA,WAAW,CAAG,EAAA,4BAA4B,CAAG,EAAA,eAAe,CAAG,EAAA,4BAA4B,CAAG,EAAA,iBAAiB,CAAG,EAAA,4BAA4B,EAAE;AAC5J;;AClDA;AACA;AAiBO,MAAM,oCAAoC,GAAG,kCAAkC;AAEtF,MAAM,aAAa,GAAqB;IACtC,OAAO,EAAEsF,sCAAqB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC/C,IAAA,MAAM,EAAE,GAAG;IACX,OAAO,EAAEC,kCAAiB,EAAE;CAC7B;AAEe,SAAA,gCAAgC,CAC9C,SAAmB,EACnB,WAAmB,EAAA;IAEnB,OAAO;AACL,QAAA,IAAI,EAAE,oCAAoC;QAC1C,MAAM,WAAW,CAAC,OAAwB,EAAA;YACxC,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC;AAClE,YAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;;AAE1B,YAAA,OAAO,aAAa;SACrB;KACF;AACH;AAEO,MAAM,iCAAiC,GAAG,+BAA+B;SAEhE,6BAA6B,GAAA;IAC3C,OAAO;AACL,QAAA,IAAI,EAAE,iCAAiC;AACvC,QAAA,MAAM,WAAW,CAAC,OAAwB,EAAE,IAAiB,EAAA;;YAE3D,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC;AACpD,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;AAEA,SAAS,gBAAgB,CAAC,GAAW,EAAA;AACnC,IAAA,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC9B,IAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpE,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE;AAC7B;AAEA,SAAS,yBAAyB,CAAC,OAAwB,EAAE,WAAmB,EAAA;AAC9E,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,WAAW,CAAC;AAC3D,IAAA,MAAM,gBAAgB,GAAG,CAAA,EAAA,EAAK,iBAAiB,CAAA,EAAG,4BAA4B,CAAG,EAAA,eAAe,CAAC,YAAY,qBAAqB,4BAA4B,CAAA,EAAG,eAAe,CAAC,yBAAyB,UAAU;IAEpN,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;;AAEnD,IAAA,MAAM,UAAU,GAAG;AACjB,QAAA,gBAAgB;AAChB,QAAA,EAAE;AACF,QAAA,CAAA,EAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAI,CAAA,EAAA,aAAa,CAAI,CAAA,EAAA,4BAA4B,CAAE,CAAA;KAChF;;IAGD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAK,EAAA,EAAA,KAAK,CAAE,CAAA,CAAC;;;IAItC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,4BAA4B,CAAE,CAAA,CAAC,CAAC;AACnD,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;AAIvC,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACtD;;ACtFA;AACA;AAIA,MAAM,qBAAqB,GAAG,mBAAmB;SAEjC,iBAAiB,GAAA;IAC/B,OAAO;AACL,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,KAAI;AAC7B,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;AAC9B,gBAAA,OAAO,CAAC,MAAM,GAAG,MAAM;gBACvB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC;;AAG/C,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC;SACrB;KACF;AACH;;ACnBA;AACA;AAIA;;;AAGG;AACG,SAAU,yBAAyB,CAAC,eAAuB,EAAA;IAC/D,OAAO;AACL,QAAA,MAAM,EAAE,kBAAkB;AAC1B,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,kBAAkB,EAAE,MAAM;AAC1B,QAAA,qBAAqB,EAAE,WAAW;QAClC,cAAc,EAAE,CAAmC,gCAAA,EAAA,eAAe,CAAE,CAAA;KACrE;AACH;;ACjBA;AACA;AAKA;;;AAGG;AACG,SAAU,qBAAqB,CAAC,eAAuB,EAAA;AAC3D,IAAA,MAAM,WAAW,GAAG,yBAAyB,CAAC,eAAe,CAAC;AAC9D,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,WAAW,CAAA,EAAA;;AAEd,QAAA,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,YAAY,EACxB,CAAA;AACJ;;AClBA;AACA;AA4CA;;AAEG;MACU,gBAAgB,CAAA;AAM3B,IAAA,WAAA,CAAY,OAA6B,EAAA;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAI,EAAE;;AAG9B;;;AAGG;AACH,IAAA,YAAY,CAA6C,MAAsB,EAAA;QAC7E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;AAGvC;;;;AAIG;IACH,YAAY,CAAC,YAAoB,EAAE,MAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;;AAyBzD;;;;;AAKG;AACH,IAAA,YAAY,CACV,MAAsB,EACtB,mBAAsE,EACtE,aAAwC,EAAA;;AAGxC,QAAA,MAAM,cAAc,GAClB,OAAO,mBAAmB,KAAK,QAAQ,GAAG,mBAAmB,GAAG,SAAS;AAC3E,QAAA,MAAM,iBAAiB,GACrB,OAAO,mBAAmB,KAAK,QAAQ,GAAG,mBAAmB,GAAG,aAAa;QAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAd,IAAA,IAAA,cAAc,KAAd,KAAA,CAAA,GAAA,cAAc,GAAI,OAAO,EAAE,iBAAiB,KAAjB,IAAA,IAAA,iBAAiB,KAAjB,KAAA,CAAA,GAAA,iBAAiB,GAAI,EAAE,CAAC,CAAC;;AAG3F;;;;AAIG;AACH,IAAA,YAAY,CACV,MAAsB,EACtB,UAAA,GAAyB,OAAO,EAAA;AAEhC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;;AAEpD;AAED;;AAEG;MACU,wBAAwB,CAAA;AAmBnC;;;;AAIG;AACH,IAAA,WAAA,CACE,GAAW,EACX,YAAoB,EACpB,aAAqB,EACrB,WAAmB,EACnB,MAAqB,EACrB,eAAgC,EAChC,UAAiE,EACjE,0BAAmC,KAAK,EAAA;AAExC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;AACtC,QAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB;;AAGtD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;;QAG3E,IAAI,CAAC,UAAU,EAAE;;YAEf,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,YAAA,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;YACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,EAAE;YACxD,IAAI,CAAC,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,eAAe,EAAE,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE;;aAC7C;;YAEL,IAAI,CAAC,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,eAAe,EAAE,CAAA,MAAA,CAAQ;;;AAIxC,IAAA,eAAe,CAAC,aAAqB,EAAE,WAAmB,EAAE,YAAoB,EAAA;QACtF,MAAM,iBAAiB,GAAmB,EAAE;QAC5C,MAAM,SAAS,GAAG,yBAAyB,CAAC,aAAa,EAAE,WAAW,CAAC;QACvE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,QAAA,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;QAE3F,OAAO;YACL,aAAa;YACb,WAAW;YACX,YAAY;YACZ,iBAAiB;YACjB,SAAS;SACV;;AAGH;;;AAGG;AACI,IAAA,YAAY,CAAmB,MAAsB,EAAA;AAC1D,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC3C,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;AAG9E;;;AAGG;AACI,IAAA,cAAc,CAAmB,QAA0B,EAAA;AAChE,QAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;AAC3C,YAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;;AAIhF;;;;;AAKG;AACI,IAAA,YAAY,CACjB,YAAoB,EACpB,MAAc,EACd,OAAkC,EAAA;AAElC,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAC/B,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CACjE;;AAGH;;;;;AAKG;AACI,IAAA,YAAY,CACjB,MAAsB,EACtB,IAAgB,EAChB,OAAkC,EAAA;AAElC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;;AAG7F;;;;;;;AAOG;AACI,IAAA,YAAY,CACjB,MAAsB,EACtB,IAAgB,EAChB,OAA0B,EAAA;AAE1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;;AAG7F;;AAEG;AACI,IAAA,MAAM,iBAAiB,GAAA;QAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC/C,MAAM,IAAI,GAAG,6BAA6B,CACxC,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CACvB;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;AAE/D,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,oCAAoC,EACpC,EAAsB,EACtB,OAAO,cAAc,KAAI;YACvB,MAAM,OAAO,GAAGD,sCAAqB,CAAC;gBACpC,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,gBAAA,MAAM,EAAE,MAAM;gBACd,IAAI;AACJ,gBAAA,OAAO,EAAEC,kCAAiB,CAAC,OAAO,CAAC;gBACnC,cAAc,EAAE,cAAc,CAAC,cAAc;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;AACtD,aAAA,CAAC;YAEF,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;AACrE,YAAA,OAAO,wBAAwB,CAAC,sBAAsB,CAAC;AACzD,SAAC,CACF;;AAGK,IAAA,iBAAiB,CAAC,YAAoB,EAAA;QAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,EAAE;AAC5C,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;;;IAIhF,eAAe,GAAA;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA,CAAA,CAAG;;AAE5D;AAEK,SAAU,wBAAwB,CACtC,mBAAqC,EAAA;IAErC,MAAM,iBAAiB,GAAG,CAAA,oBAAA,CAAsB;AAChD,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM;AACzC,IAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,IAAI,EAAE;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAClD,MAAM,iBAAiB,GAAG,GAAG,IAAI,MAAM,IAAI,MAAM,GAAG,GAAG;IAEvD,IAAI,CAAC,iBAAiB,EAAE;QACtB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,CAAC;;;;AAKpF,IAAA,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAqC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,KAAI;QACnF,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,MAAM,MAAK,CAAC,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,WAAW,CAAA,CAAE,CAAC;;QAEhF,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;AACxC,YAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,iBAAiB,CAAA,CAAE,CAAC;;QAGvF,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAA,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,MAAM,MAAK,CAAC,EAAE;AAC3B,YAAA,eAAe,CACb,SAAS,CAAC,CAAC,CAAC,EACZ,iBAAiB,EACjB,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,CACpB;;QAGH,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;QACjD,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;QAEtD,OACE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,MAAM,EAAE,iBAAiB,EAAA,GACrB,CAAA,WAAW,aAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,MAAM,MAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,EAAC,GACxD,CAAA,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,MAAM,MAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACrD;AACJ,KAAC,CAAC;IAEF,OAAO;QACL,MAAM;AACN,QAAA,YAAY,EAAE,SAAS;QACvB,oBAAoB,EAAE,CAAC,MAAc,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;KACrF;AACH;AAEA,SAAS,eAAe,CACtB,UAAkB,EAClB,UAAkB,EAClB,OAAwB,EACxB,QAA0B,EAAA;;AAE1B,IAAA,IAAI,WAAW;AAEf,IAAA,IAAI;AACF,QAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;;AACpC,IAAA,OAAA,EAAA,EAAM;QACN,WAAW,GAAG,EAAE;;IAGlB,IAAI,OAAO,GAAG,oBAAoB;AAClC,IAAA,IAAI,IAAwB;;AAE5B,IAAA,IAAI,WAAW,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE;AAC7C,QAAA,MAAM,KAAK,GAAgC,WAAW,CAAC,aAAa,CAAC;QACrE,OAAO,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,OAAO;AACzC,QAAA,IAAI,GAAG,KAAK,CAAC,IAAI;;AAGnB,IAAA,MAAM,IAAIC,0BAAS,CAAC,OAAO,EAAE;QAC3B,IAAI;QACJ,UAAU;QACV,OAAO;QACP,QAAQ;AACT,KAAA,CAAC;AACJ;AAEA;;;AAGG;AACG,SAAU,0BAA0B,CACxC,QAAkB,EAClB,SAAmB,EACnB,WAAmB,EACnB,QAAiB,EAAA;;;AAIjB,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,EAAE;AAC9C,IAAA,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;QAC7B,QAAQ,CAAC,YAAY,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,SAAA,CAAC;;;;AAMJ,IAAA,QAAQ,CAAC,SAAS,CAACC,8BAAmB,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACjE,IAAA,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,gCAAgC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,QAAQ,EAAE;AACZ,QAAA,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE;YACtC,aAAa,EAAE,CAAC,iCAAiC,CAAC;AAClD,YAAA,cAAc,EAAE,CAACC,kCAAuB,EAAE,oCAAoC,CAAC;AAChF,SAAA,CAAC;;AAEN;;AC9aA;AACA;AAEA;;;AAGG;AACG,SAAU,YAAY,CAAC,KAA0B,EAAA;AACrD,IAAA,IAAI,KAAK,YAAY,UAAU,EAAE;QAC/B,MAAM,WAAW,GAAG,KAAK,YAAY,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/E,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;;SAChC;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;;AAEhD;AAEA;;;AAGG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACrC;;ACtBA;AACA;AASA;;AAEG;AACa,SAAA,uBAAuB,CACrC,gBAAyB,EACzB,UAAmB,EAAA;IAEnB,IAAI,CAAC,gBAAgB,EAAE;AACrB,QAAA,OAAO,SAAS;;AAGlB,IAAA,MAAM,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,EACrB,gBAAgB,EAAA,GAEZ,UAAU,IAAI,EAAE,UAAU,EAAE,EACjC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;AACxD;AAEA;;AAEG;AACG,SAAU,uBAAuB,CAAC,YAAoB,EAAA;AAC1D,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAC/C,IAAI,QAAQ,GAAG,EAAE;AAEjB,IAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AAC/B,QAAA,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;;IAEvC,MAAM,iBAAiB,GAAsB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAEjE,IAAA,OAAO,iBAAiB;AAC1B;;AC3CA;AACA;AAUA,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAiB;IACnE,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,YAAY,EAAE,MAAM,CAAC;IACtB,CAAC,WAAW,EAAE,WAAW,CAAC;AAC3B,CAAA,CAAC;AAEF,MAAM,GAAG,GAAG;AACV,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,QAAQ,EAAE,cAAc;AACxB,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,MAAM,EAAE,YAAY;CACZ;AASV,SAAS,kBAAkB,CAAC,KAAU,EAAA;AACpC,IAAA,MAAM,eAAe,GAAmB,EAAE,KAAK,EAAE;IACjD,IACE,KAAK,KAAK,SAAS;AACnB,QAAA,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;AACzB,QAAA,OAAO,KAAK,KAAK,QAAQ,EACzB;AACA,QAAA,eAAe,CAAC,KAAK,GAAG,KAAK;;AACxB,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,QAAA,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;AACxC,QAAA,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK;;AAC3B,SAAA,IAAI,KAAK,YAAY,IAAI,EAAE;AAChC,QAAA,eAAe,CAAC,KAAK,GAAG,KAAK;AAC7B,QAAA,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ;;AAC9B,SAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AACtC,QAAA,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAC3C,QAAA,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM;;SAC5B;QACL,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,KAAK,CAAA,CAAE,CAAC;;AAGrD,IAAA,OAAO,eAAe;AACxB;AAEA,SAAS,eAAe,CAAC,GAAmC,EAAA;IAC1D,MAAM,eAAe,GAAmB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;AAC5D,IAAA,IACE,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,IAAI,KAAK,UAAU;QACvB,GAAG,CAAC,IAAI,KAAK,QAAQ;QACrB,GAAG,CAAC,IAAI,KAAK,MAAM;QACnB,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,IAAI,KAAK,QAAQ;AACrB,QAAA,GAAG,CAAC,IAAI,KAAK,QAAQ,EACrB;AACA,QAAA,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;QACjC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;;SAC/B;QACL,MAAM,IAAI,KAAK,CAAC,CAAoB,iBAAA,EAAA,OAAO,GAAG,CAAC,KAAK,CAAE,CAAA,CAAC;;AAGzD,IAAA,OAAO,eAAe;AACxB;AAEA,SAAS,kBAAkB,CAAC,KAAU,EAAA;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,KAAK,MAAK,SAAS,IAAI,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,IAAI,MAAK,SAAS,EAAE;AACxF,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC;;SACxB;AACL,QAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC;;AAEpC;AAEA,SAAS,qCAAqC,CAAC,YAAoB,EAAA;IACjE,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE;AAClD,QAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AAC7B,YAAA,OAAO,QAAQ;;;AAInB,IAAA,OAAO,YAAY;AACrB;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IACnC,MAAM,UAAU,GAAQ,EAAE;AAC1B,IAAA,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC/D,QAAA,MAAM,cAAc,GAAG,qCAAqC,CAAC,YAAY,CAAC;AAC1E,QAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;AACvD,QAAA,UAAU,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,KAAK;AAChD,QAAA,IAAI,aAAa,CAAC,IAAI,EAAE;YACtB,UAAU,CAAC,GAAG,cAAc,CAAA,WAAA,CAAa,CAAC,GAAG,aAAa,CAAC,IAAI;;;AAGnE,IAAA,OAAO,UAAU;AACnB;AAEA,SAAS,cAAc,CAAC,KAAU,EAAE,IAAY,EAAE,qBAA8B,EAAA;IAC9E,QAAQ,IAAI;QACV,KAAK,GAAG,CAAC,OAAO;AACd,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK;QACnE,KAAK,GAAG,CAAC,MAAM;AACb,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK;QAClE,KAAK,GAAG,CAAC,KAAK;AACZ,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK;QACjE,KAAK,GAAG,CAAC,MAAM;AACb,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK;QAClE,KAAK,GAAG,CAAC,QAAQ;AACf,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;QAC9E,KAAK,GAAG,CAAC,KAAK;AACZ,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;QACzE,KAAK,GAAG,CAAC,IAAI;AACX,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QAChC,KAAK,GAAG,CAAC,MAAM;AACb,YAAA,OAAO,qBAAqB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;AAChF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAA,CAAE,CAAC;;AAEjD;SAEgB,WAAW,CACzB,GAAW,EACX,wBAAiC,KAAK,EAAA;;IAEtC,MAAM,YAAY,GAAQ,EAAE;AAC5B,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9C,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;YACrC,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,GAAG;YACtD,IAAI,UAAU,GAAG,KAAK;AACtB,YAAA,IAAI,GAAG,GAAG,CAAA,WAAA,CAAa,IAAI,GAAG,EAAE;gBAC9B,MAAM,IAAI,GAAI,GAAW,CAAC,GAAG,GAAG,CAAA,WAAA,CAAa,CAAC;gBAC9C,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC;;AAC1D,iBAAA,IAAI,qBAAqB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;;;AAG1F,gBAAA,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC;;AAG3C,YAAA,YAAY,CAAC,cAAc,CAAC,GAAG,UAAU;;;AAG7C,IAAA,OAAO,YAAY;AACrB;AAEA,SAAS,gBAAgB,CAAC,YAAoB,EAAE,KAAgC,EAAA;;AAE9E,IAAA,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACrC,QAAA,OAAO,KAAK;;IAGd,QAAQ,OAAO,KAAK;AAClB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;AAClD,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,cAAc,CAAC,KAAK,CAAC;AAC9B,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,QAAA;AACE,YAAA,OAAO,KAAK;;AAElB;AAEA;;AAEG;AACH,SAAS,cAAc,CAAC,KAAa,EAAA;AACnC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAC9B,IAAA,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;;SACpC;QACL,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;;AAE9C;AAEgB,SAAA,uBAAuB,CACrC,QAAkB,EAClB,qBAA8B,EAAA;AAE9B,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAI,GAAG,EAAE,qBAAqB,CAAC,CAAC;AAC1E;AAEA;;;;;AAKG;AACG,SAAU,0BAA0B,CACxC,iBAAqC,EAAA;AAErC,IAAA,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACnC,QAAA,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,GAAG;AAChC,QAAA,MAAM,KAA6B,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,EAA/C,EAAE,KAAK,EAAE,MAAM,EAAgC,GAAA,EAAA,EAA3B,IAAI,GAAxB1F,YAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAA0B,CAAqB;QACrD,MAAM,eAAe,GAAG;cACpB,oBAAoB,CAAC,KAAK,EAAE,KAAK;cACjC,SAAS;QACb,MAAM,gBAAgB,GAAG;cACrB,oBAAoB,CAAC,MAAM,EAAE,KAAK;cAClC,SAAS;QAEb,OAAO;YACL,EAAE;YACF,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GACN,gBAAgB,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAC,GACjD,eAAe,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,EAC9C,EAAA,IAAI,CACR;SACF;AACH,KAAC,CAAC;AACJ;AAEM,SAAU,2BAA2B,CACzC,iBAA8C,EAAA;AAE9C,IAAA,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAI;AAClC,QAAA,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;AAC/B,QAAA,MAAM,KAAgC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,EAAlD,EAAE,KAAK,EAAE,MAAM,EAAmC,GAAA,EAAA,EAA9B,OAAO,GAA3BA,YAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAA6B,CAAqB;AACxD,QAAA,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS;AAC7D,QAAA,MAAM,kBAAkB,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS;QAEhE,OAAO;YACL,EAAE;YACF,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GACN,kBAAkB,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAC,GACrD,iBAAiB,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAClD,EAAA,OAAO,CACX;SACF;AACH,KAAC,CAAC;AACJ;AAEM,SAAU,qBAAqB,CAAC,KAA8B,EAAA;IAClE,MAAM,EAAE,MAAM,EAAA,GAAsB,KAAK,EAAtB,YAAY,GAAAA,YAAA,CAAK,KAAK,EAAnC,CAA2B,QAAA,CAAA,CAAQ;AACzC,IAAA,MAAM,WAAW,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAA+B,YAAY,CAAE;;AAE9D,IAAA,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAChD,IAAI,MAAM,EAAE;QACV,WAAW,CAAC,MAAM,GAAG;AAClB,aAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC5C,GAAG,CAAC,qCAAqC;aACzC,IAAI,CAAC,GAAG,CAAC;;AAEd,IAAA,OAAO,WAAW;AACpB;;ACpQA;AACA;AAIA;AACA;MACa,IAAI,CAAA;AACR,IAAA,OAAO,YAAY,GAAA;QACxB,OAAO2F,mBAAU,EAAE;;AAEtB;;ACXD;AACA;AAEA,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAAgB,EAAA;IAC5D,IAAI,MAAM,GAAG,KAAK;AAElB,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;;AAE5B,QAAA,IAAI,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACrD,YAAA,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,CAAG;;;AAG1B,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,YAAY,CAAC,KAAa,EAAA;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC;AAEA,SAAS,UAAU,CAAC,KAAc,EAAA;AAChC,IAAA,OAAO,KAAK,YAAY,IAAI,GAAG,CAAY,SAAA,EAAA,KAAK,CAAC,WAAW,EAAE,CAAG,CAAA,CAAA,GAAG,KAAK;AAC3E;AAEA;;;AAGG;SACa,KAAK,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAA;AACvE,IAAA,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,MAAc,KAAsB;QACvE,OAAO,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACxD,KAAC;IACD,MAAM,OAAO,GAAG,EAAE;AAClB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;AACrB,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;;AAGpD,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACzB;;ACxCA;AACA;AA0EA;;;AAGG;MACU,WAAW,CAAA;AA2ItB,IAAA,WAAA,CACE,GAAW,EACX,SAAiB,EACjB,mBAA+F,EAC/F,UAA8B,EAAE,EAAA;;AAEhC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3C,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,GAAG,SAAS;AACtF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;QAE5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,GAAG,OAAO,KAAK,EAAE;QAE/F,IAAI,CAAC,uBAAuB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK;AAElF,QAAA,MAAM,uBAAuB,GACxB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,aAAa,CAAA,EAAA,EACrB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EACjD,cAAc,EAAE;gBACd,MAAM,EAAE,MAAM,CAAC,IAAI;AACnB,gBAAA,4BAA4B,EAAE,CAAC,GAAG,+BAA+B,CAAC;AACnE,aAAA,EACD,sBAAsB,EAAE;0BACtBX,gBAAQ;AACT,aAAA,EACD,oBAAoB,EAAE;8BACpBC,oBAAY;AACb,aAAA,EAAA,CACF;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC;AAC9E,QAAA,IAAIhF,6BAAoB,CAAC,UAAU,CAAC,EAAE;YACpC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;;AACzE,aAAA,IAAIyE,wBAAe,CAAC,UAAU,CAAC,EAAE;YACtC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;;AAGtE,QAAA,IAAIC,0BAAiB,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa;YACrD,qCAAqC,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;;QAGpF,IAAI,QAAQ,EAAE;YACZ,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;;AAGzD,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,YAAA,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;AAGvE,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ;;AAG1C;;;;;;;;;;;;;;;;;;;;;;;AAuBG;;IAEI,WAAW,CAAC,UAA4B,EAAE,EAAA;AAC/C,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,EAAE,OAAO,cAAc,KAAI;AACzF,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;;YACvD,OAAO,CAAM,EAAE;AACf,gBAAA,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE;AACxB,oBAAA,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC;;qBACtD;AACL,oBAAA,MAAM,CAAC;;;AAGb,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;;IAEI,WAAW,CAAC,UAA4B,EAAE,EAAA;AAC/C,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,EAAE,OAAO,cAAc,KAAI;AACzF,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC;;YACjE,OAAO,CAAM,EAAE;AACf,gBAAA,wBAAwB,CAAC,CAAC,EAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAE,EAAA,EAAA,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAG;;AAEzF,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;IACI,SAAS,CACd,YAAoB,EACpB,MAAc;;AAEd,IAAA,OAAA,GAAiC,EAAE,EAAA;AAEnC,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,EAAE,OAAO,cAAc,KAAI;AACvF,YAAA,IAAI,UAAe;AACnB,YAAA,SAAS,UAAU,CAAC,WAAkC,EAAE,YAAqB,EAAA;AAC3E,gBAAA,UAAU,GAAG,WAAW,CAAC,UAAU;AACnC,gBAAA,IAAI,cAAc,CAAC,UAAU,EAAE;AAC7B,oBAAA,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC;;;AAGxD,YAAA,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAA0B,GAAA,cAAc,EAAnC,gBAAgB,GAAK3E,YAAA,CAAA,cAAc,EAA7E,CAAA,uBAAA,EAAA,cAAA,CAA4D,CAAiB;AACnF,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAClD,IAAI,CAAC,SAAS,EACd,YAAY,CAAC,YAAY,CAAC,EAC1B,YAAY,CAAC,MAAM,CAAC,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAEf,gBAAgB,CAAA,EAAA,EACnB,YAAY,EAAE,qBAAqB,CAAC,YAAY,IAAI,EAAE,CAAC,EACvD,UAAU,IAEb;AACD,YAAA,MAAM,WAAW,GAAG,WAAW,CAC7B,UAAU,EACV,qBAAqB,KAArB,IAAA,IAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,qBAAqB,GAAI,KAAK,CAC/B;AAED,YAAA,OAAO,WAAW;AACpB,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;IACI,YAAY;;AAEjB,IAAA,OAAA,GAAoC,EAAE,EAAA;AAEtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAI,SAAS,EAAE,OAAO,CAAC;QAExD,OAAO;YACL,IAAI,GAAA;AACF,gBAAA,OAAO,IAAI,CAAC,IAAI,EAAE;aACnB;YACD,CAAC,MAAM,CAAC,aAAa,CAAC,GAAA;AACpB,gBAAA,OAAO,IAAI;aACZ;AACD,YAAA,MAAM,EAAE,CAAC,QAAQ,KAAI;gBACnB,MAAM,WAAW,mCACZ,OAAO,CAAA,EAAA,EACV,YAAY,EAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,YAAY,CAAA,EAAA,EAAE,GAAG,EAAE,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,WAAW,MACpE;gBAED,IAAI,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,iBAAiB,EAAE;AAC/B,oBAAA,WAAW,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB;;gBAG5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC;aACrD;SACF;;IAGY,eAAe,CAC5B,SAAiB,EACjB,OAA0C,EAAA;;;AAE1C,YAAA,MAAM,SAAS,GAAG,MAAMkF,aAAA,CAAA,IAAI,CAAC,aAAa,CAAI,SAAS,EAAE,OAAO,CAAC,CAAA;YACjE,MAAAA,aAAA,CAAA,OAAOC,sBAAA,CAAAC,oBAAA,SAAS,CAAA,CAAA,CAAA;AAChB,YAAA,IAAI,SAAS,CAAC,iBAAiB,EAAE;gBAC/B,MAAM,uBAAuB,GACxB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,EAAA,CAC/C;;AACD,oBAAA,KAAyB,IAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAAA,mBAAA,CAAA,IAAI,CAAC,gBAAgB,CAAI,SAAS,EAAE,uBAAuB,CAAC,CAAA,EAAA,EAAA,qEAAE;wBAA9D,EAA4D,GAAA,EAAA,CAAA,KAAA;wBAA5D,EAA4D,GAAA,KAAA;wBAA1E,MAAM,IAAI,KAAA;wBACnB,MAAAF,aAAA,CAAA,OAAOC,sBAAA,CAAAC,oBAAA,IAAI,CAAA,CAAA,CAAA;;;;;;;;;;;SAGhB,CAAA;AAAA;IAEc,gBAAgB,CAAA,WAAA,EAAA;oFAC7B,SAAiB,EACjB,UAA4C,EAAE,EAAA;YAE9C,IAAI,MAAM,GAAG,MAAAF,aAAA,CAAM,aAAa,CAAC,QAAQ,CACvC,8BAA8B,EAC9B,OAAO,EACP,CAAC,cAAc,KAAK,IAAI,CAAC,aAAa,CAAI,SAAS,EAAE,cAAc,CAAC,CACrE,CAAA;YAED,MAAM,MAAAA,aAAA,CAAA,MAAM,CAAA;AAEZ,YAAA,OAAO,MAAM,CAAC,iBAAiB,EAAE;gBAC/B,MAAM,uBAAuB,GACxB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAA,CAC5C;AAED,gBAAA,MAAM,GAAG,MAAAA,aAAA,CAAM,aAAa,CAAC,QAAQ,CACnC,8BAA8B,EAC9B,uBAAuB,EACvB,CAAC,cAAc,EAAE,IAAI,KAAI;oBACvB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;oBAChE,OAAO,IAAI,CAAC,aAAa,CAAI,SAAS,EAAE,cAAc,CAAC;iBACxD,CACF,CAAA;gBACD,MAAM,MAAAA,aAAA,CAAA,MAAM,CAAA;;SAEf,CAAA;AAAA;AAEO,IAAA,MAAM,aAAa,CACzB,SAAiB,EACjB,UAA4C,EAAE,EAAA;AAE9C,QAAA,MAAM,EAAE,qBAAqB,GAAG,KAAK,EAAE,GAAG,OAAO;QACjD,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;AACtE,QAAA,MAAM,mBAAmB,GACpB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,YAAY,GACb;;AAGD,QAAA,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC5E,YAAA,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU;AAC7D,YAAA,mBAAmB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,gBAAgB;;QAG3E,MAAM,EACJ,+BAA+B,EAAE,gBAAgB,EACjD,yBAAyB,EAAE,UAAU,EACrC,KAAK,GACN,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC;AAElE,QAAA,MAAM,aAAa,GAAG,uBAAuB,CAC3C,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,EAAE,EACX,qBAAqB,CACtB;;;QAID,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,UAAU,CAAC;QAC/E,MAAM,IAAI,GAA6B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,EAAE;YACvE,iBAAiB;AAClB,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI;;AAGb;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,IAAA,YAAY,CACjB,MAAsB;;AAEtB,IAAA,OAAA,GAA4B,EAAE,EAAA;QAE9B,OAAO,aAAa,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;YACpF,MAAW,iBAAiB,gBAAK,cAAc,IAAI,EAAE,EAA/C,EAAwB,CAAuB;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EACxC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,iBAAiB,KACpB,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,EACxC,kBAAkB,EAAE,mBAAmB,EAAA,CAAA,CACvC;AACJ,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;IACI,YAAY,CACjB,YAAoB,EACpB,MAAc;;AAEd,IAAA,OAAA,GAAoC,EAAE,EAAA;QAEtC,OAAO,aAAa,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;AACpF,YAAA,MAAM,EAAE,IAAI,GAAG,GAAG,EAAc,GAAA,cAAc,EAAvB,IAAI,GAAKlF,YAAA,CAAA,cAAc,EAAxC,CAAA,MAAA,CAAuB,CAAiB;AAC9C,YAAA,MAAM,aAAa,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACd,IAAI,CACR;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAC5B,IAAI,CAAC,SAAS,EACd,YAAY,CAAC,YAAY,CAAC,EAC1B,YAAY,CAAC,MAAM,CAAC,EACpB,IAAI,EACJ,aAAa,CACd;AACH,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;AACI,IAAA,YAAY,CACjB,MAAsB,EACtB,IAAA,GAAmB,OAAO;;AAE1B,IAAA,OAAA,GAAoC,EAAE,EAAA;AAEtC,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,0BAA0B,EAC1B,OAAO,EACP,OAAO,cAAc,KAAI;YACvB,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;YACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AAE1C,YAAA,MAAM,EAAyC,GAAA,cAAc,IAAI,EAAE,EAA7D,EAAE,IAAI,GAAG,GAAG,OAAiD,EAA5C,mBAAmB,GAApCA,YAAA,CAAA,EAAA,EAAA,CAAA,MAAA,CAAsC,CAAuB;AACnE,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAChE,MAAA,CAAA,MAAA,CAAA,EAAA,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,EACxC,OAAO,EAAE,IAAI,EAAA,EACV,mBAAmB,CAAA,CACtB;;AAEJ,YAAA,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EACjE,MAAA,CAAA,MAAA,CAAA,EAAA,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,EACxC,OAAO,EAAE,IAAI,EAAA,EACV,mBAAmB,CAAA,CACtB;;AAGJ,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAA,CAAE,CAAC;AAC9D,SAAC,EACD;AACE,YAAA,cAAc,EAAE;AACd,gBAAA,gBAAgB,EAAE,IAAI;AACvB,aAAA;AACF,SAAA,CACF;;AAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACI,IAAA,YAAY,CACjB,MAAsB,EACtB,IAAA,GAAmB,OAAO;;AAE1B,IAAA,OAAA,GAA4B,EAAE,EAAA;AAE9B,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,0BAA0B,EAC1B,OAAO,EACP,OAAO,cAAc,KAAI;YACvB,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;YACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AAE1C,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAChE,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,EAAA,EACrC,cAAc,CAAA,CACjB;;AAGJ,YAAA,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EACjE,qBAAqB,EAAE,SAAS,CAAC,MAAM,CAAC,EAAA,EACrC,cAAc,CAAA,CACjB;;AAEJ,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAA,CAAE,CAAC;AAC9D,SAAC,EACD;AACE,YAAA,cAAc,EAAE;AACd,gBAAA,gBAAgB,EAAE,IAAI;AACvB,aAAA;AACF,SAAA,CACF;;AAGH;;;;AAIG;;IAEI,eAAe,CAAC,UAA4B,EAAE,EAAA;AACnD,QAAA,OAAO,aAAa,CAAC,QAAQ,CAC3B,6BAA6B,EAC7B,OAAO,EACP,OAAO,cAAc,KAAI;AACvB,YAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;AAC1F,YAAA,OAAO,2BAA2B,CAAC,iBAAiB,CAAC;AACvD,SAAC,CACF;;AAGH;;;;AAIG;AACI,IAAA,eAAe,CACpB,QAA4B;;AAE5B,IAAA,OAAA,GAA4B,EAAE,EAAA;QAE9B,OAAO,aAAa,CAAC,QAAQ,CAAC,6BAA6B,EAAE,OAAO,EAAE,CAAC,cAAc,KAAI;AACvF,YAAA,MAAM,cAAc,GAAG,0BAA0B,CAAC,QAAQ,CAAC;AAC3D,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC3C,cAAc,CACjB,EAAA,EAAA,QAAQ,EAAE,cAAc,IACxB;AACJ,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;IACI,MAAM,iBAAiB,CAAC,OAA4B,EAAA;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;AAC/C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE;;AAGvC,QAAA,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,CACpD,IAAI,CAAC,GAAG,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,uBAAuB,CAC7B;AAED,QAAA,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AAC1B,YAAA,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,EAAE,aAAa,CAAC,GAAG,IAAI;YAClE,QAAQ,MAAM;AACZ,gBAAA,KAAK,QAAQ;AACX,oBAAA,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC;oBACtC;AACF,gBAAA,KAAK,QAAQ;oBACX,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;oBAClE;AACF,gBAAA,KAAK,QAAQ;oBACX,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC;oBACjE;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;;;AAIxD,QAAA,OAAO,iBAAiB,CAAC,iBAAiB,EAAE;;AAG9C;;;;;;;;;;;;AAYG;AACI,IAAA,OAAO,oBAAoB,CAChC,gBAAwB,EACxB,SAAiB;;IAEjB,OAA4B,EAAA;AAE5B,QAAA,MAAM,EACJ,GAAG,EACH,OAAO,EAAE,aAAa,EACtB,UAAU,GACX,GAAG,mCAAmC,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAClE,IAAI,UAAU,EAAE;YACd,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC;;aAC5D;YACL,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC;;;AAG1D;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/generated/models/index.ts","../src/sas/accountSasPermissions.ts","../src/sas/accountSasServices.ts","../src/sas/sasIPRange.ts","../src/utils/truncateISO8061Date.ts","../src/sas/sasQueryParameters.ts","../src/sas/accountSasResourceTypes.ts","../src/utils/constants.ts","../src/utils/computeHMACSHA256.ts","../src/sas/accountSasSignatureValues.ts","../src/sas/generateAccountSas.ts","../src/sas/tableSasPermisions.ts","../src/sas/tableSasSignatureValues.ts","../src/sas/generateTableSas.ts","../src/secondaryEndpointPolicy.ts","../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/table.ts","../src/generated/operations/service.ts","../src/generated/generatedClient.ts","../src/utils/apiVersionPolicy.ts","../src/utils/accountConnectionString.ts","../src/utils/connectionString.ts","../src/utils/errorHelpers.ts","../src/utils/isCredential.ts","../src/logger.ts","../src/utils/challengeAuthenticationUtils.ts","../src/tablesNamedCredentialPolicy.ts","../src/tablesSASTokenPolicy.ts","../src/utils/tracing.ts","../src/utils/isCosmosEndpoint.ts","../src/TableServiceClient.ts","../src/utils/transactionHelpers.ts","../src/TablePolicies.ts","../src/cosmosPathPolicy.ts","../src/utils/baseTransactionHeaders.ts","../src/utils/transactionHeaders.ts","../src/TableTransaction.ts","../src/utils/bufferSerializer.ts","../src/utils/continuationToken.ts","../src/serialization.ts","../src/utils/uuid.ts","../src/odata.ts","../src/TableClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\n/** The properties for the table query response. */\nexport interface TableQueryResponse {\n /** The metadata response of the table. */\n odataMetadata?: string;\n /** List of tables. */\n value?: TableResponseProperties[];\n}\n\n/** The properties for the table response. */\nexport interface TableResponseProperties {\n /** The name of the table. */\n name?: string;\n /** The odata type of the table. */\n odataType?: string;\n /** The id of the table. */\n odataId?: string;\n /** The edit link of the table. */\n odataEditLink?: string;\n}\n\n/** Table Service error. */\nexport interface TableServiceError {\n /** The odata error. */\n odataError?: TableServiceErrorOdataError;\n}\n\n/** The odata error. */\nexport interface TableServiceErrorOdataError {\n /** The service error code. The error codes possible are listed in: https://docs.microsoft.com/rest/api/storageservices/table-service-error-codes */\n code?: string;\n /** The service error message. */\n message?: TableServiceErrorOdataErrorMessage;\n}\n\n/** The service error message. */\nexport interface TableServiceErrorOdataErrorMessage {\n /** Language code of the error message. */\n lang?: string;\n /** The error message. */\n value?: string;\n}\n\n/** The properties for creating a table. */\nexport interface TableProperties {\n /** The name of the table to create. */\n name?: string;\n}\n\n/** The properties for the table entity query response. */\nexport interface TableEntityQueryResponse {\n /** The metadata response of the table. */\n odataMetadata?: string;\n /** List of table entities. */\n value?: { [propertyName: string]: any }[];\n}\n\n/** A signed identifier. */\nexport interface SignedIdentifier {\n /** A unique id. */\n id: string;\n /** The access policy. */\n accessPolicy?: AccessPolicy;\n}\n\n/** An Access policy. */\nexport interface AccessPolicy {\n /** The start datetime from which the policy is active. */\n start?: string;\n /** The datetime that the policy expires. */\n expiry?: string;\n /** The permissions for the acl policy. */\n permission?: string;\n}\n\n/** Table Service Properties. */\nexport interface TableServiceProperties {\n /** Azure Analytics Logging settings. */\n logging?: Logging;\n /** A summary of request statistics grouped by API in hourly aggregates for tables. */\n hourMetrics?: Metrics;\n /** A summary of request statistics grouped by API in minute aggregates for tables. */\n minuteMetrics?: Metrics;\n /** The set of CORS rules. */\n cors?: CorsRule[];\n}\n\n/** Azure Analytics Logging settings. */\nexport interface Logging {\n /** The version of Analytics to configure. */\n version: string;\n /** Indicates whether all delete requests should be logged. */\n delete: boolean;\n /** Indicates whether all read requests should be logged. */\n read: boolean;\n /** Indicates whether all write requests should be logged. */\n write: boolean;\n /** The retention policy. */\n retentionPolicy: RetentionPolicy;\n}\n\n/** The retention policy. */\nexport interface RetentionPolicy {\n /** Indicates whether a retention policy is enabled for the service. */\n enabled: boolean;\n /** Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted. */\n days?: number;\n}\n\n/** A summary of request statistics grouped by API */\nexport interface Metrics {\n /** The version of Analytics to configure. */\n version?: string;\n /** Indicates whether metrics are enabled for the Table service. */\n enabled: boolean;\n /** Indicates whether metrics should generate summary statistics for called API operations. */\n includeAPIs?: boolean;\n /** The retention policy. */\n retentionPolicy?: RetentionPolicy;\n}\n\n/** CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain. */\nexport interface CorsRule {\n /** The origin domains that are permitted to make a request against the service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS. */\n allowedOrigins: string;\n /** The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated) */\n allowedMethods: string;\n /** The request headers that the origin domain may specify on the CORS request. */\n allowedHeaders: string;\n /** The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer. */\n exposedHeaders: string;\n /** The maximum amount time that a browser should cache the preflight OPTIONS request. */\n maxAgeInSeconds: number;\n}\n\n/** Stats for the service. */\nexport interface TableServiceStats {\n /** Geo-Replication information for the Secondary Storage Service. */\n geoReplication?: GeoReplication;\n}\n\n/** Geo-Replication information for the Secondary Storage Service */\nexport interface GeoReplication {\n /** The status of the secondary location. */\n status: GeoReplicationStatusType;\n /** A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads. */\n lastSyncTime: Date;\n}\n\n/** The response for a single table. */\nexport type TableResponse = TableResponseProperties & {\n /** The metadata response of the table. */\n odataMetadata?: string;\n};\n\n/** Defines headers for Table_query operation. */\nexport interface TableQueryHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** This header contains the continuation token value. */\n xMsContinuationNextTableName?: string;\n}\n\n/** Defines headers for Table_query operation. */\nexport interface TableQueryExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_create operation. */\nexport interface TableCreateHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** Indicates whether the Prefer request header was honored. If the response does not include this header, then the Prefer header was not honored. If this header is returned, its value will either be return-content or return-no-content. */\n preferenceApplied?: string;\n}\n\n/** Defines headers for Table_create operation. */\nexport interface TableCreateExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_delete operation. */\nexport interface TableDeleteHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_delete operation. */\nexport interface TableDeleteExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_queryEntities operation. */\nexport interface TableQueryEntitiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** This header contains the continuation token value for partition key. */\n xMsContinuationNextPartitionKey?: string;\n /** This header contains the continuation token value for row key. */\n xMsContinuationNextRowKey?: string;\n}\n\n/** Defines headers for Table_queryEntities operation. */\nexport interface TableQueryEntitiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_queryEntitiesWithPartitionAndRowKey operation. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated */\n etag?: string;\n /** This header contains the continuation token value for partition key. */\n xMsContinuationNextPartitionKey?: string;\n /** This header contains the continuation token value for row key. */\n xMsContinuationNextRowKey?: string;\n}\n\n/** Defines headers for Table_queryEntitiesWithPartitionAndRowKey operation. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_updateEntity operation. */\nexport interface TableUpdateEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n}\n\n/** Defines headers for Table_updateEntity operation. */\nexport interface TableUpdateEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_mergeEntity operation. */\nexport interface TableMergeEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n}\n\n/** Defines headers for Table_mergeEntity operation. */\nexport interface TableMergeEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_deleteEntity operation. */\nexport interface TableDeleteEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_deleteEntity operation. */\nexport interface TableDeleteEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_insertEntity operation. */\nexport interface TableInsertEntityHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n /** UTC date/time value generated by the service that indicates the time at which the entity was last updated. */\n etag?: string;\n /** Indicates whether the Prefer request header was honored. If the response does not include this header, then the Prefer header was not honored. If this header is returned, its value will either be return-content or return-no-content. */\n preferenceApplied?: string;\n /** Indicates the content type of the payload. The value depends on the value specified for the Accept request header. */\n contentType?: string;\n}\n\n/** Defines headers for Table_insertEntity operation. */\nexport interface TableInsertEntityExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_getAccessPolicy operation. */\nexport interface TableGetAccessPolicyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_getAccessPolicy operation. */\nexport interface TableGetAccessPolicyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Table_setAccessPolicy operation. */\nexport interface TableSetAccessPolicyHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Table_setAccessPolicy operation. */\nexport interface TableSetAccessPolicyExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_setProperties operation. */\nexport interface ServiceSetPropertiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n}\n\n/** Defines headers for Service_setProperties operation. */\nexport interface ServiceSetPropertiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_getProperties operation. */\nexport interface ServiceGetPropertiesHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n}\n\n/** Defines headers for Service_getProperties operation. */\nexport interface ServiceGetPropertiesExceptionHeaders {\n errorCode?: string;\n}\n\n/** Defines headers for Service_getStatistics operation. */\nexport interface ServiceGetStatisticsHeaders {\n /** If a client request id header is sent in the request, this header will be present in the response with the same value. */\n clientRequestId?: string;\n /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */\n requestId?: string;\n /** Indicates the version of the Table service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */\n version?: string;\n /** UTC date/time value generated by the service that indicates the time at which the response was initiated. */\n date?: Date;\n}\n\n/** Defines headers for Service_getStatistics operation. */\nexport interface ServiceGetStatisticsExceptionHeaders {\n errorCode?: string;\n}\n\n/** Parameter group */\nexport interface QueryOptions {\n /** Specifies the media type for the response. */\n format?: OdataMetadataFormat;\n /** Maximum number of records to return. */\n top?: number;\n /** Select expression using OData notation. Limits the columns on each record to just those requested, e.g. \"$select=PolicyAssignmentId, ResourceId\". */\n select?: string;\n /** OData filter expression. */\n filter?: string;\n}\n\n/** Known values of {@link OdataMetadataFormat} that the service accepts. */\nexport enum KnownOdataMetadataFormat {\n ApplicationJsonOdataNometadata = \"application/json;odata=nometadata\",\n ApplicationJsonOdataMinimalmetadata = \"application/json;odata=minimalmetadata\",\n ApplicationJsonOdataFullmetadata = \"application/json;odata=fullmetadata\"\n}\n\n/**\n * Defines values for OdataMetadataFormat. \\\n * {@link KnownOdataMetadataFormat} can be used interchangeably with OdataMetadataFormat,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **application\\/json;odata=nometadata** \\\n * **application\\/json;odata=minimalmetadata** \\\n * **application\\/json;odata=fullmetadata**\n */\nexport type OdataMetadataFormat = string;\n\n/** Known values of {@link ResponseFormat} that the service accepts. */\nexport enum KnownResponseFormat {\n ReturnNoContent = \"return-no-content\",\n ReturnContent = \"return-content\"\n}\n\n/**\n * Defines values for ResponseFormat. \\\n * {@link KnownResponseFormat} can be used interchangeably with ResponseFormat,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **return-no-content** \\\n * **return-content**\n */\nexport type ResponseFormat = string;\n\n/** Known values of {@link GeoReplicationStatusType} that the service accepts. */\nexport enum KnownGeoReplicationStatusType {\n Live = \"live\",\n Bootstrap = \"bootstrap\",\n Unavailable = \"unavailable\"\n}\n\n/**\n * Defines values for GeoReplicationStatusType. \\\n * {@link KnownGeoReplicationStatusType} can be used interchangeably with GeoReplicationStatusType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **live** \\\n * **bootstrap** \\\n * **unavailable**\n */\nexport type GeoReplicationStatusType = string;\n\n/** Optional parameters. */\nexport interface TableQueryOptionalParams extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** A table query continuation token from a previous call. */\n nextTableName?: string;\n}\n\n/** Contains response data for the query operation. */\nexport type TableQueryOperationResponse = TableQueryHeaders &\n TableQueryResponse;\n\n/** Optional parameters. */\nexport interface TableCreateOptionalParams extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** Specifies whether the response should include the inserted entity in the payload. Possible values are return-no-content and return-content. */\n responsePreference?: ResponseFormat;\n}\n\n/** Contains response data for the create operation. */\nexport type TableCreateResponse = TableCreateHeaders & TableResponse;\n\n/** Optional parameters. */\nexport interface TableDeleteOptionalParams extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n}\n\n/** Contains response data for the delete operation. */\nexport type TableDeleteResponse = TableDeleteHeaders;\n\n/** Optional parameters. */\nexport interface TableQueryEntitiesOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** An entity query continuation token from a previous call. */\n nextPartitionKey?: string;\n /** An entity query continuation token from a previous call. */\n nextRowKey?: string;\n}\n\n/** Contains response data for the queryEntities operation. */\nexport type TableQueryEntitiesResponse = TableQueryEntitiesHeaders &\n TableEntityQueryResponse;\n\n/** Optional parameters. */\nexport interface TableQueryEntitiesWithPartitionAndRowKeyOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the queryEntitiesWithPartitionAndRowKey operation. */\nexport type TableQueryEntitiesWithPartitionAndRowKeyResponse = TableQueryEntitiesWithPartitionAndRowKeyHeaders & {\n [propertyName: string]: any;\n};\n\n/** Optional parameters. */\nexport interface TableUpdateEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n /** Match condition for an entity to be updated. If specified and a matching entity is not found, an error will be raised. To force an unconditional update, set to the wildcard character (*). If not specified, an insert will be performed when no existing entity is found to update and a replace will be performed if an existing entity is found. */\n ifMatch?: string;\n}\n\n/** Contains response data for the updateEntity operation. */\nexport type TableUpdateEntityResponse = TableUpdateEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableMergeEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n /** Match condition for an entity to be updated. If specified and a matching entity is not found, an error will be raised. To force an unconditional update, set to the wildcard character (*). If not specified, an insert will be performed when no existing entity is found to update and a merge will be performed if an existing entity is found. */\n ifMatch?: string;\n}\n\n/** Contains response data for the mergeEntity operation. */\nexport type TableMergeEntityResponse = TableMergeEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableDeleteEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the deleteEntity operation. */\nexport type TableDeleteEntityResponse = TableDeleteEntityHeaders;\n\n/** Optional parameters. */\nexport interface TableInsertEntityOptionalParams\n extends coreClient.OperationOptions {\n /** Parameter group */\n queryOptions?: QueryOptions;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** Specifies whether the response should include the inserted entity in the payload. Possible values are return-no-content and return-content. */\n responsePreference?: ResponseFormat;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The properties for the table entity. */\n tableEntityProperties?: { [propertyName: string]: any };\n}\n\n/** Contains response data for the insertEntity operation. */\nexport type TableInsertEntityResponse = TableInsertEntityHeaders & {\n [propertyName: string]: any;\n};\n\n/** Optional parameters. */\nexport interface TableGetAccessPolicyOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getAccessPolicy operation. */\nexport type TableGetAccessPolicyResponse = TableGetAccessPolicyHeaders &\n SignedIdentifier[];\n\n/** Optional parameters. */\nexport interface TableSetAccessPolicyOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n /** The acls for the table. */\n tableAcl?: SignedIdentifier[];\n}\n\n/** Contains response data for the setAccessPolicy operation. */\nexport type TableSetAccessPolicyResponse = TableSetAccessPolicyHeaders;\n\n/** Optional parameters. */\nexport interface ServiceSetPropertiesOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the setProperties operation. */\nexport type ServiceSetPropertiesResponse = ServiceSetPropertiesHeaders;\n\n/** Optional parameters. */\nexport interface ServiceGetPropertiesOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getProperties operation. */\nexport type ServiceGetPropertiesResponse = ServiceGetPropertiesHeaders &\n TableServiceProperties;\n\n/** Optional parameters. */\nexport interface ServiceGetStatisticsOptionalParams\n extends coreClient.OperationOptions {\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when analytics logging is enabled. */\n requestId?: string;\n /** The timeout parameter is expressed in seconds. */\n timeout?: number;\n}\n\n/** Contains response data for the getStatistics operation. */\nexport type ServiceGetStatisticsResponse = ServiceGetStatisticsHeaders &\n TableServiceStats;\n\n/** Optional parameters. */\nexport interface GeneratedClientOptionalParams\n extends coreClient.ServiceClientOptions {\n /** Specifies the version of the operation to use for this request. */\n version?: string;\n /** Overrides client endpoint. */\n endpoint?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Parse initializes the AccountSASPermissions fields from a string.\n *\n * @param permissions -\n */\nexport function accountSasPermissionsFromString(permissions: string): AccountSasPermissions {\n const accountSasPermissions: AccountSasPermissions = {};\n\n for (const c of permissions) {\n switch (c) {\n case \"r\":\n accountSasPermissions.query = true;\n break;\n case \"w\":\n accountSasPermissions.write = true;\n break;\n case \"d\":\n accountSasPermissions.delete = true;\n break;\n case \"l\":\n accountSasPermissions.list = true;\n break;\n case \"a\":\n accountSasPermissions.add = true;\n break;\n case \"u\":\n accountSasPermissions.update = true;\n break;\n\n default:\n throw new RangeError(`Invalid permission character: ${c}`);\n }\n }\n\n return accountSasPermissions;\n}\n\n/**\n * Produces the SAS permissions string for an Azure Storage account.\n * Call this method to set AccountSASSignatureValues Permissions field.\n *\n * Using this method will guarantee the resource types are in\n * an order accepted by the service.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\nexport function accountSasPermissionsToString(permissions: AccountSasPermissions): string {\n // The order of the characters should be as specified here to ensure correctness:\n // https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n // Use a string array instead of string concatenating += operator for performance\n const permissionString: string[] = [];\n if (permissions.query) {\n permissionString.push(\"r\");\n }\n if (permissions.write) {\n permissionString.push(\"w\");\n }\n if (permissions.delete) {\n permissionString.push(\"d\");\n }\n if (permissions.list) {\n permissionString.push(\"l\");\n }\n if (permissions.add) {\n permissionString.push(\"a\");\n }\n if (permissions.update) {\n permissionString.push(\"u\");\n }\n\n return permissionString.join(\"\");\n}\n\n/**\n * A type that looks like an account SAS permission.\n * Used in {@link AccountSasPermissions} to parse SAS permissions from raw objects.\n */\nexport interface AccountSasPermissions {\n /**\n * Grants permission to list entities.\n */\n query?: boolean;\n\n /**\n * Grants permission to create tables\n */\n write?: boolean;\n\n /**\n * Grants permission to delete tables and entities\n */\n delete?: boolean;\n\n /**\n * Grants permission to list tables\n */\n list?: boolean;\n\n /**\n * Grants permission to create entities\n */\n add?: boolean;\n\n /**\n * Permissions to update messages and table entities granted.\n */\n update?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates an {@link AccountSasServices} from the specified services string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid service.\n *\n * @param services -\n */\nexport function accountSasServicesFromString(services: string): AccountSasServices {\n const accountSasServices: AccountSasServices = {};\n\n for (const c of services) {\n switch (c) {\n case \"b\":\n accountSasServices.blob = true;\n break;\n case \"f\":\n accountSasServices.file = true;\n break;\n case \"q\":\n accountSasServices.queue = true;\n break;\n case \"t\":\n accountSasServices.table = true;\n break;\n default:\n throw new RangeError(`Invalid service character: ${c}`);\n }\n }\n\n return accountSasServices;\n}\n\n/**\n * Converts the given services to a string.\n *\n */\nexport function accountSasServicesToString(services: AccountSasServices = { table: true }): string {\n const servicesString: string[] = [];\n if (services.blob) {\n servicesString.push(\"b\");\n }\n if (services.table) {\n servicesString.push(\"t\");\n }\n if (services.queue) {\n servicesString.push(\"q\");\n }\n if (services.file) {\n servicesString.push(\"f\");\n }\n return servicesString.join(\"\");\n}\n/**\n * Services that the SAS token can access\n */\nexport interface AccountSasServices {\n /**\n * Permission to access blob resources granted.\n */\n blob?: boolean;\n\n /**\n * Permission to access file resources granted.\n */\n file?: boolean;\n\n /**\n * Permission to access queue resources granted.\n */\n\n queue?: boolean;\n /**\n * Permission to access table resources granted.\n */\n table?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Allowed IP range for a SAS.\n */\nexport interface SasIPRange {\n /**\n * Starting IP address in the IP range.\n * If end IP doesn't provide, start IP will the only IP allowed.\n */\n start: string;\n /**\n * Optional. IP address that ends the IP range.\n * If not provided, start IP will the only IP allowed.\n */\n end?: string;\n}\n\n/**\n * Generate SasIPRange format string. For example:\n *\n * \"8.8.8.8\" or \"1.1.1.1-255.255.255.255\"\n *\n * @param ipRange -\n */\nexport function ipRangeToString(ipRange?: SasIPRange): string {\n if (!ipRange) {\n return \"\";\n }\n\n return ipRange.end ? `${ipRange.start}-${ipRange.end}` : ipRange.start;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Rounds a date off to seconds.\n *\n * @param date -\n * @param withMilliseconds - If true, YYYY-MM-DDThh:mm:ss.fffffffZ will be returned;\n * If false, YYYY-MM-DDThh:mm:ssZ will be returned.\n * @returns Date string in ISO8061 format, with or without 7 milliseconds component\n */\nexport function truncatedISO8061Date(date: Date, withMilliseconds: boolean = true): string {\n // Date.toISOString() will return like \"2018-10-29T06:34:36.139Z\"\n const dateString = date.toISOString();\n\n return withMilliseconds\n ? dateString.substring(0, dateString.length - 1) + \"0000\" + \"Z\"\n : dateString.substring(0, dateString.length - 5) + \"Z\";\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { SasIPRange } from \"./sasIPRange\";\nimport { ipRangeToString } from \"./sasIPRange\";\nimport type { UserDelegationKey } from \"./models\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * Protocols for generated SAS.\n */\nexport type SasProtocol = \"https\" | \"https,http\";\n\n/**\n * Represents the components that make up an Azure SAS' query parameters. This type is not constructed directly\n * by the user; it is only generated by the {@link AccountSasSignatureValues} and {@link TableSasSignatureValues}\n * types. Once generated, it can be encoded into a `string` and appended to a URL directly (though caution should\n * be taken here in case there are existing query parameters, which might affect the appropriate means of appending\n * these query parameters).\n *\n * NOTE: Instances of this class are immutable.\n */\nexport class SasQueryParameters {\n /**\n * The Tables API version.\n */\n public readonly version: string;\n\n /**\n * Optional. Table name to generate the SAS for\n */\n public readonly tableName?: string;\n\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n public readonly protocol?: SasProtocol;\n\n /**\n * Optional. The start time for this SAS token.\n */\n public readonly startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n public readonly expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for\n * more details.\n */\n public readonly permissions?: string;\n\n /**\n * Optional. The table services being accessed (only for Account SAS). Please refer to {@link AccountSasServices}\n * for more details.\n */\n public readonly services?: string;\n\n /**\n * Optional. The table resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSasResourceTypes} for more details.\n */\n public readonly resourceTypes?: string;\n\n /**\n * Optional. The signed identifier (only for {@link TableSasSignatureValues}).\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n public readonly identifier?: string;\n\n /**\n * The signature for the SAS token.\n */\n public readonly signature: string;\n\n /**\n * Inner value of getter ipRange.\n */\n private readonly ipRangeInner?: SasIPRange;\n\n /**\n * The Azure Active Directory object ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedOid?: string;\n\n /**\n * The Azure Active Directory tenant ID in GUID format.\n * Property of user delegation key.\n */\n private readonly signedTenantId?: string;\n\n /**\n * The date-time the key is active.\n * Property of user delegation key.\n */\n private readonly signedStartsOn?: Date;\n\n /**\n * The date-time the key expires.\n * Property of user delegation key.\n */\n private readonly signedExpiresOn?: Date;\n\n /**\n * Abbreviation of the Azure Table service that accepts the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedService?: string;\n\n /**\n * The service version that created the user delegation key.\n * Property of user delegation key.\n */\n private readonly signedVersion?: string;\n\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This is only used for User Delegation SAS.\n */\n public readonly preauthorizedAgentObjectId?: string;\n\n /**\n * A GUID value that will be logged in the table diagnostic logs and can be used to correlate SAS generation with table resource access.\n * This is only used for User Delegation SAS.\n */\n public readonly correlationId?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n public readonly startPartitionKey?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n public readonly startRowKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n public readonly endPartitionKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n public readonly endRowKey?: string;\n\n /**\n * Optional. IP range allowed for this SAS.\n *\n * @readonly\n */\n public get ipRange(): SasIPRange | undefined {\n if (this.ipRangeInner) {\n return {\n end: this.ipRangeInner.end,\n start: this.ipRangeInner.start,\n };\n }\n return undefined;\n }\n\n /**\n * Creates an instance of SASQueryParameters.\n *\n * @param version - Representing the table service version\n * @param signature - Representing the signature for the SAS token\n * @param options - Optional. Options to construct the SASQueryParameters.\n */\n constructor(version: string, signature: string, options: SasQueryParametersOptions = {}) {\n this.version = version;\n this.signature = signature;\n\n this.permissions = options.permissions;\n this.services = options.services;\n this.resourceTypes = options.resourceTypes;\n this.protocol = options.protocol;\n this.startsOn = options.startsOn;\n this.expiresOn = options.expiresOn;\n this.ipRangeInner = options.ipRange;\n this.identifier = options.identifier;\n this.tableName = options.tableName;\n this.endPartitionKey = options.endPartitionKey;\n this.endRowKey = options.endRowKey;\n this.startPartitionKey = options.startPartitionKey;\n this.startRowKey = options.startRowKey;\n\n if (options.userDelegationKey) {\n this.signedOid = options.userDelegationKey.signedObjectId;\n this.signedTenantId = options.userDelegationKey.signedTenantId;\n this.signedStartsOn = options.userDelegationKey.signedStartsOn;\n this.signedExpiresOn = options.userDelegationKey.signedExpiresOn;\n this.signedService = options.userDelegationKey.signedService;\n this.signedVersion = options.userDelegationKey.signedVersion;\n\n this.preauthorizedAgentObjectId = options.preauthorizedAgentObjectId;\n this.correlationId = options.correlationId;\n }\n }\n\n /**\n * Encodes all SAS query parameters into a string that can be appended to a URL.\n *\n */\n public toString(): string {\n const params: string[] = [\n \"sv\", // SignedVersion\n \"ss\", // SignedServices\n \"srt\", // SignedResourceTypes\n \"spr\", // SignedProtocol\n \"st\", // SignedStart\n \"se\", // SignedExpiry\n \"sip\", // SignedIP\n \"si\", // SignedIdentifier\n \"skoid\", // Signed object ID\n \"sktid\", // Signed tenant ID\n \"skt\", // Signed key start time\n \"ske\", // Signed key expiry time\n \"sks\", // Signed key service\n \"skv\", // Signed key version\n \"sr\", // signedResource\n \"sp\", // SignedPermission\n \"sig\", // Signature\n \"rscc\", // Cache-Control\n \"rscd\", // Content-Disposition\n \"rsce\", // Content-Encoding\n \"rscl\", // Content-Language\n \"rsct\", // Content-Type\n \"saoid\", // signedAuthorizedObjectId\n \"scid\", // signedCorrelationId\n \"tn\", // TableName,\n \"srk\", // StartRowKey\n \"spk\", // StartPartitionKey\n \"epk\", // EndPartitionKey\n \"erk\", // EndRowKey\n ];\n const queries: string[] = [];\n\n for (const param of params) {\n switch (param) {\n case \"sv\":\n this.tryAppendQueryParameter(queries, param, this.version);\n break;\n case \"ss\":\n this.tryAppendQueryParameter(queries, param, this.services);\n break;\n case \"srt\":\n this.tryAppendQueryParameter(queries, param, this.resourceTypes);\n break;\n case \"spr\":\n this.tryAppendQueryParameter(queries, param, this.protocol);\n break;\n case \"st\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.startsOn ? truncatedISO8061Date(this.startsOn, false) : undefined,\n );\n break;\n case \"se\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.expiresOn ? truncatedISO8061Date(this.expiresOn, false) : undefined,\n );\n break;\n case \"sip\":\n this.tryAppendQueryParameter(\n queries,\n param,\n this.ipRange ? ipRangeToString(this.ipRange) : undefined,\n );\n break;\n case \"si\":\n this.tryAppendQueryParameter(queries, param, this.identifier);\n break;\n case \"skoid\": // Signed object ID\n this.tryAppendQueryParameter(queries, param, this.signedOid);\n break;\n case \"sktid\": // Signed tenant ID\n this.tryAppendQueryParameter(queries, param, this.signedTenantId);\n break;\n case \"skt\": // Signed key start time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedStartsOn ? truncatedISO8061Date(this.signedStartsOn, false) : undefined,\n );\n break;\n case \"ske\": // Signed key expiry time\n this.tryAppendQueryParameter(\n queries,\n param,\n this.signedExpiresOn ? truncatedISO8061Date(this.signedExpiresOn, false) : undefined,\n );\n break;\n case \"sks\": // Signed key service\n this.tryAppendQueryParameter(queries, param, this.signedService);\n break;\n case \"skv\": // Signed key version\n this.tryAppendQueryParameter(queries, param, this.signedVersion);\n break;\n case \"sp\":\n this.tryAppendQueryParameter(queries, param, this.permissions);\n break;\n case \"sig\":\n this.tryAppendQueryParameter(queries, param, this.signature);\n break;\n case \"saoid\":\n this.tryAppendQueryParameter(queries, param, this.preauthorizedAgentObjectId);\n break;\n case \"scid\":\n this.tryAppendQueryParameter(queries, param, this.correlationId);\n break;\n case \"tn\":\n this.tryAppendQueryParameter(queries, param, this.tableName);\n break;\n case \"spk\":\n this.tryAppendQueryParameter(queries, param, this.startPartitionKey);\n break;\n case \"srk\":\n this.tryAppendQueryParameter(queries, param, this.startRowKey);\n break;\n case \"epk\":\n this.tryAppendQueryParameter(queries, param, this.endPartitionKey);\n break;\n case \"erk\":\n this.tryAppendQueryParameter(queries, param, this.endRowKey);\n break;\n }\n }\n return queries.join(\"&\");\n }\n\n /**\n * A private helper method used to filter and append query key/value pairs into an array.\n *\n * @param queries -\n * @param key -\n * @param value -\n */\n private tryAppendQueryParameter(queries: string[], key: string, value?: string): void {\n if (!value) {\n return;\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value);\n if (key.length > 0 && value.length > 0) {\n queries.push(`${key}=${value}`);\n }\n }\n}\n\n/**\n * Options to construct {@link SasQueryParameters}.\n */\nexport interface SasQueryParametersOptions {\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link AccountSasPermissions}, or {@link TableSasPermissions} for\n * more details.\n */\n permissions?: string;\n /**\n * Optional. Table name to generate the SAS for\n */\n tableName?: string;\n /**\n * Optional. The storage services being accessed (only for Account SAS). Please refer to {@link AccountSasServices}\n * for more details.\n */\n services?: string;\n /**\n * Optional. The storage resource types being accessed (only for Account SAS). Please refer to\n * {@link AccountSasResourceTypes} for more details.\n */\n resourceTypes?: string;\n /**\n * Optional. The allowed HTTP protocol(s).\n */\n protocol?: SasProtocol;\n /**\n * Optional. The start time for this SAS token.\n */\n startsOn?: Date;\n /**\n * Optional only when identifier is provided. The expiry time for this SAS token.\n */\n expiresOn?: Date;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n /**\n * Optional. The signed identifier for access policy\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n /**\n * Optional. Specifies which resources are accessible via the SAS (only for {@link AccountSasSignatureValues}).\n * @see https://docs.microsoft.com/rest/api/storageservices/create-service-sas#specifying-the-signed-resource-blob-service-only\n */\n resource?: string;\n /**\n * User delegation key properties.\n */\n userDelegationKey?: UserDelegationKey;\n /**\n * Authorized AAD Object ID in GUID format. The AAD Object ID of a user authorized by the owner of the User Delegation Key\n * to perform the action granted by the SAS. The Azure Table service will ensure that the owner of the user delegation key\n * has the required permissions before granting access but no additional permission check for the user specified in\n * this value will be performed. This cannot be used in conjuction with {@link signedUnauthorizedUserObjectId}.\n * This is only used for User Delegation SAS.\n */\n preauthorizedAgentObjectId?: string;\n /**\n * A GUID value that will be logged in the storage diagnostic logs and can be used to correlate SAS generation with storage resource access.\n * This is only used for User Delegation SAS.\n */\n correlationId?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n startPartitionKey?: string;\n\n /**\n * Optional, but startPartitionKey must accompany startRowKey. The minimum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no lower bound on the table entities that can be accessed.\n */\n startRowKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n endPartitionKey?: string;\n\n /**\n * Optional, but endPartitionKey must accompany endRowKey. The maximum partition and row keys that are accessible with this shared access signature.\n * Key values are inclusive. If they're omitted, there's no upper bound on the table entities that can be accessed.\n */\n endRowKey?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates an {@link accountSasResourceTypesFromString} from the specified resource types string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid resource type.\n *\n * @param resourceTypes -\n */\nexport function accountSasResourceTypesFromString(resourceTypes: string): AccountSasResourceTypes {\n const accountSasResourceTypes: AccountSasResourceTypes = {};\n\n for (const c of resourceTypes) {\n switch (c) {\n case \"s\":\n accountSasResourceTypes.service = true;\n break;\n case \"c\":\n accountSasResourceTypes.container = true;\n break;\n case \"o\":\n accountSasResourceTypes.object = true;\n break;\n default:\n throw new RangeError(`Invalid resource type: ${c}`);\n }\n }\n\n return accountSasResourceTypes;\n}\n\n/**\n * Converts the given resource types to a string.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n */\nexport function accountSasResourceTypesToString(resourceTypes: AccountSasResourceTypes): string {\n const resourceTypesString: string[] = [];\n if (resourceTypes.service) {\n resourceTypesString.push(\"s\");\n }\n if (resourceTypes.container) {\n resourceTypesString.push(\"c\");\n }\n if (resourceTypes.object) {\n resourceTypesString.push(\"o\");\n }\n return resourceTypesString.join(\"\");\n}\n\n/**\n * Represents the Resources that are accessible by the SAS token\n */\nexport interface AccountSasResourceTypes {\n /**\n * Permission to access service level APIs granted.\n */\n service?: boolean;\n\n /**\n * Permission to access container level APIs (Blob Containers, Tables, Queues, File Shares) granted.\n */\n container?: boolean;\n\n /**\n * Permission to access object level APIs (Blobs, Table Entities, Queue Messages, Files) granted.\n */\n object?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SERVICE_VERSION = \"2019-02-02\";\nexport const TRANSACTION_HTTP_VERSION_1_1 = \"HTTP/1.1\";\nexport const TRANSACTION_HTTP_LINE_ENDING = \"\\r\\n\";\n\nexport const STORAGE_SCOPE = \"https://storage.azure.com/.default\";\nexport const COSMOS_SCOPE = \"https://cosmos.azure.com/.default\";\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"authorization\",\n CONTENT_LENGTH: \"content-length\",\n CONTENT_MD5: \"content-md5\",\n CONTENT_TYPE: \"content-type\",\n CONTENT_TRANSFER_ENCODING: \"content-transfer-encoding\",\n DATE: \"date\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_VERSION: \"x-ms-version\",\n};\n\nexport const TablesLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Prefer\",\n \"Preference-Applied\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-user-agent\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Accept\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-continuation-NextTableName\",\n \"x-ms-continuation-NextPartitionKey\",\n \"x-ms-continuation-NextRowKey\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n];\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createHmac } from \"crypto\";\n\nexport function computeHMACSHA256(stringToSign: string, accountKey: string): string {\n const key = Buffer.from(accountKey, \"base64\");\n return createHmac(\"sha256\", key).update(stringToSign, \"utf8\").digest(\"base64\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AccountSasPermissions } from \"./accountSasPermissions\";\nimport { accountSasPermissionsToString } from \"./accountSasPermissions\";\nimport type { SasIPRange } from \"./sasIPRange\";\nimport { ipRangeToString } from \"./sasIPRange\";\nimport type { SasProtocol } from \"./sasQueryParameters\";\nimport { SasQueryParameters } from \"./sasQueryParameters\";\nimport {\n accountSasResourceTypesFromString,\n accountSasResourceTypesToString,\n} from \"./accountSasResourceTypes\";\nimport { accountSasServicesFromString, accountSasServicesToString } from \"./accountSasServices\";\nimport type { NamedKeyCredential } from \"@azure/core-auth\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { computeHMACSHA256 } from \"../utils/computeHMACSHA256\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call {@link generateAccountSasQueryParameters} to obtain a representation\n * of the SAS which can actually be applied to table urls. Note: that both this class and {@link SasQueryParameters}\n * exist because the former is mutable and a logical representation while the latter is immutable and used to generate\n * actual REST requests.\n *\n * @see https://docs.microsoft.com/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://docs.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSasSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SasProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSasPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSasPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSasServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSasResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SasQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSasSignatureValues -\n * @param sharedKeyCredential -\n */\nexport function generateAccountSasQueryParameters(\n accountSasSignatureValues: AccountSasSignatureValues,\n credential: NamedKeyCredential,\n): SasQueryParameters {\n const version = accountSasSignatureValues.version\n ? accountSasSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = accountSasPermissionsToString(accountSasSignatureValues.permissions);\n const parsedServices = accountSasServicesToString(\n accountSasServicesFromString(accountSasSignatureValues.services),\n );\n // to and from string to guarantee the correct order of resoruce types is generated\n const parsedResourceTypes = accountSasResourceTypesToString(\n accountSasResourceTypesFromString(accountSasSignatureValues.resourceTypes),\n );\n\n const stringToSign = [\n credential.name,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSasSignatureValues.startsOn\n ? truncatedISO8061Date(accountSasSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSasSignatureValues.expiresOn, false),\n accountSasSignatureValues.ipRange ? ipRangeToString(accountSasSignatureValues.ipRange) : \"\",\n accountSasSignatureValues.protocol ? accountSasSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n\n const signature: string = computeHMACSHA256(stringToSign, credential.key);\n\n return new SasQueryParameters(version, signature, {\n permissions: parsedPermissions.toString(),\n services: parsedServices,\n resourceTypes: parsedResourceTypes,\n protocol: accountSasSignatureValues.protocol,\n startsOn: accountSasSignatureValues.startsOn,\n expiresOn: accountSasSignatureValues.expiresOn,\n ipRange: accountSasSignatureValues.ipRange,\n });\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AccountSasPermissions } from \"./accountSasPermissions\";\nimport { accountSasPermissionsFromString } from \"./accountSasPermissions\";\nimport type { AccountSasServices } from \"./accountSasServices\";\nimport { accountSasServicesFromString, accountSasServicesToString } from \"./accountSasServices\";\nimport type { NamedKeyCredential } from \"@azure/core-auth\";\nimport { isNamedKeyCredential } from \"@azure/core-auth\";\nimport type { SasIPRange } from \"./sasIPRange\";\nimport type { SasProtocol } from \"./sasQueryParameters\";\nimport { generateAccountSasQueryParameters } from \"./accountSasSignatureValues\";\n\n/**\n * Generates a Table Account Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas\n *\n * @param options - Optional parameters.\n * @returns An account SAS token\n */\nexport function generateAccountSas(\n credential: NamedKeyCredential,\n options: AccountSasOptions = {},\n): string {\n const {\n expiresOn,\n permissions = accountSasPermissionsFromString(\"rl\"),\n resourceTypes = \"sco\",\n services = accountSasServicesFromString(\"t\"),\n ...rest\n } = options;\n if (!isNamedKeyCredential(credential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n let expiry = expiresOn;\n\n if (expiry === undefined) {\n const now = new Date();\n expiry = new Date(now.getTime() + 3600 * 1000);\n }\n\n const sas = generateAccountSasQueryParameters(\n {\n permissions,\n expiresOn: expiry,\n resourceTypes,\n services: accountSasServicesToString(services),\n ...rest,\n },\n credential,\n ).toString();\n\n return sas;\n}\n\n/**\n * Options to configure {@link generateAccountSas} operation.\n */\nexport interface AccountSasOptions {\n /**\n * The time at which the shared access signature becomes invalid. Default to an hour later if not provided.\n */\n expiresOn?: Date;\n /**\n * Specifies the list of permissions to be associated with the SAS.\n */\n permissions?: AccountSasPermissions;\n /**\n * Specifies the resource types associated with the shared access signature.\n */\n resourceTypes?: string;\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * SAS protocols allowed.\n */\n protocol?: SasProtocol;\n\n /**\n * When the SAS will take effect.\n */\n startsOn?: Date;\n /**\n * IP range allowed.\n */\n ipRange?: SasIPRange;\n /**\n * Account services\n */\n services?: AccountSasServices;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Creates a {@link TableSasPermissions} from the specified permissions string. This method will throw an\n * Error if it encounters a character that does not correspond to a valid permission.\n *\n * @param permissions -\n */\nexport function tableSasPermissionsFromString(permissions: string): TableSasPermissions {\n const tableSasPermissions: TableSasPermissions = {};\n for (const char of permissions) {\n switch (char) {\n case \"r\":\n tableSasPermissions.query = true;\n break;\n case \"a\":\n tableSasPermissions.add = true;\n break;\n case \"u\":\n tableSasPermissions.update = true;\n break;\n case \"d\":\n tableSasPermissions.delete = true;\n break;\n default:\n throw new RangeError(`Invalid permission: ${char}`);\n }\n }\n\n return tableSasPermissions;\n}\n\n/**\n * Converts the given permissions to a string. Using this method will guarantee the permissions are in an\n * order accepted by the service.\n *\n * @returns A string which represents the TableSasPermissions\n */\nexport function tableSasPermissionsToString(permissions?: TableSasPermissions): string {\n if (!permissions) {\n return \"\";\n }\n\n const permissionsString: string[] = [];\n if (permissions.query) {\n permissionsString.push(\"r\");\n }\n if (permissions.add) {\n permissionsString.push(\"a\");\n }\n if (permissions.update) {\n permissionsString.push(\"u\");\n }\n\n if (permissions.delete) {\n permissionsString.push(\"d\");\n }\n return permissionsString.join(\"\");\n}\n\n/**\n * A type that looks like a Table SAS permission.\n * Used in {@link TableSasPermissions} to parse SAS permissions from raw objects.\n */\nexport interface TableSasPermissions {\n /**\n * Specifies Query access granted.\n */\n query?: boolean;\n\n /**\n * Specifies Add access granted.\n */\n add?: boolean;\n\n /**\n * Specifies Update access granted.\n */\n update?: boolean;\n\n /**\n * Specifies Delete access granted.\n */\n delete?: boolean;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * TableSASSignatureValues is used to help generating SAS tokens for tables.\n */\n\nimport type { SasIPRange } from \"./sasIPRange\";\nimport { ipRangeToString } from \"./sasIPRange\";\nimport type { SasProtocol } from \"./sasQueryParameters\";\nimport { SasQueryParameters } from \"./sasQueryParameters\";\nimport type { TableSasPermissions } from \"./tableSasPermisions\";\nimport { tableSasPermissionsToString } from \"./tableSasPermisions\";\nimport type { NamedKeyCredential } from \"@azure/core-auth\";\nimport { SERVICE_VERSION } from \"../utils/constants\";\nimport { computeHMACSHA256 } from \"../utils/computeHMACSHA256\";\nimport { truncatedISO8061Date } from \"../utils/truncateISO8061Date\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * TableSASSignatureValues is used to help generating Table service SAS tokens for tables\n */\nexport interface TableSasSignatureValues {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SasProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional. If identifier is not provided has a default value of one hour from the time the token is generated.\n * The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional. If identifier is not provided has a default value of \"read\"\n * Please refer to {@link TableSasPermissions} depending on the resource\n * being accessed for help constructing the permissions string.\n */\n permissions?: TableSasPermissions;\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the container this SAS references if any.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n\n /**\n * Define the start of a Partition Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n startPartitionKey?: string;\n /**\n * Define the end of a Partition Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n endPartitionKey?: string;\n /**\n * Define the start of a Row Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n startRowKey?: string;\n /**\n * Define the end of a Row Key range\n * Table queries will only return results that are within the range, and attempts to use the shared access signature to add, update, or delete entities outside this range will fail.\n * If startPartitionKey equals endPartitionKey the shared access signature only authorizes access to entities in one partition in the table.\n * If startPartitionKey equals endPartitionKey and startRowKey equals endRowKey, the shared access signature can only access one entity in one partition\n */\n endRowKey?: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Creates an instance of SASQueryParameters.\n *\n * **Note**: When identifier is not provided, permissions has a default value of \"read\" and expiresOn of one hour from the time the token is generated.\n */\nexport function generateTableSasQueryParameters(\n tableName: string,\n credential: NamedKeyCredential,\n tableSasSignatureValues: TableSasSignatureValues,\n): SasQueryParameters {\n const version = tableSasSignatureValues.version ?? SERVICE_VERSION;\n\n if (credential === undefined) {\n throw TypeError(\"Invalid NamedKeyCredential\");\n }\n\n if (!tableName) {\n throw new Error(\"Must provide a 'tableName'\");\n }\n\n const signedPermissions = tableSasPermissionsToString(tableSasSignatureValues.permissions);\n const signedStart = tableSasSignatureValues.startsOn\n ? truncatedISO8061Date(tableSasSignatureValues.startsOn, false /** withMilliseconds */)\n : \"\";\n const signedExpiry = tableSasSignatureValues.expiresOn\n ? truncatedISO8061Date(tableSasSignatureValues.expiresOn, false /** withMilliseconds */)\n : \"\";\n const canonicalizedResource = getCanonicalName(credential.name, tableName);\n const signedIdentifier = tableSasSignatureValues.identifier ?? \"\";\n const signedIP = ipRangeToString(tableSasSignatureValues.ipRange);\n const signedProtocol = tableSasSignatureValues.protocol || \"\";\n const startingPartitionKey = tableSasSignatureValues.startPartitionKey ?? \"\";\n const startingRowKey = tableSasSignatureValues.startRowKey ?? \"\";\n const endingPartitionKey = tableSasSignatureValues.endPartitionKey ?? \"\";\n const endingRowKey = tableSasSignatureValues.endRowKey ?? \"\";\n\n const stringToSign = [\n signedPermissions,\n signedStart,\n signedExpiry,\n canonicalizedResource,\n signedIdentifier,\n signedIP,\n signedProtocol,\n version,\n startingPartitionKey,\n startingRowKey,\n endingPartitionKey,\n endingRowKey,\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return new SasQueryParameters(version, signature, {\n permissions: signedPermissions,\n protocol: tableSasSignatureValues.protocol,\n startsOn: tableSasSignatureValues.startsOn,\n expiresOn: tableSasSignatureValues.expiresOn,\n ipRange: tableSasSignatureValues.ipRange,\n identifier: tableSasSignatureValues.identifier,\n tableName,\n startPartitionKey: tableSasSignatureValues.startPartitionKey,\n startRowKey: tableSasSignatureValues.startRowKey,\n endPartitionKey: tableSasSignatureValues.endPartitionKey,\n endRowKey: tableSasSignatureValues.endRowKey,\n });\n}\n\nfunction getCanonicalName(accountName: string, tableName: string): string {\n // Sample CanonicalName for URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price'):\n // canonicalizedResource = \"/table/myaccount/employees\"\n return `/table/${accountName}/${tableName.toLowerCase()}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NamedKeyCredential } from \"@azure/core-auth\";\nimport { isNamedKeyCredential } from \"@azure/core-auth\";\nimport type { TableSasSignatureValues } from \"./tableSasSignatureValues\";\nimport { generateTableSasQueryParameters } from \"./tableSasSignatureValues\";\nimport { tableSasPermissionsFromString } from \"./tableSasPermisions\";\n\n/**\n * Generates a Table Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\nexport function generateTableSas(\n tableName: string,\n credential: NamedKeyCredential,\n options: TableSasSignatureValues = {},\n): string {\n let { expiresOn, permissions } = options;\n\n if (!isNamedKeyCredential(credential)) {\n throw RangeError(\n \"Can only generate the account SAS when the client is initialized with a shared key credential\",\n );\n }\n\n // expiresOn and permissions are optional if an identifier is provided\n // set defaults when no identifier and no values were provided\n if (!options.identifier) {\n if (!permissions) {\n permissions = tableSasPermissionsFromString(\"r\");\n }\n\n if (expiresOn === undefined) {\n const now = new Date();\n expiresOn = new Date(now.getTime() + 3600 * 1000);\n }\n }\n\n const sas = generateTableSasQueryParameters(tableName, credential, {\n ...options,\n expiresOn,\n permissions,\n }).toString();\n\n return sas;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure/core-client\";\nimport type { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\n/**\n * The programmatic identifier of the tablesSecondaryEndpointPolicy.\n */\nexport const tablesSecondaryEndpointPolicyName = \"tablesSecondaryEndpointPolicy\";\nexport const SecondaryLocationHeaderName = \"tables-secondary-endpoint\";\nconst SecondaryLocationAccountSuffix = \"-secondary\";\n\n/**\n * Policy that would replace the Primary Endpoint with the secondary endpoint\n * when the `tables-secondary-endpoint` is set in the request\n */\nexport const tablesSecondaryEndpointPolicy: PipelinePolicy = {\n name: tablesSecondaryEndpointPolicyName,\n sendRequest: async (req, next) => {\n // Only replace the URL if the SecondaryLocationHeader is set\n if (req.headers.get(SecondaryLocationHeaderName)) {\n // Since the header is for internal use only, clean it up.\n req.headers.delete(SecondaryLocationHeaderName);\n // Calculate and update the secondary url\n req.url = getSecondaryUrlFromPrimary(req.url);\n }\n\n return next(req);\n },\n};\n\n/**\n * Utility function that injects the SecondaryEndpointHeader into an operation options\n */\nexport function injectSecondaryEndpointHeader(options: OperationOptions): OperationOptions {\n const headerToInject = { [SecondaryLocationHeaderName]: \"true\" };\n return {\n ...options,\n requestOptions: {\n ...options.requestOptions,\n customHeaders: {\n ...options.requestOptions?.customHeaders,\n ...headerToInject,\n },\n },\n };\n}\n\n/**\n * Utility function that calculates the secondary URL for a table instance given the primary URL.\n */\nfunction getSecondaryUrlFromPrimary(primaryUrl: string): string {\n const parsedPrimaryUrl = new URL(primaryUrl);\n const host = parsedPrimaryUrl.hostname.split(\".\");\n if (host.length > 1) {\n host[0] = `${host[0]}${SecondaryLocationAccountSuffix}`;\n }\n parsedPrimaryUrl.hostname = host.join(\".\");\n\n return parsedPrimaryUrl.toString();\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const TableQueryResponse: coreClient.CompositeMapper = {\n serializedName: \"TableQueryResponse\",\n type: {\n name: \"Composite\",\n className: \"TableQueryResponse\",\n modelProperties: {\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n xmlElementName: \"TableResponseProperties\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"TableResponseProperties\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const TableResponseProperties: coreClient.CompositeMapper = {\n serializedName: \"TableResponseProperties\",\n type: {\n name: \"Composite\",\n className: \"TableResponseProperties\",\n modelProperties: {\n name: {\n serializedName: \"TableName\",\n xmlName: \"TableName\",\n type: {\n name: \"String\"\n }\n },\n odataType: {\n serializedName: \"odata\\\\.type\",\n xmlName: \"odata\\\\.type\",\n type: {\n name: \"String\"\n }\n },\n odataId: {\n serializedName: \"odata\\\\.id\",\n xmlName: \"odata\\\\.id\",\n type: {\n name: \"String\"\n }\n },\n odataEditLink: {\n serializedName: \"odata\\\\.editLink\",\n xmlName: \"odata\\\\.editLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableServiceError: coreClient.CompositeMapper = {\n serializedName: \"TableServiceError\",\n type: {\n name: \"Composite\",\n className: \"TableServiceError\",\n modelProperties: {\n odataError: {\n serializedName: \"odata\\\\.error\",\n xmlName: \"odata\\\\.error\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataError\"\n }\n }\n }\n }\n};\n\nexport const TableServiceErrorOdataError: coreClient.CompositeMapper = {\n serializedName: \"TableServiceErrorOdataError\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n xmlName: \"code\",\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n xmlName: \"message\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataErrorMessage\"\n }\n }\n }\n }\n};\n\nexport const TableServiceErrorOdataErrorMessage: coreClient.CompositeMapper = {\n serializedName: \"TableServiceErrorOdataErrorMessage\",\n type: {\n name: \"Composite\",\n className: \"TableServiceErrorOdataErrorMessage\",\n modelProperties: {\n lang: {\n serializedName: \"lang\",\n xmlName: \"lang\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableProperties: coreClient.CompositeMapper = {\n serializedName: \"TableProperties\",\n type: {\n name: \"Composite\",\n className: \"TableProperties\",\n modelProperties: {\n name: {\n serializedName: \"TableName\",\n xmlName: \"TableName\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableEntityQueryResponse: coreClient.CompositeMapper = {\n serializedName: \"TableEntityQueryResponse\",\n type: {\n name: \"Composite\",\n className: \"TableEntityQueryResponse\",\n modelProperties: {\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n xmlName: \"value\",\n xmlElementName: \"TableEntityProperties\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"any\" } }\n }\n }\n }\n }\n }\n }\n};\n\nexport const SignedIdentifier: coreClient.CompositeMapper = {\n serializedName: \"SignedIdentifier\",\n xmlName: \"SignedIdentifier\",\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\",\n modelProperties: {\n id: {\n serializedName: \"Id\",\n required: true,\n xmlName: \"Id\",\n type: {\n name: \"String\"\n }\n },\n accessPolicy: {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\"\n }\n }\n }\n }\n};\n\nexport const AccessPolicy: coreClient.CompositeMapper = {\n serializedName: \"AccessPolicy\",\n xmlName: \"AccessPolicy\",\n type: {\n name: \"Composite\",\n className: \"AccessPolicy\",\n modelProperties: {\n start: {\n serializedName: \"Start\",\n xmlName: \"Start\",\n type: {\n name: \"String\"\n }\n },\n expiry: {\n serializedName: \"Expiry\",\n xmlName: \"Expiry\",\n type: {\n name: \"String\"\n }\n },\n permission: {\n serializedName: \"Permission\",\n xmlName: \"Permission\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableServiceProperties: coreClient.CompositeMapper = {\n serializedName: \"TableServiceProperties\",\n xmlName: \"StorageServiceProperties\",\n type: {\n name: \"Composite\",\n className: \"TableServiceProperties\",\n modelProperties: {\n logging: {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\"\n }\n },\n hourMetrics: {\n serializedName: \"HourMetrics\",\n xmlName: \"HourMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n minuteMetrics: {\n serializedName: \"MinuteMetrics\",\n xmlName: \"MinuteMetrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\"\n }\n },\n cors: {\n serializedName: \"Cors\",\n xmlName: \"Cors\",\n xmlIsWrapped: true,\n xmlElementName: \"CorsRule\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"CorsRule\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Logging: coreClient.CompositeMapper = {\n serializedName: \"Logging\",\n xmlName: \"Logging\",\n type: {\n name: \"Composite\",\n className: \"Logging\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n required: true,\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n delete: {\n serializedName: \"Delete\",\n required: true,\n xmlName: \"Delete\",\n type: {\n name: \"Boolean\"\n }\n },\n read: {\n serializedName: \"Read\",\n required: true,\n xmlName: \"Read\",\n type: {\n name: \"Boolean\"\n }\n },\n write: {\n serializedName: \"Write\",\n required: true,\n xmlName: \"Write\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const RetentionPolicy: coreClient.CompositeMapper = {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\",\n modelProperties: {\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n days: {\n constraints: {\n InclusiveMinimum: 1\n },\n serializedName: \"Days\",\n xmlName: \"Days\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const Metrics: coreClient.CompositeMapper = {\n serializedName: \"Metrics\",\n type: {\n name: \"Composite\",\n className: \"Metrics\",\n modelProperties: {\n version: {\n serializedName: \"Version\",\n xmlName: \"Version\",\n type: {\n name: \"String\"\n }\n },\n enabled: {\n serializedName: \"Enabled\",\n required: true,\n xmlName: \"Enabled\",\n type: {\n name: \"Boolean\"\n }\n },\n includeAPIs: {\n serializedName: \"IncludeAPIs\",\n xmlName: \"IncludeAPIs\",\n type: {\n name: \"Boolean\"\n }\n },\n retentionPolicy: {\n serializedName: \"RetentionPolicy\",\n xmlName: \"RetentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"RetentionPolicy\"\n }\n }\n }\n }\n};\n\nexport const CorsRule: coreClient.CompositeMapper = {\n serializedName: \"CorsRule\",\n xmlName: \"CorsRule\",\n type: {\n name: \"Composite\",\n className: \"CorsRule\",\n modelProperties: {\n allowedOrigins: {\n serializedName: \"AllowedOrigins\",\n required: true,\n xmlName: \"AllowedOrigins\",\n type: {\n name: \"String\"\n }\n },\n allowedMethods: {\n serializedName: \"AllowedMethods\",\n required: true,\n xmlName: \"AllowedMethods\",\n type: {\n name: \"String\"\n }\n },\n allowedHeaders: {\n serializedName: \"AllowedHeaders\",\n required: true,\n xmlName: \"AllowedHeaders\",\n type: {\n name: \"String\"\n }\n },\n exposedHeaders: {\n serializedName: \"ExposedHeaders\",\n required: true,\n xmlName: \"ExposedHeaders\",\n type: {\n name: \"String\"\n }\n },\n maxAgeInSeconds: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"MaxAgeInSeconds\",\n required: true,\n xmlName: \"MaxAgeInSeconds\",\n type: {\n name: \"Number\"\n }\n }\n }\n }\n};\n\nexport const TableServiceStats: coreClient.CompositeMapper = {\n serializedName: \"TableServiceStats\",\n xmlName: \"StorageServiceStats\",\n type: {\n name: \"Composite\",\n className: \"TableServiceStats\",\n modelProperties: {\n geoReplication: {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\"\n }\n }\n }\n }\n};\n\nexport const GeoReplication: coreClient.CompositeMapper = {\n serializedName: \"GeoReplication\",\n xmlName: \"GeoReplication\",\n type: {\n name: \"Composite\",\n className: \"GeoReplication\",\n modelProperties: {\n status: {\n serializedName: \"Status\",\n required: true,\n xmlName: \"Status\",\n type: {\n name: \"String\"\n }\n },\n lastSyncTime: {\n serializedName: \"LastSyncTime\",\n required: true,\n xmlName: \"LastSyncTime\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableResponse: coreClient.CompositeMapper = {\n serializedName: \"TableResponse\",\n type: {\n name: \"Composite\",\n className: \"TableResponse\",\n modelProperties: {\n ...TableResponseProperties.type.modelProperties,\n odataMetadata: {\n serializedName: \"odata\\\\.metadata\",\n xmlName: \"odata\\\\.metadata\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContinuationNextTableName: {\n serializedName: \"x-ms-continuation-nexttablename\",\n xmlName: \"x-ms-continuation-nexttablename\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableCreateHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_createHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableCreateHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n preferenceApplied: {\n serializedName: \"preference-applied\",\n xmlName: \"preference-applied\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableCreateExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_createExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableCreateExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n xMsContinuationNextPartitionKey: {\n serializedName: \"x-ms-continuation-nextpartitionkey\",\n xmlName: \"x-ms-continuation-nextpartitionkey\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextRowKey: {\n serializedName: \"x-ms-continuation-nextrowkey\",\n xmlName: \"x-ms-continuation-nextrowkey\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesWithPartitionAndRowKeyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesWithPartitionAndRowKeyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesWithPartitionAndRowKeyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextPartitionKey: {\n serializedName: \"x-ms-continuation-nextpartitionkey\",\n xmlName: \"x-ms-continuation-nextpartitionkey\",\n type: {\n name: \"String\"\n }\n },\n xMsContinuationNextRowKey: {\n serializedName: \"x-ms-continuation-nextrowkey\",\n xmlName: \"x-ms-continuation-nextrowkey\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_queryEntitiesWithPartitionAndRowKeyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableUpdateEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_updateEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableUpdateEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableUpdateEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_updateEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableUpdateEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableMergeEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_mergeEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableMergeEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableMergeEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_mergeEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableMergeEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableDeleteEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_deleteEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableDeleteEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableInsertEntityHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_insertEntityHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableInsertEntityHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n },\n etag: {\n serializedName: \"etag\",\n xmlName: \"etag\",\n type: {\n name: \"String\"\n }\n },\n preferenceApplied: {\n serializedName: \"preference-applied\",\n xmlName: \"preference-applied\",\n type: {\n name: \"String\"\n }\n },\n contentType: {\n serializedName: \"content-type\",\n xmlName: \"content-type\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableInsertEntityExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_insertEntityExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableInsertEntityExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableGetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_getAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableGetAccessPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableGetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_getAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableGetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const TableSetAccessPolicyHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_setAccessPolicyHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableSetAccessPolicyHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const TableSetAccessPolicyExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Table_setAccessPolicyExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"TableSetAccessPolicyExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceSetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_setPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceSetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetPropertiesExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getPropertiesExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetPropertiesExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsHeaders\",\n modelProperties: {\n clientRequestId: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n },\n requestId: {\n serializedName: \"x-ms-request-id\",\n xmlName: \"x-ms-request-id\",\n type: {\n name: \"String\"\n }\n },\n version: {\n serializedName: \"x-ms-version\",\n xmlName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n },\n date: {\n serializedName: \"date\",\n xmlName: \"date\",\n type: {\n name: \"DateTimeRfc1123\"\n }\n }\n }\n }\n};\n\nexport const ServiceGetStatisticsExceptionHeaders: coreClient.CompositeMapper = {\n serializedName: \"Service_getStatisticsExceptionHeaders\",\n type: {\n name: \"Composite\",\n className: \"ServiceGetStatisticsExceptionHeaders\",\n modelProperties: {\n errorCode: {\n serializedName: \"x-ms-error-code\",\n xmlName: \"x-ms-error-code\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\nimport {\n TableProperties as TablePropertiesMapper,\n TableServiceProperties as TableServicePropertiesMapper\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json;odata=minimalmetadata\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const url: OperationURLParameter = {\n parameterPath: \"url\",\n mapper: {\n serializedName: \"url\",\n required: true,\n xmlName: \"url\",\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const version: OperationParameter = {\n parameterPath: \"version\",\n mapper: {\n defaultValue: \"2019-02-02\",\n isConstant: true,\n serializedName: \"x-ms-version\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const requestId: OperationParameter = {\n parameterPath: [\"options\", \"requestId\"],\n mapper: {\n serializedName: \"x-ms-client-request-id\",\n xmlName: \"x-ms-client-request-id\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const dataServiceVersion: OperationParameter = {\n parameterPath: \"dataServiceVersion\",\n mapper: {\n defaultValue: \"3.0\",\n isConstant: true,\n serializedName: \"DataServiceVersion\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const format: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"format\"],\n mapper: {\n serializedName: \"$format\",\n xmlName: \"$format\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const top: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"top\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"$top\",\n xmlName: \"$top\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const select: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"select\"],\n mapper: {\n serializedName: \"$select\",\n xmlName: \"$select\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"queryOptions\", \"filter\"],\n mapper: {\n serializedName: \"$filter\",\n xmlName: \"$filter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextTableName: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextTableName\"],\n mapper: {\n serializedName: \"NextTableName\",\n xmlName: \"NextTableName\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json;odata=nometadata\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableProperties: OperationParameter = {\n parameterPath: \"tableProperties\",\n mapper: TablePropertiesMapper\n};\n\nexport const responsePreference: OperationParameter = {\n parameterPath: [\"options\", \"responsePreference\"],\n mapper: {\n serializedName: \"Prefer\",\n xmlName: \"Prefer\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const table: OperationURLParameter = {\n parameterPath: \"table\",\n mapper: {\n serializedName: \"table\",\n required: true,\n xmlName: \"table\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const timeout: OperationQueryParameter = {\n parameterPath: [\"options\", \"timeout\"],\n mapper: {\n constraints: {\n InclusiveMinimum: 0\n },\n serializedName: \"timeout\",\n xmlName: \"timeout\",\n type: {\n name: \"Number\"\n }\n }\n};\n\nexport const nextPartitionKey: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextPartitionKey\"],\n mapper: {\n serializedName: \"NextPartitionKey\",\n xmlName: \"NextPartitionKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextRowKey: OperationQueryParameter = {\n parameterPath: [\"options\", \"nextRowKey\"],\n mapper: {\n serializedName: \"NextRowKey\",\n xmlName: \"NextRowKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const partitionKey: OperationURLParameter = {\n parameterPath: \"partitionKey\",\n mapper: {\n serializedName: \"partitionKey\",\n required: true,\n xmlName: \"partitionKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const rowKey: OperationURLParameter = {\n parameterPath: \"rowKey\",\n mapper: {\n serializedName: \"rowKey\",\n required: true,\n xmlName: \"rowKey\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableEntityProperties: OperationParameter = {\n parameterPath: [\"options\", \"tableEntityProperties\"],\n mapper: {\n serializedName: \"tableEntityProperties\",\n xmlName: \"tableEntityProperties\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"any\" } }\n }\n }\n};\n\nexport const ifMatch: OperationParameter = {\n parameterPath: [\"options\", \"ifMatch\"],\n mapper: {\n serializedName: \"If-Match\",\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const ifMatch1: OperationParameter = {\n parameterPath: \"ifMatch\",\n mapper: {\n serializedName: \"If-Match\",\n required: true,\n xmlName: \"If-Match\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"acl\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableAcl: OperationParameter = {\n parameterPath: [\"options\", \"tableAcl\"],\n mapper: {\n serializedName: \"tableAcl\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"SignedIdentifier\"\n }\n }\n }\n }\n};\n\nexport const accept3: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/xml\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const tableServiceProperties: OperationParameter = {\n parameterPath: \"tableServiceProperties\",\n mapper: TableServicePropertiesMapper\n};\n\nexport const restype: OperationQueryParameter = {\n parameterPath: \"restype\",\n mapper: {\n defaultValue: \"service\",\n isConstant: true,\n serializedName: \"restype\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp1: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"properties\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const comp2: OperationQueryParameter = {\n parameterPath: \"comp\",\n mapper: {\n defaultValue: \"stats\",\n isConstant: true,\n serializedName: \"comp\",\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Table } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n TableQueryOptionalParams,\n TableQueryOperationResponse,\n TableProperties,\n TableCreateOptionalParams,\n TableCreateResponse,\n TableDeleteOptionalParams,\n TableDeleteResponse,\n TableQueryEntitiesOptionalParams,\n TableQueryEntitiesResponse,\n TableQueryEntitiesWithPartitionAndRowKeyOptionalParams,\n TableQueryEntitiesWithPartitionAndRowKeyResponse,\n TableUpdateEntityOptionalParams,\n TableUpdateEntityResponse,\n TableMergeEntityOptionalParams,\n TableMergeEntityResponse,\n TableDeleteEntityOptionalParams,\n TableDeleteEntityResponse,\n TableInsertEntityOptionalParams,\n TableInsertEntityResponse,\n TableGetAccessPolicyOptionalParams,\n TableGetAccessPolicyResponse,\n TableSetAccessPolicyOptionalParams,\n TableSetAccessPolicyResponse\n} from \"../models\";\n\n/** Class containing Table operations. */\nexport class TableImpl implements Table {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class Table class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Queries tables under the given account.\n * @param options The options parameters.\n */\n query(\n options?: TableQueryOptionalParams\n ): Promise<TableQueryOperationResponse> {\n return this.client.sendOperationRequest({ options }, queryOperationSpec);\n }\n\n /**\n * Creates a new table under the given account.\n * @param tableProperties The Table properties.\n * @param options The options parameters.\n */\n create(\n tableProperties: TableProperties,\n options?: TableCreateOptionalParams\n ): Promise<TableCreateResponse> {\n return this.client.sendOperationRequest(\n { tableProperties, options },\n createOperationSpec\n );\n }\n\n /**\n * Operation permanently deletes the specified table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n delete(\n table: string,\n options?: TableDeleteOptionalParams\n ): Promise<TableDeleteResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Queries entities in a table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n queryEntities(\n table: string,\n options?: TableQueryEntitiesOptionalParams\n ): Promise<TableQueryEntitiesResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n queryEntitiesOperationSpec\n );\n }\n\n /**\n * Queries entities in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n queryEntitiesWithPartitionAndRowKey(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableQueryEntitiesWithPartitionAndRowKeyOptionalParams\n ): Promise<TableQueryEntitiesWithPartitionAndRowKeyResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n queryEntitiesWithPartitionAndRowKeyOperationSpec\n );\n }\n\n /**\n * Update entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n updateEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableUpdateEntityOptionalParams\n ): Promise<TableUpdateEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n updateEntityOperationSpec\n );\n }\n\n /**\n * Merge entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param options The options parameters.\n */\n mergeEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n options?: TableMergeEntityOptionalParams\n ): Promise<TableMergeEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, options },\n mergeEntityOperationSpec\n );\n }\n\n /**\n * Deletes the specified entity in a table.\n * @param table The name of the table.\n * @param partitionKey The partition key of the entity.\n * @param rowKey The row key of the entity.\n * @param ifMatch Match condition for an entity to be deleted. If specified and a matching entity is\n * not found, an error will be raised. To force an unconditional delete, set to the wildcard character\n * (*).\n * @param options The options parameters.\n */\n deleteEntity(\n table: string,\n partitionKey: string,\n rowKey: string,\n ifMatch: string,\n options?: TableDeleteEntityOptionalParams\n ): Promise<TableDeleteEntityResponse> {\n return this.client.sendOperationRequest(\n { table, partitionKey, rowKey, ifMatch, options },\n deleteEntityOperationSpec\n );\n }\n\n /**\n * Insert entity in a table.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n insertEntity(\n table: string,\n options?: TableInsertEntityOptionalParams\n ): Promise<TableInsertEntityResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n insertEntityOperationSpec\n );\n }\n\n /**\n * Retrieves details about any stored access policies specified on the table that may be used with\n * Shared Access Signatures.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n getAccessPolicy(\n table: string,\n options?: TableGetAccessPolicyOptionalParams\n ): Promise<TableGetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n getAccessPolicyOperationSpec\n );\n }\n\n /**\n * Sets stored access policies for the table that may be used with Shared Access Signatures.\n * @param table The name of the table.\n * @param options The options parameters.\n */\n setAccessPolicy(\n table: string,\n options?: TableSetAccessPolicyOptionalParams\n ): Promise<TableSetAccessPolicyResponse> {\n return this.client.sendOperationRequest(\n { table, options },\n setAccessPolicyOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst queryOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableQueryResponse,\n headersMapper: Mappers.TableQueryHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableQueryExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.top,\n Parameters.select,\n Parameters.filter,\n Parameters.nextTableName\n ],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst createOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.TableResponse,\n headersMapper: Mappers.TableCreateHeaders\n },\n 204: {\n headersMapper: Mappers.TableCreateHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableCreateExceptionHeaders\n }\n },\n requestBody: Parameters.tableProperties,\n queryParameters: [Parameters.format],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.contentType,\n Parameters.responsePreference\n ],\n mediaType: \"json\",\n serializer\n};\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path: \"/Tables('{table}')\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.TableDeleteHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableDeleteExceptionHeaders\n }\n },\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept1\n ],\n serializer\n};\nconst queryEntitiesOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}()\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableEntityQueryResponse,\n headersMapper: Mappers.TableQueryEntitiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableQueryEntitiesExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.top,\n Parameters.select,\n Parameters.filter,\n Parameters.timeout,\n Parameters.nextPartitionKey,\n Parameters.nextRowKey\n ],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst queryEntitiesWithPartitionAndRowKeyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Dictionary\", value: { type: { name: \"any\" } } }\n },\n headersMapper: Mappers.TableQueryEntitiesWithPartitionAndRowKeyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper:\n Mappers.TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders\n }\n },\n queryParameters: [\n Parameters.format,\n Parameters.select,\n Parameters.filter,\n Parameters.timeout\n ],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion\n ],\n serializer\n};\nconst updateEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.TableUpdateEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableUpdateEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.accept1,\n Parameters.contentType1,\n Parameters.ifMatch\n ],\n mediaType: \"json\",\n serializer\n};\nconst mergeEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {\n headersMapper: Mappers.TableMergeEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableMergeEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.accept1,\n Parameters.contentType1,\n Parameters.ifMatch\n ],\n mediaType: \"json\",\n serializer\n};\nconst deleteEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {\n headersMapper: Mappers.TableDeleteEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableDeleteEntityExceptionHeaders\n }\n },\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [\n Parameters.url,\n Parameters.table,\n Parameters.partitionKey,\n Parameters.rowKey\n ],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.ifMatch1\n ],\n serializer\n};\nconst insertEntityOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: {\n type: { name: \"Dictionary\", value: { type: { name: \"any\" } } }\n },\n headersMapper: Mappers.TableInsertEntityHeaders\n },\n 204: {\n headersMapper: Mappers.TableInsertEntityHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableInsertEntityExceptionHeaders\n }\n },\n requestBody: Parameters.tableEntityProperties,\n queryParameters: [Parameters.format, Parameters.timeout],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.accept,\n Parameters.version,\n Parameters.requestId,\n Parameters.dataServiceVersion,\n Parameters.contentType,\n Parameters.responsePreference\n ],\n mediaType: \"json\",\n serializer\n};\nconst getAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: {\n name: \"Sequence\",\n element: {\n type: { name: \"Composite\", className: \"SignedIdentifier\" }\n }\n },\n serializedName: \"SignedIdentifiers\",\n xmlName: \"SignedIdentifiers\",\n xmlIsWrapped: true,\n xmlElementName: \"SignedIdentifier\"\n },\n headersMapper: Mappers.TableGetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableGetAccessPolicyExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.comp],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst setAccessPolicyOperationSpec: coreClient.OperationSpec = {\n path: \"/{table}\",\n httpMethod: \"PUT\",\n responses: {\n 204: {\n headersMapper: Mappers.TableSetAccessPolicyHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.TableSetAccessPolicyExceptionHeaders\n }\n },\n requestBody: Parameters.tableAcl,\n queryParameters: [Parameters.timeout, Parameters.comp],\n urlParameters: [Parameters.url, Parameters.table],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.contentType2,\n Parameters.accept3\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { Service } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { GeneratedClient } from \"../generatedClient\";\nimport {\n TableServiceProperties,\n ServiceSetPropertiesOptionalParams,\n ServiceSetPropertiesResponse,\n ServiceGetPropertiesOptionalParams,\n ServiceGetPropertiesResponse,\n ServiceGetStatisticsOptionalParams,\n ServiceGetStatisticsResponse\n} from \"../models\";\n\n/** Class containing Service operations. */\nexport class ServiceImpl implements Service {\n private readonly client: GeneratedClient;\n\n /**\n * Initialize a new instance of the class Service class.\n * @param client Reference to the service client\n */\n constructor(client: GeneratedClient) {\n this.client = client;\n }\n\n /**\n * Sets properties for an account's Table service endpoint, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param tableServiceProperties The Table Service properties.\n * @param options The options parameters.\n */\n setProperties(\n tableServiceProperties: TableServiceProperties,\n options?: ServiceSetPropertiesOptionalParams\n ): Promise<ServiceSetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { tableServiceProperties, options },\n setPropertiesOperationSpec\n );\n }\n\n /**\n * Gets the properties of an account's Table service, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param options The options parameters.\n */\n getProperties(\n options?: ServiceGetPropertiesOptionalParams\n ): Promise<ServiceGetPropertiesResponse> {\n return this.client.sendOperationRequest(\n { options },\n getPropertiesOperationSpec\n );\n }\n\n /**\n * Retrieves statistics related to replication for the Table service. It is only available on the\n * secondary location endpoint when read-access geo-redundant replication is enabled for the account.\n * @param options The options parameters.\n */\n getStatistics(\n options?: ServiceGetStatisticsOptionalParams\n ): Promise<ServiceGetStatisticsResponse> {\n return this.client.sendOperationRequest(\n { options },\n getStatisticsOperationSpec\n );\n }\n}\n// Operation Specifications\nconst xmlSerializer = coreClient.createSerializer(Mappers, /* isXml */ true);\n\nconst setPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n headersMapper: Mappers.ServiceSetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceSetPropertiesExceptionHeaders\n }\n },\n requestBody: Parameters.tableServiceProperties,\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.contentType2,\n Parameters.accept3\n ],\n isXML: true,\n contentType: \"application/xml; charset=utf-8\",\n mediaType: \"xml\",\n serializer: xmlSerializer\n};\nconst getPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableServiceProperties,\n headersMapper: Mappers.ServiceGetPropertiesHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceGetPropertiesExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp1],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\nconst getStatisticsOperationSpec: coreClient.OperationSpec = {\n path: \"/\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.TableServiceStats,\n headersMapper: Mappers.ServiceGetStatisticsHeaders\n },\n default: {\n bodyMapper: Mappers.TableServiceError,\n headersMapper: Mappers.ServiceGetStatisticsExceptionHeaders\n }\n },\n queryParameters: [Parameters.timeout, Parameters.restype, Parameters.comp2],\n urlParameters: [Parameters.url],\n headerParameters: [\n Parameters.version,\n Parameters.requestId,\n Parameters.accept2\n ],\n isXML: true,\n serializer: xmlSerializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { TableImpl, ServiceImpl } from \"./operations\";\nimport { Table, Service } from \"./operationsInterfaces\";\nimport { GeneratedClientOptionalParams } from \"./models\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.1.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2019-02-02\";\n this.table = new TableImpl(this);\n this.service = new ServiceImpl(this);\n }\n\n table: Table;\n service: Service;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\n/**\n * Name of the apiVersion Policy\n * @internal\n */\nexport const apiVersionPolicyName = \"apiVersionPolicy\";\n\n/**\n * Pipeline policy that enables users to override the default api version\n * @internal\n */\nexport const apiVersionPolicy: (apiVersion: string) => PipelinePolicy = (apiVersion: string) => {\n return {\n name: apiVersionPolicyName,\n sendRequest: async (req, next) => {\n req.headers.set(\"x-ms-version\", apiVersion);\n return next(req);\n },\n };\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { AzureNamedKeyCredential } from \"@azure/core-auth\";\nimport type { TableServiceClientOptions } from \"..\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param extractedCreds - parsed connection string\n * @param options - TablesServiceClient options\n */\nexport function fromAccountConnectionString(\n extractedCreds: ConnectionString,\n options: TableServiceClientOptions = {},\n): ClientParamsFromConnectionString {\n const sharedKeyCredential = new AzureNamedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey,\n );\n\n return {\n url: extractedCreds.url,\n options,\n credential: sharedKeyCredential,\n };\n}\n\nexport function getAccountConnectionString(\n accountName: string,\n accountKey: string,\n defaultEndpointsProtocol: string,\n endpointSuffix?: string,\n tableEndpoint?: string,\n): ConnectionString {\n if (!tableEndpoint) {\n // TableEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`\n const protocol = defaultEndpointsProtocol.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\",\n );\n }\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n tableEndpoint = `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: tableEndpoint,\n accountName,\n accountKey,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { fromAccountConnectionString, getAccountConnectionString } from \"./accountConnectionString\";\n\nimport type { TableServiceClientOptions } from \"../models\";\n\nconst DevelopmentConnectionString =\n \"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1\";\n\n/**\n * This function parses a connection string into a set of\n * parameters to pass to be passed to TableClientService,\n * depending on the connection string type these parameter would\n * contain:\n * - Account Connection String: A pipeline to sign the request with a SharedKey\n * - SAS Connection String: Attach a SAS token to the storage account url for authentication\n * @param connectionString - Connection string to parse\n * @param options - TableService client options\n */\nexport function getClientParamsFromConnectionString(\n connectionString: string,\n options: TableServiceClientOptions = {},\n): ClientParamsFromConnectionString {\n if (connectionString.toLowerCase().indexOf(\"usedevelopmentstorage=true\") !== -1) {\n connectionString = DevelopmentConnectionString;\n options.allowInsecureConnection = true;\n }\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n return fromAccountConnectionString(extractedCreds, options);\n } else if (extractedCreds.kind === \"SASConnString\") {\n return {\n url: `${extractedCreds.url}?${extractedCreds.accountSas}`,\n options,\n };\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n}\n\n/**\n * Extracts the parts of an Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n // Matching TableEndpoint in the Account connection string\n let tableEndpoint = getValueInConnString(connectionString, \"TableEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n tableEndpoint = tableEndpoint.endsWith(\"/\") ? tableEndpoint.slice(0, -1) : tableEndpoint;\n\n if (isAccountConnectionString(connectionString)) {\n return getAccountConnectionString(\n getValueInConnString(connectionString, \"AccountName\"),\n getValueInConnString(connectionString, \"AccountKey\"),\n getValueInConnString(connectionString, \"DefaultEndpointsProtocol\"),\n getValueInConnString(connectionString, \"EndpointSuffix\"),\n tableEndpoint,\n );\n } else {\n return getSASConnectionString(connectionString, tableEndpoint);\n }\n}\n\n/**\n * Checks whether a connection string is an Account Connection string or not\n */\nfunction isAccountConnectionString(connectionString: string) {\n const lowercaseConnectionString = connectionString.toLowerCase();\n return (\n lowercaseConnectionString.search(\"defaultendpointsprotocol=\") !== -1 &&\n lowercaseConnectionString.search(\"accountkey=\") !== -1\n );\n}\n\nfunction getSASConnectionString(connectionString: string, tableEndpoint: string): ConnectionString {\n const accountName = getAccountNameFromUrl(tableEndpoint);\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n if (!tableEndpoint) {\n throw new Error(\"Invalid TableEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n } else if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: tableEndpoint, accountName, accountSas };\n}\n\nfunction getValueInConnString(\n connectionString: string,\n argument:\n | \"TableEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\",\n): string {\n const searchKey = argument.toLowerCase();\n const elements = connectionString.split(\";\").filter((e) => Boolean(e));\n for (const element of elements) {\n const trimmedElement = element.trim();\n const [elementKey, value] = getValuePair(trimmedElement);\n const key = elementKey.toLowerCase();\n if (key === searchKey) {\n return value;\n }\n }\n return \"\";\n}\n\nfunction getValuePair(kvp: string): string[] {\n // If the string is not in kvp format <key>=<valye> return an empty array\n if (!kvp || kvp.indexOf(\"=\") === -1) {\n return [];\n }\n // Get the substring before the first '='\n const key = kvp.substr(0, kvp.indexOf(\"=\"));\n // Get the substring after the first '='\n const value = kvp.substr(kvp.indexOf(\"=\") + 1);\n\n return [key, value];\n}\n\n/**\n * Extracts account name from the url\n * @param url - URL to extract the account name from\n * @returns The account name\n */\nfunction getAccountNameFromUrl(url: string): string {\n if (!url) {\n return url;\n }\n\n const parsedUrl = new URL(url);\n let accountName;\n\n const host = parsedUrl.host || \"\";\n const path = parsedUrl.pathname || \"\";\n const hostParts = host.split(\".\");\n const pathParts = path.split(\"/\");\n\n if (hostParts.length >= 1 && hostParts[1] === \"table\") {\n // `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n // Slicing off '/' at the end if exists\n url = url.endsWith(\"/\") ? url.slice(0, -1) : url;\n accountName = host.split(\".\")[0];\n } else if (pathParts.length >= 1) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = pathParts[1];\n } else {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n\n return accountName;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions, OperationRequest } from \"@azure/core-client\";\nimport type { PipelineResponse, RestError } from \"@azure/core-rest-pipeline\";\nimport type { AzureLogger } from \"@azure/logger\";\nimport type { TableServiceError } from \"../generated\";\n\nexport type TableServiceErrorResponse = PipelineResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders?: Record<string, unknown>;\n /**\n * The response body as parsed JSON or XML.\n */\n parsedBody: TableServiceError;\n /**\n * The request that generated the response.\n */\n request: OperationRequest;\n};\n\nexport function handleTableAlreadyExists(\n error: unknown,\n options: OperationOptions & { tableName?: string; logger?: AzureLogger } = {},\n): void {\n const responseError = getErrorResponse(error);\n if (\n responseError &&\n responseError.status === 409 &&\n responseError.parsedBody.odataError?.code === \"TableAlreadyExists\"\n ) {\n options.logger?.info(`Table ${options.tableName} already Exists`);\n\n if (options.onResponse) {\n options.onResponse(responseError, {});\n }\n } else {\n throw error;\n }\n}\n\nfunction getErrorResponse(error: unknown): TableServiceErrorResponse | undefined {\n if (!isRestError(error)) {\n return undefined;\n }\n\n const errorResponse: TableServiceErrorResponse = error.response as TableServiceErrorResponse;\n\n if (!errorResponse || !isTableServiceErrorResponse(errorResponse.parsedBody)) {\n return undefined;\n }\n\n return errorResponse;\n}\n\nfunction isRestError(error: unknown): error is RestError {\n return (error as RestError).name === \"RestError\";\n}\n\nfunction isTableServiceErrorResponse(\n errorResponseBody: any,\n): errorResponseBody is TableServiceError {\n return Boolean(errorResponseBody?.odataError);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isNamedKeyCredential, isSASCredential, isTokenCredential } from \"@azure/core-auth\";\n\nexport function isCredential(\n credential: unknown,\n): credential is NamedKeyCredential | SASCredential | TokenCredential {\n return (\n isSASCredential(credential) || isNamedKeyCredential(credential) || isTokenCredential(credential)\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AzureLogger } from \"@azure/logger\";\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The \\@azure/logger configuration for this package.\n */\nexport const logger: AzureLogger = createClientLogger(\"data-tables\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Pipeline } from \"@azure/core-rest-pipeline\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { authorizeRequestOnTenantChallenge } from \"@azure/core-client\";\n\n/**\n * @internal\n * Setups the challenge authentication policy for the provided token credential.\n */\nexport function setTokenChallengeAuthenticationPolicy(\n pipeline: Pipeline,\n credential: TokenCredential,\n scopes: string | string[],\n): void {\n // Make sure no bearerTokenPolicy is set.\n pipeline.removePolicy({ name: \"bearerTokenPolicy\" });\n pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n {\n phase: \"Sign\",\n },\n );\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"./utils/constants\";\nimport type { NamedKeyCredential } from \"@azure/core-auth\";\nimport { computeHMACSHA256 } from \"./utils/computeHMACSHA256\";\n\n/**\n * The programmatic identifier of the tablesNamedKeyCredentialPolicy.\n */\nexport const tablesNamedKeyCredentialPolicyName = \"tablesNamedKeyCredentialPolicy\";\n\n/**\n * tablesNamedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesNamedKeyCredentialPolicy(credential: NamedKeyCredential): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n const headerValue = getAuthorizationHeader(request, credential);\n request.headers.set(HeaderConstants.AUTHORIZATION, headerValue);\n }\n\n return {\n name: tablesNamedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n },\n };\n}\n\nexport function getAuthorizationHeader(\n request: PipelineRequest,\n credential: NamedKeyCredential,\n): string {\n if (!request.headers.has(HeaderConstants.X_MS_DATE)) {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n }\n\n if (request.body && typeof request.body === \"string\" && request.body.length > 0) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n // If x-ms-date is present, use it otherwise date\n const dateHeader = getHeaderValueToSign(request, HeaderConstants.X_MS_DATE);\n\n if (!dateHeader) {\n throw new Error(\"Failed to sign request: x-ms-date or date header must be present\");\n }\n\n const stringToSign: string = [\n dateHeader,\n getCanonicalizedResourceString(request, credential),\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return `SharedKeyLite ${credential.name}:${signature}`;\n}\n\nfunction getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n return value;\n}\n\nfunction getCanonicalizedResourceString(\n request: PipelineRequest,\n credential: NamedKeyCredential,\n): string {\n // https://docs.microsoft.com/rest/api/storageservices/authorize-with-shared-key#shared-key-lite-and-table-service-format-for-2009-09-19-and-later\n const url = new URL(request.url);\n const path = url.pathname || \"/\";\n let canonicalizedResourceString = \"/\" + credential.name + path;\n\n // The query string should include the question mark and the comp parameter (for example, ?comp=metadata). No other parameters should be included on the query string.\n const comp = url.searchParams.get(\"comp\");\n\n if (comp) {\n canonicalizedResourceString = `${canonicalizedResourceString}?comp=${comp}`;\n }\n\n return canonicalizedResourceString;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport type { SASCredential } from \"@azure/core-auth\";\n\n/**\n * The programmatic identifier of the tablesSASTokenPolicy.\n */\nexport const tablesSASTokenPolicyName = \"tablesSASTokenPolicy\";\n\n/**\n * tablesSASTokenPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesSASTokenPolicy(credential: SASCredential): PipelinePolicy {\n return {\n name: tablesSASTokenPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signURLWithSAS(request, credential);\n return next(request);\n },\n };\n}\n\nexport function signURLWithSAS(request: PipelineRequest, credential: SASCredential): void {\n const sasParams = new URLSearchParams(credential.signature);\n const url = new URL(request.url);\n\n for (const [name, value] of sasParams) {\n url.searchParams.append(name, value);\n }\n request.url = url.toString();\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * A tracing client that can be used to manage spans.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.Data.Tables\",\n packageName: \"@azure/data-tables\",\n packageVersion: \"13.3.0\",\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport function isCosmosEndpoint(url: string): boolean {\n const parsedURL = new URL(url);\n if (parsedURL.hostname.indexOf(\".table.cosmosdb.\") !== -1) {\n return true;\n }\n\n if (parsedURL.hostname.indexOf(\".table.cosmos.\") !== -1) {\n return true;\n }\n\n if (parsedURL.hostname === \"localhost\" && parsedURL.port !== \"10002\") {\n return true;\n }\n\n return false;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n GetPropertiesResponse,\n GetStatisticsResponse,\n ServiceProperties,\n SetPropertiesOptions,\n SetPropertiesResponse,\n} from \"./generatedModels\";\nimport type {\n InternalClientPipelineOptions,\n OperationOptions,\n ServiceClientOptions,\n} from \"@azure/core-client\";\nimport type {\n ListTableItemsOptions,\n TableItem,\n TableQueryOptions,\n TableServiceClientOptions,\n} from \"./models\";\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isNamedKeyCredential, isSASCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { COSMOS_SCOPE, STORAGE_SCOPE, TablesLoggingAllowedHeaderNames } from \"./utils/constants\";\nimport type { Service, Table } from \"./generated\";\nimport {\n injectSecondaryEndpointHeader,\n tablesSecondaryEndpointPolicy,\n} from \"./secondaryEndpointPolicy\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\n\nimport { GeneratedClient } from \"./generated/generatedClient\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type { Pipeline } from \"@azure/core-rest-pipeline\";\nimport type { TableItemResultPage } from \"./models\";\nimport { apiVersionPolicy } from \"./utils/apiVersionPolicy\";\nimport { getClientParamsFromConnectionString } from \"./utils/connectionString\";\nimport { handleTableAlreadyExists } from \"./utils/errorHelpers\";\nimport { isCredential } from \"./utils/isCredential\";\nimport { logger } from \"./logger\";\nimport { setTokenChallengeAuthenticationPolicy } from \"./utils/challengeAuthenticationUtils\";\nimport { tablesNamedKeyCredentialPolicy } from \"./tablesNamedCredentialPolicy\";\nimport { tablesSASTokenPolicy } from \"./tablesSASTokenPolicy\";\nimport { tracingClient } from \"./utils/tracing\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\n\n/**\n * A TableServiceClient represents a Client to the Azure Tables service allowing you\n * to perform operations on the tables and the entities.\n */\nexport class TableServiceClient {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n * Pipelines can have multiple policies to manage manipulating each request before and after it is made to the server.\n */\n public pipeline: Pipeline;\n private table: Table;\n private service: Service;\n\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - NamedKeyCredential | SASCredential used to authenticate requests. Only Supported for Node\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using an account name/key:\n *\n * ```js\n * const { AzureNamedKeyCredential, TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, \"<account key>\");\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * sharedKeyCredential\n * );\n * ```\n */\n constructor(url: string, credential: NamedKeyCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - SASCredential used to authenticate requests\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using a SAS Token.\n *\n * ```js\n * const { AzureSASCredential, TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const sasCredential = new AzureSASCredential(account, \"<account key>\");\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * sasCredential\n * );\n * ```\n */\n constructor(url: string, credential: SASCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as \"https://myaccount.table.core.windows.net\".\n * @param credential - Azure Active Directory credential used to authenticate requests\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example using an Azure Active Directory credential:\n *\n * ```js\n * cons { DefaultAzureCredential } = require(\"@azure/identity\");\n * const { TableServiceClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\"\n * const credential = new DefaultAzureCredential();\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net`,\n * credential\n * );\n * ```\n */\n constructor(url: string, credential: TokenCredential, options?: TableServiceClientOptions);\n /**\n * Creates a new instance of the TableServiceClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation., such as\n * \"https://myaccount.table.core.windows.net\". You can append a SAS,\n * such as \"https://myaccount.table.core.windows.net?sasString\".\n * @param options - Options to configure the HTTP pipeline.\n * Example appending a SAS token:\n *\n * ```js\n * const account = \"<storage account name>\";\n * const sasToken = \"<SAS token>\";\n *\n * const tableServiceClient = new TableServiceClient(\n * `https://${account}.table.core.windows.net?${sasToken}`,\n * );\n * ```\n */\n constructor(url: string, options?: TableServiceClientOptions);\n constructor(\n url: string,\n credentialOrOptions?:\n | NamedKeyCredential\n | SASCredential\n | TokenCredential\n | TableServiceClientOptions,\n options?: TableServiceClientOptions,\n ) {\n this.url = url;\n const isCosmos = isCosmosEndpoint(this.url);\n const credential = isCredential(credentialOrOptions) ? credentialOrOptions : undefined;\n const clientOptions =\n (!isCredential(credentialOrOptions) ? credentialOrOptions : options) || {};\n\n const internalPipelineOptions: ServiceClientOptions & InternalClientPipelineOptions = {\n ...clientOptions,\n endpoint: clientOptions.endpoint || this.url,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [...TablesLoggingAllowedHeaderNames],\n },\n deserializationOptions: {\n parseXML,\n },\n serializationOptions: {\n stringifyXML,\n },\n };\n const client = new GeneratedClient(this.url, internalPipelineOptions);\n client.pipeline.addPolicy(tablesSecondaryEndpointPolicy);\n\n if (isNamedKeyCredential(credential)) {\n client.pipeline.addPolicy(tablesNamedKeyCredentialPolicy(credential));\n } else if (isSASCredential(credential)) {\n client.pipeline.addPolicy(tablesSASTokenPolicy(credential));\n }\n\n if (isTokenCredential(credential)) {\n const scope = isCosmos ? COSMOS_SCOPE : STORAGE_SCOPE;\n setTokenChallengeAuthenticationPolicy(client.pipeline, credential, scope);\n }\n\n if (options?.version) {\n client.pipeline.addPolicy(apiVersionPolicy(options.version));\n }\n\n this.pipeline = client.pipeline;\n this.table = client.table;\n this.service = client.service;\n }\n\n /**\n * Retrieves statistics related to replication for the Table service. It is only available on the\n * secondary location endpoint when read-access geo-redundant replication is enabled for the account.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public async getStatistics(options: OperationOptions = {}): Promise<GetStatisticsResponse> {\n return tracingClient.withSpan(\"TableServiceClient.getStatistics\", options, (updatedOptions) =>\n this.service.getStatistics(injectSecondaryEndpointHeader(updatedOptions)),\n );\n }\n\n /**\n * Gets the properties of an account's Table service, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getProperties(options: OperationOptions = {}): Promise<GetPropertiesResponse> {\n return tracingClient.withSpan(\"TableServiceClient.getProperties\", options, (updatedOptions) =>\n this.service.getProperties(updatedOptions),\n );\n }\n\n /**\n * Sets properties for an account's Table service endpoint, including properties for Analytics and CORS\n * (Cross-Origin Resource Sharing) rules.\n * @param properties - The Table Service properties.\n * @param options - The options parameters.\n */\n public setProperties(\n properties: ServiceProperties,\n options: SetPropertiesOptions = {},\n ): Promise<SetPropertiesResponse> {\n return tracingClient.withSpan(\"TableServiceClient.setProperties\", options, (updatedOptions) =>\n this.service.setProperties(properties, updatedOptions),\n );\n }\n\n /**\n * Creates a new table under the given account.\n * @param name - The name of the table.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public createTable(name: string, options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"TableServiceClient.createTable\",\n options,\n async (updatedOptions) => {\n try {\n await this.table.create({ name }, updatedOptions);\n } catch (e: any) {\n handleTableAlreadyExists(e, { ...updatedOptions, logger, tableName: name });\n }\n },\n );\n }\n\n /**\n * Operation permanently deletes the specified table.\n * @param name - The name of the table.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public deleteTable(name: string, options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"TableServiceClient.deleteTable\",\n options,\n async (updatedOptions) => {\n try {\n await this.table.delete(name, updatedOptions);\n } catch (e: any) {\n if (e.statusCode === 404) {\n logger.info(\"TableServiceClient.deleteTable: Table doesn't exist\");\n } else {\n throw e;\n }\n }\n },\n );\n }\n\n /**\n * Queries tables under the given account.\n * @param options - The options parameters.\n */\n public listTables(\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: ListTableItemsOptions,\n ): PagedAsyncIterableIterator<TableItem, TableItemResultPage> {\n const iter = this.listTablesAll(options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings) => {\n const pageOptions: InternalListTablesOptions = {\n ...options,\n queryOptions: { ...options?.queryOptions, top: settings?.maxPageSize },\n };\n\n if (settings?.continuationToken) {\n pageOptions.continuationToken = settings.continuationToken;\n }\n\n return this.listTablesPage(pageOptions);\n },\n };\n }\n\n private async *listTablesAll(\n options?: InternalListTablesOptions,\n ): AsyncIterableIterator<TableItem> {\n const firstPage = await this._listTables(options);\n const { continuationToken } = firstPage;\n yield* firstPage;\n if (continuationToken) {\n const optionsWithContinuation: InternalListTablesOptions = {\n ...options,\n continuationToken,\n };\n for await (const page of this.listTablesPage(optionsWithContinuation)) {\n yield* page;\n }\n }\n }\n\n private async *listTablesPage(\n options: InternalListTablesOptions = {},\n ): AsyncIterableIterator<TableItemResultPage> {\n let result = await tracingClient.withSpan(\n \"TableServiceClient.listTablesPage\",\n options,\n (updatedOptions) => this._listTables(updatedOptions),\n );\n\n yield result;\n\n while (result.continuationToken) {\n const optionsWithContinuation: InternalListTablesOptions = {\n ...options,\n continuationToken: result.continuationToken,\n };\n result = await tracingClient.withSpan(\n \"TableServiceClient.listTablesPage\",\n optionsWithContinuation,\n async (updatedOptions, span) => {\n span.setAttribute(\"continuationToken\", updatedOptions.continuationToken);\n return this._listTables(updatedOptions);\n },\n );\n yield result;\n }\n }\n\n private async _listTables(options: InternalListTablesOptions = {}): Promise<TableItemResultPage> {\n const { continuationToken: nextTableName, ...listOptions } = options;\n const { xMsContinuationNextTableName: continuationToken, value = [] } = await this.table.query({\n ...listOptions,\n nextTableName,\n });\n return Object.assign([...value], { continuationToken });\n }\n\n /**\n *\n * Creates an instance of TableServiceClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.table.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Options to configure the HTTP pipeline.\n * @returns A new TableServiceClient from the given connection string.\n */\n public static fromConnectionString(\n connectionString: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: TableServiceClientOptions,\n ): TableServiceClient {\n const {\n url,\n options: clientOptions,\n credential,\n } = getClientParamsFromConnectionString(connectionString, options);\n\n if (credential) {\n return new TableServiceClient(url, credential, clientOptions);\n } else {\n return new TableServiceClient(url, clientOptions);\n }\n }\n}\n\ntype InternalListTablesOptions = ListTableItemsOptions & {\n queryOptions?: TableQueryOptions & { top?: number };\n /**\n * A table query continuation token from a previous call.\n */\n continuationToken?: string;\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { HeaderConstants, TRANSACTION_HTTP_LINE_ENDING } from \"./constants\";\n\n/**\n * Builds a transaction change set boundary to be added to the transaction request body\n * @param changesetId - Id of the transaction changeset\n */\nexport function getChangeSetBoundary(changesetId: string): string {\n return `changeset_${changesetId}`;\n}\n\n/**\n * Builds a transaction boundary to be added to the transaction request body\n * @param transactionId - Id of the transaction\n */\nexport function getTransactionBoundary(transactionId: string): string {\n return `batch_${transactionId}`;\n}\n\n/**\n * Returns an initial representation of the Transaction body.\n * @param transactionId - Id of the transaction\n * @param changesetId - Id of the transaction changeset\n */\nexport function getInitialTransactionBody(transactionId: string, changesetId: string): string[] {\n const transactionBoundary = `batch_${transactionId}`;\n return [\n `--${transactionBoundary}${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: multipart/mixed; boundary=changeset_${changesetId}${TRANSACTION_HTTP_LINE_ENDING}${TRANSACTION_HTTP_LINE_ENDING}`,\n ];\n}\n\n/**\n * Build the Transaction http request body to send to the service.\n * @param bodyParts - Parts of the transaction body, containing information about the actions to be included in the transaction request\n * @param transactionId - Id of the transaction\n * @param changesetId - Id of the transaction changeset\n */\nexport function getTransactionHttpRequestBody(\n bodyParts: string[],\n transactionId: string,\n changesetId: string,\n): string {\n const transactionBoundary = getTransactionBoundary(transactionId);\n const changesetBoundary = getChangeSetBoundary(changesetId);\n const changesetEnding = `--${changesetBoundary}--`;\n const transactionEnding = `--${transactionBoundary}--`;\n const bodyContent = bodyParts.join(TRANSACTION_HTTP_LINE_ENDING);\n return `${bodyContent}${TRANSACTION_HTTP_LINE_ENDING}${changesetEnding}${TRANSACTION_HTTP_LINE_ENDING}${transactionEnding}${TRANSACTION_HTTP_LINE_ENDING}`;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n HeaderConstants,\n TRANSACTION_HTTP_LINE_ENDING,\n TRANSACTION_HTTP_VERSION_1_1,\n} from \"./utils/constants\";\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { createHttpHeaders, createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport { getChangeSetBoundary } from \"./utils/transactionHelpers\";\n\nexport const transactionRequestAssemblePolicyName = \"transactionRequestAssemblePolicy\";\n\nconst dummyResponse: PipelineResponse = {\n request: createPipelineRequest({ url: \"FAKE\" }),\n status: 200,\n headers: createHttpHeaders(),\n};\n\nexport function transactionRequestAssemblePolicy(\n bodyParts: string[],\n changesetId: string,\n): PipelinePolicy {\n return {\n name: transactionRequestAssemblePolicyName,\n async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const subRequest = getNextSubrequestBodyPart(request, changesetId);\n bodyParts.push(subRequest);\n // Intercept request from going to wire\n return dummyResponse;\n },\n };\n}\n\nexport const transactionHeaderFilterPolicyName = \"transactionHeaderFilterPolicy\";\n\nexport function transactionHeaderFilterPolicy(): PipelinePolicy {\n return {\n name: transactionHeaderFilterPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n // The subrequests should not have the x-ms-version header.\n request.headers.delete(HeaderConstants.X_MS_VERSION);\n return next(request);\n },\n };\n}\n\nfunction getSubRequestUrl(url: string): string {\n const sasTokenParts = [\"sv\", \"ss\", \"srt\", \"sp\", \"se\", \"st\", \"spr\", \"sig\"];\n const urlParsed = new URL(url);\n sasTokenParts.forEach((part) => urlParsed.searchParams.delete(part));\n return urlParsed.toString();\n}\n\nfunction getNextSubrequestBodyPart(request: PipelineRequest, changesetId: string) {\n const changesetBoundary = getChangeSetBoundary(changesetId);\n const subRequestPrefix = `--${changesetBoundary}${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TYPE}: application/http${TRANSACTION_HTTP_LINE_ENDING}${HeaderConstants.CONTENT_TRANSFER_ENCODING}: binary`;\n\n const subRequestUrl = getSubRequestUrl(request.url);\n // Start to assemble sub request\n const subRequest = [\n subRequestPrefix, // sub request constant prefix\n \"\", // empty line after sub request's content ID\n `${request.method.toString()} ${subRequestUrl} ${TRANSACTION_HTTP_VERSION_1_1}`, // sub request start line with method,\n ];\n\n // Add required headers\n for (const [name, value] of request.headers) {\n subRequest.push(`${name}: ${value}`);\n }\n\n // Append sub-request body\n subRequest.push(`${TRANSACTION_HTTP_LINE_ENDING}`); // sub request's headers need end with an empty line\n if (request.body) {\n subRequest.push(String(request.body));\n }\n\n // Add subrequest to transaction body\n return subRequest.join(TRANSACTION_HTTP_LINE_ENDING);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PipelinePolicy } from \"@azure/core-rest-pipeline\";\n\nconst cosmosPatchPolicyName = \"cosmosPatchPolicy\";\n\nexport function cosmosPatchPolicy(): PipelinePolicy {\n return {\n name: cosmosPatchPolicyName,\n sendRequest: (request, next) => {\n if (request.method === \"PATCH\") {\n request.method = \"POST\";\n request.headers.set(\"X-HTTP-Method\", \"MERGE\");\n }\n\n return next(request);\n },\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\n\n/**\n * @internal\n * Builds an object with the required headers for a Transaction request. For both Node and Browser\n */\nexport function getBaseTransactionHeaders(transactionGuid: string): RawHttpHeaders {\n return {\n accept: \"application/json\",\n \"x-ms-version\": \"2019-02-02\",\n DataServiceVersion: \"3.0;\",\n MaxDataServiceVersion: \"3.0;NetFx\",\n \"Content-Type\": `multipart/mixed; boundary=batch_${transactionGuid}`,\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { getBaseTransactionHeaders } from \"./baseTransactionHeaders\";\n\n/**\n * @internal\n * Builds an object with the required headers for a Transaction request. For Node\n */\nexport function getTransactionHeaders(transactionGuid: string): RawHttpHeaders {\n const baseHeaders = getBaseTransactionHeaders(transactionGuid);\n return {\n ...baseHeaders,\n // The below headers are not supported in the browser as they are flagged as \"unsafe headers\"\n \"Accept-Charset\": \"UTF-8\",\n Connection: \"Keep-Alive\",\n };\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n DeleteTableEntityOptions,\n TableEntity,\n TableTransactionEntityResponse,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models\";\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { OperationOptions, ServiceClient } from \"@azure/core-client\";\nimport { serializationPolicy, serializationPolicyName } from \"@azure/core-client\";\nimport type { Pipeline, PipelineRequest, PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { RestError, createHttpHeaders, createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport {\n getInitialTransactionBody,\n getTransactionHttpRequestBody,\n} from \"./utils/transactionHelpers\";\nimport {\n transactionHeaderFilterPolicy,\n transactionHeaderFilterPolicyName,\n transactionRequestAssemblePolicy,\n transactionRequestAssemblePolicyName,\n} from \"./TablePolicies\";\n\nimport type { TableClientLike } from \"./utils/internalModels\";\nimport type { TableServiceErrorOdataError } from \"./generated\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy\";\nimport { getTransactionHeaders } from \"./utils/transactionHeaders\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\nimport { tracingClient } from \"./utils/tracing\";\n\n/**\n * Helper to build a list of transaction actions\n */\nexport class TableTransaction {\n /**\n * List of actions to perform in a transaction\n */\n public actions: TransactionAction[];\n\n constructor(actions?: TransactionAction[]) {\n this.actions = actions ?? [];\n }\n\n /**\n * Adds a create action to the transaction\n * @param entity - entity to create\n */\n createEntity<T extends object = Record<string, unknown>>(entity: TableEntity<T>): void {\n this.actions.push([\"create\", entity]);\n }\n\n /**\n * Adds a delete action to the transaction\n * @param partitionKey - partition key of the entity to delete\n * @param rowKey - rowKey of the entity to delete\n */\n deleteEntity(partitionKey: string, rowKey: string): void {\n this.actions.push([\"delete\", { partitionKey, rowKey }]);\n }\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateMode - update mode\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateModeOrOptions - update mode or update options\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateModeOrOptions: UpdateMode | UpdateTableEntityOptions | undefined,\n updateOptions?: UpdateTableEntityOptions,\n ): void {\n // UpdateMode is a string union\n const realUpdateMode: UpdateMode | undefined =\n typeof updateModeOrOptions === \"string\" ? updateModeOrOptions : undefined;\n const realUpdateOptions: UpdateTableEntityOptions | undefined =\n typeof updateModeOrOptions === \"object\" ? updateModeOrOptions : updateOptions;\n this.actions.push([\"update\", entity, realUpdateMode ?? \"Merge\", realUpdateOptions ?? {}]);\n }\n\n /**\n * Adds an upsert action to the transaction, which inserts if the entity doesn't exist or updates the existing one\n * @param entity - entity to upsert\n * @param updateMode - update mode\n */\n upsertEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode = \"Merge\",\n ): void {\n this.actions.push([\"upsert\", entity, updateMode]);\n }\n}\n\n/**\n * TableTransaction collects sub-operations that can be submitted together via submitTransaction\n */\nexport class InternalTableTransaction {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * State that holds the information about a particular transation\n */\n private state: {\n transactionId: string;\n changesetId: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n partitionKey: string;\n };\n private interceptClient: TableClientLike;\n private allowInsecureConnection: boolean;\n private client: ServiceClient;\n\n /**\n * @param url - Tables account url\n * @param partitionKey - partition key\n * @param credential - credential to authenticate the transaction request\n */\n constructor(\n url: string,\n partitionKey: string,\n transactionId: string,\n changesetId: string,\n client: ServiceClient,\n interceptClient: TableClientLike,\n credential?: NamedKeyCredential | SASCredential | TokenCredential,\n allowInsecureConnection: boolean = false,\n ) {\n this.client = client;\n this.url = url;\n this.interceptClient = interceptClient;\n this.allowInsecureConnection = allowInsecureConnection;\n\n // Initialize the state\n this.state = this.initializeState(transactionId, changesetId, partitionKey);\n\n // Depending on the auth method used we need to build the url\n if (!credential) {\n // When the SAS token is provided as part of the URL we need to move it after $batch\n const urlParts = url.split(\"?\");\n this.url = urlParts[0];\n const sas = urlParts.length > 1 ? `?${urlParts[1]}` : \"\";\n this.url = `${this.getUrlWithSlash()}$batch${sas}`;\n } else {\n // When using a SharedKey credential no SAS token is needed\n this.url = `${this.getUrlWithSlash()}$batch`;\n }\n }\n\n private initializeState(transactionId: string, changesetId: string, partitionKey: string) {\n const pendingOperations: Promise<any>[] = [];\n const bodyParts = getInitialTransactionBody(transactionId, changesetId);\n const isCosmos = isCosmosEndpoint(this.url);\n prepateTransactionPipeline(this.interceptClient.pipeline, bodyParts, changesetId, isCosmos);\n\n return {\n transactionId,\n changesetId,\n partitionKey,\n pendingOperations,\n bodyParts,\n };\n }\n\n /**\n * Adds a createEntity operation to the transaction\n * @param entity - Entity to create\n */\n public createEntity<T extends object>(entity: TableEntity<T>): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n\n /**\n * Adds a createEntity operation to the transaction per each entity in the entities array\n * @param entities - Array of entities to create\n */\n public createEntities<T extends object>(entities: TableEntity<T>[]): void {\n for (const entity of entities) {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n }\n\n /**\n * Adds a deleteEntity operation to the transaction\n * @param partitionKey - Partition key of the entity to delete\n * @param rowKey - Row key of the entity to delete\n * @param options - Options for the delete operation\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions,\n ): void {\n this.checkPartitionKey(partitionKey);\n this.state.pendingOperations.push(\n this.interceptClient.deleteEntity(partitionKey, rowKey, options),\n );\n }\n\n /**\n * Adds an updateEntity operation to the transaction\n * @param entity - Entity to update\n * @param mode - Update mode (Merge or Replace)\n * @param options - Options for the update operation\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.updateEntity(entity, mode, options));\n }\n\n /**\n * Adds an upsertEntity operation to the transaction\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.upsertEntity(entity, mode, options));\n }\n\n /**\n * Submits the operations in the transaction\n */\n public async submitTransaction(): Promise<TableTransactionResponse> {\n await Promise.all(this.state.pendingOperations);\n const body = getTransactionHttpRequestBody(\n this.state.bodyParts,\n this.state.transactionId,\n this.state.changesetId,\n );\n\n const headers = getTransactionHeaders(this.state.transactionId);\n\n return tracingClient.withSpan(\n \"TableTransaction.submitTransaction\",\n {} as OperationOptions,\n async (updatedOptions) => {\n const request = createPipelineRequest({\n url: this.url,\n method: \"POST\",\n body,\n headers: createHttpHeaders(headers),\n tracingOptions: updatedOptions.tracingOptions,\n allowInsecureConnection: this.allowInsecureConnection,\n });\n\n const rawTransactionResponse = await this.client.sendRequest(request);\n return parseTransactionResponse(rawTransactionResponse);\n },\n );\n }\n\n private checkPartitionKey(partitionKey: string): void {\n if (this.state.partitionKey !== partitionKey) {\n throw new Error(\"All operations in a transaction must target the same partitionKey\");\n }\n }\n\n private getUrlWithSlash(): string {\n return this.url.endsWith(\"/\") ? this.url : `${this.url}/`;\n }\n}\n\nexport function parseTransactionResponse(\n transactionResponse: PipelineResponse,\n): TableTransactionResponse {\n const subResponsePrefix = `--changesetresponse_`;\n const status = transactionResponse.status;\n const rawBody = transactionResponse.bodyAsText || \"\";\n const splitBody = rawBody.split(subResponsePrefix);\n const isSuccessByStatus = 200 <= status && status < 300;\n\n if (!isSuccessByStatus) {\n handleBodyError(rawBody, status, transactionResponse.request, transactionResponse);\n }\n\n // Dropping the first and last elements as they are the boundaries\n // we just care about sub request content\n const subResponses = splitBody.slice(1, splitBody.length - 1);\n\n const responses: TableTransactionEntityResponse[] = subResponses.map((subResponse) => {\n const statusMatch = subResponse.match(/HTTP\\/1.1 ([0-9]*)/);\n if (statusMatch?.length !== 2) {\n throw new Error(`Couldn't extract status from sub-response:\\n ${subResponse}`);\n }\n const subResponseStatus = Number.parseInt(statusMatch[1]);\n if (!Number.isInteger(subResponseStatus)) {\n throw new Error(`Expected sub-response status to be an integer ${subResponseStatus}`);\n }\n\n const bodyMatch = subResponse.match(/\\{(.*)\\}/);\n if (bodyMatch?.length === 2) {\n handleBodyError(\n bodyMatch[0],\n subResponseStatus,\n transactionResponse.request,\n transactionResponse,\n );\n }\n\n const etagMatch = subResponse.match(/ETag: (.*)/);\n const rowKeyMatch = subResponse.match(/RowKey='(.*)'/);\n\n return {\n status: subResponseStatus,\n ...(rowKeyMatch?.length === 2 && { rowKey: rowKeyMatch[1] }),\n ...(etagMatch?.length === 2 && { etag: etagMatch[1] }),\n };\n });\n\n return {\n status,\n subResponses: responses,\n getResponseForEntity: (rowKey: string) => responses.find((r) => r.rowKey === rowKey),\n };\n}\n\nfunction handleBodyError(\n bodyAsText: string,\n statusCode: number,\n request: PipelineRequest,\n response: PipelineResponse,\n) {\n let parsedError;\n\n try {\n parsedError = JSON.parse(bodyAsText);\n } catch {\n parsedError = {};\n }\n\n let message = \"Transaction Failed\";\n let code: string | undefined;\n // Only transaction sub-responses return body\n if (parsedError && parsedError[\"odata.error\"]) {\n const error: TableServiceErrorOdataError = parsedError[\"odata.error\"];\n message = error.message?.value ?? message;\n code = error.code;\n }\n\n throw new RestError(message, {\n code,\n statusCode,\n request,\n response,\n });\n}\n\n/**\n * Prepares the transaction pipeline to intercept operations\n * @param pipeline - Client pipeline\n */\nexport function prepateTransactionPipeline(\n pipeline: Pipeline,\n bodyParts: string[],\n changesetId: string,\n isCosmos: boolean,\n): void {\n // Fist, we need to clear all the existing policies to make sure we start\n // with a fresh state.\n const policies = pipeline.getOrderedPolicies();\n for (const policy of policies) {\n pipeline.removePolicy({\n name: policy.name,\n });\n }\n\n // With the clear state we now initialize the pipelines required for intercepting the requests.\n // Use transaction assemble policy to assemble request and intercept request from going to wire\n\n pipeline.addPolicy(serializationPolicy(), { phase: \"Serialize\" });\n pipeline.addPolicy(transactionHeaderFilterPolicy());\n pipeline.addPolicy(transactionRequestAssemblePolicy(bodyParts, changesetId));\n if (isCosmos) {\n pipeline.addPolicy(cosmosPatchPolicy(), {\n afterPolicies: [transactionHeaderFilterPolicyName],\n beforePolicies: [serializationPolicyName, transactionRequestAssemblePolicyName],\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Encodes a byte array in base64 format.\n * @param value - The Uint8Aray or string to encode\n */\nexport function base64Encode(value: Uint8Array | string): string {\n if (value instanceof Uint8Array) {\n const bufferValue = value instanceof Buffer ? value : Buffer.from(value.buffer);\n return bufferValue.toString(\"base64\");\n } else {\n return Buffer.from(value).toString(\"base64\");\n }\n}\n\n/**\n * Decodes a base64 string into a byte array.\n * @param value - The base64 string to decode\n */\nexport function base64Decode(value: string): Uint8Array {\n return Buffer.from(value, \"base64\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { base64Decode, base64Encode } from \"./bufferSerializer\";\n\ninterface ContinuationToken {\n nextPartitionKey: string;\n nextRowKey?: string;\n}\n\n/**\n * Encodes the nextPartitionKey and nextRowKey into a single continuation token\n */\nexport function encodeContinuationToken(\n nextPartitionKey?: string,\n nextRowKey?: string,\n): string | undefined {\n if (!nextPartitionKey) {\n return undefined;\n }\n\n const continuationToken = {\n nextPartitionKey,\n // Only add nextRowKey if the value is not null, undefined or empty string.\n ...(nextRowKey && { nextRowKey }),\n };\n\n return base64Encode(JSON.stringify(continuationToken));\n}\n\n/**\n * Decodes a continuationToken into an object containing a nextPartitionKey and nextRowKey\n */\nexport function decodeContinuationToken(encodedToken: string): ContinuationToken {\n const decodedToken = base64Decode(encodedToken);\n let tokenStr = \"\";\n\n for (const byte of decodedToken) {\n tokenStr += String.fromCharCode(byte);\n }\n const continuationToken: ContinuationToken = JSON.parse(tokenStr);\n\n return continuationToken;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models\";\nimport type {\n QueryOptions as GeneratedQueryOptions,\n SignedIdentifier as GeneratedSignedIdentifier,\n} from \"./generated/models\";\nimport { base64Decode, base64Encode } from \"./utils/bufferSerializer\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date\";\n\nconst propertyCaseMap: Map<string, string> = new Map<string, string>([\n [\"PartitionKey\", \"partitionKey\"],\n [\"RowKey\", \"rowKey\"],\n [\"odata.etag\", \"etag\"],\n [\"Timestamp\", \"timestamp\"],\n]);\n\nconst Edm = {\n Binary: \"Edm.Binary\",\n Boolean: \"Edm.Boolean\",\n DateTime: \"Edm.DateTime\",\n Double: \"Edm.Double\",\n Guid: \"Edm.Guid\",\n Int32: \"Edm.Int32\",\n Int64: \"Edm.Int64\",\n String: \"Edm.String\",\n} as const;\n\ntype supportedTypes = boolean | string | number | Date | Uint8Array | bigint;\n\ntype serializedType = {\n value: supportedTypes;\n type?: string;\n};\n\nfunction serializePrimitive(value: any): serializedType {\n const serializedValue: serializedType = { value };\n if (\n value === undefined ||\n value === null ||\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n serializedValue.value = value;\n } else if (typeof value === \"bigint\") {\n serializedValue.value = value.toString();\n serializedValue.type = Edm.Int64;\n } else if (value instanceof Date) {\n serializedValue.value = value;\n serializedValue.type = Edm.DateTime;\n } else if (value instanceof Uint8Array) {\n serializedValue.value = base64Encode(value);\n serializedValue.type = Edm.Binary;\n } else {\n throw new Error(`Unknown EDM type ${typeof value}`);\n }\n\n return serializedValue;\n}\n\nfunction serializeObject(obj: { value: any; type: EdmTypes }): serializedType {\n const serializedValue: serializedType = { value: obj.value };\n if (\n obj.type === \"Boolean\" ||\n obj.type === \"DateTime\" ||\n obj.type === \"Double\" ||\n obj.type === \"Guid\" ||\n obj.type === \"Int32\" ||\n obj.type === \"Int64\" ||\n obj.type === \"String\" ||\n obj.type === \"Binary\"\n ) {\n serializedValue.value = obj.value;\n serializedValue.type = Edm[obj.type];\n } else {\n throw new Error(`Unknown EDM type ${typeof obj.value}`);\n }\n\n return serializedValue;\n}\n\nfunction getSerializedValue(value: any): serializedType {\n if (typeof value === \"object\" && value?.value !== undefined && value?.type !== undefined) {\n return serializeObject(value);\n } else {\n return serializePrimitive(value);\n }\n}\n\nfunction translatePropertyNameForSerialization(propertyName: string): string {\n for (const [original, internal] of propertyCaseMap) {\n if (internal === propertyName) {\n return original;\n }\n }\n\n return propertyName;\n}\n\nexport function serialize(obj: object): Record<string, Record<string, unknown>> {\n const serialized: any = {};\n for (const [propertyName, propertyValue] of Object.entries(obj)) {\n const transformedKey = translatePropertyNameForSerialization(propertyName);\n const serializedVal = getSerializedValue(propertyValue);\n serialized[transformedKey] = serializedVal.value;\n if (serializedVal.type) {\n serialized[`${transformedKey}@odata.type`] = serializedVal.type;\n }\n }\n return serialized;\n}\n\nfunction getTypedObject(value: any, type: string, disableTypeConversion: boolean): any {\n switch (type) {\n case Edm.Boolean:\n return disableTypeConversion ? { value, type: \"Boolean\" } : value;\n case Edm.Double:\n return disableTypeConversion ? { value, type: \"Double\" } : value;\n case Edm.Int32:\n return disableTypeConversion ? { value, type: \"Int32\" } : value;\n case Edm.String:\n return disableTypeConversion ? { value, type: \"String\" } : value;\n case Edm.DateTime:\n return disableTypeConversion ? { value, type: \"DateTime\" } : new Date(value);\n case Edm.Int64:\n return disableTypeConversion ? { value, type: \"Int64\" } : BigInt(value);\n case Edm.Guid:\n return { value, type: \"Guid\" };\n case Edm.Binary:\n return disableTypeConversion ? { value, type: \"Binary\" } : base64Decode(value);\n default:\n throw new Error(`Unknown EDM type ${type}`);\n }\n}\n\nexport function deserialize<T extends object = Record<string, any>>(\n obj: object,\n disableTypeConversion: boolean = false,\n): T {\n const deserialized: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key.indexOf(\"@odata.type\") === -1) {\n const transformedKey = propertyCaseMap.get(key) ?? key;\n let typedValue = value;\n if (`${key}@odata.type` in obj) {\n const type = (obj as any)[`${key}@odata.type`];\n typedValue = getTypedObject(value, type, disableTypeConversion);\n } else if (disableTypeConversion && [\"number\", \"string\", \"boolean\"].includes(typeof value)) {\n // The service, doesn't return type metadata for number, strings or booleans\n // if automatic type conversion is disabled we'll infer the EDM object\n typedValue = inferTypedObject(key, value);\n }\n\n deserialized[transformedKey] = typedValue;\n }\n }\n return deserialized;\n}\n\nfunction inferTypedObject(propertyName: string, value: number | string | boolean) {\n // We need to skip service metadata fields such as partitionKey and rowKey and use the same value returned by the service\n if (propertyCaseMap.has(propertyName)) {\n return value;\n }\n\n switch (typeof value) {\n case \"boolean\":\n return { value: String(value), type: \"Boolean\" };\n case \"number\":\n return getTypedNumber(value);\n case \"string\":\n return { value, type: \"String\" };\n default:\n return value;\n }\n}\n\n/**\n * Returns the number when typeConversion is enabled or the EDM object with the correct number format Double or Int32 if disabled\n */\nfunction getTypedNumber(value: number): { value: string; type: \"Int32\" | \"Double\" } {\n const valueStr = String(value);\n if (Number.isSafeInteger(value)) {\n return { value: valueStr, type: \"Int32\" };\n } else {\n return { value: valueStr, type: \"Double\" };\n }\n}\n\nexport function deserializeObjectsArray<T extends object>(\n objArray: object[],\n disableTypeConversion: boolean,\n): T[] {\n return objArray.map((obj) => deserialize<T>(obj, disableTypeConversion));\n}\n\n/**\n * For ACL endpoints the Tables Service takes an ISO Date without decimals however\n * serializing a JavaScript date gives us a date with decimals 2021-07-08T09:10:09.000Z\n * which makes the XML request body invalid, these 2 functions serialize and deserialize the\n * dates so that they are in the expected format\n */\nexport function serializeSignedIdentifiers(\n signedIdentifiers: SignedIdentifier[],\n): GeneratedSignedIdentifier[] {\n return signedIdentifiers.map((acl) => {\n const { id, accessPolicy } = acl;\n const { start, expiry, ...rest } = accessPolicy ?? {};\n const serializedStart = start\n ? truncatedISO8061Date(start, false /** withMilliseconds */)\n : undefined;\n const serializedExpiry = expiry\n ? truncatedISO8061Date(expiry, false /** withMilliseconds */)\n : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(serializedExpiry && { expiry: serializedExpiry }),\n ...(serializedStart && { start: serializedStart }),\n ...rest,\n },\n };\n });\n}\n\nexport function deserializeSignedIdentifier(\n signedIdentifiers: GeneratedSignedIdentifier[],\n): SignedIdentifier[] {\n return signedIdentifiers.map((si) => {\n const { id, accessPolicy } = si;\n const { start, expiry, ...restAcl } = accessPolicy ?? {};\n const deserializedStart = start ? new Date(start) : undefined;\n const deserializedExpiry = expiry ? new Date(expiry) : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(deserializedExpiry && { expiry: deserializedExpiry }),\n ...(deserializedStart && { start: deserializedStart }),\n ...restAcl,\n },\n };\n });\n}\n\nexport function serializeQueryOptions(query: TableEntityQueryOptions): GeneratedQueryOptions {\n const { select, ...queryOptions } = query;\n const mappedQuery: GeneratedQueryOptions = { ...queryOptions };\n // Properties that are always returned by the service but are not allowed in select\n const excludeFromSelect = [\"etag\", \"odata.etag\"];\n if (select) {\n mappedQuery.select = select\n .filter((p) => !excludeFromSelect.includes(p))\n .map(translatePropertyNameForSerialization)\n .join(\",\");\n }\n return mappedQuery;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { randomUUID } from \"@azure/core-util\";\n\n// This is used as a workaround to be able to stub generateUuid\n// during testing.\nexport class Uuid {\n public static generateUuid(): string {\n return randomUUID();\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nfunction escapeQuotesIfString(input: unknown, previous: string): string | unknown {\n let result = input;\n\n if (typeof input === \"string\") {\n result = escapeQuotes(input);\n // check if we need to escape this literal\n if (previous !== \"\" && !previous.trim().endsWith(\"'\")) {\n result = `'${result}'`;\n }\n }\n return result;\n}\n\nexport function escapeQuotes(input: string): string {\n return input.replace(/'/g, \"''\");\n}\n\nfunction encodeDate(input: unknown): string | unknown {\n return input instanceof Date ? `datetime'${input.toISOString()}'` : input;\n}\n\n/**\n * Escapes an odata filter expression to avoid errors with quoting string literals.\n * Encodes Date objects.\n */\nexport function odata(strings: TemplateStringsArray, ...values: unknown[]): string {\n const fixEncoding = (value: unknown, string: string): string | unknown => {\n return encodeDate(escapeQuotesIfString(value, string));\n };\n const results = [];\n for (let i = 0; i < strings.length; i++) {\n results.push(strings[i]);\n if (i < values.length) {\n results.push(fixEncoding(values[i], strings[i]));\n }\n }\n return results.join(\"\");\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n CreateTableEntityResponse,\n DeleteTableEntityOptions,\n GetAccessPolicyResponse,\n GetTableEntityOptions,\n GetTableEntityResponse,\n ListTableEntitiesOptions,\n SignedIdentifier,\n TableServiceClientOptions as TableClientOptions,\n TableEntity,\n TableEntityQueryOptions,\n TableEntityResult,\n TableEntityResultPage,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models\";\nimport type {\n DeleteTableEntityResponse,\n SetAccessPolicyResponse,\n UpdateEntityResponse,\n UpsertEntityResponse,\n} from \"./generatedModels\";\nimport type {\n FullOperationResponse,\n InternalClientPipelineOptions,\n OperationOptions,\n ServiceClient,\n ServiceClientOptions,\n} from \"@azure/core-client\";\nimport type { TableDeleteEntityOptionalParams } from \"./generated\";\nimport { GeneratedClient } from \"./generated\";\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isNamedKeyCredential, isSASCredential, isTokenCredential } from \"@azure/core-auth\";\nimport { COSMOS_SCOPE, STORAGE_SCOPE, TablesLoggingAllowedHeaderNames } from \"./utils/constants\";\nimport { decodeContinuationToken, encodeContinuationToken } from \"./utils/continuationToken\";\nimport {\n deserialize,\n deserializeObjectsArray,\n deserializeSignedIdentifier,\n serialize,\n serializeQueryOptions,\n serializeSignedIdentifiers,\n} from \"./serialization\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\n\nimport { InternalTableTransaction } from \"./TableTransaction\";\nimport type { ListEntitiesResponse } from \"./utils/internalModels\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type { Pipeline } from \"@azure/core-rest-pipeline\";\nimport type { Table } from \"./generated/operationsInterfaces\";\nimport type { TableQueryEntitiesOptionalParams } from \"./generated/models\";\nimport { Uuid } from \"./utils/uuid\";\nimport { apiVersionPolicy } from \"./utils/apiVersionPolicy\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy\";\nimport { escapeQuotes } from \"./odata\";\nimport { getClientParamsFromConnectionString } from \"./utils/connectionString\";\nimport { handleTableAlreadyExists } from \"./utils/errorHelpers\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint\";\nimport { isCredential } from \"./utils/isCredential\";\nimport { logger } from \"./logger\";\nimport { setTokenChallengeAuthenticationPolicy } from \"./utils/challengeAuthenticationUtils\";\nimport { tablesNamedKeyCredentialPolicy } from \"./tablesNamedCredentialPolicy\";\nimport { tablesSASTokenPolicy } from \"./tablesSASTokenPolicy\";\nimport { tracingClient } from \"./utils/tracing\";\n\n/**\n * A TableClient represents a Client to the Azure Tables service allowing you\n * to perform operations on a single table.\n */\nexport class TableClient {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n * Pipelines can have multiple policies to manage manipulating each request before and after it is made to the server.\n */\n public pipeline: Pipeline;\n private table: Table;\n private generatedClient: ServiceClient;\n private credential?: NamedKeyCredential | SASCredential | TokenCredential;\n private clientOptions: TableClientOptions;\n private readonly allowInsecureConnection: boolean;\n\n /**\n * Name of the table to perform operations on.\n */\n public readonly tableName: string;\n\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - NamedKeyCredential used to authenticate requests. Only Supported for Node\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using an account name/key:\n *\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * sharedKeyCredential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: NamedKeyCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - SASCredential used to authenticate requests\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using a SAS Token:\n *\n * ```js\n * const { AzureSASCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<sas-token>\";\n * const tableName = \"<table name>\";\n * const sasCredential = new AzureSASCredential(sasToken);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * sasCredential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: SASCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates a new instance of the TableClient class.\n *\n * @param url - The URL of the service account that is the target of the desired operation, such as \"https://myaccount.table.core.windows.net\".\n * @param tableName - the name of the table\n * @param credential - Azure Active Directory credential used to authenticate requests\n * @param options - Optional. Options to configure the HTTP pipeline.\n *\n *\n * ### Example using an Azure Active Directory credential:\n *\n * ```js\n * cons { DefaultAzureCredential } = require(\"@azure/identity\");\n * const { AzureSASCredential, TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<sas-token>\";\n * const tableName = \"<table name>\";\n * const credential = new DefaultAzureCredential();\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * tableName,\n * credential\n * );\n * ```\n */\n constructor(\n url: string,\n tableName: string,\n credential: TokenCredential,\n options?: TableClientOptions,\n );\n /**\n * Creates an instance of TableClient.\n *\n * @param url - A Client string pointing to Azure Storage table service, such as\n * \"https://myaccount.table.core.windows.net\". You can append a SAS,\n * such as \"https://myaccount.table.core.windows.net?sasString\".\n * @param tableName - the name of the table\n * @param options - Options to configure the HTTP pipeline.\n *\n * ### Example appending a SAS token:\n *\n * ```js\n * const { TableClient } = require(\"@azure/data-tables\");\n * const account = \"<storage account name>\";\n * const sasToken = \"<SAS token>\";\n * const tableName = \"<table name>\";\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net?${sasToken}`,\n * `${tableName}`\n * );\n * ```\n */\n constructor(url: string, tableName: string, options?: TableClientOptions);\n constructor(\n url: string,\n tableName: string,\n credentialOrOptions?: NamedKeyCredential | SASCredential | TableClientOptions | TokenCredential,\n options: TableClientOptions = {},\n ) {\n this.url = url;\n this.tableName = tableName;\n const isCosmos = isCosmosEndpoint(this.url);\n\n const credential = isCredential(credentialOrOptions) ? credentialOrOptions : undefined;\n this.credential = credential;\n\n this.clientOptions = (!isCredential(credentialOrOptions) ? credentialOrOptions : options) || {};\n\n this.allowInsecureConnection = this.clientOptions.allowInsecureConnection ?? false;\n\n const internalPipelineOptions: ServiceClientOptions & InternalClientPipelineOptions = {\n ...this.clientOptions,\n endpoint: this.clientOptions.endpoint || this.url,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [...TablesLoggingAllowedHeaderNames],\n },\n deserializationOptions: {\n parseXML,\n },\n serializationOptions: {\n stringifyXML,\n },\n };\n\n const generatedClient = new GeneratedClient(this.url, internalPipelineOptions);\n if (isNamedKeyCredential(credential)) {\n generatedClient.pipeline.addPolicy(tablesNamedKeyCredentialPolicy(credential));\n } else if (isSASCredential(credential)) {\n generatedClient.pipeline.addPolicy(tablesSASTokenPolicy(credential));\n }\n\n if (isTokenCredential(credential)) {\n const scope = isCosmos ? COSMOS_SCOPE : STORAGE_SCOPE;\n setTokenChallengeAuthenticationPolicy(generatedClient.pipeline, credential, scope);\n }\n\n if (isCosmos) {\n generatedClient.pipeline.addPolicy(cosmosPatchPolicy());\n }\n\n if (options.version) {\n generatedClient.pipeline.addPolicy(apiVersionPolicy(options.version));\n }\n\n this.generatedClient = generatedClient;\n this.table = generatedClient.table;\n this.pipeline = generatedClient.pipeline;\n }\n\n /**\n * Permanently deletes the current table with all of its entities.\n * @param options - The options parameters.\n *\n * ### Example deleting a table\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // calling deleteTable will delete the table used\n * // to instantiate the TableClient.\n * // Note: If the table doesn't exist this function doesn't fail.\n * await client.deleteTable();\n * ```\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public deleteTable(options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"TableClient.deleteTable\", options, async (updatedOptions) => {\n try {\n await this.table.delete(this.tableName, updatedOptions);\n } catch (e: any) {\n if (e.statusCode === 404) {\n logger.info(\"TableClient.deleteTable: Table doesn't exist\");\n } else {\n throw e;\n }\n }\n });\n }\n\n /**\n * Creates a table with the tableName passed to the client constructor\n * @param options - The options parameters.\n *\n * ### Example creating a table\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // calling create table will create the table used\n * // to instantiate the TableClient.\n * // Note: If the table already\n * // exists this function doesn't throw.\n * await client.createTable();\n * ```\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public createTable(options: OperationOptions = {}): Promise<void> {\n return tracingClient.withSpan(\"TableClient.createTable\", options, async (updatedOptions) => {\n try {\n await this.table.create({ name: this.tableName }, updatedOptions);\n } catch (e: any) {\n handleTableAlreadyExists(e, { ...updatedOptions, logger, tableName: this.tableName });\n }\n });\n }\n\n /**\n * Returns a single entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n *\n * ### Example getting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // getEntity will get a single entity stored in the service that\n * // matches exactly the partitionKey and rowKey used as parameters\n * // to the method.\n * const entity = await client.getEntity(\"<partitionKey>\", \"<rowKey>\");\n * console.log(entity);\n * ```\n */\n public getEntity<T extends object = Record<string, unknown>>(\n partitionKey: string,\n rowKey: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: GetTableEntityOptions = {},\n ): Promise<GetTableEntityResponse<TableEntityResult<T>>> {\n return tracingClient.withSpan(\"TableClient.getEntity\", options, async (updatedOptions) => {\n let parsedBody: any;\n function onResponse(rawResponse: FullOperationResponse, flatResponse: unknown): void {\n parsedBody = rawResponse.parsedBody;\n if (updatedOptions.onResponse) {\n updatedOptions.onResponse(rawResponse, flatResponse);\n }\n }\n const { disableTypeConversion, queryOptions, ...getEntityOptions } = updatedOptions;\n await this.table.queryEntitiesWithPartitionAndRowKey(\n this.tableName,\n escapeQuotes(partitionKey),\n escapeQuotes(rowKey),\n {\n ...getEntityOptions,\n queryOptions: serializeQueryOptions(queryOptions || {}),\n onResponse,\n },\n );\n const tableEntity = deserialize<TableEntityResult<T>>(\n parsedBody,\n disableTypeConversion ?? false,\n );\n\n return tableEntity;\n });\n }\n\n /**\n * Queries entities in a table.\n * @param options - The options parameters.\n *\n * Example listing entities\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // list entities returns a AsyncIterableIterator\n * // this helps consuming paginated responses by\n * // automatically handling getting the next pages\n * const entities = client.listEntities();\n *\n * // this loop will get all the entities from all the pages\n * // returned by the service\n * for await (const entity of entities) {\n * console.log(entity);\n * }\n * ```\n */\n public listEntities<T extends object = Record<string, unknown>>(\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: ListTableEntitiesOptions = {},\n ): PagedAsyncIterableIterator<TableEntityResult<T>, TableEntityResultPage<T>> {\n const tableName = this.tableName;\n const iter = this.listEntitiesAll<T>(tableName, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings) => {\n const pageOptions: InternalListTableEntitiesOptions = {\n ...options,\n queryOptions: { ...options.queryOptions, top: settings?.maxPageSize },\n };\n\n if (settings?.continuationToken) {\n pageOptions.continuationToken = settings.continuationToken;\n }\n\n return this.listEntitiesPage(tableName, pageOptions);\n },\n };\n }\n\n private async *listEntitiesAll<T extends object>(\n tableName: string,\n options?: InternalListTableEntitiesOptions,\n ): AsyncIterableIterator<TableEntityResult<T>> {\n const firstPage = await this._listEntities<T>(tableName, options);\n yield* firstPage;\n if (firstPage.continuationToken) {\n const optionsWithContinuation: InternalListTableEntitiesOptions = {\n ...options,\n continuationToken: firstPage.continuationToken,\n };\n for await (const page of this.listEntitiesPage<T>(tableName, optionsWithContinuation)) {\n yield* page;\n }\n }\n }\n\n private async *listEntitiesPage<T extends object>(\n tableName: string,\n options: InternalListTableEntitiesOptions = {},\n ): AsyncIterableIterator<ListEntitiesResponse<TableEntityResult<T>>> {\n let result = await tracingClient.withSpan(\n \"TableClient.listEntitiesPage\",\n options,\n (updatedOptions) => this._listEntities<T>(tableName, updatedOptions),\n );\n\n yield result;\n\n while (result.continuationToken) {\n const optionsWithContinuation: InternalListTableEntitiesOptions = {\n ...options,\n continuationToken: result.continuationToken,\n };\n\n result = await tracingClient.withSpan(\n \"TableClient.listEntitiesPage\",\n optionsWithContinuation,\n (updatedOptions, span) => {\n span.setAttribute(\"continuationToken\", result.continuationToken);\n return this._listEntities<T>(tableName, updatedOptions);\n },\n );\n yield result;\n }\n }\n\n private async _listEntities<T extends object>(\n tableName: string,\n options: InternalListTableEntitiesOptions = {},\n ): Promise<TableEntityResultPage<T>> {\n const { disableTypeConversion = false } = options;\n const queryOptions = serializeQueryOptions(options.queryOptions || {});\n const listEntitiesOptions: TableQueryEntitiesOptionalParams = {\n ...options,\n queryOptions,\n };\n\n // If a continuation token is used, decode it and set the next row and partition key\n if (options.continuationToken) {\n const continuationToken = decodeContinuationToken(options.continuationToken);\n listEntitiesOptions.nextRowKey = continuationToken.nextRowKey;\n listEntitiesOptions.nextPartitionKey = continuationToken.nextPartitionKey;\n }\n\n const {\n xMsContinuationNextPartitionKey: nextPartitionKey,\n xMsContinuationNextRowKey: nextRowKey,\n value,\n } = await this.table.queryEntities(tableName, listEntitiesOptions);\n\n const tableEntities = deserializeObjectsArray<TableEntityResult<T>>(\n value ?? [],\n disableTypeConversion,\n );\n\n // Encode nextPartitionKey and nextRowKey as a single continuation token and add it as a\n // property to the page.\n const continuationToken = encodeContinuationToken(nextPartitionKey, nextRowKey);\n const page: TableEntityResultPage<T> = Object.assign([...tableEntities], {\n continuationToken,\n });\n\n return page;\n }\n\n /**\n * Insert entity in the table.\n * @param entity - The properties for the table entity.\n * @param options - The options parameters.\n *\n * ### Example creating an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // partitionKey and rowKey are required properties of the entity to create\n * // and accepts any other properties\n * await client.createEntity({partitionKey: \"p1\", rowKey: \"r1\", foo: \"Hello!\"});\n * ```\n */\n public createEntity<T extends object>(\n entity: TableEntity<T>,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<CreateTableEntityResponse> {\n return tracingClient.withSpan(\"TableClient.createEntity\", options, (updatedOptions) => {\n const { ...createTableEntity } = updatedOptions || {};\n return this.table.insertEntity(this.tableName, {\n ...createTableEntity,\n tableEntityProperties: serialize(entity),\n responsePreference: \"return-no-content\",\n });\n });\n }\n\n /**\n * Deletes the specified entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n *\n * ### Example deleting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * // deleteEntity deletes the entity that matches\n * // exactly the partitionKey and rowKey passed as parameters\n * await client.deleteEntity(\"<partitionKey>\", \"<rowKey>\")\n * ```\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: DeleteTableEntityOptions = {},\n ): Promise<DeleteTableEntityResponse> {\n return tracingClient.withSpan(\"TableClient.deleteEntity\", options, (updatedOptions) => {\n const { etag = \"*\", ...rest } = updatedOptions;\n const deleteOptions: TableDeleteEntityOptionalParams = {\n ...rest,\n };\n return this.table.deleteEntity(\n this.tableName,\n escapeQuotes(partitionKey),\n escapeQuotes(rowKey),\n etag,\n deleteOptions,\n );\n });\n }\n\n /**\n * Update an entity in the table.\n * @param entity - The properties of the entity to be updated.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n *\n * ### Example updating an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * const entity = {partitionKey: \"p1\", rowKey: \"r1\", bar: \"updatedBar\"};\n *\n * // Update uses update mode \"Merge\" as default\n * // merge means that update will match a stored entity\n * // that has the same partitionKey and rowKey as the entity\n * // passed to the method and then will only update the properties present in it.\n * // Any other properties that are not defined in the entity passed to updateEntity\n * // will remain as they are in the service\n * await client.updateEntity(entity)\n *\n * // We can also set the update mode to Replace, which will match the entity passed\n * // to updateEntity with one stored in the service and replace with the new one.\n * // If there are any missing properties in the entity passed to updateEntity, they\n * // will be removed from the entity stored in the service\n * await client.updateEntity(entity, \"Replace\")\n * ```\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode = \"Merge\",\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: UpdateTableEntityOptions = {},\n ): Promise<UpdateEntityResponse> {\n return tracingClient.withSpan(\n \"TableClient.updateEntity\",\n options,\n async (updatedOptions) => {\n const partitionKey = escapeQuotes(entity.partitionKey);\n const rowKey = escapeQuotes(entity.rowKey);\n\n const { etag = \"*\", ...updateEntityOptions } = updatedOptions || {};\n if (mode === \"Merge\") {\n return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ifMatch: etag,\n ...updateEntityOptions,\n });\n }\n if (mode === \"Replace\") {\n return this.table.updateEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ifMatch: etag,\n ...updateEntityOptions,\n });\n }\n\n throw new Error(`Unexpected value for update mode: ${mode}`);\n },\n {\n spanAttributes: {\n updateEntityMode: mode,\n },\n },\n );\n }\n\n /**\n * Upsert an entity in the table.\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n *\n * ### Example upserting an entity\n * ```js\n * const { AzureNamedKeyCredential, TableClient } = require(\"@azure/data-tables\")\n * const account = \"<storage account name>\";\n * const accountKey = \"<account key>\"\n * const tableName = \"<table name>\";\n * const sharedKeyCredential = new AzureNamedKeyCredential(account, accountKey);\n *\n * const client = new TableClient(\n * `https://${account}.table.core.windows.net`,\n * `${tableName}`,\n * sharedKeyCredential\n * );\n *\n * const entity = {partitionKey: \"p1\", rowKey: \"r1\", bar: \"updatedBar\"};\n *\n * // Upsert uses update mode \"Merge\" as default.\n * // This behaves similarly to update but creates the entity\n * // if it doesn't exist in the service\n * await client.upsertEntity(entity)\n *\n * // We can also set the update mode to Replace.\n * // This behaves similarly to update but creates the entity\n * // if it doesn't exist in the service\n * await client.upsertEntity(entity, \"Replace\")\n * ```\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode = \"Merge\",\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<UpsertEntityResponse> {\n return tracingClient.withSpan(\n \"TableClient.upsertEntity\",\n options,\n async (updatedOptions) => {\n const partitionKey = escapeQuotes(entity.partitionKey);\n const rowKey = escapeQuotes(entity.rowKey);\n\n if (mode === \"Merge\") {\n return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ...updatedOptions,\n });\n }\n\n if (mode === \"Replace\") {\n return this.table.updateEntity(this.tableName, partitionKey, rowKey, {\n tableEntityProperties: serialize(entity),\n ...updatedOptions,\n });\n }\n throw new Error(`Unexpected value for update mode: ${mode}`);\n },\n {\n spanAttributes: {\n upsertEntityMode: mode,\n },\n },\n );\n }\n\n /**\n * Retrieves details about any stored access policies specified on the table that may be used with\n * Shared Access Signatures.\n * @param options - The options parameters.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public getAccessPolicy(options: OperationOptions = {}): Promise<GetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"TableClient.getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const signedIdentifiers = await this.table.getAccessPolicy(this.tableName, updatedOptions);\n return deserializeSignedIdentifier(signedIdentifiers);\n },\n );\n }\n\n /**\n * Sets stored access policies for the table that may be used with Shared Access Signatures.\n * @param tableAcl - The Access Control List for the table.\n * @param options - The options parameters.\n */\n public setAccessPolicy(\n tableAcl: SignedIdentifier[],\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: OperationOptions = {},\n ): Promise<SetAccessPolicyResponse> {\n return tracingClient.withSpan(\"TableClient.setAccessPolicy\", options, (updatedOptions) => {\n const serlializedAcl = serializeSignedIdentifiers(tableAcl);\n return this.table.setAccessPolicy(this.tableName, {\n ...updatedOptions,\n tableAcl: serlializedAcl,\n });\n });\n }\n\n /**\n * Submits a Transaction which is composed of a set of actions. You can provide the actions as a list\n * or you can use {@link TableTransaction} to help building the transaction.\n *\n * Example usage:\n * ```typescript\n * const { TableClient } = require(\"@azure/data-tables\");\n * const connectionString = \"<connection-string>\"\n * const tableName = \"<tableName>\"\n * const client = TableClient.fromConnectionString(connectionString, tableName);\n * const actions = [\n * [\"create\", {partitionKey: \"p1\", rowKey: \"1\", data: \"test1\"}],\n * [\"delete\", {partitionKey: \"p1\", rowKey: \"2\"}],\n * [\"update\", {partitionKey: \"p1\", rowKey: \"3\", data: \"newTest\"}, \"Merge\"]\n * ]\n * const result = await client.submitTransaction(actions);\n * ```\n *\n * Example usage with TableTransaction:\n * ```js\n * const { TableClient } = require(\"@azure/data-tables\");\n * const connectionString = \"<connection-string>\"\n * const tableName = \"<tableName>\"\n * const client = TableClient.fromConnectionString(connectionString, tableName);\n * const transaction = new TableTransaction();\n * // Call the available action in the TableTransaction object\n * transaction.create({partitionKey: \"p1\", rowKey: \"1\", data: \"test1\"});\n * transaction.delete(\"p1\", \"2\");\n * transaction.update({partitionKey: \"p1\", rowKey: \"3\", data: \"newTest\"}, \"Merge\")\n * // submitTransaction with the actions list on the transaction.\n * const result = await client.submitTransaction(transaction.actions);\n * ```\n *\n * @param actions - tuple that contains the action to perform, and the entity to perform the action with\n */\n public async submitTransaction(actions: TransactionAction[]): Promise<TableTransactionResponse> {\n const partitionKey = actions[0][1].partitionKey;\n const transactionId = Uuid.generateUuid();\n const changesetId = Uuid.generateUuid();\n\n // Add pipeline\n const transactionClient = new InternalTableTransaction(\n this.url,\n partitionKey,\n transactionId,\n changesetId,\n this.generatedClient,\n new TableClient(this.url, this.tableName),\n this.credential,\n this.allowInsecureConnection,\n );\n\n for (const item of actions) {\n const [action, entity, updateMode = \"Merge\", updateOptions] = item;\n switch (action) {\n case \"create\":\n transactionClient.createEntity(entity);\n break;\n case \"delete\":\n transactionClient.deleteEntity(entity.partitionKey, entity.rowKey);\n break;\n case \"update\":\n transactionClient.updateEntity(entity, updateMode, updateOptions);\n break;\n case \"upsert\":\n transactionClient.upsertEntity(entity, updateMode);\n }\n }\n\n return transactionClient.submitTransaction();\n }\n\n /**\n *\n * Creates an instance of TableClient from connection string.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.table.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param options - Options to configure the HTTP pipeline.\n * @returns A new TableClient from the given connection string.\n */\n public static fromConnectionString(\n connectionString: string,\n tableName: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options?: TableClientOptions,\n ): TableClient {\n const {\n url,\n options: clientOptions,\n credential,\n } = getClientParamsFromConnectionString(connectionString, options);\n if (credential) {\n return new TableClient(url, tableName, credential, clientOptions);\n } else {\n return new TableClient(url, tableName, clientOptions);\n }\n }\n}\n\ntype InternalQueryOptions = TableEntityQueryOptions & { top?: number };\ninterface InternalListTableEntitiesOptions extends ListTableEntitiesOptions {\n queryOptions?: InternalQueryOptions;\n /**\n * An entity query continuation token from a previous call.\n */\n continuationToken?: string;\n /**\n * If true, automatic type conversion will be disabled and entity properties will\n * be represented by full metadata types. For example, an Int32 value will be \\{value: \"123\", type: \"Int32\"\\} instead of 123.\n * This option applies for all the properties\n */\n disableTypeConversion?: boolean;\n}\n"],"names":["KnownGeoReplicationStatusType","createHmac","__rest","isNamedKeyCredential","TablePropertiesMapper","TableServicePropertiesMapper","xmlSerializer","coreClient","Mappers.TableQueryResponse","Mappers.TableQueryHeaders","Mappers.TableServiceError","Mappers.TableQueryExceptionHeaders","Parameters.format","Parameters.top","Parameters.select","Parameters.filter","Parameters.nextTableName","Parameters.url","Parameters.accept","Parameters.version","Parameters.requestId","Parameters.dataServiceVersion","Mappers.TableResponse","Mappers.TableCreateHeaders","Mappers.TableCreateExceptionHeaders","Parameters.tableProperties","Parameters.contentType","Parameters.responsePreference","Mappers.TableDeleteHeaders","Mappers.TableDeleteExceptionHeaders","Parameters.table","Parameters.accept1","Mappers.TableEntityQueryResponse","Mappers.TableQueryEntitiesHeaders","Mappers.TableQueryEntitiesExceptionHeaders","Parameters.timeout","Parameters.nextPartitionKey","Parameters.nextRowKey","Mappers.TableQueryEntitiesWithPartitionAndRowKeyHeaders","Mappers.TableQueryEntitiesWithPartitionAndRowKeyExceptionHeaders","Parameters.partitionKey","Parameters.rowKey","Mappers.TableUpdateEntityHeaders","Mappers.TableUpdateEntityExceptionHeaders","Parameters.tableEntityProperties","Parameters.contentType1","Parameters.ifMatch","Mappers.TableMergeEntityHeaders","Mappers.TableMergeEntityExceptionHeaders","Mappers.TableDeleteEntityHeaders","Mappers.TableDeleteEntityExceptionHeaders","Parameters.ifMatch1","Mappers.TableInsertEntityHeaders","Mappers.TableInsertEntityExceptionHeaders","Mappers.TableGetAccessPolicyHeaders","Mappers.TableGetAccessPolicyExceptionHeaders","Parameters.comp","Parameters.accept2","Mappers.TableSetAccessPolicyHeaders","Mappers.TableSetAccessPolicyExceptionHeaders","Parameters.tableAcl","Parameters.contentType2","Parameters.accept3","Mappers.ServiceSetPropertiesHeaders","Mappers.ServiceSetPropertiesExceptionHeaders","Parameters.tableServiceProperties","Parameters.restype","Parameters.comp1","Mappers.TableServiceProperties","Mappers.ServiceGetPropertiesHeaders","Mappers.ServiceGetPropertiesExceptionHeaders","Mappers.TableServiceStats","Mappers.ServiceGetStatisticsHeaders","Mappers.ServiceGetStatisticsExceptionHeaders","Parameters.comp2","AzureNamedKeyCredential","isSASCredential","isTokenCredential","createClientLogger","bearerTokenAuthenticationPolicy","authorizeRequestOnTenantChallenge","createTracingClient","parseXML","stringifyXML","__await","__asyncDelegator","__asyncValues","__asyncGenerator","createPipelineRequest","createHttpHeaders","RestError","serializationPolicy","serializationPolicyName","randomUUID"],"mappings":"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"}