@eggjs/tegg-transaction-decorator 4.0.0-beta.1 → 4.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @eggjs/tegg-transaction-decorator
2
2
 
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![Known Vulnerabilities][snyk-image]][snyk-url]
5
+ [![npm download][download-image]][download-url]
6
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-transaction-decorator.svg?style=flat)](https://nodejs.org/en/download/)
7
+
8
+ [npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-transaction-decorator.svg?style=flat-square
9
+ [npm-url]: https://npmjs.org/package/@eggjs/tegg-transaction-decorator
10
+ [snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-transaction-decorator/badge.svg?style=flat-square
11
+ [snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-transaction-decorator
12
+ [download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-transaction-decorator.svg?style=flat-square
13
+ [download-url]: https://npmjs.org/package/@eggjs/tegg-transaction-decorator
14
+
3
15
  事务注解
4
16
 
5
17
  ## Usage
@@ -0,0 +1,14 @@
1
+ import { TransactionMetadataUtil } from '../util/index.js';
2
+ export class TransactionMetaBuilder {
3
+ clazz;
4
+ constructor(clazz) {
5
+ this.clazz = clazz;
6
+ }
7
+ build() {
8
+ if (!TransactionMetadataUtil.isTransactionClazz(this.clazz)) {
9
+ return [];
10
+ }
11
+ return TransactionMetadataUtil.getTransactionMetadataList(this.clazz);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25NZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyL1RyYW5zYWN0aW9uTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixLQUFLLENBQW9CO0lBRTFDLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGIn0=
@@ -1,2 +1,2 @@
1
1
  export * from './TransactionMetaBuilder.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIn0=
@@ -0,0 +1,19 @@
1
+ import { PropagationType } from '@eggjs/tegg-types';
2
+ import { TransactionMetadataUtil } from '../util/index.js';
3
+ export function Transactional(params) {
4
+ const propagation = params?.propagation || PropagationType.REQUIRED;
5
+ if (!Object.values(PropagationType).includes(propagation)) {
6
+ throw new Error(`unknown propagation type ${propagation}`);
7
+ }
8
+ const datasourceName = params?.datasourceName;
9
+ return function (target, propertyKey) {
10
+ const constructor = target.constructor;
11
+ TransactionMetadataUtil.setIsTransactionClazz(constructor);
12
+ TransactionMetadataUtil.addTransactionMetadata(constructor, {
13
+ propagation,
14
+ method: propertyKey,
15
+ datasourceName,
16
+ });
17
+ };
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3IvVHJhbnNhY3Rpb25hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUE0QjtJQUN4RCxNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsV0FBVyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsTUFBTSxFQUFFLGNBQWMsQ0FBQztJQUU5QyxPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXdCO1FBQ25ELE1BQU0sV0FBVyxHQUFzQixNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzFELHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRTtZQUMxRCxXQUFXO1lBQ1gsTUFBTSxFQUFFLFdBQVc7WUFDbkIsY0FBYztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,2 +1,2 @@
1
1
  export * from './Transactional.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMifQ==
@@ -2,4 +2,4 @@ export * from '@eggjs/tegg-types/transaction';
2
2
  export * from './builder/index.js';
3
3
  export * from './decorator/index.js';
4
4
  export * from './util/index.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDIn0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import { TransactionMetadata } from '@eggjs/tegg-types';
1
+ import { type TransactionMetadata } from '@eggjs/tegg-types';
2
2
  import type { EggProtoImplClass } from '@eggjs/tegg-types';
3
3
  export declare class TransactionMetadataUtil {
4
4
  static setIsTransactionClazz(clazz: EggProtoImplClass): void;
@@ -0,0 +1,18 @@
1
+ import { MetadataUtil } from '@eggjs/core-decorator';
2
+ import { IS_TRANSACTION_CLAZZ, TRANSACTION_META_DATA } from '@eggjs/tegg-types';
3
+ export class TransactionMetadataUtil {
4
+ static setIsTransactionClazz(clazz) {
5
+ MetadataUtil.defineMetaData(IS_TRANSACTION_CLAZZ, true, clazz);
6
+ }
7
+ static isTransactionClazz(clazz) {
8
+ return MetadataUtil.getBooleanMetaData(IS_TRANSACTION_CLAZZ, clazz);
9
+ }
10
+ static addTransactionMetadata(clazz, data) {
11
+ const list = MetadataUtil.initOwnArrayMetaData(TRANSACTION_META_DATA, clazz, []);
12
+ list.push(data);
13
+ }
14
+ static getTransactionMetadataList(clazz) {
15
+ return MetadataUtil.getArrayMetaData(TRANSACTION_META_DATA, clazz);
16
+ }
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25NZXRhZGF0YVV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9UcmFuc2FjdGlvbk1ldGFkYXRhVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUE0QixNQUFNLG1CQUFtQixDQUFDO0FBRzFHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQXdCO1FBQ25ELFlBQVksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBd0I7UUFDaEQsT0FBTyxZQUFZLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUF3QixFQUFFLElBQXlCO1FBQy9FLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBc0IscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUF3QjtRQUN4RCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBc0IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGIn0=
@@ -1,2 +1,2 @@
1
1
  export * from './TransactionMetadataUtil.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-transaction-decorator",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.11",
4
4
  "description": "tegg transaction decorator",
5
5
  "keywords": [
6
6
  "egg",
@@ -17,42 +17,39 @@
17
17
  "directory": "core/transaction-decorator"
18
18
  },
19
19
  "dependencies": {
20
- "@eggjs/core-decorator": "^4.0.0-beta.1",
21
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
22
- "@eggjs/tegg-metadata": "^4.0.0-beta.1",
23
- "@eggjs/tegg-types": "^4.0.0-beta.1"
24
- },
25
- "scripts": {
26
- "clean": "tsc -b --clean",
27
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
28
- "tsc:pub": "npm run tsc",
29
- "prepublishOnly": "npm run tsc"
20
+ "@eggjs/core-decorator": "4.0.0-beta.11",
21
+ "@eggjs/tegg-types": "4.0.0-beta.11"
30
22
  },
31
23
  "publishConfig": {
32
24
  "access": "public"
33
25
  },
34
26
  "engines": {
35
- "node": ">=20.0.0"
27
+ "node": ">=22.18.0"
36
28
  },
37
29
  "license": "MIT",
38
30
  "type": "module",
39
31
  "exports": {
40
- ".": {
41
- "types": "./src/index.d.ts",
42
- "default": "./src/index.js"
43
- }
32
+ ".": "./dist/index.js",
33
+ "./package.json": "./package.json"
44
34
  },
45
35
  "files": [
46
- "src/**/*.js",
47
- "src/**/*.d.ts"
36
+ "dist"
48
37
  ],
49
38
  "bugs": {
50
39
  "url": "https://github.com/eggjs/tegg/issues"
51
40
  },
52
41
  "devDependencies": {
53
- "@types/node": "22",
54
- "ts-node": "10",
55
- "typescript": "5"
56
- },
57
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
58
- }
42
+ "@types/node": "^22.10.5",
43
+ "typescript": "^5.9.3",
44
+ "tsdown": "^0.15.6",
45
+ "unplugin-unused": "^0.5.3"
46
+ },
47
+ "main": "./dist/index.js",
48
+ "module": "./dist/index.js",
49
+ "types": "./dist/index.d.ts",
50
+ "scripts": {
51
+ "clean": "rimraf dist *.tsbuildinfo",
52
+ "build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
53
+ "typecheck": "tsc --noEmit"
54
+ }
55
+ }
@@ -1,14 +0,0 @@
1
- import { TransactionMetadataUtil } from '../util/index.js';
2
- export class TransactionMetaBuilder {
3
- clazz;
4
- constructor(clazz) {
5
- this.clazz = clazz;
6
- }
7
- build() {
8
- if (!TransactionMetadataUtil.isTransactionClazz(this.clazz)) {
9
- return [];
10
- }
11
- return TransactionMetadataUtil.getTransactionMetadataList(this.clazz);
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25NZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlRyYW5zYWN0aW9uTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixLQUFLLENBQW9CO0lBRTFDLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUQsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGIn0=
@@ -1,19 +0,0 @@
1
- import { PropagationType } from '@eggjs/tegg-types';
2
- import { TransactionMetadataUtil } from '../util/index.js';
3
- export function Transactional(params) {
4
- const propagation = params?.propagation || PropagationType.REQUIRED;
5
- if (!Object.values(PropagationType).includes(propagation)) {
6
- throw new Error(`unknown propagation type ${propagation}`);
7
- }
8
- const datasourceName = params?.datasourceName;
9
- return function (target, propertyKey) {
10
- const constructor = target.constructor;
11
- TransactionMetadataUtil.setIsTransactionClazz(constructor);
12
- TransactionMetadataUtil.addTransactionMetadata(constructor, {
13
- propagation,
14
- method: propertyKey,
15
- datasourceName,
16
- });
17
- };
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlRyYW5zYWN0aW9uYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBNEI7SUFDeEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLFdBQVcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE1BQU0sRUFBRSxjQUFjLENBQUM7SUFFOUMsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QjtRQUNuRCxNQUFNLFdBQVcsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMxRCx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsV0FBVztZQUNYLE1BQU0sRUFBRSxXQUFXO1lBQ25CLGNBQWM7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,18 +0,0 @@
1
- import { MetadataUtil } from '@eggjs/core-decorator';
2
- import { IS_TRANSACTION_CLAZZ, TRANSACTION_META_DATA } from '@eggjs/tegg-types';
3
- export class TransactionMetadataUtil {
4
- static setIsTransactionClazz(clazz) {
5
- MetadataUtil.defineMetaData(IS_TRANSACTION_CLAZZ, true, clazz);
6
- }
7
- static isTransactionClazz(clazz) {
8
- return MetadataUtil.getBooleanMetaData(IS_TRANSACTION_CLAZZ, clazz);
9
- }
10
- static addTransactionMetadata(clazz, data) {
11
- const list = MetadataUtil.initOwnArrayMetaData(TRANSACTION_META_DATA, clazz, []);
12
- list.push(data);
13
- }
14
- static getTransactionMetadataList(clazz) {
15
- return MetadataUtil.getArrayMetaData(TRANSACTION_META_DATA, clazz);
16
- }
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25NZXRhZGF0YVV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJUcmFuc2FjdGlvbk1ldGFkYXRhVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBR3JHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQXdCO1FBQ25ELFlBQVksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBd0I7UUFDaEQsT0FBTyxZQUFZLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUF3QixFQUFFLElBQXlCO1FBQy9FLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBc0IscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUF3QjtRQUN4RCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBc0IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGIn0=
File without changes
File without changes
File without changes
File without changes
File without changes