@mountainpass/problem-document 0.0.54 → 0.0.56

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.
@@ -1,17 +1,3 @@
1
1
  {
2
- "exclude": {
3
- "@types/jest": "Pinned to jest 27.x; upgrade requires jest 29+ migration",
4
- "eslint": "Pinned to ^8; upgrade to 9+ requires flat config migration and plugin compatibility",
5
- "eslint-config-prettier": "Major version upgrade; blocked by eslint 8.x constraint",
6
- "eslint-import-resolver-node": "Pinned by eslint-plugin-import compatibility",
7
- "eslint-import-resolver-typescript": "Major version upgrade; blocked by eslint 8.x constraint",
8
- "eslint-plugin-import": "Pinned by eslint 8.x compatibility",
9
- "eslint-plugin-jsdoc": "Major version upgrade; blocked by eslint 8.x constraint",
10
- "eslint-plugin-jsonc": "Major version upgrade; blocked by eslint 8.x constraint",
11
- "eslint-plugin-no-secrets": "Major version upgrade; blocked by eslint 8.x constraint",
12
- "eslint-plugin-unicorn": "Major version upgrade; blocked by eslint 8.x constraint",
13
- "jest": "Pinned to ^27; upgrade requires ts-jest migration",
14
- "jest-junit": "Major version upgrade; blocked by jest 27.x constraint",
15
- "ts-jest": "Pinned to jest 27.x; upgrade requires jest migration"
16
- }
2
+ "exclude": {}
17
3
  }
@@ -2,4 +2,6 @@ deps
2
2
  mergify
3
3
  npx
4
4
  projen
5
+ tseslint
6
+ vars
5
7
  yarnrc
