@aws-cdk/aws-gamelift-alpha 2.59.0-alpha.0 → 2.60.0-alpha.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/lib/index.d.ts CHANGED
@@ -6,6 +6,9 @@ export * from './game-server-group';
6
6
  export * from './ingress-rule';
7
7
  export * from './fleet-base';
8
8
  export * from './build-fleet';
9
+ export * from './matchmaking-configuration';
10
+ export * from './queued-matchmaking-configuration';
11
+ export * from './standalone-matchmaking-configuration';
9
12
  export * from './game-session-queue';
10
13
  export * from './matchmaking-ruleset';
11
14
  export * from './matchmaking-ruleset-body';
package/lib/index.js CHANGED
@@ -18,8 +18,11 @@ __exportStar(require("./game-server-group"), exports);
18
18
  __exportStar(require("./ingress-rule"), exports);
19
19
  __exportStar(require("./fleet-base"), exports);
20
20
  __exportStar(require("./build-fleet"), exports);
21
+ __exportStar(require("./matchmaking-configuration"), exports);
22
+ __exportStar(require("./queued-matchmaking-configuration"), exports);
23
+ __exportStar(require("./standalone-matchmaking-configuration"), exports);
21
24
  __exportStar(require("./game-session-queue"), exports);
22
25
  __exportStar(require("./matchmaking-ruleset"), exports);
23
26
  __exportStar(require("./matchmaking-ruleset-body"), exports);
24
27
  // AWS::GameLift CloudFormation Resources:
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IsZ0RBQThCO0FBQzlCLHVEQUFxQztBQUNyQyx3REFBc0M7QUFDdEMsNkRBQTJDO0FBRTNDLDBDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxpYXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JpcHQnO1xuZXhwb3J0ICogZnJvbSAnLi9nYW1lLXNlcnZlci1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2luZ3Jlc3MtcnVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZsZWV0LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC1mbGVldCc7XG5leHBvcnQgKiBmcm9tICcuL2dhbWUtc2Vzc2lvbi1xdWV1ZSc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNobWFraW5nLXJ1bGVzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRjaG1ha2luZy1ydWxlc2V0LWJvZHknO1xuXG4vLyBBV1M6OkdhbWVMaWZ0IENsb3VkRm9ybWF0aW9uIFJlc291cmNlczpcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsc0RBQW9DO0FBQ3BDLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0IsZ0RBQThCO0FBQzlCLDhEQUE0QztBQUM1QyxxRUFBbUQ7QUFDbkQseUVBQXVEO0FBQ3ZELHVEQUFxQztBQUNyQyx3REFBc0M7QUFDdEMsNkRBQTJDO0FBRTNDLDBDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWxpYXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JpcHQnO1xuZXhwb3J0ICogZnJvbSAnLi9nYW1lLXNlcnZlci1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2luZ3Jlc3MtcnVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZsZWV0LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9idWlsZC1mbGVldCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNobWFraW5nLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9xdWV1ZWQtbWF0Y2htYWtpbmctY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3N0YW5kYWxvbmUtbWF0Y2htYWtpbmctY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2dhbWUtc2Vzc2lvbi1xdWV1ZSc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNobWFraW5nLXJ1bGVzZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRjaG1ha2luZy1ydWxlc2V0LWJvZHknO1xuXG4vLyBBV1M6OkdhbWVMaWZ0IENsb3VkRm9ybWF0aW9uIFJlc291cmNlczpcbiJdfQ==
@@ -104,7 +104,7 @@ class Port {
104
104
  }
105
105
  exports.Port = Port;
106
106
  _a = JSII_RTTI_SYMBOL_1;
