@aws-sdk/client-billingconductor 3.1068.0 → 3.1069.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/dist-cjs/endpoint/bdd.js +2 -5
- package/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/dist-cjs/index.js +147 -167
- package/dist-cjs/models/BillingconductorServiceException.js +4 -8
- package/dist-cjs/models/errors.js +15 -25
- package/dist-cjs/runtimeConfig.browser.js +22 -26
- package/dist-cjs/runtimeConfig.js +30 -34
- package/dist-cjs/runtimeConfig.native.js +4 -7
- package/dist-cjs/runtimeConfig.shared.js +20 -24
- package/dist-cjs/schemas/schemas_0.js +332 -219
- package/package.json +8 -8
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.BillingconductorServiceException =
|
|
4
|
-
const client_1 = require("@smithy/core/client");
|
|
5
|
-
Object.defineProperty(exports, "__ServiceException", { enumerable: true, get: function () { return client_1.ServiceException; } });
|
|
6
|
-
class BillingconductorServiceException extends client_1.ServiceException {
|
|
1
|
+
const { ServiceException: __ServiceException } = require("@smithy/core/client");
|
|
2
|
+
exports.__ServiceException = __ServiceException;
|
|
3
|
+
exports.BillingconductorServiceException = class BillingconductorServiceException extends __ServiceException {
|
|
7
4
|
constructor(options) {
|
|
8
5
|
super(options);
|
|
9
6
|
Object.setPrototypeOf(this, BillingconductorServiceException.prototype);
|
|
10
7
|
}
|
|
11
|
-
}
|
|
12
|
-
exports.BillingconductorServiceException = BillingconductorServiceException;
|
|
8
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ValidationException = exports.ThrottlingException = exports.ServiceLimitExceededException = exports.ResourceNotFoundException = exports.InternalServerException = exports.ConflictException = exports.AccessDeniedException = void 0;
|
|
4
|
-
const BillingconductorServiceException_1 = require("./BillingconductorServiceException");
|
|
5
|
-
class AccessDeniedException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
1
|
+
const { BillingconductorServiceException: __BaseException } = require("./BillingconductorServiceException");
|
|
2
|
+
exports.AccessDeniedException = class AccessDeniedException extends __BaseException {
|
|
6
3
|
name = "AccessDeniedException";
|
|
7
4
|
$fault = "client";
|
|
8
5
|
Message;
|
|
@@ -15,9 +12,8 @@ class AccessDeniedException extends BillingconductorServiceException_1.Billingco
|
|
|
15
12
|
Object.setPrototypeOf(this, AccessDeniedException.prototype);
|
|
16
13
|
this.Message = opts.Message;
|
|
17
14
|
}
|
|
18
|
-
}
|
|
19
|
-
exports.
|
|
20
|
-
class ConflictException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
15
|
+
};
|
|
16
|
+
exports.ConflictException = class ConflictException extends __BaseException {
|
|
21
17
|
name = "ConflictException";
|
|
22
18
|
$fault = "client";
|
|
23
19
|
Message;
|
|
@@ -36,9 +32,8 @@ class ConflictException extends BillingconductorServiceException_1.Billingconduc
|
|
|
36
32
|
this.ResourceType = opts.ResourceType;
|
|
37
33
|
this.Reason = opts.Reason;
|
|
38
34
|
}
|
|
39
|
-
}
|
|
40
|
-
exports.
|
|
41
|
-
class InternalServerException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
35
|
+
};
|
|
36
|
+
exports.InternalServerException = class InternalServerException extends __BaseException {
|
|
42
37
|
name = "InternalServerException";
|
|
43
38
|
$fault = "server";
|
|
44
39
|
Message;
|
|
@@ -53,9 +48,8 @@ class InternalServerException extends BillingconductorServiceException_1.Billing
|
|
|
53
48
|
this.Message = opts.Message;
|
|
54
49
|
this.RetryAfterSeconds = opts.RetryAfterSeconds;
|
|
55
50
|
}
|
|
56
|
-
}
|
|
57
|
-
exports.
|
|
58
|
-
class ResourceNotFoundException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
51
|
+
};
|
|
52
|
+
exports.ResourceNotFoundException = class ResourceNotFoundException extends __BaseException {
|
|
59
53
|
name = "ResourceNotFoundException";
|
|
60
54
|
$fault = "client";
|
|
61
55
|
Message;
|
|
@@ -72,9 +66,8 @@ class ResourceNotFoundException extends BillingconductorServiceException_1.Billi
|
|
|
72
66
|
this.ResourceId = opts.ResourceId;
|
|
73
67
|
this.ResourceType = opts.ResourceType;
|
|
74
68
|
}
|
|
75
|
-
}
|
|
76
|
-
exports.
|
|
77
|
-
class ServiceLimitExceededException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
69
|
+
};
|
|
70
|
+
exports.ServiceLimitExceededException = class ServiceLimitExceededException extends __BaseException {
|
|
78
71
|
name = "ServiceLimitExceededException";
|
|
79
72
|
$fault = "client";
|
|
80
73
|
Message;
|
|
@@ -95,9 +88,8 @@ class ServiceLimitExceededException extends BillingconductorServiceException_1.B
|
|
|
95
88
|
this.LimitCode = opts.LimitCode;
|
|
96
89
|
this.ServiceCode = opts.ServiceCode;
|
|
97
90
|
}
|
|
98
|
-
}
|
|
99
|
-
exports.
|
|
100
|
-
class ThrottlingException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
91
|
+
};
|
|
92
|
+
exports.ThrottlingException = class ThrottlingException extends __BaseException {
|
|
101
93
|
name = "ThrottlingException";
|
|
102
94
|
$fault = "client";
|
|
103
95
|
Message;
|
|
@@ -112,9 +104,8 @@ class ThrottlingException extends BillingconductorServiceException_1.Billingcond
|
|
|
112
104
|
this.Message = opts.Message;
|
|
113
105
|
this.RetryAfterSeconds = opts.RetryAfterSeconds;
|
|
114
106
|
}
|
|
115
|
-
}
|
|
116
|
-
exports.
|
|
117
|
-
class ValidationException extends BillingconductorServiceException_1.BillingconductorServiceException {
|
|
107
|
+
};
|
|
108
|
+
exports.ValidationException = class ValidationException extends __BaseException {
|
|
118
109
|
name = "ValidationException";
|
|
119
110
|
$fault = "client";
|
|
120
111
|
Message;
|
|
@@ -131,5 +122,4 @@ class ValidationException extends BillingconductorServiceException_1.Billingcond
|
|
|
131
122
|
this.Reason = opts.Reason;
|
|
132
123
|
this.Fields = opts.Fields;
|
|
133
124
|
}
|
|
134
|
-
}
|
|
135
|
-
exports.ValidationException = ValidationException;
|
|
125
|
+
};
|
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const retry_1 = require("@smithy/core/retry");
|
|
11
|
-
const serde_1 = require("@smithy/core/serde");
|
|
12
|
-
const fetch_http_handler_1 = require("@smithy/fetch-http-handler");
|
|
13
|
-
const runtimeConfig_shared_1 = require("./runtimeConfig.shared");
|
|
1
|
+
const packageInfo = require("../package.json");
|
|
2
|
+
const { Sha256 } = require("@aws-crypto/sha256-browser");
|
|
3
|
+
const { createDefaultUserAgentProvider } = require("@aws-sdk/core/client");
|
|
4
|
+
const { invalidProvider, loadConfigsForDefaultMode } = require("@smithy/core/client");
|
|
5
|
+
const { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT, resolveDefaultsModeConfig } = require("@smithy/core/config");
|
|
6
|
+
const { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } = require("@smithy/core/retry");
|
|
7
|
+
const { calculateBodyLength } = require("@smithy/core/serde");
|
|
8
|
+
const { FetchHttpHandler: RequestHandler, streamCollector } = require("@smithy/fetch-http-handler");
|
|
9
|
+
const { getRuntimeConfig: getSharedRuntimeConfig } = require("./runtimeConfig.shared");
|
|
14
10
|
const getRuntimeConfig = (config) => {
|
|
15
|
-
const defaultsMode =
|
|
16
|
-
const defaultConfigProvider = () => defaultsMode().then(
|
|
17
|
-
const clientSharedValues = (
|
|
11
|
+
const defaultsMode = resolveDefaultsModeConfig(config);
|
|
12
|
+
const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
|
|
13
|
+
const clientSharedValues = getSharedRuntimeConfig(config);
|
|
18
14
|
return {
|
|
19
15
|
...clientSharedValues,
|
|
20
16
|
...config,
|
|
21
17
|
runtime: "browser",
|
|
22
18
|
defaultsMode,
|
|
23
|
-
bodyLengthChecker: config?.bodyLengthChecker ??
|
|
19
|
+
bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
|
|
24
20
|
credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error("Credential is missing"))),
|
|
25
|
-
defaultUserAgentProvider: config?.defaultUserAgentProvider ??
|
|
26
|
-
maxAttempts: config?.maxAttempts ??
|
|
27
|
-
region: config?.region ??
|
|
28
|
-
requestHandler:
|
|
29
|
-
retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode ||
|
|
30
|
-
sha256: config?.sha256 ??
|
|
31
|
-
streamCollector: config?.streamCollector ??
|
|
32
|
-
useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(
|
|
33
|
-
useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(
|
|
21
|
+
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
|
|
22
|
+
maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
|
|
23
|
+
region: config?.region ?? invalidProvider("Region is missing"),
|
|
24
|
+
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
|
|
25
|
+
retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),
|
|
26
|
+
sha256: config?.sha256 ?? Sha256,
|
|
27
|
+
streamCollector: config?.streamCollector ?? streamCollector,
|
|
28
|
+
useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),
|
|
29
|
+
useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),
|
|
34
30
|
};
|
|
35
31
|
};
|
|
36
32
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const retry_1 = require("@smithy/core/retry");
|
|
12
|
-
const serde_1 = require("@smithy/core/serde");
|
|
13
|
-
const node_http_handler_1 = require("@smithy/node-http-handler");
|
|
14
|
-
const runtimeConfig_shared_1 = require("./runtimeConfig.shared");
|
|
1
|
+
const packageInfo = require("../package.json");
|
|
2
|
+
const { createDefaultUserAgentProvider, emitWarningIfUnsupportedVersion: awsCheckVersion, NODE_APP_ID_CONFIG_OPTIONS } = require("@aws-sdk/core/client");
|
|
3
|
+
const { NODE_AUTH_SCHEME_PREFERENCE_OPTIONS } = require("@aws-sdk/core/httpAuthSchemes");
|
|
4
|
+
const { defaultProvider: credentialDefaultProvider } = require("@aws-sdk/credential-provider-node");
|
|
5
|
+
const { emitWarningIfUnsupportedVersion, loadConfigsForDefaultMode } = require("@smithy/core/client");
|
|
6
|
+
const { loadConfig: loadNodeConfig, NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, resolveDefaultsModeConfig } = require("@smithy/core/config");
|
|
7
|
+
const { DEFAULT_RETRY_MODE, NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } = require("@smithy/core/retry");
|
|
8
|
+
const { calculateBodyLength, Hash } = require("@smithy/core/serde");
|
|
9
|
+
const { NodeHttpHandler: RequestHandler, streamCollector } = require("@smithy/node-http-handler");
|
|
10
|
+
const { getRuntimeConfig: getSharedRuntimeConfig } = require("./runtimeConfig.shared");
|
|
15
11
|
const getRuntimeConfig = (config) => {
|
|
16
|
-
|
|
17
|
-
const defaultsMode =
|
|
18
|
-
const defaultConfigProvider = () => defaultsMode().then(
|
|
19
|
-
const clientSharedValues = (
|
|
20
|
-
(
|
|
12
|
+
emitWarningIfUnsupportedVersion(process.version);
|
|
13
|
+
const defaultsMode = resolveDefaultsModeConfig(config);
|
|
14
|
+
const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
|
|
15
|
+
const clientSharedValues = getSharedRuntimeConfig(config);
|
|
16
|
+
awsCheckVersion(process.version);
|
|
21
17
|
const loaderConfig = {
|
|
22
18
|
profile: config?.profile,
|
|
23
19
|
logger: clientSharedValues.logger,
|
|
@@ -27,23 +23,23 @@ const getRuntimeConfig = (config) => {
|
|
|
27
23
|
...config,
|
|
28
24
|
runtime: "node",
|
|
29
25
|
defaultsMode,
|
|
30
|
-
authSchemePreference: config?.authSchemePreference ?? (
|
|
31
|
-
bodyLengthChecker: config?.bodyLengthChecker ??
|
|
32
|
-
credentialDefaultProvider: config?.credentialDefaultProvider ??
|
|
33
|
-
defaultUserAgentProvider: config?.defaultUserAgentProvider ??
|
|
34
|
-
maxAttempts: config?.maxAttempts ?? (
|
|
35
|
-
region: config?.region ?? (
|
|
36
|
-
requestHandler:
|
|
26
|
+
authSchemePreference: config?.authSchemePreference ?? loadNodeConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),
|
|
27
|
+
bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
|
|
28
|
+
credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider,
|
|
29
|
+
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
|
|
30
|
+
maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),
|
|
31
|
+
region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),
|
|
32
|
+
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
|
|
37
33
|
retryMode: config?.retryMode ??
|
|
38
|
-
(
|
|
39
|
-
...
|
|
40
|
-
default: async () => (await defaultConfigProvider()).retryMode ||
|
|
34
|
+
loadNodeConfig({
|
|
35
|
+
...NODE_RETRY_MODE_CONFIG_OPTIONS,
|
|
36
|
+
default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE,
|
|
41
37
|
}, config),
|
|
42
|
-
sha256: config?.sha256 ??
|
|
43
|
-
streamCollector: config?.streamCollector ??
|
|
44
|
-
useDualstackEndpoint: config?.useDualstackEndpoint ?? (
|
|
45
|
-
useFipsEndpoint: config?.useFipsEndpoint ?? (
|
|
46
|
-
userAgentAppId: config?.userAgentAppId ?? (
|
|
38
|
+
sha256: config?.sha256 ?? Hash.bind(null, "sha256"),
|
|
39
|
+
streamCollector: config?.streamCollector ?? streamCollector,
|
|
40
|
+
useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
41
|
+
useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
42
|
+
userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),
|
|
47
43
|
};
|
|
48
44
|
};
|
|
49
45
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getRuntimeConfig = void 0;
|
|
4
|
-
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
5
|
-
const runtimeConfig_browser_1 = require("./runtimeConfig.browser");
|
|
1
|
+
const { Sha256 } = require("@aws-crypto/sha256-js");
|
|
2
|
+
const { getRuntimeConfig: getBrowserRuntimeConfig } = require("./runtimeConfig.browser");
|
|
6
3
|
const getRuntimeConfig = (config) => {
|
|
7
|
-
const browserDefaults = (
|
|
4
|
+
const browserDefaults = getBrowserRuntimeConfig(config);
|
|
8
5
|
return {
|
|
9
6
|
...browserDefaults,
|
|
10
7
|
...config,
|
|
11
8
|
runtime: "react-native",
|
|
12
|
-
sha256: config?.sha256 ??
|
|
9
|
+
sha256: config?.sha256 ?? Sha256,
|
|
13
10
|
};
|
|
14
11
|
};
|
|
15
12
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const endpointResolver_1 = require("./endpoint/endpointResolver");
|
|
11
|
-
const schemas_0_1 = require("./schemas/schemas_0");
|
|
12
|
-
const getRuntimeConfig = (config) => {
|
|
1
|
+
const { AwsSdkSigV4Signer } = require("@aws-sdk/core/httpAuthSchemes");
|
|
2
|
+
const { AwsRestJsonProtocol } = require("@aws-sdk/core/protocols");
|
|
3
|
+
const { NoOpLogger } = require("@smithy/core/client");
|
|
4
|
+
const { parseUrl } = require("@smithy/core/protocols");
|
|
5
|
+
const { fromBase64, fromUtf8, toBase64, toUtf8 } = require("@smithy/core/serde");
|
|
6
|
+
const { defaultBillingconductorHttpAuthSchemeProvider } = require("./auth/httpAuthSchemeProvider");
|
|
7
|
+
const { defaultEndpointResolver } = require("./endpoint/endpointResolver");
|
|
8
|
+
const { errorTypeRegistries } = require("./schemas/schemas_0");
|
|
9
|
+
exports.getRuntimeConfig = (config) => {
|
|
13
10
|
return {
|
|
14
11
|
apiVersion: "2021-07-30",
|
|
15
|
-
base64Decoder: config?.base64Decoder ??
|
|
16
|
-
base64Encoder: config?.base64Encoder ??
|
|
12
|
+
base64Decoder: config?.base64Decoder ?? fromBase64,
|
|
13
|
+
base64Encoder: config?.base64Encoder ?? toBase64,
|
|
17
14
|
disableHostPrefix: config?.disableHostPrefix ?? false,
|
|
18
|
-
endpointProvider: config?.endpointProvider ??
|
|
15
|
+
endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,
|
|
19
16
|
extensions: config?.extensions ?? [],
|
|
20
|
-
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ??
|
|
17
|
+
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultBillingconductorHttpAuthSchemeProvider,
|
|
21
18
|
httpAuthSchemes: config?.httpAuthSchemes ?? [
|
|
22
19
|
{
|
|
23
20
|
schemeId: "aws.auth#sigv4",
|
|
24
21
|
identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
|
|
25
|
-
signer: new
|
|
22
|
+
signer: new AwsSdkSigV4Signer(),
|
|
26
23
|
},
|
|
27
24
|
],
|
|
28
|
-
logger: config?.logger ?? new
|
|
29
|
-
protocol: config?.protocol ??
|
|
25
|
+
logger: config?.logger ?? new NoOpLogger(),
|
|
26
|
+
protocol: config?.protocol ?? AwsRestJsonProtocol,
|
|
30
27
|
protocolSettings: config?.protocolSettings ?? {
|
|
31
28
|
defaultNamespace: "com.amazonaws.billingconductor",
|
|
32
|
-
errorTypeRegistries
|
|
29
|
+
errorTypeRegistries,
|
|
33
30
|
version: "2021-07-30",
|
|
34
31
|
serviceTarget: "AWSBillingConductor",
|
|
35
32
|
},
|
|
36
33
|
serviceId: config?.serviceId ?? "billingconductor",
|
|
37
|
-
urlParser: config?.urlParser ??
|
|
38
|
-
utf8Decoder: config?.utf8Decoder ??
|
|
39
|
-
utf8Encoder: config?.utf8Encoder ??
|
|
34
|
+
urlParser: config?.urlParser ?? parseUrl,
|
|
35
|
+
utf8Decoder: config?.utf8Decoder ?? fromUtf8,
|
|
36
|
+
utf8Encoder: config?.utf8Encoder ?? toUtf8,
|
|
40
37
|
};
|
|
41
38
|
};
|
|
42
|
-
exports.getRuntimeConfig = getRuntimeConfig;
|