package/README.md CHANGED
@@ -7,7 +7,6 @@ A basic [RFC7807](https://datatracker.ietf.org/doc/html/rfc7807) Problem Details
7
7
 
8
8
  [![Build Status](https://img.shields.io/github/workflow/status/mountain-pass/problem-document/release?logo=github)](https://github.com/mountain-pass/problem-document/actions/workflows/release.yml) [![GitHub issues](https://img.shields.io/github/issues/mountain-pass/problem-document?logo=github)](https://github.com/mountain-pass/problem-document/issues) [![GitHub pull requests](https://img.shields.io/github/issues-pr/mountain-pass/problem-document?logo=github)](https://github.com/mountain-pass/problem-document/pulls)
9
9
 
10
- <!-- [![Quality](https://img.shields.io/codacy/grade/940768d54f7545f7b42f89b26c23c751?logo=codacy)](https://www.codacy.com/gh/mountain-pass/problem-document/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=mountain-pass/problem-document&amp;utm_campaign=Badge_Grade) [![Coverage](https://img.shields.io/codacy/coverage/940768d54f7545f7b42f89b26c23c751?logo=codacy)](https://www.codacy.com/gh/mountain-pass/problem-document/dashboard?utm_source=github.com&utm_medium=referral&utm_content=mountain-pass/problem-document&utm_campaign=Badge_Coverage) -->
11
10
 
12
11
  [![source code vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/mountain-pass/problem-document?label=source%20code%20vulnerabilities&logo=snyk)](https://snyk.io/test/github/mountain-pass/problem-document) [![npm package vulnerabilities](https://img.shields.io/snyk/vulnerabilities/npm/@mountainpass/problem-document@latest?label=npm%20package%20vulnerabilties&logo=snyk)](https://snyk.io/test/npm/@mountainpass/problem-document/latest)
13
12
 
@@ -0,0 +1,142 @@
1
+ import eslintConfigPrettier from "eslint-config-prettier";
2
+ import jsdoc from "eslint-plugin-jsdoc";
3
+ import jsonc from "eslint-plugin-jsonc";
4
+ import noSecrets from "eslint-plugin-no-secrets";
5
+ import prettier from "eslint-plugin-prettier/recommended";
6
+ import unicorn from "eslint-plugin-unicorn";
7
+ import tseslint from "typescript-eslint";
8
+
9
+ const tsFiles = ["**/*.ts", "**/*.tsx"];
10
+ const jsonFiles = ["**/*.json", "**/*.json5", "**/*.jsonc"];
11
+
12
+ export default tseslint.config(
13
+ {
14
+ ignores: [
15
+ "**/*.js",
16
+ "**/*.d.ts",
17
+ "node_modules/",
18
+ "**/*.generated.ts",
19
+ "coverage/",
20
+ "dist/",
21
+ "lib/",
22
+ "test-reports/",
23
+ ],
24
+ },
25
+ // TypeScript configs - scoped to TS files
26
+ ...tseslint.configs.recommended.map((config) => ({
27
+ ...config,
28
+ files: tsFiles,
29
+ })),
30
+ {
31
+ files: tsFiles,
32
+ ...prettier,
33
+ },
34
+ {
35
+ files: tsFiles,
36
+ ...eslintConfigPrettier,
37
+ },
38
+ {
39
+ files: tsFiles,
40
+ ...unicorn.configs.recommended,
41
+ },
42
+ {
43
+ files: tsFiles,
44
+ ...jsdoc.configs["flat/recommended-typescript"],
45
+ },
46
+ {
47
+ files: tsFiles,
48
+ languageOptions: {
49
+ parserOptions: {
50
+ project: "./tsconfig.dev.json",
51
+ tsconfigRootDir: import.meta.dirname,
52
+ },
53
+ },
54
+ plugins: {
55
+ "no-secrets": noSecrets,
56
+ },
57
+ rules: {
58
+ "@typescript-eslint/no-unused-vars": [
59
+ "error",
60
+ { ignoreRestSiblings: true },
61
+ ],
62
+ "prettier/prettier": "error",
63
+ "@typescript-eslint/no-require-imports": "error",
64
+ "no-duplicate-imports": "error",
65
+ "no-shadow": "off",
66
+ "@typescript-eslint/no-shadow": "error",
67
+ "key-spacing": "error",
68
+ "no-multiple-empty-lines": "error",
69
+ "@typescript-eslint/no-floating-promises": "error",
70
+ "no-return-await": "off",
71
+ "@typescript-eslint/return-await": "error",
72
+ "no-trailing-spaces": "error",
73
+ "dot-notation": "error",
74
+ "no-bitwise": "error",
75
+ "@typescript-eslint/member-ordering": [
76
+ "error",
77
+ {
78
+ default: [
79
+ "public-static-field",
80
+ "public-static-method",
81
+ "protected-static-field",
82
+ "protected-static-method",
83
+ "private-static-field",
84
+ "private-static-method",
85
+ "field",
86
+ "constructor",
87
+ "method",
88
+ ],
89
+ },
90
+ ],
91
+ "unicorn/prefer-node-protocol": "off",
92
+ "unicorn/expiring-todo-comments": "off",
93
+ "jsdoc/require-jsdoc": [
94
+ "error",
95
+ {
96
+ contexts: [
97
+ "TSInterfaceDeclaration",
98
+ "TSTypeAliasDeclaration",
99
+ "TSEnumDeclaration",
100
+ "PropertyDeclaration",
101
+ "ClassProperty",
102
+ "ClassDeclaration",
103
+ "MethodDefinition",
104
+ ],
105
+ },
106
+ ],
107
+ "jsdoc/require-description": [
108
+ "error",
109
+ {
110
+ contexts: ["any"],
111
+ },
112
+ ],
113
+ "jsdoc/check-indentation": "error",
114
+ "jsdoc/check-line-alignment": "error",
115
+ "jsdoc/check-syntax": "error",
116
+ "jsdoc/require-asterisk-prefix": "error",
117
+ "jsdoc/require-param-type": "off",
118
+ "jsdoc/require-param-description": "error",
119
+ "jsdoc/require-returns-type": "off",
120
+ "no-secrets/no-secrets": "error",
121
+ },
122
+ },
123
+ // JSON configs
124
+ ...jsonc.configs["flat/recommended-with-jsonc"].map((config) => ({
125
+ ...config,
126
+ files: jsonFiles,
127
+ })),
128
+ {
129
+ files: jsonFiles,
130
+ ignores: [
131
+ "package.json",
132
+ "tsconfig.json",
133
+ "tsconfig.dev.json",
134
+ ],
135
+ plugins: {
136
+ "no-secrets": noSecrets,
137
+ },
138
+ rules: {
139
+ "no-secrets/no-secrets": "error",
140
+ },
141
+ },
142
+ );
package/lib/index.d.ts CHANGED
@@ -131,7 +131,6 @@ type StatusCode =
131
131
  | 423
132
132
  /**
133
133
  * METHOD_FAILURE
134
- *
135
134
  * @deprecated
136
135
  * Official Documentation @ https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt
137
136
  *
@@ -389,7 +388,6 @@ type StatusCode =
389
388
  | 415
390
389
  /**
391
390
  * USE_PROXY
392
- *
393
391
  * @deprecated
394
392
  * Official Documentation @ https://tools.ietf.org/html/rfc7231#section-6.4.6
395
393
  *
@@ -493,7 +491,6 @@ export declare class ProblemDocument implements ProblemDocumentProperties {
493
491
  /**
494
492
  *
495
493
  * construct a new ProblemDocument instance
496
- *
497
494
  * @param data properties to assign to the new instance
498
495
  */
499
496
  constructor(data: ProblemDocumentProperties);
package/lib/index.js CHANGED
@@ -43,7 +43,6 @@ class ProblemDocument {
43
43
  /**
44
44
  *
45
45
  * construct a new ProblemDocument instance
46
- *
47
46
  * @param data properties to assign to the new instance
48
47
  */
49
48
  constructor(data) {
@@ -51,4 +50,4 @@ class ProblemDocument {
51
50
  }
52
51
  }
53
52
  exports.ProblemDocument = ProblemDocument;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc2NBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBQ0gsTUFBYSxlQUFlO0lBTzFCOzs7OztPQUtHO0lBQ0gsWUFBWSxJQUErQjtRQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFoQkQsMENBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIdHRwIFN0YXR1cyBDb2RlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmV0dHltdWNoYnJ5Y2UvaHR0cC1zdGF0dXMtY29kZXMvYmxvYi9tYXN0ZXIvc3JjL3N0YXR1cy1jb2Rlcy50cyB1bmRlciBNSVQgTGljZW5zZVxuICogSWYgeW91IGtub3cgaG93IHRvIGNvbnZlcnQgbnVtZXJpYyBlbnVtIHZhbHVlcyB0byBhIHVuaW9uIHR5cGUsIHBsZWFzZSBzdWJtaXQgYSBQUi5cbiAqL1xudHlwZSBTdGF0dXNDb2RlID1cbiAgLyoqXG4gICAqIEFDQ0VQVEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4zXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCBub3QgeWV0IGFjdGVkIHVwb24uIEl0IGlzIG5vbi1jb21taXR0YWwsIG1lYW5pbmcgdGhhdCB0aGVyZSBpcyBubyB3YXkgaW4gSFRUUCB0byBsYXRlciBzZW5kIGFuIGFzeW5jaHJvbm91cyByZXNwb25zZSBpbmRpY2F0aW5nIHRoZSBvdXRjb21lIG9mIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIEl0IGlzIGludGVuZGVkIGZvciBjYXNlcyB3aGVyZSBhbm90aGVyIHByb2Nlc3Mgb3Igc2VydmVyIGhhbmRsZXMgdGhlIHJlcXVlc3QsIG9yIGZvciBiYXRjaCBwcm9jZXNzaW5nLlxuICAgKi9cbiAgfCAyMDJcbiAgLyoqXG4gICAqIEJBRF9HQVRFV0FZXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNi4zXG4gICAqXG4gICAqIFRoaXMgZXJyb3IgcmVzcG9uc2UgbWVhbnMgdGhhdCB0aGUgc2VydmVyLCB3aGlsZSB3b3JraW5nIGFzIGEgZ2F0ZXdheSB0byBnZXQgYSByZXNwb25zZSBuZWVkZWQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LCBnb3QgYW4gaW52YWxpZCByZXNwb25zZS5cbiAgICovXG4gIHwgNTAyXG4gIC8qKlxuICAgKiBCQURfUkVRVUVTVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuMVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIG1lYW5zIHRoYXQgc2VydmVyIGNvdWxkIG5vdCB1bmRlcnN0YW5kIHRoZSByZXF1ZXN0IGR1ZSB0byBpbnZhbGlkIHN5bnRheC5cbiAgICovXG4gIHwgNDAwXG4gIC8qKlxuICAgKiBDT05GTElDVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuOFxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGlzIHNlbnQgd2hlbiBhIHJlcXVlc3QgY29uZmxpY3RzIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNDA5XG4gIC8qKlxuICAgKiBDT05USU5VRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjIuMVxuICAgKlxuICAgKiBUaGlzIGludGVyaW0gcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgZXZlcnl0aGluZyBzbyBmYXIgaXMgT0sgYW5kIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgY29udGludWUgd2l0aCB0aGUgcmVxdWVzdCBvciBpZ25vcmUgaXQgaWYgaXQgaXMgYWxyZWFkeSBmaW5pc2hlZC5cbiAgICovXG4gIHwgMTAwXG4gIC8qKlxuICAgKiBDUkVBVEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4yXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBzdWNjZWVkZWQgYW5kIGEgbmV3IHJlc291cmNlIGhhcyBiZWVuIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgaXQuIFRoaXMgaXMgdHlwaWNhbGx5IHRoZSByZXNwb25zZSBzZW50IGFmdGVyIGEgUFVUIHJlcXVlc3QuXG4gICAqL1xuICB8IDIwMVxuICAvKipcbiAgICogRVhQRUNUQVRJT05fRkFJTEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xNFxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgbWVhbnMgdGhlIGV4cGVjdGF0aW9uIGluZGljYXRlZCBieSB0aGUgRXhwZWN0IHJlcXVlc3QgaGVhZGVyIGZpZWxkIGNhbid0IGJlIG1ldCBieSB0aGUgc2VydmVyLlxuICAgKi9cbiAgfCA0MTdcbiAgLyoqXG4gICAqIEZBSUxFRF9ERVBFTkRFTkNZXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjUxOCNzZWN0aW9uLTEwLjVcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgZmFpbGVkIGR1ZSB0byBmYWlsdXJlIG9mIGEgcHJldmlvdXMgcmVxdWVzdC5cbiAgICovXG4gIHwgNDI0XG4gIC8qKlxuICAgKiBGT1JCSURERU5cbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjNcbiAgICpcbiAgICogVGhlIGNsaWVudCBkb2VzIG5vdCBoYXZlIGFjY2VzcyByaWdodHMgdG8gdGhlIGNvbnRlbnQsIGkuZS4gdGhleSBhcmUgdW5hdXRob3JpemVkLCBzbyBzZXJ2ZXIgaXMgcmVqZWN0aW5nIHRvIGdpdmUgcHJvcGVyIHJlc3BvbnNlLiBVbmxpa2UgNDAxLCB0aGUgY2xpZW50J3MgaWRlbnRpdHkgaXMga25vd24gdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNDAzXG4gIC8qKlxuICAgKiBHQVRFV0FZX1RJTUVPVVRcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjVcbiAgICpcbiAgICogVGhpcyBlcnJvciByZXNwb25zZSBpcyBnaXZlbiB3aGVuIHRoZSBzZXJ2ZXIgaXMgYWN0aW5nIGFzIGEgZ2F0ZXdheSBhbmQgY2Fubm90IGdldCBhIHJlc3BvbnNlIGluIHRpbWUuXG4gICAqL1xuICB8IDUwNFxuICAvKipcbiAgICogR09ORVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuOVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIHdvdWxkIGJlIHNlbnQgd2hlbiB0aGUgcmVxdWVzdGVkIGNvbnRlbnQgaGFzIGJlZW4gcGVybWFuZW50bHkgZGVsZXRlZCBmcm9tIHNlcnZlciwgd2l0aCBubyBmb3J3YXJkaW5nIGFkZHJlc3MuIENsaWVudHMgYXJlIGV4cGVjdGVkIHRvIHJlbW92ZSB0aGVpciBjYWNoZXMgYW5kIGxpbmtzIHRvIHRoZSByZXNvdXJjZS4gVGhlIEhUVFAgc3BlY2lmaWNhdGlvbiBpbnRlbmRzIHRoaXMgc3RhdHVzIGNvZGUgdG8gYmUgdXNlZCBmb3IgXCJsaW1pdGVkLXRpbWUsIHByb21vdGlvbmFsIHNlcnZpY2VzXCIuIEFQSXMgc2hvdWxkIG5vdCBmZWVsIGNvbXBlbGxlZCB0byBpbmRpY2F0ZSByZXNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCB3aXRoIHRoaXMgc3RhdHVzIGNvZGUuXG4gICAqL1xuICB8IDQxMFxuICAvKipcbiAgICogSFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjZcbiAgICpcbiAgICogVGhlIEhUVFAgdmVyc2lvbiB1c2VkIGluIHRoZSByZXF1ZXN0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNTA1XG4gIC8qKlxuICAgKiBJTV9BX1RFQVBPVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzIzMjQjc2VjdGlvbi0yLjMuMlxuICAgKlxuICAgKiBBbnkgYXR0ZW1wdCB0byBicmV3IGNvZmZlZSB3aXRoIGEgdGVhcG90IHNob3VsZCByZXN1bHQgaW4gdGhlIGVycm9yIGNvZGUgXCI0MTggSSdtIGEgdGVhcG90XCIuIFRoZSByZXN1bHRpbmcgZW50aXR5IGJvZHkgTUFZIGJlIHNob3J0IGFuZCBzdG91dC5cbiAgICovXG4gIHwgNDE4XG4gIC8qKlxuICAgKiBJTlNVRkZJQ0lFTlRfU1BBQ0VfT05fUkVTT1VSQ0VcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuNlxuICAgKlxuICAgKiBUaGUgNTA3IChJbnN1ZmZpY2llbnQgU3RvcmFnZSkgc3RhdHVzIGNvZGUgbWVhbnMgdGhlIG1ldGhvZCBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIG9uIHRoZSByZXNvdXJjZSBiZWNhdXNlIHRoZSBzZXJ2ZXIgaXMgdW5hYmxlIHRvIHN0b3JlIHRoZSByZXByZXNlbnRhdGlvbiBuZWVkZWQgdG8gc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlIHRoZSByZXF1ZXN0LiBUaGlzIGNvbmRpdGlvbiBpcyBjb25zaWRlcmVkIHRvIGJlIHRlbXBvcmFyeS4gSWYgdGhlIHJlcXVlc3Qgd2hpY2ggcmVjZWl2ZWQgdGhpcyBzdGF0dXMgY29kZSB3YXMgdGhlIHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLCB0aGUgcmVxdWVzdCBNVVNUIE5PVCBiZSByZXBlYXRlZCB1bnRpbCBpdCBpcyByZXF1ZXN0ZWQgYnkgYSBzZXBhcmF0ZSB1c2VyIGFjdGlvbi5cbiAgICovXG4gIHwgNDE5XG4gIC8qKlxuICAgKiBJTlNVRkZJQ0lFTlRfU1RPUkFHRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC42XG4gICAqXG4gICAqIFRoZSBzZXJ2ZXIgaGFzIGFuIGludGVybmFsIGNvbmZpZ3VyYXRpb24gZXJyb3I6IHRoZSBjaG9zZW4gdmFyaWFudCByZXNvdXJjZSBpcyBjb25maWd1cmVkIHRvIGVuZ2FnZSBpbiB0cmFuc3BhcmVudCBjb250ZW50IG5lZ290aWF0aW9uIGl0c2VsZiwgYW5kIGlzIHRoZXJlZm9yZSBub3QgYSBwcm9wZXIgZW5kIHBvaW50IGluIHRoZSBuZWdvdGlhdGlvbiBwcm9jZXNzLlxuICAgKi9cbiAgfCA1MDdcbiAgLyoqXG4gICAqIElOVEVSTkFMX1NFUlZFUl9FUlJPUlxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjYuMVxuICAgKlxuICAgKiBUaGUgc2VydmVyIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uIHRoYXQgcHJldmVudGVkIGl0IGZyb20gZnVsZmlsbGluZyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHwgNTAwXG4gIC8qKlxuICAgKiBMRU5HVEhfUkVRVUlSRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjEwXG4gICAqXG4gICAqIFRoZSBzZXJ2ZXIgcmVqZWN0ZWQgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgQ29udGVudC1MZW5ndGggaGVhZGVyIGZpZWxkIGlzIG5vdCBkZWZpbmVkIGFuZCB0aGUgc2VydmVyIHJlcXVpcmVzIGl0LlxuICAgKi9cbiAgfCA0MTFcbiAgLyoqXG4gICAqIExPQ0tFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC40XG4gICAqXG4gICAqIFRoZSByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkIGlzIGxvY2tlZC5cbiAgICovXG4gIHwgNDIzXG4gIC8qKlxuICAgKiBNRVRIT0RfRkFJTFVSRVxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9yZmNkaWZmP2RpZmZ0eXBlPS0taHdkaWZmJnVybDI9ZHJhZnQtaWV0Zi13ZWJkYXYtcHJvdG9jb2wtMDYudHh0XG4gICAqXG4gICAqIEEgZGVwcmVjYXRlZCByZXNwb25zZSB1c2VkIGJ5IHRoZSBTcHJpbmcgRnJhbWV3b3JrIHdoZW4gYSBtZXRob2QgaGFzIGZhaWxlZC5cbiAgICovXG4gIHwgNDIwXG4gIC8qKlxuICAgKiBNRVRIT0RfTk9UX0FMTE9XRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjVcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgbWV0aG9kIGlzIGtub3duIGJ5IHRoZSBzZXJ2ZXIgYnV0IGhhcyBiZWVuIGRpc2FibGVkIGFuZCBjYW5ub3QgYmUgdXNlZC4gRm9yIGV4YW1wbGUsIGFuIEFQSSBtYXkgZm9yYmlkIERFTEVURS1pbmcgYSByZXNvdXJjZS4gVGhlIHR3byBtYW5kYXRvcnkgbWV0aG9kcywgR0VUIGFuZCBIRUFELCBtdXN0IG5ldmVyIGJlIGRpc2FibGVkIGFuZCBzaG91bGQgbm90IHJldHVybiB0aGlzIGVycm9yIGNvZGUuXG4gICAqL1xuICB8IDQwNVxuICAvKipcbiAgICogTU9WRURfUEVSTUFORU5UTFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjJcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHRoYXQgVVJJIG9mIHJlcXVlc3RlZCByZXNvdXJjZSBoYXMgYmVlbiBjaGFuZ2VkLiBQcm9iYWJseSwgbmV3IFVSSSB3b3VsZCBiZSBnaXZlbiBpbiB0aGUgcmVzcG9uc2UuXG4gICAqL1xuICB8IDMwMVxuICAvKipcbiAgICogTU9WRURfVEVNUE9SQVJJTFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjNcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHRoYXQgVVJJIG9mIHJlcXVlc3RlZCByZXNvdXJjZSBoYXMgYmVlbiBjaGFuZ2VkIHRlbXBvcmFyaWx5LiBOZXcgY2hhbmdlcyBpbiB0aGUgVVJJIG1pZ2h0IGJlIG1hZGUgaW4gdGhlIGZ1dHVyZS4gVGhlcmVmb3JlLCB0aGlzIHNhbWUgVVJJIHNob3VsZCBiZSB1c2VkIGJ5IHRoZSBjbGllbnQgaW4gZnV0dXJlIHJlcXVlc3RzLlxuICAgKi9cbiAgfCAzMDJcbiAgLyoqXG4gICAqIE1VTFRJX1NUQVRVU1xuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC4yXG4gICAqXG4gICAqIEEgTXVsdGktU3RhdHVzIHJlc3BvbnNlIGNvbnZleXMgaW5mb3JtYXRpb24gYWJvdXQgbXVsdGlwbGUgcmVzb3VyY2VzIGluIHNpdHVhdGlvbnMgd2hlcmUgbXVsdGlwbGUgc3RhdHVzIGNvZGVzIG1pZ2h0IGJlIGFwcHJvcHJpYXRlLlxuICAgKi9cbiAgfCAyMDdcbiAgLyoqXG4gICAqIE1VTFRJUExFX0NIT0lDRVNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjFcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgaGFzIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgcmVzcG9uc2VzLiBVc2VyLWFnZW50IG9yIHVzZXIgc2hvdWxkIGNob29zZSBvbmUgb2YgdGhlbS4gVGhlcmUgaXMgbm8gc3RhbmRhcmRpemVkIHdheSB0byBjaG9vc2Ugb25lIG9mIHRoZSByZXNwb25zZXMuXG4gICAqL1xuICB8IDMwMFxuICAvKipcbiAgICogTkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1ODUjc2VjdGlvbi02XG4gICAqXG4gICAqIFRoZSA1MTEgc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNsaWVudCBuZWVkcyB0byBhdXRoZW50aWNhdGUgdG8gZ2FpbiBuZXR3b3JrIGFjY2Vzcy5cbiAgICovXG4gIHwgNTExXG4gIC8qKlxuICAgKiBOT19DT05URU5UXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy41XG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGNvbnRlbnQgdG8gc2VuZCBmb3IgdGhpcyByZXF1ZXN0LCBidXQgdGhlIGhlYWRlcnMgbWF5IGJlIHVzZWZ1bC4gVGhlIHVzZXItYWdlbnQgbWF5IHVwZGF0ZSBpdHMgY2FjaGVkIGhlYWRlcnMgZm9yIHRoaXMgcmVzb3VyY2Ugd2l0aCB0aGUgbmV3IG9uZXMuXG4gICAqL1xuICB8IDIwNFxuICAvKipcbiAgICogTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT05cbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi4zLjRcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHJldHVybmVkIG1ldGEtaW5mb3JtYXRpb24gc2V0IGlzIG5vdCBleGFjdCBzZXQgYXMgYXZhaWxhYmxlIGZyb20gdGhlIG9yaWdpbiBzZXJ2ZXIsIGJ1dCBjb2xsZWN0ZWQgZnJvbSBhIGxvY2FsIG9yIGEgdGhpcmQgcGFydHkgY29weS4gRXhjZXB0IHRoaXMgY29uZGl0aW9uLCAyMDAgT0sgcmVzcG9uc2Ugc2hvdWxkIGJlIHByZWZlcnJlZCBpbnN0ZWFkIG9mIHRoaXMgcmVzcG9uc2UuXG4gICAqL1xuICB8IDIwM1xuICAvKipcbiAgICogTk9UX0FDQ0VQVEFCTEVcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjZcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBpcyBzZW50IHdoZW4gdGhlIHdlYiBzZXJ2ZXIsIGFmdGVyIHBlcmZvcm1pbmcgc2VydmVyLWRyaXZlbiBjb250ZW50IG5lZ290aWF0aW9uLCBkb2Vzbid0IGZpbmQgYW55IGNvbnRlbnQgZm9sbG93aW5nIHRoZSBjcml0ZXJpYSBnaXZlbiBieSB0aGUgdXNlciBhZ2VudC5cbiAgICovXG4gIHwgNDA2XG4gIC8qKlxuICAgKiBOT1RfRk9VTkRcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjRcbiAgICpcbiAgICogVGhlIHNlcnZlciBjYW4gbm90IGZpbmQgcmVxdWVzdGVkIHJlc291cmNlLiBJbiB0aGUgYnJvd3NlciwgdGhpcyBtZWFucyB0aGUgVVJMIGlzIG5vdCByZWNvZ25pemVkLiBJbiBhbiBBUEksIHRoaXMgY2FuIGFsc28gbWVhbiB0aGF0IHRoZSBlbmRwb2ludCBpcyB2YWxpZCBidXQgdGhlIHJlc291cmNlIGl0c2VsZiBkb2VzIG5vdCBleGlzdC4gU2VydmVycyBtYXkgYWxzbyBzZW5kIHRoaXMgcmVzcG9uc2UgaW5zdGVhZCBvZiA0MDMgdG8gaGlkZSB0aGUgZXhpc3RlbmNlIG9mIGEgcmVzb3VyY2UgZnJvbSBhbiB1bmF1dGhvcml6ZWQgY2xpZW50LiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgcHJvYmFibHkgdGhlIG1vc3QgZmFtb3VzIG9uZSBkdWUgdG8gaXRzIGZyZXF1ZW50IG9jY3VycmVuY2Ugb24gdGhlIHdlYi5cbiAgICovXG4gIHwgNDA0XG4gIC8qKlxuICAgKiBOT1RfSU1QTEVNRU5URURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjJcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIGhhbmRsZWQuIFRoZSBvbmx5IG1ldGhvZHMgdGhhdCBzZXJ2ZXJzIGFyZSByZXF1aXJlZCB0byBzdXBwb3J0IChhbmQgdGhlcmVmb3JlIHRoYXQgbXVzdCBub3QgcmV0dXJuIHRoaXMgY29kZSkgYXJlIEdFVCBhbmQgSEVBRC5cbiAgICovXG4gIHwgNTAxXG4gIC8qKlxuICAgKiBOT1RfTU9ESUZJRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMyI3NlY3Rpb24tNC4xXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZCBmb3IgY2FjaGluZyBwdXJwb3Nlcy4gSXQgaXMgdGVsbGluZyB0byBjbGllbnQgdGhhdCByZXNwb25zZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuIFNvLCBjbGllbnQgY2FuIGNvbnRpbnVlIHRvIHVzZSBzYW1lIGNhY2hlZCB2ZXJzaW9uIG9mIHJlc3BvbnNlLlxuICAgKi9cbiAgfCAzMDRcbiAgLyoqXG4gICAqIE9LXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4xXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBzdWNjZWVkZWQuIFRoZSBtZWFuaW5nIG9mIGEgc3VjY2VzcyB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSBIVFRQIG1ldGhvZDpcbiAgICogR0VUOiBUaGUgcmVzb3VyY2UgaGFzIGJlZW4gZmV0Y2hlZCBhbmQgaXMgdHJhbnNtaXR0ZWQgaW4gdGhlIG1lc3NhZ2UgYm9keS5cbiAgICogSEVBRDogVGhlIGVudGl0eSBoZWFkZXJzIGFyZSBpbiB0aGUgbWVzc2FnZSBib2R5LlxuICAgKiBQT1NUOiBUaGUgcmVzb3VyY2UgZGVzY3JpYmluZyB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb24gaXMgdHJhbnNtaXR0ZWQgaW4gdGhlIG1lc3NhZ2UgYm9keS5cbiAgICogVFJBQ0U6IFRoZSBtZXNzYWdlIGJvZHkgY29udGFpbnMgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcyByZWNlaXZlZCBieSB0aGUgc2VydmVyXG4gICAqL1xuICB8IDIwMFxuICAvKipcbiAgICogUEFSVElBTF9DT05URU5UXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMyNzZWN0aW9uLTQuMVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgdXNlZCBiZWNhdXNlIG9mIHJhbmdlIGhlYWRlciBzZW50IGJ5IHRoZSBjbGllbnQgdG8gc2VwYXJhdGUgZG93bmxvYWQgaW50byBtdWx0aXBsZSBzdHJlYW1zLlxuICAgKi9cbiAgfCAyMDZcbiAgLyoqXG4gICAqIFBBWU1FTlRfUkVRVUlSRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjJcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLiBJbml0aWFsIGFpbSBmb3IgY3JlYXRpbmcgdGhpcyBjb2RlIHdhcyB1c2luZyBpdCBmb3IgZGlnaXRhbCBwYXltZW50IHN5c3RlbXMgaG93ZXZlciB0aGlzIGlzIG5vdCB1c2VkIGN1cnJlbnRseS5cbiAgICovXG4gIHwgNDAyXG4gIC8qKlxuICAgKiBQRVJNQU5FTlRfUkVESVJFQ1RcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NTM4I3NlY3Rpb24tM1xuICAgKlxuICAgKiBUaGlzIG1lYW5zIHRoYXQgdGhlIHJlc291cmNlIGlzIG5vdyBwZXJtYW5lbnRseSBsb2NhdGVkIGF0IGFub3RoZXIgVVJJLCBzcGVjaWZpZWQgYnkgdGhlIExvY2F0aW9uOiBIVFRQIFJlc3BvbnNlIGhlYWRlci4gVGhpcyBoYXMgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHRoZSAzMDEgTW92ZWQgUGVybWFuZW50bHkgSFRUUCByZXNwb25zZSBjb2RlLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB0aGUgdXNlciBhZ2VudCBtdXN0IG5vdCBjaGFuZ2UgdGhlIEhUVFAgbWV0aG9kIHVzZWQ6IGlmIGEgUE9TVCB3YXMgdXNlZCBpbiB0aGUgZmlyc3QgcmVxdWVzdCwgYSBQT1NUIG11c3QgYmUgdXNlZCBpbiB0aGUgc2Vjb25kIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwOFxuICAvKipcbiAgICogUFJFQ09ORElUSU9OX0ZBSUxFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzIjc2VjdGlvbi00LjJcbiAgICpcbiAgICogVGhlIGNsaWVudCBoYXMgaW5kaWNhdGVkIHByZWNvbmRpdGlvbnMgaW4gaXRzIGhlYWRlcnMgd2hpY2ggdGhlIHNlcnZlciBkb2VzIG5vdCBtZWV0LlxuICAgKi9cbiAgfCA0MTJcbiAgLyoqXG4gICAqIFBSRUNPTkRJVElPTl9SRVFVSVJFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1ODUjc2VjdGlvbi0zXG4gICAqXG4gICAqIFRoZSBvcmlnaW4gc2VydmVyIHJlcXVpcmVzIHRoZSByZXF1ZXN0IHRvIGJlIGNvbmRpdGlvbmFsLiBJbnRlbmRlZCB0byBwcmV2ZW50IHRoZSAnbG9zdCB1cGRhdGUnIHByb2JsZW0sIHdoZXJlIGEgY2xpZW50IEdFVHMgYSByZXNvdXJjZSdzIHN0YXRlLCBtb2RpZmllcyBpdCwgYW5kIFBVVHMgaXQgYmFjayB0byB0aGUgc2VydmVyLCB3aGVuIG1lYW53aGlsZSBhIHRoaXJkIHBhcnR5IGhhcyBtb2RpZmllZCB0aGUgc3RhdGUgb24gdGhlIHNlcnZlciwgbGVhZGluZyB0byBhIGNvbmZsaWN0LlxuICAgKi9cbiAgfCA0MjhcbiAgLyoqXG4gICAqIFBST0NFU1NJTkdcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuMVxuICAgKlxuICAgKiBUaGlzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBoYXMgcmVjZWl2ZWQgYW5kIGlzIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QsIGJ1dCBubyByZXNwb25zZSBpcyBhdmFpbGFibGUgeWV0LlxuICAgKi9cbiAgfCAxMDJcbiAgLyoqXG4gICAqIFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNSNzZWN0aW9uLTMuMlxuICAgKlxuICAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gNDAxIGJ1dCBhdXRoZW50aWNhdGlvbiBpcyBuZWVkZWQgdG8gYmUgZG9uZSBieSBhIHByb3h5LlxuICAgKi9cbiAgfCA0MDdcbiAgLyoqXG4gICAqIFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTg1I3NlY3Rpb24tNVxuICAgKlxuICAgKiBUaGUgc2VydmVyIGlzIHVud2lsbGluZyB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGJlY2F1c2UgaXRzIGhlYWRlciBmaWVsZHMgYXJlIHRvbyBsYXJnZS4gVGhlIHJlcXVlc3QgTUFZIGJlIHJlc3VibWl0dGVkIGFmdGVyIHJlZHVjaW5nIHRoZSBzaXplIG9mIHRoZSByZXF1ZXN0IGhlYWRlciBmaWVsZHMuXG4gICAqL1xuICB8IDQzMVxuICAvKipcbiAgICogUkVRVUVTVF9USU1FT1VUXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS43XG4gICAqXG4gICAqIFRoaXMgcmVzcG9uc2UgaXMgc2VudCBvbiBhbiBpZGxlIGNvbm5lY3Rpb24gYnkgc29tZSBzZXJ2ZXJzLCBldmVuIHdpdGhvdXQgYW55IHByZXZpb3VzIHJlcXVlc3QgYnkgdGhlIGNsaWVudC4gSXQgbWVhbnMgdGhhdCB0aGUgc2VydmVyIHdvdWxkIGxpa2UgdG8gc2h1dCBkb3duIHRoaXMgdW51c2VkIGNvbm5lY3Rpb24uIFRoaXMgcmVzcG9uc2UgaXMgdXNlZCBtdWNoIG1vcmUgc2luY2Ugc29tZSBicm93c2VycywgbGlrZSBDaHJvbWUsIEZpcmVmb3ggMjcrLCBvciBJRTksIHVzZSBIVFRQIHByZS1jb25uZWN0aW9uIG1lY2hhbmlzbXMgdG8gc3BlZWQgdXAgc3VyZmluZy4gQWxzbyBub3RlIHRoYXQgc29tZSBzZXJ2ZXJzIG1lcmVseSBzaHV0IGRvd24gdGhlIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIHRoaXMgbWVzc2FnZS5cbiAgICovXG4gIHwgNDA4XG4gIC8qKlxuICAgKiBSRVFVRVNUX1RPT19MT05HXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xMVxuICAgKlxuICAgKiBSZXF1ZXN0IGVudGl0eSBpcyBsYXJnZXIgdGhhbiBsaW1pdHMgZGVmaW5lZCBieSBzZXJ2ZXI7IHRoZSBzZXJ2ZXIgbWlnaHQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gb3IgcmV0dXJuIGFuIFJldHJ5LUFmdGVyIGhlYWRlciBmaWVsZC5cbiAgICovXG4gIHwgNDEzXG4gIC8qKlxuICAgKiBSRVFVRVNUX1VSSV9UT09fTE9OR1xuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuMTJcbiAgICpcbiAgICogVGhlIFVSSSByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCBpcyBsb25nZXIgdGhhbiB0aGUgc2VydmVyIGlzIHdpbGxpbmcgdG8gaW50ZXJwcmV0LlxuICAgKi9cbiAgfCA0MTRcbiAgLyoqXG4gICAqIFJFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNGSUFCTEVcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMzI3NlY3Rpb24tNC40XG4gICAqXG4gICAqIFRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIFJhbmdlIGhlYWRlciBmaWVsZCBpbiB0aGUgcmVxdWVzdCBjYW4ndCBiZSBmdWxmaWxsZWQ7IGl0J3MgcG9zc2libGUgdGhhdCB0aGUgcmFuZ2UgaXMgb3V0c2lkZSB0aGUgc2l6ZSBvZiB0aGUgdGFyZ2V0IFVSSSdzIGRhdGEuXG4gICAqL1xuICB8IDQxNlxuICAvKipcbiAgICogUkVTRVRfQ09OVEVOVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuNlxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgc2VudCBhZnRlciBhY2NvbXBsaXNoaW5nIHJlcXVlc3QgdG8gdGVsbCB1c2VyIGFnZW50IHJlc2V0IGRvY3VtZW50IHZpZXcgd2hpY2ggc2VudCB0aGlzIHJlcXVlc3QuXG4gICAqL1xuICB8IDIwNVxuICAvKipcbiAgICogU0VFX09USEVSXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNC40XG4gICAqXG4gICAqIFNlcnZlciBzZW50IHRoaXMgcmVzcG9uc2UgdG8gZGlyZWN0aW5nIGNsaWVudCB0byBnZXQgcmVxdWVzdGVkIHJlc291cmNlIHRvIGFub3RoZXIgVVJJIHdpdGggYW4gR0VUIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwM1xuICAvKipcbiAgICogU0VSVklDRV9VTkFWQUlMQUJMRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjYuNFxuICAgKlxuICAgKiBUaGUgc2VydmVyIGlzIG5vdCByZWFkeSB0byBoYW5kbGUgdGhlIHJlcXVlc3QuIENvbW1vbiBjYXVzZXMgYXJlIGEgc2VydmVyIHRoYXQgaXMgZG93biBmb3IgbWFpbnRlbmFuY2Ugb3IgdGhhdCBpcyBvdmVybG9hZGVkLiBOb3RlIHRoYXQgdG9nZXRoZXIgd2l0aCB0aGlzIHJlc3BvbnNlLCBhIHVzZXItZnJpZW5kbHkgcGFnZSBleHBsYWluaW5nIHRoZSBwcm9ibGVtIHNob3VsZCBiZSBzZW50LiBUaGlzIHJlc3BvbnNlcyBzaG91bGQgYmUgdXNlZCBmb3IgdGVtcG9yYXJ5IGNvbmRpdGlvbnMgYW5kIHRoZSBSZXRyeS1BZnRlcjogSFRUUCBoZWFkZXIgc2hvdWxkLCBpZiBwb3NzaWJsZSwgY29udGFpbiB0aGUgZXN0aW1hdGVkIHRpbWUgYmVmb3JlIHRoZSByZWNvdmVyeSBvZiB0aGUgc2VydmljZS4gVGhlIHdlYm1hc3RlciBtdXN0IGFsc28gdGFrZSBjYXJlIGFib3V0IHRoZSBjYWNoaW5nLXJlbGF0ZWQgaGVhZGVycyB0aGF0IGFyZSBzZW50IGFsb25nIHdpdGggdGhpcyByZXNwb25zZSwgYXMgdGhlc2UgdGVtcG9yYXJ5IGNvbmRpdGlvbiByZXNwb25zZXMgc2hvdWxkIHVzdWFsbHkgbm90IGJlIGNhY2hlZC5cbiAgICovXG4gIHwgNTAzXG4gIC8qKlxuICAgKiBTV0lUQ0hJTkdfUFJPVE9DT0xTXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMi4yXG4gICAqXG4gICAqIFRoaXMgY29kZSBpcyBzZW50IGluIHJlc3BvbnNlIHRvIGFuIFVwZ3JhZGUgcmVxdWVzdCBoZWFkZXIgYnkgdGhlIGNsaWVudCwgYW5kIGluZGljYXRlcyB0aGUgcHJvdG9jb2wgdGhlIHNlcnZlciBpcyBzd2l0Y2hpbmcgdG9vLlxuICAgKi9cbiAgfCAxMDFcbiAgLyoqXG4gICAqIFRFTVBPUkFSWV9SRURJUkVDVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjQuN1xuICAgKlxuICAgKiBTZXJ2ZXIgc2VudCB0aGlzIHJlc3BvbnNlIHRvIGRpcmVjdGluZyBjbGllbnQgdG8gZ2V0IHJlcXVlc3RlZCByZXNvdXJjZSB0byBhbm90aGVyIFVSSSB3aXRoIHNhbWUgbWV0aG9kIHRoYXQgdXNlZCBwcmlvciByZXF1ZXN0LiBUaGlzIGhhcyB0aGUgc2FtZSBzZW1hbnRpYyB0aGFuIHRoZSAzMDIgRm91bmQgSFRUUCByZXNwb25zZSBjb2RlLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB0aGUgdXNlciBhZ2VudCBtdXN0IG5vdCBjaGFuZ2UgdGhlIEhUVFAgbWV0aG9kIHVzZWQ6IGlmIGEgUE9TVCB3YXMgdXNlZCBpbiB0aGUgZmlyc3QgcmVxdWVzdCwgYSBQT1NUIG11c3QgYmUgdXNlZCBpbiB0aGUgc2Vjb25kIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwN1xuICAvKipcbiAgICogVE9PX01BTllfUkVRVUVTVFNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTg1I3NlY3Rpb24tNFxuICAgKlxuICAgKiBUaGUgdXNlciBoYXMgc2VudCB0b28gbWFueSByZXF1ZXN0cyBpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lIChcInJhdGUgbGltaXRpbmdcIikuXG4gICAqL1xuICB8IDQyOVxuICAvKipcbiAgICogVU5BVVRIT1JJWkVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNSNzZWN0aW9uLTMuMVxuICAgKlxuICAgKiBBbHRob3VnaCB0aGUgSFRUUCBzdGFuZGFyZCBzcGVjaWZpZXMgXCJ1bmF1dGhvcml6ZWRcIiwgc2VtYW50aWNhbGx5IHRoaXMgcmVzcG9uc2UgbWVhbnMgXCJ1bmF1dGhlbnRpY2F0ZWRcIi4gVGhhdCBpcywgdGhlIGNsaWVudCBtdXN0IGF1dGhlbnRpY2F0ZSBpdHNlbGYgdG8gZ2V0IHRoZSByZXF1ZXN0ZWQgcmVzcG9uc2UuXG4gICAqL1xuICB8IDQwMVxuICAvKipcbiAgICogVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NzI1XG4gICAqXG4gICAqIFRoZSB1c2VyLWFnZW50IHJlcXVlc3RlZCBhIHJlc291cmNlIHRoYXQgY2Fubm90IGxlZ2FsbHkgYmUgcHJvdmlkZWQsIHN1Y2ggYXMgYSB3ZWIgcGFnZSBjZW5zb3JlZCBieSBhIGdvdmVybm1lbnQuXG4gICAqL1xuICB8IDQ1MVxuICAvKipcbiAgICogVU5QUk9DRVNTQUJMRV9FTlRJVFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuM1xuICAgKlxuICAgKiBUaGUgcmVxdWVzdCB3YXMgd2VsbC1mb3JtZWQgYnV0IHdhcyB1bmFibGUgdG8gYmUgZm9sbG93ZWQgZHVlIHRvIHNlbWFudGljIGVycm9ycy5cbiAgICovXG4gIHwgNDIyXG4gIC8qKlxuICAgKiBVTlNVUFBPUlRFRF9NRURJQV9UWVBFXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xM1xuICAgKlxuICAgKiBUaGUgbWVkaWEgZm9ybWF0IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIsIHNvIHRoZSBzZXJ2ZXIgaXMgcmVqZWN0aW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgfCA0MTVcbiAgLyoqXG4gICAqIFVTRV9QUk9YWVxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjQuNlxuICAgKlxuICAgKiBXYXMgZGVmaW5lZCBpbiBhIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIEhUVFAgc3BlY2lmaWNhdGlvbiB0byBpbmRpY2F0ZSB0aGF0IGEgcmVxdWVzdGVkIHJlc3BvbnNlIG11c3QgYmUgYWNjZXNzZWQgYnkgYSBwcm94eS4gSXQgaGFzIGJlZW4gZGVwcmVjYXRlZCBkdWUgdG8gc2VjdXJpdHkgY29uY2VybnMgcmVnYXJkaW5nIGluLWJhbmQgY29uZmlndXJhdGlvbiBvZiBhIHByb3h5LlxuICAgKi9cbiAgfCAzMDVcbiAgLyoqXG4gICAqIE1JU0RJUkVDVEVEX1JFUVVFU1RcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzU0MCNzZWN0aW9uLTkuMS4yXG4gICAqXG4gICAqIERlZmluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gb2YgSFRUUC8yIHRvIGluZGljYXRlIHRoYXQgYSBzZXJ2ZXIgaXMgbm90IGFibGUgdG8gcHJvZHVjZSBhIHJlc3BvbnNlIGZvciB0aGUgY29tYmluYXRpb24gb2Ygc2NoZW1lIGFuZCBhdXRob3JpdHkgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QgVVJJLlxuICAgKi9cbiAgfCA0MjE7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgUHJvYmxlbSBEb2N1bWVudHMsIHdoaWNoIGluY2x1ZGVzIHRoZSBub24tZXh0ZW5zaW9uIGZpZWxkc1xuICovXG5leHBvcnQgdHlwZSBCYXNlUHJvYmxlbURvY3VtZW50UHJvcGVydGllcyA9IHtcbiAgLyoqXG4gICAqIEEgVVJJIHJlZmVyZW5jZSBbe0BsaW5rIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiBSRkMzOTg2fV0gdGhhdCBpZGVudGlmaWVzIHRoZVxuICAgKiBwcm9ibGVtIHR5cGUuICBUaGlzIHNwZWNpZmljYXRpb24gZW5jb3VyYWdlcyB0aGF0LCB3aGVuXG4gICAqIGRlcmVmZXJlbmNlZCwgaXQgcHJvdmlkZSBodW1hbi1yZWFkYWJsZSBkb2N1bWVudGF0aW9uIGZvciB0aGVcbiAgICogcHJvYmxlbSB0eXBlIChlLmcuLCB1c2luZyBIVE1MIFt7QGxpbmsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3ODA3I3JlZi1XM0MuUkVDLWh0bWw1LTIwMTQxMDI4IFczQy5SRUMtaHRtbDUtMjAxNDEwMjh9XSkuICBXaGVuXG4gICAqIHRoaXMgbWVtYmVyIGlzIG5vdCBwcmVzZW50LCBpdHMgdmFsdWUgaXMgYXNzdW1lZCB0byBiZVxuICAgKiBcImFib3V0OmJsYW5rXCIuXG4gICAqL1xuICB0eXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBzaG9ydCwgaHVtYW4tcmVhZGFibGUgc3VtbWFyeSBvZiB0aGUgcHJvYmxlbVxuICAgKiB0eXBlLiAgSXQgU0hPVUxEIE5PVCBjaGFuZ2UgZnJvbSBvY2N1cnJlbmNlIHRvIG9jY3VycmVuY2Ugb2YgdGhlXG4gICAqIHByb2JsZW0sIGV4Y2VwdCBmb3IgcHVycG9zZXMgb2YgbG9jYWxpemF0aW9uIChlLmcuLCB1c2luZ1xuICAgKiBwcm9hY3RpdmUgY29udGVudCBuZWdvdGlhdGlvbjsgc2VlIHtAbGluayBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzcyMzEjc2VjdGlvbi0zLjQgW1JGQzcyMzFdLCBTZWN0aW9uIDMuNH0pLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSFRUUCBzdGF0dXMgY29kZSAoe0BsaW5rIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYgW1JGQzcyMzFdLCBTZWN0aW9uIDZ9KVxuICAgKiBnZW5lcmF0ZWQgYnkgdGhlIG9yaWdpbiBzZXJ2ZXIgZm9yIHRoaXMgb2NjdXJyZW5jZSBvZiB0aGUgcHJvYmxlbS5cbiAgICovXG4gIHN0YXR1cz86IFN0YXR1c0NvZGU7XG4gIC8qKlxuICAgKiBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uIHNwZWNpZmljIHRvIHRoaXMgb2NjdXJyZW5jZSBvZiB0aGUgcHJvYmxlbS5cbiAgICovXG4gIGRldGFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgVVJJIHJlZmVyZW5jZSB0aGF0IGlkZW50aWZpZXMgdGhlIHNwZWNpZmljXG4gICAqIG9jY3VycmVuY2Ugb2YgdGhlIHByb2JsZW0uICBJdCBtYXkgb3IgbWF5IG5vdCB5aWVsZCBmdXJ0aGVyXG4gICAqIGluZm9ybWF0aW9uIGlmIGRlcmVmZXJlbmNlZC5cbiAgICovXG4gIGluc3RhbmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBUaGUgUHJvYmxlbSBEb2N1bWVudCB3aXRoIGV4dGVuc2lvbnNcbiAqXG4gKiBOb3RlIHRoZSB1c2Ugb2YgT21pdCwgdGhpcyBhbGxvd3MgYXV0by1jb21wbGV0aW9uIG9mIHRoZSBiYXNlIGZpZWxkc1xuICovXG5leHBvcnQgdHlwZSBQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzID0gT21pdDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtleW9mIEJhc2VQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzXG4+ICZcbiAgQmFzZVByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXM7XG5cbi8qKlxuICpcbiAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBSRkM3ODA3IFwicHJvYmxlbSBkZXRhaWxcIiwgYSB3YXkgdG8gY2FycnkgbWFjaGluZS1cbiAqIHJlYWRhYmxlIGRldGFpbHMgb2YgZXJyb3JzIGluIGEgSFRUUCByZXNwb25zZSB0byBhdm9pZCB0aGUgbmVlZCB0b1xuICogZGVmaW5lIG5ldyBlcnJvciByZXNwb25zZSBmb3JtYXRzIGZvciBIVFRQIEFQSXMuXG4gKlxuICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzgwN1xuICpcbiAqIENvbnN1bWVycyBNVVNUIHVzZSB0aGUgXCJ0eXBlXCIgc3RyaW5nIGFzIHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgZm9yXG4gKiB0aGUgcHJvYmxlbSB0eXBlOyB0aGUgXCJ0aXRsZVwiIHN0cmluZyBpcyBhZHZpc29yeSBhbmQgaW5jbHVkZWQgb25seVxuICogZm9yIHVzZXJzIHdobyBhcmUgbm90IGF3YXJlIG9mIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIFVSSSBhbmQgZG8gbm90XG4gKiBoYXZlIHRoZSBhYmlsaXR5IHRvIGRpc2NvdmVyIHRoZW0gKGUuZy4sIG9mZmxpbmUgbG9nIGFuYWx5c2lzKS5cbiAqIENvbnN1bWVycyBTSE9VTEQgTk9UIGF1dG9tYXRpY2FsbHkgZGVyZWZlcmVuY2UgdGhlIHR5cGUgVVJJLlxuICpcbiAqIFRoZSBcInN0YXR1c1wiIG1lbWJlciwgaWYgcHJlc2VudCwgaXMgb25seSBhZHZpc29yeTsgaXQgY29udmV5cyB0aGVcbiAqIEhUVFAgc3RhdHVzIGNvZGUgdXNlZCBmb3IgdGhlIGNvbnZlbmllbmNlIG9mIHRoZSBjb25zdW1lci5cbiAqIEdlbmVyYXRvcnMgTVVTVCB1c2UgdGhlIHNhbWUgc3RhdHVzIGNvZGUgaW4gdGhlIGFjdHVhbCBIVFRQIHJlc3BvbnNlLFxuICogdG8gYXNzdXJlIHRoYXQgZ2VuZXJpYyBIVFRQIHNvZnR3YXJlIHRoYXQgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzXG4gKiBmb3JtYXQgc3RpbGwgYmVoYXZlcyBjb3JyZWN0bHkuICBTZWUgU2VjdGlvbiA1IGZvciBmdXJ0aGVyIGNhdmVhdHNcbiAqIHJlZ2FyZGluZyBpdHMgdXNlLlxuICpcbiAqIENvbnN1bWVycyBjYW4gdXNlIHRoZSBzdGF0dXMgbWVtYmVyIHRvIGRldGVybWluZSB3aGF0IHRoZSBvcmlnaW5hbFxuICogc3RhdHVzIGNvZGUgdXNlZCBieSB0aGUgZ2VuZXJhdG9yIHdhcywgaW4gY2FzZXMgd2hlcmUgaXQgaGFzIGJlZW5cbiAqIGNoYW5nZWQgKGUuZy4sIGJ5IGFuIGludGVybWVkaWFyeSBvciBjYWNoZSksIGFuZCB3aGVuIG1lc3NhZ2UgYm9kaWVzXG4gKiBwZXJzaXN0IHdpdGhvdXQgSFRUUCBpbmZvcm1hdGlvbi4gIEdlbmVyaWMgSFRUUCBzb2Z0d2FyZSB3aWxsIHN0aWxsXG4gKiB1c2UgdGhlIEhUVFAgc3RhdHVzIGNvZGUuXG4gKlxuICogVGhlIFwiZGV0YWlsXCIgbWVtYmVyLCBpZiBwcmVzZW50LCBvdWdodCB0byBmb2N1cyBvbiBoZWxwaW5nIHRoZSBjbGllbnRcbiAqIGNvcnJlY3QgdGhlIHByb2JsZW0sIHJhdGhlciB0aGFuIGdpdmluZyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uXG4gKlxuICogQ29uc3VtZXJzIFNIT1VMRCBOT1QgcGFyc2UgdGhlIFwiZGV0YWlsXCIgbWVtYmVyIGZvciBpbmZvcm1hdGlvbjtcbiAqIGV4dGVuc2lvbnMgYXJlIG1vcmUgc3VpdGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUgd2F5cyB0byBvYnRhaW4gc3VjaFxuICogaW5mb3JtYXRpb24uXG4gKlxuICogTm90ZSB0aGF0IGJvdGgge0BsaW5rIEJhc2VQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzLnR5cGUgdHlwZX0gYW5kIHtAbGluayBCYXNlUHJvYmxlbURvY3VtZW50UHJvcGVydGllcy5pbnN0YW5jZSBpbnN0YW5jZX0gYWNjZXB0IHJlbGF0aXZlIFVSSXM7IHRoaXMgbWVhbnNcbiAqIHRoYXQgdGhleSBtdXN0IGJlIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCdzIGJhc2UgVVJJLCBhc1xuICogcGVyIHtAbGluayBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi01IFtSRkMzOTg2XSwgU2VjdGlvbiA1fS5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2JsZW1Eb2N1bWVudCBpbXBsZW1lbnRzIFByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXMge1xuICBkZXRhaWw/OiBzdHJpbmc7XG4gIGluc3RhbmNlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBTdGF0dXNDb2RlO1xuICB0aXRsZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgW2s6IHN0cmluZ106IHVua25vd247XG4gIC8qKlxuICAgKlxuICAgKiBjb25zdHJ1Y3QgYSBuZXcgUHJvYmxlbURvY3VtZW50IGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBuZXcgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXMpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICB9XG59XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb2NBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBQ0gsTUFBYSxlQUFlO0lBTzFCOzs7O09BSUc7SUFDSCxZQUFZLElBQStCO1FBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQWZELDBDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIdHRwIFN0YXR1cyBDb2RlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmV0dHltdWNoYnJ5Y2UvaHR0cC1zdGF0dXMtY29kZXMvYmxvYi9tYXN0ZXIvc3JjL3N0YXR1cy1jb2Rlcy50cyB1bmRlciBNSVQgTGljZW5zZVxuICogSWYgeW91IGtub3cgaG93IHRvIGNvbnZlcnQgbnVtZXJpYyBlbnVtIHZhbHVlcyB0byBhIHVuaW9uIHR5cGUsIHBsZWFzZSBzdWJtaXQgYSBQUi5cbiAqL1xudHlwZSBTdGF0dXNDb2RlID1cbiAgLyoqXG4gICAqIEFDQ0VQVEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4zXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCBub3QgeWV0IGFjdGVkIHVwb24uIEl0IGlzIG5vbi1jb21taXR0YWwsIG1lYW5pbmcgdGhhdCB0aGVyZSBpcyBubyB3YXkgaW4gSFRUUCB0byBsYXRlciBzZW5kIGFuIGFzeW5jaHJvbm91cyByZXNwb25zZSBpbmRpY2F0aW5nIHRoZSBvdXRjb21lIG9mIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QuIEl0IGlzIGludGVuZGVkIGZvciBjYXNlcyB3aGVyZSBhbm90aGVyIHByb2Nlc3Mgb3Igc2VydmVyIGhhbmRsZXMgdGhlIHJlcXVlc3QsIG9yIGZvciBiYXRjaCBwcm9jZXNzaW5nLlxuICAgKi9cbiAgfCAyMDJcbiAgLyoqXG4gICAqIEJBRF9HQVRFV0FZXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNi4zXG4gICAqXG4gICAqIFRoaXMgZXJyb3IgcmVzcG9uc2UgbWVhbnMgdGhhdCB0aGUgc2VydmVyLCB3aGlsZSB3b3JraW5nIGFzIGEgZ2F0ZXdheSB0byBnZXQgYSByZXNwb25zZSBuZWVkZWQgdG8gaGFuZGxlIHRoZSByZXF1ZXN0LCBnb3QgYW4gaW52YWxpZCByZXNwb25zZS5cbiAgICovXG4gIHwgNTAyXG4gIC8qKlxuICAgKiBCQURfUkVRVUVTVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuMVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIG1lYW5zIHRoYXQgc2VydmVyIGNvdWxkIG5vdCB1bmRlcnN0YW5kIHRoZSByZXF1ZXN0IGR1ZSB0byBpbnZhbGlkIHN5bnRheC5cbiAgICovXG4gIHwgNDAwXG4gIC8qKlxuICAgKiBDT05GTElDVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuOFxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGlzIHNlbnQgd2hlbiBhIHJlcXVlc3QgY29uZmxpY3RzIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNDA5XG4gIC8qKlxuICAgKiBDT05USU5VRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjIuMVxuICAgKlxuICAgKiBUaGlzIGludGVyaW0gcmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgZXZlcnl0aGluZyBzbyBmYXIgaXMgT0sgYW5kIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgY29udGludWUgd2l0aCB0aGUgcmVxdWVzdCBvciBpZ25vcmUgaXQgaWYgaXQgaXMgYWxyZWFkeSBmaW5pc2hlZC5cbiAgICovXG4gIHwgMTAwXG4gIC8qKlxuICAgKiBDUkVBVEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4yXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBzdWNjZWVkZWQgYW5kIGEgbmV3IHJlc291cmNlIGhhcyBiZWVuIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgaXQuIFRoaXMgaXMgdHlwaWNhbGx5IHRoZSByZXNwb25zZSBzZW50IGFmdGVyIGEgUFVUIHJlcXVlc3QuXG4gICAqL1xuICB8IDIwMVxuICAvKipcbiAgICogRVhQRUNUQVRJT05fRkFJTEVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xNFxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgbWVhbnMgdGhlIGV4cGVjdGF0aW9uIGluZGljYXRlZCBieSB0aGUgRXhwZWN0IHJlcXVlc3QgaGVhZGVyIGZpZWxkIGNhbid0IGJlIG1ldCBieSB0aGUgc2VydmVyLlxuICAgKi9cbiAgfCA0MTdcbiAgLyoqXG4gICAqIEZBSUxFRF9ERVBFTkRFTkNZXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjUxOCNzZWN0aW9uLTEwLjVcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgZmFpbGVkIGR1ZSB0byBmYWlsdXJlIG9mIGEgcHJldmlvdXMgcmVxdWVzdC5cbiAgICovXG4gIHwgNDI0XG4gIC8qKlxuICAgKiBGT1JCSURERU5cbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjNcbiAgICpcbiAgICogVGhlIGNsaWVudCBkb2VzIG5vdCBoYXZlIGFjY2VzcyByaWdodHMgdG8gdGhlIGNvbnRlbnQsIGkuZS4gdGhleSBhcmUgdW5hdXRob3JpemVkLCBzbyBzZXJ2ZXIgaXMgcmVqZWN0aW5nIHRvIGdpdmUgcHJvcGVyIHJlc3BvbnNlLiBVbmxpa2UgNDAxLCB0aGUgY2xpZW50J3MgaWRlbnRpdHkgaXMga25vd24gdG8gdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNDAzXG4gIC8qKlxuICAgKiBHQVRFV0FZX1RJTUVPVVRcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjVcbiAgICpcbiAgICogVGhpcyBlcnJvciByZXNwb25zZSBpcyBnaXZlbiB3aGVuIHRoZSBzZXJ2ZXIgaXMgYWN0aW5nIGFzIGEgZ2F0ZXdheSBhbmQgY2Fubm90IGdldCBhIHJlc3BvbnNlIGluIHRpbWUuXG4gICAqL1xuICB8IDUwNFxuICAvKipcbiAgICogR09ORVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuOVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIHdvdWxkIGJlIHNlbnQgd2hlbiB0aGUgcmVxdWVzdGVkIGNvbnRlbnQgaGFzIGJlZW4gcGVybWFuZW50bHkgZGVsZXRlZCBmcm9tIHNlcnZlciwgd2l0aCBubyBmb3J3YXJkaW5nIGFkZHJlc3MuIENsaWVudHMgYXJlIGV4cGVjdGVkIHRvIHJlbW92ZSB0aGVpciBjYWNoZXMgYW5kIGxpbmtzIHRvIHRoZSByZXNvdXJjZS4gVGhlIEhUVFAgc3BlY2lmaWNhdGlvbiBpbnRlbmRzIHRoaXMgc3RhdHVzIGNvZGUgdG8gYmUgdXNlZCBmb3IgXCJsaW1pdGVkLXRpbWUsIHByb21vdGlvbmFsIHNlcnZpY2VzXCIuIEFQSXMgc2hvdWxkIG5vdCBmZWVsIGNvbXBlbGxlZCB0byBpbmRpY2F0ZSByZXNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCB3aXRoIHRoaXMgc3RhdHVzIGNvZGUuXG4gICAqL1xuICB8IDQxMFxuICAvKipcbiAgICogSFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjZcbiAgICpcbiAgICogVGhlIEhUVFAgdmVyc2lvbiB1c2VkIGluIHRoZSByZXF1ZXN0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlci5cbiAgICovXG4gIHwgNTA1XG4gIC8qKlxuICAgKiBJTV9BX1RFQVBPVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzIzMjQjc2VjdGlvbi0yLjMuMlxuICAgKlxuICAgKiBBbnkgYXR0ZW1wdCB0byBicmV3IGNvZmZlZSB3aXRoIGEgdGVhcG90IHNob3VsZCByZXN1bHQgaW4gdGhlIGVycm9yIGNvZGUgXCI0MTggSSdtIGEgdGVhcG90XCIuIFRoZSByZXN1bHRpbmcgZW50aXR5IGJvZHkgTUFZIGJlIHNob3J0IGFuZCBzdG91dC5cbiAgICovXG4gIHwgNDE4XG4gIC8qKlxuICAgKiBJTlNVRkZJQ0lFTlRfU1BBQ0VfT05fUkVTT1VSQ0VcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuNlxuICAgKlxuICAgKiBUaGUgNTA3IChJbnN1ZmZpY2llbnQgU3RvcmFnZSkgc3RhdHVzIGNvZGUgbWVhbnMgdGhlIG1ldGhvZCBjb3VsZCBub3QgYmUgcGVyZm9ybWVkIG9uIHRoZSByZXNvdXJjZSBiZWNhdXNlIHRoZSBzZXJ2ZXIgaXMgdW5hYmxlIHRvIHN0b3JlIHRoZSByZXByZXNlbnRhdGlvbiBuZWVkZWQgdG8gc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlIHRoZSByZXF1ZXN0LiBUaGlzIGNvbmRpdGlvbiBpcyBjb25zaWRlcmVkIHRvIGJlIHRlbXBvcmFyeS4gSWYgdGhlIHJlcXVlc3Qgd2hpY2ggcmVjZWl2ZWQgdGhpcyBzdGF0dXMgY29kZSB3YXMgdGhlIHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLCB0aGUgcmVxdWVzdCBNVVNUIE5PVCBiZSByZXBlYXRlZCB1bnRpbCBpdCBpcyByZXF1ZXN0ZWQgYnkgYSBzZXBhcmF0ZSB1c2VyIGFjdGlvbi5cbiAgICovXG4gIHwgNDE5XG4gIC8qKlxuICAgKiBJTlNVRkZJQ0lFTlRfU1RPUkFHRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC42XG4gICAqXG4gICAqIFRoZSBzZXJ2ZXIgaGFzIGFuIGludGVybmFsIGNvbmZpZ3VyYXRpb24gZXJyb3I6IHRoZSBjaG9zZW4gdmFyaWFudCByZXNvdXJjZSBpcyBjb25maWd1cmVkIHRvIGVuZ2FnZSBpbiB0cmFuc3BhcmVudCBjb250ZW50IG5lZ290aWF0aW9uIGl0c2VsZiwgYW5kIGlzIHRoZXJlZm9yZSBub3QgYSBwcm9wZXIgZW5kIHBvaW50IGluIHRoZSBuZWdvdGlhdGlvbiBwcm9jZXNzLlxuICAgKi9cbiAgfCA1MDdcbiAgLyoqXG4gICAqIElOVEVSTkFMX1NFUlZFUl9FUlJPUlxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjYuMVxuICAgKlxuICAgKiBUaGUgc2VydmVyIGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uIHRoYXQgcHJldmVudGVkIGl0IGZyb20gZnVsZmlsbGluZyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHwgNTAwXG4gIC8qKlxuICAgKiBMRU5HVEhfUkVRVUlSRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjEwXG4gICAqXG4gICAqIFRoZSBzZXJ2ZXIgcmVqZWN0ZWQgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgQ29udGVudC1MZW5ndGggaGVhZGVyIGZpZWxkIGlzIG5vdCBkZWZpbmVkIGFuZCB0aGUgc2VydmVyIHJlcXVpcmVzIGl0LlxuICAgKi9cbiAgfCA0MTFcbiAgLyoqXG4gICAqIExPQ0tFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC40XG4gICAqXG4gICAqIFRoZSByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkIGlzIGxvY2tlZC5cbiAgICovXG4gIHwgNDIzXG4gIC8qKlxuICAgKiBNRVRIT0RfRkFJTFVSRVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9yZmNkaWZmP2RpZmZ0eXBlPS0taHdkaWZmJnVybDI9ZHJhZnQtaWV0Zi13ZWJkYXYtcHJvdG9jb2wtMDYudHh0XG4gICAqXG4gICAqIEEgZGVwcmVjYXRlZCByZXNwb25zZSB1c2VkIGJ5IHRoZSBTcHJpbmcgRnJhbWV3b3JrIHdoZW4gYSBtZXRob2QgaGFzIGZhaWxlZC5cbiAgICovXG4gIHwgNDIwXG4gIC8qKlxuICAgKiBNRVRIT0RfTk9UX0FMTE9XRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjVcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgbWV0aG9kIGlzIGtub3duIGJ5IHRoZSBzZXJ2ZXIgYnV0IGhhcyBiZWVuIGRpc2FibGVkIGFuZCBjYW5ub3QgYmUgdXNlZC4gRm9yIGV4YW1wbGUsIGFuIEFQSSBtYXkgZm9yYmlkIERFTEVURS1pbmcgYSByZXNvdXJjZS4gVGhlIHR3byBtYW5kYXRvcnkgbWV0aG9kcywgR0VUIGFuZCBIRUFELCBtdXN0IG5ldmVyIGJlIGRpc2FibGVkIGFuZCBzaG91bGQgbm90IHJldHVybiB0aGlzIGVycm9yIGNvZGUuXG4gICAqL1xuICB8IDQwNVxuICAvKipcbiAgICogTU9WRURfUEVSTUFORU5UTFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjJcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHRoYXQgVVJJIG9mIHJlcXVlc3RlZCByZXNvdXJjZSBoYXMgYmVlbiBjaGFuZ2VkLiBQcm9iYWJseSwgbmV3IFVSSSB3b3VsZCBiZSBnaXZlbiBpbiB0aGUgcmVzcG9uc2UuXG4gICAqL1xuICB8IDMwMVxuICAvKipcbiAgICogTU9WRURfVEVNUE9SQVJJTFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjNcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHRoYXQgVVJJIG9mIHJlcXVlc3RlZCByZXNvdXJjZSBoYXMgYmVlbiBjaGFuZ2VkIHRlbXBvcmFyaWx5LiBOZXcgY2hhbmdlcyBpbiB0aGUgVVJJIG1pZ2h0IGJlIG1hZGUgaW4gdGhlIGZ1dHVyZS4gVGhlcmVmb3JlLCB0aGlzIHNhbWUgVVJJIHNob3VsZCBiZSB1c2VkIGJ5IHRoZSBjbGllbnQgaW4gZnV0dXJlIHJlcXVlc3RzLlxuICAgKi9cbiAgfCAzMDJcbiAgLyoqXG4gICAqIE1VTFRJX1NUQVRVU1xuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI1MTgjc2VjdGlvbi0xMC4yXG4gICAqXG4gICAqIEEgTXVsdGktU3RhdHVzIHJlc3BvbnNlIGNvbnZleXMgaW5mb3JtYXRpb24gYWJvdXQgbXVsdGlwbGUgcmVzb3VyY2VzIGluIHNpdHVhdGlvbnMgd2hlcmUgbXVsdGlwbGUgc3RhdHVzIGNvZGVzIG1pZ2h0IGJlIGFwcHJvcHJpYXRlLlxuICAgKi9cbiAgfCAyMDdcbiAgLyoqXG4gICAqIE1VTFRJUExFX0NIT0lDRVNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi40LjFcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgaGFzIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgcmVzcG9uc2VzLiBVc2VyLWFnZW50IG9yIHVzZXIgc2hvdWxkIGNob29zZSBvbmUgb2YgdGhlbS4gVGhlcmUgaXMgbm8gc3RhbmRhcmRpemVkIHdheSB0byBjaG9vc2Ugb25lIG9mIHRoZSByZXNwb25zZXMuXG4gICAqL1xuICB8IDMwMFxuICAvKipcbiAgICogTkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1ODUjc2VjdGlvbi02XG4gICAqXG4gICAqIFRoZSA1MTEgc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNsaWVudCBuZWVkcyB0byBhdXRoZW50aWNhdGUgdG8gZ2FpbiBuZXR3b3JrIGFjY2Vzcy5cbiAgICovXG4gIHwgNTExXG4gIC8qKlxuICAgKiBOT19DT05URU5UXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy41XG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGNvbnRlbnQgdG8gc2VuZCBmb3IgdGhpcyByZXF1ZXN0LCBidXQgdGhlIGhlYWRlcnMgbWF5IGJlIHVzZWZ1bC4gVGhlIHVzZXItYWdlbnQgbWF5IHVwZGF0ZSBpdHMgY2FjaGVkIGhlYWRlcnMgZm9yIHRoaXMgcmVzb3VyY2Ugd2l0aCB0aGUgbmV3IG9uZXMuXG4gICAqL1xuICB8IDIwNFxuICAvKipcbiAgICogTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT05cbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi4zLjRcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIG1lYW5zIHJldHVybmVkIG1ldGEtaW5mb3JtYXRpb24gc2V0IGlzIG5vdCBleGFjdCBzZXQgYXMgYXZhaWxhYmxlIGZyb20gdGhlIG9yaWdpbiBzZXJ2ZXIsIGJ1dCBjb2xsZWN0ZWQgZnJvbSBhIGxvY2FsIG9yIGEgdGhpcmQgcGFydHkgY29weS4gRXhjZXB0IHRoaXMgY29uZGl0aW9uLCAyMDAgT0sgcmVzcG9uc2Ugc2hvdWxkIGJlIHByZWZlcnJlZCBpbnN0ZWFkIG9mIHRoaXMgcmVzcG9uc2UuXG4gICAqL1xuICB8IDIwM1xuICAvKipcbiAgICogTk9UX0FDQ0VQVEFCTEVcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjZcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBpcyBzZW50IHdoZW4gdGhlIHdlYiBzZXJ2ZXIsIGFmdGVyIHBlcmZvcm1pbmcgc2VydmVyLWRyaXZlbiBjb250ZW50IG5lZ290aWF0aW9uLCBkb2Vzbid0IGZpbmQgYW55IGNvbnRlbnQgZm9sbG93aW5nIHRoZSBjcml0ZXJpYSBnaXZlbiBieSB0aGUgdXNlciBhZ2VudC5cbiAgICovXG4gIHwgNDA2XG4gIC8qKlxuICAgKiBOT1RfRk9VTkRcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjRcbiAgICpcbiAgICogVGhlIHNlcnZlciBjYW4gbm90IGZpbmQgcmVxdWVzdGVkIHJlc291cmNlLiBJbiB0aGUgYnJvd3NlciwgdGhpcyBtZWFucyB0aGUgVVJMIGlzIG5vdCByZWNvZ25pemVkLiBJbiBhbiBBUEksIHRoaXMgY2FuIGFsc28gbWVhbiB0aGF0IHRoZSBlbmRwb2ludCBpcyB2YWxpZCBidXQgdGhlIHJlc291cmNlIGl0c2VsZiBkb2VzIG5vdCBleGlzdC4gU2VydmVycyBtYXkgYWxzbyBzZW5kIHRoaXMgcmVzcG9uc2UgaW5zdGVhZCBvZiA0MDMgdG8gaGlkZSB0aGUgZXhpc3RlbmNlIG9mIGEgcmVzb3VyY2UgZnJvbSBhbiB1bmF1dGhvcml6ZWQgY2xpZW50LiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgcHJvYmFibHkgdGhlIG1vc3QgZmFtb3VzIG9uZSBkdWUgdG8gaXRzIGZyZXF1ZW50IG9jY3VycmVuY2Ugb24gdGhlIHdlYi5cbiAgICovXG4gIHwgNDA0XG4gIC8qKlxuICAgKiBOT1RfSU1QTEVNRU5URURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi42LjJcbiAgICpcbiAgICogVGhlIHJlcXVlc3QgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlciBhbmQgY2Fubm90IGJlIGhhbmRsZWQuIFRoZSBvbmx5IG1ldGhvZHMgdGhhdCBzZXJ2ZXJzIGFyZSByZXF1aXJlZCB0byBzdXBwb3J0IChhbmQgdGhlcmVmb3JlIHRoYXQgbXVzdCBub3QgcmV0dXJuIHRoaXMgY29kZSkgYXJlIEdFVCBhbmQgSEVBRC5cbiAgICovXG4gIHwgNTAxXG4gIC8qKlxuICAgKiBOT1RfTU9ESUZJRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMyI3NlY3Rpb24tNC4xXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZCBmb3IgY2FjaGluZyBwdXJwb3Nlcy4gSXQgaXMgdGVsbGluZyB0byBjbGllbnQgdGhhdCByZXNwb25zZSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuIFNvLCBjbGllbnQgY2FuIGNvbnRpbnVlIHRvIHVzZSBzYW1lIGNhY2hlZCB2ZXJzaW9uIG9mIHJlc3BvbnNlLlxuICAgKi9cbiAgfCAzMDRcbiAgLyoqXG4gICAqIE9LXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMy4xXG4gICAqXG4gICAqIFRoZSByZXF1ZXN0IGhhcyBzdWNjZWVkZWQuIFRoZSBtZWFuaW5nIG9mIGEgc3VjY2VzcyB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSBIVFRQIG1ldGhvZDpcbiAgICogR0VUOiBUaGUgcmVzb3VyY2UgaGFzIGJlZW4gZmV0Y2hlZCBhbmQgaXMgdHJhbnNtaXR0ZWQgaW4gdGhlIG1lc3NhZ2UgYm9keS5cbiAgICogSEVBRDogVGhlIGVudGl0eSBoZWFkZXJzIGFyZSBpbiB0aGUgbWVzc2FnZSBib2R5LlxuICAgKiBQT1NUOiBUaGUgcmVzb3VyY2UgZGVzY3JpYmluZyB0aGUgcmVzdWx0IG9mIHRoZSBhY3Rpb24gaXMgdHJhbnNtaXR0ZWQgaW4gdGhlIG1lc3NhZ2UgYm9keS5cbiAgICogVFJBQ0U6IFRoZSBtZXNzYWdlIGJvZHkgY29udGFpbnMgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcyByZWNlaXZlZCBieSB0aGUgc2VydmVyXG4gICAqL1xuICB8IDIwMFxuICAvKipcbiAgICogUEFSVElBTF9DT05URU5UXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMyNzZWN0aW9uLTQuMVxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgdXNlZCBiZWNhdXNlIG9mIHJhbmdlIGhlYWRlciBzZW50IGJ5IHRoZSBjbGllbnQgdG8gc2VwYXJhdGUgZG93bmxvYWQgaW50byBtdWx0aXBsZSBzdHJlYW1zLlxuICAgKi9cbiAgfCAyMDZcbiAgLyoqXG4gICAqIFBBWU1FTlRfUkVRVUlSRURcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjJcbiAgICpcbiAgICogVGhpcyByZXNwb25zZSBjb2RlIGlzIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLiBJbml0aWFsIGFpbSBmb3IgY3JlYXRpbmcgdGhpcyBjb2RlIHdhcyB1c2luZyBpdCBmb3IgZGlnaXRhbCBwYXltZW50IHN5c3RlbXMgaG93ZXZlciB0aGlzIGlzIG5vdCB1c2VkIGN1cnJlbnRseS5cbiAgICovXG4gIHwgNDAyXG4gIC8qKlxuICAgKiBQRVJNQU5FTlRfUkVESVJFQ1RcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NTM4I3NlY3Rpb24tM1xuICAgKlxuICAgKiBUaGlzIG1lYW5zIHRoYXQgdGhlIHJlc291cmNlIGlzIG5vdyBwZXJtYW5lbnRseSBsb2NhdGVkIGF0IGFub3RoZXIgVVJJLCBzcGVjaWZpZWQgYnkgdGhlIExvY2F0aW9uOiBIVFRQIFJlc3BvbnNlIGhlYWRlci4gVGhpcyBoYXMgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHRoZSAzMDEgTW92ZWQgUGVybWFuZW50bHkgSFRUUCByZXNwb25zZSBjb2RlLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB0aGUgdXNlciBhZ2VudCBtdXN0IG5vdCBjaGFuZ2UgdGhlIEhUVFAgbWV0aG9kIHVzZWQ6IGlmIGEgUE9TVCB3YXMgdXNlZCBpbiB0aGUgZmlyc3QgcmVxdWVzdCwgYSBQT1NUIG11c3QgYmUgdXNlZCBpbiB0aGUgc2Vjb25kIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwOFxuICAvKipcbiAgICogUFJFQ09ORElUSU9OX0ZBSUxFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzIjc2VjdGlvbi00LjJcbiAgICpcbiAgICogVGhlIGNsaWVudCBoYXMgaW5kaWNhdGVkIHByZWNvbmRpdGlvbnMgaW4gaXRzIGhlYWRlcnMgd2hpY2ggdGhlIHNlcnZlciBkb2VzIG5vdCBtZWV0LlxuICAgKi9cbiAgfCA0MTJcbiAgLyoqXG4gICAqIFBSRUNPTkRJVElPTl9SRVFVSVJFRFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1ODUjc2VjdGlvbi0zXG4gICAqXG4gICAqIFRoZSBvcmlnaW4gc2VydmVyIHJlcXVpcmVzIHRoZSByZXF1ZXN0IHRvIGJlIGNvbmRpdGlvbmFsLiBJbnRlbmRlZCB0byBwcmV2ZW50IHRoZSAnbG9zdCB1cGRhdGUnIHByb2JsZW0sIHdoZXJlIGEgY2xpZW50IEdFVHMgYSByZXNvdXJjZSdzIHN0YXRlLCBtb2RpZmllcyBpdCwgYW5kIFBVVHMgaXQgYmFjayB0byB0aGUgc2VydmVyLCB3aGVuIG1lYW53aGlsZSBhIHRoaXJkIHBhcnR5IGhhcyBtb2RpZmllZCB0aGUgc3RhdGUgb24gdGhlIHNlcnZlciwgbGVhZGluZyB0byBhIGNvbmZsaWN0LlxuICAgKi9cbiAgfCA0MjhcbiAgLyoqXG4gICAqIFBST0NFU1NJTkdcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuMVxuICAgKlxuICAgKiBUaGlzIGNvZGUgaW5kaWNhdGVzIHRoYXQgdGhlIHNlcnZlciBoYXMgcmVjZWl2ZWQgYW5kIGlzIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QsIGJ1dCBubyByZXNwb25zZSBpcyBhdmFpbGFibGUgeWV0LlxuICAgKi9cbiAgfCAxMDJcbiAgLyoqXG4gICAqIFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNSNzZWN0aW9uLTMuMlxuICAgKlxuICAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gNDAxIGJ1dCBhdXRoZW50aWNhdGlvbiBpcyBuZWVkZWQgdG8gYmUgZG9uZSBieSBhIHByb3h5LlxuICAgKi9cbiAgfCA0MDdcbiAgLyoqXG4gICAqIFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTg1I3NlY3Rpb24tNVxuICAgKlxuICAgKiBUaGUgc2VydmVyIGlzIHVud2lsbGluZyB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGJlY2F1c2UgaXRzIGhlYWRlciBmaWVsZHMgYXJlIHRvbyBsYXJnZS4gVGhlIHJlcXVlc3QgTUFZIGJlIHJlc3VibWl0dGVkIGFmdGVyIHJlZHVjaW5nIHRoZSBzaXplIG9mIHRoZSByZXF1ZXN0IGhlYWRlciBmaWVsZHMuXG4gICAqL1xuICB8IDQzMVxuICAvKipcbiAgICogUkVRVUVTVF9USU1FT1VUXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS43XG4gICAqXG4gICAqIFRoaXMgcmVzcG9uc2UgaXMgc2VudCBvbiBhbiBpZGxlIGNvbm5lY3Rpb24gYnkgc29tZSBzZXJ2ZXJzLCBldmVuIHdpdGhvdXQgYW55IHByZXZpb3VzIHJlcXVlc3QgYnkgdGhlIGNsaWVudC4gSXQgbWVhbnMgdGhhdCB0aGUgc2VydmVyIHdvdWxkIGxpa2UgdG8gc2h1dCBkb3duIHRoaXMgdW51c2VkIGNvbm5lY3Rpb24uIFRoaXMgcmVzcG9uc2UgaXMgdXNlZCBtdWNoIG1vcmUgc2luY2Ugc29tZSBicm93c2VycywgbGlrZSBDaHJvbWUsIEZpcmVmb3ggMjcrLCBvciBJRTksIHVzZSBIVFRQIHByZS1jb25uZWN0aW9uIG1lY2hhbmlzbXMgdG8gc3BlZWQgdXAgc3VyZmluZy4gQWxzbyBub3RlIHRoYXQgc29tZSBzZXJ2ZXJzIG1lcmVseSBzaHV0IGRvd24gdGhlIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIHRoaXMgbWVzc2FnZS5cbiAgICovXG4gIHwgNDA4XG4gIC8qKlxuICAgKiBSRVFVRVNUX1RPT19MT05HXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xMVxuICAgKlxuICAgKiBSZXF1ZXN0IGVudGl0eSBpcyBsYXJnZXIgdGhhbiBsaW1pdHMgZGVmaW5lZCBieSBzZXJ2ZXI7IHRoZSBzZXJ2ZXIgbWlnaHQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gb3IgcmV0dXJuIGFuIFJldHJ5LUFmdGVyIGhlYWRlciBmaWVsZC5cbiAgICovXG4gIHwgNDEzXG4gIC8qKlxuICAgKiBSRVFVRVNUX1VSSV9UT09fTE9OR1xuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuMTJcbiAgICpcbiAgICogVGhlIFVSSSByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCBpcyBsb25nZXIgdGhhbiB0aGUgc2VydmVyIGlzIHdpbGxpbmcgdG8gaW50ZXJwcmV0LlxuICAgKi9cbiAgfCA0MTRcbiAgLyoqXG4gICAqIFJFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNGSUFCTEVcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMzI3NlY3Rpb24tNC40XG4gICAqXG4gICAqIFRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIFJhbmdlIGhlYWRlciBmaWVsZCBpbiB0aGUgcmVxdWVzdCBjYW4ndCBiZSBmdWxmaWxsZWQ7IGl0J3MgcG9zc2libGUgdGhhdCB0aGUgcmFuZ2UgaXMgb3V0c2lkZSB0aGUgc2l6ZSBvZiB0aGUgdGFyZ2V0IFVSSSdzIGRhdGEuXG4gICAqL1xuICB8IDQxNlxuICAvKipcbiAgICogUkVTRVRfQ09OVEVOVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjMuNlxuICAgKlxuICAgKiBUaGlzIHJlc3BvbnNlIGNvZGUgaXMgc2VudCBhZnRlciBhY2NvbXBsaXNoaW5nIHJlcXVlc3QgdG8gdGVsbCB1c2VyIGFnZW50IHJlc2V0IGRvY3VtZW50IHZpZXcgd2hpY2ggc2VudCB0aGlzIHJlcXVlc3QuXG4gICAqL1xuICB8IDIwNVxuICAvKipcbiAgICogU0VFX09USEVSXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNC40XG4gICAqXG4gICAqIFNlcnZlciBzZW50IHRoaXMgcmVzcG9uc2UgdG8gZGlyZWN0aW5nIGNsaWVudCB0byBnZXQgcmVxdWVzdGVkIHJlc291cmNlIHRvIGFub3RoZXIgVVJJIHdpdGggYW4gR0VUIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwM1xuICAvKipcbiAgICogU0VSVklDRV9VTkFWQUlMQUJMRVxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjYuNFxuICAgKlxuICAgKiBUaGUgc2VydmVyIGlzIG5vdCByZWFkeSB0byBoYW5kbGUgdGhlIHJlcXVlc3QuIENvbW1vbiBjYXVzZXMgYXJlIGEgc2VydmVyIHRoYXQgaXMgZG93biBmb3IgbWFpbnRlbmFuY2Ugb3IgdGhhdCBpcyBvdmVybG9hZGVkLiBOb3RlIHRoYXQgdG9nZXRoZXIgd2l0aCB0aGlzIHJlc3BvbnNlLCBhIHVzZXItZnJpZW5kbHkgcGFnZSBleHBsYWluaW5nIHRoZSBwcm9ibGVtIHNob3VsZCBiZSBzZW50LiBUaGlzIHJlc3BvbnNlcyBzaG91bGQgYmUgdXNlZCBmb3IgdGVtcG9yYXJ5IGNvbmRpdGlvbnMgYW5kIHRoZSBSZXRyeS1BZnRlcjogSFRUUCBoZWFkZXIgc2hvdWxkLCBpZiBwb3NzaWJsZSwgY29udGFpbiB0aGUgZXN0aW1hdGVkIHRpbWUgYmVmb3JlIHRoZSByZWNvdmVyeSBvZiB0aGUgc2VydmljZS4gVGhlIHdlYm1hc3RlciBtdXN0IGFsc28gdGFrZSBjYXJlIGFib3V0IHRoZSBjYWNoaW5nLXJlbGF0ZWQgaGVhZGVycyB0aGF0IGFyZSBzZW50IGFsb25nIHdpdGggdGhpcyByZXNwb25zZSwgYXMgdGhlc2UgdGVtcG9yYXJ5IGNvbmRpdGlvbiByZXNwb25zZXMgc2hvdWxkIHVzdWFsbHkgbm90IGJlIGNhY2hlZC5cbiAgICovXG4gIHwgNTAzXG4gIC8qKlxuICAgKiBTV0lUQ0hJTkdfUFJPVE9DT0xTXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuMi4yXG4gICAqXG4gICAqIFRoaXMgY29kZSBpcyBzZW50IGluIHJlc3BvbnNlIHRvIGFuIFVwZ3JhZGUgcmVxdWVzdCBoZWFkZXIgYnkgdGhlIGNsaWVudCwgYW5kIGluZGljYXRlcyB0aGUgcHJvdG9jb2wgdGhlIHNlcnZlciBpcyBzd2l0Y2hpbmcgdG9vLlxuICAgKi9cbiAgfCAxMDFcbiAgLyoqXG4gICAqIFRFTVBPUkFSWV9SRURJUkVDVFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjQuN1xuICAgKlxuICAgKiBTZXJ2ZXIgc2VudCB0aGlzIHJlc3BvbnNlIHRvIGRpcmVjdGluZyBjbGllbnQgdG8gZ2V0IHJlcXVlc3RlZCByZXNvdXJjZSB0byBhbm90aGVyIFVSSSB3aXRoIHNhbWUgbWV0aG9kIHRoYXQgdXNlZCBwcmlvciByZXF1ZXN0LiBUaGlzIGhhcyB0aGUgc2FtZSBzZW1hbnRpYyB0aGFuIHRoZSAzMDIgRm91bmQgSFRUUCByZXNwb25zZSBjb2RlLCB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCB0aGUgdXNlciBhZ2VudCBtdXN0IG5vdCBjaGFuZ2UgdGhlIEhUVFAgbWV0aG9kIHVzZWQ6IGlmIGEgUE9TVCB3YXMgdXNlZCBpbiB0aGUgZmlyc3QgcmVxdWVzdCwgYSBQT1NUIG11c3QgYmUgdXNlZCBpbiB0aGUgc2Vjb25kIHJlcXVlc3QuXG4gICAqL1xuICB8IDMwN1xuICAvKipcbiAgICogVE9PX01BTllfUkVRVUVTVFNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTg1I3NlY3Rpb24tNFxuICAgKlxuICAgKiBUaGUgdXNlciBoYXMgc2VudCB0b28gbWFueSByZXF1ZXN0cyBpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lIChcInJhdGUgbGltaXRpbmdcIikuXG4gICAqL1xuICB8IDQyOVxuICAvKipcbiAgICogVU5BVVRIT1JJWkVEXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzNSNzZWN0aW9uLTMuMVxuICAgKlxuICAgKiBBbHRob3VnaCB0aGUgSFRUUCBzdGFuZGFyZCBzcGVjaWZpZXMgXCJ1bmF1dGhvcml6ZWRcIiwgc2VtYW50aWNhbGx5IHRoaXMgcmVzcG9uc2UgbWVhbnMgXCJ1bmF1dGhlbnRpY2F0ZWRcIi4gVGhhdCBpcywgdGhlIGNsaWVudCBtdXN0IGF1dGhlbnRpY2F0ZSBpdHNlbGYgdG8gZ2V0IHRoZSByZXF1ZXN0ZWQgcmVzcG9uc2UuXG4gICAqL1xuICB8IDQwMVxuICAvKipcbiAgICogVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlNcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NzI1XG4gICAqXG4gICAqIFRoZSB1c2VyLWFnZW50IHJlcXVlc3RlZCBhIHJlc291cmNlIHRoYXQgY2Fubm90IGxlZ2FsbHkgYmUgcHJvdmlkZWQsIHN1Y2ggYXMgYSB3ZWIgcGFnZSBjZW5zb3JlZCBieSBhIGdvdmVybm1lbnQuXG4gICAqL1xuICB8IDQ1MVxuICAvKipcbiAgICogVU5QUk9DRVNTQUJMRV9FTlRJVFlcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyNTE4I3NlY3Rpb24tMTAuM1xuICAgKlxuICAgKiBUaGUgcmVxdWVzdCB3YXMgd2VsbC1mb3JtZWQgYnV0IHdhcyB1bmFibGUgdG8gYmUgZm9sbG93ZWQgZHVlIHRvIHNlbWFudGljIGVycm9ycy5cbiAgICovXG4gIHwgNDIyXG4gIC8qKlxuICAgKiBVTlNVUFBPUlRFRF9NRURJQV9UWVBFXG4gICAqIE9mZmljaWFsIERvY3VtZW50YXRpb24gQCBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYuNS4xM1xuICAgKlxuICAgKiBUaGUgbWVkaWEgZm9ybWF0IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIsIHNvIHRoZSBzZXJ2ZXIgaXMgcmVqZWN0aW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgfCA0MTVcbiAgLyoqXG4gICAqIFVTRV9QUk9YWVxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBPZmZpY2lhbCBEb2N1bWVudGF0aW9uIEAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjQuNlxuICAgKlxuICAgKiBXYXMgZGVmaW5lZCBpbiBhIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIEhUVFAgc3BlY2lmaWNhdGlvbiB0byBpbmRpY2F0ZSB0aGF0IGEgcmVxdWVzdGVkIHJlc3BvbnNlIG11c3QgYmUgYWNjZXNzZWQgYnkgYSBwcm94eS4gSXQgaGFzIGJlZW4gZGVwcmVjYXRlZCBkdWUgdG8gc2VjdXJpdHkgY29uY2VybnMgcmVnYXJkaW5nIGluLWJhbmQgY29uZmlndXJhdGlvbiBvZiBhIHByb3h5LlxuICAgKi9cbiAgfCAzMDVcbiAgLyoqXG4gICAqIE1JU0RJUkVDVEVEX1JFUVVFU1RcbiAgICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzU0MCNzZWN0aW9uLTkuMS4yXG4gICAqXG4gICAqIERlZmluZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gb2YgSFRUUC8yIHRvIGluZGljYXRlIHRoYXQgYSBzZXJ2ZXIgaXMgbm90IGFibGUgdG8gcHJvZHVjZSBhIHJlc3BvbnNlIGZvciB0aGUgY29tYmluYXRpb24gb2Ygc2NoZW1lIGFuZCBhdXRob3JpdHkgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QgVVJJLlxuICAgKi9cbiAgfCA0MjE7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgUHJvYmxlbSBEb2N1bWVudHMsIHdoaWNoIGluY2x1ZGVzIHRoZSBub24tZXh0ZW5zaW9uIGZpZWxkc1xuICovXG5leHBvcnQgdHlwZSBCYXNlUHJvYmxlbURvY3VtZW50UHJvcGVydGllcyA9IHtcbiAgLyoqXG4gICAqIEEgVVJJIHJlZmVyZW5jZSBbe0BsaW5rIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NiBSRkMzOTg2fV0gdGhhdCBpZGVudGlmaWVzIHRoZVxuICAgKiBwcm9ibGVtIHR5cGUuICBUaGlzIHNwZWNpZmljYXRpb24gZW5jb3VyYWdlcyB0aGF0LCB3aGVuXG4gICAqIGRlcmVmZXJlbmNlZCwgaXQgcHJvdmlkZSBodW1hbi1yZWFkYWJsZSBkb2N1bWVudGF0aW9uIGZvciB0aGVcbiAgICogcHJvYmxlbSB0eXBlIChlLmcuLCB1c2luZyBIVE1MIFt7QGxpbmsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3ODA3I3JlZi1XM0MuUkVDLWh0bWw1LTIwMTQxMDI4IFczQy5SRUMtaHRtbDUtMjAxNDEwMjh9XSkuICBXaGVuXG4gICAqIHRoaXMgbWVtYmVyIGlzIG5vdCBwcmVzZW50LCBpdHMgdmFsdWUgaXMgYXNzdW1lZCB0byBiZVxuICAgKiBcImFib3V0OmJsYW5rXCIuXG4gICAqL1xuICB0eXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBzaG9ydCwgaHVtYW4tcmVhZGFibGUgc3VtbWFyeSBvZiB0aGUgcHJvYmxlbVxuICAgKiB0eXBlLiAgSXQgU0hPVUxEIE5PVCBjaGFuZ2UgZnJvbSBvY2N1cnJlbmNlIHRvIG9jY3VycmVuY2Ugb2YgdGhlXG4gICAqIHByb2JsZW0sIGV4Y2VwdCBmb3IgcHVycG9zZXMgb2YgbG9jYWxpemF0aW9uIChlLmcuLCB1c2luZ1xuICAgKiBwcm9hY3RpdmUgY29udGVudCBuZWdvdGlhdGlvbjsgc2VlIHtAbGluayBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzcyMzEjc2VjdGlvbi0zLjQgW1JGQzcyMzFdLCBTZWN0aW9uIDMuNH0pLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSFRUUCBzdGF0dXMgY29kZSAoe0BsaW5rIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTYgW1JGQzcyMzFdLCBTZWN0aW9uIDZ9KVxuICAgKiBnZW5lcmF0ZWQgYnkgdGhlIG9yaWdpbiBzZXJ2ZXIgZm9yIHRoaXMgb2NjdXJyZW5jZSBvZiB0aGUgcHJvYmxlbS5cbiAgICovXG4gIHN0YXR1cz86IFN0YXR1c0NvZGU7XG4gIC8qKlxuICAgKiBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uIHNwZWNpZmljIHRvIHRoaXMgb2NjdXJyZW5jZSBvZiB0aGUgcHJvYmxlbS5cbiAgICovXG4gIGRldGFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgVVJJIHJlZmVyZW5jZSB0aGF0IGlkZW50aWZpZXMgdGhlIHNwZWNpZmljXG4gICAqIG9jY3VycmVuY2Ugb2YgdGhlIHByb2JsZW0uICBJdCBtYXkgb3IgbWF5IG5vdCB5aWVsZCBmdXJ0aGVyXG4gICAqIGluZm9ybWF0aW9uIGlmIGRlcmVmZXJlbmNlZC5cbiAgICovXG4gIGluc3RhbmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBUaGUgUHJvYmxlbSBEb2N1bWVudCB3aXRoIGV4dGVuc2lvbnNcbiAqXG4gKiBOb3RlIHRoZSB1c2Ugb2YgT21pdCwgdGhpcyBhbGxvd3MgYXV0by1jb21wbGV0aW9uIG9mIHRoZSBiYXNlIGZpZWxkc1xuICovXG5leHBvcnQgdHlwZSBQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzID0gT21pdDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGtleW9mIEJhc2VQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzXG4+ICZcbiAgQmFzZVByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXM7XG5cbi8qKlxuICpcbiAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBSRkM3ODA3IFwicHJvYmxlbSBkZXRhaWxcIiwgYSB3YXkgdG8gY2FycnkgbWFjaGluZS1cbiAqIHJlYWRhYmxlIGRldGFpbHMgb2YgZXJyb3JzIGluIGEgSFRUUCByZXNwb25zZSB0byBhdm9pZCB0aGUgbmVlZCB0b1xuICogZGVmaW5lIG5ldyBlcnJvciByZXNwb25zZSBmb3JtYXRzIGZvciBIVFRQIEFQSXMuXG4gKlxuICogT2ZmaWNpYWwgRG9jdW1lbnRhdGlvbiBAIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzgwN1xuICpcbiAqIENvbnN1bWVycyBNVVNUIHVzZSB0aGUgXCJ0eXBlXCIgc3RyaW5nIGFzIHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgZm9yXG4gKiB0aGUgcHJvYmxlbSB0eXBlOyB0aGUgXCJ0aXRsZVwiIHN0cmluZyBpcyBhZHZpc29yeSBhbmQgaW5jbHVkZWQgb25seVxuICogZm9yIHVzZXJzIHdobyBhcmUgbm90IGF3YXJlIG9mIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIFVSSSBhbmQgZG8gbm90XG4gKiBoYXZlIHRoZSBhYmlsaXR5IHRvIGRpc2NvdmVyIHRoZW0gKGUuZy4sIG9mZmxpbmUgbG9nIGFuYWx5c2lzKS5cbiAqIENvbnN1bWVycyBTSE9VTEQgTk9UIGF1dG9tYXRpY2FsbHkgZGVyZWZlcmVuY2UgdGhlIHR5cGUgVVJJLlxuICpcbiAqIFRoZSBcInN0YXR1c1wiIG1lbWJlciwgaWYgcHJlc2VudCwgaXMgb25seSBhZHZpc29yeTsgaXQgY29udmV5cyB0aGVcbiAqIEhUVFAgc3RhdHVzIGNvZGUgdXNlZCBmb3IgdGhlIGNvbnZlbmllbmNlIG9mIHRoZSBjb25zdW1lci5cbiAqIEdlbmVyYXRvcnMgTVVTVCB1c2UgdGhlIHNhbWUgc3RhdHVzIGNvZGUgaW4gdGhlIGFjdHVhbCBIVFRQIHJlc3BvbnNlLFxuICogdG8gYXNzdXJlIHRoYXQgZ2VuZXJpYyBIVFRQIHNvZnR3YXJlIHRoYXQgZG9lcyBub3QgdW5kZXJzdGFuZCB0aGlzXG4gKiBmb3JtYXQgc3RpbGwgYmVoYXZlcyBjb3JyZWN0bHkuICBTZWUgU2VjdGlvbiA1IGZvciBmdXJ0aGVyIGNhdmVhdHNcbiAqIHJlZ2FyZGluZyBpdHMgdXNlLlxuICpcbiAqIENvbnN1bWVycyBjYW4gdXNlIHRoZSBzdGF0dXMgbWVtYmVyIHRvIGRldGVybWluZSB3aGF0IHRoZSBvcmlnaW5hbFxuICogc3RhdHVzIGNvZGUgdXNlZCBieSB0aGUgZ2VuZXJhdG9yIHdhcywgaW4gY2FzZXMgd2hlcmUgaXQgaGFzIGJlZW5cbiAqIGNoYW5nZWQgKGUuZy4sIGJ5IGFuIGludGVybWVkaWFyeSBvciBjYWNoZSksIGFuZCB3aGVuIG1lc3NhZ2UgYm9kaWVzXG4gKiBwZXJzaXN0IHdpdGhvdXQgSFRUUCBpbmZvcm1hdGlvbi4gIEdlbmVyaWMgSFRUUCBzb2Z0d2FyZSB3aWxsIHN0aWxsXG4gKiB1c2UgdGhlIEhUVFAgc3RhdHVzIGNvZGUuXG4gKlxuICogVGhlIFwiZGV0YWlsXCIgbWVtYmVyLCBpZiBwcmVzZW50LCBvdWdodCB0byBmb2N1cyBvbiBoZWxwaW5nIHRoZSBjbGllbnRcbiAqIGNvcnJlY3QgdGhlIHByb2JsZW0sIHJhdGhlciB0aGFuIGdpdmluZyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uXG4gKlxuICogQ29uc3VtZXJzIFNIT1VMRCBOT1QgcGFyc2UgdGhlIFwiZGV0YWlsXCIgbWVtYmVyIGZvciBpbmZvcm1hdGlvbjtcbiAqIGV4dGVuc2lvbnMgYXJlIG1vcmUgc3VpdGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUgd2F5cyB0byBvYnRhaW4gc3VjaFxuICogaW5mb3JtYXRpb24uXG4gKlxuICogTm90ZSB0aGF0IGJvdGgge0BsaW5rIEJhc2VQcm9ibGVtRG9jdW1lbnRQcm9wZXJ0aWVzLnR5cGUgdHlwZX0gYW5kIHtAbGluayBCYXNlUHJvYmxlbURvY3VtZW50UHJvcGVydGllcy5pbnN0YW5jZSBpbnN0YW5jZX0gYWNjZXB0IHJlbGF0aXZlIFVSSXM7IHRoaXMgbWVhbnNcbiAqIHRoYXQgdGhleSBtdXN0IGJlIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCdzIGJhc2UgVVJJLCBhc1xuICogcGVyIHtAbGluayBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODYjc2VjdGlvbi01IFtSRkMzOTg2XSwgU2VjdGlvbiA1fS5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb2JsZW1Eb2N1bWVudCBpbXBsZW1lbnRzIFByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXMge1xuICBkZXRhaWw/OiBzdHJpbmc7XG4gIGluc3RhbmNlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBTdGF0dXNDb2RlO1xuICB0aXRsZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgW2s6IHN0cmluZ106IHVua25vd247XG4gIC8qKlxuICAgKlxuICAgKiBjb25zdHJ1Y3QgYSBuZXcgUHJvYmxlbURvY3VtZW50IGluc3RhbmNlXG4gICAqIEBwYXJhbSBkYXRhIHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBuZXcgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFByb2JsZW1Eb2N1bWVudFByb3BlcnRpZXMpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -8,8 +8,8 @@
8
8
  "scripts": {
9
9
  "build": "npm run compile && npm run test && npm run package",
10
10
  "compile": "tsc --build",
11
- "eslint": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern src test build-tools",
12
- "eslint:json": "eslint --no-eslintrc --no-error-on-unmatched-pattern --config .eslintrc-json.json --ext .json .",
11
+ "eslint": "eslint --fix src test",
12
+ "eslint:json": "eslint --no-error-on-unmatched-pattern \"**/*.json\"",
13
13
  "package": "mkdir -p dist/js && npm pack --pack-destination dist/js",
14
14
  "prepare": "husky",
15
15
  "spellcheck": "cspell lint --gitignore --dot --show-suggestions -e \".git/**\" \"**\"",
@@ -28,29 +28,26 @@
28
28
  "@commitlint/cli": "^20",
29
29
  "@commitlint/config-conventional": "^20",
30
30
  "@types/http-status-codes": "^1.2.0",
31
- "@types/jest": "^27.4.1",
31
+ "@types/jest": "^30",
32
32
  "@types/node": "^22",
33
- "@typescript-eslint/eslint-plugin": "^5",
34
- "@typescript-eslint/parser": "^5",
35
33
  "cspell": "*",
36
34
  "dry-aged-deps": "^2.6.0",
37
- "eslint": "^8",
38
- "eslint-config-prettier": "^8.5.0",
39
- "eslint-import-resolver-node": "^0.3.6",
40
- "eslint-import-resolver-typescript": "^2.7.1",
41
- "eslint-plugin-import": "^2.26.0",
42
- "eslint-plugin-jsdoc": "^39.3.2",
43
- "eslint-plugin-jsonc": "^2.3.0",
44
- "eslint-plugin-no-secrets": "^0.8.9",
35
+ "eslint": "^10",
36
+ "eslint-config-prettier": "^10",
37
+ "eslint-plugin-jsdoc": "^62",
38
+ "eslint-plugin-jsonc": "^3",
39
+ "eslint-plugin-no-secrets": "^2",
45
40
  "eslint-plugin-prettier": "^5",
46
- "eslint-plugin-unicorn": "^42.0.0",
41
+ "eslint-plugin-unicorn": "^63",
42
+ "jsonc-eslint-parser": "^3",
43
+ "typescript-eslint": "^8",
47
44
  "http-status-codes": "^2.2.0",
48
45
  "husky": "^9",
49
- "jest": "^27",
50
- "jest-junit": "^13",
46
+ "jest": "^29",
47
+ "jest-junit": "^16",
51
48
  "json-schema": "^0.4.0",
52
49
  "prettier": "^3",
53
- "ts-jest": "^27",
50
+ "ts-jest": "^29",
54
51
  "typescript": "^5"
55
52
  },
56
53
  "keywords": [
@@ -63,7 +60,7 @@
63
60
  "publishConfig": {
64
61
  "access": "public"
65
62
  },
66
- "version": "0.0.54",
63
+ "version": "0.0.56",
67
64
  "bugs": {
68
65
  "url": "https://github.com/mountain-pass/problem-document/issues"
69
66
  },
@@ -109,10 +106,13 @@
109
106
  ]
110
107
  ],
111
108
  "preset": "ts-jest",
112
- "globals": {
113
- "ts-jest": {
114
- "tsconfig": "tsconfig.dev.json"
115
- }
109
+ "transform": {
110
+ "^.+\\.tsx?$": [
111
+ "ts-jest",
112
+ {
113
+ "tsconfig": "tsconfig.dev.json"
114
+ }
115
+ ]
116
116
  }
117
117
  },
118
118
  "types": "lib/index.d.ts",
package/.eslintignore DELETED
@@ -1,26 +0,0 @@
1
- .commitlintrc.json
2
- .cspell.json
3
- .eslintignore
4
- .eslintrc-json.json
5
- .eslintrc.json
6
- .gitattributes
7
- .github/pull_request_template.md
8
- .github/workflows/auto-approve.yml
9
- .github/workflows/build.yml
10
- .github/workflows/pull-request-lint.yml
11
- .github/workflows/release.yml
12
- .github/workflows/upgrade-main.yml
13
- .gitignore
14
- .husky/commit-msg
15
- .husky/pre-commit
16
- .husky/pre-push
17
- .npmignore
18
- .prettierignore
19
- .prettierrc.json
20
- .vscode/extensions.json
21
- .vscode/settings.json
22
- CODE_OF_CONDUCT.md
23
- LICENSE
24
- package.json
25
- tsconfig.dev.json
26
- tsconfig.json
@@ -1,26 +0,0 @@
1
- {
2
- "env": {
3
- "jest": true,
4
- "node": true
5
- },
6
- "root": true,
7
- "plugins": [
8
- "prettier",
9
- "no-secrets"
10
- ],
11
- "extends": [
12
- "plugin:jsonc/recommended-with-jsonc",
13
- "plugin:jsonc/prettier"
14
- ],
15
- "ignorePatterns": [
16
- "*.js",
17
- "!.projenrc.ts",
18
- "*.d.ts",
19
- "node_modules/",
20
- "*.generated.ts",
21
- "coverage"
22
- ],
23
- "rules": {
24
- "no-secrets/no-secrets": "error"
25
- }
26
- }