107
- Port[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.Port", version: "2.59.0-alpha.0" };
107
+ Port[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.Port", version: "2.60.0-alpha.0" };
108
108
  /**
109
109
  * Peer object factories
110
110
  *
@@ -131,7 +131,7 @@ class Peer {
131
131
  }
132
132
  exports.Peer = Peer;
133
133
  _b = JSII_RTTI_SYMBOL_1;
134
- Peer[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Peer", version: "2.59.0-alpha.0" };
134
+ Peer[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Peer", version: "2.60.0-alpha.0" };
135
135
  /**
136
136
  * A connection to and from a given IP range
137
137
  */
@@ -0,0 +1,195 @@
1
+ import * as cloudwatch from 'aws-cdk-lib/aws-cloudwatch';
2
+ import * as sns from 'aws-cdk-lib/aws-sns';
3
+ import * as cdk from 'aws-cdk-lib';
4
+ import { Construct } from 'constructs';
5
+ import { IMatchmakingRuleSet } from '.';
6
+ /**
7
+ * A set of custom properties for a game session, formatted as key-value pairs.
8
+ * These properties are passed to a game server process with a request to start a new game session.
9
+ *
10
+ * This parameter is not used for Standalone FlexMatch mode.
11
+ *
12
+ * @see https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession
13
+ */
14
+ export interface GameProperty {
15
+ /**
16
+ * The game property identifier.
17
+ */
18
+ readonly key: string;
19
+ /**
20
+ * The game property value.
21
+ */
22
+ readonly value: string;
23
+ }
24
+ /**
25
+ * Represents a Gamelift matchmaking configuration
26
+ */
27
+ export interface IMatchmakingConfiguration extends cdk.IResource {
28
+ /**
29
+ * The name of the matchmaking configuration.
30
+ *
31
+ * @attribute
32
+ */
33
+ readonly matchmakingConfigurationName: string;
34
+ /**
35
+ * The ARN of the matchmaking configuration.
36
+ *
37
+ * @attribute
38
+ */
39
+ readonly matchmakingConfigurationArn: string;
40
+ /**
41
+ * The notification target for matchmaking events
42
+ *
43
+ * @attribute
44
+ */
45
+ readonly notificationTarget?: sns.ITopic;
46
+ /**
47
+ * Return the given named metric for this matchmaking configuration.
48
+ */
49
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
50
+ /**
51
+ * Matchmaking requests currently being processed or waiting to be processed.
52
+ */
53
+ metricCurrentTickets(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
54
+ /**
55
+ * For matchmaking configurations that require acceptance, the potential matches that were accepted since the last report.
56
+ */
57
+ metricMatchesAccepted(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
58
+ /**
59
+ * Potential matches that were created since the last report.
60
+ */
61
+ metricMatchesCreated(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
62
+ /**
63
+ * Matches that were successfully placed into a game session since the last report.
64
+ */
65
+ metricMatchesPlaced(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
66
+ /**
67
+ * For matchmaking configurations that require acceptance, the potential matches that were rejected by at least one player since the last report.
68
+ */
69
+ metricMatchesRejected(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
70
+ /**
71
+ * Players in matchmaking tickets that were added since the last report.
72
+ */
73
+ metricPlayersStarted(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
74
+ /**
75
+ * For matchmaking requests that were put into a potential match before the last report,
76
+ * the amount of time between ticket creation and potential match creation.
77
+ *
78
+ * Units: seconds
79
+ */
80
+ metricTimeToMatch(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
81
+ }
82
+ /**
83
+ * A full specification of a matchmaking configuration that can be used to import it fluently into the CDK application.
84
+ */
85
+ export interface MatchmakingConfigurationAttributes {
86
+ /**
87
+ * The ARN of the Matchmaking configuration
88
+ *
89
+ * At least one of `matchmakingConfigurationArn` and `matchmakingConfigurationName` must be provided.
90
+ *
91
+ * @default derived from `matchmakingConfigurationName`.
92
+ */
93
+ readonly matchmakingConfigurationArn?: string;
94
+ /**
95
+ * The identifier of the Matchmaking configuration
96
+ *
97
+ * At least one of `matchmakingConfigurationName` and `matchmakingConfigurationArn` must be provided.
98
+ *
99
+ * @default derived from `matchmakingConfigurationArn`.
100
+ */
101
+ readonly matchmakingConfigurationName?: string;
102
+ /**
103
+ * An SNS topic ARN that is set up to receive matchmaking notifications.
104
+ *
105
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html
106
+ *
107
+ * @default no notification target binded to imported ressource
108
+ */
109
+ readonly notificationTarget?: sns.ITopic;
110
+ }
111
+ /**
112
+ * Properties for a new Gamelift matchmaking configuration
113
+ */
114
+ export interface MatchmakingConfigurationProps {
115
+ /**
116
+ * A unique identifier for the matchmaking configuration.
117
+ * This name is used to identify the configuration associated with a matchmaking request or ticket.
118
+ */
119
+ readonly matchmakingConfigurationName: string;
120
+ /**
121
+ * A human-readable description of the matchmaking configuration.
122
+ *
123
+ * @default no description is provided
124
+ */
125
+ readonly description?: string;
126
+ /**
127
+ * A flag that determines whether a match that was created with this configuration must be accepted by the matched players.
128
+ * With this option enabled, matchmaking tickets use the status `REQUIRES_ACCEPTANCE` to indicate when a completed potential match is waiting for player acceptance.
129
+ *
130
+ * @default Acceptance is not required
131
+ */
132
+ readonly requireAcceptance?: boolean;
133
+ /**
134
+ * The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
135
+ *
136
+ * @default 300 seconds
137
+ */
138
+ readonly acceptanceTimeout?: cdk.Duration;
139
+ /**
140
+ * Information to add to all events related to the matchmaking configuration.
141
+ *
142
+ * @default no custom data added to events
143
+ */
144
+ readonly customEventData?: string;
145
+ /**
146
+ * An SNS topic ARN that is set up to receive matchmaking notifications.
147
+ *
148
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-notification.html
149
+ *
150
+ * @default no notification target
151
+ */
152
+ readonly notificationTarget?: sns.ITopic;
153
+ /**
154
+ * The maximum duration, that a matchmaking ticket can remain in process before timing out.
155
+ * Requests that fail due to timing out can be resubmitted as needed.
156
+ *
157
+ * @default 300 seconds
158
+ */
159
+ readonly requestTimeout?: cdk.Duration;
160
+ /**
161
+ * A matchmaking rule set to use with this configuration.
162
+ *
163
+ * A matchmaking configuration can only use rule sets that are defined in the same Region.
164
+ */
165
+ readonly ruleSet: IMatchmakingRuleSet;
166
+ }
167
+ /**
168
+ * Base class for new and imported GameLift Matchmaking configuration.
169
+ */
170
+ export declare abstract class MatchmakingConfigurationBase extends cdk.Resource implements IMatchmakingConfiguration {
171
+ /**
172
+ * Import an existing matchmaking configuration from its attributes.
173
+ */
174
+ static fromMatchmakingConfigurationAttributes(scope: Construct, id: string, attrs: MatchmakingConfigurationAttributes): IMatchmakingConfiguration;
175
+ /**
176
+ * The Identifier of the matchmaking configuration.
177
+ */
178
+ abstract readonly matchmakingConfigurationName: string;
179
+ /**
180
+ * The ARN of the matchmaking configuration.
181
+ */
182
+ abstract readonly matchmakingConfigurationArn: string;
183
+ /**
184
+ * The notification target for matchmaking events
185
+ */
186
+ abstract readonly notificationTarget?: sns.ITopic;
187
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
188
+ metricCurrentTickets(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
189
+ metricMatchesAccepted(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
190
+ metricMatchesCreated(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
191
+ metricMatchesPlaced(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
192
+ metricMatchesRejected(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
193
+ metricPlayersStarted(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
194
+ metricTimeToMatch(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
195
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MatchmakingConfigurationBase = void 0;
5
+ const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
+ const cloudwatch = require("aws-cdk-lib/aws-cloudwatch");
8
+ const cdk = require("aws-cdk-lib");
9
+ /**
10
+ * Base class for new and imported GameLift Matchmaking configuration.
11
+ */
12
+ class MatchmakingConfigurationBase extends cdk.Resource {
13
+ /**
14
+ * Import an existing matchmaking configuration from its attributes.
15
+ */
16
+ static fromMatchmakingConfigurationAttributes(scope, id, attrs) {
17
+ try {
18
+ jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_MatchmakingConfigurationAttributes(attrs);
19
+ }
20
+ catch (error) {
21
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
22
+ Error.captureStackTrace(error, this.fromMatchmakingConfigurationAttributes);
23
+ }
24
+ throw error;
25
+ }
26
+ if (!attrs.matchmakingConfigurationName && !attrs.matchmakingConfigurationArn) {
27
+ throw new Error('Either matchmakingConfigurationName or matchmakingConfigurationArn must be provided in MatchmakingConfigurationAttributes');
28
+ }
29
+ const matchmakingConfigurationName = attrs.matchmakingConfigurationName ??
30
+ cdk.Stack.of(scope).splitArn(attrs.matchmakingConfigurationArn, cdk.ArnFormat.SLASH_RESOURCE_NAME).resourceName;
31
+ if (!matchmakingConfigurationName) {
32
+ throw new Error(`No matchmaking configuration name found in ARN: '${attrs.matchmakingConfigurationArn}'`);
33
+ }
34
+ const matchmakingConfigurationArn = attrs.matchmakingConfigurationArn ?? cdk.Stack.of(scope).formatArn({
35
+ service: 'gamelift',
36
+ resource: 'matchmakingconfiguration',
37
+ resourceName: attrs.matchmakingConfigurationName,
38
+ arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
39
+ });
40
+ class Import extends MatchmakingConfigurationBase {
41
+ constructor(s, i) {
42
+ super(s, i, {
43
+ environmentFromArn: matchmakingConfigurationArn,
44
+ });
45
+ this.matchmakingConfigurationName = matchmakingConfigurationName;
46
+ this.matchmakingConfigurationArn = matchmakingConfigurationArn;
47
+ this.notificationTarget = attrs.notificationTarget;
48
+ }
49
+ }
50
+ return new Import(scope, id);
51
+ }
52
+ metric(metricName, props) {
53
+ return new cloudwatch.Metric({
54
+ namespace: 'AWS/GameLift',
55
+ metricName: metricName,
56
+ dimensionsMap: {
57
+ MatchmakingConfigurationName: this.matchmakingConfigurationName,
58
+ },
59
+ ...props,
60
+ }).attachTo(this);
61
+ }
62
+ metricCurrentTickets(props) {
63
+ return this.metric('CurrentTickets', props);
64
+ }
65
+ metricMatchesAccepted(props) {
66
+ return this.metric('MatchesAccepted', props);
67
+ }
68
+ metricMatchesCreated(props) {
69
+ return this.metric('MatchesCreated', props);
70
+ }
71
+ metricMatchesPlaced(props) {
72
+ return this.metric('MatchesPlaced', props);
73
+ }
74
+ metricMatchesRejected(props) {
75
+ return this.metric('MatchesRejected', props);
76
+ }
77
+ metricPlayersStarted(props) {
78
+ return this.metric('PlayersStarted', props);
79
+ }
80
+ metricTimeToMatch(props) {
81
+ return this.metric('TimeToMatch', props);
82
+ }
83
+ }
84
+ exports.MatchmakingConfigurationBase = MatchmakingConfigurationBase;
85
+ _a = JSII_RTTI_SYMBOL_1;
86
+ MatchmakingConfigurationBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingConfigurationBase", version: "2.60.0-alpha.0" };
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2htYWtpbmctY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hdGNobWFraW5nLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseURBQXlEO0FBRXpELG1DQUFtQztBQThMbkM7O0dBRUc7QUFDSCxNQUFzQiw0QkFBNkIsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUdyRTs7T0FFRztJQUNILE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5Qzs7Ozs7Ozs7OztRQUNuSCxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QixJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFO1lBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkhBQTJILENBQUMsQ0FBQztTQUM5STtRQUNELE1BQU0sNEJBQTRCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QjtZQUN0RSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLDJCQUE0QixFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFbEgsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELEtBQUssQ0FBQywyQkFBMkIsR0FBRyxDQUFDLENBQUM7U0FDM0c7UUFFRCxNQUFNLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckcsT0FBTyxFQUFFLFVBQVU7WUFDbkIsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxZQUFZLEVBQUUsS0FBSyxDQUFDLDRCQUE0QjtZQUNoRCxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFPLFNBQVEsNEJBQTRCO1lBSy9DLFlBQVksQ0FBWSxFQUFFLENBQVM7Z0JBQ2pDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNWLGtCQUFrQixFQUFFLDJCQUEyQjtpQkFDaEQsQ0FBQyxDQUFDO2dCQVBXLGlDQUE0QixHQUFHLDRCQUE2QixDQUFDO2dCQUM3RCxnQ0FBMkIsR0FBRywyQkFBMkIsQ0FBQztnQkFDMUQsdUJBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBTTlELENBQUM7U0FDRjtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBZ0JELE1BQU0sQ0FBQyxVQUFrQixFQUFFLEtBQWdDO1FBQ3pELE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQzNCLFNBQVMsRUFBRSxjQUFjO1lBQ3pCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLGFBQWEsRUFBRTtnQkFDYiw0QkFBNEIsRUFBRSxJQUFJLENBQUMsNEJBQTRCO2FBQ2hFO1lBQ0QsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuQjtJQUVELG9CQUFvQixDQUFDLEtBQWdDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUVELHFCQUFxQixDQUFDLEtBQWdDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM5QztJQUVELG9CQUFvQixDQUFDLEtBQWdDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUVELG1CQUFtQixDQUFDLEtBQWdDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDNUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFnQztRQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDOUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFnQztRQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDN0M7SUFFRCxpQkFBaUIsQ0FBQyxLQUFnQztRQUNoRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzFDOztBQXhGSCxvRUEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElNYXRjaG1ha2luZ1J1bGVTZXQgfSBmcm9tICcuJztcblxuLyoqXG4gICAqIEEgc2V0IG9mIGN1c3RvbSBwcm9wZXJ0aWVzIGZvciBhIGdhbWUgc2Vzc2lvbiwgZm9ybWF0dGVkIGFzIGtleS12YWx1ZSBwYWlycy5cbiAgICogVGhlc2UgcHJvcGVydGllcyBhcmUgcGFzc2VkIHRvIGEgZ2FtZSBzZXJ2ZXIgcHJvY2VzcyB3aXRoIGEgcmVxdWVzdCB0byBzdGFydCBhIG5ldyBnYW1lIHNlc3Npb24uXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkIGZvciBTdGFuZGFsb25lIEZsZXhNYXRjaCBtb2RlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtc2RrLXNlcnZlci1hcGkuaHRtbCNnYW1lbGlmdC1zZGstc2VydmVyLXN0YXJ0c2Vzc2lvblxuICAgKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2FtZVByb3BlcnR5IHtcbiAgLyoqXG4gICAgICogVGhlIGdhbWUgcHJvcGVydHkgaWRlbnRpZmllci5cbiAgICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgICAqIFRoZSBnYW1lIHByb3BlcnR5IHZhbHVlLlxuICAgICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBHYW1lbGlmdCBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1hdGNobWFraW5nQ29uZmlndXJhdGlvbiBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKiBAYXR0cmlidXRlXG4gICAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWZpY2F0aW9uIHRhcmdldCBmb3IgbWF0Y2htYWtpbmcgZXZlbnRzXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblRhcmdldD86IHNucy5JVG9waWM7XG5cblxuICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgICAqIE1hdGNobWFraW5nIHJlcXVlc3RzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQgb3Igd2FpdGluZyB0byBiZSBwcm9jZXNzZWQuXG4gICAgICovXG4gIG1ldHJpY0N1cnJlbnRUaWNrZXRzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAgICogRm9yIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb25zIHRoYXQgcmVxdWlyZSBhY2NlcHRhbmNlLCB0aGUgcG90ZW50aWFsIG1hdGNoZXMgdGhhdCB3ZXJlIGFjY2VwdGVkIHNpbmNlIHRoZSBsYXN0IHJlcG9ydC5cbiAgICAgKi9cbiAgbWV0cmljTWF0Y2hlc0FjY2VwdGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAgICogUG90ZW50aWFsIG1hdGNoZXMgdGhhdCB3ZXJlIGNyZWF0ZWQgc2luY2UgdGhlIGxhc3QgcmVwb3J0LlxuICAgICAqL1xuICBtZXRyaWNNYXRjaGVzQ3JlYXRlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgICAqIE1hdGNoZXMgdGhhdCB3ZXJlIHN1Y2Nlc3NmdWxseSBwbGFjZWQgaW50byBhIGdhbWUgc2Vzc2lvbiBzaW5jZSB0aGUgbGFzdCByZXBvcnQuXG4gICAgICovXG4gIG1ldHJpY01hdGNoZXNQbGFjZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICAgKiBGb3IgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbnMgdGhhdCByZXF1aXJlIGFjY2VwdGFuY2UsIHRoZSBwb3RlbnRpYWwgbWF0Y2hlcyB0aGF0IHdlcmUgcmVqZWN0ZWQgYnkgYXQgbGVhc3Qgb25lIHBsYXllciBzaW5jZSB0aGUgbGFzdCByZXBvcnQuXG4gICAgICovXG4gIG1ldHJpY01hdGNoZXNSZWplY3RlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgICAqIFBsYXllcnMgaW4gbWF0Y2htYWtpbmcgdGlja2V0cyB0aGF0IHdlcmUgYWRkZWQgc2luY2UgdGhlIGxhc3QgcmVwb3J0LlxuICAgICAqL1xuICBtZXRyaWNQbGF5ZXJzU3RhcnRlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xuXG4gIC8qKlxuICAgICAqIEZvciBtYXRjaG1ha2luZyByZXF1ZXN0cyB0aGF0IHdlcmUgcHV0IGludG8gYSBwb3RlbnRpYWwgbWF0Y2ggYmVmb3JlIHRoZSBsYXN0IHJlcG9ydCxcbiAgICAgKiB0aGUgYW1vdW50IG9mIHRpbWUgYmV0d2VlbiB0aWNrZXQgY3JlYXRpb24gYW5kIHBvdGVudGlhbCBtYXRjaCBjcmVhdGlvbi5cbiAgICAgKlxuICAgICAqIFVuaXRzOiBzZWNvbmRzXG4gICAgICovXG4gIG1ldHJpY1RpbWVUb01hdGNoKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogQSBmdWxsIHNwZWNpZmljYXRpb24gb2YgYSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW1wb3J0IGl0IGZsdWVudGx5IGludG8gdGhlIENESyBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAgICAgICogVGhlIEFSTiBvZiB0aGUgTWF0Y2htYWtpbmcgY29uZmlndXJhdGlvblxuICAgICAgICAqXG4gICAgICAgICogQXQgbGVhc3Qgb25lIG9mIGBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm5gIGFuZCBgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZWAgbXVzdCBiZSBwcm92aWRlZC5cbiAgICAgICAgKlxuICAgICAgICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZWAuXG4gICAgICAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIE1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb25cbiAgICAgICpcbiAgICAgICogQXQgbGVhc3Qgb25lIG9mIGBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lYCBhbmQgYG1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybmAgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAgICAqXG4gICAgICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJuYC5cbiAgICAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIFNOUyB0b3BpYyBBUk4gdGhhdCBpcyBzZXQgdXAgdG8gcmVjZWl2ZSBtYXRjaG1ha2luZyBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZmxleG1hdGNoZ3VpZGUvbWF0Y2gtbm90aWZpY2F0aW9uLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gbm90aWZpY2F0aW9uIHRhcmdldCBiaW5kZWQgdG8gaW1wb3J0ZWQgcmVzc291cmNlXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXQ/OiBzbnMuSVRvcGljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IEdhbWVsaWZ0IG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICogVGhpcyBuYW1lIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNvbmZpZ3VyYXRpb24gYXNzb2NpYXRlZCB3aXRoIGEgbWF0Y2htYWtpbmcgcmVxdWVzdCBvciB0aWNrZXQuXG4gICAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb24gaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIEEgZmxhZyB0aGF0IGRldGVybWluZXMgd2hldGhlciBhIG1hdGNoIHRoYXQgd2FzIGNyZWF0ZWQgd2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBhY2NlcHRlZCBieSB0aGUgbWF0Y2hlZCBwbGF5ZXJzLlxuICAgICAqIFdpdGggdGhpcyBvcHRpb24gZW5hYmxlZCwgbWF0Y2htYWtpbmcgdGlja2V0cyB1c2UgdGhlIHN0YXR1cyBgUkVRVUlSRVNfQUNDRVBUQU5DRWAgdG8gaW5kaWNhdGUgd2hlbiBhIGNvbXBsZXRlZCBwb3RlbnRpYWwgbWF0Y2ggaXMgd2FpdGluZyBmb3IgcGxheWVyIGFjY2VwdGFuY2UuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBBY2NlcHRhbmNlIGlzIG5vdCByZXF1aXJlZFxuICAgICAqL1xuICByZWFkb25seSByZXF1aXJlQWNjZXB0YW5jZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSAoaW4gc2Vjb25kcykgdG8gd2FpdCBmb3IgcGxheWVycyB0byBhY2NlcHQgYSBwcm9wb3NlZCBtYXRjaCwgaWYgYWNjZXB0YW5jZSBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgMzAwIHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IGFjY2VwdGFuY2VUaW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiB0byBhZGQgdG8gYWxsIGV2ZW50cyByZWxhdGVkIHRvIHRoZSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBjdXN0b20gZGF0YSBhZGRlZCB0byBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUV2ZW50RGF0YT86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gU05TIHRvcGljIEFSTiB0aGF0IGlzIHNldCB1cCB0byByZWNlaXZlIG1hdGNobWFraW5nIG5vdGlmaWNhdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9mbGV4bWF0Y2hndWlkZS9tYXRjaC1ub3RpZmljYXRpb24uaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBub3RpZmljYXRpb24gdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXQ/OiBzbnMuSVRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkdXJhdGlvbiwgdGhhdCBhIG1hdGNobWFraW5nIHRpY2tldCBjYW4gcmVtYWluIGluIHByb2Nlc3MgYmVmb3JlIHRpbWluZyBvdXQuXG4gICAqIFJlcXVlc3RzIHRoYXQgZmFpbCBkdWUgdG8gdGltaW5nIG91dCBjYW4gYmUgcmVzdWJtaXR0ZWQgYXMgbmVlZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAzMDAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdFRpbWVvdXQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgbWF0Y2htYWtpbmcgcnVsZSBzZXQgdG8gdXNlIHdpdGggdGhpcyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBBIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gY2FuIG9ubHkgdXNlIHJ1bGUgc2V0cyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzYW1lIFJlZ2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVTZXQ6IElNYXRjaG1ha2luZ1J1bGVTZXQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgbmV3IGFuZCBpbXBvcnRlZCBHYW1lTGlmdCBNYXRjaG1ha2luZyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb24ge1xuXG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbU1hdGNobWFraW5nQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IE1hdGNobWFraW5nQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMpOiBJTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uIHtcbiAgICBpZiAoIWF0dHJzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgJiYgIWF0dHJzLm1hdGNobWFraW5nQ29uZmlndXJhdGlvbkFybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgbWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZSBvciBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gbXVzdCBiZSBwcm92aWRlZCBpbiBNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25BdHRyaWJ1dGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgPSBhdHRycy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lID8/XG4gICAgIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXR0cnMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJuISwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWU7XG5cbiAgICBpZiAoIW1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWF0Y2htYWtpbmcgY29uZmlndXJhdGlvbiBuYW1lIGZvdW5kIGluIEFSTjogJyR7YXR0cnMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uQXJufSdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gPSBhdHRycy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gPz8gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnbWF0Y2htYWtpbmdjb25maWd1cmF0aW9uJyxcbiAgICAgIHJlc291cmNlTmFtZTogYXR0cnMubWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZSxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIE1hdGNobWFraW5nQ29uZmlndXJhdGlvbkJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1hdGNobWFraW5nQ29uZmlndXJhdGlvbk5hbWUgPSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4gPSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uVGFyZ2V0ID0gYXR0cnMubm90aWZpY2F0aW9uVGFyZ2V0O1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7XG4gICAgICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGlmaWNhdGlvbiB0YXJnZXQgZm9yIG1hdGNobWFraW5nIGV2ZW50c1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG5vdGlmaWNhdGlvblRhcmdldD86IHNucy5JVG9waWM7XG5cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvR2FtZUxpZnQnLFxuICAgICAgbWV0cmljTmFtZTogbWV0cmljTmFtZSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uTmFtZTogdGhpcy5tYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG5cbiAgbWV0cmljQ3VycmVudFRpY2tldHMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdDdXJyZW50VGlja2V0cycsIHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY01hdGNoZXNBY2NlcHRlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ01hdGNoZXNBY2NlcHRlZCcsIHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY01hdGNoZXNDcmVhdGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnTWF0Y2hlc0NyZWF0ZWQnLCBwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNNYXRjaGVzUGxhY2VkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnTWF0Y2hlc1BsYWNlZCcsIHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY01hdGNoZXNSZWplY3RlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ01hdGNoZXNSZWplY3RlZCcsIHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY1BsYXllcnNTdGFydGVkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnUGxheWVyc1N0YXJ0ZWQnLCBwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNUaW1lVG9NYXRjaChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1RpbWVUb01hdGNoJywgcHJvcHMpO1xuICB9XG5cbn0iXX0=
@@ -73,5 +73,5 @@ class RuleSetContent {
73
73
  }
74
74
  exports.RuleSetContent = RuleSetContent;
75
75
  _a = JSII_RTTI_SYMBOL_1;
76
- RuleSetContent[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.RuleSetContent", version: "2.59.0-alpha.0" };
76
+ RuleSetContent[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.RuleSetContent", version: "2.60.0-alpha.0" };
77
77
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2htYWtpbmctcnVsZXNldC1ib2R5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWF0Y2htYWtpbmctcnVsZXNldC1ib2R5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlCQUF5QjtBQW9EekI7Ozs7Ozs7R0FPRztBQUNILE1BQWEsY0FBYztJQTJDekIsWUFBWSxLQUEwQjs7Ozs7OytDQTNDM0IsY0FBYzs7OztRQTRDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztLQUNwQztJQTNDRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFZO1FBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELElBQUksRUFBRSxDQUFDLENBQUM7U0FDbEY7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDhFQUE4RSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZHO1FBQ0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDekM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFZO1FBQ25DLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZGO1FBQ0QsSUFBSTtZQUNGLE9BQU8sSUFBSSxjQUFjLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUMxQixDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzVEO0tBQ0Y7SUFXRDs7Ozs7UUFLSTtJQUNHLElBQUksQ0FBQyxNQUFpQjtRQUMzQixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUMxQyxDQUFDO0tBQ0g7O0FBekRILHdDQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEludGVyZmFjZSB0byByZXByZXNlbnQgTWF0Y2htYWtpbmcgUnVsZVNldCBzY2hlbWFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUnVsZVNldEJvZHkge31cblxuLyoqXG4gKiBJbnRlcmZhY2UgdG8gcmVwcmVzZW50IG91dHB1dCByZXN1bHQgb2YgYSBSdWxlU2V0Q29udGVudCBiaW5kaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZVNldEJvZHlDb25maWcge1xuICAvKipcbiAgKiBJbmxpbmUgcnVsZVNldCBib2R5LlxuICAqL1xuICByZWFkb25seSBydWxlU2V0Qm9keTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSB0byByZXByZXNlbnQgYSBNYXRjaG1ha2luZyBSdWxlU2V0IGNvbnRlbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUnVsZVNldENvbnRlbnQge1xuXG4gIC8qKlxuICAgKiBSdWxlU2V0IGJvZHkgY29udGVudFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiBJUnVsZVNldEJvZHk7XG5cbiAgLyoqXG4gICAgKiBDYWxsZWQgd2hlbiB0aGUgbWF0Y2htYWtpbmcgcnVsZVNldCBpcyBpbml0aWFsaXplZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiaW5kXG4gICAgKiB0byB0aGUgc3RhY2sgYW5kIGFkZCByZXNvdXJjZXMuXG4gICAgKlxuICAgICogQHBhcmFtIF9zY29wZSBUaGUgYmluZGluZyBzY29wZS5cbiAgICAqL1xuICBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogUnVsZVNldEJvZHlDb25maWc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgbWF0Y2htYWtpbmcgcnVsZVNldCBjb250ZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZVNldENvbnRlbnRQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFJ1bGVTZXQgYm9keSBjb250ZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IHVzZSBhIGRlZmF1bHQgZW1wdHkgUnVsZVNldCBib2R5XG4gICAqL1xuICByZWFkb25seSBjb250ZW50PzogSVJ1bGVTZXRCb2R5O1xufVxuXG4vKipcbiAqIFRoZSBydWxlIHNldCBkZXRlcm1pbmVzIHRoZSB0d28ga2V5IGVsZW1lbnRzIG9mIGEgbWF0Y2g6IHlvdXIgZ2FtZSdzIHRlYW0gc3RydWN0dXJlIGFuZCBzaXplLCBhbmQgaG93IHRvIGdyb3VwIHBsYXllcnMgdG9nZXRoZXIgZm9yIHRoZSBiZXN0IHBvc3NpYmxlIG1hdGNoLlxuICpcbiAqIEZvciBleGFtcGxlLCBhIHJ1bGUgc2V0IG1pZ2h0IGRlc2NyaWJlIGEgbWF0Y2ggbGlrZSB0aGlzOlxuICogLSBDcmVhdGUgYSBtYXRjaCB3aXRoIHR3byB0ZWFtcyBvZiBmaXZlIHBsYXllcnMgZWFjaCwgb25lIHRlYW0gaXMgdGhlIGRlZmVuZGVycyBhbmQgdGhlIG90aGVyIHRlYW0gdGhlIGludmFkZXJzLlxuICogLSBBIHRlYW0gY2FuIGhhdmUgbm92aWNlIGFuZCBleHBlcmllbmNlZCBwbGF5ZXJzLCBidXQgdGhlIGF2ZXJhZ2Ugc2tpbGwgb2YgdGhlIHR3byB0ZWFtcyBtdXN0IGJlIHdpdGhpbiAxMCBwb2ludHMgb2YgZWFjaCBvdGhlci5cbiAqIC0gSWYgbm8gbWF0Y2ggaXMgbWFkZSBhZnRlciAzMCBzZWNvbmRzLCBncmFkdWFsbHkgcmVsYXggdGhlIHNraWxsIHJlcXVpcmVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bGVTZXRDb250ZW50IGltcGxlbWVudHMgSVJ1bGVTZXRDb250ZW50IHtcblxuICAvKipcbiAgICogTWF0Y2htYWtpbmcgcnVsZVNldCBib2R5IGZyb20gYSBmaWxlXG4gICAqIEByZXR1cm5zIGBSdWxlU2V0Q29udGVudEJhc2VgIGJhc2VkIG9uIEpTT04gZmlsZSBjb250ZW50LlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgcnVsZVNldCBib2R5IGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpzb25GaWxlKHBhdGg6IHN0cmluZyk6IElSdWxlU2V0Q29udGVudCB7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJ1bGVTZXQgcGF0aCBkb2VzIG5vdCBleGlzdCwgcGxlYXNlIHZlcmlmeSBpdCwgYWN0dWFsICR7cGF0aH1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWZzLmxzdGF0U3luYyhwYXRoKS5pc0ZpbGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSdWxlU2V0IHBhdGggaXMgbm90IGxpbmsgdG8gYSBzaW5nbGUgZmlsZSwgcGxlYXNlIHZlcmlmeSB5b3VyIHBhdGgsIGFjdHVhbCAke3BhdGh9YCk7XG4gICAgfVxuICAgIGNvbnN0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCk7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tSW5saW5lKGZpbGUudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5saW5lIGJvZHkgZm9yIE1hdGNobWFraW5nIHJ1bGVTZXRcbiAgICogQHJldHVybnMgYFJ1bGVTZXRDb250ZW50YCB3aXRoIGlubGluZSBjb2RlLlxuICAgKiBAcGFyYW0gYm9keSBUaGUgYWN0dWFsIHJ1bGVTZXQgYm9keSAobWF4aW11bSA2NTUzNSBjaGFyYWN0ZXJzKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSW5saW5lKGJvZHk6IHN0cmluZyk6IElSdWxlU2V0Q29udGVudCB7XG4gICAgaWYgKGJvZHkgJiYgYm9keS5sZW5ndGggPiA2NTUzNSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSdWxlU2V0IGJvZHkgY2Fubm90IGV4Y2VlZCA2NTUzNSBjaGFyYWN0ZXJzLCBhY3R1YWwgJHtib2R5Lmxlbmd0aH1gKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgUnVsZVNldENvbnRlbnQoe1xuICAgICAgICBjb250ZW50OiBKU09OLnBhcnNlKGJvZHkpLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1J1bGVTZXQgYm9keSBoYXMgYW4gaW52YWxpZCBKc29uIGZvcm1hdCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdWxlU2V0IGJvZHkgY29udGVudFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnQ6IElSdWxlU2V0Qm9keTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUnVsZVNldENvbnRlbnRQcm9wcykge1xuICAgIHRoaXMuY29udGVudCA9IHByb3BzLmNvbnRlbnQgfHwge307XG4gIH1cblxuICAvKipcbiAgICAqIENhbGxlZCB3aGVuIHRoZSBtYXRjaG1ha2luZyBydWxlU2V0IGlzIGluaXRpYWxpemVkIHRvIGFsbG93IHRoaXMgb2JqZWN0IHRvIGJpbmRcbiAgICAqIHRvIHRoZSBzdGFjayBhbmQgYWRkIHJlc291cmNlcy5cbiAgICAqXG4gICAgKiBAcGFyYW0gX3Njb3BlIFRoZSBiaW5kaW5nIHNjb3BlLlxuICAgICovXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogUnVsZVNldEJvZHlDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBydWxlU2V0Qm9keTogSlNPTi5zdHJpbmdpZnkodGhpcy5jb250ZW50KSxcbiAgICB9O1xuICB9XG59Il19
@@ -16,7 +16,7 @@ class MatchmakingRuleSetBase extends cdk.Resource {
16
16
  namespace: 'AWS/GameLift',
17
17
  metricName: metricName,
18
18
  dimensionsMap: {
19
- FleetId: this.matchmakingRuleSetName,
19
+ MatchmakingRuleSetName: this.matchmakingRuleSetName,
20
20
  },
21
21
  ...props,
22
22
  }).attachTo(this);
@@ -30,7 +30,7 @@ class MatchmakingRuleSetBase extends cdk.Resource {
30
30
  }
31
31
  exports.MatchmakingRuleSetBase = MatchmakingRuleSetBase;
32
32
  _a = JSII_RTTI_SYMBOL_1;
33
- MatchmakingRuleSetBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSetBase", version: "2.59.0-alpha.0" };
33
+ MatchmakingRuleSetBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSetBase", version: "2.60.0-alpha.0" };
34
34
  /**
35
35
  * Creates a new rule set for FlexMatch matchmaking.
36
36
  *
@@ -135,5 +135,5 @@ class MatchmakingRuleSet extends MatchmakingRuleSetBase {
135
135
  }
136
136
  exports.MatchmakingRuleSet = MatchmakingRuleSet;
137
137
  _b = JSII_RTTI_SYMBOL_1;
138
- MatchmakingRuleSet[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSet", version: "2.59.0-alpha.0" };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2htYWtpbmctcnVsZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hdGNobWFraW5nLXJ1bGVzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseURBQXlEO0FBQ3pELG1DQUFtQztBQUVuQywyREFBaUU7QUFxRmpFOztHQUVHO0FBQ0gsTUFBc0Isc0JBQXVCLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFXeEQsTUFBTSxDQUFDLFVBQWtCLEVBQUUsS0FBZ0M7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLGNBQWM7WUFDekIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsYUFBYSxFQUFFO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCO2FBQ3JDO1lBQ0QsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuQjtJQUVNLDJCQUEyQixDQUFDLEtBQWdDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNwRDtJQUNNLDJCQUEyQixDQUFDLEtBQWdDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNwRDs7QUEzQkgsd0RBNEJDOzs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLHNCQUFzQjtJQTJENUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsc0JBQXNCO1NBQzNDLENBQUMsQ0FBQzs7Ozs7OytDQTlETSxrQkFBa0I7Ozs7UUFnRTNCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUN6RCxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxLQUFLLENBQUMsc0JBQXNCLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQzthQUNsSTtZQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxzQkFBc0IsZ0ZBQWdGLENBQUMsQ0FBQzthQUMvSTtTQUNGO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQ0FBcUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNELElBQUksRUFBRSxLQUFLLENBQUMsc0JBQXNCO1lBQ2xDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztTQUNqQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUUsT0FBTyxFQUFFLFVBQVU7WUFDbkIsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CO1NBQzdDLENBQUMsQ0FBQztLQUNKO0lBckZEOztTQUVLO0lBQ0wsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLHNCQUE4QjtRQUM1RixPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0tBQ3JGO0lBRUQ7O1NBRUs7SUFDTCxNQUFNLENBQUMseUJBQXlCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUscUJBQTZCO1FBQzFGLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7S0FDcEY7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQzs7Ozs7Ozs7OztRQUN2RyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUMseUdBQXlHLENBQUMsQ0FBQztTQUM1SDtRQUNELE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQjtZQUN6RCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFzQixFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFN0csSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7U0FDckc7UUFFRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekYsT0FBTyxFQUFFLFVBQVU7WUFDbkIsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUMxQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFPLFNBQVEsc0JBQXNCO1lBSXpDLFlBQVksQ0FBWSxFQUFFLENBQVM7Z0JBQ2pDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNWLGtCQUFrQixFQUFFLHFCQUFxQjtpQkFDMUMsQ0FBQyxDQUFDO2dCQU5XLDJCQUFzQixHQUFHLHNCQUF1QixDQUFDO2dCQUNqRCwwQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztZQU05RCxDQUFDO1NBQ0Y7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5Qjs7QUEvQ0gsZ0RBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5NYXRjaG1ha2luZ1J1bGVTZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2FtZWxpZnQnO1xuaW1wb3J0IHsgUnVsZVNldENvbnRlbnQgfSBmcm9tICcuL21hdGNobWFraW5nLXJ1bGVzZXQtYm9keSc7XG5cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgR2FtZWxpZnQgbWF0Y2htYWtpbmcgcnVsZXNldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElNYXRjaG1ha2luZ1J1bGVTZXQgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgcnVsZVNldC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBydWxlU2V0LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgbWF0Y2htYWtpbmcgcnVsZVNldC5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJ1bGUgZXZhbHVhdGlvbnMgZHVyaW5nIHRoZSBtYXRjaG1ha2luZyBwcm9jZXNzIHRoYXQgcGFzc2VkIHNpbmNlIHRoZSBsYXN0IHJlcG9ydC5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgbGltaXRlZCB0byB0aGUgdG9wIDUwIHJ1bGVzLlxuICAgKi9cbiAgbWV0cmljUnVsZUV2YWx1YXRpb25zUGFzc2VkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cblxuICAvKipcbiAgICogUnVsZSBldmFsdWF0aW9ucyBkdXJpbmcgbWF0Y2htYWtpbmcgdGhhdCBmYWlsZWQgc2luY2UgdGhlIGxhc3QgcmVwb3J0LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBsaW1pdGVkIHRvIHRoZSB0b3AgNTAgcnVsZXMuXG4gICAqL1xuICBtZXRyaWNSdWxlRXZhbHVhdGlvbnNGYWlsZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBtYXRjaG1ha2luZyBydWxlU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2htYWtpbmdSdWxlU2V0UHJvcHMge1xuICAvKipcbiAgICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWF0Y2htYWtpbmcgcnVsZSBzZXQuXG4gICAgICogQSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIGlkZW50aWZpZXMgdGhlIHJ1bGUgc2V0IGl0IHVzZXMgYnkgdGhpcyBuYW1lIHZhbHVlLlxuICAgICAqXG4gICAgICogTm90ZTogdGhlIHJ1bGUgc2V0IG5hbWUgaXMgZGlmZmVyZW50IGZyb20gdGhlIG9wdGlvbmFsIG5hbWUgZmllbGQgaW4gdGhlIHJ1bGUgc2V0IGJvZHlcbiAgICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgbWF0Y2htYWtpbmcgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiBSdWxlU2V0Q29udGVudDtcbn1cblxuLyoqXG4gKiBBIGZ1bGwgc3BlY2lmaWNhdGlvbiBvZiBhIG1hdGNobWFraW5nIHJ1bGVTZXQgdGhhdCBjYW4gYmUgdXNlZCB0byBpbXBvcnQgaXQgZmx1ZW50bHkgaW50byB0aGUgQ0RLIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdGNobWFraW5nUnVsZVNldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICAgICAqIFRoZSBBUk4gb2YgdGhlIG1hdGNobWFraW5nIHJ1bGVTZXRcbiAgICAgICAqXG4gICAgICAgKiBBdCBsZWFzdCBvbmUgb2YgYG1hdGNobWFraW5nUnVsZVNldEFybmAgYW5kIGBtYXRjaG1ha2luZ1J1bGVTZXROYW1lYCBtdXN0IGJlIHByb3ZpZGVkLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZWAuXG4gICAgICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgbWF0Y2htYWtpbmcgcnVsZVNldFxuICAgICAqXG4gICAgICogQXQgbGVhc3Qgb25lIG9mIGBydWxlU2V0TmFtZWAgYW5kIGBtYXRjaG1ha2luZ1J1bGVTZXRBcm5gICBtdXN0IGJlIHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZGVyaXZlZCBmcm9tIGBtYXRjaG1ha2luZ1J1bGVTZXRBcm5gLlxuICAgICAqL1xuICByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgbmV3IGFuZCBpbXBvcnRlZCBHYW1lTGlmdCBtYXRjaG1ha2luZyBydWxlU2V0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWF0Y2htYWtpbmdSdWxlU2V0QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElNYXRjaG1ha2luZ1J1bGVTZXQge1xuXG4gIC8qKlxuICAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBydWxlU2V0LlxuICAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBydWxlU2V0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG1hdGNobWFraW5nUnVsZVNldEFybjogc3RyaW5nO1xuXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9HYW1lTGlmdCcsXG4gICAgICBtZXRyaWNOYW1lOiBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBGbGVldElkOiB0aGlzLm1hdGNobWFraW5nUnVsZVNldE5hbWUsXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljUnVsZUV2YWx1YXRpb25zUGFzc2VkKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnUnVsZUV2YWx1YXRpb25zUGFzc2VkJywgcHJvcHMpO1xuICB9XG4gIHB1YmxpYyBtZXRyaWNSdWxlRXZhbHVhdGlvbnNGYWlsZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdSdWxlRXZhbHVhdGlvbnNGYWlsZWQnLCBwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHJ1bGUgc2V0IGZvciBGbGV4TWF0Y2ggbWF0Y2htYWtpbmcuXG4gKlxuICogVGhlIHJ1bGUgc2V0IGRldGVybWluZXMgdGhlIHR3byBrZXkgZWxlbWVudHMgb2YgYSBtYXRjaDogeW91ciBnYW1lJ3MgdGVhbSBzdHJ1Y3R1cmUgYW5kIHNpemUsIGFuZCBob3cgdG8gZ3JvdXAgcGxheWVycyB0b2dldGhlciBmb3IgdGhlIGJlc3QgcG9zc2libGUgbWF0Y2guXG4gKlxuICogRm9yIGV4YW1wbGUsIGEgcnVsZSBzZXQgbWlnaHQgZGVzY3JpYmUgYSBtYXRjaCBsaWtlIHRoaXM6XG4gKiAgLSBDcmVhdGUgYSBtYXRjaCB3aXRoIHR3byB0ZWFtcyBvZiBmaXZlIHBsYXllcnMgZWFjaCwgb25lIHRlYW0gaXMgdGhlIGRlZmVuZGVycyBhbmQgdGhlIG90aGVyIHRlYW0gdGhlIGludmFkZXJzLlxuICogIC0gQSB0ZWFtIGNhbiBoYXZlIG5vdmljZSBhbmQgZXhwZXJpZW5jZWQgcGxheWVycywgYnV0IHRoZSBhdmVyYWdlIHNraWxsIG9mIHRoZSB0d28gdGVhbXMgbXVzdCBiZSB3aXRoaW4gMTAgcG9pbnRzIG9mIGVhY2ggb3RoZXIuXG4gKiAgLSBJZiBubyBtYXRjaCBpcyBtYWRlIGFmdGVyIDMwIHNlY29uZHMsIGdyYWR1YWxseSByZWxheCB0aGUgc2tpbGwgcmVxdWlyZW1lbnRzLlxuICpcbiAqIFJ1bGUgc2V0cyBtdXN0IGJlIGRlZmluZWQgaW4gdGhlIHNhbWUgUmVnaW9uIGFzIHRoZSBtYXRjaG1ha2luZyBjb25maWd1cmF0aW9uIHRoZXkgYXJlIHVzZWQgd2l0aC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZmxleG1hdGNoZ3VpZGUvbWF0Y2gtcnVsZXNldHMuaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpNYXRjaG1ha2luZ1J1bGVTZXRcbiAqL1xuZXhwb3J0IGNsYXNzIE1hdGNobWFraW5nUnVsZVNldCBleHRlbmRzIE1hdGNobWFraW5nUnVsZVNldEJhc2Uge1xuXG4gIC8qKlxuICAgICAqIEltcG9ydCBhIHJ1bGVTZXQgaW50byBDREsgdXNpbmcgaXRzIG5hbWVcbiAgICAgKi9cbiAgc3RhdGljIGZyb21NYXRjaG1ha2luZ1J1bGVTZXROYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG1hdGNobWFraW5nUnVsZVNldE5hbWU6IHN0cmluZyk6IElNYXRjaG1ha2luZ1J1bGVTZXQge1xuICAgIHJldHVybiB0aGlzLmZyb21NYXRjaG1ha2luZ1J1bGVTZXRBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBtYXRjaG1ha2luZ1J1bGVTZXROYW1lIH0pO1xuICB9XG5cbiAgLyoqXG4gICAgICogSW1wb3J0IGEgcnVsZVNldCBpbnRvIENESyB1c2luZyBpdHMgQVJOXG4gICAgICovXG4gIHN0YXRpYyBmcm9tTWF0Y2htYWtpbmdSdWxlU2V0QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG1hdGNobWFraW5nUnVsZVNldEFybjogc3RyaW5nKTogSU1hdGNobWFraW5nUnVsZVNldCB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU1hdGNobWFraW5nUnVsZVNldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IG1hdGNobWFraW5nUnVsZVNldEFybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbWF0Y2htYWtpbmcgcnVsZVNldCBmcm9tIGl0cyBhdHRyaWJ1dGVzLlxuICAgKi9cbiAgc3RhdGljIGZyb21NYXRjaG1ha2luZ1J1bGVTZXRBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBNYXRjaG1ha2luZ1J1bGVTZXRBdHRyaWJ1dGVzKTogSU1hdGNobWFraW5nUnVsZVNldCB7XG4gICAgaWYgKCFhdHRycy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lICYmICFhdHRycy5tYXRjaG1ha2luZ1J1bGVTZXRBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIG1hdGNobWFraW5nUnVsZVNldE5hbWUgb3IgbWF0Y2htYWtpbmdSdWxlU2V0QXJuIG11c3QgYmUgcHJvdmlkZWQgaW4gTWF0Y2htYWtpbmdSdWxlU2V0QXR0cmlidXRlcycpO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaG1ha2luZ1J1bGVTZXROYW1lID0gYXR0cnMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSA/P1xuICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihhdHRycy5tYXRjaG1ha2luZ1J1bGVTZXRBcm4hLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcblxuICAgIGlmICghbWF0Y2htYWtpbmdSdWxlU2V0TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaG1ha2luZyBydWxlU2V0IGlkZW50aWZpZXIgZm91bmQgaW4gQVJOOiAnJHthdHRycy5tYXRjaG1ha2luZ1J1bGVTZXRBcm59J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNobWFraW5nUnVsZVNldEFybiA9IGF0dHJzLm1hdGNobWFraW5nUnVsZVNldEFybiA/PyBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2FtZWxpZnQnLFxuICAgICAgcmVzb3VyY2U6ICdtYXRjaG1ha2luZ3J1bGVzZXQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBhdHRycy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgTWF0Y2htYWtpbmdSdWxlU2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZSA9IG1hdGNobWFraW5nUnVsZVNldE5hbWUhO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1hdGNobWFraW5nUnVsZVNldEFybiA9IG1hdGNobWFraW5nUnVsZVNldEFybjtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSwge1xuICAgICAgICAgIGVudmlyb25tZW50RnJvbUFybjogbWF0Y2htYWtpbmdSdWxlU2V0QXJuLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHJ1bGVTZXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIEFSTiBvZiB0aGUgcnVsZVNldC5cbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0QXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1hdGNobWFraW5nUnVsZVNldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLm1hdGNobWFraW5nUnVsZVNldE5hbWUsXG4gICAgfSk7XG5cbiAgICBpZiAoIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJ1bGVTZXQgbmFtZSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lLmxlbmd0aH0gY2hhcmFjdGVycy5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCEvXlthLXpBLVowLTktXFwuXSskLy50ZXN0KHByb3BzLm1hdGNobWFraW5nUnVsZVNldE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUnVsZVNldCBuYW1lICR7cHJvcHMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZX0gY2FuIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBoeXBoZW5zLCBiYWNrIHNsYXNoIG9yIGRvdCB3aXRoIG5vIHNwYWNlcy5gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY29udGVudCA9IHByb3BzLmNvbnRlbnQuYmluZCh0aGlzKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbk1hdGNobWFraW5nUnVsZVNldCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lLFxuICAgICAgcnVsZVNldEJvZHk6IGNvbnRlbnQucnVsZVNldEJvZHksXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hdGNobWFraW5nUnVsZVNldE5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShyZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMubWF0Y2htYWtpbmdSdWxlU2V0QXJuID0gdGhpcy5nZXRSZXNvdXJjZUFybkF0dHJpYnV0ZShyZXNvdXJjZS5hdHRyQXJuLCB7XG4gICAgICBzZXJ2aWNlOiAnZ2FtZWxpZnQnLFxuICAgICAgcmVzb3VyY2U6ICdtYXRjaG1ha2luZ3J1bGVzZXQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICB9XG5cblxufSJdfQ==
138
+ MatchmakingRuleSet[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.MatchmakingRuleSet", version: "2.60.0-alpha.0" };
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2htYWtpbmctcnVsZXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1hdGNobWFraW5nLXJ1bGVzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseURBQXlEO0FBQ3pELG1DQUFtQztBQUVuQywyREFBaUU7QUFxRmpFOztHQUVHO0FBQ0gsTUFBc0Isc0JBQXVCLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFXeEQsTUFBTSxDQUFDLFVBQWtCLEVBQUUsS0FBZ0M7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsU0FBUyxFQUFFLGNBQWM7WUFDekIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsYUFBYSxFQUFFO2dCQUNiLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7YUFDcEQ7WUFDRCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ25CO0lBRU0sMkJBQTJCLENBQUMsS0FBZ0M7UUFDakUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3BEO0lBQ00sMkJBQTJCLENBQUMsS0FBZ0M7UUFDakUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3BEOztBQTNCSCx3REE0QkM7OztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsc0JBQXNCO0lBMkQ1RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxzQkFBc0I7U0FDM0MsQ0FBQyxDQUFDOzs7Ozs7K0NBOURNLGtCQUFrQjs7OztRQWdFM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FB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WUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ1Ysa0JBQWtCLEVBQUUscUJBQXFCO2lCQUMxQyxDQUFDLENBQUM7Z0JBTlcsMkJBQXNCLEdBQUcsc0JBQXVCLENBQUM7Z0JBQ2pELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1lBTTlELENBQUM7U0FDRjtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCOztBQS9DSCxnREEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbk1hdGNobWFraW5nUnVsZVNldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdCc7XG5pbXBvcnQgeyBSdWxlU2V0Q29udGVudCB9IGZyb20gJy4vbWF0Y2htYWtpbmctcnVsZXNldC1ib2R5JztcblxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBHYW1lbGlmdCBtYXRjaG1ha2luZyBydWxlc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1hdGNobWFraW5nUnVsZVNldCBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBydWxlU2V0LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHJ1bGVTZXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nUnVsZVNldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBtYXRjaG1ha2luZyBydWxlU2V0LlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogUnVsZSBldmFsdWF0aW9ucyBkdXJpbmcgdGhlIG1hdGNobWFraW5nIHByb2Nlc3MgdGhhdCBwYXNzZWQgc2luY2UgdGhlIGxhc3QgcmVwb3J0LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBsaW1pdGVkIHRvIHRoZSB0b3AgNTAgcnVsZXMuXG4gICAqL1xuICBtZXRyaWNSdWxlRXZhbHVhdGlvbnNQYXNzZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuXG4gIC8qKlxuICAgKiBSdWxlIGV2YWx1YXRpb25zIGR1cmluZyBtYXRjaG1ha2luZyB0aGF0IGZhaWxlZCBzaW5jZSB0aGUgbGFzdCByZXBvcnQuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGlzIGxpbWl0ZWQgdG8gdGhlIHRvcCA1MCBydWxlcy5cbiAgICovXG4gIG1ldHJpY1J1bGVFdmFsdWF0aW9uc0ZhaWxlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IG1hdGNobWFraW5nIHJ1bGVTZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRjaG1ha2luZ1J1bGVTZXRQcm9wcyB7XG4gIC8qKlxuICAgICAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtYXRjaG1ha2luZyBydWxlIHNldC5cbiAgICAgKiBBIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gaWRlbnRpZmllcyB0aGUgcnVsZSBzZXQgaXQgdXNlcyBieSB0aGlzIG5hbWUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBOb3RlOiB0aGUgcnVsZSBzZXQgbmFtZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3B0aW9uYWwgbmFtZSBmaWVsZCBpbiB0aGUgcnVsZSBzZXQgYm9keVxuICAgICAqL1xuICByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBtYXRjaG1ha2luZyBydWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IFJ1bGVTZXRDb250ZW50O1xufVxuXG4vKipcbiAqIEEgZnVsbCBzcGVjaWZpY2F0aW9uIG9mIGEgbWF0Y2htYWtpbmcgcnVsZVNldCB0aGF0IGNhbiBiZSB1c2VkIHRvIGltcG9ydCBpdCBmbHVlbnRseSBpbnRvIHRoZSBDREsgYXBwbGljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2htYWtpbmdSdWxlU2V0QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgICAgICogVGhlIEFSTiBvZiB0aGUgbWF0Y2htYWtpbmcgcnVsZVNldFxuICAgICAgICpcbiAgICAgICAqIEF0IGxlYXN0IG9uZSBvZiBgbWF0Y2htYWtpbmdSdWxlU2V0QXJuYCBhbmQgYG1hdGNobWFraW5nUnVsZVNldE5hbWVgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAgICAgKlxuICAgICAgICogQGRlZmF1bHQgZGVyaXZlZCBmcm9tIGBtYXRjaG1ha2luZ1J1bGVTZXROYW1lYC5cbiAgICAgICAqL1xuICByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXRBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBtYXRjaG1ha2luZyBydWxlU2V0XG4gICAgICpcbiAgICAgKiBBdCBsZWFzdCBvbmUgb2YgYHJ1bGVTZXROYW1lYCBhbmQgYG1hdGNobWFraW5nUnVsZVNldEFybmAgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gYG1hdGNobWFraW5nUnVsZVNldEFybmAuXG4gICAgICovXG4gIHJlYWRvbmx5IG1hdGNobWFraW5nUnVsZVNldE5hbWU/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBuZXcgYW5kIGltcG9ydGVkIEdhbWVMaWZ0IG1hdGNobWFraW5nIHJ1bGVTZXQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYXRjaG1ha2luZ1J1bGVTZXRCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSU1hdGNobWFraW5nUnVsZVNldCB7XG5cbiAgLyoqXG4gICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHJ1bGVTZXQuXG4gICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG1hdGNobWFraW5nUnVsZVNldE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHJ1bGVTZXQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0QXJuOiBzdHJpbmc7XG5cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0dhbWVMaWZ0JyxcbiAgICAgIG1ldHJpY05hbWU6IG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIE1hdGNobWFraW5nUnVsZVNldE5hbWU6IHRoaXMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNSdWxlRXZhbHVhdGlvbnNQYXNzZWQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdSdWxlRXZhbHVhdGlvbnNQYXNzZWQnLCBwcm9wcyk7XG4gIH1cbiAgcHVibGljIG1ldHJpY1J1bGVFdmFsdWF0aW9uc0ZhaWxlZChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1J1bGVFdmFsdWF0aW9uc0ZhaWxlZCcsIHByb3BzKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgcnVsZSBzZXQgZm9yIEZsZXhNYXRjaCBtYXRjaG1ha2luZy5cbiAqXG4gKiBUaGUgcnVsZSBzZXQgZGV0ZXJtaW5lcyB0aGUgdHdvIGtleSBlbGVtZW50cyBvZiBhIG1hdGNoOiB5b3VyIGdhbWUncyB0ZWFtIHN0cnVjdHVyZSBhbmQgc2l6ZSwgYW5kIGhvdyB0byBncm91cCBwbGF5ZXJzIHRvZ2V0aGVyIGZvciB0aGUgYmVzdCBwb3NzaWJsZSBtYXRjaC5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgYSBydWxlIHNldCBtaWdodCBkZXNjcmliZSBhIG1hdGNoIGxpa2UgdGhpczpcbiAqICAtIENyZWF0ZSBhIG1hdGNoIHdpdGggdHdvIHRlYW1zIG9mIGZpdmUgcGxheWVycyBlYWNoLCBvbmUgdGVhbSBpcyB0aGUgZGVmZW5kZXJzIGFuZCB0aGUgb3RoZXIgdGVhbSB0aGUgaW52YWRlcnMuXG4gKiAgLSBBIHRlYW0gY2FuIGhhdmUgbm92aWNlIGFuZCBleHBlcmllbmNlZCBwbGF5ZXJzLCBidXQgdGhlIGF2ZXJhZ2Ugc2tpbGwgb2YgdGhlIHR3byB0ZWFtcyBtdXN0IGJlIHdpdGhpbiAxMCBwb2ludHMgb2YgZWFjaCBvdGhlci5cbiAqICAtIElmIG5vIG1hdGNoIGlzIG1hZGUgYWZ0ZXIgMzAgc2Vjb25kcywgZ3JhZHVhbGx5IHJlbGF4IHRoZSBza2lsbCByZXF1aXJlbWVudHMuXG4gKlxuICogUnVsZSBzZXRzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBSZWdpb24gYXMgdGhlIG1hdGNobWFraW5nIGNvbmZpZ3VyYXRpb24gdGhleSBhcmUgdXNlZCB3aXRoLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9mbGV4bWF0Y2hndWlkZS9tYXRjaC1ydWxlc2V0cy5odG1sXG4gKlxuICogQHJlc291cmNlIEFXUzo6R2FtZUxpZnQ6Ok1hdGNobWFraW5nUnVsZVNldFxuICovXG5leHBvcnQgY2xhc3MgTWF0Y2htYWtpbmdSdWxlU2V0IGV4dGVuZHMgTWF0Y2htYWtpbmdSdWxlU2V0QmFzZSB7XG5cbiAgLyoqXG4gICAgICogSW1wb3J0IGEgcnVsZVNldCBpbnRvIENESyB1c2luZyBpdHMgbmFtZVxuICAgICAqL1xuICBzdGF0aWMgZnJvbU1hdGNobWFraW5nUnVsZVNldE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZTogc3RyaW5nKTogSU1hdGNobWFraW5nUnVsZVNldCB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU1hdGNobWFraW5nUnVsZVNldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IG1hdGNobWFraW5nUnVsZVNldE5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICAgKiBJbXBvcnQgYSBydWxlU2V0IGludG8gQ0RLIHVzaW5nIGl0cyBBUk5cbiAgICAgKi9cbiAgc3RhdGljIGZyb21NYXRjaG1ha2luZ1J1bGVTZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbWF0Y2htYWtpbmdSdWxlU2V0QXJuOiBzdHJpbmcpOiBJTWF0Y2htYWtpbmdSdWxlU2V0IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tTWF0Y2htYWtpbmdSdWxlU2V0QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgbWF0Y2htYWtpbmdSdWxlU2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBtYXRjaG1ha2luZyBydWxlU2V0IGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbU1hdGNobWFraW5nUnVsZVNldEF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IE1hdGNobWFraW5nUnVsZVNldEF0dHJpYnV0ZXMpOiBJTWF0Y2htYWtpbmdSdWxlU2V0IHtcbiAgICBpZiAoIWF0dHJzLm1hdGNobWFraW5nUnVsZVNldE5hbWUgJiYgIWF0dHJzLm1hdGNobWFraW5nUnVsZVNldEFybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgbWF0Y2htYWtpbmdSdWxlU2V0TmFtZSBvciBtYXRjaG1ha2luZ1J1bGVTZXRBcm4gbXVzdCBiZSBwcm92aWRlZCBpbiBNYXRjaG1ha2luZ1J1bGVTZXRBdHRyaWJ1dGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IG1hdGNobWFraW5nUnVsZVNldE5hbWUgPSBhdHRycy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lID8/XG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKGF0dHJzLm1hdGNobWFraW5nUnVsZVNldEFybiEsIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuXG4gICAgaWYgKCFtYXRjaG1ha2luZ1J1bGVTZXROYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1hdGNobWFraW5nIHJ1bGVTZXQgaWRlbnRpZmllciBmb3VuZCBpbiBBUk46ICcke2F0dHJzLm1hdGNobWFraW5nUnVsZVNldEFybn0nYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2htYWtpbmdSdWxlU2V0QXJuID0gYXR0cnMubWF0Y2htYWtpbmdSdWxlU2V0QXJuID8/IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ21hdGNobWFraW5ncnVsZXNldCcsXG4gICAgICByZXNvdXJjZU5hbWU6IGF0dHJzLm1hdGNobWFraW5nUnVsZVNldE5hbWUsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBNYXRjaG1ha2luZ1J1bGVTZXRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lID0gbWF0Y2htYWtpbmdSdWxlU2V0TmFtZSE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWF0Y2htYWtpbmdSdWxlU2V0QXJuID0gbWF0Y2htYWtpbmdSdWxlU2V0QXJuO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7XG4gICAgICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBtYXRjaG1ha2luZ1J1bGVTZXRBcm4sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgcnVsZVNldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgQVJOIG9mIHRoZSBydWxlU2V0LlxuICAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXRjaG1ha2luZ1J1bGVTZXRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWF0Y2htYWtpbmdSdWxlU2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSxcbiAgICB9KTtcblxuICAgIGlmICghY2RrLlRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lKSkge1xuICAgICAgaWYgKHByb3BzLm1hdGNobWFraW5nUnVsZVNldE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUnVsZVNldCBuYW1lIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMTI4IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLm1hdGNobWFraW5nUnVsZVNldE5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIS9eW2EtekEtWjAtOS1cXC5dKyQvLnRlc3QocHJvcHMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSdWxlU2V0IG5hbWUgJHtwcm9wcy5tYXRjaG1ha2luZ1J1bGVTZXROYW1lfSBjYW4gY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGh5cGhlbnMsIGJhY2sgc2xhc2ggb3IgZG90IHdpdGggbm8gc3BhY2VzLmApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb250ZW50ID0gcHJvcHMuY29udGVudC5iaW5kKHRoaXMpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuTWF0Y2htYWtpbmdSdWxlU2V0KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLm1hdGNobWFraW5nUnVsZVNldE5hbWUsXG4gICAgICBydWxlU2V0Qm9keTogY29udGVudC5ydWxlU2V0Qm9keSxcbiAgICB9KTtcblxuICAgIHRoaXMubWF0Y2htYWtpbmdSdWxlU2V0TmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5tYXRjaG1ha2luZ1J1bGVTZXRBcm4gPSB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHJlc291cmNlLmF0dHJBcm4sIHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ21hdGNobWFraW5ncnVsZXNldCcsXG4gICAgICByZXNvdXJjZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuXG59Il19
@@ -0,0 +1,94 @@
1
+ import * as sns from 'aws-cdk-lib/aws-sns';
2
+ import { Construct } from 'constructs';
3
+ import { IGameSessionQueue } from './game-session-queue';
4
+ import { MatchmakingConfigurationProps, GameProperty, MatchmakingConfigurationBase, IMatchmakingConfiguration } from './matchmaking-configuration';
5
+ /**
6
+ * Properties for a new queued matchmaking configuration
7
+ */
8
+ export interface QueuedMatchmakingConfigurationProps extends MatchmakingConfigurationProps {
9
+ /**
10
+ * The number of player slots in a match to keep open for future players.
11
+ * For example, if the configuration's rule set specifies a match for a single 12-person team, and the additional player count is set to 2, only 10 players are selected for the match.
12
+ *
13
+ * @default no additional player slots
14
+ */
15
+ readonly additionalPlayerCount?: number;
16
+ /**
17
+ * The method used to backfill game sessions that are created with this matchmaking configuration.
18
+ * - Choose manual when your game manages backfill requests manually or does not use the match backfill feature.
19
+ * - Otherwise backfill is settled to automatic to have GameLift create a `StartMatchBackfill` request whenever a game session has one or more open slots.
20
+ *
21
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html
22
+ *
23
+ * @default automatic backfill mode
24
+ */
25
+ readonly manualBackfillMode?: boolean;
26
+ /**
27
+ * A set of custom properties for a game session, formatted as key-value pairs.
28
+ * These properties are passed to a game server process with a request to start a new game session.
29
+ *
30
+ * @see https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession
31
+ *
32
+ * @default no additional game properties
33
+ */
34
+ readonly gameProperties?: GameProperty[];
35
+ /**
36
+ * A set of custom game session properties, formatted as a single string value.
37
+ * This data is passed to a game server process with a request to start a new game session.
38
+ *
39
+ * @see https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession
40
+ *
41
+ * @default no additional game session data
42
+ */
43
+ readonly gameSessionData?: string;
44
+ /**
45
+ * Queues are used to start new GameLift-hosted game sessions for matches that are created with this matchmaking configuration.
46
+ *
47
+ * Queues can be located in any Region.
48
+ */
49
+ readonly gameSessionQueues: IGameSessionQueue[];
50
+ }
51
+ /**
52
+ * A FlexMatch matchmaker process does the work of building a game match.
53
+ * It manages the pool of matchmaking requests received, forms teams for a match, processes and selects players to find the best possible player groups, and initiates the process of placing and starting a game session for the match.
54
+ * This topic describes the key aspects of a matchmaker and how to configure one customized for your game.
55
+ *
56
+ * @see https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-configuration.html
57
+ *
58
+ * @resource AWS::GameLift::MatchmakingConfiguration
59
+ */
60
+ export declare class QueuedMatchmakingConfiguration extends MatchmakingConfigurationBase {
61
+ /**
62
+ * Import an existing matchmaking configuration from its name.
63
+ */
64
+ static fromQueuedMatchmakingConfigurationName(scope: Construct, id: string, matchmakingConfigurationName: string): IMatchmakingConfiguration;
65
+ /**
66
+ * Import an existing matchmaking configuration from its ARN.
67
+ */
68
+ static fromQueuedMatchmakingConfigurationArn(scope: Construct, id: string, matchmakingConfigurationArn: string): IMatchmakingConfiguration;
69
+ /**
70
+ * The name of the matchmaking configuration.
71
+ */
72
+ readonly matchmakingConfigurationName: string;
73
+ /**
74
+ * The ARN of the matchmaking configuration.
75
+ */
76
+ readonly matchmakingConfigurationArn: string;
77
+ /**
78
+ * The notification target for matchmaking events
79
+ */
80
+ readonly notificationTarget?: sns.ITopic;
81
+ /**
82
+ * A list of game session queue destinations
83
+ */
84
+ private readonly gameSessionQueues;
85
+ constructor(scope: Construct, id: string, props: QueuedMatchmakingConfigurationProps);
86
+ /**
87
+ * Adds a game session queue destination to the matchmaking configuration.
88
+ *
89
+ * @param gameSessionQueue A game session queue
90
+ */
91
+ addGameSessionQueue(gameSessionQueue: IGameSessionQueue): void;
92
+ private parseGameSessionQueues;
93
+ private parseGameProperties;
94
+ }